diff --git a/.gitignore b/.gitignore index b6723d2d5..c974af773 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ Data-Storage Log-Files -My-Workspaces \ No newline at end of file +My-Workspaces diff --git a/Client/WebServer/Images/superalgos-logo-white.png b/Client/WebServer/Images/superalgos-logo-white.png new file mode 100644 index 000000000..879e1aede Binary files /dev/null and b/Client/WebServer/Images/superalgos-logo-white.png differ diff --git a/Client/WebServer/css/context-menu.css b/Client/WebServer/css/context-menu.css new file mode 100644 index 000000000..fb79186d0 --- /dev/null +++ b/Client/WebServer/css/context-menu.css @@ -0,0 +1,58 @@ + +#menu { +display: table; +background-color: rgba(255, 255, 255); +padding: 5px; +border-radius: 5px; +box-shadow: 2px 2px 30px lightgrey; +position: absolute; +transform-origin: center; +z-index: 2; +opacity: 0; +transform: scale(0); +transition: transform 0.1s, opacity 0.1s; +border-collapse: separate; +border-spacing: 8px; +background-color: white; +} + +#menu.show { +opacity: 1; +transform: scale(1); +transform-origin: top left; +} + +.menu-item { +display: table-cell; +padding: 10px; +margin: 5px; +transition: 0.1s; +border: 1px solid #ddd; +border-radius: 5px; +background-color: white; +} + +.menu-item:hover { +border: 1px solid #0295aa; +background-color: #eff; +cursor: pointer; +} + +#out-click { +height: 100vh; +width: 100vw; +position: fixed; +top: 0; +left: 0; +z-index: 1; +display: none; +} + +.menu-row{ + display: table-row; +} + +.menu-img { +width: 40px; +height: 40px; +} \ No newline at end of file diff --git a/Client/WebServer/css/credits.css b/Client/WebServer/css/credits.css new file mode 100644 index 000000000..086ed3ff5 --- /dev/null +++ b/Client/WebServer/css/credits.css @@ -0,0 +1,26 @@ +.credits { + width: 100%; + margin: auto; + margin-bottom: 50; + text-align: center; + position:absolute; + bottom:0; + } + + .credits p { + font-family: 'Saira Condensed'; + font-size: 140%; + color: whitesmoke; + padding: 0 100; + } + + .credits-red { + color: #e3493c; + font-weight: 700; + } + + .credits-yellow { + color: #dfbe00fb; + font-weight: 700; + } + \ No newline at end of file diff --git a/Client/WebServer/css/docs.css b/Client/WebServer/css/docs.css new file mode 100644 index 000000000..35c0f52b2 --- /dev/null +++ b/Client/WebServer/css/docs.css @@ -0,0 +1,1068 @@ + +.docs-page { +border: 0px solid; +background-color: whitesmoke; +/*background-color: #fdfdfd;*/ +} + +.docs-search-page-container { +font: 400 17px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; +color: #365558; +line-height: 150%; +margin: 20 25 20 30px; +} + +.docs-common-style-container{ +/*background-color: white;*/ +font: 400 17px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; +color: #324d50; +line-height: 150%; +margin: 20 30px; +margin: 20 25 20 30px; +} + +.docs-node-html-footer-container { +font: 400 14px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; +color: #e6eaea; +background-color: #365558; +line-height: 160%; +border-top: 5px solid #0295aa; +margin: 80px 0 0 0; +padding: 30 0 20 0px; +} + +/* DELETE candidate (delete class assignment on DocsSapace.js too) + +.docs-context-menu-clickeable-container { +font: 400 17px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; +color: #111; +line-height: 150%; +margin: 20 20 20 30px; +} + +*/ + +#docs-common-style-container-div ul { + padding: 0px; + margin-left: 35px; + list-style-position: outside; +} + +.docs-font-normal { +font: 400 17px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; +color: #111; +line-height: 150%; +} + +.docs-title-table { +vertical-align: middle; +width: 100%; +min-width: 95px; +margin-bottom: 0px; +margin-top: 0px; +border: 0px solid #cdcdcd; +padding: 5px; + +/* DELETE candidate +margin: auto; +margin-right: 20px; +*/ +} + +.docs-table-cell{ + display: table-cell; + width: 100%; +} + +.docs-definition-table { +background-color: white; +vertical-align: middle; +margin-bottom: 20px; +margin-top: 0px; +border: 1px solid #cdcdcd; +border-radius: 5px; +padding: 10px; +display: table; +width: 100%; +box-sizing: border-box; +border-collapse: separate; +border-spacing: 10px; +/* DELETE candidate +margin-right: 20px; +*/ +} + +.docs-definition-text { + display: table-cell; + vertical-align: middle; + padding: 0 20px; +} + +.docs-image-container { +padding: 5px 0px 5px 5px; +border: solid 0px; +display: table-cell; +vertical-align: middle; +} + +.docs-hierarchy-image-container { +padding: 0px 0px 0px 0px; +border: solid 0px; +margin-left: auto; +margin-right: auto; +width: 100%; +} + +/* Link without tooltip */ +.docs-link { +position: relative; +display: inline-block; +color: #0295aa !important; +text-decoration: underline !important; +cursor: pointer; +} + +/* Tooltip container */ +.docs-tooltip { +position: relative; +display: inline-block; +border-bottom: 1px dashed #0295aa; +cursor: pointer; +line-height: inherit; +} + +/* Tooltip text */ +.docs-tooltip .docs-tooltiptext { +visibility: hidden; +width: 240px; +background-color: #0295aa; +color: #fff; +font-weight: normal; +font-style: normal; +font-size: 15px; +line-height: 130%; +text-align: center; +padding: 15px; +border-radius: 6px; + +/* Position the docs-tooltip text */ +position: absolute; +z-index: 0; +bottom: 125%; +left: 50%; +margin-left: -120px; + + +/* Fade in docs-tooltip */ +opacity: 0; +transition: opacity 0.3s; +} + +/* Tooltip arrow */ +.docs-tooltip .docs-tooltiptext::after { +content: ""; +position: absolute; +top: 100%; +left: 50%; +margin-left: -5px; +border-width: 5px; +border-style: solid; +border-color: #0295aa transparent transparent transparent; +} + +/* Show the tooltip text when you mouse over the tooltip container */ +.docs-tooltip:hover .docs-tooltiptext { +visibility: visible; +opacity: 1; +} + +/* Headings */ + +.docs-h1 { + font-size:210%; + margin-top: 40px; + padding-bottom: 5px; +} + +.docs-h2 { + font-weight:700; + font-size:170%; + line-height: 170%; + margin-top: 30px; + padding-bottom: 5px; + overflow:hidden; +} + +.docs-h2::after{ +content:''; +display:inline-block; +width:90%; +margin-right:-100%; +border-bottom: 1px solid #cdd4d5; +margin-left: 20px; +} + +.docs-h3 { + font-weight:500; + font-size:150%; + margin-top: 40px; + margin-bottom: 20px; +} + +.docs-h4 { + font-weight:400; + font-style: italic; + font-size:135%; + margin-top: 30px; + margin-bottom: 20px; +} + +/* DELETE candidate + +.docs-h5 {font-weight:400; font-size:140%; margin-top: 35px; font-style:italic;} + +.docs-h6 {font-weight:400; font-size:130%; margin-top: 35px; font-style:italic;} +margin-right: 20px; + +*/ +.docs-text-area { +font: 400 17px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; +resize: none; +outline: none; +box-shadow: none; +overflow:hidden; +background-color: #eff; +border: 1px solid #0295aa; +border-radius: 5px; +color: #111; +width: 100%; +height: 25%; +z-index:100; +padding: 0px 10px; +font-size: 95%; +line-height: 140%; +} + +/* Alerts */ +.docs-alert-note { +color: #31708f; +background-color: #d9edf7; +padding: 15px; +border: 1px solid rgba(49, 112, 143, .3); +border-radius: 4px; +margin: 20px 0; +width: 100%; +box-sizing: border-box; +} + +.docs-alert-success { +color: #3c763d; +background-color: #dff0d8; +padding: 15px; +border: 1px solid rgba(60, 118, 61, .3); +border-radius: 4px; +margin: 20px 0; +width: 100%; +box-sizing: border-box; +} + +.docs-alert-important { +color: #5e3e07; +background-color: #fcf8e3; +padding: 15px; +border: 1px solid rgba(138, 109, 59, .3); +border-radius: 4px; +margin: 20px 0; +width: 100%; +box-sizing: border-box; +} + +.docs-alert-warning { +color: #a94442; +background-color: #f2dede; +padding: 15px; +border: 1px solid rgba(169, 68, 66, .3); +border-radius: 4px; +margin: 20px 0; +width: 100%; +box-sizing: border-box; +} + +.docs-alert-error { +color: #fff16c; +background-color: #ff3131; +padding: 30px; +border: 1px solid rgba(0, 0, 0, .5); +border-radius: 4px; +margin: 20px 0; +width: 100%; +box-sizing: border-box; +} + +.docs-callout { + background-color:white; +padding: 20px; +margin: 20px 0; +border: 1px solid rgba(54, 85, 88, .3); +border-left-width: 5px; +border-radius: 3px; +border-left-color: #bcd643; +font-weight: 550 !important; +width: 100%; +box-sizing: border-box; +} + +.docs-topic-index { +background-color:white; +padding: 25 20px; +margin: 40px 0 0 0; +border: 1px solid rgba(49, 112, 143, .2); +border-left-width: 5px; +border-radius: 5px; +border-left-color: #365558; +width: 100%; +box-sizing: border-box; +} + +.docs-topic-index h2 { + font-size: 130%; + font-weight: 300; + margin: 10px 0 35 -5; + padding: 0px; +} + +.docs-topic-index h3 { + font-size: 150%; + font-weight: 300; + margin: 25px 0; + padding: 0px; +} + +.docs-topic-index p { + font-size: 100%; + padding: 0px; + margin: 2px 0; +} + +.docs-topic-index a { + color: #365558; +} + +.docs-topic-index a:hover { + text-decoration: underline; + cursor: pointer; + color: #0295aa; +} + +.docs-summary { +background-color:white; +font-weight: 600; +color: #365558; +padding: 20px; +margin-bottom: 20px; +border-radius: 5px; +border: 1px solid rgba(54, 85, 88, .3); +border-left: 5px solid #fd6a33; +width: 100%; +box-sizing: border-box; +} + +.docs-section { +font-size:120%; +padding: 200px; +} + +.docs-note-circle:before { +content:"\f05a" +} + +.docs-check-square-o:before { +content:"\f046" +} + +.docs-exclamation-circle:before { +content:"\f06a" +} + +.docs-warning-sign:before,.fa-exclamation-triangle:before { +content:"\f06a" +} + +.docs-fa { +font:normal normal normal 14px/1 FontAwesome; +font-size:inherit; +text-rendering:auto; +-webkit-font-smoothing:antialiased; +-moz-osx-font-smoothing:grayscale +} + +.docs-font-small { +font:normal normal normal 14px/1 "segoeui"; +font-size:inherit; +text-rendering:auto; +-webkit-font-smoothing:antialiased; +-moz-osx-font-smoothing:grayscale; +line-height: 150% +} + +li > .docs-font-small { +margin-bottom:7px; +} + +div.docs-font-small { +margin-bottom:7px; +} + +hr.docs-shaded { +box-shadow: inset 0 6px 6px -6px rgba(0,0,0,0.5); +margin: 90 0 70 0; +height: 12px; +border: 0; +background: white; +width: 100%; +} + +/* Topic Navigation */ + +.docs-topic-navigation { + display: table; + width: 100%; + vertical-align: middle; + margin: 80px 0 0 0; + /* + border-top: 1px solid rgba(54, 85, 88, .3); + margin: 60px 0 0 0; + padding-top: 20px; + */ +} + +.docs-topic-navigation div { + display: table-cell; + width: 50%; + max-width: 50%; + text-align: center; + vertical-align: top; + padding: 10px; + /* + height: 40px; + */ +} + +.docs-topic-navigation div button{ + border-radius: 50px; + border: 0px; + color: #e6eaea; + background-color: #365558; + padding: 10px; + margin: 0 0 10 10px; + font-size: 100%; + line-height: 150%; + width: 150px; + height:100%; +} + +.docs-topic-navigation div button:hover { + background-color: #0295aa; + cursor: pointer; +} + +/* Footer */ + +.docs-node-html-footer-table { + display: table; + width: 100%; + border-collapse: separate; + border-spacing: 6px; + } + +.docs-footer-row { + display: table-row; +} + +.docs-footer-cell { + padding: 5px 15px 0px 30px; + display: table-cell; + width: 33%; +} + +#docs-footer h3 { + font-size: 180%; + font-weight: 300; + padding: 10px 0 0 0; + } + +#docs-footer h4 { + font-size: 120%; + font-weight: 300; + } + + #docs-footer button{ + border: 1px outset #e6eaea; + border-radius: 20px; + background-color: transparent; + color: e6eaea; + padding: 10px; + margin: 0 0 0 10px; +} + +#docs-footer button:hover { + border: 1px inset #e6eaea; + cursor: pointer; +} + +#docs-footer a:hover { +text-decoration: none; +color: #ff8c29 !important; +cursor: pointer; +} + +#docs-footer a:link, +#docs-footer a:visited, +#docs-footer a:active { +text-decoration: none; +color: #ffd1a9; +} + + +/* DELETE candidate +.docs-footer-body { +position: relative; +min-height: 1px; +padding-right: 15px; +padding-left: 15px; +} +*/ + +/* Links */ +a:link.docs-plain-link { +text-decoration: none; +} + +a:visited.docs-plain-link { +text-decoration: none; +} + +a:hover.docs-plain-link { +text-decoration: none; +} + +a:active.docs-plain-link { +text-decoration: none; +} + +/* Icon after external links, using FontAwesome*/ +a[href^="http://"]:after, a[href^="https://"]:after { +content: "\f08e"; +font-family: FontAwesome; +font-weight: normal; +font-style: normal; +display: inline-block; +text-decoration: none; +padding-left: 3px; +} + + + + +/* Tags */ + +kbd.docs-kbd { +margin: 0 0 0 15px; +} + +code.docs-code { +color: #d9534f; +background-color: rgba(230, 234, 234, 1); +/* border: 1px solid rgba(205, 212, 213, 0.5); DELETE Candidate*/ +border: 1px solid rgba(54, 85, 88, .3); +border-radius: 3px; +padding: 0 5; +} + +code.docs-footer-code { +color: #eee; +background-color: rgba(230, 234, 234, 0.2); +/* border: 1px solid rgba(205, 212, 213, 0.5); DELETE Candidate*/ +border: 1px solid rgba(200, 200, 200, .5); +border-radius: 3px; +padding: 0 5; +} + +a:hover.code.docs-footer-code { +color: #eee; +background-color: rgba(253, 106, 51, 1); +/* border: 1px solid rgba(205, 212, 213, 0.5); DELETE Candidate*/ +border: 1px solid rgba(200, 200, 200, .5); +border-radius: 3px; +padding: 0 5; +} + +/* Style the button that is used to open and close the docs-collapsible-element content */ +.docs-collapsible-element { +background-color: #eee; +color: #31708f; +cursor: pointer; +width: 97.5%; +text-align: left; +outline: none; +font-size: 100%; +padding: 10px; +margin: 4px 0 4 20; +transition: 0.1s; +/* border: 1px solid #ddd; DELETE Candidate*/ +border: 1px solid rgba(54, 85, 88, .3); +border-radius: 5px; +background-color: white; +vertical-align: middle; +box-sizing: border-box; +} + +.docs-collapsible-element img { + vertical-align: middle; + display: inline-block; + margin: 0 20px 0 0; + width: 40px; + height: 40px; + } + +/* This definition is redundant with .docs-collapsible-element img but affects some images. Investigation required to delete it.*/ + + .docs-collapsible-image { + vertical-align: middle; + display: inline-block; + margin: 0 20px 0 0; + width: 40px; + height: 40px; + } + +/* Add a background color to the button if it is clicked on (add the .active class with JS), and when you move the mouse over it (hover) */ +.active, .docs-collapsible-element:hover { + border: 1px solid #0295aa; + background-color: #eff; +} + +/* Style the docs-collapsible-element content. Note: hidden by default */ +.docs-collapsible-content { +padding: 0 18px; +display: none; +margin-left: 75px; +z-index: 1; +font-size: 90%; +line-height: 90%; +} + +.docs-collapsible-code-content { +padding: 0; +display: none; +margin-left: 0px; +z-index: 1; +} + +.docs-collapsible-element:after { +content: '\02795'; /* Unicode character for "plus" sign (+) */ +font-size: 60%; +color: #31708f; +margin-left: 5px; +float: right; +vertical-align: middle; +line-height: 40px; +} + +.docs-collapsible-active:after { +content: "\2796"; /* Unicode character for "minus" sign (-) */ +} + +/* This is the same Style as the collapsible counter part but will not hold any collapsed content inside. */ +.docs-non-collapsible-element { + /* +background-color: #fdfdfd; +color: #444; +padding: 15px; +width: 100%; +border: none; +text-align: left; +outline: none; +font-size: 125%; +vertical-align: middle; +min-height: 80px; +*/ +background-color: #eee; +color: #31708f; +width: 97.5%; +text-align: left; +outline: none; +font-size: 100%; +vertical-align: middle; +padding: 10px; +margin: 4px 0 4 20; +transition: 0.1s; +/* border: 1px solid #ddd;DELETE Candidate*/ +border: 1px solid rgba(54, 85, 88, .3); +border-radius: 5px; +background-color: white; + +box-sizing: border-box; +} + +/* Info Tables */ +.docs-info-table { +background-color: transparent; +max-width: 100%; +margin-bottom: 20px; +margin-top: 20px; +/* border: 1px solid #cdcdcd; DELETE Candidate*/ +border: 1px solid rgba(54, 85, 88, .3); +border-spacing: 0px; +} + +.docs-info-table > thead > tr > th, +.docs-info-table > tbody > tr > th, +.docs-info-table > tfoot > tr > th, +.docs-info-table > thead > tr > td, +.docs-info-table > tbody > tr > td, +.docs-info-table > tfoot > tr > td { +padding: 8px; +line-height: 150%; +vertical-align: top; +} + +.docs-info-table > thead > tr > th { +vertical-align: middle; +text-transform: none; +background-color: #333; +color: white; +text-align: left; +} + +.docs-info-table > tbody > tr > td { +/* border-top: 1px solid #cdcdcd; DELETE Candidate*/ +border: 1px solid rgba(54, 85, 88, .3); +} + +.docs-info-table-alt-bg td { +background-color: #f9f9f9; +} + +/* Gif Image */ +.docs-gif { +max-width: 100%; +width: 100%; +/* border: 1px solid #cdcdcd; DELETE Candidate*/ +border: 1px solid rgba(54, 85, 88, .3); +border-spacing: 1px; +} + +/* PNG Image */ +.docs-png { +max-width: 100%; +width: 100%; +/* border: 1px solid #cdcdcd; DELETE Candidate*/ +border: 1px solid rgba(54, 85, 88, .3); +border-spacing: 1px; +} + +/* Search Page */ +.docs-image-logo-search { +margin: auto; +margin-top: 225px; +margin-bottom: 25px; +} + +.docs-search-box { +width: 700px; +height: 45px; +margin-top: 50px; +margin-bottom: 600px; +border-radius: 30px; +border: 1px solid #0295aa; +background-color: white; +vertical-align: middle; +} + +.docs-search-input { +width: 95%; +height: 45px; +margin: 0 20px; +font-size: 100%; +color: #6b6b6b; +border: none; +outline: none; +background-color: transparent; +} + +/* Search Results Page */ + +/* Search Results Page Header*/ + +.docs-search-results-header { + display: table; +} + +.docs-image-logo-search-results { +vertical-align: middle; +display: table-cell; +padding-right: 25px; +} + +.docs-search-results-box { +height: 45px; +border-radius: 30px; +border: 1px solid #0295aa; +background-color: white; +vertical-align: middle; +display: table-cell; +width: 100%; +} + +.docs-search-results-header-tabs-container { + display: table; + padding-left: 240px; + margin-top: 20px; +} + + +.docs-search-results-header-tabs-container > input { + display: none; +} + +.docs-search-results-header-tabs-container > label { + display: inline-block; + vertical-align: bottom; + padding: 0 15px 3px 15px; + color: #365558; + font-size: 90%; +} + +.docs-search-results-header-tabs-container > label:hover { + color: #0295aa; + padding-bottom: 3px; + cursor: pointer; +} + +.docs-search-results-header-tabs-container > input:checked + label { + color: #0295aa; + padding-bottom: 2px; + border-bottom: 3px solid #0295aa; +} + +/* Search Results Page Content */ +.docs-search-result-content { +border-top: 1px solid #0295aa; +margin-left: -240px; +} + +.docs-search-result-content > div { + display: none; +} + +#tab1:checked ~ .docs-search-result-content #content1, +#tab2:checked ~ .docs-search-result-content #content2, +#tab3:checked ~ .docs-search-result-content #content3, +#tab4:checked ~ .docs-search-result-content #content4, +#tab5:checked ~ .docs-search-result-content #content5, +#tab6:checked ~ .docs-search-result-content #content6, +#tab7:checked ~ .docs-search-result-content #content7 { + display: block; +} + +/* Search Results Page Record */ + +.docs-search-result-content-record-container { + margin: 20px 0; +} + +.docs-search-result-content-record-container > p { + margin: 1px; +} + +.docs-search-result-content-record-project-category { + font-size: 90%; + color: #31708f; +} + +.docs-search-result-content-record-project-category-link { + font-size: 90%; + color: #31708f; +} + +a:hover.docs-search-result-content-record-project-category-link { + text-decoration: underline; + cursor: pointer; +} + +.docs-search-result-content-record-title { + font-size: 120%; + font-weight: 500; + text-decoration: none; + color: #e44d40; +} + +a:link.docs-search-result-content-record-title { + text-decoration: none; + color: #e44d40; +} + +a:visited.docs-search-result-content-record-title { + text-decoration: none; + color: #fd6a33; +} + +a:hover.docs-search-result-content-record-title { + text-decoration: underline; + cursor: pointer; +} + +a:active.docs-search-result-content-record-title { + text-decoration: none; + color: #fd6a33; +} + +.docs-search-result-content-record-extract { + font-size: 100%; + color: #333; + margin-top: 5px!important; +} + + + +/* Command Results Page Content */ +.docs-command-result-content { +/* border-top: 1px solid #cdcdcd; DELETE Candidate*/ +border: 1px solid rgba(54, 85, 88, .3); +margin-left: -240px; +} + +.docs-command-result-message { +font-size: 90%; +color: #31708f; +} + +.docs-hidden-anchor { + border-top: 1px solid #eee; + padding: 0px; + margin: -20px 0px -40px 0; + width: 100%; + text-align: right; + color: transparent; + font-size: 75%; + } + + .docs-hidden-anchor::after{ + content:' \2693'; + color: transparent; + font-size: 130%; + } + + .docs-hidden-anchor:hover::after{ + content:' \2693'; + color: #365558; + font-size: 130%; + } + +.docs-hidden-block { +border-top: 1px solid #eee; +padding: 0px; +margin: -5px 0px -30px 0; +width: 100%; +text-align: right; +color: transparent; +font-size: 75%; +} + +.docs-hidden-block::after{ +content:' \25BD'; +color: #e0e0e0; +font-size: 150%; +} + +.docs-hidden-block:hover::after{ +content:' \25BC'; +color: #365558; +font-size: 150%; +} + +.docs-hidden-include { + border-top: 1px solid #eee; + padding: 0px; + margin: -5px 0px -30px 0; + width: 100%; + text-align: right; + color: transparent; + font-size: 75%; +} + +.docs-hidden-include::after{ + content:' \275E'; + color: #e6e6e6; + font-size: 200%; + } + + .docs-hidden-include:hover::after{ + content:' \275E'; + color: #365558; + font-size: 200%; + } + +/* Hierarchy Table */ +.docs-hierarchy-table { +min-width: 100%; +max-width: 100%; +margin-bottom: 20px; +margin-top: 20px; +/* border: 1px solid #cdcdcd; DELETE Candidate*/ +border: 1px solid rgba(54, 85, 88, .3); +border-spacing: 0; +border-collapse: collapse; +font: 400 17px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; +color: #111; +} + +.docs-hierarchy-table-row{ +background-color: #f5f5f5; +} + +.docs-hierarchy-table-cell{ +text-align: center; +vertical-align: middle; +} + +.docs-external-link { +text-decoration: underline; +color: #31708f; +} + +.docs-chapter { + border-top: 1px solid #eee; + padding: 0px; + margin: -5px 0px -30px 0; + width: 100%; + height: 40px; + text-align: right; + color: transparent; + font-size: 75%; +} +/* DELETE Candidate +.docs-chapter::after{ + content:' \24b8'; + color: #e6e6e6; + font-size: 150%; + position: relative; + top: -15px; + } + +.docs-chapter:hover::after{ +content:' \1f152'; +color: #365558; +font-size: 150%; +position: relative; +top: -15px; +} +*/ +.docs-youtube-video-container{ +background-color: white; +box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); +margin-bottom: 35px; +max-width: 830px; +max-height: 476px; +} + diff --git a/Client/WebServer/font-awasome.css b/Client/WebServer/css/font-awasome.css similarity index 100% rename from Client/WebServer/font-awasome.css rename to Client/WebServer/css/font-awasome.css diff --git a/Client/WebServer/css/main.css b/Client/WebServer/css/main.css new file mode 100644 index 000000000..89e84108f --- /dev/null +++ b/Client/WebServer/css/main.css @@ -0,0 +1,34 @@ +/* latin */ +@font-face { + font-family: 'Saira'; + font-style: normal; + font-weight: 300; + src: local('Saira Light'), local('Saira-Light'), url(Fonts/Saira.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* latin */ +@font-face { + font-family: 'Saira Condensed'; + font-style: normal; + font-weight: 300; + src: local('Saira Condensed Light'), local('SairaCondensed-Light'), url(Fonts/Saira-Condensed.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} + +@font-face { + font-family: segoeui; + src: url(Fonts/segoeui.woff) format('woff'); + font-weight: normal; + font-style: normal; +} + +kbd { + padding: 2px 8px; + font-size: 125%; + font-weight: 500; + color: #000; + background-color: #bcd643; + border-radius: 5px; + border-style: outset; + border-width: 1px; +} \ No newline at end of file diff --git a/Client/WebServer/css/prism.css b/Client/WebServer/css/prism.css new file mode 100644 index 000000000..cf100cbe4 --- /dev/null +++ b/Client/WebServer/css/prism.css @@ -0,0 +1,147 @@ +/* PrismJS 1.22.0 +https://prismjs.com/download.html#themes=prism&languages=markup+clike+javascript+json+json5+jsonp */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ + +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} + +pre[class*="language-"]::selection, pre[class*="language-"] ::selection, +code[class*="language-"]::selection, code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} + +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +/* This is the main block affecting the container of code blocks in Superalgos */ +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background-color: #e6eaea; + border: 1px solid #cdd4d5; + border-radius: 5px; + padding: 15px; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #999; +} + +.token.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #3c763d; + /* This background color was intended by the author of this theme. + background: hsla(0, 0%, 100%, .5);*/ +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} + +.token.function, +.token.class-name { + color: #DD4A68; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} + diff --git a/Client/WebServer/css/tutorial.css b/Client/WebServer/css/tutorial.css new file mode 100644 index 000000000..43573a5eb --- /dev/null +++ b/Client/WebServer/css/tutorial.css @@ -0,0 +1,298 @@ + +.tutorial-step { +padding: 15px; +margin-bottom: 20px; +border: 2px solid; +border-color: #1b998b; +border-radius: 8px; +background-color: #fdfdfd; +} + +.tutorial-summary { +font-size:120%; +color: #808080; +margin:20px 0px 20px 0px; +border-left: 5px solid #fd6a33; +padding-left: 10px; + +} + +.tutorial-summary:before { +content: "Summary: "; +font-weight: bold; +} + +.tutorial-definitionTable { +background-color: #f3f3f3; +border-top-color: #a6e1ec; +padding: 15px; +margin: 20px 0; +border: solid 0px; +vertical-align: middle; +min-width: 100px; +width: 100%; +} + +.tutorial-alert-info { +color: #31708f; +background-color: #d9edf7; +padding: 15px; +border: 1px solid rgba(49, 112, 143, .3); +border-radius: 4px; +margin: 20px 0; +width: 100%; +box-sizing: border-box; +} + +.tutorial-alert-success { +color: #3c763d; +background-color: #dff0d8; +padding: 15px; +border: 1px solid rgba(60, 118, 61, .3); +border-radius: 4px; +margin: 20px 0; +width: 100%; +box-sizing: border-box; +} + +.tutorial-alert-important { +color: #5e3e07; +background-color: #fcf8e3; +padding: 15px; +border: 1px solid rgba(138, 109, 59, .3); +border-radius: 4px; +margin: 20px 0; +width: 100%; +box-sizing: border-box; +} + +.tutorial-alert-warning { +color: #a94442; +background-color: #f2dede; +padding: 15px; +border: 1px solid rgba(169, 68, 66, .3); +border-radius: 4px; +margin: 20px 0; +width: 100%; +box-sizing: border-box; +} + +.tutorial-callout { +padding: 20px; +margin: 20px 0; +border: 1px solid #eee; +border-left-width: 5px; +border-radius: 3px; +border-left-color: #bcd643; +font-weight: 500; +width: 90%; +} + +.tutorial-info-circle:before { +content:"\f05a" +} + +.tutorial-check-square-o:before { +content:"\f046" +} + +.tutorial-exclamation-circle:before { +content:"\f06a" +} + +.tutorial-warning:before,.fa-exclamation-triangle:before { +content:"\f06a" +} + +.tutorial-fa { +font:normal normal normal 14px/1 FontAwesome; +font-size:inherit; +text-rendering:auto; +-webkit-font-smoothing:antialiased; +-moz-osx-font-smoothing:grayscale +} + +.tutorial-font-small { + +font:normal normal normal 14px/1 "segoeui"; +font-size:inherit; +text-rendering:auto; +-webkit-font-smoothing:antialiased; +-moz-osx-font-smoothing:grayscale; +line-height: 150%; +} + +.tutorial-list { + margin: -8 0 -8 -15px; + font:normal normal normal 16px/1 "segoeui"; + line-height: 150% + } + +ul > .tutorial-list { + list-style-position: outside; +} + +/* DELETE candidate + + +div.tutorial-font-small { +margin-bottom:7px; +} +*/ + +.tutorial-font-medium { +font:normal normal normal 32px/1 "segoeui"; +text-rendering:auto; +-webkit-font-smoothing:antialiased; +-moz-osx-font-smoothing:grayscale; +line-height: 150% +} + +.tutorial-font-large { +font:bold normal normal 40px/1 "segoeui"; +text-rendering:auto; +-webkit-font-smoothing:antialiased; +-moz-osx-font-smoothing:grayscale; +line-height: 150% +} + +.tutorial-font-bold-small { +font:bold normal normal 14px/1 "segoeui"; +font-size:inherit; +text-rendering:auto; +-webkit-font-smoothing:antialiased; +-moz-osx-font-smoothing:grayscale; +line-height: 150% +} + +.tutorial-stop-button { +color: #a94442; +background-color: #f2dede; +border-color: #ebccd1; +padding: 12px; +border: 1px solid transparent; +border-radius: 4px; +margin: 20px 0; +border-top-color: #e4b9c0; +min-width: 100px; +} + +.tutorial-skip-button { +color: #8a6d3b; +background-color: #fcf8e3; +border-color: #faebcc; +padding: 12px; +border: 1px solid transparent; +border-radius: 4px; +margin: 20px 0; +border-top-color: #f7e1b5; +min-width: 100px; +} + +.tutorial-previous-button { +color: #31708f; +background-color: #d9edf7; +border-color: #bce8f1; +padding: 12px; +border: 1px solid transparent; +border-radius: 4px; +margin: 20px 0; +border-top-color: #c9e2b3; +min-width: 100px; +} + +.tutorial-next-button { +color: #3c763d; +background-color: #dff0d8; +border-color: #d6e9c6; +padding: 12px; +border: 1px solid transparent; +border-radius: 4px; +margin: 20px 0; +border-top-color: #c9e2b3; +min-width: 100px; +} + +.tutorial-form { +padding: 5px; +border: solid 0px; +margin-left: auto; +margin-right: auto; +margin-bottom: 20px; +width: 100%; +} + +.tutorial-buttonsTable { +border-top-color: #a6e1ec; +border: solid 0px; +vertical-align: middle; +min-width: 100px; +width: 95%; +margin-left: auto; +margin-right: auto; +} + +.tutorial-image-container { +padding: 5px 15px 5px 5px; +border: solid 0px; +margin-left: auto; +margin-right: auto; +width: 100%; +} + +/* Tooltip container */ +.tutorial-tooltip { +position: relative; +display: inline-block; +border-bottom: 1px dotted black; /* If you want dots under the hoverable text */ +} + +/* Tooltip text */ +.tutorial-tooltip .tutorial-tooltiptext { +visibility: hidden; +width: 240px; +background-color: #0295aa; +color: #fff; +font-weight: normal; +font-size: 92%; +line-height: 130%; +text-align: center; +padding: 15px; +border-radius: 6px; + +/* Position the tutorial-tooltip text */ +position: absolute; +z-index: 1; +bottom: 125%; +left: 50%; +margin-left: -120px; + +/* Fade in tutorial-tooltip */ +opacity: 0; +transition: opacity 0.3s; +} + +/* Tooltip arrow */ +.tutorial-tooltip .tutorial-tooltiptext::after { +content: ""; +position: absolute; +top: 100%; +left: 50%; +margin-left: -5px; +border-width: 5px; +border-style: solid; +border-color: #0295aa transparent transparent transparent; +} + +/* Show the tooltip text when you mouse over the tooltip container */ +.tutorial-tooltip:hover .tutorial-tooltiptext { +visibility: visible; +opacity: 1; +} + +.tutorial-external-link { + text-decoration: underline; + color: #31708f; + } + + diff --git a/Client/WebServer/externalScripts/prism.js b/Client/WebServer/externalScripts/prism.js new file mode 100644 index 000000000..3fcd3fb22 --- /dev/null +++ b/Client/WebServer/externalScripts/prism.js @@ -0,0 +1,1520 @@ +/* PrismJS 1.22.0 +https://prismjs.com/download.html#themes=prism&languages=markup+clike+javascript+json+json5+jsonp */ +/// + +var _self = (typeof window !== 'undefined') + ? window // if in browser + : ( + (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) + ? self // if in worker + : {} // if in node js + ); + +/** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT + * @author Lea Verou + * @namespace + * @public + */ +var Prism = (function (_self){ + +// Private helper vars +var lang = /\blang(?:uage)?-([\w-]+)\b/i; +var uniqueId = 0; + + +var _ = { + /** + * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the + * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load + * additional languages or plugins yourself. + * + * By setting this value to `true`, Prism will not automatically highlight all code elements on the page. + * + * You obviously have to change this value before the automatic highlighting started. To do this, you can add an + * empty Prism object into the global scope before loading the Prism script like this: + * + * ```js + * window.Prism = window.Prism || {}; + * Prism.manual = true; + * // add a new + @@ -49,19 +55,21 @@ style="overflow:hidden; background: url(Images/superalgos-platform.jpg); background-size: cover;" onresize="onResize()">
-

Superalgos is free and open-source, and is constantly improving thanks to the involvement of contributors:

-

Luis Fernando Molina, Julian Molina, Andreja Cobeljic, Matías Benitez, Ira Miller, Eduardo Remis, - Jeff Braun, rico4dev, 9808us, Barry Low, Nikola Bjelogrlic, Hirajin Koizuko, Francisco J. Santillán, Viktoria B., Guillermo V., Daniel J., - Javier A., Gustavo J., Romina GS, Pedro P., Thais M., Andrey M., Loui M., Natalia M., Bashar A., Carlos V., Diego M., - Sebastian E., Bogdan P., Marko V., Igor S., Niksa K., Rodrigo M., Nicanor M., Alejandro P., Mateo H., Lan T., Leon A., Uroš R., Filip M., Vladimir J. and Pavle B.

-

You too can help grow and improve Superalgos. Become a contributor!

-

If you like the project, please give it a star and fork it on Github. This helps developers find it on the search!

+

The UI is loading...

+

Superalgos is free, open-source, and is + constantly improving thanks to the involvement of contributors:

+

Luis Fernando Molina, Julian Molina, Andreja Cobeljic, Matías Benitez, Ira Miller, Eduardo Remis, + Jeff Braun, rico4dev, 9808us, Barry Low, Nikola Bjelogrlic, Hirajin Koizuko, Francisco J. Santillán, Norman, + Viktoria B., Guillermo V., Daniel J., + Javier A., Gustavo J., Romina GS, Pedro P., Thais M., Andrey M., Loui M., Natalia M., Bashar A., Carlos V., + Diego M., + Sebastian E., Bogdan P., Marko V., Igor S., Niksa K., Rodrigo M., Nicanor M., Alejandro P., Mateo H., Lan + T., Leon A., Uroš R., Filip M., Vladimir J. and Pavle B.

+

With Superalgos Beta 8, contributing is easier than ever! Become a contributor!

-
- -
+
@@ -75,11 +83,13 @@
- - @@ -87,13 +97,110 @@ onclick="UI.projects.superalgos.spaces.tutorialSpace.previous()" value="">Previous -
+ + + \ No newline at end of file diff --git a/Client/WebServer/main.css b/Client/WebServer/main.css deleted file mode 100644 index 09353bdf0..000000000 --- a/Client/WebServer/main.css +++ /dev/null @@ -1,375 +0,0 @@ -/* latin */ -@font-face { - font-family: 'Saira'; - font-style: normal; - font-weight: 300; - src: local('Saira Light'), local('Saira-Light'), url(Fonts/Saira.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} -/* latin */ -@font-face { - font-family: 'Saira Condensed'; - font-style: normal; - font-weight: 300; - src: local('Saira Condensed Light'), local('SairaCondensed-Light'), url(Fonts/Saira-Condensed.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -} - -@font-face { - font-family: segoeui; - src: url(Fonts/segoeui.woff) format('woff'); - font-weight: normal; - font-style: normal; -} - -.credits { - width: 100%; - margin: auto; - margin-bottom: 50; - text-align: center; - position:absolute; - bottom:0; -} - -.credits p { - font-family: 'Saira Condensed'; - font-size: 140%; - color: whitesmoke; - padding: 0 100; -} - -.red { - color: #e3493c; - font-weight: 700; -} - -.tutorial-step { - padding: 15px; - margin-bottom: 20px; - border: 2px solid; - border-color: #1b998b; - border-radius: 8px; - background-color: #fdfdfd; -} - -.tutorial-summary { - font-size:120%; - color: #808080; - margin:20px 0px 20px 0px; - border-left: 5px solid #fd6a33; - padding-left: 10px; - -} - -.tutorial-summary:before { - content: "Summary: "; - font-weight: bold; -} - -.tutorial-definitionTable { - background-color: #f3f3f3; - border-top-color: #a6e1ec; - padding: 15px; - margin: 20px 0; - border: solid 0px; - vertical-align: middle; - min-width: 100px; - width: 100%; -} - -.tutorial-alert-info { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; - padding: 15px; - border: 1px solid transparent; - border-radius: 4px; - margin: 20px 0; - border-top-color: #a6e1ec; - width: 90%; -} - -.tutorial-alert-success { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; - padding: 15px; - border: 1px solid transparent; - border-radius: 4px; - margin: 20px 0; - border-top-color: #c9e2b3; - width: 90%; -} - -.tutorial-alert-important { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; - padding: 15px; - border: 1px solid transparent; - border-radius: 4px; - margin: 20px 0; - border-top-color: #f7e1b5; - width: 90%; -} - -.tutorial-alert-warning { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; - padding: 15px; - border: 1px solid transparent; - border-radius: 4px; - margin: 20px 0; - border-top-color: #e4b9c0; - width: 90%; -} - -.tutorial-callout { - padding: 20px; - margin: 20px 0; - border: 1px solid #eee; - border-left-width: 5px; - border-radius: 3px; - border-left-color: #bcd643; - font-weight: 500; - width: 90%; -} - -.tutorial-info-circle:before { - content:"\f05a" -} - -.tutorial-check-square-o:before { - content:"\f046" -} - -.tutorial-exclamation-circle:before { - content:"\f06a" -} - -.tutorial-warning:before,.fa-exclamation-triangle:before { - content:"\f06a" -} - -.tutorial-fa { - - font:normal normal normal 14px/1 FontAwesome; - font-size:inherit; - text-rendering:auto; - -webkit-font-smoothing:antialiased; - -moz-osx-font-smoothing:grayscale -} - -.tutorial-font-small { - - font:normal normal normal 14px/1 "segoeui"; - font-size:inherit; - text-rendering:auto; - -webkit-font-smoothing:antialiased; - -moz-osx-font-smoothing:grayscale; - line-height: 150% -} - -li > .tutorial-font-small { - margin-bottom:7px; -} - -div.tutorial-font-small { - margin-bottom:7px; -} - -.tutorial-font-medium { - - font:normal normal normal 32px/1 "segoeui"; - text-rendering:auto; - -webkit-font-smoothing:antialiased; - -moz-osx-font-smoothing:grayscale; - line-height: 150% -} - -.tutorial-font-large { - - font:bold normal normal 40px/1 "segoeui"; - text-rendering:auto; - -webkit-font-smoothing:antialiased; - -moz-osx-font-smoothing:grayscale; - line-height: 150% -} - -.tutorial-font-bold-small { - - font:bold normal normal 14px/1 "segoeui"; - font-size:inherit; - text-rendering:auto; - -webkit-font-smoothing:antialiased; - -moz-osx-font-smoothing:grayscale; - line-height: 150% -} - -.tutorial-stop-button { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; - padding: 12px; - border: 1px solid transparent; - border-radius: 4px; - margin: 20px 0; - border-top-color: #e4b9c0; - min-width: 100px; -} - -.tutorial-skip-button { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; - padding: 12px; - border: 1px solid transparent; - border-radius: 4px; - margin: 20px 0; - border-top-color: #f7e1b5; - min-width: 100px; -} - -.tutorial-previous-button { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; - padding: 12px; - border: 1px solid transparent; - border-radius: 4px; - margin: 20px 0; - border-top-color: #c9e2b3; - min-width: 100px; -} - -.tutorial-next-button { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; - padding: 12px; - border: 1px solid transparent; - border-radius: 4px; - margin: 20px 0; - border-top-color: #c9e2b3; - min-width: 100px; -} - -.tutorial-form { - padding: 5px; - border: solid 0px; - margin-left: auto; - margin-right: auto; - margin-bottom: 20px; - width: 100%; -} - -.tutorial-buttonsTable { - border-top-color: #a6e1ec; - border: solid 0px; - vertical-align: middle; - min-width: 100px; - width: 95%; - margin-left: auto; - margin-right: auto; -} - -.tutorial-image-container { - padding: 5px 15px 5px 5px; - border: solid 0px; - margin-left: auto; - margin-right: auto; - width: 100%; -} - -/* Tooltip container */ -.tooltip { - position: relative; - display: inline-block; - border-bottom: 1px dotted black; /* If you want dots under the hoverable text */ -} - -/* Tooltip text */ -.tooltip .tooltiptext { - visibility: hidden; - width: 240px; - background-color: #0295aa; - color: #fff; - font-weight: normal; - font-size: 92%; - line-height: 130%; - text-align: center; - padding: 15px; - border-radius: 6px; - - /* Position the tooltip text */ - position: absolute; - z-index: 1; - bottom: 125%; - left: 50%; - margin-left: -120px; - - - /* Fade in tooltip */ - opacity: 0; - transition: opacity 0.3s; -} - -/* Tooltip arrow */ -.tooltip .tooltiptext::after { - content: ""; - position: absolute; - top: 100%; - left: 50%; - margin-left: -5px; - border-width: 5px; - border-style: solid; - border-color: #0295aa transparent transparent transparent; -} - -/* Show the tooltip text when you mouse over the tooltip container */ -.tooltip:hover .tooltiptext { - visibility: visible; - opacity: 1; -} - -kbd { - padding: 2px 8px; - font-size: 125%; - font-weight: 500; - color: #000; - background-color: #bcd643; - border-radius: 5px; - border-style: outset; - border-width: 1px; -} - -code { - color: #d9534f; - background-color:rgb(200,200,200,0.1); - padding: 2 0; - font-size:110%; -} - -/* Tutorial Links */ - -a:link.tutorial-link { - text-decoration: none; - color: #31708f; - } - - a:visited.tutorial-link { - text-decoration: none; - color: #31708f; - } - - a:hover.tutorial-link { - text-decoration: underline; - color: #31708f; - } - - a:active.tutorial-link { - text-decoration: none; - color: #31708f; - } - diff --git a/Client/client.js b/Client/client.js index 33fac1b5a..71964d0d8 100644 --- a/Client/client.js +++ b/Client/client.js @@ -5,12 +5,13 @@ let ENVIRONMENT_MODULE = ENVIRONMENT.newEnvironment() global.env = ENVIRONMENT_MODULE process.on('uncaughtException', function (err) { - if (err.message.indexOf("EADDRINUSE") > 0) { + if (err.message && err.message.indexOf("EADDRINUSE") > 0) { console.log("A Superalgos Client cannot be started. Reason: the port " + port + " is already in use by another application.") return } console.log('[ERROR] Client -> client-> uncaughtException -> err.message = ' + err.message) console.log('[ERROR] Client -> client-> uncaughtException -> err.stack = ' + err.stack) + console.log('[ERROR] Client -> client-> uncaughtException -> err = ' + err) process.exit(1) }) @@ -126,11 +127,12 @@ try { console.log('Http Interface ..................... Listening at port ' + global.env.HTTP_INTERFACE_PORT) console.log('') - console.log("You are running Superalgos Beta 7 SP 1") + console.log("You are running Superalgos Beta 8") console.log('') console.log("What's new? The following was implemented here:") console.log('') - console.log('Multi-Project Infrastructure ....... This allow us to integrate crypto projects into Superalgos. Note that with this upgrade you will need to download and calculate market data again.') + console.log('Task Server Upgraded ............... This allow us to integrate crypto projects into the Task Server, opening the door to new types of bots defined at other projects.') + console.log('In-App Documentation Improved ...... This allow users to improve the docs and also to document other integrated projects.') console.log('') console.log("What's next? At the development pipeline we have:") console.log('') diff --git a/Client/httpInterface.js b/Client/httpInterface.js index 45d41ed46..1defbaedf 100644 --- a/Client/httpInterface.js +++ b/Client/httpInterface.js @@ -301,6 +301,412 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE } break + case 'Docs': + { + switch (requestParameters[2]) { // switch by command + case 'Save-Node-Schema': { + getBody(processRequest) + + async function processRequest(body) { + try { + let docsSchema = JSON.parse(body) + let project = requestParameters[3] + let filePath = global.env.PATH_TO_PROJECTS + '/' + project + '/Schemas/Docs-Nodes' + + checkAllSchmemaDocuments('Node', docsSchema, filePath) + respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), httpResponse) + + } catch (err) { + console.log('[ERROR] httpInterface -> Docs -> Save-Node-Schema -> Method call produced an error.') + console.log('[ERROR] httpInterface -> Docs -> Save-Node-Schema -> err.stack = ' + err.stack) + console.log('[ERROR] httpInterface -> Docs -> Save-Node-Schema -> Params Received = ' + body) + + let error = { + result: 'Fail Because', + message: err.message, + stack: err.stack + } + respondWithContent(JSON.stringify(error), httpResponse) + } + } + break + } + case 'Save-Concept-Schema': { + getBody(processRequest) + + async function processRequest(body) { + try { + let docsSchema = JSON.parse(body) + let project = requestParameters[3] + let filePath = global.env.PATH_TO_PROJECTS + '/' + project + '/Schemas/Docs-Concepts' + + checkAllSchmemaDocuments('Concept', docsSchema, filePath) + respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), httpResponse) + + } catch (err) { + console.log('[ERROR] httpInterface -> Docs -> Save-Concept-Schema -> Method call produced an error.') + console.log('[ERROR] httpInterface -> Docs -> Save-Concept-Schema -> err.stack = ' + err.stack) + console.log('[ERROR] httpInterface -> Docs -> Save-Concept-Schema -> Params Received = ' + body) + + let error = { + result: 'Fail Because', + message: err.message, + stack: err.stack + } + respondWithContent(JSON.stringify(error), httpResponse) + } + } + break + } + case 'Save-Topic-Schema': { + getBody(processRequest) + + async function processRequest(body) { + try { + let docsSchema = JSON.parse(body) + let project = requestParameters[3] + let filePath = global.env.PATH_TO_PROJECTS + '/' + project + '/Schemas/Docs-Topics' + + checkAllSchmemaDocuments('Topic', docsSchema, filePath) + respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), httpResponse) + + } catch (err) { + console.log('[ERROR] httpInterface -> Docs -> Save-Topic-Schema -> Method call produced an error.') + console.log('[ERROR] httpInterface -> Docs -> Save-Topic-Schema -> err.stack = ' + err.stack) + console.log('[ERROR] httpInterface -> Docs -> Save-Topic-Schema -> Params Received = ' + body) + + let error = { + result: 'Fail Because', + message: err.message, + stack: err.stack + } + respondWithContent(JSON.stringify(error), httpResponse) + } + } + break + } + case 'Save-Tutorial-Schema': { + getBody(processRequest) + + async function processRequest(body) { + try { + let docsSchema = JSON.parse(body) + let project = requestParameters[3] + let filePath = global.env.PATH_TO_PROJECTS + '/' + project + '/Schemas/Docs-Tutorials' + + checkAllSchmemaDocuments('Tutorial', docsSchema, filePath) + respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), httpResponse) + + } catch (err) { + console.log('[ERROR] httpInterface -> Docs -> Save-Tutorial-Schema -> Method call produced an error.') + console.log('[ERROR] httpInterface -> Docs -> Save-Tutorial-Schema -> err.stack = ' + err.stack) + console.log('[ERROR] httpInterface -> Docs -> Save-Tutorial-Schema -> Params Received = ' + body) + + let error = { + result: 'Fail Because', + message: err.message, + stack: err.stack + } + respondWithContent(JSON.stringify(error), httpResponse) + } + } + break + } + case 'Save-Book-Schema': { + getBody(processRequest) + + async function processRequest(body) { + try { + let docsSchema = JSON.parse(body) + let project = requestParameters[3] + let filePath = global.env.PATH_TO_PROJECTS + '/' + project + '/Schemas/Docs-Books' + + checkAllSchmemaDocuments('Book', docsSchema, filePath) + respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), httpResponse) + + } catch (err) { + console.log('[ERROR] httpInterface -> Docs -> Save-Book-Schema -> Method call produced an error.') + console.log('[ERROR] httpInterface -> Docs -> Save-Book-Schema -> err.stack = ' + err.stack) + console.log('[ERROR] httpInterface -> Docs -> Save-Book-Schema -> Params Received = ' + body) + + let error = { + result: 'Fail Because', + message: err.message, + stack: err.stack + } + respondWithContent(JSON.stringify(error), httpResponse) + } + } + break + } + } + + function checkAllSchmemaDocuments(category, docsSchema, filePath) { + const fs = require('fs') + + for (let i = 0; i < docsSchema.length; i++) { + let schemaDocument = docsSchema[i] + let fileName = schemaDocument.type.toLowerCase() + for (let j = 0; j < 10; j++) { + fileName = cleanFileName(fileName) + } + let pageNumber = '00' + schemaDocument.pageNumber + + switch (category) { + case 'Topic': { + fileName = schemaDocument.topic.toLowerCase() + '-' + pageNumber.substring(pageNumber.length - 3, pageNumber.length) + '-' + schemaDocument.type.toLowerCase() + fileName = cleanFileName(fileName) + break + } + case 'Tutorial': { + fileName = schemaDocument.tutorial.toLowerCase() + '-' + pageNumber.substring(pageNumber.length - 3, pageNumber.length) + '-' + schemaDocument.type.toLowerCase() + fileName = cleanFileName(fileName) + break + } + } + fileName = fileName + '.json' + + if (schemaDocument.deleted === true) { + try { + fs.unlinkSync(filePath + '/' + fileName) + console.log('[SUCCESS] ' + filePath + '/' + fileName + ' deleted.') + } catch (err) { + console.log('[ERROR] httpInterface -> Docs -> Save -> ' + filePath + '/' + fileName + ' could not be deleted.') + console.log('[ERROR] httpInterface -> Docs -> Save -> Resolve the issue that is preventing the Client to delete this file. Look at the error message below as a guide. At the UI you will need to delete this page again in order for the Client to retry next time you execute the docs.save command.') + console.log('[ERROR] httpInterface -> Docs -> Save -> err.stack = ' + err.stack) + } + } else { + if (schemaDocument.updated === true || schemaDocument.created === true) { + try { + let created = schemaDocument.created + let updated = schemaDocument.updated + schemaDocument.updated = undefined + schemaDocument.created = undefined + let fileContent = JSON.stringify(schemaDocument, undefined, 4) + fs.writeFileSync(filePath + '/' + fileName, fileContent) + if (created === true) { + console.log('[SUCCESS] ' + filePath + '/' + fileName + ' created.') + } else { + if (updated === true) { + console.log('[SUCCESS] ' + filePath + '/' + fileName + ' updated.') + } + } + + } catch (err) { + console.log('[ERROR] httpInterface -> Docs -> Save -> ' + filePath + '/' + fileName + ' could not be created / updated.') + console.log('[ERROR] httpInterface -> Docs -> Save -> Dont worry, the changes are still at the UI, but you will need to do 2 things: 1) Resolve the issue that is preventing the Client to write this file. Look at the error message below as a guide. 2) At the UI, locate this page and edit it with some small change again, so that is flagged that contains changes, otherwise those original changes will be ignored by the Client during the next docs.save command execution.') + console.log('[ERROR] httpInterface -> Docs -> Save -> err.stack = ' + err.stack) + } + } + } + } + } + + function cleanFileName(fileName) { + for (let i = 0; i < 10; i++) { + fileName = fileName + .replace(' ', '-') + .replace('--', '-') + .replace('?', '') + .replace('#', '') + .replace('$', '') + .replace('%', '') + .replace('^', '') + .replace('&', '') + .replace('*', '') + .replace('(', '') + .replace(')', '') + .replace('!', '') + .replace('..', '.') + .replace(',', '') + .replace('\'', '') + } + return fileName + } + } + break + + case 'App': { + switch (requestParameters[2]) { // switch by command + case 'Contribute': { + try { + const commitMessage = unescape(requestParameters[3]) + const username = unescape(requestParameters[4]) + const token = unescape(requestParameters[5]) + const currentBranch = unescape(requestParameters[6]) + const contributionsBranch = unescape(requestParameters[7]) + + contribute() + + async function contribute() { + await doGit() + await doGithub() + respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), httpResponse) + } + + async function doGit() { + const simpleGit = require('simple-git'); + const options = { + baseDir: process.cwd(), + binary: 'git', + maxConcurrentProcesses: 6, + } + const git = simpleGit(options) + + try { + await git.add('./*') + await git.commit(commitMessage) + await git.push('origin', currentBranch) + } catch(err) { + console.log('[ERROR] Error running Contribute.') + console.log(err.stack) + throw (err) + } + } + + async function doGithub() { + + const { Octokit } = require("@octokit/rest") + + const octokit = new Octokit({ + auth: token, + userAgent: 'Superalgos Beta 8' + }) + + const repo = 'Superalgos' + const owner = 'Superalgos' + const head = username + ':' + contributionsBranch + const base = currentBranch + const title = 'Contribution: ' + commitMessage + + try { + await octokit.pulls.create({ + owner, + repo, + title, + head, + base, + }); + } catch (err) { + if (err.stack.indexOf('A pull request already exists') < 0) { + throw (err) + } + } + } + + } catch (err) { + console.log('[ERROR] httpInterface -> App -> Contribute -> Method call produced an error.') + console.log('[ERROR] httpInterface -> App -> Contribute -> err.stack = ' + err.stack) + console.log('[ERROR] httpInterface -> App -> Contribute -> commitMessage = ' + commitMessage) + console.log('[ERROR] httpInterface -> App -> Contribute -> username = ' + username) + console.log('[ERROR] httpInterface -> App -> Contribute -> token = ' + token) + + let error = { + result: 'Fail Because', + message: err.message, + stack: err.stack + } + respondWithContent(JSON.stringify(error), httpResponse) + } + break + } + case 'Update': { + try { + const currentBranch = unescape(requestParameters[3]) + update() + + async function update() { + let message = await doGit() + + let customResponse = { + result: global.CUSTOM_OK_RESPONSE.result, + message: message + } + respondWithContent(JSON.stringify(customResponse), httpResponse) + } + + async function doGit() { + const simpleGit = require('simple-git'); + const options = { + baseDir: process.cwd(), + binary: 'git', + maxConcurrentProcesses: 6, + } + const git = simpleGit(options) + + return await git.pull('upstream', currentBranch) + } + + } catch (err) { + console.log('[ERROR] httpInterface -> App -> Update -> Method call produced an error.') + console.log('[ERROR] httpInterface -> App -> Update -> err.stack = ' + err.stack) + console.log('[ERROR] httpInterface -> App -> Update -> commitMessage = ' + commitMessage) + console.log('[ERROR] httpInterface -> App -> Update -> username = ' + username) + console.log('[ERROR] httpInterface -> App -> Update -> token = ' + token) + + let error = { + result: 'Fail Because', + message: err.message, + stack: err.stack + } + respondWithContent(JSON.stringify(error), httpResponse) + } + break + } + + case 'Checkout': { + try { + const currentBranch = unescape(requestParameters[3]) + checkout() + + async function checkout() { + let result = await doGit() + + if (result === true) { + respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), httpResponse) + } else { + respondWithContent(JSON.stringify(global.DEFAULT_FAIL_RESPONSE), httpResponse) + } + } + + async function doGit() { + const simpleGit = require('simple-git'); + const options = { + baseDir: process.cwd(), + binary: 'git', + maxConcurrentProcesses: 6, + } + const git = simpleGit(options) + try { + await git.checkout(currentBranch) + } catch (err) { + console.log('[ERROR] Error changing current branch to ' + currentBranch) + console.log(err.stack) + return false + } + return true + } + + } catch (err) { + console.log('[ERROR] httpInterface -> App -> Update -> Method call produced an error.') + console.log('[ERROR] httpInterface -> App -> Update -> err.stack = ' + err.stack) + console.log('[ERROR] httpInterface -> App -> Update -> commitMessage = ' + commitMessage) + console.log('[ERROR] httpInterface -> App -> Update -> username = ' + username) + console.log('[ERROR] httpInterface -> App -> Update -> token = ' + token) + + let error = { + result: 'Fail Because', + message: err.message, + stack: err.stack + } + respondWithContent(JSON.stringify(error), httpResponse) + } + break + } + } + } + break + case 'LegacyPlotter.js': { respondWithFile(global.env.PATH_TO_CLIENT + 'WebServer/LegacyPlotter.js', httpResponse) @@ -356,9 +762,30 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE } break - case 'Gifs': // This means the Gifs folder under Projects. + case 'GIFs': // This means the GIFs folder under Projects. { - let path = global.env.PATH_TO_PROJECTS + '/' + requestParameters[2] + '/Gifs' + let path = global.env.PATH_TO_PROJECTS + '/' + requestParameters[2] + '/GIFs' + + if (requestParameters[3] !== undefined) { + path = path + '/' + requestParameters[3] + } + + if (requestParameters[4] !== undefined) { + path = path + '/' + requestParameters[4] + } + + if (requestParameters[5] !== undefined) { + path = path + '/' + requestParameters[5] + } + + path = unescape(path) + respondWithImage(path, httpResponse) + } + break + + case 'PNGs': // This means the PNGs folder under Projects. + { + let path = global.env.PATH_TO_PROJECTS + '/' + requestParameters[2] + '/PNGs' if (requestParameters[3] !== undefined) { path = path + '/' + requestParameters[3] @@ -433,7 +860,7 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE case 'Schema': { - sendSchema(global.env.PATH_TO_PROJECTS + '/' + requestParameters[2] + '/Schemas/', requestParameters[3] + '.json') + sendSchema(global.env.PATH_TO_PROJECTS + '/' + requestParameters[2] + '/Schemas/', requestParameters[3]) } break @@ -563,7 +990,7 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE function onDirRead(err, fileList) { if (err) { - console.log('[WARN] Could not read this directory content. filePath = ' + dirPath) + // This happens the first time you run the software. respondWithContent(JSON.stringify(global.DEFAULT_FAIL_RESPONSE), httpResponse) return } else { @@ -756,11 +1183,48 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE } break + case 'tutorial.css': + { + sendStyleSheet('tutorial.css') + } + break + + case 'docs.css': + { + sendStyleSheet('docs.css') + } + break + + case 'context-menu.css': + { + sendStyleSheet('context-menu.css') + } + break + + case 'credits.css': + { + sendStyleSheet('credits.css') + } + break + + case 'docs.css': + { + sendStyleSheet('docs.css') + } + break + case 'font-awasome.css': { sendStyleSheet('font-awasome.css') } break + + case 'prism.css': + { + sendStyleSheet('prism.css') + } + break + case 'ExecuteTerminalCommand': { let command = unescape(requestParameters[2]) @@ -831,21 +1295,65 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE lsWithGrep(); } - function sendSchema(filePath, fileName) { + function sendSchema(filePath, schemaType) { let fs = require('fs') - try { - filePath = filePath + fileName - fs.readFile(filePath, onFileRead) - } catch (e) { - console.log('[ERROR] Error reading the ' + fileName, e) - } + if (schemaType === 'AppSchema') { + let fileName = 'AppSchema.json' + try { + filePath = filePath + fileName + fs.readFile(filePath, onFileRead) + } catch (e) { + console.log('[ERROR] Error reading the ' + fileName, e) + } - function onFileRead(err, schema) { - if (err) { - respondWithContent(undefined, httpResponse) - } else { + function onFileRead(err, schema) { + if (err) { + respondWithContent(undefined, httpResponse) + } else { + respondWithContent(schema, httpResponse) + } + } + } else { + try { + let folder = '' + switch (schemaType) { + case 'DocsNodeSchema': { + folder = 'Docs-Nodes' + break + } + case 'DocsConceptSchema': { + folder = 'Docs-Concepts' + break + } + case 'DocsTopicSchema': { + folder = 'Docs-Topics' + break + } + case 'DocsTutorialSchema': { + folder = 'Docs-Tutorials' + break + } + case 'DocsBookSchema': { + folder = 'Docs-Books' + break + } + } + + let schemaArray = [] + let fileList = fs.readdirSync(filePath + '/' + folder) + for (let k = 0; k < fileList.length; k++) { + let name = fileList[k] + let fileContent = fs.readFileSync(filePath + '/' + folder + '/' + name) + let schemaDocument = JSON.parse(fileContent) + schemaArray.push(schemaDocument) + } + let schema = JSON.stringify(schemaArray) respondWithContent(schema, httpResponse) + } catch (err) { + console.log('Could not send Schema:', filePath, schemaType) + console.log(err.stack) + respondWithContent("[]", httpResponse) } } } @@ -853,7 +1361,7 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE function sendStyleSheet(fileName) { let fs = require('fs') try { - let filePath = global.env.PATH_TO_CLIENT + 'WebServer/' + fileName + let filePath = global.env.PATH_TO_CLIENT + 'WebServer/css/' + fileName fs.readFile(filePath, onFileRead) function onFileRead(err, file) { diff --git a/Client/node_modules/@kwsites/file-exists/CHANGELOG.md b/Client/node_modules/@kwsites/file-exists/CHANGELOG.md new file mode 100644 index 000000000..9361ecb08 --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/CHANGELOG.md @@ -0,0 +1,12 @@ + +# Release History + +## 1.1.1 + +- Add dependency on `debug` to log results of the file system checks +- Add `jest` tests + +# 1.0.0 + +- First public release, a simple typescript library for checking whether a path exists + on the file system and optionally whether it points to a file or folder. diff --git a/Client/node_modules/@kwsites/file-exists/LICENSE b/Client/node_modules/@kwsites/file-exists/LICENSE new file mode 100644 index 000000000..b123c04ba --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2015 Steve King + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Client/node_modules/@kwsites/file-exists/dist/index.d.ts b/Client/node_modules/@kwsites/file-exists/dist/index.d.ts new file mode 100644 index 000000000..8420b1093 --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/dist/index.d.ts @@ -0,0 +1 @@ +export * from './src'; diff --git a/Client/node_modules/@kwsites/file-exists/dist/index.js b/Client/node_modules/@kwsites/file-exists/dist/index.js new file mode 100644 index 000000000..87332ba70 --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/dist/index.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("./src")); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/Client/node_modules/@kwsites/file-exists/dist/index.js.map b/Client/node_modules/@kwsites/file-exists/dist/index.js.map new file mode 100644 index 000000000..3b75ca481 --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;AACA,2BAAsB"} \ No newline at end of file diff --git a/Client/node_modules/@kwsites/file-exists/dist/src/index.d.ts b/Client/node_modules/@kwsites/file-exists/dist/src/index.d.ts new file mode 100644 index 000000000..3d234cd7e --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/dist/src/index.d.ts @@ -0,0 +1,19 @@ +/** + * Synchronous validation of a path existing either as a file or as a directory. + * + * @param {string} path The path to check + * @param {number} type One or both of the exported numeric constants + */ +export declare function exists(path: string, type?: number): boolean; +/** + * Constant representing a file + */ +export declare const FILE = 1; +/** + * Constant representing a folder + */ +export declare const FOLDER = 2; +/** + * Constant representing either a file or a folder + */ +export declare const READABLE: number; diff --git a/Client/node_modules/@kwsites/file-exists/dist/src/index.js b/Client/node_modules/@kwsites/file-exists/dist/src/index.js new file mode 100644 index 000000000..8a41c70f8 --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/dist/src/index.js @@ -0,0 +1,55 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const fs_1 = require("fs"); +const debug_1 = __importDefault(require("debug")); +const log = debug_1.default('@kwsites/file-exists'); +function check(path, isFile, isDirectory) { + log(`checking %s`, path); + try { + const stat = fs_1.statSync(path); + if (stat.isFile() && isFile) { + log(`[OK] path represents a file`); + return true; + } + if (stat.isDirectory() && isDirectory) { + log(`[OK] path represents a directory`); + return true; + } + log(`[FAIL] path represents something other than a file or directory`); + return false; + } + catch (e) { + if (e.code === 'ENOENT') { + log(`[FAIL] path is not accessible: %o`, e); + return false; + } + log(`[FATAL] %o`, e); + throw e; + } +} +/** + * Synchronous validation of a path existing either as a file or as a directory. + * + * @param {string} path The path to check + * @param {number} type One or both of the exported numeric constants + */ +function exists(path, type = exports.READABLE) { + return check(path, (type & exports.FILE) > 0, (type & exports.FOLDER) > 0); +} +exports.exists = exists; +/** + * Constant representing a file + */ +exports.FILE = 1; +/** + * Constant representing a folder + */ +exports.FOLDER = 2; +/** + * Constant representing either a file or a folder + */ +exports.READABLE = exports.FILE + exports.FOLDER; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/Client/node_modules/@kwsites/file-exists/dist/src/index.js.map b/Client/node_modules/@kwsites/file-exists/dist/src/index.js.map new file mode 100644 index 000000000..68f2b8a29 --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/dist/src/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;AAAA,2BAA8B;AAC9B,kDAA0B;AAE1B,MAAM,GAAG,GAAG,eAAK,CAAC,sBAAsB,CAAC,CAAC;AAE1C,SAAS,KAAK,CAAC,IAAY,EAAE,MAAe,EAAE,WAAoB;IAC/D,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAEzB,IAAI;QACD,MAAM,IAAI,GAAG,aAAQ,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,MAAM,EAAE;YAC1B,GAAG,CAAC,6BAA6B,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;SACd;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,WAAW,EAAE;YACpC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC;SACd;QAED,GAAG,CAAC,iEAAiE,CAAC,CAAC;QACvE,OAAO,KAAK,CAAC;KACf;IAAC,OAAO,CAAC,EAAE;QACT,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;YACtB,GAAG,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAC;YAC5C,OAAO,KAAK,CAAC;SACf;QAED,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACrB,MAAM,CAAC,CAAC;KACV;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,MAAM,CAAC,IAAY,EAAE,OAAe,gBAAQ;IACzD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,YAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,cAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9D,CAAC;AAFD,wBAEC;AAED;;GAEG;AACU,QAAA,IAAI,GAAG,CAAC,CAAC;AAEtB;;GAEG;AACU,QAAA,MAAM,GAAG,CAAC,CAAC;AAExB;;GAEG;AACU,QAAA,QAAQ,GAAG,YAAI,GAAG,cAAM,CAAC"} \ No newline at end of file diff --git a/Client/node_modules/@kwsites/file-exists/dist/test/__mocks__/fs.d.ts b/Client/node_modules/@kwsites/file-exists/dist/test/__mocks__/fs.d.ts new file mode 100644 index 000000000..ab80d332b --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/dist/test/__mocks__/fs.d.ts @@ -0,0 +1,7 @@ +export declare function statSync(...args: any[]): any; +export declare function addStatSyncMock(fn: any): void; +export declare function assertMocksUsed(): void; +declare const mockFs: { + statSync: typeof statSync; +}; +export default mockFs; diff --git a/Client/node_modules/@kwsites/file-exists/dist/test/__mocks__/fs.js b/Client/node_modules/@kwsites/file-exists/dist/test/__mocks__/fs.js new file mode 100644 index 000000000..cd46c71ca --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/dist/test/__mocks__/fs.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +let statSyncMocks = []; +function statSync(...args) { + const mock = statSyncMocks.shift(); + if (typeof mock !== 'function') { + throw new Error(`fs.statSync called without configuring a mock`); + } + return mock(...args); +} +exports.statSync = statSync; +function addStatSyncMock(fn) { + statSyncMocks.push(fn); +} +exports.addStatSyncMock = addStatSyncMock; +function assertMocksUsed() { + if (statSyncMocks.length) { + throw new Error(`fs.afterEach: statSync has ${statSyncMocks.length} unused mocks`); + } +} +exports.assertMocksUsed = assertMocksUsed; +const mockFs = { + statSync, +}; +exports.default = mockFs; +//# sourceMappingURL=fs.js.map \ No newline at end of file diff --git a/Client/node_modules/@kwsites/file-exists/dist/test/__mocks__/fs.js.map b/Client/node_modules/@kwsites/file-exists/dist/test/__mocks__/fs.js.map new file mode 100644 index 000000000..e2a3d1688 --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/dist/test/__mocks__/fs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../test/__mocks__/fs.ts"],"names":[],"mappings":";;AACA,IAAI,aAAa,GAAU,EAAE,CAAC;AAE9B,SAAgB,QAAQ,CAAC,GAAG,IAAW;IACpC,MAAO,IAAI,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC;IACpC,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;KACnE;IAED,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,CAAC;AAPD,4BAOC;AAED,SAAgB,eAAe,CAAC,EAAO;IACpC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC;AAFD,0CAEC;AAED,SAAgB,eAAe;IAC5B,IAAI,aAAa,CAAC,MAAM,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,8BAA8B,aAAa,CAAC,MAAM,eAAe,CAAC,CAAC;KACrF;AACJ,CAAC;AAJD,0CAIC;AAED,MAAM,MAAM,GAAG;IACZ,QAAQ;CACV,CAAA;AAED,kBAAe,MAAM,CAAC"} \ No newline at end of file diff --git a/Client/node_modules/@kwsites/file-exists/dist/test/exists.spec.d.ts b/Client/node_modules/@kwsites/file-exists/dist/test/exists.spec.d.ts new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/dist/test/exists.spec.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@kwsites/file-exists/dist/test/exists.spec.js b/Client/node_modules/@kwsites/file-exists/dist/test/exists.spec.js new file mode 100644 index 000000000..a36b549d8 --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/dist/test/exists.spec.js @@ -0,0 +1,77 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +jest.mock('fs'); +//@ts-ignore +const fs_1 = require("fs"); +const src_1 = require("../src"); +describe(`exists`, () => { + let statSync; + let statSyncMock; + let path; + beforeEach(() => { + path = `./path/${Math.random()}`; + fs_1.addStatSyncMock(statSyncMock = jest.fn(() => statSync())); + }); + afterEach(() => { + fs_1.assertMocksUsed(); + statSync = statSyncMock = undefined; + }); + describe('known errors', () => { + beforeEach(() => givenStatSyncThrows({ code: 'ENOENT' })); + it('with type', () => { + expect(src_1.exists(path, src_1.READABLE)).toBe(false); + }); + it('with type omitted', () => { + expect(src_1.exists(path)).toBe(false); + }); + }); + describe('unknown errors', () => { + let err; + beforeEach(() => err = givenStatSyncThrows(new Error('something'))); + it('with type', () => { + expect(() => src_1.exists(path, src_1.READABLE)).toThrow(err); + }); + it('with type omitted', () => { + expect(() => src_1.exists(path)).toThrow(err); + }); + }); + describe('path is a file', () => { + beforeEach(() => givenStatSyncIsA('file')); + existsReturns(true, false, true); + }); + describe('path is a folder', () => { + beforeEach(() => givenStatSyncIsA('folder')); + existsReturns(false, true, true); + }); + describe('path is unknown', () => { + beforeEach(() => givenStatSyncIsA('unknown')); + existsReturns(false, false, false); + }); + function existsReturns(file, folder, readable) { + it('when searching for a file', () => { + expect(src_1.exists(path, src_1.FILE)).toBe(file); + }); + it('when searching for a folder', () => { + expect(src_1.exists(path, src_1.FOLDER)).toBe(folder); + }); + it('when searching for either', () => { + expect(src_1.exists(path, src_1.READABLE)).toBe(readable); + }); + it('when searching without a type', () => { + expect(src_1.exists(path)).toBe(readable); + }); + } + function givenStatSyncThrows(err) { + statSync = () => { throw err; }; + return err; + } + function givenStatSyncIsA(type) { + const mockStat = { + isFile() { return type === 'file'; }, + isDirectory() { return type === 'folder'; }, + }; + statSync = () => mockStat; + return mockStat; + } +}); +//# sourceMappingURL=exists.spec.js.map \ No newline at end of file diff --git a/Client/node_modules/@kwsites/file-exists/dist/test/exists.spec.js.map b/Client/node_modules/@kwsites/file-exists/dist/test/exists.spec.js.map new file mode 100644 index 000000000..669176aa9 --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/dist/test/exists.spec.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exists.spec.js","sourceRoot":"","sources":["../../test/exists.spec.ts"],"names":[],"mappings":";;AACA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEhB,YAAY;AACZ,2BAAsD;AACtD,gCAAwD;AAExD,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IAErB,IAAI,QAAa,CAAC;IAClB,IAAI,YAAiB,CAAC;IACtB,IAAI,IAAY,CAAC;IAEjB,UAAU,CAAC,GAAG,EAAE;QACb,IAAI,GAAG,UAAU,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QACjC,oBAAe,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACZ,oBAAe,EAAE,CAAC;QAClB,QAAQ,GAAG,YAAY,GAAG,SAAS,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC3B,UAAU,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC;QAExD,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YAClB,MAAM,CAAC,YAAM,CAAC,IAAI,EAAE,cAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC1B,MAAM,CAAC,YAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAA;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC7B,IAAI,GAAU,CAAC;QACf,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,mBAAmB,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAEpE,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YAClB,MAAM,CAAC,GAAG,EAAE,CAAC,YAAM,CAAC,IAAI,EAAE,cAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC1B,MAAM,CAAC,GAAG,EAAE,CAAC,YAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAA;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC7B,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3C,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC/B,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7C,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC9B,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9C,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,SAAS,aAAa,CAAE,IAAa,EAAE,MAAe,EAAE,QAAiB;QACtE,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YAClC,MAAM,CAAC,YAAM,CAAC,IAAI,EAAE,UAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACpC,MAAM,CAAC,YAAM,CAAC,IAAI,EAAE,YAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YAClC,MAAM,CAAC,YAAM,CAAC,IAAI,EAAE,cAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACtC,MAAM,CAAC,YAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,SAAS,mBAAmB,CAAE,GAAQ;QACnC,QAAQ,GAAG,GAAG,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAChC,OAAO,GAAG,CAAC;IACd,CAAC;IAED,SAAS,gBAAgB,CAAE,IAAmC;QAC3D,MAAM,QAAQ,GAAG;YACd,MAAM,KAAM,OAAO,IAAI,KAAK,MAAM,CAAA,CAAC,CAAC;YACpC,WAAW,KAAM,OAAO,IAAI,KAAK,QAAQ,CAAA,CAAC,CAAC;SAC7C,CAAC;QACF,QAAQ,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC;QAC1B,OAAO,QAAQ,CAAC;IACnB,CAAC;AAEJ,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/Client/node_modules/@kwsites/file-exists/node_modules/debug/LICENSE b/Client/node_modules/@kwsites/file-exists/node_modules/debug/LICENSE new file mode 100644 index 000000000..658c933d2 --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/node_modules/debug/LICENSE @@ -0,0 +1,19 @@ +(The MIT License) + +Copyright (c) 2014 TJ Holowaychuk + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software +and associated documentation files (the 'Software'), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/Client/node_modules/@kwsites/file-exists/node_modules/debug/README.md b/Client/node_modules/@kwsites/file-exists/node_modules/debug/README.md new file mode 100644 index 000000000..88dae35d9 --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/node_modules/debug/README.md @@ -0,0 +1,455 @@ +# debug +[![Build Status](https://travis-ci.org/visionmedia/debug.svg?branch=master)](https://travis-ci.org/visionmedia/debug) [![Coverage Status](https://coveralls.io/repos/github/visionmedia/debug/badge.svg?branch=master)](https://coveralls.io/github/visionmedia/debug?branch=master) [![Slack](https://visionmedia-community-slackin.now.sh/badge.svg)](https://visionmedia-community-slackin.now.sh/) [![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers) +[![OpenCollective](https://opencollective.com/debug/sponsors/badge.svg)](#sponsors) + + + +A tiny JavaScript debugging utility modelled after Node.js core's debugging +technique. Works in Node.js and web browsers. + +## Installation + +```bash +$ npm install debug +``` + +## Usage + +`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole. + +Example [_app.js_](./examples/node/app.js): + +```js +var debug = require('debug')('http') + , http = require('http') + , name = 'My App'; + +// fake app + +debug('booting %o', name); + +http.createServer(function(req, res){ + debug(req.method + ' ' + req.url); + res.end('hello\n'); +}).listen(3000, function(){ + debug('listening'); +}); + +// fake worker of some kind + +require('./worker'); +``` + +Example [_worker.js_](./examples/node/worker.js): + +```js +var a = require('debug')('worker:a') + , b = require('debug')('worker:b'); + +function work() { + a('doing lots of uninteresting work'); + setTimeout(work, Math.random() * 1000); +} + +work(); + +function workb() { + b('doing some work'); + setTimeout(workb, Math.random() * 2000); +} + +workb(); +``` + +The `DEBUG` environment variable is then used to enable these based on space or +comma-delimited names. + +Here are some examples: + +screen shot 2017-08-08 at 12 53 04 pm +screen shot 2017-08-08 at 12 53 38 pm +screen shot 2017-08-08 at 12 53 25 pm + +#### Windows command prompt notes + +##### CMD + +On Windows the environment variable is set using the `set` command. + +```cmd +set DEBUG=*,-not_this +``` + +Example: + +```cmd +set DEBUG=* & node app.js +``` + +##### PowerShell (VS Code default) + +PowerShell uses different syntax to set environment variables. + +```cmd +$env:DEBUG = "*,-not_this" +``` + +Example: + +```cmd +$env:DEBUG='app';node app.js +``` + +Then, run the program to be debugged as usual. + +npm script example: +```js + "windowsDebug": "@powershell -Command $env:DEBUG='*';node app.js", +``` + +## Namespace Colors + +Every debug instance has a color generated for it based on its namespace name. +This helps when visually parsing the debug output to identify which debug instance +a debug line belongs to. + +#### Node.js + +In Node.js, colors are enabled when stderr is a TTY. You also _should_ install +the [`supports-color`](https://npmjs.org/supports-color) module alongside debug, +otherwise debug will only use a small handful of basic colors. + + + +#### Web Browser + +Colors are also enabled on "Web Inspectors" that understand the `%c` formatting +option. These are WebKit web inspectors, Firefox ([since version +31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) +and the Firebug plugin for Firefox (any version). + + + + +## Millisecond diff + +When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. + + + +When stdout is not a TTY, `Date#toISOString()` is used, making it more useful for logging the debug information as shown below: + + + + +## Conventions + +If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". If you append a "*" to the end of your name, it will always be enabled regardless of the setting of the DEBUG environment variable. You can then use it for normal output as well as debug output. + +## Wildcards + +The `*` character may be used as a wildcard. Suppose for example your library has +debuggers named "connect:bodyParser", "connect:compress", "connect:session", +instead of listing all three with +`DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do +`DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. + +You can also exclude specific debuggers by prefixing them with a "-" character. +For example, `DEBUG=*,-connect:*` would include all debuggers except those +starting with "connect:". + +## Environment Variables + +When running through Node.js, you can set a few environment variables that will +change the behavior of the debug logging: + +| Name | Purpose | +|-----------|-------------------------------------------------| +| `DEBUG` | Enables/disables specific debugging namespaces. | +| `DEBUG_HIDE_DATE` | Hide date from debug output (non-TTY). | +| `DEBUG_COLORS`| Whether or not to use colors in the debug output. | +| `DEBUG_DEPTH` | Object inspection depth. | +| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. | + + +__Note:__ The environment variables beginning with `DEBUG_` end up being +converted into an Options object that gets used with `%o`/`%O` formatters. +See the Node.js documentation for +[`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options) +for the complete list. + +## Formatters + +Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. +Below are the officially supported formatters: + +| Formatter | Representation | +|-----------|----------------| +| `%O` | Pretty-print an Object on multiple lines. | +| `%o` | Pretty-print an Object all on a single line. | +| `%s` | String. | +| `%d` | Number (both integer and float). | +| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. | +| `%%` | Single percent sign ('%'). This does not consume an argument. | + + +### Custom formatters + +You can add custom formatters by extending the `debug.formatters` object. +For example, if you wanted to add support for rendering a Buffer as hex with +`%h`, you could do something like: + +```js +const createDebug = require('debug') +createDebug.formatters.h = (v) => { + return v.toString('hex') +} + +// …elsewhere +const debug = createDebug('foo') +debug('this is hex: %h', new Buffer('hello world')) +// foo this is hex: 68656c6c6f20776f726c6421 +0ms +``` + + +## Browser Support + +You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify), +or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest), +if you don't want to build it yourself. + +Debug's enable state is currently persisted by `localStorage`. +Consider the situation shown below where you have `worker:a` and `worker:b`, +and wish to debug both. You can enable this using `localStorage.debug`: + +```js +localStorage.debug = 'worker:*' +``` + +And then refresh the page. + +```js +a = debug('worker:a'); +b = debug('worker:b'); + +setInterval(function(){ + a('doing some work'); +}, 1000); + +setInterval(function(){ + b('doing some work'); +}, 1200); +``` + + +## Output streams + + By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method: + +Example [_stdout.js_](./examples/node/stdout.js): + +```js +var debug = require('debug'); +var error = debug('app:error'); + +// by default stderr is used +error('goes to stderr!'); + +var log = debug('app:log'); +// set this namespace to log via console.log +log.log = console.log.bind(console); // don't forget to bind to console! +log('goes to stdout'); +error('still goes to stderr!'); + +// set all output to go via console.info +// overrides all per-namespace log settings +debug.log = console.info.bind(console); +error('now goes to stdout via console.info'); +log('still goes to stdout, but via console.info now'); +``` + +## Extend +You can simply extend debugger +```js +const log = require('debug')('auth'); + +//creates new debug instance with extended namespace +const logSign = log.extend('sign'); +const logLogin = log.extend('login'); + +log('hello'); // auth hello +logSign('hello'); //auth:sign hello +logLogin('hello'); //auth:login hello +``` + +## Set dynamically + +You can also enable debug dynamically by calling the `enable()` method : + +```js +let debug = require('debug'); + +console.log(1, debug.enabled('test')); + +debug.enable('test'); +console.log(2, debug.enabled('test')); + +debug.disable(); +console.log(3, debug.enabled('test')); + +``` + +print : +``` +1 false +2 true +3 false +``` + +Usage : +`enable(namespaces)` +`namespaces` can include modes separated by a colon and wildcards. + +Note that calling `enable()` completely overrides previously set DEBUG variable : + +``` +$ DEBUG=foo node -e 'var dbg = require("debug"); dbg.enable("bar"); console.log(dbg.enabled("foo"))' +=> false +``` + +`disable()` + +Will disable all namespaces. The functions returns the namespaces currently +enabled (and skipped). This can be useful if you want to disable debugging +temporarily without knowing what was enabled to begin with. + +For example: + +```js +let debug = require('debug'); +debug.enable('foo:*,-foo:bar'); +let namespaces = debug.disable(); +debug.enable(namespaces); +``` + +Note: There is no guarantee that the string will be identical to the initial +enable string, but semantically they will be identical. + +## Checking whether a debug target is enabled + +After you've created a debug instance, you can determine whether or not it is +enabled by checking the `enabled` property: + +```javascript +const debug = require('debug')('http'); + +if (debug.enabled) { + // do stuff... +} +``` + +You can also manually toggle this property to force the debug instance to be +enabled or disabled. + + +## Authors + + - TJ Holowaychuk + - Nathan Rajlich + - Andrew Rhyne + +## Backers + +Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## Sponsors + +Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## License + +(The MIT License) + +Copyright (c) 2014-2017 TJ Holowaychuk <tj@vision-media.ca> + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Client/node_modules/@kwsites/file-exists/node_modules/debug/package.json b/Client/node_modules/@kwsites/file-exists/node_modules/debug/package.json new file mode 100644 index 000000000..9a8a39a7a --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/node_modules/debug/package.json @@ -0,0 +1,101 @@ +{ + "_from": "debug@^4.1.1", + "_id": "debug@4.3.1", + "_inBundle": false, + "_integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "_location": "/@kwsites/file-exists/debug", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "debug@^4.1.1", + "name": "debug", + "escapedName": "debug", + "rawSpec": "^4.1.1", + "saveSpec": null, + "fetchSpec": "^4.1.1" + }, + "_requiredBy": [ + "/@kwsites/file-exists" + ], + "_resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "_shasum": "f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee", + "_spec": "debug@^4.1.1", + "_where": "C:\\Superalgos\\Client\\node_modules\\@kwsites\\file-exists", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": "./src/browser.js", + "bugs": { + "url": "https://github.com/visionmedia/debug/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + }, + { + "name": "Josh Junon", + "email": "josh@junon.me" + } + ], + "dependencies": { + "ms": "2.1.2" + }, + "deprecated": false, + "description": "small debugging utility", + "devDependencies": { + "brfs": "^2.0.1", + "browserify": "^16.2.3", + "coveralls": "^3.0.2", + "istanbul": "^0.4.5", + "karma": "^3.1.4", + "karma-browserify": "^6.0.0", + "karma-chrome-launcher": "^2.2.0", + "karma-mocha": "^1.3.0", + "mocha": "^5.2.0", + "mocha-lcov-reporter": "^1.2.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6.0" + }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/visionmedia/debug#readme", + "keywords": [ + "debug", + "log", + "debugger" + ], + "license": "MIT", + "main": "./src/index.js", + "name": "debug", + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + }, + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "scripts": { + "lint": "xo", + "test": "npm run test:node && npm run test:browser && npm run lint", + "test:browser": "karma start --single-run", + "test:coverage": "cat ./coverage/lcov.info | coveralls", + "test:node": "istanbul cover _mocha -- test.js" + }, + "version": "4.3.1" +} diff --git a/Client/node_modules/@kwsites/file-exists/node_modules/debug/src/browser.js b/Client/node_modules/@kwsites/file-exists/node_modules/debug/src/browser.js new file mode 100644 index 000000000..cd0fc35d1 --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/node_modules/debug/src/browser.js @@ -0,0 +1,269 @@ +/* eslint-env browser */ + +/** + * This is the web browser implementation of `debug()`. + */ + +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.storage = localstorage(); +exports.destroy = (() => { + let warned = false; + + return () => { + if (!warned) { + warned = true; + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + }; +})(); + +/** + * Colors. + */ + +exports.colors = [ + '#0000CC', + '#0000FF', + '#0033CC', + '#0033FF', + '#0066CC', + '#0066FF', + '#0099CC', + '#0099FF', + '#00CC00', + '#00CC33', + '#00CC66', + '#00CC99', + '#00CCCC', + '#00CCFF', + '#3300CC', + '#3300FF', + '#3333CC', + '#3333FF', + '#3366CC', + '#3366FF', + '#3399CC', + '#3399FF', + '#33CC00', + '#33CC33', + '#33CC66', + '#33CC99', + '#33CCCC', + '#33CCFF', + '#6600CC', + '#6600FF', + '#6633CC', + '#6633FF', + '#66CC00', + '#66CC33', + '#9900CC', + '#9900FF', + '#9933CC', + '#9933FF', + '#99CC00', + '#99CC33', + '#CC0000', + '#CC0033', + '#CC0066', + '#CC0099', + '#CC00CC', + '#CC00FF', + '#CC3300', + '#CC3333', + '#CC3366', + '#CC3399', + '#CC33CC', + '#CC33FF', + '#CC6600', + '#CC6633', + '#CC9900', + '#CC9933', + '#CCCC00', + '#CCCC33', + '#FF0000', + '#FF0033', + '#FF0066', + '#FF0099', + '#FF00CC', + '#FF00FF', + '#FF3300', + '#FF3333', + '#FF3366', + '#FF3399', + '#FF33CC', + '#FF33FF', + '#FF6600', + '#FF6633', + '#FF9900', + '#FF9933', + '#FFCC00', + '#FFCC33' +]; + +/** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ + +// eslint-disable-next-line complexity +function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { + return true; + } + + // Internet Explorer and Edge do not support colors. + if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + + // Is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || + // Is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || + // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || + // Double check webkit in userAgent just in case we are in a worker + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); +} + +/** + * Colorize log arguments if enabled. + * + * @api public + */ + +function formatArgs(args) { + args[0] = (this.useColors ? '%c' : '') + + this.namespace + + (this.useColors ? ' %c' : ' ') + + args[0] + + (this.useColors ? '%c ' : ' ') + + '+' + module.exports.humanize(this.diff); + + if (!this.useColors) { + return; + } + + const c = 'color: ' + this.color; + args.splice(1, 0, c, 'color: inherit'); + + // The final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, match => { + if (match === '%%') { + return; + } + index++; + if (match === '%c') { + // We only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; + } + }); + + args.splice(lastC, 0, c); +} + +/** + * Invokes `console.debug()` when available. + * No-op when `console.debug` is not a "function". + * If `console.debug` is not available, falls back + * to `console.log`. + * + * @api public + */ +exports.log = console.debug || console.log || (() => {}); + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(namespaces) { + try { + if (namespaces) { + exports.storage.setItem('debug', namespaces); + } else { + exports.storage.removeItem('debug'); + } + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ +function load() { + let r; + try { + r = exports.storage.getItem('debug'); + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } + + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== 'undefined' && 'env' in process) { + r = process.env.DEBUG; + } + + return r; +} + +/** + * Localstorage attempts to return the localstorage. + * + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private + */ + +function localstorage() { + try { + // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context + // The Browser also has localStorage in the global context. + return localStorage; + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } +} + +module.exports = require('./common')(exports); + +const {formatters} = module.exports; + +/** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ + +formatters.j = function (v) { + try { + return JSON.stringify(v); + } catch (error) { + return '[UnexpectedJSONParseError]: ' + error.message; + } +}; diff --git a/Client/node_modules/@kwsites/file-exists/node_modules/debug/src/common.js b/Client/node_modules/@kwsites/file-exists/node_modules/debug/src/common.js new file mode 100644 index 000000000..392a8e005 --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/node_modules/debug/src/common.js @@ -0,0 +1,261 @@ + +/** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + */ + +function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = require('ms'); + createDebug.destroy = destroy; + + Object.keys(env).forEach(key => { + createDebug[key] = env[key]; + }); + + /** + * The currently active debug mode names, and names to skip. + */ + + createDebug.names = []; + createDebug.skips = []; + + /** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". + */ + createDebug.formatters = {}; + + /** + * Selects a color for a debug namespace + * @param {String} namespace The namespace string for the for the debug instance to be colored + * @return {Number|String} An ANSI color code for the given namespace + * @api private + */ + function selectColor(namespace) { + let hash = 0; + + for (let i = 0; i < namespace.length; i++) { + hash = ((hash << 5) - hash) + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } + + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + + /** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + + function debug(...args) { + // Disabled? + if (!debug.enabled) { + return; + } + + const self = debug; + + // Set `diff` timestamp + const curr = Number(new Date()); + const ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + + args[0] = createDebug.coerce(args[0]); + + if (typeof args[0] !== 'string') { + // Anything else let's inspect with %O + args.unshift('%O'); + } + + // Apply any `formatters` transformations + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + // If we encounter an escaped % then don't increase the array index + if (match === '%%') { + return '%'; + } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === 'function') { + const val = args[index]; + match = formatter.call(self, val); + + // Now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); + + // Apply env-specific formatting (colors, etc.) + createDebug.formatArgs.call(self, args); + + const logFn = self.log || createDebug.log; + logFn.apply(self, args); + } + + debug.namespace = namespace; + debug.useColors = createDebug.useColors(); + debug.color = createDebug.selectColor(namespace); + debug.extend = extend; + debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. + + Object.defineProperty(debug, 'enabled', { + enumerable: true, + configurable: false, + get: () => enableOverride === null ? createDebug.enabled(namespace) : enableOverride, + set: v => { + enableOverride = v; + } + }); + + // Env-specific initialization logic for debug instances + if (typeof createDebug.init === 'function') { + createDebug.init(debug); + } + + return debug; + } + + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } + + /** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + function enable(namespaces) { + createDebug.save(namespaces); + + createDebug.names = []; + createDebug.skips = []; + + let i; + const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); + const len = split.length; + + for (i = 0; i < len; i++) { + if (!split[i]) { + // ignore empty strings + continue; + } + + namespaces = split[i].replace(/\*/g, '.*?'); + + if (namespaces[0] === '-') { + createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); + } else { + createDebug.names.push(new RegExp('^' + namespaces + '$')); + } + } + } + + /** + * Disable debug output. + * + * @return {String} namespaces + * @api public + */ + function disable() { + const namespaces = [ + ...createDebug.names.map(toNamespace), + ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace) + ].join(','); + createDebug.enable(''); + return namespaces; + } + + /** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + function enabled(name) { + if (name[name.length - 1] === '*') { + return true; + } + + let i; + let len; + + for (i = 0, len = createDebug.skips.length; i < len; i++) { + if (createDebug.skips[i].test(name)) { + return false; + } + } + + for (i = 0, len = createDebug.names.length; i < len; i++) { + if (createDebug.names[i].test(name)) { + return true; + } + } + + return false; + } + + /** + * Convert regexp to namespace + * + * @param {RegExp} regxep + * @return {String} namespace + * @api private + */ + function toNamespace(regexp) { + return regexp.toString() + .substring(2, regexp.toString().length - 2) + .replace(/\.\*\?$/, '*'); + } + + /** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + + /** + * XXX DO NOT USE. This is a temporary stub function. + * XXX It WILL be removed in the next major release. + */ + function destroy() { + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + + createDebug.enable(createDebug.load()); + + return createDebug; +} + +module.exports = setup; diff --git a/Client/node_modules/@kwsites/file-exists/node_modules/debug/src/index.js b/Client/node_modules/@kwsites/file-exists/node_modules/debug/src/index.js new file mode 100644 index 000000000..bf4c57f25 --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/node_modules/debug/src/index.js @@ -0,0 +1,10 @@ +/** + * Detect Electron renderer / nwjs process, which is node, but we should + * treat as a browser. + */ + +if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { + module.exports = require('./browser.js'); +} else { + module.exports = require('./node.js'); +} diff --git a/Client/node_modules/@kwsites/file-exists/node_modules/debug/src/node.js b/Client/node_modules/@kwsites/file-exists/node_modules/debug/src/node.js new file mode 100644 index 000000000..79bc085cb --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/node_modules/debug/src/node.js @@ -0,0 +1,263 @@ +/** + * Module dependencies. + */ + +const tty = require('tty'); +const util = require('util'); + +/** + * This is the Node.js implementation of `debug()`. + */ + +exports.init = init; +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.destroy = util.deprecate( + () => {}, + 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' +); + +/** + * Colors. + */ + +exports.colors = [6, 2, 3, 4, 5, 1]; + +try { + // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) + // eslint-disable-next-line import/no-extraneous-dependencies + const supportsColor = require('supports-color'); + + if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { + exports.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; + } +} catch (error) { + // Swallow - we only care if `supports-color` is available; it doesn't have to be. +} + +/** + * Build up the default `inspectOpts` object from the environment variables. + * + * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js + */ + +exports.inspectOpts = Object.keys(process.env).filter(key => { + return /^debug_/i.test(key); +}).reduce((obj, key) => { + // Camel-case + const prop = key + .substring(6) + .toLowerCase() + .replace(/_([a-z])/g, (_, k) => { + return k.toUpperCase(); + }); + + // Coerce string value into JS value + let val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === 'null') { + val = null; + } else { + val = Number(val); + } + + obj[prop] = val; + return obj; +}, {}); + +/** + * Is stdout a TTY? Colored output is enabled when `true`. + */ + +function useColors() { + return 'colors' in exports.inspectOpts ? + Boolean(exports.inspectOpts.colors) : + tty.isatty(process.stderr.fd); +} + +/** + * Adds ANSI color escape codes if enabled. + * + * @api public + */ + +function formatArgs(args) { + const {namespace: name, useColors} = this; + + if (useColors) { + const c = this.color; + const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); + const prefix = ` ${colorCode};1m${name} \u001B[0m`; + + args[0] = prefix + args[0].split('\n').join('\n' + prefix); + args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m'); + } else { + args[0] = getDate() + name + ' ' + args[0]; + } +} + +function getDate() { + if (exports.inspectOpts.hideDate) { + return ''; + } + return new Date().toISOString() + ' '; +} + +/** + * Invokes `util.format()` with the specified arguments and writes to stderr. + */ + +function log(...args) { + return process.stderr.write(util.format(...args) + '\n'); +} + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces; + } else { + // If you set a process.env field to null or undefined, it gets cast to the + // string 'null' or 'undefined'. Just delete instead. + delete process.env.DEBUG; + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + +function load() { + return process.env.DEBUG; +} + +/** + * Init logic for `debug` instances. + * + * Create a new `inspectOpts` object in case `useColors` is set + * differently for a particular `debug` instance. + */ + +function init(debug) { + debug.inspectOpts = {}; + + const keys = Object.keys(exports.inspectOpts); + for (let i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } +} + +module.exports = require('./common')(exports); + +const {formatters} = module.exports; + +/** + * Map %o to `util.inspect()`, all on a single line. + */ + +formatters.o = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts) + .split('\n') + .map(str => str.trim()) + .join(' '); +}; + +/** + * Map %O to `util.inspect()`, allowing multiple lines if needed. + */ + +formatters.O = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); +}; diff --git a/Client/node_modules/@kwsites/file-exists/node_modules/ms/index.js b/Client/node_modules/@kwsites/file-exists/node_modules/ms/index.js new file mode 100644 index 000000000..c4498bcc2 --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/node_modules/ms/index.js @@ -0,0 +1,162 @@ +/** + * Helpers. + */ + +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var w = d * 7; +var y = d * 365.25; + +/** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ + +module.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); +}; + +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + +function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'weeks': + case 'week': + case 'w': + return n * w; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; + } +} + +/** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + 'd'; + } + if (msAbs >= h) { + return Math.round(ms / h) + 'h'; + } + if (msAbs >= m) { + return Math.round(ms / m) + 'm'; + } + if (msAbs >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; +} + +/** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, 'day'); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, 'hour'); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, 'minute'); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, 'second'); + } + return ms + ' ms'; +} + +/** + * Pluralization helper. + */ + +function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); +} diff --git a/Client/node_modules/@kwsites/file-exists/node_modules/ms/license.md b/Client/node_modules/@kwsites/file-exists/node_modules/ms/license.md new file mode 100644 index 000000000..69b61253a --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/node_modules/ms/license.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Zeit, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Client/node_modules/@kwsites/file-exists/node_modules/ms/package.json b/Client/node_modules/@kwsites/file-exists/node_modules/ms/package.json new file mode 100644 index 000000000..04df43b66 --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/node_modules/ms/package.json @@ -0,0 +1,69 @@ +{ + "_from": "ms@2.1.2", + "_id": "ms@2.1.2", + "_inBundle": false, + "_integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "_location": "/@kwsites/file-exists/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.1.2", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.1.2", + "saveSpec": null, + "fetchSpec": "2.1.2" + }, + "_requiredBy": [ + "/@kwsites/file-exists/debug" + ], + "_resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "_shasum": "d09d1f357b443f493382a8eb3ccd183872ae6009", + "_spec": "ms@2.1.2", + "_where": "C:\\Superalgos\\Client\\node_modules\\@kwsites\\file-exists\\node_modules\\debug", + "bugs": { + "url": "https://github.com/zeit/ms/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Tiny millisecond conversion utility", + "devDependencies": { + "eslint": "4.12.1", + "expect.js": "0.3.1", + "husky": "0.14.3", + "lint-staged": "5.0.0", + "mocha": "4.0.1" + }, + "eslintConfig": { + "extends": "eslint:recommended", + "env": { + "node": true, + "es6": true + } + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/zeit/ms#readme", + "license": "MIT", + "lint-staged": { + "*.js": [ + "npm run lint", + "prettier --single-quote --write", + "git add" + ] + }, + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/zeit/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.1.2" +} diff --git a/Client/node_modules/@kwsites/file-exists/node_modules/ms/readme.md b/Client/node_modules/@kwsites/file-exists/node_modules/ms/readme.md new file mode 100644 index 000000000..9a1996b17 --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/node_modules/ms/readme.md @@ -0,0 +1,60 @@ +# ms + +[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms) +[![Join the community on Spectrum](https://withspectrum.github.io/badge/badge.svg)](https://spectrum.chat/zeit) + +Use this package to easily convert various time formats to milliseconds. + +## Examples + +```js +ms('2 days') // 172800000 +ms('1d') // 86400000 +ms('10h') // 36000000 +ms('2.5 hrs') // 9000000 +ms('2h') // 7200000 +ms('1m') // 60000 +ms('5s') // 5000 +ms('1y') // 31557600000 +ms('100') // 100 +ms('-3 days') // -259200000 +ms('-1h') // -3600000 +ms('-200') // -200 +``` + +### Convert from Milliseconds + +```js +ms(60000) // "1m" +ms(2 * 60000) // "2m" +ms(-3 * 60000) // "-3m" +ms(ms('10 hours')) // "10h" +``` + +### Time Format Written-Out + +```js +ms(60000, { long: true }) // "1 minute" +ms(2 * 60000, { long: true }) // "2 minutes" +ms(-3 * 60000, { long: true }) // "-3 minutes" +ms(ms('10 hours'), { long: true }) // "10 hours" +``` + +## Features + +- Works both in [Node.js](https://nodejs.org) and in the browser +- If a number is supplied to `ms`, a string with a unit is returned +- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`) +- If you pass a string with a number and a valid unit, the number of equivalent milliseconds is returned + +## Related Packages + +- [ms.macro](https://github.com/knpwrs/ms.macro) - Run `ms` as a macro at build-time. + +## Caught a Bug? + +1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device +2. Link the package to the global module directory: `npm link` +3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, Node.js will now use your clone of ms! + +As always, you can run the tests using: `npm test` diff --git a/Client/node_modules/@kwsites/file-exists/package.json b/Client/node_modules/@kwsites/file-exists/package.json new file mode 100644 index 000000000..fd9ae91f6 --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/package.json @@ -0,0 +1,79 @@ +{ + "_from": "@kwsites/file-exists@^1.1.1", + "_id": "@kwsites/file-exists@1.1.1", + "_inBundle": false, + "_integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", + "_location": "/@kwsites/file-exists", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@kwsites/file-exists@^1.1.1", + "name": "@kwsites/file-exists", + "escapedName": "@kwsites%2ffile-exists", + "scope": "@kwsites", + "rawSpec": "^1.1.1", + "saveSpec": null, + "fetchSpec": "^1.1.1" + }, + "_requiredBy": [ + "/simple-git" + ], + "_resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "_shasum": "ad1efcac13e1987d8dbaf235ef3be5b0d96faa99", + "_spec": "@kwsites/file-exists@^1.1.1", + "_where": "C:\\Superalgos\\Client\\node_modules\\simple-git", + "author": { + "name": "Steve King", + "email": "steve@mydev.co" + }, + "bugs": { + "url": "https://github.com/kwsites/file-exists/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Steve King", + "email": "steve@mydev.co" + } + ], + "dependencies": { + "debug": "^4.1.1" + }, + "deprecated": false, + "description": "Synchronous validation of a path existing either as a file or as a directory.", + "devDependencies": { + "@babel/core": "^7.10.1", + "@babel/preset-env": "^7.10.1", + "@babel/preset-typescript": "^7.10.1", + "@types/debug": "^4.1.5", + "@types/jest": "^26.0.0", + "@types/node": "^10.12.0", + "babel-jest": "^26.0.1", + "jest": "^25.3.0", + "rimraf": "^2.6.2", + "ts-node": "^8.10.2", + "typescript": "^3.1.3" + }, + "files": [ + "dist/**/*.*" + ], + "homepage": "https://github.com/kwsites/file-exists#readme", + "license": "MIT", + "main": "./dist/index.js", + "name": "@kwsites/file-exists", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/kwsites/file-exists.git" + }, + "scripts": { + "build": "yarn run clean && tsc", + "clean": "rimraf ./dist", + "postversion": "npm publish --access=public && git push && git push --tags", + "preversion": "yarn run clean && yarn run build && yarn test", + "test": "jest --coverage", + "tsc": "tsc" + }, + "types": "./dist/index.d.ts", + "version": "1.1.1" +} diff --git a/Client/node_modules/@kwsites/file-exists/readme.md b/Client/node_modules/@kwsites/file-exists/readme.md new file mode 100644 index 000000000..0db6d0fdf --- /dev/null +++ b/Client/node_modules/@kwsites/file-exists/readme.md @@ -0,0 +1,41 @@ +# @kwsites/file-exists + +Synchronous validation of a path existing either as a file or as a directory. + +``` +const { exists, FILE, FOLDER, READABLE } = require('@kwsites/file-exists'); + +// check for a folder existing +assert(exists(__dirname, FOLDER)); +assert(!exists(__filename, FOLDER)); + +// check for a file existing +assert(!exists(__filename, FILE)); +assert(exists(__filename, FILE)); + +// when no type is specified, both folders and files are allowed +assert(exists(__dirname)); +assert(exists(__filename)); + +// alternatively specify both files and folders +assert(exists(__dirname, FILE + FOLDER)); + +// or just that the path is readable (can be either a file or folder) +assert(exists(__filename, READABLE)); +``` + +## Troubleshooting + +This library uses [debug](https://www.npmjs.com/package/debug) to handle logging, +to enable logging, use either the environment variable: + +``` +"DEBUG=@kwsites/file-exists" node ./your-app.js +``` + +Or explicitly enable logging using the `debug` library itself: + +```javascript +require('debug').enable('@kwsites/file-exists'); +``` + diff --git a/Client/node_modules/@kwsites/promise-deferred/LICENSE b/Client/node_modules/@kwsites/promise-deferred/LICENSE new file mode 100644 index 000000000..d082eb966 --- /dev/null +++ b/Client/node_modules/@kwsites/promise-deferred/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 kwsites + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Client/node_modules/@kwsites/promise-deferred/dist/index.d.ts b/Client/node_modules/@kwsites/promise-deferred/dist/index.d.ts new file mode 100644 index 000000000..68fb38abe --- /dev/null +++ b/Client/node_modules/@kwsites/promise-deferred/dist/index.d.ts @@ -0,0 +1,49 @@ +/** + * The `DeferredPromise` has a `promise` property in an initially pending state, + * that will be resolved when the `done` method is called or rejected when the + * `fail` method is called. + */ +export interface DeferredPromise { + done(result: RESOLVES): void; + fail(error: REJECTS): void; + readonly status: DeferredPromiseStatus; + readonly fulfilled: boolean; + promise: Promise; +} +/** + * The three states the DeferredPromise can be in - initially pending then either + * resolved or rejected when it is fulfilled. + * + * ```typescript + import {createDeferred, DeferredPromiseStatus} from '@kwsites/promise-deferred`; + + const pending: DeferredPromiseStatus = 'pending'; + expect(createDeferred()).toHaveProperty('status', pending); + ``` + */ +export declare type DeferredPromiseStatus = 'pending' | 'resolved' | 'rejected'; +/** + * Creates a new `DeferredPromise` + * + * ```typescript + import {deferred} from '@kwsites/promise-deferred`; + ``` + */ +export declare function deferred(): DeferredPromise; +/** + * Alias of the exported `deferred` function, to help consumers wanting to use `deferred` as the + * local variable name rather than the factory import name, without needing to rename on import. + * + * ```typescript + import {createDeferred} from '@kwsites/promise-deferred`; + ``` + */ +export declare const createDeferred: typeof deferred; +/** + * Default export allows use as: + * + * ```typescript + import deferred from '@kwsites/promise-deferred`; + ``` + */ +export default deferred; diff --git a/Client/node_modules/@kwsites/promise-deferred/dist/index.js b/Client/node_modules/@kwsites/promise-deferred/dist/index.js new file mode 100644 index 000000000..1ffefe6c2 --- /dev/null +++ b/Client/node_modules/@kwsites/promise-deferred/dist/index.js @@ -0,0 +1,59 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createDeferred = exports.deferred = void 0; +/** + * Creates a new `DeferredPromise` + * + * ```typescript + import {deferred} from '@kwsites/promise-deferred`; + ``` + */ +function deferred() { + let done; + let fail; + let status = 'pending'; + const promise = new Promise((_done, _fail) => { + done = _done; + fail = _fail; + }); + return { + promise, + done(result) { + if (status === 'pending') { + status = 'resolved'; + done(result); + } + }, + fail(error) { + if (status === 'pending') { + status = 'rejected'; + fail(error); + } + }, + get fulfilled() { + return status !== 'pending'; + }, + get status() { + return status; + }, + }; +} +exports.deferred = deferred; +/** + * Alias of the exported `deferred` function, to help consumers wanting to use `deferred` as the + * local variable name rather than the factory import name, without needing to rename on import. + * + * ```typescript + import {createDeferred} from '@kwsites/promise-deferred`; + ``` + */ +exports.createDeferred = deferred; +/** + * Default export allows use as: + * + * ```typescript + import deferred from '@kwsites/promise-deferred`; + ``` + */ +exports.default = deferred; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/Client/node_modules/@kwsites/promise-deferred/dist/index.js.map b/Client/node_modules/@kwsites/promise-deferred/dist/index.js.map new file mode 100644 index 000000000..74583ed9b --- /dev/null +++ b/Client/node_modules/@kwsites/promise-deferred/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AA0BA;;;;;;GAMG;AACH,SAAgB,QAAQ;IACrB,IAAI,IAAyB,CAAC;IAC9B,IAAI,IAAwB,CAAC;IAC7B,IAAI,MAAM,GAA0B,SAAS,CAAC;IAE9C,MAAM,OAAO,GAAe,IAAI,OAAO,CAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACzD,IAAI,GAAG,KAAK,CAAC;QACb,IAAI,GAAG,KAAK,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,OAAO;QACJ,OAAO;QACP,IAAI,CAAE,MAAM;YACT,IAAI,MAAM,KAAK,SAAS,EAAE;gBACvB,MAAM,GAAG,UAAU,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,CAAC;aACf;QACJ,CAAC;QACD,IAAI,CAAE,KAAK;YACR,IAAI,MAAM,KAAK,SAAS,EAAE;gBACvB,MAAM,GAAG,UAAU,CAAC;gBACpB,IAAI,CAAC,KAAK,CAAC,CAAC;aACd;QACJ,CAAC;QACD,IAAI,SAAS;YACV,OAAO,MAAM,KAAK,SAAS,CAAC;QAC/B,CAAC;QACD,IAAI,MAAM;YACP,OAAO,MAAM,CAAC;QACjB,CAAC;KACH,CAAC;AACL,CAAC;AA/BD,4BA+BC;AAED;;;;;;;GAOG;AACU,QAAA,cAAc,GAAG,QAAQ,CAAC;AAEvC;;;;;;GAMG;AACH,kBAAe,QAAQ,CAAC"} \ No newline at end of file diff --git a/Client/node_modules/@kwsites/promise-deferred/package.json b/Client/node_modules/@kwsites/promise-deferred/package.json new file mode 100644 index 000000000..721f71946 --- /dev/null +++ b/Client/node_modules/@kwsites/promise-deferred/package.json @@ -0,0 +1,79 @@ +{ + "_from": "@kwsites/promise-deferred@^1.1.1", + "_id": "@kwsites/promise-deferred@1.1.1", + "_inBundle": false, + "_integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", + "_location": "/@kwsites/promise-deferred", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@kwsites/promise-deferred@^1.1.1", + "name": "@kwsites/promise-deferred", + "escapedName": "@kwsites%2fpromise-deferred", + "scope": "@kwsites", + "rawSpec": "^1.1.1", + "saveSpec": null, + "fetchSpec": "^1.1.1" + }, + "_requiredBy": [ + "/simple-git" + ], + "_resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "_shasum": "8ace5259254426ccef57f3175bc64ed7095ed919", + "_spec": "@kwsites/promise-deferred@^1.1.1", + "_where": "C:\\Superalgos\\Client\\node_modules\\simple-git", + "author": { + "name": "Steve King", + "email": "steve@mydev.co" + }, + "bugs": { + "url": "https://github.com/kwsites/promise-deferred/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Steve King", + "email": "steve@mydev.co" + } + ], + "deprecated": false, + "description": "Minimalist creation of promise wrappers, exposing the ability to resolve or reject the inner promise", + "devDependencies": { + "@babel/core": "^7.10.3", + "@babel/preset-env": "^7.10.3", + "@babel/preset-typescript": "^7.10.1", + "@types/jest": "^26.0.0", + "@types/node": "^14.0.13", + "babel-jest": "^26.1.0", + "babel-preset-env": "^1.7.0", + "jest": "^26.1.0", + "ts-node": "^8.10.2", + "typescript": "^3.9.5" + }, + "files": [ + "LICENSE", + "dist/**/*.*" + ], + "homepage": "https://github.com/kwsites/promise-deferred#readme", + "license": "MIT", + "main": "./dist/index", + "name": "@kwsites/promise-deferred", + "private": false, + "repository": { + "type": "git", + "url": "git://github.com/kwsites/promise-deferred.git" + }, + "scripts": { + "build": "tsc --build", + "build:clean": "yarn run clean && tsc", + "clean": "git clean -fxd -e .idea -e node_modules", + "clean:modules": "git clean -fxd node_modules", + "postversion": "npm publish --access=public && git push && git push --tags", + "preversion": "yarn run build:clean && yarn test", + "test": "jest --coverage", + "tsc": "tsc" + }, + "types": "./dist/index", + "version": "1.1.1" +} diff --git a/Client/node_modules/@octokit/auth-token/LICENSE b/Client/node_modules/@octokit/auth-token/LICENSE new file mode 100644 index 000000000..ef2c18ee5 --- /dev/null +++ b/Client/node_modules/@octokit/auth-token/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2019 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Client/node_modules/@octokit/auth-token/README.md b/Client/node_modules/@octokit/auth-token/README.md new file mode 100644 index 000000000..4afeb9599 --- /dev/null +++ b/Client/node_modules/@octokit/auth-token/README.md @@ -0,0 +1,271 @@ +# auth-token.js + +> GitHub API token authentication for browsers and Node.js + +[![@latest](https://img.shields.io/npm/v/@octokit/auth-token.svg)](https://www.npmjs.com/package/@octokit/auth-token) +[![Build Status](https://github.com/octokit/auth-token.js/workflows/Test/badge.svg)](https://github.com/octokit/auth-token.js/actions?query=workflow%3ATest) + +`@octokit/auth-token` is the simplest of [GitHub’s authentication strategies](https://github.com/octokit/auth.js). + +It is useful if you want to support multiple authentication strategies, as it’s API is compatible with its sibling packages for [basic](https://github.com/octokit/auth-basic.js), [GitHub App](https://github.com/octokit/auth-app.js) and [OAuth app](https://github.com/octokit/auth.js) authentication. + + + +- [Usage](#usage) +- [`createTokenAuth(token) options`](#createtokenauthtoken-options) +- [`auth()`](#auth) +- [Authentication object](#authentication-object) +- [`auth.hook(request, route, options)` or `auth.hook(request, options)`](#authhookrequest-route-options-or-authhookrequest-options) +- [Find more information](#find-more-information) + - [Find out what scopes are enabled for oauth tokens](#find-out-what-scopes-are-enabled-for-oauth-tokens) + - [Find out if token is a personal access token or if it belongs to an OAuth app](#find-out-if-token-is-a-personal-access-token-or-if-it-belongs-to-an-oauth-app) + - [Find out what permissions are enabled for a repository](#find-out-what-permissions-are-enabled-for-a-repository) + - [Use token for git operations](#use-token-for-git-operations) +- [License](#license) + + + +## Usage + + + + + + +
+Browsers + + +Load `@octokit/auth-token` directly from [cdn.skypack.dev](https://cdn.skypack.dev) + +```html + +``` + +
+Node + + +Install with npm install @octokit/auth-token + +```js +const { createTokenAuth } = require("@octokit/auth-token"); +// or: import { createTokenAuth } from "@octokit/auth-token"; +``` + +
+ +```js +const auth = createTokenAuth("1234567890abcdef1234567890abcdef12345678"); +const authentication = await auth(); +// { +// type: 'token', +// token: '1234567890abcdef1234567890abcdef12345678', +// tokenType: 'oauth' +// } +``` + +## `createTokenAuth(token) options` + +The `createTokenAuth` method accepts a single argument of type string, which is the token. The passed token can be one of the following: + +- [Personal access token](https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line) +- [OAuth access token](https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/) +- Installation access token ([GitHub App Installation](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation)) +- [GITHUB_TOKEN provided to GitHub Actions](https://developer.github.com/actions/creating-github-actions/accessing-the-runtime-environment/#environment-variables) + +Examples + +```js +// Personal access token or OAuth access token +createTokenAuth("1234567890abcdef1234567890abcdef12345678"); + +// Installation access token or GitHub Action token +createTokenAuth("v1.d3d433526f780fbcc3129004e2731b3904ad0b86"); +``` + +## `auth()` + +The `auth()` method has no options. It returns a promise which resolves with the the authentication object. + +## Authentication object + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ name + + type + + description +
+ type + + string + + "token" +
+ token + + string + + The provided token. +
+ tokenType + + string + + Can be either "oauth" for personal access tokens and OAuth tokens, or "installation" for installation access tokens (includes GITHUB_TOKEN provided to GitHub Actions) +
+ +## `auth.hook(request, route, options)` or `auth.hook(request, options)` + +`auth.hook()` hooks directly into the request life cycle. It authenticates the request using the provided token. + +The `request` option is an instance of [`@octokit/request`](https://github.com/octokit/request.js#readme). The `route`/`options` parameters are the same as for the [`request()` method](https://github.com/octokit/request.js#request). + +`auth.hook()` can be called directly to send an authenticated request + +```js +const { data: authorizations } = await auth.hook( + request, + "GET /authorizations" +); +``` + +Or it can be passed as option to [`request()`](https://github.com/octokit/request.js#request). + +```js +const requestWithAuth = request.defaults({ + request: { + hook: auth.hook, + }, +}); + +const { data: authorizations } = await requestWithAuth("GET /authorizations"); +``` + +## Find more information + +`auth()` does not send any requests, it only transforms the provided token string into an authentication object. + +Here is a list of things you can do to retrieve further information + +### Find out what scopes are enabled for oauth tokens + +Note that this does not work for installations. There is no way to retrieve permissions based on an installation access tokens. + +```js +const TOKEN = "1234567890abcdef1234567890abcdef12345678"; + +const auth = createTokenAuth(TOKEN); +const authentication = await auth(); + +const response = await request("HEAD /", { + headers: authentication.headers, +}); +const scopes = response.headers["x-oauth-scopes"].split(/,\s+/); + +if (scopes.length) { + console.log( + `"${TOKEN}" has ${scopes.length} scopes enabled: ${scopes.join(", ")}` + ); +} else { + console.log(`"${TOKEN}" has no scopes enabled`); +} +``` + +### Find out if token is a personal access token or if it belongs to an OAuth app + +```js +const TOKEN = "1234567890abcdef1234567890abcdef12345678"; + +const auth = createTokenAuth(TOKEN); +const authentication = await auth(); + +const response = await request("HEAD /", { + headers: authentication.headers, +}); +const clientId = response.headers["x-oauth-client-id"]; + +if (clientId) { + console.log( + `"${token}" is an OAuth token, its app’s client_id is ${clientId}.` + ); +} else { + console.log(`"${token}" is a personal access token`); +} +``` + +### Find out what permissions are enabled for a repository + +Note that the `permissions` key is not set when authenticated using an installation access token. + +```js +const TOKEN = "1234567890abcdef1234567890abcdef12345678"; + +const auth = createTokenAuth(TOKEN); +const authentication = await auth(); + +const response = await request("GET /repos/:owner/:repo", { + owner: 'octocat', + repo: 'hello-world' + headers: authentication.headers +}); + +console.log(response.data.permissions) +// { +// admin: true, +// push: true, +// pull: true +// } +``` + +### Use token for git operations + +Both OAuth and installation access tokens can be used for git operations. However, when using with an installation, [the token must be prefixed with `x-access-token`](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#http-based-git-access-by-an-installation). + +This example is using the [`execa`](https://github.com/sindresorhus/execa) package to run a `git push` command. + +```js +const TOKEN = "1234567890abcdef1234567890abcdef12345678"; + +const auth = createTokenAuth(TOKEN); +const { token, tokenType } = await auth(); +const tokenWithPrefix = + tokenType === "installation" ? `x-access-token:${token}` : token; + +const repositoryUrl = `https://${tokenWithPrefix}@github.com/octocat/hello-world.git`; + +const { stdout } = await execa("git", ["push", repositoryUrl]); +console.log(stdout); +``` + +## License + +[MIT](LICENSE) diff --git a/Client/node_modules/@octokit/auth-token/dist-node/index.js b/Client/node_modules/@octokit/auth-token/dist-node/index.js new file mode 100644 index 000000000..1394a5da2 --- /dev/null +++ b/Client/node_modules/@octokit/auth-token/dist-node/index.js @@ -0,0 +1,49 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +async function auth(token) { + const tokenType = token.split(/\./).length === 3 ? "app" : /^v\d+\./.test(token) ? "installation" : "oauth"; + return { + type: "token", + token: token, + tokenType + }; +} + +/** + * Prefix token for usage in the Authorization header + * + * @param token OAuth token or JSON Web Token + */ +function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } + + return `token ${token}`; +} + +async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge(route, parameters); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); +} + +const createTokenAuth = function createTokenAuth(token) { + if (!token) { + throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + } + + if (typeof token !== "string") { + throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string"); + } + + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token) + }); +}; + +exports.createTokenAuth = createTokenAuth; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/auth-token/dist-node/index.js.map b/Client/node_modules/@octokit/auth-token/dist-node/index.js.map new file mode 100644 index 000000000..8a92b69bb --- /dev/null +++ b/Client/node_modules/@octokit/auth-token/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/auth.js","../dist-src/with-authorization-prefix.js","../dist-src/hook.js","../dist-src/index.js"],"sourcesContent":["export async function auth(token) {\n const tokenType = token.split(/\\./).length === 3\n ? \"app\"\n : /^v\\d+\\./.test(token)\n ? \"installation\"\n : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n","/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nexport function withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n return `token ${token}`;\n}\n","import { withAuthorizationPrefix } from \"./with-authorization-prefix\";\nexport async function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n","import { auth } from \"./auth\";\nimport { hook } from \"./hook\";\nexport const createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n"],"names":["auth","token","tokenType","split","length","test","type","withAuthorizationPrefix","hook","request","route","parameters","endpoint","merge","headers","authorization","createTokenAuth","Error","replace","Object","assign","bind"],"mappings":";;;;AAAO,eAAeA,IAAf,CAAoBC,KAApB,EAA2B;AAC9B,QAAMC,SAAS,GAAGD,KAAK,CAACE,KAAN,CAAY,IAAZ,EAAkBC,MAAlB,KAA6B,CAA7B,GACZ,KADY,GAEZ,UAAUC,IAAV,CAAeJ,KAAf,IACI,cADJ,GAEI,OAJV;AAKA,SAAO;AACHK,IAAAA,IAAI,EAAE,OADH;AAEHL,IAAAA,KAAK,EAAEA,KAFJ;AAGHC,IAAAA;AAHG,GAAP;AAKH;;ACXD;;;;;AAKA,AAAO,SAASK,uBAAT,CAAiCN,KAAjC,EAAwC;AAC3C,MAAIA,KAAK,CAACE,KAAN,CAAY,IAAZ,EAAkBC,MAAlB,KAA6B,CAAjC,EAAoC;AAChC,WAAQ,UAASH,KAAM,EAAvB;AACH;;AACD,SAAQ,SAAQA,KAAM,EAAtB;AACH;;ACTM,eAAeO,IAAf,CAAoBP,KAApB,EAA2BQ,OAA3B,EAAoCC,KAApC,EAA2CC,UAA3C,EAAuD;AAC1D,QAAMC,QAAQ,GAAGH,OAAO,CAACG,QAAR,CAAiBC,KAAjB,CAAuBH,KAAvB,EAA8BC,UAA9B,CAAjB;AACAC,EAAAA,QAAQ,CAACE,OAAT,CAAiBC,aAAjB,GAAiCR,uBAAuB,CAACN,KAAD,CAAxD;AACA,SAAOQ,OAAO,CAACG,QAAD,CAAd;AACH;;MCHYI,eAAe,GAAG,SAASA,eAAT,CAAyBf,KAAzB,EAAgC;AAC3D,MAAI,CAACA,KAAL,EAAY;AACR,UAAM,IAAIgB,KAAJ,CAAU,0DAAV,CAAN;AACH;;AACD,MAAI,OAAOhB,KAAP,KAAiB,QAArB,EAA+B;AAC3B,UAAM,IAAIgB,KAAJ,CAAU,uEAAV,CAAN;AACH;;AACDhB,EAAAA,KAAK,GAAGA,KAAK,CAACiB,OAAN,CAAc,oBAAd,EAAoC,EAApC,CAAR;AACA,SAAOC,MAAM,CAACC,MAAP,CAAcpB,IAAI,CAACqB,IAAL,CAAU,IAAV,EAAgBpB,KAAhB,CAAd,EAAsC;AACzCO,IAAAA,IAAI,EAAEA,IAAI,CAACa,IAAL,CAAU,IAAV,EAAgBpB,KAAhB;AADmC,GAAtC,CAAP;AAGH,CAXM;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/auth-token/dist-src/auth.js b/Client/node_modules/@octokit/auth-token/dist-src/auth.js new file mode 100644 index 000000000..2d5005c22 --- /dev/null +++ b/Client/node_modules/@octokit/auth-token/dist-src/auth.js @@ -0,0 +1,12 @@ +export async function auth(token) { + const tokenType = token.split(/\./).length === 3 + ? "app" + : /^v\d+\./.test(token) + ? "installation" + : "oauth"; + return { + type: "token", + token: token, + tokenType + }; +} diff --git a/Client/node_modules/@octokit/auth-token/dist-src/hook.js b/Client/node_modules/@octokit/auth-token/dist-src/hook.js new file mode 100644 index 000000000..f8e47f0c2 --- /dev/null +++ b/Client/node_modules/@octokit/auth-token/dist-src/hook.js @@ -0,0 +1,6 @@ +import { withAuthorizationPrefix } from "./with-authorization-prefix"; +export async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge(route, parameters); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); +} diff --git a/Client/node_modules/@octokit/auth-token/dist-src/index.js b/Client/node_modules/@octokit/auth-token/dist-src/index.js new file mode 100644 index 000000000..114fd4554 --- /dev/null +++ b/Client/node_modules/@octokit/auth-token/dist-src/index.js @@ -0,0 +1,14 @@ +import { auth } from "./auth"; +import { hook } from "./hook"; +export const createTokenAuth = function createTokenAuth(token) { + if (!token) { + throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + } + if (typeof token !== "string") { + throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string"); + } + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token) + }); +}; diff --git a/Client/node_modules/@octokit/auth-token/dist-src/types.js b/Client/node_modules/@octokit/auth-token/dist-src/types.js new file mode 100644 index 000000000..e69de29bb diff --git a/Client/node_modules/@octokit/auth-token/dist-src/with-authorization-prefix.js b/Client/node_modules/@octokit/auth-token/dist-src/with-authorization-prefix.js new file mode 100644 index 000000000..90358136e --- /dev/null +++ b/Client/node_modules/@octokit/auth-token/dist-src/with-authorization-prefix.js @@ -0,0 +1,11 @@ +/** + * Prefix token for usage in the Authorization header + * + * @param token OAuth token or JSON Web Token + */ +export function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } + return `token ${token}`; +} diff --git a/Client/node_modules/@octokit/auth-token/dist-types/auth.d.ts b/Client/node_modules/@octokit/auth-token/dist-types/auth.d.ts new file mode 100644 index 000000000..dc4183585 --- /dev/null +++ b/Client/node_modules/@octokit/auth-token/dist-types/auth.d.ts @@ -0,0 +1,2 @@ +import { Token, Authentication } from "./types"; +export declare function auth(token: Token): Promise; diff --git a/Client/node_modules/@octokit/auth-token/dist-types/hook.d.ts b/Client/node_modules/@octokit/auth-token/dist-types/hook.d.ts new file mode 100644 index 000000000..21e4b6fcd --- /dev/null +++ b/Client/node_modules/@octokit/auth-token/dist-types/hook.d.ts @@ -0,0 +1,2 @@ +import { AnyResponse, EndpointOptions, RequestInterface, RequestParameters, Route, Token } from "./types"; +export declare function hook(token: Token, request: RequestInterface, route: Route | EndpointOptions, parameters?: RequestParameters): Promise; diff --git a/Client/node_modules/@octokit/auth-token/dist-types/index.d.ts b/Client/node_modules/@octokit/auth-token/dist-types/index.d.ts new file mode 100644 index 000000000..599942937 --- /dev/null +++ b/Client/node_modules/@octokit/auth-token/dist-types/index.d.ts @@ -0,0 +1,7 @@ +import { StrategyInterface, Token, Authentication } from "./types"; +export declare type Types = { + StrategyOptions: Token; + AuthOptions: never; + Authentication: Authentication; +}; +export declare const createTokenAuth: StrategyInterface; diff --git a/Client/node_modules/@octokit/auth-token/dist-types/types.d.ts b/Client/node_modules/@octokit/auth-token/dist-types/types.d.ts new file mode 100644 index 000000000..53a4ab112 --- /dev/null +++ b/Client/node_modules/@octokit/auth-token/dist-types/types.d.ts @@ -0,0 +1,25 @@ +import * as OctokitTypes from "@octokit/types"; +export declare type AnyResponse = OctokitTypes.OctokitResponse; +export declare type StrategyInterface = OctokitTypes.StrategyInterface<[Token], [], Authentication>; +export declare type EndpointDefaults = OctokitTypes.EndpointDefaults; +export declare type EndpointOptions = OctokitTypes.EndpointOptions; +export declare type RequestParameters = OctokitTypes.RequestParameters; +export declare type RequestInterface = OctokitTypes.RequestInterface; +export declare type Route = OctokitTypes.Route; +export declare type Token = string; +export declare type OAuthTokenAuthentication = { + type: "token"; + tokenType: "oauth"; + token: Token; +}; +export declare type InstallationTokenAuthentication = { + type: "token"; + tokenType: "installation"; + token: Token; +}; +export declare type AppAuthentication = { + type: "token"; + tokenType: "app"; + token: Token; +}; +export declare type Authentication = OAuthTokenAuthentication | InstallationTokenAuthentication | AppAuthentication; diff --git a/Client/node_modules/@octokit/auth-token/dist-types/with-authorization-prefix.d.ts b/Client/node_modules/@octokit/auth-token/dist-types/with-authorization-prefix.d.ts new file mode 100644 index 000000000..2e52c31db --- /dev/null +++ b/Client/node_modules/@octokit/auth-token/dist-types/with-authorization-prefix.d.ts @@ -0,0 +1,6 @@ +/** + * Prefix token for usage in the Authorization header + * + * @param token OAuth token or JSON Web Token + */ +export declare function withAuthorizationPrefix(token: string): string; diff --git a/Client/node_modules/@octokit/auth-token/dist-web/index.js b/Client/node_modules/@octokit/auth-token/dist-web/index.js new file mode 100644 index 000000000..c15ca1222 --- /dev/null +++ b/Client/node_modules/@octokit/auth-token/dist-web/index.js @@ -0,0 +1,46 @@ +async function auth(token) { + const tokenType = token.split(/\./).length === 3 + ? "app" + : /^v\d+\./.test(token) + ? "installation" + : "oauth"; + return { + type: "token", + token: token, + tokenType + }; +} + +/** + * Prefix token for usage in the Authorization header + * + * @param token OAuth token or JSON Web Token + */ +function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } + return `token ${token}`; +} + +async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge(route, parameters); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); +} + +const createTokenAuth = function createTokenAuth(token) { + if (!token) { + throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + } + if (typeof token !== "string") { + throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string"); + } + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token) + }); +}; + +export { createTokenAuth }; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/auth-token/dist-web/index.js.map b/Client/node_modules/@octokit/auth-token/dist-web/index.js.map new file mode 100644 index 000000000..60de4a6be --- /dev/null +++ b/Client/node_modules/@octokit/auth-token/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/auth.js","../dist-src/with-authorization-prefix.js","../dist-src/hook.js","../dist-src/index.js"],"sourcesContent":["export async function auth(token) {\n const tokenType = token.split(/\\./).length === 3\n ? \"app\"\n : /^v\\d+\\./.test(token)\n ? \"installation\"\n : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n","/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nexport function withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n return `token ${token}`;\n}\n","import { withAuthorizationPrefix } from \"./with-authorization-prefix\";\nexport async function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n","import { auth } from \"./auth\";\nimport { hook } from \"./hook\";\nexport const createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n"],"names":[],"mappings":"AAAO,eAAe,IAAI,CAAC,KAAK,EAAE;AAClC,IAAI,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;AACpD,UAAU,KAAK;AACf,UAAU,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/B,cAAc,cAAc;AAC5B,cAAc,OAAO,CAAC;AACtB,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,SAAS;AACjB,KAAK,CAAC;AACN;;ACXA;AACA;AACA;AACA;AACA;AACA,AAAO,SAAS,uBAAuB,CAAC,KAAK,EAAE;AAC/C,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACxC,QAAQ,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5B,CAAC;;ACTM,eAAe,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE;AAC9D,IAAI,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC/D,IAAI,QAAQ,CAAC,OAAO,CAAC,aAAa,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACpE,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC;;ACHW,MAAC,eAAe,GAAG,SAAS,eAAe,CAAC,KAAK,EAAE;AAC/D,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,QAAQ,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;AACpF,KAAK;AACL,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,QAAQ,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;AACjG,KAAK;AACL,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;AACpD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AACjD,QAAQ,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AACpC,KAAK,CAAC,CAAC;AACP,CAAC;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/auth-token/package.json b/Client/node_modules/@octokit/auth-token/package.json new file mode 100644 index 000000000..ba590da83 --- /dev/null +++ b/Client/node_modules/@octokit/auth-token/package.json @@ -0,0 +1,77 @@ +{ + "_from": "@octokit/auth-token@^2.4.4", + "_id": "@octokit/auth-token@2.4.4", + "_inBundle": false, + "_integrity": "sha512-LNfGu3Ro9uFAYh10MUZVaT7X2CnNm2C8IDQmabx+3DygYIQjs9FwzFAHN/0t6mu5HEPhxcb1XOuxdpY82vCg2Q==", + "_location": "/@octokit/auth-token", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@octokit/auth-token@^2.4.4", + "name": "@octokit/auth-token", + "escapedName": "@octokit%2fauth-token", + "scope": "@octokit", + "rawSpec": "^2.4.4", + "saveSpec": null, + "fetchSpec": "^2.4.4" + }, + "_requiredBy": [ + "/@octokit/core" + ], + "_resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.4.tgz", + "_shasum": "ee31c69b01d0378c12fd3ffe406030f3d94d3b56", + "_spec": "@octokit/auth-token@^2.4.4", + "_where": "C:\\Superalgos\\Client\\node_modules\\@octokit\\core", + "bugs": { + "url": "https://github.com/octokit/auth-token.js/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@octokit/types": "^6.0.0" + }, + "deprecated": false, + "description": "GitHub API token authentication for browsers and Node.js", + "devDependencies": { + "@octokit/core": "^3.0.0", + "@octokit/request": "^5.3.0", + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "@types/fetch-mock": "^7.3.1", + "@types/jest": "^26.0.0", + "fetch-mock": "^9.0.0", + "jest": "^25.1.0", + "semantic-release": "^17.0.0", + "ts-jest": "^25.1.0", + "typescript": "^3.7.2" + }, + "files": [ + "dist-*/", + "bin/" + ], + "homepage": "https://github.com/octokit/auth-token.js#readme", + "keywords": [ + "github", + "octokit", + "authentication", + "api" + ], + "license": "MIT", + "main": "dist-node/index.js", + "module": "dist-web/index.js", + "name": "@octokit/auth-token", + "pika": true, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/octokit/auth-token.js.git" + }, + "sideEffects": false, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "version": "2.4.4" +} diff --git a/Client/node_modules/@octokit/core/LICENSE b/Client/node_modules/@octokit/core/LICENSE new file mode 100644 index 000000000..ef2c18ee5 --- /dev/null +++ b/Client/node_modules/@octokit/core/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2019 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Client/node_modules/@octokit/core/README.md b/Client/node_modules/@octokit/core/README.md new file mode 100644 index 000000000..80804b7d4 --- /dev/null +++ b/Client/node_modules/@octokit/core/README.md @@ -0,0 +1,438 @@ +# core.js + +> Extendable client for GitHub's REST & GraphQL APIs + +[![@latest](https://img.shields.io/npm/v/@octokit/core.svg)](https://www.npmjs.com/package/@octokit/core) +[![Build Status](https://github.com/octokit/core.js/workflows/Test/badge.svg)](https://github.com/octokit/core.js/actions?query=workflow%3ATest+branch%3Amaster) + + + +- [Usage](#usage) + - [REST API example](#rest-api-example) + - [GraphQL example](#graphql-example) +- [Options](#options) +- [Defaults](#defaults) +- [Authentication](#authentication) +- [Logging](#logging) +- [Hooks](#hooks) +- [Plugins](#plugins) +- [Build your own Octokit with Plugins and Defaults](#build-your-own-octokit-with-plugins-and-defaults) +- [LICENSE](#license) + + + +If you need a minimalistic library to utilize GitHub's [REST API](https://developer.github.com/v3/) and [GraphQL API](https://developer.github.com/v4/) which you can extend with plugins as needed, then `@octokit/core` is a great starting point. + +If you don't need the Plugin API then using [`@octokit/request`](https://github.com/octokit/request.js/) or [`@octokit/graphql`](https://github.com/octokit/graphql.js/) directly is a good alternative. + +## Usage + + + + + + +
+Browsers + +Load @octokit/core directly from cdn.skypack.dev + +```html + +``` + +
+Node + + +Install with npm install @octokit/core + +```js +const { Octokit } = require("@octokit/core"); +// or: import { Octokit } from "@octokit/core"; +``` + +
+ +### REST API example + +```js +// Create a personal access token at https://github.com/settings/tokens/new?scopes=repo +const octokit = new Octokit({ auth: `personal-access-token123` }); + +const response = await octokit.request("GET /orgs/{org}/repos", { + org: "octokit", + type: "private", +}); +``` + +See [`@octokit/request`](https://github.com/octokit/request.js) for full documentation of the `.request` method. + +### GraphQL example + +```js +const octokit = new Octokit({ auth: `secret123` }); + +const response = await octokit.graphql( + `query ($login: String!) { + organization(login: $login) { + repositories(privacy: PRIVATE) { + totalCount + } + } + }`, + { login: "octokit" } +); +``` + +See [`@octokit/graphql`](https://github.com/octokit/graphql.js) for full documentation of the `.graphql` method. + +## Options + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ name + + type + + description +
+ options.authStrategy + + Function + + Defaults to @octokit/auth-token. See Authentication below for examples. +
+ options.auth + + String or Object + + See Authentication below for examples. +
+ options.baseUrl + + String + + +When using with GitHub Enterprise Server, set `options.baseUrl` to the root URL of the API. For example, if your GitHub Enterprise Server's hostname is `github.acme-inc.com`, then set `options.baseUrl` to `https://github.acme-inc.com/api/v3`. Example + +```js +const octokit = new Octokit({ + baseUrl: "https://github.acme-inc.com/api/v3", +}); +``` + +
+ options.previews + + Array of Strings + + +Some REST API endpoints require preview headers to be set, or enable +additional features. Preview headers can be set on a per-request basis, e.g. + +```js +octokit.request("POST /repos/{owner}/{repo}/pulls", { + mediaType: { + previews: ["shadow-cat"], + }, + owner, + repo, + title: "My pull request", + base: "master", + head: "my-feature", + draft: true, +}); +``` + +You can also set previews globally, by setting the `options.previews` option on the constructor. Example: + +```js +const octokit = new Octokit({ + previews: ["shadow-cat"], +}); +``` + +
+ options.request + + Object + + +Set a default request timeout (`options.request.timeout`) or an [`http(s).Agent`](https://nodejs.org/api/http.html#http_class_http_agent) e.g. for proxy usage (Node only, `options.request.agent`). + +There are more `options.request.*` options, see [`@octokit/request` options](https://github.com/octokit/request.js#request). `options.request` can also be set on a per-request basis. + +
+ options.timeZone + + String + + +Sets the `Time-Zone` header which defines a timezone according to the [list of names from the Olson database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + +```js +const octokit = new Octokit({ + timeZone: "America/Los_Angeles", +}); +``` + +The time zone header will determine the timezone used for generating the timestamp when creating commits. See [GitHub's Timezones documentation](https://developer.github.com/v3/#timezones). + +
+ options.userAgent + + String + + +A custom user agent string for your app or library. Example + +```js +const octokit = new Octokit({ + userAgent: "my-app/v1.2.3", +}); +``` + +
+ +## Defaults + +You can create a new Octokit class with customized default options. + +```js +const MyOctokit = Octokit.defaults({ + auth: "personal-access-token123", + baseUrl: "https://github.acme-inc.com/api/v3", + userAgent: "my-app/v1.2.3", +}); +const octokit1 = new MyOctokit(); +const octokit2 = new MyOctokit(); +``` + +If you pass additional options to your new constructor, the options will be merged shallowly. + +```js +const MyOctokit = Octokit.defaults({ + foo: { + opt1: 1, + }, +}); +const octokit = new MyOctokit({ + foo: { + opt2: 1, + }, +}); +// options will be { foo: { opt2: 1 }} +``` + +If you need a deep or conditional merge, you can pass a function instead. + +```js +const MyOctokit = Octokit.defaults((options) => { + return { + foo: Object.assign({}, options.foo, { opt2: 1 }), + }; +}); +const octokit = new MyOctokit({ + foo: { opt2: 1 }, +}); +// options will be { foo: { opt1: 1, opt2: 1 }} +``` + +Be careful about mutating the `options` object in the `Octokit.defaults` callback, as it can have unforeseen consequences. + +## Authentication + +Authentication is optional for some REST API endpoints accessing public data, but is required for GraphQL queries. Using authentication also increases your [API rate limit](https://developer.github.com/v3/#rate-limiting). + +By default, Octokit authenticates using the [token authentication strategy](https://github.com/octokit/auth-token.js). Pass in a token using `options.auth`. It can be a personal access token, an OAuth token, an installation access token or a JSON Web Token for GitHub App authentication. The `Authorization` header will be set according to the type of token. + +```js +import { Octokit } from "@octokit/core"; + +const octokit = new Octokit({ + auth: "mypersonalaccesstoken123", +}); + +const { data } = await octokit.request("/user"); +``` + +To use a different authentication strategy, set `options.authStrategy`. A set of officially supported authentication strategies can be retrieved from [`@octokit/auth`](https://github.com/octokit/auth-app.js#readme). Example + +```js +import { Octokit } from "@octokit/core"; +import { createAppAuth } from "@octokit/auth-app"; + +const appOctokit = new Octokit({ + authStrategy: createAppAuth, + auth: { + appId: 123, + privateKey: process.env.PRIVATE_KEY, + }, +}); + +const { data } = await appOctokit.request("/app"); +``` + +The `.auth()` method returned by the current authentication strategy can be accessed at `octokit.auth()`. Example + +```js +const { token } = await appOctokit.auth({ + type: "installation", + installationId: 123, +}); +``` + +## Logging + +There are four built-in log methods + +1. `octokit.log.debug(message[, additionalInfo])` +1. `octokit.log.info(message[, additionalInfo])` +1. `octokit.log.warn(message[, additionalInfo])` +1. `octokit.log.error(message[, additionalInfo])` + +They can be configured using the [`log` client option](client-options). By default, `octokit.log.debug()` and `octokit.log.info()` are no-ops, while the other two call `console.warn()` and `console.error()` respectively. + +This is useful if you build reusable [plugins](#plugins). + +If you would like to make the log level configurable using an environment variable or external option, we recommend the [console-log-level](https://github.com/watson/console-log-level) package. Example + +```js +const octokit = new Octokit({ + log: require("console-log-level")({ level: "info" }), +}); +``` + +## Hooks + +You can customize Octokit's request lifecycle with hooks. + +```js +octokit.hook.before("request", async (options) => { + validate(options); +}); +octokit.hook.after("request", async (response, options) => { + console.log(`${options.method} ${options.url}: ${response.status}`); +}); +octokit.hook.error("request", async (error, options) => { + if (error.status === 304) { + return findInCache(error.headers.etag); + } + + throw error; +}); +octokit.hook.wrap("request", async (request, options) => { + // add logic before, after, catch errors or replace the request altogether + return request(options); +}); +``` + +See [before-after-hook](https://github.com/gr2m/before-after-hook#readme) for more documentation on hooks. + +## Plugins + +Octokit’s functionality can be extended using plugins. The `Octokit.plugin()` method accepts a plugin (or many) and returns a new constructor. + +A plugin is a function which gets two arguments: + +1. the current instance +2. the options passed to the constructor. + +In order to extend `octokit`'s API, the plugin must return an object with the new methods. + +```js +// index.js +const { Octokit } = require("@octokit/core") +const MyOctokit = Octokit.plugin( + require("./lib/my-plugin"), + require("octokit-plugin-example") +); + +const octokit = new MyOctokit({ greeting: "Moin moin" }); +octokit.helloWorld(); // logs "Moin moin, world!" +octokit.request("GET /"); // logs "GET / - 200 in 123ms" + +// lib/my-plugin.js +module.exports = (octokit, options = { greeting: "Hello" }) => { + // hook into the request lifecycle + octokit.hook.wrap("request", async (request, options) => { + const time = Date.now(); + const response = await request(options); + console.log( + `${options.method} ${options.url} – ${response.status} in ${Date.now() - + time}ms` + ); + return response; + }); + + // add a custom method + return { + helloWorld: () => console.log(`${options.greeting}, world!`); + } +}; +``` + +## Build your own Octokit with Plugins and Defaults + +You can build your own Octokit class with preset default options and plugins. In fact, this is mostly how the `@octokit/` modules work, such as [`@octokit/action`](https://github.com/octokit/action.js): + +```js +const { Octokit } = require("@octokit/core"); +const MyActionOctokit = Octokit.plugin( + require("@octokit/plugin-paginate-rest"), + require("@octokit/plugin-throttling"), + require("@octokit/plugin-retry") +).defaults({ + authStrategy: require("@octokit/auth-action"), + userAgent: `my-octokit-action/v1.2.3`, +}); + +const octokit = new MyActionOctokit(); +const installations = await octokit.paginate("GET /app/installations"); +``` + +## LICENSE + +[MIT](LICENSE) diff --git a/Client/node_modules/@octokit/core/dist-node/index.js b/Client/node_modules/@octokit/core/dist-node/index.js new file mode 100644 index 000000000..ad20c996d --- /dev/null +++ b/Client/node_modules/@octokit/core/dist-node/index.js @@ -0,0 +1,174 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var universalUserAgent = require('universal-user-agent'); +var beforeAfterHook = require('before-after-hook'); +var request = require('@octokit/request'); +var graphql = require('@octokit/graphql'); +var authToken = require('@octokit/auth-token'); + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; + + var target = _objectWithoutPropertiesLoose(source, excluded); + + var key, i; + + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; + } + } + + return target; +} + +const VERSION = "3.2.4"; + +class Octokit { + constructor(options = {}) { + const hook = new beforeAfterHook.Collection(); + const requestDefaults = { + baseUrl: request.request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + hook: hook.bind(null, "request") + }), + mediaType: { + previews: [], + format: "" + } + }; // prepend default user agent with `options.userAgent` if set + + requestDefaults.headers["user-agent"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(" "); + + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; + } + + if (options.previews) { + requestDefaults.mediaType.previews = options.previews; + } + + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; + } + + this.request = request.request.defaults(requestDefaults); + this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults); + this.log = Object.assign({ + debug: () => {}, + info: () => {}, + warn: console.warn.bind(console), + error: console.error.bind(console) + }, options.log); + this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance + // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered. + // (2) If only `options.auth` is set, use the default token authentication strategy. + // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. + // TODO: type `options.auth` based on `options.authStrategy`. + + if (!options.authStrategy) { + if (!options.auth) { + // (1) + this.auth = async () => ({ + type: "unauthenticated" + }); + } else { + // (2) + const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\_(ツ)_/¯ + + hook.wrap("request", auth.hook); + this.auth = auth; + } + } else { + const { + authStrategy + } = options, + otherOptions = _objectWithoutProperties(options, ["authStrategy"]); + + const auth = authStrategy(Object.assign({ + request: this.request, + log: this.log, + // we pass the current octokit instance as well as its constructor options + // to allow for authentication strategies that return a new octokit instance + // that shares the same internal state as the current one. The original + // requirement for this was the "event-octokit" authentication strategy + // of https://github.com/probot/octokit-auth-probot. + octokit: this, + octokitOptions: otherOptions + }, options.auth)); // @ts-ignore ¯\_(ツ)_/¯ + + hook.wrap("request", auth.hook); + this.auth = auth; + } // apply plugins + // https://stackoverflow.com/a/16345172 + + + const classConstructor = this.constructor; + classConstructor.plugins.forEach(plugin => { + Object.assign(this, plugin(this, options)); + }); + } + + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; + + if (typeof defaults === "function") { + super(defaults(options)); + return; + } + + super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? { + userAgent: `${options.userAgent} ${defaults.userAgent}` + } : null)); + } + + }; + return OctokitWithDefaults; + } + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ + + + static plugin(...newPlugins) { + var _a; + + const currentPlugins = this.plugins; + const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a); + return NewOctokit; + } + +} +Octokit.VERSION = VERSION; +Octokit.plugins = []; + +exports.Octokit = Octokit; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/core/dist-node/index.js.map b/Client/node_modules/@octokit/core/dist-node/index.js.map new file mode 100644 index 000000000..5cc887bd7 --- /dev/null +++ b/Client/node_modules/@octokit/core/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"3.2.4\";\n","import { getUserAgent } from \"universal-user-agent\";\nimport { Collection } from \"before-after-hook\";\nimport { request } from \"@octokit/request\";\nimport { withCustomRequest } from \"@octokit/graphql\";\nimport { createTokenAuth } from \"@octokit/auth-token\";\nimport { VERSION } from \"./version\";\nexport class Octokit {\n constructor(options = {}) {\n const hook = new Collection();\n const requestDefaults = {\n baseUrl: request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n hook: hook.bind(null, \"request\"),\n }),\n mediaType: {\n previews: [],\n format: \"\",\n },\n };\n // prepend default user agent with `options.userAgent` if set\n requestDefaults.headers[\"user-agent\"] = [\n options.userAgent,\n `octokit-core.js/${VERSION} ${getUserAgent()}`,\n ]\n .filter(Boolean)\n .join(\" \");\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n this.request = request.defaults(requestDefaults);\n this.graphql = withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => { },\n info: () => { },\n warn: console.warn.bind(console),\n error: console.error.bind(console),\n }, options.log);\n this.hook = hook;\n // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\",\n });\n }\n else {\n // (2)\n const auth = createTokenAuth(options.auth);\n // @ts-ignore ¯\\_(ツ)_/¯\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n }\n else {\n const { authStrategy, ...otherOptions } = options;\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions,\n }, options.auth));\n // @ts-ignore ¯\\_(ツ)_/¯\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n // apply plugins\n // https://stackoverflow.com/a/16345172\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach((plugin) => {\n Object.assign(this, plugin(this, options));\n });\n }\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent\n ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`,\n }\n : null));\n }\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n static plugin(...newPlugins) {\n var _a;\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {\n },\n _a.plugins = currentPlugins.concat(newPlugins.filter((plugin) => !currentPlugins.includes(plugin))),\n _a);\n return NewOctokit;\n }\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n"],"names":["VERSION","Octokit","constructor","options","hook","Collection","requestDefaults","baseUrl","request","endpoint","DEFAULTS","headers","Object","assign","bind","mediaType","previews","format","userAgent","getUserAgent","filter","Boolean","join","timeZone","defaults","graphql","withCustomRequest","log","debug","info","warn","console","error","authStrategy","auth","type","createTokenAuth","wrap","otherOptions","octokit","octokitOptions","classConstructor","plugins","forEach","plugin","OctokitWithDefaults","args","newPlugins","_a","currentPlugins","NewOctokit","concat","includes"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,MAAMA,OAAO,GAAG,mBAAhB;;ACMA,MAAMC,OAAN,CAAc;AACjBC,EAAAA,WAAW,CAACC,OAAO,GAAG,EAAX,EAAe;AACtB,UAAMC,IAAI,GAAG,IAAIC,0BAAJ,EAAb;AACA,UAAMC,eAAe,GAAG;AACpBC,MAAAA,OAAO,EAAEC,eAAO,CAACC,QAAR,CAAiBC,QAAjB,CAA0BH,OADf;AAEpBI,MAAAA,OAAO,EAAE,EAFW;AAGpBH,MAAAA,OAAO,EAAEI,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBV,OAAO,CAACK,OAA1B,EAAmC;AACxCJ,QAAAA,IAAI,EAAEA,IAAI,CAACU,IAAL,CAAU,IAAV,EAAgB,SAAhB;AADkC,OAAnC,CAHW;AAMpBC,MAAAA,SAAS,EAAE;AACPC,QAAAA,QAAQ,EAAE,EADH;AAEPC,QAAAA,MAAM,EAAE;AAFD;AANS,KAAxB,CAFsB;;AActBX,IAAAA,eAAe,CAACK,OAAhB,CAAwB,YAAxB,IAAwC,CACpCR,OAAO,CAACe,SAD4B,EAEnC,mBAAkBlB,OAAQ,IAAGmB,+BAAY,EAAG,EAFT,EAInCC,MAJmC,CAI5BC,OAJ4B,EAKnCC,IALmC,CAK9B,GAL8B,CAAxC;;AAMA,QAAInB,OAAO,CAACI,OAAZ,EAAqB;AACjBD,MAAAA,eAAe,CAACC,OAAhB,GAA0BJ,OAAO,CAACI,OAAlC;AACH;;AACD,QAAIJ,OAAO,CAACa,QAAZ,EAAsB;AAClBV,MAAAA,eAAe,CAACS,SAAhB,CAA0BC,QAA1B,GAAqCb,OAAO,CAACa,QAA7C;AACH;;AACD,QAAIb,OAAO,CAACoB,QAAZ,EAAsB;AAClBjB,MAAAA,eAAe,CAACK,OAAhB,CAAwB,WAAxB,IAAuCR,OAAO,CAACoB,QAA/C;AACH;;AACD,SAAKf,OAAL,GAAeA,eAAO,CAACgB,QAAR,CAAiBlB,eAAjB,CAAf;AACA,SAAKmB,OAAL,GAAeC,yBAAiB,CAAC,KAAKlB,OAAN,CAAjB,CAAgCgB,QAAhC,CAAyClB,eAAzC,CAAf;AACA,SAAKqB,GAAL,GAAWf,MAAM,CAACC,MAAP,CAAc;AACrBe,MAAAA,KAAK,EAAE,MAAM,EADQ;AAErBC,MAAAA,IAAI,EAAE,MAAM,EAFS;AAGrBC,MAAAA,IAAI,EAAEC,OAAO,CAACD,IAAR,CAAahB,IAAb,CAAkBiB,OAAlB,CAHe;AAIrBC,MAAAA,KAAK,EAAED,OAAO,CAACC,KAAR,CAAclB,IAAd,CAAmBiB,OAAnB;AAJc,KAAd,EAKR5B,OAAO,CAACwB,GALA,CAAX;AAMA,SAAKvB,IAAL,GAAYA,IAAZ,CArCsB;AAuCtB;AACA;AACA;AACA;;AACA,QAAI,CAACD,OAAO,CAAC8B,YAAb,EAA2B;AACvB,UAAI,CAAC9B,OAAO,CAAC+B,IAAb,EAAmB;AACf;AACA,aAAKA,IAAL,GAAY,aAAa;AACrBC,UAAAA,IAAI,EAAE;AADe,SAAb,CAAZ;AAGH,OALD,MAMK;AACD;AACA,cAAMD,IAAI,GAAGE,yBAAe,CAACjC,OAAO,CAAC+B,IAAT,CAA5B,CAFC;;AAID9B,QAAAA,IAAI,CAACiC,IAAL,CAAU,SAAV,EAAqBH,IAAI,CAAC9B,IAA1B;AACA,aAAK8B,IAAL,GAAYA,IAAZ;AACH;AACJ,KAdD,MAeK;AACD,YAAM;AAAED,QAAAA;AAAF,UAAoC9B,OAA1C;AAAA,YAAyBmC,YAAzB,4BAA0CnC,OAA1C;;AACA,YAAM+B,IAAI,GAAGD,YAAY,CAACrB,MAAM,CAACC,MAAP,CAAc;AACpCL,QAAAA,OAAO,EAAE,KAAKA,OADsB;AAEpCmB,QAAAA,GAAG,EAAE,KAAKA,GAF0B;AAGpC;AACA;AACA;AACA;AACA;AACAY,QAAAA,OAAO,EAAE,IAR2B;AASpCC,QAAAA,cAAc,EAAEF;AAToB,OAAd,EAUvBnC,OAAO,CAAC+B,IAVe,CAAD,CAAzB,CAFC;;AAcD9B,MAAAA,IAAI,CAACiC,IAAL,CAAU,SAAV,EAAqBH,IAAI,CAAC9B,IAA1B;AACA,WAAK8B,IAAL,GAAYA,IAAZ;AACH,KA1EqB;AA4EtB;;;AACA,UAAMO,gBAAgB,GAAG,KAAKvC,WAA9B;AACAuC,IAAAA,gBAAgB,CAACC,OAAjB,CAAyBC,OAAzB,CAAkCC,MAAD,IAAY;AACzChC,MAAAA,MAAM,CAACC,MAAP,CAAc,IAAd,EAAoB+B,MAAM,CAAC,IAAD,EAAOzC,OAAP,CAA1B;AACH,KAFD;AAGH;;AACD,SAAOqB,QAAP,CAAgBA,QAAhB,EAA0B;AACtB,UAAMqB,mBAAmB,GAAG,cAAc,IAAd,CAAmB;AAC3C3C,MAAAA,WAAW,CAAC,GAAG4C,IAAJ,EAAU;AACjB,cAAM3C,OAAO,GAAG2C,IAAI,CAAC,CAAD,CAAJ,IAAW,EAA3B;;AACA,YAAI,OAAOtB,QAAP,KAAoB,UAAxB,EAAoC;AAChC,gBAAMA,QAAQ,CAACrB,OAAD,CAAd;AACA;AACH;;AACD,cAAMS,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBW,QAAlB,EAA4BrB,OAA5B,EAAqCA,OAAO,CAACe,SAAR,IAAqBM,QAAQ,CAACN,SAA9B,GACrC;AACEA,UAAAA,SAAS,EAAG,GAAEf,OAAO,CAACe,SAAU,IAAGM,QAAQ,CAACN,SAAU;AADxD,SADqC,GAIrC,IAJA,CAAN;AAKH;;AAZ0C,KAA/C;AAcA,WAAO2B,mBAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;;;AACI,SAAOD,MAAP,CAAc,GAAGG,UAAjB,EAA6B;AACzB,QAAIC,EAAJ;;AACA,UAAMC,cAAc,GAAG,KAAKP,OAA5B;AACA,UAAMQ,UAAU,IAAIF,EAAE,GAAG,cAAc,IAAd,CAAmB,EAAxB,EAEhBA,EAAE,CAACN,OAAH,GAAaO,cAAc,CAACE,MAAf,CAAsBJ,UAAU,CAAC3B,MAAX,CAAmBwB,MAAD,IAAY,CAACK,cAAc,CAACG,QAAf,CAAwBR,MAAxB,CAA/B,CAAtB,CAFG,EAGhBI,EAHY,CAAhB;AAIA,WAAOE,UAAP;AACH;;AAlHgB;AAoHrBjD,OAAO,CAACD,OAAR,GAAkBA,OAAlB;AACAC,OAAO,CAACyC,OAAR,GAAkB,EAAlB;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/core/dist-src/index.js b/Client/node_modules/@octokit/core/dist-src/index.js new file mode 100644 index 000000000..75fd2ff54 --- /dev/null +++ b/Client/node_modules/@octokit/core/dist-src/index.js @@ -0,0 +1,124 @@ +import { getUserAgent } from "universal-user-agent"; +import { Collection } from "before-after-hook"; +import { request } from "@octokit/request"; +import { withCustomRequest } from "@octokit/graphql"; +import { createTokenAuth } from "@octokit/auth-token"; +import { VERSION } from "./version"; +export class Octokit { + constructor(options = {}) { + const hook = new Collection(); + const requestDefaults = { + baseUrl: request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + hook: hook.bind(null, "request"), + }), + mediaType: { + previews: [], + format: "", + }, + }; + // prepend default user agent with `options.userAgent` if set + requestDefaults.headers["user-agent"] = [ + options.userAgent, + `octokit-core.js/${VERSION} ${getUserAgent()}`, + ] + .filter(Boolean) + .join(" "); + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; + } + if (options.previews) { + requestDefaults.mediaType.previews = options.previews; + } + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; + } + this.request = request.defaults(requestDefaults); + this.graphql = withCustomRequest(this.request).defaults(requestDefaults); + this.log = Object.assign({ + debug: () => { }, + info: () => { }, + warn: console.warn.bind(console), + error: console.error.bind(console), + }, options.log); + this.hook = hook; + // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance + // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered. + // (2) If only `options.auth` is set, use the default token authentication strategy. + // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. + // TODO: type `options.auth` based on `options.authStrategy`. + if (!options.authStrategy) { + if (!options.auth) { + // (1) + this.auth = async () => ({ + type: "unauthenticated", + }); + } + else { + // (2) + const auth = createTokenAuth(options.auth); + // @ts-ignore ¯\_(ツ)_/¯ + hook.wrap("request", auth.hook); + this.auth = auth; + } + } + else { + const { authStrategy, ...otherOptions } = options; + const auth = authStrategy(Object.assign({ + request: this.request, + log: this.log, + // we pass the current octokit instance as well as its constructor options + // to allow for authentication strategies that return a new octokit instance + // that shares the same internal state as the current one. The original + // requirement for this was the "event-octokit" authentication strategy + // of https://github.com/probot/octokit-auth-probot. + octokit: this, + octokitOptions: otherOptions, + }, options.auth)); + // @ts-ignore ¯\_(ツ)_/¯ + hook.wrap("request", auth.hook); + this.auth = auth; + } + // apply plugins + // https://stackoverflow.com/a/16345172 + const classConstructor = this.constructor; + classConstructor.plugins.forEach((plugin) => { + Object.assign(this, plugin(this, options)); + }); + } + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; + if (typeof defaults === "function") { + super(defaults(options)); + return; + } + super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent + ? { + userAgent: `${options.userAgent} ${defaults.userAgent}`, + } + : null)); + } + }; + return OctokitWithDefaults; + } + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ + static plugin(...newPlugins) { + var _a; + const currentPlugins = this.plugins; + const NewOctokit = (_a = class extends this { + }, + _a.plugins = currentPlugins.concat(newPlugins.filter((plugin) => !currentPlugins.includes(plugin))), + _a); + return NewOctokit; + } +} +Octokit.VERSION = VERSION; +Octokit.plugins = []; diff --git a/Client/node_modules/@octokit/core/dist-src/types.js b/Client/node_modules/@octokit/core/dist-src/types.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/core/dist-src/types.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/core/dist-src/version.js b/Client/node_modules/@octokit/core/dist-src/version.js new file mode 100644 index 000000000..a02a76769 --- /dev/null +++ b/Client/node_modules/@octokit/core/dist-src/version.js @@ -0,0 +1 @@ +export const VERSION = "3.2.4"; diff --git a/Client/node_modules/@octokit/core/dist-types/index.d.ts b/Client/node_modules/@octokit/core/dist-types/index.d.ts new file mode 100644 index 000000000..103362276 --- /dev/null +++ b/Client/node_modules/@octokit/core/dist-types/index.d.ts @@ -0,0 +1,40 @@ +import { HookCollection } from "before-after-hook"; +import { request } from "@octokit/request"; +import { graphql } from "@octokit/graphql"; +import { Constructor, OctokitOptions, OctokitPlugin, ReturnTypeOf, UnionToIntersection } from "./types"; +export declare class Octokit { + static VERSION: string; + static defaults>(this: S, defaults: OctokitOptions | Function): { + new (...args: any[]): { + [x: string]: any; + }; + } & S; + static plugins: OctokitPlugin[]; + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ + static plugin & { + plugins: any[]; + }, T extends OctokitPlugin[]>(this: S, ...newPlugins: T): { + new (...args: any[]): { + [x: string]: any; + }; + plugins: any[]; + } & S & Constructor>>; + constructor(options?: OctokitOptions); + request: typeof request; + graphql: typeof graphql; + log: { + debug: (message: string, additionalInfo?: object) => any; + info: (message: string, additionalInfo?: object) => any; + warn: (message: string, additionalInfo?: object) => any; + error: (message: string, additionalInfo?: object) => any; + [key: string]: any; + }; + hook: HookCollection; + auth: (...args: unknown[]) => Promise; + [key: string]: any; +} diff --git a/Client/node_modules/@octokit/core/dist-types/types.d.ts b/Client/node_modules/@octokit/core/dist-types/types.d.ts new file mode 100644 index 000000000..59b284eef --- /dev/null +++ b/Client/node_modules/@octokit/core/dist-types/types.d.ts @@ -0,0 +1,31 @@ +import * as OctokitTypes from "@octokit/types"; +import { Octokit } from "."; +export declare type RequestParameters = OctokitTypes.RequestParameters; +export declare type OctokitOptions = { + authStrategy?: any; + auth?: any; + userAgent?: string; + previews?: string[]; + baseUrl?: string; + log?: { + debug: (message: string) => unknown; + info: (message: string) => unknown; + warn: (message: string) => unknown; + error: (message: string) => unknown; + }; + request?: OctokitTypes.RequestRequestOptions; + timeZone?: string; + [option: string]: any; +}; +export declare type Constructor = new (...args: any[]) => T; +export declare type ReturnTypeOf = T extends AnyFunction ? ReturnType : T extends AnyFunction[] ? UnionToIntersection> : never; +/** + * @author https://stackoverflow.com/users/2887218/jcalz + * @see https://stackoverflow.com/a/50375286/10325032 + */ +export declare type UnionToIntersection = (Union extends any ? (argument: Union) => void : never) extends (argument: infer Intersection) => void ? Intersection : never; +declare type AnyFunction = (...args: any) => any; +export declare type OctokitPlugin = (octokit: Octokit, options: OctokitOptions) => { + [key: string]: any; +} | void; +export {}; diff --git a/Client/node_modules/@octokit/core/dist-types/version.d.ts b/Client/node_modules/@octokit/core/dist-types/version.d.ts new file mode 100644 index 000000000..11e8fb43e --- /dev/null +++ b/Client/node_modules/@octokit/core/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "3.2.4"; diff --git a/Client/node_modules/@octokit/core/dist-web/index.js b/Client/node_modules/@octokit/core/dist-web/index.js new file mode 100644 index 000000000..2a8582392 --- /dev/null +++ b/Client/node_modules/@octokit/core/dist-web/index.js @@ -0,0 +1,129 @@ +import { getUserAgent } from 'universal-user-agent'; +import { Collection } from 'before-after-hook'; +import { request } from '@octokit/request'; +import { withCustomRequest } from '@octokit/graphql'; +import { createTokenAuth } from '@octokit/auth-token'; + +const VERSION = "3.2.4"; + +class Octokit { + constructor(options = {}) { + const hook = new Collection(); + const requestDefaults = { + baseUrl: request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + hook: hook.bind(null, "request"), + }), + mediaType: { + previews: [], + format: "", + }, + }; + // prepend default user agent with `options.userAgent` if set + requestDefaults.headers["user-agent"] = [ + options.userAgent, + `octokit-core.js/${VERSION} ${getUserAgent()}`, + ] + .filter(Boolean) + .join(" "); + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; + } + if (options.previews) { + requestDefaults.mediaType.previews = options.previews; + } + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; + } + this.request = request.defaults(requestDefaults); + this.graphql = withCustomRequest(this.request).defaults(requestDefaults); + this.log = Object.assign({ + debug: () => { }, + info: () => { }, + warn: console.warn.bind(console), + error: console.error.bind(console), + }, options.log); + this.hook = hook; + // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance + // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered. + // (2) If only `options.auth` is set, use the default token authentication strategy. + // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. + // TODO: type `options.auth` based on `options.authStrategy`. + if (!options.authStrategy) { + if (!options.auth) { + // (1) + this.auth = async () => ({ + type: "unauthenticated", + }); + } + else { + // (2) + const auth = createTokenAuth(options.auth); + // @ts-ignore ¯\_(ツ)_/¯ + hook.wrap("request", auth.hook); + this.auth = auth; + } + } + else { + const { authStrategy, ...otherOptions } = options; + const auth = authStrategy(Object.assign({ + request: this.request, + log: this.log, + // we pass the current octokit instance as well as its constructor options + // to allow for authentication strategies that return a new octokit instance + // that shares the same internal state as the current one. The original + // requirement for this was the "event-octokit" authentication strategy + // of https://github.com/probot/octokit-auth-probot. + octokit: this, + octokitOptions: otherOptions, + }, options.auth)); + // @ts-ignore ¯\_(ツ)_/¯ + hook.wrap("request", auth.hook); + this.auth = auth; + } + // apply plugins + // https://stackoverflow.com/a/16345172 + const classConstructor = this.constructor; + classConstructor.plugins.forEach((plugin) => { + Object.assign(this, plugin(this, options)); + }); + } + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; + if (typeof defaults === "function") { + super(defaults(options)); + return; + } + super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent + ? { + userAgent: `${options.userAgent} ${defaults.userAgent}`, + } + : null)); + } + }; + return OctokitWithDefaults; + } + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ + static plugin(...newPlugins) { + var _a; + const currentPlugins = this.plugins; + const NewOctokit = (_a = class extends this { + }, + _a.plugins = currentPlugins.concat(newPlugins.filter((plugin) => !currentPlugins.includes(plugin))), + _a); + return NewOctokit; + } +} +Octokit.VERSION = VERSION; +Octokit.plugins = []; + +export { Octokit }; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/core/dist-web/index.js.map b/Client/node_modules/@octokit/core/dist-web/index.js.map new file mode 100644 index 000000000..ba6abac9b --- /dev/null +++ b/Client/node_modules/@octokit/core/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"3.2.4\";\n","import { getUserAgent } from \"universal-user-agent\";\nimport { Collection } from \"before-after-hook\";\nimport { request } from \"@octokit/request\";\nimport { withCustomRequest } from \"@octokit/graphql\";\nimport { createTokenAuth } from \"@octokit/auth-token\";\nimport { VERSION } from \"./version\";\nexport class Octokit {\n constructor(options = {}) {\n const hook = new Collection();\n const requestDefaults = {\n baseUrl: request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n hook: hook.bind(null, \"request\"),\n }),\n mediaType: {\n previews: [],\n format: \"\",\n },\n };\n // prepend default user agent with `options.userAgent` if set\n requestDefaults.headers[\"user-agent\"] = [\n options.userAgent,\n `octokit-core.js/${VERSION} ${getUserAgent()}`,\n ]\n .filter(Boolean)\n .join(\" \");\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n this.request = request.defaults(requestDefaults);\n this.graphql = withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => { },\n info: () => { },\n warn: console.warn.bind(console),\n error: console.error.bind(console),\n }, options.log);\n this.hook = hook;\n // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\",\n });\n }\n else {\n // (2)\n const auth = createTokenAuth(options.auth);\n // @ts-ignore ¯\\_(ツ)_/¯\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n }\n else {\n const { authStrategy, ...otherOptions } = options;\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions,\n }, options.auth));\n // @ts-ignore ¯\\_(ツ)_/¯\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n // apply plugins\n // https://stackoverflow.com/a/16345172\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach((plugin) => {\n Object.assign(this, plugin(this, options));\n });\n }\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent\n ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`,\n }\n : null));\n }\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n static plugin(...newPlugins) {\n var _a;\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {\n },\n _a.plugins = currentPlugins.concat(newPlugins.filter((plugin) => !currentPlugins.includes(plugin))),\n _a);\n return NewOctokit;\n }\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n"],"names":[],"mappings":";;;;;;AAAO,MAAM,OAAO,GAAG,mBAAmB;;ACMnC,MAAM,OAAO,CAAC;AACrB,IAAI,WAAW,CAAC,OAAO,GAAG,EAAE,EAAE;AAC9B,QAAQ,MAAM,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;AACtC,QAAQ,MAAM,eAAe,GAAG;AAChC,YAAY,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO;AACtD,YAAY,OAAO,EAAE,EAAE;AACvB,YAAY,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE;AACxD,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;AAChD,aAAa,CAAC;AACd,YAAY,SAAS,EAAE;AACvB,gBAAgB,QAAQ,EAAE,EAAE;AAC5B,gBAAgB,MAAM,EAAE,EAAE;AAC1B,aAAa;AACb,SAAS,CAAC;AACV;AACA,QAAQ,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG;AAChD,YAAY,OAAO,CAAC,SAAS;AAC7B,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;AAC1D,SAAS;AACT,aAAa,MAAM,CAAC,OAAO,CAAC;AAC5B,aAAa,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE;AAC7B,YAAY,eAAe,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AACtD,SAAS;AACT,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC9B,YAAY,eAAe,CAAC,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;AAClE,SAAS;AACT,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC9B,YAAY,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;AACpE,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AACzD,QAAQ,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AACjF,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;AACjC,YAAY,KAAK,EAAE,MAAM,GAAG;AAC5B,YAAY,IAAI,EAAE,MAAM,GAAG;AAC3B,YAAY,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5C,YAAY,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9C,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AACxB,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AACnC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC/B;AACA,gBAAgB,IAAI,CAAC,IAAI,GAAG,aAAa;AACzC,oBAAoB,IAAI,EAAE,iBAAiB;AAC3C,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,iBAAiB;AACjB;AACA,gBAAgB,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3D;AACA,gBAAgB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,gBAAgB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjC,aAAa;AACb,SAAS;AACT,aAAa;AACb,YAAY,MAAM,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;AAC9D,YAAY,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;AACpD,gBAAgB,OAAO,EAAE,IAAI,CAAC,OAAO;AACrC,gBAAgB,GAAG,EAAE,IAAI,CAAC,GAAG;AAC7B;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO,EAAE,IAAI;AAC7B,gBAAgB,cAAc,EAAE,YAAY;AAC5C,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9B;AACA,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AAC7B,SAAS;AACT;AACA;AACA,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC;AAClD,QAAQ,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACrD,YAAY,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AACvD,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,OAAO,QAAQ,CAAC,QAAQ,EAAE;AAC9B,QAAQ,MAAM,mBAAmB,GAAG,cAAc,IAAI,CAAC;AACvD,YAAY,WAAW,CAAC,GAAG,IAAI,EAAE;AACjC,gBAAgB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9C,gBAAgB,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACpD,oBAAoB,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7C,oBAAoB,OAAO;AAC3B,iBAAiB;AACjB,gBAAgB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS;AAClG,sBAAsB;AACtB,wBAAwB,SAAS,EAAE,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC/E,qBAAqB;AACrB,sBAAsB,IAAI,CAAC,CAAC,CAAC;AAC7B,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,OAAO,mBAAmB,CAAC;AACnC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,GAAG,UAAU,EAAE;AACjC,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC;AAC5C,QAAQ,MAAM,UAAU,IAAI,EAAE,GAAG,cAAc,IAAI,CAAC;AACpD,aAAa;AACb,YAAY,EAAE,CAAC,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/G,YAAY,EAAE,CAAC,CAAC;AAChB,QAAQ,OAAO,UAAU,CAAC;AAC1B,KAAK;AACL,CAAC;AACD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;AAC1B,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/core/package.json b/Client/node_modules/@octokit/core/package.json new file mode 100644 index 000000000..57b012607 --- /dev/null +++ b/Client/node_modules/@octokit/core/package.json @@ -0,0 +1,90 @@ +{ + "_from": "@octokit/core@^3.2.3", + "_id": "@octokit/core@3.2.4", + "_inBundle": false, + "_integrity": "sha512-d9dTsqdePBqOn7aGkyRFe7pQpCXdibSJ5SFnrTr0axevObZrpz3qkWm7t/NjYv5a66z6vhfteriaq4FRz3e0Qg==", + "_location": "/@octokit/core", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@octokit/core@^3.2.3", + "name": "@octokit/core", + "escapedName": "@octokit%2fcore", + "scope": "@octokit", + "rawSpec": "^3.2.3", + "saveSpec": null, + "fetchSpec": "^3.2.3" + }, + "_requiredBy": [ + "/@octokit/rest" + ], + "_resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.2.4.tgz", + "_shasum": "5791256057a962eca972e31818f02454897fd106", + "_spec": "@octokit/core@^3.2.3", + "_where": "C:\\Superalgos\\Client\\node_modules\\@octokit\\rest", + "bugs": { + "url": "https://github.com/octokit/core.js/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@octokit/auth-token": "^2.4.4", + "@octokit/graphql": "^4.5.8", + "@octokit/request": "^5.4.12", + "@octokit/types": "^6.0.3", + "before-after-hook": "^2.1.0", + "universal-user-agent": "^6.0.0" + }, + "deprecated": false, + "description": "Extendable client for GitHub's REST & GraphQL APIs", + "devDependencies": { + "@octokit/auth": "^2.0.0", + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "@types/fetch-mock": "^7.3.1", + "@types/jest": "^26.0.0", + "@types/lolex": "^5.1.0", + "@types/node": "^14.0.4", + "@types/node-fetch": "^2.5.0", + "fetch-mock": "^9.0.0", + "http-proxy-agent": "^4.0.1", + "jest": "^26.1.0", + "lolex": "^6.0.0", + "prettier": "^2.0.4", + "proxy": "^1.0.1", + "semantic-release": "^17.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "ts-jest": "^26.1.3", + "typescript": "^4.0.2" + }, + "files": [ + "dist-*/", + "bin/" + ], + "homepage": "https://github.com/octokit/core.js#readme", + "keywords": [ + "octokit", + "github", + "api", + "sdk", + "toolkit" + ], + "license": "MIT", + "main": "dist-node/index.js", + "module": "dist-web/index.js", + "name": "@octokit/core", + "pika": true, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/octokit/core.js.git" + }, + "sideEffects": false, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "version": "3.2.4" +} diff --git a/Client/node_modules/@octokit/endpoint/LICENSE b/Client/node_modules/@octokit/endpoint/LICENSE new file mode 100644 index 000000000..af5366d0d --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2018 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Client/node_modules/@octokit/endpoint/README.md b/Client/node_modules/@octokit/endpoint/README.md new file mode 100644 index 000000000..818c100d8 --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/README.md @@ -0,0 +1,421 @@ +# endpoint.js + +> Turns GitHub REST API endpoints into generic request options + +[![@latest](https://img.shields.io/npm/v/@octokit/endpoint.svg)](https://www.npmjs.com/package/@octokit/endpoint) +![Build Status](https://github.com/octokit/endpoint.js/workflows/Test/badge.svg) + +`@octokit/endpoint` combines [GitHub REST API routes](https://developer.github.com/v3/) with your parameters and turns them into generic request options that can be used in any request library. + + + + + +- [Usage](#usage) +- [API](#api) + - [`endpoint(route, options)` or `endpoint(options)`](#endpointroute-options-or-endpointoptions) + - [`endpoint.defaults()`](#endpointdefaults) + - [`endpoint.DEFAULTS`](#endpointdefaults) + - [`endpoint.merge(route, options)` or `endpoint.merge(options)`](#endpointmergeroute-options-or-endpointmergeoptions) + - [`endpoint.parse()`](#endpointparse) +- [Special cases](#special-cases) + - [The `data` parameter – set request body directly](#the-data-parameter-%E2%80%93-set-request-body-directly) + - [Set parameters for both the URL/query and the request body](#set-parameters-for-both-the-urlquery-and-the-request-body) +- [LICENSE](#license) + + + +## Usage + + + + + + +
+Browsers + +Load @octokit/endpoint directly from cdn.skypack.dev + +```html + +``` + +
+Node + + +Install with npm install @octokit/endpoint + +```js +const { endpoint } = require("@octokit/endpoint"); +// or: import { endpoint } from "@octokit/endpoint"; +``` + +
+ +Example for [List organization repositories](https://developer.github.com/v3/repos/#list-organization-repositories) + +```js +const requestOptions = endpoint("GET /orgs/:org/repos", { + headers: { + authorization: "token 0000000000000000000000000000000000000001", + }, + org: "octokit", + type: "private", +}); +``` + +The resulting `requestOptions` looks as follows + +```json +{ + "method": "GET", + "url": "https://api.github.com/orgs/octokit/repos?type=private", + "headers": { + "accept": "application/vnd.github.v3+json", + "authorization": "token 0000000000000000000000000000000000000001", + "user-agent": "octokit/endpoint.js v1.2.3" + } +} +``` + +You can pass `requestOptions` to common request libraries + +```js +const { url, ...options } = requestOptions; +// using with fetch (https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) +fetch(url, options); +// using with request (https://github.com/request/request) +request(requestOptions); +// using with got (https://github.com/sindresorhus/got) +got[options.method](url, options); +// using with axios +axios(requestOptions); +``` + +## API + +### `endpoint(route, options)` or `endpoint(options)` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ name + + type + + description +
+ route + + String + + If set, it has to be a string consisting of URL and the request method, e.g., GET /orgs/:org. If it’s set to a URL, only the method defaults to GET. +
+ options.method + + String + + Required unless route is set. Any supported http verb. Defaults to GET. +
+ options.url + + String + + Required unless route is set. A path or full URL which may contain :variable or {variable} placeholders, + e.g., /orgs/:org/repos. The url is parsed using url-template. +
+ options.baseUrl + + String + + Defaults to https://api.github.com. +
+ options.headers + + Object + + Custom headers. Passed headers are merged with defaults:
+ headers['user-agent'] defaults to octokit-endpoint.js/1.2.3 (where 1.2.3 is the released version).
+ headers['accept'] defaults to application/vnd.github.v3+json.
+
+ options.mediaType.format + + String + + Media type param, such as raw, diff, or text+json. See Media Types. Setting options.mediaType.format will amend the headers.accept value. +
+ options.mediaType.previews + + Array of Strings + + Name of previews, such as mercy, symmetra, or scarlet-witch. See API Previews. If options.mediaType.previews was set as default, the new previews will be merged into the default ones. Setting options.mediaType.previews will amend the headers.accept value. options.mediaType.previews will be merged with an existing array set using .defaults(). +
+ options.data + + Any + + Set request body directly instead of setting it to JSON based on additional parameters. See "The data parameter" below. +
+ options.request + + Object + + Pass custom meta information for the request. The request object will be returned as is. +
+ +All other options will be passed depending on the `method` and `url` options. + +1. If the option key has a placeholder in the `url`, it will be used as the replacement. For example, if the passed options are `{url: '/orgs/:org/repos', org: 'foo'}` the returned `options.url` is `https://api.github.com/orgs/foo/repos`. +2. If the `method` is `GET` or `HEAD`, the option is passed as a query parameter. +3. Otherwise, the parameter is passed in the request body as a JSON key. + +**Result** + +`endpoint()` is a synchronous method and returns an object with the following keys: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ key + + type + + description +
methodStringThe http method. Always lowercase.
urlStringThe url with placeholders replaced with passed parameters.
headersObjectAll header names are lowercased.
bodyAnyThe request body if one is present. Only for PATCH, POST, PUT, DELETE requests.
requestObjectRequest meta option, it will be returned as it was passed into endpoint()
+ +### `endpoint.defaults()` + +Override or set default options. Example: + +```js +const request = require("request"); +const myEndpoint = require("@octokit/endpoint").defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", + headers: { + "user-agent": "myApp/1.2.3", + authorization: `token 0000000000000000000000000000000000000001`, + }, + org: "my-project", + per_page: 100, +}); + +request(myEndpoint(`GET /orgs/:org/repos`)); +``` + +You can call `.defaults()` again on the returned method, the defaults will cascade. + +```js +const myProjectEndpoint = endpoint.defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", + headers: { + "user-agent": "myApp/1.2.3", + }, + org: "my-project", +}); +const myProjectEndpointWithAuth = myProjectEndpoint.defaults({ + headers: { + authorization: `token 0000000000000000000000000000000000000001`, + }, +}); +``` + +`myProjectEndpointWithAuth` now defaults the `baseUrl`, `headers['user-agent']`, +`org` and `headers['authorization']` on top of `headers['accept']` that is set +by the global default. + +### `endpoint.DEFAULTS` + +The current default options. + +```js +endpoint.DEFAULTS.baseUrl; // https://api.github.com +const myEndpoint = endpoint.defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", +}); +myEndpoint.DEFAULTS.baseUrl; // https://github-enterprise.acme-inc.com/api/v3 +``` + +### `endpoint.merge(route, options)` or `endpoint.merge(options)` + +Get the defaulted endpoint options, but without parsing them into request options: + +```js +const myProjectEndpoint = endpoint.defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", + headers: { + "user-agent": "myApp/1.2.3", + }, + org: "my-project", +}); +myProjectEndpoint.merge("GET /orgs/:org/repos", { + headers: { + authorization: `token 0000000000000000000000000000000000000001`, + }, + org: "my-secret-project", + type: "private", +}); + +// { +// baseUrl: 'https://github-enterprise.acme-inc.com/api/v3', +// method: 'GET', +// url: '/orgs/:org/repos', +// headers: { +// accept: 'application/vnd.github.v3+json', +// authorization: `token 0000000000000000000000000000000000000001`, +// 'user-agent': 'myApp/1.2.3' +// }, +// org: 'my-secret-project', +// type: 'private' +// } +``` + +### `endpoint.parse()` + +Stateless method to turn endpoint options into request options. Calling +`endpoint(options)` is the same as calling `endpoint.parse(endpoint.merge(options))`. + +## Special cases + + + +### The `data` parameter – set request body directly + +Some endpoints such as [Render a Markdown document in raw mode](https://developer.github.com/v3/markdown/#render-a-markdown-document-in-raw-mode) don’t have parameters that are sent as request body keys, instead, the request body needs to be set directly. In these cases, set the `data` parameter. + +```js +const options = endpoint("POST /markdown/raw", { + data: "Hello world github/linguist#1 **cool**, and #1!", + headers: { + accept: "text/html;charset=utf-8", + "content-type": "text/plain", + }, +}); + +// options is +// { +// method: 'post', +// url: 'https://api.github.com/markdown/raw', +// headers: { +// accept: 'text/html;charset=utf-8', +// 'content-type': 'text/plain', +// 'user-agent': userAgent +// }, +// body: 'Hello world github/linguist#1 **cool**, and #1!' +// } +``` + +### Set parameters for both the URL/query and the request body + +There are API endpoints that accept both query parameters as well as a body. In that case, you need to add the query parameters as templates to `options.url`, as defined in the [RFC 6570 URI Template specification](https://tools.ietf.org/html/rfc6570). + +Example + +```js +endpoint( + "POST https://uploads.github.com/repos/octocat/Hello-World/releases/1/assets{?name,label}", + { + name: "example.zip", + label: "short description", + headers: { + "content-type": "text/plain", + "content-length": 14, + authorization: `token 0000000000000000000000000000000000000001`, + }, + data: "Hello, world!", + } +); +``` + +## LICENSE + +[MIT](LICENSE) diff --git a/Client/node_modules/@octokit/endpoint/dist-node/index.js b/Client/node_modules/@octokit/endpoint/dist-node/index.js new file mode 100644 index 000000000..8637216e9 --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-node/index.js @@ -0,0 +1,390 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var isPlainObject = require('is-plain-object'); +var universalUserAgent = require('universal-user-agent'); + +function lowercaseKeys(object) { + if (!object) { + return {}; + } + + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} + +function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach(key => { + if (isPlainObject.isPlainObject(options[key])) { + if (!(key in defaults)) Object.assign(result, { + [key]: options[key] + });else result[key] = mergeDeep(defaults[key], options[key]); + } else { + Object.assign(result, { + [key]: options[key] + }); + } + }); + return result; +} + +function removeUndefinedProperties(obj) { + for (const key in obj) { + if (obj[key] === undefined) { + delete obj[key]; + } + } + + return obj; +} + +function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { + method, + url + } : { + url: method + }, options); + } else { + options = Object.assign({}, route); + } // lowercase header names before merging with defaults to avoid duplicates + + + options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging + + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten + + if (defaults && defaults.mediaType.previews.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews); + } + + mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, "")); + return mergedOptions; +} + +function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); + + if (names.length === 0) { + return url; + } + + return url + separator + names.map(name => { + if (name === "q") { + return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); + } + + return `${name}=${encodeURIComponent(parameters[name])}`; + }).join("&"); +} + +const urlVariableRegex = /\{[^}]+\}/g; + +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); +} + +function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); + + if (!matches) { + return []; + } + + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); +} + +function omit(object, keysToOmit) { + return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => { + obj[key] = object[key]; + return obj; + }, {}); +} + +// Based on https://github.com/bramstein/url-template, licensed under BSD +// TODO: create separate package. +// +// Copyright (c) 2012-2014, Bram Stein +// All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/* istanbul ignore file */ +function encodeReserved(str) { + return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) { + if (!/%[0-9A-Fa-f]/.test(part)) { + part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); + } + + return part; + }).join(""); +} + +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + }); +} + +function encodeValue(operator, value, key) { + value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); + + if (key) { + return encodeUnreserved(key) + "=" + value; + } else { + return value; + } +} + +function isDefined(value) { + return value !== undefined && value !== null; +} + +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; +} + +function getValues(context, operator, key, modifier) { + var value = context[key], + result = []; + + if (isDefined(value) && value !== "") { + if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { + value = value.toString(); + + if (modifier && modifier !== "*") { + value = value.substring(0, parseInt(modifier, 10)); + } + + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + } else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + }); + } else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } else { + const tmp = []; + + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + tmp.push(encodeValue(operator, value)); + }); + } else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + tmp.push(encodeUnreserved(k)); + tmp.push(encodeValue(operator, value[k].toString())); + } + }); + } + + if (isKeyOperator(operator)) { + result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + } else if (tmp.length !== 0) { + result.push(tmp.join(",")); + } + } + } + } else { + if (operator === ";") { + if (isDefined(value)) { + result.push(encodeUnreserved(key)); + } + } else if (value === "" && (operator === "&" || operator === "?")) { + result.push(encodeUnreserved(key) + "="); + } else if (value === "") { + result.push(""); + } + } + + return result; +} + +function parseUrl(template) { + return { + expand: expand.bind(null, template) + }; +} + +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; + + if (operators.indexOf(expression.charAt(0)) !== -1) { + operator = expression.charAt(0); + expression = expression.substr(1); + } + + expression.split(/,/g).forEach(function (variable) { + var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); + values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); + }); + + if (operator && operator !== "+") { + var separator = ","; + + if (operator === "?") { + separator = "&"; + } else if (operator !== "#") { + separator = operator; + } + + return (values.length !== 0 ? operator : "") + values.join(separator); + } else { + return values.join(","); + } + } else { + return encodeReserved(literal); + } + }); +} + +function parse(options) { + // https://fetch.spec.whatwg.org/#methods + let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible + + let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); + let headers = Object.assign({}, options.headers); + let body; + let parameters = omit(options, ["method", "baseUrl", "url", "headers", "request", "mediaType"]); // extract variable names from URL to calculate remaining variables later + + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + + if (!/^http/.test(url)) { + url = options.baseUrl + url; + } + + const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat("baseUrl"); + const remainingParameters = omit(parameters, omittedParameters); + const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); + + if (!isBinaryRequest) { + if (options.mediaType.format) { + // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw + headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); + } + + if (options.mediaType.previews.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => { + const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }).join(","); + } + } // for GET/HEAD requests, set URL query parameters from remaining parameters + // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters + + + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } else { + if ("data" in remainingParameters) { + body = remainingParameters.data; + } else { + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } else { + headers["content-length"] = 0; + } + } + } // default content-type for JSON if body is set + + + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. + // fetch does not allow to set `content-length` header, but we can set body to an empty string + + + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } // Only return body/request keys if present + + + return Object.assign({ + method, + url, + headers + }, typeof body !== "undefined" ? { + body + } : null, options.request ? { + request: options.request + } : null); +} + +function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} + +function withDefaults(oldDefaults, newDefaults) { + const DEFAULTS = merge(oldDefaults, newDefaults); + const endpoint = endpointWithDefaults.bind(null, DEFAULTS); + return Object.assign(endpoint, { + DEFAULTS, + defaults: withDefaults.bind(null, DEFAULTS), + merge: merge.bind(null, DEFAULTS), + parse + }); +} + +const VERSION = "6.0.10"; + +const userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url. +// So we use RequestParameters and add method as additional required property. + +const DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent + }, + mediaType: { + format: "", + previews: [] + } +}; + +const endpoint = withDefaults(null, DEFAULTS); + +exports.endpoint = endpoint; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/endpoint/dist-node/index.js.map b/Client/node_modules/@octokit/endpoint/dist-node/index.js.map new file mode 100644 index 000000000..04a8b8d5a --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/util/lowercase-keys.js","../dist-src/util/merge-deep.js","../dist-src/util/remove-undefined-properties.js","../dist-src/merge.js","../dist-src/util/add-query-parameters.js","../dist-src/util/extract-url-variable-names.js","../dist-src/util/omit.js","../dist-src/util/url-template.js","../dist-src/parse.js","../dist-src/endpoint-with-defaults.js","../dist-src/with-defaults.js","../dist-src/version.js","../dist-src/defaults.js","../dist-src/index.js"],"sourcesContent":["export function lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n","import { isPlainObject } from \"is-plain-object\";\nexport function mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach((key) => {\n if (isPlainObject(options[key])) {\n if (!(key in defaults))\n Object.assign(result, { [key]: options[key] });\n else\n result[key] = mergeDeep(defaults[key], options[key]);\n }\n else {\n Object.assign(result, { [key]: options[key] });\n }\n });\n return result;\n}\n","export function removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n return obj;\n}\n","import { lowercaseKeys } from \"./util/lowercase-keys\";\nimport { mergeDeep } from \"./util/merge-deep\";\nimport { removeUndefinedProperties } from \"./util/remove-undefined-properties\";\nexport function merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? { method, url } : { url: method }, options);\n }\n else {\n options = Object.assign({}, route);\n }\n // lowercase header names before merging with defaults to avoid duplicates\n options.headers = lowercaseKeys(options.headers);\n // remove properties with undefined values before merging\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options);\n // mediaType.previews arrays are merged, instead of overwritten\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews\n .filter((preview) => !mergedOptions.mediaType.previews.includes(preview))\n .concat(mergedOptions.mediaType.previews);\n }\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map((preview) => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n","export function addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n if (names.length === 0) {\n return url;\n }\n return (url +\n separator +\n names\n .map((name) => {\n if (name === \"q\") {\n return (\"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\"));\n }\n return `${name}=${encodeURIComponent(parameters[name])}`;\n })\n .join(\"&\"));\n}\n","const urlVariableRegex = /\\{[^}]+\\}/g;\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\nexport function extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n if (!matches) {\n return [];\n }\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n","export function omit(object, keysToOmit) {\n return Object.keys(object)\n .filter((option) => !keysToOmit.includes(option))\n .reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n","// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str\n .split(/(%[0-9A-Fa-f]{2})/g)\n .map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n return part;\n })\n .join(\"\");\n}\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\nfunction encodeValue(operator, value, key) {\n value =\n operator === \"+\" || operator === \"#\"\n ? encodeReserved(value)\n : encodeUnreserved(value);\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n }\n else {\n return value;\n }\n}\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\nfunction getValues(context, operator, key, modifier) {\n var value = context[key], result = [];\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\") {\n value = value.toString();\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n }\n else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n }\n else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n }\n else {\n const tmp = [];\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n }\n else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n }\n else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n }\n else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n }\n else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n }\n else if (value === \"\") {\n result.push(\"\");\n }\n }\n return result;\n}\nexport function parseUrl(template) {\n return {\n expand: expand.bind(null, template),\n };\n}\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n if (operator && operator !== \"+\") {\n var separator = \",\";\n if (operator === \"?\") {\n separator = \"&\";\n }\n else if (operator !== \"#\") {\n separator = operator;\n }\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n }\n else {\n return values.join(\",\");\n }\n }\n else {\n return encodeReserved(literal);\n }\n });\n}\n","import { addQueryParameters } from \"./util/add-query-parameters\";\nimport { extractUrlVariableNames } from \"./util/extract-url-variable-names\";\nimport { omit } from \"./util/omit\";\nimport { parseUrl } from \"./util/url-template\";\nexport function parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase();\n // replace :varname with {varname} to make it RFC 6570 compatible\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"mediaType\",\n ]);\n // extract variable names from URL to calculate remaining variables later\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n const omittedParameters = Object.keys(options)\n .filter((option) => urlVariableNames.includes(option))\n .concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept\n .split(/,/)\n .map((preview) => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`))\n .join(\",\");\n }\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader\n .concat(options.mediaType.previews)\n .map((preview) => {\n const format = options.mediaType.format\n ? `.${options.mediaType.format}`\n : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n })\n .join(\",\");\n }\n }\n // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n }\n else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n }\n else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n }\n else {\n headers[\"content-length\"] = 0;\n }\n }\n }\n // default content-type for JSON if body is set\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n }\n // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n }\n // Only return body/request keys if present\n return Object.assign({ method, url, headers }, typeof body !== \"undefined\" ? { body } : null, options.request ? { request: options.request } : null);\n}\n","import { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nexport function endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n","import { endpointWithDefaults } from \"./endpoint-with-defaults\";\nimport { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nexport function withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse,\n });\n}\n","export const VERSION = \"6.0.10\";\n","import { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nconst userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;\n// DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\nexport const DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent,\n },\n mediaType: {\n format: \"\",\n previews: [],\n },\n};\n","import { withDefaults } from \"./with-defaults\";\nimport { DEFAULTS } from \"./defaults\";\nexport const endpoint = withDefaults(null, DEFAULTS);\n"],"names":["lowercaseKeys","object","Object","keys","reduce","newObj","key","toLowerCase","mergeDeep","defaults","options","result","assign","forEach","isPlainObject","removeUndefinedProperties","obj","undefined","merge","route","method","url","split","headers","mergedOptions","mediaType","previews","length","filter","preview","includes","concat","map","replace","addQueryParameters","parameters","separator","test","names","name","q","encodeURIComponent","join","urlVariableRegex","removeNonChars","variableName","extractUrlVariableNames","matches","match","a","b","omit","keysToOmit","option","encodeReserved","str","part","encodeURI","encodeUnreserved","c","charCodeAt","toString","toUpperCase","encodeValue","operator","value","isDefined","isKeyOperator","getValues","context","modifier","substring","parseInt","push","Array","isArray","k","tmp","parseUrl","template","expand","bind","operators","_","expression","literal","values","indexOf","charAt","substr","variable","exec","parse","body","urlVariableNames","baseUrl","omittedParameters","remainingParameters","isBinaryRequest","accept","format","previewsFromAcceptHeader","data","request","endpointWithDefaults","withDefaults","oldDefaults","newDefaults","DEFAULTS","endpoint","VERSION","userAgent","getUserAgent"],"mappings":";;;;;;;AAAO,SAASA,aAAT,CAAuBC,MAAvB,EAA+B;AAClC,MAAI,CAACA,MAAL,EAAa;AACT,WAAO,EAAP;AACH;;AACD,SAAOC,MAAM,CAACC,IAAP,CAAYF,MAAZ,EAAoBG,MAApB,CAA2B,CAACC,MAAD,EAASC,GAAT,KAAiB;AAC/CD,IAAAA,MAAM,CAACC,GAAG,CAACC,WAAJ,EAAD,CAAN,GAA4BN,MAAM,CAACK,GAAD,CAAlC;AACA,WAAOD,MAAP;AACH,GAHM,EAGJ,EAHI,CAAP;AAIH;;ACPM,SAASG,SAAT,CAAmBC,QAAnB,EAA6BC,OAA7B,EAAsC;AACzC,QAAMC,MAAM,GAAGT,MAAM,CAACU,MAAP,CAAc,EAAd,EAAkBH,QAAlB,CAAf;AACAP,EAAAA,MAAM,CAACC,IAAP,CAAYO,OAAZ,EAAqBG,OAArB,CAA8BP,GAAD,IAAS;AAClC,QAAIQ,2BAAa,CAACJ,OAAO,CAACJ,GAAD,CAAR,CAAjB,EAAiC;AAC7B,UAAI,EAAEA,GAAG,IAAIG,QAAT,CAAJ,EACIP,MAAM,CAACU,MAAP,CAAcD,MAAd,EAAsB;AAAE,SAACL,GAAD,GAAOI,OAAO,CAACJ,GAAD;AAAhB,OAAtB,EADJ,KAGIK,MAAM,CAACL,GAAD,CAAN,GAAcE,SAAS,CAACC,QAAQ,CAACH,GAAD,CAAT,EAAgBI,OAAO,CAACJ,GAAD,CAAvB,CAAvB;AACP,KALD,MAMK;AACDJ,MAAAA,MAAM,CAACU,MAAP,CAAcD,MAAd,EAAsB;AAAE,SAACL,GAAD,GAAOI,OAAO,CAACJ,GAAD;AAAhB,OAAtB;AACH;AACJ,GAVD;AAWA,SAAOK,MAAP;AACH;;ACfM,SAASI,yBAAT,CAAmCC,GAAnC,EAAwC;AAC3C,OAAK,MAAMV,GAAX,IAAkBU,GAAlB,EAAuB;AACnB,QAAIA,GAAG,CAACV,GAAD,CAAH,KAAaW,SAAjB,EAA4B;AACxB,aAAOD,GAAG,CAACV,GAAD,CAAV;AACH;AACJ;;AACD,SAAOU,GAAP;AACH;;ACJM,SAASE,KAAT,CAAeT,QAAf,EAAyBU,KAAzB,EAAgCT,OAAhC,EAAyC;AAC5C,MAAI,OAAOS,KAAP,KAAiB,QAArB,EAA+B;AAC3B,QAAI,CAACC,MAAD,EAASC,GAAT,IAAgBF,KAAK,CAACG,KAAN,CAAY,GAAZ,CAApB;AACAZ,IAAAA,OAAO,GAAGR,MAAM,CAACU,MAAP,CAAcS,GAAG,GAAG;AAAED,MAAAA,MAAF;AAAUC,MAAAA;AAAV,KAAH,GAAqB;AAAEA,MAAAA,GAAG,EAAED;AAAP,KAAtC,EAAuDV,OAAvD,CAAV;AACH,GAHD,MAIK;AACDA,IAAAA,OAAO,GAAGR,MAAM,CAACU,MAAP,CAAc,EAAd,EAAkBO,KAAlB,CAAV;AACH,GAP2C;;;AAS5CT,EAAAA,OAAO,CAACa,OAAR,GAAkBvB,aAAa,CAACU,OAAO,CAACa,OAAT,CAA/B,CAT4C;;AAW5CR,EAAAA,yBAAyB,CAACL,OAAD,CAAzB;AACAK,EAAAA,yBAAyB,CAACL,OAAO,CAACa,OAAT,CAAzB;AACA,QAAMC,aAAa,GAAGhB,SAAS,CAACC,QAAQ,IAAI,EAAb,EAAiBC,OAAjB,CAA/B,CAb4C;;AAe5C,MAAID,QAAQ,IAAIA,QAAQ,CAACgB,SAAT,CAAmBC,QAAnB,CAA4BC,MAA5C,EAAoD;AAChDH,IAAAA,aAAa,CAACC,SAAd,CAAwBC,QAAxB,GAAmCjB,QAAQ,CAACgB,SAAT,CAAmBC,QAAnB,CAC9BE,MAD8B,CACtBC,OAAD,IAAa,CAACL,aAAa,CAACC,SAAd,CAAwBC,QAAxB,CAAiCI,QAAjC,CAA0CD,OAA1C,CADS,EAE9BE,MAF8B,CAEvBP,aAAa,CAACC,SAAd,CAAwBC,QAFD,CAAnC;AAGH;;AACDF,EAAAA,aAAa,CAACC,SAAd,CAAwBC,QAAxB,GAAmCF,aAAa,CAACC,SAAd,CAAwBC,QAAxB,CAAiCM,GAAjC,CAAsCH,OAAD,IAAaA,OAAO,CAACI,OAAR,CAAgB,UAAhB,EAA4B,EAA5B,CAAlD,CAAnC;AACA,SAAOT,aAAP;AACH;;ACzBM,SAASU,kBAAT,CAA4Bb,GAA5B,EAAiCc,UAAjC,EAA6C;AAChD,QAAMC,SAAS,GAAG,KAAKC,IAAL,CAAUhB,GAAV,IAAiB,GAAjB,GAAuB,GAAzC;AACA,QAAMiB,KAAK,GAAGpC,MAAM,CAACC,IAAP,CAAYgC,UAAZ,CAAd;;AACA,MAAIG,KAAK,CAACX,MAAN,KAAiB,CAArB,EAAwB;AACpB,WAAON,GAAP;AACH;;AACD,SAAQA,GAAG,GACPe,SADI,GAEJE,KAAK,CACAN,GADL,CACUO,IAAD,IAAU;AACf,QAAIA,IAAI,KAAK,GAAb,EAAkB;AACd,aAAQ,OAAOJ,UAAU,CAACK,CAAX,CAAalB,KAAb,CAAmB,GAAnB,EAAwBU,GAAxB,CAA4BS,kBAA5B,EAAgDC,IAAhD,CAAqD,GAArD,CAAf;AACH;;AACD,WAAQ,GAAEH,IAAK,IAAGE,kBAAkB,CAACN,UAAU,CAACI,IAAD,CAAX,CAAmB,EAAvD;AACH,GAND,EAOKG,IAPL,CAOU,GAPV,CAFJ;AAUH;;AChBD,MAAMC,gBAAgB,GAAG,YAAzB;;AACA,SAASC,cAAT,CAAwBC,YAAxB,EAAsC;AAClC,SAAOA,YAAY,CAACZ,OAAb,CAAqB,YAArB,EAAmC,EAAnC,EAAuCX,KAAvC,CAA6C,GAA7C,CAAP;AACH;;AACD,AAAO,SAASwB,uBAAT,CAAiCzB,GAAjC,EAAsC;AACzC,QAAM0B,OAAO,GAAG1B,GAAG,CAAC2B,KAAJ,CAAUL,gBAAV,CAAhB;;AACA,MAAI,CAACI,OAAL,EAAc;AACV,WAAO,EAAP;AACH;;AACD,SAAOA,OAAO,CAACf,GAAR,CAAYY,cAAZ,EAA4BxC,MAA5B,CAAmC,CAAC6C,CAAD,EAAIC,CAAJ,KAAUD,CAAC,CAAClB,MAAF,CAASmB,CAAT,CAA7C,EAA0D,EAA1D,CAAP;AACH;;ACVM,SAASC,IAAT,CAAclD,MAAd,EAAsBmD,UAAtB,EAAkC;AACrC,SAAOlD,MAAM,CAACC,IAAP,CAAYF,MAAZ,EACF2B,MADE,CACMyB,MAAD,IAAY,CAACD,UAAU,CAACtB,QAAX,CAAoBuB,MAApB,CADlB,EAEFjD,MAFE,CAEK,CAACY,GAAD,EAAMV,GAAN,KAAc;AACtBU,IAAAA,GAAG,CAACV,GAAD,CAAH,GAAWL,MAAM,CAACK,GAAD,CAAjB;AACA,WAAOU,GAAP;AACH,GALM,EAKJ,EALI,CAAP;AAMH;;ACPD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA,SAASsC,cAAT,CAAwBC,GAAxB,EAA6B;AACzB,SAAOA,GAAG,CACLjC,KADE,CACI,oBADJ,EAEFU,GAFE,CAEE,UAAUwB,IAAV,EAAgB;AACrB,QAAI,CAAC,eAAenB,IAAf,CAAoBmB,IAApB,CAAL,EAAgC;AAC5BA,MAAAA,IAAI,GAAGC,SAAS,CAACD,IAAD,CAAT,CAAgBvB,OAAhB,CAAwB,MAAxB,EAAgC,GAAhC,EAAqCA,OAArC,CAA6C,MAA7C,EAAqD,GAArD,CAAP;AACH;;AACD,WAAOuB,IAAP;AACH,GAPM,EAQFd,IARE,CAQG,EARH,CAAP;AASH;;AACD,SAASgB,gBAAT,CAA0BH,GAA1B,EAA+B;AAC3B,SAAOd,kBAAkB,CAACc,GAAD,CAAlB,CAAwBtB,OAAxB,CAAgC,UAAhC,EAA4C,UAAU0B,CAAV,EAAa;AAC5D,WAAO,MAAMA,CAAC,CAACC,UAAF,CAAa,CAAb,EAAgBC,QAAhB,CAAyB,EAAzB,EAA6BC,WAA7B,EAAb;AACH,GAFM,CAAP;AAGH;;AACD,SAASC,WAAT,CAAqBC,QAArB,EAA+BC,KAA/B,EAAsC3D,GAAtC,EAA2C;AACvC2D,EAAAA,KAAK,GACDD,QAAQ,KAAK,GAAb,IAAoBA,QAAQ,KAAK,GAAjC,GACMV,cAAc,CAACW,KAAD,CADpB,GAEMP,gBAAgB,CAACO,KAAD,CAH1B;;AAIA,MAAI3D,GAAJ,EAAS;AACL,WAAOoD,gBAAgB,CAACpD,GAAD,CAAhB,GAAwB,GAAxB,GAA8B2D,KAArC;AACH,GAFD,MAGK;AACD,WAAOA,KAAP;AACH;AACJ;;AACD,SAASC,SAAT,CAAmBD,KAAnB,EAA0B;AACtB,SAAOA,KAAK,KAAKhD,SAAV,IAAuBgD,KAAK,KAAK,IAAxC;AACH;;AACD,SAASE,aAAT,CAAuBH,QAAvB,EAAiC;AAC7B,SAAOA,QAAQ,KAAK,GAAb,IAAoBA,QAAQ,KAAK,GAAjC,IAAwCA,QAAQ,KAAK,GAA5D;AACH;;AACD,SAASI,SAAT,CAAmBC,OAAnB,EAA4BL,QAA5B,EAAsC1D,GAAtC,EAA2CgE,QAA3C,EAAqD;AACjD,MAAIL,KAAK,GAAGI,OAAO,CAAC/D,GAAD,CAAnB;AAAA,MAA0BK,MAAM,GAAG,EAAnC;;AACA,MAAIuD,SAAS,CAACD,KAAD,CAAT,IAAoBA,KAAK,KAAK,EAAlC,EAAsC;AAClC,QAAI,OAAOA,KAAP,KAAiB,QAAjB,IACA,OAAOA,KAAP,KAAiB,QADjB,IAEA,OAAOA,KAAP,KAAiB,SAFrB,EAEgC;AAC5BA,MAAAA,KAAK,GAAGA,KAAK,CAACJ,QAAN,EAAR;;AACA,UAAIS,QAAQ,IAAIA,QAAQ,KAAK,GAA7B,EAAkC;AAC9BL,QAAAA,KAAK,GAAGA,KAAK,CAACM,SAAN,CAAgB,CAAhB,EAAmBC,QAAQ,CAACF,QAAD,EAAW,EAAX,CAA3B,CAAR;AACH;;AACD3D,MAAAA,MAAM,CAAC8D,IAAP,CAAYV,WAAW,CAACC,QAAD,EAAWC,KAAX,EAAkBE,aAAa,CAACH,QAAD,CAAb,GAA0B1D,GAA1B,GAAgC,EAAlD,CAAvB;AACH,KARD,MASK;AACD,UAAIgE,QAAQ,KAAK,GAAjB,EAAsB;AAClB,YAAII,KAAK,CAACC,OAAN,CAAcV,KAAd,CAAJ,EAA0B;AACtBA,UAAAA,KAAK,CAACrC,MAAN,CAAasC,SAAb,EAAwBrD,OAAxB,CAAgC,UAAUoD,KAAV,EAAiB;AAC7CtD,YAAAA,MAAM,CAAC8D,IAAP,CAAYV,WAAW,CAACC,QAAD,EAAWC,KAAX,EAAkBE,aAAa,CAACH,QAAD,CAAb,GAA0B1D,GAA1B,GAAgC,EAAlD,CAAvB;AACH,WAFD;AAGH,SAJD,MAKK;AACDJ,UAAAA,MAAM,CAACC,IAAP,CAAY8D,KAAZ,EAAmBpD,OAAnB,CAA2B,UAAU+D,CAAV,EAAa;AACpC,gBAAIV,SAAS,CAACD,KAAK,CAACW,CAAD,CAAN,CAAb,EAAyB;AACrBjE,cAAAA,MAAM,CAAC8D,IAAP,CAAYV,WAAW,CAACC,QAAD,EAAWC,KAAK,CAACW,CAAD,CAAhB,EAAqBA,CAArB,CAAvB;AACH;AACJ,WAJD;AAKH;AACJ,OAbD,MAcK;AACD,cAAMC,GAAG,GAAG,EAAZ;;AACA,YAAIH,KAAK,CAACC,OAAN,CAAcV,KAAd,CAAJ,EAA0B;AACtBA,UAAAA,KAAK,CAACrC,MAAN,CAAasC,SAAb,EAAwBrD,OAAxB,CAAgC,UAAUoD,KAAV,EAAiB;AAC7CY,YAAAA,GAAG,CAACJ,IAAJ,CAASV,WAAW,CAACC,QAAD,EAAWC,KAAX,CAApB;AACH,WAFD;AAGH,SAJD,MAKK;AACD/D,UAAAA,MAAM,CAACC,IAAP,CAAY8D,KAAZ,EAAmBpD,OAAnB,CAA2B,UAAU+D,CAAV,EAAa;AACpC,gBAAIV,SAAS,CAACD,KAAK,CAACW,CAAD,CAAN,CAAb,EAAyB;AACrBC,cAAAA,GAAG,CAACJ,IAAJ,CAASf,gBAAgB,CAACkB,CAAD,CAAzB;AACAC,cAAAA,GAAG,CAACJ,IAAJ,CAASV,WAAW,CAACC,QAAD,EAAWC,KAAK,CAACW,CAAD,CAAL,CAASf,QAAT,EAAX,CAApB;AACH;AACJ,WALD;AAMH;;AACD,YAAIM,aAAa,CAACH,QAAD,CAAjB,EAA6B;AACzBrD,UAAAA,MAAM,CAAC8D,IAAP,CAAYf,gBAAgB,CAACpD,GAAD,CAAhB,GAAwB,GAAxB,GAA8BuE,GAAG,CAACnC,IAAJ,CAAS,GAAT,CAA1C;AACH,SAFD,MAGK,IAAImC,GAAG,CAAClD,MAAJ,KAAe,CAAnB,EAAsB;AACvBhB,UAAAA,MAAM,CAAC8D,IAAP,CAAYI,GAAG,CAACnC,IAAJ,CAAS,GAAT,CAAZ;AACH;AACJ;AACJ;AACJ,GAhDD,MAiDK;AACD,QAAIsB,QAAQ,KAAK,GAAjB,EAAsB;AAClB,UAAIE,SAAS,CAACD,KAAD,CAAb,EAAsB;AAClBtD,QAAAA,MAAM,CAAC8D,IAAP,CAAYf,gBAAgB,CAACpD,GAAD,CAA5B;AACH;AACJ,KAJD,MAKK,IAAI2D,KAAK,KAAK,EAAV,KAAiBD,QAAQ,KAAK,GAAb,IAAoBA,QAAQ,KAAK,GAAlD,CAAJ,EAA4D;AAC7DrD,MAAAA,MAAM,CAAC8D,IAAP,CAAYf,gBAAgB,CAACpD,GAAD,CAAhB,GAAwB,GAApC;AACH,KAFI,MAGA,IAAI2D,KAAK,KAAK,EAAd,EAAkB;AACnBtD,MAAAA,MAAM,CAAC8D,IAAP,CAAY,EAAZ;AACH;AACJ;;AACD,SAAO9D,MAAP;AACH;;AACD,AAAO,SAASmE,QAAT,CAAkBC,QAAlB,EAA4B;AAC/B,SAAO;AACHC,IAAAA,MAAM,EAAEA,MAAM,CAACC,IAAP,CAAY,IAAZ,EAAkBF,QAAlB;AADL,GAAP;AAGH;;AACD,SAASC,MAAT,CAAgBD,QAAhB,EAA0BV,OAA1B,EAAmC;AAC/B,MAAIa,SAAS,GAAG,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,CAAhB;AACA,SAAOH,QAAQ,CAAC9C,OAAT,CAAiB,4BAAjB,EAA+C,UAAUkD,CAAV,EAAaC,UAAb,EAAyBC,OAAzB,EAAkC;AACpF,QAAID,UAAJ,EAAgB;AACZ,UAAIpB,QAAQ,GAAG,EAAf;AACA,YAAMsB,MAAM,GAAG,EAAf;;AACA,UAAIJ,SAAS,CAACK,OAAV,CAAkBH,UAAU,CAACI,MAAX,CAAkB,CAAlB,CAAlB,MAA4C,CAAC,CAAjD,EAAoD;AAChDxB,QAAAA,QAAQ,GAAGoB,UAAU,CAACI,MAAX,CAAkB,CAAlB,CAAX;AACAJ,QAAAA,UAAU,GAAGA,UAAU,CAACK,MAAX,CAAkB,CAAlB,CAAb;AACH;;AACDL,MAAAA,UAAU,CAAC9D,KAAX,CAAiB,IAAjB,EAAuBT,OAAvB,CAA+B,UAAU6E,QAAV,EAAoB;AAC/C,YAAIb,GAAG,GAAG,4BAA4Bc,IAA5B,CAAiCD,QAAjC,CAAV;AACAJ,QAAAA,MAAM,CAACb,IAAP,CAAYL,SAAS,CAACC,OAAD,EAAUL,QAAV,EAAoBa,GAAG,CAAC,CAAD,CAAvB,EAA4BA,GAAG,CAAC,CAAD,CAAH,IAAUA,GAAG,CAAC,CAAD,CAAzC,CAArB;AACH,OAHD;;AAIA,UAAIb,QAAQ,IAAIA,QAAQ,KAAK,GAA7B,EAAkC;AAC9B,YAAI5B,SAAS,GAAG,GAAhB;;AACA,YAAI4B,QAAQ,KAAK,GAAjB,EAAsB;AAClB5B,UAAAA,SAAS,GAAG,GAAZ;AACH,SAFD,MAGK,IAAI4B,QAAQ,KAAK,GAAjB,EAAsB;AACvB5B,UAAAA,SAAS,GAAG4B,QAAZ;AACH;;AACD,eAAO,CAACsB,MAAM,CAAC3D,MAAP,KAAkB,CAAlB,GAAsBqC,QAAtB,GAAiC,EAAlC,IAAwCsB,MAAM,CAAC5C,IAAP,CAAYN,SAAZ,CAA/C;AACH,OATD,MAUK;AACD,eAAOkD,MAAM,CAAC5C,IAAP,CAAY,GAAZ,CAAP;AACH;AACJ,KAxBD,MAyBK;AACD,aAAOY,cAAc,CAAC+B,OAAD,CAArB;AACH;AACJ,GA7BM,CAAP;AA8BH;;AC/JM,SAASO,KAAT,CAAelF,OAAf,EAAwB;AAC3B;AACA,MAAIU,MAAM,GAAGV,OAAO,CAACU,MAAR,CAAe0C,WAAf,EAAb,CAF2B;;AAI3B,MAAIzC,GAAG,GAAG,CAACX,OAAO,CAACW,GAAR,IAAe,GAAhB,EAAqBY,OAArB,CAA6B,cAA7B,EAA6C,MAA7C,CAAV;AACA,MAAIV,OAAO,GAAGrB,MAAM,CAACU,MAAP,CAAc,EAAd,EAAkBF,OAAO,CAACa,OAA1B,CAAd;AACA,MAAIsE,IAAJ;AACA,MAAI1D,UAAU,GAAGgB,IAAI,CAACzC,OAAD,EAAU,CAC3B,QAD2B,EAE3B,SAF2B,EAG3B,KAH2B,EAI3B,SAJ2B,EAK3B,SAL2B,EAM3B,WAN2B,CAAV,CAArB,CAP2B;;AAgB3B,QAAMoF,gBAAgB,GAAGhD,uBAAuB,CAACzB,GAAD,CAAhD;AACAA,EAAAA,GAAG,GAAGyD,QAAQ,CAACzD,GAAD,CAAR,CAAc2D,MAAd,CAAqB7C,UAArB,CAAN;;AACA,MAAI,CAAC,QAAQE,IAAR,CAAahB,GAAb,CAAL,EAAwB;AACpBA,IAAAA,GAAG,GAAGX,OAAO,CAACqF,OAAR,GAAkB1E,GAAxB;AACH;;AACD,QAAM2E,iBAAiB,GAAG9F,MAAM,CAACC,IAAP,CAAYO,OAAZ,EACrBkB,MADqB,CACbyB,MAAD,IAAYyC,gBAAgB,CAAChE,QAAjB,CAA0BuB,MAA1B,CADE,EAErBtB,MAFqB,CAEd,SAFc,CAA1B;AAGA,QAAMkE,mBAAmB,GAAG9C,IAAI,CAAChB,UAAD,EAAa6D,iBAAb,CAAhC;AACA,QAAME,eAAe,GAAG,6BAA6B7D,IAA7B,CAAkCd,OAAO,CAAC4E,MAA1C,CAAxB;;AACA,MAAI,CAACD,eAAL,EAAsB;AAClB,QAAIxF,OAAO,CAACe,SAAR,CAAkB2E,MAAtB,EAA8B;AAC1B;AACA7E,MAAAA,OAAO,CAAC4E,MAAR,GAAiB5E,OAAO,CAAC4E,MAAR,CACZ7E,KADY,CACN,GADM,EAEZU,GAFY,CAEPH,OAAD,IAAaA,OAAO,CAACI,OAAR,CAAgB,kDAAhB,EAAqE,uBAAsBvB,OAAO,CAACe,SAAR,CAAkB2E,MAAO,EAApH,CAFL,EAGZ1D,IAHY,CAGP,GAHO,CAAjB;AAIH;;AACD,QAAIhC,OAAO,CAACe,SAAR,CAAkBC,QAAlB,CAA2BC,MAA/B,EAAuC;AACnC,YAAM0E,wBAAwB,GAAG9E,OAAO,CAAC4E,MAAR,CAAenD,KAAf,CAAqB,qBAArB,KAA+C,EAAhF;AACAzB,MAAAA,OAAO,CAAC4E,MAAR,GAAiBE,wBAAwB,CACpCtE,MADY,CACLrB,OAAO,CAACe,SAAR,CAAkBC,QADb,EAEZM,GAFY,CAEPH,OAAD,IAAa;AAClB,cAAMuE,MAAM,GAAG1F,OAAO,CAACe,SAAR,CAAkB2E,MAAlB,GACR,IAAG1F,OAAO,CAACe,SAAR,CAAkB2E,MAAO,EADpB,GAET,OAFN;AAGA,eAAQ,0BAAyBvE,OAAQ,WAAUuE,MAAO,EAA1D;AACH,OAPgB,EAQZ1D,IARY,CAQP,GARO,CAAjB;AASH;AACJ,GA9C0B;AAgD3B;;;AACA,MAAI,CAAC,KAAD,EAAQ,MAAR,EAAgBZ,QAAhB,CAAyBV,MAAzB,CAAJ,EAAsC;AAClCC,IAAAA,GAAG,GAAGa,kBAAkB,CAACb,GAAD,EAAM4E,mBAAN,CAAxB;AACH,GAFD,MAGK;AACD,QAAI,UAAUA,mBAAd,EAAmC;AAC/BJ,MAAAA,IAAI,GAAGI,mBAAmB,CAACK,IAA3B;AACH,KAFD,MAGK;AACD,UAAIpG,MAAM,CAACC,IAAP,CAAY8F,mBAAZ,EAAiCtE,MAArC,EAA6C;AACzCkE,QAAAA,IAAI,GAAGI,mBAAP;AACH,OAFD,MAGK;AACD1E,QAAAA,OAAO,CAAC,gBAAD,CAAP,GAA4B,CAA5B;AACH;AACJ;AACJ,GAhE0B;;;AAkE3B,MAAI,CAACA,OAAO,CAAC,cAAD,CAAR,IAA4B,OAAOsE,IAAP,KAAgB,WAAhD,EAA6D;AACzDtE,IAAAA,OAAO,CAAC,cAAD,CAAP,GAA0B,iCAA1B;AACH,GApE0B;AAsE3B;;;AACA,MAAI,CAAC,OAAD,EAAU,KAAV,EAAiBO,QAAjB,CAA0BV,MAA1B,KAAqC,OAAOyE,IAAP,KAAgB,WAAzD,EAAsE;AAClEA,IAAAA,IAAI,GAAG,EAAP;AACH,GAzE0B;;;AA2E3B,SAAO3F,MAAM,CAACU,MAAP,CAAc;AAAEQ,IAAAA,MAAF;AAAUC,IAAAA,GAAV;AAAeE,IAAAA;AAAf,GAAd,EAAwC,OAAOsE,IAAP,KAAgB,WAAhB,GAA8B;AAAEA,IAAAA;AAAF,GAA9B,GAAyC,IAAjF,EAAuFnF,OAAO,CAAC6F,OAAR,GAAkB;AAAEA,IAAAA,OAAO,EAAE7F,OAAO,CAAC6F;AAAnB,GAAlB,GAAiD,IAAxI,CAAP;AACH;;AC9EM,SAASC,oBAAT,CAA8B/F,QAA9B,EAAwCU,KAAxC,EAA+CT,OAA/C,EAAwD;AAC3D,SAAOkF,KAAK,CAAC1E,KAAK,CAACT,QAAD,EAAWU,KAAX,EAAkBT,OAAlB,CAAN,CAAZ;AACH;;ACDM,SAAS+F,YAAT,CAAsBC,WAAtB,EAAmCC,WAAnC,EAAgD;AACnD,QAAMC,QAAQ,GAAG1F,KAAK,CAACwF,WAAD,EAAcC,WAAd,CAAtB;AACA,QAAME,QAAQ,GAAGL,oBAAoB,CAACvB,IAArB,CAA0B,IAA1B,EAAgC2B,QAAhC,CAAjB;AACA,SAAO1G,MAAM,CAACU,MAAP,CAAciG,QAAd,EAAwB;AAC3BD,IAAAA,QAD2B;AAE3BnG,IAAAA,QAAQ,EAAEgG,YAAY,CAACxB,IAAb,CAAkB,IAAlB,EAAwB2B,QAAxB,CAFiB;AAG3B1F,IAAAA,KAAK,EAAEA,KAAK,CAAC+D,IAAN,CAAW,IAAX,EAAiB2B,QAAjB,CAHoB;AAI3BhB,IAAAA;AAJ2B,GAAxB,CAAP;AAMH;;ACZM,MAAMkB,OAAO,GAAG,mBAAhB;;ACEP,MAAMC,SAAS,GAAI,uBAAsBD,OAAQ,IAAGE,+BAAY,EAAG,EAAnE;AAEA;;AACA,AAAO,MAAMJ,QAAQ,GAAG;AACpBxF,EAAAA,MAAM,EAAE,KADY;AAEpB2E,EAAAA,OAAO,EAAE,wBAFW;AAGpBxE,EAAAA,OAAO,EAAE;AACL4E,IAAAA,MAAM,EAAE,gCADH;AAEL,kBAAcY;AAFT,GAHW;AAOpBtF,EAAAA,SAAS,EAAE;AACP2E,IAAAA,MAAM,EAAE,EADD;AAEP1E,IAAAA,QAAQ,EAAE;AAFH;AAPS,CAAjB;;MCHMmF,QAAQ,GAAGJ,YAAY,CAAC,IAAD,EAAOG,QAAP,CAA7B;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/endpoint/dist-src/defaults.js b/Client/node_modules/@octokit/endpoint/dist-src/defaults.js new file mode 100644 index 000000000..456e586ad --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-src/defaults.js @@ -0,0 +1,17 @@ +import { getUserAgent } from "universal-user-agent"; +import { VERSION } from "./version"; +const userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`; +// DEFAULTS has all properties set that EndpointOptions has, except url. +// So we use RequestParameters and add method as additional required property. +export const DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent, + }, + mediaType: { + format: "", + previews: [], + }, +}; diff --git a/Client/node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js b/Client/node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js new file mode 100644 index 000000000..5763758fa --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js @@ -0,0 +1,5 @@ +import { merge } from "./merge"; +import { parse } from "./parse"; +export function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} diff --git a/Client/node_modules/@octokit/endpoint/dist-src/index.js b/Client/node_modules/@octokit/endpoint/dist-src/index.js new file mode 100644 index 000000000..599917f98 --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-src/index.js @@ -0,0 +1,3 @@ +import { withDefaults } from "./with-defaults"; +import { DEFAULTS } from "./defaults"; +export const endpoint = withDefaults(null, DEFAULTS); diff --git a/Client/node_modules/@octokit/endpoint/dist-src/merge.js b/Client/node_modules/@octokit/endpoint/dist-src/merge.js new file mode 100644 index 000000000..1abcecfa7 --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-src/merge.js @@ -0,0 +1,26 @@ +import { lowercaseKeys } from "./util/lowercase-keys"; +import { mergeDeep } from "./util/merge-deep"; +import { removeUndefinedProperties } from "./util/remove-undefined-properties"; +export function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { method, url } : { url: method }, options); + } + else { + options = Object.assign({}, route); + } + // lowercase header names before merging with defaults to avoid duplicates + options.headers = lowercaseKeys(options.headers); + // remove properties with undefined values before merging + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); + // mediaType.previews arrays are merged, instead of overwritten + if (defaults && defaults.mediaType.previews.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews + .filter((preview) => !mergedOptions.mediaType.previews.includes(preview)) + .concat(mergedOptions.mediaType.previews); + } + mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map((preview) => preview.replace(/-preview/, "")); + return mergedOptions; +} diff --git a/Client/node_modules/@octokit/endpoint/dist-src/parse.js b/Client/node_modules/@octokit/endpoint/dist-src/parse.js new file mode 100644 index 000000000..6bdd1bfa7 --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-src/parse.js @@ -0,0 +1,81 @@ +import { addQueryParameters } from "./util/add-query-parameters"; +import { extractUrlVariableNames } from "./util/extract-url-variable-names"; +import { omit } from "./util/omit"; +import { parseUrl } from "./util/url-template"; +export function parse(options) { + // https://fetch.spec.whatwg.org/#methods + let method = options.method.toUpperCase(); + // replace :varname with {varname} to make it RFC 6570 compatible + let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); + let headers = Object.assign({}, options.headers); + let body; + let parameters = omit(options, [ + "method", + "baseUrl", + "url", + "headers", + "request", + "mediaType", + ]); + // extract variable names from URL to calculate remaining variables later + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + if (!/^http/.test(url)) { + url = options.baseUrl + url; + } + const omittedParameters = Object.keys(options) + .filter((option) => urlVariableNames.includes(option)) + .concat("baseUrl"); + const remainingParameters = omit(parameters, omittedParameters); + const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); + if (!isBinaryRequest) { + if (options.mediaType.format) { + // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw + headers.accept = headers.accept + .split(/,/) + .map((preview) => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)) + .join(","); + } + if (options.mediaType.previews.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader + .concat(options.mediaType.previews) + .map((preview) => { + const format = options.mediaType.format + ? `.${options.mediaType.format}` + : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }) + .join(","); + } + } + // for GET/HEAD requests, set URL query parameters from remaining parameters + // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } + else { + if ("data" in remainingParameters) { + body = remainingParameters.data; + } + else { + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } + else { + headers["content-length"] = 0; + } + } + } + // default content-type for JSON if body is set + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } + // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. + // fetch does not allow to set `content-length` header, but we can set body to an empty string + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } + // Only return body/request keys if present + return Object.assign({ method, url, headers }, typeof body !== "undefined" ? { body } : null, options.request ? { request: options.request } : null); +} diff --git a/Client/node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js b/Client/node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js new file mode 100644 index 000000000..d26be314c --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js @@ -0,0 +1,17 @@ +export function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); + if (names.length === 0) { + return url; + } + return (url + + separator + + names + .map((name) => { + if (name === "q") { + return ("q=" + parameters.q.split("+").map(encodeURIComponent).join("+")); + } + return `${name}=${encodeURIComponent(parameters[name])}`; + }) + .join("&")); +} diff --git a/Client/node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js b/Client/node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js new file mode 100644 index 000000000..3e75db283 --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js @@ -0,0 +1,11 @@ +const urlVariableRegex = /\{[^}]+\}/g; +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); +} +export function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); + if (!matches) { + return []; + } + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); +} diff --git a/Client/node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js b/Client/node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js new file mode 100644 index 000000000..078064255 --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js @@ -0,0 +1,9 @@ +export function lowercaseKeys(object) { + if (!object) { + return {}; + } + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} diff --git a/Client/node_modules/@octokit/endpoint/dist-src/util/merge-deep.js b/Client/node_modules/@octokit/endpoint/dist-src/util/merge-deep.js new file mode 100644 index 000000000..d92aca35c --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-src/util/merge-deep.js @@ -0,0 +1,16 @@ +import { isPlainObject } from "is-plain-object"; +export function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach((key) => { + if (isPlainObject(options[key])) { + if (!(key in defaults)) + Object.assign(result, { [key]: options[key] }); + else + result[key] = mergeDeep(defaults[key], options[key]); + } + else { + Object.assign(result, { [key]: options[key] }); + } + }); + return result; +} diff --git a/Client/node_modules/@octokit/endpoint/dist-src/util/omit.js b/Client/node_modules/@octokit/endpoint/dist-src/util/omit.js new file mode 100644 index 000000000..62450310d --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-src/util/omit.js @@ -0,0 +1,8 @@ +export function omit(object, keysToOmit) { + return Object.keys(object) + .filter((option) => !keysToOmit.includes(option)) + .reduce((obj, key) => { + obj[key] = object[key]; + return obj; + }, {}); +} diff --git a/Client/node_modules/@octokit/endpoint/dist-src/util/remove-undefined-properties.js b/Client/node_modules/@octokit/endpoint/dist-src/util/remove-undefined-properties.js new file mode 100644 index 000000000..6b5ee5fbe --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-src/util/remove-undefined-properties.js @@ -0,0 +1,8 @@ +export function removeUndefinedProperties(obj) { + for (const key in obj) { + if (obj[key] === undefined) { + delete obj[key]; + } + } + return obj; +} diff --git a/Client/node_modules/@octokit/endpoint/dist-src/util/url-template.js b/Client/node_modules/@octokit/endpoint/dist-src/util/url-template.js new file mode 100644 index 000000000..439b3feec --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-src/util/url-template.js @@ -0,0 +1,164 @@ +// Based on https://github.com/bramstein/url-template, licensed under BSD +// TODO: create separate package. +// +// Copyright (c) 2012-2014, Bram Stein +// All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +/* istanbul ignore file */ +function encodeReserved(str) { + return str + .split(/(%[0-9A-Fa-f]{2})/g) + .map(function (part) { + if (!/%[0-9A-Fa-f]/.test(part)) { + part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); + } + return part; + }) + .join(""); +} +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + }); +} +function encodeValue(operator, value, key) { + value = + operator === "+" || operator === "#" + ? encodeReserved(value) + : encodeUnreserved(value); + if (key) { + return encodeUnreserved(key) + "=" + value; + } + else { + return value; + } +} +function isDefined(value) { + return value !== undefined && value !== null; +} +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; +} +function getValues(context, operator, key, modifier) { + var value = context[key], result = []; + if (isDefined(value) && value !== "") { + if (typeof value === "string" || + typeof value === "number" || + typeof value === "boolean") { + value = value.toString(); + if (modifier && modifier !== "*") { + value = value.substring(0, parseInt(modifier, 10)); + } + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + } + else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + }); + } + else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } + else { + const tmp = []; + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + tmp.push(encodeValue(operator, value)); + }); + } + else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + tmp.push(encodeUnreserved(k)); + tmp.push(encodeValue(operator, value[k].toString())); + } + }); + } + if (isKeyOperator(operator)) { + result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + } + else if (tmp.length !== 0) { + result.push(tmp.join(",")); + } + } + } + } + else { + if (operator === ";") { + if (isDefined(value)) { + result.push(encodeUnreserved(key)); + } + } + else if (value === "" && (operator === "&" || operator === "?")) { + result.push(encodeUnreserved(key) + "="); + } + else if (value === "") { + result.push(""); + } + } + return result; +} +export function parseUrl(template) { + return { + expand: expand.bind(null, template), + }; +} +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; + if (operators.indexOf(expression.charAt(0)) !== -1) { + operator = expression.charAt(0); + expression = expression.substr(1); + } + expression.split(/,/g).forEach(function (variable) { + var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); + values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); + }); + if (operator && operator !== "+") { + var separator = ","; + if (operator === "?") { + separator = "&"; + } + else if (operator !== "#") { + separator = operator; + } + return (values.length !== 0 ? operator : "") + values.join(separator); + } + else { + return values.join(","); + } + } + else { + return encodeReserved(literal); + } + }); +} diff --git a/Client/node_modules/@octokit/endpoint/dist-src/version.js b/Client/node_modules/@octokit/endpoint/dist-src/version.js new file mode 100644 index 000000000..37535774f --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-src/version.js @@ -0,0 +1 @@ +export const VERSION = "6.0.10"; diff --git a/Client/node_modules/@octokit/endpoint/dist-src/with-defaults.js b/Client/node_modules/@octokit/endpoint/dist-src/with-defaults.js new file mode 100644 index 000000000..81baf6cfb --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-src/with-defaults.js @@ -0,0 +1,13 @@ +import { endpointWithDefaults } from "./endpoint-with-defaults"; +import { merge } from "./merge"; +import { parse } from "./parse"; +export function withDefaults(oldDefaults, newDefaults) { + const DEFAULTS = merge(oldDefaults, newDefaults); + const endpoint = endpointWithDefaults.bind(null, DEFAULTS); + return Object.assign(endpoint, { + DEFAULTS, + defaults: withDefaults.bind(null, DEFAULTS), + merge: merge.bind(null, DEFAULTS), + parse, + }); +} diff --git a/Client/node_modules/@octokit/endpoint/dist-types/defaults.d.ts b/Client/node_modules/@octokit/endpoint/dist-types/defaults.d.ts new file mode 100644 index 000000000..30fcd2030 --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-types/defaults.d.ts @@ -0,0 +1,2 @@ +import { EndpointDefaults } from "@octokit/types"; +export declare const DEFAULTS: EndpointDefaults; diff --git a/Client/node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts b/Client/node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts new file mode 100644 index 000000000..ff39e5e72 --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts @@ -0,0 +1,3 @@ +import { EndpointOptions, RequestParameters, Route } from "@octokit/types"; +import { DEFAULTS } from "./defaults"; +export declare function endpointWithDefaults(defaults: typeof DEFAULTS, route: Route | EndpointOptions, options?: RequestParameters): import("@octokit/types").RequestOptions; diff --git a/Client/node_modules/@octokit/endpoint/dist-types/index.d.ts b/Client/node_modules/@octokit/endpoint/dist-types/index.d.ts new file mode 100644 index 000000000..1ede13667 --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-types/index.d.ts @@ -0,0 +1 @@ +export declare const endpoint: import("@octokit/types").EndpointInterface; diff --git a/Client/node_modules/@octokit/endpoint/dist-types/merge.d.ts b/Client/node_modules/@octokit/endpoint/dist-types/merge.d.ts new file mode 100644 index 000000000..b75a15ec7 --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-types/merge.d.ts @@ -0,0 +1,2 @@ +import { EndpointDefaults, RequestParameters, Route } from "@octokit/types"; +export declare function merge(defaults: EndpointDefaults | null, route?: Route | RequestParameters, options?: RequestParameters): EndpointDefaults; diff --git a/Client/node_modules/@octokit/endpoint/dist-types/parse.d.ts b/Client/node_modules/@octokit/endpoint/dist-types/parse.d.ts new file mode 100644 index 000000000..fbe214406 --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-types/parse.d.ts @@ -0,0 +1,2 @@ +import { EndpointDefaults, RequestOptions } from "@octokit/types"; +export declare function parse(options: EndpointDefaults): RequestOptions; diff --git a/Client/node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts b/Client/node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts new file mode 100644 index 000000000..4b192ac41 --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts @@ -0,0 +1,4 @@ +export declare function addQueryParameters(url: string, parameters: { + [x: string]: string | undefined; + q?: string; +}): string; diff --git a/Client/node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts b/Client/node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts new file mode 100644 index 000000000..93586d4db --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts @@ -0,0 +1 @@ +export declare function extractUrlVariableNames(url: string): string[]; diff --git a/Client/node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts b/Client/node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts new file mode 100644 index 000000000..1daf30736 --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts @@ -0,0 +1,5 @@ +export declare function lowercaseKeys(object?: { + [key: string]: any; +}): { + [key: string]: any; +}; diff --git a/Client/node_modules/@octokit/endpoint/dist-types/util/merge-deep.d.ts b/Client/node_modules/@octokit/endpoint/dist-types/util/merge-deep.d.ts new file mode 100644 index 000000000..914411cf9 --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-types/util/merge-deep.d.ts @@ -0,0 +1 @@ +export declare function mergeDeep(defaults: any, options: any): object; diff --git a/Client/node_modules/@octokit/endpoint/dist-types/util/omit.d.ts b/Client/node_modules/@octokit/endpoint/dist-types/util/omit.d.ts new file mode 100644 index 000000000..06927d6bd --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-types/util/omit.d.ts @@ -0,0 +1,5 @@ +export declare function omit(object: { + [key: string]: any; +}, keysToOmit: string[]): { + [key: string]: any; +}; diff --git a/Client/node_modules/@octokit/endpoint/dist-types/util/remove-undefined-properties.d.ts b/Client/node_modules/@octokit/endpoint/dist-types/util/remove-undefined-properties.d.ts new file mode 100644 index 000000000..92d8d8505 --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-types/util/remove-undefined-properties.d.ts @@ -0,0 +1 @@ +export declare function removeUndefinedProperties(obj: any): any; diff --git a/Client/node_modules/@octokit/endpoint/dist-types/util/url-template.d.ts b/Client/node_modules/@octokit/endpoint/dist-types/util/url-template.d.ts new file mode 100644 index 000000000..5d967cab3 --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-types/util/url-template.d.ts @@ -0,0 +1,3 @@ +export declare function parseUrl(template: string): { + expand: (context: object) => string; +}; diff --git a/Client/node_modules/@octokit/endpoint/dist-types/version.d.ts b/Client/node_modules/@octokit/endpoint/dist-types/version.d.ts new file mode 100644 index 000000000..633050ce8 --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "6.0.10"; diff --git a/Client/node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts b/Client/node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts new file mode 100644 index 000000000..6f5afd1e0 --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts @@ -0,0 +1,2 @@ +import { EndpointInterface, RequestParameters, EndpointDefaults } from "@octokit/types"; +export declare function withDefaults(oldDefaults: EndpointDefaults | null, newDefaults: RequestParameters): EndpointInterface; diff --git a/Client/node_modules/@octokit/endpoint/dist-web/index.js b/Client/node_modules/@octokit/endpoint/dist-web/index.js new file mode 100644 index 000000000..4377ef431 --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-web/index.js @@ -0,0 +1,381 @@ +import { isPlainObject } from 'is-plain-object'; +import { getUserAgent } from 'universal-user-agent'; + +function lowercaseKeys(object) { + if (!object) { + return {}; + } + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} + +function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach((key) => { + if (isPlainObject(options[key])) { + if (!(key in defaults)) + Object.assign(result, { [key]: options[key] }); + else + result[key] = mergeDeep(defaults[key], options[key]); + } + else { + Object.assign(result, { [key]: options[key] }); + } + }); + return result; +} + +function removeUndefinedProperties(obj) { + for (const key in obj) { + if (obj[key] === undefined) { + delete obj[key]; + } + } + return obj; +} + +function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { method, url } : { url: method }, options); + } + else { + options = Object.assign({}, route); + } + // lowercase header names before merging with defaults to avoid duplicates + options.headers = lowercaseKeys(options.headers); + // remove properties with undefined values before merging + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); + // mediaType.previews arrays are merged, instead of overwritten + if (defaults && defaults.mediaType.previews.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews + .filter((preview) => !mergedOptions.mediaType.previews.includes(preview)) + .concat(mergedOptions.mediaType.previews); + } + mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map((preview) => preview.replace(/-preview/, "")); + return mergedOptions; +} + +function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); + if (names.length === 0) { + return url; + } + return (url + + separator + + names + .map((name) => { + if (name === "q") { + return ("q=" + parameters.q.split("+").map(encodeURIComponent).join("+")); + } + return `${name}=${encodeURIComponent(parameters[name])}`; + }) + .join("&")); +} + +const urlVariableRegex = /\{[^}]+\}/g; +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); +} +function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); + if (!matches) { + return []; + } + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); +} + +function omit(object, keysToOmit) { + return Object.keys(object) + .filter((option) => !keysToOmit.includes(option)) + .reduce((obj, key) => { + obj[key] = object[key]; + return obj; + }, {}); +} + +// Based on https://github.com/bramstein/url-template, licensed under BSD +// TODO: create separate package. +// +// Copyright (c) 2012-2014, Bram Stein +// All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +/* istanbul ignore file */ +function encodeReserved(str) { + return str + .split(/(%[0-9A-Fa-f]{2})/g) + .map(function (part) { + if (!/%[0-9A-Fa-f]/.test(part)) { + part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); + } + return part; + }) + .join(""); +} +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + }); +} +function encodeValue(operator, value, key) { + value = + operator === "+" || operator === "#" + ? encodeReserved(value) + : encodeUnreserved(value); + if (key) { + return encodeUnreserved(key) + "=" + value; + } + else { + return value; + } +} +function isDefined(value) { + return value !== undefined && value !== null; +} +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; +} +function getValues(context, operator, key, modifier) { + var value = context[key], result = []; + if (isDefined(value) && value !== "") { + if (typeof value === "string" || + typeof value === "number" || + typeof value === "boolean") { + value = value.toString(); + if (modifier && modifier !== "*") { + value = value.substring(0, parseInt(modifier, 10)); + } + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + } + else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + }); + } + else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } + else { + const tmp = []; + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + tmp.push(encodeValue(operator, value)); + }); + } + else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + tmp.push(encodeUnreserved(k)); + tmp.push(encodeValue(operator, value[k].toString())); + } + }); + } + if (isKeyOperator(operator)) { + result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + } + else if (tmp.length !== 0) { + result.push(tmp.join(",")); + } + } + } + } + else { + if (operator === ";") { + if (isDefined(value)) { + result.push(encodeUnreserved(key)); + } + } + else if (value === "" && (operator === "&" || operator === "?")) { + result.push(encodeUnreserved(key) + "="); + } + else if (value === "") { + result.push(""); + } + } + return result; +} +function parseUrl(template) { + return { + expand: expand.bind(null, template), + }; +} +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; + if (operators.indexOf(expression.charAt(0)) !== -1) { + operator = expression.charAt(0); + expression = expression.substr(1); + } + expression.split(/,/g).forEach(function (variable) { + var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); + values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); + }); + if (operator && operator !== "+") { + var separator = ","; + if (operator === "?") { + separator = "&"; + } + else if (operator !== "#") { + separator = operator; + } + return (values.length !== 0 ? operator : "") + values.join(separator); + } + else { + return values.join(","); + } + } + else { + return encodeReserved(literal); + } + }); +} + +function parse(options) { + // https://fetch.spec.whatwg.org/#methods + let method = options.method.toUpperCase(); + // replace :varname with {varname} to make it RFC 6570 compatible + let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); + let headers = Object.assign({}, options.headers); + let body; + let parameters = omit(options, [ + "method", + "baseUrl", + "url", + "headers", + "request", + "mediaType", + ]); + // extract variable names from URL to calculate remaining variables later + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + if (!/^http/.test(url)) { + url = options.baseUrl + url; + } + const omittedParameters = Object.keys(options) + .filter((option) => urlVariableNames.includes(option)) + .concat("baseUrl"); + const remainingParameters = omit(parameters, omittedParameters); + const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); + if (!isBinaryRequest) { + if (options.mediaType.format) { + // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw + headers.accept = headers.accept + .split(/,/) + .map((preview) => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)) + .join(","); + } + if (options.mediaType.previews.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader + .concat(options.mediaType.previews) + .map((preview) => { + const format = options.mediaType.format + ? `.${options.mediaType.format}` + : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }) + .join(","); + } + } + // for GET/HEAD requests, set URL query parameters from remaining parameters + // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } + else { + if ("data" in remainingParameters) { + body = remainingParameters.data; + } + else { + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } + else { + headers["content-length"] = 0; + } + } + } + // default content-type for JSON if body is set + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } + // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. + // fetch does not allow to set `content-length` header, but we can set body to an empty string + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } + // Only return body/request keys if present + return Object.assign({ method, url, headers }, typeof body !== "undefined" ? { body } : null, options.request ? { request: options.request } : null); +} + +function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} + +function withDefaults(oldDefaults, newDefaults) { + const DEFAULTS = merge(oldDefaults, newDefaults); + const endpoint = endpointWithDefaults.bind(null, DEFAULTS); + return Object.assign(endpoint, { + DEFAULTS, + defaults: withDefaults.bind(null, DEFAULTS), + merge: merge.bind(null, DEFAULTS), + parse, + }); +} + +const VERSION = "6.0.10"; + +const userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`; +// DEFAULTS has all properties set that EndpointOptions has, except url. +// So we use RequestParameters and add method as additional required property. +const DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent, + }, + mediaType: { + format: "", + previews: [], + }, +}; + +const endpoint = withDefaults(null, DEFAULTS); + +export { endpoint }; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/endpoint/dist-web/index.js.map b/Client/node_modules/@octokit/endpoint/dist-web/index.js.map new file mode 100644 index 000000000..69cdbcf1e --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/util/lowercase-keys.js","../dist-src/util/merge-deep.js","../dist-src/util/remove-undefined-properties.js","../dist-src/merge.js","../dist-src/util/add-query-parameters.js","../dist-src/util/extract-url-variable-names.js","../dist-src/util/omit.js","../dist-src/util/url-template.js","../dist-src/parse.js","../dist-src/endpoint-with-defaults.js","../dist-src/with-defaults.js","../dist-src/version.js","../dist-src/defaults.js","../dist-src/index.js"],"sourcesContent":["export function lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n","import { isPlainObject } from \"is-plain-object\";\nexport function mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach((key) => {\n if (isPlainObject(options[key])) {\n if (!(key in defaults))\n Object.assign(result, { [key]: options[key] });\n else\n result[key] = mergeDeep(defaults[key], options[key]);\n }\n else {\n Object.assign(result, { [key]: options[key] });\n }\n });\n return result;\n}\n","export function removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n return obj;\n}\n","import { lowercaseKeys } from \"./util/lowercase-keys\";\nimport { mergeDeep } from \"./util/merge-deep\";\nimport { removeUndefinedProperties } from \"./util/remove-undefined-properties\";\nexport function merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? { method, url } : { url: method }, options);\n }\n else {\n options = Object.assign({}, route);\n }\n // lowercase header names before merging with defaults to avoid duplicates\n options.headers = lowercaseKeys(options.headers);\n // remove properties with undefined values before merging\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options);\n // mediaType.previews arrays are merged, instead of overwritten\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews\n .filter((preview) => !mergedOptions.mediaType.previews.includes(preview))\n .concat(mergedOptions.mediaType.previews);\n }\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map((preview) => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n","export function addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n if (names.length === 0) {\n return url;\n }\n return (url +\n separator +\n names\n .map((name) => {\n if (name === \"q\") {\n return (\"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\"));\n }\n return `${name}=${encodeURIComponent(parameters[name])}`;\n })\n .join(\"&\"));\n}\n","const urlVariableRegex = /\\{[^}]+\\}/g;\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\nexport function extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n if (!matches) {\n return [];\n }\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n","export function omit(object, keysToOmit) {\n return Object.keys(object)\n .filter((option) => !keysToOmit.includes(option))\n .reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n","// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str\n .split(/(%[0-9A-Fa-f]{2})/g)\n .map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n return part;\n })\n .join(\"\");\n}\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\nfunction encodeValue(operator, value, key) {\n value =\n operator === \"+\" || operator === \"#\"\n ? encodeReserved(value)\n : encodeUnreserved(value);\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n }\n else {\n return value;\n }\n}\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\nfunction getValues(context, operator, key, modifier) {\n var value = context[key], result = [];\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\") {\n value = value.toString();\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n }\n else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n }\n else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n }\n else {\n const tmp = [];\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n }\n else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n }\n else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n }\n else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n }\n else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n }\n else if (value === \"\") {\n result.push(\"\");\n }\n }\n return result;\n}\nexport function parseUrl(template) {\n return {\n expand: expand.bind(null, template),\n };\n}\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n if (operator && operator !== \"+\") {\n var separator = \",\";\n if (operator === \"?\") {\n separator = \"&\";\n }\n else if (operator !== \"#\") {\n separator = operator;\n }\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n }\n else {\n return values.join(\",\");\n }\n }\n else {\n return encodeReserved(literal);\n }\n });\n}\n","import { addQueryParameters } from \"./util/add-query-parameters\";\nimport { extractUrlVariableNames } from \"./util/extract-url-variable-names\";\nimport { omit } from \"./util/omit\";\nimport { parseUrl } from \"./util/url-template\";\nexport function parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase();\n // replace :varname with {varname} to make it RFC 6570 compatible\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"mediaType\",\n ]);\n // extract variable names from URL to calculate remaining variables later\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n const omittedParameters = Object.keys(options)\n .filter((option) => urlVariableNames.includes(option))\n .concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept\n .split(/,/)\n .map((preview) => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`))\n .join(\",\");\n }\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader\n .concat(options.mediaType.previews)\n .map((preview) => {\n const format = options.mediaType.format\n ? `.${options.mediaType.format}`\n : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n })\n .join(\",\");\n }\n }\n // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n }\n else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n }\n else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n }\n else {\n headers[\"content-length\"] = 0;\n }\n }\n }\n // default content-type for JSON if body is set\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n }\n // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n }\n // Only return body/request keys if present\n return Object.assign({ method, url, headers }, typeof body !== \"undefined\" ? { body } : null, options.request ? { request: options.request } : null);\n}\n","import { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nexport function endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n","import { endpointWithDefaults } from \"./endpoint-with-defaults\";\nimport { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nexport function withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse,\n });\n}\n","export const VERSION = \"6.0.10\";\n","import { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nconst userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;\n// DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\nexport const DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent,\n },\n mediaType: {\n format: \"\",\n previews: [],\n },\n};\n","import { withDefaults } from \"./with-defaults\";\nimport { DEFAULTS } from \"./defaults\";\nexport const endpoint = withDefaults(null, DEFAULTS);\n"],"names":[],"mappings":";;;AAAO,SAAS,aAAa,CAAC,MAAM,EAAE;AACtC,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK;AACL,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK;AACvD,QAAQ,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAChD,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX;;ACPO,SAAS,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE;AAC7C,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC/C,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAC1C,QAAQ,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;AACzC,YAAY,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC;AAClC,gBAAgB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC/D;AACA,gBAAgB,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACrE,SAAS;AACT,aAAa;AACb,YAAY,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC3D,SAAS;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC;;ACfM,SAAS,yBAAyB,CAAC,GAAG,EAAE;AAC/C,IAAI,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;AAC3B,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;AACpC,YAAY,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5B,SAAS;AACT,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;;ACJM,SAAS,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE;AAChD,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,QAAQ,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7C,QAAQ,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;AAClF,KAAK;AACL,SAAS;AACT,QAAQ,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC3C,KAAK;AACL;AACA,IAAI,OAAO,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACrD;AACA,IAAI,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACvC,IAAI,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/C,IAAI,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;AAC7D;AACA,IAAI,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE;AACxD,QAAQ,aAAa,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ;AACtE,aAAa,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACrF,aAAa,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACtD,KAAK;AACL,IAAI,aAAa,CAAC,SAAS,CAAC,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1H,IAAI,OAAO,aAAa,CAAC;AACzB,CAAC;;ACzBM,SAAS,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE;AACpD,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;AACjD,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1C,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,SAAS;AACjB,QAAQ,KAAK;AACb,aAAa,GAAG,CAAC,CAAC,IAAI,KAAK;AAC3B,YAAY,IAAI,IAAI,KAAK,GAAG,EAAE;AAC9B,gBAAgB,QAAQ,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAC1F,aAAa;AACb,YAAY,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,SAAS,CAAC;AACV,aAAa,IAAI,CAAC,GAAG,CAAC,EAAE;AACxB,CAAC;;AChBD,MAAM,gBAAgB,GAAG,YAAY,CAAC;AACtC,SAAS,cAAc,CAAC,YAAY,EAAE;AACtC,IAAI,OAAO,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7D,CAAC;AACD,AAAO,SAAS,uBAAuB,CAAC,GAAG,EAAE;AAC7C,IAAI,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAChD,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK;AACL,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACzE,CAAC;;ACVM,SAAS,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE;AACzC,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9B,SAAS,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACzD,SAAS,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC9B,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC/B,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,CAAC;;ACPD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,GAAG,EAAE;AAC7B,IAAI,OAAO,GAAG;AACd,SAAS,KAAK,CAAC,oBAAoB,CAAC;AACpC,SAAS,GAAG,CAAC,UAAU,IAAI,EAAE;AAC7B,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACxC,YAAY,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC7E,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN,SAAS,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AACD,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,IAAI,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE;AACpE,QAAQ,OAAO,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAChE,KAAK,CAAC,CAAC;AACP,CAAC;AACD,SAAS,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;AAC3C,IAAI,KAAK;AACT,QAAQ,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG;AAC5C,cAAc,cAAc,CAAC,KAAK,CAAC;AACnC,cAAc,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACtC,IAAI,IAAI,GAAG,EAAE;AACb,QAAQ,OAAO,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC;AACnD,KAAK;AACL,SAAS;AACT,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,CAAC;AACD,SAAS,SAAS,CAAC,KAAK,EAAE;AAC1B,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AACjD,CAAC;AACD,SAAS,aAAa,CAAC,QAAQ,EAAE;AACjC,IAAI,OAAO,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG,CAAC;AACpE,CAAC;AACD,SAAS,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE;AACrD,IAAI,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;AAC1C,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,EAAE;AAC1C,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;AACrC,YAAY,OAAO,KAAK,KAAK,QAAQ;AACrC,YAAY,OAAO,KAAK,KAAK,SAAS,EAAE;AACxC,YAAY,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AACrC,YAAY,IAAI,QAAQ,IAAI,QAAQ,KAAK,GAAG,EAAE;AAC9C,gBAAgB,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnE,aAAa;AACb,YAAY,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1F,SAAS;AACT,aAAa;AACb,YAAY,IAAI,QAAQ,KAAK,GAAG,EAAE;AAClC,gBAAgB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC1C,oBAAoB,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;AACrE,wBAAwB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AACtG,qBAAqB,CAAC,CAAC;AACvB,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC5D,wBAAwB,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACjD,4BAA4B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5E,yBAAyB;AACzB,qBAAqB,CAAC,CAAC;AACvB,iBAAiB;AACjB,aAAa;AACb,iBAAiB;AACjB,gBAAgB,MAAM,GAAG,GAAG,EAAE,CAAC;AAC/B,gBAAgB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC1C,oBAAoB,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;AACrE,wBAAwB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/D,qBAAqB,CAAC,CAAC;AACvB,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC5D,wBAAwB,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACjD,4BAA4B,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,4BAA4B,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AACjF,yBAAyB;AACzB,qBAAqB,CAAC,CAAC;AACvB,iBAAiB;AACjB,gBAAgB,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE;AAC7C,oBAAoB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7E,iBAAiB;AACjB,qBAAqB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3C,oBAAoB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;AACL,SAAS;AACT,QAAQ,IAAI,QAAQ,KAAK,GAAG,EAAE;AAC9B,YAAY,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;AAClC,gBAAgB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,aAAa;AACb,SAAS;AACT,aAAa,IAAI,KAAK,KAAK,EAAE,KAAK,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG,CAAC,EAAE;AACzE,YAAY,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACrD,SAAS;AACT,aAAa,IAAI,KAAK,KAAK,EAAE,EAAE;AAC/B,YAAY,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5B,SAAS;AACT,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC;AACD,AAAO,SAAS,QAAQ,CAAC,QAAQ,EAAE;AACnC,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC3C,KAAK,CAAC;AACN,CAAC;AACD,SAAS,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE;AACnC,IAAI,IAAI,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACxD,IAAI,OAAO,QAAQ,CAAC,OAAO,CAAC,4BAA4B,EAAE,UAAU,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE;AAC5F,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,IAAI,QAAQ,GAAG,EAAE,CAAC;AAC9B,YAAY,MAAM,MAAM,GAAG,EAAE,CAAC;AAC9B,YAAY,IAAI,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AAChE,gBAAgB,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAChD,gBAAgB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAClD,aAAa;AACb,YAAY,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE;AAC/D,gBAAgB,IAAI,GAAG,GAAG,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrE,gBAAgB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,QAAQ,IAAI,QAAQ,KAAK,GAAG,EAAE;AAC9C,gBAAgB,IAAI,SAAS,GAAG,GAAG,CAAC;AACpC,gBAAgB,IAAI,QAAQ,KAAK,GAAG,EAAE;AACtC,oBAAoB,SAAS,GAAG,GAAG,CAAC;AACpC,iBAAiB;AACjB,qBAAqB,IAAI,QAAQ,KAAK,GAAG,EAAE;AAC3C,oBAAoB,SAAS,GAAG,QAAQ,CAAC;AACzC,iBAAiB;AACjB,gBAAgB,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,GAAG,QAAQ,GAAG,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACtF,aAAa;AACb,iBAAiB;AACjB,gBAAgB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxC,aAAa;AACb,SAAS;AACT,aAAa;AACb,YAAY,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;AAC3C,SAAS;AACT,KAAK,CAAC,CAAC;AACP,CAAC;;AC/JM,SAAS,KAAK,CAAC,OAAO,EAAE;AAC/B;AACA,IAAI,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;AAC9C;AACA,IAAI,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AACnE,IAAI,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACrD,IAAI,IAAI,IAAI,CAAC;AACb,IAAI,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE;AACnC,QAAQ,QAAQ;AAChB,QAAQ,SAAS;AACjB,QAAQ,KAAK;AACb,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,WAAW;AACnB,KAAK,CAAC,CAAC;AACP;AACA,IAAI,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;AAC1D,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAC3C,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAC5B,QAAQ,GAAG,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC;AACpC,KAAK;AACL,IAAI,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AAClD,SAAS,MAAM,CAAC,CAAC,MAAM,KAAK,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC9D,SAAS,MAAM,CAAC,SAAS,CAAC,CAAC;AAC3B,IAAI,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;AACpE,IAAI,MAAM,eAAe,GAAG,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC9E,IAAI,IAAI,CAAC,eAAe,EAAE;AAC1B,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE;AACtC;AACA,YAAY,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;AAC3C,iBAAiB,KAAK,CAAC,GAAG,CAAC;AAC3B,iBAAiB,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,kDAAkD,EAAE,CAAC,oBAAoB,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACzJ,iBAAiB,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,SAAS;AACT,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC/C,YAAY,MAAM,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;AAC/F,YAAY,OAAO,CAAC,MAAM,GAAG,wBAAwB;AACrD,iBAAiB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;AACnD,iBAAiB,GAAG,CAAC,CAAC,OAAO,KAAK;AAClC,gBAAgB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM;AACvD,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACpD,sBAAsB,OAAO,CAAC;AAC9B,gBAAgB,OAAO,CAAC,uBAAuB,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5E,aAAa,CAAC;AACd,iBAAiB,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,SAAS;AACT,KAAK;AACL;AACA;AACA,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC1C,QAAQ,GAAG,GAAG,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;AAC3D,KAAK;AACL,SAAS;AACT,QAAQ,IAAI,MAAM,IAAI,mBAAmB,EAAE;AAC3C,YAAY,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;AAC5C,SAAS;AACT,aAAa;AACb,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE;AACzD,gBAAgB,IAAI,GAAG,mBAAmB,CAAC;AAC3C,aAAa;AACb,iBAAiB;AACjB,gBAAgB,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAC9C,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;AACjE,QAAQ,OAAO,CAAC,cAAc,CAAC,GAAG,iCAAiC,CAAC;AACpE,KAAK;AACL;AACA;AACA,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;AAC1E,QAAQ,IAAI,GAAG,EAAE,CAAC;AAClB,KAAK;AACL;AACA,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,IAAI,KAAK,WAAW,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,OAAO,CAAC,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AACzJ,CAAC;;AC9EM,SAAS,oBAAoB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE;AAC/D,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAClD,CAAC;;ACDM,SAAS,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE;AACvD,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AACrD,IAAI,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC/D,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;AACnC,QAAQ,QAAQ;AAChB,QAAQ,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;AACnD,QAAQ,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;AACzC,QAAQ,KAAK;AACb,KAAK,CAAC,CAAC;AACP,CAAC;;ACZM,MAAM,OAAO,GAAG,mBAAmB,CAAC;;ACE3C,MAAM,SAAS,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AACrE;AACA;AACA,AAAO,MAAM,QAAQ,GAAG;AACxB,IAAI,MAAM,EAAE,KAAK;AACjB,IAAI,OAAO,EAAE,wBAAwB;AACrC,IAAI,OAAO,EAAE;AACb,QAAQ,MAAM,EAAE,gCAAgC;AAChD,QAAQ,YAAY,EAAE,SAAS;AAC/B,KAAK;AACL,IAAI,SAAS,EAAE;AACf,QAAQ,MAAM,EAAE,EAAE;AAClB,QAAQ,QAAQ,EAAE,EAAE;AACpB,KAAK;AACL,CAAC,CAAC;;ACdU,MAAC,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/endpoint/package.json b/Client/node_modules/@octokit/endpoint/package.json new file mode 100644 index 000000000..9a4b5523a --- /dev/null +++ b/Client/node_modules/@octokit/endpoint/package.json @@ -0,0 +1,77 @@ +{ + "_from": "@octokit/endpoint@^6.0.1", + "_id": "@octokit/endpoint@6.0.10", + "_inBundle": false, + "_integrity": "sha512-9+Xef8nT7OKZglfkOMm7IL6VwxXUQyR7DUSU0LH/F7VNqs8vyd7es5pTfz9E7DwUIx7R3pGscxu1EBhYljyu7Q==", + "_location": "/@octokit/endpoint", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@octokit/endpoint@^6.0.1", + "name": "@octokit/endpoint", + "escapedName": "@octokit%2fendpoint", + "scope": "@octokit", + "rawSpec": "^6.0.1", + "saveSpec": null, + "fetchSpec": "^6.0.1" + }, + "_requiredBy": [ + "/@octokit/request" + ], + "_resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.10.tgz", + "_shasum": "741ce1fa2f4fb77ce8ebe0c6eaf5ce63f565f8e8", + "_spec": "@octokit/endpoint@^6.0.1", + "_where": "C:\\Superalgos\\Client\\node_modules\\@octokit\\request", + "bugs": { + "url": "https://github.com/octokit/endpoint.js/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@octokit/types": "^6.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + }, + "deprecated": false, + "description": "Turns REST API endpoints into generic request options", + "devDependencies": { + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "@types/jest": "^26.0.0", + "jest": "^26.0.1", + "prettier": "2.2.1", + "semantic-release": "^17.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "ts-jest": "^26.0.0", + "typescript": "^4.0.2" + }, + "files": [ + "dist-*/", + "bin/" + ], + "homepage": "https://github.com/octokit/endpoint.js#readme", + "keywords": [ + "octokit", + "github", + "api", + "rest" + ], + "license": "MIT", + "main": "dist-node/index.js", + "module": "dist-web/index.js", + "name": "@octokit/endpoint", + "pika": true, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/octokit/endpoint.js.git" + }, + "sideEffects": false, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "version": "6.0.10" +} diff --git a/Client/node_modules/@octokit/graphql/LICENSE b/Client/node_modules/@octokit/graphql/LICENSE new file mode 100644 index 000000000..af5366d0d --- /dev/null +++ b/Client/node_modules/@octokit/graphql/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2018 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Client/node_modules/@octokit/graphql/README.md b/Client/node_modules/@octokit/graphql/README.md new file mode 100644 index 000000000..8e6332a46 --- /dev/null +++ b/Client/node_modules/@octokit/graphql/README.md @@ -0,0 +1,384 @@ +# graphql.js + +> GitHub GraphQL API client for browsers and Node + +[![@latest](https://img.shields.io/npm/v/@octokit/graphql.svg)](https://www.npmjs.com/package/@octokit/graphql) +[![Build Status](https://github.com/octokit/graphql.js/workflows/Test/badge.svg)](https://github.com/octokit/graphql.js/actions?query=workflow%3ATest+branch%3Amaster) + + + +- [Usage](#usage) + - [Send a simple query](#send-a-simple-query) + - [Authentication](#authentication) + - [Variables](#variables) + - [Pass query together with headers and variables](#pass-query-together-with-headers-and-variables) + - [Use with GitHub Enterprise](#use-with-github-enterprise) + - [Use custom `@octokit/request` instance](#use-custom-octokitrequest-instance) +- [Errors](#errors) +- [Partial responses](#partial-responses) +- [Writing tests](#writing-tests) +- [License](#license) + + + +## Usage + + + + + + +
+Browsers + + +Load `@octokit/graphql` directly from [cdn.skypack.dev](https://cdn.skypack.dev) + +```html + +``` + +
+Node + + +Install with npm install @octokit/graphql + +```js +const { graphql } = require("@octokit/graphql"); +// or: import { graphql } from "@octokit/graphql"; +``` + +
+ +### Send a simple query + +```js +const { repository } = await graphql( + ` + { + repository(owner: "octokit", name: "graphql.js") { + issues(last: 3) { + edges { + node { + title + } + } + } + } + } + `, + { + headers: { + authorization: `token secret123`, + }, + } +); +``` + +### Authentication + +The simplest way to authenticate a request is to set the `Authorization` header, e.g. to a [personal access token](https://github.com/settings/tokens/). + +```js +const graphqlWithAuth = graphql.defaults({ + headers: { + authorization: `token secret123`, + }, +}); +const { repository } = await graphqlWithAuth(` + { + repository(owner: "octokit", name: "graphql.js") { + issues(last: 3) { + edges { + node { + title + } + } + } + } + } +`); +``` + +For more complex authentication strategies such as GitHub Apps or Basic, we recommend the according authentication library exported by [`@octokit/auth`](https://github.com/octokit/auth.js). + +```js +const { createAppAuth } = require("@octokit/auth-app"); +const auth = createAppAuth({ + id: process.env.APP_ID, + privateKey: process.env.PRIVATE_KEY, + installationId: 123, +}); +const graphqlWithAuth = graphql.defaults({ + request: { + hook: auth.hook, + }, +}); + +const { repository } = await graphqlWithAuth( + `{ + repository(owner: "octokit", name: "graphql.js") { + issues(last: 3) { + edges { + node { + title + } + } + } + } + }` +); +``` + +### Variables + +⚠️ Do not use [template literals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) in the query strings as they make your code vulnerable to query injection attacks (see [#2](https://github.com/octokit/graphql.js/issues/2)). Use variables instead: + +```js +const { lastIssues } = await graphql( + ` + query lastIssues($owner: String!, $repo: String!, $num: Int = 3) { + repository(owner: $owner, name: $repo) { + issues(last: $num) { + edges { + node { + title + } + } + } + } + } + `, + { + owner: "octokit", + repo: "graphql.js", + headers: { + authorization: `token secret123`, + }, + } +); +``` + +### Pass query together with headers and variables + +```js +const { graphql } = require("@octokit/graphql"); +const { lastIssues } = await graphql({ + query: `query lastIssues($owner: String!, $repo: String!, $num: Int = 3) { + repository(owner:$owner, name:$repo) { + issues(last:$num) { + edges { + node { + title + } + } + } + } + }`, + owner: "octokit", + repo: "graphql.js", + headers: { + authorization: `token secret123`, + }, +}); +``` + +### Use with GitHub Enterprise + +```js +let { graphql } = require("@octokit/graphql"); +graphql = graphql.defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api", + headers: { + authorization: `token secret123`, + }, +}); +const { repository } = await graphql(` + { + repository(owner: "acme-project", name: "acme-repo") { + issues(last: 3) { + edges { + node { + title + } + } + } + } + } +`); +``` + +### Use custom `@octokit/request` instance + +```js +const { request } = require("@octokit/request"); +const { withCustomRequest } = require("@octokit/graphql"); + +let requestCounter = 0; +const myRequest = request.defaults({ + headers: { + authentication: "token secret123", + }, + request: { + hook(request, options) { + requestCounter++; + return request(options); + }, + }, +}); +const myGraphql = withCustomRequest(myRequest); +await request("/"); +await myGraphql(` + { + repository(owner: "acme-project", name: "acme-repo") { + issues(last: 3) { + edges { + node { + title + } + } + } + } + } +`); +// requestCounter is now 2 +``` + +## Errors + +In case of a GraphQL error, `error.message` is set to the first error from the response’s `errors` array. All errors can be accessed at `error.errors`. `error.request` has the request options such as query, variables and headers set for easier debugging. + +```js +let { graphql } = require("@octokit/graphql"); +graphqlt = graphql.defaults({ + headers: { + authorization: `token secret123`, + }, +}); +const query = `{ + viewer { + bioHtml + } +}`; + +try { + const result = await graphql(query); +} catch (error) { + // server responds with + // { + // "data": null, + // "errors": [{ + // "message": "Field 'bioHtml' doesn't exist on type 'User'", + // "locations": [{ + // "line": 3, + // "column": 5 + // }] + // }] + // } + + console.log("Request failed:", error.request); // { query, variables: {}, headers: { authorization: 'token secret123' } } + console.log(error.message); // Field 'bioHtml' doesn't exist on type 'User' +} +``` + +## Partial responses + +A GraphQL query may respond with partial data accompanied by errors. In this case we will throw an error but the partial data will still be accessible through `error.data` + +```js +let { graphql } = require("@octokit/graphql"); +graphql = graphql.defaults({ + headers: { + authorization: `token secret123`, + }, +}); +const query = `{ + repository(name: "probot", owner: "probot") { + name + ref(qualifiedName: "master") { + target { + ... on Commit { + history(first: 25, after: "invalid cursor") { + nodes { + message + } + } + } + } + } + } +}`; + +try { + const result = await graphql(query); +} catch (error) { + // server responds with + // { + // "data": { + // "repository": { + // "name": "probot", + // "ref": null + // } + // }, + // "errors": [ + // { + // "type": "INVALID_CURSOR_ARGUMENTS", + // "path": [ + // "repository", + // "ref", + // "target", + // "history" + // ], + // "locations": [ + // { + // "line": 7, + // "column": 11 + // } + // ], + // "message": "`invalid cursor` does not appear to be a valid cursor." + // } + // ] + // } + + console.log("Request failed:", error.request); // { query, variables: {}, headers: { authorization: 'token secret123' } } + console.log(error.message); // `invalid cursor` does not appear to be a valid cursor. + console.log(error.data); // { repository: { name: 'probot', ref: null } } +} +``` + +## Writing tests + +You can pass a replacement for [the built-in fetch implementation](https://github.com/bitinn/node-fetch) as `request.fetch` option. For example, using [fetch-mock](http://www.wheresrhys.co.uk/fetch-mock/) works great to write tests + +```js +const assert = require("assert"); +const fetchMock = require("fetch-mock/es5/server"); + +const { graphql } = require("@octokit/graphql"); + +graphql("{ viewer { login } }", { + headers: { + authorization: "token secret123", + }, + request: { + fetch: fetchMock + .sandbox() + .post("https://api.github.com/graphql", (url, options) => { + assert.strictEqual(options.headers.authorization, "token secret123"); + assert.strictEqual( + options.body, + '{"query":"{ viewer { login } }"}', + "Sends correct query" + ); + return { data: {} }; + }), + }, +}); +``` + +## License + +[MIT](LICENSE) diff --git a/Client/node_modules/@octokit/graphql/dist-node/index.js b/Client/node_modules/@octokit/graphql/dist-node/index.js new file mode 100644 index 000000000..5c26e9f7b --- /dev/null +++ b/Client/node_modules/@octokit/graphql/dist-node/index.js @@ -0,0 +1,108 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var request = require('@octokit/request'); +var universalUserAgent = require('universal-user-agent'); + +const VERSION = "4.5.8"; + +class GraphqlError extends Error { + constructor(request, response) { + const message = response.data.errors[0].message; + super(message); + Object.assign(this, response.data); + Object.assign(this, { + headers: response.headers + }); + this.name = "GraphqlError"; + this.request = request; // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } + +} + +const NON_VARIABLE_OPTIONS = ["method", "baseUrl", "url", "headers", "request", "query", "mediaType"]; +const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; +function graphql(request, query, options) { + if (typeof query === "string" && options && "query" in options) { + return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`)); + } + + const parsedOptions = typeof query === "string" ? Object.assign({ + query + }, options) : query; + const requestOptions = Object.keys(parsedOptions).reduce((result, key) => { + if (NON_VARIABLE_OPTIONS.includes(key)) { + result[key] = parsedOptions[key]; + return result; + } + + if (!result.variables) { + result.variables = {}; + } + + result.variables[key] = parsedOptions[key]; + return result; + }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix + // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451 + + const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; + + if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + } + + return request(requestOptions).then(response => { + if (response.data.errors) { + const headers = {}; + + for (const key of Object.keys(response.headers)) { + headers[key] = response.headers[key]; + } + + throw new GraphqlError(requestOptions, { + headers, + data: response.data + }); + } + + return response.data.data; + }); +} + +function withDefaults(request$1, newDefaults) { + const newRequest = request$1.defaults(newDefaults); + + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: request.request.endpoint + }); +} + +const graphql$1 = withDefaults(request.request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}` + }, + method: "POST", + url: "/graphql" +}); +function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql" + }); +} + +exports.graphql = graphql$1; +exports.withCustomRequest = withCustomRequest; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/graphql/dist-node/index.js.map b/Client/node_modules/@octokit/graphql/dist-node/index.js.map new file mode 100644 index 000000000..3598288ef --- /dev/null +++ b/Client/node_modules/@octokit/graphql/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/error.js","../dist-src/graphql.js","../dist-src/with-defaults.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"4.5.8\";\n","export class GraphqlError extends Error {\n constructor(request, response) {\n const message = response.data.errors[0].message;\n super(message);\n Object.assign(this, response.data);\n Object.assign(this, { headers: response.headers });\n this.name = \"GraphqlError\";\n this.request = request;\n // Maintains proper stack trace (only available on V8)\n /* istanbul ignore next */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n}\n","import { GraphqlError } from \"./error\";\nconst NON_VARIABLE_OPTIONS = [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"query\",\n \"mediaType\",\n];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nexport function graphql(request, query, options) {\n if (typeof query === \"string\" && options && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n const parsedOptions = typeof query === \"string\" ? Object.assign({ query }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n if (!result.variables) {\n result.variables = {};\n }\n result.variables[key] = parsedOptions[key];\n return result;\n }, {});\n // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n return request(requestOptions).then((response) => {\n if (response.data.errors) {\n const headers = {};\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n throw new GraphqlError(requestOptions, {\n headers,\n data: response.data,\n });\n }\n return response.data.data;\n });\n}\n","import { request as Request } from \"@octokit/request\";\nimport { graphql } from \"./graphql\";\nexport function withDefaults(request, newDefaults) {\n const newRequest = request.defaults(newDefaults);\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: Request.endpoint,\n });\n}\n","import { request } from \"@octokit/request\";\nimport { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nimport { withDefaults } from \"./with-defaults\";\nexport const graphql = withDefaults(request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${getUserAgent()}`,\n },\n method: \"POST\",\n url: \"/graphql\",\n});\nexport function withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\",\n });\n}\n"],"names":["VERSION","GraphqlError","Error","constructor","request","response","message","data","errors","Object","assign","headers","name","captureStackTrace","NON_VARIABLE_OPTIONS","GHES_V3_SUFFIX_REGEX","graphql","query","options","Promise","reject","parsedOptions","requestOptions","keys","reduce","result","key","includes","variables","baseUrl","endpoint","DEFAULTS","test","url","replace","then","withDefaults","newDefaults","newRequest","defaults","newApi","bind","Request","getUserAgent","method","withCustomRequest","customRequest"],"mappings":";;;;;;;AAAO,MAAMA,OAAO,GAAG,mBAAhB;;ACAA,MAAMC,YAAN,SAA2BC,KAA3B,CAAiC;AACpCC,EAAAA,WAAW,CAACC,OAAD,EAAUC,QAAV,EAAoB;AAC3B,UAAMC,OAAO,GAAGD,QAAQ,CAACE,IAAT,CAAcC,MAAd,CAAqB,CAArB,EAAwBF,OAAxC;AACA,UAAMA,OAAN;AACAG,IAAAA,MAAM,CAACC,MAAP,CAAc,IAAd,EAAoBL,QAAQ,CAACE,IAA7B;AACAE,IAAAA,MAAM,CAACC,MAAP,CAAc,IAAd,EAAoB;AAAEC,MAAAA,OAAO,EAAEN,QAAQ,CAACM;AAApB,KAApB;AACA,SAAKC,IAAL,GAAY,cAAZ;AACA,SAAKR,OAAL,GAAeA,OAAf,CAN2B;;AAQ3B;;AACA,QAAIF,KAAK,CAACW,iBAAV,EAA6B;AACzBX,MAAAA,KAAK,CAACW,iBAAN,CAAwB,IAAxB,EAA8B,KAAKV,WAAnC;AACH;AACJ;;AAbmC;;ACCxC,MAAMW,oBAAoB,GAAG,CACzB,QADyB,EAEzB,SAFyB,EAGzB,KAHyB,EAIzB,SAJyB,EAKzB,SALyB,EAMzB,OANyB,EAOzB,WAPyB,CAA7B;AASA,MAAMC,oBAAoB,GAAG,eAA7B;AACA,AAAO,SAASC,OAAT,CAAiBZ,OAAjB,EAA0Ba,KAA1B,EAAiCC,OAAjC,EAA0C;AAC7C,MAAI,OAAOD,KAAP,KAAiB,QAAjB,IAA6BC,OAA7B,IAAwC,WAAWA,OAAvD,EAAgE;AAC5D,WAAOC,OAAO,CAACC,MAAR,CAAe,IAAIlB,KAAJ,CAAW,4DAAX,CAAf,CAAP;AACH;;AACD,QAAMmB,aAAa,GAAG,OAAOJ,KAAP,KAAiB,QAAjB,GAA4BR,MAAM,CAACC,MAAP,CAAc;AAAEO,IAAAA;AAAF,GAAd,EAAyBC,OAAzB,CAA5B,GAAgED,KAAtF;AACA,QAAMK,cAAc,GAAGb,MAAM,CAACc,IAAP,CAAYF,aAAZ,EAA2BG,MAA3B,CAAkC,CAACC,MAAD,EAASC,GAAT,KAAiB;AACtE,QAAIZ,oBAAoB,CAACa,QAArB,CAA8BD,GAA9B,CAAJ,EAAwC;AACpCD,MAAAA,MAAM,CAACC,GAAD,CAAN,GAAcL,aAAa,CAACK,GAAD,CAA3B;AACA,aAAOD,MAAP;AACH;;AACD,QAAI,CAACA,MAAM,CAACG,SAAZ,EAAuB;AACnBH,MAAAA,MAAM,CAACG,SAAP,GAAmB,EAAnB;AACH;;AACDH,IAAAA,MAAM,CAACG,SAAP,CAAiBF,GAAjB,IAAwBL,aAAa,CAACK,GAAD,CAArC;AACA,WAAOD,MAAP;AACH,GAVsB,EAUpB,EAVoB,CAAvB,CAL6C;AAiB7C;;AACA,QAAMI,OAAO,GAAGR,aAAa,CAACQ,OAAd,IAAyBzB,OAAO,CAAC0B,QAAR,CAAiBC,QAAjB,CAA0BF,OAAnE;;AACA,MAAId,oBAAoB,CAACiB,IAArB,CAA0BH,OAA1B,CAAJ,EAAwC;AACpCP,IAAAA,cAAc,CAACW,GAAf,GAAqBJ,OAAO,CAACK,OAAR,CAAgBnB,oBAAhB,EAAsC,cAAtC,CAArB;AACH;;AACD,SAAOX,OAAO,CAACkB,cAAD,CAAP,CAAwBa,IAAxB,CAA8B9B,QAAD,IAAc;AAC9C,QAAIA,QAAQ,CAACE,IAAT,CAAcC,MAAlB,EAA0B;AACtB,YAAMG,OAAO,GAAG,EAAhB;;AACA,WAAK,MAAMe,GAAX,IAAkBjB,MAAM,CAACc,IAAP,CAAYlB,QAAQ,CAACM,OAArB,CAAlB,EAAiD;AAC7CA,QAAAA,OAAO,CAACe,GAAD,CAAP,GAAerB,QAAQ,CAACM,OAAT,CAAiBe,GAAjB,CAAf;AACH;;AACD,YAAM,IAAIzB,YAAJ,CAAiBqB,cAAjB,EAAiC;AACnCX,QAAAA,OADmC;AAEnCJ,QAAAA,IAAI,EAAEF,QAAQ,CAACE;AAFoB,OAAjC,CAAN;AAIH;;AACD,WAAOF,QAAQ,CAACE,IAAT,CAAcA,IAArB;AACH,GAZM,CAAP;AAaH;;AC5CM,SAAS6B,YAAT,CAAsBhC,SAAtB,EAA+BiC,WAA/B,EAA4C;AAC/C,QAAMC,UAAU,GAAGlC,SAAO,CAACmC,QAAR,CAAiBF,WAAjB,CAAnB;;AACA,QAAMG,MAAM,GAAG,CAACvB,KAAD,EAAQC,OAAR,KAAoB;AAC/B,WAAOF,OAAO,CAACsB,UAAD,EAAarB,KAAb,EAAoBC,OAApB,CAAd;AACH,GAFD;;AAGA,SAAOT,MAAM,CAACC,MAAP,CAAc8B,MAAd,EAAsB;AACzBD,IAAAA,QAAQ,EAAEH,YAAY,CAACK,IAAb,CAAkB,IAAlB,EAAwBH,UAAxB,CADe;AAEzBR,IAAAA,QAAQ,EAAEY,eAAO,CAACZ;AAFO,GAAtB,CAAP;AAIH;;MCPYd,SAAO,GAAGoB,YAAY,CAAChC,eAAD,EAAU;AACzCO,EAAAA,OAAO,EAAE;AACL,kBAAe,sBAAqBX,OAAQ,IAAG2C,+BAAY,EAAG;AADzD,GADgC;AAIzCC,EAAAA,MAAM,EAAE,MAJiC;AAKzCX,EAAAA,GAAG,EAAE;AALoC,CAAV,CAA5B;AAOP,AAAO,SAASY,iBAAT,CAA2BC,aAA3B,EAA0C;AAC7C,SAAOV,YAAY,CAACU,aAAD,EAAgB;AAC/BF,IAAAA,MAAM,EAAE,MADuB;AAE/BX,IAAAA,GAAG,EAAE;AAF0B,GAAhB,CAAnB;AAIH;;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/graphql/dist-src/error.js b/Client/node_modules/@octokit/graphql/dist-src/error.js new file mode 100644 index 000000000..37942ba16 --- /dev/null +++ b/Client/node_modules/@octokit/graphql/dist-src/error.js @@ -0,0 +1,15 @@ +export class GraphqlError extends Error { + constructor(request, response) { + const message = response.data.errors[0].message; + super(message); + Object.assign(this, response.data); + Object.assign(this, { headers: response.headers }); + this.name = "GraphqlError"; + this.request = request; + // Maintains proper stack trace (only available on V8) + /* istanbul ignore next */ + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } +} diff --git a/Client/node_modules/@octokit/graphql/dist-src/graphql.js b/Client/node_modules/@octokit/graphql/dist-src/graphql.js new file mode 100644 index 000000000..deb9488de --- /dev/null +++ b/Client/node_modules/@octokit/graphql/dist-src/graphql.js @@ -0,0 +1,47 @@ +import { GraphqlError } from "./error"; +const NON_VARIABLE_OPTIONS = [ + "method", + "baseUrl", + "url", + "headers", + "request", + "query", + "mediaType", +]; +const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; +export function graphql(request, query, options) { + if (typeof query === "string" && options && "query" in options) { + return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`)); + } + const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query; + const requestOptions = Object.keys(parsedOptions).reduce((result, key) => { + if (NON_VARIABLE_OPTIONS.includes(key)) { + result[key] = parsedOptions[key]; + return result; + } + if (!result.variables) { + result.variables = {}; + } + result.variables[key] = parsedOptions[key]; + return result; + }, {}); + // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix + // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451 + const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; + if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + } + return request(requestOptions).then((response) => { + if (response.data.errors) { + const headers = {}; + for (const key of Object.keys(response.headers)) { + headers[key] = response.headers[key]; + } + throw new GraphqlError(requestOptions, { + headers, + data: response.data, + }); + } + return response.data.data; + }); +} diff --git a/Client/node_modules/@octokit/graphql/dist-src/index.js b/Client/node_modules/@octokit/graphql/dist-src/index.js new file mode 100644 index 000000000..b20237849 --- /dev/null +++ b/Client/node_modules/@octokit/graphql/dist-src/index.js @@ -0,0 +1,17 @@ +import { request } from "@octokit/request"; +import { getUserAgent } from "universal-user-agent"; +import { VERSION } from "./version"; +import { withDefaults } from "./with-defaults"; +export const graphql = withDefaults(request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${getUserAgent()}`, + }, + method: "POST", + url: "/graphql", +}); +export function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql", + }); +} diff --git a/Client/node_modules/@octokit/graphql/dist-src/types.js b/Client/node_modules/@octokit/graphql/dist-src/types.js new file mode 100644 index 000000000..e69de29bb diff --git a/Client/node_modules/@octokit/graphql/dist-src/version.js b/Client/node_modules/@octokit/graphql/dist-src/version.js new file mode 100644 index 000000000..cdefae231 --- /dev/null +++ b/Client/node_modules/@octokit/graphql/dist-src/version.js @@ -0,0 +1 @@ +export const VERSION = "4.5.8"; diff --git a/Client/node_modules/@octokit/graphql/dist-src/with-defaults.js b/Client/node_modules/@octokit/graphql/dist-src/with-defaults.js new file mode 100644 index 000000000..6ea309e3a --- /dev/null +++ b/Client/node_modules/@octokit/graphql/dist-src/with-defaults.js @@ -0,0 +1,12 @@ +import { request as Request } from "@octokit/request"; +import { graphql } from "./graphql"; +export function withDefaults(request, newDefaults) { + const newRequest = request.defaults(newDefaults); + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: Request.endpoint, + }); +} diff --git a/Client/node_modules/@octokit/graphql/dist-types/error.d.ts b/Client/node_modules/@octokit/graphql/dist-types/error.d.ts new file mode 100644 index 000000000..81b31a43a --- /dev/null +++ b/Client/node_modules/@octokit/graphql/dist-types/error.d.ts @@ -0,0 +1,9 @@ +import { ResponseHeaders } from "@octokit/types"; +import { GraphQlEndpointOptions, GraphQlQueryResponse } from "./types"; +export declare class GraphqlError extends Error { + request: GraphQlEndpointOptions; + constructor(request: GraphQlEndpointOptions, response: { + headers: ResponseHeaders; + data: Required>; + }); +} diff --git a/Client/node_modules/@octokit/graphql/dist-types/graphql.d.ts b/Client/node_modules/@octokit/graphql/dist-types/graphql.d.ts new file mode 100644 index 000000000..2942b8b6e --- /dev/null +++ b/Client/node_modules/@octokit/graphql/dist-types/graphql.d.ts @@ -0,0 +1,3 @@ +import { request as Request } from "@octokit/request"; +import { RequestParameters, GraphQlQueryResponseData } from "./types"; +export declare function graphql(request: typeof Request, query: string | RequestParameters, options?: RequestParameters): Promise; diff --git a/Client/node_modules/@octokit/graphql/dist-types/index.d.ts b/Client/node_modules/@octokit/graphql/dist-types/index.d.ts new file mode 100644 index 000000000..1878fd411 --- /dev/null +++ b/Client/node_modules/@octokit/graphql/dist-types/index.d.ts @@ -0,0 +1,3 @@ +import { request } from "@octokit/request"; +export declare const graphql: import("./types").graphql; +export declare function withCustomRequest(customRequest: typeof request): import("./types").graphql; diff --git a/Client/node_modules/@octokit/graphql/dist-types/types.d.ts b/Client/node_modules/@octokit/graphql/dist-types/types.d.ts new file mode 100644 index 000000000..ef60d9547 --- /dev/null +++ b/Client/node_modules/@octokit/graphql/dist-types/types.d.ts @@ -0,0 +1,50 @@ +import { EndpointOptions, RequestParameters as RequestParametersType, EndpointInterface } from "@octokit/types"; +export declare type GraphQlEndpointOptions = EndpointOptions & { + variables?: { + [key: string]: unknown; + }; +}; +export declare type RequestParameters = RequestParametersType; +export declare type Query = string; +export interface graphql { + /** + * Sends a GraphQL query request based on endpoint options + * The GraphQL query must be specified in `options`. + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: RequestParameters): GraphQlResponse; + /** + * Sends a GraphQL query request based on endpoint options + * + * @param {string} query GraphQL query. Example: `'query { viewer { login } }'`. + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (query: Query, parameters?: RequestParameters): GraphQlResponse; + /** + * Returns a new `endpoint` with updated route and parameters + */ + defaults: (newDefaults: RequestParameters) => graphql; + /** + * Octokit endpoint API, see {@link https://github.com/octokit/endpoint.js|@octokit/endpoint} + */ + endpoint: EndpointInterface; +} +export declare type GraphQlResponse = Promise; +export declare type GraphQlQueryResponseData = { + [key: string]: any; +}; +export declare type GraphQlQueryResponse = { + data: ResponseData; + errors?: [{ + message: string; + path: [string]; + extensions: { + [key: string]: any; + }; + locations: [{ + line: number; + column: number; + }]; + }]; +}; diff --git a/Client/node_modules/@octokit/graphql/dist-types/version.d.ts b/Client/node_modules/@octokit/graphql/dist-types/version.d.ts new file mode 100644 index 000000000..1b94bb92d --- /dev/null +++ b/Client/node_modules/@octokit/graphql/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "4.5.8"; diff --git a/Client/node_modules/@octokit/graphql/dist-types/with-defaults.d.ts b/Client/node_modules/@octokit/graphql/dist-types/with-defaults.d.ts new file mode 100644 index 000000000..03edc3205 --- /dev/null +++ b/Client/node_modules/@octokit/graphql/dist-types/with-defaults.d.ts @@ -0,0 +1,3 @@ +import { request as Request } from "@octokit/request"; +import { graphql as ApiInterface, RequestParameters } from "./types"; +export declare function withDefaults(request: typeof Request, newDefaults: RequestParameters): ApiInterface; diff --git a/Client/node_modules/@octokit/graphql/dist-web/index.js b/Client/node_modules/@octokit/graphql/dist-web/index.js new file mode 100644 index 000000000..9cb20bc71 --- /dev/null +++ b/Client/node_modules/@octokit/graphql/dist-web/index.js @@ -0,0 +1,95 @@ +import { request } from '@octokit/request'; +import { getUserAgent } from 'universal-user-agent'; + +const VERSION = "4.5.8"; + +class GraphqlError extends Error { + constructor(request, response) { + const message = response.data.errors[0].message; + super(message); + Object.assign(this, response.data); + Object.assign(this, { headers: response.headers }); + this.name = "GraphqlError"; + this.request = request; + // Maintains proper stack trace (only available on V8) + /* istanbul ignore next */ + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } +} + +const NON_VARIABLE_OPTIONS = [ + "method", + "baseUrl", + "url", + "headers", + "request", + "query", + "mediaType", +]; +const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; +function graphql(request, query, options) { + if (typeof query === "string" && options && "query" in options) { + return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`)); + } + const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query; + const requestOptions = Object.keys(parsedOptions).reduce((result, key) => { + if (NON_VARIABLE_OPTIONS.includes(key)) { + result[key] = parsedOptions[key]; + return result; + } + if (!result.variables) { + result.variables = {}; + } + result.variables[key] = parsedOptions[key]; + return result; + }, {}); + // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix + // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451 + const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; + if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + } + return request(requestOptions).then((response) => { + if (response.data.errors) { + const headers = {}; + for (const key of Object.keys(response.headers)) { + headers[key] = response.headers[key]; + } + throw new GraphqlError(requestOptions, { + headers, + data: response.data, + }); + } + return response.data.data; + }); +} + +function withDefaults(request$1, newDefaults) { + const newRequest = request$1.defaults(newDefaults); + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: request.endpoint, + }); +} + +const graphql$1 = withDefaults(request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${getUserAgent()}`, + }, + method: "POST", + url: "/graphql", +}); +function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql", + }); +} + +export { graphql$1 as graphql, withCustomRequest }; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/graphql/dist-web/index.js.map b/Client/node_modules/@octokit/graphql/dist-web/index.js.map new file mode 100644 index 000000000..aebdc5e00 --- /dev/null +++ b/Client/node_modules/@octokit/graphql/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/error.js","../dist-src/graphql.js","../dist-src/with-defaults.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"4.5.8\";\n","export class GraphqlError extends Error {\n constructor(request, response) {\n const message = response.data.errors[0].message;\n super(message);\n Object.assign(this, response.data);\n Object.assign(this, { headers: response.headers });\n this.name = \"GraphqlError\";\n this.request = request;\n // Maintains proper stack trace (only available on V8)\n /* istanbul ignore next */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n}\n","import { GraphqlError } from \"./error\";\nconst NON_VARIABLE_OPTIONS = [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"query\",\n \"mediaType\",\n];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nexport function graphql(request, query, options) {\n if (typeof query === \"string\" && options && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n const parsedOptions = typeof query === \"string\" ? Object.assign({ query }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n if (!result.variables) {\n result.variables = {};\n }\n result.variables[key] = parsedOptions[key];\n return result;\n }, {});\n // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n return request(requestOptions).then((response) => {\n if (response.data.errors) {\n const headers = {};\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n throw new GraphqlError(requestOptions, {\n headers,\n data: response.data,\n });\n }\n return response.data.data;\n });\n}\n","import { request as Request } from \"@octokit/request\";\nimport { graphql } from \"./graphql\";\nexport function withDefaults(request, newDefaults) {\n const newRequest = request.defaults(newDefaults);\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: Request.endpoint,\n });\n}\n","import { request } from \"@octokit/request\";\nimport { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nimport { withDefaults } from \"./with-defaults\";\nexport const graphql = withDefaults(request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${getUserAgent()}`,\n },\n method: \"POST\",\n url: \"/graphql\",\n});\nexport function withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\",\n });\n}\n"],"names":["request","Request","graphql"],"mappings":";;;AAAO,MAAM,OAAO,GAAG,mBAAmB;;ACAnC,MAAM,YAAY,SAAS,KAAK,CAAC;AACxC,IAAI,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE;AACnC,QAAQ,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACxD,QAAQ,KAAK,CAAC,OAAO,CAAC,CAAC;AACvB,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3C,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;AAC3D,QAAQ,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;AACnC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC/B;AACA;AACA,QAAQ,IAAI,KAAK,CAAC,iBAAiB,EAAE;AACrC,YAAY,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5D,SAAS;AACT,KAAK;AACL,CAAC;;ACbD,MAAM,oBAAoB,GAAG;AAC7B,IAAI,QAAQ;AACZ,IAAI,SAAS;AACb,IAAI,KAAK;AACT,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,OAAO;AACX,IAAI,WAAW;AACf,CAAC,CAAC;AACF,MAAM,oBAAoB,GAAG,eAAe,CAAC;AAC7C,AAAO,SAAS,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;AACjD,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,EAAE;AACpE,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,0DAA0D,CAAC,CAAC,CAAC,CAAC;AACvG,KAAK;AACL,IAAI,MAAM,aAAa,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;AAChG,IAAI,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK;AAC9E,QAAQ,IAAI,oBAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAChD,YAAY,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AAC7C,YAAY,OAAO,MAAM,CAAC;AAC1B,SAAS;AACT,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AAC/B,YAAY,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;AAClC,SAAS;AACT,QAAQ,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AACnD,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX;AACA;AACA,IAAI,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC/E,IAAI,IAAI,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AAC5C,QAAQ,cAAc,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC;AACnF,KAAK;AACL,IAAI,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK;AACtD,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE;AAClC,YAAY,MAAM,OAAO,GAAG,EAAE,CAAC;AAC/B,YAAY,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC7D,gBAAgB,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACrD,aAAa;AACb,YAAY,MAAM,IAAI,YAAY,CAAC,cAAc,EAAE;AACnD,gBAAgB,OAAO;AACvB,gBAAgB,IAAI,EAAE,QAAQ,CAAC,IAAI;AACnC,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAClC,KAAK,CAAC,CAAC;AACP,CAAC;;AC5CM,SAAS,YAAY,CAACA,SAAO,EAAE,WAAW,EAAE;AACnD,IAAI,MAAM,UAAU,GAAGA,SAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACrD,IAAI,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK;AACvC,QAAQ,OAAO,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACnD,KAAK,CAAC;AACN,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AACjC,QAAQ,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;AACrD,QAAQ,QAAQ,EAAEC,OAAO,CAAC,QAAQ;AAClC,KAAK,CAAC,CAAC;AACP,CAAC;;ACPW,MAACC,SAAO,GAAG,YAAY,CAAC,OAAO,EAAE;AAC7C,IAAI,OAAO,EAAE;AACb,QAAQ,YAAY,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;AACvE,KAAK;AACL,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,GAAG,EAAE,UAAU;AACnB,CAAC,CAAC,CAAC;AACH,AAAO,SAAS,iBAAiB,CAAC,aAAa,EAAE;AACjD,IAAI,OAAO,YAAY,CAAC,aAAa,EAAE;AACvC,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,GAAG,EAAE,UAAU;AACvB,KAAK,CAAC,CAAC;AACP,CAAC;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/graphql/package.json b/Client/node_modules/@octokit/graphql/package.json new file mode 100644 index 000000000..1e2b8428f --- /dev/null +++ b/Client/node_modules/@octokit/graphql/package.json @@ -0,0 +1,80 @@ +{ + "_from": "@octokit/graphql@^4.5.8", + "_id": "@octokit/graphql@4.5.8", + "_inBundle": false, + "_integrity": "sha512-WnCtNXWOrupfPJgXe+vSmprZJUr0VIu14G58PMlkWGj3cH+KLZEfKMmbUQ6C3Wwx6fdhzVW1CD5RTnBdUHxhhA==", + "_location": "/@octokit/graphql", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@octokit/graphql@^4.5.8", + "name": "@octokit/graphql", + "escapedName": "@octokit%2fgraphql", + "scope": "@octokit", + "rawSpec": "^4.5.8", + "saveSpec": null, + "fetchSpec": "^4.5.8" + }, + "_requiredBy": [ + "/@octokit/core" + ], + "_resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.5.8.tgz", + "_shasum": "d42373633c3015d0eafce64a8ce196be167fdd9b", + "_spec": "@octokit/graphql@^4.5.8", + "_where": "C:\\Superalgos\\Client\\node_modules\\@octokit\\core", + "bugs": { + "url": "https://github.com/octokit/graphql.js/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@octokit/request": "^5.3.0", + "@octokit/types": "^6.0.0", + "universal-user-agent": "^6.0.0" + }, + "deprecated": false, + "description": "GitHub GraphQL API client for browsers and Node", + "devDependencies": { + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "@types/fetch-mock": "^7.2.5", + "@types/jest": "^26.0.0", + "@types/node": "^14.0.4", + "fetch-mock": "^9.0.0", + "jest": "^25.1.0", + "prettier": "^2.0.0", + "semantic-release": "^17.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "ts-jest": "^25.1.0", + "typescript": "^3.4.5" + }, + "files": [ + "dist-*/", + "bin/" + ], + "homepage": "https://github.com/octokit/graphql.js#readme", + "keywords": [ + "octokit", + "github", + "api", + "graphql" + ], + "license": "MIT", + "main": "dist-node/index.js", + "module": "dist-web/index.js", + "name": "@octokit/graphql", + "pika": true, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/octokit/graphql.js.git" + }, + "sideEffects": false, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "version": "4.5.8" +} diff --git a/Client/node_modules/@octokit/openapi-types/.github/workflows/release-notification.yml b/Client/node_modules/@octokit/openapi-types/.github/workflows/release-notification.yml new file mode 100644 index 000000000..d29dc50d1 --- /dev/null +++ b/Client/node_modules/@octokit/openapi-types/.github/workflows/release-notification.yml @@ -0,0 +1,18 @@ +name: Release notification +on: + release: + types: + - published + +jobs: + notify: + runs-on: ubuntu-latest + steps: + - uses: gr2m/await-npm-package-version-action@v1 + with: + package: "@octokit/openapi-types" + version: ${{ github.event.release.tag_name }} + - uses: gr2m/release-notifier-action@v1 + with: + app_id: ${{ secrets.RELEASE_NOTIFIER_APP_ID }} + private_key: ${{ secrets.RELEASE_NOTIFIER_APP_PRIVATE_KEY }} diff --git a/Client/node_modules/@octokit/openapi-types/.github/workflows/release.yml b/Client/node_modules/@octokit/openapi-types/.github/workflows/release.yml new file mode 100644 index 000000000..0da51d7c0 --- /dev/null +++ b/Client/node_modules/@octokit/openapi-types/.github/workflows/release.yml @@ -0,0 +1,21 @@ +name: Release +on: + push: + branches: + - main + - next + - beta + - "*.x" # maintenance releases + +jobs: + release: + name: release + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2.1.3 + - run: npm ci + - run: npx semantic-release + env: + GITHUB_TOKEN: ${{ secrets.OCTOKITBOT_PAT }} + NPM_TOKEN: ${{ secrets.OCTOKITBOT_NPM_TOKEN }} diff --git a/Client/node_modules/@octokit/openapi-types/.github/workflows/update.yml b/Client/node_modules/@octokit/openapi-types/.github/workflows/update.yml new file mode 100644 index 000000000..3a1548c80 --- /dev/null +++ b/Client/node_modules/@octokit/openapi-types/.github/workflows/update.yml @@ -0,0 +1,82 @@ +name: Update +on: + repository_dispatch: + types: ["octokit/openapi release"] + + push: + branches: + - dependabot/npm_and_yarn/openapi-typescript-* + + workflow_dispatch: + inputs: + version: + description: "Version of https://www.npmjs.com/package/@octokit/openapi" + required: true + +jobs: + update: + runs-on: ubuntu-latest + if: github.event_name == 'workflow_dispatch' || github.event.client_payload.action == 'published' + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2.1.3 + - run: npm ci + # do not update cache for dependabot update + - run: | + npm run download + npm run generate-types + if: github.event_name == 'repository_dispatch' + env: + VERSION: ${{ github.event.client_payload.release.tag_name }} + - run: | + npm run download + npm run generate-types + if: github.event_name == 'workflow_dispatch' + env: + VERSION: ${{ github.event.inputs.version }} + + # create/update pull request for dispatch event update + - name: Create Pull Request + if: github.event_name != 'push' + uses: gr2m/create-or-update-pull-request-action@v1.x + env: + GITHUB_TOKEN: ${{ secrets.OCTOKITBOT_PAT }} + with: + title: "🚧 OpenAPI types changed" + body: | + Make sure to update the commits so that the merge results in helpful release notes, see [Merging the Pull Request & releasing a new version](https://github.com/octokit/rest.js/blob/master/CONTRIBUTING.md#merging-the-pull-request--releasing-a-new-version). + + In general + + - Avoid breaking changes at all costs + - If there are no typescript changes, use `build: cache` as commit message + - If there are there are only updates, use `fix: ...` + - If there are any new additions, use `feat: ...` + - If there are breaking changes, keep the previous ones and deprecate them. Only if there is no other way, add `BREAKING CHANGE: ...` to the commit body (not subject!) to trigger a breaking change. + branch: "openapi-update" + commit-message: "WIP" + author: "Octokit Bot <33075676+octokitbot@users.noreply.github.com>" + labels: "maintenance" + + # update pull request for dependabot update + - name: Create Pull Request + if: github.event_name == 'push' + uses: gr2m/create-or-update-pull-request-action@v1.x + env: + GITHUB_TOKEN: ${{ secrets.OCTOKITBOT_PAT }} + with: + title: "🚧 OpenAPI types changed" + body: | + Make sure to update the commits so that the merge results in helpful release notes, see [Merging the Pull Request & releasing a new version](https://github.com/octokit/rest.js/blob/master/CONTRIBUTING.md#merging-the-pull-request--releasing-a-new-version). + + In general + + - Avoid breaking changes at all costs + - If there are no typescript changes, use `build: cache` as commit message + - If there are there are only updates, use `fix: ...` + - If there are any new additions, use `feat: ...` + - If there are breaking changes, keep the previous ones and deprecate them. Only if there is no other way, add `BREAKING CHANGE: ...` to the commit body (not subject!) to trigger a breaking change. + branch: "${{ github.ref }}" + commit-message: "WIP" + author: "Octokit Bot <33075676+octokitbot@users.noreply.github.com>" + labels: "maintenance" diff --git a/Client/node_modules/@octokit/openapi-types/CODE_OF_CONDUCT.md b/Client/node_modules/@octokit/openapi-types/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..dad5ddc09 --- /dev/null +++ b/Client/node_modules/@octokit/openapi-types/CODE_OF_CONDUCT.md @@ -0,0 +1,74 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +- The use of sexualized language or imagery and unwelcome sexual attention or + advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic + address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at opensource+coc@martynus.net. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at [https://contributor-covenant.org/version/1/4][version] + +[homepage]: https://contributor-covenant.org +[version]: https://contributor-covenant.org/version/1/4/ diff --git a/Client/node_modules/@octokit/openapi-types/LICENSE b/Client/node_modules/@octokit/openapi-types/LICENSE new file mode 100644 index 000000000..c61fbbe5a --- /dev/null +++ b/Client/node_modules/@octokit/openapi-types/LICENSE @@ -0,0 +1,7 @@ +Copyright 2020 Gregor Martynus + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/Client/node_modules/@octokit/openapi-types/README.md b/Client/node_modules/@octokit/openapi-types/README.md new file mode 100644 index 000000000..47acb127f --- /dev/null +++ b/Client/node_modules/@octokit/openapi-types/README.md @@ -0,0 +1,9 @@ +# openapi-types.ts + +> Generated TypeScript definitions based on GitHub's OpenAPI spec + +This repository continously converts [GitHub's OpenAPI specification](https://github.com/github/rest-api-description/) into TypeScript definitions and publishes them to npm as `@octokit/openapi-types` + +## License + +[MIT](LICENSE) diff --git a/Client/node_modules/@octokit/openapi-types/cache/openapi-schema.json b/Client/node_modules/@octokit/openapi-types/cache/openapi-schema.json new file mode 100644 index 000000000..af1946c14 --- /dev/null +++ b/Client/node_modules/@octokit/openapi-types/cache/openapi-schema.json @@ -0,0 +1,66424 @@ +{ + "openapi": "3.0.3", + "info": { + "version": "2.2.0", + "title": "GitHub's official OpenAPI spec + Octokit extension", + "description": "OpenAPI specs from https://github.com/github/rest-api-description with the 'x-octokit' extension required by the Octokit SDKs", + "license": { "name": "MIT", "url": "https://spdx.org/licenses/MIT" }, + "termsOfService": "https://docs.github.com/articles/github-terms-of-service", + "contact": { + "name": "Support", + "url": "https://github.com/octokit/openapi" + } + }, + "tags": [ + { + "name": "actions", + "description": "Endpoints to manage GitHub Actions using the REST API." + }, + { + "name": "activity", + "description": "Activity APIs provide access to notifications, subscriptions, and timelines." + }, + { + "name": "apps", + "description": "Information for integrations and installations." + }, + { + "name": "billing", + "description": "Monitor charges and usage from Actions and Packages." + }, + { + "name": "checks", + "description": "Rich interactions with checks run by your integrations." + }, + { + "name": "code-scanning", + "description": "Retrieve code scanning alerts from a repository." + }, + { + "name": "codes-of-conduct", + "description": "Insight into codes of conduct for your communities." + }, + { + "name": "emojis", + "description": "List emojis available to use on GitHub." + }, + { "name": "gists", "description": "View, modify your gists." }, + { "name": "git", "description": "Raw Git functionality." }, + { "name": "gitignore", "description": "View gitignore templates" }, + { + "name": "interactions", + "description": "Owner or admin management of users interactons." + }, + { "name": "issues", "description": "Interact with GitHub Issues." }, + { "name": "licenses", "description": "View various OSS licenses." }, + { "name": "markdown", "description": "Render Github flavored markdown" }, + { + "name": "meta", + "description": "Endpoints that give information about the API." + }, + { "name": "migrations", "description": "Move projects to or from GitHub." }, + { + "name": "oauth-authorizations", + "description": "Manage access of OAuth applications" + }, + { "name": "orgs", "description": "Interact with GitHub Orgs." }, + { "name": "projects", "description": "Interact with GitHub Projects." }, + { "name": "pulls", "description": "Interact with GitHub Pull Requests." }, + { + "name": "rate-limit", + "description": "Check your current rate limit status" + }, + { + "name": "reactions", + "description": "Interact with reactions to various GitHub entities." + }, + { "name": "repos", "description": "Interact with GitHub Repos." }, + { + "name": "scim", + "description": "Provisioning of GitHub organization membership for SCIM-enabled providers." + }, + { "name": "search", "description": "Look for stuff on GitHub." }, + { + "name": "secret-scanning", + "description": "Retrieve secret scanning alerts from a repository." + }, + { "name": "teams", "description": "Interact with GitHub Teams." }, + { + "name": "users", + "description": "Interact with and view information about users and also current user." + } + ], + "servers": [{ "url": "https://api.github.com" }], + "externalDocs": { + "description": "GitHub v3 REST API", + "url": "https://docs.github.com/rest/" + }, + "paths": { + "/": { + "get": { + "summary": "GitHub API Root", + "description": "Get Hypermedia links to resources accessible in GitHub's REST API", + "tags": ["meta"], + "operationId": "meta/root", + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "current_user_url": { "type": "string", "format": "uri" }, + "current_user_authorizations_html_url": { + "type": "string", + "format": "uri" + }, + "authorizations_url": { "type": "string", "format": "uri" }, + "code_search_url": { "type": "string", "format": "uri" }, + "commit_search_url": { "type": "string", "format": "uri" }, + "emails_url": { "type": "string", "format": "uri" }, + "emojis_url": { "type": "string", "format": "uri" }, + "events_url": { "type": "string", "format": "uri" }, + "feeds_url": { "type": "string", "format": "uri" }, + "followers_url": { "type": "string", "format": "uri" }, + "following_url": { "type": "string", "format": "uri" }, + "gists_url": { "type": "string", "format": "uri" }, + "hub_url": { "type": "string", "format": "uri" }, + "issue_search_url": { "type": "string", "format": "uri" }, + "issues_url": { "type": "string", "format": "uri" }, + "keys_url": { "type": "string", "format": "uri" }, + "label_search_url": { "type": "string", "format": "uri" }, + "notifications_url": { "type": "string", "format": "uri" }, + "organization_url": { "type": "string", "format": "uri" }, + "organization_repositories_url": { + "type": "string", + "format": "uri" + }, + "organization_teams_url": { + "type": "string", + "format": "uri" + }, + "public_gists_url": { "type": "string", "format": "uri" }, + "rate_limit_url": { "type": "string", "format": "uri" }, + "repository_url": { "type": "string", "format": "uri" }, + "repository_search_url": { + "type": "string", + "format": "uri" + }, + "current_user_repositories_url": { + "type": "string", + "format": "uri" + }, + "starred_url": { "type": "string", "format": "uri" }, + "starred_gists_url": { "type": "string", "format": "uri" }, + "topic_search_url": { "type": "string", "format": "uri" }, + "user_url": { "type": "string", "format": "uri" }, + "user_organizations_url": { + "type": "string", + "format": "uri" + }, + "user_repositories_url": { + "type": "string", + "format": "uri" + }, + "user_search_url": { "type": "string", "format": "uri" } + }, + "required": [ + "current_user_url", + "current_user_authorizations_html_url", + "authorizations_url", + "code_search_url", + "commit_search_url", + "emails_url", + "emojis_url", + "events_url", + "feeds_url", + "followers_url", + "following_url", + "gists_url", + "hub_url", + "issue_search_url", + "issues_url", + "keys_url", + "label_search_url", + "notifications_url", + "organization_url", + "organization_repositories_url", + "organization_teams_url", + "public_gists_url", + "rate_limit_url", + "repository_url", + "repository_search_url", + "current_user_repositories_url", + "starred_url", + "starred_gists_url", + "user_url", + "user_organizations_url", + "user_repositories_url", + "user_search_url" + ] + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "meta" + }, + "x-octokit": {} + } + }, + "/app": { + "get": { + "summary": "Get the authenticated app", + "description": "Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the `installations_count` in the response. For more details about your app's installations, see the \"[List installations for the authenticated app](https://docs.github.com/rest/reference/apps#list-installations-for-the-authenticated-app)\" endpoint.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/get-authenticated", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/apps/#get-the-authenticated-app" + }, + "parameters": [], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/integration" }, + "examples": { + "default": { "$ref": "#/components/examples/integration" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "apps", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/app-manifests/{code}/conversions": { + "post": { + "summary": "Create a GitHub App from a manifest", + "description": "Use this endpoint to complete the handshake necessary when implementing the [GitHub App Manifest flow](https://docs.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/). When you create a GitHub App with the manifest flow, you receive a temporary `code` used to retrieve the GitHub App's `id`, `pem` (private key), and `webhook_secret`.", + "tags": ["apps"], + "operationId": "apps/create-from-manifest", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/apps/#create-a-github-app-from-a-manifest" + }, + "parameters": [ + { + "name": "code", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { + "allOf": [ + { "$ref": "#/components/schemas/integration" }, + { + "type": "object", + "properties": { + "client_id": { "type": "string" }, + "client_secret": { "type": "string" }, + "webhook_secret": { "type": "string" }, + "pem": { "type": "string" } + }, + "required": [ + "client_id", + "client_secret", + "webhook_secret", + "pem" + ], + "additionalProperties": true + } + ] + }, + "examples": { + "default": { + "$ref": "#/components/examples/integration-from-manifest" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed_simple" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/app/hook/config": { + "get": { + "summary": "Get a webhook configuration for an app", + "description": "Returns the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see \"[Creating a GitHub App](/developers/apps/creating-a-github-app).\"\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/get-webhook-config-for-app", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/apps#get-a-webhook-configuration-for-an-app" + }, + "responses": { + "200": { + "description": "Default response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/webhook-config" }, + "examples": { + "default": { "$ref": "#/components/examples/webhook-config" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": "webhooks" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a webhook configuration for an app", + "description": "Updates the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see \"[Creating a GitHub App](/developers/apps/creating-a-github-app).\"\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/update-webhook-config-for-app", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/apps#update-a-webhook-configuration-for-an-app" + }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "url": { "$ref": "#/components/schemas/webhook-config-url" }, + "content_type": { + "$ref": "#/components/schemas/webhook-config-content-type" + }, + "secret": { + "$ref": "#/components/schemas/webhook-config-secret" + }, + "insecure_ssl": { + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + } + }, + "example": { + "content_type": "json", + "insecure_ssl": "0", + "secret": "********", + "url": "https://example.com/webhook" + } + } + } + } + }, + "responses": { + "200": { + "description": "Default response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/webhook-config" }, + "examples": { + "default": { "$ref": "#/components/examples/webhook-config" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": "webhooks" + }, + "x-octokit": {} + } + }, + "/app/installations": { + "get": { + "summary": "List installations for the authenticated app", + "description": "You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.\n\nThe permissions the installation has are included under the `permissions` key.", + "tags": ["apps"], + "operationId": "apps/list-installations", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/apps/#list-installations-for-the-authenticated-app" + }, + "parameters": [ + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" }, + { "$ref": "#/components/parameters/since" }, + { + "name": "outdated", + "in": "query", + "required": false, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "The permissions the installation has are included under the `permissions` key.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/installation" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/base-installation-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "apps", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/app/installations/{installation_id}": { + "get": { + "summary": "Get an installation for the authenticated app", + "description": "Enables an authenticated GitHub App to find an installation's information using the installation id. The installation's account type (`target_type`) will be either an organization or a user account, depending which account the repository belongs to.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/get-installation", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/apps/#get-an-installation-for-the-authenticated-app" + }, + "parameters": [{ "$ref": "#/components/parameters/installation_id" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/installation" }, + "examples": { + "default": { + "$ref": "#/components/examples/base-installation" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "apps", + "subcategory": null + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete an installation for the authenticated app", + "description": "Uninstalls a GitHub App on a user, organization, or business account. If you prefer to temporarily suspend an app's access to your account's resources, then we recommend the \"[Suspend an app installation](https://docs.github.com/v3/apps/#suspend-an-app-installation)\" endpoint.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/delete-installation", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/apps/#delete-an-installation-for-the-authenticated-app" + }, + "parameters": [{ "$ref": "#/components/parameters/installation_id" }], + "responses": { + "204": { "description": "Empty response" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/app/installations/{installation_id}/access_tokens": { + "post": { + "summary": "Create an installation access token for an app", + "description": "Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of `401 - Unauthorized`, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access. To restrict the access to specific repositories, you can provide the `repository_ids` when creating the token. When you omit `repository_ids`, the response does not contain the `repositories` key.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/create-installation-access-token", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/apps/#create-an-installation-access-token-for-an-app" + }, + "parameters": [{ "$ref": "#/components/parameters/installation_id" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "repositories": { + "description": "List of repository names that the token should have access to", + "type": "array", + "items": { "type": "string", "example": "rails" } + }, + "repository_ids": { + "description": "List of repository IDs that the token should have access to", + "example": [1], + "type": "array", + "items": { "type": "integer" } + }, + "permissions": { + "type": "object", + "properties": { + "contents": { "type": "string" }, + "issues": { "type": "string" }, + "deployments": { "type": "string" }, + "single_file": { "type": "string" }, + "def_not_a_repo": { + "type": "string", + "example": "\"read\"" + } + }, + "example": { + "contents": "read", + "issues": "read", + "deployments": "write", + "single_file": "read" + } + } + } + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/installation-token" }, + "examples": { + "default": { + "$ref": "#/components/examples/installation-token" + } + } + } + } + }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "apps", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/app/installations/{installation_id}/suspended": { + "put": { + "summary": "Suspend an app installation", + "description": "**Note:** Suspending a GitHub App installation is currently in beta and subject to change. Before you can suspend a GitHub App, the app owner must enable suspending installations for the app by opting-in to the beta. For more information, see \"[Suspending a GitHub App installation](https://docs.github.com/apps/managing-github-apps/suspending-a-github-app-installation/).\"\n\nSuspends a GitHub App on a user, organization, or business account, which blocks the app from accessing the account's resources. When a GitHub App is suspended, the app's access to the GitHub API or webhook events is blocked for that account.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/suspend-installation", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/apps/#suspend-an-app-installation" + }, + "parameters": [{ "$ref": "#/components/parameters/installation_id" }], + "responses": { + "204": { "description": "Empty response" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": null + }, + "x-octokit": {} + }, + "delete": { + "summary": "Unsuspend an app installation", + "description": "**Note:** Suspending a GitHub App installation is currently in beta and subject to change. Before you can suspend a GitHub App, the app owner must enable suspending installations for the app by opting-in to the beta. For more information, see \"[Suspending a GitHub App installation](https://docs.github.com/apps/managing-github-apps/suspending-a-github-app-installation/).\"\n\nRemoves a GitHub App installation suspension.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/unsuspend-installation", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/apps/#unsuspend-an-app-installation" + }, + "parameters": [{ "$ref": "#/components/parameters/installation_id" }], + "responses": { + "204": { "description": "Empty response" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/applications/grants": { + "get": { + "summary": "List your grants", + "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).\n\nYou can use this API to list the set of OAuth applications that have been granted access to your account. Unlike the [list your authorizations](https://docs.github.com/rest/reference/oauth-authorizations#list-your-authorizations) API, this API does not manage individual tokens. This API will return one entry for each OAuth application that has been granted access to your account, regardless of the number of tokens an application has generated for your user. The list of OAuth applications returned matches what is shown on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). The `scopes` returned are the union of scopes authorized for the application. For example, if an application has one token with `repo` scope and another token with `user` scope, the grant will return `[\"repo\", \"user\"]`.", + "tags": ["oauth-authorizations"], + "operationId": "oauth-authorizations/list-grants", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/oauth-authorizations#list-your-grants" + }, + "parameters": [ + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/application-grant" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/application-grant-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "removalDate": "2020-11-13", + "deprecationDate": "2020-02-14", + "category": "oauth-authorizations", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/applications/grants/{grant_id}": { + "get": { + "summary": "Get a single grant", + "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).", + "tags": ["oauth-authorizations"], + "operationId": "oauth-authorizations/get-grant", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/oauth-authorizations#get-a-single-grant" + }, + "parameters": [{ "$ref": "#/components/parameters/grant_id" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/application-grant" }, + "examples": { + "default": { + "$ref": "#/components/examples/application-grant" + } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "removalDate": "2020-11-13", + "deprecationDate": "2020-02-14", + "category": "oauth-authorizations", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a grant", + "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).\n\nDeleting an OAuth application's grant will also delete all OAuth tokens associated with the application for your user. Once deleted, the application has no access to your account and is no longer listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized).", + "tags": ["oauth-authorizations"], + "operationId": "oauth-authorizations/delete-grant", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/oauth-authorizations#delete-a-grant" + }, + "parameters": [{ "$ref": "#/components/parameters/grant_id" }], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "removalDate": "2020-11-13", + "deprecationDate": "2020-02-14", + "category": "oauth-authorizations", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/applications/{client_id}/grant": { + "delete": { + "summary": "Delete an app authorization", + "description": "OAuth application owners can revoke a grant for their OAuth application and a specific user. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid OAuth `access_token` as an input parameter and the grant for the token's owner will be deleted.\nDeleting an OAuth application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized).", + "operationId": "apps/delete-authorization", + "tags": ["apps"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#delete-an-app-authorization" + }, + "parameters": [{ "$ref": "#/components/parameters/client-id" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "The OAuth access token used to authenticate to the GitHub API." + } + } + }, + "example": { + "access_token": "e72e16c7e42f292c6912e7710c838347ae178b4a" + } + } + } + }, + "responses": { + "204": { "description": "Empty response" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": "oauth-applications" + }, + "x-octokit": {} + } + }, + "/applications/{client_id}/grants/{access_token}": { + "delete": { + "summary": "Revoke a grant for an application", + "description": "**Deprecation Notice:** GitHub will discontinue OAuth endpoints that contain `access_token` in the path parameter. We have introduced new endpoints that allow you to securely manage tokens for OAuth Apps by moving `access_token` to the request body. For more information, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/).\n\nOAuth application owners can revoke a grant for their OAuth application and a specific user. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid token as `:access_token` and the grant for the token's owner will be deleted.\n\nDeleting an OAuth application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the Applications settings page under \"Authorized OAuth Apps\" on GitHub](https://github.com/settings/applications#authorized).", + "tags": ["apps"], + "operationId": "apps/revoke-grant-for-application", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#revoke-a-grant-for-an-application" + }, + "parameters": [ + { "$ref": "#/components/parameters/client-id" }, + { "$ref": "#/components/parameters/access-token" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "removalDate": "2021-05-05", + "deprecationDate": "2020-02-14", + "category": "apps", + "subcategory": "oauth-applications" + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/applications/{client_id}/token": { + "post": { + "summary": "Check a token", + "description": "OAuth applications can use a special API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to use this endpoint, where the username is the OAuth application `client_id` and the password is its `client_secret`. Invalid tokens will return `404 NOT FOUND`.", + "tags": ["apps"], + "operationId": "apps/check-token", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#check-a-token" + }, + "parameters": [{ "$ref": "#/components/parameters/client-id" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "access_token": { + "description": "The access_token of the OAuth application.", + "type": "string" + } + }, + "required": ["access_token"], + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/authorization" }, + "examples": { + "default": { + "$ref": "#/components/examples/authorization-with-user" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": "oauth-applications" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Reset a token", + "description": "OAuth applications can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the \"token\" property in the response because changes take effect immediately. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`.", + "tags": ["apps"], + "operationId": "apps/reset-token", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#reset-a-token" + }, + "parameters": [{ "$ref": "#/components/parameters/client-id" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "access_token": { + "description": "The access_token of the OAuth application.", + "type": "string" + } + }, + "required": ["access_token"], + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/authorization" }, + "examples": { + "default": { + "$ref": "#/components/examples/authorization-with-user" + } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": "oauth-applications" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete an app token", + "description": "OAuth application owners can revoke a single token for an OAuth application. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password.", + "tags": ["apps"], + "operationId": "apps/delete-token", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#delete-an-app-token" + }, + "parameters": [{ "$ref": "#/components/parameters/client-id" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "The OAuth access token used to authenticate to the GitHub API." + } + } + }, + "example": { + "access_token": "e72e16c7e42f292c6912e7710c838347ae178b4a" + } + } + } + }, + "responses": { + "204": { "description": "Empty response" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": "oauth-applications" + }, + "x-octokit": {} + } + }, + "/applications/{client_id}/tokens/{access_token}": { + "get": { + "summary": "Check an authorization", + "description": "**Deprecation Notice:** GitHub will discontinue OAuth endpoints that contain `access_token` in the path parameter. We have introduced new endpoints that allow you to securely manage tokens for OAuth Apps by moving `access_token` to the request body. For more information, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/).\n\nOAuth applications can use a special API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`.", + "tags": ["apps"], + "operationId": "apps/check-authorization", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#check-an-authorization" + }, + "parameters": [ + { "$ref": "#/components/parameters/client-id" }, + { "$ref": "#/components/parameters/access-token" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/authorization" }] + }, + "examples": { + "default": { + "$ref": "#/components/examples/authorization-with-user" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "removalDate": "2021-05-05", + "deprecationDate": "2020-02-14", + "category": "apps", + "subcategory": "oauth-applications" + }, + "deprecated": true, + "x-octokit": {} + }, + "post": { + "summary": "Reset an authorization", + "description": "**Deprecation Notice:** GitHub will discontinue OAuth endpoints that contain `access_token` in the path parameter. We have introduced new endpoints that allow you to securely manage tokens for OAuth Apps by moving `access_token` to the request body. For more information, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/).\n\nOAuth applications can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the \"token\" property in the response because changes take effect immediately. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`.", + "tags": ["apps"], + "operationId": "apps/reset-authorization", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#reset-an-authorization" + }, + "parameters": [ + { "$ref": "#/components/parameters/client-id" }, + { "$ref": "#/components/parameters/access-token" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/authorization" }, + "examples": { + "default": { + "$ref": "#/components/examples/authorization-with-user" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "removalDate": "2021-05-05", + "deprecationDate": "2020-02-14", + "category": "apps", + "subcategory": "oauth-applications" + }, + "deprecated": true, + "x-octokit": {} + }, + "delete": { + "summary": "Revoke an authorization for an application", + "description": "**Deprecation Notice:** GitHub will discontinue OAuth endpoints that contain `access_token` in the path parameter. We have introduced new endpoints that allow you to securely manage tokens for OAuth Apps by moving `access_token` to the request body. For more information, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/).\n\nOAuth application owners can revoke a single token for an OAuth application. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password.", + "tags": ["apps"], + "operationId": "apps/revoke-authorization-for-application", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#revoke-an-authorization-for-an-application" + }, + "parameters": [ + { "$ref": "#/components/parameters/client-id" }, + { "$ref": "#/components/parameters/access-token" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "removalDate": "2021-05-05", + "deprecationDate": "2020-02-14", + "category": "apps", + "subcategory": "oauth-applications" + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/apps/{app_slug}": { + "get": { + "summary": "Get an app", + "description": "**Note**: The `:app_slug` is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., `https://github.com/settings/apps/:app_slug`).\n\nIf the GitHub App you specify is public, you can access this endpoint without authenticating. If the GitHub App you specify is private, you must authenticate with a [personal access token](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) or an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/get-by-slug", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/apps/#get-an-app" + }, + "parameters": [{ "$ref": "#/components/parameters/app_slug" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/integration" }, + "examples": { + "default": { "$ref": "#/components/examples/integration" } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "apps", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/authorizations": { + "get": { + "summary": "List your authorizations", + "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).", + "tags": ["oauth-authorizations"], + "operationId": "oauth-authorizations/list-authorizations", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/oauth-authorizations#list-your-authorizations" + }, + "parameters": [ + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/authorization" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/authorization-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "removalDate": "2020-11-13", + "deprecationDate": "2020-02-14", + "category": "oauth-authorizations", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + }, + "post": { + "summary": "Create a new authorization", + "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).\n\n**Warning:** Apps must use the [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api).\n\nCreates OAuth tokens using [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication). If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see \"[Working with two-factor authentication](https://docs.github.com/rest/overview/other-authentication-methods#working-with-two-factor-authentication).\"\n\nTo create tokens for a particular OAuth application using this endpoint, you must authenticate as the user you want to create an authorization for and provide the app's client ID and secret, found on your OAuth application's settings page. If your OAuth application intends to create multiple tokens for one user, use `fingerprint` to differentiate between them.\n\nYou can also create tokens on GitHub from the [personal access tokens settings](https://github.com/settings/tokens) page. Read more about these tokens in [the GitHub Help documentation](https://help.github.com/articles/creating-an-access-token-for-command-line-use).\n\nOrganizations that enforce SAML SSO require personal access tokens to be allowed. Read more about allowing tokens in [the GitHub Help documentation](https://help.github.com/articles/about-identity-and-access-management-with-saml-single-sign-on).", + "tags": ["oauth-authorizations"], + "operationId": "oauth-authorizations/create-authorization", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/oauth-authorizations#create-a-new-authorization" + }, + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "scopes": { + "description": "A list of scopes that this authorization is in.", + "type": "array", + "items": { "type": "string" }, + "example": ["public_repo", "user"], + "nullable": true + }, + "note": { + "description": "A note to remind you what the OAuth token is for.", + "type": "string", + "example": "Update all gems" + }, + "note_url": { + "description": "A URL to remind you what app the OAuth token is for.", + "type": "string" + }, + "client_id": { + "description": "The OAuth app client key for which to create the token.", + "maxLength": 20, + "type": "string" + }, + "client_secret": { + "description": "The OAuth app client secret for which to create the token.", + "maxLength": 40, + "type": "string" + }, + "fingerprint": { + "description": "A unique string to distinguish an authorization from others created for the same client ID and user.", + "type": "string" + } + } + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/authorization" }, + "examples": { + "default": { "$ref": "#/components/examples/authorization" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/authorizations/1", + "schema": { "type": "string" } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "410": { "$ref": "#/components/responses/gone" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "removalDate": "2020-11-13", + "deprecationDate": "2020-02-14", + "category": "oauth-authorizations", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/authorizations/clients/{client_id}": { + "put": { + "summary": "Get-or-create an authorization for a specific app", + "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).\n\n**Warning:** Apps must use the [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api).\n\nCreates a new authorization for the specified OAuth application, only if an authorization for that application doesn't already exist for the user. The URL includes the 20 character client ID for the OAuth app that is requesting the token. It returns the user's existing authorization for the application if one is present. Otherwise, it creates and returns a new one.\n\nIf you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see \"[Working with two-factor authentication](https://docs.github.com/rest/overview/other-authentication-methods#working-with-two-factor-authentication).\"\n\n**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).", + "tags": ["oauth-authorizations"], + "operationId": "oauth-authorizations/get-or-create-authorization-for-app", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/oauth-authorizations#get-or-create-an-authorization-for-a-specific-app" + }, + "parameters": [{ "$ref": "#/components/parameters/client-id" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "client_secret": { + "description": "The OAuth app client secret for which to create the token.", + "maxLength": 40, + "type": "string" + }, + "scopes": { + "description": "A list of scopes that this authorization is in.", + "type": "array", + "items": { "type": "string" }, + "example": ["public_repo", "user"], + "nullable": true + }, + "note": { + "description": "A note to remind you what the OAuth token is for.", + "type": "string", + "example": "Update all gems" + }, + "note_url": { + "description": "A URL to remind you what app the OAuth token is for.", + "type": "string" + }, + "fingerprint": { + "description": "A unique string to distinguish an authorization from others created for the same client ID and user.", + "type": "string" + } + }, + "required": ["client_secret"], + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "Response if returning an existing token", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/authorization" }, + "examples": { + "response-if-returning-an-existing-token": { + "$ref": "#/components/examples/authorization-response-if-returning-an-existing-token-2" + } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/authorizations/1", + "schema": { "type": "string" } + } + } + }, + "201": { + "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/authorization" }, + "examples": { + "default": { "$ref": "#/components/examples/authorization" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/authorizations/1", + "schema": { "type": "string" } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "removalDate": "2020-11-13", + "deprecationDate": "2020-02-14", + "category": "oauth-authorizations", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/authorizations/clients/{client_id}/{fingerprint}": { + "put": { + "summary": "Get-or-create an authorization for a specific app and fingerprint", + "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).\n\n**Warning:** Apps must use the [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api).\n\nThis method will create a new authorization for the specified OAuth application, only if an authorization for that application and fingerprint do not already exist for the user. The URL includes the 20 character client ID for the OAuth app that is requesting the token. `fingerprint` is a unique string to distinguish an authorization from others created for the same client ID and user. It returns the user's existing authorization for the application if one is present. Otherwise, it creates and returns a new one.\n\nIf you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see \"[Working with two-factor authentication](https://docs.github.com/rest/overview/other-authentication-methods#working-with-two-factor-authentication).\"", + "tags": ["oauth-authorizations"], + "operationId": "oauth-authorizations/get-or-create-authorization-for-app-and-fingerprint", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/oauth-authorizations#get-or-create-an-authorization-for-a-specific-app-and-fingerprint" + }, + "parameters": [ + { "$ref": "#/components/parameters/client-id" }, + { + "name": "fingerprint", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "client_secret": { + "description": "The OAuth app client secret for which to create the token.", + "maxLength": 40, + "type": "string" + }, + "scopes": { + "description": "A list of scopes that this authorization is in.", + "type": "array", + "items": { "type": "string" }, + "example": ["public_repo", "user"], + "nullable": true + }, + "note": { + "description": "A note to remind you what the OAuth token is for.", + "type": "string", + "example": "Update all gems" + }, + "note_url": { + "description": "A URL to remind you what app the OAuth token is for.", + "type": "string" + } + }, + "required": ["client_secret"], + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "Response if returning an existing token", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/authorization" }, + "examples": { + "response-if-returning-an-existing-token": { + "$ref": "#/components/examples/authorization-response-if-returning-an-existing-token" + } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/authorizations/1", + "schema": { "type": "string" } + } + } + }, + "201": { + "description": "Response if returning a new token", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/authorization" }, + "examples": { + "default": { "$ref": "#/components/examples/authorization-3" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/authorizations/1", + "schema": { "type": "string" } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "removalDate": "2020-11-13", + "deprecationDate": "2020-02-14", + "category": "oauth-authorizations", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/authorizations/{authorization_id}": { + "get": { + "summary": "Get a single authorization", + "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).", + "tags": ["oauth-authorizations"], + "operationId": "oauth-authorizations/get-authorization", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/oauth-authorizations#get-a-single-authorization" + }, + "parameters": [{ "$ref": "#/components/parameters/authorization_id" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/authorization" }, + "examples": { + "default": { "$ref": "#/components/examples/authorization-2" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "removalDate": "2020-11-13", + "deprecationDate": "2020-02-14", + "category": "oauth-authorizations", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + }, + "patch": { + "summary": "Update an existing authorization", + "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).\n\nIf you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see \"[Working with two-factor authentication](https://docs.github.com/rest/overview/other-authentication-methods#working-with-two-factor-authentication).\"\n\nYou can only send one of these scope keys at a time.", + "tags": ["oauth-authorizations"], + "operationId": "oauth-authorizations/update-authorization", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/oauth-authorizations#update-an-existing-authorization" + }, + "parameters": [{ "$ref": "#/components/parameters/authorization_id" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "scopes": { + "description": "A list of scopes that this authorization is in.", + "type": "array", + "items": { "type": "string" }, + "example": ["public_repo", "user"], + "nullable": true + }, + "add_scopes": { + "description": "A list of scopes to add to this authorization.", + "type": "array", + "items": { "type": "string" } + }, + "remove_scopes": { + "description": "A list of scopes to remove from this authorization.", + "type": "array", + "items": { "type": "string" } + }, + "note": { + "description": "A note to remind you what the OAuth token is for.", + "type": "string", + "example": "Update all gems" + }, + "note_url": { + "description": "A URL to remind you what app the OAuth token is for.", + "type": "string" + }, + "fingerprint": { + "description": "A unique string to distinguish an authorization from others created for the same client ID and user.", + "type": "string" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/authorization" }, + "examples": { + "default": { "$ref": "#/components/examples/authorization-2" } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "removalDate": "2020-11-13", + "deprecationDate": "2020-02-14", + "category": "oauth-authorizations", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + }, + "delete": { + "summary": "Delete an authorization", + "description": "**Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/).", + "tags": ["oauth-authorizations"], + "operationId": "oauth-authorizations/delete-authorization", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/oauth-authorizations#delete-an-authorization" + }, + "parameters": [{ "$ref": "#/components/parameters/authorization_id" }], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "removalDate": "2020-11-13", + "deprecationDate": "2020-02-14", + "category": "oauth-authorizations", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/codes_of_conduct": { + "get": { + "summary": "Get all codes of conduct", + "description": "", + "tags": ["codes-of-conduct"], + "operationId": "codes-of-conduct/get-all-codes-of-conduct", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/codes_of_conduct/#get-all-codes-of-conduct" + }, + "parameters": [], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/code-of-conduct" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-of-conduct-simple-items" + } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "scarlet-witch", + "note": "The Codes of Conduct API is currently available for developers to preview.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.scarlet-witch-preview+json\n```" + } + ], + "category": "codes-of-conduct", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/codes_of_conduct/{key}": { + "get": { + "summary": "Get a code of conduct", + "description": "", + "tags": ["codes-of-conduct"], + "operationId": "codes-of-conduct/get-conduct-code", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/codes_of_conduct/#get-a-code-of-conduct" + }, + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/code-of-conduct" }, + "examples": { + "default": { "$ref": "#/components/examples/code-of-conduct" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "scarlet-witch", + "note": "The Codes of Conduct API is currently available for developers to preview.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.scarlet-witch-preview+json\n```" + } + ], + "category": "codes-of-conduct", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/content_references/{content_reference_id}/attachments": { + "post": { + "summary": "Create a content attachment", + "description": "Creates an attachment under a content reference URL in the body or comment of an issue or pull request. Use the `id` of the content reference from the [`content_reference` event](https://docs.github.com/webhooks/event-payloads/#content_reference) to create an attachment.\n\nThe app must create a content attachment within six hours of the content reference URL being posted. See \"[Using content attachments](https://docs.github.com/apps/using-content-attachments/)\" for details about content attachments.\n\nYou must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/create-content-attachment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#create-a-content-attachment" + }, + "parameters": [ + { + "name": "content_reference_id", + "in": "path", + "required": true, + "schema": { "type": "integer" } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "title": { + "description": "The title of the attachment", + "example": "Title of the attachment", + "type": "string", + "maxLength": 1024 + }, + "body": { + "description": "The body of the attachment", + "example": "Body of the attachment", + "type": "string", + "maxLength": 262144 + } + }, + "required": ["title", "body"], + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/content-reference-attachment" + }, + "examples": { + "default": { + "$ref": "#/components/examples/content-reference-attachment" + } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "410": { "$ref": "#/components/responses/gone" }, + "415": { "$ref": "#/components/responses/preview_header_missing" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "corsair", + "note": "To access the Content Attachments API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.corsair-preview+json\n```" + } + ], + "category": "apps", + "subcategory": "installations" + }, + "x-octokit": {} + } + }, + "/emojis": { + "get": { + "summary": "Get emojis", + "description": "Lists all the emojis available to use on GitHub.", + "operationId": "emojis/get", + "tags": ["emojis"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/emojis/#get-emojis" + }, + "parameters": [], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { "type": "string" } + } + } + }, + "description": "response" + }, + "304": { "$ref": "#/components/responses/not_modified" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "emojis", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/enterprises/{enterprise}/actions/permissions": { + "get": { + "summary": "Get GitHub Actions permissions for an enterprise", + "description": "Gets the GitHub Actions permissions policy for organizations and allowed actions in an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/get-github-actions-permissions-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#get-github-actions-permissions-for-an-enterprise" + }, + "parameters": [{ "$ref": "#/components/parameters/enterprise" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-enterprise-permissions" + }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-enterprise-permissions" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set GitHub Actions permissions for an enterprise", + "description": "Sets the GitHub Actions permissions policy for organizations and allowed actions in an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/set-github-actions-permissions-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#set-github-actions-permissions-for-an-enterprise" + }, + "parameters": [{ "$ref": "#/components/parameters/enterprise" }], + "responses": { "204": { "description": "Empty response" } }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "enabled_organizations": { + "$ref": "#/components/schemas/enabled-organizations" + }, + "allowed_actions": { + "$ref": "#/components/schemas/allowed-actions" + } + }, + "required": ["enabled_organizations"] + }, + "example": { + "enabled_organizations": "all", + "allowed_actions": "selected" + } + } + } + }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + } + }, + "/enterprises/{enterprise}/actions/permissions/organizations": { + "get": { + "summary": "List selected organizations enabled for GitHub Actions in an enterprise", + "description": "Lists the organizations that are selected to have GitHub Actions enabled in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise).\"\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/list-selected-organizations-enabled-github-actions-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#list-selected-organizations-enabled-for-github-actions-in-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "number" }, + "organizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-simple" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/organization-targets" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set selected organizations enabled for GitHub Actions in an enterprise", + "description": "Replaces the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise).\"\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/set-selected-organizations-enabled-github-actions-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#set-selected-organizations-enabled-for-github-actions-in-an-enterprise" + }, + "parameters": [{ "$ref": "#/components/parameters/enterprise" }], + "responses": { "204": { "description": "Empty response" } }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selected_organization_ids": { + "description": "List of organization IDs to enable for GitHub Actions.", + "type": "array", + "items": { + "type": "integer", + "description": "Unique identifier of the organization." + } + } + }, + "required": ["selected_organization_ids"] + }, + "example": { "selected_organization_ids": [32, 91] } + } + } + }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + } + }, + "/enterprises/{enterprise}/actions/permissions/organizations/{org_id}": { + "put": { + "summary": "Enable a selected organization for GitHub Actions in an enterprise", + "description": "Adds an organization to the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise).\"\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/enable-selected-organization-github-actions-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#enable-a-selected-organization-for-github-actions-in-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/org_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Disable a selected organization for GitHub Actions in an enterprise", + "description": "Removes an organization from the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise).\"\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/disable-selected-organization-github-actions-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#disable-a-selected-organization-for-github-actions-in-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/org_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + } + }, + "/enterprises/{enterprise}/actions/permissions/selected-actions": { + "get": { + "summary": "Get allowed actions for an enterprise", + "description": "Gets the selected actions that are allowed in an enterprise. To use this endpoint, the enterprise permission policy for `allowed_actions` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise).\"\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/get-allowed-actions-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#get-allowed-actions-for-an-enterprise" + }, + "parameters": [{ "$ref": "#/components/parameters/enterprise" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/selected-actions" }, + "examples": { + "default": { + "$ref": "#/components/examples/selected-actions" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set allowed actions for an enterprise", + "description": "Sets the actions that are allowed in an enterprise. To use this endpoint, the enterprise permission policy for `allowed_actions` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise).\"\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/set-allowed-actions-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#set-allowed-actions-for-an-enterprise" + }, + "parameters": [{ "$ref": "#/components/parameters/enterprise" }], + "responses": { "204": { "description": "Empty response" } }, + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/selected-actions" }, + "examples": { + "selected_actions": { + "$ref": "#/components/examples/selected-actions" + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + } + }, + "/enterprises/{enterprise}/actions/runner-groups": { + "get": { + "summary": "List self-hosted runner groups for an enterprise", + "description": "Lists all self-hosted runner groups for an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/list-self-hosted-runner-groups-for-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#list-self-hosted-runner-groups-for-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "number" }, + "runner_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/runner-groups-enterprise" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/runner-groups-enterprise" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a self-hosted runner group for an enterprise", + "description": "Creates a new self-hosted runner group for an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/create-self-hosted-runner-group-for-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#create-self-hosted-runner-group-for-an-enterprise" + }, + "parameters": [{ "$ref": "#/components/parameters/enterprise" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the runner group.", + "type": "string" + }, + "visibility": { + "description": "Visibility of a runner group. You can select all organizations or select individual organization. Can be one of: `all` or `selected`", + "type": "string", + "enum": ["selected", "all"] + }, + "selected_organization_ids": { + "description": "List of organization IDs that can access the runner group.", + "type": "array", + "items": { + "type": "integer", + "description": "Unique identifier of the organization." + } + }, + "runners": { + "description": "List of runner IDs to add to the runner group.", + "type": "array", + "items": { + "type": "integer", + "description": "Unique identifier of the runner." + } + } + }, + "required": ["name"] + }, + "example": { + "name": "Expensive hardware runners", + "visibility": "selected", + "selected_organization_ids": [32, 91], + "runners": [9, 2] + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/runner-groups-enterprise" + }, + "examples": { + "default": { + "$ref": "#/components/examples/runner-group-enterprise" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + } + }, + "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}": { + "get": { + "summary": "Get a self-hosted runner group for an enterprise", + "description": "Gets a specific self-hosted runner group for an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/get-self-hosted-runner-group-for-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#get-a-self-hosted-runner-group-for-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/runner_group_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/runner-groups-enterprise" + }, + "examples": { + "default": { + "$ref": "#/components/examples/runner-group-enterprise" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a self-hosted runner group for an enterprise", + "description": "Updates the `name` and `visibility` of a self-hosted runner group in an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/update-self-hosted-runner-group-for-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#update-a-self-hosted-runner-group-for-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/runner_group_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the runner group.", + "type": "string" + }, + "visibility": { + "description": "Visibility of a runner group. You can select all organizations or select individual organizations. Can be one of: `all` or `selected`", + "type": "string", + "enum": ["selected", "all"], + "default": "all" + } + } + }, + "example": { + "name": "Expensive hardware runners", + "visibility": "selected" + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/runner-groups-enterprise" + }, + "examples": { + "default": { + "$ref": "#/components/examples/runner-group-update-enterprise" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a self-hosted runner group from an enterprise", + "description": "Deletes a self-hosted runner group for an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/delete-self-hosted-runner-group-from-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#delete-a-self-hosted-runner-group-from-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/runner_group_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + } + }, + "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations": { + "get": { + "summary": "List organization access to a self-hosted runner group in an enterprise", + "description": "Lists the organizations with access to a self-hosted runner group.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/list-org-access-to-self-hosted-runner-group-in-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#list-organization-access-to-a-self-hosted-runner-group-in-a-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/runner_group_id" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "number" }, + "organizations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-simple" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/organization-targets" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set organization access for a self-hosted runner group in an enterprise", + "description": "Replaces the list of organizations that have access to a self-hosted runner configured in an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/set-org-access-to-self-hosted-runner-group-in-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#set-organization-access-to-a-self-hosted-runner-group-in-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/runner_group_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selected_organization_ids": { + "description": "List of organization IDs that can access the runner group.", + "type": "array", + "items": { + "type": "integer", + "description": "Unique identifier of the organization." + } + } + }, + "required": ["selected_organization_ids"] + }, + "example": { "selected_organization_ids": [32, 91] } + } + } + }, + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + } + }, + "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations/{org_id}": { + "put": { + "summary": "Add organization access to a self-hosted runner group in an enterprise", + "description": "Adds an organization to the list of selected organizations that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see \"[Create a self-hosted runner group for an enterprise](#create-a-self-hosted-runner-group-for-an-enterprise).\"\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/add-org-access-to-self-hosted-runner-group-in-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#add-organization-access-to-a-self-hosted-runner-group-in-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/runner_group_id" }, + { "$ref": "#/components/parameters/org_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove organization access to a self-hosted runner group in an enterprise", + "description": "Removes an organization from the list of selected organizations that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see \"[Create a self-hosted runner group for an enterprise](#create-a-self-hosted-runner-group-for-an-enterprise).\"\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/remove-org-access-to-self-hosted-runner-group-in-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#remove-organization-access-to-a-self-hosted-runner-group-in-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/runner_group_id" }, + { "$ref": "#/components/parameters/org_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + } + }, + "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners": { + "get": { + "summary": "List self-hosted runners in a group for an enterprise", + "description": "Lists the self-hosted runners that are in a specific enterprise group.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/list-self-hosted-runners-in-group-for-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#list-self-hosted-runners-in-a-group-for-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/runner_group_id" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "number" }, + "runners": { + "type": "array", + "items": { "$ref": "#/components/schemas/runner" } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/runner-paginated" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set self-hosted runners in a group for an enterprise", + "description": "Replaces the list of self-hosted runners that that are part of an enterprise runner group.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/set-self-hosted-runners-in-group-for-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#set-self-hosted-runners-in-a-group-for-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/runner_group_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "runners": { + "description": "List of runner IDs to add to the runner group.", + "type": "array", + "items": { + "type": "integer", + "description": "Unique identifier of the runner." + } + } + }, + "required": ["runners"] + }, + "example": { "runners": [9, 2] } + } + } + }, + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + } + }, + "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners/{runner_id}": { + "put": { + "summary": "Add a self-hosted runner to a group for an enterprise", + "description": "Adds a self-hosted runner to a runner group configured in an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise`\nscope to use this endpoint.", + "operationId": "enterprise-admin/add-self-hosted-runner-to-group-for-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#add-a-self-hosted-runner-to-a-group-for-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/runner_group_id" }, + { "$ref": "#/components/parameters/runner_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove a self-hosted runner from a group for an enterprise", + "description": "Removes a self-hosted runner from a group configured in an enterprise. The runner is then returned to the default group.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/remove-self-hosted-runner-from-group-for-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#remove-a-self-hosted-runner-from-a-group-for-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/runner_group_id" }, + { "$ref": "#/components/parameters/runner_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + } + }, + "/enterprises/{enterprise}/actions/runners": { + "get": { + "summary": "List self-hosted runners for an enterprise", + "description": "Lists all self-hosted runners configured for an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/list-self-hosted-runners-for-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#list-self-hosted-runners-for-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "number" }, + "runners": { + "type": "array", + "items": { "$ref": "#/components/schemas/runner" } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/runner-paginated" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + } + }, + "/enterprises/{enterprise}/actions/runners/downloads": { + "get": { + "summary": "List runner applications for an enterprise", + "description": "Lists binaries for the runner application that you can download and run.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/list-runner-applications-for-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#list-runner-applications-for-an-enterprise" + }, + "parameters": [{ "$ref": "#/components/parameters/enterprise" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/runner-application" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/runner-application-items" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + } + }, + "/enterprises/{enterprise}/actions/runners/registration-token": { + "post": { + "summary": "Create a registration token for an enterprise", + "description": "Returns a token that you can pass to the `config` script. The token expires after one hour.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.\n\n#### Example using registration token\n\nConfigure your self-hosted runner, replacing `TOKEN` with the registration token provided by this endpoint.\n\n```\n./config.sh --url https://github.com/enterprises/octo-enterprise --token TOKEN\n```", + "operationId": "enterprise-admin/create-registration-token-for-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#create-a-registration-token-for-an-enterprise" + }, + "parameters": [{ "$ref": "#/components/parameters/enterprise" }], + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/authentication-token" + }, + "examples": { + "default": { + "$ref": "#/components/examples/authentication-token" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + } + }, + "/enterprises/{enterprise}/actions/runners/remove-token": { + "post": { + "summary": "Create a remove token for an enterprise", + "description": "Returns a token that you can pass to the `config` script to remove a self-hosted runner from an enterprise. The token expires after one hour.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.\n\n#### Example using remove token\n\nTo remove your self-hosted runner from an enterprise, replace `TOKEN` with the remove token provided by this\nendpoint.\n\n```\n./config.sh remove --token TOKEN\n```", + "operationId": "enterprise-admin/create-remove-token-for-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#create-a-remove-token-for-an-enterprise" + }, + "parameters": [{ "$ref": "#/components/parameters/enterprise" }], + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/authentication-token" + }, + "examples": { + "default": { + "$ref": "#/components/examples/authentication-token-2" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + } + }, + "/enterprises/{enterprise}/actions/runners/{runner_id}": { + "get": { + "summary": "Get a self-hosted runner for an enterprise", + "description": "Gets a specific self-hosted runner configured in an enterprise.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/get-self-hosted-runner-for-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#get-a-self-hosted-runner-for-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/runner_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/runner" }, + "examples": { + "default": { "$ref": "#/components/examples/runner" } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a self-hosted runner from an enterprise", + "description": "Forces the removal of a self-hosted runner from an enterprise. You can use this endpoint to completely remove the runner when the machine you were using no longer exists.\n\nYou must authenticate using an access token with the `admin:enterprise` scope to use this endpoint.", + "operationId": "enterprise-admin/delete-self-hosted-runner-from-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#delete-self-hosted-runner-from-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/runner_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "enabledForGitHubApps": false, + "githubCloudOnly": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "actions" + }, + "x-octokit": {} + } + }, + "/enterprises/{enterprise}/audit-log": { + "get": { + "summary": "Get the audit log for an enterprise", + "description": "**Note:** The audit log REST API is currently in beta and is subject to change. To join the beta, talk to your services or sales contact at GitHub.\n\nGets the audit log for an enterprise. To use this endpoint, you must be an enterprise admin, and you must use an access token with the `admin:enterprise` scope.", + "operationId": "audit-log/get-audit-log", + "tags": ["audit-log"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#get-the-audit-log-for-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/audit-log-phrase" }, + { "$ref": "#/components/parameters/audit-log-include" }, + { "$ref": "#/components/parameters/audit-log-after" }, + { "$ref": "#/components/parameters/audit-log-before" }, + { "$ref": "#/components/parameters/per_page" } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/audit-log-event" } + }, + "examples": { + "default": { "$ref": "#/components/examples/audit-log" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "audit-log" + }, + "x-octokit": {} + } + }, + "/enterprises/{enterprise}/settings/billing/actions": { + "get": { + "summary": "Get GitHub Actions billing for an enterprise", + "description": "Gets the summary of the free and paid GitHub Actions minutes used.\n\nPaid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see \"[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)\".\n\nThe authenticated user must be an enterprise admin.", + "operationId": "billing/get-github-actions-billing-ghe", + "tags": ["billing"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/billing/#get-github-actions-billing-for-an-enterprise" + }, + "parameters": [{ "$ref": "#/components/parameters/enterprise" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-billing-usage" + }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-billing-usage" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "billing" + }, + "x-octokit": {} + } + }, + "/enterprises/{enterprise}/settings/billing/packages": { + "get": { + "summary": "Get GitHub Packages billing for an enterprise", + "description": "Gets the free and paid storage used for GitHub Packages in gigabytes.\n\nPaid minutes only apply to packages stored for private repositories. For more information, see \"[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages).\"\n\nThe authenticated user must be an enterprise admin.", + "operationId": "billing/get-github-packages-billing-ghe", + "tags": ["billing"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/billing/#get-github-packages-billing-for-an-enterprise" + }, + "parameters": [{ "$ref": "#/components/parameters/enterprise" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/packages-billing-usage" + }, + "examples": { + "default": { + "$ref": "#/components/examples/packages-billing-usage" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "billing" + }, + "x-octokit": {} + } + }, + "/enterprises/{enterprise}/settings/billing/shared-storage": { + "get": { + "summary": "Get shared storage billing for an enterprise", + "description": "Gets the estimated paid and estimated total storage used for GitHub Actions and Github Packages.\n\nPaid minutes only apply to packages stored for private repositories. For more information, see \"[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages).\"\n\nThe authenticated user must be an enterprise admin.", + "operationId": "billing/get-shared-storage-billing-ghe", + "tags": ["billing"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/billing/#get-shared-storage-billing-for-an-enterprise" + }, + "parameters": [{ "$ref": "#/components/parameters/enterprise" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/combined-billing-usage" + }, + "examples": { + "default": { + "$ref": "#/components/examples/combined-billing-usage" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": false, + "previews": [], + "category": "enterprise-admin", + "subcategory": "billing" + }, + "x-octokit": {} + } + }, + "/events": { + "get": { + "summary": "List public events", + "description": "We delay the public events feed by five minutes, which means the most recent event returned by the public events API actually occurred at least five minutes ago.", + "tags": ["activity"], + "operationId": "activity/list-public-events", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#list-public-events" + }, + "parameters": [ + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/event" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "503": { "$ref": "#/components/responses/service_unavailable" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "activity", + "subcategory": "events" + }, + "x-octokit": {} + } + }, + "/feeds": { + "get": { + "summary": "Get feeds", + "description": "GitHub provides several timeline resources in [Atom](http://en.wikipedia.org/wiki/Atom_(standard)) format. The Feeds API lists all the feeds available to the authenticated user:\n\n* **Timeline**: The GitHub global public timeline\n* **User**: The public timeline for any user, using [URI template](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia)\n* **Current user public**: The public timeline for the authenticated user\n* **Current user**: The private timeline for the authenticated user\n* **Current user actor**: The private timeline for activity created by the authenticated user\n* **Current user organizations**: The private timeline for the organizations the authenticated user is a member of.\n* **Security advisories**: A collection of public announcements that provide information about security-related vulnerabilities in software on GitHub.\n\n**Note**: Private feeds are only returned when [authenticating via Basic Auth](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) since current feed URIs use the older, non revocable auth tokens.", + "tags": ["activity"], + "operationId": "activity/get-feeds", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#get-feeds" + }, + "parameters": [], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/feed" }, + "examples": { + "default": { "$ref": "#/components/examples/feed" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "activity", + "subcategory": "feeds" + }, + "x-octokit": {} + } + }, + "/gists": { + "get": { + "summary": "List gists for the authenticated user", + "description": "Lists the authenticated user's gists or if called anonymously, this endpoint returns all public gists:", + "tags": ["gists"], + "operationId": "gists/list", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/gists/#list-gists-for-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/since" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/base-gist" } + }, + "examples": { + "default": { "$ref": "#/components/examples/base-gist-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "gists", + "subcategory": null + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a gist", + "description": "Allows you to add a new gist with one or more files.\n\n**Note:** Don't name your files \"gistfile\" with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally.", + "operationId": "gists/create", + "tags": ["gists"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/gists/#create-a-gist" + }, + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "description": { + "description": "Description of the gist", + "example": "Example Ruby script", + "type": "string" + }, + "files": { + "description": "Names and content for the files that make up the gist", + "example": { + "hello.rb": { "content": "puts \"Hello, World!\"" } + }, + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "content": { + "description": "Content of the file", + "readOnly": false, + "type": "string" + } + }, + "required": ["content"] + } + }, + "public": { + "oneOf": [ + { + "description": "Flag indicating whether the gist is public", + "example": true, + "type": "boolean", + "default": false + }, + { + "type": "string", + "example": "true", + "default": "false", + "enum": ["true", "false"] + } + ] + } + }, + "required": ["files"], + "type": "object" + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/gist-full" }, + "examples": { + "default": { "$ref": "#/components/examples/gist" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/gists/aa5a315d61ae9438b18d", + "schema": { "type": "string" } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "gists", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/gists/public": { + "get": { + "summary": "List public gists", + "description": "List public gists sorted by most recently updated to least recently updated.\n\nNote: With [pagination](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination), you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page.", + "tags": ["gists"], + "operationId": "gists/list-public", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/gists/#list-public-gists" + }, + "parameters": [ + { "$ref": "#/components/parameters/since" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/base-gist" } + }, + "examples": { + "default": { "$ref": "#/components/examples/base-gist-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "gists", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/gists/starred": { + "get": { + "summary": "List starred gists", + "description": "List the authenticated user's starred gists:", + "tags": ["gists"], + "operationId": "gists/list-starred", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/gists/#list-starred-gists" + }, + "parameters": [ + { "$ref": "#/components/parameters/since" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/base-gist" } + }, + "examples": { + "default": { "$ref": "#/components/examples/base-gist-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "gists", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/gists/{gist_id}": { + "get": { + "summary": "Get a gist", + "description": "", + "tags": ["gists"], + "operationId": "gists/get", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/gists/#get-a-gist" + }, + "parameters": [{ "$ref": "#/components/parameters/gist_id" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/gist-full" }, + "examples": { + "default": { "$ref": "#/components/examples/gist" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden_gist" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "gists", + "subcategory": null + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a gist", + "description": "Allows you to update or delete a gist file and rename gist files. Files from the previous version of the gist that aren't explicitly changed during an edit are unchanged.", + "tags": ["gists"], + "operationId": "gists/update", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/gists/#update-a-gist" + }, + "parameters": [{ "$ref": "#/components/parameters/gist_id" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "description": { + "description": "Description of the gist", + "example": "Example Ruby script", + "type": "string" + }, + "files": { + "description": "Names of files to be updated", + "example": { + "hello.rb": { + "content": "blah", + "filename": "goodbye.rb" + } + }, + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "content": { + "description": "The new content of the file", + "type": "string" + }, + "filename": { + "description": "The new filename for the file", + "type": "string", + "nullable": true + } + }, + "nullable": true + } + } + }, + "anyOf": [ + { "required": ["description"] }, + { "required": ["files"] } + ], + "type": "object", + "nullable": true + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/gist-full" }, + "examples": { + "default": { "$ref": "#/components/examples/gist-3" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "gists", + "subcategory": null + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a gist", + "description": "", + "tags": ["gists"], + "operationId": "gists/delete", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/gists/#delete-a-gist" + }, + "parameters": [{ "$ref": "#/components/parameters/gist_id" }], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "gists", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/gists/{gist_id}/comments": { + "get": { + "summary": "List gist comments", + "description": "", + "tags": ["gists"], + "operationId": "gists/list-comments", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/gists#list-gist-comments" + }, + "parameters": [ + { "$ref": "#/components/parameters/gist_id" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/gist-comment" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/gist-comment-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "gists", + "subcategory": "comments" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a gist comment", + "description": "", + "tags": ["gists"], + "operationId": "gists/create-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/gists#create-a-gist-comment" + }, + "parameters": [{ "$ref": "#/components/parameters/gist_id" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "body": { + "description": "The comment text.", + "type": "string", + "maxLength": 65535, + "example": "Body of the attachment" + } + }, + "type": "object", + "required": ["body"] + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/gist-comment" }, + "examples": { + "default": { "$ref": "#/components/examples/gist-comment" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/gists/a6db0bec360bb87e9418/comments/1", + "schema": { "type": "string" } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "gists", + "subcategory": "comments" + }, + "x-octokit": {} + } + }, + "/gists/{gist_id}/comments/{comment_id}": { + "get": { + "summary": "Get a gist comment", + "description": "", + "tags": ["gists"], + "operationId": "gists/get-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/gists#get-a-gist-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/gist_id" }, + { "$ref": "#/components/parameters/comment_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/gist-comment" }, + "examples": { + "default": { "$ref": "#/components/examples/gist-comment" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden_gist" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "gists", + "subcategory": "comments" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a gist comment", + "description": "", + "tags": ["gists"], + "operationId": "gists/update-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/gists#update-a-gist-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/gist_id" }, + { "$ref": "#/components/parameters/comment_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "body": { + "description": "The comment text.", + "type": "string", + "maxLength": 65535, + "example": "Body of the attachment" + } + }, + "type": "object", + "required": ["body"] + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/gist-comment" }, + "examples": { + "default": { "$ref": "#/components/examples/gist-comment" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "gists", + "subcategory": "comments" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a gist comment", + "description": "", + "tags": ["gists"], + "operationId": "gists/delete-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/gists#delete-a-gist-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/gist_id" }, + { "$ref": "#/components/parameters/comment_id" } + ], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "gists", + "subcategory": "comments" + }, + "x-octokit": {} + } + }, + "/gists/{gist_id}/commits": { + "get": { + "summary": "List gist commits", + "description": "", + "tags": ["gists"], + "operationId": "gists/list-commits", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/gists/#list-gist-commits" + }, + "parameters": [ + { "$ref": "#/components/parameters/gist_id" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/gist-commit" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/gist-commit-items" + } + } + } + }, + "headers": { + "Link": { + "example": "; rel=\"next\"", + "schema": { "type": "string" } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "gists", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/gists/{gist_id}/forks": { + "get": { + "summary": "List gist forks", + "description": "", + "tags": ["gists"], + "operationId": "gists/list-forks", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/gists/#list-gist-forks" + }, + "parameters": [ + { "$ref": "#/components/parameters/gist_id" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/gist-full" } + }, + "examples": { + "default": { "$ref": "#/components/examples/gist-fork-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "gists", + "subcategory": null + }, + "x-octokit": {} + }, + "post": { + "summary": "Fork a gist", + "description": "**Note**: This was previously `/gists/:gist_id/fork`.", + "tags": ["gists"], + "operationId": "gists/fork", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/gists/#fork-a-gist" + }, + "parameters": [{ "$ref": "#/components/parameters/gist_id" }], + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/base-gist" }, + "examples": { + "default": { "$ref": "#/components/examples/base-gist" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/gists/aa5a315d61ae9438b18d", + "schema": { "type": "string" } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "gists", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/gists/{gist_id}/star": { + "get": { + "summary": "Check if a gist is starred", + "description": "", + "tags": ["gists"], + "operationId": "gists/check-is-starred", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/gists/#check-if-a-gist-is-starred" + }, + "parameters": [{ "$ref": "#/components/parameters/gist_id" }], + "responses": { + "204": { "description": "Response if gist is starred" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { + "description": "Response if gist is not starred", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": {}, + "additionalProperties": false + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "gists", + "subcategory": null + }, + "x-octokit": {} + }, + "put": { + "summary": "Star a gist", + "description": "Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"", + "tags": ["gists"], + "operationId": "gists/star", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/gists/#star-a-gist" + }, + "parameters": [{ "$ref": "#/components/parameters/gist_id" }], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "gists", + "subcategory": null + }, + "x-octokit": {} + }, + "delete": { + "summary": "Unstar a gist", + "description": "", + "tags": ["gists"], + "operationId": "gists/unstar", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/gists/#unstar-a-gist" + }, + "parameters": [{ "$ref": "#/components/parameters/gist_id" }], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "gists", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/gists/{gist_id}/{sha}": { + "get": { + "summary": "Get a gist revision", + "description": "", + "tags": ["gists"], + "operationId": "gists/get-revision", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/gists/#get-a-gist-revision" + }, + "parameters": [ + { "$ref": "#/components/parameters/gist_id" }, + { + "name": "sha", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/gist-full" }, + "examples": { + "default": { "$ref": "#/components/examples/gist-2" } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "gists", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/gitignore/templates": { + "get": { + "summary": "Get all gitignore templates", + "description": "List all templates available to pass as an option when [creating a repository](https://docs.github.com/rest/reference/repos#create-a-repository-for-the-authenticated-user).", + "operationId": "gitignore/get-all-templates", + "tags": ["gitignore"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/gitignore/#get-all-gitignore-templates" + }, + "parameters": [], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "type": "array", "items": { "type": "string" } }, + "example": [ + "Actionscript", + "Android", + "AppceleratorTitanium", + "Autotools", + "Bancha", + "C", + "C++" + ] + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "gitignore", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/gitignore/templates/{name}": { + "get": { + "summary": "Get a gitignore template", + "description": "The API also allows fetching the source of a single template.\nUse the raw [media type](https://docs.github.com/rest/overview/media-types/) to get the raw contents.", + "operationId": "gitignore/get-template", + "tags": ["gitignore"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/gitignore/#get-a-gitignore-template" + }, + "parameters": [ + { + "name": "name", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/gitignore-template" }, + "examples": { + "default": { + "$ref": "#/components/examples/gitignore-template" + } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "gitignore", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/installation/repositories": { + "get": { + "summary": "List repositories accessible to the app installation", + "description": "List repositories that an app installation can access.\n\nYou must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/list-repos-accessible-to-installation", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#list-repositories-accessible-to-the-app-installation" + }, + "parameters": [ + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "repositories": { + "type": "array", + "items": { "$ref": "#/components/schemas/repository" } + }, + "repository_selection": { + "type": "string", + "example": "selected" + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-paginated-2" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "mercy", + "note": "The `topics` property for repositories on GitHub is currently available for developers to preview. To view the `topics` property in calls that return repository results, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.mercy-preview+json\n```" + } + ], + "category": "apps", + "subcategory": "installations" + }, + "x-octokit": {} + } + }, + "/installation/token": { + "delete": { + "summary": "Revoke an installation access token", + "description": "Revokes the installation token you're using to authenticate as an installation and access this endpoint.\n\nOnce an installation token is revoked, the token is invalidated and cannot be used. Other endpoints that require the revoked installation token must have a new installation token to work. You can create a new token using the \"[Create an installation access token for an app](https://docs.github.com/rest/reference/apps#create-an-installation-access-token-for-an-app)\" endpoint.\n\nYou must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/revoke-installation-access-token", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#revoke-an-installation-access-token" + }, + "parameters": [], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "apps", + "subcategory": "installations" + }, + "x-octokit": {} + } + }, + "/issues": { + "get": { + "summary": "List issues assigned to the authenticated user", + "description": "List issues assigned to the authenticated user across all visible repositories including owned repositories, member\nrepositories, and organization repositories. You can use the `filter` query parameter to fetch issues that are not\nnecessarily assigned to you.\n\n\n**Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this\nreason, \"Issues\" endpoints may return both issues and pull requests in the response. You can identify pull requests by\nthe `pull_request` key. Be aware that the `id` of a pull request returned from \"Issues\" endpoints will be an _issue id_. To find out the pull\nrequest id, use the \"[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)\" endpoint.", + "tags": ["issues"], + "operationId": "issues/list", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/issues/#list-issues-assigned-to-the-authenticated-user" + }, + "parameters": [ + { + "name": "filter", + "description": "Indicates which sorts of issues to return. Can be one of: \n\\* `assigned`: Issues assigned to you \n\\* `created`: Issues created by you \n\\* `mentioned`: Issues mentioning you \n\\* `subscribed`: Issues you're subscribed to updates for \n\\* `all`: All issues the authenticated user can see, regardless of participation or creation", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["assigned", "created", "mentioned", "subscribed", "all"], + "default": "assigned" + } + }, + { + "name": "state", + "description": "Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["open", "closed", "all"], + "default": "open" + } + }, + { "$ref": "#/components/parameters/labels" }, + { + "name": "sort", + "description": "What to sort results by. Can be either `created`, `updated`, `comments`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["created", "updated", "comments"], + "default": "created" + } + }, + { "$ref": "#/components/parameters/direction" }, + { "$ref": "#/components/parameters/since" }, + { + "name": "collab", + "in": "query", + "required": false, + "schema": { "type": "boolean" } + }, + { + "name": "orgs", + "in": "query", + "required": false, + "schema": { "type": "boolean" } + }, + { + "name": "owned", + "in": "query", + "required": false, + "schema": { "type": "boolean" } + }, + { + "name": "pulls", + "in": "query", + "required": false, + "schema": { "type": "boolean" } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/issue" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue-with-repo-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "issues", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/licenses": { + "get": { + "summary": "Get all commonly used licenses", + "description": "", + "tags": ["licenses"], + "operationId": "licenses/get-all-commonly-used", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/licenses/#get-all-commonly-used-licenses" + }, + "parameters": [ + { + "name": "featured", + "in": "query", + "required": false, + "schema": { "type": "boolean" } + }, + { "$ref": "#/components/parameters/per_page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/license-simple" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/license-simple-items" + } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "licenses", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/licenses/{license}": { + "get": { + "summary": "Get a license", + "description": "", + "tags": ["licenses"], + "operationId": "licenses/get", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/licenses/#get-a-license" + }, + "parameters": [ + { + "name": "license", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/license" }, + "examples": { + "default": { "$ref": "#/components/examples/license" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "licenses", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/markdown": { + "post": { + "summary": "Render a Markdown document", + "description": "", + "operationId": "markdown/render", + "tags": ["markdown"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/markdown/#render-a-markdown-document" + }, + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "text": { + "description": "The Markdown text to render in HTML.", + "type": "string" + }, + "mode": { + "description": "The rendering mode.", + "enum": ["markdown", "gfm"], + "default": "markdown", + "example": "markdown", + "type": "string" + }, + "context": { + "description": "The repository context to use when creating references in `gfm` mode.", + "type": "string" + } + }, + "required": ["text"], + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "response", + "headers": { + "Content-Type": { "$ref": "#/components/headers/content-type" }, + "Content-Length": { + "example": "279", + "schema": { "type": "string" } + }, + "X-CommonMarker-Version": { + "$ref": "#/components/headers/x-common-marker-version" + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "markdown", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/markdown/raw": { + "post": { + "summary": "Render a Markdown document in raw mode", + "description": "You must send Markdown as plain text (using a `Content-Type` header of `text/plain` or `text/x-markdown`) to this endpoint, rather than using JSON format. In raw mode, [GitHub Flavored Markdown](https://github.github.com/gfm/) is not supported and Markdown will be rendered in plain format like a README.md file. Markdown content must be 400 KB or less.", + "operationId": "markdown/render-raw", + "tags": ["markdown"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/markdown/#render-a-markdown-document-in-raw-mode" + }, + "parameters": [], + "requestBody": { + "content": { + "text/plain": { "schema": { "type": "string" } }, + "text/x-markdown": { "schema": { "type": "string" } } + } + }, + "responses": { + "200": { + "description": "response", + "headers": { + "X-CommonMarker-Version": { + "$ref": "#/components/headers/x-common-marker-version" + } + }, + "content": { "text/html": { "schema": { "type": "string" } } } + }, + "304": { "$ref": "#/components/responses/not_modified" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "markdown", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/marketplace_listing/accounts/{account_id}": { + "get": { + "summary": "Get a subscription plan for an account", + "description": "Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change.\n\nGitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/get-subscription-plan-for-account", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#get-a-subscription-plan-for-an-account" + }, + "parameters": [{ "$ref": "#/components/parameters/account_id" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/marketplace-purchase" + }, + "examples": { + "default": { + "$ref": "#/components/examples/marketplace-purchase" + } + } + } + } + }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "404": { + "description": "Response when the account has not purchased the listing", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/basic-error" } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": "marketplace" + }, + "x-octokit": {} + } + }, + "/marketplace_listing/plans": { + "get": { + "summary": "List plans", + "description": "Lists all plans that are part of your GitHub Marketplace listing.\n\nGitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/list-plans", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#list-plans" + }, + "parameters": [ + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/marketplace-listing-plan" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/marketplace-listing-plan-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": "marketplace" + }, + "x-octokit": {} + } + }, + "/marketplace_listing/plans/{plan_id}/accounts": { + "get": { + "summary": "List accounts for a plan", + "description": "Returns user and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change.\n\nGitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/list-accounts-for-plan", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#list-accounts-for-a-plan" + }, + "parameters": [ + { "$ref": "#/components/parameters/plan_id" }, + { "$ref": "#/components/parameters/sort" }, + { + "name": "direction", + "description": "To return the oldest accounts first, set to `asc`. Can be one of `asc` or `desc`. Ignored without the `sort` parameter.", + "in": "query", + "required": false, + "schema": { "type": "string", "enum": ["asc", "desc"] } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/marketplace-purchase" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/marketplace-purchase-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": "marketplace" + }, + "x-octokit": {} + } + }, + "/marketplace_listing/stubbed/accounts/{account_id}": { + "get": { + "summary": "Get a subscription plan for an account (stubbed)", + "description": "Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change.\n\nGitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/get-subscription-plan-for-account-stubbed", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#get-a-subscription-plan-for-an-account-stubbed" + }, + "parameters": [{ "$ref": "#/components/parameters/account_id" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/marketplace-purchase" + }, + "examples": { + "default": { + "$ref": "#/components/examples/marketplace-purchase" + } + } + } + } + }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "404": { + "description": "Response when the account has not purchased the listing" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": "marketplace" + }, + "x-octokit": {} + } + }, + "/marketplace_listing/stubbed/plans": { + "get": { + "summary": "List plans (stubbed)", + "description": "Lists all plans that are part of your GitHub Marketplace listing.\n\nGitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/list-plans-stubbed", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#list-plans-stubbed" + }, + "parameters": [ + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/marketplace-listing-plan" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/marketplace-listing-plan-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "401": { "$ref": "#/components/responses/requires_authentication" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": "marketplace" + }, + "x-octokit": {} + } + }, + "/marketplace_listing/stubbed/plans/{plan_id}/accounts": { + "get": { + "summary": "List accounts for a plan (stubbed)", + "description": "Returns repository and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change.\n\nGitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/list-accounts-for-plan-stubbed", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#list-accounts-for-a-plan-stubbed" + }, + "parameters": [ + { "$ref": "#/components/parameters/plan_id" }, + { "$ref": "#/components/parameters/sort" }, + { + "name": "direction", + "description": "To return the oldest accounts first, set to `asc`. Can be one of `asc` or `desc`. Ignored without the `sort` parameter.", + "in": "query", + "required": false, + "schema": { "type": "string", "enum": ["asc", "desc"] } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/marketplace-purchase" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/marketplace-purchase-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "401": { "$ref": "#/components/responses/requires_authentication" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": "marketplace" + }, + "x-octokit": {} + } + }, + "/meta": { + "get": { + "summary": "Get GitHub meta information", + "description": "This endpoint provides a list of GitHub's IP addresses. For more information, see \"[About GitHub's IP addresses](https://help.github.com/articles/about-github-s-ip-addresses/).\"", + "tags": ["meta"], + "operationId": "meta/get", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/meta/#get-github-meta-information" + }, + "parameters": [], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/api-overview" }, + "examples": { + "default": { "$ref": "#/components/examples/api-overview" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "meta", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/networks/{owner}/{repo}/events": { + "get": { + "summary": "List public events for a network of repositories", + "description": "", + "tags": ["activity"], + "operationId": "activity/list-public-events-for-repo-network", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#list-public-events-for-a-network-of-repositories" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/event" } + } + } + } + }, + "301": { "$ref": "#/components/responses/moved_permanently" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "activity", + "subcategory": "events" + }, + "x-octokit": {} + } + }, + "/notifications": { + "get": { + "summary": "List notifications for the authenticated user", + "description": "List all notifications for the current user, sorted by most recently updated.", + "tags": ["activity"], + "operationId": "activity/list-notifications-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#list-notifications-for-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/all" }, + { "$ref": "#/components/parameters/participating" }, + { "$ref": "#/components/parameters/since" }, + { "$ref": "#/components/parameters/before" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/thread" } + }, + "examples": { + "default": { "$ref": "#/components/examples/thread-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "activity", + "subcategory": "notifications" + }, + "x-octokit": {} + }, + "put": { + "summary": "Mark notifications as read", + "description": "Marks all notifications as \"read\" removes it from the [default view on GitHub](https://github.com/notifications). If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as \"read.\" To check whether any \"unread\" notifications remain, you can use the [List notifications for the authenticated user](https://docs.github.com/rest/reference/activity#list-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`.", + "tags": ["activity"], + "operationId": "activity/mark-notifications-as-read", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#mark-notifications-as-read" + }, + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "last_read_at": { + "description": "Describes the last point that notifications were checked.", + "type": "string", + "format": "date-time" + }, + "read": { + "description": "Whether the notification has been read.", + "type": "boolean" + } + } + } + } + } + }, + "responses": { + "202": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { "message": { "type": "string" } } + } + } + } + }, + "205": { "description": "response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "activity", + "subcategory": "notifications" + }, + "x-octokit": {} + } + }, + "/notifications/threads/{thread_id}": { + "get": { + "summary": "Get a thread", + "description": "", + "tags": ["activity"], + "operationId": "activity/get-thread", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#get-a-thread" + }, + "parameters": [{ "$ref": "#/components/parameters/thread_id" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/thread" }, + "examples": { + "default": { "$ref": "#/components/examples/thread" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "activity", + "subcategory": "notifications" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Mark a thread as read", + "description": "", + "tags": ["activity"], + "operationId": "activity/mark-thread-as-read", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#mark-a-thread-as-read" + }, + "parameters": [{ "$ref": "#/components/parameters/thread_id" }], + "responses": { + "205": { "description": "response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "activity", + "subcategory": "notifications" + }, + "x-octokit": {} + } + }, + "/notifications/threads/{thread_id}/subscription": { + "get": { + "summary": "Get a thread subscription for the authenticated user", + "description": "This checks to see if the current user is subscribed to a thread. You can also [get a repository subscription](https://docs.github.com/rest/reference/activity#get-a-repository-subscription).\n\nNote that subscriptions are only generated if a user is participating in a conversation--for example, they've replied to the thread, were **@mentioned**, or manually subscribe to a thread.", + "tags": ["activity"], + "operationId": "activity/get-thread-subscription-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#get-a-thread-subscription-for-the-authenticated-user" + }, + "parameters": [{ "$ref": "#/components/parameters/thread_id" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/thread-subscription" + }, + "examples": { + "default": { + "$ref": "#/components/examples/thread-subscription" + } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "activity", + "subcategory": "notifications" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set a thread subscription", + "description": "If you are watching a repository, you receive notifications for all threads by default. Use this endpoint to ignore future notifications for threads until you comment on the thread or get an **@mention**.\n\nYou can also use this endpoint to subscribe to threads that you are currently not receiving notifications for or to subscribed to threads that you have previously ignored.\n\nUnsubscribing from a conversation in a repository that you are not watching is functionally equivalent to the [Delete a thread subscription](https://docs.github.com/rest/reference/activity#delete-a-thread-subscription) endpoint.", + "tags": ["activity"], + "operationId": "activity/set-thread-subscription", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#set-a-thread-subscription" + }, + "parameters": [{ "$ref": "#/components/parameters/thread_id" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "ignored": { + "description": "Whether to block all notifications from a thread.", + "default": false, + "type": "boolean" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/thread-subscription" + }, + "examples": { + "default": { + "$ref": "#/components/examples/thread-subscription" + } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "activity", + "subcategory": "notifications" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a thread subscription", + "description": "Mutes all future notifications for a conversation until you comment on the thread or get an **@mention**. If you are watching the repository of the thread, you will still receive notifications. To ignore future notifications for a repository you are watching, use the [Set a thread subscription](https://docs.github.com/rest/reference/activity#set-a-thread-subscription) endpoint and set `ignore` to `true`.", + "tags": ["activity"], + "operationId": "activity/delete-thread-subscription", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#delete-a-thread-subscription" + }, + "parameters": [{ "$ref": "#/components/parameters/thread_id" }], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "activity", + "subcategory": "notifications" + }, + "x-octokit": {} + } + }, + "/octocat": { + "get": { + "summary": "Get Octocat", + "description": "Get the octocat as ASCII art", + "tags": ["meta"], + "operationId": "meta/get-octocat", + "parameters": [ + { + "name": "s", + "in": "query", + "description": "The words to show in Octocat's speech bubble", + "schema": { "type": "string" }, + "required": false + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/octocat-stream": { "schema": { "type": "string" } } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "meta" + }, + "x-octokit": {} + } + }, + "/organizations": { + "get": { + "summary": "List organizations", + "description": "Lists all organizations, in the order that they were created on GitHub.\n\n**Note:** Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of organizations.", + "tags": ["orgs"], + "operationId": "orgs/list", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/orgs/#list-organizations" + }, + "parameters": [ + { "$ref": "#/components/parameters/since-org" }, + { "$ref": "#/components/parameters/per_page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-simple" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/organization-simple-items" + } + } + } + }, + "headers": { + "Link": { + "example": "; rel=\"next\"", + "schema": { "type": "string" } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}": { + "get": { + "summary": "Get an organization", + "description": "To see many of the organization response values, you need to be an authenticated organization owner with the `admin:org` scope. When the value of `two_factor_requirement_enabled` is `true`, the organization requires all members, billing managers, and outside collaborators to enable [two-factor authentication](https://help.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/).\n\nGitHub Apps with the `Organization plan` permission can use this endpoint to retrieve information about an organization's GitHub plan. See \"[Authenticating with GitHub Apps](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/)\" for details. For an example response, see 'Response with GitHub plan information' below.\"", + "tags": ["orgs"], + "operationId": "orgs/get", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/orgs/#get-an-organization" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/organization-full" }, + "examples": { + "default-response": { + "$ref": "#/components/examples/organization-full-default-response" + }, + "response-with-git-hub-plan-information": { + "$ref": "#/components/examples/organization-full-response-with-git-hub-plan-information" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "surtur", + "note": "New repository creation permissions are available to preview. You can now use `members_can_create_public_repositories`, `members_can_create_private_repositories`, and `members_can_create_internal_repositories`. You can only allow members to create internal repositories if your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. These parameters provide more granular permissions to configure the type of repositories organization members can create.\n\nTo access these new parameters during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.surtur-preview+json\n```" + } + ], + "category": "orgs", + "subcategory": null + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update an organization", + "description": "**Parameter Deprecation Notice:** GitHub will replace and discontinue `members_allowed_repository_creation_type` in favor of more granular permissions. The new input parameters are `members_can_create_public_repositories`, `members_can_create_private_repositories` for all organizations and `members_can_create_internal_repositories` for organizations associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes).\n\nEnables an authenticated organization owner with the `admin:org` scope to update the organization's profile and member privileges.", + "tags": ["orgs"], + "operationId": "orgs/update", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/orgs/#update-an-organization" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "billing_email": { + "type": "string", + "description": "Billing email address. This address is not publicized." + }, + "company": { + "type": "string", + "description": "The company name." + }, + "email": { + "type": "string", + "description": "The publicly visible email address." + }, + "twitter_username": { + "type": "string", + "description": "The Twitter username of the company." + }, + "location": { + "type": "string", + "description": "The location." + }, + "name": { + "type": "string", + "description": "The shorthand name of the company." + }, + "description": { + "type": "string", + "description": "The description of the company." + }, + "has_organization_projects": { + "type": "boolean", + "description": "Toggles whether an organization can use organization projects." + }, + "has_repository_projects": { + "type": "boolean", + "description": "Toggles whether repositories that belong to the organization can use repository projects." + }, + "default_repository_permission": { + "type": "string", + "description": "Default permission level members have for organization repositories: \n\\* `read` - can pull, but not push to or administer this repository. \n\\* `write` - can pull and push, but not administer this repository. \n\\* `admin` - can pull, push, and administer this repository. \n\\* `none` - no permissions granted by default.", + "enum": ["read", "write", "admin", "none"], + "default": "read" + }, + "members_can_create_repositories": { + "type": "boolean", + "description": "Toggles the ability of non-admin organization members to create repositories. Can be one of: \n\\* `true` - all organization members can create repositories. \n\\* `false` - only organization owners can create repositories. \nDefault: `true` \n**Note:** A parameter can override this parameter. See `members_allowed_repository_creation_type` in this table for details. **Note:** A parameter can override this parameter. See `members_allowed_repository_creation_type` in this table for details.", + "default": true + }, + "members_can_create_internal_repositories": { + "type": "boolean", + "description": "Toggles whether organization members can create internal repositories, which are visible to all enterprise members. You can only allow members to create internal repositories if your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. Can be one of: \n\\* `true` - all organization members can create internal repositories. \n\\* `false` - only organization owners can create internal repositories. \nDefault: `true`. For more information, see \"[Restricting repository creation in your organization](https://help.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)\" in the GitHub Help documentation." + }, + "members_can_create_private_repositories": { + "type": "boolean", + "description": "Toggles whether organization members can create private repositories, which are visible to organization members with permission. Can be one of: \n\\* `true` - all organization members can create private repositories. \n\\* `false` - only organization owners can create private repositories. \nDefault: `true`. For more information, see \"[Restricting repository creation in your organization](https://help.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)\" in the GitHub Help documentation." + }, + "members_can_create_public_repositories": { + "type": "boolean", + "description": "Toggles whether organization members can create public repositories, which are visible to anyone. Can be one of: \n\\* `true` - all organization members can create public repositories. \n\\* `false` - only organization owners can create public repositories. \nDefault: `true`. For more information, see \"[Restricting repository creation in your organization](https://help.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)\" in the GitHub Help documentation." + }, + "members_allowed_repository_creation_type": { + "type": "string", + "description": "Specifies which types of repositories non-admin organization members can create. Can be one of: \n\\* `all` - all organization members can create public and private repositories. \n\\* `private` - members can create private repositories. This option is only available to repositories that are part of an organization on GitHub Enterprise Cloud. \n\\* `none` - only admin members can create repositories. \n**Note:** This parameter is deprecated and will be removed in the future. Its return value ignores internal repositories. Using this parameter overrides values set in `members_can_create_repositories`. See the parameter deprecation notice in the operation description for details.", + "enum": ["all", "private", "none"] + }, + "members_can_create_pages": { + "type": "boolean", + "description": "Toggles whether organization members can create GitHub Pages sites. Can be one of: \n\\* `true` - all organization members can create GitHub Pages sites. \n\\* `false` - no organization members can create GitHub Pages sites. Existing published sites will not be impacted. \nDefault: `true`. " + }, + "blog": { + "type": "string", + "example": "\"http://github.blog\"" + } + } + }, + "example": { + "billing_email": "mona@github.com", + "company": "GitHub", + "email": "mona@github.com", + "twitter_username": "github", + "location": "San Francisco", + "name": "github", + "description": "GitHub, the company.", + "default_repository_permission": "read", + "members_can_create_repositories": true, + "members_allowed_repository_creation_type": "all" + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/organization-full" }, + "examples": { + "default": { + "$ref": "#/components/examples/organization-full" + } + } + } + } + }, + "409": { "$ref": "#/components/responses/conflict" }, + "415": { "$ref": "#/components/responses/preview_header_missing" }, + "422": { + "description": "Validation Failed", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { "$ref": "#/components/schemas/validation-error" }, + { "$ref": "#/components/schemas/validation-error-simple" } + ] + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "surtur", + "note": "New repository creation permissions are available to preview. You can now use `members_can_create_public_repositories`, `members_can_create_private_repositories`, and `members_can_create_internal_repositories`. You can only allow members to create internal repositories if your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. These parameters provide more granular permissions to configure the type of repositories organization members can create.\n\nTo access these new parameters during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.surtur-preview+json\n```" + } + ], + "category": "orgs", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/actions/permissions": { + "get": { + "summary": "Get GitHub Actions permissions for an organization", + "description": "Gets the GitHub Actions permissions policy for repositories and allowed actions in an organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API.", + "operationId": "actions/get-github-actions-permissions-organization", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#get-github-actions-permissions-for-an-organization" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-organization-permissions" + }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-organization-permissions" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "permissions" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set GitHub Actions permissions for an organization", + "description": "Sets the GitHub Actions permissions policy for repositories and allowed actions in an organization.\n\nIf the organization belongs to an enterprise that has set restrictive permissions at the enterprise level, such as `allowed_actions` to `selected` actions, then you cannot override them for the organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API.", + "operationId": "actions/set-github-actions-permissions-organization", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#set-github-actions-permissions-for-an-organization" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "responses": { "204": { "description": "Empty response" } }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "enabled_repositories": { + "$ref": "#/components/schemas/enabled-repositories" + }, + "allowed_actions": { + "$ref": "#/components/schemas/allowed-actions" + } + }, + "required": ["enabled_repositories"] + }, + "example": { + "enabled_repositories": "all", + "allowed_actions": "selected" + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "permissions" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/actions/permissions/repositories": { + "get": { + "summary": "List selected repositories enabled for GitHub Actions in an organization", + "description": "Lists the selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization).\"\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API.", + "operationId": "actions/list-selected-repositories-enabled-github-actions-organization", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#list-selected-repositories-enabled-for-github-actions-in-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "number" }, + "repositories": { + "type": "array", + "items": { "$ref": "#/components/schemas/repository" } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-paginated" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "permissions" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set selected repositories enabled for GitHub Actions in an organization", + "description": "Replaces the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization).\"\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API.", + "operationId": "actions/set-selected-repositories-enabled-github-actions-organization", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#set-selected-repositories-enabled-for-github-actions-in-an-organization" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "responses": { "204": { "description": "Empty response" } }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selected_repository_ids": { + "description": "List of repository IDs to enable for GitHub Actions.", + "type": "array", + "items": { + "type": "integer", + "description": "Unique identifier of the repository." + } + } + }, + "required": ["selected_repository_ids"] + }, + "example": { "selected_repository_ids": [32, 42] } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "permissions" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/actions/permissions/repositories/{repository_id}": { + "put": { + "summary": "Enable a selected repository for GitHub Actions in an organization", + "description": "Adds a repository to the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization).\"\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API.", + "operationId": "actions/enable-selected-repository-github-actions-organization", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#enable-a-selected-repository-for-github-actions-in-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/repository_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "permissions" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Disable a selected repository for GitHub Actions in an organization", + "description": "Removes a repository from the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization).\"\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API.", + "operationId": "actions/disable-selected-repository-github-actions-organization", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#disable-a-selected-repository-for-github-actions-in-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/repository_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "permissions" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/actions/permissions/selected-actions": { + "get": { + "summary": "Get allowed actions for an organization", + "description": "Gets the selected actions that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization).\"\"\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API.", + "operationId": "actions/get-allowed-actions-organization", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#get-allowed-actions-for-an-organization" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/selected-actions" }, + "examples": { + "default": { + "$ref": "#/components/examples/selected-actions" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "permissions" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set allowed actions for an organization", + "description": "Sets the actions that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization).\"\n\nIf the organization belongs to an enterprise that has `selected` actions set at the enterprise level, then you cannot override any of the enterprise's allowed actions settings.\n\nTo use the `patterns_allowed` setting for private repositories, the organization must belong to an enterprise. If the organization does not belong to an enterprise, then the `patterns_allowed` setting only applies to public repositories in the organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API.", + "operationId": "actions/set-allowed-actions-organization", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#set-allowed-actions-for-an-organization" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "responses": { "204": { "description": "Empty response" } }, + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/selected-actions" }, + "examples": { + "selected_actions": { + "$ref": "#/components/examples/selected-actions" + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "permissions" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/actions/runner-groups": { + "get": { + "summary": "List self-hosted runner groups for an organization", + "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\nLists all self-hosted runner groups configured in an organization and inherited from an enterprise.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", + "operationId": "actions/list-self-hosted-runner-groups-for-org", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#list-self-hosted-runner-groups-for-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "number" }, + "runner_groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/runner-groups-org" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/runner-groups-org" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runner-groups" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a self-hosted runner group for an organization", + "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud and GitHub Enterprise Server. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\nCreates a new self-hosted runner group for an organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", + "operationId": "actions/create-self-hosted-runner-group-for-org", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#create-a-self-hosted-runner-group-for-an-organization" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the runner group.", + "type": "string" + }, + "visibility": { + "description": "Visibility of a runner group. You can select all repositories, select individual repositories, or limit access to private repositories. Can be one of: `all`, `selected`, or `private`.", + "type": "string", + "enum": ["selected", "all", "private"], + "default": "all" + }, + "selected_repository_ids": { + "description": "List of repository IDs that can access the runner group.", + "type": "array", + "items": { + "type": "integer", + "description": "Unique identifier of the repository." + } + }, + "runners": { + "description": "List of runner IDs to add to the runner group.", + "type": "array", + "items": { + "type": "integer", + "description": "Unique identifier of the runner." + } + } + }, + "required": ["name"] + }, + "example": { + "name": "Expensive hardware runners", + "visibility": "selected", + "selected_repository_ids": [32, 91], + "runners": [9, 2] + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/runner-groups-org" }, + "examples": { + "default": { "$ref": "#/components/examples/runner-group" } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runner-groups" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/actions/runner-groups/{runner_group_id}": { + "get": { + "summary": "Get a self-hosted runner group for an organization", + "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\nGets a specific self-hosted runner group for an organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", + "operationId": "actions/get-self-hosted-runner-group-for-org", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#get-a-self-hosted-runner-group-for-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/runner_group_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/runner-groups-org" }, + "examples": { + "default": { + "$ref": "#/components/examples/runner-group-item" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runner-groups" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a self-hosted runner group for an organization", + "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\nUpdates the `name` and `visibility` of a self-hosted runner group in an organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", + "operationId": "actions/update-self-hosted-runner-group-for-org", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#update-a-self-hosted-runner-group-for-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/runner_group_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Name of the runner group.", + "type": "string" + }, + "visibility": { + "description": "Visibility of a runner group. You can select all repositories, select individual repositories, or all private repositories. Can be one of: `all`, `selected`, or `private`.", + "type": "string", + "enum": ["selected", "all", "private"] + } + } + }, + "example": { + "name": "Expensive hardware runners", + "visibility": "selected" + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/runner-groups-org" }, + "examples": { + "default": { "$ref": "#/components/examples/runner-group" } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runner-groups" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a self-hosted runner group from an organization", + "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\nDeletes a self-hosted runner group for an organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", + "operationId": "actions/delete-self-hosted-runner-group-from-org", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#delete-a-self-hosted-runner-group-from-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/runner_group_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runner-groups" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories": { + "get": { + "summary": "List repository access to a self-hosted runner group in an organization", + "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud and GitHub Enterprise Server. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\nLists the repositories with access to a self-hosted runner group configured in an organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", + "operationId": "actions/list-repo-access-to-self-hosted-runner-group-in-org", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#list-repository-access-to-a-self-hosted-runner-group-in-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/runner_group_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "number" }, + "repositories": { + "type": "array", + "items": { "$ref": "#/components/schemas/repository" } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-paginated" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runner-groups" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set repository access for a self-hosted runner group in an organization", + "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\nReplaces the list of repositories that have access to a self-hosted runner group configured in an organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", + "operationId": "actions/set-repo-access-to-self-hosted-runner-group-in-org", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#set-repository-access-to-a-self-hosted-runner-group-in-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/runner_group_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selected_repository_ids": { + "description": "List of repository IDs that can access the runner group.", + "type": "array", + "items": { + "type": "integer", + "description": "Unique identifier of the repository." + } + } + }, + "required": ["selected_repository_ids"] + }, + "example": { "selected_repository_ids": [32, 91] } + } + } + }, + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runner-groups" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}": { + "put": { + "summary": "Add repository access to a self-hosted runner group in an organization", + "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\n\nAdds a repository to the list of selected repositories that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see \"[Create a self-hosted runner group for an organization](#create-a-self-hosted-runner-group-for-an-organization).\"\n\nYou must authenticate using an access token with the `admin:org`\nscope to use this endpoint.", + "operationId": "actions/add-repo-access-to-self-hosted-runner-group-in-org", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#add-repository-acess-to-a-self-hosted-runner-group-in-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/runner_group_id" }, + { "$ref": "#/components/parameters/repository_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": true, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runner-groups" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove repository access to a self-hosted runner group in an organization", + "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\n\nRemoves a repository from the list of selected repositories that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see \"[Create a self-hosted runner group for an organization](#create-a-self-hosted-runner-group-for-an-organization).\"\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", + "operationId": "actions/remove-repo-access-to-self-hosted-runner-group-in-org", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#remove-repository-access-to-a-self-hosted-runner-group-in-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/runner_group_id" }, + { "$ref": "#/components/parameters/repository_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runner-groups" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/actions/runner-groups/{runner_group_id}/runners": { + "get": { + "summary": "List self-hosted runners in a group for an organization", + "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\nLists self-hosted runners that are in a specific organization group.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", + "operationId": "actions/list-self-hosted-runners-in-group-for-org", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#list-self-hosted-runners-in-a-group-for-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/runner_group_id" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "number" }, + "runners": { + "type": "array", + "items": { "$ref": "#/components/schemas/runner" } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/runner-paginated" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runner-groups" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set self-hosted runners in a group for an organization", + "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\nReplaces the list of self-hosted runners that are part of an organization runner group.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", + "operationId": "actions/set-self-hosted-runners-in-group-for-org", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#set-self-hosted-runners-in-a-group-for-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/runner_group_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "runners": { + "description": "List of runner IDs to add to the runner group.", + "type": "array", + "items": { + "type": "integer", + "description": "Unique identifier of the runner." + } + } + }, + "required": ["runners"] + }, + "example": { "runners": [9, 2] } + } + } + }, + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runner-groups" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}": { + "put": { + "summary": "Add a self-hosted runner to a group for an organization", + "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\n\nAdds a self-hosted runner to a runner group configured in an organization.\n\nYou must authenticate using an access token with the `admin:org`\nscope to use this endpoint.", + "operationId": "actions/add-self-hosted-runner-to-group-for-org", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#add-a-self-hosted-runner-to-a-group-for-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/runner_group_id" }, + { "$ref": "#/components/parameters/runner_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runner-groups" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove a self-hosted runner from a group for an organization", + "description": "The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see \"[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products).\"\n\n\nRemoves a self-hosted runner from a group configured in an organization. The runner is then returned to the default group.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", + "operationId": "actions/remove-self-hosted-runner-from-group-for-org", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#remove-a-self-hosted-runner-from-a-group-for-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/runner_group_id" }, + { "$ref": "#/components/parameters/runner_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runner-groups" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/actions/runners": { + "get": { + "summary": "List self-hosted runners for an organization", + "description": "Lists all self-hosted runners configured in an organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/list-self-hosted-runners-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#list-self-hosted-runners-for-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "runners": { + "type": "array", + "items": { "$ref": "#/components/schemas/runner" } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/runner-paginated" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runners" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/actions/runners/downloads": { + "get": { + "summary": "List runner applications for an organization", + "description": "Lists binaries for the runner application that you can download and run.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/list-runner-applications-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#list-runner-applications-for-an-organization" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/runner-application" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/runner-application-items" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runners" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/actions/runners/registration-token": { + "post": { + "summary": "Create a registration token for an organization", + "description": "Returns a token that you can pass to the `config` script. The token expires after one hour.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.\n\n#### Example using registration token\n\nConfigure your self-hosted runner, replacing `TOKEN` with the registration token provided by this endpoint.\n\n```\n./config.sh --url https://github.com/octo-org --token TOKEN\n```", + "tags": ["actions"], + "operationId": "actions/create-registration-token-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#create-a-registration-token-for-an-organization" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/authentication-token" + }, + "examples": { + "default": { + "$ref": "#/components/examples/authentication-token" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runners" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/actions/runners/remove-token": { + "post": { + "summary": "Create a remove token for an organization", + "description": "Returns a token that you can pass to the `config` script to remove a self-hosted runner from an organization. The token expires after one hour.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.\n\n#### Example using remove token\n\nTo remove your self-hosted runner from an organization, replace `TOKEN` with the remove token provided by this\nendpoint.\n\n```\n./config.sh remove --token TOKEN\n```", + "tags": ["actions"], + "operationId": "actions/create-remove-token-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#create-a-remove-token-for-an-organization" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/authentication-token" + }, + "examples": { + "default": { + "$ref": "#/components/examples/authentication-token-2" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runners" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/actions/runners/{runner_id}": { + "get": { + "summary": "Get a self-hosted runner for an organization", + "description": "Gets a specific self-hosted runner configured in an organization.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/get-self-hosted-runner-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#get-a-self-hosted-runner-for-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/runner_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/runner" }, + "examples": { + "default": { "$ref": "#/components/examples/runner" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runners" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a self-hosted runner from an organization", + "description": "Forces the removal of a self-hosted runner from an organization. You can use this endpoint to completely remove the runner when the machine you were using no longer exists.\n\nYou must authenticate using an access token with the `admin:org` scope to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/delete-self-hosted-runner-from-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#delete-a-self-hosted-runner-from-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/runner_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runners" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/actions/secrets": { + "get": { + "summary": "List organization secrets", + "description": "Lists all secrets available in an organization without revealing their encrypted values. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/list-org-secrets", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#list-organization-secrets" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "secrets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-actions-secret" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/organization-actions-secret-paginated" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "secrets" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/actions/secrets/public-key": { + "get": { + "summary": "Get an organization public key", + "description": "Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/get-org-public-key", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#get-an-organization-public-key" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/actions-public-key" }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-public-key" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "secrets" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/actions/secrets/{secret_name}": { + "get": { + "summary": "Get an organization secret", + "description": "Gets a single organization secret without revealing its encrypted value. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/get-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#get-an-organization-secret" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/secret_name" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/organization-actions-secret" + }, + "examples": { + "default": { + "$ref": "#/components/examples/organization-actions-secret" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "secrets" + }, + "x-octokit": {} + }, + "put": { + "summary": "Create or update an organization secret", + "description": "Creates or updates an organization secret with an encrypted value. Encrypt your secret using\n[LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access\ntoken with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to\nuse this endpoint.\n\n#### Example encrypting a secret using Node.js\n\nEncrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library.\n\n```\nconst sodium = require('tweetsodium');\n\nconst key = \"base64-encoded-public-key\";\nconst value = \"plain-text-secret\";\n\n// Convert the message and key to Uint8Array's (Buffer implements that interface)\nconst messageBytes = Buffer.from(value);\nconst keyBytes = Buffer.from(key, 'base64');\n\n// Encrypt using LibSodium.\nconst encryptedBytes = sodium.seal(messageBytes, keyBytes);\n\n// Base64 the encrypted secret\nconst encrypted = Buffer.from(encryptedBytes).toString('base64');\n\nconsole.log(encrypted);\n```\n\n\n#### Example encrypting a secret using Python\n\nEncrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3.\n\n```\nfrom base64 import b64encode\nfrom nacl import encoding, public\n\ndef encrypt(public_key: str, secret_value: str) -> str:\n \"\"\"Encrypt a Unicode string using the public key.\"\"\"\n public_key = public.PublicKey(public_key.encode(\"utf-8\"), encoding.Base64Encoder())\n sealed_box = public.SealedBox(public_key)\n encrypted = sealed_box.encrypt(secret_value.encode(\"utf-8\"))\n return b64encode(encrypted).decode(\"utf-8\")\n```\n\n#### Example encrypting a secret using C#\n\nEncrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package.\n\n```\nvar secretValue = System.Text.Encoding.UTF8.GetBytes(\"mySecret\");\nvar publicKey = Convert.FromBase64String(\"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=\");\n\nvar sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);\n\nConsole.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));\n```\n\n#### Example encrypting a secret using Ruby\n\nEncrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem.\n\n```ruby\nrequire \"rbnacl\"\nrequire \"base64\"\n\nkey = Base64.decode64(\"+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=\")\npublic_key = RbNaCl::PublicKey.new(key)\n\nbox = RbNaCl::Boxes::Sealed.from_public_key(public_key)\nencrypted_secret = box.encrypt(\"my_secret\")\n\n# Print the base64 encoded secret\nputs Base64.strict_encode64(encrypted_secret)\n```", + "tags": ["actions"], + "operationId": "actions/create-or-update-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/secret_name" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "encrypted_value": { + "type": "string", + "description": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/reference/actions#get-an-organization-public-key) endpoint." + }, + "key_id": { + "type": "string", + "description": "ID of the key you used to encrypt the secret." + }, + "visibility": { + "type": "string", + "description": "Configures the access that repositories have to the organization secret. Can be one of: \n\\- `all` - All repositories in an organization can access the secret. \n\\- `private` - Private repositories in an organization can access the secret. \n\\- `selected` - Only specific repositories can access the secret.", + "enum": ["all", "private", "selected"] + }, + "selected_repository_ids": { + "type": "array", + "description": "An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/reference/actions#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/actions#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/actions#remove-selected-repository-from-an-organization-secret) endpoints.", + "items": { "type": "string" } + } + } + }, + "example": { + "encrypted_value": "****************************************************************************************", + "key_id": "012345678912345678", + "visibility": "selected", + "selected_repository_ids": ["1296269", "1296280"] + } + } + } + }, + "responses": { + "201": { "description": "Response when creating a secret" }, + "204": { "description": "Response when updating a secret" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "secrets" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete an organization secret", + "description": "Deletes a secret in an organization using the secret name. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/delete-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#delete-an-organization-secret" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/secret_name" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "secrets" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/actions/secrets/{secret_name}/repositories": { + "get": { + "summary": "List selected repositories for an organization secret", + "description": "Lists all repositories that have been selected when the `visibility` for repository access to a secret is set to `selected`. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/list-selected-repos-for-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#list-selected-repositories-for-an-organization-secret" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/secret_name" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "repositories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/public-repository-paginated" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "secrets" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set selected repositories for an organization secret", + "description": "Replaces all repositories for an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/set-selected-repos-for-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#set-selected-repositories-for-an-organization-secret" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/secret_name" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selected_repository_ids": { + "type": "array", + "description": "An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/actions#set-selected-repositories-for-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/actions#remove-selected-repository-from-an-organization-secret) endpoints.", + "items": { "type": "integer" } + } + } + }, + "example": { "selected_repository_ids": [64780797] } + } + } + }, + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "secrets" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}": { + "put": { + "summary": "Add selected repository to an organization secret", + "description": "Adds a repository to an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/add-selected-repo-to-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#add-selected-repository-to-an-organization-secret" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/secret_name" }, + { + "name": "repository_id", + "in": "path", + "required": true, + "schema": { "type": "integer" } + } + ], + "responses": { + "204": { + "description": "Response when repository was added to the selected list" + }, + "409": { + "description": "Response when visibility type is not set to selected" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "secrets" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove selected repository from an organization secret", + "description": "Removes a repository from an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/remove-selected-repo-from-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#remove-selected-repository-from-an-organization-secret" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/secret_name" }, + { + "name": "repository_id", + "in": "path", + "required": true, + "schema": { "type": "integer" } + } + ], + "responses": { + "204": { + "description": "Response when repository was removed from the selected list" + }, + "409": { + "description": "Response when visibility type not set to selected" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "secrets" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/audit-log": { + "get": { + "summary": "Get the audit log for an organization", + "description": "**Note:** The audit log REST API is currently in beta and is subject to change. To join the beta, talk to your services or sales contact at GitHub.\n\nGets the audit log for an organization. For more information, see \"[Reviewing the audit log for your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/reviewing-the-audit-log-for-your-organization).\"\n\nTo use this endpoint, you must be an organization owner, and you must use an access token with the `admin:org` scope. GitHub Apps must have the `organization_administration` read permission to use this endpoint.", + "operationId": "orgs/get-audit-log", + "tags": ["orgs"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#get-the-audit-log-for-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/audit-log-phrase" }, + { "$ref": "#/components/parameters/audit-log-include" }, + { "$ref": "#/components/parameters/audit-log-after" }, + { "$ref": "#/components/parameters/audit-log-before" }, + { "$ref": "#/components/parameters/per_page" } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/audit-log-event" } + }, + "examples": { + "default": { "$ref": "#/components/examples/audit-log" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/blocks": { + "get": { + "summary": "List users blocked by an organization", + "description": "List the users blocked by an organization.", + "tags": ["orgs"], + "operationId": "orgs/list-blocked-users", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#list-users-blocked-by-an-organization" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + } + }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "giant-sentry-fist", + "note": "The API to block users is currently available for developers to preview. See the [preview notice](https://docs.github.com/rest/overview/api-previews#user-blocking) for more information.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.giant-sentry-fist-preview+json\n```" + } + ], + "category": "orgs", + "subcategory": "blocking" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/blocks/{username}": { + "get": { + "summary": "Check if a user is blocked by an organization", + "description": "", + "tags": ["orgs"], + "operationId": "orgs/check-blocked-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#check-if-a-user-is-blocked-by-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { + "204": { "description": "If the user is blocked:" }, + "404": { + "description": "If the user is not blocked:", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/basic-error" } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "giant-sentry-fist", + "note": "The API to block users is currently available for developers to preview. See the [preview notice](https://docs.github.com/rest/overview/api-previews#user-blocking) for more information.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.giant-sentry-fist-preview+json\n```" + } + ], + "category": "orgs", + "subcategory": "blocking" + }, + "x-octokit": {} + }, + "put": { + "summary": "Block a user from an organization", + "description": "", + "tags": ["orgs"], + "operationId": "orgs/block-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#block-a-user-from-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { + "204": { "description": "Empty response" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "giant-sentry-fist", + "note": "The API to block users is currently available for developers to preview. See the [preview notice](https://docs.github.com/rest/overview/api-previews#user-blocking) for more information.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.giant-sentry-fist-preview+json\n```" + } + ], + "category": "orgs", + "subcategory": "blocking" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Unblock a user from an organization", + "description": "", + "tags": ["orgs"], + "operationId": "orgs/unblock-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#unblock-a-user-from-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "giant-sentry-fist", + "note": "The API to block users is currently available for developers to preview. See the [preview notice](https://docs.github.com/rest/overview/api-previews#user-blocking) for more information.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.giant-sentry-fist-preview+json\n```" + } + ], + "category": "orgs", + "subcategory": "blocking" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/credential-authorizations": { + "get": { + "summary": "List SAML SSO authorizations for an organization", + "description": "Listing and deleting credential authorizations is available to organizations with GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products).\n\nAn authenticated organization owner with the `read:org` scope can list all credential authorizations for an organization that uses SAML single sign-on (SSO). The credentials are either personal access tokens or SSH keys that organization members have authorized for the organization. For more information, see [About authentication with SAML single sign-on](https://help.github.com/en/articles/about-authentication-with-saml-single-sign-on).", + "tags": ["orgs"], + "operationId": "orgs/list-saml-sso-authorizations", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/orgs/#list-saml-sso-authorizations-for-an-organization" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/credential-authorization" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/credential-authorization-items" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/credential-authorizations/{credential_id}": { + "delete": { + "summary": "Remove a SAML SSO authorization for an organization", + "description": "Listing and deleting credential authorizations is available to organizations with GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products).\n\nAn authenticated organization owner with the `admin:org` scope can remove a credential authorization for an organization that uses SAML SSO. Once you remove someone's credential authorization, they will need to create a new personal access token or SSH key and authorize it for the organization they want to access.", + "tags": ["orgs"], + "operationId": "orgs/remove-saml-sso-authorization", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/orgs/#remove-a-saml-sso-authorization-for-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { + "name": "credential_id", + "in": "path", + "required": true, + "schema": { "type": "integer" } + } + ], + "responses": { + "204": { "description": "Empty response" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/events": { + "get": { + "summary": "List public organization events", + "description": "", + "tags": ["activity"], + "operationId": "activity/list-public-org-events", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#list-public-organization-events" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/event" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "activity", + "subcategory": "events" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/hooks": { + "get": { + "summary": "List organization webhooks", + "description": "", + "tags": ["orgs"], + "operationId": "orgs/list-webhooks", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#list-organization-webhooks" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/org-hook" } + }, + "examples": { + "default": { "$ref": "#/components/examples/org-hook-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "webhooks" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create an organization webhook", + "description": "Here's how you can create a hook that posts payloads in JSON format:", + "tags": ["orgs"], + "operationId": "orgs/create-webhook", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#create-an-organization-webhook" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Must be passed as \"web\"." + }, + "config": { + "type": "object", + "description": "Key/value pairs to provide settings for this webhook. [These are defined below](https://docs.github.com/rest/reference/orgs#create-hook-config-params).", + "properties": { + "url": { + "$ref": "#/components/schemas/webhook-config-url" + }, + "content_type": { + "$ref": "#/components/schemas/webhook-config-content-type" + }, + "secret": { + "$ref": "#/components/schemas/webhook-config-secret" + }, + "insecure_ssl": { + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + }, + "username": { + "type": "string", + "example": "\"kdaigle\"" + }, + "password": { + "type": "string", + "example": "\"password\"" + } + }, + "required": ["url"] + }, + "events": { + "type": "array", + "description": "Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for.", + "default": ["push"], + "items": { "type": "string" } + }, + "active": { + "type": "boolean", + "description": "Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications.", + "default": true + } + }, + "required": ["name", "config"] + }, + "example": { + "name": "web", + "active": true, + "events": ["push", "pull_request"], + "config": { + "url": "http://example.com/webhook", + "content_type": "json" + } + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/org-hook" }, + "examples": { + "default": { "$ref": "#/components/examples/org-hook" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/orgs/octocat/hooks/1", + "schema": { "type": "string" } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "webhooks" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/hooks/{hook_id}": { + "get": { + "summary": "Get an organization webhook", + "description": "Returns a webhook configured in an organization. To get only the webhook `config` properties, see \"[Get a webhook configuration for an organization](/rest/reference/orgs#get-a-webhook-configuration-for-an-organization).\"", + "tags": ["orgs"], + "operationId": "orgs/get-webhook", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#get-an-organization-webhook" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/hook-id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/org-hook" }, + "examples": { + "default": { "$ref": "#/components/examples/org-hook" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "webhooks" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update an organization webhook", + "description": "Updates a webhook configured in an organization. When you update a webhook, the `secret` will be overwritten. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use \"[Update a webhook configuration for an organization](/rest/reference/orgs#update-a-webhook-configuration-for-an-organization).\"", + "tags": ["orgs"], + "operationId": "orgs/update-webhook", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#update-an-organization-webhook" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/hook-id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "config": { + "type": "object", + "description": "Key/value pairs to provide settings for this webhook. [These are defined below](https://docs.github.com/rest/reference/orgs#update-hook-config-params).", + "properties": { + "url": { + "$ref": "#/components/schemas/webhook-config-url" + }, + "content_type": { + "$ref": "#/components/schemas/webhook-config-content-type" + }, + "secret": { + "$ref": "#/components/schemas/webhook-config-secret" + }, + "insecure_ssl": { + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + } + }, + "required": ["url"] + }, + "events": { + "type": "array", + "description": "Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for.", + "default": ["push"], + "items": { "type": "string" } + }, + "active": { + "type": "boolean", + "description": "Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications.", + "default": true + }, + "name": { "type": "string", "example": "\"web\"" } + } + }, + "example": { "active": true, "events": ["pull_request"] } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/org-hook" }, + "examples": { + "default": { "$ref": "#/components/examples/org-hook-2" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "webhooks" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete an organization webhook", + "description": "", + "tags": ["orgs"], + "operationId": "orgs/delete-webhook", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#delete-an-organization-webhook" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/hook-id" } + ], + "responses": { + "204": { "description": "Empty response" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "webhooks" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/hooks/{hook_id}/config": { + "get": { + "summary": "Get a webhook configuration for an organization", + "description": "Returns the webhook configuration for an organization. To get more information about the webhook, including the `active` state and `events`, use \"[Get an organization webhook ](/rest/reference/orgs#get-an-organization-webhook).\"\n\nAccess tokens must have the `admin:org_hook` scope, and GitHub Apps must have the `organization_hooks:read` permission.", + "tags": ["orgs"], + "operationId": "orgs/get-webhook-config-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/orgs#get-a-webhook-configuration-for-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/hook-id" } + ], + "responses": { + "200": { + "description": "Default response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/webhook-config" }, + "examples": { + "default": { "$ref": "#/components/examples/webhook-config" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "webhooks" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a webhook configuration for an organization", + "description": "Updates the webhook configuration for an organization. To update more information about the webhook, including the `active` state and `events`, use \"[Update an organization webhook ](/rest/reference/orgs#update-an-organization-webhook).\"\n\nAccess tokens must have the `admin:org_hook` scope, and GitHub Apps must have the `organization_hooks:write` permission.", + "tags": ["orgs"], + "operationId": "orgs/update-webhook-config-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/orgs#update-a-webhook-configuration-for-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/hook-id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "url": { "$ref": "#/components/schemas/webhook-config-url" }, + "content_type": { + "$ref": "#/components/schemas/webhook-config-content-type" + }, + "secret": { + "$ref": "#/components/schemas/webhook-config-secret" + }, + "insecure_ssl": { + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + } + }, + "example": { + "content_type": "json", + "insecure_ssl": "0", + "secret": "********", + "url": "https://example.com/webhook" + } + } + } + } + }, + "responses": { + "200": { + "description": "Default response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/webhook-config" }, + "examples": { + "default": { "$ref": "#/components/examples/webhook-config" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "webhooks" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/hooks/{hook_id}/pings": { + "post": { + "summary": "Ping an organization webhook", + "description": "This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook.", + "tags": ["orgs"], + "operationId": "orgs/ping-webhook", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#ping-an-organization-webhook" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/hook-id" } + ], + "responses": { + "204": { "description": "Empty response" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "webhooks" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/installation": { + "get": { + "summary": "Get an organization installation for the authenticated app", + "description": "Enables an authenticated GitHub App to find the organization's installation information.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/get-org-installation", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/apps/#get-an-organization-installation-for-the-authenticated-app" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/installation" }, + "examples": { + "default": { "$ref": "#/components/examples/installation" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/installations": { + "get": { + "summary": "List app installations for an organization", + "description": "Lists all GitHub Apps in an organization. The installation count includes all GitHub Apps installed on repositories in the organization. You must be an organization owner with `admin:read` scope to use this endpoint.", + "tags": ["orgs"], + "operationId": "orgs/list-app-installations", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/orgs/#list-app-installations-for-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "installations": { + "type": "array", + "items": { "$ref": "#/components/schemas/installation" } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/installation-paginated" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/interaction-limits": { + "get": { + "summary": "Get interaction restrictions for an organization", + "description": "Shows which type of GitHub user can interact with this organization and when the restriction expires. If there is no restrictions, you will see an empty response.", + "tags": ["interactions"], + "operationId": "interactions/get-restrictions-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/interactions#get-interaction-restrictions-for-an-organization" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/interaction-limit-response" + }, + "examples": { + "default": { + "$ref": "#/components/examples/interaction-limit-response" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "interactions", + "subcategory": "orgs" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set interaction restrictions for an organization", + "description": "Temporarily restricts interactions to a certain type of GitHub user in any public repository in the given organization. You must be an organization owner to set these restrictions. Setting the interaction limit at the organization level will overwrite any interaction limits that are set for individual repositories owned by the organization.", + "tags": ["interactions"], + "operationId": "interactions/set-restrictions-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/interactions#set-interaction-restrictions-for-an-organization" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/interaction-limit" } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/interaction-limit-response" + }, + "examples": { + "default": { + "$ref": "#/components/examples/interaction-limit-response" + } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "interactions", + "subcategory": "orgs" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove interaction restrictions for an organization", + "description": "Removes all interaction restrictions from public repositories in the given organization. You must be an organization owner to remove restrictions.", + "tags": ["interactions"], + "operationId": "interactions/remove-restrictions-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/interactions#remove-interaction-restrictions-for-an-organization" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "interactions", + "subcategory": "orgs" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/invitations": { + "get": { + "summary": "List pending organization invitations", + "description": "The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`.", + "tags": ["orgs"], + "operationId": "orgs/list-pending-invitations", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#list-pending-organization-invitations" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-invitation" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/organization-invitation-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "members" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create an organization invitation", + "description": "Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner.\n\nThis endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See \"[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)\" and \"[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)\" for details.", + "tags": ["orgs"], + "operationId": "orgs/create-invitation", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#create-an-organization-invitation" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "invitee_id": { + "type": "integer", + "description": "**Required unless you provide `email`**. GitHub user ID for the person you are inviting." + }, + "email": { + "type": "string", + "description": "**Required unless you provide `invitee_id`**. Email address of the person you are inviting, which can be an existing GitHub user." + }, + "role": { + "type": "string", + "description": "Specify role for new member. Can be one of: \n\\* `admin` - Organization owners with full administrative rights to the organization and complete access to all repositories and teams. \n\\* `direct_member` - Non-owner organization members with ability to see other members and join teams by invitation. \n\\* `billing_manager` - Non-owner organization members with ability to manage the billing settings of your organization.", + "enum": ["admin", "direct_member", "billing_manager"], + "default": "direct_member" + }, + "team_ids": { + "type": "array", + "description": "Specify IDs for the teams you want to invite new members to.", + "items": { "type": "integer" } + } + } + }, + "example": { + "email": "octocat@github.com", + "role": "direct_member", + "team_ids": [12, 26] + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/organization-invitation" + }, + "examples": { + "default": { + "$ref": "#/components/examples/organization-invitation" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "members" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/invitations/{invitation_id}/teams": { + "get": { + "summary": "List organization invitation teams", + "description": "List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner.", + "tags": ["orgs"], + "operationId": "orgs/list-invitation-teams", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#list-organization-invitation-teams" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/invitation_id" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/team" } + }, + "examples": { + "default": { "$ref": "#/components/examples/team-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "members" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/issues": { + "get": { + "summary": "List organization issues assigned to the authenticated user", + "description": "List issues in an organization assigned to the authenticated user.\n\n**Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this\nreason, \"Issues\" endpoints may return both issues and pull requests in the response. You can identify pull requests by\nthe `pull_request` key. Be aware that the `id` of a pull request returned from \"Issues\" endpoints will be an _issue id_. To find out the pull\nrequest id, use the \"[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)\" endpoint.", + "tags": ["issues"], + "operationId": "issues/list-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/issues/#list-organization-issues-assigned-to-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { + "name": "filter", + "description": "Indicates which sorts of issues to return. Can be one of: \n\\* `assigned`: Issues assigned to you \n\\* `created`: Issues created by you \n\\* `mentioned`: Issues mentioning you \n\\* `subscribed`: Issues you're subscribed to updates for \n\\* `all`: All issues the authenticated user can see, regardless of participation or creation", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["assigned", "created", "mentioned", "subscribed", "all"], + "default": "assigned" + } + }, + { + "name": "state", + "description": "Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["open", "closed", "all"], + "default": "open" + } + }, + { "$ref": "#/components/parameters/labels" }, + { + "name": "sort", + "description": "What to sort results by. Can be either `created`, `updated`, `comments`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["created", "updated", "comments"], + "default": "created" + } + }, + { "$ref": "#/components/parameters/direction" }, + { "$ref": "#/components/parameters/since" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/issue" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue-with-repo-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "issues", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/members": { + "get": { + "summary": "List organization members", + "description": "List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned.", + "tags": ["orgs"], + "operationId": "orgs/list-members", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#list-organization-members" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { + "name": "filter", + "description": "Filter members returned in the list. Can be one of: \n\\* `2fa_disabled` - Members without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled. Available for organization owners. \n\\* `all` - All members the authenticated user can see.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["2fa_disabled", "all"], + "default": "all" + } + }, + { + "name": "role", + "description": "Filter members returned by their role. Can be one of: \n\\* `all` - All members of the organization, regardless of role. \n\\* `admin` - Organization owners. \n\\* `member` - Non-owner organization members.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["all", "admin", "member"], + "default": "all" + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "302": { + "description": "Response if requester is not an organization member", + "headers": { + "Location": { + "example": "https://api.github.com/orgs/github/public_members", + "schema": { "type": "string" } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "members" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/members/{username}": { + "get": { + "summary": "Check organization membership for a user", + "description": "Check if a user is, publicly or privately, a member of the organization.", + "tags": ["orgs"], + "operationId": "orgs/check-membership-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#check-organization-membership-for-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { + "204": { + "description": "Response if requester is an organization member and user is a member" + }, + "302": { + "description": "Response if requester is not an organization member", + "headers": { + "Location": { + "example": "https://api.github.com/orgs/github/public_members/pezra", + "schema": { "type": "string" } + } + } + }, + "404": { + "description": "Response if requester is an organization member and user is not a member" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "members" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove an organization member", + "description": "Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories.", + "tags": ["orgs"], + "operationId": "orgs/remove-member", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#remove-an-organization-member" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { + "204": { "description": "Empty response" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "members" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/memberships/{username}": { + "get": { + "summary": "Get organization membership for a user", + "description": "In order to get a user's membership with an organization, the authenticated user must be an organization member.", + "tags": ["orgs"], + "operationId": "orgs/get-membership-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#get-organization-membership-for-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/org-membership" }, + "examples": { + "response-if-user-has-an-active-admin-membership-with-organization": { + "$ref": "#/components/examples/org-membership-response-if-user-has-an-active-admin-membership-with-organization" + }, + "response-if-user-has-an-active-membership-with-organization": { + "$ref": "#/components/examples/org-membership-response-if-user-has-an-active-membership-with-organization" + }, + "response-if-user-has-a-pending-membership-with-organization": { + "$ref": "#/components/examples/org-membership-response-if-user-has-a-pending-membership-with-organization" + } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "members" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set organization membership for a user", + "description": "Only authenticated organization owners can add a member to the organization or update the member's role.\n\n* If the authenticated user is _adding_ a member to the organization, the invited user will receive an email inviting them to the organization. The user's [membership status](https://docs.github.com/rest/reference/orgs#get-organization-membership-for-a-user) will be `pending` until they accept the invitation.\n \n* Authenticated users can _update_ a user's membership by passing the `role` parameter. If the authenticated user changes a member's role to `admin`, the affected user will receive an email notifying them that they've been made an organization owner. If the authenticated user changes an owner's role to `member`, no email will be sent.\n\n**Rate limits**\n\nTo prevent abuse, the authenticated user is limited to 50 organization invitations per 24 hour period. If the organization is more than one month old or on a paid plan, the limit is 500 invitations per 24 hour period.", + "tags": ["orgs"], + "operationId": "orgs/set-membership-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#set-organization-membership-for-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/username" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "role": { + "type": "string", + "description": "The role to give the user in the organization. Can be one of: \n\\* `admin` - The user will become an owner of the organization. \n\\* `member` - The user will become a non-owner member of the organization.", + "enum": ["admin", "member"], + "default": "member" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/org-membership" }, + "examples": { + "response-if-user-was-previously-unaffiliated-with-organization": { + "$ref": "#/components/examples/org-membership-response-if-user-was-previously-unaffiliated-with-organization" + }, + "response-if-user-already-had-membership-with-organization": { + "$ref": "#/components/examples/org-membership-response-if-user-already-had-membership-with-organization" + } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "members" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove organization membership for a user", + "description": "In order to remove a user's membership with an organization, the authenticated user must be an organization owner.\n\nIf the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases.", + "tags": ["orgs"], + "operationId": "orgs/remove-membership-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#remove-organization-membership-for-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { + "204": { "description": "Empty response" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "members" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/migrations": { + "get": { + "summary": "List organization migrations", + "description": "Lists the most recent migrations.", + "tags": ["migrations"], + "operationId": "migrations/list-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#list-organization-migrations" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/migration" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/migration-with-short-org-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "wyandotte", + "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" + } + ], + "category": "migrations", + "subcategory": "orgs" + }, + "x-octokit": {} + }, + "post": { + "summary": "Start an organization migration", + "description": "Initiates the generation of a migration archive.", + "tags": ["migrations"], + "operationId": "migrations/start-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#start-an-organization-migration" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "repositories": { + "type": "array", + "description": "A list of arrays indicating which repositories should be migrated.", + "items": { "type": "string" } + }, + "lock_repositories": { + "type": "boolean", + "description": "Indicates whether repositories should be locked (to prevent manipulation) while migrating data.", + "default": false + }, + "exclude_attachments": { + "type": "boolean", + "description": "Indicates whether attachments should be excluded from the migration (to reduce migration archive file size).", + "default": false + }, + "exclude": { "type": "array", "items": { "type": "string" } } + }, + "required": ["repositories"] + }, + "example": { + "repositories": ["github/Hello-World"], + "lock_repositories": true + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/migration" }, + "examples": { + "default": { + "$ref": "#/components/examples/migration-with-short-org-2" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "migrations", + "subcategory": "orgs" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/migrations/{migration_id}": { + "get": { + "summary": "Get an organization migration status", + "description": "Fetches the status of a migration.\n\nThe `state` of a migration can be one of the following values:\n\n* `pending`, which means the migration hasn't started yet.\n* `exporting`, which means the migration is in progress.\n* `exported`, which means the migration finished successfully.\n* `failed`, which means the migration failed.", + "tags": ["migrations"], + "operationId": "migrations/get-status-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#get-an-organization-migration-status" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/migration_id" } + ], + "responses": { + "200": { + "description": "* `pending`, which means the migration hasn't started yet.\n* `exporting`, which means the migration is in progress.\n* `exported`, which means the migration finished successfully.\n* `failed`, which means the migration failed.", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/migration" }, + "examples": { + "default": { + "$ref": "#/components/examples/migration-with-short-org" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "wyandotte", + "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" + } + ], + "category": "migrations", + "subcategory": "orgs" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/migrations/{migration_id}/archive": { + "get": { + "summary": "Download an organization migration archive", + "description": "Fetches the URL to a migration archive.", + "tags": ["migrations"], + "operationId": "migrations/download-archive-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#download-an-organization-migration-archive" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/migration_id" } + ], + "responses": { + "302": { "description": "response" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "wyandotte", + "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" + } + ], + "category": "migrations", + "subcategory": "orgs" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete an organization migration archive", + "description": "Deletes a previous migration archive. Migration archives are automatically deleted after seven days.", + "tags": ["migrations"], + "operationId": "migrations/delete-archive-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#delete-an-organization-migration-archive" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/migration_id" } + ], + "responses": { + "204": { "description": "Empty response" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "wyandotte", + "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" + } + ], + "category": "migrations", + "subcategory": "orgs" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock": { + "delete": { + "summary": "Unlock an organization repository", + "description": "Unlocks a repository that was locked for migration. You should unlock each migrated repository and [delete them](https://docs.github.com/rest/reference/repos#delete-a-repository) when the migration is complete and you no longer need the source data.", + "tags": ["migrations"], + "operationId": "migrations/unlock-repo-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#unlock-an-organization-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/migration_id" }, + { "$ref": "#/components/parameters/repo_name" } + ], + "responses": { + "204": { "description": "Empty response" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "wyandotte", + "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" + } + ], + "category": "migrations", + "subcategory": "orgs" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/migrations/{migration_id}/repositories": { + "get": { + "summary": "List repositories in an organization migration", + "description": "List all the repositories for this organization migration.", + "tags": ["migrations"], + "operationId": "migrations/list-repos-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#list-repositories-in-an-organization-migration" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/migration_id" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/minimal-repository" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/minimal-repository-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "wyandotte", + "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" + } + ], + "category": "migrations", + "subcategory": "orgs" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/outside_collaborators": { + "get": { + "summary": "List outside collaborators for an organization", + "description": "List all users who are outside collaborators of an organization.", + "tags": ["orgs"], + "operationId": "orgs/list-outside-collaborators", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#list-outside-collaborators-for-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { + "name": "filter", + "description": "Filter the list of outside collaborators. Can be one of: \n\\* `2fa_disabled`: Outside collaborators without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled. \n\\* `all`: All outside collaborators.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["2fa_disabled", "all"], + "default": "all" + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "outside-collaborators" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/outside_collaborators/{username}": { + "put": { + "summary": "Convert an organization member to outside collaborator", + "description": "When an organization member is converted to an outside collaborator, they'll only have access to the repositories that their current team membership allows. The user will no longer be a member of the organization. For more information, see \"[Converting an organization member to an outside collaborator](https://help.github.com/articles/converting-an-organization-member-to-an-outside-collaborator/)\".", + "tags": ["orgs"], + "operationId": "orgs/convert-member-to-outside-collaborator", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#convert-an-organization-member-to-outside-collaborator" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { + "202": { "description": "User is getting converted asynchronously" }, + "204": { "description": "User was converted" }, + "403": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { "type": "string" }, + "documentation_url": { "type": "string" } + } + }, + "examples": { + "response-if-user-is-the-last-owner-of-the-organization": { + "summary": "Response if user is the last owner of the organization", + "value": { + "message": "Cannot convert the last owner to an outside collaborator", + "documentation_url": "https://docs.github.com/rest/reference/orgs#convert-member-to-outside-collaborator" + } + }, + "response-if-user-is-not-a-member-of-the-organization": { + "summary": "Response if user is not a member of the organization", + "value": { + "message": " is not a member of the organization.", + "documentation_url": "https://docs.github.com/rest/reference/orgs#convert-member-to-outside-collaborator" + } + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "outside-collaborators" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove outside collaborator from an organization", + "description": "Removing a user from this list will remove them from all the organization's repositories.", + "tags": ["orgs"], + "operationId": "orgs/remove-outside-collaborator", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#remove-outside-collaborator-from-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { + "204": { "description": "Empty response" }, + "422": { + "description": "Response if user is a member of the organization", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { "type": "string" }, + "documentation_url": { "type": "string" } + } + }, + "examples": { + "response-if-user-is-a-member-of-the-organization": { + "value": { + "message": "You cannot specify an organization member to remove as an outside collaborator.", + "documentation_url": "https://docs.github.com/rest/reference/orgs#remove-outside-collaborator" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "outside-collaborators" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/projects": { + "get": { + "summary": "List organization projects", + "description": "Lists the projects in an organization. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned.", + "tags": ["projects"], + "operationId": "projects/list-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/projects/#list-organization-projects" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { + "name": "state", + "description": "Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["open", "closed", "all"], + "default": "open" + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/project" } + }, + "examples": { + "default": { "$ref": "#/components/examples/project-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "422": { "$ref": "#/components/responses/validation_failed_simple" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": null + }, + "x-octokit": {} + }, + "post": { + "summary": "Create an organization project", + "description": "Creates an organization project board. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned.", + "tags": ["projects"], + "operationId": "projects/create-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/projects/#create-an-organization-project" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the project." + }, + "body": { + "type": "string", + "description": "The description of the project." + } + }, + "required": ["name"] + }, + "example": { + "name": "Organization Roadmap", + "body": "High-level roadmap for the upcoming year." + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/project" }, + "examples": { + "default": { "$ref": "#/components/examples/project-2" } + } + } + } + }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "410": { "$ref": "#/components/responses/gone" }, + "422": { "$ref": "#/components/responses/validation_failed_simple" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/public_members": { + "get": { + "summary": "List public organization members", + "description": "Members of an organization can choose to have their membership publicized or not.", + "tags": ["orgs"], + "operationId": "orgs/list-public-members", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#list-public-organization-members" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "members" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/public_members/{username}": { + "get": { + "summary": "Check public organization membership for a user", + "description": "", + "tags": ["orgs"], + "operationId": "orgs/check-public-membership-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#check-public-organization-membership-for-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { + "204": { "description": "Response if user is a public member" }, + "404": { "description": "Response if user is not a public member" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": "members" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set public organization membership for the authenticated user", + "description": "The user can publicize their own membership. (A user cannot publicize the membership for another user.)\n\nNote that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"", + "tags": ["orgs"], + "operationId": "orgs/set-public-membership-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#set-public-organization-membership-for-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { + "204": { "description": "Empty response" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "orgs", + "subcategory": "members" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove public organization membership for the authenticated user", + "description": "", + "tags": ["orgs"], + "operationId": "orgs/remove-public-membership-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#remove-public-organization-membership-for-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "orgs", + "subcategory": "members" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/repos": { + "get": { + "summary": "List organization repositories", + "description": "Lists repositories for the specified organization.", + "tags": ["repos"], + "operationId": "repos/list-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#list-organization-repositories" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { + "name": "type", + "description": "Specifies the types of repositories you want returned. Can be one of `all`, `public`, `private`, `forks`, `sources`, `member`, `internal`. Default: `all`. If your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+, `type` can also be `internal`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "all", + "public", + "private", + "forks", + "sources", + "member", + "internal" + ] + } + }, + { + "name": "sort", + "description": "Can be one of `created`, `updated`, `pushed`, `full_name`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["created", "updated", "pushed", "full_name"], + "default": "created" + } + }, + { + "name": "direction", + "description": "Can be one of `asc` or `desc`. Default: when using `full_name`: `asc`, otherwise `desc`", + "in": "query", + "required": false, + "schema": { "type": "string", "enum": ["asc", "desc"] } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/minimal-repository" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/minimal-repository-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "nebula", + "note": "You can set the visibility of a repository using the new `visibility` parameter in the [Repositories API](https://docs.github.com/rest/reference/repos/), and get a repository's visibility with a new response key. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes/).\n\nTo access repository visibility during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.nebula-preview+json\n```" + }, + { + "required": false, + "name": "baptiste", + "note": "The `is_template` and `template_repository` keys are currently available for developer to preview. See [Create a repository using a template](https://docs.github.com/repos#create-a-repository-using-a-template) to learn how to create template repositories. To access these new response keys during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.baptiste-preview+json\n```" + } + ], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + }, + "post": { + "summary": "Create an organization repository", + "description": "Creates a new repository in the specified organization. The authenticated user must be a member of the organization.\n\n**OAuth scope requirements**\n\nWhen using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include:\n\n* `public_repo` scope or `repo` scope to create a public repository\n* `repo` scope to create a private repository", + "tags": ["repos"], + "operationId": "repos/create-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#create-an-organization-repository" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the repository." + }, + "description": { + "type": "string", + "description": "A short description of the repository." + }, + "homepage": { + "type": "string", + "description": "A URL with more information about the repository." + }, + "private": { + "type": "boolean", + "description": "Either `true` to create a private repository or `false` to create a public one.", + "default": false + }, + "visibility": { + "type": "string", + "description": "Can be `public` or `private`. If your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+, `visibility` can also be `internal`. For more information, see \"[Creating an internal repository](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-repository-visibility#about-internal-repositories)\" in the GitHub Help documentation. \nThe `visibility` parameter overrides the `private` parameter when you use both parameters with the `nebula-preview` preview header.", + "enum": ["public", "private", "visibility", "internal"] + }, + "has_issues": { + "type": "boolean", + "description": "Either `true` to enable issues for this repository or `false` to disable them.", + "default": true + }, + "has_projects": { + "type": "boolean", + "description": "Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error.", + "default": true + }, + "has_wiki": { + "type": "boolean", + "description": "Either `true` to enable the wiki for this repository or `false` to disable it.", + "default": true + }, + "is_template": { + "type": "boolean", + "description": "Either `true` to make this repo available as a template repository or `false` to prevent it.", + "default": false + }, + "team_id": { + "type": "integer", + "description": "The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization." + }, + "auto_init": { + "type": "boolean", + "description": "Pass `true` to create an initial commit with empty README.", + "default": false + }, + "gitignore_template": { + "type": "string", + "description": "Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, \"Haskell\"." + }, + "license_template": { + "type": "string", + "description": "Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://help.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, \"mit\" or \"mpl-2.0\"." + }, + "allow_squash_merge": { + "type": "boolean", + "description": "Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging.", + "default": true + }, + "allow_merge_commit": { + "type": "boolean", + "description": "Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits.", + "default": true + }, + "allow_rebase_merge": { + "type": "boolean", + "description": "Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging.", + "default": true + }, + "delete_branch_on_merge": { + "type": "boolean", + "description": "Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion.", + "default": false + } + }, + "required": ["name"] + }, + "example": { + "name": "Hello-World", + "description": "This is your first repository", + "homepage": "https://github.com", + "private": false, + "has_issues": true, + "has_projects": true, + "has_wiki": true + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/repository" }, + "examples": { + "default": { "$ref": "#/components/examples/repository" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World", + "schema": { "type": "string" } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "nebula", + "note": "You can set the visibility of a repository using the new `visibility` parameter in the [Repositories API](https://docs.github.com/rest/reference/repos/), and get a repository's visibility with a new response key. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes/).\n\nTo access repository visibility during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.nebula-preview+json\n```" + }, + { + "required": false, + "name": "baptiste", + "note": "The `is_template` and `template_repository` keys are currently available for developer to preview. See [Create a repository using a template](https://docs.github.com/repos#create-a-repository-using-a-template) to learn how to create template repositories. To access these new response keys during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.baptiste-preview+json\n```" + } + ], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/settings/billing/actions": { + "get": { + "summary": "Get GitHub Actions billing for an organization", + "description": "Gets the summary of the free and paid GitHub Actions minutes used.\n\nPaid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see \"[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)\".\n\nAccess tokens must have the `repo` or `admin:org` scope.", + "operationId": "billing/get-github-actions-billing-org", + "tags": ["billing"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/billing/#get-github-actions-billing-for-an-organization" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-billing-usage" + }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-billing-usage" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "billing", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/settings/billing/packages": { + "get": { + "summary": "Get GitHub Packages billing for an organization", + "description": "Gets the free and paid storage usued for GitHub Packages in gigabytes.\n\nPaid minutes only apply to packages stored for private repositories. For more information, see \"[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages).\"\n\nAccess tokens must have the `repo` or `admin:org` scope.", + "operationId": "billing/get-github-packages-billing-org", + "tags": ["billing"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/billing/#get-github-packages-billing-for-an-organization" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/packages-billing-usage" + }, + "examples": { + "default": { + "$ref": "#/components/examples/packages-billing-usage" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "billing", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/settings/billing/shared-storage": { + "get": { + "summary": "Get shared storage billing for an organization", + "description": "Gets the estimated paid and estimated total storage used for GitHub Actions and Github Packages.\n\nPaid minutes only apply to packages stored for private repositories. For more information, see \"[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages).\"\n\nAccess tokens must have the `repo` or `admin:org` scope.", + "operationId": "billing/get-shared-storage-billing-org", + "tags": ["billing"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/billing/#get-shared-storage-billing-for-an-organization" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/combined-billing-usage" + }, + "examples": { + "default": { + "$ref": "#/components/examples/combined-billing-usage" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "billing", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/team-sync/groups": { + "get": { + "summary": "List IdP groups for an organization", + "description": "Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nList IdP groups available in an organization. You can limit your page results using the `per_page` parameter. GitHub generates a url-encoded `page` token using a cursor value for where the next page begins. For more information on cursor pagination, see \"[Offset and Cursor Pagination explained](https://dev.to/jackmarchant/offset-and-cursor-pagination-explained-b89).\"\n\nThe `per_page` parameter provides pagination for a list of IdP groups the authenticated user can access in an organization. For example, if the user `octocat` wants to see two groups per page in `octo-org` via cURL, it would look like this:", + "tags": ["teams"], + "operationId": "teams/list-idp-groups-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#list-idp-groups-for-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/group-mapping" }, + "examples": { + "default": { "$ref": "#/components/examples/group-mapping-3" } + } + } + }, + "headers": { + "Link": { + "example": "; rel=\"next\"", + "schema": { "type": "string" } + } + } + } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": "team-sync" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/teams": { + "get": { + "summary": "List teams", + "description": "Lists all teams in an organization that are visible to the authenticated user.", + "tags": ["teams"], + "operationId": "teams/list", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#list-teams" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/team" } + }, + "examples": { + "default": { "$ref": "#/components/examples/team-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": null + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a team", + "description": "To create a team, the authenticated user must be a member or owner of `{org}`. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see \"[Setting team creation permissions](https://help.github.com/en/articles/setting-team-creation-permissions-in-your-organization).\"\n\nWhen you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of `maintainers`. For more information, see \"[About teams](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/about-teams)\".", + "tags": ["teams"], + "operationId": "teams/create", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#create-a-team" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the team." + }, + "description": { + "type": "string", + "description": "The description of the team." + }, + "maintainers": { + "type": "array", + "description": "List GitHub IDs for organization members who will become team maintainers.", + "items": { "type": "string" } + }, + "repo_names": { + "type": "array", + "description": "The full name (e.g., \"organization-name/repository-name\") of repositories to add the team to.", + "items": { "type": "string" } + }, + "privacy": { + "type": "string", + "description": "The level of privacy this team should have. The options are: \n**For a non-nested team:** \n\\* `secret` - only visible to organization owners and members of this team. \n\\* `closed` - visible to all members of this organization. \nDefault: `secret` \n**For a parent or child team:** \n\\* `closed` - visible to all members of this organization. \nDefault for child team: `closed`", + "enum": ["secret", "closed"] + }, + "permission": { + "type": "string", + "description": "**Deprecated**. The permission that new repositories will be added to the team with when none is specified. Can be one of: \n\\* `pull` - team members can pull, but not push to or administer newly-added repositories. \n\\* `push` - team members can pull and push, but not administer newly-added repositories. \n\\* `admin` - team members can pull, push and administer newly-added repositories.", + "enum": ["pull", "push", "admin"], + "default": "pull" + }, + "parent_team_id": { + "type": "integer", + "description": "The ID of a team to set as the parent team." + } + }, + "required": ["name"] + }, + "example": { + "name": "Justice League", + "description": "A great team", + "permission": "admin", + "privacy": "closed" + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/team-full" }, + "examples": { + "default": { "$ref": "#/components/examples/team-full" } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/teams/{team_slug}": { + "get": { + "summary": "Get a team by name", + "description": "Gets a team using the team's `slug`. GitHub generates the `slug` from the team `name`.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}`.", + "tags": ["teams"], + "operationId": "teams/get-by-name", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#get-a-team-by-name" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/team-full" }, + "examples": { + "default": { "$ref": "#/components/examples/team-full" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": null + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a team", + "description": "To edit a team, the authenticated user must either be an organization owner or a team maintainer.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}`.", + "tags": ["teams"], + "operationId": "teams/update-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#update-a-team" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the team." + }, + "description": { + "type": "string", + "description": "The description of the team." + }, + "privacy": { + "type": "string", + "description": "The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. When a team is nested, the `privacy` for parent teams cannot be `secret`. The options are: \n**For a non-nested team:** \n\\* `secret` - only visible to organization owners and members of this team. \n\\* `closed` - visible to all members of this organization. \n**For a parent or child team:** \n\\* `closed` - visible to all members of this organization.", + "enum": ["secret", "closed"] + }, + "permission": { + "type": "string", + "description": "**Deprecated**. The permission that new repositories will be added to the team with when none is specified. Can be one of: \n\\* `pull` - team members can pull, but not push to or administer newly-added repositories. \n\\* `push` - team members can pull and push, but not administer newly-added repositories. \n\\* `admin` - team members can pull, push and administer newly-added repositories.", + "enum": ["pull", "push", "admin"], + "default": "pull" + }, + "parent_team_id": { + "type": "integer", + "description": "The ID of a team to set as the parent team." + } + }, + "required": ["name"] + }, + "example": { + "name": "new team name", + "description": "new team description", + "privacy": "closed" + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/team-full" }, + "examples": { + "default": { "$ref": "#/components/examples/team-full" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": null + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a team", + "description": "To delete a team, the authenticated user must be an organization owner or team maintainer.\n\nIf you are an organization owner, deleting a parent team will delete all of its child teams as well.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}`.", + "tags": ["teams"], + "operationId": "teams/delete-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#delete-a-team" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/teams/{team_slug}/discussions": { + "get": { + "summary": "List discussions", + "description": "List all discussions on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions`.", + "tags": ["teams"], + "operationId": "teams/list-discussions-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#list-discussions" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/direction" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/team-discussion" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-discussion-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "teams", + "subcategory": "discussions" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a discussion", + "description": "Creates a new discussion post on a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\nThis endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See \"[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)\" and \"[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)\" for details.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions`.", + "tags": ["teams"], + "operationId": "teams/create-discussion-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#create-a-discussion" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The discussion post's title." + }, + "body": { + "type": "string", + "description": "The discussion post's body text." + }, + "private": { + "type": "boolean", + "description": "Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to `true` to create a private post.", + "default": false + } + }, + "required": ["title", "body"] + }, + "example": { + "title": "Our first team post", + "body": "Hi! This is an area for us to collaborate as a team." + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/team-discussion" }, + "examples": { + "default": { "$ref": "#/components/examples/team-discussion" } + } + } + } + } + }, + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "teams", + "subcategory": "discussions" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": { + "get": { + "summary": "Get a discussion", + "description": "Get a specific discussion on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`.", + "tags": ["teams"], + "operationId": "teams/get-discussion-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#get-a-discussion" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/discussion-number" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/team-discussion" }, + "examples": { + "default": { "$ref": "#/components/examples/team-discussion" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "teams", + "subcategory": "discussions" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a discussion", + "description": "Edits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`.", + "tags": ["teams"], + "operationId": "teams/update-discussion-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#update-a-discussion" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/discussion-number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The discussion post's title." + }, + "body": { + "type": "string", + "description": "The discussion post's body text." + } + } + }, + "example": { "title": "Welcome to our first team post" } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/team-discussion" }, + "examples": { + "default": { + "$ref": "#/components/examples/team-discussion-2" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "teams", + "subcategory": "discussions" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a discussion", + "description": "Delete a discussion from a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`.", + "tags": ["teams"], + "operationId": "teams/delete-discussion-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#delete-a-discussion" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/discussion-number" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": "discussions" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments": { + "get": { + "summary": "List discussion comments", + "description": "List all comments on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`.", + "tags": ["teams"], + "operationId": "teams/list-discussion-comments-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#list-discussion-comments" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/discussion-number" }, + { "$ref": "#/components/parameters/direction" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/team-discussion-comment" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-discussion-comment-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "teams", + "subcategory": "discussion-comments" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a discussion comment", + "description": "Creates a new comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\nThis endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See \"[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)\" and \"[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)\" for details.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`.", + "tags": ["teams"], + "operationId": "teams/create-discussion-comment-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#create-a-discussion-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/discussion-number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The discussion comment's body text." + } + }, + "required": ["body"] + }, + "example": { "body": "Do you like apples?" } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/team-discussion-comment" + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-discussion-comment" + } + } + } + } + } + }, + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "teams", + "subcategory": "discussion-comments" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": { + "get": { + "summary": "Get a discussion comment", + "description": "Get a specific comment on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`.", + "tags": ["teams"], + "operationId": "teams/get-discussion-comment-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#get-a-discussion-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/discussion-number" }, + { "$ref": "#/components/parameters/comment-number" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/team-discussion-comment" + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-discussion-comment" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "teams", + "subcategory": "discussion-comments" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a discussion comment", + "description": "Edits the body text of a discussion comment. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`.", + "tags": ["teams"], + "operationId": "teams/update-discussion-comment-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#update-a-discussion-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/discussion-number" }, + { "$ref": "#/components/parameters/comment-number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The discussion comment's body text." + } + }, + "required": ["body"] + }, + "example": { "body": "Do you like pineapples?" } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/team-discussion-comment" + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-discussion-comment-2" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "teams", + "subcategory": "discussion-comments" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a discussion comment", + "description": "Deletes a comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`.", + "tags": ["teams"], + "operationId": "teams/delete-discussion-comment-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#delete-a-discussion-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/discussion-number" }, + { "$ref": "#/components/parameters/comment-number" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": "discussion-comments" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions": { + "get": { + "summary": "List reactions for a team discussion comment", + "description": "List the reactions to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments/). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`.", + "tags": ["reactions"], + "operationId": "reactions/list-for-team-discussion-comment-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#list-reactions-for-a-team-discussion-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/discussion-number" }, + { "$ref": "#/components/parameters/comment-number" }, + { + "name": "content", + "description": "Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a team discussion comment.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/reaction" } + }, + "examples": { + "default": { "$ref": "#/components/examples/reaction-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "reactions", + "subcategory": null + }, + "x-octokit": {} + }, + "post": { + "summary": "Create reaction for a team discussion comment", + "description": "Create a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with a `Status: 200 OK` means that you already added the reaction type to this team discussion comment.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`.", + "tags": ["reactions"], + "operationId": "reactions/create-for-team-discussion-comment-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#create-reaction-for-a-team-discussion-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/discussion-number" }, + { "$ref": "#/components/parameters/comment-number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the team discussion comment.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + "required": ["content"] + }, + "example": { "content": "heart" } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/reaction" }, + "examples": { + "default": { "$ref": "#/components/examples/reaction" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "reactions", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}": { + "delete": { + "summary": "Delete team discussion comment reaction", + "description": "**Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions/:reaction_id`.\n\nDelete a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "tags": ["reactions"], + "operationId": "reactions/delete-for-team-discussion-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#delete-team-discussion-comment-reaction" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/discussion-number" }, + { "$ref": "#/components/parameters/comment-number" }, + { "$ref": "#/components/parameters/reaction-id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "reactions", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions": { + "get": { + "summary": "List reactions for a team discussion", + "description": "List the reactions to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`.", + "tags": ["reactions"], + "operationId": "reactions/list-for-team-discussion-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#list-reactions-for-a-team-discussion" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/discussion-number" }, + { + "name": "content", + "description": "Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a team discussion.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/reaction" } + }, + "examples": { + "default": { "$ref": "#/components/examples/reaction-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "reactions", + "subcategory": null + }, + "x-octokit": {} + }, + "post": { + "summary": "Create reaction for a team discussion", + "description": "Create a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with a `Status: 200 OK` means that you already added the reaction type to this team discussion.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`.", + "tags": ["reactions"], + "operationId": "reactions/create-for-team-discussion-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#create-reaction-for-a-team-discussion" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/discussion-number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the team discussion.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + "required": ["content"] + }, + "example": { "content": "heart" } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/reaction" }, + "examples": { + "default": { "$ref": "#/components/examples/reaction" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "reactions", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}": { + "delete": { + "summary": "Delete team discussion reaction", + "description": "**Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions/:reaction_id`.\n\nDelete a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "tags": ["reactions"], + "operationId": "reactions/delete-for-team-discussion", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#delete-team-discussion-reaction" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/discussion-number" }, + { "$ref": "#/components/parameters/reaction-id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "reactions", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/teams/{team_slug}/invitations": { + "get": { + "summary": "List pending team invitations", + "description": "The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/invitations`.", + "tags": ["teams"], + "operationId": "teams/list-pending-invitations-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#list-pending-team-invitations" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-invitation" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/organization-invitation-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": "members" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/teams/{team_slug}/members": { + "get": { + "summary": "List team members", + "description": "Team members will include the members of child teams.\n\nTo list members in a team, the team must be visible to the authenticated user.", + "tags": ["teams"], + "operationId": "teams/list-members-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#list-team-members" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { + "name": "role", + "description": "Filters members returned by their role in the team. Can be one of: \n\\* `member` - normal members of the team. \n\\* `maintainer` - team maintainers. \n\\* `all` - all members of the team.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["member", "maintainer", "all"], + "default": "all" + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": "members" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/teams/{team_slug}/memberships/{username}": { + "get": { + "summary": "Get team membership for a user", + "description": "Team members will include the members of child teams.\n\nTo get a user's membership with a team, the team must be visible to the authenticated user.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/memberships/{username}`.\n\n**Note:** The `role` for organization owners returns as `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/reference/teams#create-a-team).", + "tags": ["teams"], + "operationId": "teams/get-membership-for-user-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#get-team-membership-for-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/team-membership" }, + "examples": { + "response-if-user-has-an-active-membership-with-team": { + "$ref": "#/components/examples/team-membership-response-if-user-has-an-active-membership-with-team" + }, + "response-if-user-is-a-team-maintainer": { + "$ref": "#/components/examples/team-membership-response-if-user-is-a-team-maintainer" + }, + "response-if-user-has-a-pending-membership-with-team": { + "$ref": "#/components/examples/team-membership-response-if-user-has-a-pending-membership-with-team" + } + } + } + } + }, + "404": { "description": "Response if user has no team membership" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": "members" + }, + "x-octokit": {} + }, + "put": { + "summary": "Add or update team membership for a user", + "description": "Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nAdds an organization member to a team. An authenticated organization owner or team maintainer can add organization members to a team.\n\n**Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see \"[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/).\"\n\nAn organization owner can add someone who is not part of the team's organization to a team. When an organization owner adds someone to a team who is not an organization member, this endpoint will send an invitation to the person via email. This newly-created membership will be in the \"pending\" state until the person accepts the invitation, at which point the membership will transition to the \"active\" state and the user will be added as a member of the team.\n\nIf the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/memberships/{username}`.", + "tags": ["teams"], + "operationId": "teams/add-or-update-membership-for-user-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#add-or-update-team-membership-for-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/username" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "role": { + "type": "string", + "description": "The role that this user should have in the team. Can be one of: \n\\* `member` - a normal member of the team. \n\\* `maintainer` - a team maintainer. Able to add/remove other team members, promote other team members to team maintainer, and edit the team's name and description.", + "enum": ["member", "maintainer"], + "default": "member" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/team-membership" }, + "examples": { + "response-if-users-membership-with-team-is-now-active": { + "$ref": "#/components/examples/team-membership-response-if-users-membership-with-team-is-now-active" + }, + "response-if-users-membership-with-team-is-now-pending": { + "$ref": "#/components/examples/team-membership-response-if-users-membership-with-team-is-now-pending" + } + } + } + } + }, + "403": { + "description": "Response if team synchronization is set up" + }, + "422": { + "description": "Response if you attempt to add an organization to a team", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { "type": "string" }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { "type": "string" }, + "field": { "type": "string" }, + "resource": { "type": "string" } + } + } + } + } + }, + "examples": { + "response-if-you-attempt-to-add-an-organization-to-a-team": { + "value": { + "message": "Cannot add an organization as a member.", + "errors": [ + { + "code": "org", + "field": "user", + "resource": "TeamMember" + } + ] + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": "members" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove team membership for a user", + "description": "Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nTo remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team.\n\n**Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see \"[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/).\"\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/memberships/{username}`.", + "tags": ["teams"], + "operationId": "teams/remove-membership-for-user-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#remove-team-membership-for-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { + "204": { "description": "Empty response" }, + "403": { "description": "Response if team synchronization is set up" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": "members" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/teams/{team_slug}/projects": { + "get": { + "summary": "List team projects", + "description": "Lists the organization projects for a team.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects`.", + "tags": ["teams"], + "operationId": "teams/list-projects-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#list-team-projects" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/team-project" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-project-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "teams", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/teams/{team_slug}/projects/{project_id}": { + "get": { + "summary": "Check team permissions for a project", + "description": "Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects/{project_id}`.", + "tags": ["teams"], + "operationId": "teams/check-permissions-for-project-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#check-team-permissions-for-a-project" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/project-id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/team-project" }, + "examples": { + "default": { "$ref": "#/components/examples/team-project" } + } + } + } + }, + "404": { + "description": "Response if project is not managed by this team" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "teams", + "subcategory": null + }, + "x-octokit": {} + }, + "put": { + "summary": "Add or update team project permissions", + "description": "Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/projects/{project_id}`.", + "tags": ["teams"], + "operationId": "teams/add-or-update-project-permissions-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#add-or-update-team-project-permissions" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/project-id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "permission": { + "type": "string", + "description": "The permission to grant to the team for this project. Can be one of: \n\\* `read` - team members can read, but not write to or administer this project. \n\\* `write` - team members can read and write, but not administer this project. \n\\* `admin` - team members can read, write and administer this project. \nDefault: the team's `permission` attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"", + "enum": ["read", "write", "admin"] + } + } + } + } + } + }, + "responses": { + "204": { "description": "Empty response" }, + "403": { + "description": "Response if the project is not owned by the organization", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { "type": "string" }, + "documentation_url": { "type": "string" } + } + }, + "examples": { + "response-if-the-project-is-not-owned-by-the-organization": { + "value": { + "message": "Must have admin rights to Repository.", + "documentation_url": "https://docs.github.com/rest/reference/teams#add-or-update-team-project-permissions" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "teams", + "subcategory": null + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove a project from a team", + "description": "Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. This endpoint removes the project from the team, but does not delete the project.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/projects/{project_id}`.", + "tags": ["teams"], + "operationId": "teams/remove-project-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#remove-a-project-from-a-team" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/project-id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/teams/{team_slug}/repos": { + "get": { + "summary": "List team repositories", + "description": "Lists a team's repositories visible to the authenticated user.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`.", + "tags": ["teams"], + "operationId": "teams/list-repos-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#list-team-repositories" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/minimal-repository" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/minimal-repository-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": { + "get": { + "summary": "Check team permissions for a repository", + "description": "Checks whether a team has `admin`, `push`, `maintain`, `triage`, or `pull` permission for a repository. Repositories inherited through a parent team will also be checked.\n\nYou can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `application/vnd.github.v3.repository+json` accept header.\n\nIf a team doesn't have permission for the repository, you will receive a `404 Not Found` response status.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`.", + "tags": ["teams"], + "operationId": "teams/check-permissions-for-repo-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#check-team-permissions-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "Alternative response with repository permissions", + "content": { + "application/vnd.github.v3.repository+json": { + "schema": { "$ref": "#/components/schemas/team-repository" }, + "examples": { + "alternative-response-with-repository-permissions": { + "$ref": "#/components/examples/team-repository-alternative-response-with-repository-permissions" + } + } + } + } + }, + "204": { + "description": "Response if team has permission for the repository" + }, + "404": { + "description": "Response if team does not have permission for the repository" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": null + }, + "x-octokit": {} + }, + "put": { + "summary": "Add or update team repository permissions", + "description": "To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`.\n\nFor more information about the permission levels, see \"[Repository permission levels for an organization](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)\".", + "tags": ["teams"], + "operationId": "teams/add-or-update-repo-permissions-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#add-or-update-team-repository-permissions" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "permission": { + "type": "string", + "description": "The permission to grant the team on this repository. Can be one of: \n\\* `pull` - team members can pull, but not push to or administer this repository. \n\\* `push` - team members can pull and push, but not administer this repository. \n\\* `admin` - team members can pull, push and administer this repository. \n\\* `maintain` - team members can manage the repository without access to sensitive or destructive actions. Recommended for project managers. Only applies to repositories owned by organizations. \n\\* `triage` - team members can proactively manage issues and pull requests without write access. Recommended for contributors who triage a repository. Only applies to repositories owned by organizations. \n \nIf no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository.", + "enum": ["pull", "push", "admin", "maintain", "triage"] + } + } + } + } + } + }, + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": null + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove a repository from a team", + "description": "If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`.", + "tags": ["teams"], + "operationId": "teams/remove-repo-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#remove-a-repository-from-a-team" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/orgs/{org}/teams/{team_slug}/team-sync/group-mappings": { + "get": { + "summary": "List IdP groups for a team", + "description": "Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nList IdP groups connected to a team on GitHub.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/team-sync/group-mappings`.", + "tags": ["teams"], + "operationId": "teams/list-idp-groups-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#list-idp-groups-for-a-team" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/group-mapping" }, + "examples": { + "default": { "$ref": "#/components/examples/group-mapping-3" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": false, + "previews": [], + "category": "teams", + "subcategory": "team-sync" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Create or update IdP group connections", + "description": "Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nCreates, updates, or removes a connection between a team and an IdP group. When adding groups to a team, you must include all new and existing groups to avoid replacing existing groups with the new ones. Specifying an empty `groups` array will remove all connections for a team.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/team-sync/group-mappings`.", + "tags": ["teams"], + "operationId": "teams/create-or-update-idp-group-connections-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#create-or-update-idp-group-connections" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "groups": { + "type": "array", + "description": "The IdP groups you want to connect to a GitHub team. When updating, the new `groups` object will replace the original one. You must include any existing groups that you don't want to remove.", + "items": { + "type": "object", + "properties": { + "group_id": { + "type": "string", + "description": "ID of the IdP group." + }, + "group_name": { + "type": "string", + "description": "Name of the IdP group." + }, + "group_description": { + "type": "string", + "description": "Description of the IdP group." + } + }, + "required": [ + "group_id", + "group_name", + "group_description" + ] + } + } + }, + "required": ["groups"] + }, + "example": { + "groups": [ + { + "group_id": "123", + "group_name": "Octocat admins", + "group_description": "string" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/group-mapping" }, + "examples": { + "default": { "$ref": "#/components/examples/group-mapping" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": false, + "previews": [], + "category": "teams", + "subcategory": "team-sync" + }, + "x-octokit": {} + } + }, + "/orgs/{org}/teams/{team_slug}/teams": { + "get": { + "summary": "List child teams", + "description": "Lists the child teams of the team specified by `{team_slug}`.\n\n**Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/teams`.", + "tags": ["teams"], + "operationId": "teams/list-child-in-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#list-child-teams" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/team_slug" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "Response if child teams exist", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/team" } + }, + "examples": { + "response-if-child-teams-exist": { + "$ref": "#/components/examples/team-items-response-if-child-teams-exist" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "teams", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/projects/columns/cards/{card_id}": { + "get": { + "summary": "Get a project card", + "description": "", + "tags": ["projects"], + "operationId": "projects/get-card", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/projects#get-a-project-card" + }, + "parameters": [{ "$ref": "#/components/parameters/card_id" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/project-card" }, + "examples": { + "default": { "$ref": "#/components/examples/project-card" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": "cards" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update an existing project card", + "description": "", + "tags": ["projects"], + "operationId": "projects/update-card", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/projects#update-a-project-card" + }, + "parameters": [{ "$ref": "#/components/parameters/card_id" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "note": { + "description": "The project card's note", + "example": "Update all gems", + "type": "string", + "nullable": true + }, + "archived": { + "description": "Whether or not the card is archived", + "example": false, + "type": "boolean" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/project-card" }, + "examples": { + "default": { "$ref": "#/components/examples/project-card" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed_simple" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": "cards" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a project card", + "description": "", + "tags": ["projects"], + "operationId": "projects/delete-card", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/projects#delete-a-project-card" + }, + "parameters": [{ "$ref": "#/components/parameters/card_id" }], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { "type": "string" }, + "documentation_url": { "type": "string" }, + "errors": { "type": "array", "items": { "type": "string" } } + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": "cards" + }, + "x-octokit": {} + } + }, + "/projects/columns/cards/{card_id}/moves": { + "post": { + "summary": "Move a project card", + "description": "", + "tags": ["projects"], + "operationId": "projects/move-card", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/projects#move-a-project-card" + }, + "parameters": [{ "$ref": "#/components/parameters/card_id" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "position": { + "description": "The position of the card in a column", + "example": "bottom", + "type": "string", + "pattern": "^(?:top|bottom|after:\\d+)$" + }, + "column_id": { + "description": "The unique identifier of the column the card should be moved to", + "example": 42, + "type": "integer" + } + }, + "required": ["position"], + "type": "object" + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": {}, + "additionalProperties": false + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { "type": "string" }, + "documentation_url": { "type": "string" }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { "type": "string" }, + "message": { "type": "string" }, + "resource": { "type": "string" }, + "field": { "type": "string" } + } + } + } + } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" }, + "503": { + "description": "Service Unavailable", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": { "type": "string" }, + "message": { "type": "string" }, + "documentation_url": { "type": "string" }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { "type": "string" }, + "message": { "type": "string" } + } + } + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": "cards" + }, + "x-octokit": {} + } + }, + "/projects/columns/{column_id}": { + "get": { + "summary": "Get a project column", + "description": "", + "tags": ["projects"], + "operationId": "projects/get-column", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/projects#get-a-project-column" + }, + "parameters": [{ "$ref": "#/components/parameters/column_id" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/project-column" }, + "examples": { + "default": { "$ref": "#/components/examples/project-column" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": "columns" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update an existing project column", + "description": "", + "tags": ["projects"], + "operationId": "projects/update-column", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/projects#update-a-project-column" + }, + "parameters": [{ "$ref": "#/components/parameters/column_id" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "name": { + "description": "Name of the project column", + "example": "Remaining tasks", + "type": "string" + } + }, + "required": ["name"], + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/project-column" }, + "examples": { + "default": { "$ref": "#/components/examples/project-column" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": "columns" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a project column", + "description": "", + "tags": ["projects"], + "operationId": "projects/delete-column", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/projects#delete-a-project-column" + }, + "parameters": [{ "$ref": "#/components/parameters/column_id" }], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": "columns" + }, + "x-octokit": {} + } + }, + "/projects/columns/{column_id}/cards": { + "get": { + "summary": "List project cards", + "description": "", + "tags": ["projects"], + "operationId": "projects/list-cards", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/projects#list-project-cards" + }, + "parameters": [ + { "$ref": "#/components/parameters/column_id" }, + { + "name": "archived_state", + "description": "Filters the project cards that are returned by the card's state. Can be one of `all`,`archived`, or `not_archived`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["all", "archived", "not_archived"], + "default": "not_archived" + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/project-card" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/project-card-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": "cards" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a project card", + "description": "**Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, \"Issues\" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key.\n\nBe aware that the `id` of a pull request returned from \"Issues\" endpoints will be an _issue id_. To find out the pull request id, use the \"[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)\" endpoint.", + "tags": ["projects"], + "operationId": "projects/create-card", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/projects#create-a-project-card" + }, + "parameters": [{ "$ref": "#/components/parameters/column_id" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "properties": { + "note": { + "description": "The project card's note", + "example": "Update all gems", + "type": "string", + "nullable": true + } + }, + "required": ["note"] + }, + { + "type": "object", + "properties": { + "content_id": { + "description": "The unique identifier of the content associated with the card", + "example": 42, + "type": "integer" + }, + "content_type": { + "description": "The piece of content associated with the card", + "example": "PullRequest", + "type": "string" + } + }, + "required": ["content_id", "content_type"] + } + ] + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/project-card" }, + "examples": { + "default": { "$ref": "#/components/examples/project-card" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { + "description": "Validation Failed", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { "$ref": "#/components/schemas/validation-error" }, + { "$ref": "#/components/schemas/validation-error-simple" } + ] + } + } + } + }, + "503": { + "description": "Service Unavailable", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": { "type": "string" }, + "message": { "type": "string" }, + "documentation_url": { "type": "string" }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { "type": "string" }, + "message": { "type": "string" } + } + } + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": "cards" + }, + "x-octokit": {} + } + }, + "/projects/columns/{column_id}/moves": { + "post": { + "summary": "Move a project column", + "description": "", + "tags": ["projects"], + "operationId": "projects/move-column", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/projects#move-a-project-column" + }, + "parameters": [{ "$ref": "#/components/parameters/column_id" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "position": { + "description": "The position of the column in a project", + "example": "last", + "type": "string", + "pattern": "^(?:first|last|after:\\d+)$" + } + }, + "required": ["position"], + "type": "object" + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": {}, + "additionalProperties": false + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "$ref": "#/components/responses/validation_failed_simple" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": "columns" + }, + "x-octokit": {} + } + }, + "/projects/{project_id}": { + "get": { + "summary": "Get a project", + "description": "Gets a project by its `id`. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned.", + "tags": ["projects"], + "operationId": "projects/get", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/projects/#get-a-project" + }, + "parameters": [{ "$ref": "#/components/parameters/project-id" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/project" }, + "examples": { + "default": { "$ref": "#/components/examples/project-3" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": null + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a project", + "description": "Updates a project board's information. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned.", + "operationId": "projects/update", + "tags": ["projects"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/projects/#update-a-project" + }, + "parameters": [{ "$ref": "#/components/parameters/project-id" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "name": { + "description": "Name of the project", + "example": "Week One Sprint", + "type": "string" + }, + "body": { + "description": "Body of the project", + "example": "This project represents the sprint of the first week in January", + "type": "string", + "nullable": true + }, + "state": { + "description": "State of the project; either 'open' or 'closed'", + "example": "open", + "type": "string" + }, + "organization_permission": { + "description": "The baseline permission that all organization members have on this project", + "type": "string", + "enum": ["read", "write", "admin", "none"] + }, + "private": { + "description": "Whether or not this project can be seen by everyone.", + "type": "boolean" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/project" }, + "examples": { + "default": { "$ref": "#/components/examples/project-3" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { "type": "string" }, + "documentation_url": { "type": "string" }, + "errors": { "type": "array", "items": { "type": "string" } } + } + } + } + } + }, + "404": { + "description": "Response if the authenticated user does not have access to the project" + }, + "410": { "$ref": "#/components/responses/gone" }, + "422": { "$ref": "#/components/responses/validation_failed_simple" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": null + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a project", + "description": "Deletes a project board. Returns a `404 Not Found` status if projects are disabled.", + "operationId": "projects/delete", + "tags": ["projects"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/projects/#delete-a-project" + }, + "parameters": [{ "$ref": "#/components/parameters/project-id" }], + "responses": { + "204": { "description": "Delete Success" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { "type": "string" }, + "documentation_url": { "type": "string" }, + "errors": { "type": "array", "items": { "type": "string" } } + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "410": { "$ref": "#/components/responses/gone" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/projects/{project_id}/collaborators": { + "get": { + "summary": "List project collaborators", + "description": "Lists the collaborators for an organization project. For a project, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. You must be an organization owner or a project `admin` to list collaborators.", + "tags": ["projects"], + "operationId": "projects/list-collaborators", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/projects#list-project-collaborators" + }, + "parameters": [ + { "$ref": "#/components/parameters/project-id" }, + { + "name": "affiliation", + "description": "Filters the collaborators by their affiliation. Can be one of: \n\\* `outside`: Outside collaborators of a project that are not a member of the project's organization. \n\\* `direct`: Collaborators with permissions to a project, regardless of organization membership status. \n\\* `all`: All collaborators the authenticated user can see.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["outside", "direct", "all"], + "default": "all" + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": "collaborators" + }, + "x-octokit": {} + } + }, + "/projects/{project_id}/collaborators/{username}": { + "put": { + "summary": "Add project collaborator", + "description": "Adds a collaborator to an organization project and sets their permission level. You must be an organization owner or a project `admin` to add a collaborator.", + "tags": ["projects"], + "operationId": "projects/add-collaborator", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/projects#add-project-collaborator" + }, + "parameters": [ + { "$ref": "#/components/parameters/project-id" }, + { "$ref": "#/components/parameters/username" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "permission": { + "description": "The permission to grant the collaborator.", + "enum": ["read", "write", "admin"], + "default": "write", + "example": "write", + "type": "string" + } + } + } + } + } + }, + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": "collaborators" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove user as a collaborator", + "description": "Removes a collaborator from an organization project. You must be an organization owner or a project `admin` to remove a collaborator.", + "tags": ["projects"], + "operationId": "projects/remove-collaborator", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/projects#remove-project-collaborator" + }, + "parameters": [ + { "$ref": "#/components/parameters/project-id" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": "collaborators" + }, + "x-octokit": {} + } + }, + "/projects/{project_id}/collaborators/{username}/permission": { + "get": { + "summary": "Get project permission for a user", + "description": "Returns the collaborator's permission level for an organization project. Possible values for the `permission` key: `admin`, `write`, `read`, `none`. You must be an organization owner or a project `admin` to review a user's permission level.", + "tags": ["projects"], + "operationId": "projects/get-permission-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/projects#get-project-permission-for-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/project-id" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/repository-collaborator-permission" + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-collaborator-permission" + } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": "collaborators" + }, + "x-octokit": {} + } + }, + "/projects/{project_id}/columns": { + "get": { + "summary": "List project columns", + "description": "", + "tags": ["projects"], + "operationId": "projects/list-columns", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/projects#list-project-columns" + }, + "parameters": [ + { "$ref": "#/components/parameters/project-id" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/project-column" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/project-column-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": "columns" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a project column", + "description": "", + "tags": ["projects"], + "operationId": "projects/create-column", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/projects#create-a-project-column" + }, + "parameters": [{ "$ref": "#/components/parameters/project-id" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "name": { + "description": "Name of the project column", + "example": "Remaining tasks", + "type": "string" + } + }, + "required": ["name"], + "type": "object" + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/project-column" }, + "example": { + "url": "https://api.github.com/projects/columns/367", + "project_url": "https://api.github.com/projects/120", + "cards_url": "https://api.github.com/projects/columns/367/cards", + "id": 367, + "node_id": "MDEzOlByb2plY3RDb2x1bW4zNjc=", + "name": "To Do", + "created_at": "2016-09-05T14:18:44Z", + "updated_at": "2016-09-05T14:22:28Z" + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "$ref": "#/components/responses/validation_failed_simple" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": "columns" + }, + "x-octokit": {} + } + }, + "/rate_limit": { + "get": { + "summary": "Get rate limit status for the authenticated user", + "description": "**Note:** Accessing this endpoint does not count against your REST API rate limit.\n\n**Note:** The `rate` object is deprecated. If you're writing new API client code or updating existing code, you should use the `core` object instead of the `rate` object. The `core` object contains the same information that is present in the `rate` object.", + "tags": ["rate-limit"], + "operationId": "rate-limit/get", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/rate_limit/#get-rate-limit-status-for-the-authenticated-user" + }, + "parameters": [], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/rate-limit-overview" + }, + "examples": { + "default": { + "$ref": "#/components/examples/rate-limit-overview" + } + } + } + }, + "headers": { + "X-RateLimit-Limit": { + "$ref": "#/components/headers/x-rate-limit-limit" + }, + "X-RateLimit-Remaining": { + "$ref": "#/components/headers/x-rate-limit-remaining" + }, + "X-RateLimit-Reset": { + "$ref": "#/components/headers/x-rate-limit-reset" + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "rate-limit", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/reactions/{reaction_id}": { + "delete": { + "summary": "Delete a reaction (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Reactions API. We recommend migrating your existing code to use the new delete reactions endpoints. For more information, see this [blog post](https://developer.github.com/changes/2020-02-26-new-delete-reactions-endpoints/).\n\nOAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), when deleting a [team discussion](https://docs.github.com/rest/reference/teams#discussions) or [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments).", + "tags": ["reactions"], + "operationId": "reactions/delete-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#delete-a-reaction-legacy" + }, + "parameters": [{ "$ref": "#/components/parameters/reaction-id" }], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "410": { "$ref": "#/components/responses/gone" }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "removalDate": "2021-02-21", + "deprecationDate": "2020-02-26", + "category": "reactions", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}": { + "get": { + "summary": "Get a repository", + "description": "When you pass the `scarlet-witch-preview` media type, requests to get a repository will also return the repository's code of conduct if it can be detected from the repository's code of conduct file.\n\nThe `parent` and `source` objects are present when the repository is a fork. `parent` is the repository this repository was forked from, `source` is the ultimate source for the network.", + "tags": ["repos"], + "operationId": "repos/get", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#get-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/full-repository" }, + "examples": { + "default-response": { + "$ref": "#/components/examples/full-repository-default-response" + }, + "response-with-scarlet-witch-preview-media-type": { + "$ref": "#/components/examples/full-repository-response-with-scarlet-witch-preview-media-type" + } + } + } + } + }, + "301": { "$ref": "#/components/responses/moved_permanently" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "nebula", + "note": "You can set the visibility of a repository using the new `visibility` parameter in the [Repositories API](https://docs.github.com/rest/reference/repos/), and get a repository's visibility with a new response key. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes/).\n\nTo access repository visibility during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.nebula-preview+json\n```" + }, + { + "required": false, + "name": "scarlet-witch", + "note": "The Codes of Conduct API is currently available for developers to preview.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.scarlet-witch-preview+json\n```" + } + ], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a repository", + "description": "**Note**: To edit a repository's topics, use the [Replace all repository topics](https://docs.github.com/rest/reference/repos#replace-all-repository-topics) endpoint.", + "tags": ["repos"], + "operationId": "repos/update", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#update-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the repository." + }, + "description": { + "type": "string", + "description": "A short description of the repository." + }, + "homepage": { + "type": "string", + "description": "A URL with more information about the repository." + }, + "private": { + "type": "boolean", + "description": "Either `true` to make the repository private or `false` to make it public. Default: `false`. \n**Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://help.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private. **Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://help.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private.", + "default": false + }, + "visibility": { + "type": "string", + "description": "Can be `public` or `private`. If your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+, `visibility` can also be `internal`. The `visibility` parameter overrides the `private` parameter when you use both along with the `nebula-preview` preview header.", + "enum": ["public", "private", "visibility", "internal"] + }, + "has_issues": { + "type": "boolean", + "description": "Either `true` to enable issues for this repository or `false` to disable them.", + "default": true + }, + "has_projects": { + "type": "boolean", + "description": "Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error.", + "default": true + }, + "has_wiki": { + "type": "boolean", + "description": "Either `true` to enable the wiki for this repository or `false` to disable it.", + "default": true + }, + "is_template": { + "type": "boolean", + "description": "Either `true` to make this repo available as a template repository or `false` to prevent it.", + "default": false + }, + "default_branch": { + "type": "string", + "description": "Updates the default branch for this repository." + }, + "allow_squash_merge": { + "type": "boolean", + "description": "Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging.", + "default": true + }, + "allow_merge_commit": { + "type": "boolean", + "description": "Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits.", + "default": true + }, + "allow_rebase_merge": { + "type": "boolean", + "description": "Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging.", + "default": true + }, + "delete_branch_on_merge": { + "type": "boolean", + "description": "Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion.", + "default": false + }, + "archived": { + "type": "boolean", + "description": "`true` to archive this repository. **Note**: You cannot unarchive repositories through the API.", + "default": false + } + } + }, + "example": { + "name": "Hello-World", + "description": "This is your first repository", + "homepage": "https://github.com", + "private": true, + "has_issues": true, + "has_projects": true, + "has_wiki": true + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/full-repository" }, + "examples": { + "default": { "$ref": "#/components/examples/full-repository" } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "nebula", + "note": "You can set the visibility of a repository using the new `visibility` parameter in the [Repositories API](https://docs.github.com/rest/reference/repos/), and get a repository's visibility with a new response key. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes/).\n\nTo access repository visibility during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.nebula-preview+json\n```" + }, + { + "required": false, + "name": "baptiste", + "note": "The `is_template` and `template_repository` keys are currently available for developer to preview. See [Create a repository using a template](https://docs.github.com/repos#create-a-repository-using-a-template) to learn how to create template repositories. To access these new response keys during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.baptiste-preview+json\n```" + } + ], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a repository", + "description": "Deleting a repository requires admin access. If OAuth is used, the `delete_repo` scope is required.\n\nIf an organization owner has configured the organization to prevent members from deleting organization-owned\nrepositories, you will get a `403 Forbidden` response.", + "tags": ["repos"], + "operationId": "repos/delete", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#delete-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "204": { "description": "Empty response" }, + "403": { + "description": "If an organization owner has configured the organization to prevent members from deleting organization-owned repositories, a member will get this response:", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { "type": "string" }, + "documentation_url": { "type": "string" } + } + }, + "example": { + "message": "Organization members cannot delete repositories.", + "documentation_url": "https://docs.github.com/rest/reference/repos#delete-a-repository" + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/artifacts": { + "get": { + "summary": "List artifacts for a repository", + "description": "Lists all artifacts for a repository. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/list-artifacts-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#list-artifacts-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "artifacts": { + "type": "array", + "items": { "$ref": "#/components/schemas/artifact" } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/artifact-paginated" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "artifacts" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}": { + "get": { + "summary": "Get an artifact", + "description": "Gets a specific artifact for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/get-artifact", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#get-an-artifact" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/artifact_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/artifact" }, + "examples": { + "default": { "$ref": "#/components/examples/artifact" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "artifacts" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete an artifact", + "description": "Deletes an artifact for a workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/delete-artifact", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#delete-an-artifact" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/artifact_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "artifacts" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}": { + "get": { + "summary": "Download an artifact", + "description": "Gets a redirect URL to download an archive for a repository. This URL expires after 1 minute. Look for `Location:` in\nthe response header to find the URL for the download. The `:archive_format` must be `zip`. Anyone with read access to\nthe repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope.\nGitHub Apps must have the `actions:read` permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/download-artifact", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#download-an-artifact" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/artifact_id" }, + { + "name": "archive_format", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "302": { + "description": "response", + "headers": { + "Location": { "$ref": "#/components/headers/location" } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "artifacts" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/jobs/{job_id}": { + "get": { + "summary": "Get a job for a workflow run", + "description": "Gets a specific job in a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/get-job-for-workflow-run", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#get-a-job-for-a-workflow-run" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/job_id" } + ], + "responses": { + "202": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/job" }, + "examples": { + "default": { "$ref": "#/components/examples/job" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "workflow-jobs" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/jobs/{job_id}/logs": { + "get": { + "summary": "Download job logs for a workflow run", + "description": "Gets a redirect URL to download a plain text file of logs for a workflow job. This link expires after 1 minute. Look\nfor `Location:` in the response header to find the URL for the download. Anyone with read access to the repository can\nuse this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must\nhave the `actions:read` permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/download-job-logs-for-workflow-run", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#download-job-logs-for-a-workflow-run" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/job_id" } + ], + "responses": { + "302": { + "description": "response", + "headers": { + "Location": { + "example": "https://pipelines.actions.githubusercontent.com/ab1f3cCFPB34Nd6imvFxpGZH5hNlDp2wijMwl2gDoO0bcrrlJj/_apis/pipelines/1/jobs/19/signedlogcontent?urlExpires=2020-01-22T22%3A44%3A54.1389777Z&urlSigningMethod=HMACV1&urlSignature=2TUDfIg4fm36OJmfPy6km5QD5DLCOkBVzvhWZM8B%2BUY%3D", + "schema": { "type": "string" } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "workflow-jobs" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/permissions": { + "get": { + "summary": "Get GitHub Actions permissions for a repository", + "description": "Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions allowed to run in the repository.\n\nYou must authenticate using an access token with the `repo` scope to use this\nendpoint. GitHub Apps must have the `administration` repository permission to use this API.", + "operationId": "actions/get-github-actions-permissions-repository", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#get-github-actions-permissions-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-repository-permissions" + }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-repository-permissions" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "permissions" + }, + "x-octokit": { + "changes": [ + { + "type": "OPERATION", + "date": "2020-11-10", + "before": { "operationId": "actions/get-repo-permissions" } + } + ] + } + }, + "put": { + "summary": "Set GitHub Actions permissions for a repository", + "description": "Sets the GitHub Actions permissions policy for enabling GitHub Actions and allowed actions in the repository.\n\nIf the repository belongs to an organization or enterprise that has set restrictive permissions at the organization or enterprise levels, such as `allowed_actions` to `selected` actions, then you cannot override them for the repository.\n\nYou must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API.", + "operationId": "actions/set-github-actions-permissions-repository", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#set-github-actions-permissions-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { "204": { "description": "Empty response" } }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { "$ref": "#/components/schemas/actions-enabled" }, + "allowed_actions": { + "$ref": "#/components/schemas/allowed-actions" + } + }, + "required": ["enabled"] + }, + "example": { "enabled": true, "allowed_actions": "selected" } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "permissions" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/permissions/selected-actions": { + "get": { + "summary": "Get allowed actions for a repository", + "description": "Gets the settings for selected actions that are allowed in a repository. To use this endpoint, the repository policy for `allowed_actions` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository).\"\n\nYou must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API.", + "operationId": "actions/get-allowed-actions-repository", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#get-allowed-actions-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/selected-actions" }, + "examples": { + "default": { + "$ref": "#/components/examples/selected-actions" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "permissions" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set allowed actions for a repository", + "description": "Sets the actions that are allowed in a repository. To use this endpoint, the repository permission policy for `allowed_actions` must be configured to `selected`. For more information, see \"[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository).\"\n\nIf the repository belongs to an organization or enterprise that has `selected` actions set at the organization or enterprise levels, then you cannot override any of the allowed actions settings.\n\nTo use the `patterns_allowed` setting for private repositories, the repository must belong to an enterprise. If the repository does not belong to an enterprise, then the `patterns_allowed` setting only applies to public repositories.\n\nYou must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API.", + "operationId": "actions/set-allowed-actions-repository", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#set-allowed-actions-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { "204": { "description": "Empty response" } }, + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/selected-actions" }, + "examples": { + "selected_actions": { + "$ref": "#/components/examples/selected-actions" + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "actions", + "subcategory": "permissions" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/runners": { + "get": { + "summary": "List self-hosted runners for a repository", + "description": "Lists all self-hosted runners configured in a repository. You must authenticate using an access token with the `repo` scope to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/list-self-hosted-runners-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#list-self-hosted-runners-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "runners": { + "type": "array", + "items": { "$ref": "#/components/schemas/runner" } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/runner-paginated" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runners" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/runners/downloads": { + "get": { + "summary": "List runner applications for a repository", + "description": "Lists binaries for the runner application that you can download and run.\n\nYou must authenticate using an access token with the `repo` scope to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/list-runner-applications-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#list-runner-applications-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/runner-application" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/runner-application-items" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runners" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/runners/registration-token": { + "post": { + "summary": "Create a registration token for a repository", + "description": "Returns a token that you can pass to the `config` script. The token expires after one hour. You must authenticate\nusing an access token with the `repo` scope to use this endpoint.\n\n#### Example using registration token\n \nConfigure your self-hosted runner, replacing `TOKEN` with the registration token provided by this endpoint.\n\n```\n./config.sh --url https://github.com/octo-org/octo-repo-artifacts --token TOKEN\n```", + "tags": ["actions"], + "operationId": "actions/create-registration-token-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#create-a-registration-token-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/authentication-token" + }, + "examples": { + "default": { + "$ref": "#/components/examples/authentication-token" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runners" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/runners/remove-token": { + "post": { + "summary": "Create a remove token for a repository", + "description": "Returns a token that you can pass to remove a self-hosted runner from a repository. The token expires after one hour.\nYou must authenticate using an access token with the `repo` scope to use this endpoint.\n\n#### Example using remove token\n \nTo remove your self-hosted runner from a repository, replace TOKEN with the remove token provided by this endpoint.\n\n```\n./config.sh remove --token TOKEN\n```", + "tags": ["actions"], + "operationId": "actions/create-remove-token-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#create-a-remove-token-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/authentication-token" + }, + "examples": { + "default": { + "$ref": "#/components/examples/authentication-token-2" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runners" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/runners/{runner_id}": { + "get": { + "summary": "Get a self-hosted runner for a repository", + "description": "Gets a specific self-hosted runner configured in a repository.\n\nYou must authenticate using an access token with the `repo` scope to use this\nendpoint.", + "tags": ["actions"], + "operationId": "actions/get-self-hosted-runner-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#get-a-self-hosted-runner-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/runner_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/runner" }, + "examples": { + "default": { "$ref": "#/components/examples/runner" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runners" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a self-hosted runner from a repository", + "description": "Forces the removal of a self-hosted runner from a repository. You can use this endpoint to completely remove the runner when the machine you were using no longer exists.\n\nYou must authenticate using an access token with the `repo`\nscope to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/delete-self-hosted-runner-from-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#delete-a-self-hosted-runner-from-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/runner_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "self-hosted-runners" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/runs": { + "get": { + "summary": "List workflow runs for a repository", + "description": "Lists all workflow runs for a repository. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters).\n\nAnyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/list-workflow-runs-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#list-workflow-runs-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/actor" }, + { "$ref": "#/components/parameters/workflow-run-branch" }, + { "$ref": "#/components/parameters/event" }, + { "$ref": "#/components/parameters/workflow-run-status" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "workflow_runs": { + "type": "array", + "items": { "$ref": "#/components/schemas/workflow-run" } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/workflow-run-paginated" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "workflow-runs" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/runs/{run_id}": { + "get": { + "summary": "Get a workflow run", + "description": "Gets a specific workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/get-workflow-run", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#get-a-workflow-run" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/run-id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/workflow-run" }, + "examples": { + "default": { "$ref": "#/components/examples/workflow-run" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "workflow-runs" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a workflow run", + "description": "Delete a specific workflow run. Anyone with write access to the repository can use this endpoint. If the repository is\nprivate you must use an access token with the `repo` scope. GitHub Apps must have the `actions:write` permission to use\nthis endpoint.", + "operationId": "actions/delete-workflow-run", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#delete-a-workflow-run" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/run-id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "workflow-runs" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts": { + "get": { + "summary": "List workflow run artifacts", + "description": "Lists artifacts for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/list-workflow-run-artifacts", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#list-workflow-run-artifacts" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/run-id" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "artifacts": { + "type": "array", + "items": { "$ref": "#/components/schemas/artifact" } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/artifact-paginated" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "artifacts" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/runs/{run_id}/cancel": { + "post": { + "summary": "Cancel a workflow run", + "description": "Cancels a workflow run using its `id`. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/cancel-workflow-run", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#cancel-a-workflow-run" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/run-id" } + ], + "responses": { "202": { "description": "response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "workflow-runs" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/runs/{run_id}/jobs": { + "get": { + "summary": "List jobs for a workflow run", + "description": "Lists jobs for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters).", + "tags": ["actions"], + "operationId": "actions/list-jobs-for-workflow-run", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#list-jobs-for-a-workflow-run" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/run-id" }, + { + "name": "filter", + "description": "Filters jobs by their `completed_at` timestamp. Can be one of: \n\\* `latest`: Returns jobs from the most recent execution of the workflow run. \n\\* `all`: Returns all jobs for a workflow run, including from old executions of the workflow run.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["latest", "all"], + "default": "latest" + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "jobs": { + "type": "array", + "items": { "$ref": "#/components/schemas/job" } + } + } + }, + "examples": { + "default": { "$ref": "#/components/examples/job-paginated" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "workflow-jobs" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/runs/{run_id}/logs": { + "get": { + "summary": "Download workflow run logs", + "description": "Gets a redirect URL to download an archive of log files for a workflow run. This link expires after 1 minute. Look for\n`Location:` in the response header to find the URL for the download. Anyone with read access to the repository can use\nthis endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have\nthe `actions:read` permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/download-workflow-run-logs", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#download-workflow-run-logs" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/run-id" } + ], + "responses": { + "302": { + "description": "response", + "headers": { + "Location": { + "example": "https://pipelines.actions.githubusercontent.com/ab1f3cCFPB34Nd6imvFxpGZH5hNlDp2wijMwl2gDoO0bcrrlJj/_apis/pipelines/1/runs/19/signedlogcontent?urlExpires=2020-01-22T22%3A44%3A54.1389777Z&urlSigningMethod=HMACV1&urlSignature=2TUDfIg4fm36OJmfPy6km5QD5DLCOkBVzvhWZM8B%2BUY%3D", + "schema": { "type": "string" } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "workflow-runs" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete workflow run logs", + "description": "Deletes all logs for a workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/delete-workflow-run-logs", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#delete-workflow-run-logs" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/run-id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "workflow-runs" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/runs/{run_id}/rerun": { + "post": { + "summary": "Re-run a workflow", + "description": "Re-runs your workflow run using its `id`. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/re-run-workflow", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#re-run-a-workflow" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/run-id" } + ], + "responses": { "201": { "description": "response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "actions", + "subcategory": "workflow-runs" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/runs/{run_id}/timing": { + "get": { + "summary": "Get workflow run usage", + "description": "Gets the number of billable minutes and total run time for a specific workflow run. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see \"[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)\".\n\nAnyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/get-workflow-run-usage", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#get-workflow-run-usage" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/run-id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/workflow-run-usage" }, + "examples": { + "default": { + "$ref": "#/components/examples/workflow-run-usage" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "actions", + "subcategory": "workflow-runs" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/secrets": { + "get": { + "summary": "List repository secrets", + "description": "Lists all secrets available in a repository without revealing their encrypted values. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/list-repo-secrets", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#list-repository-secrets" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "secrets": { + "type": "array", + "items": { "$ref": "#/components/schemas/actions-secret" } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-secret-paginated" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "secrets" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/secrets/public-key": { + "get": { + "summary": "Get a repository public key", + "description": "Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `secrets` repository permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/get-repo-public-key", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#get-a-repository-public-key" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/actions-public-key" }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-public-key" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "secrets" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/secrets/{secret_name}": { + "get": { + "summary": "Get a repository secret", + "description": "Gets a single repository secret without revealing its encrypted value. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/get-repo-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#get-a-repository-secret" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/secret_name" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/actions-secret" }, + "examples": { + "default": { "$ref": "#/components/examples/actions-secret" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "secrets" + }, + "x-octokit": {} + }, + "put": { + "summary": "Create or update a repository secret", + "description": "Creates or updates a repository secret with an encrypted value. Encrypt your secret using\n[LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access\ntoken with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use\nthis endpoint.\n\n#### Example encrypting a secret using Node.js\n\nEncrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library.\n\n```\nconst sodium = require('tweetsodium');\n\nconst key = \"base64-encoded-public-key\";\nconst value = \"plain-text-secret\";\n\n// Convert the message and key to Uint8Array's (Buffer implements that interface)\nconst messageBytes = Buffer.from(value);\nconst keyBytes = Buffer.from(key, 'base64');\n\n// Encrypt using LibSodium.\nconst encryptedBytes = sodium.seal(messageBytes, keyBytes);\n\n// Base64 the encrypted secret\nconst encrypted = Buffer.from(encryptedBytes).toString('base64');\n\nconsole.log(encrypted);\n```\n\n\n#### Example encrypting a secret using Python\n\nEncrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3.\n\n```\nfrom base64 import b64encode\nfrom nacl import encoding, public\n\ndef encrypt(public_key: str, secret_value: str) -> str:\n \"\"\"Encrypt a Unicode string using the public key.\"\"\"\n public_key = public.PublicKey(public_key.encode(\"utf-8\"), encoding.Base64Encoder())\n sealed_box = public.SealedBox(public_key)\n encrypted = sealed_box.encrypt(secret_value.encode(\"utf-8\"))\n return b64encode(encrypted).decode(\"utf-8\")\n```\n\n#### Example encrypting a secret using C#\n\nEncrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package.\n\n```\nvar secretValue = System.Text.Encoding.UTF8.GetBytes(\"mySecret\");\nvar publicKey = Convert.FromBase64String(\"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=\");\n\nvar sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);\n\nConsole.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));\n```\n\n#### Example encrypting a secret using Ruby\n\nEncrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem.\n\n```ruby\nrequire \"rbnacl\"\nrequire \"base64\"\n\nkey = Base64.decode64(\"+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=\")\npublic_key = RbNaCl::PublicKey.new(key)\n\nbox = RbNaCl::Boxes::Sealed.from_public_key(public_key)\nencrypted_secret = box.encrypt(\"my_secret\")\n\n# Print the base64 encoded secret\nputs Base64.strict_encode64(encrypted_secret)\n```", + "tags": ["actions"], + "operationId": "actions/create-or-update-repo-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#create-or-update-a-repository-secret" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/secret_name" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "encrypted_value": { + "type": "string", + "description": "Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/reference/actions#get-a-repository-public-key) endpoint." + }, + "key_id": { + "type": "string", + "description": "ID of the key you used to encrypt the secret." + } + } + }, + "example": { + "encrypted_value": "****************************************************************************************", + "key_id": "012345678912345678" + } + } + } + }, + "responses": { + "201": { "description": "Response when creating a secret" }, + "204": { "description": "Response when updating a secret" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "secrets" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a repository secret", + "description": "Deletes a secret in a repository using the secret name. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/delete-repo-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#delete-a-repository-secret" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/secret_name" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "secrets" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/workflows": { + "get": { + "summary": "List repository workflows", + "description": "Lists the workflows in a repository. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/list-repo-workflows", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#list-repository-workflows" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "workflows": { + "type": "array", + "items": { "$ref": "#/components/schemas/workflow" } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/workflow-paginated" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "workflows" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}": { + "get": { + "summary": "Get a workflow", + "description": "Gets a specific workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/get-workflow", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#get-a-workflow" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/workflow-id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/workflow" }, + "examples": { + "default": { "$ref": "#/components/examples/workflow" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "workflows" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable": { + "put": { + "summary": "Disable a workflow", + "description": "Disables a workflow and sets the `state` of the workflow to `disabled_manually`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`.\n\nYou must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/disable-workflow", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#disable-a-workflow" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/workflow-id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "workflows" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches": { + "post": { + "summary": "Create a workflow dispatch event", + "description": "You can use this endpoint to manually trigger a GitHub Actions workflow run. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`.\n\nYou must configure your GitHub Actions workflow to run when the [`workflow_dispatch` webhook](/developers/webhooks-and-events/webhook-events-and-payloads#workflow_dispatch) event occurs. The `inputs` are configured in the workflow file. For more information about how to configure the `workflow_dispatch` event in the workflow file, see \"[Events that trigger workflows](/actions/reference/events-that-trigger-workflows#workflow_dispatch).\"\n\nYou must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. For more information, see \"[Creating a personal access token for the command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line).\"", + "operationId": "actions/create-workflow-dispatch", + "tags": ["actions"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#create-a-workflow-dispatch-event" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/workflow-id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ref": { + "type": "string", + "description": "The git reference for the workflow. The reference can be a branch or tag name." + }, + "inputs": { + "type": "object", + "description": "Input keys and values configured in the workflow file. The maximum number of properties is 10. Any default properties configured in the workflow file will be used when `inputs` are omitted.", + "additionalProperties": { "type": "string" }, + "maxProperties": 10 + } + }, + "required": ["ref"] + }, + "example": { + "ref": "topic-branch", + "inputs": { + "name": "Mona the Octocat", + "home": "San Francisco, CA" + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "workflows" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable": { + "put": { + "summary": "Enable a workflow", + "description": "Enables a workflow and sets the `state` of the workflow to `active`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`.\n\nYou must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/enable-workflow", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#enable-a-workflow" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/workflow-id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "workflows" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs": { + "get": { + "summary": "List workflow runs", + "description": "List all workflow runs for a workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters).\n\nAnyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope.", + "tags": ["actions"], + "operationId": "actions/list-workflow-runs", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#list-workflow-runs" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/workflow-id" }, + { "$ref": "#/components/parameters/actor" }, + { "$ref": "#/components/parameters/workflow-run-branch" }, + { "$ref": "#/components/parameters/event" }, + { "$ref": "#/components/parameters/workflow-run-status" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "workflow_runs": { + "type": "array", + "items": { "$ref": "#/components/schemas/workflow-run" } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/workflow-run-paginated" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "actions", + "subcategory": "workflow-runs" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing": { + "get": { + "summary": "Get workflow usage", + "description": "Gets the number of billable minutes used by a specific workflow during the current billing cycle. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see \"[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)\".\n\nYou can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint.", + "tags": ["actions"], + "operationId": "actions/get-workflow-usage", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/actions#get-workflow-usage" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/workflow-id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/workflow-usage" }, + "examples": { + "default": { "$ref": "#/components/examples/workflow-usage" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "actions", + "subcategory": "workflows" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/assignees": { + "get": { + "summary": "List assignees", + "description": "Lists the [available assignees](https://help.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/) for issues in a repository.", + "tags": ["issues"], + "operationId": "issues/list-assignees", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#list-assignees" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "assignees" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/assignees/{assignee}": { + "get": { + "summary": "Check if a user can be assigned", + "description": "Checks if a user has permission to be assigned to an issue in this repository.\n\nIf the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned.\n\nOtherwise a `404` status code is returned.", + "tags": ["issues"], + "operationId": "issues/check-user-can-be-assigned", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#check-if-a-user-can-be-assigned" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "assignee", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "204": { + "description": "If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned." + }, + "404": { + "description": "Otherwise a `404` status code is returned.", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/basic-error" } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "assignees" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/automated-security-fixes": { + "put": { + "summary": "Enable automated security fixes", + "description": "Enables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see \"[Configuring automated security fixes](https://help.github.com/en/articles/configuring-automated-security-fixes)\".", + "tags": ["repos"], + "operationId": "repos/enable-automated-security-fixes", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#enable-automated-security-fixes" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "london", + "note": "Enabling or disabling automated security fixes is currently available for developers to preview. To access this new endpoint during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.london-preview+json\n```" + } + ], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + }, + "delete": { + "summary": "Disable automated security fixes", + "description": "Disables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see \"[Configuring automated security fixes](https://help.github.com/en/articles/configuring-automated-security-fixes)\".", + "tags": ["repos"], + "operationId": "repos/disable-automated-security-fixes", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#disable-automated-security-fixes" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "london", + "note": "Enabling or disabling automated security fixes is currently available for developers to preview. To access this new endpoint during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.london-preview+json\n```" + } + ], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/branches": { + "get": { + "summary": "List branches", + "description": "", + "tags": ["repos"], + "operationId": "repos/list-branches", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#list-branches" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "protected", + "description": "Setting to `true` returns only protected branches. When set to `false`, only unprotected branches are returned. Omitting this parameter returns all branches.", + "in": "query", + "required": false, + "schema": { "type": "boolean" } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/short-branch" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/short-branch-items" + }, + "with-protection": { + "$ref": "#/components/examples/short-branch-with-protection-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/branches/{branch}": { + "get": { + "summary": "Get a branch", + "description": "", + "tags": ["repos"], + "operationId": "repos/get-branch", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-a-branch" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/branch-with-protection" + }, + "examples": { + "default": { + "$ref": "#/components/examples/branch-with-protection" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/branches/{branch}/protection": { + "get": { + "summary": "Get branch protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "tags": ["repos"], + "operationId": "repos/get-branch-protection", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-branch-protection" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/branch-protection" }, + "examples": { + "default": { + "$ref": "#/components/examples/branch-protection" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "luke-cage", + "note": "The Protected Branches API now has a setting for requiring a specified number of approving pull request reviews before merging. This feature is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2018-03-16-protected-branches-required-approving-reviews) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.luke-cage-preview+json\n```" + } + ], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "put": { + "summary": "Update branch protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nProtecting a branch requires admin or owner permissions to the repository.\n\n**Note**: Passing new arrays of `users` and `teams` replaces their previous values.\n\n**Note**: The list of users, apps, and teams in total is limited to 100 items.", + "tags": ["repos"], + "operationId": "repos/update-branch-protection", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#update-branch-protection" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "required_status_checks": { + "type": "object", + "description": "Require status checks to pass before merging. Set to `null` to disable.", + "nullable": true, + "properties": { + "strict": { + "type": "boolean", + "description": "Require branches to be up to date before merging." + }, + "contexts": { + "type": "array", + "description": "The list of status checks to require in order to merge into this branch", + "items": { "type": "string" } + } + }, + "required": ["strict", "contexts"] + }, + "enforce_admins": { + "type": "boolean", + "description": "Enforce all configured restrictions for administrators. Set to `true` to enforce required status checks for repository administrators. Set to `null` to disable.", + "nullable": true + }, + "required_pull_request_reviews": { + "type": "object", + "description": "Require at least one approving review on a pull request, before merging. Set to `null` to disable.", + "nullable": true, + "properties": { + "dismissal_restrictions": { + "type": "object", + "description": "Specify which users and teams can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories.", + "properties": { + "users": { + "type": "array", + "description": "The list of user `login`s with dismissal access", + "items": { "type": "string" } + }, + "teams": { + "type": "array", + "description": "The list of team `slug`s with dismissal access", + "items": { "type": "string" } + } + } + }, + "dismiss_stale_reviews": { + "type": "boolean", + "description": "Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit." + }, + "require_code_owner_reviews": { + "type": "boolean", + "description": "Blocks merging pull requests until [code owners](https://help.github.com/articles/about-code-owners/) review them." + }, + "required_approving_review_count": { + "type": "integer", + "description": "Specify the number of reviewers required to approve pull requests. Use a number between 1 and 6." + } + } + }, + "restrictions": { + "type": "object", + "description": "Restrict who can push to the protected branch. User, app, and team `restrictions` are only available for organization-owned repositories. Set to `null` to disable.", + "nullable": true, + "properties": { + "users": { + "type": "array", + "description": "The list of user `login`s with push access", + "items": { "type": "string" } + }, + "teams": { + "type": "array", + "description": "The list of team `slug`s with push access", + "items": { "type": "string" } + }, + "apps": { + "type": "array", + "description": "The list of app `slug`s with push access", + "items": { "type": "string" } + } + }, + "required": ["users", "teams"] + }, + "required_linear_history": { + "type": "boolean", + "description": "Enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch. Set to `true` to enforce a linear commit history. Set to `false` to disable a linear commit Git history. Your repository must allow squash merging or rebase merging before you can enable a linear commit history. Default: `false`. For more information, see \"[Requiring a linear commit history](https://help.github.com/github/administering-a-repository/requiring-a-linear-commit-history)\" in the GitHub Help documentation." + }, + "allow_force_pushes": { + "type": "boolean", + "description": "Permits force pushes to the protected branch by anyone with write access to the repository. Set to `true` to allow force pushes. Set to `false` or `null` to block force pushes. Default: `false`. For more information, see \"[Enabling force pushes to a protected branch](https://help.github.com/en/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)\" in the GitHub Help documentation.\"", + "nullable": true + }, + "allow_deletions": { + "type": "boolean", + "description": "Allows deletion of the protected branch by anyone with write access to the repository. Set to `false` to prevent deletion of the protected branch. Default: `false`. For more information, see \"[Enabling force pushes to a protected branch](https://help.github.com/en/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)\" in the GitHub Help documentation." + } + }, + "required": [ + "required_status_checks", + "enforce_admins", + "required_pull_request_reviews", + "restrictions" + ] + }, + "example": { + "required_status_checks": { + "strict": true, + "contexts": ["continuous-integration/travis-ci"] + }, + "enforce_admins": true, + "required_pull_request_reviews": { + "dismissal_restrictions": { + "users": ["octocat"], + "teams": ["justice-league"] + }, + "dismiss_stale_reviews": true, + "require_code_owner_reviews": true, + "required_approving_review_count": 2 + }, + "restrictions": { + "users": ["octocat"], + "teams": ["justice-league"], + "apps": ["super-ci"] + }, + "required_linear_history": true, + "allow_force_pushes": true, + "allow_deletions": true + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/protected-branch" } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" }, + "422": { "$ref": "#/components/responses/validation_failed_simple" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "luke-cage", + "note": "The Protected Branches API now has a setting for requiring a specified number of approving pull request reviews before merging. This feature is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2018-03-16-protected-branches-required-approving-reviews) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.luke-cage-preview+json\n```" + } + ], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete branch protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "tags": ["repos"], + "operationId": "repos/delete-branch-protection", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#delete-branch-protection" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "responses": { + "204": { "description": "Empty response" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": { + "get": { + "summary": "Get admin branch protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "tags": ["repos"], + "operationId": "repos/get-admin-branch-protection", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-admin-branch-protection" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/protected-branch-admin-enforced" + }, + "examples": { + "default": { + "$ref": "#/components/examples/protected-branch-admin-enforced-2" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "post": { + "summary": "Set admin branch protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nAdding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled.", + "tags": ["repos"], + "operationId": "repos/set-admin-branch-protection", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#set-admin-branch-protection" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/protected-branch-admin-enforced" + }, + "examples": { + "default": { + "$ref": "#/components/examples/protected-branch-admin-enforced-2" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete admin branch protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nRemoving admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled.", + "tags": ["repos"], + "operationId": "repos/delete-admin-branch-protection", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#delete-admin-branch-protection" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "responses": { + "204": { "description": "No Content" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": { + "get": { + "summary": "Get pull request review protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "tags": ["repos"], + "operationId": "repos/get-pull-request-review-protection", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-pull-request-review-protection" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/vnd.github.luke-cage-preview+json": { + "schema": { + "$ref": "#/components/schemas/protected-branch-pull-request-review" + }, + "examples": { + "default": { + "$ref": "#/components/examples/protected-branch-pull-request-review" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "luke-cage", + "note": "The Protected Branches API now has a setting for requiring a specified number of approving pull request reviews before merging. This feature is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2018-03-16-protected-branches-required-approving-reviews) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.luke-cage-preview+json\n```" + } + ], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update pull request review protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nUpdating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled.\n\n**Note**: Passing new arrays of `users` and `teams` replaces their previous values.", + "tags": ["repos"], + "operationId": "repos/update-pull-request-review-protection", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#update-pull-request-review-protection" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "dismissal_restrictions": { + "type": "object", + "description": "Specify which users and teams can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories.", + "properties": { + "users": { + "type": "array", + "description": "The list of user `login`s with dismissal access", + "items": { "type": "string" } + }, + "teams": { + "type": "array", + "description": "The list of team `slug`s with dismissal access", + "items": { "type": "string" } + } + } + }, + "dismiss_stale_reviews": { + "type": "boolean", + "description": "Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit." + }, + "require_code_owner_reviews": { + "type": "boolean", + "description": "Blocks merging pull requests until [code owners](https://help.github.com/articles/about-code-owners/) have reviewed." + }, + "required_approving_review_count": { + "type": "integer", + "description": "Specifies the number of reviewers required to approve pull requests. Use a number between 1 and 6." + } + } + }, + "example": { + "dismissal_restrictions": { + "users": ["octocat"], + "teams": ["justice-league"] + }, + "dismiss_stale_reviews": true, + "require_code_owner_reviews": true, + "required_approving_review_count": 2 + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/protected-branch-pull-request-review" + }, + "examples": { + "default": { + "$ref": "#/components/examples/protected-branch-pull-request-review" + } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "luke-cage", + "note": "The Protected Branches API now has a setting for requiring a specified number of approving pull request reviews before merging. This feature is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2018-03-16-protected-branches-required-approving-reviews) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.luke-cage-preview+json\n```" + } + ], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete pull request review protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "tags": ["repos"], + "operationId": "repos/delete-pull-request-review-protection", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#delete-pull-request-review-protection" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "responses": { + "204": { "description": "No Content" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": { + "get": { + "summary": "Get commit signature protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nWhen authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of `true` indicates you must sign commits on this branch. For more information, see [Signing commits with GPG](https://help.github.com/articles/signing-commits-with-gpg) in GitHub Help.\n\n**Note**: You must enable branch protection to require signed commits.", + "tags": ["repos"], + "operationId": "repos/get-commit-signature-protection", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-commit-signature-protection" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/protected-branch-admin-enforced" + }, + "examples": { + "default": { + "$ref": "#/components/examples/protected-branch-admin-enforced" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "zzzax", + "note": "Protected Branches API can now manage a setting for requiring signed commits. This feature is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2018-02-22-protected-branches-required-signatures) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.zzzax-preview+json\n```" + } + ], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create commit signature protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nWhen authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits.", + "tags": ["repos"], + "operationId": "repos/create-commit-signature-protection", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#create-commit-signature-protection" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/protected-branch-admin-enforced" + }, + "examples": { + "default": { + "$ref": "#/components/examples/protected-branch-admin-enforced" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "zzzax", + "note": "Protected Branches API can now manage a setting for requiring signed commits. This feature is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2018-02-22-protected-branches-required-signatures) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.zzzax-preview+json\n```" + } + ], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete commit signature protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nWhen authenticated with admin or owner permissions to the repository, you can use this endpoint to disable required signed commits on a branch. You must enable branch protection to require signed commits.", + "tags": ["repos"], + "operationId": "repos/delete-commit-signature-protection", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#delete-commit-signature-protection" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "responses": { + "204": { "description": "No Content" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "zzzax", + "note": "Protected Branches API can now manage a setting for requiring signed commits. This feature is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2018-02-22-protected-branches-required-signatures) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.zzzax-preview+json\n```" + } + ], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": { + "get": { + "summary": "Get status checks protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "tags": ["repos"], + "operationId": "repos/get-status-checks-protection", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-status-checks-protection" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/status-check-policy" + }, + "examples": { + "default": { + "$ref": "#/components/examples/status-check-policy" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update status check protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nUpdating required status checks requires admin or owner permissions to the repository and branch protection to be enabled.", + "tags": ["repos"], + "operationId": "repos/update-status-check-protection", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#update-status-check-potection" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "strict": { + "type": "boolean", + "description": "Require branches to be up to date before merging." + }, + "contexts": { + "type": "array", + "description": "The list of status checks to require in order to merge into this branch", + "items": { "type": "string" } + } + } + }, + "example": { + "strict": true, + "contexts": ["continuous-integration/travis-ci"] + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/status-check-policy" + }, + "examples": { + "default": { + "$ref": "#/components/examples/status-check-policy" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": { + "changes": [ + { + "type": "OPERATION", + "date": "2020-09-17", + "before": { "operationId": "repos/update-status-check-potection" } + } + ] + } + }, + "delete": { + "summary": "Remove status check protection", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "tags": ["repos"], + "operationId": "repos/remove-status-check-protection", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#remove-status-check-protection" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "responses": { "204": { "description": "No Content" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": { + "get": { + "summary": "Get all status check contexts", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "tags": ["repos"], + "operationId": "repos/get-all-status-check-contexts", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-all-status-check-contexts" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "type": "array", "items": { "type": "string" } }, + "example": ["continuous-integration/travis-ci"] + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "post": { + "summary": "Add status check contexts", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "tags": ["repos"], + "operationId": "repos/add-status-check-contexts", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#add-status-check-contexts" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "contexts": { + "type": "array", + "description": "contexts parameter", + "items": { "type": "string" } + } + }, + "required": ["contexts"], + "example": { "contexts": ["contexts"] } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "type": "array", "items": { "type": "string" } }, + "example": [ + "continuous-integration/travis-ci", + "continuous-integration/jenkins" + ] + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "requestBodyParameterName": "contexts", + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set status check contexts", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "tags": ["repos"], + "operationId": "repos/set-status-check-contexts", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#set-status-check-contexts" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "contexts": { + "type": "array", + "description": "contexts parameter", + "items": { "type": "string" } + } + }, + "required": ["contexts"], + "example": { "contexts": ["contexts"] } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "type": "array", "items": { "type": "string" } }, + "example": ["continuous-integration/travis-ci"] + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "requestBodyParameterName": "contexts", + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove status check contexts", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "tags": ["repos"], + "operationId": "repos/remove-status-check-contexts", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#remove-status-check-contexts" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "contexts": { + "type": "array", + "description": "contexts parameter", + "items": { "type": "string" } + } + }, + "required": ["contexts"], + "example": { "contexts": ["contexts"] } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "type": "array", "items": { "type": "string" } }, + "example": ["continuous-integration/travis-ci"] + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "requestBodyParameterName": "contexts", + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions": { + "get": { + "summary": "Get access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nLists who has access to this protected branch.\n\n**Note**: Users, apps, and teams `restrictions` are only available for organization-owned repositories.", + "tags": ["repos"], + "operationId": "repos/get-access-restrictions", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-access-restrictions" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/branch-restriction-policy" + }, + "examples": { + "default": { + "$ref": "#/components/examples/branch-restriction-policy" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nDisables the ability to restrict who can push to this branch.", + "tags": ["repos"], + "operationId": "repos/delete-access-restrictions", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#delete-access-restrictions" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "responses": { "204": { "description": "No Content" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": { + "get": { + "summary": "Get apps with access to the protected branch", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nLists the GitHub Apps that have push access to this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch.", + "tags": ["repos"], + "operationId": "repos/get-apps-with-access-to-protected-branch", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#list-apps-with-access-to-the-protected-branch" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/integration" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/integration-items" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "post": { + "summary": "Add app access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nGrants the specified apps push access for this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch.\n\n| Type | Description |\n| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. |", + "tags": ["repos"], + "operationId": "repos/add-app-access-restrictions", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#add-app-access-restrictions" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "apps": { + "type": "array", + "description": "apps parameter", + "items": { "type": "string" } + } + }, + "required": ["apps"], + "example": { "apps": ["my-app"] } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/integration" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/integration-items" + } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "requestBodyParameterName": "apps", + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set app access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nReplaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch.\n\n| Type | Description |\n| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. |", + "tags": ["repos"], + "operationId": "repos/set-app-access-restrictions", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#set-app-access-restrictions" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "apps": { + "type": "array", + "description": "apps parameter", + "items": { "type": "string" } + } + }, + "required": ["apps"], + "example": { "apps": ["my-app"] } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/integration" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/integration-items" + } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "requestBodyParameterName": "apps", + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove app access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nRemoves the ability of an app to push to this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch.\n\n| Type | Description |\n| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. |", + "tags": ["repos"], + "operationId": "repos/remove-app-access-restrictions", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#remove-app-access-restrictions" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "apps": { + "type": "array", + "description": "apps parameter", + "items": { "type": "string" } + } + }, + "required": ["apps"], + "example": { "apps": ["my-app"] } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/integration" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/integration-items" + } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "requestBodyParameterName": "apps", + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": { + "get": { + "summary": "Get teams with access to the protected branch", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nLists the teams who have push access to this branch. The list includes child teams.", + "tags": ["repos"], + "operationId": "repos/get-teams-with-access-to-protected-branch", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#list-teams-with-access-to-the-protected-branch" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/team" } + }, + "examples": { + "default": { "$ref": "#/components/examples/team-items" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "post": { + "summary": "Add team access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nGrants the specified teams push access for this branch. You can also give push access to child teams.\n\n| Type | Description |\n| ------- | ------------------------------------------------------------------------------------------------------------------------------------------ |\n| `array` | The teams that can have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. |", + "tags": ["repos"], + "operationId": "repos/add-team-access-restrictions", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#add-team-access-restrictions" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "teams": { + "type": "array", + "description": "teams parameter", + "items": { "type": "string" } + } + }, + "required": ["teams"], + "example": { "teams": ["my-team"] } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/team" } + }, + "examples": { + "default": { "$ref": "#/components/examples/team-items" } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "requestBodyParameterName": "teams", + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set team access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nReplaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams.\n\n| Type | Description |\n| ------- | ------------------------------------------------------------------------------------------------------------------------------------------ |\n| `array` | The teams that can have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. |", + "tags": ["repos"], + "operationId": "repos/set-team-access-restrictions", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#set-team-access-restrictions" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "teams": { + "type": "array", + "description": "teams parameter", + "items": { "type": "string" } + } + }, + "required": ["teams"], + "example": { "teams": ["my-team"] } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/team" } + }, + "examples": { + "default": { "$ref": "#/components/examples/team-items" } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "requestBodyParameterName": "teams", + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove team access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nRemoves the ability of a team to push to this branch. You can also remove push access for child teams.\n\n| Type | Description |\n| ------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `array` | Teams that should no longer have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. |", + "tags": ["repos"], + "operationId": "repos/remove-team-access-restrictions", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#remove-team-access-restrictions" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "teams": { + "type": "array", + "description": "teams parameter", + "items": { "type": "string" } + } + }, + "required": ["teams"], + "example": { "teams": ["my-team"] } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/team" } + }, + "examples": { + "default": { "$ref": "#/components/examples/team-items" } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "requestBodyParameterName": "teams", + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": { + "get": { + "summary": "Get users with access to the protected branch", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nLists the people who have push access to this branch.", + "tags": ["repos"], + "operationId": "repos/get-users-with-access-to-protected-branch", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#list-users-with-access-to-the-protected-branch" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "post": { + "summary": "Add user access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nGrants the specified people push access for this branch.\n\n| Type | Description |\n| ------- | ----------------------------------------------------------------------------------------------------------------------------- |\n| `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. |", + "tags": ["repos"], + "operationId": "repos/add-user-access-restrictions", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#add-user-access-restrictions" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "users": { + "type": "array", + "description": "users parameter", + "items": { "type": "string" } + } + }, + "required": ["users"], + "example": { "users": ["mona"] } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "requestBodyParameterName": "users", + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set user access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nReplaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people.\n\n| Type | Description |\n| ------- | ----------------------------------------------------------------------------------------------------------------------------- |\n| `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. |", + "tags": ["repos"], + "operationId": "repos/set-user-access-restrictions", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#set-user-access-restrictions" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "users": { + "type": "array", + "description": "users parameter", + "items": { "type": "string" } + } + }, + "required": ["users"], + "example": { "users": ["mona"] } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "requestBodyParameterName": "users", + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove user access restrictions", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nRemoves the ability of a user to push to this branch.\n\n| Type | Description |\n| ------- | --------------------------------------------------------------------------------------------------------------------------------------------- |\n| `array` | Usernames of the people who should no longer have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. |", + "tags": ["repos"], + "operationId": "repos/remove-user-access-restrictions", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#remove-user-access-restrictions" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/branch" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "users": { + "type": "array", + "description": "users parameter", + "items": { "type": "string" } + } + }, + "required": ["users"], + "example": { "users": ["mona"] } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "requestBodyParameterName": "users", + "category": "repos", + "subcategory": "branches" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/check-runs": { + "post": { + "summary": "Create a check run", + "description": "**Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array.\n\nCreates a new check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to create check runs.\n\nIn a check suite, GitHub limits the number of check runs with the same name to 1000. Once these check runs exceed 1000, GitHub will start to automatically delete older check runs.", + "tags": ["checks"], + "operationId": "checks/create", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/checks#create-a-check-run" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the check. For example, \"code-coverage\"." + }, + "head_sha": { + "type": "string", + "description": "The SHA of the commit." + }, + "details_url": { + "type": "string", + "description": "The URL of the integrator's site that has the full details of the check. If the integrator does not provide this, then the homepage of the GitHub app is used." + }, + "external_id": { + "type": "string", + "description": "A reference for the run on the integrator's system." + }, + "status": { + "type": "string", + "description": "The current status. Can be one of `queued`, `in_progress`, or `completed`.", + "enum": ["queued", "in_progress", "completed"], + "default": "queued" + }, + "started_at": { + "type": "string", + "description": "The time that the check run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." + }, + "conclusion": { + "type": "string", + "description": "**Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. Can be one of `success`, `failure`, `neutral`, `cancelled`, `skipped`, `timed_out`, or `action_required`. When the conclusion is `action_required`, additional details should be provided on the site specified by `details_url`. \n**Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. Only GitHub can change a check run conclusion to `stale`.", + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "skipped", + "timed_out", + "action_required" + ] + }, + "completed_at": { + "type": "string", + "description": "The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." + }, + "output": { + "type": "object", + "description": "Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. See the [`output` object](https://docs.github.com/rest/reference/checks#output-object) description.", + "properties": { + "title": { + "type": "string", + "description": "The title of the check run." + }, + "summary": { + "type": "string", + "description": "The summary of the check run. This parameter supports Markdown." + }, + "text": { + "type": "string", + "description": "The details of the check run. This parameter supports Markdown." + }, + "annotations": { + "type": "array", + "description": "Adds information from your analysis to specific lines of code. Annotations are visible on GitHub in the **Checks** and **Files changed** tab of the pull request. The Checks API limits the number of annotations to a maximum of 50 per API request. To create more than 50 annotations, you have to make multiple requests to the [Update a check run](https://docs.github.com/rest/reference/checks#update-a-check-run) endpoint. Each time you update the check run, annotations are appended to the list of annotations that already exist for the check run. For details about how you can view annotations on GitHub, see \"[About status checks](https://help.github.com/articles/about-status-checks#checks)\". See the [`annotations` object](https://docs.github.com/rest/reference/checks#annotations-object) description for details about how to use this parameter.", + "items": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "The path of the file to add an annotation to. For example, `assets/css/main.css`." + }, + "start_line": { + "type": "integer", + "description": "The start line of the annotation." + }, + "end_line": { + "type": "integer", + "description": "The end line of the annotation." + }, + "start_column": { + "type": "integer", + "description": "The start column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values." + }, + "end_column": { + "type": "integer", + "description": "The end column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values." + }, + "annotation_level": { + "type": "string", + "description": "The level of the annotation. Can be one of `notice`, `warning`, or `failure`.", + "enum": ["notice", "warning", "failure"] + }, + "message": { + "type": "string", + "description": "A short description of the feedback for these lines of code. The maximum size is 64 KB." + }, + "title": { + "type": "string", + "description": "The title that represents the annotation. The maximum size is 255 characters." + }, + "raw_details": { + "type": "string", + "description": "Details about this annotation. The maximum size is 64 KB." + } + }, + "required": [ + "path", + "start_line", + "end_line", + "annotation_level", + "message" + ] + } + }, + "images": { + "type": "array", + "description": "Adds images to the output displayed in the GitHub pull request UI. See the [`images` object](https://docs.github.com/rest/reference/checks#images-object) description for details.", + "items": { + "type": "object", + "properties": { + "alt": { + "type": "string", + "description": "The alternative text for the image." + }, + "image_url": { + "type": "string", + "description": "The full URL of the image." + }, + "caption": { + "type": "string", + "description": "A short image description." + } + }, + "required": ["alt", "image_url"] + } + } + }, + "required": ["title", "summary"] + }, + "actions": { + "type": "array", + "description": "Displays a button on GitHub that can be clicked to alert your app to do additional tasks. For example, a code linting app can display a button that automatically fixes detected errors. The button created in this object is displayed after the check run completes. When a user clicks the button, GitHub sends the [`check_run.requested_action` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) to your app. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. See the [`actions` object](https://docs.github.com/rest/reference/checks#actions-object) description. To learn more about check runs and requested actions, see \"[Check runs and requested actions](https://docs.github.com/rest/reference/checks#check-runs-and-requested-actions).\" To learn more about check runs and requested actions, see \"[Check runs and requested actions](https://docs.github.com/rest/reference/checks#check-runs-and-requested-actions).\"", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "The text to be displayed on a button in the web UI. The maximum size is 20 characters." + }, + "description": { + "type": "string", + "description": "A short explanation of what this action would do. The maximum size is 40 characters." + }, + "identifier": { + "type": "string", + "description": "A reference for the action on the integrator's system. The maximum size is 20 characters." + } + }, + "required": ["label", "description", "identifier"] + } + } + }, + "required": ["name", "head_sha"] + }, + "examples": { + "example-of-in-progress-conclusion": { + "summary": "Example of in_progress conclusion", + "value": { + "name": "mighty_readme", + "head_sha": "ce587453ced02b1526dfb4cb910479d431683101", + "status": "in_progress", + "external_id": "42", + "started_at": "2018-05-04T01:14:52Z", + "output": { + "title": "Mighty Readme report", + "summary": "", + "text": "" + } + } + }, + "example-of-completed-conclusion": { + "summary": "Example of completed conclusion", + "value": { + "name": "mighty_readme", + "head_sha": "ce587453ced02b1526dfb4cb910479d431683101", + "status": "completed", + "started_at": "2017-11-30T19:39:10Z", + "conclusion": "success", + "completed_at": "2017-11-30T19:49:10Z", + "output": { + "title": "Mighty Readme report", + "summary": "There are 0 failures, 2 warnings, and 1 notices.", + "text": "You may have some misspelled words on lines 2 and 4. You also may want to add a section in your README about how to install your app.", + "annotations": [ + { + "path": "README.md", + "annotation_level": "warning", + "title": "Spell Checker", + "message": "Check your spelling for 'banaas'.", + "raw_details": "Do you mean 'bananas' or 'banana'?", + "start_line": 2, + "end_line": 2 + }, + { + "path": "README.md", + "annotation_level": "warning", + "title": "Spell Checker", + "message": "Check your spelling for 'aples'", + "raw_details": "Do you mean 'apples' or 'Naples'", + "start_line": 4, + "end_line": 4 + } + ], + "images": [ + { + "alt": "Super bananas", + "image_url": "http://example.com/images/42" + } + ] + }, + "actions": [ + { + "label": "Fix", + "identifier": "fix_errors", + "description": "Allow us to fix these errors for you" + } + ] + } + } + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/check-run" }, + "examples": { + "example-of-in-progress-conclusion": { + "$ref": "#/components/examples/check-run-example-of-in-progress-conclusion" + }, + "example-of-completed-conclusion": { + "$ref": "#/components/examples/check-run-example-of-completed-conclusion" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "checks", + "subcategory": "runs" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/check-runs/{check_run_id}": { + "get": { + "summary": "Get a check run", + "description": "**Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array.\n\nGets a single check run using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository.", + "tags": ["checks"], + "operationId": "checks/get", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/checks#get-a-check-run" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/check_run_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/check-run" }, + "examples": { + "default": { "$ref": "#/components/examples/check-run" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "checks", + "subcategory": "runs" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a check run", + "description": "**Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array.\n\nUpdates a check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to edit check runs.", + "tags": ["checks"], + "operationId": "checks/update", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/checks#update-a-check-run" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/check_run_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the check. For example, \"code-coverage\"." + }, + "details_url": { + "type": "string", + "description": "The URL of the integrator's site that has the full details of the check." + }, + "external_id": { + "type": "string", + "description": "A reference for the run on the integrator's system." + }, + "started_at": { + "type": "string", + "description": "This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." + }, + "status": { + "type": "string", + "description": "The current status. Can be one of `queued`, `in_progress`, or `completed`.", + "enum": ["queued", "in_progress", "completed"] + }, + "conclusion": { + "type": "string", + "description": "**Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. Can be one of `success`, `failure`, `neutral`, `cancelled`, `skipped`, `timed_out`, or `action_required`. \n**Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. Only GitHub can change a check run conclusion to `stale`.", + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "skipped", + "timed_out", + "action_required" + ] + }, + "completed_at": { + "type": "string", + "description": "The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." + }, + "output": { + "type": "object", + "description": "Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. See the [`output` object](https://docs.github.com/rest/reference/checks#output-object-1) description.", + "properties": { + "title": { + "type": "string", + "description": "**Required**." + }, + "summary": { + "type": "string", + "description": "Can contain Markdown." + }, + "text": { + "type": "string", + "description": "Can contain Markdown." + }, + "annotations": { + "type": "array", + "description": "Adds information from your analysis to specific lines of code. Annotations are visible in GitHub's pull request UI. Annotations are visible in GitHub's pull request UI. The Checks API limits the number of annotations to a maximum of 50 per API request. To create more than 50 annotations, you have to make multiple requests to the [Update a check run](https://docs.github.com/rest/reference/checks#update-a-check-run) endpoint. Each time you update the check run, annotations are appended to the list of annotations that already exist for the check run. For details about annotations in the UI, see \"[About status checks](https://help.github.com/articles/about-status-checks#checks)\". See the [`annotations` object](https://docs.github.com/rest/reference/checks#annotations-object-1) description for details.", + "items": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "The path of the file to add an annotation to. For example, `assets/css/main.css`." + }, + "start_line": { + "type": "integer", + "description": "The start line of the annotation." + }, + "end_line": { + "type": "integer", + "description": "The end line of the annotation." + }, + "start_column": { + "type": "integer", + "description": "The start column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values." + }, + "end_column": { + "type": "integer", + "description": "The end column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values." + }, + "annotation_level": { + "type": "string", + "description": "The level of the annotation. Can be one of `notice`, `warning`, or `failure`.", + "enum": ["notice", "warning", "failure"] + }, + "message": { + "type": "string", + "description": "A short description of the feedback for these lines of code. The maximum size is 64 KB." + }, + "title": { + "type": "string", + "description": "The title that represents the annotation. The maximum size is 255 characters." + }, + "raw_details": { + "type": "string", + "description": "Details about this annotation. The maximum size is 64 KB." + } + }, + "required": [ + "path", + "start_line", + "end_line", + "annotation_level", + "message" + ] + } + }, + "images": { + "type": "array", + "description": "Adds images to the output displayed in the GitHub pull request UI. See the [`images` object](https://docs.github.com/rest/reference/checks#annotations-object-1) description for details.", + "items": { + "type": "object", + "properties": { + "alt": { + "type": "string", + "description": "The alternative text for the image." + }, + "image_url": { + "type": "string", + "description": "The full URL of the image." + }, + "caption": { + "type": "string", + "description": "A short image description." + } + }, + "required": ["alt", "image_url"] + } + } + }, + "required": ["summary"] + }, + "actions": { + "type": "array", + "description": "Possible further actions the integrator can perform, which a user may trigger. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. See the [`actions` object](https://docs.github.com/rest/reference/checks#actions-object) description. To learn more about check runs and requested actions, see \"[Check runs and requested actions](https://docs.github.com/rest/reference/checks#check-runs-and-requested-actions).\"", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "The text to be displayed on a button in the web UI. The maximum size is 20 characters." + }, + "description": { + "type": "string", + "description": "A short explanation of what this action would do. The maximum size is 40 characters." + }, + "identifier": { + "type": "string", + "description": "A reference for the action on the integrator's system. The maximum size is 20 characters." + } + }, + "required": ["label", "description", "identifier"] + } + } + } + }, + "example": { + "name": "mighty_readme", + "started_at": "2018-05-04T01:14:52Z", + "status": "completed", + "conclusion": "success", + "completed_at": "2018-05-04T01:14:52Z", + "output": { + "title": "Mighty Readme report", + "summary": "There are 0 failures, 2 warnings, and 1 notices.", + "text": "You may have some misspelled words on lines 2 and 4. You also may want to add a section in your README about how to install your app.", + "annotations": [ + { + "path": "README.md", + "annotation_level": "warning", + "title": "Spell Checker", + "message": "Check your spelling for 'banaas'.", + "raw_details": "Do you mean 'bananas' or 'banana'?", + "start_line": 2, + "end_line": 2 + }, + { + "path": "README.md", + "annotation_level": "warning", + "title": "Spell Checker", + "message": "Check your spelling for 'aples'", + "raw_details": "Do you mean 'apples' or 'Naples'", + "start_line": 4, + "end_line": 4 + } + ], + "images": [ + { + "alt": "Super bananas", + "image_url": "http://example.com/images/42" + } + ] + } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/check-run" }, + "examples": { + "default": { "$ref": "#/components/examples/check-run" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "checks", + "subcategory": "runs" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/check-runs/{check_run_id}/annotations": { + "get": { + "summary": "List check run annotations", + "description": "Lists annotations for a check run using the annotation `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get annotations for a check run. OAuth Apps and authenticated users must have the `repo` scope to get annotations for a check run in a private repository.", + "tags": ["checks"], + "operationId": "checks/list-annotations", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/checks#list-check-run-annotations" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/check_run_id" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/check-annotation" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/check-annotation-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "checks", + "subcategory": "runs" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/check-suites": { + "post": { + "summary": "Create a check suite", + "description": "**Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`.\n\nBy default, check suites are automatically created when you create a [check run](https://docs.github.com/rest/reference/checks#check-runs). You only need to use this endpoint for manually creating check suites when you've disabled automatic creation using \"[Update repository preferences for check suites](https://docs.github.com/rest/reference/checks#update-repository-preferences-for-check-suites)\". Your GitHub App must have the `checks:write` permission to create check suites.", + "tags": ["checks"], + "operationId": "checks/create-suite", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/checks#create-a-check-suite" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "head_sha": { + "type": "string", + "description": "The sha of the head commit." + } + }, + "required": ["head_sha"] + }, + "example": { + "head_sha": "d6fde92930d4715a2b49857d24b940956b26d2d3" + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/check-suite" }, + "examples": { + "default": { "$ref": "#/components/examples/check-suite" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "checks", + "subcategory": "suites" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/check-suites/preferences": { + "patch": { + "summary": "Update repository preferences for check suites", + "description": "Changes the default automatic flow when creating check suites. By default, a check suite is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually [Create a check suite](https://docs.github.com/rest/reference/checks#create-a-check-suite). You must have admin permissions in the repository to set preferences for check suites.", + "tags": ["checks"], + "operationId": "checks/set-suites-preferences", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/checks#update-repository-preferences-for-check-suites" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "auto_trigger_checks": { + "type": "array", + "description": "Enables or disables automatic creation of CheckSuite events upon pushes to the repository. Enabled by default. See the [`auto_trigger_checks` object](https://docs.github.com/rest/reference/checks#auto_trigger_checks-object) description for details.", + "items": { + "type": "object", + "properties": { + "app_id": { + "type": "integer", + "description": "The `id` of the GitHub App." + }, + "setting": { + "type": "boolean", + "description": "Set to `true` to enable automatic creation of CheckSuite events upon pushes to the repository, or `false` to disable them.", + "default": true + } + }, + "required": ["app_id", "setting"] + } + } + } + }, + "example": { + "auto_trigger_checks": [{ "app_id": 4, "setting": false }] + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/check-suite-preference" + }, + "examples": { + "default": { + "$ref": "#/components/examples/check-suite-preference" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "checks", + "subcategory": "suites" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/check-suites/{check_suite_id}": { + "get": { + "summary": "Get a check suite", + "description": "**Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`.\n\nGets a single check suite using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check suites. OAuth Apps and authenticated users must have the `repo` scope to get check suites in a private repository.", + "tags": ["checks"], + "operationId": "checks/get-suite", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/checks#get-a-check-suite" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/check_suite_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/check-suite" }, + "examples": { + "default": { "$ref": "#/components/examples/check-suite" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "checks", + "subcategory": "suites" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs": { + "get": { + "summary": "List check runs in a check suite", + "description": "**Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array.\n\nLists check runs for a check suite using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository.", + "tags": ["checks"], + "operationId": "checks/list-for-suite", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/checks#list-check-runs-in-a-check-suite" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/check_suite_id" }, + { "$ref": "#/components/parameters/check_name" }, + { "$ref": "#/components/parameters/status" }, + { + "name": "filter", + "description": "Filters check runs by their `completed_at` timestamp. Can be one of `latest` (returning the most recent check runs) or `all`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["latest", "all"], + "default": "latest" + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "check_runs": { + "type": "array", + "items": { "$ref": "#/components/schemas/check-run" } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/check-run-paginated" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "checks", + "subcategory": "runs" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest": { + "post": { + "summary": "Rerequest a check suite", + "description": "Triggers GitHub to rerequest an existing check suite, without pushing new code to a repository. This endpoint will trigger the [`check_suite` webhook](https://docs.github.com/webhooks/event-payloads/#check_suite) event with the action `rerequested`. When a check suite is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared.\n\nTo rerequest a check suite, your GitHub App must have the `checks:read` permission on a private repository or pull access to a public repository.", + "tags": ["checks"], + "operationId": "checks/rerequest-suite", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/checks#rerequest-a-check-suite" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/check_suite_id" } + ], + "responses": { "201": { "description": "response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "checks", + "subcategory": "suites" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/code-scanning/alerts": { + "get": { + "summary": "List code scanning alerts for a repository", + "description": "Lists all open code scanning alerts for the default branch (usually `main` or `master`). You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` read permission to use this endpoint.", + "tags": ["code-scanning"], + "operationId": "code-scanning/list-alerts-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/code-scanning/#list-code-scanning-alerts-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "state", + "description": "Set to `open`, `fixed`, or `dismissed` to list code scanning alerts in a specific state.", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/code-scanning-alert-state" + } + }, + { + "name": "ref", + "in": "query", + "description": "Set a full Git reference to list alerts for a specific branch. The `ref` must be formatted as `refs/heads/`.", + "required": false, + "schema": { "$ref": "#/components/schemas/code-scanning-alert-ref" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/code-scanning-alert-code-scanning-alert-items" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-scanning-alert-code-scanning-alert-items" + } + } + } + } + }, + "403": { + "description": "Response if GitHub Advanced Security is not enabled for this repository" + }, + "404": { + "description": "Response if the ref does not match an existing ref" + }, + "503": { "$ref": "#/components/responses/service_unavailable" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "code-scanning", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": { + "get": { + "summary": "Get a code scanning alert", + "description": "Gets a single code scanning alert. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` read permission to use this endpoint.\n\nThe security `alert_number` is found at the end of the security alert's URL. For example, the security alert ID for `https://github.com/Octo-org/octo-repo/security/code-scanning/88` is `88`.", + "tags": ["code-scanning"], + "operationId": "code-scanning/get-alert", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/code-scanning/#get-a-code-scanning-alert" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "alert_number", + "in": "path", + "required": true, + "schema": { "type": "integer" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/code-scanning-alert-code-scanning-alert" + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-scanning-alert-code-scanning-alert" + } + } + } + } + }, + "403": { + "description": "Response if GitHub Advanced Security is not enabled for this repository" + }, + "404": { "$ref": "#/components/responses/not_found" }, + "503": { "$ref": "#/components/responses/service_unavailable" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "code-scanning", + "subcategory": null + }, + "x-octokit": { + "changes": [ + { + "type": "PARAMETER", + "date": "2020-09-17", + "parameter": "alert_number", + "before": { "name": "alert_id" } + } + ] + } + }, + "patch": { + "summary": "Update a code scanning alert", + "description": "Updates the status of a single code scanning alert. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` write permission to use this endpoint.", + "operationId": "code-scanning/update-alert", + "tags": ["code-scanning"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/code-scanning/#upload-a-code-scanning-alert" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/alert_number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "state": { + "$ref": "#/components/schemas/code-scanning-alert-set-state" + }, + "dismissed_reason": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-reason" + } + }, + "required": ["state"] + }, + "example": { + "state": "dismissed", + "dismissed_reason": "false positive" + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/code-scanning-alert-code-scanning-alert" + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-scanning-alert-code-scanning-alert-dismissed" + } + } + } + } + }, + "403": { + "description": "Response if the repository is archived, or if GitHub Advanced Security is not enabled for this repository" + }, + "503": { + "description": "Response when code scanning is not available and you should try again at a later time" + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "code-scanning" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/code-scanning/analyses": { + "get": { + "summary": "List recent code scanning analyses for a repository", + "description": "List the details of recent code scanning analyses for a repository. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` read permission to use this endpoint.", + "operationId": "code-scanning/list-recent-analyses", + "tags": ["code-scanning"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/code-scanning/#list-recent-analyses" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "ref", + "in": "query", + "description": "Set a full Git reference to list alerts for a specific branch. The `ref` must be formatted as `refs/heads/`.", + "required": false, + "schema": { + "$ref": "#/components/schemas/code-scanning-analysis-ref" + } + }, + { + "name": "tool_name", + "in": "query", + "description": "Set a single code scanning tool name to filter alerts by tool.", + "required": false, + "schema": { + "$ref": "#/components/schemas/code-scanning-analysis-tool-name" + } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/code-scanning-analysis-code-scanning-analysis" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-scanning-analysis-code-scanning-analysis-items" + } + } + } + } + }, + "403": { + "description": "Response if GitHub Advanced Security is not enabled for this repository" + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "code-scanning" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/code-scanning/sarifs": { + "post": { + "summary": "Upload a SARIF file", + "description": "Upload a SARIF file containing the results of a code scanning analysis to make the results available in a repository. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` write permission to use this endpoint.", + "operationId": "code-scanning/upload-sarif", + "tags": ["code-scanning"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/code-scanning/#upload-a-sarif-analysis" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "commit_sha": { + "$ref": "#/components/schemas/code-scanning-analysis-commit-sha" + }, + "ref": { + "$ref": "#/components/schemas/code-scanning-analysis-ref" + }, + "sarif": { + "$ref": "#/components/schemas/code-scanning-analysis-sarif-file" + }, + "checkout_uri": { + "description": "The base directory used in the analysis, as it appears in the SARIF file.\nThis property is used to convert file paths from absolute to relative, so that alerts can be mapped to their correct location in the repository.", + "example": "file:///github/workspace/", + "type": "string", + "format": "uri" + }, + "started_at": { + "description": "The time that the analysis run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date", + "type": "string" + }, + "tool_name": { + "$ref": "#/components/schemas/code-scanning-analysis-tool-name" + } + }, + "required": ["commit_sha", "ref", "sarif", "tool_name"] + }, + "example": { + "commit_sha": "9a450a043b9038ba86722926570d2312cff6aba8", + "ref": "refs/heads/main", + "sarif": "REPLACE_ME", + "tool_name": "codeql" + } + } + } + }, + "responses": { + "202": { "description": "response" }, + "400": { "description": "Response if the `sarif` field is invalid" }, + "403": { + "description": "Response if the repository is archived, or if GitHub Advanced Security is not enabled for this repository" + }, + "404": { + "description": "Response if `commit_sha` or `ref` cannot be found" + }, + "413": { "description": "Response if the `sarif` field is too large" } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "code-scanning" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/collaborators": { + "get": { + "summary": "List repository collaborators", + "description": "For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.\n\nTeam members will include the members of child teams.", + "tags": ["repos"], + "operationId": "repos/list-collaborators", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#list-repository-collaborators" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "affiliation", + "description": "Filter collaborators returned by their affiliation. Can be one of: \n\\* `outside`: All outside collaborators of an organization-owned repository. \n\\* `direct`: All collaborators with permissions to an organization-owned repository, regardless of organization membership status. \n\\* `all`: All collaborators the authenticated user can see.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["outside", "direct", "all"], + "default": "all" + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/collaborator" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/collaborator-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "collaborators" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/collaborators/{username}": { + "get": { + "summary": "Check if a user is a repository collaborator", + "description": "For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.\n\nTeam members will include the members of child teams.", + "tags": ["repos"], + "operationId": "repos/check-collaborator", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#check-if-a-user-is-a-repository-collaborator" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { + "204": { "description": "Response if user is a collaborator" }, + "404": { "description": "Response if user is not a collaborator" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "collaborators" + }, + "x-octokit": {} + }, + "put": { + "summary": "Add a repository collaborator", + "description": "This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See \"[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)\" and \"[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)\" for details.\n\nFor more information the permission levels, see \"[Repository permission levels for an organization](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)\".\n\nNote that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"\n\nThe invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the [repository invitations API endpoints](https://docs.github.com/rest/reference/repos#invitations).\n\n**Rate limits**\n\nTo prevent abuse, you are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository.", + "tags": ["repos"], + "operationId": "repos/add-collaborator", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#add-a-repository-collaborator" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/username" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "permission": { + "type": "string", + "description": "The permission to grant the collaborator. **Only valid on organization-owned repositories.** Can be one of: \n\\* `pull` - can pull, but not push to or administer this repository. \n\\* `push` - can pull and push, but not administer this repository. \n\\* `admin` - can pull, push and administer this repository. \n\\* `maintain` - Recommended for project managers who need to manage the repository without access to sensitive or destructive actions. \n\\* `triage` - Recommended for contributors who need to proactively manage issues and pull requests without write access.", + "enum": ["pull", "push", "admin", "maintain", "triage"], + "default": "push" + }, + "permissions": { "type": "string", "example": "\"push\"" } + } + } + } + } + }, + "responses": { + "201": { + "description": "Response when a new invitation is created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/repository-invitation" + }, + "examples": { + "response-when-a-new-invitation-is-created": { + "$ref": "#/components/examples/repository-invitation-response-when-a-new-invitation-is-created" + } + } + } + } + }, + "204": { + "description": "Response when person is already a collaborator" + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "collaborators" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove a repository collaborator", + "description": "", + "tags": ["repos"], + "operationId": "repos/remove-collaborator", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#remove-a-repository-collaborator" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "collaborators" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/collaborators/{username}/permission": { + "get": { + "summary": "Get repository permissions for a user", + "description": "Checks the repository permission of a collaborator. The possible repository permissions are `admin`, `write`, `read`, and `none`.", + "tags": ["repos"], + "operationId": "repos/get-collaborator-permission-level", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-repository-permissions-for-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { + "200": { + "description": "Response if user has admin permissions", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/repository-collaborator-permission" + }, + "examples": { + "response-if-user-has-admin-permissions": { + "$ref": "#/components/examples/repository-collaborator-permission-response-if-user-has-admin-permissions" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "collaborators" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/comments": { + "get": { + "summary": "List commit comments for a repository", + "description": "Commit Comments use [these custom media types](https://docs.github.com/rest/reference/repos#custom-media-types). You can read more about the use of media types in the API [here](https://docs.github.com/rest/overview/media-types/).\n\nComments are ordered by ascending ID.", + "tags": ["repos"], + "operationId": "repos/list-commit-comments-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#list-commit-comments-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/commit-comment" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/commit-comment-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "repos", + "subcategory": "comments" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/comments/{comment_id}": { + "get": { + "summary": "Get a commit comment", + "description": "", + "tags": ["repos"], + "operationId": "repos/get-commit-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-a-commit-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/comment_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/commit-comment" }, + "examples": { + "default": { "$ref": "#/components/examples/commit-comment" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "repos", + "subcategory": "comments" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a commit comment", + "description": "", + "tags": ["repos"], + "operationId": "repos/update-commit-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#update-a-commit-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/comment_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The contents of the comment" + } + }, + "required": ["body"] + }, + "example": { "body": "Nice change" } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/commit-comment" }, + "examples": { + "default": { + "$ref": "#/components/examples/commit-comment-2" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "comments" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a commit comment", + "description": "", + "tags": ["repos"], + "operationId": "repos/delete-commit-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#delete-a-commit-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/comment_id" } + ], + "responses": { + "204": { "description": "Empty response" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "comments" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/comments/{comment_id}/reactions": { + "get": { + "summary": "List reactions for a commit comment", + "description": "List the reactions to a [commit comment](https://docs.github.com/rest/reference/repos#comments).", + "tags": ["reactions"], + "operationId": "reactions/list-for-commit-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#list-reactions-for-a-commit-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/comment_id" }, + { + "name": "content", + "description": "Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a commit comment.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/reaction" } + }, + "examples": { + "default": { "$ref": "#/components/examples/reaction-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "reactions", + "subcategory": null + }, + "x-octokit": {} + }, + "post": { + "summary": "Create reaction for a commit comment", + "description": "Create a reaction to a [commit comment](https://docs.github.com/rest/reference/repos#comments). A response with a `Status: 200 OK` means that you already added the reaction type to this commit comment.", + "tags": ["reactions"], + "operationId": "reactions/create-for-commit-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#create-reaction-for-a-commit-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/comment_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the commit comment.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + "required": ["content"] + }, + "example": { "content": "heart" } + } + } + }, + "responses": { + "200": { + "description": "Reaction exists", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/reaction" }, + "examples": { + "default": { "$ref": "#/components/examples/reaction" } + } + } + } + }, + "201": { + "description": "Reaction created", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/reaction" }, + "examples": { + "default": { "$ref": "#/components/examples/reaction" } + } + } + } + }, + "415": { "$ref": "#/components/responses/preview_header_missing" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "reactions", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}": { + "delete": { + "summary": "Delete a commit comment reaction", + "description": "**Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/comments/:comment_id/reactions/:reaction_id`.\n\nDelete a reaction to a [commit comment](https://docs.github.com/rest/reference/repos#comments).", + "tags": ["reactions"], + "operationId": "reactions/delete-for-commit-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#delete-a-commit-comment-reaction" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/comment_id" }, + { "$ref": "#/components/parameters/reaction-id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "reactions", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/commits": { + "get": { + "summary": "List commits", + "description": "**Signature verification object**\n\nThe response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object:\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. |\n| `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. |\n| `signature` | `string` | The signature that was extracted from the commit. |\n| `payload` | `string` | The value that was signed. |\n\nThese are the possible values for `reason` in the `verification` object:\n\n| Value | Description |\n| ----- | ----------- |\n| `expired_key` | The key that made the signature is expired. |\n| `not_signing_key` | The \"signing\" flag is not among the usage flags in the GPG key that made the signature. |\n| `gpgverify_error` | There was an error communicating with the signature verification service. |\n| `gpgverify_unavailable` | The signature verification service is currently unavailable. |\n| `unsigned` | The object does not include a signature. |\n| `unknown_signature_type` | A non-PGP signature was found in the commit. |\n| `no_user` | No user was associated with the `committer` email address in the commit. |\n| `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. |\n| `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. |\n| `unknown_key` | The key that made the signature has not been registered with any user's account. |\n| `malformed_signature` | There was an error parsing the signature. |\n| `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |\n| `valid` | None of the above errors applied, so the signature is considered to be verified. |", + "tags": ["repos"], + "operationId": "repos/list-commits", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#list-commits" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "sha", + "description": "SHA or branch to start listing commits from. Default: the repository’s default branch (usually `master`).", + "in": "query", + "required": false, + "schema": { "type": "string" } + }, + { + "name": "path", + "description": "Only commits containing this file path will be returned.", + "in": "query", + "required": false, + "schema": { "type": "string" } + }, + { + "name": "author", + "description": "GitHub login or email address by which to filter by commit author.", + "in": "query", + "required": false, + "schema": { "type": "string" } + }, + { "$ref": "#/components/parameters/since" }, + { + "name": "until", + "description": "Only commits before this date will be returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "in": "query", + "required": false, + "schema": { "type": "string" } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/commit" } + }, + "examples": { + "default": { "$ref": "#/components/examples/commit-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "400": { "$ref": "#/components/responses/bad_request" }, + "404": { "$ref": "#/components/responses/not_found" }, + "409": { "$ref": "#/components/responses/conflict" }, + "500": { "$ref": "#/components/responses/internal_error" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "commits" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head": { + "get": { + "summary": "List branches for HEAD commit", + "description": "Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nReturns all branches where the given commit SHA is the HEAD, or latest commit for the branch.", + "tags": ["repos"], + "operationId": "repos/list-branches-for-head-commit", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#list-branches-for-head-commit" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/commit_sha" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/branch-short" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/branch-short-items" + } + } + } + } + }, + "415": { "$ref": "#/components/responses/preview_header_missing" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "groot", + "note": "Listing branches or pull requests for a commit in the Commits API is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2019-04-11-pulls-branches-for-commit/) for more details. To access the new endpoints during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.groot-preview+json\n```" + } + ], + "category": "repos", + "subcategory": "commits" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/commits/{commit_sha}/comments": { + "get": { + "summary": "List commit comments", + "description": "Use the `:commit_sha` to specify the commit that will have its comments listed.", + "tags": ["repos"], + "operationId": "repos/list-comments-for-commit", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#list-commit-comments" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/commit_sha" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/commit-comment" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/commit-comment-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "repos", + "subcategory": "comments" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a commit comment", + "description": "Create a comment for a commit using its `:commit_sha`.\n\nThis endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See \"[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)\" and \"[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)\" for details.", + "tags": ["repos"], + "operationId": "repos/create-commit-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#create-a-commit-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/commit_sha" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The contents of the comment." + }, + "path": { + "type": "string", + "description": "Relative path of the file to comment on." + }, + "position": { + "type": "integer", + "description": "Line index in the diff to comment on." + }, + "line": { + "type": "integer", + "description": "**Deprecated**. Use **position** parameter instead. Line number in the file to comment on." + } + }, + "required": ["body"] + }, + "example": { + "body": "Great stuff", + "path": "file1.txt", + "position": 4, + "line": 1 + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/commit-comment" }, + "examples": { + "default": { "$ref": "#/components/examples/commit-comment" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/comments/1", + "schema": { "type": "string" } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "comments" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/commits/{commit_sha}/pulls": { + "get": { + "summary": "List pull requests associated with a commit", + "description": "Lists all pull requests containing the provided commit SHA, which can be from any point in the commit history. The results will include open and closed pull requests. Additional preview headers may be required to see certain details for associated pull requests, such as whether a pull request is in a draft state. For more information about previews that might affect this endpoint, see the [List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests) endpoint.", + "tags": ["repos"], + "operationId": "repos/list-pull-requests-associated-with-commit", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#list-pull-requests-associated-with-a-commit" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/commit_sha" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-simple" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-simple-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "groot", + "note": "Listing branches or pull requests for a commit in the Commits API is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2019-04-11-pulls-branches-for-commit/) for more details. To access the new endpoints during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.groot-preview+json\n```" + } + ], + "category": "repos", + "subcategory": "commits" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/commits/{ref}": { + "get": { + "summary": "Get a commit", + "description": "Returns the contents of a single commit reference. You must have `read` access for the repository to use this endpoint.\n\n**Note:** If there are more than 300 files in the commit diff, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing.\n\nYou can pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch `diff` and `patch` formats. Diffs with binary data will have no `patch` property.\n\nTo return only the SHA-1 hash of the commit reference, you can provide the `sha` custom [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) in the `Accept` header. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag.\n\n**Signature verification object**\n\nThe response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object:\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. |\n| `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. |\n| `signature` | `string` | The signature that was extracted from the commit. |\n| `payload` | `string` | The value that was signed. |\n\nThese are the possible values for `reason` in the `verification` object:\n\n| Value | Description |\n| ----- | ----------- |\n| `expired_key` | The key that made the signature is expired. |\n| `not_signing_key` | The \"signing\" flag is not among the usage flags in the GPG key that made the signature. |\n| `gpgverify_error` | There was an error communicating with the signature verification service. |\n| `gpgverify_unavailable` | The signature verification service is currently unavailable. |\n| `unsigned` | The object does not include a signature. |\n| `unknown_signature_type` | A non-PGP signature was found in the commit. |\n| `no_user` | No user was associated with the `committer` email address in the commit. |\n| `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. |\n| `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. |\n| `unknown_key` | The key that made the signature has not been registered with any user's account. |\n| `malformed_signature` | There was an error parsing the signature. |\n| `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |\n| `valid` | None of the above errors applied, so the signature is considered to be verified. |", + "tags": ["repos"], + "operationId": "repos/get-commit", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-a-commit" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "ref", + "description": "ref+ parameter", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/commit" }, + "examples": { + "default": { "$ref": "#/components/examples/commit" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" }, + "500": { "$ref": "#/components/responses/internal_error" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "commits" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/commits/{ref}/check-runs": { + "get": { + "summary": "List check runs for a Git reference", + "description": "**Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array.\n\nLists check runs for a commit ref. The `ref` can be a SHA, branch name, or a tag name. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository.", + "tags": ["checks"], + "operationId": "checks/list-for-ref", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/checks#list-check-runs-for-a-git-reference" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "ref", + "description": "ref+ parameter", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + { "$ref": "#/components/parameters/check_name" }, + { "$ref": "#/components/parameters/status" }, + { + "name": "filter", + "description": "Filters check runs by their `completed_at` timestamp. Can be one of `latest` (returning the most recent check runs) or `all`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["latest", "all"], + "default": "latest" + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "check_runs": { + "type": "array", + "items": { "$ref": "#/components/schemas/check-run" } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/check-run-paginated" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "checks", + "subcategory": "runs" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/commits/{ref}/check-suites": { + "get": { + "summary": "List check suites for a Git reference", + "description": "**Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`.\n\nLists check suites for a commit `ref`. The `ref` can be a SHA, branch name, or a tag name. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to list check suites. OAuth Apps and authenticated users must have the `repo` scope to get check suites in a private repository.", + "tags": ["checks"], + "operationId": "checks/list-suites-for-ref", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/checks#list-check-suites-for-a-git-reference" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "ref", + "description": "ref+ parameter", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + { + "name": "app_id", + "description": "Filters check suites by GitHub App `id`.", + "in": "query", + "required": false, + "schema": { "type": "integer" }, + "example": 1 + }, + { "$ref": "#/components/parameters/check_name" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "check_suites": { + "type": "array", + "items": { "$ref": "#/components/schemas/check-suite" } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/check-suite-paginated" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "checks", + "subcategory": "suites" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/commits/{ref}/status": { + "get": { + "summary": "Get the combined status for a specific reference", + "description": "Users with pull access in a repository can access a combined view of commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name.\n\nThe most recent status for each context is returned, up to 100. This field [paginates](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination) if there are over 100 contexts.\n\nAdditionally, a combined `state` is returned. The `state` is one of:\n\n* **failure** if any of the contexts report as `error` or `failure`\n* **pending** if there are no statuses or a context is `pending`\n* **success** if the latest status for all contexts is `success`", + "tags": ["repos"], + "operationId": "repos/get-combined-status-for-ref", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-the-combined-status-for-a-specific-reference" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "ref", + "description": "ref+ parameter", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/combined-commit-status" + }, + "examples": { + "default": { + "$ref": "#/components/examples/combined-commit-status" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "statuses" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/commits/{ref}/statuses": { + "get": { + "summary": "List commit statuses for a reference", + "description": "Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one.\n\nThis resource is also available via a legacy route: `GET /repos/:owner/:repo/statuses/:ref`.", + "tags": ["repos"], + "operationId": "repos/list-commit-statuses-for-ref", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#list-commit-statuses-for-a-reference" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "ref", + "description": "ref+ parameter", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/status" } + }, + "examples": { + "default": { "$ref": "#/components/examples/status-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "301": { "$ref": "#/components/responses/moved_permanently" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "statuses" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/community/code_of_conduct": { + "get": { + "summary": "Get the code of conduct for a repository", + "description": "Returns the contents of the repository's code of conduct file, if one is detected.\n\nA code of conduct is detected if there is a file named `CODE_OF_CONDUCT` in the root directory of the repository. GitHub detects which code of conduct it is using fuzzy matching.", + "tags": ["codes-of-conduct"], + "operationId": "codes-of-conduct/get-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/codes_of_conduct/#get-the-code-of-conduct-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/code-of-conduct" }, + "examples": { + "default": { + "$ref": "#/components/examples/code-of-conduct-2" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "scarlet-witch", + "note": "The Codes of Conduct API is currently available for developers to preview.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.scarlet-witch-preview+json\n```" + } + ], + "category": "codes-of-conduct", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/community/profile": { + "get": { + "summary": "Get community profile metrics", + "description": "This endpoint will return all community profile metrics, including an\noverall health score, repository description, the presence of documentation, detected\ncode of conduct, detected license, and the presence of ISSUE\\_TEMPLATE, PULL\\_REQUEST\\_TEMPLATE,\nREADME, and CONTRIBUTING files.\n\nThe `health_percentage` score is defined as a percentage of how many of\nthese four documents are present: README, CONTRIBUTING, LICENSE, and\nCODE_OF_CONDUCT. For example, if all four documents are present, then\nthe `health_percentage` is `100`. If only one is present, then the\n`health_percentage` is `25`.\n\n`content_reports_enabled` is only returned for organization-owned repositories.", + "tags": ["repos"], + "operationId": "repos/get-community-profile-metrics", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-community-profile-metrics" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/community-profile" }, + "examples": { + "default": { + "$ref": "#/components/examples/community-profile" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "community" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/compare/{base}...{head}": { + "get": { + "summary": "Compare two commits", + "description": "Both `:base` and `:head` must be branch names in `:repo`. To compare branches across other repositories in the same network as `:repo`, use the format `:branch`.\n\nThe response from the API is equivalent to running the `git log base..head` command; however, commits are returned in chronological order. Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats.\n\nThe response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file.\n\n**Working with large comparisons**\n\nThe response will include a comparison of up to 250 commits. If you are working with a larger commit range, you can use the [List commits](https://docs.github.com/rest/reference/repos#list-commits) to enumerate all commits in the range.\n\nFor comparisons with extremely large diffs, you may receive an error response indicating that the diff took too long\nto generate. You can typically resolve this error by using a smaller commit range.\n\n**Signature verification object**\n\nThe response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object:\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. |\n| `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. |\n| `signature` | `string` | The signature that was extracted from the commit. |\n| `payload` | `string` | The value that was signed. |\n\nThese are the possible values for `reason` in the `verification` object:\n\n| Value | Description |\n| ----- | ----------- |\n| `expired_key` | The key that made the signature is expired. |\n| `not_signing_key` | The \"signing\" flag is not among the usage flags in the GPG key that made the signature. |\n| `gpgverify_error` | There was an error communicating with the signature verification service. |\n| `gpgverify_unavailable` | The signature verification service is currently unavailable. |\n| `unsigned` | The object does not include a signature. |\n| `unknown_signature_type` | A non-PGP signature was found in the commit. |\n| `no_user` | No user was associated with the `committer` email address in the commit. |\n| `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. |\n| `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. |\n| `unknown_key` | The key that made the signature has not been registered with any user's account. |\n| `malformed_signature` | There was an error parsing the signature. |\n| `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |\n| `valid` | None of the above errors applied, so the signature is considered to be verified. |", + "tags": ["repos"], + "operationId": "repos/compare-commits", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#compare-two-commits" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "base", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + { + "name": "head", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/commit-comparison" }, + "examples": { + "default": { + "$ref": "#/components/examples/commit-comparison" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "500": { "$ref": "#/components/responses/internal_error" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "commits" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/contents/{path}": { + "get": { + "summary": "Get repository content", + "description": "Gets the contents of a file or directory in a repository. Specify the file path or directory in `:path`. If you omit\n`:path`, you will receive the contents of the repository's root directory. See the description below regarding what the API response includes for directories. \n\nFiles and symlinks support [a custom media type](https://docs.github.com/rest/reference/repos#custom-media-types) for\nretrieving the raw content or rendered HTML (when supported). All content types support [a custom media\ntype](https://docs.github.com/rest/reference/repos#custom-media-types) to ensure the content is returned in a consistent\nobject format.\n\n**Note**:\n* To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/reference/git#trees).\n* This API has an upper limit of 1,000 files for a directory. If you need to retrieve more files, use the [Git Trees\nAPI](https://docs.github.com/rest/reference/git#get-a-tree).\n* This API supports files up to 1 megabyte in size.\n\n#### If the content is a directory\nThe response will be an array of objects, one object for each item in the directory.\nWhen listing the contents of a directory, submodules have their \"type\" specified as \"file\". Logically, the value\n_should_ be \"submodule\". This behavior exists in API v3 [for backwards compatibility purposes](https://git.io/v1YCW).\nIn the next major version of the API, the type will be returned as \"submodule\".\n\n#### If the content is a symlink \nIf the requested `:path` points to a symlink, and the symlink's target is a normal file in the repository, then the\nAPI responds with the content of the file (in the format shown in the example. Otherwise, the API responds with an object \ndescribing the symlink itself.\n\n#### If the content is a submodule\nThe `submodule_git_url` identifies the location of the submodule repository, and the `sha` identifies a specific\ncommit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out\nthe submodule at that specific commit.\n\nIf the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links[\"git\"]`) and the\ngithub.com URLs (`html_url` and `_links[\"html\"]`) will have null values.", + "tags": ["repos"], + "operationId": "repos/get-content", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-repository-content" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "path", + "description": "path+ parameter", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + { + "name": "ref", + "description": "The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`)", + "in": "query", + "required": false, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/vnd.github.v3.object": { + "schema": { "$ref": "#/components/schemas/content-tree" } + }, + "application/json": { + "schema": { + "oneOf": [ + { "$ref": "#/components/schemas/content-directory" }, + { "$ref": "#/components/schemas/content-file" }, + { "$ref": "#/components/schemas/content-symlink" }, + { "$ref": "#/components/schemas/content-submodule" } + ] + }, + "examples": { + "response-if-content-is-a-file": { + "$ref": "#/components/examples/content-file-response-if-content-is-a-file" + }, + "response-if-content-is-a-directory": { + "$ref": "#/components/examples/content-file-response-if-content-is-a-directory" + }, + "response-if-content-is-a-symlink": { + "$ref": "#/components/examples/content-file-response-if-content-is-a-symlink" + }, + "response-if-content-is-a-submodule": { + "$ref": "#/components/examples/content-file-response-if-content-is-a-submodule" + } + } + } + } + }, + "302": { "$ref": "#/components/responses/found" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "contents" + }, + "x-octokit": {} + }, + "put": { + "summary": "Create or update file contents", + "description": "Creates a new file or replaces an existing file in a repository.", + "tags": ["repos"], + "operationId": "repos/create-or-update-file-contents", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#create-or-update-file-contents" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "path", + "description": "path+ parameter", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The commit message." + }, + "content": { + "type": "string", + "description": "The new file content, using Base64 encoding." + }, + "sha": { + "type": "string", + "description": "**Required if you are updating a file**. The blob SHA of the file being replaced." + }, + "branch": { + "type": "string", + "description": "The branch name. Default: the repository’s default branch (usually `master`)" + }, + "committer": { + "type": "object", + "description": "The person that committed the file. Default: the authenticated user.", + "properties": { + "name": { + "type": "string", + "description": "The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted." + }, + "email": { + "type": "string", + "description": "The email of the author or committer of the commit. You'll receive a `422` status code if `email` is omitted." + }, + "date": { + "type": "string", + "example": "\"2013-01-05T13:13:22+05:00\"" + } + }, + "required": ["name", "email"] + }, + "author": { + "type": "object", + "description": "The author of the file. Default: The `committer` or the authenticated user if you omit `committer`.", + "properties": { + "name": { + "type": "string", + "description": "The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted." + }, + "email": { + "type": "string", + "description": "The email of the author or committer of the commit. You'll receive a `422` status code if `email` is omitted." + }, + "date": { + "type": "string", + "example": "\"2013-01-15T17:13:22+05:00\"" + } + }, + "required": ["name", "email"] + } + }, + "required": ["message", "content"] + }, + "examples": { + "example-for-creating-a-file": { + "summary": "Example for creating a file", + "value": { + "message": "my commit message", + "committer": { + "name": "Monalisa Octocat", + "email": "octocat@github.com" + }, + "content": "bXkgbmV3IGZpbGUgY29udGVudHM=" + } + }, + "example-for-updating-a-file": { + "summary": "Example for updating a file", + "value": { + "message": "a new commit message", + "committer": { + "name": "Monalisa Octocat", + "email": "octocat@github.com" + }, + "content": "bXkgdXBkYXRlZCBmaWxlIGNvbnRlbnRz", + "sha": "95b966ae1c166bd92f8ae7d1c313e738c731dfc3" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/file-commit" }, + "examples": { + "example-for-updating-a-file": { + "$ref": "#/components/examples/file-commit-example-for-updating-a-file" + } + } + } + } + }, + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/file-commit" }, + "examples": { + "example-for-creating-a-file": { + "$ref": "#/components/examples/file-commit-example-for-creating-a-file" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "409": { "$ref": "#/components/responses/conflict" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "contents" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a file", + "description": "Deletes a file in a repository.\n\nYou can provide an additional `committer` parameter, which is an object containing information about the committer. Or, you can provide an `author` parameter, which is an object containing information about the author.\n\nThe `author` section is optional and is filled in with the `committer` information if omitted. If the `committer` information is omitted, the authenticated user's information is used.\n\nYou must provide values for both `name` and `email`, whether you choose to use `author` or `committer`. Otherwise, you'll receive a `422` status code.", + "tags": ["repos"], + "operationId": "repos/delete-file", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#delete-a-file" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "path", + "description": "path+ parameter", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The commit message." + }, + "sha": { + "type": "string", + "description": "The blob SHA of the file being replaced." + }, + "branch": { + "type": "string", + "description": "The branch name. Default: the repository’s default branch (usually `master`)" + }, + "committer": { + "type": "object", + "description": "object containing information about the committer.", + "properties": { + "name": { + "type": "string", + "description": "The name of the author (or committer) of the commit" + }, + "email": { + "type": "string", + "description": "The email of the author (or committer) of the commit" + } + } + }, + "author": { + "type": "object", + "description": "object containing information about the author.", + "properties": { + "name": { + "type": "string", + "description": "The name of the author (or committer) of the commit" + }, + "email": { + "type": "string", + "description": "The email of the author (or committer) of the commit" + } + } + } + }, + "required": ["message", "sha"] + }, + "example": { + "message": "my commit message", + "committer": { + "name": "Monalisa Octocat", + "email": "octocat@github.com" + }, + "sha": "329688480d39049927147c162b9d2deaf885005f" + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/file-commit" }, + "examples": { + "default": { "$ref": "#/components/examples/file-commit" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "409": { "$ref": "#/components/responses/conflict" }, + "422": { "$ref": "#/components/responses/validation_failed" }, + "503": { "$ref": "#/components/responses/service_unavailable" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "contents" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/contributors": { + "get": { + "summary": "List repository contributors", + "description": "Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API v3 caches contributor data to improve performance.\n\nGitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information.", + "tags": ["repos"], + "operationId": "repos/list-contributors", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#list-repository-contributors" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "anon", + "description": "Set to `1` or `true` to include anonymous contributors in results.", + "in": "query", + "required": false, + "schema": { "type": "string" } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "Response if repository contains content", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/contributor" } + }, + "examples": { + "response-if-repository-contains-content": { + "$ref": "#/components/examples/contributor-items-response-if-repository-contains-content" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "204": { "description": "Response if repository is empty" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/deployments": { + "get": { + "summary": "List deployments", + "description": "Simple filtering of deployments is available via query parameters:", + "tags": ["repos"], + "operationId": "repos/list-deployments", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#list-deployments" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "sha", + "description": "The SHA recorded at creation time.", + "in": "query", + "required": false, + "schema": { "type": "string", "default": "none" } + }, + { + "name": "ref", + "description": "The name of the ref. This can be a branch, tag, or SHA.", + "in": "query", + "required": false, + "schema": { "type": "string", "default": "none" } + }, + { + "name": "task", + "description": "The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`).", + "in": "query", + "required": false, + "schema": { "type": "string", "default": "none" } + }, + { + "name": "environment", + "description": "The name of the environment that was deployed to (e.g., `staging` or `production`).", + "in": "query", + "required": false, + "schema": { "type": "string", "default": "none" } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/deployment" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/deployment-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "ant-man", + "note": "The `inactive` state and the `log_url`, `environment_url`, and `auto_inactive` parameters are currently available for developers to preview. Please see the [blog post](https://developer.github.com/changes/2016-04-06-deployment-and-deployment-status-enhancements) for full details.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.ant-man-preview+json\n```" + } + ], + "category": "repos", + "subcategory": "deployments" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a deployment", + "description": "Deployments offer a few configurable parameters with certain defaults.\n\nThe `ref` parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them\nbefore we merge a pull request.\n\nThe `environment` parameter allows deployments to be issued to different runtime environments. Teams often have\nmultiple environments for verifying their applications, such as `production`, `staging`, and `qa`. This parameter\nmakes it easier to track which environments have requested deployments. The default environment is `production`.\n\nThe `auto_merge` parameter is used to ensure that the requested ref is not behind the repository's default branch. If\nthe ref _is_ behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds,\nthe API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will\nreturn a failure response.\n\nBy default, [commit statuses](https://docs.github.com/rest/reference/repos#statuses) for every submitted context must be in a `success`\nstate. The `required_contexts` parameter allows you to specify a subset of contexts that must be `success`, or to\nspecify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do\nnot require any contexts or create any commit statuses, the deployment will always succeed.\n\nThe `payload` parameter is available for any extra information that a deployment system might need. It is a JSON text\nfield that will be passed on when a deployment event is dispatched.\n\nThe `task` parameter is used by the deployment system to allow different execution paths. In the web world this might\nbe `deploy:migrations` to run schema changes on the system. In the compiled world this could be a flag to compile an\napplication with debugging enabled.\n\nUsers with `repo` or `repo_deployment` scopes can create a deployment for a given ref.\n\n#### Merged branch response\nYou will see this response when GitHub automatically merges the base branch into the topic branch instead of creating\na deployment. This auto-merge happens when:\n* Auto-merge option is enabled in the repository\n* Topic branch does not include the latest changes on the base branch, which is `master` in the response example\n* There are no merge conflicts\n\nIf there are no new commits in the base branch, a new request to create a deployment should give a successful\nresponse.\n\n#### Merge conflict response\nThis error happens when the `auto_merge` option is enabled and when the default branch (in this case `master`), can't\nbe merged into the branch that's being deployed (in this case `topic-branch`), due to merge conflicts.\n\n#### Failed commit status checks\nThis error happens when the `required_contexts` parameter indicates that one or more contexts need to have a `success`\nstatus for the commit to be deployed, but one or more of the required contexts do not have a state of `success`.", + "tags": ["repos"], + "operationId": "repos/create-deployment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#create-a-deployment" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ref": { + "type": "string", + "description": "The ref to deploy. This can be a branch, tag, or SHA." + }, + "task": { + "type": "string", + "description": "Specifies a task to execute (e.g., `deploy` or `deploy:migrations`).", + "default": "deploy" + }, + "auto_merge": { + "type": "boolean", + "description": "Attempts to automatically merge the default branch into the requested ref, if it's behind the default branch.", + "default": true + }, + "required_contexts": { + "type": "array", + "description": "The [status](https://docs.github.com/rest/reference/repos#statuses) contexts to verify against commit status checks. If you omit this parameter, GitHub verifies all unique contexts before creating a deployment. To bypass checking entirely, pass an empty array. Defaults to all unique contexts.", + "items": { "type": "string" } + }, + "payload": { + "type": "string", + "description": "JSON payload with extra information about the deployment.", + "default": "" + }, + "environment": { + "type": "string", + "description": "Name for the target deployment environment (e.g., `production`, `staging`, `qa`).", + "default": "production" + }, + "description": { + "type": "string", + "description": "Short description of the deployment.", + "default": "", + "nullable": true + }, + "transient_environment": { + "type": "boolean", + "description": "Specifies if the given environment is specific to the deployment and will no longer exist at some point in the future. Default: `false` \n**Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type. **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type.", + "default": false + }, + "production_environment": { + "type": "boolean", + "description": "Specifies if the given environment is one that end-users directly interact with. Default: `true` when `environment` is `production` and `false` otherwise. \n**Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type." + }, + "created_at": { + "type": "string", + "example": "\"1776-07-04T00:00:00.000-07:52\"" + } + }, + "required": ["ref"] + }, + "examples": { + "simple-example": { + "summary": "Simple example", + "value": { + "ref": "topic-branch", + "payload": "{ \"deploy\": \"migrate\" }", + "description": "Deploy request from hubot" + } + }, + "advanced-example": { + "summary": "Advanced example", + "value": { + "ref": "topic-branch", + "auto_merge": false, + "payload": "{ \"deploy\": \"migrate\" }", + "description": "Deploy request from hubot", + "required_contexts": ["ci/janky", "security/brakeman"] + } + } + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/deployment" }, + "examples": { + "simple-example": { + "$ref": "#/components/examples/deployment-simple-example" + }, + "advanced-example": { + "$ref": "#/components/examples/deployment-advanced-example" + } + } + } + } + }, + "202": { + "description": "Merged branch response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { "message": { "type": "string" } } + }, + "examples": { + "merged-branch-response": { + "value": { + "message": "Auto-merged master into topic-branch on deployment." + } + } + } + } + } + }, + "409": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { "type": "string" }, + "documentation_url": { + "type": "string", + "example": "\"https://docs.github.com/rest/reference/repos#create-a-deployment\"" + } + } + }, + "examples": { + "merge-conflict-response": { + "summary": "Merge conflict response", + "value": { + "message": "Conflict merging master into topic-branch" + } + }, + "failed-commit-status-checks": { + "summary": "Failed commit status checks", + "value": { + "message": "Conflict: Commit status checks failed for topic-branch." + } + } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "ant-man", + "note": "The `inactive` state and the `log_url`, `environment_url`, and `auto_inactive` parameters are currently available for developers to preview. Please see the [blog post](https://developer.github.com/changes/2016-04-06-deployment-and-deployment-status-enhancements) for full details.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.ant-man-preview+json\n```" + } + ], + "category": "repos", + "subcategory": "deployments" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/deployments/{deployment_id}": { + "get": { + "summary": "Get a deployment", + "description": "", + "tags": ["repos"], + "operationId": "repos/get-deployment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-a-deployment" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/deployment_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/deployment" }, + "examples": { + "default": { "$ref": "#/components/examples/deployment" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "ant-man", + "note": "The `inactive` state and the `log_url`, `environment_url`, and `auto_inactive` parameters are currently available for developers to preview. Please see the [blog post](https://developer.github.com/changes/2016-04-06-deployment-and-deployment-status-enhancements) for full details.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.ant-man-preview+json\n```" + } + ], + "category": "repos", + "subcategory": "deployments" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a deployment", + "description": "To ensure there can always be an active deployment, you can only delete an _inactive_ deployment. Anyone with `repo` or `repo_deployment` scopes can delete an inactive deployment.\n\nTo set a deployment as inactive, you must:\n\n* Create a new deployment that is active so that the system has a record of the current state, then delete the previously active deployment.\n* Mark the active deployment as inactive by adding any non-successful deployment status.\n\nFor more information, see \"[Create a deployment](https://docs.github.com/rest/reference/repos/deployments/#create-a-deployment)\" and \"[Create a deployment status](https://docs.github.com/rest/reference/repos#create-a-deployment-status).\"", + "tags": ["repos"], + "operationId": "repos/delete-deployment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#delete-a-deployment" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/deployment_id" } + ], + "responses": { + "204": { "description": "Empty response" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed_simple" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "deployments" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses": { + "get": { + "summary": "List deployment statuses", + "description": "Users with pull access can view deployment statuses for a deployment:", + "tags": ["repos"], + "operationId": "repos/list-deployment-statuses", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#list-deployment-statuses" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/deployment_id" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/deployment-status" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/deployment-status-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "flash", + "note": "New features in the Deployments API on GitHub are currently available during a public beta. Please see the [blog post](https://developer.github.com/changes/2018-10-16-deployments-environments-states-and-auto-inactive-updates/) for full details.\n\nTo access the new `environment` parameter, the two new values for the `state` parameter (`in_progress` and `queued`), and use `auto_inactive` on production deployments during the public beta period, you must provide the following custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.flash-preview+json\n```" + }, + { + "required": false, + "name": "ant-man", + "note": "The `inactive` state and the `log_url`, `environment_url`, and `auto_inactive` parameters are currently available for developers to preview. Please see the [blog post](https://developer.github.com/changes/2016-04-06-deployment-and-deployment-status-enhancements) for full details.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.ant-man-preview+json\n```" + } + ], + "category": "repos", + "subcategory": "deployments" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a deployment status", + "description": "Users with `push` access can create deployment statuses for a given deployment.\n\nGitHub Apps require `read & write` access to \"Deployments\" and `read-only` access to \"Repo contents\" (for private repos). OAuth Apps require the `repo_deployment` scope.", + "tags": ["repos"], + "operationId": "repos/create-deployment-status", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#create-a-deployment-status" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/deployment_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "state": { + "type": "string", + "description": "The state of the status. Can be one of `error`, `failure`, `inactive`, `in_progress`, `queued` `pending`, or `success`. **Note:** To use the `inactive` state, you must provide the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type. To use the `in_progress` and `queued` states, you must provide the [`application/vnd.github.flash-preview+json`](https://docs.github.com/rest/overview/api-previews#deployment-statuses) custom media type. When you set a transient deployment to `inactive`, the deployment will be shown as `destroyed` in GitHub.", + "enum": [ + "error", + "failure", + "inactive", + "in_progress", + "queued", + "pending", + "success" + ] + }, + "target_url": { + "type": "string", + "description": "The target URL to associate with this status. This URL should contain output to keep the user updated while the task is running or serve as historical information for what happened in the deployment. **Note:** It's recommended to use the `log_url` parameter, which replaces `target_url`.", + "default": "" + }, + "log_url": { + "type": "string", + "description": "The full URL of the deployment's output. This parameter replaces `target_url`. We will continue to accept `target_url` to support legacy uses, but we recommend replacing `target_url` with `log_url`. Setting `log_url` will automatically set `target_url` to the same value. Default: `\"\"` \n**Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type. **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type.", + "default": "" + }, + "description": { + "type": "string", + "description": "A short description of the status. The maximum description length is 140 characters.", + "default": "" + }, + "environment": { + "type": "string", + "description": "Name for the target deployment environment, which can be changed when setting a deploy status. For example, `production`, `staging`, or `qa`. **Note:** This parameter requires you to use the [`application/vnd.github.flash-preview+json`](https://docs.github.com/rest/overview/api-previews#deployment-statuses) custom media type.", + "enum": ["production", "staging", "qa"] + }, + "environment_url": { + "type": "string", + "description": "Sets the URL for accessing your environment. Default: `\"\"` \n**Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type. **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type.", + "default": "" + }, + "auto_inactive": { + "type": "boolean", + "description": "Adds a new `inactive` status to all prior non-transient, non-production environment deployments with the same repository and `environment` name as the created status's deployment. An `inactive` status is only added to deployments that had a `success` state. Default: `true` \n**Note:** To add an `inactive` status to `production` environments, you must use the [`application/vnd.github.flash-preview+json`](https://docs.github.com/rest/overview/api-previews#deployment-statuses) custom media type. \n**Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type." + } + }, + "required": ["state"] + }, + "example": { + "environment": "production", + "state": "success", + "log_url": "https://example.com/deployment/42/output", + "description": "Deployment finished successfully." + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/deployment-status" }, + "examples": { + "default": { + "$ref": "#/components/examples/deployment-status" + } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/example/deployments/42/statuses/1", + "schema": { "type": "string" } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "flash", + "note": "New features in the Deployments API on GitHub are currently available during a public beta. Please see the [blog post](https://developer.github.com/changes/2018-10-16-deployments-environments-states-and-auto-inactive-updates/) for full details.\n\nTo access the new `environment` parameter, the two new values for the `state` parameter (`in_progress` and `queued`), and use `auto_inactive` on production deployments during the public beta period, you must provide the following custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.flash-preview+json\n```" + }, + { + "required": false, + "name": "ant-man", + "note": "The `inactive` state and the `log_url`, `environment_url`, and `auto_inactive` parameters are currently available for developers to preview. Please see the [blog post](https://developer.github.com/changes/2016-04-06-deployment-and-deployment-status-enhancements) for full details.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.ant-man-preview+json\n```" + } + ], + "category": "repos", + "subcategory": "deployments" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}": { + "get": { + "summary": "Get a deployment status", + "description": "Users with pull access can view a deployment status for a deployment:", + "tags": ["repos"], + "operationId": "repos/get-deployment-status", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-a-deployment-status" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/deployment_id" }, + { + "name": "status_id", + "in": "path", + "required": true, + "schema": { "type": "integer" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/deployment-status" }, + "examples": { + "default": { + "$ref": "#/components/examples/deployment-status" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "flash", + "note": "New features in the Deployments API on GitHub are currently available during a public beta. Please see the [blog post](https://developer.github.com/changes/2018-10-16-deployments-environments-states-and-auto-inactive-updates/) for full details.\n\nTo access the new `environment` parameter, the two new values for the `state` parameter (`in_progress` and `queued`), and use `auto_inactive` on production deployments during the public beta period, you must provide the following custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.flash-preview+json\n```" + }, + { + "required": false, + "name": "ant-man", + "note": "The `inactive` state and the `log_url`, `environment_url`, and `auto_inactive` parameters are currently available for developers to preview. Please see the [blog post](https://developer.github.com/changes/2016-04-06-deployment-and-deployment-status-enhancements) for full details.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.ant-man-preview+json\n```" + } + ], + "category": "repos", + "subcategory": "deployments" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/dispatches": { + "post": { + "summary": "Create a repository dispatch event", + "description": "You can use this endpoint to trigger a webhook event called `repository_dispatch` when you want activity that happens outside of GitHub to trigger a GitHub Actions workflow or GitHub App webhook. You must configure your GitHub Actions workflow or GitHub App to run when the `repository_dispatch` event occurs. For an example `repository_dispatch` webhook payload, see \"[RepositoryDispatchEvent](https://docs.github.com/webhooks/event-payloads/#repository_dispatch).\"\n\nThe `client_payload` parameter is available for any extra information that your workflow might need. This parameter is a JSON payload that will be passed on when the webhook event is dispatched. For example, the `client_payload` can include a message that a user would like to send using a GitHub Actions workflow. Or the `client_payload` can be used as a test to debug your workflow.\n\nTo give you write access to the repository, you must use a personal access token with the `repo` scope. For more information, see \"[Creating a personal access token for the command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line)\" in the GitHub Help documentation.\n\nThis input example shows how you can use the `client_payload` as a test to debug your workflow.", + "tags": ["repos"], + "operationId": "repos/create-dispatch-event", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#create-a-repository-dispatch-event" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": ["event_type"], + "properties": { + "event_type": { + "type": "string", + "description": "A custom webhook event name." + }, + "client_payload": { + "type": "object", + "description": "JSON payload with extra information about the webhook event that your action or worklow may use.", + "additionalProperties": true + } + } + }, + "example": { + "event_type": "on-demand-test", + "client_payload": { "unit": false, "integration": true } + } + } + } + }, + "responses": { + "204": { "description": "Empty response" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/events": { + "get": { + "summary": "List repository events", + "description": "", + "tags": ["activity"], + "operationId": "activity/list-repo-events", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#list-repository-events" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/event" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "activity", + "subcategory": "events" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/forks": { + "get": { + "summary": "List forks", + "description": "", + "tags": ["repos"], + "operationId": "repos/list-forks", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#list-forks" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "sort", + "description": "The sort order. Can be either `newest`, `oldest`, or `stargazers`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["newest", "oldest", "stargazers"], + "default": "newest" + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/minimal-repository" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/minimal-repository-items-2" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "400": { "$ref": "#/components/responses/bad_request" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "forks" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a fork", + "description": "Create a fork for the authenticated user.\n\n**Note**: Forking a Repository happens asynchronously. You may have to wait a short period of time before you can access the git objects. If this takes longer than 5 minutes, be sure to contact [GitHub Support](https://github.com/contact) or [GitHub Premium Support](https://premium.githubsupport.com).", + "tags": ["repos"], + "operationId": "repos/create-fork", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#create-a-fork" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "organization": { + "type": "string", + "description": "Optional parameter to specify the organization name if forking into an organization." + } + } + } + } + } + }, + "responses": { + "202": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/repository" }, + "examples": { + "default": { "$ref": "#/components/examples/repository" } + } + } + } + }, + "400": { "$ref": "#/components/responses/bad_request" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "forks" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/git/blobs": { + "post": { + "summary": "Create a blob", + "description": "", + "tags": ["git"], + "operationId": "git/create-blob", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/git#create-a-blob" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "The new blob's content." + }, + "encoding": { + "type": "string", + "description": "The encoding used for `content`. Currently, `\"utf-8\"` and `\"base64\"` are supported.", + "default": "utf-8" + } + }, + "required": ["content"] + }, + "example": { + "content": "Content of the blob", + "encoding": "utf-8" + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/short-blob" }, + "examples": { + "default": { "$ref": "#/components/examples/short-blob" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/example/git/blobs/3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15", + "schema": { "type": "string" } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "409": { "$ref": "#/components/responses/conflict" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "git", + "subcategory": "blobs" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/git/blobs/{file_sha}": { + "get": { + "summary": "Get a blob", + "description": "The `content` in the response will always be Base64 encoded.\n\n_Note_: This API supports blobs up to 100 megabytes in size.", + "tags": ["git"], + "operationId": "git/get-blob", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/git#get-a-blob" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "file_sha", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/blob" }, + "examples": { + "default": { "$ref": "#/components/examples/blob" } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "git", + "subcategory": "blobs" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/git/commits": { + "post": { + "summary": "Create a commit", + "description": "Creates a new Git [commit object](https://git-scm.com/book/en/v1/Git-Internals-Git-Objects#Commit-Objects).\n\n**Signature verification object**\n\nThe response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object:\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. |\n| `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. |\n| `signature` | `string` | The signature that was extracted from the commit. |\n| `payload` | `string` | The value that was signed. |\n\nThese are the possible values for `reason` in the `verification` object:\n\n| Value | Description |\n| ----- | ----------- |\n| `expired_key` | The key that made the signature is expired. |\n| `not_signing_key` | The \"signing\" flag is not among the usage flags in the GPG key that made the signature. |\n| `gpgverify_error` | There was an error communicating with the signature verification service. |\n| `gpgverify_unavailable` | The signature verification service is currently unavailable. |\n| `unsigned` | The object does not include a signature. |\n| `unknown_signature_type` | A non-PGP signature was found in the commit. |\n| `no_user` | No user was associated with the `committer` email address in the commit. |\n| `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. |\n| `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. |\n| `unknown_key` | The key that made the signature has not been registered with any user's account. |\n| `malformed_signature` | There was an error parsing the signature. |\n| `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |\n| `valid` | None of the above errors applied, so the signature is considered to be verified. |", + "tags": ["git"], + "operationId": "git/create-commit", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/git#create-a-commit" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The commit message" + }, + "tree": { + "type": "string", + "description": "The SHA of the tree object this commit points to" + }, + "parents": { + "type": "array", + "description": "The SHAs of the commits that were the parents of this commit. If omitted or empty, the commit will be written as a root commit. For a single parent, an array of one SHA should be provided; for a merge commit, an array of more than one should be provided.", + "items": { "type": "string" } + }, + "author": { + "type": "object", + "description": "Information about the author of the commit. By default, the `author` will be the authenticated user and the current date. See the `author` and `committer` object below for details.", + "properties": { + "name": { + "type": "string", + "description": "The name of the author (or committer) of the commit" + }, + "email": { + "type": "string", + "description": "The email of the author (or committer) of the commit" + }, + "date": { + "type": "string", + "description": "Indicates when this commit was authored (or committed). This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." + } + } + }, + "committer": { + "type": "object", + "description": "Information about the person who is making the commit. By default, `committer` will use the information set in `author`. See the `author` and `committer` object below for details.", + "properties": { + "name": { + "type": "string", + "description": "The name of the author (or committer) of the commit" + }, + "email": { + "type": "string", + "description": "The email of the author (or committer) of the commit" + }, + "date": { + "type": "string", + "description": "Indicates when this commit was authored (or committed). This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." + } + } + }, + "signature": { + "type": "string", + "description": "The [PGP signature](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) of the commit. GitHub adds the signature to the `gpgsig` header of the created commit. For a commit signature to be verifiable by Git or GitHub, it must be an ASCII-armored detached PGP signature over the string commit as it would be written to the object database. To pass a `signature` parameter, you need to first manually create a valid PGP signature, which can be complicated. You may find it easier to [use the command line](https://git-scm.com/book/id/v2/Git-Tools-Signing-Your-Work) to create signed commits." + } + }, + "required": ["message", "tree"] + }, + "example": { + "message": "my commit message", + "author": { + "name": "Mona Octocat", + "email": "octocat@github.com", + "date": "2008-07-09T16:13:30+12:00" + }, + "parents": ["7d1b31e74ee336d15cbd21741bc88a537ed063a0"], + "tree": "827efc6d56897b048c772eb4087f854f46256132", + "signature": "-----BEGIN PGP SIGNATURE-----\n\niQIzBAABAQAdFiEESn/54jMNIrGSE6Tp6cQjvhfv7nAFAlnT71cACgkQ6cQjvhfv\n7nCWwA//XVqBKWO0zF+bZl6pggvky3Oc2j1pNFuRWZ29LXpNuD5WUGXGG209B0hI\nDkmcGk19ZKUTnEUJV2Xd0R7AW01S/YSub7OYcgBkI7qUE13FVHN5ln1KvH2all2n\n2+JCV1HcJLEoTjqIFZSSu/sMdhkLQ9/NsmMAzpf/iIM0nQOyU4YRex9eD1bYj6nA\nOQPIDdAuaTQj1gFPHYLzM4zJnCqGdRlg0sOM/zC5apBNzIwlgREatOYQSCfCKV7k\nnrU34X8b9BzQaUx48Qa+Dmfn5KQ8dl27RNeWAqlkuWyv3pUauH9UeYW+KyuJeMkU\n+NyHgAsWFaCFl23kCHThbLStMZOYEnGagrd0hnm1TPS4GJkV4wfYMwnI4KuSlHKB\njHl3Js9vNzEUQipQJbgCgTiWvRJoK3ENwBTMVkKHaqT4x9U4Jk/XZB6Q8MA09ezJ\n3QgiTjTAGcum9E9QiJqMYdWQPWkaBIRRz5cET6HPB48YNXAAUsfmuYsGrnVLYbG+\nUpC6I97VybYHTy2O9XSGoaLeMI9CsFn38ycAxxbWagk5mhclNTP5mezIq6wKSwmr\nX11FW3n1J23fWZn5HJMBsRnUCgzqzX3871IqLYHqRJ/bpZ4h20RhTyPj5c/z7QXp\neSakNQMfbbMcljkha+ZMuVQX1K9aRlVqbmv3ZMWh+OijLYVU2bc=\n=5Io4\n-----END PGP SIGNATURE-----\n" + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/git-commit" }, + "examples": { + "default": { "$ref": "#/components/examples/git-commit" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd", + "schema": { "type": "string" } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "git", + "subcategory": "commits" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/git/commits/{commit_sha}": { + "get": { + "summary": "Get a commit", + "description": "Gets a Git [commit object](https://git-scm.com/book/en/v1/Git-Internals-Git-Objects#Commit-Objects).\n\n**Signature verification object**\n\nThe response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object:\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. |\n| `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. |\n| `signature` | `string` | The signature that was extracted from the commit. |\n| `payload` | `string` | The value that was signed. |\n\nThese are the possible values for `reason` in the `verification` object:\n\n| Value | Description |\n| ----- | ----------- |\n| `expired_key` | The key that made the signature is expired. |\n| `not_signing_key` | The \"signing\" flag is not among the usage flags in the GPG key that made the signature. |\n| `gpgverify_error` | There was an error communicating with the signature verification service. |\n| `gpgverify_unavailable` | The signature verification service is currently unavailable. |\n| `unsigned` | The object does not include a signature. |\n| `unknown_signature_type` | A non-PGP signature was found in the commit. |\n| `no_user` | No user was associated with the `committer` email address in the commit. |\n| `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. |\n| `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. |\n| `unknown_key` | The key that made the signature has not been registered with any user's account. |\n| `malformed_signature` | There was an error parsing the signature. |\n| `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |\n| `valid` | None of the above errors applied, so the signature is considered to be verified. |", + "tags": ["git"], + "operationId": "git/get-commit", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/git#get-a-commit" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/commit_sha" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/git-commit" }, + "examples": { + "default": { "$ref": "#/components/examples/git-commit-2" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "git", + "subcategory": "commits" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/git/matching-refs/{ref}": { + "get": { + "summary": "List matching references", + "description": "Returns an array of references from your Git database that match the supplied name. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't exist in the repository, but existing refs start with `:ref`, they will be returned as an array.\n\nWhen you use this endpoint without providing a `:ref`, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just `heads` and `tags`.\n\n**Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see \"[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)\".\n\nIf you request matching references for a branch named `feature` but the branch `feature` doesn't exist, the response can still include other matching head refs that start with the word `feature`, such as `featureA` and `featureB`.", + "tags": ["git"], + "operationId": "git/list-matching-refs", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/git#list-matching-references" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "ref", + "description": "ref+ parameter", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/git-ref" } + }, + "examples": { + "default": { "$ref": "#/components/examples/git-ref-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "git", + "subcategory": "refs" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/git/ref/{ref}": { + "get": { + "summary": "Get a reference", + "description": "Returns a single reference from your Git database. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't match an existing ref, a `404` is returned.\n\n**Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see \"[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)\".", + "tags": ["git"], + "operationId": "git/get-ref", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/git#get-a-reference" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "ref", + "description": "ref+ parameter", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/git-ref" }, + "examples": { + "default": { "$ref": "#/components/examples/git-ref" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "git", + "subcategory": "refs" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/git/refs": { + "post": { + "summary": "Create a reference", + "description": "Creates a reference for your repository. You are unable to create new references for empty repositories, even if the commit SHA-1 hash used exists. Empty repositories are repositories without branches.", + "tags": ["git"], + "operationId": "git/create-ref", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/git#create-a-reference" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ref": { + "type": "string", + "description": "The name of the fully qualified reference (ie: `refs/heads/master`). If it doesn't start with 'refs' and have at least two slashes, it will be rejected." + }, + "sha": { + "type": "string", + "description": "The SHA1 value for this reference." + }, + "key": { + "type": "string", + "example": "\"refs/heads/newbranch\"" + } + }, + "required": ["ref", "sha"] + }, + "example": { + "ref": "refs/heads/featureA", + "sha": "aa218f56b14c9653891f9e74264a383fa43fefbd" + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/git-ref" }, + "examples": { + "default": { "$ref": "#/components/examples/git-ref" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/git/refs/heads/featureA", + "schema": { "type": "string" } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "git", + "subcategory": "refs" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/git/refs/{ref}": { + "patch": { + "summary": "Update a reference", + "description": "", + "tags": ["git"], + "operationId": "git/update-ref", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/git#update-a-reference" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "ref", + "description": "ref+ parameter", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "sha": { + "type": "string", + "description": "The SHA1 value to set this reference to" + }, + "force": { + "type": "boolean", + "description": "Indicates whether to force the update or to make sure the update is a fast-forward update. Leaving this out or setting it to `false` will make sure you're not overwriting work.", + "default": false + } + }, + "required": ["sha"] + }, + "example": { + "sha": "aa218f56b14c9653891f9e74264a383fa43fefbd", + "force": true + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/git-ref" }, + "examples": { + "default": { "$ref": "#/components/examples/git-ref" } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "git", + "subcategory": "refs" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a reference", + "description": "", + "tags": ["git"], + "operationId": "git/delete-ref", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/git#delete-a-reference" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "ref", + "description": "ref+ parameter", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "204": { "description": "Empty response" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "git", + "subcategory": "refs" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/git/tags": { + "post": { + "summary": "Create a tag object", + "description": "Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then [create](https://docs.github.com/rest/reference/git#create-a-reference) the `refs/tags/[tag]` reference. If you want to create a lightweight tag, you only have to [create](https://docs.github.com/rest/reference/git#create-a-reference) the tag reference - this call would be unnecessary.\n\n**Signature verification object**\n\nThe response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object:\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. |\n| `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. |\n| `signature` | `string` | The signature that was extracted from the commit. |\n| `payload` | `string` | The value that was signed. |\n\nThese are the possible values for `reason` in the `verification` object:\n\n| Value | Description |\n| ----- | ----------- |\n| `expired_key` | The key that made the signature is expired. |\n| `not_signing_key` | The \"signing\" flag is not among the usage flags in the GPG key that made the signature. |\n| `gpgverify_error` | There was an error communicating with the signature verification service. |\n| `gpgverify_unavailable` | The signature verification service is currently unavailable. |\n| `unsigned` | The object does not include a signature. |\n| `unknown_signature_type` | A non-PGP signature was found in the commit. |\n| `no_user` | No user was associated with the `committer` email address in the commit. |\n| `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. |\n| `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. |\n| `unknown_key` | The key that made the signature has not been registered with any user's account. |\n| `malformed_signature` | There was an error parsing the signature. |\n| `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |\n| `valid` | None of the above errors applied, so the signature is considered to be verified. |", + "tags": ["git"], + "operationId": "git/create-tag", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/git#create-a-tag-object" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tag": { + "type": "string", + "description": "The tag's name. This is typically a version (e.g., \"v0.0.1\")." + }, + "message": { + "type": "string", + "description": "The tag message." + }, + "object": { + "type": "string", + "description": "The SHA of the git object this is tagging." + }, + "type": { + "type": "string", + "description": "The type of the object we're tagging. Normally this is a `commit` but it can also be a `tree` or a `blob`.", + "enum": ["commit", "tree", "blob"] + }, + "tagger": { + "type": "object", + "description": "An object with information about the individual creating the tag.", + "properties": { + "name": { + "type": "string", + "description": "The name of the author of the tag" + }, + "email": { + "type": "string", + "description": "The email of the author of the tag" + }, + "date": { + "type": "string", + "description": "When this object was tagged. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." + } + } + } + }, + "required": ["tag", "message", "object", "type"] + }, + "example": { + "tag": "v0.0.1", + "message": "initial version", + "object": "c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c", + "type": "commit", + "tagger": { + "name": "Monalisa Octocat", + "email": "octocat@github.com", + "date": "2011-06-17T14:53:35-07:00" + } + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/git-tag" }, + "examples": { + "default": { "$ref": "#/components/examples/git-tag" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac", + "schema": { "type": "string" } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "git", + "subcategory": "tags" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/git/tags/{tag_sha}": { + "get": { + "summary": "Get a tag", + "description": "**Signature verification object**\n\nThe response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object:\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. |\n| `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. |\n| `signature` | `string` | The signature that was extracted from the commit. |\n| `payload` | `string` | The value that was signed. |\n\nThese are the possible values for `reason` in the `verification` object:\n\n| Value | Description |\n| ----- | ----------- |\n| `expired_key` | The key that made the signature is expired. |\n| `not_signing_key` | The \"signing\" flag is not among the usage flags in the GPG key that made the signature. |\n| `gpgverify_error` | There was an error communicating with the signature verification service. |\n| `gpgverify_unavailable` | The signature verification service is currently unavailable. |\n| `unsigned` | The object does not include a signature. |\n| `unknown_signature_type` | A non-PGP signature was found in the commit. |\n| `no_user` | No user was associated with the `committer` email address in the commit. |\n| `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. |\n| `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. |\n| `unknown_key` | The key that made the signature has not been registered with any user's account. |\n| `malformed_signature` | There was an error parsing the signature. |\n| `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |\n| `valid` | None of the above errors applied, so the signature is considered to be verified. |", + "tags": ["git"], + "operationId": "git/get-tag", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/git#get-a-tag" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "tag_sha", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/git-tag" }, + "examples": { + "default": { "$ref": "#/components/examples/git-tag" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "git", + "subcategory": "tags" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/git/trees": { + "post": { + "summary": "Create a tree", + "description": "The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure.\n\nIf you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see \"[Create a commit](https://docs.github.com/rest/reference/git#create-a-commit)\" and \"[Update a reference](https://docs.github.com/rest/reference/git#update-a-reference).\"", + "tags": ["git"], + "operationId": "git/create-tree", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/git#create-a-tree" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tree": { + "type": "array", + "description": "Objects (of `path`, `mode`, `type`, and `sha`) specifying a tree structure.", + "items": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "The file referenced in the tree." + }, + "mode": { + "type": "string", + "description": "The file mode; one of `100644` for file (blob), `100755` for executable (blob), `040000` for subdirectory (tree), `160000` for submodule (commit), or `120000` for a blob that specifies the path of a symlink.", + "enum": [ + "100644", + "100755", + "040000", + "160000", + "120000" + ] + }, + "type": { + "type": "string", + "description": "Either `blob`, `tree`, or `commit`.", + "enum": ["blob", "tree", "commit"] + }, + "sha": { + "type": "string", + "description": "The SHA1 checksum ID of the object in the tree. Also called `tree.sha`. If the value is `null` then the file will be deleted. \n \n**Note:** Use either `tree.sha` or `content` to specify the contents of the entry. Using both `tree.sha` and `content` will return an error.", + "nullable": true + }, + "content": { + "type": "string", + "description": "The content you want this file to have. GitHub will write this blob out and use that SHA for this entry. Use either this, or `tree.sha`. \n \n**Note:** Use either `tree.sha` or `content` to specify the contents of the entry. Using both `tree.sha` and `content` will return an error." + } + } + } + }, + "base_tree": { + "type": "string", + "description": "The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on.\nIf not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit.\n" + } + }, + "required": ["tree"] + }, + "example": { + "base_tree": "9fb037999f264ba9a7fc6274d15fa3ae2ab98312", + "tree": [ + { + "path": "file.rb", + "mode": "100644", + "type": "blob", + "sha": "44b4fc6d56897b048c772eb4087f854f46256132" + } + ] + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/git-tree" }, + "examples": { + "default": { "$ref": "#/components/examples/git-tree" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/trees/cd8274d15fa3ae2ab983129fb037999f264ba9a7", + "schema": { "type": "string" } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "git", + "subcategory": "trees" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/git/trees/{tree_sha}": { + "get": { + "summary": "Get a tree", + "description": "Returns a single tree using the SHA1 value for that tree.\n\nIf `truncated` is `true` in the response then the number of items in the `tree` array exceeded our maximum limit. If you need to fetch more items, use the non-recursive method of fetching trees, and fetch one sub-tree at a time.", + "tags": ["git"], + "operationId": "git/get-tree", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/git#get-a-tree" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "tree_sha", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + { + "name": "recursive", + "description": "Setting this parameter to any value returns the objects or subtrees referenced by the tree specified in `:tree_sha`. For example, setting `recursive` to any of the following will enable returning objects or subtrees: `0`, `1`, `\"true\"`, and `\"false\"`. Omit this parameter to prevent recursively returning objects or subtrees.", + "in": "query", + "required": false, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/git-tree" }, + "examples": { + "default-response": { + "$ref": "#/components/examples/git-tree-default-response" + }, + "response-recursively-retrieving-a-tree": { + "$ref": "#/components/examples/git-tree-response-recursively-retrieving-a-tree" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "git", + "subcategory": "trees" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/hooks": { + "get": { + "summary": "List repository webhooks", + "description": "", + "tags": ["repos"], + "operationId": "repos/list-webhooks", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#list-repository-webhooks" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/hook" } + }, + "examples": { + "default": { "$ref": "#/components/examples/hook-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "webhooks" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a repository webhook", + "description": "Repositories can have multiple webhooks installed. Each webhook should have a unique `config`. Multiple webhooks can\nshare the same `config` as long as those webhooks do not have any `events` that overlap.", + "tags": ["repos"], + "operationId": "repos/create-webhook", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#create-a-repository-webhook" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Use `web` to create a webhook. Default: `web`. This parameter only accepts the value `web`." + }, + "config": { + "type": "object", + "description": "Key/value pairs to provide settings for this webhook. [These are defined below](https://docs.github.com/rest/reference/repos#create-hook-config-params).", + "properties": { + "url": { + "$ref": "#/components/schemas/webhook-config-url" + }, + "content_type": { + "$ref": "#/components/schemas/webhook-config-content-type" + }, + "secret": { + "$ref": "#/components/schemas/webhook-config-secret" + }, + "insecure_ssl": { + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + }, + "token": { "type": "string", "example": "\"abc\"" }, + "digest": { "type": "string", "example": "\"sha256\"" } + }, + "required": ["url"] + }, + "events": { + "type": "array", + "description": "Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for.", + "default": ["push"], + "items": { "type": "string" } + }, + "active": { + "type": "boolean", + "description": "Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications.", + "default": true + } + }, + "required": ["config"] + }, + "example": { + "name": "web", + "active": true, + "events": ["push", "pull_request"], + "config": { + "url": "https://example.com/webhook", + "content_type": "json", + "insecure_ssl": "0" + } + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/hook" }, + "examples": { + "default": { "$ref": "#/components/examples/hook" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/hooks/12345678", + "schema": { "type": "string" } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "webhooks" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/hooks/{hook_id}": { + "get": { + "summary": "Get a repository webhook", + "description": "Returns a webhook configured in a repository. To get only the webhook `config` properties, see \"[Get a webhook configuration for a repository](/rest/reference/repos#get-a-webhook-configuration-for-a-repository).\"", + "tags": ["repos"], + "operationId": "repos/get-webhook", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-a-repository-webhook" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/hook-id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/hook" }, + "examples": { + "default": { "$ref": "#/components/examples/hook" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "webhooks" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a repository webhook", + "description": "Updates a webhook configured in a repository. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use \"[Update a webhook configuration for a repository](/rest/reference/repos#update-a-webhook-configuration-for-a-repository).\"", + "tags": ["repos"], + "operationId": "repos/update-webhook", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#update-a-repository-webhook" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/hook-id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "config": { + "type": "object", + "description": "Key/value pairs to provide settings for this webhook. [These are defined below](https://docs.github.com/rest/reference/repos#create-hook-config-params).", + "properties": { + "url": { + "$ref": "#/components/schemas/webhook-config-url" + }, + "content_type": { + "$ref": "#/components/schemas/webhook-config-content-type" + }, + "secret": { + "$ref": "#/components/schemas/webhook-config-secret" + }, + "insecure_ssl": { + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + }, + "address": { + "type": "string", + "example": "\"bar@example.com\"" + }, + "room": { + "type": "string", + "example": "\"The Serious Room\"" + } + }, + "required": ["url"] + }, + "events": { + "type": "array", + "description": "Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. This replaces the entire array of events.", + "default": ["push"], + "items": { "type": "string" } + }, + "add_events": { + "type": "array", + "description": "Determines a list of events to be added to the list of events that the Hook triggers for.", + "items": { "type": "string" } + }, + "remove_events": { + "type": "array", + "description": "Determines a list of events to be removed from the list of events that the Hook triggers for.", + "items": { "type": "string" } + }, + "active": { + "type": "boolean", + "description": "Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications.", + "default": true + } + } + }, + "example": { "active": true, "add_events": ["pull_request"] } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/hook" }, + "examples": { + "default": { "$ref": "#/components/examples/hook" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "webhooks" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a repository webhook", + "description": "", + "tags": ["repos"], + "operationId": "repos/delete-webhook", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#delete-a-repository-webhook" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/hook-id" } + ], + "responses": { + "204": { "description": "Empty response" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "webhooks" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/hooks/{hook_id}/config": { + "get": { + "summary": "Get a webhook configuration for a repository", + "description": "Returns the webhook configuration for a repository. To get more information about the webhook, including the `active` state and `events`, use \"[Get a repository webhook](/rest/reference/orgs#get-a-repository-webhook).\"\n\nAccess tokens must have the `read:repo_hook` or `repo` scope, and GitHub Apps must have the `repository_hooks:read` permission.", + "tags": ["repos"], + "operationId": "repos/get-webhook-config-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos#get-a-webhook-configuration-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/hook-id" } + ], + "responses": { + "200": { + "description": "Default response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/webhook-config" }, + "examples": { + "default": { "$ref": "#/components/examples/webhook-config" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "webhooks" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a webhook configuration for a repository", + "description": "Updates the webhook configuration for a repository. To update more information about the webhook, including the `active` state and `events`, use \"[Update a repository webhook](/rest/reference/orgs#update-a-repository-webhook).\"\n\nAccess tokens must have the `write:repo_hook` or `repo` scope, and GitHub Apps must have the `repository_hooks:write` permission.", + "tags": ["repos"], + "operationId": "repos/update-webhook-config-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos#update-a-webhook-configuration-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/hook-id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "url": { "$ref": "#/components/schemas/webhook-config-url" }, + "content_type": { + "$ref": "#/components/schemas/webhook-config-content-type" + }, + "secret": { + "$ref": "#/components/schemas/webhook-config-secret" + }, + "insecure_ssl": { + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + } + }, + "example": { + "content_type": "json", + "insecure_ssl": "0", + "secret": "********", + "url": "https://example.com/webhook" + } + } + } + } + }, + "responses": { + "200": { + "description": "Default response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/webhook-config" }, + "examples": { + "default": { "$ref": "#/components/examples/webhook-config" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "webhooks" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/hooks/{hook_id}/pings": { + "post": { + "summary": "Ping a repository webhook", + "description": "This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook.", + "tags": ["repos"], + "operationId": "repos/ping-webhook", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#ping-a-repository-webhook" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/hook-id" } + ], + "responses": { + "204": { "description": "Empty response" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "webhooks" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/hooks/{hook_id}/tests": { + "post": { + "summary": "Test the push repository webhook", + "description": "This will trigger the hook with the latest push to the current repository if the hook is subscribed to `push` events. If the hook is not subscribed to `push` events, the server will respond with 204 but no test POST will be generated.\n\n**Note**: Previously `/repos/:owner/:repo/hooks/:hook_id/test`", + "tags": ["repos"], + "operationId": "repos/test-push-webhook", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#test-the-push-repository-webhook" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/hook-id" } + ], + "responses": { + "204": { "description": "Empty response" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "webhooks" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/import": { + "get": { + "summary": "Get an import status", + "description": "View the progress of an import.\n\n**Import status**\n\nThis section includes details about the possible values of the `status` field of the Import Progress response.\n\nAn import that does not have errors will progress through these steps:\n\n* `detecting` - the \"detection\" step of the import is in progress because the request did not include a `vcs` parameter. The import is identifying the type of source control present at the URL.\n* `importing` - the \"raw\" step of the import is in progress. This is where commit data is fetched from the original repository. The import progress response will include `commit_count` (the total number of raw commits that will be imported) and `percent` (0 - 100, the current progress through the import).\n* `mapping` - the \"rewrite\" step of the import is in progress. This is where SVN branches are converted to Git branches, and where author updates are applied. The import progress response does not include progress information.\n* `pushing` - the \"push\" step of the import is in progress. This is where the importer updates the repository on GitHub. The import progress response will include `push_percent`, which is the percent value reported by `git push` when it is \"Writing objects\".\n* `complete` - the import is complete, and the repository is ready on GitHub.\n\nIf there are problems, you will see one of these in the `status` field:\n\n* `auth_failed` - the import requires authentication in order to connect to the original repository. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section.\n* `error` - the import encountered an error. The import progress response will include the `failed_step` and an error message. Contact [GitHub Support](https://github.com/contact) or [GitHub Premium Support](https://premium.githubsupport.com) for more information.\n* `detection_needs_auth` - the importer requires authentication for the originating repository to continue detection. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section.\n* `detection_found_nothing` - the importer didn't recognize any source control at the URL. To resolve, [Cancel the import](https://docs.github.com/rest/reference/migrations#cancel-an-import) and [retry](https://docs.github.com/rest/reference/migrations#start-an-import) with the correct URL.\n* `detection_found_multiple` - the importer found several projects or repositories at the provided URL. When this is the case, the Import Progress response will also include a `project_choices` field with the possible project choices as values. To update project choice, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section.\n\n**The project_choices field**\n\nWhen multiple projects are found at the provided URL, the response hash will include a `project_choices` field, the value of which is an array of hashes each representing a project choice. The exact key/value pairs of the project hashes will differ depending on the version control type.\n\n**Git LFS related fields**\n\nThis section includes details about Git LFS related fields that may be present in the Import Progress response.\n\n* `use_lfs` - describes whether the import has been opted in or out of using Git LFS. The value can be `opt_in`, `opt_out`, or `undecided` if no action has been taken.\n* `has_large_files` - the boolean value describing whether files larger than 100MB were found during the `importing` step.\n* `large_files_size` - the total size in gigabytes of files larger than 100MB found in the originating repository.\n* `large_files_count` - the total number of files larger than 100MB found in the originating repository. To see a list of these files, make a \"Get Large Files\" request.", + "tags": ["migrations"], + "operationId": "migrations/get-import-status", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#get-an-import-status" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/import" }, + "examples": { + "default": { "$ref": "#/components/examples/import" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "migrations", + "subcategory": "source-imports" + }, + "x-octokit": {} + }, + "put": { + "summary": "Start an import", + "description": "Start a source import to a GitHub repository using GitHub Importer.", + "tags": ["migrations"], + "operationId": "migrations/start-import", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#start-an-import" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "vcs_url": { + "type": "string", + "description": "The URL of the originating repository." + }, + "vcs": { + "type": "string", + "description": "The originating VCS type. Can be one of `subversion`, `git`, `mercurial`, or `tfvc`. Please be aware that without this parameter, the import job will take additional time to detect the VCS type before beginning the import. This detection step will be reflected in the response.", + "enum": ["subversion", "git", "mercurial", "tfvc"] + }, + "vcs_username": { + "type": "string", + "description": "If authentication is required, the username to provide to `vcs_url`." + }, + "vcs_password": { + "type": "string", + "description": "If authentication is required, the password to provide to `vcs_url`." + }, + "tfvc_project": { + "type": "string", + "description": "For a tfvc import, the name of the project that is being imported." + } + }, + "required": ["vcs_url"] + }, + "example": { + "vcs": "subversion", + "vcs_url": "http://svn.mycompany.com/svn/myproject", + "vcs_username": "octocat", + "vcs_password": "secret" + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/import" }, + "examples": { + "default": { "$ref": "#/components/examples/import-2" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/spraints/socm/import", + "schema": { "type": "string" } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "migrations", + "subcategory": "source-imports" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update an import", + "description": "An import can be updated with credentials or a project choice by passing in the appropriate parameters in this API\nrequest. If no parameters are provided, the import will be restarted.", + "tags": ["migrations"], + "operationId": "migrations/update-import", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#update-an-import" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "vcs_username": { + "type": "string", + "description": "The username to provide to the originating repository." + }, + "vcs_password": { + "type": "string", + "description": "The password to provide to the originating repository." + }, + "vcs": { "type": "string", "example": "\"git\"" }, + "tfvc_project": { + "type": "string", + "example": "\"project1\"" + } + } + }, + "examples": { + "example-1": { + "summary": "Example 1", + "value": { + "vcs_username": "octocat", + "vcs_password": "secret" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/import" }, + "examples": { + "example-1": { + "$ref": "#/components/examples/import-example-1" + }, + "example-2": { + "$ref": "#/components/examples/import-example-2" + }, + "response": { + "$ref": "#/components/examples/import-response" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "migrations", + "subcategory": "source-imports" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Cancel an import", + "description": "Stop an import for a repository.", + "tags": ["migrations"], + "operationId": "migrations/cancel-import", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#cancel-an-import" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "migrations", + "subcategory": "source-imports" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/import/authors": { + "get": { + "summary": "Get commit authors", + "description": "Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username `hubot` into something like `hubot `.\n\nThis endpoint and the [Map a commit author](https://docs.github.com/rest/reference/migrations#map-a-commit-author) endpoint allow you to provide correct Git author information.", + "tags": ["migrations"], + "operationId": "migrations/get-commit-authors", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#get-commit-authors" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/since-user" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/porter-author" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/porter-author-items" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "migrations", + "subcategory": "source-imports" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/import/authors/{author_id}": { + "patch": { + "summary": "Map a commit author", + "description": "Update an author's identity for the import. Your application can continue updating authors any time before you push new commits to the repository.", + "tags": ["migrations"], + "operationId": "migrations/map-commit-author", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#map-a-commit-author" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "author_id", + "in": "path", + "required": true, + "schema": { "type": "integer" } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "The new Git author email." + }, + "name": { + "type": "string", + "description": "The new Git author name." + }, + "remote_id": { + "type": "string", + "example": "\"can't touch this\"" + } + } + }, + "example": { + "email": "hubot@github.com", + "name": "Hubot the Robot" + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/porter-author" }, + "examples": { + "default": { "$ref": "#/components/examples/porter-author" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "migrations", + "subcategory": "source-imports" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/import/large_files": { + "get": { + "summary": "Get large files", + "description": "List files larger than 100MB found during the import", + "tags": ["migrations"], + "operationId": "migrations/get-large-files", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#get-large-files" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/porter-large-file" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/porter-large-file-items" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "migrations", + "subcategory": "source-imports" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/import/lfs": { + "patch": { + "summary": "Update Git LFS preference", + "description": "You can import repositories from Subversion, Mercurial, and TFS that include files larger than 100MB. This ability is powered by [Git LFS](https://git-lfs.github.com). You can learn more about our LFS feature and working with large files [on our help site](https://help.github.com/articles/versioning-large-files/).", + "tags": ["migrations"], + "operationId": "migrations/set-lfs-preference", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#update-git-lfs-preference" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "use_lfs": { + "type": "string", + "description": "Can be one of `opt_in` (large files will be stored using Git LFS) or `opt_out` (large files will be removed during the import).", + "enum": ["opt_in", "opt_out"] + } + }, + "required": ["use_lfs"] + }, + "example": { "use_lfs": "opt_in" } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/import" }, + "examples": { + "default": { "$ref": "#/components/examples/import" } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "migrations", + "subcategory": "source-imports" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/installation": { + "get": { + "summary": "Get a repository installation for the authenticated app", + "description": "Enables an authenticated GitHub App to find the repository's installation information. The installation's account type will be either an organization or a user account, depending which account the repository belongs to.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/get-repo-installation", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/apps/#get-a-repository-installation-for-the-authenticated-app" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/installation" }, + "examples": { + "default": { "$ref": "#/components/examples/installation" } + } + } + } + }, + "301": { "$ref": "#/components/responses/moved_permanently" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/interaction-limits": { + "get": { + "summary": "Get interaction restrictions for a repository", + "description": "Shows which type of GitHub user can interact with this repository and when the restriction expires. If there are no restrictions, you will see an empty response.", + "tags": ["interactions"], + "operationId": "interactions/get-restrictions-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/interactions#get-interaction-restrictions-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/interaction-limit-response" + }, + "examples": { + "default": { + "$ref": "#/components/examples/interaction-limit-2" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "interactions", + "subcategory": "repos" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set interaction restrictions for a repository", + "description": "Temporarily restricts interactions to a certain type of GitHub user within the given repository. You must have owner or admin access to set these restrictions. If an interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository.", + "tags": ["interactions"], + "operationId": "interactions/set-restrictions-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/interactions#set-interaction-restrictions-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/interaction-limit" } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/interaction-limit-response" + }, + "examples": { + "default": { + "$ref": "#/components/examples/interaction-limit-2" + } + } + } + } + }, + "409": { "description": "Conflict" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "interactions", + "subcategory": "repos" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove interaction restrictions for a repository", + "description": "Removes all interaction restrictions from the given repository. You must have owner or admin access to remove restrictions. If the interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository.", + "tags": ["interactions"], + "operationId": "interactions/remove-restrictions-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/interactions#remove-interaction-restrictions-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "204": { "description": "Empty response" }, + "409": { "description": "Conflict" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "interactions", + "subcategory": "repos" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/invitations": { + "get": { + "summary": "List repository invitations", + "description": "When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations.", + "tags": ["repos"], + "operationId": "repos/list-invitations", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#list-repository-invitations" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/repository-invitation" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-invitation-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "invitations" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/invitations/{invitation_id}": { + "patch": { + "summary": "Update a repository invitation", + "description": "", + "tags": ["repos"], + "operationId": "repos/update-invitation", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#update-a-repository-invitation" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/invitation_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "permissions": { + "type": "string", + "description": "The permissions that the associated user will have on the repository. Valid values are `read`, `write`, `maintain`, `triage`, and `admin`.", + "enum": ["read", "write", "maintain", "triage", "admin"] + } + } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/repository-invitation" + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-invitation" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "invitations" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a repository invitation", + "description": "", + "tags": ["repos"], + "operationId": "repos/delete-invitation", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#delete-a-repository-invitation" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/invitation_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "invitations" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/issues": { + "get": { + "summary": "List repository issues", + "description": "List issues in a repository.\n\n**Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this\nreason, \"Issues\" endpoints may return both issues and pull requests in the response. You can identify pull requests by\nthe `pull_request` key. Be aware that the `id` of a pull request returned from \"Issues\" endpoints will be an _issue id_. To find out the pull\nrequest id, use the \"[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)\" endpoint.", + "tags": ["issues"], + "operationId": "issues/list-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/issues/#list-repository-issues" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "milestone", + "description": "If an `integer` is passed, it should refer to a milestone by its `number` field. If the string `*` is passed, issues with any milestone are accepted. If the string `none` is passed, issues without milestones are returned.", + "in": "query", + "required": false, + "schema": { "type": "string" } + }, + { + "name": "state", + "description": "Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["open", "closed", "all"], + "default": "open" + } + }, + { + "name": "assignee", + "description": "Can be the name of a user. Pass in `none` for issues with no assigned user, and `*` for issues assigned to any user.", + "in": "query", + "required": false, + "schema": { "type": "string" } + }, + { + "name": "creator", + "description": "The user that created the issue.", + "in": "query", + "required": false, + "schema": { "type": "string" } + }, + { + "name": "mentioned", + "description": "A user that's mentioned in the issue.", + "in": "query", + "required": false, + "schema": { "type": "string" } + }, + { "$ref": "#/components/parameters/labels" }, + { + "name": "sort", + "description": "What to sort results by. Can be either `created`, `updated`, `comments`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["created", "updated", "comments"], + "default": "created" + } + }, + { "$ref": "#/components/parameters/direction" }, + { "$ref": "#/components/parameters/since" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/issue-simple" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue-simple-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "301": { "$ref": "#/components/responses/moved_permanently" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "issues", + "subcategory": null + }, + "x-octokit": {} + }, + "post": { + "summary": "Create an issue", + "description": "Any user with pull access to a repository can create an issue. If [issues are disabled in the repository](https://help.github.com/articles/disabling-issues/), the API returns a `410 Gone` status.\n\nThis endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See \"[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)\" and \"[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-abuse-rate-limits)\" for details.", + "tags": ["issues"], + "operationId": "issues/create", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/issues/#create-an-issue" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the issue." + }, + "body": { + "type": "string", + "description": "The contents of the issue." + }, + "assignee": { + "type": "string", + "description": "Login for the user that this issue should be assigned to. _NOTE: Only users with push access can set the assignee for new issues. The assignee is silently dropped otherwise. **This field is deprecated.**_", + "nullable": true + }, + "milestone": { + "type": "integer", + "description": "The `number` of the milestone to associate this issue with. _NOTE: Only users with push access can set the milestone for new issues. The milestone is silently dropped otherwise._", + "nullable": true + }, + "labels": { + "type": "array", + "description": "Labels to associate with this issue. _NOTE: Only users with push access can set labels for new issues. Labels are silently dropped otherwise._", + "items": { + "oneOf": [ + { "type": "string" }, + { + "type": "object", + "properties": { + "id": { "type": "integer" }, + "name": { "type": "string" }, + "description": { "type": "string" }, + "color": { "type": "string" } + } + } + ] + } + }, + "assignees": { + "type": "array", + "description": "Logins for Users to assign to this issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._", + "items": { "type": "string" } + } + }, + "required": ["title"] + }, + "example": { + "title": "Found a bug", + "body": "I'm having a problem with this.", + "assignees": ["octocat"], + "milestone": 1, + "labels": ["bug"] + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/issue" }, + "examples": { + "default": { "$ref": "#/components/examples/issue" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347", + "schema": { "type": "string" } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "410": { "$ref": "#/components/responses/gone" }, + "422": { "$ref": "#/components/responses/validation_failed" }, + "503": { "$ref": "#/components/responses/service_unavailable" } + }, + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/issues/comments": { + "get": { + "summary": "List issue comments for a repository", + "description": "By default, Issue Comments are ordered by ascending ID.", + "tags": ["issues"], + "operationId": "issues/list-comments-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#list-issue-comments-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/sort" }, + { + "name": "direction", + "description": "Either `asc` or `desc`. Ignored without the `sort` parameter.", + "in": "query", + "required": false, + "schema": { "type": "string", "enum": ["asc", "desc"] } + }, + { "$ref": "#/components/parameters/since" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/issue-comment" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue-comment-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "issues", + "subcategory": "comments" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/issues/comments/{comment_id}": { + "get": { + "summary": "Get an issue comment", + "description": "", + "tags": ["issues"], + "operationId": "issues/get-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#get-an-issue-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/comment_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/issue-comment" }, + "examples": { + "default": { "$ref": "#/components/examples/issue-comment" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "issues", + "subcategory": "comments" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update an issue comment", + "description": "", + "tags": ["issues"], + "operationId": "issues/update-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#update-an-issue-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/comment_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The contents of the comment." + } + }, + "required": ["body"] + }, + "example": { "body": "Me too" } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/issue-comment" }, + "examples": { + "default": { "$ref": "#/components/examples/issue-comment" } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "comments" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete an issue comment", + "description": "", + "tags": ["issues"], + "operationId": "issues/delete-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#delete-an-issue-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/comment_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "comments" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": { + "get": { + "summary": "List reactions for an issue comment", + "description": "List the reactions to an [issue comment](https://docs.github.com/rest/reference/issues#comments).", + "tags": ["reactions"], + "operationId": "reactions/list-for-issue-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#list-reactions-for-an-issue-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/comment_id" }, + { + "name": "content", + "description": "Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to an issue comment.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/reaction" } + }, + "examples": { + "default": { "$ref": "#/components/examples/reaction-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "reactions", + "subcategory": null + }, + "x-octokit": {} + }, + "post": { + "summary": "Create reaction for an issue comment", + "description": "Create a reaction to an [issue comment](https://docs.github.com/rest/reference/issues#comments). A response with a `Status: 200 OK` means that you already added the reaction type to this issue comment.", + "tags": ["reactions"], + "operationId": "reactions/create-for-issue-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#create-reaction-for-an-issue-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/comment_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the issue comment.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + "required": ["content"] + }, + "example": { "content": "heart" } + } + } + }, + "responses": { + "200": { + "description": "Reaction exists", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/reaction" }, + "examples": { + "default": { "$ref": "#/components/examples/reaction" } + } + } + } + }, + "201": { + "description": "Reaction created", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/reaction" }, + "examples": { + "default": { "$ref": "#/components/examples/reaction" } + } + } + } + }, + "415": { "$ref": "#/components/responses/preview_header_missing" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "reactions", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}": { + "delete": { + "summary": "Delete an issue comment reaction", + "description": "**Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/issues/comments/:comment_id/reactions/:reaction_id`.\n\nDelete a reaction to an [issue comment](https://docs.github.com/rest/reference/issues#comments).", + "tags": ["reactions"], + "operationId": "reactions/delete-for-issue-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#delete-an-issue-comment-reaction" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/comment_id" }, + { "$ref": "#/components/parameters/reaction-id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "reactions", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/issues/events": { + "get": { + "summary": "List issue events for a repository", + "description": "", + "tags": ["issues"], + "operationId": "issues/list-events-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#list-issue-events-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/issue-event" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue-event-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "starfox", + "note": "Project card details are now shown in REST API v3 responses for project-related issue and timeline events. This feature is now available for developers to preview. For details, see the [blog post](https://developer.github.com/changes/2018-09-05-project-card-events).\n\nTo receive the `project_card` attribute, project boards must be [enabled](https://help.github.com/articles/disabling-project-boards-in-a-repository) for a repository, and you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.starfox-preview+json\n```" + } + ], + "category": "issues", + "subcategory": "events" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/issues/events/{event_id}": { + "get": { + "summary": "Get an issue event", + "description": "", + "tags": ["issues"], + "operationId": "issues/get-event", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#get-an-issue-event" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "event_id", + "in": "path", + "required": true, + "schema": { "type": "integer" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/issue-event" }, + "examples": { + "default": { "$ref": "#/components/examples/issue-event" } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "410": { "$ref": "#/components/responses/gone" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "starfox", + "note": "Project card details are now shown in REST API v3 responses for project-related issue and timeline events. This feature is now available for developers to preview. For details, see the [blog post](https://developer.github.com/changes/2018-09-05-project-card-events).\n\nTo receive the `project_card` attribute, project boards must be [enabled](https://help.github.com/articles/disabling-project-boards-in-a-repository) for a repository, and you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.starfox-preview+json\n```" + } + ], + "category": "issues", + "subcategory": "events" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/issues/{issue_number}": { + "get": { + "summary": "Get an issue", + "description": "The API returns a [`301 Moved Permanently` status](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-redirects-redirects) if the issue was\n[transferred](https://help.github.com/articles/transferring-an-issue-to-another-repository/) to another repository. If\nthe issue was transferred to or deleted from a repository where the authenticated user lacks read access, the API\nreturns a `404 Not Found` status. If the issue was deleted from a repository where the authenticated user has read\naccess, the API returns a `410 Gone` status. To receive webhook events for transferred and deleted issues, subscribe\nto the [`issues`](https://docs.github.com/webhooks/event-payloads/#issues) webhook.\n\n**Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this\nreason, \"Issues\" endpoints may return both issues and pull requests in the response. You can identify pull requests by\nthe `pull_request` key. Be aware that the `id` of a pull request returned from \"Issues\" endpoints will be an _issue id_. To find out the pull\nrequest id, use the \"[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)\" endpoint.", + "tags": ["issues"], + "operationId": "issues/get", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/issues/#get-an-issue" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/issue_number" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/issue" }, + "examples": { + "default": { "$ref": "#/components/examples/issue" } + } + } + } + }, + "301": { "$ref": "#/components/responses/moved_permanently" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "404": { "$ref": "#/components/responses/not_found" }, + "410": { "$ref": "#/components/responses/gone" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "issues", + "subcategory": null + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update an issue", + "description": "Issue owners and users with push access can edit an issue.", + "tags": ["issues"], + "operationId": "issues/update", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/issues/#update-an-issue" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/issue_number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the issue." + }, + "body": { + "type": "string", + "description": "The contents of the issue." + }, + "assignee": { + "type": "string", + "description": "Login for the user that this issue should be assigned to. **This field is deprecated.**" + }, + "state": { + "type": "string", + "description": "State of the issue. Either `open` or `closed`.", + "enum": ["open", "closed"] + }, + "milestone": { + "type": "integer", + "description": "The `number` of the milestone to associate this issue with or `null` to remove current. _NOTE: Only users with push access can set the milestone for issues. The milestone is silently dropped otherwise._", + "nullable": true + }, + "labels": { + "type": "array", + "description": "Labels to associate with this issue. Pass one or more Labels to _replace_ the set of Labels on this Issue. Send an empty array (`[]`) to clear all Labels from the Issue. _NOTE: Only users with push access can set labels for issues. Labels are silently dropped otherwise._", + "items": { + "oneOf": [ + { "type": "string" }, + { + "type": "object", + "properties": { + "id": { "type": "integer" }, + "name": { "type": "string" }, + "description": { "type": "string" }, + "color": { "type": "string" } + } + } + ] + } + }, + "assignees": { + "type": "array", + "description": "Logins for Users to assign to this issue. Pass one or more user logins to _replace_ the set of assignees on this Issue. Send an empty array (`[]`) to clear all assignees from the Issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._", + "items": { "type": "string" } + } + } + }, + "example": { + "title": "Found a bug", + "body": "I'm having a problem with this.", + "assignees": ["octocat"], + "milestone": 1, + "state": "open", + "labels": ["bug"] + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/issue" }, + "examples": { + "default": { "$ref": "#/components/examples/issue" } + } + } + } + }, + "301": { "$ref": "#/components/responses/moved_permanently" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "410": { "$ref": "#/components/responses/gone" }, + "422": { "$ref": "#/components/responses/validation_failed" }, + "503": { "$ref": "#/components/responses/service_unavailable" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/issues/{issue_number}/assignees": { + "post": { + "summary": "Add assignees to an issue", + "description": "Adds up to 10 assignees to an issue. Users already assigned to an issue are not replaced.", + "tags": ["issues"], + "operationId": "issues/add-assignees", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#add-assignees-to-an-issue" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/issue_number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "assignees": { + "type": "array", + "description": "Usernames of people to assign this issue to. _NOTE: Only users with push access can add assignees to an issue. Assignees are silently ignored otherwise._", + "items": { "type": "string" } + } + } + }, + "example": { "assignees": ["hubot", "other_user"] } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/issue-simple" }, + "examples": { + "default": { "$ref": "#/components/examples/issue-simple" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "assignees" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove assignees from an issue", + "description": "Removes one or more assignees from an issue.", + "tags": ["issues"], + "operationId": "issues/remove-assignees", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#remove-assignees-from-an-issue" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/issue_number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "assignees": { + "type": "array", + "description": "Usernames of assignees to remove from an issue. _NOTE: Only users with push access can remove assignees from an issue. Assignees are silently ignored otherwise._", + "items": { "type": "string" } + } + } + }, + "example": { "assignees": ["hubot", "other_user"] } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/issue-simple" }, + "examples": { + "default": { "$ref": "#/components/examples/issue-simple" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "assignees" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/issues/{issue_number}/comments": { + "get": { + "summary": "List issue comments", + "description": "Issue Comments are ordered by ascending ID.", + "tags": ["issues"], + "operationId": "issues/list-comments", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#list-issue-comments" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/issue_number" }, + { "$ref": "#/components/parameters/since" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/issue-comment" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue-comment-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "410": { "$ref": "#/components/responses/gone" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "issues", + "subcategory": "comments" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create an issue comment", + "description": "This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See \"[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)\" and \"[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-abuse-rate-limits)\" for details.", + "tags": ["issues"], + "operationId": "issues/create-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#create-an-issue-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/issue_number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The contents of the comment." + } + }, + "required": ["body"] + }, + "example": { "body": "Me too" } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/issue-comment" }, + "examples": { + "default": { "$ref": "#/components/examples/issue-comment" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/issues/comments/1", + "schema": { "type": "string" } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "410": { "$ref": "#/components/responses/gone" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "comments" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/issues/{issue_number}/events": { + "get": { + "summary": "List issue events", + "description": "", + "tags": ["issues"], + "operationId": "issues/list-events", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#list-issue-events" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/issue_number" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-event-for-issue" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue-event-for-issue-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "410": { "$ref": "#/components/responses/gone" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "starfox", + "note": "Project card details are now shown in REST API v3 responses for project-related issue and timeline events. This feature is now available for developers to preview. For details, see the [blog post](https://developer.github.com/changes/2018-09-05-project-card-events).\n\nTo receive the `project_card` attribute, project boards must be [enabled](https://help.github.com/articles/disabling-project-boards-in-a-repository) for a repository, and you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.starfox-preview+json\n```" + } + ], + "category": "issues", + "subcategory": "events" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/issues/{issue_number}/labels": { + "get": { + "summary": "List labels for an issue", + "description": "", + "tags": ["issues"], + "operationId": "issues/list-labels-on-issue", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#list-labels-for-an-issue" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/issue_number" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/label" } + }, + "examples": { + "default": { "$ref": "#/components/examples/label-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "410": { "$ref": "#/components/responses/gone" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "labels" + }, + "x-octokit": {} + }, + "post": { + "summary": "Add labels to an issue", + "description": "", + "tags": ["issues"], + "operationId": "issues/add-labels", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#add-labels-to-an-issue" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/issue_number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "labels": { + "type": "array", + "description": "The name of the label to add to the issue. Must contain at least one label. **Note:** Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key.", + "items": { "type": "string" } + } + }, + "required": ["labels"] + }, + "example": { "labels": ["bug", "enhancement"] } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/label" } + }, + "examples": { + "default": { "$ref": "#/components/examples/label-items" } + } + } + } + }, + "410": { "$ref": "#/components/responses/gone" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "labels" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set labels for an issue", + "description": "Removes any previous labels and sets the new labels for an issue.", + "tags": ["issues"], + "operationId": "issues/set-labels", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#set-labels-for-an-issue" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/issue_number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "labels": { + "type": "array", + "description": "The names of the labels to add to the issue. You can pass an empty array to remove all labels. **Note:** Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key.", + "items": { "type": "string" } + } + } + }, + "example": { "labels": ["bug", "enhancement"] } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/label" } + }, + "examples": { + "default": { "$ref": "#/components/examples/label-items" } + } + } + } + }, + "410": { "$ref": "#/components/responses/gone" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "labels" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove all labels from an issue", + "description": "", + "tags": ["issues"], + "operationId": "issues/remove-all-labels", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#remove-all-labels-from-an-issue" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/issue_number" } + ], + "responses": { + "204": { "description": "Empty response" }, + "410": { "$ref": "#/components/responses/gone" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "labels" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}": { + "delete": { + "summary": "Remove a label from an issue", + "description": "Removes the specified label from the issue, and returns the remaining labels on the issue. This endpoint returns a `404 Not Found` status if the label does not exist.", + "tags": ["issues"], + "operationId": "issues/remove-label", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#remove-a-label-from-an-issue" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/issue_number" }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/label" } + }, + "examples": { + "default": { "$ref": "#/components/examples/label-items-2" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "410": { "$ref": "#/components/responses/gone" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "labels" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/issues/{issue_number}/lock": { + "put": { + "summary": "Lock an issue", + "description": "Users with push access can lock an issue or pull request's conversation.\n\nNote that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"", + "tags": ["issues"], + "operationId": "issues/lock", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/issues/#lock-an-issue" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/issue_number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "lock_reason": { + "type": "string", + "description": "The reason for locking the issue or pull request conversation. Lock will fail if you don't use one of these reasons: \n\\* `off-topic` \n\\* `too heated` \n\\* `resolved` \n\\* `spam`", + "enum": ["off-topic", "too heated", "resolved", "spam"] + } + } + } + } + } + }, + "responses": { + "204": { "description": "Empty response" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "410": { "$ref": "#/components/responses/gone" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": null + }, + "x-octokit": {} + }, + "delete": { + "summary": "Unlock an issue", + "description": "Users with push access can unlock an issue's conversation.", + "tags": ["issues"], + "operationId": "issues/unlock", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/issues/#unlock-an-issue" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/issue_number" } + ], + "responses": { + "204": { "description": "Empty response" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/issues/{issue_number}/reactions": { + "get": { + "summary": "List reactions for an issue", + "description": "List the reactions to an [issue](https://docs.github.com/rest/reference/issues).", + "tags": ["reactions"], + "operationId": "reactions/list-for-issue", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#list-reactions-for-an-issue" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/issue_number" }, + { + "name": "content", + "description": "Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to an issue.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/reaction" } + }, + "examples": { + "default": { "$ref": "#/components/examples/reaction-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "410": { "$ref": "#/components/responses/gone" }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "reactions", + "subcategory": null + }, + "x-octokit": {} + }, + "post": { + "summary": "Create reaction for an issue", + "description": "Create a reaction to an [issue](https://docs.github.com/rest/reference/issues/). A response with a `Status: 200 OK` means that you already added the reaction type to this issue.", + "tags": ["reactions"], + "operationId": "reactions/create-for-issue", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#create-reaction-for-an-issue" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/issue_number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the issue.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + "required": ["content"] + }, + "example": { "content": "heart" } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/reaction" }, + "examples": { + "default": { "$ref": "#/components/examples/reaction" } + } + } + } + }, + "415": { "$ref": "#/components/responses/preview_header_missing" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "reactions", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}": { + "delete": { + "summary": "Delete an issue reaction", + "description": "**Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/issues/:issue_number/reactions/:reaction_id`.\n\nDelete a reaction to an [issue](https://docs.github.com/rest/reference/issues/).", + "tags": ["reactions"], + "operationId": "reactions/delete-for-issue", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#delete-an-issue-reaction" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/issue_number" }, + { "$ref": "#/components/parameters/reaction-id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "reactions", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/issues/{issue_number}/timeline": { + "get": { + "summary": "List timeline events for an issue", + "description": "", + "tags": ["issues"], + "operationId": "issues/list-events-for-timeline", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#list-timeline-events-for-an-issue" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/issue_number" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-event-for-issue" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue-event-for-issue-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "410": { "$ref": "#/components/responses/gone" }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "mockingbird", + "note": "The API to get issue timeline events is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-23-timeline-preview-api/) for full details. To access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.mockingbird-preview\n```" + }, + { + "required": false, + "name": "starfox", + "note": "Project card details are now shown in REST API v3 responses for project-related issue and timeline events. This feature is now available for developers to preview. For details, see the [blog post](https://developer.github.com/changes/2018-09-05-project-card-events).\n\nTo receive the `project_card` attribute, project boards must be [enabled](https://help.github.com/articles/disabling-project-boards-in-a-repository) for a repository, and you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.starfox-preview+json\n```" + } + ], + "category": "issues", + "subcategory": "timeline" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/keys": { + "get": { + "summary": "List deploy keys", + "description": "", + "tags": ["repos"], + "operationId": "repos/list-deploy-keys", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#list-deploy-keys" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/deploy-key" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/deploy-key-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "keys" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a deploy key", + "description": "You can create a read-only deploy key.", + "tags": ["repos"], + "operationId": "repos/create-deploy-key", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#create-a-deploy-key" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "A name for the key." + }, + "key": { + "type": "string", + "description": "The contents of the key." + }, + "read_only": { + "type": "boolean", + "description": "If `true`, the key will only be able to read repository contents. Otherwise, the key will be able to read and write. \n \nDeploy keys with write access can perform the same actions as an organization member with admin access, or a collaborator on a personal repository. For more information, see \"[Repository permission levels for an organization](https://help.github.com/articles/repository-permission-levels-for-an-organization/)\" and \"[Permission levels for a user account repository](https://help.github.com/articles/permission-levels-for-a-user-account-repository/).\"" + } + }, + "required": ["key"] + }, + "example": { + "title": "octocat@octomac", + "key": "ssh-rsa AAA...", + "read_only": true + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/deploy-key" }, + "examples": { + "default": { "$ref": "#/components/examples/deploy-key" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/keys/1", + "schema": { "type": "string" } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "keys" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/keys/{key_id}": { + "get": { + "summary": "Get a deploy key", + "description": "", + "tags": ["repos"], + "operationId": "repos/get-deploy-key", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-a-deploy-key" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/key_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/deploy-key" }, + "examples": { + "default": { "$ref": "#/components/examples/deploy-key" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "keys" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a deploy key", + "description": "Deploy keys are immutable. If you need to update a key, remove the key and create a new one instead.", + "tags": ["repos"], + "operationId": "repos/delete-deploy-key", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#delete-a-deploy-key" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/key_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "keys" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/labels": { + "get": { + "summary": "List labels for a repository", + "description": "", + "tags": ["issues"], + "operationId": "issues/list-labels-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#list-labels-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/label" } + }, + "examples": { + "default": { "$ref": "#/components/examples/label-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "labels" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a label", + "description": "", + "tags": ["issues"], + "operationId": "issues/create-label", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#create-a-label" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png \":strawberry:\"). For a full list of available emoji and codes, see [emoji-cheat-sheet.com](http://emoji-cheat-sheet.com/)." + }, + "color": { + "type": "string", + "description": "The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`." + }, + "description": { + "type": "string", + "description": "A short description of the label." + } + }, + "required": ["name"] + }, + "example": { + "name": "bug", + "description": "Something isn't working", + "color": "f29513" + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/label" }, + "examples": { + "default": { "$ref": "#/components/examples/label" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/labels/bug", + "schema": { "type": "string" } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "labels" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/labels/{name}": { + "get": { + "summary": "Get a label", + "description": "", + "tags": ["issues"], + "operationId": "issues/get-label", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#get-a-label" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/label" }, + "examples": { + "default": { "$ref": "#/components/examples/label" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "labels" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a label", + "description": "", + "tags": ["issues"], + "operationId": "issues/update-label", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#update-a-label" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "new_name": { + "type": "string", + "description": "The new name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png \":strawberry:\"). For a full list of available emoji and codes, see [emoji-cheat-sheet.com](http://emoji-cheat-sheet.com/)." + }, + "color": { + "type": "string", + "description": "The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`." + }, + "description": { + "type": "string", + "description": "A short description of the label." + } + } + }, + "example": { + "new_name": "bug :bug:", + "description": "Small bug fix required", + "color": "b01f26" + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/label" }, + "examples": { + "default": { "$ref": "#/components/examples/label-2" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "labels" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a label", + "description": "", + "tags": ["issues"], + "operationId": "issues/delete-label", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#delete-a-label" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "labels" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/languages": { + "get": { + "summary": "List repository languages", + "description": "Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language.", + "tags": ["repos"], + "operationId": "repos/list-languages", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#list-repository-languages" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/language" }, + "examples": { + "default": { "$ref": "#/components/examples/language" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/license": { + "get": { + "summary": "Get the license for a repository", + "description": "This method returns the contents of the repository's license file, if one is detected.\n\nSimilar to [Get repository content](https://docs.github.com/rest/reference/repos/contents#get-repository-content), this method also supports [custom media types](https://docs.github.com/rest/overview/media-types) for retrieving the raw license content or rendered license HTML.", + "tags": ["licenses"], + "operationId": "licenses/get-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/licenses/#get-the-license-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/license-content" }, + "examples": { + "default": { "$ref": "#/components/examples/license-content" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "licenses", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/merges": { + "post": { + "summary": "Merge a branch", + "description": "", + "tags": ["repos"], + "operationId": "repos/merge", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#merge-a-branch" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "base": { + "type": "string", + "description": "The name of the base branch that the head will be merged into." + }, + "head": { + "type": "string", + "description": "The head to merge. This can be a branch name or a commit SHA1." + }, + "commit_message": { + "type": "string", + "description": "Commit message to use for the merge commit. If omitted, a default message will be used." + } + }, + "required": ["base", "head"] + }, + "example": { + "base": "master", + "head": "cool_feature", + "commit_message": "Shipped cool_feature!" + } + } + } + }, + "responses": { + "201": { + "description": "Successful Response (The resulting merge commit)", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/commit" }, + "examples": { + "default": { "$ref": "#/components/examples/commit" } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { "type": "string" }, + "documentation_url": { + "type": "string", + "example": "\"https://docs.github.com/rest/reference/repos#perform-a-merge\"" + } + } + }, + "examples": { + "missing-base-response": { + "summary": "Missing base response", + "value": { "message": "Base does not exist" } + }, + "missing-head-response": { + "summary": "Missing head response", + "value": { "message": "Head does not exist" } + } + } + } + } + }, + "409": { + "description": "Merge conflict response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { "type": "string" }, + "documentation_url": { + "type": "string", + "example": "\"https://docs.github.com/rest/reference/repos#perform-a-merge\"" + } + } + }, + "examples": { + "merge-conflict-response": { + "value": { "message": "Merge Conflict" } + } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "merging" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/milestones": { + "get": { + "summary": "List milestones", + "description": "", + "tags": ["issues"], + "operationId": "issues/list-milestones", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#list-milestones" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "state", + "description": "The state of the milestone. Either `open`, `closed`, or `all`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["open", "closed", "all"], + "default": "open" + } + }, + { + "name": "sort", + "description": "What to sort results by. Either `due_on` or `completeness`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["due_on", "completeness"], + "default": "due_on" + } + }, + { + "name": "direction", + "description": "The direction of the sort. Either `asc` or `desc`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["asc", "desc"], + "default": "asc" + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/milestone" } + }, + "examples": { + "default": { "$ref": "#/components/examples/milestone-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "milestones" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a milestone", + "description": "", + "tags": ["issues"], + "operationId": "issues/create-milestone", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#create-a-milestone" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the milestone." + }, + "state": { + "type": "string", + "description": "The state of the milestone. Either `open` or `closed`.", + "enum": ["open", "closed"], + "default": "open" + }, + "description": { + "type": "string", + "description": "A description of the milestone." + }, + "due_on": { + "type": "string", + "description": "The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." + } + }, + "required": ["title"] + }, + "example": { + "title": "v1.0", + "state": "open", + "description": "Tracking milestone for version 1.0", + "due_on": "2012-10-09T23:39:01Z" + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/milestone" }, + "examples": { + "default": { "$ref": "#/components/examples/milestone" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/milestones/1", + "schema": { "type": "string" } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "milestones" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/milestones/{milestone_number}": { + "get": { + "summary": "Get a milestone", + "description": "", + "tags": ["issues"], + "operationId": "issues/get-milestone", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#get-a-milestone" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/milestone_number" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/milestone" }, + "examples": { + "default": { "$ref": "#/components/examples/milestone" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "milestones" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a milestone", + "description": "", + "tags": ["issues"], + "operationId": "issues/update-milestone", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#update-a-milestone" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/milestone_number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the milestone." + }, + "state": { + "type": "string", + "description": "The state of the milestone. Either `open` or `closed`.", + "enum": ["open", "closed"], + "default": "open" + }, + "description": { + "type": "string", + "description": "A description of the milestone." + }, + "due_on": { + "type": "string", + "description": "The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." + } + } + }, + "example": { + "title": "v1.0", + "state": "open", + "description": "Tracking milestone for version 1.0", + "due_on": "2012-10-09T23:39:01Z" + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/milestone" }, + "examples": { + "default": { "$ref": "#/components/examples/milestone" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "milestones" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a milestone", + "description": "", + "tags": ["issues"], + "operationId": "issues/delete-milestone", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#delete-a-milestone" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/milestone_number" } + ], + "responses": { + "204": { "description": "Empty response" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "milestones" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/milestones/{milestone_number}/labels": { + "get": { + "summary": "List labels for issues in a milestone", + "description": "", + "tags": ["issues"], + "operationId": "issues/list-labels-for-milestone", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/issues#list-labels-for-issues-in-a-milestone" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/milestone_number" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/label" } + }, + "examples": { + "default": { "$ref": "#/components/examples/label-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "issues", + "subcategory": "labels" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/notifications": { + "get": { + "summary": "List repository notifications for the authenticated user", + "description": "List all notifications for the current user.", + "tags": ["activity"], + "operationId": "activity/list-repo-notifications-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#list-repository-notifications-for-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/all" }, + { "$ref": "#/components/parameters/participating" }, + { "$ref": "#/components/parameters/since" }, + { "$ref": "#/components/parameters/before" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/thread" } + }, + "examples": { + "default": { "$ref": "#/components/examples/thread-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "activity", + "subcategory": "notifications" + }, + "x-octokit": {} + }, + "put": { + "summary": "Mark repository notifications as read", + "description": "Marks all notifications in a repository as \"read\" removes them from the [default view on GitHub](https://github.com/notifications). If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as \"read.\" To check whether any \"unread\" notifications remain, you can use the [List repository notifications for the authenticated user](https://docs.github.com/rest/reference/activity#list-repository-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`.", + "tags": ["activity"], + "operationId": "activity/mark-repo-notifications-as-read", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#mark-repository-notifications-as-read" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "last_read_at": { + "type": "string", + "description": "Describes the last point that notifications were checked. Anything updated since this time will not be marked as read. If you omit this parameter, all notifications are marked as read. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp." + } + } + } + } + } + }, + "responses": { "202": { "description": "response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "activity", + "subcategory": "notifications" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pages": { + "get": { + "summary": "Get a GitHub Pages site", + "description": "", + "tags": ["repos"], + "operationId": "repos/get-pages", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-a-github-pages-site" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/page" }, + "examples": { + "default": { "$ref": "#/components/examples/page" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "pages" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a GitHub Pages site", + "description": "Configures a GitHub Pages site. For more information, see \"[About GitHub Pages](/github/working-with-github-pages/about-github-pages).\"", + "tags": ["repos"], + "operationId": "repos/create-pages-site", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#create-a-github-pages-site" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "The source branch and directory used to publish your Pages site.", + "properties": { + "source": { + "type": "object", + "description": "The source branch and directory used to publish your Pages site.", + "properties": { + "branch": { + "type": "string", + "description": "The repository branch used to publish your site's source files." + }, + "path": { + "type": "string", + "description": "The repository directory that includes the source files for the Pages site. Allowed paths are `/` or `/docs`. Default: `/`", + "enum": ["/", "/docs"], + "default": "/" + } + }, + "required": ["branch"] + } + }, + "required": ["source"] + }, + "example": { "source": { "branch": "main", "path": "/docs" } } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/page" }, + "examples": { + "default": { "$ref": "#/components/examples/page" } + } + } + } + }, + "409": { "$ref": "#/components/responses/conflict" }, + "415": { "$ref": "#/components/responses/preview_header_missing" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "switcheroo", + "note": "Enabling and disabling Pages in the Pages API is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2019-03-14-enabling-disabling-pages/) preview for more details. To access the new endpoints during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.switcheroo-preview+json\n```" + } + ], + "category": "repos", + "subcategory": "pages" + }, + "x-octokit": {} + }, + "put": { + "summary": "Update information about a GitHub Pages site", + "description": "Updates information for a GitHub Pages site. For more information, see \"[About GitHub Pages](/github/working-with-github-pages/about-github-pages).", + "tags": ["repos"], + "operationId": "repos/update-information-about-pages-site", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#update-information-about-a-github-pages-site" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "cname": { + "type": "string", + "description": "Specify a custom domain for the repository. Sending a `null` value will remove the custom domain. For more about custom domains, see \"[Using a custom domain with GitHub Pages](https://help.github.com/articles/using-a-custom-domain-with-github-pages/).\"", + "nullable": true + }, + "source": { + "anyOf": [ + { + "type": "string", + "description": "Update the source for the repository. Must include the branch name, and may optionally specify the subdirectory `/docs`. Possible values are `\"gh-pages\"`, `\"master\"`, and `\"master /docs\"`.", + "enum": ["gh-pages", "master", "master /docs"] + }, + { + "type": "object", + "description": "Update the source for the repository. Must include the branch name and path.", + "properties": { + "branch": { + "type": "string", + "description": "The repository branch used to publish your site's source files." + }, + "path": { + "type": "string", + "description": "The repository directory that includes the source files for the Pages site. Allowed paths are `/` or `/docs`.", + "enum": ["/", "/docs"] + } + }, + "required": ["branch", "path"] + } + ] + } + }, + "required": ["source"] + }, + "example": { + "cname": "octocatblog.com", + "source": { "branch": "main", "path": "/" } + } + } + } + }, + "responses": { + "204": { "description": "Empty response" }, + "400": { "$ref": "#/components/responses/bad_request" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "pages" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a GitHub Pages site", + "description": "", + "tags": ["repos"], + "operationId": "repos/delete-pages-site", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#delete-a-github-pages-site" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "204": { "description": "Empty response" }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "switcheroo", + "note": "Enabling and disabling Pages in the Pages API is currently available for developers to preview. See the [blog post](https://developer.github.com/changes/2019-03-14-enabling-disabling-pages/) preview for more details. To access the new endpoints during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.switcheroo-preview+json\n```" + } + ], + "category": "repos", + "subcategory": "pages" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pages/builds": { + "get": { + "summary": "List GitHub Pages builds", + "description": "", + "tags": ["repos"], + "operationId": "repos/list-pages-builds", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#list-github-pages-builds" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/page-build" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/page-build-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "pages" + }, + "x-octokit": {} + }, + "post": { + "summary": "Request a GitHub Pages build", + "description": "You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures.\n\nBuild requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes.", + "tags": ["repos"], + "operationId": "repos/request-pages-build", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#request-a-github-pages-build" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/page-build-status" }, + "examples": { + "default": { + "$ref": "#/components/examples/page-build-status" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "pages" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pages/builds/latest": { + "get": { + "summary": "Get latest Pages build", + "description": "", + "tags": ["repos"], + "operationId": "repos/get-latest-pages-build", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-latest-pages-build" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/page-build" }, + "examples": { + "default": { "$ref": "#/components/examples/page-build" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "pages" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pages/builds/{build_id}": { + "get": { + "summary": "Get GitHub Pages build", + "description": "", + "tags": ["repos"], + "operationId": "repos/get-pages-build", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-github-pages-build" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "build_id", + "in": "path", + "required": true, + "schema": { "type": "integer" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/page-build" }, + "examples": { + "default": { "$ref": "#/components/examples/page-build" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "pages" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/projects": { + "get": { + "summary": "List repository projects", + "description": "Lists the projects in a repository. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned.", + "tags": ["projects"], + "operationId": "projects/list-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/projects/#list-repository-projects" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "state", + "description": "Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["open", "closed", "all"], + "default": "open" + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/project" } + }, + "examples": { + "default": { "$ref": "#/components/examples/project-items-2" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "410": { "$ref": "#/components/responses/gone" }, + "422": { "$ref": "#/components/responses/validation_failed_simple" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": null + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a repository project", + "description": "Creates a repository project board. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned.", + "tags": ["projects"], + "operationId": "projects/create-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/projects/#create-a-repository-project" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the project." + }, + "body": { + "type": "string", + "description": "The description of the project." + } + }, + "required": ["name"] + }, + "example": { + "name": "Projects Documentation", + "body": "Developer documentation project for the developer site." + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/project" }, + "examples": { + "default": { "$ref": "#/components/examples/project-3" } + } + } + } + }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "410": { "$ref": "#/components/responses/gone" }, + "422": { "$ref": "#/components/responses/validation_failed_simple" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pulls": { + "get": { + "summary": "List pull requests", + "description": "Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "tags": ["pulls"], + "operationId": "pulls/list", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/pulls/#list-pull-requests" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "state", + "description": "Either `open`, `closed`, or `all` to filter by state.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["open", "closed", "all"], + "default": "open" + } + }, + { + "name": "head", + "description": "Filter pulls by head user or head organization and branch name in the format of `user:ref-name` or `organization:ref-name`. For example: `github:new-script-format` or `octocat:test-branch`.", + "in": "query", + "required": false, + "schema": { "type": "string" } + }, + { + "name": "base", + "description": "Filter pulls by base branch name. Example: `gh-pages`.", + "in": "query", + "required": false, + "schema": { "type": "string" } + }, + { + "name": "sort", + "description": "What to sort results by. Can be either `created`, `updated`, `popularity` (comment count) or `long-running` (age, filtering by pulls updated in the last month).", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["created", "updated", "popularity", "long-running"], + "default": "created" + } + }, + { + "name": "direction", + "description": "The direction of the sort. Can be either `asc` or `desc`. Default: `desc` when sort is `created` or sort is not specified, otherwise `asc`.", + "in": "query", + "required": false, + "schema": { "type": "string", "enum": ["asc", "desc"] } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-simple" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-simple-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "pulls", + "subcategory": null + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a pull request", + "description": "Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nTo open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request.\n\nYou can create a new pull request.\n\nThis endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See \"[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)\" and \"[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)\" for details.", + "tags": ["pulls"], + "operationId": "pulls/create", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/pulls/#create-a-pull-request" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the new pull request." + }, + "head": { + "type": "string", + "description": "The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace `head` with a user like this: `username:branch`." + }, + "base": { + "type": "string", + "description": "The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository." + }, + "body": { + "type": "string", + "description": "The contents of the pull request." + }, + "maintainer_can_modify": { + "type": "boolean", + "description": "Indicates whether [maintainers can modify](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request." + }, + "draft": { + "type": "boolean", + "description": "Indicates whether the pull request is a draft. See \"[Draft Pull Requests](https://help.github.com/en/articles/about-pull-requests#draft-pull-requests)\" in the GitHub Help documentation to learn more." + }, + "issue": { "type": "integer", "example": "1" } + }, + "required": ["head", "base"] + }, + "example": { + "title": "Amazing new feature", + "body": "Please pull these awesome changes in!", + "head": "octocat:new-feature", + "base": "master" + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/pull-request" }, + "examples": { + "default": { "$ref": "#/components/examples/pull-request" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347", + "schema": { "type": "string" } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "pulls", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pulls/comments": { + "get": { + "summary": "List review comments in a repository", + "description": "Lists review comments for all pull requests in a repository. By default, review comments are in ascending order by ID.", + "tags": ["pulls"], + "operationId": "pulls/list-review-comments-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/pulls#list-review-comments-in-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/sort" }, + { + "name": "direction", + "description": "Can be either `asc` or `desc`. Ignored without `sort` parameter.", + "in": "query", + "required": false, + "schema": { "type": "string", "enum": ["asc", "desc"] } + }, + { "$ref": "#/components/parameters/since" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-review-comment" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-comment-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "comfort-fade", + "note": "Multi-line comments in a pull request diff is currently available for developers to preview. During the preview period, these response fields may change without advance notice. See the [blog post](https://developer.github.com/changes/2019-10-03-multi-line-comments) for more information.\n\nTo create multi-line comments or see multi-line comments with the new supported fields during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.comfort-fade-preview+json\n```\n\nTo show multi-line comment-supported fields in the response, use the `comfort-fade` preview header and the `line` parameter.\n\nIf you use the `comfort-fade` preview header, your response will show:\n\n* For multi-line comments, values for `start_line`, `original_start_line`, `start_side`, `line`, `original_line`, and `side`.\n* For single-line comments, values for `line`, `original_line`, and `side` and a `null` value for `start_line`, `original_start_line`, and `start_side`.\n\nIf you don't use the `comfort-fade` preview header, multi-line and single-line comments will appear the same way in the response with a single `position` attribute. Your response will show:\n\n* For multi-line comments, the last line of the comment range for the `position` attribute.\n* For single-line comments, the diff-positioned way of referencing comments for the `position` attribute." + }, + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "pulls", + "subcategory": "comments" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pulls/comments/{comment_id}": { + "get": { + "summary": "Get a review comment for a pull request", + "description": "Provides details for a review comment.", + "tags": ["pulls"], + "operationId": "pulls/get-review-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/pulls#get-a-review-comment-for-a-pull-request" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/comment_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review-comment" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-comment-2" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "comfort-fade", + "note": "Multi-line comments in a pull request diff is currently available for developers to preview. During the preview period, these response fields may change without advance notice. See the [blog post](https://developer.github.com/changes/2019-10-03-multi-line-comments) for more information.\n\nTo create multi-line comments or see multi-line comments with the new supported fields during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.comfort-fade-preview+json\n```\n\nTo show multi-line comment-supported fields in the response, use the `comfort-fade` preview header and the `line` parameter.\n\nIf you use the `comfort-fade` preview header, your response will show:\n\n* For multi-line comments, values for `start_line`, `original_start_line`, `start_side`, `line`, `original_line`, and `side`.\n* For single-line comments, values for `line`, `original_line`, and `side` and a `null` value for `start_line`, `original_start_line`, and `start_side`.\n\nIf you don't use the `comfort-fade` preview header, multi-line and single-line comments will appear the same way in the response with a single `position` attribute. Your response will show:\n\n* For multi-line comments, the last line of the comment range for the `position` attribute.\n* For single-line comments, the diff-positioned way of referencing comments for the `position` attribute." + }, + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "pulls", + "subcategory": "comments" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a review comment for a pull request", + "description": "Enables you to edit a review comment.", + "tags": ["pulls"], + "operationId": "pulls/update-review-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/pulls#update-a-review-comment-for-a-pull-request" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/comment_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The text of the reply to the review comment." + } + }, + "required": ["body"] + }, + "example": { "body": "I like this too!" } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review-comment" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-comment-2" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "comfort-fade", + "note": "Multi-line comments in a pull request diff is currently available for developers to preview. During the preview period, these response fields may change without advance notice. See the [blog post](https://developer.github.com/changes/2019-10-03-multi-line-comments) for more information.\n\nTo create multi-line comments or see multi-line comments with the new supported fields during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.comfort-fade-preview+json\n```\n\nTo show multi-line comment-supported fields in the response, use the `comfort-fade` preview header and the `line` parameter.\n\nIf you use the `comfort-fade` preview header, your response will show:\n\n* For multi-line comments, values for `start_line`, `original_start_line`, `start_side`, `line`, `original_line`, and `side`.\n* For single-line comments, values for `line`, `original_line`, and `side` and a `null` value for `start_line`, `original_start_line`, and `start_side`.\n\nIf you don't use the `comfort-fade` preview header, multi-line and single-line comments will appear the same way in the response with a single `position` attribute. Your response will show:\n\n* For multi-line comments, the last line of the comment range for the `position` attribute.\n* For single-line comments, the diff-positioned way of referencing comments for the `position` attribute." + } + ], + "category": "pulls", + "subcategory": "comments" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a review comment for a pull request", + "description": "Deletes a review comment.", + "tags": ["pulls"], + "operationId": "pulls/delete-review-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/pulls#delete-a-review-comment-for-a-pull-request" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/comment_id" } + ], + "responses": { + "204": { "description": "Empty response" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "pulls", + "subcategory": "comments" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": { + "get": { + "summary": "List reactions for a pull request review comment", + "description": "List the reactions to a [pull request review comment](https://docs.github.com/rest/reference/pulls#review-comments).", + "tags": ["reactions"], + "operationId": "reactions/list-for-pull-request-review-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#list-reactions-for-a-pull-request-review-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/comment_id" }, + { + "name": "content", + "description": "Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a pull request review comment.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/reaction" } + }, + "examples": { + "default": { "$ref": "#/components/examples/reaction-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "reactions", + "subcategory": null + }, + "x-octokit": {} + }, + "post": { + "summary": "Create reaction for a pull request review comment", + "description": "Create a reaction to a [pull request review comment](https://docs.github.com/rest/reference/pulls#comments). A response with a `Status: 200 OK` means that you already added the reaction type to this pull request review comment.", + "tags": ["reactions"], + "operationId": "reactions/create-for-pull-request-review-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#create-reaction-for-a-pull-request-review-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/comment_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the pull request review comment.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + "required": ["content"] + }, + "example": { "content": "heart" } + } + } + }, + "responses": { + "200": { + "description": "Reaction exists", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/reaction" }, + "examples": { + "default": { "$ref": "#/components/examples/reaction" } + } + } + } + }, + "201": { + "description": "Reaction created", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/reaction" }, + "examples": { + "default": { "$ref": "#/components/examples/reaction" } + } + } + } + }, + "415": { "$ref": "#/components/responses/preview_header_missing" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "reactions", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}": { + "delete": { + "summary": "Delete a pull request comment reaction", + "description": "**Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/pulls/comments/:comment_id/reactions/:reaction_id.`\n\nDelete a reaction to a [pull request review comment](https://docs.github.com/rest/reference/pulls#review-comments).", + "tags": ["reactions"], + "operationId": "reactions/delete-for-pull-request-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#delete-a-pull-request-comment-reaction" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/comment_id" }, + { "$ref": "#/components/parameters/reaction-id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "reactions", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}": { + "get": { + "summary": "Get a pull request", + "description": "Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nLists details of a pull request by providing its number.\n\nWhen you get, [create](https://docs.github.com/rest/reference/pulls/#create-a-pull-request), or [edit](https://docs.github.com/rest/reference/pulls#update-a-pull-request) a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the `mergeable` key. For more information, see \"[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)\".\n\nThe value of the `mergeable` attribute can be `true`, `false`, or `null`. If the value is `null`, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-`null` value for the `mergeable` attribute in the response. If `mergeable` is `true`, then `merge_commit_sha` will be the SHA of the _test_ merge commit.\n\nThe value of the `merge_commit_sha` attribute changes depending on the state of the pull request. Before merging a pull request, the `merge_commit_sha` attribute holds the SHA of the _test_ merge commit. After merging a pull request, the `merge_commit_sha` attribute changes depending on how you merged the pull request:\n\n* If merged as a [merge commit](https://help.github.com/articles/about-merge-methods-on-github/), `merge_commit_sha` represents the SHA of the merge commit.\n* If merged via a [squash](https://help.github.com/articles/about-merge-methods-on-github/#squashing-your-merge-commits), `merge_commit_sha` represents the SHA of the squashed commit on the base branch.\n* If [rebased](https://help.github.com/articles/about-merge-methods-on-github/#rebasing-and-merging-your-commits), `merge_commit_sha` represents the commit that the base branch was updated to.\n\nPass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats.", + "tags": ["pulls"], + "operationId": "pulls/get", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/pulls/#get-a-pull-request" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/pull-number" } + ], + "responses": { + "200": { + "description": "Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats.", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/pull-request" }, + "examples": { + "default": { "$ref": "#/components/examples/pull-request" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "404": { "$ref": "#/components/responses/not_found" }, + "500": { "$ref": "#/components/responses/internal_error" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "pulls", + "subcategory": null + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a pull request", + "description": "Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nTo open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request.", + "tags": ["pulls"], + "operationId": "pulls/update", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/pulls/#update-a-pull-request" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/pull-number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the pull request." + }, + "body": { + "type": "string", + "description": "The contents of the pull request." + }, + "state": { + "type": "string", + "description": "State of this Pull Request. Either `open` or `closed`.", + "enum": ["open", "closed"] + }, + "base": { + "type": "string", + "description": "The name of the branch you want your changes pulled into. This should be an existing branch on the current repository. You cannot update the base branch on a pull request to point to another repository." + }, + "maintainer_can_modify": { + "type": "boolean", + "description": "Indicates whether [maintainers can modify](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request." + } + } + }, + "example": { + "title": "new title", + "body": "updated body", + "state": "open", + "base": "master" + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/pull-request" }, + "examples": { + "default": { "$ref": "#/components/examples/pull-request" } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "pulls", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/comments": { + "get": { + "summary": "List review comments on a pull request", + "description": "Lists all review comments for a pull request. By default, review comments are in ascending order by ID.", + "tags": ["pulls"], + "operationId": "pulls/list-review-comments", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/pulls#list-review-comments-on-a-pull-request" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/pull-number" }, + { "$ref": "#/components/parameters/sort" }, + { + "name": "direction", + "description": "Can be either `asc` or `desc`. Ignored without `sort` parameter.", + "in": "query", + "required": false, + "schema": { "type": "string", "enum": ["asc", "desc"] } + }, + { "$ref": "#/components/parameters/since" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-review-comment" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-comment-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "comfort-fade", + "note": "Multi-line comments in a pull request diff is currently available for developers to preview. During the preview period, these response fields may change without advance notice. See the [blog post](https://developer.github.com/changes/2019-10-03-multi-line-comments) for more information.\n\nTo create multi-line comments or see multi-line comments with the new supported fields during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.comfort-fade-preview+json\n```\n\nTo show multi-line comment-supported fields in the response, use the `comfort-fade` preview header and the `line` parameter.\n\nIf you use the `comfort-fade` preview header, your response will show:\n\n* For multi-line comments, values for `start_line`, `original_start_line`, `start_side`, `line`, `original_line`, and `side`.\n* For single-line comments, values for `line`, `original_line`, and `side` and a `null` value for `start_line`, `original_start_line`, and `start_side`.\n\nIf you don't use the `comfort-fade` preview header, multi-line and single-line comments will appear the same way in the response with a single `position` attribute. Your response will show:\n\n* For multi-line comments, the last line of the comment range for the `position` attribute.\n* For single-line comments, the diff-positioned way of referencing comments for the `position` attribute." + }, + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "pulls", + "subcategory": "comments" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a review comment for a pull request", + "description": "\nCreates a review comment in the pull request diff. To add a regular comment to a pull request timeline, see \"[Create an issue comment](https://docs.github.com/rest/reference/issues#create-an-issue-comment).\" We recommend creating a review comment using `line`, `side`, and optionally `start_line` and `start_side` if your comment applies to more than one line in the pull request diff.\n\nYou can still create a review comment using the `position` parameter. When you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required. For more information, see the [`comfort-fade` preview notice](https://docs.github.com/rest/reference/pulls#create-a-review-comment-for-a-pull-request-preview-notices).\n\n**Note:** The position value equals the number of lines down from the first \"@@\" hunk header in the file you want to add a comment. The line just below the \"@@\" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file.\n\nThis endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See \"[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)\" and \"[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)\" for details.", + "tags": ["pulls"], + "operationId": "pulls/create-review-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/pulls#create-a-review-comment-for-a-pull-request" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/pull-number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The text of the review comment." + }, + "commit_id": { + "type": "string", + "description": "The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the `position`." + }, + "path": { + "type": "string", + "description": "The relative path to the file that necessitates a comment." + }, + "position": { + "type": "integer", + "description": "**Required without `comfort-fade` preview**. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above." + }, + "side": { + "type": "string", + "description": "**Required with `comfort-fade` preview**. In a split diff view, the side of the diff that the pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use `LEFT` for deletions that appear in red. Use `RIGHT` for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see \"[Diff view options](https://help.github.com/en/articles/about-comparing-branches-in-pull-requests#diff-view-options)\" in the GitHub Help documentation.", + "enum": ["LEFT", "RIGHT"] + }, + "line": { + "type": "integer", + "description": "**Required with `comfort-fade` preview**. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to." + }, + "start_line": { + "type": "integer", + "description": "**Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_line` is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see \"[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)\" in the GitHub Help documentation." + }, + "start_side": { + "type": "string", + "description": "**Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_side` is the starting side of the diff that the comment applies to. Can be `LEFT` or `RIGHT`. To learn more about multi-line comments, see \"[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)\" in the GitHub Help documentation. See `side` in this table for additional context.", + "enum": ["LEFT", "RIGHT", "side"] + }, + "in_reply_to": { "type": "integer", "example": "2" } + }, + "required": ["body", "path"] + }, + "examples": { + "example-for-a-single-line-comment": { + "summary": "Example for a single-line comment", + "value": { + "body": "Let's add this deleted line back.", + "commit_id": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "path": "file1.txt", + "line": 5, + "side": "LEFT" + } + }, + "example-for-a-multi-line-comment": { + "summary": "Example for a multi-line comment", + "value": { + "body": "Great stuff!", + "commit_id": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "path": "file1.txt", + "start_line": 1, + "start_side": "RIGHT", + "line": 2, + "side": "RIGHT" + } + } + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review-comment" + }, + "examples": { + "example-for-a-multi-line-comment": { + "$ref": "#/components/examples/pull-request-review-comment-example-for-a-multi-line-comment" + } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1", + "schema": { "type": "string" } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "comfort-fade", + "note": "Multi-line comments in a pull request diff is currently available for developers to preview. During the preview period, these response fields may change without advance notice. See the [blog post](https://developer.github.com/changes/2019-10-03-multi-line-comments) for more information.\n\nTo create multi-line comments or see multi-line comments with the new supported fields during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.comfort-fade-preview+json\n```\n\nTo show multi-line comment-supported fields in the response, use the `comfort-fade` preview header and the `line` parameter.\n\nIf you use the `comfort-fade` preview header, your response will show:\n\n* For multi-line comments, values for `start_line`, `original_start_line`, `start_side`, `line`, `original_line`, and `side`.\n* For single-line comments, values for `line`, `original_line`, and `side` and a `null` value for `start_line`, `original_start_line`, and `start_side`.\n\nIf you don't use the `comfort-fade` preview header, multi-line and single-line comments will appear the same way in the response with a single `position` attribute. Your response will show:\n\n* For multi-line comments, the last line of the comment range for the `position` attribute.\n* For single-line comments, the diff-positioned way of referencing comments for the `position` attribute." + } + ], + "category": "pulls", + "subcategory": "comments" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies": { + "post": { + "summary": "Create a reply for a review comment", + "description": "Creates a reply to a review comment for a pull request. For the `comment_id`, provide the ID of the review comment you are replying to. This must be the ID of a _top-level review comment_, not a reply to that comment. Replies to replies are not supported.\n\nThis endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See \"[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)\" and \"[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)\" for details.", + "tags": ["pulls"], + "operationId": "pulls/create-reply-for-review-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/pulls#create-a-reply-for-a-review-comment" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/pull-number" }, + { "$ref": "#/components/parameters/comment_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The text of the review comment." + } + }, + "required": ["body"] + }, + "example": { "body": "Great stuff!" } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review-comment" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-comment" + } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1", + "schema": { "type": "string" } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "pulls", + "subcategory": "comments" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/commits": { + "get": { + "summary": "List commits on a pull request", + "description": "Lists a maximum of 250 commits for a pull request. To receive a complete commit list for pull requests with more than 250 commits, use the [List commits](https://docs.github.com/rest/reference/repos#list-commits) endpoint.", + "tags": ["pulls"], + "operationId": "pulls/list-commits", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/pulls/#list-commits-on-a-pull-request" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/pull-number" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/commit" } + }, + "examples": { + "default": { "$ref": "#/components/examples/commit-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "pulls", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/files": { + "get": { + "summary": "List pull requests files", + "description": "**Note:** Responses include a maximum of 3000 files. The paginated response returns 30 files per page by default.", + "tags": ["pulls"], + "operationId": "pulls/list-files", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/pulls/#list-pull-requests-files" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/pull-number" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/diff-entry" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/diff-entry-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "422": { "$ref": "#/components/responses/validation_failed" }, + "500": { "$ref": "#/components/responses/internal_error" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "pulls", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/merge": { + "get": { + "summary": "Check if a pull request has been merged", + "description": "", + "tags": ["pulls"], + "operationId": "pulls/check-if-merged", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/pulls/#check-if-a-pull-request-has-been-merged" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/pull-number" } + ], + "responses": { + "204": { "description": "Response if pull request has been merged" }, + "404": { + "description": "Response if pull request has not been merged" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "pulls", + "subcategory": null + }, + "x-octokit": {} + }, + "put": { + "summary": "Merge a pull request", + "description": "This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See \"[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)\" and \"[Dealing with abuse rate limits](https://docs.github.com/rest/reference/guides#dealing-with-abuse-rate-limits)\" for details.", + "tags": ["pulls"], + "operationId": "pulls/merge", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/pulls/#merge-a-pull-request" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/pull-number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "commit_title": { + "type": "string", + "description": "Title for the automatic commit message." + }, + "commit_message": { + "type": "string", + "description": "Extra detail to append to automatic commit message." + }, + "sha": { + "type": "string", + "description": "SHA that pull request head must match to allow merge." + }, + "merge_method": { + "type": "string", + "description": "Merge method to use. Possible values are `merge`, `squash` or `rebase`. Default is `merge`.", + "enum": ["merge", "squash", "rebase"] + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Response if merge was successful", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-merge-result" + }, + "examples": { + "response-if-merge-was-successful": { + "$ref": "#/components/examples/pull-request-merge-result-response-if-merge-was-successful" + } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "405": { + "description": "Response if merge cannot be performed", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { "type": "string" }, + "documentation_url": { "type": "string" } + } + }, + "examples": { + "response-if-merge-cannot-be-performed": { + "value": { "message": "Pull Request is not mergeable" } + } + } + } + } + }, + "409": { + "description": "Response if sha was provided and pull request head did not match", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { "type": "string" }, + "documentation_url": { "type": "string" } + } + }, + "examples": { + "response-if-sha-was-provided-and-pull-request-head-did-not-match": { + "value": { + "message": "Head branch was modified. Review and try the merge again." + } + } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "pulls", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": { + "get": { + "summary": "List requested reviewers for a pull request", + "description": "", + "tags": ["pulls"], + "operationId": "pulls/list-requested-reviewers", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/pulls#list-requested-reviewers-for-a-pull-request" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/pull-number" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review-request" + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-pull-request-review-request" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "pulls", + "subcategory": "review-requests" + }, + "x-octokit": {} + }, + "post": { + "summary": "Request reviewers for a pull request", + "description": "This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See \"[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)\" and \"[Dealing with abuse rate limits](https://docs.github.com/rest/reference/guides#dealing-with-abuse-rate-limits)\" for details.", + "tags": ["pulls"], + "operationId": "pulls/request-reviewers", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/pulls#request-reviewers-for-a-pull-request" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/pull-number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "reviewers": { + "type": "array", + "description": "An array of user `login`s that will be requested.", + "items": { "type": "string" } + }, + "team_reviewers": { + "type": "array", + "description": "An array of team `slug`s that will be requested.", + "items": { "type": "string" } + } + } + }, + "example": { + "reviewers": ["octocat", "hubot", "other_user"], + "team_reviewers": ["justice-league"] + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-simple" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-request" + } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "description": "Response if user is not a collaborator" } + }, + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "pulls", + "subcategory": "review-requests" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove requested reviewers from a pull request", + "description": "", + "tags": ["pulls"], + "operationId": "pulls/remove-requested-reviewers", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/pulls#remove-requested-reviewers-from-a-pull-request" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/pull-number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "reviewers": { + "type": "array", + "description": "An array of user `login`s that will be removed.", + "items": { "type": "string" } + }, + "team_reviewers": { + "type": "array", + "description": "An array of team `slug`s that will be removed.", + "items": { "type": "string" } + } + } + }, + "example": { + "reviewers": ["octocat", "hubot", "other_user"], + "team_reviewers": ["justice-league"] + } + } + } + }, + "responses": { + "200": { "description": "response" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "pulls", + "subcategory": "review-requests" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews": { + "get": { + "summary": "List reviews for a pull request", + "description": "The list of reviews returns in chronological order.", + "tags": ["pulls"], + "operationId": "pulls/list-reviews", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/pulls#list-reviews-for-a-pull-request" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/pull-number" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "The list of reviews returns in chronological order.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-review" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "pulls", + "subcategory": "reviews" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a review for a pull request", + "description": "This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See \"[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)\" and \"[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)\" for details.\n\nPull request reviews created in the `PENDING` state do not include the `submitted_at` property in the response.\n\n**Note:** To comment on a specific line in a file, you need to first determine the _position_ of that line in the diff. The GitHub REST API v3 offers the `application/vnd.github.v3.diff` [media type](https://docs.github.com/rest/reference/media/#commits-commit-comparison-and-pull-requests). To see a pull request diff, add this media type to the `Accept` header of a call to the [single pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) endpoint.\n\nThe `position` value equals the number of lines down from the first \"@@\" hunk header in the file you want to add a comment. The line just below the \"@@\" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file.", + "tags": ["pulls"], + "operationId": "pulls/create-review", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/pulls#create-a-review-for-a-pull-request" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/pull-number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "commit_id": { + "type": "string", + "description": "The SHA of the commit that needs a review. Not using the latest commit SHA may render your review comment outdated if a subsequent commit modifies the line you specify as the `position`. Defaults to the most recent commit in the pull request when you do not specify a value." + }, + "body": { + "type": "string", + "description": "**Required** when using `REQUEST_CHANGES` or `COMMENT` for the `event` parameter. The body text of the pull request review." + }, + "event": { + "type": "string", + "description": "The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. By leaving this blank, you set the review action state to `PENDING`, which means you will need to [submit the pull request review](https://docs.github.com/rest/reference/pulls#submit-a-review-for-a-pull-request) when you are ready.", + "enum": ["APPROVE", "REQUEST_CHANGES", "COMMENT"] + }, + "comments": { + "type": "array", + "description": "Use the following table to specify the location, destination, and contents of the draft review comment.", + "items": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "The relative path to the file that necessitates a review comment." + }, + "position": { + "type": "integer", + "description": "The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note below." + }, + "body": { + "type": "string", + "description": "Text of the review comment." + }, + "line": { "type": "integer", "example": "28" }, + "side": { "type": "string", "example": "\"RIGHT\"" }, + "start_line": { "type": "integer", "example": "26" }, + "start_side": { + "type": "string", + "example": "\"LEFT\"" + } + }, + "required": ["path", "body"] + } + } + } + }, + "example": { + "commit_id": "ecdd80bb57125d7ba9641ffaa4d7d2c19d3f3091", + "body": "This is close to perfect! Please address the suggested inline change.", + "event": "REQUEST_CHANGES", + "comments": [ + { + "path": "file.md", + "position": 6, + "body": "Please add more information here, and fix this typo." + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review" + } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "$ref": "#/components/responses/validation_failed_simple" } + }, + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "pulls", + "subcategory": "reviews" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": { + "get": { + "summary": "Get a review for a pull request", + "description": "", + "tags": ["pulls"], + "operationId": "pulls/get-review", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/pulls#get-a-review-for-a-pull-request" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/pull-number" }, + { "$ref": "#/components/parameters/review_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-4" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "pulls", + "subcategory": "reviews" + }, + "x-octokit": {} + }, + "put": { + "summary": "Update a review for a pull request", + "description": "Update the review summary comment with new text.", + "tags": ["pulls"], + "operationId": "pulls/update-review", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/pulls#update-a-review-for-a-pull-request" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/pull-number" }, + { "$ref": "#/components/parameters/review_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The body text of the pull request review." + } + }, + "required": ["body"] + }, + "example": { + "body": "This is close to perfect! Please address the suggested inline change. And add more about this." + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-5" + } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed_simple" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "pulls", + "subcategory": "reviews" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a pending review for a pull request", + "description": "", + "tags": ["pulls"], + "operationId": "pulls/delete-pending-review", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/pulls#delete-a-pending-review-for-a-pull-request" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/pull-number" }, + { "$ref": "#/components/parameters/review_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed_simple" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "pulls", + "subcategory": "reviews" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments": { + "get": { + "summary": "List comments for a pull request review", + "description": "List comments for a specific pull request review.", + "tags": ["pulls"], + "operationId": "pulls/list-comments-for-review", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/pulls#list-comments-for-a-pull-request-review" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/pull-number" }, + { "$ref": "#/components/parameters/review_id" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/review-comment" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/review-comment-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "pulls", + "subcategory": "reviews" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals": { + "put": { + "summary": "Dismiss a review for a pull request", + "description": "**Note:** To dismiss a pull request review on a [protected branch](https://docs.github.com/rest/reference/repos#branches), you must be a repository administrator or be included in the list of people or teams who can dismiss pull request reviews.", + "tags": ["pulls"], + "operationId": "pulls/dismiss-review", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/pulls#dismiss-a-review-for-a-pull-request" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/pull-number" }, + { "$ref": "#/components/parameters/review_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message for the pull request review dismissal" + }, + "event": { "type": "string", "example": "\"APPROVE\"" } + }, + "required": ["message"] + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-3" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed_simple" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "pulls", + "subcategory": "reviews" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events": { + "post": { + "summary": "Submit a review for a pull request", + "description": "", + "tags": ["pulls"], + "operationId": "pulls/submit-review", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/pulls#submit-a-review-for-a-pull-request" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/pull-number" }, + { "$ref": "#/components/parameters/review_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The body text of the pull request review" + }, + "event": { + "type": "string", + "description": "The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. When you leave this blank, the API returns _HTTP 422 (Unrecognizable entity)_ and sets the review action state to `PENDING`, which means you will need to re-submit the pull request review using a review action.", + "enum": ["APPROVE", "REQUEST_CHANGES", "COMMENT"] + } + }, + "required": ["event"] + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-4" + } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed_simple" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "pulls", + "subcategory": "reviews" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/update-branch": { + "put": { + "summary": "Update a pull request branch", + "description": "Updates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch.", + "tags": ["pulls"], + "operationId": "pulls/update-branch", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/pulls/#update-a-pull-request-branch" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/pull-number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "expected_head_sha": { + "type": "string", + "description": "The expected SHA of the pull request's HEAD ref. This is the most recent commit on the pull request's branch. If the expected SHA does not match the pull request's HEAD, you will receive a `422 Unprocessable Entity` status. You can use the \"[List commits](https://docs.github.com/rest/reference/repos#list-commits)\" endpoint to find the most recent commit SHA. Default: SHA of the pull request's current HEAD ref." + } + } + }, + "example": { + "expected_head_sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + } + } + } + }, + "responses": { + "202": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { "type": "string" }, + "url": { "type": "string" } + } + }, + "example": { + "message": "Updating pull request branch.", + "url": "https://github.com/repos/octocat/Hello-World/pulls/53" + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "415": { "$ref": "#/components/responses/preview_header_missing" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "lydian", + "note": "Updating the pull request branch with latest upstream changes is currently available for developers to preview. To access this new endpoint during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.lydian-preview+json\n```" + } + ], + "category": "pulls", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/readme": { + "get": { + "summary": "Get a repository README", + "description": "Gets the preferred README for a repository.\n\nREADMEs support [custom media types](https://docs.github.com/rest/reference/repos#custom-media-types) for retrieving the raw content or rendered HTML.", + "tags": ["repos"], + "operationId": "repos/get-readme", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-a-repository-readme" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "ref", + "description": "The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`)", + "in": "query", + "required": false, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/content-file" }, + "examples": { + "default": { "$ref": "#/components/examples/content-file" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "contents" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/releases": { + "get": { + "summary": "List releases", + "description": "This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the [Repository Tags API](https://docs.github.com/rest/reference/repos#list-repository-tags).\n\nInformation about published releases are available to everyone. Only users with push access will receive listings for draft releases.", + "tags": ["repos"], + "operationId": "repos/list-releases", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#list-releases" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/release" } + }, + "examples": { + "default": { "$ref": "#/components/examples/release-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "releases" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a release", + "description": "Users with push access to the repository can create a release.\n\nThis endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See \"[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)\" and \"[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)\" for details.", + "tags": ["repos"], + "operationId": "repos/create-release", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#create-a-release" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tag_name": { + "type": "string", + "description": "The name of the tag." + }, + "target_commitish": { + "type": "string", + "description": "Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually `master`)." + }, + "name": { + "type": "string", + "description": "The name of the release." + }, + "body": { + "type": "string", + "description": "Text describing the contents of the tag." + }, + "draft": { + "type": "boolean", + "description": "`true` to create a draft (unpublished) release, `false` to create a published one.", + "default": false + }, + "prerelease": { + "type": "boolean", + "description": "`true` to identify the release as a prerelease. `false` to identify the release as a full release.", + "default": false + } + }, + "required": ["tag_name"] + }, + "example": { + "tag_name": "v1.0.0", + "target_commitish": "master", + "name": "v1.0.0", + "body": "Description of the release", + "draft": false, + "prerelease": false + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/release" }, + "examples": { + "default": { "$ref": "#/components/examples/release" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/releases/1", + "schema": { "type": "string" } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "releases" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/releases/assets/{asset_id}": { + "get": { + "summary": "Get a release asset", + "description": "To download the asset's binary content, set the `Accept` header of the request to [`application/octet-stream`](https://docs.github.com/rest/overview/media-types). The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a `200` or `302` response.", + "tags": ["repos"], + "operationId": "repos/get-release-asset", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-a-release-asset" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/asset_id" } + ], + "responses": { + "200": { + "description": "To download the asset's binary content, set the `Accept` header of the request to [`application/octet-stream`](https://docs.github.com/rest/overview/media-types). The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a `200` or `302` response.", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/release-asset" }, + "examples": { + "default": { "$ref": "#/components/examples/release-asset" } + } + } + } + }, + "302": { "$ref": "#/components/responses/found" }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "releases" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a release asset", + "description": "Users with push access to the repository can edit a release asset.", + "tags": ["repos"], + "operationId": "repos/update-release-asset", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#update-a-release-asset" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/asset_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The file name of the asset." + }, + "label": { + "type": "string", + "description": "An alternate short description of the asset. Used in place of the filename." + }, + "state": { "type": "string", "example": "\"uploaded\"" } + } + }, + "example": { "name": "foo-1.0.0-osx.zip", "label": "Mac binary" } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/release-asset" }, + "examples": { + "default": { "$ref": "#/components/examples/release-asset" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "releases" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a release asset", + "description": "", + "tags": ["repos"], + "operationId": "repos/delete-release-asset", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#delete-a-release-asset" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/asset_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "releases" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/releases/latest": { + "get": { + "summary": "Get the latest release", + "description": "View the latest published full release for the repository.\n\nThe latest release is the most recent non-prerelease, non-draft release, sorted by the `created_at` attribute. The `created_at` attribute is the date of the commit used for the release, and not the date when the release was drafted or published.", + "tags": ["repos"], + "operationId": "repos/get-latest-release", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-the-latest-release" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/release" }, + "examples": { + "default": { "$ref": "#/components/examples/release" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "releases" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/releases/tags/{tag}": { + "get": { + "summary": "Get a release by tag name", + "description": "Get a published release with the specified tag.", + "tags": ["repos"], + "operationId": "repos/get-release-by-tag", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-a-release-by-tag-name" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "tag", + "description": "tag+ parameter", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/release" }, + "examples": { + "default": { "$ref": "#/components/examples/release" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "releases" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/releases/{release_id}": { + "get": { + "summary": "Get a release", + "description": "**Note:** This returns an `upload_url` key corresponding to the endpoint for uploading release assets. This key is a [hypermedia resource](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia).", + "tags": ["repos"], + "operationId": "repos/get-release", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-a-release" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/release_id" } + ], + "responses": { + "200": { + "description": "**Note:** This returns an `upload_url` key corresponding to the endpoint for uploading release assets. This key is a [hypermedia resource](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia).", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/release" }, + "examples": { + "default": { "$ref": "#/components/examples/release" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "releases" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a release", + "description": "Users with push access to the repository can edit a release.", + "tags": ["repos"], + "operationId": "repos/update-release", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#update-a-release" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/release_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tag_name": { + "type": "string", + "description": "The name of the tag." + }, + "target_commitish": { + "type": "string", + "description": "Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually `master`)." + }, + "name": { + "type": "string", + "description": "The name of the release." + }, + "body": { + "type": "string", + "description": "Text describing the contents of the tag." + }, + "draft": { + "type": "boolean", + "description": "`true` makes the release a draft, and `false` publishes the release." + }, + "prerelease": { + "type": "boolean", + "description": "`true` to identify the release as a prerelease, `false` to identify the release as a full release." + } + } + }, + "example": { + "tag_name": "v1.0.0", + "target_commitish": "master", + "name": "v1.0.0", + "body": "Description of the release", + "draft": false, + "prerelease": false + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/release" }, + "examples": { + "default": { "$ref": "#/components/examples/release" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "releases" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a release", + "description": "Users with push access to the repository can delete a release.", + "tags": ["repos"], + "operationId": "repos/delete-release", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#delete-a-release" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/release_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "releases" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/releases/{release_id}/assets": { + "get": { + "summary": "List release assets", + "description": "", + "tags": ["repos"], + "operationId": "repos/list-release-assets", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#list-release-assets" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/release_id" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/release-asset" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/release-asset-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "releases" + }, + "x-octokit": {} + }, + "post": { + "summary": "Upload a release asset", + "description": "This endpoint makes use of [a Hypermedia relation](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia) to determine which URL to access. The endpoint you call to upload release assets is specific to your release. Use the `upload_url` returned in\nthe response of the [Create a release endpoint](https://docs.github.com/rest/reference/repos#create-a-release) to upload a release asset.\n\nYou need to use an HTTP client which supports [SNI](http://en.wikipedia.org/wiki/Server_Name_Indication) to make calls to this endpoint.\n\nMost libraries will set the required `Content-Length` header automatically. Use the required `Content-Type` header to provide the media type of the asset. For a list of media types, see [Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml). For example: \n\n`application/zip`\n\nGitHub expects the asset data in its raw binary form, rather than JSON. You will send the raw binary content of the asset as the request body. Everything else about the endpoint is the same as the rest of the API. For example,\nyou'll still need to pass your authentication to be able to upload an asset.\n\nWhen an upstream failure occurs, you will receive a `502 Bad Gateway` status. This may leave an empty asset with a state of `starter`. It can be safely deleted.\n\n**Notes:**\n* GitHub renames asset filenames that have special characters, non-alphanumeric characters, and leading or trailing periods. The \"[List assets for a release](https://docs.github.com/rest/reference/repos#list-assets-for-a-release)\"\nendpoint lists the renamed filenames. For more information and help, contact [GitHub Support](https://github.com/contact).\n* If you upload an asset with the same filename as another uploaded asset, you'll receive an error and must delete the old file before you can re-upload the new asset.", + "tags": ["repos"], + "operationId": "repos/upload-release-asset", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#upload-a-release-asset" + }, + "servers": [ + { + "url": "{origin}", + "variables": { + "origin": { + "default": "https://uploads.github.com", + "description": "The URL origin (protocol + host name + port) is included in `upload_url` returned in the response of the \"Create a release\" endpoint" + } + } + } + ], + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/release_id" }, + { "name": "name", "in": "query", "schema": { "type": "string" } }, + { "name": "label", "in": "query", "schema": { "type": "string" } } + ], + "requestBody": { + "content": { + "*/*": { + "schema": { "type": "string", "description": "The raw file data" } + } + } + }, + "responses": { + "201": { + "description": "Response for successful upload", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/release-asset" }, + "examples": { + "response-for-successful-upload": { + "$ref": "#/components/examples/release-asset-response-for-successful-upload" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "releases" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/secret-scanning/alerts": { + "get": { + "summary": "List secret scanning alerts for a repository", + "description": "Lists all secret scanning alerts for a private repository, from newest to oldest. To use this endpoint, you must be an administrator for the repository or organization, and you must use an access token with the `repo` scope or `security_events` scope.\n\nGitHub Apps must have the `secret_scanning_alerts` read permission to use this endpoint.", + "tags": ["secret-scanning"], + "operationId": "secret-scanning/list-alerts-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/secret-scanning#list-secret-scanning-alerts-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "state", + "in": "query", + "description": "Set to `open` or `resolved` to only list secret scanning alerts in a specific state.", + "required": false, + "schema": { "type": "string", "enum": ["open", "resolved"] } + }, + { "$ref": "#/components/parameters/page" }, + { "$ref": "#/components/parameters/per_page" } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/secret-scanning-alert" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/secret-scanning-alert-list" + } + } + } + } + }, + "404": { + "description": "Repository is public or secret scanning is disabled for the repository" + }, + "503": { "$ref": "#/components/responses/service_unavailable" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "secret-scanning", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}": { + "get": { + "summary": "Get a secret scanning alert", + "description": "Gets a single secret scanning alert detected in a private repository. To use this endpoint, you must be an administrator for the repository or organization, and you must use an access token with the `repo` scope or `security_events` scope.\n\nGitHub Apps must have the `secret_scanning_alerts` read permission to use this endpoint.", + "tags": ["secret-scanning"], + "operationId": "secret-scanning/get-alert", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/secret-scanning#get-a-secret-scanning-alert" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/alert_number" } + ], + "responses": { + "200": { + "description": "Default response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/secret-scanning-alert" + }, + "examples": { + "default": { + "$ref": "#/components/examples/secret-scanning-alert-open" + } + } + } + } + }, + "404": { + "description": "Repository is public, or secret scanning is disabled for the repository, or the resource is not found" + }, + "503": { "$ref": "#/components/responses/service_unavailable" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "secret-scanning", + "subcategory": null + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update a secret scanning alert", + "description": "Updates the status of a secret scanning alert in a private repository. To use this endpoint, you must be an administrator for the repository or organization, and you must use an access token with the `repo` scope or `security_events` scope.\n\nGitHub Apps must have the `secret_scanning_alerts` write permission to use this endpoint.", + "operationId": "secret-scanning/update-alert", + "tags": ["secret-scanning"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/secret-scanning#update-a-secret-scanning-alert" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/alert_number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "state": { + "$ref": "#/components/schemas/secret-scanning-alert-state" + }, + "resolution": { + "$ref": "#/components/schemas/secret-scanning-alert-resolution" + } + }, + "required": ["state"] + }, + "example": { "state": "resolved", "resolution": "false_positive" } + } + } + }, + "responses": { + "200": { + "description": "Default response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/secret-scanning-alert" + }, + "examples": { + "default": { + "$ref": "#/components/examples/secret-scanning-alert-resolved" + } + } + } + } + }, + "404": { + "description": "Repository is public, or secret scanning is disabled for the repository, or the resource is not found" + }, + "422": { "description": "State does not match the resolution" }, + "503": { "$ref": "#/components/responses/service_unavailable" } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": false, + "previews": [], + "category": "secret-scanning" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/stargazers": { + "get": { + "summary": "List stargazers", + "description": "Lists the people that have starred the repository.\n\nYou can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header:", + "tags": ["activity"], + "operationId": "activity/list-stargazers-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#list-stargazers" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "examples": { + "default-response": { + "$ref": "#/components/examples/simple-user-items-default-response" + } + } + }, + "application/vnd.github.v3.star+json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/stargazer" } + }, + "examples": { + "alternative-response-with-star-creation-timestamps": { + "$ref": "#/components/examples/stargazer-items-alternative-response-with-star-creation-timestamps" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "activity", + "subcategory": "starring" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/stats/code_frequency": { + "get": { + "summary": "Get the weekly commit activity", + "description": "Returns a weekly aggregate of the number of additions and deletions pushed to a repository.", + "tags": ["repos"], + "operationId": "repos/get-code-frequency-stats", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-the-weekly-commit-activity" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "Returns a weekly aggregate of the number of additions and deletions pushed to a repository.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/code-frequency-stat" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-frequency-stat-items" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "statistics" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/stats/commit_activity": { + "get": { + "summary": "Get the last year of commit activity", + "description": "Returns the last year of commit activity grouped by week. The `days` array is a group of commits per day, starting on `Sunday`.", + "tags": ["repos"], + "operationId": "repos/get-commit-activity-stats", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-the-last-year-of-commit-activity" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/commit-activity" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/commit-activity-items" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "statistics" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/stats/contributors": { + "get": { + "summary": "Get all contributor commit activity", + "description": "\nReturns the `total` number of commits authored by the contributor. In addition, the response includes a Weekly Hash (`weeks` array) with the following information:\n\n* `w` - Start of the week, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time).\n* `a` - Number of additions\n* `d` - Number of deletions\n* `c` - Number of commits", + "tags": ["repos"], + "operationId": "repos/get-contributors-stats", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-all-contributor-commit-activity" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "* `w` - Start of the week, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time).\n* `a` - Number of additions\n* `d` - Number of deletions\n* `c` - Number of commits", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/contributor-activity" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/contributor-activity-items" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "statistics" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/stats/participation": { + "get": { + "summary": "Get the weekly commit count", + "description": "Returns the total commit counts for the `owner` and total commit counts in `all`. `all` is everyone combined, including the `owner` in the last 52 weeks. If you'd like to get the commit counts for non-owners, you can subtract `owner` from `all`.\n\nThe array order is oldest week (index 0) to most recent week.", + "tags": ["repos"], + "operationId": "repos/get-participation-stats", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-the-weekly-commit-count" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "The array order is oldest week (index 0) to most recent week.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/participation-stats" + }, + "examples": { + "default": { + "$ref": "#/components/examples/participation-stats" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "statistics" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/stats/punch_card": { + "get": { + "summary": "Get the hourly commit count for each day", + "description": "Each array contains the day number, hour number, and number of commits:\n\n* `0-6`: Sunday - Saturday\n* `0-23`: Hour of day\n* Number of commits\n\nFor example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits.", + "tags": ["repos"], + "operationId": "repos/get-punch-card-stats", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-the-hourly-commit-count-for-each-day" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/code-frequency-stat" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-frequency-stat-items-2" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "statistics" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/statuses/{sha}": { + "post": { + "summary": "Create a commit status", + "description": "Users with push access in a repository can create commit statuses for a given SHA.\n\nNote: there is a limit of 1000 statuses per `sha` and `context` within a repository. Attempts to create more than 1000 statuses will result in a validation error.", + "tags": ["repos"], + "operationId": "repos/create-commit-status", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#create-a-commit-status" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "sha", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "state": { + "type": "string", + "description": "The state of the status. Can be one of `error`, `failure`, `pending`, or `success`.", + "enum": ["error", "failure", "pending", "success"] + }, + "target_url": { + "type": "string", + "description": "The target URL to associate with this status. This URL will be linked from the GitHub UI to allow users to easily see the source of the status. \nFor example, if your continuous integration system is posting build status, you would want to provide the deep link for the build output for this specific SHA: \n`http://ci.example.com/user/repo/build/sha`" + }, + "description": { + "type": "string", + "description": "A short description of the status." + }, + "context": { + "type": "string", + "description": "A string label to differentiate this status from the status of other systems.", + "default": "default" + } + }, + "required": ["state"] + }, + "example": { + "state": "success", + "target_url": "https://example.com/build/status", + "description": "The build succeeded!", + "context": "continuous-integration/jenkins" + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/status" }, + "examples": { + "default": { "$ref": "#/components/examples/status" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { "type": "string" } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "statuses" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/subscribers": { + "get": { + "summary": "List watchers", + "description": "Lists the people watching the specified repository.", + "tags": ["activity"], + "operationId": "activity/list-watchers-for-repo", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#list-watchers" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "activity", + "subcategory": "watching" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/subscription": { + "get": { + "summary": "Get a repository subscription", + "description": "", + "tags": ["activity"], + "operationId": "activity/get-repo-subscription", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#get-a-repository-subscription" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "Response if you subscribe to the repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/repository-subscription" + }, + "examples": { + "response-if-you-subscribe-to-the-repository": { + "$ref": "#/components/examples/repository-subscription-response-if-you-subscribe-to-the-repository" + } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { + "description": "Response if you don't subscribe to the repository" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "activity", + "subcategory": "watching" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set a repository subscription", + "description": "If you would like to watch a repository, set `subscribed` to `true`. If you would like to ignore notifications made within a repository, set `ignored` to `true`. If you would like to stop watching a repository, [delete the repository's subscription](https://docs.github.com/rest/reference/activity#delete-a-repository-subscription) completely.", + "tags": ["activity"], + "operationId": "activity/set-repo-subscription", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#set-a-repository-subscription" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "subscribed": { + "type": "boolean", + "description": "Determines if notifications should be received from this repository." + }, + "ignored": { + "type": "boolean", + "description": "Determines if all notifications should be blocked from this repository." + } + } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/repository-subscription" + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-subscription" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "activity", + "subcategory": "watching" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a repository subscription", + "description": "This endpoint should only be used to stop watching a repository. To control whether or not you wish to receive notifications from a repository, [set the repository's subscription manually](https://docs.github.com/rest/reference/activity#set-a-repository-subscription).", + "tags": ["activity"], + "operationId": "activity/delete-repo-subscription", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#delete-a-repository-subscription" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "activity", + "subcategory": "watching" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/tags": { + "get": { + "summary": "List repository tags", + "description": "", + "tags": ["repos"], + "operationId": "repos/list-tags", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#list-repository-tags" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/tag" } + }, + "examples": { + "default": { "$ref": "#/components/examples/tag-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/tarball/{ref}": { + "get": { + "summary": "Download a repository archive (tar)", + "description": "Gets a redirect URL to download a tar archive for a repository. If you omit `:ref`, the repository’s default branch (usually\n`master`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use\nthe `Location` header to make a second `GET` request.\n**Note**: For private repositories, these links are temporary and expire after five minutes.", + "tags": ["repos"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#download-a-repository-archive" + }, + "operationId": "repos/download-tarball-archive", + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "ref", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "302": { + "description": "response", + "headers": { + "Location": { + "example": "https://codeload.github.com/me/myprivate/legacy.zip/master?login=me&token=thistokenexpires", + "schema": { "type": "string" } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "contents" + }, + "x-octokit": { + "changes": [ + { + "type": "OPERATION", + "date": "2020-09-17", + "before": { "operationId": "repos/download-archive" } + } + ] + } + } + }, + "/repos/{owner}/{repo}/teams": { + "get": { + "summary": "List repository teams", + "description": "", + "tags": ["repos"], + "operationId": "repos/list-teams", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#list-repository-teams" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/team" } + }, + "examples": { + "default": { "$ref": "#/components/examples/team-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/topics": { + "get": { + "summary": "Get all repository topics", + "description": "", + "tags": ["repos"], + "operationId": "repos/get-all-topics", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#get-all-repository-topics" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/topic" }, + "examples": { + "default": { "$ref": "#/components/examples/topic" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "mercy", + "note": "The `topics` property for repositories on GitHub is currently available for developers to preview. To view the `topics` property in calls that return repository results, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.mercy-preview+json\n```" + } + ], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + }, + "put": { + "summary": "Replace all repository topics", + "description": "", + "tags": ["repos"], + "operationId": "repos/replace-all-topics", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#replace-all-repository-topics" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "names": { + "type": "array", + "description": "An array of topics to add to the repository. Pass one or more topics to _replace_ the set of existing topics. Send an empty array (`[]`) to clear all topics from the repository. **Note:** Topic `names` cannot contain uppercase letters.", + "items": { "type": "string" } + } + }, + "required": ["names"] + }, + "example": { "names": ["octocat", "atom", "electron", "api"] } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/topic" }, + "examples": { + "default": { "$ref": "#/components/examples/topic" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" }, + "422": { "$ref": "#/components/responses/validation_failed_simple" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "mercy", + "note": "The `topics` property for repositories on GitHub is currently available for developers to preview. To view the `topics` property in calls that return repository results, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.mercy-preview+json\n```" + } + ], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/traffic/clones": { + "get": { + "summary": "Get repository clones", + "description": "Get the total number of clones and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday.", + "tags": ["repos"], + "operationId": "repos/get-clones", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-repository-clones" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/per" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/clone-traffic" }, + "examples": { + "default": { "$ref": "#/components/examples/clone-traffic" } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "traffic" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/traffic/popular/paths": { + "get": { + "summary": "Get top referral paths", + "description": "Get the top 10 popular contents over the last 14 days.", + "tags": ["repos"], + "operationId": "repos/get-top-paths", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-top-referral-paths" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/content-traffic" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/content-traffic-items" + } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "traffic" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/traffic/popular/referrers": { + "get": { + "summary": "Get top referral sources", + "description": "Get the top 10 referrers over the last 14 days.", + "tags": ["repos"], + "operationId": "repos/get-top-referrers", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-top-referral-sources" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/referrer-traffic" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/referrer-traffic-items" + } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "traffic" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/traffic/views": { + "get": { + "summary": "Get page views", + "description": "Get the total number of views and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday.", + "tags": ["repos"], + "operationId": "repos/get-views", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#get-page-views" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { "$ref": "#/components/parameters/per" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/view-traffic" }, + "examples": { + "default": { "$ref": "#/components/examples/view-traffic" } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "traffic" + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/transfer": { + "post": { + "summary": "Transfer a repository", + "description": "A transfer request will need to be accepted by the new owner when transferring a personal repository to another user. The response will contain the original `owner`, and the transfer will continue asynchronously. For more details on the requirements to transfer personal and organization-owned repositories, see [about repository transfers](https://help.github.com/articles/about-repository-transfers/).", + "tags": ["repos"], + "operationId": "repos/transfer", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#transfer-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "new_owner": { + "type": "string", + "description": "**Required:** The username or organization name the repository will be transferred to." + }, + "team_ids": { + "type": "array", + "description": "ID of the team or teams to add to the repository. Teams can only be added to organization-owned repositories.", + "items": { "type": "integer" } + } + } + }, + "example": { "new_owner": "github", "team_ids": [12, 345] } + } + } + }, + "responses": { + "202": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/repository" }, + "examples": { + "default": { "$ref": "#/components/examples/repository" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/vulnerability-alerts": { + "get": { + "summary": "Check if vulnerability alerts are enabled for a repository", + "description": "Shows whether dependency alerts are enabled or disabled for a repository. The authenticated user must have admin access to the repository. For more information, see \"[About security alerts for vulnerable dependencies](https://help.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)\".", + "tags": ["repos"], + "operationId": "repos/check-vulnerability-alerts", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#check-if-vulnerability-alerts-are-enabled-for-a-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "204": { + "description": "Response if repository is enabled with vulnerability alerts" + }, + "404": { + "description": "Response if repository is not enabled with vulnerability alerts" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "dorian", + "note": "Enabling and disabling dependency alerts for a repository using the REST API is currently available for developers to preview. To access these new endpoints during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.dorian-preview+json\n```" + } + ], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + }, + "put": { + "summary": "Enable vulnerability alerts", + "description": "Enables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see \"[About security alerts for vulnerable dependencies](https://help.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)\".", + "tags": ["repos"], + "operationId": "repos/enable-vulnerability-alerts", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#enable-vulnerability-alerts" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "dorian", + "note": "Enabling and disabling dependency alerts for a repository using the REST API is currently available for developers to preview. To access these new endpoints during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.dorian-preview+json\n```" + } + ], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + }, + "delete": { + "summary": "Disable vulnerability alerts", + "description": "Disables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see \"[About security alerts for vulnerable dependencies](https://help.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)\".", + "tags": ["repos"], + "operationId": "repos/disable-vulnerability-alerts", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#disable-vulnerability-alerts" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "dorian", + "note": "Enabling and disabling dependency alerts for a repository using the REST API is currently available for developers to preview. To access these new endpoints during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.dorian-preview+json\n```" + } + ], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repos/{owner}/{repo}/zipball/{ref}": { + "get": { + "summary": "Download a repository archive (zip)", + "description": "Gets a redirect URL to download a zip archive for a repository. If you omit `:ref`, the repository’s default branch (usually\n`master`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use\nthe `Location` header to make a second `GET` request.\n**Note**: For private repositories, these links are temporary and expire after five minutes.", + "tags": ["repos"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#download-a-repository-archive" + }, + "operationId": "repos/download-zipball-archive", + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" }, + { + "name": "ref", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "302": { + "description": "response", + "headers": { + "Location": { + "example": "https://codeload.github.com/me/myprivate/legacy.zip/master?login=me&token=thistokenexpires", + "schema": { "type": "string" } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": "contents" + }, + "x-octokit": { + "changes": [ + { + "type": "OPERATION", + "date": "2020-09-17", + "before": { "operationId": "repos/download-archive" } + } + ] + } + } + }, + "/repos/{template_owner}/{template_repo}/generate": { + "post": { + "summary": "Create a repository using a template", + "description": "Creates a new repository using a repository template. Use the `template_owner` and `template_repo` route parameters to specify the repository to use as the template. The authenticated user must own or be a member of an organization that owns the repository. To check if a repository is available to use as a template, get the repository's information using the [Get a repository](https://docs.github.com/rest/reference/repos#get-a-repository) endpoint and check that the `is_template` key is `true`.\n\n**OAuth scope requirements**\n\nWhen using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include:\n\n* `public_repo` scope or `repo` scope to create a public repository\n* `repo` scope to create a private repository", + "tags": ["repos"], + "operationId": "repos/create-using-template", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#create-a-repository-using-a-template" + }, + "parameters": [ + { + "name": "template_owner", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + { + "name": "template_repo", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "owner": { + "type": "string", + "description": "The organization or person who will own the new repository. To create a new repository in an organization, the authenticated user must be a member of the specified organization." + }, + "name": { + "type": "string", + "description": "The name of the new repository." + }, + "description": { + "type": "string", + "description": "A short description of the new repository." + }, + "include_all_branches": { + "type": "boolean", + "description": "Set to `true` to include the directory structure and files from all branches in the template repository, and not just the default branch. Default: `false`.", + "default": false + }, + "private": { + "type": "boolean", + "description": "Either `true` to create a new private repository or `false` to create a new public one.", + "default": false + } + }, + "required": ["name"] + }, + "example": { + "owner": "octocat", + "name": "Hello-World", + "description": "This is your first repository", + "include_all_branches": false, + "private": false + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/repository" }, + "examples": { + "default": { "$ref": "#/components/examples/repository-3" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World", + "schema": { "type": "string" } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "baptiste", + "note": "Creating and using repository templates is currently available for developers to preview. To access this new endpoint during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n\n```shell\napplication/vnd.github.baptiste-preview+json\n```" + } + ], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/repositories": { + "get": { + "summary": "List public repositories", + "description": "Lists all public repositories in the order that they were created.\n\nNote: Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of repositories.", + "tags": ["repos"], + "operationId": "repos/list-public", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#list-public-repositories" + }, + "parameters": [{ "$ref": "#/components/parameters/since-repo" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/minimal-repository" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/public-repository-items" + } + } + } + }, + "headers": { + "Link": { + "example": "; rel=\"next\"", + "schema": { "type": "string" } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/scim/v2/enterprises/{enterprise}/Groups": { + "get": { + "summary": "List provisioned SCIM groups for an enterprise", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.", + "operationId": "enterprise-admin/list-provisioned-groups-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#list-provisioned-scim groups-for-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/start_index" }, + { "$ref": "#/components/parameters/count" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/scim-group-list-enterprise" + }, + "examples": { + "default": { + "$ref": "#/components/examples/scim-enterprise-group-list" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": true, + "previews": [], + "category": "enterprise-admin", + "subcategory": "scim" + }, + "x-octokit": {} + }, + "post": { + "summary": "Provision a SCIM enterprise group and invite users", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.\n\nProvision an enterprise group, and invite users to the group. This sends invitation emails to the email address of the invited users to join the GitHub organization that the SCIM group corresponds to.", + "operationId": "enterprise-admin/provision-and-invite-enterprise-group", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#provision-a-scim-enterprise-group-and-invite-users" + }, + "parameters": [{ "$ref": "#/components/parameters/enterprise" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "schemas": { + "type": "array", + "description": "The SCIM schema URIs.", + "items": { "type": "string" } + }, + "displayName": { + "type": "string", + "description": "The name of the SCIM group. This must match the GitHub organization that the group maps to." + }, + "members": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "The SCIM user ID for a user." + } + }, + "required": ["value"] + } + } + }, + "required": ["schemas", "displayName"] + }, + "example": { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"], + "displayName": "octo-org", + "members": [ + { "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" }, + { "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5" } + ] + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/scim-enterprise-group" + }, + "examples": { + "default": { + "$ref": "#/components/examples/scim-enterprise-group" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": true, + "previews": [], + "category": "enterprise-admin", + "subcategory": "scim" + }, + "x-octokit": {} + } + }, + "/scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}": { + "get": { + "summary": "Get SCIM provisioning information for an enterprise group", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.", + "operationId": "enterprise-admin/get-provisioning-information-for-enterprise-group", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#get-scim-provisioning-information-for-an-enterprise group" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/scim_group_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/scim-enterprise-group" + }, + "examples": { + "default": { + "$ref": "#/components/examples/scim-enterprise-group" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": true, + "previews": [], + "category": "enterprise-admin", + "subcategory": "scim" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set SCIM information for a provisioned enterprise group", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.\n\nReplaces an existing provisioned group’s information. You must provide all the information required for the group as if you were provisioning it for the first time. Any existing group information that you don't provide will be removed, including group membership. If you want to only update a specific attribute, use the [Update an attribute for a SCIM enterprise group](#update-an-attribute-for-a-scim-enterprise-group) endpoint instead.", + "operationId": "enterprise-admin/set-information-for-provisioned-enterprise-group", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#set-scim-information-for-a-provisioned-enterprise-group" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/scim_group_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "schemas": { + "type": "array", + "description": "The SCIM schema URIs.", + "items": { "type": "string" } + }, + "displayName": { + "type": "string", + "description": "The name of the SCIM group. This must match the GitHub organization that the group maps to." + }, + "members": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "The SCIM user ID for a user." + } + }, + "required": ["value"] + } + } + }, + "required": ["schemas", "displayName"] + }, + "example": { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"], + "displayName": "octo-org", + "members": [ + { "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" }, + { "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5" } + ] + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/scim-enterprise-group" + }, + "examples": { + "default": { + "$ref": "#/components/examples/scim-enterprise-group" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": true, + "previews": [], + "category": "enterprise-admin", + "subcategory": "scim" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update an attribute for a SCIM enterprise group", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.\n\nAllows you to change a provisioned group’s individual attributes. To change a group’s values, you must provide a specific Operations JSON format that contains at least one of the add, remove, or replace operations. For examples and more information on the SCIM operations format, see the [SCIM specification](https://tools.ietf.org/html/rfc7644#section-3.5.2).", + "operationId": "enterprise-admin/update-attribute-for-enterprise-group", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#update-an-attribute-for-a-scim-enterprise-group" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/scim_group_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "schemas": { + "type": "array", + "description": "The SCIM schema URIs.", + "items": { "type": "string" } + }, + "Operations": { + "type": "array", + "description": "Array of [SCIM operations](https://tools.ietf.org/html/rfc7644#section-3.5.2).", + "items": { "type": "object" } + } + }, + "required": ["schemas", "Operations"] + }, + "example": { + "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], + "Operations": [ + { + "op": "remove", + "path": "members", + "value": [ + { "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5" } + ] + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/scim-enterprise-group" + }, + "examples": { + "default": { + "$ref": "#/components/examples/scim-enterprise-group-2" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": true, + "previews": [], + "category": "enterprise-admin", + "subcategory": "scim" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a SCIM group from an enterprise", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.", + "operationId": "enterprise-admin/delete-scim-group-from-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#delete-a-scim-group-from-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/scim_group_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": true, + "previews": [], + "category": "enterprise-admin", + "subcategory": "scim" + }, + "x-octokit": {} + } + }, + "/scim/v2/enterprises/{enterprise}/Users": { + "get": { + "summary": "List SCIM provisioned identities for an enterprise", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.\n\nRetrieves a paginated list of all provisioned enterprise members, including pending invitations.\n\nWhen a user with a SAML-provisioned external identity leaves (or is removed from) an enterprise, the account's metadata is immediately removed. However, the returned list of user accounts might not always match the organization or enterprise member list you see on GitHub. This can happen in certain cases where an external identity associated with an organization will not match an organization member:\n - When a user with a SCIM-provisioned external identity is removed from an enterprise, the account's metadata is preserved to allow the user to re-join the organization in the future.\n - When inviting a user to join an organization, you can expect to see their external identity in the results before they accept the invitation, or if the invitation is cancelled (or never accepted).\n - When a user is invited over SCIM, an external identity is created that matches with the invitee's email address. However, this identity is only linked to a user account when the user accepts the invitation by going through SAML SSO.\n\nThe returned list of external identities can include an entry for a `null` user. These are unlinked SAML identities that are created when a user goes through the following Single Sign-On (SSO) process but does not sign in to their GitHub account after completing SSO:\n\n1. The user is granted access by the IdP and is not a member of the GitHub enterprise.\n\n1. The user attempts to access the GitHub enterprise and initiates the SAML SSO process, and is not currently signed in to their GitHub account.\n\n1. After successfully authenticating with the SAML SSO IdP, the `null` external identity entry is created and the user is prompted to sign in to their GitHub account:\n - If the user signs in, their GitHub account is linked to this entry.\n - If the user does not sign in (or does not create a new account when prompted), they are not added to the GitHub enterprise, and the external identity `null` entry remains in place.", + "operationId": "enterprise-admin/list-provisioned-identities-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#list-scim-provisioned-identities-for-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/start_index" }, + { "$ref": "#/components/parameters/count" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/scim-user-list-enterprise" + }, + "examples": { + "default": { + "$ref": "#/components/examples/scim-enterprise-user-list" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": true, + "previews": [], + "category": "enterprise-admin", + "subcategory": "scim" + }, + "x-octokit": {} + }, + "post": { + "summary": "Provision and invite a SCIM enterprise user", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.\n\nProvision enterprise membership for a user, and send organization invitation emails to the email address.\n\nYou can optionally include the groups a user will be invited to join. If you do not provide a list of `groups`, the user is provisioned for the enterprise, but no organization invitation emails will be sent.", + "operationId": "enterprise-admin/provision-and-invite-enterprise-user", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#provision-and-invite-a-scim-enterprise-user" + }, + "parameters": [{ "$ref": "#/components/parameters/enterprise" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "schemas": { + "type": "array", + "description": "The SCIM schema URIs.", + "items": { "type": "string" } + }, + "userName": { + "type": "string", + "description": "The username for the user." + }, + "name": { + "type": "object", + "properties": { + "givenName": { + "type": "string", + "description": "The first name of the user." + }, + "familyName": { + "type": "string", + "description": "The last name of the user." + } + }, + "required": ["givenName", "familyName"] + }, + "emails": { + "type": "array", + "description": "List of user emails.", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "The email address." + }, + "type": { + "type": "string", + "description": "The type of email address." + }, + "primary": { + "type": "boolean", + "description": "Whether this email address is the primary address." + } + }, + "required": ["value", "type", "primary"] + } + }, + "groups": { + "type": "array", + "description": "List of SCIM group IDs the user is a member of.", + "items": { + "type": "object", + "properties": { "value": { "type": "string" } } + } + } + }, + "required": ["schemas", "userName", "name", "emails"] + }, + "example": { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], + "userName": "mona.octocat@okta.example.com", + "name": { "familyName": "Octocat", "givenName": "Mona" }, + "emails": [ + { + "value": "mona.octocat@okta.example.com", + "type": "work", + "primary": true + } + ], + "groups": [{ "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" }] + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/scim-enterprise-user" + }, + "examples": { + "default": { + "$ref": "#/components/examples/scim-enterprise-user" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": true, + "previews": [], + "category": "enterprise-admin", + "subcategory": "scim" + }, + "x-octokit": {} + } + }, + "/scim/v2/enterprises/{enterprise}/Users/{scim_user_id}": { + "get": { + "summary": "Get SCIM provisioning information for an enterprise user", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.", + "operationId": "enterprise-admin/get-provisioning-information-for-enterprise-user", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#get-scim-provisioning-information-for-an-enterprise-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/scim_user_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/scim-enterprise-user" + }, + "examples": { + "default": { + "$ref": "#/components/examples/scim-enterprise-user" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": true, + "previews": [], + "category": "enterprise-admin", + "subcategory": "scim" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set SCIM information for a provisioned enterprise user", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.\n\nReplaces an existing provisioned user's information. You must provide all the information required for the user as if you were provisioning them for the first time. Any existing user information that you don't provide will be removed. If you want to only update a specific attribute, use the [Update an attribute for a SCIM user](#update-an-attribute-for-an-enterprise-scim-user) endpoint instead.\n\nYou must at least provide the required values for the user: `userName`, `name`, and `emails`.\n\n**Warning:** Setting `active: false` removes the user from the enterprise, deletes the external identity, and deletes the associated `{scim_user_id}`.", + "operationId": "enterprise-admin/set-information-for-provisioned-enterprise-user", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#set-scim-information-for-a-provisioned-enterprise-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/scim_user_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "schemas": { + "type": "array", + "description": "The SCIM schema URIs.", + "items": { "type": "string" } + }, + "userName": { + "type": "string", + "description": "The username for the user." + }, + "name": { + "type": "object", + "properties": { + "givenName": { + "type": "string", + "description": "The first name of the user." + }, + "familyName": { + "type": "string", + "description": "The last name of the user." + } + }, + "required": ["givenName", "familyName"] + }, + "emails": { + "type": "array", + "description": "List of user emails.", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "The email address." + }, + "type": { + "type": "string", + "description": "The type of email address." + }, + "primary": { + "type": "boolean", + "description": "Whether this email address is the primary address." + } + }, + "required": ["value", "type", "primary"] + } + }, + "groups": { + "type": "array", + "description": "List of SCIM group IDs the user is a member of.", + "items": { + "type": "object", + "properties": { "value": { "type": "string" } } + } + } + }, + "required": ["schemas", "userName", "name", "emails"] + }, + "example": { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], + "userName": "mona.octocat@okta.example.com", + "name": { "familyName": "Octocat", "givenName": "Mona" }, + "emails": [ + { + "value": "mona.octocat@okta.example.com", + "type": "work", + "primary": true + } + ], + "groups": [{ "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" }] + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/scim-enterprise-user" + }, + "examples": { + "default": { + "$ref": "#/components/examples/scim-enterprise-user" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": true, + "previews": [], + "category": "enterprise-admin", + "subcategory": "scim" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update an attribute for a SCIM enterprise user", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.\n\nAllows you to change a provisioned user's individual attributes. To change a user's values, you must provide a specific `Operations` JSON format that contains at least one of the `add`, `remove`, or `replace` operations. For examples and more information on the SCIM operations format, see the [SCIM specification](https://tools.ietf.org/html/rfc7644#section-3.5.2).\n\n**Note:** Complicated SCIM `path` selectors that include filters are not supported. For example, a `path` selector defined as `\"path\": \"emails[type eq \\\"work\\\"]\"` will not work.\n\n**Warning:** If you set `active:false` using the `replace` operation (as shown in the JSON example below), it removes the user from the enterprise, deletes the external identity, and deletes the associated `:scim_user_id`.\n\n```\n{\n \"Operations\":[{\n \"op\":\"replace\",\n \"value\":{\n \"active\":false\n }\n }]\n}\n```", + "operationId": "enterprise-admin/update-attribute-for-enterprise-user", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#update-an-attribute-for-a-scim-enterprise-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/scim_user_id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "schemas": { + "type": "array", + "description": "The SCIM schema URIs.", + "items": { "type": "string" } + }, + "Operations": { + "type": "array", + "description": "Array of [SCIM operations](https://tools.ietf.org/html/rfc7644#section-3.5.2).", + "items": { "type": "object" } + } + }, + "required": ["schemas", "Operations"] + }, + "example": { + "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], + "Operations": [ + { + "op": "add", + "path": "emails", + "value": [ + { "value": "monalisa@octocat.github.com", "type": "home" } + ] + }, + { + "op": "replace", + "path": "name.givenName", + "value": "Monalisa" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/scim-enterprise-user" + }, + "examples": { + "default": { + "$ref": "#/components/examples/scim-enterprise-user-2" + } + } + } + } + } + }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": true, + "previews": [], + "category": "enterprise-admin", + "subcategory": "scim" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a SCIM user from an enterprise", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.", + "operationId": "enterprise-admin/delete-user-from-enterprise", + "tags": ["enterprise-admin"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/enterprise-admin#delete-a-scim-user-from-an-enterprise" + }, + "parameters": [ + { "$ref": "#/components/parameters/enterprise" }, + { "$ref": "#/components/parameters/scim_user_id" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "enabledForGitHubApps": true, + "githubCloudOnly": true, + "previews": [], + "category": "enterprise-admin", + "subcategory": "scim" + }, + "x-octokit": {} + } + }, + "/scim/v2/organizations/{org}/Users": { + "get": { + "summary": "List SCIM provisioned identities", + "description": "Retrieves a paginated list of all provisioned organization members, including pending invitations. If you provide the `filter` parameter, the resources for all matching provisions members are returned.\n\nWhen a user with a SAML-provisioned external identity leaves (or is removed from) an organization, the account's metadata is immediately removed. However, the returned list of user accounts might not always match the organization or enterprise member list you see on GitHub. This can happen in certain cases where an external identity associated with an organization will not match an organization member:\n - When a user with a SCIM-provisioned external identity is removed from an organization, the account's metadata is preserved to allow the user to re-join the organization in the future.\n - When inviting a user to join an organization, you can expect to see their external identity in the results before they accept the invitation, or if the invitation is cancelled (or never accepted).\n - When a user is invited over SCIM, an external identity is created that matches with the invitee's email address. However, this identity is only linked to a user account when the user accepts the invitation by going through SAML SSO.\n\nThe returned list of external identities can include an entry for a `null` user. These are unlinked SAML identities that are created when a user goes through the following Single Sign-On (SSO) process but does not sign in to their GitHub account after completing SSO:\n\n1. The user is granted access by the IdP and is not a member of the GitHub organization.\n\n1. The user attempts to access the GitHub organization and initiates the SAML SSO process, and is not currently signed in to their GitHub account.\n\n1. After successfully authenticating with the SAML SSO IdP, the `null` external identity entry is created and the user is prompted to sign in to their GitHub account:\n - If the user signs in, their GitHub account is linked to this entry.\n - If the user does not sign in (or does not create a new account when prompted), they are not added to the GitHub organization, and the external identity `null` entry remains in place.", + "tags": ["scim"], + "operationId": "scim/list-provisioned-identities", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/scim/#list-scim-provisioned-identities" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { + "name": "startIndex", + "description": "Used for pagination: the index of the first result to return.", + "in": "query", + "required": false, + "schema": { "type": "integer" } + }, + { + "name": "count", + "description": "Used for pagination: the number of results to return.", + "in": "query", + "required": false, + "schema": { "type": "integer" } + }, + { + "name": "filter", + "description": "Filters results using the equals query parameter operator (`eq`). You can filter results that are equal to `id`, `userName`, `emails`, and `external_id`. For example, to search for an identity with the `userName` Octocat, you would use this query:\n\n`?filter=userName%20eq%20\\\"Octocat\\\"`.\n\nTo filter results for for the identity with the email `octocat@github.com`, you would use this query:\n\n`?filter=emails%20eq%20\\\"octocat@github.com\\\"`.", + "in": "query", + "required": false, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/scim+json": { + "schema": { "$ref": "#/components/schemas/scim-user-list" }, + "examples": { + "response-with-filter": { + "$ref": "#/components/examples/scim-user-list-response-with-filter" + }, + "response-without-filter": { + "$ref": "#/components/examples/scim-user-list-response-without-filter" + } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "400": { "$ref": "#/components/responses/scim_bad_request" }, + "403": { "$ref": "#/components/responses/scim_forbidden" }, + "404": { "$ref": "#/components/responses/scim_not_found" } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": true, + "previews": [], + "category": "scim", + "subcategory": null + }, + "x-octokit": {} + }, + "post": { + "summary": "Provision and invite a SCIM user", + "description": "Provision organization membership for a user, and send an activation email to the email address.", + "tags": ["scim"], + "operationId": "scim/provision-and-invite-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/scim/#provision-and-invite-a-scim-user" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "responses": { + "201": { + "description": "response", + "content": { + "application/scim+json": { + "schema": { "$ref": "#/components/schemas/scim-user" }, + "examples": { + "default": { "$ref": "#/components/examples/scim-user" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "400": { "$ref": "#/components/responses/scim_bad_request" }, + "403": { "$ref": "#/components/responses/scim_forbidden" }, + "404": { "$ref": "#/components/responses/scim_not_found" }, + "409": { "$ref": "#/components/responses/scim_conflict" }, + "500": { "$ref": "#/components/responses/scim_internal_error" } + }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "userName": { + "description": "Configured by the admin. Could be an email, login, or username", + "example": "someone@example.com", + "type": "string" + }, + "displayName": { + "description": "The name of the user, suitable for display to end-users", + "example": "Jon Doe", + "type": "string" + }, + "name": { + "type": "object", + "properties": { + "givenName": { "type": "string" }, + "familyName": { "type": "string" }, + "formatted": { "type": "string" } + }, + "required": ["givenName", "familyName"], + "example": "Jane User" + }, + "emails": { + "description": "user emails", + "example": ["someone@example.com", "another@example.com"], + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "value": { "type": "string" }, + "primary": { "type": "boolean" }, + "type": { "type": "string" } + }, + "required": ["value"] + } + }, + "schemas": { "type": "array", "items": { "type": "string" } }, + "externalId": { "type": "string" }, + "groups": { "type": "array", "items": { "type": "string" } }, + "active": { "type": "boolean" } + }, + "required": ["userName", "name", "emails"] + } + } + } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": true, + "previews": [], + "category": "scim", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/scim/v2/organizations/{org}/Users/{scim_user_id}": { + "get": { + "summary": "Get SCIM provisioning information for a user", + "description": "", + "tags": ["scim"], + "operationId": "scim/get-provisioning-information-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/scim/#get-scim-provisioning-information-for-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/scim_user_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/scim+json": { + "schema": { "$ref": "#/components/schemas/scim-user" }, + "examples": { + "default": { "$ref": "#/components/examples/scim-user" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/scim_forbidden" }, + "404": { "$ref": "#/components/responses/scim_not_found" } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": true, + "previews": [], + "category": "scim", + "subcategory": null + }, + "x-octokit": {} + }, + "put": { + "summary": "Update a provisioned organization membership", + "description": "Replaces an existing provisioned user's information. You must provide all the information required for the user as if you were provisioning them for the first time. Any existing user information that you don't provide will be removed. If you want to only update a specific attribute, use the [Update an attribute for a SCIM user](https://docs.github.com/rest/reference/scim#update-an-attribute-for-a-scim-user) endpoint instead.\n\nYou must at least provide the required values for the user: `userName`, `name`, and `emails`.\n\n**Warning:** Setting `active: false` removes the user from the organization, deletes the external identity, and deletes the associated `{scim_user_id}`.", + "tags": ["scim"], + "operationId": "scim/set-information-for-provisioned-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/scim/#set-scim-information-for-a-provisioned-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/scim_user_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/scim+json": { + "schema": { "$ref": "#/components/schemas/scim-user" }, + "examples": { + "default": { "$ref": "#/components/examples/scim-user" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/scim_forbidden" }, + "404": { "$ref": "#/components/responses/scim_not_found" } + }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "schemas": { "type": "array", "items": { "type": "string" } }, + "displayName": { + "description": "The name of the user, suitable for display to end-users", + "example": "Jon Doe", + "type": "string" + }, + "externalId": { "type": "string" }, + "groups": { "type": "array", "items": { "type": "string" } }, + "active": { "type": "boolean" }, + "userName": { + "description": "Configured by the admin. Could be an email, login, or username", + "example": "someone@example.com", + "type": "string" + }, + "name": { + "type": "object", + "properties": { + "givenName": { "type": "string" }, + "familyName": { "type": "string" }, + "formatted": { "type": "string" } + }, + "required": ["givenName", "familyName"], + "example": "Jane User" + }, + "emails": { + "description": "user emails", + "example": ["someone@example.com", "another@example.com"], + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "type": { "type": "string" }, + "value": { "type": "string" }, + "primary": { "type": "boolean" } + }, + "required": ["value"] + } + } + }, + "required": ["userName", "name", "emails"] + } + } + } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": true, + "previews": [], + "category": "scim", + "subcategory": null + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update an attribute for a SCIM user", + "description": "Allows you to change a provisioned user's individual attributes. To change a user's values, you must provide a specific `Operations` JSON format that contains at least one of the `add`, `remove`, or `replace` operations. For examples and more information on the SCIM operations format, see the [SCIM specification](https://tools.ietf.org/html/rfc7644#section-3.5.2).\n\n**Note:** Complicated SCIM `path` selectors that include filters are not supported. For example, a `path` selector defined as `\"path\": \"emails[type eq \\\"work\\\"]\"` will not work.\n\n**Warning:** If you set `active:false` using the `replace` operation (as shown in the JSON example below), it removes the user from the organization, deletes the external identity, and deletes the associated `:scim_user_id`.\n\n```\n{\n \"Operations\":[{\n \"op\":\"replace\",\n \"value\":{\n \"active\":false\n }\n }]\n}\n```", + "tags": ["scim"], + "operationId": "scim/update-attribute-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/scim/#update-an-attribute-for-a-scim-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/scim_user_id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/scim+json": { + "schema": { "$ref": "#/components/schemas/scim-user" }, + "examples": { + "default": { "$ref": "#/components/examples/scim-user" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "400": { "$ref": "#/components/responses/scim_bad_request" }, + "403": { "$ref": "#/components/responses/scim_forbidden" }, + "404": { "$ref": "#/components/responses/scim_not_found" }, + "429": { + "description": "Too many requests", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/basic-error" } + } + } + } + }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "schemas": { "type": "array", "items": { "type": "string" } }, + "Operations": { + "description": "Set of operations to be performed", + "example": [ + { "op": "replace", "value": { "active": false } } + ], + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "op": { + "type": "string", + "enum": ["add", "remove", "replace"] + }, + "path": { "type": "string" }, + "value": { + "oneOf": [ + { + "type": "object", + "properties": { + "active": { + "type": "boolean", + "nullable": true + }, + "userName": { + "type": "string", + "nullable": true + }, + "externalId": { + "type": "string", + "nullable": true + }, + "givenName": { + "type": "string", + "nullable": true + }, + "familyName": { + "type": "string", + "nullable": true + } + } + }, + { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { "type": "string" }, + "primary": { "type": "boolean" } + } + } + }, + { "type": "string" } + ] + } + }, + "required": ["op"] + } + } + }, + "required": ["Operations"], + "type": "object" + } + } + } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": true, + "previews": [], + "category": "scim", + "subcategory": null + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a SCIM user from an organization", + "description": "", + "tags": ["scim"], + "operationId": "scim/delete-user-from-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/scim/#delete-a-scim-user-from-an-organization" + }, + "parameters": [ + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/scim_user_id" } + ], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/scim_forbidden" }, + "404": { "$ref": "#/components/responses/scim_not_found" } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": true, + "previews": [], + "category": "scim", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/search/code": { + "get": { + "summary": "Search code", + "description": "Searches for query terms inside of a file. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination).\n\nWhen searching for code, you can get text match metadata for the file **content** and file **path** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata).\n\nFor example, if you want to find the definition of the `addClass` function inside [jQuery](https://github.com/jquery/jquery) repository, your query would look something like this:\n\n`q=addClass+in:file+language:js+repo:jquery/jquery`\n\nThis query searches for the keyword `addClass` within a file's contents. The query limits the search to files where the language is JavaScript in the `jquery/jquery` repository.\n\n#### Considerations for code search\n\nDue to the complexity of searching code, there are a few restrictions on how searches are performed:\n\n* Only the _default branch_ is considered. In most cases, this will be the `master` branch.\n* Only files smaller than 384 KB are searchable.\n* You must always include at least one search term when searching source code. For example, searching for [`language:go`](https://github.com/search?utf8=%E2%9C%93&q=language%3Ago&type=Code) is not valid, while [`amazing\nlanguage:go`](https://github.com/search?utf8=%E2%9C%93&q=amazing+language%3Ago&type=Code) is.", + "tags": ["search"], + "operationId": "search/code", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/search/#search-code" + }, + "parameters": [ + { + "name": "q", + "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See \"[Searching code](https://help.github.com/articles/searching-code/)\" for a detailed list of qualifiers.", + "in": "query", + "required": true, + "schema": { "type": "string" } + }, + { + "name": "sort", + "description": "Sorts the results of your query. Can only be `indexed`, which indicates how recently a file has been indexed by the GitHub search infrastructure. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results)", + "in": "query", + "required": false, + "schema": { "type": "string", "enum": ["indexed"] } + }, + { "$ref": "#/components/parameters/order" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "incomplete_results": { "type": "boolean" }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/code-search-result-item" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-search-result-item-paginated" + } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "$ref": "#/components/responses/validation_failed" }, + "503": { "$ref": "#/components/responses/service_unavailable" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "search", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/search/commits": { + "get": { + "summary": "Search commits", + "description": "Find commits via various criteria on the default branch (usually `master`). This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination).\n\nWhen searching for commits, you can get text match metadata for the **message** field when you provide the `text-match` media type. For more details about how to receive highlighted search results, see [Text match\nmetadata](https://docs.github.com/rest/reference/search#text-match-metadata).\n\nFor example, if you want to find commits related to CSS in the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. Your query would look something like this:\n\n`q=repo:octocat/Spoon-Knife+css`", + "tags": ["search"], + "operationId": "search/commits", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/search/#search-commits" + }, + "parameters": [ + { + "name": "q", + "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See \"[Searching commits](https://help.github.com/articles/searching-commits/)\" for a detailed list of qualifiers.", + "in": "query", + "required": true, + "schema": { "type": "string" } + }, + { + "name": "sort", + "description": "Sorts the results of your query by `author-date` or `committer-date`. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results)", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["author-date", "committer-date"] + } + }, + { "$ref": "#/components/parameters/order" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "incomplete_results": { "type": "boolean" }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/commit-search-result-item" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/commit-search-result-item-paginated" + } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "cloak", + "note": "The Commit Search API is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2017-01-05-commit-search-api/) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.cloak-preview\n```" + } + ], + "category": "search", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/search/issues": { + "get": { + "summary": "Search issues and pull requests", + "description": "Find issues by state and keyword. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination).\n\nWhen searching for issues, you can get text match metadata for the issue **title**, issue **body**, and issue **comment body** fields when you pass the `text-match` media type. For more details about how to receive highlighted\nsearch results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata).\n\nFor example, if you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this.\n\n`q=windows+label:bug+language:python+state:open&sort=created&order=asc`\n\nThis query searches for the keyword `windows`, within any open issue that is labeled as `bug`. The search runs across repositories whose primary language is Python. The results are sorted by creation date in ascending order, which means the oldest issues appear first in the search results.\n\n**Note:** For [user-to-server](https://docs.github.com/developers/apps/identifying-and-authorizing-users-for-github-apps#user-to-server-requests) GitHub App requests, you can't retrieve a combination of issues and pull requests in a single query. Requests that don't include the `is:issue` or `is:pull-request` qualifier will receive an HTTP `422 Unprocessable Entity` response. To get results for both issues and pull requests, you must send separate queries for issues and pull requests. For more information about the `is` qualifier, see \"[Searching only issues or pull requests](https://docs.github.com/github/searching-for-information-on-github/searching-issues-and-pull-requests#search-only-issues-or-pull-requests).\"", + "tags": ["search"], + "operationId": "search/issues-and-pull-requests", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/search/#search-issues-and-pull-requests" + }, + "parameters": [ + { + "name": "q", + "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See \"[Searching issues and pull requests](https://help.github.com/articles/searching-issues-and-pull-requests/)\" for a detailed list of qualifiers.", + "in": "query", + "required": true, + "schema": { "type": "string" } + }, + { + "name": "sort", + "description": "Sorts the results of your query by the number of `comments`, `reactions`, `reactions-+1`, `reactions--1`, `reactions-smile`, `reactions-thinking_face`, `reactions-heart`, `reactions-tada`, or `interactions`. You can also sort results by how recently the items were `created` or `updated`, Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results)", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "comments", + "reactions", + "reactions-+1", + "reactions--1", + "reactions-smile", + "reactions-thinking_face", + "reactions-heart", + "reactions-tada", + "interactions", + "created", + "updated" + ] + } + }, + { "$ref": "#/components/parameters/order" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "incomplete_results": { "type": "boolean" }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-search-result-item" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue-search-result-item-paginated" + } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "$ref": "#/components/responses/validation_failed" }, + "503": { "$ref": "#/components/responses/service_unavailable" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "search", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/search/labels": { + "get": { + "summary": "Search labels", + "description": "Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination).\n\nWhen searching for labels, you can get text match metadata for the label **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata).\n\nFor example, if you want to find labels in the `linguist` repository that match `bug`, `defect`, or `enhancement`. Your query might look like this:\n\n`q=bug+defect+enhancement&repository_id=64778136`\n\nThe labels that best match the query appear first in the search results.", + "tags": ["search"], + "operationId": "search/labels", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/search/#search-labels" + }, + "parameters": [ + { + "name": "repository_id", + "description": "The id of the repository.", + "in": "query", + "required": true, + "schema": { "type": "integer" } + }, + { + "name": "q", + "description": "The search keywords. This endpoint does not accept qualifiers in the query. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query).", + "in": "query", + "required": true, + "schema": { "type": "string" } + }, + { + "name": "sort", + "description": "Sorts the results of your query by when the label was `created` or `updated`. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results)", + "in": "query", + "required": false, + "schema": { "type": "string", "enum": ["created", "updated"] } + }, + { "$ref": "#/components/parameters/order" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "incomplete_results": { "type": "boolean" }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/label-search-result-item" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/label-search-result-item-paginated" + } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "search", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/search/repositories": { + "get": { + "summary": "Search repositories", + "description": "Find repositories via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination).\n\nWhen searching for repositories, you can get text match metadata for the **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata).\n\nFor example, if you want to search for popular Tetris repositories written in assembly code, your query might look like this:\n\n`q=tetris+language:assembly&sort=stars&order=desc`\n\nThis query searches for repositories with the word `tetris` in the name, the description, or the README. The results are limited to repositories where the primary language is assembly. The results are sorted by stars in descending order, so that the most popular repositories appear first in the search results.\n\nWhen you include the `mercy` preview header, you can also search for multiple topics by adding more `topic:` instances. For example, your query might look like this:\n\n`q=topic:ruby+topic:rails`", + "tags": ["search"], + "operationId": "search/repos", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/search/#search-repositories" + }, + "parameters": [ + { + "name": "q", + "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See \"[Searching for repositories](https://help.github.com/articles/searching-for-repositories/)\" for a detailed list of qualifiers.", + "in": "query", + "required": true, + "schema": { "type": "string" } + }, + { + "name": "sort", + "description": "Sorts the results of your query by number of `stars`, `forks`, or `help-wanted-issues` or how recently the items were `updated`. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results)", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["stars", "forks", "help-wanted-issues", "updated"] + } + }, + { "$ref": "#/components/parameters/order" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "incomplete_results": { "type": "boolean" }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/repo-search-result-item" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/repo-search-result-item-paginated" + } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "422": { "$ref": "#/components/responses/validation_failed" }, + "503": { "$ref": "#/components/responses/service_unavailable" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "mercy", + "note": "The `topics` property for repositories on GitHub is currently available for developers to preview. To view the `topics` property in calls that return repository results, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.mercy-preview+json\n```" + } + ], + "category": "search", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/search/topics": { + "get": { + "summary": "Search topics", + "description": "Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). See \"[Searching topics](https://help.github.com/articles/searching-topics/)\" for a detailed list of qualifiers.\n\nWhen searching for topics, you can get text match metadata for the topic's **short\\_description**, **description**, **name**, or **display\\_name** field when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata).\n\nFor example, if you want to search for topics related to Ruby that are featured on https://github.com/topics. Your query might look like this:\n\n`q=ruby+is:featured`\n\nThis query searches for topics with the keyword `ruby` and limits the results to find only topics that are featured. The topics that are the best match for the query appear first in the search results.", + "tags": ["search"], + "operationId": "search/topics", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/search/#search-topics" + }, + "parameters": [ + { + "name": "q", + "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query).", + "in": "query", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "incomplete_results": { "type": "boolean" }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/topic-search-result-item" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/topic-search-result-item-paginated" + } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "mercy", + "note": "The `topics` property for repositories on GitHub is currently available for developers to preview. To view the `topics` property in calls that return repository results, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.mercy-preview+json\n```" + } + ], + "category": "search", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/search/users": { + "get": { + "summary": "Search users", + "description": "Find users via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination).\n\nWhen searching for users, you can get text match metadata for the issue **login**, **email**, and **name** fields when you pass the `text-match` media type. For more details about highlighting search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata).\n\nFor example, if you're looking for a list of popular users, you might try this query:\n\n`q=tom+repos:%3E42+followers:%3E1000`\n\nThis query searches for users with the name `tom`. The results are restricted to users with more than 42 repositories and over 1,000 followers.", + "tags": ["search"], + "operationId": "search/users", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/search/#search-users" + }, + "parameters": [ + { + "name": "q", + "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See \"[Searching users](https://help.github.com/articles/searching-users/)\" for a detailed list of qualifiers.", + "in": "query", + "required": true, + "schema": { "type": "string" } + }, + { + "name": "sort", + "description": "Sorts the results of your query by number of `followers` or `repositories`, or when the person `joined` GitHub. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results)", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["followers", "repositories", "joined"] + } + }, + { "$ref": "#/components/parameters/order" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "incomplete_results": { "type": "boolean" }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/user-search-result-item" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/user-search-result-item-paginated" + } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "422": { "$ref": "#/components/responses/validation_failed" }, + "503": { "$ref": "#/components/responses/service_unavailable" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "search", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/teams/{team_id}": { + "get": { + "summary": "Get a team (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the [Get a team by name](https://docs.github.com/rest/reference/teams#get-a-team-by-name) endpoint.", + "tags": ["teams"], + "operationId": "teams/get-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#get-a-team-legacy" + }, + "parameters": [{ "$ref": "#/components/parameters/team-id" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/team-full" }, + "examples": { + "default": { "$ref": "#/components/examples/team-full" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + }, + "patch": { + "summary": "Update a team (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a team](https://docs.github.com/rest/reference/teams#update-a-team) endpoint.\n\nTo edit a team, the authenticated user must either be an organization owner or a team maintainer.\n\n**Note:** With nested teams, the `privacy` for parent teams cannot be `secret`.", + "tags": ["teams"], + "operationId": "teams/update-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#update-a-team-legacy" + }, + "parameters": [{ "$ref": "#/components/parameters/team-id" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the team." + }, + "description": { + "type": "string", + "description": "The description of the team." + }, + "privacy": { + "type": "string", + "description": "The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. The options are: \n**For a non-nested team:** \n\\* `secret` - only visible to organization owners and members of this team. \n\\* `closed` - visible to all members of this organization. \n**For a parent or child team:** \n\\* `closed` - visible to all members of this organization.", + "enum": ["secret", "closed"] + }, + "permission": { + "type": "string", + "description": "**Deprecated**. The permission that new repositories will be added to the team with when none is specified. Can be one of: \n\\* `pull` - team members can pull, but not push to or administer newly-added repositories. \n\\* `push` - team members can pull and push, but not administer newly-added repositories. \n\\* `admin` - team members can pull, push and administer newly-added repositories.", + "enum": ["pull", "push", "admin"], + "default": "pull" + }, + "parent_team_id": { + "type": "integer", + "description": "The ID of a team to set as the parent team.", + "nullable": true + } + }, + "required": ["name"] + }, + "example": { + "name": "new team name", + "description": "new team description", + "privacy": "closed" + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/team-full" }, + "examples": { + "default": { "$ref": "#/components/examples/team-full" } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a team (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a team](https://docs.github.com/rest/reference/teams#delete-a-team) endpoint.\n\nTo delete a team, the authenticated user must be an organization owner or team maintainer.\n\nIf you are an organization owner, deleting a parent team will delete all of its child teams as well.", + "tags": ["teams"], + "operationId": "teams/delete-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#delete-a-team-legacy" + }, + "parameters": [{ "$ref": "#/components/parameters/team-id" }], + "responses": { + "204": { "description": "Empty response" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/teams/{team_id}/discussions": { + "get": { + "summary": "List discussions (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List discussions`](https://docs.github.com/rest/reference/teams#list-discussions) endpoint.\n\nList all discussions on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "tags": ["teams"], + "operationId": "teams/list-discussions-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#list-discussions-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/direction" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/team-discussion" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-discussion-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "discussions" + }, + "deprecated": true, + "x-octokit": {} + }, + "post": { + "summary": "Create a discussion (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create a discussion`](https://docs.github.com/rest/reference/teams#create-a-discussion) endpoint.\n\nCreates a new discussion post on a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\nThis endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See \"[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)\" and \"[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)\" for details.", + "tags": ["teams"], + "operationId": "teams/create-discussion-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#create-a-discussion-legacy" + }, + "parameters": [{ "$ref": "#/components/parameters/team-id" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The discussion post's title." + }, + "body": { + "type": "string", + "description": "The discussion post's body text." + }, + "private": { + "type": "boolean", + "description": "Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to `true` to create a private post.", + "default": false + } + }, + "required": ["title", "body"] + }, + "example": { + "title": "Our first team post", + "body": "Hi! This is an area for us to collaborate as a team." + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/team-discussion" }, + "examples": { + "default": { "$ref": "#/components/examples/team-discussion" } + } + } + } + } + }, + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "discussions" + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/teams/{team_id}/discussions/{discussion_number}": { + "get": { + "summary": "Get a discussion (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion](https://docs.github.com/rest/reference/teams#get-a-discussion) endpoint.\n\nGet a specific discussion on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "tags": ["teams"], + "operationId": "teams/get-discussion-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#get-a-discussion-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/discussion-number" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/team-discussion" }, + "examples": { + "default": { "$ref": "#/components/examples/team-discussion" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "discussions" + }, + "deprecated": true, + "x-octokit": {} + }, + "patch": { + "summary": "Update a discussion (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion](https://docs.github.com/rest/reference/teams#update-a-discussion) endpoint.\n\nEdits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "tags": ["teams"], + "operationId": "teams/update-discussion-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#update-a-discussion-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/discussion-number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The discussion post's title." + }, + "body": { + "type": "string", + "description": "The discussion post's body text." + } + } + }, + "example": { "title": "Welcome to our first team post" } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/team-discussion" }, + "examples": { + "default": { + "$ref": "#/components/examples/team-discussion-2" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "discussions" + }, + "deprecated": true, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a discussion (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Delete a discussion`](https://docs.github.com/rest/reference/teams#delete-a-discussion) endpoint.\n\nDelete a discussion from a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "tags": ["teams"], + "operationId": "teams/delete-discussion-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#delete-a-discussion-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/discussion-number" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "discussions" + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/teams/{team_id}/discussions/{discussion_number}/comments": { + "get": { + "summary": "List discussion comments (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List discussion comments](https://docs.github.com/rest/reference/teams#list-discussion-comments) endpoint.\n\nList all comments on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "tags": ["teams"], + "operationId": "teams/list-discussion-comments-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#list-discussion-comments-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/discussion-number" }, + { "$ref": "#/components/parameters/direction" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/team-discussion-comment" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-discussion-comment-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "discussion-comments" + }, + "deprecated": true, + "x-octokit": {} + }, + "post": { + "summary": "Create a discussion comment (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Create a discussion comment](https://docs.github.com/rest/reference/teams#create-a-discussion-comment) endpoint.\n\nCreates a new comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).\n\nThis endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See \"[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)\" and \"[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)\" for details.", + "tags": ["teams"], + "operationId": "teams/create-discussion-comment-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#create-a-discussion-comment-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/discussion-number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The discussion comment's body text." + } + }, + "required": ["body"] + }, + "example": { "body": "Do you like apples?" } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/team-discussion-comment" + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-discussion-comment" + } + } + } + } + } + }, + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "discussion-comments" + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": { + "get": { + "summary": "Get a discussion comment (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion comment](https://docs.github.com/rest/reference/teams#get-a-discussion-comment) endpoint.\n\nGet a specific comment on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "tags": ["teams"], + "operationId": "teams/get-discussion-comment-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#get-a-discussion-comment-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/discussion-number" }, + { "$ref": "#/components/parameters/comment-number" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/team-discussion-comment" + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-discussion-comment" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "discussion-comments" + }, + "deprecated": true, + "x-octokit": {} + }, + "patch": { + "summary": "Update a discussion comment (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion comment](https://docs.github.com/rest/reference/teams#update-a-discussion-comment) endpoint.\n\nEdits the body text of a discussion comment. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "tags": ["teams"], + "operationId": "teams/update-discussion-comment-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#update-a-discussion-comment-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/discussion-number" }, + { "$ref": "#/components/parameters/comment-number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The discussion comment's body text." + } + }, + "required": ["body"] + }, + "example": { "body": "Do you like pineapples?" } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/team-discussion-comment" + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-discussion-comment-2" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "discussion-comments" + }, + "deprecated": true, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a discussion comment (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a discussion comment](https://docs.github.com/rest/reference/teams#delete-a-discussion-comment) endpoint.\n\nDeletes a comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "tags": ["teams"], + "operationId": "teams/delete-discussion-comment-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#delete-a-discussion-comment-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/discussion-number" }, + { "$ref": "#/components/parameters/comment-number" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "discussion-comments" + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions": { + "get": { + "summary": "List reactions for a team discussion comment (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion comment`](https://docs.github.com/rest/reference/reactions#list-reactions-for-a-team-discussion-comment) endpoint.\n\nList the reactions to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "tags": ["reactions"], + "operationId": "reactions/list-for-team-discussion-comment-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#list-reactions-for-a-team-discussion-comment-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/discussion-number" }, + { "$ref": "#/components/parameters/comment-number" }, + { + "name": "content", + "description": "Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a team discussion comment.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/reaction" } + }, + "examples": { + "default": { "$ref": "#/components/examples/reaction-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "removalDate": "2021-02-21", + "deprecationDate": "2020-02-26", + "category": "reactions", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + }, + "post": { + "summary": "Create reaction for a team discussion comment (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create reaction for a team discussion comment`](https://docs.github.comt/rest/reference/reactions#create-reaction-for-a-team-discussion-comment) endpoint.\n\nCreate a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with a `Status: 200 OK` means that you already added the reaction type to this team discussion comment.", + "tags": ["reactions"], + "operationId": "reactions/create-for-team-discussion-comment-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#create-reaction-for-a-team-discussion-comment-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/discussion-number" }, + { "$ref": "#/components/parameters/comment-number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the team discussion comment.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + "required": ["content"] + }, + "example": { "content": "heart" } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/reaction" }, + "examples": { + "default": { "$ref": "#/components/examples/reaction" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "removalDate": "2021-02-21", + "deprecationDate": "2020-02-26", + "category": "reactions", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/teams/{team_id}/discussions/{discussion_number}/reactions": { + "get": { + "summary": "List reactions for a team discussion (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion`](https://docs.github.com/rest/reference/reactions#list-reactions-for-a-team-discussion) endpoint.\n\nList the reactions to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "tags": ["reactions"], + "operationId": "reactions/list-for-team-discussion-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#list-reactions-for-a-team-discussion-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/discussion-number" }, + { + "name": "content", + "description": "Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a team discussion.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/reaction" } + }, + "examples": { + "default": { "$ref": "#/components/examples/reaction-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "removalDate": "2021-02-21", + "deprecationDate": "2020-02-26", + "category": "reactions", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + }, + "post": { + "summary": "Create reaction for a team discussion (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create reaction for a team discussion`](https://docs.github.com/rest/reference/reactions#create-reaction-for-a-team-discussion) endpoint.\n\nCreate a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with a `Status: 200 OK` means that you already added the reaction type to this team discussion.", + "tags": ["reactions"], + "operationId": "reactions/create-for-team-discussion-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/reactions/#create-reaction-for-a-team-discussion-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/discussion-number" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the team discussion.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + "required": ["content"] + }, + "example": { "content": "heart" } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/reaction" }, + "examples": { + "default": { "$ref": "#/components/examples/reaction" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "removalDate": "2021-02-21", + "deprecationDate": "2020-02-26", + "category": "reactions", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/teams/{team_id}/invitations": { + "get": { + "summary": "List pending team invitations (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List pending team invitations`](https://docs.github.com/rest/reference/teams#list-pending-team-invitations) endpoint.\n\nThe return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`.", + "tags": ["teams"], + "operationId": "teams/list-pending-invitations-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#list-pending-team-invitations-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-invitation" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/organization-invitation-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "members" + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/teams/{team_id}/members": { + "get": { + "summary": "List team members (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team members`](https://docs.github.com/rest/reference/teams#list-team-members) endpoint.\n\nTeam members will include the members of child teams.", + "tags": ["teams"], + "operationId": "teams/list-members-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#list-team-members-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { + "name": "role", + "description": "Filters members returned by their role in the team. Can be one of: \n\\* `member` - normal members of the team. \n\\* `maintainer` - team maintainers. \n\\* `all` - all members of the team.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["member", "maintainer", "all"], + "default": "all" + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "members" + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/teams/{team_id}/members/{username}": { + "get": { + "summary": "Get team member (Legacy)", + "description": "The \"Get team member\" endpoint (described below) is deprecated.\n\nWe recommend using the [Get team membership for a user](https://docs.github.com/rest/reference/teams#get-team-membership-for-a-user) endpoint instead. It allows you to get both active and pending memberships.\n\nTo list members in a team, the team must be visible to the authenticated user.", + "tags": ["teams"], + "operationId": "teams/get-member-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#get-team-member-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { + "204": { "description": "Response if user is a member" }, + "404": { "description": "Response if user is not a member" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "members" + }, + "deprecated": true, + "x-octokit": {} + }, + "put": { + "summary": "Add team member (Legacy)", + "description": "The \"Add team member\" endpoint (described below) is deprecated.\n\nWe recommend using the [Add or update team membership for a user](https://docs.github.com/rest/reference/teams#add-or-update-team-membership-for-a-user) endpoint instead. It allows you to invite new organization members to your teams.\n\nTeam synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nTo add someone to a team, the authenticated user must be an organization owner or a team maintainer in the team they're changing. The person being added to the team must be a member of the team's organization.\n\n**Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see \"[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/).\"\n\nNote that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"", + "tags": ["teams"], + "operationId": "teams/add-member-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#add-team-member-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { + "204": { "description": "Empty response" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { + "description": "Response if team synchronization is set up" + }, + "422": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { "type": "string" }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { "type": "string" }, + "field": { "type": "string" }, + "resource": { "type": "string" } + } + } + }, + "documentation_url": { + "type": "string", + "example": "\"https://docs.github.com/rest\"" + } + } + }, + "examples": { + "response-if-you-attempt-to-add-an-organization-to-a-team": { + "summary": "Response if you attempt to add an organization to a team", + "value": { + "message": "Cannot add an organization as a member.", + "errors": [ + { + "code": "org", + "field": "user", + "resource": "TeamMember" + } + ] + } + }, + "response-if-you-attempt-to-add-a-user-to-a-team-when-they-are-not-a-member-of-at-least-one-other-team-in-the-same-organization": { + "summary": "Response if you attempt to add a user to a team when they are not a member of at least one other team in the same organization", + "value": { + "message": "User isn't a member of this organization. Please invite them first.", + "errors": [ + { + "code": "unaffiliated", + "field": "user", + "resource": "TeamMember" + } + ] + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "members" + }, + "deprecated": true, + "x-octokit": {} + }, + "delete": { + "summary": "Remove team member (Legacy)", + "description": "The \"Remove team member\" endpoint (described below) is deprecated.\n\nWe recommend using the [Remove team membership for a user](https://docs.github.com/rest/reference/teams#remove-team-membership-for-a-user) endpoint instead. It allows you to remove both active and pending memberships.\n\nTeam synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nTo remove a team member, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with. Removing a team member does not delete the user, it just removes them from the team.\n\n**Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see \"[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/).\"", + "tags": ["teams"], + "operationId": "teams/remove-member-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#remove-team-member-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { + "204": { "description": "Empty response" }, + "404": { "description": "Response if team synchronization is setup" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "members" + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/teams/{team_id}/memberships/{username}": { + "get": { + "summary": "Get team membership for a user (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get team membership for a user](https://docs.github.com/rest/reference/teams#get-team-membership-for-a-user) endpoint.\n\nTeam members will include the members of child teams.\n\nTo get a user's membership with a team, the team must be visible to the authenticated user.\n\n**Note:** The `role` for organization owners returns as `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/reference/teams#create-a-team).", + "tags": ["teams"], + "operationId": "teams/get-membership-for-user-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#get-team-membership-for-a-user-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/team-membership" }, + "examples": { + "response-if-user-has-an-active-membership-with-team": { + "$ref": "#/components/examples/team-membership-response-if-user-has-an-active-membership-with-team" + }, + "response-if-user-is-a-team-maintainer": { + "$ref": "#/components/examples/team-membership-response-if-user-is-a-team-maintainer" + }, + "response-if-user-has-a-pending-membership-with-team": { + "$ref": "#/components/examples/team-membership-response-if-user-has-a-pending-membership-with-team" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "members" + }, + "deprecated": true, + "x-octokit": {} + }, + "put": { + "summary": "Add or update team membership for a user (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team membership for a user](https://docs.github.com/rest/reference/teams#add-or-update-team-membership-for-a-user) endpoint.\n\nTeam synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nIf the user is already a member of the team's organization, this endpoint will add the user to the team. To add a membership between an organization member and a team, the authenticated user must be an organization owner or a team maintainer.\n\n**Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see \"[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/).\"\n\nIf the user is unaffiliated with the team's organization, this endpoint will send an invitation to the user via email. This newly-created membership will be in the \"pending\" state until the user accepts the invitation, at which point the membership will transition to the \"active\" state and the user will be added as a member of the team. To add a membership between an unaffiliated user and a team, the authenticated user must be an organization owner.\n\nIf the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer.", + "tags": ["teams"], + "operationId": "teams/add-or-update-membership-for-user-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#add-or-update-team-membership-for-a-user-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/username" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "role": { + "type": "string", + "description": "The role that this user should have in the team. Can be one of: \n\\* `member` - a normal member of the team. \n\\* `maintainer` - a team maintainer. Able to add/remove other team members, promote other team members to team maintainer, and edit the team's name and description.", + "enum": ["member", "maintainer"], + "default": "member" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/team-membership" }, + "examples": { + "response-if-users-membership-with-team-is-now-active": { + "$ref": "#/components/examples/team-membership-response-if-users-membership-with-team-is-now-active" + }, + "response-if-users-membership-with-team-is-now-pending": { + "$ref": "#/components/examples/team-membership-response-if-users-membership-with-team-is-now-pending" + } + } + } + } + }, + "403": { + "description": "Response if team synchronization is set up" + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { + "description": "Response if you attempt to add an organization to a team", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { "type": "string" }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { "type": "string" }, + "field": { "type": "string" }, + "resource": { "type": "string" } + } + } + }, + "documentation_url": { + "type": "string", + "example": "\"https://help.github.com/articles/github-and-trade-controls\"" + } + } + }, + "examples": { + "response-if-you-attempt-to-add-an-organization-to-a-team": { + "value": { + "message": "Cannot add an organization as a member.", + "errors": [ + { + "code": "org", + "field": "user", + "resource": "TeamMember" + } + ] + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "members" + }, + "deprecated": true, + "x-octokit": {} + }, + "delete": { + "summary": "Remove team membership for a user (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove team membership for a user](https://docs.github.com/rest/reference/teams#remove-team-membership-for-a-user) endpoint.\n\nTeam synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nTo remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team.\n\n**Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see \"[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/).\"", + "tags": ["teams"], + "operationId": "teams/remove-membership-for-user-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#remove-team-membership-for-a-user-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/username" } + ], + "responses": { + "204": { "description": "Empty response" }, + "403": { "description": "Response if team synchronization is set up" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "members" + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/teams/{team_id}/projects": { + "get": { + "summary": "List team projects (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team projects`](https://docs.github.com/rest/reference/teams#list-team-projects) endpoint.\n\nLists the organization projects for a team.", + "tags": ["teams"], + "operationId": "teams/list-projects-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#list-team-projects-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/team-project" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-project-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/teams/{team_id}/projects/{project_id}": { + "get": { + "summary": "Check team permissions for a project (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a project](https://docs.github.com/rest/reference/teams#check-team-permissions-for-a-project) endpoint.\n\nChecks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team.", + "tags": ["teams"], + "operationId": "teams/check-permissions-for-project-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#check-team-permissions-for-a-project-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/project-id" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/team-project" }, + "examples": { + "default": { "$ref": "#/components/examples/team-project" } + } + } + } + }, + "404": { + "description": "Response if project is not managed by this team" + }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + }, + "put": { + "summary": "Add or update team project permissions (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team project permissions](https://docs.github.com/rest/reference/teams#add-or-update-team-project-permissions) endpoint.\n\nAdds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization.", + "tags": ["teams"], + "operationId": "teams/add-or-update-project-permissions-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#add-or-update-team-project-permissions-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/project-id" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "permission": { + "type": "string", + "description": "The permission to grant to the team for this project. Can be one of: \n\\* `read` - team members can read, but not write to or administer this project. \n\\* `write` - team members can read and write, but not administer this project. \n\\* `admin` - team members can read, write and administer this project. \nDefault: the team's `permission` attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"", + "enum": ["read", "write", "admin"] + } + } + } + } + } + }, + "responses": { + "204": { "description": "Empty response" }, + "403": { + "description": "Response if the project is not owned by the organization", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { "type": "string" }, + "documentation_url": { "type": "string" } + } + }, + "examples": { + "response-if-the-project-is-not-owned-by-the-organization": { + "value": { + "message": "Must have admin rights to Repository.", + "documentation_url": "https://docs.github.com/rest/reference/teams#add-or-update-team-project-permissions" + } + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + }, + "delete": { + "summary": "Remove a project from a team (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a project from a team](https://docs.github.com/rest/reference/teams#remove-a-project-from-a-team) endpoint.\n\nRemoves an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. **Note:** This endpoint removes the project from the team, but does not delete it.", + "tags": ["teams"], + "operationId": "teams/remove-project-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#remove-a-project-from-a-team-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/project-id" } + ], + "responses": { + "204": { "description": "Empty response" }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/teams/{team_id}/repos": { + "get": { + "summary": "List team repositories (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List team repositories](https://docs.github.com/rest/reference/teams#list-team-repositories) endpoint.", + "tags": ["teams"], + "operationId": "teams/list-repos-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#list-team-repositories-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/minimal-repository" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/minimal-repository-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/teams/{team_id}/repos/{owner}/{repo}": { + "get": { + "summary": "Check team permissions for a repository (Legacy)", + "description": "**Note**: Repositories inherited through a parent team will also be checked.\n\n**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a repository](https://docs.github.com/rest/reference/teams#check-team-permissions-for-a-repository) endpoint.\n\nYou can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header:", + "tags": ["teams"], + "operationId": "teams/check-permissions-for-repo-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#check-team-permissions-for-a-repository-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "200": { + "description": "Alternative response with extra repository information", + "content": { + "application/vnd.github.v3.repository+json": { + "schema": { "$ref": "#/components/schemas/team-repository" }, + "examples": { + "alternative-response-with-extra-repository-information": { + "$ref": "#/components/examples/team-repository-alternative-response-with-extra-repository-information" + } + } + } + } + }, + "204": { + "description": "Response if repository is managed by this team" + }, + "404": { + "description": "Response if repository is not managed by this team" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + }, + "put": { + "summary": "Add or update team repository permissions (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team repository permissions](https://docs.github.comt/rest/reference/teams#add-or-update-team-project-permissions) endpoint.\n\nTo add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization.\n\nNote that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"", + "tags": ["teams"], + "operationId": "teams/add-or-update-repo-permissions-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#add-or-update-team-repository-permissions-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "permission": { + "type": "string", + "description": "The permission to grant the team on this repository. Can be one of: \n\\* `pull` - team members can pull, but not push to or administer this repository. \n\\* `push` - team members can pull and push, but not administer this repository. \n\\* `admin` - team members can pull, push and administer this repository. \n \nIf no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository.", + "enum": ["pull", "push", "admin"] + } + } + } + } + } + }, + "responses": { + "204": { "description": "Empty response" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + }, + "delete": { + "summary": "Remove a repository from a team (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a repository from a team](https://docs.github.com/rest/reference/teams#remove-a-repository-from-a-team) endpoint.\n\nIf the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. NOTE: This does not delete the repository, it just removes it from the team.", + "tags": ["teams"], + "operationId": "teams/remove-repo-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#remove-a-repository-from-a-team-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/teams/{team_id}/team-sync/group-mappings": { + "get": { + "summary": "List IdP groups for a team (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List IdP groups for a team`](https://docs.github.com/rest/reference/teams#list-idp-groups-for-a-team) endpoint.\n\nTeam synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nList IdP groups connected to a team on GitHub.", + "tags": ["teams"], + "operationId": "teams/list-idp-groups-for-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#list-idp-groups-for-a-team-legacy" + }, + "parameters": [{ "$ref": "#/components/parameters/team-id" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/group-mapping" }, + "examples": { + "default": { "$ref": "#/components/examples/group-mapping-3" } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": false, + "previews": [], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "team-sync" + }, + "deprecated": true, + "x-octokit": {} + }, + "patch": { + "summary": "Create or update IdP group connections (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create or update IdP group connections`](https://docs.github.com/rest/reference/teams#create-or-update-idp-group-connections) endpoint.\n\nTeam synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.\n\nCreates, updates, or removes a connection between a team and an IdP group. When adding groups to a team, you must include all new and existing groups to avoid replacing existing groups with the new ones. Specifying an empty `groups` array will remove all connections for a team.", + "tags": ["teams"], + "operationId": "teams/create-or-update-idp-group-connections-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/teams#create-or-update-idp-group-connections-legacy" + }, + "parameters": [{ "$ref": "#/components/parameters/team-id" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "groups": { + "type": "array", + "description": "The IdP groups you want to connect to a GitHub team. When updating, the new `groups` object will replace the original one. You must include any existing groups that you don't want to remove.", + "items": { + "type": "object", + "properties": { + "group_id": { + "type": "string", + "description": "ID of the IdP group." + }, + "group_name": { + "type": "string", + "description": "Name of the IdP group." + }, + "group_description": { + "type": "string", + "description": "Description of the IdP group." + }, + "id": { + "type": "string", + "example": "\"caceab43fc9ffa20081c\"" + }, + "name": { + "type": "string", + "example": "\"external-team-6c13e7288ef7\"" + }, + "description": { + "type": "string", + "example": "\"moar cheese pleese\"" + } + }, + "required": [ + "group_id", + "group_name", + "group_description" + ] + } + }, + "synced_at": { + "type": "string", + "example": "\"I am not a timestamp\"" + } + }, + "required": ["groups"] + }, + "example": { + "groups": [ + { + "group_id": "123", + "group_name": "Octocat admins", + "description": "The people who configure your octoworld.", + "group_description": "string" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/group-mapping" }, + "examples": { + "default": { "$ref": "#/components/examples/group-mapping-2" } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": true, + "enabledForGitHubApps": false, + "previews": [], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "team-sync" + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/teams/{team_id}/teams": { + "get": { + "summary": "List child teams (Legacy)", + "description": "**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List child teams`](https://docs.github.com/rest/reference/teams#list-child-teams) endpoint.", + "tags": ["teams"], + "operationId": "teams/list-child-legacy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#list-child-teams-legacy" + }, + "parameters": [ + { "$ref": "#/components/parameters/team-id" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "Response if child teams exist", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/team" } + }, + "examples": { + "response-if-child-teams-exist": { + "$ref": "#/components/examples/team-items-response-if-child-teams-exist" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": null + }, + "deprecated": true, + "x-octokit": {} + } + }, + "/user": { + "get": { + "summary": "Get the authenticated user", + "description": "If the authenticated user is authenticated through basic authentication or OAuth with the `user` scope, then the response lists public and private profile information.\n\nIf the authenticated user is authenticated through OAuth without the `user` scope, then the response lists only public profile information.", + "tags": ["users"], + "operationId": "users/get-authenticated", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/users/#get-the-authenticated-user" + }, + "parameters": [], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { "$ref": "#/components/schemas/private-user" }, + { "$ref": "#/components/schemas/public-user" } + ] + }, + "examples": { + "response-with-public-and-private-profile-information": { + "$ref": "#/components/examples/private-user-response-with-public-and-private-profile-information" + }, + "response-with-public-profile-information": { + "$ref": "#/components/examples/private-user-response-with-public-profile-information" + } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": null + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update the authenticated user", + "description": "**Note:** If your email is set to private and you send an `email` parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not be displayed on your public profile or via the API.", + "tags": ["users"], + "operationId": "users/update-authenticated", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/users/#update-the-authenticated-user" + }, + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "The new name of the user.", + "type": "string", + "example": "Omar Jahandar" + }, + "email": { + "description": "The publicly visible email address of the user.", + "type": "string", + "example": "omar@example.com" + }, + "blog": { + "description": "The new blog URL of the user.", + "type": "string", + "example": "blog.example.com" + }, + "twitter_username": { + "description": "The new Twitter username of the user.", + "type": "string", + "example": "therealomarj", + "nullable": true + }, + "company": { + "description": "The new company of the user.", + "type": "string", + "example": "Acme corporation" + }, + "location": { + "description": "The new location of the user.", + "type": "string", + "example": "Berlin, Germany" + }, + "hireable": { + "description": "The new hiring availability of the user.", + "type": "boolean" + }, + "bio": { + "description": "The new short biography of the user.", + "type": "string" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/private-user" }, + "examples": { + "default": { "$ref": "#/components/examples/private-user" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/user/blocks": { + "get": { + "summary": "List users blocked by the authenticated user", + "description": "List the users you've blocked on your personal account.", + "tags": ["users"], + "operationId": "users/list-blocked-by-authenticated", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#list-users-blocked-by-the-authenticated-user" + }, + "parameters": [], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "giant-sentry-fist", + "note": "The API to block users is currently available for developers to preview. See the [preview notice](https://docs.github.com/rest/overview/api-previews#user-blocking) for more information.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.giant-sentry-fist-preview+json\n```" + } + ], + "category": "users", + "subcategory": "blocking" + }, + "x-octokit": {} + } + }, + "/user/blocks/{username}": { + "get": { + "summary": "Check if a user is blocked by the authenticated user", + "description": "", + "tags": ["users"], + "operationId": "users/check-blocked", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#check-if-a-user-is-blocked-by-the-authenticated-user" + }, + "parameters": [{ "$ref": "#/components/parameters/username" }], + "responses": { + "204": { "description": "If the user is blocked:" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { + "description": "If the user is not blocked:", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/basic-error" } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "giant-sentry-fist", + "note": "The API to block users is currently available for developers to preview. See the [preview notice](https://docs.github.com/rest/overview/api-previews#user-blocking) for more information.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.giant-sentry-fist-preview+json\n```" + } + ], + "category": "users", + "subcategory": "blocking" + }, + "x-octokit": {} + }, + "put": { + "summary": "Block a user", + "description": "", + "tags": ["users"], + "operationId": "users/block", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#block-a-user" + }, + "parameters": [{ "$ref": "#/components/parameters/username" }], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "giant-sentry-fist", + "note": "The API to block users is currently available for developers to preview. See the [preview notice](https://docs.github.com/rest/overview/api-previews#user-blocking) for more information.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.giant-sentry-fist-preview+json\n```" + } + ], + "category": "users", + "subcategory": "blocking" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Unblock a user", + "description": "", + "tags": ["users"], + "operationId": "users/unblock", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#unblock-a-user" + }, + "parameters": [{ "$ref": "#/components/parameters/username" }], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "giant-sentry-fist", + "note": "The API to block users is currently available for developers to preview. See the [preview notice](https://docs.github.com/rest/overview/api-previews#user-blocking) for more information.\n\nTo access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.giant-sentry-fist-preview+json\n```" + } + ], + "category": "users", + "subcategory": "blocking" + }, + "x-octokit": {} + } + }, + "/user/email/visibility": { + "patch": { + "summary": "Set primary email visibility for the authenticated user", + "description": "Sets the visibility for your primary email addresses.", + "tags": ["users"], + "operationId": "users/set-primary-email-visibility-for-authenticated", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#set-primary-email-visibility-for-the-authenticated-user" + }, + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "email": { + "description": "An email address associated with the GitHub user account to manage.", + "type": "string", + "example": "org@example.com" + }, + "visibility": { + "description": "Denotes whether an email is publically visible.", + "type": "string", + "enum": ["public", "private"] + } + }, + "required": ["email", "visibility"], + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/email" } + }, + "examples": { + "default": { "$ref": "#/components/examples/email-items-3" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": "emails" + }, + "x-octokit": {} + } + }, + "/user/emails": { + "get": { + "summary": "List email addresses for the authenticated user", + "description": "Lists all of your email addresses, and specifies which one is visible to the public. This endpoint is accessible with the `user:email` scope.", + "tags": ["users"], + "operationId": "users/list-emails-for-authenticated", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#list-email-addresses-for-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/email" } + }, + "examples": { + "default": { "$ref": "#/components/examples/email-items-2" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": "emails" + }, + "x-octokit": {} + }, + "post": { + "summary": "Add an email address for the authenticated user", + "description": "This endpoint is accessible with the `user` scope.", + "tags": ["users"], + "operationId": "users/add-email-for-authenticated", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#add-an-email-address-for-the-authenticated-user" + }, + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "properties": { + "emails": { + "description": "Adds one or more email addresses to your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key.", + "type": "array", + "items": { + "type": "string", + "example": "username@example.com", + "minItems": 1 + }, + "example": [] + } + }, + "required": ["emails"], + "example": { + "emails": ["octocat@github.com", "mona@github.com"] + } + }, + { + "type": "array", + "items": { + "type": "string", + "example": "username@example.com", + "minItems": 1 + } + }, + { "type": "string" } + ] + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/email" } + }, + "examples": { + "default": { "$ref": "#/components/examples/email-items" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": "emails" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete an email address for the authenticated user", + "description": "This endpoint is accessible with the `user` scope.", + "tags": ["users"], + "operationId": "users/delete-email-for-authenticated", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#delete-an-email-address-for-the-authenticated-user" + }, + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "description": "Deletes one or more email addresses from your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key.", + "properties": { + "emails": { + "description": "Email addresses associated with the GitHub user account.", + "type": "array", + "items": { + "type": "string", + "example": "username@example.com", + "minItems": 1 + }, + "example": { + "emails": ["octocat@github.com", "mona@github.com"] + } + } + }, + "required": ["emails"] + }, + { + "type": "array", + "items": { + "type": "string", + "example": "username@example.com", + "minItems": 1 + } + }, + { "type": "string" } + ] + } + } + } + }, + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": "emails" + }, + "x-octokit": {} + } + }, + "/user/followers": { + "get": { + "summary": "List followers of the authenticated user", + "description": "Lists the people following the authenticated user.", + "tags": ["users"], + "operationId": "users/list-followers-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#list-followers-of-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": "followers" + }, + "x-octokit": {} + } + }, + "/user/following": { + "get": { + "summary": "List the people the authenticated user follows", + "description": "Lists the people who the authenticated user follows.", + "tags": ["users"], + "operationId": "users/list-followed-by-authenticated", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#list-the-people-the-authenticated-user-follows" + }, + "parameters": [ + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": "followers" + }, + "x-octokit": {} + } + }, + "/user/following/{username}": { + "get": { + "summary": "Check if a person is followed by the authenticated user", + "description": "", + "tags": ["users"], + "operationId": "users/check-person-is-followed-by-authenticated", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#check-if-a-person-is-followed-by-the-authenticated-user" + }, + "parameters": [{ "$ref": "#/components/parameters/username" }], + "responses": { + "204": { + "description": "Response if the person is followed by the authenticated user" + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { + "description": "Response if the person is not followed by the authenticated user", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/basic-error" } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": "followers" + }, + "x-octokit": {} + }, + "put": { + "summary": "Follow a user", + "description": "Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"\n\nFollowing a user requires the user to be logged in and authenticated with basic auth or OAuth with the `user:follow` scope.", + "tags": ["users"], + "operationId": "users/follow", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#follow-a-user" + }, + "parameters": [{ "$ref": "#/components/parameters/username" }], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": "followers" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Unfollow a user", + "description": "Unfollowing a user requires the user to be logged in and authenticated with basic auth or OAuth with the `user:follow` scope.", + "tags": ["users"], + "operationId": "users/unfollow", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#unfollow-a-user" + }, + "parameters": [{ "$ref": "#/components/parameters/username" }], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": "followers" + }, + "x-octokit": {} + } + }, + "/user/gpg_keys": { + "get": { + "summary": "List GPG keys for the authenticated user", + "description": "Lists the current user's GPG keys. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "tags": ["users"], + "operationId": "users/list-gpg-keys-for-authenticated", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#list-gpg-keys-for-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/gpg-key" } + }, + "examples": { + "default": { "$ref": "#/components/examples/gpg-key-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": "gpg-keys" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a GPG key for the authenticated user", + "description": "Adds a GPG key to the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth, or OAuth with at least `write:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "operationId": "users/create-gpg-key-for-authenticated", + "tags": ["users"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#create-a-gpg-key-for-the-authenticated-user" + }, + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "armored_public_key": { + "description": "A GPG key in ASCII-armored format.", + "type": "string" + } + }, + "type": "object", + "required": ["armored_public_key"] + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/gpg-key" }, + "examples": { + "default": { "$ref": "#/components/examples/gpg-key" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": "gpg-keys" + }, + "x-octokit": {} + } + }, + "/user/gpg_keys/{gpg_key_id}": { + "get": { + "summary": "Get a GPG key for the authenticated user", + "description": "View extended details for a single GPG key. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "tags": ["users"], + "operationId": "users/get-gpg-key-for-authenticated", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#get-a-gpg-key-for-the-authenticated-user" + }, + "parameters": [{ "$ref": "#/components/parameters/gpg_key_id" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/gpg-key" }, + "examples": { + "default": { "$ref": "#/components/examples/gpg-key" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": "gpg-keys" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a GPG key for the authenticated user", + "description": "Removes a GPG key from the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `admin:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "tags": ["users"], + "operationId": "users/delete-gpg-key-for-authenticated", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#delete-a-gpg-key-for-the-authenticated-user" + }, + "parameters": [{ "$ref": "#/components/parameters/gpg_key_id" }], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": "gpg-keys" + }, + "x-octokit": {} + } + }, + "/user/installations": { + "get": { + "summary": "List app installations accessible to the user access token", + "description": "Lists installations of your GitHub App that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access.\n\nYou must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint.\n\nThe authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership.\n\nYou can find the permissions for the installation under the `permissions` key.", + "tags": ["apps"], + "operationId": "apps/list-installations-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#list-app-installations-accessible-to-the-user-access-token" + }, + "parameters": [ + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "You can find the permissions for the installation under the `permissions` key.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "installations": { + "type": "array", + "items": { "$ref": "#/components/schemas/installation" } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/base-installation-for-auth-user-paginated" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "415": { "$ref": "#/components/responses/preview_header_missing" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": "installations" + }, + "x-octokit": {} + } + }, + "/user/installations/{installation_id}/repositories": { + "get": { + "summary": "List repositories accessible to the user access token", + "description": "List repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access for an installation.\n\nThe authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership.\n\nYou must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint.\n\nThe access the user has to each repository is included in the hash under the `permissions` key.", + "tags": ["apps"], + "operationId": "apps/list-installation-repos-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#list-repositories-accessible-to-the-user-access-token" + }, + "parameters": [ + { "$ref": "#/components/parameters/installation_id" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "The access the user has to each repository is included in the hash under the `permissions` key.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { "type": "integer" }, + "repository_selection": { "type": "string" }, + "repositories": { + "type": "array", + "items": { "$ref": "#/components/schemas/repository" } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-paginated" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": false, + "name": "mercy", + "note": "The `topics` property for repositories on GitHub is currently available for developers to preview. To view the `topics` property in calls that return repository results, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.mercy-preview+json\n```" + } + ], + "category": "apps", + "subcategory": "installations" + }, + "x-octokit": {} + } + }, + "/user/installations/{installation_id}/repositories/{repository_id}": { + "put": { + "summary": "Add a repository to an app installation", + "description": "Add a single repository to an installation. The authenticated user must have admin access to the repository.\n\nYou must use a personal access token (which you can create via the [command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) or the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations#create-a-new-authorization) or [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/add-repo-to-installation", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#add-a-repository-to-an-app-installation" + }, + "parameters": [ + { "$ref": "#/components/parameters/installation_id" }, + { "$ref": "#/components/parameters/repository_id" } + ], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": "installations" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove a repository from an app installation", + "description": "Remove a single repository from an installation. The authenticated user must have admin access to the repository.\n\nYou must use a personal access token (which you can create via the [command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) or the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations#create-a-new-authorization) or [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/remove-repo-from-installation", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#remove-a-repository-from-an-app-installation" + }, + "parameters": [ + { "$ref": "#/components/parameters/installation_id" }, + { "$ref": "#/components/parameters/repository_id" } + ], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": "installations" + }, + "x-octokit": {} + } + }, + "/user/interaction-limits": { + "get": { + "summary": "Get interaction restrictions for your public repositories", + "description": "Shows which type of GitHub user can interact with your public repositories and when the restriction expires. If there are no restrictions, you will see an empty response.", + "tags": ["interactions"], + "operationId": "interactions/get-restrictions-for-your-public-repos", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/interactions#get-interaction-restrictions-for-your-public-repositories" + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/interaction-limit-response" + }, + "examples": { + "default": { + "$ref": "#/components/examples/interaction-limit-user" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "interactions", + "subcategory": "user" + }, + "x-octokit": {} + }, + "put": { + "summary": "Set interaction restrictions for your public repositories", + "description": "Temporarily restricts which type of GitHub user can interact with your public repositories. Setting the interaction limit at the user level will overwrite any interaction limits that are set for individual repositories owned by the user.", + "tags": ["interactions"], + "operationId": "interactions/set-restrictions-for-your-public-repos", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/interactions#set-interaction-restrictions-for-your-public-repositories" + }, + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/interaction-limit" } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/interaction-limit-response" + }, + "examples": { + "default": { + "$ref": "#/components/examples/interaction-limit-user" + } + } + } + } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "interactions", + "subcategory": "user" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Remove interaction restrictions from your public repositories", + "description": "Removes any interaction restrictions from your public repositories.", + "tags": ["interactions"], + "operationId": "interactions/remove-restrictions-for-your-public-repos", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/interactions#remove-interaction-restrictions-from-your-public-repositories" + }, + "responses": { "204": { "description": "Empty response" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "interactions", + "subcategory": "user" + }, + "x-octokit": {} + } + }, + "/user/issues": { + "get": { + "summary": "List user account issues assigned to the authenticated user", + "description": "List issues across owned and member repositories assigned to the authenticated user.\n\n**Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this\nreason, \"Issues\" endpoints may return both issues and pull requests in the response. You can identify pull requests by\nthe `pull_request` key. Be aware that the `id` of a pull request returned from \"Issues\" endpoints will be an _issue id_. To find out the pull\nrequest id, use the \"[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)\" endpoint.", + "tags": ["issues"], + "operationId": "issues/list-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/issues/#list-user-account-issues-assigned-to-the-authenticated-user" + }, + "parameters": [ + { + "name": "filter", + "description": "Indicates which sorts of issues to return. Can be one of: \n\\* `assigned`: Issues assigned to you \n\\* `created`: Issues created by you \n\\* `mentioned`: Issues mentioning you \n\\* `subscribed`: Issues you're subscribed to updates for \n\\* `all`: All issues the authenticated user can see, regardless of participation or creation", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["assigned", "created", "mentioned", "subscribed", "all"], + "default": "assigned" + } + }, + { + "name": "state", + "description": "Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["open", "closed", "all"], + "default": "open" + } + }, + { "$ref": "#/components/parameters/labels" }, + { + "name": "sort", + "description": "What to sort results by. Can be either `created`, `updated`, `comments`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["created", "updated", "comments"], + "default": "created" + } + }, + { "$ref": "#/components/parameters/direction" }, + { "$ref": "#/components/parameters/since" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/issue" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue-with-repo-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": false, + "name": "squirrel-girl", + "note": "An additional `reactions` object in the issue comment payload is currently available for developers to preview. During the preview period, the APIs may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-05-12-reactions-api-preview) for full details.\n\nTo access the API you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.squirrel-girl-preview\n```\nThe `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions." + } + ], + "category": "issues", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/user/keys": { + "get": { + "summary": "List public SSH keys for the authenticated user", + "description": "Lists the public SSH keys for the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "tags": ["users"], + "operationId": "users/list-public-ssh-keys-for-authenticated", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#list-public-ssh-keys-for-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/key" } + }, + "examples": { + "default": { "$ref": "#/components/examples/key-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": "keys" + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a public SSH key for the authenticated user", + "description": "Adds a public SSH key to the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth, or OAuth with at least `write:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "operationId": "users/create-public-ssh-key-for-authenticated", + "tags": ["users"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#create-a-public-ssh-key-for-the-authenticated-user" + }, + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "title": { + "description": "A descriptive name for the new key.", + "type": "string", + "example": "Personal MacBook Air" + }, + "key": { + "description": "The public SSH key to add to your GitHub account.", + "type": "string", + "pattern": "^ssh-(rsa|dss|ed25519) |^ecdsa-sha2-nistp(256|384|521) " + } + }, + "required": ["key"], + "type": "object" + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/key" }, + "examples": { + "default": { "$ref": "#/components/examples/key" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": "keys" + }, + "x-octokit": {} + } + }, + "/user/keys/{key_id}": { + "get": { + "summary": "Get a public SSH key for the authenticated user", + "description": "View extended details for a single public SSH key. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "tags": ["users"], + "operationId": "users/get-public-ssh-key-for-authenticated", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#get-a-public-ssh-key-for-the-authenticated-user" + }, + "parameters": [{ "$ref": "#/components/parameters/key_id" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/key" }, + "examples": { + "default": { "$ref": "#/components/examples/key" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": "keys" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a public SSH key for the authenticated user", + "description": "Removes a public SSH key from the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `admin:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/).", + "tags": ["users"], + "operationId": "users/delete-public-ssh-key-for-authenticated", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#delete-a-public-ssh-key-for-the-authenticated-user" + }, + "parameters": [{ "$ref": "#/components/parameters/key_id" }], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": "keys" + }, + "x-octokit": {} + } + }, + "/user/marketplace_purchases": { + "get": { + "summary": "List subscriptions for the authenticated user", + "description": "Lists the active subscriptions for the authenticated user. You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an [OAuth token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/).", + "tags": ["apps"], + "operationId": "apps/list-subscriptions-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#list-subscriptions-for-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/user-marketplace-purchase" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/user-marketplace-purchase-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": "marketplace" + }, + "x-octokit": {} + } + }, + "/user/marketplace_purchases/stubbed": { + "get": { + "summary": "List subscriptions for the authenticated user (stubbed)", + "description": "Lists the active subscriptions for the authenticated user. You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an [OAuth token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/).", + "tags": ["apps"], + "operationId": "apps/list-subscriptions-for-authenticated-user-stubbed", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/apps#list-subscriptions-for-the-authenticated-user-stubbed" + }, + "parameters": [ + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/user-marketplace-purchase" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/user-marketplace-purchase-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": "marketplace" + }, + "x-octokit": {} + } + }, + "/user/memberships/orgs": { + "get": { + "summary": "List organization memberships for the authenticated user", + "description": "", + "tags": ["orgs"], + "operationId": "orgs/list-memberships-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#list-organization-memberships-for-the-authenticated-user" + }, + "parameters": [ + { + "name": "state", + "description": "Indicates the state of the memberships to return. Can be either `active` or `pending`. If not specified, the API returns both active and pending memberships.", + "in": "query", + "required": false, + "schema": { "type": "string", "enum": ["active", "pending"] } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/org-membership" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/org-membership-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "orgs", + "subcategory": "members" + }, + "x-octokit": {} + } + }, + "/user/memberships/orgs/{org}": { + "get": { + "summary": "Get an organization membership for the authenticated user", + "description": "", + "tags": ["orgs"], + "operationId": "orgs/get-membership-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#get-an-organization-membership-for-the-authenticated-user" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/org-membership" }, + "examples": { + "default": { "$ref": "#/components/examples/org-membership" } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "orgs", + "subcategory": "members" + }, + "x-octokit": {} + }, + "patch": { + "summary": "Update an organization membership for the authenticated user", + "description": "", + "tags": ["orgs"], + "operationId": "orgs/update-membership-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/orgs#update-an-organization-membership-for-the-authenticated-user" + }, + "parameters": [{ "$ref": "#/components/parameters/org" }], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "state": { + "type": "string", + "description": "The state that the membership should be in. Only `\"active\"` will be accepted.", + "enum": ["active"] + } + }, + "required": ["state"] + }, + "example": { "state": "active" } + } + } + }, + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/org-membership" }, + "examples": { + "default": { + "$ref": "#/components/examples/org-membership-2" + } + } + } + } + }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "orgs", + "subcategory": "members" + }, + "x-octokit": {} + } + }, + "/user/migrations": { + "get": { + "summary": "List user migrations", + "description": "Lists all migrations a user has started.", + "tags": ["migrations"], + "operationId": "migrations/list-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#list-user-migrations" + }, + "parameters": [ + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/migration" } + }, + "examples": { + "default": { "$ref": "#/components/examples/migration-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "wyandotte", + "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" + } + ], + "category": "migrations", + "subcategory": "users" + }, + "x-octokit": {} + }, + "post": { + "summary": "Start a user migration", + "description": "Initiates the generation of a user migration archive.", + "tags": ["migrations"], + "operationId": "migrations/start-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#start-a-user-migration" + }, + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "lock_repositories": { + "description": "Lock the repositories being migrated at the start of the migration", + "example": true, + "readOnly": false, + "type": "boolean" + }, + "exclude_attachments": { + "description": "Do not include attachments in the migration", + "example": true, + "readOnly": false, + "type": "boolean" + }, + "exclude": { + "description": "Exclude attributes from the API response to improve performance", + "example": ["repositories"], + "readOnly": false, + "type": "array", + "items": { + "description": "Allowed values that can be passed to the exclude param.", + "enum": ["repositories"], + "example": "repositories", + "type": "string" + } + }, + "repositories": { + "type": "array", + "items": { + "description": "Repository path, owner and name", + "example": "acme/widgets", + "type": "string" + } + } + }, + "required": ["repositories"], + "type": "object" + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/migration" }, + "examples": { + "default": { "$ref": "#/components/examples/migration-2" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "migrations", + "subcategory": "users" + }, + "x-octokit": {} + } + }, + "/user/migrations/{migration_id}": { + "get": { + "summary": "Get a user migration status", + "description": "Fetches a single user migration. The response includes the `state` of the migration, which can be one of the following values:\n\n* `pending` - the migration hasn't started yet.\n* `exporting` - the migration is in progress.\n* `exported` - the migration finished successfully.\n* `failed` - the migration failed.\n\nOnce the migration has been `exported` you can [download the migration archive](https://docs.github.com/rest/reference/migrations#download-a-user-migration-archive).", + "tags": ["migrations"], + "operationId": "migrations/get-status-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#get-a-user-migration-status" + }, + "parameters": [ + { "$ref": "#/components/parameters/migration_id" }, + { + "name": "exclude", + "in": "query", + "required": false, + "schema": { "type": "array", "items": { "type": "string" } } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/migration" }, + "examples": { + "default": { "$ref": "#/components/examples/migration" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "wyandotte", + "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" + } + ], + "category": "migrations", + "subcategory": "users" + }, + "x-octokit": {} + } + }, + "/user/migrations/{migration_id}/archive": { + "get": { + "summary": "Download a user migration archive", + "description": "Fetches the URL to download the migration archive as a `tar.gz` file. Depending on the resources your repository uses, the migration archive can contain JSON files with data for these objects:\n\n* attachments\n* bases\n* commit\\_comments\n* issue\\_comments\n* issue\\_events\n* issues\n* milestones\n* organizations\n* projects\n* protected\\_branches\n* pull\\_request\\_reviews\n* pull\\_requests\n* releases\n* repositories\n* review\\_comments\n* schema\n* users\n\nThe archive will also contain an `attachments` directory that includes all attachment files uploaded to GitHub.com and a `repositories` directory that contains the repository's Git data.", + "tags": ["migrations"], + "operationId": "migrations/get-archive-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#download-a-user-migration-archive" + }, + "parameters": [{ "$ref": "#/components/parameters/migration_id" }], + "responses": { + "302": { "description": "response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "wyandotte", + "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" + } + ], + "category": "migrations", + "subcategory": "users" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Delete a user migration archive", + "description": "Deletes a previous migration archive. Downloadable migration archives are automatically deleted after seven days. Migration metadata, which is returned in the [List user migrations](https://docs.github.com/rest/reference/migrations#list-user-migrations) and [Get a user migration status](https://docs.github.com/rest/reference/migrations#get-a-user-migration-status) endpoints, will continue to be available even after an archive is deleted.", + "tags": ["migrations"], + "operationId": "migrations/delete-archive-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#delete-a-user-migration-archive" + }, + "parameters": [{ "$ref": "#/components/parameters/migration_id" }], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "wyandotte", + "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" + } + ], + "category": "migrations", + "subcategory": "users" + }, + "x-octokit": {} + } + }, + "/user/migrations/{migration_id}/repos/{repo_name}/lock": { + "delete": { + "summary": "Unlock a user repository", + "description": "Unlocks a repository. You can lock repositories when you [start a user migration](https://docs.github.com/rest/reference/migrations#start-a-user-migration). Once the migration is complete you can unlock each repository to begin using it again or [delete the repository](https://docs.github.com/rest/reference/repos#delete-a-repository) if you no longer need the source data. Returns a status of `404 Not Found` if the repository is not locked.", + "tags": ["migrations"], + "operationId": "migrations/unlock-repo-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#unlock-a-user-repository" + }, + "parameters": [ + { "$ref": "#/components/parameters/migration_id" }, + { "$ref": "#/components/parameters/repo_name" } + ], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "wyandotte", + "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" + } + ], + "category": "migrations", + "subcategory": "users" + }, + "x-octokit": {} + } + }, + "/user/migrations/{migration_id}/repositories": { + "get": { + "summary": "List repositories for a user migration", + "description": "Lists all the repositories for this user migration.", + "tags": ["migrations"], + "operationId": "migrations/list-repos-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/migrations#list-repositories-for-a-user-migration" + }, + "parameters": [ + { "$ref": "#/components/parameters/migration_id" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/minimal-repository" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/minimal-repository-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "wyandotte", + "note": "To access the Migrations API, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.wyandotte-preview+json\n```" + } + ], + "category": "migrations", + "subcategory": "users" + }, + "x-octokit": {} + } + }, + "/user/orgs": { + "get": { + "summary": "List organizations for the authenticated user", + "description": "List organizations for the authenticated user.\n\n**OAuth scope requirements**\n\nThis only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with `read:org` scope, you can publicize your organization membership with `user` scope, etc.). Therefore, this API requires at least `user` or `read:org` scope. OAuth requests with insufficient scope receive a `403 Forbidden` response.", + "tags": ["orgs"], + "operationId": "orgs/list-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/orgs/#list-organizations-for-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-simple" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/organization-simple-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "orgs", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/user/projects": { + "post": { + "summary": "Create a user project", + "description": "", + "tags": ["projects"], + "operationId": "projects/create-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/projects/#create-a-user-project" + }, + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "name": { + "description": "Name of the project", + "example": "Week One Sprint", + "type": "string" + }, + "body": { + "description": "Body of the project", + "example": "This project represents the sprint of the first week in January", + "type": "string", + "nullable": true + } + }, + "required": ["name"], + "type": "object" + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/project" }, + "examples": { + "default": { "$ref": "#/components/examples/project" } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "415": { "$ref": "#/components/responses/preview_header_missing" }, + "422": { "$ref": "#/components/responses/validation_failed_simple" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/user/public_emails": { + "get": { + "summary": "List public email addresses for the authenticated user", + "description": "Lists your publicly visible email address, which you can set with the [Set primary email visibility for the authenticated user](https://docs.github.com/rest/reference/users#set-primary-email-visibility-for-the-authenticated-user) endpoint. This endpoint is accessible with the `user:email` scope.", + "tags": ["users"], + "operationId": "users/list-public-emails-for-authenticated", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#list-public-email-addresses-for-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/email" } + }, + "examples": { + "default": { "$ref": "#/components/examples/email-items-2" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": "emails" + }, + "x-octokit": {} + } + }, + "/user/repos": { + "get": { + "summary": "List repositories for the authenticated user", + "description": "Lists repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access.\n\nThe authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership.", + "tags": ["repos"], + "operationId": "repos/list-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#list-repositories-for-the-authenticated-user" + }, + "parameters": [ + { + "name": "visibility", + "description": "Can be one of `all`, `public`, or `private`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["all", "public", "private"], + "default": "all" + } + }, + { + "name": "affiliation", + "description": "Comma-separated list of values. Can include: \n\\* `owner`: Repositories that are owned by the authenticated user. \n\\* `collaborator`: Repositories that the user has been added to as a collaborator. \n\\* `organization_member`: Repositories that the user has access to through being a member of an organization. This includes every repository on every team that the user is on.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "owner,collaborator,organization_member" + } + }, + { + "name": "type", + "description": "Can be one of `all`, `owner`, `public`, `private`, `member`. Default: `all` \n \nWill cause a `422` error if used in the same request as **visibility** or **affiliation**. Will cause a `422` error if used in the same request as **visibility** or **affiliation**.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["all", "owner", "public", "private", "member"], + "default": "all" + } + }, + { + "name": "sort", + "description": "Can be one of `created`, `updated`, `pushed`, `full_name`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["created", "updated", "pushed", "full_name"], + "default": "full_name" + } + }, + { + "name": "direction", + "description": "Can be one of `asc` or `desc`. Default: `asc` when using `full_name`, otherwise `desc`", + "in": "query", + "required": false, + "schema": { "type": "string", "enum": ["asc", "desc"] } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" }, + { "$ref": "#/components/parameters/since" }, + { "$ref": "#/components/parameters/before" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/repository" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-items-default-response" + } + } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + }, + "post": { + "summary": "Create a repository for the authenticated user", + "description": "Creates a new repository for the authenticated user.\n\n**OAuth scope requirements**\n\nWhen using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include:\n\n* `public_repo` scope or `repo` scope to create a public repository\n* `repo` scope to create a private repository", + "tags": ["repos"], + "operationId": "repos/create-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#create-a-repository-for-the-authenticated-user" + }, + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "name": { + "description": "The name of the repository.", + "type": "string", + "example": "Team Environment" + }, + "description": { + "description": "A short description of the repository.", + "type": "string" + }, + "homepage": { + "description": "A URL with more information about the repository.", + "type": "string" + }, + "private": { + "description": "Whether the repository is private or public.", + "default": false, + "type": "boolean" + }, + "has_issues": { + "description": "Whether issues are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_projects": { + "description": "Whether projects are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "team_id": { + "description": "The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization.", + "type": "integer" + }, + "auto_init": { + "description": "Whether the repository is initialized with a minimal README.", + "default": false, + "type": "boolean" + }, + "gitignore_template": { + "description": "The desired language or platform to apply to the .gitignore.", + "example": "Haskell", + "type": "string" + }, + "license_template": { + "description": "The license keyword of the open source license for this repository.", + "example": "mit", + "type": "string" + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "default": false, + "type": "boolean", + "example": false + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "is_template": { + "description": "Whether this repository acts as a template that can be used to generate new repositories.", + "default": false, + "type": "boolean", + "example": true + } + }, + "required": ["name"], + "type": "object" + } + } + } + }, + "responses": { + "201": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/repository" }, + "examples": { + "default": { "$ref": "#/components/examples/repository" } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World", + "schema": { "type": "string" } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "400": { "$ref": "#/components/responses/bad_request" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": false, + "name": "nebula", + "note": "You can set the visibility of a repository using the new `visibility` parameter in the [Repositories API](https://docs.github.com/rest/reference/repos/), and get a repository's visibility with a new response key. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes/).\n\nTo access repository visibility during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.nebula-preview+json\n```" + }, + { + "required": false, + "name": "baptiste", + "note": "The `is_template` and `template_repository` keys are currently available for developer to preview. See [Create a repository using a template](https://docs.github.com/repos#create-a-repository-using-a-template) to learn how to create template repositories. To access these new response keys during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.baptiste-preview+json\n```" + } + ], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/user/repository_invitations": { + "get": { + "summary": "List repository invitations for the authenticated user", + "description": "When authenticating as a user, this endpoint will list all currently open repository invitations for that user.", + "tags": ["repos"], + "operationId": "repos/list-invitations-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#list-repository-invitations-for-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/repository-invitation" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/repository-invitation-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "repos", + "subcategory": "invitations" + }, + "x-octokit": {} + } + }, + "/user/repository_invitations/{invitation_id}": { + "patch": { + "summary": "Accept a repository invitation", + "description": "", + "tags": ["repos"], + "operationId": "repos/accept-invitation", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#accept-a-repository-invitation" + }, + "parameters": [{ "$ref": "#/components/parameters/invitation_id" }], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "409": { "$ref": "#/components/responses/conflict" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "repos", + "subcategory": "invitations" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Decline a repository invitation", + "description": "", + "tags": ["repos"], + "operationId": "repos/decline-invitation", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/repos#decline-a-repository-invitation" + }, + "parameters": [{ "$ref": "#/components/parameters/invitation_id" }], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" }, + "409": { "$ref": "#/components/responses/conflict" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "repos", + "subcategory": "invitations" + }, + "x-octokit": {} + } + }, + "/user/starred": { + "get": { + "summary": "List repositories starred by the authenticated user", + "description": "Lists repositories the authenticated user has starred.\n\nYou can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header:", + "tags": ["activity"], + "operationId": "activity/list-repos-starred-by-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#list-repositories-starred-by-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/sort" }, + { "$ref": "#/components/parameters/direction" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/repository" } + }, + "examples": { + "default-response": { + "$ref": "#/components/examples/repository-items-default-response" + } + } + }, + "application/vnd.github.v3.star+json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/starred-repository" } + }, + "examples": { + "alternative-response-with-star-creation-timestamps": { + "$ref": "#/components/examples/starred-repository-items-alternative-response-with-star-creation-timestamps" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "activity", + "subcategory": "starring" + }, + "x-octokit": {} + } + }, + "/user/starred/{owner}/{repo}": { + "get": { + "summary": "Check if a repository is starred by the authenticated user", + "description": "", + "tags": ["activity"], + "operationId": "activity/check-repo-is-starred-by-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#check-if-a-repository-is-starred-by-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "204": { + "description": "Response if this repository is starred by you" + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { + "description": "Response if this repository is not starred by you", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/basic-error" } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "activity", + "subcategory": "starring" + }, + "x-octokit": {} + }, + "put": { + "summary": "Star a repository for the authenticated user", + "description": "Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs).\"", + "tags": ["activity"], + "operationId": "activity/star-repo-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#star-a-repository-for-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "activity", + "subcategory": "starring" + }, + "x-octokit": {} + }, + "delete": { + "summary": "Unstar a repository for the authenticated user", + "description": "", + "tags": ["activity"], + "operationId": "activity/unstar-repo-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#unstar-a-repository-for-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/owner" }, + { "$ref": "#/components/parameters/repo" } + ], + "responses": { + "204": { "description": "Empty response" }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "activity", + "subcategory": "starring" + }, + "x-octokit": {} + } + }, + "/user/subscriptions": { + "get": { + "summary": "List repositories watched by the authenticated user", + "description": "Lists repositories the authenticated user is watching.", + "tags": ["activity"], + "operationId": "activity/list-watched-repos-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#list-repositories-watched-by-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/minimal-repository" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/minimal-repository-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "401": { "$ref": "#/components/responses/requires_authentication" }, + "403": { "$ref": "#/components/responses/forbidden" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "activity", + "subcategory": "watching" + }, + "x-octokit": {} + } + }, + "/user/teams": { + "get": { + "summary": "List teams for the authenticated user", + "description": "List all of the teams across all of the organizations to which the authenticated user belongs. This method requires `user`, `repo`, or `read:org` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/) when authenticating via [OAuth](https://docs.github.com/apps/building-oauth-apps/).", + "tags": ["teams"], + "operationId": "teams/list-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/teams/#list-teams-for-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/team-full" } + }, + "examples": { + "default": { "$ref": "#/components/examples/team-full-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "304": { "$ref": "#/components/responses/not_modified" }, + "403": { "$ref": "#/components/responses/forbidden" }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "teams", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/users": { + "get": { + "summary": "List users", + "description": "Lists all users, in the order that they signed up on GitHub. This list includes personal user accounts and organization accounts.\n\nNote: Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of users.", + "tags": ["users"], + "operationId": "users/list", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/users/#list-users" + }, + "parameters": [ + { "$ref": "#/components/parameters/since-user" }, + { "$ref": "#/components/parameters/per_page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + }, + "headers": { + "Link": { + "example": "; rel=\"next\"", + "schema": { "type": "string" } + } + } + }, + "304": { "$ref": "#/components/responses/not_modified" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "users", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/users/{username}": { + "get": { + "summary": "Get a user", + "description": "Provides publicly available information about someone with a GitHub account.\n\nGitHub Apps with the `Plan` user permission can use this endpoint to retrieve information about a user's GitHub plan. The GitHub App must be authenticated as a user. See \"[Identifying and authorizing users for GitHub Apps](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)\" for details about authentication. For an example response, see 'Response with GitHub plan information' below\"\n\nThe `email` key in the following response is the publicly visible email address from your GitHub [profile page](https://github.com/settings/profile). When setting up your profile, you can select a primary email address to be “public” which provides an email entry for this endpoint. If you do not set a public email address for `email`, then it will have a value of `null`. You only see publicly visible email addresses when authenticated with GitHub. For more information, see [Authentication](https://docs.github.com/rest/overview/resources-in-the-rest-api#authentication).\n\nThe Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see \"[Emails API](https://docs.github.com/rest/reference/users#emails)\".", + "tags": ["users"], + "operationId": "users/get-by-username", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/users/#get-a-user" + }, + "parameters": [{ "$ref": "#/components/parameters/username" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { "$ref": "#/components/schemas/private-user" }, + { "$ref": "#/components/schemas/public-user" } + ] + }, + "examples": { + "default-response": { + "$ref": "#/components/examples/public-user-default-response" + }, + "response-with-git-hub-plan-information": { + "$ref": "#/components/examples/public-user-response-with-git-hub-plan-information" + } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "users", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/users/{username}/events": { + "get": { + "summary": "List events for the authenticated user", + "description": "If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events.", + "tags": ["activity"], + "operationId": "activity/list-events-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#list-events-for-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/username" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/event" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "activity", + "subcategory": "events" + }, + "x-octokit": {} + } + }, + "/users/{username}/events/orgs/{org}": { + "get": { + "summary": "List organization events for the authenticated user", + "description": "This is the user's organization dashboard. You must be authenticated as the user to view this.", + "tags": ["activity"], + "operationId": "activity/list-org-events-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#list-organization-events-for-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/username" }, + { "$ref": "#/components/parameters/org" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/event" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "activity", + "subcategory": "events" + }, + "x-octokit": {} + } + }, + "/users/{username}/events/public": { + "get": { + "summary": "List public events for a user", + "description": "", + "tags": ["activity"], + "operationId": "activity/list-public-events-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#list-public-events-for-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/username" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/event" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "activity", + "subcategory": "events" + }, + "x-octokit": {} + } + }, + "/users/{username}/followers": { + "get": { + "summary": "List followers of a user", + "description": "Lists the people following the specified user.", + "tags": ["users"], + "operationId": "users/list-followers-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#list-followers-of-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/username" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "users", + "subcategory": "followers" + }, + "x-octokit": {} + } + }, + "/users/{username}/following": { + "get": { + "summary": "List the people a user follows", + "description": "Lists the people who the specified user follows.", + "tags": ["users"], + "operationId": "users/list-following-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#list-the-people-a-user-follows" + }, + "parameters": [ + { "$ref": "#/components/parameters/username" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "users", + "subcategory": "followers" + }, + "x-octokit": {} + } + }, + "/users/{username}/following/{target_user}": { + "get": { + "summary": "Check if a user follows another user", + "description": "", + "tags": ["users"], + "operationId": "users/check-following-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#check-if-a-user-follows-another-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/username" }, + { + "name": "target_user", + "in": "path", + "required": true, + "schema": { "type": "string" } + } + ], + "responses": { + "204": { + "description": "Response if the user follows the target user" + }, + "404": { + "description": "Response if the user does not follow the target user" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "users", + "subcategory": "followers" + }, + "x-octokit": {} + } + }, + "/users/{username}/gists": { + "get": { + "summary": "List gists for a user", + "description": "Lists public gists for the specified user:", + "tags": ["gists"], + "operationId": "gists/list-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/gists/#list-gists-for-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/username" }, + { "$ref": "#/components/parameters/since" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/base-gist" } + }, + "examples": { + "default": { "$ref": "#/components/examples/base-gist-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "gists", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/users/{username}/gpg_keys": { + "get": { + "summary": "List GPG keys for a user", + "description": "Lists the GPG keys for a user. This information is accessible by anyone.", + "tags": ["users"], + "operationId": "users/list-gpg-keys-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#list-gpg-keys-for-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/username" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/gpg-key" } + }, + "examples": { + "default": { "$ref": "#/components/examples/gpg-key-items" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "users", + "subcategory": "gpg-keys" + }, + "x-octokit": {} + } + }, + "/users/{username}/hovercard": { + "get": { + "summary": "Get contextual information for a user", + "description": "Provides hovercard information when authenticated through basic auth or OAuth with the `repo` scope. You can find out more about someone in relation to their pull requests, issues, repositories, and organizations.\n\nThe `subject_type` and `subject_id` parameters provide context for the person's hovercard, which returns more information than without the parameters. For example, if you wanted to find out more about `octocat` who owns the `Spoon-Knife` repository via cURL, it would look like this:\n\n```shell\n curl -u username:token\n https://api.github.com/users/octocat/hovercard?subject_type=repository&subject_id=1300192\n```", + "tags": ["users"], + "operationId": "users/get-context-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/users/#get-contextual-information-for-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/username" }, + { + "name": "subject_type", + "description": "Identifies which additional information you'd like to receive about the person's hovercard. Can be `organization`, `repository`, `issue`, `pull_request`. **Required** when using `subject_id`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["organization", "repository", "issue", "pull_request"] + } + }, + { + "name": "subject_id", + "description": "Uses the ID for the `subject_type` you specified. **Required** when using `subject_type`.", + "in": "query", + "required": false, + "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/hovercard" }, + "examples": { + "default": { "$ref": "#/components/examples/hovercard" } + } + } + } + }, + "404": { "$ref": "#/components/responses/not_found" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "users", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/users/{username}/installation": { + "get": { + "summary": "Get a user installation for the authenticated app", + "description": "Enables an authenticated GitHub App to find the user’s installation information.\n\nYou must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.", + "tags": ["apps"], + "operationId": "apps/get-user-installation", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/apps/#get-a-user-installation-for-the-authenticated-app" + }, + "parameters": [{ "$ref": "#/components/parameters/username" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/installation" }, + "examples": { + "default": { "$ref": "#/components/examples/installation" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "apps", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/users/{username}/keys": { + "get": { + "summary": "List public keys for a user", + "description": "Lists the _verified_ public SSH keys for a user. This is accessible by anyone.", + "tags": ["users"], + "operationId": "users/list-public-keys-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/users#list-public-keys-for-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/username" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/key-simple" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/key-simple-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "users", + "subcategory": "keys" + }, + "x-octokit": {} + } + }, + "/users/{username}/orgs": { + "get": { + "summary": "List organizations for a user", + "description": "List [public organization memberships](https://help.github.com/articles/publicizing-or-concealing-organization-membership) for the specified user.\n\nThis method only lists _public_ memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the [List organizations for the authenticated user](https://docs.github.com/rest/reference/orgs#list-organizations-for-the-authenticated-user) API instead.", + "tags": ["orgs"], + "operationId": "orgs/list-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/orgs/#list-organizations-for-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/username" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-simple" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/organization-simple-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "orgs", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/users/{username}/projects": { + "get": { + "summary": "List user projects", + "description": "", + "tags": ["projects"], + "operationId": "projects/list-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/projects/#list-user-projects" + }, + "parameters": [ + { "$ref": "#/components/parameters/username" }, + { + "name": "state", + "description": "Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["open", "closed", "all"], + "default": "open" + } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/project" } + }, + "examples": { + "default": { "$ref": "#/components/examples/project-items-3" } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + }, + "415": { "$ref": "#/components/responses/preview_header_missing" }, + "422": { "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + { + "required": true, + "name": "inertia", + "note": "The Projects API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2016-10-27-changes-to-projects-api) for full details. To access the API during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.inertia-preview+json\n```" + } + ], + "category": "projects", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/users/{username}/received_events": { + "get": { + "summary": "List events received by the authenticated user", + "description": "These are events that you've received by watching repos and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events.", + "tags": ["activity"], + "operationId": "activity/list-received-events-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#list-events-received-by-the-authenticated-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/username" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/event" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "activity", + "subcategory": "events" + }, + "x-octokit": {} + } + }, + "/users/{username}/received_events/public": { + "get": { + "summary": "List public events received by a user", + "description": "", + "tags": ["activity"], + "operationId": "activity/list-received-public-events-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#list-public-events-received-by-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/username" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/event" } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "activity", + "subcategory": "events" + }, + "x-octokit": {} + } + }, + "/users/{username}/repos": { + "get": { + "summary": "List repositories for a user", + "description": "Lists public repositories for the specified user.", + "tags": ["repos"], + "operationId": "repos/list-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/repos/#list-repositories-for-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/username" }, + { + "name": "type", + "description": "Can be one of `all`, `owner`, `member`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["all", "owner", "member"], + "default": "owner" + } + }, + { + "name": "sort", + "description": "Can be one of `created`, `updated`, `pushed`, `full_name`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["created", "updated", "pushed", "full_name"], + "default": "full_name" + } + }, + { + "name": "direction", + "description": "Can be one of `asc` or `desc`. Default: `asc` when using `full_name`, otherwise `desc`", + "in": "query", + "required": false, + "schema": { "type": "string", "enum": ["asc", "desc"] } + }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/minimal-repository" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/minimal-repository-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [ + { + "required": false, + "name": "nebula", + "note": "You can set the visibility of a repository using the new `visibility` parameter in the [Repositories API](https://docs.github.com/rest/reference/repos/), and get a repository's visibility with a new response key. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes/).\n\nTo access repository visibility during the preview period, you must provide a custom [media type](https://docs.github.com/rest/overview/media-types) in the `Accept` header:\n```shell\napplication/vnd.github.nebula-preview+json\n```" + } + ], + "category": "repos", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/users/{username}/settings/billing/actions": { + "get": { + "summary": "Get GitHub Actions billing for a user", + "description": "Gets the summary of the free and paid GitHub Actions minutes used.\n\nPaid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see \"[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)\".\n\nAccess tokens must have the `user` scope.", + "operationId": "billing/get-github-actions-billing-user", + "tags": ["billing"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/billing/#get-github-actions-billing-for-a-user" + }, + "parameters": [{ "$ref": "#/components/parameters/username" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-billing-usage" + }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-billing-usage" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "billing", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/users/{username}/settings/billing/packages": { + "get": { + "summary": "Get GitHub Packages billing for a user", + "description": "Gets the free and paid storage used for GitHub Packages in gigabytes.\n\nPaid minutes only apply to packages stored for private repositories. For more information, see \"[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages).\"\n\nAccess tokens must have the `user` scope.", + "operationId": "billing/get-github-packages-billing-user", + "tags": ["billing"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/billing/#get-github-packages-billing-for-a-user" + }, + "parameters": [{ "$ref": "#/components/parameters/username" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/packages-billing-usage" + }, + "examples": { + "default": { + "$ref": "#/components/examples/packages-billing-usage" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "billing", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/users/{username}/settings/billing/shared-storage": { + "get": { + "summary": "Get shared storage billing for a user", + "description": "Gets the estimated paid and estimated total storage used for GitHub Actions and Github Packages.\n\nPaid minutes only apply to packages stored for private repositories. For more information, see \"[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages).\"\n\nAccess tokens must have the `user` scope.", + "operationId": "billing/get-shared-storage-billing-user", + "tags": ["billing"], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/v3/billing/#get-shared-storage-billing-for-a-user" + }, + "parameters": [{ "$ref": "#/components/parameters/username" }], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/combined-billing-usage" + }, + "examples": { + "default": { + "$ref": "#/components/examples/combined-billing-usage" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "billing", + "subcategory": null + }, + "x-octokit": {} + } + }, + "/users/{username}/starred": { + "get": { + "summary": "List repositories starred by a user", + "description": "Lists repositories a user has starred.\n\nYou can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header:", + "tags": ["activity"], + "operationId": "activity/list-repos-starred-by-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#list-repositories-starred-by-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/username" }, + { "$ref": "#/components/parameters/sort" }, + { "$ref": "#/components/parameters/direction" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/repository" } + }, + "examples": { + "default-response": { + "$ref": "#/components/examples/repository-items-default-response" + } + } + }, + "application/vnd.github.v3.star+json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/starred-repository" } + }, + "examples": { + "alternative-response-with-star-creation-timestamps": { + "$ref": "#/components/examples/starred-repository-items-alternative-response-with-star-creation-timestamps" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "activity", + "subcategory": "starring" + }, + "x-octokit": {} + } + }, + "/users/{username}/subscriptions": { + "get": { + "summary": "List repositories watched by a user", + "description": "Lists repositories a user is watching.", + "tags": ["activity"], + "operationId": "activity/list-repos-watched-by-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/activity#list-repositories-watched-by-a-user" + }, + "parameters": [ + { "$ref": "#/components/parameters/username" }, + { "$ref": "#/components/parameters/per_page" }, + { "$ref": "#/components/parameters/page" } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { "$ref": "#/components/schemas/minimal-repository" } + }, + "examples": { + "default": { + "$ref": "#/components/examples/minimal-repository-items" + } + } + } + }, + "headers": { "Link": { "$ref": "#/components/headers/link" } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "activity", + "subcategory": "watching" + }, + "x-octokit": {} + } + }, + "/zen": { + "get": { + "summary": "Get the Zen of GitHub", + "description": "Get a random sentence from the Zen of GitHub", + "tags": ["meta"], + "operationId": "meta/get-zen", + "responses": { + "200": { + "description": "response", + "content": { "text/plain": { "schema": { "type": "string" } } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "previews": [], + "category": "meta" + }, + "x-octokit": {} + } + } + }, + "components": { + "schemas": { + "simple-user": { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "login": { "type": "string", "example": "octocat" }, + "id": { "type": "integer", "example": 1 }, + "node_id": { "type": "string", "example": "MDQ6VXNlcjE=" }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { "type": "string", "example": "", "nullable": true }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { "type": "string", "example": "User" }, + "site_admin": { "type": "boolean" }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:55Z\"" + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ], + "nullable": true + }, + "integration": { + "title": "GitHub app", + "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the GitHub app", + "example": 37, + "type": "integer" + }, + "slug": { + "description": "The slug name of the GitHub app", + "example": "probot-owners", + "type": "string" + }, + "node_id": { + "type": "string", + "example": "MDExOkludGVncmF0aW9uMQ==" + }, + "owner": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "name": { + "description": "The name of the GitHub app", + "example": "Probot Owners", + "type": "string" + }, + "description": { "type": "string", "example": "", "nullable": true }, + "external_url": { + "type": "string", + "format": "uri", + "example": "https://example.com" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/apps/super-ci" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2017-07-08T16:18:44-04:00" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2017-07-08T16:18:44-04:00" + }, + "permissions": { + "description": "The set of permissions for the GitHub app", + "type": "object", + "properties": { + "issues": { "type": "string" }, + "checks": { "type": "string" }, + "metadata": { "type": "string" }, + "contents": { "type": "string" }, + "deployments": { "type": "string" } + }, + "additionalProperties": { "type": "string" }, + "example": { "issues": "read", "deployments": "write" } + }, + "events": { + "description": "The list of events for the GitHub app", + "example": ["label", "deployment"], + "type": "array", + "items": { "type": "string" } + }, + "installations_count": { + "description": "The number of installations associated with the GitHub app", + "example": 5, + "type": "integer" + }, + "client_id": { + "type": "string", + "example": "\"Iv1.25b5d1e65ffc4022\"" + }, + "client_secret": { + "type": "string", + "example": "\"1d4b2097ac622ba702d19de498f005747a8b21d3\"" + }, + "webhook_secret": { + "type": "string", + "example": "\"6fba8f2fc8a7e8f2cca5577eddd82ca7586b3b6b\"" + }, + "pem": { + "type": "string", + "example": "\"-----BEGIN RSA PRIVATE KEY-----\\nMIIEogIBAAKCAQEArYxrNYD/iT5CZVpRJu4rBKmmze3PVmT/gCo2ATUvDvZTPTey\\nxcGJ3vvrJXazKk06pN05TN29o98jrYz4cengG3YGsXPNEpKsIrEl8NhbnxapEnM9\\nJCMRe0P5JcPsfZlX6hmiT7136GRWiGOUba2X9+HKh8QJVLG5rM007TBER9/z9mWm\\nrJuNh+m5l320oBQY/Qq3A7wzdEfZw8qm/mIN0FCeoXH1L6B8xXWaAYBwhTEh6SSn\\nZHlO1Xu1JWDmAvBCi0RO5aRSKM8q9QEkvvHP4yweAtK3N8+aAbZ7ovaDhyGz8r6r\\nzhU1b8Uo0Z2ysf503WqzQgIajr7Fry7/kUwpgQIDAQABAoIBADwJp80Ko1xHPZDy\\nfcCKBDfIuPvkmSW6KumbsLMaQv1aGdHDwwTGv3t0ixSay8CGlxMRtRDyZPib6SvQ\\n6OH/lpfpbMdW2ErkksgtoIKBVrDilfrcAvrNZu7NxRNbhCSvN8q0s4ICecjbbVQh\\nnueSdlA6vGXbW58BHMq68uRbHkP+k+mM9U0mDJ1HMch67wlg5GbayVRt63H7R2+r\\nVxcna7B80J/lCEjIYZznawgiTvp3MSanTglqAYi+m1EcSsP14bJIB9vgaxS79kTu\\noiSo93leJbBvuGo8QEiUqTwMw4tDksmkLsoqNKQ1q9P7LZ9DGcujtPy4EZsamSJT\\ny8OJt0ECgYEA2lxOxJsQk2kI325JgKFjo92mQeUObIvPfSNWUIZQDTjniOI6Gv63\\nGLWVFrZcvQBWjMEQraJA9xjPbblV8PtfO87MiJGLWCHFxmPz2dzoedN+2Coxom8m\\nV95CLz8QUShuao6u/RYcvUaZEoYs5bHcTmy5sBK80JyEmafJPtCQVxMCgYEAy3ar\\nZr3yv4xRPEPMat4rseswmuMooSaK3SKub19WFI5IAtB/e7qR1Rj9JhOGcZz+OQrl\\nT78O2OFYlgOIkJPvRMrPpK5V9lslc7tz1FSh3BZMRGq5jSyD7ETSOQ0c8T2O/s7v\\nbeEPbVbDe4mwvM24XByH0GnWveVxaDl51ABD65sCgYB3ZAspUkOA5egVCh8kNpnd\\nSd6SnuQBE3ySRlT2WEnCwP9Ph6oPgn+oAfiPX4xbRqkL8q/k0BdHQ4h+zNwhk7+h\\nWtPYRAP1Xxnc/F+jGjb+DVaIaKGU18MWPg7f+FI6nampl3Q0KvfxwX0GdNhtio8T\\nTj1E+SnFwh56SRQuxSh2gwKBgHKjlIO5NtNSflsUYFM+hyQiPiqnHzddfhSG+/3o\\nm5nNaSmczJesUYreH5San7/YEy2UxAugvP7aSY2MxB+iGsiJ9WD2kZzTUlDZJ7RV\\nUzWsoqBR+eZfVJ2FUWWvy8TpSG6trh4dFxImNtKejCR1TREpSiTV3Zb1dmahK9GV\\nrK9NAoGAbBxRLoC01xfxCTgt5BDiBcFVh4fp5yYKwavJPLzHSpuDOrrI9jDn1oKN\\nonq5sDU1i391zfQvdrbX4Ova48BN+B7p63FocP/MK5tyyBoT8zQEk2+vWDOw7H/Z\\nu5dTCPxTIsoIwUw1I+7yIxqJzLPFgR2gVBwY1ra/8iAqCj+zeBw=\\n-----END RSA PRIVATE KEY-----\\n\"" + } + }, + "required": [ + "id", + "node_id", + "owner", + "name", + "description", + "external_url", + "html_url", + "created_at", + "updated_at", + "permissions", + "events" + ], + "additionalProperties": true + }, + "basic-error": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { "type": "string" }, + "documentation_url": { "type": "string" } + } + }, + "validation-error-simple": { + "title": "Validation Error Simple", + "description": "Validation Error Simple", + "type": "object", + "required": ["message", "documentation_url"], + "properties": { + "message": { "type": "string" }, + "documentation_url": { "type": "string" }, + "errors": { "type": "array", "items": { "type": "string" } } + } + }, + "webhook-config-url": { + "type": "string", + "description": "The URL to which the payloads will be delivered.", + "example": "https://example.com/webhook", + "format": "uri" + }, + "webhook-config-content-type": { + "type": "string", + "description": "The media type used to serialize the payloads. Supported values include `json` and `form`. The default is `form`.", + "example": "\"json\"" + }, + "webhook-config-secret": { + "type": "string", + "description": "If provided, the `secret` will be used as the `key` to generate the HMAC hex digest value for [delivery signature headers](https://docs.github.com/webhooks/event-payloads/#delivery-headers).", + "example": "\"********\"" + }, + "webhook-config-insecure-ssl": { + "type": "string", + "description": "Determines whether the SSL certificate of the host for `url` will be verified when delivering payloads. Supported values include `0` (verification is performed) and `1` (verification is not performed). The default is `0`. **We strongly recommend not setting this to `1` as you are subject to man-in-the-middle and other attacks.**", + "example": "\"0\"" + }, + "webhook-config": { + "title": "Webhook Configuration", + "description": "Configuration object of the webhook", + "type": "object", + "properties": { + "url": { "$ref": "#/components/schemas/webhook-config-url" }, + "content_type": { + "$ref": "#/components/schemas/webhook-config-content-type" + }, + "secret": { "$ref": "#/components/schemas/webhook-config-secret" }, + "insecure_ssl": { + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + } + } + }, + "enterprise": { + "title": "Enterprise", + "description": "An enterprise account", + "type": "object", + "properties": { + "description": { + "description": "A short description of the enterprise.", + "type": "string", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/enterprises/octo-business" + }, + "website_url": { + "description": "The enterprise's website URL.", + "type": "string", + "nullable": true, + "format": "uri" + }, + "id": { + "description": "Unique identifier of the enterprise", + "example": 42, + "type": "integer" + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "description": "The name of the enterprise.", + "type": "string", + "example": "Octo Business" + }, + "slug": { + "description": "The slug url identifier for the enterprise.", + "type": "string", + "example": "octo-business" + }, + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time", + "example": "2019-01-26T19:01:12Z" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time", + "example": "2019-01-26T19:14:43Z" + }, + "avatar_url": { "type": "string", "format": "uri" } + }, + "required": [ + "id", + "node_id", + "name", + "slug", + "html_url", + "created_at", + "updated_at", + "avatar_url" + ] + }, + "installation": { + "title": "Installation", + "description": "Installation", + "type": "object", + "properties": { + "id": { + "description": "The ID of the installation.", + "type": "integer", + "example": 1 + }, + "account": { + "nullable": true, + "anyOf": [ + { "$ref": "#/components/schemas/simple-user" }, + { "$ref": "#/components/schemas/enterprise" } + ] + }, + "repository_selection": { + "description": "Describe whether all repositories have been selected or there's a selection involved", + "type": "string", + "enum": ["all", "selected"] + }, + "access_tokens_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/installations/1/access_tokens" + }, + "repositories_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/installation/repositories" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/organizations/github/settings/installations/1" + }, + "app_id": { "type": "integer", "example": 1 }, + "target_id": { + "description": "The ID of the user or organization this token is being scoped to.", + "type": "integer" + }, + "target_type": { "type": "string", "example": "Organization" }, + "permissions": { + "type": "object", + "example": { "issues": "read", "deployments": "write" }, + "properties": { + "deployments": { "type": "string" }, + "checks": { "type": "string" }, + "metadata": { "type": "string" }, + "contents": { "type": "string" }, + "pull_requests": { "type": "string" }, + "statuses": { "type": "string" }, + "issues": { "type": "string", "example": "\"read\"" }, + "organization_administration": { + "type": "string", + "example": "\"read\"" + } + } + }, + "events": { "type": "array", "items": { "type": "string" } }, + "created_at": { "type": "string", "format": "date-time" }, + "updated_at": { "type": "string", "format": "date-time" }, + "single_file_name": { + "type": "string", + "example": "config.yaml", + "nullable": true + }, + "has_multiple_single_files": { "type": "boolean", "example": true }, + "single_file_paths": { + "type": "array", + "items": { + "type": "string", + "example": ["config.yml", ".github/issue_TEMPLATE.md"] + } + }, + "app_slug": { "type": "string", "example": "github-actions" }, + "suspended_by": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "suspended_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "contact_email": { + "type": "string", + "example": "\"test_13f1e99741e3e004@d7e1eb0bc0a1ba12.com\"", + "nullable": true + } + }, + "required": [ + "id", + "app_id", + "app_slug", + "target_id", + "target_type", + "single_file_name", + "repository_selection", + "access_tokens_url", + "html_url", + "repositories_url", + "events", + "account", + "permissions", + "created_at", + "updated_at" + ] + }, + "license-simple": { + "title": "License Simple", + "description": "License Simple", + "type": "object", + "properties": { + "key": { "type": "string", "example": "mit" }, + "name": { "type": "string", "example": "MIT License" }, + "url": { + "type": "string", + "nullable": true, + "format": "uri", + "example": "https://api.github.com/licenses/mit" + }, + "spdx_id": { "type": "string", "nullable": true, "example": "MIT" }, + "node_id": { "type": "string", "example": "MDc6TGljZW5zZW1pdA==" }, + "html_url": { "type": "string", "format": "uri" } + }, + "required": ["key", "name", "url", "spdx_id", "node_id"] + }, + "repository": { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the repository", + "example": 42, + "type": "integer" + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "description": "The name of the repository.", + "type": "string", + "example": "Team Environment" + }, + "full_name": { "type": "string", "example": "octocat/Hello-World" }, + "license": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/license-simple" }] + }, + "forks": { "type": "integer" }, + "permissions": { + "type": "object", + "properties": { + "admin": { "type": "boolean" }, + "pull": { "type": "boolean" }, + "triage": { "type": "boolean" }, + "push": { "type": "boolean" }, + "maintain": { "type": "boolean" } + }, + "required": ["admin", "pull", "push"] + }, + "owner": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "private": { + "description": "Whether the repository is private or public.", + "default": false, + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World" + }, + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true + }, + "fork": { "type": "boolean" }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" + }, + "archive_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + }, + "assignees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + }, + "blobs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + }, + "branches_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + }, + "collaborators_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + }, + "comments_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + }, + "commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + }, + "compare_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + }, + "contents_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + }, + "contributors_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + }, + "deployments_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + }, + "downloads_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" + }, + "forks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" + }, + "git_commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + }, + "git_refs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + }, + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + }, + "git_url": { + "type": "string", + "example": "git:github.com/octocat/Hello-World.git" + }, + "issue_comment_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + }, + "issue_events_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + }, + "issues_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + }, + "keys_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + }, + "labels_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + }, + "languages_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/languages" + }, + "merges_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/merges" + }, + "milestones_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + }, + "notifications_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + }, + "pulls_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + }, + "releases_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + }, + "ssh_url": { + "type": "string", + "example": "git@github.com:octocat/Hello-World.git" + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + }, + "statuses_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + }, + "subscription_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + }, + "tags_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" + }, + "teams_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" + }, + "trees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + }, + "clone_url": { + "type": "string", + "example": "https://github.com/octocat/Hello-World.git" + }, + "mirror_url": { + "type": "string", + "format": "uri", + "example": "git:git.example.com/octocat/Hello-World", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "svn_url": { + "type": "string", + "format": "uri", + "example": "https://svn.github.com/octocat/Hello-World" + }, + "homepage": { + "type": "string", + "format": "uri", + "example": "https://github.com", + "nullable": true + }, + "language": { "type": "string", "nullable": true }, + "forks_count": { "type": "integer", "example": 9 }, + "stargazers_count": { "type": "integer", "example": 80 }, + "watchers_count": { "type": "integer", "example": 80 }, + "size": { "type": "integer", "example": 108 }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string", + "example": "master" + }, + "open_issues_count": { "type": "integer", "example": 0 }, + "is_template": { + "description": "Whether this repository acts as a template that can be used to generate new repositories.", + "default": false, + "type": "boolean", + "example": true + }, + "topics": { "type": "array", "items": { "type": "string" } }, + "has_issues": { + "description": "Whether issues are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_projects": { + "description": "Whether projects are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_pages": { "type": "boolean" }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "archived": { + "description": "Whether the repository is archived.", + "default": false, + "type": "boolean" + }, + "disabled": { + "type": "boolean", + "description": "Returns whether or not this repository disabled." + }, + "visibility": { + "description": "The repository visibility: public, private, or internal.", + "default": "public", + "type": "string" + }, + "pushed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:14:43Z", + "nullable": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "template_repository": { + "type": "object", + "nullable": true, + "properties": { + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "name": { "type": "string" }, + "full_name": { "type": "string" }, + "owner": { + "type": "object", + "properties": { + "login": { "type": "string" }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "avatar_url": { "type": "string" }, + "gravatar_id": { "type": "string" }, + "url": { "type": "string" }, + "html_url": { "type": "string" }, + "followers_url": { "type": "string" }, + "following_url": { "type": "string" }, + "gists_url": { "type": "string" }, + "starred_url": { "type": "string" }, + "subscriptions_url": { "type": "string" }, + "organizations_url": { "type": "string" }, + "repos_url": { "type": "string" }, + "events_url": { "type": "string" }, + "received_events_url": { "type": "string" }, + "type": { "type": "string" }, + "site_admin": { "type": "boolean" } + } + }, + "private": { "type": "boolean" }, + "html_url": { "type": "string" }, + "description": { "type": "string" }, + "fork": { "type": "boolean" }, + "url": { "type": "string" }, + "archive_url": { "type": "string" }, + "assignees_url": { "type": "string" }, + "blobs_url": { "type": "string" }, + "branches_url": { "type": "string" }, + "collaborators_url": { "type": "string" }, + "comments_url": { "type": "string" }, + "commits_url": { "type": "string" }, + "compare_url": { "type": "string" }, + "contents_url": { "type": "string" }, + "contributors_url": { "type": "string" }, + "deployments_url": { "type": "string" }, + "downloads_url": { "type": "string" }, + "events_url": { "type": "string" }, + "forks_url": { "type": "string" }, + "git_commits_url": { "type": "string" }, + "git_refs_url": { "type": "string" }, + "git_tags_url": { "type": "string" }, + "git_url": { "type": "string" }, + "issue_comment_url": { "type": "string" }, + "issue_events_url": { "type": "string" }, + "issues_url": { "type": "string" }, + "keys_url": { "type": "string" }, + "labels_url": { "type": "string" }, + "languages_url": { "type": "string" }, + "merges_url": { "type": "string" }, + "milestones_url": { "type": "string" }, + "notifications_url": { "type": "string" }, + "pulls_url": { "type": "string" }, + "releases_url": { "type": "string" }, + "ssh_url": { "type": "string" }, + "stargazers_url": { "type": "string" }, + "statuses_url": { "type": "string" }, + "subscribers_url": { "type": "string" }, + "subscription_url": { "type": "string" }, + "tags_url": { "type": "string" }, + "teams_url": { "type": "string" }, + "trees_url": { "type": "string" }, + "clone_url": { "type": "string" }, + "mirror_url": { "type": "string" }, + "hooks_url": { "type": "string" }, + "svn_url": { "type": "string" }, + "homepage": { "type": "string" }, + "language": { "type": "string" }, + "forks_count": { "type": "integer" }, + "stargazers_count": { "type": "integer" }, + "watchers_count": { "type": "integer" }, + "size": { "type": "integer" }, + "default_branch": { "type": "string" }, + "open_issues_count": { "type": "integer" }, + "is_template": { "type": "boolean" }, + "topics": { "type": "array", "items": { "type": "string" } }, + "has_issues": { "type": "boolean" }, + "has_projects": { "type": "boolean" }, + "has_wiki": { "type": "boolean" }, + "has_pages": { "type": "boolean" }, + "has_downloads": { "type": "boolean" }, + "archived": { "type": "boolean" }, + "disabled": { "type": "boolean" }, + "visibility": { "type": "string" }, + "pushed_at": { "type": "string" }, + "created_at": { "type": "string" }, + "updated_at": { "type": "string" }, + "permissions": { + "type": "object", + "properties": { + "admin": { "type": "boolean" }, + "push": { "type": "boolean" }, + "pull": { "type": "boolean" } + } + }, + "allow_rebase_merge": { "type": "boolean" }, + "template_repository": { "type": "string" }, + "temp_clone_token": { "type": "string" }, + "allow_squash_merge": { "type": "boolean" }, + "delete_branch_on_merge": { "type": "boolean" }, + "allow_merge_commit": { "type": "boolean" }, + "subscribers_count": { "type": "integer" }, + "network_count": { "type": "integer" } + } + }, + "temp_clone_token": { "type": "string" }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "default": false, + "type": "boolean", + "example": false + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "subscribers_count": { "type": "integer" }, + "network_count": { "type": "integer" }, + "open_issues": { "type": "integer" }, + "watchers": { "type": "integer" }, + "master_branch": { "type": "string" }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:42Z\"" + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url", + "clone_url", + "default_branch", + "forks", + "forks_count", + "git_url", + "has_downloads", + "has_issues", + "has_projects", + "has_wiki", + "has_pages", + "homepage", + "language", + "archived", + "disabled", + "mirror_url", + "open_issues", + "open_issues_count", + "license", + "pushed_at", + "size", + "ssh_url", + "stargazers_count", + "svn_url", + "watchers", + "watchers_count", + "created_at", + "updated_at" + ] + }, + "installation-token": { + "title": "Installation Token", + "description": "Authentication token for a GitHub App installed on a user or org.", + "type": "object", + "properties": { + "token": { "type": "string" }, + "expires_at": { "type": "string" }, + "permissions": { + "type": "object", + "properties": { + "issues": { "type": "string" }, + "contents": { "type": "string" }, + "metadata": { "type": "string", "example": "read" }, + "single_file": { "type": "string", "example": "read" } + } + }, + "repository_selection": { + "type": "string", + "enum": ["all", "selected"] + }, + "repositories": { + "type": "array", + "items": { "$ref": "#/components/schemas/repository" } + }, + "single_file": { "type": "string", "example": "README.md" }, + "has_multiple_single_files": { "type": "boolean", "example": true }, + "single_file_paths": { + "type": "array", + "items": { + "type": "string", + "example": ["config.yml", ".github/issue_TEMPLATE.md"] + } + } + } + }, + "validation-error": { + "title": "Validation Error", + "description": "Validation Error", + "type": "object", + "required": ["message", "documentation_url"], + "properties": { + "message": { "type": "string" }, + "documentation_url": { "type": "string" }, + "errors": { + "type": "array", + "items": { + "type": "object", + "required": ["code"], + "properties": { + "resource": { "type": "string" }, + "field": { "type": "string" }, + "message": { "type": "string" }, + "code": { "type": "string" }, + "index": { "type": "integer" }, + "value": { + "oneOf": [ + { "type": "string", "nullable": true }, + { "type": "integer", "nullable": true }, + { + "type": "array", + "nullable": true, + "items": { "type": "string" } + } + ] + } + } + } + } + } + }, + "application-grant": { + "title": "Application Grant", + "description": "The authorization associated with an OAuth Access.", + "type": "object", + "properties": { + "id": { "type": "integer", "example": 1 }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/applications/grants/1" + }, + "app": { + "type": "object", + "properties": { + "client_id": { "type": "string" }, + "name": { "type": "string" }, + "url": { "type": "string", "format": "uri" } + }, + "required": ["client_id", "name", "url"] + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-09-06T17:26:27Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-09-06T20:39:23Z" + }, + "scopes": { + "type": "array", + "items": { "type": "string" }, + "example": ["public_repo"] + }, + "user": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + } + }, + "required": ["app", "id", "scopes", "url", "created_at", "updated_at"] + }, + "scoped-installation": { + "title": "Scoped Installation", + "type": "object", + "properties": { + "permissions": { + "type": "object", + "example": { "issues": "read", "deployments": "write" } + }, + "repository_selection": { + "description": "Describe whether all repositories have been selected or there's a selection involved", + "type": "string", + "enum": ["all", "selected"] + }, + "single_file_name": { + "type": "string", + "example": "config.yaml", + "nullable": true + }, + "has_multiple_single_files": { "type": "boolean", "example": true }, + "single_file_paths": { + "type": "array", + "items": { + "type": "string", + "example": ["config.yml", ".github/issue_TEMPLATE.md"] + } + }, + "repositories_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "account": { "$ref": "#/components/schemas/simple-user" } + }, + "required": [ + "permissions", + "repository_selection", + "single_file_name", + "repositories_url", + "account" + ] + }, + "authorization": { + "title": "Authorization", + "description": "The authorization for an OAuth app, GitHub App, or a Personal Access Token.", + "type": "object", + "properties": { + "id": { "type": "integer", "example": 1 }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/authorizations/1" + }, + "scopes": { + "description": "A list of scopes that this authorization is in.", + "type": "array", + "items": { "type": "string" }, + "example": ["public_repo", "user"], + "nullable": true + }, + "token": { "type": "string", "example": "" }, + "token_last_eight": { + "type": "string", + "example": "12345678", + "nullable": true + }, + "hashed_token": { + "type": "string", + "example": "25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8", + "nullable": true + }, + "app": { + "type": "object", + "properties": { + "client_id": { "type": "string" }, + "name": { "type": "string" }, + "url": { "type": "string", "format": "uri" } + }, + "required": ["client_id", "name", "url"] + }, + "note": { + "type": "string", + "example": "optional note", + "nullable": true + }, + "note_url": { + "type": "string", + "format": "uri", + "example": "http://optional/note/url", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-09-06T20:39:23Z" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-09-06T17:26:27Z" + }, + "fingerprint": { + "type": "string", + "example": "jklmnop12345678", + "nullable": true + }, + "user": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "installation": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/scoped-installation" }] + } + }, + "required": [ + "app", + "id", + "note", + "note_url", + "scopes", + "token", + "hashed_token", + "token_last_eight", + "fingerprint", + "url", + "created_at", + "updated_at" + ] + }, + "code-of-conduct": { + "title": "Code Of Conduct", + "description": "Code Of Conduct", + "type": "object", + "properties": { + "key": { "type": "string", "example": "contributor_covenant" }, + "name": { "type": "string", "example": "Contributor Covenant" }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/codes_of_conduct/contributor_covenant" + }, + "body": { + "type": "string", + "example": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment include:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response\n to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address,\n posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [EMAIL]. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n" + }, + "html_url": { "type": "string", "format": "uri", "nullable": true } + }, + "required": ["url", "html_url", "key", "name"] + }, + "content-reference-attachment": { + "title": "ContentReferenceAttachment", + "description": "Content Reference attachments allow you to provide context around URLs posted in comments", + "type": "object", + "properties": { + "id": { + "description": "The ID of the attachment", + "example": 21, + "type": "integer" + }, + "title": { + "description": "The title of the attachment", + "example": "Title of the attachment", + "type": "string", + "maxLength": 1024 + }, + "body": { + "description": "The body of the attachment", + "example": "Body of the attachment", + "type": "string", + "maxLength": 262144 + }, + "node_id": { + "description": "The node_id of the content attachment", + "example": "MDE3OkNvbnRlbnRBdHRhY2htZW50MjE=", + "type": "string" + } + }, + "required": ["id", "title", "body"] + }, + "enabled-organizations": { + "type": "string", + "description": "The policy that controls the organizations in the enterprise that are allowed to run GitHub Actions. Can be one of: `all`, `none`, or `selected`.", + "enum": ["all", "none", "selected"] + }, + "allowed-actions": { + "type": "string", + "description": "The permissions policy that controls the actions that are allowed to run. Can be one of: `all`, `local_only`, or `selected`.", + "enum": ["all", "local_only", "selected"] + }, + "selected-actions-url": { + "type": "string", + "description": "The API URL to use to get or set the actions that are allowed to run, when `allowed_actions` is set to `selected`." + }, + "actions-enterprise-permissions": { + "type": "object", + "properties": { + "enabled_organizations": { + "$ref": "#/components/schemas/enabled-organizations" + }, + "selected_organizations_url": { + "type": "string", + "description": "The API URL to use to get or set the selected organizations that are allowed to run GitHub Actions, when `enabled_organizations` is set to `selected`." + }, + "allowed_actions": { "$ref": "#/components/schemas/allowed-actions" }, + "selected_actions_url": { + "$ref": "#/components/schemas/selected-actions-url" + } + } + }, + "organization-simple": { + "title": "Organization Simple", + "description": "Organization Simple", + "type": "object", + "properties": { + "login": { "type": "string", "example": "github" }, + "id": { "type": "integer", "example": 1 }, + "node_id": { + "type": "string", + "example": "MDEyOk9yZ2FuaXphdGlvbjE=" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github/repos" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github/events" + }, + "hooks_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/hooks" + }, + "issues_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/issues" + }, + "members_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/members{/member}" + }, + "public_members_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/public_members{/member}" + }, + "avatar_url": { + "type": "string", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "description": { + "type": "string", + "example": "A great organization", + "nullable": true + } + }, + "required": [ + "login", + "url", + "id", + "node_id", + "repos_url", + "events_url", + "hooks_url", + "issues_url", + "members_url", + "public_members_url", + "avatar_url", + "description" + ] + }, + "selected-actions": { + "type": "object", + "properties": { + "github_owned_allowed": { + "type": "boolean", + "description": "Whether GitHub-owned actions are allowed. For example, this includes the actions in the `actions` organization." + }, + "verified_allowed": { + "type": "boolean", + "description": "Whether actions in GitHub Marketplace from verified creators are allowed. Set to `true` to allow all GitHub Marketplace actions by verified creators." + }, + "patterns_allowed": { + "type": "array", + "description": "Specifies a list of string-matching patterns to allow specific action(s). Wildcards, tags, and SHAs are allowed. For example, `monalisa/octocat@*`, `monalisa/octocat@v2`, `monalisa/*`.\"", + "items": { "type": "string" } + } + } + }, + "runner-groups-enterprise": { + "type": "object", + "properties": { + "id": { "type": "number" }, + "name": { "type": "string" }, + "visibility": { "type": "string" }, + "default": { "type": "boolean" }, + "selected_organizations_url": { "type": "string" }, + "runners_url": { "type": "string" } + } + }, + "runner": { + "title": "Self hosted runners", + "description": "A self hosted runner", + "type": "object", + "properties": { + "id": { + "description": "The id of the runner.", + "type": "integer", + "example": 5 + }, + "name": { + "description": "The name of the runner.", + "type": "string", + "example": "iMac" + }, + "os": { + "description": "The Operating System of the runner.", + "type": "string", + "example": "macos" + }, + "status": { + "description": "The status of the runner.", + "type": "string", + "example": "online" + }, + "busy": { "type": "boolean" }, + "labels": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "Unique identifier of the label." + }, + "name": { + "type": "string", + "description": "Name of the label." + }, + "type": { + "type": "string", + "description": "The type of label. Read-only labels are applied automatically when the runner is configured.", + "enum": ["read-only", "custom"] + } + } + } + } + }, + "required": ["id", "name", "os", "status", "busy", "labels"] + }, + "runner-application": { + "title": "Runner Application", + "description": "Runner Application", + "type": "object", + "properties": { + "os": { "type": "string" }, + "architecture": { "type": "string" }, + "download_url": { "type": "string" }, + "filename": { "type": "string" } + } + }, + "authentication-token": { + "title": "Authentication Token", + "description": "Authentication Token", + "type": "object", + "properties": { + "token": { + "description": "The token used for authentication", + "type": "string", + "example": "v1.1f699f1069f60xxx" + }, + "expires_at": { + "description": "The time this token expires", + "type": "string", + "format": "date-time", + "example": "2016-07-11T22:14:10Z" + }, + "permissions": { + "type": "object", + "example": { "issues": "read", "deployments": "write" } + }, + "repositories": { + "description": "The repositories this token has access to", + "type": "array", + "items": { "$ref": "#/components/schemas/repository" } + }, + "single_file": { + "type": "string", + "example": "config.yaml", + "nullable": true + }, + "repository_selection": { + "description": "Describe whether all repositories have been selected or there's a selection involved", + "type": "string", + "enum": ["all", "selected"] + } + }, + "required": ["token", "expires_at"] + }, + "audit-log-event": { + "type": "object", + "properties": { + "@timestamp": { + "type": "integer", + "description": "The time the audit log event occurred, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time)." + }, + "action": { + "type": "string", + "description": "The name of the action that was performed, for example `user.login` or `repo.create`." + }, + "active": { "type": "boolean" }, + "active_was": { "type": "boolean" }, + "actor": { + "type": "string", + "description": "The actor who performed the action." + }, + "blocked_user": { + "type": "string", + "description": "The username of the account being blocked." + }, + "business": { "type": "string" }, + "config": { "type": "array" }, + "config_was": { "type": "array" }, + "content_type": { "type": "string" }, + "created_at": { + "type": "integer", + "description": "The time the audit log event was recorded, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time)." + }, + "deploy_key_fingerprint": { "type": "string" }, + "emoji": { "type": "string" }, + "events": { "type": "array" }, + "events_were": { "type": "array" }, + "explanation": { "type": "string" }, + "fingerprint": { "type": "string" }, + "hook_id": { "type": "integer" }, + "limited_availability": { "type": "boolean" }, + "message": { "type": "string" }, + "name": { "type": "string" }, + "old_user": { "type": "string" }, + "openssh_public_key": { "type": "string" }, + "org": { "type": "string" }, + "previous_visibility": { "type": "string" }, + "read_only": { "type": "boolean" }, + "repo": { + "type": "string", + "description": "The name of the repository." + }, + "repository": { + "type": "string", + "description": "The name of the repository." + }, + "repository_public": { "type": "boolean" }, + "target_login": { "type": "string" }, + "team": { "type": "string" }, + "transport_protocol": { + "type": "integer", + "description": "The type of protocol (for example, HTTP or SSH) used to transfer Git data." + }, + "transport_protocol_name": { + "type": "string", + "description": "A human readable name for the protocol (for example, HTTP or SSH) used to transfer Git data." + }, + "user": { + "type": "string", + "description": "The user that was affected by the action performed (if available)." + }, + "visibility": { + "type": "string", + "description": "The repository visibility, for example `public` or `private`." + } + } + }, + "actions-billing-usage": { + "type": "object", + "properties": { + "total_minutes_used": { + "type": "integer", + "description": "The sum of the free and paid GitHub Actions minutes used." + }, + "total_paid_minutes_used": { + "type": "integer", + "description": "The total paid GitHub Actions minutes used." + }, + "included_minutes": { + "type": "integer", + "description": "The amount of free GitHub Actions minutes available." + }, + "minutes_used_breakdown": { + "type": "object", + "properties": { + "UBUNTU": { + "type": "integer", + "description": "Total minutes used on Ubuntu runner machines." + }, + "MACOS": { + "type": "integer", + "description": "Total minutes used on macOS runner machines." + }, + "WINDOWS": { + "type": "integer", + "description": "Total minutes used on Windows runner machines." + } + } + } + } + }, + "packages-billing-usage": { + "type": "object", + "properties": { + "total_gigabytes_bandwidth_used": { + "type": "integer", + "description": "Sum of the free and paid storage space (GB) for GitHuub Packages." + }, + "total_paid_gigabytes_bandwidth_used": { + "type": "integer", + "description": "Total paid storage space (GB) for GitHuub Packages." + }, + "included_gigabytes_bandwidth": { + "type": "integer", + "description": "Free storage space (GB) for GitHub Packages." + } + } + }, + "combined-billing-usage": { + "type": "object", + "properties": { + "days_left_in_billing_cycle": { + "type": "integer", + "description": "Numbers of days left in billing cycle." + }, + "estimated_paid_storage_for_month": { + "type": "integer", + "description": "Estimated storage space (GB) used in billing cycle." + }, + "estimated_storage_for_month": { + "type": "integer", + "description": "Estimated sum of free and paid storage space (GB) used in billing cycle." + } + } + }, + "actor": { + "title": "Actor", + "description": "Actor", + "type": "object", + "properties": { + "id": { "type": "integer" }, + "login": { "type": "string" }, + "display_login": { "type": "string" }, + "gravatar_id": { "type": "string", "nullable": true }, + "url": { "type": "string", "format": "uri" }, + "avatar_url": { "type": "string", "format": "uri" } + }, + "required": ["id", "login", "gravatar_id", "url", "avatar_url"] + }, + "label": { + "title": "Label", + "description": "Color-coded labels help you categorize and filter your issues (just like labels in Gmail).", + "type": "object", + "properties": { + "id": { "type": "integer", "example": 208045946 }, + "node_id": { + "type": "string", + "example": "MDU6TGFiZWwyMDgwNDU5NDY=" + }, + "url": { + "description": "URL for the label", + "example": "https://api.github.com/repositories/42/labels/bug", + "type": "string", + "format": "uri" + }, + "name": { + "description": "The name of the label.", + "example": "bug", + "type": "string" + }, + "description": { + "type": "string", + "example": "Something isn't working", + "nullable": true + }, + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "example": "FFFFFF", + "type": "string" + }, + "default": { "type": "boolean", "example": true } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "description", + "color", + "default" + ] + }, + "milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/milestones/1" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/milestones/v1.0" + }, + "labels_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/milestones/1/labels" + }, + "id": { "type": "integer", "example": 1002604 }, + "node_id": { + "type": "string", + "example": "MDk6TWlsZXN0b25lMTAwMjYwNA==" + }, + "number": { + "description": "The number of the milestone.", + "type": "integer", + "example": 42 + }, + "state": { + "description": "The state of the milestone.", + "example": "open", + "type": "string", + "enum": ["open", "closed"], + "default": "open" + }, + "title": { + "description": "The title of the milestone.", + "example": "v1.0", + "type": "string" + }, + "description": { + "type": "string", + "example": "Tracking milestone for version 1.0", + "nullable": true + }, + "creator": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "open_issues": { "type": "integer", "example": 4 }, + "closed_issues": { "type": "integer", "example": 8 }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-10T20:09:31Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2014-03-03T18:58:10Z" + }, + "closed_at": { + "type": "string", + "format": "date-time", + "example": "2013-02-12T13:22:01Z", + "nullable": true + }, + "due_on": { + "type": "string", + "format": "date-time", + "example": "2012-10-09T23:39:01Z", + "nullable": true + } + }, + "required": [ + "closed_issues", + "creator", + "description", + "due_on", + "closed_at", + "id", + "node_id", + "labels_url", + "html_url", + "number", + "open_issues", + "state", + "title", + "url", + "created_at", + "updated_at" + ] + }, + "issue-simple": { + "title": "Issue Simple", + "description": "Issue Simple", + "type": "object", + "properties": { + "id": { "type": "integer", "example": 1 }, + "node_id": { "type": "string", "example": "MDU6SXNzdWUx" }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347" + }, + "repository_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" + }, + "labels_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347/labels{/name}" + }, + "comments_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347/events" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/issues/1347" + }, + "number": { "type": "integer", "example": 1347 }, + "state": { "type": "string", "example": "open" }, + "title": { "type": "string", "example": "Found a bug" }, + "body": { + "type": "string", + "example": "I'm having a problem with this." + }, + "user": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "labels": { + "type": "array", + "items": { "$ref": "#/components/schemas/label" } + }, + "assignee": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "assignees": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" }, + "nullable": true + }, + "milestone": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/milestone" }] + }, + "locked": { "type": "boolean", "example": true }, + "active_lock_reason": { + "type": "string", + "example": "too heated", + "nullable": true + }, + "comments": { "type": "integer", "example": 0 }, + "pull_request": { + "type": "object", + "properties": { + "merged_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "diff_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "patch_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "url": { "type": "string", "format": "uri", "nullable": true } + }, + "required": ["diff_url", "html_url", "patch_url", "url"] + }, + "closed_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-22T13:33:48Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-22T13:33:48Z" + }, + "author_association": { "type": "string" }, + "body_html": { "type": "string" }, + "body_text": { "type": "string" }, + "timeline_url": { "type": "string", "format": "uri" }, + "repository": { "$ref": "#/components/schemas/repository" }, + "performed_via_github_app": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/integration" }] + } + }, + "required": [ + "assignee", + "closed_at", + "comments", + "comments_url", + "events_url", + "html_url", + "id", + "node_id", + "labels", + "labels_url", + "milestone", + "number", + "repository_url", + "state", + "locked", + "title", + "url", + "user", + "author_association", + "created_at", + "updated_at" + ] + }, + "reaction-rollup": { + "title": "Reaction Rollup", + "type": "object", + "properties": { + "url": { "type": "string", "format": "uri" }, + "total_count": { "type": "integer" }, + "+1": { "type": "integer" }, + "-1": { "type": "integer" }, + "laugh": { "type": "integer" }, + "confused": { "type": "integer" }, + "heart": { "type": "integer" }, + "hooray": { "type": "integer" }, + "eyes": { "type": "integer" }, + "rocket": { "type": "integer" } + }, + "required": [ + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" + ] + }, + "issue-comment": { + "title": "Issue Comment", + "description": "Comments provide a way for people to collaborate on an issue.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the issue comment", + "example": 42, + "type": "integer" + }, + "node_id": { "type": "string" }, + "url": { + "description": "URL for the issue comment", + "example": "https://api.github.com/repositories/42/issues/comments/1", + "type": "string", + "format": "uri" + }, + "body": { + "description": "Contents of the issue comment", + "example": "What version of Safari were you using when you observed this bug?", + "type": "string" + }, + "body_text": { "type": "string" }, + "body_html": { "type": "string" }, + "html_url": { "type": "string", "format": "uri" }, + "user": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" + }, + "issue_url": { "type": "string", "format": "uri" }, + "author_association": { + "type": "string", + "enum": [ + "collaborator", + "contributor", + "first_timer", + "first_time_contributor", + "mannequin", + "member", + "none", + "owner" + ] + }, + "performed_via_github_app": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/integration" }] + }, + "reactions": { "$ref": "#/components/schemas/reaction-rollup" } + }, + "required": [ + "id", + "node_id", + "html_url", + "issue_url", + "author_association", + "user", + "url", + "created_at", + "updated_at" + ] + }, + "event": { + "title": "Event", + "description": "Event", + "type": "object", + "properties": { + "id": { "type": "string" }, + "type": { "type": "string", "nullable": true }, + "actor": { "$ref": "#/components/schemas/actor" }, + "repo": { + "type": "object", + "properties": { + "id": { "type": "integer" }, + "name": { "type": "string" }, + "url": { "type": "string", "format": "uri" } + }, + "required": ["id", "name", "url"] + }, + "org": { "$ref": "#/components/schemas/actor" }, + "payload": { + "type": "object", + "properties": { + "action": { "type": "string" }, + "issue": { "$ref": "#/components/schemas/issue-simple" }, + "comment": { "$ref": "#/components/schemas/issue-comment" }, + "pages": { + "type": "array", + "items": { + "type": "object", + "properties": { + "page_name": { "type": "string" }, + "title": { "type": "string" }, + "summary": { "type": "string", "nullable": true }, + "action": { "type": "string" }, + "sha": { "type": "string" }, + "html_url": { "type": "string" } + } + } + } + }, + "required": ["action"] + }, + "public": { "type": "boolean" }, + "created_at": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "required": [ + "id", + "type", + "actor", + "repo", + "payload", + "public", + "created_at" + ] + }, + "link-with-type": { + "title": "Link With Type", + "description": "Hypermedia Link with Type", + "type": "object", + "properties": { + "href": { "type": "string" }, + "type": { "type": "string" } + }, + "required": ["href", "type"] + }, + "feed": { + "title": "Feed", + "description": "Feed", + "type": "object", + "properties": { + "timeline_url": { + "type": "string", + "example": "https://github.com/timeline" + }, + "user_url": { + "type": "string", + "example": "https://github.com/{user}" + }, + "current_user_public_url": { + "type": "string", + "example": "https://github.com/octocat" + }, + "current_user_url": { + "type": "string", + "example": "https://github.com/octocat.private?token=abc123" + }, + "current_user_actor_url": { + "type": "string", + "example": "https://github.com/octocat.private.actor?token=abc123" + }, + "current_user_organization_url": { "type": "string", "example": "" }, + "current_user_organization_urls": { + "type": "array", + "example": [ + "https://github.com/organizations/github/octocat.private.atom?token=abc123" + ], + "items": { "type": "string", "format": "uri" } + }, + "security_advisories_url": { + "type": "string", + "example": "https://github.com/security-advisories" + }, + "_links": { + "type": "object", + "properties": { + "timeline": { "$ref": "#/components/schemas/link-with-type" }, + "user": { "$ref": "#/components/schemas/link-with-type" }, + "security_advisories": { + "$ref": "#/components/schemas/link-with-type" + }, + "current_user": { "$ref": "#/components/schemas/link-with-type" }, + "current_user_public": { + "$ref": "#/components/schemas/link-with-type" + }, + "current_user_actor": { + "$ref": "#/components/schemas/link-with-type" + }, + "current_user_organization": { + "$ref": "#/components/schemas/link-with-type" + }, + "current_user_organizations": { + "type": "array", + "items": { "$ref": "#/components/schemas/link-with-type" } + } + }, + "required": ["timeline", "user"] + } + }, + "required": ["_links", "timeline_url", "user_url"] + }, + "base-gist": { + "title": "Base Gist", + "description": "Base Gist", + "type": "object", + "properties": { + "url": { "type": "string", "format": "uri" }, + "forks_url": { "type": "string", "format": "uri" }, + "commits_url": { "type": "string", "format": "uri" }, + "id": { "type": "string" }, + "node_id": { "type": "string" }, + "git_pull_url": { "type": "string", "format": "uri" }, + "git_push_url": { "type": "string", "format": "uri" }, + "html_url": { "type": "string", "format": "uri" }, + "files": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "filename": { "type": "string" }, + "type": { "type": "string" }, + "language": { "type": "string" }, + "raw_url": { "type": "string" }, + "size": { "type": "integer" } + } + } + }, + "public": { "type": "boolean" }, + "created_at": { "type": "string", "format": "date-time" }, + "updated_at": { "type": "string", "format": "date-time" }, + "description": { "type": "string", "nullable": true }, + "comments": { "type": "integer" }, + "user": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "comments_url": { "type": "string", "format": "uri" }, + "owner": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "truncated": { "type": "boolean" }, + "forks": { "type": "array", "items": {} }, + "history": { "type": "array", "items": {} } + }, + "required": [ + "id", + "node_id", + "url", + "forks_url", + "commits_url", + "git_pull_url", + "git_push_url", + "html_url", + "comments_url", + "public", + "description", + "comments", + "user", + "files", + "created_at", + "updated_at" + ] + }, + "gist-simple": { + "title": "Gist Simple", + "description": "Gist Simple", + "type": "object", + "properties": { + "url": { "type": "string" }, + "forks_url": { "type": "string" }, + "commits_url": { "type": "string" }, + "id": { "type": "string" }, + "node_id": { "type": "string" }, + "git_pull_url": { "type": "string" }, + "git_push_url": { "type": "string" }, + "html_url": { "type": "string" }, + "files": { + "type": "object", + "additionalProperties": { + "nullable": true, + "type": "object", + "properties": { + "filename": { "type": "string" }, + "type": { "type": "string" }, + "language": { "type": "string" }, + "raw_url": { "type": "string" }, + "size": { "type": "integer" }, + "truncated": { "type": "boolean" }, + "content": { "type": "string" } + } + } + }, + "public": { "type": "boolean" }, + "created_at": { "type": "string" }, + "updated_at": { "type": "string" }, + "description": { "type": "string", "nullable": true }, + "comments": { "type": "integer" }, + "user": { "type": "string", "nullable": true }, + "comments_url": { "type": "string" }, + "owner": { "$ref": "#/components/schemas/simple-user" }, + "truncated": { "type": "boolean" } + } + }, + "gist-full": { + "title": "Gist Full", + "description": "Gist Full", + "allOf": [ + { "$ref": "#/components/schemas/gist-simple" }, + { + "type": "object", + "properties": { + "forks": { + "type": "array", + "items": { + "type": "object", + "properties": { + "user": { + "type": "object", + "properties": { + "login": { "type": "string" }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "avatar_url": { "type": "string" }, + "gravatar_id": { "type": "string" }, + "url": { "type": "string" }, + "html_url": { "type": "string" }, + "followers_url": { "type": "string" }, + "following_url": { "type": "string" }, + "gists_url": { "type": "string" }, + "starred_url": { "type": "string" }, + "subscriptions_url": { "type": "string" }, + "organizations_url": { "type": "string" }, + "repos_url": { "type": "string" }, + "events_url": { "type": "string" }, + "received_events_url": { "type": "string" }, + "type": { "type": "string" }, + "site_admin": { "type": "boolean" } + } + }, + "url": { "type": "string" }, + "id": { "type": "string" }, + "created_at": { "type": "string" }, + "updated_at": { "type": "string" } + } + } + }, + "history": { + "type": "array", + "items": { + "type": "object", + "properties": { + "url": { "type": "string" }, + "version": { "type": "string" }, + "user": { + "type": "object", + "properties": { + "login": { "type": "string" }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "avatar_url": { "type": "string" }, + "gravatar_id": { "type": "string" }, + "url": { "type": "string" }, + "html_url": { "type": "string" }, + "followers_url": { "type": "string" }, + "following_url": { "type": "string" }, + "gists_url": { "type": "string" }, + "starred_url": { "type": "string" }, + "subscriptions_url": { "type": "string" }, + "organizations_url": { "type": "string" }, + "repos_url": { "type": "string" }, + "events_url": { "type": "string" }, + "received_events_url": { "type": "string" }, + "type": { "type": "string" }, + "site_admin": { "type": "boolean" } + }, + "nullable": true + }, + "change_status": { + "type": "object", + "properties": { + "deletions": { "type": "integer" }, + "additions": { "type": "integer" }, + "total": { "type": "integer" } + } + }, + "committed_at": { "type": "string" } + } + } + }, + "fork_of": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/gist-simple" }] + }, + "url": { + "type": "string", + "example": "\"https://api.github.com/gists/d8de7663c84491ba9eeb9ca1fd20ced8/cb5b95fe0f15ada6d34a421007ba2e4a34e2771e\"" + }, + "forks_url": { + "type": "string", + "example": "\"https://api.github.com/gists/d8de7663c84491ba9eeb9ca1fd20ced8/forks\"" + }, + "commits_url": { + "type": "string", + "example": "\"https://api.github.com/gists/d8de7663c84491ba9eeb9ca1fd20ced8/commits\"" + }, + "id": { + "type": "string", + "example": "\"d8de7663c84491ba9eeb9ca1fd20ced8\"" + }, + "node_id": { + "type": "string", + "example": "\"MDQ6R2lzdGQ4ZGU3NjYzYzg0NDkxYmE5ZWViOWNhMWZkMjBjZWQ4\"" + }, + "git_pull_url": { + "type": "string", + "example": "\"https://gist.github.com/d8de7663c84491ba9eeb9ca1fd20ced8.git\"" + }, + "git_push_url": { + "type": "string", + "example": "\"https://gist.github.com/d8de7663c84491ba9eeb9ca1fd20ced8.git\"" + }, + "html_url": { + "type": "string", + "example": "\"https://gist.github.com/d8de7663c84491ba9eeb9ca1fd20ced8\"" + }, + "created_at": { + "type": "string", + "example": "\"2020-07-09T00:18:06Z\"" + }, + "updated_at": { + "type": "string", + "example": "\"2020-07-09T00:18:06Z\"" + }, + "description": { + "type": "string", + "example": "\"description\"", + "nullable": true + }, + "comments": { "type": "integer", "example": "0" }, + "comments_url": { + "type": "string", + "example": "\"https://api.github.com/gists/d8de7663c84491ba9eeb9ca1fd20ced8/comments\"" + } + } + } + ] + }, + "gist-comment": { + "title": "Gist Comment", + "description": "A comment made to a gist.", + "type": "object", + "properties": { + "id": { "type": "integer", "example": 1 }, + "node_id": { + "type": "string", + "example": "MDExOkdpc3RDb21tZW50MQ==" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/gists/a6db0bec360bb87e9418/comments/1" + }, + "body": { + "description": "The comment text.", + "type": "string", + "maxLength": 65535, + "example": "Body of the attachment" + }, + "user": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-18T23:23:56Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-18T23:23:56Z" + }, + "author_association": { "type": "string" } + }, + "required": [ + "url", + "id", + "node_id", + "user", + "body", + "author_association", + "created_at", + "updated_at" + ] + }, + "gist-commit": { + "title": "Gist Commit", + "description": "Gist Commit", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/gists/aa5a315d61ae9438b18d/57a7f021a713b1c5a6a199b54cc514735d2d462f" + }, + "version": { + "type": "string", + "example": "57a7f021a713b1c5a6a199b54cc514735d2d462f" + }, + "user": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "change_status": { + "type": "object", + "properties": { + "total": { "type": "integer" }, + "additions": { "type": "integer" }, + "deletions": { "type": "integer" } + } + }, + "committed_at": { + "type": "string", + "format": "date-time", + "example": "2010-04-14T02:15:15Z" + } + }, + "required": ["url", "user", "version", "committed_at", "change_status"] + }, + "gitignore-template": { + "title": "Gitignore Template", + "description": "Gitignore Template", + "type": "object", + "properties": { + "name": { "type": "string", "example": "C" }, + "source": { + "type": "string", + "example": "# Object files\n*.o\n\n# Libraries\n*.lib\n*.a\n\n# Shared objects (inc. Windows DLLs)\n*.dll\n*.so\n*.so.*\n*.dylib\n\n# Executables\n*.exe\n*.out\n*.app\n" + } + }, + "required": ["name", "source"] + }, + "issue": { + "title": "Issue", + "description": "Issues are a great way to keep track of tasks, enhancements, and bugs for your projects.", + "type": "object", + "properties": { + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "url": { + "description": "URL for the issue", + "example": "https://api.github.com/repositories/42/issues/1", + "type": "string", + "format": "uri" + }, + "repository_url": { "type": "string", "format": "uri" }, + "labels_url": { "type": "string" }, + "comments_url": { "type": "string", "format": "uri" }, + "events_url": { "type": "string", "format": "uri" }, + "html_url": { "type": "string", "format": "uri" }, + "number": { + "description": "Number uniquely identifying the issue within its repository", + "example": 42, + "type": "integer" + }, + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "example": "open", + "type": "string" + }, + "title": { + "description": "Title of the issue", + "example": "Widget creation fails in Safari on OS X 10.8", + "type": "string" + }, + "body": { + "description": "Contents of the issue", + "example": "It looks like the new widget form is broken on Safari. When I try and create the widget, Safari crashes. This is reproducible on 10.8, but not 10.9. Maybe a browser bug?", + "type": "string" + }, + "user": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "labels": { + "description": "Labels to associate with this issue; pass one or more label names to replace the set of labels on this issue; send an empty array to clear all labels from the issue; note that the labels are silently dropped for users without push access to the repository", + "example": ["bug", "registration"], + "type": "array", + "items": { + "oneOf": [ + { "type": "string" }, + { + "type": "object", + "properties": { + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "url": { "type": "string", "format": "uri" }, + "name": { "type": "string" }, + "description": { "type": "string", "nullable": true }, + "color": { "type": "string", "nullable": true }, + "default": { "type": "boolean" } + } + } + ] + } + }, + "assignee": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "assignees": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" }, + "nullable": true + }, + "milestone": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/milestone" }] + }, + "locked": { "type": "boolean" }, + "active_lock_reason": { "type": "string", "nullable": true }, + "comments": { "type": "integer" }, + "pull_request": { + "type": "object", + "properties": { + "merged_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "diff_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "patch_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "url": { "type": "string", "format": "uri", "nullable": true } + }, + "required": ["diff_url", "html_url", "patch_url", "url"] + }, + "closed_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "created_at": { "type": "string", "format": "date-time" }, + "updated_at": { "type": "string", "format": "date-time" }, + "closed_by": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "body_html": { "type": "string" }, + "body_text": { "type": "string" }, + "timeline_url": { "type": "string", "format": "uri" }, + "repository": { "$ref": "#/components/schemas/repository" }, + "performed_via_github_app": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/integration" }] + }, + "author_association": { "type": "string" }, + "reactions": { "$ref": "#/components/schemas/reaction-rollup" } + }, + "required": [ + "assignee", + "closed_at", + "comments", + "comments_url", + "events_url", + "html_url", + "id", + "node_id", + "labels", + "labels_url", + "milestone", + "number", + "repository_url", + "state", + "locked", + "title", + "url", + "user", + "author_association", + "created_at", + "updated_at" + ] + }, + "license": { + "title": "License", + "description": "License", + "type": "object", + "properties": { + "key": { "type": "string", "example": "mit" }, + "name": { "type": "string", "example": "MIT License" }, + "spdx_id": { "type": "string", "example": "MIT", "nullable": true }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/licenses/mit", + "nullable": true + }, + "node_id": { "type": "string", "example": "MDc6TGljZW5zZW1pdA==" }, + "html_url": { + "type": "string", + "format": "uri", + "example": "http://choosealicense.com/licenses/mit/" + }, + "description": { + "type": "string", + "example": "A permissive license that is short and to the point. It lets people do anything with your code with proper attribution and without warranty." + }, + "implementation": { + "type": "string", + "example": "Create a text file (typically named LICENSE or LICENSE.txt) in the root of your source code and copy the text of the license into the file. Replace [year] with the current year and [fullname] with the name (or names) of the copyright holders." + }, + "permissions": { + "type": "array", + "example": [ + "commercial-use", + "modifications", + "distribution", + "sublicense", + "private-use" + ], + "items": { "type": "string" } + }, + "conditions": { + "type": "array", + "example": ["include-copyright"], + "items": { "type": "string" } + }, + "limitations": { + "type": "array", + "example": ["no-liability"], + "items": { "type": "string" } + }, + "body": { + "type": "string", + "example": "\n\nThe MIT License (MIT)\n\nCopyright (c) [year] [fullname]\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n" + }, + "featured": { "type": "boolean", "example": true } + }, + "required": [ + "key", + "name", + "url", + "spdx_id", + "node_id", + "html_url", + "description", + "implementation", + "permissions", + "conditions", + "limitations", + "body", + "featured" + ] + }, + "marketplace-listing-plan": { + "title": "Marketplace Listing Plan", + "description": "Marketplace Listing Plan", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/marketplace_listing/plans/1313" + }, + "accounts_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/marketplace_listing/plans/1313/accounts" + }, + "id": { "type": "integer", "example": 1313 }, + "number": { "type": "integer", "example": 3 }, + "name": { "type": "string", "example": "Pro" }, + "description": { + "type": "string", + "example": "A professional-grade CI solution" + }, + "monthly_price_in_cents": { "type": "integer", "example": 1099 }, + "yearly_price_in_cents": { "type": "integer", "example": 11870 }, + "price_model": { "type": "string", "example": "flat-rate" }, + "has_free_trial": { "type": "boolean", "example": true }, + "unit_name": { "type": "string", "nullable": true }, + "state": { "type": "string", "example": "published" }, + "bullets": { + "type": "array", + "items": { "type": "string" }, + "example": ["Up to 25 private repositories", "11 concurrent builds"] + } + }, + "required": [ + "url", + "accounts_url", + "id", + "number", + "name", + "description", + "has_free_trial", + "price_model", + "unit_name", + "monthly_price_in_cents", + "state", + "yearly_price_in_cents", + "bullets" + ] + }, + "marketplace-purchase": { + "title": "Marketplace Purchase", + "description": "Marketplace Purchase", + "type": "object", + "properties": { + "url": { "type": "string" }, + "type": { "type": "string" }, + "id": { "type": "integer" }, + "login": { "type": "string" }, + "organization_billing_email": { "type": "string" }, + "marketplace_pending_change": { + "type": "object", + "properties": { + "is_installed": { "type": "boolean" }, + "effective_date": { "type": "string" }, + "unit_count": { "type": "integer", "nullable": true }, + "id": { "type": "integer" }, + "plan": { + "$ref": "#/components/schemas/marketplace-listing-plan" + } + }, + "nullable": true + }, + "marketplace_purchase": { + "type": "object", + "properties": { + "billing_cycle": { "type": "string" }, + "next_billing_date": { "type": "string", "nullable": true }, + "is_installed": { "type": "boolean" }, + "unit_count": { "type": "integer", "nullable": true }, + "on_free_trial": { "type": "boolean" }, + "free_trial_ends_on": { "type": "string", "nullable": true }, + "updated_at": { "type": "string" }, + "plan": { + "$ref": "#/components/schemas/marketplace-listing-plan" + } + } + } + }, + "required": ["url", "id", "type", "login", "marketplace_purchase"] + }, + "api-overview": { + "title": "Api Overview", + "description": "Api Overview", + "type": "object", + "properties": { + "verifiable_password_authentication": { + "type": "boolean", + "example": true + }, + "ssh_key_fingerprints": { + "type": "object", + "properties": { + "SHA256_RSA": { "type": "string" }, + "SHA256_DSA": { "type": "string" } + } + }, + "hooks": { + "type": "array", + "items": { "type": "string" }, + "example": ["127.0.0.1/32"] + }, + "web": { + "type": "array", + "items": { "type": "string" }, + "example": ["127.0.0.1/32"] + }, + "api": { + "type": "array", + "items": { "type": "string" }, + "example": ["127.0.0.1/32"] + }, + "git": { + "type": "array", + "items": { "type": "string" }, + "example": ["127.0.0.1/32"] + }, + "pages": { + "type": "array", + "items": { "type": "string" }, + "example": ["192.30.252.153/32", "192.30.252.154/32"] + }, + "importer": { + "type": "array", + "items": { "type": "string" }, + "example": ["54.158.161.132", "54.226.70.38"] + }, + "github_services_sha": { + "type": "string", + "example": "3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15" + }, + "installed_version": { "type": "string" } + }, + "required": ["verifiable_password_authentication"] + }, + "minimal-repository": { + "title": "Minimal Repository", + "description": "Minimal Repository", + "type": "object", + "properties": { + "id": { "type": "integer", "example": 1296269 }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { "type": "string", "example": "Hello-World" }, + "full_name": { "type": "string", "example": "octocat/Hello-World" }, + "owner": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "private": { "type": "boolean" }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World" + }, + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true + }, + "fork": { "type": "boolean" }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" + }, + "archive_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + }, + "assignees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + }, + "blobs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + }, + "branches_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + }, + "collaborators_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + }, + "comments_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + }, + "commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + }, + "compare_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + }, + "contents_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + }, + "contributors_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + }, + "deployments_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + }, + "downloads_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" + }, + "forks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" + }, + "git_commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + }, + "git_refs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + }, + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + }, + "git_url": { "type": "string" }, + "issue_comment_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + }, + "issue_events_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + }, + "issues_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + }, + "keys_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + }, + "labels_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + }, + "languages_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/languages" + }, + "merges_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/merges" + }, + "milestones_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + }, + "notifications_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + }, + "pulls_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + }, + "releases_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + }, + "ssh_url": { "type": "string" }, + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + }, + "statuses_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + }, + "subscription_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + }, + "tags_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" + }, + "teams_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" + }, + "trees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + }, + "clone_url": { "type": "string" }, + "mirror_url": { "type": "string", "nullable": true }, + "hooks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "svn_url": { "type": "string" }, + "homepage": { "type": "string", "nullable": true }, + "language": { "type": "string", "nullable": true }, + "forks_count": { "type": "integer" }, + "stargazers_count": { "type": "integer" }, + "watchers_count": { "type": "integer" }, + "size": { "type": "integer" }, + "default_branch": { "type": "string" }, + "open_issues_count": { "type": "integer" }, + "is_template": { "type": "boolean" }, + "topics": { "type": "array", "items": { "type": "string" } }, + "has_issues": { "type": "boolean" }, + "has_projects": { "type": "boolean" }, + "has_wiki": { "type": "boolean" }, + "has_pages": { "type": "boolean" }, + "has_downloads": { "type": "boolean" }, + "archived": { "type": "boolean" }, + "disabled": { "type": "boolean" }, + "visibility": { "type": "string" }, + "pushed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:14:43Z", + "nullable": true + }, + "permissions": { + "type": "object", + "properties": { + "admin": { "type": "boolean" }, + "push": { "type": "boolean" }, + "pull": { "type": "boolean" } + } + }, + "template_repository": { "type": "string" }, + "temp_clone_token": { "type": "string" }, + "delete_branch_on_merge": { "type": "boolean" }, + "subscribers_count": { "type": "integer" }, + "network_count": { "type": "integer" }, + "license": { + "type": "object", + "properties": { + "key": { "type": "string" }, + "name": { "type": "string" }, + "spdx_id": { "type": "string" }, + "url": { "type": "string" }, + "node_id": { "type": "string" } + }, + "nullable": true + }, + "forks": { "type": "integer", "example": 0 }, + "open_issues": { "type": "integer", "example": 0 }, + "watchers": { "type": "integer", "example": 0 } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url" + ] + }, + "thread": { + "title": "Thread", + "description": "Thread", + "type": "object", + "properties": { + "id": { "type": "string" }, + "repository": { "$ref": "#/components/schemas/minimal-repository" }, + "subject": { + "type": "object", + "properties": { + "title": { "type": "string" }, + "url": { "type": "string" }, + "latest_comment_url": { "type": "string" }, + "type": { "type": "string" } + } + }, + "reason": { "type": "string" }, + "unread": { "type": "boolean" }, + "updated_at": { "type": "string" }, + "last_read_at": { "type": "string", "nullable": true }, + "url": { "type": "string" }, + "subscription_url": { + "type": "string", + "example": "https://api.github.com/notifications/threads/2/subscription" + } + } + }, + "thread-subscription": { + "title": "Thread Subscription", + "description": "Thread Subscription", + "type": "object", + "properties": { + "subscribed": { "type": "boolean", "example": true }, + "ignored": { "type": "boolean" }, + "reason": { "type": "string", "nullable": true }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2012-10-06T21:34:12Z", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/notifications/threads/1/subscription" + }, + "thread_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/notifications/threads/1" + }, + "repository_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/1" + } + }, + "required": ["created_at", "ignored", "reason", "url", "subscribed"] + }, + "organization-full": { + "title": "Organization Full", + "description": "Organization Full", + "type": "object", + "properties": { + "login": { "type": "string", "example": "github" }, + "id": { "type": "integer", "example": 1 }, + "node_id": { + "type": "string", + "example": "MDEyOk9yZ2FuaXphdGlvbjE=" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github/repos" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github/events" + }, + "hooks_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/hooks" + }, + "issues_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/issues" + }, + "members_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/members{/member}" + }, + "public_members_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/public_members{/member}" + }, + "avatar_url": { + "type": "string", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "description": { + "type": "string", + "example": "A great organization", + "nullable": true + }, + "name": { "type": "string", "example": "github" }, + "company": { "type": "string", "example": "GitHub" }, + "blog": { + "type": "string", + "format": "uri", + "example": "https://github.com/blog" + }, + "location": { "type": "string", "example": "San Francisco" }, + "email": { + "type": "string", + "format": "email", + "example": "octocat@github.com" + }, + "twitter_username": { + "type": "string", + "example": "github", + "nullable": true + }, + "is_verified": { "type": "boolean", "example": true }, + "has_organization_projects": { "type": "boolean", "example": true }, + "has_repository_projects": { "type": "boolean", "example": true }, + "public_repos": { "type": "integer", "example": 2 }, + "public_gists": { "type": "integer", "example": 1 }, + "followers": { "type": "integer", "example": 20 }, + "following": { "type": "integer", "example": 0 }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2008-01-14T04:33:35Z" + }, + "type": { "type": "string", "example": "Organization" }, + "total_private_repos": { "type": "integer", "example": 100 }, + "owned_private_repos": { "type": "integer", "example": 100 }, + "private_gists": { + "type": "integer", + "example": 81, + "nullable": true + }, + "disk_usage": { + "type": "integer", + "example": 10000, + "nullable": true + }, + "collaborators": { + "type": "integer", + "example": 8, + "nullable": true + }, + "billing_email": { + "type": "string", + "format": "email", + "example": "org@example.com", + "nullable": true + }, + "plan": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "space": { "type": "integer" }, + "private_repos": { "type": "integer" }, + "filled_seats": { "type": "integer" }, + "seats": { "type": "integer" } + }, + "required": ["name", "space", "private_repos"] + }, + "default_repository_permission": { + "type": "string", + "nullable": true + }, + "members_can_create_repositories": { + "type": "boolean", + "example": true, + "nullable": true + }, + "two_factor_requirement_enabled": { + "type": "boolean", + "example": true, + "nullable": true + }, + "members_allowed_repository_creation_type": { + "type": "string", + "example": "all" + }, + "members_can_create_public_repositories": { + "type": "boolean", + "example": true + }, + "members_can_create_private_repositories": { + "type": "boolean", + "example": true + }, + "members_can_create_internal_repositories": { + "type": "boolean", + "example": true + }, + "members_can_create_pages": { "type": "boolean", "example": true }, + "updated_at": { "type": "string", "format": "date-time" } + }, + "required": [ + "login", + "url", + "id", + "node_id", + "repos_url", + "events_url", + "hooks_url", + "issues_url", + "members_url", + "public_members_url", + "avatar_url", + "description", + "html_url", + "has_organization_projects", + "has_repository_projects", + "public_repos", + "public_gists", + "followers", + "following", + "type", + "created_at", + "updated_at" + ] + }, + "enabled-repositories": { + "type": "string", + "description": "The policy that controls the repositories in the organization that are allowed to run GitHub Actions. Can be one of: `all`, `none`, or `selected`.", + "enum": ["all", "none", "selected"] + }, + "actions-organization-permissions": { + "type": "object", + "properties": { + "enabled_repositories": { + "$ref": "#/components/schemas/enabled-repositories" + }, + "selected_repositories_url": { + "type": "string", + "description": "The API URL to use to get or set the selected repositories that are allowed to run GitHub Actions, when `enabled_repositories` is set to `selected`." + }, + "allowed_actions": { "$ref": "#/components/schemas/allowed-actions" }, + "selected_actions_url": { + "$ref": "#/components/schemas/selected-actions-url" + } + } + }, + "runner-groups-org": { + "type": "object", + "properties": { + "id": { "type": "number" }, + "name": { "type": "string" }, + "visibility": { "type": "string" }, + "default": { "type": "boolean" }, + "selected_repositories_url": { "type": "string" }, + "runners_url": { "type": "string" }, + "inherited": { "type": "boolean" } + } + }, + "organization-actions-secret": { + "title": "Actions Secret for an Organization", + "description": "Secrets for GitHub Actions for an organization.", + "type": "object", + "properties": { + "name": { + "description": "The name of the secret.", + "example": "SECRET_TOKEN", + "type": "string" + }, + "created_at": { "type": "string", "format": "date-time" }, + "updated_at": { "type": "string", "format": "date-time" }, + "visibility": { + "description": "Visibility of a secret", + "enum": ["all", "private", "selected"], + "type": "string" + }, + "selected_repositories_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/org/secrets/my_secret/repositories" + } + }, + "required": ["name", "created_at", "updated_at", "visibility"] + }, + "actions-public-key": { + "title": "ActionsPublicKey", + "description": "The public key used for setting Actions Secrets.", + "type": "object", + "properties": { + "key_id": { + "description": "The identifier for the key.", + "type": "string", + "example": "1234567" + }, + "key": { + "description": "The Base64 encoded public key.", + "type": "string", + "example": "hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs=" + }, + "id": { "type": "integer", "example": 2 }, + "url": { + "type": "string", + "example": "https://api.github.com/user/keys/2" + }, + "title": { + "type": "string", + "example": "ssh-rsa AAAAB3NzaC1yc2EAAA" + }, + "created_at": { "type": "string", "example": "2011-01-26T19:01:12Z" } + }, + "required": ["key_id", "key"] + }, + "credential-authorization": { + "title": "Credential Authorization", + "description": "Credential Authorization", + "type": "object", + "properties": { + "login": { + "type": "string", + "example": "monalisa", + "description": "User login that owns the underlying credential." + }, + "credential_id": { + "type": "integer", + "example": 1, + "description": "Unique identifier for the credential." + }, + "credential_type": { + "type": "string", + "example": "SSH Key", + "description": "Human-readable description of the credential type." + }, + "token_last_eight": { + "type": "string", + "example": "12345678", + "description": "Last eight characters of the credential. Only included in responses with credential_type of personal access token." + }, + "credential_authorized_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "description": "Date when the credential was authorized for use." + }, + "scopes": { + "type": "array", + "example": ["user", "repo"], + "description": "List of oauth scopes the token has been granted.", + "items": { "type": "string" } + }, + "fingerprint": { + "type": "string", + "example": "jklmnop12345678", + "description": "Unique string to distinguish the credential. Only included in responses with credential_type of SSH Key." + }, + "credential_accessed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "description": "Date when the credential was last accessed. May be null if it was never accessed", + "nullable": true + } + }, + "required": [ + "login", + "credential_id", + "credential_type", + "credential_authorized_at" + ] + }, + "org-hook": { + "title": "Org Hook", + "description": "Org Hook", + "type": "object", + "properties": { + "id": { "type": "integer", "example": 1 }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/octocat/hooks/1" + }, + "ping_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/octocat/hooks/1/pings" + }, + "name": { "type": "string", "example": "web" }, + "events": { + "type": "array", + "example": ["push", "pull_request"], + "items": { "type": "string" } + }, + "active": { "type": "boolean", "example": true }, + "config": { + "type": "object", + "properties": { + "url": { + "type": "string", + "example": "\"http://example.com/2\"" + }, + "insecure_ssl": { "type": "string", "example": "\"0\"" }, + "content_type": { "type": "string", "example": "\"form\"" }, + "secret": { "type": "string", "example": "\"********\"" } + } + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-09-06T20:39:23Z" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-09-06T17:26:27Z" + }, + "type": { "type": "string" } + }, + "required": [ + "id", + "url", + "type", + "name", + "active", + "events", + "config", + "ping_url", + "created_at", + "updated_at" + ] + }, + "interaction-group": { + "type": "string", + "description": "The type of GitHub user that can comment, open issues, or create pull requests while the interaction limit is in effect. Can be one of: `existing_users`, `contributors_only`, `collaborators_only`.", + "example": "collaborators_only", + "enum": ["existing_users", "contributors_only", "collaborators_only"] + }, + "interaction-limit-response": { + "title": "Interaction Limits", + "description": "Interaction limit settings.", + "type": "object", + "properties": { + "limit": { "$ref": "#/components/schemas/interaction-group" }, + "origin": { "type": "string", "example": "repository" }, + "expires_at": { + "type": "string", + "format": "date-time", + "example": "2018-08-17T04:18:39Z" + } + }, + "required": ["limit", "origin", "expires_at"] + }, + "interaction-expiry": { + "type": "string", + "description": "The duration of the interaction restriction. Can be one of: `one_day`, `three_days`, `one_week`, `one_month`, `six_months`. Default: `one_day`.", + "example": "one_month", + "enum": ["one_day", "three_days", "one_week", "one_month", "six_months"] + }, + "interaction-limit": { + "title": "Interaction Restrictions", + "description": "Limit interactions to a specific type of user for a specified duration", + "type": "object", + "properties": { + "limit": { "$ref": "#/components/schemas/interaction-group" }, + "expiry": { "$ref": "#/components/schemas/interaction-expiry" } + }, + "required": ["limit"] + }, + "organization-invitation": { + "title": "Organization Invitation", + "description": "Organization Invitation", + "type": "object", + "properties": { + "id": { "type": "integer" }, + "login": { "type": "string", "nullable": true }, + "email": { "type": "string", "nullable": true }, + "role": { "type": "string" }, + "created_at": { "type": "string" }, + "inviter": { "$ref": "#/components/schemas/simple-user" }, + "team_count": { "type": "integer" }, + "invitation_team_url": { "type": "string" }, + "node_id": { + "type": "string", + "example": "\"MDIyOk9yZ2FuaXphdGlvbkludml0YXRpb24x\"" + }, + "invitation_teams_url": { + "type": "string", + "example": "\"https://api.github.com/organizations/16/invitations/1/teams\"" + } + } + }, + "team-simple": { + "title": "Team Simple", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the team", + "type": "integer", + "example": 1 + }, + "node_id": { "type": "string", "example": "MDQ6VGVhbTE=" }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/1/team/1" + }, + "members_url": { + "type": "string", + "example": "https://api.github.com/organizations/1/team/1/members{/member}" + }, + "name": { + "description": "Name of the team", + "type": "string", + "example": "Justice League" + }, + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true, + "example": "A great team." + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string", + "example": "admin" + }, + "privacy": { + "description": "The level of privacy this team should have", + "type": "string", + "example": "closed" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/orgs/rails/teams/core" + }, + "repositories_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/1/team/1/repos" + }, + "slug": { "type": "string", "example": "justice-league" }, + "ldap_dn": { + "description": "Distinguished Name (DN) that team maps to within LDAP environment", + "example": "uid=example,ou=users,dc=github,dc=com", + "type": "string" + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug" + ], + "nullable": true + }, + "team": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "name": { "type": "string" }, + "slug": { "type": "string" }, + "description": { "type": "string", "nullable": true }, + "privacy": { "type": "string" }, + "permission": { "type": "string" }, + "url": { "type": "string", "format": "uri" }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/orgs/rails/teams/core" + }, + "members_url": { "type": "string" }, + "repositories_url": { "type": "string", "format": "uri" }, + "parent": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/team-simple" }] + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug" + ] + }, + "org-membership": { + "title": "Org Membership", + "description": "Org Membership", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/octocat/memberships/defunkt" + }, + "state": { "type": "string", "example": "active" }, + "role": { "type": "string", "example": "admin" }, + "organization_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/octocat" + }, + "organization": { + "$ref": "#/components/schemas/organization-simple" + }, + "user": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "permissions": { + "type": "object", + "properties": { "can_create_repository": { "type": "boolean" } }, + "required": ["can_create_repository"] + } + }, + "required": [ + "state", + "role", + "organization_url", + "url", + "organization", + "user" + ] + }, + "migration": { + "title": "Migration", + "description": "A migration.", + "type": "object", + "properties": { + "id": { "type": "integer", "example": 79 }, + "owner": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "guid": { + "type": "string", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516" + }, + "state": { "type": "string", "example": "pending" }, + "lock_repositories": { "type": "boolean", "example": true }, + "exclude_attachments": { "type": "boolean" }, + "repositories": { + "type": "array", + "items": { "$ref": "#/components/schemas/repository" } + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/octo-org/migrations/79" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2015-07-06T15:33:38-07:00" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2015-07-06T15:33:38-07:00" + }, + "node_id": { "type": "string" }, + "archive_url": { "type": "string", "format": "uri" }, + "exclude": { "type": "array", "items": {} } + }, + "required": [ + "id", + "node_id", + "owner", + "guid", + "state", + "lock_repositories", + "exclude_attachments", + "repositories", + "url", + "created_at", + "updated_at" + ] + }, + "project": { + "title": "Project", + "description": "Projects are a way to organize columns and cards of work.", + "type": "object", + "properties": { + "owner_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/api-playground/projects-test" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/projects/1002604" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/api-playground/projects-test/projects/12" + }, + "columns_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/projects/1002604/columns" + }, + "id": { "type": "integer", "example": 1002604 }, + "node_id": { + "type": "string", + "example": "MDc6UHJvamVjdDEwMDI2MDQ=" + }, + "name": { + "description": "Name of the project", + "example": "Week One Sprint", + "type": "string" + }, + "body": { + "description": "Body of the project", + "example": "This project represents the sprint of the first week in January", + "type": "string", + "nullable": true + }, + "number": { "type": "integer", "example": 1 }, + "state": { + "description": "State of the project; either 'open' or 'closed'", + "example": "open", + "type": "string" + }, + "creator": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-10T20:09:31Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2014-03-03T18:58:10Z" + }, + "organization_permission": { + "description": "The baseline permission that all organization members have on this project", + "type": "string", + "enum": ["read", "write", "admin", "none"] + }, + "private": { + "description": "Whether or not this project can be seen by everyone.", + "type": "boolean" + }, + "cards_url": { "type": "string", "format": "uri" }, + "permissions": { + "type": "object", + "properties": { + "read": { "type": "boolean" }, + "write": { "type": "boolean" }, + "admin": { "type": "boolean" } + }, + "required": ["read", "write", "admin"] + } + }, + "required": [ + "id", + "node_id", + "number", + "name", + "body", + "state", + "url", + "html_url", + "owner_url", + "creator", + "columns_url", + "created_at", + "updated_at" + ] + }, + "group-mapping": { + "title": "GroupMapping", + "description": "External Groups to be mapped to a team for membership", + "type": "object", + "properties": { + "groups": { + "description": "Array of groups to be mapped to this team", + "example": [ + { + "group_id": "111a1a11-aaa1-1aaa-11a1-a1a1a1a1a1aa", + "group_name": "saml-azuread-test", + "group_description": "A group of Developers working on AzureAD SAML SSO" + }, + { + "group_id": "2bb2bb2b-bb22-22bb-2bb2-bb2bbb2bb2b2", + "group_name": "saml-azuread-test2", + "group_description": "Another group of Developers working on AzureAD SAML SSO" + } + ], + "type": "array", + "items": { + "type": "object", + "required": ["group_id", "group_name", "group_description"], + "properties": { + "group_id": { + "description": "The ID of the group", + "example": "111a1a11-aaa1-1aaa-11a1-a1a1a1a1a1aa", + "type": "string" + }, + "group_name": { + "description": "The name of the group", + "example": "saml-azuread-test", + "type": "string" + }, + "group_description": { + "description": "a description of the group", + "example": "A group of Developers working on AzureAD SAML SSO", + "type": "string" + } + } + } + }, + "group_id": { + "description": "The ID of the group", + "example": "111a1a11-aaa1-1aaa-11a1-a1a1a1a1a1aa", + "type": "string" + }, + "group_name": { + "description": "The name of the group", + "example": "saml-azuread-test", + "type": "string" + }, + "group_description": { + "description": "a description of the group", + "example": "A group of Developers working on AzureAD SAML SSO", + "type": "string" + }, + "status": { + "description": "synchronization status for this group mapping", + "example": "unsynced", + "type": "string" + }, + "synced_at": { + "description": "the time of the last sync for this group-mapping", + "example": "2019-06-03 22:27:15:000 -700", + "type": "string" + } + } + }, + "team-full": { + "title": "Full Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the team", + "example": 42, + "type": "integer" + }, + "node_id": { "type": "string", "example": "MDQ6VGVhbTE=" }, + "url": { + "description": "URL for the team", + "example": "https://api.github.com/organizations/1/team/1", + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/orgs/rails/teams/core" + }, + "name": { + "description": "Name of the team", + "example": "Developers", + "type": "string" + }, + "slug": { "type": "string", "example": "justice-league" }, + "description": { + "type": "string", + "example": "A great team.", + "nullable": true + }, + "privacy": { + "description": "The level of privacy this team should have", + "type": "string", + "enum": ["closed", "secret"], + "example": "closed" + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "example": "push", + "type": "string" + }, + "members_url": { + "type": "string", + "example": "https://api.github.com/organizations/1/team/1/members{/member}" + }, + "repositories_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/1/team/1/repos" + }, + "parent": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/team-simple" }] + }, + "members_count": { "type": "integer", "example": 3 }, + "repos_count": { "type": "integer", "example": 10 }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2017-07-14T16:53:42Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2017-08-17T12:37:15Z" + }, + "organization": { "$ref": "#/components/schemas/organization-full" }, + "ldap_dn": { + "description": "Distinguished Name (DN) that team maps to within LDAP environment", + "example": "uid=example,ou=users,dc=github,dc=com", + "type": "string" + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug", + "created_at", + "updated_at", + "members_count", + "repos_count", + "organization" + ] + }, + "team-discussion": { + "title": "Team Discussion", + "description": "A team discussion is a persistent record of a free-form conversation within a team.", + "type": "object", + "properties": { + "author": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "body": { + "description": "The main text of the discussion.", + "example": "Please suggest improvements to our workflow in comments.", + "type": "string" + }, + "body_html": { + "type": "string", + "example": "

Hi! This is an area for us to collaborate as a team

" + }, + "body_version": { + "description": "The current version of the body content. If provided, this update operation will be rejected if the given version does not match the latest version on the server.", + "example": "0307116bbf7ced493b8d8a346c650b71", + "type": "string" + }, + "comments_count": { "type": "integer", "example": 0 }, + "comments_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/1/team/2343027/discussions/1/comments" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2018-01-25T18:56:31Z" + }, + "last_edited_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/orgs/github/teams/justice-league/discussions/1" + }, + "node_id": { + "type": "string", + "example": "MDE0OlRlYW1EaXNjdXNzaW9uMQ==" + }, + "number": { + "description": "The unique sequence number of a team discussion.", + "example": 42, + "type": "integer" + }, + "pinned": { + "description": "Whether or not this discussion should be pinned for easy retrieval.", + "example": true, + "type": "boolean" + }, + "private": { + "description": "Whether or not this discussion should be restricted to team members and organization administrators.", + "example": true, + "type": "boolean" + }, + "team_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/1/team/2343027" + }, + "title": { + "description": "The title of the discussion.", + "example": "How can we improve our workflow?", + "type": "string" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2018-01-25T18:56:31Z" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/1/team/2343027/discussions/1" + }, + "reactions": { "$ref": "#/components/schemas/reaction-rollup" } + }, + "required": [ + "author", + "body", + "body_html", + "body_version", + "comments_count", + "comments_url", + "created_at", + "last_edited_at", + "html_url", + "pinned", + "private", + "node_id", + "number", + "team_url", + "title", + "updated_at", + "url" + ] + }, + "team-discussion-comment": { + "title": "Team Discussion Comment", + "description": "A reply to a discussion within a team.", + "type": "object", + "properties": { + "author": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "body": { + "description": "The main text of the comment.", + "example": "I agree with this suggestion.", + "type": "string" + }, + "body_html": { + "type": "string", + "example": "

Do you like apples?

" + }, + "body_version": { + "description": "The current version of the body content. If provided, this update operation will be rejected if the given version does not match the latest version on the server.", + "example": "0307116bbf7ced493b8d8a346c650b71", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2018-01-15T23:53:58Z" + }, + "last_edited_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "discussion_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/1/team/2403582/discussions/1" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/orgs/github/teams/justice-league/discussions/1/comments/1" + }, + "node_id": { + "type": "string", + "example": "MDIxOlRlYW1EaXNjdXNzaW9uQ29tbWVudDE=" + }, + "number": { + "description": "The unique sequence number of a team discussion comment.", + "example": 42, + "type": "integer" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2018-01-15T23:53:58Z" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/1/team/2403582/discussions/1/comments/1" + }, + "reactions": { "$ref": "#/components/schemas/reaction-rollup" } + }, + "required": [ + "author", + "body", + "body_html", + "body_version", + "created_at", + "last_edited_at", + "discussion_url", + "html_url", + "node_id", + "number", + "updated_at", + "url" + ] + }, + "reaction": { + "title": "Reaction", + "description": "Reactions to conversations provide a way to help people express their feelings more simply and effectively.", + "type": "object", + "properties": { + "id": { "type": "integer", "example": 1 }, + "node_id": { "type": "string", "example": "MDg6UmVhY3Rpb24x" }, + "user": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "content": { + "description": "The reaction to use", + "example": "heart", + "type": "string", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2016-05-20T20:09:31Z" + } + }, + "required": ["id", "node_id", "user", "content", "created_at"] + }, + "team-membership": { + "title": "Team Membership", + "description": "Team Membership", + "type": "object", + "properties": { + "url": { "type": "string", "format": "uri" }, + "role": { + "description": "The role of the user in the team.", + "enum": ["member", "maintainer"], + "default": "member", + "example": "member", + "type": "string" + }, + "state": { "type": "string" } + }, + "required": ["role", "state", "url"] + }, + "team-project": { + "title": "Team Project", + "description": "A team's access to a project.", + "type": "object", + "properties": { + "owner_url": { "type": "string" }, + "url": { "type": "string" }, + "html_url": { "type": "string" }, + "columns_url": { "type": "string" }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "name": { "type": "string" }, + "body": { "type": "string", "nullable": true }, + "number": { "type": "integer" }, + "state": { "type": "string" }, + "creator": { "$ref": "#/components/schemas/simple-user" }, + "created_at": { "type": "string" }, + "updated_at": { "type": "string" }, + "organization_permission": { "type": "string" }, + "private": { "type": "boolean" }, + "permissions": { + "type": "object", + "properties": { + "read": { "type": "boolean" }, + "write": { "type": "boolean" }, + "admin": { "type": "boolean" } + } + } + } + }, + "team-repository": { + "title": "Team Repository", + "description": "A team's access to a repository.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the repository", + "example": 42, + "type": "integer" + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "description": "The name of the repository.", + "type": "string", + "example": "Team Environment" + }, + "full_name": { "type": "string", "example": "octocat/Hello-World" }, + "license": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/license-simple" }] + }, + "forks": { "type": "integer" }, + "permissions": { + "type": "object", + "properties": { + "admin": { "type": "boolean" }, + "pull": { "type": "boolean" }, + "triage": { "type": "boolean" }, + "push": { "type": "boolean" }, + "maintain": { "type": "boolean" } + }, + "required": ["admin", "pull", "push"] + }, + "owner": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "private": { + "description": "Whether the repository is private or public.", + "default": false, + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World" + }, + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true + }, + "fork": { "type": "boolean" }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" + }, + "archive_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + }, + "assignees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + }, + "blobs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + }, + "branches_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + }, + "collaborators_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + }, + "comments_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + }, + "commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + }, + "compare_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + }, + "contents_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + }, + "contributors_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + }, + "deployments_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + }, + "downloads_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" + }, + "forks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" + }, + "git_commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + }, + "git_refs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + }, + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + }, + "git_url": { + "type": "string", + "example": "git:github.com/octocat/Hello-World.git" + }, + "issue_comment_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + }, + "issue_events_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + }, + "issues_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + }, + "keys_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + }, + "labels_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + }, + "languages_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/languages" + }, + "merges_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/merges" + }, + "milestones_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + }, + "notifications_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + }, + "pulls_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + }, + "releases_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + }, + "ssh_url": { + "type": "string", + "example": "git@github.com:octocat/Hello-World.git" + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + }, + "statuses_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + }, + "subscription_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + }, + "tags_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" + }, + "teams_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" + }, + "trees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + }, + "clone_url": { + "type": "string", + "example": "https://github.com/octocat/Hello-World.git" + }, + "mirror_url": { + "type": "string", + "format": "uri", + "example": "git:git.example.com/octocat/Hello-World", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "svn_url": { + "type": "string", + "format": "uri", + "example": "https://svn.github.com/octocat/Hello-World" + }, + "homepage": { + "type": "string", + "format": "uri", + "example": "https://github.com", + "nullable": true + }, + "language": { "type": "string", "nullable": true }, + "forks_count": { "type": "integer", "example": 9 }, + "stargazers_count": { "type": "integer", "example": 80 }, + "watchers_count": { "type": "integer", "example": 80 }, + "size": { "type": "integer", "example": 108 }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string", + "example": "master" + }, + "open_issues_count": { "type": "integer", "example": 0 }, + "is_template": { + "description": "Whether this repository acts as a template that can be used to generate new repositories.", + "default": false, + "type": "boolean", + "example": true + }, + "topics": { "type": "array", "items": { "type": "string" } }, + "has_issues": { + "description": "Whether issues are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_projects": { + "description": "Whether projects are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_pages": { "type": "boolean" }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "archived": { + "description": "Whether the repository is archived.", + "default": false, + "type": "boolean" + }, + "disabled": { + "type": "boolean", + "description": "Returns whether or not this repository disabled." + }, + "visibility": { + "description": "The repository visibility: public, private, or internal.", + "default": "public", + "type": "string" + }, + "pushed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:14:43Z", + "nullable": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "template_repository": { + "type": "object", + "nullable": true, + "properties": { + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "name": { "type": "string" }, + "full_name": { "type": "string" }, + "owner": { + "type": "object", + "properties": { + "login": { "type": "string" }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "avatar_url": { "type": "string" }, + "gravatar_id": { "type": "string" }, + "url": { "type": "string" }, + "html_url": { "type": "string" }, + "followers_url": { "type": "string" }, + "following_url": { "type": "string" }, + "gists_url": { "type": "string" }, + "starred_url": { "type": "string" }, + "subscriptions_url": { "type": "string" }, + "organizations_url": { "type": "string" }, + "repos_url": { "type": "string" }, + "events_url": { "type": "string" }, + "received_events_url": { "type": "string" }, + "type": { "type": "string" }, + "site_admin": { "type": "boolean" } + } + }, + "private": { "type": "boolean" }, + "html_url": { "type": "string" }, + "description": { "type": "string" }, + "fork": { "type": "boolean" }, + "url": { "type": "string" }, + "archive_url": { "type": "string" }, + "assignees_url": { "type": "string" }, + "blobs_url": { "type": "string" }, + "branches_url": { "type": "string" }, + "collaborators_url": { "type": "string" }, + "comments_url": { "type": "string" }, + "commits_url": { "type": "string" }, + "compare_url": { "type": "string" }, + "contents_url": { "type": "string" }, + "contributors_url": { "type": "string" }, + "deployments_url": { "type": "string" }, + "downloads_url": { "type": "string" }, + "events_url": { "type": "string" }, + "forks_url": { "type": "string" }, + "git_commits_url": { "type": "string" }, + "git_refs_url": { "type": "string" }, + "git_tags_url": { "type": "string" }, + "git_url": { "type": "string" }, + "issue_comment_url": { "type": "string" }, + "issue_events_url": { "type": "string" }, + "issues_url": { "type": "string" }, + "keys_url": { "type": "string" }, + "labels_url": { "type": "string" }, + "languages_url": { "type": "string" }, + "merges_url": { "type": "string" }, + "milestones_url": { "type": "string" }, + "notifications_url": { "type": "string" }, + "pulls_url": { "type": "string" }, + "releases_url": { "type": "string" }, + "ssh_url": { "type": "string" }, + "stargazers_url": { "type": "string" }, + "statuses_url": { "type": "string" }, + "subscribers_url": { "type": "string" }, + "subscription_url": { "type": "string" }, + "tags_url": { "type": "string" }, + "teams_url": { "type": "string" }, + "trees_url": { "type": "string" }, + "clone_url": { "type": "string" }, + "mirror_url": { "type": "string" }, + "hooks_url": { "type": "string" }, + "svn_url": { "type": "string" }, + "homepage": { "type": "string" }, + "language": { "type": "string" }, + "forks_count": { "type": "integer" }, + "stargazers_count": { "type": "integer" }, + "watchers_count": { "type": "integer" }, + "size": { "type": "integer" }, + "default_branch": { "type": "string" }, + "open_issues_count": { "type": "integer" }, + "is_template": { "type": "boolean" }, + "topics": { "type": "array", "items": { "type": "string" } }, + "has_issues": { "type": "boolean" }, + "has_projects": { "type": "boolean" }, + "has_wiki": { "type": "boolean" }, + "has_pages": { "type": "boolean" }, + "has_downloads": { "type": "boolean" }, + "archived": { "type": "boolean" }, + "disabled": { "type": "boolean" }, + "visibility": { "type": "string" }, + "pushed_at": { "type": "string" }, + "created_at": { "type": "string" }, + "updated_at": { "type": "string" }, + "permissions": { + "type": "object", + "properties": { + "admin": { "type": "boolean" }, + "push": { "type": "boolean" }, + "pull": { "type": "boolean" } + } + }, + "allow_rebase_merge": { "type": "boolean" }, + "template_repository": { "type": "string" }, + "temp_clone_token": { "type": "string" }, + "allow_squash_merge": { "type": "boolean" }, + "delete_branch_on_merge": { "type": "boolean" }, + "allow_merge_commit": { "type": "boolean" }, + "subscribers_count": { "type": "integer" }, + "network_count": { "type": "integer" } + } + }, + "temp_clone_token": { "type": "string" }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "default": false, + "type": "boolean", + "example": false + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "subscribers_count": { "type": "integer" }, + "network_count": { "type": "integer" }, + "open_issues": { "type": "integer" }, + "watchers": { "type": "integer" }, + "master_branch": { "type": "string" } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url", + "clone_url", + "default_branch", + "forks", + "forks_count", + "git_url", + "has_downloads", + "has_issues", + "has_projects", + "has_wiki", + "has_pages", + "homepage", + "language", + "archived", + "disabled", + "mirror_url", + "open_issues", + "open_issues_count", + "license", + "pushed_at", + "size", + "ssh_url", + "stargazers_count", + "svn_url", + "watchers", + "watchers_count", + "created_at", + "updated_at" + ] + }, + "project-card": { + "title": "Project Card", + "description": "Project cards represent a scope of work.", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/projects/columns/cards/1478" + }, + "id": { + "description": "The project card's ID", + "example": 42, + "type": "integer" + }, + "node_id": { + "type": "string", + "example": "MDExOlByb2plY3RDYXJkMTQ3OA==" + }, + "note": { + "type": "string", + "example": "Add payload for delete Project column", + "nullable": true + }, + "creator": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2016-09-05T14:21:06Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2016-09-05T14:20:22Z" + }, + "archived": { + "description": "Whether or not the card is archived", + "example": false, + "type": "boolean" + }, + "column_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/projects/columns/367" + }, + "content_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/api-playground/projects-test/issues/3" + }, + "project_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/projects/120" + } + }, + "required": [ + "id", + "node_id", + "note", + "url", + "column_url", + "project_url", + "creator", + "created_at", + "updated_at" + ] + }, + "project-column": { + "title": "Project Column", + "description": "Project columns contain cards of work.", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/projects/columns/367" + }, + "project_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/projects/120" + }, + "cards_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/projects/columns/367/cards" + }, + "id": { + "description": "The unique identifier of the project column", + "example": 42, + "type": "integer" + }, + "node_id": { + "type": "string", + "example": "MDEzOlByb2plY3RDb2x1bW4zNjc=" + }, + "name": { + "description": "Name of the project column", + "example": "Remaining tasks", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2016-09-05T14:18:44Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2016-09-05T14:22:28Z" + } + }, + "required": [ + "id", + "node_id", + "url", + "project_url", + "cards_url", + "name", + "created_at", + "updated_at" + ] + }, + "repository-collaborator-permission": { + "title": "Repository Collaborator Permission", + "description": "Repository Collaborator Permission", + "type": "object", + "properties": { + "permission": { "type": "string" }, + "user": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + } + }, + "required": ["permission", "user"] + }, + "rate-limit": { + "title": "Rate Limit", + "type": "object", + "properties": { + "limit": { "type": "integer" }, + "remaining": { "type": "integer" }, + "reset": { "type": "integer" } + }, + "required": ["limit", "remaining", "reset"] + }, + "rate-limit-overview": { + "title": "Rate Limit Overview", + "description": "Rate Limit Overview", + "type": "object", + "properties": { + "resources": { + "type": "object", + "properties": { + "core": { "$ref": "#/components/schemas/rate-limit" }, + "graphql": { "$ref": "#/components/schemas/rate-limit" }, + "search": { "$ref": "#/components/schemas/rate-limit" }, + "source_import": { "$ref": "#/components/schemas/rate-limit" }, + "integration_manifest": { + "$ref": "#/components/schemas/rate-limit" + }, + "code_scanning_upload": { + "$ref": "#/components/schemas/rate-limit" + } + }, + "required": ["core", "search"] + }, + "rate": { "$ref": "#/components/schemas/rate-limit" } + }, + "required": ["rate", "resources"] + }, + "full-repository": { + "title": "Full Repository", + "description": "Full Repository", + "type": "object", + "properties": { + "id": { "type": "integer", "example": 1296269 }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { "type": "string", "example": "Hello-World" }, + "full_name": { "type": "string", "example": "octocat/Hello-World" }, + "owner": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "private": { "type": "boolean" }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World" + }, + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true + }, + "fork": { "type": "boolean" }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" + }, + "archive_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + }, + "assignees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + }, + "blobs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + }, + "branches_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + }, + "collaborators_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + }, + "comments_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + }, + "commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + }, + "compare_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + }, + "contents_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + }, + "contributors_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + }, + "deployments_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + }, + "downloads_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" + }, + "forks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" + }, + "git_commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + }, + "git_refs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + }, + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + }, + "git_url": { + "type": "string", + "example": "git:github.com/octocat/Hello-World.git" + }, + "issue_comment_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + }, + "issue_events_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + }, + "issues_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + }, + "keys_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + }, + "labels_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + }, + "languages_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/languages" + }, + "merges_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/merges" + }, + "milestones_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + }, + "notifications_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + }, + "pulls_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + }, + "releases_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + }, + "ssh_url": { + "type": "string", + "example": "git@github.com:octocat/Hello-World.git" + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + }, + "statuses_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + }, + "subscription_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + }, + "tags_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" + }, + "teams_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" + }, + "trees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + }, + "clone_url": { + "type": "string", + "example": "https://github.com/octocat/Hello-World.git" + }, + "mirror_url": { + "type": "string", + "format": "uri", + "example": "git:git.example.com/octocat/Hello-World", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "svn_url": { + "type": "string", + "format": "uri", + "example": "https://svn.github.com/octocat/Hello-World" + }, + "homepage": { + "type": "string", + "format": "uri", + "example": "https://github.com", + "nullable": true + }, + "language": { "type": "string", "nullable": true }, + "forks_count": { "type": "integer", "example": 9 }, + "stargazers_count": { "type": "integer", "example": 80 }, + "watchers_count": { "type": "integer", "example": 80 }, + "size": { "type": "integer", "example": 108 }, + "default_branch": { "type": "string", "example": "master" }, + "open_issues_count": { "type": "integer", "example": 0 }, + "is_template": { "type": "boolean", "example": true }, + "topics": { + "type": "array", + "items": { "type": "string" }, + "example": ["octocat", "atom", "electron", "API"] + }, + "has_issues": { "type": "boolean", "example": true }, + "has_projects": { "type": "boolean", "example": true }, + "has_wiki": { "type": "boolean", "example": true }, + "has_pages": { "type": "boolean" }, + "has_downloads": { "type": "boolean", "example": true }, + "archived": { "type": "boolean" }, + "disabled": { + "type": "boolean", + "description": "Returns whether or not this repository disabled." + }, + "visibility": { + "description": "The repository visibility: public, private, or internal.", + "type": "string", + "example": "public" + }, + "pushed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:14:43Z" + }, + "permissions": { + "type": "object", + "properties": { + "admin": { "type": "boolean" }, + "pull": { "type": "boolean" }, + "push": { "type": "boolean" } + }, + "required": ["admin", "pull", "push"] + }, + "allow_rebase_merge": { "type": "boolean", "example": true }, + "template_repository": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/repository" }] + }, + "temp_clone_token": { "type": "string", "nullable": true }, + "allow_squash_merge": { "type": "boolean", "example": true }, + "delete_branch_on_merge": { "type": "boolean", "example": false }, + "allow_merge_commit": { "type": "boolean", "example": true }, + "subscribers_count": { "type": "integer", "example": 42 }, + "network_count": { "type": "integer", "example": 0 }, + "license": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/license-simple" }] + }, + "organization": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "parent": { "$ref": "#/components/schemas/repository" }, + "source": { "$ref": "#/components/schemas/repository" }, + "forks": { "type": "integer" }, + "master_branch": { "type": "string" }, + "open_issues": { "type": "integer" }, + "watchers": { "type": "integer" }, + "anonymous_access_enabled": { + "description": "Whether anonymous git access is allowed.", + "default": true, + "type": "boolean" + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url", + "clone_url", + "default_branch", + "forks", + "forks_count", + "git_url", + "has_downloads", + "has_issues", + "has_projects", + "has_wiki", + "has_pages", + "homepage", + "language", + "archived", + "disabled", + "mirror_url", + "open_issues", + "open_issues_count", + "license", + "pushed_at", + "size", + "ssh_url", + "stargazers_count", + "svn_url", + "watchers", + "watchers_count", + "created_at", + "updated_at", + "network_count", + "subscribers_count" + ] + }, + "artifact": { + "title": "Artifact", + "description": "An artifact", + "type": "object", + "properties": { + "id": { "type": "integer", "example": 5 }, + "node_id": { "type": "string", "example": "MDEwOkNoZWNrU3VpdGU1" }, + "name": { + "description": "The name of the artifact.", + "type": "string", + "example": "AdventureWorks.Framework" + }, + "size_in_bytes": { + "description": "The size in bytes of the artifact.", + "type": "integer", + "example": 12345 + }, + "url": { + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/artifacts/5" + }, + "archive_download_url": { + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/artifacts/5/zip" + }, + "expired": { + "description": "Whether or not the artifact has expired.", + "type": "boolean" + }, + "created_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "expires_at": { "type": "string", "format": "date-time" }, + "updated_at": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "required": [ + "id", + "node_id", + "name", + "size_in_bytes", + "url", + "archive_download_url", + "expired", + "created_at", + "expires_at", + "updated_at" + ] + }, + "job": { + "title": "Job", + "description": "Information of a job execution in a workflow run", + "type": "object", + "properties": { + "id": { + "description": "The id of the job.", + "example": 21, + "type": "integer" + }, + "run_id": { + "description": "The id of the associated workflow run.", + "example": 5, + "type": "integer" + }, + "run_url": { + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/runs/5" + }, + "node_id": { "type": "string", "example": "MDg6Q2hlY2tSdW40" }, + "head_sha": { + "description": "The SHA of the commit that is being run.", + "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", + "type": "string" + }, + "url": { + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/jobs/21" + }, + "html_url": { + "type": "string", + "example": "https://github.com/github/hello-world/runs/4", + "nullable": true + }, + "status": { + "description": "The phase of the lifecycle that the job is currently in.", + "example": "queued", + "type": "string", + "enum": ["queued", "in_progress", "completed"] + }, + "conclusion": { + "description": "The outcome of the job.", + "example": "success", + "type": "string", + "nullable": true + }, + "started_at": { + "description": "The time that the job started, in ISO 8601 format.", + "example": "2019-08-08T08:00:00-07:00", + "format": "date-time", + "type": "string" + }, + "completed_at": { + "description": "The time that the job finished, in ISO 8601 format.", + "example": "2019-08-08T08:00:00-07:00", + "format": "date-time", + "type": "string", + "nullable": true + }, + "name": { + "description": "The name of the job.", + "example": "test-coverage", + "type": "string" + }, + "steps": { + "description": "Steps in this job.", + "type": "array", + "items": { + "type": "object", + "required": ["name", "status", "conclusion", "number"], + "properties": { + "status": { + "description": "The phase of the lifecycle that the job is currently in.", + "example": "queued", + "type": "string", + "enum": ["queued", "in_progress", "completed"] + }, + "conclusion": { + "description": "The outcome of the job.", + "example": "success", + "type": "string", + "nullable": true + }, + "name": { + "description": "The name of the job.", + "example": "test-coverage", + "type": "string" + }, + "number": { "type": "integer", "example": 1 }, + "started_at": { + "description": "The time that the step started, in ISO 8601 format.", + "example": "2019-08-08T08:00:00-07:00", + "format": "date-time", + "type": "string", + "nullable": true + }, + "completed_at": { + "description": "The time that the job finished, in ISO 8601 format.", + "example": "2019-08-08T08:00:00-07:00", + "format": "date-time", + "type": "string", + "nullable": true + } + } + } + }, + "check_run_url": { + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/check-runs/4" + } + }, + "required": [ + "id", + "node_id", + "run_id", + "run_url", + "head_sha", + "name", + "url", + "html_url", + "status", + "conclusion", + "started_at", + "completed_at", + "check_run_url" + ] + }, + "actions-enabled": { + "type": "boolean", + "description": "Whether GitHub Actions is enabled on the repository." + }, + "actions-repository-permissions": { + "type": "object", + "properties": { + "enabled": { "$ref": "#/components/schemas/actions-enabled" }, + "allowed_actions": { "$ref": "#/components/schemas/allowed-actions" }, + "selected_actions_url": { + "$ref": "#/components/schemas/selected-actions-url" + } + } + }, + "pull-request-minimal": { + "title": "Pull Request Minimal", + "type": "object", + "properties": { + "id": { "type": "integer" }, + "number": { "type": "integer" }, + "url": { "type": "string" }, + "head": { + "type": "object", + "properties": { + "ref": { "type": "string" }, + "sha": { "type": "string" }, + "repo": { + "type": "object", + "properties": { + "id": { "type": "integer" }, + "url": { "type": "string" }, + "name": { "type": "string" } + }, + "required": ["id", "url", "name"] + } + }, + "required": ["ref", "sha", "repo"] + }, + "base": { + "type": "object", + "properties": { + "ref": { "type": "string" }, + "sha": { "type": "string" }, + "repo": { + "type": "object", + "properties": { + "id": { "type": "integer" }, + "url": { "type": "string" }, + "name": { "type": "string" } + }, + "required": ["id", "url", "name"] + } + }, + "required": ["ref", "sha", "repo"] + } + }, + "required": ["id", "number", "url", "head", "base"] + }, + "simple-commit": { + "title": "Simple Commit", + "description": "Simple Commit", + "type": "object", + "properties": { + "id": { "type": "string" }, + "tree_id": { "type": "string" }, + "message": { "type": "string" }, + "timestamp": { "type": "string", "format": "date-time" }, + "author": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "email": { "type": "string" } + }, + "required": ["name", "email"], + "nullable": true + }, + "committer": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "email": { "type": "string" } + }, + "required": ["name", "email"], + "nullable": true + } + }, + "required": [ + "id", + "tree_id", + "message", + "timestamp", + "author", + "committer" + ] + }, + "workflow-run": { + "title": "Workflow Run", + "description": "An invocation of a workflow", + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "The ID of the workflow run.", + "example": 5 + }, + "name": { + "type": "string", + "description": "The name of the workflow run.", + "example": "Build" + }, + "node_id": { "type": "string", "example": "MDEwOkNoZWNrU3VpdGU1" }, + "head_branch": { + "type": "string", + "nullable": true, + "example": "master" + }, + "head_sha": { + "description": "The SHA of the head commit that points to the version of the worflow being run.", + "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", + "type": "string" + }, + "run_number": { + "type": "integer", + "description": "The auto incrementing run number for the workflow run.", + "example": 106 + }, + "event": { "type": "string", "example": "push" }, + "status": { + "type": "string", + "nullable": true, + "example": "completed" + }, + "conclusion": { + "type": "string", + "nullable": true, + "example": "neutral" + }, + "workflow_id": { + "type": "integer", + "description": "The ID of the parent workflow.", + "example": 5 + }, + "url": { + "type": "string", + "description": "The URL to the workflow run.", + "example": "https://api.github.com/repos/github/hello-world/actions/runs/5" + }, + "html_url": { + "type": "string", + "example": "https://github.com/github/hello-world/suites/4" + }, + "pull_requests": { + "type": "array", + "nullable": true, + "items": { "$ref": "#/components/schemas/pull-request-minimal" } + }, + "created_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "updated_at": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "jobs_url": { + "description": "The URL to the jobs for the workflow run.", + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/jobs" + }, + "logs_url": { + "description": "The URL to download the logs for the workflow run.", + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/logs" + }, + "check_suite_url": { + "description": "The URL to the associated check suite.", + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/check-suites/12" + }, + "artifacts_url": { + "description": "The URL to the artifacts for the workflow run.", + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/rerun/artifacts" + }, + "cancel_url": { + "description": "The URL to cancel the workflow run.", + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/cancel" + }, + "rerun_url": { + "description": "The URL to rerun the workflow run.", + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/rerun" + }, + "workflow_url": { + "description": "The URL to the workflow.", + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/workflows/main.yaml" + }, + "head_commit": { "$ref": "#/components/schemas/simple-commit" }, + "repository": { "$ref": "#/components/schemas/minimal-repository" }, + "head_repository": { + "$ref": "#/components/schemas/minimal-repository" + }, + "head_repository_id": { "type": "integer", "example": 5 } + }, + "required": [ + "id", + "node_id", + "head_branch", + "run_number", + "event", + "status", + "conclusion", + "head_sha", + "workflow_id", + "url", + "html_url", + "created_at", + "updated_at", + "head_commit", + "head_repository", + "repository", + "jobs_url", + "logs_url", + "check_suite_url", + "cancel_url", + "rerun_url", + "artifacts_url", + "workflow_url", + "pull_requests" + ] + }, + "workflow-run-usage": { + "title": "Workflow Run Usage", + "description": "Workflow Run Usage", + "type": "object", + "properties": { + "billable": { + "type": "object", + "properties": { + "UBUNTU": { + "type": "object", + "properties": { + "total_ms": { "type": "integer" }, + "jobs": { "type": "integer" } + } + }, + "MACOS": { + "type": "object", + "properties": { + "total_ms": { "type": "integer" }, + "jobs": { "type": "integer" } + } + }, + "WINDOWS": { + "type": "object", + "properties": { + "total_ms": { "type": "integer" }, + "jobs": { "type": "integer" } + } + } + } + }, + "run_duration_ms": { "type": "integer" } + } + }, + "actions-secret": { + "title": "Actions Secret", + "description": "Set secrets for GitHub Actions.", + "type": "object", + "properties": { + "name": { + "description": "The name of the secret.", + "example": "SECRET_TOKEN", + "type": "string" + }, + "created_at": { "type": "string", "format": "date-time" }, + "updated_at": { "type": "string", "format": "date-time" } + }, + "required": ["name", "created_at", "updated_at"] + }, + "workflow": { + "title": "Workflow", + "description": "A GitHub Actions workflow", + "type": "object", + "properties": { + "id": { "type": "integer", "example": 5 }, + "node_id": { "type": "string", "example": "MDg6V29ya2Zsb3cxMg==" }, + "name": { "type": "string", "example": "CI" }, + "path": { "type": "string", "example": "ruby.yaml" }, + "state": { + "type": "string", + "example": "active", + "enum": ["active", "deleted"] + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2019-12-06T14:20:20.000Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2019-12-06T14:20:20.000Z" + }, + "url": { + "type": "string", + "example": "https://api.github.com/repos/actions/setup-ruby/workflows/5" + }, + "html_url": { + "type": "string", + "example": "https://github.com/actions/setup-ruby/blob/master/.github/workflows/ruby.yaml" + }, + "badge_url": { + "type": "string", + "example": "https://github.com/actions/setup-ruby/workflows/CI/badge.svg" + }, + "deleted_at": { + "type": "string", + "format": "date-time", + "example": "2019-12-06T14:20:20.000Z" + } + }, + "required": [ + "id", + "node_id", + "name", + "path", + "state", + "url", + "html_url", + "badge_url", + "created_at", + "updated_at" + ] + }, + "workflow-usage": { + "title": "Workflow Usage", + "description": "Workflow Usage", + "type": "object", + "properties": { + "billable": { + "type": "object", + "properties": { + "UBUNTU": { + "type": "object", + "properties": { "total_ms": { "type": "integer" } } + }, + "MACOS": { + "type": "object", + "properties": { "total_ms": { "type": "integer" } } + }, + "WINDOWS": { + "type": "object", + "properties": { "total_ms": { "type": "integer" } } + } + } + } + } + }, + "protected-branch-admin-enforced": { + "title": "Protected Branch Admin Enforced", + "description": "Protected Branch Admin Enforced", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/enforce_admins" + }, + "enabled": { "type": "boolean", "example": true } + }, + "required": ["url", "enabled"] + }, + "protected-branch-pull-request-review": { + "title": "Protected Branch Pull Request Review", + "description": "Protected Branch Pull Request Review", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions" + }, + "dismissal_restrictions": { + "type": "object", + "properties": { + "users": { + "description": "The list of users with review dismissal access.", + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "teams": { + "description": "The list of teams with review dismissal access.", + "type": "array", + "items": { "$ref": "#/components/schemas/team" } + }, + "url": { + "type": "string", + "example": "\"https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions\"" + }, + "users_url": { + "type": "string", + "example": "\"https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions/users\"" + }, + "teams_url": { + "type": "string", + "example": "\"https://api.github.com/repos/the-org/an-org-repo/branches/master/protection/dismissal_restrictions/teams\"" + } + } + }, + "dismiss_stale_reviews": { "type": "boolean", "example": true }, + "require_code_owner_reviews": { "type": "boolean", "example": true }, + "required_approving_review_count": { + "type": "integer", + "minimum": 1, + "maximum": 6, + "example": 2 + } + }, + "required": ["dismiss_stale_reviews", "require_code_owner_reviews"] + }, + "branch-restriction-policy": { + "title": "Branch Restriction Policy", + "description": "Branch Restriction Policy", + "type": "object", + "properties": { + "url": { "type": "string", "format": "uri" }, + "users_url": { "type": "string", "format": "uri" }, + "teams_url": { "type": "string", "format": "uri" }, + "apps_url": { "type": "string", "format": "uri" }, + "users": { + "type": "array", + "items": { + "type": "object", + "properties": { + "login": { "type": "string" }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "avatar_url": { "type": "string" }, + "gravatar_id": { "type": "string" }, + "url": { "type": "string" }, + "html_url": { "type": "string" }, + "followers_url": { "type": "string" }, + "following_url": { "type": "string" }, + "gists_url": { "type": "string" }, + "starred_url": { "type": "string" }, + "subscriptions_url": { "type": "string" }, + "organizations_url": { "type": "string" }, + "repos_url": { "type": "string" }, + "events_url": { "type": "string" }, + "received_events_url": { "type": "string" }, + "type": { "type": "string" }, + "site_admin": { "type": "boolean" } + } + } + }, + "teams": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "url": { "type": "string" }, + "html_url": { "type": "string" }, + "name": { "type": "string" }, + "slug": { "type": "string" }, + "description": { "type": "string", "nullable": true }, + "privacy": { "type": "string" }, + "permission": { "type": "string" }, + "members_url": { "type": "string" }, + "repositories_url": { "type": "string" }, + "parent": { "type": "string", "nullable": true } + } + } + }, + "apps": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { "type": "integer" }, + "slug": { "type": "string" }, + "node_id": { "type": "string" }, + "owner": { + "type": "object", + "properties": { + "login": { "type": "string" }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "url": { "type": "string" }, + "repos_url": { "type": "string" }, + "events_url": { "type": "string" }, + "hooks_url": { "type": "string" }, + "issues_url": { "type": "string" }, + "members_url": { "type": "string" }, + "public_members_url": { "type": "string" }, + "avatar_url": { "type": "string" }, + "description": { "type": "string" }, + "gravatar_id": { "type": "string", "example": "\"\"" }, + "html_url": { + "type": "string", + "example": "\"https://github.com/testorg-ea8ec76d71c3af4b\"" + }, + "followers_url": { + "type": "string", + "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/followers\"" + }, + "following_url": { + "type": "string", + "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/following{/other_user}\"" + }, + "gists_url": { + "type": "string", + "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/gists{/gist_id}\"" + }, + "starred_url": { + "type": "string", + "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/starred{/owner}{/repo}\"" + }, + "subscriptions_url": { + "type": "string", + "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/subscriptions\"" + }, + "organizations_url": { + "type": "string", + "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/orgs\"" + }, + "received_events_url": { + "type": "string", + "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/received_events\"" + }, + "type": { "type": "string", "example": "\"Organization\"" } + } + }, + "name": { "type": "string" }, + "description": { "type": "string" }, + "external_url": { "type": "string" }, + "html_url": { "type": "string" }, + "created_at": { "type": "string" }, + "updated_at": { "type": "string" }, + "permissions": { + "type": "object", + "properties": { + "metadata": { "type": "string" }, + "contents": { "type": "string" }, + "issues": { "type": "string" }, + "single_file": { "type": "string" } + } + }, + "events": { "type": "array", "items": { "type": "string" } } + } + } + } + }, + "required": [ + "url", + "users_url", + "teams_url", + "apps_url", + "users", + "teams", + "apps" + ] + }, + "branch-protection": { + "title": "Branch Protection", + "description": "Branch Protection", + "type": "object", + "properties": { + "url": { "type": "string" }, + "required_status_checks": { + "type": "object", + "properties": { + "url": { "type": "string" }, + "enforcement_level": { "type": "string" }, + "contexts": { "type": "array", "items": { "type": "string" } }, + "contexts_url": { "type": "string" } + }, + "required": ["enforcement_level", "contexts"] + }, + "enforce_admins": { + "$ref": "#/components/schemas/protected-branch-admin-enforced" + }, + "required_pull_request_reviews": { + "$ref": "#/components/schemas/protected-branch-pull-request-review" + }, + "restrictions": { + "$ref": "#/components/schemas/branch-restriction-policy" + }, + "required_linear_history": { + "type": "object", + "properties": { "enabled": { "type": "boolean" } } + }, + "allow_force_pushes": { + "type": "object", + "properties": { "enabled": { "type": "boolean" } } + }, + "allow_deletions": { + "type": "object", + "properties": { "enabled": { "type": "boolean" } } + }, + "enabled": { "type": "boolean" }, + "name": { "type": "string", "example": "\"branch/with/protection\"" }, + "protection_url": { + "type": "string", + "example": "\"https://api.github.com/repos/owner-79e94e2d36b3fd06a32bb213/AAA_Public_Repo/branches/branch/with/protection/protection\"" + } + }, + "required": ["enabled", "required_status_checks"] + }, + "short-branch": { + "title": "Short Branch", + "description": "Short Branch", + "type": "object", + "properties": { + "name": { "type": "string" }, + "commit": { + "type": "object", + "properties": { + "sha": { "type": "string" }, + "url": { "type": "string", "format": "uri" } + }, + "required": ["sha", "url"] + }, + "protected": { "type": "boolean" }, + "protection": { "$ref": "#/components/schemas/branch-protection" }, + "protection_url": { "type": "string", "format": "uri" } + }, + "required": ["name", "commit", "protected"] + }, + "git-user": { + "title": "Git User", + "description": "Metaproperties for Git author/committer information.", + "type": "object", + "properties": { + "name": { "type": "string", "example": "\"Chris Wanstrath\"" }, + "email": { "type": "string", "example": "\"chris@ozmm.org\"" }, + "date": { + "type": "string", + "example": "\"2007-10-29T02:42:39.000-07:00\"" + } + } + }, + "verification": { + "title": "Verification", + "type": "object", + "properties": { + "verified": { "type": "boolean" }, + "reason": { "type": "string" }, + "payload": { "type": "string", "nullable": true }, + "signature": { "type": "string", "nullable": true } + }, + "required": ["verified", "reason", "payload", "signature"] + }, + "commit": { + "title": "Commit", + "description": "Commit", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "nullable": true + }, + "sha": { + "type": "string", + "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "nullable": true + }, + "node_id": { + "type": "string", + "example": "MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ==" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e" + }, + "comments_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments" + }, + "commit": { + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e" + }, + "author": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/git-user" }] + }, + "committer": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/git-user" }] + }, + "message": { "type": "string", "example": "Fix all the bugs" }, + "comment_count": { "type": "integer", "example": 0 }, + "tree": { + "type": "object", + "properties": { + "sha": { + "type": "string", + "example": "827efc6d56897b048c772eb4087f854f46256132" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/tree/827efc6d56897b048c772eb4087f854f46256132" + } + }, + "required": ["sha", "url"] + }, + "verification": { "$ref": "#/components/schemas/verification" } + }, + "required": [ + "author", + "committer", + "comment_count", + "message", + "tree", + "url" + ] + }, + "author": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "committer": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "parents": { + "type": "array", + "items": { + "type": "object", + "properties": { + "sha": { + "type": "string", + "example": "7638417db6d59f3c431d3e1f261cc637155684cd" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/commits/7638417db6d59f3c431d3e1f261cc637155684cd" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/commit/7638417db6d59f3c431d3e1f261cc637155684cd" + } + }, + "required": ["sha", "url"] + } + }, + "stats": { + "type": "object", + "properties": { + "additions": { "type": "integer" }, + "deletions": { "type": "integer" }, + "total": { "type": "integer" } + } + }, + "files": { + "type": "array", + "items": { + "type": "object", + "properties": { + "filename": { "type": "string" }, + "additions": { "type": "integer" }, + "deletions": { "type": "integer" }, + "changes": { "type": "integer" }, + "status": { "type": "string" }, + "raw_url": { "type": "string" }, + "blob_url": { "type": "string" }, + "patch": { "type": "string" }, + "sha": { + "type": "string", + "example": "\"1e8e60ce9733d5283f7836fa602b6365a66b2567\"" + }, + "contents_url": { + "type": "string", + "example": "\"https://api.github.com/repos/owner-3d68404b07d25daeb2d4a6bf/AAA_Public_Repo/contents/geometry.js?ref=c3956841a7cb7e8ba4a6fd923568d86958f01573\"" + }, + "previous_filename": { + "type": "string", + "example": "\"subdir/before_name.txt\"" + } + } + } + } + }, + "required": [ + "url", + "sha", + "node_id", + "html_url", + "comments_url", + "commit", + "author", + "committer", + "parents" + ] + }, + "branch-with-protection": { + "title": "Branch With Protection", + "description": "Branch With Protection", + "type": "object", + "properties": { + "name": { "type": "string" }, + "commit": { "$ref": "#/components/schemas/commit" }, + "_links": { + "type": "object", + "properties": { + "html": { "type": "string" }, + "self": { "type": "string", "format": "uri" } + }, + "required": ["html", "self"] + }, + "protected": { "type": "boolean" }, + "protection": { "$ref": "#/components/schemas/branch-protection" }, + "protection_url": { "type": "string", "format": "uri" }, + "pattern": { "type": "string", "example": "\"mas*\"" }, + "required_approving_review_count": { + "type": "integer", + "example": "0" + } + }, + "required": [ + "name", + "commit", + "_links", + "protection", + "protected", + "protection_url" + ] + }, + "status-check-policy": { + "title": "Status Check Policy", + "description": "Status Check Policy", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks" + }, + "strict": { "type": "boolean", "example": true }, + "contexts": { + "type": "array", + "example": ["continuous-integration/travis-ci"], + "items": { "type": "string" } + }, + "contexts_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks/contexts" + } + }, + "required": ["url", "contexts_url", "strict", "contexts"] + }, + "protected-branch": { + "title": "Protected Branch", + "description": "Branch protections protect branches", + "type": "object", + "properties": { + "url": { "type": "string", "format": "uri" }, + "required_status_checks": { + "$ref": "#/components/schemas/status-check-policy" + }, + "required_pull_request_reviews": { + "type": "object", + "properties": { + "url": { "type": "string", "format": "uri" }, + "dismiss_stale_reviews": { "type": "boolean" }, + "require_code_owner_reviews": { "type": "boolean" }, + "required_approving_review_count": { "type": "integer" }, + "dismissal_restrictions": { + "type": "object", + "properties": { + "url": { "type": "string", "format": "uri" }, + "users_url": { "type": "string", "format": "uri" }, + "teams_url": { "type": "string", "format": "uri" }, + "users": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" } + }, + "teams": { + "type": "array", + "items": { "$ref": "#/components/schemas/team" } + } + }, + "required": ["url", "users_url", "teams_url", "users", "teams"] + } + }, + "required": ["url"] + }, + "required_signatures": { + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures" + }, + "enabled": { "type": "boolean", "example": true } + }, + "required": ["url", "enabled"] + }, + "enforce_admins": { + "type": "object", + "properties": { + "url": { "type": "string", "format": "uri" }, + "enabled": { "type": "boolean" } + }, + "additionalProperties": false, + "required": ["url", "enabled"] + }, + "required_linear_history": { + "type": "object", + "properties": { "enabled": { "type": "boolean" } }, + "additionalProperties": false, + "required": ["enabled"] + }, + "allow_force_pushes": { + "type": "object", + "properties": { "enabled": { "type": "boolean" } }, + "additionalProperties": false, + "required": ["enabled"] + }, + "allow_deletions": { + "type": "object", + "properties": { "enabled": { "type": "boolean" } }, + "additionalProperties": false, + "required": ["enabled"] + }, + "restrictions": { + "$ref": "#/components/schemas/branch-restriction-policy" + } + }, + "required": ["url"] + }, + "check-run": { + "title": "CheckRun", + "description": "A check performed on the code of a given code change", + "type": "object", + "properties": { + "id": { + "description": "The id of the check.", + "example": 21, + "type": "integer" + }, + "head_sha": { + "description": "The SHA of the commit that is being checked.", + "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", + "type": "string" + }, + "node_id": { "type": "string", "example": "MDg6Q2hlY2tSdW40" }, + "external_id": { "type": "string", "example": "", "nullable": true }, + "url": { + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/check-runs/4" + }, + "html_url": { + "type": "string", + "example": "https://github.com/github/hello-world/runs/4", + "nullable": true + }, + "details_url": { + "type": "string", + "example": "https://example.com", + "nullable": true + }, + "status": { + "description": "The phase of the lifecycle that the check is currently in.", + "example": "queued", + "type": "string", + "enum": ["queued", "in_progress", "completed"] + }, + "conclusion": { + "type": "string", + "example": "neutral", + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "skipped", + "timed_out", + "action_required" + ], + "nullable": true + }, + "started_at": { + "type": "string", + "format": "date-time", + "example": "2018-05-04T01:14:52Z", + "nullable": true + }, + "completed_at": { + "type": "string", + "format": "date-time", + "example": "2018-05-04T01:14:52Z", + "nullable": true + }, + "output": { + "type": "object", + "properties": { + "title": { "type": "string", "nullable": true }, + "summary": { "type": "string", "nullable": true }, + "text": { "type": "string", "nullable": true }, + "annotations_count": { "type": "integer" }, + "annotations_url": { "type": "string", "format": "uri" } + }, + "required": [ + "title", + "summary", + "text", + "annotations_count", + "annotations_url" + ] + }, + "name": { + "description": "The name of the check.", + "example": "test-coverage", + "type": "string" + }, + "check_suite": { + "type": "object", + "properties": { "id": { "type": "integer" } }, + "required": ["id"], + "nullable": true + }, + "app": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/integration" }] + }, + "pull_requests": { + "items": { "$ref": "#/components/schemas/pull-request-minimal" } + } + }, + "required": [ + "id", + "node_id", + "head_sha", + "name", + "url", + "html_url", + "details_url", + "status", + "conclusion", + "started_at", + "completed_at", + "external_id", + "check_suite", + "output", + "app", + "pull_requests" + ] + }, + "check-annotation": { + "title": "Check Annotation", + "description": "Check Annotation", + "type": "object", + "properties": { + "path": { "type": "string", "example": "README.md" }, + "start_line": { "type": "integer", "example": 2 }, + "end_line": { "type": "integer", "example": 2 }, + "start_column": { "type": "integer", "example": 5, "nullable": true }, + "end_column": { "type": "integer", "example": 10, "nullable": true }, + "annotation_level": { + "type": "string", + "example": "warning", + "nullable": true + }, + "title": { + "type": "string", + "example": "Spell Checker", + "nullable": true + }, + "message": { + "type": "string", + "example": "Check your spelling for 'banaas'.", + "nullable": true + }, + "raw_details": { + "type": "string", + "example": "Do you mean 'bananas' or 'banana'?", + "nullable": true + }, + "blob_href": { "type": "string" } + }, + "required": [ + "path", + "blob_href", + "start_line", + "end_line", + "start_column", + "end_column", + "annotation_level", + "title", + "message", + "raw_details" + ] + }, + "check-suite": { + "title": "CheckSuite", + "description": "A suite of checks performed on the code of a given code change", + "type": "object", + "properties": { + "id": { "type": "integer", "example": 5 }, + "node_id": { "type": "string", "example": "MDEwOkNoZWNrU3VpdGU1" }, + "head_branch": { + "type": "string", + "example": "master", + "nullable": true + }, + "head_sha": { + "description": "The SHA of the head commit that is being checked.", + "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", + "type": "string" + }, + "status": { + "type": "string", + "example": "completed", + "enum": ["queued", "in_progress", "completed"], + "nullable": true + }, + "conclusion": { + "type": "string", + "example": "neutral", + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "skipped", + "timed_out", + "action_required" + ], + "nullable": true + }, + "url": { + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/check-suites/5", + "nullable": true + }, + "before": { + "type": "string", + "example": "146e867f55c26428e5f9fade55a9bbf5e95a7912", + "nullable": true + }, + "after": { + "type": "string", + "example": "d6fde92930d4715a2b49857d24b940956b26d2d3", + "nullable": true + }, + "pull_requests": { + "type": "array", + "items": { "$ref": "#/components/schemas/pull-request-minimal" }, + "nullable": true + }, + "app": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/integration" }] + }, + "repository": { "$ref": "#/components/schemas/minimal-repository" }, + "created_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "head_commit": { "$ref": "#/components/schemas/simple-commit" }, + "latest_check_runs_count": { "type": "integer" }, + "check_runs_url": { "type": "string" } + }, + "required": [ + "id", + "node_id", + "head_branch", + "status", + "conclusion", + "head_sha", + "url", + "before", + "after", + "created_at", + "updated_at", + "app", + "head_commit", + "repository", + "latest_check_runs_count", + "check_runs_url", + "pull_requests" + ] + }, + "check-suite-preference": { + "title": "Check Suite Preference", + "description": "Check suite configuration preferences for a repository.", + "type": "object", + "properties": { + "preferences": { + "type": "object", + "properties": { + "auto_trigger_checks": { + "type": "array", + "items": { + "type": "object", + "properties": { + "app_id": { "type": "integer" }, + "setting": { "type": "boolean" } + }, + "required": ["app_id", "setting"] + } + } + } + }, + "repository": { "$ref": "#/components/schemas/repository" } + } + }, + "code-scanning-alert-state": { + "type": "string", + "description": "State of a code scanning alert.", + "enum": ["open", "dismissed", "fixed"] + }, + "code-scanning-alert-ref": { + "type": "string", + "description": "The full Git reference, formatted as `refs/heads/`." + }, + "alert-number": { + "type": "integer", + "description": "The security alert number.", + "readOnly": true, + "nullable": false + }, + "alert-created-at": { + "type": "string", + "description": "The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true, + "nullable": false + }, + "alert-url": { + "type": "string", + "description": "The REST API URL of the alert resource.", + "format": "uri", + "readOnly": true, + "nullable": false + }, + "alert-html-url": { + "type": "string", + "description": "The GitHub URL of the alert resource.", + "format": "uri", + "readOnly": true, + "nullable": false + }, + "code-scanning-alert-dismissed-at": { + "type": "string", + "description": "The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "code-scanning-alert-dismissed-reason": { + "type": "string", + "description": "**Required when the state is dismissed.** The reason for dismissing or closing the alert. Can be one of: `false positive`, `won't fix`, and `used in tests`.", + "nullable": true, + "oneOf": [ + { "enum": ["false positive", "won't fix", "used in tests"] }, + { "enum": [null] } + ] + }, + "code-scanning-alert-rule": { + "type": "object", + "properties": { + "id": { + "nullable": true, + "type": "string", + "description": "A unique identifier for the rule used to detect the alert." + }, + "severity": { + "nullable": true, + "type": "string", + "description": "The severity of the alert.", + "enum": ["none", "note", "warning", "error"] + }, + "description": { + "type": "string", + "description": "A short description of the rule used to detect the alert." + } + } + }, + "code-scanning-analysis-tool-name": { + "type": "string", + "description": "The name of the tool used to generate the code scanning analysis alert." + }, + "code-scanning-analysis-tool": { + "type": "object", + "properties": { + "name": { + "$ref": "#/components/schemas/code-scanning-analysis-tool-name" + }, + "version": { + "nullable": true, + "type": "string", + "description": "The version of the tool used to detect the alert." + } + } + }, + "code-scanning-alert-code-scanning-alert-items": { + "type": "object", + "properties": { + "number": { "$ref": "#/components/schemas/alert-number" }, + "created_at": { "$ref": "#/components/schemas/alert-created-at" }, + "url": { "$ref": "#/components/schemas/alert-url" }, + "html_url": { "$ref": "#/components/schemas/alert-html-url" }, + "state": { "$ref": "#/components/schemas/code-scanning-alert-state" }, + "dismissed_by": { "$ref": "#/components/schemas/simple-user" }, + "dismissed_at": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-at" + }, + "dismissed_reason": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-reason" + }, + "rule": { "$ref": "#/components/schemas/code-scanning-alert-rule" }, + "tool": { "$ref": "#/components/schemas/code-scanning-analysis-tool" } + } + }, + "code-scanning-analysis-analysis-key": { + "type": "string", + "description": "Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name." + }, + "code-scanning-alert-environment": { + "type": "string", + "description": "Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed." + }, + "code-scanning-alert-instances": { + "nullable": true, + "type": "array", + "items": { + "properties": { + "ref": { "$ref": "#/components/schemas/code-scanning-alert-ref" }, + "analysis_key": { + "$ref": "#/components/schemas/code-scanning-analysis-analysis-key" + }, + "environment": { + "$ref": "#/components/schemas/code-scanning-alert-environment" + }, + "matrix_vars": { "nullable": true, "type": "string" }, + "state": { + "$ref": "#/components/schemas/code-scanning-alert-state" + } + } + } + }, + "code-scanning-alert-code-scanning-alert": { + "type": "object", + "properties": { + "number": { "$ref": "#/components/schemas/alert-number" }, + "created_at": { "$ref": "#/components/schemas/alert-created-at" }, + "url": { "$ref": "#/components/schemas/alert-url" }, + "html_url": { "$ref": "#/components/schemas/alert-html-url" }, + "instances": { + "$ref": "#/components/schemas/code-scanning-alert-instances" + }, + "state": { "$ref": "#/components/schemas/code-scanning-alert-state" }, + "dismissed_by": { "$ref": "#/components/schemas/simple-user" }, + "dismissed_at": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-at" + }, + "dismissed_reason": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-reason" + }, + "rule": { "$ref": "#/components/schemas/code-scanning-alert-rule" }, + "tool": { "$ref": "#/components/schemas/code-scanning-analysis-tool" } + } + }, + "code-scanning-alert-set-state": { + "description": "Sets the state of the code scanning alert. Can be one of `open` or `dismissed`. You must provide `dismissed_reason` when you set the state to `dismissed`.", + "type": "string", + "enum": ["open", "dismissed"] + }, + "code-scanning-analysis-ref": { + "type": "string", + "description": "The full Git reference of the code scanning analysis file, formatted as `refs/heads/`." + }, + "code-scanning-analysis-commit-sha": { + "description": "The commit SHA of the code scanning analysis file.", + "type": "string", + "minLength": 40, + "maxLength": 40, + "pattern": "^[0-9a-fA-F]+$" + }, + "code-scanning-analysis-created-at": { + "type": "string", + "description": "The time that the analysis was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true, + "nullable": false + }, + "code-scanning-analysis-environment": { + "type": "string", + "description": "Identifies the variable values associated with the environment in which this analysis was performed." + }, + "code-scanning-analysis-code-scanning-analysis": { + "type": "object", + "properties": { + "commit_sha": { + "$ref": "#/components/schemas/code-scanning-analysis-commit-sha" + }, + "ref": { "$ref": "#/components/schemas/code-scanning-analysis-ref" }, + "analysis_key": { + "$ref": "#/components/schemas/code-scanning-analysis-analysis-key" + }, + "created_at": { + "$ref": "#/components/schemas/code-scanning-analysis-created-at" + }, + "tool_name": { + "$ref": "#/components/schemas/code-scanning-analysis-tool-name" + }, + "error": { "type": "string", "example": "error reading field xyz" }, + "environment": { + "$ref": "#/components/schemas/code-scanning-analysis-environment" + } + } + }, + "code-scanning-analysis-sarif-file": { + "description": "A Base64 string representing the SARIF file to upload. You must first compress your SARIF file using [`gzip`](http://www.gnu.org/software/gzip/manual/gzip.html) and then translate the contents of the file into a Base64 encoding string.", + "type": "string" + }, + "collaborator": { + "title": "Collaborator", + "description": "Collaborator", + "type": "object", + "properties": { + "login": { "type": "string", "example": "octocat" }, + "id": { "type": "integer", "example": 1 }, + "node_id": { "type": "string", "example": "MDQ6VXNlcjE=" }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { "type": "string", "example": "", "nullable": true }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { "type": "string", "example": "User" }, + "site_admin": { "type": "boolean" }, + "permissions": { + "type": "object", + "properties": { + "pull": { "type": "boolean" }, + "push": { "type": "boolean" }, + "admin": { "type": "boolean" } + }, + "required": ["pull", "push", "admin"] + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + }, + "repository-invitation": { + "title": "Repository Invitation", + "description": "Repository invitations let you manage who you collaborate with.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the repository invitation.", + "example": 42, + "type": "integer" + }, + "repository": { "$ref": "#/components/schemas/minimal-repository" }, + "invitee": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "inviter": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "permissions": { + "description": "The permission associated with the invitation.", + "example": "read", + "type": "string", + "enum": ["read", "write", "admin"] + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2016-06-13T14:52:50-05:00" + }, + "url": { + "description": "URL for the repository invitation", + "example": "https://api.github.com/user/repository-invitations/1", + "type": "string" + }, + "html_url": { + "type": "string", + "example": "https://github.com/octocat/Hello-World/invitations" + }, + "node_id": { "type": "string" } + }, + "required": [ + "id", + "node_id", + "permissions", + "inviter", + "invitee", + "repository", + "url", + "html_url", + "created_at" + ] + }, + "commit-comment": { + "title": "Commit Comment", + "description": "Commit Comment", + "type": "object", + "properties": { + "html_url": { "type": "string", "format": "uri" }, + "url": { "type": "string", "format": "uri" }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "body": { "type": "string" }, + "path": { "type": "string", "nullable": true }, + "position": { "type": "integer", "nullable": true }, + "line": { "type": "integer", "nullable": true }, + "commit_id": { "type": "string" }, + "user": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "created_at": { "type": "string", "format": "date-time" }, + "updated_at": { "type": "string", "format": "date-time" }, + "author_association": { "type": "string" }, + "reactions": { "$ref": "#/components/schemas/reaction-rollup" } + }, + "required": [ + "url", + "html_url", + "id", + "node_id", + "user", + "position", + "line", + "path", + "commit_id", + "body", + "author_association", + "created_at", + "updated_at" + ] + }, + "scim-error": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { "type": "string", "nullable": true }, + "documentation_url": { "type": "string", "nullable": true }, + "detail": { "type": "string", "nullable": true }, + "status": { "type": "integer" }, + "scimType": { "type": "string", "nullable": true }, + "schemas": { "type": "array", "items": { "type": "string" } } + } + }, + "branch-short": { + "title": "Branch Short", + "description": "Branch Short", + "type": "object", + "properties": { + "name": { "type": "string" }, + "commit": { + "type": "object", + "properties": { + "sha": { "type": "string" }, + "url": { "type": "string" } + } + }, + "protected": { "type": "boolean" } + } + }, + "link": { + "title": "Link", + "description": "Hypermedia Link", + "type": "object", + "properties": { "href": { "type": "string" } }, + "required": ["href"] + }, + "pull-request-simple": { + "title": "Pull Request Simple", + "description": "Pull Request Simple", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347" + }, + "id": { "type": "integer", "example": 1 }, + "node_id": { + "type": "string", + "example": "MDExOlB1bGxSZXF1ZXN0MQ==" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/1347" + }, + "diff_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/1347.diff" + }, + "patch_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/1347.patch" + }, + "issue_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347" + }, + "commits_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits" + }, + "review_comments_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments" + }, + "review_comment_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number}" + }, + "comments_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments" + }, + "statuses_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e" + }, + "number": { "type": "integer", "example": 1347 }, + "state": { "type": "string", "example": "open" }, + "locked": { "type": "boolean", "example": true }, + "title": { "type": "string", "example": "new-feature" }, + "user": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "body": { + "type": "string", + "example": "Please pull these awesome changes", + "nullable": true + }, + "labels": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "url": { "type": "string" }, + "name": { "type": "string" }, + "description": { "type": "string" }, + "color": { "type": "string" }, + "default": { "type": "boolean" } + } + } + }, + "milestone": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/milestone" }] + }, + "active_lock_reason": { + "type": "string", + "example": "too heated", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z" + }, + "closed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "merged_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "merge_commit_sha": { + "type": "string", + "example": "e5bd3914e2e596debea16f433f57875b5b90bcd6", + "nullable": true + }, + "assignee": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "assignees": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" }, + "nullable": true + }, + "requested_reviewers": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" }, + "nullable": true + }, + "requested_teams": { + "type": "array", + "items": { "$ref": "#/components/schemas/team-simple" }, + "nullable": true + }, + "head": { + "type": "object", + "properties": { + "label": { "type": "string" }, + "ref": { "type": "string" }, + "repo": { "$ref": "#/components/schemas/repository" }, + "sha": { "type": "string" }, + "user": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + } + }, + "required": ["label", "ref", "repo", "sha", "user"] + }, + "base": { + "type": "object", + "properties": { + "label": { "type": "string" }, + "ref": { "type": "string" }, + "repo": { "$ref": "#/components/schemas/repository" }, + "sha": { "type": "string" }, + "user": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + } + }, + "required": ["label", "ref", "repo", "sha", "user"] + }, + "_links": { + "type": "object", + "properties": { + "comments": { "$ref": "#/components/schemas/link" }, + "commits": { "$ref": "#/components/schemas/link" }, + "statuses": { "$ref": "#/components/schemas/link" }, + "html": { "$ref": "#/components/schemas/link" }, + "issue": { "$ref": "#/components/schemas/link" }, + "review_comments": { "$ref": "#/components/schemas/link" }, + "review_comment": { "$ref": "#/components/schemas/link" }, + "self": { "$ref": "#/components/schemas/link" } + }, + "required": [ + "comments", + "commits", + "statuses", + "html", + "issue", + "review_comments", + "review_comment", + "self" + ] + }, + "author_association": { "type": "string", "example": "OWNER" }, + "draft": { + "description": "Indicates whether or not the pull request is a draft.", + "example": false, + "type": "boolean" + } + }, + "required": [ + "_links", + "assignee", + "labels", + "base", + "body", + "closed_at", + "comments_url", + "commits_url", + "created_at", + "diff_url", + "head", + "html_url", + "id", + "node_id", + "issue_url", + "merge_commit_sha", + "merged_at", + "milestone", + "number", + "patch_url", + "review_comment_url", + "review_comments_url", + "statuses_url", + "state", + "locked", + "title", + "updated_at", + "url", + "user", + "author_association" + ] + }, + "simple-commit-status": { + "title": "Simple Commit Status", + "type": "object", + "properties": { + "description": { "type": "string", "nullable": true }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "state": { "type": "string" }, + "context": { "type": "string" }, + "target_url": { "type": "string", "format": "uri" }, + "required": { "type": "boolean", "nullable": true }, + "avatar_url": { "type": "string", "nullable": true, "format": "uri" }, + "url": { "type": "string", "format": "uri" }, + "created_at": { "type": "string", "format": "date-time" }, + "updated_at": { "type": "string", "format": "date-time" } + }, + "required": [ + "description", + "id", + "node_id", + "state", + "context", + "target_url", + "avatar_url", + "url", + "created_at", + "updated_at" + ] + }, + "combined-commit-status": { + "title": "Combined Commit Status", + "description": "Combined Commit Status", + "type": "object", + "properties": { + "state": { "type": "string" }, + "statuses": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-commit-status" } + }, + "sha": { "type": "string" }, + "total_count": { "type": "integer" }, + "repository": { "$ref": "#/components/schemas/minimal-repository" }, + "commit_url": { "type": "string", "format": "uri" }, + "url": { "type": "string", "format": "uri" } + }, + "required": [ + "state", + "sha", + "total_count", + "statuses", + "repository", + "commit_url", + "url" + ] + }, + "status": { + "title": "Status", + "description": "The status of a commit.", + "type": "object", + "properties": { + "url": { "type": "string" }, + "avatar_url": { "type": "string", "nullable": true }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "state": { "type": "string" }, + "description": { "type": "string" }, + "target_url": { "type": "string" }, + "context": { "type": "string" }, + "created_at": { "type": "string" }, + "updated_at": { "type": "string" }, + "creator": { "$ref": "#/components/schemas/simple-user" } + } + }, + "code-of-conduct-simple": { + "title": "Code Of Conduct Simple", + "description": "Code of Conduct Simple", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/codes_of_conduct/citizen_code_of_conduct" + }, + "key": { "type": "string", "example": "citizen_code_of_conduct" }, + "name": { "type": "string", "example": "Citizen Code of Conduct" }, + "html_url": { "type": "string", "nullable": true, "format": "uri" } + }, + "required": ["url", "key", "name", "html_url"] + }, + "community-health-file": { + "title": "Community Health File", + "type": "object", + "properties": { + "url": { "type": "string", "format": "uri" }, + "html_url": { "type": "string", "format": "uri" } + }, + "required": ["url", "html_url"] + }, + "community-profile": { + "title": "Community Profile", + "description": "Community Profile", + "type": "object", + "properties": { + "health_percentage": { "type": "integer", "example": 100 }, + "description": { + "type": "string", + "example": "My first repository on GitHub!", + "nullable": true + }, + "documentation": { + "type": "string", + "example": "example.com", + "nullable": true + }, + "files": { + "type": "object", + "properties": { + "code_of_conduct": { + "nullable": true, + "allOf": [ + { "$ref": "#/components/schemas/code-of-conduct-simple" } + ] + }, + "license": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/license-simple" }] + }, + "contributing": { + "nullable": true, + "allOf": [ + { "$ref": "#/components/schemas/community-health-file" } + ] + }, + "readme": { + "nullable": true, + "allOf": [ + { "$ref": "#/components/schemas/community-health-file" } + ] + }, + "issue_template": { + "nullable": true, + "allOf": [ + { "$ref": "#/components/schemas/community-health-file" } + ] + }, + "pull_request_template": { + "nullable": true, + "allOf": [ + { "$ref": "#/components/schemas/community-health-file" } + ] + } + }, + "required": [ + "code_of_conduct", + "license", + "contributing", + "readme", + "issue_template", + "pull_request_template" + ] + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2017-02-28T19:09:29Z", + "nullable": true + }, + "content_reports_enabled": { "type": "boolean", "example": true } + }, + "required": [ + "health_percentage", + "description", + "documentation", + "files", + "updated_at" + ] + }, + "diff-entry": { + "title": "Diff Entry", + "description": "Diff Entry", + "type": "object", + "properties": { + "sha": { + "type": "string", + "example": "bbcd538c8e72b8c175046e27cc8f907076331401" + }, + "filename": { "type": "string", "example": "file1.txt" }, + "status": { "type": "string", "example": "added" }, + "additions": { "type": "integer", "example": 103 }, + "deletions": { "type": "integer", "example": 21 }, + "changes": { "type": "integer", "example": 124 }, + "blob_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt" + }, + "raw_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt" + }, + "contents_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/contents/file1.txt?ref=6dcb09b5b57875f334f61aebed695e2e4193db5e" + }, + "patch": { + "type": "string", + "example": "@@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test" + }, + "previous_filename": { "type": "string", "example": "file.txt" } + }, + "required": [ + "additions", + "blob_url", + "changes", + "contents_url", + "deletions", + "filename", + "raw_url", + "sha", + "status" + ] + }, + "commit-comparison": { + "title": "Commit Comparison", + "description": "Commit Comparison", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/compare/master...topic" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/compare/master...topic" + }, + "permalink_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/compare/octocat:bbcd538c8e72b8c175046e27cc8f907076331401...octocat:0328041d1152db8ae77652d1618a02e57f745f17" + }, + "diff_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/compare/master...topic.diff" + }, + "patch_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/compare/master...topic.patch" + }, + "base_commit": { "$ref": "#/components/schemas/commit" }, + "merge_base_commit": { "$ref": "#/components/schemas/commit" }, + "status": { + "type": "string", + "enum": ["diverged", "ahead", "behind", "identical"], + "example": "ahead" + }, + "ahead_by": { "type": "integer", "example": 4 }, + "behind_by": { "type": "integer", "example": 5 }, + "total_commits": { "type": "integer", "example": 6 }, + "commits": { + "type": "array", + "items": { "$ref": "#/components/schemas/commit" } + }, + "files": { + "type": "array", + "items": { "$ref": "#/components/schemas/diff-entry" } + } + }, + "required": [ + "url", + "html_url", + "permalink_url", + "diff_url", + "patch_url", + "base_commit", + "merge_base_commit", + "status", + "ahead_by", + "behind_by", + "total_commits", + "commits", + "files" + ] + }, + "content-tree": { + "title": "Content Tree", + "description": "Content Tree", + "type": "object", + "properties": { + "type": { "type": "string" }, + "size": { "type": "integer" }, + "name": { "type": "string" }, + "path": { "type": "string" }, + "sha": { "type": "string" }, + "url": { "type": "string", "format": "uri" }, + "git_url": { "type": "string", "format": "uri", "nullable": true }, + "html_url": { "type": "string", "format": "uri", "nullable": true }, + "download_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "entries": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { "type": "string" }, + "size": { "type": "integer" }, + "name": { "type": "string" }, + "path": { "type": "string" }, + "content": { "type": "string" }, + "sha": { "type": "string" }, + "url": { "type": "string", "format": "uri" }, + "git_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "download_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "_links": { + "type": "object", + "properties": { + "git": { + "type": "string", + "format": "uri", + "nullable": true + }, + "html": { + "type": "string", + "format": "uri", + "nullable": true + }, + "self": { "type": "string", "format": "uri" } + }, + "required": ["git", "html", "self"] + } + }, + "required": [ + "_links", + "git_url", + "html_url", + "download_url", + "name", + "path", + "sha", + "size", + "type", + "url" + ] + } + }, + "_links": { + "type": "object", + "properties": { + "git": { "type": "string", "format": "uri", "nullable": true }, + "html": { "type": "string", "format": "uri", "nullable": true }, + "self": { "type": "string", "format": "uri" } + }, + "required": ["git", "html", "self"] + } + }, + "required": [ + "_links", + "git_url", + "html_url", + "download_url", + "name", + "path", + "sha", + "size", + "type", + "url", + "content", + "encoding" + ] + }, + "content-directory": { + "title": "Content Directory", + "description": "A list of directory items", + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { "type": "string" }, + "size": { "type": "integer" }, + "name": { "type": "string" }, + "path": { "type": "string" }, + "content": { "type": "string" }, + "sha": { "type": "string" }, + "url": { "type": "string", "format": "uri" }, + "git_url": { "type": "string", "format": "uri", "nullable": true }, + "html_url": { "type": "string", "format": "uri", "nullable": true }, + "download_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "_links": { + "type": "object", + "properties": { + "git": { "type": "string", "format": "uri", "nullable": true }, + "html": { "type": "string", "format": "uri", "nullable": true }, + "self": { "type": "string", "format": "uri" } + }, + "required": ["git", "html", "self"] + } + }, + "required": [ + "_links", + "git_url", + "html_url", + "download_url", + "name", + "path", + "sha", + "size", + "type", + "url" + ] + } + }, + "content-file": { + "title": "Content File", + "description": "Content File", + "type": "object", + "properties": { + "type": { "type": "string" }, + "encoding": { "type": "string" }, + "size": { "type": "integer" }, + "name": { "type": "string" }, + "path": { "type": "string" }, + "content": { "type": "string" }, + "sha": { "type": "string" }, + "url": { "type": "string", "format": "uri" }, + "git_url": { "type": "string", "format": "uri", "nullable": true }, + "html_url": { "type": "string", "format": "uri", "nullable": true }, + "download_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "_links": { + "type": "object", + "properties": { + "git": { "type": "string", "format": "uri", "nullable": true }, + "html": { "type": "string", "format": "uri", "nullable": true }, + "self": { "type": "string", "format": "uri" } + }, + "required": ["git", "html", "self"] + }, + "target": { "type": "string", "example": "\"actual/actual.md\"" }, + "submodule_git_url": { + "type": "string", + "example": "\"git://example.com/defunkt/dotjs.git\"" + } + }, + "required": [ + "_links", + "git_url", + "html_url", + "download_url", + "name", + "path", + "sha", + "size", + "type", + "url", + "content", + "encoding" + ] + }, + "content-symlink": { + "title": "Symlink Content", + "description": "An object describing a symlink", + "type": "object", + "properties": { + "type": { "type": "string" }, + "target": { "type": "string" }, + "size": { "type": "integer" }, + "name": { "type": "string" }, + "path": { "type": "string" }, + "sha": { "type": "string" }, + "url": { "type": "string", "format": "uri" }, + "git_url": { "type": "string", "format": "uri", "nullable": true }, + "html_url": { "type": "string", "format": "uri", "nullable": true }, + "download_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "_links": { + "type": "object", + "properties": { + "git": { "type": "string", "format": "uri", "nullable": true }, + "html": { "type": "string", "format": "uri", "nullable": true }, + "self": { "type": "string", "format": "uri" } + }, + "required": ["git", "html", "self"] + } + }, + "required": [ + "_links", + "git_url", + "html_url", + "download_url", + "name", + "path", + "sha", + "size", + "type", + "url", + "target" + ] + }, + "content-submodule": { + "title": "Symlink Content", + "description": "An object describing a symlink", + "type": "object", + "properties": { + "type": { "type": "string" }, + "submodule_git_url": { "type": "string", "format": "uri" }, + "size": { "type": "integer" }, + "name": { "type": "string" }, + "path": { "type": "string" }, + "sha": { "type": "string" }, + "url": { "type": "string", "format": "uri" }, + "git_url": { "type": "string", "format": "uri", "nullable": true }, + "html_url": { "type": "string", "format": "uri", "nullable": true }, + "download_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "_links": { + "type": "object", + "properties": { + "git": { "type": "string", "format": "uri", "nullable": true }, + "html": { "type": "string", "format": "uri", "nullable": true }, + "self": { "type": "string", "format": "uri" } + }, + "required": ["git", "html", "self"] + } + }, + "required": [ + "_links", + "git_url", + "html_url", + "download_url", + "name", + "path", + "sha", + "size", + "type", + "url", + "submodule_git_url" + ] + }, + "file-commit": { + "title": "File Commit", + "description": "File Commit", + "type": "object", + "properties": { + "content": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "path": { "type": "string" }, + "sha": { "type": "string" }, + "size": { "type": "integer" }, + "url": { "type": "string" }, + "html_url": { "type": "string" }, + "git_url": { "type": "string" }, + "download_url": { "type": "string" }, + "type": { "type": "string" }, + "_links": { + "type": "object", + "properties": { + "self": { "type": "string" }, + "git": { "type": "string" }, + "html": { "type": "string" } + } + } + }, + "nullable": true + }, + "commit": { + "type": "object", + "properties": { + "sha": { "type": "string" }, + "node_id": { "type": "string" }, + "url": { "type": "string" }, + "html_url": { "type": "string" }, + "author": { + "type": "object", + "properties": { + "date": { "type": "string" }, + "name": { "type": "string" }, + "email": { "type": "string" } + } + }, + "committer": { + "type": "object", + "properties": { + "date": { "type": "string" }, + "name": { "type": "string" }, + "email": { "type": "string" } + } + }, + "message": { "type": "string" }, + "tree": { + "type": "object", + "properties": { + "url": { "type": "string" }, + "sha": { "type": "string" } + } + }, + "parents": { + "type": "array", + "items": { + "type": "object", + "properties": { + "url": { "type": "string" }, + "html_url": { "type": "string" }, + "sha": { "type": "string" } + } + } + }, + "verification": { + "type": "object", + "properties": { + "verified": { "type": "boolean" }, + "reason": { "type": "string" }, + "signature": { "type": "string", "nullable": true }, + "payload": { "type": "string", "nullable": true } + } + } + } + } + } + }, + "contributor": { + "title": "Contributor", + "description": "Contributor", + "type": "object", + "properties": { + "login": { "type": "string" }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "avatar_url": { "type": "string", "format": "uri" }, + "gravatar_id": { "type": "string", "nullable": true }, + "url": { "type": "string", "format": "uri" }, + "html_url": { "type": "string", "format": "uri" }, + "followers_url": { "type": "string", "format": "uri" }, + "following_url": { "type": "string" }, + "gists_url": { "type": "string" }, + "starred_url": { "type": "string" }, + "subscriptions_url": { "type": "string", "format": "uri" }, + "organizations_url": { "type": "string", "format": "uri" }, + "repos_url": { "type": "string", "format": "uri" }, + "events_url": { "type": "string" }, + "received_events_url": { "type": "string", "format": "uri" }, + "type": { "type": "string" }, + "site_admin": { "type": "boolean" }, + "contributions": { "type": "integer" }, + "email": { "type": "string" }, + "name": { "type": "string" } + }, + "required": ["contributions", "type"] + }, + "deployment": { + "title": "Deployment", + "description": "A request for a specific ref(branch,sha,tag) to be deployed", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/example/deployments/1" + }, + "id": { + "description": "Unique identifier of the deployment", + "example": 42, + "type": "integer" + }, + "node_id": { "type": "string", "example": "MDEwOkRlcGxveW1lbnQx" }, + "sha": { + "type": "string", + "example": "a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d" + }, + "ref": { + "description": "The ref to deploy. This can be a branch, tag, or sha.", + "example": "topic-branch", + "type": "string" + }, + "task": { + "description": "Parameter to specify a task to execute", + "example": "deploy", + "type": "string" + }, + "payload": { "type": "object", "properties": {} }, + "original_environment": { "type": "string", "example": "staging" }, + "environment": { + "description": "Name for the target deployment environment.", + "example": "production", + "type": "string" + }, + "description": { + "type": "string", + "example": "Deploy request from hubot", + "nullable": true + }, + "creator": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2012-07-20T01:19:13Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2012-07-20T01:19:13Z" + }, + "statuses_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/example/deployments/1/statuses" + }, + "repository_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/example" + }, + "transient_environment": { + "description": "Specifies if the given environment is will no longer exist at some point in the future. Default: false.", + "example": true, + "type": "boolean" + }, + "production_environment": { + "description": "Specifies if the given environment is one that end-users directly interact with. Default: false.", + "example": true, + "type": "boolean" + }, + "performed_via_github_app": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/integration" }] + } + }, + "required": [ + "id", + "node_id", + "sha", + "ref", + "task", + "environment", + "creator", + "payload", + "description", + "statuses_url", + "repository_url", + "url", + "created_at", + "updated_at" + ] + }, + "deployment-status": { + "title": "Deployment Status", + "description": "The status of a deployment.", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/example/deployments/42/statuses/1" + }, + "id": { "type": "integer", "example": 1 }, + "node_id": { + "type": "string", + "example": "MDE2OkRlcGxveW1lbnRTdGF0dXMx" + }, + "state": { + "description": "The state of the status.", + "enum": [ + "error", + "failure", + "inactive", + "pending", + "success", + "queued", + "in_progress" + ], + "example": "success", + "type": "string" + }, + "creator": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "description": { + "description": "A short description of the status.", + "default": "", + "type": "string", + "maxLength": 140, + "example": "Deployment finished successfully." + }, + "environment": { + "description": "The environment of the deployment that the status is for.", + "default": "", + "type": "string", + "example": "production" + }, + "target_url": { + "description": "Deprecated: the URL to associate with this status.", + "default": "", + "type": "string", + "format": "uri", + "example": "https://example.com/deployment/42/output" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2012-07-20T01:19:13Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2012-07-20T01:19:13Z" + }, + "deployment_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/example/deployments/42" + }, + "repository_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/example" + }, + "environment_url": { + "description": "The URL for accessing your environment.", + "default": "", + "type": "string", + "format": "uri", + "example": "" + }, + "log_url": { + "description": "The URL to associate with this status.", + "default": "", + "type": "string", + "format": "uri", + "example": "https://example.com/deployment/42/output" + }, + "performed_via_github_app": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/integration" }] + } + }, + "required": [ + "id", + "node_id", + "state", + "creator", + "description", + "deployment_url", + "target_url", + "repository_url", + "url", + "created_at", + "updated_at" + ] + }, + "short-blob": { + "title": "Short Blob", + "description": "Short Blob", + "type": "object", + "properties": { + "url": { "type": "string" }, + "sha": { "type": "string" } + } + }, + "blob": { + "title": "Blob", + "description": "Blob", + "type": "object", + "properties": { + "content": { "type": "string" }, + "encoding": { "type": "string" }, + "url": { "type": "string", "format": "uri" }, + "sha": { "type": "string" }, + "size": { "type": "integer", "nullable": true }, + "node_id": { "type": "string" }, + "highlighted_content": { "type": "string" } + }, + "required": ["sha", "url", "node_id", "size", "content", "encoding"] + }, + "git-commit": { + "title": "Git Commit", + "description": "Low-level Git commit operations within a repository", + "type": "object", + "properties": { + "sha": { + "description": "SHA for the commit", + "example": "7638417db6d59f3c431d3e1f261cc637155684cd", + "type": "string" + }, + "node_id": { "type": "string" }, + "url": { "type": "string", "format": "uri" }, + "author": { + "description": "Identifying information for the git-user", + "type": "object", + "properties": { + "date": { + "description": "Timestamp of the commit", + "example": "2014-08-09T08:02:04+12:00", + "format": "date-time", + "type": "string" + }, + "email": { + "type": "string", + "description": "Git email address of the user", + "example": "monalisa.octocat@example.com" + }, + "name": { + "description": "Name of the git user", + "example": "Monalisa Octocat", + "type": "string" + } + }, + "required": ["email", "name"] + }, + "committer": { + "description": "Identifying information for the git-user", + "type": "object", + "properties": { + "date": { + "description": "Timestamp of the commit", + "example": "2014-08-09T08:02:04+12:00", + "format": "date-time", + "type": "string" + }, + "email": { + "type": "string", + "description": "Git email address of the user", + "example": "monalisa.octocat@example.com" + }, + "name": { + "description": "Name of the git user", + "example": "Monalisa Octocat", + "type": "string" + } + }, + "required": ["email", "name"] + }, + "message": { + "description": "Message describing the purpose of the commit", + "example": "Fix #42", + "type": "string" + }, + "tree": { + "type": "object", + "properties": { + "sha": { + "description": "SHA for the commit", + "example": "7638417db6d59f3c431d3e1f261cc637155684cd", + "type": "string" + }, + "url": { "type": "string", "format": "uri" } + } + }, + "parents": { + "type": "array", + "items": { + "type": "object", + "properties": { + "sha": { + "description": "SHA for the commit", + "example": "7638417db6d59f3c431d3e1f261cc637155684cd", + "type": "string" + }, + "url": { "type": "string", "format": "uri" }, + "html_url": { "type": "string", "format": "uri" } + } + } + }, + "verification": { + "type": "object", + "properties": { + "verified": { "type": "boolean" }, + "reason": { "type": "string" }, + "signature": { "type": "string", "nullable": true }, + "payload": { "type": "string", "nullable": true } + } + }, + "html_url": { "type": "string", "format": "uri" } + } + }, + "git-ref": { + "title": "Git Reference", + "description": "Git references within a repository", + "type": "object", + "properties": { + "ref": { "type": "string" }, + "node_id": { "type": "string" }, + "url": { "type": "string", "format": "uri" }, + "object": { + "type": "object", + "properties": { + "type": { "type": "string" }, + "sha": { + "description": "SHA for the reference", + "example": "7638417db6d59f3c431d3e1f261cc637155684cd", + "type": "string", + "minLength": 40, + "maxLength": 40 + }, + "url": { "type": "string", "format": "uri" } + } + } + } + }, + "git-tag": { + "title": "Git Tag", + "description": "Metadata for a Git tag", + "type": "object", + "properties": { + "node_id": { + "type": "string", + "example": "MDM6VGFnOTQwYmQzMzYyNDhlZmFlMGY5ZWU1YmM3YjJkNWM5ODU4ODdiMTZhYw==" + }, + "tag": { + "description": "Name of the tag", + "example": "v0.0.1", + "type": "string" + }, + "sha": { + "type": "string", + "example": "940bd336248efae0f9ee5bc7b2d5c985887b16ac" + }, + "url": { + "description": "URL for the tag", + "example": "https://api.github.com/repositories/42/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac", + "type": "string", + "format": "uri" + }, + "message": { + "description": "Message describing the purpose of the tag", + "example": "Initial public release", + "type": "string" + }, + "tagger": { + "type": "object", + "properties": { + "date": { "type": "string" }, + "email": { "type": "string" }, + "name": { "type": "string" } + }, + "required": ["date", "email", "name"] + }, + "object": { + "type": "object", + "properties": { + "sha": { "type": "string" }, + "type": { "type": "string" }, + "url": { "type": "string", "format": "uri" } + }, + "required": ["sha", "type", "url"] + }, + "verification": { "$ref": "#/components/schemas/verification" } + }, + "required": [ + "sha", + "url", + "node_id", + "tagger", + "object", + "tag", + "message" + ] + }, + "git-tree": { + "title": "Git Tree", + "description": "The hierarchy between files in a Git repository.", + "type": "object", + "properties": { + "sha": { "type": "string" }, + "url": { "type": "string", "format": "uri" }, + "truncated": { "type": "boolean" }, + "tree": { + "description": "Objects specifying a tree structure", + "type": "array", + "items": { + "type": "object", + "properties": { + "path": { "type": "string", "example": "\"test/file.rb\"" }, + "mode": { "type": "string", "example": "\"040000\"" }, + "type": { "type": "string", "example": "\"tree\"" }, + "sha": { + "type": "string", + "example": "\"23f6827669e43831def8a7ad935069c8bd418261\"" + }, + "size": { "type": "integer", "example": "12" }, + "url": { + "type": "string", + "example": "\"https://api.github.com/repos/owner-482f3203ecf01f67e9deb18e/BBB_Private_Repo/git/blobs/23f6827669e43831def8a7ad935069c8bd418261\"" + } + } + }, + "example": [ + { + "path": "file.rb", + "mode": "100644", + "type": "blob", + "size": 30, + "sha": "44b4fc6d56897b048c772eb4087f854f46256132", + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", + "properties": { + "path": { "type": "string" }, + "mode": { "type": "string" }, + "type": { "type": "string" }, + "size": { "type": "integer" }, + "sha": { "type": "string" }, + "url": { "type": "string" } + }, + "required": ["path", "mode", "type", "sha", "url", "size"] + } + ] + } + }, + "required": ["sha", "url", "tree", "truncated"] + }, + "hook-response": { + "title": "Hook Response", + "type": "object", + "properties": { + "code": { "type": "integer", "nullable": true }, + "status": { "type": "string", "nullable": true }, + "message": { "type": "string", "nullable": true } + }, + "required": ["code", "status", "message"] + }, + "hook": { + "title": "Webhook", + "description": "Webhooks for repositories.", + "type": "object", + "properties": { + "type": { "type": "string" }, + "id": { + "description": "Unique identifier of the webhook.", + "example": 42, + "type": "integer" + }, + "name": { + "description": "The name of a valid service, use 'web' for a webhook.", + "example": "web", + "type": "string" + }, + "active": { + "description": "Determines whether the hook is actually triggered on pushes.", + "type": "boolean", + "example": true + }, + "events": { + "description": "Determines what events the hook is triggered for. Default: ['push'].", + "type": "array", + "items": { "type": "string" }, + "example": ["push", "pull_request"] + }, + "config": { + "type": "object", + "properties": { + "email": { "type": "string", "example": "\"foo@bar.com\"" }, + "password": { "type": "string", "example": "\"foo\"" }, + "room": { "type": "string", "example": "\"roomer\"" }, + "subdomain": { "type": "string", "example": "\"foo\"" }, + "url": { "$ref": "#/components/schemas/webhook-config-url" }, + "insecure_ssl": { + "$ref": "#/components/schemas/webhook-config-insecure-ssl" + }, + "content_type": { + "$ref": "#/components/schemas/webhook-config-content-type" + }, + "digest": { "type": "string", "example": "\"sha256\"" }, + "secret": { + "$ref": "#/components/schemas/webhook-config-secret" + }, + "token": { "type": "string", "example": "\"abc\"" } + } + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-09-06T20:39:23Z" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-09-06T17:26:27Z" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/hooks/1" + }, + "test_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/hooks/1/test" + }, + "ping_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/hooks/1/pings" + }, + "last_response": { "$ref": "#/components/schemas/hook-response" } + }, + "required": [ + "id", + "url", + "type", + "name", + "active", + "events", + "config", + "ping_url", + "created_at", + "updated_at", + "last_response", + "test_url" + ] + }, + "import": { + "title": "Import", + "description": "A repository import from an external source.", + "type": "object", + "properties": { + "vcs": { "type": "string", "nullable": true }, + "use_lfs": { "type": "string" }, + "vcs_url": { + "description": "The URL of the originating repository.", + "type": "string" + }, + "svc_root": { "type": "string" }, + "tfvc_project": { "type": "string" }, + "status": { + "type": "string", + "enum": [ + "auth", + "error", + "none", + "detecting", + "choose", + "auth_failed", + "importing", + "mapping", + "waiting_to_push", + "pushing", + "complete", + "setup", + "unknown", + "detection_found_multiple", + "detection_found_nothing", + "detection_needs_auth" + ] + }, + "status_text": { "type": "string", "nullable": true }, + "failed_step": { "type": "string", "nullable": true }, + "error_message": { "type": "string", "nullable": true }, + "import_percent": { "type": "integer", "nullable": true }, + "commit_count": { "type": "integer", "nullable": true }, + "push_percent": { "type": "integer", "nullable": true }, + "has_large_files": { "type": "boolean" }, + "large_files_size": { "type": "integer" }, + "large_files_count": { "type": "integer" }, + "project_choices": { + "type": "array", + "items": { + "type": "object", + "properties": { + "vcs": { "type": "string" }, + "tfvc_project": { "type": "string" }, + "human_name": { "type": "string" } + } + } + }, + "message": { "type": "string" }, + "authors_count": { "type": "integer", "nullable": true }, + "url": { "type": "string", "format": "uri" }, + "html_url": { "type": "string", "format": "uri" }, + "authors_url": { "type": "string", "format": "uri" }, + "repository_url": { "type": "string", "format": "uri" }, + "svn_root": { "type": "string" } + }, + "required": [ + "vcs", + "vcs_url", + "status", + "url", + "repository_url", + "html_url", + "authors_url" + ] + }, + "porter-author": { + "title": "Porter Author", + "description": "Porter Author", + "type": "object", + "properties": { + "id": { "type": "integer" }, + "remote_id": { "type": "string" }, + "remote_name": { "type": "string" }, + "email": { "type": "string" }, + "name": { "type": "string" }, + "url": { "type": "string", "format": "uri" }, + "import_url": { "type": "string", "format": "uri" } + }, + "required": [ + "id", + "remote_id", + "remote_name", + "email", + "name", + "url", + "import_url" + ] + }, + "porter-large-file": { + "title": "Porter Large File", + "description": "Porter Large File", + "type": "object", + "properties": { + "ref_name": { "type": "string" }, + "path": { "type": "string" }, + "oid": { "type": "string" }, + "size": { "type": "integer" } + }, + "required": ["oid", "path", "ref_name", "size"] + }, + "issue-event-label": { + "title": "Issue Event Label", + "description": "Issue Event Label", + "type": "object", + "properties": { + "name": { "type": "string", "nullable": true }, + "color": { "type": "string", "nullable": true } + }, + "required": ["name", "color"] + }, + "issue-event-dismissed-review": { + "title": "Issue Event Dismissed Review", + "type": "object", + "properties": { + "state": { "type": "string" }, + "review_id": { "type": "integer" }, + "dismissal_message": { "type": "string", "nullable": true }, + "dismissal_commit_id": { "type": "string", "nullable": true } + }, + "required": ["state", "review_id", "dismissal_message"] + }, + "issue-event-milestone": { + "title": "Issue Event Milestone", + "description": "Issue Event Milestone", + "type": "object", + "properties": { "title": { "type": "string" } }, + "required": ["title"] + }, + "issue-event-project-card": { + "title": "Issue Event Project Card", + "description": "Issue Event Project Card", + "type": "object", + "properties": { + "url": { "type": "string", "format": "uri" }, + "id": { "type": "integer" }, + "project_url": { "type": "string", "format": "uri" }, + "project_id": { "type": "integer" }, + "column_name": { "type": "string" }, + "previous_column_name": { "type": "string" } + }, + "required": ["url", "id", "project_url", "project_id", "column_name"] + }, + "issue-event-rename": { + "title": "Issue Event Rename", + "description": "Issue Event Rename", + "type": "object", + "properties": { + "from": { "type": "string" }, + "to": { "type": "string" } + }, + "required": ["from", "to"] + }, + "issue-event": { + "title": "Issue Event", + "description": "Issue Event", + "type": "object", + "properties": { + "id": { "type": "integer", "example": 1 }, + "node_id": { "type": "string", "example": "MDEwOklzc3VlRXZlbnQx" }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/events/1" + }, + "actor": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "event": { "type": "string", "example": "closed" }, + "commit_id": { + "type": "string", + "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "nullable": true + }, + "commit_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" + }, + "issue": { "$ref": "#/components/schemas/issue-simple" }, + "label": { "$ref": "#/components/schemas/issue-event-label" }, + "assignee": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "assigner": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "review_requester": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "requested_reviewer": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "requested_team": { "$ref": "#/components/schemas/team" }, + "dismissed_review": { + "$ref": "#/components/schemas/issue-event-dismissed-review" + }, + "milestone": { "$ref": "#/components/schemas/issue-event-milestone" }, + "project_card": { + "$ref": "#/components/schemas/issue-event-project-card" + }, + "rename": { "$ref": "#/components/schemas/issue-event-rename" }, + "author_association": { "type": "string" }, + "lock_reason": { "type": "string", "nullable": true } + }, + "required": [ + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at" + ] + }, + "issue-event-for-issue": { + "title": "Issue Event for Issue", + "description": "Issue Event for Issue", + "type": "object", + "properties": { + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "url": { "type": "string" }, + "actor": { "$ref": "#/components/schemas/simple-user" }, + "event": { "type": "string" }, + "commit_id": { "type": "string", "nullable": true }, + "commit_url": { "type": "string", "nullable": true }, + "created_at": { "type": "string" }, + "sha": { + "type": "string", + "example": "\"480d4f47447129f015cb327536c522ca683939a1\"" + }, + "html_url": { + "type": "string", + "example": "\"https://github.com/owner-3906e11a33a3d55ba449d63f/BBB_Private_Repo/commit/480d4f47447129f015cb327536c522ca683939a1\"" + }, + "message": { + "type": "string", + "example": "\"add a bunch of files\"" + }, + "issue_url": { + "type": "string", + "example": "\"https://api.github.com/repos/owner-3906e11a33a3d55ba449d63f/AAA_Public_Repo/issues/1\"" + }, + "updated_at": { + "type": "string", + "example": "\"2020-07-09T00:17:36Z\"" + }, + "author_association": { + "type": "string", + "example": "\"COLLABORATOR\"" + }, + "body": { "type": "string", "example": "\":+1:\"" }, + "lock_reason": { "type": "string", "example": "\"off-topic\"" }, + "submitted_at": { + "type": "string", + "example": "\"2020-07-09T00:17:51Z\"" + }, + "state": { "type": "string", "example": "\"commented\"" }, + "pull_request_url": { + "type": "string", + "example": "\"https://api.github.com/repos/owner-3906e11a33a3d55ba449d63f/AAA_Public_Repo/pulls/2\"" + }, + "body_html": { + "type": "string", + "example": "\"

Accusantium fugiat cumque. Autem qui nostrum. Atque quae ullam.

\"" + }, + "body_text": { + "type": "string", + "example": "\"Accusantium fugiat cumque. Autem qui nostrum. Atque quae ullam.\"" + } + } + }, + "deploy-key": { + "title": "Deploy Key", + "description": "An SSH key granting access to a single repository.", + "type": "object", + "properties": { + "id": { "type": "integer" }, + "key": { "type": "string" }, + "url": { "type": "string" }, + "title": { "type": "string" }, + "verified": { "type": "boolean" }, + "created_at": { "type": "string" }, + "read_only": { "type": "boolean" } + } + }, + "language": { + "title": "Language", + "description": "Language", + "type": "object", + "additionalProperties": { "type": "integer" } + }, + "license-content": { + "title": "License Content", + "description": "License Content", + "type": "object", + "properties": { + "name": { "type": "string" }, + "path": { "type": "string" }, + "sha": { "type": "string" }, + "size": { "type": "integer" }, + "url": { "type": "string", "format": "uri" }, + "html_url": { "type": "string", "format": "uri", "nullable": true }, + "git_url": { "type": "string", "format": "uri", "nullable": true }, + "download_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "type": { "type": "string" }, + "content": { "type": "string" }, + "encoding": { "type": "string" }, + "_links": { + "type": "object", + "properties": { + "git": { "type": "string", "format": "uri", "nullable": true }, + "html": { "type": "string", "format": "uri", "nullable": true }, + "self": { "type": "string", "format": "uri" } + }, + "required": ["git", "html", "self"] + }, + "license": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/license-simple" }] + } + }, + "required": [ + "_links", + "git_url", + "html_url", + "download_url", + "name", + "path", + "sha", + "size", + "type", + "url", + "content", + "encoding", + "license" + ] + }, + "pages-source-hash": { + "title": "Pages Source Hash", + "type": "object", + "properties": { + "branch": { "type": "string" }, + "path": { "type": "string" } + }, + "required": ["branch", "path"] + }, + "page": { + "title": "GitHub Pages", + "description": "The configuration for GitHub Pages for a repository.", + "type": "object", + "properties": { + "url": { + "type": "string", + "description": "The API address for accessing this Page resource.", + "format": "uri", + "example": "https://api.github.com/repos/github/hello-world/pages" + }, + "status": { + "type": "string", + "description": "The status of the most recent build of the Page.", + "example": "built", + "enum": ["built", "building", "errored"], + "nullable": true + }, + "cname": { + "description": "The Pages site's custom domain", + "example": "example.com", + "type": "string", + "nullable": true + }, + "custom_404": { + "type": "boolean", + "description": "Whether the Page has a custom 404 page.", + "example": false, + "default": false + }, + "html_url": { + "type": "string", + "description": "The web address the Page can be accessed from.", + "format": "uri", + "example": "https://example.com" + }, + "source": { "$ref": "#/components/schemas/pages-source-hash" } + }, + "required": ["url", "status", "cname", "custom_404"] + }, + "page-build": { + "title": "Page Build", + "description": "Page Build", + "type": "object", + "properties": { + "url": { "type": "string", "format": "uri" }, + "status": { "type": "string" }, + "error": { + "type": "object", + "properties": { "message": { "type": "string", "nullable": true } }, + "required": ["message"] + }, + "pusher": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "commit": { "type": "string" }, + "duration": { "type": "integer" }, + "created_at": { "type": "string", "format": "date-time" }, + "updated_at": { "type": "string", "format": "date-time" } + }, + "required": [ + "url", + "status", + "error", + "pusher", + "commit", + "duration", + "created_at", + "updated_at" + ] + }, + "page-build-status": { + "title": "Page Build Status", + "description": "Page Build Status", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/github/hello-world/pages/builds/latest" + }, + "status": { "type": "string", "example": "queued" } + }, + "required": ["url", "status"] + }, + "pull-request": { + "type": "object", + "title": "Pull Request", + "description": "Pull requests let you tell others about changes you've pushed to a repository on GitHub. Once a pull request is sent, interested parties can review the set of changes, discuss potential modifications, and even push follow-up commits if necessary.", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347" + }, + "id": { "type": "integer", "example": 1 }, + "node_id": { + "type": "string", + "example": "MDExOlB1bGxSZXF1ZXN0MQ==" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/1347" + }, + "diff_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/1347.diff" + }, + "patch_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/1347.patch" + }, + "issue_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347" + }, + "commits_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits" + }, + "review_comments_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments" + }, + "review_comment_url": { + "type": "string", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number}" + }, + "comments_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments" + }, + "statuses_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e" + }, + "number": { + "description": "Number uniquely identifying the pull request within its repository.", + "example": 42, + "type": "integer" + }, + "state": { + "description": "State of this Pull Request. Either `open` or `closed`.", + "enum": ["open", "closed"], + "example": "open", + "type": "string" + }, + "locked": { "type": "boolean", "example": true }, + "title": { + "description": "The title of the pull request.", + "example": "Amazing new feature", + "type": "string" + }, + "user": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "body": { + "type": "string", + "example": "Please pull these awesome changes", + "nullable": true + }, + "labels": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "url": { "type": "string" }, + "name": { "type": "string" }, + "description": { "type": "string", "nullable": true }, + "color": { "type": "string" }, + "default": { "type": "boolean" } + } + } + }, + "milestone": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/milestone" }] + }, + "active_lock_reason": { + "type": "string", + "example": "too heated", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z" + }, + "closed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "merged_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "merge_commit_sha": { + "type": "string", + "example": "e5bd3914e2e596debea16f433f57875b5b90bcd6", + "nullable": true + }, + "assignee": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "assignees": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" }, + "nullable": true + }, + "requested_reviewers": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" }, + "nullable": true + }, + "requested_teams": { + "type": "array", + "items": { "$ref": "#/components/schemas/team-simple" }, + "nullable": true + }, + "head": { + "type": "object", + "properties": { + "label": { "type": "string" }, + "ref": { "type": "string" }, + "repo": { + "type": "object", + "properties": { + "archive_url": { "type": "string" }, + "assignees_url": { "type": "string" }, + "blobs_url": { "type": "string" }, + "branches_url": { "type": "string" }, + "collaborators_url": { "type": "string" }, + "comments_url": { "type": "string" }, + "commits_url": { "type": "string" }, + "compare_url": { "type": "string" }, + "contents_url": { "type": "string" }, + "contributors_url": { "type": "string", "format": "uri" }, + "deployments_url": { "type": "string", "format": "uri" }, + "description": { "type": "string", "nullable": true }, + "downloads_url": { "type": "string", "format": "uri" }, + "events_url": { "type": "string", "format": "uri" }, + "fork": { "type": "boolean" }, + "forks_url": { "type": "string", "format": "uri" }, + "full_name": { "type": "string" }, + "git_commits_url": { "type": "string" }, + "git_refs_url": { "type": "string" }, + "git_tags_url": { "type": "string" }, + "hooks_url": { "type": "string", "format": "uri" }, + "html_url": { "type": "string", "format": "uri" }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "issue_comment_url": { "type": "string" }, + "issue_events_url": { "type": "string" }, + "issues_url": { "type": "string" }, + "keys_url": { "type": "string" }, + "labels_url": { "type": "string" }, + "languages_url": { "type": "string", "format": "uri" }, + "merges_url": { "type": "string", "format": "uri" }, + "milestones_url": { "type": "string" }, + "name": { "type": "string" }, + "notifications_url": { "type": "string" }, + "owner": { + "type": "object", + "properties": { + "avatar_url": { "type": "string", "format": "uri" }, + "events_url": { "type": "string" }, + "followers_url": { "type": "string", "format": "uri" }, + "following_url": { "type": "string" }, + "gists_url": { "type": "string" }, + "gravatar_id": { "type": "string", "nullable": true }, + "html_url": { "type": "string", "format": "uri" }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "login": { "type": "string" }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { "type": "string", "format": "uri" }, + "site_admin": { "type": "boolean" }, + "starred_url": { "type": "string" }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { "type": "string" }, + "url": { "type": "string", "format": "uri" } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + }, + "private": { "type": "boolean" }, + "pulls_url": { "type": "string" }, + "releases_url": { "type": "string" }, + "stargazers_url": { "type": "string", "format": "uri" }, + "statuses_url": { "type": "string" }, + "subscribers_url": { "type": "string", "format": "uri" }, + "subscription_url": { "type": "string", "format": "uri" }, + "tags_url": { "type": "string", "format": "uri" }, + "teams_url": { "type": "string", "format": "uri" }, + "trees_url": { "type": "string" }, + "url": { "type": "string", "format": "uri" }, + "clone_url": { "type": "string" }, + "default_branch": { "type": "string" }, + "forks": { "type": "integer" }, + "forks_count": { "type": "integer" }, + "git_url": { "type": "string" }, + "has_downloads": { "type": "boolean" }, + "has_issues": { "type": "boolean" }, + "has_projects": { "type": "boolean" }, + "has_wiki": { "type": "boolean" }, + "has_pages": { "type": "boolean" }, + "homepage": { + "type": "string", + "format": "uri", + "nullable": true + }, + "language": { "type": "string", "nullable": true }, + "master_branch": { "type": "string" }, + "archived": { "type": "boolean" }, + "disabled": { "type": "boolean" }, + "mirror_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "open_issues": { "type": "integer" }, + "open_issues_count": { "type": "integer" }, + "permissions": { + "type": "object", + "properties": { + "admin": { "type": "boolean" }, + "pull": { "type": "boolean" }, + "push": { "type": "boolean" } + }, + "required": ["admin", "pull", "push"] + }, + "temp_clone_token": { "type": "string" }, + "allow_merge_commit": { "type": "boolean" }, + "allow_squash_merge": { "type": "boolean" }, + "allow_rebase_merge": { "type": "boolean" }, + "license": { + "type": "object", + "properties": { + "key": { "type": "string" }, + "name": { "type": "string" }, + "url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "spdx_id": { "type": "string", "nullable": true }, + "node_id": { "type": "string" } + }, + "required": ["key", "name", "url", "spdx_id", "node_id"], + "nullable": true + }, + "pushed_at": { "type": "string", "format": "date-time" }, + "size": { "type": "integer" }, + "ssh_url": { "type": "string" }, + "stargazers_count": { "type": "integer" }, + "svn_url": { "type": "string", "format": "uri" }, + "topics": { "type": "array", "items": { "type": "string" } }, + "watchers": { "type": "integer" }, + "watchers_count": { "type": "integer" }, + "created_at": { "type": "string", "format": "date-time" }, + "updated_at": { "type": "string", "format": "date-time" } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url", + "clone_url", + "default_branch", + "forks", + "forks_count", + "git_url", + "has_downloads", + "has_issues", + "has_projects", + "has_wiki", + "has_pages", + "homepage", + "language", + "archived", + "disabled", + "mirror_url", + "open_issues", + "open_issues_count", + "license", + "pushed_at", + "size", + "ssh_url", + "stargazers_count", + "svn_url", + "watchers", + "watchers_count", + "created_at", + "updated_at" + ] + }, + "sha": { "type": "string" }, + "user": { + "type": "object", + "properties": { + "avatar_url": { "type": "string", "format": "uri" }, + "events_url": { "type": "string" }, + "followers_url": { "type": "string", "format": "uri" }, + "following_url": { "type": "string" }, + "gists_url": { "type": "string" }, + "gravatar_id": { "type": "string", "nullable": true }, + "html_url": { "type": "string", "format": "uri" }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "login": { "type": "string" }, + "organizations_url": { "type": "string", "format": "uri" }, + "received_events_url": { "type": "string", "format": "uri" }, + "repos_url": { "type": "string", "format": "uri" }, + "site_admin": { "type": "boolean" }, + "starred_url": { "type": "string" }, + "subscriptions_url": { "type": "string", "format": "uri" }, + "type": { "type": "string" }, + "url": { "type": "string", "format": "uri" } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + } + }, + "required": ["label", "ref", "repo", "sha", "user"] + }, + "base": { + "type": "object", + "properties": { + "label": { "type": "string" }, + "ref": { "type": "string" }, + "repo": { + "type": "object", + "properties": { + "archive_url": { "type": "string" }, + "assignees_url": { "type": "string" }, + "blobs_url": { "type": "string" }, + "branches_url": { "type": "string" }, + "collaborators_url": { "type": "string" }, + "comments_url": { "type": "string" }, + "commits_url": { "type": "string" }, + "compare_url": { "type": "string" }, + "contents_url": { "type": "string" }, + "contributors_url": { "type": "string", "format": "uri" }, + "deployments_url": { "type": "string", "format": "uri" }, + "description": { "type": "string", "nullable": true }, + "downloads_url": { "type": "string", "format": "uri" }, + "events_url": { "type": "string", "format": "uri" }, + "fork": { "type": "boolean" }, + "forks_url": { "type": "string", "format": "uri" }, + "full_name": { "type": "string" }, + "git_commits_url": { "type": "string" }, + "git_refs_url": { "type": "string" }, + "git_tags_url": { "type": "string" }, + "hooks_url": { "type": "string", "format": "uri" }, + "html_url": { "type": "string", "format": "uri" }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "issue_comment_url": { "type": "string" }, + "issue_events_url": { "type": "string" }, + "issues_url": { "type": "string" }, + "keys_url": { "type": "string" }, + "labels_url": { "type": "string" }, + "languages_url": { "type": "string", "format": "uri" }, + "merges_url": { "type": "string", "format": "uri" }, + "milestones_url": { "type": "string" }, + "name": { "type": "string" }, + "notifications_url": { "type": "string" }, + "owner": { + "type": "object", + "properties": { + "avatar_url": { "type": "string", "format": "uri" }, + "events_url": { "type": "string" }, + "followers_url": { "type": "string", "format": "uri" }, + "following_url": { "type": "string" }, + "gists_url": { "type": "string" }, + "gravatar_id": { "type": "string", "nullable": true }, + "html_url": { "type": "string", "format": "uri" }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "login": { "type": "string" }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { "type": "string", "format": "uri" }, + "site_admin": { "type": "boolean" }, + "starred_url": { "type": "string" }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { "type": "string" }, + "url": { "type": "string", "format": "uri" } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + }, + "private": { "type": "boolean" }, + "pulls_url": { "type": "string" }, + "releases_url": { "type": "string" }, + "stargazers_url": { "type": "string", "format": "uri" }, + "statuses_url": { "type": "string" }, + "subscribers_url": { "type": "string", "format": "uri" }, + "subscription_url": { "type": "string", "format": "uri" }, + "tags_url": { "type": "string", "format": "uri" }, + "teams_url": { "type": "string", "format": "uri" }, + "trees_url": { "type": "string" }, + "url": { "type": "string", "format": "uri" }, + "clone_url": { "type": "string" }, + "default_branch": { "type": "string" }, + "forks": { "type": "integer" }, + "forks_count": { "type": "integer" }, + "git_url": { "type": "string" }, + "has_downloads": { "type": "boolean" }, + "has_issues": { "type": "boolean" }, + "has_projects": { "type": "boolean" }, + "has_wiki": { "type": "boolean" }, + "has_pages": { "type": "boolean" }, + "homepage": { + "type": "string", + "format": "uri", + "nullable": true + }, + "language": { "type": "string", "nullable": true }, + "master_branch": { "type": "string" }, + "archived": { "type": "boolean" }, + "disabled": { "type": "boolean" }, + "mirror_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "open_issues": { "type": "integer" }, + "open_issues_count": { "type": "integer" }, + "permissions": { + "type": "object", + "properties": { + "admin": { "type": "boolean" }, + "pull": { "type": "boolean" }, + "push": { "type": "boolean" } + }, + "required": ["admin", "pull", "push"] + }, + "temp_clone_token": { "type": "string" }, + "allow_merge_commit": { "type": "boolean" }, + "allow_squash_merge": { "type": "boolean" }, + "allow_rebase_merge": { "type": "boolean" }, + "license": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/license-simple" }] + }, + "pushed_at": { "type": "string", "format": "date-time" }, + "size": { "type": "integer" }, + "ssh_url": { "type": "string" }, + "stargazers_count": { "type": "integer" }, + "svn_url": { "type": "string", "format": "uri" }, + "topics": { "type": "array", "items": { "type": "string" } }, + "watchers": { "type": "integer" }, + "watchers_count": { "type": "integer" }, + "created_at": { "type": "string", "format": "date-time" }, + "updated_at": { "type": "string", "format": "date-time" } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url", + "clone_url", + "default_branch", + "forks", + "forks_count", + "git_url", + "has_downloads", + "has_issues", + "has_projects", + "has_wiki", + "has_pages", + "homepage", + "language", + "archived", + "disabled", + "mirror_url", + "open_issues", + "open_issues_count", + "license", + "pushed_at", + "size", + "ssh_url", + "stargazers_count", + "svn_url", + "watchers", + "watchers_count", + "created_at", + "updated_at" + ] + }, + "sha": { "type": "string" }, + "user": { + "type": "object", + "properties": { + "avatar_url": { "type": "string", "format": "uri" }, + "events_url": { "type": "string" }, + "followers_url": { "type": "string", "format": "uri" }, + "following_url": { "type": "string" }, + "gists_url": { "type": "string" }, + "gravatar_id": { "type": "string", "nullable": true }, + "html_url": { "type": "string", "format": "uri" }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "login": { "type": "string" }, + "organizations_url": { "type": "string", "format": "uri" }, + "received_events_url": { "type": "string", "format": "uri" }, + "repos_url": { "type": "string", "format": "uri" }, + "site_admin": { "type": "boolean" }, + "starred_url": { "type": "string" }, + "subscriptions_url": { "type": "string", "format": "uri" }, + "type": { "type": "string" }, + "url": { "type": "string", "format": "uri" } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + } + }, + "required": ["label", "ref", "repo", "sha", "user"] + }, + "_links": { + "type": "object", + "properties": { + "comments": { "$ref": "#/components/schemas/link" }, + "commits": { "$ref": "#/components/schemas/link" }, + "statuses": { "$ref": "#/components/schemas/link" }, + "html": { "$ref": "#/components/schemas/link" }, + "issue": { "$ref": "#/components/schemas/link" }, + "review_comments": { "$ref": "#/components/schemas/link" }, + "review_comment": { "$ref": "#/components/schemas/link" }, + "self": { "$ref": "#/components/schemas/link" } + }, + "required": [ + "comments", + "commits", + "statuses", + "html", + "issue", + "review_comments", + "review_comment", + "self" + ] + }, + "author_association": { "type": "string", "example": "OWNER" }, + "draft": { + "description": "Indicates whether or not the pull request is a draft.", + "example": false, + "type": "boolean" + }, + "merged": { "type": "boolean" }, + "mergeable": { "type": "boolean", "example": true, "nullable": true }, + "rebaseable": { + "type": "boolean", + "example": true, + "nullable": true + }, + "mergeable_state": { "type": "string", "example": "clean" }, + "merged_by": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "comments": { "type": "integer", "example": 10 }, + "review_comments": { "type": "integer", "example": 0 }, + "maintainer_can_modify": { + "description": "Indicates whether maintainers can modify the pull request.", + "example": true, + "type": "boolean" + }, + "commits": { "type": "integer", "example": 3 }, + "additions": { "type": "integer", "example": 100 }, + "deletions": { "type": "integer", "example": 3 }, + "changed_files": { "type": "integer", "example": 5 } + }, + "required": [ + "_links", + "assignee", + "labels", + "base", + "body", + "closed_at", + "comments_url", + "commits_url", + "created_at", + "diff_url", + "head", + "html_url", + "id", + "node_id", + "issue_url", + "merge_commit_sha", + "merged_at", + "milestone", + "number", + "patch_url", + "review_comment_url", + "review_comments_url", + "statuses_url", + "state", + "locked", + "title", + "updated_at", + "url", + "user", + "author_association", + "additions", + "changed_files", + "comments", + "commits", + "deletions", + "mergeable", + "mergeable_state", + "merged", + "maintainer_can_modify", + "merged_by", + "review_comments" + ] + }, + "pull-request-review-comment": { + "title": "Pull Request Review Comment", + "description": "Pull Request Review Comments are comments on a portion of the Pull Request's diff.", + "type": "object", + "properties": { + "url": { + "description": "URL for the pull request review comment", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1", + "type": "string" + }, + "pull_request_review_id": { + "description": "The ID of the pull request review to which the comment belongs.", + "example": 42, + "type": "integer", + "nullable": true + }, + "id": { + "description": "The ID of the pull request review comment.", + "example": 1, + "type": "integer" + }, + "node_id": { + "description": "The node ID of the pull request review comment.", + "type": "string", + "example": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw" + }, + "diff_hunk": { + "description": "The diff of the line that the comment refers to.", + "type": "string", + "example": "@@ -16,33 +16,40 @@ public class Connection : IConnection..." + }, + "path": { + "description": "The relative path of the file to which the comment applies.", + "example": "config/database.yaml", + "type": "string" + }, + "position": { + "description": "The line index in the diff to which the comment applies.", + "example": 1, + "type": "integer" + }, + "original_position": { + "description": "The index of the original line in the diff to which the comment applies.", + "example": 4, + "type": "integer" + }, + "commit_id": { + "description": "The SHA of the commit to which the comment applies.", + "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "type": "string" + }, + "original_commit_id": { + "description": "The SHA of the original commit to which the comment applies.", + "example": "9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840", + "type": "string" + }, + "in_reply_to_id": { + "description": "The comment ID to reply to.", + "example": 8, + "type": "integer" + }, + "user": { "$ref": "#/components/schemas/simple-user" }, + "body": { + "description": "The text of the comment.", + "example": "We should probably include a check for null values here.", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" + }, + "html_url": { + "description": "HTML URL for the pull request review comment.", + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1" + }, + "pull_request_url": { + "description": "URL for the pull request that the review comment belongs to.", + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1" + }, + "author_association": { + "description": "How the author of the comment is associated with the pull request.", + "type": "string", + "example": "" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1" + } + }, + "required": ["href"] + }, + "html": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1" + } + }, + "required": ["href"] + }, + "pull_request": { + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1" + } + }, + "required": ["href"] + } + }, + "required": ["self", "html", "pull_request"] + }, + "start_line": { + "type": "integer", + "description": "The first line of the range for a multi-line comment.", + "example": 2, + "nullable": true + }, + "original_start_line": { + "type": "integer", + "description": "The first line of the range for a multi-line comment.", + "example": 2, + "nullable": true + }, + "start_side": { + "type": "string", + "description": "The side of the first line of the range for a multi-line comment.", + "enum": ["LEFT", "RIGHT"], + "default": "RIGHT", + "nullable": true + }, + "line": { + "description": "The line of the blob to which the comment applies. The last line of the range for a multi-line comment", + "example": 2, + "type": "integer" + }, + "original_line": { + "description": "The line of the blob to which the comment applies. The last line of the range for a multi-line comment", + "example": 2, + "type": "integer" + }, + "side": { + "description": "The side of the diff to which the comment applies. The side of the last line of the range for a multi-line comment", + "enum": ["LEFT", "RIGHT"], + "default": "RIGHT", + "type": "string" + }, + "reactions": { "$ref": "#/components/schemas/reaction-rollup" }, + "body_html": { + "type": "string", + "example": "\"

comment body

\"" + }, + "body_text": { "type": "string", "example": "\"comment body\"" } + }, + "required": [ + "url", + "id", + "node_id", + "pull_request_review_id", + "diff_hunk", + "path", + "position", + "original_position", + "commit_id", + "original_commit_id", + "user", + "body", + "created_at", + "updated_at", + "html_url", + "pull_request_url", + "author_association", + "_links" + ] + }, + "pull-request-merge-result": { + "title": "Pull Request Merge Result", + "description": "Pull Request Merge Result", + "type": "object", + "properties": { + "sha": { "type": "string" }, + "merged": { "type": "boolean" }, + "message": { "type": "string" } + }, + "required": ["merged", "message", "sha"] + }, + "pull-request-review-request": { + "title": "Pull Request Review Request", + "description": "Pull Request Review Request", + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "type": "object", + "properties": { + "login": { "type": "string" }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "avatar_url": { "type": "string" }, + "gravatar_id": { "type": "string" }, + "url": { "type": "string" }, + "html_url": { "type": "string" }, + "followers_url": { "type": "string" }, + "following_url": { "type": "string" }, + "gists_url": { "type": "string" }, + "starred_url": { "type": "string" }, + "subscriptions_url": { "type": "string" }, + "organizations_url": { "type": "string" }, + "repos_url": { "type": "string" }, + "events_url": { "type": "string" }, + "received_events_url": { "type": "string" }, + "type": { "type": "string" }, + "site_admin": { "type": "boolean" } + } + } + }, + "teams": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "url": { "type": "string" }, + "html_url": { "type": "string" }, + "name": { "type": "string" }, + "slug": { "type": "string" }, + "description": { "type": "string", "nullable": true }, + "privacy": { "type": "string" }, + "permission": { "type": "string" }, + "members_url": { "type": "string" }, + "repositories_url": { "type": "string" }, + "parent": { "type": "string", "nullable": true } + } + } + } + } + }, + "pull-request-review": { + "title": "Pull Request Review", + "description": "Pull Request Reviews are reviews on pull requests.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the review", + "example": 42, + "type": "integer" + }, + "node_id": { + "type": "string", + "example": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA=" + }, + "user": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "body": { + "description": "The text of the review.", + "example": "This looks great.", + "type": "string" + }, + "state": { "type": "string", "example": "CHANGES_REQUESTED" }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80" + }, + "pull_request_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/12" + }, + "_links": { + "type": "object", + "properties": { + "html": { + "type": "object", + "properties": { "href": { "type": "string" } }, + "required": ["href"] + }, + "pull_request": { + "type": "object", + "properties": { "href": { "type": "string" } }, + "required": ["href"] + } + }, + "required": ["html", "pull_request"] + }, + "submitted_at": { "type": "string", "format": "date-time" }, + "commit_id": { + "description": "A commit SHA for the review.", + "example": "54bb654c9e6025347f57900a4a5c2313a96b8035", + "type": "string" + }, + "body_html": { "type": "string" }, + "body_text": { "type": "string" }, + "author_association": { "type": "string" } + }, + "required": [ + "id", + "node_id", + "user", + "body", + "state", + "commit_id", + "html_url", + "pull_request_url", + "_links", + "author_association" + ] + }, + "review-comment": { + "title": "Legacy Review Comment", + "description": "Legacy Review Comment", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1" + }, + "pull_request_review_id": { + "type": "integer", + "example": 42, + "nullable": true + }, + "id": { "type": "integer", "example": 10 }, + "node_id": { + "type": "string", + "example": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw" + }, + "diff_hunk": { + "type": "string", + "example": "@@ -16,33 +16,40 @@ public class Connection : IConnection..." + }, + "path": { "type": "string", "example": "file1.txt" }, + "position": { "type": "integer", "example": 1, "nullable": true }, + "original_position": { "type": "integer", "example": 4 }, + "commit_id": { + "type": "string", + "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + }, + "original_commit_id": { + "type": "string", + "example": "9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840" + }, + "in_reply_to_id": { "type": "integer", "example": 8 }, + "user": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "body": { "type": "string", "example": "Great stuff" }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1" + }, + "pull_request_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1" + }, + "author_association": { "type": "string" }, + "_links": { + "type": "object", + "properties": { + "self": { "$ref": "#/components/schemas/link" }, + "html": { "$ref": "#/components/schemas/link" }, + "pull_request": { "$ref": "#/components/schemas/link" } + }, + "required": ["self", "html", "pull_request"] + }, + "body_text": { "type": "string" }, + "body_html": { "type": "string" }, + "side": { + "description": "The side of the first line of the range for a multi-line comment.", + "enum": ["LEFT", "RIGHT"], + "default": "RIGHT", + "type": "string" + }, + "start_side": { + "type": "string", + "description": "The side of the first line of the range for a multi-line comment.", + "enum": ["LEFT", "RIGHT"], + "default": "RIGHT", + "nullable": true + }, + "line": { + "description": "The line of the blob to which the comment applies. The last line of the range for a multi-line comment", + "example": 2, + "type": "integer" + }, + "original_line": { + "description": "The original line of the blob to which the comment applies. The last line of the range for a multi-line comment", + "example": 2, + "type": "integer" + }, + "start_line": { + "description": "The first line of the range for a multi-line comment.", + "example": 2, + "type": "integer", + "nullable": true + }, + "original_start_line": { + "description": "The original first line of the range for a multi-line comment.", + "example": 2, + "type": "integer", + "nullable": true + } + }, + "required": [ + "id", + "node_id", + "url", + "body", + "diff_hunk", + "path", + "position", + "original_position", + "commit_id", + "original_commit_id", + "user", + "pull_request_review_id", + "html_url", + "pull_request_url", + "_links", + "author_association", + "created_at", + "updated_at" + ] + }, + "release-asset": { + "title": "Release Asset", + "description": "Data related to a release.", + "type": "object", + "properties": { + "url": { "type": "string", "format": "uri" }, + "browser_download_url": { "type": "string", "format": "uri" }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "name": { + "description": "The file name of the asset.", + "type": "string", + "example": "Team Environment" + }, + "label": { "type": "string", "nullable": true }, + "state": { + "description": "State of the release asset.", + "type": "string", + "enum": ["uploaded"], + "example": "open" + }, + "content_type": { "type": "string" }, + "size": { "type": "integer" }, + "download_count": { "type": "integer" }, + "created_at": { "type": "string", "format": "date-time" }, + "updated_at": { "type": "string", "format": "date-time" }, + "uploader": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + } + }, + "required": [ + "id", + "name", + "content_type", + "size", + "state", + "url", + "node_id", + "download_count", + "label", + "uploader", + "browser_download_url", + "created_at", + "updated_at" + ] + }, + "release": { + "title": "Release", + "description": "A release.", + "type": "object", + "properties": { + "url": { "type": "string", "format": "uri" }, + "html_url": { "type": "string", "format": "uri" }, + "assets_url": { "type": "string", "format": "uri" }, + "upload_url": { "type": "string" }, + "tarball_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "zipball_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "tag_name": { + "description": "The name of the tag.", + "example": "v1.0.0", + "type": "string" + }, + "target_commitish": { + "description": "Specifies the commitish value that determines where the Git tag is created from.", + "example": "master", + "type": "string" + }, + "name": { "type": "string", "nullable": true }, + "body": { "type": "string", "nullable": true }, + "draft": { + "description": "true to create a draft (unpublished) release, false to create a published one.", + "example": false, + "type": "boolean" + }, + "prerelease": { + "description": "Whether to identify the release as a prerelease or a full release.", + "example": false, + "type": "boolean" + }, + "created_at": { "type": "string", "format": "date-time" }, + "published_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "author": { "$ref": "#/components/schemas/simple-user" }, + "assets": { + "type": "array", + "items": { "$ref": "#/components/schemas/release-asset" } + }, + "body_html": { "type": "string" }, + "body_text": { "type": "string" } + }, + "required": [ + "assets_url", + "upload_url", + "tarball_url", + "zipball_url", + "created_at", + "published_at", + "draft", + "id", + "node_id", + "author", + "html_url", + "name", + "prerelease", + "tag_name", + "target_commitish", + "assets", + "url" + ] + }, + "secret-scanning-alert-state": { + "description": "Sets the state of the secret scanning alert. Can be either `open` or `resolved`. You must provide `resolution` when you set the state to `resolved`.", + "type": "string", + "enum": ["open", "resolved"] + }, + "secret-scanning-alert-resolution": { + "type": "string", + "description": "**Required when the `state` is `resolved`.** The reason for resolving the alert. Can be one of `false_positive`, `wont_fix`, `revoked`, or `used_in_tests`.", + "nullable": true, + "oneOf": [ + { + "enum": ["false_positive", "wont_fix", "revoked", "used_in_tests"] + }, + { "enum": [null] } + ] + }, + "secret-scanning-alert": { + "type": "object", + "properties": { + "number": { "$ref": "#/components/schemas/alert-number" }, + "created_at": { "$ref": "#/components/schemas/alert-created-at" }, + "url": { "$ref": "#/components/schemas/alert-url" }, + "html_url": { "$ref": "#/components/schemas/alert-html-url" }, + "state": { + "$ref": "#/components/schemas/secret-scanning-alert-state" + }, + "resolution": { + "$ref": "#/components/schemas/secret-scanning-alert-resolution" + }, + "resolved_at": { + "type": "string", + "format": "date-time", + "description": "The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "nullable": true + }, + "resolved_by": { "$ref": "#/components/schemas/simple-user" }, + "secret_type": { + "type": "string", + "description": "The type of secret that secret scanning detected." + }, + "secret": { + "type": "string", + "description": "The secret that was detected." + } + } + }, + "stargazer": { + "title": "Stargazer", + "description": "Stargazer", + "type": "object", + "properties": { + "starred_at": { "type": "string", "format": "date-time" }, + "user": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + } + }, + "required": ["starred_at", "user"] + }, + "code-frequency-stat": { + "title": "Code Frequency Stat", + "description": "Code Frequency Stat", + "type": "array", + "items": { "type": "integer" } + }, + "commit-activity": { + "title": "Commit Activity", + "description": "Commit Activity", + "type": "object", + "properties": { + "days": { + "type": "array", + "example": [0, 3, 26, 20, 39, 1, 0], + "items": { "type": "integer" } + }, + "total": { "type": "integer", "example": 89 }, + "week": { "type": "integer", "example": 1336280400 } + }, + "required": ["days", "total", "week"] + }, + "contributor-activity": { + "title": "Contributor Activity", + "description": "Contributor Activity", + "type": "object", + "properties": { + "author": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "total": { "type": "integer", "example": 135 }, + "weeks": { + "type": "array", + "example": [{ "w": "1367712000", "a": 6898, "d": 77, "c": 10 }], + "items": { + "type": "object", + "properties": { + "w": { "type": "string" }, + "a": { "type": "integer" }, + "d": { "type": "integer" }, + "c": { "type": "integer" } + } + } + } + }, + "required": ["author", "total", "weeks"] + }, + "participation-stats": { + "title": "Participation Stats", + "type": "object", + "properties": { + "all": { "type": "array", "items": { "type": "integer" } }, + "owner": { "type": "array", "items": { "type": "integer" } } + } + }, + "repository-subscription": { + "title": "Repository Invitation", + "description": "Repository invitations let you manage who you collaborate with.", + "type": "object", + "properties": { + "subscribed": { + "description": "Determines if notifications should be received from this repository.", + "type": "boolean", + "example": true + }, + "ignored": { + "description": "Determines if all notifications should be blocked from this repository.", + "type": "boolean" + }, + "reason": { "type": "string", "nullable": true }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2012-10-06T21:34:12Z" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/example/subscription" + }, + "repository_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/example" + } + }, + "required": [ + "created_at", + "ignored", + "reason", + "subscribed", + "url", + "repository_url" + ] + }, + "tag": { + "title": "Tag", + "description": "Tag", + "type": "object", + "properties": { + "name": { "type": "string", "example": "v0.1" }, + "commit": { + "type": "object", + "properties": { + "sha": { "type": "string" }, + "url": { "type": "string", "format": "uri" } + }, + "required": ["sha", "url"] + }, + "zipball_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/zipball/v0.1" + }, + "tarball_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/tarball/v0.1" + }, + "node_id": { "type": "string" } + }, + "required": ["name", "node_id", "commit", "zipball_url", "tarball_url"] + }, + "topic": { + "title": "Topic", + "description": "A topic aggregates entities that are related to a subject.", + "type": "object", + "properties": { + "names": { "type": "array", "items": { "type": "string" } } + } + }, + "traffic": { + "title": "Traffic", + "type": "object", + "properties": { + "timestamp": { "type": "string", "format": "date-time" }, + "uniques": { "type": "integer" }, + "count": { "type": "integer" } + }, + "required": ["timestamp", "uniques", "count"] + }, + "clone-traffic": { + "title": "Clone Traffic", + "description": "Clone Traffic", + "type": "object", + "properties": { + "count": { "type": "integer", "example": 173 }, + "uniques": { "type": "integer", "example": 128 }, + "clones": { + "type": "array", + "items": { "$ref": "#/components/schemas/traffic" } + } + }, + "required": ["uniques", "count", "clones"] + }, + "content-traffic": { + "title": "Content Traffic", + "description": "Content Traffic", + "type": "object", + "properties": { + "path": { "type": "string", "example": "/github/hubot" }, + "title": { + "type": "string", + "example": "github/hubot: A customizable life embetterment robot." + }, + "count": { "type": "integer", "example": 3542 }, + "uniques": { "type": "integer", "example": 2225 } + }, + "required": ["path", "title", "uniques", "count"] + }, + "referrer-traffic": { + "title": "Referrer Traffic", + "description": "Referrer Traffic", + "type": "object", + "properties": { + "referrer": { "type": "string", "example": "Google" }, + "count": { "type": "integer", "example": 4 }, + "uniques": { "type": "integer", "example": 3 } + }, + "required": ["referrer", "uniques", "count"] + }, + "view-traffic": { + "title": "View Traffic", + "description": "View Traffic", + "type": "object", + "properties": { + "count": { "type": "integer", "example": 14850 }, + "uniques": { "type": "integer", "example": 3782 }, + "views": { + "type": "array", + "items": { "$ref": "#/components/schemas/traffic" } + } + }, + "required": ["uniques", "count", "views"] + }, + "scim-group-list-enterprise": { + "type": "object", + "properties": { + "schemas": { "type": "array", "items": { "type": "string" } }, + "totalResults": { "type": "number" }, + "itemsPerPage": { "type": "number" }, + "startIndex": { "type": "number" }, + "Resources": { + "type": "array", + "items": { + "type": "object", + "properties": { + "schemas": { "type": "array", "items": { "type": "string" } }, + "id": { "type": "string" }, + "externalId": { "type": "string", "nullable": true }, + "displayName": { "type": "string" }, + "members": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { "type": "string" }, + "$ref": { "type": "string" }, + "display": { "type": "string" } + } + } + }, + "meta": { + "type": "object", + "properties": { + "resourceType": { "type": "string" }, + "created": { "type": "string" }, + "lastModified": { "type": "string" }, + "location": { "type": "string" } + } + } + } + } + } + } + }, + "scim-enterprise-group": { + "type": "object", + "properties": { + "schemas": { "type": "array", "items": { "type": "string" } }, + "id": { "type": "string" }, + "externalId": { "type": "string", "nullable": true }, + "displayName": { "type": "string" }, + "members": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { "type": "string" }, + "$ref": { "type": "string" }, + "display": { "type": "string" } + } + } + }, + "meta": { + "type": "object", + "properties": { + "resourceType": { "type": "string" }, + "created": { "type": "string" }, + "lastModified": { "type": "string" }, + "location": { "type": "string" } + } + } + } + }, + "scim-user-list-enterprise": { + "type": "object", + "properties": { + "schemas": { "type": "array", "items": { "type": "string" } }, + "totalResults": { "type": "number" }, + "itemsPerPage": { "type": "number" }, + "startIndex": { "type": "number" }, + "Resources": { + "type": "array", + "items": { + "type": "object", + "properties": { + "schemas": { "type": "array", "items": { "type": "string" } }, + "id": { "type": "string" }, + "externalId": { "type": "string" }, + "userName": { "type": "string" }, + "name": { + "type": "object", + "properties": { + "givenName": { "type": "string" }, + "familyName": { "type": "string" } + } + }, + "emails": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { "type": "string" }, + "primary": { "type": "boolean" }, + "type": { "type": "string" } + } + } + }, + "groups": { + "type": "array", + "items": { + "type": "object", + "properties": { "value": { "type": "string" } } + } + }, + "active": { "type": "boolean" }, + "meta": { + "type": "object", + "properties": { + "resourceType": { "type": "string" }, + "created": { "type": "string" }, + "lastModified": { "type": "string" }, + "location": { "type": "string" } + } + } + } + } + } + } + }, + "scim-enterprise-user": { + "type": "object", + "properties": { + "schemas": { "type": "array", "items": { "type": "string" } }, + "id": { "type": "string" }, + "externalId": { "type": "string" }, + "userName": { "type": "string" }, + "name": { + "type": "object", + "properties": { + "givenName": { "type": "string" }, + "familyName": { "type": "string" } + } + }, + "emails": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { "type": "string" }, + "type": { "type": "string" }, + "primary": { "type": "boolean" } + } + } + }, + "groups": { + "type": "array", + "items": { + "type": "object", + "properties": { "value": { "type": "string" } } + } + }, + "active": { "type": "boolean" }, + "meta": { + "type": "object", + "properties": { + "resourceType": { "type": "string" }, + "created": { "type": "string" }, + "lastModified": { "type": "string" }, + "location": { "type": "string" } + } + } + } + }, + "scim-user": { + "title": "SCIM /Users", + "description": "SCIM /Users provisioning endpoints", + "type": "object", + "properties": { + "schemas": { + "description": "SCIM schema used.", + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "example": "urn:ietf:params:scim:schemas:core:2.0:User" + } + }, + "id": { + "description": "Unique identifier of an external identity", + "example": "1b78eada-9baa-11e6-9eb6-a431576d590e", + "type": "string" + }, + "externalId": { + "description": "The ID of the User.", + "type": "string", + "example": "a7b0f98395", + "nullable": true + }, + "userName": { + "description": "Configured by the admin. Could be an email, login, or username", + "example": "someone@example.com", + "type": "string", + "nullable": true + }, + "displayName": { + "description": "The name of the user, suitable for display to end-users", + "example": "Jon Doe", + "type": "string", + "nullable": true + }, + "name": { + "type": "object", + "properties": { + "givenName": { "type": "string", "nullable": true }, + "familyName": { "type": "string", "nullable": true }, + "formatted": { "type": "string", "nullable": true } + }, + "required": ["givenName", "familyName"], + "example": "Jane User" + }, + "emails": { + "description": "user emails", + "example": ["someone@example.com", "another@example.com"], + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "value": { "type": "string" }, + "primary": { "type": "boolean" } + }, + "required": ["value"] + } + }, + "active": { + "description": "The active status of the User.", + "type": "boolean", + "example": true + }, + "meta": { + "type": "object", + "properties": { + "resourceType": { "type": "string", "example": "User" }, + "created": { + "type": "string", + "format": "date-time", + "example": "2019-01-24T22:45:36.000Z" + }, + "lastModified": { + "type": "string", + "format": "date-time", + "example": "2019-01-24T22:45:36.000Z" + }, + "location": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/scim/v2/organizations/myorg-123abc55141bfd8f/Users/c42772b5-2029-11e9-8543-9264a97dec8d" + } + } + }, + "organization_id": { + "description": "The ID of the organization.", + "type": "integer" + }, + "operations": { + "description": "Set of operations to be performed", + "example": [{ "op": "replace", "value": { "active": false } }], + "type": "array", + "minItems": 1, + "items": { + "properties": { + "op": { + "type": "string", + "enum": ["add", "remove", "replace"] + }, + "path": { "type": "string" }, + "value": { + "oneOf": [ + { "type": "string" }, + { "type": "object" }, + { "type": "array", "items": {} } + ] + } + }, + "required": ["op"], + "type": "object" + } + }, + "groups": { + "description": "associated groups", + "type": "array", + "items": { + "properties": { + "value": { "type": "string" }, + "display": { "type": "string" } + } + } + } + }, + "required": [ + "id", + "schemas", + "externalId", + "userName", + "name", + "emails", + "active", + "meta" + ] + }, + "scim-user-list": { + "title": "SCIM User List", + "description": "SCIM User List", + "type": "object", + "properties": { + "schemas": { + "description": "SCIM schema used.", + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "example": "urn:ietf:params:scim:api:messages:2.0:ListResponse" + } + }, + "totalResults": { "type": "integer", "example": 3 }, + "itemsPerPage": { "type": "integer", "example": 10 }, + "startIndex": { "type": "integer", "example": 1 }, + "Resources": { + "type": "array", + "items": { "$ref": "#/components/schemas/scim-user" } + } + }, + "required": [ + "schemas", + "totalResults", + "itemsPerPage", + "startIndex", + "Resources" + ] + }, + "search-result-text-matches": { + "title": "Search Result Text Matches", + "type": "array", + "items": { + "type": "object", + "properties": { + "object_url": { "type": "string" }, + "object_type": { "nullable": true, "type": "string" }, + "property": { "type": "string" }, + "fragment": { "type": "string" }, + "matches": { + "type": "array", + "items": { + "type": "object", + "properties": { + "text": { "type": "string" }, + "indices": { "type": "array", "items": { "type": "integer" } } + } + } + } + } + } + }, + "code-search-result-item": { + "title": "Code Search Result Item", + "description": "Code Search Result Item", + "type": "object", + "properties": { + "name": { "type": "string" }, + "path": { "type": "string" }, + "sha": { "type": "string" }, + "url": { "type": "string", "format": "uri" }, + "git_url": { "type": "string", "format": "uri" }, + "html_url": { "type": "string", "format": "uri" }, + "repository": { "$ref": "#/components/schemas/minimal-repository" }, + "score": { "type": "integer" }, + "file_size": { "type": "integer" }, + "language": { "type": "string", "nullable": true }, + "last_modified_at": { "type": "string", "format": "date-time" }, + "line_numbers": { + "type": "array", + "items": { "type": "string", "example": ["73..77", "77..78"] } + }, + "text_matches": { + "$ref": "#/components/schemas/search-result-text-matches" + } + }, + "required": [ + "score", + "name", + "path", + "sha", + "git_url", + "html_url", + "url", + "repository" + ] + }, + "commit-search-result-item": { + "title": "Commit Search Result Item", + "description": "Commit Search Result Item", + "type": "object", + "properties": { + "url": { "type": "string", "format": "uri" }, + "sha": { "type": "string" }, + "html_url": { "type": "string", "format": "uri" }, + "comments_url": { "type": "string", "format": "uri" }, + "commit": { + "type": "object", + "properties": { + "author": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "email": { "type": "string" }, + "date": { "type": "string", "format": "date-time" } + }, + "required": ["name", "email", "date"] + }, + "committer": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/git-user" }] + }, + "comment_count": { "type": "integer" }, + "message": { "type": "string" }, + "tree": { + "type": "object", + "properties": { + "sha": { "type": "string" }, + "url": { "type": "string", "format": "uri" } + }, + "required": ["sha", "url"] + }, + "url": { "type": "string", "format": "uri" }, + "verification": { "$ref": "#/components/schemas/verification" } + }, + "required": [ + "author", + "committer", + "comment_count", + "message", + "tree", + "url" + ] + }, + "author": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "committer": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/git-user" }] + }, + "parents": { + "type": "array", + "items": { + "type": "object", + "properties": { + "url": { "type": "string" }, + "html_url": { "type": "string" }, + "sha": { "type": "string" } + } + } + }, + "repository": { "$ref": "#/components/schemas/minimal-repository" }, + "score": { "type": "integer" }, + "node_id": { "type": "string" }, + "text_matches": { + "$ref": "#/components/schemas/search-result-text-matches" + } + }, + "required": [ + "sha", + "node_id", + "url", + "html_url", + "author", + "committer", + "parents", + "comments_url", + "commit", + "repository", + "score" + ] + }, + "issue-search-result-item": { + "title": "Issue Search Result Item", + "description": "Issue Search Result Item", + "type": "object", + "properties": { + "url": { "type": "string", "format": "uri" }, + "repository_url": { "type": "string", "format": "uri" }, + "labels_url": { "type": "string" }, + "comments_url": { "type": "string", "format": "uri" }, + "events_url": { "type": "string", "format": "uri" }, + "html_url": { "type": "string", "format": "uri" }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "number": { "type": "integer" }, + "title": { "type": "string" }, + "locked": { "type": "boolean" }, + "active_lock_reason": { "type": "string", "nullable": true }, + "assignees": { + "type": "array", + "items": { "$ref": "#/components/schemas/simple-user" }, + "nullable": true + }, + "user": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "labels": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "url": { "type": "string" }, + "name": { "type": "string" }, + "color": { "type": "string" }, + "default": { "type": "boolean" }, + "description": { "type": "string", "nullable": true } + } + } + }, + "state": { "type": "string" }, + "assignee": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "milestone": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/milestone" }] + }, + "comments": { "type": "integer" }, + "created_at": { "type": "string", "format": "date-time" }, + "updated_at": { "type": "string", "format": "date-time" }, + "closed_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "text_matches": { + "$ref": "#/components/schemas/search-result-text-matches" + }, + "pull_request": { + "type": "object", + "properties": { + "merged_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "diff_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "html_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "patch_url": { + "type": "string", + "format": "uri", + "nullable": true + }, + "url": { "type": "string", "format": "uri", "nullable": true } + }, + "required": ["diff_url", "html_url", "patch_url", "url"] + }, + "body": { "type": "string" }, + "score": { "type": "integer" }, + "author_association": { "type": "string" }, + "draft": { "type": "boolean" }, + "repository": { "$ref": "#/components/schemas/repository" }, + "body_html": { "type": "string" }, + "body_text": { "type": "string" }, + "timeline_url": { "type": "string", "format": "uri" }, + "performed_via_github_app": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/integration" }] + } + }, + "required": [ + "assignee", + "closed_at", + "comments", + "comments_url", + "events_url", + "html_url", + "id", + "node_id", + "labels", + "labels_url", + "milestone", + "number", + "repository_url", + "state", + "locked", + "title", + "url", + "user", + "author_association", + "created_at", + "updated_at", + "score" + ] + }, + "label-search-result-item": { + "title": "Label Search Result Item", + "description": "Label Search Result Item", + "type": "object", + "properties": { + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "url": { "type": "string", "format": "uri" }, + "name": { "type": "string" }, + "color": { "type": "string" }, + "default": { "type": "boolean" }, + "description": { "type": "string", "nullable": true }, + "score": { "type": "integer" }, + "text_matches": { + "$ref": "#/components/schemas/search-result-text-matches" + } + }, + "required": [ + "id", + "node_id", + "url", + "name", + "color", + "default", + "description", + "score" + ] + }, + "repo-search-result-item": { + "title": "Repo Search Result Item", + "description": "Repo Search Result Item", + "type": "object", + "properties": { + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "name": { "type": "string" }, + "full_name": { "type": "string" }, + "owner": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/simple-user" }] + }, + "private": { "type": "boolean" }, + "html_url": { "type": "string", "format": "uri" }, + "description": { "type": "string", "nullable": true }, + "fork": { "type": "boolean" }, + "url": { "type": "string", "format": "uri" }, + "created_at": { "type": "string", "format": "date-time" }, + "updated_at": { "type": "string", "format": "date-time" }, + "pushed_at": { "type": "string", "format": "date-time" }, + "homepage": { "type": "string", "format": "uri", "nullable": true }, + "size": { "type": "integer" }, + "stargazers_count": { "type": "integer" }, + "watchers_count": { "type": "integer" }, + "language": { "type": "string", "nullable": true }, + "forks_count": { "type": "integer" }, + "open_issues_count": { "type": "integer" }, + "master_branch": { "type": "string" }, + "default_branch": { "type": "string" }, + "score": { "type": "integer" }, + "forks_url": { "type": "string", "format": "uri" }, + "keys_url": { "type": "string" }, + "collaborators_url": { "type": "string" }, + "teams_url": { "type": "string", "format": "uri" }, + "hooks_url": { "type": "string", "format": "uri" }, + "issue_events_url": { "type": "string" }, + "events_url": { "type": "string", "format": "uri" }, + "assignees_url": { "type": "string" }, + "branches_url": { "type": "string" }, + "tags_url": { "type": "string", "format": "uri" }, + "blobs_url": { "type": "string" }, + "git_tags_url": { "type": "string" }, + "git_refs_url": { "type": "string" }, + "trees_url": { "type": "string" }, + "statuses_url": { "type": "string" }, + "languages_url": { "type": "string", "format": "uri" }, + "stargazers_url": { "type": "string", "format": "uri" }, + "contributors_url": { "type": "string", "format": "uri" }, + "subscribers_url": { "type": "string", "format": "uri" }, + "subscription_url": { "type": "string", "format": "uri" }, + "commits_url": { "type": "string" }, + "git_commits_url": { "type": "string" }, + "comments_url": { "type": "string" }, + "issue_comment_url": { "type": "string" }, + "contents_url": { "type": "string" }, + "compare_url": { "type": "string" }, + "merges_url": { "type": "string", "format": "uri" }, + "archive_url": { "type": "string" }, + "downloads_url": { "type": "string", "format": "uri" }, + "issues_url": { "type": "string" }, + "pulls_url": { "type": "string" }, + "milestones_url": { "type": "string" }, + "notifications_url": { "type": "string" }, + "labels_url": { "type": "string" }, + "releases_url": { "type": "string" }, + "deployments_url": { "type": "string", "format": "uri" }, + "git_url": { "type": "string" }, + "ssh_url": { "type": "string" }, + "clone_url": { "type": "string" }, + "svn_url": { "type": "string", "format": "uri" }, + "forks": { "type": "integer" }, + "open_issues": { "type": "integer" }, + "watchers": { "type": "integer" }, + "topics": { "type": "array", "items": { "type": "string" } }, + "mirror_url": { "type": "string", "format": "uri", "nullable": true }, + "has_issues": { "type": "boolean" }, + "has_projects": { "type": "boolean" }, + "has_pages": { "type": "boolean" }, + "has_wiki": { "type": "boolean" }, + "has_downloads": { "type": "boolean" }, + "archived": { "type": "boolean" }, + "disabled": { + "type": "boolean", + "description": "Returns whether or not this repository disabled." + }, + "license": { + "nullable": true, + "allOf": [{ "$ref": "#/components/schemas/license-simple" }] + }, + "permissions": { + "type": "object", + "properties": { + "admin": { "type": "boolean" }, + "pull": { "type": "boolean" }, + "push": { "type": "boolean" } + }, + "required": ["admin", "pull", "push"] + }, + "text_matches": { + "$ref": "#/components/schemas/search-result-text-matches" + }, + "temp_clone_token": { "type": "string" }, + "allow_merge_commit": { "type": "boolean" }, + "allow_squash_merge": { "type": "boolean" }, + "allow_rebase_merge": { "type": "boolean" }, + "delete_branch_on_merge": { "type": "boolean" } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url", + "clone_url", + "default_branch", + "forks", + "forks_count", + "git_url", + "has_downloads", + "has_issues", + "has_projects", + "has_wiki", + "has_pages", + "homepage", + "language", + "archived", + "disabled", + "mirror_url", + "open_issues", + "open_issues_count", + "license", + "pushed_at", + "size", + "ssh_url", + "stargazers_count", + "svn_url", + "watchers", + "watchers_count", + "created_at", + "updated_at", + "score" + ] + }, + "topic-search-result-item": { + "title": "Topic Search Result Item", + "description": "Topic Search Result Item", + "type": "object", + "properties": { + "name": { "type": "string" }, + "display_name": { "type": "string", "nullable": true }, + "short_description": { "type": "string", "nullable": true }, + "description": { "type": "string", "nullable": true }, + "created_by": { "type": "string", "nullable": true }, + "released": { "type": "string", "nullable": true }, + "created_at": { "type": "string", "format": "date-time" }, + "updated_at": { "type": "string", "format": "date-time" }, + "featured": { "type": "boolean" }, + "curated": { "type": "boolean" }, + "score": { "type": "integer" }, + "repository_count": { "type": "integer", "nullable": true }, + "logo_url": { "type": "string", "format": "uri", "nullable": true }, + "text_matches": { + "$ref": "#/components/schemas/search-result-text-matches" + }, + "related": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "properties": { + "topic_relation": { + "type": "object", + "properties": { + "id": { "type": "integer" }, + "name": { "type": "string" }, + "topic_id": { "type": "integer" }, + "relation_type": { "type": "string" } + } + } + } + } + }, + "aliases": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "properties": { + "topic_relation": { + "type": "object", + "properties": { + "id": { "type": "integer" }, + "name": { "type": "string" }, + "topic_id": { "type": "integer" }, + "relation_type": { "type": "string" } + } + } + } + } + } + }, + "required": [ + "name", + "display_name", + "short_description", + "description", + "created_by", + "released", + "created_at", + "updated_at", + "featured", + "curated", + "score" + ] + }, + "user-search-result-item": { + "title": "User Search Result Item", + "description": "User Search Result Item", + "type": "object", + "properties": { + "login": { "type": "string" }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "avatar_url": { "type": "string", "format": "uri" }, + "gravatar_id": { "type": "string", "nullable": true }, + "url": { "type": "string", "format": "uri" }, + "html_url": { "type": "string", "format": "uri" }, + "followers_url": { "type": "string", "format": "uri" }, + "subscriptions_url": { "type": "string", "format": "uri" }, + "organizations_url": { "type": "string", "format": "uri" }, + "repos_url": { "type": "string", "format": "uri" }, + "received_events_url": { "type": "string", "format": "uri" }, + "type": { "type": "string" }, + "score": { "type": "integer" }, + "following_url": { "type": "string" }, + "gists_url": { "type": "string" }, + "starred_url": { "type": "string" }, + "events_url": { "type": "string" }, + "public_repos": { "type": "integer" }, + "public_gists": { "type": "integer" }, + "followers": { "type": "integer" }, + "following": { "type": "integer" }, + "created_at": { "type": "string", "format": "date-time" }, + "updated_at": { "type": "string", "format": "date-time" }, + "name": { "type": "string", "nullable": true }, + "bio": { "type": "string", "nullable": true }, + "email": { "type": "string", "format": "email", "nullable": true }, + "location": { "type": "string", "nullable": true }, + "site_admin": { "type": "boolean" }, + "hireable": { "type": "boolean", "nullable": true }, + "text_matches": { + "$ref": "#/components/schemas/search-result-text-matches" + }, + "blog": { "type": "string", "nullable": true }, + "company": { "type": "string", "nullable": true }, + "suspended_at": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url", + "score" + ] + }, + "private-user": { + "title": "Private User", + "description": "Private User", + "type": "object", + "properties": { + "login": { "type": "string", "example": "octocat" }, + "id": { "type": "integer", "example": 1 }, + "node_id": { "type": "string", "example": "MDQ6VXNlcjE=" }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { "type": "string", "example": "", "nullable": true }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { "type": "string", "example": "User" }, + "site_admin": { "type": "boolean" }, + "name": { + "type": "string", + "example": "monalisa octocat", + "nullable": true + }, + "company": { + "type": "string", + "example": "GitHub", + "nullable": true + }, + "blog": { + "type": "string", + "example": "https://github.com/blog", + "nullable": true + }, + "location": { + "type": "string", + "example": "San Francisco", + "nullable": true + }, + "email": { + "type": "string", + "format": "email", + "example": "octocat@github.com", + "nullable": true + }, + "hireable": { "type": "boolean", "nullable": true }, + "bio": { + "type": "string", + "example": "There once was...", + "nullable": true + }, + "twitter_username": { + "type": "string", + "example": "monalisa", + "nullable": true + }, + "public_repos": { "type": "integer", "example": 2 }, + "public_gists": { "type": "integer", "example": 1 }, + "followers": { "type": "integer", "example": 20 }, + "following": { "type": "integer", "example": 0 }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2008-01-14T04:33:35Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2008-01-14T04:33:35Z" + }, + "private_gists": { "type": "integer", "example": 81 }, + "total_private_repos": { "type": "integer", "example": 100 }, + "owned_private_repos": { "type": "integer", "example": 100 }, + "disk_usage": { "type": "integer", "example": 10000 }, + "collaborators": { "type": "integer", "example": 8 }, + "two_factor_authentication": { "type": "boolean", "example": true }, + "plan": { + "type": "object", + "properties": { + "collaborators": { "type": "integer" }, + "name": { "type": "string" }, + "space": { "type": "integer" }, + "private_repos": { "type": "integer" } + }, + "required": ["collaborators", "name", "space", "private_repos"] + }, + "suspended_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "business_plus": { "type": "boolean" }, + "ldap_dn": { "type": "string" } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url", + "bio", + "blog", + "company", + "email", + "followers", + "following", + "hireable", + "location", + "name", + "public_gists", + "public_repos", + "created_at", + "updated_at", + "collaborators", + "disk_usage", + "owned_private_repos", + "private_gists", + "total_private_repos", + "two_factor_authentication" + ] + }, + "public-user": { + "title": "Public User", + "description": "Public User", + "type": "object", + "properties": { + "login": { "type": "string" }, + "id": { "type": "integer" }, + "node_id": { "type": "string" }, + "avatar_url": { "type": "string", "format": "uri" }, + "gravatar_id": { "type": "string", "nullable": true }, + "url": { "type": "string", "format": "uri" }, + "html_url": { "type": "string", "format": "uri" }, + "followers_url": { "type": "string", "format": "uri" }, + "following_url": { "type": "string" }, + "gists_url": { "type": "string" }, + "starred_url": { "type": "string" }, + "subscriptions_url": { "type": "string", "format": "uri" }, + "organizations_url": { "type": "string", "format": "uri" }, + "repos_url": { "type": "string", "format": "uri" }, + "events_url": { "type": "string" }, + "received_events_url": { "type": "string", "format": "uri" }, + "type": { "type": "string" }, + "site_admin": { "type": "boolean" }, + "name": { "type": "string", "nullable": true }, + "company": { "type": "string", "nullable": true }, + "blog": { "type": "string", "nullable": true }, + "location": { "type": "string", "nullable": true }, + "email": { "type": "string", "format": "email", "nullable": true }, + "hireable": { "type": "boolean", "nullable": true }, + "bio": { "type": "string", "nullable": true }, + "twitter_username": { "type": "string", "nullable": true }, + "public_repos": { "type": "integer" }, + "public_gists": { "type": "integer" }, + "followers": { "type": "integer" }, + "following": { "type": "integer" }, + "created_at": { "type": "string", "format": "date-time" }, + "updated_at": { "type": "string", "format": "date-time" }, + "plan": { + "type": "object", + "properties": { + "collaborators": { "type": "integer" }, + "name": { "type": "string" }, + "space": { "type": "integer" }, + "private_repos": { "type": "integer" } + }, + "required": ["collaborators", "name", "space", "private_repos"] + }, + "suspended_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "private_gists": { "type": "integer", "example": "0" }, + "total_private_repos": { "type": "integer", "example": "0" }, + "owned_private_repos": { "type": "integer", "example": "0" }, + "disk_usage": { "type": "integer", "example": "0" }, + "collaborators": { "type": "integer", "example": "0" } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url", + "bio", + "blog", + "company", + "email", + "followers", + "following", + "hireable", + "location", + "name", + "public_gists", + "public_repos", + "created_at", + "updated_at" + ], + "additionalProperties": false + }, + "email": { + "title": "Email", + "description": "Email", + "oneOf": [ + { + "type": "object", + "properties": { + "email": { + "type": "string", + "format": "email", + "example": "octocat@github.com" + }, + "primary": { "type": "boolean", "example": true }, + "verified": { "type": "boolean", "example": true }, + "visibility": { + "type": "string", + "example": "public", + "nullable": true + } + }, + "required": ["email", "primary", "verified", "visibility"] + }, + { "type": "string" } + ] + }, + "gpg-key": { + "title": "GPG Key", + "description": "A unique encryption key", + "type": "object", + "properties": { + "id": { "type": "integer", "example": 3 }, + "primary_key_id": { "type": "integer", "nullable": true }, + "key_id": { "type": "string", "example": "3262EFF25BA0D270" }, + "public_key": { "type": "string", "example": "xsBNBFayYZ..." }, + "emails": { + "type": "array", + "example": [ + { + "email": "mastahyeti@users.noreply.github.com", + "verified": true + } + ], + "items": { + "type": "object", + "properties": { + "email": { "type": "string" }, + "verified": { "type": "boolean" } + } + } + }, + "subkeys": { + "type": "array", + "example": [ + { + "id": 4, + "primary_key_id": 3, + "key_id": "4A595D4C72EE49C7", + "public_key": "zsBNBFayYZ...", + "emails": [], + "subkeys": [], + "can_sign": false, + "can_encrypt_comms": true, + "can_encrypt_storage": true, + "can_certify": false, + "created_at": "2016-03-24T11:31:04-06:00", + "expires_at": null + } + ], + "items": { + "type": "object", + "properties": { + "id": { "type": "integer" }, + "primary_key_id": { "type": "integer" }, + "key_id": { "type": "string" }, + "public_key": { "type": "string" }, + "emails": { "type": "array", "items": {} }, + "subkeys": { "type": "array", "items": {} }, + "can_sign": { "type": "boolean" }, + "can_encrypt_comms": { "type": "boolean" }, + "can_encrypt_storage": { "type": "boolean" }, + "can_certify": { "type": "boolean" }, + "created_at": { "type": "string" }, + "expires_at": { "type": "string", "nullable": true }, + "raw_key": { "type": "string", "nullable": true } + } + } + }, + "can_sign": { "type": "boolean", "example": true }, + "can_encrypt_comms": { "type": "boolean" }, + "can_encrypt_storage": { "type": "boolean" }, + "can_certify": { "type": "boolean", "example": true }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2016-03-24T11:31:04-06:00" + }, + "expires_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "raw_key": { "type": "string", "nullable": true } + }, + "required": [ + "id", + "primary_key_id", + "key_id", + "raw_key", + "public_key", + "created_at", + "expires_at", + "can_sign", + "can_encrypt_comms", + "can_encrypt_storage", + "can_certify", + "emails", + "subkeys" + ] + }, + "key": { + "title": "Key", + "description": "Key", + "type": "object", + "properties": { + "key_id": { "type": "string" }, + "key": { "type": "string" }, + "id": { "type": "integer" }, + "url": { "type": "string" }, + "title": { "type": "string" }, + "created_at": { "type": "string", "format": "date-time" }, + "verified": { "type": "boolean" }, + "read_only": { "type": "boolean" } + } + }, + "marketplace-account": { + "title": "Marketplace Account", + "type": "object", + "properties": { + "url": { "type": "string", "format": "uri" }, + "id": { "type": "integer" }, + "type": { "type": "string" }, + "node_id": { "type": "string" }, + "login": { "type": "string" }, + "email": { "type": "string", "nullable": true, "format": "email" }, + "organization_billing_email": { + "type": "string", + "nullable": true, + "format": "email" + } + }, + "required": ["url", "id", "type", "login"] + }, + "user-marketplace-purchase": { + "title": "User Marketplace Purchase", + "description": "User Marketplace Purchase", + "type": "object", + "properties": { + "billing_cycle": { "type": "string", "example": "monthly" }, + "next_billing_date": { + "type": "string", + "format": "date-time", + "example": "2017-11-11T00:00:00Z", + "nullable": true + }, + "unit_count": { "type": "integer", "nullable": true }, + "on_free_trial": { "type": "boolean", "example": true }, + "free_trial_ends_on": { + "type": "string", + "format": "date-time", + "example": "2017-11-11T00:00:00Z", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2017-11-02T01:12:12Z", + "nullable": true + }, + "account": { "$ref": "#/components/schemas/marketplace-account" }, + "plan": { "$ref": "#/components/schemas/marketplace-listing-plan" } + }, + "required": [ + "billing_cycle", + "next_billing_date", + "unit_count", + "updated_at", + "on_free_trial", + "free_trial_ends_on", + "account", + "plan" + ] + }, + "starred-repository": { + "title": "Starred Repository", + "description": "Starred Repository", + "type": "object", + "properties": { + "starred_at": { "type": "string", "format": "date-time" }, + "repo": { "$ref": "#/components/schemas/repository" } + }, + "required": ["starred_at", "repo"] + }, + "hovercard": { + "title": "Hovercard", + "description": "Hovercard", + "type": "object", + "properties": { + "contexts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "message": { "type": "string" }, + "octicon": { "type": "string" } + }, + "required": ["message", "octicon"] + } + } + }, + "required": ["contexts"] + }, + "key-simple": { + "title": "Key Simple", + "description": "Key Simple", + "type": "object", + "properties": { + "id": { "type": "integer" }, + "key": { "type": "string" } + }, + "required": ["key", "id"] + } + }, + "examples": { + "integration": { + "value": { + "id": 1, + "slug": "octoapp", + "node_id": "MDExOkludGVncmF0aW9uMQ==", + "owner": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "name": "Octocat App", + "description": "", + "external_url": "https://example.com", + "html_url": "https://github.com/apps/octoapp", + "created_at": "2017-07-08T16:18:44-04:00", + "updated_at": "2017-07-08T16:18:44-04:00", + "permissions": { + "metadata": "read", + "contents": "read", + "issues": "write", + "single_file": "write" + }, + "events": ["push", "pull_request"] + } + }, + "integration-from-manifest": { + "value": { + "id": 1, + "slug": "octoapp", + "node_id": "MDxOkludGVncmF0aW9uMQ==", + "owner": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "name": "Octocat App", + "description": "", + "external_url": "https://example.com", + "html_url": "https://github.com/apps/octoapp", + "created_at": "2017-07-08T16:18:44-04:00", + "updated_at": "2017-07-08T16:18:44-04:00", + "permissions": { + "metadata": "read", + "contents": "read", + "issues": "write", + "single_file": "write" + }, + "events": ["push", "pull_request"], + "client_id": "Iv1.8a61f9b3a7aba766", + "client_secret": "1726be1638095a19edd134c77bde3aa2ece1e5d8", + "webhook_secret": "e340154128314309424b7c8e90325147d99fdafa", + "pem": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAuEPzOUE+kiEH1WLiMeBytTEF856j0hOVcSUSUkZxKvqczkWM\n9vo1gDyC7ZXhdH9fKh32aapba3RSsp4ke+giSmYTk2mGR538ShSDxh0OgpJmjiKP\nX0Bj4j5sFqfXuCtl9SkH4iueivv4R53ktqM+n6hk98l6hRwC39GVIblAh2lEM4L/\n6WvYwuQXPMM5OG2Ryh2tDZ1WS5RKfgq+9ksNJ5Q9UtqtqHkO+E63N5OK9sbzpUUm\noNaOl3udTlZD3A8iqwMPVxH4SxgATBPAc+bmjk6BMJ0qIzDcVGTrqrzUiywCTLma\nszdk8GjzXtPDmuBgNn+o6s02qVGpyydgEuqmTQIDAQABAoIBACL6AvkjQVVLn8kJ\ndBYznJJ4M8ECo+YEgaFwgAHODT0zRQCCgzd+Vxl4YwHmKV2Lr+y2s0drZt8GvYva\nKOK8NYYZyi15IlwFyRXmvvykF1UBpSXluYFDH7KaVroWMgRreHcIys5LqVSIb6Bo\ngDmK0yBLPp8qR29s2b7ScZRtLaqGJiX+j55rNzrZwxHkxFHyG9OG+u9IsBElcKCP\nkYCVE8ZdYexfnKOZbgn2kZB9qu0T/Mdvki8yk3I2bI6xYO24oQmhnT36qnqWoCBX\nNuCNsBQgpYZeZET8mEAUmo9d+ABmIHIvSs005agK8xRaP4+6jYgy6WwoejJRF5yd\nNBuF7aECgYEA50nZ4FiZYV0vcJDxFYeY3kYOvVuKn8OyW+2rg7JIQTremIjv8FkE\nZnwuF9ZRxgqLxUIfKKfzp/5l5LrycNoj2YKfHKnRejxRWXqG+ZETfxxlmlRns0QG\nJ4+BYL0CoanDSeA4fuyn4Bv7cy/03TDhfg/Uq0Aeg+hhcPE/vx3ebPsCgYEAy/Pv\neDLssOSdeyIxf0Brtocg6aPXIVaLdus+bXmLg77rJIFytAZmTTW8SkkSczWtucI3\nFI1I6sei/8FdPzAl62/JDdlf7Wd9K7JIotY4TzT7Tm7QU7xpfLLYIP1bOFjN81rk\n77oOD4LsXcosB/U6s1blPJMZ6AlO2EKs10UuR1cCgYBipzuJ2ADEaOz9RLWwi0AH\nPza2Sj+c2epQD9ZivD7Zo/Sid3ZwvGeGF13JyR7kLEdmAkgsHUdu1rI7mAolXMaB\n1pdrsHureeLxGbRM6za3tzMXWv1Il7FQWoPC8ZwXvMOR1VQDv4nzq7vbbA8z8c+c\n57+8tALQHOTDOgQIzwK61QKBgERGVc0EJy4Uag+VY8J4m1ZQKBluqo7TfP6DQ7O8\nM5MX73maB/7yAX8pVO39RjrhJlYACRZNMbK+v/ckEQYdJSSKmGCVe0JrGYDuPtic\nI9+IGfSorf7KHPoMmMN6bPYQ7Gjh7a++tgRFTMEc8956Hnt4xGahy9NcglNtBpVN\n6G8jAoGBAMCh028pdzJa/xeBHLLaVB2sc0Fe7993WlsPmnVE779dAz7qMscOtXJK\nfgtriltLSSD6rTA9hUAsL/X62rY0wdXuNdijjBb/qvrx7CAV6i37NK1CjABNjsfG\nZM372Ac6zc1EqSrid2IjET1YqyIW2KGLI1R2xbQc98UGlt48OdWu\n-----END RSA PRIVATE KEY-----\n" + } + }, + "webhook-config": { + "value": { + "content_type": "json", + "insecure_ssl": "0", + "secret": "********", + "url": "https://example.com/webhook" + } + }, + "base-installation-items": { + "value": [ + { + "id": 1, + "account": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "access_tokens_url": "https://api.github.com/installations/1/access_tokens", + "repositories_url": "https://api.github.com/installation/repositories", + "html_url": "https://github.com/organizations/github/settings/installations/1", + "app_id": 1, + "target_id": 1, + "target_type": "Organization", + "permissions": { + "checks": "write", + "metadata": "read", + "contents": "read" + }, + "events": ["push", "pull_request"], + "single_file_name": "config.yaml", + "has_multiple_single_files": true, + "single_file_paths": ["config.yml", ".github/issue_TEMPLATE.md"], + "repository_selection": "selected", + "created_at": "2017-07-08T16:18:44-04:00", + "updated_at": "2017-07-08T16:18:44-04:00", + "app_slug": "github-actions" + } + ] + }, + "base-installation": { + "value": { + "id": 1, + "account": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "access_tokens_url": "https://api.github.com/installations/1/access_tokens", + "repositories_url": "https://api.github.com/installation/repositories", + "html_url": "https://github.com/organizations/github/settings/installations/1", + "app_id": 1, + "target_id": 1, + "target_type": "Organization", + "permissions": { + "checks": "write", + "metadata": "read", + "contents": "read" + }, + "events": ["push", "pull_request"], + "single_file_name": "config.yaml", + "has_multiple_single_files": true, + "single_file_paths": ["config.yml", ".github/issue_TEMPLATE.md"], + "repository_selection": "selected", + "created_at": "2017-07-08T16:18:44-04:00", + "updated_at": "2017-07-08T16:18:44-04:00", + "app_slug": "github-actions" + } + }, + "installation-token": { + "value": { + "token": "v1.1f699f1069f60xxx", + "expires_at": "2016-07-11T22:14:10Z", + "permissions": { "issues": "write", "contents": "read" }, + "repository_selection": "selected", + "repositories": [ + { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + ] + } + }, + "application-grant-items": { + "value": [ + { + "id": 1, + "url": "https://api.github.com/applications/grants/1", + "app": { + "url": "http://my-github-app.com", + "name": "my github app", + "client_id": "abcde12345fghij67890" + }, + "created_at": "2011-09-06T17:26:27Z", + "updated_at": "2011-09-06T20:39:23Z", + "scopes": ["public_repo"] + } + ] + }, + "application-grant": { + "value": { + "id": 1, + "url": "https://api.github.com/applications/grants/1", + "app": { + "url": "http://my-github-app.com", + "name": "my github app", + "client_id": "abcde12345fghij67890" + }, + "created_at": "2011-09-06T17:26:27Z", + "updated_at": "2011-09-06T20:39:23Z", + "scopes": ["public_repo"] + } + }, + "authorization-with-user": { + "value": { + "id": 1, + "url": "https://api.github.com/authorizations/1", + "scopes": ["public_repo"], + "token": "abcdefgh12345678", + "token_last_eight": "12345678", + "hashed_token": "25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8", + "app": { + "url": "http://my-github-app.com", + "name": "my github app", + "client_id": "abcde12345fghij67890" + }, + "note": "optional note", + "note_url": "http://optional/note/url", + "updated_at": "2011-09-06T20:39:23Z", + "created_at": "2011-09-06T17:26:27Z", + "fingerprint": "jklmnop12345678", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + }, + "authorization-items": { + "value": [ + { + "id": 1, + "url": "https://api.github.com/authorizations/1", + "scopes": ["public_repo"], + "token": "", + "token_last_eight": "12345678", + "hashed_token": "25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8", + "app": { + "url": "http://my-github-app.com", + "name": "my github app", + "client_id": "abcde12345fghij67890" + }, + "note": "optional note", + "note_url": "http://optional/note/url", + "updated_at": "2011-09-06T20:39:23Z", + "created_at": "2011-09-06T17:26:27Z", + "fingerprint": "jklmnop12345678" + } + ] + }, + "authorization": { + "value": { + "id": 1, + "url": "https://api.github.com/authorizations/1", + "scopes": ["public_repo"], + "token": "abcdefgh12345678", + "token_last_eight": "12345678", + "hashed_token": "25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8", + "app": { + "url": "http://my-github-app.com", + "name": "my github app", + "client_id": "abcde12345fghij67890" + }, + "note": "optional note", + "note_url": "http://optional/note/url", + "updated_at": "2011-09-06T20:39:23Z", + "created_at": "2011-09-06T17:26:27Z", + "fingerprint": "" + } + }, + "authorization-response-if-returning-an-existing-token-2": { + "value": { + "id": 1, + "url": "https://api.github.com/authorizations/1", + "scopes": ["public_repo"], + "token": "", + "token_last_eight": "12345678", + "hashed_token": "25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8", + "app": { + "url": "http://my-github-app.com", + "name": "my github app", + "client_id": "abcde12345fghij67890" + }, + "note": "optional note", + "note_url": "http://optional/note/url", + "updated_at": "2011-09-06T20:39:23Z", + "created_at": "2011-09-06T17:26:27Z", + "fingerprint": "" + } + }, + "authorization-response-if-returning-an-existing-token": { + "value": { + "id": 1, + "url": "https://api.github.com/authorizations/1", + "scopes": ["public_repo"], + "token": "", + "token_last_eight": "12345678", + "hashed_token": "25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8", + "app": { + "url": "http://my-github-app.com", + "name": "my github app", + "client_id": "abcde12345fghij67890" + }, + "note": "optional note", + "note_url": "http://optional/note/url", + "updated_at": "2011-09-06T20:39:23Z", + "created_at": "2011-09-06T17:26:27Z", + "fingerprint": "jklmnop12345678" + } + }, + "authorization-3": { + "value": { + "id": 1, + "url": "https://api.github.com/authorizations/1", + "scopes": ["public_repo"], + "token": "abcdefgh12345678", + "token_last_eight": "12345678", + "hashed_token": "25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8", + "app": { + "url": "http://my-github-app.com", + "name": "my github app", + "client_id": "abcde12345fghij67890" + }, + "note": "optional note", + "note_url": "http://optional/note/url", + "updated_at": "2011-09-06T20:39:23Z", + "created_at": "2011-09-06T17:26:27Z", + "fingerprint": "jklmnop12345678" + } + }, + "authorization-2": { + "value": { + "id": 1, + "url": "https://api.github.com/authorizations/1", + "scopes": ["public_repo"], + "token": "", + "token_last_eight": "12345678", + "hashed_token": "25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8", + "app": { + "url": "http://my-github-app.com", + "name": "my github app", + "client_id": "abcde12345fghij67890" + }, + "note": "optional note", + "note_url": "http://optional/note/url", + "updated_at": "2011-09-06T20:39:23Z", + "created_at": "2011-09-06T17:26:27Z", + "fingerprint": "jklmnop12345678" + } + }, + "code-of-conduct-simple-items": { + "value": [ + { + "key": "citizen_code_of_conduct", + "name": "Citizen Code of Conduct", + "url": "https://api.github.com/codes_of_conduct/citizen_code_of_conduct", + "html_url": "http://citizencodeofconduct.org/" + }, + { + "key": "contributor_covenant", + "name": "Contributor Covenant", + "url": "https://api.github.com/codes_of_conduct/contributor_covenant", + "html_url": "https://www.contributor-covenant.org/version/2/0/code_of_conduct/" + } + ] + }, + "code-of-conduct": { + "value": { + "key": "contributor_covenant", + "name": "Contributor Covenant", + "url": "https://api.github.com/codes_of_conduct/contributor_covenant", + "body": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment include:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response\n to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address,\n posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [EMAIL]. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n", + "html_url": "http://contributor-covenant.org/version/1/4/" + } + }, + "content-reference-attachment": { + "value": { + "id": 101, + "title": "[A-1234] Error found in core/models.py file'", + "body": "You have used an email that already exists for the user_email_uniq field.\n ## DETAILS:\n\nThe (email)=(Octocat@github.com) already exists.\n\n The error was found in core/models.py in get_or_create_user at line 62.\n\n self.save()" + } + }, + "actions-enterprise-permissions": { + "value": { + "enabled_organizations": "all", + "allowed_actions": "selected", + "selected_actions_url": "https://api.github.com/enterprises/2/actions/permissions/selected-actions" + } + }, + "organization-targets": { + "value": { + "total_count": 1, + "organizations": [ + { + "login": "octocat", + "id": 161335, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "url": "https://api.github.com/orgs/octo-org", + "repos_url": "https://api.github.com/orgs/octo-org/repos", + "events_url": "https://api.github.com/orgs/octo-org/events", + "hooks_url": "https://api.github.com/orgs/octo-org/hooks", + "issues_url": "https://api.github.com/orgs/octo-org/issues", + "members_url": "https://api.github.com/orgs/octo-org/members{/member}", + "public_members_url": "https://api.github.com/orgs/octo-org/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization" + } + ] + } + }, + "selected-actions": { + "value": { + "github_owned_allowed": true, + "verified_allowed": false, + "patterns_allowed": ["monalisa/octocat@*", "docker/*"] + } + }, + "runner-groups-enterprise": { + "value": { + "total_count": 3, + "runner_groups": [ + { + "id": 1, + "name": "Default", + "visibility": "all", + "default": true, + "runners_url": "https://api.github.com/enterprises/octo-corp/actions/runner_groups/1/runners" + }, + { + "id": 2, + "name": "octo-runner-group", + "visibility": "selected", + "default": false, + "selected_organizations_url": "https://api.github.com/enterprises/octo-corp/actions/runner_groups/2/organizations", + "runners_url": "https://api.github.com/enterprises/octo-corp/actions/runner_groups/2/runners" + }, + { + "id": 3, + "name": "expensive-hardware", + "visibility": "private", + "default": false, + "runners_url": "https://api.github.com/enterprises/octo-corp/actions/runner_groups/3/runners" + } + ] + } + }, + "runner-group-enterprise": { + "value": { + "id": 2, + "name": "octo-runner-group", + "visibility": "selected", + "default": false, + "selected_organizations_url": "https://api.github.com/enterprises/octo-corp/actions/runner-groups/2/organizations", + "runners_url": "https://api.github.com/enterprises/octo-corp/actions/runner-groups/2/runners" + } + }, + "runner-group-update-enterprise": { + "value": { + "id": 2, + "name": "Expensive hardware runners", + "visibility": "selected", + "default": false, + "selected_organizations_url": "https://api.github.com/enterprises/octo-corp/actions/runner-groups/2/organizations", + "runners_url": "https://api.github.com/enterprises/octo-corp/actions/runner-groups/2/runners" + } + }, + "runner-paginated": { + "value": { + "total_count": 2, + "runners": [ + { + "id": 23, + "name": "linux_runner", + "os": "linux", + "status": "online", + "busy": true, + "labels": [ + { "id": 5, "name": "self-hosted", "type": "read-only" }, + { "id": 7, "name": "X64", "type": "read-only" }, + { "id": 11, "name": "Linux", "type": "read-only" } + ] + }, + { + "id": 24, + "name": "mac_runner", + "os": "macos", + "status": "offline", + "busy": false, + "labels": [ + { "id": 5, "name": "self-hosted", "type": "read-only" }, + { "id": 7, "name": "X64", "type": "read-only" }, + { "id": 20, "name": "macOS", "type": "read-only" }, + { "id": 21, "name": "no-gpu", "type": "custom" } + ] + } + ] + } + }, + "runner-application-items": { + "value": [ + { + "os": "osx", + "architecture": "x64", + "download_url": "https://github.com/actions/runner/releases/download/v2.164.0/actions-runner-osx-x64-2.164.0.tar.gz", + "filename": "actions-runner-osx-x64-2.164.0.tar.gz" + }, + { + "os": "linux", + "architecture": "x64", + "download_url": "https://github.com/actions/runner/releases/download/v2.164.0/actions-runner-linux-x64-2.164.0.tar.gz", + "filename": "actions-runner-linux-x64-2.164.0.tar.gz" + }, + { + "os": "linux", + "architecture": "arm", + "download_url": "https://github.com/actions/runner/releases/download/v2.164.0/actions-runner-linux-arm-2.164.0.tar.gz", + "filename": "actions-runner-linux-arm-2.164.0.tar.gz" + }, + { + "os": "win", + "architecture": "x64", + "download_url": "https://github.com/actions/runner/releases/download/v2.164.0/actions-runner-win-x64-2.164.0.zip", + "filename": "actions-runner-win-x64-2.164.0.zip" + }, + { + "os": "linux", + "architecture": "arm64", + "download_url": "https://github.com/actions/runner/releases/download/v2.164.0/actions-runner-linux-arm64-2.164.0.tar.gz", + "filename": "actions-runner-linux-arm64-2.164.0.tar.gz" + } + ] + }, + "authentication-token": { + "value": { + "token": "LLBF3JGZDX3P5PMEXLND6TS6FCWO6", + "expires_at": "2020-01-22T12:13:35.123-08:00" + } + }, + "authentication-token-2": { + "value": { + "token": "AABF3JGZDX3P5PMEXLND6TS6FCWO6", + "expires_at": "2020-01-29T12:13:35.123-08:00" + } + }, + "runner": { + "value": { + "id": 23, + "name": "MBP", + "os": "macos", + "status": "online", + "busy": true, + "labels": [ + { "id": 5, "name": "self-hosted", "type": "read-only" }, + { "id": 7, "name": "X64", "type": "read-only" }, + { "id": 20, "name": "macOS", "type": "read-only" }, + { "id": 21, "name": "no-gpu", "type": "custom" } + ] + } + }, + "audit-log": { + "value": [ + { + "@timestamp": 1606929874512, + "action": "team.add_member", + "actor": "octocat", + "created_at": 1606929874512, + "org": "octo-corp", + "team": "octo-corp/example-team", + "user": "monalisa" + }, + { + "@timestamp": 1606507117008, + "action": "org.create", + "actor": "octocat", + "created_at": 1606507117008, + "org": "octocat-test-org" + }, + { + "@timestamp": 1605719148837, + "action": "repo.destroy", + "actor": "monalisa", + "created_at": 1605719148837, + "org": "mona-org", + "repo": "mona-org/mona-test-repo", + "visibility": "private" + } + ] + }, + "actions-billing-usage": { + "value": { + "total_minutes_used": 305, + "total_paid_minutes_used": 0, + "included_minutes": 3000, + "minutes_used_breakdown": { + "UBUNTU": 205, + "MACOS": 10, + "WINDOWS": 90 + } + } + }, + "packages-billing-usage": { + "value": { + "total_gigabytes_bandwidth_used": 50, + "total_paid_gigabytes_bandwidth_used": 40, + "included_gigabytes_bandwidth": 10 + } + }, + "combined-billing-usage": { + "value": { + "days_left_in_billing_cycle": 20, + "estimated_paid_storage_for_month": 15, + "estimated_storage_for_month": 40 + } + }, + "feed": { + "value": { + "timeline_url": "https://github.com/timeline", + "user_url": "https://github.com/{user}", + "current_user_public_url": "https://github.com/octocat", + "current_user_url": "https://github.com/octocat.private?token=abc123", + "current_user_actor_url": "https://github.com/octocat.private.actor?token=abc123", + "current_user_organization_url": "", + "current_user_organization_urls": [ + "https://github.com/organizations/github/octocat.private.atom?token=abc123" + ], + "security_advisories_url": "https://github.com/security-advisories", + "_links": { + "timeline": { + "href": "https://github.com/timeline", + "type": "application/atom+xml" + }, + "user": { + "href": "https://github.com/{user}", + "type": "application/atom+xml" + }, + "current_user_public": { + "href": "https://github.com/octocat", + "type": "application/atom+xml" + }, + "current_user": { + "href": "https://github.com/octocat.private?token=abc123", + "type": "application/atom+xml" + }, + "current_user_actor": { + "href": "https://github.com/octocat.private.actor?token=abc123", + "type": "application/atom+xml" + }, + "current_user_organization": { "href": "", "type": "" }, + "current_user_organizations": [ + { + "href": "https://github.com/organizations/github/octocat.private.atom?token=abc123", + "type": "application/atom+xml" + } + ], + "security_advisories": { + "href": "https://github.com/security-advisories", + "type": "application/atom+xml" + } + } + } + }, + "base-gist-items": { + "value": [ + { + "url": "https://api.github.com/gists/aa5a315d61ae9438b18d", + "forks_url": "https://api.github.com/gists/aa5a315d61ae9438b18d/forks", + "commits_url": "https://api.github.com/gists/aa5a315d61ae9438b18d/commits", + "id": "aa5a315d61ae9438b18d", + "node_id": "MDQ6R2lzdGFhNWEzMTVkNjFhZTk0MzhiMThk", + "git_pull_url": "https://gist.github.com/aa5a315d61ae9438b18d.git", + "git_push_url": "https://gist.github.com/aa5a315d61ae9438b18d.git", + "html_url": "https://gist.github.com/aa5a315d61ae9438b18d", + "files": { + "hello_world.rb": { + "filename": "hello_world.rb", + "type": "application/x-ruby", + "language": "Ruby", + "raw_url": "https://gist.githubusercontent.com/octocat/6cad326836d38bd3a7ae/raw/db9c55113504e46fa076e7df3a04ce592e2e86d8/hello_world.rb", + "size": 167 + } + }, + "public": true, + "created_at": "2010-04-14T02:15:15Z", + "updated_at": "2011-06-20T11:34:15Z", + "description": "Hello World Examples", + "comments": 0, + "user": null, + "comments_url": "https://api.github.com/gists/aa5a315d61ae9438b18d/comments/", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "truncated": false + } + ] + }, + "gist": { + "value": { + "url": "https://api.github.com/gists/aa5a315d61ae9438b18d", + "forks_url": "https://api.github.com/gists/aa5a315d61ae9438b18d/forks", + "commits_url": "https://api.github.com/gists/aa5a315d61ae9438b18d/commits", + "id": "aa5a315d61ae9438b18d", + "node_id": "MDQ6R2lzdGFhNWEzMTVkNjFhZTk0MzhiMThk", + "git_pull_url": "https://gist.github.com/aa5a315d61ae9438b18d.git", + "git_push_url": "https://gist.github.com/aa5a315d61ae9438b18d.git", + "html_url": "https://gist.github.com/aa5a315d61ae9438b18d", + "created_at": "2010-04-14T02:15:15Z", + "updated_at": "2011-06-20T11:34:15Z", + "description": "Hello World Examples", + "comments": 0, + "comments_url": "https://api.github.com/gists/aa5a315d61ae9438b18d/comments/" + } + }, + "gist-3": { + "value": { + "url": "https://api.github.com/gists/aa5a315d61ae9438b18d", + "forks_url": "https://api.github.com/gists/aa5a315d61ae9438b18d/forks", + "commits_url": "https://api.github.com/gists/aa5a315d61ae9438b18d/commits", + "id": "aa5a315d61ae9438b18d", + "node_id": "MDQ6R2lzdGFhNWEzMTVkNjFhZTk0MzhiMThk", + "git_pull_url": "https://gist.github.com/aa5a315d61ae9438b18d.git", + "git_push_url": "https://gist.github.com/aa5a315d61ae9438b18d.git", + "html_url": "https://gist.github.com/aa5a315d61ae9438b18d", + "created_at": "2010-04-14T02:15:15Z", + "updated_at": "2011-06-20T11:34:15Z", + "description": "Hello World Examples", + "comments": 0, + "comments_url": "https://api.github.com/gists/aa5a315d61ae9438b18d/comments/" + } + }, + "gist-comment-items": { + "value": [ + { + "id": 1, + "node_id": "MDExOkdpc3RDb21tZW50MQ==", + "url": "https://api.github.com/gists/a6db0bec360bb87e9418/comments/1", + "body": "Just commenting for the sake of commenting", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2011-04-18T23:23:56Z", + "updated_at": "2011-04-18T23:23:56Z", + "author_association": "collaborator" + } + ] + }, + "gist-comment": { + "value": { + "id": 1, + "node_id": "MDExOkdpc3RDb21tZW50MQ==", + "url": "https://api.github.com/gists/a6db0bec360bb87e9418/comments/1", + "body": "Just commenting for the sake of commenting", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2011-04-18T23:23:56Z", + "updated_at": "2011-04-18T23:23:56Z", + "author_association": "collaborator" + } + }, + "gist-commit-items": { + "value": [ + { + "url": "https://api.github.com/gists/aa5a315d61ae9438b18d/57a7f021a713b1c5a6a199b54cc514735d2d462f", + "version": "57a7f021a713b1c5a6a199b54cc514735d2d462f", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "change_status": { "deletions": 0, "additions": 180, "total": 180 }, + "committed_at": "2010-04-14T02:15:15Z" + } + ] + }, + "gist-fork-items": { + "value": [ + { + "url": "https://api.github.com/gists/dee9c42e4998ce2ea439", + "id": "dee9c42e4998ce2ea439", + "created_at": "2011-04-14T16:00:49Z", + "updated_at": "2011-04-14T16:00:49Z" + } + ] + }, + "base-gist": { + "value": { + "url": "https://api.github.com/gists/aa5a315d61ae9438b18d", + "forks_url": "https://api.github.com/gists/aa5a315d61ae9438b18d/forks", + "commits_url": "https://api.github.com/gists/aa5a315d61ae9438b18d/commits", + "id": "aa5a315d61ae9438b18d", + "node_id": "MDQ6R2lzdGFhNWEzMTVkNjFhZTk0MzhiMThk", + "git_pull_url": "https://gist.github.com/aa5a315d61ae9438b18d.git", + "git_push_url": "https://gist.github.com/aa5a315d61ae9438b18d.git", + "html_url": "https://gist.github.com/aa5a315d61ae9438b18d", + "files": { + "hello_world.rb": { + "filename": "hello_world.rb", + "type": "application/x-ruby", + "language": "Ruby", + "raw_url": "https://gist.githubusercontent.com/octocat/6cad326836d38bd3a7ae/raw/db9c55113504e46fa076e7df3a04ce592e2e86d8/hello_world.rb", + "size": 167 + } + }, + "public": true, + "created_at": "2010-04-14T02:15:15Z", + "updated_at": "2011-06-20T11:34:15Z", + "description": "Hello World Examples", + "comments": 0, + "user": null, + "comments_url": "https://api.github.com/gists/aa5a315d61ae9438b18d/comments/", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "truncated": false + } + }, + "gist-2": { + "value": { + "url": "https://api.github.com/gists/aa5a315d61ae9438b18d/57a7f021a713b1c5a6a199b54cc514735d2d462f", + "forks_url": "https://api.github.com/gists/aa5a315d61ae9438b18d/forks", + "commits_url": "https://api.github.com/gists/aa5a315d61ae9438b18d/commits", + "id": "aa5a315d61ae9438b18d", + "node_id": "MDQ6R2lzdGFhNWEzMTVkNjFhZTk0MzhiMThk", + "git_pull_url": "https://gist.github.com/aa5a315d61ae9438b18d.git", + "git_push_url": "https://gist.github.com/aa5a315d61ae9438b18d.git", + "html_url": "https://gist.github.com/aa5a315d61ae9438b18d", + "created_at": "2010-04-14T02:15:15Z", + "updated_at": "2011-06-20T11:34:15Z", + "description": "Hello World Examples", + "comments": 0, + "comments_url": "https://api.github.com/gists/aa5a315d61ae9438b18d/comments/" + } + }, + "gitignore-template": { + "value": { + "name": "C", + "source": "# Object files\n*.o\n\n# Libraries\n*.lib\n*.a\n\n# Shared objects (inc. Windows DLLs)\n*.dll\n*.so\n*.so.*\n*.dylib\n\n# Executables\n*.exe\n*.out\n*.app\n" + } + }, + "repository-paginated-2": { + "value": { + "total_count": 1, + "repositories": [ + { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + ] + } + }, + "issue-with-repo-items": { + "value": [ + { + "id": 1, + "node_id": "MDU6SXNzdWUx", + "url": "https://api.github.com/repos/octocat/Hello-World/issues/1347", + "repository_url": "https://api.github.com/repos/octocat/Hello-World", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/labels{/name}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments", + "events_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/events", + "html_url": "https://github.com/octocat/Hello-World/issues/1347", + "number": 1347, + "state": "open", + "title": "Found a bug", + "body": "I'm having a problem with this.", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 208045946, + "node_id": "MDU6TGFiZWwyMDgwNDU5NDY=", + "url": "https://api.github.com/repos/octocat/Hello-World/labels/bug", + "name": "bug", + "description": "Something isn't working", + "color": "f29513", + "default": true + } + ], + "assignee": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/octocat/Hello-World/milestones/1", + "html_url": "https://github.com/octocat/Hello-World/milestones/v1.0", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/milestones/1/labels", + "id": 1002604, + "node_id": "MDk6TWlsZXN0b25lMTAwMjYwNA==", + "number": 1, + "state": "open", + "title": "v1.0", + "description": "Tracking milestone for version 1.0", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 4, + "closed_issues": 8, + "created_at": "2011-04-10T20:09:31Z", + "updated_at": "2014-03-03T18:58:10Z", + "closed_at": "2013-02-12T13:22:01Z", + "due_on": "2012-10-09T23:39:01Z" + }, + "locked": true, + "active_lock_reason": "too heated", + "comments": 0, + "pull_request": { + "url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347", + "html_url": "https://github.com/octocat/Hello-World/pull/1347", + "diff_url": "https://github.com/octocat/Hello-World/pull/1347.diff", + "patch_url": "https://github.com/octocat/Hello-World/pull/1347.patch" + }, + "closed_at": null, + "created_at": "2011-04-22T13:33:48Z", + "updated_at": "2011-04-22T13:33:48Z", + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + }, + "author_association": "collaborator" + } + ] + }, + "license-simple-items": { + "value": [ + { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZW1pdA==" + }, + { + "key": "lgpl-3.0", + "name": "GNU Lesser General Public License v3.0", + "spdx_id": "LGPL-3.0", + "url": "https://api.github.com/licenses/lgpl-3.0", + "node_id": "MDc6TGljZW5zZW1pdA==" + }, + { + "key": "mpl-2.0", + "name": "Mozilla Public License 2.0", + "spdx_id": "MPL-2.0", + "url": "https://api.github.com/licenses/mpl-2.0", + "node_id": "MDc6TGljZW5zZW1pdA==" + }, + { + "key": "agpl-3.0", + "name": "GNU Affero General Public License v3.0", + "spdx_id": "AGPL-3.0", + "url": "https://api.github.com/licenses/agpl-3.0", + "node_id": "MDc6TGljZW5zZW1pdA==" + }, + { + "key": "unlicense", + "name": "The Unlicense", + "spdx_id": "Unlicense", + "url": "https://api.github.com/licenses/unlicense", + "node_id": "MDc6TGljZW5zZW1pdA==" + }, + { + "key": "apache-2.0", + "name": "Apache License 2.0", + "spdx_id": "Apache-2.0", + "url": "https://api.github.com/licenses/apache-2.0", + "node_id": "MDc6TGljZW5zZW1pdA==" + }, + { + "key": "gpl-3.0", + "name": "GNU General Public License v3.0", + "spdx_id": "GPL-3.0", + "url": "https://api.github.com/licenses/gpl-3.0", + "node_id": "MDc6TGljZW5zZW1pdA==" + } + ] + }, + "license": { + "value": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "http://choosealicense.com/licenses/mit/", + "description": "A permissive license that is short and to the point. It lets people do anything with your code with proper attribution and without warranty.", + "implementation": "Create a text file (typically named LICENSE or LICENSE.txt) in the root of your source code and copy the text of the license into the file. Replace [year] with the current year and [fullname] with the name (or names) of the copyright holders.", + "permissions": [ + "commercial-use", + "modifications", + "distribution", + "sublicense", + "private-use" + ], + "conditions": ["include-copyright"], + "limitations": ["no-liability"], + "body": "\n\nThe MIT License (MIT)\n\nCopyright (c) [year] [fullname]\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n", + "featured": true + } + }, + "marketplace-purchase": { + "value": { + "url": "https://api.github.com/orgs/github", + "type": "Organization", + "id": 4, + "login": "github", + "organization_billing_email": "billing@github.com", + "marketplace_pending_change": { + "effective_date": "2017-11-11T00:00:00Z", + "unit_count": null, + "id": 77, + "plan": { + "url": "https://api.github.com/marketplace_listing/plans/1111", + "accounts_url": "https://api.github.com/marketplace_listing/plans/1111/accounts", + "id": 1111, + "number": 2, + "name": "Startup", + "description": "A professional-grade CI solution", + "monthly_price_in_cents": 699, + "yearly_price_in_cents": 7870, + "price_model": "flat-rate", + "has_free_trial": true, + "state": "published", + "unit_name": null, + "bullets": [ + "Up to 10 private repositories", + "3 concurrent builds" + ] + } + }, + "marketplace_purchase": { + "billing_cycle": "monthly", + "next_billing_date": "2017-11-11T00:00:00Z", + "unit_count": null, + "on_free_trial": true, + "free_trial_ends_on": "2017-11-11T00:00:00Z", + "updated_at": "2017-11-02T01:12:12Z", + "plan": { + "url": "https://api.github.com/marketplace_listing/plans/1313", + "accounts_url": "https://api.github.com/marketplace_listing/plans/1313/accounts", + "id": 1313, + "number": 3, + "name": "Pro", + "description": "A professional-grade CI solution", + "monthly_price_in_cents": 1099, + "yearly_price_in_cents": 11870, + "price_model": "flat-rate", + "has_free_trial": true, + "unit_name": null, + "state": "published", + "bullets": [ + "Up to 25 private repositories", + "11 concurrent builds" + ] + } + } + } + }, + "marketplace-listing-plan-items": { + "value": [ + { + "url": "https://api.github.com/marketplace_listing/plans/1313", + "accounts_url": "https://api.github.com/marketplace_listing/plans/1313/accounts", + "id": 1313, + "number": 3, + "name": "Pro", + "description": "A professional-grade CI solution", + "monthly_price_in_cents": 1099, + "yearly_price_in_cents": 11870, + "price_model": "flat-rate", + "has_free_trial": true, + "unit_name": null, + "state": "published", + "bullets": ["Up to 25 private repositories", "11 concurrent builds"] + } + ] + }, + "marketplace-purchase-items": { + "value": [ + { + "url": "https://api.github.com/orgs/github", + "type": "Organization", + "id": 4, + "login": "github", + "organization_billing_email": "billing@github.com", + "marketplace_pending_change": { + "effective_date": "2017-11-11T00:00:00Z", + "unit_count": null, + "id": 77, + "plan": { + "url": "https://api.github.com/marketplace_listing/plans/1111", + "accounts_url": "https://api.github.com/marketplace_listing/plans/1111/accounts", + "id": 1111, + "number": 2, + "name": "Startup", + "description": "A professional-grade CI solution", + "monthly_price_in_cents": 699, + "yearly_price_in_cents": 7870, + "price_model": "flat-rate", + "has_free_trial": true, + "state": "published", + "unit_name": null, + "bullets": [ + "Up to 10 private repositories", + "3 concurrent builds" + ] + } + }, + "marketplace_purchase": { + "billing_cycle": "monthly", + "next_billing_date": "2017-11-11T00:00:00Z", + "unit_count": null, + "on_free_trial": true, + "free_trial_ends_on": "2017-11-11T00:00:00Z", + "updated_at": "2017-11-02T01:12:12Z", + "plan": { + "url": "https://api.github.com/marketplace_listing/plans/1313", + "accounts_url": "https://api.github.com/marketplace_listing/plans/1313/accounts", + "id": 1313, + "number": 3, + "name": "Pro", + "description": "A professional-grade CI solution", + "monthly_price_in_cents": 1099, + "yearly_price_in_cents": 11870, + "price_model": "flat-rate", + "has_free_trial": true, + "unit_name": null, + "state": "published", + "bullets": [ + "Up to 25 private repositories", + "11 concurrent builds" + ] + } + } + } + ] + }, + "api-overview": { + "value": { + "verifiable_password_authentication": true, + "ssh_key_fingerprints": { + "SHA256_RSA": "nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8", + "SHA256_DSA": "br9IjFspm1vxR3iA35FWE+4VTyz1hYVLIE2t1/CeyWQ" + }, + "hooks": ["192.30.252.0/22"], + "web": ["192.30.252.0/22", "185.199.108.0/22"], + "api": ["192.30.252.0/22", "185.199.108.0/22"], + "git": ["192.30.252.0/22"], + "pages": ["192.30.252.153/32", "192.30.252.154/32"], + "importer": ["54.158.161.132", "54.226.70.38"] + } + }, + "thread-items": { + "value": [ + { + "id": "1", + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "subject": { + "title": "Greetings", + "url": "https://api.github.com/repos/octokit/octokit.rb/issues/123", + "latest_comment_url": "https://api.github.com/repos/octokit/octokit.rb/issues/comments/123", + "type": "Issue" + }, + "reason": "subscribed", + "unread": true, + "updated_at": "2014-11-07T22:01:45Z", + "last_read_at": "2014-11-07T22:01:45Z", + "url": "https://api.github.com/notifications/threads/1" + } + ] + }, + "thread": { + "value": { + "id": "1", + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "subject": { + "title": "Greetings", + "url": "https://api.github.com/repos/octokit/octokit.rb/issues/123", + "latest_comment_url": "https://api.github.com/repos/octokit/octokit.rb/issues/comments/123", + "type": "Issue" + }, + "reason": "subscribed", + "unread": true, + "updated_at": "2014-11-07T22:01:45Z", + "last_read_at": "2014-11-07T22:01:45Z", + "url": "https://api.github.com/notifications/threads/1" + } + }, + "thread-subscription": { + "value": { + "subscribed": true, + "ignored": false, + "reason": null, + "created_at": "2012-10-06T21:34:12Z", + "url": "https://api.github.com/notifications/threads/1/subscription", + "thread_url": "https://api.github.com/notifications/threads/1" + } + }, + "organization-simple-items": { + "value": [ + { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization" + } + ] + }, + "organization-full-default-response": { + "summary": "Default response", + "value": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization", + "name": "github", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "twitter_username": "github", + "is_verified": true, + "has_organization_projects": true, + "has_repository_projects": true, + "public_repos": 2, + "public_gists": 1, + "followers": 20, + "following": 0, + "html_url": "https://github.com/octocat", + "created_at": "2008-01-14T04:33:35Z", + "updated_at": "2014-03-03T18:58:10Z", + "type": "Organization", + "total_private_repos": 100, + "owned_private_repos": 100, + "private_gists": 81, + "disk_usage": 10000, + "collaborators": 8, + "billing_email": "mona@github.com", + "plan": { "name": "Medium", "space": 400, "private_repos": 20 }, + "default_repository_permission": "read", + "members_can_create_repositories": true, + "two_factor_requirement_enabled": true, + "members_allowed_repository_creation_type": "all", + "members_can_create_public_repositories": false, + "members_can_create_private_repositories": false, + "members_can_create_internal_repositories": false, + "members_can_create_pages": true + } + }, + "organization-full-response-with-git-hub-plan-information": { + "summary": "Response with GitHub plan information", + "value": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization", + "name": "github", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "twitter_username": "github", + "is_verified": true, + "has_organization_projects": true, + "has_repository_projects": true, + "public_repos": 2, + "public_gists": 1, + "followers": 20, + "following": 0, + "html_url": "https://github.com/octocat", + "created_at": "2008-01-14T04:33:35Z", + "updated_at": "2014-03-03T18:58:10Z", + "type": "Organization", + "plan": { + "name": "team", + "space": 976562499, + "private_repos": 999999, + "filled_seats": 4, + "seats": 5 + } + } + }, + "organization-full": { + "value": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization", + "name": "github", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "twitter_username": "github", + "is_verified": true, + "has_organization_projects": true, + "has_repository_projects": true, + "public_repos": 2, + "public_gists": 1, + "followers": 20, + "following": 0, + "html_url": "https://github.com/octocat", + "created_at": "2008-01-14T04:33:35Z", + "type": "Organization", + "total_private_repos": 100, + "owned_private_repos": 100, + "private_gists": 81, + "disk_usage": 10000, + "collaborators": 8, + "billing_email": "mona@github.com", + "plan": { "name": "Medium", "space": 400, "private_repos": 20 }, + "default_repository_permission": "read", + "members_can_create_repositories": true, + "two_factor_requirement_enabled": true, + "members_allowed_repository_creation_type": "all", + "members_can_create_public_repositories": false, + "members_can_create_private_repositories": false, + "members_can_create_internal_repositories": false, + "members_can_create_pages": true, + "updated_at": "2014-03-03T18:58:10Z" + } + }, + "actions-organization-permissions": { + "value": { + "enabled_repositories": "all", + "allowed_actions": "selected", + "selected_actions_url": "https://api.github.com/organizations/42/actions/permissions/selected-actions" + } + }, + "repository-paginated": { + "value": { + "total_count": 1, + "repositories": [ + { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + ] + } + }, + "runner-groups-org": { + "value": { + "total_count": 3, + "runner_groups": [ + { + "id": 1, + "name": "Default", + "visibility": "all", + "default": true, + "runners_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/1/runners", + "inherited": false + }, + { + "id": 2, + "name": "octo-runner-group", + "visibility": "selected", + "default": false, + "selected_repositories_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/2/repositories", + "runners_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/2/runners", + "inherited": true + }, + { + "id": 3, + "name": "expensive-hardware", + "visibility": "private", + "default": false, + "runners_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/3/runners", + "inherited": false + } + ] + } + }, + "runner-group": { + "value": { + "id": 2, + "name": "octo-runner-group", + "visibility": "selected", + "default": false, + "selected_repositories_url": "https://api.github.com/orgs/octo-org/actions/runner-groups/2/repositories", + "runners_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/2/runners", + "inherited": false + } + }, + "runner-group-item": { + "value": { + "id": 2, + "name": "octo-runner-group", + "visibility": "selected", + "default": false, + "selected_repositories_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/2/repositories", + "runners_url": "https://api.github.com/orgs/octo-org/actions/runner_groups/2/runners", + "inherited": false + } + }, + "organization-actions-secret-paginated": { + "value": { + "total_count": 3, + "secrets": [ + { + "name": "GIST_ID", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z", + "visibility": "private" + }, + { + "name": "DEPLOY_TOKEN", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z", + "visibility": "all" + }, + { + "name": "GH_TOKEN", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z", + "visibility": "selected", + "selected_repositories_url": "https://api.github.com/orgs/octo-org/actions/secrets/SUPER_SECRET/repositories" + } + ] + } + }, + "actions-public-key": { + "value": { + "key_id": "012345678912345678", + "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234" + } + }, + "organization-actions-secret": { + "value": { + "name": "GH_TOKEN", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z", + "visibility": "selected", + "selected_repositories_url": "https://api.github.com/orgs/octo-org/actions/secrets/SUPER_SECRET/repositories" + } + }, + "public-repository-paginated": { + "value": { + "total_count": 1, + "repositories": [ + { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" + } + ] + } + }, + "simple-user-items": { + "value": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ] + }, + "credential-authorization-items": { + "value": [ + { + "login": "octocat", + "credential_id": 161195, + "credential_type": "personal access token", + "token_last_eight": "71c3fc11", + "credential_authorized_at": "2011-01-26T19:06:43Z", + "scopes": ["user", "repo"] + }, + { + "login": "hubot", + "credential_id": 161196, + "credential_type": "personal access token", + "token_last_eight": "12345678", + "credential_authorized_at": "2019-03-29T19:06:43Z", + "scopes": ["repo"] + } + ] + }, + "org-hook-items": { + "value": [ + { + "id": 1, + "url": "https://api.github.com/orgs/octocat/hooks/1", + "ping_url": "https://api.github.com/orgs/octocat/hooks/1/pings", + "name": "web", + "events": ["push", "pull_request"], + "active": true, + "config": { "url": "http://example.com", "content_type": "json" }, + "updated_at": "2011-09-06T20:39:23Z", + "created_at": "2011-09-06T17:26:27Z", + "type": "Organization" + } + ] + }, + "org-hook": { + "value": { + "id": 1, + "url": "https://api.github.com/orgs/octocat/hooks/1", + "ping_url": "https://api.github.com/orgs/octocat/hooks/1/pings", + "name": "web", + "events": ["push", "pull_request"], + "active": true, + "config": { "url": "http://example.com", "content_type": "json" }, + "updated_at": "2011-09-06T20:39:23Z", + "created_at": "2011-09-06T17:26:27Z", + "type": "Organization" + } + }, + "org-hook-2": { + "value": { + "id": 1, + "url": "https://api.github.com/orgs/octocat/hooks/1", + "ping_url": "https://api.github.com/orgs/octocat/hooks/1/pings", + "name": "web", + "events": ["pull_request"], + "active": true, + "config": { "url": "http://example.com", "content_type": "json" }, + "updated_at": "2011-09-06T20:39:23Z", + "created_at": "2011-09-06T17:26:27Z", + "type": "Organization" + } + }, + "installation": { + "value": { + "id": 1, + "account": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "avatar_url": "https://github.com/images/error/hubot_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/orgs/github", + "html_url": "https://github.com/github", + "followers_url": "https://api.github.com/users/github/followers", + "following_url": "https://api.github.com/users/github/following{/other_user}", + "gists_url": "https://api.github.com/users/github/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github/subscriptions", + "organizations_url": "https://api.github.com/users/github/orgs", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "received_events_url": "https://api.github.com/users/github/received_events", + "type": "Organization", + "site_admin": false + }, + "repository_selection": "all", + "access_tokens_url": "https://api.github.com/installations/1/access_tokens", + "repositories_url": "https://api.github.com/installation/repositories", + "html_url": "https://github.com/organizations/github/settings/installations/1", + "app_id": 1, + "target_id": 1, + "target_type": "Organization", + "permissions": { + "checks": "write", + "metadata": "read", + "contents": "read" + }, + "events": ["push", "pull_request"], + "created_at": "2018-02-09T20:51:14Z", + "updated_at": "2018-02-09T20:51:14Z", + "single_file_name": "config.yml", + "has_multiple_single_files": true, + "single_file_paths": ["config.yml", ".github/issue_TEMPLATE.md"], + "app_slug": "github-actions" + } + }, + "installation-paginated": { + "value": { + "total_count": 1, + "installations": [ + { + "id": 25381, + "account": { + "login": "octo-org", + "id": 6811672, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=", + "avatar_url": "https://avatars3.githubusercontent.com/u/6811672?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octo-org", + "html_url": "https://github.com/octo-org", + "followers_url": "https://api.github.com/users/octo-org/followers", + "following_url": "https://api.github.com/users/octo-org/following{/other_user}", + "gists_url": "https://api.github.com/users/octo-org/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octo-org/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octo-org/subscriptions", + "organizations_url": "https://api.github.com/users/octo-org/orgs", + "repos_url": "https://api.github.com/users/octo-org/repos", + "events_url": "https://api.github.com/users/octo-org/events{/privacy}", + "received_events_url": "https://api.github.com/users/octo-org/received_events", + "type": "Organization", + "site_admin": false + }, + "repository_selection": "selected", + "access_tokens_url": "https://api.github.com/app/installations/25381/access_tokens", + "repositories_url": "https://api.github.com/installation/repositories", + "html_url": "https://github.com/organizations/octo-org/settings/installations/25381", + "app_id": 2218, + "target_id": 6811672, + "target_type": "Organization", + "permissions": { + "deployments": "write", + "metadata": "read", + "pull_requests": "read", + "statuses": "read" + }, + "events": ["deployment", "deployment_status"], + "created_at": "2017-05-16T08:47:09.000-07:00", + "updated_at": "2017-06-06T11:23:23.000-07:00", + "single_file_name": "config.yml", + "has_multiple_single_files": true, + "single_file_paths": ["config.yml", ".github/issue_TEMPLATE.md"], + "app_slug": "github-actions" + } + ] + } + }, + "interaction-limit-response": { + "value": { + "limit": "collaborators_only", + "origin": "organization", + "expires_at": "2018-08-17T04:18:39Z" + } + }, + "organization-invitation-items": { + "value": [ + { + "id": 1, + "login": "monalisa", + "email": "octocat@github.com", + "role": "direct_member", + "created_at": "2016-11-30T06:46:10-08:00", + "inviter": { + "login": "other_user", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/other_user_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/other_user", + "html_url": "https://github.com/other_user", + "followers_url": "https://api.github.com/users/other_user/followers", + "following_url": "https://api.github.com/users/other_user/following{/other_user}", + "gists_url": "https://api.github.com/users/other_user/gists{/gist_id}", + "starred_url": "https://api.github.com/users/other_user/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/other_user/subscriptions", + "organizations_url": "https://api.github.com/users/other_user/orgs", + "repos_url": "https://api.github.com/users/other_user/repos", + "events_url": "https://api.github.com/users/other_user/events{/privacy}", + "received_events_url": "https://api.github.com/users/other_user/received_events", + "type": "User", + "site_admin": false + }, + "team_count": 2, + "invitation_team_url": "https://api.github.com/organizations/2/invitations/1/teams" + } + ] + }, + "organization-invitation": { + "value": { + "id": 1, + "login": "monalisa", + "email": "octocat@github.com", + "role": "direct_member", + "created_at": "2016-11-30T06:46:10-08:00", + "inviter": { + "login": "other_user", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/other_user_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/other_user", + "html_url": "https://github.com/other_user", + "followers_url": "https://api.github.com/users/other_user/followers", + "following_url": "https://api.github.com/users/other_user/following{/other_user}", + "gists_url": "https://api.github.com/users/other_user/gists{/gist_id}", + "starred_url": "https://api.github.com/users/other_user/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/other_user/subscriptions", + "organizations_url": "https://api.github.com/users/other_user/orgs", + "repos_url": "https://api.github.com/users/other_user/repos", + "events_url": "https://api.github.com/users/other_user/events{/privacy}", + "received_events_url": "https://api.github.com/users/other_user/received_events", + "type": "User", + "site_admin": false + }, + "team_count": 2, + "invitation_team_url": "https://api.github.com/organizations/2/invitations/1/teams" + } + }, + "team-items": { + "value": [ + { + "id": 1, + "node_id": "MDQ6VGVhbTE=", + "url": "https://api.github.com/teams/1", + "html_url": "https://github.com/orgs/github/teams/justice-league", + "name": "Justice League", + "slug": "justice-league", + "description": "A great team.", + "privacy": "closed", + "permission": "admin", + "members_url": "https://api.github.com/teams/1/members{/member}", + "repositories_url": "https://api.github.com/teams/1/repos", + "parent": null + } + ] + }, + "org-membership-response-if-user-has-an-active-admin-membership-with-organization": { + "summary": "Response if user has an active admin membership with organization", + "value": { + "url": "https://api.github.com/orgs/octocat/memberships/defunkt", + "state": "active", + "role": "admin", + "organization_url": "https://api.github.com/orgs/octocat", + "organization": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization" + }, + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + }, + "org-membership-response-if-user-has-an-active-membership-with-organization": { + "summary": "Response if user has an active membership with organization", + "value": { + "url": "https://api.github.com/orgs/octocat/memberships/defunkt", + "state": "active", + "role": "member", + "organization_url": "https://api.github.com/orgs/octocat", + "organization": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization" + }, + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + }, + "org-membership-response-if-user-has-a-pending-membership-with-organization": { + "summary": "Response if user has a pending membership with organization", + "value": { + "url": "https://api.github.com/orgs/invitocat/memberships/defunkt", + "state": "pending", + "role": "member", + "organization_url": "https://api.github.com/orgs/invitocat", + "organization": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization" + }, + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + }, + "org-membership-response-if-user-was-previously-unaffiliated-with-organization": { + "summary": "Response if user was previously unaffiliated with organization", + "value": { + "url": "https://api.github.com/orgs/invitocat/memberships/defunkt", + "state": "pending", + "role": "admin", + "organization_url": "https://api.github.com/orgs/invitocat", + "organization": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization" + }, + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + }, + "org-membership-response-if-user-already-had-membership-with-organization": { + "summary": "Response if user already had membership with organization", + "value": { + "url": "https://api.github.com/orgs/octocat/memberships/defunkt", + "state": "active", + "role": "admin", + "organization_url": "https://api.github.com/orgs/octocat", + "organization": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization" + }, + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + }, + "migration-with-short-org-items": { + "value": [ + { + "id": 79, + "owner": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "guid": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "state": "pending", + "lock_repositories": true, + "exclude_attachments": false, + "repositories": [ + { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://api.github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + ], + "url": "https://api.github.com/orgs/octo-org/migrations/79", + "created_at": "2015-07-06T15:33:38-07:00", + "updated_at": "2015-07-06T15:33:38-07:00", + "node_id": "MDQ6VXNlcjE=" + } + ] + }, + "migration-with-short-org-2": { + "value": { + "id": 79, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "owner": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "guid": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "state": "pending", + "lock_repositories": true, + "exclude_attachments": false, + "repositories": [ + { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://api.github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + ], + "url": "https://api.github.com/orgs/octo-org/migrations/79", + "created_at": "2015-07-06T15:33:38-07:00", + "updated_at": "2015-07-06T15:33:38-07:00" + } + }, + "migration-with-short-org": { + "value": { + "id": 79, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "owner": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "guid": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "state": "exported", + "lock_repositories": true, + "exclude_attachments": false, + "repositories": [ + { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://api.github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + ], + "url": "https://api.github.com/orgs/octo-org/migrations/79", + "created_at": "2015-07-06T15:33:38-07:00", + "updated_at": "2015-07-06T15:33:38-07:00" + } + }, + "minimal-repository-items": { + "value": [ + { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "template_repository": "octocat/template", + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "delete_branch_on_merge": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZW1pdA==" + } + } + ] + }, + "project-items": { + "value": [ + { + "owner_url": "https://api.github.com/orgs/octocat", + "url": "https://api.github.com/projects/1002605", + "html_url": "https://github.com/orgs/api-playground/projects/1", + "columns_url": "https://api.github.com/projects/1002605/columns", + "id": 1002605, + "node_id": "MDc6UHJvamVjdDEwMDI2MDU=", + "name": "Organization Roadmap", + "body": "High-level roadmap for the upcoming year.", + "number": 1, + "state": "open", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2011-04-11T20:09:31Z", + "updated_at": "2014-03-04T18:58:10Z" + } + ] + }, + "project-2": { + "value": { + "owner_url": "https://api.github.com/orgs/octocat", + "url": "https://api.github.com/projects/1002605", + "html_url": "https://github.com/orgs/api-playground/projects/1", + "columns_url": "https://api.github.com/projects/1002605/columns", + "id": 1002605, + "node_id": "MDc6UHJvamVjdDEwMDI2MDU=", + "name": "Organization Roadmap", + "body": "High-level roadmap for the upcoming year.", + "number": 1, + "state": "open", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2011-04-11T20:09:31Z", + "updated_at": "2014-03-04T18:58:10Z" + } + }, + "repository": { + "value": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks": 9, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "watchers": 80, + "size": 108, + "default_branch": "master", + "open_issues": 0, + "open_issues_count": 0, + "is_template": true, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://api.github.com/licenses/mit" + }, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0 + } + }, + "group-mapping-3": { + "value": { + "groups": [ + { + "group_id": "123", + "group_name": "Octocat admins", + "group_description": "The people who configure your octoworld." + }, + { + "group_id": "456", + "group_name": "Octocat docs members", + "group_description": "The people who make your octoworld come to life." + } + ] + } + }, + "team-full": { + "value": { + "id": 1, + "node_id": "MDQ6VGVhbTE=", + "url": "https://api.github.com/teams/1", + "html_url": "https://github.com/orgs/github/teams/justice-league", + "name": "Justice League", + "slug": "justice-league", + "description": "A great team.", + "privacy": "closed", + "permission": "admin", + "members_url": "https://api.github.com/teams/1/members{/member}", + "repositories_url": "https://api.github.com/teams/1/repos", + "parent": null, + "members_count": 3, + "repos_count": 10, + "created_at": "2017-07-14T16:53:42Z", + "updated_at": "2017-08-17T12:37:15Z", + "organization": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization", + "name": "github", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "is_verified": true, + "has_organization_projects": true, + "has_repository_projects": true, + "public_repos": 2, + "public_gists": 1, + "followers": 20, + "following": 0, + "html_url": "https://github.com/octocat", + "created_at": "2008-01-14T04:33:35Z", + "updated_at": "2017-08-17T12:37:15Z", + "type": "Organization" + } + } + }, + "team-discussion-items": { + "value": [ + { + "author": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "body": "Hi! This is an area for us to collaborate as a team.", + "body_html": "

Hi! This is an area for us to collaborate as a team

", + "body_version": "0d495416a700fb06133c612575d92bfb", + "comments_count": 0, + "comments_url": "https://api.github.com/teams/2343027/discussions/1/comments", + "created_at": "2018-01-25T18:56:31Z", + "last_edited_at": null, + "html_url": "https://github.com/orgs/github/teams/justice-league/discussions/1", + "node_id": "MDE0OlRlYW1EaXNjdXNzaW9uMQ==", + "number": 1, + "pinned": false, + "private": false, + "team_url": "https://api.github.com/teams/2343027", + "title": "Our first team post", + "updated_at": "2018-01-25T18:56:31Z", + "url": "https://api.github.com/teams/2343027/discussions/1", + "reactions": { + "url": "https://api.github.com/teams/2343027/discussions/1/reactions", + "total_count": 5, + "+1": 3, + "-1": 1, + "laugh": 0, + "confused": 0, + "heart": 1, + "hooray": 0, + "eyes": 1, + "rocket": 1 + } + } + ] + }, + "team-discussion": { + "value": { + "author": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "body": "Hi! This is an area for us to collaborate as a team.", + "body_html": "

Hi! This is an area for us to collaborate as a team

", + "body_version": "0d495416a700fb06133c612575d92bfb", + "comments_count": 0, + "comments_url": "https://api.github.com/teams/2343027/discussions/1/comments", + "created_at": "2018-01-25T18:56:31Z", + "last_edited_at": null, + "html_url": "https://github.com/orgs/github/teams/justice-league/discussions/1", + "node_id": "MDE0OlRlYW1EaXNjdXNzaW9uMQ==", + "number": 1, + "pinned": false, + "private": false, + "team_url": "https://api.github.com/teams/2343027", + "title": "Our first team post", + "updated_at": "2018-01-25T18:56:31Z", + "url": "https://api.github.com/teams/2343027/discussions/1", + "reactions": { + "url": "https://api.github.com/teams/2343027/discussions/1/reactions", + "total_count": 5, + "+1": 3, + "-1": 1, + "laugh": 0, + "confused": 0, + "heart": 1, + "hooray": 0, + "eyes": 1, + "rocket": 1 + } + } + }, + "team-discussion-2": { + "value": { + "author": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "body": "Hi! This is an area for us to collaborate as a team.", + "body_html": "

Hi! This is an area for us to collaborate as a team

", + "body_version": "0d495416a700fb06133c612575d92bfb", + "comments_count": 1, + "comments_url": "https://api.github.com/teams/2343027/discussions/1/comments", + "created_at": "2018-01-25T18:56:31Z", + "last_edited_at": "2018-01-26T18:22:20Z", + "html_url": "https://github.com/orgs/github/teams/justice-league/discussions/1", + "node_id": "MDE0OlRlYW1EaXNjdXNzaW9uMQ==", + "number": 1, + "pinned": false, + "private": false, + "team_url": "https://api.github.com/teams/2343027", + "title": "Welcome to our first team post", + "updated_at": "2018-01-26T18:22:20Z", + "url": "https://api.github.com/teams/2343027/discussions/1", + "reactions": { + "url": "https://api.github.com/teams/2343027/discussions/1/reactions", + "total_count": 5, + "+1": 3, + "-1": 1, + "laugh": 0, + "confused": 0, + "heart": 1, + "hooray": 0, + "eyes": 1, + "rocket": 1 + } + } + }, + "team-discussion-comment-items": { + "value": [ + { + "author": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "body": "Do you like apples?", + "body_html": "

Do you like apples?

", + "body_version": "5eb32b219cdc6a5a9b29ba5d6caa9c51", + "created_at": "2018-01-15T23:53:58Z", + "last_edited_at": null, + "discussion_url": "https://api.github.com/teams/2403582/discussions/1", + "html_url": "https://github.com/orgs/github/teams/justice-league/discussions/1/comments/1", + "node_id": "MDIxOlRlYW1EaXNjdXNzaW9uQ29tbWVudDE=", + "number": 1, + "updated_at": "2018-01-15T23:53:58Z", + "url": "https://api.github.com/teams/2403582/discussions/1/comments/1", + "reactions": { + "url": "https://api.github.com/teams/2403582/discussions/1/reactions", + "total_count": 5, + "+1": 3, + "-1": 1, + "laugh": 0, + "confused": 0, + "heart": 1, + "hooray": 0, + "eyes": 1, + "rocket": 1 + } + } + ] + }, + "team-discussion-comment": { + "value": { + "author": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "body": "Do you like apples?", + "body_html": "

Do you like apples?

", + "body_version": "5eb32b219cdc6a5a9b29ba5d6caa9c51", + "created_at": "2018-01-15T23:53:58Z", + "last_edited_at": null, + "discussion_url": "https://api.github.com/teams/2403582/discussions/1", + "html_url": "https://github.com/orgs/github/teams/justice-league/discussions/1/comments/1", + "node_id": "MDIxOlRlYW1EaXNjdXNzaW9uQ29tbWVudDE=", + "number": 1, + "updated_at": "2018-01-15T23:53:58Z", + "url": "https://api.github.com/teams/2403582/discussions/1/comments/1", + "reactions": { + "url": "https://api.github.com/teams/2403582/discussions/1/reactions", + "total_count": 5, + "+1": 3, + "-1": 1, + "laugh": 0, + "confused": 0, + "heart": 1, + "hooray": 0, + "eyes": 1, + "rocket": 1 + } + } + }, + "team-discussion-comment-2": { + "value": { + "author": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "body": "Do you like pineapples?", + "body_html": "

Do you like pineapples?

", + "body_version": "e6907b24d9c93cc0c5024a7af5888116", + "created_at": "2018-01-15T23:53:58Z", + "last_edited_at": "2018-01-26T18:22:20Z", + "discussion_url": "https://api.github.com/teams/2403582/discussions/1", + "html_url": "https://github.com/orgs/github/teams/justice-league/discussions/1/comments/1", + "node_id": "MDIxOlRlYW1EaXNjdXNzaW9uQ29tbWVudDE=", + "number": 1, + "updated_at": "2018-01-26T18:22:20Z", + "url": "https://api.github.com/teams/2403582/discussions/1/comments/1", + "reactions": { + "url": "https://api.github.com/teams/2403582/discussions/1/reactions", + "total_count": 5, + "+1": 3, + "-1": 1, + "laugh": 0, + "confused": 0, + "heart": 1, + "hooray": 0, + "eyes": 1, + "rocket": 1 + } + } + }, + "reaction-items": { + "value": [ + { + "id": 1, + "node_id": "MDg6UmVhY3Rpb24x", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "content": "heart", + "created_at": "2016-05-20T20:09:31Z" + } + ] + }, + "reaction": { + "value": { + "id": 1, + "node_id": "MDg6UmVhY3Rpb24x", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "content": "heart", + "created_at": "2016-05-20T20:09:31Z" + } + }, + "team-membership-response-if-user-has-an-active-membership-with-team": { + "summary": "Response if user has an active membership with team", + "value": { + "url": "https://api.github.com/teams/1/memberships/octocat", + "role": "member", + "state": "active" + } + }, + "team-membership-response-if-user-is-a-team-maintainer": { + "summary": "Response if user is a team maintainer", + "value": { + "url": "https://api.github.com/teams/1/memberships/octocat", + "role": "maintainer", + "state": "active" + } + }, + "team-membership-response-if-user-has-a-pending-membership-with-team": { + "summary": "Response if user has a pending membership with team", + "value": { + "url": "https://api.github.com/teams/1/memberships/octocat", + "role": "member", + "state": "pending" + } + }, + "team-membership-response-if-users-membership-with-team-is-now-active": { + "summary": "Response if user's membership with team is now active", + "value": { + "url": "https://api.github.com/teams/1/memberships/octocat", + "role": "member", + "state": "active" + } + }, + "team-membership-response-if-users-membership-with-team-is-now-pending": { + "summary": "Response if user's membership with team is now pending", + "value": { + "url": "https://api.github.com/teams/1/memberships/octocat", + "role": "member", + "state": "pending" + } + }, + "team-project-items": { + "value": [ + { + "owner_url": "https://api.github.com/orgs/octocat", + "url": "https://api.github.com/projects/1002605", + "html_url": "https://github.com/orgs/api-playground/projects/1", + "columns_url": "https://api.github.com/projects/1002605/columns", + "id": 1002605, + "node_id": "MDc6UHJvamVjdDEwMDI2MDU=", + "name": "Organization Roadmap", + "body": "High-level roadmap for the upcoming year.", + "number": 1, + "state": "open", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2011-04-11T20:09:31Z", + "updated_at": "2014-03-04T18:58:10Z", + "organization_permission": "write", + "private": false, + "permissions": { "read": true, "write": true, "admin": false } + } + ] + }, + "team-project": { + "value": { + "owner_url": "https://api.github.com/orgs/octocat", + "url": "https://api.github.com/projects/1002605", + "html_url": "https://github.com/orgs/api-playground/projects/1", + "columns_url": "https://api.github.com/projects/1002605/columns", + "id": 1002605, + "node_id": "MDc6UHJvamVjdDEwMDI2MDU=", + "name": "Organization Roadmap", + "body": "High-level roadmap for the upcoming year.", + "number": 1, + "state": "open", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2011-04-11T20:09:31Z", + "updated_at": "2014-03-04T18:58:10Z", + "organization_permission": "write", + "private": false, + "permissions": { "read": true, "write": true, "admin": false } + } + }, + "team-repository-alternative-response-with-repository-permissions": { + "value": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://api.github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + }, + "group-mapping": { + "value": { + "groups": [ + { + "group_id": "123", + "group_name": "Octocat admins", + "group_description": "The people who configure your octoworld." + }, + { + "group_id": "456", + "group_name": "Octocat docs members", + "group_description": "The people who make your octoworld come to life." + } + ] + } + }, + "team-items-response-if-child-teams-exist": { + "value": [ + { + "id": 2, + "node_id": "MDQ6VGVhbTI=", + "url": "https://api.github.com/teams/2", + "name": "Original Roster", + "slug": "original-roster", + "description": "Started it all.", + "privacy": "closed", + "permission": "admin", + "members_url": "https://api.github.com/teams/2/members{/member}", + "repositories_url": "https://api.github.com/teams/2/repos", + "parent": { + "id": 1, + "node_id": "MDQ6VGVhbTE=", + "url": "https://api.github.com/teams/1", + "html_url": "https://github.com/orgs/github/teams/justice-league", + "name": "Justice League", + "slug": "justice-league", + "description": "A great team.", + "privacy": "closed", + "permission": "admin", + "members_url": "https://api.github.com/teams/1/members{/member}", + "repositories_url": "https://api.github.com/teams/1/repos" + }, + "html_url": "https://github.com/orgs/rails/teams/core" + } + ] + }, + "project-card": { + "value": { + "url": "https://api.github.com/projects/columns/cards/1478", + "id": 1478, + "node_id": "MDExOlByb2plY3RDYXJkMTQ3OA==", + "note": "Add payload for delete Project column", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2016-09-05T14:21:06Z", + "updated_at": "2016-09-05T14:20:22Z", + "archived": false, + "column_url": "https://api.github.com/projects/columns/367", + "content_url": "https://api.github.com/repos/api-playground/projects-test/issues/3", + "project_url": "https://api.github.com/projects/120" + } + }, + "project-column": { + "value": { + "url": "https://api.github.com/projects/columns/367", + "project_url": "https://api.github.com/projects/120", + "cards_url": "https://api.github.com/projects/columns/367/cards", + "id": 367, + "node_id": "MDEzOlByb2plY3RDb2x1bW4zNjc=", + "name": "To Do", + "created_at": "2016-09-05T14:18:44Z", + "updated_at": "2016-09-05T14:22:28Z" + } + }, + "project-card-items": { + "value": [ + { + "url": "https://api.github.com/projects/columns/cards/1478", + "id": 1478, + "node_id": "MDExOlByb2plY3RDYXJkMTQ3OA==", + "note": "Add payload for delete Project column", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2016-09-05T14:21:06Z", + "updated_at": "2016-09-05T14:20:22Z", + "archived": false, + "column_url": "https://api.github.com/projects/columns/367", + "content_url": "https://api.github.com/repos/api-playground/projects-test/issues/3", + "project_url": "https://api.github.com/projects/120" + } + ] + }, + "project-3": { + "value": { + "owner_url": "https://api.github.com/repos/api-playground/projects-test", + "url": "https://api.github.com/projects/1002604", + "html_url": "https://github.com/api-playground/projects-test/projects/1", + "columns_url": "https://api.github.com/projects/1002604/columns", + "id": 1002604, + "node_id": "MDc6UHJvamVjdDEwMDI2MDQ=", + "name": "Projects Documentation", + "body": "Developer documentation project for the developer site.", + "number": 1, + "state": "open", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2011-04-10T20:09:31Z", + "updated_at": "2014-03-03T18:58:10Z" + } + }, + "repository-collaborator-permission": { + "value": { + "permission": "admin", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + }, + "project-column-items": { + "value": [ + { + "url": "https://api.github.com/projects/columns/367", + "project_url": "https://api.github.com/projects/120", + "cards_url": "https://api.github.com/projects/columns/367/cards", + "id": 367, + "node_id": "MDEzOlByb2plY3RDb2x1bW4zNjc=", + "name": "To Do", + "created_at": "2016-09-05T14:18:44Z", + "updated_at": "2016-09-05T14:22:28Z" + } + ] + }, + "rate-limit-overview": { + "value": { + "resources": { + "core": { "limit": 5000, "remaining": 4999, "reset": 1372700873 }, + "search": { "limit": 30, "remaining": 18, "reset": 1372697452 }, + "graphql": { + "limit": 5000, + "remaining": 4993, + "reset": 1372700389 + }, + "integration_manifest": { + "limit": 5000, + "remaining": 4999, + "reset": 1551806725 + }, + "code_scanning_upload": { + "limit": 500, + "remaining": 499, + "reset": 1551806725 + } + }, + "rate": { "limit": 5000, "remaining": 4999, "reset": 1372700873 } + } + }, + "full-repository-default-response": { + "summary": "Default response", + "value": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "forks": 9, + "stargazers_count": 80, + "watchers_count": 80, + "watchers": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "open_issues": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "pull": true, "push": false, "admin": false }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZW1pdA==" + }, + "organization": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "Organization", + "site_admin": false + }, + "parent": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://api.github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + }, + "source": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://api.github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + } + }, + "full-repository-response-with-scarlet-witch-preview-media-type": { + "summary": "Response with scarlet-witch-preview media type", + "value": { + "id": 88760408, + "node_id": "MDEwOlJlcG9zaXRvcnk4ODc2MDQwOA==", + "name": "cosee", + "full_name": "LindseyB/cosee", + "disabled": false, + "archived": false, + "owner": { + "login": "LindseyB", + "id": 33750, + "node_id": "MDQ6VXNlcjMzNzUw", + "avatar_url": "https://avatars2.githubusercontent.com/u/33750?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/LindseyB", + "html_url": "https://github.com/LindseyB", + "followers_url": "https://api.github.com/users/LindseyB/followers", + "following_url": "https://api.github.com/users/LindseyB/following{/other_user}", + "gists_url": "https://api.github.com/users/LindseyB/gists{/gist_id}", + "starred_url": "https://api.github.com/users/LindseyB/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/LindseyB/subscriptions", + "organizations_url": "https://api.github.com/users/LindseyB/orgs", + "repos_url": "https://api.github.com/users/LindseyB/repos", + "events_url": "https://api.github.com/users/LindseyB/events{/privacy}", + "received_events_url": "https://api.github.com/users/LindseyB/received_events", + "type": "User", + "site_admin": true + }, + "private": false, + "html_url": "https://github.com/LindseyB/cosee", + "description": null, + "fork": false, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://github.com/licenses/mit" + }, + "url": "https://api.github.com/repos/LindseyB/cosee", + "forks_url": "https://api.github.com/repos/LindseyB/cosee/forks", + "keys_url": "https://api.github.com/repos/LindseyB/cosee/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/LindseyB/cosee/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/LindseyB/cosee/teams", + "hooks_url": "https://api.github.com/repos/LindseyB/cosee/hooks", + "issue_events_url": "https://api.github.com/repos/LindseyB/cosee/issues/events{/number}", + "events_url": "https://api.github.com/repos/LindseyB/cosee/events", + "assignees_url": "https://api.github.com/repos/LindseyB/cosee/assignees{/user}", + "branches_url": "https://api.github.com/repos/LindseyB/cosee/branches{/branch}", + "tags_url": "https://api.github.com/repos/LindseyB/cosee/tags", + "blobs_url": "https://api.github.com/repos/LindseyB/cosee/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/LindseyB/cosee/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/LindseyB/cosee/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/LindseyB/cosee/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/LindseyB/cosee/statuses/{sha}", + "languages_url": "https://api.github.com/repos/LindseyB/cosee/languages", + "stargazers_url": "https://api.github.com/repos/LindseyB/cosee/stargazers", + "contributors_url": "https://api.github.com/repos/LindseyB/cosee/contributors", + "subscribers_url": "https://api.github.com/repos/LindseyB/cosee/subscribers", + "subscription_url": "https://api.github.com/repos/LindseyB/cosee/subscription", + "commits_url": "https://api.github.com/repos/LindseyB/cosee/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/LindseyB/cosee/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/LindseyB/cosee/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/LindseyB/cosee/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/LindseyB/cosee/contents/{+path}", + "compare_url": "https://api.github.com/repos/LindseyB/cosee/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/LindseyB/cosee/merges", + "archive_url": "https://api.github.com/repos/LindseyB/cosee/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/LindseyB/cosee/downloads", + "issues_url": "https://api.github.com/repos/LindseyB/cosee/issues{/number}", + "pulls_url": "https://api.github.com/repos/LindseyB/cosee/pulls{/number}", + "milestones_url": "https://api.github.com/repos/LindseyB/cosee/milestones{/number}", + "notifications_url": "https://api.github.com/repos/LindseyB/cosee/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/LindseyB/cosee/labels{/name}", + "releases_url": "https://api.github.com/repos/LindseyB/cosee/releases{/id}", + "deployments_url": "https://api.github.com/repos/LindseyB/cosee/deployments", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "git_url": "git://github.com/LindseyB/cosee.git", + "ssh_url": "git@github.com:LindseyB/cosee.git", + "clone_url": "https://github.com/LindseyB/cosee.git", + "svn_url": "https://github.com/LindseyB/cosee", + "homepage": null, + "size": 1, + "stargazers_count": 0, + "watchers_count": 0, + "language": null, + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "open_issues_count": 0, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "master", + "network_count": 0, + "subscribers_count": 0 + } + }, + "full-repository": { + "value": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://github.com/licenses/mit" + }, + "language": null, + "forks_count": 9, + "forks": 9, + "stargazers_count": 80, + "watchers_count": 80, + "watchers": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "open_issues": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "pull": true, "push": false, "admin": false }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "organization": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "Organization", + "site_admin": false + }, + "parent": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://api.github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + }, + "source": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://api.github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + } + }, + "artifact-paginated": { + "value": { + "total_count": 2, + "artifacts": [ + { + "id": 11, + "node_id": "MDg6QXJ0aWZhY3QxMQ==", + "name": "Rails", + "size_in_bytes": 556, + "url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11", + "archive_download_url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11/zip", + "expired": false, + "created_at": "2020-01-10T14:59:22Z", + "expires_at": "2020-03-21T14:59:22Z", + "updated_at": "2020-02-21T14:59:22Z" + }, + { + "id": 13, + "node_id": "MDg6QXJ0aWZhY3QxMw==", + "name": "", + "size_in_bytes": 453, + "url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/13", + "archive_download_url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/13/zip", + "expired": false, + "created_at": "2020-01-10T14:59:22Z", + "expires_at": "2020-03-21T14:59:22Z", + "updated_at": "2020-02-21T14:59:22Z" + } + ] + } + }, + "artifact": { + "value": { + "id": 11, + "node_id": "MDg6QXJ0aWZhY3QxMQ==", + "name": "Rails", + "size_in_bytes": 556, + "url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11", + "archive_download_url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11/zip", + "expired": false, + "created_at": "2020-01-10T14:59:22Z", + "expires_at": "2020-01-21T14:59:22Z", + "updated_at": "2020-01-21T14:59:22Z" + } + }, + "job": { + "value": { + "id": 399444496, + "run_id": 29679449, + "run_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/29679449", + "node_id": "MDEyOldvcmtmbG93IEpvYjM5OTQ0NDQ5Ng==", + "head_sha": "f83a356604ae3c5d03e1b46ef4d1ca77d64a90b0", + "url": "https://api.github.com/repos/octo-org/octo-repo/actions/jobs/399444496", + "html_url": "https://github.com/octo-org/octo-repo/runs/399444496", + "status": "completed", + "conclusion": "success", + "started_at": "2020-01-20T17:42:40Z", + "completed_at": "2020-01-20T17:44:39Z", + "name": "build", + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1, + "started_at": "2020-01-20T09:42:40.000-08:00", + "completed_at": "2020-01-20T09:42:41.000-08:00" + }, + { + "name": "Run actions/checkout@v2", + "status": "completed", + "conclusion": "success", + "number": 2, + "started_at": "2020-01-20T09:42:41.000-08:00", + "completed_at": "2020-01-20T09:42:45.000-08:00" + }, + { + "name": "Set up Ruby", + "status": "completed", + "conclusion": "success", + "number": 3, + "started_at": "2020-01-20T09:42:45.000-08:00", + "completed_at": "2020-01-20T09:42:45.000-08:00" + }, + { + "name": "Run actions/cache@v2", + "status": "completed", + "conclusion": "success", + "number": 4, + "started_at": "2020-01-20T09:42:45.000-08:00", + "completed_at": "2020-01-20T09:42:48.000-08:00" + }, + { + "name": "Install Bundler", + "status": "completed", + "conclusion": "success", + "number": 5, + "started_at": "2020-01-20T09:42:48.000-08:00", + "completed_at": "2020-01-20T09:42:52.000-08:00" + }, + { + "name": "Install Gems", + "status": "completed", + "conclusion": "success", + "number": 6, + "started_at": "2020-01-20T09:42:52.000-08:00", + "completed_at": "2020-01-20T09:42:53.000-08:00" + }, + { + "name": "Run Tests", + "status": "completed", + "conclusion": "success", + "number": 7, + "started_at": "2020-01-20T09:42:53.000-08:00", + "completed_at": "2020-01-20T09:42:59.000-08:00" + }, + { + "name": "Deploy to Heroku", + "status": "completed", + "conclusion": "success", + "number": 8, + "started_at": "2020-01-20T09:42:59.000-08:00", + "completed_at": "2020-01-20T09:44:39.000-08:00" + }, + { + "name": "Post actions/cache@v2", + "status": "completed", + "conclusion": "success", + "number": 16, + "started_at": "2020-01-20T09:44:39.000-08:00", + "completed_at": "2020-01-20T09:44:39.000-08:00" + }, + { + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17, + "started_at": "2020-01-20T09:44:39.000-08:00", + "completed_at": "2020-01-20T09:44:39.000-08:00" + } + ], + "check_run_url": "https://api.github.com/repos/octo-org/octo-repo/check-runs/399444496" + } + }, + "actions-repository-permissions": { + "value": { + "enabled": true, + "allowed_actions": "selected", + "selected_actions_url": "https://api.github.com/repositories/42/actions/permissions/selected-actions" + } + }, + "workflow-run-paginated": { + "value": { + "total_count": 1, + "workflow_runs": [ + { + "id": 30433642, + "name": "Build", + "node_id": "MDEyOldvcmtmbG93IFJ1bjI2OTI4OQ==", + "head_branch": "master", + "head_sha": "acb5820ced9479c074f688cc328bf03f341a511d", + "run_number": 562, + "event": "push", + "status": "queued", + "conclusion": null, + "workflow_id": 159038, + "url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642", + "html_url": "https://github.com/octo-org/octo-repo/actions/runs/30433642", + "pull_requests": [], + "created_at": "2020-01-22T19:33:08Z", + "updated_at": "2020-01-22T19:33:08Z", + "jobs_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/jobs", + "logs_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/logs", + "check_suite_url": "https://api.github.com/repos/octo-org/octo-repo/check-suites/414944374", + "artifacts_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/artifacts", + "cancel_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/cancel", + "rerun_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/rerun", + "workflow_url": "https://api.github.com/repos/octo-org/octo-repo/actions/workflows/159038", + "head_commit": { + "id": "acb5820ced9479c074f688cc328bf03f341a511d", + "tree_id": "d23f6eedb1e1b9610bbc754ddb5197bfe7271223", + "message": "Create linter.yaml", + "timestamp": "2020-01-22T19:33:05Z", + "author": { "name": "Octo Cat", "email": "octocat@github.com" }, + "committer": { "name": "GitHub", "email": "noreply@github.com" } + }, + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "head_repository": { + "id": 217723378, + "node_id": "MDEwOlJlcG9zaXRvcnkyMTc3MjMzNzg=", + "name": "octo-repo", + "full_name": "octo-org/octo-repo", + "private": true, + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/octo-org/octo-repo", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/octo-org/octo-repo", + "forks_url": "https://api.github.com/repos/octo-org/octo-repo/forks", + "keys_url": "https://api.github.com/repos/octo-org/octo-repo/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/octo-org/octo-repo/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/octo-org/octo-repo/teams", + "hooks_url": "https://api.github.com/repos/octo-org/octo-repo/hooks", + "issue_events_url": "https://api.github.com/repos/octo-org/octo-repo/issues/events{/number}", + "events_url": "https://api.github.com/repos/octo-org/octo-repo/events", + "assignees_url": "https://api.github.com/repos/octo-org/octo-repo/assignees{/user}", + "branches_url": "https://api.github.com/repos/octo-org/octo-repo/branches{/branch}", + "tags_url": "https://api.github.com/repos/octo-org/octo-repo/tags", + "blobs_url": "https://api.github.com/repos/octo-org/octo-repo/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/octo-org/octo-repo/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/octo-org/octo-repo/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/octo-org/octo-repo/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/octo-org/octo-repo/statuses/{sha}", + "languages_url": "https://api.github.com/repos/octo-org/octo-repo/languages", + "stargazers_url": "https://api.github.com/repos/octo-org/octo-repo/stargazers", + "contributors_url": "https://api.github.com/repos/octo-org/octo-repo/contributors", + "subscribers_url": "https://api.github.com/repos/octo-org/octo-repo/subscribers", + "subscription_url": "https://api.github.com/repos/octo-org/octo-repo/subscription", + "commits_url": "https://api.github.com/repos/octo-org/octo-repo/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/octo-org/octo-repo/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/octo-org/octo-repo/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/octo-org/octo-repo/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/octo-org/octo-repo/contents/{+path}", + "compare_url": "https://api.github.com/repos/octo-org/octo-repo/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/octo-org/octo-repo/merges", + "archive_url": "https://api.github.com/repos/octo-org/octo-repo/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/octo-org/octo-repo/downloads", + "issues_url": "https://api.github.com/repos/octo-org/octo-repo/issues{/number}", + "pulls_url": "https://api.github.com/repos/octo-org/octo-repo/pulls{/number}", + "milestones_url": "https://api.github.com/repos/octo-org/octo-repo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octo-org/octo-repo/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/octo-org/octo-repo/labels{/name}", + "releases_url": "https://api.github.com/repos/octo-org/octo-repo/releases{/id}", + "deployments_url": "https://api.github.com/repos/octo-org/octo-repo/deployments" + } + } + ] + } + }, + "workflow-run": { + "value": { + "id": 30433642, + "name": "Build", + "node_id": "MDEyOldvcmtmbG93IFJ1bjI2OTI4OQ==", + "head_branch": "master", + "head_sha": "acb5820ced9479c074f688cc328bf03f341a511d", + "run_number": 562, + "event": "push", + "status": "queued", + "conclusion": null, + "workflow_id": 159038, + "url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642", + "html_url": "https://github.com/octo-org/octo-repo/actions/runs/30433642", + "pull_requests": [], + "created_at": "2020-01-22T19:33:08Z", + "updated_at": "2020-01-22T19:33:08Z", + "jobs_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/jobs", + "logs_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/logs", + "check_suite_url": "https://api.github.com/repos/octo-org/octo-repo/check-suites/414944374", + "artifacts_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/artifacts", + "cancel_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/cancel", + "rerun_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/rerun", + "workflow_url": "https://api.github.com/repos/octo-org/octo-repo/actions/workflows/159038", + "head_commit": { + "id": "acb5820ced9479c074f688cc328bf03f341a511d", + "tree_id": "d23f6eedb1e1b9610bbc754ddb5197bfe7271223", + "message": "Create linter.yaml", + "timestamp": "2020-01-22T19:33:05Z", + "author": { "name": "Octo Cat", "email": "octocat@github.com" }, + "committer": { "name": "GitHub", "email": "noreply@github.com" } + }, + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "head_repository": { + "id": 217723378, + "node_id": "MDEwOlJlcG9zaXRvcnkyMTc3MjMzNzg=", + "name": "octo-repo", + "full_name": "octo-org/octo-repo", + "private": true, + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/octo-org/octo-repo", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/octo-org/octo-repo", + "forks_url": "https://api.github.com/repos/octo-org/octo-repo/forks", + "keys_url": "https://api.github.com/repos/octo-org/octo-repo/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/octo-org/octo-repo/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/octo-org/octo-repo/teams", + "hooks_url": "https://api.github.com/repos/octo-org/octo-repo/hooks", + "issue_events_url": "https://api.github.com/repos/octo-org/octo-repo/issues/events{/number}", + "events_url": "https://api.github.com/repos/octo-org/octo-repo/events", + "assignees_url": "https://api.github.com/repos/octo-org/octo-repo/assignees{/user}", + "branches_url": "https://api.github.com/repos/octo-org/octo-repo/branches{/branch}", + "tags_url": "https://api.github.com/repos/octo-org/octo-repo/tags", + "blobs_url": "https://api.github.com/repos/octo-org/octo-repo/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/octo-org/octo-repo/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/octo-org/octo-repo/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/octo-org/octo-repo/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/octo-org/octo-repo/statuses/{sha}", + "languages_url": "https://api.github.com/repos/octo-org/octo-repo/languages", + "stargazers_url": "https://api.github.com/repos/octo-org/octo-repo/stargazers", + "contributors_url": "https://api.github.com/repos/octo-org/octo-repo/contributors", + "subscribers_url": "https://api.github.com/repos/octo-org/octo-repo/subscribers", + "subscription_url": "https://api.github.com/repos/octo-org/octo-repo/subscription", + "commits_url": "https://api.github.com/repos/octo-org/octo-repo/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/octo-org/octo-repo/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/octo-org/octo-repo/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/octo-org/octo-repo/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/octo-org/octo-repo/contents/{+path}", + "compare_url": "https://api.github.com/repos/octo-org/octo-repo/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/octo-org/octo-repo/merges", + "archive_url": "https://api.github.com/repos/octo-org/octo-repo/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/octo-org/octo-repo/downloads", + "issues_url": "https://api.github.com/repos/octo-org/octo-repo/issues{/number}", + "pulls_url": "https://api.github.com/repos/octo-org/octo-repo/pulls{/number}", + "milestones_url": "https://api.github.com/repos/octo-org/octo-repo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octo-org/octo-repo/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/octo-org/octo-repo/labels{/name}", + "releases_url": "https://api.github.com/repos/octo-org/octo-repo/releases{/id}", + "deployments_url": "https://api.github.com/repos/octo-org/octo-repo/deployments" + } + } + }, + "job-paginated": { + "value": { + "total_count": 1, + "jobs": [ + { + "id": 399444496, + "run_id": 29679449, + "run_url": "https://api.github.com/repos/octo-org/octo-repo/actions/runs/29679449", + "node_id": "MDEyOldvcmtmbG93IEpvYjM5OTQ0NDQ5Ng==", + "head_sha": "f83a356604ae3c5d03e1b46ef4d1ca77d64a90b0", + "url": "https://api.github.com/repos/octo-org/octo-repo/actions/jobs/399444496", + "html_url": "https://github.com/octo-org/octo-repo/runs/399444496", + "status": "completed", + "conclusion": "success", + "started_at": "2020-01-20T17:42:40Z", + "completed_at": "2020-01-20T17:44:39Z", + "name": "build", + "steps": [ + { + "name": "Set up job", + "status": "completed", + "conclusion": "success", + "number": 1, + "started_at": "2020-01-20T09:42:40.000-08:00", + "completed_at": "2020-01-20T09:42:41.000-08:00" + }, + { + "name": "Run actions/checkout@v2", + "status": "completed", + "conclusion": "success", + "number": 2, + "started_at": "2020-01-20T09:42:41.000-08:00", + "completed_at": "2020-01-20T09:42:45.000-08:00" + }, + { + "name": "Set up Ruby", + "status": "completed", + "conclusion": "success", + "number": 3, + "started_at": "2020-01-20T09:42:45.000-08:00", + "completed_at": "2020-01-20T09:42:45.000-08:00" + }, + { + "name": "Run actions/cache@v2", + "status": "completed", + "conclusion": "success", + "number": 4, + "started_at": "2020-01-20T09:42:45.000-08:00", + "completed_at": "2020-01-20T09:42:48.000-08:00" + }, + { + "name": "Install Bundler", + "status": "completed", + "conclusion": "success", + "number": 5, + "started_at": "2020-01-20T09:42:48.000-08:00", + "completed_at": "2020-01-20T09:42:52.000-08:00" + }, + { + "name": "Install Gems", + "status": "completed", + "conclusion": "success", + "number": 6, + "started_at": "2020-01-20T09:42:52.000-08:00", + "completed_at": "2020-01-20T09:42:53.000-08:00" + }, + { + "name": "Run Tests", + "status": "completed", + "conclusion": "success", + "number": 7, + "started_at": "2020-01-20T09:42:53.000-08:00", + "completed_at": "2020-01-20T09:42:59.000-08:00" + }, + { + "name": "Deploy to Heroku", + "status": "completed", + "conclusion": "success", + "number": 8, + "started_at": "2020-01-20T09:42:59.000-08:00", + "completed_at": "2020-01-20T09:44:39.000-08:00" + }, + { + "name": "Post actions/cache@v2", + "status": "completed", + "conclusion": "success", + "number": 16, + "started_at": "2020-01-20T09:44:39.000-08:00", + "completed_at": "2020-01-20T09:44:39.000-08:00" + }, + { + "name": "Complete job", + "status": "completed", + "conclusion": "success", + "number": 17, + "started_at": "2020-01-20T09:44:39.000-08:00", + "completed_at": "2020-01-20T09:44:39.000-08:00" + } + ], + "check_run_url": "https://api.github.com/repos/octo-org/octo-repo/check-runs/399444496" + } + ] + } + }, + "workflow-run-usage": { + "value": { + "billable": { + "UBUNTU": { "total_ms": 180000, "jobs": 1 }, + "MACOS": { "total_ms": 240000, "jobs": 4 }, + "WINDOWS": { "total_ms": 300000, "jobs": 2 } + }, + "run_duration_ms": 500000 + } + }, + "actions-secret-paginated": { + "value": { + "total_count": 2, + "secrets": [ + { + "name": "GH_TOKEN", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z" + }, + { + "name": "GIST_ID", + "created_at": "2020-01-10T10:59:22Z", + "updated_at": "2020-01-11T11:59:22Z" + } + ] + } + }, + "actions-secret": { + "value": { + "name": "GH_TOKEN", + "created_at": "2019-08-10T14:59:22Z", + "updated_at": "2020-01-10T14:59:22Z" + } + }, + "workflow-paginated": { + "value": { + "total_count": 2, + "workflows": [ + { + "id": 161335, + "node_id": "MDg6V29ya2Zsb3cxNjEzMzU=", + "name": "CI", + "path": ".github/workflows/blank.yaml", + "state": "active", + "created_at": "2020-01-08T23:48:37.000-08:00", + "updated_at": "2020-01-08T23:50:21.000-08:00", + "url": "https://api.github.com/repos/octo-org/octo-repo/actions/workflows/161335", + "html_url": "https://github.com/octo-org/octo-repo/blob/master/.github/workflows/161335", + "badge_url": "https://github.com/octo-org/octo-repo/workflows/CI/badge.svg" + }, + { + "id": 269289, + "node_id": "MDE4OldvcmtmbG93IFNlY29uZGFyeTI2OTI4OQ==", + "name": "Linter", + "path": ".github/workflows/linter.yaml", + "state": "active", + "created_at": "2020-01-08T23:48:37.000-08:00", + "updated_at": "2020-01-08T23:50:21.000-08:00", + "url": "https://api.github.com/repos/octo-org/octo-repo/actions/workflows/269289", + "html_url": "https://github.com/octo-org/octo-repo/blob/master/.github/workflows/269289", + "badge_url": "https://github.com/octo-org/octo-repo/workflows/Linter/badge.svg" + } + ] + } + }, + "workflow": { + "value": { + "id": 161335, + "node_id": "MDg6V29ya2Zsb3cxNjEzMzU=", + "name": "CI", + "path": ".github/workflows/blank.yaml", + "state": "active", + "created_at": "2020-01-08T23:48:37.000-08:00", + "updated_at": "2020-01-08T23:50:21.000-08:00", + "url": "https://api.github.com/repos/octo-org/octo-repo/actions/workflows/161335", + "html_url": "https://github.com/octo-org/octo-repo/blob/master/.github/workflows/161335", + "badge_url": "https://github.com/octo-org/octo-repo/workflows/CI/badge.svg" + } + }, + "workflow-usage": { + "value": { + "billable": { + "UBUNTU": { "total_ms": 180000 }, + "MACOS": { "total_ms": 240000 }, + "WINDOWS": { "total_ms": 300000 } + } + } + }, + "short-branch-items": { + "value": [ + { + "name": "master", + "commit": { + "sha": "c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc", + "url": "https://api.github.com/repos/octocat/Hello-World/commits/c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc" + }, + "protected": true + } + ] + }, + "short-branch-with-protection-items": { + "value": [ + { + "name": "master", + "commit": { + "sha": "c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc", + "url": "https://api.github.com/repos/octocat/Hello-World/commits/c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc" + }, + "protected": true, + "protection": { + "enabled": true, + "required_status_checks": { + "enforcement_level": "non_admins", + "contexts": ["ci-test", "linter"] + } + }, + "protection_url": "https://api.github.com/repos/octocat/hello-world/branches/master/protection" + } + ] + }, + "branch-with-protection": { + "value": { + "name": "master", + "commit": { + "sha": "7fd1a60b01f91b314f59955a4e4d4e80d8edf11d", + "node_id": "MDY6Q29tbWl0N2ZkMWE2MGIwMWY5MWIzMTRmNTk5NTVhNGU0ZDRlODBkOGVkZjExZA==", + "commit": { + "author": { + "name": "The Octocat", + "date": "2012-03-06T15:06:50-08:00", + "email": "octocat@nowhere.com" + }, + "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/7fd1a60b01f91b314f59955a4e4d4e80d8edf11d", + "message": "Merge pull request #6 from Spaceghost/patch-1\n\nNew line at end of file.", + "tree": { + "sha": "b4eecafa9be2f2006ce1b709d6857b07069b4608", + "url": "https://api.github.com/repos/octocat/Hello-World/git/trees/b4eecafa9be2f2006ce1b709d6857b07069b4608" + }, + "committer": { + "name": "The Octocat", + "date": "2012-03-06T15:06:50-08:00", + "email": "octocat@nowhere.com" + }, + "verification": { + "verified": false, + "reason": "unsigned", + "signature": null, + "payload": null + }, + "comment_count": 0 + }, + "author": { + "gravatar_id": "", + "avatar_url": "https://secure.gravatar.com/avatar/7ad39074b0584bc555d0417ae3e7d974?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", + "url": "https://api.github.com/users/octocat", + "id": 583231, + "login": "octocat", + "node_id": "MDQ6VXNlcjE=", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "parents": [ + { + "sha": "553c2077f0edc3d5dc5d17262f6aa498e69d6f8e", + "url": "https://api.github.com/repos/octocat/Hello-World/commits/553c2077f0edc3d5dc5d17262f6aa498e69d6f8e" + }, + { + "sha": "762941318ee16e59dabbacb1b4049eec22f0d303", + "url": "https://api.github.com/repos/octocat/Hello-World/commits/762941318ee16e59dabbacb1b4049eec22f0d303" + } + ], + "url": "https://api.github.com/repos/octocat/Hello-World/commits/7fd1a60b01f91b314f59955a4e4d4e80d8edf11d", + "committer": { + "gravatar_id": "", + "avatar_url": "https://secure.gravatar.com/avatar/7ad39074b0584bc555d0417ae3e7d974?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", + "url": "https://api.github.com/users/octocat", + "id": 583231, + "login": "octocat", + "node_id": "MDQ6VXNlcjE=", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "html_url": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments" + }, + "_links": { + "html": "https://github.com/octocat/Hello-World/tree/master", + "self": "https://api.github.com/repos/octocat/Hello-World/branches/master" + }, + "protected": true, + "protection": { + "enabled": true, + "required_status_checks": { + "enforcement_level": "non_admins", + "contexts": ["ci-test", "linter"] + } + }, + "protection_url": "https://api.github.com/repos/octocat/hello-world/branches/master/protection" + } + }, + "branch-protection": { + "value": { + "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection", + "enabled": true, + "required_status_checks": { + "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks", + "contexts": ["continuous-integration/travis-ci"], + "contexts_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks/contexts", + "enforcement_level": "non_admins" + }, + "enforce_admins": { + "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/enforce_admins", + "enabled": true + }, + "required_pull_request_reviews": { + "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_pull_request_reviews", + "dismissal_restrictions": { + "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions", + "users_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions/users", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions/teams", + "users": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "teams": [ + { + "id": 1, + "node_id": "MDQ6VGVhbTE=", + "url": "https://api.github.com/teams/1", + "html_url": "https://github.com/orgs/github/teams/justice-league", + "name": "Justice League", + "slug": "justice-league", + "description": "A great team.", + "privacy": "closed", + "permission": "admin", + "members_url": "https://api.github.com/teams/1/members{/member}", + "repositories_url": "https://api.github.com/teams/1/repos", + "parent": null + } + ] + }, + "dismiss_stale_reviews": true, + "require_code_owner_reviews": true, + "required_approving_review_count": 2 + }, + "restrictions": { + "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions", + "users_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/users", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/teams", + "apps_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/teams", + "users": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "teams": [ + { + "id": 1, + "node_id": "MDQ6VGVhbTE=", + "url": "https://api.github.com/teams/1", + "html_url": "https://github.com/orgs/github/teams/justice-league", + "name": "Justice League", + "slug": "justice-league", + "description": "A great team.", + "privacy": "closed", + "permission": "admin", + "members_url": "https://api.github.com/teams/1/members{/member}", + "repositories_url": "https://api.github.com/teams/1/repos", + "parent": null + } + ], + "apps": [ + { + "id": 1, + "slug": "octoapp", + "node_id": "MDExOkludGVncmF0aW9uMQ==", + "owner": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization" + }, + "name": "Octocat App", + "description": "", + "external_url": "https://example.com", + "html_url": "https://github.com/apps/octoapp", + "created_at": "2017-07-08T16:18:44-04:00", + "updated_at": "2017-07-08T16:18:44-04:00", + "permissions": { + "metadata": "read", + "contents": "read", + "issues": "write", + "single_file": "write" + }, + "events": ["push", "pull_request"] + } + ] + }, + "required_linear_history": { "enabled": true }, + "allow_force_pushes": { "enabled": true }, + "allow_deletions": { "enabled": true } + } + }, + "protected-branch-admin-enforced-2": { + "value": { + "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/enforce_admins", + "enabled": true + } + }, + "protected-branch-pull-request-review": { + "value": { + "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_pull_request_reviews", + "dismissal_restrictions": { + "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions", + "users_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions/users", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions/teams", + "users": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "teams": [ + { + "id": 1, + "node_id": "MDQ6VGVhbTE=", + "url": "https://api.github.com/teams/1", + "html_url": "https://github.com/orgs/github/teams/justice-league", + "name": "Justice League", + "slug": "justice-league", + "description": "A great team.", + "privacy": "closed", + "permission": "admin", + "members_url": "https://api.github.com/teams/1/members{/member}", + "repositories_url": "https://api.github.com/teams/1/repos", + "parent": null + } + ] + }, + "dismiss_stale_reviews": true, + "require_code_owner_reviews": true, + "required_approving_review_count": 2 + } + }, + "protected-branch-admin-enforced": { + "value": { + "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures", + "enabled": true + } + }, + "status-check-policy": { + "value": { + "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks", + "strict": true, + "contexts": ["continuous-integration/travis-ci"], + "contexts_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks/contexts" + } + }, + "branch-restriction-policy": { + "value": { + "url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions", + "users_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/users", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/teams", + "apps_url": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/restrictions/teams", + "users": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "teams": [ + { + "id": 1, + "node_id": "MDQ6VGVhbTE=", + "url": "https://api.github.com/teams/1", + "html_url": "https://github.com/orgs/github/teams/justice-league", + "name": "Justice League", + "slug": "justice-league", + "description": "A great team.", + "privacy": "closed", + "permission": "admin", + "members_url": "https://api.github.com/teams/1/members{/member}", + "repositories_url": "https://api.github.com/teams/1/repos", + "parent": null + } + ], + "apps": [ + { + "id": 1, + "slug": "octoapp", + "node_id": "MDExOkludGVncmF0aW9uMQ==", + "owner": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization" + }, + "name": "Octocat App", + "description": "", + "external_url": "https://example.com", + "html_url": "https://github.com/apps/octoapp", + "created_at": "2017-07-08T16:18:44-04:00", + "updated_at": "2017-07-08T16:18:44-04:00", + "permissions": { + "metadata": "read", + "contents": "read", + "issues": "write", + "single_file": "write" + }, + "events": ["push", "pull_request"] + } + ] + } + }, + "integration-items": { + "value": [ + { + "id": 1, + "slug": "octoapp", + "node_id": "MDExOkludGVncmF0aW9uMQ==", + "owner": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "name": "Octocat App", + "description": "", + "external_url": "https://example.com", + "html_url": "https://github.com/apps/octoapp", + "created_at": "2017-07-08T16:18:44-04:00", + "updated_at": "2017-07-08T16:18:44-04:00", + "permissions": { + "metadata": "read", + "contents": "read", + "issues": "write", + "single_file": "write" + }, + "events": ["push", "pull_request"] + } + ] + }, + "check-run-example-of-in-progress-conclusion": { + "summary": "Example of in_progress conclusion", + "value": { + "id": 4, + "head_sha": "ce587453ced02b1526dfb4cb910479d431683101", + "node_id": "MDg6Q2hlY2tSdW40", + "external_id": "42", + "url": "https://api.github.com/repos/github/hello-world/check-runs/4", + "html_url": "https://github.com/github/hello-world/runs/4", + "details_url": "https://example.com", + "status": "in_progress", + "conclusion": null, + "started_at": "2018-05-04T01:14:52Z", + "completed_at": null, + "output": { + "title": "Mighty Readme Report", + "summary": "", + "text": "", + "annotations_count": 1, + "annotations_url": "https://api.github.com/repos/github/hello-world/check-runs/4/annotations" + }, + "name": "mighty_readme", + "check_suite": { "id": 5 }, + "app": { + "id": 1, + "slug": "octoapp", + "node_id": "MDExOkludGVncmF0aW9uMQ==", + "owner": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "name": "Octocat App", + "description": "", + "external_url": "https://example.com", + "html_url": "https://github.com/apps/octoapp", + "created_at": "2017-07-08T16:18:44-04:00", + "updated_at": "2017-07-08T16:18:44-04:00", + "permissions": { + "metadata": "read", + "contents": "read", + "issues": "write", + "single_file": "write" + }, + "events": ["push", "pull_request"] + }, + "pull_requests": [ + { + "url": "https://api.github.com/repos/github/hello-world/pulls/1", + "id": 1934, + "number": 3956, + "head": { + "ref": "say-hello", + "sha": "3dca65fa3e8d4b3da3f3d056c59aee1c50f41390", + "repo": { + "id": 526, + "url": "https://api.github.com/repos/github/hello-world", + "name": "hello-world" + } + }, + "base": { + "ref": "master", + "sha": "e7fdf7640066d71ad16a86fbcbb9c6a10a18af4f", + "repo": { + "id": 526, + "url": "https://api.github.com/repos/github/hello-world", + "name": "hello-world" + } + } + } + ] + } + }, + "check-run-example-of-completed-conclusion": { + "summary": "Example of completed conclusion", + "value": { + "id": 4, + "head_sha": "ce587453ced02b1526dfb4cb910479d431683101", + "node_id": "MDg6Q2hlY2tSdW40", + "external_id": "", + "url": "https://api.github.com/repos/github/hello-world/check-runs/4", + "html_url": "https://github.com/github/hello-world/runs/4", + "details_url": "https://example.com", + "status": "completed", + "conclusion": "neutral", + "started_at": "2018-05-04T01:14:52Z", + "completed_at": "2018-05-04T01:14:52Z", + "output": { + "title": "Mighty Readme report", + "summary": "There are 0 failures, 2 warnings, and 1 notice.", + "text": "You may have some misspelled words on lines 2 and 4. You also may want to add a section in your README about how to install your app.", + "annotations_count": 2, + "annotations_url": "https://api.github.com/repos/github/hello-world/check-runs/4/annotations" + }, + "name": "mighty_readme", + "check_suite": { "id": 5 }, + "app": { + "id": 1, + "slug": "octoapp", + "node_id": "MDExOkludGVncmF0aW9uMQ==", + "owner": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "name": "Octocat App", + "description": "", + "external_url": "https://example.com", + "html_url": "https://github.com/apps/octoapp", + "created_at": "2017-07-08T16:18:44-04:00", + "updated_at": "2017-07-08T16:18:44-04:00", + "permissions": { + "metadata": "read", + "contents": "read", + "issues": "write", + "single_file": "write" + }, + "events": ["push", "pull_request"] + }, + "pull_requests": [ + { + "url": "https://api.github.com/repos/github/hello-world/pulls/1", + "id": 1934, + "number": 3956, + "head": { + "ref": "say-hello", + "sha": "3dca65fa3e8d4b3da3f3d056c59aee1c50f41390", + "repo": { + "id": 526, + "url": "https://api.github.com/repos/github/hello-world", + "name": "hello-world" + } + }, + "base": { + "ref": "master", + "sha": "e7fdf7640066d71ad16a86fbcbb9c6a10a18af4f", + "repo": { + "id": 526, + "url": "https://api.github.com/repos/github/hello-world", + "name": "hello-world" + } + } + } + ] + } + }, + "check-run": { + "value": { + "id": 4, + "head_sha": "ce587453ced02b1526dfb4cb910479d431683101", + "node_id": "MDg6Q2hlY2tSdW40", + "external_id": "", + "url": "https://api.github.com/repos/github/hello-world/check-runs/4", + "html_url": "https://github.com/github/hello-world/runs/4", + "details_url": "https://example.com", + "status": "completed", + "conclusion": "neutral", + "started_at": "2018-05-04T01:14:52Z", + "completed_at": "2018-05-04T01:14:52Z", + "output": { + "title": "Mighty Readme report", + "summary": "There are 0 failures, 2 warnings, and 1 notice.", + "text": "You may have some misspelled words on lines 2 and 4. You also may want to add a section in your README about how to install your app.", + "annotations_count": 2, + "annotations_url": "https://api.github.com/repos/github/hello-world/check-runs/4/annotations" + }, + "name": "mighty_readme", + "check_suite": { "id": 5 }, + "app": { + "id": 1, + "slug": "octoapp", + "node_id": "MDExOkludGVncmF0aW9uMQ==", + "owner": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "name": "Octocat App", + "description": "", + "external_url": "https://example.com", + "html_url": "https://github.com/apps/octoapp", + "created_at": "2017-07-08T16:18:44-04:00", + "updated_at": "2017-07-08T16:18:44-04:00", + "permissions": { + "metadata": "read", + "contents": "read", + "issues": "write", + "single_file": "write" + }, + "events": ["push", "pull_request"] + }, + "pull_requests": [ + { + "url": "https://api.github.com/repos/github/hello-world/pulls/1", + "id": 1934, + "number": 3956, + "head": { + "ref": "say-hello", + "sha": "3dca65fa3e8d4b3da3f3d056c59aee1c50f41390", + "repo": { + "id": 526, + "url": "https://api.github.com/repos/github/hello-world", + "name": "hello-world" + } + }, + "base": { + "ref": "master", + "sha": "e7fdf7640066d71ad16a86fbcbb9c6a10a18af4f", + "repo": { + "id": 526, + "url": "https://api.github.com/repos/github/hello-world", + "name": "hello-world" + } + } + } + ] + } + }, + "check-annotation-items": { + "value": [ + { + "path": "README.md", + "start_line": 2, + "end_line": 2, + "start_column": 5, + "end_column": 10, + "annotation_level": "warning", + "title": "Spell Checker", + "message": "Check your spelling for 'banaas'.", + "raw_details": "Do you mean 'bananas' or 'banana'?", + "blob_href": "https://api.github.com/repos/github/rest-api-description/git/blobs/abc" + } + ] + }, + "check-suite": { + "value": { + "id": 5, + "node_id": "MDEwOkNoZWNrU3VpdGU1", + "head_branch": "master", + "head_sha": "d6fde92930d4715a2b49857d24b940956b26d2d3", + "status": "completed", + "conclusion": "neutral", + "url": "https://api.github.com/repos/github/hello-world/check-suites/5", + "before": "146e867f55c26428e5f9fade55a9bbf5e95a7912", + "after": "d6fde92930d4715a2b49857d24b940956b26d2d3", + "pull_requests": [], + "created_at": "2017-07-08T16:18:44-04:00", + "updated_at": "2017-07-08T16:18:44-04:00", + "app": { + "id": 1, + "slug": "octoapp", + "node_id": "MDExOkludGVncmF0aW9uMQ==", + "owner": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "name": "Octocat App", + "description": "", + "external_url": "https://example.com", + "html_url": "https://github.com/apps/octoapp", + "created_at": "2017-07-08T16:18:44-04:00", + "updated_at": "2017-07-08T16:18:44-04:00", + "permissions": { + "metadata": "read", + "contents": "read", + "issues": "write", + "single_file": "write" + }, + "events": ["push", "pull_request"] + }, + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "template_repository": "octocat/template-repo", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "delete_branch_on_merge": true, + "subscribers_count": 42, + "network_count": 0 + }, + "head_commit": { + "id": "7fd1a60b01f91b314f59955a4e4d4e80d8edf11d", + "tree_id": "7fd1a60b01f91b314f59955a4e4d4e80d8edf11d", + "message": "Merge pull request #6 from Spaceghost/patch-1\n\nNew line at end of file.", + "timestamp": "2016-10-10T00:00:00Z", + "author": { "name": "The Octocat", "email": "octocat@nowhere.com" }, + "committer": { + "name": "The Octocat", + "email": "octocat@nowhere.com" + } + }, + "latest_check_runs_count": 1, + "check_runs_url": "https://api.github.com/repos/octocat/Hello-World/check-suites/5/check-runs" + } + }, + "check-suite-preference": { + "value": { + "preferences": { + "auto_trigger_checks": [ + { "app_id": 2, "setting": true }, + { "app_id": 4, "setting": false } + ] + }, + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "http://choosealicense.com/licenses/mit/" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + } + }, + "check-run-paginated": { + "value": { + "total_count": 1, + "check_runs": [ + { + "id": 4, + "head_sha": "ce587453ced02b1526dfb4cb910479d431683101", + "node_id": "MDg6Q2hlY2tSdW40", + "external_id": "", + "url": "https://api.github.com/repos/github/hello-world/check-runs/4", + "html_url": "https://github.com/github/hello-world/runs/4", + "details_url": "https://example.com", + "status": "completed", + "conclusion": "neutral", + "started_at": "2018-05-04T01:14:52Z", + "completed_at": "2018-05-04T01:14:52Z", + "output": { + "title": "Mighty Readme report", + "summary": "There are 0 failures, 2 warnings, and 1 notice.", + "text": "You may have some misspelled words on lines 2 and 4. You also may want to add a section in your README about how to install your app.", + "annotations_count": 2, + "annotations_url": "https://api.github.com/repos/github/hello-world/check-runs/4/annotations" + }, + "name": "mighty_readme", + "check_suite": { "id": 5 }, + "app": { + "id": 1, + "slug": "octoapp", + "node_id": "MDExOkludGVncmF0aW9uMQ==", + "owner": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "name": "Octocat App", + "description": "", + "external_url": "https://example.com", + "html_url": "https://github.com/apps/octoapp", + "created_at": "2017-07-08T16:18:44-04:00", + "updated_at": "2017-07-08T16:18:44-04:00", + "permissions": { + "metadata": "read", + "contents": "read", + "issues": "write", + "single_file": "write" + }, + "events": ["push", "pull_request"] + }, + "pull_requests": [ + { + "url": "https://api.github.com/repos/github/hello-world/pulls/1", + "id": 1934, + "number": 3956, + "head": { + "ref": "say-hello", + "sha": "3dca65fa3e8d4b3da3f3d056c59aee1c50f41390", + "repo": { + "id": 526, + "url": "https://api.github.com/repos/github/hello-world", + "name": "hello-world" + } + }, + "base": { + "ref": "master", + "sha": "e7fdf7640066d71ad16a86fbcbb9c6a10a18af4f", + "repo": { + "id": 526, + "url": "https://api.github.com/repos/github/hello-world", + "name": "hello-world" + } + } + } + ] + } + ] + } + }, + "code-scanning-alert-code-scanning-alert-items": { + "value": [ + { + "number": 4, + "created_at": "2020-02-13T12:29:18Z", + "url": "https://api.github.com/repos/github/hello-world/code-scanning/alerts/4", + "html_url": "https://github.com/github/hello-world/code-scanning/4", + "state": "open", + "dismissed_by": null, + "dismissed_at": null, + "dismissed_reason": null, + "rule": { + "id": "js/zipslip", + "severity": "error", + "description": "Arbitrary file write during zip extraction" + }, + "tool": { "name": "CodeQL command-line toolchain", "version": null } + }, + { + "number": 3, + "created_at": "2020-02-13T12:29:18Z", + "url": "https://api.github.com/repos/github/hello-world/code-scanning/alerts/3", + "html_url": "https://github.com/github/hello-world/code-scanning/3", + "state": "dismissed", + "dismissed_by": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "dismissed_at": "2020-02-14T12:29:18Z", + "dismissed_reason": "false positive", + "rule": { + "id": "js/zipslip", + "severity": "error", + "description": "Arbitrary file write during zip extraction" + }, + "tool": { "name": "CodeQL command-line toolchain", "version": null } + } + ] + }, + "code-scanning-alert-code-scanning-alert": { + "value": { + "number": 42, + "created_at": "2020-06-19T11:21:34Z", + "url": "https://api.github.com/repos/github/hello-world/code-scanning/alerts/42", + "html_url": "https://github.com/github/hello-world/code-scanning/42", + "instances": [ + { + "ref": "refs/heads/main", + "analysis_key": ".github/workflows/codeql-analysis.yml:CodeQL-Build", + "environment": "", + "state": "fixed" + }, + { + "ref": "refs/pull/3740/head", + "analysis_key": ".github/workflows/codeql-analysis.yml:CodeQL-Build", + "environment": "", + "state": "dismissed" + } + ], + "state": "dismissed", + "dismissed_by": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "dismissed_at": "2020-02-14T12:29:18Z", + "dismissed_reason": "false positive", + "rule": { + "id": "js/polynomial-redos", + "severity": "warning", + "description": "Polynomial regular expression used on uncontrolled data" + }, + "tool": { "name": "CodeQL command-line toolchain", "version": null } + } + }, + "code-scanning-alert-code-scanning-alert-dismissed": { + "value": { + "number": 42, + "created_at": "2020-08-25T21:28:36Z", + "url": "https://api.github.com/repos/github/hello-world/code-scanning/alerts/42", + "html_url": "https://github.com/github/hello-world/code-scanning/42", + "instances": [ + { + "ref": "refs/heads/codeql-analysis-yml", + "analysis_key": ".github/workflows/codeql-analysis.yml:CodeQL-Build", + "environment": "", + "state": "dismissed" + }, + { + "ref": "refs/pull/3740/head", + "analysis_key": ".github/workflows/codeql-analysis.yml:CodeQL-Build", + "environment": "", + "state": "dismissed" + } + ], + "state": "dismissed", + "dismissed_by": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "dismissed_at": "2020-09-02T22:34:56Z", + "dismissed_reason": "false positive", + "rule": { + "id": "js/polynomial-redos", + "severity": "warning", + "description": "Polynomial regular expression used on uncontrolled data" + }, + "tool": { "name": "CodeQL command-line toolchain", "version": null } + } + }, + "code-scanning-analysis-code-scanning-analysis-items": { + "value": [ + { + "ref": "refs/heads/master", + "commit_sha": "d99612c3e1f2970085cfbaeadf8f010ef69bad83", + "analysis_key": ".github/workflows/codeql-analysis.yml:analyze", + "tool_name": "CodeQL command-line toolchain", + "environment": "{}", + "error": "", + "created_at": "2020-08-27T15:05:21Z" + }, + { + "ref": "refs/heads/my-branch", + "commit_sha": "c8cff6510d4d084fb1b4aa13b64b97ca12b07321", + "analysis_key": ".github/workflows/shiftleft.yml:build", + "tool_name": "Python Security Analysis", + "environment": "{}", + "error": "", + "created_at": "2020-08-31T22:46:44Z" + } + ] + }, + "collaborator-items": { + "value": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false, + "permissions": { "pull": true, "push": true, "admin": false } + } + ] + }, + "repository-invitation-response-when-a-new-invitation-is-created": { + "value": { + "id": 1, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "invitee": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "inviter": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "permissions": "write", + "created_at": "2016-06-13T14:52:50-05:00", + "url": "https://api.github.com/user/repository_invitations/1296269", + "html_url": "https://github.com/octocat/Hello-World/invitations" + } + }, + "repository-collaborator-permission-response-if-user-has-admin-permissions": { + "value": { + "permission": "admin", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + }, + "commit-comment-items": { + "value": [ + { + "html_url": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e#commitcomment-1", + "url": "https://api.github.com/repos/octocat/Hello-World/comments/1", + "id": 1, + "node_id": "MDEzOkNvbW1pdENvbW1lbnQx", + "body": "Great stuff", + "path": "file1.txt", + "position": 4, + "line": 14, + "commit_id": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2011-04-14T16:00:49Z", + "updated_at": "2011-04-14T16:00:49Z", + "author_association": "collaborator" + } + ] + }, + "commit-comment": { + "value": { + "html_url": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e#commitcomment-1", + "url": "https://api.github.com/repos/octocat/Hello-World/comments/1", + "id": 1, + "node_id": "MDEzOkNvbW1pdENvbW1lbnQx", + "body": "Great stuff", + "path": "file1.txt", + "position": 4, + "line": 14, + "commit_id": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "author_association": "collaborator", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2011-04-14T16:00:49Z", + "updated_at": "2011-04-14T16:00:49Z" + } + }, + "commit-comment-2": { + "value": { + "html_url": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e#commitcomment-1", + "url": "https://api.github.com/repos/octocat/Hello-World/comments/1", + "id": 1, + "node_id": "MDEzOkNvbW1pdENvbW1lbnQx", + "body": "Nice change", + "path": "file1.txt", + "position": 4, + "line": 14, + "commit_id": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "author_association": "collaborator", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2011-04-14T16:00:49Z", + "updated_at": "2011-04-14T16:00:49Z" + } + }, + "commit-items": { + "value": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "node_id": "MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ==", + "html_url": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments", + "commit": { + "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "author": { + "name": "Monalisa Octocat", + "email": "support@github.com", + "date": "2011-04-14T16:00:49Z" + }, + "committer": { + "name": "Monalisa Octocat", + "email": "support@github.com", + "date": "2011-04-14T16:00:49Z" + }, + "message": "Fix all the bugs", + "tree": { + "url": "https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + }, + "comment_count": 0, + "verification": { + "verified": false, + "reason": "unsigned", + "signature": null, + "payload": null + } + }, + "author": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + } + ] + } + ] + }, + "branch-short-items": { + "value": [ + { + "name": "branch_5", + "commit": { + "sha": "c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc", + "url": "https://api.github.com/repos/octocat/Hello-World/commits/c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc" + }, + "protected": false + } + ] + }, + "pull-request-simple-items": { + "value": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347", + "id": 1, + "node_id": "MDExOlB1bGxSZXF1ZXN0MQ==", + "html_url": "https://github.com/octocat/Hello-World/pull/1347", + "diff_url": "https://github.com/octocat/Hello-World/pull/1347.diff", + "patch_url": "https://github.com/octocat/Hello-World/pull/1347.patch", + "issue_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits", + "review_comments_url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments", + "review_comment_url": "https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "number": 1347, + "state": "open", + "locked": true, + "title": "Amazing new feature", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "body": "Please pull these awesome changes in!", + "labels": [ + { + "id": 208045946, + "node_id": "MDU6TGFiZWwyMDgwNDU5NDY=", + "url": "https://api.github.com/repos/octocat/Hello-World/labels/bug", + "name": "bug", + "description": "Something isn't working", + "color": "f29513", + "default": true + } + ], + "milestone": { + "url": "https://api.github.com/repos/octocat/Hello-World/milestones/1", + "html_url": "https://github.com/octocat/Hello-World/milestones/v1.0", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/milestones/1/labels", + "id": 1002604, + "node_id": "MDk6TWlsZXN0b25lMTAwMjYwNA==", + "number": 1, + "state": "open", + "title": "v1.0", + "description": "Tracking milestone for version 1.0", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 4, + "closed_issues": 8, + "created_at": "2011-04-10T20:09:31Z", + "updated_at": "2014-03-03T18:58:10Z", + "closed_at": "2013-02-12T13:22:01Z", + "due_on": "2012-10-09T23:39:01Z" + }, + "active_lock_reason": "too heated", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:01:12Z", + "closed_at": "2011-01-26T19:01:12Z", + "merged_at": "2011-01-26T19:01:12Z", + "merge_commit_sha": "e5bd3914e2e596debea16f433f57875b5b90bcd6", + "assignee": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + { + "login": "hubot", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/hubot_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/hubot", + "html_url": "https://github.com/hubot", + "followers_url": "https://api.github.com/users/hubot/followers", + "following_url": "https://api.github.com/users/hubot/following{/other_user}", + "gists_url": "https://api.github.com/users/hubot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hubot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hubot/subscriptions", + "organizations_url": "https://api.github.com/users/hubot/orgs", + "repos_url": "https://api.github.com/users/hubot/repos", + "events_url": "https://api.github.com/users/hubot/events{/privacy}", + "received_events_url": "https://api.github.com/users/hubot/received_events", + "type": "User", + "site_admin": true + } + ], + "requested_reviewers": [ + { + "login": "other_user", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/other_user_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/other_user", + "html_url": "https://github.com/other_user", + "followers_url": "https://api.github.com/users/other_user/followers", + "following_url": "https://api.github.com/users/other_user/following{/other_user}", + "gists_url": "https://api.github.com/users/other_user/gists{/gist_id}", + "starred_url": "https://api.github.com/users/other_user/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/other_user/subscriptions", + "organizations_url": "https://api.github.com/users/other_user/orgs", + "repos_url": "https://api.github.com/users/other_user/repos", + "events_url": "https://api.github.com/users/other_user/events{/privacy}", + "received_events_url": "https://api.github.com/users/other_user/received_events", + "type": "User", + "site_admin": false + } + ], + "requested_teams": [ + { + "id": 1, + "node_id": "MDQ6VGVhbTE=", + "url": "https://api.github.com/teams/1", + "html_url": "https://github.com/orgs/github/teams/justice-league", + "name": "Justice League", + "slug": "justice-league", + "description": "A great team.", + "privacy": "closed", + "permission": "admin", + "members_url": "https://api.github.com/teams/1/members{/member}", + "repositories_url": "https://api.github.com/teams/1/repos" + } + ], + "head": { + "label": "octocat:new-topic", + "ref": "new-topic", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "repo": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + }, + "base": { + "label": "octocat:master", + "ref": "master", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "repo": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + }, + "_links": { + "self": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/1347" + }, + "html": { + "href": "https://github.com/octocat/Hello-World/pull/1347" + }, + "issue": { + "href": "https://api.github.com/repos/octocat/Hello-World/issues/1347" + }, + "comments": { + "href": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments" + }, + "review_comments": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments" + }, + "review_comment": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number}" + }, + "commits": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits" + }, + "statuses": { + "href": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e" + } + }, + "author_association": "OWNER", + "draft": false + } + ] + }, + "commit": { + "value": { + "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "node_id": "MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ==", + "html_url": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments", + "commit": { + "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "author": { + "name": "Monalisa Octocat", + "email": "mona@github.com", + "date": "2011-04-14T16:00:49Z" + }, + "committer": { + "name": "Monalisa Octocat", + "email": "mona@github.com", + "date": "2011-04-14T16:00:49Z" + }, + "message": "Fix all the bugs", + "tree": { + "url": "https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + }, + "comment_count": 0, + "verification": { + "verified": false, + "reason": "unsigned", + "signature": null, + "payload": null + } + }, + "author": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + } + ], + "stats": { "additions": 104, "deletions": 4, "total": 108 }, + "files": [ + { + "filename": "file1.txt", + "additions": 10, + "deletions": 2, + "changes": 12, + "status": "modified", + "raw_url": "https://github.com/octocat/Hello-World/raw/7ca483543807a51b6079e54ac4cc392bc29ae284/file1.txt", + "blob_url": "https://github.com/octocat/Hello-World/blob/7ca483543807a51b6079e54ac4cc392bc29ae284/file1.txt", + "patch": "@@ -29,7 +29,7 @@\n....." + } + ] + } + }, + "check-suite-paginated": { + "value": { + "total_count": 1, + "check_suites": [ + { + "id": 5, + "node_id": "MDEwOkNoZWNrU3VpdGU1", + "head_branch": "master", + "head_sha": "d6fde92930d4715a2b49857d24b940956b26d2d3", + "status": "completed", + "conclusion": "neutral", + "url": "https://api.github.com/repos/github/hello-world/check-suites/5", + "before": "146e867f55c26428e5f9fade55a9bbf5e95a7912", + "after": "d6fde92930d4715a2b49857d24b940956b26d2d3", + "pull_requests": [], + "app": { + "id": 1, + "slug": "octoapp", + "node_id": "MDExOkludGVncmF0aW9uMQ==", + "owner": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "name": "Octocat App", + "description": "", + "external_url": "https://example.com", + "html_url": "https://github.com/apps/octoapp", + "created_at": "2017-07-08T16:18:44-04:00", + "updated_at": "2017-07-08T16:18:44-04:00", + "permissions": { + "metadata": "read", + "contents": "read", + "issues": "write", + "single_file": "write" + }, + "events": ["push", "pull_request"] + }, + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "delete_branch_on_merge": true, + "subscribers_count": 42, + "network_count": 0 + }, + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "head_commit": { + "id": "7fd1a60b01f91b314f59955a4e4d4e80d8edf11d", + "tree_id": "7fd1a60b01f91b314f59955a4e4d4e80d8edf11d", + "message": "Merge pull request #6 from Spaceghost/patch-1\n\nNew line at end of file.", + "timestamp": "2016-10-10T00:00:00Z", + "author": { + "name": "The Octocat", + "email": "octocat@nowhere.com" + }, + "committer": { + "name": "The Octocat", + "email": "octocat@nowhere.com" + } + }, + "latest_check_runs_count": 1, + "check_runs_url": "https://api.github.com/repos/octocat/Hello-World/check-suites/5/check-runs" + } + ] + } + }, + "combined-commit-status": { + "value": { + "state": "success", + "statuses": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "avatar_url": "https://github.com/images/error/hubot_happy.gif", + "id": 1, + "node_id": "MDY6U3RhdHVzMQ==", + "state": "success", + "description": "Build has completed successfully", + "target_url": "https://ci.example.com/1000/output", + "context": "continuous-integration/jenkins", + "created_at": "2012-07-20T01:19:13Z", + "updated_at": "2012-07-20T01:19:13Z" + }, + { + "url": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "avatar_url": "https://github.com/images/error/other_user_happy.gif", + "id": 2, + "node_id": "MDY6U3RhdHVzMg==", + "state": "success", + "description": "Testing has completed successfully", + "target_url": "https://ci.example.com/2000/output", + "context": "security/brakeman", + "created_at": "2012-08-20T01:19:13Z", + "updated_at": "2012-08-20T01:19:13Z" + } + ], + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "total_count": 2, + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "commit_url": "https://api.github.com/repos/octocat/Hello-World/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "url": "https://api.github.com/repos/octocat/Hello-World/6dcb09b5b57875f334f61aebed695e2e4193db5e/status" + } + }, + "status-items": { + "value": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "avatar_url": "https://github.com/images/error/hubot_happy.gif", + "id": 1, + "node_id": "MDY6U3RhdHVzMQ==", + "state": "success", + "description": "Build has completed successfully", + "target_url": "https://ci.example.com/1000/output", + "context": "continuous-integration/jenkins", + "created_at": "2012-07-20T01:19:13Z", + "updated_at": "2012-07-20T01:19:13Z", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + ] + }, + "code-of-conduct-2": { + "value": { + "key": "contributor_covenant", + "name": "Contributor Covenant", + "url": "https://github.com/LindseyB/cosee/blob/master/CODE_OF_CONDUCT.md", + "body": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment include:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response\nto any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address,\nposting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at lindseyb@github.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n", + "html_url": "https://github.com/LindseyB/cosee/blob/master/CODE_OF_CONDUCT.md" + } + }, + "community-profile": { + "value": { + "health_percentage": 100, + "description": "My first repository on GitHub!", + "documentation": null, + "files": { + "code_of_conduct": { + "name": "Contributor Covenant", + "key": "contributor_covenant", + "url": "https://api.github.com/codes_of_conduct/contributor_covenant", + "html_url": "https://github.com/octocat/Hello-World/blob/master/CODE_OF_CONDUCT.md" + }, + "contributing": { + "url": "https://api.github.com/repos/octocat/Hello-World/contents/CONTRIBUTING", + "html_url": "https://github.com/octocat/Hello-World/blob/master/CONTRIBUTING" + }, + "issue_template": { + "url": "https://api.github.com/repos/octocat/Hello-World/contents/ISSUE_TEMPLATE", + "html_url": "https://github.com/octocat/Hello-World/blob/master/ISSUE_TEMPLATE" + }, + "pull_request_template": { + "url": "https://api.github.com/repos/octocat/Hello-World/contents/PULL_REQUEST_TEMPLATE", + "html_url": "https://github.com/octocat/Hello-World/blob/master/PULL_REQUEST_TEMPLATE" + }, + "license": { + "name": "MIT License", + "key": "mit", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "html_url": "https://github.com/octocat/Hello-World/blob/master/LICENSE", + "node_id": "MDc6TGljZW5zZW1pdA==" + }, + "readme": { + "url": "https://api.github.com/repos/octocat/Hello-World/contents/README.md", + "html_url": "https://github.com/octocat/Hello-World/blob/master/README.md" + } + }, + "updated_at": "2017-02-28T19:09:29Z", + "content_reports_enabled": true + } + }, + "commit-comparison": { + "value": { + "url": "https://api.github.com/repos/octocat/Hello-World/compare/master...topic", + "html_url": "https://github.com/octocat/Hello-World/compare/master...topic", + "permalink_url": "https://github.com/octocat/Hello-World/compare/octocat:bbcd538c8e72b8c175046e27cc8f907076331401...octocat:0328041d1152db8ae77652d1618a02e57f745f17", + "diff_url": "https://github.com/octocat/Hello-World/compare/master...topic.diff", + "patch_url": "https://github.com/octocat/Hello-World/compare/master...topic.patch", + "base_commit": { + "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "node_id": "MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ==", + "html_url": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments", + "commit": { + "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "author": { + "name": "Monalisa Octocat", + "email": "mona@github.com", + "date": "2011-04-14T16:00:49Z" + }, + "committer": { + "name": "Monalisa Octocat", + "email": "mona@github.com", + "date": "2011-04-14T16:00:49Z" + }, + "message": "Fix all the bugs", + "tree": { + "url": "https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + }, + "comment_count": 0, + "verification": { + "verified": false, + "reason": "unsigned", + "signature": null, + "payload": null + } + }, + "author": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + } + ] + }, + "merge_base_commit": { + "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "node_id": "MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ==", + "html_url": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments", + "commit": { + "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "author": { + "name": "Monalisa Octocat", + "email": "mona@github.com", + "date": "2011-04-14T16:00:49Z" + }, + "committer": { + "name": "Monalisa Octocat", + "email": "mona@github.com", + "date": "2011-04-14T16:00:49Z" + }, + "message": "Fix all the bugs", + "tree": { + "url": "https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + }, + "comment_count": 0, + "verification": { + "verified": false, + "reason": "unsigned", + "signature": null, + "payload": null + } + }, + "author": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + } + ] + }, + "status": "behind", + "ahead_by": 1, + "behind_by": 2, + "total_commits": 1, + "commits": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "node_id": "MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ==", + "html_url": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments", + "commit": { + "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "author": { + "name": "Monalisa Octocat", + "email": "mona@github.com", + "date": "2011-04-14T16:00:49Z" + }, + "committer": { + "name": "Monalisa Octocat", + "email": "mona@github.com", + "date": "2011-04-14T16:00:49Z" + }, + "message": "Fix all the bugs", + "tree": { + "url": "https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + }, + "comment_count": 0, + "verification": { + "verified": false, + "reason": "unsigned", + "signature": null, + "payload": null + } + }, + "author": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + } + ] + } + ], + "files": [ + { + "sha": "bbcd538c8e72b8c175046e27cc8f907076331401", + "filename": "file1.txt", + "status": "added", + "additions": 103, + "deletions": 21, + "changes": 124, + "blob_url": "https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt", + "raw_url": "https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/file1.txt?ref=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "patch": "@@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test" + } + ] + } + }, + "content-file-response-if-content-is-a-file": { + "summary": "Response if content is a file", + "value": { + "type": "file", + "encoding": "base64", + "size": 5362, + "name": "README.md", + "path": "README.md", + "content": "encoded content ...", + "sha": "3d21ec53a331a6f037a91c368710b99387d012c1", + "url": "https://api.github.com/repos/octokit/octokit.rb/contents/README.md", + "git_url": "https://api.github.com/repos/octokit/octokit.rb/git/blobs/3d21ec53a331a6f037a91c368710b99387d012c1", + "html_url": "https://github.com/octokit/octokit.rb/blob/master/README.md", + "download_url": "https://raw.githubusercontent.com/octokit/octokit.rb/master/README.md", + "_links": { + "git": "https://api.github.com/repos/octokit/octokit.rb/git/blobs/3d21ec53a331a6f037a91c368710b99387d012c1", + "self": "https://api.github.com/repos/octokit/octokit.rb/contents/README.md", + "html": "https://github.com/octokit/octokit.rb/blob/master/README.md" + } + } + }, + "content-file-response-if-content-is-a-directory": { + "summary": "Response if content is a directory", + "value": [ + { + "type": "file", + "size": 625, + "name": "octokit.rb", + "path": "lib/octokit.rb", + "sha": "fff6fe3a23bf1c8ea0692b4a883af99bee26fd3b", + "url": "https://api.github.com/repos/octokit/octokit.rb/contents/lib/octokit.rb", + "git_url": "https://api.github.com/repos/octokit/octokit.rb/git/blobs/fff6fe3a23bf1c8ea0692b4a883af99bee26fd3b", + "html_url": "https://github.com/octokit/octokit.rb/blob/master/lib/octokit.rb", + "download_url": "https://raw.githubusercontent.com/octokit/octokit.rb/master/lib/octokit.rb", + "_links": { + "self": "https://api.github.com/repos/octokit/octokit.rb/contents/lib/octokit.rb", + "git": "https://api.github.com/repos/octokit/octokit.rb/git/blobs/fff6fe3a23bf1c8ea0692b4a883af99bee26fd3b", + "html": "https://github.com/octokit/octokit.rb/blob/master/lib/octokit.rb" + } + }, + { + "type": "dir", + "size": 0, + "name": "octokit", + "path": "lib/octokit", + "sha": "a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d", + "url": "https://api.github.com/repos/octokit/octokit.rb/contents/lib/octokit", + "git_url": "https://api.github.com/repos/octokit/octokit.rb/git/trees/a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d", + "html_url": "https://github.com/octokit/octokit.rb/tree/master/lib/octokit", + "download_url": null, + "_links": { + "self": "https://api.github.com/repos/octokit/octokit.rb/contents/lib/octokit", + "git": "https://api.github.com/repos/octokit/octokit.rb/git/trees/a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d", + "html": "https://github.com/octokit/octokit.rb/tree/master/lib/octokit" + } + } + ] + }, + "content-file-response-if-content-is-a-symlink": { + "summary": "Response if content is a symlink", + "value": { + "type": "symlink", + "target": "/path/to/symlink/target", + "size": 23, + "name": "some-symlink", + "path": "bin/some-symlink", + "sha": "452a98979c88e093d682cab404a3ec82babebb48", + "url": "https://api.github.com/repos/octokit/octokit.rb/contents/bin/some-symlink", + "git_url": "https://api.github.com/repos/octokit/octokit.rb/git/blobs/452a98979c88e093d682cab404a3ec82babebb48", + "html_url": "https://github.com/octokit/octokit.rb/blob/master/bin/some-symlink", + "download_url": "https://raw.githubusercontent.com/octokit/octokit.rb/master/bin/some-symlink", + "_links": { + "git": "https://api.github.com/repos/octokit/octokit.rb/git/blobs/452a98979c88e093d682cab404a3ec82babebb48", + "self": "https://api.github.com/repos/octokit/octokit.rb/contents/bin/some-symlink", + "html": "https://github.com/octokit/octokit.rb/blob/master/bin/some-symlink" + } + } + }, + "content-file-response-if-content-is-a-submodule": { + "summary": "Response if content is a submodule", + "value": { + "type": "submodule", + "submodule_git_url": "git://github.com/jquery/qunit.git", + "size": 0, + "name": "qunit", + "path": "test/qunit", + "sha": "6ca3721222109997540bd6d9ccd396902e0ad2f9", + "url": "https://api.github.com/repos/jquery/jquery/contents/test/qunit?ref=master", + "git_url": "https://api.github.com/repos/jquery/qunit/git/trees/6ca3721222109997540bd6d9ccd396902e0ad2f9", + "html_url": "https://github.com/jquery/qunit/tree/6ca3721222109997540bd6d9ccd396902e0ad2f9", + "download_url": null, + "_links": { + "git": "https://api.github.com/repos/jquery/qunit/git/trees/6ca3721222109997540bd6d9ccd396902e0ad2f9", + "self": "https://api.github.com/repos/jquery/jquery/contents/test/qunit?ref=master", + "html": "https://github.com/jquery/qunit/tree/6ca3721222109997540bd6d9ccd396902e0ad2f9" + } + } + }, + "file-commit-example-for-updating-a-file": { + "value": { + "content": { + "name": "hello.txt", + "path": "notes/hello.txt", + "sha": "a56507ed892d05a37c6d6128c260937ea4d287bd", + "size": 9, + "url": "https://api.github.com/repos/octocat/Hello-World/contents/notes/hello.txt", + "html_url": "https://github.com/octocat/Hello-World/blob/master/notes/hello.txt", + "git_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/a56507ed892d05a37c6d6128c260937ea4d287bd", + "download_url": "https://raw.githubusercontent.com/octocat/HelloWorld/master/notes/hello.txt", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/octocat/Hello-World/contents/notes/hello.txt", + "git": "https://api.github.com/repos/octocat/Hello-World/git/blobs/a56507ed892d05a37c6d6128c260937ea4d287bd", + "html": "https://github.com/octocat/Hello-World/blob/master/notes/hello.txt" + } + }, + "commit": { + "sha": "18a43cd8e1e3a79c786e3d808a73d23b6d212b16", + "node_id": "MDY6Q29tbWl0MThhNDNjZDhlMWUzYTc5Yzc4NmUzZDgwOGE3M2QyM2I2ZDIxMmIxNg==", + "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/18a43cd8e1e3a79c786e3d808a73d23b6d212b16", + "html_url": "https://github.com/octocat/Hello-World/git/commit/18a43cd8e1e3a79c786e3d808a73d23b6d212b16", + "author": { + "date": "2014-11-07T22:01:45Z", + "name": "Monalisa Octocat", + "email": "octocat@github.com" + }, + "committer": { + "date": "2014-11-07T22:01:45Z", + "name": "Monalisa Octocat", + "email": "octocat@github.com" + }, + "message": "my commit message", + "tree": { + "url": "https://api.github.com/repos/octocat/Hello-World/git/trees/9a21f8e2018f42ffcf369b24d2cd20bc25c9e66f", + "sha": "9a21f8e2018f42ffcf369b24d2cd20bc25c9e66f" + }, + "parents": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/da5a433788da5c255edad7979b328b67d79f53f6", + "html_url": "https://github.com/octocat/Hello-World/git/commit/da5a433788da5c255edad7979b328b67d79f53f6", + "sha": "da5a433788da5c255edad7979b328b67d79f53f6" + } + ], + "verification": { + "verified": false, + "reason": "unsigned", + "signature": null, + "payload": null + } + } + } + }, + "file-commit-example-for-creating-a-file": { + "value": { + "content": { + "name": "hello.txt", + "path": "notes/hello.txt", + "sha": "95b966ae1c166bd92f8ae7d1c313e738c731dfc3", + "size": 9, + "url": "https://api.github.com/repos/octocat/Hello-World/contents/notes/hello.txt", + "html_url": "https://github.com/octocat/Hello-World/blob/master/notes/hello.txt", + "git_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/95b966ae1c166bd92f8ae7d1c313e738c731dfc3", + "download_url": "https://raw.githubusercontent.com/octocat/HelloWorld/master/notes/hello.txt", + "type": "file", + "_links": { + "self": "https://api.github.com/repos/octocat/Hello-World/contents/notes/hello.txt", + "git": "https://api.github.com/repos/octocat/Hello-World/git/blobs/95b966ae1c166bd92f8ae7d1c313e738c731dfc3", + "html": "https://github.com/octocat/Hello-World/blob/master/notes/hello.txt" + } + }, + "commit": { + "sha": "7638417db6d59f3c431d3e1f261cc637155684cd", + "node_id": "MDY6Q29tbWl0NzYzODQxN2RiNmQ1OWYzYzQzMWQzZTFmMjYxY2M2MzcxNTU2ODRjZA==", + "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd", + "html_url": "https://github.com/octocat/Hello-World/git/commit/7638417db6d59f3c431d3e1f261cc637155684cd", + "author": { + "date": "2014-11-07T22:01:45Z", + "name": "Monalisa Octocat", + "email": "octocat@github.com" + }, + "committer": { + "date": "2014-11-07T22:01:45Z", + "name": "Monalisa Octocat", + "email": "octocat@github.com" + }, + "message": "my commit message", + "tree": { + "url": "https://api.github.com/repos/octocat/Hello-World/git/trees/691272480426f78a0138979dd3ce63b77f706feb", + "sha": "691272480426f78a0138979dd3ce63b77f706feb" + }, + "parents": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/1acc419d4d6a9ce985db7be48c6349a0475975b5", + "html_url": "https://github.com/octocat/Hello-World/git/commit/1acc419d4d6a9ce985db7be48c6349a0475975b5", + "sha": "1acc419d4d6a9ce985db7be48c6349a0475975b5" + } + ], + "verification": { + "verified": false, + "reason": "unsigned", + "signature": null, + "payload": null + } + } + } + }, + "file-commit": { + "value": { + "content": null, + "commit": { + "sha": "7638417db6d59f3c431d3e1f261cc637155684cd", + "node_id": "MDY6Q29tbWl0NzYzODQxN2RiNmQ1OWYzYzQzMWQzZTFmMjYxY2M2MzcxNTU2ODRjZA==", + "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd", + "html_url": "https://github.com/octocat/Hello-World/git/commit/7638417db6d59f3c431d3e1f261cc637155684cd", + "author": { + "date": "2014-11-07T22:01:45Z", + "name": "Monalisa Octocat", + "email": "octocat@github.com" + }, + "committer": { + "date": "2014-11-07T22:01:45Z", + "name": "Monalisa Octocat", + "email": "octocat@github.com" + }, + "message": "my commit message", + "tree": { + "url": "https://api.github.com/repos/octocat/Hello-World/git/trees/691272480426f78a0138979dd3ce63b77f706feb", + "sha": "691272480426f78a0138979dd3ce63b77f706feb" + }, + "parents": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/1acc419d4d6a9ce985db7be48c6349a0475975b5", + "html_url": "https://github.com/octocat/Hello-World/git/commit/1acc419d4d6a9ce985db7be48c6349a0475975b5", + "sha": "1acc419d4d6a9ce985db7be48c6349a0475975b5" + } + ], + "verification": { + "verified": false, + "reason": "unsigned", + "signature": null, + "payload": null + } + } + } + }, + "contributor-items-response-if-repository-contains-content": { + "value": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false, + "contributions": 32 + } + ] + }, + "deployment-items": { + "value": [ + { + "url": "https://api.github.com/repos/octocat/example/deployments/1", + "id": 1, + "node_id": "MDEwOkRlcGxveW1lbnQx", + "sha": "a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d", + "ref": "topic-branch", + "task": "deploy", + "payload": {}, + "original_environment": "staging", + "environment": "production", + "description": "Deploy request from hubot", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2012-07-20T01:19:13Z", + "updated_at": "2012-07-20T01:19:13Z", + "statuses_url": "https://api.github.com/repos/octocat/example/deployments/1/statuses", + "repository_url": "https://api.github.com/repos/octocat/example", + "transient_environment": false, + "production_environment": true + } + ] + }, + "deployment-simple-example": { + "summary": "Simple example", + "value": { + "url": "https://api.github.com/repos/octocat/example/deployments/1", + "id": 1, + "node_id": "MDEwOkRlcGxveW1lbnQx", + "sha": "a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d", + "ref": "topic-branch", + "task": "deploy", + "payload": {}, + "original_environment": "staging", + "environment": "production", + "description": "Deploy request from hubot", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2012-07-20T01:19:13Z", + "updated_at": "2012-07-20T01:19:13Z", + "statuses_url": "https://api.github.com/repos/octocat/example/deployments/1/statuses", + "repository_url": "https://api.github.com/repos/octocat/example", + "transient_environment": false, + "production_environment": true + } + }, + "deployment-advanced-example": { + "summary": "Advanced example", + "value": { + "url": "https://api.github.com/repos/octocat/example/deployments/1", + "id": 1, + "node_id": "MDEwOkRlcGxveW1lbnQx", + "sha": "a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d", + "ref": "topic-branch", + "task": "deploy", + "payload": {}, + "original_environment": "staging", + "environment": "production", + "description": "Deploy request from hubot", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2012-07-20T01:19:13Z", + "updated_at": "2012-07-20T01:19:13Z", + "statuses_url": "https://api.github.com/repos/octocat/example/deployments/1/statuses", + "repository_url": "https://api.github.com/repos/octocat/example", + "transient_environment": false, + "production_environment": true + } + }, + "deployment": { + "value": { + "url": "https://api.github.com/repos/octocat/example/deployments/1", + "id": 1, + "node_id": "MDEwOkRlcGxveW1lbnQx", + "sha": "a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d", + "ref": "topic-branch", + "task": "deploy", + "payload": {}, + "original_environment": "staging", + "environment": "production", + "description": "Deploy request from hubot", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2012-07-20T01:19:13Z", + "updated_at": "2012-07-20T01:19:13Z", + "statuses_url": "https://api.github.com/repos/octocat/example/deployments/1/statuses", + "repository_url": "https://api.github.com/repos/octocat/example", + "transient_environment": false, + "production_environment": true + } + }, + "deployment-status-items": { + "value": [ + { + "url": "https://api.github.com/repos/octocat/example/deployments/42/statuses/1", + "id": 1, + "node_id": "MDE2OkRlcGxveW1lbnRTdGF0dXMx", + "state": "success", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "description": "Deployment finished successfully.", + "environment": "production", + "target_url": "https://example.com/deployment/42/output", + "created_at": "2012-07-20T01:19:13Z", + "updated_at": "2012-07-20T01:19:13Z", + "deployment_url": "https://api.github.com/repos/octocat/example/deployments/42", + "repository_url": "https://api.github.com/repos/octocat/example", + "environment_url": "https://test-branch.lab.acme.com", + "log_url": "https://example.com/deployment/42/output" + } + ] + }, + "deployment-status": { + "value": { + "url": "https://api.github.com/repos/octocat/example/deployments/42/statuses/1", + "id": 1, + "node_id": "MDE2OkRlcGxveW1lbnRTdGF0dXMx", + "state": "success", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "description": "Deployment finished successfully.", + "environment": "production", + "target_url": "https://example.com/deployment/42/output", + "created_at": "2012-07-20T01:19:13Z", + "updated_at": "2012-07-20T01:19:13Z", + "deployment_url": "https://api.github.com/repos/octocat/example/deployments/42", + "repository_url": "https://api.github.com/repos/octocat/example", + "environment_url": "https://test-branch.lab.acme.com", + "log_url": "https://example.com/deployment/42/output" + } + }, + "minimal-repository-items-2": { + "value": [ + { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": true, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "delete_branch_on_merge": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZW1pdA==" + } + } + ] + }, + "short-blob": { + "value": { + "url": "https://api.github.com/repos/octocat/example/git/blobs/3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15", + "sha": "3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15" + } + }, + "blob": { + "value": { + "content": "Q29udGVudCBvZiB0aGUgYmxvYg==", + "encoding": "base64", + "url": "https://api.github.com/repos/octocat/example/git/blobs/3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15", + "sha": "3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15", + "size": 19, + "node_id": "Q29udGVudCBvZiB0aGUgYmxvYg==" + } + }, + "git-commit": { + "value": { + "sha": "7638417db6d59f3c431d3e1f261cc637155684cd", + "node_id": "MDY6Q29tbWl0NzYzODQxN2RiNmQ1OWYzYzQzMWQzZTFmMjYxY2M2MzcxNTU2ODRjZA==", + "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd", + "author": { + "date": "2014-11-07T22:01:45Z", + "name": "Monalisa Octocat", + "email": "octocat@github.com" + }, + "committer": { + "date": "2014-11-07T22:01:45Z", + "name": "Monalisa Octocat", + "email": "octocat@github.com" + }, + "message": "my commit message", + "tree": { + "url": "https://api.github.com/repos/octocat/Hello-World/git/trees/827efc6d56897b048c772eb4087f854f46256132", + "sha": "827efc6d56897b048c772eb4087f854f46256132" + }, + "parents": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/7d1b31e74ee336d15cbd21741bc88a537ed063a0", + "sha": "7d1b31e74ee336d15cbd21741bc88a537ed063a0" + } + ], + "verification": { + "verified": false, + "reason": "unsigned", + "signature": null, + "payload": null + } + } + }, + "git-commit-2": { + "value": { + "sha": "7638417db6d59f3c431d3e1f261cc637155684cd", + "node_id": "MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ==", + "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd", + "author": { + "date": "2014-11-07T22:01:45Z", + "name": "Monalisa Octocat", + "email": "octocat@github.com" + }, + "committer": { + "date": "2014-11-07T22:01:45Z", + "name": "Monalisa Octocat", + "email": "octocat@github.com" + }, + "message": "added readme, because im a good github citizen", + "tree": { + "url": "https://api.github.com/repos/octocat/Hello-World/git/trees/691272480426f78a0138979dd3ce63b77f706feb", + "sha": "691272480426f78a0138979dd3ce63b77f706feb" + }, + "parents": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/1acc419d4d6a9ce985db7be48c6349a0475975b5", + "sha": "1acc419d4d6a9ce985db7be48c6349a0475975b5" + } + ], + "verification": { + "verified": false, + "reason": "unsigned", + "signature": null, + "payload": null + } + } + }, + "git-ref-items": { + "value": [ + { + "ref": "refs/heads/feature-a", + "node_id": "MDM6UmVmcmVmcy9oZWFkcy9mZWF0dXJlLWE=", + "url": "https://api.github.com/repos/octocat/Hello-World/git/refs/heads/feature-a", + "object": { + "type": "commit", + "sha": "aa218f56b14c9653891f9e74264a383fa43fefbd", + "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/aa218f56b14c9653891f9e74264a383fa43fefbd" + } + }, + { + "ref": "refs/heads/feature-b", + "node_id": "MDM6UmVmcmVmcy9oZWFkcy9mZWF0dXJlLWI=", + "url": "https://api.github.com/repos/octocat/Hello-World/git/refs/heads/feature-b", + "object": { + "type": "commit", + "sha": "612077ae6dffb4d2fbd8ce0cccaa58893b07b5ac", + "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/612077ae6dffb4d2fbd8ce0cccaa58893b07b5ac" + } + } + ] + }, + "git-ref": { + "value": { + "ref": "refs/heads/featureA", + "node_id": "MDM6UmVmcmVmcy9oZWFkcy9mZWF0dXJlQQ==", + "url": "https://api.github.com/repos/octocat/Hello-World/git/refs/heads/featureA", + "object": { + "type": "commit", + "sha": "aa218f56b14c9653891f9e74264a383fa43fefbd", + "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/aa218f56b14c9653891f9e74264a383fa43fefbd" + } + } + }, + "git-tag": { + "value": { + "node_id": "MDM6VGFnOTQwYmQzMzYyNDhlZmFlMGY5ZWU1YmM3YjJkNWM5ODU4ODdiMTZhYw==", + "tag": "v0.0.1", + "sha": "940bd336248efae0f9ee5bc7b2d5c985887b16ac", + "url": "https://api.github.com/repos/octocat/Hello-World/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac", + "message": "initial version", + "tagger": { + "name": "Monalisa Octocat", + "email": "octocat@github.com", + "date": "2014-11-07T22:01:45Z" + }, + "object": { + "type": "commit", + "sha": "c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c", + "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c" + }, + "verification": { + "verified": false, + "reason": "unsigned", + "signature": null, + "payload": null + } + } + }, + "git-tree": { + "value": { + "sha": "cd8274d15fa3ae2ab983129fb037999f264ba9a7", + "url": "https://api.github.com/repos/octocat/Hello-World/trees/cd8274d15fa3ae2ab983129fb037999f264ba9a7", + "tree": [ + { + "path": "file.rb", + "mode": "100644", + "type": "blob", + "size": 132, + "sha": "7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b", + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b" + } + ], + "truncated": true + } + }, + "git-tree-default-response": { + "summary": "Default response", + "value": { + "sha": "9fb037999f264ba9a7fc6274d15fa3ae2ab98312", + "url": "https://api.github.com/repos/octocat/Hello-World/trees/9fb037999f264ba9a7fc6274d15fa3ae2ab98312", + "tree": [ + { + "path": "file.rb", + "mode": "100644", + "type": "blob", + "size": 30, + "sha": "44b4fc6d56897b048c772eb4087f854f46256132", + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" + }, + { + "path": "subdir", + "mode": "040000", + "type": "tree", + "sha": "f484d249c660418515fb01c2b9662073663c242e", + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/f484d249c660418515fb01c2b9662073663c242e" + }, + { + "path": "exec_file", + "mode": "100755", + "type": "blob", + "size": 75, + "sha": "45b983be36b73c0788dc9cbcb76cbb80fc7bb057", + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/45b983be36b73c0788dc9cbcb76cbb80fc7bb057" + } + ], + "truncated": false + } + }, + "git-tree-response-recursively-retrieving-a-tree": { + "summary": "Response recursively retrieving a tree", + "value": { + "sha": "fc6274d15fa3ae2ab983129fb037999f264ba9a7", + "url": "https://api.github.com/repos/octocat/Hello-World/trees/fc6274d15fa3ae2ab983129fb037999f264ba9a7", + "tree": [ + { + "path": "subdir/file.txt", + "mode": "100644", + "type": "blob", + "size": 132, + "sha": "7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b", + "url": "https://api.github.com/repos/octocat/Hello-World/git/7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b" + } + ], + "truncated": false + } + }, + "hook-items": { + "value": [ + { + "type": "Repository", + "id": 12345678, + "name": "web", + "active": true, + "events": ["push", "pull_request"], + "config": { + "content_type": "json", + "insecure_ssl": "0", + "url": "https://example.com/webhook" + }, + "updated_at": "2019-06-03T00:57:16Z", + "created_at": "2019-06-03T00:57:16Z", + "url": "https://api.github.com/repos/octocat/Hello-World/hooks/12345678", + "test_url": "https://api.github.com/repos/octocat/Hello-World/hooks/12345678/test", + "ping_url": "https://api.github.com/repos/octocat/Hello-World/hooks/12345678/pings", + "last_response": { + "code": null, + "status": "unused", + "message": null + } + } + ] + }, + "hook": { + "value": { + "type": "Repository", + "id": 12345678, + "name": "web", + "active": true, + "events": ["push", "pull_request"], + "config": { + "content_type": "json", + "insecure_ssl": "0", + "url": "https://example.com/webhook" + }, + "updated_at": "2019-06-03T00:57:16Z", + "created_at": "2019-06-03T00:57:16Z", + "url": "https://api.github.com/repos/octocat/Hello-World/hooks/12345678", + "test_url": "https://api.github.com/repos/octocat/Hello-World/hooks/12345678/test", + "ping_url": "https://api.github.com/repos/octocat/Hello-World/hooks/12345678/pings", + "last_response": { "code": null, "status": "unused", "message": null } + } + }, + "import": { + "value": { + "vcs": "subversion", + "use_lfs": "opt_in", + "vcs_url": "http://svn.mycompany.com/svn/myproject", + "status": "complete", + "status_text": "Done", + "has_large_files": true, + "large_files_size": 132331036, + "large_files_count": 1, + "authors_count": 4, + "url": "https://api.github.com/repos/octocat/socm/import", + "html_url": "https://import.github.com/octocat/socm/import", + "authors_url": "https://api.github.com/repos/octocat/socm/import/authors", + "repository_url": "https://api.github.com/repos/octocat/socm" + } + }, + "import-2": { + "value": { + "vcs": "subversion", + "use_lfs": "undecided", + "vcs_url": "http://svn.mycompany.com/svn/myproject", + "status": "importing", + "status_text": "Importing...", + "has_large_files": false, + "large_files_size": 0, + "large_files_count": 0, + "authors_count": 0, + "commit_count": 1042, + "url": "https://api.github.com/repos/octocat/socm/import", + "html_url": "https://import.github.com/octocat/socm/import", + "authors_url": "https://api.github.com/repos/octocat/socm/import/authors", + "repository_url": "https://api.github.com/repos/octocat/socm" + } + }, + "import-example-1": { + "summary": "Example 1", + "value": { + "vcs": "subversion", + "use_lfs": "undecided", + "vcs_url": "http://svn.mycompany.com/svn/myproject", + "status": "detecting", + "url": "https://api.github.com/repos/octocat/socm/import", + "html_url": "https://import.github.com/octocat/socm/import", + "authors_url": "https://api.github.com/repos/octocat/socm/import/authors", + "repository_url": "https://api.github.com/repos/octocat/socm" + } + }, + "import-example-2": { + "summary": "Example 2", + "value": { + "vcs": "tfvc", + "use_lfs": "undecided", + "vcs_url": "http://tfs.mycompany.com/tfs/myproject", + "tfvc_project": "project1", + "status": "importing", + "status_text": "Importing...", + "has_large_files": false, + "large_files_size": 0, + "large_files_count": 0, + "authors_count": 0, + "commit_count": 1042, + "url": "https://api.github.com/repos/octocat/socm/import", + "html_url": "https://import.github.com/octocat/socm/import", + "authors_url": "https://api.github.com/repos/octocat/socm/import/authors", + "repository_url": "https://api.github.com/repos/octocat/socm" + } + }, + "import-response": { + "summary": "Response", + "value": { + "vcs": "subversion", + "use_lfs": "undecided", + "vcs_url": "http://svn.mycompany.com/svn/myproject", + "status": "importing", + "status_text": "Importing...", + "has_large_files": false, + "large_files_size": 0, + "large_files_count": 0, + "authors_count": 0, + "commit_count": 1042, + "url": "https://api.github.com/repos/octocat/socm/import", + "html_url": "https://import.github.com/octocat/socm/import", + "authors_url": "https://api.github.com/repos/octocat/socm/import/authors", + "repository_url": "https://api.github.com/repos/octocat/socm" + } + }, + "porter-author-items": { + "value": [ + { + "id": 2268557, + "remote_id": "nobody@fc7da526-431c-80fe-3c8c-c148ff18d7ef", + "remote_name": "nobody", + "email": "hubot@github.com", + "name": "Hubot", + "url": "https://api.github.com/repos/octocat/socm/import/authors/2268557", + "import_url": "https://api.github.com/repos/octocat/socm/import" + }, + { + "id": 2268558, + "remote_id": "svner@fc7da526-431c-80fe-3c8c-c148ff18d7ef", + "remote_name": "svner", + "email": "svner@fc7da526-431c-80fe-3c8c-c148ff18d7ef", + "name": "svner", + "url": "https://api.github.com/repos/octocat/socm/import/authors/2268558", + "import_url": "https://api.github.com/repos/octocat/socm/import" + }, + { + "id": 2268559, + "remote_id": "svner@example.com@fc7da526-431c-80fe-3c8c-c148ff18d7ef", + "remote_name": "svner@example.com", + "email": "svner@example.com@fc7da526-431c-80fe-3c8c-c148ff18d7ef", + "name": "svner@example.com", + "url": "https://api.github.com/repos/octocat/socm/import/authors/2268559", + "import_url": "https://api.github.com/repos/octocat/socm/import" + } + ] + }, + "porter-author": { + "value": { + "id": 2268557, + "remote_id": "nobody@fc7da526-431c-80fe-3c8c-c148ff18d7ef", + "remote_name": "nobody", + "email": "hubot@github.com", + "name": "Hubot", + "url": "https://api.github.com/repos/octocat/socm/import/authors/2268557", + "import_url": "https://api.github.com/repos/octocat/socm/import" + } + }, + "porter-large-file-items": { + "value": [ + { + "ref_name": "refs/heads/master", + "path": "foo/bar/1", + "oid": "d3d9446802a44259755d38e6d163e820", + "size": 10485760 + }, + { + "ref_name": "refs/heads/master", + "path": "foo/bar/2", + "oid": "6512bd43d9caa6e02c990b0a82652dca", + "size": 11534336 + }, + { + "ref_name": "refs/heads/master", + "path": "foo/bar/3", + "oid": "c20ad4d76fe97759aa27a0c99bff6710", + "size": 12582912 + } + ] + }, + "interaction-limit-2": { + "value": { + "limit": "collaborators_only", + "origin": "repository", + "expires_at": "2018-08-17T04:18:39Z" + } + }, + "repository-invitation-items": { + "value": [ + { + "id": 1, + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "invitee": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "inviter": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "permissions": "write", + "created_at": "2016-06-13T14:52:50-05:00", + "url": "https://api.github.com/user/repository_invitations/1296269", + "html_url": "https://github.com/octocat/Hello-World/invitations", + "node_id": "MDQ6VXNlcjE=" + } + ] + }, + "repository-invitation": { + "value": { + "id": 1, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "repository": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "invitee": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "inviter": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "permissions": "write", + "created_at": "2016-06-13T14:52:50-05:00", + "url": "https://api.github.com/user/repository_invitations/1296269", + "html_url": "https://github.com/octocat/Hello-World/invitations" + } + }, + "issue-simple-items": { + "value": [ + { + "id": 1, + "node_id": "MDU6SXNzdWUx", + "url": "https://api.github.com/repos/octocat/Hello-World/issues/1347", + "repository_url": "https://api.github.com/repos/octocat/Hello-World", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/labels{/name}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments", + "events_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/events", + "html_url": "https://github.com/octocat/Hello-World/issues/1347", + "number": 1347, + "state": "open", + "title": "Found a bug", + "body": "I'm having a problem with this.", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 208045946, + "node_id": "MDU6TGFiZWwyMDgwNDU5NDY=", + "url": "https://api.github.com/repos/octocat/Hello-World/labels/bug", + "name": "bug", + "description": "Something isn't working", + "color": "f29513", + "default": true + } + ], + "assignee": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/octocat/Hello-World/milestones/1", + "html_url": "https://github.com/octocat/Hello-World/milestones/v1.0", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/milestones/1/labels", + "id": 1002604, + "node_id": "MDk6TWlsZXN0b25lMTAwMjYwNA==", + "number": 1, + "state": "open", + "title": "v1.0", + "description": "Tracking milestone for version 1.0", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 4, + "closed_issues": 8, + "created_at": "2011-04-10T20:09:31Z", + "updated_at": "2014-03-03T18:58:10Z", + "closed_at": "2013-02-12T13:22:01Z", + "due_on": "2012-10-09T23:39:01Z" + }, + "locked": true, + "active_lock_reason": "too heated", + "comments": 0, + "pull_request": { + "url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347", + "html_url": "https://github.com/octocat/Hello-World/pull/1347", + "diff_url": "https://github.com/octocat/Hello-World/pull/1347.diff", + "patch_url": "https://github.com/octocat/Hello-World/pull/1347.patch" + }, + "closed_at": null, + "created_at": "2011-04-22T13:33:48Z", + "updated_at": "2011-04-22T13:33:48Z", + "author_association": "collaborator" + } + ] + }, + "issue": { + "value": { + "id": 1, + "node_id": "MDU6SXNzdWUx", + "url": "https://api.github.com/repos/octocat/Hello-World/issues/1347", + "repository_url": "https://api.github.com/repos/octocat/Hello-World", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/labels{/name}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments", + "events_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/events", + "html_url": "https://github.com/octocat/Hello-World/issues/1347", + "number": 1347, + "state": "open", + "title": "Found a bug", + "body": "I'm having a problem with this.", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 208045946, + "node_id": "MDU6TGFiZWwyMDgwNDU5NDY=", + "url": "https://api.github.com/repos/octocat/Hello-World/labels/bug", + "name": "bug", + "description": "Something isn't working", + "color": "f29513", + "default": true + } + ], + "assignee": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/octocat/Hello-World/milestones/1", + "html_url": "https://github.com/octocat/Hello-World/milestones/v1.0", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/milestones/1/labels", + "id": 1002604, + "node_id": "MDk6TWlsZXN0b25lMTAwMjYwNA==", + "number": 1, + "state": "open", + "title": "v1.0", + "description": "Tracking milestone for version 1.0", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 4, + "closed_issues": 8, + "created_at": "2011-04-10T20:09:31Z", + "updated_at": "2014-03-03T18:58:10Z", + "closed_at": "2013-02-12T13:22:01Z", + "due_on": "2012-10-09T23:39:01Z" + }, + "locked": true, + "active_lock_reason": "too heated", + "comments": 0, + "pull_request": { + "url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347", + "html_url": "https://github.com/octocat/Hello-World/pull/1347", + "diff_url": "https://github.com/octocat/Hello-World/pull/1347.diff", + "patch_url": "https://github.com/octocat/Hello-World/pull/1347.patch" + }, + "closed_at": null, + "created_at": "2011-04-22T13:33:48Z", + "updated_at": "2011-04-22T13:33:48Z", + "closed_by": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "author_association": "collaborator" + } + }, + "issue-comment-items": { + "value": [ + { + "id": 1, + "node_id": "MDEyOklzc3VlQ29tbWVudDE=", + "url": "https://api.github.com/repos/octocat/Hello-World/issues/comments/1", + "html_url": "https://github.com/octocat/Hello-World/issues/1347#issuecomment-1", + "body": "Me too", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2011-04-14T16:00:49Z", + "updated_at": "2011-04-14T16:00:49Z", + "issue_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347", + "author_association": "collaborator" + } + ] + }, + "issue-comment": { + "value": { + "id": 1, + "node_id": "MDEyOklzc3VlQ29tbWVudDE=", + "url": "https://api.github.com/repos/octocat/Hello-World/issues/comments/1", + "html_url": "https://github.com/octocat/Hello-World/issues/1347#issuecomment-1", + "body": "Me too", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2011-04-14T16:00:49Z", + "updated_at": "2011-04-14T16:00:49Z", + "issue_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347", + "author_association": "collaborator" + } + }, + "issue-event-items": { + "value": [ + { + "id": 1, + "node_id": "MDEwOklzc3VlRXZlbnQx", + "url": "https://api.github.com/repos/octocat/Hello-World/issues/events/1", + "actor": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "event": "closed", + "commit_id": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "commit_url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "created_at": "2011-04-14T16:00:49Z", + "issue": { + "id": 1, + "node_id": "MDU6SXNzdWUx", + "url": "https://api.github.com/repos/octocat/Hello-World/issues/1347", + "repository_url": "https://api.github.com/repos/octocat/Hello-World", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/labels{/name}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments", + "events_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/events", + "html_url": "https://github.com/octocat/Hello-World/issues/1347", + "number": 1347, + "state": "open", + "title": "Found a bug", + "body": "I'm having a problem with this.", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 208045946, + "node_id": "MDU6TGFiZWwyMDgwNDU5NDY=", + "url": "https://api.github.com/repos/octocat/Hello-World/labels/bug", + "name": "bug", + "description": "Something isn't working", + "color": "f29513", + "default": true + } + ], + "assignee": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/octocat/Hello-World/milestones/1", + "html_url": "https://github.com/octocat/Hello-World/milestones/v1.0", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/milestones/1/labels", + "id": 1002604, + "node_id": "MDk6TWlsZXN0b25lMTAwMjYwNA==", + "number": 1, + "state": "open", + "title": "v1.0", + "description": "Tracking milestone for version 1.0", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 4, + "closed_issues": 8, + "created_at": "2011-04-10T20:09:31Z", + "updated_at": "2014-03-03T18:58:10Z", + "closed_at": "2013-02-12T13:22:01Z", + "due_on": "2012-10-09T23:39:01Z" + }, + "locked": true, + "active_lock_reason": "too heated", + "comments": 0, + "pull_request": { + "url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347", + "html_url": "https://github.com/octocat/Hello-World/pull/1347", + "diff_url": "https://github.com/octocat/Hello-World/pull/1347.diff", + "patch_url": "https://github.com/octocat/Hello-World/pull/1347.patch" + }, + "closed_at": null, + "created_at": "2011-04-22T13:33:48Z", + "updated_at": "2011-04-22T13:33:48Z", + "author_association": "collaborator" + } + } + ] + }, + "issue-event": { + "value": { + "id": 1, + "node_id": "MDEwOklzc3VlRXZlbnQx", + "url": "https://api.github.com/repos/octocat/Hello-World/issues/events/1", + "actor": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "event": "closed", + "commit_id": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "commit_url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "created_at": "2011-04-14T16:00:49Z", + "issue": { + "id": 1, + "node_id": "MDU6SXNzdWUx", + "url": "https://api.github.com/repos/octocat/Hello-World/issues/1347", + "repository_url": "https://api.github.com/repos/octocat/Hello-World", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/labels{/name}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments", + "events_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/events", + "html_url": "https://github.com/octocat/Hello-World/issues/1347", + "number": 1347, + "state": "open", + "title": "Found a bug", + "body": "I'm having a problem with this.", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 208045946, + "node_id": "MDU6TGFiZWwyMDgwNDU5NDY=", + "url": "https://api.github.com/repos/octocat/Hello-World/labels/bug", + "name": "bug", + "description": "Something isn't working", + "color": "f29513", + "default": true + } + ], + "assignee": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/octocat/Hello-World/milestones/1", + "html_url": "https://github.com/octocat/Hello-World/milestones/v1.0", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/milestones/1/labels", + "id": 1002604, + "node_id": "MDk6TWlsZXN0b25lMTAwMjYwNA==", + "number": 1, + "state": "open", + "title": "v1.0", + "description": "Tracking milestone for version 1.0", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 4, + "closed_issues": 8, + "created_at": "2011-04-10T20:09:31Z", + "updated_at": "2014-03-03T18:58:10Z", + "closed_at": "2013-02-12T13:22:01Z", + "due_on": "2012-10-09T23:39:01Z" + }, + "locked": true, + "active_lock_reason": "too heated", + "comments": 0, + "pull_request": { + "url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347", + "html_url": "https://github.com/octocat/Hello-World/pull/1347", + "diff_url": "https://github.com/octocat/Hello-World/pull/1347.diff", + "patch_url": "https://github.com/octocat/Hello-World/pull/1347.patch" + }, + "closed_at": null, + "created_at": "2011-04-22T13:33:48Z", + "updated_at": "2011-04-22T13:33:48Z", + "author_association": "collaborator" + } + } + }, + "issue-simple": { + "value": { + "id": 1, + "node_id": "MDU6SXNzdWUx", + "url": "https://api.github.com/repos/octocat/Hello-World/issues/1347", + "repository_url": "https://api.github.com/repos/octocat/Hello-World", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/labels{/name}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments", + "events_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/events", + "html_url": "https://github.com/octocat/Hello-World/issues/1347", + "number": 1347, + "state": "open", + "title": "Found a bug", + "body": "I'm having a problem with this.", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 208045946, + "node_id": "MDU6TGFiZWwyMDgwNDU5NDY=", + "url": "https://api.github.com/repos/octocat/Hello-World/labels/bug", + "name": "bug", + "description": "Something isn't working", + "color": "f29513", + "default": true + } + ], + "assignee": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + { + "login": "hubot", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/hubot_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/hubot", + "html_url": "https://github.com/hubot", + "followers_url": "https://api.github.com/users/hubot/followers", + "following_url": "https://api.github.com/users/hubot/following{/other_user}", + "gists_url": "https://api.github.com/users/hubot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hubot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hubot/subscriptions", + "organizations_url": "https://api.github.com/users/hubot/orgs", + "repos_url": "https://api.github.com/users/hubot/repos", + "events_url": "https://api.github.com/users/hubot/events{/privacy}", + "received_events_url": "https://api.github.com/users/hubot/received_events", + "type": "User", + "site_admin": true + }, + { + "login": "other_user", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/other_user_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/other_user", + "html_url": "https://github.com/other_user", + "followers_url": "https://api.github.com/users/other_user/followers", + "following_url": "https://api.github.com/users/other_user/following{/other_user}", + "gists_url": "https://api.github.com/users/other_user/gists{/gist_id}", + "starred_url": "https://api.github.com/users/other_user/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/other_user/subscriptions", + "organizations_url": "https://api.github.com/users/other_user/orgs", + "repos_url": "https://api.github.com/users/other_user/repos", + "events_url": "https://api.github.com/users/other_user/events{/privacy}", + "received_events_url": "https://api.github.com/users/other_user/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/octocat/Hello-World/milestones/1", + "html_url": "https://github.com/octocat/Hello-World/milestones/v1.0", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/milestones/1/labels", + "id": 1002604, + "node_id": "MDk6TWlsZXN0b25lMTAwMjYwNA==", + "number": 1, + "state": "open", + "title": "v1.0", + "description": "Tracking milestone for version 1.0", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 4, + "closed_issues": 8, + "created_at": "2011-04-10T20:09:31Z", + "updated_at": "2014-03-03T18:58:10Z", + "closed_at": "2013-02-12T13:22:01Z", + "due_on": "2012-10-09T23:39:01Z" + }, + "locked": true, + "active_lock_reason": "too heated", + "comments": 0, + "pull_request": { + "url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347", + "html_url": "https://github.com/octocat/Hello-World/pull/1347", + "diff_url": "https://github.com/octocat/Hello-World/pull/1347.diff", + "patch_url": "https://github.com/octocat/Hello-World/pull/1347.patch" + }, + "closed_at": null, + "created_at": "2011-04-22T13:33:48Z", + "updated_at": "2011-04-22T13:33:48Z", + "author_association": "collaborator" + } + }, + "issue-event-for-issue-items": { + "value": [ + { + "id": 1, + "node_id": "MDEwOklzc3VlRXZlbnQx", + "url": "https://api.github.com/repos/octocat/Hello-World/issues/events/1", + "actor": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "event": "closed", + "commit_id": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "commit_url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "created_at": "2011-04-14T16:00:49Z" + } + ] + }, + "label-items": { + "value": [ + { + "id": 208045946, + "node_id": "MDU6TGFiZWwyMDgwNDU5NDY=", + "url": "https://api.github.com/repos/octocat/Hello-World/labels/bug", + "name": "bug", + "description": "Something isn't working", + "color": "f29513", + "default": true + }, + { + "id": 208045947, + "node_id": "MDU6TGFiZWwyMDgwNDU5NDc=", + "url": "https://api.github.com/repos/octocat/Hello-World/labels/enhancement", + "name": "enhancement", + "description": "New feature or request", + "color": "a2eeef", + "default": false + } + ] + }, + "label-items-2": { + "value": [ + { + "id": 208045946, + "node_id": "MDU6TGFiZWwyMDgwNDU5NDY=", + "url": "https://api.github.com/repos/octocat/Hello-World/labels/bug", + "name": "bug", + "description": "Something isn't working", + "color": "f29513", + "default": true + } + ] + }, + "deploy-key-items": { + "value": [ + { + "id": 1, + "key": "ssh-rsa AAA...", + "url": "https://api.github.com/repos/octocat/Hello-World/keys/1", + "title": "octocat@octomac", + "verified": true, + "created_at": "2014-12-10T15:53:42Z", + "read_only": true + } + ] + }, + "deploy-key": { + "value": { + "id": 1, + "key": "ssh-rsa AAA...", + "url": "https://api.github.com/repos/octocat/Hello-World/keys/1", + "title": "octocat@octomac", + "verified": true, + "created_at": "2014-12-10T15:53:42Z", + "read_only": true + } + }, + "label": { + "value": { + "id": 208045946, + "node_id": "MDU6TGFiZWwyMDgwNDU5NDY=", + "url": "https://api.github.com/repos/octocat/Hello-World/labels/bug", + "name": "bug", + "description": "Something isn't working", + "color": "f29513", + "default": true + } + }, + "label-2": { + "value": { + "id": 208045946, + "node_id": "MDU6TGFiZWwyMDgwNDU5NDY=", + "url": "https://api.github.com/repos/octocat/Hello-World/labels/bug%20:bug:", + "name": "bug :bug:", + "description": "Small bug fix required", + "color": "b01f26", + "default": true + } + }, + "language": { "value": { "C": 78769, "Python": 7769 } }, + "license-content": { + "value": { + "name": "LICENSE", + "path": "LICENSE", + "sha": "401c59dcc4570b954dd6d345e76199e1f4e76266", + "size": 1077, + "url": "https://api.github.com/repos/benbalter/gman/contents/LICENSE?ref=master", + "html_url": "https://github.com/benbalter/gman/blob/master/LICENSE", + "git_url": "https://api.github.com/repos/benbalter/gman/git/blobs/401c59dcc4570b954dd6d345e76199e1f4e76266", + "download_url": "https://raw.githubusercontent.com/benbalter/gman/master/LICENSE?lab=true", + "type": "file", + "content": "VGhlIE1JVCBMaWNlbnNlIChNSVQpCgpDb3B5cmlnaHQgKGMpIDIwMTMgQmVu\nIEJhbHRlcgoKUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv\nZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZgp0\naGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls\nZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbgp0aGUgU29mdHdhcmUg\nd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRh\ndGlvbiB0aGUgcmlnaHRzIHRvCnVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg\ncHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwg\nY29waWVzIG9mCnRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25z\nIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywK\nc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgpUaGUgYWJv\ndmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGlj\nZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKY29waWVzIG9yIHN1YnN0YW50\naWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KClRIRSBTT0ZUV0FSRSBJ\nUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBL\nSU5ELCBFWFBSRVNTIE9SCklNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ\nTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBG\nSVRORVNTCkZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO\nR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUgpDT1BZ\nUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdF\nUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIKSU4gQU4gQUNUSU9OIE9G\nIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBP\nVVQgT0YgT1IgSU4KQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBU\nSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4K\n", + "encoding": "base64", + "_links": { + "self": "https://api.github.com/repos/benbalter/gman/contents/LICENSE?ref=master", + "git": "https://api.github.com/repos/benbalter/gman/git/blobs/401c59dcc4570b954dd6d345e76199e1f4e76266", + "html": "https://github.com/benbalter/gman/blob/master/LICENSE" + }, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZW1pdA==" + } + } + }, + "milestone-items": { + "value": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/milestones/1", + "html_url": "https://github.com/octocat/Hello-World/milestones/v1.0", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/milestones/1/labels", + "id": 1002604, + "node_id": "MDk6TWlsZXN0b25lMTAwMjYwNA==", + "number": 1, + "state": "open", + "title": "v1.0", + "description": "Tracking milestone for version 1.0", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 4, + "closed_issues": 8, + "created_at": "2011-04-10T20:09:31Z", + "updated_at": "2014-03-03T18:58:10Z", + "closed_at": "2013-02-12T13:22:01Z", + "due_on": "2012-10-09T23:39:01Z" + } + ] + }, + "milestone": { + "value": { + "url": "https://api.github.com/repos/octocat/Hello-World/milestones/1", + "html_url": "https://github.com/octocat/Hello-World/milestones/v1.0", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/milestones/1/labels", + "id": 1002604, + "node_id": "MDk6TWlsZXN0b25lMTAwMjYwNA==", + "number": 1, + "state": "open", + "title": "v1.0", + "description": "Tracking milestone for version 1.0", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 4, + "closed_issues": 8, + "created_at": "2011-04-10T20:09:31Z", + "updated_at": "2014-03-03T18:58:10Z", + "closed_at": "2013-02-12T13:22:01Z", + "due_on": "2012-10-09T23:39:01Z" + } + }, + "page": { + "value": { + "url": "https://api.github.com/repos/github/developer.github.com/pages", + "status": "built", + "cname": "developer.github.com", + "custom_404": false, + "html_url": "https://developer.github.com", + "source": { "branch": "master", "path": "/" } + } + }, + "page-build-items": { + "value": [ + { + "url": "https://api.github.com/repos/github/developer.github.com/pages/builds/5472601", + "status": "built", + "error": { "message": null }, + "pusher": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "commit": "351391cdcb88ffae71ec3028c91f375a8036a26b", + "duration": 2104, + "created_at": "2014-02-10T19:00:49Z", + "updated_at": "2014-02-10T19:00:51Z" + } + ] + }, + "page-build-status": { + "value": { + "url": "https://api.github.com/repos/github/developer.github.com/pages/builds/latest", + "status": "queued" + } + }, + "page-build": { + "value": { + "url": "https://api.github.com/repos/github/developer.github.com/pages/builds/5472601", + "status": "built", + "error": { "message": null }, + "pusher": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "commit": "351391cdcb88ffae71ec3028c91f375a8036a26b", + "duration": 2104, + "created_at": "2014-02-10T19:00:49Z", + "updated_at": "2014-02-10T19:00:51Z" + } + }, + "project-items-2": { + "value": [ + { + "owner_url": "https://api.github.com/repos/api-playground/projects-test", + "url": "https://api.github.com/projects/1002604", + "html_url": "https://github.com/api-playground/projects-test/projects/1", + "columns_url": "https://api.github.com/projects/1002604/columns", + "id": 1002604, + "node_id": "MDc6UHJvamVjdDEwMDI2MDQ=", + "name": "Projects Documentation", + "body": "Developer documentation project for the developer site.", + "number": 1, + "state": "open", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2011-04-10T20:09:31Z", + "updated_at": "2014-03-03T18:58:10Z" + } + ] + }, + "pull-request": { + "value": { + "url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347", + "id": 1, + "node_id": "MDExOlB1bGxSZXF1ZXN0MQ==", + "html_url": "https://github.com/octocat/Hello-World/pull/1347", + "diff_url": "https://github.com/octocat/Hello-World/pull/1347.diff", + "patch_url": "https://github.com/octocat/Hello-World/pull/1347.patch", + "issue_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits", + "review_comments_url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments", + "review_comment_url": "https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "number": 1347, + "state": "open", + "locked": true, + "title": "Amazing new feature", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "body": "Please pull these awesome changes in!", + "labels": [ + { + "id": 208045946, + "node_id": "MDU6TGFiZWwyMDgwNDU5NDY=", + "url": "https://api.github.com/repos/octocat/Hello-World/labels/bug", + "name": "bug", + "description": "Something isn't working", + "color": "f29513", + "default": true + } + ], + "milestone": { + "url": "https://api.github.com/repos/octocat/Hello-World/milestones/1", + "html_url": "https://github.com/octocat/Hello-World/milestones/v1.0", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/milestones/1/labels", + "id": 1002604, + "node_id": "MDk6TWlsZXN0b25lMTAwMjYwNA==", + "number": 1, + "state": "open", + "title": "v1.0", + "description": "Tracking milestone for version 1.0", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 4, + "closed_issues": 8, + "created_at": "2011-04-10T20:09:31Z", + "updated_at": "2014-03-03T18:58:10Z", + "closed_at": "2013-02-12T13:22:01Z", + "due_on": "2012-10-09T23:39:01Z" + }, + "active_lock_reason": "too heated", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:01:12Z", + "closed_at": "2011-01-26T19:01:12Z", + "merged_at": "2011-01-26T19:01:12Z", + "merge_commit_sha": "e5bd3914e2e596debea16f433f57875b5b90bcd6", + "assignee": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + { + "login": "hubot", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/hubot_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/hubot", + "html_url": "https://github.com/hubot", + "followers_url": "https://api.github.com/users/hubot/followers", + "following_url": "https://api.github.com/users/hubot/following{/other_user}", + "gists_url": "https://api.github.com/users/hubot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hubot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hubot/subscriptions", + "organizations_url": "https://api.github.com/users/hubot/orgs", + "repos_url": "https://api.github.com/users/hubot/repos", + "events_url": "https://api.github.com/users/hubot/events{/privacy}", + "received_events_url": "https://api.github.com/users/hubot/received_events", + "type": "User", + "site_admin": true + } + ], + "requested_reviewers": [ + { + "login": "other_user", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/other_user_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/other_user", + "html_url": "https://github.com/other_user", + "followers_url": "https://api.github.com/users/other_user/followers", + "following_url": "https://api.github.com/users/other_user/following{/other_user}", + "gists_url": "https://api.github.com/users/other_user/gists{/gist_id}", + "starred_url": "https://api.github.com/users/other_user/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/other_user/subscriptions", + "organizations_url": "https://api.github.com/users/other_user/orgs", + "repos_url": "https://api.github.com/users/other_user/repos", + "events_url": "https://api.github.com/users/other_user/events{/privacy}", + "received_events_url": "https://api.github.com/users/other_user/received_events", + "type": "User", + "site_admin": false + } + ], + "requested_teams": [ + { + "id": 1, + "node_id": "MDQ6VGVhbTE=", + "url": "https://api.github.com/teams/1", + "html_url": "https://github.com/orgs/github/teams/justice-league", + "name": "Justice League", + "slug": "justice-league", + "description": "A great team.", + "privacy": "closed", + "permission": "admin", + "members_url": "https://api.github.com/teams/1/members{/member}", + "repositories_url": "https://api.github.com/teams/1/repos" + } + ], + "head": { + "label": "octocat:new-topic", + "ref": "new-topic", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "repo": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "allow_merge_commit": true, + "forks": 123, + "open_issues": 123, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==" + }, + "watchers": 123 + } + }, + "base": { + "label": "octocat:master", + "ref": "master", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "repo": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "allow_merge_commit": true, + "forks": 123, + "open_issues": 123, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==" + }, + "watchers": 123 + } + }, + "_links": { + "self": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/1347" + }, + "html": { + "href": "https://github.com/octocat/Hello-World/pull/1347" + }, + "issue": { + "href": "https://api.github.com/repos/octocat/Hello-World/issues/1347" + }, + "comments": { + "href": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments" + }, + "review_comments": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments" + }, + "review_comment": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number}" + }, + "commits": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits" + }, + "statuses": { + "href": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e" + } + }, + "author_association": "OWNER", + "draft": false, + "merged": false, + "mergeable": true, + "rebaseable": true, + "mergeable_state": "clean", + "merged_by": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "comments": 10, + "review_comments": 0, + "maintainer_can_modify": true, + "commits": 3, + "additions": 100, + "deletions": 3, + "changed_files": 5 + } + }, + "pull-request-review-comment-items": { + "value": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1", + "pull_request_review_id": 42, + "id": 10, + "node_id": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw", + "diff_hunk": "@@ -16,33 +16,40 @@ public class Connection : IConnection...", + "path": "file1.txt", + "position": 1, + "original_position": 4, + "commit_id": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "original_commit_id": "9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840", + "in_reply_to_id": 8, + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "body": "Great stuff!", + "created_at": "2011-04-14T16:00:49Z", + "updated_at": "2011-04-14T16:00:49Z", + "html_url": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1", + "pull_request_url": "https://api.github.com/repos/octocat/Hello-World/pulls/1", + "author_association": "NONE", + "_links": { + "self": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1" + }, + "html": { + "href": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1" + }, + "pull_request": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/1" + } + }, + "start_line": 1, + "original_start_line": 1, + "start_side": "RIGHT", + "line": 2, + "original_line": 2, + "side": "RIGHT" + } + ] + }, + "pull-request-review-comment-2": { + "value": { + "url": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1", + "pull_request_review_id": 42, + "id": 10, + "node_id": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw", + "diff_hunk": "@@ -16,33 +16,40 @@ public class Connection : IConnection...", + "path": "file1.txt", + "position": 1, + "original_position": 4, + "commit_id": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "original_commit_id": "9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840", + "in_reply_to_id": 8, + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "body": "Great stuff!", + "created_at": "2011-04-14T16:00:49Z", + "updated_at": "2011-04-14T16:00:49Z", + "html_url": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1", + "pull_request_url": "https://api.github.com/repos/octocat/Hello-World/pulls/1", + "author_association": "NONE", + "_links": { + "self": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1" + }, + "html": { + "href": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1" + }, + "pull_request": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/1" + } + }, + "start_line": 1, + "original_start_line": 1, + "start_side": "RIGHT", + "line": 2, + "original_line": 2, + "side": "RIGHT" + } + }, + "pull-request-review-comment-example-for-a-multi-line-comment": { + "value": { + "url": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1", + "pull_request_review_id": 42, + "id": 10, + "node_id": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw", + "diff_hunk": "@@ -16,33 +16,40 @@ public class Connection : IConnection...", + "path": "file1.txt", + "position": 1, + "original_position": 4, + "commit_id": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "original_commit_id": "9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840", + "in_reply_to_id": 8, + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "body": "Great stuff!", + "created_at": "2011-04-14T16:00:49Z", + "updated_at": "2011-04-14T16:00:49Z", + "html_url": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1", + "pull_request_url": "https://api.github.com/repos/octocat/Hello-World/pulls/1", + "author_association": "NONE", + "_links": { + "self": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1" + }, + "html": { + "href": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1" + }, + "pull_request": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/1" + } + }, + "start_line": 1, + "original_start_line": 1, + "start_side": "RIGHT", + "line": 2, + "original_line": 2, + "side": "RIGHT" + } + }, + "pull-request-review-comment": { + "value": { + "url": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1", + "pull_request_review_id": 42, + "id": 10, + "node_id": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw", + "diff_hunk": "@@ -16,33 +16,40 @@ public class Connection : IConnection...", + "path": "file1.txt", + "position": 1, + "original_position": 4, + "commit_id": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "original_commit_id": "9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840", + "in_reply_to_id": 426899381, + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "body": "Great stuff!", + "created_at": "2011-04-14T16:00:49Z", + "updated_at": "2011-04-14T16:00:49Z", + "html_url": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1", + "pull_request_url": "https://api.github.com/repos/octocat/Hello-World/pulls/1", + "author_association": "NONE", + "_links": { + "self": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1" + }, + "html": { + "href": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1" + }, + "pull_request": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/1" + } + }, + "start_line": 1, + "original_start_line": 1, + "start_side": "RIGHT", + "line": 2, + "original_line": 2, + "side": "RIGHT" + } + }, + "diff-entry-items": { + "value": [ + { + "sha": "bbcd538c8e72b8c175046e27cc8f907076331401", + "filename": "file1.txt", + "status": "added", + "additions": 103, + "deletions": 21, + "changes": 124, + "blob_url": "https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt", + "raw_url": "https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/file1.txt?ref=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "patch": "@@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test" + } + ] + }, + "pull-request-merge-result-response-if-merge-was-successful": { + "value": { + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "merged": true, + "message": "Pull Request successfully merged" + } + }, + "simple-pull-request-review-request": { + "value": { + "users": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "teams": [ + { + "id": 1, + "node_id": "MDQ6VGVhbTE=", + "url": "https://api.github.com/teams/1", + "html_url": "https://github.com/orgs/github/teams/justice-league", + "name": "Justice League", + "slug": "justice-league", + "description": "A great team.", + "privacy": "closed", + "permission": "admin", + "members_url": "https://api.github.com/teams/1/members{/member}", + "repositories_url": "https://api.github.com/teams/1/repos", + "parent": null + } + ] + } + }, + "pull-request-review-request": { + "value": { + "url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347", + "id": 1, + "node_id": "MDExOlB1bGxSZXF1ZXN0MQ==", + "html_url": "https://github.com/octocat/Hello-World/pull/1347", + "diff_url": "https://github.com/octocat/Hello-World/pull/1347.diff", + "patch_url": "https://github.com/octocat/Hello-World/pull/1347.patch", + "issue_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits", + "review_comments_url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments", + "review_comment_url": "https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "number": 1347, + "state": "open", + "locked": true, + "title": "Amazing new feature", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "body": "Please pull these awesome changes in!", + "labels": [ + { + "id": 208045946, + "node_id": "MDU6TGFiZWwyMDgwNDU5NDY=", + "url": "https://api.github.com/repos/octocat/Hello-World/labels/bug", + "name": "bug", + "description": "Something isn't working", + "color": "f29513", + "default": true + } + ], + "milestone": { + "url": "https://api.github.com/repos/octocat/Hello-World/milestones/1", + "html_url": "https://github.com/octocat/Hello-World/milestones/v1.0", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/milestones/1/labels", + "id": 1002604, + "node_id": "MDk6TWlsZXN0b25lMTAwMjYwNA==", + "number": 1, + "state": "open", + "title": "v1.0", + "description": "Tracking milestone for version 1.0", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 4, + "closed_issues": 8, + "created_at": "2011-04-10T20:09:31Z", + "updated_at": "2014-03-03T18:58:10Z", + "closed_at": "2013-02-12T13:22:01Z", + "due_on": "2012-10-09T23:39:01Z" + }, + "active_lock_reason": "too heated", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:01:12Z", + "closed_at": "2011-01-26T19:01:12Z", + "merged_at": "2011-01-26T19:01:12Z", + "merge_commit_sha": "e5bd3914e2e596debea16f433f57875b5b90bcd6", + "assignee": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + { + "login": "hubot", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/hubot_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/hubot", + "html_url": "https://github.com/hubot", + "followers_url": "https://api.github.com/users/hubot/followers", + "following_url": "https://api.github.com/users/hubot/following{/other_user}", + "gists_url": "https://api.github.com/users/hubot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hubot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hubot/subscriptions", + "organizations_url": "https://api.github.com/users/hubot/orgs", + "repos_url": "https://api.github.com/users/hubot/repos", + "events_url": "https://api.github.com/users/hubot/events{/privacy}", + "received_events_url": "https://api.github.com/users/hubot/received_events", + "type": "User", + "site_admin": true + } + ], + "requested_reviewers": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + { + "login": "hubot", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/hubot_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/hubot", + "html_url": "https://github.com/hubot", + "followers_url": "https://api.github.com/users/hubot/followers", + "following_url": "https://api.github.com/users/hubot/following{/other_user}", + "gists_url": "https://api.github.com/users/hubot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/hubot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/hubot/subscriptions", + "organizations_url": "https://api.github.com/users/hubot/orgs", + "repos_url": "https://api.github.com/users/hubot/repos", + "events_url": "https://api.github.com/users/hubot/events{/privacy}", + "received_events_url": "https://api.github.com/users/hubot/received_events", + "type": "User", + "site_admin": true + }, + { + "login": "other_user", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/other_user_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/other_user", + "html_url": "https://github.com/other_user", + "followers_url": "https://api.github.com/users/other_user/followers", + "following_url": "https://api.github.com/users/other_user/following{/other_user}", + "gists_url": "https://api.github.com/users/other_user/gists{/gist_id}", + "starred_url": "https://api.github.com/users/other_user/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/other_user/subscriptions", + "organizations_url": "https://api.github.com/users/other_user/orgs", + "repos_url": "https://api.github.com/users/other_user/repos", + "events_url": "https://api.github.com/users/other_user/events{/privacy}", + "received_events_url": "https://api.github.com/users/other_user/received_events", + "type": "User", + "site_admin": false + } + ], + "requested_teams": [ + { + "id": 1, + "node_id": "MDQ6VGVhbTE=", + "url": "https://api.github.com/teams/1", + "html_url": "https://github.com/orgs/github/teams/justice-league", + "name": "Justice League", + "slug": "justice-league", + "description": "A great team.", + "privacy": "closed", + "permission": "admin", + "members_url": "https://api.github.com/teams/1/members{/member}", + "repositories_url": "https://api.github.com/teams/1/repos" + } + ], + "head": { + "label": "octocat:new-topic", + "ref": "new-topic", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "repo": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + }, + "base": { + "label": "octocat:master", + "ref": "master", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "repo": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://api.github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + }, + "_links": { + "self": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/1347" + }, + "html": { + "href": "https://github.com/octocat/Hello-World/pull/1347" + }, + "issue": { + "href": "https://api.github.com/repos/octocat/Hello-World/issues/1347" + }, + "comments": { + "href": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments" + }, + "review_comments": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments" + }, + "review_comment": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number}" + }, + "commits": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits" + }, + "statuses": { + "href": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e" + } + }, + "author_association": "OWNER", + "draft": false + } + }, + "pull-request-review-items": { + "value": [ + { + "id": 80, + "node_id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA=", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "body": "Here is the body for the review.", + "state": "APPROVED", + "html_url": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80", + "pull_request_url": "https://api.github.com/repos/octocat/Hello-World/pulls/12", + "_links": { + "html": { + "href": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80" + }, + "pull_request": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/12" + } + }, + "submitted_at": "2019-11-17T17:43:43Z", + "commit_id": "ecdd80bb57125d7ba9641ffaa4d7d2c19d3f3091", + "author_association": "collaborator" + } + ] + }, + "pull-request-review": { + "value": { + "id": 80, + "node_id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA=", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "body": "This is close to perfect! Please address the suggested inline change.", + "state": "CHANGES_REQUESTED", + "html_url": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80", + "pull_request_url": "https://api.github.com/repos/octocat/Hello-World/pulls/12", + "_links": { + "html": { + "href": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80" + }, + "pull_request": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/12" + } + }, + "submitted_at": "2019-11-17T17:43:43Z", + "commit_id": "ecdd80bb57125d7ba9641ffaa4d7d2c19d3f3091", + "author_association": "collaborator" + } + }, + "pull-request-review-4": { + "value": { + "id": 80, + "node_id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA=", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "body": "Here is the body for the review.", + "state": "APPROVED", + "html_url": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80", + "pull_request_url": "https://api.github.com/repos/octocat/Hello-World/pulls/12", + "_links": { + "html": { + "href": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80" + }, + "pull_request": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/12" + } + }, + "submitted_at": "2019-11-17T17:43:43Z", + "commit_id": "ecdd80bb57125d7ba9641ffaa4d7d2c19d3f3091", + "author_association": "collaborator" + } + }, + "pull-request-review-5": { + "value": { + "id": 80, + "node_id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA=", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "body": "This is close to perfect! Please address the suggested inline change. And add more about this.", + "state": "CHANGES_REQUESTED", + "html_url": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80", + "pull_request_url": "https://api.github.com/repos/octocat/Hello-World/pulls/12", + "_links": { + "html": { + "href": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80" + }, + "pull_request": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/12" + } + }, + "submitted_at": "2019-11-17T17:43:43Z", + "commit_id": "ecdd80bb57125d7ba9641ffaa4d7d2c19d3f3091", + "author_association": "collaborator" + } + }, + "review-comment-items": { + "value": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1", + "pull_request_review_id": 42, + "id": 10, + "node_id": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw", + "diff_hunk": "@@ -16,33 +16,40 @@ public class Connection : IConnection...", + "path": "file1.txt", + "position": 1, + "original_position": 4, + "commit_id": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "original_commit_id": "9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840", + "in_reply_to_id": 8, + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "body": "Great stuff!", + "created_at": "2011-04-14T16:00:49Z", + "updated_at": "2011-04-14T16:00:49Z", + "html_url": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1", + "pull_request_url": "https://api.github.com/repos/octocat/Hello-World/pulls/1", + "author_association": "NONE", + "_links": { + "self": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1" + }, + "html": { + "href": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1" + }, + "pull_request": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/1" + } + } + } + ] + }, + "pull-request-review-3": { + "value": { + "id": 80, + "node_id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA=", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "body": "Here is the body for the review.", + "state": "DISMISSED", + "html_url": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80", + "pull_request_url": "https://api.github.com/repos/octocat/Hello-World/pulls/12", + "_links": { + "html": { + "href": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80" + }, + "pull_request": { + "href": "https://api.github.com/repos/octocat/Hello-World/pulls/12" + } + }, + "submitted_at": "2019-11-17T17:43:43Z", + "commit_id": "ecdd80bb57125d7ba9641ffaa4d7d2c19d3f3091", + "author_association": "collaborator" + } + }, + "content-file": { + "value": { + "type": "file", + "encoding": "base64", + "size": 5362, + "name": "README.md", + "path": "README.md", + "content": "encoded content ...", + "sha": "3d21ec53a331a6f037a91c368710b99387d012c1", + "url": "https://api.github.com/repos/octokit/octokit.rb/contents/README.md", + "git_url": "https://api.github.com/repos/octokit/octokit.rb/git/blobs/3d21ec53a331a6f037a91c368710b99387d012c1", + "html_url": "https://github.com/octokit/octokit.rb/blob/master/README.md", + "download_url": "https://raw.githubusercontent.com/octokit/octokit.rb/master/README.md", + "_links": { + "git": "https://api.github.com/repos/octokit/octokit.rb/git/blobs/3d21ec53a331a6f037a91c368710b99387d012c1", + "self": "https://api.github.com/repos/octokit/octokit.rb/contents/README.md", + "html": "https://github.com/octokit/octokit.rb/blob/master/README.md" + } + } + }, + "release-items": { + "value": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/releases/1", + "html_url": "https://github.com/octocat/Hello-World/releases/v1.0.0", + "assets_url": "https://api.github.com/repos/octocat/Hello-World/releases/1/assets", + "upload_url": "https://uploads.github.com/repos/octocat/Hello-World/releases/1/assets{?name,label}", + "tarball_url": "https://api.github.com/repos/octocat/Hello-World/tarball/v1.0.0", + "zipball_url": "https://api.github.com/repos/octocat/Hello-World/zipball/v1.0.0", + "id": 1, + "node_id": "MDc6UmVsZWFzZTE=", + "tag_name": "v1.0.0", + "target_commitish": "master", + "name": "v1.0.0", + "body": "Description of the release", + "draft": false, + "prerelease": false, + "created_at": "2013-02-27T19:35:32Z", + "published_at": "2013-02-27T19:35:32Z", + "author": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "assets": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/releases/assets/1", + "browser_download_url": "https://github.com/octocat/Hello-World/releases/download/v1.0.0/example.zip", + "id": 1, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE=", + "name": "example.zip", + "label": "short description", + "state": "uploaded", + "content_type": "application/zip", + "size": 1024, + "download_count": 42, + "created_at": "2013-02-27T19:35:32Z", + "updated_at": "2013-02-27T19:35:32Z", + "uploader": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + ] + } + ] + }, + "release": { + "value": { + "url": "https://api.github.com/repos/octocat/Hello-World/releases/1", + "html_url": "https://github.com/octocat/Hello-World/releases/v1.0.0", + "assets_url": "https://api.github.com/repos/octocat/Hello-World/releases/1/assets", + "upload_url": "https://uploads.github.com/repos/octocat/Hello-World/releases/1/assets{?name,label}", + "tarball_url": "https://api.github.com/repos/octocat/Hello-World/tarball/v1.0.0", + "zipball_url": "https://api.github.com/repos/octocat/Hello-World/zipball/v1.0.0", + "id": 1, + "node_id": "MDc6UmVsZWFzZTE=", + "tag_name": "v1.0.0", + "target_commitish": "master", + "name": "v1.0.0", + "body": "Description of the release", + "draft": false, + "prerelease": false, + "created_at": "2013-02-27T19:35:32Z", + "published_at": "2013-02-27T19:35:32Z", + "author": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "assets": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/releases/assets/1", + "browser_download_url": "https://github.com/octocat/Hello-World/releases/download/v1.0.0/example.zip", + "id": 1, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE=", + "name": "example.zip", + "label": "short description", + "state": "uploaded", + "content_type": "application/zip", + "size": 1024, + "download_count": 42, + "created_at": "2013-02-27T19:35:32Z", + "updated_at": "2013-02-27T19:35:32Z", + "uploader": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + ] + } + }, + "release-asset": { + "value": { + "url": "https://api.github.com/repos/octocat/Hello-World/releases/assets/1", + "browser_download_url": "https://github.com/octocat/Hello-World/releases/download/v1.0.0/example.zip", + "id": 1, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE=", + "name": "example.zip", + "label": "short description", + "state": "uploaded", + "content_type": "application/zip", + "size": 1024, + "download_count": 42, + "created_at": "2013-02-27T19:35:32Z", + "updated_at": "2013-02-27T19:35:32Z", + "uploader": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + }, + "release-asset-items": { + "value": [ + { + "url": "https://api.github.com/repos/octocat/Hello-World/releases/assets/1", + "browser_download_url": "https://github.com/octocat/Hello-World/releases/download/v1.0.0/example.zip", + "id": 1, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE=", + "name": "example.zip", + "label": "short description", + "state": "uploaded", + "content_type": "application/zip", + "size": 1024, + "download_count": 42, + "created_at": "2013-02-27T19:35:32Z", + "updated_at": "2013-02-27T19:35:32Z", + "uploader": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + ] + }, + "release-asset-response-for-successful-upload": { + "value": { + "url": "https://api.github.com/repos/octocat/Hello-World/releases/assets/1", + "browser_download_url": "https://github.com/octocat/Hello-World/releases/download/v1.0.0/example.zip", + "id": 1, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE=", + "name": "example.zip", + "label": "short description", + "state": "uploaded", + "content_type": "application/zip", + "size": 1024, + "download_count": 42, + "created_at": "2013-02-27T19:35:32Z", + "updated_at": "2013-02-27T19:35:32Z", + "uploader": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + }, + "secret-scanning-alert-list": { + "value": [ + { + "number": 2, + "created_at": "2020-11-06T18:48:51Z", + "url": "https://api.github.com/repos/owner/private-repo/secret-scanning/alerts/2", + "html_url": "https://github.com/owner/private-repo/security/secret-scanning/2", + "state": "resolved", + "resolution": "false_positive", + "resolved_at": "2020-11-07T02:47:13Z", + "resolved_by": { + "login": "monalisa", + "id": 2, + "node_id": "MDQ6VXNlcjI=", + "avatar_url": "https://alambic.github.com/avatars/u/2?", + "gravatar_id": "", + "url": "https://api.github.com/users/monalisa", + "html_url": "https://github.com/monalisa", + "followers_url": "https://api.github.com/users/monalisa/followers", + "following_url": "https://api.github.com/users/monalisa/following{/other_user}", + "gists_url": "https://api.github.com/users/monalisa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/monalisa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/monalisa/subscriptions", + "organizations_url": "https://api.github.com/users/monalisa/orgs", + "repos_url": "https://api.github.com/users/monalisa/repos", + "events_url": "https://api.github.com/users/monalisa/events{/privacy}", + "received_events_url": "https://api.github.com/users/monalisa/received_events", + "type": "User", + "site_admin": true + }, + "secret_type": "adafruit_io_key", + "secret": "aio_XXXXXXXXXXXXXXXXXXXXXXXXXXXX" + }, + { + "number": 1, + "created_at": "2020-11-06T18:18:30Z", + "url": "https://api.github.com/repos/owner/repo/secret-scanning/alerts/1", + "html_url": "https://github.com/owner/repo/security/secret-scanning/1", + "state": "open", + "resolution": null, + "resolved_at": null, + "resolved_by": null, + "secret_type": "mailchimp_api_key", + "secret": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-us2" + } + ] + }, + "secret-scanning-alert-open": { + "value": { + "number": 42, + "created_at": "2020-11-06T18:18:30Z", + "url": "https://api.github.com/repos/owner/private-repo/secret-scanning/alerts/42", + "html_url": "https://github.com/owner/private-repo/security/secret-scanning/42", + "state": "open", + "resolution": null, + "resolved_at": null, + "resolved_by": null, + "secret_type": "mailchimp_api_key", + "secret": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-us2" + } + }, + "secret-scanning-alert-resolved": { + "value": { + "number": 42, + "created_at": "2020-11-06T18:18:30Z", + "url": "https://api.github.com/repos/owner/private-repo/secret-scanning/alerts/42", + "html_url": "https://github.com/owner/private-repo/security/secret-scanning/42", + "state": "resolved", + "resolution": "used_in_tests", + "resolved_at": "2020-11-16T22:42:07Z", + "resolved_by": { + "login": "monalisa", + "id": 2, + "node_id": "MDQ6VXNlcjI=", + "avatar_url": "https://alambic.github.com/avatars/u/2?", + "gravatar_id": "", + "url": "https://api.github.com/users/monalisa", + "html_url": "https://github.com/monalisa", + "followers_url": "https://api.github.com/users/monalisa/followers", + "following_url": "https://api.github.com/users/monalisa/following{/other_user}", + "gists_url": "https://api.github.com/users/monalisa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/monalisa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/monalisa/subscriptions", + "organizations_url": "https://api.github.com/users/monalisa/orgs", + "repos_url": "https://api.github.com/users/monalisa/repos", + "events_url": "https://api.github.com/users/monalisa/events{/privacy}", + "received_events_url": "https://api.github.com/users/monalisa/received_events", + "type": "User", + "site_admin": true + }, + "secret_type": "mailchimp_api_key", + "secret": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-us2" + } + }, + "simple-user-items-default-response": { + "summary": "Default response", + "value": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ] + }, + "stargazer-items-alternative-response-with-star-creation-timestamps": { + "summary": "Alternative response with star creation timestamps", + "value": [ + { + "starred_at": "2011-01-16T19:06:43Z", + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + ] + }, + "code-frequency-stat-items": { "value": [[1302998400, 1124, -435]] }, + "commit-activity-items": { + "value": [ + { "days": [0, 3, 26, 20, 39, 1, 0], "total": 89, "week": 1336280400 } + ] + }, + "contributor-activity-items": { + "value": [ + { + "author": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "total": 135, + "weeks": [{ "w": "1367712000", "a": 6898, "d": 77, "c": 10 }] + } + ] + }, + "participation-stats": { + "value": { + "all": [ + 11, + 21, + 15, + 2, + 8, + 1, + 8, + 23, + 17, + 21, + 11, + 10, + 33, + 91, + 38, + 34, + 22, + 23, + 32, + 3, + 43, + 87, + 71, + 18, + 13, + 5, + 13, + 16, + 66, + 27, + 12, + 45, + 110, + 117, + 13, + 8, + 18, + 9, + 19, + 26, + 39, + 12, + 20, + 31, + 46, + 91, + 45, + 10, + 24, + 9, + 29, + 7 + ], + "owner": [ + 3, + 2, + 3, + 0, + 2, + 0, + 5, + 14, + 7, + 9, + 1, + 5, + 0, + 48, + 19, + 2, + 0, + 1, + 10, + 2, + 23, + 40, + 35, + 8, + 8, + 2, + 10, + 6, + 30, + 0, + 2, + 9, + 53, + 104, + 3, + 3, + 10, + 4, + 7, + 11, + 21, + 4, + 4, + 22, + 26, + 63, + 11, + 2, + 14, + 1, + 10, + 3 + ] + } + }, + "code-frequency-stat-items-2": { + "value": [ + [0, 0, 5], + [0, 1, 43], + [0, 2, 21] + ] + }, + "status": { + "value": { + "url": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "avatar_url": "https://github.com/images/error/hubot_happy.gif", + "id": 1, + "node_id": "MDY6U3RhdHVzMQ==", + "state": "success", + "description": "Build has completed successfully", + "target_url": "https://ci.example.com/1000/output", + "context": "continuous-integration/jenkins", + "created_at": "2012-07-20T01:19:13Z", + "updated_at": "2012-07-20T01:19:13Z", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + }, + "repository-subscription-response-if-you-subscribe-to-the-repository": { + "value": { + "subscribed": true, + "ignored": false, + "reason": null, + "created_at": "2012-10-06T21:34:12Z", + "url": "https://api.github.com/repos/octocat/example/subscription", + "repository_url": "https://api.github.com/repos/octocat/example" + } + }, + "repository-subscription": { + "value": { + "subscribed": true, + "ignored": false, + "reason": null, + "created_at": "2012-10-06T21:34:12Z", + "url": "https://api.github.com/repos/octocat/example/subscription", + "repository_url": "https://api.github.com/repos/octocat/example" + } + }, + "tag-items": { + "value": [ + { + "name": "v0.1", + "commit": { + "sha": "c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc", + "url": "https://api.github.com/repos/octocat/Hello-World/commits/c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc" + }, + "zipball_url": "https://github.com/octocat/Hello-World/zipball/v0.1", + "tarball_url": "https://github.com/octocat/Hello-World/tarball/v0.1", + "node_id": "MDQ6VXNlcjE=" + } + ] + }, + "topic": { "value": { "names": ["octocat", "atom", "electron", "api"] } }, + "clone-traffic": { + "value": { + "count": 173, + "uniques": 128, + "clones": [ + { "timestamp": "2016-10-10T00:00:00Z", "count": 2, "uniques": 1 }, + { "timestamp": "2016-10-11T00:00:00Z", "count": 17, "uniques": 16 }, + { "timestamp": "2016-10-12T00:00:00Z", "count": 21, "uniques": 15 }, + { "timestamp": "2016-10-13T00:00:00Z", "count": 8, "uniques": 7 }, + { "timestamp": "2016-10-14T00:00:00Z", "count": 5, "uniques": 5 }, + { "timestamp": "2016-10-15T00:00:00Z", "count": 2, "uniques": 2 }, + { "timestamp": "2016-10-16T00:00:00Z", "count": 8, "uniques": 7 }, + { "timestamp": "2016-10-17T00:00:00Z", "count": 26, "uniques": 15 }, + { "timestamp": "2016-10-18T00:00:00Z", "count": 19, "uniques": 17 }, + { "timestamp": "2016-10-19T00:00:00Z", "count": 19, "uniques": 14 }, + { "timestamp": "2016-10-20T00:00:00Z", "count": 19, "uniques": 15 }, + { "timestamp": "2016-10-21T00:00:00Z", "count": 9, "uniques": 7 }, + { "timestamp": "2016-10-22T00:00:00Z", "count": 5, "uniques": 5 }, + { "timestamp": "2016-10-23T00:00:00Z", "count": 6, "uniques": 5 }, + { "timestamp": "2016-10-24T00:00:00Z", "count": 7, "uniques": 5 } + ] + } + }, + "content-traffic-items": { + "value": [ + { + "path": "/github/hubot", + "title": "github/hubot: A customizable life embetterment robot.", + "count": 3542, + "uniques": 2225 + }, + { + "path": "/github/hubot/blob/master/docs/scripting.md", + "title": "hubot/scripting.md at master · github/hubot · GitHub", + "count": 1707, + "uniques": 804 + }, + { + "path": "/github/hubot/tree/master/docs", + "title": "hubot/docs at master · github/hubot · GitHub", + "count": 685, + "uniques": 435 + }, + { + "path": "/github/hubot/tree/master/src", + "title": "hubot/src at master · github/hubot · GitHub", + "count": 577, + "uniques": 347 + }, + { + "path": "/github/hubot/blob/master/docs/index.md", + "title": "hubot/index.md at master · github/hubot · GitHub", + "count": 379, + "uniques": 259 + }, + { + "path": "/github/hubot/blob/master/docs/adapters.md", + "title": "hubot/adapters.md at master · github/hubot · GitHub", + "count": 354, + "uniques": 201 + }, + { + "path": "/github/hubot/tree/master/examples", + "title": "hubot/examples at master · github/hubot · GitHub", + "count": 340, + "uniques": 260 + }, + { + "path": "/github/hubot/blob/master/docs/deploying/heroku.md", + "title": "hubot/heroku.md at master · github/hubot · GitHub", + "count": 324, + "uniques": 217 + }, + { + "path": "/github/hubot/blob/master/src/robot.coffee", + "title": "hubot/robot.coffee at master · github/hubot · GitHub", + "count": 293, + "uniques": 191 + }, + { + "path": "/github/hubot/blob/master/LICENSE.md", + "title": "hubot/LICENSE.md at master · github/hubot · GitHub", + "count": 281, + "uniques": 222 + } + ] + }, + "referrer-traffic-items": { + "value": [ + { "referrer": "Google", "count": 4, "uniques": 3 }, + { "referrer": "stackoverflow.com", "count": 2, "uniques": 2 }, + { "referrer": "eggsonbread.com", "count": 1, "uniques": 1 }, + { "referrer": "yandex.ru", "count": 1, "uniques": 1 } + ] + }, + "view-traffic": { + "value": { + "count": 14850, + "uniques": 3782, + "views": [ + { + "timestamp": "2016-10-10T00:00:00Z", + "count": 440, + "uniques": 143 + }, + { + "timestamp": "2016-10-11T00:00:00Z", + "count": 1308, + "uniques": 414 + }, + { + "timestamp": "2016-10-12T00:00:00Z", + "count": 1486, + "uniques": 452 + }, + { + "timestamp": "2016-10-13T00:00:00Z", + "count": 1170, + "uniques": 401 + }, + { + "timestamp": "2016-10-14T00:00:00Z", + "count": 868, + "uniques": 266 + }, + { + "timestamp": "2016-10-15T00:00:00Z", + "count": 495, + "uniques": 157 + }, + { + "timestamp": "2016-10-16T00:00:00Z", + "count": 524, + "uniques": 175 + }, + { + "timestamp": "2016-10-17T00:00:00Z", + "count": 1263, + "uniques": 412 + }, + { + "timestamp": "2016-10-18T00:00:00Z", + "count": 1402, + "uniques": 417 + }, + { + "timestamp": "2016-10-19T00:00:00Z", + "count": 1394, + "uniques": 424 + }, + { + "timestamp": "2016-10-20T00:00:00Z", + "count": 1492, + "uniques": 448 + }, + { + "timestamp": "2016-10-21T00:00:00Z", + "count": 1153, + "uniques": 332 + }, + { + "timestamp": "2016-10-22T00:00:00Z", + "count": 566, + "uniques": 168 + }, + { + "timestamp": "2016-10-23T00:00:00Z", + "count": 675, + "uniques": 184 + }, + { + "timestamp": "2016-10-24T00:00:00Z", + "count": 614, + "uniques": 237 + } + ] + } + }, + "repository-3": { + "value": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "forks": 9, + "stargazers_count": 80, + "watchers_count": 80, + "watchers": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "open_issues": 0, + "is_template": false, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://github.com/licenses/mit" + } + } + }, + "public-repository-items": { + "value": [ + { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks" + } + ] + }, + "scim-enterprise-group-list": { + "value": { + "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"], + "totalResults": 2, + "itemsPerPage": 2, + "startIndex": 1, + "Resources": [ + { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"], + "id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc", + "externalId": null, + "displayName": "octo-org", + "members": [ + { + "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", + "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", + "display": "octocat@github.com" + }, + { + "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", + "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", + "display": "hubot@example.com" + } + ], + "meta": { + "resourceType": "Group", + "created": "2020-06-09T03:10:17.000+10:00", + "lastModified": "2020-06-09T03:10:17.000+10:00", + "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Groups/abcd27f8-a9aa-11ea-8221-f59b2be9cccc" + } + }, + { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"], + "id": "5e75bbbb-aa1a-11ea-8644-75ff655cdddd", + "externalId": null, + "displayName": "octo-docs-org", + "members": [ + { + "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", + "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", + "display": "octocat@github.com" + } + ], + "meta": { + "resourceType": "Group", + "created": "2020-06-09T16:28:01.000+10:00", + "lastModified": "2020-06-09T16:28:01.000+10:00", + "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Groups/5e75bbbb-aa1a-11ea-8644-75ff655cdddd" + } + } + ] + } + }, + "scim-enterprise-group": { + "value": { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"], + "id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc", + "externalId": null, + "displayName": "octo-org", + "members": [ + { + "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", + "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", + "display": "octocat@github.com" + }, + { + "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", + "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", + "display": "hubot@example.com" + } + ], + "meta": { + "resourceType": "Group", + "created": "2020-06-09T03:10:17.000+10:0", + "lastModified": "2020-06-09T03:10:17.000+10:00", + "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Groups/abcd27f8-a9aa-11ea-8221-f59b2be9cccc" + } + } + }, + "scim-enterprise-group-2": { + "value": { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"], + "id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc", + "externalId": null, + "displayName": "octo-org", + "members": [ + { + "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", + "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", + "display": "octocat@github.com" + } + ], + "meta": { + "resourceType": "Group", + "created": "2020-06-09T03:10:17.000+10:00", + "lastModified": "2020-06-09T03:10:17.000+10:00", + "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Groups/abcd27f8-a9aa-11ea-8221-f59b2be9cccc" + } + } + }, + "scim-enterprise-user-list": { + "value": { + "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"], + "totalResults": 2, + "itemsPerPage": 2, + "startIndex": 1, + "Resources": [ + { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], + "id": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", + "externalId": "00dowz5dr9oSfDFRA0h7", + "userName": "octocat@github.com", + "name": { "givenName": "Mona", "familyName": "Octocat" }, + "emails": [ + { + "value": "octocat@github.com", + "primary": true, + "type": "work" + } + ], + "groups": [{ "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" }], + "active": true, + "meta": { + "resourceType": "User", + "created": "2020-05-30T04:02:34.000+10:00", + "lastModified": "2020-05-30T04:05:04.000+10:00", + "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" + } + }, + { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], + "id": "e18b8c34-a6b2-11ea-9d70-54abbd1c8fd5", + "externalId": "sdfoiausdofiua", + "userName": "hubot@example.com", + "name": { "givenName": "hu", "familyName": "bot" }, + "emails": [ + { + "value": "hubot@example.com", + "type": "work", + "primary": true + } + ], + "groups": [], + "active": true, + "meta": { + "resourceType": "User", + "created": "2020-06-05T08:29:40.000+10:00", + "lastModified": "2020-06-05T08:30:19.000+10:00", + "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/e18b8c34-a6b2-11ea-9d70-54abbd1c8fd5" + } + } + ] + } + }, + "scim-enterprise-user": { + "value": { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], + "id": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", + "externalId": "00dowz5dr9oSfDFRA0h7", + "userName": "mona.octocat@okta.example.com", + "name": { "givenName": "Mona", "familyName": "Octocat" }, + "emails": [ + { + "value": "mona.octocat@okta.example.com", + "type": "work", + "primary": true + } + ], + "groups": [{ "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" }], + "active": true, + "meta": { + "resourceType": "User", + "created": "2017-03-09T16:11:13-05:00", + "lastModified": "2017-03-09T16:11:13-05:00", + "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" + } + } + }, + "scim-enterprise-user-2": { + "value": { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], + "id": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", + "externalId": "00dowz5dr9oSfDFRA0h7", + "userName": "mona.octocat@okta.example.com", + "name": { "givenName": "Monalisa", "familyName": "Octocat" }, + "emails": [ + { + "value": "mona.octocat@okta.example.com", + "type": "work", + "primary": true + }, + { "value": "monalisa@octocat.github.com", "type": "home" } + ], + "groups": [{ "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" }], + "active": true, + "meta": { + "resourceType": "User", + "created": "2017-03-09T16:11:13-05:00", + "lastModified": "2017-03-09T16:11:13-05:00", + "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" + } + } + }, + "scim-user-list-response-with-filter": { + "summary": "Response with filter", + "value": { + "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"], + "totalResults": 1, + "itemsPerPage": 1, + "startIndex": 1, + "Resources": [ + { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], + "id": "5fc0c238-1112-11e8-8e45-920c87bdbd75", + "externalId": "00u1dhhb1fkIGP7RL1d8", + "userName": "octocat@github.com", + "displayName": "Mona Octocat", + "name": { + "givenName": "Mona", + "familyName": "Octocat", + "formatted": "Mona Octocat" + }, + "emails": [{ "value": "octocat@github.com", "primary": true }], + "active": true, + "meta": { + "resourceType": "User", + "created": "2018-02-13T15:05:24.000-08:00", + "lastModified": "2018-02-13T15:05:55.000-08:00", + "location": "https://api.github.com/scim/v2/organizations/octo-org/Users/5fc0c238-1112-11e8-8e45-920c87bdbd75" + } + } + ] + } + }, + "scim-user-list-response-without-filter": { + "summary": "Response without filter", + "value": { + "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"], + "totalResults": 2, + "itemsPerPage": 2, + "startIndex": 1, + "Resources": [ + { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], + "id": "edefdfedf-050c-11e7-8d32", + "externalId": "a7d0f98382", + "userName": "mona.octocat@okta.example.com", + "displayName": "Mona Octocat", + "name": { + "givenName": "Mona", + "familyName": "Octocat", + "formatted": "Mona Octocat" + }, + "emails": [ + { "value": "mona.octocat@okta.example.com", "primary": true } + ], + "active": true, + "meta": { + "resourceType": "User", + "created": "2017-03-09T16:11:13-05:00", + "lastModified": "2017-03-09T16:11:13-05:00", + "location": "https://api.github.com/scim/v2/organizations/octo-org/Users/edefdfedf-050c-11e7-8d32" + } + }, + { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], + "id": "77563764-eb6-24-0598234-958243", + "externalId": "sdfoiausdofiua", + "userName": "hubot@example.com", + "displayName": "hu bot", + "name": { + "givenName": "hu", + "familyName": "bot", + "formatted": "hu bot" + }, + "emails": [{ "value": "hubot@example.com", "primary": true }], + "active": true, + "meta": { + "resourceType": "User", + "created": "2017-03-09T16:11:13-05:00", + "lastModified": "2017-03-09T16:11:13-05:00", + "location": "https://api.github.com/scim/v2/organizations/octo-org/Users/77563764-eb6-24-0598234-958243" + } + } + ] + } + }, + "scim-user": { + "value": { + "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], + "id": "edefdfedf-050c-11e7-8d32", + "externalId": "a7d0f98382", + "userName": "mona.octocat@okta.example.com", + "displayName": "Monalisa Octocat", + "name": { + "givenName": "Monalisa", + "familyName": "Octocat", + "formatted": "Monalisa Octocat" + }, + "emails": [ + { "value": "mona.octocat@okta.example.com", "primary": true }, + { "value": "monalisa@octocat.github.com" } + ], + "active": true, + "meta": { + "resourceType": "User", + "created": "2017-03-09T16:11:13-05:00", + "lastModified": "2017-03-09T16:11:13-05:00", + "location": "https://api.github.com/scim/v2/organizations/octo-org/Users/edefdfedf-050c-11e7-8d32" + } + } + }, + "code-search-result-item-paginated": { + "value": { + "total_count": 7, + "incomplete_results": false, + "items": [ + { + "name": "classes.js", + "path": "src/attributes/classes.js", + "sha": "d7212f9dee2dcc18f084d7df8f417b80846ded5a", + "url": "https://api.github.com/repositories/167174/contents/src/attributes/classes.js?ref=825ac3773694e0cd23ee74895fd5aeb535b27da4", + "git_url": "https://api.github.com/repositories/167174/git/blobs/d7212f9dee2dcc18f084d7df8f417b80846ded5a", + "html_url": "https://github.com/jquery/jquery/blob/825ac3773694e0cd23ee74895fd5aeb535b27da4/src/attributes/classes.js", + "repository": { + "id": 167174, + "node_id": "MDEwOlJlcG9zaXRvcnkxNjcxNzQ=", + "name": "jquery", + "full_name": "jquery/jquery", + "owner": { + "login": "jquery", + "id": 70142, + "node_id": "MDQ6VXNlcjcwMTQy", + "avatar_url": "https://0.gravatar.com/avatar/6906f317a4733f4379b06c32229ef02f?d=https%3A%2F%2Fidenticons.github.com%2Ff426f04f2f9813718fb806b30e0093de.png", + "gravatar_id": "", + "url": "https://api.github.com/users/jquery", + "html_url": "https://github.com/jquery", + "followers_url": "https://api.github.com/users/jquery/followers", + "following_url": "https://api.github.com/users/jquery/following{/other_user}", + "gists_url": "https://api.github.com/users/jquery/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jquery/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jquery/subscriptions", + "organizations_url": "https://api.github.com/users/jquery/orgs", + "repos_url": "https://api.github.com/users/jquery/repos", + "events_url": "https://api.github.com/users/jquery/events{/privacy}", + "received_events_url": "https://api.github.com/users/jquery/received_events", + "type": "Organization", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/jquery/jquery", + "description": "jQuery JavaScript Library", + "fork": false, + "url": "https://api.github.com/repos/jquery/jquery", + "forks_url": "https://api.github.com/repos/jquery/jquery/forks", + "keys_url": "https://api.github.com/repos/jquery/jquery/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jquery/jquery/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jquery/jquery/teams", + "hooks_url": "https://api.github.com/repos/jquery/jquery/hooks", + "issue_events_url": "https://api.github.com/repos/jquery/jquery/issues/events{/number}", + "events_url": "https://api.github.com/repos/jquery/jquery/events", + "assignees_url": "https://api.github.com/repos/jquery/jquery/assignees{/user}", + "branches_url": "https://api.github.com/repos/jquery/jquery/branches{/branch}", + "tags_url": "https://api.github.com/repos/jquery/jquery/tags", + "blobs_url": "https://api.github.com/repos/jquery/jquery/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jquery/jquery/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jquery/jquery/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jquery/jquery/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jquery/jquery/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jquery/jquery/languages", + "stargazers_url": "https://api.github.com/repos/jquery/jquery/stargazers", + "contributors_url": "https://api.github.com/repos/jquery/jquery/contributors", + "subscribers_url": "https://api.github.com/repos/jquery/jquery/subscribers", + "subscription_url": "https://api.github.com/repos/jquery/jquery/subscription", + "commits_url": "https://api.github.com/repos/jquery/jquery/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jquery/jquery/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jquery/jquery/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jquery/jquery/issues/comments/{number}", + "contents_url": "https://api.github.com/repos/jquery/jquery/contents/{+path}", + "compare_url": "https://api.github.com/repos/jquery/jquery/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jquery/jquery/merges", + "archive_url": "https://api.github.com/repos/jquery/jquery/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jquery/jquery/downloads", + "issues_url": "https://api.github.com/repos/jquery/jquery/issues{/number}", + "pulls_url": "https://api.github.com/repos/jquery/jquery/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jquery/jquery/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jquery/jquery/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jquery/jquery/labels{/name}", + "deployments_url": "http://api.github.com/repos/octocat/Hello-World/deployments", + "releases_url": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + }, + "score": 1 + } + ] + } + }, + "commit-search-result-item-paginated": { + "value": { + "total_count": 1, + "incomplete_results": false, + "items": [ + { + "url": "https://api.github.com/repos/octocat/Spoon-Knife/commits/bb4cc8d3b2e14b3af5df699876dd4ff3acd00b7f", + "sha": "bb4cc8d3b2e14b3af5df699876dd4ff3acd00b7f", + "html_url": "https://github.com/octocat/Spoon-Knife/commit/bb4cc8d3b2e14b3af5df699876dd4ff3acd00b7f", + "comments_url": "https://api.github.com/repos/octocat/Spoon-Knife/commits/bb4cc8d3b2e14b3af5df699876dd4ff3acd00b7f/comments", + "commit": { + "url": "https://api.github.com/repos/octocat/Spoon-Knife/git/commits/bb4cc8d3b2e14b3af5df699876dd4ff3acd00b7f", + "author": { + "date": "2014-02-04T14:38:36-08:00", + "name": "The Octocat", + "email": "octocat@nowhere.com" + }, + "committer": { + "date": "2014-02-12T15:18:55-08:00", + "name": "The Octocat", + "email": "octocat@nowhere.com" + }, + "message": "Create styles.css and updated README", + "tree": { + "url": "https://api.github.com/repos/octocat/Spoon-Knife/git/trees/a639e96f9038797fba6e0469f94a4b0cc459fa68", + "sha": "a639e96f9038797fba6e0469f94a4b0cc459fa68" + }, + "comment_count": 8 + }, + "author": { + "login": "octocat", + "id": 583231, + "node_id": "MDQ6VXNlcjU4MzIzMQ==", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "committer": {}, + "parents": [ + { + "url": "https://api.github.com/repos/octocat/Spoon-Knife/commits/a30c19e3f13765a3b48829788bc1cb8b4e95cee4", + "html_url": "https://github.com/octocat/Spoon-Knife/commit/a30c19e3f13765a3b48829788bc1cb8b4e95cee4", + "sha": "a30c19e3f13765a3b48829788bc1cb8b4e95cee4" + } + ], + "repository": { + "id": 1300192, + "node_id": "MDEwOlJlcG9zaXRvcnkxMzAwMTky", + "name": "Spoon-Knife", + "full_name": "octocat/Spoon-Knife", + "owner": { + "login": "octocat", + "id": 583231, + "node_id": "MDQ6VXNlcjU4MzIzMQ==", + "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Spoon-Knife", + "description": "This repo is for demonstration purposes only.", + "fork": false, + "url": "https://api.github.com/repos/octocat/Spoon-Knife", + "forks_url": "https://api.github.com/repos/octocat/Spoon-Knife/forks", + "keys_url": "https://api.github.com/repos/octocat/Spoon-Knife/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/octocat/Spoon-Knife/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/octocat/Spoon-Knife/teams", + "hooks_url": "https://api.github.com/repos/octocat/Spoon-Knife/hooks", + "issue_events_url": "https://api.github.com/repos/octocat/Spoon-Knife/issues/events{/number}", + "events_url": "https://api.github.com/repos/octocat/Spoon-Knife/events", + "assignees_url": "https://api.github.com/repos/octocat/Spoon-Knife/assignees{/user}", + "branches_url": "https://api.github.com/repos/octocat/Spoon-Knife/branches{/branch}", + "tags_url": "https://api.github.com/repos/octocat/Spoon-Knife/tags", + "blobs_url": "https://api.github.com/repos/octocat/Spoon-Knife/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Spoon-Knife/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Spoon-Knife/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/octocat/Spoon-Knife/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/octocat/Spoon-Knife/statuses/{sha}", + "languages_url": "https://api.github.com/repos/octocat/Spoon-Knife/languages", + "stargazers_url": "https://api.github.com/repos/octocat/Spoon-Knife/stargazers", + "contributors_url": "https://api.github.com/repos/octocat/Spoon-Knife/contributors", + "subscribers_url": "https://api.github.com/repos/octocat/Spoon-Knife/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Spoon-Knife/subscription", + "commits_url": "https://api.github.com/repos/octocat/Spoon-Knife/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/octocat/Spoon-Knife/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/octocat/Spoon-Knife/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/octocat/Spoon-Knife/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/octocat/Spoon-Knife/contents/{+path}", + "compare_url": "https://api.github.com/repos/octocat/Spoon-Knife/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/octocat/Spoon-Knife/merges", + "archive_url": "https://api.github.com/repos/octocat/Spoon-Knife/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/octocat/Spoon-Knife/downloads", + "issues_url": "https://api.github.com/repos/octocat/Spoon-Knife/issues{/number}", + "pulls_url": "https://api.github.com/repos/octocat/Spoon-Knife/pulls{/number}", + "milestones_url": "https://api.github.com/repos/octocat/Spoon-Knife/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Spoon-Knife/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/octocat/Spoon-Knife/labels{/name}", + "releases_url": "https://api.github.com/repos/octocat/Spoon-Knife/releases{/id}", + "deployments_url": "https://api.github.com/repos/octocat/Spoon-Knife/deployments" + }, + "score": 1, + "node_id": "MDQ6VXNlcjU4MzIzMQ==" + } + ] + } + }, + "issue-search-result-item-paginated": { + "value": { + "total_count": 280, + "incomplete_results": false, + "items": [ + { + "url": "https://api.github.com/repos/batterseapower/pinyin-toolkit/issues/132", + "repository_url": "https://api.github.com/repos/batterseapower/pinyin-toolkit", + "labels_url": "https://api.github.com/repos/batterseapower/pinyin-toolkit/issues/132/labels{/name}", + "comments_url": "https://api.github.com/repos/batterseapower/pinyin-toolkit/issues/132/comments", + "events_url": "https://api.github.com/repos/batterseapower/pinyin-toolkit/issues/132/events", + "html_url": "https://github.com/batterseapower/pinyin-toolkit/issues/132", + "id": 35802, + "node_id": "MDU6SXNzdWUzNTgwMg==", + "number": 132, + "title": "Line Number Indexes Beyond 20 Not Displayed", + "user": { + "login": "Nick3C", + "id": 90254, + "node_id": "MDQ6VXNlcjkwMjU0", + "avatar_url": "https://secure.gravatar.com/avatar/934442aadfe3b2f4630510de416c5718?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", + "gravatar_id": "", + "url": "https://api.github.com/users/Nick3C", + "html_url": "https://github.com/Nick3C", + "followers_url": "https://api.github.com/users/Nick3C/followers", + "following_url": "https://api.github.com/users/Nick3C/following{/other_user}", + "gists_url": "https://api.github.com/users/Nick3C/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Nick3C/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Nick3C/subscriptions", + "organizations_url": "https://api.github.com/users/Nick3C/orgs", + "repos_url": "https://api.github.com/users/Nick3C/repos", + "events_url": "https://api.github.com/users/Nick3C/events{/privacy}", + "received_events_url": "https://api.github.com/users/Nick3C/received_events", + "type": "User", + "site_admin": true + }, + "labels": [ + { + "id": 4, + "node_id": "MDU6TGFiZWw0", + "url": "https://api.github.com/repos/batterseapower/pinyin-toolkit/labels/bug", + "name": "bug", + "color": "ff0000" + } + ], + "state": "open", + "assignee": null, + "milestone": { + "url": "https://api.github.com/repos/octocat/Hello-World/milestones/1", + "html_url": "https://github.com/octocat/Hello-World/milestones/v1.0", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/milestones/1/labels", + "id": 1002604, + "node_id": "MDk6TWlsZXN0b25lMTAwMjYwNA==", + "number": 1, + "state": "open", + "title": "v1.0", + "description": "Tracking milestone for version 1.0", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 4, + "closed_issues": 8, + "created_at": "2011-04-10T20:09:31Z", + "updated_at": "2014-03-03T18:58:10Z", + "closed_at": "2013-02-12T13:22:01Z", + "due_on": "2012-10-09T23:39:01Z" + }, + "comments": 15, + "created_at": "2009-07-12T20:10:41Z", + "updated_at": "2009-07-19T09:23:43Z", + "closed_at": null, + "pull_request": { + "url": "https://api/github.com/repos/octocat/Hello-World/pull/1347", + "html_url": "https://github.com/octocat/Hello-World/pull/1347", + "diff_url": "https://github.com/octocat/Hello-World/pull/1347.diff", + "patch_url": "https://api.github.com/repos/octocat/Hello-World/pulls/1347" + }, + "body": "...", + "score": 1, + "locked": true, + "author_association": "collaborator" + } + ] + } + }, + "label-search-result-item-paginated": { + "value": { + "total_count": 2, + "incomplete_results": false, + "items": [ + { + "id": 418327088, + "node_id": "MDU6TGFiZWw0MTgzMjcwODg=", + "url": "https://api.github.com/repos/octocat/linguist/labels/enhancement", + "name": "enhancement", + "color": "84b6eb", + "default": true, + "description": "New feature or request.", + "score": 1 + }, + { + "id": 418327086, + "node_id": "MDU6TGFiZWw0MTgzMjcwODY=", + "url": "https://api.github.com/repos/octocat/linguist/labels/bug", + "name": "bug", + "color": "ee0701", + "default": true, + "description": "Something isn't working.", + "score": 1 + } + ] + } + }, + "repo-search-result-item-paginated": { + "value": { + "total_count": 40, + "incomplete_results": false, + "items": [ + { + "id": 3081286, + "node_id": "MDEwOlJlcG9zaXRvcnkzMDgxMjg2", + "name": "Tetris", + "full_name": "dtrupenn/Tetris", + "owner": { + "login": "dtrupenn", + "id": 872147, + "node_id": "MDQ6VXNlcjg3MjE0Nw==", + "avatar_url": "https://secure.gravatar.com/avatar/e7956084e75f239de85d3a31bc172ace?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", + "gravatar_id": "", + "url": "https://api.github.com/users/dtrupenn", + "received_events_url": "https://api.github.com/users/dtrupenn/received_events", + "type": "User", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "site_admin": true + }, + "private": false, + "html_url": "https://github.com/dtrupenn/Tetris", + "description": "A C implementation of Tetris using Pennsim through LC4", + "fork": false, + "url": "https://api.github.com/repos/dtrupenn/Tetris", + "created_at": "2012-01-01T00:31:50Z", + "updated_at": "2013-01-05T17:58:47Z", + "pushed_at": "2012-01-01T00:37:02Z", + "homepage": "https://github.com", + "size": 524, + "stargazers_count": 1, + "watchers_count": 1, + "language": "Assembly", + "forks_count": 0, + "open_issues_count": 0, + "master_branch": "master", + "default_branch": "master", + "score": 1, + "archive_url": "https://api.github.com/repos/dtrupenn/Tetris/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/dtrupenn/Tetris/assignees{/user}", + "blobs_url": "https://api.github.com/repos/dtrupenn/Tetris/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/dtrupenn/Tetris/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/dtrupenn/Tetris/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/dtrupenn/Tetris/comments{/number}", + "commits_url": "https://api.github.com/repos/dtrupenn/Tetris/commits{/sha}", + "compare_url": "https://api.github.com/repos/dtrupenn/Tetris/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/dtrupenn/Tetris/contents/{+path}", + "contributors_url": "https://api.github.com/repos/dtrupenn/Tetris/contributors", + "deployments_url": "https://api.github.com/repos/dtrupenn/Tetris/deployments", + "downloads_url": "https://api.github.com/repos/dtrupenn/Tetris/downloads", + "events_url": "https://api.github.com/repos/dtrupenn/Tetris/events", + "forks_url": "https://api.github.com/repos/dtrupenn/Tetris/forks", + "git_commits_url": "https://api.github.com/repos/dtrupenn/Tetris/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/dtrupenn/Tetris/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/dtrupenn/Tetris/git/tags{/sha}", + "git_url": "git:github.com/dtrupenn/Tetris.git", + "issue_comment_url": "https://api.github.com/repos/dtrupenn/Tetris/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/dtrupenn/Tetris/issues/events{/number}", + "issues_url": "https://api.github.com/repos/dtrupenn/Tetris/issues{/number}", + "keys_url": "https://api.github.com/repos/dtrupenn/Tetris/keys{/key_id}", + "labels_url": "https://api.github.com/repos/dtrupenn/Tetris/labels{/name}", + "languages_url": "https://api.github.com/repos/dtrupenn/Tetris/languages", + "merges_url": "https://api.github.com/repos/dtrupenn/Tetris/merges", + "milestones_url": "https://api.github.com/repos/dtrupenn/Tetris/milestones{/number}", + "notifications_url": "https://api.github.com/repos/dtrupenn/Tetris/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/dtrupenn/Tetris/pulls{/number}", + "releases_url": "https://api.github.com/repos/dtrupenn/Tetris/releases{/id}", + "ssh_url": "git@github.com:dtrupenn/Tetris.git", + "stargazers_url": "https://api.github.com/repos/dtrupenn/Tetris/stargazers", + "statuses_url": "https://api.github.com/repos/dtrupenn/Tetris/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/dtrupenn/Tetris/subscribers", + "subscription_url": "https://api.github.com/repos/dtrupenn/Tetris/subscription", + "tags_url": "https://api.github.com/repos/dtrupenn/Tetris/tags", + "teams_url": "https://api.github.com/repos/dtrupenn/Tetris/teams", + "trees_url": "https://api.github.com/repos/dtrupenn/Tetris/git/trees{/sha}", + "clone_url": "https://github.com/dtrupenn/Tetris.git", + "mirror_url": "git:git.example.com/dtrupenn/Tetris", + "hooks_url": "https://api.github.com/repos/dtrupenn/Tetris/hooks", + "svn_url": "https://svn.github.com/dtrupenn/Tetris", + "forks": 1, + "open_issues": 1, + "watchers": 1, + "has_issues": true, + "has_projects": true, + "has_pages": true, + "has_wiki": true, + "has_downloads": true, + "archived": true, + "disabled": true, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://api.github.com/licenses/mit" + } + } + ] + } + }, + "topic-search-result-item-paginated": { + "value": { + "total_count": 6, + "incomplete_results": false, + "items": [ + { + "name": "ruby", + "display_name": "Ruby", + "short_description": "Ruby is a scripting language designed for simplified object-oriented programming.", + "description": "Ruby was developed by Yukihiro \"Matz\" Matsumoto in 1995 with the intent of having an easily readable programming language. It is integrated with the Rails framework to create dynamic web-applications. Ruby's syntax is similar to that of Perl and Python.", + "created_by": "Yukihiro Matsumoto", + "released": "December 21, 1995", + "created_at": "2016-11-28T22:03:59Z", + "updated_at": "2017-10-30T18:16:32Z", + "featured": true, + "curated": true, + "score": 1 + }, + { + "name": "rails", + "display_name": "Rails", + "short_description": "Ruby on Rails (Rails) is a web application framework written in Ruby.", + "description": "Ruby on Rails (Rails) is a web application framework written in Ruby. It is meant to help simplify the building of complex websites.", + "created_by": "David Heinemeier Hansson", + "released": "December 13 2005", + "created_at": "2016-12-09T17:03:50Z", + "updated_at": "2017-10-30T16:20:19Z", + "featured": true, + "curated": true, + "score": 1 + }, + { + "name": "python", + "display_name": "Python", + "short_description": "Python is a dynamically typed programming language.", + "description": "Python is a dynamically typed programming language designed by Guido Van Rossum. Much like the programming language Ruby, Python was designed to be easily read by programmers. Because of its large following and many libraries, Python can be implemented and used to do anything from webpages to scientific research.", + "created_by": "Guido van Rossum", + "released": "February 20, 1991", + "created_at": "2016-12-07T00:07:02Z", + "updated_at": "2017-10-27T22:45:43Z", + "featured": true, + "curated": true, + "score": 1 + }, + { + "name": "jekyll", + "display_name": "Jekyll", + "short_description": "Jekyll is a simple, blog-aware static site generator.", + "description": "Jekyll is a blog-aware, site generator written in Ruby. It takes raw text files, runs it through a renderer and produces a publishable static website.", + "created_by": "Tom Preston-Werner", + "released": "2008", + "created_at": "2016-12-16T21:53:08Z", + "updated_at": "2017-10-27T19:00:24Z", + "featured": true, + "curated": true, + "score": 1 + }, + { + "name": "sass", + "display_name": "Sass", + "short_description": "Sass is a stable extension to classic CSS.", + "description": "Sass is a stylesheet language with a main implementation in Ruby. It is an extension of CSS that makes improvements to the old stylesheet format, such as being able to declare variables and using a cleaner nesting syntax.", + "created_by": "Hampton Catlin, Natalie Weizenbaum, Chris Eppstein", + "released": "November 28, 2006", + "created_at": "2016-12-16T21:53:45Z", + "updated_at": "2018-01-16T16:30:40Z", + "featured": true, + "curated": true, + "score": 1 + }, + { + "name": "homebrew", + "display_name": "Homebrew", + "short_description": "Homebrew is a package manager for macOS.", + "description": "Homebrew is a package manager for Apple's macOS operating system. It simplifies the installation of software and is popular in the Ruby on Rails community.", + "created_by": "Max Howell", + "released": "2009", + "created_at": "2016-12-17T20:30:44Z", + "updated_at": "2018-02-06T16:14:56Z", + "featured": true, + "curated": true, + "score": 1 + } + ] + } + }, + "user-search-result-item-paginated": { + "value": { + "total_count": 12, + "incomplete_results": false, + "items": [ + { + "login": "mojombo", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://secure.gravatar.com/avatar/25c7c18223fb42a4c6ae1c8db6f50f9b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png", + "gravatar_id": "", + "url": "https://api.github.com/users/mojombo", + "html_url": "https://github.com/mojombo", + "followers_url": "https://api.github.com/users/mojombo/followers", + "subscriptions_url": "https://api.github.com/users/mojombo/subscriptions", + "organizations_url": "https://api.github.com/users/mojombo/orgs", + "repos_url": "https://api.github.com/users/mojombo/repos", + "received_events_url": "https://api.github.com/users/mojombo/received_events", + "type": "User", + "score": 1, + "following_url": "https://api.github.com/users/mojombo/following{/other_user}", + "gists_url": "https://api.github.com/users/mojombo/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mojombo/starred{/owner}{/repo}", + "events_url": "https://api.github.com/users/mojombo/events{/privacy}", + "site_admin": true + } + ] + } + }, + "team-repository-alternative-response-with-extra-repository-information": { + "value": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://api.github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + }, + "group-mapping-2": { + "value": { + "groups": [ + { + "group_id": "123", + "group_name": "Octocat admins", + "group_description": "The people who configure your octoworld." + } + ] + } + }, + "private-user-response-with-public-and-private-profile-information": { + "summary": "Response with public and private profile information", + "value": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false, + "name": "monalisa octocat", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "hireable": false, + "bio": "There once was...", + "twitter_username": "monatheoctocat", + "public_repos": 2, + "public_gists": 1, + "followers": 20, + "following": 0, + "created_at": "2008-01-14T04:33:35Z", + "updated_at": "2008-01-14T04:33:35Z", + "private_gists": 81, + "total_private_repos": 100, + "owned_private_repos": 100, + "disk_usage": 10000, + "collaborators": 8, + "two_factor_authentication": true, + "plan": { + "name": "Medium", + "space": 400, + "private_repos": 20, + "collaborators": 0 + } + } + }, + "private-user-response-with-public-profile-information": { + "summary": "Response with public profile information", + "value": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false, + "name": "monalisa octocat", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "hireable": false, + "bio": "There once was...", + "twitter_username": "monatheoctocat", + "public_repos": 2, + "public_gists": 1, + "followers": 20, + "following": 0, + "created_at": "2008-01-14T04:33:35Z", + "updated_at": "2008-01-14T04:33:35Z" + } + }, + "private-user": { + "value": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false, + "name": "monalisa octocat", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "hireable": false, + "bio": "There once was...", + "twitter_username": "monatheoctocat", + "public_repos": 2, + "public_gists": 1, + "followers": 20, + "following": 0, + "created_at": "2008-01-14T04:33:35Z", + "updated_at": "2008-01-14T04:33:35Z", + "private_gists": 81, + "total_private_repos": 100, + "owned_private_repos": 100, + "disk_usage": 10000, + "collaborators": 8, + "two_factor_authentication": true, + "plan": { + "name": "Medium", + "space": 400, + "private_repos": 20, + "collaborators": 0 + } + } + }, + "email-items-3": { + "value": [ + { + "email": "octocat@github.com", + "primary": true, + "verified": true, + "visibility": "private" + } + ] + }, + "email-items-2": { + "value": [ + { + "email": "octocat@github.com", + "verified": true, + "primary": true, + "visibility": "public" + } + ] + }, + "email-items": { + "value": [ + { + "email": "octocat@octocat.org", + "primary": false, + "verified": false, + "visibility": "public" + }, + { + "email": "octocat@github.com", + "primary": false, + "verified": false, + "visibility": null + }, + { + "email": "mona@github.com", + "primary": false, + "verified": false, + "visibility": null + } + ] + }, + "gpg-key-items": { + "value": [ + { + "id": 3, + "primary_key_id": 2, + "key_id": "3262EFF25BA0D270", + "public_key": "xsBNBFayYZ...", + "emails": [ + { + "email": "mastahyeti@users.noreply.github.com", + "verified": true + } + ], + "subkeys": [ + { + "id": 4, + "primary_key_id": 3, + "key_id": "4A595D4C72EE49C7", + "public_key": "zsBNBFayYZ...", + "emails": [], + "subkeys": [], + "can_sign": false, + "can_encrypt_comms": true, + "can_encrypt_storage": true, + "can_certify": false, + "created_at": "2016-03-24T11:31:04-06:00", + "expires_at": "2016-03-24T11:31:04-07:00" + } + ], + "can_sign": true, + "can_encrypt_comms": false, + "can_encrypt_storage": false, + "can_certify": true, + "created_at": "2016-03-24T11:31:04-06:00", + "expires_at": "2016-03-24T11:31:04-07:00", + "raw_key": "string" + } + ] + }, + "gpg-key": { + "value": { + "id": 3, + "primary_key_id": 2, + "key_id": "3262EFF25BA0D270", + "public_key": "xsBNBFayYZ...", + "emails": [ + { "email": "mastahyeti@users.noreply.github.com", "verified": true } + ], + "subkeys": [ + { + "id": 4, + "primary_key_id": 3, + "key_id": "4A595D4C72EE49C7", + "public_key": "zsBNBFayYZ...", + "emails": [], + "subkeys": [], + "can_sign": false, + "can_encrypt_comms": true, + "can_encrypt_storage": true, + "can_certify": false, + "created_at": "2016-03-24T11:31:04-06:00", + "expires_at": "2016-03-24T11:31:04-07:00" + } + ], + "can_sign": true, + "can_encrypt_comms": false, + "can_encrypt_storage": false, + "can_certify": true, + "created_at": "2016-03-24T11:31:04-06:00", + "expires_at": "2016-03-24T11:31:04-07:00", + "raw_key": "\"-----BEGIN PGP PUBLIC KEY BLOCK-----\\nVersion: GnuPG v2\\n\\nmQENBFayYZ0BCAC4hScoJXXpyR+MXGcrBxElqw3FzCVvkViuyeko+Jp76QJhg8kr\\nucRTxbnOoHfda/FmilEa/wxf9ch5/PSrrL26FxEoPHhJolp8fnIDLQeITn94NYdB\\nZtnnEKslpPrG97qSUWIchvyqCPtvOb8+8fWvGx9K/ZWcEEdh1X8+WFR2jMENMeoX\\nwxHWQoPnS7LpX/85/M7VUcJxvDVfv+eHsnQupmE5bGarKNih0oMe3LbdN3qA5PTz\\nSCm6Iudar1VsQ+xTz08ymL7t4pnEtLguQ7EyatFHCjxNblv5RzxoL0tDgN3HqoDz\\nc7TEA+q4RtDQl9amcvQ95emnXmZ974u7UkYdABEBAAG0HlNvbWUgVXNlciA8c29t\\nZXVzZXJAZ21haWwuY29tPokBOAQTAQIAIgUCVrJhnQIbAwYLCQgHAwIGFQgCCQoL\\nBBYCAwECHgECF4AACgkQMmLv8lug0nAViQgArWjI55+7p48URr2z9Jvak+yrBTx1\\nzkufltQAnHTJkq+Kl9dySSmTnOop8o3rE4++IOpYV5Y36PkKf9EZMk4n1RQiDPKE\\nAFtRVTkRaoWzOir9KQXJPfhKrl01j/QzY+utfiMvUoBJZ9ybq8Pa885SljW9lbaX\\nIYw+hl8ZdJ2KStvGrEyfQvRyq3aN5c9TV//4BdGnwx7Qabq/U+G18lizG6f/yq15\\ned7t0KELaCfeKPvytp4VE9/z/Ksah/h3+Qilx07/oG2Ae5kC1bEC9coD/ogPUhbv\\nb2bsBIoY9E9YwsLoif2lU+o1t76zLgUktuNscRRUKobW028H1zuFS/XQhrkBDQRW\\nsmGdAQgApnyyv3i144OLYy0O4UKQxd3e10Y3WpDwfnGIBefAI1m7RxnUxBag/DsU\\n7gi9qLEC4VHSfq4eiNfr1LJOyCL2edTgCWFgBhVjbXjZe6YAOrAnhxwCErnN0Y7N\\n6s8wVh9fObSOyf8ZE6G7JeKpcq9Q6gd/KxagfD48a1v+fyRHpyQc6J9pUEmtrDJ7\\nBjmsd2VWzLBvNWdHyxDNtZweIaqIO9VUYYpr1mtTliNBOZLUelmgrt7HBRcJpWMA\\nS8muVVbuP5MK0trLBq/JB8qUH3zRzB/PhMgzmkIfjEK1VYDWm4E8DYyTWEJcHqkb\\neqFsNjrIlwPaA122BWC6gUOPwwH+oQARAQABiQEfBBgBAgAJBQJWsmGdAhsMAAoJ\\nEDJi7/JboNJwAyAIALd4xcdmGbZD98gScJzqwzkOMcO8zFHqHNvJ42xIFvGny7c0\\n1Rx7iyrdypOby5AxE+viQcjG4rpLZW/xKYBNGrCfDyQO7511I0v8x20EICMlMfD/\\nNrWQCzesEPcUlKTP07d+sFyP8AyseOidbzY/92CpskTgdSBjY/ntLSaoknl/fjJE\\nQM8OkPqU7IraO1Jzzdnm20d5PZL9+PIwIWdSTedU/vBMTJyNcoqvSfKf1wNC66XP\\nhqfYgXJE564AdWZKA3C0IyCqiv+LHwxLnUHio1a4/r91C8KPzxs6tGxRDjXLd7ms\\nuYFGWymiUGOE/giHlcxdYcHzwLnPDliMQOLiTkK5AQ0EVuxMygEIAOD+bW1cDTmE\\nBxh5JECoqeHuwgl6DlLhnubWPkQ4ZeRzBRAsFcEJQlwlJjrzFDicL+lnm6Qq4tt0\\n560TwHdf15/AKTZIZu7H25axvGNzgeaUkJEJdYAq9zTKWwX7wKyzBszi485nQg97\\nMfAqwhMpDW0Qqf8+7Ug+WEmfBSGv9uL3aQC6WEeIsHfri0n0n8v4XgwhfShXguxO\\nCsOztEsuW7WWKW9P4TngKKv4lCHdPlV6FwxeMzODBJvc2fkHVHnqc0PqszJ5xcF8\\n6gZCpMM027SbpeYWCAD5zwJyYP9ntfO1p2HjnQ1dZaP9FeNcO7uIV1Lnd1eGCu6I\\nsrVp5k1f3isAEQEAAYkCPgQYAQIACQUCVuxMygIbAgEpCRAyYu/yW6DScMBdIAQZ\\nAQIABgUCVuxMygAKCRCKohN4dhq2b4tcCACHxmOHVXNpu47OvUGYQydLgMACUlXN\\nlj+HfE0VReqShxdDmpasAY9IRpuMB2RsGK8GbNP+4SlOlAiPf5SMhS7nZNkNDgQQ\\naZ3HFpgrFmFwmE10BKT4iQtoxELLM57z0qGOAfTsEjWFQa4sF+6IHAQR/ptkdkkI\\nBUEXiMnAwVwBysLIJiLO8qdjB6qp52QkT074JVrwywT/P+DkMfC2k4r/AfEbf6eF\\ndmPDuPk6KD87+hJZsSa5MaMUBQVvRO/mgEkhJRITVu58eWGaBOcQJ8gqurhCqM5P\\nDfUA4TJ7wiqM6sS764vV1rOioTTXkszzhClQqET7hPVnVQjenYgv0EZHNyQH/1f1\\n/CYqvV1vFjM9vJjMbxXsATCkZe6wvBVKD8vLsJAr8N+onKQz+4OPc3kmKq7aESu3\\nCi/iuie5KKVwnuNhr9AzT61vEkKxwHcVFEvHB77F6ZAAInhRvjzmQbD2dlPLLQCC\\nqDj71ODSSAPTEmUy6969bgD9PfWei7kNkBIx7s3eBv8yzytSc2EcuUgopqFazquw\\nFs1+tqGHjBvQfTo6bqbJjp/9Ci2pvde3ElV2rAgUlb3lqXyXjRDqrXosh5GcRPQj\\nK8Nhj1BNhnrCVskE4BP0LYbOHuzgm86uXwGCFsY+w2VOsSm16Jx5GHyG5S5WU3+D\\nIts/HFYRLiFgDLmTlxo=\\n=+OzK\\n-----END PGP PUBLIC KEY BLOCK-----\"" + } + }, + "base-installation-for-auth-user-paginated": { + "value": { + "total_count": 2, + "installations": [ + { + "id": 1, + "account": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "access_tokens_url": "https://api.github.com/installations/1/access_tokens", + "repositories_url": "https://api.github.com/installation/repositories", + "html_url": "https://github.com/organizations/github/settings/installations/1", + "app_id": 1, + "target_id": 1, + "target_type": "Organization", + "permissions": { + "checks": "write", + "metadata": "read", + "contents": "read" + }, + "events": ["push", "pull_request"], + "single_file_name": "config.yaml", + "has_multiple_single_files": true, + "single_file_paths": ["config.yml", ".github/issue_TEMPLATE.md"], + "repository_selection": "all", + "created_at": "2017-07-08T16:18:44-04:00", + "updated_at": "2017-07-08T16:18:44-04:00", + "app_slug": "github-actions" + }, + { + "id": 3, + "account": { + "login": "octocat", + "id": 2, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "access_tokens_url": "https://api.github.com/installations/1/access_tokens", + "repositories_url": "https://api.github.com/installation/repositories", + "html_url": "https://github.com/organizations/github/settings/installations/1", + "app_id": 1, + "target_id": 1, + "target_type": "Organization", + "permissions": { + "checks": "write", + "metadata": "read", + "contents": "read" + }, + "events": ["push", "pull_request"], + "single_file_name": "config.yaml", + "has_multiple_single_files": true, + "single_file_paths": ["config.yml", ".github/issue_TEMPLATE.md"], + "repository_selection": "all", + "created_at": "2017-07-08T16:18:44-04:00", + "updated_at": "2017-07-08T16:18:44-04:00", + "app_slug": "github-actions" + } + ] + } + }, + "interaction-limit-user": { + "value": { + "limit": "collaborators_only", + "origin": "user", + "expires_at": "2018-08-17T04:18:39Z" + } + }, + "key-items": { + "value": [ + { + "key_id": "012345678912345678", + "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234", + "id": 2, + "url": "https://api.github.com/user/keys/2", + "title": "ssh-rsa AAAAB3NzaC1yc2EAAA", + "created_at": "2020-06-11T21:31:57Z", + "verified": false, + "read_only": false + }, + { + "key_id": "012345678912345608", + "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJy931234", + "id": 3, + "url": "https://api.github.com/user/keys/3", + "title": "ssh-rsa AAAAB3NzaC1yc2EAAB", + "created_at": "2020-07-11T21:31:57Z", + "verified": false, + "read_only": false + } + ] + }, + "key": { + "value": { + "key_id": "012345678912345678", + "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234", + "id": 2, + "url": "https://api.github.com/user/keys/2", + "title": "ssh-rsa AAAAB3NzaC1yc2EAAA", + "created_at": "2020-06-11T21:31:57Z", + "verified": false, + "read_only": false + } + }, + "user-marketplace-purchase-items": { + "value": [ + { + "billing_cycle": "monthly", + "next_billing_date": "2017-11-11T00:00:00Z", + "unit_count": null, + "on_free_trial": true, + "free_trial_ends_on": "2017-11-11T00:00:00Z", + "updated_at": "2017-11-02T01:12:12Z", + "account": { + "login": "github", + "id": 4, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "email": null, + "organization_billing_email": "billing@github.com", + "type": "Organization" + }, + "plan": { + "url": "https://api.github.com/marketplace_listing/plans/1313", + "accounts_url": "https://api.github.com/marketplace_listing/plans/1313/accounts", + "id": 1313, + "number": 3, + "name": "Pro", + "description": "A professional-grade CI solution", + "monthly_price_in_cents": 1099, + "yearly_price_in_cents": 11870, + "price_model": "flat-rate", + "has_free_trial": true, + "unit_name": null, + "state": "published", + "bullets": [ + "Up to 25 private repositories", + "11 concurrent builds" + ] + } + } + ] + }, + "org-membership-items": { + "value": [ + { + "url": "https://api.github.com/orgs/octocat/memberships/defunkt", + "state": "active", + "role": "admin", + "organization_url": "https://api.github.com/orgs/octocat", + "organization": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization" + }, + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + }, + { + "url": "https://api.github.com/orgs/invitocat/memberships/defunkt", + "state": "pending", + "role": "admin", + "organization_url": "https://api.github.com/orgs/invitocat", + "organization": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization" + }, + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + ] + }, + "org-membership": { + "value": { + "url": "https://api.github.com/orgs/invitocat/memberships/defunkt", + "state": "pending", + "role": "admin", + "organization_url": "https://api.github.com/orgs/invitocat", + "organization": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization" + }, + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + }, + "org-membership-2": { + "value": { + "url": "https://api.github.com/orgs/octocat/memberships/defunkt", + "state": "active", + "role": "admin", + "organization_url": "https://api.github.com/orgs/octocat", + "organization": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization" + }, + "user": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + } + }, + "migration-items": { + "value": [ + { + "id": 79, + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "guid": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "state": "pending", + "lock_repositories": true, + "exclude_attachments": false, + "repositories": [ + { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://api.github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + ], + "url": "https://api.github.com/orgs/octo-org/migrations/79", + "created_at": "2015-07-06T15:33:38-07:00", + "updated_at": "2015-07-06T15:33:38-07:00", + "node_id": "MDQ6VXNlcjE=" + } + ] + }, + "migration-2": { + "value": { + "id": 79, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "guid": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "state": "pending", + "lock_repositories": true, + "exclude_attachments": false, + "repositories": [ + { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://api.github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + ], + "url": "https://api.github.com/orgs/octo-org/migrations/79", + "created_at": "2015-07-06T15:33:38-07:00", + "updated_at": "2015-07-06T15:33:38-07:00" + } + }, + "migration": { + "value": { + "id": 79, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "guid": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "state": "exported", + "lock_repositories": true, + "exclude_attachments": false, + "repositories": [ + { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://api.github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + ], + "url": "https://api.github.com/orgs/octo-org/migrations/79", + "created_at": "2015-07-06T15:33:38-07:00", + "updated_at": "2015-07-06T15:33:38-07:00" + } + }, + "project": { + "value": { + "owner_url": "https://api.github.com/users/octocat", + "url": "https://api.github.com/projects/1002603", + "html_url": "https://github.com/users/octocat/projects/1", + "columns_url": "https://api.github.com/projects/1002603/columns", + "id": 1002603, + "node_id": "MDc6UHJvamVjdDEwMDI2MDM=", + "name": "My Projects", + "body": "A board to manage my personal projects.", + "number": 1, + "state": "open", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2011-04-10T20:09:31Z", + "updated_at": "2014-03-03T18:58:10Z" + } + }, + "repository-items-default-response": { + "summary": "Default response", + "value": [ + { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + ] + }, + "starred-repository-items-alternative-response-with-star-creation-timestamps": { + "summary": "Alternative response with star creation timestamps", + "value": [ + { + "starred_at": "2011-01-16T19:06:43Z", + "repo": { + "id": 1296269, + "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "name": "Hello-World", + "full_name": "octocat/Hello-World", + "owner": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "private": false, + "html_url": "https://github.com/octocat/Hello-World", + "description": "This your first repo!", + "fork": false, + "url": "https://api.github.com/repos/octocat/Hello-World", + "archive_url": "https://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", + "assignees_url": "https://api.github.com/repos/octocat/Hello-World/assignees{/user}", + "blobs_url": "https://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/octocat/Hello-World/branches{/branch}", + "collaborators_url": "https://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/octocat/Hello-World/comments{/number}", + "commits_url": "https://api.github.com/repos/octocat/Hello-World/commits{/sha}", + "compare_url": "https://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/{+path}", + "contributors_url": "https://api.github.com/repos/octocat/Hello-World/contributors", + "deployments_url": "https://api.github.com/repos/octocat/Hello-World/deployments", + "downloads_url": "https://api.github.com/repos/octocat/Hello-World/downloads", + "events_url": "https://api.github.com/repos/octocat/Hello-World/events", + "forks_url": "https://api.github.com/repos/octocat/Hello-World/forks", + "git_commits_url": "https://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", + "git_url": "git:github.com/octocat/Hello-World.git", + "issue_comment_url": "https://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/octocat/Hello-World/issues/events{/number}", + "issues_url": "https://api.github.com/repos/octocat/Hello-World/issues{/number}", + "keys_url": "https://api.github.com/repos/octocat/Hello-World/keys{/key_id}", + "labels_url": "https://api.github.com/repos/octocat/Hello-World/labels{/name}", + "languages_url": "https://api.github.com/repos/octocat/Hello-World/languages", + "merges_url": "https://api.github.com/repos/octocat/Hello-World/merges", + "milestones_url": "https://api.github.com/repos/octocat/Hello-World/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}", + "pulls_url": "https://api.github.com/repos/octocat/Hello-World/pulls{/number}", + "releases_url": "https://api.github.com/repos/octocat/Hello-World/releases{/id}", + "ssh_url": "git@github.com:octocat/Hello-World.git", + "stargazers_url": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/Hello-World/subscription", + "tags_url": "https://api.github.com/repos/octocat/Hello-World/tags", + "teams_url": "https://api.github.com/repos/octocat/Hello-World/teams", + "trees_url": "https://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", + "clone_url": "https://github.com/octocat/Hello-World.git", + "mirror_url": "git:git.example.com/octocat/Hello-World", + "hooks_url": "https://api.github.com/repos/octocat/Hello-World/hooks", + "svn_url": "https://svn.github.com/octocat/Hello-World", + "homepage": "https://github.com", + "language": null, + "forks_count": 9, + "stargazers_count": 80, + "watchers_count": 80, + "size": 108, + "default_branch": "master", + "open_issues_count": 0, + "is_template": true, + "topics": ["octocat", "atom", "electron", "api"], + "has_issues": true, + "has_projects": true, + "has_wiki": true, + "has_pages": false, + "has_downloads": true, + "archived": false, + "disabled": false, + "visibility": "public", + "pushed_at": "2011-01-26T19:06:43Z", + "created_at": "2011-01-26T19:01:12Z", + "updated_at": "2011-01-26T19:14:43Z", + "permissions": { "admin": false, "push": false, "pull": true }, + "allow_rebase_merge": true, + "template_repository": null, + "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O", + "allow_squash_merge": true, + "delete_branch_on_merge": true, + "allow_merge_commit": true, + "subscribers_count": 42, + "network_count": 0, + "license": { + "key": "mit", + "name": "MIT License", + "url": "https://api.github.com/licenses/mit", + "spdx_id": "MIT", + "node_id": "MDc6TGljZW5zZW1pdA==", + "html_url": "https://github.com/licenses/mit" + }, + "forks": 1, + "open_issues": 1, + "watchers": 1 + } + } + ] + }, + "team-full-items": { + "value": [ + { + "id": 1, + "node_id": "MDQ6VGVhbTE=", + "url": "https://api.github.com/teams/1", + "html_url": "https://github.com/orgs/github/teams/justice-league", + "name": "Justice League", + "slug": "justice-league", + "description": "A great team.", + "privacy": "closed", + "permission": "admin", + "members_url": "https://api.github.com/teams/1/members{/member}", + "repositories_url": "https://api.github.com/teams/1/repos", + "parent": null, + "members_count": 3, + "repos_count": 10, + "created_at": "2017-07-14T16:53:42Z", + "updated_at": "2017-08-17T12:37:15Z", + "organization": { + "login": "github", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "url": "https://api.github.com/orgs/github", + "repos_url": "https://api.github.com/orgs/github/repos", + "events_url": "https://api.github.com/orgs/github/events", + "hooks_url": "https://api.github.com/orgs/github/hooks", + "issues_url": "https://api.github.com/orgs/github/issues", + "members_url": "https://api.github.com/orgs/github/members{/member}", + "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "description": "A great organization", + "name": "github", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "is_verified": true, + "has_organization_projects": true, + "has_repository_projects": true, + "public_repos": 2, + "public_gists": 1, + "followers": 20, + "following": 0, + "html_url": "https://github.com/octocat", + "created_at": "2008-01-14T04:33:35Z", + "updated_at": "2017-08-17T12:37:15Z", + "type": "Organization" + } + } + ] + }, + "public-user-default-response": { + "summary": "Default response", + "value": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false, + "name": "monalisa octocat", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "hireable": false, + "bio": "There once was...", + "twitter_username": "monatheoctocat", + "public_repos": 2, + "public_gists": 1, + "followers": 20, + "following": 0, + "created_at": "2008-01-14T04:33:35Z", + "updated_at": "2008-01-14T04:33:35Z" + } + }, + "public-user-response-with-git-hub-plan-information": { + "summary": "Response with GitHub plan information", + "value": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false, + "name": "monalisa octocat", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "hireable": false, + "bio": "There once was...", + "twitter_username": "monatheoctocat", + "public_repos": 2, + "public_gists": 1, + "followers": 20, + "following": 0, + "created_at": "2008-01-14T04:33:35Z", + "updated_at": "2008-01-14T04:33:35Z", + "plan": { + "name": "pro", + "space": 976562499, + "collaborators": 0, + "private_repos": 9999 + } + } + }, + "hovercard": { + "value": { + "contexts": [{ "message": "Owns this repository", "octicon": "repo" }] + } + }, + "key-simple-items": { "value": [{ "id": 1, "key": "ssh-rsa AAA..." }] }, + "project-items-3": { + "value": [ + { + "owner_url": "https://api.github.com/users/octocat", + "url": "https://api.github.com/projects/1002603", + "html_url": "https://github.com/users/octocat/projects/1", + "columns_url": "https://api.github.com/projects/1002603/columns", + "id": 1002603, + "node_id": "MDc6UHJvamVjdDEwMDI2MDM=", + "name": "My Projects", + "body": "A board to manage my personal projects.", + "number": 1, + "state": "open", + "creator": { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + }, + "created_at": "2011-04-10T20:09:31Z", + "updated_at": "2014-03-03T18:58:10Z" + } + ] + } + }, + "responses": { + "not_found": { + "description": "Resource Not Found", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/basic-error" } + } + } + }, + "validation_failed_simple": { + "description": "Validation Failed", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/validation-error-simple" } + } + } + }, + "preview_header_missing": { + "description": "Preview Header Missing", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": ["message", "documentation_url"], + "properties": { + "message": { "type": "string" }, + "documentation_url": { "type": "string" } + } + } + } + } + }, + "forbidden": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/basic-error" } + } + } + }, + "requires_authentication": { + "description": "Requires Authentication", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/basic-error" } + } + } + }, + "validation_failed": { + "description": "Validation Failed", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/validation-error" } + } + } + }, + "not_modified": { "description": "Not Modified" }, + "gone": { + "description": "Gone", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/basic-error" } + } + } + }, + "service_unavailable": { + "description": "Service Unavailable", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": { "type": "string" }, + "message": { "type": "string" }, + "documentation_url": { "type": "string" } + } + } + } + } + }, + "forbidden_gist": { + "description": "Forbidden Gist", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "block": { + "type": "object", + "properties": { + "reason": { "type": "string" }, + "created_at": { "type": "string" }, + "html_url": { "type": "string", "nullable": true } + } + }, + "message": { "type": "string" }, + "documentation_url": { "type": "string" } + } + } + } + } + }, + "moved_permanently": { "description": "Moved Permanently" }, + "conflict": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/basic-error" } + } + } + }, + "internal_error": { + "description": "Internal Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/basic-error" } + } + } + }, + "bad_request": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/basic-error" } + }, + "application/scim+json": { + "schema": { "$ref": "#/components/schemas/scim-error" } + } + } + }, + "found": { "description": "Found" }, + "scim_not_found": { + "description": "Resource Not Found", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/scim-error" } + }, + "application/scim+json": { + "schema": { "$ref": "#/components/schemas/scim-error" } + } + } + }, + "scim_forbidden": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/scim-error" } + }, + "application/scim+json": { + "schema": { "$ref": "#/components/schemas/scim-error" } + } + } + }, + "scim_bad_request": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/scim-error" } + }, + "application/scim+json": { + "schema": { "$ref": "#/components/schemas/scim-error" } + } + } + }, + "scim_internal_error": { + "description": "Internal Error", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/scim-error" } + }, + "application/scim+json": { + "schema": { "$ref": "#/components/schemas/scim-error" } + } + } + }, + "scim_conflict": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/scim-error" } + }, + "application/scim+json": { + "schema": { "$ref": "#/components/schemas/scim-error" } + } + } + } + }, + "parameters": { + "per_page": { + "name": "per_page", + "description": "Results per page (max 100)", + "in": "query", + "schema": { "type": "integer", "default": 30 } + }, + "page": { + "name": "page", + "description": "Page number of the results to fetch.", + "in": "query", + "schema": { "type": "integer", "default": 1 } + }, + "since": { + "name": "since", + "description": "Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "in": "query", + "required": false, + "schema": { "type": "string" } + }, + "installation_id": { + "name": "installation_id", + "description": "installation_id parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "grant_id": { + "name": "grant_id", + "description": "grant_id parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "client-id": { + "name": "client_id", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + "access-token": { + "name": "access_token", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + "app_slug": { + "name": "app_slug", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + "authorization_id": { + "name": "authorization_id", + "description": "authorization_id parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "enterprise": { + "name": "enterprise", + "description": "The slug version of the enterprise name. You can also substitute this value with the enterprise id.", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + "org_id": { + "name": "org_id", + "description": "Unique identifier of an organization.", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "runner_group_id": { + "name": "runner_group_id", + "description": "Unique identifier of the self-hosted runner group.", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "runner_id": { + "name": "runner_id", + "description": "Unique identifier of the self-hosted runner.", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "audit-log-phrase": { + "name": "phrase", + "description": "A search phrase. For more information, see [Searching the audit log](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/reviewing-the-audit-log-for-your-organization#searching-the-audit-log).", + "in": "query", + "required": false, + "schema": { "type": "string" } + }, + "audit-log-include": { + "name": "include", + "description": "The event types to include:\n\n- `web` - returns web (non-Git) events\n- `git` - returns Git events\n- `all` - returns both web and Git events\n\nThe default is `web`.", + "in": "query", + "required": false, + "schema": { "type": "string", "enum": ["web", "git", "all"] } + }, + "audit-log-after": { + "name": "after", + "description": "A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events after this cursor.", + "in": "query", + "required": false, + "schema": { "type": "string" } + }, + "audit-log-before": { + "name": "before", + "description": "A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events before this cursor.", + "in": "query", + "required": false, + "schema": { "type": "string" } + }, + "gist_id": { + "name": "gist_id", + "description": "gist_id parameter", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + "comment_id": { + "name": "comment_id", + "description": "comment_id parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "labels": { + "name": "labels", + "description": "A list of comma separated label names. Example: `bug,ui,@high`", + "in": "query", + "required": false, + "schema": { "type": "string" } + }, + "direction": { + "name": "direction", + "description": "One of `asc` (ascending) or `desc` (descending).", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["asc", "desc"], + "default": "desc" + } + }, + "account_id": { + "name": "account_id", + "description": "account_id parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "plan_id": { + "name": "plan_id", + "description": "plan_id parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "sort": { + "name": "sort", + "description": "One of `created` (when the repository was starred) or `updated` (when it was last pushed to).", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["created", "updated"], + "default": "created" + } + }, + "owner": { + "name": "owner", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + "repo": { + "name": "repo", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + "all": { + "name": "all", + "description": "If `true`, show notifications marked as read.", + "in": "query", + "required": false, + "schema": { "type": "boolean", "default": false } + }, + "participating": { + "name": "participating", + "description": "If `true`, only shows notifications in which the user is directly participating or mentioned.", + "in": "query", + "required": false, + "schema": { "type": "boolean", "default": false } + }, + "before": { + "name": "before", + "description": "Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "in": "query", + "required": false, + "schema": { "type": "string" } + }, + "thread_id": { + "name": "thread_id", + "description": "thread_id parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "since-org": { + "name": "since", + "description": "An organization ID. Only return organizations with an ID greater than this ID.", + "in": "query", + "required": false, + "schema": { "type": "integer" } + }, + "org": { + "name": "org", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + "repository_id": { + "name": "repository_id", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "secret_name": { + "name": "secret_name", + "description": "secret_name parameter", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + "username": { + "name": "username", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + "hook-id": { + "name": "hook_id", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "invitation_id": { + "name": "invitation_id", + "description": "invitation_id parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "migration_id": { + "name": "migration_id", + "description": "migration_id parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "repo_name": { + "name": "repo_name", + "description": "repo_name parameter", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + "team_slug": { + "name": "team_slug", + "description": "team_slug parameter", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + "discussion-number": { + "name": "discussion_number", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "comment-number": { + "name": "comment_number", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "reaction-id": { + "name": "reaction_id", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "project-id": { + "name": "project_id", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "card_id": { + "name": "card_id", + "description": "card_id parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "column_id": { + "name": "column_id", + "description": "column_id parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "artifact_id": { + "name": "artifact_id", + "description": "artifact_id parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "job_id": { + "name": "job_id", + "description": "job_id parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "actor": { + "name": "actor", + "description": "Returns someone's workflow runs. Use the login for the user who created the `push` associated with the check suite or workflow run.", + "in": "query", + "required": false, + "schema": { "type": "string" } + }, + "workflow-run-branch": { + "name": "branch", + "description": "Returns workflow runs associated with a branch. Use the name of the branch of the `push`.", + "in": "query", + "required": false, + "schema": { "type": "string" } + }, + "event": { + "name": "event", + "description": "Returns workflow run triggered by the event you specify. For example, `push`, `pull_request` or `issue`. For more information, see \"[Events that trigger workflows](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows).\"", + "in": "query", + "required": false, + "schema": { "type": "string" } + }, + "workflow-run-status": { + "name": "status", + "description": "Returns workflow runs associated with the check run `status` or `conclusion` you specify. For example, a conclusion can be `success` or a status can be `completed`. For more information, see the `status` and `conclusion` options available in \"[Create a check run](https://docs.github.com/rest/reference/checks#create-a-check-run).\"", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["completed", "status", "conclusion"] + } + }, + "run-id": { + "name": "run_id", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "workflow-id": { + "name": "workflow_id", + "in": "path", + "description": "The ID of the workflow. You can also pass the workflow file name as a string.", + "required": true, + "schema": { "oneOf": [{ "type": "integer" }, { "type": "string" }] } + }, + "branch": { + "name": "branch", + "description": "branch+ parameter", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + "check_run_id": { + "name": "check_run_id", + "description": "check_run_id parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "check_suite_id": { + "name": "check_suite_id", + "description": "check_suite_id parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "check_name": { + "name": "check_name", + "description": "Returns check runs with the specified `name`.", + "in": "query", + "required": false, + "schema": { "type": "string" } + }, + "status": { + "name": "status", + "description": "Returns check runs with the specified `status`. Can be one of `queued`, `in_progress`, or `completed`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["queued", "in_progress", "completed"] + } + }, + "alert_number": { + "name": "alert_number", + "in": "path", + "description": "The security alert number, found at the end of the security alert's URL.", + "required": true, + "schema": { "$ref": "#/components/schemas/alert-number" } + }, + "commit_sha": { + "name": "commit_sha", + "description": "commit_sha+ parameter", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + "deployment_id": { + "name": "deployment_id", + "description": "deployment_id parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "since-user": { + "name": "since", + "description": "A user ID. Only return users with an ID greater than this ID.", + "in": "query", + "required": false, + "schema": { "type": "integer" } + }, + "issue_number": { + "name": "issue_number", + "description": "issue_number parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "key_id": { + "name": "key_id", + "description": "key_id parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "milestone_number": { + "name": "milestone_number", + "description": "milestone_number parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "pull-number": { + "name": "pull_number", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "review_id": { + "name": "review_id", + "description": "review_id parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "asset_id": { + "name": "asset_id", + "description": "asset_id parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "release_id": { + "name": "release_id", + "description": "release_id parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "per": { + "name": "per", + "description": "Must be one of: `day`, `week`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["day", "week"], + "default": "day" + } + }, + "since-repo": { + "name": "since", + "description": "A repository ID. Only return repositories with an ID greater than this ID.", + "in": "query", + "required": false, + "schema": { "type": "integer" } + }, + "start_index": { + "name": "startIndex", + "description": "Used for pagination: the index of the first result to return.", + "in": "query", + "required": false, + "schema": { "type": "integer" } + }, + "count": { + "name": "count", + "description": "Used for pagination: the number of results to return.", + "in": "query", + "required": false, + "schema": { "type": "integer" } + }, + "scim_group_id": { + "name": "scim_group_id", + "description": "Identifier generated by the GitHub SCIM endpoint.", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + "scim_user_id": { + "name": "scim_user_id", + "description": "scim_user_id parameter", + "in": "path", + "required": true, + "schema": { "type": "string" } + }, + "order": { + "name": "order", + "description": "Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": ["desc", "asc"], + "default": "desc" + } + }, + "team-id": { + "name": "team_id", + "in": "path", + "required": true, + "schema": { "type": "integer" } + }, + "gpg_key_id": { + "name": "gpg_key_id", + "description": "gpg_key_id parameter", + "in": "path", + "required": true, + "schema": { "type": "integer" } + } + }, + "headers": { + "link": { + "example": "; rel=\"next\", ; rel=\"last\"", + "schema": { "type": "string" } + }, + "content-type": { + "example": "text/html", + "schema": { "type": "string" } + }, + "x-common-marker-version": { + "example": "0.17.4", + "schema": { "type": "string" } + }, + "x-rate-limit-limit": { + "example": "5000", + "schema": { "type": "integer" } + }, + "x-rate-limit-remaining": { + "example": "4999", + "schema": { "type": "integer" } + }, + "x-rate-limit-reset": { + "example": "1590701888", + "schema": { "type": "integer", "format": "timestamp" } + }, + "location": { + "example": "https://pipelines.actions.githubusercontent.com/OhgS4QRKqmgx7bKC27GKU83jnQjyeqG8oIMTge8eqtheppcmw8/_apis/pipelines/1/runs/176/signedlogcontent?urlExpires=2020-01-24T18%3A10%3A31.5729946Z&urlSigningMethod=HMACV1&urlSignature=agG73JakPYkHrh06seAkvmH7rBR4Ji4c2%2B6a2ejYh3E%3D", + "schema": { "type": "string" } + } + } + } +} diff --git a/Client/node_modules/@octokit/openapi-types/generated/types.ts b/Client/node_modules/@octokit/openapi-types/generated/types.ts new file mode 100644 index 000000000..c9e4a9cc2 --- /dev/null +++ b/Client/node_modules/@octokit/openapi-types/generated/types.ts @@ -0,0 +1,27977 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + +export interface paths { + "/": { + get: operations["meta/root"]; + }; + "/app": { + get: operations["apps/get-authenticated"]; + }; + "/app-manifests/{code}/conversions": { + post: operations["apps/create-from-manifest"]; + }; + "/app/hook/config": { + get: operations["apps/get-webhook-config-for-app"]; + patch: operations["apps/update-webhook-config-for-app"]; + }; + "/app/installations": { + get: operations["apps/list-installations"]; + }; + "/app/installations/{installation_id}": { + get: operations["apps/get-installation"]; + delete: operations["apps/delete-installation"]; + }; + "/app/installations/{installation_id}/access_tokens": { + post: operations["apps/create-installation-access-token"]; + }; + "/app/installations/{installation_id}/suspended": { + put: operations["apps/suspend-installation"]; + delete: operations["apps/unsuspend-installation"]; + }; + "/applications/grants": { + get: operations["oauth-authorizations/list-grants"]; + }; + "/applications/grants/{grant_id}": { + get: operations["oauth-authorizations/get-grant"]; + delete: operations["oauth-authorizations/delete-grant"]; + }; + "/applications/{client_id}/grant": { + delete: operations["apps/delete-authorization"]; + }; + "/applications/{client_id}/grants/{access_token}": { + delete: operations["apps/revoke-grant-for-application"]; + }; + "/applications/{client_id}/token": { + post: operations["apps/check-token"]; + patch: operations["apps/reset-token"]; + delete: operations["apps/delete-token"]; + }; + "/applications/{client_id}/tokens/{access_token}": { + get: operations["apps/check-authorization"]; + post: operations["apps/reset-authorization"]; + delete: operations["apps/revoke-authorization-for-application"]; + }; + "/apps/{app_slug}": { + get: operations["apps/get-by-slug"]; + }; + "/authorizations": { + get: operations["oauth-authorizations/list-authorizations"]; + post: operations["oauth-authorizations/create-authorization"]; + }; + "/authorizations/clients/{client_id}": { + put: operations["oauth-authorizations/get-or-create-authorization-for-app"]; + }; + "/authorizations/clients/{client_id}/{fingerprint}": { + put: operations["oauth-authorizations/get-or-create-authorization-for-app-and-fingerprint"]; + }; + "/authorizations/{authorization_id}": { + get: operations["oauth-authorizations/get-authorization"]; + patch: operations["oauth-authorizations/update-authorization"]; + delete: operations["oauth-authorizations/delete-authorization"]; + }; + "/codes_of_conduct": { + get: operations["codes-of-conduct/get-all-codes-of-conduct"]; + }; + "/codes_of_conduct/{key}": { + get: operations["codes-of-conduct/get-conduct-code"]; + }; + "/content_references/{content_reference_id}/attachments": { + post: operations["apps/create-content-attachment"]; + }; + "/emojis": { + get: operations["emojis/get"]; + }; + "/enterprises/{enterprise}/actions/permissions": { + get: operations["enterprise-admin/get-github-actions-permissions-enterprise"]; + put: operations["enterprise-admin/set-github-actions-permissions-enterprise"]; + }; + "/enterprises/{enterprise}/actions/permissions/organizations": { + get: operations["enterprise-admin/list-selected-organizations-enabled-github-actions-enterprise"]; + put: operations["enterprise-admin/set-selected-organizations-enabled-github-actions-enterprise"]; + }; + "/enterprises/{enterprise}/actions/permissions/organizations/{org_id}": { + put: operations["enterprise-admin/enable-selected-organization-github-actions-enterprise"]; + delete: operations["enterprise-admin/disable-selected-organization-github-actions-enterprise"]; + }; + "/enterprises/{enterprise}/actions/permissions/selected-actions": { + get: operations["enterprise-admin/get-allowed-actions-enterprise"]; + put: operations["enterprise-admin/set-allowed-actions-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runner-groups": { + get: operations["enterprise-admin/list-self-hosted-runner-groups-for-enterprise"]; + post: operations["enterprise-admin/create-self-hosted-runner-group-for-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}": { + get: operations["enterprise-admin/get-self-hosted-runner-group-for-enterprise"]; + patch: operations["enterprise-admin/update-self-hosted-runner-group-for-enterprise"]; + delete: operations["enterprise-admin/delete-self-hosted-runner-group-from-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations": { + get: operations["enterprise-admin/list-org-access-to-self-hosted-runner-group-in-enterprise"]; + put: operations["enterprise-admin/set-org-access-to-self-hosted-runner-group-in-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations/{org_id}": { + put: operations["enterprise-admin/add-org-access-to-self-hosted-runner-group-in-enterprise"]; + delete: operations["enterprise-admin/remove-org-access-to-self-hosted-runner-group-in-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners": { + get: operations["enterprise-admin/list-self-hosted-runners-in-group-for-enterprise"]; + put: operations["enterprise-admin/set-self-hosted-runners-in-group-for-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners/{runner_id}": { + put: operations["enterprise-admin/add-self-hosted-runner-to-group-for-enterprise"]; + delete: operations["enterprise-admin/remove-self-hosted-runner-from-group-for-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runners": { + get: operations["enterprise-admin/list-self-hosted-runners-for-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runners/downloads": { + get: operations["enterprise-admin/list-runner-applications-for-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runners/registration-token": { + post: operations["enterprise-admin/create-registration-token-for-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runners/remove-token": { + post: operations["enterprise-admin/create-remove-token-for-enterprise"]; + }; + "/enterprises/{enterprise}/actions/runners/{runner_id}": { + get: operations["enterprise-admin/get-self-hosted-runner-for-enterprise"]; + delete: operations["enterprise-admin/delete-self-hosted-runner-from-enterprise"]; + }; + "/enterprises/{enterprise}/audit-log": { + get: operations["audit-log/get-audit-log"]; + }; + "/enterprises/{enterprise}/settings/billing/actions": { + get: operations["billing/get-github-actions-billing-ghe"]; + }; + "/enterprises/{enterprise}/settings/billing/packages": { + get: operations["billing/get-github-packages-billing-ghe"]; + }; + "/enterprises/{enterprise}/settings/billing/shared-storage": { + get: operations["billing/get-shared-storage-billing-ghe"]; + }; + "/events": { + get: operations["activity/list-public-events"]; + }; + "/feeds": { + get: operations["activity/get-feeds"]; + }; + "/gists": { + get: operations["gists/list"]; + post: operations["gists/create"]; + }; + "/gists/public": { + get: operations["gists/list-public"]; + }; + "/gists/starred": { + get: operations["gists/list-starred"]; + }; + "/gists/{gist_id}": { + get: operations["gists/get"]; + patch: operations["gists/update"]; + delete: operations["gists/delete"]; + }; + "/gists/{gist_id}/comments": { + get: operations["gists/list-comments"]; + post: operations["gists/create-comment"]; + }; + "/gists/{gist_id}/comments/{comment_id}": { + get: operations["gists/get-comment"]; + patch: operations["gists/update-comment"]; + delete: operations["gists/delete-comment"]; + }; + "/gists/{gist_id}/commits": { + get: operations["gists/list-commits"]; + }; + "/gists/{gist_id}/forks": { + get: operations["gists/list-forks"]; + post: operations["gists/fork"]; + }; + "/gists/{gist_id}/star": { + get: operations["gists/check-is-starred"]; + put: operations["gists/star"]; + delete: operations["gists/unstar"]; + }; + "/gists/{gist_id}/{sha}": { + get: operations["gists/get-revision"]; + }; + "/gitignore/templates": { + get: operations["gitignore/get-all-templates"]; + }; + "/gitignore/templates/{name}": { + get: operations["gitignore/get-template"]; + }; + "/installation/repositories": { + get: operations["apps/list-repos-accessible-to-installation"]; + }; + "/installation/token": { + delete: operations["apps/revoke-installation-access-token"]; + }; + "/issues": { + get: operations["issues/list"]; + }; + "/licenses": { + get: operations["licenses/get-all-commonly-used"]; + }; + "/licenses/{license}": { + get: operations["licenses/get"]; + }; + "/markdown": { + post: operations["markdown/render"]; + }; + "/markdown/raw": { + post: operations["markdown/render-raw"]; + }; + "/marketplace_listing/accounts/{account_id}": { + get: operations["apps/get-subscription-plan-for-account"]; + }; + "/marketplace_listing/plans": { + get: operations["apps/list-plans"]; + }; + "/marketplace_listing/plans/{plan_id}/accounts": { + get: operations["apps/list-accounts-for-plan"]; + }; + "/marketplace_listing/stubbed/accounts/{account_id}": { + get: operations["apps/get-subscription-plan-for-account-stubbed"]; + }; + "/marketplace_listing/stubbed/plans": { + get: operations["apps/list-plans-stubbed"]; + }; + "/marketplace_listing/stubbed/plans/{plan_id}/accounts": { + get: operations["apps/list-accounts-for-plan-stubbed"]; + }; + "/meta": { + get: operations["meta/get"]; + }; + "/networks/{owner}/{repo}/events": { + get: operations["activity/list-public-events-for-repo-network"]; + }; + "/notifications": { + get: operations["activity/list-notifications-for-authenticated-user"]; + put: operations["activity/mark-notifications-as-read"]; + }; + "/notifications/threads/{thread_id}": { + get: operations["activity/get-thread"]; + patch: operations["activity/mark-thread-as-read"]; + }; + "/notifications/threads/{thread_id}/subscription": { + get: operations["activity/get-thread-subscription-for-authenticated-user"]; + put: operations["activity/set-thread-subscription"]; + delete: operations["activity/delete-thread-subscription"]; + }; + "/octocat": { + get: operations["meta/get-octocat"]; + }; + "/organizations": { + get: operations["orgs/list"]; + }; + "/orgs/{org}": { + get: operations["orgs/get"]; + patch: operations["orgs/update"]; + }; + "/orgs/{org}/actions/permissions": { + get: operations["actions/get-github-actions-permissions-organization"]; + put: operations["actions/set-github-actions-permissions-organization"]; + }; + "/orgs/{org}/actions/permissions/repositories": { + get: operations["actions/list-selected-repositories-enabled-github-actions-organization"]; + put: operations["actions/set-selected-repositories-enabled-github-actions-organization"]; + }; + "/orgs/{org}/actions/permissions/repositories/{repository_id}": { + put: operations["actions/enable-selected-repository-github-actions-organization"]; + delete: operations["actions/disable-selected-repository-github-actions-organization"]; + }; + "/orgs/{org}/actions/permissions/selected-actions": { + get: operations["actions/get-allowed-actions-organization"]; + put: operations["actions/set-allowed-actions-organization"]; + }; + "/orgs/{org}/actions/runner-groups": { + get: operations["actions/list-self-hosted-runner-groups-for-org"]; + post: operations["actions/create-self-hosted-runner-group-for-org"]; + }; + "/orgs/{org}/actions/runner-groups/{runner_group_id}": { + get: operations["actions/get-self-hosted-runner-group-for-org"]; + patch: operations["actions/update-self-hosted-runner-group-for-org"]; + delete: operations["actions/delete-self-hosted-runner-group-from-org"]; + }; + "/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories": { + get: operations["actions/list-repo-access-to-self-hosted-runner-group-in-org"]; + put: operations["actions/set-repo-access-to-self-hosted-runner-group-in-org"]; + }; + "/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}": { + put: operations["actions/add-repo-access-to-self-hosted-runner-group-in-org"]; + delete: operations["actions/remove-repo-access-to-self-hosted-runner-group-in-org"]; + }; + "/orgs/{org}/actions/runner-groups/{runner_group_id}/runners": { + get: operations["actions/list-self-hosted-runners-in-group-for-org"]; + put: operations["actions/set-self-hosted-runners-in-group-for-org"]; + }; + "/orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}": { + put: operations["actions/add-self-hosted-runner-to-group-for-org"]; + delete: operations["actions/remove-self-hosted-runner-from-group-for-org"]; + }; + "/orgs/{org}/actions/runners": { + get: operations["actions/list-self-hosted-runners-for-org"]; + }; + "/orgs/{org}/actions/runners/downloads": { + get: operations["actions/list-runner-applications-for-org"]; + }; + "/orgs/{org}/actions/runners/registration-token": { + post: operations["actions/create-registration-token-for-org"]; + }; + "/orgs/{org}/actions/runners/remove-token": { + post: operations["actions/create-remove-token-for-org"]; + }; + "/orgs/{org}/actions/runners/{runner_id}": { + get: operations["actions/get-self-hosted-runner-for-org"]; + delete: operations["actions/delete-self-hosted-runner-from-org"]; + }; + "/orgs/{org}/actions/secrets": { + get: operations["actions/list-org-secrets"]; + }; + "/orgs/{org}/actions/secrets/public-key": { + get: operations["actions/get-org-public-key"]; + }; + "/orgs/{org}/actions/secrets/{secret_name}": { + get: operations["actions/get-org-secret"]; + put: operations["actions/create-or-update-org-secret"]; + delete: operations["actions/delete-org-secret"]; + }; + "/orgs/{org}/actions/secrets/{secret_name}/repositories": { + get: operations["actions/list-selected-repos-for-org-secret"]; + put: operations["actions/set-selected-repos-for-org-secret"]; + }; + "/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}": { + put: operations["actions/add-selected-repo-to-org-secret"]; + delete: operations["actions/remove-selected-repo-from-org-secret"]; + }; + "/orgs/{org}/audit-log": { + get: operations["orgs/get-audit-log"]; + }; + "/orgs/{org}/blocks": { + get: operations["orgs/list-blocked-users"]; + }; + "/orgs/{org}/blocks/{username}": { + get: operations["orgs/check-blocked-user"]; + put: operations["orgs/block-user"]; + delete: operations["orgs/unblock-user"]; + }; + "/orgs/{org}/credential-authorizations": { + get: operations["orgs/list-saml-sso-authorizations"]; + }; + "/orgs/{org}/credential-authorizations/{credential_id}": { + delete: operations["orgs/remove-saml-sso-authorization"]; + }; + "/orgs/{org}/events": { + get: operations["activity/list-public-org-events"]; + }; + "/orgs/{org}/hooks": { + get: operations["orgs/list-webhooks"]; + post: operations["orgs/create-webhook"]; + }; + "/orgs/{org}/hooks/{hook_id}": { + get: operations["orgs/get-webhook"]; + patch: operations["orgs/update-webhook"]; + delete: operations["orgs/delete-webhook"]; + }; + "/orgs/{org}/hooks/{hook_id}/config": { + get: operations["orgs/get-webhook-config-for-org"]; + patch: operations["orgs/update-webhook-config-for-org"]; + }; + "/orgs/{org}/hooks/{hook_id}/pings": { + post: operations["orgs/ping-webhook"]; + }; + "/orgs/{org}/installation": { + get: operations["apps/get-org-installation"]; + }; + "/orgs/{org}/installations": { + get: operations["orgs/list-app-installations"]; + }; + "/orgs/{org}/interaction-limits": { + get: operations["interactions/get-restrictions-for-org"]; + put: operations["interactions/set-restrictions-for-org"]; + delete: operations["interactions/remove-restrictions-for-org"]; + }; + "/orgs/{org}/invitations": { + get: operations["orgs/list-pending-invitations"]; + post: operations["orgs/create-invitation"]; + }; + "/orgs/{org}/invitations/{invitation_id}/teams": { + get: operations["orgs/list-invitation-teams"]; + }; + "/orgs/{org}/issues": { + get: operations["issues/list-for-org"]; + }; + "/orgs/{org}/members": { + get: operations["orgs/list-members"]; + }; + "/orgs/{org}/members/{username}": { + get: operations["orgs/check-membership-for-user"]; + delete: operations["orgs/remove-member"]; + }; + "/orgs/{org}/memberships/{username}": { + get: operations["orgs/get-membership-for-user"]; + put: operations["orgs/set-membership-for-user"]; + delete: operations["orgs/remove-membership-for-user"]; + }; + "/orgs/{org}/migrations": { + get: operations["migrations/list-for-org"]; + post: operations["migrations/start-for-org"]; + }; + "/orgs/{org}/migrations/{migration_id}": { + get: operations["migrations/get-status-for-org"]; + }; + "/orgs/{org}/migrations/{migration_id}/archive": { + get: operations["migrations/download-archive-for-org"]; + delete: operations["migrations/delete-archive-for-org"]; + }; + "/orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock": { + delete: operations["migrations/unlock-repo-for-org"]; + }; + "/orgs/{org}/migrations/{migration_id}/repositories": { + get: operations["migrations/list-repos-for-org"]; + }; + "/orgs/{org}/outside_collaborators": { + get: operations["orgs/list-outside-collaborators"]; + }; + "/orgs/{org}/outside_collaborators/{username}": { + put: operations["orgs/convert-member-to-outside-collaborator"]; + delete: operations["orgs/remove-outside-collaborator"]; + }; + "/orgs/{org}/projects": { + get: operations["projects/list-for-org"]; + post: operations["projects/create-for-org"]; + }; + "/orgs/{org}/public_members": { + get: operations["orgs/list-public-members"]; + }; + "/orgs/{org}/public_members/{username}": { + get: operations["orgs/check-public-membership-for-user"]; + put: operations["orgs/set-public-membership-for-authenticated-user"]; + delete: operations["orgs/remove-public-membership-for-authenticated-user"]; + }; + "/orgs/{org}/repos": { + get: operations["repos/list-for-org"]; + post: operations["repos/create-in-org"]; + }; + "/orgs/{org}/settings/billing/actions": { + get: operations["billing/get-github-actions-billing-org"]; + }; + "/orgs/{org}/settings/billing/packages": { + get: operations["billing/get-github-packages-billing-org"]; + }; + "/orgs/{org}/settings/billing/shared-storage": { + get: operations["billing/get-shared-storage-billing-org"]; + }; + "/orgs/{org}/team-sync/groups": { + get: operations["teams/list-idp-groups-for-org"]; + }; + "/orgs/{org}/teams": { + get: operations["teams/list"]; + post: operations["teams/create"]; + }; + "/orgs/{org}/teams/{team_slug}": { + get: operations["teams/get-by-name"]; + patch: operations["teams/update-in-org"]; + delete: operations["teams/delete-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions": { + get: operations["teams/list-discussions-in-org"]; + post: operations["teams/create-discussion-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": { + get: operations["teams/get-discussion-in-org"]; + patch: operations["teams/update-discussion-in-org"]; + delete: operations["teams/delete-discussion-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments": { + get: operations["teams/list-discussion-comments-in-org"]; + post: operations["teams/create-discussion-comment-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": { + get: operations["teams/get-discussion-comment-in-org"]; + patch: operations["teams/update-discussion-comment-in-org"]; + delete: operations["teams/delete-discussion-comment-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions": { + get: operations["reactions/list-for-team-discussion-comment-in-org"]; + post: operations["reactions/create-for-team-discussion-comment-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}": { + delete: operations["reactions/delete-for-team-discussion-comment"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions": { + get: operations["reactions/list-for-team-discussion-in-org"]; + post: operations["reactions/create-for-team-discussion-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}": { + delete: operations["reactions/delete-for-team-discussion"]; + }; + "/orgs/{org}/teams/{team_slug}/invitations": { + get: operations["teams/list-pending-invitations-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/members": { + get: operations["teams/list-members-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/memberships/{username}": { + get: operations["teams/get-membership-for-user-in-org"]; + put: operations["teams/add-or-update-membership-for-user-in-org"]; + delete: operations["teams/remove-membership-for-user-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/projects": { + get: operations["teams/list-projects-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/projects/{project_id}": { + get: operations["teams/check-permissions-for-project-in-org"]; + put: operations["teams/add-or-update-project-permissions-in-org"]; + delete: operations["teams/remove-project-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/repos": { + get: operations["teams/list-repos-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": { + get: operations["teams/check-permissions-for-repo-in-org"]; + put: operations["teams/add-or-update-repo-permissions-in-org"]; + delete: operations["teams/remove-repo-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/team-sync/group-mappings": { + get: operations["teams/list-idp-groups-in-org"]; + patch: operations["teams/create-or-update-idp-group-connections-in-org"]; + }; + "/orgs/{org}/teams/{team_slug}/teams": { + get: operations["teams/list-child-in-org"]; + }; + "/projects/columns/cards/{card_id}": { + get: operations["projects/get-card"]; + patch: operations["projects/update-card"]; + delete: operations["projects/delete-card"]; + }; + "/projects/columns/cards/{card_id}/moves": { + post: operations["projects/move-card"]; + }; + "/projects/columns/{column_id}": { + get: operations["projects/get-column"]; + patch: operations["projects/update-column"]; + delete: operations["projects/delete-column"]; + }; + "/projects/columns/{column_id}/cards": { + get: operations["projects/list-cards"]; + post: operations["projects/create-card"]; + }; + "/projects/columns/{column_id}/moves": { + post: operations["projects/move-column"]; + }; + "/projects/{project_id}": { + get: operations["projects/get"]; + patch: operations["projects/update"]; + delete: operations["projects/delete"]; + }; + "/projects/{project_id}/collaborators": { + get: operations["projects/list-collaborators"]; + }; + "/projects/{project_id}/collaborators/{username}": { + put: operations["projects/add-collaborator"]; + delete: operations["projects/remove-collaborator"]; + }; + "/projects/{project_id}/collaborators/{username}/permission": { + get: operations["projects/get-permission-for-user"]; + }; + "/projects/{project_id}/columns": { + get: operations["projects/list-columns"]; + post: operations["projects/create-column"]; + }; + "/rate_limit": { + get: operations["rate-limit/get"]; + }; + "/reactions/{reaction_id}": { + delete: operations["reactions/delete-legacy"]; + }; + "/repos/{owner}/{repo}": { + get: operations["repos/get"]; + patch: operations["repos/update"]; + delete: operations["repos/delete"]; + }; + "/repos/{owner}/{repo}/actions/artifacts": { + get: operations["actions/list-artifacts-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}": { + get: operations["actions/get-artifact"]; + delete: operations["actions/delete-artifact"]; + }; + "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}": { + get: operations["actions/download-artifact"]; + }; + "/repos/{owner}/{repo}/actions/jobs/{job_id}": { + get: operations["actions/get-job-for-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/jobs/{job_id}/logs": { + get: operations["actions/download-job-logs-for-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/permissions": { + get: operations["actions/get-github-actions-permissions-repository"]; + put: operations["actions/set-github-actions-permissions-repository"]; + }; + "/repos/{owner}/{repo}/actions/permissions/selected-actions": { + get: operations["actions/get-allowed-actions-repository"]; + put: operations["actions/set-allowed-actions-repository"]; + }; + "/repos/{owner}/{repo}/actions/runners": { + get: operations["actions/list-self-hosted-runners-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/downloads": { + get: operations["actions/list-runner-applications-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/registration-token": { + post: operations["actions/create-registration-token-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/remove-token": { + post: operations["actions/create-remove-token-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runners/{runner_id}": { + get: operations["actions/get-self-hosted-runner-for-repo"]; + delete: operations["actions/delete-self-hosted-runner-from-repo"]; + }; + "/repos/{owner}/{repo}/actions/runs": { + get: operations["actions/list-workflow-runs-for-repo"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}": { + get: operations["actions/get-workflow-run"]; + delete: operations["actions/delete-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts": { + get: operations["actions/list-workflow-run-artifacts"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/cancel": { + post: operations["actions/cancel-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/jobs": { + get: operations["actions/list-jobs-for-workflow-run"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/logs": { + get: operations["actions/download-workflow-run-logs"]; + delete: operations["actions/delete-workflow-run-logs"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/rerun": { + post: operations["actions/re-run-workflow"]; + }; + "/repos/{owner}/{repo}/actions/runs/{run_id}/timing": { + get: operations["actions/get-workflow-run-usage"]; + }; + "/repos/{owner}/{repo}/actions/secrets": { + get: operations["actions/list-repo-secrets"]; + }; + "/repos/{owner}/{repo}/actions/secrets/public-key": { + get: operations["actions/get-repo-public-key"]; + }; + "/repos/{owner}/{repo}/actions/secrets/{secret_name}": { + get: operations["actions/get-repo-secret"]; + put: operations["actions/create-or-update-repo-secret"]; + delete: operations["actions/delete-repo-secret"]; + }; + "/repos/{owner}/{repo}/actions/workflows": { + get: operations["actions/list-repo-workflows"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}": { + get: operations["actions/get-workflow"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable": { + put: operations["actions/disable-workflow"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches": { + post: operations["actions/create-workflow-dispatch"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable": { + put: operations["actions/enable-workflow"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs": { + get: operations["actions/list-workflow-runs"]; + }; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing": { + get: operations["actions/get-workflow-usage"]; + }; + "/repos/{owner}/{repo}/assignees": { + get: operations["issues/list-assignees"]; + }; + "/repos/{owner}/{repo}/assignees/{assignee}": { + get: operations["issues/check-user-can-be-assigned"]; + }; + "/repos/{owner}/{repo}/automated-security-fixes": { + put: operations["repos/enable-automated-security-fixes"]; + delete: operations["repos/disable-automated-security-fixes"]; + }; + "/repos/{owner}/{repo}/branches": { + get: operations["repos/list-branches"]; + }; + "/repos/{owner}/{repo}/branches/{branch}": { + get: operations["repos/get-branch"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection": { + get: operations["repos/get-branch-protection"]; + put: operations["repos/update-branch-protection"]; + delete: operations["repos/delete-branch-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": { + get: operations["repos/get-admin-branch-protection"]; + post: operations["repos/set-admin-branch-protection"]; + delete: operations["repos/delete-admin-branch-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": { + get: operations["repos/get-pull-request-review-protection"]; + patch: operations["repos/update-pull-request-review-protection"]; + delete: operations["repos/delete-pull-request-review-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": { + get: operations["repos/get-commit-signature-protection"]; + post: operations["repos/create-commit-signature-protection"]; + delete: operations["repos/delete-commit-signature-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": { + get: operations["repos/get-status-checks-protection"]; + patch: operations["repos/update-status-check-protection"]; + delete: operations["repos/remove-status-check-protection"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": { + get: operations["repos/get-all-status-check-contexts"]; + post: operations["repos/add-status-check-contexts"]; + put: operations["repos/set-status-check-contexts"]; + delete: operations["repos/remove-status-check-contexts"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions": { + get: operations["repos/get-access-restrictions"]; + delete: operations["repos/delete-access-restrictions"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": { + get: operations["repos/get-apps-with-access-to-protected-branch"]; + post: operations["repos/add-app-access-restrictions"]; + put: operations["repos/set-app-access-restrictions"]; + delete: operations["repos/remove-app-access-restrictions"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": { + get: operations["repos/get-teams-with-access-to-protected-branch"]; + post: operations["repos/add-team-access-restrictions"]; + put: operations["repos/set-team-access-restrictions"]; + delete: operations["repos/remove-team-access-restrictions"]; + }; + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": { + get: operations["repos/get-users-with-access-to-protected-branch"]; + post: operations["repos/add-user-access-restrictions"]; + put: operations["repos/set-user-access-restrictions"]; + delete: operations["repos/remove-user-access-restrictions"]; + }; + "/repos/{owner}/{repo}/check-runs": { + post: operations["checks/create"]; + }; + "/repos/{owner}/{repo}/check-runs/{check_run_id}": { + get: operations["checks/get"]; + patch: operations["checks/update"]; + }; + "/repos/{owner}/{repo}/check-runs/{check_run_id}/annotations": { + get: operations["checks/list-annotations"]; + }; + "/repos/{owner}/{repo}/check-suites": { + post: operations["checks/create-suite"]; + }; + "/repos/{owner}/{repo}/check-suites/preferences": { + patch: operations["checks/set-suites-preferences"]; + }; + "/repos/{owner}/{repo}/check-suites/{check_suite_id}": { + get: operations["checks/get-suite"]; + }; + "/repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs": { + get: operations["checks/list-for-suite"]; + }; + "/repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest": { + post: operations["checks/rerequest-suite"]; + }; + "/repos/{owner}/{repo}/code-scanning/alerts": { + get: operations["code-scanning/list-alerts-for-repo"]; + }; + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": { + get: operations["code-scanning/get-alert"]; + patch: operations["code-scanning/update-alert"]; + }; + "/repos/{owner}/{repo}/code-scanning/analyses": { + get: operations["code-scanning/list-recent-analyses"]; + }; + "/repos/{owner}/{repo}/code-scanning/sarifs": { + post: operations["code-scanning/upload-sarif"]; + }; + "/repos/{owner}/{repo}/collaborators": { + get: operations["repos/list-collaborators"]; + }; + "/repos/{owner}/{repo}/collaborators/{username}": { + get: operations["repos/check-collaborator"]; + put: operations["repos/add-collaborator"]; + delete: operations["repos/remove-collaborator"]; + }; + "/repos/{owner}/{repo}/collaborators/{username}/permission": { + get: operations["repos/get-collaborator-permission-level"]; + }; + "/repos/{owner}/{repo}/comments": { + get: operations["repos/list-commit-comments-for-repo"]; + }; + "/repos/{owner}/{repo}/comments/{comment_id}": { + get: operations["repos/get-commit-comment"]; + patch: operations["repos/update-commit-comment"]; + delete: operations["repos/delete-commit-comment"]; + }; + "/repos/{owner}/{repo}/comments/{comment_id}/reactions": { + get: operations["reactions/list-for-commit-comment"]; + post: operations["reactions/create-for-commit-comment"]; + }; + "/repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}": { + delete: operations["reactions/delete-for-commit-comment"]; + }; + "/repos/{owner}/{repo}/commits": { + get: operations["repos/list-commits"]; + }; + "/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head": { + get: operations["repos/list-branches-for-head-commit"]; + }; + "/repos/{owner}/{repo}/commits/{commit_sha}/comments": { + get: operations["repos/list-comments-for-commit"]; + post: operations["repos/create-commit-comment"]; + }; + "/repos/{owner}/{repo}/commits/{commit_sha}/pulls": { + get: operations["repos/list-pull-requests-associated-with-commit"]; + }; + "/repos/{owner}/{repo}/commits/{ref}": { + get: operations["repos/get-commit"]; + }; + "/repos/{owner}/{repo}/commits/{ref}/check-runs": { + get: operations["checks/list-for-ref"]; + }; + "/repos/{owner}/{repo}/commits/{ref}/check-suites": { + get: operations["checks/list-suites-for-ref"]; + }; + "/repos/{owner}/{repo}/commits/{ref}/status": { + get: operations["repos/get-combined-status-for-ref"]; + }; + "/repos/{owner}/{repo}/commits/{ref}/statuses": { + get: operations["repos/list-commit-statuses-for-ref"]; + }; + "/repos/{owner}/{repo}/community/code_of_conduct": { + get: operations["codes-of-conduct/get-for-repo"]; + }; + "/repos/{owner}/{repo}/community/profile": { + get: operations["repos/get-community-profile-metrics"]; + }; + "/repos/{owner}/{repo}/compare/{base}...{head}": { + get: operations["repos/compare-commits"]; + }; + "/repos/{owner}/{repo}/contents/{path}": { + get: operations["repos/get-content"]; + put: operations["repos/create-or-update-file-contents"]; + delete: operations["repos/delete-file"]; + }; + "/repos/{owner}/{repo}/contributors": { + get: operations["repos/list-contributors"]; + }; + "/repos/{owner}/{repo}/deployments": { + get: operations["repos/list-deployments"]; + post: operations["repos/create-deployment"]; + }; + "/repos/{owner}/{repo}/deployments/{deployment_id}": { + get: operations["repos/get-deployment"]; + delete: operations["repos/delete-deployment"]; + }; + "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses": { + get: operations["repos/list-deployment-statuses"]; + post: operations["repos/create-deployment-status"]; + }; + "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}": { + get: operations["repos/get-deployment-status"]; + }; + "/repos/{owner}/{repo}/dispatches": { + post: operations["repos/create-dispatch-event"]; + }; + "/repos/{owner}/{repo}/events": { + get: operations["activity/list-repo-events"]; + }; + "/repos/{owner}/{repo}/forks": { + get: operations["repos/list-forks"]; + post: operations["repos/create-fork"]; + }; + "/repos/{owner}/{repo}/git/blobs": { + post: operations["git/create-blob"]; + }; + "/repos/{owner}/{repo}/git/blobs/{file_sha}": { + get: operations["git/get-blob"]; + }; + "/repos/{owner}/{repo}/git/commits": { + post: operations["git/create-commit"]; + }; + "/repos/{owner}/{repo}/git/commits/{commit_sha}": { + get: operations["git/get-commit"]; + }; + "/repos/{owner}/{repo}/git/matching-refs/{ref}": { + get: operations["git/list-matching-refs"]; + }; + "/repos/{owner}/{repo}/git/ref/{ref}": { + get: operations["git/get-ref"]; + }; + "/repos/{owner}/{repo}/git/refs": { + post: operations["git/create-ref"]; + }; + "/repos/{owner}/{repo}/git/refs/{ref}": { + patch: operations["git/update-ref"]; + delete: operations["git/delete-ref"]; + }; + "/repos/{owner}/{repo}/git/tags": { + post: operations["git/create-tag"]; + }; + "/repos/{owner}/{repo}/git/tags/{tag_sha}": { + get: operations["git/get-tag"]; + }; + "/repos/{owner}/{repo}/git/trees": { + post: operations["git/create-tree"]; + }; + "/repos/{owner}/{repo}/git/trees/{tree_sha}": { + get: operations["git/get-tree"]; + }; + "/repos/{owner}/{repo}/hooks": { + get: operations["repos/list-webhooks"]; + post: operations["repos/create-webhook"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}": { + get: operations["repos/get-webhook"]; + patch: operations["repos/update-webhook"]; + delete: operations["repos/delete-webhook"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/config": { + get: operations["repos/get-webhook-config-for-repo"]; + patch: operations["repos/update-webhook-config-for-repo"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/pings": { + post: operations["repos/ping-webhook"]; + }; + "/repos/{owner}/{repo}/hooks/{hook_id}/tests": { + post: operations["repos/test-push-webhook"]; + }; + "/repos/{owner}/{repo}/import": { + get: operations["migrations/get-import-status"]; + put: operations["migrations/start-import"]; + patch: operations["migrations/update-import"]; + delete: operations["migrations/cancel-import"]; + }; + "/repos/{owner}/{repo}/import/authors": { + get: operations["migrations/get-commit-authors"]; + }; + "/repos/{owner}/{repo}/import/authors/{author_id}": { + patch: operations["migrations/map-commit-author"]; + }; + "/repos/{owner}/{repo}/import/large_files": { + get: operations["migrations/get-large-files"]; + }; + "/repos/{owner}/{repo}/import/lfs": { + patch: operations["migrations/set-lfs-preference"]; + }; + "/repos/{owner}/{repo}/installation": { + get: operations["apps/get-repo-installation"]; + }; + "/repos/{owner}/{repo}/interaction-limits": { + get: operations["interactions/get-restrictions-for-repo"]; + put: operations["interactions/set-restrictions-for-repo"]; + delete: operations["interactions/remove-restrictions-for-repo"]; + }; + "/repos/{owner}/{repo}/invitations": { + get: operations["repos/list-invitations"]; + }; + "/repos/{owner}/{repo}/invitations/{invitation_id}": { + patch: operations["repos/update-invitation"]; + delete: operations["repos/delete-invitation"]; + }; + "/repos/{owner}/{repo}/issues": { + get: operations["issues/list-for-repo"]; + post: operations["issues/create"]; + }; + "/repos/{owner}/{repo}/issues/comments": { + get: operations["issues/list-comments-for-repo"]; + }; + "/repos/{owner}/{repo}/issues/comments/{comment_id}": { + get: operations["issues/get-comment"]; + patch: operations["issues/update-comment"]; + delete: operations["issues/delete-comment"]; + }; + "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": { + get: operations["reactions/list-for-issue-comment"]; + post: operations["reactions/create-for-issue-comment"]; + }; + "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}": { + delete: operations["reactions/delete-for-issue-comment"]; + }; + "/repos/{owner}/{repo}/issues/events": { + get: operations["issues/list-events-for-repo"]; + }; + "/repos/{owner}/{repo}/issues/events/{event_id}": { + get: operations["issues/get-event"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}": { + get: operations["issues/get"]; + patch: operations["issues/update"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/assignees": { + post: operations["issues/add-assignees"]; + delete: operations["issues/remove-assignees"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/comments": { + get: operations["issues/list-comments"]; + post: operations["issues/create-comment"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/events": { + get: operations["issues/list-events"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/labels": { + get: operations["issues/list-labels-on-issue"]; + post: operations["issues/add-labels"]; + put: operations["issues/set-labels"]; + delete: operations["issues/remove-all-labels"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}": { + delete: operations["issues/remove-label"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/lock": { + put: operations["issues/lock"]; + delete: operations["issues/unlock"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/reactions": { + get: operations["reactions/list-for-issue"]; + post: operations["reactions/create-for-issue"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}": { + delete: operations["reactions/delete-for-issue"]; + }; + "/repos/{owner}/{repo}/issues/{issue_number}/timeline": { + get: operations["issues/list-events-for-timeline"]; + }; + "/repos/{owner}/{repo}/keys": { + get: operations["repos/list-deploy-keys"]; + post: operations["repos/create-deploy-key"]; + }; + "/repos/{owner}/{repo}/keys/{key_id}": { + get: operations["repos/get-deploy-key"]; + delete: operations["repos/delete-deploy-key"]; + }; + "/repos/{owner}/{repo}/labels": { + get: operations["issues/list-labels-for-repo"]; + post: operations["issues/create-label"]; + }; + "/repos/{owner}/{repo}/labels/{name}": { + get: operations["issues/get-label"]; + patch: operations["issues/update-label"]; + delete: operations["issues/delete-label"]; + }; + "/repos/{owner}/{repo}/languages": { + get: operations["repos/list-languages"]; + }; + "/repos/{owner}/{repo}/license": { + get: operations["licenses/get-for-repo"]; + }; + "/repos/{owner}/{repo}/merges": { + post: operations["repos/merge"]; + }; + "/repos/{owner}/{repo}/milestones": { + get: operations["issues/list-milestones"]; + post: operations["issues/create-milestone"]; + }; + "/repos/{owner}/{repo}/milestones/{milestone_number}": { + get: operations["issues/get-milestone"]; + patch: operations["issues/update-milestone"]; + delete: operations["issues/delete-milestone"]; + }; + "/repos/{owner}/{repo}/milestones/{milestone_number}/labels": { + get: operations["issues/list-labels-for-milestone"]; + }; + "/repos/{owner}/{repo}/notifications": { + get: operations["activity/list-repo-notifications-for-authenticated-user"]; + put: operations["activity/mark-repo-notifications-as-read"]; + }; + "/repos/{owner}/{repo}/pages": { + get: operations["repos/get-pages"]; + post: operations["repos/create-pages-site"]; + put: operations["repos/update-information-about-pages-site"]; + delete: operations["repos/delete-pages-site"]; + }; + "/repos/{owner}/{repo}/pages/builds": { + get: operations["repos/list-pages-builds"]; + post: operations["repos/request-pages-build"]; + }; + "/repos/{owner}/{repo}/pages/builds/latest": { + get: operations["repos/get-latest-pages-build"]; + }; + "/repos/{owner}/{repo}/pages/builds/{build_id}": { + get: operations["repos/get-pages-build"]; + }; + "/repos/{owner}/{repo}/projects": { + get: operations["projects/list-for-repo"]; + post: operations["projects/create-for-repo"]; + }; + "/repos/{owner}/{repo}/pulls": { + get: operations["pulls/list"]; + post: operations["pulls/create"]; + }; + "/repos/{owner}/{repo}/pulls/comments": { + get: operations["pulls/list-review-comments-for-repo"]; + }; + "/repos/{owner}/{repo}/pulls/comments/{comment_id}": { + get: operations["pulls/get-review-comment"]; + patch: operations["pulls/update-review-comment"]; + delete: operations["pulls/delete-review-comment"]; + }; + "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": { + get: operations["reactions/list-for-pull-request-review-comment"]; + post: operations["reactions/create-for-pull-request-review-comment"]; + }; + "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}": { + delete: operations["reactions/delete-for-pull-request-comment"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}": { + get: operations["pulls/get"]; + patch: operations["pulls/update"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/comments": { + get: operations["pulls/list-review-comments"]; + post: operations["pulls/create-review-comment"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies": { + post: operations["pulls/create-reply-for-review-comment"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/commits": { + get: operations["pulls/list-commits"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/files": { + get: operations["pulls/list-files"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/merge": { + get: operations["pulls/check-if-merged"]; + put: operations["pulls/merge"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": { + get: operations["pulls/list-requested-reviewers"]; + post: operations["pulls/request-reviewers"]; + delete: operations["pulls/remove-requested-reviewers"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews": { + get: operations["pulls/list-reviews"]; + post: operations["pulls/create-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": { + get: operations["pulls/get-review"]; + put: operations["pulls/update-review"]; + delete: operations["pulls/delete-pending-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments": { + get: operations["pulls/list-comments-for-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals": { + put: operations["pulls/dismiss-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events": { + post: operations["pulls/submit-review"]; + }; + "/repos/{owner}/{repo}/pulls/{pull_number}/update-branch": { + put: operations["pulls/update-branch"]; + }; + "/repos/{owner}/{repo}/readme": { + get: operations["repos/get-readme"]; + }; + "/repos/{owner}/{repo}/releases": { + get: operations["repos/list-releases"]; + post: operations["repos/create-release"]; + }; + "/repos/{owner}/{repo}/releases/assets/{asset_id}": { + get: operations["repos/get-release-asset"]; + patch: operations["repos/update-release-asset"]; + delete: operations["repos/delete-release-asset"]; + }; + "/repos/{owner}/{repo}/releases/latest": { + get: operations["repos/get-latest-release"]; + }; + "/repos/{owner}/{repo}/releases/tags/{tag}": { + get: operations["repos/get-release-by-tag"]; + }; + "/repos/{owner}/{repo}/releases/{release_id}": { + get: operations["repos/get-release"]; + patch: operations["repos/update-release"]; + delete: operations["repos/delete-release"]; + }; + "/repos/{owner}/{repo}/releases/{release_id}/assets": { + get: operations["repos/list-release-assets"]; + post: operations["repos/upload-release-asset"]; + }; + "/repos/{owner}/{repo}/secret-scanning/alerts": { + get: operations["secret-scanning/list-alerts-for-repo"]; + }; + "/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}": { + get: operations["secret-scanning/get-alert"]; + patch: operations["secret-scanning/update-alert"]; + }; + "/repos/{owner}/{repo}/stargazers": { + get: operations["activity/list-stargazers-for-repo"]; + }; + "/repos/{owner}/{repo}/stats/code_frequency": { + get: operations["repos/get-code-frequency-stats"]; + }; + "/repos/{owner}/{repo}/stats/commit_activity": { + get: operations["repos/get-commit-activity-stats"]; + }; + "/repos/{owner}/{repo}/stats/contributors": { + get: operations["repos/get-contributors-stats"]; + }; + "/repos/{owner}/{repo}/stats/participation": { + get: operations["repos/get-participation-stats"]; + }; + "/repos/{owner}/{repo}/stats/punch_card": { + get: operations["repos/get-punch-card-stats"]; + }; + "/repos/{owner}/{repo}/statuses/{sha}": { + post: operations["repos/create-commit-status"]; + }; + "/repos/{owner}/{repo}/subscribers": { + get: operations["activity/list-watchers-for-repo"]; + }; + "/repos/{owner}/{repo}/subscription": { + get: operations["activity/get-repo-subscription"]; + put: operations["activity/set-repo-subscription"]; + delete: operations["activity/delete-repo-subscription"]; + }; + "/repos/{owner}/{repo}/tags": { + get: operations["repos/list-tags"]; + }; + "/repos/{owner}/{repo}/tarball/{ref}": { + get: operations["repos/download-tarball-archive"]; + }; + "/repos/{owner}/{repo}/teams": { + get: operations["repos/list-teams"]; + }; + "/repos/{owner}/{repo}/topics": { + get: operations["repos/get-all-topics"]; + put: operations["repos/replace-all-topics"]; + }; + "/repos/{owner}/{repo}/traffic/clones": { + get: operations["repos/get-clones"]; + }; + "/repos/{owner}/{repo}/traffic/popular/paths": { + get: operations["repos/get-top-paths"]; + }; + "/repos/{owner}/{repo}/traffic/popular/referrers": { + get: operations["repos/get-top-referrers"]; + }; + "/repos/{owner}/{repo}/traffic/views": { + get: operations["repos/get-views"]; + }; + "/repos/{owner}/{repo}/transfer": { + post: operations["repos/transfer"]; + }; + "/repos/{owner}/{repo}/vulnerability-alerts": { + get: operations["repos/check-vulnerability-alerts"]; + put: operations["repos/enable-vulnerability-alerts"]; + delete: operations["repos/disable-vulnerability-alerts"]; + }; + "/repos/{owner}/{repo}/zipball/{ref}": { + get: operations["repos/download-zipball-archive"]; + }; + "/repos/{template_owner}/{template_repo}/generate": { + post: operations["repos/create-using-template"]; + }; + "/repositories": { + get: operations["repos/list-public"]; + }; + "/scim/v2/enterprises/{enterprise}/Groups": { + get: operations["enterprise-admin/list-provisioned-groups-enterprise"]; + post: operations["enterprise-admin/provision-and-invite-enterprise-group"]; + }; + "/scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}": { + get: operations["enterprise-admin/get-provisioning-information-for-enterprise-group"]; + put: operations["enterprise-admin/set-information-for-provisioned-enterprise-group"]; + patch: operations["enterprise-admin/update-attribute-for-enterprise-group"]; + delete: operations["enterprise-admin/delete-scim-group-from-enterprise"]; + }; + "/scim/v2/enterprises/{enterprise}/Users": { + get: operations["enterprise-admin/list-provisioned-identities-enterprise"]; + post: operations["enterprise-admin/provision-and-invite-enterprise-user"]; + }; + "/scim/v2/enterprises/{enterprise}/Users/{scim_user_id}": { + get: operations["enterprise-admin/get-provisioning-information-for-enterprise-user"]; + put: operations["enterprise-admin/set-information-for-provisioned-enterprise-user"]; + patch: operations["enterprise-admin/update-attribute-for-enterprise-user"]; + delete: operations["enterprise-admin/delete-user-from-enterprise"]; + }; + "/scim/v2/organizations/{org}/Users": { + get: operations["scim/list-provisioned-identities"]; + post: operations["scim/provision-and-invite-user"]; + }; + "/scim/v2/organizations/{org}/Users/{scim_user_id}": { + get: operations["scim/get-provisioning-information-for-user"]; + put: operations["scim/set-information-for-provisioned-user"]; + patch: operations["scim/update-attribute-for-user"]; + delete: operations["scim/delete-user-from-org"]; + }; + "/search/code": { + get: operations["search/code"]; + }; + "/search/commits": { + get: operations["search/commits"]; + }; + "/search/issues": { + get: operations["search/issues-and-pull-requests"]; + }; + "/search/labels": { + get: operations["search/labels"]; + }; + "/search/repositories": { + get: operations["search/repos"]; + }; + "/search/topics": { + get: operations["search/topics"]; + }; + "/search/users": { + get: operations["search/users"]; + }; + "/teams/{team_id}": { + get: operations["teams/get-legacy"]; + patch: operations["teams/update-legacy"]; + delete: operations["teams/delete-legacy"]; + }; + "/teams/{team_id}/discussions": { + get: operations["teams/list-discussions-legacy"]; + post: operations["teams/create-discussion-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}": { + get: operations["teams/get-discussion-legacy"]; + patch: operations["teams/update-discussion-legacy"]; + delete: operations["teams/delete-discussion-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}/comments": { + get: operations["teams/list-discussion-comments-legacy"]; + post: operations["teams/create-discussion-comment-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": { + get: operations["teams/get-discussion-comment-legacy"]; + patch: operations["teams/update-discussion-comment-legacy"]; + delete: operations["teams/delete-discussion-comment-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions": { + get: operations["reactions/list-for-team-discussion-comment-legacy"]; + post: operations["reactions/create-for-team-discussion-comment-legacy"]; + }; + "/teams/{team_id}/discussions/{discussion_number}/reactions": { + get: operations["reactions/list-for-team-discussion-legacy"]; + post: operations["reactions/create-for-team-discussion-legacy"]; + }; + "/teams/{team_id}/invitations": { + get: operations["teams/list-pending-invitations-legacy"]; + }; + "/teams/{team_id}/members": { + get: operations["teams/list-members-legacy"]; + }; + "/teams/{team_id}/members/{username}": { + get: operations["teams/get-member-legacy"]; + put: operations["teams/add-member-legacy"]; + delete: operations["teams/remove-member-legacy"]; + }; + "/teams/{team_id}/memberships/{username}": { + get: operations["teams/get-membership-for-user-legacy"]; + put: operations["teams/add-or-update-membership-for-user-legacy"]; + delete: operations["teams/remove-membership-for-user-legacy"]; + }; + "/teams/{team_id}/projects": { + get: operations["teams/list-projects-legacy"]; + }; + "/teams/{team_id}/projects/{project_id}": { + get: operations["teams/check-permissions-for-project-legacy"]; + put: operations["teams/add-or-update-project-permissions-legacy"]; + delete: operations["teams/remove-project-legacy"]; + }; + "/teams/{team_id}/repos": { + get: operations["teams/list-repos-legacy"]; + }; + "/teams/{team_id}/repos/{owner}/{repo}": { + get: operations["teams/check-permissions-for-repo-legacy"]; + put: operations["teams/add-or-update-repo-permissions-legacy"]; + delete: operations["teams/remove-repo-legacy"]; + }; + "/teams/{team_id}/team-sync/group-mappings": { + get: operations["teams/list-idp-groups-for-legacy"]; + patch: operations["teams/create-or-update-idp-group-connections-legacy"]; + }; + "/teams/{team_id}/teams": { + get: operations["teams/list-child-legacy"]; + }; + "/user": { + get: operations["users/get-authenticated"]; + patch: operations["users/update-authenticated"]; + }; + "/user/blocks": { + get: operations["users/list-blocked-by-authenticated"]; + }; + "/user/blocks/{username}": { + get: operations["users/check-blocked"]; + put: operations["users/block"]; + delete: operations["users/unblock"]; + }; + "/user/email/visibility": { + patch: operations["users/set-primary-email-visibility-for-authenticated"]; + }; + "/user/emails": { + get: operations["users/list-emails-for-authenticated"]; + post: operations["users/add-email-for-authenticated"]; + delete: operations["users/delete-email-for-authenticated"]; + }; + "/user/followers": { + get: operations["users/list-followers-for-authenticated-user"]; + }; + "/user/following": { + get: operations["users/list-followed-by-authenticated"]; + }; + "/user/following/{username}": { + get: operations["users/check-person-is-followed-by-authenticated"]; + put: operations["users/follow"]; + delete: operations["users/unfollow"]; + }; + "/user/gpg_keys": { + get: operations["users/list-gpg-keys-for-authenticated"]; + post: operations["users/create-gpg-key-for-authenticated"]; + }; + "/user/gpg_keys/{gpg_key_id}": { + get: operations["users/get-gpg-key-for-authenticated"]; + delete: operations["users/delete-gpg-key-for-authenticated"]; + }; + "/user/installations": { + get: operations["apps/list-installations-for-authenticated-user"]; + }; + "/user/installations/{installation_id}/repositories": { + get: operations["apps/list-installation-repos-for-authenticated-user"]; + }; + "/user/installations/{installation_id}/repositories/{repository_id}": { + put: operations["apps/add-repo-to-installation"]; + delete: operations["apps/remove-repo-from-installation"]; + }; + "/user/interaction-limits": { + get: operations["interactions/get-restrictions-for-your-public-repos"]; + put: operations["interactions/set-restrictions-for-your-public-repos"]; + delete: operations["interactions/remove-restrictions-for-your-public-repos"]; + }; + "/user/issues": { + get: operations["issues/list-for-authenticated-user"]; + }; + "/user/keys": { + get: operations["users/list-public-ssh-keys-for-authenticated"]; + post: operations["users/create-public-ssh-key-for-authenticated"]; + }; + "/user/keys/{key_id}": { + get: operations["users/get-public-ssh-key-for-authenticated"]; + delete: operations["users/delete-public-ssh-key-for-authenticated"]; + }; + "/user/marketplace_purchases": { + get: operations["apps/list-subscriptions-for-authenticated-user"]; + }; + "/user/marketplace_purchases/stubbed": { + get: operations["apps/list-subscriptions-for-authenticated-user-stubbed"]; + }; + "/user/memberships/orgs": { + get: operations["orgs/list-memberships-for-authenticated-user"]; + }; + "/user/memberships/orgs/{org}": { + get: operations["orgs/get-membership-for-authenticated-user"]; + patch: operations["orgs/update-membership-for-authenticated-user"]; + }; + "/user/migrations": { + get: operations["migrations/list-for-authenticated-user"]; + post: operations["migrations/start-for-authenticated-user"]; + }; + "/user/migrations/{migration_id}": { + get: operations["migrations/get-status-for-authenticated-user"]; + }; + "/user/migrations/{migration_id}/archive": { + get: operations["migrations/get-archive-for-authenticated-user"]; + delete: operations["migrations/delete-archive-for-authenticated-user"]; + }; + "/user/migrations/{migration_id}/repos/{repo_name}/lock": { + delete: operations["migrations/unlock-repo-for-authenticated-user"]; + }; + "/user/migrations/{migration_id}/repositories": { + get: operations["migrations/list-repos-for-user"]; + }; + "/user/orgs": { + get: operations["orgs/list-for-authenticated-user"]; + }; + "/user/projects": { + post: operations["projects/create-for-authenticated-user"]; + }; + "/user/public_emails": { + get: operations["users/list-public-emails-for-authenticated"]; + }; + "/user/repos": { + get: operations["repos/list-for-authenticated-user"]; + post: operations["repos/create-for-authenticated-user"]; + }; + "/user/repository_invitations": { + get: operations["repos/list-invitations-for-authenticated-user"]; + }; + "/user/repository_invitations/{invitation_id}": { + patch: operations["repos/accept-invitation"]; + delete: operations["repos/decline-invitation"]; + }; + "/user/starred": { + get: operations["activity/list-repos-starred-by-authenticated-user"]; + }; + "/user/starred/{owner}/{repo}": { + get: operations["activity/check-repo-is-starred-by-authenticated-user"]; + put: operations["activity/star-repo-for-authenticated-user"]; + delete: operations["activity/unstar-repo-for-authenticated-user"]; + }; + "/user/subscriptions": { + get: operations["activity/list-watched-repos-for-authenticated-user"]; + }; + "/user/teams": { + get: operations["teams/list-for-authenticated-user"]; + }; + "/users": { + get: operations["users/list"]; + }; + "/users/{username}": { + get: operations["users/get-by-username"]; + }; + "/users/{username}/events": { + get: operations["activity/list-events-for-authenticated-user"]; + }; + "/users/{username}/events/orgs/{org}": { + get: operations["activity/list-org-events-for-authenticated-user"]; + }; + "/users/{username}/events/public": { + get: operations["activity/list-public-events-for-user"]; + }; + "/users/{username}/followers": { + get: operations["users/list-followers-for-user"]; + }; + "/users/{username}/following": { + get: operations["users/list-following-for-user"]; + }; + "/users/{username}/following/{target_user}": { + get: operations["users/check-following-for-user"]; + }; + "/users/{username}/gists": { + get: operations["gists/list-for-user"]; + }; + "/users/{username}/gpg_keys": { + get: operations["users/list-gpg-keys-for-user"]; + }; + "/users/{username}/hovercard": { + get: operations["users/get-context-for-user"]; + }; + "/users/{username}/installation": { + get: operations["apps/get-user-installation"]; + }; + "/users/{username}/keys": { + get: operations["users/list-public-keys-for-user"]; + }; + "/users/{username}/orgs": { + get: operations["orgs/list-for-user"]; + }; + "/users/{username}/projects": { + get: operations["projects/list-for-user"]; + }; + "/users/{username}/received_events": { + get: operations["activity/list-received-events-for-user"]; + }; + "/users/{username}/received_events/public": { + get: operations["activity/list-received-public-events-for-user"]; + }; + "/users/{username}/repos": { + get: operations["repos/list-for-user"]; + }; + "/users/{username}/settings/billing/actions": { + get: operations["billing/get-github-actions-billing-user"]; + }; + "/users/{username}/settings/billing/packages": { + get: operations["billing/get-github-packages-billing-user"]; + }; + "/users/{username}/settings/billing/shared-storage": { + get: operations["billing/get-shared-storage-billing-user"]; + }; + "/users/{username}/starred": { + get: operations["activity/list-repos-starred-by-user"]; + }; + "/users/{username}/subscriptions": { + get: operations["activity/list-repos-watched-by-user"]; + }; + "/zen": { + get: operations["meta/get-zen"]; + }; +} + +export interface operations { + /** + * Get Hypermedia links to resources accessible in GitHub's REST API + */ + "meta/root": { + responses: { + /** + * response + */ + "200": { + "application/json": { + current_user_url: string; + current_user_authorizations_html_url: string; + authorizations_url: string; + code_search_url: string; + commit_search_url: string; + emails_url: string; + emojis_url: string; + events_url: string; + feeds_url: string; + followers_url: string; + following_url: string; + gists_url: string; + hub_url: string; + issue_search_url: string; + issues_url: string; + keys_url: string; + label_search_url: string; + notifications_url: string; + organization_url: string; + organization_repositories_url: string; + organization_teams_url: string; + public_gists_url: string; + rate_limit_url: string; + repository_url: string; + repository_search_url: string; + current_user_repositories_url: string; + starred_url: string; + starred_gists_url: string; + topic_search_url?: string; + user_url: string; + user_organizations_url: string; + user_repositories_url: string; + user_search_url: string; + }; + }; + }; + }; + /** + * Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the `installations_count` in the response. For more details about your app's installations, see the "[List installations for the authenticated app](https://docs.github.com/rest/reference/apps#list-installations-for-the-authenticated-app)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-authenticated": { + parameters: {}; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["integration"]; + }; + }; + }; + /** + * Use this endpoint to complete the handshake necessary when implementing the [GitHub App Manifest flow](https://docs.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/). When you create a GitHub App with the manifest flow, you receive a temporary `code` used to retrieve the GitHub App's `id`, `pem` (private key), and `webhook_secret`. + */ + "apps/create-from-manifest": { + parameters: { + path: { + code: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["integration"] & + ({ + client_id: string; + client_secret: string; + webhook_secret: string; + pem: string; + } & { [key: string]: any }); + }; + "404": unknown; + "422": unknown; + }; + }; + /** + * Returns the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-webhook-config-for-app": { + responses: { + /** + * Default response + */ + "200": { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + /** + * Updates the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/update-webhook-config-for-app": { + requestBody: { + "application/json": { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + }; + responses: { + /** + * Default response + */ + "200": { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + /** + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + * + * The permissions the installation has are included under the `permissions` key. + */ + "apps/list-installations": { + parameters: { + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + since?: components["parameters"]["since"]; + outdated?: string; + }; + }; + responses: { + /** + * The permissions the installation has are included under the `permissions` key. + */ + "200": { + "application/json": components["schemas"]["installation"][]; + }; + }; + }; + /** + * Enables an authenticated GitHub App to find an installation's information using the installation id. The installation's account type (`target_type`) will be either an organization or a user account, depending which account the repository belongs to. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-installation": { + parameters: { + path: { + installation_id: components["parameters"]["installation_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["installation"]; + }; + "404": unknown; + "415": unknown; + }; + }; + /** + * Uninstalls a GitHub App on a user, organization, or business account. If you prefer to temporarily suspend an app's access to your account's resources, then we recommend the "[Suspend an app installation](https://docs.github.com/v3/apps/#suspend-an-app-installation)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/delete-installation": { + parameters: { + path: { + installation_id: components["parameters"]["installation_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "404": unknown; + }; + }; + /** + * Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of `401 - Unauthorized`, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access. To restrict the access to specific repositories, you can provide the `repository_ids` when creating the token. When you omit `repository_ids`, the response does not contain the `repositories` key. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/create-installation-access-token": { + parameters: { + path: { + installation_id: components["parameters"]["installation_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * List of repository names that the token should have access to + */ + repositories?: string[]; + /** + * List of repository IDs that the token should have access to + */ + repository_ids?: number[]; + permissions?: { + contents?: string; + issues?: string; + deployments?: string; + single_file?: string; + def_not_a_repo?: string; + }; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["installation-token"]; + }; + "401": unknown; + "403": unknown; + "404": unknown; + "415": unknown; + "422": unknown; + }; + }; + /** + * **Note:** Suspending a GitHub App installation is currently in beta and subject to change. Before you can suspend a GitHub App, the app owner must enable suspending installations for the app by opting-in to the beta. For more information, see "[Suspending a GitHub App installation](https://docs.github.com/apps/managing-github-apps/suspending-a-github-app-installation/)." + * + * Suspends a GitHub App on a user, organization, or business account, which blocks the app from accessing the account's resources. When a GitHub App is suspended, the app's access to the GitHub API or webhook events is blocked for that account. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/suspend-installation": { + parameters: { + path: { + installation_id: components["parameters"]["installation_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "404": unknown; + }; + }; + /** + * **Note:** Suspending a GitHub App installation is currently in beta and subject to change. Before you can suspend a GitHub App, the app owner must enable suspending installations for the app by opting-in to the beta. For more information, see "[Suspending a GitHub App installation](https://docs.github.com/apps/managing-github-apps/suspending-a-github-app-installation/)." + * + * Removes a GitHub App installation suspension. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/unsuspend-installation": { + parameters: { + path: { + installation_id: components["parameters"]["installation_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "404": unknown; + }; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + * + * You can use this API to list the set of OAuth applications that have been granted access to your account. Unlike the [list your authorizations](https://docs.github.com/rest/reference/oauth-authorizations#list-your-authorizations) API, this API does not manage individual tokens. This API will return one entry for each OAuth application that has been granted access to your account, regardless of the number of tokens an application has generated for your user. The list of OAuth applications returned matches what is shown on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). The `scopes` returned are the union of scopes authorized for the application. For example, if an application has one token with `repo` scope and another token with `user` scope, the grant will return `["repo", "user"]`. + */ + "oauth-authorizations/list-grants": { + parameters: { + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["application-grant"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + }; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + */ + "oauth-authorizations/get-grant": { + parameters: { + path: { + grant_id: components["parameters"]["grant_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["application-grant"]; + }; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + * + * Deleting an OAuth application's grant will also delete all OAuth tokens associated with the application for your user. Once deleted, the application has no access to your account and is no longer listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). + */ + "oauth-authorizations/delete-grant": { + parameters: { + path: { + grant_id: components["parameters"]["grant_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + /** + * OAuth application owners can revoke a grant for their OAuth application and a specific user. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid OAuth `access_token` as an input parameter and the grant for the token's owner will be deleted. + * Deleting an OAuth application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). + */ + "apps/delete-authorization": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The OAuth access token used to authenticate to the GitHub API. + */ + access_token?: string; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "422": unknown; + }; + }; + /** + * **Deprecation Notice:** GitHub will discontinue OAuth endpoints that contain `access_token` in the path parameter. We have introduced new endpoints that allow you to securely manage tokens for OAuth Apps by moving `access_token` to the request body. For more information, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/). + * + * OAuth application owners can revoke a grant for their OAuth application and a specific user. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid token as `:access_token` and the grant for the token's owner will be deleted. + * + * Deleting an OAuth application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the Applications settings page under "Authorized OAuth Apps" on GitHub](https://github.com/settings/applications#authorized). + */ + "apps/revoke-grant-for-application": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + access_token: components["parameters"]["access-token"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * OAuth applications can use a special API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to use this endpoint, where the username is the OAuth application `client_id` and the password is its `client_secret`. Invalid tokens will return `404 NOT FOUND`. + */ + "apps/check-token": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The access_token of the OAuth application. + */ + access_token: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["authorization"]; + }; + "404": unknown; + "422": unknown; + }; + }; + /** + * OAuth applications can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. + */ + "apps/reset-token": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The access_token of the OAuth application. + */ + access_token: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["authorization"]; + }; + "422": unknown; + }; + }; + /** + * OAuth application owners can revoke a single token for an OAuth application. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. + */ + "apps/delete-token": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The OAuth access token used to authenticate to the GitHub API. + */ + access_token?: string; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "422": unknown; + }; + }; + /** + * **Deprecation Notice:** GitHub will discontinue OAuth endpoints that contain `access_token` in the path parameter. We have introduced new endpoints that allow you to securely manage tokens for OAuth Apps by moving `access_token` to the request body. For more information, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/). + * + * OAuth applications can use a special API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. + */ + "apps/check-authorization": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + access_token: components["parameters"]["access-token"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["authorization"]; + }; + "404": unknown; + }; + }; + /** + * **Deprecation Notice:** GitHub will discontinue OAuth endpoints that contain `access_token` in the path parameter. We have introduced new endpoints that allow you to securely manage tokens for OAuth Apps by moving `access_token` to the request body. For more information, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/). + * + * OAuth applications can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. + */ + "apps/reset-authorization": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + access_token: components["parameters"]["access-token"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["authorization"]; + }; + }; + }; + /** + * **Deprecation Notice:** GitHub will discontinue OAuth endpoints that contain `access_token` in the path parameter. We have introduced new endpoints that allow you to securely manage tokens for OAuth Apps by moving `access_token` to the request body. For more information, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-app-endpoint/). + * + * OAuth application owners can revoke a single token for an OAuth application. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. + */ + "apps/revoke-authorization-for-application": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + access_token: components["parameters"]["access-token"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * **Note**: The `:app_slug` is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., `https://github.com/settings/apps/:app_slug`). + * + * If the GitHub App you specify is public, you can access this endpoint without authenticating. If the GitHub App you specify is private, you must authenticate with a [personal access token](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) or an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + */ + "apps/get-by-slug": { + parameters: { + path: { + app_slug: components["parameters"]["app_slug"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["integration"]; + }; + "403": unknown; + "404": unknown; + "415": unknown; + }; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + */ + "oauth-authorizations/list-authorizations": { + parameters: { + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["authorization"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + }; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + * + * **Warning:** Apps must use the [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * Creates OAuth tokens using [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication). If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "[Working with two-factor authentication](https://docs.github.com/rest/overview/other-authentication-methods#working-with-two-factor-authentication)." + * + * To create tokens for a particular OAuth application using this endpoint, you must authenticate as the user you want to create an authorization for and provide the app's client ID and secret, found on your OAuth application's settings page. If your OAuth application intends to create multiple tokens for one user, use `fingerprint` to differentiate between them. + * + * You can also create tokens on GitHub from the [personal access tokens settings](https://github.com/settings/tokens) page. Read more about these tokens in [the GitHub Help documentation](https://help.github.com/articles/creating-an-access-token-for-command-line-use). + * + * Organizations that enforce SAML SSO require personal access tokens to be allowed. Read more about allowing tokens in [the GitHub Help documentation](https://help.github.com/articles/about-identity-and-access-management-with-saml-single-sign-on). + */ + "oauth-authorizations/create-authorization": { + parameters: {}; + requestBody: { + "application/json": { + /** + * A list of scopes that this authorization is in. + */ + scopes?: string[] | null; + /** + * A note to remind you what the OAuth token is for. + */ + note?: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; + /** + * The OAuth app client key for which to create the token. + */ + client_id?: string; + /** + * The OAuth app client secret for which to create the token. + */ + client_secret?: string; + /** + * A unique string to distinguish an authorization from others created for the same client ID and user. + */ + fingerprint?: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["authorization"]; + }; + "304": never; + "401": unknown; + "403": unknown; + "410": unknown; + "422": unknown; + }; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + * + * **Warning:** Apps must use the [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * Creates a new authorization for the specified OAuth application, only if an authorization for that application doesn't already exist for the user. The URL includes the 20 character client ID for the OAuth app that is requesting the token. It returns the user's existing authorization for the application if one is present. Otherwise, it creates and returns a new one. + * + * If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "[Working with two-factor authentication](https://docs.github.com/rest/overview/other-authentication-methods#working-with-two-factor-authentication)." + * + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + */ + "oauth-authorizations/get-or-create-authorization-for-app": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The OAuth app client secret for which to create the token. + */ + client_secret: string; + /** + * A list of scopes that this authorization is in. + */ + scopes?: string[] | null; + /** + * A note to remind you what the OAuth token is for. + */ + note?: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; + /** + * A unique string to distinguish an authorization from others created for the same client ID and user. + */ + fingerprint?: string; + }; + }; + responses: { + /** + * Response if returning an existing token + */ + "200": { + "application/json": components["schemas"]["authorization"]; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + */ + "201": { + "application/json": components["schemas"]["authorization"]; + }; + "304": never; + "401": unknown; + "403": unknown; + "422": unknown; + }; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + * + * **Warning:** Apps must use the [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * This method will create a new authorization for the specified OAuth application, only if an authorization for that application and fingerprint do not already exist for the user. The URL includes the 20 character client ID for the OAuth app that is requesting the token. `fingerprint` is a unique string to distinguish an authorization from others created for the same client ID and user. It returns the user's existing authorization for the application if one is present. Otherwise, it creates and returns a new one. + * + * If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "[Working with two-factor authentication](https://docs.github.com/rest/overview/other-authentication-methods#working-with-two-factor-authentication)." + */ + "oauth-authorizations/get-or-create-authorization-for-app-and-fingerprint": { + parameters: { + path: { + client_id: components["parameters"]["client-id"]; + fingerprint: string; + }; + }; + requestBody: { + "application/json": { + /** + * The OAuth app client secret for which to create the token. + */ + client_secret: string; + /** + * A list of scopes that this authorization is in. + */ + scopes?: string[] | null; + /** + * A note to remind you what the OAuth token is for. + */ + note?: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; + }; + }; + responses: { + /** + * Response if returning an existing token + */ + "200": { + "application/json": components["schemas"]["authorization"]; + }; + /** + * Response if returning a new token + */ + "201": { + "application/json": components["schemas"]["authorization"]; + }; + "422": unknown; + }; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + */ + "oauth-authorizations/get-authorization": { + parameters: { + path: { + authorization_id: components["parameters"]["authorization_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["authorization"]; + }; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/developers/apps/authorizing-oauth-apps#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + * + * If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "[Working with two-factor authentication](https://docs.github.com/rest/overview/other-authentication-methods#working-with-two-factor-authentication)." + * + * You can only send one of these scope keys at a time. + */ + "oauth-authorizations/update-authorization": { + parameters: { + path: { + authorization_id: components["parameters"]["authorization_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * A list of scopes that this authorization is in. + */ + scopes?: string[] | null; + /** + * A list of scopes to add to this authorization. + */ + add_scopes?: string[]; + /** + * A list of scopes to remove from this authorization. + */ + remove_scopes?: string[]; + /** + * A note to remind you what the OAuth token is for. + */ + note?: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; + /** + * A unique string to distinguish an authorization from others created for the same client ID and user. + */ + fingerprint?: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["authorization"]; + }; + "422": unknown; + }; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). The [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations) will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the [blog post](https://developer.github.com/changes/2020-02-14-deprecating-oauth-auth-endpoint/). + */ + "oauth-authorizations/delete-authorization": { + parameters: { + path: { + authorization_id: components["parameters"]["authorization_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + "codes-of-conduct/get-all-codes-of-conduct": { + parameters: {}; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["code-of-conduct"][]; + }; + "304": never; + "415": unknown; + }; + }; + "codes-of-conduct/get-conduct-code": { + parameters: { + path: { + key: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["code-of-conduct"]; + }; + "304": never; + "404": unknown; + "415": unknown; + }; + }; + /** + * Creates an attachment under a content reference URL in the body or comment of an issue or pull request. Use the `id` of the content reference from the [`content_reference` event](https://docs.github.com/webhooks/event-payloads/#content_reference) to create an attachment. + * + * The app must create a content attachment within six hours of the content reference URL being posted. See "[Using content attachments](https://docs.github.com/apps/using-content-attachments/)" for details about content attachments. + * + * You must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + */ + "apps/create-content-attachment": { + parameters: { + path: { + content_reference_id: number; + }; + }; + requestBody: { + "application/json": { + /** + * The title of the attachment + */ + title: string; + /** + * The body of the attachment + */ + body: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["content-reference-attachment"]; + }; + "304": never; + "403": unknown; + "404": unknown; + "410": unknown; + "415": unknown; + "422": unknown; + }; + }; + /** + * Lists all the emojis available to use on GitHub. + */ + "emojis/get": { + parameters: {}; + responses: { + /** + * response + */ + "200": { + "application/json": { [key: string]: string }; + }; + "304": never; + }; + }; + /** + * Gets the GitHub Actions permissions policy for organizations and allowed actions in an enterprise. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/get-github-actions-permissions-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["actions-enterprise-permissions"]; + }; + }; + }; + /** + * Sets the GitHub Actions permissions policy for organizations and allowed actions in an enterprise. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/set-github-actions-permissions-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + }; + }; + requestBody: { + "application/json": { + enabled_organizations: components["schemas"]["enabled-organizations"]; + allowed_actions?: components["schemas"]["allowed-actions"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Lists the organizations that are selected to have GitHub Actions enabled in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/list-selected-organizations-enabled-github-actions-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + organizations?: components["schemas"]["organization-simple"][]; + }; + }; + }; + }; + /** + * Replaces the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/set-selected-organizations-enabled-github-actions-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + }; + }; + requestBody: { + "application/json": { + /** + * List of organization IDs to enable for GitHub Actions. + */ + selected_organization_ids: number[]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Adds an organization to the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/enable-selected-organization-github-actions-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + org_id: components["parameters"]["org_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Removes an organization from the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/disable-selected-organization-github-actions-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + org_id: components["parameters"]["org_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Gets the selected actions that are allowed in an enterprise. To use this endpoint, the enterprise permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/get-allowed-actions-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["selected-actions"]; + }; + }; + }; + /** + * Sets the actions that are allowed in an enterprise. To use this endpoint, the enterprise permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/set-allowed-actions-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + }; + }; + requestBody: { + "application/json": components["schemas"]["selected-actions"]; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Lists all self-hosted runner groups for an enterprise. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/list-self-hosted-runner-groups-for-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + runner_groups?: components["schemas"]["runner-groups-enterprise"][]; + }; + }; + }; + }; + /** + * Creates a new self-hosted runner group for an enterprise. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/create-self-hosted-runner-group-for-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + }; + }; + requestBody: { + "application/json": { + /** + * Name of the runner group. + */ + name: string; + /** + * Visibility of a runner group. You can select all organizations or select individual organization. Can be one of: `all` or `selected` + */ + visibility?: "selected" | "all"; + /** + * List of organization IDs that can access the runner group. + */ + selected_organization_ids?: number[]; + /** + * List of runner IDs to add to the runner group. + */ + runners?: number[]; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["runner-groups-enterprise"]; + }; + }; + }; + /** + * Gets a specific self-hosted runner group for an enterprise. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/get-self-hosted-runner-group-for-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + runner_group_id: components["parameters"]["runner_group_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["runner-groups-enterprise"]; + }; + }; + }; + /** + * Updates the `name` and `visibility` of a self-hosted runner group in an enterprise. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/update-self-hosted-runner-group-for-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + runner_group_id: components["parameters"]["runner_group_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * Name of the runner group. + */ + name?: string; + /** + * Visibility of a runner group. You can select all organizations or select individual organizations. Can be one of: `all` or `selected` + */ + visibility?: "selected" | "all"; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["runner-groups-enterprise"]; + }; + }; + }; + /** + * Deletes a self-hosted runner group for an enterprise. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/delete-self-hosted-runner-group-from-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + runner_group_id: components["parameters"]["runner_group_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Lists the organizations with access to a self-hosted runner group. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/list-org-access-to-self-hosted-runner-group-in-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + runner_group_id: components["parameters"]["runner_group_id"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + organizations?: components["schemas"]["organization-simple"][]; + }; + }; + }; + }; + /** + * Replaces the list of organizations that have access to a self-hosted runner configured in an enterprise. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/set-org-access-to-self-hosted-runner-group-in-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + runner_group_id: components["parameters"]["runner_group_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * List of organization IDs that can access the runner group. + */ + selected_organization_ids: number[]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Adds an organization to the list of selected organizations that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see "[Create a self-hosted runner group for an enterprise](#create-a-self-hosted-runner-group-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/add-org-access-to-self-hosted-runner-group-in-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + runner_group_id: components["parameters"]["runner_group_id"]; + org_id: components["parameters"]["org_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Removes an organization from the list of selected organizations that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see "[Create a self-hosted runner group for an enterprise](#create-a-self-hosted-runner-group-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/remove-org-access-to-self-hosted-runner-group-in-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + runner_group_id: components["parameters"]["runner_group_id"]; + org_id: components["parameters"]["org_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Lists the self-hosted runners that are in a specific enterprise group. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/list-self-hosted-runners-in-group-for-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + runner_group_id: components["parameters"]["runner_group_id"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + runners?: components["schemas"]["runner"][]; + }; + }; + }; + }; + /** + * Replaces the list of self-hosted runners that that are part of an enterprise runner group. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/set-self-hosted-runners-in-group-for-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + runner_group_id: components["parameters"]["runner_group_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * List of runner IDs to add to the runner group. + */ + runners: number[]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Adds a self-hosted runner to a runner group configured in an enterprise. + * + * You must authenticate using an access token with the `admin:enterprise` + * scope to use this endpoint. + */ + "enterprise-admin/add-self-hosted-runner-to-group-for-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + runner_group_id: components["parameters"]["runner_group_id"]; + runner_id: components["parameters"]["runner_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Removes a self-hosted runner from a group configured in an enterprise. The runner is then returned to the default group. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/remove-self-hosted-runner-from-group-for-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + runner_group_id: components["parameters"]["runner_group_id"]; + runner_id: components["parameters"]["runner_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Lists all self-hosted runners configured for an enterprise. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/list-self-hosted-runners-for-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + runners?: components["schemas"]["runner"][]; + }; + }; + }; + }; + /** + * Lists binaries for the runner application that you can download and run. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/list-runner-applications-for-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["runner-application"][]; + }; + }; + }; + /** + * Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + * + * #### Example using registration token + * + * Configure your self-hosted runner, replacing `TOKEN` with the registration token provided by this endpoint. + * + * ``` + * ./config.sh --url https://github.com/enterprises/octo-enterprise --token TOKEN + * ``` + */ + "enterprise-admin/create-registration-token-for-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + /** + * Returns a token that you can pass to the `config` script to remove a self-hosted runner from an enterprise. The token expires after one hour. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + * + * #### Example using remove token + * + * To remove your self-hosted runner from an enterprise, replace `TOKEN` with the remove token provided by this + * endpoint. + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + */ + "enterprise-admin/create-remove-token-for-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + /** + * Gets a specific self-hosted runner configured in an enterprise. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/get-self-hosted-runner-for-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + runner_id: components["parameters"]["runner_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["runner"]; + }; + }; + }; + /** + * Forces the removal of a self-hosted runner from an enterprise. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + "enterprise-admin/delete-self-hosted-runner-from-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + runner_id: components["parameters"]["runner_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * **Note:** The audit log REST API is currently in beta and is subject to change. To join the beta, talk to your services or sales contact at GitHub. + * + * Gets the audit log for an enterprise. To use this endpoint, you must be an enterprise admin, and you must use an access token with the `admin:enterprise` scope. + */ + "audit-log/get-audit-log": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + }; + query: { + phrase?: components["parameters"]["audit-log-phrase"]; + include?: components["parameters"]["audit-log-include"]; + after?: components["parameters"]["audit-log-after"]; + before?: components["parameters"]["audit-log-before"]; + per_page?: components["parameters"]["per_page"]; + }; + }; + responses: { + /** + * Response + */ + "200": { + "application/json": components["schemas"]["audit-log-event"][]; + }; + }; + }; + /** + * Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * The authenticated user must be an enterprise admin. + */ + "billing/get-github-actions-billing-ghe": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["actions-billing-usage"]; + }; + }; + }; + /** + * Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * The authenticated user must be an enterprise admin. + */ + "billing/get-github-packages-billing-ghe": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["packages-billing-usage"]; + }; + }; + }; + /** + * Gets the estimated paid and estimated total storage used for GitHub Actions and Github Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * The authenticated user must be an enterprise admin. + */ + "billing/get-shared-storage-billing-ghe": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["combined-billing-usage"]; + }; + }; + }; + /** + * We delay the public events feed by five minutes, which means the most recent event returned by the public events API actually occurred at least five minutes ago. + */ + "activity/list-public-events": { + parameters: { + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["event"][]; + }; + "304": never; + "403": unknown; + "503": unknown; + }; + }; + /** + * GitHub provides several timeline resources in [Atom](http://en.wikipedia.org/wiki/Atom_(standard)) format. The Feeds API lists all the feeds available to the authenticated user: + * + * * **Timeline**: The GitHub global public timeline + * * **User**: The public timeline for any user, using [URI template](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia) + * * **Current user public**: The public timeline for the authenticated user + * * **Current user**: The private timeline for the authenticated user + * * **Current user actor**: The private timeline for activity created by the authenticated user + * * **Current user organizations**: The private timeline for the organizations the authenticated user is a member of. + * * **Security advisories**: A collection of public announcements that provide information about security-related vulnerabilities in software on GitHub. + * + * **Note**: Private feeds are only returned when [authenticating via Basic Auth](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) since current feed URIs use the older, non revocable auth tokens. + */ + "activity/get-feeds": { + parameters: {}; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["feed"]; + }; + }; + }; + /** + * Lists the authenticated user's gists or if called anonymously, this endpoint returns all public gists: + */ + "gists/list": { + parameters: { + query: { + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["base-gist"][]; + }; + "304": never; + "403": unknown; + }; + }; + /** + * Allows you to add a new gist with one or more files. + * + * **Note:** Don't name your files "gistfile" with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally. + */ + "gists/create": { + parameters: {}; + requestBody: { + "application/json": { + /** + * Description of the gist + */ + description?: string; + /** + * Names and content for the files that make up the gist + */ + files: { + [key: string]: { + /** + * Content of the file + */ + content: string; + }; + }; + public?: boolean | ("true" | "false"); + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["gist-full"]; + }; + "304": never; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + /** + * List public gists sorted by most recently updated to least recently updated. + * + * Note: With [pagination](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination), you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page. + */ + "gists/list-public": { + parameters: { + query: { + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["base-gist"][]; + }; + "304": never; + "403": unknown; + "422": unknown; + }; + }; + /** + * List the authenticated user's starred gists: + */ + "gists/list-starred": { + parameters: { + query: { + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["base-gist"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + "gists/get": { + parameters: { + path: { + gist_id: components["parameters"]["gist_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["gist-full"]; + }; + "304": never; + "403": unknown; + "404": unknown; + }; + }; + /** + * Allows you to update or delete a gist file and rename gist files. Files from the previous version of the gist that aren't explicitly changed during an edit are unchanged. + */ + "gists/update": { + parameters: { + path: { + gist_id: components["parameters"]["gist_id"]; + }; + }; + requestBody: { + "application/json": Partial<{ [key: string]: any }> & + Partial<{ [key: string]: any }>; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["gist-full"]; + }; + "404": unknown; + "422": unknown; + }; + }; + "gists/delete": { + parameters: { + path: { + gist_id: components["parameters"]["gist_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "403": unknown; + "404": unknown; + }; + }; + "gists/list-comments": { + parameters: { + path: { + gist_id: components["parameters"]["gist_id"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["gist-comment"][]; + }; + "304": never; + "403": unknown; + "404": unknown; + }; + }; + "gists/create-comment": { + parameters: { + path: { + gist_id: components["parameters"]["gist_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The comment text. + */ + body: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["gist-comment"]; + }; + "304": never; + "403": unknown; + "404": unknown; + }; + }; + "gists/get-comment": { + parameters: { + path: { + gist_id: components["parameters"]["gist_id"]; + comment_id: components["parameters"]["comment_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["gist-comment"]; + }; + "304": never; + "403": unknown; + "404": unknown; + }; + }; + "gists/update-comment": { + parameters: { + path: { + gist_id: components["parameters"]["gist_id"]; + comment_id: components["parameters"]["comment_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The comment text. + */ + body: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["gist-comment"]; + }; + "404": unknown; + }; + }; + "gists/delete-comment": { + parameters: { + path: { + gist_id: components["parameters"]["gist_id"]; + comment_id: components["parameters"]["comment_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "403": unknown; + "404": unknown; + }; + }; + "gists/list-commits": { + parameters: { + path: { + gist_id: components["parameters"]["gist_id"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["gist-commit"][]; + }; + "304": never; + "403": unknown; + "404": unknown; + }; + }; + "gists/list-forks": { + parameters: { + path: { + gist_id: components["parameters"]["gist_id"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["gist-full"][]; + }; + "304": never; + "403": unknown; + "404": unknown; + }; + }; + /** + * **Note**: This was previously `/gists/:gist_id/fork`. + */ + "gists/fork": { + parameters: { + path: { + gist_id: components["parameters"]["gist_id"]; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["base-gist"]; + }; + "304": never; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + "gists/check-is-starred": { + parameters: { + path: { + gist_id: components["parameters"]["gist_id"]; + }; + }; + responses: { + /** + * Response if gist is starred + */ + "204": never; + "304": never; + "403": unknown; + /** + * Response if gist is not starred + */ + "404": { + "application/json": { [key: string]: any }; + }; + }; + }; + /** + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + "gists/star": { + parameters: { + path: { + gist_id: components["parameters"]["gist_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "403": unknown; + "404": unknown; + }; + }; + "gists/unstar": { + parameters: { + path: { + gist_id: components["parameters"]["gist_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "403": unknown; + "404": unknown; + }; + }; + "gists/get-revision": { + parameters: { + path: { + gist_id: components["parameters"]["gist_id"]; + sha: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["gist-full"]; + }; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + /** + * List all templates available to pass as an option when [creating a repository](https://docs.github.com/rest/reference/repos#create-a-repository-for-the-authenticated-user). + */ + "gitignore/get-all-templates": { + parameters: {}; + responses: { + /** + * response + */ + "200": { + "application/json": string[]; + }; + "304": never; + }; + }; + /** + * The API also allows fetching the source of a single template. + * Use the raw [media type](https://docs.github.com/rest/overview/media-types/) to get the raw contents. + */ + "gitignore/get-template": { + parameters: { + path: { + name: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["gitignore-template"]; + }; + "304": never; + }; + }; + /** + * List repositories that an app installation can access. + * + * You must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + */ + "apps/list-repos-accessible-to-installation": { + parameters: { + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + repositories?: components["schemas"]["repository"][]; + repository_selection?: string; + }; + }; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + /** + * Revokes the installation token you're using to authenticate as an installation and access this endpoint. + * + * Once an installation token is revoked, the token is invalidated and cannot be used. Other endpoints that require the revoked installation token must have a new installation token to work. You can create a new token using the "[Create an installation access token for an app](https://docs.github.com/rest/reference/apps#create-an-installation-access-token-for-an-app)" endpoint. + * + * You must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + */ + "apps/revoke-installation-access-token": { + parameters: {}; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * List issues assigned to the authenticated user across all visible repositories including owned repositories, member + * repositories, and organization repositories. You can use the `filter` query parameter to fetch issues that are not + * necessarily assigned to you. + * + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + "issues/list": { + parameters: { + query: { + /** + * Indicates which sorts of issues to return. Can be one of: + * \* `assigned`: Issues assigned to you + * \* `created`: Issues created by you + * \* `mentioned`: Issues mentioning you + * \* `subscribed`: Issues you're subscribed to updates for + * \* `all`: All issues the authenticated user can see, regardless of participation or creation + */ + filter?: "assigned" | "created" | "mentioned" | "subscribed" | "all"; + /** + * Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + labels?: components["parameters"]["labels"]; + /** + * What to sort results by. Can be either `created`, `updated`, `comments`. + */ + sort?: "created" | "updated" | "comments"; + direction?: components["parameters"]["direction"]; + since?: components["parameters"]["since"]; + collab?: boolean; + orgs?: boolean; + owned?: boolean; + pulls?: boolean; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["issue"][]; + }; + "304": never; + "404": unknown; + "422": unknown; + }; + }; + "licenses/get-all-commonly-used": { + parameters: { + query: { + featured?: boolean; + per_page?: components["parameters"]["per_page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["license-simple"][]; + }; + "304": never; + }; + }; + "licenses/get": { + parameters: { + path: { + license: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["license"]; + }; + "304": never; + "403": unknown; + "404": unknown; + }; + }; + "markdown/render": { + parameters: {}; + requestBody: { + "application/json": { + /** + * The Markdown text to render in HTML. + */ + text: string; + /** + * The rendering mode. + */ + mode?: "markdown" | "gfm"; + /** + * The repository context to use when creating references in `gfm` mode. + */ + context?: string; + }; + }; + responses: { + /** + * response + */ + "200": unknown; + "304": never; + }; + }; + /** + * You must send Markdown as plain text (using a `Content-Type` header of `text/plain` or `text/x-markdown`) to this endpoint, rather than using JSON format. In raw mode, [GitHub Flavored Markdown](https://github.github.com/gfm/) is not supported and Markdown will be rendered in plain format like a README.md file. Markdown content must be 400 KB or less. + */ + "markdown/render-raw": { + parameters: {}; + requestBody: { + "text/plain": string; + "text/x-markdown": string; + }; + responses: { + /** + * response + */ + "200": { + "text/html": string; + }; + "304": never; + }; + }; + /** + * Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/get-subscription-plan-for-account": { + parameters: { + path: { + account_id: components["parameters"]["account_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["marketplace-purchase"]; + }; + "401": unknown; + /** + * Response when the account has not purchased the listing + */ + "404": { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + /** + * Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/list-plans": { + parameters: { + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["marketplace-listing-plan"][]; + }; + "401": unknown; + "404": unknown; + }; + }; + /** + * Returns user and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/list-accounts-for-plan": { + parameters: { + path: { + plan_id: components["parameters"]["plan_id"]; + }; + query: { + sort?: components["parameters"]["sort"]; + /** + * To return the oldest accounts first, set to `asc`. Can be one of `asc` or `desc`. Ignored without the `sort` parameter. + */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["marketplace-purchase"][]; + }; + "401": unknown; + "404": unknown; + "422": unknown; + }; + }; + /** + * Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/get-subscription-plan-for-account-stubbed": { + parameters: { + path: { + account_id: components["parameters"]["account_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["marketplace-purchase"]; + }; + "401": unknown; + /** + * Response when the account has not purchased the listing + */ + "404": unknown; + }; + }; + /** + * Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/list-plans-stubbed": { + parameters: { + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["marketplace-listing-plan"][]; + }; + "401": unknown; + }; + }; + /** + * Returns repository and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + "apps/list-accounts-for-plan-stubbed": { + parameters: { + path: { + plan_id: components["parameters"]["plan_id"]; + }; + query: { + sort?: components["parameters"]["sort"]; + /** + * To return the oldest accounts first, set to `asc`. Can be one of `asc` or `desc`. Ignored without the `sort` parameter. + */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["marketplace-purchase"][]; + }; + "401": unknown; + }; + }; + /** + * This endpoint provides a list of GitHub's IP addresses. For more information, see "[About GitHub's IP addresses](https://help.github.com/articles/about-github-s-ip-addresses/)." + */ + "meta/get": { + parameters: {}; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["api-overview"]; + }; + "304": never; + }; + }; + "activity/list-public-events-for-repo-network": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["event"][]; + }; + "301": never; + "304": never; + "403": unknown; + "404": unknown; + }; + }; + /** + * List all notifications for the current user, sorted by most recently updated. + */ + "activity/list-notifications-for-authenticated-user": { + parameters: { + query: { + all?: components["parameters"]["all"]; + participating?: components["parameters"]["participating"]; + since?: components["parameters"]["since"]; + before?: components["parameters"]["before"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["thread"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + "422": unknown; + }; + }; + /** + * Marks all notifications as "read" removes it from the [default view on GitHub](https://github.com/notifications). If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List notifications for the authenticated user](https://docs.github.com/rest/reference/activity#list-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + */ + "activity/mark-notifications-as-read": { + parameters: {}; + requestBody: { + "application/json": { + /** + * Describes the last point that notifications were checked. + */ + last_read_at?: string; + /** + * Whether the notification has been read. + */ + read?: boolean; + }; + }; + responses: { + /** + * response + */ + "202": { + "application/json": { message?: string }; + }; + /** + * response + */ + "205": unknown; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + "activity/get-thread": { + parameters: { + path: { + thread_id: components["parameters"]["thread_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["thread"]; + }; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + "activity/mark-thread-as-read": { + parameters: { + path: { + thread_id: components["parameters"]["thread_id"]; + }; + }; + responses: { + /** + * response + */ + "205": unknown; + "304": never; + "403": unknown; + }; + }; + /** + * This checks to see if the current user is subscribed to a thread. You can also [get a repository subscription](https://docs.github.com/rest/reference/activity#get-a-repository-subscription). + * + * Note that subscriptions are only generated if a user is participating in a conversation--for example, they've replied to the thread, were **@mentioned**, or manually subscribe to a thread. + */ + "activity/get-thread-subscription-for-authenticated-user": { + parameters: { + path: { + thread_id: components["parameters"]["thread_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["thread-subscription"]; + }; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + /** + * If you are watching a repository, you receive notifications for all threads by default. Use this endpoint to ignore future notifications for threads until you comment on the thread or get an **@mention**. + * + * You can also use this endpoint to subscribe to threads that you are currently not receiving notifications for or to subscribed to threads that you have previously ignored. + * + * Unsubscribing from a conversation in a repository that you are not watching is functionally equivalent to the [Delete a thread subscription](https://docs.github.com/rest/reference/activity#delete-a-thread-subscription) endpoint. + */ + "activity/set-thread-subscription": { + parameters: { + path: { + thread_id: components["parameters"]["thread_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * Whether to block all notifications from a thread. + */ + ignored?: boolean; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["thread-subscription"]; + }; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + /** + * Mutes all future notifications for a conversation until you comment on the thread or get an **@mention**. If you are watching the repository of the thread, you will still receive notifications. To ignore future notifications for a repository you are watching, use the [Set a thread subscription](https://docs.github.com/rest/reference/activity#set-a-thread-subscription) endpoint and set `ignore` to `true`. + */ + "activity/delete-thread-subscription": { + parameters: { + path: { + thread_id: components["parameters"]["thread_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + /** + * Get the octocat as ASCII art + */ + "meta/get-octocat": { + parameters: { + query: { + /** + * The words to show in Octocat's speech bubble + */ + s?: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/octocat-stream": string; + }; + }; + }; + /** + * Lists all organizations, in the order that they were created on GitHub. + * + * **Note:** Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of organizations. + */ + "orgs/list": { + parameters: { + query: { + since?: components["parameters"]["since-org"]; + per_page?: components["parameters"]["per_page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["organization-simple"][]; + }; + "304": never; + }; + }; + /** + * To see many of the organization response values, you need to be an authenticated organization owner with the `admin:org` scope. When the value of `two_factor_requirement_enabled` is `true`, the organization requires all members, billing managers, and outside collaborators to enable [two-factor authentication](https://help.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/). + * + * GitHub Apps with the `Organization plan` permission can use this endpoint to retrieve information about an organization's GitHub plan. See "[Authenticating with GitHub Apps](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/)" for details. For an example response, see 'Response with GitHub plan information' below." + */ + "orgs/get": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["organization-full"]; + }; + "404": unknown; + }; + }; + /** + * **Parameter Deprecation Notice:** GitHub will replace and discontinue `members_allowed_repository_creation_type` in favor of more granular permissions. The new input parameters are `members_can_create_public_repositories`, `members_can_create_private_repositories` for all organizations and `members_can_create_internal_repositories` for organizations associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes). + * + * Enables an authenticated organization owner with the `admin:org` scope to update the organization's profile and member privileges. + */ + "orgs/update": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + "application/json": { + /** + * Billing email address. This address is not publicized. + */ + billing_email?: string; + /** + * The company name. + */ + company?: string; + /** + * The publicly visible email address. + */ + email?: string; + /** + * The Twitter username of the company. + */ + twitter_username?: string; + /** + * The location. + */ + location?: string; + /** + * The shorthand name of the company. + */ + name?: string; + /** + * The description of the company. + */ + description?: string; + /** + * Toggles whether an organization can use organization projects. + */ + has_organization_projects?: boolean; + /** + * Toggles whether repositories that belong to the organization can use repository projects. + */ + has_repository_projects?: boolean; + /** + * Default permission level members have for organization repositories: + * \* `read` - can pull, but not push to or administer this repository. + * \* `write` - can pull and push, but not administer this repository. + * \* `admin` - can pull, push, and administer this repository. + * \* `none` - no permissions granted by default. + */ + default_repository_permission?: "read" | "write" | "admin" | "none"; + /** + * Toggles the ability of non-admin organization members to create repositories. Can be one of: + * \* `true` - all organization members can create repositories. + * \* `false` - only organization owners can create repositories. + * Default: `true` + * **Note:** A parameter can override this parameter. See `members_allowed_repository_creation_type` in this table for details. **Note:** A parameter can override this parameter. See `members_allowed_repository_creation_type` in this table for details. + */ + members_can_create_repositories?: boolean; + /** + * Toggles whether organization members can create internal repositories, which are visible to all enterprise members. You can only allow members to create internal repositories if your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. Can be one of: + * \* `true` - all organization members can create internal repositories. + * \* `false` - only organization owners can create internal repositories. + * Default: `true`. For more information, see "[Restricting repository creation in your organization](https://help.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" in the GitHub Help documentation. + */ + members_can_create_internal_repositories?: boolean; + /** + * Toggles whether organization members can create private repositories, which are visible to organization members with permission. Can be one of: + * \* `true` - all organization members can create private repositories. + * \* `false` - only organization owners can create private repositories. + * Default: `true`. For more information, see "[Restricting repository creation in your organization](https://help.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" in the GitHub Help documentation. + */ + members_can_create_private_repositories?: boolean; + /** + * Toggles whether organization members can create public repositories, which are visible to anyone. Can be one of: + * \* `true` - all organization members can create public repositories. + * \* `false` - only organization owners can create public repositories. + * Default: `true`. For more information, see "[Restricting repository creation in your organization](https://help.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" in the GitHub Help documentation. + */ + members_can_create_public_repositories?: boolean; + /** + * Specifies which types of repositories non-admin organization members can create. Can be one of: + * \* `all` - all organization members can create public and private repositories. + * \* `private` - members can create private repositories. This option is only available to repositories that are part of an organization on GitHub Enterprise Cloud. + * \* `none` - only admin members can create repositories. + * **Note:** This parameter is deprecated and will be removed in the future. Its return value ignores internal repositories. Using this parameter overrides values set in `members_can_create_repositories`. See the parameter deprecation notice in the operation description for details. + */ + members_allowed_repository_creation_type?: "all" | "private" | "none"; + /** + * Toggles whether organization members can create GitHub Pages sites. Can be one of: + * \* `true` - all organization members can create GitHub Pages sites. + * \* `false` - no organization members can create GitHub Pages sites. Existing published sites will not be impacted. + * Default: `true`. + */ + members_can_create_pages?: boolean; + blog?: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["organization-full"]; + }; + "409": unknown; + "415": unknown; + /** + * Validation Failed + */ + "422": { + "application/json": + | components["schemas"]["validation-error"] + | components["schemas"]["validation-error-simple"]; + }; + }; + }; + /** + * Gets the GitHub Actions permissions policy for repositories and allowed actions in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + "actions/get-github-actions-permissions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["actions-organization-permissions"]; + }; + }; + }; + /** + * Sets the GitHub Actions permissions policy for repositories and allowed actions in an organization. + * + * If the organization belongs to an enterprise that has set restrictive permissions at the enterprise level, such as `allowed_actions` to `selected` actions, then you cannot override them for the organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + "actions/set-github-actions-permissions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + "application/json": { + enabled_repositories: components["schemas"]["enabled-repositories"]; + allowed_actions?: components["schemas"]["allowed-actions"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Lists the selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + "actions/list-selected-repositories-enabled-github-actions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + repositories?: components["schemas"]["repository"][]; + }; + }; + }; + }; + /** + * Replaces the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + "actions/set-selected-repositories-enabled-github-actions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + "application/json": { + /** + * List of repository IDs to enable for GitHub Actions. + */ + selected_repository_ids: number[]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Adds a repository to the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + "actions/enable-selected-repository-github-actions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + repository_id: components["parameters"]["repository_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Removes a repository from the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + "actions/disable-selected-repository-github-actions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + repository_id: components["parameters"]["repository_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Gets the selected actions that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)."" + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + "actions/get-allowed-actions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["selected-actions"]; + }; + }; + }; + /** + * Sets the actions that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * If the organization belongs to an enterprise that has `selected` actions set at the enterprise level, then you cannot override any of the enterprise's allowed actions settings. + * + * To use the `patterns_allowed` setting for private repositories, the organization must belong to an enterprise. If the organization does not belong to an enterprise, then the `patterns_allowed` setting only applies to public repositories in the organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + "actions/set-allowed-actions-organization": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + "application/json": components["schemas"]["selected-actions"]; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Lists all self-hosted runner groups configured in an organization and inherited from an enterprise. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/list-self-hosted-runner-groups-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + runner_groups?: components["schemas"]["runner-groups-org"][]; + }; + }; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud and GitHub Enterprise Server. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Creates a new self-hosted runner group for an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/create-self-hosted-runner-group-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + "application/json": { + /** + * Name of the runner group. + */ + name: string; + /** + * Visibility of a runner group. You can select all repositories, select individual repositories, or limit access to private repositories. Can be one of: `all`, `selected`, or `private`. + */ + visibility?: "selected" | "all" | "private"; + /** + * List of repository IDs that can access the runner group. + */ + selected_repository_ids?: number[]; + /** + * List of runner IDs to add to the runner group. + */ + runners?: number[]; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["runner-groups-org"]; + }; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Gets a specific self-hosted runner group for an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/get-self-hosted-runner-group-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_group_id: components["parameters"]["runner_group_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["runner-groups-org"]; + }; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Updates the `name` and `visibility` of a self-hosted runner group in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/update-self-hosted-runner-group-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_group_id: components["parameters"]["runner_group_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * Name of the runner group. + */ + name?: string; + /** + * Visibility of a runner group. You can select all repositories, select individual repositories, or all private repositories. Can be one of: `all`, `selected`, or `private`. + */ + visibility?: "selected" | "all" | "private"; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["runner-groups-org"]; + }; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Deletes a self-hosted runner group for an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/delete-self-hosted-runner-group-from-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_group_id: components["parameters"]["runner_group_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud and GitHub Enterprise Server. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Lists the repositories with access to a self-hosted runner group configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/list-repo-access-to-self-hosted-runner-group-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_group_id: components["parameters"]["runner_group_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + repositories?: components["schemas"]["repository"][]; + }; + }; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Replaces the list of repositories that have access to a self-hosted runner group configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/set-repo-access-to-self-hosted-runner-group-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_group_id: components["parameters"]["runner_group_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * List of repository IDs that can access the runner group. + */ + selected_repository_ids: number[]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * + * Adds a repository to the list of selected repositories that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see "[Create a self-hosted runner group for an organization](#create-a-self-hosted-runner-group-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` + * scope to use this endpoint. + */ + "actions/add-repo-access-to-self-hosted-runner-group-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_group_id: components["parameters"]["runner_group_id"]; + repository_id: components["parameters"]["repository_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * + * Removes a repository from the list of selected repositories that can access a self-hosted runner group. The runner group must have `visibility` set to `selected`. For more information, see "[Create a self-hosted runner group for an organization](#create-a-self-hosted-runner-group-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/remove-repo-access-to-self-hosted-runner-group-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_group_id: components["parameters"]["runner_group_id"]; + repository_id: components["parameters"]["repository_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Lists self-hosted runners that are in a specific organization group. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/list-self-hosted-runners-in-group-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_group_id: components["parameters"]["runner_group_id"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + runners?: components["schemas"]["runner"][]; + }; + }; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * Replaces the list of self-hosted runners that are part of an organization runner group. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/set-self-hosted-runners-in-group-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_group_id: components["parameters"]["runner_group_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * List of runner IDs to add to the runner group. + */ + runners: number[]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * + * Adds a self-hosted runner to a runner group configured in an organization. + * + * You must authenticate using an access token with the `admin:org` + * scope to use this endpoint. + */ + "actions/add-self-hosted-runner-to-group-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_group_id: components["parameters"]["runner_group_id"]; + runner_id: components["parameters"]["runner_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see "[GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products)." + * + * + * Removes a self-hosted runner from a group configured in an organization. The runner is then returned to the default group. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/remove-self-hosted-runner-from-group-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_group_id: components["parameters"]["runner_group_id"]; + runner_id: components["parameters"]["runner_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Lists all self-hosted runners configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/list-self-hosted-runners-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + runners?: components["schemas"]["runner"][]; + }; + }; + }; + }; + /** + * Lists binaries for the runner application that you can download and run. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/list-runner-applications-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["runner-application"][]; + }; + }; + }; + /** + * Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * + * #### Example using registration token + * + * Configure your self-hosted runner, replacing `TOKEN` with the registration token provided by this endpoint. + * + * ``` + * ./config.sh --url https://github.com/octo-org --token TOKEN + * ``` + */ + "actions/create-registration-token-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + /** + * Returns a token that you can pass to the `config` script to remove a self-hosted runner from an organization. The token expires after one hour. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * + * #### Example using remove token + * + * To remove your self-hosted runner from an organization, replace `TOKEN` with the remove token provided by this + * endpoint. + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + */ + "actions/create-remove-token-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + /** + * Gets a specific self-hosted runner configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/get-self-hosted-runner-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["runner"]; + }; + }; + }; + /** + * Forces the removal of a self-hosted runner from an organization. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + "actions/delete-self-hosted-runner-from-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + runner_id: components["parameters"]["runner_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Lists all secrets available in an organization without revealing their encrypted values. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + "actions/list-org-secrets": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + secrets?: components["schemas"]["organization-actions-secret"][]; + }; + }; + }; + }; + /** + * Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + "actions/get-org-public-key": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["actions-public-key"]; + }; + }; + }; + /** + * Gets a single organization secret without revealing its encrypted value. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + "actions/get-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret_name"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["organization-actions-secret"]; + }; + }; + }; + /** + * Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to + * use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + "actions/create-or-update-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret_name"]; + }; + }; + requestBody: { + "application/json": { + /** + * Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://docs.github.com/rest/reference/actions#get-an-organization-public-key) endpoint. + */ + encrypted_value?: string; + /** + * ID of the key you used to encrypt the secret. + */ + key_id?: string; + /** + * Configures the access that repositories have to the organization secret. Can be one of: + * \- `all` - All repositories in an organization can access the secret. + * \- `private` - Private repositories in an organization can access the secret. + * \- `selected` - Only specific repositories can access the secret. + */ + visibility?: "all" | "private" | "selected"; + /** + * An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://docs.github.com/rest/reference/actions#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/actions#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/actions#remove-selected-repository-from-an-organization-secret) endpoints. + */ + selected_repository_ids?: string[]; + }; + }; + responses: { + /** + * Response when creating a secret + */ + "201": unknown; + /** + * Response when updating a secret + */ + "204": never; + }; + }; + /** + * Deletes a secret in an organization using the secret name. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + "actions/delete-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret_name"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Lists all repositories that have been selected when the `visibility` for repository access to a secret is set to `selected`. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + "actions/list-selected-repos-for-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret_name"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + repositories?: components["schemas"]["minimal-repository"][]; + }; + }; + }; + }; + /** + * Replaces all repositories for an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + "actions/set-selected-repos-for-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret_name"]; + }; + }; + requestBody: { + "application/json": { + /** + * An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Set selected repositories for an organization secret](https://docs.github.com/rest/reference/actions#set-selected-repositories-for-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/reference/actions#remove-selected-repository-from-an-organization-secret) endpoints. + */ + selected_repository_ids?: number[]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Adds a repository to an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + "actions/add-selected-repo-to-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret_name"]; + repository_id: number; + }; + }; + responses: { + /** + * Response when repository was added to the selected list + */ + "204": never; + /** + * Response when visibility type is not set to selected + */ + "409": unknown; + }; + }; + /** + * Removes a repository from an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + "actions/remove-selected-repo-from-org-secret": { + parameters: { + path: { + org: components["parameters"]["org"]; + secret_name: components["parameters"]["secret_name"]; + repository_id: number; + }; + }; + responses: { + /** + * Response when repository was removed from the selected list + */ + "204": never; + /** + * Response when visibility type not set to selected + */ + "409": unknown; + }; + }; + /** + * **Note:** The audit log REST API is currently in beta and is subject to change. To join the beta, talk to your services or sales contact at GitHub. + * + * Gets the audit log for an organization. For more information, see "[Reviewing the audit log for your organization](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/reviewing-the-audit-log-for-your-organization)." + * + * To use this endpoint, you must be an organization owner, and you must use an access token with the `admin:org` scope. GitHub Apps must have the `organization_administration` read permission to use this endpoint. + */ + "orgs/get-audit-log": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + query: { + phrase?: components["parameters"]["audit-log-phrase"]; + include?: components["parameters"]["audit-log-include"]; + after?: components["parameters"]["audit-log-after"]; + before?: components["parameters"]["audit-log-before"]; + per_page?: components["parameters"]["per_page"]; + }; + }; + responses: { + /** + * Response + */ + "200": { + "application/json": components["schemas"]["audit-log-event"][]; + }; + }; + }; + /** + * List the users blocked by an organization. + */ + "orgs/list-blocked-users": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["simple-user"][]; + }; + "415": unknown; + }; + }; + "orgs/check-blocked-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * If the user is blocked: + */ + "204": never; + /** + * If the user is not blocked: + */ + "404": { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + "orgs/block-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "422": unknown; + }; + }; + "orgs/unblock-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Listing and deleting credential authorizations is available to organizations with GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products). + * + * An authenticated organization owner with the `read:org` scope can list all credential authorizations for an organization that uses SAML single sign-on (SSO). The credentials are either personal access tokens or SSH keys that organization members have authorized for the organization. For more information, see [About authentication with SAML single sign-on](https://help.github.com/en/articles/about-authentication-with-saml-single-sign-on). + */ + "orgs/list-saml-sso-authorizations": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["credential-authorization"][]; + }; + }; + }; + /** + * Listing and deleting credential authorizations is available to organizations with GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products). + * + * An authenticated organization owner with the `admin:org` scope can remove a credential authorization for an organization that uses SAML SSO. Once you remove someone's credential authorization, they will need to create a new personal access token or SSH key and authorize it for the organization they want to access. + */ + "orgs/remove-saml-sso-authorization": { + parameters: { + path: { + org: components["parameters"]["org"]; + credential_id: number; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "404": unknown; + }; + }; + "activity/list-public-org-events": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + "orgs/list-webhooks": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["org-hook"][]; + }; + "404": unknown; + }; + }; + /** + * Here's how you can create a hook that posts payloads in JSON format: + */ + "orgs/create-webhook": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + "application/json": { + /** + * Must be passed as "web". + */ + name: string; + /** + * Key/value pairs to provide settings for this webhook. [These are defined below](https://docs.github.com/rest/reference/orgs#create-hook-config-params). + */ + config: { + url: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + username?: string; + password?: string; + }; + /** + * Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. + */ + events?: string[]; + /** + * Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + */ + active?: boolean; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["org-hook"]; + }; + "404": unknown; + "422": unknown; + }; + }; + /** + * Returns a webhook configured in an organization. To get only the webhook `config` properties, see "[Get a webhook configuration for an organization](/rest/reference/orgs#get-a-webhook-configuration-for-an-organization)." + */ + "orgs/get-webhook": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["org-hook"]; + }; + "404": unknown; + }; + }; + /** + * Updates a webhook configured in an organization. When you update a webhook, the `secret` will be overwritten. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for an organization](/rest/reference/orgs#update-a-webhook-configuration-for-an-organization)." + */ + "orgs/update-webhook": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + requestBody: { + "application/json": { + /** + * Key/value pairs to provide settings for this webhook. [These are defined below](https://docs.github.com/rest/reference/orgs#update-hook-config-params). + */ + config?: { + url: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + /** + * Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. + */ + events?: string[]; + /** + * Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + */ + active?: boolean; + name?: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["org-hook"]; + }; + "404": unknown; + "422": unknown; + }; + }; + "orgs/delete-webhook": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "404": unknown; + }; + }; + /** + * Returns the webhook configuration for an organization. To get more information about the webhook, including the `active` state and `events`, use "[Get an organization webhook ](/rest/reference/orgs#get-an-organization-webhook)." + * + * Access tokens must have the `admin:org_hook` scope, and GitHub Apps must have the `organization_hooks:read` permission. + */ + "orgs/get-webhook-config-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** + * Default response + */ + "200": { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + /** + * Updates the webhook configuration for an organization. To update more information about the webhook, including the `active` state and `events`, use "[Update an organization webhook ](/rest/reference/orgs#update-an-organization-webhook)." + * + * Access tokens must have the `admin:org_hook` scope, and GitHub Apps must have the `organization_hooks:write` permission. + */ + "orgs/update-webhook-config-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + requestBody: { + "application/json": { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + }; + responses: { + /** + * Default response + */ + "200": { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + /** + * This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. + */ + "orgs/ping-webhook": { + parameters: { + path: { + org: components["parameters"]["org"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "404": unknown; + }; + }; + /** + * Enables an authenticated GitHub App to find the organization's installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-org-installation": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["installation"]; + }; + }; + }; + /** + * Lists all GitHub Apps in an organization. The installation count includes all GitHub Apps installed on repositories in the organization. You must be an organization owner with `admin:read` scope to use this endpoint. + */ + "orgs/list-app-installations": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + installations?: components["schemas"]["installation"][]; + }; + }; + }; + }; + /** + * Shows which type of GitHub user can interact with this organization and when the restriction expires. If there is no restrictions, you will see an empty response. + */ + "interactions/get-restrictions-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["interaction-limit-response"]; + }; + }; + }; + /** + * Temporarily restricts interactions to a certain type of GitHub user in any public repository in the given organization. You must be an organization owner to set these restrictions. Setting the interaction limit at the organization level will overwrite any interaction limits that are set for individual repositories owned by the organization. + */ + "interactions/set-restrictions-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + "application/json": components["schemas"]["interaction-limit"]; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["interaction-limit-response"]; + }; + "422": unknown; + }; + }; + /** + * Removes all interaction restrictions from public repositories in the given organization. You must be an organization owner to remove restrictions. + */ + "interactions/remove-restrictions-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + */ + "orgs/list-pending-invitations": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["organization-invitation"][]; + }; + "404": unknown; + }; + }; + /** + * Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + */ + "orgs/create-invitation": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + "application/json": { + /** + * **Required unless you provide `email`**. GitHub user ID for the person you are inviting. + */ + invitee_id?: number; + /** + * **Required unless you provide `invitee_id`**. Email address of the person you are inviting, which can be an existing GitHub user. + */ + email?: string; + /** + * Specify role for new member. Can be one of: + * \* `admin` - Organization owners with full administrative rights to the organization and complete access to all repositories and teams. + * \* `direct_member` - Non-owner organization members with ability to see other members and join teams by invitation. + * \* `billing_manager` - Non-owner organization members with ability to manage the billing settings of your organization. + */ + role?: "admin" | "direct_member" | "billing_manager"; + /** + * Specify IDs for the teams you want to invite new members to. + */ + team_ids?: number[]; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["organization-invitation"]; + }; + "404": unknown; + "422": unknown; + }; + }; + /** + * List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner. + */ + "orgs/list-invitation-teams": { + parameters: { + path: { + org: components["parameters"]["org"]; + invitation_id: components["parameters"]["invitation_id"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team"][]; + }; + "404": unknown; + }; + }; + /** + * List issues in an organization assigned to the authenticated user. + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + "issues/list-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + query: { + /** + * Indicates which sorts of issues to return. Can be one of: + * \* `assigned`: Issues assigned to you + * \* `created`: Issues created by you + * \* `mentioned`: Issues mentioning you + * \* `subscribed`: Issues you're subscribed to updates for + * \* `all`: All issues the authenticated user can see, regardless of participation or creation + */ + filter?: "assigned" | "created" | "mentioned" | "subscribed" | "all"; + /** + * Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + labels?: components["parameters"]["labels"]; + /** + * What to sort results by. Can be either `created`, `updated`, `comments`. + */ + sort?: "created" | "updated" | "comments"; + direction?: components["parameters"]["direction"]; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["issue"][]; + }; + "404": unknown; + }; + }; + /** + * List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned. + */ + "orgs/list-members": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + query: { + /** + * Filter members returned in the list. Can be one of: + * \* `2fa_disabled` - Members without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled. Available for organization owners. + * \* `all` - All members the authenticated user can see. + */ + filter?: "2fa_disabled" | "all"; + /** + * Filter members returned by their role. Can be one of: + * \* `all` - All members of the organization, regardless of role. + * \* `admin` - Organization owners. + * \* `member` - Non-owner organization members. + */ + role?: "all" | "admin" | "member"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["simple-user"][]; + }; + /** + * Response if requester is not an organization member + */ + "302": never; + "422": unknown; + }; + }; + /** + * Check if a user is, publicly or privately, a member of the organization. + */ + "orgs/check-membership-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Response if requester is an organization member and user is a member + */ + "204": never; + /** + * Response if requester is not an organization member + */ + "302": never; + /** + * Response if requester is an organization member and user is not a member + */ + "404": unknown; + }; + }; + /** + * Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories. + */ + "orgs/remove-member": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "403": unknown; + }; + }; + /** + * In order to get a user's membership with an organization, the authenticated user must be an organization member. + */ + "orgs/get-membership-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["org-membership"]; + }; + "403": unknown; + "404": unknown; + }; + }; + /** + * Only authenticated organization owners can add a member to the organization or update the member's role. + * + * * If the authenticated user is _adding_ a member to the organization, the invited user will receive an email inviting them to the organization. The user's [membership status](https://docs.github.com/rest/reference/orgs#get-organization-membership-for-a-user) will be `pending` until they accept the invitation. + * + * * Authenticated users can _update_ a user's membership by passing the `role` parameter. If the authenticated user changes a member's role to `admin`, the affected user will receive an email notifying them that they've been made an organization owner. If the authenticated user changes an owner's role to `member`, no email will be sent. + * + * **Rate limits** + * + * To prevent abuse, the authenticated user is limited to 50 organization invitations per 24 hour period. If the organization is more than one month old or on a paid plan, the limit is 500 invitations per 24 hour period. + */ + "orgs/set-membership-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + requestBody: { + "application/json": { + /** + * The role to give the user in the organization. Can be one of: + * \* `admin` - The user will become an owner of the organization. + * \* `member` - The user will become a non-owner member of the organization. + */ + role?: "admin" | "member"; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["org-membership"]; + }; + "403": unknown; + "422": unknown; + }; + }; + /** + * In order to remove a user's membership with an organization, the authenticated user must be an organization owner. + * + * If the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases. + */ + "orgs/remove-membership-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "403": unknown; + "404": unknown; + }; + }; + /** + * Lists the most recent migrations. + */ + "migrations/list-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["migration"][]; + }; + }; + }; + /** + * Initiates the generation of a migration archive. + */ + "migrations/start-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + "application/json": { + /** + * A list of arrays indicating which repositories should be migrated. + */ + repositories: string[]; + /** + * Indicates whether repositories should be locked (to prevent manipulation) while migrating data. + */ + lock_repositories?: boolean; + /** + * Indicates whether attachments should be excluded from the migration (to reduce migration archive file size). + */ + exclude_attachments?: boolean; + exclude?: string[]; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["migration"]; + }; + "404": unknown; + "422": unknown; + }; + }; + /** + * Fetches the status of a migration. + * + * The `state` of a migration can be one of the following values: + * + * * `pending`, which means the migration hasn't started yet. + * * `exporting`, which means the migration is in progress. + * * `exported`, which means the migration finished successfully. + * * `failed`, which means the migration failed. + */ + "migrations/get-status-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + migration_id: components["parameters"]["migration_id"]; + }; + }; + responses: { + /** + * * `pending`, which means the migration hasn't started yet. + * * `exporting`, which means the migration is in progress. + * * `exported`, which means the migration finished successfully. + * * `failed`, which means the migration failed. + */ + "200": { + "application/json": components["schemas"]["migration"]; + }; + "404": unknown; + }; + }; + /** + * Fetches the URL to a migration archive. + */ + "migrations/download-archive-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + migration_id: components["parameters"]["migration_id"]; + }; + }; + responses: { + /** + * response + */ + "302": never; + "404": unknown; + }; + }; + /** + * Deletes a previous migration archive. Migration archives are automatically deleted after seven days. + */ + "migrations/delete-archive-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + migration_id: components["parameters"]["migration_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "404": unknown; + }; + }; + /** + * Unlocks a repository that was locked for migration. You should unlock each migrated repository and [delete them](https://docs.github.com/rest/reference/repos#delete-a-repository) when the migration is complete and you no longer need the source data. + */ + "migrations/unlock-repo-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + migration_id: components["parameters"]["migration_id"]; + repo_name: components["parameters"]["repo_name"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "404": unknown; + }; + }; + /** + * List all the repositories for this organization migration. + */ + "migrations/list-repos-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + migration_id: components["parameters"]["migration_id"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["minimal-repository"][]; + }; + "404": unknown; + }; + }; + /** + * List all users who are outside collaborators of an organization. + */ + "orgs/list-outside-collaborators": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + query: { + /** + * Filter the list of outside collaborators. Can be one of: + * \* `2fa_disabled`: Outside collaborators without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled. + * \* `all`: All outside collaborators. + */ + filter?: "2fa_disabled" | "all"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + /** + * When an organization member is converted to an outside collaborator, they'll only have access to the repositories that their current team membership allows. The user will no longer be a member of the organization. For more information, see "[Converting an organization member to an outside collaborator](https://help.github.com/articles/converting-an-organization-member-to-an-outside-collaborator/)". + */ + "orgs/convert-member-to-outside-collaborator": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * User is getting converted asynchronously + */ + "202": unknown; + /** + * User was converted + */ + "204": never; + /** + * response + */ + "403": { + "application/json": { message?: string; documentation_url?: string }; + }; + "404": unknown; + }; + }; + /** + * Removing a user from this list will remove them from all the organization's repositories. + */ + "orgs/remove-outside-collaborator": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + /** + * Response if user is a member of the organization + */ + "422": { + "application/json": { message?: string; documentation_url?: string }; + }; + }; + }; + /** + * Lists the projects in an organization. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/list-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + query: { + /** + * Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["project"][]; + }; + "422": unknown; + }; + }; + /** + * Creates an organization project board. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/create-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + "application/json": { + /** + * The name of the project. + */ + name: string; + /** + * The description of the project. + */ + body?: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["project"]; + }; + "401": unknown; + "403": unknown; + "404": unknown; + "410": unknown; + "422": unknown; + }; + }; + /** + * Members of an organization can choose to have their membership publicized or not. + */ + "orgs/list-public-members": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + "orgs/check-public-membership-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Response if user is a public member + */ + "204": never; + /** + * Response if user is not a public member + */ + "404": unknown; + }; + }; + /** + * The user can publicize their own membership. (A user cannot publicize the membership for another user.) + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + "orgs/set-public-membership-for-authenticated-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "403": unknown; + }; + }; + "orgs/remove-public-membership-for-authenticated-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Lists repositories for the specified organization. + */ + "repos/list-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + query: { + /** + * Specifies the types of repositories you want returned. Can be one of `all`, `public`, `private`, `forks`, `sources`, `member`, `internal`. Default: `all`. If your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+, `type` can also be `internal`. + */ + type?: + | "all" + | "public" + | "private" + | "forks" + | "sources" + | "member" + | "internal"; + /** + * Can be one of `created`, `updated`, `pushed`, `full_name`. + */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** + * Can be one of `asc` or `desc`. Default: when using `full_name`: `asc`, otherwise `desc` + */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + }; + /** + * Creates a new repository in the specified organization. The authenticated user must be a member of the organization. + * + * **OAuth scope requirements** + * + * When using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include: + * + * * `public_repo` scope or `repo` scope to create a public repository + * * `repo` scope to create a private repository + */ + "repos/create-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + "application/json": { + /** + * The name of the repository. + */ + name: string; + /** + * A short description of the repository. + */ + description?: string; + /** + * A URL with more information about the repository. + */ + homepage?: string; + /** + * Either `true` to create a private repository or `false` to create a public one. + */ + private?: boolean; + /** + * Can be `public` or `private`. If your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+, `visibility` can also be `internal`. For more information, see "[Creating an internal repository](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-repository-visibility#about-internal-repositories)" in the GitHub Help documentation. + * The `visibility` parameter overrides the `private` parameter when you use both parameters with the `nebula-preview` preview header. + */ + visibility?: "public" | "private" | "visibility" | "internal"; + /** + * Either `true` to enable issues for this repository or `false` to disable them. + */ + has_issues?: boolean; + /** + * Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + */ + has_projects?: boolean; + /** + * Either `true` to enable the wiki for this repository or `false` to disable it. + */ + has_wiki?: boolean; + /** + * Either `true` to make this repo available as a template repository or `false` to prevent it. + */ + is_template?: boolean; + /** + * The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization. + */ + team_id?: number; + /** + * Pass `true` to create an initial commit with empty README. + */ + auto_init?: boolean; + /** + * Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, "Haskell". + */ + gitignore_template?: string; + /** + * Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://help.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, "mit" or "mpl-2.0". + */ + license_template?: string; + /** + * Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + */ + allow_squash_merge?: boolean; + /** + * Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits. + */ + allow_merge_commit?: boolean; + /** + * Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + */ + allow_rebase_merge?: boolean; + /** + * Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion. + */ + delete_branch_on_merge?: boolean; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["repository"]; + }; + "403": unknown; + "422": unknown; + }; + }; + /** + * Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Access tokens must have the `repo` or `admin:org` scope. + */ + "billing/get-github-actions-billing-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["actions-billing-usage"]; + }; + }; + }; + /** + * Gets the free and paid storage usued for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * Access tokens must have the `repo` or `admin:org` scope. + */ + "billing/get-github-packages-billing-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["packages-billing-usage"]; + }; + }; + }; + /** + * Gets the estimated paid and estimated total storage used for GitHub Actions and Github Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * Access tokens must have the `repo` or `admin:org` scope. + */ + "billing/get-shared-storage-billing-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["combined-billing-usage"]; + }; + }; + }; + /** + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * List IdP groups available in an organization. You can limit your page results using the `per_page` parameter. GitHub generates a url-encoded `page` token using a cursor value for where the next page begins. For more information on cursor pagination, see "[Offset and Cursor Pagination explained](https://dev.to/jackmarchant/offset-and-cursor-pagination-explained-b89)." + * + * The `per_page` parameter provides pagination for a list of IdP groups the authenticated user can access in an organization. For example, if the user `octocat` wants to see two groups per page in `octo-org` via cURL, it would look like this: + */ + "teams/list-idp-groups-for-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["group-mapping"]; + }; + }; + }; + /** + * Lists all teams in an organization that are visible to the authenticated user. + */ + "teams/list": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team"][]; + }; + "403": unknown; + }; + }; + /** + * To create a team, the authenticated user must be a member or owner of `{org}`. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see "[Setting team creation permissions](https://help.github.com/en/articles/setting-team-creation-permissions-in-your-organization)." + * + * When you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of `maintainers`. For more information, see "[About teams](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/about-teams)". + */ + "teams/create": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + "application/json": { + /** + * The name of the team. + */ + name: string; + /** + * The description of the team. + */ + description?: string; + /** + * List GitHub IDs for organization members who will become team maintainers. + */ + maintainers?: string[]; + /** + * The full name (e.g., "organization-name/repository-name") of repositories to add the team to. + */ + repo_names?: string[]; + /** + * The level of privacy this team should have. The options are: + * **For a non-nested team:** + * \* `secret` - only visible to organization owners and members of this team. + * \* `closed` - visible to all members of this organization. + * Default: `secret` + * **For a parent or child team:** + * \* `closed` - visible to all members of this organization. + * Default for child team: `closed` + */ + privacy?: "secret" | "closed"; + /** + * **Deprecated**. The permission that new repositories will be added to the team with when none is specified. Can be one of: + * \* `pull` - team members can pull, but not push to or administer newly-added repositories. + * \* `push` - team members can pull and push, but not administer newly-added repositories. + * \* `admin` - team members can pull, push and administer newly-added repositories. + */ + permission?: "pull" | "push" | "admin"; + /** + * The ID of a team to set as the parent team. + */ + parent_team_id?: number; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["team-full"]; + }; + "403": unknown; + "422": unknown; + }; + }; + /** + * Gets a team using the team's `slug`. GitHub generates the `slug` from the team `name`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}`. + */ + "teams/get-by-name": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-full"]; + }; + "404": unknown; + }; + }; + /** + * To edit a team, the authenticated user must either be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}`. + */ + "teams/update-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + }; + }; + requestBody: { + "application/json": { + /** + * The name of the team. + */ + name: string; + /** + * The description of the team. + */ + description?: string; + /** + * The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. When a team is nested, the `privacy` for parent teams cannot be `secret`. The options are: + * **For a non-nested team:** + * \* `secret` - only visible to organization owners and members of this team. + * \* `closed` - visible to all members of this organization. + * **For a parent or child team:** + * \* `closed` - visible to all members of this organization. + */ + privacy?: "secret" | "closed"; + /** + * **Deprecated**. The permission that new repositories will be added to the team with when none is specified. Can be one of: + * \* `pull` - team members can pull, but not push to or administer newly-added repositories. + * \* `push` - team members can pull and push, but not administer newly-added repositories. + * \* `admin` - team members can pull, push and administer newly-added repositories. + */ + permission?: "pull" | "push" | "admin"; + /** + * The ID of a team to set as the parent team. + */ + parent_team_id?: number; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["team-full"]; + }; + }; + }; + /** + * To delete a team, the authenticated user must be an organization owner or team maintainer. + * + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}`. + */ + "teams/delete-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * List all discussions on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions`. + */ + "teams/list-discussions-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + }; + query: { + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-discussion"][]; + }; + }; + }; + /** + * Creates a new discussion post on a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions`. + */ + "teams/create-discussion-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + }; + }; + requestBody: { + "application/json": { + /** + * The discussion post's title. + */ + title: string; + /** + * The discussion post's body text. + */ + body: string; + /** + * Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to `true` to create a private post. + */ + private?: boolean; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + /** + * Get a specific discussion on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + */ + "teams/get-discussion-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + /** + * Edits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + */ + "teams/update-discussion-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody: { + "application/json": { + /** + * The discussion post's title. + */ + title?: string; + /** + * The discussion post's body text. + */ + body?: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + /** + * Delete a discussion from a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + */ + "teams/delete-discussion-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * List all comments on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + */ + "teams/list-discussion-comments-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + query: { + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-discussion-comment"][]; + }; + }; + }; + /** + * Creates a new comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + */ + "teams/create-discussion-comment-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody: { + "application/json": { + /** + * The discussion comment's body text. + */ + body: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + /** + * Get a specific comment on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + */ + "teams/get-discussion-comment-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + /** + * Edits the body text of a discussion comment. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + */ + "teams/update-discussion-comment-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + requestBody: { + "application/json": { + /** + * The discussion comment's body text. + */ + body: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + /** + * Deletes a comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + */ + "teams/delete-discussion-comment-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * List the reactions to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments/). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + */ + "reactions/list-for-team-discussion-comment-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + query: { + /** + * Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a team discussion comment. + */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["reaction"][]; + }; + }; + }; + /** + * Create a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with a `Status: 200 OK` means that you already added the reaction type to this team discussion comment. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + */ + "reactions/create-for-team-discussion-comment-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + requestBody: { + "application/json": { + /** + * The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the team discussion comment. + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["reaction"]; + }; + }; + }; + /** + * **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "reactions/delete-for-team-discussion-comment": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * List the reactions to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + */ + "reactions/list-for-team-discussion-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + query: { + /** + * Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a team discussion. + */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["reaction"][]; + }; + }; + }; + /** + * Create a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with a `Status: 200 OK` means that you already added the reaction type to this team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + */ + "reactions/create-for-team-discussion-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody: { + "application/json": { + /** + * The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the team discussion. + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["reaction"]; + }; + }; + }; + /** + * **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "reactions/delete-for-team-discussion": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + discussion_number: components["parameters"]["discussion-number"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/invitations`. + */ + "teams/list-pending-invitations-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["organization-invitation"][]; + }; + }; + }; + /** + * Team members will include the members of child teams. + * + * To list members in a team, the team must be visible to the authenticated user. + */ + "teams/list-members-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + }; + query: { + /** + * Filters members returned by their role in the team. Can be one of: + * \* `member` - normal members of the team. + * \* `maintainer` - team maintainers. + * \* `all` - all members of the team. + */ + role?: "member" | "maintainer" | "all"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + /** + * Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/memberships/{username}`. + * + * **Note:** The `role` for organization owners returns as `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/reference/teams#create-a-team). + */ + "teams/get-membership-for-user-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-membership"]; + }; + /** + * Response if user has no team membership + */ + "404": unknown; + }; + }; + /** + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Adds an organization member to a team. An authenticated organization owner or team maintainer can add organization members to a team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * An organization owner can add someone who is not part of the team's organization to a team. When an organization owner adds someone to a team who is not an organization member, this endpoint will send an invitation to the person via email. This newly-created membership will be in the "pending" state until the person accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + "teams/add-or-update-membership-for-user-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + username: components["parameters"]["username"]; + }; + }; + requestBody: { + "application/json": { + /** + * The role that this user should have in the team. Can be one of: + * \* `member` - a normal member of the team. + * \* `maintainer` - a team maintainer. Able to add/remove other team members, promote other team members to team maintainer, and edit the team's name and description. + */ + role?: "member" | "maintainer"; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-membership"]; + }; + /** + * Response if team synchronization is set up + */ + "403": unknown; + /** + * Response if you attempt to add an organization to a team + */ + "422": { + "application/json": { + message?: string; + errors?: { code?: string; field?: string; resource?: string }[]; + }; + }; + }; + }; + /** + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + "teams/remove-membership-for-user-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + /** + * Response if team synchronization is set up + */ + "403": unknown; + }; + }; + /** + * Lists the organization projects for a team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects`. + */ + "teams/list-projects-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-project"][]; + }; + }; + }; + /** + * Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + "teams/check-permissions-for-project-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-project"]; + }; + /** + * Response if project is not managed by this team + */ + "404": unknown; + }; + }; + /** + * Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + "teams/add-or-update-project-permissions-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + project_id: components["parameters"]["project-id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The permission to grant to the team for this project. Can be one of: + * \* `read` - team members can read, but not write to or administer this project. + * \* `write` - team members can read and write, but not administer this project. + * \* `admin` - team members can read, write and administer this project. + * Default: the team's `permission` attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + permission?: "read" | "write" | "admin"; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + /** + * Response if the project is not owned by the organization + */ + "403": { + "application/json": { message?: string; documentation_url?: string }; + }; + }; + }; + /** + * Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. This endpoint removes the project from the team, but does not delete the project. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + "teams/remove-project-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Lists a team's repositories visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`. + */ + "teams/list-repos-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + }; + /** + * Checks whether a team has `admin`, `push`, `maintain`, `triage`, or `pull` permission for a repository. Repositories inherited through a parent team will also be checked. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `application/vnd.github.v3.repository+json` accept header. + * + * If a team doesn't have permission for the repository, you will receive a `404 Not Found` response status. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + "teams/check-permissions-for-repo-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * Alternative response with repository permissions + */ + "200": { + "application/vnd.github.v3.repository+json": components["schemas"]["team-repository"]; + }; + /** + * Response if team has permission for the repository + */ + "204": never; + /** + * Response if team does not have permission for the repository + */ + "404": unknown; + }; + }; + /** + * To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + * + * For more information about the permission levels, see "[Repository permission levels for an organization](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". + */ + "teams/add-or-update-repo-permissions-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * The permission to grant the team on this repository. Can be one of: + * \* `pull` - team members can pull, but not push to or administer this repository. + * \* `push` - team members can pull and push, but not administer this repository. + * \* `admin` - team members can pull, push and administer this repository. + * \* `maintain` - team members can manage the repository without access to sensitive or destructive actions. Recommended for project managers. Only applies to repositories owned by organizations. + * \* `triage` - team members can proactively manage issues and pull requests without write access. Recommended for contributors who triage a repository. Only applies to repositories owned by organizations. + * + * If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository. + */ + permission?: "pull" | "push" | "admin" | "maintain" | "triage"; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + "teams/remove-repo-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * List IdP groups connected to a team on GitHub. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/team-sync/group-mappings`. + */ + "teams/list-idp-groups-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["group-mapping"]; + }; + }; + }; + /** + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Creates, updates, or removes a connection between a team and an IdP group. When adding groups to a team, you must include all new and existing groups to avoid replacing existing groups with the new ones. Specifying an empty `groups` array will remove all connections for a team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/team-sync/group-mappings`. + */ + "teams/create-or-update-idp-group-connections-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + }; + }; + requestBody: { + "application/json": { + /** + * The IdP groups you want to connect to a GitHub team. When updating, the new `groups` object will replace the original one. You must include any existing groups that you don't want to remove. + */ + groups: { + /** + * ID of the IdP group. + */ + group_id: string; + /** + * Name of the IdP group. + */ + group_name: string; + /** + * Description of the IdP group. + */ + group_description: string; + }[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["group-mapping"]; + }; + }; + }; + /** + * Lists the child teams of the team specified by `{team_slug}`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/teams`. + */ + "teams/list-child-in-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + team_slug: components["parameters"]["team_slug"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * Response if child teams exist + */ + "200": { + "application/json": components["schemas"]["team"][]; + }; + }; + }; + "projects/get-card": { + parameters: { + path: { + card_id: components["parameters"]["card_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["project-card"]; + }; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + }; + }; + "projects/update-card": { + parameters: { + path: { + card_id: components["parameters"]["card_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The project card's note + */ + note?: string | null; + /** + * Whether or not the card is archived + */ + archived?: boolean; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["project-card"]; + }; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + "projects/delete-card": { + parameters: { + path: { + card_id: components["parameters"]["card_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "401": unknown; + /** + * Forbidden + */ + "403": { + "application/json": { + message?: string; + documentation_url?: string; + errors?: string[]; + }; + }; + "404": unknown; + }; + }; + "projects/move-card": { + parameters: { + path: { + card_id: components["parameters"]["card_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The position of the card in a column + */ + position: string; + /** + * The unique identifier of the column the card should be moved to + */ + column_id?: number; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": { [key: string]: any }; + }; + "304": never; + "401": unknown; + /** + * Forbidden + */ + "403": { + "application/json": { + message?: string; + documentation_url?: string; + errors?: { + code?: string; + message?: string; + resource?: string; + field?: string; + }[]; + }; + }; + "422": unknown; + /** + * Service Unavailable + */ + "503": { + "application/json": { + code?: string; + message?: string; + documentation_url?: string; + errors?: { code?: string; message?: string }[]; + }; + }; + }; + }; + "projects/get-column": { + parameters: { + path: { + column_id: components["parameters"]["column_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["project-column"]; + }; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + }; + }; + "projects/update-column": { + parameters: { + path: { + column_id: components["parameters"]["column_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * Name of the project column + */ + name: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["project-column"]; + }; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + "projects/delete-column": { + parameters: { + path: { + column_id: components["parameters"]["column_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + "projects/list-cards": { + parameters: { + path: { + column_id: components["parameters"]["column_id"]; + }; + query: { + /** + * Filters the project cards that are returned by the card's state. Can be one of `all`,`archived`, or `not_archived`. + */ + archived_state?: "all" | "archived" | "not_archived"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["project-card"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + /** + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. + * + * Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + "projects/create-card": { + parameters: { + path: { + column_id: components["parameters"]["column_id"]; + }; + }; + requestBody: { + "application/json": + | { + /** + * The project card's note + */ + note: string | null; + } + | { + /** + * The unique identifier of the content associated with the card + */ + content_id: number; + /** + * The piece of content associated with the card + */ + content_type: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["project-card"]; + }; + "304": never; + "401": unknown; + "403": unknown; + /** + * Validation Failed + */ + "422": { + "application/json": + | components["schemas"]["validation-error"] + | components["schemas"]["validation-error-simple"]; + }; + /** + * Service Unavailable + */ + "503": { + "application/json": { + code?: string; + message?: string; + documentation_url?: string; + errors?: { code?: string; message?: string }[]; + }; + }; + }; + }; + "projects/move-column": { + parameters: { + path: { + column_id: components["parameters"]["column_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The position of the column in a project + */ + position: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": { [key: string]: any }; + }; + "304": never; + "401": unknown; + "403": unknown; + "422": unknown; + }; + }; + /** + * Gets a project by its `id`. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/get": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["project"]; + }; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + /** + * Updates a project board's information. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/update": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + requestBody: { + "application/json": { + /** + * Name of the project + */ + name?: string; + /** + * Body of the project + */ + body?: string | null; + /** + * State of the project; either 'open' or 'closed' + */ + state?: string; + /** + * The baseline permission that all organization members have on this project + */ + organization_permission?: "read" | "write" | "admin" | "none"; + /** + * Whether or not this project can be seen by everyone. + */ + private?: boolean; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["project"]; + }; + "304": never; + "401": unknown; + /** + * Forbidden + */ + "403": { + "application/json": { + message?: string; + documentation_url?: string; + errors?: string[]; + }; + }; + /** + * Response if the authenticated user does not have access to the project + */ + "404": unknown; + "410": unknown; + "422": unknown; + }; + }; + /** + * Deletes a project board. Returns a `404 Not Found` status if projects are disabled. + */ + "projects/delete": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** + * Delete Success + */ + "204": never; + "304": never; + "401": unknown; + /** + * Forbidden + */ + "403": { + "application/json": { + message?: string; + documentation_url?: string; + errors?: string[]; + }; + }; + "404": unknown; + "410": unknown; + }; + }; + /** + * Lists the collaborators for an organization project. For a project, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. You must be an organization owner or a project `admin` to list collaborators. + */ + "projects/list-collaborators": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + }; + query: { + /** + * Filters the collaborators by their affiliation. Can be one of: + * \* `outside`: Outside collaborators of a project that are not a member of the project's organization. + * \* `direct`: Collaborators with permissions to a project, regardless of organization membership status. + * \* `all`: All collaborators the authenticated user can see. + */ + affiliation?: "outside" | "direct" | "all"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["simple-user"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + "415": unknown; + "422": unknown; + }; + }; + /** + * Adds a collaborator to an organization project and sets their permission level. You must be an organization owner or a project `admin` to add a collaborator. + */ + "projects/add-collaborator": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + username: components["parameters"]["username"]; + }; + }; + requestBody: { + "application/json": { + /** + * The permission to grant the collaborator. + */ + permission?: "read" | "write" | "admin"; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + "415": unknown; + "422": unknown; + }; + }; + /** + * Removes a collaborator from an organization project. You must be an organization owner or a project `admin` to remove a collaborator. + */ + "projects/remove-collaborator": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + "415": unknown; + "422": unknown; + }; + }; + /** + * Returns the collaborator's permission level for an organization project. Possible values for the `permission` key: `admin`, `write`, `read`, `none`. You must be an organization owner or a project `admin` to review a user's permission level. + */ + "projects/get-permission-for-user": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["repository-collaborator-permission"]; + }; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + "415": unknown; + "422": unknown; + }; + }; + "projects/list-columns": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["project-column"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + "projects/create-column": { + parameters: { + path: { + project_id: components["parameters"]["project-id"]; + }; + }; + requestBody: { + "application/json": { + /** + * Name of the project column + */ + name: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["project-column"]; + }; + "304": never; + "401": unknown; + "403": unknown; + "422": unknown; + }; + }; + /** + * **Note:** Accessing this endpoint does not count against your REST API rate limit. + * + * **Note:** The `rate` object is deprecated. If you're writing new API client code or updating existing code, you should use the `core` object instead of the `rate` object. The `core` object contains the same information that is present in the `rate` object. + */ + "rate-limit/get": { + parameters: {}; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["rate-limit-overview"]; + }; + "304": never; + "404": unknown; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Reactions API. We recommend migrating your existing code to use the new delete reactions endpoints. For more information, see this [blog post](https://developer.github.com/changes/2020-02-26-new-delete-reactions-endpoints/). + * + * OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), when deleting a [team discussion](https://docs.github.com/rest/reference/teams#discussions) or [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). + */ + "reactions/delete-legacy": { + parameters: { + path: { + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "401": unknown; + "403": unknown; + "410": unknown; + "415": unknown; + }; + }; + /** + * When you pass the `scarlet-witch-preview` media type, requests to get a repository will also return the repository's code of conduct if it can be detected from the repository's code of conduct file. + * + * The `parent` and `source` objects are present when the repository is a fork. `parent` is the repository this repository was forked from, `source` is the ultimate source for the network. + */ + "repos/get": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["full-repository"]; + }; + "301": never; + "403": unknown; + "404": unknown; + }; + }; + /** + * **Note**: To edit a repository's topics, use the [Replace all repository topics](https://docs.github.com/rest/reference/repos#replace-all-repository-topics) endpoint. + */ + "repos/update": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * The name of the repository. + */ + name?: string; + /** + * A short description of the repository. + */ + description?: string; + /** + * A URL with more information about the repository. + */ + homepage?: string; + /** + * Either `true` to make the repository private or `false` to make it public. Default: `false`. + * **Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://help.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private. **Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://help.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private. + */ + private?: boolean; + /** + * Can be `public` or `private`. If your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+, `visibility` can also be `internal`. The `visibility` parameter overrides the `private` parameter when you use both along with the `nebula-preview` preview header. + */ + visibility?: "public" | "private" | "visibility" | "internal"; + /** + * Either `true` to enable issues for this repository or `false` to disable them. + */ + has_issues?: boolean; + /** + * Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + */ + has_projects?: boolean; + /** + * Either `true` to enable the wiki for this repository or `false` to disable it. + */ + has_wiki?: boolean; + /** + * Either `true` to make this repo available as a template repository or `false` to prevent it. + */ + is_template?: boolean; + /** + * Updates the default branch for this repository. + */ + default_branch?: string; + /** + * Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + */ + allow_squash_merge?: boolean; + /** + * Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits. + */ + allow_merge_commit?: boolean; + /** + * Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + */ + allow_rebase_merge?: boolean; + /** + * Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion. + */ + delete_branch_on_merge?: boolean; + /** + * `true` to archive this repository. **Note**: You cannot unarchive repositories through the API. + */ + archived?: boolean; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["full-repository"]; + }; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + /** + * Deleting a repository requires admin access. If OAuth is used, the `delete_repo` scope is required. + * + * If an organization owner has configured the organization to prevent members from deleting organization-owned + * repositories, you will get a `403 Forbidden` response. + */ + "repos/delete": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + /** + * If an organization owner has configured the organization to prevent members from deleting organization-owned repositories, a member will get this response: + */ + "403": { + "application/json": { message?: string; documentation_url?: string }; + }; + "404": unknown; + }; + }; + /** + * Lists all artifacts for a repository. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + "actions/list-artifacts-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + artifacts?: components["schemas"]["artifact"][]; + }; + }; + }; + }; + /** + * Gets a specific artifact for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + "actions/get-artifact": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + artifact_id: components["parameters"]["artifact_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["artifact"]; + }; + }; + }; + /** + * Deletes an artifact for a workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + "actions/delete-artifact": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + artifact_id: components["parameters"]["artifact_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Gets a redirect URL to download an archive for a repository. This URL expires after 1 minute. Look for `Location:` in + * the response header to find the URL for the download. The `:archive_format` must be `zip`. Anyone with read access to + * the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. + * GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + "actions/download-artifact": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + artifact_id: components["parameters"]["artifact_id"]; + archive_format: string; + }; + }; + responses: { + /** + * response + */ + "302": never; + }; + }; + /** + * Gets a specific job in a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + "actions/get-job-for-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + job_id: components["parameters"]["job_id"]; + }; + }; + responses: { + /** + * response + */ + "202": { + "application/json": components["schemas"]["job"]; + }; + }; + }; + /** + * Gets a redirect URL to download a plain text file of logs for a workflow job. This link expires after 1 minute. Look + * for `Location:` in the response header to find the URL for the download. Anyone with read access to the repository can + * use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must + * have the `actions:read` permission to use this endpoint. + */ + "actions/download-job-logs-for-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + job_id: components["parameters"]["job_id"]; + }; + }; + responses: { + /** + * response + */ + "302": never; + }; + }; + /** + * Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions allowed to run in the repository. + * + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. GitHub Apps must have the `administration` repository permission to use this API. + */ + "actions/get-github-actions-permissions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["actions-repository-permissions"]; + }; + }; + }; + /** + * Sets the GitHub Actions permissions policy for enabling GitHub Actions and allowed actions in the repository. + * + * If the repository belongs to an organization or enterprise that has set restrictive permissions at the organization or enterprise levels, such as `allowed_actions` to `selected` actions, then you cannot override them for the repository. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API. + */ + "actions/set-github-actions-permissions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + enabled: components["schemas"]["actions-enabled"]; + allowed_actions?: components["schemas"]["allowed-actions"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Gets the settings for selected actions that are allowed in a repository. To use this endpoint, the repository policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API. + */ + "actions/get-allowed-actions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["selected-actions"]; + }; + }; + }; + /** + * Sets the actions that are allowed in a repository. To use this endpoint, the repository permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * If the repository belongs to an organization or enterprise that has `selected` actions set at the organization or enterprise levels, then you cannot override any of the allowed actions settings. + * + * To use the `patterns_allowed` setting for private repositories, the repository must belong to an enterprise. If the repository does not belong to an enterprise, then the `patterns_allowed` setting only applies to public repositories. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API. + */ + "actions/set-allowed-actions-repository": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": components["schemas"]["selected-actions"]; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Lists all self-hosted runners configured in a repository. You must authenticate using an access token with the `repo` scope to use this endpoint. + */ + "actions/list-self-hosted-runners-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + runners?: components["schemas"]["runner"][]; + }; + }; + }; + }; + /** + * Lists binaries for the runner application that you can download and run. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. + */ + "actions/list-runner-applications-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["runner-application"][]; + }; + }; + }; + /** + * Returns a token that you can pass to the `config` script. The token expires after one hour. You must authenticate + * using an access token with the `repo` scope to use this endpoint. + * + * #### Example using registration token + * + * Configure your self-hosted runner, replacing `TOKEN` with the registration token provided by this endpoint. + * + * ``` + * ./config.sh --url https://github.com/octo-org/octo-repo-artifacts --token TOKEN + * ``` + */ + "actions/create-registration-token-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + /** + * Returns a token that you can pass to remove a self-hosted runner from a repository. The token expires after one hour. + * You must authenticate using an access token with the `repo` scope to use this endpoint. + * + * #### Example using remove token + * + * To remove your self-hosted runner from a repository, replace TOKEN with the remove token provided by this endpoint. + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + */ + "actions/create-remove-token-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["authentication-token"]; + }; + }; + }; + /** + * Gets a specific self-hosted runner configured in a repository. + * + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. + */ + "actions/get-self-hosted-runner-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["runner"]; + }; + }; + }; + /** + * Forces the removal of a self-hosted runner from a repository. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * You must authenticate using an access token with the `repo` + * scope to use this endpoint. + */ + "actions/delete-self-hosted-runner-from-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + runner_id: components["parameters"]["runner_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Lists all workflow runs for a repository. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + "actions/list-workflow-runs-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + actor?: components["parameters"]["actor"]; + branch?: components["parameters"]["workflow-run-branch"]; + event?: components["parameters"]["event"]; + status?: components["parameters"]["workflow-run-status"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + workflow_runs?: components["schemas"]["workflow-run"][]; + }; + }; + }; + }; + /** + * Gets a specific workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + "actions/get-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["workflow-run"]; + }; + }; + }; + /** + * Delete a specific workflow run. Anyone with write access to the repository can use this endpoint. If the repository is + * private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:write` permission to use + * this endpoint. + */ + "actions/delete-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Lists artifacts for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + "actions/list-workflow-run-artifacts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + artifacts?: components["schemas"]["artifact"][]; + }; + }; + }; + }; + /** + * Cancels a workflow run using its `id`. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + "actions/cancel-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** + * response + */ + "202": unknown; + }; + }; + /** + * Lists jobs for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters). + */ + "actions/list-jobs-for-workflow-run": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + query: { + /** + * Filters jobs by their `completed_at` timestamp. Can be one of: + * \* `latest`: Returns jobs from the most recent execution of the workflow run. + * \* `all`: Returns all jobs for a workflow run, including from old executions of the workflow run. + */ + filter?: "latest" | "all"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + jobs?: components["schemas"]["job"][]; + }; + }; + }; + }; + /** + * Gets a redirect URL to download an archive of log files for a workflow run. This link expires after 1 minute. Look for + * `Location:` in the response header to find the URL for the download. Anyone with read access to the repository can use + * this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have + * the `actions:read` permission to use this endpoint. + */ + "actions/download-workflow-run-logs": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** + * response + */ + "302": never; + }; + }; + /** + * Deletes all logs for a workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + "actions/delete-workflow-run-logs": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Re-runs your workflow run using its `id`. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + "actions/re-run-workflow": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** + * response + */ + "201": unknown; + }; + }; + /** + * Gets the number of billable minutes and total run time for a specific workflow run. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + "actions/get-workflow-run-usage": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + run_id: components["parameters"]["run-id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["workflow-run-usage"]; + }; + }; + }; + /** + * Lists all secrets available in a repository without revealing their encrypted values. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. + */ + "actions/list-repo-secrets": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + secrets?: components["schemas"]["actions-secret"][]; + }; + }; + }; + }; + /** + * Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `secrets` repository permission to use this endpoint. + */ + "actions/get-repo-public-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["actions-public-key"]; + }; + }; + }; + /** + * Gets a single repository secret without revealing its encrypted value. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. + */ + "actions/get-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret_name"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["actions-secret"]; + }; + }; + }; + /** + * Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use + * this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + "actions/create-or-update-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret_name"]; + }; + }; + requestBody: { + "application/json": { + /** + * Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://docs.github.com/rest/reference/actions#get-a-repository-public-key) endpoint. + */ + encrypted_value?: string; + /** + * ID of the key you used to encrypt the secret. + */ + key_id?: string; + }; + }; + responses: { + /** + * Response when creating a secret + */ + "201": unknown; + /** + * Response when updating a secret + */ + "204": never; + }; + }; + /** + * Deletes a secret in a repository using the secret name. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. + */ + "actions/delete-repo-secret": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + secret_name: components["parameters"]["secret_name"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Lists the workflows in a repository. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + "actions/list-repo-workflows": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + workflows?: components["schemas"]["workflow"][]; + }; + }; + }; + }; + /** + * Gets a specific workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + "actions/get-workflow": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["workflow"]; + }; + }; + }; + /** + * Disables a workflow and sets the `state` of the workflow to `disabled_manually`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + "actions/disable-workflow": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * You can use this endpoint to manually trigger a GitHub Actions workflow run. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must configure your GitHub Actions workflow to run when the [`workflow_dispatch` webhook](/developers/webhooks-and-events/webhook-events-and-payloads#workflow_dispatch) event occurs. The `inputs` are configured in the workflow file. For more information about how to configure the `workflow_dispatch` event in the workflow file, see "[Events that trigger workflows](/actions/reference/events-that-trigger-workflows#workflow_dispatch)." + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. For more information, see "[Creating a personal access token for the command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line)." + */ + "actions/create-workflow-dispatch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The git reference for the workflow. The reference can be a branch or tag name. + */ + ref: string; + /** + * Input keys and values configured in the workflow file. The maximum number of properties is 10. Any default properties configured in the workflow file will be used when `inputs` are omitted. + */ + inputs?: { [key: string]: string }; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Enables a workflow and sets the `state` of the workflow to `active`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + "actions/enable-workflow": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * List all workflow runs for a workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. + */ + "actions/list-workflow-runs": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + query: { + actor?: components["parameters"]["actor"]; + branch?: components["parameters"]["workflow-run-branch"]; + event?: components["parameters"]["event"]; + status?: components["parameters"]["workflow-run-status"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + workflow_runs?: components["schemas"]["workflow-run"][]; + }; + }; + }; + }; + /** + * Gets the number of billable minutes used by a specific workflow during the current billing cycle. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + "actions/get-workflow-usage": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + workflow_id: components["parameters"]["workflow-id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["workflow-usage"]; + }; + }; + }; + /** + * Lists the [available assignees](https://help.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/) for issues in a repository. + */ + "issues/list-assignees": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["simple-user"][]; + }; + "404": unknown; + }; + }; + /** + * Checks if a user has permission to be assigned to an issue in this repository. + * + * If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned. + * + * Otherwise a `404` status code is returned. + */ + "issues/check-user-can-be-assigned": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + assignee: string; + }; + }; + responses: { + /** + * If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned. + */ + "204": never; + /** + * Otherwise a `404` status code is returned. + */ + "404": { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + /** + * Enables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://help.github.com/en/articles/configuring-automated-security-fixes)". + */ + "repos/enable-automated-security-fixes": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Disables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://help.github.com/en/articles/configuring-automated-security-fixes)". + */ + "repos/disable-automated-security-fixes": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + "repos/list-branches": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + /** + * Setting to `true` returns only protected branches. When set to `false`, only unprotected branches are returned. Omitting this parameter returns all branches. + */ + protected?: boolean; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["short-branch"][]; + }; + "404": unknown; + }; + }; + "repos/get-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["branch-with-protection"]; + }; + "404": unknown; + "415": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/get-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["branch-protection"]; + }; + "404": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Protecting a branch requires admin or owner permissions to the repository. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + * + * **Note**: The list of users, apps, and teams in total is limited to 100 items. + */ + "repos/update-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody: { + "application/json": { + /** + * Require status checks to pass before merging. Set to `null` to disable. + */ + required_status_checks: { + /** + * Require branches to be up to date before merging. + */ + strict: boolean; + /** + * The list of status checks to require in order to merge into this branch + */ + contexts: string[]; + } | null; + /** + * Enforce all configured restrictions for administrators. Set to `true` to enforce required status checks for repository administrators. Set to `null` to disable. + */ + enforce_admins: boolean | null; + /** + * Require at least one approving review on a pull request, before merging. Set to `null` to disable. + */ + required_pull_request_reviews: { + /** + * Specify which users and teams can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories. + */ + dismissal_restrictions?: { + /** + * The list of user `login`s with dismissal access + */ + users?: string[]; + /** + * The list of team `slug`s with dismissal access + */ + teams?: string[]; + }; + /** + * Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit. + */ + dismiss_stale_reviews?: boolean; + /** + * Blocks merging pull requests until [code owners](https://help.github.com/articles/about-code-owners/) review them. + */ + require_code_owner_reviews?: boolean; + /** + * Specify the number of reviewers required to approve pull requests. Use a number between 1 and 6. + */ + required_approving_review_count?: number; + } | null; + /** + * Restrict who can push to the protected branch. User, app, and team `restrictions` are only available for organization-owned repositories. Set to `null` to disable. + */ + restrictions: { + /** + * The list of user `login`s with push access + */ + users: string[]; + /** + * The list of team `slug`s with push access + */ + teams: string[]; + /** + * The list of app `slug`s with push access + */ + apps?: string[]; + } | null; + /** + * Enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch. Set to `true` to enforce a linear commit history. Set to `false` to disable a linear commit Git history. Your repository must allow squash merging or rebase merging before you can enable a linear commit history. Default: `false`. For more information, see "[Requiring a linear commit history](https://help.github.com/github/administering-a-repository/requiring-a-linear-commit-history)" in the GitHub Help documentation. + */ + required_linear_history?: boolean; + /** + * Permits force pushes to the protected branch by anyone with write access to the repository. Set to `true` to allow force pushes. Set to `false` or `null` to block force pushes. Default: `false`. For more information, see "[Enabling force pushes to a protected branch](https://help.github.com/en/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)" in the GitHub Help documentation." + */ + allow_force_pushes?: boolean | null; + /** + * Allows deletion of the protected branch by anyone with write access to the repository. Set to `false` to prevent deletion of the protected branch. Default: `false`. For more information, see "[Enabling force pushes to a protected branch](https://help.github.com/en/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)" in the GitHub Help documentation. + */ + allow_deletions?: boolean; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["protected-branch"]; + }; + "403": unknown; + "404": unknown; + "415": unknown; + "422": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/delete-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "403": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/get-admin-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["protected-branch-admin-enforced"]; + }; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + "repos/set-admin-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["protected-branch-admin-enforced"]; + }; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removing admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + "repos/delete-admin-branch-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** + * No Content + */ + "204": never; + "404": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/get-pull-request-review-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/vnd.github.luke-cage-preview+json": components["schemas"]["protected-branch-pull-request-review"]; + }; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + */ + "repos/update-pull-request-review-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody: { + "application/json": { + /** + * Specify which users and teams can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories. + */ + dismissal_restrictions?: { + /** + * The list of user `login`s with dismissal access + */ + users?: string[]; + /** + * The list of team `slug`s with dismissal access + */ + teams?: string[]; + }; + /** + * Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit. + */ + dismiss_stale_reviews?: boolean; + /** + * Blocks merging pull requests until [code owners](https://help.github.com/articles/about-code-owners/) have reviewed. + */ + require_code_owner_reviews?: boolean; + /** + * Specifies the number of reviewers required to approve pull requests. Use a number between 1 and 6. + */ + required_approving_review_count?: number; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["protected-branch-pull-request-review"]; + }; + "422": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/delete-pull-request-review-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** + * No Content + */ + "204": never; + "404": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of `true` indicates you must sign commits on this branch. For more information, see [Signing commits with GPG](https://help.github.com/articles/signing-commits-with-gpg) in GitHub Help. + * + * **Note**: You must enable branch protection to require signed commits. + */ + "repos/get-commit-signature-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["protected-branch-admin-enforced"]; + }; + "404": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits. + */ + "repos/create-commit-signature-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["protected-branch-admin-enforced"]; + }; + "404": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to disable required signed commits on a branch. You must enable branch protection to require signed commits. + */ + "repos/delete-commit-signature-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** + * No Content + */ + "204": never; + "404": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/get-status-checks-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["status-check-policy"]; + }; + "404": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled. + */ + "repos/update-status-check-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody: { + "application/json": { + /** + * Require branches to be up to date before merging. + */ + strict?: boolean; + /** + * The list of status checks to require in order to merge into this branch + */ + contexts?: string[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["status-check-policy"]; + }; + "404": unknown; + "422": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/remove-status-check-protection": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** + * No Content + */ + "204": never; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/get-all-status-check-contexts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": string[]; + }; + "404": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/add-status-check-contexts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody: { + "application/json": { + /** + * contexts parameter + */ + contexts: string[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": string[]; + }; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/set-status-check-contexts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody: { + "application/json": { + /** + * contexts parameter + */ + contexts: string[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": string[]; + }; + "404": unknown; + "422": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "repos/remove-status-check-contexts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody: { + "application/json": { + /** + * contexts parameter + */ + contexts: string[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": string[]; + }; + "404": unknown; + "422": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists who has access to this protected branch. + * + * **Note**: Users, apps, and teams `restrictions` are only available for organization-owned repositories. + */ + "repos/get-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["branch-restriction-policy"]; + }; + "404": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Disables the ability to restrict who can push to this branch. + */ + "repos/delete-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** + * No Content + */ + "204": never; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the GitHub Apps that have push access to this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + */ + "repos/get-apps-with-access-to-protected-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["integration"][]; + }; + "404": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified apps push access for this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * + * | Type | Description | + * | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/add-app-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody: { + "application/json": { + /** + * apps parameter + */ + apps: string[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["integration"][]; + }; + "422": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * + * | Type | Description | + * | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/set-app-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody: { + "application/json": { + /** + * apps parameter + */ + apps: string[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["integration"][]; + }; + "422": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of an app to push to this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * + * | Type | Description | + * | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/remove-app-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody: { + "application/json": { + /** + * apps parameter + */ + apps: string[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["integration"][]; + }; + "422": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the teams who have push access to this branch. The list includes child teams. + */ + "repos/get-teams-with-access-to-protected-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team"][]; + }; + "404": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified teams push access for this branch. You can also give push access to child teams. + * + * | Type | Description | + * | ------- | ------------------------------------------------------------------------------------------------------------------------------------------ | + * | `array` | The teams that can have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/add-team-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody: { + "application/json": { + /** + * teams parameter + */ + teams: string[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team"][]; + }; + "422": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams. + * + * | Type | Description | + * | ------- | ------------------------------------------------------------------------------------------------------------------------------------------ | + * | `array` | The teams that can have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/set-team-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody: { + "application/json": { + /** + * teams parameter + */ + teams: string[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team"][]; + }; + "422": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a team to push to this branch. You can also remove push access for child teams. + * + * | Type | Description | + * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Teams that should no longer have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/remove-team-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody: { + "application/json": { + /** + * teams parameter + */ + teams: string[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team"][]; + }; + "422": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the people who have push access to this branch. + */ + "repos/get-users-with-access-to-protected-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["simple-user"][]; + }; + "404": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified people push access for this branch. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/add-user-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody: { + "application/json": { + /** + * users parameter + */ + users: string[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["simple-user"][]; + }; + "422": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/set-user-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody: { + "application/json": { + /** + * users parameter + */ + users: string[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["simple-user"][]; + }; + "422": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a user to push to this branch. + * + * | Type | Description | + * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames of the people who should no longer have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + "repos/remove-user-access-restrictions": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + branch: components["parameters"]["branch"]; + }; + }; + requestBody: { + "application/json": { + /** + * users parameter + */ + users: string[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["simple-user"][]; + }; + "422": unknown; + }; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Creates a new check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to create check runs. + * + * In a check suite, GitHub limits the number of check runs with the same name to 1000. Once these check runs exceed 1000, GitHub will start to automatically delete older check runs. + */ + "checks/create": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * The name of the check. For example, "code-coverage". + */ + name: string; + /** + * The SHA of the commit. + */ + head_sha: string; + /** + * The URL of the integrator's site that has the full details of the check. If the integrator does not provide this, then the homepage of the GitHub app is used. + */ + details_url?: string; + /** + * A reference for the run on the integrator's system. + */ + external_id?: string; + /** + * The current status. Can be one of `queued`, `in_progress`, or `completed`. + */ + status?: "queued" | "in_progress" | "completed"; + /** + * The time that the check run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** + * **Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. Can be one of `success`, `failure`, `neutral`, `cancelled`, `skipped`, `timed_out`, or `action_required`. When the conclusion is `action_required`, additional details should be provided on the site specified by `details_url`. + * **Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. Only GitHub can change a check run conclusion to `stale`. + */ + conclusion?: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "skipped" + | "timed_out" + | "action_required"; + /** + * The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + completed_at?: string; + /** + * Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. See the [`output` object](https://docs.github.com/rest/reference/checks#output-object) description. + */ + output?: { + /** + * The title of the check run. + */ + title: string; + /** + * The summary of the check run. This parameter supports Markdown. + */ + summary: string; + /** + * The details of the check run. This parameter supports Markdown. + */ + text?: string; + /** + * Adds information from your analysis to specific lines of code. Annotations are visible on GitHub in the **Checks** and **Files changed** tab of the pull request. The Checks API limits the number of annotations to a maximum of 50 per API request. To create more than 50 annotations, you have to make multiple requests to the [Update a check run](https://docs.github.com/rest/reference/checks#update-a-check-run) endpoint. Each time you update the check run, annotations are appended to the list of annotations that already exist for the check run. For details about how you can view annotations on GitHub, see "[About status checks](https://help.github.com/articles/about-status-checks#checks)". See the [`annotations` object](https://docs.github.com/rest/reference/checks#annotations-object) description for details about how to use this parameter. + */ + annotations?: { + /** + * The path of the file to add an annotation to. For example, `assets/css/main.css`. + */ + path: string; + /** + * The start line of the annotation. + */ + start_line: number; + /** + * The end line of the annotation. + */ + end_line: number; + /** + * The start column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. + */ + start_column?: number; + /** + * The end column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. + */ + end_column?: number; + /** + * The level of the annotation. Can be one of `notice`, `warning`, or `failure`. + */ + annotation_level: "notice" | "warning" | "failure"; + /** + * A short description of the feedback for these lines of code. The maximum size is 64 KB. + */ + message: string; + /** + * The title that represents the annotation. The maximum size is 255 characters. + */ + title?: string; + /** + * Details about this annotation. The maximum size is 64 KB. + */ + raw_details?: string; + }[]; + /** + * Adds images to the output displayed in the GitHub pull request UI. See the [`images` object](https://docs.github.com/rest/reference/checks#images-object) description for details. + */ + images?: { + /** + * The alternative text for the image. + */ + alt: string; + /** + * The full URL of the image. + */ + image_url: string; + /** + * A short image description. + */ + caption?: string; + }[]; + }; + /** + * Displays a button on GitHub that can be clicked to alert your app to do additional tasks. For example, a code linting app can display a button that automatically fixes detected errors. The button created in this object is displayed after the check run completes. When a user clicks the button, GitHub sends the [`check_run.requested_action` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) to your app. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. See the [`actions` object](https://docs.github.com/rest/reference/checks#actions-object) description. To learn more about check runs and requested actions, see "[Check runs and requested actions](https://docs.github.com/rest/reference/checks#check-runs-and-requested-actions)." To learn more about check runs and requested actions, see "[Check runs and requested actions](https://docs.github.com/rest/reference/checks#check-runs-and-requested-actions)." + */ + actions?: { + /** + * The text to be displayed on a button in the web UI. The maximum size is 20 characters. + */ + label: string; + /** + * A short explanation of what this action would do. The maximum size is 40 characters. + */ + description: string; + /** + * A reference for the action on the integrator's system. The maximum size is 20 characters. + */ + identifier: string; + }[]; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["check-run"]; + }; + }; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Gets a single check run using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository. + */ + "checks/get": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_run_id: components["parameters"]["check_run_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["check-run"]; + }; + }; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Updates a check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to edit check runs. + */ + "checks/update": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_run_id: components["parameters"]["check_run_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The name of the check. For example, "code-coverage". + */ + name?: string; + /** + * The URL of the integrator's site that has the full details of the check. + */ + details_url?: string; + /** + * A reference for the run on the integrator's system. + */ + external_id?: string; + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** + * The current status. Can be one of `queued`, `in_progress`, or `completed`. + */ + status?: "queued" | "in_progress" | "completed"; + /** + * **Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. Can be one of `success`, `failure`, `neutral`, `cancelled`, `skipped`, `timed_out`, or `action_required`. + * **Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. Only GitHub can change a check run conclusion to `stale`. + */ + conclusion?: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "skipped" + | "timed_out" + | "action_required"; + /** + * The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + completed_at?: string; + /** + * Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. See the [`output` object](https://docs.github.com/rest/reference/checks#output-object-1) description. + */ + output?: { + /** + * **Required**. + */ + title?: string; + /** + * Can contain Markdown. + */ + summary: string; + /** + * Can contain Markdown. + */ + text?: string; + /** + * Adds information from your analysis to specific lines of code. Annotations are visible in GitHub's pull request UI. Annotations are visible in GitHub's pull request UI. The Checks API limits the number of annotations to a maximum of 50 per API request. To create more than 50 annotations, you have to make multiple requests to the [Update a check run](https://docs.github.com/rest/reference/checks#update-a-check-run) endpoint. Each time you update the check run, annotations are appended to the list of annotations that already exist for the check run. For details about annotations in the UI, see "[About status checks](https://help.github.com/articles/about-status-checks#checks)". See the [`annotations` object](https://docs.github.com/rest/reference/checks#annotations-object-1) description for details. + */ + annotations?: { + /** + * The path of the file to add an annotation to. For example, `assets/css/main.css`. + */ + path: string; + /** + * The start line of the annotation. + */ + start_line: number; + /** + * The end line of the annotation. + */ + end_line: number; + /** + * The start column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. + */ + start_column?: number; + /** + * The end column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values. + */ + end_column?: number; + /** + * The level of the annotation. Can be one of `notice`, `warning`, or `failure`. + */ + annotation_level: "notice" | "warning" | "failure"; + /** + * A short description of the feedback for these lines of code. The maximum size is 64 KB. + */ + message: string; + /** + * The title that represents the annotation. The maximum size is 255 characters. + */ + title?: string; + /** + * Details about this annotation. The maximum size is 64 KB. + */ + raw_details?: string; + }[]; + /** + * Adds images to the output displayed in the GitHub pull request UI. See the [`images` object](https://docs.github.com/rest/reference/checks#annotations-object-1) description for details. + */ + images?: { + /** + * The alternative text for the image. + */ + alt: string; + /** + * The full URL of the image. + */ + image_url: string; + /** + * A short image description. + */ + caption?: string; + }[]; + }; + /** + * Possible further actions the integrator can perform, which a user may trigger. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. See the [`actions` object](https://docs.github.com/rest/reference/checks#actions-object) description. To learn more about check runs and requested actions, see "[Check runs and requested actions](https://docs.github.com/rest/reference/checks#check-runs-and-requested-actions)." + */ + actions?: { + /** + * The text to be displayed on a button in the web UI. The maximum size is 20 characters. + */ + label: string; + /** + * A short explanation of what this action would do. The maximum size is 40 characters. + */ + description: string; + /** + * A reference for the action on the integrator's system. The maximum size is 20 characters. + */ + identifier: string; + }[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["check-run"]; + }; + }; + }; + /** + * Lists annotations for a check run using the annotation `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get annotations for a check run. OAuth Apps and authenticated users must have the `repo` scope to get annotations for a check run in a private repository. + */ + "checks/list-annotations": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_run_id: components["parameters"]["check_run_id"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["check-annotation"][]; + }; + }; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * By default, check suites are automatically created when you create a [check run](https://docs.github.com/rest/reference/checks#check-runs). You only need to use this endpoint for manually creating check suites when you've disabled automatic creation using "[Update repository preferences for check suites](https://docs.github.com/rest/reference/checks#update-repository-preferences-for-check-suites)". Your GitHub App must have the `checks:write` permission to create check suites. + */ + "checks/create-suite": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * The sha of the head commit. + */ + head_sha: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["check-suite"]; + }; + }; + }; + /** + * Changes the default automatic flow when creating check suites. By default, a check suite is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually [Create a check suite](https://docs.github.com/rest/reference/checks#create-a-check-suite). You must have admin permissions in the repository to set preferences for check suites. + */ + "checks/set-suites-preferences": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * Enables or disables automatic creation of CheckSuite events upon pushes to the repository. Enabled by default. See the [`auto_trigger_checks` object](https://docs.github.com/rest/reference/checks#auto_trigger_checks-object) description for details. + */ + auto_trigger_checks?: { + /** + * The `id` of the GitHub App. + */ + app_id: number; + /** + * Set to `true` to enable automatic creation of CheckSuite events upon pushes to the repository, or `false` to disable them. + */ + setting: boolean; + }[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["check-suite-preference"]; + }; + }; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * Gets a single check suite using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check suites. OAuth Apps and authenticated users must have the `repo` scope to get check suites in a private repository. + */ + "checks/get-suite": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_suite_id: components["parameters"]["check_suite_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["check-suite"]; + }; + }; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Lists check runs for a check suite using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository. + */ + "checks/list-for-suite": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_suite_id: components["parameters"]["check_suite_id"]; + }; + query: { + check_name?: components["parameters"]["check_name"]; + status?: components["parameters"]["status"]; + /** + * Filters check runs by their `completed_at` timestamp. Can be one of `latest` (returning the most recent check runs) or `all`. + */ + filter?: "latest" | "all"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + check_runs?: components["schemas"]["check-run"][]; + }; + }; + }; + }; + /** + * Triggers GitHub to rerequest an existing check suite, without pushing new code to a repository. This endpoint will trigger the [`check_suite` webhook](https://docs.github.com/webhooks/event-payloads/#check_suite) event with the action `rerequested`. When a check suite is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * To rerequest a check suite, your GitHub App must have the `checks:read` permission on a private repository or pull access to a public repository. + */ + "checks/rerequest-suite": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + check_suite_id: components["parameters"]["check_suite_id"]; + }; + }; + responses: { + /** + * response + */ + "201": unknown; + }; + }; + /** + * Lists all open code scanning alerts for the default branch (usually `main` or `master`). You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` read permission to use this endpoint. + */ + "code-scanning/list-alerts-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + /** + * Set to `open`, `fixed`, or `dismissed` to list code scanning alerts in a specific state. + */ + state?: components["schemas"]["code-scanning-alert-state"]; + /** + * Set a full Git reference to list alerts for a specific branch. The `ref` must be formatted as `refs/heads/`. + */ + ref?: components["schemas"]["code-scanning-alert-ref"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["code-scanning-alert-code-scanning-alert-items"][]; + }; + /** + * Response if GitHub Advanced Security is not enabled for this repository + */ + "403": unknown; + /** + * Response if the ref does not match an existing ref + */ + "404": unknown; + "503": unknown; + }; + }; + /** + * Gets a single code scanning alert. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` read permission to use this endpoint. + * + * The security `alert_number` is found at the end of the security alert's URL. For example, the security alert ID for `https://github.com/Octo-org/octo-repo/security/code-scanning/88` is `88`. + */ + "code-scanning/get-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: number; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["code-scanning-alert-code-scanning-alert"]; + }; + /** + * Response if GitHub Advanced Security is not enabled for this repository + */ + "403": unknown; + "404": unknown; + "503": unknown; + }; + }; + /** + * Updates the status of a single code scanning alert. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` write permission to use this endpoint. + */ + "code-scanning/update-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["alert_number"]; + }; + }; + requestBody: { + "application/json": { + state: components["schemas"]["code-scanning-alert-set-state"]; + dismissed_reason?: components["schemas"]["code-scanning-alert-dismissed-reason"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["code-scanning-alert-code-scanning-alert"]; + }; + /** + * Response if the repository is archived, or if GitHub Advanced Security is not enabled for this repository + */ + "403": unknown; + /** + * Response when code scanning is not available and you should try again at a later time + */ + "503": unknown; + }; + }; + /** + * List the details of recent code scanning analyses for a repository. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` read permission to use this endpoint. + */ + "code-scanning/list-recent-analyses": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + /** + * Set a full Git reference to list alerts for a specific branch. The `ref` must be formatted as `refs/heads/`. + */ + ref?: components["schemas"]["code-scanning-analysis-ref"]; + /** + * Set a single code scanning tool name to filter alerts by tool. + */ + tool_name?: components["schemas"]["code-scanning-analysis-tool-name"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["code-scanning-analysis-code-scanning-analysis"][]; + }; + /** + * Response if GitHub Advanced Security is not enabled for this repository + */ + "403": unknown; + }; + }; + /** + * Upload a SARIF file containing the results of a code scanning analysis to make the results available in a repository. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` write permission to use this endpoint. + */ + "code-scanning/upload-sarif": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + commit_sha: components["schemas"]["code-scanning-analysis-commit-sha"]; + ref: components["schemas"]["code-scanning-analysis-ref"]; + sarif: components["schemas"]["code-scanning-analysis-sarif-file"]; + /** + * The base directory used in the analysis, as it appears in the SARIF file. + * This property is used to convert file paths from absolute to relative, so that alerts can be mapped to their correct location in the repository. + */ + checkout_uri?: string; + /** + * The time that the analysis run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + tool_name: components["schemas"]["code-scanning-analysis-tool-name"]; + }; + }; + responses: { + /** + * response + */ + "202": unknown; + /** + * Response if the `sarif` field is invalid + */ + "400": unknown; + /** + * Response if the repository is archived, or if GitHub Advanced Security is not enabled for this repository + */ + "403": unknown; + /** + * Response if `commit_sha` or `ref` cannot be found + */ + "404": unknown; + /** + * Response if the `sarif` field is too large + */ + "413": unknown; + }; + }; + /** + * For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * + * Team members will include the members of child teams. + */ + "repos/list-collaborators": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + /** + * Filter collaborators returned by their affiliation. Can be one of: + * \* `outside`: All outside collaborators of an organization-owned repository. + * \* `direct`: All collaborators with permissions to an organization-owned repository, regardless of organization membership status. + * \* `all`: All collaborators the authenticated user can see. + */ + affiliation?: "outside" | "direct" | "all"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["collaborator"][]; + }; + "404": unknown; + }; + }; + /** + * For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * + * Team members will include the members of child teams. + */ + "repos/check-collaborator": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Response if user is a collaborator + */ + "204": never; + /** + * Response if user is not a collaborator + */ + "404": unknown; + }; + }; + /** + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + * + * For more information the permission levels, see "[Repository permission levels for an organization](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * + * The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the [repository invitations API endpoints](https://docs.github.com/rest/reference/repos#invitations). + * + * **Rate limits** + * + * To prevent abuse, you are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository. + */ + "repos/add-collaborator": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + username: components["parameters"]["username"]; + }; + }; + requestBody: { + "application/json": { + /** + * The permission to grant the collaborator. **Only valid on organization-owned repositories.** Can be one of: + * \* `pull` - can pull, but not push to or administer this repository. + * \* `push` - can pull and push, but not administer this repository. + * \* `admin` - can pull, push and administer this repository. + * \* `maintain` - Recommended for project managers who need to manage the repository without access to sensitive or destructive actions. + * \* `triage` - Recommended for contributors who need to proactively manage issues and pull requests without write access. + */ + permission?: "pull" | "push" | "admin" | "maintain" | "triage"; + permissions?: string; + }; + }; + responses: { + /** + * Response when a new invitation is created + */ + "201": { + "application/json": components["schemas"]["repository-invitation"]; + }; + /** + * Response when person is already a collaborator + */ + "204": never; + "403": unknown; + "422": unknown; + }; + }; + "repos/remove-collaborator": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Checks the repository permission of a collaborator. The possible repository permissions are `admin`, `write`, `read`, and `none`. + */ + "repos/get-collaborator-permission-level": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Response if user has admin permissions + */ + "200": { + "application/json": components["schemas"]["repository-collaborator-permission"]; + }; + "404": unknown; + }; + }; + /** + * Commit Comments use [these custom media types](https://docs.github.com/rest/reference/repos#custom-media-types). You can read more about the use of media types in the API [here](https://docs.github.com/rest/overview/media-types/). + * + * Comments are ordered by ascending ID. + */ + "repos/list-commit-comments-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["commit-comment"][]; + }; + }; + }; + "repos/get-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["commit-comment"]; + }; + "404": unknown; + }; + }; + "repos/update-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The contents of the comment + */ + body: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["commit-comment"]; + }; + "404": unknown; + }; + }; + "repos/delete-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "404": unknown; + }; + }; + /** + * List the reactions to a [commit comment](https://docs.github.com/rest/reference/repos#comments). + */ + "reactions/list-for-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment_id"]; + }; + query: { + /** + * Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a commit comment. + */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["reaction"][]; + }; + "404": unknown; + "415": unknown; + }; + }; + /** + * Create a reaction to a [commit comment](https://docs.github.com/rest/reference/repos#comments). A response with a `Status: 200 OK` means that you already added the reaction type to this commit comment. + */ + "reactions/create-for-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the commit comment. + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + responses: { + /** + * Reaction exists + */ + "200": { + "application/json": components["schemas"]["reaction"]; + }; + /** + * Reaction created + */ + "201": { + "application/json": components["schemas"]["reaction"]; + }; + "415": unknown; + "422": unknown; + }; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to a [commit comment](https://docs.github.com/rest/reference/repos#comments). + */ + "reactions/delete-for-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment_id"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "repos/list-commits": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + /** + * SHA or branch to start listing commits from. Default: the repository’s default branch (usually `master`). + */ + sha?: string; + /** + * Only commits containing this file path will be returned. + */ + path?: string; + /** + * GitHub login or email address by which to filter by commit author. + */ + author?: string; + since?: components["parameters"]["since"]; + /** + * Only commits before this date will be returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + until?: string; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["commit"][]; + }; + "400": unknown; + "404": unknown; + "409": unknown; + "500": unknown; + }; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch. + */ + "repos/list-branches-for-head-commit": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + commit_sha: components["parameters"]["commit_sha"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["branch-short"][]; + }; + "415": unknown; + "422": unknown; + }; + }; + /** + * Use the `:commit_sha` to specify the commit that will have its comments listed. + */ + "repos/list-comments-for-commit": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + commit_sha: components["parameters"]["commit_sha"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["commit-comment"][]; + }; + }; + }; + /** + * Create a comment for a commit using its `:commit_sha`. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + */ + "repos/create-commit-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + commit_sha: components["parameters"]["commit_sha"]; + }; + }; + requestBody: { + "application/json": { + /** + * The contents of the comment. + */ + body: string; + /** + * Relative path of the file to comment on. + */ + path?: string; + /** + * Line index in the diff to comment on. + */ + position?: number; + /** + * **Deprecated**. Use **position** parameter instead. Line number in the file to comment on. + */ + line?: number; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["commit-comment"]; + }; + "403": unknown; + "422": unknown; + }; + }; + /** + * Lists all pull requests containing the provided commit SHA, which can be from any point in the commit history. The results will include open and closed pull requests. Additional preview headers may be required to see certain details for associated pull requests, such as whether a pull request is in a draft state. For more information about previews that might affect this endpoint, see the [List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests) endpoint. + */ + "repos/list-pull-requests-associated-with-commit": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + commit_sha: components["parameters"]["commit_sha"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["pull-request-simple"][]; + }; + "415": unknown; + }; + }; + /** + * Returns the contents of a single commit reference. You must have `read` access for the repository to use this endpoint. + * + * **Note:** If there are more than 300 files in the commit diff, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing. + * + * You can pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch `diff` and `patch` formats. Diffs with binary data will have no `patch` property. + * + * To return only the SHA-1 hash of the commit reference, you can provide the `sha` custom [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) in the `Accept` header. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "repos/get-commit": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** + * ref+ parameter + */ + ref: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["commit"]; + }; + "404": unknown; + "422": unknown; + "500": unknown; + }; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Lists check runs for a commit ref. The `ref` can be a SHA, branch name, or a tag name. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository. + */ + "checks/list-for-ref": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** + * ref+ parameter + */ + ref: string; + }; + query: { + check_name?: components["parameters"]["check_name"]; + status?: components["parameters"]["status"]; + /** + * Filters check runs by their `completed_at` timestamp. Can be one of `latest` (returning the most recent check runs) or `all`. + */ + filter?: "latest" | "all"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + check_runs?: components["schemas"]["check-run"][]; + }; + }; + }; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * Lists check suites for a commit `ref`. The `ref` can be a SHA, branch name, or a tag name. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to list check suites. OAuth Apps and authenticated users must have the `repo` scope to get check suites in a private repository. + */ + "checks/list-suites-for-ref": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** + * ref+ parameter + */ + ref: string; + }; + query: { + /** + * Filters check suites by GitHub App `id`. + */ + app_id?: number; + check_name?: components["parameters"]["check_name"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + check_suites?: components["schemas"]["check-suite"][]; + }; + }; + }; + }; + /** + * Users with pull access in a repository can access a combined view of commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. + * + * The most recent status for each context is returned, up to 100. This field [paginates](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination) if there are over 100 contexts. + * + * Additionally, a combined `state` is returned. The `state` is one of: + * + * * **failure** if any of the contexts report as `error` or `failure` + * * **pending** if there are no statuses or a context is `pending` + * * **success** if the latest status for all contexts is `success` + */ + "repos/get-combined-status-for-ref": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** + * ref+ parameter + */ + ref: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["combined-commit-status"]; + }; + "404": unknown; + }; + }; + /** + * Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one. + * + * This resource is also available via a legacy route: `GET /repos/:owner/:repo/statuses/:ref`. + */ + "repos/list-commit-statuses-for-ref": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** + * ref+ parameter + */ + ref: string; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["status"][]; + }; + "301": never; + }; + }; + /** + * Returns the contents of the repository's code of conduct file, if one is detected. + * + * A code of conduct is detected if there is a file named `CODE_OF_CONDUCT` in the root directory of the repository. GitHub detects which code of conduct it is using fuzzy matching. + */ + "codes-of-conduct/get-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["code-of-conduct"]; + }; + }; + }; + /** + * This endpoint will return all community profile metrics, including an + * overall health score, repository description, the presence of documentation, detected + * code of conduct, detected license, and the presence of ISSUE\_TEMPLATE, PULL\_REQUEST\_TEMPLATE, + * README, and CONTRIBUTING files. + * + * The `health_percentage` score is defined as a percentage of how many of + * these four documents are present: README, CONTRIBUTING, LICENSE, and + * CODE_OF_CONDUCT. For example, if all four documents are present, then + * the `health_percentage` is `100`. If only one is present, then the + * `health_percentage` is `25`. + * + * `content_reports_enabled` is only returned for organization-owned repositories. + */ + "repos/get-community-profile-metrics": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["community-profile"]; + }; + }; + }; + /** + * Both `:base` and `:head` must be branch names in `:repo`. To compare branches across other repositories in the same network as `:repo`, use the format `:branch`. + * + * The response from the API is equivalent to running the `git log base..head` command; however, commits are returned in chronological order. Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * **Working with large comparisons** + * + * The response will include a comparison of up to 250 commits. If you are working with a larger commit range, you can use the [List commits](https://docs.github.com/rest/reference/repos#list-commits) to enumerate all commits in the range. + * + * For comparisons with extremely large diffs, you may receive an error response indicating that the diff took too long + * to generate. You can typically resolve this error by using a smaller commit range. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "repos/compare-commits": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + base: string; + head: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["commit-comparison"]; + }; + "404": unknown; + "500": unknown; + }; + }; + /** + * Gets the contents of a file or directory in a repository. Specify the file path or directory in `:path`. If you omit + * `:path`, you will receive the contents of the repository's root directory. See the description below regarding what the API response includes for directories. + * + * Files and symlinks support [a custom media type](https://docs.github.com/rest/reference/repos#custom-media-types) for + * retrieving the raw content or rendered HTML (when supported). All content types support [a custom media + * type](https://docs.github.com/rest/reference/repos#custom-media-types) to ensure the content is returned in a consistent + * object format. + * + * **Note**: + * * To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/reference/git#trees). + * * This API has an upper limit of 1,000 files for a directory. If you need to retrieve more files, use the [Git Trees + * API](https://docs.github.com/rest/reference/git#get-a-tree). + * * This API supports files up to 1 megabyte in size. + * + * #### If the content is a directory + * The response will be an array of objects, one object for each item in the directory. + * When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value + * _should_ be "submodule". This behavior exists in API v3 [for backwards compatibility purposes](https://git.io/v1YCW). + * In the next major version of the API, the type will be returned as "submodule". + * + * #### If the content is a symlink + * If the requested `:path` points to a symlink, and the symlink's target is a normal file in the repository, then the + * API responds with the content of the file (in the format shown in the example. Otherwise, the API responds with an object + * describing the symlink itself. + * + * #### If the content is a submodule + * The `submodule_git_url` identifies the location of the submodule repository, and the `sha` identifies a specific + * commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out + * the submodule at that specific commit. + * + * If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the + * github.com URLs (`html_url` and `_links["html"]`) will have null values. + */ + "repos/get-content": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** + * path+ parameter + */ + path: string; + }; + query: { + /** + * The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`) + */ + ref?: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/vnd.github.v3.object": components["schemas"]["content-tree"]; + "application/json": + | components["schemas"]["content-directory"] + | components["schemas"]["content-file"] + | components["schemas"]["content-symlink"] + | components["schemas"]["content-submodule"]; + }; + "302": never; + "403": unknown; + "404": unknown; + }; + }; + /** + * Creates a new file or replaces an existing file in a repository. + */ + "repos/create-or-update-file-contents": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** + * path+ parameter + */ + path: string; + }; + }; + requestBody: { + "application/json": { + /** + * The commit message. + */ + message: string; + /** + * The new file content, using Base64 encoding. + */ + content: string; + /** + * **Required if you are updating a file**. The blob SHA of the file being replaced. + */ + sha?: string; + /** + * The branch name. Default: the repository’s default branch (usually `master`) + */ + branch?: string; + /** + * The person that committed the file. Default: the authenticated user. + */ + committer?: { + /** + * The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted. + */ + name: string; + /** + * The email of the author or committer of the commit. You'll receive a `422` status code if `email` is omitted. + */ + email: string; + date?: string; + }; + /** + * The author of the file. Default: The `committer` or the authenticated user if you omit `committer`. + */ + author?: { + /** + * The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted. + */ + name: string; + /** + * The email of the author or committer of the commit. You'll receive a `422` status code if `email` is omitted. + */ + email: string; + date?: string; + }; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["file-commit"]; + }; + /** + * response + */ + "201": { + "application/json": components["schemas"]["file-commit"]; + }; + "404": unknown; + "409": unknown; + "422": unknown; + }; + }; + /** + * Deletes a file in a repository. + * + * You can provide an additional `committer` parameter, which is an object containing information about the committer. Or, you can provide an `author` parameter, which is an object containing information about the author. + * + * The `author` section is optional and is filled in with the `committer` information if omitted. If the `committer` information is omitted, the authenticated user's information is used. + * + * You must provide values for both `name` and `email`, whether you choose to use `author` or `committer`. Otherwise, you'll receive a `422` status code. + */ + "repos/delete-file": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** + * path+ parameter + */ + path: string; + }; + }; + requestBody: { + "application/json": { + /** + * The commit message. + */ + message: string; + /** + * The blob SHA of the file being replaced. + */ + sha: string; + /** + * The branch name. Default: the repository’s default branch (usually `master`) + */ + branch?: string; + /** + * object containing information about the committer. + */ + committer?: { + /** + * The name of the author (or committer) of the commit + */ + name?: string; + /** + * The email of the author (or committer) of the commit + */ + email?: string; + }; + /** + * object containing information about the author. + */ + author?: { + /** + * The name of the author (or committer) of the commit + */ + name?: string; + /** + * The email of the author (or committer) of the commit + */ + email?: string; + }; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["file-commit"]; + }; + "404": unknown; + "409": unknown; + "422": unknown; + "503": unknown; + }; + }; + /** + * Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API v3 caches contributor data to improve performance. + * + * GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information. + */ + "repos/list-contributors": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + /** + * Set to `1` or `true` to include anonymous contributors in results. + */ + anon?: string; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * Response if repository contains content + */ + "200": { + "application/json": components["schemas"]["contributor"][]; + }; + /** + * Response if repository is empty + */ + "204": never; + "403": unknown; + "404": unknown; + }; + }; + /** + * Simple filtering of deployments is available via query parameters: + */ + "repos/list-deployments": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + /** + * The SHA recorded at creation time. + */ + sha?: string; + /** + * The name of the ref. This can be a branch, tag, or SHA. + */ + ref?: string; + /** + * The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`). + */ + task?: string; + /** + * The name of the environment that was deployed to (e.g., `staging` or `production`). + */ + environment?: string; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["deployment"][]; + }; + }; + }; + /** + * Deployments offer a few configurable parameters with certain defaults. + * + * The `ref` parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them + * before we merge a pull request. + * + * The `environment` parameter allows deployments to be issued to different runtime environments. Teams often have + * multiple environments for verifying their applications, such as `production`, `staging`, and `qa`. This parameter + * makes it easier to track which environments have requested deployments. The default environment is `production`. + * + * The `auto_merge` parameter is used to ensure that the requested ref is not behind the repository's default branch. If + * the ref _is_ behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds, + * the API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will + * return a failure response. + * + * By default, [commit statuses](https://docs.github.com/rest/reference/repos#statuses) for every submitted context must be in a `success` + * state. The `required_contexts` parameter allows you to specify a subset of contexts that must be `success`, or to + * specify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do + * not require any contexts or create any commit statuses, the deployment will always succeed. + * + * The `payload` parameter is available for any extra information that a deployment system might need. It is a JSON text + * field that will be passed on when a deployment event is dispatched. + * + * The `task` parameter is used by the deployment system to allow different execution paths. In the web world this might + * be `deploy:migrations` to run schema changes on the system. In the compiled world this could be a flag to compile an + * application with debugging enabled. + * + * Users with `repo` or `repo_deployment` scopes can create a deployment for a given ref. + * + * #### Merged branch response + * You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating + * a deployment. This auto-merge happens when: + * * Auto-merge option is enabled in the repository + * * Topic branch does not include the latest changes on the base branch, which is `master` in the response example + * * There are no merge conflicts + * + * If there are no new commits in the base branch, a new request to create a deployment should give a successful + * response. + * + * #### Merge conflict response + * This error happens when the `auto_merge` option is enabled and when the default branch (in this case `master`), can't + * be merged into the branch that's being deployed (in this case `topic-branch`), due to merge conflicts. + * + * #### Failed commit status checks + * This error happens when the `required_contexts` parameter indicates that one or more contexts need to have a `success` + * status for the commit to be deployed, but one or more of the required contexts do not have a state of `success`. + */ + "repos/create-deployment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * The ref to deploy. This can be a branch, tag, or SHA. + */ + ref: string; + /** + * Specifies a task to execute (e.g., `deploy` or `deploy:migrations`). + */ + task?: string; + /** + * Attempts to automatically merge the default branch into the requested ref, if it's behind the default branch. + */ + auto_merge?: boolean; + /** + * The [status](https://docs.github.com/rest/reference/repos#statuses) contexts to verify against commit status checks. If you omit this parameter, GitHub verifies all unique contexts before creating a deployment. To bypass checking entirely, pass an empty array. Defaults to all unique contexts. + */ + required_contexts?: string[]; + /** + * JSON payload with extra information about the deployment. + */ + payload?: string; + /** + * Name for the target deployment environment (e.g., `production`, `staging`, `qa`). + */ + environment?: string; + /** + * Short description of the deployment. + */ + description?: string | null; + /** + * Specifies if the given environment is specific to the deployment and will no longer exist at some point in the future. Default: `false` + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type. **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type. + */ + transient_environment?: boolean; + /** + * Specifies if the given environment is one that end-users directly interact with. Default: `true` when `environment` is `production` and `false` otherwise. + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type. + */ + production_environment?: boolean; + created_at?: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["deployment"]; + }; + /** + * Merged branch response + */ + "202": { + "application/json": { message?: string }; + }; + /** + * response + */ + "409": { + "application/json": { message?: string; documentation_url?: string }; + }; + "422": unknown; + }; + }; + "repos/get-deployment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + deployment_id: components["parameters"]["deployment_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["deployment"]; + }; + "404": unknown; + }; + }; + /** + * To ensure there can always be an active deployment, you can only delete an _inactive_ deployment. Anyone with `repo` or `repo_deployment` scopes can delete an inactive deployment. + * + * To set a deployment as inactive, you must: + * + * * Create a new deployment that is active so that the system has a record of the current state, then delete the previously active deployment. + * * Mark the active deployment as inactive by adding any non-successful deployment status. + * + * For more information, see "[Create a deployment](https://docs.github.com/rest/reference/repos/deployments/#create-a-deployment)" and "[Create a deployment status](https://docs.github.com/rest/reference/repos#create-a-deployment-status)." + */ + "repos/delete-deployment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + deployment_id: components["parameters"]["deployment_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "404": unknown; + "422": unknown; + }; + }; + /** + * Users with pull access can view deployment statuses for a deployment: + */ + "repos/list-deployment-statuses": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + deployment_id: components["parameters"]["deployment_id"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["deployment-status"][]; + }; + "404": unknown; + }; + }; + /** + * Users with `push` access can create deployment statuses for a given deployment. + * + * GitHub Apps require `read & write` access to "Deployments" and `read-only` access to "Repo contents" (for private repos). OAuth Apps require the `repo_deployment` scope. + */ + "repos/create-deployment-status": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + deployment_id: components["parameters"]["deployment_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The state of the status. Can be one of `error`, `failure`, `inactive`, `in_progress`, `queued` `pending`, or `success`. **Note:** To use the `inactive` state, you must provide the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type. To use the `in_progress` and `queued` states, you must provide the [`application/vnd.github.flash-preview+json`](https://docs.github.com/rest/overview/api-previews#deployment-statuses) custom media type. When you set a transient deployment to `inactive`, the deployment will be shown as `destroyed` in GitHub. + */ + state: + | "error" + | "failure" + | "inactive" + | "in_progress" + | "queued" + | "pending" + | "success"; + /** + * The target URL to associate with this status. This URL should contain output to keep the user updated while the task is running or serve as historical information for what happened in the deployment. **Note:** It's recommended to use the `log_url` parameter, which replaces `target_url`. + */ + target_url?: string; + /** + * The full URL of the deployment's output. This parameter replaces `target_url`. We will continue to accept `target_url` to support legacy uses, but we recommend replacing `target_url` with `log_url`. Setting `log_url` will automatically set `target_url` to the same value. Default: `""` + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type. **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type. + */ + log_url?: string; + /** + * A short description of the status. The maximum description length is 140 characters. + */ + description?: string; + /** + * Name for the target deployment environment, which can be changed when setting a deploy status. For example, `production`, `staging`, or `qa`. **Note:** This parameter requires you to use the [`application/vnd.github.flash-preview+json`](https://docs.github.com/rest/overview/api-previews#deployment-statuses) custom media type. + */ + environment?: "production" | "staging" | "qa"; + /** + * Sets the URL for accessing your environment. Default: `""` + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type. **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type. + */ + environment_url?: string; + /** + * Adds a new `inactive` status to all prior non-transient, non-production environment deployments with the same repository and `environment` name as the created status's deployment. An `inactive` status is only added to deployments that had a `success` state. Default: `true` + * **Note:** To add an `inactive` status to `production` environments, you must use the [`application/vnd.github.flash-preview+json`](https://docs.github.com/rest/overview/api-previews#deployment-statuses) custom media type. + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://docs.github.com/rest/overview/api-previews#enhanced-deployments) custom media type. + */ + auto_inactive?: boolean; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["deployment-status"]; + }; + "422": unknown; + }; + }; + /** + * Users with pull access can view a deployment status for a deployment: + */ + "repos/get-deployment-status": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + deployment_id: components["parameters"]["deployment_id"]; + status_id: number; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["deployment-status"]; + }; + "404": unknown; + "415": unknown; + }; + }; + /** + * You can use this endpoint to trigger a webhook event called `repository_dispatch` when you want activity that happens outside of GitHub to trigger a GitHub Actions workflow or GitHub App webhook. You must configure your GitHub Actions workflow or GitHub App to run when the `repository_dispatch` event occurs. For an example `repository_dispatch` webhook payload, see "[RepositoryDispatchEvent](https://docs.github.com/webhooks/event-payloads/#repository_dispatch)." + * + * The `client_payload` parameter is available for any extra information that your workflow might need. This parameter is a JSON payload that will be passed on when the webhook event is dispatched. For example, the `client_payload` can include a message that a user would like to send using a GitHub Actions workflow. Or the `client_payload` can be used as a test to debug your workflow. + * + * To give you write access to the repository, you must use a personal access token with the `repo` scope. For more information, see "[Creating a personal access token for the command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line)" in the GitHub Help documentation. + * + * This input example shows how you can use the `client_payload` as a test to debug your workflow. + */ + "repos/create-dispatch-event": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * A custom webhook event name. + */ + event_type: string; + /** + * JSON payload with extra information about the webhook event that your action or worklow may use. + */ + client_payload?: { [key: string]: any }; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "422": unknown; + }; + }; + "activity/list-repo-events": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + "repos/list-forks": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + /** + * The sort order. Can be either `newest`, `oldest`, or `stargazers`. + */ + sort?: "newest" | "oldest" | "stargazers"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["minimal-repository"][]; + }; + "400": unknown; + }; + }; + /** + * Create a fork for the authenticated user. + * + * **Note**: Forking a Repository happens asynchronously. You may have to wait a short period of time before you can access the git objects. If this takes longer than 5 minutes, be sure to contact [GitHub Support](https://github.com/contact) or [GitHub Premium Support](https://premium.githubsupport.com). + */ + "repos/create-fork": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * Optional parameter to specify the organization name if forking into an organization. + */ + organization?: string; + }; + }; + responses: { + /** + * response + */ + "202": { + "application/json": components["schemas"]["repository"]; + }; + "400": unknown; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + "git/create-blob": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * The new blob's content. + */ + content: string; + /** + * The encoding used for `content`. Currently, `"utf-8"` and `"base64"` are supported. + */ + encoding?: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["short-blob"]; + }; + "403": unknown; + "404": unknown; + "409": unknown; + "422": unknown; + }; + }; + /** + * The `content` in the response will always be Base64 encoded. + * + * _Note_: This API supports blobs up to 100 megabytes in size. + */ + "git/get-blob": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + file_sha: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["blob"]; + }; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + /** + * Creates a new Git [commit object](https://git-scm.com/book/en/v1/Git-Internals-Git-Objects#Commit-Objects). + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "git/create-commit": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * The commit message + */ + message: string; + /** + * The SHA of the tree object this commit points to + */ + tree: string; + /** + * The SHAs of the commits that were the parents of this commit. If omitted or empty, the commit will be written as a root commit. For a single parent, an array of one SHA should be provided; for a merge commit, an array of more than one should be provided. + */ + parents?: string[]; + /** + * Information about the author of the commit. By default, the `author` will be the authenticated user and the current date. See the `author` and `committer` object below for details. + */ + author?: { + /** + * The name of the author (or committer) of the commit + */ + name?: string; + /** + * The email of the author (or committer) of the commit + */ + email?: string; + /** + * Indicates when this commit was authored (or committed). This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + date?: string; + }; + /** + * Information about the person who is making the commit. By default, `committer` will use the information set in `author`. See the `author` and `committer` object below for details. + */ + committer?: { + /** + * The name of the author (or committer) of the commit + */ + name?: string; + /** + * The email of the author (or committer) of the commit + */ + email?: string; + /** + * Indicates when this commit was authored (or committed). This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + date?: string; + }; + /** + * The [PGP signature](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) of the commit. GitHub adds the signature to the `gpgsig` header of the created commit. For a commit signature to be verifiable by Git or GitHub, it must be an ASCII-armored detached PGP signature over the string commit as it would be written to the object database. To pass a `signature` parameter, you need to first manually create a valid PGP signature, which can be complicated. You may find it easier to [use the command line](https://git-scm.com/book/id/v2/Git-Tools-Signing-Your-Work) to create signed commits. + */ + signature?: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["git-commit"]; + }; + "404": unknown; + "422": unknown; + }; + }; + /** + * Gets a Git [commit object](https://git-scm.com/book/en/v1/Git-Internals-Git-Objects#Commit-Objects). + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "git/get-commit": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + commit_sha: components["parameters"]["commit_sha"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["git-commit"]; + }; + "404": unknown; + }; + }; + /** + * Returns an array of references from your Git database that match the supplied name. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't exist in the repository, but existing refs start with `:ref`, they will be returned as an array. + * + * When you use this endpoint without providing a `:ref`, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just `heads` and `tags`. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * If you request matching references for a branch named `feature` but the branch `feature` doesn't exist, the response can still include other matching head refs that start with the word `feature`, such as `featureA` and `featureB`. + */ + "git/list-matching-refs": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** + * ref+ parameter + */ + ref: string; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["git-ref"][]; + }; + }; + }; + /** + * Returns a single reference from your Git database. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't match an existing ref, a `404` is returned. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + */ + "git/get-ref": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** + * ref+ parameter + */ + ref: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["git-ref"]; + }; + "404": unknown; + }; + }; + /** + * Creates a reference for your repository. You are unable to create new references for empty repositories, even if the commit SHA-1 hash used exists. Empty repositories are repositories without branches. + */ + "git/create-ref": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * The name of the fully qualified reference (ie: `refs/heads/master`). If it doesn't start with 'refs' and have at least two slashes, it will be rejected. + */ + ref: string; + /** + * The SHA1 value for this reference. + */ + sha: string; + key?: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["git-ref"]; + }; + "422": unknown; + }; + }; + "git/update-ref": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** + * ref+ parameter + */ + ref: string; + }; + }; + requestBody: { + "application/json": { + /** + * The SHA1 value to set this reference to + */ + sha: string; + /** + * Indicates whether to force the update or to make sure the update is a fast-forward update. Leaving this out or setting it to `false` will make sure you're not overwriting work. + */ + force?: boolean; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["git-ref"]; + }; + "422": unknown; + }; + }; + "git/delete-ref": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** + * ref+ parameter + */ + ref: string; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "422": unknown; + }; + }; + /** + * Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then [create](https://docs.github.com/rest/reference/git#create-a-reference) the `refs/tags/[tag]` reference. If you want to create a lightweight tag, you only have to [create](https://docs.github.com/rest/reference/git#create-a-reference) the tag reference - this call would be unnecessary. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "git/create-tag": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * The tag's name. This is typically a version (e.g., "v0.0.1"). + */ + tag: string; + /** + * The tag message. + */ + message: string; + /** + * The SHA of the git object this is tagging. + */ + object: string; + /** + * The type of the object we're tagging. Normally this is a `commit` but it can also be a `tree` or a `blob`. + */ + type: "commit" | "tree" | "blob"; + /** + * An object with information about the individual creating the tag. + */ + tagger?: { + /** + * The name of the author of the tag + */ + name?: string; + /** + * The email of the author of the tag + */ + email?: string; + /** + * When this object was tagged. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + date?: string; + }; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["git-tag"]; + }; + "422": unknown; + }; + }; + /** + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + "git/get-tag": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + tag_sha: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["git-tag"]; + }; + "404": unknown; + }; + }; + /** + * The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure. + * + * If you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see "[Create a commit](https://docs.github.com/rest/reference/git#create-a-commit)" and "[Update a reference](https://docs.github.com/rest/reference/git#update-a-reference)." + */ + "git/create-tree": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * Objects (of `path`, `mode`, `type`, and `sha`) specifying a tree structure. + */ + tree: { + /** + * The file referenced in the tree. + */ + path?: string; + /** + * The file mode; one of `100644` for file (blob), `100755` for executable (blob), `040000` for subdirectory (tree), `160000` for submodule (commit), or `120000` for a blob that specifies the path of a symlink. + */ + mode?: "100644" | "100755" | "040000" | "160000" | "120000"; + /** + * Either `blob`, `tree`, or `commit`. + */ + type?: "blob" | "tree" | "commit"; + /** + * The SHA1 checksum ID of the object in the tree. Also called `tree.sha`. If the value is `null` then the file will be deleted. + * + * **Note:** Use either `tree.sha` or `content` to specify the contents of the entry. Using both `tree.sha` and `content` will return an error. + */ + sha?: string | null; + /** + * The content you want this file to have. GitHub will write this blob out and use that SHA for this entry. Use either this, or `tree.sha`. + * + * **Note:** Use either `tree.sha` or `content` to specify the contents of the entry. Using both `tree.sha` and `content` will return an error. + */ + content?: string; + }[]; + /** + * The SHA1 of an existing Git tree object which will be used as the base for the new tree. If provided, a new Git tree object will be created from entries in the Git tree object pointed to by `base_tree` and entries defined in the `tree` parameter. Entries defined in the `tree` parameter will overwrite items from `base_tree` with the same `path`. If you're creating new changes on a branch, then normally you'd set `base_tree` to the SHA1 of the Git tree object of the current latest commit on the branch you're working on. + * If not provided, GitHub will create a new Git tree object from only the entries defined in the `tree` parameter. If you create a new commit pointing to such a tree, then all files which were a part of the parent commit's tree and were not defined in the `tree` parameter will be listed as deleted by the new commit. + */ + base_tree?: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["git-tree"]; + }; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + /** + * Returns a single tree using the SHA1 value for that tree. + * + * If `truncated` is `true` in the response then the number of items in the `tree` array exceeded our maximum limit. If you need to fetch more items, use the non-recursive method of fetching trees, and fetch one sub-tree at a time. + */ + "git/get-tree": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + tree_sha: string; + }; + query: { + /** + * Setting this parameter to any value returns the objects or subtrees referenced by the tree specified in `:tree_sha`. For example, setting `recursive` to any of the following will enable returning objects or subtrees: `0`, `1`, `"true"`, and `"false"`. Omit this parameter to prevent recursively returning objects or subtrees. + */ + recursive?: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["git-tree"]; + }; + "404": unknown; + "422": unknown; + }; + }; + "repos/list-webhooks": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["hook"][]; + }; + "404": unknown; + }; + }; + /** + * Repositories can have multiple webhooks installed. Each webhook should have a unique `config`. Multiple webhooks can + * share the same `config` as long as those webhooks do not have any `events` that overlap. + */ + "repos/create-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * Use `web` to create a webhook. Default: `web`. This parameter only accepts the value `web`. + */ + name?: string; + /** + * Key/value pairs to provide settings for this webhook. [These are defined below](https://docs.github.com/rest/reference/repos#create-hook-config-params). + */ + config: { + url: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + token?: string; + digest?: string; + }; + /** + * Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. + */ + events?: string[]; + /** + * Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + */ + active?: boolean; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["hook"]; + }; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + /** + * Returns a webhook configured in a repository. To get only the webhook `config` properties, see "[Get a webhook configuration for a repository](/rest/reference/repos#get-a-webhook-configuration-for-a-repository)." + */ + "repos/get-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["hook"]; + }; + "404": unknown; + }; + }; + /** + * Updates a webhook configured in a repository. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for a repository](/rest/reference/repos#update-a-webhook-configuration-for-a-repository)." + */ + "repos/update-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + requestBody: { + "application/json": { + /** + * Key/value pairs to provide settings for this webhook. [These are defined below](https://docs.github.com/rest/reference/repos#create-hook-config-params). + */ + config?: { + url: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + address?: string; + room?: string; + }; + /** + * Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for. This replaces the entire array of events. + */ + events?: string[]; + /** + * Determines a list of events to be added to the list of events that the Hook triggers for. + */ + add_events?: string[]; + /** + * Determines a list of events to be removed from the list of events that the Hook triggers for. + */ + remove_events?: string[]; + /** + * Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + */ + active?: boolean; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["hook"]; + }; + "404": unknown; + "422": unknown; + }; + }; + "repos/delete-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "404": unknown; + }; + }; + /** + * Returns the webhook configuration for a repository. To get more information about the webhook, including the `active` state and `events`, use "[Get a repository webhook](/rest/reference/orgs#get-a-repository-webhook)." + * + * Access tokens must have the `read:repo_hook` or `repo` scope, and GitHub Apps must have the `repository_hooks:read` permission. + */ + "repos/get-webhook-config-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** + * Default response + */ + "200": { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + /** + * Updates the webhook configuration for a repository. To update more information about the webhook, including the `active` state and `events`, use "[Update a repository webhook](/rest/reference/orgs#update-a-repository-webhook)." + * + * Access tokens must have the `write:repo_hook` or `repo` scope, and GitHub Apps must have the `repository_hooks:write` permission. + */ + "repos/update-webhook-config-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + requestBody: { + "application/json": { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + }; + responses: { + /** + * Default response + */ + "200": { + "application/json": components["schemas"]["webhook-config"]; + }; + }; + }; + /** + * This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. + */ + "repos/ping-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "404": unknown; + }; + }; + /** + * This will trigger the hook with the latest push to the current repository if the hook is subscribed to `push` events. If the hook is not subscribed to `push` events, the server will respond with 204 but no test POST will be generated. + * + * **Note**: Previously `/repos/:owner/:repo/hooks/:hook_id/test` + */ + "repos/test-push-webhook": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + hook_id: components["parameters"]["hook-id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "404": unknown; + }; + }; + /** + * View the progress of an import. + * + * **Import status** + * + * This section includes details about the possible values of the `status` field of the Import Progress response. + * + * An import that does not have errors will progress through these steps: + * + * * `detecting` - the "detection" step of the import is in progress because the request did not include a `vcs` parameter. The import is identifying the type of source control present at the URL. + * * `importing` - the "raw" step of the import is in progress. This is where commit data is fetched from the original repository. The import progress response will include `commit_count` (the total number of raw commits that will be imported) and `percent` (0 - 100, the current progress through the import). + * * `mapping` - the "rewrite" step of the import is in progress. This is where SVN branches are converted to Git branches, and where author updates are applied. The import progress response does not include progress information. + * * `pushing` - the "push" step of the import is in progress. This is where the importer updates the repository on GitHub. The import progress response will include `push_percent`, which is the percent value reported by `git push` when it is "Writing objects". + * * `complete` - the import is complete, and the repository is ready on GitHub. + * + * If there are problems, you will see one of these in the `status` field: + * + * * `auth_failed` - the import requires authentication in order to connect to the original repository. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section. + * * `error` - the import encountered an error. The import progress response will include the `failed_step` and an error message. Contact [GitHub Support](https://github.com/contact) or [GitHub Premium Support](https://premium.githubsupport.com) for more information. + * * `detection_needs_auth` - the importer requires authentication for the originating repository to continue detection. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section. + * * `detection_found_nothing` - the importer didn't recognize any source control at the URL. To resolve, [Cancel the import](https://docs.github.com/rest/reference/migrations#cancel-an-import) and [retry](https://docs.github.com/rest/reference/migrations#start-an-import) with the correct URL. + * * `detection_found_multiple` - the importer found several projects or repositories at the provided URL. When this is the case, the Import Progress response will also include a `project_choices` field with the possible project choices as values. To update project choice, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section. + * + * **The project_choices field** + * + * When multiple projects are found at the provided URL, the response hash will include a `project_choices` field, the value of which is an array of hashes each representing a project choice. The exact key/value pairs of the project hashes will differ depending on the version control type. + * + * **Git LFS related fields** + * + * This section includes details about Git LFS related fields that may be present in the Import Progress response. + * + * * `use_lfs` - describes whether the import has been opted in or out of using Git LFS. The value can be `opt_in`, `opt_out`, or `undecided` if no action has been taken. + * * `has_large_files` - the boolean value describing whether files larger than 100MB were found during the `importing` step. + * * `large_files_size` - the total size in gigabytes of files larger than 100MB found in the originating repository. + * * `large_files_count` - the total number of files larger than 100MB found in the originating repository. To see a list of these files, make a "Get Large Files" request. + */ + "migrations/get-import-status": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["import"]; + }; + "404": unknown; + }; + }; + /** + * Start a source import to a GitHub repository using GitHub Importer. + */ + "migrations/start-import": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * The URL of the originating repository. + */ + vcs_url: string; + /** + * The originating VCS type. Can be one of `subversion`, `git`, `mercurial`, or `tfvc`. Please be aware that without this parameter, the import job will take additional time to detect the VCS type before beginning the import. This detection step will be reflected in the response. + */ + vcs?: "subversion" | "git" | "mercurial" | "tfvc"; + /** + * If authentication is required, the username to provide to `vcs_url`. + */ + vcs_username?: string; + /** + * If authentication is required, the password to provide to `vcs_url`. + */ + vcs_password?: string; + /** + * For a tfvc import, the name of the project that is being imported. + */ + tfvc_project?: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["import"]; + }; + "404": unknown; + "422": unknown; + }; + }; + /** + * An import can be updated with credentials or a project choice by passing in the appropriate parameters in this API + * request. If no parameters are provided, the import will be restarted. + */ + "migrations/update-import": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * The username to provide to the originating repository. + */ + vcs_username?: string; + /** + * The password to provide to the originating repository. + */ + vcs_password?: string; + vcs?: string; + tfvc_project?: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["import"]; + }; + }; + }; + /** + * Stop an import for a repository. + */ + "migrations/cancel-import": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username `hubot` into something like `hubot `. + * + * This endpoint and the [Map a commit author](https://docs.github.com/rest/reference/migrations#map-a-commit-author) endpoint allow you to provide correct Git author information. + */ + "migrations/get-commit-authors": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + since?: components["parameters"]["since-user"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["porter-author"][]; + }; + "404": unknown; + }; + }; + /** + * Update an author's identity for the import. Your application can continue updating authors any time before you push new commits to the repository. + */ + "migrations/map-commit-author": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + author_id: number; + }; + }; + requestBody: { + "application/json": { + /** + * The new Git author email. + */ + email?: string; + /** + * The new Git author name. + */ + name?: string; + remote_id?: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["porter-author"]; + }; + "404": unknown; + "422": unknown; + }; + }; + /** + * List files larger than 100MB found during the import + */ + "migrations/get-large-files": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["porter-large-file"][]; + }; + }; + }; + /** + * You can import repositories from Subversion, Mercurial, and TFS that include files larger than 100MB. This ability is powered by [Git LFS](https://git-lfs.github.com). You can learn more about our LFS feature and working with large files [on our help site](https://help.github.com/articles/versioning-large-files/). + */ + "migrations/set-lfs-preference": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * Can be one of `opt_in` (large files will be stored using Git LFS) or `opt_out` (large files will be removed during the import). + */ + use_lfs: "opt_in" | "opt_out"; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["import"]; + }; + "422": unknown; + }; + }; + /** + * Enables an authenticated GitHub App to find the repository's installation information. The installation's account type will be either an organization or a user account, depending which account the repository belongs to. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-repo-installation": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["installation"]; + }; + "301": never; + "404": unknown; + }; + }; + /** + * Shows which type of GitHub user can interact with this repository and when the restriction expires. If there are no restrictions, you will see an empty response. + */ + "interactions/get-restrictions-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["interaction-limit-response"]; + }; + }; + }; + /** + * Temporarily restricts interactions to a certain type of GitHub user within the given repository. You must have owner or admin access to set these restrictions. If an interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. + */ + "interactions/set-restrictions-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": components["schemas"]["interaction-limit"]; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["interaction-limit-response"]; + }; + /** + * Conflict + */ + "409": unknown; + }; + }; + /** + * Removes all interaction restrictions from the given repository. You must have owner or admin access to remove restrictions. If the interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. + */ + "interactions/remove-restrictions-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + /** + * Conflict + */ + "409": unknown; + }; + }; + /** + * When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations. + */ + "repos/list-invitations": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["repository-invitation"][]; + }; + }; + }; + "repos/update-invitation": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + invitation_id: components["parameters"]["invitation_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The permissions that the associated user will have on the repository. Valid values are `read`, `write`, `maintain`, `triage`, and `admin`. + */ + permissions?: "read" | "write" | "maintain" | "triage" | "admin"; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["repository-invitation"]; + }; + }; + }; + "repos/delete-invitation": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + invitation_id: components["parameters"]["invitation_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * List issues in a repository. + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + "issues/list-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + /** + * If an `integer` is passed, it should refer to a milestone by its `number` field. If the string `*` is passed, issues with any milestone are accepted. If the string `none` is passed, issues without milestones are returned. + */ + milestone?: string; + /** + * Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * Can be the name of a user. Pass in `none` for issues with no assigned user, and `*` for issues assigned to any user. + */ + assignee?: string; + /** + * The user that created the issue. + */ + creator?: string; + /** + * A user that's mentioned in the issue. + */ + mentioned?: string; + labels?: components["parameters"]["labels"]; + /** + * What to sort results by. Can be either `created`, `updated`, `comments`. + */ + sort?: "created" | "updated" | "comments"; + direction?: components["parameters"]["direction"]; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["issue-simple"][]; + }; + "301": never; + "404": unknown; + "422": unknown; + }; + }; + /** + * Any user with pull access to a repository can create an issue. If [issues are disabled in the repository](https://help.github.com/articles/disabling-issues/), the API returns a `410 Gone` status. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-abuse-rate-limits)" for details. + */ + "issues/create": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * The title of the issue. + */ + title: string; + /** + * The contents of the issue. + */ + body?: string; + /** + * Login for the user that this issue should be assigned to. _NOTE: Only users with push access can set the assignee for new issues. The assignee is silently dropped otherwise. **This field is deprecated.**_ + */ + assignee?: string | null; + /** + * The `number` of the milestone to associate this issue with. _NOTE: Only users with push access can set the milestone for new issues. The milestone is silently dropped otherwise._ + */ + milestone?: number | null; + /** + * Labels to associate with this issue. _NOTE: Only users with push access can set labels for new issues. Labels are silently dropped otherwise._ + */ + labels?: ( + | string + | { id?: number; name?: string; description?: string; color?: string } + )[]; + /** + * Logins for Users to assign to this issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._ + */ + assignees?: string[]; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["issue"]; + }; + "403": unknown; + "404": unknown; + "410": unknown; + "422": unknown; + "503": unknown; + }; + }; + /** + * By default, Issue Comments are ordered by ascending ID. + */ + "issues/list-comments-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + sort?: components["parameters"]["sort"]; + /** + * Either `asc` or `desc`. Ignored without the `sort` parameter. + */ + direction?: "asc" | "desc"; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["issue-comment"][]; + }; + "404": unknown; + "422": unknown; + }; + }; + "issues/get-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["issue-comment"]; + }; + "404": unknown; + }; + }; + "issues/update-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The contents of the comment. + */ + body: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["issue-comment"]; + }; + "422": unknown; + }; + }; + "issues/delete-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * List the reactions to an [issue comment](https://docs.github.com/rest/reference/issues#comments). + */ + "reactions/list-for-issue-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment_id"]; + }; + query: { + /** + * Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to an issue comment. + */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["reaction"][]; + }; + "404": unknown; + "415": unknown; + }; + }; + /** + * Create a reaction to an [issue comment](https://docs.github.com/rest/reference/issues#comments). A response with a `Status: 200 OK` means that you already added the reaction type to this issue comment. + */ + "reactions/create-for-issue-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the issue comment. + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + responses: { + /** + * Reaction exists + */ + "200": { + "application/json": components["schemas"]["reaction"]; + }; + /** + * Reaction created + */ + "201": { + "application/json": components["schemas"]["reaction"]; + }; + "415": unknown; + "422": unknown; + }; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/issues/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to an [issue comment](https://docs.github.com/rest/reference/issues#comments). + */ + "reactions/delete-for-issue-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment_id"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + "issues/list-events-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["issue-event"][]; + }; + "422": unknown; + }; + }; + "issues/get-event": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + event_id: number; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["issue-event"]; + }; + "403": unknown; + "404": unknown; + "410": unknown; + }; + }; + /** + * The API returns a [`301 Moved Permanently` status](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-redirects-redirects) if the issue was + * [transferred](https://help.github.com/articles/transferring-an-issue-to-another-repository/) to another repository. If + * the issue was transferred to or deleted from a repository where the authenticated user lacks read access, the API + * returns a `404 Not Found` status. If the issue was deleted from a repository where the authenticated user has read + * access, the API returns a `410 Gone` status. To receive webhook events for transferred and deleted issues, subscribe + * to the [`issues`](https://docs.github.com/webhooks/event-payloads/#issues) webhook. + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + "issues/get": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue_number"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["issue"]; + }; + "301": never; + "304": never; + "404": unknown; + "410": unknown; + }; + }; + /** + * Issue owners and users with push access can edit an issue. + */ + "issues/update": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue_number"]; + }; + }; + requestBody: { + "application/json": { + /** + * The title of the issue. + */ + title?: string; + /** + * The contents of the issue. + */ + body?: string; + /** + * Login for the user that this issue should be assigned to. **This field is deprecated.** + */ + assignee?: string; + /** + * State of the issue. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * The `number` of the milestone to associate this issue with or `null` to remove current. _NOTE: Only users with push access can set the milestone for issues. The milestone is silently dropped otherwise._ + */ + milestone?: number | null; + /** + * Labels to associate with this issue. Pass one or more Labels to _replace_ the set of Labels on this Issue. Send an empty array (`[]`) to clear all Labels from the Issue. _NOTE: Only users with push access can set labels for issues. Labels are silently dropped otherwise._ + */ + labels?: ( + | string + | { id?: number; name?: string; description?: string; color?: string } + )[]; + /** + * Logins for Users to assign to this issue. Pass one or more user logins to _replace_ the set of assignees on this Issue. Send an empty array (`[]`) to clear all assignees from the Issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._ + */ + assignees?: string[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["issue"]; + }; + "301": never; + "403": unknown; + "404": unknown; + "410": unknown; + "422": unknown; + "503": unknown; + }; + }; + /** + * Adds up to 10 assignees to an issue. Users already assigned to an issue are not replaced. + */ + "issues/add-assignees": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue_number"]; + }; + }; + requestBody: { + "application/json": { + /** + * Usernames of people to assign this issue to. _NOTE: Only users with push access can add assignees to an issue. Assignees are silently ignored otherwise._ + */ + assignees?: string[]; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["issue-simple"]; + }; + }; + }; + /** + * Removes one or more assignees from an issue. + */ + "issues/remove-assignees": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue_number"]; + }; + }; + requestBody: { + "application/json": { + /** + * Usernames of assignees to remove from an issue. _NOTE: Only users with push access can remove assignees from an issue. Assignees are silently ignored otherwise._ + */ + assignees?: string[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["issue-simple"]; + }; + }; + }; + /** + * Issue Comments are ordered by ascending ID. + */ + "issues/list-comments": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue_number"]; + }; + query: { + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["issue-comment"][]; + }; + "404": unknown; + "410": unknown; + }; + }; + /** + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-abuse-rate-limits)" for details. + */ + "issues/create-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue_number"]; + }; + }; + requestBody: { + "application/json": { + /** + * The contents of the comment. + */ + body: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["issue-comment"]; + }; + "403": unknown; + "404": unknown; + "410": unknown; + "422": unknown; + }; + }; + "issues/list-events": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue_number"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["issue-event-for-issue"][]; + }; + "410": unknown; + }; + }; + "issues/list-labels-on-issue": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue_number"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["label"][]; + }; + "410": unknown; + }; + }; + "issues/add-labels": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue_number"]; + }; + }; + requestBody: { + "application/json": { + /** + * The name of the label to add to the issue. Must contain at least one label. **Note:** Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. + */ + labels: string[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["label"][]; + }; + "410": unknown; + "422": unknown; + }; + }; + /** + * Removes any previous labels and sets the new labels for an issue. + */ + "issues/set-labels": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue_number"]; + }; + }; + requestBody: { + "application/json": { + /** + * The names of the labels to add to the issue. You can pass an empty array to remove all labels. **Note:** Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. + */ + labels?: string[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["label"][]; + }; + "410": unknown; + "422": unknown; + }; + }; + "issues/remove-all-labels": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue_number"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "410": unknown; + }; + }; + /** + * Removes the specified label from the issue, and returns the remaining labels on the issue. This endpoint returns a `404 Not Found` status if the label does not exist. + */ + "issues/remove-label": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue_number"]; + name: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["label"][]; + }; + "404": unknown; + "410": unknown; + }; + }; + /** + * Users with push access can lock an issue or pull request's conversation. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + "issues/lock": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue_number"]; + }; + }; + requestBody: { + "application/json": { + /** + * The reason for locking the issue or pull request conversation. Lock will fail if you don't use one of these reasons: + * \* `off-topic` + * \* `too heated` + * \* `resolved` + * \* `spam` + */ + lock_reason?: "off-topic" | "too heated" | "resolved" | "spam"; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "403": unknown; + "404": unknown; + "410": unknown; + "422": unknown; + }; + }; + /** + * Users with push access can unlock an issue's conversation. + */ + "issues/unlock": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue_number"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "403": unknown; + "404": unknown; + }; + }; + /** + * List the reactions to an [issue](https://docs.github.com/rest/reference/issues). + */ + "reactions/list-for-issue": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue_number"]; + }; + query: { + /** + * Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to an issue. + */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["reaction"][]; + }; + "404": unknown; + "410": unknown; + "415": unknown; + }; + }; + /** + * Create a reaction to an [issue](https://docs.github.com/rest/reference/issues/). A response with a `Status: 200 OK` means that you already added the reaction type to this issue. + */ + "reactions/create-for-issue": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue_number"]; + }; + }; + requestBody: { + "application/json": { + /** + * The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the issue. + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["reaction"]; + }; + "415": unknown; + "422": unknown; + }; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/issues/:issue_number/reactions/:reaction_id`. + * + * Delete a reaction to an [issue](https://docs.github.com/rest/reference/issues/). + */ + "reactions/delete-for-issue": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue_number"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + "issues/list-events-for-timeline": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + issue_number: components["parameters"]["issue_number"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["issue-event-for-issue"][]; + }; + "404": unknown; + "410": unknown; + "415": unknown; + }; + }; + "repos/list-deploy-keys": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["deploy-key"][]; + }; + }; + }; + /** + * You can create a read-only deploy key. + */ + "repos/create-deploy-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * A name for the key. + */ + title?: string; + /** + * The contents of the key. + */ + key: string; + /** + * If `true`, the key will only be able to read repository contents. Otherwise, the key will be able to read and write. + * + * Deploy keys with write access can perform the same actions as an organization member with admin access, or a collaborator on a personal repository. For more information, see "[Repository permission levels for an organization](https://help.github.com/articles/repository-permission-levels-for-an-organization/)" and "[Permission levels for a user account repository](https://help.github.com/articles/permission-levels-for-a-user-account-repository/)." + */ + read_only?: boolean; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["deploy-key"]; + }; + "422": unknown; + }; + }; + "repos/get-deploy-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + key_id: components["parameters"]["key_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["deploy-key"]; + }; + "404": unknown; + }; + }; + /** + * Deploy keys are immutable. If you need to update a key, remove the key and create a new one instead. + */ + "repos/delete-deploy-key": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + key_id: components["parameters"]["key_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + "issues/list-labels-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["label"][]; + }; + "404": unknown; + }; + }; + "issues/create-label": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * The name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png ":strawberry:"). For a full list of available emoji and codes, see [emoji-cheat-sheet.com](http://emoji-cheat-sheet.com/). + */ + name: string; + /** + * The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`. + */ + color?: string; + /** + * A short description of the label. + */ + description?: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["label"]; + }; + "404": unknown; + "422": unknown; + }; + }; + "issues/get-label": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["label"]; + }; + "404": unknown; + }; + }; + "issues/update-label": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: string; + }; + }; + requestBody: { + "application/json": { + /** + * The new name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png ":strawberry:"). For a full list of available emoji and codes, see [emoji-cheat-sheet.com](http://emoji-cheat-sheet.com/). + */ + new_name?: string; + /** + * The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`. + */ + color?: string; + /** + * A short description of the label. + */ + description?: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["label"]; + }; + }; + }; + "issues/delete-label": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + name: string; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language. + */ + "repos/list-languages": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["language"]; + }; + }; + }; + /** + * This method returns the contents of the repository's license file, if one is detected. + * + * Similar to [Get repository content](https://docs.github.com/rest/reference/repos/contents#get-repository-content), this method also supports [custom media types](https://docs.github.com/rest/overview/media-types) for retrieving the raw license content or rendered license HTML. + */ + "licenses/get-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["license-content"]; + }; + }; + }; + "repos/merge": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * The name of the base branch that the head will be merged into. + */ + base: string; + /** + * The head to merge. This can be a branch name or a commit SHA1. + */ + head: string; + /** + * Commit message to use for the merge commit. If omitted, a default message will be used. + */ + commit_message?: string; + }; + }; + responses: { + /** + * Successful Response (The resulting merge commit) + */ + "201": { + "application/json": components["schemas"]["commit"]; + }; + "403": unknown; + /** + * response + */ + "404": { + "application/json": { message?: string; documentation_url?: string }; + }; + /** + * Merge conflict response + */ + "409": { + "application/json": { message?: string; documentation_url?: string }; + }; + "422": unknown; + }; + }; + "issues/list-milestones": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + /** + * The state of the milestone. Either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * What to sort results by. Either `due_on` or `completeness`. + */ + sort?: "due_on" | "completeness"; + /** + * The direction of the sort. Either `asc` or `desc`. + */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["milestone"][]; + }; + "404": unknown; + }; + }; + "issues/create-milestone": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * The title of the milestone. + */ + title: string; + /** + * The state of the milestone. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * A description of the milestone. + */ + description?: string; + /** + * The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + due_on?: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["milestone"]; + }; + "404": unknown; + "422": unknown; + }; + }; + "issues/get-milestone": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + milestone_number: components["parameters"]["milestone_number"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["milestone"]; + }; + "404": unknown; + }; + }; + "issues/update-milestone": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + milestone_number: components["parameters"]["milestone_number"]; + }; + }; + requestBody: { + "application/json": { + /** + * The title of the milestone. + */ + title?: string; + /** + * The state of the milestone. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * A description of the milestone. + */ + description?: string; + /** + * The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + due_on?: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["milestone"]; + }; + }; + }; + "issues/delete-milestone": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + milestone_number: components["parameters"]["milestone_number"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "404": unknown; + }; + }; + "issues/list-labels-for-milestone": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + milestone_number: components["parameters"]["milestone_number"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["label"][]; + }; + }; + }; + /** + * List all notifications for the current user. + */ + "activity/list-repo-notifications-for-authenticated-user": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + all?: components["parameters"]["all"]; + participating?: components["parameters"]["participating"]; + since?: components["parameters"]["since"]; + before?: components["parameters"]["before"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["thread"][]; + }; + }; + }; + /** + * Marks all notifications in a repository as "read" removes them from the [default view on GitHub](https://github.com/notifications). If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List repository notifications for the authenticated user](https://docs.github.com/rest/reference/activity#list-repository-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + */ + "activity/mark-repo-notifications-as-read": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * Describes the last point that notifications were checked. Anything updated since this time will not be marked as read. If you omit this parameter, all notifications are marked as read. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp. + */ + last_read_at?: string; + }; + }; + responses: { + /** + * response + */ + "202": unknown; + }; + }; + "repos/get-pages": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["page"]; + }; + "404": unknown; + }; + }; + /** + * Configures a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages)." + */ + "repos/create-pages-site": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * The source branch and directory used to publish your Pages site. + */ + source: { + /** + * The repository branch used to publish your site's source files. + */ + branch: string; + /** + * The repository directory that includes the source files for the Pages site. Allowed paths are `/` or `/docs`. Default: `/` + */ + path?: "/" | "/docs"; + }; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["page"]; + }; + "409": unknown; + "415": unknown; + "422": unknown; + }; + }; + /** + * Updates information for a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). + */ + "repos/update-information-about-pages-site": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * Specify a custom domain for the repository. Sending a `null` value will remove the custom domain. For more about custom domains, see "[Using a custom domain with GitHub Pages](https://help.github.com/articles/using-a-custom-domain-with-github-pages/)." + */ + cname?: string | null; + source: Partial<"gh-pages" | "master" | "master /docs"> & + Partial<{ + /** + * The repository branch used to publish your site's source files. + */ + branch: string; + /** + * The repository directory that includes the source files for the Pages site. Allowed paths are `/` or `/docs`. + */ + path: "/" | "/docs"; + }>; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "400": unknown; + "422": unknown; + }; + }; + "repos/delete-pages-site": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "404": unknown; + "415": unknown; + "422": unknown; + }; + }; + "repos/list-pages-builds": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["page-build"][]; + }; + }; + }; + /** + * You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures. + * + * Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes. + */ + "repos/request-pages-build": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["page-build-status"]; + }; + }; + }; + "repos/get-latest-pages-build": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["page-build"]; + }; + }; + }; + "repos/get-pages-build": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + build_id: number; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["page-build"]; + }; + }; + }; + /** + * Lists the projects in a repository. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/list-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + /** + * Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["project"][]; + }; + "401": unknown; + "403": unknown; + "404": unknown; + "410": unknown; + "422": unknown; + }; + }; + /** + * Creates a repository project board. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + "projects/create-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * The name of the project. + */ + name: string; + /** + * The description of the project. + */ + body?: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["project"]; + }; + "401": unknown; + "403": unknown; + "404": unknown; + "410": unknown; + "422": unknown; + }; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + "pulls/list": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + /** + * Either `open`, `closed`, or `all` to filter by state. + */ + state?: "open" | "closed" | "all"; + /** + * Filter pulls by head user or head organization and branch name in the format of `user:ref-name` or `organization:ref-name`. For example: `github:new-script-format` or `octocat:test-branch`. + */ + head?: string; + /** + * Filter pulls by base branch name. Example: `gh-pages`. + */ + base?: string; + /** + * What to sort results by. Can be either `created`, `updated`, `popularity` (comment count) or `long-running` (age, filtering by pulls updated in the last month). + */ + sort?: "created" | "updated" | "popularity" | "long-running"; + /** + * The direction of the sort. Can be either `asc` or `desc`. Default: `desc` when sort is `created` or sort is not specified, otherwise `asc`. + */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["pull-request-simple"][]; + }; + "304": never; + "422": unknown; + }; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + * + * You can create a new pull request. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + */ + "pulls/create": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * The title of the new pull request. + */ + title?: string; + /** + * The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace `head` with a user like this: `username:branch`. + */ + head: string; + /** + * The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. + */ + base: string; + /** + * The contents of the pull request. + */ + body?: string; + /** + * Indicates whether [maintainers can modify](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request. + */ + maintainer_can_modify?: boolean; + /** + * Indicates whether the pull request is a draft. See "[Draft Pull Requests](https://help.github.com/en/articles/about-pull-requests#draft-pull-requests)" in the GitHub Help documentation to learn more. + */ + draft?: boolean; + issue?: number; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["pull-request"]; + }; + "403": unknown; + "422": unknown; + }; + }; + /** + * Lists review comments for all pull requests in a repository. By default, review comments are in ascending order by ID. + */ + "pulls/list-review-comments-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + sort?: components["parameters"]["sort"]; + /** + * Can be either `asc` or `desc`. Ignored without `sort` parameter. + */ + direction?: "asc" | "desc"; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["pull-request-review-comment"][]; + }; + }; + }; + /** + * Provides details for a review comment. + */ + "pulls/get-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["pull-request-review-comment"]; + }; + "404": unknown; + }; + }; + /** + * Enables you to edit a review comment. + */ + "pulls/update-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The text of the reply to the review comment. + */ + body: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["pull-request-review-comment"]; + }; + }; + }; + /** + * Deletes a review comment. + */ + "pulls/delete-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "404": unknown; + }; + }; + /** + * List the reactions to a [pull request review comment](https://docs.github.com/rest/reference/pulls#review-comments). + */ + "reactions/list-for-pull-request-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment_id"]; + }; + query: { + /** + * Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a pull request review comment. + */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["reaction"][]; + }; + "404": unknown; + "415": unknown; + }; + }; + /** + * Create a reaction to a [pull request review comment](https://docs.github.com/rest/reference/pulls#comments). A response with a `Status: 200 OK` means that you already added the reaction type to this pull request review comment. + */ + "reactions/create-for-pull-request-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the pull request review comment. + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + responses: { + /** + * Reaction exists + */ + "200": { + "application/json": components["schemas"]["reaction"]; + }; + /** + * Reaction created + */ + "201": { + "application/json": components["schemas"]["reaction"]; + }; + "415": unknown; + "422": unknown; + }; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/pulls/comments/:comment_id/reactions/:reaction_id.` + * + * Delete a reaction to a [pull request review comment](https://docs.github.com/rest/reference/pulls#review-comments). + */ + "reactions/delete-for-pull-request-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + comment_id: components["parameters"]["comment_id"]; + reaction_id: components["parameters"]["reaction-id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists details of a pull request by providing its number. + * + * When you get, [create](https://docs.github.com/rest/reference/pulls/#create-a-pull-request), or [edit](https://docs.github.com/rest/reference/pulls#update-a-pull-request) a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the `mergeable` key. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * The value of the `mergeable` attribute can be `true`, `false`, or `null`. If the value is `null`, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-`null` value for the `mergeable` attribute in the response. If `mergeable` is `true`, then `merge_commit_sha` will be the SHA of the _test_ merge commit. + * + * The value of the `merge_commit_sha` attribute changes depending on the state of the pull request. Before merging a pull request, the `merge_commit_sha` attribute holds the SHA of the _test_ merge commit. After merging a pull request, the `merge_commit_sha` attribute changes depending on how you merged the pull request: + * + * * If merged as a [merge commit](https://help.github.com/articles/about-merge-methods-on-github/), `merge_commit_sha` represents the SHA of the merge commit. + * * If merged via a [squash](https://help.github.com/articles/about-merge-methods-on-github/#squashing-your-merge-commits), `merge_commit_sha` represents the SHA of the squashed commit on the base branch. + * * If [rebased](https://help.github.com/articles/about-merge-methods-on-github/#rebasing-and-merging-your-commits), `merge_commit_sha` represents the commit that the base branch was updated to. + * + * Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + */ + "pulls/get": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** + * Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + */ + "200": { + "application/json": components["schemas"]["pull-request"]; + }; + "304": never; + "404": unknown; + "500": unknown; + }; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + */ + "pulls/update": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody: { + "application/json": { + /** + * The title of the pull request. + */ + title?: string; + /** + * The contents of the pull request. + */ + body?: string; + /** + * State of this Pull Request. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * The name of the branch you want your changes pulled into. This should be an existing branch on the current repository. You cannot update the base branch on a pull request to point to another repository. + */ + base?: string; + /** + * Indicates whether [maintainers can modify](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request. + */ + maintainer_can_modify?: boolean; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["pull-request"]; + }; + "403": unknown; + "422": unknown; + }; + }; + /** + * Lists all review comments for a pull request. By default, review comments are in ascending order by ID. + */ + "pulls/list-review-comments": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + query: { + sort?: components["parameters"]["sort"]; + /** + * Can be either `asc` or `desc`. Ignored without `sort` parameter. + */ + direction?: "asc" | "desc"; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["pull-request-review-comment"][]; + }; + }; + }; + /** + * Creates a review comment in the pull request diff. To add a regular comment to a pull request timeline, see "[Create an issue comment](https://docs.github.com/rest/reference/issues#create-an-issue-comment)." We recommend creating a review comment using `line`, `side`, and optionally `start_line` and `start_side` if your comment applies to more than one line in the pull request diff. + * + * You can still create a review comment using the `position` parameter. When you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required. For more information, see the [`comfort-fade` preview notice](https://docs.github.com/rest/reference/pulls#create-a-review-comment-for-a-pull-request-preview-notices). + * + * **Note:** The position value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + */ + "pulls/create-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody: { + "application/json": { + /** + * The text of the review comment. + */ + body: string; + /** + * The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the `position`. + */ + commit_id?: string; + /** + * The relative path to the file that necessitates a comment. + */ + path: string; + /** + * **Required without `comfort-fade` preview**. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above. + */ + position?: number; + /** + * **Required with `comfort-fade` preview**. In a split diff view, the side of the diff that the pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use `LEFT` for deletions that appear in red. Use `RIGHT` for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "[Diff view options](https://help.github.com/en/articles/about-comparing-branches-in-pull-requests#diff-view-options)" in the GitHub Help documentation. + */ + side?: "LEFT" | "RIGHT"; + /** + * **Required with `comfort-fade` preview**. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to. + */ + line?: number; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_line` is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. + */ + start_line?: number; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_side` is the starting side of the diff that the comment applies to. Can be `LEFT` or `RIGHT`. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. See `side` in this table for additional context. + */ + start_side?: "LEFT" | "RIGHT" | "side"; + in_reply_to?: number; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["pull-request-review-comment"]; + }; + "403": unknown; + "422": unknown; + }; + }; + /** + * Creates a reply to a review comment for a pull request. For the `comment_id`, provide the ID of the review comment you are replying to. This must be the ID of a _top-level review comment_, not a reply to that comment. Replies to replies are not supported. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + */ + "pulls/create-reply-for-review-comment": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + comment_id: components["parameters"]["comment_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The text of the review comment. + */ + body: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["pull-request-review-comment"]; + }; + "404": unknown; + }; + }; + /** + * Lists a maximum of 250 commits for a pull request. To receive a complete commit list for pull requests with more than 250 commits, use the [List commits](https://docs.github.com/rest/reference/repos#list-commits) endpoint. + */ + "pulls/list-commits": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["commit"][]; + }; + }; + }; + /** + * **Note:** Responses include a maximum of 3000 files. The paginated response returns 30 files per page by default. + */ + "pulls/list-files": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["diff-entry"][]; + }; + "422": unknown; + "500": unknown; + }; + }; + "pulls/check-if-merged": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + responses: { + /** + * Response if pull request has been merged + */ + "204": never; + /** + * Response if pull request has not been merged + */ + "404": unknown; + }; + }; + /** + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/reference/guides#dealing-with-abuse-rate-limits)" for details. + */ + "pulls/merge": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody: { + "application/json": { + /** + * Title for the automatic commit message. + */ + commit_title?: string; + /** + * Extra detail to append to automatic commit message. + */ + commit_message?: string; + /** + * SHA that pull request head must match to allow merge. + */ + sha?: string; + /** + * Merge method to use. Possible values are `merge`, `squash` or `rebase`. Default is `merge`. + */ + merge_method?: "merge" | "squash" | "rebase"; + }; + }; + responses: { + /** + * Response if merge was successful + */ + "200": { + "application/json": components["schemas"]["pull-request-merge-result"]; + }; + "403": unknown; + "404": unknown; + /** + * Response if merge cannot be performed + */ + "405": { + "application/json": { message?: string; documentation_url?: string }; + }; + /** + * Response if sha was provided and pull request head did not match + */ + "409": { + "application/json": { message?: string; documentation_url?: string }; + }; + "422": unknown; + }; + }; + "pulls/list-requested-reviewers": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["pull-request-review-request"]; + }; + }; + }; + /** + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/reference/guides#dealing-with-abuse-rate-limits)" for details. + */ + "pulls/request-reviewers": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody: { + "application/json": { + /** + * An array of user `login`s that will be requested. + */ + reviewers?: string[]; + /** + * An array of team `slug`s that will be requested. + */ + team_reviewers?: string[]; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["pull-request-simple"]; + }; + "403": unknown; + /** + * Response if user is not a collaborator + */ + "422": unknown; + }; + }; + "pulls/remove-requested-reviewers": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody: { + "application/json": { + /** + * An array of user `login`s that will be removed. + */ + reviewers?: string[]; + /** + * An array of team `slug`s that will be removed. + */ + team_reviewers?: string[]; + }; + }; + responses: { + /** + * response + */ + "200": unknown; + "422": unknown; + }; + }; + /** + * The list of reviews returns in chronological order. + */ + "pulls/list-reviews": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * The list of reviews returns in chronological order. + */ + "200": { + "application/json": components["schemas"]["pull-request-review"][]; + }; + }; + }; + /** + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + * + * Pull request reviews created in the `PENDING` state do not include the `submitted_at` property in the response. + * + * **Note:** To comment on a specific line in a file, you need to first determine the _position_ of that line in the diff. The GitHub REST API v3 offers the `application/vnd.github.v3.diff` [media type](https://docs.github.com/rest/reference/media/#commits-commit-comparison-and-pull-requests). To see a pull request diff, add this media type to the `Accept` header of a call to the [single pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) endpoint. + * + * The `position` value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + */ + "pulls/create-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody: { + "application/json": { + /** + * The SHA of the commit that needs a review. Not using the latest commit SHA may render your review comment outdated if a subsequent commit modifies the line you specify as the `position`. Defaults to the most recent commit in the pull request when you do not specify a value. + */ + commit_id?: string; + /** + * **Required** when using `REQUEST_CHANGES` or `COMMENT` for the `event` parameter. The body text of the pull request review. + */ + body?: string; + /** + * The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. By leaving this blank, you set the review action state to `PENDING`, which means you will need to [submit the pull request review](https://docs.github.com/rest/reference/pulls#submit-a-review-for-a-pull-request) when you are ready. + */ + event?: "APPROVE" | "REQUEST_CHANGES" | "COMMENT"; + /** + * Use the following table to specify the location, destination, and contents of the draft review comment. + */ + comments?: { + /** + * The relative path to the file that necessitates a review comment. + */ + path: string; + /** + * The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note below. + */ + position?: number; + /** + * Text of the review comment. + */ + body: string; + line?: number; + side?: string; + start_line?: number; + start_side?: string; + }[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["pull-request-review"]; + }; + "403": unknown; + "422": unknown; + }; + }; + "pulls/get-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["pull-request-review"]; + }; + "404": unknown; + }; + }; + /** + * Update the review summary comment with new text. + */ + "pulls/update-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The body text of the pull request review. + */ + body: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["pull-request-review"]; + }; + "422": unknown; + }; + }; + "pulls/delete-pending-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["pull-request-review"]; + }; + "404": unknown; + "422": unknown; + }; + }; + /** + * List comments for a specific pull request review. + */ + "pulls/list-comments-for-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review_id"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["review-comment"][]; + }; + "404": unknown; + }; + }; + /** + * **Note:** To dismiss a pull request review on a [protected branch](https://docs.github.com/rest/reference/repos#branches), you must be a repository administrator or be included in the list of people or teams who can dismiss pull request reviews. + */ + "pulls/dismiss-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The message for the pull request review dismissal + */ + message: string; + event?: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["pull-request-review"]; + }; + "404": unknown; + "422": unknown; + }; + }; + "pulls/submit-review": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + review_id: components["parameters"]["review_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The body text of the pull request review + */ + body?: string; + /** + * The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. When you leave this blank, the API returns _HTTP 422 (Unrecognizable entity)_ and sets the review action state to `PENDING`, which means you will need to re-submit the pull request review using a review action. + */ + event: "APPROVE" | "REQUEST_CHANGES" | "COMMENT"; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["pull-request-review"]; + }; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + /** + * Updates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch. + */ + "pulls/update-branch": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + pull_number: components["parameters"]["pull-number"]; + }; + }; + requestBody: { + "application/json": { + /** + * The expected SHA of the pull request's HEAD ref. This is the most recent commit on the pull request's branch. If the expected SHA does not match the pull request's HEAD, you will receive a `422 Unprocessable Entity` status. You can use the "[List commits](https://docs.github.com/rest/reference/repos#list-commits)" endpoint to find the most recent commit SHA. Default: SHA of the pull request's current HEAD ref. + */ + expected_head_sha?: string; + }; + }; + responses: { + /** + * response + */ + "202": { + "application/json": { message?: string; url?: string }; + }; + "403": unknown; + "415": unknown; + "422": unknown; + }; + }; + /** + * Gets the preferred README for a repository. + * + * READMEs support [custom media types](https://docs.github.com/rest/reference/repos#custom-media-types) for retrieving the raw content or rendered HTML. + */ + "repos/get-readme": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + /** + * The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`) + */ + ref?: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["content-file"]; + }; + "404": unknown; + "422": unknown; + }; + }; + /** + * This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the [Repository Tags API](https://docs.github.com/rest/reference/repos#list-repository-tags). + * + * Information about published releases are available to everyone. Only users with push access will receive listings for draft releases. + */ + "repos/list-releases": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["release"][]; + }; + "404": unknown; + }; + }; + /** + * Users with push access to the repository can create a release. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + */ + "repos/create-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * The name of the tag. + */ + tag_name: string; + /** + * Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually `master`). + */ + target_commitish?: string; + /** + * The name of the release. + */ + name?: string; + /** + * Text describing the contents of the tag. + */ + body?: string; + /** + * `true` to create a draft (unpublished) release, `false` to create a published one. + */ + draft?: boolean; + /** + * `true` to identify the release as a prerelease. `false` to identify the release as a full release. + */ + prerelease?: boolean; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["release"]; + }; + "422": unknown; + }; + }; + /** + * To download the asset's binary content, set the `Accept` header of the request to [`application/octet-stream`](https://docs.github.com/rest/overview/media-types). The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a `200` or `302` response. + */ + "repos/get-release-asset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + asset_id: components["parameters"]["asset_id"]; + }; + }; + responses: { + /** + * To download the asset's binary content, set the `Accept` header of the request to [`application/octet-stream`](https://docs.github.com/rest/overview/media-types). The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a `200` or `302` response. + */ + "200": { + "application/json": components["schemas"]["release-asset"]; + }; + "302": never; + "404": unknown; + "415": unknown; + }; + }; + /** + * Users with push access to the repository can edit a release asset. + */ + "repos/update-release-asset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + asset_id: components["parameters"]["asset_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The file name of the asset. + */ + name?: string; + /** + * An alternate short description of the asset. Used in place of the filename. + */ + label?: string; + state?: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["release-asset"]; + }; + }; + }; + "repos/delete-release-asset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + asset_id: components["parameters"]["asset_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * View the latest published full release for the repository. + * + * The latest release is the most recent non-prerelease, non-draft release, sorted by the `created_at` attribute. The `created_at` attribute is the date of the commit used for the release, and not the date when the release was drafted or published. + */ + "repos/get-latest-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["release"]; + }; + }; + }; + /** + * Get a published release with the specified tag. + */ + "repos/get-release-by-tag": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + /** + * tag+ parameter + */ + tag: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["release"]; + }; + "404": unknown; + }; + }; + /** + * **Note:** This returns an `upload_url` key corresponding to the endpoint for uploading release assets. This key is a [hypermedia resource](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia). + */ + "repos/get-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release_id"]; + }; + }; + responses: { + /** + * **Note:** This returns an `upload_url` key corresponding to the endpoint for uploading release assets. This key is a [hypermedia resource](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia). + */ + "200": { + "application/json": components["schemas"]["release"]; + }; + "404": unknown; + }; + }; + /** + * Users with push access to the repository can edit a release. + */ + "repos/update-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The name of the tag. + */ + tag_name?: string; + /** + * Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually `master`). + */ + target_commitish?: string; + /** + * The name of the release. + */ + name?: string; + /** + * Text describing the contents of the tag. + */ + body?: string; + /** + * `true` makes the release a draft, and `false` publishes the release. + */ + draft?: boolean; + /** + * `true` to identify the release as a prerelease, `false` to identify the release as a full release. + */ + prerelease?: boolean; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["release"]; + }; + }; + }; + /** + * Users with push access to the repository can delete a release. + */ + "repos/delete-release": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + "repos/list-release-assets": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release_id"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["release-asset"][]; + }; + }; + }; + /** + * This endpoint makes use of [a Hypermedia relation](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia) to determine which URL to access. The endpoint you call to upload release assets is specific to your release. Use the `upload_url` returned in + * the response of the [Create a release endpoint](https://docs.github.com/rest/reference/repos#create-a-release) to upload a release asset. + * + * You need to use an HTTP client which supports [SNI](http://en.wikipedia.org/wiki/Server_Name_Indication) to make calls to this endpoint. + * + * Most libraries will set the required `Content-Length` header automatically. Use the required `Content-Type` header to provide the media type of the asset. For a list of media types, see [Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml). For example: + * + * `application/zip` + * + * GitHub expects the asset data in its raw binary form, rather than JSON. You will send the raw binary content of the asset as the request body. Everything else about the endpoint is the same as the rest of the API. For example, + * you'll still need to pass your authentication to be able to upload an asset. + * + * When an upstream failure occurs, you will receive a `502 Bad Gateway` status. This may leave an empty asset with a state of `starter`. It can be safely deleted. + * + * **Notes:** + * * GitHub renames asset filenames that have special characters, non-alphanumeric characters, and leading or trailing periods. The "[List assets for a release](https://docs.github.com/rest/reference/repos#list-assets-for-a-release)" + * endpoint lists the renamed filenames. For more information and help, contact [GitHub Support](https://github.com/contact). + * * If you upload an asset with the same filename as another uploaded asset, you'll receive an error and must delete the old file before you can re-upload the new asset. + */ + "repos/upload-release-asset": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + release_id: components["parameters"]["release_id"]; + }; + query: { + name?: string; + label?: string; + }; + }; + requestBody: { + "*/*": string; + }; + responses: { + /** + * Response for successful upload + */ + "201": { + "application/json": components["schemas"]["release-asset"]; + }; + }; + }; + /** + * Lists all secret scanning alerts for a private repository, from newest to oldest. To use this endpoint, you must be an administrator for the repository or organization, and you must use an access token with the `repo` scope or `security_events` scope. + * + * GitHub Apps must have the `secret_scanning_alerts` read permission to use this endpoint. + */ + "secret-scanning/list-alerts-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + /** + * Set to `open` or `resolved` to only list secret scanning alerts in a specific state. + */ + state?: "open" | "resolved"; + page?: components["parameters"]["page"]; + per_page?: components["parameters"]["per_page"]; + }; + }; + responses: { + /** + * Response + */ + "200": { + "application/json": components["schemas"]["secret-scanning-alert"][]; + }; + /** + * Repository is public or secret scanning is disabled for the repository + */ + "404": unknown; + "503": unknown; + }; + }; + /** + * Gets a single secret scanning alert detected in a private repository. To use this endpoint, you must be an administrator for the repository or organization, and you must use an access token with the `repo` scope or `security_events` scope. + * + * GitHub Apps must have the `secret_scanning_alerts` read permission to use this endpoint. + */ + "secret-scanning/get-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["alert_number"]; + }; + }; + responses: { + /** + * Default response + */ + "200": { + "application/json": components["schemas"]["secret-scanning-alert"]; + }; + /** + * Repository is public, or secret scanning is disabled for the repository, or the resource is not found + */ + "404": unknown; + "503": unknown; + }; + }; + /** + * Updates the status of a secret scanning alert in a private repository. To use this endpoint, you must be an administrator for the repository or organization, and you must use an access token with the `repo` scope or `security_events` scope. + * + * GitHub Apps must have the `secret_scanning_alerts` write permission to use this endpoint. + */ + "secret-scanning/update-alert": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + alert_number: components["parameters"]["alert_number"]; + }; + }; + requestBody: { + "application/json": { + state: components["schemas"]["secret-scanning-alert-state"]; + resolution?: components["schemas"]["secret-scanning-alert-resolution"]; + }; + }; + responses: { + /** + * Default response + */ + "200": { + "application/json": components["schemas"]["secret-scanning-alert"]; + }; + /** + * Repository is public, or secret scanning is disabled for the repository, or the resource is not found + */ + "404": unknown; + /** + * State does not match the resolution + */ + "422": unknown; + "503": unknown; + }; + }; + /** + * Lists the people that have starred the repository. + * + * You can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + "activity/list-stargazers-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["simple-user"][]; + "application/vnd.github.v3.star+json": components["schemas"]["stargazer"][]; + }; + "422": unknown; + }; + }; + /** + * Returns a weekly aggregate of the number of additions and deletions pushed to a repository. + */ + "repos/get-code-frequency-stats": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * Returns a weekly aggregate of the number of additions and deletions pushed to a repository. + */ + "200": { + "application/json": components["schemas"]["code-frequency-stat"][]; + }; + }; + }; + /** + * Returns the last year of commit activity grouped by week. The `days` array is a group of commits per day, starting on `Sunday`. + */ + "repos/get-commit-activity-stats": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["commit-activity"][]; + }; + }; + }; + /** + * Returns the `total` number of commits authored by the contributor. In addition, the response includes a Weekly Hash (`weeks` array) with the following information: + * + * * `w` - Start of the week, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time). + * * `a` - Number of additions + * * `d` - Number of deletions + * * `c` - Number of commits + */ + "repos/get-contributors-stats": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * * `w` - Start of the week, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time). + * * `a` - Number of additions + * * `d` - Number of deletions + * * `c` - Number of commits + */ + "200": { + "application/json": components["schemas"]["contributor-activity"][]; + }; + }; + }; + /** + * Returns the total commit counts for the `owner` and total commit counts in `all`. `all` is everyone combined, including the `owner` in the last 52 weeks. If you'd like to get the commit counts for non-owners, you can subtract `owner` from `all`. + * + * The array order is oldest week (index 0) to most recent week. + */ + "repos/get-participation-stats": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * The array order is oldest week (index 0) to most recent week. + */ + "200": { + "application/json": components["schemas"]["participation-stats"]; + }; + "404": unknown; + }; + }; + /** + * Each array contains the day number, hour number, and number of commits: + * + * * `0-6`: Sunday - Saturday + * * `0-23`: Hour of day + * * Number of commits + * + * For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits. + */ + "repos/get-punch-card-stats": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits. + */ + "200": { + "application/json": components["schemas"]["code-frequency-stat"][]; + }; + }; + }; + /** + * Users with push access in a repository can create commit statuses for a given SHA. + * + * Note: there is a limit of 1000 statuses per `sha` and `context` within a repository. Attempts to create more than 1000 statuses will result in a validation error. + */ + "repos/create-commit-status": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + sha: string; + }; + }; + requestBody: { + "application/json": { + /** + * The state of the status. Can be one of `error`, `failure`, `pending`, or `success`. + */ + state: "error" | "failure" | "pending" | "success"; + /** + * The target URL to associate with this status. This URL will be linked from the GitHub UI to allow users to easily see the source of the status. + * For example, if your continuous integration system is posting build status, you would want to provide the deep link for the build output for this specific SHA: + * `http://ci.example.com/user/repo/build/sha` + */ + target_url?: string; + /** + * A short description of the status. + */ + description?: string; + /** + * A string label to differentiate this status from the status of other systems. + */ + context?: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["status"]; + }; + }; + }; + /** + * Lists the people watching the specified repository. + */ + "activity/list-watchers-for-repo": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + "activity/get-repo-subscription": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * Response if you subscribe to the repository + */ + "200": { + "application/json": components["schemas"]["repository-subscription"]; + }; + "403": unknown; + /** + * Response if you don't subscribe to the repository + */ + "404": unknown; + }; + }; + /** + * If you would like to watch a repository, set `subscribed` to `true`. If you would like to ignore notifications made within a repository, set `ignored` to `true`. If you would like to stop watching a repository, [delete the repository's subscription](https://docs.github.com/rest/reference/activity#delete-a-repository-subscription) completely. + */ + "activity/set-repo-subscription": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * Determines if notifications should be received from this repository. + */ + subscribed?: boolean; + /** + * Determines if all notifications should be blocked from this repository. + */ + ignored?: boolean; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["repository-subscription"]; + }; + }; + }; + /** + * This endpoint should only be used to stop watching a repository. To control whether or not you wish to receive notifications from a repository, [set the repository's subscription manually](https://docs.github.com/rest/reference/activity#set-a-repository-subscription). + */ + "activity/delete-repo-subscription": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + "repos/list-tags": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["tag"][]; + }; + }; + }; + /** + * Gets a redirect URL to download a tar archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `master`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * **Note**: For private repositories, these links are temporary and expire after five minutes. + */ + "repos/download-tarball-archive": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: string; + }; + }; + responses: { + /** + * response + */ + "302": never; + }; + }; + "repos/list-teams": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team"][]; + }; + }; + }; + "repos/get-all-topics": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["topic"]; + }; + "404": unknown; + "415": unknown; + }; + }; + "repos/replace-all-topics": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * An array of topics to add to the repository. Pass one or more topics to _replace_ the set of existing topics. Send an empty array (`[]`) to clear all topics from the repository. **Note:** Topic `names` cannot contain uppercase letters. + */ + names: string[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["topic"]; + }; + "404": unknown; + "415": unknown; + "422": unknown; + }; + }; + /** + * Get the total number of clones and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + "repos/get-clones": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + per?: components["parameters"]["per"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["clone-traffic"]; + }; + "403": unknown; + }; + }; + /** + * Get the top 10 popular contents over the last 14 days. + */ + "repos/get-top-paths": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["content-traffic"][]; + }; + "403": unknown; + }; + }; + /** + * Get the top 10 referrers over the last 14 days. + */ + "repos/get-top-referrers": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["referrer-traffic"][]; + }; + "403": unknown; + }; + }; + /** + * Get the total number of views and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + "repos/get-views": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + query: { + per?: components["parameters"]["per"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["view-traffic"]; + }; + "403": unknown; + }; + }; + /** + * A transfer request will need to be accepted by the new owner when transferring a personal repository to another user. The response will contain the original `owner`, and the transfer will continue asynchronously. For more details on the requirements to transfer personal and organization-owned repositories, see [about repository transfers](https://help.github.com/articles/about-repository-transfers/). + */ + "repos/transfer": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * **Required:** The username or organization name the repository will be transferred to. + */ + new_owner?: string; + /** + * ID of the team or teams to add to the repository. Teams can only be added to organization-owned repositories. + */ + team_ids?: number[]; + }; + }; + responses: { + /** + * response + */ + "202": { + "application/json": components["schemas"]["repository"]; + }; + }; + }; + /** + * Shows whether dependency alerts are enabled or disabled for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://help.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + "repos/check-vulnerability-alerts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * Response if repository is enabled with vulnerability alerts + */ + "204": never; + /** + * Response if repository is not enabled with vulnerability alerts + */ + "404": unknown; + }; + }; + /** + * Enables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://help.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + "repos/enable-vulnerability-alerts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Disables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://help.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + "repos/disable-vulnerability-alerts": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Gets a redirect URL to download a zip archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `master`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * **Note**: For private repositories, these links are temporary and expire after five minutes. + */ + "repos/download-zipball-archive": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + ref: string; + }; + }; + responses: { + /** + * response + */ + "302": never; + }; + }; + /** + * Creates a new repository using a repository template. Use the `template_owner` and `template_repo` route parameters to specify the repository to use as the template. The authenticated user must own or be a member of an organization that owns the repository. To check if a repository is available to use as a template, get the repository's information using the [Get a repository](https://docs.github.com/rest/reference/repos#get-a-repository) endpoint and check that the `is_template` key is `true`. + * + * **OAuth scope requirements** + * + * When using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include: + * + * * `public_repo` scope or `repo` scope to create a public repository + * * `repo` scope to create a private repository + */ + "repos/create-using-template": { + parameters: { + path: { + template_owner: string; + template_repo: string; + }; + }; + requestBody: { + "application/json": { + /** + * The organization or person who will own the new repository. To create a new repository in an organization, the authenticated user must be a member of the specified organization. + */ + owner?: string; + /** + * The name of the new repository. + */ + name: string; + /** + * A short description of the new repository. + */ + description?: string; + /** + * Set to `true` to include the directory structure and files from all branches in the template repository, and not just the default branch. Default: `false`. + */ + include_all_branches?: boolean; + /** + * Either `true` to create a new private repository or `false` to create a new public one. + */ + private?: boolean; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["repository"]; + }; + }; + }; + /** + * Lists all public repositories in the order that they were created. + * + * Note: Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of repositories. + */ + "repos/list-public": { + parameters: { + query: { + since?: components["parameters"]["since-repo"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["minimal-repository"][]; + }; + "304": never; + "422": unknown; + }; + }; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + */ + "enterprise-admin/list-provisioned-groups-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + }; + query: { + startIndex?: components["parameters"]["start_index"]; + count?: components["parameters"]["count"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["scim-group-list-enterprise"]; + }; + }; + }; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + * + * Provision an enterprise group, and invite users to the group. This sends invitation emails to the email address of the invited users to join the GitHub organization that the SCIM group corresponds to. + */ + "enterprise-admin/provision-and-invite-enterprise-group": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + }; + }; + requestBody: { + "application/json": { + /** + * The SCIM schema URIs. + */ + schemas: string[]; + /** + * The name of the SCIM group. This must match the GitHub organization that the group maps to. + */ + displayName: string; + members?: { + /** + * The SCIM user ID for a user. + */ + value: string; + }[]; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["scim-enterprise-group"]; + }; + }; + }; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + */ + "enterprise-admin/get-provisioning-information-for-enterprise-group": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + scim_group_id: components["parameters"]["scim_group_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["scim-enterprise-group"]; + }; + }; + }; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + * + * Replaces an existing provisioned group’s information. You must provide all the information required for the group as if you were provisioning it for the first time. Any existing group information that you don't provide will be removed, including group membership. If you want to only update a specific attribute, use the [Update an attribute for a SCIM enterprise group](#update-an-attribute-for-a-scim-enterprise-group) endpoint instead. + */ + "enterprise-admin/set-information-for-provisioned-enterprise-group": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + scim_group_id: components["parameters"]["scim_group_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The SCIM schema URIs. + */ + schemas: string[]; + /** + * The name of the SCIM group. This must match the GitHub organization that the group maps to. + */ + displayName: string; + members?: { + /** + * The SCIM user ID for a user. + */ + value: string; + }[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["scim-enterprise-group"]; + }; + }; + }; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + * + * Allows you to change a provisioned group’s individual attributes. To change a group’s values, you must provide a specific Operations JSON format that contains at least one of the add, remove, or replace operations. For examples and more information on the SCIM operations format, see the [SCIM specification](https://tools.ietf.org/html/rfc7644#section-3.5.2). + */ + "enterprise-admin/update-attribute-for-enterprise-group": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + scim_group_id: components["parameters"]["scim_group_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The SCIM schema URIs. + */ + schemas: string[]; + /** + * Array of [SCIM operations](https://tools.ietf.org/html/rfc7644#section-3.5.2). + */ + Operations: { [key: string]: any }[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["scim-enterprise-group"]; + }; + }; + }; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + */ + "enterprise-admin/delete-scim-group-from-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + scim_group_id: components["parameters"]["scim_group_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + * + * Retrieves a paginated list of all provisioned enterprise members, including pending invitations. + * + * When a user with a SAML-provisioned external identity leaves (or is removed from) an enterprise, the account's metadata is immediately removed. However, the returned list of user accounts might not always match the organization or enterprise member list you see on GitHub. This can happen in certain cases where an external identity associated with an organization will not match an organization member: + * - When a user with a SCIM-provisioned external identity is removed from an enterprise, the account's metadata is preserved to allow the user to re-join the organization in the future. + * - When inviting a user to join an organization, you can expect to see their external identity in the results before they accept the invitation, or if the invitation is cancelled (or never accepted). + * - When a user is invited over SCIM, an external identity is created that matches with the invitee's email address. However, this identity is only linked to a user account when the user accepts the invitation by going through SAML SSO. + * + * The returned list of external identities can include an entry for a `null` user. These are unlinked SAML identities that are created when a user goes through the following Single Sign-On (SSO) process but does not sign in to their GitHub account after completing SSO: + * + * 1. The user is granted access by the IdP and is not a member of the GitHub enterprise. + * + * 1. The user attempts to access the GitHub enterprise and initiates the SAML SSO process, and is not currently signed in to their GitHub account. + * + * 1. After successfully authenticating with the SAML SSO IdP, the `null` external identity entry is created and the user is prompted to sign in to their GitHub account: + * - If the user signs in, their GitHub account is linked to this entry. + * - If the user does not sign in (or does not create a new account when prompted), they are not added to the GitHub enterprise, and the external identity `null` entry remains in place. + */ + "enterprise-admin/list-provisioned-identities-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + }; + query: { + startIndex?: components["parameters"]["start_index"]; + count?: components["parameters"]["count"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["scim-user-list-enterprise"]; + }; + }; + }; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + * + * Provision enterprise membership for a user, and send organization invitation emails to the email address. + * + * You can optionally include the groups a user will be invited to join. If you do not provide a list of `groups`, the user is provisioned for the enterprise, but no organization invitation emails will be sent. + */ + "enterprise-admin/provision-and-invite-enterprise-user": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + }; + }; + requestBody: { + "application/json": { + /** + * The SCIM schema URIs. + */ + schemas: string[]; + /** + * The username for the user. + */ + userName: string; + name: { + /** + * The first name of the user. + */ + givenName: string; + /** + * The last name of the user. + */ + familyName: string; + }; + /** + * List of user emails. + */ + emails: { + /** + * The email address. + */ + value: string; + /** + * The type of email address. + */ + type: string; + /** + * Whether this email address is the primary address. + */ + primary: boolean; + }[]; + /** + * List of SCIM group IDs the user is a member of. + */ + groups?: { value?: string }[]; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["scim-enterprise-user"]; + }; + }; + }; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + */ + "enterprise-admin/get-provisioning-information-for-enterprise-user": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + scim_user_id: components["parameters"]["scim_user_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["scim-enterprise-user"]; + }; + }; + }; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + * + * Replaces an existing provisioned user's information. You must provide all the information required for the user as if you were provisioning them for the first time. Any existing user information that you don't provide will be removed. If you want to only update a specific attribute, use the [Update an attribute for a SCIM user](#update-an-attribute-for-an-enterprise-scim-user) endpoint instead. + * + * You must at least provide the required values for the user: `userName`, `name`, and `emails`. + * + * **Warning:** Setting `active: false` removes the user from the enterprise, deletes the external identity, and deletes the associated `{scim_user_id}`. + */ + "enterprise-admin/set-information-for-provisioned-enterprise-user": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + scim_user_id: components["parameters"]["scim_user_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The SCIM schema URIs. + */ + schemas: string[]; + /** + * The username for the user. + */ + userName: string; + name: { + /** + * The first name of the user. + */ + givenName: string; + /** + * The last name of the user. + */ + familyName: string; + }; + /** + * List of user emails. + */ + emails: { + /** + * The email address. + */ + value: string; + /** + * The type of email address. + */ + type: string; + /** + * Whether this email address is the primary address. + */ + primary: boolean; + }[]; + /** + * List of SCIM group IDs the user is a member of. + */ + groups?: { value?: string }[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["scim-enterprise-user"]; + }; + }; + }; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + * + * Allows you to change a provisioned user's individual attributes. To change a user's values, you must provide a specific `Operations` JSON format that contains at least one of the `add`, `remove`, or `replace` operations. For examples and more information on the SCIM operations format, see the [SCIM specification](https://tools.ietf.org/html/rfc7644#section-3.5.2). + * + * **Note:** Complicated SCIM `path` selectors that include filters are not supported. For example, a `path` selector defined as `"path": "emails[type eq \"work\"]"` will not work. + * + * **Warning:** If you set `active:false` using the `replace` operation (as shown in the JSON example below), it removes the user from the enterprise, deletes the external identity, and deletes the associated `:scim_user_id`. + * + * ``` + * { + * "Operations":[{ + * "op":"replace", + * "value":{ + * "active":false + * } + * }] + * } + * ``` + */ + "enterprise-admin/update-attribute-for-enterprise-user": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + scim_user_id: components["parameters"]["scim_user_id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The SCIM schema URIs. + */ + schemas: string[]; + /** + * Array of [SCIM operations](https://tools.ietf.org/html/rfc7644#section-3.5.2). + */ + Operations: { [key: string]: any }[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["scim-enterprise-user"]; + }; + }; + }; + /** + * **Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change. + */ + "enterprise-admin/delete-user-from-enterprise": { + parameters: { + path: { + enterprise: components["parameters"]["enterprise"]; + scim_user_id: components["parameters"]["scim_user_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * Retrieves a paginated list of all provisioned organization members, including pending invitations. If you provide the `filter` parameter, the resources for all matching provisions members are returned. + * + * When a user with a SAML-provisioned external identity leaves (or is removed from) an organization, the account's metadata is immediately removed. However, the returned list of user accounts might not always match the organization or enterprise member list you see on GitHub. This can happen in certain cases where an external identity associated with an organization will not match an organization member: + * - When a user with a SCIM-provisioned external identity is removed from an organization, the account's metadata is preserved to allow the user to re-join the organization in the future. + * - When inviting a user to join an organization, you can expect to see their external identity in the results before they accept the invitation, or if the invitation is cancelled (or never accepted). + * - When a user is invited over SCIM, an external identity is created that matches with the invitee's email address. However, this identity is only linked to a user account when the user accepts the invitation by going through SAML SSO. + * + * The returned list of external identities can include an entry for a `null` user. These are unlinked SAML identities that are created when a user goes through the following Single Sign-On (SSO) process but does not sign in to their GitHub account after completing SSO: + * + * 1. The user is granted access by the IdP and is not a member of the GitHub organization. + * + * 1. The user attempts to access the GitHub organization and initiates the SAML SSO process, and is not currently signed in to their GitHub account. + * + * 1. After successfully authenticating with the SAML SSO IdP, the `null` external identity entry is created and the user is prompted to sign in to their GitHub account: + * - If the user signs in, their GitHub account is linked to this entry. + * - If the user does not sign in (or does not create a new account when prompted), they are not added to the GitHub organization, and the external identity `null` entry remains in place. + */ + "scim/list-provisioned-identities": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + query: { + /** + * Used for pagination: the index of the first result to return. + */ + startIndex?: number; + /** + * Used for pagination: the number of results to return. + */ + count?: number; + /** + * Filters results using the equals query parameter operator (`eq`). You can filter results that are equal to `id`, `userName`, `emails`, and `external_id`. For example, to search for an identity with the `userName` Octocat, you would use this query: + * + * `?filter=userName%20eq%20\"Octocat\"`. + * + * To filter results for for the identity with the email `octocat@github.com`, you would use this query: + * + * `?filter=emails%20eq%20\"octocat@github.com\"`. + */ + filter?: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/scim+json": components["schemas"]["scim-user-list"]; + }; + "304": never; + "400": unknown; + "403": unknown; + "404": unknown; + }; + }; + /** + * Provision organization membership for a user, and send an activation email to the email address. + */ + "scim/provision-and-invite-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + "application/json": { + /** + * Configured by the admin. Could be an email, login, or username + */ + userName: string; + /** + * The name of the user, suitable for display to end-users + */ + displayName?: string; + name: { givenName: string; familyName: string; formatted?: string }; + /** + * user emails + */ + emails: { value: string; primary?: boolean; type?: string }[]; + schemas?: string[]; + externalId?: string; + groups?: string[]; + active?: boolean; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/scim+json": components["schemas"]["scim-user"]; + }; + "304": never; + "400": unknown; + "403": unknown; + "404": unknown; + "409": unknown; + "500": unknown; + }; + }; + "scim/get-provisioning-information-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + scim_user_id: components["parameters"]["scim_user_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/scim+json": components["schemas"]["scim-user"]; + }; + "304": never; + "403": unknown; + "404": unknown; + }; + }; + /** + * Replaces an existing provisioned user's information. You must provide all the information required for the user as if you were provisioning them for the first time. Any existing user information that you don't provide will be removed. If you want to only update a specific attribute, use the [Update an attribute for a SCIM user](https://docs.github.com/rest/reference/scim#update-an-attribute-for-a-scim-user) endpoint instead. + * + * You must at least provide the required values for the user: `userName`, `name`, and `emails`. + * + * **Warning:** Setting `active: false` removes the user from the organization, deletes the external identity, and deletes the associated `{scim_user_id}`. + */ + "scim/set-information-for-provisioned-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + scim_user_id: components["parameters"]["scim_user_id"]; + }; + }; + requestBody: { + "application/json": { + schemas?: string[]; + /** + * The name of the user, suitable for display to end-users + */ + displayName?: string; + externalId?: string; + groups?: string[]; + active?: boolean; + /** + * Configured by the admin. Could be an email, login, or username + */ + userName: string; + name: { givenName: string; familyName: string; formatted?: string }; + /** + * user emails + */ + emails: { type?: string; value: string; primary?: boolean }[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/scim+json": components["schemas"]["scim-user"]; + }; + "304": never; + "403": unknown; + "404": unknown; + }; + }; + /** + * Allows you to change a provisioned user's individual attributes. To change a user's values, you must provide a specific `Operations` JSON format that contains at least one of the `add`, `remove`, or `replace` operations. For examples and more information on the SCIM operations format, see the [SCIM specification](https://tools.ietf.org/html/rfc7644#section-3.5.2). + * + * **Note:** Complicated SCIM `path` selectors that include filters are not supported. For example, a `path` selector defined as `"path": "emails[type eq \"work\"]"` will not work. + * + * **Warning:** If you set `active:false` using the `replace` operation (as shown in the JSON example below), it removes the user from the organization, deletes the external identity, and deletes the associated `:scim_user_id`. + * + * ``` + * { + * "Operations":[{ + * "op":"replace", + * "value":{ + * "active":false + * } + * }] + * } + * ``` + */ + "scim/update-attribute-for-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + scim_user_id: components["parameters"]["scim_user_id"]; + }; + }; + requestBody: { + "application/json": { + schemas?: string[]; + /** + * Set of operations to be performed + */ + Operations: { + op: "add" | "remove" | "replace"; + path?: string; + value?: + | { + active?: boolean | null; + userName?: string | null; + externalId?: string | null; + givenName?: string | null; + familyName?: string | null; + } + | { value?: string; primary?: boolean }[] + | string; + }[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/scim+json": components["schemas"]["scim-user"]; + }; + "304": never; + "400": unknown; + "403": unknown; + "404": unknown; + /** + * Too many requests + */ + "429": { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + "scim/delete-user-from-org": { + parameters: { + path: { + org: components["parameters"]["org"]; + scim_user_id: components["parameters"]["scim_user_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "403": unknown; + "404": unknown; + }; + }; + /** + * Searches for query terms inside of a file. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for code, you can get text match metadata for the file **content** and file **path** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to find the definition of the `addClass` function inside [jQuery](https://github.com/jquery/jquery) repository, your query would look something like this: + * + * `q=addClass+in:file+language:js+repo:jquery/jquery` + * + * This query searches for the keyword `addClass` within a file's contents. The query limits the search to files where the language is JavaScript in the `jquery/jquery` repository. + * + * #### Considerations for code search + * + * Due to the complexity of searching code, there are a few restrictions on how searches are performed: + * + * * Only the _default branch_ is considered. In most cases, this will be the `master` branch. + * * Only files smaller than 384 KB are searchable. + * * You must always include at least one search term when searching source code. For example, searching for [`language:go`](https://github.com/search?utf8=%E2%9C%93&q=language%3Ago&type=Code) is not valid, while [`amazing + * language:go`](https://github.com/search?utf8=%E2%9C%93&q=amazing+language%3Ago&type=Code) is. + */ + "search/code": { + parameters: { + query: { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See "[Searching code](https://help.github.com/articles/searching-code/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query. Can only be `indexed`, which indicates how recently a file has been indexed by the GitHub search infrastructure. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results) + */ + sort?: "indexed"; + order?: components["parameters"]["order"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + incomplete_results?: boolean; + items?: components["schemas"]["code-search-result-item"][]; + }; + }; + "304": never; + "403": unknown; + "422": unknown; + "503": unknown; + }; + }; + /** + * Find commits via various criteria on the default branch (usually `master`). This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for commits, you can get text match metadata for the **message** field when you provide the `text-match` media type. For more details about how to receive highlighted search results, see [Text match + * metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to find commits related to CSS in the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. Your query would look something like this: + * + * `q=repo:octocat/Spoon-Knife+css` + */ + "search/commits": { + parameters: { + query: { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See "[Searching commits](https://help.github.com/articles/searching-commits/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by `author-date` or `committer-date`. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results) + */ + sort?: "author-date" | "committer-date"; + order?: components["parameters"]["order"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + incomplete_results?: boolean; + items?: components["schemas"]["commit-search-result-item"][]; + }; + }; + "304": never; + "415": unknown; + }; + }; + /** + * Find issues by state and keyword. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for issues, you can get text match metadata for the issue **title**, issue **body**, and issue **comment body** fields when you pass the `text-match` media type. For more details about how to receive highlighted + * search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this. + * + * `q=windows+label:bug+language:python+state:open&sort=created&order=asc` + * + * This query searches for the keyword `windows`, within any open issue that is labeled as `bug`. The search runs across repositories whose primary language is Python. The results are sorted by creation date in ascending order, which means the oldest issues appear first in the search results. + * + * **Note:** For [user-to-server](https://docs.github.com/developers/apps/identifying-and-authorizing-users-for-github-apps#user-to-server-requests) GitHub App requests, you can't retrieve a combination of issues and pull requests in a single query. Requests that don't include the `is:issue` or `is:pull-request` qualifier will receive an HTTP `422 Unprocessable Entity` response. To get results for both issues and pull requests, you must send separate queries for issues and pull requests. For more information about the `is` qualifier, see "[Searching only issues or pull requests](https://docs.github.com/github/searching-for-information-on-github/searching-issues-and-pull-requests#search-only-issues-or-pull-requests)." + */ + "search/issues-and-pull-requests": { + parameters: { + query: { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See "[Searching issues and pull requests](https://help.github.com/articles/searching-issues-and-pull-requests/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by the number of `comments`, `reactions`, `reactions-+1`, `reactions--1`, `reactions-smile`, `reactions-thinking_face`, `reactions-heart`, `reactions-tada`, or `interactions`. You can also sort results by how recently the items were `created` or `updated`, Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results) + */ + sort?: + | "comments" + | "reactions" + | "reactions-+1" + | "reactions--1" + | "reactions-smile" + | "reactions-thinking_face" + | "reactions-heart" + | "reactions-tada" + | "interactions" + | "created" + | "updated"; + order?: components["parameters"]["order"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + incomplete_results?: boolean; + items?: components["schemas"]["issue-search-result-item"][]; + }; + }; + "304": never; + "403": unknown; + "422": unknown; + "503": unknown; + }; + }; + /** + * Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for labels, you can get text match metadata for the label **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to find labels in the `linguist` repository that match `bug`, `defect`, or `enhancement`. Your query might look like this: + * + * `q=bug+defect+enhancement&repository_id=64778136` + * + * The labels that best match the query appear first in the search results. + */ + "search/labels": { + parameters: { + query: { + /** + * The id of the repository. + */ + repository_id: number; + /** + * The search keywords. This endpoint does not accept qualifiers in the query. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). + */ + q: string; + /** + * Sorts the results of your query by when the label was `created` or `updated`. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results) + */ + sort?: "created" | "updated"; + order?: components["parameters"]["order"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + incomplete_results?: boolean; + items?: components["schemas"]["label-search-result-item"][]; + }; + }; + "304": never; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + /** + * Find repositories via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for repositories, you can get text match metadata for the **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to search for popular Tetris repositories written in assembly code, your query might look like this: + * + * `q=tetris+language:assembly&sort=stars&order=desc` + * + * This query searches for repositories with the word `tetris` in the name, the description, or the README. The results are limited to repositories where the primary language is assembly. The results are sorted by stars in descending order, so that the most popular repositories appear first in the search results. + * + * When you include the `mercy` preview header, you can also search for multiple topics by adding more `topic:` instances. For example, your query might look like this: + * + * `q=topic:ruby+topic:rails` + */ + "search/repos": { + parameters: { + query: { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See "[Searching for repositories](https://help.github.com/articles/searching-for-repositories/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by number of `stars`, `forks`, or `help-wanted-issues` or how recently the items were `updated`. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results) + */ + sort?: "stars" | "forks" | "help-wanted-issues" | "updated"; + order?: components["parameters"]["order"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + incomplete_results?: boolean; + items?: components["schemas"]["repo-search-result-item"][]; + }; + }; + "304": never; + "422": unknown; + "503": unknown; + }; + }; + /** + * Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). See "[Searching topics](https://help.github.com/articles/searching-topics/)" for a detailed list of qualifiers. + * + * When searching for topics, you can get text match metadata for the topic's **short\_description**, **description**, **name**, or **display\_name** field when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to search for topics related to Ruby that are featured on https://github.com/topics. Your query might look like this: + * + * `q=ruby+is:featured` + * + * This query searches for topics with the keyword `ruby` and limits the results to find only topics that are featured. The topics that are the best match for the query appear first in the search results. + */ + "search/topics": { + parameters: { + query: { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). + */ + q: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + incomplete_results?: boolean; + items?: components["schemas"]["topic-search-result-item"][]; + }; + }; + "304": never; + "415": unknown; + }; + }; + /** + * Find users via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for users, you can get text match metadata for the issue **login**, **email**, and **name** fields when you pass the `text-match` media type. For more details about highlighting search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you're looking for a list of popular users, you might try this query: + * + * `q=tom+repos:%3E42+followers:%3E1000` + * + * This query searches for users with the name `tom`. The results are restricted to users with more than 42 repositories and over 1,000 followers. + */ + "search/users": { + parameters: { + query: { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://docs.github.com/rest/reference/search#constructing-a-search-query). See "[Searching users](https://help.github.com/articles/searching-users/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by number of `followers` or `repositories`, or when the person `joined` GitHub. Default: [best match](https://docs.github.com/rest/reference/search#ranking-search-results) + */ + sort?: "followers" | "repositories" | "joined"; + order?: components["parameters"]["order"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": { + total_count?: number; + incomplete_results?: boolean; + items?: components["schemas"]["user-search-result-item"][]; + }; + }; + "304": never; + "422": unknown; + "503": unknown; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the [Get a team by name](https://docs.github.com/rest/reference/teams#get-a-team-by-name) endpoint. + */ + "teams/get-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-full"]; + }; + "404": unknown; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a team](https://docs.github.com/rest/reference/teams#update-a-team) endpoint. + * + * To edit a team, the authenticated user must either be an organization owner or a team maintainer. + * + * **Note:** With nested teams, the `privacy` for parent teams cannot be `secret`. + */ + "teams/update-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The name of the team. + */ + name: string; + /** + * The description of the team. + */ + description?: string; + /** + * The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. The options are: + * **For a non-nested team:** + * \* `secret` - only visible to organization owners and members of this team. + * \* `closed` - visible to all members of this organization. + * **For a parent or child team:** + * \* `closed` - visible to all members of this organization. + */ + privacy?: "secret" | "closed"; + /** + * **Deprecated**. The permission that new repositories will be added to the team with when none is specified. Can be one of: + * \* `pull` - team members can pull, but not push to or administer newly-added repositories. + * \* `push` - team members can pull and push, but not administer newly-added repositories. + * \* `admin` - team members can pull, push and administer newly-added repositories. + */ + permission?: "pull" | "push" | "admin"; + /** + * The ID of a team to set as the parent team. + */ + parent_team_id?: number | null; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["team-full"]; + }; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a team](https://docs.github.com/rest/reference/teams#delete-a-team) endpoint. + * + * To delete a team, the authenticated user must be an organization owner or team maintainer. + * + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. + */ + "teams/delete-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "404": unknown; + "422": unknown; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List discussions`](https://docs.github.com/rest/reference/teams#list-discussions) endpoint. + * + * List all discussions on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "teams/list-discussions-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + query: { + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-discussion"][]; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create a discussion`](https://docs.github.com/rest/reference/teams#create-a-discussion) endpoint. + * + * Creates a new discussion post on a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + */ + "teams/create-discussion-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The discussion post's title. + */ + title: string; + /** + * The discussion post's body text. + */ + body: string; + /** + * Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to `true` to create a private post. + */ + private?: boolean; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion](https://docs.github.com/rest/reference/teams#get-a-discussion) endpoint. + * + * Get a specific discussion on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "teams/get-discussion-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion](https://docs.github.com/rest/reference/teams#update-a-discussion) endpoint. + * + * Edits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "teams/update-discussion-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody: { + "application/json": { + /** + * The discussion post's title. + */ + title?: string; + /** + * The discussion post's body text. + */ + body?: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-discussion"]; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Delete a discussion`](https://docs.github.com/rest/reference/teams#delete-a-discussion) endpoint. + * + * Delete a discussion from a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "teams/delete-discussion-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List discussion comments](https://docs.github.com/rest/reference/teams#list-discussion-comments) endpoint. + * + * List all comments on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "teams/list-discussion-comments-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + query: { + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-discussion-comment"][]; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Create a discussion comment](https://docs.github.com/rest/reference/teams#create-a-discussion-comment) endpoint. + * + * Creates a new comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + */ + "teams/create-discussion-comment-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody: { + "application/json": { + /** + * The discussion comment's body text. + */ + body: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get a discussion comment](https://docs.github.com/rest/reference/teams#get-a-discussion-comment) endpoint. + * + * Get a specific comment on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "teams/get-discussion-comment-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Update a discussion comment](https://docs.github.com/rest/reference/teams#update-a-discussion-comment) endpoint. + * + * Edits the body text of a discussion comment. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "teams/update-discussion-comment-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + requestBody: { + "application/json": { + /** + * The discussion comment's body text. + */ + body: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-discussion-comment"]; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Delete a discussion comment](https://docs.github.com/rest/reference/teams#delete-a-discussion-comment) endpoint. + * + * Deletes a comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "teams/delete-discussion-comment-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion comment`](https://docs.github.com/rest/reference/reactions#list-reactions-for-a-team-discussion-comment) endpoint. + * + * List the reactions to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "reactions/list-for-team-discussion-comment-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + query: { + /** + * Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a team discussion comment. + */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["reaction"][]; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create reaction for a team discussion comment`](https://docs.github.comt/rest/reference/reactions#create-reaction-for-a-team-discussion-comment) endpoint. + * + * Create a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with a `Status: 200 OK` means that you already added the reaction type to this team discussion comment. + */ + "reactions/create-for-team-discussion-comment-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + comment_number: components["parameters"]["comment-number"]; + }; + }; + requestBody: { + "application/json": { + /** + * The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the team discussion comment. + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["reaction"]; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List reactions for a team discussion`](https://docs.github.com/rest/reference/reactions#list-reactions-for-a-team-discussion) endpoint. + * + * List the reactions to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "reactions/list-for-team-discussion-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + query: { + /** + * Returns a single [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types). Omit this parameter to list all reactions to a team discussion. + */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["reaction"][]; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create reaction for a team discussion`](https://docs.github.com/rest/reference/reactions#create-reaction-for-a-team-discussion) endpoint. + * + * Create a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with a `Status: 200 OK` means that you already added the reaction type to this team discussion. + */ + "reactions/create-for-team-discussion-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + discussion_number: components["parameters"]["discussion-number"]; + }; + }; + requestBody: { + "application/json": { + /** + * The [reaction type](https://docs.github.com/rest/reference/reactions#reaction-types) to add to the team discussion. + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["reaction"]; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List pending team invitations`](https://docs.github.com/rest/reference/teams#list-pending-team-invitations) endpoint. + * + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + */ + "teams/list-pending-invitations-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["organization-invitation"][]; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team members`](https://docs.github.com/rest/reference/teams#list-team-members) endpoint. + * + * Team members will include the members of child teams. + */ + "teams/list-members-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + query: { + /** + * Filters members returned by their role in the team. Can be one of: + * \* `member` - normal members of the team. + * \* `maintainer` - team maintainers. + * \* `all` - all members of the team. + */ + role?: "member" | "maintainer" | "all"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["simple-user"][]; + }; + "404": unknown; + }; + }; + /** + * The "Get team member" endpoint (described below) is deprecated. + * + * We recommend using the [Get team membership for a user](https://docs.github.com/rest/reference/teams#get-team-membership-for-a-user) endpoint instead. It allows you to get both active and pending memberships. + * + * To list members in a team, the team must be visible to the authenticated user. + */ + "teams/get-member-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Response if user is a member + */ + "204": never; + /** + * Response if user is not a member + */ + "404": unknown; + }; + }; + /** + * The "Add team member" endpoint (described below) is deprecated. + * + * We recommend using the [Add or update team membership for a user](https://docs.github.com/rest/reference/teams#add-or-update-team-membership-for-a-user) endpoint instead. It allows you to invite new organization members to your teams. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To add someone to a team, the authenticated user must be an organization owner or a team maintainer in the team they're changing. The person being added to the team must be a member of the team's organization. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + "teams/add-member-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "403": unknown; + /** + * Response if team synchronization is set up + */ + "404": unknown; + /** + * response + */ + "422": { + "application/json": { + message?: string; + errors?: { code?: string; field?: string; resource?: string }[]; + documentation_url?: string; + }; + }; + }; + }; + /** + * The "Remove team member" endpoint (described below) is deprecated. + * + * We recommend using the [Remove team membership for a user](https://docs.github.com/rest/reference/teams#remove-team-membership-for-a-user) endpoint instead. It allows you to remove both active and pending memberships. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a team member, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with. Removing a team member does not delete the user, it just removes them from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + */ + "teams/remove-member-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + /** + * Response if team synchronization is setup + */ + "404": unknown; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Get team membership for a user](https://docs.github.com/rest/reference/teams#get-team-membership-for-a-user) endpoint. + * + * Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** The `role` for organization owners returns as `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/reference/teams#create-a-team). + */ + "teams/get-membership-for-user-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-membership"]; + }; + "404": unknown; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team membership for a user](https://docs.github.com/rest/reference/teams#add-or-update-team-membership-for-a-user) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * If the user is already a member of the team's organization, this endpoint will add the user to the team. To add a membership between an organization member and a team, the authenticated user must be an organization owner or a team maintainer. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * If the user is unaffiliated with the team's organization, this endpoint will send an invitation to the user via email. This newly-created membership will be in the "pending" state until the user accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. To add a membership between an unaffiliated user and a team, the authenticated user must be an organization owner. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + */ + "teams/add-or-update-membership-for-user-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + requestBody: { + "application/json": { + /** + * The role that this user should have in the team. Can be one of: + * \* `member` - a normal member of the team. + * \* `maintainer` - a team maintainer. Able to add/remove other team members, promote other team members to team maintainer, and edit the team's name and description. + */ + role?: "member" | "maintainer"; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-membership"]; + }; + /** + * Response if team synchronization is set up + */ + "403": unknown; + "404": unknown; + /** + * Response if you attempt to add an organization to a team + */ + "422": { + "application/json": { + message?: string; + errors?: { code?: string; field?: string; resource?: string }[]; + documentation_url?: string; + }; + }; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove team membership for a user](https://docs.github.com/rest/reference/teams#remove-team-membership-for-a-user) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + */ + "teams/remove-membership-for-user-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + /** + * Response if team synchronization is set up + */ + "403": unknown; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List team projects`](https://docs.github.com/rest/reference/teams#list-team-projects) endpoint. + * + * Lists the organization projects for a team. + */ + "teams/list-projects-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-project"][]; + }; + "404": unknown; + "415": unknown; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a project](https://docs.github.com/rest/reference/teams#check-team-permissions-for-a-project) endpoint. + * + * Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. + */ + "teams/check-permissions-for-project-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-project"]; + }; + /** + * Response if project is not managed by this team + */ + "404": unknown; + "415": unknown; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team project permissions](https://docs.github.com/rest/reference/teams#add-or-update-team-project-permissions) endpoint. + * + * Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + */ + "teams/add-or-update-project-permissions-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + project_id: components["parameters"]["project-id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The permission to grant to the team for this project. Can be one of: + * \* `read` - team members can read, but not write to or administer this project. + * \* `write` - team members can read and write, but not administer this project. + * \* `admin` - team members can read, write and administer this project. + * Default: the team's `permission` attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + permission?: "read" | "write" | "admin"; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + /** + * Response if the project is not owned by the organization + */ + "403": { + "application/json": { message?: string; documentation_url?: string }; + }; + "404": unknown; + "415": unknown; + "422": unknown; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a project from a team](https://docs.github.com/rest/reference/teams#remove-a-project-from-a-team) endpoint. + * + * Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. **Note:** This endpoint removes the project from the team, but does not delete it. + */ + "teams/remove-project-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + project_id: components["parameters"]["project-id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "404": unknown; + "415": unknown; + "422": unknown; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List team repositories](https://docs.github.com/rest/reference/teams#list-team-repositories) endpoint. + */ + "teams/list-repos-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["minimal-repository"][]; + }; + "404": unknown; + }; + }; + /** + * **Note**: Repositories inherited through a parent team will also be checked. + * + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Check team permissions for a repository](https://docs.github.com/rest/reference/teams#check-team-permissions-for-a-repository) endpoint. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + "teams/check-permissions-for-repo-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * Alternative response with extra repository information + */ + "200": { + "application/vnd.github.v3.repository+json": components["schemas"]["team-repository"]; + }; + /** + * Response if repository is managed by this team + */ + "204": never; + /** + * Response if repository is not managed by this team + */ + "404": unknown; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Add or update team repository permissions](https://docs.github.comt/rest/reference/teams#add-or-update-team-project-permissions) endpoint. + * + * To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + "teams/add-or-update-repo-permissions-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + requestBody: { + "application/json": { + /** + * The permission to grant the team on this repository. Can be one of: + * \* `pull` - team members can pull, but not push to or administer this repository. + * \* `push` - team members can pull and push, but not administer this repository. + * \* `admin` - team members can pull, push and administer this repository. + * + * If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository. + */ + permission?: "pull" | "push" | "admin"; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "403": unknown; + "422": unknown; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [Remove a repository from a team](https://docs.github.com/rest/reference/teams#remove-a-repository-from-a-team) endpoint. + * + * If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. NOTE: This does not delete the repository, it just removes it from the team. + */ + "teams/remove-repo-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List IdP groups for a team`](https://docs.github.com/rest/reference/teams#list-idp-groups-for-a-team) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * List IdP groups connected to a team on GitHub. + */ + "teams/list-idp-groups-for-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["group-mapping"]; + }; + "403": unknown; + "404": unknown; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`Create or update IdP group connections`](https://docs.github.com/rest/reference/teams#create-or-update-idp-group-connections) endpoint. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Creates, updates, or removes a connection between a team and an IdP group. When adding groups to a team, you must include all new and existing groups to avoid replacing existing groups with the new ones. Specifying an empty `groups` array will remove all connections for a team. + */ + "teams/create-or-update-idp-group-connections-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + }; + requestBody: { + "application/json": { + /** + * The IdP groups you want to connect to a GitHub team. When updating, the new `groups` object will replace the original one. You must include any existing groups that you don't want to remove. + */ + groups: { + /** + * ID of the IdP group. + */ + group_id: string; + /** + * Name of the IdP group. + */ + group_name: string; + /** + * Description of the IdP group. + */ + group_description: string; + id?: string; + name?: string; + description?: string; + }[]; + synced_at?: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["group-mapping"]; + }; + "403": unknown; + "422": unknown; + }; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List child teams`](https://docs.github.com/rest/reference/teams#list-child-teams) endpoint. + */ + "teams/list-child-legacy": { + parameters: { + path: { + team_id: components["parameters"]["team-id"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * Response if child teams exist + */ + "200": { + "application/json": components["schemas"]["team"][]; + }; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + /** + * If the authenticated user is authenticated through basic authentication or OAuth with the `user` scope, then the response lists public and private profile information. + * + * If the authenticated user is authenticated through OAuth without the `user` scope, then the response lists only public profile information. + */ + "users/get-authenticated": { + parameters: {}; + responses: { + /** + * response + */ + "200": { + "application/json": + | components["schemas"]["private-user"] + | components["schemas"]["public-user"]; + }; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + /** + * **Note:** If your email is set to private and you send an `email` parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not be displayed on your public profile or via the API. + */ + "users/update-authenticated": { + parameters: {}; + requestBody: { + "application/json": { + /** + * The new name of the user. + */ + name?: string; + /** + * The publicly visible email address of the user. + */ + email?: string; + /** + * The new blog URL of the user. + */ + blog?: string; + /** + * The new Twitter username of the user. + */ + twitter_username?: string | null; + /** + * The new company of the user. + */ + company?: string; + /** + * The new location of the user. + */ + location?: string; + /** + * The new hiring availability of the user. + */ + hireable?: boolean; + /** + * The new short biography of the user. + */ + bio?: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["private-user"]; + }; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + /** + * List the users you've blocked on your personal account. + */ + "users/list-blocked-by-authenticated": { + parameters: {}; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["simple-user"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + "415": unknown; + }; + }; + "users/check-blocked": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * If the user is blocked: + */ + "204": never; + "304": never; + "401": unknown; + "403": unknown; + /** + * If the user is not blocked: + */ + "404": { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + "users/block": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + "users/unblock": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + }; + }; + /** + * Sets the visibility for your primary email addresses. + */ + "users/set-primary-email-visibility-for-authenticated": { + parameters: {}; + requestBody: { + "application/json": { + /** + * An email address associated with the GitHub user account to manage. + */ + email: string; + /** + * Denotes whether an email is publically visible. + */ + visibility: "public" | "private"; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["email"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + /** + * Lists all of your email addresses, and specifies which one is visible to the public. This endpoint is accessible with the `user:email` scope. + */ + "users/list-emails-for-authenticated": { + parameters: { + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["email"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + }; + }; + /** + * This endpoint is accessible with the `user` scope. + */ + "users/add-email-for-authenticated": { + parameters: {}; + requestBody: { + "application/json": + | { + /** + * Adds one or more email addresses to your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key. + */ + emails: string[]; + } + | string[] + | string; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["email"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + /** + * This endpoint is accessible with the `user` scope. + */ + "users/delete-email-for-authenticated": { + parameters: {}; + requestBody: { + "application/json": + | { + /** + * Email addresses associated with the GitHub user account. + */ + emails: string[]; + } + | string[] + | string; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + /** + * Lists the people following the authenticated user. + */ + "users/list-followers-for-authenticated-user": { + parameters: { + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["simple-user"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + /** + * Lists the people who the authenticated user follows. + */ + "users/list-followed-by-authenticated": { + parameters: { + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["simple-user"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + "users/check-person-is-followed-by-authenticated": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Response if the person is followed by the authenticated user + */ + "204": never; + "304": never; + "401": unknown; + "403": unknown; + /** + * Response if the person is not followed by the authenticated user + */ + "404": { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + /** + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * + * Following a user requires the user to be logged in and authenticated with basic auth or OAuth with the `user:follow` scope. + */ + "users/follow": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + }; + }; + /** + * Unfollowing a user requires the user to be logged in and authenticated with basic auth or OAuth with the `user:follow` scope. + */ + "users/unfollow": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + }; + }; + /** + * Lists the current user's GPG keys. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "users/list-gpg-keys-for-authenticated": { + parameters: { + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["gpg-key"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + }; + }; + /** + * Adds a GPG key to the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth, or OAuth with at least `write:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "users/create-gpg-key-for-authenticated": { + parameters: {}; + requestBody: { + "application/json": { + /** + * A GPG key in ASCII-armored format. + */ + armored_public_key: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["gpg-key"]; + }; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + /** + * View extended details for a single GPG key. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "users/get-gpg-key-for-authenticated": { + parameters: { + path: { + gpg_key_id: components["parameters"]["gpg_key_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["gpg-key"]; + }; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + }; + }; + /** + * Removes a GPG key from the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `admin:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "users/delete-gpg-key-for-authenticated": { + parameters: { + path: { + gpg_key_id: components["parameters"]["gpg_key_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + /** + * Lists installations of your GitHub App that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * You can find the permissions for the installation under the `permissions` key. + */ + "apps/list-installations-for-authenticated-user": { + parameters: { + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * You can find the permissions for the installation under the `permissions` key. + */ + "200": { + "application/json": { + total_count?: number; + installations?: components["schemas"]["installation"][]; + }; + }; + "304": never; + "401": unknown; + "403": unknown; + "415": unknown; + }; + }; + /** + * List repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access for an installation. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. + * + * The access the user has to each repository is included in the hash under the `permissions` key. + */ + "apps/list-installation-repos-for-authenticated-user": { + parameters: { + path: { + installation_id: components["parameters"]["installation_id"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * The access the user has to each repository is included in the hash under the `permissions` key. + */ + "200": { + "application/json": { + total_count?: number; + repository_selection?: string; + repositories?: components["schemas"]["repository"][]; + }; + }; + "304": never; + "403": unknown; + "404": unknown; + }; + }; + /** + * Add a single repository to an installation. The authenticated user must have admin access to the repository. + * + * You must use a personal access token (which you can create via the [command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) or the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations#create-a-new-authorization) or [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to access this endpoint. + */ + "apps/add-repo-to-installation": { + parameters: { + path: { + installation_id: components["parameters"]["installation_id"]; + repository_id: components["parameters"]["repository_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "403": unknown; + "404": unknown; + }; + }; + /** + * Remove a single repository from an installation. The authenticated user must have admin access to the repository. + * + * You must use a personal access token (which you can create via the [command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) or the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations#create-a-new-authorization) or [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to access this endpoint. + */ + "apps/remove-repo-from-installation": { + parameters: { + path: { + installation_id: components["parameters"]["installation_id"]; + repository_id: components["parameters"]["repository_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "403": unknown; + "404": unknown; + }; + }; + /** + * Shows which type of GitHub user can interact with your public repositories and when the restriction expires. If there are no restrictions, you will see an empty response. + */ + "interactions/get-restrictions-for-your-public-repos": { + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["interaction-limit-response"]; + }; + }; + }; + /** + * Temporarily restricts which type of GitHub user can interact with your public repositories. Setting the interaction limit at the user level will overwrite any interaction limits that are set for individual repositories owned by the user. + */ + "interactions/set-restrictions-for-your-public-repos": { + requestBody: { + "application/json": components["schemas"]["interaction-limit"]; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["interaction-limit-response"]; + }; + "422": unknown; + }; + }; + /** + * Removes any interaction restrictions from your public repositories. + */ + "interactions/remove-restrictions-for-your-public-repos": { + responses: { + /** + * Empty response + */ + "204": never; + }; + }; + /** + * List issues across owned and member repositories assigned to the authenticated user. + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + "issues/list-for-authenticated-user": { + parameters: { + query: { + /** + * Indicates which sorts of issues to return. Can be one of: + * \* `assigned`: Issues assigned to you + * \* `created`: Issues created by you + * \* `mentioned`: Issues mentioning you + * \* `subscribed`: Issues you're subscribed to updates for + * \* `all`: All issues the authenticated user can see, regardless of participation or creation + */ + filter?: "assigned" | "created" | "mentioned" | "subscribed" | "all"; + /** + * Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + labels?: components["parameters"]["labels"]; + /** + * What to sort results by. Can be either `created`, `updated`, `comments`. + */ + sort?: "created" | "updated" | "comments"; + direction?: components["parameters"]["direction"]; + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["issue"][]; + }; + "304": never; + "404": unknown; + }; + }; + /** + * Lists the public SSH keys for the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "users/list-public-ssh-keys-for-authenticated": { + parameters: { + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["key"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + }; + }; + /** + * Adds a public SSH key to the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth, or OAuth with at least `write:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "users/create-public-ssh-key-for-authenticated": { + parameters: {}; + requestBody: { + "application/json": { + /** + * A descriptive name for the new key. + */ + title?: string; + /** + * The public SSH key to add to your GitHub account. + */ + key: string; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["key"]; + }; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + /** + * View extended details for a single public SSH key. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "users/get-public-ssh-key-for-authenticated": { + parameters: { + path: { + key_id: components["parameters"]["key_id"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["key"]; + }; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + }; + }; + /** + * Removes a public SSH key from the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `admin:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + "users/delete-public-ssh-key-for-authenticated": { + parameters: { + path: { + key_id: components["parameters"]["key_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + }; + }; + /** + * Lists the active subscriptions for the authenticated user. You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an [OAuth token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/). + */ + "apps/list-subscriptions-for-authenticated-user": { + parameters: { + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["user-marketplace-purchase"][]; + }; + "304": never; + "401": unknown; + "404": unknown; + }; + }; + /** + * Lists the active subscriptions for the authenticated user. You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an [OAuth token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/). + */ + "apps/list-subscriptions-for-authenticated-user-stubbed": { + parameters: { + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["user-marketplace-purchase"][]; + }; + "304": never; + "401": unknown; + }; + }; + "orgs/list-memberships-for-authenticated-user": { + parameters: { + query: { + /** + * Indicates the state of the memberships to return. Can be either `active` or `pending`. If not specified, the API returns both active and pending memberships. + */ + state?: "active" | "pending"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["org-membership"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + "422": unknown; + }; + }; + "orgs/get-membership-for-authenticated-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["org-membership"]; + }; + "403": unknown; + "404": unknown; + }; + }; + "orgs/update-membership-for-authenticated-user": { + parameters: { + path: { + org: components["parameters"]["org"]; + }; + }; + requestBody: { + "application/json": { + /** + * The state that the membership should be in. Only `"active"` will be accepted. + */ + state: "active"; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["org-membership"]; + }; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + /** + * Lists all migrations a user has started. + */ + "migrations/list-for-authenticated-user": { + parameters: { + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["migration"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + /** + * Initiates the generation of a user migration archive. + */ + "migrations/start-for-authenticated-user": { + parameters: {}; + requestBody: { + "application/json": { + /** + * Lock the repositories being migrated at the start of the migration + */ + lock_repositories?: boolean; + /** + * Do not include attachments in the migration + */ + exclude_attachments?: boolean; + /** + * Exclude attributes from the API response to improve performance + */ + exclude?: "repositories"[]; + repositories: string[]; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["migration"]; + }; + "304": never; + "401": unknown; + "403": unknown; + "422": unknown; + }; + }; + /** + * Fetches a single user migration. The response includes the `state` of the migration, which can be one of the following values: + * + * * `pending` - the migration hasn't started yet. + * * `exporting` - the migration is in progress. + * * `exported` - the migration finished successfully. + * * `failed` - the migration failed. + * + * Once the migration has been `exported` you can [download the migration archive](https://docs.github.com/rest/reference/migrations#download-a-user-migration-archive). + */ + "migrations/get-status-for-authenticated-user": { + parameters: { + path: { + migration_id: components["parameters"]["migration_id"]; + }; + query: { + exclude?: string[]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["migration"]; + }; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + }; + }; + /** + * Fetches the URL to download the migration archive as a `tar.gz` file. Depending on the resources your repository uses, the migration archive can contain JSON files with data for these objects: + * + * * attachments + * * bases + * * commit\_comments + * * issue\_comments + * * issue\_events + * * issues + * * milestones + * * organizations + * * projects + * * protected\_branches + * * pull\_request\_reviews + * * pull\_requests + * * releases + * * repositories + * * review\_comments + * * schema + * * users + * + * The archive will also contain an `attachments` directory that includes all attachment files uploaded to GitHub.com and a `repositories` directory that contains the repository's Git data. + */ + "migrations/get-archive-for-authenticated-user": { + parameters: { + path: { + migration_id: components["parameters"]["migration_id"]; + }; + }; + responses: { + /** + * response + */ + "302": never; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + /** + * Deletes a previous migration archive. Downloadable migration archives are automatically deleted after seven days. Migration metadata, which is returned in the [List user migrations](https://docs.github.com/rest/reference/migrations#list-user-migrations) and [Get a user migration status](https://docs.github.com/rest/reference/migrations#get-a-user-migration-status) endpoints, will continue to be available even after an archive is deleted. + */ + "migrations/delete-archive-for-authenticated-user": { + parameters: { + path: { + migration_id: components["parameters"]["migration_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + }; + }; + /** + * Unlocks a repository. You can lock repositories when you [start a user migration](https://docs.github.com/rest/reference/migrations#start-a-user-migration). Once the migration is complete you can unlock each repository to begin using it again or [delete the repository](https://docs.github.com/rest/reference/repos#delete-a-repository) if you no longer need the source data. Returns a status of `404 Not Found` if the repository is not locked. + */ + "migrations/unlock-repo-for-authenticated-user": { + parameters: { + path: { + migration_id: components["parameters"]["migration_id"]; + repo_name: components["parameters"]["repo_name"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + }; + }; + /** + * Lists all the repositories for this user migration. + */ + "migrations/list-repos-for-user": { + parameters: { + path: { + migration_id: components["parameters"]["migration_id"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["minimal-repository"][]; + }; + "404": unknown; + }; + }; + /** + * List organizations for the authenticated user. + * + * **OAuth scope requirements** + * + * This only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with `read:org` scope, you can publicize your organization membership with `user` scope, etc.). Therefore, this API requires at least `user` or `read:org` scope. OAuth requests with insufficient scope receive a `403 Forbidden` response. + */ + "orgs/list-for-authenticated-user": { + parameters: { + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["organization-simple"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + "projects/create-for-authenticated-user": { + parameters: {}; + requestBody: { + "application/json": { + /** + * Name of the project + */ + name: string; + /** + * Body of the project + */ + body?: string | null; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["project"]; + }; + "304": never; + "401": unknown; + "403": unknown; + "415": unknown; + "422": unknown; + }; + }; + /** + * Lists your publicly visible email address, which you can set with the [Set primary email visibility for the authenticated user](https://docs.github.com/rest/reference/users#set-primary-email-visibility-for-the-authenticated-user) endpoint. This endpoint is accessible with the `user:email` scope. + */ + "users/list-public-emails-for-authenticated": { + parameters: { + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["email"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + }; + }; + /** + * Lists repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + */ + "repos/list-for-authenticated-user": { + parameters: { + query: { + /** + * Can be one of `all`, `public`, or `private`. + */ + visibility?: "all" | "public" | "private"; + /** + * Comma-separated list of values. Can include: + * \* `owner`: Repositories that are owned by the authenticated user. + * \* `collaborator`: Repositories that the user has been added to as a collaborator. + * \* `organization_member`: Repositories that the user has access to through being a member of an organization. This includes every repository on every team that the user is on. + */ + affiliation?: string; + /** + * Can be one of `all`, `owner`, `public`, `private`, `member`. Default: `all` + * + * Will cause a `422` error if used in the same request as **visibility** or **affiliation**. Will cause a `422` error if used in the same request as **visibility** or **affiliation**. + */ + type?: "all" | "owner" | "public" | "private" | "member"; + /** + * Can be one of `created`, `updated`, `pushed`, `full_name`. + */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** + * Can be one of `asc` or `desc`. Default: `asc` when using `full_name`, otherwise `desc` + */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + since?: components["parameters"]["since"]; + before?: components["parameters"]["before"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["repository"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + "422": unknown; + }; + }; + /** + * Creates a new repository for the authenticated user. + * + * **OAuth scope requirements** + * + * When using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include: + * + * * `public_repo` scope or `repo` scope to create a public repository + * * `repo` scope to create a private repository + */ + "repos/create-for-authenticated-user": { + parameters: {}; + requestBody: { + "application/json": { + /** + * The name of the repository. + */ + name: string; + /** + * A short description of the repository. + */ + description?: string; + /** + * A URL with more information about the repository. + */ + homepage?: string; + /** + * Whether the repository is private or public. + */ + private?: boolean; + /** + * Whether issues are enabled. + */ + has_issues?: boolean; + /** + * Whether projects are enabled. + */ + has_projects?: boolean; + /** + * Whether the wiki is enabled. + */ + has_wiki?: boolean; + /** + * The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization. + */ + team_id?: number; + /** + * Whether the repository is initialized with a minimal README. + */ + auto_init?: boolean; + /** + * The desired language or platform to apply to the .gitignore. + */ + gitignore_template?: string; + /** + * The license keyword of the open source license for this repository. + */ + license_template?: string; + /** + * Whether to allow squash merges for pull requests. + */ + allow_squash_merge?: boolean; + /** + * Whether to allow merge commits for pull requests. + */ + allow_merge_commit?: boolean; + /** + * Whether to allow rebase merges for pull requests. + */ + allow_rebase_merge?: boolean; + /** + * Whether to delete head branches when pull requests are merged + */ + delete_branch_on_merge?: boolean; + /** + * Whether downloads are enabled. + */ + has_downloads?: boolean; + /** + * Whether this repository acts as a template that can be used to generate new repositories. + */ + is_template?: boolean; + }; + }; + responses: { + /** + * response + */ + "201": { + "application/json": components["schemas"]["repository"]; + }; + "304": never; + "400": unknown; + "401": unknown; + "403": unknown; + "404": unknown; + "422": unknown; + }; + }; + /** + * When authenticating as a user, this endpoint will list all currently open repository invitations for that user. + */ + "repos/list-invitations-for-authenticated-user": { + parameters: { + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["repository-invitation"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + }; + }; + "repos/accept-invitation": { + parameters: { + path: { + invitation_id: components["parameters"]["invitation_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "403": unknown; + "404": unknown; + "409": unknown; + }; + }; + "repos/decline-invitation": { + parameters: { + path: { + invitation_id: components["parameters"]["invitation_id"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "403": unknown; + "404": unknown; + "409": unknown; + }; + }; + /** + * Lists repositories the authenticated user has starred. + * + * You can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + "activity/list-repos-starred-by-authenticated-user": { + parameters: { + query: { + sort?: components["parameters"]["sort"]; + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["repository"][]; + "application/vnd.github.v3.star+json": components["schemas"]["starred-repository"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + "activity/check-repo-is-starred-by-authenticated-user": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * Response if this repository is starred by you + */ + "204": never; + "304": never; + "401": unknown; + "403": unknown; + /** + * Response if this repository is not starred by you + */ + "404": { + "application/json": components["schemas"]["basic-error"]; + }; + }; + }; + /** + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + "activity/star-repo-for-authenticated-user": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + }; + }; + "activity/unstar-repo-for-authenticated-user": { + parameters: { + path: { + owner: components["parameters"]["owner"]; + repo: components["parameters"]["repo"]; + }; + }; + responses: { + /** + * Empty response + */ + "204": never; + "304": never; + "401": unknown; + "403": unknown; + "404": unknown; + }; + }; + /** + * Lists repositories the authenticated user is watching. + */ + "activity/list-watched-repos-for-authenticated-user": { + parameters: { + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["minimal-repository"][]; + }; + "304": never; + "401": unknown; + "403": unknown; + }; + }; + /** + * List all of the teams across all of the organizations to which the authenticated user belongs. This method requires `user`, `repo`, or `read:org` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/) when authenticating via [OAuth](https://docs.github.com/apps/building-oauth-apps/). + */ + "teams/list-for-authenticated-user": { + parameters: { + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["team-full"][]; + }; + "304": never; + "403": unknown; + "404": unknown; + }; + }; + /** + * Lists all users, in the order that they signed up on GitHub. This list includes personal user accounts and organization accounts. + * + * Note: Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of users. + */ + "users/list": { + parameters: { + query: { + since?: components["parameters"]["since-user"]; + per_page?: components["parameters"]["per_page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["simple-user"][]; + }; + "304": never; + }; + }; + /** + * Provides publicly available information about someone with a GitHub account. + * + * GitHub Apps with the `Plan` user permission can use this endpoint to retrieve information about a user's GitHub plan. The GitHub App must be authenticated as a user. See "[Identifying and authorizing users for GitHub Apps](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)" for details about authentication. For an example response, see 'Response with GitHub plan information' below" + * + * The `email` key in the following response is the publicly visible email address from your GitHub [profile page](https://github.com/settings/profile). When setting up your profile, you can select a primary email address to be “public” which provides an email entry for this endpoint. If you do not set a public email address for `email`, then it will have a value of `null`. You only see publicly visible email addresses when authenticated with GitHub. For more information, see [Authentication](https://docs.github.com/rest/overview/resources-in-the-rest-api#authentication). + * + * The Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see "[Emails API](https://docs.github.com/rest/reference/users#emails)". + */ + "users/get-by-username": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": + | components["schemas"]["private-user"] + | components["schemas"]["public-user"]; + }; + "404": unknown; + }; + }; + /** + * If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. + */ + "activity/list-events-for-authenticated-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + /** + * This is the user's organization dashboard. You must be authenticated as the user to view this. + */ + "activity/list-org-events-for-authenticated-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + org: components["parameters"]["org"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + "activity/list-public-events-for-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + /** + * Lists the people following the specified user. + */ + "users/list-followers-for-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + /** + * Lists the people who the specified user follows. + */ + "users/list-following-for-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["simple-user"][]; + }; + }; + }; + "users/check-following-for-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + target_user: string; + }; + }; + responses: { + /** + * Response if the user follows the target user + */ + "204": never; + /** + * Response if the user does not follow the target user + */ + "404": unknown; + }; + }; + /** + * Lists public gists for the specified user: + */ + "gists/list-for-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + query: { + since?: components["parameters"]["since"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["base-gist"][]; + }; + "422": unknown; + }; + }; + /** + * Lists the GPG keys for a user. This information is accessible by anyone. + */ + "users/list-gpg-keys-for-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["gpg-key"][]; + }; + }; + }; + /** + * Provides hovercard information when authenticated through basic auth or OAuth with the `repo` scope. You can find out more about someone in relation to their pull requests, issues, repositories, and organizations. + * + * The `subject_type` and `subject_id` parameters provide context for the person's hovercard, which returns more information than without the parameters. For example, if you wanted to find out more about `octocat` who owns the `Spoon-Knife` repository via cURL, it would look like this: + * + * ```shell + * curl -u username:token + * https://api.github.com/users/octocat/hovercard?subject_type=repository&subject_id=1300192 + * ``` + */ + "users/get-context-for-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + query: { + /** + * Identifies which additional information you'd like to receive about the person's hovercard. Can be `organization`, `repository`, `issue`, `pull_request`. **Required** when using `subject_id`. + */ + subject_type?: "organization" | "repository" | "issue" | "pull_request"; + /** + * Uses the ID for the `subject_type` you specified. **Required** when using `subject_type`. + */ + subject_id?: string; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["hovercard"]; + }; + "404": unknown; + "422": unknown; + }; + }; + /** + * Enables an authenticated GitHub App to find the user’s installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + "apps/get-user-installation": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["installation"]; + }; + }; + }; + /** + * Lists the _verified_ public SSH keys for a user. This is accessible by anyone. + */ + "users/list-public-keys-for-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["key-simple"][]; + }; + }; + }; + /** + * List [public organization memberships](https://help.github.com/articles/publicizing-or-concealing-organization-membership) for the specified user. + * + * This method only lists _public_ memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the [List organizations for the authenticated user](https://docs.github.com/rest/reference/orgs#list-organizations-for-the-authenticated-user) API instead. + */ + "orgs/list-for-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["organization-simple"][]; + }; + }; + }; + "projects/list-for-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + query: { + /** + * Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["project"][]; + }; + "415": unknown; + "422": unknown; + }; + }; + /** + * These are events that you've received by watching repos and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events. + */ + "activity/list-received-events-for-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + "activity/list-received-public-events-for-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["event"][]; + }; + }; + }; + /** + * Lists public repositories for the specified user. + */ + "repos/list-for-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + query: { + /** + * Can be one of `all`, `owner`, `member`. + */ + type?: "all" | "owner" | "member"; + /** + * Can be one of `created`, `updated`, `pushed`, `full_name`. + */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** + * Can be one of `asc` or `desc`. Default: `asc` when using `full_name`, otherwise `desc` + */ + direction?: "asc" | "desc"; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + }; + /** + * Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Access tokens must have the `user` scope. + */ + "billing/get-github-actions-billing-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["actions-billing-usage"]; + }; + }; + }; + /** + * Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * Access tokens must have the `user` scope. + */ + "billing/get-github-packages-billing-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["packages-billing-usage"]; + }; + }; + }; + /** + * Gets the estimated paid and estimated total storage used for GitHub Actions and Github Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * Access tokens must have the `user` scope. + */ + "billing/get-shared-storage-billing-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["combined-billing-usage"]; + }; + }; + }; + /** + * Lists repositories a user has starred. + * + * You can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + "activity/list-repos-starred-by-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + query: { + sort?: components["parameters"]["sort"]; + direction?: components["parameters"]["direction"]; + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["repository"][]; + "application/vnd.github.v3.star+json": components["schemas"]["starred-repository"][]; + }; + }; + }; + /** + * Lists repositories a user is watching. + */ + "activity/list-repos-watched-by-user": { + parameters: { + path: { + username: components["parameters"]["username"]; + }; + query: { + per_page?: components["parameters"]["per_page"]; + page?: components["parameters"]["page"]; + }; + }; + responses: { + /** + * response + */ + "200": { + "application/json": components["schemas"]["minimal-repository"][]; + }; + }; + }; + /** + * Get a random sentence from the Zen of GitHub + */ + "meta/get-zen": { + responses: { + /** + * response + */ + "200": { + "text/plain": string; + }; + }; + }; +} + +export interface components { + parameters: { + /** + * Results per page (max 100) + */ + per_page: number; + /** + * Page number of the results to fetch. + */ + page: number; + /** + * Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since: string; + /** + * installation_id parameter + */ + installation_id: number; + /** + * grant_id parameter + */ + grant_id: number; + "client-id": string; + "access-token": string; + app_slug: string; + /** + * authorization_id parameter + */ + authorization_id: number; + /** + * The slug version of the enterprise name. You can also substitute this value with the enterprise id. + */ + enterprise: string; + /** + * Unique identifier of an organization. + */ + org_id: number; + /** + * Unique identifier of the self-hosted runner group. + */ + runner_group_id: number; + /** + * Unique identifier of the self-hosted runner. + */ + runner_id: number; + /** + * A search phrase. For more information, see [Searching the audit log](https://docs.github.com/github/setting-up-and-managing-organizations-and-teams/reviewing-the-audit-log-for-your-organization#searching-the-audit-log). + */ + "audit-log-phrase": string; + /** + * The event types to include: + * + * - `web` - returns web (non-Git) events + * - `git` - returns Git events + * - `all` - returns both web and Git events + * + * The default is `web`. + */ + "audit-log-include": "web" | "git" | "all"; + /** + * A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events after this cursor. + */ + "audit-log-after": string; + /** + * A cursor, as given in the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header). If specified, the query only searches for events before this cursor. + */ + "audit-log-before": string; + /** + * gist_id parameter + */ + gist_id: string; + /** + * comment_id parameter + */ + comment_id: number; + /** + * A list of comma separated label names. Example: `bug,ui,@high` + */ + labels: string; + /** + * One of `asc` (ascending) or `desc` (descending). + */ + direction: "asc" | "desc"; + /** + * account_id parameter + */ + account_id: number; + /** + * plan_id parameter + */ + plan_id: number; + /** + * One of `created` (when the repository was starred) or `updated` (when it was last pushed to). + */ + sort: "created" | "updated"; + owner: string; + repo: string; + /** + * If `true`, show notifications marked as read. + */ + all: boolean; + /** + * If `true`, only shows notifications in which the user is directly participating or mentioned. + */ + participating: boolean; + /** + * Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + before: string; + /** + * thread_id parameter + */ + thread_id: number; + /** + * An organization ID. Only return organizations with an ID greater than this ID. + */ + "since-org": number; + org: string; + repository_id: number; + /** + * secret_name parameter + */ + secret_name: string; + username: string; + "hook-id": number; + /** + * invitation_id parameter + */ + invitation_id: number; + /** + * migration_id parameter + */ + migration_id: number; + /** + * repo_name parameter + */ + repo_name: string; + /** + * team_slug parameter + */ + team_slug: string; + "discussion-number": number; + "comment-number": number; + "reaction-id": number; + "project-id": number; + /** + * card_id parameter + */ + card_id: number; + /** + * column_id parameter + */ + column_id: number; + /** + * artifact_id parameter + */ + artifact_id: number; + /** + * job_id parameter + */ + job_id: number; + /** + * Returns someone's workflow runs. Use the login for the user who created the `push` associated with the check suite or workflow run. + */ + actor: string; + /** + * Returns workflow runs associated with a branch. Use the name of the branch of the `push`. + */ + "workflow-run-branch": string; + /** + * Returns workflow run triggered by the event you specify. For example, `push`, `pull_request` or `issue`. For more information, see "[Events that trigger workflows](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows)." + */ + event: string; + /** + * Returns workflow runs associated with the check run `status` or `conclusion` you specify. For example, a conclusion can be `success` or a status can be `completed`. For more information, see the `status` and `conclusion` options available in "[Create a check run](https://docs.github.com/rest/reference/checks#create-a-check-run)." + */ + "workflow-run-status": "completed" | "status" | "conclusion"; + "run-id": number; + /** + * The ID of the workflow. You can also pass the workflow file name as a string. + */ + "workflow-id": number | string; + /** + * branch+ parameter + */ + branch: string; + /** + * check_run_id parameter + */ + check_run_id: number; + /** + * check_suite_id parameter + */ + check_suite_id: number; + /** + * Returns check runs with the specified `name`. + */ + check_name: string; + /** + * Returns check runs with the specified `status`. Can be one of `queued`, `in_progress`, or `completed`. + */ + status: "queued" | "in_progress" | "completed"; + /** + * The security alert number, found at the end of the security alert's URL. + */ + alert_number: components["schemas"]["alert-number"]; + /** + * commit_sha+ parameter + */ + commit_sha: string; + /** + * deployment_id parameter + */ + deployment_id: number; + /** + * A user ID. Only return users with an ID greater than this ID. + */ + "since-user": number; + /** + * issue_number parameter + */ + issue_number: number; + /** + * key_id parameter + */ + key_id: number; + /** + * milestone_number parameter + */ + milestone_number: number; + "pull-number": number; + /** + * review_id parameter + */ + review_id: number; + /** + * asset_id parameter + */ + asset_id: number; + /** + * release_id parameter + */ + release_id: number; + /** + * Must be one of: `day`, `week`. + */ + per: "day" | "week"; + /** + * A repository ID. Only return repositories with an ID greater than this ID. + */ + "since-repo": number; + /** + * Used for pagination: the index of the first result to return. + */ + start_index: number; + /** + * Used for pagination: the number of results to return. + */ + count: number; + /** + * Identifier generated by the GitHub SCIM endpoint. + */ + scim_group_id: string; + /** + * scim_user_id parameter + */ + scim_user_id: string; + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order: "desc" | "asc"; + "team-id": number; + /** + * gpg_key_id parameter + */ + gpg_key_id: number; + }; + schemas: { + /** + * Simple User + */ + "simple-user": { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string | null; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + starred_at?: string; + } | null; + /** + * GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub. + */ + integration: { + /** + * Unique identifier of the GitHub app + */ + id: number; + /** + * The slug name of the GitHub app + */ + slug?: string; + node_id: string; + owner: components["schemas"]["simple-user"] | null; + /** + * The name of the GitHub app + */ + name: string; + description: string | null; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + /** + * The set of permissions for the GitHub app + */ + permissions: { + issues?: string; + checks?: string; + metadata?: string; + contents?: string; + deployments?: string; + } & { [key: string]: string }; + /** + * The list of events for the GitHub app + */ + events: string[]; + /** + * The number of installations associated with the GitHub app + */ + installations_count?: number; + client_id?: string; + client_secret?: string; + webhook_secret?: string; + pem?: string; + } & { [key: string]: any }; + /** + * Basic Error + */ + "basic-error": { message?: string; documentation_url?: string }; + /** + * Validation Error Simple + */ + "validation-error-simple": { + message: string; + documentation_url: string; + errors?: string[]; + }; + /** + * The URL to which the payloads will be delivered. + */ + "webhook-config-url": string; + /** + * The media type used to serialize the payloads. Supported values include `json` and `form`. The default is `form`. + */ + "webhook-config-content-type": string; + /** + * If provided, the `secret` will be used as the `key` to generate the HMAC hex digest value for [delivery signature headers](https://docs.github.com/webhooks/event-payloads/#delivery-headers). + */ + "webhook-config-secret": string; + /** + * Determines whether the SSL certificate of the host for `url` will be verified when delivering payloads. Supported values include `0` (verification is performed) and `1` (verification is not performed). The default is `0`. **We strongly recommend not setting this to `1` as you are subject to man-in-the-middle and other attacks.** + */ + "webhook-config-insecure-ssl": string; + /** + * Configuration object of the webhook + */ + "webhook-config": { + url?: components["schemas"]["webhook-config-url"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + secret?: components["schemas"]["webhook-config-secret"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + }; + /** + * An enterprise account + */ + enterprise: { + /** + * A short description of the enterprise. + */ + description?: string | null; + html_url: string; + /** + * The enterprise's website URL. + */ + website_url?: string | null; + /** + * Unique identifier of the enterprise + */ + id: number; + node_id: string; + /** + * The name of the enterprise. + */ + name: string; + /** + * The slug url identifier for the enterprise. + */ + slug: string; + created_at: string | null; + updated_at: string | null; + avatar_url: string; + }; + /** + * Installation + */ + installation: { + /** + * The ID of the installation. + */ + id: number; + account: + | (Partial & + Partial) + | null; + /** + * Describe whether all repositories have been selected or there's a selection involved + */ + repository_selection: "all" | "selected"; + access_tokens_url: string; + repositories_url: string; + html_url: string; + app_id: number; + /** + * The ID of the user or organization this token is being scoped to. + */ + target_id: number; + target_type: string; + permissions: { + deployments?: string; + checks?: string; + metadata?: string; + contents?: string; + pull_requests?: string; + statuses?: string; + issues?: string; + organization_administration?: string; + }; + events: string[]; + created_at: string; + updated_at: string; + single_file_name: string | null; + has_multiple_single_files?: boolean; + single_file_paths?: string[]; + app_slug: string; + suspended_by?: components["schemas"]["simple-user"] | null; + suspended_at?: string | null; + contact_email?: string | null; + }; + /** + * License Simple + */ + "license-simple": { + key: string; + name: string; + url: string | null; + spdx_id: string | null; + node_id: string; + html_url?: string; + }; + /** + * A git repository + */ + repository: { + /** + * Unique identifier of the repository + */ + id: number; + node_id: string; + /** + * The name of the repository. + */ + name: string; + full_name: string; + license: components["schemas"]["license-simple"] | null; + forks: number; + permissions?: { + admin: boolean; + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + }; + owner: components["schemas"]["simple-user"] | null; + /** + * Whether the repository is private or public. + */ + private: boolean; + html_url: string; + description: string | null; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string | null; + hooks_url: string; + svn_url: string; + homepage: string | null; + language: string | null; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + /** + * The default branch of the repository. + */ + default_branch: string; + open_issues_count: number; + /** + * Whether this repository acts as a template that can be used to generate new repositories. + */ + is_template?: boolean; + topics?: string[]; + /** + * Whether issues are enabled. + */ + has_issues: boolean; + /** + * Whether projects are enabled. + */ + has_projects: boolean; + /** + * Whether the wiki is enabled. + */ + has_wiki: boolean; + has_pages: boolean; + /** + * Whether downloads are enabled. + */ + has_downloads: boolean; + /** + * Whether the repository is archived. + */ + archived: boolean; + /** + * Returns whether or not this repository disabled. + */ + disabled: boolean; + /** + * The repository visibility: public, private, or internal. + */ + visibility?: string; + pushed_at: string | null; + created_at: string | null; + updated_at: string | null; + /** + * Whether to allow rebase merges for pull requests. + */ + allow_rebase_merge?: boolean; + template_repository?: { + id?: number; + node_id?: string; + name?: string; + full_name?: string; + owner?: { + login?: string; + id?: number; + node_id?: string; + avatar_url?: string; + gravatar_id?: string; + url?: string; + html_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + subscriptions_url?: string; + organizations_url?: string; + repos_url?: string; + events_url?: string; + received_events_url?: string; + type?: string; + site_admin?: boolean; + }; + private?: boolean; + html_url?: string; + description?: string; + fork?: boolean; + url?: string; + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + downloads_url?: string; + events_url?: string; + forks_url?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + git_url?: string; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + notifications_url?: string; + pulls_url?: string; + releases_url?: string; + ssh_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + clone_url?: string; + mirror_url?: string; + hooks_url?: string; + svn_url?: string; + homepage?: string; + language?: string; + forks_count?: number; + stargazers_count?: number; + watchers_count?: number; + size?: number; + default_branch?: string; + open_issues_count?: number; + is_template?: boolean; + topics?: string[]; + has_issues?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + has_pages?: boolean; + has_downloads?: boolean; + archived?: boolean; + disabled?: boolean; + visibility?: string; + pushed_at?: string; + created_at?: string; + updated_at?: string; + permissions?: { admin?: boolean; push?: boolean; pull?: boolean }; + allow_rebase_merge?: boolean; + template_repository?: string; + temp_clone_token?: string; + allow_squash_merge?: boolean; + delete_branch_on_merge?: boolean; + allow_merge_commit?: boolean; + subscribers_count?: number; + network_count?: number; + } | null; + temp_clone_token?: string; + /** + * Whether to allow squash merges for pull requests. + */ + allow_squash_merge?: boolean; + /** + * Whether to delete head branches when pull requests are merged + */ + delete_branch_on_merge?: boolean; + /** + * Whether to allow merge commits for pull requests. + */ + allow_merge_commit?: boolean; + subscribers_count?: number; + network_count?: number; + open_issues: number; + watchers: number; + master_branch?: string; + starred_at?: string; + }; + /** + * Authentication token for a GitHub App installed on a user or org. + */ + "installation-token": { + token?: string; + expires_at?: string; + permissions?: { + issues?: string; + contents?: string; + metadata?: string; + single_file?: string; + }; + repository_selection?: "all" | "selected"; + repositories?: components["schemas"]["repository"][]; + single_file?: string; + has_multiple_single_files?: boolean; + single_file_paths?: string[]; + }; + /** + * Validation Error + */ + "validation-error": { + message: string; + documentation_url: string; + errors?: { + resource?: string; + field?: string; + message?: string; + code: string; + index?: number; + value?: string | number | string[]; + }[]; + }; + /** + * The authorization associated with an OAuth Access. + */ + "application-grant": { + id: number; + url: string; + app: { client_id: string; name: string; url: string }; + created_at: string; + updated_at: string; + scopes: string[]; + user?: components["schemas"]["simple-user"] | null; + }; + "scoped-installation": { + permissions: { [key: string]: any }; + /** + * Describe whether all repositories have been selected or there's a selection involved + */ + repository_selection: "all" | "selected"; + single_file_name: string | null; + has_multiple_single_files?: boolean; + single_file_paths?: string[]; + repositories_url: string; + account: components["schemas"]["simple-user"]; + }; + /** + * The authorization for an OAuth app, GitHub App, or a Personal Access Token. + */ + authorization: { + id: number; + url: string; + /** + * A list of scopes that this authorization is in. + */ + scopes: string[] | null; + token: string; + token_last_eight: string | null; + hashed_token: string | null; + app: { client_id: string; name: string; url: string }; + note: string | null; + note_url: string | null; + updated_at: string; + created_at: string; + fingerprint: string | null; + user?: components["schemas"]["simple-user"] | null; + installation?: components["schemas"]["scoped-installation"] | null; + }; + /** + * Code Of Conduct + */ + "code-of-conduct": { + key: string; + name: string; + url: string; + body?: string; + html_url: string | null; + }; + /** + * Content Reference attachments allow you to provide context around URLs posted in comments + */ + "content-reference-attachment": { + /** + * The ID of the attachment + */ + id: number; + /** + * The title of the attachment + */ + title: string; + /** + * The body of the attachment + */ + body: string; + /** + * The node_id of the content attachment + */ + node_id?: string; + }; + /** + * The policy that controls the organizations in the enterprise that are allowed to run GitHub Actions. Can be one of: `all`, `none`, or `selected`. + */ + "enabled-organizations": "all" | "none" | "selected"; + /** + * The permissions policy that controls the actions that are allowed to run. Can be one of: `all`, `local_only`, or `selected`. + */ + "allowed-actions": "all" | "local_only" | "selected"; + /** + * The API URL to use to get or set the actions that are allowed to run, when `allowed_actions` is set to `selected`. + */ + "selected-actions-url": string; + "actions-enterprise-permissions": { + enabled_organizations?: components["schemas"]["enabled-organizations"]; + /** + * The API URL to use to get or set the selected organizations that are allowed to run GitHub Actions, when `enabled_organizations` is set to `selected`. + */ + selected_organizations_url?: string; + allowed_actions?: components["schemas"]["allowed-actions"]; + selected_actions_url?: components["schemas"]["selected-actions-url"]; + }; + /** + * Organization Simple + */ + "organization-simple": { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string | null; + }; + "selected-actions": { + /** + * Whether GitHub-owned actions are allowed. For example, this includes the actions in the `actions` organization. + */ + github_owned_allowed?: boolean; + /** + * Whether actions in GitHub Marketplace from verified creators are allowed. Set to `true` to allow all GitHub Marketplace actions by verified creators. + */ + verified_allowed?: boolean; + /** + * Specifies a list of string-matching patterns to allow specific action(s). Wildcards, tags, and SHAs are allowed. For example, `monalisa/octocat@*`, `monalisa/octocat@v2`, `monalisa/*`." + */ + patterns_allowed?: string[]; + }; + "runner-groups-enterprise": { + id?: number; + name?: string; + visibility?: string; + default?: boolean; + selected_organizations_url?: string; + runners_url?: string; + }; + /** + * A self hosted runner + */ + runner: { + /** + * The id of the runner. + */ + id: number; + /** + * The name of the runner. + */ + name: string; + /** + * The Operating System of the runner. + */ + os: string; + /** + * The status of the runner. + */ + status: string; + busy: boolean; + labels: { + /** + * Unique identifier of the label. + */ + id?: number; + /** + * Name of the label. + */ + name?: string; + /** + * The type of label. Read-only labels are applied automatically when the runner is configured. + */ + type?: "read-only" | "custom"; + }[]; + }; + /** + * Runner Application + */ + "runner-application": { + os?: string; + architecture?: string; + download_url?: string; + filename?: string; + }; + /** + * Authentication Token + */ + "authentication-token": { + /** + * The token used for authentication + */ + token: string; + /** + * The time this token expires + */ + expires_at: string; + permissions?: { [key: string]: any }; + /** + * The repositories this token has access to + */ + repositories?: components["schemas"]["repository"][]; + single_file?: string | null; + /** + * Describe whether all repositories have been selected or there's a selection involved + */ + repository_selection?: "all" | "selected"; + }; + "audit-log-event": { + /** + * The time the audit log event occurred, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time). + */ + "@timestamp"?: number; + /** + * The name of the action that was performed, for example `user.login` or `repo.create`. + */ + action?: string; + active?: boolean; + active_was?: boolean; + /** + * The actor who performed the action. + */ + actor?: string; + /** + * The username of the account being blocked. + */ + blocked_user?: string; + business?: string; + config?: any[]; + config_was?: any[]; + content_type?: string; + /** + * The time the audit log event was recorded, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time). + */ + created_at?: number; + deploy_key_fingerprint?: string; + emoji?: string; + events?: any[]; + events_were?: any[]; + explanation?: string; + fingerprint?: string; + hook_id?: number; + limited_availability?: boolean; + message?: string; + name?: string; + old_user?: string; + openssh_public_key?: string; + org?: string; + previous_visibility?: string; + read_only?: boolean; + /** + * The name of the repository. + */ + repo?: string; + /** + * The name of the repository. + */ + repository?: string; + repository_public?: boolean; + target_login?: string; + team?: string; + /** + * The type of protocol (for example, HTTP or SSH) used to transfer Git data. + */ + transport_protocol?: number; + /** + * A human readable name for the protocol (for example, HTTP or SSH) used to transfer Git data. + */ + transport_protocol_name?: string; + /** + * The user that was affected by the action performed (if available). + */ + user?: string; + /** + * The repository visibility, for example `public` or `private`. + */ + visibility?: string; + }; + "actions-billing-usage": { + /** + * The sum of the free and paid GitHub Actions minutes used. + */ + total_minutes_used?: number; + /** + * The total paid GitHub Actions minutes used. + */ + total_paid_minutes_used?: number; + /** + * The amount of free GitHub Actions minutes available. + */ + included_minutes?: number; + minutes_used_breakdown?: { + /** + * Total minutes used on Ubuntu runner machines. + */ + UBUNTU?: number; + /** + * Total minutes used on macOS runner machines. + */ + MACOS?: number; + /** + * Total minutes used on Windows runner machines. + */ + WINDOWS?: number; + }; + }; + "packages-billing-usage": { + /** + * Sum of the free and paid storage space (GB) for GitHuub Packages. + */ + total_gigabytes_bandwidth_used?: number; + /** + * Total paid storage space (GB) for GitHuub Packages. + */ + total_paid_gigabytes_bandwidth_used?: number; + /** + * Free storage space (GB) for GitHub Packages. + */ + included_gigabytes_bandwidth?: number; + }; + "combined-billing-usage": { + /** + * Numbers of days left in billing cycle. + */ + days_left_in_billing_cycle?: number; + /** + * Estimated storage space (GB) used in billing cycle. + */ + estimated_paid_storage_for_month?: number; + /** + * Estimated sum of free and paid storage space (GB) used in billing cycle. + */ + estimated_storage_for_month?: number; + }; + /** + * Actor + */ + actor: { + id: number; + login: string; + display_login?: string; + gravatar_id: string | null; + url: string; + avatar_url: string; + }; + /** + * Color-coded labels help you categorize and filter your issues (just like labels in Gmail). + */ + label: { + id: number; + node_id: string; + /** + * URL for the label + */ + url: string; + /** + * The name of the label. + */ + name: string; + description: string | null; + /** + * 6-character hex code, without the leading #, identifying the color + */ + color: string; + default: boolean; + }; + /** + * A collection of related issues and pull requests. + */ + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + /** + * The number of the milestone. + */ + number: number; + /** + * The state of the milestone. + */ + state: "open" | "closed"; + /** + * The title of the milestone. + */ + title: string; + description: string | null; + creator: components["schemas"]["simple-user"] | null; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string | null; + due_on: string | null; + }; + /** + * Issue Simple + */ + "issue-simple": { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body?: string; + user: components["schemas"]["simple-user"] | null; + labels: components["schemas"]["label"][]; + assignee: components["schemas"]["simple-user"] | null; + assignees?: components["schemas"]["simple-user"][] | null; + milestone: components["schemas"]["milestone"] | null; + locked: boolean; + active_lock_reason?: string | null; + comments: number; + pull_request?: { + merged_at?: string | null; + diff_url: string | null; + html_url: string | null; + patch_url: string | null; + url: string | null; + }; + closed_at: string | null; + created_at: string; + updated_at: string; + author_association: string; + body_html?: string; + body_text?: string; + timeline_url?: string; + repository?: components["schemas"]["repository"]; + performed_via_github_app?: components["schemas"]["integration"] | null; + }; + "reaction-rollup": { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + eyes: number; + rocket: number; + }; + /** + * Comments provide a way for people to collaborate on an issue. + */ + "issue-comment": { + /** + * Unique identifier of the issue comment + */ + id: number; + node_id: string; + /** + * URL for the issue comment + */ + url: string; + /** + * Contents of the issue comment + */ + body?: string; + body_text?: string; + body_html?: string; + html_url: string; + user: components["schemas"]["simple-user"] | null; + created_at: string; + updated_at: string; + issue_url: string; + author_association: + | "collaborator" + | "contributor" + | "first_timer" + | "first_time_contributor" + | "mannequin" + | "member" + | "none" + | "owner"; + performed_via_github_app?: components["schemas"]["integration"] | null; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Event + */ + event: { + id: string; + type: string | null; + actor: components["schemas"]["actor"]; + repo: { id: number; name: string; url: string }; + org?: components["schemas"]["actor"]; + payload: { + action: string; + issue?: components["schemas"]["issue-simple"]; + comment?: components["schemas"]["issue-comment"]; + pages?: { + page_name?: string; + title?: string; + summary?: string | null; + action?: string; + sha?: string; + html_url?: string; + }[]; + }; + public: boolean; + created_at: string | null; + }; + /** + * Hypermedia Link with Type + */ + "link-with-type": { href: string; type: string }; + /** + * Feed + */ + feed: { + timeline_url: string; + user_url: string; + current_user_public_url?: string; + current_user_url?: string; + current_user_actor_url?: string; + current_user_organization_url?: string; + current_user_organization_urls?: string[]; + security_advisories_url?: string; + _links: { + timeline: components["schemas"]["link-with-type"]; + user: components["schemas"]["link-with-type"]; + security_advisories?: components["schemas"]["link-with-type"]; + current_user?: components["schemas"]["link-with-type"]; + current_user_public?: components["schemas"]["link-with-type"]; + current_user_actor?: components["schemas"]["link-with-type"]; + current_user_organization?: components["schemas"]["link-with-type"]; + current_user_organizations?: components["schemas"]["link-with-type"][]; + }; + }; + /** + * Base Gist + */ + "base-gist": { + url: string; + forks_url: string; + commits_url: string; + id: string; + node_id: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + files: { + [key: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + }; + }; + public: boolean; + created_at: string; + updated_at: string; + description: string | null; + comments: number; + user: components["schemas"]["simple-user"] | null; + comments_url: string; + owner?: components["schemas"]["simple-user"] | null; + truncated?: boolean; + forks?: { [key: string]: any }[]; + history?: { [key: string]: any }[]; + }; + /** + * Gist Simple + */ + "gist-simple": { + url?: string; + forks_url?: string; + commits_url?: string; + id?: string; + node_id?: string; + git_pull_url?: string; + git_push_url?: string; + html_url?: string; + files?: { + [key: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + truncated?: boolean; + content?: string; + }; + }; + public?: boolean; + created_at?: string; + updated_at?: string; + description?: string | null; + comments?: number; + user?: string | null; + comments_url?: string; + owner?: components["schemas"]["simple-user"]; + truncated?: boolean; + }; + /** + * Gist Full + */ + "gist-full": components["schemas"]["gist-simple"] & { + forks?: { + user?: { + login?: string; + id?: number; + node_id?: string; + avatar_url?: string; + gravatar_id?: string; + url?: string; + html_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + subscriptions_url?: string; + organizations_url?: string; + repos_url?: string; + events_url?: string; + received_events_url?: string; + type?: string; + site_admin?: boolean; + }; + url?: string; + id?: string; + created_at?: string; + updated_at?: string; + }[]; + history?: { + url?: string; + version?: string; + user?: { + login?: string; + id?: number; + node_id?: string; + avatar_url?: string; + gravatar_id?: string; + url?: string; + html_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + subscriptions_url?: string; + organizations_url?: string; + repos_url?: string; + events_url?: string; + received_events_url?: string; + type?: string; + site_admin?: boolean; + } | null; + change_status?: { + deletions?: number; + additions?: number; + total?: number; + }; + committed_at?: string; + }[]; + fork_of?: components["schemas"]["gist-simple"] | null; + url?: string; + forks_url?: string; + commits_url?: string; + id?: string; + node_id?: string; + git_pull_url?: string; + git_push_url?: string; + html_url?: string; + created_at?: string; + updated_at?: string; + description?: string | null; + comments?: number; + comments_url?: string; + }; + /** + * A comment made to a gist. + */ + "gist-comment": { + id: number; + node_id: string; + url: string; + /** + * The comment text. + */ + body: string; + user: components["schemas"]["simple-user"] | null; + created_at: string; + updated_at: string; + author_association: string; + }; + /** + * Gist Commit + */ + "gist-commit": { + url: string; + version: string; + user: components["schemas"]["simple-user"] | null; + change_status: { total?: number; additions?: number; deletions?: number }; + committed_at: string; + }; + /** + * Gitignore Template + */ + "gitignore-template": { name: string; source: string }; + /** + * Issues are a great way to keep track of tasks, enhancements, and bugs for your projects. + */ + issue: { + id: number; + node_id: string; + /** + * URL for the issue + */ + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + /** + * Number uniquely identifying the issue within its repository + */ + number: number; + /** + * State of the issue; either 'open' or 'closed' + */ + state: string; + /** + * Title of the issue + */ + title: string; + /** + * Contents of the issue + */ + body?: string; + user: components["schemas"]["simple-user"] | null; + /** + * Labels to associate with this issue; pass one or more label names to replace the set of labels on this issue; send an empty array to clear all labels from the issue; note that the labels are silently dropped for users without push access to the repository + */ + labels: ( + | string + | { + id?: number; + node_id?: string; + url?: string; + name?: string; + description?: string | null; + color?: string | null; + default?: boolean; + } + )[]; + assignee: components["schemas"]["simple-user"] | null; + assignees?: components["schemas"]["simple-user"][] | null; + milestone: components["schemas"]["milestone"] | null; + locked: boolean; + active_lock_reason?: string | null; + comments: number; + pull_request?: { + merged_at?: string | null; + diff_url: string | null; + html_url: string | null; + patch_url: string | null; + url: string | null; + }; + closed_at: string | null; + created_at: string; + updated_at: string; + closed_by?: components["schemas"]["simple-user"] | null; + body_html?: string; + body_text?: string; + timeline_url?: string; + repository?: components["schemas"]["repository"]; + performed_via_github_app?: components["schemas"]["integration"] | null; + author_association: string; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * License + */ + license: { + key: string; + name: string; + spdx_id: string | null; + url: string | null; + node_id: string; + html_url: string; + description: string; + implementation: string; + permissions: string[]; + conditions: string[]; + limitations: string[]; + body: string; + featured: boolean; + }; + /** + * Marketplace Listing Plan + */ + "marketplace-listing-plan": { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + unit_name: string | null; + state: string; + bullets: string[]; + }; + /** + * Marketplace Purchase + */ + "marketplace-purchase": { + url: string; + type: string; + id: number; + login: string; + organization_billing_email?: string; + marketplace_pending_change?: { + is_installed?: boolean; + effective_date?: string; + unit_count?: number | null; + id?: number; + plan?: components["schemas"]["marketplace-listing-plan"]; + } | null; + marketplace_purchase: { + billing_cycle?: string; + next_billing_date?: string | null; + is_installed?: boolean; + unit_count?: number | null; + on_free_trial?: boolean; + free_trial_ends_on?: string | null; + updated_at?: string; + plan?: components["schemas"]["marketplace-listing-plan"]; + }; + }; + /** + * Api Overview + */ + "api-overview": { + verifiable_password_authentication: boolean; + ssh_key_fingerprints?: { SHA256_RSA?: string; SHA256_DSA?: string }; + hooks?: string[]; + web?: string[]; + api?: string[]; + git?: string[]; + pages?: string[]; + importer?: string[]; + github_services_sha?: string; + installed_version?: string; + }; + /** + * Minimal Repository + */ + "minimal-repository": { + id: number; + node_id: string; + name: string; + full_name: string; + owner: components["schemas"]["simple-user"] | null; + private: boolean; + html_url: string; + description: string | null; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url?: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url?: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url?: string; + mirror_url?: string | null; + hooks_url: string; + svn_url?: string; + homepage?: string | null; + language?: string | null; + forks_count?: number; + stargazers_count?: number; + watchers_count?: number; + size?: number; + default_branch?: string; + open_issues_count?: number; + is_template?: boolean; + topics?: string[]; + has_issues?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + has_pages?: boolean; + has_downloads?: boolean; + archived?: boolean; + disabled?: boolean; + visibility?: string; + pushed_at?: string | null; + created_at?: string | null; + updated_at?: string | null; + permissions?: { admin?: boolean; push?: boolean; pull?: boolean }; + template_repository?: string; + temp_clone_token?: string; + delete_branch_on_merge?: boolean; + subscribers_count?: number; + network_count?: number; + license?: { + key?: string; + name?: string; + spdx_id?: string; + url?: string; + node_id?: string; + } | null; + forks?: number; + open_issues?: number; + watchers?: number; + }; + /** + * Thread + */ + thread: { + id?: string; + repository?: components["schemas"]["minimal-repository"]; + subject?: { + title?: string; + url?: string; + latest_comment_url?: string; + type?: string; + }; + reason?: string; + unread?: boolean; + updated_at?: string; + last_read_at?: string | null; + url?: string; + subscription_url?: string; + }; + /** + * Thread Subscription + */ + "thread-subscription": { + subscribed: boolean; + ignored: boolean; + reason: string | null; + created_at: string | null; + url: string; + thread_url?: string; + repository_url?: string; + }; + /** + * Organization Full + */ + "organization-full": { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string | null; + name?: string; + company?: string; + blog?: string; + location?: string; + email?: string; + twitter_username?: string | null; + is_verified?: boolean; + has_organization_projects: boolean; + has_repository_projects: boolean; + public_repos: number; + public_gists: number; + followers: number; + following: number; + html_url: string; + created_at: string; + type: string; + total_private_repos?: number; + owned_private_repos?: number; + private_gists?: number | null; + disk_usage?: number | null; + collaborators?: number | null; + billing_email?: string | null; + plan?: { + name: string; + space: number; + private_repos: number; + filled_seats?: number; + seats?: number; + }; + default_repository_permission?: string | null; + members_can_create_repositories?: boolean | null; + two_factor_requirement_enabled?: boolean | null; + members_allowed_repository_creation_type?: string; + members_can_create_public_repositories?: boolean; + members_can_create_private_repositories?: boolean; + members_can_create_internal_repositories?: boolean; + members_can_create_pages?: boolean; + updated_at: string; + }; + /** + * The policy that controls the repositories in the organization that are allowed to run GitHub Actions. Can be one of: `all`, `none`, or `selected`. + */ + "enabled-repositories": "all" | "none" | "selected"; + "actions-organization-permissions": { + enabled_repositories?: components["schemas"]["enabled-repositories"]; + /** + * The API URL to use to get or set the selected repositories that are allowed to run GitHub Actions, when `enabled_repositories` is set to `selected`. + */ + selected_repositories_url?: string; + allowed_actions?: components["schemas"]["allowed-actions"]; + selected_actions_url?: components["schemas"]["selected-actions-url"]; + }; + "runner-groups-org": { + id?: number; + name?: string; + visibility?: string; + default?: boolean; + selected_repositories_url?: string; + runners_url?: string; + inherited?: boolean; + }; + /** + * Secrets for GitHub Actions for an organization. + */ + "organization-actions-secret": { + /** + * The name of the secret. + */ + name: string; + created_at: string; + updated_at: string; + /** + * Visibility of a secret + */ + visibility: "all" | "private" | "selected"; + selected_repositories_url?: string; + }; + /** + * The public key used for setting Actions Secrets. + */ + "actions-public-key": { + /** + * The identifier for the key. + */ + key_id: string; + /** + * The Base64 encoded public key. + */ + key: string; + id?: number; + url?: string; + title?: string; + created_at?: string; + }; + /** + * Credential Authorization + */ + "credential-authorization": { + /** + * User login that owns the underlying credential. + */ + login: string; + /** + * Unique identifier for the credential. + */ + credential_id: number; + /** + * Human-readable description of the credential type. + */ + credential_type: string; + /** + * Last eight characters of the credential. Only included in responses with credential_type of personal access token. + */ + token_last_eight?: string; + /** + * Date when the credential was authorized for use. + */ + credential_authorized_at: string; + /** + * List of oauth scopes the token has been granted. + */ + scopes?: string[]; + /** + * Unique string to distinguish the credential. Only included in responses with credential_type of SSH Key. + */ + fingerprint?: string; + /** + * Date when the credential was last accessed. May be null if it was never accessed + */ + credential_accessed_at?: string | null; + }; + /** + * Org Hook + */ + "org-hook": { + id: number; + url: string; + ping_url: string; + name: string; + events: string[]; + active: boolean; + config: { + url?: string; + insecure_ssl?: string; + content_type?: string; + secret?: string; + }; + updated_at: string; + created_at: string; + type: string; + }; + /** + * The type of GitHub user that can comment, open issues, or create pull requests while the interaction limit is in effect. Can be one of: `existing_users`, `contributors_only`, `collaborators_only`. + */ + "interaction-group": + | "existing_users" + | "contributors_only" + | "collaborators_only"; + /** + * Interaction limit settings. + */ + "interaction-limit-response": { + limit: components["schemas"]["interaction-group"]; + origin: string; + expires_at: string; + }; + /** + * The duration of the interaction restriction. Can be one of: `one_day`, `three_days`, `one_week`, `one_month`, `six_months`. Default: `one_day`. + */ + "interaction-expiry": + | "one_day" + | "three_days" + | "one_week" + | "one_month" + | "six_months"; + /** + * Limit interactions to a specific type of user for a specified duration + */ + "interaction-limit": { + limit: components["schemas"]["interaction-group"]; + expiry?: components["schemas"]["interaction-expiry"]; + }; + /** + * Organization Invitation + */ + "organization-invitation": { + id?: number; + login?: string | null; + email?: string | null; + role?: string; + created_at?: string; + inviter?: components["schemas"]["simple-user"]; + team_count?: number; + invitation_team_url?: string; + node_id?: string; + invitation_teams_url?: string; + }; + /** + * Groups of organization members that gives permissions on specified repositories. + */ + "team-simple": { + /** + * Unique identifier of the team + */ + id: number; + node_id: string; + /** + * URL for the team + */ + url: string; + members_url: string; + /** + * Name of the team + */ + name: string; + /** + * Description of the team + */ + description: string | null; + /** + * Permission that the team will have for its repositories + */ + permission: string; + /** + * The level of privacy this team should have + */ + privacy?: string; + html_url: string; + repositories_url: string; + slug: string; + /** + * Distinguished Name (DN) that team maps to within LDAP environment + */ + ldap_dn?: string; + } | null; + /** + * Groups of organization members that gives permissions on specified repositories. + */ + team: { + id: number; + node_id: string; + name: string; + slug: string; + description: string | null; + privacy?: string; + permission: string; + url: string; + html_url: string; + members_url: string; + repositories_url: string; + parent?: components["schemas"]["team-simple"] | null; + }; + /** + * Org Membership + */ + "org-membership": { + url: string; + state: string; + role: string; + organization_url: string; + organization: components["schemas"]["organization-simple"]; + user: components["schemas"]["simple-user"] | null; + permissions?: { can_create_repository: boolean }; + }; + /** + * A migration. + */ + migration: { + id: number; + owner: components["schemas"]["simple-user"] | null; + guid: string; + state: string; + lock_repositories: boolean; + exclude_attachments: boolean; + repositories: components["schemas"]["repository"][]; + url: string; + created_at: string; + updated_at: string; + node_id: string; + archive_url?: string; + exclude?: { [key: string]: any }[]; + }; + /** + * Projects are a way to organize columns and cards of work. + */ + project: { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + /** + * Name of the project + */ + name: string; + /** + * Body of the project + */ + body: string | null; + number: number; + /** + * State of the project; either 'open' or 'closed' + */ + state: string; + creator: components["schemas"]["simple-user"] | null; + created_at: string; + updated_at: string; + /** + * The baseline permission that all organization members have on this project + */ + organization_permission?: "read" | "write" | "admin" | "none"; + /** + * Whether or not this project can be seen by everyone. + */ + private?: boolean; + cards_url?: string; + permissions?: { read: boolean; write: boolean; admin: boolean }; + }; + /** + * External Groups to be mapped to a team for membership + */ + "group-mapping": { + /** + * Array of groups to be mapped to this team + */ + groups?: { + /** + * The ID of the group + */ + group_id: string; + /** + * The name of the group + */ + group_name: string; + /** + * a description of the group + */ + group_description: string; + }[]; + /** + * The ID of the group + */ + group_id?: string; + /** + * The name of the group + */ + group_name?: string; + /** + * a description of the group + */ + group_description?: string; + /** + * synchronization status for this group mapping + */ + status?: string; + /** + * the time of the last sync for this group-mapping + */ + synced_at?: string; + }; + /** + * Groups of organization members that gives permissions on specified repositories. + */ + "team-full": { + /** + * Unique identifier of the team + */ + id: number; + node_id: string; + /** + * URL for the team + */ + url: string; + html_url: string; + /** + * Name of the team + */ + name: string; + slug: string; + description: string | null; + /** + * The level of privacy this team should have + */ + privacy?: "closed" | "secret"; + /** + * Permission that the team will have for its repositories + */ + permission: string; + members_url: string; + repositories_url: string; + parent?: components["schemas"]["team-simple"] | null; + members_count: number; + repos_count: number; + created_at: string; + updated_at: string; + organization: components["schemas"]["organization-full"]; + /** + * Distinguished Name (DN) that team maps to within LDAP environment + */ + ldap_dn?: string; + }; + /** + * A team discussion is a persistent record of a free-form conversation within a team. + */ + "team-discussion": { + author: components["schemas"]["simple-user"] | null; + /** + * The main text of the discussion. + */ + body: string; + body_html: string; + /** + * The current version of the body content. If provided, this update operation will be rejected if the given version does not match the latest version on the server. + */ + body_version: string; + comments_count: number; + comments_url: string; + created_at: string; + last_edited_at: string | null; + html_url: string; + node_id: string; + /** + * The unique sequence number of a team discussion. + */ + number: number; + /** + * Whether or not this discussion should be pinned for easy retrieval. + */ + pinned: boolean; + /** + * Whether or not this discussion should be restricted to team members and organization administrators. + */ + private: boolean; + team_url: string; + /** + * The title of the discussion. + */ + title: string; + updated_at: string; + url: string; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * A reply to a discussion within a team. + */ + "team-discussion-comment": { + author: components["schemas"]["simple-user"] | null; + /** + * The main text of the comment. + */ + body: string; + body_html: string; + /** + * The current version of the body content. If provided, this update operation will be rejected if the given version does not match the latest version on the server. + */ + body_version: string; + created_at: string; + last_edited_at: string | null; + discussion_url: string; + html_url: string; + node_id: string; + /** + * The unique sequence number of a team discussion comment. + */ + number: number; + updated_at: string; + url: string; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Reactions to conversations provide a way to help people express their feelings more simply and effectively. + */ + reaction: { + id: number; + node_id: string; + user: components["schemas"]["simple-user"] | null; + /** + * The reaction to use + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + created_at: string; + }; + /** + * Team Membership + */ + "team-membership": { + url: string; + /** + * The role of the user in the team. + */ + role: "member" | "maintainer"; + state: string; + }; + /** + * A team's access to a project. + */ + "team-project": { + owner_url?: string; + url?: string; + html_url?: string; + columns_url?: string; + id?: number; + node_id?: string; + name?: string; + body?: string | null; + number?: number; + state?: string; + creator?: components["schemas"]["simple-user"]; + created_at?: string; + updated_at?: string; + organization_permission?: string; + private?: boolean; + permissions?: { read?: boolean; write?: boolean; admin?: boolean }; + }; + /** + * A team's access to a repository. + */ + "team-repository": { + /** + * Unique identifier of the repository + */ + id: number; + node_id: string; + /** + * The name of the repository. + */ + name: string; + full_name: string; + license: components["schemas"]["license-simple"] | null; + forks: number; + permissions?: { + admin: boolean; + pull: boolean; + triage?: boolean; + push: boolean; + maintain?: boolean; + }; + owner: components["schemas"]["simple-user"] | null; + /** + * Whether the repository is private or public. + */ + private: boolean; + html_url: string; + description: string | null; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string | null; + hooks_url: string; + svn_url: string; + homepage: string | null; + language: string | null; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + /** + * The default branch of the repository. + */ + default_branch: string; + open_issues_count: number; + /** + * Whether this repository acts as a template that can be used to generate new repositories. + */ + is_template?: boolean; + topics?: string[]; + /** + * Whether issues are enabled. + */ + has_issues: boolean; + /** + * Whether projects are enabled. + */ + has_projects: boolean; + /** + * Whether the wiki is enabled. + */ + has_wiki: boolean; + has_pages: boolean; + /** + * Whether downloads are enabled. + */ + has_downloads: boolean; + /** + * Whether the repository is archived. + */ + archived: boolean; + /** + * Returns whether or not this repository disabled. + */ + disabled: boolean; + /** + * The repository visibility: public, private, or internal. + */ + visibility?: string; + pushed_at: string | null; + created_at: string | null; + updated_at: string | null; + /** + * Whether to allow rebase merges for pull requests. + */ + allow_rebase_merge?: boolean; + template_repository?: { + id?: number; + node_id?: string; + name?: string; + full_name?: string; + owner?: { + login?: string; + id?: number; + node_id?: string; + avatar_url?: string; + gravatar_id?: string; + url?: string; + html_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + subscriptions_url?: string; + organizations_url?: string; + repos_url?: string; + events_url?: string; + received_events_url?: string; + type?: string; + site_admin?: boolean; + }; + private?: boolean; + html_url?: string; + description?: string; + fork?: boolean; + url?: string; + archive_url?: string; + assignees_url?: string; + blobs_url?: string; + branches_url?: string; + collaborators_url?: string; + comments_url?: string; + commits_url?: string; + compare_url?: string; + contents_url?: string; + contributors_url?: string; + deployments_url?: string; + downloads_url?: string; + events_url?: string; + forks_url?: string; + git_commits_url?: string; + git_refs_url?: string; + git_tags_url?: string; + git_url?: string; + issue_comment_url?: string; + issue_events_url?: string; + issues_url?: string; + keys_url?: string; + labels_url?: string; + languages_url?: string; + merges_url?: string; + milestones_url?: string; + notifications_url?: string; + pulls_url?: string; + releases_url?: string; + ssh_url?: string; + stargazers_url?: string; + statuses_url?: string; + subscribers_url?: string; + subscription_url?: string; + tags_url?: string; + teams_url?: string; + trees_url?: string; + clone_url?: string; + mirror_url?: string; + hooks_url?: string; + svn_url?: string; + homepage?: string; + language?: string; + forks_count?: number; + stargazers_count?: number; + watchers_count?: number; + size?: number; + default_branch?: string; + open_issues_count?: number; + is_template?: boolean; + topics?: string[]; + has_issues?: boolean; + has_projects?: boolean; + has_wiki?: boolean; + has_pages?: boolean; + has_downloads?: boolean; + archived?: boolean; + disabled?: boolean; + visibility?: string; + pushed_at?: string; + created_at?: string; + updated_at?: string; + permissions?: { admin?: boolean; push?: boolean; pull?: boolean }; + allow_rebase_merge?: boolean; + template_repository?: string; + temp_clone_token?: string; + allow_squash_merge?: boolean; + delete_branch_on_merge?: boolean; + allow_merge_commit?: boolean; + subscribers_count?: number; + network_count?: number; + } | null; + temp_clone_token?: string; + /** + * Whether to allow squash merges for pull requests. + */ + allow_squash_merge?: boolean; + /** + * Whether to delete head branches when pull requests are merged + */ + delete_branch_on_merge?: boolean; + /** + * Whether to allow merge commits for pull requests. + */ + allow_merge_commit?: boolean; + subscribers_count?: number; + network_count?: number; + open_issues: number; + watchers: number; + master_branch?: string; + }; + /** + * Project cards represent a scope of work. + */ + "project-card": { + url: string; + /** + * The project card's ID + */ + id: number; + node_id: string; + note: string | null; + creator: components["schemas"]["simple-user"] | null; + created_at: string; + updated_at: string; + /** + * Whether or not the card is archived + */ + archived?: boolean; + column_url: string; + content_url?: string; + project_url: string; + }; + /** + * Project columns contain cards of work. + */ + "project-column": { + url: string; + project_url: string; + cards_url: string; + /** + * The unique identifier of the project column + */ + id: number; + node_id: string; + /** + * Name of the project column + */ + name: string; + created_at: string; + updated_at: string; + }; + /** + * Repository Collaborator Permission + */ + "repository-collaborator-permission": { + permission: string; + user: components["schemas"]["simple-user"] | null; + }; + "rate-limit": { limit: number; remaining: number; reset: number }; + /** + * Rate Limit Overview + */ + "rate-limit-overview": { + resources: { + core: components["schemas"]["rate-limit"]; + graphql?: components["schemas"]["rate-limit"]; + search: components["schemas"]["rate-limit"]; + source_import?: components["schemas"]["rate-limit"]; + integration_manifest?: components["schemas"]["rate-limit"]; + code_scanning_upload?: components["schemas"]["rate-limit"]; + }; + rate: components["schemas"]["rate-limit"]; + }; + /** + * Full Repository + */ + "full-repository": { + id: number; + node_id: string; + name: string; + full_name: string; + owner: components["schemas"]["simple-user"] | null; + private: boolean; + html_url: string; + description: string | null; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string | null; + hooks_url: string; + svn_url: string; + homepage: string | null; + language: string | null; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template?: boolean; + topics?: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + /** + * Returns whether or not this repository disabled. + */ + disabled: boolean; + /** + * The repository visibility: public, private, or internal. + */ + visibility?: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions?: { admin: boolean; pull: boolean; push: boolean }; + allow_rebase_merge?: boolean; + template_repository?: components["schemas"]["repository"] | null; + temp_clone_token?: string | null; + allow_squash_merge?: boolean; + delete_branch_on_merge?: boolean; + allow_merge_commit?: boolean; + subscribers_count: number; + network_count: number; + license: components["schemas"]["license-simple"] | null; + organization?: components["schemas"]["simple-user"] | null; + parent?: components["schemas"]["repository"]; + source?: components["schemas"]["repository"]; + forks: number; + master_branch?: string; + open_issues: number; + watchers: number; + /** + * Whether anonymous git access is allowed. + */ + anonymous_access_enabled?: boolean; + }; + /** + * An artifact + */ + artifact: { + id: number; + node_id: string; + /** + * The name of the artifact. + */ + name: string; + /** + * The size in bytes of the artifact. + */ + size_in_bytes: number; + url: string; + archive_download_url: string; + /** + * Whether or not the artifact has expired. + */ + expired: boolean; + created_at: string | null; + expires_at: string; + updated_at: string | null; + }; + /** + * Information of a job execution in a workflow run + */ + job: { + /** + * The id of the job. + */ + id: number; + /** + * The id of the associated workflow run. + */ + run_id: number; + run_url: string; + node_id: string; + /** + * The SHA of the commit that is being run. + */ + head_sha: string; + url: string; + html_url: string | null; + /** + * The phase of the lifecycle that the job is currently in. + */ + status: "queued" | "in_progress" | "completed"; + /** + * The outcome of the job. + */ + conclusion: string | null; + /** + * The time that the job started, in ISO 8601 format. + */ + started_at: string; + /** + * The time that the job finished, in ISO 8601 format. + */ + completed_at: string | null; + /** + * The name of the job. + */ + name: string; + /** + * Steps in this job. + */ + steps?: { + /** + * The phase of the lifecycle that the job is currently in. + */ + status: "queued" | "in_progress" | "completed"; + /** + * The outcome of the job. + */ + conclusion: string | null; + /** + * The name of the job. + */ + name: string; + number: number; + /** + * The time that the step started, in ISO 8601 format. + */ + started_at?: string | null; + /** + * The time that the job finished, in ISO 8601 format. + */ + completed_at?: string | null; + }[]; + check_run_url: string; + }; + /** + * Whether GitHub Actions is enabled on the repository. + */ + "actions-enabled": boolean; + "actions-repository-permissions": { + enabled?: components["schemas"]["actions-enabled"]; + allowed_actions?: components["schemas"]["allowed-actions"]; + selected_actions_url?: components["schemas"]["selected-actions-url"]; + }; + "pull-request-minimal": { + id: number; + number: number; + url: string; + head: { + ref: string; + sha: string; + repo: { id: number; url: string; name: string }; + }; + base: { + ref: string; + sha: string; + repo: { id: number; url: string; name: string }; + }; + }; + /** + * Simple Commit + */ + "simple-commit": { + id: string; + tree_id: string; + message: string; + timestamp: string; + author: { name: string; email: string } | null; + committer: { name: string; email: string } | null; + }; + /** + * An invocation of a workflow + */ + "workflow-run": { + /** + * The ID of the workflow run. + */ + id: number; + /** + * The name of the workflow run. + */ + name?: string; + node_id: string; + head_branch: string | null; + /** + * The SHA of the head commit that points to the version of the worflow being run. + */ + head_sha: string; + /** + * The auto incrementing run number for the workflow run. + */ + run_number: number; + event: string; + status: string | null; + conclusion: string | null; + /** + * The ID of the parent workflow. + */ + workflow_id: number; + /** + * The URL to the workflow run. + */ + url: string; + html_url: string; + pull_requests: components["schemas"]["pull-request-minimal"][] | null; + created_at: string | null; + updated_at: string | null; + /** + * The URL to the jobs for the workflow run. + */ + jobs_url: string; + /** + * The URL to download the logs for the workflow run. + */ + logs_url: string; + /** + * The URL to the associated check suite. + */ + check_suite_url: string; + /** + * The URL to the artifacts for the workflow run. + */ + artifacts_url: string; + /** + * The URL to cancel the workflow run. + */ + cancel_url: string; + /** + * The URL to rerun the workflow run. + */ + rerun_url: string; + /** + * The URL to the workflow. + */ + workflow_url: string; + head_commit: components["schemas"]["simple-commit"]; + repository: components["schemas"]["minimal-repository"]; + head_repository: components["schemas"]["minimal-repository"]; + head_repository_id?: number; + }; + /** + * Workflow Run Usage + */ + "workflow-run-usage": { + billable?: { + UBUNTU?: { total_ms?: number; jobs?: number }; + MACOS?: { total_ms?: number; jobs?: number }; + WINDOWS?: { total_ms?: number; jobs?: number }; + }; + run_duration_ms?: number; + }; + /** + * Set secrets for GitHub Actions. + */ + "actions-secret": { + /** + * The name of the secret. + */ + name: string; + created_at: string; + updated_at: string; + }; + /** + * A GitHub Actions workflow + */ + workflow: { + id: number; + node_id: string; + name: string; + path: string; + state: "active" | "deleted"; + created_at: string; + updated_at: string; + url: string; + html_url: string; + badge_url: string; + deleted_at?: string; + }; + /** + * Workflow Usage + */ + "workflow-usage": { + billable?: { + UBUNTU?: { total_ms?: number }; + MACOS?: { total_ms?: number }; + WINDOWS?: { total_ms?: number }; + }; + }; + /** + * Protected Branch Admin Enforced + */ + "protected-branch-admin-enforced": { url: string; enabled: boolean }; + /** + * Protected Branch Pull Request Review + */ + "protected-branch-pull-request-review": { + url?: string; + dismissal_restrictions?: { + /** + * The list of users with review dismissal access. + */ + users?: components["schemas"]["simple-user"][]; + /** + * The list of teams with review dismissal access. + */ + teams?: components["schemas"]["team"][]; + url?: string; + users_url?: string; + teams_url?: string; + }; + dismiss_stale_reviews: boolean; + require_code_owner_reviews: boolean; + required_approving_review_count?: number; + }; + /** + * Branch Restriction Policy + */ + "branch-restriction-policy": { + url: string; + users_url: string; + teams_url: string; + apps_url: string; + users: { + login?: string; + id?: number; + node_id?: string; + avatar_url?: string; + gravatar_id?: string; + url?: string; + html_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + subscriptions_url?: string; + organizations_url?: string; + repos_url?: string; + events_url?: string; + received_events_url?: string; + type?: string; + site_admin?: boolean; + }[]; + teams: { + id?: number; + node_id?: string; + url?: string; + html_url?: string; + name?: string; + slug?: string; + description?: string | null; + privacy?: string; + permission?: string; + members_url?: string; + repositories_url?: string; + parent?: string | null; + }[]; + apps: { + id?: number; + slug?: string; + node_id?: string; + owner?: { + login?: string; + id?: number; + node_id?: string; + url?: string; + repos_url?: string; + events_url?: string; + hooks_url?: string; + issues_url?: string; + members_url?: string; + public_members_url?: string; + avatar_url?: string; + description?: string; + gravatar_id?: string; + html_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + subscriptions_url?: string; + organizations_url?: string; + received_events_url?: string; + type?: string; + }; + name?: string; + description?: string; + external_url?: string; + html_url?: string; + created_at?: string; + updated_at?: string; + permissions?: { + metadata?: string; + contents?: string; + issues?: string; + single_file?: string; + }; + events?: string[]; + }[]; + }; + /** + * Branch Protection + */ + "branch-protection": { + url?: string; + required_status_checks: { + url?: string; + enforcement_level: string; + contexts: string[]; + contexts_url?: string; + }; + enforce_admins?: components["schemas"]["protected-branch-admin-enforced"]; + required_pull_request_reviews?: components["schemas"]["protected-branch-pull-request-review"]; + restrictions?: components["schemas"]["branch-restriction-policy"]; + required_linear_history?: { enabled?: boolean }; + allow_force_pushes?: { enabled?: boolean }; + allow_deletions?: { enabled?: boolean }; + enabled: boolean; + name?: string; + protection_url?: string; + }; + /** + * Short Branch + */ + "short-branch": { + name: string; + commit: { sha: string; url: string }; + protected: boolean; + protection?: components["schemas"]["branch-protection"]; + protection_url?: string; + }; + /** + * Metaproperties for Git author/committer information. + */ + "git-user": { name?: string; email?: string; date?: string }; + verification: { + verified: boolean; + reason: string; + payload: string | null; + signature: string | null; + }; + /** + * Commit + */ + commit: { + url: string | null; + sha: string | null; + node_id: string; + html_url: string; + comments_url: string; + commit: { + url: string; + author: components["schemas"]["git-user"] | null; + committer: components["schemas"]["git-user"] | null; + message: string; + comment_count: number; + tree: { sha: string; url: string }; + verification?: components["schemas"]["verification"]; + }; + author: components["schemas"]["simple-user"] | null; + committer: components["schemas"]["simple-user"] | null; + parents: { sha: string; url: string; html_url?: string }[]; + stats?: { additions?: number; deletions?: number; total?: number }; + files?: { + filename?: string; + additions?: number; + deletions?: number; + changes?: number; + status?: string; + raw_url?: string; + blob_url?: string; + patch?: string; + sha?: string; + contents_url?: string; + previous_filename?: string; + }[]; + }; + /** + * Branch With Protection + */ + "branch-with-protection": { + name: string; + commit: components["schemas"]["commit"]; + _links: { html: string; self: string }; + protected: boolean; + protection: components["schemas"]["branch-protection"]; + protection_url: string; + pattern?: string; + required_approving_review_count?: number; + }; + /** + * Status Check Policy + */ + "status-check-policy": { + url: string; + strict: boolean; + contexts: string[]; + contexts_url: string; + }; + /** + * Branch protections protect branches + */ + "protected-branch": { + url: string; + required_status_checks?: components["schemas"]["status-check-policy"]; + required_pull_request_reviews?: { + url: string; + dismiss_stale_reviews?: boolean; + require_code_owner_reviews?: boolean; + required_approving_review_count?: number; + dismissal_restrictions?: { + url: string; + users_url: string; + teams_url: string; + users: components["schemas"]["simple-user"][]; + teams: components["schemas"]["team"][]; + }; + }; + required_signatures?: { url: string; enabled: boolean }; + enforce_admins?: { url: string; enabled: boolean }; + required_linear_history?: { enabled: boolean }; + allow_force_pushes?: { enabled: boolean }; + allow_deletions?: { enabled: boolean }; + restrictions?: components["schemas"]["branch-restriction-policy"]; + }; + /** + * A check performed on the code of a given code change + */ + "check-run": { + /** + * The id of the check. + */ + id: number; + /** + * The SHA of the commit that is being checked. + */ + head_sha: string; + node_id: string; + external_id: string | null; + url: string; + html_url: string | null; + details_url: string | null; + /** + * The phase of the lifecycle that the check is currently in. + */ + status: "queued" | "in_progress" | "completed"; + conclusion: + | ( + | "success" + | "failure" + | "neutral" + | "cancelled" + | "skipped" + | "timed_out" + | "action_required" + ) + | null; + started_at: string | null; + completed_at: string | null; + output: { + title: string | null; + summary: string | null; + text: string | null; + annotations_count: number; + annotations_url: string; + }; + /** + * The name of the check. + */ + name: string; + check_suite: { id: number } | null; + app: components["schemas"]["integration"] | null; + pull_requests: components["schemas"]["pull-request-minimal"][]; + }; + /** + * Check Annotation + */ + "check-annotation": { + path: string; + start_line: number; + end_line: number; + start_column: number | null; + end_column: number | null; + annotation_level: string | null; + title: string | null; + message: string | null; + raw_details: string | null; + blob_href: string; + }; + /** + * A suite of checks performed on the code of a given code change + */ + "check-suite": { + id: number; + node_id: string; + head_branch: string | null; + /** + * The SHA of the head commit that is being checked. + */ + head_sha: string; + status: ("queued" | "in_progress" | "completed") | null; + conclusion: + | ( + | "success" + | "failure" + | "neutral" + | "cancelled" + | "skipped" + | "timed_out" + | "action_required" + ) + | null; + url: string | null; + before: string | null; + after: string | null; + pull_requests: components["schemas"]["pull-request-minimal"][] | null; + app: components["schemas"]["integration"] | null; + repository: components["schemas"]["minimal-repository"]; + created_at: string | null; + updated_at: string | null; + head_commit: components["schemas"]["simple-commit"]; + latest_check_runs_count: number; + check_runs_url: string; + }; + /** + * Check suite configuration preferences for a repository. + */ + "check-suite-preference": { + preferences?: { + auto_trigger_checks?: { app_id: number; setting: boolean }[]; + }; + repository?: components["schemas"]["repository"]; + }; + /** + * State of a code scanning alert. + */ + "code-scanning-alert-state": "open" | "dismissed" | "fixed"; + /** + * The full Git reference, formatted as `refs/heads/`. + */ + "code-scanning-alert-ref": string; + /** + * The security alert number. + */ + "alert-number": number; + /** + * The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + "alert-created-at": string; + /** + * The REST API URL of the alert resource. + */ + "alert-url": string; + /** + * The GitHub URL of the alert resource. + */ + "alert-html-url": string; + /** + * The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + "code-scanning-alert-dismissed-at": string | null; + /** + * **Required when the state is dismissed.** The reason for dismissing or closing the alert. Can be one of: `false positive`, `won't fix`, and `used in tests`. + */ + "code-scanning-alert-dismissed-reason": string | null; + "code-scanning-alert-rule": { + /** + * A unique identifier for the rule used to detect the alert. + */ + id?: string | null; + /** + * The severity of the alert. + */ + severity?: ("none" | "note" | "warning" | "error") | null; + /** + * A short description of the rule used to detect the alert. + */ + description?: string; + }; + /** + * The name of the tool used to generate the code scanning analysis alert. + */ + "code-scanning-analysis-tool-name": string; + "code-scanning-analysis-tool": { + name?: components["schemas"]["code-scanning-analysis-tool-name"]; + /** + * The version of the tool used to detect the alert. + */ + version?: string | null; + }; + "code-scanning-alert-code-scanning-alert-items": { + number?: components["schemas"]["alert-number"]; + created_at?: components["schemas"]["alert-created-at"]; + url?: components["schemas"]["alert-url"]; + html_url?: components["schemas"]["alert-html-url"]; + state?: components["schemas"]["code-scanning-alert-state"]; + dismissed_by?: components["schemas"]["simple-user"]; + dismissed_at?: components["schemas"]["code-scanning-alert-dismissed-at"]; + dismissed_reason?: components["schemas"]["code-scanning-alert-dismissed-reason"]; + rule?: components["schemas"]["code-scanning-alert-rule"]; + tool?: components["schemas"]["code-scanning-analysis-tool"]; + }; + /** + * Identifies the configuration under which the analysis was executed. For example, in GitHub Actions this includes the workflow filename and job name. + */ + "code-scanning-analysis-analysis-key": string; + /** + * Identifies the variable values associated with the environment in which the analysis that generated this alert instance was performed, such as the language that was analyzed. + */ + "code-scanning-alert-environment": string; + "code-scanning-alert-instances": + | { + ref?: components["schemas"]["code-scanning-alert-ref"]; + analysis_key?: components["schemas"]["code-scanning-analysis-analysis-key"]; + environment?: components["schemas"]["code-scanning-alert-environment"]; + matrix_vars?: string | null; + state?: components["schemas"]["code-scanning-alert-state"]; + }[] + | null; + "code-scanning-alert-code-scanning-alert": { + number?: components["schemas"]["alert-number"]; + created_at?: components["schemas"]["alert-created-at"]; + url?: components["schemas"]["alert-url"]; + html_url?: components["schemas"]["alert-html-url"]; + instances?: components["schemas"]["code-scanning-alert-instances"]; + state?: components["schemas"]["code-scanning-alert-state"]; + dismissed_by?: components["schemas"]["simple-user"]; + dismissed_at?: components["schemas"]["code-scanning-alert-dismissed-at"]; + dismissed_reason?: components["schemas"]["code-scanning-alert-dismissed-reason"]; + rule?: components["schemas"]["code-scanning-alert-rule"]; + tool?: components["schemas"]["code-scanning-analysis-tool"]; + }; + /** + * Sets the state of the code scanning alert. Can be one of `open` or `dismissed`. You must provide `dismissed_reason` when you set the state to `dismissed`. + */ + "code-scanning-alert-set-state": "open" | "dismissed"; + /** + * The full Git reference of the code scanning analysis file, formatted as `refs/heads/`. + */ + "code-scanning-analysis-ref": string; + /** + * The commit SHA of the code scanning analysis file. + */ + "code-scanning-analysis-commit-sha": string; + /** + * The time that the analysis was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + "code-scanning-analysis-created-at": string; + /** + * Identifies the variable values associated with the environment in which this analysis was performed. + */ + "code-scanning-analysis-environment": string; + "code-scanning-analysis-code-scanning-analysis": { + commit_sha?: components["schemas"]["code-scanning-analysis-commit-sha"]; + ref?: components["schemas"]["code-scanning-analysis-ref"]; + analysis_key?: components["schemas"]["code-scanning-analysis-analysis-key"]; + created_at?: components["schemas"]["code-scanning-analysis-created-at"]; + tool_name?: components["schemas"]["code-scanning-analysis-tool-name"]; + error?: string; + environment?: components["schemas"]["code-scanning-analysis-environment"]; + }; + /** + * A Base64 string representing the SARIF file to upload. You must first compress your SARIF file using [`gzip`](http://www.gnu.org/software/gzip/manual/gzip.html) and then translate the contents of the file into a Base64 encoding string. + */ + "code-scanning-analysis-sarif-file": string; + /** + * Collaborator + */ + collaborator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string | null; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + permissions?: { pull: boolean; push: boolean; admin: boolean }; + }; + /** + * Repository invitations let you manage who you collaborate with. + */ + "repository-invitation": { + /** + * Unique identifier of the repository invitation. + */ + id: number; + repository: components["schemas"]["minimal-repository"]; + invitee: components["schemas"]["simple-user"] | null; + inviter: components["schemas"]["simple-user"] | null; + /** + * The permission associated with the invitation. + */ + permissions: "read" | "write" | "admin"; + created_at: string; + /** + * URL for the repository invitation + */ + url: string; + html_url: string; + node_id: string; + }; + /** + * Commit Comment + */ + "commit-comment": { + html_url: string; + url: string; + id: number; + node_id: string; + body: string; + path: string | null; + position: number | null; + line: number | null; + commit_id: string; + user: components["schemas"]["simple-user"] | null; + created_at: string; + updated_at: string; + author_association: string; + reactions?: components["schemas"]["reaction-rollup"]; + }; + /** + * Scim Error + */ + "scim-error": { + message?: string | null; + documentation_url?: string | null; + detail?: string | null; + status?: number; + scimType?: string | null; + schemas?: string[]; + }; + /** + * Branch Short + */ + "branch-short": { + name?: string; + commit?: { sha?: string; url?: string }; + protected?: boolean; + }; + /** + * Hypermedia Link + */ + link: { href: string }; + /** + * Pull Request Simple + */ + "pull-request-simple": { + url: string; + id: number; + node_id: string; + html_url: string; + diff_url: string; + patch_url: string; + issue_url: string; + commits_url: string; + review_comments_url: string; + review_comment_url: string; + comments_url: string; + statuses_url: string; + number: number; + state: string; + locked: boolean; + title: string; + user: components["schemas"]["simple-user"] | null; + body: string | null; + labels: { + id?: number; + node_id?: string; + url?: string; + name?: string; + description?: string; + color?: string; + default?: boolean; + }[]; + milestone: components["schemas"]["milestone"] | null; + active_lock_reason?: string | null; + created_at: string; + updated_at: string; + closed_at: string | null; + merged_at: string | null; + merge_commit_sha: string | null; + assignee: components["schemas"]["simple-user"] | null; + assignees?: components["schemas"]["simple-user"][] | null; + requested_reviewers?: components["schemas"]["simple-user"][] | null; + requested_teams?: components["schemas"]["team-simple"][] | null; + head: { + label: string; + ref: string; + repo: components["schemas"]["repository"]; + sha: string; + user: components["schemas"]["simple-user"] | null; + }; + base: { + label: string; + ref: string; + repo: components["schemas"]["repository"]; + sha: string; + user: components["schemas"]["simple-user"] | null; + }; + _links: { + comments: components["schemas"]["link"]; + commits: components["schemas"]["link"]; + statuses: components["schemas"]["link"]; + html: components["schemas"]["link"]; + issue: components["schemas"]["link"]; + review_comments: components["schemas"]["link"]; + review_comment: components["schemas"]["link"]; + self: components["schemas"]["link"]; + }; + author_association: string; + /** + * Indicates whether or not the pull request is a draft. + */ + draft?: boolean; + }; + "simple-commit-status": { + description: string | null; + id: number; + node_id: string; + state: string; + context: string; + target_url: string; + required?: boolean | null; + avatar_url: string | null; + url: string; + created_at: string; + updated_at: string; + }; + /** + * Combined Commit Status + */ + "combined-commit-status": { + state: string; + statuses: components["schemas"]["simple-commit-status"][]; + sha: string; + total_count: number; + repository: components["schemas"]["minimal-repository"]; + commit_url: string; + url: string; + }; + /** + * The status of a commit. + */ + status: { + url?: string; + avatar_url?: string | null; + id?: number; + node_id?: string; + state?: string; + description?: string; + target_url?: string; + context?: string; + created_at?: string; + updated_at?: string; + creator?: components["schemas"]["simple-user"]; + }; + /** + * Code of Conduct Simple + */ + "code-of-conduct-simple": { + url: string; + key: string; + name: string; + html_url: string | null; + }; + "community-health-file": { url: string; html_url: string }; + /** + * Community Profile + */ + "community-profile": { + health_percentage: number; + description: string | null; + documentation: string | null; + files: { + code_of_conduct: components["schemas"]["code-of-conduct-simple"] | null; + license: components["schemas"]["license-simple"] | null; + contributing: components["schemas"]["community-health-file"] | null; + readme: components["schemas"]["community-health-file"] | null; + issue_template: components["schemas"]["community-health-file"] | null; + pull_request_template: + | components["schemas"]["community-health-file"] + | null; + }; + updated_at: string | null; + content_reports_enabled?: boolean; + }; + /** + * Diff Entry + */ + "diff-entry": { + sha: string; + filename: string; + status: string; + additions: number; + deletions: number; + changes: number; + blob_url: string; + raw_url: string; + contents_url: string; + patch?: string; + previous_filename?: string; + }; + /** + * Commit Comparison + */ + "commit-comparison": { + url: string; + html_url: string; + permalink_url: string; + diff_url: string; + patch_url: string; + base_commit: components["schemas"]["commit"]; + merge_base_commit: components["schemas"]["commit"]; + status: "diverged" | "ahead" | "behind" | "identical"; + ahead_by: number; + behind_by: number; + total_commits: number; + commits: components["schemas"]["commit"][]; + files: components["schemas"]["diff-entry"][]; + }; + /** + * Content Tree + */ + "content-tree": { + type: string; + size: number; + name: string; + path: string; + sha: string; + url: string; + git_url: string | null; + html_url: string | null; + download_url: string | null; + entries?: { + type: string; + size: number; + name: string; + path: string; + content?: string; + sha: string; + url: string; + git_url: string | null; + html_url: string | null; + download_url: string | null; + _links: { git: string | null; html: string | null; self: string }; + }[]; + _links: { git: string | null; html: string | null; self: string }; + }; + /** + * A list of directory items + */ + "content-directory": { + type: string; + size: number; + name: string; + path: string; + content?: string; + sha: string; + url: string; + git_url: string | null; + html_url: string | null; + download_url: string | null; + _links: { git: string | null; html: string | null; self: string }; + }[]; + /** + * Content File + */ + "content-file": { + type: string; + encoding: string; + size: number; + name: string; + path: string; + content: string; + sha: string; + url: string; + git_url: string | null; + html_url: string | null; + download_url: string | null; + _links: { git: string | null; html: string | null; self: string }; + target?: string; + submodule_git_url?: string; + }; + /** + * An object describing a symlink + */ + "content-symlink": { + type: string; + target: string; + size: number; + name: string; + path: string; + sha: string; + url: string; + git_url: string | null; + html_url: string | null; + download_url: string | null; + _links: { git: string | null; html: string | null; self: string }; + }; + /** + * An object describing a symlink + */ + "content-submodule": { + type: string; + submodule_git_url: string; + size: number; + name: string; + path: string; + sha: string; + url: string; + git_url: string | null; + html_url: string | null; + download_url: string | null; + _links: { git: string | null; html: string | null; self: string }; + }; + /** + * File Commit + */ + "file-commit": { + content?: { + name?: string; + path?: string; + sha?: string; + size?: number; + url?: string; + html_url?: string; + git_url?: string; + download_url?: string; + type?: string; + _links?: { self?: string; git?: string; html?: string }; + } | null; + commit?: { + sha?: string; + node_id?: string; + url?: string; + html_url?: string; + author?: { date?: string; name?: string; email?: string }; + committer?: { date?: string; name?: string; email?: string }; + message?: string; + tree?: { url?: string; sha?: string }; + parents?: { url?: string; html_url?: string; sha?: string }[]; + verification?: { + verified?: boolean; + reason?: string; + signature?: string | null; + payload?: string | null; + }; + }; + }; + /** + * Contributor + */ + contributor: { + login?: string; + id?: number; + node_id?: string; + avatar_url?: string; + gravatar_id?: string | null; + url?: string; + html_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + subscriptions_url?: string; + organizations_url?: string; + repos_url?: string; + events_url?: string; + received_events_url?: string; + type: string; + site_admin?: boolean; + contributions: number; + email?: string; + name?: string; + }; + /** + * A request for a specific ref(branch,sha,tag) to be deployed + */ + deployment: { + url: string; + /** + * Unique identifier of the deployment + */ + id: number; + node_id: string; + sha: string; + /** + * The ref to deploy. This can be a branch, tag, or sha. + */ + ref: string; + /** + * Parameter to specify a task to execute + */ + task: string; + payload: { [key: string]: any }; + original_environment?: string; + /** + * Name for the target deployment environment. + */ + environment: string; + description: string | null; + creator: components["schemas"]["simple-user"] | null; + created_at: string; + updated_at: string; + statuses_url: string; + repository_url: string; + /** + * Specifies if the given environment is will no longer exist at some point in the future. Default: false. + */ + transient_environment?: boolean; + /** + * Specifies if the given environment is one that end-users directly interact with. Default: false. + */ + production_environment?: boolean; + performed_via_github_app?: components["schemas"]["integration"] | null; + }; + /** + * The status of a deployment. + */ + "deployment-status": { + url: string; + id: number; + node_id: string; + /** + * The state of the status. + */ + state: + | "error" + | "failure" + | "inactive" + | "pending" + | "success" + | "queued" + | "in_progress"; + creator: components["schemas"]["simple-user"] | null; + /** + * A short description of the status. + */ + description: string; + /** + * The environment of the deployment that the status is for. + */ + environment?: string; + /** + * Deprecated: the URL to associate with this status. + */ + target_url: string; + created_at: string; + updated_at: string; + deployment_url: string; + repository_url: string; + /** + * The URL for accessing your environment. + */ + environment_url?: string; + /** + * The URL to associate with this status. + */ + log_url?: string; + performed_via_github_app?: components["schemas"]["integration"] | null; + }; + /** + * Short Blob + */ + "short-blob": { url?: string; sha?: string }; + /** + * Blob + */ + blob: { + content: string; + encoding: string; + url: string; + sha: string; + size: number | null; + node_id: string; + highlighted_content?: string; + }; + /** + * Low-level Git commit operations within a repository + */ + "git-commit": { + /** + * SHA for the commit + */ + sha?: string; + node_id?: string; + url?: string; + /** + * Identifying information for the git-user + */ + author?: { + /** + * Timestamp of the commit + */ + date?: string; + /** + * Git email address of the user + */ + email: string; + /** + * Name of the git user + */ + name: string; + }; + /** + * Identifying information for the git-user + */ + committer?: { + /** + * Timestamp of the commit + */ + date?: string; + /** + * Git email address of the user + */ + email: string; + /** + * Name of the git user + */ + name: string; + }; + /** + * Message describing the purpose of the commit + */ + message?: string; + tree?: { + /** + * SHA for the commit + */ + sha?: string; + url?: string; + }; + parents?: { + /** + * SHA for the commit + */ + sha?: string; + url?: string; + html_url?: string; + }[]; + verification?: { + verified?: boolean; + reason?: string; + signature?: string | null; + payload?: string | null; + }; + html_url?: string; + }; + /** + * Git references within a repository + */ + "git-ref": { + ref?: string; + node_id?: string; + url?: string; + object?: { + type?: string; + /** + * SHA for the reference + */ + sha?: string; + url?: string; + }; + }; + /** + * Metadata for a Git tag + */ + "git-tag": { + node_id: string; + /** + * Name of the tag + */ + tag: string; + sha: string; + /** + * URL for the tag + */ + url: string; + /** + * Message describing the purpose of the tag + */ + message: string; + tagger: { date: string; email: string; name: string }; + object: { sha: string; type: string; url: string }; + verification?: components["schemas"]["verification"]; + }; + /** + * The hierarchy between files in a Git repository. + */ + "git-tree": { + sha: string; + url: string; + truncated: boolean; + /** + * Objects specifying a tree structure + */ + tree: { + path?: string; + mode?: string; + type?: string; + sha?: string; + size?: number; + url?: string; + }[]; + }; + "hook-response": { + code: number | null; + status: string | null; + message: string | null; + }; + /** + * Webhooks for repositories. + */ + hook: { + type: string; + /** + * Unique identifier of the webhook. + */ + id: number; + /** + * The name of a valid service, use 'web' for a webhook. + */ + name: string; + /** + * Determines whether the hook is actually triggered on pushes. + */ + active: boolean; + /** + * Determines what events the hook is triggered for. Default: ['push']. + */ + events: string[]; + config: { + email?: string; + password?: string; + room?: string; + subdomain?: string; + url?: components["schemas"]["webhook-config-url"]; + insecure_ssl?: components["schemas"]["webhook-config-insecure-ssl"]; + content_type?: components["schemas"]["webhook-config-content-type"]; + digest?: string; + secret?: components["schemas"]["webhook-config-secret"]; + token?: string; + }; + updated_at: string; + created_at: string; + url: string; + test_url: string; + ping_url: string; + last_response: components["schemas"]["hook-response"]; + }; + /** + * A repository import from an external source. + */ + import: { + vcs: string | null; + use_lfs?: string; + /** + * The URL of the originating repository. + */ + vcs_url: string; + svc_root?: string; + tfvc_project?: string; + status: + | "auth" + | "error" + | "none" + | "detecting" + | "choose" + | "auth_failed" + | "importing" + | "mapping" + | "waiting_to_push" + | "pushing" + | "complete" + | "setup" + | "unknown" + | "detection_found_multiple" + | "detection_found_nothing" + | "detection_needs_auth"; + status_text?: string | null; + failed_step?: string | null; + error_message?: string | null; + import_percent?: number | null; + commit_count?: number | null; + push_percent?: number | null; + has_large_files?: boolean; + large_files_size?: number; + large_files_count?: number; + project_choices?: { + vcs?: string; + tfvc_project?: string; + human_name?: string; + }[]; + message?: string; + authors_count?: number | null; + url: string; + html_url: string; + authors_url: string; + repository_url: string; + svn_root?: string; + }; + /** + * Porter Author + */ + "porter-author": { + id: number; + remote_id: string; + remote_name: string; + email: string; + name: string; + url: string; + import_url: string; + }; + /** + * Porter Large File + */ + "porter-large-file": { + ref_name: string; + path: string; + oid: string; + size: number; + }; + /** + * Issue Event Label + */ + "issue-event-label": { name: string | null; color: string | null }; + "issue-event-dismissed-review": { + state: string; + review_id: number; + dismissal_message: string | null; + dismissal_commit_id?: string | null; + }; + /** + * Issue Event Milestone + */ + "issue-event-milestone": { title: string }; + /** + * Issue Event Project Card + */ + "issue-event-project-card": { + url: string; + id: number; + project_url: string; + project_id: number; + column_name: string; + previous_column_name?: string; + }; + /** + * Issue Event Rename + */ + "issue-event-rename": { from: string; to: string }; + /** + * Issue Event + */ + "issue-event": { + id: number; + node_id: string; + url: string; + actor: components["schemas"]["simple-user"] | null; + event: string; + commit_id: string | null; + commit_url: string | null; + created_at: string; + issue?: components["schemas"]["issue-simple"]; + label?: components["schemas"]["issue-event-label"]; + assignee?: components["schemas"]["simple-user"] | null; + assigner?: components["schemas"]["simple-user"] | null; + review_requester?: components["schemas"]["simple-user"] | null; + requested_reviewer?: components["schemas"]["simple-user"] | null; + requested_team?: components["schemas"]["team"]; + dismissed_review?: components["schemas"]["issue-event-dismissed-review"]; + milestone?: components["schemas"]["issue-event-milestone"]; + project_card?: components["schemas"]["issue-event-project-card"]; + rename?: components["schemas"]["issue-event-rename"]; + author_association?: string; + lock_reason?: string | null; + }; + /** + * Issue Event for Issue + */ + "issue-event-for-issue": { + id?: number; + node_id?: string; + url?: string; + actor?: components["schemas"]["simple-user"]; + event?: string; + commit_id?: string | null; + commit_url?: string | null; + created_at?: string; + sha?: string; + html_url?: string; + message?: string; + issue_url?: string; + updated_at?: string; + author_association?: string; + body?: string; + lock_reason?: string; + submitted_at?: string; + state?: string; + pull_request_url?: string; + body_html?: string; + body_text?: string; + }; + /** + * An SSH key granting access to a single repository. + */ + "deploy-key": { + id?: number; + key?: string; + url?: string; + title?: string; + verified?: boolean; + created_at?: string; + read_only?: boolean; + }; + /** + * Language + */ + language: { [key: string]: number }; + /** + * License Content + */ + "license-content": { + name: string; + path: string; + sha: string; + size: number; + url: string; + html_url: string | null; + git_url: string | null; + download_url: string | null; + type: string; + content: string; + encoding: string; + _links: { git: string | null; html: string | null; self: string }; + license: components["schemas"]["license-simple"] | null; + }; + "pages-source-hash": { branch: string; path: string }; + /** + * The configuration for GitHub Pages for a repository. + */ + page: { + /** + * The API address for accessing this Page resource. + */ + url: string; + /** + * The status of the most recent build of the Page. + */ + status: ("built" | "building" | "errored") | null; + /** + * The Pages site's custom domain + */ + cname: string | null; + /** + * Whether the Page has a custom 404 page. + */ + custom_404: boolean; + /** + * The web address the Page can be accessed from. + */ + html_url?: string; + source?: components["schemas"]["pages-source-hash"]; + }; + /** + * Page Build + */ + "page-build": { + url: string; + status: string; + error: { message: string | null }; + pusher: components["schemas"]["simple-user"] | null; + commit: string; + duration: number; + created_at: string; + updated_at: string; + }; + /** + * Page Build Status + */ + "page-build-status": { url: string; status: string }; + /** + * Pull requests let you tell others about changes you've pushed to a repository on GitHub. Once a pull request is sent, interested parties can review the set of changes, discuss potential modifications, and even push follow-up commits if necessary. + */ + "pull-request": { + url: string; + id: number; + node_id: string; + html_url: string; + diff_url: string; + patch_url: string; + issue_url: string; + commits_url: string; + review_comments_url: string; + review_comment_url: string; + comments_url: string; + statuses_url: string; + /** + * Number uniquely identifying the pull request within its repository. + */ + number: number; + /** + * State of this Pull Request. Either `open` or `closed`. + */ + state: "open" | "closed"; + locked: boolean; + /** + * The title of the pull request. + */ + title: string; + user: components["schemas"]["simple-user"] | null; + body: string | null; + labels: { + id?: number; + node_id?: string; + url?: string; + name?: string; + description?: string | null; + color?: string; + default?: boolean; + }[]; + milestone: components["schemas"]["milestone"] | null; + active_lock_reason?: string | null; + created_at: string; + updated_at: string; + closed_at: string | null; + merged_at: string | null; + merge_commit_sha: string | null; + assignee: components["schemas"]["simple-user"] | null; + assignees?: components["schemas"]["simple-user"][] | null; + requested_reviewers?: components["schemas"]["simple-user"][] | null; + requested_teams?: components["schemas"]["team-simple"][] | null; + head: { + label: string; + ref: string; + repo: { + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + description: string | null; + downloads_url: string; + events_url: string; + fork: boolean; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + hooks_url: string; + html_url: string; + id: number; + node_id: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + name: string; + notifications_url: string; + owner: { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string | null; + html_url: string; + id: number; + node_id: string; + login: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + private: boolean; + pulls_url: string; + releases_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + url: string; + clone_url: string; + default_branch: string; + forks: number; + forks_count: number; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + homepage: string | null; + language: string | null; + master_branch?: string; + archived: boolean; + disabled: boolean; + mirror_url: string | null; + open_issues: number; + open_issues_count: number; + permissions?: { admin: boolean; pull: boolean; push: boolean }; + temp_clone_token?: string; + allow_merge_commit?: boolean; + allow_squash_merge?: boolean; + allow_rebase_merge?: boolean; + license: { + key: string; + name: string; + url: string | null; + spdx_id: string | null; + node_id: string; + } | null; + pushed_at: string; + size: number; + ssh_url: string; + stargazers_count: number; + svn_url: string; + topics?: string[]; + watchers: number; + watchers_count: number; + created_at: string; + updated_at: string; + }; + sha: string; + user: { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string | null; + html_url: string; + id: number; + node_id: string; + login: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + }; + base: { + label: string; + ref: string; + repo: { + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + description: string | null; + downloads_url: string; + events_url: string; + fork: boolean; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + hooks_url: string; + html_url: string; + id: number; + node_id: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + name: string; + notifications_url: string; + owner: { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string | null; + html_url: string; + id: number; + node_id: string; + login: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + private: boolean; + pulls_url: string; + releases_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + url: string; + clone_url: string; + default_branch: string; + forks: number; + forks_count: number; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + homepage: string | null; + language: string | null; + master_branch?: string; + archived: boolean; + disabled: boolean; + mirror_url: string | null; + open_issues: number; + open_issues_count: number; + permissions?: { admin: boolean; pull: boolean; push: boolean }; + temp_clone_token?: string; + allow_merge_commit?: boolean; + allow_squash_merge?: boolean; + allow_rebase_merge?: boolean; + license: components["schemas"]["license-simple"] | null; + pushed_at: string; + size: number; + ssh_url: string; + stargazers_count: number; + svn_url: string; + topics?: string[]; + watchers: number; + watchers_count: number; + created_at: string; + updated_at: string; + }; + sha: string; + user: { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string | null; + html_url: string; + id: number; + node_id: string; + login: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + }; + _links: { + comments: components["schemas"]["link"]; + commits: components["schemas"]["link"]; + statuses: components["schemas"]["link"]; + html: components["schemas"]["link"]; + issue: components["schemas"]["link"]; + review_comments: components["schemas"]["link"]; + review_comment: components["schemas"]["link"]; + self: components["schemas"]["link"]; + }; + author_association: string; + /** + * Indicates whether or not the pull request is a draft. + */ + draft?: boolean; + merged: boolean; + mergeable: boolean | null; + rebaseable?: boolean | null; + mergeable_state: string; + merged_by: components["schemas"]["simple-user"] | null; + comments: number; + review_comments: number; + /** + * Indicates whether maintainers can modify the pull request. + */ + maintainer_can_modify: boolean; + commits: number; + additions: number; + deletions: number; + changed_files: number; + }; + /** + * Pull Request Review Comments are comments on a portion of the Pull Request's diff. + */ + "pull-request-review-comment": { + /** + * URL for the pull request review comment + */ + url: string; + /** + * The ID of the pull request review to which the comment belongs. + */ + pull_request_review_id: number | null; + /** + * The ID of the pull request review comment. + */ + id: number; + /** + * The node ID of the pull request review comment. + */ + node_id: string; + /** + * The diff of the line that the comment refers to. + */ + diff_hunk: string; + /** + * The relative path of the file to which the comment applies. + */ + path: string; + /** + * The line index in the diff to which the comment applies. + */ + position: number; + /** + * The index of the original line in the diff to which the comment applies. + */ + original_position: number; + /** + * The SHA of the commit to which the comment applies. + */ + commit_id: string; + /** + * The SHA of the original commit to which the comment applies. + */ + original_commit_id: string; + /** + * The comment ID to reply to. + */ + in_reply_to_id?: number; + user: components["schemas"]["simple-user"]; + /** + * The text of the comment. + */ + body: string; + created_at: string; + updated_at: string; + /** + * HTML URL for the pull request review comment. + */ + html_url: string; + /** + * URL for the pull request that the review comment belongs to. + */ + pull_request_url: string; + /** + * How the author of the comment is associated with the pull request. + */ + author_association: string; + _links: { + self: { href: string }; + html: { href: string }; + pull_request: { href: string }; + }; + /** + * The first line of the range for a multi-line comment. + */ + start_line?: number | null; + /** + * The first line of the range for a multi-line comment. + */ + original_start_line?: number | null; + /** + * The side of the first line of the range for a multi-line comment. + */ + start_side?: ("LEFT" | "RIGHT") | null; + /** + * The line of the blob to which the comment applies. The last line of the range for a multi-line comment + */ + line?: number; + /** + * The line of the blob to which the comment applies. The last line of the range for a multi-line comment + */ + original_line?: number; + /** + * The side of the diff to which the comment applies. The side of the last line of the range for a multi-line comment + */ + side?: "LEFT" | "RIGHT"; + reactions?: components["schemas"]["reaction-rollup"]; + body_html?: string; + body_text?: string; + }; + /** + * Pull Request Merge Result + */ + "pull-request-merge-result": { + sha: string; + merged: boolean; + message: string; + }; + /** + * Pull Request Review Request + */ + "pull-request-review-request": { + users?: { + login?: string; + id?: number; + node_id?: string; + avatar_url?: string; + gravatar_id?: string; + url?: string; + html_url?: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + starred_url?: string; + subscriptions_url?: string; + organizations_url?: string; + repos_url?: string; + events_url?: string; + received_events_url?: string; + type?: string; + site_admin?: boolean; + }[]; + teams?: { + id?: number; + node_id?: string; + url?: string; + html_url?: string; + name?: string; + slug?: string; + description?: string | null; + privacy?: string; + permission?: string; + members_url?: string; + repositories_url?: string; + parent?: string | null; + }[]; + }; + /** + * Pull Request Reviews are reviews on pull requests. + */ + "pull-request-review": { + /** + * Unique identifier of the review + */ + id: number; + node_id: string; + user: components["schemas"]["simple-user"] | null; + /** + * The text of the review. + */ + body: string; + state: string; + html_url: string; + pull_request_url: string; + _links: { html: { href: string }; pull_request: { href: string } }; + submitted_at?: string; + /** + * A commit SHA for the review. + */ + commit_id: string; + body_html?: string; + body_text?: string; + author_association: string; + }; + /** + * Legacy Review Comment + */ + "review-comment": { + url: string; + pull_request_review_id: number | null; + id: number; + node_id: string; + diff_hunk: string; + path: string; + position: number | null; + original_position: number; + commit_id: string; + original_commit_id: string; + in_reply_to_id?: number; + user: components["schemas"]["simple-user"] | null; + body: string; + created_at: string; + updated_at: string; + html_url: string; + pull_request_url: string; + author_association: string; + _links: { + self: components["schemas"]["link"]; + html: components["schemas"]["link"]; + pull_request: components["schemas"]["link"]; + }; + body_text?: string; + body_html?: string; + /** + * The side of the first line of the range for a multi-line comment. + */ + side?: "LEFT" | "RIGHT"; + /** + * The side of the first line of the range for a multi-line comment. + */ + start_side?: ("LEFT" | "RIGHT") | null; + /** + * The line of the blob to which the comment applies. The last line of the range for a multi-line comment + */ + line?: number; + /** + * The original line of the blob to which the comment applies. The last line of the range for a multi-line comment + */ + original_line?: number; + /** + * The first line of the range for a multi-line comment. + */ + start_line?: number | null; + /** + * The original first line of the range for a multi-line comment. + */ + original_start_line?: number | null; + }; + /** + * Data related to a release. + */ + "release-asset": { + url: string; + browser_download_url: string; + id: number; + node_id: string; + /** + * The file name of the asset. + */ + name: string; + label: string | null; + /** + * State of the release asset. + */ + state: "uploaded"; + content_type: string; + size: number; + download_count: number; + created_at: string; + updated_at: string; + uploader: components["schemas"]["simple-user"] | null; + }; + /** + * A release. + */ + release: { + url: string; + html_url: string; + assets_url: string; + upload_url: string; + tarball_url: string | null; + zipball_url: string | null; + id: number; + node_id: string; + /** + * The name of the tag. + */ + tag_name: string; + /** + * Specifies the commitish value that determines where the Git tag is created from. + */ + target_commitish: string; + name: string | null; + body?: string | null; + /** + * true to create a draft (unpublished) release, false to create a published one. + */ + draft: boolean; + /** + * Whether to identify the release as a prerelease or a full release. + */ + prerelease: boolean; + created_at: string; + published_at: string | null; + author: components["schemas"]["simple-user"]; + assets: components["schemas"]["release-asset"][]; + body_html?: string; + body_text?: string; + }; + /** + * Sets the state of the secret scanning alert. Can be either `open` or `resolved`. You must provide `resolution` when you set the state to `resolved`. + */ + "secret-scanning-alert-state": "open" | "resolved"; + /** + * **Required when the `state` is `resolved`.** The reason for resolving the alert. Can be one of `false_positive`, `wont_fix`, `revoked`, or `used_in_tests`. + */ + "secret-scanning-alert-resolution": string | null; + "secret-scanning-alert": { + number?: components["schemas"]["alert-number"]; + created_at?: components["schemas"]["alert-created-at"]; + url?: components["schemas"]["alert-url"]; + html_url?: components["schemas"]["alert-html-url"]; + state?: components["schemas"]["secret-scanning-alert-state"]; + resolution?: components["schemas"]["secret-scanning-alert-resolution"]; + /** + * The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + resolved_at?: string | null; + resolved_by?: components["schemas"]["simple-user"]; + /** + * The type of secret that secret scanning detected. + */ + secret_type?: string; + /** + * The secret that was detected. + */ + secret?: string; + }; + /** + * Stargazer + */ + stargazer: { + starred_at: string; + user: components["schemas"]["simple-user"] | null; + }; + /** + * Code Frequency Stat + */ + "code-frequency-stat": number[]; + /** + * Commit Activity + */ + "commit-activity": { days: number[]; total: number; week: number }; + /** + * Contributor Activity + */ + "contributor-activity": { + author: components["schemas"]["simple-user"] | null; + total: number; + weeks: { w?: string; a?: number; d?: number; c?: number }[]; + }; + "participation-stats": { all?: number[]; owner?: number[] }; + /** + * Repository invitations let you manage who you collaborate with. + */ + "repository-subscription": { + /** + * Determines if notifications should be received from this repository. + */ + subscribed: boolean; + /** + * Determines if all notifications should be blocked from this repository. + */ + ignored: boolean; + reason: string | null; + created_at: string; + url: string; + repository_url: string; + }; + /** + * Tag + */ + tag: { + name: string; + commit: { sha: string; url: string }; + zipball_url: string; + tarball_url: string; + node_id: string; + }; + /** + * A topic aggregates entities that are related to a subject. + */ + topic: { names?: string[] }; + traffic: { timestamp: string; uniques: number; count: number }; + /** + * Clone Traffic + */ + "clone-traffic": { + count: number; + uniques: number; + clones: components["schemas"]["traffic"][]; + }; + /** + * Content Traffic + */ + "content-traffic": { + path: string; + title: string; + count: number; + uniques: number; + }; + /** + * Referrer Traffic + */ + "referrer-traffic": { referrer: string; count: number; uniques: number }; + /** + * View Traffic + */ + "view-traffic": { + count: number; + uniques: number; + views: components["schemas"]["traffic"][]; + }; + "scim-group-list-enterprise": { + schemas?: string[]; + totalResults?: number; + itemsPerPage?: number; + startIndex?: number; + Resources?: { + schemas?: string[]; + id?: string; + externalId?: string | null; + displayName?: string; + members?: { value?: string; $ref?: string; display?: string }[]; + meta?: { + resourceType?: string; + created?: string; + lastModified?: string; + location?: string; + }; + }[]; + }; + "scim-enterprise-group": { + schemas?: string[]; + id?: string; + externalId?: string | null; + displayName?: string; + members?: { value?: string; $ref?: string; display?: string }[]; + meta?: { + resourceType?: string; + created?: string; + lastModified?: string; + location?: string; + }; + }; + "scim-user-list-enterprise": { + schemas?: string[]; + totalResults?: number; + itemsPerPage?: number; + startIndex?: number; + Resources?: { + schemas?: string[]; + id?: string; + externalId?: string; + userName?: string; + name?: { givenName?: string; familyName?: string }; + emails?: { value?: string; primary?: boolean; type?: string }[]; + groups?: { value?: string }[]; + active?: boolean; + meta?: { + resourceType?: string; + created?: string; + lastModified?: string; + location?: string; + }; + }[]; + }; + "scim-enterprise-user": { + schemas?: string[]; + id?: string; + externalId?: string; + userName?: string; + name?: { givenName?: string; familyName?: string }; + emails?: { value?: string; type?: string; primary?: boolean }[]; + groups?: { value?: string }[]; + active?: boolean; + meta?: { + resourceType?: string; + created?: string; + lastModified?: string; + location?: string; + }; + }; + /** + * SCIM /Users provisioning endpoints + */ + "scim-user": { + /** + * SCIM schema used. + */ + schemas: string[]; + /** + * Unique identifier of an external identity + */ + id: string; + /** + * The ID of the User. + */ + externalId: string | null; + /** + * Configured by the admin. Could be an email, login, or username + */ + userName: string | null; + /** + * The name of the user, suitable for display to end-users + */ + displayName?: string | null; + name: { + givenName: string | null; + familyName: string | null; + formatted?: string | null; + }; + /** + * user emails + */ + emails: { value: string; primary?: boolean }[]; + /** + * The active status of the User. + */ + active: boolean; + meta: { + resourceType?: string; + created?: string; + lastModified?: string; + location?: string; + }; + /** + * The ID of the organization. + */ + organization_id?: number; + /** + * Set of operations to be performed + */ + operations?: { + op: "add" | "remove" | "replace"; + path?: string; + value?: string | { [key: string]: any } | { [key: string]: any }[]; + }[]; + /** + * associated groups + */ + groups?: { value?: string; display?: string }[]; + }; + /** + * SCIM User List + */ + "scim-user-list": { + /** + * SCIM schema used. + */ + schemas: string[]; + totalResults: number; + itemsPerPage: number; + startIndex: number; + Resources: components["schemas"]["scim-user"][]; + }; + "search-result-text-matches": { + object_url?: string; + object_type?: string | null; + property?: string; + fragment?: string; + matches?: { text?: string; indices?: number[] }[]; + }[]; + /** + * Code Search Result Item + */ + "code-search-result-item": { + name: string; + path: string; + sha: string; + url: string; + git_url: string; + html_url: string; + repository: components["schemas"]["minimal-repository"]; + score: number; + file_size?: number; + language?: string | null; + last_modified_at?: string; + line_numbers?: string[]; + text_matches?: components["schemas"]["search-result-text-matches"]; + }; + /** + * Commit Search Result Item + */ + "commit-search-result-item": { + url: string; + sha: string; + html_url: string; + comments_url: string; + commit: { + author: { name: string; email: string; date: string }; + committer: components["schemas"]["git-user"] | null; + comment_count: number; + message: string; + tree: { sha: string; url: string }; + url: string; + verification?: components["schemas"]["verification"]; + }; + author: components["schemas"]["simple-user"] | null; + committer: components["schemas"]["git-user"] | null; + parents: { url?: string; html_url?: string; sha?: string }[]; + repository: components["schemas"]["minimal-repository"]; + score: number; + node_id: string; + text_matches?: components["schemas"]["search-result-text-matches"]; + }; + /** + * Issue Search Result Item + */ + "issue-search-result-item": { + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + id: number; + node_id: string; + number: number; + title: string; + locked: boolean; + active_lock_reason?: string | null; + assignees?: components["schemas"]["simple-user"][] | null; + user: components["schemas"]["simple-user"] | null; + labels: { + id?: number; + node_id?: string; + url?: string; + name?: string; + color?: string; + default?: boolean; + description?: string | null; + }[]; + state: string; + assignee: components["schemas"]["simple-user"] | null; + milestone: components["schemas"]["milestone"] | null; + comments: number; + created_at: string; + updated_at: string; + closed_at: string | null; + text_matches?: components["schemas"]["search-result-text-matches"]; + pull_request?: { + merged_at?: string | null; + diff_url: string | null; + html_url: string | null; + patch_url: string | null; + url: string | null; + }; + body?: string; + score: number; + author_association: string; + draft?: boolean; + repository?: components["schemas"]["repository"]; + body_html?: string; + body_text?: string; + timeline_url?: string; + performed_via_github_app?: components["schemas"]["integration"] | null; + }; + /** + * Label Search Result Item + */ + "label-search-result-item": { + id: number; + node_id: string; + url: string; + name: string; + color: string; + default: boolean; + description: string | null; + score: number; + text_matches?: components["schemas"]["search-result-text-matches"]; + }; + /** + * Repo Search Result Item + */ + "repo-search-result-item": { + id: number; + node_id: string; + name: string; + full_name: string; + owner: components["schemas"]["simple-user"] | null; + private: boolean; + html_url: string; + description: string | null; + fork: boolean; + url: string; + created_at: string; + updated_at: string; + pushed_at: string; + homepage: string | null; + size: number; + stargazers_count: number; + watchers_count: number; + language: string | null; + forks_count: number; + open_issues_count: number; + master_branch?: string; + default_branch: string; + score: number; + forks_url: string; + keys_url: string; + collaborators_url: string; + teams_url: string; + hooks_url: string; + issue_events_url: string; + events_url: string; + assignees_url: string; + branches_url: string; + tags_url: string; + blobs_url: string; + git_tags_url: string; + git_refs_url: string; + trees_url: string; + statuses_url: string; + languages_url: string; + stargazers_url: string; + contributors_url: string; + subscribers_url: string; + subscription_url: string; + commits_url: string; + git_commits_url: string; + comments_url: string; + issue_comment_url: string; + contents_url: string; + compare_url: string; + merges_url: string; + archive_url: string; + downloads_url: string; + issues_url: string; + pulls_url: string; + milestones_url: string; + notifications_url: string; + labels_url: string; + releases_url: string; + deployments_url: string; + git_url: string; + ssh_url: string; + clone_url: string; + svn_url: string; + forks: number; + open_issues: number; + watchers: number; + topics?: string[]; + mirror_url: string | null; + has_issues: boolean; + has_projects: boolean; + has_pages: boolean; + has_wiki: boolean; + has_downloads: boolean; + archived: boolean; + /** + * Returns whether or not this repository disabled. + */ + disabled: boolean; + license: components["schemas"]["license-simple"] | null; + permissions?: { admin: boolean; pull: boolean; push: boolean }; + text_matches?: components["schemas"]["search-result-text-matches"]; + temp_clone_token?: string; + allow_merge_commit?: boolean; + allow_squash_merge?: boolean; + allow_rebase_merge?: boolean; + delete_branch_on_merge?: boolean; + }; + /** + * Topic Search Result Item + */ + "topic-search-result-item": { + name: string; + display_name: string | null; + short_description: string | null; + description: string | null; + created_by: string | null; + released: string | null; + created_at: string; + updated_at: string; + featured: boolean; + curated: boolean; + score: number; + repository_count?: number | null; + logo_url?: string | null; + text_matches?: components["schemas"]["search-result-text-matches"]; + related?: + | { + topic_relation?: { + id?: number; + name?: string; + topic_id?: number; + relation_type?: string; + }; + }[] + | null; + aliases?: + | { + topic_relation?: { + id?: number; + name?: string; + topic_id?: number; + relation_type?: string; + }; + }[] + | null; + }; + /** + * User Search Result Item + */ + "user-search-result-item": { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string | null; + url: string; + html_url: string; + followers_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + received_events_url: string; + type: string; + score: number; + following_url: string; + gists_url: string; + starred_url: string; + events_url: string; + public_repos?: number; + public_gists?: number; + followers?: number; + following?: number; + created_at?: string; + updated_at?: string; + name?: string | null; + bio?: string | null; + email?: string | null; + location?: string | null; + site_admin: boolean; + hireable?: boolean | null; + text_matches?: components["schemas"]["search-result-text-matches"]; + blog?: string | null; + company?: string | null; + suspended_at?: string | null; + }; + /** + * Private User + */ + "private-user": { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string | null; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + name: string | null; + company: string | null; + blog: string | null; + location: string | null; + email: string | null; + hireable: boolean | null; + bio: string | null; + twitter_username?: string | null; + public_repos: number; + public_gists: number; + followers: number; + following: number; + created_at: string; + updated_at: string; + private_gists: number; + total_private_repos: number; + owned_private_repos: number; + disk_usage: number; + collaborators: number; + two_factor_authentication: boolean; + plan?: { + collaborators: number; + name: string; + space: number; + private_repos: number; + }; + suspended_at?: string | null; + business_plus?: boolean; + ldap_dn?: string; + }; + /** + * Public User + */ + "public-user": { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string | null; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + name: string | null; + company: string | null; + blog: string | null; + location: string | null; + email: string | null; + hireable: boolean | null; + bio: string | null; + twitter_username?: string | null; + public_repos: number; + public_gists: number; + followers: number; + following: number; + created_at: string; + updated_at: string; + plan?: { + collaborators: number; + name: string; + space: number; + private_repos: number; + }; + suspended_at?: string | null; + private_gists?: number; + total_private_repos?: number; + owned_private_repos?: number; + disk_usage?: number; + collaborators?: number; + }; + /** + * Email + */ + email: + | { + email: string; + primary: boolean; + verified: boolean; + visibility: string | null; + } + | string; + /** + * A unique encryption key + */ + "gpg-key": { + id: number; + primary_key_id: number | null; + key_id: string; + public_key: string; + emails: { email?: string; verified?: boolean }[]; + subkeys: { + id?: number; + primary_key_id?: number; + key_id?: string; + public_key?: string; + emails?: { [key: string]: any }[]; + subkeys?: { [key: string]: any }[]; + can_sign?: boolean; + can_encrypt_comms?: boolean; + can_encrypt_storage?: boolean; + can_certify?: boolean; + created_at?: string; + expires_at?: string | null; + raw_key?: string | null; + }[]; + can_sign: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_certify: boolean; + created_at: string; + expires_at: string | null; + raw_key: string | null; + }; + /** + * Key + */ + key: { + key_id?: string; + key?: string; + id?: number; + url?: string; + title?: string; + created_at?: string; + verified?: boolean; + read_only?: boolean; + }; + "marketplace-account": { + url: string; + id: number; + type: string; + node_id?: string; + login: string; + email?: string | null; + organization_billing_email?: string | null; + }; + /** + * User Marketplace Purchase + */ + "user-marketplace-purchase": { + billing_cycle: string; + next_billing_date: string | null; + unit_count: number | null; + on_free_trial: boolean; + free_trial_ends_on: string | null; + updated_at: string | null; + account: components["schemas"]["marketplace-account"]; + plan: components["schemas"]["marketplace-listing-plan"]; + }; + /** + * Starred Repository + */ + "starred-repository": { + starred_at: string; + repo: components["schemas"]["repository"]; + }; + /** + * Hovercard + */ + hovercard: { contexts: { message: string; octicon: string }[] }; + /** + * Key Simple + */ + "key-simple": { id: number; key: string }; + }; + responses: { + /** + * Resource Not Found + */ + not_found: { [key: string]: any }; + /** + * Validation Failed + */ + validation_failed_simple: { [key: string]: any }; + /** + * Preview Header Missing + */ + preview_header_missing: { [key: string]: any }; + /** + * Forbidden + */ + forbidden: { [key: string]: any }; + /** + * Requires Authentication + */ + requires_authentication: { [key: string]: any }; + /** + * Validation Failed + */ + validation_failed: { [key: string]: any }; + /** + * Not Modified + */ + not_modified: { [key: string]: any }; + /** + * Gone + */ + gone: { [key: string]: any }; + /** + * Service Unavailable + */ + service_unavailable: { [key: string]: any }; + /** + * Forbidden Gist + */ + forbidden_gist: { [key: string]: any }; + /** + * Moved Permanently + */ + moved_permanently: { [key: string]: any }; + /** + * Conflict + */ + conflict: { [key: string]: any }; + /** + * Internal Error + */ + internal_error: { [key: string]: any }; + /** + * Bad Request + */ + bad_request: { [key: string]: any }; + /** + * Found + */ + found: { [key: string]: any }; + /** + * Resource Not Found + */ + scim_not_found: { [key: string]: any }; + /** + * Forbidden + */ + scim_forbidden: { [key: string]: any }; + /** + * Bad Request + */ + scim_bad_request: { [key: string]: any }; + /** + * Internal Error + */ + scim_internal_error: { [key: string]: any }; + /** + * Conflict + */ + scim_conflict: { [key: string]: any }; + }; +} diff --git a/Client/node_modules/@octokit/openapi-types/package.json b/Client/node_modules/@octokit/openapi-types/package.json new file mode 100644 index 000000000..917363bbd --- /dev/null +++ b/Client/node_modules/@octokit/openapi-types/package.json @@ -0,0 +1,64 @@ +{ + "_from": "@octokit/openapi-types@^2.2.0", + "_id": "@octokit/openapi-types@2.2.0", + "_inBundle": false, + "_integrity": "sha512-274lNUDonw10kT8wHg8fCcUc1ZjZHbWv0/TbAwb0ojhBQqZYc1cQ/4yqTVTtPMDeZ//g7xVEYe/s3vURkRghPg==", + "_location": "/@octokit/openapi-types", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@octokit/openapi-types@^2.2.0", + "name": "@octokit/openapi-types", + "escapedName": "@octokit%2fopenapi-types", + "scope": "@octokit", + "rawSpec": "^2.2.0", + "saveSpec": null, + "fetchSpec": "^2.2.0" + }, + "_requiredBy": [ + "/@octokit/types" + ], + "_resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-2.2.0.tgz", + "_shasum": "123e0438a0bc718ccdac3b5a2e69b3dd00daa85b", + "_spec": "@octokit/openapi-types@^2.2.0", + "_where": "C:\\Superalgos\\Client\\node_modules\\@octokit\\types", + "author": { + "name": "Gregor Martynus", + "url": "https://twitter.com/gr2m" + }, + "bugs": { + "url": "https://github.com/octokit/openapi-types.ts/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Generated TypeScript definitions based on GitHub's OpenAPI spec", + "devDependencies": { + "openapi-typescript": "^2.4.2" + }, + "homepage": "https://github.com/octokit/openapi-types.ts#readme", + "keywords": [], + "license": "MIT", + "main": "generated/types.ts", + "name": "@octokit/openapi-types", + "octokit": { + "openapi-version": "2.2.0" + }, + "publishConfig": { + "access": "public" + }, + "release": { + "branches": "main" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/octokit/openapi-types.ts.git" + }, + "scripts": { + "download": "node scripts/download", + "generate-types": "npx openapi-typescript cache/openapi-schema.json -o generated/types.ts", + "postgenerate-types": "node scripts/update-package" + }, + "types": "generated/types.ts", + "version": "2.2.0" +} diff --git a/Client/node_modules/@octokit/openapi-types/scripts/download.js b/Client/node_modules/@octokit/openapi-types/scripts/download.js new file mode 100644 index 000000000..edd1d88aa --- /dev/null +++ b/Client/node_modules/@octokit/openapi-types/scripts/download.js @@ -0,0 +1,35 @@ +const { get } = require("https"); +const fs = require("fs"); + +if (!process.env.VERSION) { + throw new Error("VERSION is not set"); +} + +download(process.env.VERSION.replace(/^v/, "")).then( + () => console.log("done"), + console.error +); + +function download(version) { + const path = `cache/openapi-schema.json`; + const url = `https://unpkg.com/@octokit/openapi@${version}/generated/api.github.com.json`; + + const file = fs.createWriteStream(path); + + console.log("Downloading %s", url); + + return new Promise((resolve, reject) => { + get(url, (response) => { + response.pipe(file); + file + .on("finish", () => + file.close((error) => { + if (error) return reject(error); + console.log("%s written", path); + resolve(); + }) + ) + .on("error", (error) => reject(error.message)); + }); + }); +} diff --git a/Client/node_modules/@octokit/openapi-types/scripts/update-package.js b/Client/node_modules/@octokit/openapi-types/scripts/update-package.js new file mode 100644 index 000000000..2fe394866 --- /dev/null +++ b/Client/node_modules/@octokit/openapi-types/scripts/update-package.js @@ -0,0 +1,15 @@ +const { writeFileSync } = require("fs"); + +if (!process.env.VERSION) { + throw new Error("VERSION is not set"); +} + +const pkg = require("../package.json"); + +if (!pkg.octokit) { + pkg.octokit = {}; +} + +pkg.octokit["openapi-version"] = process.env.VERSION.replace(/^v/, ""); + +writeFileSync("package.json", JSON.stringify(pkg, null, 2) + "\n"); diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/LICENSE b/Client/node_modules/@octokit/plugin-paginate-rest/LICENSE new file mode 100644 index 000000000..57bee5f18 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/LICENSE @@ -0,0 +1,7 @@ +MIT License Copyright (c) 2019 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/README.md b/Client/node_modules/@octokit/plugin-paginate-rest/README.md new file mode 100644 index 000000000..f73580a6d --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/README.md @@ -0,0 +1,192 @@ +# plugin-paginate-rest.js + +> Octokit plugin to paginate REST API endpoint responses + +[![@latest](https://img.shields.io/npm/v/@octokit/plugin-paginate-rest.svg)](https://www.npmjs.com/package/@octokit/plugin-paginate-rest) +[![Build Status](https://github.com/octokit/plugin-paginate-rest.js/workflows/Test/badge.svg)](https://github.com/octokit/plugin-paginate-rest.js/actions?workflow=Test) + +## Usage + + + + + + +
+Browsers + + +Load `@octokit/plugin-paginate-rest` and [`@octokit/core`](https://github.com/octokit/core.js) (or core-compatible module) directly from [cdn.skypack.dev](https://cdn.skypack.dev) + +```html + +``` + +
+Node + + +Install with `npm install @octokit/core @octokit/plugin-paginate-rest`. Optionally replace `@octokit/core` with a core-compatible module + +```js +const { Octokit } = require("@octokit/core"); +const { + paginateRest, + composePaginateRest, +} = require("@octokit/plugin-paginate-rest"); +``` + +
+ +```js +const MyOctokit = Octokit.plugin(paginateRest); +const octokit = new MyOctokit({ auth: "secret123" }); + +// See https://developer.github.com/v3/issues/#list-issues-for-a-repository +const issues = await octokit.paginate("GET /repos/{owner}/{repo}/issues", { + owner: "octocat", + repo: "hello-world", + since: "2010-10-01", + per_page: 100, +}); +``` + +If you want to utilize the pagination methods in another plugin, use `composePaginateRest`. + +```js +function myPlugin(octokit, options) { + return { + allStars({owner, repo}) => { + return composePaginateRest( + octokit, + "GET /repos/{owner}/{repo}/stargazers", + {owner, repo } + ) + } + } +} +``` + +## `octokit.paginate()` + +The `paginateRest` plugin adds a new `octokit.paginate()` method which accepts the same parameters as [`octokit.request`](https://github.com/octokit/request.js#request). Only "List ..." endpoints such as [List issues for a repository](https://developer.github.com/v3/issues/#list-issues-for-a-repository) are supporting pagination. Their [response includes a Link header](https://developer.github.com/v3/issues/#response-1). For other endpoints, `octokit.paginate()` behaves the same as `octokit.request()`. + +The `per_page` parameter is usually defaulting to `30`, and can be set to up to `100`, which helps retrieving a big amount of data without hitting the rate limits too soon. + +An optional `mapFunction` can be passed to map each page response to a new value, usually an array with only the data you need. This can help to reduce memory usage, as only the relevant data has to be kept in memory until the pagination is complete. + +```js +const issueTitles = await octokit.paginate( + "GET /repos/{owner}/{repo}/issues", + { + owner: "octocat", + repo: "hello-world", + since: "2010-10-01", + per_page: 100, + }, + (response) => response.data.map((issue) => issue.title) +); +``` + +The `mapFunction` gets a 2nd argument `done` which can be called to end the pagination early. + +```js +const issues = await octokit.paginate( + "GET /repos/{owner}/{repo}/issues", + { + owner: "octocat", + repo: "hello-world", + since: "2010-10-01", + per_page: 100, + }, + (response, done) => { + if (response.data.find((issues) => issue.title.includes("something"))) { + done(); + } + return response.data; + } +); +``` + +Alternatively you can pass a `request` method as first argument. This is great when using in combination with [`@octokit/plugin-rest-endpoint-methods`](https://github.com/octokit/plugin-rest-endpoint-methods.js/): + +```js +const issues = await octokit.paginate(octokit.issues.listForRepo, { + owner: "octocat", + repo: "hello-world", + since: "2010-10-01", + per_page: 100, +}); +``` + +## `octokit.paginate.iterator()` + +If your target runtime environments supports async iterators (such as most modern browsers and Node 10+), you can iterate through each response + +```js +const parameters = { + owner: "octocat", + repo: "hello-world", + since: "2010-10-01", + per_page: 100, +}; +for await (const response of octokit.paginate.iterator( + "GET /repos/{owner}/{repo}/issues", + parameters +)) { + // do whatever you want with each response, break out of the loop, etc. + console.log(response.data.title); +} +``` + +Alternatively you can pass a `request` method as first argument. This is great when using in combination with [`@octokit/plugin-rest-endpoint-methods`](https://github.com/octokit/plugin-rest-endpoint-methods.js/): + +```js +const parameters = { + owner: "octocat", + repo: "hello-world", + since: "2010-10-01", + per_page: 100, +}; +for await (const response of octokit.paginate.iterator( + octokit.issues.listForRepo, + parameters +)) { + // do whatever you want with each response, break out of the loop, etc. + console.log(response.data.title); +} +``` + +## `composePaginateRest` and `composePaginateRest.iterator` + +The `compose*` methods work just like their `octokit.*` counterparts described above, with the differenct that both methods require an `octokit` instance to be passed as first argument + +## How it works + +`octokit.paginate()` wraps `octokit.request()`. As long as a `rel="next"` link value is present in the response's `Link` header, it sends another request for that URL, and so on. + +Most of GitHub's paginating REST API endpoints return an array, but there are a few exceptions which return an object with a key that includes the items array. For example: + +- [Search repositories](https://developer.github.com/v3/search/#example) (key `items`) +- [List check runs for a specific ref](https://developer.github.com/v3/checks/runs/#response-3) (key: `check_runs`) +- [List check suites for a specific ref](https://developer.github.com/v3/checks/suites/#response-1) (key: `check_suites`) +- [List repositories](https://developer.github.com/v3/apps/installations/#list-repositories) for an installation (key: `repositories`) +- [List installations for a user](https://developer.github.com/v3/apps/installations/#response-1) (key `installations`) + +`octokit.paginate()` is working around these inconsistencies so you don't have to worry about it. + +If a response is lacking the `Link` header, `octokit.paginate()` still resolves with an array, even if the response returns a single object. + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md) + +## License + +[MIT](LICENSE) diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/dist-node/index.js b/Client/node_modules/@octokit/plugin-paginate-rest/dist-node/index.js new file mode 100644 index 000000000..f6fb94789 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/dist-node/index.js @@ -0,0 +1,132 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +const VERSION = "2.7.0"; + +/** + * Some “list” response that can be paginated have a different response structure + * + * They have a `total_count` key in the response (search also has `incomplete_results`, + * /installation/repositories also has `repository_selection`), as well as a key with + * the list of the items which name varies from endpoint to endpoint. + * + * Octokit normalizes these responses so that paginated results are always returned following + * the same structure. One challenge is that if the list response has only one page, no Link + * header is provided, so this header alone is not sufficient to check wether a response is + * paginated or not. + * + * We check if a "total_count" key is present in the response data, but also make sure that + * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would + * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref + */ +function normalizePaginatedListResponse(response) { + const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); + if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way + // to retrieve the same information. + + const incompleteResults = response.data.incomplete_results; + const repositorySelection = response.data.repository_selection; + const totalCount = response.data.total_count; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + const namespaceKey = Object.keys(response.data)[0]; + const data = response.data[namespaceKey]; + response.data = data; + + if (typeof incompleteResults !== "undefined") { + response.data.incomplete_results = incompleteResults; + } + + if (typeof repositorySelection !== "undefined") { + response.data.repository_selection = repositorySelection; + } + + response.data.total_count = totalCount; + return response; +} + +function iterator(octokit, route, parameters) { + const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); + const requestMethod = typeof route === "function" ? route : octokit.request; + const method = options.method; + const headers = options.headers; + let url = options.url; + return { + [Symbol.asyncIterator]: () => ({ + async next() { + if (!url) return { + done: true + }; + const response = await requestMethod({ + method, + url, + headers + }); + const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format: + // '; rel="next", ; rel="last"' + // sets `url` to undefined if "next" URL is not present or `link` header is not set + + url = ((normalizedResponse.headers.link || "").match(/<([^>]+)>;\s*rel="next"/) || [])[1]; + return { + value: normalizedResponse + }; + } + + }) + }; +} + +function paginate(octokit, route, parameters, mapFn) { + if (typeof parameters === "function") { + mapFn = parameters; + parameters = undefined; + } + + return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); +} + +function gather(octokit, results, iterator, mapFn) { + return iterator.next().then(result => { + if (result.done) { + return results; + } + + let earlyExit = false; + + function done() { + earlyExit = true; + } + + results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data); + + if (earlyExit) { + return results; + } + + return gather(octokit, results, iterator, mapFn); + }); +} + +const composePaginateRest = Object.assign(paginate, { + iterator +}); + +/** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ + +function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit) + }) + }; +} +paginateRest.VERSION = VERSION; + +exports.composePaginateRest = composePaginateRest; +exports.paginateRest = paginateRest; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/dist-node/index.js.map b/Client/node_modules/@octokit/plugin-paginate-rest/dist-node/index.js.map new file mode 100644 index 000000000..9bbdb474e --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/normalize-paginated-list-response.js","../dist-src/iterator.js","../dist-src/paginate.js","../dist-src/compose-paginate.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"2.7.0\";\n","/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nexport function normalizePaginatedListResponse(response) {\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization)\n return response;\n // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n response.data.total_count = totalCount;\n return response;\n}\n","import { normalizePaginatedListResponse } from \"./normalize-paginated-list-response\";\nexport function iterator(octokit, route, parameters) {\n const options = typeof route === \"function\"\n ? route.endpoint(parameters)\n : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url)\n return { done: true };\n const response = await requestMethod({ method, url, headers });\n const normalizedResponse = normalizePaginatedListResponse(response);\n // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return { value: normalizedResponse };\n },\n }),\n };\n}\n","import { iterator } from \"./iterator\";\nexport function paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then((result) => {\n if (result.done) {\n return results;\n }\n let earlyExit = false;\n function done() {\n earlyExit = true;\n }\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n if (earlyExit) {\n return results;\n }\n return gather(octokit, results, iterator, mapFn);\n });\n}\n","import { paginate } from \"./paginate\";\nimport { iterator } from \"./iterator\";\nexport const composePaginateRest = Object.assign(paginate, {\n iterator,\n});\n","import { VERSION } from \"./version\";\nimport { paginate } from \"./paginate\";\nimport { iterator } from \"./iterator\";\nexport { composePaginateRest } from \"./compose-paginate\";\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\nexport function paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit),\n }),\n };\n}\npaginateRest.VERSION = VERSION;\n"],"names":["VERSION","normalizePaginatedListResponse","response","responseNeedsNormalization","data","incompleteResults","incomplete_results","repositorySelection","repository_selection","totalCount","total_count","namespaceKey","Object","keys","iterator","octokit","route","parameters","options","endpoint","request","requestMethod","method","headers","url","Symbol","asyncIterator","next","done","normalizedResponse","link","match","value","paginate","mapFn","undefined","gather","results","then","result","earlyExit","concat","composePaginateRest","assign","paginateRest","bind"],"mappings":";;;;AAAO,MAAMA,OAAO,GAAG,mBAAhB;;ACAP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AAAO,SAASC,8BAAT,CAAwCC,QAAxC,EAAkD;AACrD,QAAMC,0BAA0B,GAAG,iBAAiBD,QAAQ,CAACE,IAA1B,IAAkC,EAAE,SAASF,QAAQ,CAACE,IAApB,CAArE;AACA,MAAI,CAACD,0BAAL,EACI,OAAOD,QAAP,CAHiD;AAKrD;;AACA,QAAMG,iBAAiB,GAAGH,QAAQ,CAACE,IAAT,CAAcE,kBAAxC;AACA,QAAMC,mBAAmB,GAAGL,QAAQ,CAACE,IAAT,CAAcI,oBAA1C;AACA,QAAMC,UAAU,GAAGP,QAAQ,CAACE,IAAT,CAAcM,WAAjC;AACA,SAAOR,QAAQ,CAACE,IAAT,CAAcE,kBAArB;AACA,SAAOJ,QAAQ,CAACE,IAAT,CAAcI,oBAArB;AACA,SAAON,QAAQ,CAACE,IAAT,CAAcM,WAArB;AACA,QAAMC,YAAY,GAAGC,MAAM,CAACC,IAAP,CAAYX,QAAQ,CAACE,IAArB,EAA2B,CAA3B,CAArB;AACA,QAAMA,IAAI,GAAGF,QAAQ,CAACE,IAAT,CAAcO,YAAd,CAAb;AACAT,EAAAA,QAAQ,CAACE,IAAT,GAAgBA,IAAhB;;AACA,MAAI,OAAOC,iBAAP,KAA6B,WAAjC,EAA8C;AAC1CH,IAAAA,QAAQ,CAACE,IAAT,CAAcE,kBAAd,GAAmCD,iBAAnC;AACH;;AACD,MAAI,OAAOE,mBAAP,KAA+B,WAAnC,EAAgD;AAC5CL,IAAAA,QAAQ,CAACE,IAAT,CAAcI,oBAAd,GAAqCD,mBAArC;AACH;;AACDL,EAAAA,QAAQ,CAACE,IAAT,CAAcM,WAAd,GAA4BD,UAA5B;AACA,SAAOP,QAAP;AACH;;ACtCM,SAASY,QAAT,CAAkBC,OAAlB,EAA2BC,KAA3B,EAAkCC,UAAlC,EAA8C;AACjD,QAAMC,OAAO,GAAG,OAAOF,KAAP,KAAiB,UAAjB,GACVA,KAAK,CAACG,QAAN,CAAeF,UAAf,CADU,GAEVF,OAAO,CAACK,OAAR,CAAgBD,QAAhB,CAAyBH,KAAzB,EAAgCC,UAAhC,CAFN;AAGA,QAAMI,aAAa,GAAG,OAAOL,KAAP,KAAiB,UAAjB,GAA8BA,KAA9B,GAAsCD,OAAO,CAACK,OAApE;AACA,QAAME,MAAM,GAAGJ,OAAO,CAACI,MAAvB;AACA,QAAMC,OAAO,GAAGL,OAAO,CAACK,OAAxB;AACA,MAAIC,GAAG,GAAGN,OAAO,CAACM,GAAlB;AACA,SAAO;AACH,KAACC,MAAM,CAACC,aAAR,GAAwB,OAAO;AAC3B,YAAMC,IAAN,GAAa;AACT,YAAI,CAACH,GAAL,EACI,OAAO;AAAEI,UAAAA,IAAI,EAAE;AAAR,SAAP;AACJ,cAAM1B,QAAQ,GAAG,MAAMmB,aAAa,CAAC;AAAEC,UAAAA,MAAF;AAAUE,UAAAA,GAAV;AAAeD,UAAAA;AAAf,SAAD,CAApC;AACA,cAAMM,kBAAkB,GAAG5B,8BAA8B,CAACC,QAAD,CAAzD,CAJS;AAMT;AACA;;AACAsB,QAAAA,GAAG,GAAG,CAAC,CAACK,kBAAkB,CAACN,OAAnB,CAA2BO,IAA3B,IAAmC,EAApC,EAAwCC,KAAxC,CAA8C,yBAA9C,KAA4E,EAA7E,EAAiF,CAAjF,CAAN;AACA,eAAO;AAAEC,UAAAA,KAAK,EAAEH;AAAT,SAAP;AACH;;AAX0B,KAAP;AADrB,GAAP;AAeH;;ACvBM,SAASI,QAAT,CAAkBlB,OAAlB,EAA2BC,KAA3B,EAAkCC,UAAlC,EAA8CiB,KAA9C,EAAqD;AACxD,MAAI,OAAOjB,UAAP,KAAsB,UAA1B,EAAsC;AAClCiB,IAAAA,KAAK,GAAGjB,UAAR;AACAA,IAAAA,UAAU,GAAGkB,SAAb;AACH;;AACD,SAAOC,MAAM,CAACrB,OAAD,EAAU,EAAV,EAAcD,QAAQ,CAACC,OAAD,EAAUC,KAAV,EAAiBC,UAAjB,CAAR,CAAqCQ,MAAM,CAACC,aAA5C,GAAd,EAA4EQ,KAA5E,CAAb;AACH;;AACD,SAASE,MAAT,CAAgBrB,OAAhB,EAAyBsB,OAAzB,EAAkCvB,QAAlC,EAA4CoB,KAA5C,EAAmD;AAC/C,SAAOpB,QAAQ,CAACa,IAAT,GAAgBW,IAAhB,CAAsBC,MAAD,IAAY;AACpC,QAAIA,MAAM,CAACX,IAAX,EAAiB;AACb,aAAOS,OAAP;AACH;;AACD,QAAIG,SAAS,GAAG,KAAhB;;AACA,aAASZ,IAAT,GAAgB;AACZY,MAAAA,SAAS,GAAG,IAAZ;AACH;;AACDH,IAAAA,OAAO,GAAGA,OAAO,CAACI,MAAR,CAAeP,KAAK,GAAGA,KAAK,CAACK,MAAM,CAACP,KAAR,EAAeJ,IAAf,CAAR,GAA+BW,MAAM,CAACP,KAAP,CAAa5B,IAAhE,CAAV;;AACA,QAAIoC,SAAJ,EAAe;AACX,aAAOH,OAAP;AACH;;AACD,WAAOD,MAAM,CAACrB,OAAD,EAAUsB,OAAV,EAAmBvB,QAAnB,EAA6BoB,KAA7B,CAAb;AACH,GAbM,CAAP;AAcH;;MCrBYQ,mBAAmB,GAAG9B,MAAM,CAAC+B,MAAP,CAAcV,QAAd,EAAwB;AACvDnB,EAAAA;AADuD,CAAxB,CAA5B;;ACEP;AACA;AACA;AACA;;AACA,AAAO,SAAS8B,YAAT,CAAsB7B,OAAtB,EAA+B;AAClC,SAAO;AACHkB,IAAAA,QAAQ,EAAErB,MAAM,CAAC+B,MAAP,CAAcV,QAAQ,CAACY,IAAT,CAAc,IAAd,EAAoB9B,OAApB,CAAd,EAA4C;AAClDD,MAAAA,QAAQ,EAAEA,QAAQ,CAAC+B,IAAT,CAAc,IAAd,EAAoB9B,OAApB;AADwC,KAA5C;AADP,GAAP;AAKH;AACD6B,YAAY,CAAC5C,OAAb,GAAuBA,OAAvB;;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/compose-paginate.js b/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/compose-paginate.js new file mode 100644 index 000000000..09ca53f6a --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/compose-paginate.js @@ -0,0 +1,5 @@ +import { paginate } from "./paginate"; +import { iterator } from "./iterator"; +export const composePaginateRest = Object.assign(paginate, { + iterator, +}); diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/generated/paginating-endpoints.js b/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/generated/paginating-endpoints.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/generated/paginating-endpoints.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/index.js b/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/index.js new file mode 100644 index 000000000..b2078036d --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/index.js @@ -0,0 +1,16 @@ +import { VERSION } from "./version"; +import { paginate } from "./paginate"; +import { iterator } from "./iterator"; +export { composePaginateRest } from "./compose-paginate"; +/** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ +export function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit), + }), + }; +} +paginateRest.VERSION = VERSION; diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/iterator.js b/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/iterator.js new file mode 100644 index 000000000..14684db45 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/iterator.js @@ -0,0 +1,25 @@ +import { normalizePaginatedListResponse } from "./normalize-paginated-list-response"; +export function iterator(octokit, route, parameters) { + const options = typeof route === "function" + ? route.endpoint(parameters) + : octokit.request.endpoint(route, parameters); + const requestMethod = typeof route === "function" ? route : octokit.request; + const method = options.method; + const headers = options.headers; + let url = options.url; + return { + [Symbol.asyncIterator]: () => ({ + async next() { + if (!url) + return { done: true }; + const response = await requestMethod({ method, url, headers }); + const normalizedResponse = normalizePaginatedListResponse(response); + // `response.headers.link` format: + // '; rel="next", ; rel="last"' + // sets `url` to undefined if "next" URL is not present or `link` header is not set + url = ((normalizedResponse.headers.link || "").match(/<([^>]+)>;\s*rel="next"/) || [])[1]; + return { value: normalizedResponse }; + }, + }), + }; +} diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/normalize-paginated-list-response.js b/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/normalize-paginated-list-response.js new file mode 100644 index 000000000..d29c6777c --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/normalize-paginated-list-response.js @@ -0,0 +1,40 @@ +/** + * Some “list” response that can be paginated have a different response structure + * + * They have a `total_count` key in the response (search also has `incomplete_results`, + * /installation/repositories also has `repository_selection`), as well as a key with + * the list of the items which name varies from endpoint to endpoint. + * + * Octokit normalizes these responses so that paginated results are always returned following + * the same structure. One challenge is that if the list response has only one page, no Link + * header is provided, so this header alone is not sufficient to check wether a response is + * paginated or not. + * + * We check if a "total_count" key is present in the response data, but also make sure that + * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would + * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref + */ +export function normalizePaginatedListResponse(response) { + const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); + if (!responseNeedsNormalization) + return response; + // keep the additional properties intact as there is currently no other way + // to retrieve the same information. + const incompleteResults = response.data.incomplete_results; + const repositorySelection = response.data.repository_selection; + const totalCount = response.data.total_count; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + const namespaceKey = Object.keys(response.data)[0]; + const data = response.data[namespaceKey]; + response.data = data; + if (typeof incompleteResults !== "undefined") { + response.data.incomplete_results = incompleteResults; + } + if (typeof repositorySelection !== "undefined") { + response.data.repository_selection = repositorySelection; + } + response.data.total_count = totalCount; + return response; +} diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/paginate.js b/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/paginate.js new file mode 100644 index 000000000..8d18a60f1 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/paginate.js @@ -0,0 +1,24 @@ +import { iterator } from "./iterator"; +export function paginate(octokit, route, parameters, mapFn) { + if (typeof parameters === "function") { + mapFn = parameters; + parameters = undefined; + } + return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); +} +function gather(octokit, results, iterator, mapFn) { + return iterator.next().then((result) => { + if (result.done) { + return results; + } + let earlyExit = false; + function done() { + earlyExit = true; + } + results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data); + if (earlyExit) { + return results; + } + return gather(octokit, results, iterator, mapFn); + }); +} diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/types.js b/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/types.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/types.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/version.js b/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/version.js new file mode 100644 index 000000000..ca1ce35eb --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/dist-src/version.js @@ -0,0 +1 @@ +export const VERSION = "2.7.0"; diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/compose-paginate.d.ts b/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/compose-paginate.d.ts new file mode 100644 index 000000000..38a7432f6 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/compose-paginate.d.ts @@ -0,0 +1,2 @@ +import { ComposePaginateInterface } from "./types"; +export declare const composePaginateRest: ComposePaginateInterface; diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/generated/paginating-endpoints.d.ts b/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/generated/paginating-endpoints.d.ts new file mode 100644 index 000000000..c5ec47013 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/generated/paginating-endpoints.d.ts @@ -0,0 +1,1387 @@ +import { Endpoints } from "@octokit/types"; +export interface PaginatingEndpoints { + /** + * @see https://docs.github.com/v3/apps/#list-installations-for-the-authenticated-app + */ + "GET /app/installations": { + parameters: Endpoints["GET /app/installations"]["parameters"]; + response: Endpoints["GET /app/installations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#list-your-grants + */ + "GET /applications/grants": { + parameters: Endpoints["GET /applications/grants"]["parameters"]; + response: Endpoints["GET /applications/grants"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#list-your-authorizations + */ + "GET /authorizations": { + parameters: Endpoints["GET /authorizations"]["parameters"]; + response: Endpoints["GET /authorizations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#list-selected-organizations-enabled-for-github-actions-in-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/permissions/organizations": { + parameters: Endpoints["GET /enterprises/{enterprise}/actions/permissions/organizations"]["parameters"]; + response: Endpoints["GET /enterprises/{enterprise}/actions/permissions/organizations"]["response"] & { + data: Endpoints["GET /enterprises/{enterprise}/actions/permissions/organizations"]["response"]["data"]["organizations"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#list-self-hosted-runner-groups-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/runner-groups": { + parameters: Endpoints["GET /enterprises/{enterprise}/actions/runner-groups"]["parameters"]; + response: Endpoints["GET /enterprises/{enterprise}/actions/runner-groups"]["response"] & { + data: Endpoints["GET /enterprises/{enterprise}/actions/runner-groups"]["response"]["data"]["runner_groups"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#list-organization-access-to-a-self-hosted-runner-group-in-a-enterprise + */ + "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations": { + parameters: Endpoints["GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations"]["parameters"]; + response: Endpoints["GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations"]["response"] & { + data: Endpoints["GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations"]["response"]["data"]["organizations"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#list-self-hosted-runners-in-a-group-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners": { + parameters: Endpoints["GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners"]["parameters"]; + response: Endpoints["GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners"]["response"] & { + data: Endpoints["GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners"]["response"]["data"]["runners"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#list-self-hosted-runners-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/runners": { + parameters: Endpoints["GET /enterprises/{enterprise}/actions/runners"]["parameters"]; + response: Endpoints["GET /enterprises/{enterprise}/actions/runners"]["response"] & { + data: Endpoints["GET /enterprises/{enterprise}/actions/runners"]["response"]["data"]["runners"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#list-runner-applications-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/runners/downloads": { + parameters: Endpoints["GET /enterprises/{enterprise}/actions/runners/downloads"]["parameters"]; + response: Endpoints["GET /enterprises/{enterprise}/actions/runners/downloads"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-public-events + */ + "GET /events": { + parameters: Endpoints["GET /events"]["parameters"]; + response: Endpoints["GET /events"]["response"]; + }; + /** + * @see https://docs.github.com/v3/gists/#list-gists-for-the-authenticated-user + */ + "GET /gists": { + parameters: Endpoints["GET /gists"]["parameters"]; + response: Endpoints["GET /gists"]["response"]; + }; + /** + * @see https://docs.github.com/v3/gists/#list-public-gists + */ + "GET /gists/public": { + parameters: Endpoints["GET /gists/public"]["parameters"]; + response: Endpoints["GET /gists/public"]["response"]; + }; + /** + * @see https://docs.github.com/v3/gists/#list-starred-gists + */ + "GET /gists/starred": { + parameters: Endpoints["GET /gists/starred"]["parameters"]; + response: Endpoints["GET /gists/starred"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/gists#list-gist-comments + */ + "GET /gists/{gist_id}/comments": { + parameters: Endpoints["GET /gists/{gist_id}/comments"]["parameters"]; + response: Endpoints["GET /gists/{gist_id}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/v3/gists/#list-gist-commits + */ + "GET /gists/{gist_id}/commits": { + parameters: Endpoints["GET /gists/{gist_id}/commits"]["parameters"]; + response: Endpoints["GET /gists/{gist_id}/commits"]["response"]; + }; + /** + * @see https://docs.github.com/v3/gists/#list-gist-forks + */ + "GET /gists/{gist_id}/forks": { + parameters: Endpoints["GET /gists/{gist_id}/forks"]["parameters"]; + response: Endpoints["GET /gists/{gist_id}/forks"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/apps#list-repositories-accessible-to-the-app-installation + */ + "GET /installation/repositories": { + parameters: Endpoints["GET /installation/repositories"]["parameters"]; + response: Endpoints["GET /installation/repositories"]["response"] & { + data: Endpoints["GET /installation/repositories"]["response"]["data"]["repositories"]; + }; + }; + /** + * @see https://docs.github.com/v3/issues/#list-issues-assigned-to-the-authenticated-user + */ + "GET /issues": { + parameters: Endpoints["GET /issues"]["parameters"]; + response: Endpoints["GET /issues"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/apps#list-plans + */ + "GET /marketplace_listing/plans": { + parameters: Endpoints["GET /marketplace_listing/plans"]["parameters"]; + response: Endpoints["GET /marketplace_listing/plans"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/apps#list-accounts-for-a-plan + */ + "GET /marketplace_listing/plans/{plan_id}/accounts": { + parameters: Endpoints["GET /marketplace_listing/plans/{plan_id}/accounts"]["parameters"]; + response: Endpoints["GET /marketplace_listing/plans/{plan_id}/accounts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/apps#list-plans-stubbed + */ + "GET /marketplace_listing/stubbed/plans": { + parameters: Endpoints["GET /marketplace_listing/stubbed/plans"]["parameters"]; + response: Endpoints["GET /marketplace_listing/stubbed/plans"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/apps#list-accounts-for-a-plan-stubbed + */ + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts": { + parameters: Endpoints["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"]["parameters"]; + response: Endpoints["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-public-events-for-a-network-of-repositories + */ + "GET /networks/{owner}/{repo}/events": { + parameters: Endpoints["GET /networks/{owner}/{repo}/events"]["parameters"]; + response: Endpoints["GET /networks/{owner}/{repo}/events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-notifications-for-the-authenticated-user + */ + "GET /notifications": { + parameters: Endpoints["GET /notifications"]["parameters"]; + response: Endpoints["GET /notifications"]["response"]; + }; + /** + * @see https://docs.github.com/v3/orgs/#list-organizations + */ + "GET /organizations": { + parameters: Endpoints["GET /organizations"]["parameters"]; + response: Endpoints["GET /organizations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-selected-repositories-enabled-for-github-actions-in-an-organization + */ + "GET /orgs/{org}/actions/permissions/repositories": { + parameters: Endpoints["GET /orgs/{org}/actions/permissions/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/permissions/repositories"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/permissions/repositories"]["response"]["data"]["repositories"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runner-groups-for-an-organization + */ + "GET /orgs/{org}/actions/runner-groups": { + parameters: Endpoints["GET /orgs/{org}/actions/runner-groups"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/runner-groups"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/runner-groups"]["response"]["data"]["runner_groups"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-repository-access-to-a-self-hosted-runner-group-in-an-organization + */ + "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories": { + parameters: Endpoints["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories"]["response"]["data"]["repositories"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runners-in-a-group-for-an-organization + */ + "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners": { + parameters: Endpoints["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners"]["response"]["data"]["runners"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runners-for-an-organization + */ + "GET /orgs/{org}/actions/runners": { + parameters: Endpoints["GET /orgs/{org}/actions/runners"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/runners"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/runners"]["response"]["data"]["runners"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-runner-applications-for-an-organization + */ + "GET /orgs/{org}/actions/runners/downloads": { + parameters: Endpoints["GET /orgs/{org}/actions/runners/downloads"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/runners/downloads"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-organization-secrets + */ + "GET /orgs/{org}/actions/secrets": { + parameters: Endpoints["GET /orgs/{org}/actions/secrets"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/secrets"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/secrets"]["response"]["data"]["secrets"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-selected-repositories-for-an-organization-secret + */ + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories": { + parameters: Endpoints["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"]["response"] & { + data: Endpoints["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"]["response"]["data"]["repositories"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-users-blocked-by-an-organization + */ + "GET /orgs/{org}/blocks": { + parameters: Endpoints["GET /orgs/{org}/blocks"]["parameters"]; + response: Endpoints["GET /orgs/{org}/blocks"]["response"]; + }; + /** + * @see https://docs.github.com/v3/orgs/#list-saml-sso-authorizations-for-an-organization + */ + "GET /orgs/{org}/credential-authorizations": { + parameters: Endpoints["GET /orgs/{org}/credential-authorizations"]["parameters"]; + response: Endpoints["GET /orgs/{org}/credential-authorizations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-public-organization-events + */ + "GET /orgs/{org}/events": { + parameters: Endpoints["GET /orgs/{org}/events"]["parameters"]; + response: Endpoints["GET /orgs/{org}/events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organization-webhooks + */ + "GET /orgs/{org}/hooks": { + parameters: Endpoints["GET /orgs/{org}/hooks"]["parameters"]; + response: Endpoints["GET /orgs/{org}/hooks"]["response"]; + }; + /** + * @see https://docs.github.com/v3/orgs/#list-app-installations-for-an-organization + */ + "GET /orgs/{org}/installations": { + parameters: Endpoints["GET /orgs/{org}/installations"]["parameters"]; + response: Endpoints["GET /orgs/{org}/installations"]["response"] & { + data: Endpoints["GET /orgs/{org}/installations"]["response"]["data"]["installations"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-pending-organization-invitations + */ + "GET /orgs/{org}/invitations": { + parameters: Endpoints["GET /orgs/{org}/invitations"]["parameters"]; + response: Endpoints["GET /orgs/{org}/invitations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organization-invitation-teams + */ + "GET /orgs/{org}/invitations/{invitation_id}/teams": { + parameters: Endpoints["GET /orgs/{org}/invitations/{invitation_id}/teams"]["parameters"]; + response: Endpoints["GET /orgs/{org}/invitations/{invitation_id}/teams"]["response"]; + }; + /** + * @see https://docs.github.com/v3/issues/#list-organization-issues-assigned-to-the-authenticated-user + */ + "GET /orgs/{org}/issues": { + parameters: Endpoints["GET /orgs/{org}/issues"]["parameters"]; + response: Endpoints["GET /orgs/{org}/issues"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organization-members + */ + "GET /orgs/{org}/members": { + parameters: Endpoints["GET /orgs/{org}/members"]["parameters"]; + response: Endpoints["GET /orgs/{org}/members"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/migrations#list-organization-migrations + */ + "GET /orgs/{org}/migrations": { + parameters: Endpoints["GET /orgs/{org}/migrations"]["parameters"]; + response: Endpoints["GET /orgs/{org}/migrations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/migrations#list-repositories-in-an-organization-migration + */ + "GET /orgs/{org}/migrations/{migration_id}/repositories": { + parameters: Endpoints["GET /orgs/{org}/migrations/{migration_id}/repositories"]["parameters"]; + response: Endpoints["GET /orgs/{org}/migrations/{migration_id}/repositories"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-outside-collaborators-for-an-organization + */ + "GET /orgs/{org}/outside_collaborators": { + parameters: Endpoints["GET /orgs/{org}/outside_collaborators"]["parameters"]; + response: Endpoints["GET /orgs/{org}/outside_collaborators"]["response"]; + }; + /** + * @see https://docs.github.com/v3/projects/#list-organization-projects + */ + "GET /orgs/{org}/projects": { + parameters: Endpoints["GET /orgs/{org}/projects"]["parameters"]; + response: Endpoints["GET /orgs/{org}/projects"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-public-organization-members + */ + "GET /orgs/{org}/public_members": { + parameters: Endpoints["GET /orgs/{org}/public_members"]["parameters"]; + response: Endpoints["GET /orgs/{org}/public_members"]["response"]; + }; + /** + * @see https://docs.github.com/v3/repos/#list-organization-repositories + */ + "GET /orgs/{org}/repos": { + parameters: Endpoints["GET /orgs/{org}/repos"]["parameters"]; + response: Endpoints["GET /orgs/{org}/repos"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-idp-groups-for-an-organization + */ + "GET /orgs/{org}/team-sync/groups": { + parameters: Endpoints["GET /orgs/{org}/team-sync/groups"]["parameters"]; + response: Endpoints["GET /orgs/{org}/team-sync/groups"]["response"] & { + data: Endpoints["GET /orgs/{org}/team-sync/groups"]["response"]["data"]["groups"]; + }; + }; + /** + * @see https://docs.github.com/v3/teams/#list-teams + */ + "GET /orgs/{org}/teams": { + parameters: Endpoints["GET /orgs/{org}/teams"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-discussions + */ + "GET /orgs/{org}/teams/{team_slug}/discussions": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-discussion-comments + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/v3/reactions/#list-reactions-for-a-team-discussion-comment + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/v3/reactions/#list-reactions-for-a-team-discussion + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-pending-team-invitations + */ + "GET /orgs/{org}/teams/{team_slug}/invitations": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/invitations"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/invitations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-team-members + */ + "GET /orgs/{org}/teams/{team_slug}/members": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/members"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/members"]["response"]; + }; + /** + * @see https://docs.github.com/v3/teams/#list-team-projects + */ + "GET /orgs/{org}/teams/{team_slug}/projects": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/projects"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/projects"]["response"]; + }; + /** + * @see https://docs.github.com/v3/teams/#list-team-repositories + */ + "GET /orgs/{org}/teams/{team_slug}/repos": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/repos"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/repos"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-idp-groups-for-a-team + */ + "GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings"]["response"] & { + data: Endpoints["GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings"]["response"]["data"]["groups"]; + }; + }; + /** + * @see https://docs.github.com/v3/teams/#list-child-teams + */ + "GET /orgs/{org}/teams/{team_slug}/teams": { + parameters: Endpoints["GET /orgs/{org}/teams/{team_slug}/teams"]["parameters"]; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/teams"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/projects#list-project-cards + */ + "GET /projects/columns/{column_id}/cards": { + parameters: Endpoints["GET /projects/columns/{column_id}/cards"]["parameters"]; + response: Endpoints["GET /projects/columns/{column_id}/cards"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/projects#list-project-collaborators + */ + "GET /projects/{project_id}/collaborators": { + parameters: Endpoints["GET /projects/{project_id}/collaborators"]["parameters"]; + response: Endpoints["GET /projects/{project_id}/collaborators"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/projects#list-project-columns + */ + "GET /projects/{project_id}/columns": { + parameters: Endpoints["GET /projects/{project_id}/columns"]["parameters"]; + response: Endpoints["GET /projects/{project_id}/columns"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-artifacts-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/artifacts": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/artifacts"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/artifacts"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/artifacts"]["response"]["data"]["artifacts"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runners-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/runners"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runners"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/runners"]["response"]["data"]["runners"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-runner-applications-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners/downloads": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/runners/downloads"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runners/downloads"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-workflow-runs-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runs": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/runs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/runs"]["response"]["data"]["workflow_runs"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-workflow-run-artifacts + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"]["response"]["data"]["artifacts"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-jobs-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"]["response"]["data"]["jobs"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-repository-secrets + */ + "GET /repos/{owner}/{repo}/actions/secrets": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/secrets"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/secrets"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/secrets"]["response"]["data"]["secrets"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-repository-workflows + */ + "GET /repos/{owner}/{repo}/actions/workflows": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/workflows"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/workflows"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/workflows"]["response"]["data"]["workflows"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/actions#list-workflow-runs + */ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs": { + parameters: Endpoints["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"]["response"]["data"]["workflow_runs"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-assignees + */ + "GET /repos/{owner}/{repo}/assignees": { + parameters: Endpoints["GET /repos/{owner}/{repo}/assignees"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/assignees"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-branches + */ + "GET /repos/{owner}/{repo}/branches": { + parameters: Endpoints["GET /repos/{owner}/{repo}/branches"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/branches"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/checks#list-check-run-annotations + */ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations": { + parameters: Endpoints["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/checks#list-check-runs-in-a-check-suite + */ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs": { + parameters: Endpoints["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"]["response"]["data"]["check_runs"]; + }; + }; + /** + * @see https://docs.github.com/v3/code-scanning/#list-code-scanning-alerts-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts": { + parameters: Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts"]["response"]; + }; + /** + * @see https://docs.github.com/v3/code-scanning/#list-recent-analyses + */ + "GET /repos/{owner}/{repo}/code-scanning/analyses": { + parameters: Endpoints["GET /repos/{owner}/{repo}/code-scanning/analyses"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/analyses"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-collaborators + */ + "GET /repos/{owner}/{repo}/collaborators": { + parameters: Endpoints["GET /repos/{owner}/{repo}/collaborators"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/collaborators"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-commit-comments-for-a-repository + */ + "GET /repos/{owner}/{repo}/comments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/v3/reactions/#list-reactions-for-a-commit-comment + */ + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions": { + parameters: Endpoints["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-commits + */ + "GET /repos/{owner}/{repo}/commits": { + parameters: Endpoints["GET /repos/{owner}/{repo}/commits"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-branches-for-head-commit + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head": { + parameters: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-commit-comments + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-pull-requests-associated-with-a-commit + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls": { + parameters: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/checks#list-check-runs-for-a-git-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/check-runs": { + parameters: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"]["response"]["data"]["check_runs"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/checks#list-check-suites-for-a-git-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/check-suites": { + parameters: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"]["response"]["data"]["check_suites"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-commit-statuses-for-a-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/statuses": { + parameters: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/statuses"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/statuses"]["response"]; + }; + /** + * @see https://docs.github.com/v3/repos/#list-repository-contributors + */ + "GET /repos/{owner}/{repo}/contributors": { + parameters: Endpoints["GET /repos/{owner}/{repo}/contributors"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/contributors"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-deployments + */ + "GET /repos/{owner}/{repo}/deployments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/deployments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/deployments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-deployment-statuses + */ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses": { + parameters: Endpoints["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-repository-events + */ + "GET /repos/{owner}/{repo}/events": { + parameters: Endpoints["GET /repos/{owner}/{repo}/events"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-forks + */ + "GET /repos/{owner}/{repo}/forks": { + parameters: Endpoints["GET /repos/{owner}/{repo}/forks"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/forks"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/git#list-matching-references + */ + "GET /repos/{owner}/{repo}/git/matching-refs/{ref}": { + parameters: Endpoints["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-webhooks + */ + "GET /repos/{owner}/{repo}/hooks": { + parameters: Endpoints["GET /repos/{owner}/{repo}/hooks"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/hooks"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-invitations + */ + "GET /repos/{owner}/{repo}/invitations": { + parameters: Endpoints["GET /repos/{owner}/{repo}/invitations"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/invitations"]["response"]; + }; + /** + * @see https://docs.github.com/v3/issues/#list-repository-issues + */ + "GET /repos/{owner}/{repo}/issues": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-issue-comments-for-a-repository + */ + "GET /repos/{owner}/{repo}/issues/comments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/comments"]["response"]; + }; + /** + * @see https://docs.github.com/v3/reactions/#list-reactions-for-an-issue-comment + */ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-issue-events-for-a-repository + */ + "GET /repos/{owner}/{repo}/issues/events": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/events"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-issue-comments + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/comments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-issue-events + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/events": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/events"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-labels-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"]["response"]; + }; + /** + * @see https://docs.github.com/v3/reactions/#list-reactions-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-timeline-events-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline": { + parameters: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-deploy-keys + */ + "GET /repos/{owner}/{repo}/keys": { + parameters: Endpoints["GET /repos/{owner}/{repo}/keys"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/keys"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-labels-for-a-repository + */ + "GET /repos/{owner}/{repo}/labels": { + parameters: Endpoints["GET /repos/{owner}/{repo}/labels"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/labels"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-milestones + */ + "GET /repos/{owner}/{repo}/milestones": { + parameters: Endpoints["GET /repos/{owner}/{repo}/milestones"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/milestones"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/issues#list-labels-for-issues-in-a-milestone + */ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels": { + parameters: Endpoints["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-repository-notifications-for-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/notifications": { + parameters: Endpoints["GET /repos/{owner}/{repo}/notifications"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/notifications"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-github-pages-builds + */ + "GET /repos/{owner}/{repo}/pages/builds": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pages/builds"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pages/builds"]["response"]; + }; + /** + * @see https://docs.github.com/v3/projects/#list-repository-projects + */ + "GET /repos/{owner}/{repo}/projects": { + parameters: Endpoints["GET /repos/{owner}/{repo}/projects"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/projects"]["response"]; + }; + /** + * @see https://docs.github.com/v3/pulls/#list-pull-requests + */ + "GET /repos/{owner}/{repo}/pulls": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/pulls#list-review-comments-in-a-repository + */ + "GET /repos/{owner}/{repo}/pulls/comments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/comments"]["response"]; + }; + /** + * @see https://docs.github.com/v3/reactions/#list-reactions-for-a-pull-request-review-comment + */ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/pulls#list-review-comments-on-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/v3/pulls/#list-commits-on-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"]["response"]; + }; + /** + * @see https://docs.github.com/v3/pulls/#list-pull-requests-files + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/files": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/pulls#list-requested-reviewers-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"]["response"] & { + data: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"]["response"]["data"]["users"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/pulls#list-reviews-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/pulls#list-comments-for-a-pull-request-review + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments": { + parameters: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-releases + */ + "GET /repos/{owner}/{repo}/releases": { + parameters: Endpoints["GET /repos/{owner}/{repo}/releases"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/releases"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-release-assets + */ + "GET /repos/{owner}/{repo}/releases/{release_id}/assets": { + parameters: Endpoints["GET /repos/{owner}/{repo}/releases/{release_id}/assets"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/releases/{release_id}/assets"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/secret-scanning#list-secret-scanning-alerts-for-a-repository + */ + "GET /repos/{owner}/{repo}/secret-scanning/alerts": { + parameters: Endpoints["GET /repos/{owner}/{repo}/secret-scanning/alerts"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/secret-scanning/alerts"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-stargazers + */ + "GET /repos/{owner}/{repo}/stargazers": { + parameters: Endpoints["GET /repos/{owner}/{repo}/stargazers"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/stargazers"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-watchers + */ + "GET /repos/{owner}/{repo}/subscribers": { + parameters: Endpoints["GET /repos/{owner}/{repo}/subscribers"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/subscribers"]["response"]; + }; + /** + * @see https://docs.github.com/v3/repos/#list-repository-tags + */ + "GET /repos/{owner}/{repo}/tags": { + parameters: Endpoints["GET /repos/{owner}/{repo}/tags"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/tags"]["response"]; + }; + /** + * @see https://docs.github.com/v3/repos/#list-repository-teams + */ + "GET /repos/{owner}/{repo}/teams": { + parameters: Endpoints["GET /repos/{owner}/{repo}/teams"]["parameters"]; + response: Endpoints["GET /repos/{owner}/{repo}/teams"]["response"]; + }; + /** + * @see https://docs.github.com/v3/repos/#list-public-repositories + */ + "GET /repositories": { + parameters: Endpoints["GET /repositories"]["parameters"]; + response: Endpoints["GET /repositories"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#list-provisioned-scim groups-for-an-enterprise + */ + "GET /scim/v2/enterprises/{enterprise}/Groups": { + parameters: Endpoints["GET /scim/v2/enterprises/{enterprise}/Groups"]["parameters"]; + response: Endpoints["GET /scim/v2/enterprises/{enterprise}/Groups"]["response"] & { + data: Endpoints["GET /scim/v2/enterprises/{enterprise}/Groups"]["response"]["data"]["Resources"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#list-scim-provisioned-identities-for-an-enterprise + */ + "GET /scim/v2/enterprises/{enterprise}/Users": { + parameters: Endpoints["GET /scim/v2/enterprises/{enterprise}/Users"]["parameters"]; + response: Endpoints["GET /scim/v2/enterprises/{enterprise}/Users"]["response"] & { + data: Endpoints["GET /scim/v2/enterprises/{enterprise}/Users"]["response"]["data"]["Resources"]; + }; + }; + /** + * @see https://docs.github.com/v3/scim/#list-scim-provisioned-identities + */ + "GET /scim/v2/organizations/{org}/Users": { + parameters: Endpoints["GET /scim/v2/organizations/{org}/Users"]["parameters"]; + response: Endpoints["GET /scim/v2/organizations/{org}/Users"]["response"] & { + data: Endpoints["GET /scim/v2/organizations/{org}/Users"]["response"]["data"]["Resources"]; + }; + }; + /** + * @see https://docs.github.com/v3/search/#search-code + */ + "GET /search/code": { + parameters: Endpoints["GET /search/code"]["parameters"]; + response: Endpoints["GET /search/code"]["response"] & { + data: Endpoints["GET /search/code"]["response"]["data"]["items"]; + }; + }; + /** + * @see https://docs.github.com/v3/search/#search-commits + */ + "GET /search/commits": { + parameters: Endpoints["GET /search/commits"]["parameters"]; + response: Endpoints["GET /search/commits"]["response"] & { + data: Endpoints["GET /search/commits"]["response"]["data"]["items"]; + }; + }; + /** + * @see https://docs.github.com/v3/search/#search-issues-and-pull-requests + */ + "GET /search/issues": { + parameters: Endpoints["GET /search/issues"]["parameters"]; + response: Endpoints["GET /search/issues"]["response"] & { + data: Endpoints["GET /search/issues"]["response"]["data"]["items"]; + }; + }; + /** + * @see https://docs.github.com/v3/search/#search-labels + */ + "GET /search/labels": { + parameters: Endpoints["GET /search/labels"]["parameters"]; + response: Endpoints["GET /search/labels"]["response"] & { + data: Endpoints["GET /search/labels"]["response"]["data"]["items"]; + }; + }; + /** + * @see https://docs.github.com/v3/search/#search-repositories + */ + "GET /search/repositories": { + parameters: Endpoints["GET /search/repositories"]["parameters"]; + response: Endpoints["GET /search/repositories"]["response"] & { + data: Endpoints["GET /search/repositories"]["response"]["data"]["items"]; + }; + }; + /** + * @see https://docs.github.com/v3/search/#search-topics + */ + "GET /search/topics": { + parameters: Endpoints["GET /search/topics"]["parameters"]; + response: Endpoints["GET /search/topics"]["response"] & { + data: Endpoints["GET /search/topics"]["response"]["data"]["items"]; + }; + }; + /** + * @see https://docs.github.com/v3/search/#search-users + */ + "GET /search/users": { + parameters: Endpoints["GET /search/users"]["parameters"]; + response: Endpoints["GET /search/users"]["response"] & { + data: Endpoints["GET /search/users"]["response"]["data"]["items"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-discussions-legacy + */ + "GET /teams/{team_id}/discussions": { + parameters: Endpoints["GET /teams/{team_id}/discussions"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/discussions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-discussion-comments-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/comments": { + parameters: Endpoints["GET /teams/{team_id}/discussions/{discussion_number}/comments"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/discussions/{discussion_number}/comments"]["response"]; + }; + /** + * @see https://docs.github.com/v3/reactions/#list-reactions-for-a-team-discussion-comment-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions": { + parameters: Endpoints["GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/v3/reactions/#list-reactions-for-a-team-discussion-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/reactions": { + parameters: Endpoints["GET /teams/{team_id}/discussions/{discussion_number}/reactions"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/discussions/{discussion_number}/reactions"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-pending-team-invitations-legacy + */ + "GET /teams/{team_id}/invitations": { + parameters: Endpoints["GET /teams/{team_id}/invitations"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/invitations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-team-members-legacy + */ + "GET /teams/{team_id}/members": { + parameters: Endpoints["GET /teams/{team_id}/members"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/members"]["response"]; + }; + /** + * @see https://docs.github.com/v3/teams/#list-team-projects-legacy + */ + "GET /teams/{team_id}/projects": { + parameters: Endpoints["GET /teams/{team_id}/projects"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/projects"]["response"]; + }; + /** + * @see https://docs.github.com/v3/teams/#list-team-repositories-legacy + */ + "GET /teams/{team_id}/repos": { + parameters: Endpoints["GET /teams/{team_id}/repos"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/repos"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/teams#list-idp-groups-for-a-team-legacy + */ + "GET /teams/{team_id}/team-sync/group-mappings": { + parameters: Endpoints["GET /teams/{team_id}/team-sync/group-mappings"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/team-sync/group-mappings"]["response"] & { + data: Endpoints["GET /teams/{team_id}/team-sync/group-mappings"]["response"]["data"]["groups"]; + }; + }; + /** + * @see https://docs.github.com/v3/teams/#list-child-teams-legacy + */ + "GET /teams/{team_id}/teams": { + parameters: Endpoints["GET /teams/{team_id}/teams"]["parameters"]; + response: Endpoints["GET /teams/{team_id}/teams"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-users-blocked-by-the-authenticated-user + */ + "GET /user/blocks": { + parameters: Endpoints["GET /user/blocks"]["parameters"]; + response: Endpoints["GET /user/blocks"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-email-addresses-for-the-authenticated-user + */ + "GET /user/emails": { + parameters: Endpoints["GET /user/emails"]["parameters"]; + response: Endpoints["GET /user/emails"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-followers-of-the-authenticated-user + */ + "GET /user/followers": { + parameters: Endpoints["GET /user/followers"]["parameters"]; + response: Endpoints["GET /user/followers"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-the-people-the-authenticated-user-follows + */ + "GET /user/following": { + parameters: Endpoints["GET /user/following"]["parameters"]; + response: Endpoints["GET /user/following"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-gpg-keys-for-the-authenticated-user + */ + "GET /user/gpg_keys": { + parameters: Endpoints["GET /user/gpg_keys"]["parameters"]; + response: Endpoints["GET /user/gpg_keys"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/apps#list-app-installations-accessible-to-the-user-access-token + */ + "GET /user/installations": { + parameters: Endpoints["GET /user/installations"]["parameters"]; + response: Endpoints["GET /user/installations"]["response"] & { + data: Endpoints["GET /user/installations"]["response"]["data"]["installations"]; + }; + }; + /** + * @see https://docs.github.com/rest/reference/apps#list-repositories-accessible-to-the-user-access-token + */ + "GET /user/installations/{installation_id}/repositories": { + parameters: Endpoints["GET /user/installations/{installation_id}/repositories"]["parameters"]; + response: Endpoints["GET /user/installations/{installation_id}/repositories"]["response"] & { + data: Endpoints["GET /user/installations/{installation_id}/repositories"]["response"]["data"]["repositories"]; + }; + }; + /** + * @see https://docs.github.com/v3/issues/#list-user-account-issues-assigned-to-the-authenticated-user + */ + "GET /user/issues": { + parameters: Endpoints["GET /user/issues"]["parameters"]; + response: Endpoints["GET /user/issues"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-public-ssh-keys-for-the-authenticated-user + */ + "GET /user/keys": { + parameters: Endpoints["GET /user/keys"]["parameters"]; + response: Endpoints["GET /user/keys"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/apps#list-subscriptions-for-the-authenticated-user + */ + "GET /user/marketplace_purchases": { + parameters: Endpoints["GET /user/marketplace_purchases"]["parameters"]; + response: Endpoints["GET /user/marketplace_purchases"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/apps#list-subscriptions-for-the-authenticated-user-stubbed + */ + "GET /user/marketplace_purchases/stubbed": { + parameters: Endpoints["GET /user/marketplace_purchases/stubbed"]["parameters"]; + response: Endpoints["GET /user/marketplace_purchases/stubbed"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organization-memberships-for-the-authenticated-user + */ + "GET /user/memberships/orgs": { + parameters: Endpoints["GET /user/memberships/orgs"]["parameters"]; + response: Endpoints["GET /user/memberships/orgs"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/migrations#list-user-migrations + */ + "GET /user/migrations": { + parameters: Endpoints["GET /user/migrations"]["parameters"]; + response: Endpoints["GET /user/migrations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/migrations#list-repositories-for-a-user-migration + */ + "GET /user/migrations/{migration_id}/repositories": { + parameters: Endpoints["GET /user/migrations/{migration_id}/repositories"]["parameters"]; + response: Endpoints["GET /user/migrations/{migration_id}/repositories"]["response"]; + }; + /** + * @see https://docs.github.com/v3/orgs/#list-organizations-for-the-authenticated-user + */ + "GET /user/orgs": { + parameters: Endpoints["GET /user/orgs"]["parameters"]; + response: Endpoints["GET /user/orgs"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-public-email-addresses-for-the-authenticated-user + */ + "GET /user/public_emails": { + parameters: Endpoints["GET /user/public_emails"]["parameters"]; + response: Endpoints["GET /user/public_emails"]["response"]; + }; + /** + * @see https://docs.github.com/v3/repos/#list-repositories-for-the-authenticated-user + */ + "GET /user/repos": { + parameters: Endpoints["GET /user/repos"]["parameters"]; + response: Endpoints["GET /user/repos"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-invitations-for-the-authenticated-user + */ + "GET /user/repository_invitations": { + parameters: Endpoints["GET /user/repository_invitations"]["parameters"]; + response: Endpoints["GET /user/repository_invitations"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-repositories-starred-by-the-authenticated-user + */ + "GET /user/starred": { + parameters: Endpoints["GET /user/starred"]["parameters"]; + response: Endpoints["GET /user/starred"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-repositories-watched-by-the-authenticated-user + */ + "GET /user/subscriptions": { + parameters: Endpoints["GET /user/subscriptions"]["parameters"]; + response: Endpoints["GET /user/subscriptions"]["response"]; + }; + /** + * @see https://docs.github.com/v3/teams/#list-teams-for-the-authenticated-user + */ + "GET /user/teams": { + parameters: Endpoints["GET /user/teams"]["parameters"]; + response: Endpoints["GET /user/teams"]["response"]; + }; + /** + * @see https://docs.github.com/v3/users/#list-users + */ + "GET /users": { + parameters: Endpoints["GET /users"]["parameters"]; + response: Endpoints["GET /users"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-events-for-the-authenticated-user + */ + "GET /users/{username}/events": { + parameters: Endpoints["GET /users/{username}/events"]["parameters"]; + response: Endpoints["GET /users/{username}/events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-organization-events-for-the-authenticated-user + */ + "GET /users/{username}/events/orgs/{org}": { + parameters: Endpoints["GET /users/{username}/events/orgs/{org}"]["parameters"]; + response: Endpoints["GET /users/{username}/events/orgs/{org}"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-public-events-for-a-user + */ + "GET /users/{username}/events/public": { + parameters: Endpoints["GET /users/{username}/events/public"]["parameters"]; + response: Endpoints["GET /users/{username}/events/public"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-followers-of-a-user + */ + "GET /users/{username}/followers": { + parameters: Endpoints["GET /users/{username}/followers"]["parameters"]; + response: Endpoints["GET /users/{username}/followers"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-the-people-a-user-follows + */ + "GET /users/{username}/following": { + parameters: Endpoints["GET /users/{username}/following"]["parameters"]; + response: Endpoints["GET /users/{username}/following"]["response"]; + }; + /** + * @see https://docs.github.com/v3/gists/#list-gists-for-a-user + */ + "GET /users/{username}/gists": { + parameters: Endpoints["GET /users/{username}/gists"]["parameters"]; + response: Endpoints["GET /users/{username}/gists"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-gpg-keys-for-a-user + */ + "GET /users/{username}/gpg_keys": { + parameters: Endpoints["GET /users/{username}/gpg_keys"]["parameters"]; + response: Endpoints["GET /users/{username}/gpg_keys"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/users#list-public-keys-for-a-user + */ + "GET /users/{username}/keys": { + parameters: Endpoints["GET /users/{username}/keys"]["parameters"]; + response: Endpoints["GET /users/{username}/keys"]["response"]; + }; + /** + * @see https://docs.github.com/v3/orgs/#list-organizations-for-a-user + */ + "GET /users/{username}/orgs": { + parameters: Endpoints["GET /users/{username}/orgs"]["parameters"]; + response: Endpoints["GET /users/{username}/orgs"]["response"]; + }; + /** + * @see https://docs.github.com/v3/projects/#list-user-projects + */ + "GET /users/{username}/projects": { + parameters: Endpoints["GET /users/{username}/projects"]["parameters"]; + response: Endpoints["GET /users/{username}/projects"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-events-received-by-the-authenticated-user + */ + "GET /users/{username}/received_events": { + parameters: Endpoints["GET /users/{username}/received_events"]["parameters"]; + response: Endpoints["GET /users/{username}/received_events"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-public-events-received-by-a-user + */ + "GET /users/{username}/received_events/public": { + parameters: Endpoints["GET /users/{username}/received_events/public"]["parameters"]; + response: Endpoints["GET /users/{username}/received_events/public"]["response"]; + }; + /** + * @see https://docs.github.com/v3/repos/#list-repositories-for-a-user + */ + "GET /users/{username}/repos": { + parameters: Endpoints["GET /users/{username}/repos"]["parameters"]; + response: Endpoints["GET /users/{username}/repos"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-repositories-starred-by-a-user + */ + "GET /users/{username}/starred": { + parameters: Endpoints["GET /users/{username}/starred"]["parameters"]; + response: Endpoints["GET /users/{username}/starred"]["response"]; + }; + /** + * @see https://docs.github.com/rest/reference/activity#list-repositories-watched-by-a-user + */ + "GET /users/{username}/subscriptions": { + parameters: Endpoints["GET /users/{username}/subscriptions"]["parameters"]; + response: Endpoints["GET /users/{username}/subscriptions"]["response"]; + }; +} diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/index.d.ts b/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/index.d.ts new file mode 100644 index 000000000..44fd2341c --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/index.d.ts @@ -0,0 +1,14 @@ +import { Octokit } from "@octokit/core"; +import { PaginateInterface } from "./types"; +export { PaginateInterface } from "./types"; +export { composePaginateRest } from "./compose-paginate"; +/** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ +export declare function paginateRest(octokit: Octokit): { + paginate: PaginateInterface; +}; +export declare namespace paginateRest { + var VERSION: string; +} diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/iterator.d.ts b/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/iterator.d.ts new file mode 100644 index 000000000..276f6d96e --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/iterator.d.ts @@ -0,0 +1,13 @@ +import { Octokit } from "@octokit/core"; +import { RequestInterface, RequestParameters, Route } from "./types"; +export declare function iterator(octokit: Octokit, route: Route | RequestInterface, parameters?: RequestParameters): { + [Symbol.asyncIterator]: () => { + next(): Promise<{ + done: boolean; + value?: undefined; + } | { + value: import("@octokit/types/dist-types/OctokitResponse").OctokitResponse; + done?: undefined; + }>; + }; +}; diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/normalize-paginated-list-response.d.ts b/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/normalize-paginated-list-response.d.ts new file mode 100644 index 000000000..f948a78f4 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/normalize-paginated-list-response.d.ts @@ -0,0 +1,18 @@ +/** + * Some “list” response that can be paginated have a different response structure + * + * They have a `total_count` key in the response (search also has `incomplete_results`, + * /installation/repositories also has `repository_selection`), as well as a key with + * the list of the items which name varies from endpoint to endpoint. + * + * Octokit normalizes these responses so that paginated results are always returned following + * the same structure. One challenge is that if the list response has only one page, no Link + * header is provided, so this header alone is not sufficient to check wether a response is + * paginated or not. + * + * We check if a "total_count" key is present in the response data, but also make sure that + * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would + * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref + */ +import { OctokitResponse } from "./types"; +export declare function normalizePaginatedListResponse(response: OctokitResponse): OctokitResponse; diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/paginate.d.ts b/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/paginate.d.ts new file mode 100644 index 000000000..774c60414 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/paginate.d.ts @@ -0,0 +1,3 @@ +import { Octokit } from "@octokit/core"; +import { MapFunction, PaginationResults, RequestParameters, Route, RequestInterface } from "./types"; +export declare function paginate(octokit: Octokit, route: Route | RequestInterface, parameters?: RequestParameters, mapFn?: MapFunction): Promise>; diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/types.d.ts b/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/types.d.ts new file mode 100644 index 000000000..3e35fbee1 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/types.d.ts @@ -0,0 +1,241 @@ +import { Octokit } from "@octokit/core"; +import * as OctokitTypes from "@octokit/types"; +export { EndpointOptions, RequestInterface, OctokitResponse, RequestParameters, Route, } from "@octokit/types"; +import { PaginatingEndpoints } from "./generated/paginating-endpoints"; +declare type KnownKeys = Extract<{ + [K in keyof T]: string extends K ? never : number extends K ? never : K; +} extends { + [_ in keyof T]: infer U; +} ? U : never, keyof T>; +declare type KeysMatching = { + [K in keyof T]: T[K] extends V ? K : never; +}[keyof T]; +declare type KnownKeysMatching = KeysMatching>, V>; +declare type GetResultsType = T extends { + data: any[]; +} ? T["data"] : T extends { + data: object; +} ? T["data"][KnownKeysMatching] : never; +declare type NormalizeResponse = T & { + data: GetResultsType; +}; +declare type DataType = "data" extends keyof T ? T["data"] : unknown; +export interface MapFunction { + (response: OctokitTypes.OctokitResponse>, done: () => void): R[]; +} +export declare type PaginationResults = T[]; +export interface PaginateInterface { + /** + * Paginate a request using endpoint options and map each response to a custom array + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + * @param {function} mapFn Optional method to map each response to a custom array + */ + (options: OctokitTypes.EndpointOptions, mapFn: MapFunction): Promise>; + /** + * Paginate a request using endpoint options + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: OctokitTypes.EndpointOptions): Promise>; + /** + * Paginate a request using a known endpoint route string and map each response to a custom array + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {function} mapFn Optional method to map each response to a custom array + */ + (route: R, mapFn: (response: PaginatingEndpoints[R]["response"], done: () => void) => MR): Promise; + /** + * Paginate a request using a known endpoint route string and parameters, and map each response to a custom array + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} parameters URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + * @param {function} mapFn Optional method to map each response to a custom array + */ + (route: R, parameters: PaginatingEndpoints[R]["parameters"], mapFn: (response: PaginatingEndpoints[R]["response"], done: () => void) => MR): Promise; + /** + * Paginate a request using an known endpoint route string + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} parameters? URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: R, parameters?: PaginatingEndpoints[R]["parameters"]): Promise>; + /** + * Paginate a request using an unknown endpoint route string + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} parameters? URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: R, parameters?: R extends keyof PaginatingEndpoints ? PaginatingEndpoints[R]["parameters"] : OctokitTypes.RequestParameters): Promise; + /** + * Paginate a request using an endpoint method and a map function + * + * @param {string} request Request method (`octokit.request` or `@octokit/request`) + * @param {function} mapFn? Optional method to map each response to a custom array + */ + (request: R, mapFn: (response: NormalizeResponse>, done: () => void) => MR): Promise; + /** + * Paginate a request using an endpoint method, parameters, and a map function + * + * @param {string} request Request method (`octokit.request` or `@octokit/request`) + * @param {object} parameters URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + * @param {function} mapFn? Optional method to map each response to a custom array + */ + (request: R, parameters: Parameters[0], mapFn: (response: NormalizeResponse>, done?: () => void) => MR): Promise; + /** + * Paginate a request using an endpoint method and parameters + * + * @param {string} request Request method (`octokit.request` or `@octokit/request`) + * @param {object} parameters? URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (request: R, parameters?: Parameters[0]): Promise>["data"]>; + iterator: { + /** + * Get an async iterator to paginate a request using endpoint options + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (EndpointOptions: OctokitTypes.EndpointOptions): AsyncIterableIterator>>; + /** + * Get an async iterator to paginate a request using a known endpoint route string and optional parameters + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: R, parameters?: PaginatingEndpoints[R]["parameters"]): AsyncIterableIterator>>; + /** + * Get an async iterator to paginate a request using an unknown endpoint route string and optional parameters + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: R, parameters?: R extends keyof PaginatingEndpoints ? PaginatingEndpoints[R]["parameters"] : OctokitTypes.RequestParameters): AsyncIterableIterator>>; + /** + * Get an async iterator to paginate a request using a request method and optional parameters + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * @param {string} request `@octokit/request` or `octokit.request` method + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (request: R, parameters?: Parameters[0]): AsyncIterableIterator>>; + }; +} +export interface ComposePaginateInterface { + /** + * Paginate a request using endpoint options and map each response to a custom array + * + * @param {object} octokit Octokit instance + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + * @param {function} mapFn Optional method to map each response to a custom array + */ + (octokit: Octokit, options: OctokitTypes.EndpointOptions, mapFn: MapFunction): Promise>; + /** + * Paginate a request using endpoint options + * + * @param {object} octokit Octokit instance + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (octokit: Octokit, options: OctokitTypes.EndpointOptions): Promise>; + /** + * Paginate a request using a known endpoint route string and map each response to a custom array + * + * @param {object} octokit Octokit instance + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {function} mapFn Optional method to map each response to a custom array + */ + (octokit: Octokit, route: R, mapFn: (response: PaginatingEndpoints[R]["response"], done: () => void) => MR): Promise; + /** + * Paginate a request using a known endpoint route string and parameters, and map each response to a custom array + * + * @param {object} octokit Octokit instance + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} parameters URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + * @param {function} mapFn Optional method to map each response to a custom array + */ + (octokit: Octokit, route: R, parameters: PaginatingEndpoints[R]["parameters"], mapFn: (response: PaginatingEndpoints[R]["response"], done: () => void) => MR): Promise; + /** + * Paginate a request using an known endpoint route string + * + * @param {object} octokit Octokit instance + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} parameters? URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (octokit: Octokit, route: R, parameters?: PaginatingEndpoints[R]["parameters"]): Promise>; + /** + * Paginate a request using an unknown endpoint route string + * + * @param {object} octokit Octokit instance + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} parameters? URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (octokit: Octokit, route: R, parameters?: R extends keyof PaginatingEndpoints ? PaginatingEndpoints[R]["parameters"] : OctokitTypes.RequestParameters): Promise; + /** + * Paginate a request using an endpoint method and a map function + * + * @param {object} octokit Octokit instance + * @param {string} request Request method (`octokit.request` or `@octokit/request`) + * @param {function} mapFn? Optional method to map each response to a custom array + */ + (octokit: Octokit, request: R, mapFn: (response: NormalizeResponse>, done: () => void) => MR): Promise; + /** + * Paginate a request using an endpoint method, parameters, and a map function + * + * @param {object} octokit Octokit instance + * @param {string} request Request method (`octokit.request` or `@octokit/request`) + * @param {object} parameters URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + * @param {function} mapFn? Optional method to map each response to a custom array + */ + (octokit: Octokit, request: R, parameters: Parameters[0], mapFn: (response: NormalizeResponse>, done?: () => void) => MR): Promise; + /** + * Paginate a request using an endpoint method and parameters + * + * @param {object} octokit Octokit instance + * @param {string} request Request method (`octokit.request` or `@octokit/request`) + * @param {object} parameters? URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (octokit: Octokit, request: R, parameters?: Parameters[0]): Promise>["data"]>; + iterator: { + /** + * Get an async iterator to paginate a request using endpoint options + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * + * @param {object} octokit Octokit instance + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (octokit: Octokit, EndpointOptions: OctokitTypes.EndpointOptions): AsyncIterableIterator>>; + /** + * Get an async iterator to paginate a request using a known endpoint route string and optional parameters + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * + * @param {object} octokit Octokit instance + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (octokit: Octokit, route: R, parameters?: PaginatingEndpoints[R]["parameters"]): AsyncIterableIterator>>; + /** + * Get an async iterator to paginate a request using an unknown endpoint route string and optional parameters + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * + * @param {object} octokit Octokit instance + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (octokit: Octokit, route: R, parameters?: R extends keyof PaginatingEndpoints ? PaginatingEndpoints[R]["parameters"] : OctokitTypes.RequestParameters): AsyncIterableIterator>>; + /** + * Get an async iterator to paginate a request using a request method and optional parameters + * + * @see {link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of} for await...of + * + * @param {object} octokit Octokit instance + * @param {string} request `@octokit/request` or `octokit.request` method + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (octokit: Octokit, request: R, parameters?: Parameters[0]): AsyncIterableIterator>>; + }; +} diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/version.d.ts b/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/version.d.ts new file mode 100644 index 000000000..77bd0feb0 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "2.7.0"; diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js b/Client/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js new file mode 100644 index 000000000..0e16adb00 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js @@ -0,0 +1,111 @@ +const VERSION = "2.7.0"; + +/** + * Some “list” response that can be paginated have a different response structure + * + * They have a `total_count` key in the response (search also has `incomplete_results`, + * /installation/repositories also has `repository_selection`), as well as a key with + * the list of the items which name varies from endpoint to endpoint. + * + * Octokit normalizes these responses so that paginated results are always returned following + * the same structure. One challenge is that if the list response has only one page, no Link + * header is provided, so this header alone is not sufficient to check wether a response is + * paginated or not. + * + * We check if a "total_count" key is present in the response data, but also make sure that + * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would + * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref + */ +function normalizePaginatedListResponse(response) { + const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); + if (!responseNeedsNormalization) + return response; + // keep the additional properties intact as there is currently no other way + // to retrieve the same information. + const incompleteResults = response.data.incomplete_results; + const repositorySelection = response.data.repository_selection; + const totalCount = response.data.total_count; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + const namespaceKey = Object.keys(response.data)[0]; + const data = response.data[namespaceKey]; + response.data = data; + if (typeof incompleteResults !== "undefined") { + response.data.incomplete_results = incompleteResults; + } + if (typeof repositorySelection !== "undefined") { + response.data.repository_selection = repositorySelection; + } + response.data.total_count = totalCount; + return response; +} + +function iterator(octokit, route, parameters) { + const options = typeof route === "function" + ? route.endpoint(parameters) + : octokit.request.endpoint(route, parameters); + const requestMethod = typeof route === "function" ? route : octokit.request; + const method = options.method; + const headers = options.headers; + let url = options.url; + return { + [Symbol.asyncIterator]: () => ({ + async next() { + if (!url) + return { done: true }; + const response = await requestMethod({ method, url, headers }); + const normalizedResponse = normalizePaginatedListResponse(response); + // `response.headers.link` format: + // '; rel="next", ; rel="last"' + // sets `url` to undefined if "next" URL is not present or `link` header is not set + url = ((normalizedResponse.headers.link || "").match(/<([^>]+)>;\s*rel="next"/) || [])[1]; + return { value: normalizedResponse }; + }, + }), + }; +} + +function paginate(octokit, route, parameters, mapFn) { + if (typeof parameters === "function") { + mapFn = parameters; + parameters = undefined; + } + return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); +} +function gather(octokit, results, iterator, mapFn) { + return iterator.next().then((result) => { + if (result.done) { + return results; + } + let earlyExit = false; + function done() { + earlyExit = true; + } + results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data); + if (earlyExit) { + return results; + } + return gather(octokit, results, iterator, mapFn); + }); +} + +const composePaginateRest = Object.assign(paginate, { + iterator, +}); + +/** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ +function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit), + }), + }; +} +paginateRest.VERSION = VERSION; + +export { composePaginateRest, paginateRest }; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js.map b/Client/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js.map new file mode 100644 index 000000000..acae5824d --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/normalize-paginated-list-response.js","../dist-src/iterator.js","../dist-src/paginate.js","../dist-src/compose-paginate.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"2.7.0\";\n","/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nexport function normalizePaginatedListResponse(response) {\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization)\n return response;\n // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n response.data.total_count = totalCount;\n return response;\n}\n","import { normalizePaginatedListResponse } from \"./normalize-paginated-list-response\";\nexport function iterator(octokit, route, parameters) {\n const options = typeof route === \"function\"\n ? route.endpoint(parameters)\n : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url)\n return { done: true };\n const response = await requestMethod({ method, url, headers });\n const normalizedResponse = normalizePaginatedListResponse(response);\n // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return { value: normalizedResponse };\n },\n }),\n };\n}\n","import { iterator } from \"./iterator\";\nexport function paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then((result) => {\n if (result.done) {\n return results;\n }\n let earlyExit = false;\n function done() {\n earlyExit = true;\n }\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n if (earlyExit) {\n return results;\n }\n return gather(octokit, results, iterator, mapFn);\n });\n}\n","import { paginate } from \"./paginate\";\nimport { iterator } from \"./iterator\";\nexport const composePaginateRest = Object.assign(paginate, {\n iterator,\n});\n","import { VERSION } from \"./version\";\nimport { paginate } from \"./paginate\";\nimport { iterator } from \"./iterator\";\nexport { composePaginateRest } from \"./compose-paginate\";\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\nexport function paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit),\n }),\n };\n}\npaginateRest.VERSION = VERSION;\n"],"names":[],"mappings":"AAAO,MAAM,OAAO,GAAG,mBAAmB;;ACA1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AAAO,SAAS,8BAA8B,CAAC,QAAQ,EAAE;AACzD,IAAI,MAAM,0BAA0B,GAAG,aAAa,IAAI,QAAQ,CAAC,IAAI,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnG,IAAI,IAAI,CAAC,0BAA0B;AACnC,QAAQ,OAAO,QAAQ,CAAC;AACxB;AACA;AACA,IAAI,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC;AAC/D,IAAI,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC;AACnE,IAAI,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;AACjD,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC;AAC5C,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC;AAC9C,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;AACrC,IAAI,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC7C,IAAI,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,OAAO,iBAAiB,KAAK,WAAW,EAAE;AAClD,QAAQ,QAAQ,CAAC,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;AAC7D,KAAK;AACL,IAAI,IAAI,OAAO,mBAAmB,KAAK,WAAW,EAAE;AACpD,QAAQ,QAAQ,CAAC,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,CAAC;AACjE,KAAK;AACL,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;AAC3C,IAAI,OAAO,QAAQ,CAAC;AACpB,CAAC;;ACtCM,SAAS,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE;AACrD,IAAI,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,UAAU;AAC/C,UAAU,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;AACpC,UAAU,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACtD,IAAI,MAAM,aAAa,GAAG,OAAO,KAAK,KAAK,UAAU,GAAG,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;AAChF,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAClC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AACpC,IAAI,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;AAC1B,IAAI,OAAO;AACX,QAAQ,CAAC,MAAM,CAAC,aAAa,GAAG,OAAO;AACvC,YAAY,MAAM,IAAI,GAAG;AACzB,gBAAgB,IAAI,CAAC,GAAG;AACxB,oBAAoB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC1C,gBAAgB,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;AAC/E,gBAAgB,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;AACpF;AACA;AACA;AACA,gBAAgB,GAAG,GAAG,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,yBAAyB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1G,gBAAgB,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;AACrD,aAAa;AACb,SAAS,CAAC;AACV,KAAK,CAAC;AACN,CAAC;;ACvBM,SAAS,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;AAC5D,IAAI,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;AAC1C,QAAQ,KAAK,GAAG,UAAU,CAAC;AAC3B,QAAQ,UAAU,GAAG,SAAS,CAAC;AAC/B,KAAK;AACL,IAAI,OAAO,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACpG,CAAC;AACD,SAAS,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;AACnD,IAAI,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AAC5C,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE;AACzB,YAAY,OAAO,OAAO,CAAC;AAC3B,SAAS;AACT,QAAQ,IAAI,SAAS,GAAG,KAAK,CAAC;AAC9B,QAAQ,SAAS,IAAI,GAAG;AACxB,YAAY,SAAS,GAAG,IAAI,CAAC;AAC7B,SAAS;AACT,QAAQ,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACxF,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,OAAO,OAAO,CAAC;AAC3B,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AACzD,KAAK,CAAC,CAAC;AACP,CAAC;;ACrBW,MAAC,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;AAC3D,IAAI,QAAQ;AACZ,CAAC,CAAC;;ACAF;AACA;AACA;AACA;AACA,AAAO,SAAS,YAAY,CAAC,OAAO,EAAE;AACtC,IAAI,OAAO;AACX,QAAQ,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AAC9D,YAAY,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;AAClD,SAAS,CAAC;AACV,KAAK,CAAC;AACN,CAAC;AACD,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/plugin-paginate-rest/package.json b/Client/node_modules/@octokit/plugin-paginate-rest/package.json new file mode 100644 index 000000000..fc3a19596 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-paginate-rest/package.json @@ -0,0 +1,84 @@ +{ + "_from": "@octokit/plugin-paginate-rest@^2.6.2", + "_id": "@octokit/plugin-paginate-rest@2.7.0", + "_inBundle": false, + "_integrity": "sha512-+zARyncLjt9b0FjqPAbJo4ss7HOlBi1nprq+cPlw5vu2+qjy7WvlXhtXFdRHQbSL1Pt+bfAKaLADEkkvg8sP8w==", + "_location": "/@octokit/plugin-paginate-rest", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@octokit/plugin-paginate-rest@^2.6.2", + "name": "@octokit/plugin-paginate-rest", + "escapedName": "@octokit%2fplugin-paginate-rest", + "scope": "@octokit", + "rawSpec": "^2.6.2", + "saveSpec": null, + "fetchSpec": "^2.6.2" + }, + "_requiredBy": [ + "/@octokit/rest" + ], + "_resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.7.0.tgz", + "_shasum": "6bb7b043c246e0654119a6ec4e72a172c9e2c7f3", + "_spec": "@octokit/plugin-paginate-rest@^2.6.2", + "_where": "C:\\Superalgos\\Client\\node_modules\\@octokit\\rest", + "bugs": { + "url": "https://github.com/octokit/plugin-paginate-rest.js/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@octokit/types": "^6.0.1" + }, + "deprecated": false, + "description": "Octokit plugin to paginate REST API endpoint responses", + "devDependencies": { + "@octokit/core": "^3.0.0", + "@octokit/plugin-rest-endpoint-methods": "^4.0.0", + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "@types/fetch-mock": "^7.3.1", + "@types/jest": "^26.0.0", + "@types/node": "^14.0.4", + "fetch-mock": "^9.0.0", + "jest": "^26.0.1", + "npm-run-all": "^4.1.5", + "prettier": "^2.0.4", + "semantic-release": "^17.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "ts-jest": "^26.0.0", + "typescript": "^4.0.2" + }, + "files": [ + "dist-*/", + "bin/" + ], + "homepage": "https://github.com/octokit/plugin-paginate-rest.js#readme", + "keywords": [ + "github", + "api", + "sdk", + "toolkit" + ], + "license": "MIT", + "main": "dist-node/index.js", + "module": "dist-web/index.js", + "name": "@octokit/plugin-paginate-rest", + "peerDependencies": { + "@octokit/core": ">=2" + }, + "pika": true, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/octokit/plugin-paginate-rest.js.git" + }, + "sideEffects": false, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "version": "2.7.0" +} diff --git a/Client/node_modules/@octokit/plugin-request-log/LICENSE b/Client/node_modules/@octokit/plugin-request-log/LICENSE new file mode 100644 index 000000000..d7d59275c --- /dev/null +++ b/Client/node_modules/@octokit/plugin-request-log/LICENSE @@ -0,0 +1,7 @@ +MIT License Copyright (c) 2020 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Client/node_modules/@octokit/plugin-request-log/README.md b/Client/node_modules/@octokit/plugin-request-log/README.md new file mode 100644 index 000000000..cbc8f1b4d --- /dev/null +++ b/Client/node_modules/@octokit/plugin-request-log/README.md @@ -0,0 +1,69 @@ +# plugin-request-log.js + +> Log all requests and request errors + +[![@latest](https://img.shields.io/npm/v/@octokit/plugin-request-log.svg)](https://www.npmjs.com/package/@octokit/plugin-request-log) +[![Build Status](https://github.com/octokit/plugin-request-log.js/workflows/Test/badge.svg)](https://github.com/octokit/plugin-request-log.js/actions?workflow=Test) + +## Usage + + + + + + +
+Browsers + + +Load `@octokit/plugin-request-log` and [`@octokit/core`](https://github.com/octokit/core.js) (or core-compatible module) directly from [cdn.skypack.dev](https://cdn.skypack.dev) + +```html + +``` + +
+Node + + +Install with `npm install @octokit/core @octokit/plugin-request-log`. Optionally replace `@octokit/core` with a core-compatible module + +```js +const { Octokit } = require("@octokit/core"); +const { requestLog } = require("@octokit/plugin-request-log"); +``` + +
+ +```js +const MyOctokit = Octokit.plugin(requestLog); +const octokit = new MyOctokit({ auth: "secret123" }); + +octokit.request("GET /"); +// logs "GET / - 200 in 123ms + +octokit.request("GET /oops"); +// logs "GET / - 404 in 123ms +``` + +In order to log all request options, the `log.debug` option needs to be set. We recommend the [console-log-level](https://github.com/watson/console-log-level) package for a configurable log level + +```js +const octokit = new MyOctokit({ + log: require("console-log-level")({ + auth: "secret123", + level: "info", + }), +}); +``` + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md) + +## License + +[MIT](LICENSE) diff --git a/Client/node_modules/@octokit/plugin-request-log/dist-node/index.js b/Client/node_modules/@octokit/plugin-request-log/dist-node/index.js new file mode 100644 index 000000000..60b651fe1 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-request-log/dist-node/index.js @@ -0,0 +1,30 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +const VERSION = "1.0.2"; + +/** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ + +function requestLog(octokit) { + octokit.hook.wrap("request", (request, options) => { + octokit.log.debug("request", options); + const start = Date.now(); + const requestOptions = octokit.request.endpoint.parse(options); + const path = requestOptions.url.replace(options.baseUrl, ""); + return request(options).then(response => { + octokit.log.info(`${requestOptions.method} ${path} - ${response.status} in ${Date.now() - start}ms`); + return response; + }).catch(error => { + octokit.log.info(`${requestOptions.method} ${path} - ${error.status} in ${Date.now() - start}ms`); + throw error; + }); + }); +} +requestLog.VERSION = VERSION; + +exports.requestLog = requestLog; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/plugin-request-log/dist-node/index.js.map b/Client/node_modules/@octokit/plugin-request-log/dist-node/index.js.map new file mode 100644 index 000000000..26ad363e6 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-request-log/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"1.0.2\";\n","import { VERSION } from \"./version\";\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\nexport function requestLog(octokit) {\n octokit.hook.wrap(\"request\", (request, options) => {\n octokit.log.debug(\"request\", options);\n const start = Date.now();\n const requestOptions = octokit.request.endpoint.parse(options);\n const path = requestOptions.url.replace(options.baseUrl, \"\");\n return request(options)\n .then((response) => {\n octokit.log.info(`${requestOptions.method} ${path} - ${response.status} in ${Date.now() - start}ms`);\n return response;\n })\n .catch((error) => {\n octokit.log.info(`${requestOptions.method} ${path} - ${error.status} in ${Date.now() - start}ms`);\n throw error;\n });\n });\n}\nrequestLog.VERSION = VERSION;\n"],"names":["VERSION","requestLog","octokit","hook","wrap","request","options","log","debug","start","Date","now","requestOptions","endpoint","parse","path","url","replace","baseUrl","then","response","info","method","status","catch","error"],"mappings":";;;;AAAO,MAAMA,OAAO,GAAG,mBAAhB;;ACCP;;;;;AAIA,AAAO,SAASC,UAAT,CAAoBC,OAApB,EAA6B;AAChCA,EAAAA,OAAO,CAACC,IAAR,CAAaC,IAAb,CAAkB,SAAlB,EAA6B,CAACC,OAAD,EAAUC,OAAV,KAAsB;AAC/CJ,IAAAA,OAAO,CAACK,GAAR,CAAYC,KAAZ,CAAkB,SAAlB,EAA6BF,OAA7B;AACA,UAAMG,KAAK,GAAGC,IAAI,CAACC,GAAL,EAAd;AACA,UAAMC,cAAc,GAAGV,OAAO,CAACG,OAAR,CAAgBQ,QAAhB,CAAyBC,KAAzB,CAA+BR,OAA/B,CAAvB;AACA,UAAMS,IAAI,GAAGH,cAAc,CAACI,GAAf,CAAmBC,OAAnB,CAA2BX,OAAO,CAACY,OAAnC,EAA4C,EAA5C,CAAb;AACA,WAAOb,OAAO,CAACC,OAAD,CAAP,CACFa,IADE,CACIC,QAAD,IAAc;AACpBlB,MAAAA,OAAO,CAACK,GAAR,CAAYc,IAAZ,CAAkB,GAAET,cAAc,CAACU,MAAO,IAAGP,IAAK,MAAKK,QAAQ,CAACG,MAAO,OAAMb,IAAI,CAACC,GAAL,KAAaF,KAAM,IAAhG;AACA,aAAOW,QAAP;AACH,KAJM,EAKFI,KALE,CAKKC,KAAD,IAAW;AAClBvB,MAAAA,OAAO,CAACK,GAAR,CAAYc,IAAZ,CAAkB,GAAET,cAAc,CAACU,MAAO,IAAGP,IAAK,MAAKU,KAAK,CAACF,MAAO,OAAMb,IAAI,CAACC,GAAL,KAAaF,KAAM,IAA7F;AACA,YAAMgB,KAAN;AACH,KARM,CAAP;AASH,GAdD;AAeH;AACDxB,UAAU,CAACD,OAAX,GAAqBA,OAArB;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/plugin-request-log/dist-src/index.js b/Client/node_modules/@octokit/plugin-request-log/dist-src/index.js new file mode 100644 index 000000000..033cc8405 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-request-log/dist-src/index.js @@ -0,0 +1,23 @@ +import { VERSION } from "./version"; +/** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ +export function requestLog(octokit) { + octokit.hook.wrap("request", (request, options) => { + octokit.log.debug("request", options); + const start = Date.now(); + const requestOptions = octokit.request.endpoint.parse(options); + const path = requestOptions.url.replace(options.baseUrl, ""); + return request(options) + .then((response) => { + octokit.log.info(`${requestOptions.method} ${path} - ${response.status} in ${Date.now() - start}ms`); + return response; + }) + .catch((error) => { + octokit.log.info(`${requestOptions.method} ${path} - ${error.status} in ${Date.now() - start}ms`); + throw error; + }); + }); +} +requestLog.VERSION = VERSION; diff --git a/Client/node_modules/@octokit/plugin-request-log/dist-src/version.js b/Client/node_modules/@octokit/plugin-request-log/dist-src/version.js new file mode 100644 index 000000000..956106291 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-request-log/dist-src/version.js @@ -0,0 +1 @@ +export const VERSION = "1.0.2"; diff --git a/Client/node_modules/@octokit/plugin-request-log/dist-types/index.d.ts b/Client/node_modules/@octokit/plugin-request-log/dist-types/index.d.ts new file mode 100644 index 000000000..dc62f632a --- /dev/null +++ b/Client/node_modules/@octokit/plugin-request-log/dist-types/index.d.ts @@ -0,0 +1,9 @@ +import type { Octokit } from "@octokit/core"; +/** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ +export declare function requestLog(octokit: Octokit): void; +export declare namespace requestLog { + var VERSION: string; +} diff --git a/Client/node_modules/@octokit/plugin-request-log/dist-types/version.d.ts b/Client/node_modules/@octokit/plugin-request-log/dist-types/version.d.ts new file mode 100644 index 000000000..9f861b6cd --- /dev/null +++ b/Client/node_modules/@octokit/plugin-request-log/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "1.0.2"; diff --git a/Client/node_modules/@octokit/plugin-request-log/dist-web/index.js b/Client/node_modules/@octokit/plugin-request-log/dist-web/index.js new file mode 100644 index 000000000..ac4050d52 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-request-log/dist-web/index.js @@ -0,0 +1,27 @@ +const VERSION = "1.0.2"; + +/** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ +function requestLog(octokit) { + octokit.hook.wrap("request", (request, options) => { + octokit.log.debug("request", options); + const start = Date.now(); + const requestOptions = octokit.request.endpoint.parse(options); + const path = requestOptions.url.replace(options.baseUrl, ""); + return request(options) + .then((response) => { + octokit.log.info(`${requestOptions.method} ${path} - ${response.status} in ${Date.now() - start}ms`); + return response; + }) + .catch((error) => { + octokit.log.info(`${requestOptions.method} ${path} - ${error.status} in ${Date.now() - start}ms`); + throw error; + }); + }); +} +requestLog.VERSION = VERSION; + +export { requestLog }; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/plugin-request-log/dist-web/index.js.map b/Client/node_modules/@octokit/plugin-request-log/dist-web/index.js.map new file mode 100644 index 000000000..c691579d7 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-request-log/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"1.0.2\";\n","import { VERSION } from \"./version\";\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\nexport function requestLog(octokit) {\n octokit.hook.wrap(\"request\", (request, options) => {\n octokit.log.debug(\"request\", options);\n const start = Date.now();\n const requestOptions = octokit.request.endpoint.parse(options);\n const path = requestOptions.url.replace(options.baseUrl, \"\");\n return request(options)\n .then((response) => {\n octokit.log.info(`${requestOptions.method} ${path} - ${response.status} in ${Date.now() - start}ms`);\n return response;\n })\n .catch((error) => {\n octokit.log.info(`${requestOptions.method} ${path} - ${error.status} in ${Date.now() - start}ms`);\n throw error;\n });\n });\n}\nrequestLog.VERSION = VERSION;\n"],"names":[],"mappings":"AAAO,MAAM,OAAO,GAAG,mBAAmB;;ACC1C;AACA;AACA;AACA;AACA,AAAO,SAAS,UAAU,CAAC,OAAO,EAAE;AACpC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK;AACvD,QAAQ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAC9C,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACjC,QAAQ,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACvE,QAAQ,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACrE,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC;AAC/B,aAAa,IAAI,CAAC,CAAC,QAAQ,KAAK;AAChC,YAAY,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AACjH,YAAY,OAAO,QAAQ,CAAC;AAC5B,SAAS,CAAC;AACV,aAAa,KAAK,CAAC,CAAC,KAAK,KAAK;AAC9B,YAAY,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9G,YAAY,MAAM,KAAK,CAAC;AACxB,SAAS,CAAC,CAAC;AACX,KAAK,CAAC,CAAC;AACP,CAAC;AACD,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/plugin-request-log/package.json b/Client/node_modules/@octokit/plugin-request-log/package.json new file mode 100644 index 000000000..1b36d6b32 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-request-log/package.json @@ -0,0 +1,80 @@ +{ + "_from": "@octokit/plugin-request-log@^1.0.2", + "_id": "@octokit/plugin-request-log@1.0.2", + "_inBundle": false, + "_integrity": "sha512-oTJSNAmBqyDR41uSMunLQKMX0jmEXbwD1fpz8FG27lScV3RhtGfBa1/BBLym+PxcC16IBlF7KH9vP1BUYxA+Eg==", + "_location": "/@octokit/plugin-request-log", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@octokit/plugin-request-log@^1.0.2", + "name": "@octokit/plugin-request-log", + "escapedName": "@octokit%2fplugin-request-log", + "scope": "@octokit", + "rawSpec": "^1.0.2", + "saveSpec": null, + "fetchSpec": "^1.0.2" + }, + "_requiredBy": [ + "/@octokit/rest" + ], + "_resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.2.tgz", + "_shasum": "394d59ec734cd2f122431fbaf05099861ece3c44", + "_spec": "@octokit/plugin-request-log@^1.0.2", + "_where": "C:\\Superalgos\\Client\\node_modules\\@octokit\\rest", + "bugs": { + "url": "https://github.com/octokit/plugin-request-log.js/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Log all requests and request errors", + "devDependencies": { + "@octokit/core": "^3.0.0", + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "@types/fetch-mock": "^7.3.2", + "@types/jest": "^26.0.0", + "@types/node": "^14.0.4", + "fetch-mock": "^9.0.0", + "jest": "^25.1.0", + "prettier": "^2.0.1", + "semantic-release": "^17.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "ts-jest": "^25.0.0", + "typescript": "^3.7.4" + }, + "files": [ + "dist-*/", + "bin/" + ], + "homepage": "https://github.com/octokit/plugin-request-log.js#readme", + "keywords": [ + "github", + "api", + "sdk", + "toolkit" + ], + "license": "MIT", + "main": "dist-node/index.js", + "module": "dist-web/index.js", + "name": "@octokit/plugin-request-log", + "peerDependencies": { + "@octokit/core": ">=3" + }, + "pika": true, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/octokit/plugin-request-log.js.git" + }, + "sideEffects": false, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "version": "1.0.2" +} diff --git a/Client/node_modules/@octokit/plugin-rest-endpoint-methods/LICENSE b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/LICENSE new file mode 100644 index 000000000..57bee5f18 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/LICENSE @@ -0,0 +1,7 @@ +MIT License Copyright (c) 2019 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Client/node_modules/@octokit/plugin-rest-endpoint-methods/README.md b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/README.md new file mode 100644 index 000000000..0658dee6e --- /dev/null +++ b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/README.md @@ -0,0 +1,72 @@ +# plugin-rest-endpoint-methods.js + +> Octokit plugin adding one method for all of api.github.com REST API endpoints + +[![@latest](https://img.shields.io/npm/v/@octokit/plugin-rest-endpoint-methods.svg)](https://www.npmjs.com/package/@octokit/plugin-rest-endpoint-methods) +[![Build Status](https://github.com/octokit/plugin-rest-endpoint-methods.js/workflows/Test/badge.svg)](https://github.com/octokit/plugin-rest-endpoint-methods.js/actions?workflow=Test) + +## Usage + + + + + + +
+Browsers + + +Load `@octokit/plugin-rest-endpoint-methods` and [`@octokit/core`](https://github.com/octokit/core.js) (or core-compatible module) directly from [cdn.skypack.dev](https://cdn.skypack.dev) + +```html + +``` + +
+Node + + +Install with `npm install @octokit/core @octokit/plugin-rest-endpoint-methods`. Optionally replace `@octokit/core` with a compatible module + +```js +const { Octokit } = require("@octokit/core"); +const { + restEndpointMethods, +} = require("@octokit/plugin-rest-endpoint-methods"); +``` + +
+ +```js +const MyOctokit = Octokit.plugin(restEndpointMethods); +const octokit = new MyOctokit({ auth: "secret123" }); + +// https://developer.github.com/v3/users/#get-the-authenticated-user +octokit.users.getAuthenticated(); +``` + +There is one method for each REST API endpoint documented at [https://developer.github.com/v3](https://developer.github.com/v3). All endpoint methods are documented in the [docs/](docs/) folder, e.g. [docs/users/getAuthenticated.md](docs/users/getAuthenticated.md) + +## TypeScript + +Parameter and response types for all endpoint methods exported as `{ RestEndpointMethodTypes }`. + +Example + +```ts +import { RestEndpointMethodTypes } from "@octokit/plugin-rest-endpoint-methods"; + +type UpdateLabelParameters = RestEndpointMethodTypes["issues"]["updateLabel"]["parameters"]; +type UpdateLabelResponse = RestEndpointMethodTypes["issues"]["updateLabel"]["response"]; +``` + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md) + +## License + +[MIT](LICENSE) diff --git a/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js new file mode 100644 index 000000000..de56ad025 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js @@ -0,0 +1,1133 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +const Endpoints = { + actions: { + addSelectedRepoToOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], + cancelWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"], + createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], + createOrUpdateRepoSecret: ["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + createRegistrationTokenForOrg: ["POST /orgs/{org}/actions/runners/registration-token"], + createRegistrationTokenForRepo: ["POST /repos/{owner}/{repo}/actions/runners/registration-token"], + createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], + createRemoveTokenForRepo: ["POST /repos/{owner}/{repo}/actions/runners/remove-token"], + createWorkflowDispatch: ["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"], + deleteArtifact: ["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], + deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], + deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + deleteSelfHostedRunnerFromOrg: ["DELETE /orgs/{org}/actions/runners/{runner_id}"], + deleteSelfHostedRunnerFromRepo: ["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"], + deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"], + deleteWorkflowRunLogs: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"], + disableSelectedRepositoryGithubActionsOrganization: ["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"], + disableWorkflow: ["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"], + downloadArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"], + downloadJobLogsForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"], + downloadWorkflowRunLogs: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"], + enableSelectedRepositoryGithubActionsOrganization: ["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"], + enableWorkflow: ["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"], + getAllowedActionsOrganization: ["GET /orgs/{org}/actions/permissions/selected-actions"], + getAllowedActionsRepository: ["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"], + getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], + getGithubActionsPermissionsOrganization: ["GET /orgs/{org}/actions/permissions"], + getGithubActionsPermissionsRepository: ["GET /repos/{owner}/{repo}/actions/permissions"], + getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], + getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], + getRepoPermissions: ["GET /repos/{owner}/{repo}/actions/permissions", {}, { + renamed: ["actions", "getGithubActionsPermissionsRepository"] + }], + getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], + getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], + getSelfHostedRunnerForRepo: ["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"], + getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], + getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], + getWorkflowRunUsage: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"], + getWorkflowUsage: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"], + listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], + listJobsForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"], + listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], + listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], + listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], + listRunnerApplicationsForRepo: ["GET /repos/{owner}/{repo}/actions/runners/downloads"], + listSelectedReposForOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"], + listSelectedRepositoriesEnabledGithubActionsOrganization: ["GET /orgs/{org}/actions/permissions/repositories"], + listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], + listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], + listWorkflowRunArtifacts: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"], + listWorkflowRuns: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"], + listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], + reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], + removeSelectedRepoFromOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], + setAllowedActionsOrganization: ["PUT /orgs/{org}/actions/permissions/selected-actions"], + setAllowedActionsRepository: ["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"], + setGithubActionsPermissionsOrganization: ["PUT /orgs/{org}/actions/permissions"], + setGithubActionsPermissionsRepository: ["PUT /repos/{owner}/{repo}/actions/permissions"], + setSelectedReposForOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"], + setSelectedRepositoriesEnabledGithubActionsOrganization: ["PUT /orgs/{org}/actions/permissions/repositories"] + }, + activity: { + checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], + deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], + deleteThreadSubscription: ["DELETE /notifications/threads/{thread_id}/subscription"], + getFeeds: ["GET /feeds"], + getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], + getThread: ["GET /notifications/threads/{thread_id}"], + getThreadSubscriptionForAuthenticatedUser: ["GET /notifications/threads/{thread_id}/subscription"], + listEventsForAuthenticatedUser: ["GET /users/{username}/events"], + listNotificationsForAuthenticatedUser: ["GET /notifications"], + listOrgEventsForAuthenticatedUser: ["GET /users/{username}/events/orgs/{org}"], + listPublicEvents: ["GET /events"], + listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], + listPublicEventsForUser: ["GET /users/{username}/events/public"], + listPublicOrgEvents: ["GET /orgs/{org}/events"], + listReceivedEventsForUser: ["GET /users/{username}/received_events"], + listReceivedPublicEventsForUser: ["GET /users/{username}/received_events/public"], + listRepoEvents: ["GET /repos/{owner}/{repo}/events"], + listRepoNotificationsForAuthenticatedUser: ["GET /repos/{owner}/{repo}/notifications"], + listReposStarredByAuthenticatedUser: ["GET /user/starred"], + listReposStarredByUser: ["GET /users/{username}/starred"], + listReposWatchedByUser: ["GET /users/{username}/subscriptions"], + listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], + listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], + listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], + markNotificationsAsRead: ["PUT /notifications"], + markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], + markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], + setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], + setThreadSubscription: ["PUT /notifications/threads/{thread_id}/subscription"], + starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], + unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"] + }, + apps: { + addRepoToInstallation: ["PUT /user/installations/{installation_id}/repositories/{repository_id}"], + checkToken: ["POST /applications/{client_id}/token"], + createContentAttachment: ["POST /content_references/{content_reference_id}/attachments", { + mediaType: { + previews: ["corsair"] + } + }], + createFromManifest: ["POST /app-manifests/{code}/conversions"], + createInstallationAccessToken: ["POST /app/installations/{installation_id}/access_tokens"], + deleteAuthorization: ["DELETE /applications/{client_id}/grant"], + deleteInstallation: ["DELETE /app/installations/{installation_id}"], + deleteToken: ["DELETE /applications/{client_id}/token"], + getAuthenticated: ["GET /app"], + getBySlug: ["GET /apps/{app_slug}"], + getInstallation: ["GET /app/installations/{installation_id}"], + getOrgInstallation: ["GET /orgs/{org}/installation"], + getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"], + getSubscriptionPlanForAccount: ["GET /marketplace_listing/accounts/{account_id}"], + getSubscriptionPlanForAccountStubbed: ["GET /marketplace_listing/stubbed/accounts/{account_id}"], + getUserInstallation: ["GET /users/{username}/installation"], + getWebhookConfigForApp: ["GET /app/hook/config"], + listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], + listAccountsForPlanStubbed: ["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"], + listInstallationReposForAuthenticatedUser: ["GET /user/installations/{installation_id}/repositories"], + listInstallations: ["GET /app/installations"], + listInstallationsForAuthenticatedUser: ["GET /user/installations"], + listPlans: ["GET /marketplace_listing/plans"], + listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], + listReposAccessibleToInstallation: ["GET /installation/repositories"], + listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], + listSubscriptionsForAuthenticatedUserStubbed: ["GET /user/marketplace_purchases/stubbed"], + removeRepoFromInstallation: ["DELETE /user/installations/{installation_id}/repositories/{repository_id}"], + resetToken: ["PATCH /applications/{client_id}/token"], + revokeInstallationAccessToken: ["DELETE /installation/token"], + suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], + unsuspendInstallation: ["DELETE /app/installations/{installation_id}/suspended"], + updateWebhookConfigForApp: ["PATCH /app/hook/config"] + }, + billing: { + getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"], + getGithubActionsBillingUser: ["GET /users/{username}/settings/billing/actions"], + getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"], + getGithubPackagesBillingUser: ["GET /users/{username}/settings/billing/packages"], + getSharedStorageBillingOrg: ["GET /orgs/{org}/settings/billing/shared-storage"], + getSharedStorageBillingUser: ["GET /users/{username}/settings/billing/shared-storage"] + }, + checks: { + create: ["POST /repos/{owner}/{repo}/check-runs"], + createSuite: ["POST /repos/{owner}/{repo}/check-suites"], + get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"], + getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"], + listAnnotations: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"], + listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"], + listForSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"], + listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"], + rerequestSuite: ["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"], + setSuitesPreferences: ["PATCH /repos/{owner}/{repo}/check-suites/preferences"], + update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"] + }, + codeScanning: { + getAlert: ["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", {}, { + renamedParameters: { + alert_id: "alert_number" + } + }], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], + listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], + updateAlert: ["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"], + uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] + }, + codesOfConduct: { + getAllCodesOfConduct: ["GET /codes_of_conduct", { + mediaType: { + previews: ["scarlet-witch"] + } + }], + getConductCode: ["GET /codes_of_conduct/{key}", { + mediaType: { + previews: ["scarlet-witch"] + } + }], + getForRepo: ["GET /repos/{owner}/{repo}/community/code_of_conduct", { + mediaType: { + previews: ["scarlet-witch"] + } + }] + }, + emojis: { + get: ["GET /emojis"] + }, + enterpriseAdmin: { + disableSelectedOrganizationGithubActionsEnterprise: ["DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"], + enableSelectedOrganizationGithubActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"], + getAllowedActionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/selected-actions"], + getGithubActionsPermissionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions"], + listSelectedOrganizationsEnabledGithubActionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/organizations"], + setAllowedActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/selected-actions"], + setGithubActionsPermissionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions"], + setSelectedOrganizationsEnabledGithubActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/organizations"] + }, + gists: { + checkIsStarred: ["GET /gists/{gist_id}/star"], + create: ["POST /gists"], + createComment: ["POST /gists/{gist_id}/comments"], + delete: ["DELETE /gists/{gist_id}"], + deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], + fork: ["POST /gists/{gist_id}/forks"], + get: ["GET /gists/{gist_id}"], + getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], + getRevision: ["GET /gists/{gist_id}/{sha}"], + list: ["GET /gists"], + listComments: ["GET /gists/{gist_id}/comments"], + listCommits: ["GET /gists/{gist_id}/commits"], + listForUser: ["GET /users/{username}/gists"], + listForks: ["GET /gists/{gist_id}/forks"], + listPublic: ["GET /gists/public"], + listStarred: ["GET /gists/starred"], + star: ["PUT /gists/{gist_id}/star"], + unstar: ["DELETE /gists/{gist_id}/star"], + update: ["PATCH /gists/{gist_id}"], + updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"] + }, + git: { + createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], + createCommit: ["POST /repos/{owner}/{repo}/git/commits"], + createRef: ["POST /repos/{owner}/{repo}/git/refs"], + createTag: ["POST /repos/{owner}/{repo}/git/tags"], + createTree: ["POST /repos/{owner}/{repo}/git/trees"], + deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], + getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], + getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], + getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], + getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], + getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], + listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], + updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"] + }, + gitignore: { + getAllTemplates: ["GET /gitignore/templates"], + getTemplate: ["GET /gitignore/templates/{name}"] + }, + interactions: { + getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"], + getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"], + getRestrictionsForYourPublicRepos: ["GET /user/interaction-limits"], + removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"], + removeRestrictionsForRepo: ["DELETE /repos/{owner}/{repo}/interaction-limits"], + removeRestrictionsForYourPublicRepos: ["DELETE /user/interaction-limits"], + setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"], + setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"], + setRestrictionsForYourPublicRepos: ["PUT /user/interaction-limits"] + }, + issues: { + addAssignees: ["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"], + addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], + checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], + create: ["POST /repos/{owner}/{repo}/issues"], + createComment: ["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"], + createLabel: ["POST /repos/{owner}/{repo}/labels"], + createMilestone: ["POST /repos/{owner}/{repo}/milestones"], + deleteComment: ["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"], + deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], + deleteMilestone: ["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"], + get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], + getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], + getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], + getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], + getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], + list: ["GET /issues"], + listAssignees: ["GET /repos/{owner}/{repo}/assignees"], + listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], + listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], + listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], + listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], + listEventsForTimeline: ["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", { + mediaType: { + previews: ["mockingbird"] + } + }], + listForAuthenticatedUser: ["GET /user/issues"], + listForOrg: ["GET /orgs/{org}/issues"], + listForRepo: ["GET /repos/{owner}/{repo}/issues"], + listLabelsForMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"], + listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], + listLabelsOnIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"], + listMilestones: ["GET /repos/{owner}/{repo}/milestones"], + lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], + removeAllLabels: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"], + removeAssignees: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"], + removeLabel: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"], + setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], + unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], + update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], + updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], + updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], + updateMilestone: ["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"] + }, + licenses: { + get: ["GET /licenses/{license}"], + getAllCommonlyUsed: ["GET /licenses"], + getForRepo: ["GET /repos/{owner}/{repo}/license"] + }, + markdown: { + render: ["POST /markdown"], + renderRaw: ["POST /markdown/raw", { + headers: { + "content-type": "text/plain; charset=utf-8" + } + }] + }, + meta: { + get: ["GET /meta"], + getOctocat: ["GET /octocat"], + getZen: ["GET /zen"], + root: ["GET /"] + }, + migrations: { + cancelImport: ["DELETE /repos/{owner}/{repo}/import"], + deleteArchiveForAuthenticatedUser: ["DELETE /user/migrations/{migration_id}/archive", { + mediaType: { + previews: ["wyandotte"] + } + }], + deleteArchiveForOrg: ["DELETE /orgs/{org}/migrations/{migration_id}/archive", { + mediaType: { + previews: ["wyandotte"] + } + }], + downloadArchiveForOrg: ["GET /orgs/{org}/migrations/{migration_id}/archive", { + mediaType: { + previews: ["wyandotte"] + } + }], + getArchiveForAuthenticatedUser: ["GET /user/migrations/{migration_id}/archive", { + mediaType: { + previews: ["wyandotte"] + } + }], + getCommitAuthors: ["GET /repos/{owner}/{repo}/import/authors"], + getImportStatus: ["GET /repos/{owner}/{repo}/import"], + getLargeFiles: ["GET /repos/{owner}/{repo}/import/large_files"], + getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}", { + mediaType: { + previews: ["wyandotte"] + } + }], + getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}", { + mediaType: { + previews: ["wyandotte"] + } + }], + listForAuthenticatedUser: ["GET /user/migrations", { + mediaType: { + previews: ["wyandotte"] + } + }], + listForOrg: ["GET /orgs/{org}/migrations", { + mediaType: { + previews: ["wyandotte"] + } + }], + listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories", { + mediaType: { + previews: ["wyandotte"] + } + }], + listReposForUser: ["GET /user/migrations/{migration_id}/repositories", { + mediaType: { + previews: ["wyandotte"] + } + }], + mapCommitAuthor: ["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"], + setLfsPreference: ["PATCH /repos/{owner}/{repo}/import/lfs"], + startForAuthenticatedUser: ["POST /user/migrations"], + startForOrg: ["POST /orgs/{org}/migrations"], + startImport: ["PUT /repos/{owner}/{repo}/import"], + unlockRepoForAuthenticatedUser: ["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock", { + mediaType: { + previews: ["wyandotte"] + } + }], + unlockRepoForOrg: ["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock", { + mediaType: { + previews: ["wyandotte"] + } + }], + updateImport: ["PATCH /repos/{owner}/{repo}/import"] + }, + orgs: { + blockUser: ["PUT /orgs/{org}/blocks/{username}"], + checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], + checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], + checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], + convertMemberToOutsideCollaborator: ["PUT /orgs/{org}/outside_collaborators/{username}"], + createInvitation: ["POST /orgs/{org}/invitations"], + createWebhook: ["POST /orgs/{org}/hooks"], + deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], + get: ["GET /orgs/{org}"], + getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], + getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], + getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], + getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"], + list: ["GET /organizations"], + listAppInstallations: ["GET /orgs/{org}/installations"], + listBlockedUsers: ["GET /orgs/{org}/blocks"], + listForAuthenticatedUser: ["GET /user/orgs"], + listForUser: ["GET /users/{username}/orgs"], + listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], + listMembers: ["GET /orgs/{org}/members"], + listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], + listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], + listPendingInvitations: ["GET /orgs/{org}/invitations"], + listPublicMembers: ["GET /orgs/{org}/public_members"], + listWebhooks: ["GET /orgs/{org}/hooks"], + pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], + removeMember: ["DELETE /orgs/{org}/members/{username}"], + removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], + removeOutsideCollaborator: ["DELETE /orgs/{org}/outside_collaborators/{username}"], + removePublicMembershipForAuthenticatedUser: ["DELETE /orgs/{org}/public_members/{username}"], + setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], + setPublicMembershipForAuthenticatedUser: ["PUT /orgs/{org}/public_members/{username}"], + unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], + update: ["PATCH /orgs/{org}"], + updateMembershipForAuthenticatedUser: ["PATCH /user/memberships/orgs/{org}"], + updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"], + updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"] + }, + projects: { + addCollaborator: ["PUT /projects/{project_id}/collaborators/{username}", { + mediaType: { + previews: ["inertia"] + } + }], + createCard: ["POST /projects/columns/{column_id}/cards", { + mediaType: { + previews: ["inertia"] + } + }], + createColumn: ["POST /projects/{project_id}/columns", { + mediaType: { + previews: ["inertia"] + } + }], + createForAuthenticatedUser: ["POST /user/projects", { + mediaType: { + previews: ["inertia"] + } + }], + createForOrg: ["POST /orgs/{org}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + createForRepo: ["POST /repos/{owner}/{repo}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + delete: ["DELETE /projects/{project_id}", { + mediaType: { + previews: ["inertia"] + } + }], + deleteCard: ["DELETE /projects/columns/cards/{card_id}", { + mediaType: { + previews: ["inertia"] + } + }], + deleteColumn: ["DELETE /projects/columns/{column_id}", { + mediaType: { + previews: ["inertia"] + } + }], + get: ["GET /projects/{project_id}", { + mediaType: { + previews: ["inertia"] + } + }], + getCard: ["GET /projects/columns/cards/{card_id}", { + mediaType: { + previews: ["inertia"] + } + }], + getColumn: ["GET /projects/columns/{column_id}", { + mediaType: { + previews: ["inertia"] + } + }], + getPermissionForUser: ["GET /projects/{project_id}/collaborators/{username}/permission", { + mediaType: { + previews: ["inertia"] + } + }], + listCards: ["GET /projects/columns/{column_id}/cards", { + mediaType: { + previews: ["inertia"] + } + }], + listCollaborators: ["GET /projects/{project_id}/collaborators", { + mediaType: { + previews: ["inertia"] + } + }], + listColumns: ["GET /projects/{project_id}/columns", { + mediaType: { + previews: ["inertia"] + } + }], + listForOrg: ["GET /orgs/{org}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + listForRepo: ["GET /repos/{owner}/{repo}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + listForUser: ["GET /users/{username}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + moveCard: ["POST /projects/columns/cards/{card_id}/moves", { + mediaType: { + previews: ["inertia"] + } + }], + moveColumn: ["POST /projects/columns/{column_id}/moves", { + mediaType: { + previews: ["inertia"] + } + }], + removeCollaborator: ["DELETE /projects/{project_id}/collaborators/{username}", { + mediaType: { + previews: ["inertia"] + } + }], + update: ["PATCH /projects/{project_id}", { + mediaType: { + previews: ["inertia"] + } + }], + updateCard: ["PATCH /projects/columns/cards/{card_id}", { + mediaType: { + previews: ["inertia"] + } + }], + updateColumn: ["PATCH /projects/columns/{column_id}", { + mediaType: { + previews: ["inertia"] + } + }] + }, + pulls: { + checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + create: ["POST /repos/{owner}/{repo}/pulls"], + createReplyForReviewComment: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"], + createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + createReviewComment: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"], + deletePendingReview: ["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"], + deleteReviewComment: ["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"], + dismissReview: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"], + get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], + getReview: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"], + getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], + list: ["GET /repos/{owner}/{repo}/pulls"], + listCommentsForReview: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"], + listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], + listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], + listRequestedReviewers: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"], + listReviewComments: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"], + listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], + listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + removeRequestedReviewers: ["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"], + requestReviewers: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"], + submitReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"], + update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], + updateBranch: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch", { + mediaType: { + previews: ["lydian"] + } + }], + updateReview: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"], + updateReviewComment: ["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"] + }, + rateLimit: { + get: ["GET /rate_limit"] + }, + reactions: { + createForCommitComment: ["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + createForIssue: ["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + createForIssueComment: ["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + createForPullRequestReviewComment: ["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + createForTeamDiscussionCommentInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + createForTeamDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForIssue: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForIssueComment: ["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForPullRequestComment: ["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForTeamDiscussion: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForTeamDiscussionComment: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteLegacy: ["DELETE /reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }, { + deprecated: "octokit.reactions.deleteLegacy() is deprecated, see https://docs.github.com/v3/reactions/#delete-a-reaction-legacy" + }], + listForCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + listForIssueComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + listForPullRequestReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + listForTeamDiscussionCommentInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + listForTeamDiscussionInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }] + }, + repos: { + acceptInvitation: ["PATCH /user/repository_invitations/{invitation_id}"], + addAppAccessRestrictions: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { + mapToData: "apps" + }], + addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], + addStatusCheckContexts: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { + mapToData: "contexts" + }], + addTeamAccessRestrictions: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { + mapToData: "teams" + }], + addUserAccessRestrictions: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { + mapToData: "users" + }], + checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], + checkVulnerabilityAlerts: ["GET /repos/{owner}/{repo}/vulnerability-alerts", { + mediaType: { + previews: ["dorian"] + } + }], + compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], + createCommitComment: ["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"], + createCommitSignatureProtection: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", { + mediaType: { + previews: ["zzzax"] + } + }], + createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], + createDeployKey: ["POST /repos/{owner}/{repo}/keys"], + createDeployment: ["POST /repos/{owner}/{repo}/deployments"], + createDeploymentStatus: ["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"], + createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], + createForAuthenticatedUser: ["POST /user/repos"], + createFork: ["POST /repos/{owner}/{repo}/forks"], + createInOrg: ["POST /orgs/{org}/repos"], + createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], + createPagesSite: ["POST /repos/{owner}/{repo}/pages", { + mediaType: { + previews: ["switcheroo"] + } + }], + createRelease: ["POST /repos/{owner}/{repo}/releases"], + createUsingTemplate: ["POST /repos/{template_owner}/{template_repo}/generate", { + mediaType: { + previews: ["baptiste"] + } + }], + createWebhook: ["POST /repos/{owner}/{repo}/hooks"], + declineInvitation: ["DELETE /user/repository_invitations/{invitation_id}"], + delete: ["DELETE /repos/{owner}/{repo}"], + deleteAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"], + deleteAdminBranchProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"], + deleteBranchProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"], + deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], + deleteCommitSignatureProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", { + mediaType: { + previews: ["zzzax"] + } + }], + deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], + deleteDeployment: ["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"], + deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], + deleteInvitation: ["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"], + deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages", { + mediaType: { + previews: ["switcheroo"] + } + }], + deletePullRequestReviewProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"], + deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], + deleteReleaseAsset: ["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"], + deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], + disableAutomatedSecurityFixes: ["DELETE /repos/{owner}/{repo}/automated-security-fixes", { + mediaType: { + previews: ["london"] + } + }], + disableVulnerabilityAlerts: ["DELETE /repos/{owner}/{repo}/vulnerability-alerts", { + mediaType: { + previews: ["dorian"] + } + }], + downloadArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}", {}, { + renamed: ["repos", "downloadZipballArchive"] + }], + downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"], + downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"], + enableAutomatedSecurityFixes: ["PUT /repos/{owner}/{repo}/automated-security-fixes", { + mediaType: { + previews: ["london"] + } + }], + enableVulnerabilityAlerts: ["PUT /repos/{owner}/{repo}/vulnerability-alerts", { + mediaType: { + previews: ["dorian"] + } + }], + get: ["GET /repos/{owner}/{repo}"], + getAccessRestrictions: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"], + getAdminBranchProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"], + getAllStatusCheckContexts: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"], + getAllTopics: ["GET /repos/{owner}/{repo}/topics", { + mediaType: { + previews: ["mercy"] + } + }], + getAppsWithAccessToProtectedBranch: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"], + getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], + getBranchProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection"], + getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], + getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], + getCollaboratorPermissionLevel: ["GET /repos/{owner}/{repo}/collaborators/{username}/permission"], + getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], + getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], + getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], + getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], + getCommitSignatureProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", { + mediaType: { + previews: ["zzzax"] + } + }], + getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], + getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], + getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], + getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], + getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], + getDeploymentStatus: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"], + getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], + getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], + getPages: ["GET /repos/{owner}/{repo}/pages"], + getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], + getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], + getPullRequestReviewProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"], + getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], + getReadme: ["GET /repos/{owner}/{repo}/readme"], + getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], + getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], + getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], + getStatusChecksProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"], + getTeamsWithAccessToProtectedBranch: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"], + getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], + getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], + getUsersWithAccessToProtectedBranch: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"], + getViews: ["GET /repos/{owner}/{repo}/traffic/views"], + getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], + getWebhookConfigForRepo: ["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"], + listBranches: ["GET /repos/{owner}/{repo}/branches"], + listBranchesForHeadCommit: ["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", { + mediaType: { + previews: ["groot"] + } + }], + listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], + listCommentsForCommit: ["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"], + listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], + listCommitStatusesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/statuses"], + listCommits: ["GET /repos/{owner}/{repo}/commits"], + listContributors: ["GET /repos/{owner}/{repo}/contributors"], + listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], + listDeploymentStatuses: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"], + listDeployments: ["GET /repos/{owner}/{repo}/deployments"], + listForAuthenticatedUser: ["GET /user/repos"], + listForOrg: ["GET /orgs/{org}/repos"], + listForUser: ["GET /users/{username}/repos"], + listForks: ["GET /repos/{owner}/{repo}/forks"], + listInvitations: ["GET /repos/{owner}/{repo}/invitations"], + listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], + listLanguages: ["GET /repos/{owner}/{repo}/languages"], + listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], + listPublic: ["GET /repositories"], + listPullRequestsAssociatedWithCommit: ["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", { + mediaType: { + previews: ["groot"] + } + }], + listReleaseAssets: ["GET /repos/{owner}/{repo}/releases/{release_id}/assets"], + listReleases: ["GET /repos/{owner}/{repo}/releases"], + listTags: ["GET /repos/{owner}/{repo}/tags"], + listTeams: ["GET /repos/{owner}/{repo}/teams"], + listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], + merge: ["POST /repos/{owner}/{repo}/merges"], + pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], + removeAppAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { + mapToData: "apps" + }], + removeCollaborator: ["DELETE /repos/{owner}/{repo}/collaborators/{username}"], + removeStatusCheckContexts: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { + mapToData: "contexts" + }], + removeStatusCheckProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"], + removeTeamAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { + mapToData: "teams" + }], + removeUserAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { + mapToData: "users" + }], + replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics", { + mediaType: { + previews: ["mercy"] + } + }], + requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], + setAdminBranchProtection: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"], + setAppAccessRestrictions: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { + mapToData: "apps" + }], + setStatusCheckContexts: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { + mapToData: "contexts" + }], + setTeamAccessRestrictions: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { + mapToData: "teams" + }], + setUserAccessRestrictions: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { + mapToData: "users" + }], + testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], + transfer: ["POST /repos/{owner}/{repo}/transfer"], + update: ["PATCH /repos/{owner}/{repo}"], + updateBranchProtection: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection"], + updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], + updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], + updateInvitation: ["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"], + updatePullRequestReviewProtection: ["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"], + updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], + updateReleaseAsset: ["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"], + updateStatusCheckPotection: ["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", {}, { + renamed: ["repos", "updateStatusCheckProtection"] + }], + updateStatusCheckProtection: ["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"], + updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], + updateWebhookConfigForRepo: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"], + uploadReleaseAsset: ["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", { + baseUrl: "https://uploads.github.com" + }] + }, + search: { + code: ["GET /search/code"], + commits: ["GET /search/commits", { + mediaType: { + previews: ["cloak"] + } + }], + issuesAndPullRequests: ["GET /search/issues"], + labels: ["GET /search/labels"], + repos: ["GET /search/repositories"], + topics: ["GET /search/topics", { + mediaType: { + previews: ["mercy"] + } + }], + users: ["GET /search/users"] + }, + secretScanning: { + getAlert: ["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"], + updateAlert: ["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"] + }, + teams: { + addOrUpdateMembershipForUserInOrg: ["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"], + addOrUpdateProjectPermissionsInOrg: ["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}", { + mediaType: { + previews: ["inertia"] + } + }], + addOrUpdateRepoPermissionsInOrg: ["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"], + checkPermissionsForProjectInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}", { + mediaType: { + previews: ["inertia"] + } + }], + checkPermissionsForRepoInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"], + create: ["POST /orgs/{org}/teams"], + createDiscussionCommentInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"], + createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], + deleteDiscussionCommentInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"], + deleteDiscussionInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"], + deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], + getByName: ["GET /orgs/{org}/teams/{team_slug}"], + getDiscussionCommentInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"], + getDiscussionInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"], + getMembershipForUserInOrg: ["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"], + list: ["GET /orgs/{org}/teams"], + listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], + listDiscussionCommentsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"], + listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], + listForAuthenticatedUser: ["GET /user/teams"], + listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], + listPendingInvitationsInOrg: ["GET /orgs/{org}/teams/{team_slug}/invitations"], + listProjectsInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], + removeMembershipForUserInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"], + removeProjectInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"], + removeRepoInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"], + updateDiscussionCommentInOrg: ["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"], + updateDiscussionInOrg: ["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"], + updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"] + }, + users: { + addEmailForAuthenticated: ["POST /user/emails"], + block: ["PUT /user/blocks/{username}"], + checkBlocked: ["GET /user/blocks/{username}"], + checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], + checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], + createGpgKeyForAuthenticated: ["POST /user/gpg_keys"], + createPublicSshKeyForAuthenticated: ["POST /user/keys"], + deleteEmailForAuthenticated: ["DELETE /user/emails"], + deleteGpgKeyForAuthenticated: ["DELETE /user/gpg_keys/{gpg_key_id}"], + deletePublicSshKeyForAuthenticated: ["DELETE /user/keys/{key_id}"], + follow: ["PUT /user/following/{username}"], + getAuthenticated: ["GET /user"], + getByUsername: ["GET /users/{username}"], + getContextForUser: ["GET /users/{username}/hovercard"], + getGpgKeyForAuthenticated: ["GET /user/gpg_keys/{gpg_key_id}"], + getPublicSshKeyForAuthenticated: ["GET /user/keys/{key_id}"], + list: ["GET /users"], + listBlockedByAuthenticated: ["GET /user/blocks"], + listEmailsForAuthenticated: ["GET /user/emails"], + listFollowedByAuthenticated: ["GET /user/following"], + listFollowersForAuthenticatedUser: ["GET /user/followers"], + listFollowersForUser: ["GET /users/{username}/followers"], + listFollowingForUser: ["GET /users/{username}/following"], + listGpgKeysForAuthenticated: ["GET /user/gpg_keys"], + listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], + listPublicEmailsForAuthenticated: ["GET /user/public_emails"], + listPublicKeysForUser: ["GET /users/{username}/keys"], + listPublicSshKeysForAuthenticated: ["GET /user/keys"], + setPrimaryEmailVisibilityForAuthenticated: ["PATCH /user/email/visibility"], + unblock: ["DELETE /user/blocks/{username}"], + unfollow: ["DELETE /user/following/{username}"], + updateAuthenticated: ["PATCH /user"] + } +}; + +const VERSION = "4.4.1"; + +function endpointsToMethods(octokit, endpointsMap) { + const newMethods = {}; + + for (const [scope, endpoints] of Object.entries(endpointsMap)) { + for (const [methodName, endpoint] of Object.entries(endpoints)) { + const [route, defaults, decorations] = endpoint; + const [method, url] = route.split(/ /); + const endpointDefaults = Object.assign({ + method, + url + }, defaults); + + if (!newMethods[scope]) { + newMethods[scope] = {}; + } + + const scopeMethods = newMethods[scope]; + + if (decorations) { + scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations); + continue; + } + + scopeMethods[methodName] = octokit.request.defaults(endpointDefaults); + } + } + + return newMethods; +} + +function decorate(octokit, scope, methodName, defaults, decorations) { + const requestWithDefaults = octokit.request.defaults(defaults); + /* istanbul ignore next */ + + function withDecorations(...args) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData` + + if (decorations.mapToData) { + options = Object.assign({}, options, { + data: options[decorations.mapToData], + [decorations.mapToData]: undefined + }); + return requestWithDefaults(options); + } + + if (decorations.renamed) { + const [newScope, newMethodName] = decorations.renamed; + octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`); + } + + if (decorations.deprecated) { + octokit.log.warn(decorations.deprecated); + } + + if (decorations.renamedParameters) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + const options = requestWithDefaults.endpoint.merge(...args); + + for (const [name, alias] of Object.entries(decorations.renamedParameters)) { + if (name in options) { + octokit.log.warn(`"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead`); + + if (!(alias in options)) { + options[alias] = options[name]; + } + + delete options[name]; + } + } + + return requestWithDefaults(options); + } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + + + return requestWithDefaults(...args); + } + + return Object.assign(withDecorations, requestWithDefaults); +} + +/** + * This plugin is a 1:1 copy of internal @octokit/rest plugins. The primary + * goal is to rebuild @octokit/rest on top of @octokit/core. Once that is + * done, we will remove the registerEndpoints methods and return the methods + * directly as with the other plugins. At that point we will also remove the + * legacy workarounds and deprecations. + * + * See the plan at + * https://github.com/octokit/plugin-rest-endpoint-methods.js/pull/1 + */ + +function restEndpointMethods(octokit) { + return endpointsToMethods(octokit, Endpoints); +} +restEndpointMethods.VERSION = VERSION; + +exports.restEndpointMethods = restEndpointMethods; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js.map b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js.map new file mode 100644 index 000000000..570c48be0 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/generated/endpoints.js","../dist-src/version.js","../dist-src/endpoints-to-methods.js","../dist-src/index.js"],"sourcesContent":["const Endpoints = {\n actions: {\n addSelectedRepoToOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\",\n ],\n cancelWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\",\n ],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\n \"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\",\n ],\n createRegistrationTokenForOrg: [\n \"POST /orgs/{org}/actions/runners/registration-token\",\n ],\n createRegistrationTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/registration-token\",\n ],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/remove-token\",\n ],\n createWorkflowDispatch: [\n \"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\",\n ],\n deleteArtifact: [\n \"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\",\n ],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\n \"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\",\n ],\n deleteSelfHostedRunnerFromOrg: [\n \"DELETE /orgs/{org}/actions/runners/{runner_id}\",\n ],\n deleteSelfHostedRunnerFromRepo: [\n \"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\",\n ],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\n \"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\",\n ],\n disableSelectedRepositoryGithubActionsOrganization: [\n \"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\",\n ],\n disableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\",\n ],\n downloadArtifact: [\n \"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\",\n ],\n downloadJobLogsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\",\n ],\n downloadWorkflowRunLogs: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\",\n ],\n enableSelectedRepositoryGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\",\n ],\n enableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\",\n ],\n getAllowedActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/selected-actions\",\n ],\n getAllowedActionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\",\n ],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getGithubActionsPermissionsOrganization: [\n \"GET /orgs/{org}/actions/permissions\",\n ],\n getGithubActionsPermissionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions\",\n ],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getRepoPermissions: [\n \"GET /repos/{owner}/{repo}/actions/permissions\",\n {},\n { renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"] },\n ],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\",\n ],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunUsage: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\",\n ],\n getWorkflowUsage: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\",\n ],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listJobsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\",\n ],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/downloads\",\n ],\n listSelectedReposForOrgSecret: [\n \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\",\n ],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/repositories\",\n ],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\",\n ],\n listWorkflowRuns: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\",\n ],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n removeSelectedRepoFromOrgSecret: [\n \"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\",\n ],\n setAllowedActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/selected-actions\",\n ],\n setAllowedActionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\",\n ],\n setGithubActionsPermissionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions\",\n ],\n setGithubActionsPermissionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions\",\n ],\n setSelectedReposForOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\",\n ],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories\",\n ],\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\n \"DELETE /notifications/threads/{thread_id}/subscription\",\n ],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\n \"GET /notifications/threads/{thread_id}/subscription\",\n ],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\n \"GET /users/{username}/events/orgs/{org}\",\n ],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\n \"GET /users/{username}/received_events/public\",\n ],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/notifications\",\n ],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\n \"PUT /notifications/threads/{thread_id}/subscription\",\n ],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"],\n },\n apps: {\n addRepoToInstallation: [\n \"PUT /user/installations/{installation_id}/repositories/{repository_id}\",\n ],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createContentAttachment: [\n \"POST /content_references/{content_reference_id}/attachments\",\n { mediaType: { previews: [\"corsair\"] } },\n ],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\n \"POST /app/installations/{installation_id}/access_tokens\",\n ],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\n \"GET /marketplace_listing/accounts/{account_id}\",\n ],\n getSubscriptionPlanForAccountStubbed: [\n \"GET /marketplace_listing/stubbed/accounts/{account_id}\",\n ],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\n \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\",\n ],\n listInstallationReposForAuthenticatedUser: [\n \"GET /user/installations/{installation_id}/repositories\",\n ],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\n \"GET /user/marketplace_purchases/stubbed\",\n ],\n removeRepoFromInstallation: [\n \"DELETE /user/installations/{installation_id}/repositories/{repository_id}\",\n ],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\n \"DELETE /app/installations/{installation_id}/suspended\",\n ],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"],\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\n \"GET /users/{username}/settings/billing/actions\",\n ],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\n \"GET /users/{username}/settings/billing/packages\",\n ],\n getSharedStorageBillingOrg: [\n \"GET /orgs/{org}/settings/billing/shared-storage\",\n ],\n getSharedStorageBillingUser: [\n \"GET /users/{username}/settings/billing/shared-storage\",\n ],\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\n \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\",\n ],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\n \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\",\n ],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestSuite: [\n \"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\",\n ],\n setSuitesPreferences: [\n \"PATCH /repos/{owner}/{repo}/check-suites/preferences\",\n ],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n },\n codeScanning: {\n getAlert: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\",\n {},\n { renamedParameters: { alert_id: \"alert_number\" } },\n ],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\",\n ],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"],\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\n \"GET /codes_of_conduct\",\n { mediaType: { previews: [\"scarlet-witch\"] } },\n ],\n getConductCode: [\n \"GET /codes_of_conduct/{key}\",\n { mediaType: { previews: [\"scarlet-witch\"] } },\n ],\n getForRepo: [\n \"GET /repos/{owner}/{repo}/community/code_of_conduct\",\n { mediaType: { previews: [\"scarlet-witch\"] } },\n ],\n },\n emojis: { get: [\"GET /emojis\"] },\n enterpriseAdmin: {\n disableSelectedOrganizationGithubActionsEnterprise: [\n \"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\",\n ],\n enableSelectedOrganizationGithubActionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\",\n ],\n getAllowedActionsEnterprise: [\n \"GET /enterprises/{enterprise}/actions/permissions/selected-actions\",\n ],\n getGithubActionsPermissionsEnterprise: [\n \"GET /enterprises/{enterprise}/actions/permissions\",\n ],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\n \"GET /enterprises/{enterprise}/actions/permissions/organizations\",\n ],\n setAllowedActionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\",\n ],\n setGithubActionsPermissionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions\",\n ],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions/organizations\",\n ],\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"],\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"],\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"],\n },\n interactions: {\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\"GET /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\n \"DELETE /repos/{owner}/{repo}/interaction-limits\",\n ],\n removeRestrictionsForYourPublicRepos: [\"DELETE /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\"PUT /user/interaction-limits\"],\n },\n issues: {\n addAssignees: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\",\n ],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\",\n ],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\",\n ],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\n \"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\",\n ],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\",\n { mediaType: { previews: [\"mockingbird\"] } },\n ],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\n \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\",\n ],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\",\n ],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\",\n ],\n removeAssignees: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\",\n ],\n removeLabel: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\",\n ],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\n \"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\",\n ],\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"],\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\n \"POST /markdown/raw\",\n { headers: { \"content-type\": \"text/plain; charset=utf-8\" } },\n ],\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"],\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n deleteArchiveForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n downloadArchiveForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n getArchiveForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n getStatusForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listForAuthenticatedUser: [\n \"GET /user/migrations\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listForOrg: [\n \"GET /orgs/{org}/migrations\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listReposForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}/repositories\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listReposForUser: [\n \"GET /user/migrations/{migration_id}/repositories\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n unlockRepoForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"],\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\n \"PUT /orgs/{org}/outside_collaborators/{username}\",\n ],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\n \"DELETE /orgs/{org}/outside_collaborators/{username}\",\n ],\n removePublicMembershipForAuthenticatedUser: [\n \"DELETE /orgs/{org}/public_members/{username}\",\n ],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\n \"PUT /orgs/{org}/public_members/{username}\",\n ],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\n \"PATCH /user/memberships/orgs/{org}\",\n ],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"],\n },\n projects: {\n addCollaborator: [\n \"PUT /projects/{project_id}/collaborators/{username}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createCard: [\n \"POST /projects/columns/{column_id}/cards\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createColumn: [\n \"POST /projects/{project_id}/columns\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createForAuthenticatedUser: [\n \"POST /user/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createForOrg: [\n \"POST /orgs/{org}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createForRepo: [\n \"POST /repos/{owner}/{repo}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n delete: [\n \"DELETE /projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n deleteCard: [\n \"DELETE /projects/columns/cards/{card_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n deleteColumn: [\n \"DELETE /projects/columns/{column_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n get: [\n \"GET /projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n getCard: [\n \"GET /projects/columns/cards/{card_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n getColumn: [\n \"GET /projects/columns/{column_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n getPermissionForUser: [\n \"GET /projects/{project_id}/collaborators/{username}/permission\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listCards: [\n \"GET /projects/columns/{column_id}/cards\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listCollaborators: [\n \"GET /projects/{project_id}/collaborators\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listColumns: [\n \"GET /projects/{project_id}/columns\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listForOrg: [\n \"GET /orgs/{org}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listForRepo: [\n \"GET /repos/{owner}/{repo}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listForUser: [\n \"GET /users/{username}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n moveCard: [\n \"POST /projects/columns/cards/{card_id}/moves\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n moveColumn: [\n \"POST /projects/columns/{column_id}/moves\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n removeCollaborator: [\n \"DELETE /projects/{project_id}/collaborators/{username}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n update: [\n \"PATCH /projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n updateCard: [\n \"PATCH /projects/columns/cards/{card_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n updateColumn: [\n \"PATCH /projects/columns/{column_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\",\n ],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n ],\n deletePendingReview: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\",\n ],\n deleteReviewComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\",\n ],\n dismissReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\",\n ],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\",\n ],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\",\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n ],\n listReviewComments: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n ],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n ],\n requestReviewers: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n ],\n submitReview: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\",\n ],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\",\n { mediaType: { previews: [\"lydian\"] } },\n ],\n updateReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\",\n ],\n updateReviewComment: [\n \"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\",\n ],\n },\n rateLimit: { get: [\"GET /rate_limit\"] },\n reactions: {\n createForCommitComment: [\n \"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForIssue: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForIssueComment: [\n \"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForPullRequestReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForTeamDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForTeamDiscussionInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForCommitComment: [\n \"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForIssue: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForIssueComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForPullRequestComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForTeamDiscussion: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForTeamDiscussionComment: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteLegacy: [\n \"DELETE /reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n {\n deprecated: \"octokit.reactions.deleteLegacy() is deprecated, see https://docs.github.com/v3/reactions/#delete-a-reaction-legacy\",\n },\n ],\n listForCommitComment: [\n \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForIssueComment: [\n \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForPullRequestReviewComment: [\n \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForTeamDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForTeamDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" },\n ],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" },\n ],\n addTeamAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" },\n ],\n addUserAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" },\n ],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\n \"GET /repos/{owner}/{repo}/vulnerability-alerts\",\n { mediaType: { previews: [\"dorian\"] } },\n ],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n createCommitComment: [\n \"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n ],\n createCommitSignatureProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\",\n { mediaType: { previews: [\"zzzax\"] } },\n ],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\n \"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\",\n ],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\n \"POST /repos/{owner}/{repo}/pages\",\n { mediaType: { previews: [\"switcheroo\"] } },\n ],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createUsingTemplate: [\n \"POST /repos/{template_owner}/{template_repo}/generate\",\n { mediaType: { previews: [\"baptiste\"] } },\n ],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\",\n ],\n deleteAdminBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\",\n ],\n deleteBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\",\n ],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\",\n { mediaType: { previews: [\"zzzax\"] } },\n ],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\n \"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\",\n ],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\n \"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\",\n ],\n deletePagesSite: [\n \"DELETE /repos/{owner}/{repo}/pages\",\n { mediaType: { previews: [\"switcheroo\"] } },\n ],\n deletePullRequestReviewProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\",\n ],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\n \"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\",\n ],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\n \"DELETE /repos/{owner}/{repo}/automated-security-fixes\",\n { mediaType: { previews: [\"london\"] } },\n ],\n disableVulnerabilityAlerts: [\n \"DELETE /repos/{owner}/{repo}/vulnerability-alerts\",\n { mediaType: { previews: [\"dorian\"] } },\n ],\n downloadArchive: [\n \"GET /repos/{owner}/{repo}/zipball/{ref}\",\n {},\n { renamed: [\"repos\", \"downloadZipballArchive\"] },\n ],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\n \"PUT /repos/{owner}/{repo}/automated-security-fixes\",\n { mediaType: { previews: [\"london\"] } },\n ],\n enableVulnerabilityAlerts: [\n \"PUT /repos/{owner}/{repo}/vulnerability-alerts\",\n { mediaType: { previews: [\"dorian\"] } },\n ],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\",\n ],\n getAdminBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\",\n ],\n getAllStatusCheckContexts: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n ],\n getAllTopics: [\n \"GET /repos/{owner}/{repo}/topics\",\n { mediaType: { previews: [\"mercy\"] } },\n ],\n getAppsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n ],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection\",\n ],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\n \"GET /repos/{owner}/{repo}/collaborators/{username}/permission\",\n ],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\",\n { mediaType: { previews: [\"zzzax\"] } },\n ],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\",\n ],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\",\n ],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n ],\n getTeamsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n ],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n ],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\",\n ],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\",\n { mediaType: { previews: [\"groot\"] } },\n ],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n ],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\n \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\",\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\",\n ],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\",\n { mediaType: { previews: [\"groot\"] } },\n ],\n listReleaseAssets: [\n \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\",\n ],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n removeAppAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" },\n ],\n removeCollaborator: [\n \"DELETE /repos/{owner}/{repo}/collaborators/{username}\",\n ],\n removeStatusCheckContexts: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" },\n ],\n removeStatusCheckProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n ],\n removeTeamAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" },\n ],\n removeUserAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" },\n ],\n replaceAllTopics: [\n \"PUT /repos/{owner}/{repo}/topics\",\n { mediaType: { previews: [\"mercy\"] } },\n ],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\",\n ],\n setAppAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" },\n ],\n setStatusCheckContexts: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" },\n ],\n setTeamAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" },\n ],\n setUserAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" },\n ],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection\",\n ],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\n \"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\",\n ],\n updatePullRequestReviewProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\",\n ],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\n \"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\",\n ],\n updateStatusCheckPotection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n {},\n { renamed: [\"repos\", \"updateStatusCheckProtection\"] },\n ],\n updateStatusCheckProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n ],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\n \"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\",\n ],\n uploadReleaseAsset: [\n \"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\",\n { baseUrl: \"https://uploads.github.com\" },\n ],\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\", { mediaType: { previews: [\"cloak\"] } }],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\", { mediaType: { previews: [\"mercy\"] } }],\n users: [\"GET /search/users\"],\n },\n secretScanning: {\n getAlert: [\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\",\n ],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\",\n ],\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\",\n ],\n addOrUpdateProjectPermissionsInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n addOrUpdateRepoPermissionsInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\",\n ],\n checkPermissionsForProjectInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n checkPermissionsForRepoInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\",\n ],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n ],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\",\n ],\n deleteDiscussionInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\",\n ],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\",\n ],\n getDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\",\n ],\n getMembershipForUserInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\",\n ],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n ],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/invitations\",\n ],\n listProjectsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\",\n ],\n removeProjectInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\",\n ],\n removeRepoInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\",\n ],\n updateDiscussionCommentInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\",\n ],\n updateDiscussionInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\",\n ],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"],\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"],\n },\n};\nexport default Endpoints;\n","export const VERSION = \"4.4.1\";\n","export function endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({ method, url }, defaults);\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n const scopeMethods = newMethods[scope];\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n return newMethods;\n}\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args);\n // There are currently no other decorations than `.mapToData`\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined,\n });\n return requestWithDefaults(options);\n }\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n delete options[name];\n }\n }\n return requestWithDefaults(options);\n }\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n return requestWithDefaults(...args);\n }\n return Object.assign(withDecorations, requestWithDefaults);\n}\n","import ENDPOINTS from \"./generated/endpoints\";\nimport { VERSION } from \"./version\";\nimport { endpointsToMethods } from \"./endpoints-to-methods\";\n/**\n * This plugin is a 1:1 copy of internal @octokit/rest plugins. The primary\n * goal is to rebuild @octokit/rest on top of @octokit/core. Once that is\n * done, we will remove the registerEndpoints methods and return the methods\n * directly as with the other plugins. At that point we will also remove the\n * legacy workarounds and deprecations.\n *\n * See the plan at\n * https://github.com/octokit/plugin-rest-endpoint-methods.js/pull/1\n */\nexport function restEndpointMethods(octokit) {\n return endpointsToMethods(octokit, ENDPOINTS);\n}\nrestEndpointMethods.VERSION = VERSION;\n"],"names":["Endpoints","actions","addSelectedRepoToOrgSecret","cancelWorkflowRun","createOrUpdateOrgSecret","createOrUpdateRepoSecret","createRegistrationTokenForOrg","createRegistrationTokenForRepo","createRemoveTokenForOrg","createRemoveTokenForRepo","createWorkflowDispatch","deleteArtifact","deleteOrgSecret","deleteRepoSecret","deleteSelfHostedRunnerFromOrg","deleteSelfHostedRunnerFromRepo","deleteWorkflowRun","deleteWorkflowRunLogs","disableSelectedRepositoryGithubActionsOrganization","disableWorkflow","downloadArtifact","downloadJobLogsForWorkflowRun","downloadWorkflowRunLogs","enableSelectedRepositoryGithubActionsOrganization","enableWorkflow","getAllowedActionsOrganization","getAllowedActionsRepository","getArtifact","getGithubActionsPermissionsOrganization","getGithubActionsPermissionsRepository","getJobForWorkflowRun","getOrgPublicKey","getOrgSecret","getRepoPermissions","renamed","getRepoPublicKey","getRepoSecret","getSelfHostedRunnerForOrg","getSelfHostedRunnerForRepo","getWorkflow","getWorkflowRun","getWorkflowRunUsage","getWorkflowUsage","listArtifactsForRepo","listJobsForWorkflowRun","listOrgSecrets","listRepoSecrets","listRepoWorkflows","listRunnerApplicationsForOrg","listRunnerApplicationsForRepo","listSelectedReposForOrgSecret","listSelectedRepositoriesEnabledGithubActionsOrganization","listSelfHostedRunnersForOrg","listSelfHostedRunnersForRepo","listWorkflowRunArtifacts","listWorkflowRuns","listWorkflowRunsForRepo","reRunWorkflow","removeSelectedRepoFromOrgSecret","setAllowedActionsOrganization","setAllowedActionsRepository","setGithubActionsPermissionsOrganization","setGithubActionsPermissionsRepository","setSelectedReposForOrgSecret","setSelectedRepositoriesEnabledGithubActionsOrganization","activity","checkRepoIsStarredByAuthenticatedUser","deleteRepoSubscription","deleteThreadSubscription","getFeeds","getRepoSubscription","getThread","getThreadSubscriptionForAuthenticatedUser","listEventsForAuthenticatedUser","listNotificationsForAuthenticatedUser","listOrgEventsForAuthenticatedUser","listPublicEvents","listPublicEventsForRepoNetwork","listPublicEventsForUser","listPublicOrgEvents","listReceivedEventsForUser","listReceivedPublicEventsForUser","listRepoEvents","listRepoNotificationsForAuthenticatedUser","listReposStarredByAuthenticatedUser","listReposStarredByUser","listReposWatchedByUser","listStargazersForRepo","listWatchedReposForAuthenticatedUser","listWatchersForRepo","markNotificationsAsRead","markRepoNotificationsAsRead","markThreadAsRead","setRepoSubscription","setThreadSubscription","starRepoForAuthenticatedUser","unstarRepoForAuthenticatedUser","apps","addRepoToInstallation","checkToken","createContentAttachment","mediaType","previews","createFromManifest","createInstallationAccessToken","deleteAuthorization","deleteInstallation","deleteToken","getAuthenticated","getBySlug","getInstallation","getOrgInstallation","getRepoInstallation","getSubscriptionPlanForAccount","getSubscriptionPlanForAccountStubbed","getUserInstallation","getWebhookConfigForApp","listAccountsForPlan","listAccountsForPlanStubbed","listInstallationReposForAuthenticatedUser","listInstallations","listInstallationsForAuthenticatedUser","listPlans","listPlansStubbed","listReposAccessibleToInstallation","listSubscriptionsForAuthenticatedUser","listSubscriptionsForAuthenticatedUserStubbed","removeRepoFromInstallation","resetToken","revokeInstallationAccessToken","suspendInstallation","unsuspendInstallation","updateWebhookConfigForApp","billing","getGithubActionsBillingOrg","getGithubActionsBillingUser","getGithubPackagesBillingOrg","getGithubPackagesBillingUser","getSharedStorageBillingOrg","getSharedStorageBillingUser","checks","create","createSuite","get","getSuite","listAnnotations","listForRef","listForSuite","listSuitesForRef","rerequestSuite","setSuitesPreferences","update","codeScanning","getAlert","renamedParameters","alert_id","listAlertsForRepo","listRecentAnalyses","updateAlert","uploadSarif","codesOfConduct","getAllCodesOfConduct","getConductCode","getForRepo","emojis","enterpriseAdmin","disableSelectedOrganizationGithubActionsEnterprise","enableSelectedOrganizationGithubActionsEnterprise","getAllowedActionsEnterprise","getGithubActionsPermissionsEnterprise","listSelectedOrganizationsEnabledGithubActionsEnterprise","setAllowedActionsEnterprise","setGithubActionsPermissionsEnterprise","setSelectedOrganizationsEnabledGithubActionsEnterprise","gists","checkIsStarred","createComment","delete","deleteComment","fork","getComment","getRevision","list","listComments","listCommits","listForUser","listForks","listPublic","listStarred","star","unstar","updateComment","git","createBlob","createCommit","createRef","createTag","createTree","deleteRef","getBlob","getCommit","getRef","getTag","getTree","listMatchingRefs","updateRef","gitignore","getAllTemplates","getTemplate","interactions","getRestrictionsForOrg","getRestrictionsForRepo","getRestrictionsForYourPublicRepos","removeRestrictionsForOrg","removeRestrictionsForRepo","removeRestrictionsForYourPublicRepos","setRestrictionsForOrg","setRestrictionsForRepo","setRestrictionsForYourPublicRepos","issues","addAssignees","addLabels","checkUserCanBeAssigned","createLabel","createMilestone","deleteLabel","deleteMilestone","getEvent","getLabel","getMilestone","listAssignees","listCommentsForRepo","listEvents","listEventsForRepo","listEventsForTimeline","listForAuthenticatedUser","listForOrg","listForRepo","listLabelsForMilestone","listLabelsForRepo","listLabelsOnIssue","listMilestones","lock","removeAllLabels","removeAssignees","removeLabel","setLabels","unlock","updateLabel","updateMilestone","licenses","getAllCommonlyUsed","markdown","render","renderRaw","headers","meta","getOctocat","getZen","root","migrations","cancelImport","deleteArchiveForAuthenticatedUser","deleteArchiveForOrg","downloadArchiveForOrg","getArchiveForAuthenticatedUser","getCommitAuthors","getImportStatus","getLargeFiles","getStatusForAuthenticatedUser","getStatusForOrg","listReposForOrg","listReposForUser","mapCommitAuthor","setLfsPreference","startForAuthenticatedUser","startForOrg","startImport","unlockRepoForAuthenticatedUser","unlockRepoForOrg","updateImport","orgs","blockUser","checkBlockedUser","checkMembershipForUser","checkPublicMembershipForUser","convertMemberToOutsideCollaborator","createInvitation","createWebhook","deleteWebhook","getMembershipForAuthenticatedUser","getMembershipForUser","getWebhook","getWebhookConfigForOrg","listAppInstallations","listBlockedUsers","listInvitationTeams","listMembers","listMembershipsForAuthenticatedUser","listOutsideCollaborators","listPendingInvitations","listPublicMembers","listWebhooks","pingWebhook","removeMember","removeMembershipForUser","removeOutsideCollaborator","removePublicMembershipForAuthenticatedUser","setMembershipForUser","setPublicMembershipForAuthenticatedUser","unblockUser","updateMembershipForAuthenticatedUser","updateWebhook","updateWebhookConfigForOrg","projects","addCollaborator","createCard","createColumn","createForAuthenticatedUser","createForOrg","createForRepo","deleteCard","deleteColumn","getCard","getColumn","getPermissionForUser","listCards","listCollaborators","listColumns","moveCard","moveColumn","removeCollaborator","updateCard","updateColumn","pulls","checkIfMerged","createReplyForReviewComment","createReview","createReviewComment","deletePendingReview","deleteReviewComment","dismissReview","getReview","getReviewComment","listCommentsForReview","listFiles","listRequestedReviewers","listReviewComments","listReviewCommentsForRepo","listReviews","merge","removeRequestedReviewers","requestReviewers","submitReview","updateBranch","updateReview","updateReviewComment","rateLimit","reactions","createForCommitComment","createForIssue","createForIssueComment","createForPullRequestReviewComment","createForTeamDiscussionCommentInOrg","createForTeamDiscussionInOrg","deleteForCommitComment","deleteForIssue","deleteForIssueComment","deleteForPullRequestComment","deleteForTeamDiscussion","deleteForTeamDiscussionComment","deleteLegacy","deprecated","listForCommitComment","listForIssue","listForIssueComment","listForPullRequestReviewComment","listForTeamDiscussionCommentInOrg","listForTeamDiscussionInOrg","repos","acceptInvitation","addAppAccessRestrictions","mapToData","addStatusCheckContexts","addTeamAccessRestrictions","addUserAccessRestrictions","checkCollaborator","checkVulnerabilityAlerts","compareCommits","createCommitComment","createCommitSignatureProtection","createCommitStatus","createDeployKey","createDeployment","createDeploymentStatus","createDispatchEvent","createFork","createInOrg","createOrUpdateFileContents","createPagesSite","createRelease","createUsingTemplate","declineInvitation","deleteAccessRestrictions","deleteAdminBranchProtection","deleteBranchProtection","deleteCommitComment","deleteCommitSignatureProtection","deleteDeployKey","deleteDeployment","deleteFile","deleteInvitation","deletePagesSite","deletePullRequestReviewProtection","deleteRelease","deleteReleaseAsset","disableAutomatedSecurityFixes","disableVulnerabilityAlerts","downloadArchive","downloadTarballArchive","downloadZipballArchive","enableAutomatedSecurityFixes","enableVulnerabilityAlerts","getAccessRestrictions","getAdminBranchProtection","getAllStatusCheckContexts","getAllTopics","getAppsWithAccessToProtectedBranch","getBranch","getBranchProtection","getClones","getCodeFrequencyStats","getCollaboratorPermissionLevel","getCombinedStatusForRef","getCommitActivityStats","getCommitComment","getCommitSignatureProtection","getCommunityProfileMetrics","getContent","getContributorsStats","getDeployKey","getDeployment","getDeploymentStatus","getLatestPagesBuild","getLatestRelease","getPages","getPagesBuild","getParticipationStats","getPullRequestReviewProtection","getPunchCardStats","getReadme","getRelease","getReleaseAsset","getReleaseByTag","getStatusChecksProtection","getTeamsWithAccessToProtectedBranch","getTopPaths","getTopReferrers","getUsersWithAccessToProtectedBranch","getViews","getWebhookConfigForRepo","listBranches","listBranchesForHeadCommit","listCommentsForCommit","listCommitCommentsForRepo","listCommitStatusesForRef","listContributors","listDeployKeys","listDeploymentStatuses","listDeployments","listInvitations","listInvitationsForAuthenticatedUser","listLanguages","listPagesBuilds","listPullRequestsAssociatedWithCommit","listReleaseAssets","listReleases","listTags","listTeams","removeAppAccessRestrictions","removeStatusCheckContexts","removeStatusCheckProtection","removeTeamAccessRestrictions","removeUserAccessRestrictions","replaceAllTopics","requestPagesBuild","setAdminBranchProtection","setAppAccessRestrictions","setStatusCheckContexts","setTeamAccessRestrictions","setUserAccessRestrictions","testPushWebhook","transfer","updateBranchProtection","updateCommitComment","updateInformationAboutPagesSite","updateInvitation","updatePullRequestReviewProtection","updateRelease","updateReleaseAsset","updateStatusCheckPotection","updateStatusCheckProtection","updateWebhookConfigForRepo","uploadReleaseAsset","baseUrl","search","code","commits","issuesAndPullRequests","labels","topics","users","secretScanning","teams","addOrUpdateMembershipForUserInOrg","addOrUpdateProjectPermissionsInOrg","addOrUpdateRepoPermissionsInOrg","checkPermissionsForProjectInOrg","checkPermissionsForRepoInOrg","createDiscussionCommentInOrg","createDiscussionInOrg","deleteDiscussionCommentInOrg","deleteDiscussionInOrg","deleteInOrg","getByName","getDiscussionCommentInOrg","getDiscussionInOrg","getMembershipForUserInOrg","listChildInOrg","listDiscussionCommentsInOrg","listDiscussionsInOrg","listMembersInOrg","listPendingInvitationsInOrg","listProjectsInOrg","listReposInOrg","removeMembershipForUserInOrg","removeProjectInOrg","removeRepoInOrg","updateDiscussionCommentInOrg","updateDiscussionInOrg","updateInOrg","addEmailForAuthenticated","block","checkBlocked","checkFollowingForUser","checkPersonIsFollowedByAuthenticated","createGpgKeyForAuthenticated","createPublicSshKeyForAuthenticated","deleteEmailForAuthenticated","deleteGpgKeyForAuthenticated","deletePublicSshKeyForAuthenticated","follow","getByUsername","getContextForUser","getGpgKeyForAuthenticated","getPublicSshKeyForAuthenticated","listBlockedByAuthenticated","listEmailsForAuthenticated","listFollowedByAuthenticated","listFollowersForAuthenticatedUser","listFollowersForUser","listFollowingForUser","listGpgKeysForAuthenticated","listGpgKeysForUser","listPublicEmailsForAuthenticated","listPublicKeysForUser","listPublicSshKeysForAuthenticated","setPrimaryEmailVisibilityForAuthenticated","unblock","unfollow","updateAuthenticated","VERSION","endpointsToMethods","octokit","endpointsMap","newMethods","scope","endpoints","Object","entries","methodName","endpoint","route","defaults","decorations","method","url","split","endpointDefaults","assign","scopeMethods","decorate","request","requestWithDefaults","withDecorations","args","options","data","undefined","newScope","newMethodName","log","warn","name","alias","restEndpointMethods","ENDPOINTS"],"mappings":";;;;AAAA,MAAMA,SAAS,GAAG;AACdC,EAAAA,OAAO,EAAE;AACLC,IAAAA,0BAA0B,EAAE,CACxB,4EADwB,CADvB;AAILC,IAAAA,iBAAiB,EAAE,CACf,yDADe,CAJd;AAOLC,IAAAA,uBAAuB,EAAE,CAAC,+CAAD,CAPpB;AAQLC,IAAAA,wBAAwB,EAAE,CACtB,yDADsB,CARrB;AAWLC,IAAAA,6BAA6B,EAAE,CAC3B,qDAD2B,CAX1B;AAcLC,IAAAA,8BAA8B,EAAE,CAC5B,+DAD4B,CAd3B;AAiBLC,IAAAA,uBAAuB,EAAE,CAAC,+CAAD,CAjBpB;AAkBLC,IAAAA,wBAAwB,EAAE,CACtB,yDADsB,CAlBrB;AAqBLC,IAAAA,sBAAsB,EAAE,CACpB,uEADoB,CArBnB;AAwBLC,IAAAA,cAAc,EAAE,CACZ,8DADY,CAxBX;AA2BLC,IAAAA,eAAe,EAAE,CAAC,kDAAD,CA3BZ;AA4BLC,IAAAA,gBAAgB,EAAE,CACd,4DADc,CA5Bb;AA+BLC,IAAAA,6BAA6B,EAAE,CAC3B,gDAD2B,CA/B1B;AAkCLC,IAAAA,8BAA8B,EAAE,CAC5B,0DAD4B,CAlC3B;AAqCLC,IAAAA,iBAAiB,EAAE,CAAC,oDAAD,CArCd;AAsCLC,IAAAA,qBAAqB,EAAE,CACnB,yDADmB,CAtClB;AAyCLC,IAAAA,kDAAkD,EAAE,CAChD,qEADgD,CAzC/C;AA4CLC,IAAAA,eAAe,EAAE,CACb,mEADa,CA5CZ;AA+CLC,IAAAA,gBAAgB,EAAE,CACd,4EADc,CA/Cb;AAkDLC,IAAAA,6BAA6B,EAAE,CAC3B,sDAD2B,CAlD1B;AAqDLC,IAAAA,uBAAuB,EAAE,CACrB,sDADqB,CArDpB;AAwDLC,IAAAA,iDAAiD,EAAE,CAC/C,kEAD+C,CAxD9C;AA2DLC,IAAAA,cAAc,EAAE,CACZ,kEADY,CA3DX;AA8DLC,IAAAA,6BAA6B,EAAE,CAC3B,sDAD2B,CA9D1B;AAiELC,IAAAA,2BAA2B,EAAE,CACzB,gEADyB,CAjExB;AAoELC,IAAAA,WAAW,EAAE,CAAC,2DAAD,CApER;AAqELC,IAAAA,uCAAuC,EAAE,CACrC,qCADqC,CArEpC;AAwELC,IAAAA,qCAAqC,EAAE,CACnC,+CADmC,CAxElC;AA2ELC,IAAAA,oBAAoB,EAAE,CAAC,iDAAD,CA3EjB;AA4ELC,IAAAA,eAAe,EAAE,CAAC,4CAAD,CA5EZ;AA6ELC,IAAAA,YAAY,EAAE,CAAC,+CAAD,CA7ET;AA8ELC,IAAAA,kBAAkB,EAAE,CAChB,+CADgB,EAEhB,EAFgB,EAGhB;AAAEC,MAAAA,OAAO,EAAE,CAAC,SAAD,EAAY,uCAAZ;AAAX,KAHgB,CA9Ef;AAmFLC,IAAAA,gBAAgB,EAAE,CAAC,sDAAD,CAnFb;AAoFLC,IAAAA,aAAa,EAAE,CAAC,yDAAD,CApFV;AAqFLC,IAAAA,yBAAyB,EAAE,CAAC,6CAAD,CArFtB;AAsFLC,IAAAA,0BAA0B,EAAE,CACxB,uDADwB,CAtFvB;AAyFLC,IAAAA,WAAW,EAAE,CAAC,2DAAD,CAzFR;AA0FLC,IAAAA,cAAc,EAAE,CAAC,iDAAD,CA1FX;AA2FLC,IAAAA,mBAAmB,EAAE,CACjB,wDADiB,CA3FhB;AA8FLC,IAAAA,gBAAgB,EAAE,CACd,kEADc,CA9Fb;AAiGLC,IAAAA,oBAAoB,EAAE,CAAC,6CAAD,CAjGjB;AAkGLC,IAAAA,sBAAsB,EAAE,CACpB,sDADoB,CAlGnB;AAqGLC,IAAAA,cAAc,EAAE,CAAC,iCAAD,CArGX;AAsGLC,IAAAA,eAAe,EAAE,CAAC,2CAAD,CAtGZ;AAuGLC,IAAAA,iBAAiB,EAAE,CAAC,6CAAD,CAvGd;AAwGLC,IAAAA,4BAA4B,EAAE,CAAC,2CAAD,CAxGzB;AAyGLC,IAAAA,6BAA6B,EAAE,CAC3B,qDAD2B,CAzG1B;AA4GLC,IAAAA,6BAA6B,EAAE,CAC3B,4DAD2B,CA5G1B;AA+GLC,IAAAA,wDAAwD,EAAE,CACtD,kDADsD,CA/GrD;AAkHLC,IAAAA,2BAA2B,EAAE,CAAC,iCAAD,CAlHxB;AAmHLC,IAAAA,4BAA4B,EAAE,CAAC,2CAAD,CAnHzB;AAoHLC,IAAAA,wBAAwB,EAAE,CACtB,2DADsB,CApHrB;AAuHLC,IAAAA,gBAAgB,EAAE,CACd,gEADc,CAvHb;AA0HLC,IAAAA,uBAAuB,EAAE,CAAC,wCAAD,CA1HpB;AA2HLC,IAAAA,aAAa,EAAE,CAAC,wDAAD,CA3HV;AA4HLC,IAAAA,+BAA+B,EAAE,CAC7B,+EAD6B,CA5H5B;AA+HLC,IAAAA,6BAA6B,EAAE,CAC3B,sDAD2B,CA/H1B;AAkILC,IAAAA,2BAA2B,EAAE,CACzB,gEADyB,CAlIxB;AAqILC,IAAAA,uCAAuC,EAAE,CACrC,qCADqC,CArIpC;AAwILC,IAAAA,qCAAqC,EAAE,CACnC,+CADmC,CAxIlC;AA2ILC,IAAAA,4BAA4B,EAAE,CAC1B,4DAD0B,CA3IzB;AA8ILC,IAAAA,uDAAuD,EAAE,CACrD,kDADqD;AA9IpD,GADK;AAmJdC,EAAAA,QAAQ,EAAE;AACNC,IAAAA,qCAAqC,EAAE,CAAC,kCAAD,CADjC;AAENC,IAAAA,sBAAsB,EAAE,CAAC,2CAAD,CAFlB;AAGNC,IAAAA,wBAAwB,EAAE,CACtB,wDADsB,CAHpB;AAMNC,IAAAA,QAAQ,EAAE,CAAC,YAAD,CANJ;AAONC,IAAAA,mBAAmB,EAAE,CAAC,wCAAD,CAPf;AAQNC,IAAAA,SAAS,EAAE,CAAC,wCAAD,CARL;AASNC,IAAAA,yCAAyC,EAAE,CACvC,qDADuC,CATrC;AAYNC,IAAAA,8BAA8B,EAAE,CAAC,8BAAD,CAZ1B;AAaNC,IAAAA,qCAAqC,EAAE,CAAC,oBAAD,CAbjC;AAcNC,IAAAA,iCAAiC,EAAE,CAC/B,yCAD+B,CAd7B;AAiBNC,IAAAA,gBAAgB,EAAE,CAAC,aAAD,CAjBZ;AAkBNC,IAAAA,8BAA8B,EAAE,CAAC,qCAAD,CAlB1B;AAmBNC,IAAAA,uBAAuB,EAAE,CAAC,qCAAD,CAnBnB;AAoBNC,IAAAA,mBAAmB,EAAE,CAAC,wBAAD,CApBf;AAqBNC,IAAAA,yBAAyB,EAAE,CAAC,uCAAD,CArBrB;AAsBNC,IAAAA,+BAA+B,EAAE,CAC7B,8CAD6B,CAtB3B;AAyBNC,IAAAA,cAAc,EAAE,CAAC,kCAAD,CAzBV;AA0BNC,IAAAA,yCAAyC,EAAE,CACvC,yCADuC,CA1BrC;AA6BNC,IAAAA,mCAAmC,EAAE,CAAC,mBAAD,CA7B/B;AA8BNC,IAAAA,sBAAsB,EAAE,CAAC,+BAAD,CA9BlB;AA+BNC,IAAAA,sBAAsB,EAAE,CAAC,qCAAD,CA/BlB;AAgCNC,IAAAA,qBAAqB,EAAE,CAAC,sCAAD,CAhCjB;AAiCNC,IAAAA,oCAAoC,EAAE,CAAC,yBAAD,CAjChC;AAkCNC,IAAAA,mBAAmB,EAAE,CAAC,uCAAD,CAlCf;AAmCNC,IAAAA,uBAAuB,EAAE,CAAC,oBAAD,CAnCnB;AAoCNC,IAAAA,2BAA2B,EAAE,CAAC,yCAAD,CApCvB;AAqCNC,IAAAA,gBAAgB,EAAE,CAAC,0CAAD,CArCZ;AAsCNC,IAAAA,mBAAmB,EAAE,CAAC,wCAAD,CAtCf;AAuCNC,IAAAA,qBAAqB,EAAE,CACnB,qDADmB,CAvCjB;AA0CNC,IAAAA,4BAA4B,EAAE,CAAC,kCAAD,CA1CxB;AA2CNC,IAAAA,8BAA8B,EAAE,CAAC,qCAAD;AA3C1B,GAnJI;AAgMdC,EAAAA,IAAI,EAAE;AACFC,IAAAA,qBAAqB,EAAE,CACnB,wEADmB,CADrB;AAIFC,IAAAA,UAAU,EAAE,CAAC,sCAAD,CAJV;AAKFC,IAAAA,uBAAuB,EAAE,CACrB,6DADqB,EAErB;AAAEC,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFqB,CALvB;AASFC,IAAAA,kBAAkB,EAAE,CAAC,wCAAD,CATlB;AAUFC,IAAAA,6BAA6B,EAAE,CAC3B,yDAD2B,CAV7B;AAaFC,IAAAA,mBAAmB,EAAE,CAAC,wCAAD,CAbnB;AAcFC,IAAAA,kBAAkB,EAAE,CAAC,6CAAD,CAdlB;AAeFC,IAAAA,WAAW,EAAE,CAAC,wCAAD,CAfX;AAgBFC,IAAAA,gBAAgB,EAAE,CAAC,UAAD,CAhBhB;AAiBFC,IAAAA,SAAS,EAAE,CAAC,sBAAD,CAjBT;AAkBFC,IAAAA,eAAe,EAAE,CAAC,0CAAD,CAlBf;AAmBFC,IAAAA,kBAAkB,EAAE,CAAC,8BAAD,CAnBlB;AAoBFC,IAAAA,mBAAmB,EAAE,CAAC,wCAAD,CApBnB;AAqBFC,IAAAA,6BAA6B,EAAE,CAC3B,gDAD2B,CArB7B;AAwBFC,IAAAA,oCAAoC,EAAE,CAClC,wDADkC,CAxBpC;AA2BFC,IAAAA,mBAAmB,EAAE,CAAC,oCAAD,CA3BnB;AA4BFC,IAAAA,sBAAsB,EAAE,CAAC,sBAAD,CA5BtB;AA6BFC,IAAAA,mBAAmB,EAAE,CAAC,mDAAD,CA7BnB;AA8BFC,IAAAA,0BAA0B,EAAE,CACxB,2DADwB,CA9B1B;AAiCFC,IAAAA,yCAAyC,EAAE,CACvC,wDADuC,CAjCzC;AAoCFC,IAAAA,iBAAiB,EAAE,CAAC,wBAAD,CApCjB;AAqCFC,IAAAA,qCAAqC,EAAE,CAAC,yBAAD,CArCrC;AAsCFC,IAAAA,SAAS,EAAE,CAAC,gCAAD,CAtCT;AAuCFC,IAAAA,gBAAgB,EAAE,CAAC,wCAAD,CAvChB;AAwCFC,IAAAA,iCAAiC,EAAE,CAAC,gCAAD,CAxCjC;AAyCFC,IAAAA,qCAAqC,EAAE,CAAC,iCAAD,CAzCrC;AA0CFC,IAAAA,4CAA4C,EAAE,CAC1C,yCAD0C,CA1C5C;AA6CFC,IAAAA,0BAA0B,EAAE,CACxB,2EADwB,CA7C1B;AAgDFC,IAAAA,UAAU,EAAE,CAAC,uCAAD,CAhDV;AAiDFC,IAAAA,6BAA6B,EAAE,CAAC,4BAAD,CAjD7B;AAkDFC,IAAAA,mBAAmB,EAAE,CAAC,oDAAD,CAlDnB;AAmDFC,IAAAA,qBAAqB,EAAE,CACnB,uDADmB,CAnDrB;AAsDFC,IAAAA,yBAAyB,EAAE,CAAC,wBAAD;AAtDzB,GAhMQ;AAwPdC,EAAAA,OAAO,EAAE;AACLC,IAAAA,0BAA0B,EAAE,CAAC,0CAAD,CADvB;AAELC,IAAAA,2BAA2B,EAAE,CACzB,gDADyB,CAFxB;AAKLC,IAAAA,2BAA2B,EAAE,CAAC,2CAAD,CALxB;AAMLC,IAAAA,4BAA4B,EAAE,CAC1B,iDAD0B,CANzB;AASLC,IAAAA,0BAA0B,EAAE,CACxB,iDADwB,CATvB;AAYLC,IAAAA,2BAA2B,EAAE,CACzB,uDADyB;AAZxB,GAxPK;AAwQdC,EAAAA,MAAM,EAAE;AACJC,IAAAA,MAAM,EAAE,CAAC,uCAAD,CADJ;AAEJC,IAAAA,WAAW,EAAE,CAAC,yCAAD,CAFT;AAGJC,IAAAA,GAAG,EAAE,CAAC,qDAAD,CAHD;AAIJC,IAAAA,QAAQ,EAAE,CAAC,yDAAD,CAJN;AAKJC,IAAAA,eAAe,EAAE,CACb,iEADa,CALb;AAQJC,IAAAA,UAAU,EAAE,CAAC,oDAAD,CARR;AASJC,IAAAA,YAAY,EAAE,CACV,oEADU,CATV;AAYJC,IAAAA,gBAAgB,EAAE,CAAC,sDAAD,CAZd;AAaJC,IAAAA,cAAc,EAAE,CACZ,oEADY,CAbZ;AAgBJC,IAAAA,oBAAoB,EAAE,CAClB,sDADkB,CAhBlB;AAmBJC,IAAAA,MAAM,EAAE,CAAC,uDAAD;AAnBJ,GAxQM;AA6RdC,EAAAA,YAAY,EAAE;AACVC,IAAAA,QAAQ,EAAE,CACN,+DADM,EAEN,EAFM,EAGN;AAAEC,MAAAA,iBAAiB,EAAE;AAAEC,QAAAA,QAAQ,EAAE;AAAZ;AAArB,KAHM,CADA;AAMVC,IAAAA,iBAAiB,EAAE,CAAC,gDAAD,CANT;AAOVC,IAAAA,kBAAkB,EAAE,CAAC,kDAAD,CAPV;AAQVC,IAAAA,WAAW,EAAE,CACT,iEADS,CARH;AAWVC,IAAAA,WAAW,EAAE,CAAC,iDAAD;AAXH,GA7RA;AA0SdC,EAAAA,cAAc,EAAE;AACZC,IAAAA,oBAAoB,EAAE,CAClB,uBADkB,EAElB;AAAE5D,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFkB,CADV;AAKZ4D,IAAAA,cAAc,EAAE,CACZ,6BADY,EAEZ;AAAE7D,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFY,CALJ;AASZ6D,IAAAA,UAAU,EAAE,CACR,qDADQ,EAER;AAAE9D,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFQ;AATA,GA1SF;AAwTd8D,EAAAA,MAAM,EAAE;AAAErB,IAAAA,GAAG,EAAE,CAAC,aAAD;AAAP,GAxTM;AAyTdsB,EAAAA,eAAe,EAAE;AACbC,IAAAA,kDAAkD,EAAE,CAChD,6EADgD,CADvC;AAIbC,IAAAA,iDAAiD,EAAE,CAC/C,0EAD+C,CAJtC;AAObC,IAAAA,2BAA2B,EAAE,CACzB,oEADyB,CAPhB;AAUbC,IAAAA,qCAAqC,EAAE,CACnC,mDADmC,CAV1B;AAabC,IAAAA,uDAAuD,EAAE,CACrD,iEADqD,CAb5C;AAgBbC,IAAAA,2BAA2B,EAAE,CACzB,oEADyB,CAhBhB;AAmBbC,IAAAA,qCAAqC,EAAE,CACnC,mDADmC,CAnB1B;AAsBbC,IAAAA,sDAAsD,EAAE,CACpD,iEADoD;AAtB3C,GAzTH;AAmVdC,EAAAA,KAAK,EAAE;AACHC,IAAAA,cAAc,EAAE,CAAC,2BAAD,CADb;AAEHlC,IAAAA,MAAM,EAAE,CAAC,aAAD,CAFL;AAGHmC,IAAAA,aAAa,EAAE,CAAC,gCAAD,CAHZ;AAIHC,IAAAA,MAAM,EAAE,CAAC,yBAAD,CAJL;AAKHC,IAAAA,aAAa,EAAE,CAAC,+CAAD,CALZ;AAMHC,IAAAA,IAAI,EAAE,CAAC,6BAAD,CANH;AAOHpC,IAAAA,GAAG,EAAE,CAAC,sBAAD,CAPF;AAQHqC,IAAAA,UAAU,EAAE,CAAC,4CAAD,CART;AASHC,IAAAA,WAAW,EAAE,CAAC,4BAAD,CATV;AAUHC,IAAAA,IAAI,EAAE,CAAC,YAAD,CAVH;AAWHC,IAAAA,YAAY,EAAE,CAAC,+BAAD,CAXX;AAYHC,IAAAA,WAAW,EAAE,CAAC,8BAAD,CAZV;AAaHC,IAAAA,WAAW,EAAE,CAAC,6BAAD,CAbV;AAcHC,IAAAA,SAAS,EAAE,CAAC,4BAAD,CAdR;AAeHC,IAAAA,UAAU,EAAE,CAAC,mBAAD,CAfT;AAgBHC,IAAAA,WAAW,EAAE,CAAC,oBAAD,CAhBV;AAiBHC,IAAAA,IAAI,EAAE,CAAC,2BAAD,CAjBH;AAkBHC,IAAAA,MAAM,EAAE,CAAC,8BAAD,CAlBL;AAmBHvC,IAAAA,MAAM,EAAE,CAAC,wBAAD,CAnBL;AAoBHwC,IAAAA,aAAa,EAAE,CAAC,8CAAD;AApBZ,GAnVO;AAyWdC,EAAAA,GAAG,EAAE;AACDC,IAAAA,UAAU,EAAE,CAAC,sCAAD,CADX;AAEDC,IAAAA,YAAY,EAAE,CAAC,wCAAD,CAFb;AAGDC,IAAAA,SAAS,EAAE,CAAC,qCAAD,CAHV;AAIDC,IAAAA,SAAS,EAAE,CAAC,qCAAD,CAJV;AAKDC,IAAAA,UAAU,EAAE,CAAC,sCAAD,CALX;AAMDC,IAAAA,SAAS,EAAE,CAAC,6CAAD,CANV;AAODC,IAAAA,OAAO,EAAE,CAAC,gDAAD,CAPR;AAQDC,IAAAA,SAAS,EAAE,CAAC,oDAAD,CARV;AASDC,IAAAA,MAAM,EAAE,CAAC,yCAAD,CATP;AAUDC,IAAAA,MAAM,EAAE,CAAC,8CAAD,CAVP;AAWDC,IAAAA,OAAO,EAAE,CAAC,gDAAD,CAXR;AAYDC,IAAAA,gBAAgB,EAAE,CAAC,mDAAD,CAZjB;AAaDC,IAAAA,SAAS,EAAE,CAAC,4CAAD;AAbV,GAzWS;AAwXdC,EAAAA,SAAS,EAAE;AACPC,IAAAA,eAAe,EAAE,CAAC,0BAAD,CADV;AAEPC,IAAAA,WAAW,EAAE,CAAC,iCAAD;AAFN,GAxXG;AA4XdC,EAAAA,YAAY,EAAE;AACVC,IAAAA,qBAAqB,EAAE,CAAC,oCAAD,CADb;AAEVC,IAAAA,sBAAsB,EAAE,CAAC,8CAAD,CAFd;AAGVC,IAAAA,iCAAiC,EAAE,CAAC,8BAAD,CAHzB;AAIVC,IAAAA,wBAAwB,EAAE,CAAC,uCAAD,CAJhB;AAKVC,IAAAA,yBAAyB,EAAE,CACvB,iDADuB,CALjB;AAQVC,IAAAA,oCAAoC,EAAE,CAAC,iCAAD,CAR5B;AASVC,IAAAA,qBAAqB,EAAE,CAAC,oCAAD,CATb;AAUVC,IAAAA,sBAAsB,EAAE,CAAC,8CAAD,CAVd;AAWVC,IAAAA,iCAAiC,EAAE,CAAC,8BAAD;AAXzB,GA5XA;AAyYdC,EAAAA,MAAM,EAAE;AACJC,IAAAA,YAAY,EAAE,CACV,4DADU,CADV;AAIJC,IAAAA,SAAS,EAAE,CAAC,yDAAD,CAJP;AAKJC,IAAAA,sBAAsB,EAAE,CAAC,gDAAD,CALpB;AAMJjF,IAAAA,MAAM,EAAE,CAAC,mCAAD,CANJ;AAOJmC,IAAAA,aAAa,EAAE,CACX,2DADW,CAPX;AAUJ+C,IAAAA,WAAW,EAAE,CAAC,mCAAD,CAVT;AAWJC,IAAAA,eAAe,EAAE,CAAC,uCAAD,CAXb;AAYJ9C,IAAAA,aAAa,EAAE,CACX,2DADW,CAZX;AAeJ+C,IAAAA,WAAW,EAAE,CAAC,4CAAD,CAfT;AAgBJC,IAAAA,eAAe,EAAE,CACb,4DADa,CAhBb;AAmBJnF,IAAAA,GAAG,EAAE,CAAC,iDAAD,CAnBD;AAoBJqC,IAAAA,UAAU,EAAE,CAAC,wDAAD,CApBR;AAqBJ+C,IAAAA,QAAQ,EAAE,CAAC,oDAAD,CArBN;AAsBJC,IAAAA,QAAQ,EAAE,CAAC,yCAAD,CAtBN;AAuBJC,IAAAA,YAAY,EAAE,CAAC,yDAAD,CAvBV;AAwBJ/C,IAAAA,IAAI,EAAE,CAAC,aAAD,CAxBF;AAyBJgD,IAAAA,aAAa,EAAE,CAAC,qCAAD,CAzBX;AA0BJ/C,IAAAA,YAAY,EAAE,CAAC,0DAAD,CA1BV;AA2BJgD,IAAAA,mBAAmB,EAAE,CAAC,2CAAD,CA3BjB;AA4BJC,IAAAA,UAAU,EAAE,CAAC,wDAAD,CA5BR;AA6BJC,IAAAA,iBAAiB,EAAE,CAAC,yCAAD,CA7Bf;AA8BJC,IAAAA,qBAAqB,EAAE,CACnB,0DADmB,EAEnB;AAAErI,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,aAAD;AAAZ;AAAb,KAFmB,CA9BnB;AAkCJqI,IAAAA,wBAAwB,EAAE,CAAC,kBAAD,CAlCtB;AAmCJC,IAAAA,UAAU,EAAE,CAAC,wBAAD,CAnCR;AAoCJC,IAAAA,WAAW,EAAE,CAAC,kCAAD,CApCT;AAqCJC,IAAAA,sBAAsB,EAAE,CACpB,gEADoB,CArCpB;AAwCJC,IAAAA,iBAAiB,EAAE,CAAC,kCAAD,CAxCf;AAyCJC,IAAAA,iBAAiB,EAAE,CACf,wDADe,CAzCf;AA4CJC,IAAAA,cAAc,EAAE,CAAC,sCAAD,CA5CZ;AA6CJC,IAAAA,IAAI,EAAE,CAAC,sDAAD,CA7CF;AA8CJC,IAAAA,eAAe,EAAE,CACb,2DADa,CA9Cb;AAiDJC,IAAAA,eAAe,EAAE,CACb,8DADa,CAjDb;AAoDJC,IAAAA,WAAW,EAAE,CACT,kEADS,CApDT;AAuDJC,IAAAA,SAAS,EAAE,CAAC,wDAAD,CAvDP;AAwDJC,IAAAA,MAAM,EAAE,CAAC,yDAAD,CAxDJ;AAyDJhG,IAAAA,MAAM,EAAE,CAAC,mDAAD,CAzDJ;AA0DJwC,IAAAA,aAAa,EAAE,CAAC,0DAAD,CA1DX;AA2DJyD,IAAAA,WAAW,EAAE,CAAC,2CAAD,CA3DT;AA4DJC,IAAAA,eAAe,EAAE,CACb,2DADa;AA5Db,GAzYM;AAycdC,EAAAA,QAAQ,EAAE;AACN3G,IAAAA,GAAG,EAAE,CAAC,yBAAD,CADC;AAEN4G,IAAAA,kBAAkB,EAAE,CAAC,eAAD,CAFd;AAGNxF,IAAAA,UAAU,EAAE,CAAC,mCAAD;AAHN,GAzcI;AA8cdyF,EAAAA,QAAQ,EAAE;AACNC,IAAAA,MAAM,EAAE,CAAC,gBAAD,CADF;AAENC,IAAAA,SAAS,EAAE,CACP,oBADO,EAEP;AAAEC,MAAAA,OAAO,EAAE;AAAE,wBAAgB;AAAlB;AAAX,KAFO;AAFL,GA9cI;AAqddC,EAAAA,IAAI,EAAE;AACFjH,IAAAA,GAAG,EAAE,CAAC,WAAD,CADH;AAEFkH,IAAAA,UAAU,EAAE,CAAC,cAAD,CAFV;AAGFC,IAAAA,MAAM,EAAE,CAAC,UAAD,CAHN;AAIFC,IAAAA,IAAI,EAAE,CAAC,OAAD;AAJJ,GArdQ;AA2ddC,EAAAA,UAAU,EAAE;AACRC,IAAAA,YAAY,EAAE,CAAC,qCAAD,CADN;AAERC,IAAAA,iCAAiC,EAAE,CAC/B,gDAD+B,EAE/B;AAAEjK,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAF+B,CAF3B;AAMRiK,IAAAA,mBAAmB,EAAE,CACjB,sDADiB,EAEjB;AAAElK,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAFiB,CANb;AAURkK,IAAAA,qBAAqB,EAAE,CACnB,mDADmB,EAEnB;AAAEnK,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAFmB,CAVf;AAcRmK,IAAAA,8BAA8B,EAAE,CAC5B,6CAD4B,EAE5B;AAAEpK,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAF4B,CAdxB;AAkBRoK,IAAAA,gBAAgB,EAAE,CAAC,0CAAD,CAlBV;AAmBRC,IAAAA,eAAe,EAAE,CAAC,kCAAD,CAnBT;AAoBRC,IAAAA,aAAa,EAAE,CAAC,8CAAD,CApBP;AAqBRC,IAAAA,6BAA6B,EAAE,CAC3B,qCAD2B,EAE3B;AAAExK,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAF2B,CArBvB;AAyBRwK,IAAAA,eAAe,EAAE,CACb,2CADa,EAEb;AAAEzK,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAFa,CAzBT;AA6BRqI,IAAAA,wBAAwB,EAAE,CACtB,sBADsB,EAEtB;AAAEtI,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAFsB,CA7BlB;AAiCRsI,IAAAA,UAAU,EAAE,CACR,4BADQ,EAER;AAAEvI,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAFQ,CAjCJ;AAqCRyK,IAAAA,eAAe,EAAE,CACb,wDADa,EAEb;AAAE1K,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAFa,CArCT;AAyCR0K,IAAAA,gBAAgB,EAAE,CACd,kDADc,EAEd;AAAE3K,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAFc,CAzCV;AA6CR2K,IAAAA,eAAe,EAAE,CAAC,wDAAD,CA7CT;AA8CRC,IAAAA,gBAAgB,EAAE,CAAC,wCAAD,CA9CV;AA+CRC,IAAAA,yBAAyB,EAAE,CAAC,uBAAD,CA/CnB;AAgDRC,IAAAA,WAAW,EAAE,CAAC,6BAAD,CAhDL;AAiDRC,IAAAA,WAAW,EAAE,CAAC,kCAAD,CAjDL;AAkDRC,IAAAA,8BAA8B,EAAE,CAC5B,+DAD4B,EAE5B;AAAEjL,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAF4B,CAlDxB;AAsDRiL,IAAAA,gBAAgB,EAAE,CACd,qEADc,EAEd;AAAElL,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,WAAD;AAAZ;AAAb,KAFc,CAtDV;AA0DRkL,IAAAA,YAAY,EAAE,CAAC,oCAAD;AA1DN,GA3dE;AAuhBdC,EAAAA,IAAI,EAAE;AACFC,IAAAA,SAAS,EAAE,CAAC,mCAAD,CADT;AAEFC,IAAAA,gBAAgB,EAAE,CAAC,mCAAD,CAFhB;AAGFC,IAAAA,sBAAsB,EAAE,CAAC,oCAAD,CAHtB;AAIFC,IAAAA,4BAA4B,EAAE,CAAC,2CAAD,CAJ5B;AAKFC,IAAAA,kCAAkC,EAAE,CAChC,kDADgC,CALlC;AAQFC,IAAAA,gBAAgB,EAAE,CAAC,8BAAD,CARhB;AASFC,IAAAA,aAAa,EAAE,CAAC,wBAAD,CATb;AAUFC,IAAAA,aAAa,EAAE,CAAC,oCAAD,CAVb;AAWFlJ,IAAAA,GAAG,EAAE,CAAC,iBAAD,CAXH;AAYFmJ,IAAAA,iCAAiC,EAAE,CAAC,kCAAD,CAZjC;AAaFC,IAAAA,oBAAoB,EAAE,CAAC,wCAAD,CAbpB;AAcFC,IAAAA,UAAU,EAAE,CAAC,iCAAD,CAdV;AAeFC,IAAAA,sBAAsB,EAAE,CAAC,wCAAD,CAftB;AAgBF/G,IAAAA,IAAI,EAAE,CAAC,oBAAD,CAhBJ;AAiBFgH,IAAAA,oBAAoB,EAAE,CAAC,+BAAD,CAjBpB;AAkBFC,IAAAA,gBAAgB,EAAE,CAAC,wBAAD,CAlBhB;AAmBF5D,IAAAA,wBAAwB,EAAE,CAAC,gBAAD,CAnBxB;AAoBFlD,IAAAA,WAAW,EAAE,CAAC,4BAAD,CApBX;AAqBF+G,IAAAA,mBAAmB,EAAE,CAAC,mDAAD,CArBnB;AAsBFC,IAAAA,WAAW,EAAE,CAAC,yBAAD,CAtBX;AAuBFC,IAAAA,mCAAmC,EAAE,CAAC,4BAAD,CAvBnC;AAwBFC,IAAAA,wBAAwB,EAAE,CAAC,uCAAD,CAxBxB;AAyBFC,IAAAA,sBAAsB,EAAE,CAAC,6BAAD,CAzBtB;AA0BFC,IAAAA,iBAAiB,EAAE,CAAC,gCAAD,CA1BjB;AA2BFC,IAAAA,YAAY,EAAE,CAAC,uBAAD,CA3BZ;AA4BFC,IAAAA,WAAW,EAAE,CAAC,wCAAD,CA5BX;AA6BFC,IAAAA,YAAY,EAAE,CAAC,uCAAD,CA7BZ;AA8BFC,IAAAA,uBAAuB,EAAE,CAAC,2CAAD,CA9BvB;AA+BFC,IAAAA,yBAAyB,EAAE,CACvB,qDADuB,CA/BzB;AAkCFC,IAAAA,0CAA0C,EAAE,CACxC,8CADwC,CAlC1C;AAqCFC,IAAAA,oBAAoB,EAAE,CAAC,wCAAD,CArCpB;AAsCFC,IAAAA,uCAAuC,EAAE,CACrC,2CADqC,CAtCvC;AAyCFC,IAAAA,WAAW,EAAE,CAAC,sCAAD,CAzCX;AA0CF/J,IAAAA,MAAM,EAAE,CAAC,mBAAD,CA1CN;AA2CFgK,IAAAA,oCAAoC,EAAE,CAClC,oCADkC,CA3CpC;AA8CFC,IAAAA,aAAa,EAAE,CAAC,mCAAD,CA9Cb;AA+CFC,IAAAA,yBAAyB,EAAE,CAAC,0CAAD;AA/CzB,GAvhBQ;AAwkBdC,EAAAA,QAAQ,EAAE;AACNC,IAAAA,eAAe,EAAE,CACb,qDADa,EAEb;AAAEtN,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFa,CADX;AAKNsN,IAAAA,UAAU,EAAE,CACR,0CADQ,EAER;AAAEvN,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFQ,CALN;AASNuN,IAAAA,YAAY,EAAE,CACV,qCADU,EAEV;AAAExN,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFU,CATR;AAaNwN,IAAAA,0BAA0B,EAAE,CACxB,qBADwB,EAExB;AAAEzN,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFwB,CAbtB;AAiBNyN,IAAAA,YAAY,EAAE,CACV,2BADU,EAEV;AAAE1N,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFU,CAjBR;AAqBN0N,IAAAA,aAAa,EAAE,CACX,qCADW,EAEX;AAAE3N,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFW,CArBT;AAyBN2E,IAAAA,MAAM,EAAE,CACJ,+BADI,EAEJ;AAAE5E,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFI,CAzBF;AA6BN2N,IAAAA,UAAU,EAAE,CACR,0CADQ,EAER;AAAE5N,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFQ,CA7BN;AAiCN4N,IAAAA,YAAY,EAAE,CACV,sCADU,EAEV;AAAE7N,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFU,CAjCR;AAqCNyC,IAAAA,GAAG,EAAE,CACD,4BADC,EAED;AAAE1C,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFC,CArCC;AAyCN6N,IAAAA,OAAO,EAAE,CACL,uCADK,EAEL;AAAE9N,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFK,CAzCH;AA6CN8N,IAAAA,SAAS,EAAE,CACP,mCADO,EAEP;AAAE/N,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFO,CA7CL;AAiDN+N,IAAAA,oBAAoB,EAAE,CAClB,gEADkB,EAElB;AAAEhO,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFkB,CAjDhB;AAqDNgO,IAAAA,SAAS,EAAE,CACP,yCADO,EAEP;AAAEjO,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFO,CArDL;AAyDNiO,IAAAA,iBAAiB,EAAE,CACf,0CADe,EAEf;AAAElO,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFe,CAzDb;AA6DNkO,IAAAA,WAAW,EAAE,CACT,oCADS,EAET;AAAEnO,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFS,CA7DP;AAiENsI,IAAAA,UAAU,EAAE,CACR,0BADQ,EAER;AAAEvI,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFQ,CAjEN;AAqENuI,IAAAA,WAAW,EAAE,CACT,oCADS,EAET;AAAExI,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFS,CArEP;AAyENmF,IAAAA,WAAW,EAAE,CACT,gCADS,EAET;AAAEpF,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFS,CAzEP;AA6ENmO,IAAAA,QAAQ,EAAE,CACN,8CADM,EAEN;AAAEpO,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFM,CA7EJ;AAiFNoO,IAAAA,UAAU,EAAE,CACR,0CADQ,EAER;AAAErO,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFQ,CAjFN;AAqFNqO,IAAAA,kBAAkB,EAAE,CAChB,wDADgB,EAEhB;AAAEtO,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFgB,CArFd;AAyFNiD,IAAAA,MAAM,EAAE,CACJ,8BADI,EAEJ;AAAElD,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFI,CAzFF;AA6FNsO,IAAAA,UAAU,EAAE,CACR,yCADQ,EAER;AAAEvO,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFQ,CA7FN;AAiGNuO,IAAAA,YAAY,EAAE,CACV,qCADU,EAEV;AAAExO,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFU;AAjGR,GAxkBI;AA8qBdwO,EAAAA,KAAK,EAAE;AACHC,IAAAA,aAAa,EAAE,CAAC,qDAAD,CADZ;AAEHlM,IAAAA,MAAM,EAAE,CAAC,kCAAD,CAFL;AAGHmM,IAAAA,2BAA2B,EAAE,CACzB,8EADyB,CAH1B;AAMHC,IAAAA,YAAY,EAAE,CAAC,wDAAD,CANX;AAOHC,IAAAA,mBAAmB,EAAE,CACjB,yDADiB,CAPlB;AAUHC,IAAAA,mBAAmB,EAAE,CACjB,sEADiB,CAVlB;AAaHC,IAAAA,mBAAmB,EAAE,CACjB,0DADiB,CAblB;AAgBHC,IAAAA,aAAa,EAAE,CACX,8EADW,CAhBZ;AAmBHtM,IAAAA,GAAG,EAAE,CAAC,+CAAD,CAnBF;AAoBHuM,IAAAA,SAAS,EAAE,CACP,mEADO,CApBR;AAuBHC,IAAAA,gBAAgB,EAAE,CAAC,uDAAD,CAvBf;AAwBHjK,IAAAA,IAAI,EAAE,CAAC,iCAAD,CAxBH;AAyBHkK,IAAAA,qBAAqB,EAAE,CACnB,4EADmB,CAzBpB;AA4BHhK,IAAAA,WAAW,EAAE,CAAC,uDAAD,CA5BV;AA6BHiK,IAAAA,SAAS,EAAE,CAAC,qDAAD,CA7BR;AA8BHC,IAAAA,sBAAsB,EAAE,CACpB,mEADoB,CA9BrB;AAiCHC,IAAAA,kBAAkB,EAAE,CAChB,wDADgB,CAjCjB;AAoCHC,IAAAA,yBAAyB,EAAE,CAAC,0CAAD,CApCxB;AAqCHC,IAAAA,WAAW,EAAE,CAAC,uDAAD,CArCV;AAsCHC,IAAAA,KAAK,EAAE,CAAC,qDAAD,CAtCJ;AAuCHC,IAAAA,wBAAwB,EAAE,CACtB,sEADsB,CAvCvB;AA0CHC,IAAAA,gBAAgB,EAAE,CACd,oEADc,CA1Cf;AA6CHC,IAAAA,YAAY,EAAE,CACV,2EADU,CA7CX;AAgDH1M,IAAAA,MAAM,EAAE,CAAC,iDAAD,CAhDL;AAiDH2M,IAAAA,YAAY,EAAE,CACV,6DADU,EAEV;AAAE7P,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,QAAD;AAAZ;AAAb,KAFU,CAjDX;AAqDH6P,IAAAA,YAAY,EAAE,CACV,mEADU,CArDX;AAwDHC,IAAAA,mBAAmB,EAAE,CACjB,yDADiB;AAxDlB,GA9qBO;AA0uBdC,EAAAA,SAAS,EAAE;AAAEtN,IAAAA,GAAG,EAAE,CAAC,iBAAD;AAAP,GA1uBG;AA2uBduN,EAAAA,SAAS,EAAE;AACPC,IAAAA,sBAAsB,EAAE,CACpB,4DADoB,EAEpB;AAAElQ,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFoB,CADjB;AAKPkQ,IAAAA,cAAc,EAAE,CACZ,4DADY,EAEZ;AAAEnQ,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFY,CALT;AASPmQ,IAAAA,qBAAqB,EAAE,CACnB,mEADmB,EAEnB;AAAEpQ,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFmB,CAThB;AAaPoQ,IAAAA,iCAAiC,EAAE,CAC/B,kEAD+B,EAE/B;AAAErQ,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAF+B,CAb5B;AAiBPqQ,IAAAA,mCAAmC,EAAE,CACjC,wGADiC,EAEjC;AAAEtQ,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFiC,CAjB9B;AAqBPsQ,IAAAA,4BAA4B,EAAE,CAC1B,8EAD0B,EAE1B;AAAEvQ,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAF0B,CArBvB;AAyBPuQ,IAAAA,sBAAsB,EAAE,CACpB,4EADoB,EAEpB;AAAExQ,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFoB,CAzBjB;AA6BPwQ,IAAAA,cAAc,EAAE,CACZ,4EADY,EAEZ;AAAEzQ,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFY,CA7BT;AAiCPyQ,IAAAA,qBAAqB,EAAE,CACnB,mFADmB,EAEnB;AAAE1Q,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFmB,CAjChB;AAqCP0Q,IAAAA,2BAA2B,EAAE,CACzB,kFADyB,EAEzB;AAAE3Q,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFyB,CArCtB;AAyCP2Q,IAAAA,uBAAuB,EAAE,CACrB,8FADqB,EAErB;AAAE5Q,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFqB,CAzClB;AA6CP4Q,IAAAA,8BAA8B,EAAE,CAC5B,wHAD4B,EAE5B;AAAE7Q,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAF4B,CA7CzB;AAiDP6Q,IAAAA,YAAY,EAAE,CACV,iCADU,EAEV;AAAE9Q,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFU,EAGV;AACI8Q,MAAAA,UAAU,EAAE;AADhB,KAHU,CAjDP;AAwDPC,IAAAA,oBAAoB,EAAE,CAClB,2DADkB,EAElB;AAAEhR,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFkB,CAxDf;AA4DPgR,IAAAA,YAAY,EAAE,CACV,2DADU,EAEV;AAAEjR,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFU,CA5DP;AAgEPiR,IAAAA,mBAAmB,EAAE,CACjB,kEADiB,EAEjB;AAAElR,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFiB,CAhEd;AAoEPkR,IAAAA,+BAA+B,EAAE,CAC7B,iEAD6B,EAE7B;AAAEnR,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAF6B,CApE1B;AAwEPmR,IAAAA,iCAAiC,EAAE,CAC/B,uGAD+B,EAE/B;AAAEpR,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAF+B,CAxE5B;AA4EPoR,IAAAA,0BAA0B,EAAE,CACxB,6EADwB,EAExB;AAAErR,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,eAAD;AAAZ;AAAb,KAFwB;AA5ErB,GA3uBG;AA4zBdqR,EAAAA,KAAK,EAAE;AACHC,IAAAA,gBAAgB,EAAE,CAAC,oDAAD,CADf;AAEHC,IAAAA,wBAAwB,EAAE,CACtB,2EADsB,EAEtB,EAFsB,EAGtB;AAAEC,MAAAA,SAAS,EAAE;AAAb,KAHsB,CAFvB;AAOHnE,IAAAA,eAAe,EAAE,CAAC,oDAAD,CAPd;AAQHoE,IAAAA,sBAAsB,EAAE,CACpB,yFADoB,EAEpB,EAFoB,EAGpB;AAAED,MAAAA,SAAS,EAAE;AAAb,KAHoB,CARrB;AAaHE,IAAAA,yBAAyB,EAAE,CACvB,4EADuB,EAEvB,EAFuB,EAGvB;AAAEF,MAAAA,SAAS,EAAE;AAAb,KAHuB,CAbxB;AAkBHG,IAAAA,yBAAyB,EAAE,CACvB,4EADuB,EAEvB,EAFuB,EAGvB;AAAEH,MAAAA,SAAS,EAAE;AAAb,KAHuB,CAlBxB;AAuBHI,IAAAA,iBAAiB,EAAE,CAAC,oDAAD,CAvBhB;AAwBHC,IAAAA,wBAAwB,EAAE,CACtB,gDADsB,EAEtB;AAAE9R,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,QAAD;AAAZ;AAAb,KAFsB,CAxBvB;AA4BH8R,IAAAA,cAAc,EAAE,CAAC,mDAAD,CA5Bb;AA6BHC,IAAAA,mBAAmB,EAAE,CACjB,0DADiB,CA7BlB;AAgCHC,IAAAA,+BAA+B,EAAE,CAC7B,6EAD6B,EAE7B;AAAEjS,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,OAAD;AAAZ;AAAb,KAF6B,CAhC9B;AAoCHiS,IAAAA,kBAAkB,EAAE,CAAC,2CAAD,CApCjB;AAqCHC,IAAAA,eAAe,EAAE,CAAC,iCAAD,CArCd;AAsCHC,IAAAA,gBAAgB,EAAE,CAAC,wCAAD,CAtCf;AAuCHC,IAAAA,sBAAsB,EAAE,CACpB,iEADoB,CAvCrB;AA0CHC,IAAAA,mBAAmB,EAAE,CAAC,uCAAD,CA1ClB;AA2CH7E,IAAAA,0BAA0B,EAAE,CAAC,kBAAD,CA3CzB;AA4CH8E,IAAAA,UAAU,EAAE,CAAC,kCAAD,CA5CT;AA6CHC,IAAAA,WAAW,EAAE,CAAC,wBAAD,CA7CV;AA8CHC,IAAAA,0BAA0B,EAAE,CAAC,2CAAD,CA9CzB;AA+CHC,IAAAA,eAAe,EAAE,CACb,kCADa,EAEb;AAAE1S,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,YAAD;AAAZ;AAAb,KAFa,CA/Cd;AAmDH0S,IAAAA,aAAa,EAAE,CAAC,qCAAD,CAnDZ;AAoDHC,IAAAA,mBAAmB,EAAE,CACjB,uDADiB,EAEjB;AAAE5S,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,UAAD;AAAZ;AAAb,KAFiB,CApDlB;AAwDH0L,IAAAA,aAAa,EAAE,CAAC,kCAAD,CAxDZ;AAyDHkH,IAAAA,iBAAiB,EAAE,CAAC,qDAAD,CAzDhB;AA0DHjO,IAAAA,MAAM,EAAE,CAAC,8BAAD,CA1DL;AA2DHkO,IAAAA,wBAAwB,EAAE,CACtB,wEADsB,CA3DvB;AA8DHC,IAAAA,2BAA2B,EAAE,CACzB,0EADyB,CA9D1B;AAiEHC,IAAAA,sBAAsB,EAAE,CACpB,2DADoB,CAjErB;AAoEHC,IAAAA,mBAAmB,EAAE,CAAC,oDAAD,CApElB;AAqEHC,IAAAA,+BAA+B,EAAE,CAC7B,+EAD6B,EAE7B;AAAElT,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,OAAD;AAAZ;AAAb,KAF6B,CArE9B;AAyEHkT,IAAAA,eAAe,EAAE,CAAC,4CAAD,CAzEd;AA0EHC,IAAAA,gBAAgB,EAAE,CACd,0DADc,CA1Ef;AA6EHC,IAAAA,UAAU,EAAE,CAAC,8CAAD,CA7ET;AA8EHC,IAAAA,gBAAgB,EAAE,CACd,0DADc,CA9Ef;AAiFHC,IAAAA,eAAe,EAAE,CACb,oCADa,EAEb;AAAEvT,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,YAAD;AAAZ;AAAb,KAFa,CAjFd;AAqFHuT,IAAAA,iCAAiC,EAAE,CAC/B,yFAD+B,CArFhC;AAwFHC,IAAAA,aAAa,EAAE,CAAC,oDAAD,CAxFZ;AAyFHC,IAAAA,kBAAkB,EAAE,CAChB,yDADgB,CAzFjB;AA4FH9H,IAAAA,aAAa,EAAE,CAAC,8CAAD,CA5FZ;AA6FH+H,IAAAA,6BAA6B,EAAE,CAC3B,uDAD2B,EAE3B;AAAE3T,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,QAAD;AAAZ;AAAb,KAF2B,CA7F5B;AAiGH2T,IAAAA,0BAA0B,EAAE,CACxB,mDADwB,EAExB;AAAE5T,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,QAAD;AAAZ;AAAb,KAFwB,CAjGzB;AAqGH4T,IAAAA,eAAe,EAAE,CACb,yCADa,EAEb,EAFa,EAGb;AAAEhY,MAAAA,OAAO,EAAE,CAAC,OAAD,EAAU,wBAAV;AAAX,KAHa,CArGd;AA0GHiY,IAAAA,sBAAsB,EAAE,CAAC,yCAAD,CA1GrB;AA2GHC,IAAAA,sBAAsB,EAAE,CAAC,yCAAD,CA3GrB;AA4GHC,IAAAA,4BAA4B,EAAE,CAC1B,oDAD0B,EAE1B;AAAEhU,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,QAAD;AAAZ;AAAb,KAF0B,CA5G3B;AAgHHgU,IAAAA,yBAAyB,EAAE,CACvB,gDADuB,EAEvB;AAAEjU,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,QAAD;AAAZ;AAAb,KAFuB,CAhHxB;AAoHHyC,IAAAA,GAAG,EAAE,CAAC,2BAAD,CApHF;AAqHHwR,IAAAA,qBAAqB,EAAE,CACnB,qEADmB,CArHpB;AAwHHC,IAAAA,wBAAwB,EAAE,CACtB,uEADsB,CAxHvB;AA2HHC,IAAAA,yBAAyB,EAAE,CACvB,wFADuB,CA3HxB;AA8HHC,IAAAA,YAAY,EAAE,CACV,kCADU,EAEV;AAAErU,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,OAAD;AAAZ;AAAb,KAFU,CA9HX;AAkIHqU,IAAAA,kCAAkC,EAAE,CAChC,0EADgC,CAlIjC;AAqIHC,IAAAA,SAAS,EAAE,CAAC,6CAAD,CArIR;AAsIHC,IAAAA,mBAAmB,EAAE,CACjB,wDADiB,CAtIlB;AAyIHC,IAAAA,SAAS,EAAE,CAAC,0CAAD,CAzIR;AA0IHC,IAAAA,qBAAqB,EAAE,CAAC,gDAAD,CA1IpB;AA2IHC,IAAAA,8BAA8B,EAAE,CAC5B,+DAD4B,CA3I7B;AA8IHC,IAAAA,uBAAuB,EAAE,CAAC,gDAAD,CA9ItB;AA+IHzO,IAAAA,SAAS,EAAE,CAAC,yCAAD,CA/IR;AAgJH0O,IAAAA,sBAAsB,EAAE,CAAC,iDAAD,CAhJrB;AAiJHC,IAAAA,gBAAgB,EAAE,CAAC,iDAAD,CAjJf;AAkJHC,IAAAA,4BAA4B,EAAE,CAC1B,4EAD0B,EAE1B;AAAE/U,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,OAAD;AAAZ;AAAb,KAF0B,CAlJ3B;AAsJH+U,IAAAA,0BAA0B,EAAE,CAAC,6CAAD,CAtJzB;AAuJHC,IAAAA,UAAU,EAAE,CAAC,2CAAD,CAvJT;AAwJHC,IAAAA,oBAAoB,EAAE,CAAC,8CAAD,CAxJnB;AAyJHC,IAAAA,YAAY,EAAE,CAAC,yCAAD,CAzJX;AA0JHC,IAAAA,aAAa,EAAE,CAAC,uDAAD,CA1JZ;AA2JHC,IAAAA,mBAAmB,EAAE,CACjB,4EADiB,CA3JlB;AA8JHC,IAAAA,mBAAmB,EAAE,CAAC,+CAAD,CA9JlB;AA+JHC,IAAAA,gBAAgB,EAAE,CAAC,2CAAD,CA/Jf;AAgKHC,IAAAA,QAAQ,EAAE,CAAC,iCAAD,CAhKP;AAiKHC,IAAAA,aAAa,EAAE,CAAC,mDAAD,CAjKZ;AAkKHC,IAAAA,qBAAqB,EAAE,CAAC,+CAAD,CAlKpB;AAmKHC,IAAAA,8BAA8B,EAAE,CAC5B,sFAD4B,CAnK7B;AAsKHC,IAAAA,iBAAiB,EAAE,CAAC,4CAAD,CAtKhB;AAuKHC,IAAAA,SAAS,EAAE,CAAC,kCAAD,CAvKR;AAwKHC,IAAAA,UAAU,EAAE,CAAC,iDAAD,CAxKT;AAyKHC,IAAAA,eAAe,EAAE,CAAC,sDAAD,CAzKd;AA0KHC,IAAAA,eAAe,EAAE,CAAC,+CAAD,CA1Kd;AA2KHC,IAAAA,yBAAyB,EAAE,CACvB,+EADuB,CA3KxB;AA8KHC,IAAAA,mCAAmC,EAAE,CACjC,2EADiC,CA9KlC;AAiLHC,IAAAA,WAAW,EAAE,CAAC,iDAAD,CAjLV;AAkLHC,IAAAA,eAAe,EAAE,CAAC,qDAAD,CAlLd;AAmLHC,IAAAA,mCAAmC,EAAE,CACjC,2EADiC,CAnLlC;AAsLHC,IAAAA,QAAQ,EAAE,CAAC,yCAAD,CAtLP;AAuLHvK,IAAAA,UAAU,EAAE,CAAC,2CAAD,CAvLT;AAwLHwK,IAAAA,uBAAuB,EAAE,CACrB,kDADqB,CAxLtB;AA2LHC,IAAAA,YAAY,EAAE,CAAC,oCAAD,CA3LX;AA4LHC,IAAAA,yBAAyB,EAAE,CACvB,oEADuB,EAEvB;AAAEzW,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,OAAD;AAAZ;AAAb,KAFuB,CA5LxB;AAgMHiO,IAAAA,iBAAiB,EAAE,CAAC,yCAAD,CAhMhB;AAiMHwI,IAAAA,qBAAqB,EAAE,CACnB,yDADmB,CAjMpB;AAoMHC,IAAAA,yBAAyB,EAAE,CAAC,oCAAD,CApMxB;AAqMHC,IAAAA,wBAAwB,EAAE,CACtB,kDADsB,CArMvB;AAwMHzR,IAAAA,WAAW,EAAE,CAAC,mCAAD,CAxMV;AAyMH0R,IAAAA,gBAAgB,EAAE,CAAC,wCAAD,CAzMf;AA0MHC,IAAAA,cAAc,EAAE,CAAC,gCAAD,CA1Mb;AA2MHC,IAAAA,sBAAsB,EAAE,CACpB,gEADoB,CA3MrB;AA8MHC,IAAAA,eAAe,EAAE,CAAC,uCAAD,CA9Md;AA+MH1O,IAAAA,wBAAwB,EAAE,CAAC,iBAAD,CA/MvB;AAgNHC,IAAAA,UAAU,EAAE,CAAC,uBAAD,CAhNT;AAiNHnD,IAAAA,WAAW,EAAE,CAAC,6BAAD,CAjNV;AAkNHC,IAAAA,SAAS,EAAE,CAAC,iCAAD,CAlNR;AAmNH4R,IAAAA,eAAe,EAAE,CAAC,uCAAD,CAnNd;AAoNHC,IAAAA,mCAAmC,EAAE,CAAC,kCAAD,CApNlC;AAqNHC,IAAAA,aAAa,EAAE,CAAC,qCAAD,CArNZ;AAsNHC,IAAAA,eAAe,EAAE,CAAC,wCAAD,CAtNd;AAuNH9R,IAAAA,UAAU,EAAE,CAAC,mBAAD,CAvNT;AAwNH+R,IAAAA,oCAAoC,EAAE,CAClC,sDADkC,EAElC;AAAErX,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,OAAD;AAAZ;AAAb,KAFkC,CAxNnC;AA4NHqX,IAAAA,iBAAiB,EAAE,CACf,wDADe,CA5NhB;AA+NHC,IAAAA,YAAY,EAAE,CAAC,oCAAD,CA/NX;AAgOHC,IAAAA,QAAQ,EAAE,CAAC,gCAAD,CAhOP;AAiOHC,IAAAA,SAAS,EAAE,CAAC,iCAAD,CAjOR;AAkOHhL,IAAAA,YAAY,EAAE,CAAC,iCAAD,CAlOX;AAmOHgD,IAAAA,KAAK,EAAE,CAAC,mCAAD,CAnOJ;AAoOH/C,IAAAA,WAAW,EAAE,CAAC,kDAAD,CApOV;AAqOHgL,IAAAA,2BAA2B,EAAE,CACzB,6EADyB,EAEzB,EAFyB,EAGzB;AAAEjG,MAAAA,SAAS,EAAE;AAAb,KAHyB,CArO1B;AA0OHnD,IAAAA,kBAAkB,EAAE,CAChB,uDADgB,CA1OjB;AA6OHqJ,IAAAA,yBAAyB,EAAE,CACvB,2FADuB,EAEvB,EAFuB,EAGvB;AAAElG,MAAAA,SAAS,EAAE;AAAb,KAHuB,CA7OxB;AAkPHmG,IAAAA,2BAA2B,EAAE,CACzB,kFADyB,CAlP1B;AAqPHC,IAAAA,4BAA4B,EAAE,CAC1B,8EAD0B,EAE1B,EAF0B,EAG1B;AAAEpG,MAAAA,SAAS,EAAE;AAAb,KAH0B,CArP3B;AA0PHqG,IAAAA,4BAA4B,EAAE,CAC1B,8EAD0B,EAE1B,EAF0B,EAG1B;AAAErG,MAAAA,SAAS,EAAE;AAAb,KAH0B,CA1P3B;AA+PHsG,IAAAA,gBAAgB,EAAE,CACd,kCADc,EAEd;AAAE/X,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,OAAD;AAAZ;AAAb,KAFc,CA/Pf;AAmQH+X,IAAAA,iBAAiB,EAAE,CAAC,yCAAD,CAnQhB;AAoQHC,IAAAA,wBAAwB,EAAE,CACtB,wEADsB,CApQvB;AAuQHC,IAAAA,wBAAwB,EAAE,CACtB,0EADsB,EAEtB,EAFsB,EAGtB;AAAEzG,MAAAA,SAAS,EAAE;AAAb,KAHsB,CAvQvB;AA4QH0G,IAAAA,sBAAsB,EAAE,CACpB,wFADoB,EAEpB,EAFoB,EAGpB;AAAE1G,MAAAA,SAAS,EAAE;AAAb,KAHoB,CA5QrB;AAiRH2G,IAAAA,yBAAyB,EAAE,CACvB,2EADuB,EAEvB,EAFuB,EAGvB;AAAE3G,MAAAA,SAAS,EAAE;AAAb,KAHuB,CAjRxB;AAsRH4G,IAAAA,yBAAyB,EAAE,CACvB,2EADuB,EAEvB,EAFuB,EAGvB;AAAE5G,MAAAA,SAAS,EAAE;AAAb,KAHuB,CAtRxB;AA2RH6G,IAAAA,eAAe,EAAE,CAAC,kDAAD,CA3Rd;AA4RHC,IAAAA,QAAQ,EAAE,CAAC,qCAAD,CA5RP;AA6RHrV,IAAAA,MAAM,EAAE,CAAC,6BAAD,CA7RL;AA8RHsV,IAAAA,sBAAsB,EAAE,CACpB,wDADoB,CA9RrB;AAiSHC,IAAAA,mBAAmB,EAAE,CAAC,mDAAD,CAjSlB;AAkSHC,IAAAA,+BAA+B,EAAE,CAAC,iCAAD,CAlS9B;AAmSHC,IAAAA,gBAAgB,EAAE,CACd,yDADc,CAnSf;AAsSHC,IAAAA,iCAAiC,EAAE,CAC/B,wFAD+B,CAtShC;AAySHC,IAAAA,aAAa,EAAE,CAAC,mDAAD,CAzSZ;AA0SHC,IAAAA,kBAAkB,EAAE,CAChB,wDADgB,CA1SjB;AA6SHC,IAAAA,0BAA0B,EAAE,CACxB,iFADwB,EAExB,EAFwB,EAGxB;AAAEld,MAAAA,OAAO,EAAE,CAAC,OAAD,EAAU,6BAAV;AAAX,KAHwB,CA7SzB;AAkTHmd,IAAAA,2BAA2B,EAAE,CACzB,iFADyB,CAlT1B;AAqTH7L,IAAAA,aAAa,EAAE,CAAC,6CAAD,CArTZ;AAsTH8L,IAAAA,0BAA0B,EAAE,CACxB,oDADwB,CAtTzB;AAyTHC,IAAAA,kBAAkB,EAAE,CAChB,sEADgB,EAEhB;AAAEC,MAAAA,OAAO,EAAE;AAAX,KAFgB;AAzTjB,GA5zBO;AA0nCdC,EAAAA,MAAM,EAAE;AACJC,IAAAA,IAAI,EAAE,CAAC,kBAAD,CADF;AAEJC,IAAAA,OAAO,EAAE,CAAC,qBAAD,EAAwB;AAAEtZ,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,OAAD;AAAZ;AAAb,KAAxB,CAFL;AAGJsZ,IAAAA,qBAAqB,EAAE,CAAC,oBAAD,CAHnB;AAIJC,IAAAA,MAAM,EAAE,CAAC,oBAAD,CAJJ;AAKJlI,IAAAA,KAAK,EAAE,CAAC,0BAAD,CALH;AAMJmI,IAAAA,MAAM,EAAE,CAAC,oBAAD,EAAuB;AAAEzZ,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,OAAD;AAAZ;AAAb,KAAvB,CANJ;AAOJyZ,IAAAA,KAAK,EAAE,CAAC,mBAAD;AAPH,GA1nCM;AAmoCdC,EAAAA,cAAc,EAAE;AACZvW,IAAAA,QAAQ,EAAE,CACN,iEADM,CADE;AAIZG,IAAAA,iBAAiB,EAAE,CAAC,kDAAD,CAJP;AAKZE,IAAAA,WAAW,EAAE,CACT,mEADS;AALD,GAnoCF;AA4oCdmW,EAAAA,KAAK,EAAE;AACHC,IAAAA,iCAAiC,EAAE,CAC/B,0DAD+B,CADhC;AAIHC,IAAAA,kCAAkC,EAAE,CAChC,yDADgC,EAEhC;AAAE9Z,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFgC,CAJjC;AAQH8Z,IAAAA,+BAA+B,EAAE,CAC7B,wDAD6B,CAR9B;AAWHC,IAAAA,+BAA+B,EAAE,CAC7B,yDAD6B,EAE7B;AAAEha,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAF6B,CAX9B;AAeHga,IAAAA,4BAA4B,EAAE,CAC1B,wDAD0B,CAf3B;AAkBHzX,IAAAA,MAAM,EAAE,CAAC,wBAAD,CAlBL;AAmBH0X,IAAAA,4BAA4B,EAAE,CAC1B,6EAD0B,CAnB3B;AAsBHC,IAAAA,qBAAqB,EAAE,CAAC,gDAAD,CAtBpB;AAuBHC,IAAAA,4BAA4B,EAAE,CAC1B,gGAD0B,CAvB3B;AA0BHC,IAAAA,qBAAqB,EAAE,CACnB,sEADmB,CA1BpB;AA6BHC,IAAAA,WAAW,EAAE,CAAC,sCAAD,CA7BV;AA8BHC,IAAAA,SAAS,EAAE,CAAC,mCAAD,CA9BR;AA+BHC,IAAAA,yBAAyB,EAAE,CACvB,6FADuB,CA/BxB;AAkCHC,IAAAA,kBAAkB,EAAE,CAChB,mEADgB,CAlCjB;AAqCHC,IAAAA,yBAAyB,EAAE,CACvB,0DADuB,CArCxB;AAwCHzV,IAAAA,IAAI,EAAE,CAAC,uBAAD,CAxCH;AAyCH0V,IAAAA,cAAc,EAAE,CAAC,yCAAD,CAzCb;AA0CHC,IAAAA,2BAA2B,EAAE,CACzB,4EADyB,CA1C1B;AA6CHC,IAAAA,oBAAoB,EAAE,CAAC,+CAAD,CA7CnB;AA8CHvS,IAAAA,wBAAwB,EAAE,CAAC,iBAAD,CA9CvB;AA+CHwS,IAAAA,gBAAgB,EAAE,CAAC,2CAAD,CA/Cf;AAgDHC,IAAAA,2BAA2B,EAAE,CACzB,+CADyB,CAhD1B;AAmDHC,IAAAA,iBAAiB,EAAE,CACf,4CADe,EAEf;AAAEhb,MAAAA,SAAS,EAAE;AAAEC,QAAAA,QAAQ,EAAE,CAAC,SAAD;AAAZ;AAAb,KAFe,CAnDhB;AAuDHgb,IAAAA,cAAc,EAAE,CAAC,yCAAD,CAvDb;AAwDHC,IAAAA,4BAA4B,EAAE,CAC1B,6DAD0B,CAxD3B;AA2DHC,IAAAA,kBAAkB,EAAE,CAChB,4DADgB,CA3DjB;AA8DHC,IAAAA,eAAe,EAAE,CACb,2DADa,CA9Dd;AAiEHC,IAAAA,4BAA4B,EAAE,CAC1B,+FAD0B,CAjE3B;AAoEHC,IAAAA,qBAAqB,EAAE,CACnB,qEADmB,CApEpB;AAuEHC,IAAAA,WAAW,EAAE,CAAC,qCAAD;AAvEV,GA5oCO;AAqtCd7B,EAAAA,KAAK,EAAE;AACH8B,IAAAA,wBAAwB,EAAE,CAAC,mBAAD,CADvB;AAEHC,IAAAA,KAAK,EAAE,CAAC,6BAAD,CAFJ;AAGHC,IAAAA,YAAY,EAAE,CAAC,6BAAD,CAHX;AAIHC,IAAAA,qBAAqB,EAAE,CAAC,+CAAD,CAJpB;AAKHC,IAAAA,oCAAoC,EAAE,CAAC,gCAAD,CALnC;AAMHC,IAAAA,4BAA4B,EAAE,CAAC,qBAAD,CAN3B;AAOHC,IAAAA,kCAAkC,EAAE,CAAC,iBAAD,CAPjC;AAQHC,IAAAA,2BAA2B,EAAE,CAAC,qBAAD,CAR1B;AASHC,IAAAA,4BAA4B,EAAE,CAAC,oCAAD,CAT3B;AAUHC,IAAAA,kCAAkC,EAAE,CAAC,4BAAD,CAVjC;AAWHC,IAAAA,MAAM,EAAE,CAAC,gCAAD,CAXL;AAYH3b,IAAAA,gBAAgB,EAAE,CAAC,WAAD,CAZf;AAaH4b,IAAAA,aAAa,EAAE,CAAC,uBAAD,CAbZ;AAcHC,IAAAA,iBAAiB,EAAE,CAAC,iCAAD,CAdhB;AAeHC,IAAAA,yBAAyB,EAAE,CAAC,iCAAD,CAfxB;AAgBHC,IAAAA,+BAA+B,EAAE,CAAC,yBAAD,CAhB9B;AAiBHrX,IAAAA,IAAI,EAAE,CAAC,YAAD,CAjBH;AAkBHsX,IAAAA,0BAA0B,EAAE,CAAC,kBAAD,CAlBzB;AAmBHC,IAAAA,0BAA0B,EAAE,CAAC,kBAAD,CAnBzB;AAoBHC,IAAAA,2BAA2B,EAAE,CAAC,qBAAD,CApB1B;AAqBHC,IAAAA,iCAAiC,EAAE,CAAC,qBAAD,CArBhC;AAsBHC,IAAAA,oBAAoB,EAAE,CAAC,iCAAD,CAtBnB;AAuBHC,IAAAA,oBAAoB,EAAE,CAAC,iCAAD,CAvBnB;AAwBHC,IAAAA,2BAA2B,EAAE,CAAC,oBAAD,CAxB1B;AAyBHC,IAAAA,kBAAkB,EAAE,CAAC,gCAAD,CAzBjB;AA0BHC,IAAAA,gCAAgC,EAAE,CAAC,yBAAD,CA1B/B;AA2BHC,IAAAA,qBAAqB,EAAE,CAAC,4BAAD,CA3BpB;AA4BHC,IAAAA,iCAAiC,EAAE,CAAC,gBAAD,CA5BhC;AA6BHC,IAAAA,yCAAyC,EAAE,CAAC,8BAAD,CA7BxC;AA8BHC,IAAAA,OAAO,EAAE,CAAC,gCAAD,CA9BN;AA+BHC,IAAAA,QAAQ,EAAE,CAAC,mCAAD,CA/BP;AAgCHC,IAAAA,mBAAmB,EAAE,CAAC,aAAD;AAhClB;AArtCO,CAAlB;;ACAO,MAAMC,OAAO,GAAG,mBAAhB;;ACAA,SAASC,kBAAT,CAA4BC,OAA5B,EAAqCC,YAArC,EAAmD;AACtD,QAAMC,UAAU,GAAG,EAAnB;;AACA,OAAK,MAAM,CAACC,KAAD,EAAQC,SAAR,CAAX,IAAiCC,MAAM,CAACC,OAAP,CAAeL,YAAf,CAAjC,EAA+D;AAC3D,SAAK,MAAM,CAACM,UAAD,EAAaC,QAAb,CAAX,IAAqCH,MAAM,CAACC,OAAP,CAAeF,SAAf,CAArC,EAAgE;AAC5D,YAAM,CAACK,KAAD,EAAQC,QAAR,EAAkBC,WAAlB,IAAiCH,QAAvC;AACA,YAAM,CAACI,MAAD,EAASC,GAAT,IAAgBJ,KAAK,CAACK,KAAN,CAAY,GAAZ,CAAtB;AACA,YAAMC,gBAAgB,GAAGV,MAAM,CAACW,MAAP,CAAc;AAAEJ,QAAAA,MAAF;AAAUC,QAAAA;AAAV,OAAd,EAA+BH,QAA/B,CAAzB;;AACA,UAAI,CAACR,UAAU,CAACC,KAAD,CAAf,EAAwB;AACpBD,QAAAA,UAAU,CAACC,KAAD,CAAV,GAAoB,EAApB;AACH;;AACD,YAAMc,YAAY,GAAGf,UAAU,CAACC,KAAD,CAA/B;;AACA,UAAIQ,WAAJ,EAAiB;AACbM,QAAAA,YAAY,CAACV,UAAD,CAAZ,GAA2BW,QAAQ,CAAClB,OAAD,EAAUG,KAAV,EAAiBI,UAAjB,EAA6BQ,gBAA7B,EAA+CJ,WAA/C,CAAnC;AACA;AACH;;AACDM,MAAAA,YAAY,CAACV,UAAD,CAAZ,GAA2BP,OAAO,CAACmB,OAAR,CAAgBT,QAAhB,CAAyBK,gBAAzB,CAA3B;AACH;AACJ;;AACD,SAAOb,UAAP;AACH;;AACD,SAASgB,QAAT,CAAkBlB,OAAlB,EAA2BG,KAA3B,EAAkCI,UAAlC,EAA8CG,QAA9C,EAAwDC,WAAxD,EAAqE;AACjE,QAAMS,mBAAmB,GAAGpB,OAAO,CAACmB,OAAR,CAAgBT,QAAhB,CAAyBA,QAAzB,CAA5B;AACA;;AACA,WAASW,eAAT,CAAyB,GAAGC,IAA5B,EAAkC;AAC9B;AACA,QAAIC,OAAO,GAAGH,mBAAmB,CAACZ,QAApB,CAA6BvO,KAA7B,CAAmC,GAAGqP,IAAtC,CAAd,CAF8B;;AAI9B,QAAIX,WAAW,CAAC1M,SAAhB,EAA2B;AACvBsN,MAAAA,OAAO,GAAGlB,MAAM,CAACW,MAAP,CAAc,EAAd,EAAkBO,OAAlB,EAA2B;AACjCC,QAAAA,IAAI,EAAED,OAAO,CAACZ,WAAW,CAAC1M,SAAb,CADoB;AAEjC,SAAC0M,WAAW,CAAC1M,SAAb,GAAyBwN;AAFQ,OAA3B,CAAV;AAIA,aAAOL,mBAAmB,CAACG,OAAD,CAA1B;AACH;;AACD,QAAIZ,WAAW,CAACtiB,OAAhB,EAAyB;AACrB,YAAM,CAACqjB,QAAD,EAAWC,aAAX,IAA4BhB,WAAW,CAACtiB,OAA9C;AACA2hB,MAAAA,OAAO,CAAC4B,GAAR,CAAYC,IAAZ,CAAkB,WAAU1B,KAAM,IAAGI,UAAW,kCAAiCmB,QAAS,IAAGC,aAAc,IAA3G;AACH;;AACD,QAAIhB,WAAW,CAACpN,UAAhB,EAA4B;AACxByM,MAAAA,OAAO,CAAC4B,GAAR,CAAYC,IAAZ,CAAiBlB,WAAW,CAACpN,UAA7B;AACH;;AACD,QAAIoN,WAAW,CAAC9a,iBAAhB,EAAmC;AAC/B;AACA,YAAM0b,OAAO,GAAGH,mBAAmB,CAACZ,QAApB,CAA6BvO,KAA7B,CAAmC,GAAGqP,IAAtC,CAAhB;;AACA,WAAK,MAAM,CAACQ,IAAD,EAAOC,KAAP,CAAX,IAA4B1B,MAAM,CAACC,OAAP,CAAeK,WAAW,CAAC9a,iBAA3B,CAA5B,EAA2E;AACvE,YAAIic,IAAI,IAAIP,OAAZ,EAAqB;AACjBvB,UAAAA,OAAO,CAAC4B,GAAR,CAAYC,IAAZ,CAAkB,IAAGC,IAAK,0CAAyC3B,KAAM,IAAGI,UAAW,aAAYwB,KAAM,WAAzG;;AACA,cAAI,EAAEA,KAAK,IAAIR,OAAX,CAAJ,EAAyB;AACrBA,YAAAA,OAAO,CAACQ,KAAD,CAAP,GAAiBR,OAAO,CAACO,IAAD,CAAxB;AACH;;AACD,iBAAOP,OAAO,CAACO,IAAD,CAAd;AACH;AACJ;;AACD,aAAOV,mBAAmB,CAACG,OAAD,CAA1B;AACH,KA/B6B;;;AAiC9B,WAAOH,mBAAmB,CAAC,GAAGE,IAAJ,CAA1B;AACH;;AACD,SAAOjB,MAAM,CAACW,MAAP,CAAcK,eAAd,EAA+BD,mBAA/B,CAAP;AACH;;ACxDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,AAAO,SAASY,mBAAT,CAA6BhC,OAA7B,EAAsC;AACzC,SAAOD,kBAAkB,CAACC,OAAD,EAAUiC,SAAV,CAAzB;AACH;AACDD,mBAAmB,CAAClC,OAApB,GAA8BA,OAA9B;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js new file mode 100644 index 000000000..32c2f39a3 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js @@ -0,0 +1,60 @@ +export function endpointsToMethods(octokit, endpointsMap) { + const newMethods = {}; + for (const [scope, endpoints] of Object.entries(endpointsMap)) { + for (const [methodName, endpoint] of Object.entries(endpoints)) { + const [route, defaults, decorations] = endpoint; + const [method, url] = route.split(/ /); + const endpointDefaults = Object.assign({ method, url }, defaults); + if (!newMethods[scope]) { + newMethods[scope] = {}; + } + const scopeMethods = newMethods[scope]; + if (decorations) { + scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations); + continue; + } + scopeMethods[methodName] = octokit.request.defaults(endpointDefaults); + } + } + return newMethods; +} +function decorate(octokit, scope, methodName, defaults, decorations) { + const requestWithDefaults = octokit.request.defaults(defaults); + /* istanbul ignore next */ + function withDecorations(...args) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + let options = requestWithDefaults.endpoint.merge(...args); + // There are currently no other decorations than `.mapToData` + if (decorations.mapToData) { + options = Object.assign({}, options, { + data: options[decorations.mapToData], + [decorations.mapToData]: undefined, + }); + return requestWithDefaults(options); + } + if (decorations.renamed) { + const [newScope, newMethodName] = decorations.renamed; + octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`); + } + if (decorations.deprecated) { + octokit.log.warn(decorations.deprecated); + } + if (decorations.renamedParameters) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + const options = requestWithDefaults.endpoint.merge(...args); + for (const [name, alias] of Object.entries(decorations.renamedParameters)) { + if (name in options) { + octokit.log.warn(`"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead`); + if (!(alias in options)) { + options[alias] = options[name]; + } + delete options[name]; + } + } + return requestWithDefaults(options); + } + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + return requestWithDefaults(...args); + } + return Object.assign(withDecorations, requestWithDefaults); +} diff --git a/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js new file mode 100644 index 000000000..9d6c4cf6c --- /dev/null +++ b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js @@ -0,0 +1,1273 @@ +const Endpoints = { + actions: { + addSelectedRepoToOrgSecret: [ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}", + ], + cancelWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel", + ], + createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], + createOrUpdateRepoSecret: [ + "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}", + ], + createRegistrationTokenForOrg: [ + "POST /orgs/{org}/actions/runners/registration-token", + ], + createRegistrationTokenForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/registration-token", + ], + createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], + createRemoveTokenForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/remove-token", + ], + createWorkflowDispatch: [ + "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches", + ], + deleteArtifact: [ + "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}", + ], + deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], + deleteRepoSecret: [ + "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}", + ], + deleteSelfHostedRunnerFromOrg: [ + "DELETE /orgs/{org}/actions/runners/{runner_id}", + ], + deleteSelfHostedRunnerFromRepo: [ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}", + ], + deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"], + deleteWorkflowRunLogs: [ + "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs", + ], + disableSelectedRepositoryGithubActionsOrganization: [ + "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}", + ], + disableWorkflow: [ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable", + ], + downloadArtifact: [ + "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}", + ], + downloadJobLogsForWorkflowRun: [ + "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs", + ], + downloadWorkflowRunLogs: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs", + ], + enableSelectedRepositoryGithubActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}", + ], + enableWorkflow: [ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable", + ], + getAllowedActionsOrganization: [ + "GET /orgs/{org}/actions/permissions/selected-actions", + ], + getAllowedActionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions/selected-actions", + ], + getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], + getGithubActionsPermissionsOrganization: [ + "GET /orgs/{org}/actions/permissions", + ], + getGithubActionsPermissionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions", + ], + getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], + getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], + getRepoPermissions: [ + "GET /repos/{owner}/{repo}/actions/permissions", + {}, + { renamed: ["actions", "getGithubActionsPermissionsRepository"] }, + ], + getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], + getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], + getSelfHostedRunnerForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}", + ], + getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], + getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], + getWorkflowRunUsage: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing", + ], + getWorkflowUsage: [ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing", + ], + listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], + listJobsForWorkflowRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", + ], + listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], + listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], + listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], + listRunnerApplicationsForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/downloads", + ], + listSelectedReposForOrgSecret: [ + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", + ], + listSelectedRepositoriesEnabledGithubActionsOrganization: [ + "GET /orgs/{org}/actions/permissions/repositories", + ], + listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], + listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], + listWorkflowRunArtifacts: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", + ], + listWorkflowRuns: [ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", + ], + listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], + reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], + removeSelectedRepoFromOrgSecret: [ + "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}", + ], + setAllowedActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/selected-actions", + ], + setAllowedActionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions", + ], + setGithubActionsPermissionsOrganization: [ + "PUT /orgs/{org}/actions/permissions", + ], + setGithubActionsPermissionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions", + ], + setSelectedReposForOrgSecret: [ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories", + ], + setSelectedRepositoriesEnabledGithubActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/repositories", + ], + }, + activity: { + checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], + deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], + deleteThreadSubscription: [ + "DELETE /notifications/threads/{thread_id}/subscription", + ], + getFeeds: ["GET /feeds"], + getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], + getThread: ["GET /notifications/threads/{thread_id}"], + getThreadSubscriptionForAuthenticatedUser: [ + "GET /notifications/threads/{thread_id}/subscription", + ], + listEventsForAuthenticatedUser: ["GET /users/{username}/events"], + listNotificationsForAuthenticatedUser: ["GET /notifications"], + listOrgEventsForAuthenticatedUser: [ + "GET /users/{username}/events/orgs/{org}", + ], + listPublicEvents: ["GET /events"], + listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], + listPublicEventsForUser: ["GET /users/{username}/events/public"], + listPublicOrgEvents: ["GET /orgs/{org}/events"], + listReceivedEventsForUser: ["GET /users/{username}/received_events"], + listReceivedPublicEventsForUser: [ + "GET /users/{username}/received_events/public", + ], + listRepoEvents: ["GET /repos/{owner}/{repo}/events"], + listRepoNotificationsForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/notifications", + ], + listReposStarredByAuthenticatedUser: ["GET /user/starred"], + listReposStarredByUser: ["GET /users/{username}/starred"], + listReposWatchedByUser: ["GET /users/{username}/subscriptions"], + listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], + listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], + listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], + markNotificationsAsRead: ["PUT /notifications"], + markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], + markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], + setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], + setThreadSubscription: [ + "PUT /notifications/threads/{thread_id}/subscription", + ], + starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], + unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"], + }, + apps: { + addRepoToInstallation: [ + "PUT /user/installations/{installation_id}/repositories/{repository_id}", + ], + checkToken: ["POST /applications/{client_id}/token"], + createContentAttachment: [ + "POST /content_references/{content_reference_id}/attachments", + { mediaType: { previews: ["corsair"] } }, + ], + createFromManifest: ["POST /app-manifests/{code}/conversions"], + createInstallationAccessToken: [ + "POST /app/installations/{installation_id}/access_tokens", + ], + deleteAuthorization: ["DELETE /applications/{client_id}/grant"], + deleteInstallation: ["DELETE /app/installations/{installation_id}"], + deleteToken: ["DELETE /applications/{client_id}/token"], + getAuthenticated: ["GET /app"], + getBySlug: ["GET /apps/{app_slug}"], + getInstallation: ["GET /app/installations/{installation_id}"], + getOrgInstallation: ["GET /orgs/{org}/installation"], + getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"], + getSubscriptionPlanForAccount: [ + "GET /marketplace_listing/accounts/{account_id}", + ], + getSubscriptionPlanForAccountStubbed: [ + "GET /marketplace_listing/stubbed/accounts/{account_id}", + ], + getUserInstallation: ["GET /users/{username}/installation"], + getWebhookConfigForApp: ["GET /app/hook/config"], + listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], + listAccountsForPlanStubbed: [ + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", + ], + listInstallationReposForAuthenticatedUser: [ + "GET /user/installations/{installation_id}/repositories", + ], + listInstallations: ["GET /app/installations"], + listInstallationsForAuthenticatedUser: ["GET /user/installations"], + listPlans: ["GET /marketplace_listing/plans"], + listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], + listReposAccessibleToInstallation: ["GET /installation/repositories"], + listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], + listSubscriptionsForAuthenticatedUserStubbed: [ + "GET /user/marketplace_purchases/stubbed", + ], + removeRepoFromInstallation: [ + "DELETE /user/installations/{installation_id}/repositories/{repository_id}", + ], + resetToken: ["PATCH /applications/{client_id}/token"], + revokeInstallationAccessToken: ["DELETE /installation/token"], + suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], + unsuspendInstallation: [ + "DELETE /app/installations/{installation_id}/suspended", + ], + updateWebhookConfigForApp: ["PATCH /app/hook/config"], + }, + billing: { + getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"], + getGithubActionsBillingUser: [ + "GET /users/{username}/settings/billing/actions", + ], + getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"], + getGithubPackagesBillingUser: [ + "GET /users/{username}/settings/billing/packages", + ], + getSharedStorageBillingOrg: [ + "GET /orgs/{org}/settings/billing/shared-storage", + ], + getSharedStorageBillingUser: [ + "GET /users/{username}/settings/billing/shared-storage", + ], + }, + checks: { + create: ["POST /repos/{owner}/{repo}/check-runs"], + createSuite: ["POST /repos/{owner}/{repo}/check-suites"], + get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"], + getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"], + listAnnotations: [ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", + ], + listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"], + listForSuite: [ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", + ], + listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"], + rerequestSuite: [ + "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest", + ], + setSuitesPreferences: [ + "PATCH /repos/{owner}/{repo}/check-suites/preferences", + ], + update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"], + }, + codeScanning: { + getAlert: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", + {}, + { renamedParameters: { alert_id: "alert_number" } }, + ], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], + listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", + ], + uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"], + }, + codesOfConduct: { + getAllCodesOfConduct: [ + "GET /codes_of_conduct", + { mediaType: { previews: ["scarlet-witch"] } }, + ], + getConductCode: [ + "GET /codes_of_conduct/{key}", + { mediaType: { previews: ["scarlet-witch"] } }, + ], + getForRepo: [ + "GET /repos/{owner}/{repo}/community/code_of_conduct", + { mediaType: { previews: ["scarlet-witch"] } }, + ], + }, + emojis: { get: ["GET /emojis"] }, + enterpriseAdmin: { + disableSelectedOrganizationGithubActionsEnterprise: [ + "DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}", + ], + enableSelectedOrganizationGithubActionsEnterprise: [ + "PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}", + ], + getAllowedActionsEnterprise: [ + "GET /enterprises/{enterprise}/actions/permissions/selected-actions", + ], + getGithubActionsPermissionsEnterprise: [ + "GET /enterprises/{enterprise}/actions/permissions", + ], + listSelectedOrganizationsEnabledGithubActionsEnterprise: [ + "GET /enterprises/{enterprise}/actions/permissions/organizations", + ], + setAllowedActionsEnterprise: [ + "PUT /enterprises/{enterprise}/actions/permissions/selected-actions", + ], + setGithubActionsPermissionsEnterprise: [ + "PUT /enterprises/{enterprise}/actions/permissions", + ], + setSelectedOrganizationsEnabledGithubActionsEnterprise: [ + "PUT /enterprises/{enterprise}/actions/permissions/organizations", + ], + }, + gists: { + checkIsStarred: ["GET /gists/{gist_id}/star"], + create: ["POST /gists"], + createComment: ["POST /gists/{gist_id}/comments"], + delete: ["DELETE /gists/{gist_id}"], + deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], + fork: ["POST /gists/{gist_id}/forks"], + get: ["GET /gists/{gist_id}"], + getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], + getRevision: ["GET /gists/{gist_id}/{sha}"], + list: ["GET /gists"], + listComments: ["GET /gists/{gist_id}/comments"], + listCommits: ["GET /gists/{gist_id}/commits"], + listForUser: ["GET /users/{username}/gists"], + listForks: ["GET /gists/{gist_id}/forks"], + listPublic: ["GET /gists/public"], + listStarred: ["GET /gists/starred"], + star: ["PUT /gists/{gist_id}/star"], + unstar: ["DELETE /gists/{gist_id}/star"], + update: ["PATCH /gists/{gist_id}"], + updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"], + }, + git: { + createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], + createCommit: ["POST /repos/{owner}/{repo}/git/commits"], + createRef: ["POST /repos/{owner}/{repo}/git/refs"], + createTag: ["POST /repos/{owner}/{repo}/git/tags"], + createTree: ["POST /repos/{owner}/{repo}/git/trees"], + deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], + getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], + getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], + getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], + getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], + getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], + listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], + updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"], + }, + gitignore: { + getAllTemplates: ["GET /gitignore/templates"], + getTemplate: ["GET /gitignore/templates/{name}"], + }, + interactions: { + getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"], + getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"], + getRestrictionsForYourPublicRepos: ["GET /user/interaction-limits"], + removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"], + removeRestrictionsForRepo: [ + "DELETE /repos/{owner}/{repo}/interaction-limits", + ], + removeRestrictionsForYourPublicRepos: ["DELETE /user/interaction-limits"], + setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"], + setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"], + setRestrictionsForYourPublicRepos: ["PUT /user/interaction-limits"], + }, + issues: { + addAssignees: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees", + ], + addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], + checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], + create: ["POST /repos/{owner}/{repo}/issues"], + createComment: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/comments", + ], + createLabel: ["POST /repos/{owner}/{repo}/labels"], + createMilestone: ["POST /repos/{owner}/{repo}/milestones"], + deleteComment: [ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}", + ], + deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], + deleteMilestone: [ + "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}", + ], + get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], + getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], + getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], + getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], + getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], + list: ["GET /issues"], + listAssignees: ["GET /repos/{owner}/{repo}/assignees"], + listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], + listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], + listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], + listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], + listEventsForTimeline: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", + { mediaType: { previews: ["mockingbird"] } }, + ], + listForAuthenticatedUser: ["GET /user/issues"], + listForOrg: ["GET /orgs/{org}/issues"], + listForRepo: ["GET /repos/{owner}/{repo}/issues"], + listLabelsForMilestone: [ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", + ], + listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], + listLabelsOnIssue: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", + ], + listMilestones: ["GET /repos/{owner}/{repo}/milestones"], + lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], + removeAllLabels: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels", + ], + removeAssignees: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees", + ], + removeLabel: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", + ], + setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], + unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], + update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], + updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], + updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], + updateMilestone: [ + "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}", + ], + }, + licenses: { + get: ["GET /licenses/{license}"], + getAllCommonlyUsed: ["GET /licenses"], + getForRepo: ["GET /repos/{owner}/{repo}/license"], + }, + markdown: { + render: ["POST /markdown"], + renderRaw: [ + "POST /markdown/raw", + { headers: { "content-type": "text/plain; charset=utf-8" } }, + ], + }, + meta: { + get: ["GET /meta"], + getOctocat: ["GET /octocat"], + getZen: ["GET /zen"], + root: ["GET /"], + }, + migrations: { + cancelImport: ["DELETE /repos/{owner}/{repo}/import"], + deleteArchiveForAuthenticatedUser: [ + "DELETE /user/migrations/{migration_id}/archive", + { mediaType: { previews: ["wyandotte"] } }, + ], + deleteArchiveForOrg: [ + "DELETE /orgs/{org}/migrations/{migration_id}/archive", + { mediaType: { previews: ["wyandotte"] } }, + ], + downloadArchiveForOrg: [ + "GET /orgs/{org}/migrations/{migration_id}/archive", + { mediaType: { previews: ["wyandotte"] } }, + ], + getArchiveForAuthenticatedUser: [ + "GET /user/migrations/{migration_id}/archive", + { mediaType: { previews: ["wyandotte"] } }, + ], + getCommitAuthors: ["GET /repos/{owner}/{repo}/import/authors"], + getImportStatus: ["GET /repos/{owner}/{repo}/import"], + getLargeFiles: ["GET /repos/{owner}/{repo}/import/large_files"], + getStatusForAuthenticatedUser: [ + "GET /user/migrations/{migration_id}", + { mediaType: { previews: ["wyandotte"] } }, + ], + getStatusForOrg: [ + "GET /orgs/{org}/migrations/{migration_id}", + { mediaType: { previews: ["wyandotte"] } }, + ], + listForAuthenticatedUser: [ + "GET /user/migrations", + { mediaType: { previews: ["wyandotte"] } }, + ], + listForOrg: [ + "GET /orgs/{org}/migrations", + { mediaType: { previews: ["wyandotte"] } }, + ], + listReposForOrg: [ + "GET /orgs/{org}/migrations/{migration_id}/repositories", + { mediaType: { previews: ["wyandotte"] } }, + ], + listReposForUser: [ + "GET /user/migrations/{migration_id}/repositories", + { mediaType: { previews: ["wyandotte"] } }, + ], + mapCommitAuthor: ["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"], + setLfsPreference: ["PATCH /repos/{owner}/{repo}/import/lfs"], + startForAuthenticatedUser: ["POST /user/migrations"], + startForOrg: ["POST /orgs/{org}/migrations"], + startImport: ["PUT /repos/{owner}/{repo}/import"], + unlockRepoForAuthenticatedUser: [ + "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock", + { mediaType: { previews: ["wyandotte"] } }, + ], + unlockRepoForOrg: [ + "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock", + { mediaType: { previews: ["wyandotte"] } }, + ], + updateImport: ["PATCH /repos/{owner}/{repo}/import"], + }, + orgs: { + blockUser: ["PUT /orgs/{org}/blocks/{username}"], + checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], + checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], + checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], + convertMemberToOutsideCollaborator: [ + "PUT /orgs/{org}/outside_collaborators/{username}", + ], + createInvitation: ["POST /orgs/{org}/invitations"], + createWebhook: ["POST /orgs/{org}/hooks"], + deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], + get: ["GET /orgs/{org}"], + getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], + getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], + getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], + getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"], + list: ["GET /organizations"], + listAppInstallations: ["GET /orgs/{org}/installations"], + listBlockedUsers: ["GET /orgs/{org}/blocks"], + listForAuthenticatedUser: ["GET /user/orgs"], + listForUser: ["GET /users/{username}/orgs"], + listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], + listMembers: ["GET /orgs/{org}/members"], + listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], + listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], + listPendingInvitations: ["GET /orgs/{org}/invitations"], + listPublicMembers: ["GET /orgs/{org}/public_members"], + listWebhooks: ["GET /orgs/{org}/hooks"], + pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], + removeMember: ["DELETE /orgs/{org}/members/{username}"], + removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], + removeOutsideCollaborator: [ + "DELETE /orgs/{org}/outside_collaborators/{username}", + ], + removePublicMembershipForAuthenticatedUser: [ + "DELETE /orgs/{org}/public_members/{username}", + ], + setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], + setPublicMembershipForAuthenticatedUser: [ + "PUT /orgs/{org}/public_members/{username}", + ], + unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], + update: ["PATCH /orgs/{org}"], + updateMembershipForAuthenticatedUser: [ + "PATCH /user/memberships/orgs/{org}", + ], + updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"], + updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"], + }, + projects: { + addCollaborator: [ + "PUT /projects/{project_id}/collaborators/{username}", + { mediaType: { previews: ["inertia"] } }, + ], + createCard: [ + "POST /projects/columns/{column_id}/cards", + { mediaType: { previews: ["inertia"] } }, + ], + createColumn: [ + "POST /projects/{project_id}/columns", + { mediaType: { previews: ["inertia"] } }, + ], + createForAuthenticatedUser: [ + "POST /user/projects", + { mediaType: { previews: ["inertia"] } }, + ], + createForOrg: [ + "POST /orgs/{org}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + createForRepo: [ + "POST /repos/{owner}/{repo}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + delete: [ + "DELETE /projects/{project_id}", + { mediaType: { previews: ["inertia"] } }, + ], + deleteCard: [ + "DELETE /projects/columns/cards/{card_id}", + { mediaType: { previews: ["inertia"] } }, + ], + deleteColumn: [ + "DELETE /projects/columns/{column_id}", + { mediaType: { previews: ["inertia"] } }, + ], + get: [ + "GET /projects/{project_id}", + { mediaType: { previews: ["inertia"] } }, + ], + getCard: [ + "GET /projects/columns/cards/{card_id}", + { mediaType: { previews: ["inertia"] } }, + ], + getColumn: [ + "GET /projects/columns/{column_id}", + { mediaType: { previews: ["inertia"] } }, + ], + getPermissionForUser: [ + "GET /projects/{project_id}/collaborators/{username}/permission", + { mediaType: { previews: ["inertia"] } }, + ], + listCards: [ + "GET /projects/columns/{column_id}/cards", + { mediaType: { previews: ["inertia"] } }, + ], + listCollaborators: [ + "GET /projects/{project_id}/collaborators", + { mediaType: { previews: ["inertia"] } }, + ], + listColumns: [ + "GET /projects/{project_id}/columns", + { mediaType: { previews: ["inertia"] } }, + ], + listForOrg: [ + "GET /orgs/{org}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + listForRepo: [ + "GET /repos/{owner}/{repo}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + listForUser: [ + "GET /users/{username}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + moveCard: [ + "POST /projects/columns/cards/{card_id}/moves", + { mediaType: { previews: ["inertia"] } }, + ], + moveColumn: [ + "POST /projects/columns/{column_id}/moves", + { mediaType: { previews: ["inertia"] } }, + ], + removeCollaborator: [ + "DELETE /projects/{project_id}/collaborators/{username}", + { mediaType: { previews: ["inertia"] } }, + ], + update: [ + "PATCH /projects/{project_id}", + { mediaType: { previews: ["inertia"] } }, + ], + updateCard: [ + "PATCH /projects/columns/cards/{card_id}", + { mediaType: { previews: ["inertia"] } }, + ], + updateColumn: [ + "PATCH /projects/columns/{column_id}", + { mediaType: { previews: ["inertia"] } }, + ], + }, + pulls: { + checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + create: ["POST /repos/{owner}/{repo}/pulls"], + createReplyForReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies", + ], + createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + createReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments", + ], + deletePendingReview: [ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", + ], + deleteReviewComment: [ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}", + ], + dismissReview: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals", + ], + get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], + getReview: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", + ], + getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], + list: ["GET /repos/{owner}/{repo}/pulls"], + listCommentsForReview: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", + ], + listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], + listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], + listRequestedReviewers: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", + ], + listReviewComments: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", + ], + listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], + listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + removeRequestedReviewers: [ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", + ], + requestReviewers: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", + ], + submitReview: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events", + ], + update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], + updateBranch: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch", + { mediaType: { previews: ["lydian"] } }, + ], + updateReview: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", + ], + updateReviewComment: [ + "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}", + ], + }, + rateLimit: { get: ["GET /rate_limit"] }, + reactions: { + createForCommitComment: [ + "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + createForIssue: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + createForIssueComment: [ + "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + createForPullRequestReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + createForTeamDiscussionCommentInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + createForTeamDiscussionInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForCommitComment: [ + "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForIssue: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForIssueComment: [ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForPullRequestComment: [ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForTeamDiscussion: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForTeamDiscussionComment: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteLegacy: [ + "DELETE /reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + { + deprecated: "octokit.reactions.deleteLegacy() is deprecated, see https://docs.github.com/v3/reactions/#delete-a-reaction-legacy", + }, + ], + listForCommitComment: [ + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + listForIssue: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + listForIssueComment: [ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + listForPullRequestReviewComment: [ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + listForTeamDiscussionCommentInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + listForTeamDiscussionInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + }, + repos: { + acceptInvitation: ["PATCH /user/repository_invitations/{invitation_id}"], + addAppAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" }, + ], + addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], + addStatusCheckContexts: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" }, + ], + addTeamAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" }, + ], + addUserAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" }, + ], + checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], + checkVulnerabilityAlerts: [ + "GET /repos/{owner}/{repo}/vulnerability-alerts", + { mediaType: { previews: ["dorian"] } }, + ], + compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], + createCommitComment: [ + "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments", + ], + createCommitSignatureProtection: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", + { mediaType: { previews: ["zzzax"] } }, + ], + createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], + createDeployKey: ["POST /repos/{owner}/{repo}/keys"], + createDeployment: ["POST /repos/{owner}/{repo}/deployments"], + createDeploymentStatus: [ + "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", + ], + createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], + createForAuthenticatedUser: ["POST /user/repos"], + createFork: ["POST /repos/{owner}/{repo}/forks"], + createInOrg: ["POST /orgs/{org}/repos"], + createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], + createPagesSite: [ + "POST /repos/{owner}/{repo}/pages", + { mediaType: { previews: ["switcheroo"] } }, + ], + createRelease: ["POST /repos/{owner}/{repo}/releases"], + createUsingTemplate: [ + "POST /repos/{template_owner}/{template_repo}/generate", + { mediaType: { previews: ["baptiste"] } }, + ], + createWebhook: ["POST /repos/{owner}/{repo}/hooks"], + declineInvitation: ["DELETE /user/repository_invitations/{invitation_id}"], + delete: ["DELETE /repos/{owner}/{repo}"], + deleteAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions", + ], + deleteAdminBranchProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", + ], + deleteBranchProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection", + ], + deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], + deleteCommitSignatureProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", + { mediaType: { previews: ["zzzax"] } }, + ], + deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], + deleteDeployment: [ + "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}", + ], + deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], + deleteInvitation: [ + "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}", + ], + deletePagesSite: [ + "DELETE /repos/{owner}/{repo}/pages", + { mediaType: { previews: ["switcheroo"] } }, + ], + deletePullRequestReviewProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", + ], + deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], + deleteReleaseAsset: [ + "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}", + ], + deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], + disableAutomatedSecurityFixes: [ + "DELETE /repos/{owner}/{repo}/automated-security-fixes", + { mediaType: { previews: ["london"] } }, + ], + disableVulnerabilityAlerts: [ + "DELETE /repos/{owner}/{repo}/vulnerability-alerts", + { mediaType: { previews: ["dorian"] } }, + ], + downloadArchive: [ + "GET /repos/{owner}/{repo}/zipball/{ref}", + {}, + { renamed: ["repos", "downloadZipballArchive"] }, + ], + downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"], + downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"], + enableAutomatedSecurityFixes: [ + "PUT /repos/{owner}/{repo}/automated-security-fixes", + { mediaType: { previews: ["london"] } }, + ], + enableVulnerabilityAlerts: [ + "PUT /repos/{owner}/{repo}/vulnerability-alerts", + { mediaType: { previews: ["dorian"] } }, + ], + get: ["GET /repos/{owner}/{repo}"], + getAccessRestrictions: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions", + ], + getAdminBranchProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", + ], + getAllStatusCheckContexts: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + ], + getAllTopics: [ + "GET /repos/{owner}/{repo}/topics", + { mediaType: { previews: ["mercy"] } }, + ], + getAppsWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + ], + getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], + getBranchProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection", + ], + getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], + getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], + getCollaboratorPermissionLevel: [ + "GET /repos/{owner}/{repo}/collaborators/{username}/permission", + ], + getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], + getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], + getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], + getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], + getCommitSignatureProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", + { mediaType: { previews: ["zzzax"] } }, + ], + getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], + getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], + getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], + getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], + getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], + getDeploymentStatus: [ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}", + ], + getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], + getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], + getPages: ["GET /repos/{owner}/{repo}/pages"], + getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], + getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], + getPullRequestReviewProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", + ], + getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], + getReadme: ["GET /repos/{owner}/{repo}/readme"], + getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], + getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], + getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], + getStatusChecksProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + ], + getTeamsWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + ], + getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], + getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], + getUsersWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + ], + getViews: ["GET /repos/{owner}/{repo}/traffic/views"], + getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], + getWebhookConfigForRepo: [ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/config", + ], + listBranches: ["GET /repos/{owner}/{repo}/branches"], + listBranchesForHeadCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", + { mediaType: { previews: ["groot"] } }, + ], + listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], + listCommentsForCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", + ], + listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], + listCommitStatusesForRef: [ + "GET /repos/{owner}/{repo}/commits/{ref}/statuses", + ], + listCommits: ["GET /repos/{owner}/{repo}/commits"], + listContributors: ["GET /repos/{owner}/{repo}/contributors"], + listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], + listDeploymentStatuses: [ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", + ], + listDeployments: ["GET /repos/{owner}/{repo}/deployments"], + listForAuthenticatedUser: ["GET /user/repos"], + listForOrg: ["GET /orgs/{org}/repos"], + listForUser: ["GET /users/{username}/repos"], + listForks: ["GET /repos/{owner}/{repo}/forks"], + listInvitations: ["GET /repos/{owner}/{repo}/invitations"], + listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], + listLanguages: ["GET /repos/{owner}/{repo}/languages"], + listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], + listPublic: ["GET /repositories"], + listPullRequestsAssociatedWithCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", + { mediaType: { previews: ["groot"] } }, + ], + listReleaseAssets: [ + "GET /repos/{owner}/{repo}/releases/{release_id}/assets", + ], + listReleases: ["GET /repos/{owner}/{repo}/releases"], + listTags: ["GET /repos/{owner}/{repo}/tags"], + listTeams: ["GET /repos/{owner}/{repo}/teams"], + listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], + merge: ["POST /repos/{owner}/{repo}/merges"], + pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], + removeAppAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" }, + ], + removeCollaborator: [ + "DELETE /repos/{owner}/{repo}/collaborators/{username}", + ], + removeStatusCheckContexts: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" }, + ], + removeStatusCheckProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + ], + removeTeamAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" }, + ], + removeUserAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" }, + ], + replaceAllTopics: [ + "PUT /repos/{owner}/{repo}/topics", + { mediaType: { previews: ["mercy"] } }, + ], + requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], + setAdminBranchProtection: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", + ], + setAppAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" }, + ], + setStatusCheckContexts: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" }, + ], + setTeamAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" }, + ], + setUserAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" }, + ], + testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], + transfer: ["POST /repos/{owner}/{repo}/transfer"], + update: ["PATCH /repos/{owner}/{repo}"], + updateBranchProtection: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection", + ], + updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], + updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], + updateInvitation: [ + "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}", + ], + updatePullRequestReviewProtection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", + ], + updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], + updateReleaseAsset: [ + "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}", + ], + updateStatusCheckPotection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + {}, + { renamed: ["repos", "updateStatusCheckProtection"] }, + ], + updateStatusCheckProtection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + ], + updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], + updateWebhookConfigForRepo: [ + "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config", + ], + uploadReleaseAsset: [ + "POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", + { baseUrl: "https://uploads.github.com" }, + ], + }, + search: { + code: ["GET /search/code"], + commits: ["GET /search/commits", { mediaType: { previews: ["cloak"] } }], + issuesAndPullRequests: ["GET /search/issues"], + labels: ["GET /search/labels"], + repos: ["GET /search/repositories"], + topics: ["GET /search/topics", { mediaType: { previews: ["mercy"] } }], + users: ["GET /search/users"], + }, + secretScanning: { + getAlert: [ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}", + ], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}", + ], + }, + teams: { + addOrUpdateMembershipForUserInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}", + ], + addOrUpdateProjectPermissionsInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}", + { mediaType: { previews: ["inertia"] } }, + ], + addOrUpdateRepoPermissionsInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", + ], + checkPermissionsForProjectInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/projects/{project_id}", + { mediaType: { previews: ["inertia"] } }, + ], + checkPermissionsForRepoInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", + ], + create: ["POST /orgs/{org}/teams"], + createDiscussionCommentInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", + ], + createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], + deleteDiscussionCommentInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", + ], + deleteDiscussionInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", + ], + deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], + getByName: ["GET /orgs/{org}/teams/{team_slug}"], + getDiscussionCommentInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", + ], + getDiscussionInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", + ], + getMembershipForUserInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/memberships/{username}", + ], + list: ["GET /orgs/{org}/teams"], + listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], + listDiscussionCommentsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", + ], + listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], + listForAuthenticatedUser: ["GET /user/teams"], + listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], + listPendingInvitationsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/invitations", + ], + listProjectsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], + removeMembershipForUserInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}", + ], + removeProjectInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}", + ], + removeRepoInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", + ], + updateDiscussionCommentInOrg: [ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", + ], + updateDiscussionInOrg: [ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", + ], + updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"], + }, + users: { + addEmailForAuthenticated: ["POST /user/emails"], + block: ["PUT /user/blocks/{username}"], + checkBlocked: ["GET /user/blocks/{username}"], + checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], + checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], + createGpgKeyForAuthenticated: ["POST /user/gpg_keys"], + createPublicSshKeyForAuthenticated: ["POST /user/keys"], + deleteEmailForAuthenticated: ["DELETE /user/emails"], + deleteGpgKeyForAuthenticated: ["DELETE /user/gpg_keys/{gpg_key_id}"], + deletePublicSshKeyForAuthenticated: ["DELETE /user/keys/{key_id}"], + follow: ["PUT /user/following/{username}"], + getAuthenticated: ["GET /user"], + getByUsername: ["GET /users/{username}"], + getContextForUser: ["GET /users/{username}/hovercard"], + getGpgKeyForAuthenticated: ["GET /user/gpg_keys/{gpg_key_id}"], + getPublicSshKeyForAuthenticated: ["GET /user/keys/{key_id}"], + list: ["GET /users"], + listBlockedByAuthenticated: ["GET /user/blocks"], + listEmailsForAuthenticated: ["GET /user/emails"], + listFollowedByAuthenticated: ["GET /user/following"], + listFollowersForAuthenticatedUser: ["GET /user/followers"], + listFollowersForUser: ["GET /users/{username}/followers"], + listFollowingForUser: ["GET /users/{username}/following"], + listGpgKeysForAuthenticated: ["GET /user/gpg_keys"], + listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], + listPublicEmailsForAuthenticated: ["GET /user/public_emails"], + listPublicKeysForUser: ["GET /users/{username}/keys"], + listPublicSshKeysForAuthenticated: ["GET /user/keys"], + setPrimaryEmailVisibilityForAuthenticated: ["PATCH /user/email/visibility"], + unblock: ["DELETE /user/blocks/{username}"], + unfollow: ["DELETE /user/following/{username}"], + updateAuthenticated: ["PATCH /user"], + }, +}; +export default Endpoints; diff --git a/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/method-types.js b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/method-types.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/method-types.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/parameters-and-response-types.js b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/parameters-and-response-types.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/parameters-and-response-types.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js new file mode 100644 index 000000000..0535b19eb --- /dev/null +++ b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js @@ -0,0 +1,17 @@ +import ENDPOINTS from "./generated/endpoints"; +import { VERSION } from "./version"; +import { endpointsToMethods } from "./endpoints-to-methods"; +/** + * This plugin is a 1:1 copy of internal @octokit/rest plugins. The primary + * goal is to rebuild @octokit/rest on top of @octokit/core. Once that is + * done, we will remove the registerEndpoints methods and return the methods + * directly as with the other plugins. At that point we will also remove the + * legacy workarounds and deprecations. + * + * See the plan at + * https://github.com/octokit/plugin-rest-endpoint-methods.js/pull/1 + */ +export function restEndpointMethods(octokit) { + return endpointsToMethods(octokit, ENDPOINTS); +} +restEndpointMethods.VERSION = VERSION; diff --git a/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/types.js b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/types.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/types.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js new file mode 100644 index 000000000..f2c83e1dc --- /dev/null +++ b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js @@ -0,0 +1 @@ +export const VERSION = "4.4.1"; diff --git a/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/endpoints-to-methods.d.ts b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/endpoints-to-methods.d.ts new file mode 100644 index 000000000..2a97a4b4e --- /dev/null +++ b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/endpoints-to-methods.d.ts @@ -0,0 +1,4 @@ +import { Octokit } from "@octokit/core"; +import { EndpointsDefaultsAndDecorations } from "./types"; +import { RestEndpointMethods } from "./generated/method-types"; +export declare function endpointsToMethods(octokit: Octokit, endpointsMap: EndpointsDefaultsAndDecorations): RestEndpointMethods; diff --git a/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/endpoints.d.ts b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/endpoints.d.ts new file mode 100644 index 000000000..a3c1d92ad --- /dev/null +++ b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/endpoints.d.ts @@ -0,0 +1,3 @@ +import { EndpointsDefaultsAndDecorations } from "../types"; +declare const Endpoints: EndpointsDefaultsAndDecorations; +export default Endpoints; diff --git a/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/method-types.d.ts b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/method-types.d.ts new file mode 100644 index 000000000..89af191d4 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/method-types.d.ts @@ -0,0 +1,7180 @@ +import { EndpointInterface, RequestInterface } from "@octokit/types"; +import { RestEndpointMethodTypes } from "./parameters-and-response-types"; +export declare type RestEndpointMethods = { + actions: { + /** + * Adds a repository to an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + addSelectedRepoToOrgSecret: { + (params?: RestEndpointMethodTypes["actions"]["addSelectedRepoToOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Cancels a workflow run using its `id`. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + cancelWorkflowRun: { + (params?: RestEndpointMethodTypes["actions"]["cancelWorkflowRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates or updates an organization secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to + * use this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + createOrUpdateOrgSecret: { + (params?: RestEndpointMethodTypes["actions"]["createOrUpdateOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates or updates a repository secret with an encrypted value. Encrypt your secret using + * [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages). You must authenticate using an access + * token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use + * this endpoint. + * + * #### Example encrypting a secret using Node.js + * + * Encrypt your secret using the [tweetsodium](https://github.com/github/tweetsodium) library. + * + * ``` + * const sodium = require('tweetsodium'); + * + * const key = "base64-encoded-public-key"; + * const value = "plain-text-secret"; + * + * // Convert the message and key to Uint8Array's (Buffer implements that interface) + * const messageBytes = Buffer.from(value); + * const keyBytes = Buffer.from(key, 'base64'); + * + * // Encrypt using LibSodium. + * const encryptedBytes = sodium.seal(messageBytes, keyBytes); + * + * // Base64 the encrypted secret + * const encrypted = Buffer.from(encryptedBytes).toString('base64'); + * + * console.log(encrypted); + * ``` + * + * + * #### Example encrypting a secret using Python + * + * Encrypt your secret using [pynacl](https://pynacl.readthedocs.io/en/stable/public/#nacl-public-sealedbox) with Python 3. + * + * ``` + * from base64 import b64encode + * from nacl import encoding, public + * + * def encrypt(public_key: str, secret_value: str) -> str: + * """Encrypt a Unicode string using the public key.""" + * public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder()) + * sealed_box = public.SealedBox(public_key) + * encrypted = sealed_box.encrypt(secret_value.encode("utf-8")) + * return b64encode(encrypted).decode("utf-8") + * ``` + * + * #### Example encrypting a secret using C# + * + * Encrypt your secret using the [Sodium.Core](https://www.nuget.org/packages/Sodium.Core/) package. + * + * ``` + * var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret"); + * var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU="); + * + * var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey); + * + * Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox)); + * ``` + * + * #### Example encrypting a secret using Ruby + * + * Encrypt your secret using the [rbnacl](https://github.com/RubyCrypto/rbnacl) gem. + * + * ```ruby + * require "rbnacl" + * require "base64" + * + * key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=") + * public_key = RbNaCl::PublicKey.new(key) + * + * box = RbNaCl::Boxes::Sealed.from_public_key(public_key) + * encrypted_secret = box.encrypt("my_secret") + * + * # Print the base64 encoded secret + * puts Base64.strict_encode64(encrypted_secret) + * ``` + */ + createOrUpdateRepoSecret: { + (params?: RestEndpointMethodTypes["actions"]["createOrUpdateRepoSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a token that you can pass to the `config` script. The token expires after one hour. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * + * #### Example using registration token + * + * Configure your self-hosted runner, replacing `TOKEN` with the registration token provided by this endpoint. + * + * ``` + * ./config.sh --url https://github.com/octo-org --token TOKEN + * ``` + */ + createRegistrationTokenForOrg: { + (params?: RestEndpointMethodTypes["actions"]["createRegistrationTokenForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a token that you can pass to the `config` script. The token expires after one hour. You must authenticate + * using an access token with the `repo` scope to use this endpoint. + * + * #### Example using registration token + * + * Configure your self-hosted runner, replacing `TOKEN` with the registration token provided by this endpoint. + * + * ``` + * ./config.sh --url https://github.com/octo-org/octo-repo-artifacts --token TOKEN + * ``` + */ + createRegistrationTokenForRepo: { + (params?: RestEndpointMethodTypes["actions"]["createRegistrationTokenForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a token that you can pass to the `config` script to remove a self-hosted runner from an organization. The token expires after one hour. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + * + * #### Example using remove token + * + * To remove your self-hosted runner from an organization, replace `TOKEN` with the remove token provided by this + * endpoint. + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + */ + createRemoveTokenForOrg: { + (params?: RestEndpointMethodTypes["actions"]["createRemoveTokenForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a token that you can pass to remove a self-hosted runner from a repository. The token expires after one hour. + * You must authenticate using an access token with the `repo` scope to use this endpoint. + * + * #### Example using remove token + * + * To remove your self-hosted runner from a repository, replace TOKEN with the remove token provided by this endpoint. + * + * ``` + * ./config.sh remove --token TOKEN + * ``` + */ + createRemoveTokenForRepo: { + (params?: RestEndpointMethodTypes["actions"]["createRemoveTokenForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You can use this endpoint to manually trigger a GitHub Actions workflow run. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must configure your GitHub Actions workflow to run when the [`workflow_dispatch` webhook](/developers/webhooks-and-events/webhook-events-and-payloads#workflow_dispatch) event occurs. The `inputs` are configured in the workflow file. For more information about how to configure the `workflow_dispatch` event in the workflow file, see "[Events that trigger workflows](/actions/reference/events-that-trigger-workflows#workflow_dispatch)." + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. For more information, see "[Creating a personal access token for the command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line)." + */ + createWorkflowDispatch: { + (params?: RestEndpointMethodTypes["actions"]["createWorkflowDispatch"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes an artifact for a workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + deleteArtifact: { + (params?: RestEndpointMethodTypes["actions"]["deleteArtifact"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a secret in an organization using the secret name. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + deleteOrgSecret: { + (params?: RestEndpointMethodTypes["actions"]["deleteOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a secret in a repository using the secret name. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. + */ + deleteRepoSecret: { + (params?: RestEndpointMethodTypes["actions"]["deleteRepoSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Forces the removal of a self-hosted runner from an organization. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + deleteSelfHostedRunnerFromOrg: { + (params?: RestEndpointMethodTypes["actions"]["deleteSelfHostedRunnerFromOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Forces the removal of a self-hosted runner from a repository. You can use this endpoint to completely remove the runner when the machine you were using no longer exists. + * + * You must authenticate using an access token with the `repo` + * scope to use this endpoint. + */ + deleteSelfHostedRunnerFromRepo: { + (params?: RestEndpointMethodTypes["actions"]["deleteSelfHostedRunnerFromRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Delete a specific workflow run. Anyone with write access to the repository can use this endpoint. If the repository is + * private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:write` permission to use + * this endpoint. + */ + deleteWorkflowRun: { + (params?: RestEndpointMethodTypes["actions"]["deleteWorkflowRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes all logs for a workflow run. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + deleteWorkflowRunLogs: { + (params?: RestEndpointMethodTypes["actions"]["deleteWorkflowRunLogs"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a repository from the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + disableSelectedRepositoryGithubActionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["disableSelectedRepositoryGithubActionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Disables a workflow and sets the `state` of the workflow to `disabled_manually`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + disableWorkflow: { + (params?: RestEndpointMethodTypes["actions"]["disableWorkflow"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a redirect URL to download an archive for a repository. This URL expires after 1 minute. Look for `Location:` in + * the response header to find the URL for the download. The `:archive_format` must be `zip`. Anyone with read access to + * the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. + * GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + downloadArtifact: { + (params?: RestEndpointMethodTypes["actions"]["downloadArtifact"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a redirect URL to download a plain text file of logs for a workflow job. This link expires after 1 minute. Look + * for `Location:` in the response header to find the URL for the download. Anyone with read access to the repository can + * use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must + * have the `actions:read` permission to use this endpoint. + */ + downloadJobLogsForWorkflowRun: { + (params?: RestEndpointMethodTypes["actions"]["downloadJobLogsForWorkflowRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a redirect URL to download an archive of log files for a workflow run. This link expires after 1 minute. Look for + * `Location:` in the response header to find the URL for the download. Anyone with read access to the repository can use + * this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have + * the `actions:read` permission to use this endpoint. + */ + downloadWorkflowRunLogs: { + (params?: RestEndpointMethodTypes["actions"]["downloadWorkflowRunLogs"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Adds a repository to the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + enableSelectedRepositoryGithubActionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["enableSelectedRepositoryGithubActionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables a workflow and sets the `state` of the workflow to `active`. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + enableWorkflow: { + (params?: RestEndpointMethodTypes["actions"]["enableWorkflow"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the selected actions that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)."" + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + getAllowedActionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["getAllowedActionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the settings for selected actions that are allowed in a repository. To use this endpoint, the repository policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API. + */ + getAllowedActionsRepository: { + (params?: RestEndpointMethodTypes["actions"]["getAllowedActionsRepository"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific artifact for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + getArtifact: { + (params?: RestEndpointMethodTypes["actions"]["getArtifact"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the GitHub Actions permissions policy for repositories and allowed actions in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + getGithubActionsPermissionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["getGithubActionsPermissionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions allowed to run in the repository. + * + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. GitHub Apps must have the `administration` repository permission to use this API. + */ + getGithubActionsPermissionsRepository: { + (params?: RestEndpointMethodTypes["actions"]["getGithubActionsPermissionsRepository"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific job in a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + getJobForWorkflowRun: { + (params?: RestEndpointMethodTypes["actions"]["getJobForWorkflowRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + getOrgPublicKey: { + (params?: RestEndpointMethodTypes["actions"]["getOrgPublicKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a single organization secret without revealing its encrypted value. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + getOrgSecret: { + (params?: RestEndpointMethodTypes["actions"]["getOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions allowed to run in the repository. + * + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. GitHub Apps must have the `administration` repository permission to use this API. + * @deprecated octokit.actions.getRepoPermissions() has been renamed to octokit.actions.getGithubActionsPermissionsRepository() (2020-11-10) + */ + getRepoPermissions: { + (params?: RestEndpointMethodTypes["actions"]["getRepoPermissions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `secrets` repository permission to use this endpoint. + */ + getRepoPublicKey: { + (params?: RestEndpointMethodTypes["actions"]["getRepoPublicKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a single repository secret without revealing its encrypted value. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. + */ + getRepoSecret: { + (params?: RestEndpointMethodTypes["actions"]["getRepoSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific self-hosted runner configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + getSelfHostedRunnerForOrg: { + (params?: RestEndpointMethodTypes["actions"]["getSelfHostedRunnerForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific self-hosted runner configured in a repository. + * + * You must authenticate using an access token with the `repo` scope to use this + * endpoint. + */ + getSelfHostedRunnerForRepo: { + (params?: RestEndpointMethodTypes["actions"]["getSelfHostedRunnerForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + getWorkflow: { + (params?: RestEndpointMethodTypes["actions"]["getWorkflow"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a specific workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + getWorkflowRun: { + (params?: RestEndpointMethodTypes["actions"]["getWorkflowRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the number of billable minutes and total run time for a specific workflow run. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + getWorkflowRunUsage: { + (params?: RestEndpointMethodTypes["actions"]["getWorkflowRunUsage"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the number of billable minutes used by a specific workflow during the current billing cycle. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + getWorkflowUsage: { + (params?: RestEndpointMethodTypes["actions"]["getWorkflowUsage"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all artifacts for a repository. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + listArtifactsForRepo: { + (params?: RestEndpointMethodTypes["actions"]["listArtifactsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists jobs for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters). + */ + listJobsForWorkflowRun: { + (params?: RestEndpointMethodTypes["actions"]["listJobsForWorkflowRun"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all secrets available in an organization without revealing their encrypted values. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + listOrgSecrets: { + (params?: RestEndpointMethodTypes["actions"]["listOrgSecrets"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all secrets available in a repository without revealing their encrypted values. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `secrets` repository permission to use this endpoint. + */ + listRepoSecrets: { + (params?: RestEndpointMethodTypes["actions"]["listRepoSecrets"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the workflows in a repository. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + listRepoWorkflows: { + (params?: RestEndpointMethodTypes["actions"]["listRepoWorkflows"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists binaries for the runner application that you can download and run. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + listRunnerApplicationsForOrg: { + (params?: RestEndpointMethodTypes["actions"]["listRunnerApplicationsForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists binaries for the runner application that you can download and run. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. + */ + listRunnerApplicationsForRepo: { + (params?: RestEndpointMethodTypes["actions"]["listRunnerApplicationsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all repositories that have been selected when the `visibility` for repository access to a secret is set to `selected`. You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + listSelectedReposForOrgSecret: { + (params?: RestEndpointMethodTypes["actions"]["listSelectedReposForOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + listSelectedRepositoriesEnabledGithubActionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["listSelectedRepositoriesEnabledGithubActionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all self-hosted runners configured in an organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. + */ + listSelfHostedRunnersForOrg: { + (params?: RestEndpointMethodTypes["actions"]["listSelfHostedRunnersForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all self-hosted runners configured in a repository. You must authenticate using an access token with the `repo` scope to use this endpoint. + */ + listSelfHostedRunnersForRepo: { + (params?: RestEndpointMethodTypes["actions"]["listSelfHostedRunnersForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists artifacts for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + listWorkflowRunArtifacts: { + (params?: RestEndpointMethodTypes["actions"]["listWorkflowRunArtifacts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all workflow runs for a workflow. You can replace `workflow_id` with the workflow file name. For example, you could use `main.yaml`. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. + */ + listWorkflowRuns: { + (params?: RestEndpointMethodTypes["actions"]["listWorkflowRuns"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all workflow runs for a repository. You can use parameters to narrow the list of results. For more information about using parameters, see [Parameters](https://docs.github.com/rest/overview/resources-in-the-rest-api#parameters). + * + * Anyone with read access to the repository can use this endpoint. If the repository is private you must use an access token with the `repo` scope. GitHub Apps must have the `actions:read` permission to use this endpoint. + */ + listWorkflowRunsForRepo: { + (params?: RestEndpointMethodTypes["actions"]["listWorkflowRunsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Re-runs your workflow run using its `id`. You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `actions:write` permission to use this endpoint. + */ + reRunWorkflow: { + (params?: RestEndpointMethodTypes["actions"]["reRunWorkflow"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a repository from an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + removeSelectedRepoFromOrgSecret: { + (params?: RestEndpointMethodTypes["actions"]["removeSelectedRepoFromOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the actions that are allowed in an organization. To use this endpoint, the organization permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * If the organization belongs to an enterprise that has `selected` actions set at the enterprise level, then you cannot override any of the enterprise's allowed actions settings. + * + * To use the `patterns_allowed` setting for private repositories, the organization must belong to an enterprise. If the organization does not belong to an enterprise, then the `patterns_allowed` setting only applies to public repositories in the organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + setAllowedActionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["setAllowedActionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the actions that are allowed in a repository. To use this endpoint, the repository permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for a repository](#set-github-actions-permissions-for-a-repository)." + * + * If the repository belongs to an organization or enterprise that has `selected` actions set at the organization or enterprise levels, then you cannot override any of the allowed actions settings. + * + * To use the `patterns_allowed` setting for private repositories, the repository must belong to an enterprise. If the repository does not belong to an enterprise, then the `patterns_allowed` setting only applies to public repositories. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API. + */ + setAllowedActionsRepository: { + (params?: RestEndpointMethodTypes["actions"]["setAllowedActionsRepository"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the GitHub Actions permissions policy for repositories and allowed actions in an organization. + * + * If the organization belongs to an enterprise that has set restrictive permissions at the enterprise level, such as `allowed_actions` to `selected` actions, then you cannot override them for the organization. + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + setGithubActionsPermissionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["setGithubActionsPermissionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the GitHub Actions permissions policy for enabling GitHub Actions and allowed actions in the repository. + * + * If the repository belongs to an organization or enterprise that has set restrictive permissions at the organization or enterprise levels, such as `allowed_actions` to `selected` actions, then you cannot override them for the repository. + * + * You must authenticate using an access token with the `repo` scope to use this endpoint. GitHub Apps must have the `administration` repository permission to use this API. + */ + setGithubActionsPermissionsRepository: { + (params?: RestEndpointMethodTypes["actions"]["setGithubActionsPermissionsRepository"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Replaces all repositories for an organization secret when the `visibility` for repository access is set to `selected`. The visibility is set when you [Create or update an organization secret](https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret). You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `secrets` organization permission to use this endpoint. + */ + setSelectedReposForOrgSecret: { + (params?: RestEndpointMethodTypes["actions"]["setSelectedReposForOrgSecret"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Replaces the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for `enabled_repositories` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an organization](#set-github-actions-permissions-for-an-organization)." + * + * You must authenticate using an access token with the `admin:org` scope to use this endpoint. GitHub Apps must have the `administration` organization permission to use this API. + */ + setSelectedRepositoriesEnabledGithubActionsOrganization: { + (params?: RestEndpointMethodTypes["actions"]["setSelectedRepositoriesEnabledGithubActionsOrganization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + activity: { + checkRepoIsStarredByAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["checkRepoIsStarredByAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint should only be used to stop watching a repository. To control whether or not you wish to receive notifications from a repository, [set the repository's subscription manually](https://docs.github.com/rest/reference/activity#set-a-repository-subscription). + */ + deleteRepoSubscription: { + (params?: RestEndpointMethodTypes["activity"]["deleteRepoSubscription"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Mutes all future notifications for a conversation until you comment on the thread or get an **@mention**. If you are watching the repository of the thread, you will still receive notifications. To ignore future notifications for a repository you are watching, use the [Set a thread subscription](https://docs.github.com/rest/reference/activity#set-a-thread-subscription) endpoint and set `ignore` to `true`. + */ + deleteThreadSubscription: { + (params?: RestEndpointMethodTypes["activity"]["deleteThreadSubscription"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * GitHub provides several timeline resources in [Atom](http://en.wikipedia.org/wiki/Atom_(standard)) format. The Feeds API lists all the feeds available to the authenticated user: + * + * * **Timeline**: The GitHub global public timeline + * * **User**: The public timeline for any user, using [URI template](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia) + * * **Current user public**: The public timeline for the authenticated user + * * **Current user**: The private timeline for the authenticated user + * * **Current user actor**: The private timeline for activity created by the authenticated user + * * **Current user organizations**: The private timeline for the organizations the authenticated user is a member of. + * * **Security advisories**: A collection of public announcements that provide information about security-related vulnerabilities in software on GitHub. + * + * **Note**: Private feeds are only returned when [authenticating via Basic Auth](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) since current feed URIs use the older, non revocable auth tokens. + */ + getFeeds: { + (params?: RestEndpointMethodTypes["activity"]["getFeeds"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getRepoSubscription: { + (params?: RestEndpointMethodTypes["activity"]["getRepoSubscription"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getThread: { + (params?: RestEndpointMethodTypes["activity"]["getThread"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This checks to see if the current user is subscribed to a thread. You can also [get a repository subscription](https://docs.github.com/rest/reference/activity#get-a-repository-subscription). + * + * Note that subscriptions are only generated if a user is participating in a conversation--for example, they've replied to the thread, were **@mentioned**, or manually subscribe to a thread. + */ + getThreadSubscriptionForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["getThreadSubscriptionForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. + */ + listEventsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["listEventsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all notifications for the current user, sorted by most recently updated. + */ + listNotificationsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["listNotificationsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This is the user's organization dashboard. You must be authenticated as the user to view this. + */ + listOrgEventsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["listOrgEventsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * We delay the public events feed by five minutes, which means the most recent event returned by the public events API actually occurred at least five minutes ago. + */ + listPublicEvents: { + (params?: RestEndpointMethodTypes["activity"]["listPublicEvents"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listPublicEventsForRepoNetwork: { + (params?: RestEndpointMethodTypes["activity"]["listPublicEventsForRepoNetwork"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listPublicEventsForUser: { + (params?: RestEndpointMethodTypes["activity"]["listPublicEventsForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listPublicOrgEvents: { + (params?: RestEndpointMethodTypes["activity"]["listPublicOrgEvents"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * These are events that you've received by watching repos and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events. + */ + listReceivedEventsForUser: { + (params?: RestEndpointMethodTypes["activity"]["listReceivedEventsForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listReceivedPublicEventsForUser: { + (params?: RestEndpointMethodTypes["activity"]["listReceivedPublicEventsForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listRepoEvents: { + (params?: RestEndpointMethodTypes["activity"]["listRepoEvents"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all notifications for the current user. + */ + listRepoNotificationsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["listRepoNotificationsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists repositories the authenticated user has starred. + * + * You can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + listReposStarredByAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["listReposStarredByAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists repositories a user has starred. + * + * You can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + listReposStarredByUser: { + (params?: RestEndpointMethodTypes["activity"]["listReposStarredByUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists repositories a user is watching. + */ + listReposWatchedByUser: { + (params?: RestEndpointMethodTypes["activity"]["listReposWatchedByUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the people that have starred the repository. + * + * You can also find out _when_ stars were created by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `Accept` header: + */ + listStargazersForRepo: { + (params?: RestEndpointMethodTypes["activity"]["listStargazersForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists repositories the authenticated user is watching. + */ + listWatchedReposForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["listWatchedReposForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the people watching the specified repository. + */ + listWatchersForRepo: { + (params?: RestEndpointMethodTypes["activity"]["listWatchersForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Marks all notifications as "read" removes it from the [default view on GitHub](https://github.com/notifications). If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List notifications for the authenticated user](https://docs.github.com/rest/reference/activity#list-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + */ + markNotificationsAsRead: { + (params?: RestEndpointMethodTypes["activity"]["markNotificationsAsRead"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Marks all notifications in a repository as "read" removes them from the [default view on GitHub](https://github.com/notifications). If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List repository notifications for the authenticated user](https://docs.github.com/rest/reference/activity#list-repository-notifications-for-the-authenticated-user) endpoint and pass the query parameter `all=false`. + */ + markRepoNotificationsAsRead: { + (params?: RestEndpointMethodTypes["activity"]["markRepoNotificationsAsRead"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + markThreadAsRead: { + (params?: RestEndpointMethodTypes["activity"]["markThreadAsRead"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * If you would like to watch a repository, set `subscribed` to `true`. If you would like to ignore notifications made within a repository, set `ignored` to `true`. If you would like to stop watching a repository, [delete the repository's subscription](https://docs.github.com/rest/reference/activity#delete-a-repository-subscription) completely. + */ + setRepoSubscription: { + (params?: RestEndpointMethodTypes["activity"]["setRepoSubscription"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * If you are watching a repository, you receive notifications for all threads by default. Use this endpoint to ignore future notifications for threads until you comment on the thread or get an **@mention**. + * + * You can also use this endpoint to subscribe to threads that you are currently not receiving notifications for or to subscribed to threads that you have previously ignored. + * + * Unsubscribing from a conversation in a repository that you are not watching is functionally equivalent to the [Delete a thread subscription](https://docs.github.com/rest/reference/activity#delete-a-thread-subscription) endpoint. + */ + setThreadSubscription: { + (params?: RestEndpointMethodTypes["activity"]["setThreadSubscription"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + starRepoForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["starRepoForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + unstarRepoForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["activity"]["unstarRepoForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + apps: { + /** + * Add a single repository to an installation. The authenticated user must have admin access to the repository. + * + * You must use a personal access token (which you can create via the [command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) or the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations#create-a-new-authorization) or [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to access this endpoint. + */ + addRepoToInstallation: { + (params?: RestEndpointMethodTypes["apps"]["addRepoToInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * OAuth applications can use a special API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to use this endpoint, where the username is the OAuth application `client_id` and the password is its `client_secret`. Invalid tokens will return `404 NOT FOUND`. + */ + checkToken: { + (params?: RestEndpointMethodTypes["apps"]["checkToken"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates an attachment under a content reference URL in the body or comment of an issue or pull request. Use the `id` of the content reference from the [`content_reference` event](https://docs.github.com/webhooks/event-payloads/#content_reference) to create an attachment. + * + * The app must create a content attachment within six hours of the content reference URL being posted. See "[Using content attachments](https://docs.github.com/apps/using-content-attachments/)" for details about content attachments. + * + * You must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + */ + createContentAttachment: { + (params?: RestEndpointMethodTypes["apps"]["createContentAttachment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Use this endpoint to complete the handshake necessary when implementing the [GitHub App Manifest flow](https://docs.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/). When you create a GitHub App with the manifest flow, you receive a temporary `code` used to retrieve the GitHub App's `id`, `pem` (private key), and `webhook_secret`. + */ + createFromManifest: { + (params?: RestEndpointMethodTypes["apps"]["createFromManifest"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of `401 - Unauthorized`, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access. To restrict the access to specific repositories, you can provide the `repository_ids` when creating the token. When you omit `repository_ids`, the response does not contain the `repositories` key. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + createInstallationAccessToken: { + (params?: RestEndpointMethodTypes["apps"]["createInstallationAccessToken"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * OAuth application owners can revoke a grant for their OAuth application and a specific user. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid OAuth `access_token` as an input parameter and the grant for the token's owner will be deleted. + * Deleting an OAuth application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). + */ + deleteAuthorization: { + (params?: RestEndpointMethodTypes["apps"]["deleteAuthorization"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Uninstalls a GitHub App on a user, organization, or business account. If you prefer to temporarily suspend an app's access to your account's resources, then we recommend the "[Suspend an app installation](https://docs.github.com/v3/apps/#suspend-an-app-installation)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + deleteInstallation: { + (params?: RestEndpointMethodTypes["apps"]["deleteInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * OAuth application owners can revoke a single token for an OAuth application. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. + */ + deleteToken: { + (params?: RestEndpointMethodTypes["apps"]["deleteToken"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the `installations_count` in the response. For more details about your app's installations, see the "[List installations for the authenticated app](https://docs.github.com/rest/reference/apps#list-installations-for-the-authenticated-app)" endpoint. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getAuthenticated: { + (params?: RestEndpointMethodTypes["apps"]["getAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note**: The `:app_slug` is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., `https://github.com/settings/apps/:app_slug`). + * + * If the GitHub App you specify is public, you can access this endpoint without authenticating. If the GitHub App you specify is private, you must authenticate with a [personal access token](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) or an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + */ + getBySlug: { + (params?: RestEndpointMethodTypes["apps"]["getBySlug"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables an authenticated GitHub App to find an installation's information using the installation id. The installation's account type (`target_type`) will be either an organization or a user account, depending which account the repository belongs to. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getInstallation: { + (params?: RestEndpointMethodTypes["apps"]["getInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables an authenticated GitHub App to find the organization's installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getOrgInstallation: { + (params?: RestEndpointMethodTypes["apps"]["getOrgInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables an authenticated GitHub App to find the repository's installation information. The installation's account type will be either an organization or a user account, depending which account the repository belongs to. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getRepoInstallation: { + (params?: RestEndpointMethodTypes["apps"]["getRepoInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + getSubscriptionPlanForAccount: { + (params?: RestEndpointMethodTypes["apps"]["getSubscriptionPlanForAccount"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + getSubscriptionPlanForAccountStubbed: { + (params?: RestEndpointMethodTypes["apps"]["getSubscriptionPlanForAccountStubbed"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables an authenticated GitHub App to find the user’s installation information. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getUserInstallation: { + (params?: RestEndpointMethodTypes["apps"]["getUserInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getWebhookConfigForApp: { + (params?: RestEndpointMethodTypes["apps"]["getWebhookConfigForApp"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns user and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + listAccountsForPlan: { + (params?: RestEndpointMethodTypes["apps"]["listAccountsForPlan"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns repository and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + listAccountsForPlanStubbed: { + (params?: RestEndpointMethodTypes["apps"]["listAccountsForPlanStubbed"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access for an installation. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. + * + * The access the user has to each repository is included in the hash under the `permissions` key. + */ + listInstallationReposForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["apps"]["listInstallationReposForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + * + * The permissions the installation has are included under the `permissions` key. + */ + listInstallations: { + (params?: RestEndpointMethodTypes["apps"]["listInstallations"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists installations of your GitHub App that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * You can find the permissions for the installation under the `permissions` key. + */ + listInstallationsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["apps"]["listInstallationsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + listPlans: { + (params?: RestEndpointMethodTypes["apps"]["listPlans"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all plans that are part of your GitHub Marketplace listing. + * + * GitHub Apps must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) with their client ID and client secret to access this endpoint. + */ + listPlansStubbed: { + (params?: RestEndpointMethodTypes["apps"]["listPlansStubbed"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List repositories that an app installation can access. + * + * You must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + */ + listReposAccessibleToInstallation: { + (params?: RestEndpointMethodTypes["apps"]["listReposAccessibleToInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the active subscriptions for the authenticated user. You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an [OAuth token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/). + */ + listSubscriptionsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["apps"]["listSubscriptionsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the active subscriptions for the authenticated user. You must use a [user-to-server OAuth access token](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an [OAuth token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/). + */ + listSubscriptionsForAuthenticatedUserStubbed: { + (params?: RestEndpointMethodTypes["apps"]["listSubscriptionsForAuthenticatedUserStubbed"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Remove a single repository from an installation. The authenticated user must have admin access to the repository. + * + * You must use a personal access token (which you can create via the [command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) or the [OAuth Authorizations API](https://docs.github.com/rest/reference/oauth-authorizations#create-a-new-authorization) or [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) to access this endpoint. + */ + removeRepoFromInstallation: { + (params?: RestEndpointMethodTypes["apps"]["removeRepoFromInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * OAuth applications can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. You must use [Basic Authentication](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. + */ + resetToken: { + (params?: RestEndpointMethodTypes["apps"]["resetToken"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Revokes the installation token you're using to authenticate as an installation and access this endpoint. + * + * Once an installation token is revoked, the token is invalidated and cannot be used. Other endpoints that require the revoked installation token must have a new installation token to work. You can create a new token using the "[Create an installation access token for an app](https://docs.github.com/rest/reference/apps#create-an-installation-access-token-for-an-app)" endpoint. + * + * You must use an [installation access token](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + */ + revokeInstallationAccessToken: { + (params?: RestEndpointMethodTypes["apps"]["revokeInstallationAccessToken"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** Suspending a GitHub App installation is currently in beta and subject to change. Before you can suspend a GitHub App, the app owner must enable suspending installations for the app by opting-in to the beta. For more information, see "[Suspending a GitHub App installation](https://docs.github.com/apps/managing-github-apps/suspending-a-github-app-installation/)." + * + * Suspends a GitHub App on a user, organization, or business account, which blocks the app from accessing the account's resources. When a GitHub App is suspended, the app's access to the GitHub API or webhook events is blocked for that account. + * + * To suspend a GitHub App, you must be an account owner or have admin permissions in the repository or organization where the app is installed. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + suspendInstallation: { + (params?: RestEndpointMethodTypes["apps"]["suspendInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** Suspending a GitHub App installation is currently in beta and subject to change. Before you can suspend a GitHub App, the app owner must enable suspending installations for the app by opting-in to the beta. For more information, see "[Suspending a GitHub App installation](https://docs.github.com/apps/managing-github-apps/suspending-a-github-app-installation/)." + * + * Removes a GitHub App installation suspension. + * + * To unsuspend a GitHub App, you must be an account owner or have admin permissions in the repository or organization where the app is installed and suspended. + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + unsuspendInstallation: { + (params?: RestEndpointMethodTypes["apps"]["unsuspendInstallation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see "[Creating a GitHub App](/developers/apps/creating-a-github-app)." + * + * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + updateWebhookConfigForApp: { + (params?: RestEndpointMethodTypes["apps"]["updateWebhookConfigForApp"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + billing: { + /** + * Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Access tokens must have the `read:org` scope. + */ + getGithubActionsBillingOrg: { + (params?: RestEndpointMethodTypes["billing"]["getGithubActionsBillingOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the summary of the free and paid GitHub Actions minutes used. + * + * Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see "[Managing billing for GitHub Actions](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-actions)". + * + * Access tokens must have the `user` scope. + */ + getGithubActionsBillingUser: { + (params?: RestEndpointMethodTypes["billing"]["getGithubActionsBillingUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the free and paid storage usued for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * Access tokens must have the `read:org` scope. + */ + getGithubPackagesBillingOrg: { + (params?: RestEndpointMethodTypes["billing"]["getGithubPackagesBillingOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the free and paid storage used for GitHub Packages in gigabytes. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * Access tokens must have the `user` scope. + */ + getGithubPackagesBillingUser: { + (params?: RestEndpointMethodTypes["billing"]["getGithubPackagesBillingUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the estimated paid and estimated total storage used for GitHub Actions and Github Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * Access tokens must have the `read:org` scope. + */ + getSharedStorageBillingOrg: { + (params?: RestEndpointMethodTypes["billing"]["getSharedStorageBillingOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the estimated paid and estimated total storage used for GitHub Actions and Github Packages. + * + * Paid minutes only apply to packages stored for private repositories. For more information, see "[Managing billing for GitHub Packages](https://help.github.com/github/setting-up-and-managing-billing-and-payments-on-github/managing-billing-for-github-packages)." + * + * Access tokens must have the `user` scope. + */ + getSharedStorageBillingUser: { + (params?: RestEndpointMethodTypes["billing"]["getSharedStorageBillingUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + checks: { + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Creates a new check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to create check runs. + * + * In a check suite, GitHub limits the number of check runs with the same name to 1000. Once these check runs exceed 1000, GitHub will start to automatically delete older check runs. + */ + create: { + (params?: RestEndpointMethodTypes["checks"]["create"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * By default, check suites are automatically created when you create a [check run](https://docs.github.com/rest/reference/checks#check-runs). You only need to use this endpoint for manually creating check suites when you've disabled automatic creation using "[Update repository preferences for check suites](https://docs.github.com/rest/reference/checks#update-repository-preferences-for-check-suites)". Your GitHub App must have the `checks:write` permission to create check suites. + */ + createSuite: { + (params?: RestEndpointMethodTypes["checks"]["createSuite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Gets a single check run using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository. + */ + get: { + (params?: RestEndpointMethodTypes["checks"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * Gets a single check suite using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check suites. OAuth Apps and authenticated users must have the `repo` scope to get check suites in a private repository. + */ + getSuite: { + (params?: RestEndpointMethodTypes["checks"]["getSuite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists annotations for a check run using the annotation `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get annotations for a check run. OAuth Apps and authenticated users must have the `repo` scope to get annotations for a check run in a private repository. + */ + listAnnotations: { + (params?: RestEndpointMethodTypes["checks"]["listAnnotations"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Lists check runs for a commit ref. The `ref` can be a SHA, branch name, or a tag name. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository. + */ + listForRef: { + (params?: RestEndpointMethodTypes["checks"]["listForRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Lists check runs for a check suite using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository. + */ + listForSuite: { + (params?: RestEndpointMethodTypes["checks"]["listForSuite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * Lists check suites for a commit `ref`. The `ref` can be a SHA, branch name, or a tag name. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to list check suites. OAuth Apps and authenticated users must have the `repo` scope to get check suites in a private repository. + */ + listSuitesForRef: { + (params?: RestEndpointMethodTypes["checks"]["listSuitesForRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Triggers GitHub to rerequest an existing check suite, without pushing new code to a repository. This endpoint will trigger the [`check_suite` webhook](https://docs.github.com/webhooks/event-payloads/#check_suite) event with the action `rerequested`. When a check suite is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * To rerequest a check suite, your GitHub App must have the `checks:read` permission on a private repository or pull access to a public repository. + */ + rerequestSuite: { + (params?: RestEndpointMethodTypes["checks"]["rerequestSuite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Changes the default automatic flow when creating check suites. By default, a check suite is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually [Create a check suite](https://docs.github.com/rest/reference/checks#create-a-check-suite). You must have admin permissions in the repository to set preferences for check suites. + */ + setSuitesPreferences: { + (params?: RestEndpointMethodTypes["checks"]["setSuitesPreferences"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Updates a check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to edit check runs. + */ + update: { + (params?: RestEndpointMethodTypes["checks"]["update"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + codeScanning: { + /** + * Gets a single code scanning alert. You must use an access token with the `security_events` scope to use this endpoint. GitHub Apps must have the `security_events` read permission to use this endpoint. + * + * The security `alert_number` is found at the end of the security alert's URL. For example, the security alert ID for `https://github.com/Octo-org/octo-repo/security/code-scanning/88` is `88`. + */ + getAlert: { + (params?: RestEndpointMethodTypes["codeScanning"]["getAlert"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all open code scanning alerts for the default branch (usually `main` or `master`). For private repos, you must use an access token with the `repo` scope. For public repos, you must use an access token with `public_repo` and `repo:security_events` scopes. GitHub Apps must have the `security_events` read permission to use this endpoint. + */ + listAlertsForRepo: { + (params?: RestEndpointMethodTypes["codeScanning"]["listAlertsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the details of recent code scanning analyses for a repository. For private repos, you must use an access token with the `repo` scope. For public repos, you must use an access token with `public_repo` and `repo:security_events` scopes. GitHub Apps must have the `security_events` read permission to use this endpoint. + */ + listRecentAnalyses: { + (params?: RestEndpointMethodTypes["codeScanning"]["listRecentAnalyses"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the status of a single code scanning alert. For private repos, you must use an access token with the `repo` scope. For public repos, you must use an access token with `public_repo` and `repo:security_events` scopes. + * GitHub Apps must have the `security_events` write permission to use this endpoint. + */ + updateAlert: { + (params?: RestEndpointMethodTypes["codeScanning"]["updateAlert"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Upload a SARIF file containing the results of a code scanning analysis to make the results available in a repository. + * For private repos, you must use an access token with the `repo` scope. For public repos, you must use an access token with `public_repo` and `repo:security_events` scopes. GitHub Apps must have the `security_events` write permission to use this endpoint. + */ + uploadSarif: { + (params?: RestEndpointMethodTypes["codeScanning"]["uploadSarif"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + codesOfConduct: { + getAllCodesOfConduct: { + (params?: RestEndpointMethodTypes["codesOfConduct"]["getAllCodesOfConduct"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getConductCode: { + (params?: RestEndpointMethodTypes["codesOfConduct"]["getConductCode"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This method returns the contents of the repository's code of conduct file, if one is detected. + */ + getForRepo: { + (params?: RestEndpointMethodTypes["codesOfConduct"]["getForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + emojis: { + /** + * Lists all the emojis available to use on GitHub. + */ + get: { + (params?: RestEndpointMethodTypes["emojis"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + enterpriseAdmin: { + /** + * Removes an organization from the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + disableSelectedOrganizationGithubActionsEnterprise: { + (params?: RestEndpointMethodTypes["enterpriseAdmin"]["disableSelectedOrganizationGithubActionsEnterprise"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Adds an organization to the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + enableSelectedOrganizationGithubActionsEnterprise: { + (params?: RestEndpointMethodTypes["enterpriseAdmin"]["enableSelectedOrganizationGithubActionsEnterprise"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the selected actions that are allowed in an enterprise. To use this endpoint, the enterprise permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + getAllowedActionsEnterprise: { + (params?: RestEndpointMethodTypes["enterpriseAdmin"]["getAllowedActionsEnterprise"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the GitHub Actions permissions policy for organizations and allowed actions in an enterprise. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + getGithubActionsPermissionsEnterprise: { + (params?: RestEndpointMethodTypes["enterpriseAdmin"]["getGithubActionsPermissionsEnterprise"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the organizations that are selected to have GitHub Actions enabled in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + listSelectedOrganizationsEnabledGithubActionsEnterprise: { + (params?: RestEndpointMethodTypes["enterpriseAdmin"]["listSelectedOrganizationsEnabledGithubActionsEnterprise"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the actions that are allowed in an enterprise. To use this endpoint, the enterprise permission policy for `allowed_actions` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + setAllowedActionsEnterprise: { + (params?: RestEndpointMethodTypes["enterpriseAdmin"]["setAllowedActionsEnterprise"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the GitHub Actions permissions policy for organizations and allowed actions in an enterprise. + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + setGithubActionsPermissionsEnterprise: { + (params?: RestEndpointMethodTypes["enterpriseAdmin"]["setGithubActionsPermissionsEnterprise"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Replaces the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for `enabled_organizations` must be configured to `selected`. For more information, see "[Set GitHub Actions permissions for an enterprise](#set-github-actions-permissions-for-an-enterprise)." + * + * You must authenticate using an access token with the `admin:enterprise` scope to use this endpoint. + */ + setSelectedOrganizationsEnabledGithubActionsEnterprise: { + (params?: RestEndpointMethodTypes["enterpriseAdmin"]["setSelectedOrganizationsEnabledGithubActionsEnterprise"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + gists: { + checkIsStarred: { + (params?: RestEndpointMethodTypes["gists"]["checkIsStarred"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Allows you to add a new gist with one or more files. + * + * **Note:** Don't name your files "gistfile" with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally. + */ + create: { + (params?: RestEndpointMethodTypes["gists"]["create"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + createComment: { + (params?: RestEndpointMethodTypes["gists"]["createComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + delete: { + (params?: RestEndpointMethodTypes["gists"]["delete"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteComment: { + (params?: RestEndpointMethodTypes["gists"]["deleteComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note**: This was previously `/gists/:gist_id/fork`. + */ + fork: { + (params?: RestEndpointMethodTypes["gists"]["fork"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + get: { + (params?: RestEndpointMethodTypes["gists"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getComment: { + (params?: RestEndpointMethodTypes["gists"]["getComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getRevision: { + (params?: RestEndpointMethodTypes["gists"]["getRevision"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the authenticated user's gists or if called anonymously, this endpoint returns all public gists: + */ + list: { + (params?: RestEndpointMethodTypes["gists"]["list"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listComments: { + (params?: RestEndpointMethodTypes["gists"]["listComments"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listCommits: { + (params?: RestEndpointMethodTypes["gists"]["listCommits"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists public gists for the specified user: + */ + listForUser: { + (params?: RestEndpointMethodTypes["gists"]["listForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listForks: { + (params?: RestEndpointMethodTypes["gists"]["listForks"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List public gists sorted by most recently updated to least recently updated. + * + * Note: With [pagination](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination), you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page. + */ + listPublic: { + (params?: RestEndpointMethodTypes["gists"]["listPublic"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the authenticated user's starred gists: + */ + listStarred: { + (params?: RestEndpointMethodTypes["gists"]["listStarred"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + star: { + (params?: RestEndpointMethodTypes["gists"]["star"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + unstar: { + (params?: RestEndpointMethodTypes["gists"]["unstar"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Allows you to update or delete a gist file and rename gist files. Files from the previous version of the gist that aren't explicitly changed during an edit are unchanged. + */ + update: { + (params?: RestEndpointMethodTypes["gists"]["update"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateComment: { + (params?: RestEndpointMethodTypes["gists"]["updateComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + git: { + createBlob: { + (params?: RestEndpointMethodTypes["git"]["createBlob"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new Git [commit object](https://git-scm.com/book/en/v1/Git-Internals-Git-Objects#Commit-Objects). + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + createCommit: { + (params?: RestEndpointMethodTypes["git"]["createCommit"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a reference for your repository. You are unable to create new references for empty repositories, even if the commit SHA-1 hash used exists. Empty repositories are repositories without branches. + */ + createRef: { + (params?: RestEndpointMethodTypes["git"]["createRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then [create](https://docs.github.com/rest/reference/git#create-a-reference) the `refs/tags/[tag]` reference. If you want to create a lightweight tag, you only have to [create](https://docs.github.com/rest/reference/git#create-a-reference) the tag reference - this call would be unnecessary. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + createTag: { + (params?: RestEndpointMethodTypes["git"]["createTag"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure. + * + * If you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see "[Create a commit](https://docs.github.com/rest/reference/git#create-a-commit)" and "[Update a reference](https://docs.github.com/rest/reference/git#update-a-reference)." + */ + createTree: { + (params?: RestEndpointMethodTypes["git"]["createTree"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteRef: { + (params?: RestEndpointMethodTypes["git"]["deleteRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The `content` in the response will always be Base64 encoded. + * + * _Note_: This API supports blobs up to 100 megabytes in size. + */ + getBlob: { + (params?: RestEndpointMethodTypes["git"]["getBlob"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a Git [commit object](https://git-scm.com/book/en/v1/Git-Internals-Git-Objects#Commit-Objects). + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + getCommit: { + (params?: RestEndpointMethodTypes["git"]["getCommit"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a single reference from your Git database. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't match an existing ref, a `404` is returned. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + */ + getRef: { + (params?: RestEndpointMethodTypes["git"]["getRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + getTag: { + (params?: RestEndpointMethodTypes["git"]["getTag"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a single tree using the SHA1 value for that tree. + * + * If `truncated` is `true` in the response then the number of items in the `tree` array exceeded our maximum limit. If you need to fetch more items, use the non-recursive method of fetching trees, and fetch one sub-tree at a time. + */ + getTree: { + (params?: RestEndpointMethodTypes["git"]["getTree"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns an array of references from your Git database that match the supplied name. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't exist in the repository, but existing refs start with `:ref`, they will be returned as an array. + * + * When you use this endpoint without providing a `:ref`, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just `heads` and `tags`. + * + * **Note:** You need to explicitly [request a pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * If you request matching references for a branch named `feature` but the branch `feature` doesn't exist, the response can still include other matching head refs that start with the word `feature`, such as `featureA` and `featureB`. + */ + listMatchingRefs: { + (params?: RestEndpointMethodTypes["git"]["listMatchingRefs"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateRef: { + (params?: RestEndpointMethodTypes["git"]["updateRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + gitignore: { + /** + * List all templates available to pass as an option when [creating a repository](https://docs.github.com/rest/reference/repos#create-a-repository-for-the-authenticated-user). + */ + getAllTemplates: { + (params?: RestEndpointMethodTypes["gitignore"]["getAllTemplates"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The API also allows fetching the source of a single template. + * Use the raw [media type](https://docs.github.com/rest/overview/media-types/) to get the raw contents. + */ + getTemplate: { + (params?: RestEndpointMethodTypes["gitignore"]["getTemplate"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + interactions: { + /** + * Shows which type of GitHub user can interact with this organization and when the restriction expires. If there is no restrictions, you will see an empty response. + */ + getRestrictionsForOrg: { + (params?: RestEndpointMethodTypes["interactions"]["getRestrictionsForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Shows which type of GitHub user can interact with this repository and when the restriction expires. If there are no restrictions, you will see an empty response. + */ + getRestrictionsForRepo: { + (params?: RestEndpointMethodTypes["interactions"]["getRestrictionsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Shows which type of GitHub user can interact with your public repositories and when the restriction expires. If there are no restrictions, you will see an empty response. + */ + getRestrictionsForYourPublicRepos: { + (params?: RestEndpointMethodTypes["interactions"]["getRestrictionsForYourPublicRepos"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes all interaction restrictions from public repositories in the given organization. You must be an organization owner to remove restrictions. + */ + removeRestrictionsForOrg: { + (params?: RestEndpointMethodTypes["interactions"]["removeRestrictionsForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes all interaction restrictions from the given repository. You must have owner or admin access to remove restrictions. If the interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. + */ + removeRestrictionsForRepo: { + (params?: RestEndpointMethodTypes["interactions"]["removeRestrictionsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes any interaction restrictions from your public repositories. + */ + removeRestrictionsForYourPublicRepos: { + (params?: RestEndpointMethodTypes["interactions"]["removeRestrictionsForYourPublicRepos"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Temporarily restricts interactions to a certain type of GitHub user in any public repository in the given organization. You must be an organization owner to set these restrictions. Setting the interaction limit at the organization level will overwrite any interaction limits that are set for individual repositories owned by the organization. + */ + setRestrictionsForOrg: { + (params?: RestEndpointMethodTypes["interactions"]["setRestrictionsForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Temporarily restricts interactions to a certain type of GitHub user within the given repository. You must have owner or admin access to set these restrictions. If an interaction limit is set for the user or organization that owns this repository, you will receive a `409 Conflict` response and will not be able to use this endpoint to change the interaction limit for a single repository. + */ + setRestrictionsForRepo: { + (params?: RestEndpointMethodTypes["interactions"]["setRestrictionsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Temporarily restricts which type of GitHub user can interact with your public repositories. Setting the interaction limit at the user level will overwrite any interaction limits that are set for individual repositories owned by the user. + */ + setRestrictionsForYourPublicRepos: { + (params?: RestEndpointMethodTypes["interactions"]["setRestrictionsForYourPublicRepos"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + issues: { + /** + * Adds up to 10 assignees to an issue. Users already assigned to an issue are not replaced. + */ + addAssignees: { + (params?: RestEndpointMethodTypes["issues"]["addAssignees"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + addLabels: { + (params?: RestEndpointMethodTypes["issues"]["addLabels"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Checks if a user has permission to be assigned to an issue in this repository. + * + * If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned. + * + * Otherwise a `404` status code is returned. + */ + checkUserCanBeAssigned: { + (params?: RestEndpointMethodTypes["issues"]["checkUserCanBeAssigned"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Any user with pull access to a repository can create an issue. If [issues are disabled in the repository](https://help.github.com/articles/disabling-issues/), the API returns a `410 Gone` status. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-abuse-rate-limits)" for details. + */ + create: { + (params?: RestEndpointMethodTypes["issues"]["create"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-abuse-rate-limits)" for details. + */ + createComment: { + (params?: RestEndpointMethodTypes["issues"]["createComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + createLabel: { + (params?: RestEndpointMethodTypes["issues"]["createLabel"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + createMilestone: { + (params?: RestEndpointMethodTypes["issues"]["createMilestone"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteComment: { + (params?: RestEndpointMethodTypes["issues"]["deleteComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteLabel: { + (params?: RestEndpointMethodTypes["issues"]["deleteLabel"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteMilestone: { + (params?: RestEndpointMethodTypes["issues"]["deleteMilestone"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The API returns a [`301 Moved Permanently` status](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-redirects-redirects) if the issue was + * [transferred](https://help.github.com/articles/transferring-an-issue-to-another-repository/) to another repository. If + * the issue was transferred to or deleted from a repository where the authenticated user lacks read access, the API + * returns a `404 Not Found` status. If the issue was deleted from a repository where the authenticated user has read + * access, the API returns a `410 Gone` status. To receive webhook events for transferred and deleted issues, subscribe + * to the [`issues`](https://docs.github.com/webhooks/event-payloads/#issues) webhook. + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + get: { + (params?: RestEndpointMethodTypes["issues"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getComment: { + (params?: RestEndpointMethodTypes["issues"]["getComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getEvent: { + (params?: RestEndpointMethodTypes["issues"]["getEvent"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getLabel: { + (params?: RestEndpointMethodTypes["issues"]["getLabel"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getMilestone: { + (params?: RestEndpointMethodTypes["issues"]["getMilestone"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List issues assigned to the authenticated user across all visible repositories including owned repositories, member + * repositories, and organization repositories. You can use the `filter` query parameter to fetch issues that are not + * necessarily assigned to you. + * + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + list: { + (params?: RestEndpointMethodTypes["issues"]["list"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the [available assignees](https://help.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/) for issues in a repository. + */ + listAssignees: { + (params?: RestEndpointMethodTypes["issues"]["listAssignees"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Issue Comments are ordered by ascending ID. + */ + listComments: { + (params?: RestEndpointMethodTypes["issues"]["listComments"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * By default, Issue Comments are ordered by ascending ID. + */ + listCommentsForRepo: { + (params?: RestEndpointMethodTypes["issues"]["listCommentsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listEvents: { + (params?: RestEndpointMethodTypes["issues"]["listEvents"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listEventsForRepo: { + (params?: RestEndpointMethodTypes["issues"]["listEventsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listEventsForTimeline: { + (params?: RestEndpointMethodTypes["issues"]["listEventsForTimeline"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List issues across owned and member repositories assigned to the authenticated user. + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + listForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["issues"]["listForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List issues in an organization assigned to the authenticated user. + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + listForOrg: { + (params?: RestEndpointMethodTypes["issues"]["listForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List issues in a repository. + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this + * reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by + * the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull + * request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + listForRepo: { + (params?: RestEndpointMethodTypes["issues"]["listForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listLabelsForMilestone: { + (params?: RestEndpointMethodTypes["issues"]["listLabelsForMilestone"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listLabelsForRepo: { + (params?: RestEndpointMethodTypes["issues"]["listLabelsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listLabelsOnIssue: { + (params?: RestEndpointMethodTypes["issues"]["listLabelsOnIssue"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listMilestones: { + (params?: RestEndpointMethodTypes["issues"]["listMilestones"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with push access can lock an issue or pull request's conversation. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + lock: { + (params?: RestEndpointMethodTypes["issues"]["lock"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + removeAllLabels: { + (params?: RestEndpointMethodTypes["issues"]["removeAllLabels"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes one or more assignees from an issue. + */ + removeAssignees: { + (params?: RestEndpointMethodTypes["issues"]["removeAssignees"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes the specified label from the issue, and returns the remaining labels on the issue. This endpoint returns a `404 Not Found` status if the label does not exist. + */ + removeLabel: { + (params?: RestEndpointMethodTypes["issues"]["removeLabel"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes any previous labels and sets the new labels for an issue. + */ + setLabels: { + (params?: RestEndpointMethodTypes["issues"]["setLabels"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with push access can unlock an issue's conversation. + */ + unlock: { + (params?: RestEndpointMethodTypes["issues"]["unlock"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Issue owners and users with push access can edit an issue. + */ + update: { + (params?: RestEndpointMethodTypes["issues"]["update"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateComment: { + (params?: RestEndpointMethodTypes["issues"]["updateComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateLabel: { + (params?: RestEndpointMethodTypes["issues"]["updateLabel"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateMilestone: { + (params?: RestEndpointMethodTypes["issues"]["updateMilestone"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + licenses: { + get: { + (params?: RestEndpointMethodTypes["licenses"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getAllCommonlyUsed: { + (params?: RestEndpointMethodTypes["licenses"]["getAllCommonlyUsed"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This method returns the contents of the repository's license file, if one is detected. + * + * Similar to [Get repository content](https://docs.github.com/rest/reference/repos/contents#get-repository-content), this method also supports [custom media types](https://docs.github.com/rest/overview/media-types) for retrieving the raw license content or rendered license HTML. + */ + getForRepo: { + (params?: RestEndpointMethodTypes["licenses"]["getForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + markdown: { + render: { + (params?: RestEndpointMethodTypes["markdown"]["render"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You must send Markdown as plain text (using a `Content-Type` header of `text/plain` or `text/x-markdown`) to this endpoint, rather than using JSON format. In raw mode, [GitHub Flavored Markdown](https://github.github.com/gfm/) is not supported and Markdown will be rendered in plain format like a README.md file. Markdown content must be 400 KB or less. + */ + renderRaw: { + (params?: RestEndpointMethodTypes["markdown"]["renderRaw"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + meta: { + /** + * This endpoint provides a list of GitHub's IP addresses. For more information, see "[About GitHub's IP addresses](https://help.github.com/articles/about-github-s-ip-addresses/)." + */ + get: { + (params?: RestEndpointMethodTypes["meta"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get the octocat as ASCII art + */ + getOctocat: { + (params?: RestEndpointMethodTypes["meta"]["getOctocat"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get a random sentence from the Zen of GitHub + */ + getZen: { + (params?: RestEndpointMethodTypes["meta"]["getZen"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get Hypermedia links to resources accessible in GitHub's REST API + */ + root: { + (params?: RestEndpointMethodTypes["meta"]["root"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + migrations: { + /** + * Stop an import for a repository. + */ + cancelImport: { + (params?: RestEndpointMethodTypes["migrations"]["cancelImport"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a previous migration archive. Downloadable migration archives are automatically deleted after seven days. Migration metadata, which is returned in the [List user migrations](https://docs.github.com/rest/reference/migrations#list-user-migrations) and [Get a user migration status](https://docs.github.com/rest/reference/migrations#get-a-user-migration-status) endpoints, will continue to be available even after an archive is deleted. + */ + deleteArchiveForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["migrations"]["deleteArchiveForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a previous migration archive. Migration archives are automatically deleted after seven days. + */ + deleteArchiveForOrg: { + (params?: RestEndpointMethodTypes["migrations"]["deleteArchiveForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Fetches the URL to a migration archive. + */ + downloadArchiveForOrg: { + (params?: RestEndpointMethodTypes["migrations"]["downloadArchiveForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Fetches the URL to download the migration archive as a `tar.gz` file. Depending on the resources your repository uses, the migration archive can contain JSON files with data for these objects: + * + * * attachments + * * bases + * * commit\_comments + * * issue\_comments + * * issue\_events + * * issues + * * milestones + * * organizations + * * projects + * * protected\_branches + * * pull\_request\_reviews + * * pull\_requests + * * releases + * * repositories + * * review\_comments + * * schema + * * users + * + * The archive will also contain an `attachments` directory that includes all attachment files uploaded to GitHub.com and a `repositories` directory that contains the repository's Git data. + */ + getArchiveForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["migrations"]["getArchiveForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username `hubot` into something like `hubot `. + * + * This endpoint and the [Map a commit author](https://docs.github.com/rest/reference/migrations#map-a-commit-author) endpoint allow you to provide correct Git author information. + */ + getCommitAuthors: { + (params?: RestEndpointMethodTypes["migrations"]["getCommitAuthors"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * View the progress of an import. + * + * **Import status** + * + * This section includes details about the possible values of the `status` field of the Import Progress response. + * + * An import that does not have errors will progress through these steps: + * + * * `detecting` - the "detection" step of the import is in progress because the request did not include a `vcs` parameter. The import is identifying the type of source control present at the URL. + * * `importing` - the "raw" step of the import is in progress. This is where commit data is fetched from the original repository. The import progress response will include `commit_count` (the total number of raw commits that will be imported) and `percent` (0 - 100, the current progress through the import). + * * `mapping` - the "rewrite" step of the import is in progress. This is where SVN branches are converted to Git branches, and where author updates are applied. The import progress response does not include progress information. + * * `pushing` - the "push" step of the import is in progress. This is where the importer updates the repository on GitHub. The import progress response will include `push_percent`, which is the percent value reported by `git push` when it is "Writing objects". + * * `complete` - the import is complete, and the repository is ready on GitHub. + * + * If there are problems, you will see one of these in the `status` field: + * + * * `auth_failed` - the import requires authentication in order to connect to the original repository. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section. + * * `error` - the import encountered an error. The import progress response will include the `failed_step` and an error message. Contact [GitHub Support](https://github.com/contact) or [GitHub Premium Support](https://premium.githubsupport.com) for more information. + * * `detection_needs_auth` - the importer requires authentication for the originating repository to continue detection. To update authentication for the import, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section. + * * `detection_found_nothing` - the importer didn't recognize any source control at the URL. To resolve, [Cancel the import](https://docs.github.com/rest/reference/migrations#cancel-an-import) and [retry](https://docs.github.com/rest/reference/migrations#start-an-import) with the correct URL. + * * `detection_found_multiple` - the importer found several projects or repositories at the provided URL. When this is the case, the Import Progress response will also include a `project_choices` field with the possible project choices as values. To update project choice, please see the [Update an import](https://docs.github.com/rest/reference/migrations#update-an-import) section. + * + * **The project_choices field** + * + * When multiple projects are found at the provided URL, the response hash will include a `project_choices` field, the value of which is an array of hashes each representing a project choice. The exact key/value pairs of the project hashes will differ depending on the version control type. + * + * **Git LFS related fields** + * + * This section includes details about Git LFS related fields that may be present in the Import Progress response. + * + * * `use_lfs` - describes whether the import has been opted in or out of using Git LFS. The value can be `opt_in`, `opt_out`, or `undecided` if no action has been taken. + * * `has_large_files` - the boolean value describing whether files larger than 100MB were found during the `importing` step. + * * `large_files_size` - the total size in gigabytes of files larger than 100MB found in the originating repository. + * * `large_files_count` - the total number of files larger than 100MB found in the originating repository. To see a list of these files, make a "Get Large Files" request. + */ + getImportStatus: { + (params?: RestEndpointMethodTypes["migrations"]["getImportStatus"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List files larger than 100MB found during the import + */ + getLargeFiles: { + (params?: RestEndpointMethodTypes["migrations"]["getLargeFiles"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Fetches a single user migration. The response includes the `state` of the migration, which can be one of the following values: + * + * * `pending` - the migration hasn't started yet. + * * `exporting` - the migration is in progress. + * * `exported` - the migration finished successfully. + * * `failed` - the migration failed. + * + * Once the migration has been `exported` you can [download the migration archive](https://docs.github.com/rest/reference/migrations#download-a-user-migration-archive). + */ + getStatusForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["migrations"]["getStatusForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Fetches the status of a migration. + * + * The `state` of a migration can be one of the following values: + * + * * `pending`, which means the migration hasn't started yet. + * * `exporting`, which means the migration is in progress. + * * `exported`, which means the migration finished successfully. + * * `failed`, which means the migration failed. + */ + getStatusForOrg: { + (params?: RestEndpointMethodTypes["migrations"]["getStatusForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all migrations a user has started. + */ + listForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["migrations"]["listForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the most recent migrations. + */ + listForOrg: { + (params?: RestEndpointMethodTypes["migrations"]["listForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all the repositories for this organization migration. + */ + listReposForOrg: { + (params?: RestEndpointMethodTypes["migrations"]["listReposForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all the repositories for this user migration. + */ + listReposForUser: { + (params?: RestEndpointMethodTypes["migrations"]["listReposForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Update an author's identity for the import. Your application can continue updating authors any time before you push new commits to the repository. + */ + mapCommitAuthor: { + (params?: RestEndpointMethodTypes["migrations"]["mapCommitAuthor"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You can import repositories from Subversion, Mercurial, and TFS that include files larger than 100MB. This ability is powered by [Git LFS](https://git-lfs.github.com). You can learn more about our LFS feature and working with large files [on our help site](https://help.github.com/articles/versioning-large-files/). + */ + setLfsPreference: { + (params?: RestEndpointMethodTypes["migrations"]["setLfsPreference"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Initiates the generation of a user migration archive. + */ + startForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["migrations"]["startForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Initiates the generation of a migration archive. + */ + startForOrg: { + (params?: RestEndpointMethodTypes["migrations"]["startForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Start a source import to a GitHub repository using GitHub Importer. + */ + startImport: { + (params?: RestEndpointMethodTypes["migrations"]["startImport"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Unlocks a repository. You can lock repositories when you [start a user migration](https://docs.github.com/rest/reference/migrations#start-a-user-migration). Once the migration is complete you can unlock each repository to begin using it again or [delete the repository](https://docs.github.com/rest/reference/repos#delete-a-repository) if you no longer need the source data. Returns a status of `404 Not Found` if the repository is not locked. + */ + unlockRepoForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["migrations"]["unlockRepoForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Unlocks a repository that was locked for migration. You should unlock each migrated repository and [delete them](https://docs.github.com/rest/reference/repos#delete-a-repository) when the migration is complete and you no longer need the source data. + */ + unlockRepoForOrg: { + (params?: RestEndpointMethodTypes["migrations"]["unlockRepoForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * An import can be updated with credentials or a project choice by passing in the appropriate parameters in this API + * request. If no parameters are provided, the import will be restarted. + */ + updateImport: { + (params?: RestEndpointMethodTypes["migrations"]["updateImport"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + orgs: { + blockUser: { + (params?: RestEndpointMethodTypes["orgs"]["blockUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + checkBlockedUser: { + (params?: RestEndpointMethodTypes["orgs"]["checkBlockedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Check if a user is, publicly or privately, a member of the organization. + */ + checkMembershipForUser: { + (params?: RestEndpointMethodTypes["orgs"]["checkMembershipForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + checkPublicMembershipForUser: { + (params?: RestEndpointMethodTypes["orgs"]["checkPublicMembershipForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * When an organization member is converted to an outside collaborator, they'll only have access to the repositories that their current team membership allows. The user will no longer be a member of the organization. For more information, see "[Converting an organization member to an outside collaborator](https://help.github.com/articles/converting-an-organization-member-to-an-outside-collaborator/)". + */ + convertMemberToOutsideCollaborator: { + (params?: RestEndpointMethodTypes["orgs"]["convertMemberToOutsideCollaborator"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + */ + createInvitation: { + (params?: RestEndpointMethodTypes["orgs"]["createInvitation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Here's how you can create a hook that posts payloads in JSON format: + */ + createWebhook: { + (params?: RestEndpointMethodTypes["orgs"]["createWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteWebhook: { + (params?: RestEndpointMethodTypes["orgs"]["deleteWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * To see many of the organization response values, you need to be an authenticated organization owner with the `admin:org` scope. When the value of `two_factor_requirement_enabled` is `true`, the organization requires all members, billing managers, and outside collaborators to enable [two-factor authentication](https://help.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/). + * + * GitHub Apps with the `Organization plan` permission can use this endpoint to retrieve information about an organization's GitHub plan. See "[Authenticating with GitHub Apps](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/)" for details. For an example response, see 'Response with GitHub plan information' below." + */ + get: { + (params?: RestEndpointMethodTypes["orgs"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getMembershipForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["orgs"]["getMembershipForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * In order to get a user's membership with an organization, the authenticated user must be an organization member. + */ + getMembershipForUser: { + (params?: RestEndpointMethodTypes["orgs"]["getMembershipForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a webhook configured in an organization. To get only the webhook `config` properties, see "[Get a webhook configuration for an organization](/rest/reference/orgs#get-a-webhook-configuration-for-an-organization)." + */ + getWebhook: { + (params?: RestEndpointMethodTypes["orgs"]["getWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the webhook configuration for an organization. To get more information about the webhook, including the `active` state and `events`, use "[Get an organization webhook ](/rest/reference/orgs#get-an-organization-webhook)." + * + * Access tokens must have the `admin:org_hook` scope, and GitHub Apps must have the `organization_hooks:read` permission. + */ + getWebhookConfigForOrg: { + (params?: RestEndpointMethodTypes["orgs"]["getWebhookConfigForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all organizations, in the order that they were created on GitHub. + * + * **Note:** Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of organizations. + */ + list: { + (params?: RestEndpointMethodTypes["orgs"]["list"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all GitHub Apps in an organization. The installation count includes all GitHub Apps installed on repositories in the organization. You must be an organization owner with `admin:read` scope to use this endpoint. + */ + listAppInstallations: { + (params?: RestEndpointMethodTypes["orgs"]["listAppInstallations"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the users blocked by an organization. + */ + listBlockedUsers: { + (params?: RestEndpointMethodTypes["orgs"]["listBlockedUsers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List organizations for the authenticated user. + * + * **OAuth scope requirements** + * + * This only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with `read:org` scope, you can publicize your organization membership with `user` scope, etc.). Therefore, this API requires at least `user` or `read:org` scope. OAuth requests with insufficient scope receive a `403 Forbidden` response. + */ + listForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["orgs"]["listForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List [public organization memberships](https://help.github.com/articles/publicizing-or-concealing-organization-membership) for the specified user. + * + * This method only lists _public_ memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the [List organizations for the authenticated user](https://docs.github.com/rest/reference/orgs#list-organizations-for-the-authenticated-user) API instead. + */ + listForUser: { + (params?: RestEndpointMethodTypes["orgs"]["listForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner. + */ + listInvitationTeams: { + (params?: RestEndpointMethodTypes["orgs"]["listInvitationTeams"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned. + */ + listMembers: { + (params?: RestEndpointMethodTypes["orgs"]["listMembers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listMembershipsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["orgs"]["listMembershipsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all users who are outside collaborators of an organization. + */ + listOutsideCollaborators: { + (params?: RestEndpointMethodTypes["orgs"]["listOutsideCollaborators"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + */ + listPendingInvitations: { + (params?: RestEndpointMethodTypes["orgs"]["listPendingInvitations"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Members of an organization can choose to have their membership publicized or not. + */ + listPublicMembers: { + (params?: RestEndpointMethodTypes["orgs"]["listPublicMembers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listWebhooks: { + (params?: RestEndpointMethodTypes["orgs"]["listWebhooks"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. + */ + pingWebhook: { + (params?: RestEndpointMethodTypes["orgs"]["pingWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories. + */ + removeMember: { + (params?: RestEndpointMethodTypes["orgs"]["removeMember"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * In order to remove a user's membership with an organization, the authenticated user must be an organization owner. + * + * If the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases. + */ + removeMembershipForUser: { + (params?: RestEndpointMethodTypes["orgs"]["removeMembershipForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removing a user from this list will remove them from all the organization's repositories. + */ + removeOutsideCollaborator: { + (params?: RestEndpointMethodTypes["orgs"]["removeOutsideCollaborator"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + removePublicMembershipForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["orgs"]["removePublicMembershipForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Only authenticated organization owners can add a member to the organization or update the member's role. + * + * * If the authenticated user is _adding_ a member to the organization, the invited user will receive an email inviting them to the organization. The user's [membership status](https://docs.github.com/rest/reference/orgs#get-organization-membership-for-a-user) will be `pending` until they accept the invitation. + * + * * Authenticated users can _update_ a user's membership by passing the `role` parameter. If the authenticated user changes a member's role to `admin`, the affected user will receive an email notifying them that they've been made an organization owner. If the authenticated user changes an owner's role to `member`, no email will be sent. + * + * **Rate limits** + * + * To prevent abuse, the authenticated user is limited to 50 organization invitations per 24 hour period. If the organization is more than one month old or on a paid plan, the limit is 500 invitations per 24 hour period. + */ + setMembershipForUser: { + (params?: RestEndpointMethodTypes["orgs"]["setMembershipForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The user can publicize their own membership. (A user cannot publicize the membership for another user.) + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + */ + setPublicMembershipForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["orgs"]["setPublicMembershipForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + unblockUser: { + (params?: RestEndpointMethodTypes["orgs"]["unblockUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Parameter Deprecation Notice:** GitHub will replace and discontinue `members_allowed_repository_creation_type` in favor of more granular permissions. The new input parameters are `members_can_create_public_repositories`, `members_can_create_private_repositories` for all organizations and `members_can_create_internal_repositories` for organizations associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see the [blog post](https://developer.github.com/changes/2019-12-03-internal-visibility-changes). + * + * Enables an authenticated organization owner with the `admin:org` scope to update the organization's profile and member privileges. + */ + update: { + (params?: RestEndpointMethodTypes["orgs"]["update"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateMembershipForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["orgs"]["updateMembershipForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates a webhook configured in an organization. When you update a webhook, the `secret` will be overwritten. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for an organization](/rest/reference/orgs#update-a-webhook-configuration-for-an-organization)." + */ + updateWebhook: { + (params?: RestEndpointMethodTypes["orgs"]["updateWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the webhook configuration for an organization. To update more information about the webhook, including the `active` state and `events`, use "[Update an organization webhook ](/rest/reference/orgs#update-an-organization-webhook)." + * + * Access tokens must have the `admin:org_hook` scope, and GitHub Apps must have the `organization_hooks:write` permission. + */ + updateWebhookConfigForOrg: { + (params?: RestEndpointMethodTypes["orgs"]["updateWebhookConfigForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + projects: { + /** + * Adds a collaborator to an organization project and sets their permission level. You must be an organization owner or a project `admin` to add a collaborator. + */ + addCollaborator: { + (params?: RestEndpointMethodTypes["projects"]["addCollaborator"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. + * + * Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint. + */ + createCard: { + (params?: RestEndpointMethodTypes["projects"]["createCard"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + createColumn: { + (params?: RestEndpointMethodTypes["projects"]["createColumn"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + createForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["projects"]["createForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates an organization project board. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + createForOrg: { + (params?: RestEndpointMethodTypes["projects"]["createForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a repository project board. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + createForRepo: { + (params?: RestEndpointMethodTypes["projects"]["createForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a project board. Returns a `404 Not Found` status if projects are disabled. + */ + delete: { + (params?: RestEndpointMethodTypes["projects"]["delete"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteCard: { + (params?: RestEndpointMethodTypes["projects"]["deleteCard"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteColumn: { + (params?: RestEndpointMethodTypes["projects"]["deleteColumn"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a project by its `id`. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + get: { + (params?: RestEndpointMethodTypes["projects"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getCard: { + (params?: RestEndpointMethodTypes["projects"]["getCard"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getColumn: { + (params?: RestEndpointMethodTypes["projects"]["getColumn"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the collaborator's permission level for an organization project. Possible values for the `permission` key: `admin`, `write`, `read`, `none`. You must be an organization owner or a project `admin` to review a user's permission level. + */ + getPermissionForUser: { + (params?: RestEndpointMethodTypes["projects"]["getPermissionForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listCards: { + (params?: RestEndpointMethodTypes["projects"]["listCards"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the collaborators for an organization project. For a project, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. You must be an organization owner or a project `admin` to list collaborators. + */ + listCollaborators: { + (params?: RestEndpointMethodTypes["projects"]["listCollaborators"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listColumns: { + (params?: RestEndpointMethodTypes["projects"]["listColumns"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the projects in an organization. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + listForOrg: { + (params?: RestEndpointMethodTypes["projects"]["listForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the projects in a repository. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + listForRepo: { + (params?: RestEndpointMethodTypes["projects"]["listForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listForUser: { + (params?: RestEndpointMethodTypes["projects"]["listForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + moveCard: { + (params?: RestEndpointMethodTypes["projects"]["moveCard"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + moveColumn: { + (params?: RestEndpointMethodTypes["projects"]["moveColumn"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a collaborator from an organization project. You must be an organization owner or a project `admin` to remove a collaborator. + */ + removeCollaborator: { + (params?: RestEndpointMethodTypes["projects"]["removeCollaborator"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates a project board's information. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + update: { + (params?: RestEndpointMethodTypes["projects"]["update"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateCard: { + (params?: RestEndpointMethodTypes["projects"]["updateCard"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateColumn: { + (params?: RestEndpointMethodTypes["projects"]["updateColumn"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + pulls: { + checkIfMerged: { + (params?: RestEndpointMethodTypes["pulls"]["checkIfMerged"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + * + * You can create a new pull request. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + */ + create: { + (params?: RestEndpointMethodTypes["pulls"]["create"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a reply to a review comment for a pull request. For the `comment_id`, provide the ID of the review comment you are replying to. This must be the ID of a _top-level review comment_, not a reply to that comment. Replies to replies are not supported. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + */ + createReplyForReviewComment: { + (params?: RestEndpointMethodTypes["pulls"]["createReplyForReviewComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + * + * Pull request reviews created in the `PENDING` state do not include the `submitted_at` property in the response. + * + * **Note:** To comment on a specific line in a file, you need to first determine the _position_ of that line in the diff. The GitHub REST API v3 offers the `application/vnd.github.v3.diff` [media type](https://docs.github.com/rest/reference/media/#commits-commit-comparison-and-pull-requests). To see a pull request diff, add this media type to the `Accept` header of a call to the [single pull request](https://docs.github.com/rest/reference/pulls#get-a-pull-request) endpoint. + * + * The `position` value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + */ + createReview: { + (params?: RestEndpointMethodTypes["pulls"]["createReview"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** Multi-line comments on pull requests are currently in public beta and subject to change. + * + * Creates a review comment in the pull request diff. To add a regular comment to a pull request timeline, see "[Create an issue comment](https://docs.github.com/rest/reference/issues#create-an-issue-comment)." We recommend creating a review comment using `line`, `side`, and optionally `start_line` and `start_side` if your comment applies to more than one line in the pull request diff. + * + * You can still create a review comment using the `position` parameter. When you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required. For more information, see [Multi-line comment summary](https://docs.github.com/rest/reference/pulls#multi-line-comment-summary-3). + * + * **Note:** The position value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + * + * **Multi-line comment summary** + * + * **Note:** New parameters and response fields are available for developers to preview. During the preview period, these response fields may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2019-10-03-multi-line-comments) for full details. + * + * Use the `comfort-fade` preview header and the `line` parameter to show multi-line comment-supported fields in the response. + * + * If you use the `comfort-fade` preview header, your response will show: + * + * * For multi-line comments, values for `start_line`, `original_start_line`, `start_side`, `line`, `original_line`, and `side`. + * * For single-line comments, values for `line`, `original_line`, and `side` and a `null` value for `start_line`, `original_start_line`, and `start_side`. + * + * If you don't use the `comfort-fade` preview header, multi-line and single-line comments will appear the same way in the response with a single `position` attribute. Your response will show: + * + * * For multi-line comments, the last line of the comment range for the `position` attribute. + * * For single-line comments, the diff-positioned way of referencing comments for the `position` attribute. For more information, see `position` in the [input parameters](https://docs.github.com/rest/reference/pulls#parameters-2) table. + */ + createReviewComment: { + (params?: RestEndpointMethodTypes["pulls"]["createReviewComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deletePendingReview: { + (params?: RestEndpointMethodTypes["pulls"]["deletePendingReview"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a review comment. + */ + deleteReviewComment: { + (params?: RestEndpointMethodTypes["pulls"]["deleteReviewComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** To dismiss a pull request review on a [protected branch](https://docs.github.com/rest/reference/repos#branches), you must be a repository administrator or be included in the list of people or teams who can dismiss pull request reviews. + */ + dismissReview: { + (params?: RestEndpointMethodTypes["pulls"]["dismissReview"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists details of a pull request by providing its number. + * + * When you get, [create](https://docs.github.com/rest/reference/pulls/#create-a-pull-request), or [edit](https://docs.github.com/rest/reference/pulls#update-a-pull-request) a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the `mergeable` key. For more information, see "[Checking mergeability of pull requests](https://docs.github.com/rest/guides/getting-started-with-the-git-database-api#checking-mergeability-of-pull-requests)". + * + * The value of the `mergeable` attribute can be `true`, `false`, or `null`. If the value is `null`, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-`null` value for the `mergeable` attribute in the response. If `mergeable` is `true`, then `merge_commit_sha` will be the SHA of the _test_ merge commit. + * + * The value of the `merge_commit_sha` attribute changes depending on the state of the pull request. Before merging a pull request, the `merge_commit_sha` attribute holds the SHA of the _test_ merge commit. After merging a pull request, the `merge_commit_sha` attribute changes depending on how you merged the pull request: + * + * * If merged as a [merge commit](https://help.github.com/articles/about-merge-methods-on-github/), `merge_commit_sha` represents the SHA of the merge commit. + * * If merged via a [squash](https://help.github.com/articles/about-merge-methods-on-github/#squashing-your-merge-commits), `merge_commit_sha` represents the SHA of the squashed commit on the base branch. + * * If [rebased](https://help.github.com/articles/about-merge-methods-on-github/#rebasing-and-merging-your-commits), `merge_commit_sha` represents the commit that the base branch was updated to. + * + * Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + */ + get: { + (params?: RestEndpointMethodTypes["pulls"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getReview: { + (params?: RestEndpointMethodTypes["pulls"]["getReview"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** Multi-line comments on pull requests are currently in public beta and subject to change. + * + * Provides details for a review comment. + * + * **Multi-line comment summary** + * + * **Note:** New parameters and response fields are available for developers to preview. During the preview period, these response fields may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2019-10-03-multi-line-comments) for full details. + * + * Use the `comfort-fade` preview header and the `line` parameter to show multi-line comment-supported fields in the response. + * + * If you use the `comfort-fade` preview header, your response will show: + * + * * For multi-line comments, values for `start_line`, `original_start_line`, `start_side`, `line`, `original_line`, and `side`. + * * For single-line comments, values for `line`, `original_line`, and `side` and a `null` value for `start_line`, `original_start_line`, and `start_side`. + * + * If you don't use the `comfort-fade` preview header, multi-line and single-line comments will appear the same way in the response with a single `position` attribute. Your response will show: + * + * * For multi-line comments, the last line of the comment range for the `position` attribute. + * * For single-line comments, the diff-positioned way of referencing comments for the `position` attribute. For more information, see `position` in the [input parameters](https://docs.github.com/rest/reference/pulls#parameters-2) table. + * + * The `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions. + */ + getReviewComment: { + (params?: RestEndpointMethodTypes["pulls"]["getReviewComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + list: { + (params?: RestEndpointMethodTypes["pulls"]["list"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List comments for a specific pull request review. + */ + listCommentsForReview: { + (params?: RestEndpointMethodTypes["pulls"]["listCommentsForReview"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists a maximum of 250 commits for a pull request. To receive a complete commit list for pull requests with more than 250 commits, use the [List commits](https://docs.github.com/rest/reference/repos#list-commits) endpoint. + */ + listCommits: { + (params?: RestEndpointMethodTypes["pulls"]["listCommits"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** Responses include a maximum of 3000 files. The paginated response returns 30 files per page by default. + */ + listFiles: { + (params?: RestEndpointMethodTypes["pulls"]["listFiles"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listRequestedReviewers: { + (params?: RestEndpointMethodTypes["pulls"]["listRequestedReviewers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** Multi-line comments on pull requests are currently in public beta and subject to change. + * + * Lists all review comments for a pull request. By default, review comments are in ascending order by ID. + * + * **Multi-line comment summary** + * + * **Note:** New parameters and response fields are available for developers to preview. During the preview period, these response fields may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2019-10-03-multi-line-comments) for full details. + * + * Use the `comfort-fade` preview header and the `line` parameter to show multi-line comment-supported fields in the response. + * + * If you use the `comfort-fade` preview header, your response will show: + * + * * For multi-line comments, values for `start_line`, `original_start_line`, `start_side`, `line`, `original_line`, and `side`. + * * For single-line comments, values for `line`, `original_line`, and `side` and a `null` value for `start_line`, `original_start_line`, and `start_side`. + * + * If you don't use the `comfort-fade` preview header, multi-line and single-line comments will appear the same way in the response with a single `position` attribute. Your response will show: + * + * * For multi-line comments, the last line of the comment range for the `position` attribute. + * * For single-line comments, the diff-positioned way of referencing comments for the `position` attribute. For more information, see `position` in the [input parameters](https://docs.github.com/rest/reference/pulls#parameters-2) table. + * + * The `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions. + */ + listReviewComments: { + (params?: RestEndpointMethodTypes["pulls"]["listReviewComments"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** Multi-line comments on pull requests are currently in public beta and subject to change. + * + * Lists review comments for all pull requests in a repository. By default, review comments are in ascending order by ID. + * + * **Multi-line comment summary** + * + * **Note:** New parameters and response fields are available for developers to preview. During the preview period, these response fields may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2019-10-03-multi-line-comments) for full details. + * + * Use the `comfort-fade` preview header and the `line` parameter to show multi-line comment-supported fields in the response. + * + * If you use the `comfort-fade` preview header, your response will show: + * + * * For multi-line comments, values for `start_line`, `original_start_line`, `start_side`, `line`, `original_line`, and `side`. + * * For single-line comments, values for `line`, `original_line`, and `side` and a `null` value for `start_line`, `original_start_line`, and `start_side`. + * + * If you don't use the `comfort-fade` preview header, multi-line and single-line comments will appear the same way in the response with a single `position` attribute. Your response will show: + * + * * For multi-line comments, the last line of the comment range for the `position` attribute. + * * For single-line comments, the diff-positioned way of referencing comments for the `position` attribute. For more information, see `position` in the [input parameters](https://docs.github.com/rest/reference/pulls#parameters-2) table. + * + * The `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://docs.github.com/rest/reference/reactions) reactions. + */ + listReviewCommentsForRepo: { + (params?: RestEndpointMethodTypes["pulls"]["listReviewCommentsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The list of reviews returns in chronological order. + */ + listReviews: { + (params?: RestEndpointMethodTypes["pulls"]["listReviews"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/reference/guides#dealing-with-abuse-rate-limits)" for details. + */ + merge: { + (params?: RestEndpointMethodTypes["pulls"]["merge"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + removeRequestedReviewers: { + (params?: RestEndpointMethodTypes["pulls"]["removeRequestedReviewers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/reference/guides#dealing-with-abuse-rate-limits)" for details. + */ + requestReviewers: { + (params?: RestEndpointMethodTypes["pulls"]["requestReviewers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + submitReview: { + (params?: RestEndpointMethodTypes["pulls"]["submitReview"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + */ + update: { + (params?: RestEndpointMethodTypes["pulls"]["update"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch. + */ + updateBranch: { + (params?: RestEndpointMethodTypes["pulls"]["updateBranch"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Update the review summary comment with new text. + */ + updateReview: { + (params?: RestEndpointMethodTypes["pulls"]["updateReview"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** Multi-line comments on pull requests are currently in public beta and subject to change. + * + * Enables you to edit a review comment. + * + * **Multi-line comment summary** + * + * **Note:** New parameters and response fields are available for developers to preview. During the preview period, these response fields may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2019-10-03-multi-line-comments) for full details. + * + * Use the `comfort-fade` preview header and the `line` parameter to show multi-line comment-supported fields in the response. + * + * If you use the `comfort-fade` preview header, your response will show: + * + * * For multi-line comments, values for `start_line`, `original_start_line`, `start_side`, `line`, `original_line`, and `side`. + * * For single-line comments, values for `line`, `original_line`, and `side` and a `null` value for `start_line`, `original_start_line`, and `start_side`. + * + * If you don't use the `comfort-fade` preview header, multi-line and single-line comments will appear the same way in the response with a single `position` attribute. Your response will show: + * + * * For multi-line comments, the last line of the comment range for the `position` attribute. + * * For single-line comments, the diff-positioned way of referencing comments for the `position` attribute. For more information, see `position` in the [input parameters](https://docs.github.com/rest/reference/pulls#parameters-2) table. + */ + updateReviewComment: { + (params?: RestEndpointMethodTypes["pulls"]["updateReviewComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + rateLimit: { + /** + * **Note:** Accessing this endpoint does not count against your REST API rate limit. + * + * **Note:** The `rate` object is deprecated. If you're writing new API client code or updating existing code, you should use the `core` object instead of the `rate` object. The `core` object contains the same information that is present in the `rate` object. + */ + get: { + (params?: RestEndpointMethodTypes["rateLimit"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + reactions: { + /** + * Create a reaction to a [commit comment](https://docs.github.com/rest/reference/repos#comments). A response with a `Status: 200 OK` means that you already added the reaction type to this commit comment. + */ + createForCommitComment: { + (params?: RestEndpointMethodTypes["reactions"]["createForCommitComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a reaction to an [issue](https://docs.github.com/rest/reference/issues/). A response with a `Status: 200 OK` means that you already added the reaction type to this issue. + */ + createForIssue: { + (params?: RestEndpointMethodTypes["reactions"]["createForIssue"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a reaction to an [issue comment](https://docs.github.com/rest/reference/issues#comments). A response with a `Status: 200 OK` means that you already added the reaction type to this issue comment. + */ + createForIssueComment: { + (params?: RestEndpointMethodTypes["reactions"]["createForIssueComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a reaction to a [pull request review comment](https://docs.github.com/rest/reference/pulls#comments). A response with a `Status: 200 OK` means that you already added the reaction type to this pull request review comment. + */ + createForPullRequestReviewComment: { + (params?: RestEndpointMethodTypes["reactions"]["createForPullRequestReviewComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with a `Status: 200 OK` means that you already added the reaction type to this team discussion comment. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + */ + createForTeamDiscussionCommentInOrg: { + (params?: RestEndpointMethodTypes["reactions"]["createForTeamDiscussionCommentInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with a `Status: 200 OK` means that you already added the reaction type to this team discussion. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + */ + createForTeamDiscussionInOrg: { + (params?: RestEndpointMethodTypes["reactions"]["createForTeamDiscussionInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to a [commit comment](https://docs.github.com/rest/reference/repos#comments). + */ + deleteForCommitComment: { + (params?: RestEndpointMethodTypes["reactions"]["deleteForCommitComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/issues/:issue_number/reactions/:reaction_id`. + * + * Delete a reaction to an [issue](https://docs.github.com/rest/reference/issues/). + */ + deleteForIssue: { + (params?: RestEndpointMethodTypes["reactions"]["deleteForIssue"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE delete /repositories/:repository_id/issues/comments/:comment_id/reactions/:reaction_id`. + * + * Delete a reaction to an [issue comment](https://docs.github.com/rest/reference/issues#comments). + */ + deleteForIssueComment: { + (params?: RestEndpointMethodTypes["reactions"]["deleteForIssueComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** You can also specify a repository by `repository_id` using the route `DELETE /repositories/:repository_id/pulls/comments/:comment_id/reactions/:reaction_id.` + * + * Delete a reaction to a [pull request review comment](https://docs.github.com/rest/reference/pulls#review-comments). + */ + deleteForPullRequestComment: { + (params?: RestEndpointMethodTypes["reactions"]["deleteForPullRequestComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + deleteForTeamDiscussion: { + (params?: RestEndpointMethodTypes["reactions"]["deleteForTeamDiscussion"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** You can also specify a team or organization with `team_id` and `org_id` using the route `DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions/:reaction_id`. + * + * Delete a reaction to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + deleteForTeamDiscussionComment: { + (params?: RestEndpointMethodTypes["reactions"]["deleteForTeamDiscussionComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Deprecation Notice:** This endpoint route is deprecated and will be removed from the Reactions API. We recommend migrating your existing code to use the new delete reactions endpoints. For more information, see this [blog post](https://developer.github.com/changes/2020-02-26-new-delete-reactions-endpoints/). + * + * OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), when deleting a [team discussion](https://docs.github.com/rest/reference/teams#discussions) or [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments). + * @deprecated octokit.reactions.deleteLegacy() is deprecated, see https://docs.github.com/v3/reactions/#delete-a-reaction-legacy + */ + deleteLegacy: { + (params?: RestEndpointMethodTypes["reactions"]["deleteLegacy"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the reactions to a [commit comment](https://docs.github.com/rest/reference/repos#comments). + */ + listForCommitComment: { + (params?: RestEndpointMethodTypes["reactions"]["listForCommitComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the reactions to an [issue](https://docs.github.com/rest/reference/issues). + */ + listForIssue: { + (params?: RestEndpointMethodTypes["reactions"]["listForIssue"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the reactions to an [issue comment](https://docs.github.com/rest/reference/issues#comments). + */ + listForIssueComment: { + (params?: RestEndpointMethodTypes["reactions"]["listForIssueComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the reactions to a [pull request review comment](https://docs.github.com/rest/reference/pulls#review-comments). + */ + listForPullRequestReviewComment: { + (params?: RestEndpointMethodTypes["reactions"]["listForPullRequestReviewComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the reactions to a [team discussion comment](https://docs.github.com/rest/reference/teams#discussion-comments/). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions`. + */ + listForTeamDiscussionCommentInOrg: { + (params?: RestEndpointMethodTypes["reactions"]["listForTeamDiscussionCommentInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the reactions to a [team discussion](https://docs.github.com/rest/reference/teams#discussions). OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions`. + */ + listForTeamDiscussionInOrg: { + (params?: RestEndpointMethodTypes["reactions"]["listForTeamDiscussionInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + repos: { + acceptInvitation: { + (params?: RestEndpointMethodTypes["repos"]["acceptInvitation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified apps push access for this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * + * | Type | Description | + * | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + addAppAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["addAppAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + * + * For more information the permission levels, see "[Repository permission levels for an organization](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * + * The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the [repository invitations API endpoints](https://docs.github.com/rest/reference/repos#invitations). + * + * **Rate limits** + * + * To prevent abuse, you are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository. + */ + addCollaborator: { + (params?: RestEndpointMethodTypes["repos"]["addCollaborator"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + addStatusCheckContexts: { + (params?: RestEndpointMethodTypes["repos"]["addStatusCheckContexts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified teams push access for this branch. You can also give push access to child teams. + * + * | Type | Description | + * | ------- | ------------------------------------------------------------------------------------------------------------------------------------------ | + * | `array` | The teams that can have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + addTeamAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["addTeamAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Grants the specified people push access for this branch. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + addUserAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["addUserAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * + * Team members will include the members of child teams. + */ + checkCollaborator: { + (params?: RestEndpointMethodTypes["repos"]["checkCollaborator"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Shows whether dependency alerts are enabled or disabled for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://help.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + checkVulnerabilityAlerts: { + (params?: RestEndpointMethodTypes["repos"]["checkVulnerabilityAlerts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Both `:base` and `:head` must be branch names in `:repo`. To compare branches across other repositories in the same network as `:repo`, use the format `:branch`. + * + * The response from the API is equivalent to running the `git log base..head` command; however, commits are returned in chronological order. Pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * **Working with large comparisons** + * + * The response will include a comparison of up to 250 commits. If you are working with a larger commit range, you can use the [List commits](https://docs.github.com/rest/reference/repos#list-commits) to enumerate all commits in the range. + * + * For comparisons with extremely large diffs, you may receive an error response indicating that the diff took too long + * to generate. You can typically resolve this error by using a smaller commit range. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + compareCommits: { + (params?: RestEndpointMethodTypes["repos"]["compareCommits"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a comment for a commit using its `:commit_sha`. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + */ + createCommitComment: { + (params?: RestEndpointMethodTypes["repos"]["createCommitComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits. + */ + createCommitSignatureProtection: { + (params?: RestEndpointMethodTypes["repos"]["createCommitSignatureProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with push access in a repository can create commit statuses for a given SHA. + * + * Note: there is a limit of 1000 statuses per `sha` and `context` within a repository. Attempts to create more than 1000 statuses will result in a validation error. + */ + createCommitStatus: { + (params?: RestEndpointMethodTypes["repos"]["createCommitStatus"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You can create a read-only deploy key. + */ + createDeployKey: { + (params?: RestEndpointMethodTypes["repos"]["createDeployKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deployments offer a few configurable parameters with certain defaults. + * + * The `ref` parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them + * before we merge a pull request. + * + * The `environment` parameter allows deployments to be issued to different runtime environments. Teams often have + * multiple environments for verifying their applications, such as `production`, `staging`, and `qa`. This parameter + * makes it easier to track which environments have requested deployments. The default environment is `production`. + * + * The `auto_merge` parameter is used to ensure that the requested ref is not behind the repository's default branch. If + * the ref _is_ behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds, + * the API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will + * return a failure response. + * + * By default, [commit statuses](https://docs.github.com/rest/reference/repos#statuses) for every submitted context must be in a `success` + * state. The `required_contexts` parameter allows you to specify a subset of contexts that must be `success`, or to + * specify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do + * not require any contexts or create any commit statuses, the deployment will always succeed. + * + * The `payload` parameter is available for any extra information that a deployment system might need. It is a JSON text + * field that will be passed on when a deployment event is dispatched. + * + * The `task` parameter is used by the deployment system to allow different execution paths. In the web world this might + * be `deploy:migrations` to run schema changes on the system. In the compiled world this could be a flag to compile an + * application with debugging enabled. + * + * Users with `repo` or `repo_deployment` scopes can create a deployment for a given ref. + * + * #### Merged branch response + * You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating + * a deployment. This auto-merge happens when: + * * Auto-merge option is enabled in the repository + * * Topic branch does not include the latest changes on the base branch, which is `master` in the response example + * * There are no merge conflicts + * + * If there are no new commits in the base branch, a new request to create a deployment should give a successful + * response. + * + * #### Merge conflict response + * This error happens when the `auto_merge` option is enabled and when the default branch (in this case `master`), can't + * be merged into the branch that's being deployed (in this case `topic-branch`), due to merge conflicts. + * + * #### Failed commit status checks + * This error happens when the `required_contexts` parameter indicates that one or more contexts need to have a `success` + * status for the commit to be deployed, but one or more of the required contexts do not have a state of `success`. + */ + createDeployment: { + (params?: RestEndpointMethodTypes["repos"]["createDeployment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with `push` access can create deployment statuses for a given deployment. + * + * GitHub Apps require `read & write` access to "Deployments" and `read-only` access to "Repo contents" (for private repos). OAuth Apps require the `repo_deployment` scope. + */ + createDeploymentStatus: { + (params?: RestEndpointMethodTypes["repos"]["createDeploymentStatus"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You can use this endpoint to trigger a webhook event called `repository_dispatch` when you want activity that happens outside of GitHub to trigger a GitHub Actions workflow or GitHub App webhook. You must configure your GitHub Actions workflow or GitHub App to run when the `repository_dispatch` event occurs. For an example `repository_dispatch` webhook payload, see "[RepositoryDispatchEvent](https://docs.github.com/webhooks/event-payloads/#repository_dispatch)." + * + * The `client_payload` parameter is available for any extra information that your workflow might need. This parameter is a JSON payload that will be passed on when the webhook event is dispatched. For example, the `client_payload` can include a message that a user would like to send using a GitHub Actions workflow. Or the `client_payload` can be used as a test to debug your workflow. + * + * To give you write access to the repository, you must use a personal access token with the `repo` scope. For more information, see "[Creating a personal access token for the command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line)" in the GitHub Help documentation. + * + * This input example shows how you can use the `client_payload` as a test to debug your workflow. + */ + createDispatchEvent: { + (params?: RestEndpointMethodTypes["repos"]["createDispatchEvent"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new repository for the authenticated user. + * + * **OAuth scope requirements** + * + * When using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include: + * + * * `public_repo` scope or `repo` scope to create a public repository + * * `repo` scope to create a private repository + */ + createForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["repos"]["createForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Create a fork for the authenticated user. + * + * **Note**: Forking a Repository happens asynchronously. You may have to wait a short period of time before you can access the git objects. If this takes longer than 5 minutes, be sure to contact [GitHub Support](https://github.com/contact) or [GitHub Premium Support](https://premium.githubsupport.com). + */ + createFork: { + (params?: RestEndpointMethodTypes["repos"]["createFork"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new repository in the specified organization. The authenticated user must be a member of the organization. + * + * **OAuth scope requirements** + * + * When using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include: + * + * * `public_repo` scope or `repo` scope to create a public repository + * * `repo` scope to create a private repository + */ + createInOrg: { + (params?: RestEndpointMethodTypes["repos"]["createInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new file or replaces an existing file in a repository. + */ + createOrUpdateFileContents: { + (params?: RestEndpointMethodTypes["repos"]["createOrUpdateFileContents"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Configures a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages)." + */ + createPagesSite: { + (params?: RestEndpointMethodTypes["repos"]["createPagesSite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with push access to the repository can create a release. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + */ + createRelease: { + (params?: RestEndpointMethodTypes["repos"]["createRelease"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new repository using a repository template. Use the `template_owner` and `template_repo` route parameters to specify the repository to use as the template. The authenticated user must own or be a member of an organization that owns the repository. To check if a repository is available to use as a template, get the repository's information using the [Get a repository](https://docs.github.com/rest/reference/repos#get-a-repository) endpoint and check that the `is_template` key is `true`. + * + * **OAuth scope requirements** + * + * When using [OAuth](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include: + * + * * `public_repo` scope or `repo` scope to create a public repository + * * `repo` scope to create a private repository + */ + createUsingTemplate: { + (params?: RestEndpointMethodTypes["repos"]["createUsingTemplate"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Repositories can have multiple webhooks installed. Each webhook should have a unique `config`. Multiple webhooks can + * share the same `config` as long as those webhooks do not have any `events` that overlap. + */ + createWebhook: { + (params?: RestEndpointMethodTypes["repos"]["createWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + declineInvitation: { + (params?: RestEndpointMethodTypes["repos"]["declineInvitation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deleting a repository requires admin access. If OAuth is used, the `delete_repo` scope is required. + * + * If an organization owner has configured the organization to prevent members from deleting organization-owned + * repositories, you will get a `403 Forbidden` response. + */ + delete: { + (params?: RestEndpointMethodTypes["repos"]["delete"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Disables the ability to restrict who can push to this branch. + */ + deleteAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["deleteAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removing admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + deleteAdminBranchProtection: { + (params?: RestEndpointMethodTypes["repos"]["deleteAdminBranchProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + deleteBranchProtection: { + (params?: RestEndpointMethodTypes["repos"]["deleteBranchProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteCommitComment: { + (params?: RestEndpointMethodTypes["repos"]["deleteCommitComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to disable required signed commits on a branch. You must enable branch protection to require signed commits. + */ + deleteCommitSignatureProtection: { + (params?: RestEndpointMethodTypes["repos"]["deleteCommitSignatureProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deploy keys are immutable. If you need to update a key, remove the key and create a new one instead. + */ + deleteDeployKey: { + (params?: RestEndpointMethodTypes["repos"]["deleteDeployKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * To ensure there can always be an active deployment, you can only delete an _inactive_ deployment. Anyone with `repo` or `repo_deployment` scopes can delete an inactive deployment. + * + * To set a deployment as inactive, you must: + * + * * Create a new deployment that is active so that the system has a record of the current state, then delete the previously active deployment. + * * Mark the active deployment as inactive by adding any non-successful deployment status. + * + * For more information, see "[Create a deployment](https://docs.github.com/rest/reference/repos/deployments/#create-a-deployment)" and "[Create a deployment status](https://docs.github.com/rest/reference/repos#create-a-deployment-status)." + */ + deleteDeployment: { + (params?: RestEndpointMethodTypes["repos"]["deleteDeployment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a file in a repository. + * + * You can provide an additional `committer` parameter, which is an object containing information about the committer. Or, you can provide an `author` parameter, which is an object containing information about the author. + * + * The `author` section is optional and is filled in with the `committer` information if omitted. If the `committer` information is omitted, the authenticated user's information is used. + * + * You must provide values for both `name` and `email`, whether you choose to use `author` or `committer`. Otherwise, you'll receive a `422` status code. + */ + deleteFile: { + (params?: RestEndpointMethodTypes["repos"]["deleteFile"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteInvitation: { + (params?: RestEndpointMethodTypes["repos"]["deleteInvitation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deletePagesSite: { + (params?: RestEndpointMethodTypes["repos"]["deletePagesSite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + deletePullRequestReviewProtection: { + (params?: RestEndpointMethodTypes["repos"]["deletePullRequestReviewProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with push access to the repository can delete a release. + */ + deleteRelease: { + (params?: RestEndpointMethodTypes["repos"]["deleteRelease"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteReleaseAsset: { + (params?: RestEndpointMethodTypes["repos"]["deleteReleaseAsset"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + deleteWebhook: { + (params?: RestEndpointMethodTypes["repos"]["deleteWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Disables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://help.github.com/en/articles/configuring-automated-security-fixes)". + */ + disableAutomatedSecurityFixes: { + (params?: RestEndpointMethodTypes["repos"]["disableAutomatedSecurityFixes"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Disables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://help.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + disableVulnerabilityAlerts: { + (params?: RestEndpointMethodTypes["repos"]["disableVulnerabilityAlerts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a redirect URL to download a zip archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `master`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * **Note**: For private repositories, these links are temporary and expire after five minutes. + * @deprecated octokit.repos.downloadArchive() has been renamed to octokit.repos.downloadZipballArchive() (2020-09-17) + */ + downloadArchive: { + (params?: RestEndpointMethodTypes["repos"]["downloadArchive"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a redirect URL to download a tar archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `master`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * **Note**: For private repositories, these links are temporary and expire after five minutes. + */ + downloadTarballArchive: { + (params?: RestEndpointMethodTypes["repos"]["downloadTarballArchive"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a redirect URL to download a zip archive for a repository. If you omit `:ref`, the repository’s default branch (usually + * `master`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use + * the `Location` header to make a second `GET` request. + * **Note**: For private repositories, these links are temporary and expire after five minutes. + */ + downloadZipballArchive: { + (params?: RestEndpointMethodTypes["repos"]["downloadZipballArchive"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://help.github.com/en/articles/configuring-automated-security-fixes)". + */ + enableAutomatedSecurityFixes: { + (params?: RestEndpointMethodTypes["repos"]["enableAutomatedSecurityFixes"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Enables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://help.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)". + */ + enableVulnerabilityAlerts: { + (params?: RestEndpointMethodTypes["repos"]["enableVulnerabilityAlerts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * When you pass the `scarlet-witch-preview` media type, requests to get a repository will also return the repository's code of conduct if it can be detected from the repository's code of conduct file. + * + * The `parent` and `source` objects are present when the repository is a fork. `parent` is the repository this repository was forked from, `source` is the ultimate source for the network. + */ + get: { + (params?: RestEndpointMethodTypes["repos"]["get"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists who has access to this protected branch. + * + * **Note**: Users, apps, and teams `restrictions` are only available for organization-owned repositories. + */ + getAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["getAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + getAdminBranchProtection: { + (params?: RestEndpointMethodTypes["repos"]["getAdminBranchProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + getAllStatusCheckContexts: { + (params?: RestEndpointMethodTypes["repos"]["getAllStatusCheckContexts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getAllTopics: { + (params?: RestEndpointMethodTypes["repos"]["getAllTopics"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the GitHub Apps that have push access to this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + */ + getAppsWithAccessToProtectedBranch: { + (params?: RestEndpointMethodTypes["repos"]["getAppsWithAccessToProtectedBranch"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getBranch: { + (params?: RestEndpointMethodTypes["repos"]["getBranch"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + getBranchProtection: { + (params?: RestEndpointMethodTypes["repos"]["getBranchProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get the total number of clones and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + getClones: { + (params?: RestEndpointMethodTypes["repos"]["getClones"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a weekly aggregate of the number of additions and deletions pushed to a repository. + */ + getCodeFrequencyStats: { + (params?: RestEndpointMethodTypes["repos"]["getCodeFrequencyStats"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Checks the repository permission of a collaborator. The possible repository permissions are `admin`, `write`, `read`, and `none`. + */ + getCollaboratorPermissionLevel: { + (params?: RestEndpointMethodTypes["repos"]["getCollaboratorPermissionLevel"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with pull access in a repository can access a combined view of commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. + * + * The most recent status for each context is returned, up to 100. This field [paginates](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination) if there are over 100 contexts. + * + * Additionally, a combined `state` is returned. The `state` is one of: + * + * * **failure** if any of the contexts report as `error` or `failure` + * * **pending** if there are no statuses or a context is `pending` + * * **success** if the latest status for all contexts is `success` + */ + getCombinedStatusForRef: { + (params?: RestEndpointMethodTypes["repos"]["getCombinedStatusForRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the contents of a single commit reference. You must have `read` access for the repository to use this endpoint. + * + * **Note:** If there are more than 300 files in the commit diff, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing. + * + * You can pass the appropriate [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) to fetch `diff` and `patch` formats. Diffs with binary data will have no `patch` property. + * + * To return only the SHA-1 hash of the commit reference, you can provide the `sha` custom [media type](https://docs.github.com/rest/overview/media-types/#commits-commit-comparison-and-pull-requests) in the `Accept` header. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + getCommit: { + (params?: RestEndpointMethodTypes["repos"]["getCommit"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the last year of commit activity grouped by week. The `days` array is a group of commits per day, starting on `Sunday`. + */ + getCommitActivityStats: { + (params?: RestEndpointMethodTypes["repos"]["getCommitActivityStats"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getCommitComment: { + (params?: RestEndpointMethodTypes["repos"]["getCommitComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of `true` indicates you must sign commits on this branch. For more information, see [Signing commits with GPG](https://help.github.com/articles/signing-commits-with-gpg) in GitHub Help. + * + * **Note**: You must enable branch protection to require signed commits. + */ + getCommitSignatureProtection: { + (params?: RestEndpointMethodTypes["repos"]["getCommitSignatureProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint will return all community profile metrics, including an + * overall health score, repository description, the presence of documentation, detected + * code of conduct, detected license, and the presence of ISSUE\_TEMPLATE, PULL\_REQUEST\_TEMPLATE, + * README, and CONTRIBUTING files. + * + * `content_reports_enabled` is only returned for organization-owned repositories. + */ + getCommunityProfileMetrics: { + (params?: RestEndpointMethodTypes["repos"]["getCommunityProfileMetrics"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the contents of a file or directory in a repository. Specify the file path or directory in `:path`. If you omit + * `:path`, you will receive the contents of all files in the repository. + * + * Files and symlinks support [a custom media type](https://docs.github.com/rest/reference/repos#custom-media-types) for + * retrieving the raw content or rendered HTML (when supported). All content types support [a custom media + * type](https://docs.github.com/rest/reference/repos#custom-media-types) to ensure the content is returned in a consistent + * object format. + * + * **Note**: + * * To get a repository's contents recursively, you can [recursively get the tree](https://docs.github.com/rest/reference/git#trees). + * * This API has an upper limit of 1,000 files for a directory. If you need to retrieve more files, use the [Git Trees + * API](https://docs.github.com/rest/reference/git#get-a-tree). + * * This API supports files up to 1 megabyte in size. + * + * #### If the content is a directory + * The response will be an array of objects, one object for each item in the directory. + * When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value + * _should_ be "submodule". This behavior exists in API v3 [for backwards compatibility purposes](https://git.io/v1YCW). + * In the next major version of the API, the type will be returned as "submodule". + * + * #### If the content is a symlink + * If the requested `:path` points to a symlink, and the symlink's target is a normal file in the repository, then the + * API responds with the content of the file (in the format shown in the example. Otherwise, the API responds with an object + * describing the symlink itself. + * + * #### If the content is a submodule + * The `submodule_git_url` identifies the location of the submodule repository, and the `sha` identifies a specific + * commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out + * the submodule at that specific commit. + * + * If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the + * github.com URLs (`html_url` and `_links["html"]`) will have null values. + */ + getContent: { + (params?: RestEndpointMethodTypes["repos"]["getContent"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the `total` number of commits authored by the contributor. In addition, the response includes a Weekly Hash (`weeks` array) with the following information: + * + * * `w` - Start of the week, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time). + * * `a` - Number of additions + * * `d` - Number of deletions + * * `c` - Number of commits + */ + getContributorsStats: { + (params?: RestEndpointMethodTypes["repos"]["getContributorsStats"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getDeployKey: { + (params?: RestEndpointMethodTypes["repos"]["getDeployKey"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getDeployment: { + (params?: RestEndpointMethodTypes["repos"]["getDeployment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with pull access can view a deployment status for a deployment: + */ + getDeploymentStatus: { + (params?: RestEndpointMethodTypes["repos"]["getDeploymentStatus"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getLatestPagesBuild: { + (params?: RestEndpointMethodTypes["repos"]["getLatestPagesBuild"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * View the latest published full release for the repository. + * + * The latest release is the most recent non-prerelease, non-draft release, sorted by the `created_at` attribute. The `created_at` attribute is the date of the commit used for the release, and not the date when the release was drafted or published. + */ + getLatestRelease: { + (params?: RestEndpointMethodTypes["repos"]["getLatestRelease"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getPages: { + (params?: RestEndpointMethodTypes["repos"]["getPages"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + getPagesBuild: { + (params?: RestEndpointMethodTypes["repos"]["getPagesBuild"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the total commit counts for the `owner` and total commit counts in `all`. `all` is everyone combined, including the `owner` in the last 52 weeks. If you'd like to get the commit counts for non-owners, you can subtract `owner` from `all`. + * + * The array order is oldest week (index 0) to most recent week. + */ + getParticipationStats: { + (params?: RestEndpointMethodTypes["repos"]["getParticipationStats"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + getPullRequestReviewProtection: { + (params?: RestEndpointMethodTypes["repos"]["getPullRequestReviewProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Each array contains the day number, hour number, and number of commits: + * + * * `0-6`: Sunday - Saturday + * * `0-23`: Hour of day + * * Number of commits + * + * For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits. + */ + getPunchCardStats: { + (params?: RestEndpointMethodTypes["repos"]["getPunchCardStats"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets the preferred README for a repository. + * + * READMEs support [custom media types](https://docs.github.com/rest/reference/repos#custom-media-types) for retrieving the raw content or rendered HTML. + */ + getReadme: { + (params?: RestEndpointMethodTypes["repos"]["getReadme"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** This returns an `upload_url` key corresponding to the endpoint for uploading release assets. This key is a [hypermedia resource](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia). + */ + getRelease: { + (params?: RestEndpointMethodTypes["repos"]["getRelease"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * To download the asset's binary content, set the `Accept` header of the request to [`application/octet-stream`](https://docs.github.com/rest/overview/media-types). The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a `200` or `302` response. + */ + getReleaseAsset: { + (params?: RestEndpointMethodTypes["repos"]["getReleaseAsset"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get a published release with the specified tag. + */ + getReleaseByTag: { + (params?: RestEndpointMethodTypes["repos"]["getReleaseByTag"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + getStatusChecksProtection: { + (params?: RestEndpointMethodTypes["repos"]["getStatusChecksProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the teams who have push access to this branch. The list includes child teams. + */ + getTeamsWithAccessToProtectedBranch: { + (params?: RestEndpointMethodTypes["repos"]["getTeamsWithAccessToProtectedBranch"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get the top 10 popular contents over the last 14 days. + */ + getTopPaths: { + (params?: RestEndpointMethodTypes["repos"]["getTopPaths"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get the top 10 referrers over the last 14 days. + */ + getTopReferrers: { + (params?: RestEndpointMethodTypes["repos"]["getTopReferrers"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Lists the people who have push access to this branch. + */ + getUsersWithAccessToProtectedBranch: { + (params?: RestEndpointMethodTypes["repos"]["getUsersWithAccessToProtectedBranch"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get the total number of views and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + getViews: { + (params?: RestEndpointMethodTypes["repos"]["getViews"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns a webhook configured in a repository. To get only the webhook `config` properties, see "[Get a webhook configuration for a repository](/rest/reference/repos#get-a-webhook-configuration-for-a-repository)." + */ + getWebhook: { + (params?: RestEndpointMethodTypes["repos"]["getWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Returns the webhook configuration for a repository. To get more information about the webhook, including the `active` state and `events`, use "[Get a repository webhook](/rest/reference/orgs#get-a-repository-webhook)." + * + * Access tokens must have the `read:repo_hook` or `repo` scope, and GitHub Apps must have the `repository_hooks:read` permission. + */ + getWebhookConfigForRepo: { + (params?: RestEndpointMethodTypes["repos"]["getWebhookConfigForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listBranches: { + (params?: RestEndpointMethodTypes["repos"]["listBranches"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch. + */ + listBranchesForHeadCommit: { + (params?: RestEndpointMethodTypes["repos"]["listBranchesForHeadCommit"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * + * Team members will include the members of child teams. + */ + listCollaborators: { + (params?: RestEndpointMethodTypes["repos"]["listCollaborators"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Use the `:commit_sha` to specify the commit that will have its comments listed. + */ + listCommentsForCommit: { + (params?: RestEndpointMethodTypes["repos"]["listCommentsForCommit"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Commit Comments use [these custom media types](https://docs.github.com/rest/reference/repos#custom-media-types). You can read more about the use of media types in the API [here](https://docs.github.com/rest/overview/media-types/). + * + * Comments are ordered by ascending ID. + */ + listCommitCommentsForRepo: { + (params?: RestEndpointMethodTypes["repos"]["listCommitCommentsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one. + * + * This resource is also available via a legacy route: `GET /repos/:owner/:repo/statuses/:ref`. + */ + listCommitStatusesForRef: { + (params?: RestEndpointMethodTypes["repos"]["listCommitStatusesForRef"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * | Name | Type | Description | + * | ---- | ---- | ----------- | + * | `verified` | `boolean` | Indicates whether GitHub considers the signature in this commit to be verified. | + * | `reason` | `string` | The reason for verified value. Possible values and their meanings are enumerated in table below. | + * | `signature` | `string` | The signature that was extracted from the commit. | + * | `payload` | `string` | The value that was signed. | + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ----- | ----------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + listCommits: { + (params?: RestEndpointMethodTypes["repos"]["listCommits"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API v3 caches contributor data to improve performance. + * + * GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information. + */ + listContributors: { + (params?: RestEndpointMethodTypes["repos"]["listContributors"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listDeployKeys: { + (params?: RestEndpointMethodTypes["repos"]["listDeployKeys"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with pull access can view deployment statuses for a deployment: + */ + listDeploymentStatuses: { + (params?: RestEndpointMethodTypes["repos"]["listDeploymentStatuses"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Simple filtering of deployments is available via query parameters: + */ + listDeployments: { + (params?: RestEndpointMethodTypes["repos"]["listDeployments"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + */ + listForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["repos"]["listForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists repositories for the specified organization. + */ + listForOrg: { + (params?: RestEndpointMethodTypes["repos"]["listForOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists public repositories for the specified user. + */ + listForUser: { + (params?: RestEndpointMethodTypes["repos"]["listForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listForks: { + (params?: RestEndpointMethodTypes["repos"]["listForks"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations. + */ + listInvitations: { + (params?: RestEndpointMethodTypes["repos"]["listInvitations"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * When authenticating as a user, this endpoint will list all currently open repository invitations for that user. + */ + listInvitationsForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["repos"]["listInvitationsForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language. + */ + listLanguages: { + (params?: RestEndpointMethodTypes["repos"]["listLanguages"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listPagesBuilds: { + (params?: RestEndpointMethodTypes["repos"]["listPagesBuilds"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all public repositories in the order that they were created. + * + * Note: Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of repositories. + */ + listPublic: { + (params?: RestEndpointMethodTypes["repos"]["listPublic"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all pull requests containing the provided commit SHA, which can be from any point in the commit history. The results will include open and closed pull requests. Additional preview headers may be required to see certain details for associated pull requests, such as whether a pull request is in a draft state. For more information about previews that might affect this endpoint, see the [List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests) endpoint. + */ + listPullRequestsAssociatedWithCommit: { + (params?: RestEndpointMethodTypes["repos"]["listPullRequestsAssociatedWithCommit"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listReleaseAssets: { + (params?: RestEndpointMethodTypes["repos"]["listReleaseAssets"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the [Repository Tags API](https://docs.github.com/rest/reference/repos#list-repository-tags). + * + * Information about published releases are available to everyone. Only users with push access will receive listings for draft releases. + */ + listReleases: { + (params?: RestEndpointMethodTypes["repos"]["listReleases"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listTags: { + (params?: RestEndpointMethodTypes["repos"]["listTags"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listTeams: { + (params?: RestEndpointMethodTypes["repos"]["listTeams"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + listWebhooks: { + (params?: RestEndpointMethodTypes["repos"]["listWebhooks"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + merge: { + (params?: RestEndpointMethodTypes["repos"]["merge"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This will trigger a [ping event](https://docs.github.com/webhooks/#ping-event) to be sent to the hook. + */ + pingWebhook: { + (params?: RestEndpointMethodTypes["repos"]["pingWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of an app to push to this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * + * | Type | Description | + * | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + removeAppAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["removeAppAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + removeCollaborator: { + (params?: RestEndpointMethodTypes["repos"]["removeCollaborator"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + removeStatusCheckContexts: { + (params?: RestEndpointMethodTypes["repos"]["removeStatusCheckContexts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + removeStatusCheckProtection: { + (params?: RestEndpointMethodTypes["repos"]["removeStatusCheckProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a team to push to this branch. You can also remove push access for child teams. + * + * | Type | Description | + * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Teams that should no longer have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + removeTeamAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["removeTeamAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Removes the ability of a user to push to this branch. + * + * | Type | Description | + * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames of the people who should no longer have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + removeUserAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["removeUserAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + replaceAllTopics: { + (params?: RestEndpointMethodTypes["repos"]["replaceAllTopics"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures. + * + * Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes. + */ + requestPagesBuild: { + (params?: RestEndpointMethodTypes["repos"]["requestPagesBuild"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + setAdminBranchProtection: { + (params?: RestEndpointMethodTypes["repos"]["setAdminBranchProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * + * | Type | Description | + * | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + setAppAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["setAppAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + */ + setStatusCheckContexts: { + (params?: RestEndpointMethodTypes["repos"]["setStatusCheckContexts"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams. + * + * | Type | Description | + * | ------- | ------------------------------------------------------------------------------------------------------------------------------------------ | + * | `array` | The teams that can have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + setTeamAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["setTeamAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + setUserAccessRestrictions: { + (params?: RestEndpointMethodTypes["repos"]["setUserAccessRestrictions"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This will trigger the hook with the latest push to the current repository if the hook is subscribed to `push` events. If the hook is not subscribed to `push` events, the server will respond with 204 but no test POST will be generated. + * + * **Note**: Previously `/repos/:owner/:repo/hooks/:hook_id/test` + */ + testPushWebhook: { + (params?: RestEndpointMethodTypes["repos"]["testPushWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * A transfer request will need to be accepted by the new owner when transferring a personal repository to another user. The response will contain the original `owner`, and the transfer will continue asynchronously. For more details on the requirements to transfer personal and organization-owned repositories, see [about repository transfers](https://help.github.com/articles/about-repository-transfers/). + */ + transfer: { + (params?: RestEndpointMethodTypes["repos"]["transfer"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note**: To edit a repository's topics, use the [Replace all repository topics](https://docs.github.com/rest/reference/repos#replace-all-repository-topics) endpoint. + */ + update: { + (params?: RestEndpointMethodTypes["repos"]["update"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Protecting a branch requires admin or owner permissions to the repository. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + * + * **Note**: The list of users, apps, and teams in total is limited to 100 items. + */ + updateBranchProtection: { + (params?: RestEndpointMethodTypes["repos"]["updateBranchProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateCommitComment: { + (params?: RestEndpointMethodTypes["repos"]["updateCommitComment"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates information for a GitHub Pages site. For more information, see "[About GitHub Pages](/github/working-with-github-pages/about-github-pages). + */ + updateInformationAboutPagesSite: { + (params?: RestEndpointMethodTypes["repos"]["updateInformationAboutPagesSite"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + updateInvitation: { + (params?: RestEndpointMethodTypes["repos"]["updateInvitation"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + */ + updatePullRequestReviewProtection: { + (params?: RestEndpointMethodTypes["repos"]["updatePullRequestReviewProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with push access to the repository can edit a release. + */ + updateRelease: { + (params?: RestEndpointMethodTypes["repos"]["updateRelease"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Users with push access to the repository can edit a release asset. + */ + updateReleaseAsset: { + (params?: RestEndpointMethodTypes["repos"]["updateReleaseAsset"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled. + * @deprecated octokit.repos.updateStatusCheckPotection() has been renamed to octokit.repos.updateStatusCheckProtection() (2020-09-17) + */ + updateStatusCheckPotection: { + (params?: RestEndpointMethodTypes["repos"]["updateStatusCheckPotection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled. + */ + updateStatusCheckProtection: { + (params?: RestEndpointMethodTypes["repos"]["updateStatusCheckProtection"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates a webhook configured in a repository. If you previously had a `secret` set, you must provide the same `secret` or set a new `secret` or the secret will be removed. If you are only updating individual webhook `config` properties, use "[Update a webhook configuration for a repository](/rest/reference/repos#update-a-webhook-configuration-for-a-repository)." + */ + updateWebhook: { + (params?: RestEndpointMethodTypes["repos"]["updateWebhook"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the webhook configuration for a repository. To update more information about the webhook, including the `active` state and `events`, use "[Update a repository webhook](/rest/reference/orgs#update-a-repository-webhook)." + * + * Access tokens must have the `write:repo_hook` or `repo` scope, and GitHub Apps must have the `repository_hooks:write` permission. + */ + updateWebhookConfigForRepo: { + (params?: RestEndpointMethodTypes["repos"]["updateWebhookConfigForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint makes use of [a Hypermedia relation](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia) to determine which URL to access. The endpoint you call to upload release assets is specific to your release. Use the `upload_url` returned in + * the response of the [Create a release endpoint](https://docs.github.com/rest/reference/repos#create-a-release) to upload a release asset. + * + * You need to use an HTTP client which supports [SNI](http://en.wikipedia.org/wiki/Server_Name_Indication) to make calls to this endpoint. + * + * Most libraries will set the required `Content-Length` header automatically. Use the required `Content-Type` header to provide the media type of the asset. For a list of media types, see [Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml). For example: + * + * `application/zip` + * + * GitHub expects the asset data in its raw binary form, rather than JSON. You will send the raw binary content of the asset as the request body. Everything else about the endpoint is the same as the rest of the API. For example, + * you'll still need to pass your authentication to be able to upload an asset. + * + * When an upstream failure occurs, you will receive a `502 Bad Gateway` status. This may leave an empty asset with a state of `starter`. It can be safely deleted. + * + * **Notes:** + * * GitHub renames asset filenames that have special characters, non-alphanumeric characters, and leading or trailing periods. The "[List assets for a release](https://docs.github.com/rest/reference/repos#list-assets-for-a-release)" + * endpoint lists the renamed filenames. For more information and help, contact [GitHub Support](https://github.com/contact). + * * If you upload an asset with the same filename as another uploaded asset, you'll receive an error and must delete the old file before you can re-upload the new asset. + */ + uploadReleaseAsset: { + (params?: RestEndpointMethodTypes["repos"]["uploadReleaseAsset"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + search: { + /** + * Searches for query terms inside of a file. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for code, you can get text match metadata for the file **content** and file **path** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to find the definition of the `addClass` function inside [jQuery](https://github.com/jquery/jquery) repository, your query would look something like this: + * + * `q=addClass+in:file+language:js+repo:jquery/jquery` + * + * This query searches for the keyword `addClass` within a file's contents. The query limits the search to files where the language is JavaScript in the `jquery/jquery` repository. + * + * #### Considerations for code search + * + * Due to the complexity of searching code, there are a few restrictions on how searches are performed: + * + * * Only the _default branch_ is considered. In most cases, this will be the `master` branch. + * * Only files smaller than 384 KB are searchable. + * * You must always include at least one search term when searching source code. For example, searching for [`language:go`](https://github.com/search?utf8=%E2%9C%93&q=language%3Ago&type=Code) is not valid, while [`amazing + * language:go`](https://github.com/search?utf8=%E2%9C%93&q=amazing+language%3Ago&type=Code) is. + */ + code: { + (params?: RestEndpointMethodTypes["search"]["code"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Find commits via various criteria on the default branch (usually `master`). This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for commits, you can get text match metadata for the **message** field when you provide the `text-match` media type. For more details about how to receive highlighted search results, see [Text match + * metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to find commits related to CSS in the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. Your query would look something like this: + * + * `q=repo:octocat/Spoon-Knife+css` + */ + commits: { + (params?: RestEndpointMethodTypes["search"]["commits"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Find issues by state and keyword. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for issues, you can get text match metadata for the issue **title**, issue **body**, and issue **comment body** fields when you pass the `text-match` media type. For more details about how to receive highlighted + * search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this. + * + * `q=windows+label:bug+language:python+state:open&sort=created&order=asc` + * + * This query searches for the keyword `windows`, within any open issue that is labeled as `bug`. The search runs across repositories whose primary language is Python. The results are sorted by creation date in ascending order, which means the oldest issues appear first in the search results. + * + * **Note:** For [user-to-server](https://docs.github.com/developers/apps/identifying-and-authorizing-users-for-github-apps#user-to-server-requests) GitHub App requests, you can't retrieve a combination of issues and pull requests in a single query. Requests that don't include the `is:issue` or `is:pull-request` qualifier will receive an HTTP `422 Unprocessable Entity` response. To get results for both issues and pull requests, you must send separate queries for issues and pull requests. For more information about the `is` qualifier, see "[Searching only issues or pull requests](https://docs.github.com/github/searching-for-information-on-github/searching-issues-and-pull-requests#search-only-issues-or-pull-requests)." + */ + issuesAndPullRequests: { + (params?: RestEndpointMethodTypes["search"]["issuesAndPullRequests"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for labels, you can get text match metadata for the label **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to find labels in the `linguist` repository that match `bug`, `defect`, or `enhancement`. Your query might look like this: + * + * `q=bug+defect+enhancement&repository_id=64778136` + * + * The labels that best match the query appear first in the search results. + */ + labels: { + (params?: RestEndpointMethodTypes["search"]["labels"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Find repositories via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for repositories, you can get text match metadata for the **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to search for popular Tetris repositories written in assembly code, your query might look like this: + * + * `q=tetris+language:assembly&sort=stars&order=desc` + * + * This query searches for repositories with the word `tetris` in the name, the description, or the README. The results are limited to repositories where the primary language is assembly. The results are sorted by stars in descending order, so that the most popular repositories appear first in the search results. + * + * When you include the `mercy` preview header, you can also search for multiple topics by adding more `topic:` instances. For example, your query might look like this: + * + * `q=topic:ruby+topic:rails` + */ + repos: { + (params?: RestEndpointMethodTypes["search"]["repos"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). See "[Searching topics](https://help.github.com/articles/searching-topics/)" for a detailed list of qualifiers. + * + * When searching for topics, you can get text match metadata for the topic's **short\_description**, **description**, **name**, or **display\_name** field when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you want to search for topics related to Ruby that are featured on https://github.com/topics. Your query might look like this: + * + * `q=ruby+is:featured` + * + * This query searches for topics with the keyword `ruby` and limits the results to find only topics that are featured. The topics that are the best match for the query appear first in the search results. + */ + topics: { + (params?: RestEndpointMethodTypes["search"]["topics"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Find users via various criteria. This method returns up to 100 results [per page](https://docs.github.com/rest/overview/resources-in-the-rest-api#pagination). + * + * When searching for users, you can get text match metadata for the issue **login**, **email**, and **name** fields when you pass the `text-match` media type. For more details about highlighting search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). For more details about how to receive highlighted search results, see [Text match metadata](https://docs.github.com/rest/reference/search#text-match-metadata). + * + * For example, if you're looking for a list of popular users, you might try this query: + * + * `q=tom+repos:%3E42+followers:%3E1000` + * + * This query searches for users with the name `tom`. The results are restricted to users with more than 42 repositories and over 1,000 followers. + */ + users: { + (params?: RestEndpointMethodTypes["search"]["users"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + secretScanning: { + /** + * Gets a single secret scanning alert detected in a private repository. To use this endpoint, you must be an administrator for the repository or organization, and you must use an access token with the `repo` scope or `security_events` scope. + * + * GitHub Apps must have the `secret_scanning_alerts` read permission to use this endpoint. + */ + getAlert: { + (params?: RestEndpointMethodTypes["secretScanning"]["getAlert"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all secret scanning alerts for a private repository, from newest to oldest. To use this endpoint, you must be an administrator for the repository or organization, and you must use an access token with the `repo` scope or `security_events` scope. + * + * GitHub Apps must have the `secret_scanning_alerts` read permission to use this endpoint. + */ + listAlertsForRepo: { + (params?: RestEndpointMethodTypes["secretScanning"]["listAlertsForRepo"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Updates the status of a secret scanning alert in a private repository. To use this endpoint, you must be an administrator for the repository or organization, and you must use an access token with the `repo` scope or `security_events` scope. + * + * GitHub Apps must have the `secret_scanning_alerts` write permission to use this endpoint. + */ + updateAlert: { + (params?: RestEndpointMethodTypes["secretScanning"]["updateAlert"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + teams: { + /** + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * Adds an organization member to a team. An authenticated organization owner or team maintainer can add organization members to a team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * An organization owner can add someone who is not part of the team's organization to a team. When an organization owner adds someone to a team who is not an organization member, this endpoint will send an invitation to the person via email. This newly-created membership will be in the "pending" state until the person accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + addOrUpdateMembershipForUserInOrg: { + (params?: RestEndpointMethodTypes["teams"]["addOrUpdateMembershipForUserInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + addOrUpdateProjectPermissionsInOrg: { + (params?: RestEndpointMethodTypes["teams"]["addOrUpdateProjectPermissionsInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PUT /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + * + * For more information about the permission levels, see "[Repository permission levels for an organization](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#permission-levels-for-repositories-owned-by-an-organization)". + */ + addOrUpdateRepoPermissionsInOrg: { + (params?: RestEndpointMethodTypes["teams"]["addOrUpdateRepoPermissionsInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. The response includes projects inherited from a parent team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + checkPermissionsForProjectInOrg: { + (params?: RestEndpointMethodTypes["teams"]["checkPermissionsForProjectInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Checks whether a team has `admin`, `push`, `maintain`, `triage`, or `pull` permission for a repository. Repositories inherited through a parent team will also be checked. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://docs.github.com/rest/overview/media-types/) via the `application/vnd.github.v3.repository+json` accept header. + * + * If a team doesn't have permission for the repository, you will receive a `404 Not Found` response status. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + checkPermissionsForRepoInOrg: { + (params?: RestEndpointMethodTypes["teams"]["checkPermissionsForRepoInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * To create a team, the authenticated user must be a member or owner of `{org}`. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see "[Setting team creation permissions](https://help.github.com/en/articles/setting-team-creation-permissions-in-your-organization)." + * + * When you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of `maintainers`. For more information, see "[About teams](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/about-teams)". + */ + create: { + (params?: RestEndpointMethodTypes["teams"]["create"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + */ + createDiscussionCommentInOrg: { + (params?: RestEndpointMethodTypes["teams"]["createDiscussionCommentInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Creates a new discussion post on a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://docs.github.com/rest/overview/resources-in-the-rest-api#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://docs.github.com/rest/guides/best-practices-for-integrators#dealing-with-rate-limits)" for details. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `POST /organizations/{org_id}/team/{team_id}/discussions`. + */ + createDiscussionInOrg: { + (params?: RestEndpointMethodTypes["teams"]["createDiscussionInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Deletes a comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + */ + deleteDiscussionCommentInOrg: { + (params?: RestEndpointMethodTypes["teams"]["deleteDiscussionCommentInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Delete a discussion from a team's page. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + */ + deleteDiscussionInOrg: { + (params?: RestEndpointMethodTypes["teams"]["deleteDiscussionInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * To delete a team, the authenticated user must be an organization owner or team maintainer. + * + * If you are an organization owner, deleting a parent team will delete all of its child teams as well. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}`. + */ + deleteInOrg: { + (params?: RestEndpointMethodTypes["teams"]["deleteInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Gets a team using the team's `slug`. GitHub generates the `slug` from the team `name`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}`. + */ + getByName: { + (params?: RestEndpointMethodTypes["teams"]["getByName"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get a specific comment on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + */ + getDiscussionCommentInOrg: { + (params?: RestEndpointMethodTypes["teams"]["getDiscussionCommentInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Get a specific discussion on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + */ + getDiscussionInOrg: { + (params?: RestEndpointMethodTypes["teams"]["getDiscussionInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/memberships/{username}`. + * + * **Note:** The `role` for organization owners returns as `maintainer`. For more information about `maintainer` roles, see [Create a team](https://docs.github.com/rest/reference/teams#create-a-team). + */ + getMembershipForUserInOrg: { + (params?: RestEndpointMethodTypes["teams"]["getMembershipForUserInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all teams in an organization that are visible to the authenticated user. + */ + list: { + (params?: RestEndpointMethodTypes["teams"]["list"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the child teams of the team specified by `{team_slug}`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/teams`. + */ + listChildInOrg: { + (params?: RestEndpointMethodTypes["teams"]["listChildInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all comments on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments`. + */ + listDiscussionCommentsInOrg: { + (params?: RestEndpointMethodTypes["teams"]["listDiscussionCommentsInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all discussions on a team's page. OAuth access tokens require the `read:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/discussions`. + */ + listDiscussionsInOrg: { + (params?: RestEndpointMethodTypes["teams"]["listDiscussionsInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List all of the teams across all of the organizations to which the authenticated user belongs. This method requires `user`, `repo`, or `read:org` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/) when authenticating via [OAuth](https://docs.github.com/apps/building-oauth-apps/). + */ + listForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["teams"]["listForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Team members will include the members of child teams. + * + * To list members in a team, the team must be visible to the authenticated user. + */ + listMembersInOrg: { + (params?: RestEndpointMethodTypes["teams"]["listMembersInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/invitations`. + */ + listPendingInvitationsInOrg: { + (params?: RestEndpointMethodTypes["teams"]["listPendingInvitationsInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the organization projects for a team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/projects`. + */ + listProjectsInOrg: { + (params?: RestEndpointMethodTypes["teams"]["listProjectsInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists a team's repositories visible to the authenticated user. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`. + */ + listReposInOrg: { + (params?: RestEndpointMethodTypes["teams"]["listReposInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation. + * + * To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/memberships/{username}`. + */ + removeMembershipForUserInOrg: { + (params?: RestEndpointMethodTypes["teams"]["removeMembershipForUserInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. This endpoint removes the project from the team, but does not delete the project. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/projects/{project_id}`. + */ + removeProjectInOrg: { + (params?: RestEndpointMethodTypes["teams"]["removeProjectInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `DELETE /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}`. + */ + removeRepoInOrg: { + (params?: RestEndpointMethodTypes["teams"]["removeRepoInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Edits the body text of a discussion comment. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}`. + */ + updateDiscussionCommentInOrg: { + (params?: RestEndpointMethodTypes["teams"]["updateDiscussionCommentInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Edits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the `write:discussion` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}`. + */ + updateDiscussionInOrg: { + (params?: RestEndpointMethodTypes["teams"]["updateDiscussionInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * To edit a team, the authenticated user must either be an organization owner or a team maintainer. + * + * **Note:** You can also specify a team by `org_id` and `team_id` using the route `PATCH /organizations/{org_id}/team/{team_id}`. + */ + updateInOrg: { + (params?: RestEndpointMethodTypes["teams"]["updateInOrg"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; + users: { + /** + * This endpoint is accessible with the `user` scope. + */ + addEmailForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["addEmailForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + block: { + (params?: RestEndpointMethodTypes["users"]["block"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * If the user is blocked: + * + * If the user is not blocked: + */ + checkBlocked: { + (params?: RestEndpointMethodTypes["users"]["checkBlocked"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + checkFollowingForUser: { + (params?: RestEndpointMethodTypes["users"]["checkFollowingForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + checkPersonIsFollowedByAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["checkPersonIsFollowedByAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Adds a GPG key to the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth, or OAuth with at least `write:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + createGpgKeyForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["createGpgKeyForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Adds a public SSH key to the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth, or OAuth with at least `write:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + createPublicSshKeyForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["createPublicSshKeyForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * This endpoint is accessible with the `user` scope. + */ + deleteEmailForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["deleteEmailForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a GPG key from the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `admin:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + deleteGpgKeyForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["deleteGpgKeyForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Removes a public SSH key from the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `admin:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + deletePublicSshKeyForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["deletePublicSshKeyForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/overview/resources-in-the-rest-api#http-verbs)." + * + * Following a user requires the user to be logged in and authenticated with basic auth or OAuth with the `user:follow` scope. + */ + follow: { + (params?: RestEndpointMethodTypes["users"]["follow"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * If the authenticated user is authenticated through basic authentication or OAuth with the `user` scope, then the response lists public and private profile information. + * + * If the authenticated user is authenticated through OAuth without the `user` scope, then the response lists only public profile information. + */ + getAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["getAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Provides publicly available information about someone with a GitHub account. + * + * GitHub Apps with the `Plan` user permission can use this endpoint to retrieve information about a user's GitHub plan. The GitHub App must be authenticated as a user. See "[Identifying and authorizing users for GitHub Apps](https://docs.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)" for details about authentication. For an example response, see 'Response with GitHub plan information' below" + * + * The `email` key in the following response is the publicly visible email address from your GitHub [profile page](https://github.com/settings/profile). When setting up your profile, you can select a primary email address to be “public” which provides an email entry for this endpoint. If you do not set a public email address for `email`, then it will have a value of `null`. You only see publicly visible email addresses when authenticated with GitHub. For more information, see [Authentication](https://docs.github.com/rest/overview/resources-in-the-rest-api#authentication). + * + * The Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see "[Emails API](https://docs.github.com/rest/reference/users#emails)". + */ + getByUsername: { + (params?: RestEndpointMethodTypes["users"]["getByUsername"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Provides hovercard information when authenticated through basic auth or OAuth with the `repo` scope. You can find out more about someone in relation to their pull requests, issues, repositories, and organizations. + * + * The `subject_type` and `subject_id` parameters provide context for the person's hovercard, which returns more information than without the parameters. For example, if you wanted to find out more about `octocat` who owns the `Spoon-Knife` repository via cURL, it would look like this: + * + * ```shell + * curl -u username:token + * https://api.github.com/users/octocat/hovercard?subject_type=repository&subject_id=1300192 + * ``` + */ + getContextForUser: { + (params?: RestEndpointMethodTypes["users"]["getContextForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * View extended details for a single GPG key. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + getGpgKeyForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["getGpgKeyForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * View extended details for a single public SSH key. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + getPublicSshKeyForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["getPublicSshKeyForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all users, in the order that they signed up on GitHub. This list includes personal user accounts and organization accounts. + * + * Note: Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://docs.github.com/rest/overview/resources-in-the-rest-api#link-header) to get the URL for the next page of users. + */ + list: { + (params?: RestEndpointMethodTypes["users"]["list"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * List the users you've blocked on your personal account. + */ + listBlockedByAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["listBlockedByAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists all of your email addresses, and specifies which one is visible to the public. This endpoint is accessible with the `user:email` scope. + */ + listEmailsForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["listEmailsForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the people who the authenticated user follows. + */ + listFollowedByAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["listFollowedByAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the people following the authenticated user. + */ + listFollowersForAuthenticatedUser: { + (params?: RestEndpointMethodTypes["users"]["listFollowersForAuthenticatedUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the people following the specified user. + */ + listFollowersForUser: { + (params?: RestEndpointMethodTypes["users"]["listFollowersForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the people who the specified user follows. + */ + listFollowingForUser: { + (params?: RestEndpointMethodTypes["users"]["listFollowingForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the current user's GPG keys. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:gpg_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + listGpgKeysForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["listGpgKeysForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the GPG keys for a user. This information is accessible by anyone. + */ + listGpgKeysForUser: { + (params?: RestEndpointMethodTypes["users"]["listGpgKeysForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists your publicly visible email address, which you can set with the [Set primary email visibility for the authenticated user](https://docs.github.com/rest/reference/users#set-primary-email-visibility-for-the-authenticated-user) endpoint. This endpoint is accessible with the `user:email` scope. + */ + listPublicEmailsForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["listPublicEmailsForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the _verified_ public SSH keys for a user. This is accessible by anyone. + */ + listPublicKeysForUser: { + (params?: RestEndpointMethodTypes["users"]["listPublicKeysForUser"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Lists the public SSH keys for the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:public_key` [scope](https://docs.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + listPublicSshKeysForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["listPublicSshKeysForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Sets the visibility for your primary email addresses. + */ + setPrimaryEmailVisibilityForAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["setPrimaryEmailVisibilityForAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + unblock: { + (params?: RestEndpointMethodTypes["users"]["unblock"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * Unfollowing a user requires the user to be logged in and authenticated with basic auth or OAuth with the `user:follow` scope. + */ + unfollow: { + (params?: RestEndpointMethodTypes["users"]["unfollow"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + /** + * **Note:** If your email is set to private and you send an `email` parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not be displayed on your public profile or via the API. + */ + updateAuthenticated: { + (params?: RestEndpointMethodTypes["users"]["updateAuthenticated"]["parameters"]): Promise; + defaults: RequestInterface["defaults"]; + endpoint: EndpointInterface<{ + url: string; + }>; + }; + }; +}; diff --git a/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/parameters-and-response-types.d.ts b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/parameters-and-response-types.d.ts new file mode 100644 index 000000000..080eb973d --- /dev/null +++ b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/generated/parameters-and-response-types.d.ts @@ -0,0 +1,2455 @@ +import { Endpoints, RequestParameters } from "@octokit/types"; +export declare type RestEndpointMethodTypes = { + actions: { + addSelectedRepoToOrgSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"]["response"]; + }; + cancelWorkflowRun: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"]["response"]; + }; + createOrUpdateOrgSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/actions/secrets/{secret_name}"]["response"]; + }; + createOrUpdateRepoSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"]["response"]; + }; + createRegistrationTokenForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/actions/runners/registration-token"]["response"]; + }; + createRegistrationTokenForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/actions/runners/registration-token"]["response"]; + }; + createRemoveTokenForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/actions/runners/remove-token"]["response"]; + }; + createRemoveTokenForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/actions/runners/remove-token"]["response"]; + }; + createWorkflowDispatch: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"]["response"]; + }; + deleteArtifact: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"]["response"]; + }; + deleteOrgSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/actions/secrets/{secret_name}"]["response"]; + }; + deleteRepoSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"]["response"]; + }; + deleteSelfHostedRunnerFromOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/actions/runners/{runner_id}"]["response"]; + }; + deleteSelfHostedRunnerFromRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"]["response"]; + }; + deleteWorkflowRun: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"]["response"]; + }; + deleteWorkflowRunLogs: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"]["response"]; + }; + disableSelectedRepositoryGithubActionsOrganization: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"]["response"]; + }; + disableWorkflow: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"]["response"]; + }; + downloadArtifact: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"]["response"]; + }; + downloadJobLogsForWorkflowRun: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"]["response"]; + }; + downloadWorkflowRunLogs: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"]["response"]; + }; + enableSelectedRepositoryGithubActionsOrganization: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"]["response"]; + }; + enableWorkflow: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"]["response"]; + }; + getAllowedActionsOrganization: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/actions/permissions/selected-actions"]["response"]; + }; + getAllowedActionsRepository: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"]["response"]; + }; + getArtifact: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"]["response"]; + }; + getGithubActionsPermissionsOrganization: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/actions/permissions"]["response"]; + }; + getGithubActionsPermissionsRepository: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/permissions"]["response"]; + }; + getJobForWorkflowRun: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"]["response"]; + }; + getOrgPublicKey: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/actions/secrets/public-key"]["response"]; + }; + getOrgSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/actions/secrets/{secret_name}"]["response"]; + }; + getRepoPermissions: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/permissions"]["response"]; + }; + getRepoPublicKey: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/secrets/public-key"]["response"]; + }; + getRepoSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"]["response"]; + }; + getSelfHostedRunnerForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/actions/runners/{runner_id}"]["response"]; + }; + getSelfHostedRunnerForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"]["response"]; + }; + getWorkflow: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"]["response"]; + }; + getWorkflowRun: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}"]["response"]; + }; + getWorkflowRunUsage: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"]["response"]; + }; + getWorkflowUsage: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"]["response"]; + }; + listArtifactsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/artifacts"]["response"]; + }; + listJobsForWorkflowRun: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"]["response"]; + }; + listOrgSecrets: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/actions/secrets"]["response"]; + }; + listRepoSecrets: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/secrets"]["response"]; + }; + listRepoWorkflows: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/workflows"]["response"]; + }; + listRunnerApplicationsForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/actions/runners/downloads"]["response"]; + }; + listRunnerApplicationsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runners/downloads"]["response"]; + }; + listSelectedReposForOrgSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"]["response"]; + }; + listSelectedRepositoriesEnabledGithubActionsOrganization: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/actions/permissions/repositories"]["response"]; + }; + listSelfHostedRunnersForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/actions/runners"]["response"]; + }; + listSelfHostedRunnersForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runners"]["response"]; + }; + listWorkflowRunArtifacts: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"]["response"]; + }; + listWorkflowRuns: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"]["response"]; + }; + listWorkflowRunsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/actions/runs"]["response"]; + }; + reRunWorkflow: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"]["response"]; + }; + removeSelectedRepoFromOrgSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"]["response"]; + }; + setAllowedActionsOrganization: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/actions/permissions/selected-actions"]["response"]; + }; + setAllowedActionsRepository: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"]["response"]; + }; + setGithubActionsPermissionsOrganization: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/actions/permissions"]["response"]; + }; + setGithubActionsPermissionsRepository: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/actions/permissions"]["response"]; + }; + setSelectedReposForOrgSecret: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"]["response"]; + }; + setSelectedRepositoriesEnabledGithubActionsOrganization: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/actions/permissions/repositories"]["response"]; + }; + }; + activity: { + checkRepoIsStarredByAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/starred/{owner}/{repo}"]["response"]; + }; + deleteRepoSubscription: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/subscription"]["response"]; + }; + deleteThreadSubscription: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /notifications/threads/{thread_id}/subscription"]["response"]; + }; + getFeeds: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /feeds"]["response"]; + }; + getRepoSubscription: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/subscription"]["response"]; + }; + getThread: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /notifications/threads/{thread_id}"]["response"]; + }; + getThreadSubscriptionForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /notifications/threads/{thread_id}/subscription"]["response"]; + }; + listEventsForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/events"]["response"]; + }; + listNotificationsForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /notifications"]["response"]; + }; + listOrgEventsForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/events/orgs/{org}"]["response"]; + }; + listPublicEvents: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /events"]["response"]; + }; + listPublicEventsForRepoNetwork: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /networks/{owner}/{repo}/events"]["response"]; + }; + listPublicEventsForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/events/public"]["response"]; + }; + listPublicOrgEvents: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/events"]["response"]; + }; + listReceivedEventsForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/received_events"]["response"]; + }; + listReceivedPublicEventsForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/received_events/public"]["response"]; + }; + listRepoEvents: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/events"]["response"]; + }; + listRepoNotificationsForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/notifications"]["response"]; + }; + listReposStarredByAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/starred"]["response"]; + }; + listReposStarredByUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/starred"]["response"]; + }; + listReposWatchedByUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/subscriptions"]["response"]; + }; + listStargazersForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/stargazers"]["response"]; + }; + listWatchedReposForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/subscriptions"]["response"]; + }; + listWatchersForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/subscribers"]["response"]; + }; + markNotificationsAsRead: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /notifications"]["response"]; + }; + markRepoNotificationsAsRead: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/notifications"]["response"]; + }; + markThreadAsRead: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /notifications/threads/{thread_id}"]["response"]; + }; + setRepoSubscription: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/subscription"]["response"]; + }; + setThreadSubscription: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /notifications/threads/{thread_id}/subscription"]["response"]; + }; + starRepoForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /user/starred/{owner}/{repo}"]["response"]; + }; + unstarRepoForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/starred/{owner}/{repo}"]["response"]; + }; + }; + apps: { + addRepoToInstallation: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /user/installations/{installation_id}/repositories/{repository_id}"]["response"]; + }; + checkToken: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /applications/{client_id}/token"]["response"]; + }; + createContentAttachment: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /content_references/{content_reference_id}/attachments"]["response"]; + }; + createFromManifest: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /app-manifests/{code}/conversions"]["response"]; + }; + createInstallationAccessToken: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /app/installations/{installation_id}/access_tokens"]["response"]; + }; + deleteAuthorization: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /applications/{client_id}/grant"]["response"]; + }; + deleteInstallation: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /app/installations/{installation_id}"]["response"]; + }; + deleteToken: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /applications/{client_id}/token"]["response"]; + }; + getAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /app"]["response"]; + }; + getBySlug: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /apps/{app_slug}"]["response"]; + }; + getInstallation: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /app/installations/{installation_id}"]["response"]; + }; + getOrgInstallation: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/installation"]["response"]; + }; + getRepoInstallation: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/installation"]["response"]; + }; + getSubscriptionPlanForAccount: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /marketplace_listing/accounts/{account_id}"]["response"]; + }; + getSubscriptionPlanForAccountStubbed: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /marketplace_listing/stubbed/accounts/{account_id}"]["response"]; + }; + getUserInstallation: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/installation"]["response"]; + }; + getWebhookConfigForApp: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /app/hook/config"]["response"]; + }; + listAccountsForPlan: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /marketplace_listing/plans/{plan_id}/accounts"]["response"]; + }; + listAccountsForPlanStubbed: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"]["response"]; + }; + listInstallationReposForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/installations/{installation_id}/repositories"]["response"]; + }; + listInstallations: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /app/installations"]["response"]; + }; + listInstallationsForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/installations"]["response"]; + }; + listPlans: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /marketplace_listing/plans"]["response"]; + }; + listPlansStubbed: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /marketplace_listing/stubbed/plans"]["response"]; + }; + listReposAccessibleToInstallation: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /installation/repositories"]["response"]; + }; + listSubscriptionsForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/marketplace_purchases"]["response"]; + }; + listSubscriptionsForAuthenticatedUserStubbed: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/marketplace_purchases/stubbed"]["response"]; + }; + removeRepoFromInstallation: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/installations/{installation_id}/repositories/{repository_id}"]["response"]; + }; + resetToken: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /applications/{client_id}/token"]["response"]; + }; + revokeInstallationAccessToken: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /installation/token"]["response"]; + }; + suspendInstallation: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /app/installations/{installation_id}/suspended"]["response"]; + }; + unsuspendInstallation: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /app/installations/{installation_id}/suspended"]["response"]; + }; + updateWebhookConfigForApp: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /app/hook/config"]["response"]; + }; + }; + billing: { + getGithubActionsBillingOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/settings/billing/actions"]["response"]; + }; + getGithubActionsBillingUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/settings/billing/actions"]["response"]; + }; + getGithubPackagesBillingOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/settings/billing/packages"]["response"]; + }; + getGithubPackagesBillingUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/settings/billing/packages"]["response"]; + }; + getSharedStorageBillingOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/settings/billing/shared-storage"]["response"]; + }; + getSharedStorageBillingUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/settings/billing/shared-storage"]["response"]; + }; + }; + checks: { + create: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/check-runs"]["response"]; + }; + createSuite: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/check-suites"]["response"]; + }; + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"]["response"]; + }; + getSuite: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"]["response"]; + }; + listAnnotations: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"]["response"]; + }; + listForRef: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"]["response"]; + }; + listForSuite: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"]["response"]; + }; + listSuitesForRef: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"]["response"]; + }; + rerequestSuite: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"]["response"]; + }; + setSuitesPreferences: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/check-suites/preferences"]["response"]; + }; + update: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]["response"]; + }; + }; + codeScanning: { + getAlert: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"]["response"]; + }; + listAlertsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/alerts"]["response"]; + }; + listRecentAnalyses: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/code-scanning/analyses"]["response"]; + }; + updateAlert: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"]["response"]; + }; + uploadSarif: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/code-scanning/sarifs"]["response"]; + }; + }; + codesOfConduct: { + getAllCodesOfConduct: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /codes_of_conduct"]["response"]; + }; + getConductCode: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /codes_of_conduct/{key}"]["response"]; + }; + getForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/community/code_of_conduct"]["response"]; + }; + }; + emojis: { + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /emojis"]["response"]; + }; + }; + enterpriseAdmin: { + disableSelectedOrganizationGithubActionsEnterprise: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"]["response"]; + }; + enableSelectedOrganizationGithubActionsEnterprise: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"]["response"]; + }; + getAllowedActionsEnterprise: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /enterprises/{enterprise}/actions/permissions/selected-actions"]["response"]; + }; + getGithubActionsPermissionsEnterprise: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /enterprises/{enterprise}/actions/permissions"]["response"]; + }; + listSelectedOrganizationsEnabledGithubActionsEnterprise: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /enterprises/{enterprise}/actions/permissions/organizations"]["response"]; + }; + setAllowedActionsEnterprise: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /enterprises/{enterprise}/actions/permissions/selected-actions"]["response"]; + }; + setGithubActionsPermissionsEnterprise: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /enterprises/{enterprise}/actions/permissions"]["response"]; + }; + setSelectedOrganizationsEnabledGithubActionsEnterprise: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /enterprises/{enterprise}/actions/permissions/organizations"]["response"]; + }; + }; + gists: { + checkIsStarred: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gists/{gist_id}/star"]["response"]; + }; + create: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /gists"]["response"]; + }; + createComment: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /gists/{gist_id}/comments"]["response"]; + }; + delete: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /gists/{gist_id}"]["response"]; + }; + deleteComment: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /gists/{gist_id}/comments/{comment_id}"]["response"]; + }; + fork: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /gists/{gist_id}/forks"]["response"]; + }; + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gists/{gist_id}"]["response"]; + }; + getComment: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gists/{gist_id}/comments/{comment_id}"]["response"]; + }; + getRevision: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gists/{gist_id}/{sha}"]["response"]; + }; + list: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gists"]["response"]; + }; + listComments: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gists/{gist_id}/comments"]["response"]; + }; + listCommits: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gists/{gist_id}/commits"]["response"]; + }; + listForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/gists"]["response"]; + }; + listForks: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gists/{gist_id}/forks"]["response"]; + }; + listPublic: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gists/public"]["response"]; + }; + listStarred: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gists/starred"]["response"]; + }; + star: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /gists/{gist_id}/star"]["response"]; + }; + unstar: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /gists/{gist_id}/star"]["response"]; + }; + update: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /gists/{gist_id}"]["response"]; + }; + updateComment: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /gists/{gist_id}/comments/{comment_id}"]["response"]; + }; + }; + git: { + createBlob: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/git/blobs"]["response"]; + }; + createCommit: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/git/commits"]["response"]; + }; + createRef: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/git/refs"]["response"]; + }; + createTag: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/git/tags"]["response"]; + }; + createTree: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/git/trees"]["response"]; + }; + deleteRef: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/git/refs/{ref}"]["response"]; + }; + getBlob: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"]["response"]; + }; + getCommit: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"]["response"]; + }; + getRef: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/git/ref/{ref}"]["response"]; + }; + getTag: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"]["response"]; + }; + getTree: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"]["response"]; + }; + listMatchingRefs: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"]["response"]; + }; + updateRef: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]["response"]; + }; + }; + gitignore: { + getAllTemplates: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gitignore/templates"]["response"]; + }; + getTemplate: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /gitignore/templates/{name}"]["response"]; + }; + }; + interactions: { + getRestrictionsForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/interaction-limits"]["response"]; + }; + getRestrictionsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/interaction-limits"]["response"]; + }; + getRestrictionsForYourPublicRepos: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/interaction-limits"]["response"]; + }; + removeRestrictionsForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/interaction-limits"]["response"]; + }; + removeRestrictionsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/interaction-limits"]["response"]; + }; + removeRestrictionsForYourPublicRepos: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/interaction-limits"]["response"]; + }; + setRestrictionsForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/interaction-limits"]["response"]; + }; + setRestrictionsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/interaction-limits"]["response"]; + }; + setRestrictionsForYourPublicRepos: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /user/interaction-limits"]["response"]; + }; + }; + issues: { + addAssignees: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"]["response"]; + }; + addLabels: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"]["response"]; + }; + checkUserCanBeAssigned: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/assignees/{assignee}"]["response"]; + }; + create: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/issues"]["response"]; + }; + createComment: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"]["response"]; + }; + createLabel: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/labels"]["response"]; + }; + createMilestone: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/milestones"]["response"]; + }; + deleteComment: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"]["response"]; + }; + deleteLabel: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/labels/{name}"]["response"]; + }; + deleteMilestone: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"]["response"]; + }; + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}"]["response"]; + }; + getComment: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"]["response"]; + }; + getEvent: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/events/{event_id}"]["response"]; + }; + getLabel: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/labels/{name}"]["response"]; + }; + getMilestone: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/milestones/{milestone_number}"]["response"]; + }; + list: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /issues"]["response"]; + }; + listAssignees: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/assignees"]["response"]; + }; + listComments: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"]["response"]; + }; + listCommentsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/comments"]["response"]; + }; + listEvents: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/events"]["response"]; + }; + listEventsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/events"]["response"]; + }; + listEventsForTimeline: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"]["response"]; + }; + listForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/issues"]["response"]; + }; + listForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/issues"]["response"]; + }; + listForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues"]["response"]; + }; + listLabelsForMilestone: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"]["response"]; + }; + listLabelsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/labels"]["response"]; + }; + listLabelsOnIssue: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"]["response"]; + }; + listMilestones: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/milestones"]["response"]; + }; + lock: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"]["response"]; + }; + removeAllLabels: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"]["response"]; + }; + removeAssignees: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"]["response"]; + }; + removeLabel: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"]["response"]; + }; + setLabels: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"]["response"]; + }; + unlock: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"]["response"]; + }; + update: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/issues/{issue_number}"]["response"]; + }; + updateComment: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"]["response"]; + }; + updateLabel: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/labels/{name}"]["response"]; + }; + updateMilestone: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]["response"]; + }; + }; + licenses: { + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /licenses/{license}"]["response"]; + }; + getAllCommonlyUsed: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /licenses"]["response"]; + }; + getForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/license"]["response"]; + }; + }; + markdown: { + render: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /markdown"]["response"]; + }; + renderRaw: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /markdown/raw"]["response"]; + }; + }; + meta: { + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /meta"]["response"]; + }; + getOctocat: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /octocat"]["response"]; + }; + getZen: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /zen"]["response"]; + }; + root: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /"]["response"]; + }; + }; + migrations: { + cancelImport: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/import"]["response"]; + }; + deleteArchiveForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/migrations/{migration_id}/archive"]["response"]; + }; + deleteArchiveForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/migrations/{migration_id}/archive"]["response"]; + }; + downloadArchiveForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/migrations/{migration_id}/archive"]["response"]; + }; + getArchiveForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/migrations/{migration_id}/archive"]["response"]; + }; + getCommitAuthors: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/import/authors"]["response"]; + }; + getImportStatus: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/import"]["response"]; + }; + getLargeFiles: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/import/large_files"]["response"]; + }; + getStatusForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/migrations/{migration_id}"]["response"]; + }; + getStatusForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/migrations/{migration_id}"]["response"]; + }; + listForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/migrations"]["response"]; + }; + listForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/migrations"]["response"]; + }; + listReposForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/migrations/{migration_id}/repositories"]["response"]; + }; + listReposForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/migrations/{migration_id}/repositories"]["response"]; + }; + mapCommitAuthor: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"]["response"]; + }; + setLfsPreference: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/import/lfs"]["response"]; + }; + startForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /user/migrations"]["response"]; + }; + startForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/migrations"]["response"]; + }; + startImport: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/import"]["response"]; + }; + unlockRepoForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"]["response"]; + }; + unlockRepoForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]["response"]; + }; + updateImport: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/import"]["response"]; + }; + }; + orgs: { + blockUser: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/blocks/{username}"]["response"]; + }; + checkBlockedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/blocks/{username}"]["response"]; + }; + checkMembershipForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/members/{username}"]["response"]; + }; + checkPublicMembershipForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/public_members/{username}"]["response"]; + }; + convertMemberToOutsideCollaborator: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/outside_collaborators/{username}"]["response"]; + }; + createInvitation: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/invitations"]["response"]; + }; + createWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/hooks"]["response"]; + }; + deleteWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/hooks/{hook_id}"]["response"]; + }; + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}"]["response"]; + }; + getMembershipForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/memberships/orgs/{org}"]["response"]; + }; + getMembershipForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/memberships/{username}"]["response"]; + }; + getWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/hooks/{hook_id}"]["response"]; + }; + getWebhookConfigForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/hooks/{hook_id}/config"]["response"]; + }; + list: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /organizations"]["response"]; + }; + listAppInstallations: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/installations"]["response"]; + }; + listBlockedUsers: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/blocks"]["response"]; + }; + listForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/orgs"]["response"]; + }; + listForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/orgs"]["response"]; + }; + listInvitationTeams: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/invitations/{invitation_id}/teams"]["response"]; + }; + listMembers: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/members"]["response"]; + }; + listMembershipsForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/memberships/orgs"]["response"]; + }; + listOutsideCollaborators: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/outside_collaborators"]["response"]; + }; + listPendingInvitations: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/invitations"]["response"]; + }; + listPublicMembers: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/public_members"]["response"]; + }; + listWebhooks: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/hooks"]["response"]; + }; + pingWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/hooks/{hook_id}/pings"]["response"]; + }; + removeMember: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/members/{username}"]["response"]; + }; + removeMembershipForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/memberships/{username}"]["response"]; + }; + removeOutsideCollaborator: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/outside_collaborators/{username}"]["response"]; + }; + removePublicMembershipForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/public_members/{username}"]["response"]; + }; + setMembershipForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/memberships/{username}"]["response"]; + }; + setPublicMembershipForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/public_members/{username}"]["response"]; + }; + unblockUser: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/blocks/{username}"]["response"]; + }; + update: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /orgs/{org}"]["response"]; + }; + updateMembershipForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /user/memberships/orgs/{org}"]["response"]; + }; + updateWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /orgs/{org}/hooks/{hook_id}"]["response"]; + }; + updateWebhookConfigForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /orgs/{org}/hooks/{hook_id}/config"]["response"]; + }; + }; + projects: { + addCollaborator: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /projects/{project_id}/collaborators/{username}"]["response"]; + }; + createCard: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /projects/columns/{column_id}/cards"]["response"]; + }; + createColumn: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /projects/{project_id}/columns"]["response"]; + }; + createForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /user/projects"]["response"]; + }; + createForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/projects"]["response"]; + }; + createForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/projects"]["response"]; + }; + delete: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /projects/{project_id}"]["response"]; + }; + deleteCard: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /projects/columns/cards/{card_id}"]["response"]; + }; + deleteColumn: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /projects/columns/{column_id}"]["response"]; + }; + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /projects/{project_id}"]["response"]; + }; + getCard: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /projects/columns/cards/{card_id}"]["response"]; + }; + getColumn: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /projects/columns/{column_id}"]["response"]; + }; + getPermissionForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /projects/{project_id}/collaborators/{username}/permission"]["response"]; + }; + listCards: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /projects/columns/{column_id}/cards"]["response"]; + }; + listCollaborators: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /projects/{project_id}/collaborators"]["response"]; + }; + listColumns: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /projects/{project_id}/columns"]["response"]; + }; + listForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/projects"]["response"]; + }; + listForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/projects"]["response"]; + }; + listForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/projects"]["response"]; + }; + moveCard: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /projects/columns/cards/{card_id}/moves"]["response"]; + }; + moveColumn: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /projects/columns/{column_id}/moves"]["response"]; + }; + removeCollaborator: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /projects/{project_id}/collaborators/{username}"]["response"]; + }; + update: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /projects/{project_id}"]["response"]; + }; + updateCard: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /projects/columns/cards/{card_id}"]["response"]; + }; + updateColumn: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /projects/columns/{column_id}"]["response"]; + }; + }; + pulls: { + checkIfMerged: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"]["response"]; + }; + create: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/pulls"]["response"]; + }; + createReplyForReviewComment: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"]["response"]; + }; + createReview: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"]["response"]; + }; + createReviewComment: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"]["response"]; + }; + deletePendingReview: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"]["response"]; + }; + deleteReviewComment: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"]["response"]; + }; + dismissReview: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"]["response"]; + }; + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}"]["response"]; + }; + getReview: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"]["response"]; + }; + getReviewComment: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"]["response"]; + }; + list: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls"]["response"]; + }; + listCommentsForReview: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"]["response"]; + }; + listCommits: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"]["response"]; + }; + listFiles: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"]["response"]; + }; + listRequestedReviewers: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"]["response"]; + }; + listReviewComments: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"]["response"]; + }; + listReviewCommentsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/comments"]["response"]; + }; + listReviews: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"]["response"]; + }; + merge: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"]["response"]; + }; + removeRequestedReviewers: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"]["response"]; + }; + requestReviewers: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"]["response"]; + }; + submitReview: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"]["response"]; + }; + update: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"]["response"]; + }; + updateBranch: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"]["response"]; + }; + updateReview: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"]["response"]; + }; + updateReviewComment: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]["response"]; + }; + }; + rateLimit: { + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /rate_limit"]["response"]; + }; + }; + reactions: { + createForCommitComment: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"]["response"]; + }; + createForIssue: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"]["response"]; + }; + createForIssueComment: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"]["response"]; + }; + createForPullRequestReviewComment: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"]["response"]; + }; + createForTeamDiscussionCommentInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"]["response"]; + }; + createForTeamDiscussionInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]["response"]; + }; + deleteForCommitComment: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"]["response"]; + }; + deleteForIssue: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"]["response"]; + }; + deleteForIssueComment: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"]["response"]; + }; + deleteForPullRequestComment: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"]["response"]; + }; + deleteForTeamDiscussion: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"]["response"]; + }; + deleteForTeamDiscussionComment: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"]["response"]; + }; + deleteLegacy: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /reactions/{reaction_id}"]["response"]; + }; + listForCommitComment: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"]["response"]; + }; + listForIssue: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"]["response"]; + }; + listForIssueComment: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"]["response"]; + }; + listForPullRequestReviewComment: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"]["response"]; + }; + listForTeamDiscussionCommentInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"]["response"]; + }; + listForTeamDiscussionInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]["response"]; + }; + }; + repos: { + acceptInvitation: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /user/repository_invitations/{invitation_id}"]["response"]; + }; + addAppAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"]["response"]; + }; + addCollaborator: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/collaborators/{username}"]["response"]; + }; + addStatusCheckContexts: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"]["response"]; + }; + addTeamAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"]["response"]; + }; + addUserAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"]["response"]; + }; + checkCollaborator: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/collaborators/{username}"]["response"]; + }; + checkVulnerabilityAlerts: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/vulnerability-alerts"]["response"]; + }; + compareCommits: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/compare/{base}...{head}"]["response"]; + }; + createCommitComment: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"]["response"]; + }; + createCommitSignatureProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"]["response"]; + }; + createCommitStatus: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/statuses/{sha}"]["response"]; + }; + createDeployKey: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/keys"]["response"]; + }; + createDeployment: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/deployments"]["response"]; + }; + createDeploymentStatus: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"]["response"]; + }; + createDispatchEvent: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/dispatches"]["response"]; + }; + createForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /user/repos"]["response"]; + }; + createFork: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/forks"]["response"]; + }; + createInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/repos"]["response"]; + }; + createOrUpdateFileContents: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/contents/{path}"]["response"]; + }; + createPagesSite: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/pages"]["response"]; + }; + createRelease: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/releases"]["response"]; + }; + createUsingTemplate: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{template_owner}/{template_repo}/generate"]["response"]; + }; + createWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/hooks"]["response"]; + }; + declineInvitation: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/repository_invitations/{invitation_id}"]["response"]; + }; + delete: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}"]["response"]; + }; + deleteAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"]["response"]; + }; + deleteAdminBranchProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"]["response"]; + }; + deleteBranchProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"]["response"]; + }; + deleteCommitComment: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/comments/{comment_id}"]["response"]; + }; + deleteCommitSignatureProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"]["response"]; + }; + deleteDeployKey: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/keys/{key_id}"]["response"]; + }; + deleteDeployment: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"]["response"]; + }; + deleteFile: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/contents/{path}"]["response"]; + }; + deleteInvitation: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"]["response"]; + }; + deletePagesSite: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/pages"]["response"]; + }; + deletePullRequestReviewProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"]["response"]; + }; + deleteRelease: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/releases/{release_id}"]["response"]; + }; + deleteReleaseAsset: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"]["response"]; + }; + deleteWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"]["response"]; + }; + disableAutomatedSecurityFixes: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/automated-security-fixes"]["response"]; + }; + disableVulnerabilityAlerts: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/vulnerability-alerts"]["response"]; + }; + downloadArchive: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/zipball/{ref}"]["response"]; + }; + downloadTarballArchive: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/tarball/{ref}"]["response"]; + }; + downloadZipballArchive: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/zipball/{ref}"]["response"]; + }; + enableAutomatedSecurityFixes: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/automated-security-fixes"]["response"]; + }; + enableVulnerabilityAlerts: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/vulnerability-alerts"]["response"]; + }; + get: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}"]["response"]; + }; + getAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"]["response"]; + }; + getAdminBranchProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"]["response"]; + }; + getAllStatusCheckContexts: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"]["response"]; + }; + getAllTopics: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/topics"]["response"]; + }; + getAppsWithAccessToProtectedBranch: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"]["response"]; + }; + getBranch: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}"]["response"]; + }; + getBranchProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection"]["response"]; + }; + getClones: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/traffic/clones"]["response"]; + }; + getCodeFrequencyStats: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/stats/code_frequency"]["response"]; + }; + getCollaboratorPermissionLevel: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/collaborators/{username}/permission"]["response"]; + }; + getCombinedStatusForRef: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/status"]["response"]; + }; + getCommit: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}"]["response"]; + }; + getCommitActivityStats: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/stats/commit_activity"]["response"]; + }; + getCommitComment: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/comments/{comment_id}"]["response"]; + }; + getCommitSignatureProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"]["response"]; + }; + getCommunityProfileMetrics: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/community/profile"]["response"]; + }; + getContent: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/contents/{path}"]["response"]; + }; + getContributorsStats: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/stats/contributors"]["response"]; + }; + getDeployKey: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/keys/{key_id}"]["response"]; + }; + getDeployment: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/deployments/{deployment_id}"]["response"]; + }; + getDeploymentStatus: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"]["response"]; + }; + getLatestPagesBuild: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pages/builds/latest"]["response"]; + }; + getLatestRelease: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/releases/latest"]["response"]; + }; + getPages: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pages"]["response"]; + }; + getPagesBuild: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pages/builds/{build_id}"]["response"]; + }; + getParticipationStats: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/stats/participation"]["response"]; + }; + getPullRequestReviewProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"]["response"]; + }; + getPunchCardStats: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/stats/punch_card"]["response"]; + }; + getReadme: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/readme"]["response"]; + }; + getRelease: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/releases/{release_id}"]["response"]; + }; + getReleaseAsset: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"]["response"]; + }; + getReleaseByTag: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/releases/tags/{tag}"]["response"]; + }; + getStatusChecksProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"]["response"]; + }; + getTeamsWithAccessToProtectedBranch: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"]["response"]; + }; + getTopPaths: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/traffic/popular/paths"]["response"]; + }; + getTopReferrers: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/traffic/popular/referrers"]["response"]; + }; + getUsersWithAccessToProtectedBranch: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"]["response"]; + }; + getViews: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/traffic/views"]["response"]; + }; + getWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/hooks/{hook_id}"]["response"]; + }; + getWebhookConfigForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"]["response"]; + }; + listBranches: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/branches"]["response"]; + }; + listBranchesForHeadCommit: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"]["response"]; + }; + listCollaborators: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/collaborators"]["response"]; + }; + listCommentsForCommit: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"]["response"]; + }; + listCommitCommentsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/comments"]["response"]; + }; + listCommitStatusesForRef: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{ref}/statuses"]["response"]; + }; + listCommits: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/commits"]["response"]; + }; + listContributors: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/contributors"]["response"]; + }; + listDeployKeys: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/keys"]["response"]; + }; + listDeploymentStatuses: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"]["response"]; + }; + listDeployments: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/deployments"]["response"]; + }; + listForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/repos"]["response"]; + }; + listForOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/repos"]["response"]; + }; + listForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/repos"]["response"]; + }; + listForks: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/forks"]["response"]; + }; + listInvitations: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/invitations"]["response"]; + }; + listInvitationsForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/repository_invitations"]["response"]; + }; + listLanguages: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/languages"]["response"]; + }; + listPagesBuilds: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/pages/builds"]["response"]; + }; + listPublic: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repositories"]["response"]; + }; + listPullRequestsAssociatedWithCommit: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"]["response"]; + }; + listReleaseAssets: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/releases/{release_id}/assets"]["response"]; + }; + listReleases: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/releases"]["response"]; + }; + listTags: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/tags"]["response"]; + }; + listTeams: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/teams"]["response"]; + }; + listWebhooks: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/hooks"]["response"]; + }; + merge: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/merges"]["response"]; + }; + pingWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"]["response"]; + }; + removeAppAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"]["response"]; + }; + removeCollaborator: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/collaborators/{username}"]["response"]; + }; + removeStatusCheckContexts: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"]["response"]; + }; + removeStatusCheckProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"]["response"]; + }; + removeTeamAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"]["response"]; + }; + removeUserAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"]["response"]; + }; + replaceAllTopics: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/topics"]["response"]; + }; + requestPagesBuild: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/pages/builds"]["response"]; + }; + setAdminBranchProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"]["response"]; + }; + setAppAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"]["response"]; + }; + setStatusCheckContexts: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"]["response"]; + }; + setTeamAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"]["response"]; + }; + setUserAccessRestrictions: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"]["response"]; + }; + testPushWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"]["response"]; + }; + transfer: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /repos/{owner}/{repo}/transfer"]["response"]; + }; + update: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}"]["response"]; + }; + updateBranchProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/branches/{branch}/protection"]["response"]; + }; + updateCommitComment: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/comments/{comment_id}"]["response"]; + }; + updateInformationAboutPagesSite: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /repos/{owner}/{repo}/pages"]["response"]; + }; + updateInvitation: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"]["response"]; + }; + updatePullRequestReviewProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"]["response"]; + }; + updateRelease: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/releases/{release_id}"]["response"]; + }; + updateReleaseAsset: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"]["response"]; + }; + updateStatusCheckPotection: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"]["response"]; + }; + updateStatusCheckProtection: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"]["response"]; + }; + updateWebhook: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"]["response"]; + }; + updateWebhookConfigForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"]["response"]; + }; + uploadReleaseAsset: { + parameters: RequestParameters & Omit; + response: Endpoints["POST {origin}/repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}"]["response"]; + }; + }; + search: { + code: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /search/code"]["response"]; + }; + commits: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /search/commits"]["response"]; + }; + issuesAndPullRequests: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /search/issues"]["response"]; + }; + labels: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /search/labels"]["response"]; + }; + repos: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /search/repositories"]["response"]; + }; + topics: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /search/topics"]["response"]; + }; + users: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /search/users"]["response"]; + }; + }; + secretScanning: { + getAlert: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]["response"]; + }; + listAlertsForRepo: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /repos/{owner}/{repo}/secret-scanning/alerts"]["response"]; + }; + updateAlert: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]["response"]; + }; + }; + teams: { + addOrUpdateMembershipForUserInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"]["response"]; + }; + addOrUpdateProjectPermissionsInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"]["response"]; + }; + addOrUpdateRepoPermissionsInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"]["response"]; + }; + checkPermissionsForProjectInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"]["response"]; + }; + checkPermissionsForRepoInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"]["response"]; + }; + create: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/teams"]["response"]; + }; + createDiscussionCommentInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"]["response"]; + }; + createDiscussionInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /orgs/{org}/teams/{team_slug}/discussions"]["response"]; + }; + deleteDiscussionCommentInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"]["response"]; + }; + deleteDiscussionInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"]["response"]; + }; + deleteInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}"]["response"]; + }; + getByName: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}"]["response"]; + }; + getDiscussionCommentInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"]["response"]; + }; + getDiscussionInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"]["response"]; + }; + getMembershipForUserInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"]["response"]; + }; + list: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams"]["response"]; + }; + listChildInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/teams"]["response"]; + }; + listDiscussionCommentsInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"]["response"]; + }; + listDiscussionsInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/discussions"]["response"]; + }; + listForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/teams"]["response"]; + }; + listMembersInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/members"]["response"]; + }; + listPendingInvitationsInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/invitations"]["response"]; + }; + listProjectsInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/projects"]["response"]; + }; + listReposInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /orgs/{org}/teams/{team_slug}/repos"]["response"]; + }; + removeMembershipForUserInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"]["response"]; + }; + removeProjectInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"]["response"]; + }; + removeRepoInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"]["response"]; + }; + updateDiscussionCommentInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"]["response"]; + }; + updateDiscussionInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"]["response"]; + }; + updateInOrg: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /orgs/{org}/teams/{team_slug}"]["response"]; + }; + }; + users: { + addEmailForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /user/emails"]["response"]; + }; + block: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /user/blocks/{username}"]["response"]; + }; + checkBlocked: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/blocks/{username}"]["response"]; + }; + checkFollowingForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/following/{target_user}"]["response"]; + }; + checkPersonIsFollowedByAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/following/{username}"]["response"]; + }; + createGpgKeyForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /user/gpg_keys"]["response"]; + }; + createPublicSshKeyForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["POST /user/keys"]["response"]; + }; + deleteEmailForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/emails"]["response"]; + }; + deleteGpgKeyForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/gpg_keys/{gpg_key_id}"]["response"]; + }; + deletePublicSshKeyForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/keys/{key_id}"]["response"]; + }; + follow: { + parameters: RequestParameters & Omit; + response: Endpoints["PUT /user/following/{username}"]["response"]; + }; + getAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user"]["response"]; + }; + getByUsername: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}"]["response"]; + }; + getContextForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/hovercard"]["response"]; + }; + getGpgKeyForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/gpg_keys/{gpg_key_id}"]["response"]; + }; + getPublicSshKeyForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/keys/{key_id}"]["response"]; + }; + list: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users"]["response"]; + }; + listBlockedByAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/blocks"]["response"]; + }; + listEmailsForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/emails"]["response"]; + }; + listFollowedByAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/following"]["response"]; + }; + listFollowersForAuthenticatedUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/followers"]["response"]; + }; + listFollowersForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/followers"]["response"]; + }; + listFollowingForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/following"]["response"]; + }; + listGpgKeysForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/gpg_keys"]["response"]; + }; + listGpgKeysForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/gpg_keys"]["response"]; + }; + listPublicEmailsForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/public_emails"]["response"]; + }; + listPublicKeysForUser: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /users/{username}/keys"]["response"]; + }; + listPublicSshKeysForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["GET /user/keys"]["response"]; + }; + setPrimaryEmailVisibilityForAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /user/email/visibility"]["response"]; + }; + unblock: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/blocks/{username}"]["response"]; + }; + unfollow: { + parameters: RequestParameters & Omit; + response: Endpoints["DELETE /user/following/{username}"]["response"]; + }; + updateAuthenticated: { + parameters: RequestParameters & Omit; + response: Endpoints["PATCH /user"]["response"]; + }; + }; +}; diff --git a/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/index.d.ts b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/index.d.ts new file mode 100644 index 000000000..455e99898 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/index.d.ts @@ -0,0 +1,17 @@ +import { Octokit } from "@octokit/core"; +export { RestEndpointMethodTypes } from "./generated/parameters-and-response-types"; +import { Api } from "./types"; +/** + * This plugin is a 1:1 copy of internal @octokit/rest plugins. The primary + * goal is to rebuild @octokit/rest on top of @octokit/core. Once that is + * done, we will remove the registerEndpoints methods and return the methods + * directly as with the other plugins. At that point we will also remove the + * legacy workarounds and deprecations. + * + * See the plan at + * https://github.com/octokit/plugin-rest-endpoint-methods.js/pull/1 + */ +export declare function restEndpointMethods(octokit: Octokit): Api; +export declare namespace restEndpointMethods { + var VERSION: string; +} diff --git a/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/types.d.ts b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/types.d.ts new file mode 100644 index 000000000..e9b177b40 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/types.d.ts @@ -0,0 +1,16 @@ +import { Route, RequestParameters } from "@octokit/types"; +import { RestEndpointMethods } from "./generated/method-types"; +export declare type Api = RestEndpointMethods; +export declare type EndpointDecorations = { + mapToData?: string; + deprecated?: string; + renamed?: [string, string]; + renamedParameters?: { + [name: string]: string; + }; +}; +export declare type EndpointsDefaultsAndDecorations = { + [scope: string]: { + [methodName: string]: [Route, RequestParameters?, EndpointDecorations?]; + }; +}; diff --git a/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/version.d.ts b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/version.d.ts new file mode 100644 index 000000000..9feaddaab --- /dev/null +++ b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "4.4.1"; diff --git a/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js new file mode 100644 index 000000000..4436309ea --- /dev/null +++ b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js @@ -0,0 +1,1353 @@ +const Endpoints = { + actions: { + addSelectedRepoToOrgSecret: [ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}", + ], + cancelWorkflowRun: [ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel", + ], + createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], + createOrUpdateRepoSecret: [ + "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}", + ], + createRegistrationTokenForOrg: [ + "POST /orgs/{org}/actions/runners/registration-token", + ], + createRegistrationTokenForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/registration-token", + ], + createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], + createRemoveTokenForRepo: [ + "POST /repos/{owner}/{repo}/actions/runners/remove-token", + ], + createWorkflowDispatch: [ + "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches", + ], + deleteArtifact: [ + "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}", + ], + deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], + deleteRepoSecret: [ + "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}", + ], + deleteSelfHostedRunnerFromOrg: [ + "DELETE /orgs/{org}/actions/runners/{runner_id}", + ], + deleteSelfHostedRunnerFromRepo: [ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}", + ], + deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"], + deleteWorkflowRunLogs: [ + "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs", + ], + disableSelectedRepositoryGithubActionsOrganization: [ + "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}", + ], + disableWorkflow: [ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable", + ], + downloadArtifact: [ + "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}", + ], + downloadJobLogsForWorkflowRun: [ + "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs", + ], + downloadWorkflowRunLogs: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs", + ], + enableSelectedRepositoryGithubActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}", + ], + enableWorkflow: [ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable", + ], + getAllowedActionsOrganization: [ + "GET /orgs/{org}/actions/permissions/selected-actions", + ], + getAllowedActionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions/selected-actions", + ], + getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], + getGithubActionsPermissionsOrganization: [ + "GET /orgs/{org}/actions/permissions", + ], + getGithubActionsPermissionsRepository: [ + "GET /repos/{owner}/{repo}/actions/permissions", + ], + getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], + getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], + getRepoPermissions: [ + "GET /repos/{owner}/{repo}/actions/permissions", + {}, + { renamed: ["actions", "getGithubActionsPermissionsRepository"] }, + ], + getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], + getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], + getSelfHostedRunnerForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}", + ], + getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], + getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], + getWorkflowRunUsage: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing", + ], + getWorkflowUsage: [ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing", + ], + listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], + listJobsForWorkflowRun: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", + ], + listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], + listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], + listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], + listRunnerApplicationsForRepo: [ + "GET /repos/{owner}/{repo}/actions/runners/downloads", + ], + listSelectedReposForOrgSecret: [ + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", + ], + listSelectedRepositoriesEnabledGithubActionsOrganization: [ + "GET /orgs/{org}/actions/permissions/repositories", + ], + listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], + listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], + listWorkflowRunArtifacts: [ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", + ], + listWorkflowRuns: [ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", + ], + listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], + reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], + removeSelectedRepoFromOrgSecret: [ + "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}", + ], + setAllowedActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/selected-actions", + ], + setAllowedActionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions", + ], + setGithubActionsPermissionsOrganization: [ + "PUT /orgs/{org}/actions/permissions", + ], + setGithubActionsPermissionsRepository: [ + "PUT /repos/{owner}/{repo}/actions/permissions", + ], + setSelectedReposForOrgSecret: [ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories", + ], + setSelectedRepositoriesEnabledGithubActionsOrganization: [ + "PUT /orgs/{org}/actions/permissions/repositories", + ], + }, + activity: { + checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], + deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], + deleteThreadSubscription: [ + "DELETE /notifications/threads/{thread_id}/subscription", + ], + getFeeds: ["GET /feeds"], + getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], + getThread: ["GET /notifications/threads/{thread_id}"], + getThreadSubscriptionForAuthenticatedUser: [ + "GET /notifications/threads/{thread_id}/subscription", + ], + listEventsForAuthenticatedUser: ["GET /users/{username}/events"], + listNotificationsForAuthenticatedUser: ["GET /notifications"], + listOrgEventsForAuthenticatedUser: [ + "GET /users/{username}/events/orgs/{org}", + ], + listPublicEvents: ["GET /events"], + listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], + listPublicEventsForUser: ["GET /users/{username}/events/public"], + listPublicOrgEvents: ["GET /orgs/{org}/events"], + listReceivedEventsForUser: ["GET /users/{username}/received_events"], + listReceivedPublicEventsForUser: [ + "GET /users/{username}/received_events/public", + ], + listRepoEvents: ["GET /repos/{owner}/{repo}/events"], + listRepoNotificationsForAuthenticatedUser: [ + "GET /repos/{owner}/{repo}/notifications", + ], + listReposStarredByAuthenticatedUser: ["GET /user/starred"], + listReposStarredByUser: ["GET /users/{username}/starred"], + listReposWatchedByUser: ["GET /users/{username}/subscriptions"], + listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], + listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], + listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], + markNotificationsAsRead: ["PUT /notifications"], + markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], + markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], + setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], + setThreadSubscription: [ + "PUT /notifications/threads/{thread_id}/subscription", + ], + starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], + unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"], + }, + apps: { + addRepoToInstallation: [ + "PUT /user/installations/{installation_id}/repositories/{repository_id}", + ], + checkToken: ["POST /applications/{client_id}/token"], + createContentAttachment: [ + "POST /content_references/{content_reference_id}/attachments", + { mediaType: { previews: ["corsair"] } }, + ], + createFromManifest: ["POST /app-manifests/{code}/conversions"], + createInstallationAccessToken: [ + "POST /app/installations/{installation_id}/access_tokens", + ], + deleteAuthorization: ["DELETE /applications/{client_id}/grant"], + deleteInstallation: ["DELETE /app/installations/{installation_id}"], + deleteToken: ["DELETE /applications/{client_id}/token"], + getAuthenticated: ["GET /app"], + getBySlug: ["GET /apps/{app_slug}"], + getInstallation: ["GET /app/installations/{installation_id}"], + getOrgInstallation: ["GET /orgs/{org}/installation"], + getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"], + getSubscriptionPlanForAccount: [ + "GET /marketplace_listing/accounts/{account_id}", + ], + getSubscriptionPlanForAccountStubbed: [ + "GET /marketplace_listing/stubbed/accounts/{account_id}", + ], + getUserInstallation: ["GET /users/{username}/installation"], + getWebhookConfigForApp: ["GET /app/hook/config"], + listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], + listAccountsForPlanStubbed: [ + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", + ], + listInstallationReposForAuthenticatedUser: [ + "GET /user/installations/{installation_id}/repositories", + ], + listInstallations: ["GET /app/installations"], + listInstallationsForAuthenticatedUser: ["GET /user/installations"], + listPlans: ["GET /marketplace_listing/plans"], + listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], + listReposAccessibleToInstallation: ["GET /installation/repositories"], + listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], + listSubscriptionsForAuthenticatedUserStubbed: [ + "GET /user/marketplace_purchases/stubbed", + ], + removeRepoFromInstallation: [ + "DELETE /user/installations/{installation_id}/repositories/{repository_id}", + ], + resetToken: ["PATCH /applications/{client_id}/token"], + revokeInstallationAccessToken: ["DELETE /installation/token"], + suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], + unsuspendInstallation: [ + "DELETE /app/installations/{installation_id}/suspended", + ], + updateWebhookConfigForApp: ["PATCH /app/hook/config"], + }, + billing: { + getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"], + getGithubActionsBillingUser: [ + "GET /users/{username}/settings/billing/actions", + ], + getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"], + getGithubPackagesBillingUser: [ + "GET /users/{username}/settings/billing/packages", + ], + getSharedStorageBillingOrg: [ + "GET /orgs/{org}/settings/billing/shared-storage", + ], + getSharedStorageBillingUser: [ + "GET /users/{username}/settings/billing/shared-storage", + ], + }, + checks: { + create: ["POST /repos/{owner}/{repo}/check-runs"], + createSuite: ["POST /repos/{owner}/{repo}/check-suites"], + get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"], + getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"], + listAnnotations: [ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", + ], + listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"], + listForSuite: [ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", + ], + listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"], + rerequestSuite: [ + "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest", + ], + setSuitesPreferences: [ + "PATCH /repos/{owner}/{repo}/check-suites/preferences", + ], + update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"], + }, + codeScanning: { + getAlert: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", + {}, + { renamedParameters: { alert_id: "alert_number" } }, + ], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], + listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", + ], + uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"], + }, + codesOfConduct: { + getAllCodesOfConduct: [ + "GET /codes_of_conduct", + { mediaType: { previews: ["scarlet-witch"] } }, + ], + getConductCode: [ + "GET /codes_of_conduct/{key}", + { mediaType: { previews: ["scarlet-witch"] } }, + ], + getForRepo: [ + "GET /repos/{owner}/{repo}/community/code_of_conduct", + { mediaType: { previews: ["scarlet-witch"] } }, + ], + }, + emojis: { get: ["GET /emojis"] }, + enterpriseAdmin: { + disableSelectedOrganizationGithubActionsEnterprise: [ + "DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}", + ], + enableSelectedOrganizationGithubActionsEnterprise: [ + "PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}", + ], + getAllowedActionsEnterprise: [ + "GET /enterprises/{enterprise}/actions/permissions/selected-actions", + ], + getGithubActionsPermissionsEnterprise: [ + "GET /enterprises/{enterprise}/actions/permissions", + ], + listSelectedOrganizationsEnabledGithubActionsEnterprise: [ + "GET /enterprises/{enterprise}/actions/permissions/organizations", + ], + setAllowedActionsEnterprise: [ + "PUT /enterprises/{enterprise}/actions/permissions/selected-actions", + ], + setGithubActionsPermissionsEnterprise: [ + "PUT /enterprises/{enterprise}/actions/permissions", + ], + setSelectedOrganizationsEnabledGithubActionsEnterprise: [ + "PUT /enterprises/{enterprise}/actions/permissions/organizations", + ], + }, + gists: { + checkIsStarred: ["GET /gists/{gist_id}/star"], + create: ["POST /gists"], + createComment: ["POST /gists/{gist_id}/comments"], + delete: ["DELETE /gists/{gist_id}"], + deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], + fork: ["POST /gists/{gist_id}/forks"], + get: ["GET /gists/{gist_id}"], + getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], + getRevision: ["GET /gists/{gist_id}/{sha}"], + list: ["GET /gists"], + listComments: ["GET /gists/{gist_id}/comments"], + listCommits: ["GET /gists/{gist_id}/commits"], + listForUser: ["GET /users/{username}/gists"], + listForks: ["GET /gists/{gist_id}/forks"], + listPublic: ["GET /gists/public"], + listStarred: ["GET /gists/starred"], + star: ["PUT /gists/{gist_id}/star"], + unstar: ["DELETE /gists/{gist_id}/star"], + update: ["PATCH /gists/{gist_id}"], + updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"], + }, + git: { + createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], + createCommit: ["POST /repos/{owner}/{repo}/git/commits"], + createRef: ["POST /repos/{owner}/{repo}/git/refs"], + createTag: ["POST /repos/{owner}/{repo}/git/tags"], + createTree: ["POST /repos/{owner}/{repo}/git/trees"], + deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], + getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], + getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], + getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], + getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], + getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], + listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], + updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"], + }, + gitignore: { + getAllTemplates: ["GET /gitignore/templates"], + getTemplate: ["GET /gitignore/templates/{name}"], + }, + interactions: { + getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"], + getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"], + getRestrictionsForYourPublicRepos: ["GET /user/interaction-limits"], + removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"], + removeRestrictionsForRepo: [ + "DELETE /repos/{owner}/{repo}/interaction-limits", + ], + removeRestrictionsForYourPublicRepos: ["DELETE /user/interaction-limits"], + setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"], + setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"], + setRestrictionsForYourPublicRepos: ["PUT /user/interaction-limits"], + }, + issues: { + addAssignees: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees", + ], + addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], + checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], + create: ["POST /repos/{owner}/{repo}/issues"], + createComment: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/comments", + ], + createLabel: ["POST /repos/{owner}/{repo}/labels"], + createMilestone: ["POST /repos/{owner}/{repo}/milestones"], + deleteComment: [ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}", + ], + deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], + deleteMilestone: [ + "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}", + ], + get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], + getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], + getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], + getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], + getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], + list: ["GET /issues"], + listAssignees: ["GET /repos/{owner}/{repo}/assignees"], + listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], + listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], + listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], + listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], + listEventsForTimeline: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", + { mediaType: { previews: ["mockingbird"] } }, + ], + listForAuthenticatedUser: ["GET /user/issues"], + listForOrg: ["GET /orgs/{org}/issues"], + listForRepo: ["GET /repos/{owner}/{repo}/issues"], + listLabelsForMilestone: [ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", + ], + listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], + listLabelsOnIssue: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", + ], + listMilestones: ["GET /repos/{owner}/{repo}/milestones"], + lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], + removeAllLabels: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels", + ], + removeAssignees: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees", + ], + removeLabel: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", + ], + setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], + unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], + update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], + updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], + updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], + updateMilestone: [ + "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}", + ], + }, + licenses: { + get: ["GET /licenses/{license}"], + getAllCommonlyUsed: ["GET /licenses"], + getForRepo: ["GET /repos/{owner}/{repo}/license"], + }, + markdown: { + render: ["POST /markdown"], + renderRaw: [ + "POST /markdown/raw", + { headers: { "content-type": "text/plain; charset=utf-8" } }, + ], + }, + meta: { + get: ["GET /meta"], + getOctocat: ["GET /octocat"], + getZen: ["GET /zen"], + root: ["GET /"], + }, + migrations: { + cancelImport: ["DELETE /repos/{owner}/{repo}/import"], + deleteArchiveForAuthenticatedUser: [ + "DELETE /user/migrations/{migration_id}/archive", + { mediaType: { previews: ["wyandotte"] } }, + ], + deleteArchiveForOrg: [ + "DELETE /orgs/{org}/migrations/{migration_id}/archive", + { mediaType: { previews: ["wyandotte"] } }, + ], + downloadArchiveForOrg: [ + "GET /orgs/{org}/migrations/{migration_id}/archive", + { mediaType: { previews: ["wyandotte"] } }, + ], + getArchiveForAuthenticatedUser: [ + "GET /user/migrations/{migration_id}/archive", + { mediaType: { previews: ["wyandotte"] } }, + ], + getCommitAuthors: ["GET /repos/{owner}/{repo}/import/authors"], + getImportStatus: ["GET /repos/{owner}/{repo}/import"], + getLargeFiles: ["GET /repos/{owner}/{repo}/import/large_files"], + getStatusForAuthenticatedUser: [ + "GET /user/migrations/{migration_id}", + { mediaType: { previews: ["wyandotte"] } }, + ], + getStatusForOrg: [ + "GET /orgs/{org}/migrations/{migration_id}", + { mediaType: { previews: ["wyandotte"] } }, + ], + listForAuthenticatedUser: [ + "GET /user/migrations", + { mediaType: { previews: ["wyandotte"] } }, + ], + listForOrg: [ + "GET /orgs/{org}/migrations", + { mediaType: { previews: ["wyandotte"] } }, + ], + listReposForOrg: [ + "GET /orgs/{org}/migrations/{migration_id}/repositories", + { mediaType: { previews: ["wyandotte"] } }, + ], + listReposForUser: [ + "GET /user/migrations/{migration_id}/repositories", + { mediaType: { previews: ["wyandotte"] } }, + ], + mapCommitAuthor: ["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"], + setLfsPreference: ["PATCH /repos/{owner}/{repo}/import/lfs"], + startForAuthenticatedUser: ["POST /user/migrations"], + startForOrg: ["POST /orgs/{org}/migrations"], + startImport: ["PUT /repos/{owner}/{repo}/import"], + unlockRepoForAuthenticatedUser: [ + "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock", + { mediaType: { previews: ["wyandotte"] } }, + ], + unlockRepoForOrg: [ + "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock", + { mediaType: { previews: ["wyandotte"] } }, + ], + updateImport: ["PATCH /repos/{owner}/{repo}/import"], + }, + orgs: { + blockUser: ["PUT /orgs/{org}/blocks/{username}"], + checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], + checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], + checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], + convertMemberToOutsideCollaborator: [ + "PUT /orgs/{org}/outside_collaborators/{username}", + ], + createInvitation: ["POST /orgs/{org}/invitations"], + createWebhook: ["POST /orgs/{org}/hooks"], + deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], + get: ["GET /orgs/{org}"], + getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], + getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], + getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], + getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"], + list: ["GET /organizations"], + listAppInstallations: ["GET /orgs/{org}/installations"], + listBlockedUsers: ["GET /orgs/{org}/blocks"], + listForAuthenticatedUser: ["GET /user/orgs"], + listForUser: ["GET /users/{username}/orgs"], + listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], + listMembers: ["GET /orgs/{org}/members"], + listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], + listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], + listPendingInvitations: ["GET /orgs/{org}/invitations"], + listPublicMembers: ["GET /orgs/{org}/public_members"], + listWebhooks: ["GET /orgs/{org}/hooks"], + pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], + removeMember: ["DELETE /orgs/{org}/members/{username}"], + removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], + removeOutsideCollaborator: [ + "DELETE /orgs/{org}/outside_collaborators/{username}", + ], + removePublicMembershipForAuthenticatedUser: [ + "DELETE /orgs/{org}/public_members/{username}", + ], + setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], + setPublicMembershipForAuthenticatedUser: [ + "PUT /orgs/{org}/public_members/{username}", + ], + unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], + update: ["PATCH /orgs/{org}"], + updateMembershipForAuthenticatedUser: [ + "PATCH /user/memberships/orgs/{org}", + ], + updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"], + updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"], + }, + projects: { + addCollaborator: [ + "PUT /projects/{project_id}/collaborators/{username}", + { mediaType: { previews: ["inertia"] } }, + ], + createCard: [ + "POST /projects/columns/{column_id}/cards", + { mediaType: { previews: ["inertia"] } }, + ], + createColumn: [ + "POST /projects/{project_id}/columns", + { mediaType: { previews: ["inertia"] } }, + ], + createForAuthenticatedUser: [ + "POST /user/projects", + { mediaType: { previews: ["inertia"] } }, + ], + createForOrg: [ + "POST /orgs/{org}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + createForRepo: [ + "POST /repos/{owner}/{repo}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + delete: [ + "DELETE /projects/{project_id}", + { mediaType: { previews: ["inertia"] } }, + ], + deleteCard: [ + "DELETE /projects/columns/cards/{card_id}", + { mediaType: { previews: ["inertia"] } }, + ], + deleteColumn: [ + "DELETE /projects/columns/{column_id}", + { mediaType: { previews: ["inertia"] } }, + ], + get: [ + "GET /projects/{project_id}", + { mediaType: { previews: ["inertia"] } }, + ], + getCard: [ + "GET /projects/columns/cards/{card_id}", + { mediaType: { previews: ["inertia"] } }, + ], + getColumn: [ + "GET /projects/columns/{column_id}", + { mediaType: { previews: ["inertia"] } }, + ], + getPermissionForUser: [ + "GET /projects/{project_id}/collaborators/{username}/permission", + { mediaType: { previews: ["inertia"] } }, + ], + listCards: [ + "GET /projects/columns/{column_id}/cards", + { mediaType: { previews: ["inertia"] } }, + ], + listCollaborators: [ + "GET /projects/{project_id}/collaborators", + { mediaType: { previews: ["inertia"] } }, + ], + listColumns: [ + "GET /projects/{project_id}/columns", + { mediaType: { previews: ["inertia"] } }, + ], + listForOrg: [ + "GET /orgs/{org}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + listForRepo: [ + "GET /repos/{owner}/{repo}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + listForUser: [ + "GET /users/{username}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + moveCard: [ + "POST /projects/columns/cards/{card_id}/moves", + { mediaType: { previews: ["inertia"] } }, + ], + moveColumn: [ + "POST /projects/columns/{column_id}/moves", + { mediaType: { previews: ["inertia"] } }, + ], + removeCollaborator: [ + "DELETE /projects/{project_id}/collaborators/{username}", + { mediaType: { previews: ["inertia"] } }, + ], + update: [ + "PATCH /projects/{project_id}", + { mediaType: { previews: ["inertia"] } }, + ], + updateCard: [ + "PATCH /projects/columns/cards/{card_id}", + { mediaType: { previews: ["inertia"] } }, + ], + updateColumn: [ + "PATCH /projects/columns/{column_id}", + { mediaType: { previews: ["inertia"] } }, + ], + }, + pulls: { + checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + create: ["POST /repos/{owner}/{repo}/pulls"], + createReplyForReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies", + ], + createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + createReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments", + ], + deletePendingReview: [ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", + ], + deleteReviewComment: [ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}", + ], + dismissReview: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals", + ], + get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], + getReview: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", + ], + getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], + list: ["GET /repos/{owner}/{repo}/pulls"], + listCommentsForReview: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", + ], + listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], + listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], + listRequestedReviewers: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", + ], + listReviewComments: [ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", + ], + listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], + listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + removeRequestedReviewers: [ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", + ], + requestReviewers: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", + ], + submitReview: [ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events", + ], + update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], + updateBranch: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch", + { mediaType: { previews: ["lydian"] } }, + ], + updateReview: [ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", + ], + updateReviewComment: [ + "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}", + ], + }, + rateLimit: { get: ["GET /rate_limit"] }, + reactions: { + createForCommitComment: [ + "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + createForIssue: [ + "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + createForIssueComment: [ + "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + createForPullRequestReviewComment: [ + "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + createForTeamDiscussionCommentInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + createForTeamDiscussionInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForCommitComment: [ + "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForIssue: [ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForIssueComment: [ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForPullRequestComment: [ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForTeamDiscussion: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteForTeamDiscussionComment: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + deleteLegacy: [ + "DELETE /reactions/{reaction_id}", + { mediaType: { previews: ["squirrel-girl"] } }, + { + deprecated: "octokit.reactions.deleteLegacy() is deprecated, see https://docs.github.com/v3/reactions/#delete-a-reaction-legacy", + }, + ], + listForCommitComment: [ + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + listForIssue: [ + "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + listForIssueComment: [ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + listForPullRequestReviewComment: [ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + listForTeamDiscussionCommentInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + listForTeamDiscussionInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", + { mediaType: { previews: ["squirrel-girl"] } }, + ], + }, + repos: { + acceptInvitation: ["PATCH /user/repository_invitations/{invitation_id}"], + addAppAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" }, + ], + addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], + addStatusCheckContexts: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" }, + ], + addTeamAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" }, + ], + addUserAccessRestrictions: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" }, + ], + checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], + checkVulnerabilityAlerts: [ + "GET /repos/{owner}/{repo}/vulnerability-alerts", + { mediaType: { previews: ["dorian"] } }, + ], + compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], + createCommitComment: [ + "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments", + ], + createCommitSignatureProtection: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", + { mediaType: { previews: ["zzzax"] } }, + ], + createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], + createDeployKey: ["POST /repos/{owner}/{repo}/keys"], + createDeployment: ["POST /repos/{owner}/{repo}/deployments"], + createDeploymentStatus: [ + "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", + ], + createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], + createForAuthenticatedUser: ["POST /user/repos"], + createFork: ["POST /repos/{owner}/{repo}/forks"], + createInOrg: ["POST /orgs/{org}/repos"], + createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], + createPagesSite: [ + "POST /repos/{owner}/{repo}/pages", + { mediaType: { previews: ["switcheroo"] } }, + ], + createRelease: ["POST /repos/{owner}/{repo}/releases"], + createUsingTemplate: [ + "POST /repos/{template_owner}/{template_repo}/generate", + { mediaType: { previews: ["baptiste"] } }, + ], + createWebhook: ["POST /repos/{owner}/{repo}/hooks"], + declineInvitation: ["DELETE /user/repository_invitations/{invitation_id}"], + delete: ["DELETE /repos/{owner}/{repo}"], + deleteAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions", + ], + deleteAdminBranchProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", + ], + deleteBranchProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection", + ], + deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], + deleteCommitSignatureProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", + { mediaType: { previews: ["zzzax"] } }, + ], + deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], + deleteDeployment: [ + "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}", + ], + deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], + deleteInvitation: [ + "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}", + ], + deletePagesSite: [ + "DELETE /repos/{owner}/{repo}/pages", + { mediaType: { previews: ["switcheroo"] } }, + ], + deletePullRequestReviewProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", + ], + deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], + deleteReleaseAsset: [ + "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}", + ], + deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], + disableAutomatedSecurityFixes: [ + "DELETE /repos/{owner}/{repo}/automated-security-fixes", + { mediaType: { previews: ["london"] } }, + ], + disableVulnerabilityAlerts: [ + "DELETE /repos/{owner}/{repo}/vulnerability-alerts", + { mediaType: { previews: ["dorian"] } }, + ], + downloadArchive: [ + "GET /repos/{owner}/{repo}/zipball/{ref}", + {}, + { renamed: ["repos", "downloadZipballArchive"] }, + ], + downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"], + downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"], + enableAutomatedSecurityFixes: [ + "PUT /repos/{owner}/{repo}/automated-security-fixes", + { mediaType: { previews: ["london"] } }, + ], + enableVulnerabilityAlerts: [ + "PUT /repos/{owner}/{repo}/vulnerability-alerts", + { mediaType: { previews: ["dorian"] } }, + ], + get: ["GET /repos/{owner}/{repo}"], + getAccessRestrictions: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions", + ], + getAdminBranchProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", + ], + getAllStatusCheckContexts: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + ], + getAllTopics: [ + "GET /repos/{owner}/{repo}/topics", + { mediaType: { previews: ["mercy"] } }, + ], + getAppsWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + ], + getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], + getBranchProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection", + ], + getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], + getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], + getCollaboratorPermissionLevel: [ + "GET /repos/{owner}/{repo}/collaborators/{username}/permission", + ], + getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], + getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], + getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], + getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], + getCommitSignatureProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", + { mediaType: { previews: ["zzzax"] } }, + ], + getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], + getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], + getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], + getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], + getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], + getDeploymentStatus: [ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}", + ], + getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], + getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], + getPages: ["GET /repos/{owner}/{repo}/pages"], + getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], + getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], + getPullRequestReviewProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", + ], + getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], + getReadme: ["GET /repos/{owner}/{repo}/readme"], + getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], + getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], + getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], + getStatusChecksProtection: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + ], + getTeamsWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + ], + getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], + getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], + getUsersWithAccessToProtectedBranch: [ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + ], + getViews: ["GET /repos/{owner}/{repo}/traffic/views"], + getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], + getWebhookConfigForRepo: [ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/config", + ], + listBranches: ["GET /repos/{owner}/{repo}/branches"], + listBranchesForHeadCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", + { mediaType: { previews: ["groot"] } }, + ], + listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], + listCommentsForCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", + ], + listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], + listCommitStatusesForRef: [ + "GET /repos/{owner}/{repo}/commits/{ref}/statuses", + ], + listCommits: ["GET /repos/{owner}/{repo}/commits"], + listContributors: ["GET /repos/{owner}/{repo}/contributors"], + listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], + listDeploymentStatuses: [ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", + ], + listDeployments: ["GET /repos/{owner}/{repo}/deployments"], + listForAuthenticatedUser: ["GET /user/repos"], + listForOrg: ["GET /orgs/{org}/repos"], + listForUser: ["GET /users/{username}/repos"], + listForks: ["GET /repos/{owner}/{repo}/forks"], + listInvitations: ["GET /repos/{owner}/{repo}/invitations"], + listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], + listLanguages: ["GET /repos/{owner}/{repo}/languages"], + listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], + listPublic: ["GET /repositories"], + listPullRequestsAssociatedWithCommit: [ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", + { mediaType: { previews: ["groot"] } }, + ], + listReleaseAssets: [ + "GET /repos/{owner}/{repo}/releases/{release_id}/assets", + ], + listReleases: ["GET /repos/{owner}/{repo}/releases"], + listTags: ["GET /repos/{owner}/{repo}/tags"], + listTeams: ["GET /repos/{owner}/{repo}/teams"], + listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], + merge: ["POST /repos/{owner}/{repo}/merges"], + pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], + removeAppAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" }, + ], + removeCollaborator: [ + "DELETE /repos/{owner}/{repo}/collaborators/{username}", + ], + removeStatusCheckContexts: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" }, + ], + removeStatusCheckProtection: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + ], + removeTeamAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" }, + ], + removeUserAccessRestrictions: [ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" }, + ], + replaceAllTopics: [ + "PUT /repos/{owner}/{repo}/topics", + { mediaType: { previews: ["mercy"] } }, + ], + requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], + setAdminBranchProtection: [ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", + ], + setAppAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + {}, + { mapToData: "apps" }, + ], + setStatusCheckContexts: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + {}, + { mapToData: "contexts" }, + ], + setTeamAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + {}, + { mapToData: "teams" }, + ], + setUserAccessRestrictions: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + {}, + { mapToData: "users" }, + ], + testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], + transfer: ["POST /repos/{owner}/{repo}/transfer"], + update: ["PATCH /repos/{owner}/{repo}"], + updateBranchProtection: [ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection", + ], + updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], + updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], + updateInvitation: [ + "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}", + ], + updatePullRequestReviewProtection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", + ], + updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], + updateReleaseAsset: [ + "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}", + ], + updateStatusCheckPotection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + {}, + { renamed: ["repos", "updateStatusCheckProtection"] }, + ], + updateStatusCheckProtection: [ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + ], + updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], + updateWebhookConfigForRepo: [ + "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config", + ], + uploadReleaseAsset: [ + "POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", + { baseUrl: "https://uploads.github.com" }, + ], + }, + search: { + code: ["GET /search/code"], + commits: ["GET /search/commits", { mediaType: { previews: ["cloak"] } }], + issuesAndPullRequests: ["GET /search/issues"], + labels: ["GET /search/labels"], + repos: ["GET /search/repositories"], + topics: ["GET /search/topics", { mediaType: { previews: ["mercy"] } }], + users: ["GET /search/users"], + }, + secretScanning: { + getAlert: [ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}", + ], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}", + ], + }, + teams: { + addOrUpdateMembershipForUserInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}", + ], + addOrUpdateProjectPermissionsInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}", + { mediaType: { previews: ["inertia"] } }, + ], + addOrUpdateRepoPermissionsInOrg: [ + "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", + ], + checkPermissionsForProjectInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/projects/{project_id}", + { mediaType: { previews: ["inertia"] } }, + ], + checkPermissionsForRepoInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", + ], + create: ["POST /orgs/{org}/teams"], + createDiscussionCommentInOrg: [ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", + ], + createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], + deleteDiscussionCommentInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", + ], + deleteDiscussionInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", + ], + deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], + getByName: ["GET /orgs/{org}/teams/{team_slug}"], + getDiscussionCommentInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", + ], + getDiscussionInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", + ], + getMembershipForUserInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/memberships/{username}", + ], + list: ["GET /orgs/{org}/teams"], + listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], + listDiscussionCommentsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", + ], + listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], + listForAuthenticatedUser: ["GET /user/teams"], + listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], + listPendingInvitationsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/invitations", + ], + listProjectsInOrg: [ + "GET /orgs/{org}/teams/{team_slug}/projects", + { mediaType: { previews: ["inertia"] } }, + ], + listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], + removeMembershipForUserInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}", + ], + removeProjectInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}", + ], + removeRepoInOrg: [ + "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", + ], + updateDiscussionCommentInOrg: [ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", + ], + updateDiscussionInOrg: [ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", + ], + updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"], + }, + users: { + addEmailForAuthenticated: ["POST /user/emails"], + block: ["PUT /user/blocks/{username}"], + checkBlocked: ["GET /user/blocks/{username}"], + checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], + checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], + createGpgKeyForAuthenticated: ["POST /user/gpg_keys"], + createPublicSshKeyForAuthenticated: ["POST /user/keys"], + deleteEmailForAuthenticated: ["DELETE /user/emails"], + deleteGpgKeyForAuthenticated: ["DELETE /user/gpg_keys/{gpg_key_id}"], + deletePublicSshKeyForAuthenticated: ["DELETE /user/keys/{key_id}"], + follow: ["PUT /user/following/{username}"], + getAuthenticated: ["GET /user"], + getByUsername: ["GET /users/{username}"], + getContextForUser: ["GET /users/{username}/hovercard"], + getGpgKeyForAuthenticated: ["GET /user/gpg_keys/{gpg_key_id}"], + getPublicSshKeyForAuthenticated: ["GET /user/keys/{key_id}"], + list: ["GET /users"], + listBlockedByAuthenticated: ["GET /user/blocks"], + listEmailsForAuthenticated: ["GET /user/emails"], + listFollowedByAuthenticated: ["GET /user/following"], + listFollowersForAuthenticatedUser: ["GET /user/followers"], + listFollowersForUser: ["GET /users/{username}/followers"], + listFollowingForUser: ["GET /users/{username}/following"], + listGpgKeysForAuthenticated: ["GET /user/gpg_keys"], + listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], + listPublicEmailsForAuthenticated: ["GET /user/public_emails"], + listPublicKeysForUser: ["GET /users/{username}/keys"], + listPublicSshKeysForAuthenticated: ["GET /user/keys"], + setPrimaryEmailVisibilityForAuthenticated: ["PATCH /user/email/visibility"], + unblock: ["DELETE /user/blocks/{username}"], + unfollow: ["DELETE /user/following/{username}"], + updateAuthenticated: ["PATCH /user"], + }, +}; + +const VERSION = "4.4.1"; + +function endpointsToMethods(octokit, endpointsMap) { + const newMethods = {}; + for (const [scope, endpoints] of Object.entries(endpointsMap)) { + for (const [methodName, endpoint] of Object.entries(endpoints)) { + const [route, defaults, decorations] = endpoint; + const [method, url] = route.split(/ /); + const endpointDefaults = Object.assign({ method, url }, defaults); + if (!newMethods[scope]) { + newMethods[scope] = {}; + } + const scopeMethods = newMethods[scope]; + if (decorations) { + scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations); + continue; + } + scopeMethods[methodName] = octokit.request.defaults(endpointDefaults); + } + } + return newMethods; +} +function decorate(octokit, scope, methodName, defaults, decorations) { + const requestWithDefaults = octokit.request.defaults(defaults); + /* istanbul ignore next */ + function withDecorations(...args) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + let options = requestWithDefaults.endpoint.merge(...args); + // There are currently no other decorations than `.mapToData` + if (decorations.mapToData) { + options = Object.assign({}, options, { + data: options[decorations.mapToData], + [decorations.mapToData]: undefined, + }); + return requestWithDefaults(options); + } + if (decorations.renamed) { + const [newScope, newMethodName] = decorations.renamed; + octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`); + } + if (decorations.deprecated) { + octokit.log.warn(decorations.deprecated); + } + if (decorations.renamedParameters) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + const options = requestWithDefaults.endpoint.merge(...args); + for (const [name, alias] of Object.entries(decorations.renamedParameters)) { + if (name in options) { + octokit.log.warn(`"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead`); + if (!(alias in options)) { + options[alias] = options[name]; + } + delete options[name]; + } + } + return requestWithDefaults(options); + } + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + return requestWithDefaults(...args); + } + return Object.assign(withDecorations, requestWithDefaults); +} + +/** + * This plugin is a 1:1 copy of internal @octokit/rest plugins. The primary + * goal is to rebuild @octokit/rest on top of @octokit/core. Once that is + * done, we will remove the registerEndpoints methods and return the methods + * directly as with the other plugins. At that point we will also remove the + * legacy workarounds and deprecations. + * + * See the plan at + * https://github.com/octokit/plugin-rest-endpoint-methods.js/pull/1 + */ +function restEndpointMethods(octokit) { + return endpointsToMethods(octokit, Endpoints); +} +restEndpointMethods.VERSION = VERSION; + +export { restEndpointMethods }; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js.map b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js.map new file mode 100644 index 000000000..a9868d86a --- /dev/null +++ b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/generated/endpoints.js","../dist-src/version.js","../dist-src/endpoints-to-methods.js","../dist-src/index.js"],"sourcesContent":["const Endpoints = {\n actions: {\n addSelectedRepoToOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\",\n ],\n cancelWorkflowRun: [\n \"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\",\n ],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\n \"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\",\n ],\n createRegistrationTokenForOrg: [\n \"POST /orgs/{org}/actions/runners/registration-token\",\n ],\n createRegistrationTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/registration-token\",\n ],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\n \"POST /repos/{owner}/{repo}/actions/runners/remove-token\",\n ],\n createWorkflowDispatch: [\n \"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\",\n ],\n deleteArtifact: [\n \"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\",\n ],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\n \"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\",\n ],\n deleteSelfHostedRunnerFromOrg: [\n \"DELETE /orgs/{org}/actions/runners/{runner_id}\",\n ],\n deleteSelfHostedRunnerFromRepo: [\n \"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\",\n ],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\n \"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\",\n ],\n disableSelectedRepositoryGithubActionsOrganization: [\n \"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\",\n ],\n disableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\",\n ],\n downloadArtifact: [\n \"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\",\n ],\n downloadJobLogsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\",\n ],\n downloadWorkflowRunLogs: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\",\n ],\n enableSelectedRepositoryGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\",\n ],\n enableWorkflow: [\n \"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\",\n ],\n getAllowedActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/selected-actions\",\n ],\n getAllowedActionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\",\n ],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getGithubActionsPermissionsOrganization: [\n \"GET /orgs/{org}/actions/permissions\",\n ],\n getGithubActionsPermissionsRepository: [\n \"GET /repos/{owner}/{repo}/actions/permissions\",\n ],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getRepoPermissions: [\n \"GET /repos/{owner}/{repo}/actions/permissions\",\n {},\n { renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"] },\n ],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\",\n ],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunUsage: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\",\n ],\n getWorkflowUsage: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\",\n ],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listJobsForWorkflowRun: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\",\n ],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\n \"GET /repos/{owner}/{repo}/actions/runners/downloads\",\n ],\n listSelectedReposForOrgSecret: [\n \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\",\n ],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"GET /orgs/{org}/actions/permissions/repositories\",\n ],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\n \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\",\n ],\n listWorkflowRuns: [\n \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\",\n ],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n removeSelectedRepoFromOrgSecret: [\n \"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\",\n ],\n setAllowedActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/selected-actions\",\n ],\n setAllowedActionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\",\n ],\n setGithubActionsPermissionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions\",\n ],\n setGithubActionsPermissionsRepository: [\n \"PUT /repos/{owner}/{repo}/actions/permissions\",\n ],\n setSelectedReposForOrgSecret: [\n \"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\",\n ],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\n \"PUT /orgs/{org}/actions/permissions/repositories\",\n ],\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\n \"DELETE /notifications/threads/{thread_id}/subscription\",\n ],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\n \"GET /notifications/threads/{thread_id}/subscription\",\n ],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\n \"GET /users/{username}/events/orgs/{org}\",\n ],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\n \"GET /users/{username}/received_events/public\",\n ],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\n \"GET /repos/{owner}/{repo}/notifications\",\n ],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\n \"PUT /notifications/threads/{thread_id}/subscription\",\n ],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"],\n },\n apps: {\n addRepoToInstallation: [\n \"PUT /user/installations/{installation_id}/repositories/{repository_id}\",\n ],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createContentAttachment: [\n \"POST /content_references/{content_reference_id}/attachments\",\n { mediaType: { previews: [\"corsair\"] } },\n ],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\n \"POST /app/installations/{installation_id}/access_tokens\",\n ],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\n \"GET /marketplace_listing/accounts/{account_id}\",\n ],\n getSubscriptionPlanForAccountStubbed: [\n \"GET /marketplace_listing/stubbed/accounts/{account_id}\",\n ],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\n \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\",\n ],\n listInstallationReposForAuthenticatedUser: [\n \"GET /user/installations/{installation_id}/repositories\",\n ],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\n \"GET /user/marketplace_purchases/stubbed\",\n ],\n removeRepoFromInstallation: [\n \"DELETE /user/installations/{installation_id}/repositories/{repository_id}\",\n ],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\n \"DELETE /app/installations/{installation_id}/suspended\",\n ],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"],\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\n \"GET /users/{username}/settings/billing/actions\",\n ],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\n \"GET /users/{username}/settings/billing/packages\",\n ],\n getSharedStorageBillingOrg: [\n \"GET /orgs/{org}/settings/billing/shared-storage\",\n ],\n getSharedStorageBillingUser: [\n \"GET /users/{username}/settings/billing/shared-storage\",\n ],\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\n \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\",\n ],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\n \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\",\n ],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestSuite: [\n \"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\",\n ],\n setSuitesPreferences: [\n \"PATCH /repos/{owner}/{repo}/check-suites/preferences\",\n ],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n },\n codeScanning: {\n getAlert: [\n \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\",\n {},\n { renamedParameters: { alert_id: \"alert_number\" } },\n ],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\",\n ],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"],\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\n \"GET /codes_of_conduct\",\n { mediaType: { previews: [\"scarlet-witch\"] } },\n ],\n getConductCode: [\n \"GET /codes_of_conduct/{key}\",\n { mediaType: { previews: [\"scarlet-witch\"] } },\n ],\n getForRepo: [\n \"GET /repos/{owner}/{repo}/community/code_of_conduct\",\n { mediaType: { previews: [\"scarlet-witch\"] } },\n ],\n },\n emojis: { get: [\"GET /emojis\"] },\n enterpriseAdmin: {\n disableSelectedOrganizationGithubActionsEnterprise: [\n \"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\",\n ],\n enableSelectedOrganizationGithubActionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\",\n ],\n getAllowedActionsEnterprise: [\n \"GET /enterprises/{enterprise}/actions/permissions/selected-actions\",\n ],\n getGithubActionsPermissionsEnterprise: [\n \"GET /enterprises/{enterprise}/actions/permissions\",\n ],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\n \"GET /enterprises/{enterprise}/actions/permissions/organizations\",\n ],\n setAllowedActionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\",\n ],\n setGithubActionsPermissionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions\",\n ],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\n \"PUT /enterprises/{enterprise}/actions/permissions/organizations\",\n ],\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"],\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"],\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"],\n },\n interactions: {\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\"GET /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\n \"DELETE /repos/{owner}/{repo}/interaction-limits\",\n ],\n removeRestrictionsForYourPublicRepos: [\"DELETE /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\"PUT /user/interaction-limits\"],\n },\n issues: {\n addAssignees: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\",\n ],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\",\n ],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\",\n ],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\n \"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\",\n ],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\",\n { mediaType: { previews: [\"mockingbird\"] } },\n ],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\n \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\",\n ],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\",\n ],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\",\n ],\n removeAssignees: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\",\n ],\n removeLabel: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\",\n ],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\n \"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\",\n ],\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"],\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\n \"POST /markdown/raw\",\n { headers: { \"content-type\": \"text/plain; charset=utf-8\" } },\n ],\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"],\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n deleteArchiveForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n downloadArchiveForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n getArchiveForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}/archive\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\n \"GET /user/migrations/{migration_id}\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n getStatusForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listForAuthenticatedUser: [\n \"GET /user/migrations\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listForOrg: [\n \"GET /orgs/{org}/migrations\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listReposForOrg: [\n \"GET /orgs/{org}/migrations/{migration_id}/repositories\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n listReposForUser: [\n \"GET /user/migrations/{migration_id}/repositories\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\n \"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n unlockRepoForOrg: [\n \"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\",\n { mediaType: { previews: [\"wyandotte\"] } },\n ],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"],\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\n \"PUT /orgs/{org}/outside_collaborators/{username}\",\n ],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\n \"DELETE /orgs/{org}/outside_collaborators/{username}\",\n ],\n removePublicMembershipForAuthenticatedUser: [\n \"DELETE /orgs/{org}/public_members/{username}\",\n ],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\n \"PUT /orgs/{org}/public_members/{username}\",\n ],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\n \"PATCH /user/memberships/orgs/{org}\",\n ],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"],\n },\n projects: {\n addCollaborator: [\n \"PUT /projects/{project_id}/collaborators/{username}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createCard: [\n \"POST /projects/columns/{column_id}/cards\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createColumn: [\n \"POST /projects/{project_id}/columns\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createForAuthenticatedUser: [\n \"POST /user/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createForOrg: [\n \"POST /orgs/{org}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n createForRepo: [\n \"POST /repos/{owner}/{repo}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n delete: [\n \"DELETE /projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n deleteCard: [\n \"DELETE /projects/columns/cards/{card_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n deleteColumn: [\n \"DELETE /projects/columns/{column_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n get: [\n \"GET /projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n getCard: [\n \"GET /projects/columns/cards/{card_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n getColumn: [\n \"GET /projects/columns/{column_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n getPermissionForUser: [\n \"GET /projects/{project_id}/collaborators/{username}/permission\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listCards: [\n \"GET /projects/columns/{column_id}/cards\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listCollaborators: [\n \"GET /projects/{project_id}/collaborators\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listColumns: [\n \"GET /projects/{project_id}/columns\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listForOrg: [\n \"GET /orgs/{org}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listForRepo: [\n \"GET /repos/{owner}/{repo}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listForUser: [\n \"GET /users/{username}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n moveCard: [\n \"POST /projects/columns/cards/{card_id}/moves\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n moveColumn: [\n \"POST /projects/columns/{column_id}/moves\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n removeCollaborator: [\n \"DELETE /projects/{project_id}/collaborators/{username}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n update: [\n \"PATCH /projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n updateCard: [\n \"PATCH /projects/columns/cards/{card_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n updateColumn: [\n \"PATCH /projects/columns/{column_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\",\n ],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n ],\n deletePendingReview: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\",\n ],\n deleteReviewComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\",\n ],\n dismissReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\",\n ],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\",\n ],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\",\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n ],\n listReviewComments: [\n \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\",\n ],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\n \"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n ],\n requestReviewers: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\",\n ],\n submitReview: [\n \"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\",\n ],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\",\n { mediaType: { previews: [\"lydian\"] } },\n ],\n updateReview: [\n \"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\",\n ],\n updateReviewComment: [\n \"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\",\n ],\n },\n rateLimit: { get: [\"GET /rate_limit\"] },\n reactions: {\n createForCommitComment: [\n \"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForIssue: [\n \"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForIssueComment: [\n \"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForPullRequestReviewComment: [\n \"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForTeamDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n createForTeamDiscussionInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForCommitComment: [\n \"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForIssue: [\n \"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForIssueComment: [\n \"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForPullRequestComment: [\n \"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForTeamDiscussion: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteForTeamDiscussionComment: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n deleteLegacy: [\n \"DELETE /reactions/{reaction_id}\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n {\n deprecated: \"octokit.reactions.deleteLegacy() is deprecated, see https://docs.github.com/v3/reactions/#delete-a-reaction-legacy\",\n },\n ],\n listForCommitComment: [\n \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForIssue: [\n \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForIssueComment: [\n \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForPullRequestReviewComment: [\n \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForTeamDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n listForTeamDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\",\n { mediaType: { previews: [\"squirrel-girl\"] } },\n ],\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" },\n ],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" },\n ],\n addTeamAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" },\n ],\n addUserAccessRestrictions: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" },\n ],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\n \"GET /repos/{owner}/{repo}/vulnerability-alerts\",\n { mediaType: { previews: [\"dorian\"] } },\n ],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n createCommitComment: [\n \"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n ],\n createCommitSignatureProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\",\n { mediaType: { previews: [\"zzzax\"] } },\n ],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\n \"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\",\n ],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\n \"POST /repos/{owner}/{repo}/pages\",\n { mediaType: { previews: [\"switcheroo\"] } },\n ],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createUsingTemplate: [\n \"POST /repos/{template_owner}/{template_repo}/generate\",\n { mediaType: { previews: [\"baptiste\"] } },\n ],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\",\n ],\n deleteAdminBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\",\n ],\n deleteBranchProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\",\n ],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\",\n { mediaType: { previews: [\"zzzax\"] } },\n ],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\n \"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\",\n ],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\n \"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\",\n ],\n deletePagesSite: [\n \"DELETE /repos/{owner}/{repo}/pages\",\n { mediaType: { previews: [\"switcheroo\"] } },\n ],\n deletePullRequestReviewProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\",\n ],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\n \"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\",\n ],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\n \"DELETE /repos/{owner}/{repo}/automated-security-fixes\",\n { mediaType: { previews: [\"london\"] } },\n ],\n disableVulnerabilityAlerts: [\n \"DELETE /repos/{owner}/{repo}/vulnerability-alerts\",\n { mediaType: { previews: [\"dorian\"] } },\n ],\n downloadArchive: [\n \"GET /repos/{owner}/{repo}/zipball/{ref}\",\n {},\n { renamed: [\"repos\", \"downloadZipballArchive\"] },\n ],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\n \"PUT /repos/{owner}/{repo}/automated-security-fixes\",\n { mediaType: { previews: [\"london\"] } },\n ],\n enableVulnerabilityAlerts: [\n \"PUT /repos/{owner}/{repo}/vulnerability-alerts\",\n { mediaType: { previews: [\"dorian\"] } },\n ],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\",\n ],\n getAdminBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\",\n ],\n getAllStatusCheckContexts: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n ],\n getAllTopics: [\n \"GET /repos/{owner}/{repo}/topics\",\n { mediaType: { previews: [\"mercy\"] } },\n ],\n getAppsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n ],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection\",\n ],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\n \"GET /repos/{owner}/{repo}/collaborators/{username}/permission\",\n ],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\",\n { mediaType: { previews: [\"zzzax\"] } },\n ],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\",\n ],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\",\n ],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n ],\n getTeamsWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n ],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\n \"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n ],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\n \"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\",\n ],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\",\n { mediaType: { previews: [\"groot\"] } },\n ],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\",\n ],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\n \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\",\n ],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\n \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\",\n ],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\n \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\",\n { mediaType: { previews: [\"groot\"] } },\n ],\n listReleaseAssets: [\n \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\",\n ],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n removeAppAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" },\n ],\n removeCollaborator: [\n \"DELETE /repos/{owner}/{repo}/collaborators/{username}\",\n ],\n removeStatusCheckContexts: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" },\n ],\n removeStatusCheckProtection: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n ],\n removeTeamAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" },\n ],\n removeUserAccessRestrictions: [\n \"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" },\n ],\n replaceAllTopics: [\n \"PUT /repos/{owner}/{repo}/topics\",\n { mediaType: { previews: [\"mercy\"] } },\n ],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\n \"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\",\n ],\n setAppAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\",\n {},\n { mapToData: \"apps\" },\n ],\n setStatusCheckContexts: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\",\n {},\n { mapToData: \"contexts\" },\n ],\n setTeamAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\",\n {},\n { mapToData: \"teams\" },\n ],\n setUserAccessRestrictions: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\",\n {},\n { mapToData: \"users\" },\n ],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\n \"PUT /repos/{owner}/{repo}/branches/{branch}/protection\",\n ],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\n \"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\",\n ],\n updatePullRequestReviewProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\",\n ],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\n \"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\",\n ],\n updateStatusCheckPotection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n {},\n { renamed: [\"repos\", \"updateStatusCheckProtection\"] },\n ],\n updateStatusCheckProtection: [\n \"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\",\n ],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\n \"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\",\n ],\n uploadReleaseAsset: [\n \"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\",\n { baseUrl: \"https://uploads.github.com\" },\n ],\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\", { mediaType: { previews: [\"cloak\"] } }],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\", { mediaType: { previews: [\"mercy\"] } }],\n users: [\"GET /search/users\"],\n },\n secretScanning: {\n getAlert: [\n \"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\",\n ],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n updateAlert: [\n \"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\",\n ],\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\",\n ],\n addOrUpdateProjectPermissionsInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n addOrUpdateRepoPermissionsInOrg: [\n \"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\",\n ],\n checkPermissionsForProjectInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n checkPermissionsForRepoInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\",\n ],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\n \"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n ],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\",\n ],\n deleteDiscussionInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\",\n ],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\",\n ],\n getDiscussionInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\",\n ],\n getMembershipForUserInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\",\n ],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\",\n ],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/invitations\",\n ],\n listProjectsInOrg: [\n \"GET /orgs/{org}/teams/{team_slug}/projects\",\n { mediaType: { previews: [\"inertia\"] } },\n ],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\",\n ],\n removeProjectInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\",\n ],\n removeRepoInOrg: [\n \"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\",\n ],\n updateDiscussionCommentInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\",\n ],\n updateDiscussionInOrg: [\n \"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\",\n ],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"],\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"],\n },\n};\nexport default Endpoints;\n","export const VERSION = \"4.4.1\";\n","export function endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({ method, url }, defaults);\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n const scopeMethods = newMethods[scope];\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n return newMethods;\n}\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args);\n // There are currently no other decorations than `.mapToData`\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined,\n });\n return requestWithDefaults(options);\n }\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n delete options[name];\n }\n }\n return requestWithDefaults(options);\n }\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n return requestWithDefaults(...args);\n }\n return Object.assign(withDecorations, requestWithDefaults);\n}\n","import ENDPOINTS from \"./generated/endpoints\";\nimport { VERSION } from \"./version\";\nimport { endpointsToMethods } from \"./endpoints-to-methods\";\n/**\n * This plugin is a 1:1 copy of internal @octokit/rest plugins. The primary\n * goal is to rebuild @octokit/rest on top of @octokit/core. Once that is\n * done, we will remove the registerEndpoints methods and return the methods\n * directly as with the other plugins. At that point we will also remove the\n * legacy workarounds and deprecations.\n *\n * See the plan at\n * https://github.com/octokit/plugin-rest-endpoint-methods.js/pull/1\n */\nexport function restEndpointMethods(octokit) {\n return endpointsToMethods(octokit, ENDPOINTS);\n}\nrestEndpointMethods.VERSION = VERSION;\n"],"names":["ENDPOINTS"],"mappings":"AAAA,MAAM,SAAS,GAAG;AAClB,IAAI,OAAO,EAAE;AACb,QAAQ,0BAA0B,EAAE;AACpC,YAAY,4EAA4E;AACxF,SAAS;AACT,QAAQ,iBAAiB,EAAE;AAC3B,YAAY,yDAAyD;AACrE,SAAS;AACT,QAAQ,uBAAuB,EAAE,CAAC,+CAA+C,CAAC;AAClF,QAAQ,wBAAwB,EAAE;AAClC,YAAY,yDAAyD;AACrE,SAAS;AACT,QAAQ,6BAA6B,EAAE;AACvC,YAAY,qDAAqD;AACjE,SAAS;AACT,QAAQ,8BAA8B,EAAE;AACxC,YAAY,+DAA+D;AAC3E,SAAS;AACT,QAAQ,uBAAuB,EAAE,CAAC,+CAA+C,CAAC;AAClF,QAAQ,wBAAwB,EAAE;AAClC,YAAY,yDAAyD;AACrE,SAAS;AACT,QAAQ,sBAAsB,EAAE;AAChC,YAAY,uEAAuE;AACnF,SAAS;AACT,QAAQ,cAAc,EAAE;AACxB,YAAY,8DAA8D;AAC1E,SAAS;AACT,QAAQ,eAAe,EAAE,CAAC,kDAAkD,CAAC;AAC7E,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,4DAA4D;AACxE,SAAS;AACT,QAAQ,6BAA6B,EAAE;AACvC,YAAY,gDAAgD;AAC5D,SAAS;AACT,QAAQ,8BAA8B,EAAE;AACxC,YAAY,0DAA0D;AACtE,SAAS;AACT,QAAQ,iBAAiB,EAAE,CAAC,oDAAoD,CAAC;AACjF,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,yDAAyD;AACrE,SAAS;AACT,QAAQ,kDAAkD,EAAE;AAC5D,YAAY,qEAAqE;AACjF,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,mEAAmE;AAC/E,SAAS;AACT,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,4EAA4E;AACxF,SAAS;AACT,QAAQ,6BAA6B,EAAE;AACvC,YAAY,sDAAsD;AAClE,SAAS;AACT,QAAQ,uBAAuB,EAAE;AACjC,YAAY,sDAAsD;AAClE,SAAS;AACT,QAAQ,iDAAiD,EAAE;AAC3D,YAAY,kEAAkE;AAC9E,SAAS;AACT,QAAQ,cAAc,EAAE;AACxB,YAAY,kEAAkE;AAC9E,SAAS;AACT,QAAQ,6BAA6B,EAAE;AACvC,YAAY,sDAAsD;AAClE,SAAS;AACT,QAAQ,2BAA2B,EAAE;AACrC,YAAY,gEAAgE;AAC5E,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,2DAA2D,CAAC;AAClF,QAAQ,uCAAuC,EAAE;AACjD,YAAY,qCAAqC;AACjD,SAAS;AACT,QAAQ,qCAAqC,EAAE;AAC/C,YAAY,+CAA+C;AAC3D,SAAS;AACT,QAAQ,oBAAoB,EAAE,CAAC,iDAAiD,CAAC;AACjF,QAAQ,eAAe,EAAE,CAAC,4CAA4C,CAAC;AACvE,QAAQ,YAAY,EAAE,CAAC,+CAA+C,CAAC;AACvE,QAAQ,kBAAkB,EAAE;AAC5B,YAAY,+CAA+C;AAC3D,YAAY,EAAE;AACd,YAAY,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,uCAAuC,CAAC,EAAE;AAC7E,SAAS;AACT,QAAQ,gBAAgB,EAAE,CAAC,sDAAsD,CAAC;AAClF,QAAQ,aAAa,EAAE,CAAC,yDAAyD,CAAC;AAClF,QAAQ,yBAAyB,EAAE,CAAC,6CAA6C,CAAC;AAClF,QAAQ,0BAA0B,EAAE;AACpC,YAAY,uDAAuD;AACnE,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,2DAA2D,CAAC;AAClF,QAAQ,cAAc,EAAE,CAAC,iDAAiD,CAAC;AAC3E,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,kEAAkE;AAC9E,SAAS;AACT,QAAQ,oBAAoB,EAAE,CAAC,6CAA6C,CAAC;AAC7E,QAAQ,sBAAsB,EAAE;AAChC,YAAY,sDAAsD;AAClE,SAAS;AACT,QAAQ,cAAc,EAAE,CAAC,iCAAiC,CAAC;AAC3D,QAAQ,eAAe,EAAE,CAAC,2CAA2C,CAAC;AACtE,QAAQ,iBAAiB,EAAE,CAAC,6CAA6C,CAAC;AAC1E,QAAQ,4BAA4B,EAAE,CAAC,2CAA2C,CAAC;AACnF,QAAQ,6BAA6B,EAAE;AACvC,YAAY,qDAAqD;AACjE,SAAS;AACT,QAAQ,6BAA6B,EAAE;AACvC,YAAY,4DAA4D;AACxE,SAAS;AACT,QAAQ,wDAAwD,EAAE;AAClE,YAAY,kDAAkD;AAC9D,SAAS;AACT,QAAQ,2BAA2B,EAAE,CAAC,iCAAiC,CAAC;AACxE,QAAQ,4BAA4B,EAAE,CAAC,2CAA2C,CAAC;AACnF,QAAQ,wBAAwB,EAAE;AAClC,YAAY,2DAA2D;AACvE,SAAS;AACT,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,gEAAgE;AAC5E,SAAS;AACT,QAAQ,uBAAuB,EAAE,CAAC,wCAAwC,CAAC;AAC3E,QAAQ,aAAa,EAAE,CAAC,wDAAwD,CAAC;AACjF,QAAQ,+BAA+B,EAAE;AACzC,YAAY,+EAA+E;AAC3F,SAAS;AACT,QAAQ,6BAA6B,EAAE;AACvC,YAAY,sDAAsD;AAClE,SAAS;AACT,QAAQ,2BAA2B,EAAE;AACrC,YAAY,gEAAgE;AAC5E,SAAS;AACT,QAAQ,uCAAuC,EAAE;AACjD,YAAY,qCAAqC;AACjD,SAAS;AACT,QAAQ,qCAAqC,EAAE;AAC/C,YAAY,+CAA+C;AAC3D,SAAS;AACT,QAAQ,4BAA4B,EAAE;AACtC,YAAY,4DAA4D;AACxE,SAAS;AACT,QAAQ,uDAAuD,EAAE;AACjE,YAAY,kDAAkD;AAC9D,SAAS;AACT,KAAK;AACL,IAAI,QAAQ,EAAE;AACd,QAAQ,qCAAqC,EAAE,CAAC,kCAAkC,CAAC;AACnF,QAAQ,sBAAsB,EAAE,CAAC,2CAA2C,CAAC;AAC7E,QAAQ,wBAAwB,EAAE;AAClC,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,QAAQ,EAAE,CAAC,YAAY,CAAC;AAChC,QAAQ,mBAAmB,EAAE,CAAC,wCAAwC,CAAC;AACvE,QAAQ,SAAS,EAAE,CAAC,wCAAwC,CAAC;AAC7D,QAAQ,yCAAyC,EAAE;AACnD,YAAY,qDAAqD;AACjE,SAAS;AACT,QAAQ,8BAA8B,EAAE,CAAC,8BAA8B,CAAC;AACxE,QAAQ,qCAAqC,EAAE,CAAC,oBAAoB,CAAC;AACrE,QAAQ,iCAAiC,EAAE;AAC3C,YAAY,yCAAyC;AACrD,SAAS;AACT,QAAQ,gBAAgB,EAAE,CAAC,aAAa,CAAC;AACzC,QAAQ,8BAA8B,EAAE,CAAC,qCAAqC,CAAC;AAC/E,QAAQ,uBAAuB,EAAE,CAAC,qCAAqC,CAAC;AACxE,QAAQ,mBAAmB,EAAE,CAAC,wBAAwB,CAAC;AACvD,QAAQ,yBAAyB,EAAE,CAAC,uCAAuC,CAAC;AAC5E,QAAQ,+BAA+B,EAAE;AACzC,YAAY,8CAA8C;AAC1D,SAAS;AACT,QAAQ,cAAc,EAAE,CAAC,kCAAkC,CAAC;AAC5D,QAAQ,yCAAyC,EAAE;AACnD,YAAY,yCAAyC;AACrD,SAAS;AACT,QAAQ,mCAAmC,EAAE,CAAC,mBAAmB,CAAC;AAClE,QAAQ,sBAAsB,EAAE,CAAC,+BAA+B,CAAC;AACjE,QAAQ,sBAAsB,EAAE,CAAC,qCAAqC,CAAC;AACvE,QAAQ,qBAAqB,EAAE,CAAC,sCAAsC,CAAC;AACvE,QAAQ,oCAAoC,EAAE,CAAC,yBAAyB,CAAC;AACzE,QAAQ,mBAAmB,EAAE,CAAC,uCAAuC,CAAC;AACtE,QAAQ,uBAAuB,EAAE,CAAC,oBAAoB,CAAC;AACvD,QAAQ,2BAA2B,EAAE,CAAC,yCAAyC,CAAC;AAChF,QAAQ,gBAAgB,EAAE,CAAC,0CAA0C,CAAC;AACtE,QAAQ,mBAAmB,EAAE,CAAC,wCAAwC,CAAC;AACvE,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,qDAAqD;AACjE,SAAS;AACT,QAAQ,4BAA4B,EAAE,CAAC,kCAAkC,CAAC;AAC1E,QAAQ,8BAA8B,EAAE,CAAC,qCAAqC,CAAC;AAC/E,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,wEAAwE;AACpF,SAAS;AACT,QAAQ,UAAU,EAAE,CAAC,sCAAsC,CAAC;AAC5D,QAAQ,uBAAuB,EAAE;AACjC,YAAY,6DAA6D;AACzE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,kBAAkB,EAAE,CAAC,wCAAwC,CAAC;AACtE,QAAQ,6BAA6B,EAAE;AACvC,YAAY,yDAAyD;AACrE,SAAS;AACT,QAAQ,mBAAmB,EAAE,CAAC,wCAAwC,CAAC;AACvE,QAAQ,kBAAkB,EAAE,CAAC,6CAA6C,CAAC;AAC3E,QAAQ,WAAW,EAAE,CAAC,wCAAwC,CAAC;AAC/D,QAAQ,gBAAgB,EAAE,CAAC,UAAU,CAAC;AACtC,QAAQ,SAAS,EAAE,CAAC,sBAAsB,CAAC;AAC3C,QAAQ,eAAe,EAAE,CAAC,0CAA0C,CAAC;AACrE,QAAQ,kBAAkB,EAAE,CAAC,8BAA8B,CAAC;AAC5D,QAAQ,mBAAmB,EAAE,CAAC,wCAAwC,CAAC;AACvE,QAAQ,6BAA6B,EAAE;AACvC,YAAY,gDAAgD;AAC5D,SAAS;AACT,QAAQ,oCAAoC,EAAE;AAC9C,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,mBAAmB,EAAE,CAAC,oCAAoC,CAAC;AACnE,QAAQ,sBAAsB,EAAE,CAAC,sBAAsB,CAAC;AACxD,QAAQ,mBAAmB,EAAE,CAAC,mDAAmD,CAAC;AAClF,QAAQ,0BAA0B,EAAE;AACpC,YAAY,2DAA2D;AACvE,SAAS;AACT,QAAQ,yCAAyC,EAAE;AACnD,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,iBAAiB,EAAE,CAAC,wBAAwB,CAAC;AACrD,QAAQ,qCAAqC,EAAE,CAAC,yBAAyB,CAAC;AAC1E,QAAQ,SAAS,EAAE,CAAC,gCAAgC,CAAC;AACrD,QAAQ,gBAAgB,EAAE,CAAC,wCAAwC,CAAC;AACpE,QAAQ,iCAAiC,EAAE,CAAC,gCAAgC,CAAC;AAC7E,QAAQ,qCAAqC,EAAE,CAAC,iCAAiC,CAAC;AAClF,QAAQ,4CAA4C,EAAE;AACtD,YAAY,yCAAyC;AACrD,SAAS;AACT,QAAQ,0BAA0B,EAAE;AACpC,YAAY,2EAA2E;AACvF,SAAS;AACT,QAAQ,UAAU,EAAE,CAAC,uCAAuC,CAAC;AAC7D,QAAQ,6BAA6B,EAAE,CAAC,4BAA4B,CAAC;AACrE,QAAQ,mBAAmB,EAAE,CAAC,oDAAoD,CAAC;AACnF,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,uDAAuD;AACnE,SAAS;AACT,QAAQ,yBAAyB,EAAE,CAAC,wBAAwB,CAAC;AAC7D,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,0BAA0B,EAAE,CAAC,0CAA0C,CAAC;AAChF,QAAQ,2BAA2B,EAAE;AACrC,YAAY,gDAAgD;AAC5D,SAAS;AACT,QAAQ,2BAA2B,EAAE,CAAC,2CAA2C,CAAC;AAClF,QAAQ,4BAA4B,EAAE;AACtC,YAAY,iDAAiD;AAC7D,SAAS;AACT,QAAQ,0BAA0B,EAAE;AACpC,YAAY,iDAAiD;AAC7D,SAAS;AACT,QAAQ,2BAA2B,EAAE;AACrC,YAAY,uDAAuD;AACnE,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,MAAM,EAAE,CAAC,uCAAuC,CAAC;AACzD,QAAQ,WAAW,EAAE,CAAC,yCAAyC,CAAC;AAChE,QAAQ,GAAG,EAAE,CAAC,qDAAqD,CAAC;AACpE,QAAQ,QAAQ,EAAE,CAAC,yDAAyD,CAAC;AAC7E,QAAQ,eAAe,EAAE;AACzB,YAAY,iEAAiE;AAC7E,SAAS;AACT,QAAQ,UAAU,EAAE,CAAC,oDAAoD,CAAC;AAC1E,QAAQ,YAAY,EAAE;AACtB,YAAY,oEAAoE;AAChF,SAAS;AACT,QAAQ,gBAAgB,EAAE,CAAC,sDAAsD,CAAC;AAClF,QAAQ,cAAc,EAAE;AACxB,YAAY,oEAAoE;AAChF,SAAS;AACT,QAAQ,oBAAoB,EAAE;AAC9B,YAAY,sDAAsD;AAClE,SAAS;AACT,QAAQ,MAAM,EAAE,CAAC,uDAAuD,CAAC;AACzE,KAAK;AACL,IAAI,YAAY,EAAE;AAClB,QAAQ,QAAQ,EAAE;AAClB,YAAY,+DAA+D;AAC3E,YAAY,EAAE;AACd,YAAY,EAAE,iBAAiB,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE;AAC/D,SAAS;AACT,QAAQ,iBAAiB,EAAE,CAAC,gDAAgD,CAAC;AAC7E,QAAQ,kBAAkB,EAAE,CAAC,kDAAkD,CAAC;AAChF,QAAQ,WAAW,EAAE;AACrB,YAAY,iEAAiE;AAC7E,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,iDAAiD,CAAC;AACxE,KAAK;AACL,IAAI,cAAc,EAAE;AACpB,QAAQ,oBAAoB,EAAE;AAC9B,YAAY,uBAAuB;AACnC,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,cAAc,EAAE;AACxB,YAAY,6BAA6B;AACzC,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,UAAU,EAAE;AACpB,YAAY,qDAAqD;AACjE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE;AACpC,IAAI,eAAe,EAAE;AACrB,QAAQ,kDAAkD,EAAE;AAC5D,YAAY,6EAA6E;AACzF,SAAS;AACT,QAAQ,iDAAiD,EAAE;AAC3D,YAAY,0EAA0E;AACtF,SAAS;AACT,QAAQ,2BAA2B,EAAE;AACrC,YAAY,oEAAoE;AAChF,SAAS;AACT,QAAQ,qCAAqC,EAAE;AAC/C,YAAY,mDAAmD;AAC/D,SAAS;AACT,QAAQ,uDAAuD,EAAE;AACjE,YAAY,iEAAiE;AAC7E,SAAS;AACT,QAAQ,2BAA2B,EAAE;AACrC,YAAY,oEAAoE;AAChF,SAAS;AACT,QAAQ,qCAAqC,EAAE;AAC/C,YAAY,mDAAmD;AAC/D,SAAS;AACT,QAAQ,sDAAsD,EAAE;AAChE,YAAY,iEAAiE;AAC7E,SAAS;AACT,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,cAAc,EAAE,CAAC,2BAA2B,CAAC;AACrD,QAAQ,MAAM,EAAE,CAAC,aAAa,CAAC;AAC/B,QAAQ,aAAa,EAAE,CAAC,gCAAgC,CAAC;AACzD,QAAQ,MAAM,EAAE,CAAC,yBAAyB,CAAC;AAC3C,QAAQ,aAAa,EAAE,CAAC,+CAA+C,CAAC;AACxE,QAAQ,IAAI,EAAE,CAAC,6BAA6B,CAAC;AAC7C,QAAQ,GAAG,EAAE,CAAC,sBAAsB,CAAC;AACrC,QAAQ,UAAU,EAAE,CAAC,4CAA4C,CAAC;AAClE,QAAQ,WAAW,EAAE,CAAC,4BAA4B,CAAC;AACnD,QAAQ,IAAI,EAAE,CAAC,YAAY,CAAC;AAC5B,QAAQ,YAAY,EAAE,CAAC,+BAA+B,CAAC;AACvD,QAAQ,WAAW,EAAE,CAAC,8BAA8B,CAAC;AACrD,QAAQ,WAAW,EAAE,CAAC,6BAA6B,CAAC;AACpD,QAAQ,SAAS,EAAE,CAAC,4BAA4B,CAAC;AACjD,QAAQ,UAAU,EAAE,CAAC,mBAAmB,CAAC;AACzC,QAAQ,WAAW,EAAE,CAAC,oBAAoB,CAAC;AAC3C,QAAQ,IAAI,EAAE,CAAC,2BAA2B,CAAC;AAC3C,QAAQ,MAAM,EAAE,CAAC,8BAA8B,CAAC;AAChD,QAAQ,MAAM,EAAE,CAAC,wBAAwB,CAAC;AAC1C,QAAQ,aAAa,EAAE,CAAC,8CAA8C,CAAC;AACvE,KAAK;AACL,IAAI,GAAG,EAAE;AACT,QAAQ,UAAU,EAAE,CAAC,sCAAsC,CAAC;AAC5D,QAAQ,YAAY,EAAE,CAAC,wCAAwC,CAAC;AAChE,QAAQ,SAAS,EAAE,CAAC,qCAAqC,CAAC;AAC1D,QAAQ,SAAS,EAAE,CAAC,qCAAqC,CAAC;AAC1D,QAAQ,UAAU,EAAE,CAAC,sCAAsC,CAAC;AAC5D,QAAQ,SAAS,EAAE,CAAC,6CAA6C,CAAC;AAClE,QAAQ,OAAO,EAAE,CAAC,gDAAgD,CAAC;AACnE,QAAQ,SAAS,EAAE,CAAC,oDAAoD,CAAC;AACzE,QAAQ,MAAM,EAAE,CAAC,yCAAyC,CAAC;AAC3D,QAAQ,MAAM,EAAE,CAAC,8CAA8C,CAAC;AAChE,QAAQ,OAAO,EAAE,CAAC,gDAAgD,CAAC;AACnE,QAAQ,gBAAgB,EAAE,CAAC,mDAAmD,CAAC;AAC/E,QAAQ,SAAS,EAAE,CAAC,4CAA4C,CAAC;AACjE,KAAK;AACL,IAAI,SAAS,EAAE;AACf,QAAQ,eAAe,EAAE,CAAC,0BAA0B,CAAC;AACrD,QAAQ,WAAW,EAAE,CAAC,iCAAiC,CAAC;AACxD,KAAK;AACL,IAAI,YAAY,EAAE;AAClB,QAAQ,qBAAqB,EAAE,CAAC,oCAAoC,CAAC;AACrE,QAAQ,sBAAsB,EAAE,CAAC,8CAA8C,CAAC;AAChF,QAAQ,iCAAiC,EAAE,CAAC,8BAA8B,CAAC;AAC3E,QAAQ,wBAAwB,EAAE,CAAC,uCAAuC,CAAC;AAC3E,QAAQ,yBAAyB,EAAE;AACnC,YAAY,iDAAiD;AAC7D,SAAS;AACT,QAAQ,oCAAoC,EAAE,CAAC,iCAAiC,CAAC;AACjF,QAAQ,qBAAqB,EAAE,CAAC,oCAAoC,CAAC;AACrE,QAAQ,sBAAsB,EAAE,CAAC,8CAA8C,CAAC;AAChF,QAAQ,iCAAiC,EAAE,CAAC,8BAA8B,CAAC;AAC3E,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,YAAY,EAAE;AACtB,YAAY,4DAA4D;AACxE,SAAS;AACT,QAAQ,SAAS,EAAE,CAAC,yDAAyD,CAAC;AAC9E,QAAQ,sBAAsB,EAAE,CAAC,gDAAgD,CAAC;AAClF,QAAQ,MAAM,EAAE,CAAC,mCAAmC,CAAC;AACrD,QAAQ,aAAa,EAAE;AACvB,YAAY,2DAA2D;AACvE,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,mCAAmC,CAAC;AAC1D,QAAQ,eAAe,EAAE,CAAC,uCAAuC,CAAC;AAClE,QAAQ,aAAa,EAAE;AACvB,YAAY,2DAA2D;AACvE,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,4CAA4C,CAAC;AACnE,QAAQ,eAAe,EAAE;AACzB,YAAY,4DAA4D;AACxE,SAAS;AACT,QAAQ,GAAG,EAAE,CAAC,iDAAiD,CAAC;AAChE,QAAQ,UAAU,EAAE,CAAC,wDAAwD,CAAC;AAC9E,QAAQ,QAAQ,EAAE,CAAC,oDAAoD,CAAC;AACxE,QAAQ,QAAQ,EAAE,CAAC,yCAAyC,CAAC;AAC7D,QAAQ,YAAY,EAAE,CAAC,yDAAyD,CAAC;AACjF,QAAQ,IAAI,EAAE,CAAC,aAAa,CAAC;AAC7B,QAAQ,aAAa,EAAE,CAAC,qCAAqC,CAAC;AAC9D,QAAQ,YAAY,EAAE,CAAC,0DAA0D,CAAC;AAClF,QAAQ,mBAAmB,EAAE,CAAC,2CAA2C,CAAC;AAC1E,QAAQ,UAAU,EAAE,CAAC,wDAAwD,CAAC;AAC9E,QAAQ,iBAAiB,EAAE,CAAC,yCAAyC,CAAC;AACtE,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,0DAA0D;AACtE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE;AACxD,SAAS;AACT,QAAQ,wBAAwB,EAAE,CAAC,kBAAkB,CAAC;AACtD,QAAQ,UAAU,EAAE,CAAC,wBAAwB,CAAC;AAC9C,QAAQ,WAAW,EAAE,CAAC,kCAAkC,CAAC;AACzD,QAAQ,sBAAsB,EAAE;AAChC,YAAY,gEAAgE;AAC5E,SAAS;AACT,QAAQ,iBAAiB,EAAE,CAAC,kCAAkC,CAAC;AAC/D,QAAQ,iBAAiB,EAAE;AAC3B,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,cAAc,EAAE,CAAC,sCAAsC,CAAC;AAChE,QAAQ,IAAI,EAAE,CAAC,sDAAsD,CAAC;AACtE,QAAQ,eAAe,EAAE;AACzB,YAAY,2DAA2D;AACvE,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,8DAA8D;AAC1E,SAAS;AACT,QAAQ,WAAW,EAAE;AACrB,YAAY,kEAAkE;AAC9E,SAAS;AACT,QAAQ,SAAS,EAAE,CAAC,wDAAwD,CAAC;AAC7E,QAAQ,MAAM,EAAE,CAAC,yDAAyD,CAAC;AAC3E,QAAQ,MAAM,EAAE,CAAC,mDAAmD,CAAC;AACrE,QAAQ,aAAa,EAAE,CAAC,0DAA0D,CAAC;AACnF,QAAQ,WAAW,EAAE,CAAC,2CAA2C,CAAC;AAClE,QAAQ,eAAe,EAAE;AACzB,YAAY,2DAA2D;AACvE,SAAS;AACT,KAAK;AACL,IAAI,QAAQ,EAAE;AACd,QAAQ,GAAG,EAAE,CAAC,yBAAyB,CAAC;AACxC,QAAQ,kBAAkB,EAAE,CAAC,eAAe,CAAC;AAC7C,QAAQ,UAAU,EAAE,CAAC,mCAAmC,CAAC;AACzD,KAAK;AACL,IAAI,QAAQ,EAAE;AACd,QAAQ,MAAM,EAAE,CAAC,gBAAgB,CAAC;AAClC,QAAQ,SAAS,EAAE;AACnB,YAAY,oBAAoB;AAChC,YAAY,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,2BAA2B,EAAE,EAAE;AACxE,SAAS;AACT,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC;AAC1B,QAAQ,UAAU,EAAE,CAAC,cAAc,CAAC;AACpC,QAAQ,MAAM,EAAE,CAAC,UAAU,CAAC;AAC5B,QAAQ,IAAI,EAAE,CAAC,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,UAAU,EAAE;AAChB,QAAQ,YAAY,EAAE,CAAC,qCAAqC,CAAC;AAC7D,QAAQ,iCAAiC,EAAE;AAC3C,YAAY,gDAAgD;AAC5D,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,sDAAsD;AAClE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,mDAAmD;AAC/D,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,8BAA8B,EAAE;AACxC,YAAY,6CAA6C;AACzD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,gBAAgB,EAAE,CAAC,0CAA0C,CAAC;AACtE,QAAQ,eAAe,EAAE,CAAC,kCAAkC,CAAC;AAC7D,QAAQ,aAAa,EAAE,CAAC,8CAA8C,CAAC;AACvE,QAAQ,6BAA6B,EAAE;AACvC,YAAY,qCAAqC;AACjD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,2CAA2C;AACvD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,wBAAwB,EAAE;AAClC,YAAY,sBAAsB;AAClC,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,UAAU,EAAE;AACpB,YAAY,4BAA4B;AACxC,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,wDAAwD;AACpE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,kDAAkD;AAC9D,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,eAAe,EAAE,CAAC,wDAAwD,CAAC;AACnF,QAAQ,gBAAgB,EAAE,CAAC,wCAAwC,CAAC;AACpE,QAAQ,yBAAyB,EAAE,CAAC,uBAAuB,CAAC;AAC5D,QAAQ,WAAW,EAAE,CAAC,6BAA6B,CAAC;AACpD,QAAQ,WAAW,EAAE,CAAC,kCAAkC,CAAC;AACzD,QAAQ,8BAA8B,EAAE;AACxC,YAAY,+DAA+D;AAC3E,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,qEAAqE;AACjF,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;AACtD,SAAS;AACT,QAAQ,YAAY,EAAE,CAAC,oCAAoC,CAAC;AAC5D,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,SAAS,EAAE,CAAC,mCAAmC,CAAC;AACxD,QAAQ,gBAAgB,EAAE,CAAC,mCAAmC,CAAC;AAC/D,QAAQ,sBAAsB,EAAE,CAAC,oCAAoC,CAAC;AACtE,QAAQ,4BAA4B,EAAE,CAAC,2CAA2C,CAAC;AACnF,QAAQ,kCAAkC,EAAE;AAC5C,YAAY,kDAAkD;AAC9D,SAAS;AACT,QAAQ,gBAAgB,EAAE,CAAC,8BAA8B,CAAC;AAC1D,QAAQ,aAAa,EAAE,CAAC,wBAAwB,CAAC;AACjD,QAAQ,aAAa,EAAE,CAAC,oCAAoC,CAAC;AAC7D,QAAQ,GAAG,EAAE,CAAC,iBAAiB,CAAC;AAChC,QAAQ,iCAAiC,EAAE,CAAC,kCAAkC,CAAC;AAC/E,QAAQ,oBAAoB,EAAE,CAAC,wCAAwC,CAAC;AACxE,QAAQ,UAAU,EAAE,CAAC,iCAAiC,CAAC;AACvD,QAAQ,sBAAsB,EAAE,CAAC,wCAAwC,CAAC;AAC1E,QAAQ,IAAI,EAAE,CAAC,oBAAoB,CAAC;AACpC,QAAQ,oBAAoB,EAAE,CAAC,+BAA+B,CAAC;AAC/D,QAAQ,gBAAgB,EAAE,CAAC,wBAAwB,CAAC;AACpD,QAAQ,wBAAwB,EAAE,CAAC,gBAAgB,CAAC;AACpD,QAAQ,WAAW,EAAE,CAAC,4BAA4B,CAAC;AACnD,QAAQ,mBAAmB,EAAE,CAAC,mDAAmD,CAAC;AAClF,QAAQ,WAAW,EAAE,CAAC,yBAAyB,CAAC;AAChD,QAAQ,mCAAmC,EAAE,CAAC,4BAA4B,CAAC;AAC3E,QAAQ,wBAAwB,EAAE,CAAC,uCAAuC,CAAC;AAC3E,QAAQ,sBAAsB,EAAE,CAAC,6BAA6B,CAAC;AAC/D,QAAQ,iBAAiB,EAAE,CAAC,gCAAgC,CAAC;AAC7D,QAAQ,YAAY,EAAE,CAAC,uBAAuB,CAAC;AAC/C,QAAQ,WAAW,EAAE,CAAC,wCAAwC,CAAC;AAC/D,QAAQ,YAAY,EAAE,CAAC,uCAAuC,CAAC;AAC/D,QAAQ,uBAAuB,EAAE,CAAC,2CAA2C,CAAC;AAC9E,QAAQ,yBAAyB,EAAE;AACnC,YAAY,qDAAqD;AACjE,SAAS;AACT,QAAQ,0CAA0C,EAAE;AACpD,YAAY,8CAA8C;AAC1D,SAAS;AACT,QAAQ,oBAAoB,EAAE,CAAC,wCAAwC,CAAC;AACxE,QAAQ,uCAAuC,EAAE;AACjD,YAAY,2CAA2C;AACvD,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,sCAAsC,CAAC;AAC7D,QAAQ,MAAM,EAAE,CAAC,mBAAmB,CAAC;AACrC,QAAQ,oCAAoC,EAAE;AAC9C,YAAY,oCAAoC;AAChD,SAAS;AACT,QAAQ,aAAa,EAAE,CAAC,mCAAmC,CAAC;AAC5D,QAAQ,yBAAyB,EAAE,CAAC,0CAA0C,CAAC;AAC/E,KAAK;AACL,IAAI,QAAQ,EAAE;AACd,QAAQ,eAAe,EAAE;AACzB,YAAY,qDAAqD;AACjE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,UAAU,EAAE;AACpB,YAAY,0CAA0C;AACtD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,qCAAqC;AACjD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,0BAA0B,EAAE;AACpC,YAAY,qBAAqB;AACjC,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,2BAA2B;AACvC,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,aAAa,EAAE;AACvB,YAAY,qCAAqC;AACjD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,MAAM,EAAE;AAChB,YAAY,+BAA+B;AAC3C,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,UAAU,EAAE;AACpB,YAAY,0CAA0C;AACtD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,sCAAsC;AAClD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,GAAG,EAAE;AACb,YAAY,4BAA4B;AACxC,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,OAAO,EAAE;AACjB,YAAY,uCAAuC;AACnD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,SAAS,EAAE;AACnB,YAAY,mCAAmC;AAC/C,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,oBAAoB,EAAE;AAC9B,YAAY,gEAAgE;AAC5E,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,SAAS,EAAE;AACnB,YAAY,yCAAyC;AACrD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,iBAAiB,EAAE;AAC3B,YAAY,0CAA0C;AACtD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,WAAW,EAAE;AACrB,YAAY,oCAAoC;AAChD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,UAAU,EAAE;AACpB,YAAY,0BAA0B;AACtC,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,WAAW,EAAE;AACrB,YAAY,oCAAoC;AAChD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,WAAW,EAAE;AACrB,YAAY,gCAAgC;AAC5C,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,QAAQ,EAAE;AAClB,YAAY,8CAA8C;AAC1D,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,UAAU,EAAE;AACpB,YAAY,0CAA0C;AACtD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,kBAAkB,EAAE;AAC5B,YAAY,wDAAwD;AACpE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,MAAM,EAAE;AAChB,YAAY,8BAA8B;AAC1C,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,UAAU,EAAE;AACpB,YAAY,yCAAyC;AACrD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,qCAAqC;AACjD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,aAAa,EAAE,CAAC,qDAAqD,CAAC;AAC9E,QAAQ,MAAM,EAAE,CAAC,kCAAkC,CAAC;AACpD,QAAQ,2BAA2B,EAAE;AACrC,YAAY,8EAA8E;AAC1F,SAAS;AACT,QAAQ,YAAY,EAAE,CAAC,wDAAwD,CAAC;AAChF,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,yDAAyD;AACrE,SAAS;AACT,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,sEAAsE;AAClF,SAAS;AACT,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,0DAA0D;AACtE,SAAS;AACT,QAAQ,aAAa,EAAE;AACvB,YAAY,8EAA8E;AAC1F,SAAS;AACT,QAAQ,GAAG,EAAE,CAAC,+CAA+C,CAAC;AAC9D,QAAQ,SAAS,EAAE;AACnB,YAAY,mEAAmE;AAC/E,SAAS;AACT,QAAQ,gBAAgB,EAAE,CAAC,uDAAuD,CAAC;AACnF,QAAQ,IAAI,EAAE,CAAC,iCAAiC,CAAC;AACjD,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,4EAA4E;AACxF,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,uDAAuD,CAAC;AAC9E,QAAQ,SAAS,EAAE,CAAC,qDAAqD,CAAC;AAC1E,QAAQ,sBAAsB,EAAE;AAChC,YAAY,mEAAmE;AAC/E,SAAS;AACT,QAAQ,kBAAkB,EAAE;AAC5B,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,yBAAyB,EAAE,CAAC,0CAA0C,CAAC;AAC/E,QAAQ,WAAW,EAAE,CAAC,uDAAuD,CAAC;AAC9E,QAAQ,KAAK,EAAE,CAAC,qDAAqD,CAAC;AACtE,QAAQ,wBAAwB,EAAE;AAClC,YAAY,sEAAsE;AAClF,SAAS;AACT,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,oEAAoE;AAChF,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,2EAA2E;AACvF,SAAS;AACT,QAAQ,MAAM,EAAE,CAAC,iDAAiD,CAAC;AACnE,QAAQ,YAAY,EAAE;AACtB,YAAY,6DAA6D;AACzE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;AACnD,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,mEAAmE;AAC/E,SAAS;AACT,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,yDAAyD;AACrE,SAAS;AACT,KAAK;AACL,IAAI,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,EAAE;AAC3C,IAAI,SAAS,EAAE;AACf,QAAQ,sBAAsB,EAAE;AAChC,YAAY,4DAA4D;AACxE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,cAAc,EAAE;AACxB,YAAY,4DAA4D;AACxE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,mEAAmE;AAC/E,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,iCAAiC,EAAE;AAC3C,YAAY,kEAAkE;AAC9E,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,mCAAmC,EAAE;AAC7C,YAAY,wGAAwG;AACpH,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,4BAA4B,EAAE;AACtC,YAAY,8EAA8E;AAC1F,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,sBAAsB,EAAE;AAChC,YAAY,4EAA4E;AACxF,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,cAAc,EAAE;AACxB,YAAY,4EAA4E;AACxF,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,mFAAmF;AAC/F,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,2BAA2B,EAAE;AACrC,YAAY,kFAAkF;AAC9F,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,uBAAuB,EAAE;AACjC,YAAY,8FAA8F;AAC1G,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,8BAA8B,EAAE;AACxC,YAAY,wHAAwH;AACpI,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,iCAAiC;AAC7C,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,YAAY;AACZ,gBAAgB,UAAU,EAAE,oHAAoH;AAChJ,aAAa;AACb,SAAS;AACT,QAAQ,oBAAoB,EAAE;AAC9B,YAAY,2DAA2D;AACvE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,2DAA2D;AACvE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,kEAAkE;AAC9E,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,+BAA+B,EAAE;AACzC,YAAY,iEAAiE;AAC7E,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,iCAAiC,EAAE;AAC3C,YAAY,uGAAuG;AACnH,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,QAAQ,0BAA0B,EAAE;AACpC,YAAY,6EAA6E;AACzF,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;AAC1D,SAAS;AACT,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,gBAAgB,EAAE,CAAC,oDAAoD,CAAC;AAChF,QAAQ,wBAAwB,EAAE;AAClC,YAAY,2EAA2E;AACvF,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE;AACjC,SAAS;AACT,QAAQ,eAAe,EAAE,CAAC,oDAAoD,CAAC;AAC/E,QAAQ,sBAAsB,EAAE;AAChC,YAAY,yFAAyF;AACrG,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE;AACrC,SAAS;AACT,QAAQ,yBAAyB,EAAE;AACnC,YAAY,4EAA4E;AACxF,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE;AAClC,SAAS;AACT,QAAQ,yBAAyB,EAAE;AACnC,YAAY,4EAA4E;AACxF,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE;AAClC,SAAS;AACT,QAAQ,iBAAiB,EAAE,CAAC,oDAAoD,CAAC;AACjF,QAAQ,wBAAwB,EAAE;AAClC,YAAY,gDAAgD;AAC5D,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;AACnD,SAAS;AACT,QAAQ,cAAc,EAAE,CAAC,mDAAmD,CAAC;AAC7E,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,0DAA0D;AACtE,SAAS;AACT,QAAQ,+BAA+B,EAAE;AACzC,YAAY,6EAA6E;AACzF,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;AAClD,SAAS;AACT,QAAQ,kBAAkB,EAAE,CAAC,2CAA2C,CAAC;AACzE,QAAQ,eAAe,EAAE,CAAC,iCAAiC,CAAC;AAC5D,QAAQ,gBAAgB,EAAE,CAAC,wCAAwC,CAAC;AACpE,QAAQ,sBAAsB,EAAE;AAChC,YAAY,iEAAiE;AAC7E,SAAS;AACT,QAAQ,mBAAmB,EAAE,CAAC,uCAAuC,CAAC;AACtE,QAAQ,0BAA0B,EAAE,CAAC,kBAAkB,CAAC;AACxD,QAAQ,UAAU,EAAE,CAAC,kCAAkC,CAAC;AACxD,QAAQ,WAAW,EAAE,CAAC,wBAAwB,CAAC;AAC/C,QAAQ,0BAA0B,EAAE,CAAC,2CAA2C,CAAC;AACjF,QAAQ,eAAe,EAAE;AACzB,YAAY,kCAAkC;AAC9C,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE;AACvD,SAAS;AACT,QAAQ,aAAa,EAAE,CAAC,qCAAqC,CAAC;AAC9D,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,uDAAuD;AACnE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE;AACrD,SAAS;AACT,QAAQ,aAAa,EAAE,CAAC,kCAAkC,CAAC;AAC3D,QAAQ,iBAAiB,EAAE,CAAC,qDAAqD,CAAC;AAClF,QAAQ,MAAM,EAAE,CAAC,8BAA8B,CAAC;AAChD,QAAQ,wBAAwB,EAAE;AAClC,YAAY,wEAAwE;AACpF,SAAS;AACT,QAAQ,2BAA2B,EAAE;AACrC,YAAY,0EAA0E;AACtF,SAAS;AACT,QAAQ,sBAAsB,EAAE;AAChC,YAAY,2DAA2D;AACvE,SAAS;AACT,QAAQ,mBAAmB,EAAE,CAAC,oDAAoD,CAAC;AACnF,QAAQ,+BAA+B,EAAE;AACzC,YAAY,+EAA+E;AAC3F,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;AAClD,SAAS;AACT,QAAQ,eAAe,EAAE,CAAC,4CAA4C,CAAC;AACvE,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,0DAA0D;AACtE,SAAS;AACT,QAAQ,UAAU,EAAE,CAAC,8CAA8C,CAAC;AACpE,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,0DAA0D;AACtE,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,oCAAoC;AAChD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE;AACvD,SAAS;AACT,QAAQ,iCAAiC,EAAE;AAC3C,YAAY,yFAAyF;AACrG,SAAS;AACT,QAAQ,aAAa,EAAE,CAAC,oDAAoD,CAAC;AAC7E,QAAQ,kBAAkB,EAAE;AAC5B,YAAY,yDAAyD;AACrE,SAAS;AACT,QAAQ,aAAa,EAAE,CAAC,8CAA8C,CAAC;AACvE,QAAQ,6BAA6B,EAAE;AACvC,YAAY,uDAAuD;AACnE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;AACnD,SAAS;AACT,QAAQ,0BAA0B,EAAE;AACpC,YAAY,mDAAmD;AAC/D,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;AACnD,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,yCAAyC;AACrD,YAAY,EAAE;AACd,YAAY,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,wBAAwB,CAAC,EAAE;AAC5D,SAAS;AACT,QAAQ,sBAAsB,EAAE,CAAC,yCAAyC,CAAC;AAC3E,QAAQ,sBAAsB,EAAE,CAAC,yCAAyC,CAAC;AAC3E,QAAQ,4BAA4B,EAAE;AACtC,YAAY,oDAAoD;AAChE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;AACnD,SAAS;AACT,QAAQ,yBAAyB,EAAE;AACnC,YAAY,gDAAgD;AAC5D,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;AACnD,SAAS;AACT,QAAQ,GAAG,EAAE,CAAC,2BAA2B,CAAC;AAC1C,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,qEAAqE;AACjF,SAAS;AACT,QAAQ,wBAAwB,EAAE;AAClC,YAAY,uEAAuE;AACnF,SAAS;AACT,QAAQ,yBAAyB,EAAE;AACnC,YAAY,wFAAwF;AACpG,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,kCAAkC;AAC9C,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;AAClD,SAAS;AACT,QAAQ,kCAAkC,EAAE;AAC5C,YAAY,0EAA0E;AACtF,SAAS;AACT,QAAQ,SAAS,EAAE,CAAC,6CAA6C,CAAC;AAClE,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,SAAS,EAAE,CAAC,0CAA0C,CAAC;AAC/D,QAAQ,qBAAqB,EAAE,CAAC,gDAAgD,CAAC;AACjF,QAAQ,8BAA8B,EAAE;AACxC,YAAY,+DAA+D;AAC3E,SAAS;AACT,QAAQ,uBAAuB,EAAE,CAAC,gDAAgD,CAAC;AACnF,QAAQ,SAAS,EAAE,CAAC,yCAAyC,CAAC;AAC9D,QAAQ,sBAAsB,EAAE,CAAC,iDAAiD,CAAC;AACnF,QAAQ,gBAAgB,EAAE,CAAC,iDAAiD,CAAC;AAC7E,QAAQ,4BAA4B,EAAE;AACtC,YAAY,4EAA4E;AACxF,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;AAClD,SAAS;AACT,QAAQ,0BAA0B,EAAE,CAAC,6CAA6C,CAAC;AACnF,QAAQ,UAAU,EAAE,CAAC,2CAA2C,CAAC;AACjE,QAAQ,oBAAoB,EAAE,CAAC,8CAA8C,CAAC;AAC9E,QAAQ,YAAY,EAAE,CAAC,yCAAyC,CAAC;AACjE,QAAQ,aAAa,EAAE,CAAC,uDAAuD,CAAC;AAChF,QAAQ,mBAAmB,EAAE;AAC7B,YAAY,4EAA4E;AACxF,SAAS;AACT,QAAQ,mBAAmB,EAAE,CAAC,+CAA+C,CAAC;AAC9E,QAAQ,gBAAgB,EAAE,CAAC,2CAA2C,CAAC;AACvE,QAAQ,QAAQ,EAAE,CAAC,iCAAiC,CAAC;AACrD,QAAQ,aAAa,EAAE,CAAC,mDAAmD,CAAC;AAC5E,QAAQ,qBAAqB,EAAE,CAAC,+CAA+C,CAAC;AAChF,QAAQ,8BAA8B,EAAE;AACxC,YAAY,sFAAsF;AAClG,SAAS;AACT,QAAQ,iBAAiB,EAAE,CAAC,4CAA4C,CAAC;AACzE,QAAQ,SAAS,EAAE,CAAC,kCAAkC,CAAC;AACvD,QAAQ,UAAU,EAAE,CAAC,iDAAiD,CAAC;AACvE,QAAQ,eAAe,EAAE,CAAC,sDAAsD,CAAC;AACjF,QAAQ,eAAe,EAAE,CAAC,+CAA+C,CAAC;AAC1E,QAAQ,yBAAyB,EAAE;AACnC,YAAY,+EAA+E;AAC3F,SAAS;AACT,QAAQ,mCAAmC,EAAE;AAC7C,YAAY,2EAA2E;AACvF,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,iDAAiD,CAAC;AACxE,QAAQ,eAAe,EAAE,CAAC,qDAAqD,CAAC;AAChF,QAAQ,mCAAmC,EAAE;AAC7C,YAAY,2EAA2E;AACvF,SAAS;AACT,QAAQ,QAAQ,EAAE,CAAC,yCAAyC,CAAC;AAC7D,QAAQ,UAAU,EAAE,CAAC,2CAA2C,CAAC;AACjE,QAAQ,uBAAuB,EAAE;AACjC,YAAY,kDAAkD;AAC9D,SAAS;AACT,QAAQ,YAAY,EAAE,CAAC,oCAAoC,CAAC;AAC5D,QAAQ,yBAAyB,EAAE;AACnC,YAAY,oEAAoE;AAChF,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;AAClD,SAAS;AACT,QAAQ,iBAAiB,EAAE,CAAC,yCAAyC,CAAC;AACtE,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,yDAAyD;AACrE,SAAS;AACT,QAAQ,yBAAyB,EAAE,CAAC,oCAAoC,CAAC;AACzE,QAAQ,wBAAwB,EAAE;AAClC,YAAY,kDAAkD;AAC9D,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,mCAAmC,CAAC;AAC1D,QAAQ,gBAAgB,EAAE,CAAC,wCAAwC,CAAC;AACpE,QAAQ,cAAc,EAAE,CAAC,gCAAgC,CAAC;AAC1D,QAAQ,sBAAsB,EAAE;AAChC,YAAY,gEAAgE;AAC5E,SAAS;AACT,QAAQ,eAAe,EAAE,CAAC,uCAAuC,CAAC;AAClE,QAAQ,wBAAwB,EAAE,CAAC,iBAAiB,CAAC;AACrD,QAAQ,UAAU,EAAE,CAAC,uBAAuB,CAAC;AAC7C,QAAQ,WAAW,EAAE,CAAC,6BAA6B,CAAC;AACpD,QAAQ,SAAS,EAAE,CAAC,iCAAiC,CAAC;AACtD,QAAQ,eAAe,EAAE,CAAC,uCAAuC,CAAC;AAClE,QAAQ,mCAAmC,EAAE,CAAC,kCAAkC,CAAC;AACjF,QAAQ,aAAa,EAAE,CAAC,qCAAqC,CAAC;AAC9D,QAAQ,eAAe,EAAE,CAAC,wCAAwC,CAAC;AACnE,QAAQ,UAAU,EAAE,CAAC,mBAAmB,CAAC;AACzC,QAAQ,oCAAoC,EAAE;AAC9C,YAAY,sDAAsD;AAClE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;AAClD,SAAS;AACT,QAAQ,iBAAiB,EAAE;AAC3B,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,YAAY,EAAE,CAAC,oCAAoC,CAAC;AAC5D,QAAQ,QAAQ,EAAE,CAAC,gCAAgC,CAAC;AACpD,QAAQ,SAAS,EAAE,CAAC,iCAAiC,CAAC;AACtD,QAAQ,YAAY,EAAE,CAAC,iCAAiC,CAAC;AACzD,QAAQ,KAAK,EAAE,CAAC,mCAAmC,CAAC;AACpD,QAAQ,WAAW,EAAE,CAAC,kDAAkD,CAAC;AACzE,QAAQ,2BAA2B,EAAE;AACrC,YAAY,6EAA6E;AACzF,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE;AACjC,SAAS;AACT,QAAQ,kBAAkB,EAAE;AAC5B,YAAY,uDAAuD;AACnE,SAAS;AACT,QAAQ,yBAAyB,EAAE;AACnC,YAAY,2FAA2F;AACvG,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE;AACrC,SAAS;AACT,QAAQ,2BAA2B,EAAE;AACrC,YAAY,kFAAkF;AAC9F,SAAS;AACT,QAAQ,4BAA4B,EAAE;AACtC,YAAY,8EAA8E;AAC1F,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE;AAClC,SAAS;AACT,QAAQ,4BAA4B,EAAE;AACtC,YAAY,8EAA8E;AAC1F,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE;AAClC,SAAS;AACT,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,kCAAkC;AAC9C,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;AAClD,SAAS;AACT,QAAQ,iBAAiB,EAAE,CAAC,yCAAyC,CAAC;AACtE,QAAQ,wBAAwB,EAAE;AAClC,YAAY,wEAAwE;AACpF,SAAS;AACT,QAAQ,wBAAwB,EAAE;AAClC,YAAY,0EAA0E;AACtF,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE;AACjC,SAAS;AACT,QAAQ,sBAAsB,EAAE;AAChC,YAAY,wFAAwF;AACpG,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE;AACrC,SAAS;AACT,QAAQ,yBAAyB,EAAE;AACnC,YAAY,2EAA2E;AACvF,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE;AAClC,SAAS;AACT,QAAQ,yBAAyB,EAAE;AACnC,YAAY,2EAA2E;AACvF,YAAY,EAAE;AACd,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE;AAClC,SAAS;AACT,QAAQ,eAAe,EAAE,CAAC,kDAAkD,CAAC;AAC7E,QAAQ,QAAQ,EAAE,CAAC,qCAAqC,CAAC;AACzD,QAAQ,MAAM,EAAE,CAAC,6BAA6B,CAAC;AAC/C,QAAQ,sBAAsB,EAAE;AAChC,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,mBAAmB,EAAE,CAAC,mDAAmD,CAAC;AAClF,QAAQ,+BAA+B,EAAE,CAAC,iCAAiC,CAAC;AAC5E,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,yDAAyD;AACrE,SAAS;AACT,QAAQ,iCAAiC,EAAE;AAC3C,YAAY,wFAAwF;AACpG,SAAS;AACT,QAAQ,aAAa,EAAE,CAAC,mDAAmD,CAAC;AAC5E,QAAQ,kBAAkB,EAAE;AAC5B,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,0BAA0B,EAAE;AACpC,YAAY,iFAAiF;AAC7F,YAAY,EAAE;AACd,YAAY,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,6BAA6B,CAAC,EAAE;AACjE,SAAS;AACT,QAAQ,2BAA2B,EAAE;AACrC,YAAY,iFAAiF;AAC7F,SAAS;AACT,QAAQ,aAAa,EAAE,CAAC,6CAA6C,CAAC;AACtE,QAAQ,0BAA0B,EAAE;AACpC,YAAY,oDAAoD;AAChE,SAAS;AACT,QAAQ,kBAAkB,EAAE;AAC5B,YAAY,sEAAsE;AAClF,YAAY,EAAE,OAAO,EAAE,4BAA4B,EAAE;AACrD,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE;AACZ,QAAQ,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAClC,QAAQ,OAAO,EAAE,CAAC,qBAAqB,EAAE,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;AAChF,QAAQ,qBAAqB,EAAE,CAAC,oBAAoB,CAAC;AACrD,QAAQ,MAAM,EAAE,CAAC,oBAAoB,CAAC;AACtC,QAAQ,KAAK,EAAE,CAAC,0BAA0B,CAAC;AAC3C,QAAQ,MAAM,EAAE,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;AAC9E,QAAQ,KAAK,EAAE,CAAC,mBAAmB,CAAC;AACpC,KAAK;AACL,IAAI,cAAc,EAAE;AACpB,QAAQ,QAAQ,EAAE;AAClB,YAAY,iEAAiE;AAC7E,SAAS;AACT,QAAQ,iBAAiB,EAAE,CAAC,kDAAkD,CAAC;AAC/E,QAAQ,WAAW,EAAE;AACrB,YAAY,mEAAmE;AAC/E,SAAS;AACT,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,iCAAiC,EAAE;AAC3C,YAAY,0DAA0D;AACtE,SAAS;AACT,QAAQ,kCAAkC,EAAE;AAC5C,YAAY,yDAAyD;AACrE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,+BAA+B,EAAE;AACzC,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,+BAA+B,EAAE;AACzC,YAAY,yDAAyD;AACrE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,4BAA4B,EAAE;AACtC,YAAY,wDAAwD;AACpE,SAAS;AACT,QAAQ,MAAM,EAAE,CAAC,wBAAwB,CAAC;AAC1C,QAAQ,4BAA4B,EAAE;AACtC,YAAY,6EAA6E;AACzF,SAAS;AACT,QAAQ,qBAAqB,EAAE,CAAC,gDAAgD,CAAC;AACjF,QAAQ,4BAA4B,EAAE;AACtC,YAAY,gGAAgG;AAC5G,SAAS;AACT,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,sEAAsE;AAClF,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,sCAAsC,CAAC;AAC7D,QAAQ,SAAS,EAAE,CAAC,mCAAmC,CAAC;AACxD,QAAQ,yBAAyB,EAAE;AACnC,YAAY,6FAA6F;AACzG,SAAS;AACT,QAAQ,kBAAkB,EAAE;AAC5B,YAAY,mEAAmE;AAC/E,SAAS;AACT,QAAQ,yBAAyB,EAAE;AACnC,YAAY,0DAA0D;AACtE,SAAS;AACT,QAAQ,IAAI,EAAE,CAAC,uBAAuB,CAAC;AACvC,QAAQ,cAAc,EAAE,CAAC,yCAAyC,CAAC;AACnE,QAAQ,2BAA2B,EAAE;AACrC,YAAY,4EAA4E;AACxF,SAAS;AACT,QAAQ,oBAAoB,EAAE,CAAC,+CAA+C,CAAC;AAC/E,QAAQ,wBAAwB,EAAE,CAAC,iBAAiB,CAAC;AACrD,QAAQ,gBAAgB,EAAE,CAAC,2CAA2C,CAAC;AACvE,QAAQ,2BAA2B,EAAE;AACrC,YAAY,+CAA+C;AAC3D,SAAS;AACT,QAAQ,iBAAiB,EAAE;AAC3B,YAAY,4CAA4C;AACxD,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;AACpD,SAAS;AACT,QAAQ,cAAc,EAAE,CAAC,yCAAyC,CAAC;AACnE,QAAQ,4BAA4B,EAAE;AACtC,YAAY,6DAA6D;AACzE,SAAS;AACT,QAAQ,kBAAkB,EAAE;AAC5B,YAAY,4DAA4D;AACxE,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,2DAA2D;AACvE,SAAS;AACT,QAAQ,4BAA4B,EAAE;AACtC,YAAY,+FAA+F;AAC3G,SAAS;AACT,QAAQ,qBAAqB,EAAE;AAC/B,YAAY,qEAAqE;AACjF,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,qCAAqC,CAAC;AAC5D,KAAK;AACL,IAAI,KAAK,EAAE;AACX,QAAQ,wBAAwB,EAAE,CAAC,mBAAmB,CAAC;AACvD,QAAQ,KAAK,EAAE,CAAC,6BAA6B,CAAC;AAC9C,QAAQ,YAAY,EAAE,CAAC,6BAA6B,CAAC;AACrD,QAAQ,qBAAqB,EAAE,CAAC,+CAA+C,CAAC;AAChF,QAAQ,oCAAoC,EAAE,CAAC,gCAAgC,CAAC;AAChF,QAAQ,4BAA4B,EAAE,CAAC,qBAAqB,CAAC;AAC7D,QAAQ,kCAAkC,EAAE,CAAC,iBAAiB,CAAC;AAC/D,QAAQ,2BAA2B,EAAE,CAAC,qBAAqB,CAAC;AAC5D,QAAQ,4BAA4B,EAAE,CAAC,oCAAoC,CAAC;AAC5E,QAAQ,kCAAkC,EAAE,CAAC,4BAA4B,CAAC;AAC1E,QAAQ,MAAM,EAAE,CAAC,gCAAgC,CAAC;AAClD,QAAQ,gBAAgB,EAAE,CAAC,WAAW,CAAC;AACvC,QAAQ,aAAa,EAAE,CAAC,uBAAuB,CAAC;AAChD,QAAQ,iBAAiB,EAAE,CAAC,iCAAiC,CAAC;AAC9D,QAAQ,yBAAyB,EAAE,CAAC,iCAAiC,CAAC;AACtE,QAAQ,+BAA+B,EAAE,CAAC,yBAAyB,CAAC;AACpE,QAAQ,IAAI,EAAE,CAAC,YAAY,CAAC;AAC5B,QAAQ,0BAA0B,EAAE,CAAC,kBAAkB,CAAC;AACxD,QAAQ,0BAA0B,EAAE,CAAC,kBAAkB,CAAC;AACxD,QAAQ,2BAA2B,EAAE,CAAC,qBAAqB,CAAC;AAC5D,QAAQ,iCAAiC,EAAE,CAAC,qBAAqB,CAAC;AAClE,QAAQ,oBAAoB,EAAE,CAAC,iCAAiC,CAAC;AACjE,QAAQ,oBAAoB,EAAE,CAAC,iCAAiC,CAAC;AACjE,QAAQ,2BAA2B,EAAE,CAAC,oBAAoB,CAAC;AAC3D,QAAQ,kBAAkB,EAAE,CAAC,gCAAgC,CAAC;AAC9D,QAAQ,gCAAgC,EAAE,CAAC,yBAAyB,CAAC;AACrE,QAAQ,qBAAqB,EAAE,CAAC,4BAA4B,CAAC;AAC7D,QAAQ,iCAAiC,EAAE,CAAC,gBAAgB,CAAC;AAC7D,QAAQ,yCAAyC,EAAE,CAAC,8BAA8B,CAAC;AACnF,QAAQ,OAAO,EAAE,CAAC,gCAAgC,CAAC;AACnD,QAAQ,QAAQ,EAAE,CAAC,mCAAmC,CAAC;AACvD,QAAQ,mBAAmB,EAAE,CAAC,aAAa,CAAC;AAC5C,KAAK;AACL,CAAC;;ACvvCM,MAAM,OAAO,GAAG,mBAAmB,CAAC;;ACApC,SAAS,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE;AAC1D,IAAI,MAAM,UAAU,GAAG,EAAE,CAAC;AAC1B,IAAI,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AACnE,QAAQ,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACxE,YAAY,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC;AAC5D,YAAY,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnD,YAAY,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC9E,YAAY,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AACpC,gBAAgB,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AACvC,aAAa;AACb,YAAY,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AACnD,YAAY,IAAI,WAAW,EAAE;AAC7B,gBAAgB,YAAY,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;AAC/G,gBAAgB,SAAS;AACzB,aAAa;AACb,YAAY,YAAY,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AAClF,SAAS;AACT,KAAK;AACL,IAAI,OAAO,UAAU,CAAC;AACtB,CAAC;AACD,SAAS,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE;AACrE,IAAI,MAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACnE;AACA,IAAI,SAAS,eAAe,CAAC,GAAG,IAAI,EAAE;AACtC;AACA,QAAQ,IAAI,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AAClE;AACA,QAAQ,IAAI,WAAW,CAAC,SAAS,EAAE;AACnC,YAAY,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE;AACjD,gBAAgB,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC;AACpD,gBAAgB,CAAC,WAAW,CAAC,SAAS,GAAG,SAAS;AAClD,aAAa,CAAC,CAAC;AACf,YAAY,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAChD,SAAS;AACT,QAAQ,IAAI,WAAW,CAAC,OAAO,EAAE;AACjC,YAAY,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC;AAClE,YAAY,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5H,SAAS;AACT,QAAQ,IAAI,WAAW,CAAC,UAAU,EAAE;AACpC,YAAY,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AACrD,SAAS;AACT,QAAQ,IAAI,WAAW,CAAC,iBAAiB,EAAE;AAC3C;AACA,YAAY,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AACxE,YAAY,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE;AACvF,gBAAgB,IAAI,IAAI,IAAI,OAAO,EAAE;AACrC,oBAAoB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AACzI,oBAAoB,IAAI,EAAE,KAAK,IAAI,OAAO,CAAC,EAAE;AAC7C,wBAAwB,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACvD,qBAAqB;AACrB,oBAAoB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,iBAAiB;AACjB,aAAa;AACb,YAAY,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAChD,SAAS;AACT;AACA,QAAQ,OAAO,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAC;AAC5C,KAAK;AACL,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;AAC/D,CAAC;;ACxDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AAAO,SAAS,mBAAmB,CAAC,OAAO,EAAE;AAC7C,IAAI,OAAO,kBAAkB,CAAC,OAAO,EAAEA,SAAS,CAAC,CAAC;AAClD,CAAC;AACD,mBAAmB,CAAC,OAAO,GAAG,OAAO,CAAC;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/plugin-rest-endpoint-methods/package.json b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/package.json new file mode 100644 index 000000000..130451a72 --- /dev/null +++ b/Client/node_modules/@octokit/plugin-rest-endpoint-methods/package.json @@ -0,0 +1,93 @@ +{ + "_from": "@octokit/plugin-rest-endpoint-methods@4.4.1", + "_id": "@octokit/plugin-rest-endpoint-methods@4.4.1", + "_inBundle": false, + "_integrity": "sha512-+v5PcvrUcDeFXf8hv1gnNvNLdm4C0+2EiuWt9EatjjUmfriM1pTMM+r4j1lLHxeBQ9bVDmbywb11e3KjuavieA==", + "_location": "/@octokit/plugin-rest-endpoint-methods", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "@octokit/plugin-rest-endpoint-methods@4.4.1", + "name": "@octokit/plugin-rest-endpoint-methods", + "escapedName": "@octokit%2fplugin-rest-endpoint-methods", + "scope": "@octokit", + "rawSpec": "4.4.1", + "saveSpec": null, + "fetchSpec": "4.4.1" + }, + "_requiredBy": [ + "/@octokit/rest" + ], + "_resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.4.1.tgz", + "_shasum": "105cf93255432155de078c9efc33bd4e14d1cd63", + "_spec": "@octokit/plugin-rest-endpoint-methods@4.4.1", + "_where": "C:\\Superalgos\\Client\\node_modules\\@octokit\\rest", + "bugs": { + "url": "https://github.com/octokit/plugin-rest-endpoint-methods.js/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@octokit/types": "^6.1.0", + "deprecation": "^2.3.1" + }, + "deprecated": false, + "description": "Octokit plugin adding one method for all of api.github.com REST API endpoints", + "devDependencies": { + "@gimenete/type-writer": "^0.1.5", + "@octokit/core": "^3.0.0", + "@octokit/graphql": "^4.3.1", + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "@types/fetch-mock": "^7.3.1", + "@types/jest": "^26.0.0", + "@types/node": "^14.0.4", + "fetch-mock": "^9.0.0", + "fs-extra": "^9.0.0", + "jest": "^26.1.0", + "lodash.camelcase": "^4.3.0", + "lodash.set": "^4.3.2", + "lodash.upperfirst": "^4.3.1", + "mustache": "^4.0.0", + "npm-run-all": "^4.1.5", + "prettier": "^2.0.1", + "semantic-release": "^17.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "sort-keys": "^4.0.0", + "string-to-jsdoc-comment": "^1.0.0", + "ts-jest": "^26.1.3", + "typescript": "^4.0.2" + }, + "files": [ + "dist-*/", + "bin/" + ], + "homepage": "https://github.com/octokit/plugin-rest-endpoint-methods.js#readme", + "keywords": [ + "github", + "api", + "sdk", + "toolkit" + ], + "license": "MIT", + "main": "dist-node/index.js", + "module": "dist-web/index.js", + "name": "@octokit/plugin-rest-endpoint-methods", + "peerDependencies": { + "@octokit/core": ">=3" + }, + "pika": true, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/octokit/plugin-rest-endpoint-methods.js.git" + }, + "sideEffects": false, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "version": "4.4.1" +} diff --git a/Client/node_modules/@octokit/request-error/LICENSE b/Client/node_modules/@octokit/request-error/LICENSE new file mode 100644 index 000000000..ef2c18ee5 --- /dev/null +++ b/Client/node_modules/@octokit/request-error/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2019 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Client/node_modules/@octokit/request-error/README.md b/Client/node_modules/@octokit/request-error/README.md new file mode 100644 index 000000000..c939cdaee --- /dev/null +++ b/Client/node_modules/@octokit/request-error/README.md @@ -0,0 +1,67 @@ +# http-error.js + +> Error class for Octokit request errors + +[![@latest](https://img.shields.io/npm/v/@octokit/request-error.svg)](https://www.npmjs.com/package/@octokit/request-error) +[![Build Status](https://github.com/octokit/request-error.js/workflows/Test/badge.svg)](https://github.com/octokit/request-error.js/actions?query=workflow%3ATest) + +## Usage + + + + + + +
+Browsers + +Load @octokit/request-error directly from cdn.skypack.dev + +```html + +``` + +
+Node + + +Install with npm install @octokit/request-error + +```js +const { RequestError } = require("@octokit/request-error"); +// or: import { RequestError } from "@octokit/request-error"; +``` + +
+ +```js +const error = new RequestError("Oops", 500, { + headers: { + "x-github-request-id": "1:2:3:4", + }, // response headers + request: { + method: "POST", + url: "https://api.github.com/foo", + body: { + bar: "baz", + }, + headers: { + authorization: "token secret123", + }, + }, +}); + +error.message; // Oops +error.status; // 500 +error.headers; // { 'x-github-request-id': '1:2:3:4' } +error.request.method; // POST +error.request.url; // https://api.github.com/foo +error.request.body; // { bar: 'baz' } +error.request.headers; // { authorization: 'token [REDACTED]' } +``` + +## LICENSE + +[MIT](LICENSE) diff --git a/Client/node_modules/@octokit/request-error/dist-node/index.js b/Client/node_modules/@octokit/request-error/dist-node/index.js new file mode 100644 index 000000000..95b9c5796 --- /dev/null +++ b/Client/node_modules/@octokit/request-error/dist-node/index.js @@ -0,0 +1,55 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var deprecation = require('deprecation'); +var once = _interopDefault(require('once')); + +const logOnce = once(deprecation => console.warn(deprecation)); +/** + * Error with extra properties to help with debugging + */ + +class RequestError extends Error { + constructor(message, statusCode, options) { + super(message); // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + + this.name = "HttpError"; + this.status = statusCode; + Object.defineProperty(this, "code", { + get() { + logOnce(new deprecation.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")); + return statusCode; + } + + }); + this.headers = options.headers || {}; // redact request credentials without mutating original request options + + const requestCopy = Object.assign({}, options.request); + + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace(/ .*$/, " [REDACTED]") + }); + } + + requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit + // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications + .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]") // OAuth tokens can be passed as URL query parameters, although it is not recommended + // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header + .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); + this.request = requestCopy; + } + +} + +exports.RequestError = RequestError; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/request-error/dist-node/index.js.map b/Client/node_modules/@octokit/request-error/dist-node/index.js.map new file mode 100644 index 000000000..25620064f --- /dev/null +++ b/Client/node_modules/@octokit/request-error/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/index.js"],"sourcesContent":["import { Deprecation } from \"deprecation\";\nimport once from \"once\";\nconst logOnce = once((deprecation) => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\nexport class RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message);\n // Maintains proper stack trace (only available on V8)\n /* istanbul ignore next */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n this.name = \"HttpError\";\n this.status = statusCode;\n Object.defineProperty(this, \"code\", {\n get() {\n logOnce(new Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n },\n });\n this.headers = options.headers || {};\n // redact request credentials without mutating original request options\n const requestCopy = Object.assign({}, options.request);\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\"),\n });\n }\n requestCopy.url = requestCopy.url\n // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\")\n // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy;\n }\n}\n"],"names":["logOnce","once","deprecation","console","warn","RequestError","Error","constructor","message","statusCode","options","captureStackTrace","name","status","Object","defineProperty","get","Deprecation","headers","requestCopy","assign","request","authorization","replace","url"],"mappings":";;;;;;;;;AAEA,MAAMA,OAAO,GAAGC,IAAI,CAAEC,WAAD,IAAiBC,OAAO,CAACC,IAAR,CAAaF,WAAb,CAAlB,CAApB;AACA;;;;AAGO,MAAMG,YAAN,SAA2BC,KAA3B,CAAiC;AACpCC,EAAAA,WAAW,CAACC,OAAD,EAAUC,UAAV,EAAsBC,OAAtB,EAA+B;AACtC,UAAMF,OAAN,EADsC;;AAGtC;;AACA,QAAIF,KAAK,CAACK,iBAAV,EAA6B;AACzBL,MAAAA,KAAK,CAACK,iBAAN,CAAwB,IAAxB,EAA8B,KAAKJ,WAAnC;AACH;;AACD,SAAKK,IAAL,GAAY,WAAZ;AACA,SAAKC,MAAL,GAAcJ,UAAd;AACAK,IAAAA,MAAM,CAACC,cAAP,CAAsB,IAAtB,EAA4B,MAA5B,EAAoC;AAChCC,MAAAA,GAAG,GAAG;AACFhB,QAAAA,OAAO,CAAC,IAAIiB,uBAAJ,CAAgB,0EAAhB,CAAD,CAAP;AACA,eAAOR,UAAP;AACH;;AAJ+B,KAApC;AAMA,SAAKS,OAAL,GAAeR,OAAO,CAACQ,OAAR,IAAmB,EAAlC,CAfsC;;AAiBtC,UAAMC,WAAW,GAAGL,MAAM,CAACM,MAAP,CAAc,EAAd,EAAkBV,OAAO,CAACW,OAA1B,CAApB;;AACA,QAAIX,OAAO,CAACW,OAAR,CAAgBH,OAAhB,CAAwBI,aAA5B,EAA2C;AACvCH,MAAAA,WAAW,CAACD,OAAZ,GAAsBJ,MAAM,CAACM,MAAP,CAAc,EAAd,EAAkBV,OAAO,CAACW,OAAR,CAAgBH,OAAlC,EAA2C;AAC7DI,QAAAA,aAAa,EAAEZ,OAAO,CAACW,OAAR,CAAgBH,OAAhB,CAAwBI,aAAxB,CAAsCC,OAAtC,CAA8C,MAA9C,EAAsD,aAAtD;AAD8C,OAA3C,CAAtB;AAGH;;AACDJ,IAAAA,WAAW,CAACK,GAAZ,GAAkBL,WAAW,CAACK,GAAZ;AAEd;AAFc,KAGbD,OAHa,CAGL,sBAHK,EAGmB,0BAHnB;AAKd;AALc,KAMbA,OANa,CAML,qBANK,EAMkB,yBANlB,CAAlB;AAOA,SAAKF,OAAL,GAAeF,WAAf;AACH;;AAhCmC;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/request-error/dist-src/index.js b/Client/node_modules/@octokit/request-error/dist-src/index.js new file mode 100644 index 000000000..c880b450f --- /dev/null +++ b/Client/node_modules/@octokit/request-error/dist-src/index.js @@ -0,0 +1,40 @@ +import { Deprecation } from "deprecation"; +import once from "once"; +const logOnce = once((deprecation) => console.warn(deprecation)); +/** + * Error with extra properties to help with debugging + */ +export class RequestError extends Error { + constructor(message, statusCode, options) { + super(message); + // Maintains proper stack trace (only available on V8) + /* istanbul ignore next */ + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + this.name = "HttpError"; + this.status = statusCode; + Object.defineProperty(this, "code", { + get() { + logOnce(new Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")); + return statusCode; + }, + }); + this.headers = options.headers || {}; + // redact request credentials without mutating original request options + const requestCopy = Object.assign({}, options.request); + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace(/ .*$/, " [REDACTED]"), + }); + } + requestCopy.url = requestCopy.url + // client_id & client_secret can be passed as URL query parameters to increase rate limit + // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications + .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]") + // OAuth tokens can be passed as URL query parameters, although it is not recommended + // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header + .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); + this.request = requestCopy; + } +} diff --git a/Client/node_modules/@octokit/request-error/dist-src/types.js b/Client/node_modules/@octokit/request-error/dist-src/types.js new file mode 100644 index 000000000..e69de29bb diff --git a/Client/node_modules/@octokit/request-error/dist-types/index.d.ts b/Client/node_modules/@octokit/request-error/dist-types/index.d.ts new file mode 100644 index 000000000..baa8a0eb7 --- /dev/null +++ b/Client/node_modules/@octokit/request-error/dist-types/index.d.ts @@ -0,0 +1,27 @@ +import { RequestOptions, ResponseHeaders } from "@octokit/types"; +import { RequestErrorOptions } from "./types"; +/** + * Error with extra properties to help with debugging + */ +export declare class RequestError extends Error { + name: "HttpError"; + /** + * http status code + */ + status: number; + /** + * http status code + * + * @deprecated `error.code` is deprecated in favor of `error.status` + */ + code: number; + /** + * error response headers + */ + headers: ResponseHeaders; + /** + * Request options that lead to the error. + */ + request: RequestOptions; + constructor(message: string, statusCode: number, options: RequestErrorOptions); +} diff --git a/Client/node_modules/@octokit/request-error/dist-types/types.d.ts b/Client/node_modules/@octokit/request-error/dist-types/types.d.ts new file mode 100644 index 000000000..865d2139f --- /dev/null +++ b/Client/node_modules/@octokit/request-error/dist-types/types.d.ts @@ -0,0 +1,5 @@ +import { RequestOptions, ResponseHeaders } from "@octokit/types"; +export declare type RequestErrorOptions = { + headers?: ResponseHeaders; + request: RequestOptions; +}; diff --git a/Client/node_modules/@octokit/request-error/dist-web/index.js b/Client/node_modules/@octokit/request-error/dist-web/index.js new file mode 100644 index 000000000..feec58ef6 --- /dev/null +++ b/Client/node_modules/@octokit/request-error/dist-web/index.js @@ -0,0 +1,44 @@ +import { Deprecation } from 'deprecation'; +import once from 'once'; + +const logOnce = once((deprecation) => console.warn(deprecation)); +/** + * Error with extra properties to help with debugging + */ +class RequestError extends Error { + constructor(message, statusCode, options) { + super(message); + // Maintains proper stack trace (only available on V8) + /* istanbul ignore next */ + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + this.name = "HttpError"; + this.status = statusCode; + Object.defineProperty(this, "code", { + get() { + logOnce(new Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")); + return statusCode; + }, + }); + this.headers = options.headers || {}; + // redact request credentials without mutating original request options + const requestCopy = Object.assign({}, options.request); + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace(/ .*$/, " [REDACTED]"), + }); + } + requestCopy.url = requestCopy.url + // client_id & client_secret can be passed as URL query parameters to increase rate limit + // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications + .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]") + // OAuth tokens can be passed as URL query parameters, although it is not recommended + // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header + .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); + this.request = requestCopy; + } +} + +export { RequestError }; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/request-error/dist-web/index.js.map b/Client/node_modules/@octokit/request-error/dist-web/index.js.map new file mode 100644 index 000000000..130740d7f --- /dev/null +++ b/Client/node_modules/@octokit/request-error/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/index.js"],"sourcesContent":["import { Deprecation } from \"deprecation\";\nimport once from \"once\";\nconst logOnce = once((deprecation) => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\nexport class RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message);\n // Maintains proper stack trace (only available on V8)\n /* istanbul ignore next */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n this.name = \"HttpError\";\n this.status = statusCode;\n Object.defineProperty(this, \"code\", {\n get() {\n logOnce(new Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n },\n });\n this.headers = options.headers || {};\n // redact request credentials without mutating original request options\n const requestCopy = Object.assign({}, options.request);\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\"),\n });\n }\n requestCopy.url = requestCopy.url\n // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\")\n // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy;\n }\n}\n"],"names":[],"mappings":";;;AAEA,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACjE;AACA;AACA;AACO,MAAM,YAAY,SAAS,KAAK,CAAC;AACxC,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE;AAC9C,QAAQ,KAAK,CAAC,OAAO,CAAC,CAAC;AACvB;AACA;AACA,QAAQ,IAAI,KAAK,CAAC,iBAAiB,EAAE;AACrC,YAAY,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5D,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;AAChC,QAAQ,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;AACjC,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;AAC5C,YAAY,GAAG,GAAG;AAClB,gBAAgB,OAAO,CAAC,IAAI,WAAW,CAAC,0EAA0E,CAAC,CAAC,CAAC;AACrH,gBAAgB,OAAO,UAAU,CAAC;AAClC,aAAa;AACb,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;AAC7C;AACA,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/D,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE;AACnD,YAAY,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE;AAC7E,gBAAgB,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC;AACnG,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG;AACzC;AACA;AACA,aAAa,OAAO,CAAC,sBAAsB,EAAE,0BAA0B,CAAC;AACxE;AACA;AACA,aAAa,OAAO,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,CAAC;AACvE,QAAQ,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;AACnC,KAAK;AACL;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/request-error/package.json b/Client/node_modules/@octokit/request-error/package.json new file mode 100644 index 000000000..00f652d61 --- /dev/null +++ b/Client/node_modules/@octokit/request-error/package.json @@ -0,0 +1,80 @@ +{ + "_from": "@octokit/request-error@^2.0.0", + "_id": "@octokit/request-error@2.0.4", + "_inBundle": false, + "_integrity": "sha512-LjkSiTbsxIErBiRh5wSZvpZqT4t0/c9+4dOe0PII+6jXR+oj/h66s7E4a/MghV7iT8W9ffoQ5Skoxzs96+gBPA==", + "_location": "/@octokit/request-error", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@octokit/request-error@^2.0.0", + "name": "@octokit/request-error", + "escapedName": "@octokit%2frequest-error", + "scope": "@octokit", + "rawSpec": "^2.0.0", + "saveSpec": null, + "fetchSpec": "^2.0.0" + }, + "_requiredBy": [ + "/@octokit/request" + ], + "_resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.4.tgz", + "_shasum": "07dd5c0521d2ee975201274c472a127917741262", + "_spec": "@octokit/request-error@^2.0.0", + "_where": "C:\\Superalgos\\Client\\node_modules\\@octokit\\request", + "bugs": { + "url": "https://github.com/octokit/request-error.js/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@octokit/types": "^6.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "deprecated": false, + "description": "Error class for Octokit request errors", + "devDependencies": { + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-bundle-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "@types/jest": "^26.0.0", + "@types/node": "^14.0.4", + "@types/once": "^1.4.0", + "jest": "^25.1.0", + "pika-plugin-unpkg-field": "^1.1.0", + "prettier": "^2.0.1", + "semantic-release": "^17.0.0", + "ts-jest": "^25.1.0", + "typescript": "^3.4.5" + }, + "files": [ + "dist-*/", + "bin/" + ], + "homepage": "https://github.com/octokit/request-error.js#readme", + "keywords": [ + "octokit", + "github", + "api", + "error" + ], + "license": "MIT", + "main": "dist-node/index.js", + "module": "dist-web/index.js", + "name": "@octokit/request-error", + "pika": true, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/octokit/request-error.js.git" + }, + "sideEffects": false, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "version": "2.0.4" +} diff --git a/Client/node_modules/@octokit/request/LICENSE b/Client/node_modules/@octokit/request/LICENSE new file mode 100644 index 000000000..af5366d0d --- /dev/null +++ b/Client/node_modules/@octokit/request/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2018 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Client/node_modules/@octokit/request/README.md b/Client/node_modules/@octokit/request/README.md new file mode 100644 index 000000000..514eb6e28 --- /dev/null +++ b/Client/node_modules/@octokit/request/README.md @@ -0,0 +1,541 @@ +# request.js + +> Send parameterized requests to GitHub’s APIs with sensible defaults in browsers and Node + +[![@latest](https://img.shields.io/npm/v/@octokit/request.svg)](https://www.npmjs.com/package/@octokit/request) +[![Build Status](https://github.com/octokit/request.js/workflows/Test/badge.svg)](https://github.com/octokit/request.js/actions?query=workflow%3ATest+branch%3Amaster) + +`@octokit/request` is a request library for browsers & node that makes it easier +to interact with [GitHub’s REST API](https://developer.github.com/v3/) and +[GitHub’s GraphQL API](https://developer.github.com/v4/guides/forming-calls/#the-graphql-endpoint). + +It uses [`@octokit/endpoint`](https://github.com/octokit/endpoint.js) to parse +the passed options and sends the request using [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) +([node-fetch](https://github.com/bitinn/node-fetch) in Node). + + + + + +- [Features](#features) +- [Usage](#usage) + - [REST API example](#rest-api-example) + - [GraphQL example](#graphql-example) + - [Alternative: pass `method` & `url` as part of options](#alternative-pass-method--url-as-part-of-options) +- [Authentication](#authentication) +- [request()](#request) +- [`request.defaults()`](#requestdefaults) +- [`request.endpoint`](#requestendpoint) +- [Special cases](#special-cases) + - [The `data` parameter – set request body directly](#the-data-parameter-%E2%80%93-set-request-body-directly) + - [Set parameters for both the URL/query and the request body](#set-parameters-for-both-the-urlquery-and-the-request-body) +- [LICENSE](#license) + + + +## Features + +🤩 1:1 mapping of REST API endpoint documentation, e.g. [Add labels to an issue](https://developer.github.com/v3/issues/labels/#add-labels-to-an-issue) becomes + +```js +request("POST /repos/{owner}/{repo}/issues/{number}/labels", { + mediaType: { + previews: ["symmetra"], + }, + owner: "octokit", + repo: "request.js", + number: 1, + labels: ["🐛 bug"], +}); +``` + +👶 [Small bundle size](https://bundlephobia.com/result?p=@octokit/request@5.0.3) (\<4kb minified + gzipped) + +😎 [Authenticate](#authentication) with any of [GitHubs Authentication Strategies](https://github.com/octokit/auth.js). + +👍 Sensible defaults + +- `baseUrl`: `https://api.github.com` +- `headers.accept`: `application/vnd.github.v3+json` +- `headers.agent`: `octokit-request.js/ `, e.g. `octokit-request.js/1.2.3 Node.js/10.15.0 (macOS Mojave; x64)` + +👌 Simple to test: mock requests by passing a custom fetch method. + +🧐 Simple to debug: Sets `error.request` to request options causing the error (with redacted credentials). + +## Usage + + + + + + +
+Browsers + +Load @octokit/request directly from cdn.skypack.dev + +```html + +``` + +
+Node + + +Install with npm install @octokit/request + +```js +const { request } = require("@octokit/request"); +// or: import { request } from "@octokit/request"; +``` + +
+ +### REST API example + +```js +// Following GitHub docs formatting: +// https://developer.github.com/v3/repos/#list-organization-repositories +const result = await request("GET /orgs/{org}/repos", { + headers: { + authorization: "token 0000000000000000000000000000000000000001", + }, + org: "octokit", + type: "private", +}); + +console.log(`${result.data.length} repos found.`); +``` + +### GraphQL example + +For GraphQL request we recommend using [`@octokit/graphql`](https://github.com/octokit/graphql.js#readme) + +```js +const result = await request("POST /graphql", { + headers: { + authorization: "token 0000000000000000000000000000000000000001", + }, + query: `query ($login: String!) { + organization(login: $login) { + repositories(privacy: PRIVATE) { + totalCount + } + } + }`, + variables: { + login: "octokit", + }, +}); +``` + +### Alternative: pass `method` & `url` as part of options + +Alternatively, pass in a method and a url + +```js +const result = await request({ + method: "GET", + url: "/orgs/{org}/repos", + headers: { + authorization: "token 0000000000000000000000000000000000000001", + }, + org: "octokit", + type: "private", +}); +``` + +## Authentication + +The simplest way to authenticate a request is to set the `Authorization` header directly, e.g. to a [personal access token](https://github.com/settings/tokens/). + +```js +const requestWithAuth = request.defaults({ + headers: { + authorization: "token 0000000000000000000000000000000000000001", + }, +}); +const result = await requestWithAuth("GET /user"); +``` + +For more complex authentication strategies such as GitHub Apps or Basic, we recommend the according authentication library exported by [`@octokit/auth`](https://github.com/octokit/auth.js). + +```js +const { createAppAuth } = require("@octokit/auth-app"); +const auth = createAppAuth({ + appId: process.env.APP_ID, + privateKey: process.env.PRIVATE_KEY, + installationId: 123, +}); +const requestWithAuth = request.defaults({ + request: { + hook: auth.hook, + }, + mediaType: { + previews: ["machine-man"], + }, +}); + +const { data: app } = await requestWithAuth("GET /app"); +const { data: app } = await requestWithAuth( + "POST /repos/{owner}/{repo}/issues", + { + owner: "octocat", + repo: "hello-world", + title: "Hello from the engine room", + } +); +``` + +## request() + +`request(route, options)` or `request(options)`. + +**Options** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ name + + type + + description +
+ route + + String + + If route is set it has to be a string consisting of the request method and URL, e.g. GET /orgs/{org} +
+ options.baseUrl + + String + + Required. Any supported http verb, case insensitive. Defaults to https://api.github.com. +
+ options.headers + + Object + + Custom headers. Passed headers are merged with defaults:
+ headers['user-agent'] defaults to octokit-rest.js/1.2.3 (where 1.2.3 is the released version).
+ headers['accept'] defaults to application/vnd.github.v3+json.
Use options.mediaType.{format,previews} to request API previews and custom media types. +
+ options.mediaType.format + + String + + Media type param, such as `raw`, `html`, or `full`. See Media Types. +
+ options.mediaType.previews + + Array of strings + + Name of previews, such as `mercy`, `symmetra`, or `scarlet-witch`. See API Previews. +
+ options.method + + String + + Required. Any supported http verb, case insensitive. Defaults to Get. +
+ options.url + + String + + Required. A path or full URL which may contain :variable or {variable} placeholders, + e.g. /orgs/{org}/repos. The url is parsed using url-template. +
+ options.data + + Any + + Set request body directly instead of setting it to JSON based on additional parameters. See "The `data` parameter" below. +
+ options.request.agent + + http(s).Agent instance + + Node only. Useful for custom proxy, certificate, or dns lookup. +
+ options.request.fetch + + Function + + Custom replacement for built-in fetch method. Useful for testing or request hooks. +
+ options.request.hook + + Function + + Function with the signature hook(request, endpointOptions), where endpointOptions are the parsed options as returned by endpoint.merge(), and request is request(). This option works great in conjuction with before-after-hook. +
+ options.request.signal + + new AbortController().signal + + Use an AbortController instance to cancel a request. In node you can only cancel streamed requests. +
+ options.request.timeout + + Number + + Node only. Request/response timeout in ms, it resets on redirect. 0 to disable (OS limit applies). options.request.signal is recommended instead. +
+ +All other options except `options.request.*` will be passed depending on the `method` and `url` options. + +1. If the option key is a placeholder in the `url`, it will be used as replacement. For example, if the passed options are `{url: '/orgs/{org}/repos', org: 'foo'}` the returned `options.url` is `https://api.github.com/orgs/foo/repos` +2. If the `method` is `GET` or `HEAD`, the option is passed as query parameter +3. Otherwise the parameter is passed in the request body as JSON key. + +**Result** + +`request` returns a promise and resolves with 4 keys + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ key + + type + + description +
statusIntegerResponse status status
urlStringURL of response. If a request results in redirects, this is the final URL. You can send a HEAD request to retrieve it without loading the full response body.
headersObjectAll response headers
dataAnyThe response body as returned from server. If the response is JSON then it will be parsed into an object
+ +If an error occurs, the `error` instance has additional properties to help with debugging + +- `error.status` The http response status code +- `error.headers` The http response headers as an object +- `error.request` The request options such as `method`, `url` and `data` + +## `request.defaults()` + +Override or set default options. Example: + +```js +const myrequest = require("@octokit/request").defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", + headers: { + "user-agent": "myApp/1.2.3", + authorization: `token 0000000000000000000000000000000000000001`, + }, + org: "my-project", + per_page: 100, +}); + +myrequest(`GET /orgs/{org}/repos`); +``` + +You can call `.defaults()` again on the returned method, the defaults will cascade. + +```js +const myProjectRequest = request.defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", + headers: { + "user-agent": "myApp/1.2.3", + }, + org: "my-project", +}); +const myProjectRequestWithAuth = myProjectRequest.defaults({ + headers: { + authorization: `token 0000000000000000000000000000000000000001`, + }, +}); +``` + +`myProjectRequest` now defaults the `baseUrl`, `headers['user-agent']`, +`org` and `headers['authorization']` on top of `headers['accept']` that is set +by the global default. + +## `request.endpoint` + +See https://github.com/octokit/endpoint.js. Example + +```js +const options = request.endpoint("GET /orgs/{org}/repos", { + org: "my-project", + type: "private", +}); + +// { +// method: 'GET', +// url: 'https://api.github.com/orgs/my-project/repos?type=private', +// headers: { +// accept: 'application/vnd.github.v3+json', +// authorization: 'token 0000000000000000000000000000000000000001', +// 'user-agent': 'octokit/endpoint.js v1.2.3' +// } +// } +``` + +All of the [`@octokit/endpoint`](https://github.com/octokit/endpoint.js) API can be used: + +- [`octokitRequest.endpoint()`](#endpoint) +- [`octokitRequest.endpoint.defaults()`](#endpointdefaults) +- [`octokitRequest.endpoint.merge()`](#endpointdefaults) +- [`octokitRequest.endpoint.parse()`](#endpointmerge) + +## Special cases + + + +### The `data` parameter – set request body directly + +Some endpoints such as [Render a Markdown document in raw mode](https://developer.github.com/v3/markdown/#render-a-markdown-document-in-raw-mode) don’t have parameters that are sent as request body keys, instead the request body needs to be set directly. In these cases, set the `data` parameter. + +```js +const response = await request("POST /markdown/raw", { + data: "Hello world github/linguist#1 **cool**, and #1!", + headers: { + accept: "text/html;charset=utf-8", + "content-type": "text/plain", + }, +}); + +// Request is sent as +// +// { +// method: 'post', +// url: 'https://api.github.com/markdown/raw', +// headers: { +// accept: 'text/html;charset=utf-8', +// 'content-type': 'text/plain', +// 'user-agent': userAgent +// }, +// body: 'Hello world github/linguist#1 **cool**, and #1!' +// } +// +// not as +// +// { +// ... +// body: '{"data": "Hello world github/linguist#1 **cool**, and #1!"}' +// } +``` + +### Set parameters for both the URL/query and the request body + +There are API endpoints that accept both query parameters as well as a body. In that case you need to add the query parameters as templates to `options.url`, as defined in the [RFC 6570 URI Template specification](https://tools.ietf.org/html/rfc6570). + +Example + +```js +request( + "POST https://uploads.github.com/repos/octocat/Hello-World/releases/1/assets{?name,label}", + { + name: "example.zip", + label: "short description", + headers: { + "content-type": "text/plain", + "content-length": 14, + authorization: `token 0000000000000000000000000000000000000001`, + }, + data: "Hello, world!", + } +); +``` + +## LICENSE + +[MIT](LICENSE) diff --git a/Client/node_modules/@octokit/request/dist-node/index.js b/Client/node_modules/@octokit/request/dist-node/index.js new file mode 100644 index 000000000..808deb661 --- /dev/null +++ b/Client/node_modules/@octokit/request/dist-node/index.js @@ -0,0 +1,148 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var endpoint = require('@octokit/endpoint'); +var universalUserAgent = require('universal-user-agent'); +var isPlainObject = require('is-plain-object'); +var nodeFetch = _interopDefault(require('node-fetch')); +var requestError = require('@octokit/request-error'); + +const VERSION = "5.4.12"; + +function getBufferResponse(response) { + return response.arrayBuffer(); +} + +function fetchWrapper(requestOptions) { + if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) { + requestOptions.body = JSON.stringify(requestOptions.body); + } + + let headers = {}; + let status; + let url; + const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch; + return fetch(requestOptions.url, Object.assign({ + method: requestOptions.method, + body: requestOptions.body, + headers: requestOptions.headers, + redirect: requestOptions.redirect + }, requestOptions.request)).then(response => { + url = response.url; + status = response.status; + + for (const keyAndValue of response.headers) { + headers[keyAndValue[0]] = keyAndValue[1]; + } + + if (status === 204 || status === 205) { + return; + } // GitHub API returns 200 for HEAD requests + + + if (requestOptions.method === "HEAD") { + if (status < 400) { + return; + } + + throw new requestError.RequestError(response.statusText, status, { + headers, + request: requestOptions + }); + } + + if (status === 304) { + throw new requestError.RequestError("Not modified", status, { + headers, + request: requestOptions + }); + } + + if (status >= 400) { + return response.text().then(message => { + const error = new requestError.RequestError(message, status, { + headers, + request: requestOptions + }); + + try { + let responseBody = JSON.parse(error.message); + Object.assign(error, responseBody); + let errors = responseBody.errors; // Assumption `errors` would always be in Array format + + error.message = error.message + ": " + errors.map(JSON.stringify).join(", "); + } catch (e) {// ignore, see octokit/rest.js#684 + } + + throw error; + }); + } + + const contentType = response.headers.get("content-type"); + + if (/application\/json/.test(contentType)) { + return response.json(); + } + + if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { + return response.text(); + } + + return getBufferResponse(response); + }).then(data => { + return { + status, + url, + headers, + data + }; + }).catch(error => { + if (error instanceof requestError.RequestError) { + throw error; + } + + throw new requestError.RequestError(error.message, 500, { + headers, + request: requestOptions + }); + }); +} + +function withDefaults(oldEndpoint, newDefaults) { + const endpoint = oldEndpoint.defaults(newDefaults); + + const newApi = function (route, parameters) { + const endpointOptions = endpoint.merge(route, parameters); + + if (!endpointOptions.request || !endpointOptions.request.hook) { + return fetchWrapper(endpoint.parse(endpointOptions)); + } + + const request = (route, parameters) => { + return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters))); + }; + + Object.assign(request, { + endpoint, + defaults: withDefaults.bind(null, endpoint) + }); + return endpointOptions.request.hook(request, endpointOptions); + }; + + return Object.assign(newApi, { + endpoint, + defaults: withDefaults.bind(null, endpoint) + }); +} + +const request = withDefaults(endpoint.endpoint, { + headers: { + "user-agent": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}` + } +}); + +exports.request = request; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/request/dist-node/index.js.map b/Client/node_modules/@octokit/request/dist-node/index.js.map new file mode 100644 index 000000000..cfa7cc056 --- /dev/null +++ b/Client/node_modules/@octokit/request/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/get-buffer-response.js","../dist-src/fetch-wrapper.js","../dist-src/with-defaults.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"5.4.12\";\n","export default function getBufferResponse(response) {\n return response.arrayBuffer();\n}\n","import { isPlainObject } from \"is-plain-object\";\nimport nodeFetch from \"node-fetch\";\nimport { RequestError } from \"@octokit/request-error\";\nimport getBuffer from \"./get-buffer-response\";\nexport default function fetchWrapper(requestOptions) {\n if (isPlainObject(requestOptions.body) ||\n Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n let headers = {};\n let status;\n let url;\n const fetch = (requestOptions.request && requestOptions.request.fetch) || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect,\n }, requestOptions.request))\n .then((response) => {\n url = response.url;\n status = response.status;\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n if (status === 204 || status === 205) {\n return;\n }\n // GitHub API returns 200 for HEAD requests\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n throw new RequestError(response.statusText, status, {\n headers,\n request: requestOptions,\n });\n }\n if (status === 304) {\n throw new RequestError(\"Not modified\", status, {\n headers,\n request: requestOptions,\n });\n }\n if (status >= 400) {\n return response\n .text()\n .then((message) => {\n const error = new RequestError(message, status, {\n headers,\n request: requestOptions,\n });\n try {\n let responseBody = JSON.parse(error.message);\n Object.assign(error, responseBody);\n let errors = responseBody.errors;\n // Assumption `errors` would always be in Array format\n error.message =\n error.message + \": \" + errors.map(JSON.stringify).join(\", \");\n }\n catch (e) {\n // ignore, see octokit/rest.js#684\n }\n throw error;\n });\n }\n const contentType = response.headers.get(\"content-type\");\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n return getBuffer(response);\n })\n .then((data) => {\n return {\n status,\n url,\n headers,\n data,\n };\n })\n .catch((error) => {\n if (error instanceof RequestError) {\n throw error;\n }\n throw new RequestError(error.message, 500, {\n headers,\n request: requestOptions,\n });\n });\n}\n","import fetchWrapper from \"./fetch-wrapper\";\nexport default function withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint),\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint),\n });\n}\n","import { endpoint } from \"@octokit/endpoint\";\nimport { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nimport withDefaults from \"./with-defaults\";\nexport const request = withDefaults(endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${getUserAgent()}`,\n },\n});\n"],"names":["VERSION","getBufferResponse","response","arrayBuffer","fetchWrapper","requestOptions","isPlainObject","body","Array","isArray","JSON","stringify","headers","status","url","fetch","request","nodeFetch","Object","assign","method","redirect","then","keyAndValue","RequestError","statusText","text","message","error","responseBody","parse","errors","map","join","e","contentType","get","test","json","getBuffer","data","catch","withDefaults","oldEndpoint","newDefaults","endpoint","defaults","newApi","route","parameters","endpointOptions","merge","hook","bind","getUserAgent"],"mappings":";;;;;;;;;;;;AAAO,MAAMA,OAAO,GAAG,mBAAhB;;ACAQ,SAASC,iBAAT,CAA2BC,QAA3B,EAAqC;AAChD,SAAOA,QAAQ,CAACC,WAAT,EAAP;AACH;;ACEc,SAASC,YAAT,CAAsBC,cAAtB,EAAsC;AACjD,MAAIC,2BAAa,CAACD,cAAc,CAACE,IAAhB,CAAb,IACAC,KAAK,CAACC,OAAN,CAAcJ,cAAc,CAACE,IAA7B,CADJ,EACwC;AACpCF,IAAAA,cAAc,CAACE,IAAf,GAAsBG,IAAI,CAACC,SAAL,CAAeN,cAAc,CAACE,IAA9B,CAAtB;AACH;;AACD,MAAIK,OAAO,GAAG,EAAd;AACA,MAAIC,MAAJ;AACA,MAAIC,GAAJ;AACA,QAAMC,KAAK,GAAIV,cAAc,CAACW,OAAf,IAA0BX,cAAc,CAACW,OAAf,CAAuBD,KAAlD,IAA4DE,SAA1E;AACA,SAAOF,KAAK,CAACV,cAAc,CAACS,GAAhB,EAAqBI,MAAM,CAACC,MAAP,CAAc;AAC3CC,IAAAA,MAAM,EAAEf,cAAc,CAACe,MADoB;AAE3Cb,IAAAA,IAAI,EAAEF,cAAc,CAACE,IAFsB;AAG3CK,IAAAA,OAAO,EAAEP,cAAc,CAACO,OAHmB;AAI3CS,IAAAA,QAAQ,EAAEhB,cAAc,CAACgB;AAJkB,GAAd,EAK9BhB,cAAc,CAACW,OALe,CAArB,CAAL,CAMFM,IANE,CAMIpB,QAAD,IAAc;AACpBY,IAAAA,GAAG,GAAGZ,QAAQ,CAACY,GAAf;AACAD,IAAAA,MAAM,GAAGX,QAAQ,CAACW,MAAlB;;AACA,SAAK,MAAMU,WAAX,IAA0BrB,QAAQ,CAACU,OAAnC,EAA4C;AACxCA,MAAAA,OAAO,CAACW,WAAW,CAAC,CAAD,CAAZ,CAAP,GAA0BA,WAAW,CAAC,CAAD,CAArC;AACH;;AACD,QAAIV,MAAM,KAAK,GAAX,IAAkBA,MAAM,KAAK,GAAjC,EAAsC;AAClC;AACH,KARmB;;;AAUpB,QAAIR,cAAc,CAACe,MAAf,KAA0B,MAA9B,EAAsC;AAClC,UAAIP,MAAM,GAAG,GAAb,EAAkB;AACd;AACH;;AACD,YAAM,IAAIW,yBAAJ,CAAiBtB,QAAQ,CAACuB,UAA1B,EAAsCZ,MAAtC,EAA8C;AAChDD,QAAAA,OADgD;AAEhDI,QAAAA,OAAO,EAAEX;AAFuC,OAA9C,CAAN;AAIH;;AACD,QAAIQ,MAAM,KAAK,GAAf,EAAoB;AAChB,YAAM,IAAIW,yBAAJ,CAAiB,cAAjB,EAAiCX,MAAjC,EAAyC;AAC3CD,QAAAA,OAD2C;AAE3CI,QAAAA,OAAO,EAAEX;AAFkC,OAAzC,CAAN;AAIH;;AACD,QAAIQ,MAAM,IAAI,GAAd,EAAmB;AACf,aAAOX,QAAQ,CACVwB,IADE,GAEFJ,IAFE,CAEIK,OAAD,IAAa;AACnB,cAAMC,KAAK,GAAG,IAAIJ,yBAAJ,CAAiBG,OAAjB,EAA0Bd,MAA1B,EAAkC;AAC5CD,UAAAA,OAD4C;AAE5CI,UAAAA,OAAO,EAAEX;AAFmC,SAAlC,CAAd;;AAIA,YAAI;AACA,cAAIwB,YAAY,GAAGnB,IAAI,CAACoB,KAAL,CAAWF,KAAK,CAACD,OAAjB,CAAnB;AACAT,UAAAA,MAAM,CAACC,MAAP,CAAcS,KAAd,EAAqBC,YAArB;AACA,cAAIE,MAAM,GAAGF,YAAY,CAACE,MAA1B,CAHA;;AAKAH,UAAAA,KAAK,CAACD,OAAN,GACIC,KAAK,CAACD,OAAN,GAAgB,IAAhB,GAAuBI,MAAM,CAACC,GAAP,CAAWtB,IAAI,CAACC,SAAhB,EAA2BsB,IAA3B,CAAgC,IAAhC,CAD3B;AAEH,SAPD,CAQA,OAAOC,CAAP,EAAU;AAET;;AACD,cAAMN,KAAN;AACH,OAnBM,CAAP;AAoBH;;AACD,UAAMO,WAAW,GAAGjC,QAAQ,CAACU,OAAT,CAAiBwB,GAAjB,CAAqB,cAArB,CAApB;;AACA,QAAI,oBAAoBC,IAApB,CAAyBF,WAAzB,CAAJ,EAA2C;AACvC,aAAOjC,QAAQ,CAACoC,IAAT,EAAP;AACH;;AACD,QAAI,CAACH,WAAD,IAAgB,yBAAyBE,IAAzB,CAA8BF,WAA9B,CAApB,EAAgE;AAC5D,aAAOjC,QAAQ,CAACwB,IAAT,EAAP;AACH;;AACD,WAAOa,iBAAS,CAACrC,QAAD,CAAhB;AACH,GA7DM,EA8DFoB,IA9DE,CA8DIkB,IAAD,IAAU;AAChB,WAAO;AACH3B,MAAAA,MADG;AAEHC,MAAAA,GAFG;AAGHF,MAAAA,OAHG;AAIH4B,MAAAA;AAJG,KAAP;AAMH,GArEM,EAsEFC,KAtEE,CAsEKb,KAAD,IAAW;AAClB,QAAIA,KAAK,YAAYJ,yBAArB,EAAmC;AAC/B,YAAMI,KAAN;AACH;;AACD,UAAM,IAAIJ,yBAAJ,CAAiBI,KAAK,CAACD,OAAvB,EAAgC,GAAhC,EAAqC;AACvCf,MAAAA,OADuC;AAEvCI,MAAAA,OAAO,EAAEX;AAF8B,KAArC,CAAN;AAIH,GA9EM,CAAP;AA+EH;;AC3Fc,SAASqC,YAAT,CAAsBC,WAAtB,EAAmCC,WAAnC,EAAgD;AAC3D,QAAMC,QAAQ,GAAGF,WAAW,CAACG,QAAZ,CAAqBF,WAArB,CAAjB;;AACA,QAAMG,MAAM,GAAG,UAAUC,KAAV,EAAiBC,UAAjB,EAA6B;AACxC,UAAMC,eAAe,GAAGL,QAAQ,CAACM,KAAT,CAAeH,KAAf,EAAsBC,UAAtB,CAAxB;;AACA,QAAI,CAACC,eAAe,CAAClC,OAAjB,IAA4B,CAACkC,eAAe,CAAClC,OAAhB,CAAwBoC,IAAzD,EAA+D;AAC3D,aAAOhD,YAAY,CAACyC,QAAQ,CAACf,KAAT,CAAeoB,eAAf,CAAD,CAAnB;AACH;;AACD,UAAMlC,OAAO,GAAG,CAACgC,KAAD,EAAQC,UAAR,KAAuB;AACnC,aAAO7C,YAAY,CAACyC,QAAQ,CAACf,KAAT,CAAee,QAAQ,CAACM,KAAT,CAAeH,KAAf,EAAsBC,UAAtB,CAAf,CAAD,CAAnB;AACH,KAFD;;AAGA/B,IAAAA,MAAM,CAACC,MAAP,CAAcH,OAAd,EAAuB;AACnB6B,MAAAA,QADmB;AAEnBC,MAAAA,QAAQ,EAAEJ,YAAY,CAACW,IAAb,CAAkB,IAAlB,EAAwBR,QAAxB;AAFS,KAAvB;AAIA,WAAOK,eAAe,CAAClC,OAAhB,CAAwBoC,IAAxB,CAA6BpC,OAA7B,EAAsCkC,eAAtC,CAAP;AACH,GAbD;;AAcA,SAAOhC,MAAM,CAACC,MAAP,CAAc4B,MAAd,EAAsB;AACzBF,IAAAA,QADyB;AAEzBC,IAAAA,QAAQ,EAAEJ,YAAY,CAACW,IAAb,CAAkB,IAAlB,EAAwBR,QAAxB;AAFe,GAAtB,CAAP;AAIH;;MCjBY7B,OAAO,GAAG0B,YAAY,CAACG,iBAAD,EAAW;AAC1CjC,EAAAA,OAAO,EAAE;AACL,kBAAe,sBAAqBZ,OAAQ,IAAGsD,+BAAY,EAAG;AADzD;AADiC,CAAX,CAA5B;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/request/dist-src/fetch-wrapper.js b/Client/node_modules/@octokit/request/dist-src/fetch-wrapper.js new file mode 100644 index 000000000..e4ae1b0b4 --- /dev/null +++ b/Client/node_modules/@octokit/request/dist-src/fetch-wrapper.js @@ -0,0 +1,93 @@ +import { isPlainObject } from "is-plain-object"; +import nodeFetch from "node-fetch"; +import { RequestError } from "@octokit/request-error"; +import getBuffer from "./get-buffer-response"; +export default function fetchWrapper(requestOptions) { + if (isPlainObject(requestOptions.body) || + Array.isArray(requestOptions.body)) { + requestOptions.body = JSON.stringify(requestOptions.body); + } + let headers = {}; + let status; + let url; + const fetch = (requestOptions.request && requestOptions.request.fetch) || nodeFetch; + return fetch(requestOptions.url, Object.assign({ + method: requestOptions.method, + body: requestOptions.body, + headers: requestOptions.headers, + redirect: requestOptions.redirect, + }, requestOptions.request)) + .then((response) => { + url = response.url; + status = response.status; + for (const keyAndValue of response.headers) { + headers[keyAndValue[0]] = keyAndValue[1]; + } + if (status === 204 || status === 205) { + return; + } + // GitHub API returns 200 for HEAD requests + if (requestOptions.method === "HEAD") { + if (status < 400) { + return; + } + throw new RequestError(response.statusText, status, { + headers, + request: requestOptions, + }); + } + if (status === 304) { + throw new RequestError("Not modified", status, { + headers, + request: requestOptions, + }); + } + if (status >= 400) { + return response + .text() + .then((message) => { + const error = new RequestError(message, status, { + headers, + request: requestOptions, + }); + try { + let responseBody = JSON.parse(error.message); + Object.assign(error, responseBody); + let errors = responseBody.errors; + // Assumption `errors` would always be in Array format + error.message = + error.message + ": " + errors.map(JSON.stringify).join(", "); + } + catch (e) { + // ignore, see octokit/rest.js#684 + } + throw error; + }); + } + const contentType = response.headers.get("content-type"); + if (/application\/json/.test(contentType)) { + return response.json(); + } + if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { + return response.text(); + } + return getBuffer(response); + }) + .then((data) => { + return { + status, + url, + headers, + data, + }; + }) + .catch((error) => { + if (error instanceof RequestError) { + throw error; + } + throw new RequestError(error.message, 500, { + headers, + request: requestOptions, + }); + }); +} diff --git a/Client/node_modules/@octokit/request/dist-src/get-buffer-response.js b/Client/node_modules/@octokit/request/dist-src/get-buffer-response.js new file mode 100644 index 000000000..845a3947b --- /dev/null +++ b/Client/node_modules/@octokit/request/dist-src/get-buffer-response.js @@ -0,0 +1,3 @@ +export default function getBufferResponse(response) { + return response.arrayBuffer(); +} diff --git a/Client/node_modules/@octokit/request/dist-src/index.js b/Client/node_modules/@octokit/request/dist-src/index.js new file mode 100644 index 000000000..2460e992c --- /dev/null +++ b/Client/node_modules/@octokit/request/dist-src/index.js @@ -0,0 +1,9 @@ +import { endpoint } from "@octokit/endpoint"; +import { getUserAgent } from "universal-user-agent"; +import { VERSION } from "./version"; +import withDefaults from "./with-defaults"; +export const request = withDefaults(endpoint, { + headers: { + "user-agent": `octokit-request.js/${VERSION} ${getUserAgent()}`, + }, +}); diff --git a/Client/node_modules/@octokit/request/dist-src/version.js b/Client/node_modules/@octokit/request/dist-src/version.js new file mode 100644 index 000000000..7644e7735 --- /dev/null +++ b/Client/node_modules/@octokit/request/dist-src/version.js @@ -0,0 +1 @@ +export const VERSION = "5.4.12"; diff --git a/Client/node_modules/@octokit/request/dist-src/with-defaults.js b/Client/node_modules/@octokit/request/dist-src/with-defaults.js new file mode 100644 index 000000000..e20642945 --- /dev/null +++ b/Client/node_modules/@octokit/request/dist-src/with-defaults.js @@ -0,0 +1,22 @@ +import fetchWrapper from "./fetch-wrapper"; +export default function withDefaults(oldEndpoint, newDefaults) { + const endpoint = oldEndpoint.defaults(newDefaults); + const newApi = function (route, parameters) { + const endpointOptions = endpoint.merge(route, parameters); + if (!endpointOptions.request || !endpointOptions.request.hook) { + return fetchWrapper(endpoint.parse(endpointOptions)); + } + const request = (route, parameters) => { + return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters))); + }; + Object.assign(request, { + endpoint, + defaults: withDefaults.bind(null, endpoint), + }); + return endpointOptions.request.hook(request, endpointOptions); + }; + return Object.assign(newApi, { + endpoint, + defaults: withDefaults.bind(null, endpoint), + }); +} diff --git a/Client/node_modules/@octokit/request/dist-types/fetch-wrapper.d.ts b/Client/node_modules/@octokit/request/dist-types/fetch-wrapper.d.ts new file mode 100644 index 000000000..4901c79e7 --- /dev/null +++ b/Client/node_modules/@octokit/request/dist-types/fetch-wrapper.d.ts @@ -0,0 +1,11 @@ +import { EndpointInterface } from "@octokit/types"; +export default function fetchWrapper(requestOptions: ReturnType & { + redirect?: "error" | "follow" | "manual"; +}): Promise<{ + status: number; + url: string; + headers: { + [header: string]: string; + }; + data: any; +}>; diff --git a/Client/node_modules/@octokit/request/dist-types/get-buffer-response.d.ts b/Client/node_modules/@octokit/request/dist-types/get-buffer-response.d.ts new file mode 100644 index 000000000..915b70577 --- /dev/null +++ b/Client/node_modules/@octokit/request/dist-types/get-buffer-response.d.ts @@ -0,0 +1,2 @@ +import { Response } from "node-fetch"; +export default function getBufferResponse(response: Response): Promise; diff --git a/Client/node_modules/@octokit/request/dist-types/index.d.ts b/Client/node_modules/@octokit/request/dist-types/index.d.ts new file mode 100644 index 000000000..1030809f9 --- /dev/null +++ b/Client/node_modules/@octokit/request/dist-types/index.d.ts @@ -0,0 +1 @@ +export declare const request: import("@octokit/types").RequestInterface; diff --git a/Client/node_modules/@octokit/request/dist-types/version.d.ts b/Client/node_modules/@octokit/request/dist-types/version.d.ts new file mode 100644 index 000000000..0e4434ff6 --- /dev/null +++ b/Client/node_modules/@octokit/request/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "5.4.12"; diff --git a/Client/node_modules/@octokit/request/dist-types/with-defaults.d.ts b/Client/node_modules/@octokit/request/dist-types/with-defaults.d.ts new file mode 100644 index 000000000..00804693a --- /dev/null +++ b/Client/node_modules/@octokit/request/dist-types/with-defaults.d.ts @@ -0,0 +1,2 @@ +import { EndpointInterface, RequestInterface, RequestParameters } from "@octokit/types"; +export default function withDefaults(oldEndpoint: EndpointInterface, newDefaults: RequestParameters): RequestInterface; diff --git a/Client/node_modules/@octokit/request/dist-web/index.js b/Client/node_modules/@octokit/request/dist-web/index.js new file mode 100644 index 000000000..46c862516 --- /dev/null +++ b/Client/node_modules/@octokit/request/dist-web/index.js @@ -0,0 +1,132 @@ +import { endpoint } from '@octokit/endpoint'; +import { getUserAgent } from 'universal-user-agent'; +import { isPlainObject } from 'is-plain-object'; +import nodeFetch from 'node-fetch'; +import { RequestError } from '@octokit/request-error'; + +const VERSION = "5.4.12"; + +function getBufferResponse(response) { + return response.arrayBuffer(); +} + +function fetchWrapper(requestOptions) { + if (isPlainObject(requestOptions.body) || + Array.isArray(requestOptions.body)) { + requestOptions.body = JSON.stringify(requestOptions.body); + } + let headers = {}; + let status; + let url; + const fetch = (requestOptions.request && requestOptions.request.fetch) || nodeFetch; + return fetch(requestOptions.url, Object.assign({ + method: requestOptions.method, + body: requestOptions.body, + headers: requestOptions.headers, + redirect: requestOptions.redirect, + }, requestOptions.request)) + .then((response) => { + url = response.url; + status = response.status; + for (const keyAndValue of response.headers) { + headers[keyAndValue[0]] = keyAndValue[1]; + } + if (status === 204 || status === 205) { + return; + } + // GitHub API returns 200 for HEAD requests + if (requestOptions.method === "HEAD") { + if (status < 400) { + return; + } + throw new RequestError(response.statusText, status, { + headers, + request: requestOptions, + }); + } + if (status === 304) { + throw new RequestError("Not modified", status, { + headers, + request: requestOptions, + }); + } + if (status >= 400) { + return response + .text() + .then((message) => { + const error = new RequestError(message, status, { + headers, + request: requestOptions, + }); + try { + let responseBody = JSON.parse(error.message); + Object.assign(error, responseBody); + let errors = responseBody.errors; + // Assumption `errors` would always be in Array format + error.message = + error.message + ": " + errors.map(JSON.stringify).join(", "); + } + catch (e) { + // ignore, see octokit/rest.js#684 + } + throw error; + }); + } + const contentType = response.headers.get("content-type"); + if (/application\/json/.test(contentType)) { + return response.json(); + } + if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { + return response.text(); + } + return getBufferResponse(response); + }) + .then((data) => { + return { + status, + url, + headers, + data, + }; + }) + .catch((error) => { + if (error instanceof RequestError) { + throw error; + } + throw new RequestError(error.message, 500, { + headers, + request: requestOptions, + }); + }); +} + +function withDefaults(oldEndpoint, newDefaults) { + const endpoint = oldEndpoint.defaults(newDefaults); + const newApi = function (route, parameters) { + const endpointOptions = endpoint.merge(route, parameters); + if (!endpointOptions.request || !endpointOptions.request.hook) { + return fetchWrapper(endpoint.parse(endpointOptions)); + } + const request = (route, parameters) => { + return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters))); + }; + Object.assign(request, { + endpoint, + defaults: withDefaults.bind(null, endpoint), + }); + return endpointOptions.request.hook(request, endpointOptions); + }; + return Object.assign(newApi, { + endpoint, + defaults: withDefaults.bind(null, endpoint), + }); +} + +const request = withDefaults(endpoint, { + headers: { + "user-agent": `octokit-request.js/${VERSION} ${getUserAgent()}`, + }, +}); + +export { request }; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/request/dist-web/index.js.map b/Client/node_modules/@octokit/request/dist-web/index.js.map new file mode 100644 index 000000000..0bddd0d14 --- /dev/null +++ b/Client/node_modules/@octokit/request/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/get-buffer-response.js","../dist-src/fetch-wrapper.js","../dist-src/with-defaults.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"5.4.12\";\n","export default function getBufferResponse(response) {\n return response.arrayBuffer();\n}\n","import { isPlainObject } from \"is-plain-object\";\nimport nodeFetch from \"node-fetch\";\nimport { RequestError } from \"@octokit/request-error\";\nimport getBuffer from \"./get-buffer-response\";\nexport default function fetchWrapper(requestOptions) {\n if (isPlainObject(requestOptions.body) ||\n Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n let headers = {};\n let status;\n let url;\n const fetch = (requestOptions.request && requestOptions.request.fetch) || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect,\n }, requestOptions.request))\n .then((response) => {\n url = response.url;\n status = response.status;\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n if (status === 204 || status === 205) {\n return;\n }\n // GitHub API returns 200 for HEAD requests\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n throw new RequestError(response.statusText, status, {\n headers,\n request: requestOptions,\n });\n }\n if (status === 304) {\n throw new RequestError(\"Not modified\", status, {\n headers,\n request: requestOptions,\n });\n }\n if (status >= 400) {\n return response\n .text()\n .then((message) => {\n const error = new RequestError(message, status, {\n headers,\n request: requestOptions,\n });\n try {\n let responseBody = JSON.parse(error.message);\n Object.assign(error, responseBody);\n let errors = responseBody.errors;\n // Assumption `errors` would always be in Array format\n error.message =\n error.message + \": \" + errors.map(JSON.stringify).join(\", \");\n }\n catch (e) {\n // ignore, see octokit/rest.js#684\n }\n throw error;\n });\n }\n const contentType = response.headers.get(\"content-type\");\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n return getBuffer(response);\n })\n .then((data) => {\n return {\n status,\n url,\n headers,\n data,\n };\n })\n .catch((error) => {\n if (error instanceof RequestError) {\n throw error;\n }\n throw new RequestError(error.message, 500, {\n headers,\n request: requestOptions,\n });\n });\n}\n","import fetchWrapper from \"./fetch-wrapper\";\nexport default function withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint),\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint),\n });\n}\n","import { endpoint } from \"@octokit/endpoint\";\nimport { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nimport withDefaults from \"./with-defaults\";\nexport const request = withDefaults(endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${getUserAgent()}`,\n },\n});\n"],"names":["getBuffer"],"mappings":";;;;;;AAAO,MAAM,OAAO,GAAG,mBAAmB;;ACA3B,SAAS,iBAAiB,CAAC,QAAQ,EAAE;AACpD,IAAI,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;;ACEc,SAAS,YAAY,CAAC,cAAc,EAAE;AACrD,IAAI,IAAI,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC;AAC1C,QAAQ,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;AAC5C,QAAQ,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAClE,KAAK;AACL,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC;AACrB,IAAI,IAAI,MAAM,CAAC;AACf,IAAI,IAAI,GAAG,CAAC;AACZ,IAAI,MAAM,KAAK,GAAG,CAAC,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC;AACxF,IAAI,OAAO,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC;AACnD,QAAQ,MAAM,EAAE,cAAc,CAAC,MAAM;AACrC,QAAQ,IAAI,EAAE,cAAc,CAAC,IAAI;AACjC,QAAQ,OAAO,EAAE,cAAc,CAAC,OAAO;AACvC,QAAQ,QAAQ,EAAE,cAAc,CAAC,QAAQ;AACzC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;AAC/B,SAAS,IAAI,CAAC,CAAC,QAAQ,KAAK;AAC5B,QAAQ,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;AAC3B,QAAQ,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AACjC,QAAQ,KAAK,MAAM,WAAW,IAAI,QAAQ,CAAC,OAAO,EAAE;AACpD,YAAY,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACrD,SAAS;AACT,QAAQ,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE;AAC9C,YAAY,OAAO;AACnB,SAAS;AACT;AACA,QAAQ,IAAI,cAAc,CAAC,MAAM,KAAK,MAAM,EAAE;AAC9C,YAAY,IAAI,MAAM,GAAG,GAAG,EAAE;AAC9B,gBAAgB,OAAO;AACvB,aAAa;AACb,YAAY,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE;AAChE,gBAAgB,OAAO;AACvB,gBAAgB,OAAO,EAAE,cAAc;AACvC,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,IAAI,MAAM,KAAK,GAAG,EAAE;AAC5B,YAAY,MAAM,IAAI,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE;AAC3D,gBAAgB,OAAO;AACvB,gBAAgB,OAAO,EAAE,cAAc;AACvC,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,IAAI,MAAM,IAAI,GAAG,EAAE;AAC3B,YAAY,OAAO,QAAQ;AAC3B,iBAAiB,IAAI,EAAE;AACvB,iBAAiB,IAAI,CAAC,CAAC,OAAO,KAAK;AACnC,gBAAgB,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE;AAChE,oBAAoB,OAAO;AAC3B,oBAAoB,OAAO,EAAE,cAAc;AAC3C,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,IAAI;AACpB,oBAAoB,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACjE,oBAAoB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AACvD,oBAAoB,IAAI,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;AACrD;AACA,oBAAoB,KAAK,CAAC,OAAO;AACjC,wBAAwB,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrF,iBAAiB;AACjB,gBAAgB,OAAO,CAAC,EAAE;AAC1B;AACA,iBAAiB;AACjB,gBAAgB,MAAM,KAAK,CAAC;AAC5B,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACjE,QAAQ,IAAI,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AACnD,YAAY,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACnC,SAAS;AACT,QAAQ,IAAI,CAAC,WAAW,IAAI,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AACxE,YAAY,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACnC,SAAS;AACT,QAAQ,OAAOA,iBAAS,CAAC,QAAQ,CAAC,CAAC;AACnC,KAAK,CAAC;AACN,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK;AACxB,QAAQ,OAAO;AACf,YAAY,MAAM;AAClB,YAAY,GAAG;AACf,YAAY,OAAO;AACnB,YAAY,IAAI;AAChB,SAAS,CAAC;AACV,KAAK,CAAC;AACN,SAAS,KAAK,CAAC,CAAC,KAAK,KAAK;AAC1B,QAAQ,IAAI,KAAK,YAAY,YAAY,EAAE;AAC3C,YAAY,MAAM,KAAK,CAAC;AACxB,SAAS;AACT,QAAQ,MAAM,IAAI,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE;AACnD,YAAY,OAAO;AACnB,YAAY,OAAO,EAAE,cAAc;AACnC,SAAS,CAAC,CAAC;AACX,KAAK,CAAC,CAAC;AACP,CAAC;;AC3Fc,SAAS,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE;AAC/D,IAAI,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACvD,IAAI,MAAM,MAAM,GAAG,UAAU,KAAK,EAAE,UAAU,EAAE;AAChD,QAAQ,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAClE,QAAQ,IAAI,CAAC,eAAe,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE;AACvE,YAAY,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;AACjE,SAAS;AACT,QAAQ,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK;AAC/C,YAAY,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AACnF,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;AAC/B,YAAY,QAAQ;AACpB,YAAY,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;AACvD,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AACtE,KAAK,CAAC;AACN,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AACjC,QAAQ,QAAQ;AAChB,QAAQ,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;AACnD,KAAK,CAAC,CAAC;AACP,CAAC;;ACjBW,MAAC,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE;AAC9C,IAAI,OAAO,EAAE;AACb,QAAQ,YAAY,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;AACvE,KAAK;AACL,CAAC,CAAC;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/request/package.json b/Client/node_modules/@octokit/request/package.json new file mode 100644 index 000000000..cfc2f240c --- /dev/null +++ b/Client/node_modules/@octokit/request/package.json @@ -0,0 +1,91 @@ +{ + "_from": "@octokit/request@^5.4.12", + "_id": "@octokit/request@5.4.12", + "_inBundle": false, + "_integrity": "sha512-MvWYdxengUWTGFpfpefBBpVmmEYfkwMoxonIB3sUGp5rhdgwjXL1ejo6JbgzG/QD9B/NYt/9cJX1pxXeSIUCkg==", + "_location": "/@octokit/request", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@octokit/request@^5.4.12", + "name": "@octokit/request", + "escapedName": "@octokit%2frequest", + "scope": "@octokit", + "rawSpec": "^5.4.12", + "saveSpec": null, + "fetchSpec": "^5.4.12" + }, + "_requiredBy": [ + "/@octokit/core", + "/@octokit/graphql" + ], + "_resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.4.12.tgz", + "_shasum": "b04826fa934670c56b135a81447be2c1723a2ffc", + "_spec": "@octokit/request@^5.4.12", + "_where": "C:\\Superalgos\\Client\\node_modules\\@octokit\\core", + "bugs": { + "url": "https://github.com/octokit/request.js/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.0.0", + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.1", + "once": "^1.4.0", + "universal-user-agent": "^6.0.0" + }, + "deprecated": false, + "description": "Send parameterized requests to GitHub’s APIs with sensible defaults in browsers and Node", + "devDependencies": { + "@octokit/auth-app": "^2.1.2", + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "@types/fetch-mock": "^7.2.4", + "@types/jest": "^26.0.0", + "@types/lolex": "^5.1.0", + "@types/node": "^14.0.0", + "@types/node-fetch": "^2.3.3", + "@types/once": "^1.4.0", + "fetch-mock": "^9.3.1", + "jest": "^26.0.1", + "lolex": "^6.0.0", + "prettier": "^2.0.1", + "semantic-release": "^17.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "ts-jest": "^26.1.0", + "typescript": "^4.0.2" + }, + "files": [ + "dist-*/", + "bin/" + ], + "homepage": "https://github.com/octokit/request.js#readme", + "keywords": [ + "octokit", + "github", + "api", + "request" + ], + "license": "MIT", + "main": "dist-node/index.js", + "module": "dist-web/index.js", + "name": "@octokit/request", + "pika": true, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/octokit/request.js.git" + }, + "sideEffects": false, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "version": "5.4.12" +} diff --git a/Client/node_modules/@octokit/rest/LICENSE b/Client/node_modules/@octokit/rest/LICENSE new file mode 100644 index 000000000..4c0d268a2 --- /dev/null +++ b/Client/node_modules/@octokit/rest/LICENSE @@ -0,0 +1,22 @@ +The MIT License + +Copyright (c) 2012 Cloud9 IDE, Inc. (Mike de Boer) +Copyright (c) 2017-2018 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Client/node_modules/@octokit/rest/README.md b/Client/node_modules/@octokit/rest/README.md new file mode 100644 index 000000000..31e11974a --- /dev/null +++ b/Client/node_modules/@octokit/rest/README.md @@ -0,0 +1,67 @@ +# rest.js + +> GitHub REST API client for JavaScript + +[![@latest](https://img.shields.io/npm/v/@octokit/rest.svg)](https://www.npmjs.com/package/@octokit/rest) +[![Build Status](https://github.com/octokit/rest.js/workflows/Test/badge.svg)](https://github.com/octokit/rest.js/actions?query=workflow%3ATest+branch%3Amaster) + +## Usage + + + + + + +
+Browsers + +Load @octokit/rest directly from cdn.skypack.dev + +```html + +``` + +
+Node + + +Install with npm install @octokit/rest + +```js +const { Octokit } = require("@octokit/rest"); +// or: import { Octokit } from "@octokit/rest"; +``` + +
+ +```js +const octokit = new Octokit(); + +// Compare: https://docs.github.com/en/rest/reference/repos/#list-organization-repositories +octokit.repos + .listForOrg({ + org: "octokit", + type: "public", + }) + .then(({ data }) => { + // handle data + }); +``` + +See https://octokit.github.io/rest.js/ for full documentation. + +## Contributing + +We would love you to contribute to `@octokit/rest`, pull requests are very welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for more information. + +## Credits + +`@octokit/rest` was originally created as [`node-github`](https://www.npmjs.com/package/github) in 2012 by Mike de Boer from Cloud9 IDE, Inc. [The original commit](https://github.blog/2020-04-09-from-48k-lines-of-code-to-10-the-story-of-githubs-javascript-sdk/) is from 2010 which predates the npm registry. + +It was adopted and renamed by GitHub in 2017. Learn more about it's origin on GitHub's blog: [From 48k lines of code to 10—the story of GitHub’s JavaScript SDK](https://github.blog/2020-04-09-from-48k-lines-of-code-to-10-the-story-of-githubs-javascript-sdk/) + +## LICENSE + +[MIT](LICENSE) diff --git a/Client/node_modules/@octokit/rest/dist-node/index.js b/Client/node_modules/@octokit/rest/dist-node/index.js new file mode 100644 index 000000000..0307378e4 --- /dev/null +++ b/Client/node_modules/@octokit/rest/dist-node/index.js @@ -0,0 +1,17 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var core = require('@octokit/core'); +var pluginRequestLog = require('@octokit/plugin-request-log'); +var pluginPaginateRest = require('@octokit/plugin-paginate-rest'); +var pluginRestEndpointMethods = require('@octokit/plugin-rest-endpoint-methods'); + +const VERSION = "18.0.12"; + +const Octokit = core.Octokit.plugin(pluginRequestLog.requestLog, pluginRestEndpointMethods.restEndpointMethods, pluginPaginateRest.paginateRest).defaults({ + userAgent: `octokit-rest.js/${VERSION}` +}); + +exports.Octokit = Octokit; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/rest/dist-node/index.js.map b/Client/node_modules/@octokit/rest/dist-node/index.js.map new file mode 100644 index 000000000..29245d15b --- /dev/null +++ b/Client/node_modules/@octokit/rest/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"18.0.12\";\n","import { Octokit as Core } from \"@octokit/core\";\nimport { requestLog } from \"@octokit/plugin-request-log\";\nimport { paginateRest } from \"@octokit/plugin-paginate-rest\";\nimport { restEndpointMethods } from \"@octokit/plugin-rest-endpoint-methods\";\nimport { VERSION } from \"./version\";\nexport const Octokit = Core.plugin(requestLog, restEndpointMethods, paginateRest).defaults({\n userAgent: `octokit-rest.js/${VERSION}`,\n});\n"],"names":["VERSION","Octokit","Core","plugin","requestLog","restEndpointMethods","paginateRest","defaults","userAgent"],"mappings":";;;;;;;;;AAAO,MAAMA,OAAO,GAAG,mBAAhB;;MCKMC,OAAO,GAAGC,YAAI,CAACC,MAAL,CAAYC,2BAAZ,EAAwBC,6CAAxB,EAA6CC,+BAA7C,EAA2DC,QAA3D,CAAoE;AACvFC,EAAAA,SAAS,EAAG,mBAAkBR,OAAQ;AADiD,CAApE,CAAhB;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/rest/dist-src/index.js b/Client/node_modules/@octokit/rest/dist-src/index.js new file mode 100644 index 000000000..d1fa24453 --- /dev/null +++ b/Client/node_modules/@octokit/rest/dist-src/index.js @@ -0,0 +1,8 @@ +import { Octokit as Core } from "@octokit/core"; +import { requestLog } from "@octokit/plugin-request-log"; +import { paginateRest } from "@octokit/plugin-paginate-rest"; +import { restEndpointMethods } from "@octokit/plugin-rest-endpoint-methods"; +import { VERSION } from "./version"; +export const Octokit = Core.plugin(requestLog, restEndpointMethods, paginateRest).defaults({ + userAgent: `octokit-rest.js/${VERSION}`, +}); diff --git a/Client/node_modules/@octokit/rest/dist-src/version.js b/Client/node_modules/@octokit/rest/dist-src/version.js new file mode 100644 index 000000000..0df8bbc06 --- /dev/null +++ b/Client/node_modules/@octokit/rest/dist-src/version.js @@ -0,0 +1 @@ +export const VERSION = "18.0.12"; diff --git a/Client/node_modules/@octokit/rest/dist-types/index.d.ts b/Client/node_modules/@octokit/rest/dist-types/index.d.ts new file mode 100644 index 000000000..f4927be61 --- /dev/null +++ b/Client/node_modules/@octokit/rest/dist-types/index.d.ts @@ -0,0 +1,13 @@ +import { Octokit as Core } from "@octokit/core"; +export { RestEndpointMethodTypes } from "@octokit/plugin-rest-endpoint-methods"; +export declare const Octokit: (new (...args: any[]) => { + [x: string]: any; +}) & { + new (...args: any[]): { + [x: string]: any; + }; + plugins: any[]; +} & typeof Core & import("@octokit/core/dist-types/types").Constructor; +export declare type Octokit = InstanceType; diff --git a/Client/node_modules/@octokit/rest/dist-types/version.d.ts b/Client/node_modules/@octokit/rest/dist-types/version.d.ts new file mode 100644 index 000000000..e5aab0a4b --- /dev/null +++ b/Client/node_modules/@octokit/rest/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "18.0.12"; diff --git a/Client/node_modules/@octokit/rest/dist-web/index.js b/Client/node_modules/@octokit/rest/dist-web/index.js new file mode 100644 index 000000000..658f7126a --- /dev/null +++ b/Client/node_modules/@octokit/rest/dist-web/index.js @@ -0,0 +1,13 @@ +import { Octokit as Octokit$1 } from '@octokit/core'; +import { requestLog } from '@octokit/plugin-request-log'; +import { paginateRest } from '@octokit/plugin-paginate-rest'; +import { restEndpointMethods } from '@octokit/plugin-rest-endpoint-methods'; + +const VERSION = "18.0.12"; + +const Octokit = Octokit$1.plugin(requestLog, restEndpointMethods, paginateRest).defaults({ + userAgent: `octokit-rest.js/${VERSION}`, +}); + +export { Octokit }; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/rest/dist-web/index.js.map b/Client/node_modules/@octokit/rest/dist-web/index.js.map new file mode 100644 index 000000000..342328272 --- /dev/null +++ b/Client/node_modules/@octokit/rest/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"18.0.12\";\n","import { Octokit as Core } from \"@octokit/core\";\nimport { requestLog } from \"@octokit/plugin-request-log\";\nimport { paginateRest } from \"@octokit/plugin-paginate-rest\";\nimport { restEndpointMethods } from \"@octokit/plugin-rest-endpoint-methods\";\nimport { VERSION } from \"./version\";\nexport const Octokit = Core.plugin(requestLog, restEndpointMethods, paginateRest).defaults({\n userAgent: `octokit-rest.js/${VERSION}`,\n});\n"],"names":["Core"],"mappings":";;;;;AAAO,MAAM,OAAO,GAAG,mBAAmB;;ACK9B,MAAC,OAAO,GAAGA,SAAI,CAAC,MAAM,CAAC,UAAU,EAAE,mBAAmB,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC;AAC3F,IAAI,SAAS,EAAE,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC,CAAC;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/rest/package.json b/Client/node_modules/@octokit/rest/package.json new file mode 100644 index 000000000..190dcd541 --- /dev/null +++ b/Client/node_modules/@octokit/rest/package.json @@ -0,0 +1,102 @@ +{ + "_from": "@octokit/rest", + "_id": "@octokit/rest@18.0.12", + "_inBundle": false, + "_integrity": "sha512-hNRCZfKPpeaIjOVuNJzkEL6zacfZlBPV8vw8ReNeyUkVvbuCvvrrx8K8Gw2eyHHsmd4dPlAxIXIZ9oHhJfkJpw==", + "_location": "/@octokit/rest", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "@octokit/rest", + "name": "@octokit/rest", + "escapedName": "@octokit%2frest", + "scope": "@octokit", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.0.12.tgz", + "_shasum": "278bd41358c56d87c201e787e8adc0cac132503a", + "_spec": "@octokit/rest", + "_where": "C:\\Superalgos\\Client", + "bugs": { + "url": "https://github.com/octokit/rest.js/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Mike de Boer", + "email": "info@mikedeboer.nl" + }, + { + "name": "Fabian Jakobs", + "email": "fabian@c9.io" + }, + { + "name": "Joe Gallo", + "email": "joe@brassafrax.com" + }, + { + "name": "Gregor Martynus", + "url": "https://github.com/gr2m" + } + ], + "dependencies": { + "@octokit/core": "^3.2.3", + "@octokit/plugin-paginate-rest": "^2.6.2", + "@octokit/plugin-request-log": "^1.0.2", + "@octokit/plugin-rest-endpoint-methods": "4.4.1" + }, + "deprecated": false, + "description": "GitHub REST API client for Node.js", + "devDependencies": { + "@octokit/auth": "^3.0.1", + "@octokit/fixtures-server": "^6.0.11", + "@octokit/request": "^5.2.0", + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.2", + "@pika/plugin-build-web": "^0.9.2", + "@pika/plugin-ts-standard-pkg": "^0.9.2", + "@types/jest": "^26.0.0", + "@types/node": "^14.0.1", + "fetch-mock": "^9.0.0", + "jest": "^25.1.0", + "prettier": "^2.0.0", + "semantic-release": "^17.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "ts-jest": "^25.2.0", + "typescript": "^3.7.5" + }, + "files": [ + "dist-*/", + "bin/" + ], + "homepage": "https://github.com/octokit/rest.js#readme", + "keywords": [ + "octokit", + "github", + "rest", + "api-client" + ], + "license": "MIT", + "main": "dist-node/index.js", + "module": "dist-web/index.js", + "name": "@octokit/rest", + "pika": true, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/octokit/rest.js.git" + }, + "sideEffects": false, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "version": "18.0.12" +} diff --git a/Client/node_modules/@octokit/types/LICENSE b/Client/node_modules/@octokit/types/LICENSE new file mode 100644 index 000000000..57bee5f18 --- /dev/null +++ b/Client/node_modules/@octokit/types/LICENSE @@ -0,0 +1,7 @@ +MIT License Copyright (c) 2019 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Client/node_modules/@octokit/types/README.md b/Client/node_modules/@octokit/types/README.md new file mode 100644 index 000000000..3c34447c3 --- /dev/null +++ b/Client/node_modules/@octokit/types/README.md @@ -0,0 +1,64 @@ +# types.ts + +> Shared TypeScript definitions for Octokit projects + +[![@latest](https://img.shields.io/npm/v/@octokit/types.svg)](https://www.npmjs.com/package/@octokit/types) +[![Build Status](https://github.com/octokit/types.ts/workflows/Test/badge.svg)](https://github.com/octokit/types.ts/actions?workflow=Test) + + + +- [Usage](#usage) +- [Examples](#examples) + - [Get parameter and response data types for a REST API endpoint](#get-parameter-and-response-data-types-for-a-rest-api-endpoint) + - [Get response types from endpoint methods](#get-response-types-from-endpoint-methods) +- [Contributing](#contributing) +- [License](#license) + + + +## Usage + +See all exported types at https://octokit.github.io/types.ts + +## Examples + +### Get parameter and response data types for a REST API endpoint + +```ts +import { Endpoints } from "@octokit/types"; + +type listUserReposParameters = Endpoints["GET /repos/{owner}/{repo}"]["parameters"]; +type listUserReposResponse = Endpoints["GET /repos/{owner}/{repo}"]["response"]; + +async function listRepos( + options: listUserReposParameters +): listUserReposResponse["data"] { + // ... +} +``` + +### Get response types from endpoint methods + +```ts +import { + GetResponseTypeFromEndpointMethod, + GetResponseDataTypeFromEndpointMethod, +} from "@octokit/types"; +import { Octokit } from "@octokit/rest"; + +const octokit = new Octokit(); +type CreateLabelResponseType = GetResponseTypeFromEndpointMethod< + typeof octokit.issues.createLabel +>; +type CreateLabelResponseDataType = GetResponseDataTypeFromEndpointMethod< + typeof octokit.issues.createLabel +>; +``` + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md) + +## License + +[MIT](LICENSE) diff --git a/Client/node_modules/@octokit/types/dist-node/index.js b/Client/node_modules/@octokit/types/dist-node/index.js new file mode 100644 index 000000000..bc7297944 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-node/index.js @@ -0,0 +1,8 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +const VERSION = "6.2.1"; + +exports.VERSION = VERSION; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/types/dist-node/index.js.map b/Client/node_modules/@octokit/types/dist-node/index.js.map new file mode 100644 index 000000000..2d148d3b9 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/VERSION.js"],"sourcesContent":["export const VERSION = \"0.0.0-development\";\n"],"names":["VERSION"],"mappings":";;;;MAAaA,OAAO,GAAG;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/types/dist-src/AuthInterface.js b/Client/node_modules/@octokit/types/dist-src/AuthInterface.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/AuthInterface.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/types/dist-src/EndpointDefaults.js b/Client/node_modules/@octokit/types/dist-src/EndpointDefaults.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/EndpointDefaults.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/types/dist-src/EndpointInterface.js b/Client/node_modules/@octokit/types/dist-src/EndpointInterface.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/EndpointInterface.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/types/dist-src/EndpointOptions.js b/Client/node_modules/@octokit/types/dist-src/EndpointOptions.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/EndpointOptions.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/types/dist-src/Fetch.js b/Client/node_modules/@octokit/types/dist-src/Fetch.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/Fetch.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/types/dist-src/GetResponseTypeFromEndpointMethod.js b/Client/node_modules/@octokit/types/dist-src/GetResponseTypeFromEndpointMethod.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/GetResponseTypeFromEndpointMethod.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/types/dist-src/OctokitResponse.js b/Client/node_modules/@octokit/types/dist-src/OctokitResponse.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/OctokitResponse.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/types/dist-src/RequestError.js b/Client/node_modules/@octokit/types/dist-src/RequestError.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/RequestError.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/types/dist-src/RequestHeaders.js b/Client/node_modules/@octokit/types/dist-src/RequestHeaders.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/RequestHeaders.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/types/dist-src/RequestInterface.js b/Client/node_modules/@octokit/types/dist-src/RequestInterface.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/RequestInterface.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/types/dist-src/RequestMethod.js b/Client/node_modules/@octokit/types/dist-src/RequestMethod.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/RequestMethod.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/types/dist-src/RequestOptions.js b/Client/node_modules/@octokit/types/dist-src/RequestOptions.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/RequestOptions.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/types/dist-src/RequestParameters.js b/Client/node_modules/@octokit/types/dist-src/RequestParameters.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/RequestParameters.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/types/dist-src/RequestRequestOptions.js b/Client/node_modules/@octokit/types/dist-src/RequestRequestOptions.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/RequestRequestOptions.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/types/dist-src/ResponseHeaders.js b/Client/node_modules/@octokit/types/dist-src/ResponseHeaders.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/ResponseHeaders.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/types/dist-src/Route.js b/Client/node_modules/@octokit/types/dist-src/Route.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/Route.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/types/dist-src/Signal.js b/Client/node_modules/@octokit/types/dist-src/Signal.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/Signal.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/types/dist-src/StrategyInterface.js b/Client/node_modules/@octokit/types/dist-src/StrategyInterface.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/StrategyInterface.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/types/dist-src/Url.js b/Client/node_modules/@octokit/types/dist-src/Url.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/Url.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/types/dist-src/VERSION.js b/Client/node_modules/@octokit/types/dist-src/VERSION.js new file mode 100644 index 000000000..39b7af196 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/VERSION.js @@ -0,0 +1 @@ +export const VERSION = "6.2.1"; diff --git a/Client/node_modules/@octokit/types/dist-src/generated/Endpoints.js b/Client/node_modules/@octokit/types/dist-src/generated/Endpoints.js new file mode 100644 index 000000000..cb0ff5c3b --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/generated/Endpoints.js @@ -0,0 +1 @@ +export {}; diff --git a/Client/node_modules/@octokit/types/dist-src/index.js b/Client/node_modules/@octokit/types/dist-src/index.js new file mode 100644 index 000000000..004ae9b22 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-src/index.js @@ -0,0 +1,21 @@ +export * from "./AuthInterface"; +export * from "./EndpointDefaults"; +export * from "./EndpointInterface"; +export * from "./EndpointOptions"; +export * from "./Fetch"; +export * from "./OctokitResponse"; +export * from "./RequestError"; +export * from "./RequestHeaders"; +export * from "./RequestInterface"; +export * from "./RequestMethod"; +export * from "./RequestOptions"; +export * from "./RequestParameters"; +export * from "./RequestRequestOptions"; +export * from "./ResponseHeaders"; +export * from "./Route"; +export * from "./Signal"; +export * from "./StrategyInterface"; +export * from "./Url"; +export * from "./VERSION"; +export * from "./GetResponseTypeFromEndpointMethod"; +export * from "./generated/Endpoints"; diff --git a/Client/node_modules/@octokit/types/dist-types/AuthInterface.d.ts b/Client/node_modules/@octokit/types/dist-types/AuthInterface.d.ts new file mode 100644 index 000000000..8b39d6128 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/AuthInterface.d.ts @@ -0,0 +1,31 @@ +import { EndpointOptions } from "./EndpointOptions"; +import { OctokitResponse } from "./OctokitResponse"; +import { RequestInterface } from "./RequestInterface"; +import { RequestParameters } from "./RequestParameters"; +import { Route } from "./Route"; +/** + * Interface to implement complex authentication strategies for Octokit. + * An object Implementing the AuthInterface can directly be passed as the + * `auth` option in the Octokit constructor. + * + * For the official implementations of the most common authentication + * strategies, see https://github.com/octokit/auth.js + */ +export interface AuthInterface { + (...args: AuthOptions): Promise; + hook: { + /** + * Sends a request using the passed `request` instance + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (request: RequestInterface, options: EndpointOptions): Promise>; + /** + * Sends a request using the passed `request` instance + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (request: RequestInterface, route: Route, parameters?: RequestParameters): Promise>; + }; +} diff --git a/Client/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts b/Client/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts new file mode 100644 index 000000000..a2c230782 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts @@ -0,0 +1,21 @@ +import { RequestHeaders } from "./RequestHeaders"; +import { RequestMethod } from "./RequestMethod"; +import { RequestParameters } from "./RequestParameters"; +import { Url } from "./Url"; +/** + * The `.endpoint()` method is guaranteed to set all keys defined by RequestParameters + * as well as the method property. + */ +export declare type EndpointDefaults = RequestParameters & { + baseUrl: Url; + method: RequestMethod; + url?: Url; + headers: RequestHeaders & { + accept: string; + "user-agent": string; + }; + mediaType: { + format: string; + previews: string[]; + }; +}; diff --git a/Client/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts b/Client/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts new file mode 100644 index 000000000..d7b400924 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts @@ -0,0 +1,65 @@ +import { EndpointDefaults } from "./EndpointDefaults"; +import { RequestOptions } from "./RequestOptions"; +import { RequestParameters } from "./RequestParameters"; +import { Route } from "./Route"; +import { Endpoints } from "./generated/Endpoints"; +export interface EndpointInterface { + /** + * Transforms a GitHub REST API endpoint into generic request options + * + * @param {object} endpoint Must set `url` unless it's set defaults. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: O & { + method?: string; + } & ("url" extends keyof D ? { + url?: string; + } : { + url: string; + })): RequestOptions & Pick; + /** + * Transforms a GitHub REST API endpoint into generic request options + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: keyof Endpoints | R, parameters?: P): (R extends keyof Endpoints ? Endpoints[R]["request"] : RequestOptions) & Pick; + /** + * Object with current default route and parameters + */ + DEFAULTS: D & EndpointDefaults; + /** + * Returns a new `endpoint` interface with new defaults + */ + defaults: (newDefaults: O) => EndpointInterface; + merge: { + /** + * Merges current endpoint defaults with passed route and parameters, + * without transforming them into request options. + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + * + */ + (route: keyof Endpoints | R, parameters?: P): D & (R extends keyof Endpoints ? Endpoints[R]["request"] & Endpoints[R]["parameters"] : EndpointDefaults) & P; + /** + * Merges current endpoint defaults with passed route and parameters, + * without transforming them into request options. + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ +

(options: P): EndpointDefaults & D & P; + /** + * Returns current default options. + * + * @deprecated use endpoint.DEFAULTS instead + */ + (): D & EndpointDefaults; + }; + /** + * Stateless method to turn endpoint options into request options. + * Calling `endpoint(options)` is the same as calling `endpoint.parse(endpoint.merge(options))`. + * + * @param {object} options `method`, `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + parse: (options: O) => RequestOptions & Pick; +} diff --git a/Client/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts b/Client/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts new file mode 100644 index 000000000..b1b91f11f --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts @@ -0,0 +1,7 @@ +import { RequestMethod } from "./RequestMethod"; +import { Url } from "./Url"; +import { RequestParameters } from "./RequestParameters"; +export declare type EndpointOptions = RequestParameters & { + method: RequestMethod; + url: Url; +}; diff --git a/Client/node_modules/@octokit/types/dist-types/Fetch.d.ts b/Client/node_modules/@octokit/types/dist-types/Fetch.d.ts new file mode 100644 index 000000000..cbbd5e8fa --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/Fetch.d.ts @@ -0,0 +1,4 @@ +/** + * Browser's fetch method (or compatible such as fetch-mock) + */ +export declare type Fetch = any; diff --git a/Client/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts b/Client/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts new file mode 100644 index 000000000..70e1a8d46 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts @@ -0,0 +1,5 @@ +declare type Unwrap = T extends Promise ? U : T; +declare type AnyFunction = (...args: any[]) => any; +export declare type GetResponseTypeFromEndpointMethod = Unwrap>; +export declare type GetResponseDataTypeFromEndpointMethod = Unwrap>["data"]; +export {}; diff --git a/Client/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts b/Client/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts new file mode 100644 index 000000000..19ffff822 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts @@ -0,0 +1,17 @@ +import { ResponseHeaders } from "./ResponseHeaders"; +import { Url } from "./Url"; +export declare type OctokitResponse = { + headers: ResponseHeaders; + /** + * http response code + */ + status: S; + /** + * URL of response after all redirects + */ + url: Url; + /** + * This is the data you would see in https://developer.Octokit.com/v3/ + */ + data: T; +}; diff --git a/Client/node_modules/@octokit/types/dist-types/RequestError.d.ts b/Client/node_modules/@octokit/types/dist-types/RequestError.d.ts new file mode 100644 index 000000000..89174e6ee --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/RequestError.d.ts @@ -0,0 +1,11 @@ +export declare type RequestError = { + name: string; + status: number; + documentation_url: string; + errors?: Array<{ + resource: string; + code: string; + field: string; + message?: string; + }>; +}; diff --git a/Client/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts b/Client/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts new file mode 100644 index 000000000..ac5aae0a5 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts @@ -0,0 +1,15 @@ +export declare type RequestHeaders = { + /** + * Avoid setting `headers.accept`, use `mediaType.{format|previews}` option instead. + */ + accept?: string; + /** + * Use `authorization` to send authenticated request, remember `token ` / `bearer ` prefixes. Example: `token 1234567890abcdef1234567890abcdef12345678` + */ + authorization?: string; + /** + * `user-agent` is set do a default and can be overwritten as needed. + */ + "user-agent"?: string; + [header: string]: string | number | undefined; +}; diff --git a/Client/node_modules/@octokit/types/dist-types/RequestInterface.d.ts b/Client/node_modules/@octokit/types/dist-types/RequestInterface.d.ts new file mode 100644 index 000000000..851811ff8 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/RequestInterface.d.ts @@ -0,0 +1,34 @@ +import { EndpointInterface } from "./EndpointInterface"; +import { OctokitResponse } from "./OctokitResponse"; +import { RequestParameters } from "./RequestParameters"; +import { Route } from "./Route"; +import { Endpoints } from "./generated/Endpoints"; +export interface RequestInterface { + /** + * Sends a request based on endpoint options + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: O & { + method?: string; + } & ("url" extends keyof D ? { + url?: string; + } : { + url: string; + })): Promise>; + /** + * Sends a request based on endpoint options + * + * @param {string} route Request method + URL. Example: `'GET /orgs/{org}'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: keyof Endpoints | R, options?: R extends keyof Endpoints ? Endpoints[R]["parameters"] & RequestParameters : RequestParameters): R extends keyof Endpoints ? Promise : Promise>; + /** + * Returns a new `request` with updated route and parameters + */ + defaults: (newDefaults: O) => RequestInterface; + /** + * Octokit endpoint API, see {@link https://github.com/octokit/endpoint.js|@octokit/endpoint} + */ + endpoint: EndpointInterface; +} diff --git a/Client/node_modules/@octokit/types/dist-types/RequestMethod.d.ts b/Client/node_modules/@octokit/types/dist-types/RequestMethod.d.ts new file mode 100644 index 000000000..e999c8d96 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/RequestMethod.d.ts @@ -0,0 +1,4 @@ +/** + * HTTP Verb supported by GitHub's REST API + */ +export declare type RequestMethod = "DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT"; diff --git a/Client/node_modules/@octokit/types/dist-types/RequestOptions.d.ts b/Client/node_modules/@octokit/types/dist-types/RequestOptions.d.ts new file mode 100644 index 000000000..97e2181ca --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/RequestOptions.d.ts @@ -0,0 +1,14 @@ +import { RequestHeaders } from "./RequestHeaders"; +import { RequestMethod } from "./RequestMethod"; +import { RequestRequestOptions } from "./RequestRequestOptions"; +import { Url } from "./Url"; +/** + * Generic request options as they are returned by the `endpoint()` method + */ +export declare type RequestOptions = { + method: RequestMethod; + url: Url; + headers: RequestHeaders; + body?: any; + request?: RequestRequestOptions; +}; diff --git a/Client/node_modules/@octokit/types/dist-types/RequestParameters.d.ts b/Client/node_modules/@octokit/types/dist-types/RequestParameters.d.ts new file mode 100644 index 000000000..b056a0e22 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/RequestParameters.d.ts @@ -0,0 +1,45 @@ +import { RequestRequestOptions } from "./RequestRequestOptions"; +import { RequestHeaders } from "./RequestHeaders"; +import { Url } from "./Url"; +/** + * Parameters that can be passed into `request(route, parameters)` or `endpoint(route, parameters)` methods + */ +export declare type RequestParameters = { + /** + * Base URL to be used when a relative URL is passed, such as `/orgs/{org}`. + * If `baseUrl` is `https://enterprise.acme-inc.com/api/v3`, then the request + * will be sent to `https://enterprise.acme-inc.com/api/v3/orgs/{org}`. + */ + baseUrl?: Url; + /** + * HTTP headers. Use lowercase keys. + */ + headers?: RequestHeaders; + /** + * Media type options, see {@link https://developer.github.com/v3/media/|GitHub Developer Guide} + */ + mediaType?: { + /** + * `json` by default. Can be `raw`, `text`, `html`, `full`, `diff`, `patch`, `sha`, `base64`. Depending on endpoint + */ + format?: string; + /** + * Custom media type names of {@link https://developer.github.com/v3/media/|API Previews} without the `-preview` suffix. + * Example for single preview: `['squirrel-girl']`. + * Example for multiple previews: `['squirrel-girl', 'mister-fantastic']`. + */ + previews?: string[]; + }; + /** + * Pass custom meta information for the request. The `request` object will be returned as is. + */ + request?: RequestRequestOptions; + /** + * Any additional parameter will be passed as follows + * 1. URL parameter if `':parameter'` or `{parameter}` is part of `url` + * 2. Query parameter if `method` is `'GET'` or `'HEAD'` + * 3. Request body if `parameter` is `'data'` + * 4. JSON in the request body in the form of `body[parameter]` unless `parameter` key is `'data'` + */ + [parameter: string]: unknown; +}; diff --git a/Client/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts b/Client/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts new file mode 100644 index 000000000..4482a8a45 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts @@ -0,0 +1,26 @@ +/// +import { Agent } from "http"; +import { Fetch } from "./Fetch"; +import { Signal } from "./Signal"; +/** + * Octokit-specific request options which are ignored for the actual request, but can be used by Octokit or plugins to manipulate how the request is sent or how a response is handled + */ +export declare type RequestRequestOptions = { + /** + * Node only. Useful for custom proxy, certificate, or dns lookup. + */ + agent?: Agent; + /** + * Custom replacement for built-in fetch method. Useful for testing or request hooks. + */ + fetch?: Fetch; + /** + * Use an `AbortController` instance to cancel a request. In node you can only cancel streamed requests. + */ + signal?: Signal; + /** + * Node only. Request/response timeout in ms, it resets on redirect. 0 to disable (OS limit applies). `options.request.signal` is recommended instead. + */ + timeout?: number; + [option: string]: any; +}; diff --git a/Client/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts b/Client/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts new file mode 100644 index 000000000..c8fbe43f3 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts @@ -0,0 +1,20 @@ +export declare type ResponseHeaders = { + "cache-control"?: string; + "content-length"?: number; + "content-type"?: string; + date?: string; + etag?: string; + "last-modified"?: string; + link?: string; + location?: string; + server?: string; + status?: string; + vary?: string; + "x-github-mediatype"?: string; + "x-github-request-id"?: string; + "x-oauth-scopes"?: string; + "x-ratelimit-limit"?: string; + "x-ratelimit-remaining"?: string; + "x-ratelimit-reset"?: string; + [header: string]: string | number | undefined; +}; diff --git a/Client/node_modules/@octokit/types/dist-types/Route.d.ts b/Client/node_modules/@octokit/types/dist-types/Route.d.ts new file mode 100644 index 000000000..dcaac75b1 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/Route.d.ts @@ -0,0 +1,4 @@ +/** + * String consisting of an optional HTTP method and relative path or absolute URL. Examples: `'/orgs/{org}'`, `'PUT /orgs/{org}'`, `GET https://example.com/foo/bar` + */ +export declare type Route = string; diff --git a/Client/node_modules/@octokit/types/dist-types/Signal.d.ts b/Client/node_modules/@octokit/types/dist-types/Signal.d.ts new file mode 100644 index 000000000..4ebcf24e6 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/Signal.d.ts @@ -0,0 +1,6 @@ +/** + * Abort signal + * + * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal + */ +export declare type Signal = any; diff --git a/Client/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts b/Client/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts new file mode 100644 index 000000000..405cbd235 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts @@ -0,0 +1,4 @@ +import { AuthInterface } from "./AuthInterface"; +export interface StrategyInterface { + (...args: StrategyOptions): AuthInterface; +} diff --git a/Client/node_modules/@octokit/types/dist-types/Url.d.ts b/Client/node_modules/@octokit/types/dist-types/Url.d.ts new file mode 100644 index 000000000..3e699160f --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/Url.d.ts @@ -0,0 +1,4 @@ +/** + * Relative or absolute URL. Examples: `'/orgs/{org}'`, `https://example.com/foo/bar` + */ +export declare type Url = string; diff --git a/Client/node_modules/@octokit/types/dist-types/VERSION.d.ts b/Client/node_modules/@octokit/types/dist-types/VERSION.d.ts new file mode 100644 index 000000000..02faa5f26 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/VERSION.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "6.2.1"; diff --git a/Client/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts b/Client/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts new file mode 100644 index 000000000..2348f8554 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts @@ -0,0 +1,3002 @@ +import { paths } from "@octokit/openapi-types"; +import { OctokitResponse } from "../OctokitResponse"; +import { RequestHeaders } from "../RequestHeaders"; +import { RequestRequestOptions } from "../RequestRequestOptions"; +declare type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; +declare type ExtractParameters = "parameters" extends keyof T ? UnionToIntersection<{ + [K in keyof T["parameters"]]: T["parameters"][K]; +}[keyof T["parameters"]]> : {}; +declare type ExtractRequestBody = "requestBody" extends keyof T ? "application/json" extends keyof T["requestBody"] ? T["requestBody"]["application/json"] : { + data: { + [K in keyof T["requestBody"]]: T["requestBody"][K]; + }[keyof T["requestBody"]]; +} : {}; +declare type ToOctokitParameters = ExtractParameters & ExtractRequestBody; +declare type RequiredPreview = T extends string ? { + mediaType: { + previews: [T, ...string[]]; + }; +} : {}; +declare type Operation = { + parameters: ToOctokitParameters & RequiredPreview; + request: { + method: Method extends keyof MethodsMap ? MethodsMap[Method] : never; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; + }; + response: Url extends keyof EndpointsWithMissingRequiredResponseDataSchema ? Method extends EndpointsWithMissingRequiredResponseDataSchema[Url] ? DeepRequired> : ExtractOctokitResponse : ExtractOctokitResponse; +}; +declare type MethodsMap = { + delete: "DELETE"; + get: "GET"; + patch: "PATCH"; + post: "POST"; + put: "PUT"; +}; +declare type SuccessStatusesMap = { + "200": 200; + "201": 201; + "204": 204; +}; +declare type RedirectStatusesMap = { + "301": 301; + "302": 302; +}; +declare type SuccessStatuses = keyof SuccessStatusesMap; +declare type RedirectStatuses = keyof RedirectStatusesMap; +declare type KnownJsonResponseTypes = "application/json" | "application/scim+json"; +declare type SuccessResponseDataType = { + [K in SuccessStatuses & keyof Responses]: OctokitResponse extends never ? unknown : DataType, SuccessStatusesMap[K]>; +}[SuccessStatuses & keyof Responses]; +declare type RedirectResponseDataType = { + [K in RedirectStatuses & keyof Responses]: OctokitResponse; +}[RedirectStatuses & keyof Responses]; +declare type DataType = { + [K in KnownJsonResponseTypes & keyof T]: T[K]; +}[KnownJsonResponseTypes & keyof T]; +declare type ExtractOctokitResponse = "responses" extends keyof R ? SuccessResponseDataType extends never ? RedirectResponseDataType extends never ? never : RedirectResponseDataType : SuccessResponseDataType : unknown; +declare type EndpointsWithMissingRequiredResponseDataSchema = { + "/app/hook/config": "get" | "patch"; + "/app/installations/{installation_id}/access_tokens": "post"; + "/emojis": "get"; + "/enterprises/{enterprise}/actions/permissions": "get"; + "/enterprises/{enterprise}/actions/permissions/organizations": "get"; + "/enterprises/{enterprise}/actions/permissions/selected-actions": "get"; + "/enterprises/{enterprise}/actions/runner-groups": "get" | "post"; + "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}": "get" | "patch"; + "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations": "get"; + "/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners": "get"; + "/enterprises/{enterprise}/actions/runners": "get"; + "/enterprises/{enterprise}/actions/runners/downloads": "get"; + "/enterprises/{enterprise}/settings/billing/actions": "get"; + "/enterprises/{enterprise}/settings/billing/packages": "get"; + "/enterprises/{enterprise}/settings/billing/shared-storage": "get"; + "/installation/repositories": "get"; + "/notifications": "get"; + "/notifications/threads/{thread_id}": "get"; + "/orgs/{org}/actions/permissions": "get"; + "/orgs/{org}/actions/permissions/repositories": "get"; + "/orgs/{org}/actions/permissions/selected-actions": "get"; + "/orgs/{org}/actions/runner-groups": "get" | "post"; + "/orgs/{org}/actions/runner-groups/{runner_group_id}": "get" | "patch"; + "/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories": "get"; + "/orgs/{org}/actions/runner-groups/{runner_group_id}/runners": "get"; + "/orgs/{org}/actions/runners": "get"; + "/orgs/{org}/actions/runners/downloads": "get"; + "/orgs/{org}/actions/secrets": "get"; + "/orgs/{org}/actions/secrets/{secret_name}/repositories": "get"; + "/orgs/{org}/hooks/{hook_id}/config": "get" | "patch"; + "/orgs/{org}/installations": "get"; + "/orgs/{org}/invitations": "get" | "post"; + "/orgs/{org}/settings/billing/actions": "get"; + "/orgs/{org}/settings/billing/packages": "get"; + "/orgs/{org}/settings/billing/shared-storage": "get"; + "/orgs/{org}/team-sync/groups": "get"; + "/orgs/{org}/teams/{team_slug}/invitations": "get"; + "/orgs/{org}/teams/{team_slug}/projects": "get"; + "/orgs/{org}/teams/{team_slug}/projects/{project_id}": "get"; + "/orgs/{org}/teams/{team_slug}/team-sync/group-mappings": "get" | "patch"; + "/projects/columns/cards/{card_id}/moves": "post"; + "/projects/columns/{column_id}/moves": "post"; + "/repos/{owner}/{repo}/actions/artifacts": "get"; + "/repos/{owner}/{repo}/actions/permissions": "get"; + "/repos/{owner}/{repo}/actions/permissions/selected-actions": "get"; + "/repos/{owner}/{repo}/actions/runners": "get"; + "/repos/{owner}/{repo}/actions/runners/downloads": "get"; + "/repos/{owner}/{repo}/actions/runs": "get"; + "/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts": "get"; + "/repos/{owner}/{repo}/actions/runs/{run_id}/jobs": "get"; + "/repos/{owner}/{repo}/actions/runs/{run_id}/timing": "get"; + "/repos/{owner}/{repo}/actions/secrets": "get"; + "/repos/{owner}/{repo}/actions/workflows": "get"; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs": "get"; + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing": "get"; + "/repos/{owner}/{repo}/check-suites/preferences": "patch"; + "/repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs": "get"; + "/repos/{owner}/{repo}/code-scanning/alerts": "get"; + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": "get" | "patch"; + "/repos/{owner}/{repo}/code-scanning/analyses": "get"; + "/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head": "get"; + "/repos/{owner}/{repo}/commits/{ref}/check-runs": "get"; + "/repos/{owner}/{repo}/commits/{ref}/check-suites": "get"; + "/repos/{owner}/{repo}/commits/{ref}/statuses": "get"; + "/repos/{owner}/{repo}/contents/{path}": "put" | "delete"; + "/repos/{owner}/{repo}/git/blobs": "post"; + "/repos/{owner}/{repo}/git/commits": "post"; + "/repos/{owner}/{repo}/git/commits/{commit_sha}": "get"; + "/repos/{owner}/{repo}/git/matching-refs/{ref}": "get"; + "/repos/{owner}/{repo}/git/ref/{ref}": "get"; + "/repos/{owner}/{repo}/git/refs": "post"; + "/repos/{owner}/{repo}/git/refs/{ref}": "patch"; + "/repos/{owner}/{repo}/hooks/{hook_id}/config": "get" | "patch"; + "/repos/{owner}/{repo}/issues/{issue_number}/events": "get"; + "/repos/{owner}/{repo}/issues/{issue_number}/timeline": "get"; + "/repos/{owner}/{repo}/keys": "get" | "post"; + "/repos/{owner}/{repo}/keys/{key_id}": "get"; + "/repos/{owner}/{repo}/languages": "get"; + "/repos/{owner}/{repo}/notifications": "get"; + "/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": "get"; + "/repos/{owner}/{repo}/stats/participation": "get"; + "/repos/{owner}/{repo}/statuses/{sha}": "post"; + "/repos/{owner}/{repo}/topics": "get" | "put"; + "/scim/v2/enterprises/{enterprise}/Groups": "get" | "post"; + "/scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}": "get" | "put" | "patch"; + "/scim/v2/enterprises/{enterprise}/Users": "get" | "post"; + "/scim/v2/enterprises/{enterprise}/Users/{scim_user_id}": "get" | "put" | "patch"; + "/search/code": "get"; + "/search/commits": "get"; + "/search/issues": "get"; + "/search/labels": "get"; + "/search/repositories": "get"; + "/search/topics": "get"; + "/search/users": "get"; + "/teams/{team_id}/invitations": "get"; + "/teams/{team_id}/projects": "get"; + "/teams/{team_id}/projects/{project_id}": "get"; + "/teams/{team_id}/team-sync/group-mappings": "get" | "patch"; + "/user/installations": "get"; + "/user/installations/{installation_id}/repositories": "get"; + "/user/keys": "get" | "post"; + "/user/keys/{key_id}": "get"; + "/users/{username}/settings/billing/actions": "get"; + "/users/{username}/settings/billing/packages": "get"; + "/users/{username}/settings/billing/shared-storage": "get"; +}; +declare type NotNill = T extends null | undefined ? never : T; +declare type Primitive = undefined | null | boolean | string | number | Function; +declare type DeepRequired = T extends Primitive ? NotNill : { + [P in keyof T]-?: T[P] extends Array ? Array> : T[P] extends ReadonlyArray ? DeepRequired : DeepRequired; +}; +export interface Endpoints { + /** + * @see https://docs.github.com/v3/apps/#delete-an-installation-for-the-authenticated-app + */ + "DELETE /app/installations/{installation_id}": Operation<"/app/installations/{installation_id}", "delete">; + /** + * @see https://docs.github.com/v3/apps/#unsuspend-an-app-installation + */ + "DELETE /app/installations/{installation_id}/suspended": Operation<"/app/installations/{installation_id}/suspended", "delete">; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#delete-a-grant + */ + "DELETE /applications/grants/{grant_id}": Operation<"/applications/grants/{grant_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/apps#delete-an-app-authorization + */ + "DELETE /applications/{client_id}/grant": Operation<"/applications/{client_id}/grant", "delete">; + /** + * @see https://docs.github.com/rest/reference/apps#revoke-a-grant-for-an-application + */ + "DELETE /applications/{client_id}/grants/{access_token}": Operation<"/applications/{client_id}/grants/{access_token}", "delete">; + /** + * @see https://docs.github.com/rest/reference/apps#delete-an-app-token + */ + "DELETE /applications/{client_id}/token": Operation<"/applications/{client_id}/token", "delete">; + /** + * @see https://docs.github.com/rest/reference/apps#revoke-an-authorization-for-an-application + */ + "DELETE /applications/{client_id}/tokens/{access_token}": Operation<"/applications/{client_id}/tokens/{access_token}", "delete">; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#delete-an-authorization + */ + "DELETE /authorizations/{authorization_id}": Operation<"/authorizations/{authorization_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#disable-a-selected-organization-for-github-actions-in-an-enterprise + */ + "DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}": Operation<"/enterprises/{enterprise}/actions/permissions/organizations/{org_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#delete-a-self-hosted-runner-group-from-an-enterprise + */ + "DELETE /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#remove-organization-access-to-a-self-hosted-runner-group-in-an-enterprise + */ + "DELETE /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations/{org_id}": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations/{org_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#remove-a-self-hosted-runner-from-a-group-for-an-enterprise + */ + "DELETE /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners/{runner_id}": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners/{runner_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#delete-self-hosted-runner-from-an-enterprise + */ + "DELETE /enterprises/{enterprise}/actions/runners/{runner_id}": Operation<"/enterprises/{enterprise}/actions/runners/{runner_id}", "delete">; + /** + * @see https://docs.github.com/v3/gists/#delete-a-gist + */ + "DELETE /gists/{gist_id}": Operation<"/gists/{gist_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/gists#delete-a-gist-comment + */ + "DELETE /gists/{gist_id}/comments/{comment_id}": Operation<"/gists/{gist_id}/comments/{comment_id}", "delete">; + /** + * @see https://docs.github.com/v3/gists/#unstar-a-gist + */ + "DELETE /gists/{gist_id}/star": Operation<"/gists/{gist_id}/star", "delete">; + /** + * @see https://docs.github.com/rest/reference/apps#revoke-an-installation-access-token + */ + "DELETE /installation/token": Operation<"/installation/token", "delete">; + /** + * @see https://docs.github.com/rest/reference/activity#delete-a-thread-subscription + */ + "DELETE /notifications/threads/{thread_id}/subscription": Operation<"/notifications/threads/{thread_id}/subscription", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#disable-a-selected-repository-for-github-actions-in-an-organization + */ + "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}": Operation<"/orgs/{org}/actions/permissions/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#delete-a-self-hosted-runner-group-from-an-organization + */ + "DELETE /orgs/{org}/actions/runner-groups/{runner_group_id}": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#remove-repository-access-to-a-self-hosted-runner-group-in-an-organization + */ + "DELETE /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#remove-a-self-hosted-runner-from-a-group-for-an-organization + */ + "DELETE /orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#delete-a-self-hosted-runner-from-an-organization + */ + "DELETE /orgs/{org}/actions/runners/{runner_id}": Operation<"/orgs/{org}/actions/runners/{runner_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#delete-an-organization-secret + */ + "DELETE /orgs/{org}/actions/secrets/{secret_name}": Operation<"/orgs/{org}/actions/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#remove-selected-repository-from-an-organization-secret + */ + "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/orgs#unblock-a-user-from-an-organization + */ + "DELETE /orgs/{org}/blocks/{username}": Operation<"/orgs/{org}/blocks/{username}", "delete", "giant-sentry-fist">; + /** + * @see https://docs.github.com/v3/orgs/#remove-a-saml-sso-authorization-for-an-organization + */ + "DELETE /orgs/{org}/credential-authorizations/{credential_id}": Operation<"/orgs/{org}/credential-authorizations/{credential_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/orgs#delete-an-organization-webhook + */ + "DELETE /orgs/{org}/hooks/{hook_id}": Operation<"/orgs/{org}/hooks/{hook_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/interactions#remove-interaction-restrictions-for-an-organization + */ + "DELETE /orgs/{org}/interaction-limits": Operation<"/orgs/{org}/interaction-limits", "delete">; + /** + * @see https://docs.github.com/rest/reference/orgs#remove-an-organization-member + */ + "DELETE /orgs/{org}/members/{username}": Operation<"/orgs/{org}/members/{username}", "delete">; + /** + * @see https://docs.github.com/rest/reference/orgs#remove-organization-membership-for-a-user + */ + "DELETE /orgs/{org}/memberships/{username}": Operation<"/orgs/{org}/memberships/{username}", "delete">; + /** + * @see https://docs.github.com/rest/reference/migrations#delete-an-organization-migration-archive + */ + "DELETE /orgs/{org}/migrations/{migration_id}/archive": Operation<"/orgs/{org}/migrations/{migration_id}/archive", "delete", "wyandotte">; + /** + * @see https://docs.github.com/rest/reference/migrations#unlock-an-organization-repository + */ + "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock": Operation<"/orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock", "delete", "wyandotte">; + /** + * @see https://docs.github.com/rest/reference/orgs#remove-outside-collaborator-from-an-organization + */ + "DELETE /orgs/{org}/outside_collaborators/{username}": Operation<"/orgs/{org}/outside_collaborators/{username}", "delete">; + /** + * @see https://docs.github.com/rest/reference/orgs#remove-public-organization-membership-for-the-authenticated-user + */ + "DELETE /orgs/{org}/public_members/{username}": Operation<"/orgs/{org}/public_members/{username}", "delete">; + /** + * @see https://docs.github.com/v3/teams/#delete-a-team + */ + "DELETE /orgs/{org}/teams/{team_slug}": Operation<"/orgs/{org}/teams/{team_slug}", "delete">; + /** + * @see https://docs.github.com/rest/reference/teams#delete-a-discussion + */ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", "delete">; + /** + * @see https://docs.github.com/rest/reference/teams#delete-a-discussion-comment + */ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", "delete">; + /** + * @see https://docs.github.com/v3/reactions/#delete-team-discussion-comment-reaction + */ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}", "delete", "squirrel-girl">; + /** + * @see https://docs.github.com/v3/reactions/#delete-team-discussion-reaction + */ + "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}", "delete", "squirrel-girl">; + /** + * @see https://docs.github.com/rest/reference/teams#remove-team-membership-for-a-user + */ + "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}": Operation<"/orgs/{org}/teams/{team_slug}/memberships/{username}", "delete">; + /** + * @see https://docs.github.com/v3/teams/#remove-a-project-from-a-team + */ + "DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}": Operation<"/orgs/{org}/teams/{team_slug}/projects/{project_id}", "delete">; + /** + * @see https://docs.github.com/v3/teams/#remove-a-repository-from-a-team + */ + "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": Operation<"/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", "delete">; + /** + * @see https://docs.github.com/rest/reference/projects#delete-a-project-card + */ + "DELETE /projects/columns/cards/{card_id}": Operation<"/projects/columns/cards/{card_id}", "delete", "inertia">; + /** + * @see https://docs.github.com/rest/reference/projects#delete-a-project-column + */ + "DELETE /projects/columns/{column_id}": Operation<"/projects/columns/{column_id}", "delete", "inertia">; + /** + * @see https://docs.github.com/v3/projects/#delete-a-project + */ + "DELETE /projects/{project_id}": Operation<"/projects/{project_id}", "delete", "inertia">; + /** + * @see https://docs.github.com/rest/reference/projects#remove-project-collaborator + */ + "DELETE /projects/{project_id}/collaborators/{username}": Operation<"/projects/{project_id}/collaborators/{username}", "delete", "inertia">; + /** + * @see https://docs.github.com/v3/reactions/#delete-a-reaction-legacy + */ + "DELETE /reactions/{reaction_id}": Operation<"/reactions/{reaction_id}", "delete", "squirrel-girl">; + /** + * @see https://docs.github.com/v3/repos/#delete-a-repository + */ + "DELETE /repos/{owner}/{repo}": Operation<"/repos/{owner}/{repo}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#delete-an-artifact + */ + "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}": Operation<"/repos/{owner}/{repo}/actions/artifacts/{artifact_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#delete-a-self-hosted-runner-from-a-repository + */ + "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#delete-a-workflow-run + */ + "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#delete-workflow-run-logs + */ + "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/logs", "delete">; + /** + * @see https://docs.github.com/rest/reference/actions#delete-a-repository-secret + */ + "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/actions/secrets/{secret_name}", "delete">; + /** + * @see https://docs.github.com/v3/repos/#disable-automated-security-fixes + */ + "DELETE /repos/{owner}/{repo}/automated-security-fixes": Operation<"/repos/{owner}/{repo}/automated-security-fixes", "delete", "london">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-branch-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-admin-branch-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-pull-request-review-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-commit-signature-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", "delete", "zzzax">; + /** + * @see https://docs.github.com/rest/reference/repos#remove-status-check-protection + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#remove-status-check-contexts + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-access-restrictions + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#remove-app-access-restrictions + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#remove-team-access-restrictions + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#remove-user-access-restrictions + */ + "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#remove-a-repository-collaborator + */ + "DELETE /repos/{owner}/{repo}/collaborators/{username}": Operation<"/repos/{owner}/{repo}/collaborators/{username}", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-a-commit-comment + */ + "DELETE /repos/{owner}/{repo}/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/comments/{comment_id}", "delete">; + /** + * @see https://docs.github.com/v3/reactions/#delete-a-commit-comment-reaction + */ + "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}", "delete", "squirrel-girl">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-a-file + */ + "DELETE /repos/{owner}/{repo}/contents/{path}": Operation<"/repos/{owner}/{repo}/contents/{path}", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-a-deployment + */ + "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/git#delete-a-reference + */ + "DELETE /repos/{owner}/{repo}/git/refs/{ref}": Operation<"/repos/{owner}/{repo}/git/refs/{ref}", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-a-repository-webhook + */ + "DELETE /repos/{owner}/{repo}/hooks/{hook_id}": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/migrations#cancel-an-import + */ + "DELETE /repos/{owner}/{repo}/import": Operation<"/repos/{owner}/{repo}/import", "delete">; + /** + * @see https://docs.github.com/rest/reference/interactions#remove-interaction-restrictions-for-a-repository + */ + "DELETE /repos/{owner}/{repo}/interaction-limits": Operation<"/repos/{owner}/{repo}/interaction-limits", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-a-repository-invitation + */ + "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}": Operation<"/repos/{owner}/{repo}/invitations/{invitation_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/issues#delete-an-issue-comment + */ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}", "delete">; + /** + * @see https://docs.github.com/v3/reactions/#delete-an-issue-comment-reaction + */ + "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}", "delete", "squirrel-girl">; + /** + * @see https://docs.github.com/rest/reference/issues#remove-assignees-from-an-issue + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/assignees", "delete">; + /** + * @see https://docs.github.com/rest/reference/issues#remove-all-labels-from-an-issue + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels", "delete">; + /** + * @see https://docs.github.com/rest/reference/issues#remove-a-label-from-an-issue + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", "delete">; + /** + * @see https://docs.github.com/v3/issues/#unlock-an-issue + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/lock", "delete">; + /** + * @see https://docs.github.com/v3/reactions/#delete-an-issue-reaction + */ + "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}", "delete", "squirrel-girl">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-a-deploy-key + */ + "DELETE /repos/{owner}/{repo}/keys/{key_id}": Operation<"/repos/{owner}/{repo}/keys/{key_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/issues#delete-a-label + */ + "DELETE /repos/{owner}/{repo}/labels/{name}": Operation<"/repos/{owner}/{repo}/labels/{name}", "delete">; + /** + * @see https://docs.github.com/rest/reference/issues#delete-a-milestone + */ + "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}": Operation<"/repos/{owner}/{repo}/milestones/{milestone_number}", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-a-github-pages-site + */ + "DELETE /repos/{owner}/{repo}/pages": Operation<"/repos/{owner}/{repo}/pages", "delete", "switcheroo">; + /** + * @see https://docs.github.com/rest/reference/pulls#delete-a-review-comment-for-a-pull-request + */ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}", "delete">; + /** + * @see https://docs.github.com/v3/reactions/#delete-a-pull-request-comment-reaction + */ + "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}", "delete", "squirrel-girl">; + /** + * @see https://docs.github.com/rest/reference/pulls#remove-requested-reviewers-from-a-pull-request + */ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "delete">; + /** + * @see https://docs.github.com/rest/reference/pulls#delete-a-pending-review-for-a-pull-request + */ + "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-a-release-asset + */ + "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}": Operation<"/repos/{owner}/{repo}/releases/assets/{asset_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/repos#delete-a-release + */ + "DELETE /repos/{owner}/{repo}/releases/{release_id}": Operation<"/repos/{owner}/{repo}/releases/{release_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/activity#delete-a-repository-subscription + */ + "DELETE /repos/{owner}/{repo}/subscription": Operation<"/repos/{owner}/{repo}/subscription", "delete">; + /** + * @see https://docs.github.com/v3/repos/#disable-vulnerability-alerts + */ + "DELETE /repos/{owner}/{repo}/vulnerability-alerts": Operation<"/repos/{owner}/{repo}/vulnerability-alerts", "delete", "dorian">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#delete-a-scim-group-from-an-enterprise + */ + "DELETE /scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}": Operation<"/scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#delete-a-scim-user-from-an-enterprise + */ + "DELETE /scim/v2/enterprises/{enterprise}/Users/{scim_user_id}": Operation<"/scim/v2/enterprises/{enterprise}/Users/{scim_user_id}", "delete">; + /** + * @see https://docs.github.com/v3/scim/#delete-a-scim-user-from-an-organization + */ + "DELETE /scim/v2/organizations/{org}/Users/{scim_user_id}": Operation<"/scim/v2/organizations/{org}/Users/{scim_user_id}", "delete">; + /** + * @see https://docs.github.com/v3/teams/#delete-a-team-legacy + */ + "DELETE /teams/{team_id}": Operation<"/teams/{team_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/teams#delete-a-discussion-legacy + */ + "DELETE /teams/{team_id}/discussions/{discussion_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}", "delete">; + /** + * @see https://docs.github.com/rest/reference/teams#delete-a-discussion-comment-legacy + */ + "DELETE /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}", "delete">; + /** + * @see https://docs.github.com/rest/reference/teams#remove-team-member-legacy + */ + "DELETE /teams/{team_id}/members/{username}": Operation<"/teams/{team_id}/members/{username}", "delete">; + /** + * @see https://docs.github.com/rest/reference/teams#remove-team-membership-for-a-user-legacy + */ + "DELETE /teams/{team_id}/memberships/{username}": Operation<"/teams/{team_id}/memberships/{username}", "delete">; + /** + * @see https://docs.github.com/v3/teams/#remove-a-project-from-a-team-legacy + */ + "DELETE /teams/{team_id}/projects/{project_id}": Operation<"/teams/{team_id}/projects/{project_id}", "delete">; + /** + * @see https://docs.github.com/v3/teams/#remove-a-repository-from-a-team-legacy + */ + "DELETE /teams/{team_id}/repos/{owner}/{repo}": Operation<"/teams/{team_id}/repos/{owner}/{repo}", "delete">; + /** + * @see https://docs.github.com/rest/reference/users#unblock-a-user + */ + "DELETE /user/blocks/{username}": Operation<"/user/blocks/{username}", "delete", "giant-sentry-fist">; + /** + * @see https://docs.github.com/rest/reference/users#delete-an-email-address-for-the-authenticated-user + */ + "DELETE /user/emails": Operation<"/user/emails", "delete">; + /** + * @see https://docs.github.com/rest/reference/users#unfollow-a-user + */ + "DELETE /user/following/{username}": Operation<"/user/following/{username}", "delete">; + /** + * @see https://docs.github.com/rest/reference/users#delete-a-gpg-key-for-the-authenticated-user + */ + "DELETE /user/gpg_keys/{gpg_key_id}": Operation<"/user/gpg_keys/{gpg_key_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/apps#remove-a-repository-from-an-app-installation + */ + "DELETE /user/installations/{installation_id}/repositories/{repository_id}": Operation<"/user/installations/{installation_id}/repositories/{repository_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/interactions#remove-interaction-restrictions-from-your-public-repositories + */ + "DELETE /user/interaction-limits": Operation<"/user/interaction-limits", "delete">; + /** + * @see https://docs.github.com/rest/reference/users#delete-a-public-ssh-key-for-the-authenticated-user + */ + "DELETE /user/keys/{key_id}": Operation<"/user/keys/{key_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/migrations#delete-a-user-migration-archive + */ + "DELETE /user/migrations/{migration_id}/archive": Operation<"/user/migrations/{migration_id}/archive", "delete", "wyandotte">; + /** + * @see https://docs.github.com/rest/reference/migrations#unlock-a-user-repository + */ + "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock": Operation<"/user/migrations/{migration_id}/repos/{repo_name}/lock", "delete", "wyandotte">; + /** + * @see https://docs.github.com/rest/reference/repos#decline-a-repository-invitation + */ + "DELETE /user/repository_invitations/{invitation_id}": Operation<"/user/repository_invitations/{invitation_id}", "delete">; + /** + * @see https://docs.github.com/rest/reference/activity#unstar-a-repository-for-the-authenticated-user + */ + "DELETE /user/starred/{owner}/{repo}": Operation<"/user/starred/{owner}/{repo}", "delete">; + /** + * @see + */ + "GET /": Operation<"/", "get">; + /** + * @see https://docs.github.com/v3/apps/#get-the-authenticated-app + */ + "GET /app": Operation<"/app", "get">; + /** + * @see https://docs.github.com/v3/apps#get-a-webhook-configuration-for-an-app + */ + "GET /app/hook/config": Operation<"/app/hook/config", "get">; + /** + * @see https://docs.github.com/v3/apps/#list-installations-for-the-authenticated-app + */ + "GET /app/installations": Operation<"/app/installations", "get">; + /** + * @see https://docs.github.com/v3/apps/#get-an-installation-for-the-authenticated-app + */ + "GET /app/installations/{installation_id}": Operation<"/app/installations/{installation_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#list-your-grants + */ + "GET /applications/grants": Operation<"/applications/grants", "get">; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#get-a-single-grant + */ + "GET /applications/grants/{grant_id}": Operation<"/applications/grants/{grant_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#check-an-authorization + */ + "GET /applications/{client_id}/tokens/{access_token}": Operation<"/applications/{client_id}/tokens/{access_token}", "get">; + /** + * @see https://docs.github.com/v3/apps/#get-an-app + */ + "GET /apps/{app_slug}": Operation<"/apps/{app_slug}", "get">; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#list-your-authorizations + */ + "GET /authorizations": Operation<"/authorizations", "get">; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#get-a-single-authorization + */ + "GET /authorizations/{authorization_id}": Operation<"/authorizations/{authorization_id}", "get">; + /** + * @see https://docs.github.com/v3/codes_of_conduct/#get-all-codes-of-conduct + */ + "GET /codes_of_conduct": Operation<"/codes_of_conduct", "get", "scarlet-witch">; + /** + * @see https://docs.github.com/v3/codes_of_conduct/#get-a-code-of-conduct + */ + "GET /codes_of_conduct/{key}": Operation<"/codes_of_conduct/{key}", "get", "scarlet-witch">; + /** + * @see https://docs.github.com/v3/emojis/#get-emojis + */ + "GET /emojis": Operation<"/emojis", "get">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#get-github-actions-permissions-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/permissions": Operation<"/enterprises/{enterprise}/actions/permissions", "get">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#list-selected-organizations-enabled-for-github-actions-in-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/permissions/organizations": Operation<"/enterprises/{enterprise}/actions/permissions/organizations", "get">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#get-allowed-actions-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/permissions/selected-actions": Operation<"/enterprises/{enterprise}/actions/permissions/selected-actions", "get">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#list-self-hosted-runner-groups-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/runner-groups": Operation<"/enterprises/{enterprise}/actions/runner-groups", "get">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#get-a-self-hosted-runner-group-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#list-organization-access-to-a-self-hosted-runner-group-in-a-enterprise + */ + "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations", "get">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#list-self-hosted-runners-in-a-group-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners", "get">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#list-self-hosted-runners-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/runners": Operation<"/enterprises/{enterprise}/actions/runners", "get">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#list-runner-applications-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/runners/downloads": Operation<"/enterprises/{enterprise}/actions/runners/downloads", "get">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#get-a-self-hosted-runner-for-an-enterprise + */ + "GET /enterprises/{enterprise}/actions/runners/{runner_id}": Operation<"/enterprises/{enterprise}/actions/runners/{runner_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#get-the-audit-log-for-an-enterprise + */ + "GET /enterprises/{enterprise}/audit-log": Operation<"/enterprises/{enterprise}/audit-log", "get">; + /** + * @see https://docs.github.com/v3/billing/#get-github-actions-billing-for-an-enterprise + */ + "GET /enterprises/{enterprise}/settings/billing/actions": Operation<"/enterprises/{enterprise}/settings/billing/actions", "get">; + /** + * @see https://docs.github.com/v3/billing/#get-github-packages-billing-for-an-enterprise + */ + "GET /enterprises/{enterprise}/settings/billing/packages": Operation<"/enterprises/{enterprise}/settings/billing/packages", "get">; + /** + * @see https://docs.github.com/v3/billing/#get-shared-storage-billing-for-an-enterprise + */ + "GET /enterprises/{enterprise}/settings/billing/shared-storage": Operation<"/enterprises/{enterprise}/settings/billing/shared-storage", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-public-events + */ + "GET /events": Operation<"/events", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#get-feeds + */ + "GET /feeds": Operation<"/feeds", "get">; + /** + * @see https://docs.github.com/v3/gists/#list-gists-for-the-authenticated-user + */ + "GET /gists": Operation<"/gists", "get">; + /** + * @see https://docs.github.com/v3/gists/#list-public-gists + */ + "GET /gists/public": Operation<"/gists/public", "get">; + /** + * @see https://docs.github.com/v3/gists/#list-starred-gists + */ + "GET /gists/starred": Operation<"/gists/starred", "get">; + /** + * @see https://docs.github.com/v3/gists/#get-a-gist + */ + "GET /gists/{gist_id}": Operation<"/gists/{gist_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/gists#list-gist-comments + */ + "GET /gists/{gist_id}/comments": Operation<"/gists/{gist_id}/comments", "get">; + /** + * @see https://docs.github.com/rest/reference/gists#get-a-gist-comment + */ + "GET /gists/{gist_id}/comments/{comment_id}": Operation<"/gists/{gist_id}/comments/{comment_id}", "get">; + /** + * @see https://docs.github.com/v3/gists/#list-gist-commits + */ + "GET /gists/{gist_id}/commits": Operation<"/gists/{gist_id}/commits", "get">; + /** + * @see https://docs.github.com/v3/gists/#list-gist-forks + */ + "GET /gists/{gist_id}/forks": Operation<"/gists/{gist_id}/forks", "get">; + /** + * @see https://docs.github.com/v3/gists/#check-if-a-gist-is-starred + */ + "GET /gists/{gist_id}/star": Operation<"/gists/{gist_id}/star", "get">; + /** + * @see https://docs.github.com/v3/gists/#get-a-gist-revision + */ + "GET /gists/{gist_id}/{sha}": Operation<"/gists/{gist_id}/{sha}", "get">; + /** + * @see https://docs.github.com/v3/gitignore/#get-all-gitignore-templates + */ + "GET /gitignore/templates": Operation<"/gitignore/templates", "get">; + /** + * @see https://docs.github.com/v3/gitignore/#get-a-gitignore-template + */ + "GET /gitignore/templates/{name}": Operation<"/gitignore/templates/{name}", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#list-repositories-accessible-to-the-app-installation + */ + "GET /installation/repositories": Operation<"/installation/repositories", "get">; + /** + * @see https://docs.github.com/v3/issues/#list-issues-assigned-to-the-authenticated-user + */ + "GET /issues": Operation<"/issues", "get">; + /** + * @see https://docs.github.com/v3/licenses/#get-all-commonly-used-licenses + */ + "GET /licenses": Operation<"/licenses", "get">; + /** + * @see https://docs.github.com/v3/licenses/#get-a-license + */ + "GET /licenses/{license}": Operation<"/licenses/{license}", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#get-a-subscription-plan-for-an-account + */ + "GET /marketplace_listing/accounts/{account_id}": Operation<"/marketplace_listing/accounts/{account_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#list-plans + */ + "GET /marketplace_listing/plans": Operation<"/marketplace_listing/plans", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#list-accounts-for-a-plan + */ + "GET /marketplace_listing/plans/{plan_id}/accounts": Operation<"/marketplace_listing/plans/{plan_id}/accounts", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#get-a-subscription-plan-for-an-account-stubbed + */ + "GET /marketplace_listing/stubbed/accounts/{account_id}": Operation<"/marketplace_listing/stubbed/accounts/{account_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#list-plans-stubbed + */ + "GET /marketplace_listing/stubbed/plans": Operation<"/marketplace_listing/stubbed/plans", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#list-accounts-for-a-plan-stubbed + */ + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts": Operation<"/marketplace_listing/stubbed/plans/{plan_id}/accounts", "get">; + /** + * @see https://docs.github.com/v3/meta/#get-github-meta-information + */ + "GET /meta": Operation<"/meta", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-public-events-for-a-network-of-repositories + */ + "GET /networks/{owner}/{repo}/events": Operation<"/networks/{owner}/{repo}/events", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-notifications-for-the-authenticated-user + */ + "GET /notifications": Operation<"/notifications", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#get-a-thread + */ + "GET /notifications/threads/{thread_id}": Operation<"/notifications/threads/{thread_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#get-a-thread-subscription-for-the-authenticated-user + */ + "GET /notifications/threads/{thread_id}/subscription": Operation<"/notifications/threads/{thread_id}/subscription", "get">; + /** + * @see + */ + "GET /octocat": Operation<"/octocat", "get">; + /** + * @see https://docs.github.com/v3/orgs/#list-organizations + */ + "GET /organizations": Operation<"/organizations", "get">; + /** + * @see https://docs.github.com/v3/orgs/#get-an-organization + */ + "GET /orgs/{org}": Operation<"/orgs/{org}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-github-actions-permissions-for-an-organization + */ + "GET /orgs/{org}/actions/permissions": Operation<"/orgs/{org}/actions/permissions", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-selected-repositories-enabled-for-github-actions-in-an-organization + */ + "GET /orgs/{org}/actions/permissions/repositories": Operation<"/orgs/{org}/actions/permissions/repositories", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-allowed-actions-for-an-organization + */ + "GET /orgs/{org}/actions/permissions/selected-actions": Operation<"/orgs/{org}/actions/permissions/selected-actions", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runner-groups-for-an-organization + */ + "GET /orgs/{org}/actions/runner-groups": Operation<"/orgs/{org}/actions/runner-groups", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-a-self-hosted-runner-group-for-an-organization + */ + "GET /orgs/{org}/actions/runner-groups/{runner_group_id}": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-repository-access-to-a-self-hosted-runner-group-in-an-organization + */ + "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runners-in-a-group-for-an-organization + */ + "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}/runners", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runners-for-an-organization + */ + "GET /orgs/{org}/actions/runners": Operation<"/orgs/{org}/actions/runners", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-runner-applications-for-an-organization + */ + "GET /orgs/{org}/actions/runners/downloads": Operation<"/orgs/{org}/actions/runners/downloads", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-a-self-hosted-runner-for-an-organization + */ + "GET /orgs/{org}/actions/runners/{runner_id}": Operation<"/orgs/{org}/actions/runners/{runner_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-organization-secrets + */ + "GET /orgs/{org}/actions/secrets": Operation<"/orgs/{org}/actions/secrets", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-an-organization-public-key + */ + "GET /orgs/{org}/actions/secrets/public-key": Operation<"/orgs/{org}/actions/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-an-organization-secret + */ + "GET /orgs/{org}/actions/secrets/{secret_name}": Operation<"/orgs/{org}/actions/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-selected-repositories-for-an-organization-secret + */ + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/actions/secrets/{secret_name}/repositories", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#get-the-audit-log-for-an-organization + */ + "GET /orgs/{org}/audit-log": Operation<"/orgs/{org}/audit-log", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-users-blocked-by-an-organization + */ + "GET /orgs/{org}/blocks": Operation<"/orgs/{org}/blocks", "get", "giant-sentry-fist">; + /** + * @see https://docs.github.com/rest/reference/orgs#check-if-a-user-is-blocked-by-an-organization + */ + "GET /orgs/{org}/blocks/{username}": Operation<"/orgs/{org}/blocks/{username}", "get", "giant-sentry-fist">; + /** + * @see https://docs.github.com/v3/orgs/#list-saml-sso-authorizations-for-an-organization + */ + "GET /orgs/{org}/credential-authorizations": Operation<"/orgs/{org}/credential-authorizations", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-public-organization-events + */ + "GET /orgs/{org}/events": Operation<"/orgs/{org}/events", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organization-webhooks + */ + "GET /orgs/{org}/hooks": Operation<"/orgs/{org}/hooks", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#get-an-organization-webhook + */ + "GET /orgs/{org}/hooks/{hook_id}": Operation<"/orgs/{org}/hooks/{hook_id}", "get">; + /** + * @see https://docs.github.com/v3/orgs#get-a-webhook-configuration-for-an-organization + */ + "GET /orgs/{org}/hooks/{hook_id}/config": Operation<"/orgs/{org}/hooks/{hook_id}/config", "get">; + /** + * @see https://docs.github.com/v3/apps/#get-an-organization-installation-for-the-authenticated-app + */ + "GET /orgs/{org}/installation": Operation<"/orgs/{org}/installation", "get">; + /** + * @see https://docs.github.com/v3/orgs/#list-app-installations-for-an-organization + */ + "GET /orgs/{org}/installations": Operation<"/orgs/{org}/installations", "get">; + /** + * @see https://docs.github.com/rest/reference/interactions#get-interaction-restrictions-for-an-organization + */ + "GET /orgs/{org}/interaction-limits": Operation<"/orgs/{org}/interaction-limits", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-pending-organization-invitations + */ + "GET /orgs/{org}/invitations": Operation<"/orgs/{org}/invitations", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organization-invitation-teams + */ + "GET /orgs/{org}/invitations/{invitation_id}/teams": Operation<"/orgs/{org}/invitations/{invitation_id}/teams", "get">; + /** + * @see https://docs.github.com/v3/issues/#list-organization-issues-assigned-to-the-authenticated-user + */ + "GET /orgs/{org}/issues": Operation<"/orgs/{org}/issues", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organization-members + */ + "GET /orgs/{org}/members": Operation<"/orgs/{org}/members", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#check-organization-membership-for-a-user + */ + "GET /orgs/{org}/members/{username}": Operation<"/orgs/{org}/members/{username}", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#get-organization-membership-for-a-user + */ + "GET /orgs/{org}/memberships/{username}": Operation<"/orgs/{org}/memberships/{username}", "get">; + /** + * @see https://docs.github.com/rest/reference/migrations#list-organization-migrations + */ + "GET /orgs/{org}/migrations": Operation<"/orgs/{org}/migrations", "get", "wyandotte">; + /** + * @see https://docs.github.com/rest/reference/migrations#get-an-organization-migration-status + */ + "GET /orgs/{org}/migrations/{migration_id}": Operation<"/orgs/{org}/migrations/{migration_id}", "get", "wyandotte">; + /** + * @see https://docs.github.com/rest/reference/migrations#download-an-organization-migration-archive + */ + "GET /orgs/{org}/migrations/{migration_id}/archive": Operation<"/orgs/{org}/migrations/{migration_id}/archive", "get", "wyandotte">; + /** + * @see https://docs.github.com/rest/reference/migrations#list-repositories-in-an-organization-migration + */ + "GET /orgs/{org}/migrations/{migration_id}/repositories": Operation<"/orgs/{org}/migrations/{migration_id}/repositories", "get", "wyandotte">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-outside-collaborators-for-an-organization + */ + "GET /orgs/{org}/outside_collaborators": Operation<"/orgs/{org}/outside_collaborators", "get">; + /** + * @see https://docs.github.com/v3/projects/#list-organization-projects + */ + "GET /orgs/{org}/projects": Operation<"/orgs/{org}/projects", "get", "inertia">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-public-organization-members + */ + "GET /orgs/{org}/public_members": Operation<"/orgs/{org}/public_members", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#check-public-organization-membership-for-a-user + */ + "GET /orgs/{org}/public_members/{username}": Operation<"/orgs/{org}/public_members/{username}", "get">; + /** + * @see https://docs.github.com/v3/repos/#list-organization-repositories + */ + "GET /orgs/{org}/repos": Operation<"/orgs/{org}/repos", "get">; + /** + * @see https://docs.github.com/v3/billing/#get-github-actions-billing-for-an-organization + */ + "GET /orgs/{org}/settings/billing/actions": Operation<"/orgs/{org}/settings/billing/actions", "get">; + /** + * @see https://docs.github.com/v3/billing/#get-github-packages-billing-for-an-organization + */ + "GET /orgs/{org}/settings/billing/packages": Operation<"/orgs/{org}/settings/billing/packages", "get">; + /** + * @see https://docs.github.com/v3/billing/#get-shared-storage-billing-for-an-organization + */ + "GET /orgs/{org}/settings/billing/shared-storage": Operation<"/orgs/{org}/settings/billing/shared-storage", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-idp-groups-for-an-organization + */ + "GET /orgs/{org}/team-sync/groups": Operation<"/orgs/{org}/team-sync/groups", "get">; + /** + * @see https://docs.github.com/v3/teams/#list-teams + */ + "GET /orgs/{org}/teams": Operation<"/orgs/{org}/teams", "get">; + /** + * @see https://docs.github.com/v3/teams/#get-a-team-by-name + */ + "GET /orgs/{org}/teams/{team_slug}": Operation<"/orgs/{org}/teams/{team_slug}", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-discussions + */ + "GET /orgs/{org}/teams/{team_slug}/discussions": Operation<"/orgs/{org}/teams/{team_slug}/discussions", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#get-a-discussion + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-discussion-comments + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#get-a-discussion-comment + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", "get">; + /** + * @see https://docs.github.com/v3/reactions/#list-reactions-for-a-team-discussion-comment + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "get", "squirrel-girl">; + /** + * @see https://docs.github.com/v3/reactions/#list-reactions-for-a-team-discussion + */ + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "get", "squirrel-girl">; + /** + * @see https://docs.github.com/rest/reference/teams#list-pending-team-invitations + */ + "GET /orgs/{org}/teams/{team_slug}/invitations": Operation<"/orgs/{org}/teams/{team_slug}/invitations", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-team-members + */ + "GET /orgs/{org}/teams/{team_slug}/members": Operation<"/orgs/{org}/teams/{team_slug}/members", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#get-team-membership-for-a-user + */ + "GET /orgs/{org}/teams/{team_slug}/memberships/{username}": Operation<"/orgs/{org}/teams/{team_slug}/memberships/{username}", "get">; + /** + * @see https://docs.github.com/v3/teams/#list-team-projects + */ + "GET /orgs/{org}/teams/{team_slug}/projects": Operation<"/orgs/{org}/teams/{team_slug}/projects", "get", "inertia">; + /** + * @see https://docs.github.com/v3/teams/#check-team-permissions-for-a-project + */ + "GET /orgs/{org}/teams/{team_slug}/projects/{project_id}": Operation<"/orgs/{org}/teams/{team_slug}/projects/{project_id}", "get", "inertia">; + /** + * @see https://docs.github.com/v3/teams/#list-team-repositories + */ + "GET /orgs/{org}/teams/{team_slug}/repos": Operation<"/orgs/{org}/teams/{team_slug}/repos", "get">; + /** + * @see https://docs.github.com/v3/teams/#check-team-permissions-for-a-repository + */ + "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": Operation<"/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-idp-groups-for-a-team + */ + "GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings": Operation<"/orgs/{org}/teams/{team_slug}/team-sync/group-mappings", "get">; + /** + * @see https://docs.github.com/v3/teams/#list-child-teams + */ + "GET /orgs/{org}/teams/{team_slug}/teams": Operation<"/orgs/{org}/teams/{team_slug}/teams", "get">; + /** + * @see https://docs.github.com/rest/reference/projects#get-a-project-card + */ + "GET /projects/columns/cards/{card_id}": Operation<"/projects/columns/cards/{card_id}", "get", "inertia">; + /** + * @see https://docs.github.com/rest/reference/projects#get-a-project-column + */ + "GET /projects/columns/{column_id}": Operation<"/projects/columns/{column_id}", "get", "inertia">; + /** + * @see https://docs.github.com/rest/reference/projects#list-project-cards + */ + "GET /projects/columns/{column_id}/cards": Operation<"/projects/columns/{column_id}/cards", "get", "inertia">; + /** + * @see https://docs.github.com/v3/projects/#get-a-project + */ + "GET /projects/{project_id}": Operation<"/projects/{project_id}", "get", "inertia">; + /** + * @see https://docs.github.com/rest/reference/projects#list-project-collaborators + */ + "GET /projects/{project_id}/collaborators": Operation<"/projects/{project_id}/collaborators", "get", "inertia">; + /** + * @see https://docs.github.com/rest/reference/projects#get-project-permission-for-a-user + */ + "GET /projects/{project_id}/collaborators/{username}/permission": Operation<"/projects/{project_id}/collaborators/{username}/permission", "get", "inertia">; + /** + * @see https://docs.github.com/rest/reference/projects#list-project-columns + */ + "GET /projects/{project_id}/columns": Operation<"/projects/{project_id}/columns", "get", "inertia">; + /** + * @see https://docs.github.com/v3/rate_limit/#get-rate-limit-status-for-the-authenticated-user + */ + "GET /rate_limit": Operation<"/rate_limit", "get">; + /** + * @see https://docs.github.com/v3/repos/#get-a-repository + */ + "GET /repos/{owner}/{repo}": Operation<"/repos/{owner}/{repo}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-artifacts-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/artifacts": Operation<"/repos/{owner}/{repo}/actions/artifacts", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-an-artifact + */ + "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}": Operation<"/repos/{owner}/{repo}/actions/artifacts/{artifact_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#download-an-artifact + */ + "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}": Operation<"/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-a-job-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/jobs/{job_id}": Operation<"/repos/{owner}/{repo}/actions/jobs/{job_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#download-job-logs-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs": Operation<"/repos/{owner}/{repo}/actions/jobs/{job_id}/logs", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-github-actions-permissions-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/permissions": Operation<"/repos/{owner}/{repo}/actions/permissions", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-allowed-actions-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/permissions/selected-actions": Operation<"/repos/{owner}/{repo}/actions/permissions/selected-actions", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-self-hosted-runners-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners": Operation<"/repos/{owner}/{repo}/actions/runners", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-runner-applications-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners/downloads": Operation<"/repos/{owner}/{repo}/actions/runners/downloads", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-a-self-hosted-runner-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runners/{runner_id}": Operation<"/repos/{owner}/{repo}/actions/runners/{runner_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-workflow-runs-for-a-repository + */ + "GET /repos/{owner}/{repo}/actions/runs": Operation<"/repos/{owner}/{repo}/actions/runs", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-workflow-run-artifacts + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-jobs-for-a-workflow-run + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/jobs", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#download-workflow-run-logs + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/logs", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-workflow-run-usage + */ + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/timing", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-repository-secrets + */ + "GET /repos/{owner}/{repo}/actions/secrets": Operation<"/repos/{owner}/{repo}/actions/secrets", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-a-repository-public-key + */ + "GET /repos/{owner}/{repo}/actions/secrets/public-key": Operation<"/repos/{owner}/{repo}/actions/secrets/public-key", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-a-repository-secret + */ + "GET /repos/{owner}/{repo}/actions/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/actions/secrets/{secret_name}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-repository-workflows + */ + "GET /repos/{owner}/{repo}/actions/workflows": Operation<"/repos/{owner}/{repo}/actions/workflows", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-a-workflow + */ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#list-workflow-runs + */ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", "get">; + /** + * @see https://docs.github.com/rest/reference/actions#get-workflow-usage + */ + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-assignees + */ + "GET /repos/{owner}/{repo}/assignees": Operation<"/repos/{owner}/{repo}/assignees", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#check-if-a-user-can-be-assigned + */ + "GET /repos/{owner}/{repo}/assignees/{assignee}": Operation<"/repos/{owner}/{repo}/assignees/{assignee}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-branches + */ + "GET /repos/{owner}/{repo}/branches": Operation<"/repos/{owner}/{repo}/branches", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-branch + */ + "GET /repos/{owner}/{repo}/branches/{branch}": Operation<"/repos/{owner}/{repo}/branches/{branch}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-branch-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-admin-branch-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-pull-request-review-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-commit-signature-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", "get", "zzzax">; + /** + * @see https://docs.github.com/rest/reference/repos#get-status-checks-protection + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-all-status-check-contexts + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-access-restrictions + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-apps-with-access-to-the-protected-branch + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-teams-with-access-to-the-protected-branch + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-users-with-access-to-the-protected-branch + */ + "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", "get">; + /** + * @see https://docs.github.com/rest/reference/checks#get-a-check-run + */ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}": Operation<"/repos/{owner}/{repo}/check-runs/{check_run_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/checks#list-check-run-annotations + */ + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations": Operation<"/repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", "get">; + /** + * @see https://docs.github.com/rest/reference/checks#get-a-check-suite + */ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}": Operation<"/repos/{owner}/{repo}/check-suites/{check_suite_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/checks#list-check-runs-in-a-check-suite + */ + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs": Operation<"/repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", "get">; + /** + * @see https://docs.github.com/v3/code-scanning/#list-code-scanning-alerts-for-a-repository + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts": Operation<"/repos/{owner}/{repo}/code-scanning/alerts", "get">; + /** + * @see https://docs.github.com/v3/code-scanning/#get-a-code-scanning-alert + * @deprecated "alert_id" is now "alert_number" + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_id}": Operation<"/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", "get">; + /** + * @see https://docs.github.com/v3/code-scanning/#get-a-code-scanning-alert + */ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", "get">; + /** + * @see https://docs.github.com/v3/code-scanning/#list-recent-analyses + */ + "GET /repos/{owner}/{repo}/code-scanning/analyses": Operation<"/repos/{owner}/{repo}/code-scanning/analyses", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-collaborators + */ + "GET /repos/{owner}/{repo}/collaborators": Operation<"/repos/{owner}/{repo}/collaborators", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#check-if-a-user-is-a-repository-collaborator + */ + "GET /repos/{owner}/{repo}/collaborators/{username}": Operation<"/repos/{owner}/{repo}/collaborators/{username}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-repository-permissions-for-a-user + */ + "GET /repos/{owner}/{repo}/collaborators/{username}/permission": Operation<"/repos/{owner}/{repo}/collaborators/{username}/permission", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-commit-comments-for-a-repository + */ + "GET /repos/{owner}/{repo}/comments": Operation<"/repos/{owner}/{repo}/comments", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-commit-comment + */ + "GET /repos/{owner}/{repo}/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/comments/{comment_id}", "get">; + /** + * @see https://docs.github.com/v3/reactions/#list-reactions-for-a-commit-comment + */ + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/comments/{comment_id}/reactions", "get", "squirrel-girl">; + /** + * @see https://docs.github.com/rest/reference/repos#list-commits + */ + "GET /repos/{owner}/{repo}/commits": Operation<"/repos/{owner}/{repo}/commits", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-branches-for-head-commit + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head": Operation<"/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", "get", "groot">; + /** + * @see https://docs.github.com/rest/reference/repos#list-commit-comments + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments": Operation<"/repos/{owner}/{repo}/commits/{commit_sha}/comments", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-pull-requests-associated-with-a-commit + */ + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls": Operation<"/repos/{owner}/{repo}/commits/{commit_sha}/pulls", "get", "groot">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-commit + */ + "GET /repos/{owner}/{repo}/commits/{ref}": Operation<"/repos/{owner}/{repo}/commits/{ref}", "get">; + /** + * @see https://docs.github.com/rest/reference/checks#list-check-runs-for-a-git-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/check-runs": Operation<"/repos/{owner}/{repo}/commits/{ref}/check-runs", "get">; + /** + * @see https://docs.github.com/rest/reference/checks#list-check-suites-for-a-git-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/check-suites": Operation<"/repos/{owner}/{repo}/commits/{ref}/check-suites", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-the-combined-status-for-a-specific-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/status": Operation<"/repos/{owner}/{repo}/commits/{ref}/status", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-commit-statuses-for-a-reference + */ + "GET /repos/{owner}/{repo}/commits/{ref}/statuses": Operation<"/repos/{owner}/{repo}/commits/{ref}/statuses", "get">; + /** + * @see https://docs.github.com/v3/codes_of_conduct/#get-the-code-of-conduct-for-a-repository + */ + "GET /repos/{owner}/{repo}/community/code_of_conduct": Operation<"/repos/{owner}/{repo}/community/code_of_conduct", "get", "scarlet-witch">; + /** + * @see https://docs.github.com/rest/reference/repos#get-community-profile-metrics + */ + "GET /repos/{owner}/{repo}/community/profile": Operation<"/repos/{owner}/{repo}/community/profile", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#compare-two-commits + */ + "GET /repos/{owner}/{repo}/compare/{base}...{head}": Operation<"/repos/{owner}/{repo}/compare/{base}...{head}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-repository-content + */ + "GET /repos/{owner}/{repo}/contents/{path}": Operation<"/repos/{owner}/{repo}/contents/{path}", "get">; + /** + * @see https://docs.github.com/v3/repos/#list-repository-contributors + */ + "GET /repos/{owner}/{repo}/contributors": Operation<"/repos/{owner}/{repo}/contributors", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-deployments + */ + "GET /repos/{owner}/{repo}/deployments": Operation<"/repos/{owner}/{repo}/deployments", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-deployment + */ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-deployment-statuses + */ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-deployment-status + */ + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-repository-events + */ + "GET /repos/{owner}/{repo}/events": Operation<"/repos/{owner}/{repo}/events", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-forks + */ + "GET /repos/{owner}/{repo}/forks": Operation<"/repos/{owner}/{repo}/forks", "get">; + /** + * @see https://docs.github.com/rest/reference/git#get-a-blob + */ + "GET /repos/{owner}/{repo}/git/blobs/{file_sha}": Operation<"/repos/{owner}/{repo}/git/blobs/{file_sha}", "get">; + /** + * @see https://docs.github.com/rest/reference/git#get-a-commit + */ + "GET /repos/{owner}/{repo}/git/commits/{commit_sha}": Operation<"/repos/{owner}/{repo}/git/commits/{commit_sha}", "get">; + /** + * @see https://docs.github.com/rest/reference/git#list-matching-references + */ + "GET /repos/{owner}/{repo}/git/matching-refs/{ref}": Operation<"/repos/{owner}/{repo}/git/matching-refs/{ref}", "get">; + /** + * @see https://docs.github.com/rest/reference/git#get-a-reference + */ + "GET /repos/{owner}/{repo}/git/ref/{ref}": Operation<"/repos/{owner}/{repo}/git/ref/{ref}", "get">; + /** + * @see https://docs.github.com/rest/reference/git#get-a-tag + */ + "GET /repos/{owner}/{repo}/git/tags/{tag_sha}": Operation<"/repos/{owner}/{repo}/git/tags/{tag_sha}", "get">; + /** + * @see https://docs.github.com/rest/reference/git#get-a-tree + */ + "GET /repos/{owner}/{repo}/git/trees/{tree_sha}": Operation<"/repos/{owner}/{repo}/git/trees/{tree_sha}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-webhooks + */ + "GET /repos/{owner}/{repo}/hooks": Operation<"/repos/{owner}/{repo}/hooks", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-repository-webhook + */ + "GET /repos/{owner}/{repo}/hooks/{hook_id}": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}", "get">; + /** + * @see https://docs.github.com/v3/repos#get-a-webhook-configuration-for-a-repository + */ + "GET /repos/{owner}/{repo}/hooks/{hook_id}/config": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/config", "get">; + /** + * @see https://docs.github.com/rest/reference/migrations#get-an-import-status + */ + "GET /repos/{owner}/{repo}/import": Operation<"/repos/{owner}/{repo}/import", "get">; + /** + * @see https://docs.github.com/rest/reference/migrations#get-commit-authors + */ + "GET /repos/{owner}/{repo}/import/authors": Operation<"/repos/{owner}/{repo}/import/authors", "get">; + /** + * @see https://docs.github.com/rest/reference/migrations#get-large-files + */ + "GET /repos/{owner}/{repo}/import/large_files": Operation<"/repos/{owner}/{repo}/import/large_files", "get">; + /** + * @see https://docs.github.com/v3/apps/#get-a-repository-installation-for-the-authenticated-app + */ + "GET /repos/{owner}/{repo}/installation": Operation<"/repos/{owner}/{repo}/installation", "get">; + /** + * @see https://docs.github.com/rest/reference/interactions#get-interaction-restrictions-for-a-repository + */ + "GET /repos/{owner}/{repo}/interaction-limits": Operation<"/repos/{owner}/{repo}/interaction-limits", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-invitations + */ + "GET /repos/{owner}/{repo}/invitations": Operation<"/repos/{owner}/{repo}/invitations", "get">; + /** + * @see https://docs.github.com/v3/issues/#list-repository-issues + */ + "GET /repos/{owner}/{repo}/issues": Operation<"/repos/{owner}/{repo}/issues", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-issue-comments-for-a-repository + */ + "GET /repos/{owner}/{repo}/issues/comments": Operation<"/repos/{owner}/{repo}/issues/comments", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#get-an-issue-comment + */ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}", "get">; + /** + * @see https://docs.github.com/v3/reactions/#list-reactions-for-an-issue-comment + */ + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "get", "squirrel-girl">; + /** + * @see https://docs.github.com/rest/reference/issues#list-issue-events-for-a-repository + */ + "GET /repos/{owner}/{repo}/issues/events": Operation<"/repos/{owner}/{repo}/issues/events", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#get-an-issue-event + */ + "GET /repos/{owner}/{repo}/issues/events/{event_id}": Operation<"/repos/{owner}/{repo}/issues/events/{event_id}", "get">; + /** + * @see https://docs.github.com/v3/issues/#get-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-issue-comments + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/comments": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/comments", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-issue-events + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/events": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/events", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-labels-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels", "get">; + /** + * @see https://docs.github.com/v3/reactions/#list-reactions-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/reactions", "get", "squirrel-girl">; + /** + * @see https://docs.github.com/rest/reference/issues#list-timeline-events-for-an-issue + */ + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/timeline", "get", "mockingbird">; + /** + * @see https://docs.github.com/rest/reference/repos#list-deploy-keys + */ + "GET /repos/{owner}/{repo}/keys": Operation<"/repos/{owner}/{repo}/keys", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-deploy-key + */ + "GET /repos/{owner}/{repo}/keys/{key_id}": Operation<"/repos/{owner}/{repo}/keys/{key_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-labels-for-a-repository + */ + "GET /repos/{owner}/{repo}/labels": Operation<"/repos/{owner}/{repo}/labels", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#get-a-label + */ + "GET /repos/{owner}/{repo}/labels/{name}": Operation<"/repos/{owner}/{repo}/labels/{name}", "get">; + /** + * @see https://docs.github.com/v3/repos/#list-repository-languages + */ + "GET /repos/{owner}/{repo}/languages": Operation<"/repos/{owner}/{repo}/languages", "get">; + /** + * @see https://docs.github.com/v3/licenses/#get-the-license-for-a-repository + */ + "GET /repos/{owner}/{repo}/license": Operation<"/repos/{owner}/{repo}/license", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-milestones + */ + "GET /repos/{owner}/{repo}/milestones": Operation<"/repos/{owner}/{repo}/milestones", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#get-a-milestone + */ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}": Operation<"/repos/{owner}/{repo}/milestones/{milestone_number}", "get">; + /** + * @see https://docs.github.com/rest/reference/issues#list-labels-for-issues-in-a-milestone + */ + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels": Operation<"/repos/{owner}/{repo}/milestones/{milestone_number}/labels", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-repository-notifications-for-the-authenticated-user + */ + "GET /repos/{owner}/{repo}/notifications": Operation<"/repos/{owner}/{repo}/notifications", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-github-pages-site + */ + "GET /repos/{owner}/{repo}/pages": Operation<"/repos/{owner}/{repo}/pages", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-github-pages-builds + */ + "GET /repos/{owner}/{repo}/pages/builds": Operation<"/repos/{owner}/{repo}/pages/builds", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-latest-pages-build + */ + "GET /repos/{owner}/{repo}/pages/builds/latest": Operation<"/repos/{owner}/{repo}/pages/builds/latest", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-github-pages-build + */ + "GET /repos/{owner}/{repo}/pages/builds/{build_id}": Operation<"/repos/{owner}/{repo}/pages/builds/{build_id}", "get">; + /** + * @see https://docs.github.com/v3/projects/#list-repository-projects + */ + "GET /repos/{owner}/{repo}/projects": Operation<"/repos/{owner}/{repo}/projects", "get", "inertia">; + /** + * @see https://docs.github.com/v3/pulls/#list-pull-requests + */ + "GET /repos/{owner}/{repo}/pulls": Operation<"/repos/{owner}/{repo}/pulls", "get">; + /** + * @see https://docs.github.com/rest/reference/pulls#list-review-comments-in-a-repository + */ + "GET /repos/{owner}/{repo}/pulls/comments": Operation<"/repos/{owner}/{repo}/pulls/comments", "get">; + /** + * @see https://docs.github.com/rest/reference/pulls#get-a-review-comment-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}", "get">; + /** + * @see https://docs.github.com/v3/reactions/#list-reactions-for-a-pull-request-review-comment + */ + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "get", "squirrel-girl">; + /** + * @see https://docs.github.com/v3/pulls/#get-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}", "get">; + /** + * @see https://docs.github.com/rest/reference/pulls#list-review-comments-on-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/comments", "get">; + /** + * @see https://docs.github.com/v3/pulls/#list-commits-on-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/commits", "get">; + /** + * @see https://docs.github.com/v3/pulls/#list-pull-requests-files + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/files": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/files", "get">; + /** + * @see https://docs.github.com/v3/pulls/#check-if-a-pull-request-has-been-merged + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/merge": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/merge", "get">; + /** + * @see https://docs.github.com/rest/reference/pulls#list-requested-reviewers-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "get">; + /** + * @see https://docs.github.com/rest/reference/pulls#list-reviews-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews", "get">; + /** + * @see https://docs.github.com/rest/reference/pulls#get-a-review-for-a-pull-request + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/pulls#list-comments-for-a-pull-request-review + */ + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-repository-readme + */ + "GET /repos/{owner}/{repo}/readme": Operation<"/repos/{owner}/{repo}/readme", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-releases + */ + "GET /repos/{owner}/{repo}/releases": Operation<"/repos/{owner}/{repo}/releases", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-release-asset + */ + "GET /repos/{owner}/{repo}/releases/assets/{asset_id}": Operation<"/repos/{owner}/{repo}/releases/assets/{asset_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-the-latest-release + */ + "GET /repos/{owner}/{repo}/releases/latest": Operation<"/repos/{owner}/{repo}/releases/latest", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-release-by-tag-name + */ + "GET /repos/{owner}/{repo}/releases/tags/{tag}": Operation<"/repos/{owner}/{repo}/releases/tags/{tag}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-a-release + */ + "GET /repos/{owner}/{repo}/releases/{release_id}": Operation<"/repos/{owner}/{repo}/releases/{release_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-release-assets + */ + "GET /repos/{owner}/{repo}/releases/{release_id}/assets": Operation<"/repos/{owner}/{repo}/releases/{release_id}/assets", "get">; + /** + * @see https://docs.github.com/rest/reference/secret-scanning#list-secret-scanning-alerts-for-a-repository + */ + "GET /repos/{owner}/{repo}/secret-scanning/alerts": Operation<"/repos/{owner}/{repo}/secret-scanning/alerts", "get">; + /** + * @see https://docs.github.com/rest/reference/secret-scanning#get-a-secret-scanning-alert + */ + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-stargazers + */ + "GET /repos/{owner}/{repo}/stargazers": Operation<"/repos/{owner}/{repo}/stargazers", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-the-weekly-commit-activity + */ + "GET /repos/{owner}/{repo}/stats/code_frequency": Operation<"/repos/{owner}/{repo}/stats/code_frequency", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-the-last-year-of-commit-activity + */ + "GET /repos/{owner}/{repo}/stats/commit_activity": Operation<"/repos/{owner}/{repo}/stats/commit_activity", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-all-contributor-commit-activity + */ + "GET /repos/{owner}/{repo}/stats/contributors": Operation<"/repos/{owner}/{repo}/stats/contributors", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-the-weekly-commit-count + */ + "GET /repos/{owner}/{repo}/stats/participation": Operation<"/repos/{owner}/{repo}/stats/participation", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-the-hourly-commit-count-for-each-day + */ + "GET /repos/{owner}/{repo}/stats/punch_card": Operation<"/repos/{owner}/{repo}/stats/punch_card", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-watchers + */ + "GET /repos/{owner}/{repo}/subscribers": Operation<"/repos/{owner}/{repo}/subscribers", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#get-a-repository-subscription + */ + "GET /repos/{owner}/{repo}/subscription": Operation<"/repos/{owner}/{repo}/subscription", "get">; + /** + * @see https://docs.github.com/v3/repos/#list-repository-tags + */ + "GET /repos/{owner}/{repo}/tags": Operation<"/repos/{owner}/{repo}/tags", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#download-a-repository-archive + */ + "GET /repos/{owner}/{repo}/tarball/{ref}": Operation<"/repos/{owner}/{repo}/tarball/{ref}", "get">; + /** + * @see https://docs.github.com/v3/repos/#list-repository-teams + */ + "GET /repos/{owner}/{repo}/teams": Operation<"/repos/{owner}/{repo}/teams", "get">; + /** + * @see https://docs.github.com/v3/repos/#get-all-repository-topics + */ + "GET /repos/{owner}/{repo}/topics": Operation<"/repos/{owner}/{repo}/topics", "get", "mercy">; + /** + * @see https://docs.github.com/rest/reference/repos#get-repository-clones + */ + "GET /repos/{owner}/{repo}/traffic/clones": Operation<"/repos/{owner}/{repo}/traffic/clones", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-top-referral-paths + */ + "GET /repos/{owner}/{repo}/traffic/popular/paths": Operation<"/repos/{owner}/{repo}/traffic/popular/paths", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-top-referral-sources + */ + "GET /repos/{owner}/{repo}/traffic/popular/referrers": Operation<"/repos/{owner}/{repo}/traffic/popular/referrers", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#get-page-views + */ + "GET /repos/{owner}/{repo}/traffic/views": Operation<"/repos/{owner}/{repo}/traffic/views", "get">; + /** + * @see https://docs.github.com/v3/repos/#check-if-vulnerability-alerts-are-enabled-for-a-repository + */ + "GET /repos/{owner}/{repo}/vulnerability-alerts": Operation<"/repos/{owner}/{repo}/vulnerability-alerts", "get", "dorian">; + /** + * @see https://docs.github.com/rest/reference/repos#download-a-repository-archive + */ + "GET /repos/{owner}/{repo}/zipball/{ref}": Operation<"/repos/{owner}/{repo}/zipball/{ref}", "get">; + /** + * @see https://docs.github.com/v3/repos/#list-public-repositories + */ + "GET /repositories": Operation<"/repositories", "get">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#list-provisioned-scim groups-for-an-enterprise + */ + "GET /scim/v2/enterprises/{enterprise}/Groups": Operation<"/scim/v2/enterprises/{enterprise}/Groups", "get">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#get-scim-provisioning-information-for-an-enterprise group + */ + "GET /scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}": Operation<"/scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#list-scim-provisioned-identities-for-an-enterprise + */ + "GET /scim/v2/enterprises/{enterprise}/Users": Operation<"/scim/v2/enterprises/{enterprise}/Users", "get">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#get-scim-provisioning-information-for-an-enterprise-user + */ + "GET /scim/v2/enterprises/{enterprise}/Users/{scim_user_id}": Operation<"/scim/v2/enterprises/{enterprise}/Users/{scim_user_id}", "get">; + /** + * @see https://docs.github.com/v3/scim/#list-scim-provisioned-identities + */ + "GET /scim/v2/organizations/{org}/Users": Operation<"/scim/v2/organizations/{org}/Users", "get">; + /** + * @see https://docs.github.com/v3/scim/#get-scim-provisioning-information-for-a-user + */ + "GET /scim/v2/organizations/{org}/Users/{scim_user_id}": Operation<"/scim/v2/organizations/{org}/Users/{scim_user_id}", "get">; + /** + * @see https://docs.github.com/v3/search/#search-code + */ + "GET /search/code": Operation<"/search/code", "get">; + /** + * @see https://docs.github.com/v3/search/#search-commits + */ + "GET /search/commits": Operation<"/search/commits", "get", "cloak">; + /** + * @see https://docs.github.com/v3/search/#search-issues-and-pull-requests + */ + "GET /search/issues": Operation<"/search/issues", "get">; + /** + * @see https://docs.github.com/v3/search/#search-labels + */ + "GET /search/labels": Operation<"/search/labels", "get">; + /** + * @see https://docs.github.com/v3/search/#search-repositories + */ + "GET /search/repositories": Operation<"/search/repositories", "get">; + /** + * @see https://docs.github.com/v3/search/#search-topics + */ + "GET /search/topics": Operation<"/search/topics", "get", "mercy">; + /** + * @see https://docs.github.com/v3/search/#search-users + */ + "GET /search/users": Operation<"/search/users", "get">; + /** + * @see https://docs.github.com/v3/teams/#get-a-team-legacy + */ + "GET /teams/{team_id}": Operation<"/teams/{team_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-discussions-legacy + */ + "GET /teams/{team_id}/discussions": Operation<"/teams/{team_id}/discussions", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#get-a-discussion-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-discussion-comments-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/comments": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#get-a-discussion-comment-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}", "get">; + /** + * @see https://docs.github.com/v3/reactions/#list-reactions-for-a-team-discussion-comment-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "get", "squirrel-girl">; + /** + * @see https://docs.github.com/v3/reactions/#list-reactions-for-a-team-discussion-legacy + */ + "GET /teams/{team_id}/discussions/{discussion_number}/reactions": Operation<"/teams/{team_id}/discussions/{discussion_number}/reactions", "get", "squirrel-girl">; + /** + * @see https://docs.github.com/rest/reference/teams#list-pending-team-invitations-legacy + */ + "GET /teams/{team_id}/invitations": Operation<"/teams/{team_id}/invitations", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-team-members-legacy + */ + "GET /teams/{team_id}/members": Operation<"/teams/{team_id}/members", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#get-team-member-legacy + */ + "GET /teams/{team_id}/members/{username}": Operation<"/teams/{team_id}/members/{username}", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#get-team-membership-for-a-user-legacy + */ + "GET /teams/{team_id}/memberships/{username}": Operation<"/teams/{team_id}/memberships/{username}", "get">; + /** + * @see https://docs.github.com/v3/teams/#list-team-projects-legacy + */ + "GET /teams/{team_id}/projects": Operation<"/teams/{team_id}/projects", "get", "inertia">; + /** + * @see https://docs.github.com/v3/teams/#check-team-permissions-for-a-project-legacy + */ + "GET /teams/{team_id}/projects/{project_id}": Operation<"/teams/{team_id}/projects/{project_id}", "get", "inertia">; + /** + * @see https://docs.github.com/v3/teams/#list-team-repositories-legacy + */ + "GET /teams/{team_id}/repos": Operation<"/teams/{team_id}/repos", "get">; + /** + * @see https://docs.github.com/v3/teams/#check-team-permissions-for-a-repository-legacy + */ + "GET /teams/{team_id}/repos/{owner}/{repo}": Operation<"/teams/{team_id}/repos/{owner}/{repo}", "get">; + /** + * @see https://docs.github.com/rest/reference/teams#list-idp-groups-for-a-team-legacy + */ + "GET /teams/{team_id}/team-sync/group-mappings": Operation<"/teams/{team_id}/team-sync/group-mappings", "get">; + /** + * @see https://docs.github.com/v3/teams/#list-child-teams-legacy + */ + "GET /teams/{team_id}/teams": Operation<"/teams/{team_id}/teams", "get">; + /** + * @see https://docs.github.com/v3/users/#get-the-authenticated-user + */ + "GET /user": Operation<"/user", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-users-blocked-by-the-authenticated-user + */ + "GET /user/blocks": Operation<"/user/blocks", "get", "giant-sentry-fist">; + /** + * @see https://docs.github.com/rest/reference/users#check-if-a-user-is-blocked-by-the-authenticated-user + */ + "GET /user/blocks/{username}": Operation<"/user/blocks/{username}", "get", "giant-sentry-fist">; + /** + * @see https://docs.github.com/rest/reference/users#list-email-addresses-for-the-authenticated-user + */ + "GET /user/emails": Operation<"/user/emails", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-followers-of-the-authenticated-user + */ + "GET /user/followers": Operation<"/user/followers", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-the-people-the-authenticated-user-follows + */ + "GET /user/following": Operation<"/user/following", "get">; + /** + * @see https://docs.github.com/rest/reference/users#check-if-a-person-is-followed-by-the-authenticated-user + */ + "GET /user/following/{username}": Operation<"/user/following/{username}", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-gpg-keys-for-the-authenticated-user + */ + "GET /user/gpg_keys": Operation<"/user/gpg_keys", "get">; + /** + * @see https://docs.github.com/rest/reference/users#get-a-gpg-key-for-the-authenticated-user + */ + "GET /user/gpg_keys/{gpg_key_id}": Operation<"/user/gpg_keys/{gpg_key_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#list-app-installations-accessible-to-the-user-access-token + */ + "GET /user/installations": Operation<"/user/installations", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#list-repositories-accessible-to-the-user-access-token + */ + "GET /user/installations/{installation_id}/repositories": Operation<"/user/installations/{installation_id}/repositories", "get">; + /** + * @see https://docs.github.com/rest/reference/interactions#get-interaction-restrictions-for-your-public-repositories + */ + "GET /user/interaction-limits": Operation<"/user/interaction-limits", "get">; + /** + * @see https://docs.github.com/v3/issues/#list-user-account-issues-assigned-to-the-authenticated-user + */ + "GET /user/issues": Operation<"/user/issues", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-public-ssh-keys-for-the-authenticated-user + */ + "GET /user/keys": Operation<"/user/keys", "get">; + /** + * @see https://docs.github.com/rest/reference/users#get-a-public-ssh-key-for-the-authenticated-user + */ + "GET /user/keys/{key_id}": Operation<"/user/keys/{key_id}", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#list-subscriptions-for-the-authenticated-user + */ + "GET /user/marketplace_purchases": Operation<"/user/marketplace_purchases", "get">; + /** + * @see https://docs.github.com/rest/reference/apps#list-subscriptions-for-the-authenticated-user-stubbed + */ + "GET /user/marketplace_purchases/stubbed": Operation<"/user/marketplace_purchases/stubbed", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#list-organization-memberships-for-the-authenticated-user + */ + "GET /user/memberships/orgs": Operation<"/user/memberships/orgs", "get">; + /** + * @see https://docs.github.com/rest/reference/orgs#get-an-organization-membership-for-the-authenticated-user + */ + "GET /user/memberships/orgs/{org}": Operation<"/user/memberships/orgs/{org}", "get">; + /** + * @see https://docs.github.com/rest/reference/migrations#list-user-migrations + */ + "GET /user/migrations": Operation<"/user/migrations", "get", "wyandotte">; + /** + * @see https://docs.github.com/rest/reference/migrations#get-a-user-migration-status + */ + "GET /user/migrations/{migration_id}": Operation<"/user/migrations/{migration_id}", "get", "wyandotte">; + /** + * @see https://docs.github.com/rest/reference/migrations#download-a-user-migration-archive + */ + "GET /user/migrations/{migration_id}/archive": Operation<"/user/migrations/{migration_id}/archive", "get", "wyandotte">; + /** + * @see https://docs.github.com/rest/reference/migrations#list-repositories-for-a-user-migration + */ + "GET /user/migrations/{migration_id}/repositories": Operation<"/user/migrations/{migration_id}/repositories", "get", "wyandotte">; + /** + * @see https://docs.github.com/v3/orgs/#list-organizations-for-the-authenticated-user + */ + "GET /user/orgs": Operation<"/user/orgs", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-public-email-addresses-for-the-authenticated-user + */ + "GET /user/public_emails": Operation<"/user/public_emails", "get">; + /** + * @see https://docs.github.com/v3/repos/#list-repositories-for-the-authenticated-user + */ + "GET /user/repos": Operation<"/user/repos", "get">; + /** + * @see https://docs.github.com/rest/reference/repos#list-repository-invitations-for-the-authenticated-user + */ + "GET /user/repository_invitations": Operation<"/user/repository_invitations", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-repositories-starred-by-the-authenticated-user + */ + "GET /user/starred": Operation<"/user/starred", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#check-if-a-repository-is-starred-by-the-authenticated-user + */ + "GET /user/starred/{owner}/{repo}": Operation<"/user/starred/{owner}/{repo}", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-repositories-watched-by-the-authenticated-user + */ + "GET /user/subscriptions": Operation<"/user/subscriptions", "get">; + /** + * @see https://docs.github.com/v3/teams/#list-teams-for-the-authenticated-user + */ + "GET /user/teams": Operation<"/user/teams", "get">; + /** + * @see https://docs.github.com/v3/users/#list-users + */ + "GET /users": Operation<"/users", "get">; + /** + * @see https://docs.github.com/v3/users/#get-a-user + */ + "GET /users/{username}": Operation<"/users/{username}", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-events-for-the-authenticated-user + */ + "GET /users/{username}/events": Operation<"/users/{username}/events", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-organization-events-for-the-authenticated-user + */ + "GET /users/{username}/events/orgs/{org}": Operation<"/users/{username}/events/orgs/{org}", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-public-events-for-a-user + */ + "GET /users/{username}/events/public": Operation<"/users/{username}/events/public", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-followers-of-a-user + */ + "GET /users/{username}/followers": Operation<"/users/{username}/followers", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-the-people-a-user-follows + */ + "GET /users/{username}/following": Operation<"/users/{username}/following", "get">; + /** + * @see https://docs.github.com/rest/reference/users#check-if-a-user-follows-another-user + */ + "GET /users/{username}/following/{target_user}": Operation<"/users/{username}/following/{target_user}", "get">; + /** + * @see https://docs.github.com/v3/gists/#list-gists-for-a-user + */ + "GET /users/{username}/gists": Operation<"/users/{username}/gists", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-gpg-keys-for-a-user + */ + "GET /users/{username}/gpg_keys": Operation<"/users/{username}/gpg_keys", "get">; + /** + * @see https://docs.github.com/v3/users/#get-contextual-information-for-a-user + */ + "GET /users/{username}/hovercard": Operation<"/users/{username}/hovercard", "get">; + /** + * @see https://docs.github.com/v3/apps/#get-a-user-installation-for-the-authenticated-app + */ + "GET /users/{username}/installation": Operation<"/users/{username}/installation", "get">; + /** + * @see https://docs.github.com/rest/reference/users#list-public-keys-for-a-user + */ + "GET /users/{username}/keys": Operation<"/users/{username}/keys", "get">; + /** + * @see https://docs.github.com/v3/orgs/#list-organizations-for-a-user + */ + "GET /users/{username}/orgs": Operation<"/users/{username}/orgs", "get">; + /** + * @see https://docs.github.com/v3/projects/#list-user-projects + */ + "GET /users/{username}/projects": Operation<"/users/{username}/projects", "get", "inertia">; + /** + * @see https://docs.github.com/rest/reference/activity#list-events-received-by-the-authenticated-user + */ + "GET /users/{username}/received_events": Operation<"/users/{username}/received_events", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-public-events-received-by-a-user + */ + "GET /users/{username}/received_events/public": Operation<"/users/{username}/received_events/public", "get">; + /** + * @see https://docs.github.com/v3/repos/#list-repositories-for-a-user + */ + "GET /users/{username}/repos": Operation<"/users/{username}/repos", "get">; + /** + * @see https://docs.github.com/v3/billing/#get-github-actions-billing-for-a-user + */ + "GET /users/{username}/settings/billing/actions": Operation<"/users/{username}/settings/billing/actions", "get">; + /** + * @see https://docs.github.com/v3/billing/#get-github-packages-billing-for-a-user + */ + "GET /users/{username}/settings/billing/packages": Operation<"/users/{username}/settings/billing/packages", "get">; + /** + * @see https://docs.github.com/v3/billing/#get-shared-storage-billing-for-a-user + */ + "GET /users/{username}/settings/billing/shared-storage": Operation<"/users/{username}/settings/billing/shared-storage", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-repositories-starred-by-a-user + */ + "GET /users/{username}/starred": Operation<"/users/{username}/starred", "get">; + /** + * @see https://docs.github.com/rest/reference/activity#list-repositories-watched-by-a-user + */ + "GET /users/{username}/subscriptions": Operation<"/users/{username}/subscriptions", "get">; + /** + * @see + */ + "GET /zen": Operation<"/zen", "get">; + /** + * @see https://docs.github.com/v3/apps#update-a-webhook-configuration-for-an-app + */ + "PATCH /app/hook/config": Operation<"/app/hook/config", "patch">; + /** + * @see https://docs.github.com/rest/reference/apps#reset-a-token + */ + "PATCH /applications/{client_id}/token": Operation<"/applications/{client_id}/token", "patch">; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#update-an-existing-authorization + */ + "PATCH /authorizations/{authorization_id}": Operation<"/authorizations/{authorization_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#update-a-self-hosted-runner-group-for-an-enterprise + */ + "PATCH /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}", "patch">; + /** + * @see https://docs.github.com/v3/gists/#update-a-gist + */ + "PATCH /gists/{gist_id}": Operation<"/gists/{gist_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/gists#update-a-gist-comment + */ + "PATCH /gists/{gist_id}/comments/{comment_id}": Operation<"/gists/{gist_id}/comments/{comment_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/activity#mark-a-thread-as-read + */ + "PATCH /notifications/threads/{thread_id}": Operation<"/notifications/threads/{thread_id}", "patch">; + /** + * @see https://docs.github.com/v3/orgs/#update-an-organization + */ + "PATCH /orgs/{org}": Operation<"/orgs/{org}", "patch">; + /** + * @see https://docs.github.com/rest/reference/actions#update-a-self-hosted-runner-group-for-an-organization + */ + "PATCH /orgs/{org}/actions/runner-groups/{runner_group_id}": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/orgs#update-an-organization-webhook + */ + "PATCH /orgs/{org}/hooks/{hook_id}": Operation<"/orgs/{org}/hooks/{hook_id}", "patch">; + /** + * @see https://docs.github.com/v3/orgs#update-a-webhook-configuration-for-an-organization + */ + "PATCH /orgs/{org}/hooks/{hook_id}/config": Operation<"/orgs/{org}/hooks/{hook_id}/config", "patch">; + /** + * @see https://docs.github.com/v3/teams/#update-a-team + */ + "PATCH /orgs/{org}/teams/{team_slug}": Operation<"/orgs/{org}/teams/{team_slug}", "patch">; + /** + * @see https://docs.github.com/rest/reference/teams#update-a-discussion + */ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}", "patch">; + /** + * @see https://docs.github.com/rest/reference/teams#update-a-discussion-comment + */ + "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}", "patch">; + /** + * @see https://docs.github.com/rest/reference/teams#create-or-update-idp-group-connections + */ + "PATCH /orgs/{org}/teams/{team_slug}/team-sync/group-mappings": Operation<"/orgs/{org}/teams/{team_slug}/team-sync/group-mappings", "patch">; + /** + * @see https://docs.github.com/rest/reference/projects#update-a-project-card + */ + "PATCH /projects/columns/cards/{card_id}": Operation<"/projects/columns/cards/{card_id}", "patch", "inertia">; + /** + * @see https://docs.github.com/rest/reference/projects#update-a-project-column + */ + "PATCH /projects/columns/{column_id}": Operation<"/projects/columns/{column_id}", "patch", "inertia">; + /** + * @see https://docs.github.com/v3/projects/#update-a-project + */ + "PATCH /projects/{project_id}": Operation<"/projects/{project_id}", "patch", "inertia">; + /** + * @see https://docs.github.com/v3/repos/#update-a-repository + */ + "PATCH /repos/{owner}/{repo}": Operation<"/repos/{owner}/{repo}", "patch">; + /** + * @see https://docs.github.com/rest/reference/repos#update-pull-request-review-protection + */ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", "patch">; + /** + * @see https://docs.github.com/rest/reference/repos#update-status-check-potection + */ + "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", "patch">; + /** + * @see https://docs.github.com/rest/reference/checks#update-a-check-run + */ + "PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}": Operation<"/repos/{owner}/{repo}/check-runs/{check_run_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/checks#update-repository-preferences-for-check-suites + */ + "PATCH /repos/{owner}/{repo}/check-suites/preferences": Operation<"/repos/{owner}/{repo}/check-suites/preferences", "patch">; + /** + * @see https://docs.github.com/v3/code-scanning/#upload-a-code-scanning-alert + */ + "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", "patch">; + /** + * @see https://docs.github.com/rest/reference/repos#update-a-commit-comment + */ + "PATCH /repos/{owner}/{repo}/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/comments/{comment_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/git#update-a-reference + */ + "PATCH /repos/{owner}/{repo}/git/refs/{ref}": Operation<"/repos/{owner}/{repo}/git/refs/{ref}", "patch">; + /** + * @see https://docs.github.com/rest/reference/repos#update-a-repository-webhook + */ + "PATCH /repos/{owner}/{repo}/hooks/{hook_id}": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}", "patch">; + /** + * @see https://docs.github.com/v3/repos#update-a-webhook-configuration-for-a-repository + */ + "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/config", "patch">; + /** + * @see https://docs.github.com/rest/reference/migrations#update-an-import + */ + "PATCH /repos/{owner}/{repo}/import": Operation<"/repos/{owner}/{repo}/import", "patch">; + /** + * @see https://docs.github.com/rest/reference/migrations#map-a-commit-author + */ + "PATCH /repos/{owner}/{repo}/import/authors/{author_id}": Operation<"/repos/{owner}/{repo}/import/authors/{author_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/migrations#update-git-lfs-preference + */ + "PATCH /repos/{owner}/{repo}/import/lfs": Operation<"/repos/{owner}/{repo}/import/lfs", "patch">; + /** + * @see https://docs.github.com/rest/reference/repos#update-a-repository-invitation + */ + "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}": Operation<"/repos/{owner}/{repo}/invitations/{invitation_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/issues#update-an-issue-comment + */ + "PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}", "patch">; + /** + * @see https://docs.github.com/v3/issues/#update-an-issue + */ + "PATCH /repos/{owner}/{repo}/issues/{issue_number}": Operation<"/repos/{owner}/{repo}/issues/{issue_number}", "patch">; + /** + * @see https://docs.github.com/rest/reference/issues#update-a-label + */ + "PATCH /repos/{owner}/{repo}/labels/{name}": Operation<"/repos/{owner}/{repo}/labels/{name}", "patch">; + /** + * @see https://docs.github.com/rest/reference/issues#update-a-milestone + */ + "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}": Operation<"/repos/{owner}/{repo}/milestones/{milestone_number}", "patch">; + /** + * @see https://docs.github.com/rest/reference/pulls#update-a-review-comment-for-a-pull-request + */ + "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}", "patch">; + /** + * @see https://docs.github.com/v3/pulls/#update-a-pull-request + */ + "PATCH /repos/{owner}/{repo}/pulls/{pull_number}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}", "patch">; + /** + * @see https://docs.github.com/rest/reference/repos#update-a-release-asset + */ + "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}": Operation<"/repos/{owner}/{repo}/releases/assets/{asset_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/repos#update-a-release + */ + "PATCH /repos/{owner}/{repo}/releases/{release_id}": Operation<"/repos/{owner}/{repo}/releases/{release_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/secret-scanning#update-a-secret-scanning-alert + */ + "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}": Operation<"/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}", "patch">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#update-an-attribute-for-a-scim-enterprise-group + */ + "PATCH /scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}": Operation<"/scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#update-an-attribute-for-a-scim-enterprise-user + */ + "PATCH /scim/v2/enterprises/{enterprise}/Users/{scim_user_id}": Operation<"/scim/v2/enterprises/{enterprise}/Users/{scim_user_id}", "patch">; + /** + * @see https://docs.github.com/v3/scim/#update-an-attribute-for-a-scim-user + */ + "PATCH /scim/v2/organizations/{org}/Users/{scim_user_id}": Operation<"/scim/v2/organizations/{org}/Users/{scim_user_id}", "patch">; + /** + * @see https://docs.github.com/v3/teams/#update-a-team-legacy + */ + "PATCH /teams/{team_id}": Operation<"/teams/{team_id}", "patch">; + /** + * @see https://docs.github.com/rest/reference/teams#update-a-discussion-legacy + */ + "PATCH /teams/{team_id}/discussions/{discussion_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}", "patch">; + /** + * @see https://docs.github.com/rest/reference/teams#update-a-discussion-comment-legacy + */ + "PATCH /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}", "patch">; + /** + * @see https://docs.github.com/rest/reference/teams#create-or-update-idp-group-connections-legacy + */ + "PATCH /teams/{team_id}/team-sync/group-mappings": Operation<"/teams/{team_id}/team-sync/group-mappings", "patch">; + /** + * @see https://docs.github.com/v3/users/#update-the-authenticated-user + */ + "PATCH /user": Operation<"/user", "patch">; + /** + * @see https://docs.github.com/rest/reference/users#set-primary-email-visibility-for-the-authenticated-user + */ + "PATCH /user/email/visibility": Operation<"/user/email/visibility", "patch">; + /** + * @see https://docs.github.com/rest/reference/orgs#update-an-organization-membership-for-the-authenticated-user + */ + "PATCH /user/memberships/orgs/{org}": Operation<"/user/memberships/orgs/{org}", "patch">; + /** + * @see https://docs.github.com/rest/reference/repos#accept-a-repository-invitation + */ + "PATCH /user/repository_invitations/{invitation_id}": Operation<"/user/repository_invitations/{invitation_id}", "patch">; + /** + * @see https://docs.github.com/v3/apps/#create-a-github-app-from-a-manifest + */ + "POST /app-manifests/{code}/conversions": Operation<"/app-manifests/{code}/conversions", "post">; + /** + * @see https://docs.github.com/v3/apps/#create-an-installation-access-token-for-an-app + */ + "POST /app/installations/{installation_id}/access_tokens": Operation<"/app/installations/{installation_id}/access_tokens", "post">; + /** + * @see https://docs.github.com/rest/reference/apps#check-a-token + */ + "POST /applications/{client_id}/token": Operation<"/applications/{client_id}/token", "post">; + /** + * @see https://docs.github.com/rest/reference/apps#reset-an-authorization + */ + "POST /applications/{client_id}/tokens/{access_token}": Operation<"/applications/{client_id}/tokens/{access_token}", "post">; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#create-a-new-authorization + */ + "POST /authorizations": Operation<"/authorizations", "post">; + /** + * @see https://docs.github.com/rest/reference/apps#create-a-content-attachment + */ + "POST /content_references/{content_reference_id}/attachments": Operation<"/content_references/{content_reference_id}/attachments", "post", "corsair">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#create-self-hosted-runner-group-for-an-enterprise + */ + "POST /enterprises/{enterprise}/actions/runner-groups": Operation<"/enterprises/{enterprise}/actions/runner-groups", "post">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#create-a-registration-token-for-an-enterprise + */ + "POST /enterprises/{enterprise}/actions/runners/registration-token": Operation<"/enterprises/{enterprise}/actions/runners/registration-token", "post">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#create-a-remove-token-for-an-enterprise + */ + "POST /enterprises/{enterprise}/actions/runners/remove-token": Operation<"/enterprises/{enterprise}/actions/runners/remove-token", "post">; + /** + * @see https://docs.github.com/v3/gists/#create-a-gist + */ + "POST /gists": Operation<"/gists", "post">; + /** + * @see https://docs.github.com/rest/reference/gists#create-a-gist-comment + */ + "POST /gists/{gist_id}/comments": Operation<"/gists/{gist_id}/comments", "post">; + /** + * @see https://docs.github.com/v3/gists/#fork-a-gist + */ + "POST /gists/{gist_id}/forks": Operation<"/gists/{gist_id}/forks", "post">; + /** + * @see https://docs.github.com/v3/markdown/#render-a-markdown-document + */ + "POST /markdown": Operation<"/markdown", "post">; + /** + * @see https://docs.github.com/v3/markdown/#render-a-markdown-document-in-raw-mode + */ + "POST /markdown/raw": Operation<"/markdown/raw", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#create-a-self-hosted-runner-group-for-an-organization + */ + "POST /orgs/{org}/actions/runner-groups": Operation<"/orgs/{org}/actions/runner-groups", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#create-a-registration-token-for-an-organization + */ + "POST /orgs/{org}/actions/runners/registration-token": Operation<"/orgs/{org}/actions/runners/registration-token", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#create-a-remove-token-for-an-organization + */ + "POST /orgs/{org}/actions/runners/remove-token": Operation<"/orgs/{org}/actions/runners/remove-token", "post">; + /** + * @see https://docs.github.com/rest/reference/orgs#create-an-organization-webhook + */ + "POST /orgs/{org}/hooks": Operation<"/orgs/{org}/hooks", "post">; + /** + * @see https://docs.github.com/rest/reference/orgs#ping-an-organization-webhook + */ + "POST /orgs/{org}/hooks/{hook_id}/pings": Operation<"/orgs/{org}/hooks/{hook_id}/pings", "post">; + /** + * @see https://docs.github.com/rest/reference/orgs#create-an-organization-invitation + */ + "POST /orgs/{org}/invitations": Operation<"/orgs/{org}/invitations", "post">; + /** + * @see https://docs.github.com/rest/reference/migrations#start-an-organization-migration + */ + "POST /orgs/{org}/migrations": Operation<"/orgs/{org}/migrations", "post">; + /** + * @see https://docs.github.com/v3/projects/#create-an-organization-project + */ + "POST /orgs/{org}/projects": Operation<"/orgs/{org}/projects", "post", "inertia">; + /** + * @see https://docs.github.com/v3/repos/#create-an-organization-repository + */ + "POST /orgs/{org}/repos": Operation<"/orgs/{org}/repos", "post">; + /** + * @see https://docs.github.com/v3/teams/#create-a-team + */ + "POST /orgs/{org}/teams": Operation<"/orgs/{org}/teams", "post">; + /** + * @see https://docs.github.com/rest/reference/teams#create-a-discussion + */ + "POST /orgs/{org}/teams/{team_slug}/discussions": Operation<"/orgs/{org}/teams/{team_slug}/discussions", "post">; + /** + * @see https://docs.github.com/rest/reference/teams#create-a-discussion-comment + */ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "post">; + /** + * @see https://docs.github.com/v3/reactions/#create-reaction-for-a-team-discussion-comment + */ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "post", "squirrel-girl">; + /** + * @see https://docs.github.com/v3/reactions/#create-reaction-for-a-team-discussion + */ + "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions": Operation<"/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "post", "squirrel-girl">; + /** + * @see https://docs.github.com/rest/reference/projects#move-a-project-card + */ + "POST /projects/columns/cards/{card_id}/moves": Operation<"/projects/columns/cards/{card_id}/moves", "post", "inertia">; + /** + * @see https://docs.github.com/rest/reference/projects#create-a-project-card + */ + "POST /projects/columns/{column_id}/cards": Operation<"/projects/columns/{column_id}/cards", "post", "inertia">; + /** + * @see https://docs.github.com/rest/reference/projects#move-a-project-column + */ + "POST /projects/columns/{column_id}/moves": Operation<"/projects/columns/{column_id}/moves", "post", "inertia">; + /** + * @see https://docs.github.com/rest/reference/projects#create-a-project-column + */ + "POST /projects/{project_id}/columns": Operation<"/projects/{project_id}/columns", "post", "inertia">; + /** + * @see https://docs.github.com/rest/reference/actions#create-a-registration-token-for-a-repository + */ + "POST /repos/{owner}/{repo}/actions/runners/registration-token": Operation<"/repos/{owner}/{repo}/actions/runners/registration-token", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#create-a-remove-token-for-a-repository + */ + "POST /repos/{owner}/{repo}/actions/runners/remove-token": Operation<"/repos/{owner}/{repo}/actions/runners/remove-token", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#cancel-a-workflow-run + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/cancel", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#re-run-a-workflow + */ + "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun": Operation<"/repos/{owner}/{repo}/actions/runs/{run_id}/rerun", "post">; + /** + * @see https://docs.github.com/rest/reference/actions#create-a-workflow-dispatch-event + */ + "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#set-admin-branch-protection + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-commit-signature-protection + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", "post", "zzzax">; + /** + * @see https://docs.github.com/rest/reference/repos#add-status-check-contexts + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#add-app-access-restrictions + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#add-team-access-restrictions + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#add-user-access-restrictions + */ + "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", "post">; + /** + * @see https://docs.github.com/rest/reference/checks#create-a-check-run + */ + "POST /repos/{owner}/{repo}/check-runs": Operation<"/repos/{owner}/{repo}/check-runs", "post">; + /** + * @see https://docs.github.com/rest/reference/checks#create-a-check-suite + */ + "POST /repos/{owner}/{repo}/check-suites": Operation<"/repos/{owner}/{repo}/check-suites", "post">; + /** + * @see https://docs.github.com/rest/reference/checks#rerequest-a-check-suite + */ + "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest": Operation<"/repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest", "post">; + /** + * @see https://docs.github.com/v3/code-scanning/#upload-a-sarif-analysis + */ + "POST /repos/{owner}/{repo}/code-scanning/sarifs": Operation<"/repos/{owner}/{repo}/code-scanning/sarifs", "post">; + /** + * @see https://docs.github.com/v3/reactions/#create-reaction-for-a-commit-comment + */ + "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/comments/{comment_id}/reactions", "post", "squirrel-girl">; + /** + * @see https://docs.github.com/rest/reference/repos#create-a-commit-comment + */ + "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments": Operation<"/repos/{owner}/{repo}/commits/{commit_sha}/comments", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-a-deployment + */ + "POST /repos/{owner}/{repo}/deployments": Operation<"/repos/{owner}/{repo}/deployments", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-a-deployment-status + */ + "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses": Operation<"/repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "post">; + /** + * @see https://docs.github.com/v3/repos/#create-a-repository-dispatch-event + */ + "POST /repos/{owner}/{repo}/dispatches": Operation<"/repos/{owner}/{repo}/dispatches", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-a-fork + */ + "POST /repos/{owner}/{repo}/forks": Operation<"/repos/{owner}/{repo}/forks", "post">; + /** + * @see https://docs.github.com/rest/reference/git#create-a-blob + */ + "POST /repos/{owner}/{repo}/git/blobs": Operation<"/repos/{owner}/{repo}/git/blobs", "post">; + /** + * @see https://docs.github.com/rest/reference/git#create-a-commit + */ + "POST /repos/{owner}/{repo}/git/commits": Operation<"/repos/{owner}/{repo}/git/commits", "post">; + /** + * @see https://docs.github.com/rest/reference/git#create-a-reference + */ + "POST /repos/{owner}/{repo}/git/refs": Operation<"/repos/{owner}/{repo}/git/refs", "post">; + /** + * @see https://docs.github.com/rest/reference/git#create-a-tag-object + */ + "POST /repos/{owner}/{repo}/git/tags": Operation<"/repos/{owner}/{repo}/git/tags", "post">; + /** + * @see https://docs.github.com/rest/reference/git#create-a-tree + */ + "POST /repos/{owner}/{repo}/git/trees": Operation<"/repos/{owner}/{repo}/git/trees", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-a-repository-webhook + */ + "POST /repos/{owner}/{repo}/hooks": Operation<"/repos/{owner}/{repo}/hooks", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#ping-a-repository-webhook + */ + "POST /repos/{owner}/{repo}/hooks/{hook_id}/pings": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/pings", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#test-the-push-repository-webhook + */ + "POST /repos/{owner}/{repo}/hooks/{hook_id}/tests": Operation<"/repos/{owner}/{repo}/hooks/{hook_id}/tests", "post">; + /** + * @see https://docs.github.com/v3/issues/#create-an-issue + */ + "POST /repos/{owner}/{repo}/issues": Operation<"/repos/{owner}/{repo}/issues", "post">; + /** + * @see https://docs.github.com/v3/reactions/#create-reaction-for-an-issue-comment + */ + "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "post", "squirrel-girl">; + /** + * @see https://docs.github.com/rest/reference/issues#add-assignees-to-an-issue + */ + "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/assignees", "post">; + /** + * @see https://docs.github.com/rest/reference/issues#create-an-issue-comment + */ + "POST /repos/{owner}/{repo}/issues/{issue_number}/comments": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/comments", "post">; + /** + * @see https://docs.github.com/rest/reference/issues#add-labels-to-an-issue + */ + "POST /repos/{owner}/{repo}/issues/{issue_number}/labels": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels", "post">; + /** + * @see https://docs.github.com/v3/reactions/#create-reaction-for-an-issue + */ + "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/reactions", "post", "squirrel-girl">; + /** + * @see https://docs.github.com/rest/reference/repos#create-a-deploy-key + */ + "POST /repos/{owner}/{repo}/keys": Operation<"/repos/{owner}/{repo}/keys", "post">; + /** + * @see https://docs.github.com/rest/reference/issues#create-a-label + */ + "POST /repos/{owner}/{repo}/labels": Operation<"/repos/{owner}/{repo}/labels", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#merge-a-branch + */ + "POST /repos/{owner}/{repo}/merges": Operation<"/repos/{owner}/{repo}/merges", "post">; + /** + * @see https://docs.github.com/rest/reference/issues#create-a-milestone + */ + "POST /repos/{owner}/{repo}/milestones": Operation<"/repos/{owner}/{repo}/milestones", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-a-github-pages-site + */ + "POST /repos/{owner}/{repo}/pages": Operation<"/repos/{owner}/{repo}/pages", "post", "switcheroo">; + /** + * @see https://docs.github.com/rest/reference/repos#request-a-github-pages-build + */ + "POST /repos/{owner}/{repo}/pages/builds": Operation<"/repos/{owner}/{repo}/pages/builds", "post">; + /** + * @see https://docs.github.com/v3/projects/#create-a-repository-project + */ + "POST /repos/{owner}/{repo}/projects": Operation<"/repos/{owner}/{repo}/projects", "post", "inertia">; + /** + * @see https://docs.github.com/v3/pulls/#create-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls": Operation<"/repos/{owner}/{repo}/pulls", "post">; + /** + * @see https://docs.github.com/v3/reactions/#create-reaction-for-a-pull-request-review-comment + */ + "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": Operation<"/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "post", "squirrel-girl">; + /** + * @see https://docs.github.com/rest/reference/pulls#create-a-review-comment-for-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/comments", "post">; + /** + * @see https://docs.github.com/rest/reference/pulls#create-a-reply-for-a-review-comment + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies", "post">; + /** + * @see https://docs.github.com/rest/reference/pulls#request-reviewers-for-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "post">; + /** + * @see https://docs.github.com/rest/reference/pulls#create-a-review-for-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews", "post">; + /** + * @see https://docs.github.com/rest/reference/pulls#submit-a-review-for-a-pull-request + */ + "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-a-release + */ + "POST /repos/{owner}/{repo}/releases": Operation<"/repos/{owner}/{repo}/releases", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#create-a-commit-status + */ + "POST /repos/{owner}/{repo}/statuses/{sha}": Operation<"/repos/{owner}/{repo}/statuses/{sha}", "post">; + /** + * @see https://docs.github.com/v3/repos/#transfer-a-repository + */ + "POST /repos/{owner}/{repo}/transfer": Operation<"/repos/{owner}/{repo}/transfer", "post">; + /** + * @see https://docs.github.com/v3/repos/#create-a-repository-using-a-template + */ + "POST /repos/{template_owner}/{template_repo}/generate": Operation<"/repos/{template_owner}/{template_repo}/generate", "post", "baptiste">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#provision-a-scim-enterprise-group-and-invite-users + */ + "POST /scim/v2/enterprises/{enterprise}/Groups": Operation<"/scim/v2/enterprises/{enterprise}/Groups", "post">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#provision-and-invite-a-scim-enterprise-user + */ + "POST /scim/v2/enterprises/{enterprise}/Users": Operation<"/scim/v2/enterprises/{enterprise}/Users", "post">; + /** + * @see https://docs.github.com/v3/scim/#provision-and-invite-a-scim-user + */ + "POST /scim/v2/organizations/{org}/Users": Operation<"/scim/v2/organizations/{org}/Users", "post">; + /** + * @see https://docs.github.com/rest/reference/teams#create-a-discussion-legacy + */ + "POST /teams/{team_id}/discussions": Operation<"/teams/{team_id}/discussions", "post">; + /** + * @see https://docs.github.com/rest/reference/teams#create-a-discussion-comment-legacy + */ + "POST /teams/{team_id}/discussions/{discussion_number}/comments": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments", "post">; + /** + * @see https://docs.github.com/v3/reactions/#create-reaction-for-a-team-discussion-comment-legacy + */ + "POST /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions": Operation<"/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "post", "squirrel-girl">; + /** + * @see https://docs.github.com/v3/reactions/#create-reaction-for-a-team-discussion-legacy + */ + "POST /teams/{team_id}/discussions/{discussion_number}/reactions": Operation<"/teams/{team_id}/discussions/{discussion_number}/reactions", "post", "squirrel-girl">; + /** + * @see https://docs.github.com/rest/reference/users#add-an-email-address-for-the-authenticated-user + */ + "POST /user/emails": Operation<"/user/emails", "post">; + /** + * @see https://docs.github.com/rest/reference/users#create-a-gpg-key-for-the-authenticated-user + */ + "POST /user/gpg_keys": Operation<"/user/gpg_keys", "post">; + /** + * @see https://docs.github.com/rest/reference/users#create-a-public-ssh-key-for-the-authenticated-user + */ + "POST /user/keys": Operation<"/user/keys", "post">; + /** + * @see https://docs.github.com/rest/reference/migrations#start-a-user-migration + */ + "POST /user/migrations": Operation<"/user/migrations", "post">; + /** + * @see https://docs.github.com/v3/projects/#create-a-user-project + */ + "POST /user/projects": Operation<"/user/projects", "post", "inertia">; + /** + * @see https://docs.github.com/v3/repos/#create-a-repository-for-the-authenticated-user + */ + "POST /user/repos": Operation<"/user/repos", "post">; + /** + * @see https://docs.github.com/rest/reference/repos#upload-a-release-asset + */ + "POST {origin}/repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}": Operation<"/repos/{owner}/{repo}/releases/{release_id}/assets", "post">; + /** + * @see https://docs.github.com/v3/apps/#suspend-an-app-installation + */ + "PUT /app/installations/{installation_id}/suspended": Operation<"/app/installations/{installation_id}/suspended", "put">; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#get-or-create-an-authorization-for-a-specific-app + */ + "PUT /authorizations/clients/{client_id}": Operation<"/authorizations/clients/{client_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/oauth-authorizations#get-or-create-an-authorization-for-a-specific-app-and-fingerprint + */ + "PUT /authorizations/clients/{client_id}/{fingerprint}": Operation<"/authorizations/clients/{client_id}/{fingerprint}", "put">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#set-github-actions-permissions-for-an-enterprise + */ + "PUT /enterprises/{enterprise}/actions/permissions": Operation<"/enterprises/{enterprise}/actions/permissions", "put">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#set-selected-organizations-enabled-for-github-actions-in-an-enterprise + */ + "PUT /enterprises/{enterprise}/actions/permissions/organizations": Operation<"/enterprises/{enterprise}/actions/permissions/organizations", "put">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#enable-a-selected-organization-for-github-actions-in-an-enterprise + */ + "PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}": Operation<"/enterprises/{enterprise}/actions/permissions/organizations/{org_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#set-allowed-actions-for-an-enterprise + */ + "PUT /enterprises/{enterprise}/actions/permissions/selected-actions": Operation<"/enterprises/{enterprise}/actions/permissions/selected-actions", "put">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#set-organization-access-to-a-self-hosted-runner-group-in-an-enterprise + */ + "PUT /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations", "put">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#add-organization-access-to-a-self-hosted-runner-group-in-an-enterprise + */ + "PUT /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations/{org_id}": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations/{org_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#set-self-hosted-runners-in-a-group-for-an-enterprise + */ + "PUT /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners", "put">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#add-a-self-hosted-runner-to-a-group-for-an-enterprise + */ + "PUT /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners/{runner_id}": Operation<"/enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners/{runner_id}", "put">; + /** + * @see https://docs.github.com/v3/gists/#star-a-gist + */ + "PUT /gists/{gist_id}/star": Operation<"/gists/{gist_id}/star", "put">; + /** + * @see https://docs.github.com/rest/reference/activity#mark-notifications-as-read + */ + "PUT /notifications": Operation<"/notifications", "put">; + /** + * @see https://docs.github.com/rest/reference/activity#set-a-thread-subscription + */ + "PUT /notifications/threads/{thread_id}/subscription": Operation<"/notifications/threads/{thread_id}/subscription", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-github-actions-permissions-for-an-organization + */ + "PUT /orgs/{org}/actions/permissions": Operation<"/orgs/{org}/actions/permissions", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-selected-repositories-enabled-for-github-actions-in-an-organization + */ + "PUT /orgs/{org}/actions/permissions/repositories": Operation<"/orgs/{org}/actions/permissions/repositories", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#enable-a-selected-repository-for-github-actions-in-an-organization + */ + "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}": Operation<"/orgs/{org}/actions/permissions/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-allowed-actions-for-an-organization + */ + "PUT /orgs/{org}/actions/permissions/selected-actions": Operation<"/orgs/{org}/actions/permissions/selected-actions", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-repository-access-to-a-self-hosted-runner-group-in-an-organization + */ + "PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#add-repository-acess-to-a-self-hosted-runner-group-in-an-organization + */ + "PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-self-hosted-runners-in-a-group-for-an-organization + */ + "PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/runners": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}/runners", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#add-a-self-hosted-runner-to-a-group-for-an-organization + */ + "PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}": Operation<"/orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#create-or-update-an-organization-secret + */ + "PUT /orgs/{org}/actions/secrets/{secret_name}": Operation<"/orgs/{org}/actions/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-selected-repositories-for-an-organization-secret + */ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories": Operation<"/orgs/{org}/actions/secrets/{secret_name}/repositories", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#add-selected-repository-to-an-organization-secret + */ + "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}": Operation<"/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/orgs#block-a-user-from-an-organization + */ + "PUT /orgs/{org}/blocks/{username}": Operation<"/orgs/{org}/blocks/{username}", "put", "giant-sentry-fist">; + /** + * @see https://docs.github.com/rest/reference/interactions#set-interaction-restrictions-for-an-organization + */ + "PUT /orgs/{org}/interaction-limits": Operation<"/orgs/{org}/interaction-limits", "put">; + /** + * @see https://docs.github.com/rest/reference/orgs#set-organization-membership-for-a-user + */ + "PUT /orgs/{org}/memberships/{username}": Operation<"/orgs/{org}/memberships/{username}", "put">; + /** + * @see https://docs.github.com/rest/reference/orgs#convert-an-organization-member-to-outside-collaborator + */ + "PUT /orgs/{org}/outside_collaborators/{username}": Operation<"/orgs/{org}/outside_collaborators/{username}", "put">; + /** + * @see https://docs.github.com/rest/reference/orgs#set-public-organization-membership-for-the-authenticated-user + */ + "PUT /orgs/{org}/public_members/{username}": Operation<"/orgs/{org}/public_members/{username}", "put">; + /** + * @see https://docs.github.com/rest/reference/teams#add-or-update-team-membership-for-a-user + */ + "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}": Operation<"/orgs/{org}/teams/{team_slug}/memberships/{username}", "put">; + /** + * @see https://docs.github.com/v3/teams/#add-or-update-team-project-permissions + */ + "PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}": Operation<"/orgs/{org}/teams/{team_slug}/projects/{project_id}", "put", "inertia">; + /** + * @see https://docs.github.com/v3/teams/#add-or-update-team-repository-permissions + */ + "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": Operation<"/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}", "put">; + /** + * @see https://docs.github.com/rest/reference/projects#add-project-collaborator + */ + "PUT /projects/{project_id}/collaborators/{username}": Operation<"/projects/{project_id}/collaborators/{username}", "put", "inertia">; + /** + * @see https://docs.github.com/rest/reference/actions#set-github-actions-permissions-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/permissions": Operation<"/repos/{owner}/{repo}/actions/permissions", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#set-allowed-actions-for-a-repository + */ + "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions": Operation<"/repos/{owner}/{repo}/actions/permissions/selected-actions", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#create-or-update-a-repository-secret + */ + "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}": Operation<"/repos/{owner}/{repo}/actions/secrets/{secret_name}", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#disable-a-workflow + */ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable", "put">; + /** + * @see https://docs.github.com/rest/reference/actions#enable-a-workflow + */ + "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable": Operation<"/repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable", "put">; + /** + * @see https://docs.github.com/v3/repos/#enable-automated-security-fixes + */ + "PUT /repos/{owner}/{repo}/automated-security-fixes": Operation<"/repos/{owner}/{repo}/automated-security-fixes", "put", "london">; + /** + * @see https://docs.github.com/rest/reference/repos#update-branch-protection + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection", "put">; + /** + * @see https://docs.github.com/rest/reference/repos#set-status-check-contexts + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", "put">; + /** + * @see https://docs.github.com/rest/reference/repos#set-app-access-restrictions + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", "put">; + /** + * @see https://docs.github.com/rest/reference/repos#set-team-access-restrictions + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", "put">; + /** + * @see https://docs.github.com/rest/reference/repos#set-user-access-restrictions + */ + "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": Operation<"/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", "put">; + /** + * @see https://docs.github.com/rest/reference/repos#add-a-repository-collaborator + */ + "PUT /repos/{owner}/{repo}/collaborators/{username}": Operation<"/repos/{owner}/{repo}/collaborators/{username}", "put">; + /** + * @see https://docs.github.com/rest/reference/repos#create-or-update-file-contents + */ + "PUT /repos/{owner}/{repo}/contents/{path}": Operation<"/repos/{owner}/{repo}/contents/{path}", "put">; + /** + * @see https://docs.github.com/rest/reference/migrations#start-an-import + */ + "PUT /repos/{owner}/{repo}/import": Operation<"/repos/{owner}/{repo}/import", "put">; + /** + * @see https://docs.github.com/rest/reference/interactions#set-interaction-restrictions-for-a-repository + */ + "PUT /repos/{owner}/{repo}/interaction-limits": Operation<"/repos/{owner}/{repo}/interaction-limits", "put">; + /** + * @see https://docs.github.com/rest/reference/issues#set-labels-for-an-issue + */ + "PUT /repos/{owner}/{repo}/issues/{issue_number}/labels": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/labels", "put">; + /** + * @see https://docs.github.com/v3/issues/#lock-an-issue + */ + "PUT /repos/{owner}/{repo}/issues/{issue_number}/lock": Operation<"/repos/{owner}/{repo}/issues/{issue_number}/lock", "put">; + /** + * @see https://docs.github.com/rest/reference/activity#mark-repository-notifications-as-read + */ + "PUT /repos/{owner}/{repo}/notifications": Operation<"/repos/{owner}/{repo}/notifications", "put">; + /** + * @see https://docs.github.com/rest/reference/repos#update-information-about-a-github-pages-site + */ + "PUT /repos/{owner}/{repo}/pages": Operation<"/repos/{owner}/{repo}/pages", "put">; + /** + * @see https://docs.github.com/v3/pulls/#merge-a-pull-request + */ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/merge", "put">; + /** + * @see https://docs.github.com/rest/reference/pulls#update-a-review-for-a-pull-request + */ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/pulls#dismiss-a-review-for-a-pull-request + */ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals", "put">; + /** + * @see https://docs.github.com/v3/pulls/#update-a-pull-request-branch + */ + "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch": Operation<"/repos/{owner}/{repo}/pulls/{pull_number}/update-branch", "put", "lydian">; + /** + * @see https://docs.github.com/rest/reference/activity#set-a-repository-subscription + */ + "PUT /repos/{owner}/{repo}/subscription": Operation<"/repos/{owner}/{repo}/subscription", "put">; + /** + * @see https://docs.github.com/v3/repos/#replace-all-repository-topics + */ + "PUT /repos/{owner}/{repo}/topics": Operation<"/repos/{owner}/{repo}/topics", "put", "mercy">; + /** + * @see https://docs.github.com/v3/repos/#enable-vulnerability-alerts + */ + "PUT /repos/{owner}/{repo}/vulnerability-alerts": Operation<"/repos/{owner}/{repo}/vulnerability-alerts", "put", "dorian">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#set-scim-information-for-a-provisioned-enterprise-group + */ + "PUT /scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}": Operation<"/scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/enterprise-admin#set-scim-information-for-a-provisioned-enterprise-user + */ + "PUT /scim/v2/enterprises/{enterprise}/Users/{scim_user_id}": Operation<"/scim/v2/enterprises/{enterprise}/Users/{scim_user_id}", "put">; + /** + * @see https://docs.github.com/v3/scim/#set-scim-information-for-a-provisioned-user + */ + "PUT /scim/v2/organizations/{org}/Users/{scim_user_id}": Operation<"/scim/v2/organizations/{org}/Users/{scim_user_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/teams#add-team-member-legacy + */ + "PUT /teams/{team_id}/members/{username}": Operation<"/teams/{team_id}/members/{username}", "put">; + /** + * @see https://docs.github.com/rest/reference/teams#add-or-update-team-membership-for-a-user-legacy + */ + "PUT /teams/{team_id}/memberships/{username}": Operation<"/teams/{team_id}/memberships/{username}", "put">; + /** + * @see https://docs.github.com/v3/teams/#add-or-update-team-project-permissions-legacy + */ + "PUT /teams/{team_id}/projects/{project_id}": Operation<"/teams/{team_id}/projects/{project_id}", "put", "inertia">; + /** + * @see https://docs.github.com/v3/teams/#add-or-update-team-repository-permissions-legacy + */ + "PUT /teams/{team_id}/repos/{owner}/{repo}": Operation<"/teams/{team_id}/repos/{owner}/{repo}", "put">; + /** + * @see https://docs.github.com/rest/reference/users#block-a-user + */ + "PUT /user/blocks/{username}": Operation<"/user/blocks/{username}", "put", "giant-sentry-fist">; + /** + * @see https://docs.github.com/rest/reference/users#follow-a-user + */ + "PUT /user/following/{username}": Operation<"/user/following/{username}", "put">; + /** + * @see https://docs.github.com/rest/reference/apps#add-a-repository-to-an-app-installation + */ + "PUT /user/installations/{installation_id}/repositories/{repository_id}": Operation<"/user/installations/{installation_id}/repositories/{repository_id}", "put">; + /** + * @see https://docs.github.com/rest/reference/interactions#set-interaction-restrictions-for-your-public-repositories + */ + "PUT /user/interaction-limits": Operation<"/user/interaction-limits", "put">; + /** + * @see https://docs.github.com/rest/reference/activity#star-a-repository-for-the-authenticated-user + */ + "PUT /user/starred/{owner}/{repo}": Operation<"/user/starred/{owner}/{repo}", "put">; +} +export {}; diff --git a/Client/node_modules/@octokit/types/dist-types/index.d.ts b/Client/node_modules/@octokit/types/dist-types/index.d.ts new file mode 100644 index 000000000..004ae9b22 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-types/index.d.ts @@ -0,0 +1,21 @@ +export * from "./AuthInterface"; +export * from "./EndpointDefaults"; +export * from "./EndpointInterface"; +export * from "./EndpointOptions"; +export * from "./Fetch"; +export * from "./OctokitResponse"; +export * from "./RequestError"; +export * from "./RequestHeaders"; +export * from "./RequestInterface"; +export * from "./RequestMethod"; +export * from "./RequestOptions"; +export * from "./RequestParameters"; +export * from "./RequestRequestOptions"; +export * from "./ResponseHeaders"; +export * from "./Route"; +export * from "./Signal"; +export * from "./StrategyInterface"; +export * from "./Url"; +export * from "./VERSION"; +export * from "./GetResponseTypeFromEndpointMethod"; +export * from "./generated/Endpoints"; diff --git a/Client/node_modules/@octokit/types/dist-web/index.js b/Client/node_modules/@octokit/types/dist-web/index.js new file mode 100644 index 000000000..25ceac731 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-web/index.js @@ -0,0 +1,4 @@ +const VERSION = "6.2.1"; + +export { VERSION }; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/@octokit/types/dist-web/index.js.map b/Client/node_modules/@octokit/types/dist-web/index.js.map new file mode 100644 index 000000000..cd0e254a5 --- /dev/null +++ b/Client/node_modules/@octokit/types/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/VERSION.js"],"sourcesContent":["export const VERSION = \"0.0.0-development\";\n"],"names":[],"mappings":"AAAY,MAAC,OAAO,GAAG;;;;"} \ No newline at end of file diff --git a/Client/node_modules/@octokit/types/package.json b/Client/node_modules/@octokit/types/package.json new file mode 100644 index 000000000..dfd2392d0 --- /dev/null +++ b/Client/node_modules/@octokit/types/package.json @@ -0,0 +1,91 @@ +{ + "_from": "@octokit/types@^6.0.3", + "_id": "@octokit/types@6.2.1", + "_inBundle": false, + "_integrity": "sha512-jHs9OECOiZxuEzxMZcXmqrEO8GYraHF+UzNVH2ACYh8e/Y7YoT+hUf9ldvVd6zIvWv4p3NdxbQ0xx3ku5BnSiA==", + "_location": "/@octokit/types", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@octokit/types@^6.0.3", + "name": "@octokit/types", + "escapedName": "@octokit%2ftypes", + "scope": "@octokit", + "rawSpec": "^6.0.3", + "saveSpec": null, + "fetchSpec": "^6.0.3" + }, + "_requiredBy": [ + "/@octokit/auth-token", + "/@octokit/core", + "/@octokit/endpoint", + "/@octokit/graphql", + "/@octokit/plugin-paginate-rest", + "/@octokit/plugin-rest-endpoint-methods", + "/@octokit/request", + "/@octokit/request-error" + ], + "_resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.2.1.tgz", + "_shasum": "7f881fe44475ab1825776a4a59ca1ae082ed1043", + "_spec": "@octokit/types@^6.0.3", + "_where": "C:\\Superalgos\\Client\\node_modules\\@octokit\\core", + "bugs": { + "url": "https://github.com/octokit/types.ts/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@octokit/openapi-types": "^2.2.0", + "@types/node": ">= 8" + }, + "deprecated": false, + "description": "Shared TypeScript definitions for Octokit projects", + "devDependencies": { + "@octokit/graphql": "^4.2.2", + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "handlebars": "^4.7.6", + "json-schema-to-typescript": "^10.0.0", + "lodash.set": "^4.3.2", + "npm-run-all": "^4.1.5", + "openapi-typescript": "^2.3.1", + "pascal-case": "^3.1.1", + "prettier": "^2.0.0", + "semantic-release": "^17.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "sort-keys": "^4.0.0", + "string-to-jsdoc-comment": "^1.0.0", + "typedoc": "^0.19.0", + "typescript": "^4.0.2" + }, + "files": [ + "dist-*/", + "bin/" + ], + "homepage": "https://github.com/octokit/types.ts#readme", + "keywords": [ + "github", + "api", + "sdk", + "toolkit", + "typescript" + ], + "license": "MIT", + "main": "dist-node/index.js", + "module": "dist-web/index.js", + "name": "@octokit/types", + "pika": true, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/octokit/types.ts.git" + }, + "sideEffects": false, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "version": "6.2.1" +} diff --git a/Client/node_modules/before-after-hook/LICENSE b/Client/node_modules/before-after-hook/LICENSE new file mode 100644 index 000000000..225063c34 --- /dev/null +++ b/Client/node_modules/before-after-hook/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018 Gregor Martynus and other contributors. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Client/node_modules/before-after-hook/README.md b/Client/node_modules/before-after-hook/README.md new file mode 100644 index 000000000..68c927d9c --- /dev/null +++ b/Client/node_modules/before-after-hook/README.md @@ -0,0 +1,574 @@ +# before-after-hook + +> asynchronous hooks for internal functionality + +[![npm downloads](https://img.shields.io/npm/dw/before-after-hook.svg)](https://www.npmjs.com/package/before-after-hook) +[![Build Status](https://travis-ci.org/gr2m/before-after-hook.svg?branch=master)](https://travis-ci.org/gr2m/before-after-hook) +[![Coverage Status](https://coveralls.io/repos/gr2m/before-after-hook/badge.svg?branch=master)](https://coveralls.io/r/gr2m/before-after-hook?branch=master) +[![Greenkeeper badge](https://badges.greenkeeper.io/gr2m/before-after-hook.svg)](https://greenkeeper.io/) + +## Usage + +### Singular hook + +Recommended for [TypeScript](#typescript) + +```js +// instantiate singular hook API +const hook = new Hook.Singular() + +// Create a hook +function getData (options) { + return hook(fetchFromDatabase, options) + .then(handleData) + .catch(handleGetError) +} + +// register before/error/after hooks. +// The methods can be async or return a promise +hook.before(beforeHook) +hook.error(errorHook) +hook.after(afterHook) + +getData({id: 123}) +``` + +### Hook collection +```js +// instantiate hook collection API +const hookCollection = new Hook.Collection() + +// Create a hook +function getData (options) { + return hookCollection('get', fetchFromDatabase, options) + .then(handleData) + .catch(handleGetError) +} + +// register before/error/after hooks. +// The methods can be async or return a promise +hookCollection.before('get', beforeHook) +hookCollection.error('get', errorHook) +hookCollection.after('get', afterHook) + +getData({id: 123}) +``` + +### Hook.Singular vs Hook.Collection + +There's no fundamental difference between the `Hook.Singular` and `Hook.Collection` hooks except for the fact that a hook from a collection requires you to pass along the name. Therefore the following explanation applies to both code snippets as described above. + +The methods are executed in the following order + +1. `beforeHook` +2. `fetchFromDatabase` +3. `afterHook` +4. `getData` + +`beforeHook` can mutate `options` before it’s passed to `fetchFromDatabase`. + +If an error is thrown in `beforeHook` or `fetchFromDatabase` then `errorHook` is +called next. + +If `afterHook` throws an error then `handleGetError` is called instead +of `getData`. + +If `errorHook` throws an error then `handleGetError` is called next, otherwise +`afterHook` and `getData`. + +You can also use `hook.wrap` to achieve the same thing as shown above (collection example): + +```js +hookCollection.wrap('get', async (getData, options) => { + await beforeHook(options) + + try { + const result = getData(options) + } catch (error) { + await errorHook(error, options) + } + + await afterHook(result, options) +}) +``` + +## Install + +``` +npm install before-after-hook +``` + +Or download [the latest `before-after-hook.min.js`](https://github.com/gr2m/before-after-hook/releases/latest). + +## API + +- [Singular Hook Constructor](#singular-hook-api) +- [Hook Collection Constructor](#hook-collection-api) + +## Singular hook API + +- [Singular constructor](#singular-constructor) +- [hook.api](#singular-api) +- [hook()](#singular-api) +- [hook.before()](#singular-api) +- [hook.error()](#singular-api) +- [hook.after()](#singular-api) +- [hook.wrap()](#singular-api) +- [hook.remove()](#singular-api) + +### Singular constructor + +The `Hook.Singular` constructor has no options and returns a `hook` instance with the +methods below: + +```js +const hook = new Hook.Singular() +``` +Using the singular hook is recommended for [TypeScript](#typescript) + +### Singular API + +The singular hook is a reference to a single hook. This means that there's no need to pass along any identifier (such as a `name` as can be seen in the [Hook.Collection API](#hookcollectionapi)). + +The API of a singular hook is exactly the same as a collection hook and we therefore suggest you read the [Hook.Collection API](#hookcollectionapi) and leave out any use of the `name` argument. Just skip it like described in this example: +```js +const hook = new Hook.Singular() + +// good +hook.before(beforeHook) +hook.after(afterHook) +hook(fetchFromDatabase, options) + +// bad +hook.before('get', beforeHook) +hook.after('get', afterHook) +hook('get', fetchFromDatabase, options) +``` + +## Hook collection API + +- [Collection constructor](#collection-constructor) +- [collection.api](#collectionapi) +- [collection()](#collection) +- [collection.before()](#collectionbefore) +- [collection.error()](#collectionerror) +- [collection.after()](#collectionafter) +- [collection.wrap()](#collectionwrap) +- [collection.remove()](#collectionremove) + +### Collection constructor + +The `Hook.Collection` constructor has no options and returns a `hookCollection` instance with the +methods below + +```js +const hookCollection = new Hook.Collection() +``` + +### hookCollection.api + +Use the `api` property to return the public API: + +- [hookCollection.before()](#hookcollectionbefore) +- [hookCollection.after()](#hookcollectionafter) +- [hookCollection.error()](#hookcollectionerror) +- [hookCollection.wrap()](#hookcollectionwrap) +- [hookCollection.remove()](#hookcollectionremove) + +That way you don’t need to expose the [hookCollection()](#hookcollection) method to consumers of your library + +### hookCollection() + +Invoke before and after hooks. Returns a promise. + +```js +hookCollection(nameOrNames, method /*, options */) +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ArgumentTypeDescriptionRequired
nameString or Array of StringsHook name, for example 'save'. Or an array of names, see example below.Yes
methodFunctionCallback to be executed after all before hooks finished execution successfully. options is passed as first argumentYes
optionsObjectWill be passed to all before hooks as reference, so they can mutate itNo, defaults to empty object ({})
+ +Resolves with whatever `method` returns or resolves with. +Rejects with error that is thrown or rejected with by + +1. Any of the before hooks, whichever rejects / throws first +2. `method` +3. Any of the after hooks, whichever rejects / throws first + +Simple Example + +```js +hookCollection('save', function (record) { + return store.save(record) +}, record) +// shorter: hookCollection('save', store.save, record) + +hookCollection.before('save', function addTimestamps (record) { + const now = new Date().toISOString() + if (record.createdAt) { + record.updatedAt = now + } else { + record.createdAt = now + } +}) +``` + +Example defining multiple hooks at once. + +```js +hookCollection(['add', 'save'], function (record) { + return store.save(record) +}, record) + +hookCollection.before('add', function addTimestamps (record) { + if (!record.type) { + throw new Error('type property is required') + } +}) + +hookCollection.before('save', function addTimestamps (record) { + if (!record.type) { + throw new Error('type property is required') + } +}) +``` + +Defining multiple hooks is helpful if you have similar methods for which you want to define separate hooks, but also an additional hook that gets called for all at once. The example above is equal to this: + +```js +hookCollection('add', function (record) { + return hookCollection('save', function (record) { + return store.save(record) + }, record) +}, record) +``` + +### hookCollection.before() + +Add before hook for given name. + +```js +hookCollection.before(name, method) +``` + + + + + + + + + + + + + + + + + + + + + + +
ArgumentTypeDescriptionRequired
nameStringHook name, for example 'save'Yes
methodFunction + Executed before the wrapped method. Called with the hook’s + options argument. Before hooks can mutate the passed options + before they are passed to the wrapped method. + Yes
+ +Example + +```js +hookCollection.before('save', function validate (record) { + if (!record.name) { + throw new Error('name property is required') + } +}) +``` + +### hookCollection.error() + +Add error hook for given name. + +```js +hookCollection.error(name, method) +``` + + + + + + + + + + + + + + + + + + + + + + +
ArgumentTypeDescriptionRequired
nameStringHook name, for example 'save'Yes
methodFunction + Executed when an error occurred in either the wrapped method or a + before hook. Called with the thrown error + and the hook’s options argument. The first method + which does not throw an error will set the result that the after hook + methods will receive. + Yes
+ +Example + +```js +hookCollection.error('save', function (error, options) { + if (error.ignore) return + throw error +}) +``` + +### hookCollection.after() + +Add after hook for given name. + +```js +hookCollection.after(name, method) +``` + + + + + + + + + + + + + + + + + + + + + + +
ArgumentTypeDescriptionRequired
nameStringHook name, for example 'save'Yes
methodFunction + Executed after wrapped method. Called with what the wrapped method + resolves with the hook’s options argument. + Yes
+ +Example + +```js +hookCollection.after('save', function (result, options) { + if (result.updatedAt) { + app.emit('update', result) + } else { + app.emit('create', result) + } +}) +``` + +### hookCollection.wrap() + +Add wrap hook for given name. + +```js +hookCollection.wrap(name, method) +``` + + + + + + + + + + + + + + + + + + + + + + +
ArgumentTypeDescriptionRequired
nameStringHook name, for example 'save'Yes
methodFunction + Receives both the wrapped method and the passed options as arguments so it can add logic before and after the wrapped method, it can handle errors and even replace the wrapped method altogether + Yes
+ +Example + +```js +hookCollection.wrap('save', async function (saveInDatabase, options) { + if (!record.name) { + throw new Error('name property is required') + } + + try { + const result = await saveInDatabase(options) + + if (result.updatedAt) { + app.emit('update', result) + } else { + app.emit('create', result) + } + + return result + } catch (error) { + if (error.ignore) return + throw error + } +}) +``` + +See also: [Test mock example](examples/test-mock-example.md) + +### hookCollection.remove() + +Removes hook for given name. + +```js +hookCollection.remove(name, hookMethod) +``` + + + + + + + + + + + + + + + + + + + + + + +
ArgumentTypeDescriptionRequired
nameStringHook name, for example 'save'Yes
beforeHookMethodFunction + Same function that was previously passed to hookCollection.before(), hookCollection.error(), hookCollection.after() or hookCollection.wrap() + Yes
+ +Example + +```js +hookCollection.remove('save', validateRecord) +``` + +## TypeScript + +This library contains type definitions for TypeScript. When you use TypeScript we highly recommend using the `Hook.Singular` constructor for your hooks as this allows you to pass along type information for the options object. For example: + +```ts + +import {Hook} from 'before-after-hook' + +interface Foo { + bar: string + num: number; +} + +const hook = new Hook.Singular(); + +hook.before(function (foo) { + + // typescript will complain about the following mutation attempts + foo.hello = 'world' + foo.bar = 123 + + // yet this is valid + foo.bar = 'other-string' + foo.num = 123 +}) + +const foo = hook(function(foo) { + // handle `foo` + foo.bar = 'another-string' +}, {bar: 'random-string'}) + +// foo outputs +{ + bar: 'another-string', + num: 123 +} +``` + +An alternative import: + +```ts +import {Singular, Collection} from 'before-after-hook' + +const hook = new Singular<{foo: string}>(); +const hookCollection = new Collection(); +``` + +## Upgrading to 1.4 + +Since version 1.4 the `Hook` constructor has been deprecated in favor of returning `Hook.Singular` in an upcoming breaking release. + +Version 1.4 is still 100% backwards-compatible, but if you want to continue using hook collections, we recommend using the `Hook.Collection` constructor instead before the next release. + +For even more details, check out [the PR](https://github.com/gr2m/before-after-hook/pull/52). + +## See also + +If `before-after-hook` is not for you, have a look at one of these alternatives: + +- https://github.com/keystonejs/grappling-hook +- https://github.com/sebelga/promised-hooks +- https://github.com/bnoguchi/hooks-js +- https://github.com/cb1kenobi/hook-emitter + +## License + +[Apache 2.0](LICENSE) diff --git a/Client/node_modules/before-after-hook/index.d.ts b/Client/node_modules/before-after-hook/index.d.ts new file mode 100644 index 000000000..3c19a5c9a --- /dev/null +++ b/Client/node_modules/before-after-hook/index.d.ts @@ -0,0 +1,96 @@ +type HookMethod = (options: O) => R | Promise + +type BeforeHook = (options: O) => void +type ErrorHook = (error: E, options: O) => void +type AfterHook = (result: R, options: O) => void +type WrapHook = ( + hookMethod: HookMethod, + options: O +) => R | Promise + +type AnyHook = + | BeforeHook + | ErrorHook + | AfterHook + | WrapHook + +export interface HookCollection { + /** + * Invoke before and after hooks + */ + ( + name: string | string[], + hookMethod: HookMethod, + options?: any + ): Promise + /** + * Add `before` hook for given `name` + */ + before(name: string, beforeHook: BeforeHook): void + /** + * Add `error` hook for given `name` + */ + error(name: string, errorHook: ErrorHook): void + /** + * Add `after` hook for given `name` + */ + after(name: string, afterHook: AfterHook): void + /** + * Add `wrap` hook for given `name` + */ + wrap(name: string, wrapHook: WrapHook): void + /** + * Remove added hook for given `name` + */ + remove(name: string, hook: AnyHook): void +} + +export interface HookSingular { + /** + * Invoke before and after hooks + */ + (hookMethod: HookMethod, options?: O): Promise + /** + * Add `before` hook + */ + before(beforeHook: BeforeHook): void + /** + * Add `error` hook + */ + error(errorHook: ErrorHook): void + /** + * Add `after` hook + */ + after(afterHook: AfterHook): void + /** + * Add `wrap` hook + */ + wrap(wrapHook: WrapHook): void + /** + * Remove added hook + */ + remove(hook: AnyHook): void +} + +type Collection = new () => HookCollection +type Singular = new () => HookSingular + +interface Hook { + new (): HookCollection + + /** + * Creates a collection of hooks + */ + Collection: Collection + + /** + * Creates a nameless hook that supports strict typings + */ + Singular: Singular +} + +export const Hook: Hook +export const Collection: Collection +export const Singular: Singular + +export default Hook diff --git a/Client/node_modules/before-after-hook/index.js b/Client/node_modules/before-after-hook/index.js new file mode 100644 index 000000000..a97d89b77 --- /dev/null +++ b/Client/node_modules/before-after-hook/index.js @@ -0,0 +1,57 @@ +var register = require('./lib/register') +var addHook = require('./lib/add') +var removeHook = require('./lib/remove') + +// bind with array of arguments: https://stackoverflow.com/a/21792913 +var bind = Function.bind +var bindable = bind.bind(bind) + +function bindApi (hook, state, name) { + var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state]) + hook.api = { remove: removeHookRef } + hook.remove = removeHookRef + + ;['before', 'error', 'after', 'wrap'].forEach(function (kind) { + var args = name ? [state, kind, name] : [state, kind] + hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args) + }) +} + +function HookSingular () { + var singularHookName = 'h' + var singularHookState = { + registry: {} + } + var singularHook = register.bind(null, singularHookState, singularHookName) + bindApi(singularHook, singularHookState, singularHookName) + return singularHook +} + +function HookCollection () { + var state = { + registry: {} + } + + var hook = register.bind(null, state) + bindApi(hook, state) + + return hook +} + +var collectionHookDeprecationMessageDisplayed = false +function Hook () { + if (!collectionHookDeprecationMessageDisplayed) { + console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4') + collectionHookDeprecationMessageDisplayed = true + } + return HookCollection() +} + +Hook.Singular = HookSingular.bind() +Hook.Collection = HookCollection.bind() + +module.exports = Hook +// expose constructors as a named property for TypeScript +module.exports.Hook = Hook +module.exports.Singular = Hook.Singular +module.exports.Collection = Hook.Collection diff --git a/Client/node_modules/before-after-hook/lib/add.js b/Client/node_modules/before-after-hook/lib/add.js new file mode 100644 index 000000000..a34e3f469 --- /dev/null +++ b/Client/node_modules/before-after-hook/lib/add.js @@ -0,0 +1,46 @@ +module.exports = addHook + +function addHook (state, kind, name, hook) { + var orig = hook + if (!state.registry[name]) { + state.registry[name] = [] + } + + if (kind === 'before') { + hook = function (method, options) { + return Promise.resolve() + .then(orig.bind(null, options)) + .then(method.bind(null, options)) + } + } + + if (kind === 'after') { + hook = function (method, options) { + var result + return Promise.resolve() + .then(method.bind(null, options)) + .then(function (result_) { + result = result_ + return orig(result, options) + }) + .then(function () { + return result + }) + } + } + + if (kind === 'error') { + hook = function (method, options) { + return Promise.resolve() + .then(method.bind(null, options)) + .catch(function (error) { + return orig(error, options) + }) + } + } + + state.registry[name].push({ + hook: hook, + orig: orig + }) +} diff --git a/Client/node_modules/before-after-hook/lib/register.js b/Client/node_modules/before-after-hook/lib/register.js new file mode 100644 index 000000000..b3d01fdc9 --- /dev/null +++ b/Client/node_modules/before-after-hook/lib/register.js @@ -0,0 +1,28 @@ +module.exports = register + +function register (state, name, method, options) { + if (typeof method !== 'function') { + throw new Error('method for before hook must be a function') + } + + if (!options) { + options = {} + } + + if (Array.isArray(name)) { + return name.reverse().reduce(function (callback, name) { + return register.bind(null, state, name, callback, options) + }, method)() + } + + return Promise.resolve() + .then(function () { + if (!state.registry[name]) { + return method(options) + } + + return (state.registry[name]).reduce(function (method, registered) { + return registered.hook.bind(null, method, options) + }, method)() + }) +} diff --git a/Client/node_modules/before-after-hook/lib/remove.js b/Client/node_modules/before-after-hook/lib/remove.js new file mode 100644 index 000000000..e357c514b --- /dev/null +++ b/Client/node_modules/before-after-hook/lib/remove.js @@ -0,0 +1,17 @@ +module.exports = removeHook + +function removeHook (state, name, method) { + if (!state.registry[name]) { + return + } + + var index = state.registry[name] + .map(function (registered) { return registered.orig }) + .indexOf(method) + + if (index === -1) { + return + } + + state.registry[name].splice(index, 1) +} diff --git a/Client/node_modules/before-after-hook/package.json b/Client/node_modules/before-after-hook/package.json new file mode 100644 index 000000000..b9c31edb1 --- /dev/null +++ b/Client/node_modules/before-after-hook/package.json @@ -0,0 +1,97 @@ +{ + "_from": "before-after-hook@^2.1.0", + "_id": "before-after-hook@2.1.0", + "_inBundle": false, + "_integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==", + "_location": "/before-after-hook", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "before-after-hook@^2.1.0", + "name": "before-after-hook", + "escapedName": "before-after-hook", + "rawSpec": "^2.1.0", + "saveSpec": null, + "fetchSpec": "^2.1.0" + }, + "_requiredBy": [ + "/@octokit/core" + ], + "_resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz", + "_shasum": "b6c03487f44e24200dd30ca5e6a1979c5d2fb635", + "_spec": "before-after-hook@^2.1.0", + "_where": "C:\\Superalgos\\Client\\node_modules\\@octokit\\core", + "author": { + "name": "Gregor Martynus" + }, + "bugs": { + "url": "https://github.com/gr2m/before-after-hook/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "asynchronous before/error/after hooks for internal functionality", + "devDependencies": { + "browserify": "^16.0.0", + "gaze-cli": "^0.2.0", + "istanbul": "^0.4.0", + "istanbul-coveralls": "^1.0.3", + "mkdirp": "^0.5.1", + "rimraf": "^2.4.4", + "semantic-release": "^15.0.0", + "simple-mock": "^0.8.0", + "standard": "^13.0.1", + "tap-min": "^2.0.0", + "tap-spec": "^5.0.0", + "tape": "^4.2.2", + "typescript": "^3.5.3", + "uglify-js": "^3.0.0" + }, + "files": [ + "index.js", + "index.d.ts", + "lib" + ], + "homepage": "https://github.com/gr2m/before-after-hook#readme", + "keywords": [ + "hook", + "hooks", + "api" + ], + "license": "Apache-2.0", + "name": "before-after-hook", + "release": { + "publish": [ + "@semantic-release/npm", + { + "path": "@semantic-release/github", + "assets": [ + "dist/*.js" + ] + } + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/gr2m/before-after-hook.git" + }, + "scripts": { + "build": "browserify index.js --standalone=Hook > dist/before-after-hook.js", + "postbuild": "uglifyjs dist/before-after-hook.js -mc > dist/before-after-hook.min.js", + "posttest": "npm run validate:ts", + "postvalidate:ts": "tsc --noEmit --strict --target es6 test/typescript-validate.ts", + "prebuild": "rimraf dist && mkdirp dist", + "presemantic-release": "npm run build", + "pretest": "standard", + "semantic-release": "semantic-release", + "test": "npm run -s test:node | tap-spec", + "test:coverage": "istanbul cover test", + "test:coverage:upload": "istanbul-coveralls", + "test:node": "node test", + "test:watch": "gaze 'clear && node test | tap-min' 'test/**/*.js' 'index.js' 'lib/**/*.js'", + "validate:ts": "tsc --strict --target es6 index.d.ts" + }, + "types": "./index.d.ts", + "version": "2.1.0" +} diff --git a/Client/node_modules/deprecation/LICENSE b/Client/node_modules/deprecation/LICENSE new file mode 100644 index 000000000..1683b5838 --- /dev/null +++ b/Client/node_modules/deprecation/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Gregor Martynus and contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/Client/node_modules/deprecation/README.md b/Client/node_modules/deprecation/README.md new file mode 100644 index 000000000..648809d5d --- /dev/null +++ b/Client/node_modules/deprecation/README.md @@ -0,0 +1,77 @@ +# deprecation + +> Log a deprecation message with stack + +![build](https://action-badges.now.sh/gr2m/deprecation) + +## Usage + + + + + + +
+Browsers + + +Load `deprecation` directly from [cdn.pika.dev](https://cdn.pika.dev) + +```html + +``` + +
+Node + + +Install with `npm install deprecation` + +```js +const { Deprecation } = require("deprecation"); +// or: import { Deprecation } from "deprecation"; +``` + +
+ +```js +function foo() { + bar(); +} + +function bar() { + baz(); +} + +function baz() { + console.warn(new Deprecation("[my-lib] foo() is deprecated, use bar()")); +} + +foo(); +// { Deprecation: [my-lib] foo() is deprecated, use bar() +// at baz (/path/to/file.js:12:15) +// at bar (/path/to/file.js:8:3) +// at foo (/path/to/file.js:4:3) +``` + +To log a deprecation message only once, you can use the [once](https://www.npmjs.com/package/once) module. + +```js +const Deprecation = require("deprecation"); +const once = require("once"); + +const deprecateFoo = once(console.warn); + +function foo() { + deprecateFoo(new Deprecation("[my-lib] foo() is deprecated, use bar()")); +} + +foo(); +foo(); // logs nothing +``` + +## License + +[ISC](LICENSE) diff --git a/Client/node_modules/deprecation/dist-node/index.js b/Client/node_modules/deprecation/dist-node/index.js new file mode 100644 index 000000000..9da177570 --- /dev/null +++ b/Client/node_modules/deprecation/dist-node/index.js @@ -0,0 +1,20 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +class Deprecation extends Error { + constructor(message) { + super(message); // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + + this.name = 'Deprecation'; + } + +} + +exports.Deprecation = Deprecation; diff --git a/Client/node_modules/deprecation/dist-src/index.js b/Client/node_modules/deprecation/dist-src/index.js new file mode 100644 index 000000000..7950fdc06 --- /dev/null +++ b/Client/node_modules/deprecation/dist-src/index.js @@ -0,0 +1,14 @@ +export class Deprecation extends Error { + constructor(message) { + super(message); // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + + this.name = 'Deprecation'; + } + +} \ No newline at end of file diff --git a/Client/node_modules/deprecation/dist-types/index.d.ts b/Client/node_modules/deprecation/dist-types/index.d.ts new file mode 100644 index 000000000..e3ae7ad42 --- /dev/null +++ b/Client/node_modules/deprecation/dist-types/index.d.ts @@ -0,0 +1,3 @@ +export class Deprecation extends Error { + name: "Deprecation"; +} diff --git a/Client/node_modules/deprecation/dist-web/index.js b/Client/node_modules/deprecation/dist-web/index.js new file mode 100644 index 000000000..c6bbda759 --- /dev/null +++ b/Client/node_modules/deprecation/dist-web/index.js @@ -0,0 +1,16 @@ +class Deprecation extends Error { + constructor(message) { + super(message); // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + + this.name = 'Deprecation'; + } + +} + +export { Deprecation }; diff --git a/Client/node_modules/deprecation/package.json b/Client/node_modules/deprecation/package.json new file mode 100644 index 000000000..816b1b7ac --- /dev/null +++ b/Client/node_modules/deprecation/package.json @@ -0,0 +1,65 @@ +{ + "_from": "deprecation@^2.0.0", + "_id": "deprecation@2.3.1", + "_inBundle": false, + "_integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "_location": "/deprecation", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "deprecation@^2.0.0", + "name": "deprecation", + "escapedName": "deprecation", + "rawSpec": "^2.0.0", + "saveSpec": null, + "fetchSpec": "^2.0.0" + }, + "_requiredBy": [ + "/@octokit/plugin-rest-endpoint-methods", + "/@octokit/request", + "/@octokit/request-error" + ], + "_resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "_shasum": "6368cbdb40abf3373b525ac87e4a260c3a700919", + "_spec": "deprecation@^2.0.0", + "_where": "C:\\Superalgos\\Client\\node_modules\\@octokit\\request", + "bugs": { + "url": "https://github.com/gr2m/deprecation/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Log a deprecation message with stack", + "devDependencies": { + "@pika/pack": "^0.3.7", + "@pika/plugin-build-node": "^0.4.0", + "@pika/plugin-build-types": "^0.4.0", + "@pika/plugin-build-web": "^0.4.0", + "@pika/plugin-standard-pkg": "^0.4.0", + "semantic-release": "^15.13.3" + }, + "esnext": "dist-src/index.js", + "files": [ + "dist-*/", + "bin/" + ], + "homepage": "https://github.com/gr2m/deprecation#readme", + "keywords": [ + "deprecate", + "deprecated", + "deprecation" + ], + "license": "ISC", + "main": "dist-node/index.js", + "module": "dist-web/index.js", + "name": "deprecation", + "pika": true, + "repository": { + "type": "git", + "url": "git+https://github.com/gr2m/deprecation.git" + }, + "sideEffects": false, + "types": "dist-types/index.d.ts", + "version": "2.3.1" +} diff --git a/Client/node_modules/is-plain-object/LICENSE b/Client/node_modules/is-plain-object/LICENSE new file mode 100644 index 000000000..3f2eca18f --- /dev/null +++ b/Client/node_modules/is-plain-object/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2017, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Client/node_modules/is-plain-object/README.md b/Client/node_modules/is-plain-object/README.md new file mode 100644 index 000000000..5c074ab06 --- /dev/null +++ b/Client/node_modules/is-plain-object/README.md @@ -0,0 +1,125 @@ +# is-plain-object [![NPM version](https://img.shields.io/npm/v/is-plain-object.svg?style=flat)](https://www.npmjs.com/package/is-plain-object) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![NPM total downloads](https://img.shields.io/npm/dt/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-plain-object.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-plain-object) + +> Returns true if an object was created by the `Object` constructor, or Object.create(null). + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save is-plain-object +``` + +Use [isobject](https://github.com/jonschlinkert/isobject) if you only want to check if the value is an object and not an array or null. + +## Usage + +with es modules +```js +import { isPlainObject } from 'is-plain-object'; +``` + +or with commonjs +```js +const { isPlainObject } = require('is-plain-object'); +``` + +**true** when created by the `Object` constructor, or Object.create(null). + +```js +isPlainObject(Object.create({})); +//=> true +isPlainObject(Object.create(Object.prototype)); +//=> true +isPlainObject({foo: 'bar'}); +//=> true +isPlainObject({}); +//=> true +isPlainObject(null); +//=> true +``` + +**false** when not created by the `Object` constructor. + +```js +isPlainObject(1); +//=> false +isPlainObject(['foo', 'bar']); +//=> false +isPlainObject([]); +//=> false +isPlainObject(new Foo); +//=> false +isPlainObject(Object.create(null)); +//=> false +``` + +## About + +

+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [is-number](https://www.npmjs.com/package/is-number): Returns true if a number or string value is a finite number. Useful for regex… [more](https://github.com/jonschlinkert/is-number) | [homepage](https://github.com/jonschlinkert/is-number "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.") +* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.") +* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 19 | [jonschlinkert](https://github.com/jonschlinkert) | +| 6 | [TrySound](https://github.com/TrySound) | +| 6 | [stevenvachon](https://github.com/stevenvachon) | +| 3 | [onokumus](https://github.com/onokumus) | +| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 28, 2019._ diff --git a/Client/node_modules/is-plain-object/dist/is-plain-object.js b/Client/node_modules/is-plain-object/dist/is-plain-object.js new file mode 100644 index 000000000..d134e4f28 --- /dev/null +++ b/Client/node_modules/is-plain-object/dist/is-plain-object.js @@ -0,0 +1,38 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +function isObject(o) { + return Object.prototype.toString.call(o) === '[object Object]'; +} + +function isPlainObject(o) { + var ctor,prot; + + if (isObject(o) === false) return false; + + // If has modified constructor + ctor = o.constructor; + if (ctor === undefined) return true; + + // If has modified prototype + prot = ctor.prototype; + if (isObject(prot) === false) return false; + + // If constructor does not have an Object-specific method + if (prot.hasOwnProperty('isPrototypeOf') === false) { + return false; + } + + // Most likely a plain Object + return true; +} + +exports.isPlainObject = isPlainObject; diff --git a/Client/node_modules/is-plain-object/dist/is-plain-object.mjs b/Client/node_modules/is-plain-object/dist/is-plain-object.mjs new file mode 100644 index 000000000..c2d9f351f --- /dev/null +++ b/Client/node_modules/is-plain-object/dist/is-plain-object.mjs @@ -0,0 +1,34 @@ +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +function isObject(o) { + return Object.prototype.toString.call(o) === '[object Object]'; +} + +function isPlainObject(o) { + var ctor,prot; + + if (isObject(o) === false) return false; + + // If has modified constructor + ctor = o.constructor; + if (ctor === undefined) return true; + + // If has modified prototype + prot = ctor.prototype; + if (isObject(prot) === false) return false; + + // If constructor does not have an Object-specific method + if (prot.hasOwnProperty('isPrototypeOf') === false) { + return false; + } + + // Most likely a plain Object + return true; +} + +export { isPlainObject }; diff --git a/Client/node_modules/is-plain-object/is-plain-object.d.ts b/Client/node_modules/is-plain-object/is-plain-object.d.ts new file mode 100644 index 000000000..a359940d5 --- /dev/null +++ b/Client/node_modules/is-plain-object/is-plain-object.d.ts @@ -0,0 +1 @@ +export function isPlainObject(o: any): boolean; diff --git a/Client/node_modules/is-plain-object/package.json b/Client/node_modules/is-plain-object/package.json new file mode 100644 index 000000000..914118ce9 --- /dev/null +++ b/Client/node_modules/is-plain-object/package.json @@ -0,0 +1,131 @@ +{ + "_from": "is-plain-object@^5.0.0", + "_id": "is-plain-object@5.0.0", + "_inBundle": false, + "_integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "_location": "/is-plain-object", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "is-plain-object@^5.0.0", + "name": "is-plain-object", + "escapedName": "is-plain-object", + "rawSpec": "^5.0.0", + "saveSpec": null, + "fetchSpec": "^5.0.0" + }, + "_requiredBy": [ + "/@octokit/endpoint", + "/@octokit/request" + ], + "_resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "_shasum": "4427f50ab3429e9025ea7d52e9043a9ef4159344", + "_spec": "is-plain-object@^5.0.0", + "_where": "C:\\Superalgos\\Client\\node_modules\\@octokit\\request", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" + }, + "bugs": { + "url": "https://github.com/jonschlinkert/is-plain-object/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Osman Nuri Okumuş", + "url": "http://onokumus.com" + }, + { + "name": "Steven Vachon", + "url": "https://svachon.com" + }, + { + "url": "https://github.com/wtgtybhertgeghgtwtg" + }, + { + "name": "Bogdan Chadkin", + "url": "https://github.com/TrySound" + } + ], + "deprecated": false, + "description": "Returns true if an object was created by the `Object` constructor, or Object.create(null).", + "devDependencies": { + "chai": "^4.2.0", + "esm": "^3.2.22", + "gulp-format-md": "^1.0.0", + "mocha": "^6.1.4", + "mocha-headless-chrome": "^3.1.0", + "rollup": "^2.22.1" + }, + "engines": { + "node": ">=0.10.0" + }, + "exports": { + ".": { + "import": "./dist/is-plain-object.mjs", + "require": "./dist/is-plain-object.js" + }, + "./package.json": "./package.json" + }, + "files": [ + "is-plain-object.d.ts", + "dist" + ], + "homepage": "https://github.com/jonschlinkert/is-plain-object", + "keywords": [ + "check", + "is", + "is-object", + "isobject", + "javascript", + "kind", + "kind-of", + "object", + "plain", + "type", + "typeof", + "value" + ], + "license": "MIT", + "main": "dist/is-plain-object.js", + "module": "dist/is-plain-object.mjs", + "name": "is-plain-object", + "repository": { + "type": "git", + "url": "git+https://github.com/jonschlinkert/is-plain-object.git" + }, + "scripts": { + "build": "rollup -c", + "prepare": "rollup -c", + "test": "npm run test_node && npm run build && npm run test_browser", + "test_browser": "mocha-headless-chrome --args=disable-web-security -f test/browser.html", + "test_node": "mocha -r esm" + }, + "types": "is-plain-object.d.ts", + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "related": { + "list": [ + "is-number", + "isobject", + "kind-of" + ] + }, + "lint": { + "reflinks": true + } + }, + "version": "5.0.0" +} diff --git a/Client/node_modules/node-fetch/CHANGELOG.md b/Client/node_modules/node-fetch/CHANGELOG.md new file mode 100644 index 000000000..543d3d947 --- /dev/null +++ b/Client/node_modules/node-fetch/CHANGELOG.md @@ -0,0 +1,272 @@ + +Changelog +========= + + +# 2.x release + +## v2.6.1 + +**This is an important security release. It is strongly recommended to update as soon as possible.** + +- Fix: honor the `size` option after following a redirect. + +## v2.6.0 + +- Enhance: `options.agent`, it now accepts a function that returns custom http(s).Agent instance based on current URL, see readme for more information. +- Fix: incorrect `Content-Length` was returned for stream body in 2.5.0 release; note that `node-fetch` doesn't calculate content length for stream body. +- Fix: `Response.url` should return empty string instead of `null` by default. + +## v2.5.0 + +- Enhance: `Response` object now includes `redirected` property. +- Enhance: `fetch()` now accepts third-party `Blob` implementation as body. +- Other: disable `package-lock.json` generation as we never commit them. +- Other: dev dependency update. +- Other: readme update. + +## v2.4.1 + +- Fix: `Blob` import rule for node < 10, as `Readable` isn't a named export. + +## v2.4.0 + +- Enhance: added `Brotli` compression support (using node's zlib). +- Enhance: updated `Blob` implementation per spec. +- Fix: set content type automatically for `URLSearchParams`. +- Fix: `Headers` now reject empty header names. +- Fix: test cases, as node 12+ no longer accepts invalid header response. + +## v2.3.0 + +- Enhance: added `AbortSignal` support, with README example. +- Enhance: handle invalid `Location` header during redirect by rejecting them explicitly with `FetchError`. +- Fix: update `browser.js` to support react-native environment, where `self` isn't available globally. + +## v2.2.1 + +- Fix: `compress` flag shouldn't overwrite existing `Accept-Encoding` header. +- Fix: multiple `import` rules, where `PassThrough` etc. doesn't have a named export when using node <10 and `--exerimental-modules` flag. +- Other: Better README. + +## v2.2.0 + +- Enhance: Support all `ArrayBuffer` view types +- Enhance: Support Web Workers +- Enhance: Support Node.js' `--experimental-modules` mode; deprecate `.es.js` file +- Fix: Add `__esModule` property to the exports object +- Other: Better example in README for writing response to a file +- Other: More tests for Agent + +## v2.1.2 + +- Fix: allow `Body` methods to work on `ArrayBuffer`-backed `Body` objects +- Fix: reject promise returned by `Body` methods when the accumulated `Buffer` exceeds the maximum size +- Fix: support custom `Host` headers with any casing +- Fix: support importing `fetch()` from TypeScript in `browser.js` +- Fix: handle the redirect response body properly + +## v2.1.1 + +Fix packaging errors in v2.1.0. + +## v2.1.0 + +- Enhance: allow using ArrayBuffer as the `body` of a `fetch()` or `Request` +- Fix: store HTTP headers of a `Headers` object internally with the given case, for compatibility with older servers that incorrectly treated header names in a case-sensitive manner +- Fix: silently ignore invalid HTTP headers +- Fix: handle HTTP redirect responses without a `Location` header just like non-redirect responses +- Fix: include bodies when following a redirection when appropriate + +## v2.0.0 + +This is a major release. Check [our upgrade guide](https://github.com/bitinn/node-fetch/blob/master/UPGRADE-GUIDE.md) for an overview on some key differences between v1 and v2. + +### General changes + +- Major: Node.js 0.10.x and 0.12.x support is dropped +- Major: `require('node-fetch/lib/response')` etc. is now unsupported; use `require('node-fetch').Response` or ES6 module imports +- Enhance: start testing on Node.js v4.x, v6.x, v8.x LTS, as well as v9.x stable +- Enhance: use Rollup to produce a distributed bundle (less memory overhead and faster startup) +- Enhance: make `Object.prototype.toString()` on Headers, Requests, and Responses return correct class strings +- Other: rewrite in ES2015 using Babel +- Other: use Codecov for code coverage tracking +- Other: update package.json script for npm 5 +- Other: `encoding` module is now optional (alpha.7) +- Other: expose browser.js through package.json, avoid bundling mishaps (alpha.9) +- Other: allow TypeScript to `import` node-fetch by exposing default (alpha.9) + +### HTTP requests + +- Major: overwrite user's `Content-Length` if we can be sure our information is correct (per spec) +- Fix: errors in a response are caught before the body is accessed +- Fix: support WHATWG URL objects, created by `whatwg-url` package or `require('url').URL` in Node.js 7+ + +### Response and Request classes + +- Major: `response.text()` no longer attempts to detect encoding, instead always opting for UTF-8 (per spec); use `response.textConverted()` for the v1 behavior +- Major: make `response.json()` throw error instead of returning an empty object on 204 no-content respose (per spec; reverts behavior changed in v1.6.2) +- Major: internal methods are no longer exposed +- Major: throw error when a `GET` or `HEAD` Request is constructed with a non-null body (per spec) +- Enhance: add `response.arrayBuffer()` (also applies to Requests) +- Enhance: add experimental `response.blob()` (also applies to Requests) +- Enhance: `URLSearchParams` is now accepted as a body +- Enhance: wrap `response.json()` json parsing error as `FetchError` +- Fix: fix Request and Response with `null` body + +### Headers class + +- Major: remove `headers.getAll()`; make `get()` return all headers delimited by commas (per spec) +- Enhance: make Headers iterable +- Enhance: make Headers constructor accept an array of tuples +- Enhance: make sure header names and values are valid in HTTP +- Fix: coerce Headers prototype function parameters to strings, where applicable + +### Documentation + +- Enhance: more comprehensive API docs +- Enhance: add a list of default headers in README + + +# 1.x release + +## backport releases (v1.7.0 and beyond) + +See [changelog on 1.x branch](https://github.com/bitinn/node-fetch/blob/1.x/CHANGELOG.md) for details. + +## v1.6.3 + +- Enhance: error handling document to explain `FetchError` design +- Fix: support `form-data` 2.x releases (requires `form-data` >= 2.1.0) + +## v1.6.2 + +- Enhance: minor document update +- Fix: response.json() returns empty object on 204 no-content response instead of throwing a syntax error + +## v1.6.1 + +- Fix: if `res.body` is a non-stream non-formdata object, we will call `body.toString` and send it as a string +- Fix: `counter` value is incorrectly set to `follow` value when wrapping Request instance +- Fix: documentation update + +## v1.6.0 + +- Enhance: added `res.buffer()` api for convenience, it returns body as a Node.js buffer +- Enhance: better old server support by handling raw deflate response +- Enhance: skip encoding detection for non-HTML/XML response +- Enhance: minor document update +- Fix: HEAD request doesn't need decompression, as body is empty +- Fix: `req.body` now accepts a Node.js buffer + +## v1.5.3 + +- Fix: handle 204 and 304 responses when body is empty but content-encoding is gzip/deflate +- Fix: allow resolving response and cloned response in any order +- Fix: avoid setting `content-length` when `form-data` body use streams +- Fix: send DELETE request with content-length when body is present +- Fix: allow any url when calling new Request, but still reject non-http(s) url in fetch + +## v1.5.2 + +- Fix: allow node.js core to handle keep-alive connection pool when passing a custom agent + +## v1.5.1 + +- Fix: redirect mode `manual` should work even when there is no redirection or broken redirection + +## v1.5.0 + +- Enhance: rejected promise now use custom `Error` (thx to @pekeler) +- Enhance: `FetchError` contains `err.type` and `err.code`, allows for better error handling (thx to @pekeler) +- Enhance: basic support for redirect mode `manual` and `error`, allows for location header extraction (thx to @jimmywarting for the initial PR) + +## v1.4.1 + +- Fix: wrapping Request instance with FormData body again should preserve the body as-is + +## v1.4.0 + +- Enhance: Request and Response now have `clone` method (thx to @kirill-konshin for the initial PR) +- Enhance: Request and Response now have proper string and buffer body support (thx to @kirill-konshin) +- Enhance: Body constructor has been refactored out (thx to @kirill-konshin) +- Enhance: Headers now has `forEach` method (thx to @tricoder42) +- Enhance: back to 100% code coverage +- Fix: better form-data support (thx to @item4) +- Fix: better character encoding detection under chunked encoding (thx to @dsuket for the initial PR) + +## v1.3.3 + +- Fix: make sure `Content-Length` header is set when body is string for POST/PUT/PATCH requests +- Fix: handle body stream error, for cases such as incorrect `Content-Encoding` header +- Fix: when following certain redirects, use `GET` on subsequent request per Fetch Spec +- Fix: `Request` and `Response` constructors now parse headers input using `Headers` + +## v1.3.2 + +- Enhance: allow auto detect of form-data input (no `FormData` spec on node.js, this is form-data specific feature) + +## v1.3.1 + +- Enhance: allow custom host header to be set (server-side only feature, as it's a forbidden header on client-side) + +## v1.3.0 + +- Enhance: now `fetch.Request` is exposed as well + +## v1.2.1 + +- Enhance: `Headers` now normalized `Number` value to `String`, prevent common mistakes + +## v1.2.0 + +- Enhance: now fetch.Headers and fetch.Response are exposed, making testing easier + +## v1.1.2 + +- Fix: `Headers` should only support `String` and `Array` properties, and ignore others + +## v1.1.1 + +- Enhance: now req.headers accept both plain object and `Headers` instance + +## v1.1.0 + +- Enhance: timeout now also applies to response body (in case of slow response) +- Fix: timeout is now cleared properly when fetch is done/has failed + +## v1.0.6 + +- Fix: less greedy content-type charset matching + +## v1.0.5 + +- Fix: when `follow = 0`, fetch should not follow redirect +- Enhance: update tests for better coverage +- Enhance: code formatting +- Enhance: clean up doc + +## v1.0.4 + +- Enhance: test iojs support +- Enhance: timeout attached to socket event only fire once per redirect + +## v1.0.3 + +- Fix: response size limit should reject large chunk +- Enhance: added character encoding detection for xml, such as rss/atom feed (encoding in DTD) + +## v1.0.2 + +- Fix: added res.ok per spec change + +## v1.0.0 + +- Enhance: better test coverage and doc + + +# 0.x release + +## v0.1 + +- Major: initial public release diff --git a/Client/node_modules/node-fetch/LICENSE.md b/Client/node_modules/node-fetch/LICENSE.md new file mode 100644 index 000000000..660ffecb5 --- /dev/null +++ b/Client/node_modules/node-fetch/LICENSE.md @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2016 David Frank + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/Client/node_modules/node-fetch/README.md b/Client/node_modules/node-fetch/README.md new file mode 100644 index 000000000..2dde74289 --- /dev/null +++ b/Client/node_modules/node-fetch/README.md @@ -0,0 +1,590 @@ +node-fetch +========== + +[![npm version][npm-image]][npm-url] +[![build status][travis-image]][travis-url] +[![coverage status][codecov-image]][codecov-url] +[![install size][install-size-image]][install-size-url] +[![Discord][discord-image]][discord-url] + +A light-weight module that brings `window.fetch` to Node.js + +(We are looking for [v2 maintainers and collaborators](https://github.com/bitinn/node-fetch/issues/567)) + +[![Backers][opencollective-image]][opencollective-url] + + + +- [Motivation](#motivation) +- [Features](#features) +- [Difference from client-side fetch](#difference-from-client-side-fetch) +- [Installation](#installation) +- [Loading and configuring the module](#loading-and-configuring-the-module) +- [Common Usage](#common-usage) + - [Plain text or HTML](#plain-text-or-html) + - [JSON](#json) + - [Simple Post](#simple-post) + - [Post with JSON](#post-with-json) + - [Post with form parameters](#post-with-form-parameters) + - [Handling exceptions](#handling-exceptions) + - [Handling client and server errors](#handling-client-and-server-errors) +- [Advanced Usage](#advanced-usage) + - [Streams](#streams) + - [Buffer](#buffer) + - [Accessing Headers and other Meta data](#accessing-headers-and-other-meta-data) + - [Extract Set-Cookie Header](#extract-set-cookie-header) + - [Post data using a file stream](#post-data-using-a-file-stream) + - [Post with form-data (detect multipart)](#post-with-form-data-detect-multipart) + - [Request cancellation with AbortSignal](#request-cancellation-with-abortsignal) +- [API](#api) + - [fetch(url[, options])](#fetchurl-options) + - [Options](#options) + - [Class: Request](#class-request) + - [Class: Response](#class-response) + - [Class: Headers](#class-headers) + - [Interface: Body](#interface-body) + - [Class: FetchError](#class-fetcherror) +- [License](#license) +- [Acknowledgement](#acknowledgement) + + + +## Motivation + +Instead of implementing `XMLHttpRequest` in Node.js to run browser-specific [Fetch polyfill](https://github.com/github/fetch), why not go from native `http` to `fetch` API directly? Hence, `node-fetch`, minimal code for a `window.fetch` compatible API on Node.js runtime. + +See Matt Andrews' [isomorphic-fetch](https://github.com/matthew-andrews/isomorphic-fetch) or Leonardo Quixada's [cross-fetch](https://github.com/lquixada/cross-fetch) for isomorphic usage (exports `node-fetch` for server-side, `whatwg-fetch` for client-side). + +## Features + +- Stay consistent with `window.fetch` API. +- Make conscious trade-off when following [WHATWG fetch spec][whatwg-fetch] and [stream spec](https://streams.spec.whatwg.org/) implementation details, document known differences. +- Use native promise but allow substituting it with [insert your favorite promise library]. +- Use native Node streams for body on both request and response. +- Decode content encoding (gzip/deflate) properly and convert string output (such as `res.text()` and `res.json()`) to UTF-8 automatically. +- Useful extensions such as timeout, redirect limit, response size limit, [explicit errors](ERROR-HANDLING.md) for troubleshooting. + +## Difference from client-side fetch + +- See [Known Differences](LIMITS.md) for details. +- If you happen to use a missing feature that `window.fetch` offers, feel free to open an issue. +- Pull requests are welcomed too! + +## Installation + +Current stable release (`2.x`) + +```sh +$ npm install node-fetch +``` + +## Loading and configuring the module +We suggest you load the module via `require` until the stabilization of ES modules in node: +```js +const fetch = require('node-fetch'); +``` + +If you are using a Promise library other than native, set it through `fetch.Promise`: +```js +const Bluebird = require('bluebird'); + +fetch.Promise = Bluebird; +``` + +## Common Usage + +NOTE: The documentation below is up-to-date with `2.x` releases; see the [`1.x` readme](https://github.com/bitinn/node-fetch/blob/1.x/README.md), [changelog](https://github.com/bitinn/node-fetch/blob/1.x/CHANGELOG.md) and [2.x upgrade guide](UPGRADE-GUIDE.md) for the differences. + +#### Plain text or HTML +```js +fetch('https://github.com/') + .then(res => res.text()) + .then(body => console.log(body)); +``` + +#### JSON + +```js + +fetch('https://api.github.com/users/github') + .then(res => res.json()) + .then(json => console.log(json)); +``` + +#### Simple Post +```js +fetch('https://httpbin.org/post', { method: 'POST', body: 'a=1' }) + .then(res => res.json()) // expecting a json response + .then(json => console.log(json)); +``` + +#### Post with JSON + +```js +const body = { a: 1 }; + +fetch('https://httpbin.org/post', { + method: 'post', + body: JSON.stringify(body), + headers: { 'Content-Type': 'application/json' }, + }) + .then(res => res.json()) + .then(json => console.log(json)); +``` + +#### Post with form parameters +`URLSearchParams` is available in Node.js as of v7.5.0. See [official documentation](https://nodejs.org/api/url.html#url_class_urlsearchparams) for more usage methods. + +NOTE: The `Content-Type` header is only set automatically to `x-www-form-urlencoded` when an instance of `URLSearchParams` is given as such: + +```js +const { URLSearchParams } = require('url'); + +const params = new URLSearchParams(); +params.append('a', 1); + +fetch('https://httpbin.org/post', { method: 'POST', body: params }) + .then(res => res.json()) + .then(json => console.log(json)); +``` + +#### Handling exceptions +NOTE: 3xx-5xx responses are *NOT* exceptions and should be handled in `then()`; see the next section for more information. + +Adding a catch to the fetch promise chain will catch *all* exceptions, such as errors originating from node core libraries, network errors and operational errors, which are instances of FetchError. See the [error handling document](ERROR-HANDLING.md) for more details. + +```js +fetch('https://domain.invalid/') + .catch(err => console.error(err)); +``` + +#### Handling client and server errors +It is common to create a helper function to check that the response contains no client (4xx) or server (5xx) error responses: + +```js +function checkStatus(res) { + if (res.ok) { // res.status >= 200 && res.status < 300 + return res; + } else { + throw MyCustomError(res.statusText); + } +} + +fetch('https://httpbin.org/status/400') + .then(checkStatus) + .then(res => console.log('will not get here...')) +``` + +## Advanced Usage + +#### Streams +The "Node.js way" is to use streams when possible: + +```js +fetch('https://assets-cdn.github.com/images/modules/logos_page/Octocat.png') + .then(res => { + const dest = fs.createWriteStream('./octocat.png'); + res.body.pipe(dest); + }); +``` + +#### Buffer +If you prefer to cache binary data in full, use buffer(). (NOTE: `buffer()` is a `node-fetch`-only API) + +```js +const fileType = require('file-type'); + +fetch('https://assets-cdn.github.com/images/modules/logos_page/Octocat.png') + .then(res => res.buffer()) + .then(buffer => fileType(buffer)) + .then(type => { /* ... */ }); +``` + +#### Accessing Headers and other Meta data +```js +fetch('https://github.com/') + .then(res => { + console.log(res.ok); + console.log(res.status); + console.log(res.statusText); + console.log(res.headers.raw()); + console.log(res.headers.get('content-type')); + }); +``` + +#### Extract Set-Cookie Header + +Unlike browsers, you can access raw `Set-Cookie` headers manually using `Headers.raw()`. This is a `node-fetch` only API. + +```js +fetch(url).then(res => { + // returns an array of values, instead of a string of comma-separated values + console.log(res.headers.raw()['set-cookie']); +}); +``` + +#### Post data using a file stream + +```js +const { createReadStream } = require('fs'); + +const stream = createReadStream('input.txt'); + +fetch('https://httpbin.org/post', { method: 'POST', body: stream }) + .then(res => res.json()) + .then(json => console.log(json)); +``` + +#### Post with form-data (detect multipart) + +```js +const FormData = require('form-data'); + +const form = new FormData(); +form.append('a', 1); + +fetch('https://httpbin.org/post', { method: 'POST', body: form }) + .then(res => res.json()) + .then(json => console.log(json)); + +// OR, using custom headers +// NOTE: getHeaders() is non-standard API + +const form = new FormData(); +form.append('a', 1); + +const options = { + method: 'POST', + body: form, + headers: form.getHeaders() +} + +fetch('https://httpbin.org/post', options) + .then(res => res.json()) + .then(json => console.log(json)); +``` + +#### Request cancellation with AbortSignal + +> NOTE: You may cancel streamed requests only on Node >= v8.0.0 + +You may cancel requests with `AbortController`. A suggested implementation is [`abort-controller`](https://www.npmjs.com/package/abort-controller). + +An example of timing out a request after 150ms could be achieved as the following: + +```js +import AbortController from 'abort-controller'; + +const controller = new AbortController(); +const timeout = setTimeout( + () => { controller.abort(); }, + 150, +); + +fetch(url, { signal: controller.signal }) + .then(res => res.json()) + .then( + data => { + useData(data) + }, + err => { + if (err.name === 'AbortError') { + // request was aborted + } + }, + ) + .finally(() => { + clearTimeout(timeout); + }); +``` + +See [test cases](https://github.com/bitinn/node-fetch/blob/master/test/test.js) for more examples. + + +## API + +### fetch(url[, options]) + +- `url` A string representing the URL for fetching +- `options` [Options](#fetch-options) for the HTTP(S) request +- Returns: Promise<[Response](#class-response)> + +Perform an HTTP(S) fetch. + +`url` should be an absolute url, such as `https://example.com/`. A path-relative URL (`/file/under/root`) or protocol-relative URL (`//can-be-http-or-https.com/`) will result in a rejected `Promise`. + + +### Options + +The default values are shown after each option key. + +```js +{ + // These properties are part of the Fetch Standard + method: 'GET', + headers: {}, // request headers. format is the identical to that accepted by the Headers constructor (see below) + body: null, // request body. can be null, a string, a Buffer, a Blob, or a Node.js Readable stream + redirect: 'follow', // set to `manual` to extract redirect headers, `error` to reject redirect + signal: null, // pass an instance of AbortSignal to optionally abort requests + + // The following properties are node-fetch extensions + follow: 20, // maximum redirect count. 0 to not follow redirect + timeout: 0, // req/res timeout in ms, it resets on redirect. 0 to disable (OS limit applies). Signal is recommended instead. + compress: true, // support gzip/deflate content encoding. false to disable + size: 0, // maximum response body size in bytes. 0 to disable + agent: null // http(s).Agent instance or function that returns an instance (see below) +} +``` + +##### Default Headers + +If no values are set, the following request headers will be sent automatically: + +Header | Value +------------------- | -------------------------------------------------------- +`Accept-Encoding` | `gzip,deflate` _(when `options.compress === true`)_ +`Accept` | `*/*` +`Connection` | `close` _(when no `options.agent` is present)_ +`Content-Length` | _(automatically calculated, if possible)_ +`Transfer-Encoding` | `chunked` _(when `req.body` is a stream)_ +`User-Agent` | `node-fetch/1.0 (+https://github.com/bitinn/node-fetch)` + +Note: when `body` is a `Stream`, `Content-Length` is not set automatically. + +##### Custom Agent + +The `agent` option allows you to specify networking related options which are out of the scope of Fetch, including and not limited to the following: + +- Support self-signed certificate +- Use only IPv4 or IPv6 +- Custom DNS Lookup + +See [`http.Agent`](https://nodejs.org/api/http.html#http_new_agent_options) for more information. + +In addition, the `agent` option accepts a function that returns `http`(s)`.Agent` instance given current [URL](https://nodejs.org/api/url.html), this is useful during a redirection chain across HTTP and HTTPS protocol. + +```js +const httpAgent = new http.Agent({ + keepAlive: true +}); +const httpsAgent = new https.Agent({ + keepAlive: true +}); + +const options = { + agent: function (_parsedURL) { + if (_parsedURL.protocol == 'http:') { + return httpAgent; + } else { + return httpsAgent; + } + } +} +``` + + +### Class: Request + +An HTTP(S) request containing information about URL, method, headers, and the body. This class implements the [Body](#iface-body) interface. + +Due to the nature of Node.js, the following properties are not implemented at this moment: + +- `type` +- `destination` +- `referrer` +- `referrerPolicy` +- `mode` +- `credentials` +- `cache` +- `integrity` +- `keepalive` + +The following node-fetch extension properties are provided: + +- `follow` +- `compress` +- `counter` +- `agent` + +See [options](#fetch-options) for exact meaning of these extensions. + +#### new Request(input[, options]) + +*(spec-compliant)* + +- `input` A string representing a URL, or another `Request` (which will be cloned) +- `options` [Options][#fetch-options] for the HTTP(S) request + +Constructs a new `Request` object. The constructor is identical to that in the [browser](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request). + +In most cases, directly `fetch(url, options)` is simpler than creating a `Request` object. + + +### Class: Response + +An HTTP(S) response. This class implements the [Body](#iface-body) interface. + +The following properties are not implemented in node-fetch at this moment: + +- `Response.error()` +- `Response.redirect()` +- `type` +- `trailer` + +#### new Response([body[, options]]) + +*(spec-compliant)* + +- `body` A `String` or [`Readable` stream][node-readable] +- `options` A [`ResponseInit`][response-init] options dictionary + +Constructs a new `Response` object. The constructor is identical to that in the [browser](https://developer.mozilla.org/en-US/docs/Web/API/Response/Response). + +Because Node.js does not implement service workers (for which this class was designed), one rarely has to construct a `Response` directly. + +#### response.ok + +*(spec-compliant)* + +Convenience property representing if the request ended normally. Will evaluate to true if the response status was greater than or equal to 200 but smaller than 300. + +#### response.redirected + +*(spec-compliant)* + +Convenience property representing if the request has been redirected at least once. Will evaluate to true if the internal redirect counter is greater than 0. + + +### Class: Headers + +This class allows manipulating and iterating over a set of HTTP headers. All methods specified in the [Fetch Standard][whatwg-fetch] are implemented. + +#### new Headers([init]) + +*(spec-compliant)* + +- `init` Optional argument to pre-fill the `Headers` object + +Construct a new `Headers` object. `init` can be either `null`, a `Headers` object, an key-value map object or any iterable object. + +```js +// Example adapted from https://fetch.spec.whatwg.org/#example-headers-class + +const meta = { + 'Content-Type': 'text/xml', + 'Breaking-Bad': '<3' +}; +const headers = new Headers(meta); + +// The above is equivalent to +const meta = [ + [ 'Content-Type', 'text/xml' ], + [ 'Breaking-Bad', '<3' ] +]; +const headers = new Headers(meta); + +// You can in fact use any iterable objects, like a Map or even another Headers +const meta = new Map(); +meta.set('Content-Type', 'text/xml'); +meta.set('Breaking-Bad', '<3'); +const headers = new Headers(meta); +const copyOfHeaders = new Headers(headers); +``` + + +### Interface: Body + +`Body` is an abstract interface with methods that are applicable to both `Request` and `Response` classes. + +The following methods are not yet implemented in node-fetch at this moment: + +- `formData()` + +#### body.body + +*(deviation from spec)* + +* Node.js [`Readable` stream][node-readable] + +Data are encapsulated in the `Body` object. Note that while the [Fetch Standard][whatwg-fetch] requires the property to always be a WHATWG `ReadableStream`, in node-fetch it is a Node.js [`Readable` stream][node-readable]. + +#### body.bodyUsed + +*(spec-compliant)* + +* `Boolean` + +A boolean property for if this body has been consumed. Per the specs, a consumed body cannot be used again. + +#### body.arrayBuffer() +#### body.blob() +#### body.json() +#### body.text() + +*(spec-compliant)* + +* Returns: Promise + +Consume the body and return a promise that will resolve to one of these formats. + +#### body.buffer() + +*(node-fetch extension)* + +* Returns: Promise<Buffer> + +Consume the body and return a promise that will resolve to a Buffer. + +#### body.textConverted() + +*(node-fetch extension)* + +* Returns: Promise<String> + +Identical to `body.text()`, except instead of always converting to UTF-8, encoding sniffing will be performed and text converted to UTF-8 if possible. + +(This API requires an optional dependency of the npm package [encoding](https://www.npmjs.com/package/encoding), which you need to install manually. `webpack` users may see [a warning message](https://github.com/bitinn/node-fetch/issues/412#issuecomment-379007792) due to this optional dependency.) + + +### Class: FetchError + +*(node-fetch extension)* + +An operational error in the fetching process. See [ERROR-HANDLING.md][] for more info. + + +### Class: AbortError + +*(node-fetch extension)* + +An Error thrown when the request is aborted in response to an `AbortSignal`'s `abort` event. It has a `name` property of `AbortError`. See [ERROR-HANDLING.MD][] for more info. + +## Acknowledgement + +Thanks to [github/fetch](https://github.com/github/fetch) for providing a solid implementation reference. + +`node-fetch` v1 was maintained by [@bitinn](https://github.com/bitinn); v2 was maintained by [@TimothyGu](https://github.com/timothygu), [@bitinn](https://github.com/bitinn) and [@jimmywarting](https://github.com/jimmywarting); v2 readme is written by [@jkantr](https://github.com/jkantr). + +## License + +MIT + +[npm-image]: https://flat.badgen.net/npm/v/node-fetch +[npm-url]: https://www.npmjs.com/package/node-fetch +[travis-image]: https://flat.badgen.net/travis/bitinn/node-fetch +[travis-url]: https://travis-ci.org/bitinn/node-fetch +[codecov-image]: https://flat.badgen.net/codecov/c/github/bitinn/node-fetch/master +[codecov-url]: https://codecov.io/gh/bitinn/node-fetch +[install-size-image]: https://flat.badgen.net/packagephobia/install/node-fetch +[install-size-url]: https://packagephobia.now.sh/result?p=node-fetch +[discord-image]: https://img.shields.io/discord/619915844268326952?color=%237289DA&label=Discord&style=flat-square +[discord-url]: https://discord.gg/Zxbndcm +[opencollective-image]: https://opencollective.com/node-fetch/backers.svg +[opencollective-url]: https://opencollective.com/node-fetch +[whatwg-fetch]: https://fetch.spec.whatwg.org/ +[response-init]: https://fetch.spec.whatwg.org/#responseinit +[node-readable]: https://nodejs.org/api/stream.html#stream_readable_streams +[mdn-headers]: https://developer.mozilla.org/en-US/docs/Web/API/Headers +[LIMITS.md]: https://github.com/bitinn/node-fetch/blob/master/LIMITS.md +[ERROR-HANDLING.md]: https://github.com/bitinn/node-fetch/blob/master/ERROR-HANDLING.md +[UPGRADE-GUIDE.md]: https://github.com/bitinn/node-fetch/blob/master/UPGRADE-GUIDE.md diff --git a/Client/node_modules/node-fetch/browser.js b/Client/node_modules/node-fetch/browser.js new file mode 100644 index 000000000..83c54c584 --- /dev/null +++ b/Client/node_modules/node-fetch/browser.js @@ -0,0 +1,25 @@ +"use strict"; + +// ref: https://github.com/tc39/proposal-global +var getGlobal = function () { + // the only reliable means to get the global object is + // `Function('return this')()` + // However, this causes CSP violations in Chrome apps. + if (typeof self !== 'undefined') { return self; } + if (typeof window !== 'undefined') { return window; } + if (typeof global !== 'undefined') { return global; } + throw new Error('unable to locate global object'); +} + +var global = getGlobal(); + +module.exports = exports = global.fetch; + +// Needed for TypeScript and Webpack. +if (global.fetch) { + exports.default = global.fetch.bind(global); +} + +exports.Headers = global.Headers; +exports.Request = global.Request; +exports.Response = global.Response; \ No newline at end of file diff --git a/Client/node_modules/node-fetch/lib/index.es.js b/Client/node_modules/node-fetch/lib/index.es.js new file mode 100644 index 000000000..61906c959 --- /dev/null +++ b/Client/node_modules/node-fetch/lib/index.es.js @@ -0,0 +1,1640 @@ +process.emitWarning("The .es.js file is deprecated. Use .mjs instead."); + +import Stream from 'stream'; +import http from 'http'; +import Url from 'url'; +import https from 'https'; +import zlib from 'zlib'; + +// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js + +// fix for "Readable" isn't a named export issue +const Readable = Stream.Readable; + +const BUFFER = Symbol('buffer'); +const TYPE = Symbol('type'); + +class Blob { + constructor() { + this[TYPE] = ''; + + const blobParts = arguments[0]; + const options = arguments[1]; + + const buffers = []; + let size = 0; + + if (blobParts) { + const a = blobParts; + const length = Number(a.length); + for (let i = 0; i < length; i++) { + const element = a[i]; + let buffer; + if (element instanceof Buffer) { + buffer = element; + } else if (ArrayBuffer.isView(element)) { + buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength); + } else if (element instanceof ArrayBuffer) { + buffer = Buffer.from(element); + } else if (element instanceof Blob) { + buffer = element[BUFFER]; + } else { + buffer = Buffer.from(typeof element === 'string' ? element : String(element)); + } + size += buffer.length; + buffers.push(buffer); + } + } + + this[BUFFER] = Buffer.concat(buffers); + + let type = options && options.type !== undefined && String(options.type).toLowerCase(); + if (type && !/[^\u0020-\u007E]/.test(type)) { + this[TYPE] = type; + } + } + get size() { + return this[BUFFER].length; + } + get type() { + return this[TYPE]; + } + text() { + return Promise.resolve(this[BUFFER].toString()); + } + arrayBuffer() { + const buf = this[BUFFER]; + const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + return Promise.resolve(ab); + } + stream() { + const readable = new Readable(); + readable._read = function () {}; + readable.push(this[BUFFER]); + readable.push(null); + return readable; + } + toString() { + return '[object Blob]'; + } + slice() { + const size = this.size; + + const start = arguments[0]; + const end = arguments[1]; + let relativeStart, relativeEnd; + if (start === undefined) { + relativeStart = 0; + } else if (start < 0) { + relativeStart = Math.max(size + start, 0); + } else { + relativeStart = Math.min(start, size); + } + if (end === undefined) { + relativeEnd = size; + } else if (end < 0) { + relativeEnd = Math.max(size + end, 0); + } else { + relativeEnd = Math.min(end, size); + } + const span = Math.max(relativeEnd - relativeStart, 0); + + const buffer = this[BUFFER]; + const slicedBuffer = buffer.slice(relativeStart, relativeStart + span); + const blob = new Blob([], { type: arguments[2] }); + blob[BUFFER] = slicedBuffer; + return blob; + } +} + +Object.defineProperties(Blob.prototype, { + size: { enumerable: true }, + type: { enumerable: true }, + slice: { enumerable: true } +}); + +Object.defineProperty(Blob.prototype, Symbol.toStringTag, { + value: 'Blob', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * fetch-error.js + * + * FetchError interface for operational errors + */ + +/** + * Create FetchError instance + * + * @param String message Error message for human + * @param String type Error type for machine + * @param String systemError For Node.js system error + * @return FetchError + */ +function FetchError(message, type, systemError) { + Error.call(this, message); + + this.message = message; + this.type = type; + + // when err.type is `system`, err.code contains system error code + if (systemError) { + this.code = this.errno = systemError.code; + } + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +FetchError.prototype = Object.create(Error.prototype); +FetchError.prototype.constructor = FetchError; +FetchError.prototype.name = 'FetchError'; + +let convert; +try { + convert = require('encoding').convert; +} catch (e) {} + +const INTERNALS = Symbol('Body internals'); + +// fix an issue where "PassThrough" isn't a named export for node <10 +const PassThrough = Stream.PassThrough; + +/** + * Body mixin + * + * Ref: https://fetch.spec.whatwg.org/#body + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +function Body(body) { + var _this = this; + + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref$size = _ref.size; + + let size = _ref$size === undefined ? 0 : _ref$size; + var _ref$timeout = _ref.timeout; + let timeout = _ref$timeout === undefined ? 0 : _ref$timeout; + + if (body == null) { + // body is undefined or null + body = null; + } else if (isURLSearchParams(body)) { + // body is a URLSearchParams + body = Buffer.from(body.toString()); + } else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') { + // body is ArrayBuffer + body = Buffer.from(body); + } else if (ArrayBuffer.isView(body)) { + // body is ArrayBufferView + body = Buffer.from(body.buffer, body.byteOffset, body.byteLength); + } else if (body instanceof Stream) ; else { + // none of the above + // coerce to string then buffer + body = Buffer.from(String(body)); + } + this[INTERNALS] = { + body, + disturbed: false, + error: null + }; + this.size = size; + this.timeout = timeout; + + if (body instanceof Stream) { + body.on('error', function (err) { + const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err); + _this[INTERNALS].error = error; + }); + } +} + +Body.prototype = { + get body() { + return this[INTERNALS].body; + }, + + get bodyUsed() { + return this[INTERNALS].disturbed; + }, + + /** + * Decode response as ArrayBuffer + * + * @return Promise + */ + arrayBuffer() { + return consumeBody.call(this).then(function (buf) { + return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + }); + }, + + /** + * Return raw response as Blob + * + * @return Promise + */ + blob() { + let ct = this.headers && this.headers.get('content-type') || ''; + return consumeBody.call(this).then(function (buf) { + return Object.assign( + // Prevent copying + new Blob([], { + type: ct.toLowerCase() + }), { + [BUFFER]: buf + }); + }); + }, + + /** + * Decode response as json + * + * @return Promise + */ + json() { + var _this2 = this; + + return consumeBody.call(this).then(function (buffer) { + try { + return JSON.parse(buffer.toString()); + } catch (err) { + return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json')); + } + }); + }, + + /** + * Decode response as text + * + * @return Promise + */ + text() { + return consumeBody.call(this).then(function (buffer) { + return buffer.toString(); + }); + }, + + /** + * Decode response as buffer (non-spec api) + * + * @return Promise + */ + buffer() { + return consumeBody.call(this); + }, + + /** + * Decode response as text, while automatically detecting the encoding and + * trying to decode to UTF-8 (non-spec api) + * + * @return Promise + */ + textConverted() { + var _this3 = this; + + return consumeBody.call(this).then(function (buffer) { + return convertBody(buffer, _this3.headers); + }); + } +}; + +// In browsers, all properties are enumerable. +Object.defineProperties(Body.prototype, { + body: { enumerable: true }, + bodyUsed: { enumerable: true }, + arrayBuffer: { enumerable: true }, + blob: { enumerable: true }, + json: { enumerable: true }, + text: { enumerable: true } +}); + +Body.mixIn = function (proto) { + for (const name of Object.getOwnPropertyNames(Body.prototype)) { + // istanbul ignore else: future proof + if (!(name in proto)) { + const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); + Object.defineProperty(proto, name, desc); + } + } +}; + +/** + * Consume and convert an entire Body to a Buffer. + * + * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body + * + * @return Promise + */ +function consumeBody() { + var _this4 = this; + + if (this[INTERNALS].disturbed) { + return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`)); + } + + this[INTERNALS].disturbed = true; + + if (this[INTERNALS].error) { + return Body.Promise.reject(this[INTERNALS].error); + } + + let body = this.body; + + // body is null + if (body === null) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is blob + if (isBlob(body)) { + body = body.stream(); + } + + // body is buffer + if (Buffer.isBuffer(body)) { + return Body.Promise.resolve(body); + } + + // istanbul ignore if: should never happen + if (!(body instanceof Stream)) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is stream + // get ready to actually consume the body + let accum = []; + let accumBytes = 0; + let abort = false; + + return new Body.Promise(function (resolve, reject) { + let resTimeout; + + // allow timeout on slow response body + if (_this4.timeout) { + resTimeout = setTimeout(function () { + abort = true; + reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout')); + }, _this4.timeout); + } + + // handle stream errors + body.on('error', function (err) { + if (err.name === 'AbortError') { + // if the request was aborted, reject with this Error + abort = true; + reject(err); + } else { + // other errors, such as incorrect content-encoding + reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + + body.on('data', function (chunk) { + if (abort || chunk === null) { + return; + } + + if (_this4.size && accumBytes + chunk.length > _this4.size) { + abort = true; + reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size')); + return; + } + + accumBytes += chunk.length; + accum.push(chunk); + }); + + body.on('end', function () { + if (abort) { + return; + } + + clearTimeout(resTimeout); + + try { + resolve(Buffer.concat(accum, accumBytes)); + } catch (err) { + // handle streams that have accumulated too much data (issue #414) + reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + }); +} + +/** + * Detect buffer encoding and convert to target encoding + * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding + * + * @param Buffer buffer Incoming buffer + * @param String encoding Target encoding + * @return String + */ +function convertBody(buffer, headers) { + if (typeof convert !== 'function') { + throw new Error('The package `encoding` must be installed to use the textConverted() function'); + } + + const ct = headers.get('content-type'); + let charset = 'utf-8'; + let res, str; + + // header + if (ct) { + res = /charset=([^;]*)/i.exec(ct); + } + + // no charset in content type, peek at response body for at most 1024 bytes + str = buffer.slice(0, 1024).toString(); + + // html5 + if (!res && str) { + res = / 0 && arguments[0] !== undefined ? arguments[0] : undefined; + + this[MAP] = Object.create(null); + + if (init instanceof Headers) { + const rawHeaders = init.raw(); + const headerNames = Object.keys(rawHeaders); + + for (const headerName of headerNames) { + for (const value of rawHeaders[headerName]) { + this.append(headerName, value); + } + } + + return; + } + + // We don't worry about converting prop to ByteString here as append() + // will handle it. + if (init == null) ; else if (typeof init === 'object') { + const method = init[Symbol.iterator]; + if (method != null) { + if (typeof method !== 'function') { + throw new TypeError('Header pairs must be iterable'); + } + + // sequence> + // Note: per spec we have to first exhaust the lists then process them + const pairs = []; + for (const pair of init) { + if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') { + throw new TypeError('Each header pair must be iterable'); + } + pairs.push(Array.from(pair)); + } + + for (const pair of pairs) { + if (pair.length !== 2) { + throw new TypeError('Each header pair must be a name/value tuple'); + } + this.append(pair[0], pair[1]); + } + } else { + // record + for (const key of Object.keys(init)) { + const value = init[key]; + this.append(key, value); + } + } + } else { + throw new TypeError('Provided initializer must be an object'); + } + } + + /** + * Return combined header value given name + * + * @param String name Header name + * @return Mixed + */ + get(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key === undefined) { + return null; + } + + return this[MAP][key].join(', '); + } + + /** + * Iterate over all headers + * + * @param Function callback Executed for each item with parameters (value, name, thisArg) + * @param Boolean thisArg `this` context for callback function + * @return Void + */ + forEach(callback) { + let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; + + let pairs = getHeaders(this); + let i = 0; + while (i < pairs.length) { + var _pairs$i = pairs[i]; + const name = _pairs$i[0], + value = _pairs$i[1]; + + callback.call(thisArg, value, name, this); + pairs = getHeaders(this); + i++; + } + } + + /** + * Overwrite header values given name + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + set(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + this[MAP][key !== undefined ? key : name] = [value]; + } + + /** + * Append a value onto existing header + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + append(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + if (key !== undefined) { + this[MAP][key].push(value); + } else { + this[MAP][name] = [value]; + } + } + + /** + * Check for header name existence + * + * @param String name Header name + * @return Boolean + */ + has(name) { + name = `${name}`; + validateName(name); + return find(this[MAP], name) !== undefined; + } + + /** + * Delete all header values given name + * + * @param String name Header name + * @return Void + */ + delete(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key !== undefined) { + delete this[MAP][key]; + } + } + + /** + * Return raw headers (non-spec api) + * + * @return Object + */ + raw() { + return this[MAP]; + } + + /** + * Get an iterator on keys. + * + * @return Iterator + */ + keys() { + return createHeadersIterator(this, 'key'); + } + + /** + * Get an iterator on values. + * + * @return Iterator + */ + values() { + return createHeadersIterator(this, 'value'); + } + + /** + * Get an iterator on entries. + * + * This is the default iterator of the Headers object. + * + * @return Iterator + */ + [Symbol.iterator]() { + return createHeadersIterator(this, 'key+value'); + } +} +Headers.prototype.entries = Headers.prototype[Symbol.iterator]; + +Object.defineProperty(Headers.prototype, Symbol.toStringTag, { + value: 'Headers', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Headers.prototype, { + get: { enumerable: true }, + forEach: { enumerable: true }, + set: { enumerable: true }, + append: { enumerable: true }, + has: { enumerable: true }, + delete: { enumerable: true }, + keys: { enumerable: true }, + values: { enumerable: true }, + entries: { enumerable: true } +}); + +function getHeaders(headers) { + let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value'; + + const keys = Object.keys(headers[MAP]).sort(); + return keys.map(kind === 'key' ? function (k) { + return k.toLowerCase(); + } : kind === 'value' ? function (k) { + return headers[MAP][k].join(', '); + } : function (k) { + return [k.toLowerCase(), headers[MAP][k].join(', ')]; + }); +} + +const INTERNAL = Symbol('internal'); + +function createHeadersIterator(target, kind) { + const iterator = Object.create(HeadersIteratorPrototype); + iterator[INTERNAL] = { + target, + kind, + index: 0 + }; + return iterator; +} + +const HeadersIteratorPrototype = Object.setPrototypeOf({ + next() { + // istanbul ignore if + if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) { + throw new TypeError('Value of `this` is not a HeadersIterator'); + } + + var _INTERNAL = this[INTERNAL]; + const target = _INTERNAL.target, + kind = _INTERNAL.kind, + index = _INTERNAL.index; + + const values = getHeaders(target, kind); + const len = values.length; + if (index >= len) { + return { + value: undefined, + done: true + }; + } + + this[INTERNAL].index = index + 1; + + return { + value: values[index], + done: false + }; + } +}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))); + +Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, { + value: 'HeadersIterator', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * Export the Headers object in a form that Node.js can consume. + * + * @param Headers headers + * @return Object + */ +function exportNodeCompatibleHeaders(headers) { + const obj = Object.assign({ __proto__: null }, headers[MAP]); + + // http.request() only supports string as Host header. This hack makes + // specifying custom Host header possible. + const hostHeaderKey = find(headers[MAP], 'Host'); + if (hostHeaderKey !== undefined) { + obj[hostHeaderKey] = obj[hostHeaderKey][0]; + } + + return obj; +} + +/** + * Create a Headers object from an object of headers, ignoring those that do + * not conform to HTTP grammar productions. + * + * @param Object obj Object of headers + * @return Headers + */ +function createHeadersLenient(obj) { + const headers = new Headers(); + for (const name of Object.keys(obj)) { + if (invalidTokenRegex.test(name)) { + continue; + } + if (Array.isArray(obj[name])) { + for (const val of obj[name]) { + if (invalidHeaderCharRegex.test(val)) { + continue; + } + if (headers[MAP][name] === undefined) { + headers[MAP][name] = [val]; + } else { + headers[MAP][name].push(val); + } + } + } else if (!invalidHeaderCharRegex.test(obj[name])) { + headers[MAP][name] = [obj[name]]; + } + } + return headers; +} + +const INTERNALS$1 = Symbol('Response internals'); + +// fix an issue where "STATUS_CODES" aren't a named export for node <10 +const STATUS_CODES = http.STATUS_CODES; + +/** + * Response class + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +class Response { + constructor() { + let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + Body.call(this, body, opts); + + const status = opts.status || 200; + const headers = new Headers(opts.headers); + + if (body != null && !headers.has('Content-Type')) { + const contentType = extractContentType(body); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + this[INTERNALS$1] = { + url: opts.url, + status, + statusText: opts.statusText || STATUS_CODES[status], + headers, + counter: opts.counter + }; + } + + get url() { + return this[INTERNALS$1].url || ''; + } + + get status() { + return this[INTERNALS$1].status; + } + + /** + * Convenience property representing if the request ended normally + */ + get ok() { + return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300; + } + + get redirected() { + return this[INTERNALS$1].counter > 0; + } + + get statusText() { + return this[INTERNALS$1].statusText; + } + + get headers() { + return this[INTERNALS$1].headers; + } + + /** + * Clone this response + * + * @return Response + */ + clone() { + return new Response(clone(this), { + url: this.url, + status: this.status, + statusText: this.statusText, + headers: this.headers, + ok: this.ok, + redirected: this.redirected + }); + } +} + +Body.mixIn(Response.prototype); + +Object.defineProperties(Response.prototype, { + url: { enumerable: true }, + status: { enumerable: true }, + ok: { enumerable: true }, + redirected: { enumerable: true }, + statusText: { enumerable: true }, + headers: { enumerable: true }, + clone: { enumerable: true } +}); + +Object.defineProperty(Response.prototype, Symbol.toStringTag, { + value: 'Response', + writable: false, + enumerable: false, + configurable: true +}); + +const INTERNALS$2 = Symbol('Request internals'); + +// fix an issue where "format", "parse" aren't a named export for node <10 +const parse_url = Url.parse; +const format_url = Url.format; + +const streamDestructionSupported = 'destroy' in Stream.Readable.prototype; + +/** + * Check if a value is an instance of Request. + * + * @param Mixed input + * @return Boolean + */ +function isRequest(input) { + return typeof input === 'object' && typeof input[INTERNALS$2] === 'object'; +} + +function isAbortSignal(signal) { + const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal); + return !!(proto && proto.constructor.name === 'AbortSignal'); +} + +/** + * Request class + * + * @param Mixed input Url or Request instance + * @param Object init Custom options + * @return Void + */ +class Request { + constructor(input) { + let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + let parsedURL; + + // normalize input + if (!isRequest(input)) { + if (input && input.href) { + // in order to support Node.js' Url objects; though WHATWG's URL objects + // will fall into this branch also (since their `toString()` will return + // `href` property anyway) + parsedURL = parse_url(input.href); + } else { + // coerce input to a string before attempting to parse + parsedURL = parse_url(`${input}`); + } + input = {}; + } else { + parsedURL = parse_url(input.url); + } + + let method = init.method || input.method || 'GET'; + method = method.toUpperCase(); + + if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) { + throw new TypeError('Request with GET/HEAD method cannot have body'); + } + + let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null; + + Body.call(this, inputBody, { + timeout: init.timeout || input.timeout || 0, + size: init.size || input.size || 0 + }); + + const headers = new Headers(init.headers || input.headers || {}); + + if (inputBody != null && !headers.has('Content-Type')) { + const contentType = extractContentType(inputBody); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + let signal = isRequest(input) ? input.signal : null; + if ('signal' in init) signal = init.signal; + + if (signal != null && !isAbortSignal(signal)) { + throw new TypeError('Expected signal to be an instanceof AbortSignal'); + } + + this[INTERNALS$2] = { + method, + redirect: init.redirect || input.redirect || 'follow', + headers, + parsedURL, + signal + }; + + // node-fetch-only options + this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20; + this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true; + this.counter = init.counter || input.counter || 0; + this.agent = init.agent || input.agent; + } + + get method() { + return this[INTERNALS$2].method; + } + + get url() { + return format_url(this[INTERNALS$2].parsedURL); + } + + get headers() { + return this[INTERNALS$2].headers; + } + + get redirect() { + return this[INTERNALS$2].redirect; + } + + get signal() { + return this[INTERNALS$2].signal; + } + + /** + * Clone this request + * + * @return Request + */ + clone() { + return new Request(this); + } +} + +Body.mixIn(Request.prototype); + +Object.defineProperty(Request.prototype, Symbol.toStringTag, { + value: 'Request', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Request.prototype, { + method: { enumerable: true }, + url: { enumerable: true }, + headers: { enumerable: true }, + redirect: { enumerable: true }, + clone: { enumerable: true }, + signal: { enumerable: true } +}); + +/** + * Convert a Request to Node.js http request options. + * + * @param Request A Request instance + * @return Object The options object to be passed to http.request + */ +function getNodeRequestOptions(request) { + const parsedURL = request[INTERNALS$2].parsedURL; + const headers = new Headers(request[INTERNALS$2].headers); + + // fetch step 1.3 + if (!headers.has('Accept')) { + headers.set('Accept', '*/*'); + } + + // Basic fetch + if (!parsedURL.protocol || !parsedURL.hostname) { + throw new TypeError('Only absolute URLs are supported'); + } + + if (!/^https?:$/.test(parsedURL.protocol)) { + throw new TypeError('Only HTTP(S) protocols are supported'); + } + + if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) { + throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8'); + } + + // HTTP-network-or-cache fetch steps 2.4-2.7 + let contentLengthValue = null; + if (request.body == null && /^(POST|PUT)$/i.test(request.method)) { + contentLengthValue = '0'; + } + if (request.body != null) { + const totalBytes = getTotalBytes(request); + if (typeof totalBytes === 'number') { + contentLengthValue = String(totalBytes); + } + } + if (contentLengthValue) { + headers.set('Content-Length', contentLengthValue); + } + + // HTTP-network-or-cache fetch step 2.11 + if (!headers.has('User-Agent')) { + headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)'); + } + + // HTTP-network-or-cache fetch step 2.15 + if (request.compress && !headers.has('Accept-Encoding')) { + headers.set('Accept-Encoding', 'gzip,deflate'); + } + + let agent = request.agent; + if (typeof agent === 'function') { + agent = agent(parsedURL); + } + + if (!headers.has('Connection') && !agent) { + headers.set('Connection', 'close'); + } + + // HTTP-network fetch step 4.2 + // chunked encoding is handled by Node.js + + return Object.assign({}, parsedURL, { + method: request.method, + headers: exportNodeCompatibleHeaders(headers), + agent + }); +} + +/** + * abort-error.js + * + * AbortError interface for cancelled requests + */ + +/** + * Create AbortError instance + * + * @param String message Error message for human + * @return AbortError + */ +function AbortError(message) { + Error.call(this, message); + + this.type = 'aborted'; + this.message = message; + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +AbortError.prototype = Object.create(Error.prototype); +AbortError.prototype.constructor = AbortError; +AbortError.prototype.name = 'AbortError'; + +// fix an issue where "PassThrough", "resolve" aren't a named export for node <10 +const PassThrough$1 = Stream.PassThrough; +const resolve_url = Url.resolve; + +/** + * Fetch function + * + * @param Mixed url Absolute url or Request instance + * @param Object opts Fetch options + * @return Promise + */ +function fetch(url, opts) { + + // allow custom promise + if (!fetch.Promise) { + throw new Error('native promise missing, set fetch.Promise to your favorite alternative'); + } + + Body.Promise = fetch.Promise; + + // wrap http.request into fetch + return new fetch.Promise(function (resolve, reject) { + // build request object + const request = new Request(url, opts); + const options = getNodeRequestOptions(request); + + const send = (options.protocol === 'https:' ? https : http).request; + const signal = request.signal; + + let response = null; + + const abort = function abort() { + let error = new AbortError('The user aborted a request.'); + reject(error); + if (request.body && request.body instanceof Stream.Readable) { + request.body.destroy(error); + } + if (!response || !response.body) return; + response.body.emit('error', error); + }; + + if (signal && signal.aborted) { + abort(); + return; + } + + const abortAndFinalize = function abortAndFinalize() { + abort(); + finalize(); + }; + + // send request + const req = send(options); + let reqTimeout; + + if (signal) { + signal.addEventListener('abort', abortAndFinalize); + } + + function finalize() { + req.abort(); + if (signal) signal.removeEventListener('abort', abortAndFinalize); + clearTimeout(reqTimeout); + } + + if (request.timeout) { + req.once('socket', function (socket) { + reqTimeout = setTimeout(function () { + reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout')); + finalize(); + }, request.timeout); + }); + } + + req.on('error', function (err) { + reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err)); + finalize(); + }); + + req.on('response', function (res) { + clearTimeout(reqTimeout); + + const headers = createHeadersLenient(res.headers); + + // HTTP fetch step 5 + if (fetch.isRedirect(res.statusCode)) { + // HTTP fetch step 5.2 + const location = headers.get('Location'); + + // HTTP fetch step 5.3 + const locationURL = location === null ? null : resolve_url(request.url, location); + + // HTTP fetch step 5.5 + switch (request.redirect) { + case 'error': + reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect')); + finalize(); + return; + case 'manual': + // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL. + if (locationURL !== null) { + // handle corrupted header + try { + headers.set('Location', locationURL); + } catch (err) { + // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request + reject(err); + } + } + break; + case 'follow': + // HTTP-redirect fetch step 2 + if (locationURL === null) { + break; + } + + // HTTP-redirect fetch step 5 + if (request.counter >= request.follow) { + reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 6 (counter increment) + // Create a new Request object. + const requestOpts = { + headers: new Headers(request.headers), + follow: request.follow, + counter: request.counter + 1, + agent: request.agent, + compress: request.compress, + method: request.method, + body: request.body, + signal: request.signal, + timeout: request.timeout, + size: request.size + }; + + // HTTP-redirect fetch step 9 + if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) { + reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 11 + if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') { + requestOpts.method = 'GET'; + requestOpts.body = undefined; + requestOpts.headers.delete('content-length'); + } + + // HTTP-redirect fetch step 15 + resolve(fetch(new Request(locationURL, requestOpts))); + finalize(); + return; + } + } + + // prepare response + res.once('end', function () { + if (signal) signal.removeEventListener('abort', abortAndFinalize); + }); + let body = res.pipe(new PassThrough$1()); + + const response_options = { + url: request.url, + status: res.statusCode, + statusText: res.statusMessage, + headers: headers, + size: request.size, + timeout: request.timeout, + counter: request.counter + }; + + // HTTP-network fetch step 12.1.1.3 + const codings = headers.get('Content-Encoding'); + + // HTTP-network fetch step 12.1.1.4: handle content codings + + // in following scenarios we ignore compression support + // 1. compression support is disabled + // 2. HEAD request + // 3. no Content-Encoding header + // 4. no content response (204) + // 5. content not modified response (304) + if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) { + response = new Response(body, response_options); + resolve(response); + return; + } + + // For Node v6+ + // Be less strict when decoding compressed responses, since sometimes + // servers send slightly invalid responses that are still accepted + // by common browsers. + // Always using Z_SYNC_FLUSH is what cURL does. + const zlibOptions = { + flush: zlib.Z_SYNC_FLUSH, + finishFlush: zlib.Z_SYNC_FLUSH + }; + + // for gzip + if (codings == 'gzip' || codings == 'x-gzip') { + body = body.pipe(zlib.createGunzip(zlibOptions)); + response = new Response(body, response_options); + resolve(response); + return; + } + + // for deflate + if (codings == 'deflate' || codings == 'x-deflate') { + // handle the infamous raw deflate response from old servers + // a hack for old IIS and Apache servers + const raw = res.pipe(new PassThrough$1()); + raw.once('data', function (chunk) { + // see http://stackoverflow.com/questions/37519828 + if ((chunk[0] & 0x0F) === 0x08) { + body = body.pipe(zlib.createInflate()); + } else { + body = body.pipe(zlib.createInflateRaw()); + } + response = new Response(body, response_options); + resolve(response); + }); + return; + } + + // for br + if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') { + body = body.pipe(zlib.createBrotliDecompress()); + response = new Response(body, response_options); + resolve(response); + return; + } + + // otherwise, use response as-is + response = new Response(body, response_options); + resolve(response); + }); + + writeToStream(req, request); + }); +} +/** + * Redirect code matching + * + * @param Number code Status code + * @return Boolean + */ +fetch.isRedirect = function (code) { + return code === 301 || code === 302 || code === 303 || code === 307 || code === 308; +}; + +// expose Promise +fetch.Promise = global.Promise; + +export default fetch; +export { Headers, Request, Response, FetchError }; diff --git a/Client/node_modules/node-fetch/lib/index.js b/Client/node_modules/node-fetch/lib/index.js new file mode 100644 index 000000000..4b241bfbf --- /dev/null +++ b/Client/node_modules/node-fetch/lib/index.js @@ -0,0 +1,1649 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var Stream = _interopDefault(require('stream')); +var http = _interopDefault(require('http')); +var Url = _interopDefault(require('url')); +var https = _interopDefault(require('https')); +var zlib = _interopDefault(require('zlib')); + +// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js + +// fix for "Readable" isn't a named export issue +const Readable = Stream.Readable; + +const BUFFER = Symbol('buffer'); +const TYPE = Symbol('type'); + +class Blob { + constructor() { + this[TYPE] = ''; + + const blobParts = arguments[0]; + const options = arguments[1]; + + const buffers = []; + let size = 0; + + if (blobParts) { + const a = blobParts; + const length = Number(a.length); + for (let i = 0; i < length; i++) { + const element = a[i]; + let buffer; + if (element instanceof Buffer) { + buffer = element; + } else if (ArrayBuffer.isView(element)) { + buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength); + } else if (element instanceof ArrayBuffer) { + buffer = Buffer.from(element); + } else if (element instanceof Blob) { + buffer = element[BUFFER]; + } else { + buffer = Buffer.from(typeof element === 'string' ? element : String(element)); + } + size += buffer.length; + buffers.push(buffer); + } + } + + this[BUFFER] = Buffer.concat(buffers); + + let type = options && options.type !== undefined && String(options.type).toLowerCase(); + if (type && !/[^\u0020-\u007E]/.test(type)) { + this[TYPE] = type; + } + } + get size() { + return this[BUFFER].length; + } + get type() { + return this[TYPE]; + } + text() { + return Promise.resolve(this[BUFFER].toString()); + } + arrayBuffer() { + const buf = this[BUFFER]; + const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + return Promise.resolve(ab); + } + stream() { + const readable = new Readable(); + readable._read = function () {}; + readable.push(this[BUFFER]); + readable.push(null); + return readable; + } + toString() { + return '[object Blob]'; + } + slice() { + const size = this.size; + + const start = arguments[0]; + const end = arguments[1]; + let relativeStart, relativeEnd; + if (start === undefined) { + relativeStart = 0; + } else if (start < 0) { + relativeStart = Math.max(size + start, 0); + } else { + relativeStart = Math.min(start, size); + } + if (end === undefined) { + relativeEnd = size; + } else if (end < 0) { + relativeEnd = Math.max(size + end, 0); + } else { + relativeEnd = Math.min(end, size); + } + const span = Math.max(relativeEnd - relativeStart, 0); + + const buffer = this[BUFFER]; + const slicedBuffer = buffer.slice(relativeStart, relativeStart + span); + const blob = new Blob([], { type: arguments[2] }); + blob[BUFFER] = slicedBuffer; + return blob; + } +} + +Object.defineProperties(Blob.prototype, { + size: { enumerable: true }, + type: { enumerable: true }, + slice: { enumerable: true } +}); + +Object.defineProperty(Blob.prototype, Symbol.toStringTag, { + value: 'Blob', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * fetch-error.js + * + * FetchError interface for operational errors + */ + +/** + * Create FetchError instance + * + * @param String message Error message for human + * @param String type Error type for machine + * @param String systemError For Node.js system error + * @return FetchError + */ +function FetchError(message, type, systemError) { + Error.call(this, message); + + this.message = message; + this.type = type; + + // when err.type is `system`, err.code contains system error code + if (systemError) { + this.code = this.errno = systemError.code; + } + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +FetchError.prototype = Object.create(Error.prototype); +FetchError.prototype.constructor = FetchError; +FetchError.prototype.name = 'FetchError'; + +let convert; +try { + convert = require('encoding').convert; +} catch (e) {} + +const INTERNALS = Symbol('Body internals'); + +// fix an issue where "PassThrough" isn't a named export for node <10 +const PassThrough = Stream.PassThrough; + +/** + * Body mixin + * + * Ref: https://fetch.spec.whatwg.org/#body + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +function Body(body) { + var _this = this; + + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref$size = _ref.size; + + let size = _ref$size === undefined ? 0 : _ref$size; + var _ref$timeout = _ref.timeout; + let timeout = _ref$timeout === undefined ? 0 : _ref$timeout; + + if (body == null) { + // body is undefined or null + body = null; + } else if (isURLSearchParams(body)) { + // body is a URLSearchParams + body = Buffer.from(body.toString()); + } else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') { + // body is ArrayBuffer + body = Buffer.from(body); + } else if (ArrayBuffer.isView(body)) { + // body is ArrayBufferView + body = Buffer.from(body.buffer, body.byteOffset, body.byteLength); + } else if (body instanceof Stream) ; else { + // none of the above + // coerce to string then buffer + body = Buffer.from(String(body)); + } + this[INTERNALS] = { + body, + disturbed: false, + error: null + }; + this.size = size; + this.timeout = timeout; + + if (body instanceof Stream) { + body.on('error', function (err) { + const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err); + _this[INTERNALS].error = error; + }); + } +} + +Body.prototype = { + get body() { + return this[INTERNALS].body; + }, + + get bodyUsed() { + return this[INTERNALS].disturbed; + }, + + /** + * Decode response as ArrayBuffer + * + * @return Promise + */ + arrayBuffer() { + return consumeBody.call(this).then(function (buf) { + return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + }); + }, + + /** + * Return raw response as Blob + * + * @return Promise + */ + blob() { + let ct = this.headers && this.headers.get('content-type') || ''; + return consumeBody.call(this).then(function (buf) { + return Object.assign( + // Prevent copying + new Blob([], { + type: ct.toLowerCase() + }), { + [BUFFER]: buf + }); + }); + }, + + /** + * Decode response as json + * + * @return Promise + */ + json() { + var _this2 = this; + + return consumeBody.call(this).then(function (buffer) { + try { + return JSON.parse(buffer.toString()); + } catch (err) { + return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json')); + } + }); + }, + + /** + * Decode response as text + * + * @return Promise + */ + text() { + return consumeBody.call(this).then(function (buffer) { + return buffer.toString(); + }); + }, + + /** + * Decode response as buffer (non-spec api) + * + * @return Promise + */ + buffer() { + return consumeBody.call(this); + }, + + /** + * Decode response as text, while automatically detecting the encoding and + * trying to decode to UTF-8 (non-spec api) + * + * @return Promise + */ + textConverted() { + var _this3 = this; + + return consumeBody.call(this).then(function (buffer) { + return convertBody(buffer, _this3.headers); + }); + } +}; + +// In browsers, all properties are enumerable. +Object.defineProperties(Body.prototype, { + body: { enumerable: true }, + bodyUsed: { enumerable: true }, + arrayBuffer: { enumerable: true }, + blob: { enumerable: true }, + json: { enumerable: true }, + text: { enumerable: true } +}); + +Body.mixIn = function (proto) { + for (const name of Object.getOwnPropertyNames(Body.prototype)) { + // istanbul ignore else: future proof + if (!(name in proto)) { + const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); + Object.defineProperty(proto, name, desc); + } + } +}; + +/** + * Consume and convert an entire Body to a Buffer. + * + * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body + * + * @return Promise + */ +function consumeBody() { + var _this4 = this; + + if (this[INTERNALS].disturbed) { + return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`)); + } + + this[INTERNALS].disturbed = true; + + if (this[INTERNALS].error) { + return Body.Promise.reject(this[INTERNALS].error); + } + + let body = this.body; + + // body is null + if (body === null) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is blob + if (isBlob(body)) { + body = body.stream(); + } + + // body is buffer + if (Buffer.isBuffer(body)) { + return Body.Promise.resolve(body); + } + + // istanbul ignore if: should never happen + if (!(body instanceof Stream)) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is stream + // get ready to actually consume the body + let accum = []; + let accumBytes = 0; + let abort = false; + + return new Body.Promise(function (resolve, reject) { + let resTimeout; + + // allow timeout on slow response body + if (_this4.timeout) { + resTimeout = setTimeout(function () { + abort = true; + reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout')); + }, _this4.timeout); + } + + // handle stream errors + body.on('error', function (err) { + if (err.name === 'AbortError') { + // if the request was aborted, reject with this Error + abort = true; + reject(err); + } else { + // other errors, such as incorrect content-encoding + reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + + body.on('data', function (chunk) { + if (abort || chunk === null) { + return; + } + + if (_this4.size && accumBytes + chunk.length > _this4.size) { + abort = true; + reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size')); + return; + } + + accumBytes += chunk.length; + accum.push(chunk); + }); + + body.on('end', function () { + if (abort) { + return; + } + + clearTimeout(resTimeout); + + try { + resolve(Buffer.concat(accum, accumBytes)); + } catch (err) { + // handle streams that have accumulated too much data (issue #414) + reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + }); +} + +/** + * Detect buffer encoding and convert to target encoding + * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding + * + * @param Buffer buffer Incoming buffer + * @param String encoding Target encoding + * @return String + */ +function convertBody(buffer, headers) { + if (typeof convert !== 'function') { + throw new Error('The package `encoding` must be installed to use the textConverted() function'); + } + + const ct = headers.get('content-type'); + let charset = 'utf-8'; + let res, str; + + // header + if (ct) { + res = /charset=([^;]*)/i.exec(ct); + } + + // no charset in content type, peek at response body for at most 1024 bytes + str = buffer.slice(0, 1024).toString(); + + // html5 + if (!res && str) { + res = / 0 && arguments[0] !== undefined ? arguments[0] : undefined; + + this[MAP] = Object.create(null); + + if (init instanceof Headers) { + const rawHeaders = init.raw(); + const headerNames = Object.keys(rawHeaders); + + for (const headerName of headerNames) { + for (const value of rawHeaders[headerName]) { + this.append(headerName, value); + } + } + + return; + } + + // We don't worry about converting prop to ByteString here as append() + // will handle it. + if (init == null) ; else if (typeof init === 'object') { + const method = init[Symbol.iterator]; + if (method != null) { + if (typeof method !== 'function') { + throw new TypeError('Header pairs must be iterable'); + } + + // sequence> + // Note: per spec we have to first exhaust the lists then process them + const pairs = []; + for (const pair of init) { + if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') { + throw new TypeError('Each header pair must be iterable'); + } + pairs.push(Array.from(pair)); + } + + for (const pair of pairs) { + if (pair.length !== 2) { + throw new TypeError('Each header pair must be a name/value tuple'); + } + this.append(pair[0], pair[1]); + } + } else { + // record + for (const key of Object.keys(init)) { + const value = init[key]; + this.append(key, value); + } + } + } else { + throw new TypeError('Provided initializer must be an object'); + } + } + + /** + * Return combined header value given name + * + * @param String name Header name + * @return Mixed + */ + get(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key === undefined) { + return null; + } + + return this[MAP][key].join(', '); + } + + /** + * Iterate over all headers + * + * @param Function callback Executed for each item with parameters (value, name, thisArg) + * @param Boolean thisArg `this` context for callback function + * @return Void + */ + forEach(callback) { + let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; + + let pairs = getHeaders(this); + let i = 0; + while (i < pairs.length) { + var _pairs$i = pairs[i]; + const name = _pairs$i[0], + value = _pairs$i[1]; + + callback.call(thisArg, value, name, this); + pairs = getHeaders(this); + i++; + } + } + + /** + * Overwrite header values given name + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + set(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + this[MAP][key !== undefined ? key : name] = [value]; + } + + /** + * Append a value onto existing header + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + append(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + if (key !== undefined) { + this[MAP][key].push(value); + } else { + this[MAP][name] = [value]; + } + } + + /** + * Check for header name existence + * + * @param String name Header name + * @return Boolean + */ + has(name) { + name = `${name}`; + validateName(name); + return find(this[MAP], name) !== undefined; + } + + /** + * Delete all header values given name + * + * @param String name Header name + * @return Void + */ + delete(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key !== undefined) { + delete this[MAP][key]; + } + } + + /** + * Return raw headers (non-spec api) + * + * @return Object + */ + raw() { + return this[MAP]; + } + + /** + * Get an iterator on keys. + * + * @return Iterator + */ + keys() { + return createHeadersIterator(this, 'key'); + } + + /** + * Get an iterator on values. + * + * @return Iterator + */ + values() { + return createHeadersIterator(this, 'value'); + } + + /** + * Get an iterator on entries. + * + * This is the default iterator of the Headers object. + * + * @return Iterator + */ + [Symbol.iterator]() { + return createHeadersIterator(this, 'key+value'); + } +} +Headers.prototype.entries = Headers.prototype[Symbol.iterator]; + +Object.defineProperty(Headers.prototype, Symbol.toStringTag, { + value: 'Headers', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Headers.prototype, { + get: { enumerable: true }, + forEach: { enumerable: true }, + set: { enumerable: true }, + append: { enumerable: true }, + has: { enumerable: true }, + delete: { enumerable: true }, + keys: { enumerable: true }, + values: { enumerable: true }, + entries: { enumerable: true } +}); + +function getHeaders(headers) { + let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value'; + + const keys = Object.keys(headers[MAP]).sort(); + return keys.map(kind === 'key' ? function (k) { + return k.toLowerCase(); + } : kind === 'value' ? function (k) { + return headers[MAP][k].join(', '); + } : function (k) { + return [k.toLowerCase(), headers[MAP][k].join(', ')]; + }); +} + +const INTERNAL = Symbol('internal'); + +function createHeadersIterator(target, kind) { + const iterator = Object.create(HeadersIteratorPrototype); + iterator[INTERNAL] = { + target, + kind, + index: 0 + }; + return iterator; +} + +const HeadersIteratorPrototype = Object.setPrototypeOf({ + next() { + // istanbul ignore if + if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) { + throw new TypeError('Value of `this` is not a HeadersIterator'); + } + + var _INTERNAL = this[INTERNAL]; + const target = _INTERNAL.target, + kind = _INTERNAL.kind, + index = _INTERNAL.index; + + const values = getHeaders(target, kind); + const len = values.length; + if (index >= len) { + return { + value: undefined, + done: true + }; + } + + this[INTERNAL].index = index + 1; + + return { + value: values[index], + done: false + }; + } +}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))); + +Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, { + value: 'HeadersIterator', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * Export the Headers object in a form that Node.js can consume. + * + * @param Headers headers + * @return Object + */ +function exportNodeCompatibleHeaders(headers) { + const obj = Object.assign({ __proto__: null }, headers[MAP]); + + // http.request() only supports string as Host header. This hack makes + // specifying custom Host header possible. + const hostHeaderKey = find(headers[MAP], 'Host'); + if (hostHeaderKey !== undefined) { + obj[hostHeaderKey] = obj[hostHeaderKey][0]; + } + + return obj; +} + +/** + * Create a Headers object from an object of headers, ignoring those that do + * not conform to HTTP grammar productions. + * + * @param Object obj Object of headers + * @return Headers + */ +function createHeadersLenient(obj) { + const headers = new Headers(); + for (const name of Object.keys(obj)) { + if (invalidTokenRegex.test(name)) { + continue; + } + if (Array.isArray(obj[name])) { + for (const val of obj[name]) { + if (invalidHeaderCharRegex.test(val)) { + continue; + } + if (headers[MAP][name] === undefined) { + headers[MAP][name] = [val]; + } else { + headers[MAP][name].push(val); + } + } + } else if (!invalidHeaderCharRegex.test(obj[name])) { + headers[MAP][name] = [obj[name]]; + } + } + return headers; +} + +const INTERNALS$1 = Symbol('Response internals'); + +// fix an issue where "STATUS_CODES" aren't a named export for node <10 +const STATUS_CODES = http.STATUS_CODES; + +/** + * Response class + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +class Response { + constructor() { + let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + Body.call(this, body, opts); + + const status = opts.status || 200; + const headers = new Headers(opts.headers); + + if (body != null && !headers.has('Content-Type')) { + const contentType = extractContentType(body); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + this[INTERNALS$1] = { + url: opts.url, + status, + statusText: opts.statusText || STATUS_CODES[status], + headers, + counter: opts.counter + }; + } + + get url() { + return this[INTERNALS$1].url || ''; + } + + get status() { + return this[INTERNALS$1].status; + } + + /** + * Convenience property representing if the request ended normally + */ + get ok() { + return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300; + } + + get redirected() { + return this[INTERNALS$1].counter > 0; + } + + get statusText() { + return this[INTERNALS$1].statusText; + } + + get headers() { + return this[INTERNALS$1].headers; + } + + /** + * Clone this response + * + * @return Response + */ + clone() { + return new Response(clone(this), { + url: this.url, + status: this.status, + statusText: this.statusText, + headers: this.headers, + ok: this.ok, + redirected: this.redirected + }); + } +} + +Body.mixIn(Response.prototype); + +Object.defineProperties(Response.prototype, { + url: { enumerable: true }, + status: { enumerable: true }, + ok: { enumerable: true }, + redirected: { enumerable: true }, + statusText: { enumerable: true }, + headers: { enumerable: true }, + clone: { enumerable: true } +}); + +Object.defineProperty(Response.prototype, Symbol.toStringTag, { + value: 'Response', + writable: false, + enumerable: false, + configurable: true +}); + +const INTERNALS$2 = Symbol('Request internals'); + +// fix an issue where "format", "parse" aren't a named export for node <10 +const parse_url = Url.parse; +const format_url = Url.format; + +const streamDestructionSupported = 'destroy' in Stream.Readable.prototype; + +/** + * Check if a value is an instance of Request. + * + * @param Mixed input + * @return Boolean + */ +function isRequest(input) { + return typeof input === 'object' && typeof input[INTERNALS$2] === 'object'; +} + +function isAbortSignal(signal) { + const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal); + return !!(proto && proto.constructor.name === 'AbortSignal'); +} + +/** + * Request class + * + * @param Mixed input Url or Request instance + * @param Object init Custom options + * @return Void + */ +class Request { + constructor(input) { + let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + let parsedURL; + + // normalize input + if (!isRequest(input)) { + if (input && input.href) { + // in order to support Node.js' Url objects; though WHATWG's URL objects + // will fall into this branch also (since their `toString()` will return + // `href` property anyway) + parsedURL = parse_url(input.href); + } else { + // coerce input to a string before attempting to parse + parsedURL = parse_url(`${input}`); + } + input = {}; + } else { + parsedURL = parse_url(input.url); + } + + let method = init.method || input.method || 'GET'; + method = method.toUpperCase(); + + if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) { + throw new TypeError('Request with GET/HEAD method cannot have body'); + } + + let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null; + + Body.call(this, inputBody, { + timeout: init.timeout || input.timeout || 0, + size: init.size || input.size || 0 + }); + + const headers = new Headers(init.headers || input.headers || {}); + + if (inputBody != null && !headers.has('Content-Type')) { + const contentType = extractContentType(inputBody); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + let signal = isRequest(input) ? input.signal : null; + if ('signal' in init) signal = init.signal; + + if (signal != null && !isAbortSignal(signal)) { + throw new TypeError('Expected signal to be an instanceof AbortSignal'); + } + + this[INTERNALS$2] = { + method, + redirect: init.redirect || input.redirect || 'follow', + headers, + parsedURL, + signal + }; + + // node-fetch-only options + this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20; + this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true; + this.counter = init.counter || input.counter || 0; + this.agent = init.agent || input.agent; + } + + get method() { + return this[INTERNALS$2].method; + } + + get url() { + return format_url(this[INTERNALS$2].parsedURL); + } + + get headers() { + return this[INTERNALS$2].headers; + } + + get redirect() { + return this[INTERNALS$2].redirect; + } + + get signal() { + return this[INTERNALS$2].signal; + } + + /** + * Clone this request + * + * @return Request + */ + clone() { + return new Request(this); + } +} + +Body.mixIn(Request.prototype); + +Object.defineProperty(Request.prototype, Symbol.toStringTag, { + value: 'Request', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Request.prototype, { + method: { enumerable: true }, + url: { enumerable: true }, + headers: { enumerable: true }, + redirect: { enumerable: true }, + clone: { enumerable: true }, + signal: { enumerable: true } +}); + +/** + * Convert a Request to Node.js http request options. + * + * @param Request A Request instance + * @return Object The options object to be passed to http.request + */ +function getNodeRequestOptions(request) { + const parsedURL = request[INTERNALS$2].parsedURL; + const headers = new Headers(request[INTERNALS$2].headers); + + // fetch step 1.3 + if (!headers.has('Accept')) { + headers.set('Accept', '*/*'); + } + + // Basic fetch + if (!parsedURL.protocol || !parsedURL.hostname) { + throw new TypeError('Only absolute URLs are supported'); + } + + if (!/^https?:$/.test(parsedURL.protocol)) { + throw new TypeError('Only HTTP(S) protocols are supported'); + } + + if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) { + throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8'); + } + + // HTTP-network-or-cache fetch steps 2.4-2.7 + let contentLengthValue = null; + if (request.body == null && /^(POST|PUT)$/i.test(request.method)) { + contentLengthValue = '0'; + } + if (request.body != null) { + const totalBytes = getTotalBytes(request); + if (typeof totalBytes === 'number') { + contentLengthValue = String(totalBytes); + } + } + if (contentLengthValue) { + headers.set('Content-Length', contentLengthValue); + } + + // HTTP-network-or-cache fetch step 2.11 + if (!headers.has('User-Agent')) { + headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)'); + } + + // HTTP-network-or-cache fetch step 2.15 + if (request.compress && !headers.has('Accept-Encoding')) { + headers.set('Accept-Encoding', 'gzip,deflate'); + } + + let agent = request.agent; + if (typeof agent === 'function') { + agent = agent(parsedURL); + } + + if (!headers.has('Connection') && !agent) { + headers.set('Connection', 'close'); + } + + // HTTP-network fetch step 4.2 + // chunked encoding is handled by Node.js + + return Object.assign({}, parsedURL, { + method: request.method, + headers: exportNodeCompatibleHeaders(headers), + agent + }); +} + +/** + * abort-error.js + * + * AbortError interface for cancelled requests + */ + +/** + * Create AbortError instance + * + * @param String message Error message for human + * @return AbortError + */ +function AbortError(message) { + Error.call(this, message); + + this.type = 'aborted'; + this.message = message; + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +AbortError.prototype = Object.create(Error.prototype); +AbortError.prototype.constructor = AbortError; +AbortError.prototype.name = 'AbortError'; + +// fix an issue where "PassThrough", "resolve" aren't a named export for node <10 +const PassThrough$1 = Stream.PassThrough; +const resolve_url = Url.resolve; + +/** + * Fetch function + * + * @param Mixed url Absolute url or Request instance + * @param Object opts Fetch options + * @return Promise + */ +function fetch(url, opts) { + + // allow custom promise + if (!fetch.Promise) { + throw new Error('native promise missing, set fetch.Promise to your favorite alternative'); + } + + Body.Promise = fetch.Promise; + + // wrap http.request into fetch + return new fetch.Promise(function (resolve, reject) { + // build request object + const request = new Request(url, opts); + const options = getNodeRequestOptions(request); + + const send = (options.protocol === 'https:' ? https : http).request; + const signal = request.signal; + + let response = null; + + const abort = function abort() { + let error = new AbortError('The user aborted a request.'); + reject(error); + if (request.body && request.body instanceof Stream.Readable) { + request.body.destroy(error); + } + if (!response || !response.body) return; + response.body.emit('error', error); + }; + + if (signal && signal.aborted) { + abort(); + return; + } + + const abortAndFinalize = function abortAndFinalize() { + abort(); + finalize(); + }; + + // send request + const req = send(options); + let reqTimeout; + + if (signal) { + signal.addEventListener('abort', abortAndFinalize); + } + + function finalize() { + req.abort(); + if (signal) signal.removeEventListener('abort', abortAndFinalize); + clearTimeout(reqTimeout); + } + + if (request.timeout) { + req.once('socket', function (socket) { + reqTimeout = setTimeout(function () { + reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout')); + finalize(); + }, request.timeout); + }); + } + + req.on('error', function (err) { + reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err)); + finalize(); + }); + + req.on('response', function (res) { + clearTimeout(reqTimeout); + + const headers = createHeadersLenient(res.headers); + + // HTTP fetch step 5 + if (fetch.isRedirect(res.statusCode)) { + // HTTP fetch step 5.2 + const location = headers.get('Location'); + + // HTTP fetch step 5.3 + const locationURL = location === null ? null : resolve_url(request.url, location); + + // HTTP fetch step 5.5 + switch (request.redirect) { + case 'error': + reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect')); + finalize(); + return; + case 'manual': + // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL. + if (locationURL !== null) { + // handle corrupted header + try { + headers.set('Location', locationURL); + } catch (err) { + // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request + reject(err); + } + } + break; + case 'follow': + // HTTP-redirect fetch step 2 + if (locationURL === null) { + break; + } + + // HTTP-redirect fetch step 5 + if (request.counter >= request.follow) { + reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 6 (counter increment) + // Create a new Request object. + const requestOpts = { + headers: new Headers(request.headers), + follow: request.follow, + counter: request.counter + 1, + agent: request.agent, + compress: request.compress, + method: request.method, + body: request.body, + signal: request.signal, + timeout: request.timeout, + size: request.size + }; + + // HTTP-redirect fetch step 9 + if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) { + reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 11 + if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') { + requestOpts.method = 'GET'; + requestOpts.body = undefined; + requestOpts.headers.delete('content-length'); + } + + // HTTP-redirect fetch step 15 + resolve(fetch(new Request(locationURL, requestOpts))); + finalize(); + return; + } + } + + // prepare response + res.once('end', function () { + if (signal) signal.removeEventListener('abort', abortAndFinalize); + }); + let body = res.pipe(new PassThrough$1()); + + const response_options = { + url: request.url, + status: res.statusCode, + statusText: res.statusMessage, + headers: headers, + size: request.size, + timeout: request.timeout, + counter: request.counter + }; + + // HTTP-network fetch step 12.1.1.3 + const codings = headers.get('Content-Encoding'); + + // HTTP-network fetch step 12.1.1.4: handle content codings + + // in following scenarios we ignore compression support + // 1. compression support is disabled + // 2. HEAD request + // 3. no Content-Encoding header + // 4. no content response (204) + // 5. content not modified response (304) + if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) { + response = new Response(body, response_options); + resolve(response); + return; + } + + // For Node v6+ + // Be less strict when decoding compressed responses, since sometimes + // servers send slightly invalid responses that are still accepted + // by common browsers. + // Always using Z_SYNC_FLUSH is what cURL does. + const zlibOptions = { + flush: zlib.Z_SYNC_FLUSH, + finishFlush: zlib.Z_SYNC_FLUSH + }; + + // for gzip + if (codings == 'gzip' || codings == 'x-gzip') { + body = body.pipe(zlib.createGunzip(zlibOptions)); + response = new Response(body, response_options); + resolve(response); + return; + } + + // for deflate + if (codings == 'deflate' || codings == 'x-deflate') { + // handle the infamous raw deflate response from old servers + // a hack for old IIS and Apache servers + const raw = res.pipe(new PassThrough$1()); + raw.once('data', function (chunk) { + // see http://stackoverflow.com/questions/37519828 + if ((chunk[0] & 0x0F) === 0x08) { + body = body.pipe(zlib.createInflate()); + } else { + body = body.pipe(zlib.createInflateRaw()); + } + response = new Response(body, response_options); + resolve(response); + }); + return; + } + + // for br + if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') { + body = body.pipe(zlib.createBrotliDecompress()); + response = new Response(body, response_options); + resolve(response); + return; + } + + // otherwise, use response as-is + response = new Response(body, response_options); + resolve(response); + }); + + writeToStream(req, request); + }); +} +/** + * Redirect code matching + * + * @param Number code Status code + * @return Boolean + */ +fetch.isRedirect = function (code) { + return code === 301 || code === 302 || code === 303 || code === 307 || code === 308; +}; + +// expose Promise +fetch.Promise = global.Promise; + +module.exports = exports = fetch; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = exports; +exports.Headers = Headers; +exports.Request = Request; +exports.Response = Response; +exports.FetchError = FetchError; diff --git a/Client/node_modules/node-fetch/lib/index.mjs b/Client/node_modules/node-fetch/lib/index.mjs new file mode 100644 index 000000000..ecf59af8c --- /dev/null +++ b/Client/node_modules/node-fetch/lib/index.mjs @@ -0,0 +1,1638 @@ +import Stream from 'stream'; +import http from 'http'; +import Url from 'url'; +import https from 'https'; +import zlib from 'zlib'; + +// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js + +// fix for "Readable" isn't a named export issue +const Readable = Stream.Readable; + +const BUFFER = Symbol('buffer'); +const TYPE = Symbol('type'); + +class Blob { + constructor() { + this[TYPE] = ''; + + const blobParts = arguments[0]; + const options = arguments[1]; + + const buffers = []; + let size = 0; + + if (blobParts) { + const a = blobParts; + const length = Number(a.length); + for (let i = 0; i < length; i++) { + const element = a[i]; + let buffer; + if (element instanceof Buffer) { + buffer = element; + } else if (ArrayBuffer.isView(element)) { + buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength); + } else if (element instanceof ArrayBuffer) { + buffer = Buffer.from(element); + } else if (element instanceof Blob) { + buffer = element[BUFFER]; + } else { + buffer = Buffer.from(typeof element === 'string' ? element : String(element)); + } + size += buffer.length; + buffers.push(buffer); + } + } + + this[BUFFER] = Buffer.concat(buffers); + + let type = options && options.type !== undefined && String(options.type).toLowerCase(); + if (type && !/[^\u0020-\u007E]/.test(type)) { + this[TYPE] = type; + } + } + get size() { + return this[BUFFER].length; + } + get type() { + return this[TYPE]; + } + text() { + return Promise.resolve(this[BUFFER].toString()); + } + arrayBuffer() { + const buf = this[BUFFER]; + const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + return Promise.resolve(ab); + } + stream() { + const readable = new Readable(); + readable._read = function () {}; + readable.push(this[BUFFER]); + readable.push(null); + return readable; + } + toString() { + return '[object Blob]'; + } + slice() { + const size = this.size; + + const start = arguments[0]; + const end = arguments[1]; + let relativeStart, relativeEnd; + if (start === undefined) { + relativeStart = 0; + } else if (start < 0) { + relativeStart = Math.max(size + start, 0); + } else { + relativeStart = Math.min(start, size); + } + if (end === undefined) { + relativeEnd = size; + } else if (end < 0) { + relativeEnd = Math.max(size + end, 0); + } else { + relativeEnd = Math.min(end, size); + } + const span = Math.max(relativeEnd - relativeStart, 0); + + const buffer = this[BUFFER]; + const slicedBuffer = buffer.slice(relativeStart, relativeStart + span); + const blob = new Blob([], { type: arguments[2] }); + blob[BUFFER] = slicedBuffer; + return blob; + } +} + +Object.defineProperties(Blob.prototype, { + size: { enumerable: true }, + type: { enumerable: true }, + slice: { enumerable: true } +}); + +Object.defineProperty(Blob.prototype, Symbol.toStringTag, { + value: 'Blob', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * fetch-error.js + * + * FetchError interface for operational errors + */ + +/** + * Create FetchError instance + * + * @param String message Error message for human + * @param String type Error type for machine + * @param String systemError For Node.js system error + * @return FetchError + */ +function FetchError(message, type, systemError) { + Error.call(this, message); + + this.message = message; + this.type = type; + + // when err.type is `system`, err.code contains system error code + if (systemError) { + this.code = this.errno = systemError.code; + } + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +FetchError.prototype = Object.create(Error.prototype); +FetchError.prototype.constructor = FetchError; +FetchError.prototype.name = 'FetchError'; + +let convert; +try { + convert = require('encoding').convert; +} catch (e) {} + +const INTERNALS = Symbol('Body internals'); + +// fix an issue where "PassThrough" isn't a named export for node <10 +const PassThrough = Stream.PassThrough; + +/** + * Body mixin + * + * Ref: https://fetch.spec.whatwg.org/#body + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +function Body(body) { + var _this = this; + + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref$size = _ref.size; + + let size = _ref$size === undefined ? 0 : _ref$size; + var _ref$timeout = _ref.timeout; + let timeout = _ref$timeout === undefined ? 0 : _ref$timeout; + + if (body == null) { + // body is undefined or null + body = null; + } else if (isURLSearchParams(body)) { + // body is a URLSearchParams + body = Buffer.from(body.toString()); + } else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') { + // body is ArrayBuffer + body = Buffer.from(body); + } else if (ArrayBuffer.isView(body)) { + // body is ArrayBufferView + body = Buffer.from(body.buffer, body.byteOffset, body.byteLength); + } else if (body instanceof Stream) ; else { + // none of the above + // coerce to string then buffer + body = Buffer.from(String(body)); + } + this[INTERNALS] = { + body, + disturbed: false, + error: null + }; + this.size = size; + this.timeout = timeout; + + if (body instanceof Stream) { + body.on('error', function (err) { + const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err); + _this[INTERNALS].error = error; + }); + } +} + +Body.prototype = { + get body() { + return this[INTERNALS].body; + }, + + get bodyUsed() { + return this[INTERNALS].disturbed; + }, + + /** + * Decode response as ArrayBuffer + * + * @return Promise + */ + arrayBuffer() { + return consumeBody.call(this).then(function (buf) { + return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + }); + }, + + /** + * Return raw response as Blob + * + * @return Promise + */ + blob() { + let ct = this.headers && this.headers.get('content-type') || ''; + return consumeBody.call(this).then(function (buf) { + return Object.assign( + // Prevent copying + new Blob([], { + type: ct.toLowerCase() + }), { + [BUFFER]: buf + }); + }); + }, + + /** + * Decode response as json + * + * @return Promise + */ + json() { + var _this2 = this; + + return consumeBody.call(this).then(function (buffer) { + try { + return JSON.parse(buffer.toString()); + } catch (err) { + return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json')); + } + }); + }, + + /** + * Decode response as text + * + * @return Promise + */ + text() { + return consumeBody.call(this).then(function (buffer) { + return buffer.toString(); + }); + }, + + /** + * Decode response as buffer (non-spec api) + * + * @return Promise + */ + buffer() { + return consumeBody.call(this); + }, + + /** + * Decode response as text, while automatically detecting the encoding and + * trying to decode to UTF-8 (non-spec api) + * + * @return Promise + */ + textConverted() { + var _this3 = this; + + return consumeBody.call(this).then(function (buffer) { + return convertBody(buffer, _this3.headers); + }); + } +}; + +// In browsers, all properties are enumerable. +Object.defineProperties(Body.prototype, { + body: { enumerable: true }, + bodyUsed: { enumerable: true }, + arrayBuffer: { enumerable: true }, + blob: { enumerable: true }, + json: { enumerable: true }, + text: { enumerable: true } +}); + +Body.mixIn = function (proto) { + for (const name of Object.getOwnPropertyNames(Body.prototype)) { + // istanbul ignore else: future proof + if (!(name in proto)) { + const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); + Object.defineProperty(proto, name, desc); + } + } +}; + +/** + * Consume and convert an entire Body to a Buffer. + * + * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body + * + * @return Promise + */ +function consumeBody() { + var _this4 = this; + + if (this[INTERNALS].disturbed) { + return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`)); + } + + this[INTERNALS].disturbed = true; + + if (this[INTERNALS].error) { + return Body.Promise.reject(this[INTERNALS].error); + } + + let body = this.body; + + // body is null + if (body === null) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is blob + if (isBlob(body)) { + body = body.stream(); + } + + // body is buffer + if (Buffer.isBuffer(body)) { + return Body.Promise.resolve(body); + } + + // istanbul ignore if: should never happen + if (!(body instanceof Stream)) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is stream + // get ready to actually consume the body + let accum = []; + let accumBytes = 0; + let abort = false; + + return new Body.Promise(function (resolve, reject) { + let resTimeout; + + // allow timeout on slow response body + if (_this4.timeout) { + resTimeout = setTimeout(function () { + abort = true; + reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout')); + }, _this4.timeout); + } + + // handle stream errors + body.on('error', function (err) { + if (err.name === 'AbortError') { + // if the request was aborted, reject with this Error + abort = true; + reject(err); + } else { + // other errors, such as incorrect content-encoding + reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + + body.on('data', function (chunk) { + if (abort || chunk === null) { + return; + } + + if (_this4.size && accumBytes + chunk.length > _this4.size) { + abort = true; + reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size')); + return; + } + + accumBytes += chunk.length; + accum.push(chunk); + }); + + body.on('end', function () { + if (abort) { + return; + } + + clearTimeout(resTimeout); + + try { + resolve(Buffer.concat(accum, accumBytes)); + } catch (err) { + // handle streams that have accumulated too much data (issue #414) + reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + }); +} + +/** + * Detect buffer encoding and convert to target encoding + * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding + * + * @param Buffer buffer Incoming buffer + * @param String encoding Target encoding + * @return String + */ +function convertBody(buffer, headers) { + if (typeof convert !== 'function') { + throw new Error('The package `encoding` must be installed to use the textConverted() function'); + } + + const ct = headers.get('content-type'); + let charset = 'utf-8'; + let res, str; + + // header + if (ct) { + res = /charset=([^;]*)/i.exec(ct); + } + + // no charset in content type, peek at response body for at most 1024 bytes + str = buffer.slice(0, 1024).toString(); + + // html5 + if (!res && str) { + res = / 0 && arguments[0] !== undefined ? arguments[0] : undefined; + + this[MAP] = Object.create(null); + + if (init instanceof Headers) { + const rawHeaders = init.raw(); + const headerNames = Object.keys(rawHeaders); + + for (const headerName of headerNames) { + for (const value of rawHeaders[headerName]) { + this.append(headerName, value); + } + } + + return; + } + + // We don't worry about converting prop to ByteString here as append() + // will handle it. + if (init == null) ; else if (typeof init === 'object') { + const method = init[Symbol.iterator]; + if (method != null) { + if (typeof method !== 'function') { + throw new TypeError('Header pairs must be iterable'); + } + + // sequence> + // Note: per spec we have to first exhaust the lists then process them + const pairs = []; + for (const pair of init) { + if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') { + throw new TypeError('Each header pair must be iterable'); + } + pairs.push(Array.from(pair)); + } + + for (const pair of pairs) { + if (pair.length !== 2) { + throw new TypeError('Each header pair must be a name/value tuple'); + } + this.append(pair[0], pair[1]); + } + } else { + // record + for (const key of Object.keys(init)) { + const value = init[key]; + this.append(key, value); + } + } + } else { + throw new TypeError('Provided initializer must be an object'); + } + } + + /** + * Return combined header value given name + * + * @param String name Header name + * @return Mixed + */ + get(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key === undefined) { + return null; + } + + return this[MAP][key].join(', '); + } + + /** + * Iterate over all headers + * + * @param Function callback Executed for each item with parameters (value, name, thisArg) + * @param Boolean thisArg `this` context for callback function + * @return Void + */ + forEach(callback) { + let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; + + let pairs = getHeaders(this); + let i = 0; + while (i < pairs.length) { + var _pairs$i = pairs[i]; + const name = _pairs$i[0], + value = _pairs$i[1]; + + callback.call(thisArg, value, name, this); + pairs = getHeaders(this); + i++; + } + } + + /** + * Overwrite header values given name + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + set(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + this[MAP][key !== undefined ? key : name] = [value]; + } + + /** + * Append a value onto existing header + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + append(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + if (key !== undefined) { + this[MAP][key].push(value); + } else { + this[MAP][name] = [value]; + } + } + + /** + * Check for header name existence + * + * @param String name Header name + * @return Boolean + */ + has(name) { + name = `${name}`; + validateName(name); + return find(this[MAP], name) !== undefined; + } + + /** + * Delete all header values given name + * + * @param String name Header name + * @return Void + */ + delete(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key !== undefined) { + delete this[MAP][key]; + } + } + + /** + * Return raw headers (non-spec api) + * + * @return Object + */ + raw() { + return this[MAP]; + } + + /** + * Get an iterator on keys. + * + * @return Iterator + */ + keys() { + return createHeadersIterator(this, 'key'); + } + + /** + * Get an iterator on values. + * + * @return Iterator + */ + values() { + return createHeadersIterator(this, 'value'); + } + + /** + * Get an iterator on entries. + * + * This is the default iterator of the Headers object. + * + * @return Iterator + */ + [Symbol.iterator]() { + return createHeadersIterator(this, 'key+value'); + } +} +Headers.prototype.entries = Headers.prototype[Symbol.iterator]; + +Object.defineProperty(Headers.prototype, Symbol.toStringTag, { + value: 'Headers', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Headers.prototype, { + get: { enumerable: true }, + forEach: { enumerable: true }, + set: { enumerable: true }, + append: { enumerable: true }, + has: { enumerable: true }, + delete: { enumerable: true }, + keys: { enumerable: true }, + values: { enumerable: true }, + entries: { enumerable: true } +}); + +function getHeaders(headers) { + let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value'; + + const keys = Object.keys(headers[MAP]).sort(); + return keys.map(kind === 'key' ? function (k) { + return k.toLowerCase(); + } : kind === 'value' ? function (k) { + return headers[MAP][k].join(', '); + } : function (k) { + return [k.toLowerCase(), headers[MAP][k].join(', ')]; + }); +} + +const INTERNAL = Symbol('internal'); + +function createHeadersIterator(target, kind) { + const iterator = Object.create(HeadersIteratorPrototype); + iterator[INTERNAL] = { + target, + kind, + index: 0 + }; + return iterator; +} + +const HeadersIteratorPrototype = Object.setPrototypeOf({ + next() { + // istanbul ignore if + if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) { + throw new TypeError('Value of `this` is not a HeadersIterator'); + } + + var _INTERNAL = this[INTERNAL]; + const target = _INTERNAL.target, + kind = _INTERNAL.kind, + index = _INTERNAL.index; + + const values = getHeaders(target, kind); + const len = values.length; + if (index >= len) { + return { + value: undefined, + done: true + }; + } + + this[INTERNAL].index = index + 1; + + return { + value: values[index], + done: false + }; + } +}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))); + +Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, { + value: 'HeadersIterator', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * Export the Headers object in a form that Node.js can consume. + * + * @param Headers headers + * @return Object + */ +function exportNodeCompatibleHeaders(headers) { + const obj = Object.assign({ __proto__: null }, headers[MAP]); + + // http.request() only supports string as Host header. This hack makes + // specifying custom Host header possible. + const hostHeaderKey = find(headers[MAP], 'Host'); + if (hostHeaderKey !== undefined) { + obj[hostHeaderKey] = obj[hostHeaderKey][0]; + } + + return obj; +} + +/** + * Create a Headers object from an object of headers, ignoring those that do + * not conform to HTTP grammar productions. + * + * @param Object obj Object of headers + * @return Headers + */ +function createHeadersLenient(obj) { + const headers = new Headers(); + for (const name of Object.keys(obj)) { + if (invalidTokenRegex.test(name)) { + continue; + } + if (Array.isArray(obj[name])) { + for (const val of obj[name]) { + if (invalidHeaderCharRegex.test(val)) { + continue; + } + if (headers[MAP][name] === undefined) { + headers[MAP][name] = [val]; + } else { + headers[MAP][name].push(val); + } + } + } else if (!invalidHeaderCharRegex.test(obj[name])) { + headers[MAP][name] = [obj[name]]; + } + } + return headers; +} + +const INTERNALS$1 = Symbol('Response internals'); + +// fix an issue where "STATUS_CODES" aren't a named export for node <10 +const STATUS_CODES = http.STATUS_CODES; + +/** + * Response class + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +class Response { + constructor() { + let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + Body.call(this, body, opts); + + const status = opts.status || 200; + const headers = new Headers(opts.headers); + + if (body != null && !headers.has('Content-Type')) { + const contentType = extractContentType(body); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + this[INTERNALS$1] = { + url: opts.url, + status, + statusText: opts.statusText || STATUS_CODES[status], + headers, + counter: opts.counter + }; + } + + get url() { + return this[INTERNALS$1].url || ''; + } + + get status() { + return this[INTERNALS$1].status; + } + + /** + * Convenience property representing if the request ended normally + */ + get ok() { + return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300; + } + + get redirected() { + return this[INTERNALS$1].counter > 0; + } + + get statusText() { + return this[INTERNALS$1].statusText; + } + + get headers() { + return this[INTERNALS$1].headers; + } + + /** + * Clone this response + * + * @return Response + */ + clone() { + return new Response(clone(this), { + url: this.url, + status: this.status, + statusText: this.statusText, + headers: this.headers, + ok: this.ok, + redirected: this.redirected + }); + } +} + +Body.mixIn(Response.prototype); + +Object.defineProperties(Response.prototype, { + url: { enumerable: true }, + status: { enumerable: true }, + ok: { enumerable: true }, + redirected: { enumerable: true }, + statusText: { enumerable: true }, + headers: { enumerable: true }, + clone: { enumerable: true } +}); + +Object.defineProperty(Response.prototype, Symbol.toStringTag, { + value: 'Response', + writable: false, + enumerable: false, + configurable: true +}); + +const INTERNALS$2 = Symbol('Request internals'); + +// fix an issue where "format", "parse" aren't a named export for node <10 +const parse_url = Url.parse; +const format_url = Url.format; + +const streamDestructionSupported = 'destroy' in Stream.Readable.prototype; + +/** + * Check if a value is an instance of Request. + * + * @param Mixed input + * @return Boolean + */ +function isRequest(input) { + return typeof input === 'object' && typeof input[INTERNALS$2] === 'object'; +} + +function isAbortSignal(signal) { + const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal); + return !!(proto && proto.constructor.name === 'AbortSignal'); +} + +/** + * Request class + * + * @param Mixed input Url or Request instance + * @param Object init Custom options + * @return Void + */ +class Request { + constructor(input) { + let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + let parsedURL; + + // normalize input + if (!isRequest(input)) { + if (input && input.href) { + // in order to support Node.js' Url objects; though WHATWG's URL objects + // will fall into this branch also (since their `toString()` will return + // `href` property anyway) + parsedURL = parse_url(input.href); + } else { + // coerce input to a string before attempting to parse + parsedURL = parse_url(`${input}`); + } + input = {}; + } else { + parsedURL = parse_url(input.url); + } + + let method = init.method || input.method || 'GET'; + method = method.toUpperCase(); + + if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) { + throw new TypeError('Request with GET/HEAD method cannot have body'); + } + + let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null; + + Body.call(this, inputBody, { + timeout: init.timeout || input.timeout || 0, + size: init.size || input.size || 0 + }); + + const headers = new Headers(init.headers || input.headers || {}); + + if (inputBody != null && !headers.has('Content-Type')) { + const contentType = extractContentType(inputBody); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + let signal = isRequest(input) ? input.signal : null; + if ('signal' in init) signal = init.signal; + + if (signal != null && !isAbortSignal(signal)) { + throw new TypeError('Expected signal to be an instanceof AbortSignal'); + } + + this[INTERNALS$2] = { + method, + redirect: init.redirect || input.redirect || 'follow', + headers, + parsedURL, + signal + }; + + // node-fetch-only options + this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20; + this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true; + this.counter = init.counter || input.counter || 0; + this.agent = init.agent || input.agent; + } + + get method() { + return this[INTERNALS$2].method; + } + + get url() { + return format_url(this[INTERNALS$2].parsedURL); + } + + get headers() { + return this[INTERNALS$2].headers; + } + + get redirect() { + return this[INTERNALS$2].redirect; + } + + get signal() { + return this[INTERNALS$2].signal; + } + + /** + * Clone this request + * + * @return Request + */ + clone() { + return new Request(this); + } +} + +Body.mixIn(Request.prototype); + +Object.defineProperty(Request.prototype, Symbol.toStringTag, { + value: 'Request', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Request.prototype, { + method: { enumerable: true }, + url: { enumerable: true }, + headers: { enumerable: true }, + redirect: { enumerable: true }, + clone: { enumerable: true }, + signal: { enumerable: true } +}); + +/** + * Convert a Request to Node.js http request options. + * + * @param Request A Request instance + * @return Object The options object to be passed to http.request + */ +function getNodeRequestOptions(request) { + const parsedURL = request[INTERNALS$2].parsedURL; + const headers = new Headers(request[INTERNALS$2].headers); + + // fetch step 1.3 + if (!headers.has('Accept')) { + headers.set('Accept', '*/*'); + } + + // Basic fetch + if (!parsedURL.protocol || !parsedURL.hostname) { + throw new TypeError('Only absolute URLs are supported'); + } + + if (!/^https?:$/.test(parsedURL.protocol)) { + throw new TypeError('Only HTTP(S) protocols are supported'); + } + + if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) { + throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8'); + } + + // HTTP-network-or-cache fetch steps 2.4-2.7 + let contentLengthValue = null; + if (request.body == null && /^(POST|PUT)$/i.test(request.method)) { + contentLengthValue = '0'; + } + if (request.body != null) { + const totalBytes = getTotalBytes(request); + if (typeof totalBytes === 'number') { + contentLengthValue = String(totalBytes); + } + } + if (contentLengthValue) { + headers.set('Content-Length', contentLengthValue); + } + + // HTTP-network-or-cache fetch step 2.11 + if (!headers.has('User-Agent')) { + headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)'); + } + + // HTTP-network-or-cache fetch step 2.15 + if (request.compress && !headers.has('Accept-Encoding')) { + headers.set('Accept-Encoding', 'gzip,deflate'); + } + + let agent = request.agent; + if (typeof agent === 'function') { + agent = agent(parsedURL); + } + + if (!headers.has('Connection') && !agent) { + headers.set('Connection', 'close'); + } + + // HTTP-network fetch step 4.2 + // chunked encoding is handled by Node.js + + return Object.assign({}, parsedURL, { + method: request.method, + headers: exportNodeCompatibleHeaders(headers), + agent + }); +} + +/** + * abort-error.js + * + * AbortError interface for cancelled requests + */ + +/** + * Create AbortError instance + * + * @param String message Error message for human + * @return AbortError + */ +function AbortError(message) { + Error.call(this, message); + + this.type = 'aborted'; + this.message = message; + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +AbortError.prototype = Object.create(Error.prototype); +AbortError.prototype.constructor = AbortError; +AbortError.prototype.name = 'AbortError'; + +// fix an issue where "PassThrough", "resolve" aren't a named export for node <10 +const PassThrough$1 = Stream.PassThrough; +const resolve_url = Url.resolve; + +/** + * Fetch function + * + * @param Mixed url Absolute url or Request instance + * @param Object opts Fetch options + * @return Promise + */ +function fetch(url, opts) { + + // allow custom promise + if (!fetch.Promise) { + throw new Error('native promise missing, set fetch.Promise to your favorite alternative'); + } + + Body.Promise = fetch.Promise; + + // wrap http.request into fetch + return new fetch.Promise(function (resolve, reject) { + // build request object + const request = new Request(url, opts); + const options = getNodeRequestOptions(request); + + const send = (options.protocol === 'https:' ? https : http).request; + const signal = request.signal; + + let response = null; + + const abort = function abort() { + let error = new AbortError('The user aborted a request.'); + reject(error); + if (request.body && request.body instanceof Stream.Readable) { + request.body.destroy(error); + } + if (!response || !response.body) return; + response.body.emit('error', error); + }; + + if (signal && signal.aborted) { + abort(); + return; + } + + const abortAndFinalize = function abortAndFinalize() { + abort(); + finalize(); + }; + + // send request + const req = send(options); + let reqTimeout; + + if (signal) { + signal.addEventListener('abort', abortAndFinalize); + } + + function finalize() { + req.abort(); + if (signal) signal.removeEventListener('abort', abortAndFinalize); + clearTimeout(reqTimeout); + } + + if (request.timeout) { + req.once('socket', function (socket) { + reqTimeout = setTimeout(function () { + reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout')); + finalize(); + }, request.timeout); + }); + } + + req.on('error', function (err) { + reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err)); + finalize(); + }); + + req.on('response', function (res) { + clearTimeout(reqTimeout); + + const headers = createHeadersLenient(res.headers); + + // HTTP fetch step 5 + if (fetch.isRedirect(res.statusCode)) { + // HTTP fetch step 5.2 + const location = headers.get('Location'); + + // HTTP fetch step 5.3 + const locationURL = location === null ? null : resolve_url(request.url, location); + + // HTTP fetch step 5.5 + switch (request.redirect) { + case 'error': + reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect')); + finalize(); + return; + case 'manual': + // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL. + if (locationURL !== null) { + // handle corrupted header + try { + headers.set('Location', locationURL); + } catch (err) { + // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request + reject(err); + } + } + break; + case 'follow': + // HTTP-redirect fetch step 2 + if (locationURL === null) { + break; + } + + // HTTP-redirect fetch step 5 + if (request.counter >= request.follow) { + reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 6 (counter increment) + // Create a new Request object. + const requestOpts = { + headers: new Headers(request.headers), + follow: request.follow, + counter: request.counter + 1, + agent: request.agent, + compress: request.compress, + method: request.method, + body: request.body, + signal: request.signal, + timeout: request.timeout, + size: request.size + }; + + // HTTP-redirect fetch step 9 + if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) { + reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 11 + if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') { + requestOpts.method = 'GET'; + requestOpts.body = undefined; + requestOpts.headers.delete('content-length'); + } + + // HTTP-redirect fetch step 15 + resolve(fetch(new Request(locationURL, requestOpts))); + finalize(); + return; + } + } + + // prepare response + res.once('end', function () { + if (signal) signal.removeEventListener('abort', abortAndFinalize); + }); + let body = res.pipe(new PassThrough$1()); + + const response_options = { + url: request.url, + status: res.statusCode, + statusText: res.statusMessage, + headers: headers, + size: request.size, + timeout: request.timeout, + counter: request.counter + }; + + // HTTP-network fetch step 12.1.1.3 + const codings = headers.get('Content-Encoding'); + + // HTTP-network fetch step 12.1.1.4: handle content codings + + // in following scenarios we ignore compression support + // 1. compression support is disabled + // 2. HEAD request + // 3. no Content-Encoding header + // 4. no content response (204) + // 5. content not modified response (304) + if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) { + response = new Response(body, response_options); + resolve(response); + return; + } + + // For Node v6+ + // Be less strict when decoding compressed responses, since sometimes + // servers send slightly invalid responses that are still accepted + // by common browsers. + // Always using Z_SYNC_FLUSH is what cURL does. + const zlibOptions = { + flush: zlib.Z_SYNC_FLUSH, + finishFlush: zlib.Z_SYNC_FLUSH + }; + + // for gzip + if (codings == 'gzip' || codings == 'x-gzip') { + body = body.pipe(zlib.createGunzip(zlibOptions)); + response = new Response(body, response_options); + resolve(response); + return; + } + + // for deflate + if (codings == 'deflate' || codings == 'x-deflate') { + // handle the infamous raw deflate response from old servers + // a hack for old IIS and Apache servers + const raw = res.pipe(new PassThrough$1()); + raw.once('data', function (chunk) { + // see http://stackoverflow.com/questions/37519828 + if ((chunk[0] & 0x0F) === 0x08) { + body = body.pipe(zlib.createInflate()); + } else { + body = body.pipe(zlib.createInflateRaw()); + } + response = new Response(body, response_options); + resolve(response); + }); + return; + } + + // for br + if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') { + body = body.pipe(zlib.createBrotliDecompress()); + response = new Response(body, response_options); + resolve(response); + return; + } + + // otherwise, use response as-is + response = new Response(body, response_options); + resolve(response); + }); + + writeToStream(req, request); + }); +} +/** + * Redirect code matching + * + * @param Number code Status code + * @return Boolean + */ +fetch.isRedirect = function (code) { + return code === 301 || code === 302 || code === 303 || code === 307 || code === 308; +}; + +// expose Promise +fetch.Promise = global.Promise; + +export default fetch; +export { Headers, Request, Response, FetchError }; diff --git a/Client/node_modules/node-fetch/package.json b/Client/node_modules/node-fetch/package.json new file mode 100644 index 000000000..ea58cc7c9 --- /dev/null +++ b/Client/node_modules/node-fetch/package.json @@ -0,0 +1,93 @@ +{ + "_from": "node-fetch@^2.6.1", + "_id": "node-fetch@2.6.1", + "_inBundle": false, + "_integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "_location": "/node-fetch", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "node-fetch@^2.6.1", + "name": "node-fetch", + "escapedName": "node-fetch", + "rawSpec": "^2.6.1", + "saveSpec": null, + "fetchSpec": "^2.6.1" + }, + "_requiredBy": [ + "/@octokit/request" + ], + "_resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "_shasum": "045bd323631f76ed2e2b55573394416b639a0052", + "_spec": "node-fetch@^2.6.1", + "_where": "C:\\Superalgos\\Client\\node_modules\\@octokit\\request", + "author": { + "name": "David Frank" + }, + "browser": "./browser.js", + "bugs": { + "url": "https://github.com/bitinn/node-fetch/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "A light-weight module that brings window.fetch to node.js", + "devDependencies": { + "@ungap/url-search-params": "^0.1.2", + "abort-controller": "^1.1.0", + "abortcontroller-polyfill": "^1.3.0", + "babel-core": "^6.26.3", + "babel-plugin-istanbul": "^4.1.6", + "babel-preset-env": "^1.6.1", + "babel-register": "^6.16.3", + "chai": "^3.5.0", + "chai-as-promised": "^7.1.1", + "chai-iterator": "^1.1.1", + "chai-string": "~1.3.0", + "codecov": "^3.3.0", + "cross-env": "^5.2.0", + "form-data": "^2.3.3", + "is-builtin-module": "^1.0.0", + "mocha": "^5.0.0", + "nyc": "11.9.0", + "parted": "^0.1.1", + "promise": "^8.0.3", + "resumer": "0.0.0", + "rollup": "^0.63.4", + "rollup-plugin-babel": "^3.0.7", + "string-to-arraybuffer": "^1.0.2", + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "files": [ + "lib/index.js", + "lib/index.mjs", + "lib/index.es.js", + "browser.js" + ], + "homepage": "https://github.com/bitinn/node-fetch", + "keywords": [ + "fetch", + "http", + "promise" + ], + "license": "MIT", + "main": "lib/index", + "module": "lib/index.mjs", + "name": "node-fetch", + "repository": { + "type": "git", + "url": "git+https://github.com/bitinn/node-fetch.git" + }, + "scripts": { + "build": "cross-env BABEL_ENV=rollup rollup -c", + "coverage": "cross-env BABEL_ENV=coverage nyc --reporter json --reporter text mocha -R spec test/test.js && codecov -f coverage/coverage-final.json", + "prepare": "npm run build", + "report": "cross-env BABEL_ENV=coverage nyc --reporter lcov --reporter text mocha -R spec test/test.js", + "test": "cross-env BABEL_ENV=test mocha --require babel-register --throw-deprecation test/test.js" + }, + "version": "2.6.1" +} diff --git a/Client/node_modules/simple-git/CHANGELOG.md b/Client/node_modules/simple-git/CHANGELOG.md new file mode 100644 index 000000000..d720e52ac --- /dev/null +++ b/Client/node_modules/simple-git/CHANGELOG.md @@ -0,0 +1,306 @@ + +# Change History & Release Notes + +## 2.31.0 Handle 'root' commit syntax + +- Adds a `root: boolean` property to the `CommitResult` interface representing whether the commit was a 'root' commit + (which is a commit that has no parent, most commonly the first commit in a repo). + +## 2.30.0 Restore compatibility with Node.js v10 + +- Reinstates native support for node.js v10 by removing use of ES6 constructs + +## 2.29.0 Update TypeScript response type for `git.mergeFromTo` + +- Update type definition for `git.mergeFromTo` to be the `MergeResult` returned + when using the more generic `git.merge` method. + Thanks to [@ofirelias](https://github.com/ofirelias) for the pull request. + +## 2.28.0 Add support for `git apply` & TypeScript Integration Tests + +- Adds support for `git.applyPatch` to apply patches generated in a `git diff` to the working index, + TypeScript consumers can make use of the `ApplyOptions` type definition to make use of strong types + for the supported options. Thanks to [@andreterron](https://github.com/andreterron) for the pull request. + +- Integration tests converted to TypeScript to ensure type safety across all tests. + +## 2.27.0 Included staged delete/modify in StatusResult staged array + +- Update the `git.status` parser to account for staged deleted/modified files and staged files with subsequent + modifications meaning a status of: + - `RM old -> new` will now appear in `renamed` and `new` will also appear in `modified` + - `D file` will now appear in both `deleted` and `staged` where ` D file` would only appear in `deleted` + +## 2.26.0 Fix error when using `git.log` with callback + +- Resolves an issue whereby using `git.log` with a callback (or awaiting the promise created from the now deprecated + `simple-git/promise` import) would fail to return the response to the caller. + +## 2.25.0 TypeScript Types & Unit Tests, Commit Parsing + +- See [Legacy Node Versions](./docs/LEGACY_NODE_VERSIONS.md) for details of how to use `simple-git` with `node.js` + versions 11 and below. +- To help keep the TypeScript definitions in line with functionality, unit tests are now written in TypeScript. +- When using `git.commit`, the first argument must be a string or array of strings. Passing another data type has long + been considered an error, but now a deprecation warning will be shown in the log and will be switched to an error + in version 3. +- Fixes an issue in `git.commit` whereby a commit that included only deleted lines would be parsed as though the + deletions were inclusions. + +## 2.24.0 Types updated + +- `pull`, `push` and `pushTags` parameter types updated to match new functionality and tests switched to TypeScript to ensure they are kept in sync + +## 2.23.0 update `debug` dependency & `master` -> `main` + +- Upgrade `debug` dependency and remove use of now deprecated `debug().destroy()` +- Renames the default source branch from `master` to `main` + +## 2.22.0 add `git.hashObject` interface + +- Adds support for `git hash-object FILE` and `git hash-object -w FILE` + with new interface `git.hashObject(...)`, with thanks to [@MiOnim](https://github.com/MiOnim) + +## 2.21.0 add `string[]` to `LogOptions` type + +- Adds `string[]` to the set of types supported as options for `git.log` +- Fix readme typos + +## 2.20.1 Bug-fix: `LogOptions` type definition + +- `LogOptions` should be intersection rather than union types + +## 2.19.0 - Upgrade task option filters + +- move the command/task option processing function to TypeScript + +## 2.18.0 - Upgrade Clone / Mirror tasks + +- `git.clone` and `git.mirror` rewritten to fit the TypeScript tasks style. +- resolves issue whereby `git.clone` didn't accept an object of options despite being documented as supporting. + +## 2.17.0 - Add remote message parsing to `git pull` + +- `git pull` (and by extension `git merge`) adds remote message parsing to the `PullResult` type +- Remote message parsing adds property `remoteMessages.objects` of type `RemoteMessagesObjectEnumeration` to capture the objects transferred in fetch and push. + +## 2.16.0 - Upgrade Move task + +- `git.mv` rewritten to fit the TypeScript tasks style. +- set up github actions for CI + +## 2.15.0 - Task parsers automatically have access to `stdErr` as well as `stdOut` + +- adds the `TaskParser` type to describe a task's parser function and creates the `LineParser` utility to simplify line-by-line parsing of string responses. +- renames some interfaces for consistency of naming, the original name remains as a type alias marked as `@deprecated` until version 3.x: + - BranchDeletionSummary > BranchSingleDeleteResult + - BranchDeletionBatchSummary > BranchMultiDeleteResult + - MergeSummary > MergeResult + +## 2.14.0 - Bug fix: `git.checkoutBranch` fails to pass commands to git child process + +- resolves an issue whereby the `git.checkoutBranch` method would not pass the branch detail through to the underlying child process. + +## 2.13.2 - PushResult to expose all non-empty remote messages + +- Further to `2.13.0` includes all (non-empty) `remote:` lines in the `PushResult`, + including `remote:` lines used for other parser results (ie: `pullRequestUrl` etc). + +## 2.13.1 - Add support for parsing GitLab Pull Request Url Message + +- Further to `2.13.0` adding support for parsing the reponse to `git.push`, adds support for the pull request message + used by gitlab. + +## 2.13.0 - Upgraded Pull & Merge and parser for Push + +- `.push` and `.pushTags` rewritten as v2 style tasks. The git response is now parsed and returned as a + [PushResult](./typings/response.d.ts) + +- Pull and merge rewritten to fit the TypeScript tasks style. + +- Integration tests updated to run through jest directly without compiling from nodeunit + +## 2.12.0 - Bug fix: chaining onto / async awaiting `git.tags` failed + +- resolves an issue whereby the `git.tags` method could not be chained or used as an async/promise. + +## 2.11.0 - Parallel / concurrent tasks, fresh repo status parser & bug-fix in `checkoutLocalBranch` + +- until now, `simple-git` reject all pending tasks in the queue when a task has failed. From `2.11.0`, only + tasks chained from the failing one will be rejected, other tasks can continue to be processed as normal, + giving the developer more control over which tasks should be treated as atomic chains, and which can be + [run in parallel](./readme.md#concurrent--parallel-requests). + + To support this, and to prevent the issues seen when `git` is run concurrently in too many child processes, + `simple-git` will limit the number of tasks running in parallel at any one time to be at most 1 from each + chain (ie: chained tasks are still run in series) and at most 5 tasks across all chains ( + [configurable](./readme.md#configuration) by passing `{maxConcurrentProcesses: x}` in the `simpleGit` constructor). + +- add support to `git.status()` for parsing the response of a repo that has no commits yet, previously + it wouldn't determine the branch name correctly. + +- resolved a flaw introduced in `2.9.0` whereby `checkoutLocalBranch` would silently fail and not check out the branch + +## 2.10.0 - trailing options in checkout, init, status, reset & bug-fix awaiting a non-task + +- `git.checkout` now supports both object and array forms of supplying trailing options. + +```typescript +import simpleGit from 'simple-git'; +await simpleGit().checkout('branch-name', ['--track', 'remote/branch']); +await simpleGit().checkout(['branch-name', '--track', 'remote/branch']); +await simpleGit().checkout({'branch-name': null}); +``` + +- `git.init` now supports both object and array forms of supplying trailing options and now + parses the response to return an [InitResult](./typings/response.d.ts); + +```typescript +import simpleGit, { InitResult } from 'simple-git'; +const notSharedInit: InitResult = await simpleGit().init(false, ['--shared=false']); +const notSharedBareInit: InitResult = await simpleGit().init(['--bare', '--shared=false']); +const sharedInit: InitResult = await simpleGit().init(false, {'--shared': 'true'}); +const sharedBareInit: InitResult = await simpleGit().init({'--bare': null, '--shared': 'false'}); +``` + +- `git.status` now supports both object and array forms of supplying trailing options. + +```typescript +import simpleGit, { StatusResult } from 'simple-git'; +const repoStatus: StatusResult = await simpleGit().status(); +const subDirStatus: StatusResult = await simpleGit().status(['--', 'sub-dir']); +``` + +- `git.reset` upgraded to the new task style and exports an enum `ResetMode` with all supported + merge modes and now supports both object and array forms of supplying trailing options. + +```typescript +import simpleGit, { ResetMode } from 'simple-git'; + +// git reset --hard +await simpleGit().reset(ResetMode.HARD); + +// git reset --soft -- sub-dir +await simpleGit().reset(ResetMode.SOFT, ['--', 'sub-dir']); +``` + +- bug-fix: it should not be possible to await the `simpleGit()` task runner, only the tasks it returns. + +```typescript +expect(simpleGit().then).toBeUndefined(); +expect(simpleGit().init().then).toBe(expect.any(Function)); +``` + +## 2.9.0 - checkIsRepo, rev-parse + +- `.checkIsRepo()` updated to allow choosing the type of check to run, either by using the exported `CheckRepoActions` enum + or the text equivalents ('bare', 'root' or 'tree'): + - `checkIsRepo(CheckRepoActions.BARE): Promise` determines whether the working directory represents a bare repo. + - `checkIsRepo(CheckRepoActions.IS_REPO_ROOT): Promise` determines whether the working directory is at the root of a repo. + - `checkIsRepo(CheckRepoActions.IN_TREE): Promise` determines whether the working directory is a descendent of a git root. + +- `.revparse()` converted to a new style task + +## 2.8.0 - Support for `default` import in TS without use of `esModuleInterop` + +- Enables support for using the default export of `simple-git` as an es module, in TypeScript it is no + longer necessary to enable the `esModuleInterop` flag in the `tsconfig.json` to consume the default + export. + +### 2.7.2 - Bug Fix: Remove `promise.ts` source from `simple-git` published artifact + +- Closes #471, whereby the source for the promise wrapped runner would be included in the published artifact + due to sharing the same name as the explicitly included `promise.js` in the project root. + +### 2.7.1 - Bug Fix: `await git.log` having imported from root `simple-git` + +- Fixes #464, whereby using `await` on `git.log` without having supplied a callback would ignore the leading options + object or options array. + +## 2.7.0 - Output Handler and logging + +- Updated to the `outputHandler` type to add a trailing argument for the arguments passed into the child process. +- All logging now uses the [debug](https://www.npmjs.com/package/debug) library. Enable logging by adding `simple-git` + to the `DEBUG` environment variable. `git.silent(false)` can still be used to explicitly enable logging and is + equivalent to calling `require('debug').enable('simple-git')`. + +## 2.6.0 - Native Promises, Typed Errors, TypeScript Importing, Git.clean and Git.raw + +### Native Promises + +- _TL;DR - `.then` and `.catch` can now be called on the standard `simpleGit` chain to handle the promise + returned by the most recently added task... essentially, promises now just work the way you would expect + them to._ +- The main export from `simple-git` no longer shows the deprecation notice for using the + `.then` function, it now exposes the promise chain generated from the most recently run + task, allowing the combination of chain building and ad-hoc splitting off to a new promise chain. + - See the [unit](./test/unit/promises.spec.js) and [integration](./test/integration/promise-from-root.spec.js) tests. + - See the [typescript consumer](./test/consumer/ts-default-from-root.spec.ts) test. + +### TypeScript Importing + +- Promise / async interface and TypeScript types all available from the `simple-git` import rather than needing + `simple-git/promise`, see examples in the [ReadMe](./readme.md) or in the [consumer tests](./test/consumer). + +### Typed Errors + +- Tasks that previously validated their usage and rejected with a `TypeError` will now reject with a + [`TaskConfigurationError`](./src/lib/errors/task-configuration-error.ts). + +- Tasks that previously rejected with a custom object (currently only `git.merge` when the auto-merge fails) + will now reject with a [`GitResponseError`](./src/lib/errors/git-response-error.ts) where previously it + was a modified `Error`. + +### Git Clean + +- `git.clean(...)` will now return a `CleanSummary` instead of the raw string data + +### Git Raw + +- `git.raw(...)` now accepts any number of leading string arguments as an alternative to the + single array of strings. + +## 2.5.0 - Git.remote + +- all `git.remote` related functions converted to TypeScript + +## 2.4.0 - Git.subModule + +- all `git.subModule` related functions converted to TypeScript + +## 2.3.0 - Git.config + +- add new `git.listConfig` to get current configuration +- `git.addConfig` supports a new `append` flag to append the value into the config rather than overwrite existing + +## 2.2.0 - Git.branch + +- all `git.branch` related functions converted to TypeScript +- add new `git.deleteLocalBranches` to delete multiple branches in one call +- `git.deleteLocalBranches` and `git.deleteLocalBranch` now support an optional `forceDelete` flag + +## 2.1.0 - Git.tag + +- `.tags`, `.addTag` and `.addAnnotatedTag` converted to TypeScript, no backward compatibility changes + +## 2.0.0 - Incremental switch to TypeScript and rewritten task execution + +- If your application depended on any functions with a name starting with an `_`, the upgrade may not be seamless, +please only use the documented public API. + +- `git.log` date format is now strict ISO by default (ie: uses the placeholder `%aI`) instead of the 1.x default of +`%ai` for an "ISO-like" date format. To restore the old behaviour, add `strictDate = false` to the options passed to +`git.log`. + + +## 1.110.0 - ListLogLine + +- The default format expression used in `.log` splits ref data out of the `message` into a property of its own: `{ message: 'Some commit message (some-branch-name)' }` becomes `{ message: 'Some commit message', refs: 'some-branch-name' }` | +- The commit body content is now included in the default format expression and can be used to identify the content of merge conflicts eg: `{ body: '# Conflicts:\n# some-file.txt' }` | + + +## 1.0.0 + +Bumped to a new major revision in the 1.x branch, now uses `ChildProcess.spawn` in place of `ChildProcess.exec` to +add escaping to the arguments passed to each of the tasks. + diff --git a/Client/node_modules/simple-git/LICENSE b/Client/node_modules/simple-git/LICENSE new file mode 100644 index 000000000..b123c04ba --- /dev/null +++ b/Client/node_modules/simple-git/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2015 Steve King + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Client/node_modules/simple-git/node_modules/debug/LICENSE b/Client/node_modules/simple-git/node_modules/debug/LICENSE new file mode 100644 index 000000000..658c933d2 --- /dev/null +++ b/Client/node_modules/simple-git/node_modules/debug/LICENSE @@ -0,0 +1,19 @@ +(The MIT License) + +Copyright (c) 2014 TJ Holowaychuk + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software +and associated documentation files (the 'Software'), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/Client/node_modules/simple-git/node_modules/debug/README.md b/Client/node_modules/simple-git/node_modules/debug/README.md new file mode 100644 index 000000000..88dae35d9 --- /dev/null +++ b/Client/node_modules/simple-git/node_modules/debug/README.md @@ -0,0 +1,455 @@ +# debug +[![Build Status](https://travis-ci.org/visionmedia/debug.svg?branch=master)](https://travis-ci.org/visionmedia/debug) [![Coverage Status](https://coveralls.io/repos/github/visionmedia/debug/badge.svg?branch=master)](https://coveralls.io/github/visionmedia/debug?branch=master) [![Slack](https://visionmedia-community-slackin.now.sh/badge.svg)](https://visionmedia-community-slackin.now.sh/) [![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers) +[![OpenCollective](https://opencollective.com/debug/sponsors/badge.svg)](#sponsors) + + + +A tiny JavaScript debugging utility modelled after Node.js core's debugging +technique. Works in Node.js and web browsers. + +## Installation + +```bash +$ npm install debug +``` + +## Usage + +`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole. + +Example [_app.js_](./examples/node/app.js): + +```js +var debug = require('debug')('http') + , http = require('http') + , name = 'My App'; + +// fake app + +debug('booting %o', name); + +http.createServer(function(req, res){ + debug(req.method + ' ' + req.url); + res.end('hello\n'); +}).listen(3000, function(){ + debug('listening'); +}); + +// fake worker of some kind + +require('./worker'); +``` + +Example [_worker.js_](./examples/node/worker.js): + +```js +var a = require('debug')('worker:a') + , b = require('debug')('worker:b'); + +function work() { + a('doing lots of uninteresting work'); + setTimeout(work, Math.random() * 1000); +} + +work(); + +function workb() { + b('doing some work'); + setTimeout(workb, Math.random() * 2000); +} + +workb(); +``` + +The `DEBUG` environment variable is then used to enable these based on space or +comma-delimited names. + +Here are some examples: + +screen shot 2017-08-08 at 12 53 04 pm +screen shot 2017-08-08 at 12 53 38 pm +screen shot 2017-08-08 at 12 53 25 pm + +#### Windows command prompt notes + +##### CMD + +On Windows the environment variable is set using the `set` command. + +```cmd +set DEBUG=*,-not_this +``` + +Example: + +```cmd +set DEBUG=* & node app.js +``` + +##### PowerShell (VS Code default) + +PowerShell uses different syntax to set environment variables. + +```cmd +$env:DEBUG = "*,-not_this" +``` + +Example: + +```cmd +$env:DEBUG='app';node app.js +``` + +Then, run the program to be debugged as usual. + +npm script example: +```js + "windowsDebug": "@powershell -Command $env:DEBUG='*';node app.js", +``` + +## Namespace Colors + +Every debug instance has a color generated for it based on its namespace name. +This helps when visually parsing the debug output to identify which debug instance +a debug line belongs to. + +#### Node.js + +In Node.js, colors are enabled when stderr is a TTY. You also _should_ install +the [`supports-color`](https://npmjs.org/supports-color) module alongside debug, +otherwise debug will only use a small handful of basic colors. + + + +#### Web Browser + +Colors are also enabled on "Web Inspectors" that understand the `%c` formatting +option. These are WebKit web inspectors, Firefox ([since version +31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) +and the Firebug plugin for Firefox (any version). + + + + +## Millisecond diff + +When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. + + + +When stdout is not a TTY, `Date#toISOString()` is used, making it more useful for logging the debug information as shown below: + + + + +## Conventions + +If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". If you append a "*" to the end of your name, it will always be enabled regardless of the setting of the DEBUG environment variable. You can then use it for normal output as well as debug output. + +## Wildcards + +The `*` character may be used as a wildcard. Suppose for example your library has +debuggers named "connect:bodyParser", "connect:compress", "connect:session", +instead of listing all three with +`DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do +`DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. + +You can also exclude specific debuggers by prefixing them with a "-" character. +For example, `DEBUG=*,-connect:*` would include all debuggers except those +starting with "connect:". + +## Environment Variables + +When running through Node.js, you can set a few environment variables that will +change the behavior of the debug logging: + +| Name | Purpose | +|-----------|-------------------------------------------------| +| `DEBUG` | Enables/disables specific debugging namespaces. | +| `DEBUG_HIDE_DATE` | Hide date from debug output (non-TTY). | +| `DEBUG_COLORS`| Whether or not to use colors in the debug output. | +| `DEBUG_DEPTH` | Object inspection depth. | +| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. | + + +__Note:__ The environment variables beginning with `DEBUG_` end up being +converted into an Options object that gets used with `%o`/`%O` formatters. +See the Node.js documentation for +[`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options) +for the complete list. + +## Formatters + +Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. +Below are the officially supported formatters: + +| Formatter | Representation | +|-----------|----------------| +| `%O` | Pretty-print an Object on multiple lines. | +| `%o` | Pretty-print an Object all on a single line. | +| `%s` | String. | +| `%d` | Number (both integer and float). | +| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. | +| `%%` | Single percent sign ('%'). This does not consume an argument. | + + +### Custom formatters + +You can add custom formatters by extending the `debug.formatters` object. +For example, if you wanted to add support for rendering a Buffer as hex with +`%h`, you could do something like: + +```js +const createDebug = require('debug') +createDebug.formatters.h = (v) => { + return v.toString('hex') +} + +// …elsewhere +const debug = createDebug('foo') +debug('this is hex: %h', new Buffer('hello world')) +// foo this is hex: 68656c6c6f20776f726c6421 +0ms +``` + + +## Browser Support + +You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify), +or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest), +if you don't want to build it yourself. + +Debug's enable state is currently persisted by `localStorage`. +Consider the situation shown below where you have `worker:a` and `worker:b`, +and wish to debug both. You can enable this using `localStorage.debug`: + +```js +localStorage.debug = 'worker:*' +``` + +And then refresh the page. + +```js +a = debug('worker:a'); +b = debug('worker:b'); + +setInterval(function(){ + a('doing some work'); +}, 1000); + +setInterval(function(){ + b('doing some work'); +}, 1200); +``` + + +## Output streams + + By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method: + +Example [_stdout.js_](./examples/node/stdout.js): + +```js +var debug = require('debug'); +var error = debug('app:error'); + +// by default stderr is used +error('goes to stderr!'); + +var log = debug('app:log'); +// set this namespace to log via console.log +log.log = console.log.bind(console); // don't forget to bind to console! +log('goes to stdout'); +error('still goes to stderr!'); + +// set all output to go via console.info +// overrides all per-namespace log settings +debug.log = console.info.bind(console); +error('now goes to stdout via console.info'); +log('still goes to stdout, but via console.info now'); +``` + +## Extend +You can simply extend debugger +```js +const log = require('debug')('auth'); + +//creates new debug instance with extended namespace +const logSign = log.extend('sign'); +const logLogin = log.extend('login'); + +log('hello'); // auth hello +logSign('hello'); //auth:sign hello +logLogin('hello'); //auth:login hello +``` + +## Set dynamically + +You can also enable debug dynamically by calling the `enable()` method : + +```js +let debug = require('debug'); + +console.log(1, debug.enabled('test')); + +debug.enable('test'); +console.log(2, debug.enabled('test')); + +debug.disable(); +console.log(3, debug.enabled('test')); + +``` + +print : +``` +1 false +2 true +3 false +``` + +Usage : +`enable(namespaces)` +`namespaces` can include modes separated by a colon and wildcards. + +Note that calling `enable()` completely overrides previously set DEBUG variable : + +``` +$ DEBUG=foo node -e 'var dbg = require("debug"); dbg.enable("bar"); console.log(dbg.enabled("foo"))' +=> false +``` + +`disable()` + +Will disable all namespaces. The functions returns the namespaces currently +enabled (and skipped). This can be useful if you want to disable debugging +temporarily without knowing what was enabled to begin with. + +For example: + +```js +let debug = require('debug'); +debug.enable('foo:*,-foo:bar'); +let namespaces = debug.disable(); +debug.enable(namespaces); +``` + +Note: There is no guarantee that the string will be identical to the initial +enable string, but semantically they will be identical. + +## Checking whether a debug target is enabled + +After you've created a debug instance, you can determine whether or not it is +enabled by checking the `enabled` property: + +```javascript +const debug = require('debug')('http'); + +if (debug.enabled) { + // do stuff... +} +``` + +You can also manually toggle this property to force the debug instance to be +enabled or disabled. + + +## Authors + + - TJ Holowaychuk + - Nathan Rajlich + - Andrew Rhyne + +## Backers + +Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## Sponsors + +Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## License + +(The MIT License) + +Copyright (c) 2014-2017 TJ Holowaychuk <tj@vision-media.ca> + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Client/node_modules/simple-git/node_modules/debug/package.json b/Client/node_modules/simple-git/node_modules/debug/package.json new file mode 100644 index 000000000..f4d379ee7 --- /dev/null +++ b/Client/node_modules/simple-git/node_modules/debug/package.json @@ -0,0 +1,101 @@ +{ + "_from": "debug@^4.3.1", + "_id": "debug@4.3.1", + "_inBundle": false, + "_integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "_location": "/simple-git/debug", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "debug@^4.3.1", + "name": "debug", + "escapedName": "debug", + "rawSpec": "^4.3.1", + "saveSpec": null, + "fetchSpec": "^4.3.1" + }, + "_requiredBy": [ + "/simple-git" + ], + "_resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "_shasum": "f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee", + "_spec": "debug@^4.3.1", + "_where": "C:\\Superalgos\\Client\\node_modules\\simple-git", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "browser": "./src/browser.js", + "bugs": { + "url": "https://github.com/visionmedia/debug/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Nathan Rajlich", + "email": "nathan@tootallnate.net", + "url": "http://n8.io" + }, + { + "name": "Andrew Rhyne", + "email": "rhyneandrew@gmail.com" + }, + { + "name": "Josh Junon", + "email": "josh@junon.me" + } + ], + "dependencies": { + "ms": "2.1.2" + }, + "deprecated": false, + "description": "small debugging utility", + "devDependencies": { + "brfs": "^2.0.1", + "browserify": "^16.2.3", + "coveralls": "^3.0.2", + "istanbul": "^0.4.5", + "karma": "^3.1.4", + "karma-browserify": "^6.0.0", + "karma-chrome-launcher": "^2.2.0", + "karma-mocha": "^1.3.0", + "mocha": "^5.2.0", + "mocha-lcov-reporter": "^1.2.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6.0" + }, + "files": [ + "src", + "LICENSE", + "README.md" + ], + "homepage": "https://github.com/visionmedia/debug#readme", + "keywords": [ + "debug", + "log", + "debugger" + ], + "license": "MIT", + "main": "./src/index.js", + "name": "debug", + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + }, + "repository": { + "type": "git", + "url": "git://github.com/visionmedia/debug.git" + }, + "scripts": { + "lint": "xo", + "test": "npm run test:node && npm run test:browser && npm run lint", + "test:browser": "karma start --single-run", + "test:coverage": "cat ./coverage/lcov.info | coveralls", + "test:node": "istanbul cover _mocha -- test.js" + }, + "version": "4.3.1" +} diff --git a/Client/node_modules/simple-git/node_modules/debug/src/browser.js b/Client/node_modules/simple-git/node_modules/debug/src/browser.js new file mode 100644 index 000000000..cd0fc35d1 --- /dev/null +++ b/Client/node_modules/simple-git/node_modules/debug/src/browser.js @@ -0,0 +1,269 @@ +/* eslint-env browser */ + +/** + * This is the web browser implementation of `debug()`. + */ + +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.storage = localstorage(); +exports.destroy = (() => { + let warned = false; + + return () => { + if (!warned) { + warned = true; + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + }; +})(); + +/** + * Colors. + */ + +exports.colors = [ + '#0000CC', + '#0000FF', + '#0033CC', + '#0033FF', + '#0066CC', + '#0066FF', + '#0099CC', + '#0099FF', + '#00CC00', + '#00CC33', + '#00CC66', + '#00CC99', + '#00CCCC', + '#00CCFF', + '#3300CC', + '#3300FF', + '#3333CC', + '#3333FF', + '#3366CC', + '#3366FF', + '#3399CC', + '#3399FF', + '#33CC00', + '#33CC33', + '#33CC66', + '#33CC99', + '#33CCCC', + '#33CCFF', + '#6600CC', + '#6600FF', + '#6633CC', + '#6633FF', + '#66CC00', + '#66CC33', + '#9900CC', + '#9900FF', + '#9933CC', + '#9933FF', + '#99CC00', + '#99CC33', + '#CC0000', + '#CC0033', + '#CC0066', + '#CC0099', + '#CC00CC', + '#CC00FF', + '#CC3300', + '#CC3333', + '#CC3366', + '#CC3399', + '#CC33CC', + '#CC33FF', + '#CC6600', + '#CC6633', + '#CC9900', + '#CC9933', + '#CCCC00', + '#CCCC33', + '#FF0000', + '#FF0033', + '#FF0066', + '#FF0099', + '#FF00CC', + '#FF00FF', + '#FF3300', + '#FF3333', + '#FF3366', + '#FF3399', + '#FF33CC', + '#FF33FF', + '#FF6600', + '#FF6633', + '#FF9900', + '#FF9933', + '#FFCC00', + '#FFCC33' +]; + +/** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ + +// eslint-disable-next-line complexity +function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { + return true; + } + + // Internet Explorer and Edge do not support colors. + if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + + // Is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || + // Is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || + // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || + // Double check webkit in userAgent just in case we are in a worker + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); +} + +/** + * Colorize log arguments if enabled. + * + * @api public + */ + +function formatArgs(args) { + args[0] = (this.useColors ? '%c' : '') + + this.namespace + + (this.useColors ? ' %c' : ' ') + + args[0] + + (this.useColors ? '%c ' : ' ') + + '+' + module.exports.humanize(this.diff); + + if (!this.useColors) { + return; + } + + const c = 'color: ' + this.color; + args.splice(1, 0, c, 'color: inherit'); + + // The final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, match => { + if (match === '%%') { + return; + } + index++; + if (match === '%c') { + // We only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; + } + }); + + args.splice(lastC, 0, c); +} + +/** + * Invokes `console.debug()` when available. + * No-op when `console.debug` is not a "function". + * If `console.debug` is not available, falls back + * to `console.log`. + * + * @api public + */ +exports.log = console.debug || console.log || (() => {}); + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(namespaces) { + try { + if (namespaces) { + exports.storage.setItem('debug', namespaces); + } else { + exports.storage.removeItem('debug'); + } + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ +function load() { + let r; + try { + r = exports.storage.getItem('debug'); + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } + + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== 'undefined' && 'env' in process) { + r = process.env.DEBUG; + } + + return r; +} + +/** + * Localstorage attempts to return the localstorage. + * + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private + */ + +function localstorage() { + try { + // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context + // The Browser also has localStorage in the global context. + return localStorage; + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } +} + +module.exports = require('./common')(exports); + +const {formatters} = module.exports; + +/** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ + +formatters.j = function (v) { + try { + return JSON.stringify(v); + } catch (error) { + return '[UnexpectedJSONParseError]: ' + error.message; + } +}; diff --git a/Client/node_modules/simple-git/node_modules/debug/src/common.js b/Client/node_modules/simple-git/node_modules/debug/src/common.js new file mode 100644 index 000000000..392a8e005 --- /dev/null +++ b/Client/node_modules/simple-git/node_modules/debug/src/common.js @@ -0,0 +1,261 @@ + +/** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + */ + +function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = require('ms'); + createDebug.destroy = destroy; + + Object.keys(env).forEach(key => { + createDebug[key] = env[key]; + }); + + /** + * The currently active debug mode names, and names to skip. + */ + + createDebug.names = []; + createDebug.skips = []; + + /** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". + */ + createDebug.formatters = {}; + + /** + * Selects a color for a debug namespace + * @param {String} namespace The namespace string for the for the debug instance to be colored + * @return {Number|String} An ANSI color code for the given namespace + * @api private + */ + function selectColor(namespace) { + let hash = 0; + + for (let i = 0; i < namespace.length; i++) { + hash = ((hash << 5) - hash) + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } + + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + + /** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + + function debug(...args) { + // Disabled? + if (!debug.enabled) { + return; + } + + const self = debug; + + // Set `diff` timestamp + const curr = Number(new Date()); + const ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + + args[0] = createDebug.coerce(args[0]); + + if (typeof args[0] !== 'string') { + // Anything else let's inspect with %O + args.unshift('%O'); + } + + // Apply any `formatters` transformations + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + // If we encounter an escaped % then don't increase the array index + if (match === '%%') { + return '%'; + } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === 'function') { + const val = args[index]; + match = formatter.call(self, val); + + // Now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); + + // Apply env-specific formatting (colors, etc.) + createDebug.formatArgs.call(self, args); + + const logFn = self.log || createDebug.log; + logFn.apply(self, args); + } + + debug.namespace = namespace; + debug.useColors = createDebug.useColors(); + debug.color = createDebug.selectColor(namespace); + debug.extend = extend; + debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. + + Object.defineProperty(debug, 'enabled', { + enumerable: true, + configurable: false, + get: () => enableOverride === null ? createDebug.enabled(namespace) : enableOverride, + set: v => { + enableOverride = v; + } + }); + + // Env-specific initialization logic for debug instances + if (typeof createDebug.init === 'function') { + createDebug.init(debug); + } + + return debug; + } + + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } + + /** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + function enable(namespaces) { + createDebug.save(namespaces); + + createDebug.names = []; + createDebug.skips = []; + + let i; + const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); + const len = split.length; + + for (i = 0; i < len; i++) { + if (!split[i]) { + // ignore empty strings + continue; + } + + namespaces = split[i].replace(/\*/g, '.*?'); + + if (namespaces[0] === '-') { + createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); + } else { + createDebug.names.push(new RegExp('^' + namespaces + '$')); + } + } + } + + /** + * Disable debug output. + * + * @return {String} namespaces + * @api public + */ + function disable() { + const namespaces = [ + ...createDebug.names.map(toNamespace), + ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace) + ].join(','); + createDebug.enable(''); + return namespaces; + } + + /** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + function enabled(name) { + if (name[name.length - 1] === '*') { + return true; + } + + let i; + let len; + + for (i = 0, len = createDebug.skips.length; i < len; i++) { + if (createDebug.skips[i].test(name)) { + return false; + } + } + + for (i = 0, len = createDebug.names.length; i < len; i++) { + if (createDebug.names[i].test(name)) { + return true; + } + } + + return false; + } + + /** + * Convert regexp to namespace + * + * @param {RegExp} regxep + * @return {String} namespace + * @api private + */ + function toNamespace(regexp) { + return regexp.toString() + .substring(2, regexp.toString().length - 2) + .replace(/\.\*\?$/, '*'); + } + + /** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + + /** + * XXX DO NOT USE. This is a temporary stub function. + * XXX It WILL be removed in the next major release. + */ + function destroy() { + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + + createDebug.enable(createDebug.load()); + + return createDebug; +} + +module.exports = setup; diff --git a/Client/node_modules/simple-git/node_modules/debug/src/index.js b/Client/node_modules/simple-git/node_modules/debug/src/index.js new file mode 100644 index 000000000..bf4c57f25 --- /dev/null +++ b/Client/node_modules/simple-git/node_modules/debug/src/index.js @@ -0,0 +1,10 @@ +/** + * Detect Electron renderer / nwjs process, which is node, but we should + * treat as a browser. + */ + +if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { + module.exports = require('./browser.js'); +} else { + module.exports = require('./node.js'); +} diff --git a/Client/node_modules/simple-git/node_modules/debug/src/node.js b/Client/node_modules/simple-git/node_modules/debug/src/node.js new file mode 100644 index 000000000..79bc085cb --- /dev/null +++ b/Client/node_modules/simple-git/node_modules/debug/src/node.js @@ -0,0 +1,263 @@ +/** + * Module dependencies. + */ + +const tty = require('tty'); +const util = require('util'); + +/** + * This is the Node.js implementation of `debug()`. + */ + +exports.init = init; +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.destroy = util.deprecate( + () => {}, + 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' +); + +/** + * Colors. + */ + +exports.colors = [6, 2, 3, 4, 5, 1]; + +try { + // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) + // eslint-disable-next-line import/no-extraneous-dependencies + const supportsColor = require('supports-color'); + + if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { + exports.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; + } +} catch (error) { + // Swallow - we only care if `supports-color` is available; it doesn't have to be. +} + +/** + * Build up the default `inspectOpts` object from the environment variables. + * + * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js + */ + +exports.inspectOpts = Object.keys(process.env).filter(key => { + return /^debug_/i.test(key); +}).reduce((obj, key) => { + // Camel-case + const prop = key + .substring(6) + .toLowerCase() + .replace(/_([a-z])/g, (_, k) => { + return k.toUpperCase(); + }); + + // Coerce string value into JS value + let val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === 'null') { + val = null; + } else { + val = Number(val); + } + + obj[prop] = val; + return obj; +}, {}); + +/** + * Is stdout a TTY? Colored output is enabled when `true`. + */ + +function useColors() { + return 'colors' in exports.inspectOpts ? + Boolean(exports.inspectOpts.colors) : + tty.isatty(process.stderr.fd); +} + +/** + * Adds ANSI color escape codes if enabled. + * + * @api public + */ + +function formatArgs(args) { + const {namespace: name, useColors} = this; + + if (useColors) { + const c = this.color; + const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); + const prefix = ` ${colorCode};1m${name} \u001B[0m`; + + args[0] = prefix + args[0].split('\n').join('\n' + prefix); + args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m'); + } else { + args[0] = getDate() + name + ' ' + args[0]; + } +} + +function getDate() { + if (exports.inspectOpts.hideDate) { + return ''; + } + return new Date().toISOString() + ' '; +} + +/** + * Invokes `util.format()` with the specified arguments and writes to stderr. + */ + +function log(...args) { + return process.stderr.write(util.format(...args) + '\n'); +} + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces; + } else { + // If you set a process.env field to null or undefined, it gets cast to the + // string 'null' or 'undefined'. Just delete instead. + delete process.env.DEBUG; + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + +function load() { + return process.env.DEBUG; +} + +/** + * Init logic for `debug` instances. + * + * Create a new `inspectOpts` object in case `useColors` is set + * differently for a particular `debug` instance. + */ + +function init(debug) { + debug.inspectOpts = {}; + + const keys = Object.keys(exports.inspectOpts); + for (let i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } +} + +module.exports = require('./common')(exports); + +const {formatters} = module.exports; + +/** + * Map %o to `util.inspect()`, all on a single line. + */ + +formatters.o = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts) + .split('\n') + .map(str => str.trim()) + .join(' '); +}; + +/** + * Map %O to `util.inspect()`, allowing multiple lines if needed. + */ + +formatters.O = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); +}; diff --git a/Client/node_modules/simple-git/node_modules/ms/index.js b/Client/node_modules/simple-git/node_modules/ms/index.js new file mode 100644 index 000000000..c4498bcc2 --- /dev/null +++ b/Client/node_modules/simple-git/node_modules/ms/index.js @@ -0,0 +1,162 @@ +/** + * Helpers. + */ + +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var w = d * 7; +var y = d * 365.25; + +/** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ + +module.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); +}; + +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + +function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'weeks': + case 'week': + case 'w': + return n * w; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; + } +} + +/** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + 'd'; + } + if (msAbs >= h) { + return Math.round(ms / h) + 'h'; + } + if (msAbs >= m) { + return Math.round(ms / m) + 'm'; + } + if (msAbs >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; +} + +/** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, 'day'); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, 'hour'); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, 'minute'); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, 'second'); + } + return ms + ' ms'; +} + +/** + * Pluralization helper. + */ + +function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); +} diff --git a/Client/node_modules/simple-git/node_modules/ms/license.md b/Client/node_modules/simple-git/node_modules/ms/license.md new file mode 100644 index 000000000..69b61253a --- /dev/null +++ b/Client/node_modules/simple-git/node_modules/ms/license.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Zeit, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Client/node_modules/simple-git/node_modules/ms/package.json b/Client/node_modules/simple-git/node_modules/ms/package.json new file mode 100644 index 000000000..fade7c386 --- /dev/null +++ b/Client/node_modules/simple-git/node_modules/ms/package.json @@ -0,0 +1,69 @@ +{ + "_from": "ms@2.1.2", + "_id": "ms@2.1.2", + "_inBundle": false, + "_integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "_location": "/simple-git/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.1.2", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.1.2", + "saveSpec": null, + "fetchSpec": "2.1.2" + }, + "_requiredBy": [ + "/simple-git/debug" + ], + "_resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "_shasum": "d09d1f357b443f493382a8eb3ccd183872ae6009", + "_spec": "ms@2.1.2", + "_where": "C:\\Superalgos\\Client\\node_modules\\simple-git\\node_modules\\debug", + "bugs": { + "url": "https://github.com/zeit/ms/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Tiny millisecond conversion utility", + "devDependencies": { + "eslint": "4.12.1", + "expect.js": "0.3.1", + "husky": "0.14.3", + "lint-staged": "5.0.0", + "mocha": "4.0.1" + }, + "eslintConfig": { + "extends": "eslint:recommended", + "env": { + "node": true, + "es6": true + } + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/zeit/ms#readme", + "license": "MIT", + "lint-staged": { + "*.js": [ + "npm run lint", + "prettier --single-quote --write", + "git add" + ] + }, + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/zeit/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.1.2" +} diff --git a/Client/node_modules/simple-git/node_modules/ms/readme.md b/Client/node_modules/simple-git/node_modules/ms/readme.md new file mode 100644 index 000000000..9a1996b17 --- /dev/null +++ b/Client/node_modules/simple-git/node_modules/ms/readme.md @@ -0,0 +1,60 @@ +# ms + +[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms) +[![Join the community on Spectrum](https://withspectrum.github.io/badge/badge.svg)](https://spectrum.chat/zeit) + +Use this package to easily convert various time formats to milliseconds. + +## Examples + +```js +ms('2 days') // 172800000 +ms('1d') // 86400000 +ms('10h') // 36000000 +ms('2.5 hrs') // 9000000 +ms('2h') // 7200000 +ms('1m') // 60000 +ms('5s') // 5000 +ms('1y') // 31557600000 +ms('100') // 100 +ms('-3 days') // -259200000 +ms('-1h') // -3600000 +ms('-200') // -200 +``` + +### Convert from Milliseconds + +```js +ms(60000) // "1m" +ms(2 * 60000) // "2m" +ms(-3 * 60000) // "-3m" +ms(ms('10 hours')) // "10h" +``` + +### Time Format Written-Out + +```js +ms(60000, { long: true }) // "1 minute" +ms(2 * 60000, { long: true }) // "2 minutes" +ms(-3 * 60000, { long: true }) // "-3 minutes" +ms(ms('10 hours'), { long: true }) // "10 hours" +``` + +## Features + +- Works both in [Node.js](https://nodejs.org) and in the browser +- If a number is supplied to `ms`, a string with a unit is returned +- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`) +- If you pass a string with a number and a valid unit, the number of equivalent milliseconds is returned + +## Related Packages + +- [ms.macro](https://github.com/knpwrs/ms.macro) - Run `ms` as a macro at build-time. + +## Caught a Bug? + +1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device +2. Link the package to the global module directory: `npm link` +3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, Node.js will now use your clone of ms! + +As always, you can run the tests using: `npm test` diff --git a/Client/node_modules/simple-git/package.json b/Client/node_modules/simple-git/package.json new file mode 100644 index 000000000..cfecdc4db --- /dev/null +++ b/Client/node_modules/simple-git/package.json @@ -0,0 +1,96 @@ +{ + "_from": "simple-git", + "_id": "simple-git@2.31.0", + "_inBundle": false, + "_integrity": "sha512-/+rmE7dYZMbRAfEmn8EUIOwlM2G7UdzpkC60KF86YAfXGnmGtsPrKsym0hKvLBdFLLW019C+aZld1+6iIVy5xA==", + "_location": "/simple-git", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "simple-git", + "name": "simple-git", + "escapedName": "simple-git", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/simple-git/-/simple-git-2.31.0.tgz", + "_shasum": "3e5954c1e36c76fb382c08eaa2749a206db9f613", + "_spec": "simple-git", + "_where": "C:\\Superalgos\\Client", + "author": { + "name": "Steve King", + "email": "steve@mydev.co" + }, + "bugs": { + "url": "https://github.com/steveukx/git-js/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Steve King", + "email": "steve@mydev.co" + } + ], + "dependencies": { + "@kwsites/file-exists": "^1.1.1", + "@kwsites/promise-deferred": "^1.1.1", + "debug": "^4.3.1" + }, + "deprecated": false, + "description": "Simple GIT interface for node.js", + "devDependencies": { + "@babel/core": "^7.12.9", + "@babel/preset-env": "^7.12.7", + "@babel/preset-typescript": "^7.12.7", + "@kwsites/promise-result": "^1.1.0", + "@types/debug": "^4.1.5", + "@types/jest": "^26.0.15", + "@types/node": "^14.14.10", + "babel-jest": "^26.6.3", + "babel-plugin-module-resolver": "^4.0.0", + "jest": "^26.6.3", + "ts-node": "^9.0.0", + "typescript": "^4.1.2" + }, + "files": [ + "promise.js", + "promise.d.ts", + "src/**/*.d.ts", + "src/**/*.js", + "src/**/*.js.map", + "typings/" + ], + "homepage": "https://github.com/steveukx/git-js#readme", + "keywords": [ + "git", + "source control", + "vcs" + ], + "license": "MIT", + "main": "./src/index.js", + "name": "simple-git", + "repository": { + "type": "git", + "url": "git://github.com/steveukx/git-js.git" + }, + "scripts": { + "build": "tsc --build", + "build:clean": "yarn clean && yarn build", + "build:release": "tsc -p tsconfig.release.json", + "clean": "git clean -fxd -e .idea -e node_modules", + "postversion": "npm publish && git push && git push --tags", + "preversion": "yarn clean && yarn test && yarn build:release", + "test": "yarn test:consumer && yarn test:jest", + "test:consumer": "tsc -p test/consumer/tsconfig-standard.json && tsc -p test/consumer/tsconfig-promise.json", + "test:jest": "jest --coverage", + "tsc": "tsc" + }, + "types": "./typings/index.d.ts", + "version": "2.31.0" +} diff --git a/Client/node_modules/simple-git/promise.d.ts b/Client/node_modules/simple-git/promise.d.ts new file mode 100644 index 000000000..ebecc0d0b --- /dev/null +++ b/Client/node_modules/simple-git/promise.d.ts @@ -0,0 +1,46 @@ +import * as errors from './typings/errors'; +import * as types from './typings/types'; +import * as resp from './typings/response'; +import * as simpleGit from './typings/simple-git'; + +declare const simplegit: simplegit.SimpleGitExport; + +declare namespace simplegit { + + type SimpleGitExport = ((basePath?: string) => simplegit.SimpleGit) & { + CleanOptions: typeof types.CleanOptions + }; + + type SimpleGit = simpleGit.SimpleGit; + + // errors + type GitError = errors.GitError; + type GitConstructError = errors.GitConstructError; + type GitResponseError = errors.GitResponseError; + type TaskConfigurationError = errors.TaskConfigurationError; + + // responses + type BranchSummary = resp.BranchSummary + type CleanSummary = resp.CleanSummary; + type CleanMode = types.CleanMode; + type DiffResult = resp.DiffResult; + type FetchResult = resp.FetchResult; + type CommitResult = resp.CommitResult; + type MergeResult = resp.MergeResult; + type PullResult = resp.PullResult; + type StatusResult = resp.StatusResult; + type TagResult = resp.TagResult; + + // types + type outputHandler = types.outputHandler + type LogOptions = types.LogOptions; + type Options = types.Options; + + // deprecated + /** @deprecated use MergeResult */ + type MergeSummary = resp.MergeSummary; + /** @deprecated use CommitResult */ + type CommitSummary = resp.CommitResult; +} + +export = simplegit; diff --git a/Client/node_modules/simple-git/promise.js b/Client/node_modules/simple-git/promise.js new file mode 100644 index 000000000..a8aaf34d4 --- /dev/null +++ b/Client/node_modules/simple-git/promise.js @@ -0,0 +1,7 @@ + +const {esModuleFactory, gitExportFactory} = require('./src/git-factory'); +const {gitP} = require('./src/lib/runners/promise-wrapped'); + +module.exports = esModuleFactory( + gitExportFactory(gitP) +); diff --git a/Client/node_modules/simple-git/readme.md b/Client/node_modules/simple-git/readme.md new file mode 100644 index 000000000..e2d68674f --- /dev/null +++ b/Client/node_modules/simple-git/readme.md @@ -0,0 +1,796 @@ +# Simple Git +[![NPM version](https://img.shields.io/npm/v/simple-git.svg)](https://www.npmjs.com/package/simple-git) + [![Build Status](https://travis-ci.org/steveukx/git-js.svg?branch=master)](https://travis-ci.org/steveukx/git-js) + +A lightweight interface for running `git` commands in any [node.js](https://nodejs.org) application. + +# Installation + +Easiest through [npm](https://npmjs.org): `npm install simple-git` + +# Dependencies + +Requires [git](https://git-scm.com/downloads) to be installed and that it can be called using the command `git`. + +# Usage + +Include into your JavaScript app using: + +```js +// require the library, main export is a function +const simpleGit = require('simple-git'); +const git = simpleGit(); +``` + +Include in a TypeScript app using: + +```typescript +// Import `SimpleGit` types and the default function exported from `simple-git` +import simpleGit, {SimpleGit} from 'simple-git'; +const git: SimpleGit = simpleGit(); + +// prior to v2.6.0 required importing from `simple-git/promise` +// this import is still available but is now deprecated +import gitP, {SimpleGit} from 'simple-git/promise'; +const git: SimpleGit = gitP(); +``` + +## Configuration + +Configure each `simple-git` instance with a properties object passed to the main `simpleGit` function: + +```typescript +import simpleGit, { SimpleGit, SimpleGitOptions } from 'simple-git'; + +const options: SimpleGitOptions = { + baseDir: process.cwd(), + binary: 'git', + maxConcurrentProcesses: 6, +}; + +// when setting all options in a single object +const git: SimpleGit = simpleGit(options); + +// or split out the baseDir, supported for backward compatibility +const git: SimpleGit = simpleGit('/some/path', { binary: 'git' }); +``` + +The first argument can be either a string (representing the working directory for `git` commands to run in), +`SimpleGitOptions` object or `undefined`, the second parameter is an optional `SimpleGitOptions` object. + +All configuration properties are optional, the default values are shown in the example above. + +## Using task callbacks + +Each of the methods in the API listing below can be called in a chain and will be called in series after each other. +The result of each task is sent to a trailing callback argument: + +```javascript +const simpleGit = require('simple-git'); +const git = simpleGit(); +git.init(onInit).addRemote('origin', 'git@github.com:steveukx/git-js.git', onRemoteAdd); + +function onInit (err, initResult) { } +function onRemoteAdd (err, addRemoteResult) { } +``` + +If any of the steps in the chain result in an error, all pending steps will be cancelled, see the +[parallel tasks]((#concurrent--parallel-requests)) section for more information on how to run tasks in parallel rather than in series . + +## Using task promises + +Based on the same API as the callback API detailed below, but instead of returning the `simpleGit` object for +chaining, each task returns a promise to be fulfilled when that task is completed. + +```javascript +const simpleGit = require('simple-git'); +const git = simpleGit(); + +// using promises on each task +git.init() + .then(function onInit (initResult) { }) + .then(() => git.addRemote('origin', 'git@github.com:steveukx/git-js.git')) + .then(function onRemoteAdd (addRemoteResult) { }) + .catch(err => console.error(err)); + +// using a promise at the end of the chain to check for failures in any task +git.init().addRemote('origin', 'git@github.com:steveukx/git-js.git') + .catch(err => console.error(err)); +``` + +## Using task promises as async/await + +Whether in TypeScript or JavaScript in node.js version 8 or above the promise API will work automatically +with await: + +```typescript +import simpleGit, { SimpleGit } from 'simple-git'; + +const git: SimpleGit = simpleGit(); +const initResult = await git.init(); +const addRemoteResult = await git.addRemote('origin', 'git@github.com:steveukx/git-js.git'); +``` + +To catch errors in async code, either wrap the whole chain in a try/catch: + +```javascript +const git = simpleGit() +try { + await git.init(); + await git.addRemote(name, repoUrl); +} +catch (e) { /* handle all errors here */ } +``` + +or catch individual steps to permit the main chain to carry on executing rather than +jumping to the final `catch` on the first error: + +```javascript +const git = simpleGit() +try { + await git.init().catch(ignoreError); + await git.addRemote(name, repoUrl); +} +catch (e) { /* handle all errors here */ } + +function ignoreError () {} +``` + +## Task Responses + +Whether using a trailing callback or a Promise, tasks either return the raw `string` or `Buffer` response from the +`git` binary, or where possible a parsed interpretation of the response. + +For type details of the response for each of the tasks, please see the [TypeScript definitions](./typings/simple-git.d.ts). + + +# API + +| API | What it does | +|-----|--------------| +| `.add([fileA, ...], handlerFn)` | adds one or more files to be under source control | +| `.addAnnotatedTag(tagName, tagMessage, handlerFn)` | adds an annotated tag to the head of the current branch | +| `.addTag(name, handlerFn)` | adds a lightweight tag to the head of the current branch | +| `.catFile(options[, handlerFn])` | generate `cat-file` detail, `options` should be an array of strings as supported arguments to the [cat-file](https://git-scm.com/docs/git-cat-file) command | +| `.checkIgnore([filepath, ...], handlerFn)` | checks if filepath excluded by .gitignore rules | +| `.clearQueue()` | immediately clears the queue of pending tasks (note: any command currently in progress will still call its completion callback) | +| `.commit(message, handlerFn)` | commits changes in the current working directory with the supplied message where the message can be either a single string or array of strings to be passed as separate arguments (the `git` command line interface converts these to be separated by double line breaks) | +| `.commit(message, [fileA, ...], options, handlerFn)` | commits changes on the named files with the supplied message, when supplied, the optional options object can contain any other parameters to pass to the commit command, setting the value of the property to be a string will add `name=value` to the command string, setting any other type of value will result in just the key from the object being passed (ie: just `name`), an example of setting the author is below | +| `.customBinary(gitPath)` | sets the command to use to reference git, allows for using a git binary not available on the path environment variable | +| `.cwd(workingDirectory)` | Sets the current working directory for all commands after this step in the chain | +| `.diff(options, handlerFn)` | get the diff of the current repo compared to the last commit with a set of options supplied as a string | +| `.diff(handlerFn)` | get the diff for all file in the current repo compared to the last commit | +| `.diffSummary(handlerFn)` | gets a summary of the diff for files in the repo, uses the `git diff --stat` format to calculate changes. Handler is called with a nullable error object and an instance of the [DiffSummary](src/lib/responses/DiffSummary.js) | +| `.diffSummary(options, handlerFn)` | includes options in the call to `diff --stat options` and returns a [DiffSummary](src/lib/responses/DiffSummary.js) | +| `.env(name, value)` | Set environment variables to be passed to the spawned child processes, [see usage in detail below](#environment-variables). | +| `.exec(handlerFn)` | calls a simple function in the current step | +| `.fetch([options, ] handlerFn)` | update the local working copy database with changes from the default remote repo and branch, when supplied the options argument can be a standard [options object](#how-to-specify-options) either an array of string commands as supported by the [git fetch](https://git-scm.com/docs/git-fetch). | +| `.fetch(remote, branch, handlerFn)` | update the local working copy database with changes from a remote repo | +| `.fetch(handlerFn)` | update the local working copy database with changes from the default remote repo and branch | +| `.log([options], handlerFn)` | list commits between `options.from` and `options.to` tags or branch (if not specified will show all history). Additionally you can provide `options.file`, which is the path to a file in your repository. Then only this file will be considered. `options.symmetric` allows you to specify whether you want to use [symmetric revision range](https://git-scm.com/docs/gitrevisions#_dotted_range_notations) (To be compatible, by default, its value is true). For any other set of options, supply `options` as an array of strings to be appended to the `git log` command. To use a custom splitter in the log format, set `options.splitter` to be the string the log should be split on. Set `options.multiLine` to true to include a multi-line body in the output format. Options can also be supplied as a standard [options](#how-to-specify-options) object for adding custom properties supported by the [git log](https://git-scm.com/docs/git-log) command. | +| `.outputHandler(handlerFn)` | attaches a handler that will be called with the name of the command being run and the `stdout` and `stderr` [readable streams](https://nodejs.org/api/stream.html#stream_class_stream_readable) created by the [child process](https://nodejs.org/api/child_process.html#child_process_class_childprocess) running that command | +| `.raw(args[, handlerFn])` | Execute any arbitrary array of commands supported by the underlying git binary. When the git process returns a non-zero signal on exit and it printed something to `stderr`, the commmand will be treated as an error, otherwise treated as a success. | +| `.rebase([options,] handlerFn)` | Rebases the repo, `options` should be supplied as an array of string parameters supported by the [git rebase](https://git-scm.com/docs/git-rebase) command, or an object of options (see details below for option formats). | +| `.revert(commit [, options [, handlerFn]])` | reverts one or more commits in the working copy. The commit can be any regular commit-ish value (hash, name or offset such as `HEAD~2`) or a range of commits (eg: `master~5..master~2`). When supplied the [options](#how-to-specify-options) argument contain any options accepted by [git-revert](https://git-scm.com/docs/git-revert). | +| `.rm([fileA, ...], handlerFn)` | removes any number of files from source control | +| `.rmKeepLocal([fileA, ...], handlerFn)` | removes files from source control but leaves them on disk | +| `.stash([options, ][ handlerFn])` | Stash the working directory, optional first argument can be an array of string arguments or [options](#how-to-specify-options) object to pass to the [git stash](https://git-scm.com/docs/git-stash) command. | +| `.stashList([options, ][handlerFn])` | Retrieves the stash list, optional first argument can be an object specifying `options.splitter` to override the default value of `;;;;`, alternatively options can be a set of arguments as supported by the `git stash list` command. | +| `.tag(args[], handlerFn)` | Runs any supported [git tag](https://git-scm.com/docs/git-tag) commands with arguments passed as an array of strings . | +| `.tags([options, ] handlerFn)` | list all tags, use the optional [options](#how-to-specify-options) object to set any options allows by the [git tag](https://git-scm.com/docs/git-tag) command. Tags will be sorted by semantic version number by default, for git versions 2.7 and above, use the `--sort` option to set a custom sort. | +| `.show([options], handlerFn)` | Show various types of objects, for example the file content at a certain commit. `options` is the single value string or array of string commands you want to run | + +## git apply + +- `.applyPatch(patch, [options])` applies a single string patch (as generated by `git diff`), optionally configured with the supplied [options](#how-to-specify-options) to set any arguments supported by the [apply](https://git-scm.com/docs/git-apply) command. Returns the unmodified string response from `stdout` of the `git` binary. +- `.applyPatch(patches, [options])` applies an array of string patches (as generated by `git diff`), optionally configured with the supplied [options](#how-to-specify-options) to set any arguments supported by the [apply](https://git-scm.com/docs/git-apply) command. Returns the unmodified string response from `stdout` of the `git` binary. + +## git branch + +- `.branch([options])` uses the supplied [options](#how-to-specify-options) to run any arguments supported by the [branch](https://git-scm.com/docs/git-branch) command. Either returns a [BranchSummaryResult](src/lib/responses/BranchSummary.ts) instance when listing branches, or a [BranchSingleDeleteResult](typings/response.d.ts) type object when the options included `-d`, `-D` or `--delete` which cause it to delete a named branch rather than list existing branches. +- `.branchLocal()` gets a list of local branches as a [BranchSummaryResult](src/lib/responses/BranchSummary.ts) instance +- `.deleteLocalBranch(branchName)` deletes a local branch - treats a failed attempt as an error +- `.deleteLocalBranch(branchName, forceDelete)` deletes a local branch, optionally explicitly setting forceDelete to true - treats a failed attempt as an error +- `.deleteLocalBranches(branchNames)` deletes multiple local branches +- `.deleteLocalBranches(branchNames, forceDelete)` deletes multiple local branches, optionally explicitly setting forceDelete to true + +## git clean + +- `.clean(mode)` clean the working tree. Mode should be "n" - dry run or "f" - force +- `.clean(cleanSwitches [,options])` set `cleanSwitches` to a string containing any number of the supported single character options, optionally with a standard [options](#how-to-specify-options) object + +## git checkout + +- `.checkout(checkoutWhat [, options])` - checks out the supplied tag, revision or branch when supplied as a string, + additional arguments supported by [git checkout](https://git-scm.com/docs/git-checkout) can be supplied as an + [options](#how-to-specify-options) object/array. + +- `.checkout(options)` - uses the checks out the supplied [options](#how-to-specify-options) object/array to check out. + +- `.checkoutBranch(branchName, startPoint)` - checks out a new branch from the supplied start point. + +- `.checkoutLocalBranch(branchName)` - checks out a new local branch + +## git clone + +- `.clone(repoPath, [localPath, [options]])` clone a remote repo at `repoPath` to a local directory at `localPath`, optionally with a standard [options](#how-to-specify-options) object of additional arguments to include between `git clone` and the trailing `repo local` arguments +- `.clone(repoPath, [options])` clone a remote repo at `repoPath` to a directory in the current working directory with the same name as the repo + +- `mirror(repoPath, [localPath, [options]])` behaves the same as the `.clone` interface with the [`--mirror` flag](https://git-scm.com/docs/git-clone#Documentation/git-clone.txt---mirror) enabled. + + +## git config + +- `.addConfig(key, value, append = false)` add a local configuration property, when `append` is set to `true` the + configuration setting is appended to rather than set in the local config. +- `.listConfig()` reads the current configuration and returns a [ConfigListSummary](./src/lib/responses/ConfigList.ts) + +## git hash-object + +- `.hashObject(filePath, write = false)` computes the object ID value for the contents of the named file (which can be + outside of the work tree), optionally writing the resulting value to the object database. + +## git init + +- `.init(bare [, options])` initialize a repository using the boolean `bare` parameter to intialise a bare repository. + Any number of other arguments supported by [git init](https://git-scm.com/docs/git-init) can be supplied as an + [options](#how-to-specify-options) object/array. + +- `.init([options])` initialize a repository using any arguments supported by + [git init](https://git-scm.com/docs/git-init) supplied as an [options](#how-to-specify-options) object/array. + +## git merge + +- `.merge(options)` runs a merge using any configuration [options](#how-to-specify-options) supported + by [git merge](https://git-scm.com/docs/git-init). + Conflicts during the merge result in an error response, the response is an instance of + [MergeSummary](src/lib/responses/MergeSummary.ts) whether it was an error or success. + When successful, the MergeSummary has all detail from a the [PullSummary](src/lib/responses/PullSummary.ts) + along with summary detail for the merge. + When the merge failed, the MergeSummary contains summary detail for why the merge failed and which files + prevented the merge. + +- `.mergeFromTo(from, to [, options])` - merge from one branch to another, similar to `.merge` but with the + `from` and `to` supplied as strings separately to any additional the [options](#how-to-specify-options). + +## git mv + +- `.mv(from, to)` rename or move a single file at `from` to `to` + +- `.mv(from, to)` move all files in the `from` array to the `to` directory + + +## git pull + +- `.pull([options])` pulls all updates from the default tracked remote, any arguments supported by + [git pull](https://git-scm.com/docs/git-pull) can be supplied as an [options](#how-to-specify-options) object/array. + +- `.pull(remote, branch[, options])` pulls all updates from the specified remote branch (eg 'origin'/'master') along + with any custom [options](#how-to-specify-options) object/array + +## git push + +- `.push([options])` pushes to a named remote/branch using any supported [options](#how-to-specify-options) + from the [git push](https://git-scm.com/docs/git-push) command. Note that `simple-git` enforces the use of + `--verbose --porcelain` options in order to parse the response. You don't need to supply these options. + +- `.push(remote, branch[, options])` pushes to a named remote/branch, supports additional + [options](#how-to-specify-options) from the [git push](https://git-scm.com/docs/git-push) command. + +- `.pushTags(remote[, options])` pushes local tags to a named remote (equivalent to using `.push([remote, '--tags'])`) + +## git remote + +- `.addRemote(name, repo, [options])` adds a new named remote to be tracked as `name` at the path `repo`, optionally with any supported [options](#how-to-specify-options) for the [git add](https://git-scm.com/docs/git-remote#Documentation/git-remote.txt-emaddem) call. +- `.getRemotes([verbose])` gets a list of the named remotes, supply the optional `verbose` option as `true` to include the URLs and purpose of each ref +- `.listRemote([options])` lists remote repositories - there are so many optional arguments in the underlying `git ls-remote` call, just supply any you want to use as the optional [options](#how-to-specify-options) eg: `git.listRemote(['--heads', '--tags'], console.log)` +- `.remote([options])` runs a `git remote` command with any number of [options](#how-to-specify-options) +- `.removeRemote(name)` removes the named remote + +## git reset + +- `.reset(resetMode, [resetOptions])` resets the repository, sets the reset mode to one of the supported types (use a constant from + the exported `ResetMode` enum, or a string equivalent: `mixed`, `soft`, `hard`, `merge`, `keep`). Any number of other arguments + supported by [git reset](https://git-scm.com/docs/git-reset) can be supplied as an [options](#how-to-specify-options) object/array. + +- `.reset(resetOptions)` resets the repository with the supplied [options](#how-to-specify-options) + +- `.reset()` resets the repository in `soft` mode. + +## git rev-parse / repo properties + +- `.revparse([options])` sends the supplied [options](#how-to-specify-options) to [git rev-parse](https://git-scm.com/docs/git-rev-parse) and returns the string response from `git`. + +- `.checkIsRepo()` gets whether the current working directory is a descendent of a git repository. +- `.checkIsRepo('bare')` gets whether the current working directory is within a bare git repo (see either [git clone --bare](https://git-scm.com/docs/git-clone#Documentation/git-clone.txt---bare) or [git init --bare](https://git-scm.com/docs/git-init#Documentation/git-init.txt---bare)). +- `.checkIsRepo('root')` gets whether the current working directory is the root directory for a repo (sub-directories will return false). + +## git status + +- `.status([options])` gets the status of the current repo, resulting in a [StatusResult](typings/response.d.ts). Additional arguments + supported by [git status](https://git-scm.com/docs/git-status) can be supplied as an [options](#how-to-specify-options) object/array. + +## git submodule + +- `.subModule(options)` Run a `git submodule` command with on or more arguments passed in as an [options](#how-to-specify-options) array or object +- `.submoduleAdd(repo, path)` Adds a new sub module +- `.submoduleInit([options]` Initialises sub modules, the optional [options](#how-to-specify-options) argument can be used to pass extra options to the `git submodule init` command. +- `.submoduleUpdate(subModuleName, [options])` Updates sub modules, can be called with a sub module name and [options](#how-to-specify-options), just the options or with no arguments + +# How to Specify Options + +Where the task accepts custom options (eg: `pull` or `commit`), these can be supplied as an object, the keys of which +will all be merged as trailing arguments in the command string, or as a simple array of strings. + +## Options as an Object + +When the value of the property in the options object is a `string`, that name value +pair will be included in the command string as `name=value`. For example: + +```js +// results in 'git pull origin master --no-rebase' +git().pull('origin', 'master', {'--no-rebase': null}) + +// results in 'git pull origin master --rebase=true' +git().pull('origin', 'master', {'--rebase': 'true'}) +``` + +## Options as an Array + +Options can also be supplied as an array of strings to be merged into the task's commands +in the same way as when an object is used: + +```javascript +// +git.pull('origin', 'master', ['--no-rebase']) +``` + +# Release History + +Major release 2.x changes the way the queue of tasks are handled to use promises internally and makes +available the `.then` and `.catch` methods for integrating with promise consumers or async await. + +TypeScript is used by default for all new code, allowing for auto-generated type definitions and a phased +re-write of the library rather than a big-bang. + +For a per-release overview of changes, see the [changelog](./CHANGELOG.md). + +## 2.x Upgrade Notes + +When upgrading to release 2.x from 1.x, see the [changelog](./CHANGELOG.md) for the release 2.0.0 + +# Recently Deprecated / Altered APIs + +- ~~2.25.0 depends on Node.js version 12 or above, for use in lower versions of node.js ensure you are also + importing the necessary polyfills from `core-js`, see [Legacy Node Versions](./docs/LEGACY_NODE_VERSIONS.md)~~ + _this change has been reverted in 2.30.0 and will be postponed until version 3.x_. + +- 2.13.0 `.push` now returns a [PushResult](./typings/response.d.ts) parsed representation of the response. + +- 2.11.0 treats tasks chained together as atomic, where any failure in the chain prevents later tasks from + executing and tasks called from the root `git` instance as the origin of a new chain, and able to be + [run in parallel](#concurrent--parallel-requests) without failures impacting one anther. Prior to this + version, tasks called on the root `git` instance would be cancelled when another one failed. + +- 2.7.0 deprecates use of `.silent()` in favour of using the `debug` library - see [Enable Logging](#enable-logging) + for further details. + +- 2.6.0 introduced `.then` and `.catch` as a way to chain a promise onto the current step of the chain. +Importing from `simple-git/promise` instead of just `simple-git` is no longer required and is actively discouraged. + +For the full history see the [changelog](./CHANGELOG.md); + +# Concurrent / Parallel Requests + +When the methods of `simple-git` are chained together, they create an execution chain that will run in series, +useful for when the tasks themselves are order-dependent, eg: + +```typescript +const git = simpleGit(); +git.init().addRemote('origin', 'https://some-repo.git').fetch(); +``` + +Each task requires that the one before it has been run successfully before it is called, any errors in a +step of the chain should prevent later steps from being attempted. + +When the methods of `simple-git` are called on the root instance (ie: `git = simpleGit()`) rather than chained +off another task, it starts a new chain and will not be affected failures in tasks already being run. Useful +for when the tasks are independent of each other, eg: + +```typescript +const git = simpleGit(); +const results = await Promise.all([ + git.raw('rev-parse', '--show-cdup').catch(swallow), + git.raw('rev-parse', '--show-prefix').catch(swallow), +]); +function swallow (err) { return null } +``` + +Each `simple-git` instance limits the number of spawned child processes that can be run simultaneously and +manages the queue of pending tasks for you. Configure this value by passing an options object to the +`simpleGit` function, eg: + +```typescript +const git = simpleGit({ maxConcurrentProcesses: 10 }); +``` + +Treating tasks called on the root instance as the start of separate chains is a change to the behaviour of + `simple-git` and was added in version `2.11.0`. + +# Complex Requests + +When no suitable wrapper exists in the interface for creating a request, it is possible to run a command directly +using `git.raw([...], handler)`. The array of commands are passed directly to the `git` binary: + +```js +const git = require('simple-git'); +const path = '/path/to/repo'; +const commands = [ 'config', '--global', 'advice.pushNonFastForward', 'false' ]; + +// using an array of commands +git(path).raw(commands, (err, result) => { + + // err is null unless this command failed + // result is the raw output of this command + +}); + +// using a var-args of strings and awaiting rather than using the callback +const result = await git(path).raw(...commands); +``` + +# Authentication + +The easiest way to supply a username / password to the remote host is to include it in the URL, for example: + +```js +const USER = 'something'; +const PASS = 'somewhere'; +const REPO = 'github.com/username/private-repo'; + +const git = require('simple-git'); +const remote = `https://${USER}:${PASS}@${REPO}`; + +git().silent(true) + .clone(remote) + .then(() => console.log('finished')) + .catch((err) => console.error('failed: ', err)); + +``` + +Be sure to enable silent mode to prevent fatal errors from being logged to stdout. + +# Environment Variables + +Pass one or more environment variables to the child processes spawned by `simple-git` with the `.env` method which +supports passing either an object of name=value pairs or setting a single variable at a time: + +```js +const GIT_SSH_COMMAND = "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"; + +const git = require('simple-git'); + +git() + .env('GIT_SSH_COMMAND', GIT_SSH_COMMAND) + .status((err, status) => { /* */ }) + +git().env({ ...process.env, GIT_SSH_COMMAND }) + .status() + .then(status => { }) + .catch(err => {}); + +``` + +Note - when passing environment variables into the child process, these will replace the standard `process.env` +variables, the example above creates a new object based on `process.env` but with the `GIT_SSH_COMMAND` property +added. + +# TypeScript + +To import with TypeScript: + +```typescript +import simpleGit, { SimpleGit, StatusResult } from 'simple-git'; + +const git: SimpleGit = simpleGit(); +const status: StatusResult = await git.status(); +``` + +# Promise and async compatible + +For each task run, the return is the same `SimpleGit` instance for ease of building +a series of tasks that all run sequentially and are treated as atomic (ie: if any +step fails, the later tasks are not attempted). + +To work with promises (either directly or as part of async/await), simply call the +function as before: + +```js +const simpleGit = require('simple-git'); +const git = simpleGit(); + +// async / await +const status = await git.status(); + +// promise +git.status().then(result => {...}); +``` + +# Exception Handling + +When the `git` process exits with a non-zero status (or in some cases like `merge` the git +process exits with a successful zero code but there are conflicts in the merge) the task +will reject with a `GitError` when there is no available parser to handle the error or a +`GitResponseError` for when there is. + +See the `err` property of the callback: + +```javascript +git.merge((err, mergeSummary) => { + if (err.git) { + mergeSummary = err.git; // the failed mergeSummary + } +}) +``` + +Catch errors with try/catch in async code: + +```javascript +try { + const mergeSummary = await git.merge(); + console.log(`Merged ${ mergeSummary.merges.length } files`); +} +catch (err) { + // err.message - the string summary of the error + // err.stack - some stack trace detail + // err.git - where a parser was able to run, this is the parsed content + + console.error(`Merge resulted in ${ err.git.conflicts.length } conflicts`); +} +``` + +Catch errors with a `.catch` on the promise: + +```javascript +const mergeSummary = await git.merge() + .catch(err => { + if (err.git) { return err.git; } // the unsuccessful mergeSummary + throw err; // some other error, so throw + }); + +if (mergeSummary.failed) { + console.error(`Merge resulted in ${ mergeSummary.conflicts.length } conflicts`); +} +``` + +With typed errors available in TypeScript + +```typescript +import simpleGit, { MergeSummary, GitResponseError } from 'simple-git'; +try { + const mergeSummary = await simpleGit().merge(); + console.log(`Merged ${ mergeSummary.merges.length } files`); +} +catch (err) { + // err.message - the string summary of the error + // err.stack - some stack trace detail + // err.git - where a parser was able to run, this is the parsed content + const mergeSummary: MergeSummary = (err as GitResponseError).git; + const conflicts = mergeSummary?.conflicts || []; + + console.error(`Merge resulted in ${ conflicts.length } conflicts`); +} +``` + +# Troubleshooting / FAQ + +### Enable logging + +This library uses [debug](https://www.npmjs.com/package/debug) to handle logging, +to enable logging, use either the environment variable: + +``` +"DEBUG=simple-git" node ./your-app.js +``` + +Or explicitly enable logging using the `debug` library itself: + +```javascript +require('debug').enable('simple-git'); +``` + +### Enable Verbose Logging + +If the regular logs aren't sufficient to find the source of your issue, enable one or more of the +following for a more complete look at what the library is doing: + +- `DEBUG=simple-git:task:*` adds debug output for each task being run through the library +- `DEBUG=simple-git:task:add:*` adds debug output for specific git commands, just replace the `add` with + the command you need to investigate. To output multiple just add them both to the environment + variable eg: `DEBUG=simple-git:task:add:*,simple-git:task:commit:*` +- `DEBUG=simple-git:output:*` logs the raw data received from the git process on both `stdOut` and `stdErr` +- `DEBUG=simple-git,simple-git:*` logs _everything_ + +### Every command returns ENOENT error message + +There are a few potential reasons: + +- `git` isn't available as a binary for the user running the main `node` process, custom paths to the binary can be used + with the `.customBinary(...)` api option. + +- the working directory passed in to the main `simple-git` function isn't accessible, check it is read/write accessible + by the user running the `node` process. This library uses + [@kwsites/file-exists](https://www.npmjs.com/package/@kwsites/file-exists) to validate the working directory exists, + to output its logs add `@kwsites/file-exists` to your `DEBUG` environment variable. eg: + + `DEBUG=@kwsites/file-exists,simple-git node ./your-app.js` + +### Log response properties are out of order + +The properties of `git.log` are fetched using the character sequence ` ò ` as a delimiter. If your commit messages +use this sequence, supply a custom `splitter` in the options, for example: `git.log({ splitter: '💻' })` + +### Pull / Diff / Merge summary responses don't recognise any files + +- Enable verbose logs with the environment variable `DEBUG=simple-git:task:*,simple-git:output:*` +- Check the output (for example: `simple-git:output:diff:1 [stdOut] 1 file changed, 1 insertion(+)`) +- Check the `stdOut` output is the same as you would expect to see when running the command directly in terminal +- Check the language used in the response is english locale + +In some cases `git` will show progress messages or additional detail on error states in the output for +`stdErr` that will help debug your issue, these messages are also included in the verbose log. + +### Legacy Node Versions + +From `v3.x`, `simple-git` will drop support for `node.js` version 10 or below, to use in a lower version of +node will result in errors such as: + +- `Object.fromEntries is not a function` +- `Object.entries is not a function` +- `message.flatMap is not a function` + +To resolve these issues, either upgrade to a newer version of node.js or ensure you are using the necessary +polyfills from `core-js` - see [Legacy Node Versions](./docs/LEGACY_NODE_VERSIONS.md). + +# Examples + + +### using a pathspec to limit the scope of the task + +If the `simple-git` api doesn't explicitly limit the scope of the task being run (ie: `git.add()` requires the files to +be added, but `git.status()` will run against the entire repo), add a `pathspec` to the command using trailing options: + +```typescript +const git = simpleGit(); +const wholeRepoStatus = await git.status(); +const subDirStatusUsingOptArray = await git.status(['--', 'sub-dir']); +const subDirStatusUsingOptObject = await git.status({'--': null, 'sub-dir': null}); +``` + +### async await + +```javascript +async function status (workingDir) { + const git = require('simple-git'); + + let statusSummary = null; + try { + statusSummary = await git(workingDir).status(); + } + catch (e) { + // handle the error + } + + return statusSummary; +} + +// using the async function +status(__dirname + '/some-repo').then(status => console.log(status)); +``` + +### Initialise a git repo if necessary + +```javascript +const simpleGit = require('simple-git'); +const git = simpleGit(__dirname); + +git.checkIsRepo() + .then(isRepo => !isRepo && initialiseRepo(git)) + .then(() => git.fetch()); + +function initialiseRepo (git) { + return git.init() + .then(() => git.addRemote('origin', 'https://some.git.repo')) +} +``` + +### Update repo and get a list of tags + +```javascript +require('simple-git')(__dirname + '/some-repo') + .pull() + .tags((err, tags) => console.log("Latest available tag: %s", tags.latest)); + +// update repo and when there are changes, restart the app +require('simple-git')() + .pull((err, update) => { + if(update && update.summary.changes) { + require('child_process').exec('npm restart'); + } + }); +``` + +### Starting a new repo + +```javascript +require('simple-git')() + .init() + .add('./*') + .commit("first commit!") + .addRemote('origin', 'https://github.com/user/repo.git') + .push('origin', 'master'); +``` + +### push with `-u` + +```js +require('simple-git')() + .add('./*') + .commit("first commit!") + .addRemote('origin', 'some-repo-url') + .push(['-u', 'origin', 'master'], () => console.log('done')); +``` + +### Piping to the console for long running tasks + +```js +require('simple-git')() + .outputHandler((command, stdout, stderr) => { + stdout.pipe(process.stdout); + stderr.pipe(process.stderr); + }) + .checkout('https://github.com/user/repo.git'); +``` + +### Update repo and print messages when there are changes, restart the app + +```javascript +require('simple-git')() + .exec(() => console.log('Starting pull...')) + .pull((err, update) => { + if(update && update.summary.changes) { + require('child_process').exec('npm restart'); + } + }) + .exec(() => console.log('pull done.')); +``` + +### Get a full commits list, and then only between 0.11.0 and 0.12.0 tags + +```javascript +require('simple-git')() + .log((err, log) => console.log(log)) + .log('0.11.0', '0.12.0', (err, log) => console.log(log)); +``` + +### Set the local configuration for author, then author for an individual commit + +```javascript +require('simple-git')() + .addConfig('user.name', 'Some One') + .addConfig('user.email', 'some@one.com') + .commit('committed as "Some One"', 'file-one') + .commit('committed as "Another Person"', 'file-two', { '--author': '"Another Person "' }); +``` + +### Get remote repositories + +```javascript +require('simple-git')() + .listRemote(['--get-url'], (err, data) => { + if (!err) { + console.log('Remote url for repository at ' + __dirname + ':'); + console.log(data); + } + }); +``` diff --git a/Client/node_modules/simple-git/src/git-factory.js b/Client/node_modules/simple-git/src/git-factory.js new file mode 100644 index 000000000..e73c93146 --- /dev/null +++ b/Client/node_modules/simple-git/src/git-factory.js @@ -0,0 +1,46 @@ +const Git = require('./git'); +const {GitConstructError} = require('./lib/api'); +const {createInstanceConfig, folderExists} = require('./lib/utils'); + +const api = Object.create(null); +for (let imported = require('./lib/api'), keys = Object.keys(imported), i = 0; i < keys.length; i++) { + const name = keys[i]; + if (/^[A-Z]/.test(name)) { + api[name] = imported[name]; + } +} + +/** + * Adds the necessary properties to the supplied object to enable it for use as + * the default export of a module. + * + * Eg: `module.exports = esModuleFactory({ something () {} })` + */ +module.exports.esModuleFactory = function esModuleFactory (defaultExport) { + return Object.defineProperties(defaultExport, { + __esModule: {value: true}, + default: {value: defaultExport}, + }); +} + +module.exports.gitExportFactory = function gitExportFactory (factory, extra) { + return Object.assign(function () { + return factory.apply(null, arguments); + }, + api, + extra || {}, + ); +}; + +module.exports.gitInstanceFactory = function gitInstanceFactory (baseDir, options) { + const config = createInstanceConfig( + baseDir && (typeof baseDir === 'string' ? {baseDir} : baseDir), + options + ); + + if (!folderExists(config.baseDir)) { + throw new GitConstructError(config, `Cannot use simple-git on a directory that does not exist`); + } + + return new Git(config); +}; diff --git a/Client/node_modules/simple-git/src/git.js b/Client/node_modules/simple-git/src/git.js new file mode 100644 index 000000000..85419f0e8 --- /dev/null +++ b/Client/node_modules/simple-git/src/git.js @@ -0,0 +1,985 @@ +const {GitExecutor} = require('./lib/runners/git-executor'); + +const {Scheduler} = require('./lib/runners/scheduler'); +const {GitLogger} = require('./lib/git-logger'); +const {adhocExecTask, configurationErrorTask} = require('./lib/tasks/task'); +const {NOOP, appendTaskOptions, asArray, filterArray, filterPrimitives, filterString, filterStringOrStringArray, filterType, folderExists, getTrailingOptions, trailingFunctionArgument, trailingOptionsArgument} = require('./lib/utils'); +const {applyPatchTask} = require('./lib/tasks/apply-patch') +const {branchTask, branchLocalTask, deleteBranchesTask, deleteBranchTask} = require('./lib/tasks/branch'); +const {taskCallback} = require('./lib/task-callback'); +const {checkIsRepoTask} = require('./lib/tasks/check-is-repo'); +const {cloneTask, cloneMirrorTask} = require('./lib/tasks/clone'); +const {addConfigTask, listConfigTask} = require('./lib/tasks/config'); +const {cleanWithOptionsTask, isCleanOptionsArray} = require('./lib/tasks/clean'); +const {commitTask} = require('./lib/tasks/commit'); +const {diffSummaryTask} = require('./lib/tasks/diff'); +const {fetchTask} = require('./lib/tasks/fetch'); +const {hashObjectTask} = require('./lib/tasks/hash-object'); +const {initTask} = require('./lib/tasks/init'); +const {logTask, parseLogOptions} = require('./lib/tasks/log'); +const {mergeTask} = require('./lib/tasks/merge'); +const {moveTask} = require("./lib/tasks/move"); +const {pullTask} = require('./lib/tasks/pull'); +const {pushTagsTask, pushTask} = require('./lib/tasks/push'); +const {addRemoteTask, getRemotesTask, listRemotesTask, remoteTask, removeRemoteTask} = require('./lib/tasks/remote'); +const {getResetMode, resetTask} = require('./lib/tasks/reset'); +const {stashListTask} = require('./lib/tasks/stash-list'); +const {statusTask} = require('./lib/tasks/status'); +const {addSubModuleTask, initSubModuleTask, subModuleTask, updateSubModuleTask} = require('./lib/tasks/sub-module'); +const {addAnnotatedTagTask, addTagTask, tagListTask} = require('./lib/tasks/tag'); +const {straightThroughStringTask} = require('./lib/tasks/task'); +const {parseCheckIgnore} = require('./lib/responses/CheckIgnore'); + +const ChainedExecutor = Symbol('ChainedExecutor'); + +/** + * Git handling for node. All public functions can be chained and all `then` handlers are optional. + * + * @param {SimpleGitOptions} options Configuration settings for this instance + * + * @constructor + */ +function Git (options) { + this._executor = new GitExecutor( + options.binary, options.baseDir, + new Scheduler(options.maxConcurrentProcesses) + ); + this._logger = new GitLogger(); +} + +/** + * The executor that runs each of the added commands + * @type {GitExecutor} + * @private + */ +Git.prototype._executor = null; + +/** + * Logging utility for printing out info or error messages to the user + * @type {GitLogger} + * @private + */ +Git.prototype._logger = null; + +/** + * Sets the path to a custom git binary, should either be `git` when there is an installation of git available on + * the system path, or a fully qualified path to the executable. + * + * @param {string} command + * @returns {Git} + */ +Git.prototype.customBinary = function (command) { + this._executor.binary = command; + return this; +}; + +/** + * Sets an environment variable for the spawned child process, either supply both a name and value as strings or + * a single object to entirely replace the current environment variables. + * + * @param {string|Object} name + * @param {string} [value] + * @returns {Git} + */ +Git.prototype.env = function (name, value) { + if (arguments.length === 1 && typeof name === 'object') { + this._executor.env = name; + } else { + (this._executor.env = this._executor.env || {})[name] = value; + } + + return this; +}; + +/** + * Sets the working directory of the subsequent commands. + */ +Git.prototype.cwd = function (workingDirectory) { + const task = (typeof workingDirectory !== 'string') + ? configurationErrorTask('Git.cwd: workingDirectory must be supplied as a string') + : adhocExecTask(() => { + if (!folderExists(workingDirectory)) { + throw new Error(`Git.cwd: cannot change to non-directory "${ workingDirectory }"`); + } + + return (this._executor.cwd = workingDirectory); + }); + + return this._runTask(task, trailingFunctionArgument(arguments) || NOOP); +}; + +/** + * Sets a handler function to be called whenever a new child process is created, the handler function will be called + * with the name of the command being run and the stdout & stderr streams used by the ChildProcess. + * + * @example + * require('simple-git') + * .outputHandler(function (command, stdout, stderr) { + * stdout.pipe(process.stdout); + * }) + * .checkout('https://github.com/user/repo.git'); + * + * @see https://nodejs.org/api/child_process.html#child_process_class_childprocess + * @see https://nodejs.org/api/stream.html#stream_class_stream_readable + * @param {Function} outputHandler + * @returns {Git} + */ +Git.prototype.outputHandler = function (outputHandler) { + this._executor.outputHandler = outputHandler; + return this; +}; + +/** + * Initialize a git repo + * + * @param {Boolean} [bare=false] + * @param {Function} [then] + */ +Git.prototype.init = function (bare, then) { + return this._runTask( + initTask(bare === true, this._executor.cwd, getTrailingOptions(arguments)), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Check the status of the local repo + */ +Git.prototype.status = function () { + return this._runTask( + statusTask(getTrailingOptions(arguments)), + trailingFunctionArgument(arguments), + ); +}; + +/** + * List the stash(s) of the local repo + */ +Git.prototype.stashList = function (options) { + return this._runTask( + stashListTask( + trailingOptionsArgument(arguments) || {}, + filterArray(options) && options || [] + ), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Stash the local repo + * + * @param {Object|Array} [options] + * @param {Function} [then] + */ +Git.prototype.stash = function (options, then) { + return this._runTask( + straightThroughStringTask(['stash', ...getTrailingOptions(arguments)]), + trailingFunctionArgument(arguments), + ); +}; + +function createCloneTask (api, task, repoPath, localPath) { + if (typeof repoPath !== 'string') { + return configurationErrorTask(`git.${ api }() requires a string 'repoPath'`); + } + + return task(repoPath, filterType(localPath, filterString), getTrailingOptions(arguments)); +} + + +/** + * Clone a git repo + */ +Git.prototype.clone = function () { + return this._runTask( + createCloneTask('clone', cloneTask, ...arguments), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Mirror a git repo + */ +Git.prototype.mirror = function () { + return this._runTask( + createCloneTask('mirror', cloneMirrorTask, ...arguments), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Moves one or more files to a new destination. + * + * @see https://git-scm.com/docs/git-mv + * + * @param {string|string[]} from + * @param {string} to + */ +Git.prototype.mv = function (from, to) { + return this._runTask(moveTask(from, to), trailingFunctionArgument(arguments)); +}; + +/** + * Internally uses pull and tags to get the list of tags then checks out the latest tag. + * + * @param {Function} [then] + */ +Git.prototype.checkoutLatestTag = function (then) { + var git = this; + return this.pull(function () { + git.tags(function (err, tags) { + git.checkout(tags.latest, then); + }); + }); +}; + +/** + * Adds one or more files to source control + */ +Git.prototype.add = function (files) { + return this._run( + ['add'].concat(files), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Commits changes in the current working directory - when specific file paths are supplied, only changes on those + * files will be committed. + * + * @param {string|string[]} message + * @param {string|string[]} [files] + * @param {Object} [options] + * @param {Function} [then] + */ +Git.prototype.commit = function (message, files, options, then) { + const next = trailingFunctionArgument(arguments); + const messages = []; + + if (filterStringOrStringArray(message)) { + messages.push(...asArray(message)); + } + else { + console.warn('simple-git deprecation notice: git.commit: requires the commit message to be supplied as a string/string[], this will be an error in version 3'); + } + + return this._runTask( + commitTask( + messages, + asArray(filterType(files, filterStringOrStringArray, [])), + [...filterType(options, filterArray, []), ...getTrailingOptions(arguments, 0, true)] + ), + next + ); +}; + +/** + * Pull the updated contents of the current repo + */ +Git.prototype.pull = function (remote, branch, options, then) { + return this._runTask( + pullTask(filterType(remote, filterString), filterType(branch, filterString), getTrailingOptions(arguments)), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Fetch the updated contents of the current repo. + * + * @example + * .fetch('upstream', 'master') // fetches from master on remote named upstream + * .fetch(function () {}) // runs fetch against default remote and branch and calls function + * + * @param {string} [remote] + * @param {string} [branch] + */ +Git.prototype.fetch = function (remote, branch) { + return this._runTask( + fetchTask(filterType(remote, filterString), filterType(branch, filterString), getTrailingOptions(arguments)), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Disables/enables the use of the console for printing warnings and errors, by default messages are not shown in + * a production environment. + * + * @param {boolean} silence + * @returns {Git} + */ +Git.prototype.silent = function (silence) { + this._logger.silent(!!silence); + return this; +}; + +/** + * List all tags. When using git 2.7.0 or above, include an options object with `"--sort": "property-name"` to + * sort the tags by that property instead of using the default semantic versioning sort. + * + * Note, supplying this option when it is not supported by your Git version will cause the operation to fail. + * + * @param {Object} [options] + * @param {Function} [then] + */ +Git.prototype.tags = function (options, then) { + return this._runTask( + tagListTask(getTrailingOptions(arguments)), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Rebases the current working copy. Options can be supplied either as an array of string parameters + * to be sent to the `git rebase` command, or a standard options object. + */ +Git.prototype.rebase = function () { + return this._run( + ['rebase'].concat(getTrailingOptions(arguments)), + trailingFunctionArgument(arguments) + ); +}; + +/** + * Reset a repo + * + * @param {string|string[]} [mode=soft] Either an array of arguments supported by the 'git reset' command, or the + * string value 'soft' or 'hard' to set the reset mode. + * @param {Function} [then] + */ +Git.prototype.reset = function (mode, then) { + return this._runTask( + resetTask(getResetMode(mode), getTrailingOptions(arguments)), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Revert one or more commits in the local working copy + */ +Git.prototype.revert = function (commit) { + const next = trailingFunctionArgument(arguments); + + if (typeof commit !== 'string') { + return this._runTask( + configurationErrorTask('Commit must be a string'), + next, + ); + } + + return this._run([ + 'revert', + ...getTrailingOptions(arguments, 0, true), + commit + ], next); +}; + +/** + * Add a lightweight tag to the head of the current branch + * + * @param {string} name + * @param {Function} [then] + */ +Git.prototype.addTag = function (name, then) { + const task = (typeof name === 'string') + ? addTagTask(name) + : configurationErrorTask('Git.addTag requires a tag name'); + + return this._runTask(task, trailingFunctionArgument(arguments)); +}; + +/** + * Add an annotated tag to the head of the current branch + * + * @param {string} tagName + * @param {string} tagMessage + * @param {Function} [then] + */ +Git.prototype.addAnnotatedTag = function (tagName, tagMessage, then) { + return this._runTask( + addAnnotatedTagTask(tagName, tagMessage), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Check out a tag or revision, any number of additional arguments can be passed to the `git checkout` command + * by supplying either a string or array of strings as the `what` parameter. + * + * @param {string|string[]} what One or more commands to pass to `git checkout` + * @param {Function} [then] + */ +Git.prototype.checkout = function (what, then) { + const commands = ['checkout', ...getTrailingOptions(arguments, true)]; + return this._runTask( + straightThroughStringTask(commands), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Check out a remote branch + * + * @param {string} branchName name of branch + * @param {string} startPoint (e.g origin/development) + * @param {Function} [then] + */ +Git.prototype.checkoutBranch = function (branchName, startPoint, then) { + return this.checkout(['-b', branchName, startPoint], trailingFunctionArgument(arguments)); +}; + +/** + * Check out a local branch + */ +Git.prototype.checkoutLocalBranch = function (branchName, then) { + return this.checkout(['-b', branchName], trailingFunctionArgument(arguments)); +}; + +/** + * Delete a local branch + */ +Git.prototype.deleteLocalBranch = function (branchName, forceDelete, then) { + return this._runTask( + deleteBranchTask(branchName, typeof forceDelete === "boolean" ? forceDelete : false), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Delete one or more local branches + */ +Git.prototype.deleteLocalBranches = function (branchNames, forceDelete, then) { + return this._runTask( + deleteBranchesTask(branchNames, typeof forceDelete === "boolean" ? forceDelete : false), + trailingFunctionArgument(arguments), + ); +}; + +/** + * List all branches + * + * @param {Object | string[]} [options] + * @param {Function} [then] + */ +Git.prototype.branch = function (options, then) { + return this._runTask( + branchTask(getTrailingOptions(arguments)), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Return list of local branches + * + * @param {Function} [then] + */ +Git.prototype.branchLocal = function (then) { + return this._runTask( + branchLocalTask(), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Add config to local git instance + * + * @param {string} key configuration key (e.g user.name) + * @param {string} value for the given key (e.g your name) + * @param {boolean} [append=false] optionally append the key/value pair (equivalent of passing `--add` option). + * @param {Function} [then] + */ +Git.prototype.addConfig = function (key, value, append, then) { + return this._runTask( + addConfigTask(key, value, typeof append === "boolean" ? append : false), + trailingFunctionArgument(arguments), + ); +}; + +Git.prototype.listConfig = function () { + return this._runTask(listConfigTask(), trailingFunctionArgument(arguments)); +}; + +/** + * Executes any command against the git binary. + */ +Git.prototype.raw = function (commands) { + const createRestCommands = !Array.isArray(commands); + const command = [].slice.call(createRestCommands ? arguments : commands, 0); + + for (let i = 0; i < command.length && createRestCommands; i++) { + if (!filterPrimitives(command[i])) { + command.splice(i, command.length - i); + break; + } + } + + command.push( + ...getTrailingOptions(arguments, 0, true), + ); + + var next = trailingFunctionArgument(arguments); + + if (!command.length) { + return this._runTask( + configurationErrorTask('Raw: must supply one or more command to execute'), + next, + ); + } + + return this._run(command, next); +}; + +Git.prototype.submoduleAdd = function (repo, path, then) { + return this._runTask( + addSubModuleTask(repo, path), + trailingFunctionArgument(arguments), + ); +}; + +Git.prototype.submoduleUpdate = function (args, then) { + return this._runTask( + updateSubModuleTask(getTrailingOptions(arguments, true)), + trailingFunctionArgument(arguments), + ); +}; + +Git.prototype.submoduleInit = function (args, then) { + return this._runTask( + initSubModuleTask(getTrailingOptions(arguments, true)), + trailingFunctionArgument(arguments), + ); +}; + +Git.prototype.subModule = function (options, then) { + return this._runTask( + subModuleTask(getTrailingOptions(arguments)), + trailingFunctionArgument(arguments), + ); +}; + +Git.prototype.listRemote = function () { + return this._runTask( + listRemotesTask(getTrailingOptions(arguments)), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Adds a remote to the list of remotes. + */ +Git.prototype.addRemote = function (remoteName, remoteRepo, then) { + return this._runTask( + addRemoteTask(remoteName, remoteRepo, getTrailingOptions(arguments)), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Removes an entry by name from the list of remotes. + */ +Git.prototype.removeRemote = function (remoteName, then) { + return this._runTask( + removeRemoteTask(remoteName), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Gets the currently available remotes, setting the optional verbose argument to true includes additional + * detail on the remotes themselves. + */ +Git.prototype.getRemotes = function (verbose, then) { + return this._runTask( + getRemotesTask(verbose === true), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Compute object ID from a file + */ +Git.prototype.hashObject = function (path, write) { + return this._runTask( + hashObjectTask(path, write === true), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Call any `git remote` function with arguments passed as an array of strings. + * + * @param {string[]} options + * @param {Function} [then] + */ +Git.prototype.remote = function (options, then) { + return this._runTask( + remoteTask(getTrailingOptions(arguments)), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Merges from one branch to another, equivalent to running `git merge ${from} $[to}`, the `options` argument can + * either be an array of additional parameters to pass to the command or null / omitted to be ignored. + * + * @param {string} from + * @param {string} to + */ +Git.prototype.mergeFromTo = function (from, to) { + if (!(filterString(from) && filterString(to))) { + return this._runTask(configurationErrorTask( + `Git.mergeFromTo requires that the 'from' and 'to' arguments are supplied as strings` + )); + } + + return this._runTask( + mergeTask([from, to, ...getTrailingOptions(arguments)]), + trailingFunctionArgument(arguments, false), + ); +}; + +/** + * Runs a merge, `options` can be either an array of arguments + * supported by the [`git merge`](https://git-scm.com/docs/git-merge) + * or an options object. + * + * Conflicts during the merge result in an error response, + * the response type whether it was an error or success will be a MergeSummary instance. + * When successful, the MergeSummary has all detail from a the PullSummary + * + * @param {Object | string[]} [options] + * @param {Function} [then] + * @returns {*} + * + * @see ./responses/MergeSummary.js + * @see ./responses/PullSummary.js + */ +Git.prototype.merge = function () { + return this._runTask( + mergeTask(getTrailingOptions(arguments)), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Call any `git tag` function with arguments passed as an array of strings. + * + * @param {string[]} options + * @param {Function} [then] + */ +Git.prototype.tag = function (options, then) { + const command = getTrailingOptions(arguments); + + if (command[0] !== 'tag') { + command.unshift('tag'); + } + + return this._run(command, trailingFunctionArgument(arguments)); +}; + +/** + * Updates repository server info + * + * @param {Function} [then] + */ +Git.prototype.updateServerInfo = function (then) { + return this._run(["update-server-info"], trailingFunctionArgument(arguments)); +}; + +/** + * Pushes the current committed changes to a remote, optionally specify the names of the remote and branch to use + * when pushing. Supply multiple options as an array of strings in the first argument - see examples below. + */ +Git.prototype.push = function (remote, branch, then) { + const task = pushTask( + {remote: filterType(remote, filterString), branch: filterType(branch, filterString)}, + getTrailingOptions(arguments), + ); + return this._runTask(task, trailingFunctionArgument(arguments)); +}; + +/** + * Pushes the current tag changes to a remote which can be either a URL or named remote. When not specified uses the + * default configured remote spec. + * + * @param {string} [remote] + * @param {Function} [then] + */ +Git.prototype.pushTags = function (remote, then) { + const task = pushTagsTask({remote: filterType(remote, filterString)}, getTrailingOptions(arguments)); + + return this._runTask(task, trailingFunctionArgument(arguments)); +}; + +/** + * Removes the named files from source control. + * + * @param {string|string[]} files + * @param {Function} [then] + */ +Git.prototype.rm = function (files, then) { + return this._rm(files, '-f', then); +}; + +/** + * Removes the named files from source control but keeps them on disk rather than deleting them entirely. To + * completely remove the files, use `rm`. + * + * @param {string|string[]} files + * @param {Function} [then] + */ +Git.prototype.rmKeepLocal = function (files, then) { + return this._rm(files, '--cached', then); +}; + +/** + * Returns a list of objects in a tree based on commit hash. Passing in an object hash returns the object's content, + * size, and type. + * + * Passing "-p" will instruct cat-file to determine the object type, and display its formatted contents. + * + * @param {string[]} [options] + * @param {Function} [then] + */ +Git.prototype.catFile = function (options, then) { + return this._catFile('utf-8', arguments); +}; + +/** + * Equivalent to `catFile` but will return the native `Buffer` of content from the git command's stdout. + * + * @param {string[]} options + * @param then + */ +Git.prototype.binaryCatFile = function (options, then) { + return this._catFile('buffer', arguments); +}; + +Git.prototype._catFile = function (format, args) { + var handler = trailingFunctionArgument(args); + var command = ['cat-file']; + var options = args[0]; + + if (typeof options === 'string') { + return this._runTask( + configurationErrorTask('Git#catFile: options must be supplied as an array of strings'), + handler, + ); + } + + if (Array.isArray(options)) { + command.push.apply(command, options); + } + + return this._run(command, handler, { + format: format + }); +}; + +Git.prototype.diff = function (options, then) { + const command = ['diff', ...getTrailingOptions(arguments)]; + + if (typeof options === 'string') { + command.splice(1, 0, options); + this._logger.warn('Git#diff: supplying options as a single string is now deprecated, switch to an array of strings'); + } + + return this._runTask( + straightThroughStringTask(command), + trailingFunctionArgument(arguments), + ); +}; + +Git.prototype.diffSummary = function () { + return this._runTask( + diffSummaryTask(getTrailingOptions(arguments, 1)), + trailingFunctionArgument(arguments), + ); +}; + +Git.prototype.applyPatch = function(patches) { + const task = !filterStringOrStringArray(patches) + ? configurationErrorTask(`git.applyPatch requires one or more string patches as the first argument`) + : applyPatchTask(asArray(patches), getTrailingOptions([].slice.call(arguments, 1))); + + return this._runTask( + task, + trailingFunctionArgument(arguments), + ); +} + +Git.prototype.revparse = function () { + const commands = ['rev-parse', ...getTrailingOptions(arguments, true)]; + return this._runTask( + straightThroughStringTask(commands, true), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Show various types of objects, for example the file at a certain commit + * + * @param {string[]} [options] + * @param {Function} [then] + */ +Git.prototype.show = function (options, then) { + return this._runTask( + straightThroughStringTask(['show', ...getTrailingOptions(arguments, 1)]), + trailingFunctionArgument(arguments) + ); +}; + +/** + */ +Git.prototype.clean = function (mode, options, then) { + const usingCleanOptionsArray = isCleanOptionsArray(mode); + const cleanMode = usingCleanOptionsArray && mode.join('') || filterType(mode, filterString) || ''; + const customArgs = getTrailingOptions([].slice.call(arguments, usingCleanOptionsArray ? 1 : 0)); + + return this._runTask( + cleanWithOptionsTask(cleanMode, customArgs), + trailingFunctionArgument(arguments), + ); +}; + +/** + * Call a simple function at the next step in the chain. + * @param {Function} [then] + */ +Git.prototype.exec = function (then) { + const task = { + commands: [], + format: 'utf-8', + parser () { + if (typeof then === 'function') { + then(); + } + } + }; + + return this._runTask(task); +}; + +/** + * Show commit logs from `HEAD` to the first commit. + * If provided between `options.from` and `options.to` tags or branch. + * + * Additionally you can provide options.file, which is the path to a file in your repository. Then only this file will be considered. + * + * To use a custom splitter in the log format, set `options.splitter` to be the string the log should be split on. + * + * Options can also be supplied as a standard options object for adding custom properties supported by the git log command. + * For any other set of options, supply options as an array of strings to be appended to the git log command. + */ +Git.prototype.log = function (options) { + const next = trailingFunctionArgument(arguments); + + if (filterString(arguments[0]) && filterString(arguments[1])) { + return this._runTask( + configurationErrorTask(`git.log(string, string) should be replaced with git.log({ from: string, to: string })`), + next + ); + } + + const parsedOptions = parseLogOptions( + trailingOptionsArgument(arguments) || {}, + filterArray(options) && options || [] + ); + + return this._runTask( + logTask(parsedOptions.splitter, parsedOptions.fields, parsedOptions.commands), + next, + ) +}; + +/** + * Clears the queue of pending commands and returns the wrapper instance for chaining. + * + * @returns {Git} + */ +Git.prototype.clearQueue = function () { + // TODO: + // this._executor.clear(); + return this; +}; + +/** + * Check if a pathname or pathnames are excluded by .gitignore + * + * @param {string|string[]} pathnames + * @param {Function} [then] + */ +Git.prototype.checkIgnore = function (pathnames, then) { + return this._run( + ["check-ignore", ...asArray((filterType(pathnames, filterStringOrStringArray, [])))], + trailingFunctionArgument(arguments), + { + parser: parseCheckIgnore + } + ) +}; + +Git.prototype.checkIsRepo = function (checkType, then) { + return this._runTask( + checkIsRepoTask(filterType(checkType, filterString)), + trailingFunctionArgument(arguments), + ); +}; + +Git.prototype._rm = function (_files, options, then) { + var files = [].concat(_files); + var args = ['rm', options]; + args.push.apply(args, files); + + return this._run(args, trailingFunctionArgument(arguments)); +}; + +/** + * Schedules the supplied command to be run, the command should not include the name of the git binary and should + * be an array of strings passed as the arguments to the git binary. + * + * @param {string[]} command + * @param {Function} then + * @param {Object} [opt] + * @param {boolean} [opt.concatStdErr=false] Optionally concatenate stderr output into the stdout + * @param {boolean} [opt.format="utf-8"] The format to use when reading the content of stdout + * @param {Function} [opt.onError] Optional error handler for this command - can be used to allow non-clean exits + * without killing the remaining stack of commands + * @param {Function} [opt.parser] Optional parser function + * @param {number} [opt.onError.exitCode] + * @param {string} [opt.onError.stdErr] + * + * @returns {Git} + */ +Git.prototype._run = function (command, then, opt) { + + const task = Object.assign({ + concatStdErr: false, + onError: undefined, + format: 'utf-8', + parser (data) { + return data; + } + }, opt || {}, { + commands: command, + }); + + return this._runTask(task, then); +}; + +Git.prototype._runTask = function (task, then) { + const executor = this[ChainedExecutor] || this._executor.chain(); + const promise = executor.push(task); + + taskCallback( + task, + promise, + then); + + return Object.create(this, { + then: {value: promise.then.bind(promise)}, + catch: {value: promise.catch.bind(promise)}, + [ChainedExecutor]: {value: executor}, + }); +}; + +module.exports = Git; diff --git a/Client/node_modules/simple-git/src/index.js b/Client/node_modules/simple-git/src/index.js new file mode 100644 index 000000000..2587f3571 --- /dev/null +++ b/Client/node_modules/simple-git/src/index.js @@ -0,0 +1,7 @@ + +const {gitP} = require('./lib/runners/promise-wrapped'); +const {esModuleFactory, gitInstanceFactory, gitExportFactory} = require('./git-factory'); + +module.exports = esModuleFactory( + gitExportFactory(gitInstanceFactory, {gitP}) +); diff --git a/Client/node_modules/simple-git/src/lib/api.d.ts b/Client/node_modules/simple-git/src/lib/api.d.ts new file mode 100644 index 000000000..5e96b7475 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/api.d.ts @@ -0,0 +1,7 @@ +export { CleanOptions } from './tasks/clean'; +export { CheckRepoActions } from './tasks/check-is-repo'; +export { ResetMode } from './tasks/reset'; +export { GitConstructError } from './errors/git-construct-error'; +export { GitError } from './errors/git-error'; +export { GitResponseError } from './errors/git-response-error'; +export { TaskConfigurationError } from './errors/task-configuration-error'; diff --git a/Client/node_modules/simple-git/src/lib/api.js b/Client/node_modules/simple-git/src/lib/api.js new file mode 100644 index 000000000..a5242d282 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/api.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TaskConfigurationError = exports.GitResponseError = exports.GitError = exports.GitConstructError = exports.ResetMode = exports.CheckRepoActions = exports.CleanOptions = void 0; +var clean_1 = require("./tasks/clean"); +Object.defineProperty(exports, "CleanOptions", { enumerable: true, get: function () { return clean_1.CleanOptions; } }); +var check_is_repo_1 = require("./tasks/check-is-repo"); +Object.defineProperty(exports, "CheckRepoActions", { enumerable: true, get: function () { return check_is_repo_1.CheckRepoActions; } }); +var reset_1 = require("./tasks/reset"); +Object.defineProperty(exports, "ResetMode", { enumerable: true, get: function () { return reset_1.ResetMode; } }); +var git_construct_error_1 = require("./errors/git-construct-error"); +Object.defineProperty(exports, "GitConstructError", { enumerable: true, get: function () { return git_construct_error_1.GitConstructError; } }); +var git_error_1 = require("./errors/git-error"); +Object.defineProperty(exports, "GitError", { enumerable: true, get: function () { return git_error_1.GitError; } }); +var git_response_error_1 = require("./errors/git-response-error"); +Object.defineProperty(exports, "GitResponseError", { enumerable: true, get: function () { return git_response_error_1.GitResponseError; } }); +var task_configuration_error_1 = require("./errors/task-configuration-error"); +Object.defineProperty(exports, "TaskConfigurationError", { enumerable: true, get: function () { return task_configuration_error_1.TaskConfigurationError; } }); +//# sourceMappingURL=api.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/api.js.map b/Client/node_modules/simple-git/src/lib/api.js.map new file mode 100644 index 000000000..d693d808a --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/api.js.map @@ -0,0 +1 @@ +{"version":3,"file":"api.js","sourceRoot":"","sources":["api.ts"],"names":[],"mappings":";;;AAAA,uCAA6C;AAApC,qGAAA,YAAY,OAAA;AACrB,uDAAyD;AAAhD,iHAAA,gBAAgB,OAAA;AACzB,uCAA0C;AAAjC,kGAAA,SAAS,OAAA;AAClB,oEAAiE;AAAxD,wHAAA,iBAAiB,OAAA;AAC1B,gDAA8C;AAArC,qGAAA,QAAQ,OAAA;AACjB,kEAA+D;AAAtD,sHAAA,gBAAgB,OAAA;AACzB,8EAA2E;AAAlE,kIAAA,sBAAsB,OAAA"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/errors/git-construct-error.d.ts b/Client/node_modules/simple-git/src/lib/errors/git-construct-error.d.ts new file mode 100644 index 000000000..6c6f0678b --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/errors/git-construct-error.d.ts @@ -0,0 +1,15 @@ +import { GitError } from './git-error'; +import { SimpleGitOptions } from '../types'; +/** + * The `GitConstructError` is thrown when an error occurs in the constructor + * of the `simple-git` instance itself. Most commonly as a result of using + * a `baseDir` option that points to a folder that either does not exist, + * or cannot be read by the user the node script is running as. + * + * Check the `.message` property for more detail including the properties + * passed to the constructor. + */ +export declare class GitConstructError extends GitError { + readonly config: SimpleGitOptions; + constructor(config: SimpleGitOptions, message: string); +} diff --git a/Client/node_modules/simple-git/src/lib/errors/git-construct-error.js b/Client/node_modules/simple-git/src/lib/errors/git-construct-error.js new file mode 100644 index 000000000..17859e3b0 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/errors/git-construct-error.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GitConstructError = void 0; +const git_error_1 = require("./git-error"); +/** + * The `GitConstructError` is thrown when an error occurs in the constructor + * of the `simple-git` instance itself. Most commonly as a result of using + * a `baseDir` option that points to a folder that either does not exist, + * or cannot be read by the user the node script is running as. + * + * Check the `.message` property for more detail including the properties + * passed to the constructor. + */ +class GitConstructError extends git_error_1.GitError { + constructor(config, message) { + super(undefined, message); + this.config = config; + } +} +exports.GitConstructError = GitConstructError; +//# sourceMappingURL=git-construct-error.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/errors/git-construct-error.js.map b/Client/node_modules/simple-git/src/lib/errors/git-construct-error.js.map new file mode 100644 index 000000000..660b8b051 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/errors/git-construct-error.js.map @@ -0,0 +1 @@ +{"version":3,"file":"git-construct-error.js","sourceRoot":"","sources":["git-construct-error.ts"],"names":[],"mappings":";;;AAAA,2CAAuC;AAGvC;;;;;;;;GAQG;AACH,MAAa,iBAAkB,SAAQ,oBAAQ;IAE5C,YACmB,MAAwB,EACxC,OAAe;QAEf,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAHV,WAAM,GAAN,MAAM,CAAkB;IAI3C,CAAC;CAEH;AATD,8CASC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/errors/git-error.d.ts b/Client/node_modules/simple-git/src/lib/errors/git-error.d.ts new file mode 100644 index 000000000..96abb7efc --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/errors/git-error.d.ts @@ -0,0 +1,29 @@ +/** + * The `GitError` is thrown when the underlying `git` process throws a + * fatal exception (eg an `ENOENT` exception when attempting to use a + * non-writable directory as the root for your repo), and acts as the + * base class for more specific errors thrown by the parsing of the + * git response or errors in the configuration of the task about to + * be run. + * + * When an exception is thrown, pending tasks in the same instance will + * not be executed. The recommended way to run a series of tasks that + * can independently fail without needing to prevent future tasks from + * running is to catch them individually: + * + * ```typescript + import { gitP, SimpleGit, GitError, PullResult } from 'simple-git'; + + function catchTask (e: GitError) { + return e. + } + + const git = gitP(repoWorkingDir); + const pulled: PullResult | GitError = await git.pull().catch(catchTask); + const pushed: string | GitError = await git.pushTags().catch(catchTask); + ``` + */ +export declare class GitError extends Error { + task?: import("../tasks/task").EmptyTask | import("../types").StringTask | import("../types").BufferTask | undefined; + constructor(task?: import("../tasks/task").EmptyTask | import("../types").StringTask | import("../types").BufferTask | undefined, message?: string); +} diff --git a/Client/node_modules/simple-git/src/lib/errors/git-error.js b/Client/node_modules/simple-git/src/lib/errors/git-error.js new file mode 100644 index 000000000..04d42e171 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/errors/git-error.js @@ -0,0 +1,37 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GitError = void 0; +/** + * The `GitError` is thrown when the underlying `git` process throws a + * fatal exception (eg an `ENOENT` exception when attempting to use a + * non-writable directory as the root for your repo), and acts as the + * base class for more specific errors thrown by the parsing of the + * git response or errors in the configuration of the task about to + * be run. + * + * When an exception is thrown, pending tasks in the same instance will + * not be executed. The recommended way to run a series of tasks that + * can independently fail without needing to prevent future tasks from + * running is to catch them individually: + * + * ```typescript + import { gitP, SimpleGit, GitError, PullResult } from 'simple-git'; + + function catchTask (e: GitError) { + return e. + } + + const git = gitP(repoWorkingDir); + const pulled: PullResult | GitError = await git.pull().catch(catchTask); + const pushed: string | GitError = await git.pushTags().catch(catchTask); + ``` + */ +class GitError extends Error { + constructor(task, message) { + super(message); + this.task = task; + Object.setPrototypeOf(this, new.target.prototype); + } +} +exports.GitError = GitError; +//# sourceMappingURL=git-error.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/errors/git-error.js.map b/Client/node_modules/simple-git/src/lib/errors/git-error.js.map new file mode 100644 index 000000000..95c4e97db --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/errors/git-error.js.map @@ -0,0 +1 @@ +{"version":3,"file":"git-error.js","sourceRoot":"","sources":["git-error.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAa,QAAS,SAAQ,KAAK;IAEhC,YACU,IAAyB,EAChC,OAAgB;QAEhB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAqB;QAIhC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;CAEH;AAVD,4BAUC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/errors/git-response-error.d.ts b/Client/node_modules/simple-git/src/lib/errors/git-response-error.d.ts new file mode 100644 index 000000000..5d77bb09d --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/errors/git-response-error.d.ts @@ -0,0 +1,32 @@ +import { GitError } from './git-error'; +/** + * The `GitResponseError` is the wrapper for a parsed response that is treated as + * a fatal error, for example attempting a `merge` can leave the repo in a corrupted + * state when there are conflicts so the task will reject rather than resolve. + * + * For example, catching the merge conflict exception: + * + * ```typescript + import { gitP, SimpleGit, GitResponseError, MergeSummary } from 'simple-git'; + + const git = gitP(repoRoot); + const mergeOptions: string[] = ['--no-ff', 'other-branch']; + const mergeSummary: MergeSummary = await git.merge(mergeOptions) + .catch((e: GitResponseError) => e.git); + + if (mergeSummary.failed) { + // deal with the error + } + ``` + */ +export declare class GitResponseError extends GitError { + /** + * `.git` access the parsed response that is treated as being an error + */ + readonly git: T; + constructor( + /** + * `.git` access the parsed response that is treated as being an error + */ + git: T, message?: string); +} diff --git a/Client/node_modules/simple-git/src/lib/errors/git-response-error.js b/Client/node_modules/simple-git/src/lib/errors/git-response-error.js new file mode 100644 index 000000000..7c1af93ab --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/errors/git-response-error.js @@ -0,0 +1,36 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GitResponseError = void 0; +const git_error_1 = require("./git-error"); +/** + * The `GitResponseError` is the wrapper for a parsed response that is treated as + * a fatal error, for example attempting a `merge` can leave the repo in a corrupted + * state when there are conflicts so the task will reject rather than resolve. + * + * For example, catching the merge conflict exception: + * + * ```typescript + import { gitP, SimpleGit, GitResponseError, MergeSummary } from 'simple-git'; + + const git = gitP(repoRoot); + const mergeOptions: string[] = ['--no-ff', 'other-branch']; + const mergeSummary: MergeSummary = await git.merge(mergeOptions) + .catch((e: GitResponseError) => e.git); + + if (mergeSummary.failed) { + // deal with the error + } + ``` + */ +class GitResponseError extends git_error_1.GitError { + constructor( + /** + * `.git` access the parsed response that is treated as being an error + */ + git, message) { + super(undefined, message || String(git)); + this.git = git; + } +} +exports.GitResponseError = GitResponseError; +//# sourceMappingURL=git-response-error.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/errors/git-response-error.js.map b/Client/node_modules/simple-git/src/lib/errors/git-response-error.js.map new file mode 100644 index 000000000..ba3d8e71a --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/errors/git-response-error.js.map @@ -0,0 +1 @@ +{"version":3,"file":"git-response-error.js","sourceRoot":"","sources":["git-response-error.ts"],"names":[],"mappings":";;;AAAA,2CAAuC;AAEvC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAa,gBAA0B,SAAQ,oBAAQ;IAEpD;IACG;;OAEG;IACa,GAAM,EACtB,OAAgB;QAEhB,KAAK,CAAC,SAAS,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAHzB,QAAG,GAAH,GAAG,CAAG;IAIzB,CAAC;CAEH;AAZD,4CAYC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/errors/task-configuration-error.d.ts b/Client/node_modules/simple-git/src/lib/errors/task-configuration-error.d.ts new file mode 100644 index 000000000..9f8a957d7 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/errors/task-configuration-error.d.ts @@ -0,0 +1,12 @@ +import { GitError } from './git-error'; +/** + * The `TaskConfigurationError` is thrown when a command was incorrectly + * configured. An error of this kind means that no attempt was made to + * run your command through the underlying `git` binary. + * + * Check the `.message` property for more detail on why your configuration + * resulted in an error. + */ +export declare class TaskConfigurationError extends GitError { + constructor(message?: string); +} diff --git a/Client/node_modules/simple-git/src/lib/errors/task-configuration-error.js b/Client/node_modules/simple-git/src/lib/errors/task-configuration-error.js new file mode 100644 index 000000000..6351732c6 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/errors/task-configuration-error.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TaskConfigurationError = void 0; +const git_error_1 = require("./git-error"); +/** + * The `TaskConfigurationError` is thrown when a command was incorrectly + * configured. An error of this kind means that no attempt was made to + * run your command through the underlying `git` binary. + * + * Check the `.message` property for more detail on why your configuration + * resulted in an error. + */ +class TaskConfigurationError extends git_error_1.GitError { + constructor(message) { + super(undefined, message); + } +} +exports.TaskConfigurationError = TaskConfigurationError; +//# sourceMappingURL=task-configuration-error.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/errors/task-configuration-error.js.map b/Client/node_modules/simple-git/src/lib/errors/task-configuration-error.js.map new file mode 100644 index 000000000..757a1d192 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/errors/task-configuration-error.js.map @@ -0,0 +1 @@ +{"version":3,"file":"task-configuration-error.js","sourceRoot":"","sources":["task-configuration-error.ts"],"names":[],"mappings":";;;AAAA,2CAAuC;AAEvC;;;;;;;GAOG;AACH,MAAa,sBAAuB,SAAQ,oBAAQ;IAEjD,YACG,OAAgB;QAEhB,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;CAEH;AARD,wDAQC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/git-logger.d.ts b/Client/node_modules/simple-git/src/lib/git-logger.d.ts new file mode 100644 index 000000000..50a853594 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/git-logger.d.ts @@ -0,0 +1,29 @@ +import { Debugger } from 'debug'; +/** + * The shared debug logging instance + */ +export declare const log: Debugger; +declare type OutputLoggingHandler = (message: string, ...args: any[]) => void; +export interface OutputLogger extends OutputLoggingHandler { + readonly key: string; + readonly label: string; + debug: OutputLoggingHandler; + info: OutputLoggingHandler; + step(nextStep?: string): OutputLogger; + child(name: string): OutputLogger; + sibling(name: string): OutputLogger; + destroy(): void; +} +export declare function createLogger(label: string, verbose?: string | Debugger, initialStep?: string, infoDebugger?: Debugger): OutputLogger; +/** + * The `GitLogger` is used by the main `SimpleGit` runner to handle logging + * any warnings or errors. + */ +export declare class GitLogger { + private _out; + error: OutputLoggingHandler; + warn: OutputLoggingHandler; + constructor(_out?: Debugger); + silent(silence?: boolean): void; +} +export {}; diff --git a/Client/node_modules/simple-git/src/lib/git-logger.js b/Client/node_modules/simple-git/src/lib/git-logger.js new file mode 100644 index 000000000..84ea644ac --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/git-logger.js @@ -0,0 +1,113 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GitLogger = exports.createLogger = exports.log = void 0; +const debug_1 = require("debug"); +const utils_1 = require("./utils"); +debug_1.default.formatters.L = (value) => String(utils_1.filterHasLength(value) ? value.length : '-'); +debug_1.default.formatters.B = (value) => { + if (Buffer.isBuffer(value)) { + return value.toString('utf8'); + } + return utils_1.objectToString(value); +}; +/** + * The shared debug logging instance + */ +exports.log = debug_1.default('simple-git'); +function prefixedLogger(to, prefix, forward) { + if (!prefix || !String(prefix).replace(/\s*/, '')) { + return !forward ? to : (message, ...args) => { + to(message, ...args); + forward(message, ...args); + }; + } + return (message, ...args) => { + to(`%s ${message}`, prefix, ...args); + if (forward) { + forward(message, ...args); + } + }; +} +function childLoggerName(name, childDebugger, { namespace: parentNamespace }) { + if (typeof name === 'string') { + return name; + } + const childNamespace = childDebugger && childDebugger.namespace || ''; + if (childNamespace.startsWith(parentNamespace)) { + return childNamespace.substr(parentNamespace.length + 1); + } + return childNamespace || parentNamespace; +} +function createLogger(label, verbose, initialStep, infoDebugger = exports.log) { + const labelPrefix = label && `[${label}]` || ''; + const spawned = []; + const debugDebugger = (typeof verbose === 'string') ? infoDebugger.extend(verbose) : verbose; + const key = childLoggerName(utils_1.filterType(verbose, utils_1.filterString), debugDebugger, infoDebugger); + return step(initialStep); + function destroy() { + spawned.forEach(logger => logger.destroy()); + spawned.length = 0; + } + function child(name) { + return utils_1.append(spawned, createLogger(label, debugDebugger && debugDebugger.extend(name) || name)); + } + function sibling(name, initial) { + return utils_1.append(spawned, createLogger(label, key.replace(/^[^:]+/, name), initial, infoDebugger)); + } + function step(phase) { + const stepPrefix = phase && `[${phase}]` || ''; + const debug = debugDebugger && prefixedLogger(debugDebugger, stepPrefix) || utils_1.NOOP; + const info = prefixedLogger(infoDebugger, `${labelPrefix} ${stepPrefix}`, debug); + return Object.assign(debugDebugger ? debug : info, { + key, + label, + child, + sibling, + debug, + info, + step, + destroy, + }); + } +} +exports.createLogger = createLogger; +/** + * The `GitLogger` is used by the main `SimpleGit` runner to handle logging + * any warnings or errors. + */ +class GitLogger { + constructor(_out = exports.log) { + this._out = _out; + this.error = prefixedLogger(_out, '[ERROR]'); + this.warn = prefixedLogger(_out, '[WARN]'); + } + silent(silence = false) { + if (silence !== this._out.enabled) { + return; + } + const { namespace } = this._out; + const env = (process.env.DEBUG || '').split(',').filter(s => !!s); + const hasOn = env.includes(namespace); + const hasOff = env.includes(`-${namespace}`); + // enabling the log + if (!silence) { + if (hasOff) { + utils_1.remove(env, `-${namespace}`); + } + else { + env.push(namespace); + } + } + else { + if (hasOn) { + utils_1.remove(env, namespace); + } + else { + env.push(`-${namespace}`); + } + } + debug_1.default.enable(env.join(',')); + } +} +exports.GitLogger = GitLogger; +//# sourceMappingURL=git-logger.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/git-logger.js.map b/Client/node_modules/simple-git/src/lib/git-logger.js.map new file mode 100644 index 000000000..c1633107f --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/git-logger.js.map @@ -0,0 +1 @@ +{"version":3,"file":"git-logger.js","sourceRoot":"","sources":["git-logger.ts"],"names":[],"mappings":";;;AAAA,iCAAwC;AACxC,mCAA0G;AAG1G,eAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,MAAM,CAAC,uBAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzF,eAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,KAAa,EAAE,EAAE;IACpC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QACzB,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAChC;IACD,OAAO,sBAAc,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC,CAAA;AAED;;GAEG;AACU,QAAA,GAAG,GAAG,eAAK,CAAC,YAAY,CAAC,CAAC;AAgBvC,SAAS,cAAc,CAAE,EAAY,EAAE,MAAc,EAAE,OAA8B;IAClF,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE;QAChD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE;YACzC,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YACrB,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC;KACJ;IAED,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE;QACzB,EAAE,CAAC,MAAM,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;QACrC,IAAI,OAAO,EAAE;YACV,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;SAC5B;IACJ,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAE,IAAmB,EAAE,aAA8B,EAAE,EAAC,SAAS,EAAE,eAAe,EAAW;IAClH,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC3B,OAAO,IAAI,CAAC;KACd;IACD,MAAM,cAAc,GAAG,aAAa,IAAI,aAAa,CAAC,SAAS,IAAI,EAAE,CAAC;IAEtE,IAAI,cAAc,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;QAC7C,OAAO,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KAC3D;IAED,OAAO,cAAc,IAAI,eAAe,CAAC;AAC5C,CAAC;AAED,SAAgB,YAAY,CAAE,KAAa,EAAE,OAA2B,EAAE,WAAoB,EAAE,YAAY,GAAG,WAAG;IAC/G,MAAM,WAAW,GAAG,KAAK,IAAI,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;IAEhD,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,aAAa,GAAoB,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9G,MAAM,GAAG,GAAG,eAAe,CAAC,kBAAU,CAAC,OAAO,EAAE,oBAAY,CAAC,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;IAE5F,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;IAEzB,SAAS,OAAO;QACb,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,SAAS,KAAK,CAAC,IAAY;QACxB,OAAO,cAAM,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE,aAAa,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACpG,CAAC;IAED,SAAS,OAAO,CAAC,IAAY,EAAE,OAAgB;QAC5C,OAAO,cAAM,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IACnG,CAAC;IAED,SAAS,IAAI,CAAC,KAAc;QACzB,MAAM,UAAU,GAAG,KAAK,IAAI,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,aAAa,IAAI,cAAc,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,YAAI,CAAC;QACjF,MAAM,IAAI,GAAG,cAAc,CAAC,YAAY,EAAE,GAAG,WAAW,IAAK,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;QAElF,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;YAChD,GAAG;YACH,KAAK;YACL,KAAK;YACL,OAAO;YACP,KAAK;YACL,IAAI;YACJ,IAAI;YACJ,OAAO;SACT,CAAC,CAAC;IACN,CAAC;AACJ,CAAC;AAtCD,oCAsCC;AAED;;;GAGG;AACH,MAAa,SAAS;IAMnB,YAAoB,OAAiB,WAAG;QAApB,SAAI,GAAJ,IAAI,CAAgB;QACrC,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAE,OAAO,GAAG,KAAK;QACpB,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAChC,OAAO;SACT;QAED,MAAM,EAAC,SAAS,EAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;QAE7C,mBAAmB;QACnB,IAAI,CAAC,OAAO,EAAE;YACX,IAAI,MAAM,EAAE;gBACT,cAAM,CAAC,GAAG,EAAE,IAAI,SAAS,EAAE,CAAC,CAAC;aAC/B;iBACI;gBACF,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACtB;SACH;aACI;YACF,IAAI,KAAK,EAAE;gBACR,cAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;aACzB;iBACI;gBACF,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;aAC5B;SACH;QAED,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;CAEH;AA1CD,8BA0CC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-branch-delete.d.ts b/Client/node_modules/simple-git/src/lib/parsers/parse-branch-delete.d.ts new file mode 100644 index 000000000..ee05b45d0 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-branch-delete.d.ts @@ -0,0 +1,5 @@ +import { BranchMultiDeleteResult } from '../../../typings'; +import { TaskParser } from '../types'; +import { ExitCodes } from '../utils'; +export declare const parseBranchDeletions: TaskParser; +export declare function hasBranchDeletionError(data: string, processExitCode: ExitCodes): boolean; diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-branch-delete.js b/Client/node_modules/simple-git/src/lib/parsers/parse-branch-delete.js new file mode 100644 index 000000000..07c4bd400 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-branch-delete.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.hasBranchDeletionError = exports.parseBranchDeletions = void 0; +const BranchDeleteSummary_1 = require("../responses/BranchDeleteSummary"); +const utils_1 = require("../utils"); +const deleteSuccessRegex = /(\S+)\s+\(\S+\s([^)]+)\)/; +const deleteErrorRegex = /^error[^']+'([^']+)'/m; +const parsers = [ + new utils_1.LineParser(deleteSuccessRegex, (result, [branch, hash]) => { + const deletion = BranchDeleteSummary_1.branchDeletionSuccess(branch, hash); + result.all.push(deletion); + result.branches[branch] = deletion; + }), + new utils_1.LineParser(deleteErrorRegex, (result, [branch]) => { + const deletion = BranchDeleteSummary_1.branchDeletionFailure(branch); + result.errors.push(deletion); + result.all.push(deletion); + result.branches[branch] = deletion; + }), +]; +const parseBranchDeletions = (stdOut) => { + return utils_1.parseStringResponse(new BranchDeleteSummary_1.BranchDeletionBatch(), parsers, stdOut); +}; +exports.parseBranchDeletions = parseBranchDeletions; +function hasBranchDeletionError(data, processExitCode) { + return processExitCode === utils_1.ExitCodes.ERROR && deleteErrorRegex.test(data); +} +exports.hasBranchDeletionError = hasBranchDeletionError; +//# sourceMappingURL=parse-branch-delete.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-branch-delete.js.map b/Client/node_modules/simple-git/src/lib/parsers/parse-branch-delete.js.map new file mode 100644 index 000000000..20d0a558f --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-branch-delete.js.map @@ -0,0 +1 @@ +{"version":3,"file":"parse-branch-delete.js","sourceRoot":"","sources":["parse-branch-delete.ts"],"names":[],"mappings":";;;AACA,0EAAqH;AAErH,oCAAsE;AAEtE,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AACtD,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AAEjD,MAAM,OAAO,GAA0C;IACpD,IAAI,kBAAU,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;QAC3D,MAAM,QAAQ,GAAG,2CAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAErD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;IACtC,CAAC,CAAC;IACF,IAAI,kBAAU,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;QACnD,MAAM,QAAQ,GAAG,2CAAqB,CAAC,MAAM,CAAC,CAAC;QAE/C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;IACtC,CAAC,CAAC;CACJ,CAAC;AAEK,MAAM,oBAAoB,GAAgD,CAAC,MAAc,EAAE,EAAE;IACjG,OAAO,2BAAmB,CAAC,IAAI,yCAAmB,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC,CAAA;AAFY,QAAA,oBAAoB,wBAEhC;AAED,SAAgB,sBAAsB,CAAC,IAAY,EAAE,eAA0B;IAC5E,OAAO,eAAe,KAAK,iBAAS,CAAC,KAAK,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7E,CAAC;AAFD,wDAEC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-branch.d.ts b/Client/node_modules/simple-git/src/lib/parsers/parse-branch.d.ts new file mode 100644 index 000000000..3c39c2938 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-branch.d.ts @@ -0,0 +1,2 @@ +import { BranchSummary } from '../../../typings'; +export declare function parseBranchSummary(stdOut: string): BranchSummary; diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-branch.js b/Client/node_modules/simple-git/src/lib/parsers/parse-branch.js new file mode 100644 index 000000000..5b68b29fa --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-branch.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseBranchSummary = void 0; +const BranchSummary_1 = require("../responses/BranchSummary"); +const utils_1 = require("../utils"); +const parsers = [ + new utils_1.LineParser(/^(\*\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/, (result, [current, name, commit, label]) => { + result.push(!!current, true, name, commit, label); + }), + new utils_1.LineParser(/^(\*\s)?(\S+)\s+([a-z0-9]+)\s(.*)$/, (result, [current, name, commit, label]) => { + result.push(!!current, false, name, commit, label); + }) +]; +function parseBranchSummary(stdOut) { + return utils_1.parseStringResponse(new BranchSummary_1.BranchSummaryResult(), parsers, stdOut); +} +exports.parseBranchSummary = parseBranchSummary; +//# sourceMappingURL=parse-branch.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-branch.js.map b/Client/node_modules/simple-git/src/lib/parsers/parse-branch.js.map new file mode 100644 index 000000000..fceb47815 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-branch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"parse-branch.js","sourceRoot":"","sources":["parse-branch.ts"],"names":[],"mappings":";;;AACA,8DAAiE;AACjE,oCAA2D;AAE3D,MAAM,OAAO,GAAsC;IAChD,IAAI,kBAAU,CAAC,uEAAuE,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE;QAChI,MAAM,CAAC,IAAI,CACR,CAAC,CAAC,OAAO,EACT,IAAI,EACJ,IAAI,EAAE,MAAM,EAAE,KAAK,CACrB,CAAC;IACL,CAAC,CAAC;IACF,IAAI,kBAAU,CAAC,oCAAoC,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE;QAC7F,MAAM,CAAC,IAAI,CACR,CAAC,CAAC,OAAO,EACT,KAAK,EACL,IAAI,EAAE,MAAM,EAAE,KAAK,CACrB,CAAC;IACL,CAAC,CAAC;CACJ,CAAC;AAEF,SAAgB,kBAAkB,CAAE,MAAc;IAC/C,OAAO,2BAAmB,CAAC,IAAI,mCAAmB,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC;AAFD,gDAEC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-commit.d.ts b/Client/node_modules/simple-git/src/lib/parsers/parse-commit.d.ts new file mode 100644 index 000000000..1b47298c0 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-commit.d.ts @@ -0,0 +1,2 @@ +import { CommitResult } from '../../../typings'; +export declare function parseCommitResult(stdOut: string): CommitResult; diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-commit.js b/Client/node_modules/simple-git/src/lib/parsers/parse-commit.js new file mode 100644 index 000000000..aea99f1c1 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-commit.js @@ -0,0 +1,53 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseCommitResult = void 0; +const utils_1 = require("../utils"); +const parsers = [ + new utils_1.LineParser(/\[([^\s]+)( \([^)]+\))? ([^\]]+)/, (result, [branch, root, commit]) => { + result.branch = branch; + result.commit = commit; + result.root = !!root; + }), + new utils_1.LineParser(/\s*Author:\s(.+)/i, (result, [author]) => { + const parts = author.split('<'); + const email = parts.pop(); + if (!email || !email.includes('@')) { + return; + } + result.author = { + email: email.substr(0, email.length - 1), + name: parts.join('<').trim() + }; + }), + new utils_1.LineParser(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g, (result, [changes, insertions, deletions]) => { + result.summary.changes = parseInt(changes, 10) || 0; + result.summary.insertions = parseInt(insertions, 10) || 0; + result.summary.deletions = parseInt(deletions, 10) || 0; + }), + new utils_1.LineParser(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/, (result, [changes, lines, direction]) => { + result.summary.changes = parseInt(changes, 10) || 0; + const count = parseInt(lines, 10) || 0; + if (direction === '-') { + result.summary.deletions = count; + } + else if (direction === '+') { + result.summary.insertions = count; + } + }), +]; +function parseCommitResult(stdOut) { + const result = { + author: null, + branch: '', + commit: '', + root: false, + summary: { + changes: 0, + insertions: 0, + deletions: 0, + }, + }; + return utils_1.parseStringResponse(result, parsers, stdOut); +} +exports.parseCommitResult = parseCommitResult; +//# sourceMappingURL=parse-commit.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-commit.js.map b/Client/node_modules/simple-git/src/lib/parsers/parse-commit.js.map new file mode 100644 index 000000000..207f89693 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-commit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"parse-commit.js","sourceRoot":"","sources":["parse-commit.ts"],"names":[],"mappings":";;;AACA,oCAA2D;AAE3D,MAAM,OAAO,GAA+B;IACzC,IAAI,kBAAU,CAAC,kCAAkC,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE;QACnF,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IACxB,CAAC,CAAC;IACF,IAAI,kBAAU,CAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;QACtD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAE1B,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACjC,OAAO;SACT;QAED,MAAM,CAAC,MAAM,GAAG;YACb,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACxC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;SAC9B,CAAC;IACL,CAAC,CAAC;IACF,IAAI,kBAAU,CAAC,4CAA4C,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE;QACvG,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC,CAAC;IACF,IAAI,kBAAU,CAAC,wCAAwC,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE;QAC9F,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,SAAS,KAAK,GAAG,EAAE;YACpB,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;SACnC;aAAM,IAAI,SAAS,KAAK,GAAG,EAAE;YAC3B,MAAM,CAAC,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;SACpC;IACJ,CAAC,CAAC;CACJ,CAAC;AAEF,SAAgB,iBAAiB,CAAC,MAAc;IAC7C,MAAM,MAAM,GAAiB;QAC1B,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,KAAK;QACX,OAAO,EAAE;YACN,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,CAAC;SACd;KACH,CAAC;IACF,OAAO,2BAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC;AAbD,8CAaC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-diff-summary.d.ts b/Client/node_modules/simple-git/src/lib/parsers/parse-diff-summary.d.ts new file mode 100644 index 000000000..baaeb6404 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-diff-summary.d.ts @@ -0,0 +1,2 @@ +import { DiffResult } from '../../../typings'; +export declare function parseDiffResult(stdOut: string): DiffResult; diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-diff-summary.js b/Client/node_modules/simple-git/src/lib/parsers/parse-diff-summary.js new file mode 100644 index 000000000..022266d21 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-diff-summary.js @@ -0,0 +1,74 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseDiffResult = void 0; +const DiffSummary_1 = require("../responses/DiffSummary"); +function parseDiffResult(stdOut) { + const lines = stdOut.trim().split('\n'); + const status = new DiffSummary_1.DiffSummary(); + readSummaryLine(status, lines.pop()); + for (let i = 0, max = lines.length; i < max; i++) { + const line = lines[i]; + textFileChange(line, status) || binaryFileChange(line, status); + } + return status; +} +exports.parseDiffResult = parseDiffResult; +function readSummaryLine(status, summary) { + (summary || '') + .trim() + .split(', ') + .forEach(function (text) { + const summary = /(\d+)\s([a-z]+)/.exec(text); + if (!summary) { + return; + } + summaryType(status, summary[2], parseInt(summary[1], 10)); + }); +} +function summaryType(status, key, value) { + const match = (/([a-z]+?)s?\b/.exec(key)); + if (!match || !statusUpdate[match[1]]) { + return; + } + statusUpdate[match[1]](status, value); +} +const statusUpdate = { + file(status, value) { + status.changed = value; + }, + deletion(status, value) { + status.deletions = value; + }, + insertion(status, value) { + status.insertions = value; + } +}; +function textFileChange(input, { files }) { + const line = input.trim().match(/^(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/); + if (line) { + var alterations = (line[3] || '').trim(); + files.push({ + file: line[1].trim(), + changes: parseInt(line[2], 10), + insertions: alterations.replace(/-/g, '').length, + deletions: alterations.replace(/\+/g, '').length, + binary: false + }); + return true; + } + return false; +} +function binaryFileChange(input, { files }) { + const line = input.match(/^(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)$/); + if (line) { + files.push({ + file: line[1].trim(), + before: +line[2], + after: +line[3], + binary: true + }); + return true; + } + return false; +} +//# sourceMappingURL=parse-diff-summary.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-diff-summary.js.map b/Client/node_modules/simple-git/src/lib/parsers/parse-diff-summary.js.map new file mode 100644 index 000000000..c5cffe47c --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-diff-summary.js.map @@ -0,0 +1 @@ +{"version":3,"file":"parse-diff-summary.js","sourceRoot":"","sources":["parse-diff-summary.ts"],"names":[],"mappings":";;;AACA,0DAAuD;AAEvD,SAAgB,eAAe,CAAC,MAAc;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,yBAAW,EAAE,CAAC;IACjC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KACjE;IAED,OAAO,MAAM,CAAC;AACjB,CAAC;AAXD,0CAWC;AAED,SAAS,eAAe,CAAC,MAAkB,EAAE,OAAgB;IAC1D,CAAC,OAAO,IAAI,EAAE,CAAC;SACX,IAAI,EAAE;SACN,KAAK,CAAC,IAAI,CAAC;SACX,OAAO,CAAC,UAAU,IAAY;QAC5B,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,EAAE;YACX,OAAO;SACT;QAED,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACT,CAAC;AAED,SAAS,WAAW,CAAE,MAAkB,EAAE,GAAW,EAAE,KAAa;IACjE,MAAM,KAAK,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;QACpC,OAAO;KACT;IAED,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,YAAY,GAAiE;IAChF,IAAI,CAAE,MAAM,EAAE,KAAK;QAChB,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;IAC1B,CAAC;IACD,QAAQ,CAAE,MAAM,EAAE,KAAK;QACpB,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;IAC5B,CAAC;IACD,SAAS,CAAE,MAAM,EAAE,KAAK;QACrB,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;IAC7B,CAAC;CACH,CAAA;AAED,SAAS,cAAc,CAAC,KAAa,EAAE,EAAC,KAAK,EAAa;IACvD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAEnE,IAAI,IAAI,EAAE;QACP,IAAI,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;YACpB,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC9B,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM;YAChD,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;YAChD,MAAM,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;KACd;IAED,OAAO,KAAK,CAAA;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,EAAC,KAAK,EAAa;IACzD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAC5E,IAAI,IAAI,EAAE;QACP,KAAK,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;YACpB,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YAChB,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YACf,MAAM,EAAE,IAAI;SACd,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;KACd;IACD,OAAO,KAAK,CAAC;AAChB,CAAC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-fetch.d.ts b/Client/node_modules/simple-git/src/lib/parsers/parse-fetch.d.ts new file mode 100644 index 000000000..98dc1a3d8 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-fetch.d.ts @@ -0,0 +1,2 @@ +import { FetchResult } from '../../../typings'; +export declare function parseFetchResult(stdOut: string, stdErr: string): FetchResult; diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-fetch.js b/Client/node_modules/simple-git/src/lib/parsers/parse-fetch.js new file mode 100644 index 000000000..383c4aaed --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-fetch.js @@ -0,0 +1,32 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseFetchResult = void 0; +const utils_1 = require("../utils"); +const parsers = [ + new utils_1.LineParser(/From (.+)$/, (result, [remote]) => { + result.remote = remote; + }), + new utils_1.LineParser(/\* \[new branch]\s+(\S+)\s*-> (.+)$/, (result, [name, tracking]) => { + result.branches.push({ + name, + tracking, + }); + }), + new utils_1.LineParser(/\* \[new tag]\s+(\S+)\s*-> (.+)$/, (result, [name, tracking]) => { + result.tags.push({ + name, + tracking, + }); + }) +]; +function parseFetchResult(stdOut, stdErr) { + const result = { + raw: stdOut, + remote: null, + branches: [], + tags: [], + }; + return utils_1.parseStringResponse(result, parsers, stdOut, stdErr); +} +exports.parseFetchResult = parseFetchResult; +//# sourceMappingURL=parse-fetch.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-fetch.js.map b/Client/node_modules/simple-git/src/lib/parsers/parse-fetch.js.map new file mode 100644 index 000000000..97446487d --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-fetch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"parse-fetch.js","sourceRoot":"","sources":["parse-fetch.ts"],"names":[],"mappings":";;;AACA,oCAA2D;AAE3D,MAAM,OAAO,GAA8B;IACxC,IAAI,kBAAU,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;QAC/C,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IAC1B,CAAC,CAAC;IACF,IAAI,kBAAU,CAAC,qCAAqC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE;QAChF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAClB,IAAI;YACJ,QAAQ;SACV,CAAC,CAAC;IACN,CAAC,CAAC;IACF,IAAI,kBAAU,CAAC,kCAAkC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE;QAC7E,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACd,IAAI;YACJ,QAAQ;SACV,CAAC,CAAC;IACN,CAAC,CAAC;CACJ,CAAC;AAEF,SAAgB,gBAAgB,CAAE,MAAc,EAAE,MAAc;IAC7D,MAAM,MAAM,GAAgB;QACzB,GAAG,EAAE,MAAM;QACX,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,EAAE;KACV,CAAC;IACF,OAAO,2BAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC/D,CAAC;AARD,4CAQC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-list-log-summary.d.ts b/Client/node_modules/simple-git/src/lib/parsers/parse-list-log-summary.d.ts new file mode 100644 index 000000000..113af34b7 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-list-log-summary.d.ts @@ -0,0 +1,5 @@ +import { LogResult } from '../../../typings'; +export declare const START_BOUNDARY = "\u00F2\u00F2\u00F2\u00F2\u00F2\u00F2 "; +export declare const COMMIT_BOUNDARY = " \u00F2\u00F2"; +export declare const SPLITTER = " \u00F2 "; +export declare function createListLogSummaryParser(splitter?: string, fields?: string[]): (stdOut: string) => LogResult; diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-list-log-summary.js b/Client/node_modules/simple-git/src/lib/parsers/parse-list-log-summary.js new file mode 100644 index 000000000..fcec84393 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-list-log-summary.js @@ -0,0 +1,35 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createListLogSummaryParser = exports.SPLITTER = exports.COMMIT_BOUNDARY = exports.START_BOUNDARY = void 0; +const utils_1 = require("../utils"); +const parse_diff_summary_1 = require("./parse-diff-summary"); +exports.START_BOUNDARY = 'òòòòòò '; +exports.COMMIT_BOUNDARY = ' òò'; +exports.SPLITTER = ' ò '; +const defaultFieldNames = ['hash', 'date', 'message', 'refs', 'author_name', 'author_email']; +function lineBuilder(tokens, fields) { + return fields.reduce((line, field, index) => { + line[field] = tokens[index] || ''; + return line; + }, Object.create({ diff: null })); +} +function createListLogSummaryParser(splitter = exports.SPLITTER, fields = defaultFieldNames) { + return function (stdOut) { + const all = utils_1.toLinesWithContent(stdOut, true, exports.START_BOUNDARY) + .map(function (item) { + const lineDetail = item.trim().split(exports.COMMIT_BOUNDARY); + const listLogLine = lineBuilder(lineDetail[0].trim().split(splitter), fields); + if (lineDetail.length > 1 && !!lineDetail[1].trim()) { + listLogLine.diff = parse_diff_summary_1.parseDiffResult(lineDetail[1]); + } + return listLogLine; + }); + return { + all, + latest: all.length && all[0] || null, + total: all.length, + }; + }; +} +exports.createListLogSummaryParser = createListLogSummaryParser; +//# sourceMappingURL=parse-list-log-summary.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-list-log-summary.js.map b/Client/node_modules/simple-git/src/lib/parsers/parse-list-log-summary.js.map new file mode 100644 index 000000000..ab69760ad --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-list-log-summary.js.map @@ -0,0 +1 @@ +{"version":3,"file":"parse-list-log-summary.js","sourceRoot":"","sources":["parse-list-log-summary.ts"],"names":[],"mappings":";;;AACA,oCAA8C;AAC9C,6DAAuD;AAE1C,QAAA,cAAc,GAAG,SAAS,CAAC;AAE3B,QAAA,eAAe,GAAG,KAAK,CAAC;AAExB,QAAA,QAAQ,GAAG,KAAK,CAAC;AAE9B,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;AAE7F,SAAS,WAAW,CAAC,MAAgB,EAAE,MAAgB;IACpD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACzC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACf,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,SAAgB,0BAA0B,CAAW,QAAQ,GAAG,gBAAQ,EAAE,MAAM,GAAG,iBAAiB;IACjG,OAAO,UAAU,MAAc;QAC5B,MAAM,GAAG,GAAmC,0BAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,sBAAc,CAAC;aACxF,GAAG,CAAC,UAAU,IAAI;YAChB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,uBAAe,CAAC,CAAC;YACtD,MAAM,WAAW,GAAoB,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;YAE/F,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClD,WAAW,CAAC,IAAI,GAAG,oCAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;aACpD;YAED,OAAO,WAAW,CAAC;QACtB,CAAC,CAAC,CAAC;QAEN,OAAO;YACJ,GAAG;YACH,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI;YACpC,KAAK,EAAE,GAAG,CAAC,MAAM;SACnB,CAAA;IACJ,CAAC,CAAA;AACJ,CAAC;AApBD,gEAoBC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-merge.d.ts b/Client/node_modules/simple-git/src/lib/parsers/parse-merge.d.ts new file mode 100644 index 000000000..42435fd15 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-merge.d.ts @@ -0,0 +1,11 @@ +import { MergeDetail, MergeResult } from '../../../typings'; +import { TaskParser } from '../types'; +/** + * Parse the complete response from `git.merge` + */ +export declare const parseMergeResult: TaskParser; +/** + * Parse the merge specific detail (ie: not the content also available in the pull detail) from `git.mnerge` + * @param stdOut + */ +export declare const parseMergeDetail: TaskParser; diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-merge.js b/Client/node_modules/simple-git/src/lib/parsers/parse-merge.js new file mode 100644 index 000000000..a5779925c --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-merge.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseMergeDetail = exports.parseMergeResult = void 0; +const MergeSummary_1 = require("../responses/MergeSummary"); +const utils_1 = require("../utils"); +const parse_pull_1 = require("./parse-pull"); +const parsers = [ + new utils_1.LineParser(/^Auto-merging\s+(.+)$/, (summary, [autoMerge]) => { + summary.merges.push(autoMerge); + }), + new utils_1.LineParser(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/, (summary, [reason, file]) => { + summary.conflicts.push(new MergeSummary_1.MergeSummaryConflict(reason, file)); + }), + new utils_1.LineParser(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/, (summary, [reason, file, deleteRef]) => { + summary.conflicts.push(new MergeSummary_1.MergeSummaryConflict(reason, file, { deleteRef })); + }), + new utils_1.LineParser(/^CONFLICT\s+\((.+)\):/, (summary, [reason]) => { + summary.conflicts.push(new MergeSummary_1.MergeSummaryConflict(reason, null)); + }), + new utils_1.LineParser(/^Automatic merge failed;\s+(.+)$/, (summary, [result]) => { + summary.result = result; + }), +]; +/** + * Parse the complete response from `git.merge` + */ +const parseMergeResult = (stdOut, stdErr) => { + return Object.assign(exports.parseMergeDetail(stdOut, stdErr), parse_pull_1.parsePullResult(stdOut, stdErr)); +}; +exports.parseMergeResult = parseMergeResult; +/** + * Parse the merge specific detail (ie: not the content also available in the pull detail) from `git.mnerge` + * @param stdOut + */ +const parseMergeDetail = (stdOut) => { + return utils_1.parseStringResponse(new MergeSummary_1.MergeSummaryDetail(), parsers, stdOut); +}; +exports.parseMergeDetail = parseMergeDetail; +//# sourceMappingURL=parse-merge.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-merge.js.map b/Client/node_modules/simple-git/src/lib/parsers/parse-merge.js.map new file mode 100644 index 000000000..0d59b37e6 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-merge.js.map @@ -0,0 +1 @@ +{"version":3,"file":"parse-merge.js","sourceRoot":"","sources":["parse-merge.ts"],"names":[],"mappings":";;;AACA,4DAAqF;AAErF,oCAA2D;AAC3D,6CAA+C;AAE/C,MAAM,OAAO,GAA8B;IACxC,IAAI,kBAAU,CAAC,uBAAuB,EAAE,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;QAC9D,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC,CAAC;IACF,IAAI,kBAAU,CAAC,+CAA+C,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;QACzF,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,mCAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC;IACF,IAAI,kBAAU,CAAC,wDAAwD,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE;QAC7G,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,mCAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAC,SAAS,EAAC,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC;IACF,IAAI,kBAAU,CAAC,uBAAuB,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;QAC3D,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,mCAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC;IACF,IAAI,kBAAU,CAAC,kCAAkC,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;QACtE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IAC3B,CAAC,CAAC;CACJ,CAAC;AAEF;;GAEG;AACI,MAAM,gBAAgB,GAAoC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;IACjF,OAAO,MAAM,CAAC,MAAM,CACjB,wBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,4BAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CACjC,CAAC;AACL,CAAC,CAAC;AALW,QAAA,gBAAgB,oBAK3B;AAEF;;;GAGG;AACI,MAAM,gBAAgB,GAAoC,CAAC,MAAM,EAAE,EAAE;IACzE,OAAO,2BAAmB,CAAC,IAAI,iCAAkB,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACzE,CAAC,CAAA;AAFY,QAAA,gBAAgB,oBAE5B"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-move.d.ts b/Client/node_modules/simple-git/src/lib/parsers/parse-move.d.ts new file mode 100644 index 000000000..a2af49d0f --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-move.d.ts @@ -0,0 +1,2 @@ +import { MoveResult } from '../../../typings'; +export declare function parseMoveResult(stdOut: string): MoveResult; diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-move.js b/Client/node_modules/simple-git/src/lib/parsers/parse-move.js new file mode 100644 index 000000000..6468c8036 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-move.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseMoveResult = void 0; +const utils_1 = require("../utils"); +const parsers = [ + new utils_1.LineParser(/^Renaming (.+) to (.+)$/, (result, [from, to]) => { + result.moves.push({ from, to }); + }), +]; +function parseMoveResult(stdOut) { + return utils_1.parseStringResponse({ moves: [] }, parsers, stdOut); +} +exports.parseMoveResult = parseMoveResult; +//# sourceMappingURL=parse-move.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-move.js.map b/Client/node_modules/simple-git/src/lib/parsers/parse-move.js.map new file mode 100644 index 000000000..a724a6d18 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-move.js.map @@ -0,0 +1 @@ +{"version":3,"file":"parse-move.js","sourceRoot":"","sources":["parse-move.ts"],"names":[],"mappings":";;;AACA,oCAA2D;AAE3D,MAAM,OAAO,GAA6B;IACvC,IAAI,kBAAU,CAAC,yBAAyB,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;QAC9D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,EAAE,EAAC,CAAC,CAAC;IACjC,CAAC,CAAC;CACJ,CAAC;AAEF,SAAgB,eAAe,CAAE,MAAc;IAC5C,OAAO,2BAAmB,CAAC,EAAC,KAAK,EAAE,EAAE,EAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC5D,CAAC;AAFD,0CAEC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-pull.d.ts b/Client/node_modules/simple-git/src/lib/parsers/parse-pull.d.ts new file mode 100644 index 000000000..85c6b966f --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-pull.d.ts @@ -0,0 +1,4 @@ +import { PullDetail, PullResult } from '../../../typings'; +import { TaskParser } from '../types'; +export declare const parsePullDetail: TaskParser; +export declare const parsePullResult: TaskParser; diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-pull.js b/Client/node_modules/simple-git/src/lib/parsers/parse-pull.js new file mode 100644 index 000000000..3227a6c29 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-pull.js @@ -0,0 +1,42 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parsePullResult = exports.parsePullDetail = void 0; +const PullSummary_1 = require("../responses/PullSummary"); +const utils_1 = require("../utils"); +const parse_remote_messages_1 = require("./parse-remote-messages"); +const FILE_UPDATE_REGEX = /^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/; +const SUMMARY_REGEX = /(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/; +const ACTION_REGEX = /^(create|delete) mode \d+ (.+)/; +const parsers = [ + new utils_1.LineParser(FILE_UPDATE_REGEX, (result, [file, insertions, deletions]) => { + result.files.push(file); + if (insertions) { + result.insertions[file] = insertions.length; + } + if (deletions) { + result.deletions[file] = deletions.length; + } + }), + new utils_1.LineParser(SUMMARY_REGEX, (result, [changes, , insertions, , deletions]) => { + if (insertions !== undefined || deletions !== undefined) { + result.summary.changes = +changes || 0; + result.summary.insertions = +insertions || 0; + result.summary.deletions = +deletions || 0; + return true; + } + return false; + }), + new utils_1.LineParser(ACTION_REGEX, (result, [action, file]) => { + utils_1.append(result.files, file); + utils_1.append((action === 'create') ? result.created : result.deleted, file); + }), +]; +const parsePullDetail = (stdOut, stdErr) => { + return utils_1.parseStringResponse(new PullSummary_1.PullSummary(), parsers, stdOut, stdErr); +}; +exports.parsePullDetail = parsePullDetail; +const parsePullResult = (stdOut, stdErr) => { + return Object.assign(new PullSummary_1.PullSummary(), exports.parsePullDetail(stdOut, stdErr), parse_remote_messages_1.parseRemoteMessages(stdOut, stdErr)); +}; +exports.parsePullResult = parsePullResult; +//# sourceMappingURL=parse-pull.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-pull.js.map b/Client/node_modules/simple-git/src/lib/parsers/parse-pull.js.map new file mode 100644 index 000000000..46e1a7153 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-pull.js.map @@ -0,0 +1 @@ +{"version":3,"file":"parse-pull.js","sourceRoot":"","sources":["parse-pull.ts"],"names":[],"mappings":";;;AACA,0DAAuD;AAEvD,oCAAmE;AACnE,mEAA8D;AAE9D,MAAM,iBAAiB,GAAG,kCAAkC,CAAC;AAC7D,MAAM,aAAa,GAAG,8CAA8C,CAAC;AACrE,MAAM,YAAY,GAAG,gCAAgC,CAAC;AAEtD,MAAM,OAAO,GAA6B;IACvC,IAAI,kBAAU,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE;QACzE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAExB,IAAI,UAAU,EAAE;YACb,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;SAC9C;QAED,IAAI,SAAS,EAAE;YACZ,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;SAC5C;IACJ,CAAC,CAAC;IACF,IAAI,kBAAU,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,AAAD,EAAG,UAAU,EAAE,AAAD,EAAG,SAAS,CAAC,EAAE,EAAE;QAC5E,IAAI,UAAU,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE;YACtD,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;YACvC,MAAM,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC;YAC7C,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC;SACd;QACD,OAAO,KAAK,CAAC;IAChB,CAAC,CAAC;IACF,IAAI,kBAAU,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;QACrD,cAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3B,cAAM,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC,CAAC;CACJ,CAAC;AAEK,MAAM,eAAe,GAAmC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;IAC/E,OAAO,2BAAmB,CAAC,IAAI,yBAAW,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC,CAAA;AAFY,QAAA,eAAe,mBAE3B;AAEM,MAAM,eAAe,GAAmC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;IAC/E,OAAO,MAAM,CAAC,MAAM,CACjB,IAAI,yBAAW,EAAE,EACjB,uBAAe,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,2CAAmB,CAAiB,MAAM,EAAE,MAAM,CAAC,CACrD,CAAC;AACL,CAAC,CAAA;AANY,QAAA,eAAe,mBAM3B"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-push.d.ts b/Client/node_modules/simple-git/src/lib/parsers/parse-push.d.ts new file mode 100644 index 000000000..9bb39b47c --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-push.d.ts @@ -0,0 +1,4 @@ +import { PushDetail, PushResult } from '../../../typings'; +import { TaskParser } from '../types'; +export declare const parsePushResult: TaskParser; +export declare const parsePushDetail: TaskParser; diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-push.js b/Client/node_modules/simple-git/src/lib/parsers/parse-push.js new file mode 100644 index 000000000..f9bb1f78c --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-push.js @@ -0,0 +1,58 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parsePushDetail = exports.parsePushResult = void 0; +const utils_1 = require("../utils"); +const parse_remote_messages_1 = require("./parse-remote-messages"); +function pushResultPushedItem(local, remote, status) { + const deleted = status.includes('deleted'); + const tag = status.includes('tag') || /^refs\/tags/.test(local); + const alreadyUpdated = !status.includes('new'); + return { + deleted, + tag, + branch: !tag, + new: !alreadyUpdated, + alreadyUpdated, + local, + remote, + }; +} +const parsers = [ + new utils_1.LineParser(/^Pushing to (.+)$/, (result, [repo]) => { + result.repo = repo; + }), + new utils_1.LineParser(/^updating local tracking ref '(.+)'/, (result, [local]) => { + result.ref = Object.assign(Object.assign({}, (result.ref || {})), { local }); + }), + new utils_1.LineParser(/^[*-=]\s+([^:]+):(\S+)\s+\[(.+)]$/, (result, [local, remote, type]) => { + result.pushed.push(pushResultPushedItem(local, remote, type)); + }), + new utils_1.LineParser(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/, (result, [local, remote, remoteName]) => { + result.branch = Object.assign(Object.assign({}, (result.branch || {})), { local, + remote, + remoteName }); + }), + new utils_1.LineParser(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/, (result, [local, remote, from, to]) => { + result.update = { + head: { + local, + remote, + }, + hash: { + from, + to, + }, + }; + }), +]; +const parsePushResult = (stdOut, stdErr) => { + const pushDetail = exports.parsePushDetail(stdOut, stdErr); + const responseDetail = parse_remote_messages_1.parseRemoteMessages(stdOut, stdErr); + return Object.assign(Object.assign({}, pushDetail), responseDetail); +}; +exports.parsePushResult = parsePushResult; +const parsePushDetail = (stdOut, stdErr) => { + return utils_1.parseStringResponse({ pushed: [] }, parsers, stdOut, stdErr); +}; +exports.parsePushDetail = parsePushDetail; +//# sourceMappingURL=parse-push.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-push.js.map b/Client/node_modules/simple-git/src/lib/parsers/parse-push.js.map new file mode 100644 index 000000000..57b717175 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-push.js.map @@ -0,0 +1 @@ +{"version":3,"file":"parse-push.js","sourceRoot":"","sources":["parse-push.ts"],"names":[],"mappings":";;;AAEA,oCAA2D;AAC3D,mEAA8D;AAE9D,SAAS,oBAAoB,CAAC,KAAa,EAAE,MAAc,EAAE,MAAc;IACxE,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,cAAc,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE/C,OAAO;QACJ,OAAO;QACP,GAAG;QACH,MAAM,EAAE,CAAC,GAAG;QACZ,GAAG,EAAE,CAAC,cAAc;QACpB,cAAc;QACd,KAAK;QACL,MAAM;KACR,CAAC;AACL,CAAC;AAED,MAAM,OAAO,GAA6B;IACvC,IAAI,kBAAU,CAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE;QACpD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IACtB,CAAC,CAAC;IACF,IAAI,kBAAU,CAAC,qCAAqC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE;QACvE,MAAM,CAAC,GAAG,mCACJ,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,KACrB,KAAK,GACP,CAAA;IACJ,CAAC,CAAC;IACF,IAAI,kBAAU,CAAC,mCAAmC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;QACnF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC;IACF,IAAI,kBAAU,CAAC,0EAA0E,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE;QAChI,MAAM,CAAC,MAAM,mCACP,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,KACxB,KAAK;YACL,MAAM;YACN,UAAU,GACZ,CAAC;IACL,CAAC,CAAC;IACF,IAAI,kBAAU,CAAC,8CAA8C,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;QAClG,MAAM,CAAC,MAAM,GAAG;YACb,IAAI,EAAE;gBACH,KAAK;gBACL,MAAM;aACR;YACD,IAAI,EAAE;gBACH,IAAI;gBACJ,EAAE;aACJ;SACH,CAAC;IACL,CAAC,CAAC;CACJ,CAAC;AAEK,MAAM,eAAe,GAAmC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;IAC/E,MAAM,UAAU,GAAG,uBAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,2CAAmB,CAA2B,MAAM,EAAE,MAAM,CAAC,CAAC;IAErF,uCACM,UAAU,GACV,cAAc,EAClB;AACL,CAAC,CAAA;AARY,QAAA,eAAe,mBAQ3B;AAEM,MAAM,eAAe,GAAmC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;IAC/E,OAAO,2BAAmB,CAAC,EAAC,MAAM,EAAE,EAAE,EAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACrE,CAAC,CAAA;AAFY,QAAA,eAAe,mBAE3B"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-remote-messages.d.ts b/Client/node_modules/simple-git/src/lib/parsers/parse-remote-messages.d.ts new file mode 100644 index 000000000..9c2498910 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-remote-messages.d.ts @@ -0,0 +1,5 @@ +import { RemoteMessageResult, RemoteMessages } from '../../../typings'; +export declare function parseRemoteMessages(_stdOut: string, stdErr: string): RemoteMessageResult; +export declare class RemoteMessageSummary implements RemoteMessages { + readonly all: string[]; +} diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-remote-messages.js b/Client/node_modules/simple-git/src/lib/parsers/parse-remote-messages.js new file mode 100644 index 000000000..e95a54dfd --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-remote-messages.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.RemoteMessageSummary = exports.parseRemoteMessages = void 0; +const utils_1 = require("../utils"); +const parse_remote_objects_1 = require("./parse-remote-objects"); +const parsers = [ + new utils_1.RemoteLineParser(/^remote:\s*(.+)$/, (result, [text]) => { + result.remoteMessages.all.push(text.trim()); + return false; + }), + ...parse_remote_objects_1.remoteMessagesObjectParsers, + new utils_1.RemoteLineParser([/create a (?:pull|merge) request/i, /\s(https?:\/\/\S+)$/], (result, [pullRequestUrl]) => { + result.remoteMessages.pullRequestUrl = pullRequestUrl; + }), + new utils_1.RemoteLineParser([/found (\d+) vulnerabilities.+\(([^)]+)\)/i, /\s(https?:\/\/\S+)$/], (result, [count, summary, url]) => { + result.remoteMessages.vulnerabilities = { + count: utils_1.asNumber(count), + summary, + url, + }; + }), +]; +function parseRemoteMessages(_stdOut, stdErr) { + return utils_1.parseStringResponse({ remoteMessages: new RemoteMessageSummary() }, parsers, stdErr); +} +exports.parseRemoteMessages = parseRemoteMessages; +class RemoteMessageSummary { + constructor() { + this.all = []; + } +} +exports.RemoteMessageSummary = RemoteMessageSummary; +//# sourceMappingURL=parse-remote-messages.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-remote-messages.js.map b/Client/node_modules/simple-git/src/lib/parsers/parse-remote-messages.js.map new file mode 100644 index 000000000..860a61949 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-remote-messages.js.map @@ -0,0 +1 @@ +{"version":3,"file":"parse-remote-messages.js","sourceRoot":"","sources":["parse-remote-messages.ts"],"names":[],"mappings":";;;AACA,oCAA2E;AAC3E,iEAAqE;AAErE,MAAM,OAAO,GAAuF;IACjG,IAAI,wBAAgB,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE;QACzD,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5C,OAAO,KAAK,CAAC;IAChB,CAAC,CAAC;IACF,GAAG,kDAA2B;IAC9B,IAAI,wBAAgB,CAAC,CAAC,kCAAkC,EAAE,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE;QAC3G,MAAM,CAAC,cAA2C,CAAC,cAAc,GAAG,cAAc,CAAC;IACvF,CAAC,CAAC;IACF,IAAI,wBAAgB,CAAC,CAAC,2CAA2C,EAAE,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE;QACzH,MAAM,CAAC,cAA2C,CAAC,eAAe,GAAG;YACnE,KAAK,EAAE,gBAAQ,CAAC,KAAK,CAAC;YACtB,OAAO;YACP,GAAG;SACL,CAAC;IACL,CAAC,CAAC;CACJ,CAAC;AAEF,SAAgB,mBAAmB,CAChC,OAAe,EAAE,MAAc;IAE/B,OAAO,2BAAmB,CAAC,EAAC,cAAc,EAAE,IAAI,oBAAoB,EAAO,EAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAClG,CAAC;AAJD,kDAIC;AAED,MAAa,oBAAoB;IAAjC;QACmB,QAAG,GAAa,EAAE,CAAC;IACtC,CAAC;CAAA;AAFD,oDAEC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-remote-objects.d.ts b/Client/node_modules/simple-git/src/lib/parsers/parse-remote-objects.d.ts new file mode 100644 index 000000000..513b58a5d --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-remote-objects.d.ts @@ -0,0 +1,3 @@ +import { RemoteMessageResult, RemoteMessages } from '../../../typings'; +import { RemoteLineParser } from '../utils'; +export declare const remoteMessagesObjectParsers: RemoteLineParser>[]; diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-remote-objects.js b/Client/node_modules/simple-git/src/lib/parsers/parse-remote-objects.js new file mode 100644 index 000000000..4fa3d1728 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-remote-objects.js @@ -0,0 +1,41 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.remoteMessagesObjectParsers = void 0; +const utils_1 = require("../utils"); +function objectEnumerationResult(remoteMessages) { + return (remoteMessages.objects = remoteMessages.objects || { + compressing: 0, + counting: 0, + enumerating: 0, + packReused: 0, + reused: { count: 0, delta: 0 }, + total: { count: 0, delta: 0 } + }); +} +function asObjectCount(source) { + const count = /^\s*(\d+)/.exec(source); + const delta = /delta (\d+)/i.exec(source); + return { + count: utils_1.asNumber(count && count[1] || '0'), + delta: utils_1.asNumber(delta && delta[1] || '0'), + }; +} +exports.remoteMessagesObjectParsers = [ + new utils_1.RemoteLineParser(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i, (result, [action, count]) => { + const key = action.toLowerCase(); + const enumeration = objectEnumerationResult(result.remoteMessages); + Object.assign(enumeration, { [key]: utils_1.asNumber(count) }); + }), + new utils_1.RemoteLineParser(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i, (result, [action, count]) => { + const key = action.toLowerCase(); + const enumeration = objectEnumerationResult(result.remoteMessages); + Object.assign(enumeration, { [key]: utils_1.asNumber(count) }); + }), + new utils_1.RemoteLineParser(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i, (result, [total, reused, packReused]) => { + const objects = objectEnumerationResult(result.remoteMessages); + objects.total = asObjectCount(total); + objects.reused = asObjectCount(reused); + objects.packReused = utils_1.asNumber(packReused); + }), +]; +//# sourceMappingURL=parse-remote-objects.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/parsers/parse-remote-objects.js.map b/Client/node_modules/simple-git/src/lib/parsers/parse-remote-objects.js.map new file mode 100644 index 000000000..e748f3774 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/parsers/parse-remote-objects.js.map @@ -0,0 +1 @@ +{"version":3,"file":"parse-remote-objects.js","sourceRoot":"","sources":["parse-remote-objects.ts"],"names":[],"mappings":";;;AACA,oCAAsD;AAEtD,SAAS,uBAAuB,CAA4C,cAAiB;IAC1F,OAAO,CAAC,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,IAAI;QACxD,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,CAAC;QACb,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAC;QAC5B,KAAK,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAC;KAC7B,CAAC,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IAClC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE1C,OAAO;QACJ,KAAK,EAAE,gBAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;QACzC,KAAK,EAAE,gBAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;KAC3C,CAAC;AACL,CAAC;AAEY,QAAA,2BAA2B,GAA4D;IACjG,IAAI,wBAAgB,CAAC,gEAAgE,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE;QAChH,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,uBAAuB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAEnE,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAC,CAAC,GAAG,CAAC,EAAE,gBAAQ,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC;IACxD,CAAC,CAAC;IACF,IAAI,wBAAgB,CAAC,8EAA8E,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE;QAC9H,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,uBAAuB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAEnE,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAC,CAAC,GAAG,CAAC,EAAE,gBAAQ,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC;IACxD,CAAC,CAAC;IACF,IAAI,wBAAgB,CAAC,mDAAmD,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE;QAC/G,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC/D,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,CAAC,UAAU,GAAG,gBAAQ,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC,CAAC;CACJ,CAAC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/BranchDeleteSummary.d.ts b/Client/node_modules/simple-git/src/lib/responses/BranchDeleteSummary.d.ts new file mode 100644 index 000000000..e7d35176b --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/BranchDeleteSummary.d.ts @@ -0,0 +1,12 @@ +import { BranchMultiDeleteResult, BranchSingleDeleteFailure, BranchSingleDeleteResult, BranchSingleDeleteSuccess } from '../../../typings'; +export declare class BranchDeletionBatch implements BranchMultiDeleteResult { + all: BranchSingleDeleteResult[]; + branches: { + [branchName: string]: BranchSingleDeleteResult; + }; + errors: BranchSingleDeleteResult[]; + get success(): boolean; +} +export declare function branchDeletionSuccess(branch: string, hash: string): BranchSingleDeleteSuccess; +export declare function branchDeletionFailure(branch: string): BranchSingleDeleteFailure; +export declare function isSingleBranchDeleteFailure(test: BranchSingleDeleteResult): test is BranchSingleDeleteSuccess; diff --git a/Client/node_modules/simple-git/src/lib/responses/BranchDeleteSummary.js b/Client/node_modules/simple-git/src/lib/responses/BranchDeleteSummary.js new file mode 100644 index 000000000..b240055c8 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/BranchDeleteSummary.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isSingleBranchDeleteFailure = exports.branchDeletionFailure = exports.branchDeletionSuccess = exports.BranchDeletionBatch = void 0; +class BranchDeletionBatch { + constructor() { + this.all = []; + this.branches = {}; + this.errors = []; + } + get success() { + return !this.errors.length; + } +} +exports.BranchDeletionBatch = BranchDeletionBatch; +function branchDeletionSuccess(branch, hash) { + return { + branch, hash, success: true, + }; +} +exports.branchDeletionSuccess = branchDeletionSuccess; +function branchDeletionFailure(branch) { + return { + branch, hash: null, success: false, + }; +} +exports.branchDeletionFailure = branchDeletionFailure; +function isSingleBranchDeleteFailure(test) { + return test.success; +} +exports.isSingleBranchDeleteFailure = isSingleBranchDeleteFailure; +//# sourceMappingURL=BranchDeleteSummary.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/BranchDeleteSummary.js.map b/Client/node_modules/simple-git/src/lib/responses/BranchDeleteSummary.js.map new file mode 100644 index 000000000..496298c0e --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/BranchDeleteSummary.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BranchDeleteSummary.js","sourceRoot":"","sources":["BranchDeleteSummary.ts"],"names":[],"mappings":";;;AAOA,MAAa,mBAAmB;IAAhC;QACG,QAAG,GAA+B,EAAE,CAAC;QACrC,aAAQ,GAAuD,EAAE,CAAC;QAClE,WAAM,GAA+B,EAAE,CAAC;IAK3C,CAAC;IAHE,IAAI,OAAO;QACR,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;CACH;AARD,kDAQC;AAED,SAAgB,qBAAqB,CAAE,MAAc,EAAE,IAAY;IAChE,OAAO;QACJ,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI;KAC7B,CAAC;AACL,CAAC;AAJD,sDAIC;AAED,SAAgB,qBAAqB,CAAE,MAAc;IAClD,OAAO;QACJ,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK;KACpC,CAAC;AACL,CAAC;AAJD,sDAIC;AAED,SAAgB,2BAA2B,CAAE,IAA8B;IACxE,OAAO,IAAI,CAAC,OAAO,CAAC;AACvB,CAAC;AAFD,kEAEC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/BranchSummary.d.ts b/Client/node_modules/simple-git/src/lib/responses/BranchSummary.d.ts new file mode 100644 index 000000000..69cd69898 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/BranchSummary.d.ts @@ -0,0 +1,10 @@ +import { BranchSummary, BranchSummaryBranch } from '../../../typings'; +export declare class BranchSummaryResult implements BranchSummary { + all: string[]; + branches: { + [p: string]: BranchSummaryBranch; + }; + current: string; + detached: boolean; + push(current: boolean, detached: boolean, name: string, commit: string, label: string): void; +} diff --git a/Client/node_modules/simple-git/src/lib/responses/BranchSummary.js b/Client/node_modules/simple-git/src/lib/responses/BranchSummary.js new file mode 100644 index 000000000..2e54ec614 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/BranchSummary.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BranchSummaryResult = void 0; +class BranchSummaryResult { + constructor() { + this.all = []; + this.branches = {}; + this.current = ''; + this.detached = false; + } + push(current, detached, name, commit, label) { + if (current) { + this.detached = detached; + this.current = name; + } + this.all.push(name); + this.branches[name] = { + current: current, + name: name, + commit: commit, + label: label + }; + } +} +exports.BranchSummaryResult = BranchSummaryResult; +//# sourceMappingURL=BranchSummary.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/BranchSummary.js.map b/Client/node_modules/simple-git/src/lib/responses/BranchSummary.js.map new file mode 100644 index 000000000..05a4a5b3a --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/BranchSummary.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BranchSummary.js","sourceRoot":"","sources":["BranchSummary.ts"],"names":[],"mappings":";;;AAEA,MAAa,mBAAmB;IAAhC;QACU,QAAG,GAAa,EAAE,CAAC;QACnB,aAAQ,GAAyC,EAAE,CAAC;QACpD,YAAO,GAAW,EAAE,CAAC;QACrB,aAAQ,GAAY,KAAK,CAAC;IAgBpC,CAAC;IAdE,IAAI,CAAC,OAAgB,EAAE,QAAiB,EAAE,IAAY,EAAE,MAAc,EAAE,KAAa;QAClF,IAAI,OAAO,EAAE;YACV,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACtB;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG;YACnB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,KAAK;SACd,CAAC;IACL,CAAC;CACH;AApBD,kDAoBC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/CheckIgnore.d.ts b/Client/node_modules/simple-git/src/lib/responses/CheckIgnore.d.ts new file mode 100644 index 000000000..e15478fb3 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/CheckIgnore.d.ts @@ -0,0 +1,4 @@ +/** + * Parser for the `check-ignore` command - returns each file as a string array + */ +export declare const parseCheckIgnore: (text: string) => string[]; diff --git a/Client/node_modules/simple-git/src/lib/responses/CheckIgnore.js b/Client/node_modules/simple-git/src/lib/responses/CheckIgnore.js new file mode 100644 index 000000000..209c71031 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/CheckIgnore.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseCheckIgnore = void 0; +/** + * Parser for the `check-ignore` command - returns each file as a string array + */ +const parseCheckIgnore = (text) => { + return text.split(/\n/g) + .map(line => line.trim()) + .filter(file => !!file); +}; +exports.parseCheckIgnore = parseCheckIgnore; +//# sourceMappingURL=CheckIgnore.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/CheckIgnore.js.map b/Client/node_modules/simple-git/src/lib/responses/CheckIgnore.js.map new file mode 100644 index 000000000..9ddcc3c61 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/CheckIgnore.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CheckIgnore.js","sourceRoot":"","sources":["CheckIgnore.ts"],"names":[],"mappings":";;;AACA;;GAEG;AACI,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAY,EAAE;IACxD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;SACpB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC,CAAC;AAJW,QAAA,gBAAgB,oBAI3B"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/CleanSummary.d.ts b/Client/node_modules/simple-git/src/lib/responses/CleanSummary.d.ts new file mode 100644 index 000000000..d49ef04a1 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/CleanSummary.d.ts @@ -0,0 +1,9 @@ +import { CleanSummary } from '../../../typings'; +export declare class CleanResponse implements CleanSummary { + readonly dryRun: boolean; + paths: string[]; + files: string[]; + folders: string[]; + constructor(dryRun: boolean); +} +export declare function cleanSummaryParser(dryRun: boolean, text: string): CleanSummary; diff --git a/Client/node_modules/simple-git/src/lib/responses/CleanSummary.js b/Client/node_modules/simple-git/src/lib/responses/CleanSummary.js new file mode 100644 index 000000000..e68f215aa --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/CleanSummary.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.cleanSummaryParser = exports.CleanResponse = void 0; +const utils_1 = require("../utils"); +class CleanResponse { + constructor(dryRun) { + this.dryRun = dryRun; + this.paths = []; + this.files = []; + this.folders = []; + } +} +exports.CleanResponse = CleanResponse; +const removalRegexp = /^[a-z]+\s*/i; +const dryRunRemovalRegexp = /^[a-z]+\s+[a-z]+\s*/i; +const isFolderRegexp = /\/$/; +function cleanSummaryParser(dryRun, text) { + const summary = new CleanResponse(dryRun); + const regexp = dryRun ? dryRunRemovalRegexp : removalRegexp; + utils_1.toLinesWithContent(text).forEach(line => { + const removed = line.replace(regexp, ''); + summary.paths.push(removed); + (isFolderRegexp.test(removed) ? summary.folders : summary.files).push(removed); + }); + return summary; +} +exports.cleanSummaryParser = cleanSummaryParser; +//# sourceMappingURL=CleanSummary.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/CleanSummary.js.map b/Client/node_modules/simple-git/src/lib/responses/CleanSummary.js.map new file mode 100644 index 000000000..bd4138e89 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/CleanSummary.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CleanSummary.js","sourceRoot":"","sources":["CleanSummary.ts"],"names":[],"mappings":";;;AACA,oCAA8C;AAE9C,MAAa,aAAa;IAMvB,YACmB,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;QAL3B,UAAK,GAAa,EAAE,CAAC;QACrB,UAAK,GAAa,EAAE,CAAC;QACrB,YAAO,GAAa,EAAE,CAAC;IAI3B,CAAC;CAEN;AAVD,sCAUC;AAED,MAAM,aAAa,GAAG,aAAa,CAAC;AACpC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AACnD,MAAM,cAAc,GAAG,KAAK,CAAC;AAE7B,SAAgB,kBAAkB,CAAE,MAAe,EAAE,IAAY;IAC9D,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,aAAa,CAAC;IAE5D,0BAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAEzC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AAClB,CAAC;AAZD,gDAYC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/ConfigList.d.ts b/Client/node_modules/simple-git/src/lib/responses/ConfigList.d.ts new file mode 100644 index 000000000..980e19134 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/ConfigList.d.ts @@ -0,0 +1,12 @@ +import { ConfigListSummary, ConfigValues } from '../../../typings'; +export declare class ConfigList implements ConfigListSummary { + files: string[]; + values: { + [fileName: string]: ConfigValues; + }; + private _all; + get all(): ConfigValues; + addFile(file: string): ConfigValues; + addValue(file: string, key: string, value: string): void; +} +export declare function configListParser(text: string): ConfigList; diff --git a/Client/node_modules/simple-git/src/lib/responses/ConfigList.js b/Client/node_modules/simple-git/src/lib/responses/ConfigList.js new file mode 100644 index 000000000..a0befd7cb --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/ConfigList.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.configListParser = exports.ConfigList = void 0; +const utils_1 = require("../utils"); +class ConfigList { + constructor() { + this.files = []; + this.values = Object.create(null); + } + get all() { + if (!this._all) { + this._all = this.files.reduce((all, file) => { + return Object.assign(all, this.values[file]); + }, {}); + } + return this._all; + } + addFile(file) { + if (!(file in this.values)) { + const latest = utils_1.last(this.files); + this.values[file] = latest ? Object.create(this.values[latest]) : {}; + this.files.push(file); + } + return this.values[file]; + } + addValue(file, key, value) { + const values = this.addFile(file); + if (!values.hasOwnProperty(key)) { + values[key] = value; + } + else if (Array.isArray(values[key])) { + values[key].push(value); + } + else { + values[key] = [values[key], value]; + } + this._all = undefined; + } +} +exports.ConfigList = ConfigList; +function configListParser(text) { + const config = new ConfigList(); + const lines = text.split('\0'); + for (let i = 0, max = lines.length - 1; i < max;) { + const file = configFilePath(lines[i++]); + const [key, value] = utils_1.splitOn(lines[i++], '\n'); + config.addValue(file, key, value); + } + return config; +} +exports.configListParser = configListParser; +function configFilePath(filePath) { + return filePath.replace(/^(file):/, ''); +} +//# sourceMappingURL=ConfigList.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/ConfigList.js.map b/Client/node_modules/simple-git/src/lib/responses/ConfigList.js.map new file mode 100644 index 000000000..580f0d6b2 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/ConfigList.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ConfigList.js","sourceRoot":"","sources":["ConfigList.ts"],"names":[],"mappings":";;;AACA,oCAAyC;AAEzC,MAAa,UAAU;IAAvB;QAEU,UAAK,GAAa,EAAE,CAAC;QACrB,WAAM,GAAyC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAuC7E,CAAC;IAnCE,IAAW,GAAG;QACX,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAiB,EAAE,IAAY,EAAE,EAAE;gBAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAChD,CAAC,EAAE,EAAE,CAAC,CAAC;SACT;QAED,OAAO,IAAI,CAAC,IAAI,CAAC;IACpB,CAAC;IAEM,OAAO,CAAC,IAAY;QACxB,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE;YACzB,MAAM,MAAM,GAAG,YAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YAEpE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxB;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAEM,QAAQ,CAAC,IAAY,EAAE,GAAW,EAAE,KAAa;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAElC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;YAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SACtB;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;YACnC,MAAM,CAAC,GAAG,CAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxC;aAAM;YACJ,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAW,EAAE,KAAK,CAAC,CAAC;SAC/C;QAED,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACzB,CAAC;CAEH;AA1CD,gCA0CC;AAED,SAAgB,gBAAgB,CAAC,IAAY;IAC1C,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG;QAC/C,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,eAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAE/C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;KACpC;IAED,OAAO,MAAM,CAAC;AACjB,CAAC;AAZD,4CAYC;AAED,SAAS,cAAc,CAAC,QAAgB;IACrC,OAAO,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC3C,CAAC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/DiffSummary.d.ts b/Client/node_modules/simple-git/src/lib/responses/DiffSummary.d.ts new file mode 100644 index 000000000..16d63f0a0 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/DiffSummary.d.ts @@ -0,0 +1,10 @@ +import { DiffResult, DiffResultBinaryFile, DiffResultTextFile } from '../../../typings'; +/*** + * The DiffSummary is returned as a response to getting `git().status()` + */ +export declare class DiffSummary implements DiffResult { + changed: number; + deletions: number; + insertions: number; + files: Array; +} diff --git a/Client/node_modules/simple-git/src/lib/responses/DiffSummary.js b/Client/node_modules/simple-git/src/lib/responses/DiffSummary.js new file mode 100644 index 000000000..4c3ec6085 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/DiffSummary.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DiffSummary = void 0; +/*** + * The DiffSummary is returned as a response to getting `git().status()` + */ +class DiffSummary { + constructor() { + this.changed = 0; + this.deletions = 0; + this.insertions = 0; + this.files = []; + } +} +exports.DiffSummary = DiffSummary; +//# sourceMappingURL=DiffSummary.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/DiffSummary.js.map b/Client/node_modules/simple-git/src/lib/responses/DiffSummary.js.map new file mode 100644 index 000000000..58ed3968e --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/DiffSummary.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DiffSummary.js","sourceRoot":"","sources":["DiffSummary.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,WAAW;IAAxB;QACG,YAAO,GAAG,CAAC,CAAA;QACX,cAAS,GAAG,CAAC,CAAC;QACd,eAAU,GAAG,CAAC,CAAC;QAEf,UAAK,GAAqD,EAAE,CAAC;IAChE,CAAC;CAAA;AAND,kCAMC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/FileStatusSummary.d.ts b/Client/node_modules/simple-git/src/lib/responses/FileStatusSummary.d.ts new file mode 100644 index 000000000..fd680a424 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/FileStatusSummary.d.ts @@ -0,0 +1,9 @@ +import { FileStatusResult } from '../../../typings/response'; +export declare const fromPathRegex: RegExp; +export declare class FileStatusSummary implements FileStatusResult { + path: string; + index: string; + working_dir: string; + readonly from: string | undefined; + constructor(path: string, index: string, working_dir: string); +} diff --git a/Client/node_modules/simple-git/src/lib/responses/FileStatusSummary.js b/Client/node_modules/simple-git/src/lib/responses/FileStatusSummary.js new file mode 100644 index 000000000..cb87d783f --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/FileStatusSummary.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FileStatusSummary = exports.fromPathRegex = void 0; +exports.fromPathRegex = /^(.+) -> (.+)$/; +class FileStatusSummary { + constructor(path, index, working_dir) { + this.path = path; + this.index = index; + this.working_dir = working_dir; + if ('R' === (index + working_dir)) { + const detail = exports.fromPathRegex.exec(path) || [null, path, path]; + this.from = detail[1] || ''; + this.path = detail[2] || ''; + } + } +} +exports.FileStatusSummary = FileStatusSummary; +//# sourceMappingURL=FileStatusSummary.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/FileStatusSummary.js.map b/Client/node_modules/simple-git/src/lib/responses/FileStatusSummary.js.map new file mode 100644 index 000000000..b5654ee40 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/FileStatusSummary.js.map @@ -0,0 +1 @@ +{"version":3,"file":"FileStatusSummary.js","sourceRoot":"","sources":["FileStatusSummary.ts"],"names":[],"mappings":";;;AAEa,QAAA,aAAa,GAAG,gBAAgB,CAAC;AAE9C,MAAa,iBAAiB;IAI3B,YACU,IAAY,EACZ,KAAa,EACb,WAAmB;QAFnB,SAAI,GAAJ,IAAI,CAAQ;QACZ,UAAK,GAAL,KAAK,CAAQ;QACb,gBAAW,GAAX,WAAW,CAAQ;QAE1B,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC,EAAE;YAChC,MAAM,MAAM,GAAG,qBAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC9D,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SAC9B;IACJ,CAAC;CACH;AAfD,8CAeC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/GetRemoteSummary.d.ts b/Client/node_modules/simple-git/src/lib/responses/GetRemoteSummary.d.ts new file mode 100644 index 000000000..3ef910935 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/GetRemoteSummary.d.ts @@ -0,0 +1,11 @@ +export interface RemoteWithoutRefs { + name: string; +} +export interface RemoteWithRefs extends RemoteWithoutRefs { + refs: { + fetch: string; + push: string; + }; +} +export declare function parseGetRemotes(text: string): RemoteWithoutRefs[]; +export declare function parseGetRemotesVerbose(text: string): RemoteWithRefs[]; diff --git a/Client/node_modules/simple-git/src/lib/responses/GetRemoteSummary.js b/Client/node_modules/simple-git/src/lib/responses/GetRemoteSummary.js new file mode 100644 index 000000000..59a140a8d --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/GetRemoteSummary.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseGetRemotesVerbose = exports.parseGetRemotes = void 0; +const utils_1 = require("../utils"); +function parseGetRemotes(text) { + const remotes = {}; + forEach(text, ([name]) => remotes[name] = { name }); + return Object.values(remotes); +} +exports.parseGetRemotes = parseGetRemotes; +function parseGetRemotesVerbose(text) { + const remotes = {}; + forEach(text, ([name, url, purpose]) => { + if (!remotes.hasOwnProperty(name)) { + remotes[name] = { + name: name, + refs: { fetch: '', push: '' }, + }; + } + if (purpose && url) { + remotes[name].refs[purpose.replace(/[^a-z]/g, '')] = url; + } + }); + return Object.values(remotes); +} +exports.parseGetRemotesVerbose = parseGetRemotesVerbose; +function forEach(text, handler) { + utils_1.forEachLineWithContent(text, (line) => handler(line.split(/\s+/))); +} +//# sourceMappingURL=GetRemoteSummary.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/GetRemoteSummary.js.map b/Client/node_modules/simple-git/src/lib/responses/GetRemoteSummary.js.map new file mode 100644 index 000000000..4a4211c14 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/GetRemoteSummary.js.map @@ -0,0 +1 @@ +{"version":3,"file":"GetRemoteSummary.js","sourceRoot":"","sources":["GetRemoteSummary.ts"],"names":[],"mappings":";;;AAAA,oCAAkD;AAalD,SAAgB,eAAe,CAAE,IAAY;IAC1C,MAAM,OAAO,GAAwC,EAAE,CAAC;IAExD,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpD,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAND,0CAMC;AAED,SAAgB,sBAAsB,CAAE,IAAY;IACjD,MAAM,OAAO,GAAqC,EAAE,CAAC;IAErD,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE;QACpC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YAChC,OAAO,CAAC,IAAI,CAAC,GAAG;gBACb,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;aAC/B,CAAC;SACJ;QAED,IAAI,OAAO,IAAI,GAAG,EAAE;YACjB,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAiC,CAAC,GAAG,GAAG,CAAC;SAC3F;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAjBD,wDAiBC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,OAAiC;IAC7D,8BAAsB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/InitSummary.d.ts b/Client/node_modules/simple-git/src/lib/responses/InitSummary.d.ts new file mode 100644 index 000000000..634911f87 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/InitSummary.d.ts @@ -0,0 +1,9 @@ +import { InitResult } from '../../../typings'; +export declare class InitSummary implements InitResult { + readonly bare: boolean; + readonly path: string; + readonly existing: boolean; + readonly gitDir: string; + constructor(bare: boolean, path: string, existing: boolean, gitDir: string); +} +export declare function parseInit(bare: boolean, path: string, text: string): InitSummary; diff --git a/Client/node_modules/simple-git/src/lib/responses/InitSummary.js b/Client/node_modules/simple-git/src/lib/responses/InitSummary.js new file mode 100644 index 000000000..c449a211f --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/InitSummary.js @@ -0,0 +1,36 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseInit = exports.InitSummary = void 0; +class InitSummary { + constructor(bare, path, existing, gitDir) { + this.bare = bare; + this.path = path; + this.existing = existing; + this.gitDir = gitDir; + } +} +exports.InitSummary = InitSummary; +const initResponseRegex = /^Init.+ repository in (.+)$/; +const reInitResponseRegex = /^Rein.+ in (.+)$/; +function parseInit(bare, path, text) { + const response = String(text).trim(); + let result; + if ((result = initResponseRegex.exec(response))) { + return new InitSummary(bare, path, false, result[1]); + } + if ((result = reInitResponseRegex.exec(response))) { + return new InitSummary(bare, path, true, result[1]); + } + let gitDir = ''; + const tokens = response.split(' '); + while (tokens.length) { + const token = tokens.shift(); + if (token === 'in') { + gitDir = tokens.join(' '); + break; + } + } + return new InitSummary(bare, path, /^re/i.test(response), gitDir); +} +exports.parseInit = parseInit; +//# sourceMappingURL=InitSummary.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/InitSummary.js.map b/Client/node_modules/simple-git/src/lib/responses/InitSummary.js.map new file mode 100644 index 000000000..2e3768dff --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/InitSummary.js.map @@ -0,0 +1 @@ +{"version":3,"file":"InitSummary.js","sourceRoot":"","sources":["InitSummary.ts"],"names":[],"mappings":";;;AAEA,MAAa,WAAW;IACrB,YACmB,IAAa,EACb,IAAY,EACZ,QAAiB,EACjB,MAAc;QAHd,SAAI,GAAJ,IAAI,CAAS;QACb,SAAI,GAAJ,IAAI,CAAQ;QACZ,aAAQ,GAAR,QAAQ,CAAS;QACjB,WAAM,GAAN,MAAM,CAAQ;IAC9B,CAAC;CACN;AAPD,kCAOC;AAED,MAAM,iBAAiB,GAAG,6BAA6B,CAAC;AACxD,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAE/C,SAAgB,SAAS,CAAC,IAAa,EAAE,IAAY,EAAE,IAAY;IAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,MAAM,CAAC;IAEX,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE;QAC9C,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;KACvD;IAED,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE;QAChD,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;KACtD;IAED,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC,MAAM,EAAE;QACnB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,KAAK,KAAK,IAAI,EAAE;YACjB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM;SACR;KACH;IAED,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;AACrE,CAAC;AAvBD,8BAuBC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/MergeSummary.d.ts b/Client/node_modules/simple-git/src/lib/responses/MergeSummary.d.ts new file mode 100644 index 000000000..519e95495 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/MergeSummary.d.ts @@ -0,0 +1,16 @@ +import { MergeConflict, MergeConflictDeletion, MergeDetail, MergeResultStatus } from '../../../typings'; +export declare class MergeSummaryConflict implements MergeConflict { + readonly reason: string; + readonly file: string | null; + readonly meta?: MergeConflictDeletion | undefined; + constructor(reason: string, file?: string | null, meta?: MergeConflictDeletion | undefined); + toString(): string; +} +export declare class MergeSummaryDetail implements MergeDetail { + conflicts: MergeConflict[]; + merges: string[]; + result: MergeResultStatus; + get failed(): boolean; + get reason(): string; + toString(): string; +} diff --git a/Client/node_modules/simple-git/src/lib/responses/MergeSummary.js b/Client/node_modules/simple-git/src/lib/responses/MergeSummary.js new file mode 100644 index 000000000..0bafee292 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/MergeSummary.js @@ -0,0 +1,35 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MergeSummaryDetail = exports.MergeSummaryConflict = void 0; +class MergeSummaryConflict { + constructor(reason, file = null, meta) { + this.reason = reason; + this.file = file; + this.meta = meta; + } + toString() { + return `${this.file}:${this.reason}`; + } +} +exports.MergeSummaryConflict = MergeSummaryConflict; +class MergeSummaryDetail { + constructor() { + this.conflicts = []; + this.merges = []; + this.result = 'success'; + } + get failed() { + return this.conflicts.length > 0; + } + get reason() { + return this.result; + } + toString() { + if (this.conflicts.length) { + return `CONFLICTS: ${this.conflicts.join(', ')}`; + } + return 'OK'; + } +} +exports.MergeSummaryDetail = MergeSummaryDetail; +//# sourceMappingURL=MergeSummary.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/MergeSummary.js.map b/Client/node_modules/simple-git/src/lib/responses/MergeSummary.js.map new file mode 100644 index 000000000..13eed55e8 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/MergeSummary.js.map @@ -0,0 +1 @@ +{"version":3,"file":"MergeSummary.js","sourceRoot":"","sources":["MergeSummary.ts"],"names":[],"mappings":";;;AAEA,MAAa,oBAAoB;IAC9B,YACmB,MAAc,EACd,OAAsB,IAAI,EAC1B,IAA4B;QAF5B,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAsB;QAC1B,SAAI,GAAJ,IAAI,CAAwB;IAE/C,CAAC;IAED,QAAQ;QACL,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;IACxC,CAAC;CACH;AAXD,oDAWC;AAED,MAAa,kBAAkB;IAA/B;QACU,cAAS,GAAoB,EAAE,CAAC;QAChC,WAAM,GAAa,EAAE,CAAC;QACtB,WAAM,GAAsB,SAAS,CAAC;IAiBhD,CAAC;IAfE,IAAI,MAAM;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,MAAM;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACtB,CAAC;IAED,QAAQ;QACL,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACxB,OAAO,cAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SACnD;QAED,OAAO,IAAI,CAAC;IACf,CAAC;CACH;AApBD,gDAoBC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/PullSummary.d.ts b/Client/node_modules/simple-git/src/lib/responses/PullSummary.d.ts new file mode 100644 index 000000000..4e8109f65 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/PullSummary.d.ts @@ -0,0 +1,12 @@ +import { PullDetailFileChanges, PullDetailSummary, PullResult } from '../../../typings'; +export declare class PullSummary implements PullResult { + remoteMessages: { + all: never[]; + }; + created: never[]; + deleted: string[]; + files: string[]; + deletions: PullDetailFileChanges; + insertions: PullDetailFileChanges; + summary: PullDetailSummary; +} diff --git a/Client/node_modules/simple-git/src/lib/responses/PullSummary.js b/Client/node_modules/simple-git/src/lib/responses/PullSummary.js new file mode 100644 index 000000000..875e0dbc0 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/PullSummary.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PullSummary = void 0; +class PullSummary { + constructor() { + this.remoteMessages = { + all: [], + }; + this.created = []; + this.deleted = []; + this.files = []; + this.deletions = {}; + this.insertions = {}; + this.summary = { + changes: 0, + deletions: 0, + insertions: 0, + }; + } +} +exports.PullSummary = PullSummary; +//# sourceMappingURL=PullSummary.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/PullSummary.js.map b/Client/node_modules/simple-git/src/lib/responses/PullSummary.js.map new file mode 100644 index 000000000..13168575b --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/PullSummary.js.map @@ -0,0 +1 @@ +{"version":3,"file":"PullSummary.js","sourceRoot":"","sources":["PullSummary.ts"],"names":[],"mappings":";;;AAEA,MAAa,WAAW;IAAxB;QACU,mBAAc,GAAG;YACrB,GAAG,EAAE,EAAE;SACT,CAAC;QACK,YAAO,GAAG,EAAE,CAAC;QACb,YAAO,GAAa,EAAE,CAAC;QACvB,UAAK,GAAa,EAAE,CAAC;QACrB,cAAS,GAA0B,EAAE,CAAC;QACtC,eAAU,GAA0B,EAAE,CAAC;QACvC,YAAO,GAAsB;YACjC,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC;SACf,CAAC;IACL,CAAC;CAAA;AAdD,kCAcC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/StatusSummary.d.ts b/Client/node_modules/simple-git/src/lib/responses/StatusSummary.d.ts new file mode 100644 index 000000000..f619731d5 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/StatusSummary.d.ts @@ -0,0 +1,39 @@ +import { FileStatusResult, StatusResult, StatusResultRenamed } from '../../../typings'; +/** + * The StatusSummary is returned as a response to getting `git().status()` + */ +export declare class StatusSummary implements StatusResult { + not_added: string[]; + conflicted: string[]; + created: string[]; + deleted: string[]; + modified: string[]; + renamed: StatusResultRenamed[]; + /** + * All files represented as an array of objects containing the `path` and status in `index` and + * in the `working_dir`. + */ + files: FileStatusResult[]; + staged: string[]; + /** + * Number of commits ahead of the tracked branch + */ + ahead: number; + /** + *Number of commits behind the tracked branch + */ + behind: number; + /** + * Name of the current branch + */ + current: string | null; + /** + * Name of the branch being tracked + */ + tracking: string | null; + /** + * Gets whether this StatusSummary represents a clean working branch. + */ + isClean(): boolean; +} +export declare const parseStatusSummary: (text: string) => StatusResult; diff --git a/Client/node_modules/simple-git/src/lib/responses/StatusSummary.js b/Client/node_modules/simple-git/src/lib/responses/StatusSummary.js new file mode 100644 index 000000000..b8a45940f --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/StatusSummary.js @@ -0,0 +1,148 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseStatusSummary = exports.StatusSummary = void 0; +const utils_1 = require("../utils"); +const FileStatusSummary_1 = require("./FileStatusSummary"); +/** + * The StatusSummary is returned as a response to getting `git().status()` + */ +class StatusSummary { + constructor() { + this.not_added = []; + this.conflicted = []; + this.created = []; + this.deleted = []; + this.modified = []; + this.renamed = []; + /** + * All files represented as an array of objects containing the `path` and status in `index` and + * in the `working_dir`. + */ + this.files = []; + this.staged = []; + /** + * Number of commits ahead of the tracked branch + */ + this.ahead = 0; + /** + *Number of commits behind the tracked branch + */ + this.behind = 0; + /** + * Name of the current branch + */ + this.current = null; + /** + * Name of the branch being tracked + */ + this.tracking = null; + } + /** + * Gets whether this StatusSummary represents a clean working branch. + */ + isClean() { + return !this.files.length; + } +} +exports.StatusSummary = StatusSummary; +var PorcelainFileStatus; +(function (PorcelainFileStatus) { + PorcelainFileStatus["ADDED"] = "A"; + PorcelainFileStatus["DELETED"] = "D"; + PorcelainFileStatus["MODIFIED"] = "M"; + PorcelainFileStatus["RENAMED"] = "R"; + PorcelainFileStatus["COPIED"] = "C"; + PorcelainFileStatus["UNMERGED"] = "U"; + PorcelainFileStatus["UNTRACKED"] = "?"; + PorcelainFileStatus["IGNORED"] = "!"; + PorcelainFileStatus["NONE"] = " "; +})(PorcelainFileStatus || (PorcelainFileStatus = {})); +function renamedFile(line) { + const detail = /^(.+) -> (.+)$/.exec(line); + if (!detail) { + return { + from: line, to: line + }; + } + return { + from: String(detail[1]), + to: String(detail[2]), + }; +} +function parser(indexX, indexY, handler) { + return [`${indexX}${indexY}`, handler]; +} +function conflicts(indexX, ...indexY) { + return indexY.map(y => parser(indexX, y, (result, file) => utils_1.append(result.conflicted, file))); +} +const parsers = new Map([ + parser(PorcelainFileStatus.NONE, PorcelainFileStatus.ADDED, (result, file) => utils_1.append(result.created, file)), + parser(PorcelainFileStatus.NONE, PorcelainFileStatus.DELETED, (result, file) => utils_1.append(result.deleted, file)), + parser(PorcelainFileStatus.NONE, PorcelainFileStatus.MODIFIED, (result, file) => utils_1.append(result.modified, file)), + parser(PorcelainFileStatus.ADDED, PorcelainFileStatus.NONE, (result, file) => utils_1.append(result.created, file) && utils_1.append(result.staged, file)), + parser(PorcelainFileStatus.ADDED, PorcelainFileStatus.MODIFIED, (result, file) => utils_1.append(result.created, file) && utils_1.append(result.staged, file) && utils_1.append(result.modified, file)), + parser(PorcelainFileStatus.DELETED, PorcelainFileStatus.NONE, (result, file) => utils_1.append(result.deleted, file) && utils_1.append(result.staged, file)), + parser(PorcelainFileStatus.MODIFIED, PorcelainFileStatus.NONE, (result, file) => utils_1.append(result.modified, file) && utils_1.append(result.staged, file)), + parser(PorcelainFileStatus.MODIFIED, PorcelainFileStatus.MODIFIED, (result, file) => utils_1.append(result.modified, file) && utils_1.append(result.staged, file)), + parser(PorcelainFileStatus.RENAMED, PorcelainFileStatus.NONE, (result, file) => { + utils_1.append(result.renamed, renamedFile(file)); + }), + parser(PorcelainFileStatus.RENAMED, PorcelainFileStatus.MODIFIED, (result, file) => { + const renamed = renamedFile(file); + utils_1.append(result.renamed, renamed); + utils_1.append(result.modified, renamed.to); + }), + parser(PorcelainFileStatus.UNTRACKED, PorcelainFileStatus.UNTRACKED, (result, file) => utils_1.append(result.not_added, file)), + ...conflicts(PorcelainFileStatus.ADDED, PorcelainFileStatus.ADDED, PorcelainFileStatus.UNMERGED), + ...conflicts(PorcelainFileStatus.DELETED, PorcelainFileStatus.DELETED, PorcelainFileStatus.UNMERGED), + ...conflicts(PorcelainFileStatus.UNMERGED, PorcelainFileStatus.ADDED, PorcelainFileStatus.DELETED, PorcelainFileStatus.UNMERGED), + ['##', (result, line) => { + const aheadReg = /ahead (\d+)/; + const behindReg = /behind (\d+)/; + const currentReg = /^(.+?(?=(?:\.{3}|\s|$)))/; + const trackingReg = /\.{3}(\S*)/; + const onEmptyBranchReg = /\son\s([\S]+)$/; + let regexResult; + regexResult = aheadReg.exec(line); + result.ahead = regexResult && +regexResult[1] || 0; + regexResult = behindReg.exec(line); + result.behind = regexResult && +regexResult[1] || 0; + regexResult = currentReg.exec(line); + result.current = regexResult && regexResult[1]; + regexResult = trackingReg.exec(line); + result.tracking = regexResult && regexResult[1]; + regexResult = onEmptyBranchReg.exec(line); + result.current = regexResult && regexResult[1] || result.current; + }] +]); +const parseStatusSummary = function (text) { + const lines = text.trim().split('\n'); + const status = new StatusSummary(); + for (let i = 0, l = lines.length; i < l; i++) { + splitLine(status, lines[i]); + } + return status; +}; +exports.parseStatusSummary = parseStatusSummary; +function splitLine(result, lineStr) { + const trimmed = lineStr.trim(); + switch (' ') { + case trimmed.charAt(2): + return data(trimmed.charAt(0), trimmed.charAt(1), trimmed.substr(3)); + case trimmed.charAt(1): + return data(PorcelainFileStatus.NONE, trimmed.charAt(0), trimmed.substr(2)); + default: + return; + } + function data(index, workingDir, path) { + const raw = `${index}${workingDir}`; + const handler = parsers.get(raw); + if (handler) { + handler(result, path); + } + if (raw !== '##') { + result.files.push(new FileStatusSummary_1.FileStatusSummary(path, index, workingDir)); + } + } +} +//# sourceMappingURL=StatusSummary.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/StatusSummary.js.map b/Client/node_modules/simple-git/src/lib/responses/StatusSummary.js.map new file mode 100644 index 000000000..93bd4be40 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/StatusSummary.js.map @@ -0,0 +1 @@ +{"version":3,"file":"StatusSummary.js","sourceRoot":"","sources":["StatusSummary.ts"],"names":[],"mappings":";;;AACA,oCAAkC;AAClC,2DAAwD;AAExD;;GAEG;AACH,MAAa,aAAa;IAA1B;QACU,cAAS,GAAa,EAAE,CAAC;QACzB,eAAU,GAAa,EAAE,CAAC;QAC1B,YAAO,GAAa,EAAE,CAAC;QACvB,YAAO,GAAa,EAAE,CAAC;QACvB,aAAQ,GAAa,EAAE,CAAC;QACxB,YAAO,GAA0B,EAAE,CAAC;QAE3C;;;WAGG;QACI,UAAK,GAAuB,EAAE,CAAC;QAC/B,WAAM,GAAa,EAAE,CAAC;QAE7B;;WAEG;QACI,UAAK,GAAG,CAAC,CAAC;QAEjB;;WAEG;QACI,WAAM,GAAG,CAAC,CAAC;QAElB;;WAEG;QACI,YAAO,GAAkB,IAAI,CAAC;QAErC;;WAEG;QACI,aAAQ,GAAkB,IAAI,CAAC;IAQzC,CAAC;IANE;;OAEG;IACI,OAAO;QACX,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC7B,CAAC;CACH;AAzCD,sCAyCC;AAED,IAAK,mBAUJ;AAVD,WAAK,mBAAmB;IACrB,kCAAW,CAAA;IACX,oCAAa,CAAA;IACb,qCAAc,CAAA;IACd,oCAAa,CAAA;IACb,mCAAY,CAAA;IACZ,qCAAc,CAAA;IACd,sCAAe,CAAA;IACf,oCAAa,CAAA;IACb,iCAAU,CAAA;AACb,CAAC,EAVI,mBAAmB,KAAnB,mBAAmB,QAUvB;AAED,SAAS,WAAW,CAAC,IAAY;IAC9B,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE3C,IAAI,CAAC,MAAM,EAAE;QACV,OAAO;YACJ,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI;SACtB,CAAC;KACJ;IAED,OAAO;QACJ,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KACvB,CAAC;AACL,CAAC;AAED,SAAS,MAAM,CAAC,MAA2B,EAAE,MAA2B,EAAE,OAAsD;IAC7H,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,SAAS,CAAC,MAA2B,EAAE,GAAG,MAA6B;IAC7E,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,cAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAChG,CAAC;AAED,MAAM,OAAO,GAAkE,IAAI,GAAG,CAAC;IACpF,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,cAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3G,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,cAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7G,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,cAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAE/G,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,cAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,cAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1I,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAC9E,cAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,cAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,cAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAEhG,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,cAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,cAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE5I,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,cAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,cAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9I,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,cAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,cAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAElJ,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QAC5E,cAAM,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC;IACF,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QAChF,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAClC,cAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAChC,cAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,mBAAmB,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,cAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAEtH,GAAG,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC;IAChG,GAAG,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC;IACpG,GAAG,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC;IAEhI,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;YACrB,MAAM,QAAQ,GAAG,aAAa,CAAC;YAC/B,MAAM,SAAS,GAAG,cAAc,CAAC;YACjC,MAAM,UAAU,GAAG,0BAA0B,CAAC;YAC9C,MAAM,WAAW,GAAG,YAAY,CAAC;YACjC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;YAC1C,IAAI,WAAW,CAAC;YAEhB,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,KAAK,GAAG,WAAW,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAEnD,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,GAAG,WAAW,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAEpD,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,CAAC,OAAO,GAAG,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;YAE/C,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,CAAC,QAAQ,GAAG,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;YAEhD,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,CAAC,OAAO,GAAG,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC;QACpE,CAAC,CAAC;CACJ,CAAC,CAAC;AAEI,MAAM,kBAAkB,GAAG,UAAU,IAAY;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3C,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9B;IAED,OAAO,MAAM,CAAC;AACjB,CAAC,CAAC;AATW,QAAA,kBAAkB,sBAS7B;AAEF,SAAS,SAAS,CAAC,MAAoB,EAAE,OAAe;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,QAAQ,GAAG,EAAE;QACV,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACnB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACnB,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E;YACG,OAAO;KACZ;IAED,SAAS,IAAI,CAAC,KAAa,EAAE,UAAkB,EAAE,IAAY;QAC1D,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,UAAU,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEjC,IAAI,OAAO,EAAE;YACV,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACxB;QAED,IAAI,GAAG,KAAK,IAAI,EAAE;YACf,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,qCAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;SACpE;IACJ,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/TagList.d.ts b/Client/node_modules/simple-git/src/lib/responses/TagList.d.ts new file mode 100644 index 000000000..b72180de6 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/TagList.d.ts @@ -0,0 +1,7 @@ +import { TagResult } from '../../../typings'; +export declare class TagList implements TagResult { + readonly all: string[]; + readonly latest: string | undefined; + constructor(all: string[], latest: string | undefined); +} +export declare const parseTagList: (data: string, customSort?: boolean) => TagList; diff --git a/Client/node_modules/simple-git/src/lib/responses/TagList.js b/Client/node_modules/simple-git/src/lib/responses/TagList.js new file mode 100644 index 000000000..ec2ae9e05 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/TagList.js @@ -0,0 +1,56 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseTagList = exports.TagList = void 0; +class TagList { + constructor(all, latest) { + this.all = all; + this.latest = latest; + } +} +exports.TagList = TagList; +const parseTagList = function (data, customSort = false) { + const tags = data + .split('\n') + .map(trimmed) + .filter(Boolean); + if (!customSort) { + tags.sort(function (tagA, tagB) { + const partsA = tagA.split('.'); + const partsB = tagB.split('.'); + if (partsA.length === 1 || partsB.length === 1) { + return singleSorted(toNumber(partsA[0]), toNumber(partsB[0])); + } + for (let i = 0, l = Math.max(partsA.length, partsB.length); i < l; i++) { + const diff = sorted(toNumber(partsA[i]), toNumber(partsB[i])); + if (diff) { + return diff; + } + } + return 0; + }); + } + const latest = customSort ? tags[0] : [...tags].reverse().find((tag) => tag.indexOf('.') >= 0); + return new TagList(tags, latest); +}; +exports.parseTagList = parseTagList; +function singleSorted(a, b) { + const aIsNum = isNaN(a); + const bIsNum = isNaN(b); + if (aIsNum !== bIsNum) { + return aIsNum ? 1 : -1; + } + return aIsNum ? sorted(a, b) : 0; +} +function sorted(a, b) { + return a === b ? 0 : a > b ? 1 : -1; +} +function trimmed(input) { + return input.trim(); +} +function toNumber(input) { + if (typeof input === 'string') { + return parseInt(input.replace(/^\D+/g, ''), 10) || 0; + } + return 0; +} +//# sourceMappingURL=TagList.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/responses/TagList.js.map b/Client/node_modules/simple-git/src/lib/responses/TagList.js.map new file mode 100644 index 000000000..63ade8d52 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/responses/TagList.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TagList.js","sourceRoot":"","sources":["TagList.ts"],"names":[],"mappings":";;;AAEA,MAAa,OAAO;IACjB,YACmB,GAAa,EACb,MAA0B;QAD1B,QAAG,GAAH,GAAG,CAAU;QACb,WAAM,GAAN,MAAM,CAAoB;IAE7C,CAAC;CACH;AAND,0BAMC;AAEM,MAAM,YAAY,GAAG,UAAU,IAAY,EAAE,UAAU,GAAG,KAAK;IACnE,MAAM,IAAI,GAAG,IAAI;SACb,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,OAAO,CAAC;SACZ,MAAM,CAAC,OAAO,CAAC,CAAC;IAEpB,IAAI,CAAC,UAAU,EAAE;QACd,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,IAAI;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAE/B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7C,OAAO,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAChE;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACrE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE9D,IAAI,IAAI,EAAE;oBACP,OAAO,IAAI,CAAC;iBACd;aACH;YAED,OAAO,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC;KACL;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/F,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC,CAAC;AA9BW,QAAA,YAAY,gBA8BvB;AAEF,SAAS,YAAY,CAAC,CAAS,EAAE,CAAU;IACxC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,MAAM,KAAK,MAAM,EAAE;QACpB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB;IAED,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,MAAM,CAAC,CAAS,EAAE,CAAS;IACjC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC3B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAyB;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC5B,OAAO,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;KACvD;IAED,OAAO,CAAC,CAAC;AACZ,CAAC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/runners/git-executor-chain.d.ts b/Client/node_modules/simple-git/src/lib/runners/git-executor-chain.d.ts new file mode 100644 index 000000000..d31bc9253 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/runners/git-executor-chain.d.ts @@ -0,0 +1,20 @@ +import { Scheduler } from './scheduler'; +import { outputHandler, SimpleGitExecutor, SimpleGitTask } from '../types'; +export declare class GitExecutorChain implements SimpleGitExecutor { + private _executor; + private _scheduler; + private _chain; + private _queue; + get binary(): string; + get outputHandler(): outputHandler | undefined; + get cwd(): string; + get env(): import("../types").GitExecutorEnv; + constructor(_executor: SimpleGitExecutor, _scheduler: Scheduler); + push(task: SimpleGitTask): Promise; + private attemptTask; + private onFatalException; + private attemptRemoteTask; + private attemptEmptyTask; + private handleTaskData; + private gitResponse; +} diff --git a/Client/node_modules/simple-git/src/lib/runners/git-executor-chain.js b/Client/node_modules/simple-git/src/lib/runners/git-executor-chain.js new file mode 100644 index 000000000..422395a45 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/runners/git-executor-chain.js @@ -0,0 +1,169 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GitExecutorChain = void 0; +const child_process_1 = require("child_process"); +const api_1 = require("../api"); +const task_1 = require("../tasks/task"); +const tasks_pending_queue_1 = require("./tasks-pending-queue"); +const utils_1 = require("../utils"); +class GitExecutorChain { + constructor(_executor, _scheduler) { + this._executor = _executor; + this._scheduler = _scheduler; + this._chain = Promise.resolve(); + this._queue = new tasks_pending_queue_1.TasksPendingQueue(); + } + get binary() { + return this._executor.binary; + } + get outputHandler() { + return this._executor.outputHandler; + } + get cwd() { + return this._executor.cwd; + } + get env() { + return this._executor.env; + } + push(task) { + this._queue.push(task); + return this._chain = this._chain.then(() => this.attemptTask(task)); + } + attemptTask(task) { + return __awaiter(this, void 0, void 0, function* () { + const onScheduleComplete = yield this._scheduler.next(); + const onQueueComplete = () => this._queue.complete(task); + try { + const { logger } = this._queue.attempt(task); + return yield (task_1.isEmptyTask(task) + ? this.attemptEmptyTask(task, logger) + : this.attemptRemoteTask(task, logger)); + } + catch (e) { + throw this.onFatalException(task, e); + } + finally { + onQueueComplete(); + onScheduleComplete(); + } + }); + } + onFatalException(task, e) { + const gitError = (e instanceof api_1.GitError) ? Object.assign(e, { task }) : new api_1.GitError(task, e && String(e)); + this._chain = Promise.resolve(); + this._queue.fatal(gitError); + return gitError; + } + attemptRemoteTask(task, logger) { + return __awaiter(this, void 0, void 0, function* () { + const raw = yield this.gitResponse(this.binary, task.commands, this.outputHandler, logger.step('SPAWN')); + const outputStreams = yield this.handleTaskData(task, raw, logger.step('HANDLE')); + logger(`passing response to task's parser as a %s`, task.format); + if (task_1.isBufferTask(task)) { + return utils_1.callTaskParser(task.parser, outputStreams); + } + return utils_1.callTaskParser(task.parser, outputStreams.asStrings()); + }); + } + attemptEmptyTask(task, logger) { + return __awaiter(this, void 0, void 0, function* () { + logger(`empty task bypassing child process to call to task's parser`); + return task.parser(); + }); + } + handleTaskData({ onError, concatStdErr }, { exitCode, stdOut, stdErr }, logger) { + return new Promise((done, fail) => { + logger(`Preparing to handle process response exitCode=%d stdOut=`, exitCode); + if (exitCode && stdErr.length && onError) { + logger.info(`exitCode=%s handling with custom error handler`); + logger(`concatenate stdErr to stdOut: %j`, concatStdErr); + return onError(exitCode, Buffer.concat([...(concatStdErr ? stdOut : []), ...stdErr]).toString('utf-8'), (result) => { + logger.info(`custom error handler treated as success`); + logger(`custom error returned a %s`, utils_1.objectToString(result)); + done(new utils_1.GitOutputStreams(Buffer.isBuffer(result) ? result : Buffer.from(String(result)), Buffer.concat(stdErr))); + }, fail); + } + if (exitCode && stdErr.length) { + logger.info(`exitCode=%s treated as error when then child process has written to stdErr`); + return fail(Buffer.concat(stdErr).toString('utf-8')); + } + if (concatStdErr) { + logger(`concatenating stdErr onto stdOut before processing`); + logger(`stdErr: $O`, stdErr); + stdOut.push(...stdErr); + } + logger.info(`retrieving task output complete`); + done(new utils_1.GitOutputStreams(Buffer.concat(stdOut), Buffer.concat(stdErr))); + }); + } + gitResponse(command, args, outputHandler, logger) { + return __awaiter(this, void 0, void 0, function* () { + const outputLogger = logger.sibling('output'); + const spawnOptions = { + cwd: this.cwd, + env: this.env, + windowsHide: true, + }; + return new Promise((done) => { + const stdOut = []; + const stdErr = []; + let attempted = false; + function attemptClose(exitCode, event = 'retry') { + // closing when there is content, terminate immediately + if (attempted || stdErr.length || stdOut.length) { + logger.info(`exitCode=%s event=%s`, exitCode, event); + done({ + stdOut, + stdErr, + exitCode, + }); + attempted = true; + outputLogger.destroy(); + } + // first attempt at closing but no content yet, wait briefly for the close/exit that may follow + if (!attempted) { + attempted = true; + setTimeout(() => attemptClose(exitCode, 'deferred'), 50); + logger('received %s event before content on stdOut/stdErr', event); + } + } + logger.info(`%s %o`, command, args); + logger('%O', spawnOptions); + const spawned = child_process_1.spawn(command, args, spawnOptions); + spawned.stdout.on('data', onDataReceived(stdOut, 'stdOut', logger, outputLogger.step('stdOut'))); + spawned.stderr.on('data', onDataReceived(stdErr, 'stdErr', logger, outputLogger.step('stdErr'))); + spawned.on('error', onErrorReceived(stdErr, logger)); + spawned.on('close', (code) => attemptClose(code, 'close')); + spawned.on('exit', (code) => attemptClose(code, 'exit')); + if (outputHandler) { + logger(`Passing child process stdOut/stdErr to custom outputHandler`); + outputHandler(command, spawned.stdout, spawned.stderr, [...args]); + } + }); + }); + } +} +exports.GitExecutorChain = GitExecutorChain; +function onErrorReceived(target, logger) { + return (err) => { + logger(`[ERROR] child process exception %o`, err); + target.push(Buffer.from(String(err.stack), 'ascii')); + }; +} +function onDataReceived(target, name, logger, output) { + return (buffer) => { + logger(`%s received %L bytes`, name, buffer); + output(`%B`, buffer); + target.push(buffer); + }; +} +//# sourceMappingURL=git-executor-chain.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/runners/git-executor-chain.js.map b/Client/node_modules/simple-git/src/lib/runners/git-executor-chain.js.map new file mode 100644 index 000000000..ecad1c2ce --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/runners/git-executor-chain.js.map @@ -0,0 +1 @@ +{"version":3,"file":"git-executor-chain.js","sourceRoot":"","sources":["git-executor-chain.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAAoD;AACpD,gCAAkC;AAElC,wCAAsE;AAEtE,+DAA0D;AAU1D,oCAA4E;AAE5E,MAAa,gBAAgB;IAqB1B,YAAoB,SAA4B,EAAU,UAAqB;QAA3D,cAAS,GAAT,SAAS,CAAmB;QAAU,eAAU,GAAV,UAAU,CAAW;QAnBvE,WAAM,GAAiB,OAAO,CAAC,OAAO,EAAE,CAAC;QACzC,WAAM,GAAG,IAAI,uCAAiB,EAAE,CAAC;IAmBzC,CAAC;IAjBD,IAAW,MAAM;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAChC,CAAC;IAED,IAAW,aAAa;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;IACvC,CAAC;IAED,IAAW,GAAG;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;IAC7B,CAAC;IAED,IAAW,GAAG;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;IAC7B,CAAC;IAKM,IAAI,CAAI,IAAsB;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvB,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACvE,CAAC;IAEa,WAAW,CAAI,IAAsB;;YAChD,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACxD,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEzD,IAAI;gBACD,MAAM,EAAC,MAAM,EAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC3C,OAAO,MAAM,CAAC,kBAAW,CAAC,IAAI,CAAC;oBACzB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC;oBACrC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CACtC,CAAC;aACT;YAAC,OAAO,CAAC,EAAE;gBACT,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aACvC;oBAAS;gBACP,eAAe,EAAE,CAAC;gBAClB,kBAAkB,EAAE,CAAC;aACvB;QACJ,CAAC;KAAA;IAEO,gBAAgB,CAAI,IAAsB,EAAE,CAAQ;QACzD,MAAM,QAAQ,GAAG,CAAC,CAAC,YAAY,cAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,cAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzG,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAE5B,OAAO,QAAQ,CAAC;IACnB,CAAC;IAEa,iBAAiB,CAAI,IAAqB,EAAE,MAAoB;;YAC3E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACzG,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAElF,MAAM,CAAC,2CAA2C,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAEjE,IAAI,mBAAY,CAAC,IAAI,CAAC,EAAE;gBACrB,OAAO,sBAAc,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;aACpD;YAED,OAAO,sBAAc,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC;QACjE,CAAC;KAAA;IAEa,gBAAgB,CAAC,IAAe,EAAE,MAAoB;;YACjE,MAAM,CAAC,6DAA6D,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC;KAAA;IAEO,cAAc,CACnB,EAAC,OAAO,EAAE,YAAY,EAAmB,EACzC,EAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAoB,EAAE,MAAoB;QAEnE,OAAO,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YAC/B,MAAM,CAAC,0DAA0D,EAAE,QAAQ,CAAC,CAAC;YAE7E,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,IAAI,OAAO,EAAE;gBACvC,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;gBAC9D,MAAM,CAAC,kCAAkC,EAAE,YAAY,CAAC,CAAC;gBACzD,OAAO,OAAO,CACX,QAAQ,EACR,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC7E,CAAC,MAA0B,EAAE,EAAE;oBAC5B,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;oBACvD,MAAM,CAAC,4BAA4B,EAAE,sBAAc,CAAC,MAAM,CAAC,CAAC,CAAC;oBAE7D,IAAI,CAAC,IAAI,wBAAgB,CACtB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAC9D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CACvB,CAAC,CAAC;gBACN,CAAC,EACD,IAAI,CACN,CAAC;aACJ;YAED,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE;gBAC5B,MAAM,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;gBAC1F,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;aACvD;YAED,IAAI,YAAY,EAAE;gBACf,MAAM,CAAC,oDAAoD,CAAC,CAAC;gBAC7D,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;aACzB;YAED,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,wBAAgB,CACtB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EACrB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CACvB,CAAC,CAAC;QACN,CAAC,CAAC,CAAC;IACN,CAAC;IAEa,WAAW,CAAC,OAAe,EAAE,IAAc,EAAE,aAAmC,EAAE,MAAoB;;YACjH,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,YAAY,GAAiB;gBAChC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,WAAW,EAAE,IAAI;aACnB,CAAC;YAEF,OAAO,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACzB,MAAM,MAAM,GAAa,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAa,EAAE,CAAC;gBAE5B,IAAI,SAAS,GAAG,KAAK,CAAC;gBAEtB,SAAS,YAAY,CAAC,QAAgB,EAAE,QAAgB,OAAO;oBAE5D,uDAAuD;oBACvD,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;wBAC9C,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;wBACrD,IAAI,CAAC;4BACF,MAAM;4BACN,MAAM;4BACN,QAAQ;yBACV,CAAC,CAAC;wBACH,SAAS,GAAG,IAAI,CAAC;wBACjB,YAAY,CAAC,OAAO,EAAE,CAAC;qBACzB;oBAED,+FAA+F;oBAC/F,IAAI,CAAC,SAAS,EAAE;wBACb,SAAS,GAAG,IAAI,CAAC;wBACjB,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;wBACzD,MAAM,CAAC,mDAAmD,EAAE,KAAK,CAAC,CAAA;qBACpE;gBAEJ,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACpC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;gBAC1B,MAAM,OAAO,GAAG,qBAAK,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;gBAEnD,OAAO,CAAC,MAAO,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAClG,OAAO,CAAC,MAAO,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAElG,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;gBAErD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;gBACnE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;gBAEjE,IAAI,aAAa,EAAE;oBAChB,MAAM,CAAC,6DAA6D,CAAC,CAAC;oBACtE,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,MAAO,EAAE,OAAO,CAAC,MAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;iBACtE;YAEJ,CAAC,CAAC,CAAC;QACN,CAAC;KAAA;CAEH;AAjLD,4CAiLC;AAED,SAAS,eAAe,CAAC,MAAgB,EAAE,MAAoB;IAC5D,OAAO,CAAC,GAAU,EAAE,EAAE;QACnB,MAAM,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,MAAgB,EAAE,IAAY,EAAE,MAAoB,EAAE,MAAoB;IAC/F,OAAO,CAAC,MAAc,EAAE,EAAE;QACvB,MAAM,CAAC,sBAAsB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtB,CAAC,CAAA;AACJ,CAAC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/runners/git-executor.d.ts b/Client/node_modules/simple-git/src/lib/runners/git-executor.d.ts new file mode 100644 index 000000000..1d25ec474 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/runners/git-executor.d.ts @@ -0,0 +1,13 @@ +import { GitExecutorEnv, outputHandler, SimpleGitExecutor, SimpleGitTask } from '../types'; +import { Scheduler } from './scheduler'; +export declare class GitExecutor implements SimpleGitExecutor { + binary: string; + cwd: string; + private _scheduler; + private _chain; + env: GitExecutorEnv; + outputHandler?: outputHandler; + constructor(binary: string, cwd: string, _scheduler: Scheduler); + chain(): SimpleGitExecutor; + push(task: SimpleGitTask): Promise; +} diff --git a/Client/node_modules/simple-git/src/lib/runners/git-executor.js b/Client/node_modules/simple-git/src/lib/runners/git-executor.js new file mode 100644 index 000000000..417ad208c --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/runners/git-executor.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GitExecutor = void 0; +const git_executor_chain_1 = require("./git-executor-chain"); +class GitExecutor { + constructor(binary = 'git', cwd, _scheduler) { + this.binary = binary; + this.cwd = cwd; + this._scheduler = _scheduler; + this._chain = new git_executor_chain_1.GitExecutorChain(this, this._scheduler); + } + chain() { + return new git_executor_chain_1.GitExecutorChain(this, this._scheduler); + } + push(task) { + return this._chain.push(task); + } +} +exports.GitExecutor = GitExecutor; +//# sourceMappingURL=git-executor.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/runners/git-executor.js.map b/Client/node_modules/simple-git/src/lib/runners/git-executor.js.map new file mode 100644 index 000000000..e2139b41d --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/runners/git-executor.js.map @@ -0,0 +1 @@ +{"version":3,"file":"git-executor.js","sourceRoot":"","sources":["git-executor.ts"],"names":[],"mappings":";;;AACA,6DAAwD;AAGxD,MAAa,WAAW;IAOrB,YACU,SAAiB,KAAK,EACtB,GAAW,EACV,UAAqB;QAFtB,WAAM,GAAN,MAAM,CAAgB;QACtB,QAAG,GAAH,GAAG,CAAQ;QACV,eAAU,GAAV,UAAU,CAAW;QARxB,WAAM,GAAG,IAAI,qCAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAU7D,CAAC;IAED,KAAK;QACF,OAAO,IAAI,qCAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,CAAI,IAAsB;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;CAEH;AAtBD,kCAsBC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/runners/promise-wrapped.d.ts b/Client/node_modules/simple-git/src/lib/runners/promise-wrapped.d.ts new file mode 100644 index 000000000..4f8d69440 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/runners/promise-wrapped.d.ts @@ -0,0 +1,2 @@ +import { SimpleGit, SimpleGitOptions } from '../../../typings'; +export declare function gitP(...args: [] | [string] | [Partial] | [string, Partial]): SimpleGit; diff --git a/Client/node_modules/simple-git/src/lib/runners/promise-wrapped.js b/Client/node_modules/simple-git/src/lib/runners/promise-wrapped.js new file mode 100644 index 000000000..c9923cb4f --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/runners/promise-wrapped.js @@ -0,0 +1,133 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.gitP = void 0; +const git_response_error_1 = require("../errors/git-response-error"); +const functionNamesBuilderApi = [ + 'customBinary', 'env', 'outputHandler', 'silent', +]; +const functionNamesPromiseApi = [ + 'add', + 'addAnnotatedTag', + 'addConfig', + 'addRemote', + 'addTag', + 'applyPatch', + 'binaryCatFile', + 'branch', + 'branchLocal', + 'catFile', + 'checkIgnore', + 'checkIsRepo', + 'checkout', + 'checkoutBranch', + 'checkoutLatestTag', + 'checkoutLocalBranch', + 'clean', + 'clone', + 'commit', + 'cwd', + 'deleteLocalBranch', + 'deleteLocalBranches', + 'diff', + 'diffSummary', + 'exec', + 'fetch', + 'getRemotes', + 'init', + 'listConfig', + 'listRemote', + 'log', + 'merge', + 'mergeFromTo', + 'mirror', + 'mv', + 'pull', + 'push', + 'pushTags', + 'raw', + 'rebase', + 'remote', + 'removeRemote', + 'reset', + 'revert', + 'revparse', + 'rm', + 'rmKeepLocal', + 'show', + 'stash', + 'stashList', + 'status', + 'subModule', + 'submoduleAdd', + 'submoduleInit', + 'submoduleUpdate', + 'tag', + 'tags', + 'updateServerInfo' +]; +const { gitInstanceFactory } = require('../../git-factory'); +function gitP(...args) { + let git; + let chain = Promise.resolve(); + try { + git = gitInstanceFactory(...args); + } + catch (e) { + chain = Promise.reject(e); + } + function builderReturn() { + return promiseApi; + } + function chainReturn() { + return chain; + } + const promiseApi = [...functionNamesBuilderApi, ...functionNamesPromiseApi].reduce((api, name) => { + const isAsync = functionNamesPromiseApi.includes(name); + const valid = isAsync ? asyncWrapper(name, git) : syncWrapper(name, git, api); + const alternative = isAsync ? chainReturn : builderReturn; + Object.defineProperty(api, name, { + enumerable: false, + configurable: false, + value: git ? valid : alternative, + }); + return api; + }, {}); + return promiseApi; + function asyncWrapper(fn, git) { + return function (...args) { + if (typeof args[args.length] === 'function') { + throw new TypeError('Promise interface requires that handlers are not supplied inline, ' + + 'trailing function not allowed in call to ' + fn); + } + return chain.then(function () { + return new Promise(function (resolve, reject) { + const callback = (err, result) => { + if (err) { + return reject(toError(err)); + } + resolve(result); + }; + args.push(callback); + git[fn].apply(git, args); + }); + }); + }; + } + function syncWrapper(fn, git, api) { + return (...args) => { + git[fn](...args); + return api; + }; + } +} +exports.gitP = gitP; +function toError(error) { + if (error instanceof Error) { + return error; + } + if (typeof error === 'string') { + return new Error(error); + } + return new git_response_error_1.GitResponseError(error); +} +//# sourceMappingURL=promise-wrapped.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/runners/promise-wrapped.js.map b/Client/node_modules/simple-git/src/lib/runners/promise-wrapped.js.map new file mode 100644 index 000000000..4e7078caf --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/runners/promise-wrapped.js.map @@ -0,0 +1 @@ +{"version":3,"file":"promise-wrapped.js","sourceRoot":"","sources":["promise-wrapped.ts"],"names":[],"mappings":";;;AACA,qEAAgE;AAGhE,MAAM,uBAAuB,GAAG;IAC7B,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ;CAClD,CAAC;AAEF,MAAM,uBAAuB,GAAG;IAC7B,KAAK;IACL,iBAAiB;IACjB,WAAW;IACX,WAAW;IACX,QAAQ;IACR,YAAY;IACZ,eAAe;IACf,QAAQ;IACR,aAAa;IACb,SAAS;IACT,aAAa;IACb,aAAa;IACb,UAAU;IACV,gBAAgB;IAChB,mBAAmB;IACnB,qBAAqB;IACrB,OAAO;IACP,OAAO;IACP,QAAQ;IACR,KAAK;IACL,mBAAmB;IACnB,qBAAqB;IACrB,MAAM;IACN,aAAa;IACb,MAAM;IACN,OAAO;IACP,YAAY;IACZ,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,KAAK;IACL,OAAO;IACP,aAAa;IACb,QAAQ;IACR,IAAI;IACJ,MAAM;IACN,MAAM;IACN,UAAU;IACV,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,cAAc;IACd,OAAO;IACP,QAAQ;IACR,UAAU;IACV,IAAI;IACJ,aAAa;IACb,MAAM;IACN,OAAO;IACP,WAAW;IACX,QAAQ;IACR,WAAW;IACX,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,KAAK;IACL,MAAM;IACN,kBAAkB;CACpB,CAAC;AAEF,MAAM,EAAC,kBAAkB,EAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAE1D,SAAgB,IAAI,CAAC,GAAG,IAAuF;IAE5G,IAAI,GAAQ,CAAC;IAEb,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAE9B,IAAI;QACD,GAAG,GAAG,kBAAkB,CAAC,GAAG,IAAI,CAAC,CAAC;KACpC;IAAC,OAAO,CAAC,EAAE;QACT,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAC5B;IAED,SAAS,aAAa;QACnB,OAAO,UAAU,CAAC;IACrB,CAAC;IAED,SAAS,WAAW;QACjB,OAAO,KAAK,CAAC;IAChB,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,GAAG,uBAAuB,EAAE,GAAG,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,IAAY,EAAE,EAAE;QAC3G,MAAM,OAAO,GAAG,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEvD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;QAE1D,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE;YAC9B,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,KAAK;YACnB,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW;SAClC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACd,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,UAAuB,CAAC;IAE/B,SAAS,YAAY,CAAC,EAAU,EAAE,GAAQ;QACvC,OAAO,UAAU,GAAG,IAAW;YAC5B,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE;gBAC1C,MAAM,IAAI,SAAS,CAChB,oEAAoE;oBACpE,2CAA2C,GAAG,EAAE,CAAC,CAAC;aACvD;YAED,OAAO,KAAK,CAAC,IAAI,CAAC;gBACf,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM;oBACzC,MAAM,QAAQ,GAA0B,CAAC,GAAiB,EAAE,MAAY,EAAE,EAAE;wBACzE,IAAI,GAAG,EAAE;4BACN,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;yBAC9B;wBAED,OAAO,CAAC,MAAM,CAAC,CAAC;oBACnB,CAAC,CAAC;oBACF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAEpB,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC5B,CAAC,CAAC,CAAC;YACN,CAAC,CAAC,CAAC;QACN,CAAC,CAAC;IACL,CAAC;IAED,SAAS,WAAW,CAAC,EAAU,EAAE,GAAQ,EAAE,GAAc;QACtD,OAAO,CAAC,GAAG,IAAW,EAAE,EAAE;YACvB,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAEjB,OAAO,GAAG,CAAC;QACd,CAAC,CAAC;IACL,CAAC;AACJ,CAAC;AArED,oBAqEC;AAED,SAAS,OAAO,CAAC,KAA2B;IAEzC,IAAI,KAAK,YAAY,KAAK,EAAE;QACzB,OAAO,KAAK,CAAC;KACf;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC5B,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;KAC1B;IAED,OAAO,IAAI,qCAAgB,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/runners/scheduler.d.ts b/Client/node_modules/simple-git/src/lib/runners/scheduler.d.ts new file mode 100644 index 000000000..eacd8706e --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/runners/scheduler.d.ts @@ -0,0 +1,10 @@ +declare type ScheduleCompleteCallback = () => void; +export declare class Scheduler { + private concurrency; + private pending; + private running; + constructor(concurrency?: number); + private schedule; + next(): Promise; +} +export {}; diff --git a/Client/node_modules/simple-git/src/lib/runners/scheduler.js b/Client/node_modules/simple-git/src/lib/runners/scheduler.js new file mode 100644 index 000000000..3def35ff8 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/runners/scheduler.js @@ -0,0 +1,48 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Scheduler = void 0; +const utils_1 = require("../utils"); +const promise_deferred_1 = require("@kwsites/promise-deferred"); +const git_logger_1 = require("../git-logger"); +const logger = git_logger_1.createLogger('', 'scheduler'); +const createScheduledTask = (() => { + let id = 0; + return () => { + id++; + const { promise, done } = promise_deferred_1.createDeferred(); + return { + promise, + done, + id, + }; + }; +})(); +class Scheduler { + constructor(concurrency = 2) { + this.concurrency = concurrency; + this.pending = []; + this.running = []; + logger(`Constructed, concurrency=%s`, concurrency); + } + schedule() { + if (!this.pending.length || this.running.length >= this.concurrency) { + logger(`Schedule attempt ignored, pending=%s running=%s concurrency=%s`, this.pending.length, this.running.length, this.concurrency); + return; + } + const task = utils_1.append(this.running, this.pending.shift()); + logger(`Attempting id=%s`, task.id); + task.done(() => { + logger(`Completing id=`, task.id); + utils_1.remove(this.running, task); + this.schedule(); + }); + } + next() { + const { promise, id } = utils_1.append(this.pending, createScheduledTask()); + logger(`Scheduling id=%s`, id); + this.schedule(); + return promise; + } +} +exports.Scheduler = Scheduler; +//# sourceMappingURL=scheduler.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/runners/scheduler.js.map b/Client/node_modules/simple-git/src/lib/runners/scheduler.js.map new file mode 100644 index 000000000..7e90f93bd --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/runners/scheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["scheduler.ts"],"names":[],"mappings":";;;AAAA,oCAA0C;AAC1C,gEAA4E;AAC5E,8CAA6C;AAK7C,MAAM,MAAM,GAAG,yBAAY,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;AAE7C,MAAM,mBAAmB,GAAwB,CAAC,GAAG,EAAE;IACpD,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,OAAO,GAAG,EAAE;QACT,EAAE,EAAE,CAAC;QACL,MAAM,EAAC,OAAO,EAAE,IAAI,EAAC,GAAG,iCAAc,EAA4B,CAAC;QAEnE,OAAO;YACJ,OAAO;YACP,IAAI;YACJ,EAAE;SACJ,CAAC;IACL,CAAC,CAAA;AACJ,CAAC,CAAC,EAAE,CAAC;AAEL,MAAa,SAAS;IAInB,YAAoB,cAAc,CAAC;QAAf,gBAAW,GAAX,WAAW,CAAI;QAH3B,YAAO,GAAoB,EAAE,CAAC;QAC9B,YAAO,GAAoB,EAAE,CAAC;QAGnC,MAAM,CAAC,6BAA6B,EAAE,WAAW,CAAC,CAAC;IACtD,CAAC;IAEO,QAAQ;QACb,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE;YAClE,MAAM,CAAC,gEAAgE,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACrI,OAAO;SACT;QAED,MAAM,IAAI,GAAG,cAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAG,CAAC,CAAC;QACzD,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACZ,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAClC,cAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,IAAI;QACD,MAAM,EAAC,OAAO,EAAE,EAAE,EAAC,GAAG,cAAM,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAClE,MAAM,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QAE/B,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,OAAO,OAAO,CAAC;IAClB,CAAC;CACH;AA/BD,8BA+BC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/runners/tasks-pending-queue.d.ts b/Client/node_modules/simple-git/src/lib/runners/tasks-pending-queue.d.ts new file mode 100644 index 000000000..2ca7fc0e1 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/runners/tasks-pending-queue.d.ts @@ -0,0 +1,23 @@ +import { SimpleGitTask } from '../types'; +import { OutputLogger } from '../git-logger'; +import { GitError } from '../api'; +declare type AnySimpleGitTask = SimpleGitTask; +declare type TaskInProgress = { + name: string; + logger: OutputLogger; + task: AnySimpleGitTask; +}; +export declare class TasksPendingQueue { + private logLabel; + private _queue; + constructor(logLabel?: string); + private withProgress; + private createProgress; + push(task: AnySimpleGitTask): TaskInProgress; + fatal(err: GitError): void; + complete(task: AnySimpleGitTask): void; + attempt(task: AnySimpleGitTask): TaskInProgress; + static getName(name?: string): string; + private static counter; +} +export {}; diff --git a/Client/node_modules/simple-git/src/lib/runners/tasks-pending-queue.js b/Client/node_modules/simple-git/src/lib/runners/tasks-pending-queue.js new file mode 100644 index 000000000..03d10b110 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/runners/tasks-pending-queue.js @@ -0,0 +1,65 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TasksPendingQueue = void 0; +const git_logger_1 = require("../git-logger"); +const api_1 = require("../api"); +class TasksPendingQueue { + constructor(logLabel = 'GitExecutor') { + this.logLabel = logLabel; + this._queue = new Map(); + } + withProgress(task) { + return this._queue.get(task); + } + createProgress(task) { + const name = TasksPendingQueue.getName(task.commands[0]); + const logger = git_logger_1.createLogger(this.logLabel, name); + return { + task, + logger, + name, + }; + } + push(task) { + const progress = this.createProgress(task); + progress.logger('Adding task to the queue, commands = %o', task.commands); + this._queue.set(task, progress); + return progress; + } + fatal(err) { + for (const [task, { logger }] of Array.from(this._queue.entries())) { + if (task === err.task) { + logger.info(`Failed %o`, err); + logger(`Fatal exception, any as-yet un-started tasks run through this executor will not be attempted`); + } + else { + logger.info(`A fatal exception occurred in a previous task, the queue has been purged: %o`, err.message); + } + this.complete(task); + } + if (this._queue.size !== 0) { + throw new Error(`Queue size should be zero after fatal: ${this._queue.size}`); + } + } + complete(task) { + const progress = this.withProgress(task); + if (progress) { + progress.logger.destroy(); + this._queue.delete(task); + } + } + attempt(task) { + const progress = this.withProgress(task); + if (!progress) { + throw new api_1.GitError(undefined, 'TasksPendingQueue: attempt called for an unknown task'); + } + progress.logger('Starting task'); + return progress; + } + static getName(name = 'empty') { + return `task:${name}:${++TasksPendingQueue.counter}`; + } +} +exports.TasksPendingQueue = TasksPendingQueue; +TasksPendingQueue.counter = 0; +//# sourceMappingURL=tasks-pending-queue.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/runners/tasks-pending-queue.js.map b/Client/node_modules/simple-git/src/lib/runners/tasks-pending-queue.js.map new file mode 100644 index 000000000..35f0b6de6 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/runners/tasks-pending-queue.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tasks-pending-queue.js","sourceRoot":"","sources":["tasks-pending-queue.ts"],"names":[],"mappings":";;;AACA,8CAA2D;AAC3D,gCAAkC;AAUlC,MAAa,iBAAiB;IAI3B,YAAoB,WAAW,aAAa;QAAxB,aAAQ,GAAR,QAAQ,CAAgB;QAFpC,WAAM,GAA0C,IAAI,GAAG,EAAE,CAAC;IAGlE,CAAC;IAEO,YAAY,CAAC,IAAsB;QACxC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAEO,cAAc,CAAE,IAAsB;QAC3C,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,yBAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAEjD,OAAO;YACJ,IAAI;YACJ,MAAM;YACN,IAAI;SACN,CAAC;IACL,CAAC;IAED,IAAI,CAAC,IAAsB;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3C,QAAQ,CAAC,MAAM,CAAC,yCAAyC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE1E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEhC,OAAO,QAAQ,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,GAAa;QAChB,KAAK,MAAM,CAAC,IAAI,EAAE,EAAC,MAAM,EAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE;YAC/D,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE;gBACpB,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBAC9B,MAAM,CAAC,8FAA8F,CAAC,CAAC;aACzG;iBAAM;gBACJ,MAAM,CAAC,IAAI,CAAC,8EAA8E,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;aAC3G;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACtB;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;SAChF;IACJ,CAAC;IAED,QAAQ,CAAC,IAAsB;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,QAAQ,EAAE;YACX,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC3B;IACJ,CAAC;IAED,OAAO,CAAC,IAAsB;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,EAAE;YACZ,MAAM,IAAI,cAAQ,CAAC,SAAS,EAAE,uDAAuD,CAAC,CAAC;SACzF;QACD,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAEjC,OAAO,QAAQ,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,OAAO,CAAE,IAAI,GAAG,OAAO;QAC3B,OAAO,QAAQ,IAAI,IAAI,EAAE,iBAAiB,CAAC,OAAO,EAAE,CAAC;IACxD,CAAC;;AApEJ,8CAuEC;AADiB,yBAAO,GAAG,CAAC,CAAC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/task-callback.d.ts b/Client/node_modules/simple-git/src/lib/task-callback.d.ts new file mode 100644 index 000000000..dda89af48 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/task-callback.d.ts @@ -0,0 +1,2 @@ +import { SimpleGitTask, SimpleGitTaskCallback } from './types'; +export declare function taskCallback(task: SimpleGitTask, response: Promise, callback?: SimpleGitTaskCallback): void; diff --git a/Client/node_modules/simple-git/src/lib/task-callback.js b/Client/node_modules/simple-git/src/lib/task-callback.js new file mode 100644 index 000000000..e98633dc0 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/task-callback.js @@ -0,0 +1,42 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.taskCallback = void 0; +const api_1 = require("./api"); +const utils_1 = require("./utils"); +function taskCallback(task, response, callback = utils_1.NOOP) { + const onSuccess = (data) => { + callback(null, data); + }; + const onError = (err) => { + if ((err === null || err === void 0 ? void 0 : err.task) === task) { + if (err instanceof api_1.GitResponseError) { + return callback(addDeprecationNoticeToError(err)); + } + callback(err); + } + }; + response.then(onSuccess, onError); +} +exports.taskCallback = taskCallback; +function addDeprecationNoticeToError(err) { + let log = (name) => { + console.warn(`simple-git deprecation notice: accessing GitResponseError.${name} should be GitResponseError.git.${name}, this will no longer be available in version 3`); + log = utils_1.NOOP; + }; + return Object.create(err, Object.getOwnPropertyNames(err.git).reduce(descriptorReducer, {})); + function descriptorReducer(all, name) { + if (name in err) { + return all; + } + all[name] = { + enumerable: false, + configurable: false, + get() { + log(name); + return err.git[name]; + }, + }; + return all; + } +} +//# sourceMappingURL=task-callback.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/task-callback.js.map b/Client/node_modules/simple-git/src/lib/task-callback.js.map new file mode 100644 index 000000000..44841b522 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/task-callback.js.map @@ -0,0 +1 @@ +{"version":3,"file":"task-callback.js","sourceRoot":"","sources":["task-callback.ts"],"names":[],"mappings":";;;AAAA,+BAAmD;AAEnD,mCAA+B;AAE/B,SAAgB,YAAY,CAAI,IAAsB,EAAE,QAAoB,EAAE,WAAqC,YAAI;IAEpH,MAAM,SAAS,GAAG,CAAC,IAAO,EAAE,EAAE;QAC3B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,GAAgC,EAAE,EAAE;QAClD,IAAI,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,MAAK,IAAI,EAAE;YACrB,IAAI,GAAG,YAAY,sBAAgB,EAAE;gBAClC,OAAO,QAAQ,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC;aACpD;YACD,QAAQ,CAAC,GAAG,CAAC,CAAC;SAChB;IACJ,CAAC,CAAC;IAEF,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAErC,CAAC;AAjBD,oCAiBC;AAED,SAAS,2BAA2B,CAAE,GAAqB;IACxD,IAAI,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE;QACxB,OAAO,CAAC,IAAI,CAAC,6DAA6D,IAAI,mCAAmC,IAAI,iDAAiD,CAAC,CAAC;QACxK,GAAG,GAAG,YAAI,CAAC;IACd,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;IAE7F,SAAS,iBAAiB,CAAC,GAA0B,EAAE,IAAY;QAChE,IAAI,IAAI,IAAI,GAAG,EAAE;YACd,OAAO,GAAG,CAAC;SACb;QAED,GAAG,CAAC,IAAI,CAAC,GAAG;YACT,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,KAAK;YACnB,GAAG;gBACA,GAAG,CAAC,IAAI,CAAC,CAAC;gBACV,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;SACH,CAAC;QAEF,OAAO,GAAG,CAAC;IACd,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/apply-patch.d.ts b/Client/node_modules/simple-git/src/lib/tasks/apply-patch.d.ts new file mode 100644 index 000000000..c1e155139 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/apply-patch.d.ts @@ -0,0 +1,3 @@ +import { OptionFlags, Options, StringTask } from '../types'; +export declare type ApplyOptions = Options & OptionFlags<'--stat' | '--numstat' | '--summary' | '--check' | '--index' | '--intent-to-add' | '--3way' | '--apply' | '--no-add' | '-R' | '--reverse' | '--allow-binary-replacement' | '--binary' | '--reject' | '-z' | '--inaccurate-eof' | '--recount' | '--cached' | '--ignore-space-change' | '--ignore-whitespace' | '--verbose' | '--unsafe-paths'> & OptionFlags<'--whitespace', 'nowarn' | 'warn' | 'fix' | 'error' | 'error-all'> & OptionFlags<'--build-fake-ancestor' | '--exclude' | '--include' | '--directory', string> & OptionFlags<'-p' | '-C', number>; +export declare function applyPatchTask(patches: string[], customArgs: string[]): StringTask; diff --git a/Client/node_modules/simple-git/src/lib/tasks/apply-patch.js b/Client/node_modules/simple-git/src/lib/tasks/apply-patch.js new file mode 100644 index 000000000..078b86d55 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/apply-patch.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.applyPatchTask = void 0; +const task_1 = require("./task"); +function applyPatchTask(patches, customArgs) { + return task_1.straightThroughStringTask(['apply', ...customArgs, ...patches]); +} +exports.applyPatchTask = applyPatchTask; +//# sourceMappingURL=apply-patch.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/apply-patch.js.map b/Client/node_modules/simple-git/src/lib/tasks/apply-patch.js.map new file mode 100644 index 000000000..04b89d4a0 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/apply-patch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"apply-patch.js","sourceRoot":"","sources":["apply-patch.ts"],"names":[],"mappings":";;;AAAA,iCAAmD;AAkCnD,SAAgB,cAAc,CAAC,OAAiB,EAAE,UAAoB;IACnE,OAAO,gCAAyB,CAAC,CAAC,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;AAC1E,CAAC;AAFD,wCAEC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/branch.d.ts b/Client/node_modules/simple-git/src/lib/tasks/branch.d.ts new file mode 100644 index 000000000..157b2aebd --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/branch.d.ts @@ -0,0 +1,7 @@ +import { BranchMultiDeleteResult, BranchSingleDeleteResult, BranchSummary } from '../../../typings'; +import { StringTask } from '../types'; +export declare function containsDeleteBranchCommand(commands: string[]): boolean; +export declare function branchTask(customArgs: string[]): StringTask; +export declare function branchLocalTask(): StringTask; +export declare function deleteBranchesTask(branches: string[], forceDelete?: boolean): StringTask; +export declare function deleteBranchTask(branch: string, forceDelete?: boolean): StringTask; diff --git a/Client/node_modules/simple-git/src/lib/tasks/branch.js b/Client/node_modules/simple-git/src/lib/tasks/branch.js new file mode 100644 index 000000000..a7e002620 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/branch.js @@ -0,0 +1,77 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.deleteBranchTask = exports.deleteBranchesTask = exports.branchLocalTask = exports.branchTask = exports.containsDeleteBranchCommand = void 0; +const git_response_error_1 = require("../errors/git-response-error"); +const parse_branch_delete_1 = require("../parsers/parse-branch-delete"); +const parse_branch_1 = require("../parsers/parse-branch"); +function containsDeleteBranchCommand(commands) { + const deleteCommands = ['-d', '-D', '--delete']; + return commands.some(command => deleteCommands.includes(command)); +} +exports.containsDeleteBranchCommand = containsDeleteBranchCommand; +function branchTask(customArgs) { + const isDelete = containsDeleteBranchCommand(customArgs); + const commands = ['branch', ...customArgs]; + if (commands.length === 1) { + commands.push('-a'); + } + if (!commands.includes('-v')) { + commands.splice(1, 0, '-v'); + } + return { + format: 'utf-8', + commands, + parser(stdOut, stdErr) { + if (isDelete) { + return parse_branch_delete_1.parseBranchDeletions(stdOut, stdErr).all[0]; + } + return parse_branch_1.parseBranchSummary(stdOut); + }, + }; +} +exports.branchTask = branchTask; +function branchLocalTask() { + const parser = parse_branch_1.parseBranchSummary; + return { + format: 'utf-8', + commands: ['branch', '-v'], + parser, + }; +} +exports.branchLocalTask = branchLocalTask; +function deleteBranchesTask(branches, forceDelete = false) { + return { + format: 'utf-8', + commands: ['branch', '-v', forceDelete ? '-D' : '-d', ...branches], + parser(stdOut, stdErr) { + return parse_branch_delete_1.parseBranchDeletions(stdOut, stdErr); + }, + onError(exitCode, error, done, fail) { + if (!parse_branch_delete_1.hasBranchDeletionError(error, exitCode)) { + return fail(error); + } + done(error); + }, + concatStdErr: true, + }; +} +exports.deleteBranchesTask = deleteBranchesTask; +function deleteBranchTask(branch, forceDelete = false) { + const task = { + format: 'utf-8', + commands: ['branch', '-v', forceDelete ? '-D' : '-d', branch], + parser(stdOut, stdErr) { + return parse_branch_delete_1.parseBranchDeletions(stdOut, stdErr).branches[branch]; + }, + onError(exitCode, error, _, fail) { + if (!parse_branch_delete_1.hasBranchDeletionError(error, exitCode)) { + return fail(error); + } + throw new git_response_error_1.GitResponseError(task.parser(error, ''), error); + }, + concatStdErr: true, + }; + return task; +} +exports.deleteBranchTask = deleteBranchTask; +//# sourceMappingURL=branch.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/branch.js.map b/Client/node_modules/simple-git/src/lib/tasks/branch.js.map new file mode 100644 index 000000000..3dbf7a8e0 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/branch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"branch.js","sourceRoot":"","sources":["branch.ts"],"names":[],"mappings":";;;AAEA,qEAAgE;AAChE,wEAA8F;AAC9F,0DAA6D;AAE7D,SAAgB,2BAA2B,CAAC,QAAkB;IAC3D,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAChD,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACrE,CAAC;AAHD,kEAGC;AAED,SAAgB,UAAU,CAAC,UAAoB;IAC5C,MAAM,QAAQ,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,GAAG,UAAU,CAAC,CAAC;IAE3C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACtB;IAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QAC3B,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;KAC9B;IAED,OAAO;QACJ,MAAM,EAAE,OAAO;QACf,QAAQ;QACR,MAAM,CAAC,MAAM,EAAE,MAAM;YAClB,IAAI,QAAQ,EAAE;gBACX,OAAO,0CAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACrD;YAED,OAAO,iCAAkB,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;KACH,CAAA;AACJ,CAAC;AAvBD,gCAuBC;AAED,SAAgB,eAAe;IAC5B,MAAM,MAAM,GAAG,iCAAkB,CAAC;IAElC,OAAO;QACJ,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;QAC1B,MAAM;KACR,CAAA;AACJ,CAAC;AARD,0CAQC;AAED,SAAgB,kBAAkB,CAAC,QAAkB,EAAE,WAAW,GAAG,KAAK;IACvE,OAAO;QACJ,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC;QAClE,MAAM,CAAC,MAAM,EAAE,MAAM;YAClB,OAAO,0CAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI;YAChC,IAAI,CAAC,4CAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;gBAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;aACrB;YAED,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,CAAC;QACD,YAAY,EAAE,IAAI;KACpB,CAAA;AACJ,CAAC;AAhBD,gDAgBC;AAED,SAAgB,gBAAgB,CAAC,MAAc,EAAE,WAAW,GAAG,KAAK;IACjE,MAAM,IAAI,GAAyC;QAChD,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC;QAC7D,MAAM,CAAC,MAAM,EAAE,MAAM;YAClB,OAAO,0CAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAE,CAAC;QACjE,CAAC;QACD,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI;YAC7B,IAAI,CAAC,4CAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;gBAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;aACrB;YAED,MAAM,IAAI,qCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7D,CAAC;QACD,YAAY,EAAE,IAAI;KACpB,CAAC;IAEF,OAAO,IAAI,CAAC;AACf,CAAC;AAlBD,4CAkBC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/check-is-repo.d.ts b/Client/node_modules/simple-git/src/lib/tasks/check-is-repo.d.ts new file mode 100644 index 000000000..580846fac --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/check-is-repo.d.ts @@ -0,0 +1,9 @@ +import { Maybe, StringTask } from '../types'; +export declare enum CheckRepoActions { + BARE = "bare", + IN_TREE = "tree", + IS_REPO_ROOT = "root" +} +export declare function checkIsRepoTask(action: Maybe): StringTask; +export declare function checkIsRepoRootTask(): StringTask; +export declare function checkIsBareRepoTask(): StringTask; diff --git a/Client/node_modules/simple-git/src/lib/tasks/check-is-repo.js b/Client/node_modules/simple-git/src/lib/tasks/check-is-repo.js new file mode 100644 index 000000000..b503a354d --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/check-is-repo.js @@ -0,0 +1,61 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.checkIsBareRepoTask = exports.checkIsRepoRootTask = exports.checkIsRepoTask = exports.CheckRepoActions = void 0; +const utils_1 = require("../utils"); +var CheckRepoActions; +(function (CheckRepoActions) { + CheckRepoActions["BARE"] = "bare"; + CheckRepoActions["IN_TREE"] = "tree"; + CheckRepoActions["IS_REPO_ROOT"] = "root"; +})(CheckRepoActions = exports.CheckRepoActions || (exports.CheckRepoActions = {})); +const onError = (exitCode, stdErr, done, fail) => { + if (exitCode === utils_1.ExitCodes.UNCLEAN && isNotRepoMessage(stdErr)) { + return done('false'); + } + fail(stdErr); +}; +const parser = (text) => { + return text.trim() === 'true'; +}; +function checkIsRepoTask(action) { + switch (action) { + case CheckRepoActions.BARE: + return checkIsBareRepoTask(); + case CheckRepoActions.IS_REPO_ROOT: + return checkIsRepoRootTask(); + } + const commands = ['rev-parse', '--is-inside-work-tree']; + return { + commands, + format: 'utf-8', + onError, + parser, + }; +} +exports.checkIsRepoTask = checkIsRepoTask; +function checkIsRepoRootTask() { + const commands = ['rev-parse', '--git-dir']; + return { + commands, + format: 'utf-8', + onError, + parser(path) { + return /^\.(git)?$/.test(path.trim()); + }, + }; +} +exports.checkIsRepoRootTask = checkIsRepoRootTask; +function checkIsBareRepoTask() { + const commands = ['rev-parse', '--is-bare-repository']; + return { + commands, + format: 'utf-8', + onError, + parser, + }; +} +exports.checkIsBareRepoTask = checkIsBareRepoTask; +function isNotRepoMessage(message) { + return /(Not a git repository|Kein Git-Repository)/i.test(message); +} +//# sourceMappingURL=check-is-repo.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/check-is-repo.js.map b/Client/node_modules/simple-git/src/lib/tasks/check-is-repo.js.map new file mode 100644 index 000000000..b6a4f4c53 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/check-is-repo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"check-is-repo.js","sourceRoot":"","sources":["check-is-repo.ts"],"names":[],"mappings":";;;AAAA,oCAAqC;AAGrC,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IACzB,iCAAa,CAAA;IACb,oCAAgB,CAAA;IAChB,yCAAqB,CAAA;AACxB,CAAC,EAJW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAI3B;AAED,MAAM,OAAO,GAAmC,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IAC9E,IAAI,QAAQ,KAAK,iBAAS,CAAC,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE;QAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;KACvB;IAED,IAAI,CAAC,MAAM,CAAC,CAAC;AAChB,CAAC,CAAA;AAED,MAAM,MAAM,GAAkC,CAAC,IAAI,EAAE,EAAE;IACpD,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC;AACjC,CAAC,CAAA;AAED,SAAgB,eAAe,CAAC,MAA+B;IAC5D,QAAQ,MAAM,EAAE;QACb,KAAK,gBAAgB,CAAC,IAAI;YACvB,OAAO,mBAAmB,EAAE,CAAC;QAChC,KAAK,gBAAgB,CAAC,YAAY;YAC/B,OAAO,mBAAmB,EAAE,CAAC;KAClC;IAED,MAAM,QAAQ,GAAG,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;IAExD,OAAO;QACJ,QAAQ;QACR,MAAM,EAAE,OAAO;QACf,OAAO;QACP,MAAM;KACR,CAAA;AACJ,CAAC;AAhBD,0CAgBC;AAGD,SAAgB,mBAAmB;IAChC,MAAM,QAAQ,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAE5C,OAAO;QACJ,QAAQ;QACR,MAAM,EAAE,OAAO;QACf,OAAO;QACP,MAAM,CAAC,IAAI;YACR,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;KACH,CAAA;AACJ,CAAC;AAXD,kDAWC;AAGD,SAAgB,mBAAmB;IAChC,MAAM,QAAQ,GAAG,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;IAEvD,OAAO;QACJ,QAAQ;QACR,MAAM,EAAE,OAAO;QACf,OAAO;QACP,MAAM;KACR,CAAA;AACJ,CAAC;AATD,kDASC;AAGD,SAAS,gBAAgB,CAAC,OAAe;IACtC,OAAO,6CAA6C,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtE,CAAC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/clean.d.ts b/Client/node_modules/simple-git/src/lib/tasks/clean.d.ts new file mode 100644 index 000000000..f87e593d7 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/clean.d.ts @@ -0,0 +1,25 @@ +import { CleanSummary } from '../../../typings'; +import { StringTask } from '../types'; +export declare const CONFIG_ERROR_INTERACTIVE_MODE = "Git clean interactive mode is not supported"; +export declare const CONFIG_ERROR_MODE_REQUIRED = "Git clean mode parameter (\"n\" or \"f\") is required"; +export declare const CONFIG_ERROR_UNKNOWN_OPTION = "Git clean unknown option found in: "; +/** + * All supported option switches available for use in a `git.clean` operation + */ +export declare enum CleanOptions { + DRY_RUN = "n", + FORCE = "f", + IGNORED_INCLUDED = "x", + IGNORED_ONLY = "X", + EXCLUDING = "e", + QUIET = "q", + RECURSIVE = "d" +} +/** + * The two modes `git.clean` can run in - one of these must be supplied in order + * for the command to not throw a `TaskConfigurationError` + */ +export declare type CleanMode = CleanOptions.FORCE | CleanOptions.DRY_RUN; +export declare function cleanWithOptionsTask(mode: CleanMode | string, customArgs: string[]): import("./task").EmptyTask | StringTask; +export declare function cleanTask(mode: CleanMode, customArgs: string[]): StringTask; +export declare function isCleanOptionsArray(input: string[]): input is CleanOptions[]; diff --git a/Client/node_modules/simple-git/src/lib/tasks/clean.js b/Client/node_modules/simple-git/src/lib/tasks/clean.js new file mode 100644 index 000000000..3826e1783 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/clean.js @@ -0,0 +1,85 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isCleanOptionsArray = exports.cleanTask = exports.cleanWithOptionsTask = exports.CleanOptions = exports.CONFIG_ERROR_UNKNOWN_OPTION = exports.CONFIG_ERROR_MODE_REQUIRED = exports.CONFIG_ERROR_INTERACTIVE_MODE = void 0; +const CleanSummary_1 = require("../responses/CleanSummary"); +const utils_1 = require("../utils"); +const task_1 = require("./task"); +exports.CONFIG_ERROR_INTERACTIVE_MODE = 'Git clean interactive mode is not supported'; +exports.CONFIG_ERROR_MODE_REQUIRED = 'Git clean mode parameter ("n" or "f") is required'; +exports.CONFIG_ERROR_UNKNOWN_OPTION = 'Git clean unknown option found in: '; +/** + * All supported option switches available for use in a `git.clean` operation + */ +var CleanOptions; +(function (CleanOptions) { + CleanOptions["DRY_RUN"] = "n"; + CleanOptions["FORCE"] = "f"; + CleanOptions["IGNORED_INCLUDED"] = "x"; + CleanOptions["IGNORED_ONLY"] = "X"; + CleanOptions["EXCLUDING"] = "e"; + CleanOptions["QUIET"] = "q"; + CleanOptions["RECURSIVE"] = "d"; +})(CleanOptions = exports.CleanOptions || (exports.CleanOptions = {})); +const CleanOptionValues = new Set(['i', ...utils_1.asStringArray(Object.values(CleanOptions))]); +function cleanWithOptionsTask(mode, customArgs) { + const { cleanMode, options, valid } = getCleanOptions(mode); + if (!cleanMode) { + return task_1.configurationErrorTask(exports.CONFIG_ERROR_MODE_REQUIRED); + } + if (!valid.options) { + return task_1.configurationErrorTask(exports.CONFIG_ERROR_UNKNOWN_OPTION + JSON.stringify(mode)); + } + options.push(...customArgs); + if (options.some(isInteractiveMode)) { + return task_1.configurationErrorTask(exports.CONFIG_ERROR_INTERACTIVE_MODE); + } + return cleanTask(cleanMode, options); +} +exports.cleanWithOptionsTask = cleanWithOptionsTask; +function cleanTask(mode, customArgs) { + const commands = ['clean', `-${mode}`, ...customArgs]; + return { + commands, + format: 'utf-8', + parser(text) { + return CleanSummary_1.cleanSummaryParser(mode === CleanOptions.DRY_RUN, text); + } + }; +} +exports.cleanTask = cleanTask; +function isCleanOptionsArray(input) { + return Array.isArray(input) && input.every(test => CleanOptionValues.has(test)); +} +exports.isCleanOptionsArray = isCleanOptionsArray; +function getCleanOptions(input) { + let cleanMode; + let options = []; + let valid = { cleanMode: false, options: true }; + input.replace(/[^a-z]i/g, '').split('').forEach(char => { + if (isCleanMode(char)) { + cleanMode = char; + valid.cleanMode = true; + } + else { + valid.options = valid.options && isKnownOption(options[options.length] = (`-${char}`)); + } + }); + return { + cleanMode, + options, + valid, + }; +} +function isCleanMode(cleanMode) { + return cleanMode === CleanOptions.FORCE || cleanMode === CleanOptions.DRY_RUN; +} +function isKnownOption(option) { + return /^-[a-z]$/i.test(option) && CleanOptionValues.has(option.charAt(1)); +} +function isInteractiveMode(option) { + if (/^-[^\-]/.test(option)) { + return option.indexOf('i') > 0; + } + return option === '--interactive'; +} +//# sourceMappingURL=clean.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/clean.js.map b/Client/node_modules/simple-git/src/lib/tasks/clean.js.map new file mode 100644 index 000000000..a8fc6fe81 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/clean.js.map @@ -0,0 +1 @@ +{"version":3,"file":"clean.js","sourceRoot":"","sources":["clean.ts"],"names":[],"mappings":";;;AACA,4DAA+D;AAE/D,oCAAyC;AACzC,iCAAgD;AAEnC,QAAA,6BAA6B,GAAG,6CAA6C,CAAC;AAC9E,QAAA,0BAA0B,GAAG,mDAAmD,CAAC;AACjF,QAAA,2BAA2B,GAAG,qCAAqC,CAAC;AAEjF;;GAEG;AACH,IAAY,YAQX;AARD,WAAY,YAAY;IACrB,6BAAa,CAAA;IACb,2BAAW,CAAA;IACX,sCAAsB,CAAA;IACtB,kCAAkB,CAAA;IAClB,+BAAe,CAAA;IACf,2BAAW,CAAA;IACX,+BAAe,CAAA;AAClB,CAAC,EARW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAQvB;AAQD,MAAM,iBAAiB,GAAgB,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,qBAAa,CAAC,MAAM,CAAC,MAAM,CAAC,YAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5G,SAAgB,oBAAoB,CAAC,IAAwB,EAAE,UAAoB;IAChF,MAAM,EAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAC,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAE1D,IAAI,CAAC,SAAS,EAAE;QACb,OAAO,6BAAsB,CAAC,kCAA0B,CAAC,CAAC;KAC5D;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;QACjB,OAAO,6BAAsB,CAAC,mCAA2B,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;KACpF;IAED,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IAE5B,IAAI,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;QAClC,OAAO,6BAAsB,CAAC,qCAA6B,CAAC,CAAC;KAC/D;IAED,OAAO,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC;AAlBD,oDAkBC;AAED,SAAgB,SAAS,CAAC,IAAe,EAAE,UAAoB;IAC5D,MAAM,QAAQ,GAAa,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC;IAEhE,OAAO;QACJ,QAAQ;QACR,MAAM,EAAE,OAAO;QACf,MAAM,CAAC,IAAY;YAChB,OAAO,iCAAkB,CAAC,IAAI,KAAK,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAClE,CAAC;KACH,CAAA;AACJ,CAAC;AAVD,8BAUC;AAED,SAAgB,mBAAmB,CAAE,KAAe;IACjD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACnF,CAAC;AAFD,kDAEC;AAED,SAAS,eAAe,CAAC,KAAa;IACnC,IAAI,SAA2B,CAAC;IAChC,IAAI,OAAO,GAAa,EAAE,CAAC;IAC3B,IAAI,KAAK,GAAG,EAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;IAE9C,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACpD,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;YACpB,SAAS,GAAG,IAAI,CAAC;YACjB,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;SACzB;aACI;YACF,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;SACzF;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACJ,SAAS;QACT,OAAO;QACP,KAAK;KACP,CAAA;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,SAAkB;IACpC,OAAO,SAAS,KAAK,YAAY,CAAC,KAAK,IAAI,SAAS,KAAK,YAAY,CAAC,OAAO,CAAC;AACjF,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IAClC,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc;IACtC,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACzB,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KACjC;IAED,OAAO,MAAM,KAAK,eAAe,CAAC;AACrC,CAAC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/clone.d.ts b/Client/node_modules/simple-git/src/lib/tasks/clone.d.ts new file mode 100644 index 000000000..2662ece15 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/clone.d.ts @@ -0,0 +1,4 @@ +import { OptionFlags, Options, StringTask } from '../types'; +export declare type CloneOptions = Options & OptionFlags<'--bare' | '--dissociate' | '--mirror' | '--no-checkout' | '--no-remote-submodules' | '--no-shallow-submodules' | '--no-single-branch' | '--no-tags' | '--remote-submodules' | '--single-branch' | '--shallow-submodules' | '--verbose'> & OptionFlags<'--depth' | '-j' | '--jobs', number> & OptionFlags<'--branch' | '--origin' | '--recurse-submodules' | '--separate-git-dir' | '--shallow-exclude' | '--shallow-since' | '--template', string>; +export declare function cloneTask(repo: string | undefined, directory: string | undefined, customArgs: string[]): StringTask; +export declare function cloneMirrorTask(repo: string | undefined, directory: string | undefined, customArgs: string[]): StringTask; diff --git a/Client/node_modules/simple-git/src/lib/tasks/clone.js b/Client/node_modules/simple-git/src/lib/tasks/clone.js new file mode 100644 index 000000000..afb3acdfb --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/clone.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.cloneMirrorTask = exports.cloneTask = void 0; +const task_1 = require("./task"); +const utils_1 = require("../utils"); +function cloneTask(repo, directory, customArgs) { + const commands = ['clone', ...customArgs]; + if (typeof repo === 'string') { + commands.push(repo); + } + if (typeof directory === 'string') { + commands.push(directory); + } + return task_1.straightThroughStringTask(commands); +} +exports.cloneTask = cloneTask; +function cloneMirrorTask(repo, directory, customArgs) { + utils_1.append(customArgs, '--mirror'); + return cloneTask(repo, directory, customArgs); +} +exports.cloneMirrorTask = cloneMirrorTask; +//# sourceMappingURL=clone.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/clone.js.map b/Client/node_modules/simple-git/src/lib/tasks/clone.js.map new file mode 100644 index 000000000..b6a1fef21 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/clone.js.map @@ -0,0 +1 @@ +{"version":3,"file":"clone.js","sourceRoot":"","sources":["clone.ts"],"names":[],"mappings":";;;AAAA,iCAAmD;AAEnD,oCAAkC;AAoBlC,SAAgB,SAAS,CAAC,IAAwB,EAAE,SAA6B,EAAE,UAAoB;IACpG,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;IAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC3B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACtB;IACD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;QAChC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC3B;IAED,OAAO,gCAAyB,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAVD,8BAUC;AAED,SAAgB,eAAe,CAAC,IAAwB,EAAE,SAA6B,EAAE,UAAoB;IAC1G,cAAM,CAAC,UAAU,EAAC,UAAU,CAAC,CAAC;IAE9B,OAAO,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACjD,CAAC;AAJD,0CAIC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/commit.d.ts b/Client/node_modules/simple-git/src/lib/tasks/commit.d.ts new file mode 100644 index 000000000..a84d2f5ad --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/commit.d.ts @@ -0,0 +1,3 @@ +import { CommitResult } from '../../../typings'; +import { StringTask } from '../types'; +export declare function commitTask(message: string[], files: string[], customArgs: string[]): StringTask; diff --git a/Client/node_modules/simple-git/src/lib/tasks/commit.js b/Client/node_modules/simple-git/src/lib/tasks/commit.js new file mode 100644 index 000000000..4451b4081 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/commit.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.commitTask = void 0; +const parse_commit_1 = require("../parsers/parse-commit"); +function commitTask(message, files, customArgs) { + const commands = ['commit']; + message.forEach((m) => commands.push('-m', m)); + commands.push(...files, ...customArgs); + return { + commands, + format: 'utf-8', + parser: parse_commit_1.parseCommitResult, + }; +} +exports.commitTask = commitTask; +//# sourceMappingURL=commit.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/commit.js.map b/Client/node_modules/simple-git/src/lib/tasks/commit.js.map new file mode 100644 index 000000000..13fcae6b5 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/commit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"commit.js","sourceRoot":"","sources":["commit.ts"],"names":[],"mappings":";;;AACA,0DAA4D;AAG5D,SAAgB,UAAU,CAAC,OAAiB,EAAE,KAAe,EAAE,UAAoB;IAChF,MAAM,QAAQ,GAAa,CAAC,QAAQ,CAAC,CAAC;IAEtC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAE/C,QAAQ,CAAC,IAAI,CACV,GAAG,KAAK,EACR,GAAG,UAAU,CACf,CAAC;IAEF,OAAO;QACJ,QAAQ;QACR,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,gCAAiB;KAC3B,CAAA;AACJ,CAAC;AAfD,gCAeC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/config.d.ts b/Client/node_modules/simple-git/src/lib/tasks/config.d.ts new file mode 100644 index 000000000..15c2a0c24 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/config.d.ts @@ -0,0 +1,4 @@ +import { ConfigListSummary } from '../../../typings'; +import { StringTask } from '../types'; +export declare function addConfigTask(key: string, value: string, append?: boolean): StringTask; +export declare function listConfigTask(): StringTask; diff --git a/Client/node_modules/simple-git/src/lib/tasks/config.js b/Client/node_modules/simple-git/src/lib/tasks/config.js new file mode 100644 index 000000000..7ca03bf1b --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/config.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.listConfigTask = exports.addConfigTask = void 0; +const ConfigList_1 = require("../responses/ConfigList"); +function addConfigTask(key, value, append = false) { + const commands = ['config', '--local']; + if (append) { + commands.push('--add'); + } + commands.push(key, value); + return { + commands, + format: 'utf-8', + parser(text) { + return text; + } + }; +} +exports.addConfigTask = addConfigTask; +function listConfigTask() { + return { + commands: ['config', '--list', '--show-origin', '--null'], + format: 'utf-8', + parser(text) { + return ConfigList_1.configListParser(text); + }, + }; +} +exports.listConfigTask = listConfigTask; +//# sourceMappingURL=config.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/config.js.map b/Client/node_modules/simple-git/src/lib/tasks/config.js.map new file mode 100644 index 000000000..41ad8e044 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/config.js.map @@ -0,0 +1 @@ +{"version":3,"file":"config.js","sourceRoot":"","sources":["config.ts"],"names":[],"mappings":";;;AAEA,wDAA2D;AAE3D,SAAgB,aAAa,CAAC,GAAW,EAAE,KAAa,EAAE,MAAM,GAAG,KAAK;IACrE,MAAM,QAAQ,GAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEjD,IAAI,MAAM,EAAE;QACT,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACzB;IAED,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAE1B,OAAO;QACJ,QAAQ;QACR,MAAM,EAAE,OAAO;QACf,MAAM,CAAC,IAAY;YAChB,OAAO,IAAI,CAAC;QACf,CAAC;KACH,CAAA;AACJ,CAAC;AAhBD,sCAgBC;AAED,SAAgB,cAAc;IAC3B,OAAO;QACJ,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,CAAC;QACzD,MAAM,EAAE,OAAO;QACf,MAAM,CAAC,IAAY;YAChB,OAAO,6BAAgB,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;KACH,CAAA;AACJ,CAAC;AARD,wCAQC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/diff.d.ts b/Client/node_modules/simple-git/src/lib/tasks/diff.d.ts new file mode 100644 index 000000000..c1e37aae8 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/diff.d.ts @@ -0,0 +1,3 @@ +import { StringTask } from '../types'; +import { DiffResult } from '../../../typings'; +export declare function diffSummaryTask(customArgs: string[]): StringTask; diff --git a/Client/node_modules/simple-git/src/lib/tasks/diff.js b/Client/node_modules/simple-git/src/lib/tasks/diff.js new file mode 100644 index 000000000..cda5ce2c6 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/diff.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.diffSummaryTask = void 0; +const parse_diff_summary_1 = require("../parsers/parse-diff-summary"); +function diffSummaryTask(customArgs) { + return { + commands: ['diff', '--stat=4096', ...customArgs], + format: 'utf-8', + parser(stdOut) { + return parse_diff_summary_1.parseDiffResult(stdOut); + } + }; +} +exports.diffSummaryTask = diffSummaryTask; +//# sourceMappingURL=diff.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/diff.js.map b/Client/node_modules/simple-git/src/lib/tasks/diff.js.map new file mode 100644 index 000000000..f18167c80 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/diff.js.map @@ -0,0 +1 @@ +{"version":3,"file":"diff.js","sourceRoot":"","sources":["diff.ts"],"names":[],"mappings":";;;AAEA,sEAAgE;AAEhE,SAAgB,eAAe,CAAC,UAAoB;IACjD,OAAO;QACJ,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC;QAChD,MAAM,EAAE,OAAO;QACf,MAAM,CAAE,MAAM;YACX,OAAO,oCAAe,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;KACH,CAAA;AACJ,CAAC;AARD,0CAQC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/fetch.d.ts b/Client/node_modules/simple-git/src/lib/tasks/fetch.d.ts new file mode 100644 index 000000000..db4626ddd --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/fetch.d.ts @@ -0,0 +1,3 @@ +import { FetchResult } from '../../../typings'; +import { StringTask } from '../types'; +export declare function fetchTask(remote: string, branch: string, customArgs: string[]): StringTask; diff --git a/Client/node_modules/simple-git/src/lib/tasks/fetch.js b/Client/node_modules/simple-git/src/lib/tasks/fetch.js new file mode 100644 index 000000000..c4b2753ef --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/fetch.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.fetchTask = void 0; +const parse_fetch_1 = require("../parsers/parse-fetch"); +function fetchTask(remote, branch, customArgs) { + const commands = ['fetch', ...customArgs]; + if (remote && branch) { + commands.push(remote, branch); + } + return { + commands, + format: 'utf-8', + parser: parse_fetch_1.parseFetchResult, + }; +} +exports.fetchTask = fetchTask; +//# sourceMappingURL=fetch.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/fetch.js.map b/Client/node_modules/simple-git/src/lib/tasks/fetch.js.map new file mode 100644 index 000000000..af3c294bc --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/fetch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fetch.js","sourceRoot":"","sources":["fetch.ts"],"names":[],"mappings":";;;AACA,wDAA0D;AAG1D,SAAgB,SAAS,CAAC,MAAc,EAAE,MAAc,EAAE,UAAoB;IAC3E,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;IAC1C,IAAI,MAAM,IAAI,MAAM,EAAE;QACnB,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAChC;IAED,OAAO;QACJ,QAAQ;QACR,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,8BAAgB;KAC1B,CAAA;AACJ,CAAC;AAXD,8BAWC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/hash-object.d.ts b/Client/node_modules/simple-git/src/lib/tasks/hash-object.d.ts new file mode 100644 index 000000000..cedf3e09b --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/hash-object.d.ts @@ -0,0 +1,5 @@ +import { StringTask } from '../types'; +/** + * Task used by `git.hashObject` + */ +export declare function hashObjectTask(filePath: string, write: boolean): StringTask; diff --git a/Client/node_modules/simple-git/src/lib/tasks/hash-object.js b/Client/node_modules/simple-git/src/lib/tasks/hash-object.js new file mode 100644 index 000000000..ba8895fa0 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/hash-object.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.hashObjectTask = void 0; +const task_1 = require("./task"); +/** + * Task used by `git.hashObject` + */ +function hashObjectTask(filePath, write) { + const commands = ['hash-object', filePath]; + if (write) { + commands.push('-w'); + } + return task_1.straightThroughStringTask(commands, true); +} +exports.hashObjectTask = hashObjectTask; +//# sourceMappingURL=hash-object.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/hash-object.js.map b/Client/node_modules/simple-git/src/lib/tasks/hash-object.js.map new file mode 100644 index 000000000..14ac34d7b --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/hash-object.js.map @@ -0,0 +1 @@ +{"version":3,"file":"hash-object.js","sourceRoot":"","sources":["hash-object.ts"],"names":[],"mappings":";;;AAAA,iCAAmD;AAGnD;;GAEG;AACH,SAAgB,cAAc,CAAC,QAAgB,EAAE,KAAc;IAC5D,MAAM,QAAQ,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC3C,IAAI,KAAK,EAAE;QACR,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACtB;IAED,OAAO,gCAAyB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACpD,CAAC;AAPD,wCAOC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/init.d.ts b/Client/node_modules/simple-git/src/lib/tasks/init.d.ts new file mode 100644 index 000000000..ca7f12655 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/init.d.ts @@ -0,0 +1,3 @@ +import { InitResult } from '../../../typings'; +import { StringTask } from '../types'; +export declare function initTask(bare: boolean | undefined, path: string, customArgs: string[]): StringTask; diff --git a/Client/node_modules/simple-git/src/lib/tasks/init.js b/Client/node_modules/simple-git/src/lib/tasks/init.js new file mode 100644 index 000000000..8e6c8306d --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/init.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.initTask = void 0; +const InitSummary_1 = require("../responses/InitSummary"); +const bareCommand = '--bare'; +function hasBareCommand(command) { + return command.includes(bareCommand); +} +function initTask(bare = false, path, customArgs) { + const commands = ['init', ...customArgs]; + if (bare && !hasBareCommand(commands)) { + commands.splice(1, 0, bareCommand); + } + return { + commands, + concatStdErr: false, + format: 'utf-8', + parser(text) { + return InitSummary_1.parseInit(commands.includes('--bare'), path, text); + } + }; +} +exports.initTask = initTask; +//# sourceMappingURL=init.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/init.js.map b/Client/node_modules/simple-git/src/lib/tasks/init.js.map new file mode 100644 index 000000000..93f97c6ab --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/init.js.map @@ -0,0 +1 @@ +{"version":3,"file":"init.js","sourceRoot":"","sources":["init.ts"],"names":[],"mappings":";;;AACA,0DAAqD;AAGrD,MAAM,WAAW,GAAG,QAAQ,CAAC;AAE7B,SAAS,cAAc,CAAC,OAAiB;IACtC,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,QAAQ,CAAC,IAAI,GAAG,KAAK,EAAE,IAAY,EAAE,UAAoB;IACtE,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC;IACzC,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;QACpC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;KACrC;IAED,OAAO;QACJ,QAAQ;QACR,YAAY,EAAE,KAAK;QACnB,MAAM,EAAE,OAAO;QACf,MAAM,CAAC,IAAY;YAChB,OAAO,uBAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7D,CAAC;KACH,CAAA;AACJ,CAAC;AAdD,4BAcC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/log.d.ts b/Client/node_modules/simple-git/src/lib/tasks/log.d.ts new file mode 100644 index 000000000..826c3001a --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/log.d.ts @@ -0,0 +1,28 @@ +import { Options, StringTask } from '../types'; +import { LogResult } from '../../../typings'; +export interface DefaultLogFields { + hash: string; + date: string; + message: string; + refs: string; + body: string; + author_name: string; + author_email: string; +} +export declare type LogOptions = { + file?: string; + format?: T; + from?: string; + maxCount?: number; + multiLine?: boolean; + splitter?: string; + strictDate?: boolean; + symmetric?: boolean; + to?: string; +}; +export declare function parseLogOptions(opt?: LogOptions, customArgs?: string[]): { + fields: string[]; + splitter: string; + commands: string[]; +}; +export declare function logTask(splitter: string, fields: string[], customArgs: string[]): StringTask>; diff --git a/Client/node_modules/simple-git/src/lib/tasks/log.js b/Client/node_modules/simple-git/src/lib/tasks/log.js new file mode 100644 index 000000000..16defcf36 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/log.js @@ -0,0 +1,88 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.logTask = exports.parseLogOptions = void 0; +const parse_list_log_summary_1 = require("../parsers/parse-list-log-summary"); +const utils_1 = require("../utils"); +var excludeOptions; +(function (excludeOptions) { + excludeOptions[excludeOptions["--pretty"] = 0] = "--pretty"; + excludeOptions[excludeOptions["max-count"] = 1] = "max-count"; + excludeOptions[excludeOptions["maxCount"] = 2] = "maxCount"; + excludeOptions[excludeOptions["n"] = 3] = "n"; + excludeOptions[excludeOptions["file"] = 4] = "file"; + excludeOptions[excludeOptions["format"] = 5] = "format"; + excludeOptions[excludeOptions["from"] = 6] = "from"; + excludeOptions[excludeOptions["to"] = 7] = "to"; + excludeOptions[excludeOptions["splitter"] = 8] = "splitter"; + excludeOptions[excludeOptions["symmetric"] = 9] = "symmetric"; + excludeOptions[excludeOptions["multiLine"] = 10] = "multiLine"; + excludeOptions[excludeOptions["strictDate"] = 11] = "strictDate"; +})(excludeOptions || (excludeOptions = {})); +function prettyFormat(format, splitter) { + const fields = []; + const formatStr = []; + Object.keys(format).forEach((field) => { + fields.push(field); + formatStr.push(String(format[field])); + }); + return [ + fields, formatStr.join(splitter) + ]; +} +function userOptions(input) { + const output = Object.assign({}, input); + Object.keys(input).forEach(key => { + if (key in excludeOptions) { + delete output[key]; + } + }); + return output; +} +function parseLogOptions(opt = {}, customArgs = []) { + const splitter = opt.splitter || parse_list_log_summary_1.SPLITTER; + const format = opt.format || { + hash: '%H', + date: opt.strictDate === false ? '%ai' : '%aI', + message: '%s', + refs: '%D', + body: opt.multiLine ? '%B' : '%b', + author_name: '%aN', + author_email: '%ae' + }; + const [fields, formatStr] = prettyFormat(format, splitter); + const suffix = []; + const command = [ + `--pretty=format:${parse_list_log_summary_1.START_BOUNDARY}${formatStr}${parse_list_log_summary_1.COMMIT_BOUNDARY}`, + ...customArgs, + ]; + const maxCount = opt.n || opt['max-count'] || opt.maxCount; + if (maxCount) { + command.push(`--max-count=${maxCount}`); + } + if (opt.from && opt.to) { + const rangeOperator = (opt.symmetric !== false) ? '...' : '..'; + suffix.push(`${opt.from}${rangeOperator}${opt.to}`); + } + if (opt.file) { + suffix.push('--follow', opt.file); + } + utils_1.appendTaskOptions(userOptions(opt), command); + return { + fields, + splitter, + commands: [ + ...command, + ...suffix, + ], + }; +} +exports.parseLogOptions = parseLogOptions; +function logTask(splitter, fields, customArgs) { + return { + commands: ['log', ...customArgs], + format: 'utf-8', + parser: parse_list_log_summary_1.createListLogSummaryParser(splitter, fields), + }; +} +exports.logTask = logTask; +//# sourceMappingURL=log.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/log.js.map b/Client/node_modules/simple-git/src/lib/tasks/log.js.map new file mode 100644 index 000000000..a3ae0e171 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/log.js.map @@ -0,0 +1 @@ +{"version":3,"file":"log.js","sourceRoot":"","sources":["log.ts"],"names":[],"mappings":";;;AAEA,8EAK2C;AAC3C,oCAA6C;AAE7C,IAAK,cAaJ;AAbD,WAAK,cAAc;IAChB,2DAAU,CAAA;IACV,6DAAW,CAAA;IACX,2DAAU,CAAA;IACV,6CAAG,CAAA;IACH,mDAAM,CAAA;IACN,uDAAQ,CAAA;IACR,mDAAM,CAAA;IACN,+CAAI,CAAA;IACJ,2DAAU,CAAA;IACV,6DAAW,CAAA;IACX,8DAAW,CAAA;IACX,gEAAY,CAAA;AACf,CAAC,EAbI,cAAc,KAAd,cAAc,QAalB;AAwBD,SAAS,YAAY,CAAC,MAAyC,EAAE,QAAgB;IAC9E,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACnC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,OAAO;QACJ,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;KAClC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAI,KAAQ;IAC7B,MAAM,MAAM,qBAAO,KAAK,CAAC,CAAC;IAC1B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAC9B,IAAI,GAAG,IAAI,cAAc,EAAE;YACxB,OAAO,MAAM,CAAC,GAAc,CAAC,CAAC;SAChC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AACjB,CAAC;AAED,SAAgB,eAAe,CAAoB,MAAqB,EAAE,EAAE,aAAuB,EAAE;IAClG,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,iCAAQ,CAAC;IAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI;QAC1B,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,GAAG,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;QAC9C,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QACjC,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,KAAK;KACrB,CAAC;IAEF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAa;QACvB,mBAAmB,uCAAc,GAAG,SAAS,GAAG,wCAAe,EAAE;QACjE,GAAG,UAAU;KACf,CAAC;IAEF,MAAM,QAAQ,GAAwB,GAAW,CAAC,CAAC,IAAK,GAAW,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC;IACjG,IAAI,QAAQ,EAAE;QACX,OAAO,CAAC,IAAI,CAAC,eAAgB,QAAS,EAAE,CAAC,CAAC;KAC5C;IAED,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE;QACrB,MAAM,aAAa,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,aAAa,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;KACtD;IAED,IAAI,GAAG,CAAC,IAAI,EAAE;QACX,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;KACpC;IAED,yBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAE7C,OAAO;QACJ,MAAM;QACN,QAAQ;QACR,QAAQ,EAAE;YACP,GAAG,OAAO;YACV,GAAG,MAAM;SACX;KACH,CAAC;AACL,CAAC;AA5CD,0CA4CC;AAED,SAAgB,OAAO,CAAI,QAAgB,EAAE,MAAgB,EAAE,UAAoB;IAChF,OAAO;QACJ,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC;QAChC,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,mDAA0B,CAAC,QAAQ,EAAE,MAAM,CAAC;KACtD,CAAC;AACL,CAAC;AAND,0BAMC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/merge.d.ts b/Client/node_modules/simple-git/src/lib/tasks/merge.d.ts new file mode 100644 index 000000000..663e80be5 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/merge.d.ts @@ -0,0 +1,4 @@ +import { MergeResult } from '../../../typings'; +import { StringTask } from '../types'; +import { EmptyTask } from './task'; +export declare function mergeTask(customArgs: string[]): EmptyTask | StringTask; diff --git a/Client/node_modules/simple-git/src/lib/tasks/merge.js b/Client/node_modules/simple-git/src/lib/tasks/merge.js new file mode 100644 index 000000000..8194a0363 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/merge.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.mergeTask = void 0; +const api_1 = require("../api"); +const parse_merge_1 = require("../parsers/parse-merge"); +const task_1 = require("./task"); +function mergeTask(customArgs) { + if (!customArgs.length) { + return task_1.configurationErrorTask('Git.merge requires at least one option'); + } + return { + commands: ['merge', ...customArgs], + format: 'utf-8', + parser(stdOut, stdErr) { + const merge = parse_merge_1.parseMergeResult(stdOut, stdErr); + if (merge.failed) { + throw new api_1.GitResponseError(merge); + } + return merge; + } + }; +} +exports.mergeTask = mergeTask; +//# sourceMappingURL=merge.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/merge.js.map b/Client/node_modules/simple-git/src/lib/tasks/merge.js.map new file mode 100644 index 000000000..213252781 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/merge.js.map @@ -0,0 +1 @@ +{"version":3,"file":"merge.js","sourceRoot":"","sources":["merge.ts"],"names":[],"mappings":";;;AACA,gCAA0C;AAC1C,wDAA0D;AAE1D,iCAA2D;AAE3D,SAAgB,SAAS,CAAC,UAAoB;IAC3C,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QACrB,OAAO,6BAAsB,CAAC,wCAAwC,CAAC,CAAC;KAC1E;IAED,OAAO;QACJ,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC;QAClC,MAAM,EAAE,OAAO;QACf,MAAM,CAAC,MAAM,EAAE,MAAM;YAClB,MAAM,KAAK,GAAG,8BAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC/C,IAAI,KAAK,CAAC,MAAM,EAAE;gBACf,MAAM,IAAI,sBAAgB,CAAC,KAAK,CAAC,CAAC;aACpC;YAED,OAAO,KAAK,CAAC;QAChB,CAAC;KACH,CAAA;AACJ,CAAC;AAjBD,8BAiBC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/move.d.ts b/Client/node_modules/simple-git/src/lib/tasks/move.d.ts new file mode 100644 index 000000000..75ae9af88 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/move.d.ts @@ -0,0 +1,3 @@ +import { MoveResult } from '../../../typings'; +import { StringTask } from '../types'; +export declare function moveTask(from: string | string[], to: string): StringTask; diff --git a/Client/node_modules/simple-git/src/lib/tasks/move.js b/Client/node_modules/simple-git/src/lib/tasks/move.js new file mode 100644 index 000000000..8f7406cfa --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/move.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.moveTask = void 0; +const parse_move_1 = require("../parsers/parse-move"); +const utils_1 = require("../utils"); +function moveTask(from, to) { + return { + commands: ['mv', '-v', ...utils_1.asArray(from), to], + format: 'utf-8', + parser: parse_move_1.parseMoveResult, + }; +} +exports.moveTask = moveTask; +//# sourceMappingURL=move.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/move.js.map b/Client/node_modules/simple-git/src/lib/tasks/move.js.map new file mode 100644 index 000000000..498dd964d --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/move.js.map @@ -0,0 +1 @@ +{"version":3,"file":"move.js","sourceRoot":"","sources":["move.ts"],"names":[],"mappings":";;;AACA,sDAAwD;AAExD,oCAAmC;AAEnC,SAAgB,QAAQ,CAAC,IAAuB,EAAE,EAAU;IACzD,OAAO;QACJ,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,eAAO,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,4BAAe;KACzB,CAAC;AACL,CAAC;AAND,4BAMC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/pull.d.ts b/Client/node_modules/simple-git/src/lib/tasks/pull.d.ts new file mode 100644 index 000000000..c08062fe6 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/pull.d.ts @@ -0,0 +1,3 @@ +import { PullResult } from '../../../typings'; +import { Maybe, StringTask } from '../types'; +export declare function pullTask(remote: Maybe, branch: Maybe, customArgs: string[]): StringTask; diff --git a/Client/node_modules/simple-git/src/lib/tasks/pull.js b/Client/node_modules/simple-git/src/lib/tasks/pull.js new file mode 100644 index 000000000..e34b6f782 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/pull.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.pullTask = void 0; +const parse_pull_1 = require("../parsers/parse-pull"); +function pullTask(remote, branch, customArgs) { + const commands = ['pull', ...customArgs]; + if (remote && branch) { + commands.splice(1, 0, remote, branch); + } + return { + commands, + format: 'utf-8', + parser(stdOut, stdErr) { + return parse_pull_1.parsePullResult(stdOut, stdErr); + } + }; +} +exports.pullTask = pullTask; +//# sourceMappingURL=pull.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/pull.js.map b/Client/node_modules/simple-git/src/lib/tasks/pull.js.map new file mode 100644 index 000000000..f2d792d89 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/pull.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pull.js","sourceRoot":"","sources":["pull.ts"],"names":[],"mappings":";;;AACA,sDAAwD;AAGxD,SAAgB,QAAQ,CAAC,MAAqB,EAAE,MAAqB,EAAE,UAAoB;IACxF,MAAM,QAAQ,GAAa,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC;IACnD,IAAI,MAAM,IAAI,MAAM,EAAE;QACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;KACxC;IAED,OAAO;QACJ,QAAQ;QACR,MAAM,EAAE,OAAO;QACf,MAAM,CAAC,MAAM,EAAE,MAAM;YAClB,OAAO,4BAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;KACH,CAAA;AACJ,CAAC;AAbD,4BAaC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/push.d.ts b/Client/node_modules/simple-git/src/lib/tasks/push.d.ts new file mode 100644 index 000000000..4d18c7104 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/push.d.ts @@ -0,0 +1,9 @@ +import { PushResult } from '../../../typings'; +import { StringTask } from '../types'; +declare type PushRef = { + remote?: string; + branch?: string; +}; +export declare function pushTagsTask(ref: PushRef | undefined, customArgs: string[]): StringTask; +export declare function pushTask(ref: PushRef | undefined, customArgs: string[]): StringTask; +export {}; diff --git a/Client/node_modules/simple-git/src/lib/tasks/push.js b/Client/node_modules/simple-git/src/lib/tasks/push.js new file mode 100644 index 000000000..9f3e107db --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/push.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.pushTask = exports.pushTagsTask = void 0; +const parse_push_1 = require("../parsers/parse-push"); +const utils_1 = require("../utils"); +function pushTagsTask(ref = {}, customArgs) { + utils_1.append(customArgs, '--tags'); + return pushTask(ref, customArgs); +} +exports.pushTagsTask = pushTagsTask; +function pushTask(ref = {}, customArgs) { + const commands = ['push', ...customArgs]; + if (ref.branch) { + commands.splice(1, 0, ref.branch); + } + if (ref.remote) { + commands.splice(1, 0, ref.remote); + } + utils_1.remove(commands, '-v'); + utils_1.append(commands, '--verbose'); + utils_1.append(commands, '--porcelain'); + return { + commands, + format: 'utf-8', + parser: parse_push_1.parsePushResult, + }; +} +exports.pushTask = pushTask; +//# sourceMappingURL=push.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/push.js.map b/Client/node_modules/simple-git/src/lib/tasks/push.js.map new file mode 100644 index 000000000..a10db707c --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/push.js.map @@ -0,0 +1 @@ +{"version":3,"file":"push.js","sourceRoot":"","sources":["push.ts"],"names":[],"mappings":";;;AACA,sDAAkE;AAElE,oCAA0C;AAI1C,SAAgB,YAAY,CAAC,MAAe,EAAE,EAAE,UAAoB;IACjE,cAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC7B,OAAO,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AACpC,CAAC;AAHD,oCAGC;AAED,SAAgB,QAAQ,CAAC,MAAe,EAAE,EAAE,UAAoB;IAC7D,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC;IACzC,IAAI,GAAG,CAAC,MAAM,EAAE;QACb,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;KACpC;IACD,IAAI,GAAG,CAAC,MAAM,EAAE;QACb,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;KACpC;IAED,cAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACvB,cAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC9B,cAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAEhC,OAAO;QACJ,QAAQ;QACR,MAAM,EAAE,OAAO;QACf,MAAM,EAAN,4BAAM;KACR,CAAC;AACL,CAAC;AAlBD,4BAkBC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/remote.d.ts b/Client/node_modules/simple-git/src/lib/tasks/remote.d.ts new file mode 100644 index 000000000..fbaae7a56 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/remote.d.ts @@ -0,0 +1,6 @@ +import { StringTask } from '../types'; +export declare function addRemoteTask(remoteName: string, remoteRepo: string, customArgs?: string[]): StringTask; +export declare function getRemotesTask(verbose: boolean): StringTask; +export declare function listRemotesTask(customArgs?: string[]): StringTask; +export declare function remoteTask(customArgs?: string[]): StringTask; +export declare function removeRemoteTask(remoteName: string): StringTask; diff --git a/Client/node_modules/simple-git/src/lib/tasks/remote.js b/Client/node_modules/simple-git/src/lib/tasks/remote.js new file mode 100644 index 000000000..1d8b39f51 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/remote.js @@ -0,0 +1,42 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.removeRemoteTask = exports.remoteTask = exports.listRemotesTask = exports.getRemotesTask = exports.addRemoteTask = void 0; +const GetRemoteSummary_1 = require("../responses/GetRemoteSummary"); +const task_1 = require("./task"); +function addRemoteTask(remoteName, remoteRepo, customArgs = []) { + return task_1.straightThroughStringTask(['remote', 'add', ...customArgs, remoteName, remoteRepo]); +} +exports.addRemoteTask = addRemoteTask; +function getRemotesTask(verbose) { + const commands = ['remote']; + if (verbose) { + commands.push('-v'); + } + return { + commands, + format: 'utf-8', + parser: verbose ? GetRemoteSummary_1.parseGetRemotesVerbose : GetRemoteSummary_1.parseGetRemotes, + }; +} +exports.getRemotesTask = getRemotesTask; +function listRemotesTask(customArgs = []) { + const commands = [...customArgs]; + if (commands[0] !== 'ls-remote') { + commands.unshift('ls-remote'); + } + return task_1.straightThroughStringTask(commands); +} +exports.listRemotesTask = listRemotesTask; +function remoteTask(customArgs = []) { + const commands = [...customArgs]; + if (commands[0] !== 'remote') { + commands.unshift('remote'); + } + return task_1.straightThroughStringTask(commands); +} +exports.remoteTask = remoteTask; +function removeRemoteTask(remoteName) { + return task_1.straightThroughStringTask(['remote', 'remove', remoteName]); +} +exports.removeRemoteTask = removeRemoteTask; +//# sourceMappingURL=remote.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/remote.js.map b/Client/node_modules/simple-git/src/lib/tasks/remote.js.map new file mode 100644 index 000000000..0e4698dc9 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/remote.js.map @@ -0,0 +1 @@ +{"version":3,"file":"remote.js","sourceRoot":"","sources":["remote.ts"],"names":[],"mappings":";;;AAAA,oEAAwF;AAExF,iCAAmD;AAEnD,SAAgB,aAAa,CAAC,UAAkB,EAAE,UAAkB,EAAE,aAAuB,EAAE;IAC5F,OAAO,gCAAyB,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;AAC9F,CAAC;AAFD,sCAEC;AAED,SAAgB,cAAc,CAAC,OAAgB;IAC5C,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5B,IAAI,OAAO,EAAE;QACV,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACtB;IAED,OAAO;QACJ,QAAQ;QACR,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,yCAAsB,CAAC,CAAC,CAAC,kCAAe;KAC5D,CAAC;AACL,CAAC;AAXD,wCAWC;AAED,SAAgB,eAAe,CAAC,aAAuB,EAAE;IACtD,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;IACjC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;QAC9B,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;KAChC;IAED,OAAO,gCAAyB,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAPD,0CAOC;AAED,SAAgB,UAAU,CAAC,aAAuB,EAAE;IACjD,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;IACjC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;QAC3B,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;KAC7B;IAED,OAAO,gCAAyB,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAPD,gCAOC;AAED,SAAgB,gBAAgB,CAAC,UAAkB;IAChD,OAAO,gCAAyB,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACtE,CAAC;AAFD,4CAEC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/reset.d.ts b/Client/node_modules/simple-git/src/lib/tasks/reset.d.ts new file mode 100644 index 000000000..468fe8767 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/reset.d.ts @@ -0,0 +1,11 @@ +import { Maybe, OptionFlags, Options } from '../types'; +export declare enum ResetMode { + MIXED = "mixed", + SOFT = "soft", + HARD = "hard", + MERGE = "merge", + KEEP = "keep" +} +export declare type ResetOptions = Options & OptionFlags<'-q' | '--quiet' | '--no-quiet' | '--pathspec-from-nul'> & OptionFlags<'--pathspec-from-file', string>; +export declare function resetTask(mode: Maybe, customArgs: string[]): import("../types").StringTask; +export declare function getResetMode(mode: ResetMode | any): Maybe; diff --git a/Client/node_modules/simple-git/src/lib/tasks/reset.js b/Client/node_modules/simple-git/src/lib/tasks/reset.js new file mode 100644 index 000000000..7f345bc3a --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/reset.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getResetMode = exports.resetTask = exports.ResetMode = void 0; +const task_1 = require("./task"); +var ResetMode; +(function (ResetMode) { + ResetMode["MIXED"] = "mixed"; + ResetMode["SOFT"] = "soft"; + ResetMode["HARD"] = "hard"; + ResetMode["MERGE"] = "merge"; + ResetMode["KEEP"] = "keep"; +})(ResetMode = exports.ResetMode || (exports.ResetMode = {})); +const ResetModes = Array.from(Object.values(ResetMode)); +function resetTask(mode, customArgs) { + const commands = ['reset']; + if (isValidResetMode(mode)) { + commands.push(`--${mode}`); + } + commands.push(...customArgs); + return task_1.straightThroughStringTask(commands); +} +exports.resetTask = resetTask; +function getResetMode(mode) { + if (isValidResetMode(mode)) { + return mode; + } + switch (typeof mode) { + case 'string': + case 'undefined': + return ResetMode.SOFT; + } + return; +} +exports.getResetMode = getResetMode; +function isValidResetMode(mode) { + return ResetModes.includes(mode); +} +//# sourceMappingURL=reset.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/reset.js.map b/Client/node_modules/simple-git/src/lib/tasks/reset.js.map new file mode 100644 index 000000000..3c6e42b85 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/reset.js.map @@ -0,0 +1 @@ +{"version":3,"file":"reset.js","sourceRoot":"","sources":["reset.ts"],"names":[],"mappings":";;;AAAA,iCAAmD;AAGnD,IAAY,SAMX;AAND,WAAY,SAAS;IAClB,4BAAe,CAAA;IACf,0BAAa,CAAA;IACb,0BAAa,CAAA;IACb,4BAAe,CAAA;IACf,0BAAa,CAAA;AAChB,CAAC,EANW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAMpB;AAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AAMxD,SAAgB,SAAS,CAAC,IAAsB,EAAE,UAAoB;IACnE,MAAM,QAAQ,GAAa,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE;QACzB,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;KAC7B;IACD,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IAE7B,OAAO,gCAAyB,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC;AARD,8BAQC;AAED,SAAgB,YAAY,CAAC,IAAqB;IAC/C,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE;QACzB,OAAO,IAAI,CAAC;KACd;IAED,QAAQ,OAAO,IAAI,EAAE;QAClB,KAAK,QAAQ,CAAC;QACd,KAAK,WAAW;YACb,OAAO,SAAS,CAAC,IAAI,CAAC;KAC3B;IAED,OAAO;AACV,CAAC;AAZD,oCAYC;AAED,SAAS,gBAAgB,CAAC,IAAqB;IAC5C,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/stash-list.d.ts b/Client/node_modules/simple-git/src/lib/tasks/stash-list.d.ts new file mode 100644 index 000000000..5bf9a9c5e --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/stash-list.d.ts @@ -0,0 +1,3 @@ +import { LogOptions, LogResult } from '../../../typings'; +import { StringTask } from '../types'; +export declare function stashListTask(opt: LogOptions | undefined, customArgs: string[]): StringTask; diff --git a/Client/node_modules/simple-git/src/lib/tasks/stash-list.js b/Client/node_modules/simple-git/src/lib/tasks/stash-list.js new file mode 100644 index 000000000..b5120fedb --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/stash-list.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.stashListTask = void 0; +const parse_list_log_summary_1 = require("../parsers/parse-list-log-summary"); +const log_1 = require("./log"); +function stashListTask(opt = {}, customArgs) { + const options = log_1.parseLogOptions(opt); + const parser = parse_list_log_summary_1.createListLogSummaryParser(options.splitter, options.fields); + return { + commands: ['stash', 'list', ...options.commands, ...customArgs], + format: 'utf-8', + parser, + }; +} +exports.stashListTask = stashListTask; +//# sourceMappingURL=stash-list.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/stash-list.js.map b/Client/node_modules/simple-git/src/lib/tasks/stash-list.js.map new file mode 100644 index 000000000..5d8c8012b --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/stash-list.js.map @@ -0,0 +1 @@ +{"version":3,"file":"stash-list.js","sourceRoot":"","sources":["stash-list.ts"],"names":[],"mappings":";;;AACA,8EAA+E;AAE/E,+BAAwC;AAExC,SAAgB,aAAa,CAAC,MAAkB,EAAE,EAAE,UAAoB;IACrE,MAAM,OAAO,GAAG,qBAAe,CAAM,GAAG,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,mDAA0B,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5E,OAAO;QACJ,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,UAAU,CAAC;QAC/D,MAAM,EAAE,OAAO;QACf,MAAM;KACR,CAAC;AACL,CAAC;AATD,sCASC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/status.d.ts b/Client/node_modules/simple-git/src/lib/tasks/status.d.ts new file mode 100644 index 000000000..45fec0f9b --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/status.d.ts @@ -0,0 +1,3 @@ +import { StatusResult } from '../../../typings'; +import { StringTask } from '../types'; +export declare function statusTask(customArgs: string[]): StringTask; diff --git a/Client/node_modules/simple-git/src/lib/tasks/status.js b/Client/node_modules/simple-git/src/lib/tasks/status.js new file mode 100644 index 000000000..b914816da --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/status.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.statusTask = void 0; +const StatusSummary_1 = require("../responses/StatusSummary"); +function statusTask(customArgs) { + return { + format: 'utf-8', + commands: ['status', '--porcelain', '-b', '-u', ...customArgs], + parser(text) { + return StatusSummary_1.parseStatusSummary(text); + } + }; +} +exports.statusTask = statusTask; +//# sourceMappingURL=status.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/status.js.map b/Client/node_modules/simple-git/src/lib/tasks/status.js.map new file mode 100644 index 000000000..053779da0 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/status.js.map @@ -0,0 +1 @@ +{"version":3,"file":"status.js","sourceRoot":"","sources":["status.ts"],"names":[],"mappings":";;;AACA,8DAAgE;AAGhE,SAAgB,UAAU,CAAC,UAAoB;IAC5C,OAAO;QACJ,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;QAC9D,MAAM,CAAC,IAAY;YAChB,OAAO,kCAAkB,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;KACH,CAAA;AACJ,CAAC;AARD,gCAQC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/sub-module.d.ts b/Client/node_modules/simple-git/src/lib/tasks/sub-module.d.ts new file mode 100644 index 000000000..ac4f6f8ad --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/sub-module.d.ts @@ -0,0 +1,5 @@ +import { StringTask } from '../types'; +export declare function addSubModuleTask(repo: string, path: string): StringTask; +export declare function initSubModuleTask(customArgs: string[]): StringTask; +export declare function subModuleTask(customArgs: string[]): StringTask; +export declare function updateSubModuleTask(customArgs: string[]): StringTask; diff --git a/Client/node_modules/simple-git/src/lib/tasks/sub-module.js b/Client/node_modules/simple-git/src/lib/tasks/sub-module.js new file mode 100644 index 000000000..141547799 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/sub-module.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.updateSubModuleTask = exports.subModuleTask = exports.initSubModuleTask = exports.addSubModuleTask = void 0; +const task_1 = require("./task"); +function addSubModuleTask(repo, path) { + return subModuleTask(['add', repo, path]); +} +exports.addSubModuleTask = addSubModuleTask; +function initSubModuleTask(customArgs) { + return subModuleTask(['init', ...customArgs]); +} +exports.initSubModuleTask = initSubModuleTask; +function subModuleTask(customArgs) { + const commands = [...customArgs]; + if (commands[0] !== 'submodule') { + commands.unshift('submodule'); + } + return task_1.straightThroughStringTask(commands); +} +exports.subModuleTask = subModuleTask; +function updateSubModuleTask(customArgs) { + return subModuleTask(['update', ...customArgs]); +} +exports.updateSubModuleTask = updateSubModuleTask; +//# sourceMappingURL=sub-module.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/sub-module.js.map b/Client/node_modules/simple-git/src/lib/tasks/sub-module.js.map new file mode 100644 index 000000000..82f45c9b7 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/sub-module.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sub-module.js","sourceRoot":"","sources":["sub-module.ts"],"names":[],"mappings":";;;AACA,iCAAmD;AAEnD,SAAgB,gBAAgB,CAAC,IAAY,EAAE,IAAY;IACxD,OAAO,aAAa,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7C,CAAC;AAFD,4CAEC;AAED,SAAgB,iBAAiB,CAAC,UAAoB;IACnD,OAAO,aAAa,CAAC,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;AACjD,CAAC;AAFD,8CAEC;AAED,SAAgB,aAAa,CAAC,UAAoB;IAC/C,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;IACjC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;QAC9B,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;KAChC;IAED,OAAO,gCAAyB,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAPD,sCAOC;AAED,SAAgB,mBAAmB,CAAC,UAAoB;IACrD,OAAO,aAAa,CAAC,CAAC,QAAQ,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;AACnD,CAAC;AAFD,kDAEC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/tag.d.ts b/Client/node_modules/simple-git/src/lib/tasks/tag.d.ts new file mode 100644 index 000000000..b1dbb312a --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/tag.d.ts @@ -0,0 +1,18 @@ +import { TagResult } from '../../../typings'; +import { StringTask } from '../types'; +/** + * Task used by `git.tags` + */ +export declare function tagListTask(customArgs?: string[]): StringTask; +/** + * Task used by `git.addTag` + */ +export declare function addTagTask(name: string): StringTask<{ + name: string; +}>; +/** + * Task used by `git.addTag` + */ +export declare function addAnnotatedTagTask(name: string, tagMessage: string): StringTask<{ + name: string; +}>; diff --git a/Client/node_modules/simple-git/src/lib/tasks/tag.js b/Client/node_modules/simple-git/src/lib/tasks/tag.js new file mode 100644 index 000000000..83cdf2b13 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/tag.js @@ -0,0 +1,45 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.addAnnotatedTagTask = exports.addTagTask = exports.tagListTask = void 0; +const TagList_1 = require("../responses/TagList"); +/** + * Task used by `git.tags` + */ +function tagListTask(customArgs = []) { + const hasCustomSort = customArgs.some((option) => /^--sort=/.test(option)); + return { + format: 'utf-8', + commands: ['tag', '-l', ...customArgs], + parser(text) { + return TagList_1.parseTagList(text, hasCustomSort); + }, + }; +} +exports.tagListTask = tagListTask; +/** + * Task used by `git.addTag` + */ +function addTagTask(name) { + return { + format: 'utf-8', + commands: ['tag', name], + parser() { + return { name }; + } + }; +} +exports.addTagTask = addTagTask; +/** + * Task used by `git.addTag` + */ +function addAnnotatedTagTask(name, tagMessage) { + return { + format: 'utf-8', + commands: ['tag', '-a', '-m', tagMessage, name], + parser() { + return { name }; + } + }; +} +exports.addAnnotatedTagTask = addAnnotatedTagTask; +//# sourceMappingURL=tag.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/tag.js.map b/Client/node_modules/simple-git/src/lib/tasks/tag.js.map new file mode 100644 index 000000000..837b9021f --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/tag.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tag.js","sourceRoot":"","sources":["tag.ts"],"names":[],"mappings":";;;AACA,kDAAoD;AAGpD;;GAEG;AACH,SAAgB,WAAW,CAAE,aAAuB,EAAE;IACnD,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3E,OAAO;QACJ,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;QACtC,MAAM,CAAE,IAAY;YACjB,OAAO,sBAAY,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC5C,CAAC;KACH,CAAA;AACJ,CAAC;AAVD,kCAUC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAE,IAAY;IACrC,OAAO;QACJ,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;QACvB,MAAM;YACH,OAAO,EAAC,IAAI,EAAC,CAAC;QACjB,CAAC;KACH,CAAA;AACJ,CAAC;AARD,gCAQC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAE,IAAY,EAAE,UAAkB;IAClE,OAAO;QACJ,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC;QAC/C,MAAM;YACH,OAAO,EAAC,IAAI,EAAC,CAAC;QACjB,CAAC;KACH,CAAA;AACJ,CAAC;AARD,kDAQC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/task.d.ts b/Client/node_modules/simple-git/src/lib/tasks/task.d.ts new file mode 100644 index 000000000..9ce9a2566 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/task.d.ts @@ -0,0 +1,11 @@ +import { BufferTask, EmptyTaskParser, SimpleGitTask, SimpleGitTaskConfiguration, StringTask } from '../types'; +export declare const EMPTY_COMMANDS: []; +export declare type EmptyTask = SimpleGitTaskConfiguration & { + commands: typeof EMPTY_COMMANDS; + parser: EmptyTaskParser; +}; +export declare function adhocExecTask(parser: () => R): StringTask; +export declare function configurationErrorTask(error: Error | string): EmptyTask; +export declare function straightThroughStringTask(commands: string[], trimmed?: boolean): StringTask; +export declare function isBufferTask(task: SimpleGitTask): task is BufferTask; +export declare function isEmptyTask(task: SimpleGitTask): task is EmptyTask; diff --git a/Client/node_modules/simple-git/src/lib/tasks/task.js b/Client/node_modules/simple-git/src/lib/tasks/task.js new file mode 100644 index 000000000..8c36e998e --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/task.js @@ -0,0 +1,42 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isEmptyTask = exports.isBufferTask = exports.straightThroughStringTask = exports.configurationErrorTask = exports.adhocExecTask = exports.EMPTY_COMMANDS = void 0; +const task_configuration_error_1 = require("../errors/task-configuration-error"); +exports.EMPTY_COMMANDS = []; +function adhocExecTask(parser) { + return { + commands: exports.EMPTY_COMMANDS, + format: 'utf-8', + parser, + }; +} +exports.adhocExecTask = adhocExecTask; +function configurationErrorTask(error) { + return { + commands: exports.EMPTY_COMMANDS, + format: 'utf-8', + parser() { + throw typeof error === 'string' ? new task_configuration_error_1.TaskConfigurationError(error) : error; + } + }; +} +exports.configurationErrorTask = configurationErrorTask; +function straightThroughStringTask(commands, trimmed = false) { + return { + commands, + format: 'utf-8', + parser(text) { + return trimmed ? String(text).trim() : text; + }, + }; +} +exports.straightThroughStringTask = straightThroughStringTask; +function isBufferTask(task) { + return task.format === 'buffer'; +} +exports.isBufferTask = isBufferTask; +function isEmptyTask(task) { + return !task.commands.length; +} +exports.isEmptyTask = isEmptyTask; +//# sourceMappingURL=task.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/tasks/task.js.map b/Client/node_modules/simple-git/src/lib/tasks/task.js.map new file mode 100644 index 000000000..a5e7388e6 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/tasks/task.js.map @@ -0,0 +1 @@ +{"version":3,"file":"task.js","sourceRoot":"","sources":["task.ts"],"names":[],"mappings":";;;AAAA,iFAA4E;AAG/D,QAAA,cAAc,GAAO,EAAE,CAAC;AAQrC,SAAgB,aAAa,CAAI,MAAe;IAC7C,OAAO;QACJ,QAAQ,EAAE,sBAAc;QACxB,MAAM,EAAE,OAAO;QACf,MAAM;KACR,CAAA;AACJ,CAAC;AAND,sCAMC;AAED,SAAgB,sBAAsB,CAAC,KAAqB;IACzD,OAAO;QACJ,QAAQ,EAAE,sBAAc;QACxB,MAAM,EAAE,OAAO;QACf,MAAM;YACH,MAAM,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,iDAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/E,CAAC;KACH,CAAA;AACJ,CAAC;AARD,wDAQC;AAED,SAAgB,yBAAyB,CAAC,QAAkB,EAAE,OAAO,GAAG,KAAK;IAC1E,OAAO;QACJ,QAAQ;QACR,MAAM,EAAE,OAAO;QACf,MAAM,CAAC,IAAI;YACR,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/C,CAAC;KACH,CAAA;AACJ,CAAC;AARD,8DAQC;AAED,SAAgB,YAAY,CAAI,IAAsB;IACnD,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;AACnC,CAAC;AAFD,oCAEC;AAED,SAAgB,WAAW,CAAI,IAAsB;IAClD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAChC,CAAC;AAFD,kCAEC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/types/handlers.d.ts b/Client/node_modules/simple-git/src/lib/types/handlers.d.ts new file mode 100644 index 000000000..5716db1ec --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/types/handlers.d.ts @@ -0,0 +1,9 @@ +import { GitError } from '../errors/git-error'; +/** + * The node-style callback to a task accepts either two arguments with the first as a null + * and the second as the data, or just one argument which is an error. + */ +export interface SimpleGitTaskCallback { + (err: null, data: T): void; + (err: E): void; +} diff --git a/Client/node_modules/simple-git/src/lib/types/handlers.js b/Client/node_modules/simple-git/src/lib/types/handlers.js new file mode 100644 index 000000000..c67b49c6e --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/types/handlers.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=handlers.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/types/handlers.js.map b/Client/node_modules/simple-git/src/lib/types/handlers.js.map new file mode 100644 index 000000000..11994ec2d --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/types/handlers.js.map @@ -0,0 +1 @@ +{"version":3,"file":"handlers.js","sourceRoot":"","sources":["handlers.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/types/index.d.ts b/Client/node_modules/simple-git/src/lib/types/index.d.ts new file mode 100644 index 000000000..f269ff8bd --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/types/index.d.ts @@ -0,0 +1,56 @@ +/// +import { SimpleGitTask } from './tasks'; +export * from './handlers'; +export * from './tasks'; +/** + * Most tasks accept custom options as an array of strings as well as the + * options object. Unless the task is explicitly documented as such, the + * tasks will not accept both formats at the same time, preferring whichever + * appears last in the arguments. + */ +export declare type TaskOptions = string[] | O; +/** + * Options supplied in most tasks as an optional trailing object + */ +export declare type OptionsValues = null | string | number; +export declare type Options = Record; +export declare type OptionFlags = Partial>; +/** + * A function called by the executor immediately after creating a child + * process. Allows the calling application to implement custom handling of + * the incoming stream of data from the `git`. + */ +export declare type outputHandler = (command: string, stdout: NodeJS.ReadableStream, stderr: NodeJS.ReadableStream, args: string[]) => void; +/** + * Environment variables to be passed into the child process. + */ +export declare type GitExecutorEnv = NodeJS.ProcessEnv | undefined; +/** + * Public interface of the Executor + */ +export interface SimpleGitExecutor { + env: GitExecutorEnv; + outputHandler?: outputHandler; + binary: string; + cwd: string; + push(task: SimpleGitTask): Promise; +} +/** + * The resulting output from running the git child process + */ +export interface GitExecutorResult { + stdOut: Buffer[]; + stdErr: Buffer[]; + exitCode: number; +} +/** + * Optional configuration settings to be passed to the `simpleGit` + * builder. + */ +export interface SimpleGitOptions { + baseDir: string; + binary: string; + maxConcurrentProcesses: number; +} +export declare type Maybe = T | undefined; +export declare type Primitives = string | number | boolean; diff --git a/Client/node_modules/simple-git/src/lib/types/index.js b/Client/node_modules/simple-git/src/lib/types/index.js new file mode 100644 index 000000000..f8d0edad3 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/types/index.js @@ -0,0 +1,15 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./handlers"), exports); +__exportStar(require("./tasks"), exports); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/types/index.js.map b/Client/node_modules/simple-git/src/lib/types/index.js.map new file mode 100644 index 000000000..bc5dca09f --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/types/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,6CAA2B;AAC3B,0CAAwB"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/types/tasks.d.ts b/Client/node_modules/simple-git/src/lib/types/tasks.d.ts new file mode 100644 index 000000000..da4a59c15 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/types/tasks.d.ts @@ -0,0 +1,25 @@ +/// +import { EmptyTask } from '../tasks/task'; +export declare type TaskResponseFormat = Buffer | string; +export interface TaskParser { + (stdOut: INPUT, stdErr: INPUT): RESPONSE; +} +export interface EmptyTaskParser { + (): RESPONSE; +} +export interface SimpleGitTaskConfiguration { + commands: string[]; + format: FORMAT; + parser: TaskParser; + onError?: (exitCode: number, error: string, done: (result: INPUT) => void, fail: (error: string) => void) => void; + /** + * @deprecated + * Use of `concatStdErr` is now deprecated, to be removed by v2.50.0 (or on upgrading to v3). + * Instead, use the `stdErr` argument supplied to the `parser` + */ + concatStdErr?: boolean; +} +export declare type StringTask = SimpleGitTaskConfiguration; +export declare type BufferTask = SimpleGitTaskConfiguration; +export declare type RunnableTask = StringTask | BufferTask; +export declare type SimpleGitTask = RunnableTask | EmptyTask; diff --git a/Client/node_modules/simple-git/src/lib/types/tasks.js b/Client/node_modules/simple-git/src/lib/types/tasks.js new file mode 100644 index 000000000..5e36badf2 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/types/tasks.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=tasks.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/types/tasks.js.map b/Client/node_modules/simple-git/src/lib/types/tasks.js.map new file mode 100644 index 000000000..e70f4979b --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/types/tasks.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tasks.js","sourceRoot":"","sources":["tasks.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/utils/argument-filters.d.ts b/Client/node_modules/simple-git/src/lib/utils/argument-filters.d.ts new file mode 100644 index 000000000..6be6925d9 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/argument-filters.d.ts @@ -0,0 +1,16 @@ +import { Options, Primitives } from '../types'; +export interface ArgumentFilterPredicate { + (input: any): input is T; +} +export declare function filterType(input: K, filter: ArgumentFilterPredicate): K extends T ? T : undefined; +export declare function filterType(input: K, filter: ArgumentFilterPredicate, def: T): T; +export declare const filterArray: ArgumentFilterPredicate>; +export declare function filterPrimitives(input: unknown, omit?: Array<'boolean' | 'string' | 'number'>): input is Primitives; +export declare const filterString: ArgumentFilterPredicate; +export declare const filterStringArray: ArgumentFilterPredicate; +export declare const filterStringOrStringArray: ArgumentFilterPredicate; +export declare function filterPlainObject(input: T | unknown): input is T; +export declare function filterFunction(input: unknown): input is Function; +export declare const filterHasLength: ArgumentFilterPredicate<{ + length: number; +}>; diff --git a/Client/node_modules/simple-git/src/lib/utils/argument-filters.js b/Client/node_modules/simple-git/src/lib/utils/argument-filters.js new file mode 100644 index 000000000..614d44a71 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/argument-filters.js @@ -0,0 +1,47 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.filterHasLength = exports.filterFunction = exports.filterPlainObject = exports.filterStringOrStringArray = exports.filterStringArray = exports.filterString = exports.filterPrimitives = exports.filterArray = exports.filterType = void 0; +const util_1 = require("./util"); +function filterType(input, filter, def) { + if (filter(input)) { + return input; + } + return (arguments.length > 2) ? def : undefined; +} +exports.filterType = filterType; +const filterArray = (input) => { + return Array.isArray(input); +}; +exports.filterArray = filterArray; +function filterPrimitives(input, omit) { + return /number|string|boolean/.test(typeof input) && (!omit || !omit.includes((typeof input))); +} +exports.filterPrimitives = filterPrimitives; +const filterString = (input) => { + return typeof input === 'string'; +}; +exports.filterString = filterString; +const filterStringArray = (input) => { + return Array.isArray(input) && input.every(exports.filterString); +}; +exports.filterStringArray = filterStringArray; +const filterStringOrStringArray = (input) => { + return exports.filterString(input) || (Array.isArray(input) && input.every(exports.filterString)); +}; +exports.filterStringOrStringArray = filterStringOrStringArray; +function filterPlainObject(input) { + return !!input && util_1.objectToString(input) === '[object Object]'; +} +exports.filterPlainObject = filterPlainObject; +function filterFunction(input) { + return typeof input === 'function'; +} +exports.filterFunction = filterFunction; +const filterHasLength = (input) => { + if (input == null || 'number|boolean|function'.includes(typeof input)) { + return false; + } + return Array.isArray(input) || typeof input === 'string' || typeof input.length === 'number'; +}; +exports.filterHasLength = filterHasLength; +//# sourceMappingURL=argument-filters.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/utils/argument-filters.js.map b/Client/node_modules/simple-git/src/lib/utils/argument-filters.js.map new file mode 100644 index 000000000..7d5b003c3 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/argument-filters.js.map @@ -0,0 +1 @@ +{"version":3,"file":"argument-filters.js","sourceRoot":"","sources":["argument-filters.ts"],"names":[],"mappings":";;;AACA,iCAAwC;AAQxC,SAAgB,UAAU,CAAO,KAAQ,EAAE,MAAkC,EAAE,GAAO;IACnF,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;QAChB,OAAO,KAAK,CAAC;KACf;IACD,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;AAClD,CAAC;AALD,gCAKC;AAEM,MAAM,WAAW,GAAwC,CAAC,KAAK,EAAuB,EAAE;IAC5F,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC,CAAA;AAFY,QAAA,WAAW,eAEvB;AAED,SAAgB,gBAAgB,CAAC,KAAc,EAAE,IAA6C;IAC3F,OAAO,uBAAuB,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,KAAK,CAAoC,CAAC,CAAC,CAAC;AACrI,CAAC;AAFD,4CAEC;AAEM,MAAM,YAAY,GAAoC,CAAC,KAAK,EAAmB,EAAE;IACrF,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACpC,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB;AAEK,MAAM,iBAAiB,GAAsC,CAAC,KAAK,EAAqB,EAAE;IAC9F,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,oBAAY,CAAC,CAAC;AAC5D,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B;AAEK,MAAM,yBAAyB,GAA+C,CAAC,KAAK,EAA8B,EAAE;IACxH,OAAO,oBAAY,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,oBAAY,CAAC,CAAC,CAAC;AACrF,CAAC,CAAC;AAFW,QAAA,yBAAyB,6BAEpC;AAGF,SAAgB,iBAAiB,CAAmB,KAAkB;IACnE,OAAO,CAAC,CAAC,KAAK,IAAI,qBAAc,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAAC;AACjE,CAAC;AAFD,8CAEC;AAED,SAAgB,cAAc,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACtC,CAAC;AAFD,wCAEC;AAEM,MAAM,eAAe,GAAgD,CAAC,KAAK,EAA+B,EAAE;IAChH,IAAI,KAAK,IAAI,IAAI,IAAI,yBAAyB,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,EAAE;QACpE,OAAO,KAAK,CAAC;KACf;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC;AAChG,CAAC,CAAA;AALY,QAAA,eAAe,mBAK3B"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/utils/exit-codes.d.ts b/Client/node_modules/simple-git/src/lib/utils/exit-codes.d.ts new file mode 100644 index 000000000..1c389c7f1 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/exit-codes.d.ts @@ -0,0 +1,9 @@ +/** + * Known process exit codes used by the task parsers to determine whether an error + * was one they can automatically handle + */ +export declare enum ExitCodes { + SUCCESS = 0, + ERROR = 1, + UNCLEAN = 128 +} diff --git a/Client/node_modules/simple-git/src/lib/utils/exit-codes.js b/Client/node_modules/simple-git/src/lib/utils/exit-codes.js new file mode 100644 index 000000000..4b646b8ad --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/exit-codes.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ExitCodes = void 0; +/** + * Known process exit codes used by the task parsers to determine whether an error + * was one they can automatically handle + */ +var ExitCodes; +(function (ExitCodes) { + ExitCodes[ExitCodes["SUCCESS"] = 0] = "SUCCESS"; + ExitCodes[ExitCodes["ERROR"] = 1] = "ERROR"; + ExitCodes[ExitCodes["UNCLEAN"] = 128] = "UNCLEAN"; +})(ExitCodes = exports.ExitCodes || (exports.ExitCodes = {})); +//# sourceMappingURL=exit-codes.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/utils/exit-codes.js.map b/Client/node_modules/simple-git/src/lib/utils/exit-codes.js.map new file mode 100644 index 000000000..e30279153 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/exit-codes.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["exit-codes.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,IAAY,SAIX;AAJD,WAAY,SAAS;IAClB,+CAAO,CAAA;IACP,2CAAK,CAAA;IACL,iDAAa,CAAA;AAChB,CAAC,EAJW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAIpB"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/utils/git-output-streams.d.ts b/Client/node_modules/simple-git/src/lib/utils/git-output-streams.d.ts new file mode 100644 index 000000000..72db46636 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/git-output-streams.d.ts @@ -0,0 +1,8 @@ +/// +import { TaskResponseFormat } from '../types'; +export declare class GitOutputStreams { + readonly stdOut: T; + readonly stdErr: T; + constructor(stdOut: T, stdErr: T); + asStrings(): GitOutputStreams; +} diff --git a/Client/node_modules/simple-git/src/lib/utils/git-output-streams.js b/Client/node_modules/simple-git/src/lib/utils/git-output-streams.js new file mode 100644 index 000000000..7ac24aaa8 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/git-output-streams.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GitOutputStreams = void 0; +class GitOutputStreams { + constructor(stdOut, stdErr) { + this.stdOut = stdOut; + this.stdErr = stdErr; + } + asStrings() { + return new GitOutputStreams(this.stdOut.toString('utf8'), this.stdErr.toString('utf8')); + } +} +exports.GitOutputStreams = GitOutputStreams; +//# sourceMappingURL=git-output-streams.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/utils/git-output-streams.js.map b/Client/node_modules/simple-git/src/lib/utils/git-output-streams.js.map new file mode 100644 index 000000000..eb2b68bce --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/git-output-streams.js.map @@ -0,0 +1 @@ +{"version":3,"file":"git-output-streams.js","sourceRoot":"","sources":["git-output-streams.ts"],"names":[],"mappings":";;;AAEA,MAAa,gBAAgB;IAE1B,YAA4B,MAAS,EAAkB,MAAS;QAApC,WAAM,GAAN,MAAM,CAAG;QAAkB,WAAM,GAAN,MAAM,CAAG;IAChE,CAAC;IAED,SAAS;QACN,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3F,CAAC;CACH;AARD,4CAQC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/utils/index.d.ts b/Client/node_modules/simple-git/src/lib/utils/index.d.ts new file mode 100644 index 000000000..04cb604c4 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/index.d.ts @@ -0,0 +1,8 @@ +export * from './argument-filters'; +export * from './exit-codes'; +export * from './git-output-streams'; +export * from './line-parser'; +export * from './simple-git-options'; +export * from './task-options'; +export * from './task-parser'; +export * from './util'; diff --git a/Client/node_modules/simple-git/src/lib/utils/index.js b/Client/node_modules/simple-git/src/lib/utils/index.js new file mode 100644 index 000000000..683aaf935 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/index.js @@ -0,0 +1,21 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./argument-filters"), exports); +__exportStar(require("./exit-codes"), exports); +__exportStar(require("./git-output-streams"), exports); +__exportStar(require("./line-parser"), exports); +__exportStar(require("./simple-git-options"), exports); +__exportStar(require("./task-options"), exports); +__exportStar(require("./task-parser"), exports); +__exportStar(require("./util"), exports); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/utils/index.js.map b/Client/node_modules/simple-git/src/lib/utils/index.js.map new file mode 100644 index 000000000..48e35b84f --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qDAAmC;AACnC,+CAA6B;AAC7B,uDAAqC;AACrC,gDAA8B;AAC9B,uDAAqC;AACrC,iDAA+B;AAC/B,gDAA8B;AAC9B,yCAAuB"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/utils/line-parser.d.ts b/Client/node_modules/simple-git/src/lib/utils/line-parser.d.ts new file mode 100644 index 000000000..c50560aa8 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/line-parser.d.ts @@ -0,0 +1,15 @@ +export declare class LineParser { + protected matches: string[]; + private _regExp; + constructor(regExp: RegExp | RegExp[], useMatches?: (target: T, match: string[]) => boolean | void); + parse: (line: (offset: number) => (string | undefined), target: T) => boolean; + protected useMatches(target: T, match: string[]): boolean | void; + protected resetMatches(): void; + protected prepareMatches(): string[]; + protected addMatch(reg: RegExp, index: number, line?: string): boolean; + protected pushMatch(_index: number, matched: string[]): void; +} +export declare class RemoteLineParser extends LineParser { + protected addMatch(reg: RegExp, index: number, line?: string): boolean; + protected pushMatch(index: number, matched: string[]): void; +} diff --git a/Client/node_modules/simple-git/src/lib/utils/line-parser.js b/Client/node_modules/simple-git/src/lib/utils/line-parser.js new file mode 100644 index 000000000..97271499c --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/line-parser.js @@ -0,0 +1,52 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.RemoteLineParser = exports.LineParser = void 0; +class LineParser { + constructor(regExp, useMatches) { + this.matches = []; + this.parse = (line, target) => { + this.resetMatches(); + if (!this._regExp.every((reg, index) => this.addMatch(reg, index, line(index)))) { + return false; + } + return this.useMatches(target, this.prepareMatches()) !== false; + }; + this._regExp = Array.isArray(regExp) ? regExp : [regExp]; + if (useMatches) { + this.useMatches = useMatches; + } + } + // @ts-ignore + useMatches(target, match) { + throw new Error(`LineParser:useMatches not implemented`); + } + resetMatches() { + this.matches.length = 0; + } + prepareMatches() { + return this.matches; + } + addMatch(reg, index, line) { + const matched = line && reg.exec(line); + if (matched) { + this.pushMatch(index, matched); + } + return !!matched; + } + pushMatch(_index, matched) { + this.matches.push(...matched.slice(1)); + } +} +exports.LineParser = LineParser; +class RemoteLineParser extends LineParser { + addMatch(reg, index, line) { + return /^remote:\s/.test(String(line)) && super.addMatch(reg, index, line); + } + pushMatch(index, matched) { + if (index > 0 || matched.length > 1) { + super.pushMatch(index, matched); + } + } +} +exports.RemoteLineParser = RemoteLineParser; +//# sourceMappingURL=line-parser.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/utils/line-parser.js.map b/Client/node_modules/simple-git/src/lib/utils/line-parser.js.map new file mode 100644 index 000000000..af4ed9d91 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/line-parser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"line-parser.js","sourceRoot":"","sources":["line-parser.ts"],"names":[],"mappings":";;;AAAA,MAAa,UAAU;IAMpB,YACG,MAAyB,EACzB,UAA2D;QANpD,YAAO,GAAa,EAAE,CAAC;QAcjC,UAAK,GAAG,CAAC,IAA8C,EAAE,MAAS,EAAW,EAAE;YAC5E,IAAI,CAAC,YAAY,EAAE,CAAC;YAEpB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBAC9E,OAAO,KAAK,CAAC;aACf;YAED,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,KAAK,CAAC;QACnE,CAAC,CAAA;QAdE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE;YACb,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAC/B;IACJ,CAAC;IAYD,aAAa;IACH,UAAU,CAAC,MAAS,EAAE,KAAe;QAC5C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC5D,CAAC;IAES,YAAY;QACnB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,CAAC;IAES,cAAc;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC;IACvB,CAAC;IAES,QAAQ,CAAC,GAAW,EAAE,KAAa,EAAE,IAAa;QACzD,MAAM,OAAO,GAAG,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,OAAO,EAAE;YACV,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SACjC;QAED,OAAO,CAAC,CAAC,OAAO,CAAC;IACpB,CAAC;IAES,SAAS,CAAC,MAAc,EAAE,OAAiB;QAClD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;CAEH;AApDD,gCAoDC;AAED,MAAa,gBAAoB,SAAQ,UAAa;IAEzC,QAAQ,CAAC,GAAW,EAAE,KAAa,EAAE,IAAa;QACzD,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;IAES,SAAS,CAAC,KAAa,EAAE,OAAiB;QACjD,IAAI,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAClC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAClC;IACJ,CAAC;CAEH;AAZD,4CAYC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/utils/simple-git-options.d.ts b/Client/node_modules/simple-git/src/lib/utils/simple-git-options.d.ts new file mode 100644 index 000000000..b29cbaf29 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/simple-git-options.d.ts @@ -0,0 +1,2 @@ +import { SimpleGitOptions } from '../types'; +export declare function createInstanceConfig(...options: Array>): SimpleGitOptions; diff --git a/Client/node_modules/simple-git/src/lib/utils/simple-git-options.js b/Client/node_modules/simple-git/src/lib/utils/simple-git-options.js new file mode 100644 index 000000000..389f47e00 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/simple-git-options.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createInstanceConfig = void 0; +const defaultOptions = { + binary: 'git', + maxConcurrentProcesses: 5, +}; +function createInstanceConfig(...options) { + const baseDir = process.cwd(); + const config = Object.assign(Object.assign({ baseDir }, defaultOptions), ...(options.filter(o => typeof o === 'object' && o))); + config.baseDir = config.baseDir || baseDir; + return config; +} +exports.createInstanceConfig = createInstanceConfig; +//# sourceMappingURL=simple-git-options.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/utils/simple-git-options.js.map b/Client/node_modules/simple-git/src/lib/utils/simple-git-options.js.map new file mode 100644 index 000000000..5c4c51afd --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/simple-git-options.js.map @@ -0,0 +1 @@ +{"version":3,"file":"simple-git-options.js","sourceRoot":"","sources":["simple-git-options.ts"],"names":[],"mappings":";;;AAEA,MAAM,cAAc,GAAsC;IACvD,MAAM,EAAE,KAAK;IACb,sBAAsB,EAAE,CAAC;CAC3B,CAAC;AAEF,SAAgB,oBAAoB,CAAC,GAAG,OAAyC;IAC9E,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAqB,MAAM,CAAC,MAAM,iBAAE,OAAO,IAAK,cAAc,GACvE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,CACtD,CAAC;IAEF,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC;IAE3C,OAAO,MAAM,CAAC;AACjB,CAAC;AATD,oDASC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/utils/task-options.d.ts b/Client/node_modules/simple-git/src/lib/utils/task-options.d.ts new file mode 100644 index 000000000..0a09dc370 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/task-options.d.ts @@ -0,0 +1,13 @@ +import { Maybe, Options } from '../types'; +export declare function appendTaskOptions(options: Maybe, commands?: string[]): string[]; +export declare function getTrailingOptions(args: T, initialPrimitive?: number, objectOnly?: boolean): string[]; +/** + * Given any number of arguments, returns the trailing options argument, ignoring a trailing function argument + * if there is one. When not found, the return value is null. + */ +export declare function trailingOptionsArgument(args: T): Maybe; +/** + * Returns either the source argument when it is a `Function`, or the default + * `NOOP` function constant + */ +export declare function trailingFunctionArgument(args: unknown[] | IArguments | unknown, includeNoop?: boolean): Maybe; diff --git a/Client/node_modules/simple-git/src/lib/utils/task-options.js b/Client/node_modules/simple-git/src/lib/utils/task-options.js new file mode 100644 index 000000000..1b9fb8651 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/task-options.js @@ -0,0 +1,58 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.trailingFunctionArgument = exports.trailingOptionsArgument = exports.getTrailingOptions = exports.appendTaskOptions = void 0; +const argument_filters_1 = require("./argument-filters"); +const util_1 = require("./util"); +function appendTaskOptions(options, commands = []) { + if (!argument_filters_1.filterPlainObject(options)) { + return commands; + } + return Object.keys(options).reduce((commands, key) => { + const value = options[key]; + if (argument_filters_1.filterPrimitives(value, ['boolean'])) { + commands.push(key + '=' + value); + } + else { + commands.push(key); + } + return commands; + }, commands); +} +exports.appendTaskOptions = appendTaskOptions; +function getTrailingOptions(args, initialPrimitive = 0, objectOnly = false) { + const command = []; + for (let i = 0, max = initialPrimitive < 0 ? args.length : initialPrimitive; i < max; i++) { + if ('string|number'.includes(typeof args[i])) { + command.push(String(args[i])); + } + } + appendTaskOptions(trailingOptionsArgument(args), command); + if (!objectOnly) { + command.push(...trailingArrayArgument(args)); + } + return command; +} +exports.getTrailingOptions = getTrailingOptions; +function trailingArrayArgument(args) { + const hasTrailingCallback = typeof util_1.last(args) === 'function'; + return argument_filters_1.filterType(util_1.last(args, hasTrailingCallback ? 1 : 0), argument_filters_1.filterArray, []); +} +/** + * Given any number of arguments, returns the trailing options argument, ignoring a trailing function argument + * if there is one. When not found, the return value is null. + */ +function trailingOptionsArgument(args) { + const hasTrailingCallback = argument_filters_1.filterFunction(util_1.last(args)); + return argument_filters_1.filterType(util_1.last(args, hasTrailingCallback ? 1 : 0), argument_filters_1.filterPlainObject); +} +exports.trailingOptionsArgument = trailingOptionsArgument; +/** + * Returns either the source argument when it is a `Function`, or the default + * `NOOP` function constant + */ +function trailingFunctionArgument(args, includeNoop = true) { + const callback = util_1.asFunction(util_1.last(args)); + return includeNoop || util_1.isUserFunction(callback) ? callback : undefined; +} +exports.trailingFunctionArgument = trailingFunctionArgument; +//# sourceMappingURL=task-options.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/utils/task-options.js.map b/Client/node_modules/simple-git/src/lib/utils/task-options.js.map new file mode 100644 index 000000000..fe7746303 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/task-options.js.map @@ -0,0 +1 @@ +{"version":3,"file":"task-options.js","sourceRoot":"","sources":["task-options.ts"],"names":[],"mappings":";;;AAAA,yDAAkH;AAClH,iCAA0D;AAG1D,SAAgB,iBAAiB,CAA8B,OAAiB,EAAE,WAAqB,EAAE;IACtG,IAAI,CAAC,oCAAiB,CAAU,OAAO,CAAC,EAAE;QACvC,OAAO,QAAQ,CAAC;KAClB;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,QAAkB,EAAE,GAAW,EAAE,EAAE;QACpE,MAAM,KAAK,GAAkB,OAAO,CAAC,GAAG,CAAC,CAAC;QAE1C,IAAI,mCAAgB,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE;YACvC,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC;SACnC;aAAM;YACJ,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACrB;QAED,OAAO,QAAQ,CAAC;IACnB,CAAC,EAAE,QAAQ,CAAC,CAAC;AAChB,CAAC;AAhBD,8CAgBC;AAED,SAAgB,kBAAkB,CAAkB,IAAO,EAAE,gBAAgB,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK;IAClG,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QACxF,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YAC3C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChC;KACH;IAED,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1D,IAAI,CAAC,UAAU,EAAE;QACd,OAAO,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;KAC/C;IAED,OAAO,OAAO,CAAC;AAClB,CAAC;AAfD,gDAeC;AAED,SAAS,qBAAqB,CAAkB,IAAO;IACpD,MAAM,mBAAmB,GAAG,OAAO,WAAI,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC;IAC7D,OAAO,6BAAU,CACd,WAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,8BAAW,EAAE,EAAE,CAC1D,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CAAkB,IAAO;IAC7D,MAAM,mBAAmB,GAAG,iCAAc,CAAC,WAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,OAAO,6BAAU,CAAC,WAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,oCAAiB,CAAC,CAAC;AACjF,CAAC;AAHD,0DAGC;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CAAC,IAAsC,EAAE,WAAW,GAAG,IAAI;IAChG,MAAM,QAAQ,GAAG,iBAAU,CAAC,WAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,OAAO,WAAW,IAAI,qBAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,CAAC;AAHD,4DAGC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/utils/task-parser.d.ts b/Client/node_modules/simple-git/src/lib/utils/task-parser.d.ts new file mode 100644 index 000000000..5734495ed --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/task-parser.d.ts @@ -0,0 +1,5 @@ +import { TaskParser, TaskResponseFormat } from '../types'; +import { GitOutputStreams } from './git-output-streams'; +import { LineParser } from './line-parser'; +export declare function callTaskParser(parser: TaskParser, streams: GitOutputStreams): RESPONSE; +export declare function parseStringResponse(result: T, parsers: LineParser[], ...texts: string[]): T; diff --git a/Client/node_modules/simple-git/src/lib/utils/task-parser.js b/Client/node_modules/simple-git/src/lib/utils/task-parser.js new file mode 100644 index 000000000..694d52655 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/task-parser.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseStringResponse = exports.callTaskParser = void 0; +const util_1 = require("./util"); +function callTaskParser(parser, streams) { + return parser(streams.stdOut, streams.stdErr); +} +exports.callTaskParser = callTaskParser; +function parseStringResponse(result, parsers, ...texts) { + texts.forEach(text => { + for (let lines = util_1.toLinesWithContent(text), i = 0, max = lines.length; i < max; i++) { + const line = (offset = 0) => { + if ((i + offset) >= max) { + return; + } + return lines[i + offset]; + }; + parsers.some(({ parse }) => parse(line, result)); + } + }); + return result; +} +exports.parseStringResponse = parseStringResponse; +//# sourceMappingURL=task-parser.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/utils/task-parser.js.map b/Client/node_modules/simple-git/src/lib/utils/task-parser.js.map new file mode 100644 index 000000000..7d0ea0f4e --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/task-parser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"task-parser.js","sourceRoot":"","sources":["task-parser.ts"],"names":[],"mappings":";;;AAGA,iCAA4C;AAE5C,SAAgB,cAAc,CAA6C,MAAmC,EAAE,OAAgC;IAC7I,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AACjD,CAAC;AAFD,wCAEC;AAED,SAAgB,mBAAmB,CAAI,MAAS,EAAE,OAAwB,EAAE,GAAG,KAAe;IAC3F,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAClB,KAAK,IAAI,KAAK,GAAG,yBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YACjF,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE;gBACzB,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,EAAE;oBACtB,OAAO;iBACT;gBACD,OAAO,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;YAC5B,CAAC,CAAA;YAED,OAAO,CAAC,IAAI,CAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;SACjD;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACjB,CAAC;AAfD,kDAeC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/utils/util.d.ts b/Client/node_modules/simple-git/src/lib/utils/util.d.ts new file mode 100644 index 000000000..3873a475f --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/util.d.ts @@ -0,0 +1,32 @@ +import { Maybe } from '../types'; +export declare const NOOP: (...args: any[]) => void; +/** + * Returns either the source argument when it is a `Function`, or the default + * `NOOP` function constant + */ +export declare function asFunction(source: T | any): T; +/** + * Determines whether the supplied argument is both a function, and is not + * the `NOOP` function. + */ +export declare function isUserFunction(source: T | any): source is T; +export declare function splitOn(input: string, char: string): [string, string]; +export declare function first(input: T, offset?: number): Maybe; +export declare function first(input: T, offset?: number): Maybe; +export declare function last(input: T, offset?: number): Maybe; +export declare function last(input: T, offset?: number): Maybe; +export declare function last(input: T, offset?: number): Maybe; +export declare function toLinesWithContent(input: string, trimmed?: boolean, separator?: string): string[]; +declare type LineWithContentCallback = (line: string) => T; +export declare function forEachLineWithContent(input: string, callback: LineWithContentCallback): T[]; +export declare function folderExists(path: string): boolean; +/** + * Adds `item` into the `target` `Array` or `Set` when it is not already present. + */ +export declare function append(target: T[] | Set, item: T): typeof item; +export declare function remove(target: Set | T[], item: T): T; +export declare const objectToString: (input: any) => string; +export declare function asArray(source: T | T[]): T[]; +export declare function asStringArray(source: T | T[]): string[]; +export declare function asNumber(source: string | null | undefined, onNaN?: number): number; +export {}; diff --git a/Client/node_modules/simple-git/src/lib/utils/util.js b/Client/node_modules/simple-git/src/lib/utils/util.js new file mode 100644 index 000000000..1df210522 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/util.js @@ -0,0 +1,112 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.asNumber = exports.asStringArray = exports.asArray = exports.objectToString = exports.remove = exports.append = exports.folderExists = exports.forEachLineWithContent = exports.toLinesWithContent = exports.last = exports.first = exports.splitOn = exports.isUserFunction = exports.asFunction = exports.NOOP = void 0; +const file_exists_1 = require("@kwsites/file-exists"); +const NOOP = () => { +}; +exports.NOOP = NOOP; +/** + * Returns either the source argument when it is a `Function`, or the default + * `NOOP` function constant + */ +function asFunction(source) { + return typeof source === 'function' ? source : exports.NOOP; +} +exports.asFunction = asFunction; +/** + * Determines whether the supplied argument is both a function, and is not + * the `NOOP` function. + */ +function isUserFunction(source) { + return (typeof source === 'function' && source !== exports.NOOP); +} +exports.isUserFunction = isUserFunction; +function splitOn(input, char) { + const index = input.indexOf(char); + if (index <= 0) { + return [input, '']; + } + return [ + input.substr(0, index), + input.substr(index + 1), + ]; +} +exports.splitOn = splitOn; +function first(input, offset = 0) { + return isArrayLike(input) && input.length > offset ? input[offset] : undefined; +} +exports.first = first; +function last(input, offset = 0) { + if (isArrayLike(input) && input.length > offset) { + return input[input.length - 1 - offset]; + } +} +exports.last = last; +function isArrayLike(input) { + return !!(input && typeof input.length === 'number'); +} +function toLinesWithContent(input, trimmed = true, separator = '\n') { + return input.split(separator) + .reduce((output, line) => { + const lineContent = trimmed ? line.trim() : line; + if (lineContent) { + output.push(lineContent); + } + return output; + }, []); +} +exports.toLinesWithContent = toLinesWithContent; +function forEachLineWithContent(input, callback) { + return toLinesWithContent(input, true).map(line => callback(line)); +} +exports.forEachLineWithContent = forEachLineWithContent; +function folderExists(path) { + return file_exists_1.exists(path, file_exists_1.FOLDER); +} +exports.folderExists = folderExists; +/** + * Adds `item` into the `target` `Array` or `Set` when it is not already present. + */ +function append(target, item) { + if (Array.isArray(target)) { + if (!target.includes(item)) { + target.push(item); + } + } + else { + target.add(item); + } + return item; +} +exports.append = append; +function remove(target, item) { + if (Array.isArray(target)) { + const index = target.indexOf(item); + if (index >= 0) { + target.splice(index, 1); + } + } + else { + target.delete(item); + } + return item; +} +exports.remove = remove; +exports.objectToString = Object.prototype.toString.call.bind(Object.prototype.toString); +function asArray(source) { + return Array.isArray(source) ? source : [source]; +} +exports.asArray = asArray; +function asStringArray(source) { + return asArray(source).map(String); +} +exports.asStringArray = asStringArray; +function asNumber(source, onNaN = 0) { + if (source == null) { + return onNaN; + } + const num = parseInt(source, 10); + return isNaN(num) ? onNaN : num; +} +exports.asNumber = asNumber; +//# sourceMappingURL=util.js.map \ No newline at end of file diff --git a/Client/node_modules/simple-git/src/lib/utils/util.js.map b/Client/node_modules/simple-git/src/lib/utils/util.js.map new file mode 100644 index 000000000..7709642c9 --- /dev/null +++ b/Client/node_modules/simple-git/src/lib/utils/util.js.map @@ -0,0 +1 @@ +{"version":3,"file":"util.js","sourceRoot":"","sources":["util.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AAG/C,MAAM,IAAI,GAA6B,GAAG,EAAE;AACnD,CAAC,CAAC;AADW,QAAA,IAAI,QACf;AAEF;;;GAGG;AACH,SAAgB,UAAU,CAAqB,MAAe;IAC3D,OAAO,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAI,CAAC;AACvD,CAAC;AAFD,gCAEC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAAqB,MAAe;IAC/D,OAAO,CAAC,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,YAAI,CAAC,CAAC;AAC5D,CAAC;AAFD,wCAEC;AAED,SAAgB,OAAO,CAAC,KAAa,EAAE,IAAY;IAChD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,KAAK,IAAI,CAAC,EAAE;QACb,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;KACrB;IAED,OAAO;QACJ,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;QACtB,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;KACzB,CAAC;AACL,CAAC;AAVD,0BAUC;AAID,SAAgB,KAAK,CAAC,KAAyB,EAAE,MAAM,GAAG,CAAC;IACxD,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClF,CAAC;AAFD,sBAEC;AAKD,SAAgB,IAAI,CAAC,KAAc,EAAE,MAAM,GAAG,CAAC;IAC5C,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE;QAC9C,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;KAC1C;AACJ,CAAC;AAJD,oBAIC;AAID,SAAS,WAAW,CAAC,KAAU;IAC5B,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;AACxD,CAAC;AAED,SAAgB,kBAAkB,CAAC,KAAa,EAAE,OAAO,GAAG,IAAI,EAAE,SAAS,GAAG,IAAI;IAC/E,OAAO,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;SACzB,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACjD,IAAI,WAAW,EAAE;YACd,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC3B;QACD,OAAO,MAAM,CAAC;IACjB,CAAC,EAAE,EAAc,CAAC,CAAC;AACzB,CAAC;AATD,gDASC;AAID,SAAgB,sBAAsB,CAAI,KAAa,EAAE,QAAoC;IAC1F,OAAO,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC;AAFD,wDAEC;AAED,SAAgB,YAAY,CAAC,IAAY;IACtC,OAAO,oBAAM,CAAC,IAAI,EAAE,oBAAM,CAAC,CAAC;AAC/B,CAAC;AAFD,oCAEC;AAED;;GAEG;AACH,SAAgB,MAAM,CAAI,MAAoB,EAAE,IAAO;IACpD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpB;KACH;SAAM;QACJ,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACnB;IACD,OAAO,IAAI,CAAC;AACf,CAAC;AATD,wBASC;AAED,SAAgB,MAAM,CAAI,MAAoB,EAAE,IAAO;IACpD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACxB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,KAAK,IAAI,CAAC,EAAE;YACb,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAC1B;KACH;SAAM;QACJ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KACtB;IACD,OAAO,IAAI,CAAC;AACf,CAAC;AAVD,wBAUC;AAEY,QAAA,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAA2B,CAAC;AAEvH,SAAgB,OAAO,CAAI,MAAe;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACpD,CAAC;AAFD,0BAEC;AAED,SAAgB,aAAa,CAAI,MAAe;IAC7C,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAFD,sCAEC;AAED,SAAgB,QAAQ,CAAC,MAAiC,EAAE,KAAK,GAAG,CAAC;IAClE,IAAI,MAAM,IAAI,IAAI,EAAE;QACjB,OAAO,KAAK,CAAC;KACf;IAED,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACnC,CAAC;AAPD,4BAOC"} \ No newline at end of file diff --git a/Client/node_modules/simple-git/typings/errors.d.ts b/Client/node_modules/simple-git/typings/errors.d.ts new file mode 100644 index 000000000..3159b7154 --- /dev/null +++ b/Client/node_modules/simple-git/typings/errors.d.ts @@ -0,0 +1,5 @@ + +export * from '../src/lib/errors/git-error'; +export * from '../src/lib/errors/git-construct-error'; +export * from '../src/lib/errors/git-response-error'; +export * from '../src/lib/errors/task-configuration-error'; diff --git a/Client/node_modules/simple-git/typings/index.d.ts b/Client/node_modules/simple-git/typings/index.d.ts new file mode 100644 index 000000000..fc284f2b3 --- /dev/null +++ b/Client/node_modules/simple-git/typings/index.d.ts @@ -0,0 +1,11 @@ +import { SimpleGitFactory } from './simple-git'; + +export * from './simple-git'; +export * from './errors'; +export * from './response'; +export * from './types'; + +export declare const gitP: SimpleGitFactory; + +declare const simpleGit: SimpleGitFactory; +export default simpleGit; diff --git a/Client/node_modules/simple-git/typings/response.d.ts b/Client/node_modules/simple-git/typings/response.d.ts new file mode 100644 index 000000000..8f3f4e69e --- /dev/null +++ b/Client/node_modules/simple-git/typings/response.d.ts @@ -0,0 +1,453 @@ +import { DefaultLogFields } from '../src/lib/tasks/log'; + +export interface BranchSummaryBranch { + current: boolean; + name: string; + commit: string; + label: string; +} + +export interface BranchSummary { + detached: boolean; + current: string; + all: string[]; + branches: { + [key: string]: BranchSummaryBranch; + }; +} + +/** + * Represents the successful deletion of a single branch + */ +export interface BranchSingleDeleteSuccess { + branch: string; + hash: string; + success: true; +} + +/** + * Represents the failure to delete a single branch + */ +export interface BranchSingleDeleteFailure { + branch: string; + hash: null; + success: false; +} + +export type BranchSingleDeleteResult = BranchSingleDeleteFailure | BranchSingleDeleteSuccess; + +/** + * Represents the status of having deleted a batch of branches + */ +export interface BranchMultiDeleteResult { + /** + * All branches included in the response + */ + all: BranchSingleDeleteResult[]; + + /** + * Branches mapped by their branch name + */ + branches: { [branchName: string]: BranchSingleDeleteResult }; + + /** + * Array of responses that are in error + */ + errors: BranchSingleDeleteResult[]; + + /** + * Flag showing whether all branches were deleted successfully + */ + readonly success: boolean; +} + +export interface CleanSummary { + readonly dryRun: boolean; + paths: string[]; + files: string[]; + folders: string[]; +} + +export interface CommitResult { + author: null | { + email: string; + name: string; + }; + branch: string; + commit: string; + root: boolean; + summary: { + changes: number; + insertions: number; + deletions: number; + }; +} + +/** + * Represents the current git configuration, as defined by the output from `git log` + */ +export interface ConfigListSummary { + + /** + * All configuration settings, where local/user settings override user/global settings + * the overridden value will appear in this object. + */ + readonly all: ConfigValues; + + /** + * The file paths configuration was read from + */ + files: string[]; + + /** + * The `ConfigValues` for each of the `files`, use this object to determine + * local repo, user and global settings. + */ + values: { [fileName: string]: ConfigValues }; +} + +/** + * Represents the map of configuration settings + */ +export interface ConfigValues { + [key: string]: string | string[]; +} + +export interface DiffResultTextFile { + file: string; + changes: number; + insertions: number; + deletions: number; + binary: boolean; +} + +export interface DiffResultBinaryFile { + file: string; + before: number; + after: number; + binary: boolean; +} + +export interface DiffResult { + /** The total number of files changed as reported in the summary line */ + changed: number; + + /** When present in the diff, lists the details of each file changed */ + files: Array; + + /** The number of files changed with insertions */ + insertions: number; + + /** The number of files changed with deletions */ + deletions: number; +} + +export interface FetchResult { + raw: string; + remote: string | null; + branches: { + name: string; + tracking: string; + }[]; + tags: { + name: string; + tracking: string; + }[]; +} + +/** + * The `InitResult` is returned when (re)initialising a git repo. + */ +export interface InitResult { + /** + * Boolean representing whether the `--bare` option was used + */ + readonly bare: boolean; + + /** + * Boolean representing whether the repo already existed (re-initialised rather than initialised) + */ + readonly existing: boolean; + + /** + * The path used when initialising + */ + readonly path: string; + + /** + * The git configuration directory - for a bare repo this is the same as `path`, in non-bare repos + * this will usually be a sub-directory with the name `.git` (or value of the `$GIT_DIR` environment + * variable). + */ + readonly gitDir: string; +} + +/** + * A parsed response summary for calls to `git mv` + */ +export interface MoveResult { + /** + * Array of files moved + */ + moves: Array<{from: string, to: string}>; +} + +export interface PullDetailFileChanges { + [fileName: string]: number; +} + +export interface PullDetailSummary { + changes: number; + insertions: number; + deletions: number; +} + +export interface PullDetail { + /** Array of all files that are referenced in the pull */ + files: string[]; + + /** Map of file names to the number of insertions in that file */ + insertions: PullDetailFileChanges; + + /** Map of file names to the number of deletions in that file */ + deletions: PullDetailFileChanges; + + summary: PullDetailSummary; + + /** Array of file names that have been created */ + created: string[]; + + /** Array of file names that have been deleted */ + deleted: string[]; +} + +export interface PullResult extends PullDetail, RemoteMessageResult { +} + +/** + * Represents file name changes in a StatusResult + */ +export interface StatusResultRenamed { + from: string; + to: string; +} + +export interface FileStatusResult { + + /** Original location of the file, when the file has been moved */ + from?: string + + /** Path of the file */ + path: string; + + /** First digit of the status code of the file, e.g. 'M' = modified. + Represents the status of the index if no merge conflicts, otherwise represents + status of one side of the merge. */ + index: string; + + /** Second digit of the status code of the file. Represents status of the working directory + if no merge conflicts, otherwise represents status of other side of a merge. */ + working_dir: string; +} + +/** + * The StatusResult is returned for calls to `git.status()`, represents the state of the + * working directory. + */ +export interface StatusResult { + not_added: string[]; + conflicted: string[]; + created: string[]; + deleted: string[]; + modified: string[]; + renamed: StatusResultRenamed[]; + staged: string[]; + files: FileStatusResult[]; + ahead: number; + behind: number; + current: string | null; + tracking: string | null; + + /** + * Gets whether this represents a clean working branch. + */ + isClean(): boolean; +} + +/** + * Response retrieved when using the `git.tags` method + */ +export interface TagResult { + /** + * All tag names + */ + all: string[]; + + /** + * The semver latest tag name or `undefined` when no tags are named in the response + */ + latest: string | undefined; +} + +/** + * The ListLogLine represents a single entry in the `git.log`, the properties on the object + * are mixed in depending on the names used in the format (see `DefaultLogFields`), but some + * properties are dependent on the command used. + */ +export interface ListLogLine { + /** + * When using a `--stat=4096` or `--shortstat` options in the `git.log` or `git.stashList`, + * each entry in the `ListLogSummary` will also have a `diff` property representing as much + * detail as was given in the response. + */ + diff?: DiffResult; +} + +export interface LogResult { + all: ReadonlyArray; + total: number; + latest: (T & ListLogLine) | null; +} + +/** + * Where the file was deleted, if there is a modify/delete conflict + */ +export interface MergeConflictDeletion { + deleteRef: string; +} + +/** + * Represents a single file with conflicts in the MergeSummary + */ +export interface MergeConflict { + + /** + * Type of conflict + */ + reason: string; + + /** + * Path to file + */ + file: string | null; + + /** + * Additional detail for the specific type of conflict + */ + meta?: MergeConflictDeletion; +} + +export type MergeResultStatus = 'success' | string; + +export interface MergeDetail { + conflicts: MergeConflict[]; + merges: string[]; + result: MergeResultStatus; + readonly failed: boolean; +} + +export type MergeResult = PullResult & MergeDetail; + +/** + * + */ +export interface PushResultPushedItem { + local: string; + remote: string; + + readonly deleted: boolean; + readonly tag: boolean; + readonly branch: boolean; + readonly new: boolean; + readonly alreadyUpdated: boolean; +} + +export interface RemoteMessagesObjectEnumeration { + enumerating: number, + counting: number, + compressing: number, + total: { + count: number, + delta: number, + }, + reused: { + count: number, + delta: number, + }, + packReused: number, +} + +export interface RemoteMessages { + all: string[]; + objects?: RemoteMessagesObjectEnumeration; +} + +export interface PushResultRemoteMessages extends RemoteMessages { + pullRequestUrl?: string; + vulnerabilities?: { + count: number; + summary: string; + url: string; + }; +} + +export interface RemoteMessageResult { + remoteMessages: T; +} + +export interface PushResultBranchUpdate { + head: { + local: string; + remote: string; + }; + hash: { + from: string; + to: string; + }; +} + +export interface PushDetail { + repo?: string; + ref?: { + local: string; + }; + pushed: PushResultPushedItem[]; + branch?: { + local: string; + remote: string; + remoteName: string; + }; + update?: PushResultBranchUpdate; +} + +export interface PushResult extends PushDetail, RemoteMessageResult { +} + +/** + * @deprecated + * For consistent naming, please use `CommitResult` instead of `CommitSummary` + */ +export type CommitSummary = CommitResult; + +/** + * @deprecated + * For consistent naming, please use `MergeResult` instead of `MergeSummary` + */ +export type MergeSummary = MergeResult; + +/** + * @deprecated to aid consistent naming, please use `BranchSingleDeleteResult` instead of `BranchDeletionSummary`. + */ +export type BranchDeletionSummary = BranchSingleDeleteResult; + +/** + * @deprecated to aid consistent naming, please use `BranchMultiDeleteResult` instead of `BranchDeletionBatchSummary`. + */ +export type BranchDeletionBatchSummary = BranchMultiDeleteResult; + +export type MoveSummary = MoveResult; + +/** + * @deprecated to aid consistent naming, please use `LogResult` instead of `ListLogSummary`. + */ +export type ListLogSummary = LogResult; diff --git a/Client/node_modules/simple-git/typings/simple-git.d.ts b/Client/node_modules/simple-git/typings/simple-git.d.ts new file mode 100644 index 000000000..d39f4ce41 --- /dev/null +++ b/Client/node_modules/simple-git/typings/simple-git.d.ts @@ -0,0 +1,621 @@ +import * as resp from './response'; +import * as types from './types'; +import { GitError } from './errors'; + +export interface SimpleGitFactory { + (baseDir?: string, options?: Partial): SimpleGit; + + (baseDir: string): SimpleGit; + + (options: Partial): SimpleGit; +} + +type Response = SimpleGit & Promise; + +export interface SimpleGit { + /** + * Adds one or more files to source control + */ + add(files: string | string[], callback?: types.SimpleGitTaskCallback): Response; + + /** + * Add an annotated tag to the head of the current branch + */ + addAnnotatedTag(tagName: string, tagMessage: string, callback?: types.SimpleGitTaskCallback<{ name: string }>): Response<{ name: string }>; + + /** + * Add config to local git instance for the specified `key` (eg: user.name) and value (eg: 'your name'). + * Set `append` to true to append to rather than overwrite the key + */ + addConfig(key: string, value: string, append?: boolean, callback?: types.SimpleGitTaskCallback): Response; + + addConfig(key: string, value: string, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Applies a patch to the repo + */ + applyPatch(patches: string | string[], options: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + applyPatch(patches: string | string[], callback?: types.SimpleGitTaskCallback): Response; + + /** + * Configuration values visible to git in the current working directory + */ + listConfig(callback?: types.SimpleGitTaskCallback): Response; + + /** + * Adds a remote to the list of remotes. + * + * - `remoteName` Name of the repository - eg "upstream" + * - `remoteRepo` Fully qualified SSH or HTTP(S) path to the remote repo + * - `options` Optional additional settings permitted by the `git remote add` command, merged into the command prior to the repo name and remote url + */ + addRemote(remoteName: string, remoteRepo: string, options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + addRemote(remoteName: string, remoteRepo: string, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Add a lightweight tag to the head of the current branch + */ + addTag(name: string, callback?: types.SimpleGitTaskCallback<{ name: string }>): Response<{ name: string }>; + + /** + * Equivalent to `catFile` but will return the native `Buffer` of content from the git command's stdout. + */ + binaryCatFile(options: string[], callback?: types.SimpleGitTaskCallback): Response; + + /** + * List all branches + */ + branch(options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + /** + * List of local branches + */ + branchLocal(callback?: types.SimpleGitTaskCallback): Response; + + /** + * Returns a list of objects in a tree based on commit hash. + * Passing in an object hash returns the object's content, size, and type. + * + * Passing "-p" will instruct cat-file to determine the object type, and display its formatted contents. + * + * @see https://git-scm.com/docs/git-cat-file + */ + catFile(options: string[], callback?: types.SimpleGitTaskCallback): Response; + + catFile(callback?: types.SimpleGitTaskCallback): Response; + + /** + * Check if a pathname or pathnames are excluded by .gitignore + * + */ + checkIgnore(pathNames: string[], callback?: types.SimpleGitTaskCallback): Response; + + checkIgnore(path: string, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Validates that the current working directory is a valid git repo file path. + * + * To make a more specific assertion of the repo, add the `action` argument: + * + * - `bare` to validate that the working directory is inside a bare repo. + * - `root` to validate that the working directory is the root of a repo. + * - `tree` (default value when omitted) to simply validate that the working + * directory is the descendent of a repo + */ + checkIsRepo(action?: types.CheckRepoActions, callback?: types.SimpleGitTaskCallback): Response; + + checkIsRepo(callback?: types.SimpleGitTaskCallback): Response; + + /** + * Checkout a tag or revision, any number of additional arguments can be passed to the `git checkout` command + * by supplying either a string or array of strings as the `what` parameter. + */ + checkout(what: string, options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + checkout(what: string, callback?: types.SimpleGitTaskCallback): Response; + + checkout(options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Checkout a remote branch. + * + * - branchName name of branch. + * - startPoint (e.g origin/development). + */ + checkoutBranch(branchName: string, startPoint: string, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Internally uses pull and tags to get the list of tags then checks out the latest tag. + */ + checkoutLatestTag(branchName: string, startPoint: string, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Checkout a local branch + */ + checkoutLocalBranch(branchName: string, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Deletes unwanted content from the local repo - when supplying the first argument as + * an array of `CleanOptions`, the array must include one of `CleanOptions.FORCE` or + * `CleanOptions.DRY_RUN`. + * + * eg: + * + * ```typescript + await git.clean(CleanOptions.FORCE); + await git.clean(CleanOptions.DRY_RUN + CleanOptions.RECURSIVE); + await git.clean(CleanOptions.FORCE, ['./path']); + await git.clean(CleanOptions.IGNORED + CleanOptions.FORCE, {'./path': null}); + * ``` + */ + clean(args: types.CleanOptions[], options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + clean(mode: types.CleanMode | string, options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + clean(mode: types.CleanMode | string, callback?: types.SimpleGitTaskCallback): Response; + + clean(options?: types.TaskOptions): Response; + + clean(callback?: types.SimpleGitTaskCallback): Response; + + /** + * Clears the queue of pending commands and returns the wrapper instance for chaining. + */ + clearQueue(): this; + + /** + * Clone a repository into a new directory. + * + * - repoPath repository url to clone e.g. https://github.com/steveukx/git-js.git + * - localPath local folder path to clone to. + * - options supported by [git](https://git-scm.com/docs/git-clone). + */ + clone(repoPath: string, localPath: string, options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + clone(repoPath: string, options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Commits changes in the current working directory - when specific file paths are supplied, only changes on those + * files will be committed. + */ + commit( + message: string | string[], + files?: string | string[], + options?: types.Options, + callback?: types.SimpleGitTaskCallback): Response; + + commit( + message: string | string[], + options?: types.TaskOptions, + callback?: types.SimpleGitTaskCallback): Response; + + commit( + message: string | string[], + files?: string | string[], + callback?: types.SimpleGitTaskCallback): Response; + + commit( + message: string | string[], + callback?: types.SimpleGitTaskCallback): Response; + + /** + * Sets the path to a custom git binary, should either be `git` when there is an installation of git available on + * the system path, or a fully qualified path to the executable. + */ + customBinary(command: string): this; + + /** + * Sets the working directory of the subsequent commands. + */ + cwd(workingDirectory: path, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Delete one local branch. Supply the branchName as a string to return a + * single `BranchDeletionSummary` instances. + * + * - branchName name of branch + * - forceDelete (optional, defaults to false) set to true to forcibly delete unmerged branches + */ + deleteLocalBranch(branchName: string, forceDelete?: boolean, callback?: types.SimpleGitTaskCallback): Response; + + deleteLocalBranch(branchName: string, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Delete one or more local branches. Supply the branchName as a string to return a + * single `BranchDeletionSummary` or as an array of branch names to return an array of + * `BranchDeletionSummary` instances. + * + * - branchNames name of branch or array of branch names + * - forceDelete (optional, defaults to false) set to true to forcibly delete unmerged branches + */ + deleteLocalBranches(branchNames: string[], forceDelete?: boolean, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Get the diff of the current repo compared to the last commit with a set of options supplied as a string. + */ + diff(options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Gets a summary of the diff for files in the repo, uses the `git diff --stat` format to calculate changes. + * + * in order to get staged (only): `--cached` or `--staged`. + */ + diffSummary(command: string | number, options: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + diffSummary(command: string | number, callback?: types.SimpleGitTaskCallback): Response; + + diffSummary(options: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + diffSummary(callback?: types.SimpleGitTaskCallback): Response; + + /** + * Sets an environment variable for the spawned child process, either supply both a name and value as strings or + * a single object to entirely replace the current environment variables. + * + * @param {string|Object} name + * @param {string} [value] + */ + env(name: string, value: string): this; + + env(env: object): this; + + /** + * Updates the local working copy database with changes from the default remote repo and branch. + */ + fetch(remote: string, branch: string, options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + fetch(remote: string, branch: string, callback?: types.SimpleGitTaskCallback): Response; + + fetch(remote: string, options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + fetch(options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + fetch(callback?: types.SimpleGitTaskCallback): Response; + + /** + * Gets the currently available remotes, setting the optional verbose argument to true includes additional + * detail on the remotes themselves. + */ + getRemotes(callback?: types.SimpleGitTaskCallback): Response; + + getRemotes(verbose?: false, callback?: types.SimpleGitTaskCallback): Response; + + getRemotes(verbose: true, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Compute object ID from a file + */ + hashObject(path: string, callback?: types.SimpleGitTaskCallback): Response; + + hashObject(path: string, write ?: boolean, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Initialize a git repo + */ + init(bare: boolean, options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + init(bare: boolean, callback?: types.SimpleGitTaskCallback): Response; + + init(options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + init(callback?: types.SimpleGitTaskCallback): Response; + + /** + * List remotes by running the `ls-remote` command with any number of arbitrary options + * in either array of object form. + */ + listRemote(args?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Show commit logs from `HEAD` to the first commit. + * If provided between `options.from` and `options.to` tags or branch. + * + * You can provide `options.file`, which is the path to a file in your repository. Then only this file will be considered. + * + * To use a custom splitter in the log format, set `options.splitter` to be the string the log should be split on. + * + * By default the following fields will be part of the result: + * `hash`: full commit hash + * `date`: author date, ISO 8601-like format + * `message`: subject + ref names, like the --decorate option of git-log + * `author_name`: author name + * `author_email`: author mail + * You can specify `options.format` to be an mapping from key to a format option like `%H` (for commit hash). + * The fields specified in `options.format` will be the fields in the result. + * + * Options can also be supplied as a standard options object for adding custom properties supported by the git log command. + * For any other set of options, supply options as an array of strings to be appended to the git log command. + * + * @returns Response + * + * @see https://git-scm.com/docs/git-log + */ + log(options?: types.TaskOptions | types.LogOptions, callback?: types.SimpleGitTaskCallback>): Response>; + + /** + * Runs a merge, `options` can be either an array of arguments + * supported by the [`git merge`](https://git-scm.com/docs/git-merge) + * or an options object. + * + * Conflicts during the merge result in an error response, + * the response type whether it was an error or success will be a MergeSummary instance. + * When successful, the MergeSummary has all detail from a the PullSummary + * + * @see https://github.com/steveukx/git-js/blob/master/src/responses/MergeSummary.js + * @see https://github.com/steveukx/git-js/blob/master/src/responses/PullSummary.js + */ + merge(options: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Merges from one branch to another, equivalent to running `git merge ${from} $[to}`, the `options` argument can + * either be an array of additional parameters to pass to the command or null / omitted to be ignored. + * + * - from branch to merge from. + * - to branch to merge to. + */ + mergeFromTo(from: string, to: string, options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + mergeFromTo(from: string, to: string, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Mirror a git repo + * + * Equivalent to `git.clone(repoPath, localPath, ['--mirror'])`, `clone` allows + * for additional task options. + */ + mirror(repoPath: string, localPath: string, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Moves one or more files to a new destination. + * + * @see https://git-scm.com/docs/git-mv + */ + mv(from: string | string[], to: string, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Sets a handler function to be called whenever a new child process is created, the handler function will be called + * with the name of the command being run and the stdout & stderr streams used by the ChildProcess. + * + * @example + * require('simple-git') + * .outputHandler(function (command, stdout, stderr) { + * stdout.pipe(process.stdout); + * }) + * .checkout('https://github.com/user/repo.git'); + * + * @see https://nodejs.org/api/child_process.html#child_process_class_childprocess + * @see https://nodejs.org/api/stream.html#stream_class_stream_readable + */ + outputHandler(handler: types.outputHandler | void): this; + + /** + * Fetch from and integrate with another repository or a local branch. + */ + pull(remote?: string, branch?: string, options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + pull(options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + pull(callback?: types.SimpleGitTaskCallback): Response; + + /** + * Update remote refs along with associated objects. + */ + push(remote?: string, branch?: string, options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + push(options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + push(callback?: types.SimpleGitTaskCallback): Response; + + /** + * Pushes the current tag changes to a remote which can be either a URL or named remote. When not specified uses the + * default configured remote spec. + */ + pushTags(remote: string, options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + pushTags(options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + pushTags(callback?: types.SimpleGitTaskCallback): Response; + + /** + * Executes any command against the git binary. + */ + raw(commands: string | string[] | types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + raw(options: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + raw(...commands: string[]): Response; + + // leading varargs with trailing options/callback + raw(a: string, options: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + raw(a: string, b: string, options: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + raw(a: string, b: string, c: string, options: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + raw(a: string, b: string, c: string, d: string, options: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + raw(a: string, b: string, c: string, d: string, e: string, options: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + // leading varargs with trailing callback + raw(a: string, callback?: types.SimpleGitTaskCallback): Response; + + raw(a: string, b: string, callback?: types.SimpleGitTaskCallback): Response; + + raw(a: string, b: string, c: string, callback?: types.SimpleGitTaskCallback): Response; + + raw(a: string, b: string, c: string, d: string, callback?: types.SimpleGitTaskCallback): Response; + + raw(a: string, b: string, c: string, d: string, e: string, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Rebases the current working copy. Options can be supplied either as an array of string parameters + * to be sent to the `git rebase` command, or a standard options object. + */ + rebase(options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + rebase(callback?: types.SimpleGitTaskCallback): Response; + + /** + * Call any `git remote` function with arguments passed as an array of strings. + */ + remote(options: string[], callback?: types.SimpleGitTaskCallback): Response; + + /** + * Removes an entry from the list of remotes. + * + * - remoteName Name of the repository - eg "upstream" + */ + removeRemote(remoteName: string, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Reset a repo. Called without arguments this is a soft reset for the whole repo, + * for explicitly setting the reset mode, supply the first argument as one of the + * supported reset modes. + * + * Trailing options argument can be either a string array, or an extension of the + * ResetOptions, use this argument for supplying arbitrary additional arguments, + * such as restricting the pathspec. + * + * ```typescript + // equivalent to each other + simpleGit().reset(ResetMode.HARD, ['--', 'my-file.txt']); + simpleGit().reset(['--hard', '--', 'my-file.txt']); + simpleGit().reset(ResetMode.HARD, {'--': null, 'my-file.txt': null}); + simpleGit().reset({'--hard': null, '--': null, 'my-file.txt': null}); + ``` + */ + reset(mode: types.ResetMode, options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + reset(mode: types.ResetMode, callback?: types.SimpleGitTaskCallback): Response; + + reset(options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Revert one or more commits in the local working copy + * + * - commit The commit to revert. Can be any hash, offset (eg: `HEAD~2`) or range (eg: `master~5..master~2`) + */ + revert(commit: String, options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + revert(commit: String, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Passes the supplied options to `git rev-parse` and returns the string response. Options can be either a + * string array or `Options` object of options compatible with the [rev-parse](https://git-scm.com/docs/git-rev-parse) + * + * Example uses of `rev-parse` include converting friendly commit references (ie: branch names) to SHA1 hashes + * and retrieving meta details about the current repo (eg: the root directory, and whether it was created as + * a bare repo). + */ + revparse(option: string, options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + revparse(options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Removes the named files from source control. + */ + rm(paths: string | string[], callback?: types.SimpleGitTaskCallback): Response; + + /** + * Removes the named files from source control but keeps them on disk rather than deleting them entirely. To + * completely remove the files, use `rm`. + */ + rmKeepLocal(paths: string | string[], callback?: types.SimpleGitTaskCallback): Response; + + /** + * Show various types of objects, for example the file at a certain commit + */ + show(option: string | types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + show(callback?: types.SimpleGitTaskCallback): Response; + + /** + * @deprecated + * + * From version 2.7.0, use of `silent` is deprecated in favour of using the `debug` library, this method will + * be removed in version 3.x. + * + * Please see the [readme](https://github.com/steveukx/git-js/blob/master/readme.md#enable-logging) for more details. + * + * Disables/enables the use of the console for printing warnings and errors, by default messages are not shown in + * a production environment. + * + * @param {boolean} silence + */ + silent(silence?: boolean): this; + + /** + * Stash the local repo + */ + stash(options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + stash(callback?: types.SimpleGitTaskCallback): Response; + + /** + * List the stash(s) of the local repo + */ + stashList(options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + stashList(callback?: types.SimpleGitTaskCallback): Response; + + /** + * Show the working tree status. + */ + status(options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + status(callback?: types.SimpleGitTaskCallback): Response; + + /** + * Call any `git submodule` function with arguments passed as an array of strings. + */ + subModule(options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Add a submodule + */ + submoduleAdd(repo: string, path: string, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Initialise submodules + */ + submoduleInit(moduleName: string, options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + submoduleInit(moduleName: string, callback?: types.SimpleGitTaskCallback): Response; + + submoduleInit(options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + submoduleInit(callback?: types.SimpleGitTaskCallback): Response; + + /** + * Update submodules + */ + submoduleUpdate(moduleName: string, options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + submoduleUpdate(moduleName: string, callback?: types.SimpleGitTaskCallback): Response; + + submoduleUpdate(options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + submoduleUpdate(callback?: types.SimpleGitTaskCallback): Response; + + /** + * List all tags. When using git 2.7.0 or above, include an options object with `"--sort": "property-name"` to + * sort the tags by that property instead of using the default semantic versioning sort. + * + * Note, supplying this option when it is not supported by your Git version will cause the operation to fail. + */ + tag(options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + /** + * Gets a list of tagged versions. + */ + tags(options?: types.TaskOptions, callback?: types.SimpleGitTaskCallback): Response; + + tags(callback?: types.SimpleGitTaskCallback): Response; + + /** + * Updates repository server info + */ + updateServerInfo(callback?: types.SimpleGitTaskCallback): Response; +} diff --git a/Client/node_modules/simple-git/typings/types.d.ts b/Client/node_modules/simple-git/typings/types.d.ts new file mode 100644 index 000000000..ac9048127 --- /dev/null +++ b/Client/node_modules/simple-git/typings/types.d.ts @@ -0,0 +1,10 @@ +export { RemoteWithoutRefs, RemoteWithRefs } from '../src/lib/responses/GetRemoteSummary'; +export { LogOptions, DefaultLogFields } from '../src/lib/tasks/log'; + +export { outputHandler, Options, SimpleGitOptions, TaskOptions, SimpleGitTaskCallback } from '../src/lib/types'; + +export { CheckRepoActions } from '../src/lib/tasks/check-is-repo'; +export { CleanOptions, CleanMode } from '../src/lib/tasks/clean'; +export { CloneOptions } from '../src/lib/tasks/clone'; +export { ApplyOptions } from '../src/lib/tasks/apply-patch'; +export { ResetOptions, ResetMode } from '../src/lib/tasks/reset'; diff --git a/Client/node_modules/universal-user-agent/LICENSE.md b/Client/node_modules/universal-user-agent/LICENSE.md new file mode 100644 index 000000000..f105ab0c0 --- /dev/null +++ b/Client/node_modules/universal-user-agent/LICENSE.md @@ -0,0 +1,7 @@ +# [ISC License](https://spdx.org/licenses/ISC) + +Copyright (c) 2018, Gregor Martynus (https://github.com/gr2m) + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/Client/node_modules/universal-user-agent/README.md b/Client/node_modules/universal-user-agent/README.md new file mode 100644 index 000000000..170ae0c90 --- /dev/null +++ b/Client/node_modules/universal-user-agent/README.md @@ -0,0 +1,25 @@ +# universal-user-agent + +> Get a user agent string in both browser and node + +[![@latest](https://img.shields.io/npm/v/universal-user-agent.svg)](https://www.npmjs.com/package/universal-user-agent) +[![Build Status](https://github.com/gr2m/universal-user-agent/workflows/Test/badge.svg)](https://github.com/gr2m/universal-user-agent/actions?query=workflow%3ATest+branch%3Amaster) +[![Greenkeeper](https://badges.greenkeeper.io/gr2m/universal-user-agent.svg)](https://greenkeeper.io/) + +```js +const { getUserAgent } = require("universal-user-agent"); +// or import { getUserAgent } from "universal-user-agent"; + +const userAgent = getUserAgent(); +// userAgent will look like this +// in browser: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:61.0) Gecko/20100101 Firefox/61.0" +// in node: Node.js/v8.9.4 (macOS High Sierra; x64) +``` + +## Credits + +The Node implementation was originally inspired by [default-user-agent](https://www.npmjs.com/package/default-user-agent). + +## License + +[ISC](LICENSE.md) diff --git a/Client/node_modules/universal-user-agent/dist-node/index.js b/Client/node_modules/universal-user-agent/dist-node/index.js new file mode 100644 index 000000000..16c05dc7f --- /dev/null +++ b/Client/node_modules/universal-user-agent/dist-node/index.js @@ -0,0 +1,18 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function getUserAgent() { + if (typeof navigator === "object" && "userAgent" in navigator) { + return navigator.userAgent; + } + + if (typeof process === "object" && "version" in process) { + return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; + } + + return ""; +} + +exports.getUserAgent = getUserAgent; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/universal-user-agent/dist-node/index.js.map b/Client/node_modules/universal-user-agent/dist-node/index.js.map new file mode 100644 index 000000000..6a435c465 --- /dev/null +++ b/Client/node_modules/universal-user-agent/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/index.js"],"sourcesContent":["export function getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n return \"\";\n}\n"],"names":["getUserAgent","navigator","userAgent","process","version","substr","platform","arch"],"mappings":";;;;AAAO,SAASA,YAAT,GAAwB;AAC3B,MAAI,OAAOC,SAAP,KAAqB,QAArB,IAAiC,eAAeA,SAApD,EAA+D;AAC3D,WAAOA,SAAS,CAACC,SAAjB;AACH;;AACD,MAAI,OAAOC,OAAP,KAAmB,QAAnB,IAA+B,aAAaA,OAAhD,EAAyD;AACrD,WAAQ,WAAUA,OAAO,CAACC,OAAR,CAAgBC,MAAhB,CAAuB,CAAvB,CAA0B,KAAIF,OAAO,CAACG,QAAS,KAAIH,OAAO,CAACI,IAAK,GAAlF;AACH;;AACD,SAAO,4BAAP;AACH;;;;"} \ No newline at end of file diff --git a/Client/node_modules/universal-user-agent/dist-src/index.js b/Client/node_modules/universal-user-agent/dist-src/index.js new file mode 100644 index 000000000..79d75d395 --- /dev/null +++ b/Client/node_modules/universal-user-agent/dist-src/index.js @@ -0,0 +1,9 @@ +export function getUserAgent() { + if (typeof navigator === "object" && "userAgent" in navigator) { + return navigator.userAgent; + } + if (typeof process === "object" && "version" in process) { + return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; + } + return ""; +} diff --git a/Client/node_modules/universal-user-agent/dist-types/index.d.ts b/Client/node_modules/universal-user-agent/dist-types/index.d.ts new file mode 100644 index 000000000..a7bb1c440 --- /dev/null +++ b/Client/node_modules/universal-user-agent/dist-types/index.d.ts @@ -0,0 +1 @@ +export declare function getUserAgent(): string; diff --git a/Client/node_modules/universal-user-agent/dist-web/index.js b/Client/node_modules/universal-user-agent/dist-web/index.js new file mode 100644 index 000000000..c550c02f3 --- /dev/null +++ b/Client/node_modules/universal-user-agent/dist-web/index.js @@ -0,0 +1,12 @@ +function getUserAgent() { + if (typeof navigator === "object" && "userAgent" in navigator) { + return navigator.userAgent; + } + if (typeof process === "object" && "version" in process) { + return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; + } + return ""; +} + +export { getUserAgent }; +//# sourceMappingURL=index.js.map diff --git a/Client/node_modules/universal-user-agent/dist-web/index.js.map b/Client/node_modules/universal-user-agent/dist-web/index.js.map new file mode 100644 index 000000000..b9d9d79b0 --- /dev/null +++ b/Client/node_modules/universal-user-agent/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/index.js"],"sourcesContent":["export function getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n return \"\";\n}\n"],"names":[],"mappings":"AAAO,SAAS,YAAY,GAAG;AAC/B,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,WAAW,IAAI,SAAS,EAAE;AACnE,QAAQ,OAAO,SAAS,CAAC,SAAS,CAAC;AACnC,KAAK;AACL,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,SAAS,IAAI,OAAO,EAAE;AAC7D,QAAQ,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7F,KAAK;AACL,IAAI,OAAO,4BAA4B,CAAC;AACxC;;;;"} \ No newline at end of file diff --git a/Client/node_modules/universal-user-agent/package.json b/Client/node_modules/universal-user-agent/package.json new file mode 100644 index 000000000..3c8bc5d1f --- /dev/null +++ b/Client/node_modules/universal-user-agent/package.json @@ -0,0 +1,66 @@ +{ + "_from": "universal-user-agent@^6.0.0", + "_id": "universal-user-agent@6.0.0", + "_inBundle": false, + "_integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "_location": "/universal-user-agent", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "universal-user-agent@^6.0.0", + "name": "universal-user-agent", + "escapedName": "universal-user-agent", + "rawSpec": "^6.0.0", + "saveSpec": null, + "fetchSpec": "^6.0.0" + }, + "_requiredBy": [ + "/@octokit/core", + "/@octokit/endpoint", + "/@octokit/graphql", + "/@octokit/request" + ], + "_resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "_shasum": "3381f8503b251c0d9cd21bc1de939ec9df5480ee", + "_spec": "universal-user-agent@^6.0.0", + "_where": "C:\\Superalgos\\Client\\node_modules\\@octokit\\core", + "bugs": { + "url": "https://github.com/gr2m/universal-user-agent/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Get a user agent string in both browser and node", + "devDependencies": { + "@gr2m/pika-plugin-build-web": "^0.6.0-issue-84.1", + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.1", + "@pika/plugin-ts-standard-pkg": "^0.9.1", + "@types/jest": "^25.1.0", + "jest": "^24.9.0", + "prettier": "^2.0.0", + "semantic-release": "^17.0.5", + "ts-jest": "^26.0.0", + "typescript": "^3.6.2" + }, + "files": [ + "dist-*/", + "bin/" + ], + "homepage": "https://github.com/gr2m/universal-user-agent#readme", + "keywords": [], + "license": "ISC", + "main": "dist-node/index.js", + "module": "dist-web/index.js", + "name": "universal-user-agent", + "pika": true, + "repository": { + "type": "git", + "url": "git+https://github.com/gr2m/universal-user-agent.git" + }, + "sideEffects": false, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "version": "6.0.0" +} diff --git a/Client/package-lock.json b/Client/package-lock.json index 741ecce83..5b4a6ed14 100644 --- a/Client/package-lock.json +++ b/Client/package-lock.json @@ -203,6 +203,147 @@ "@ethersproject/strings": "^5.0.4" } }, + "@kwsites/file-exists": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", + "requires": { + "debug": "^4.1.1" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "@kwsites/promise-deferred": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==" + }, + "@octokit/auth-token": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.4.tgz", + "integrity": "sha512-LNfGu3Ro9uFAYh10MUZVaT7X2CnNm2C8IDQmabx+3DygYIQjs9FwzFAHN/0t6mu5HEPhxcb1XOuxdpY82vCg2Q==", + "requires": { + "@octokit/types": "^6.0.0" + } + }, + "@octokit/core": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.2.4.tgz", + "integrity": "sha512-d9dTsqdePBqOn7aGkyRFe7pQpCXdibSJ5SFnrTr0axevObZrpz3qkWm7t/NjYv5a66z6vhfteriaq4FRz3e0Qg==", + "requires": { + "@octokit/auth-token": "^2.4.4", + "@octokit/graphql": "^4.5.8", + "@octokit/request": "^5.4.12", + "@octokit/types": "^6.0.3", + "before-after-hook": "^2.1.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/endpoint": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.10.tgz", + "integrity": "sha512-9+Xef8nT7OKZglfkOMm7IL6VwxXUQyR7DUSU0LH/F7VNqs8vyd7es5pTfz9E7DwUIx7R3pGscxu1EBhYljyu7Q==", + "requires": { + "@octokit/types": "^6.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/graphql": { + "version": "4.5.8", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.5.8.tgz", + "integrity": "sha512-WnCtNXWOrupfPJgXe+vSmprZJUr0VIu14G58PMlkWGj3cH+KLZEfKMmbUQ6C3Wwx6fdhzVW1CD5RTnBdUHxhhA==", + "requires": { + "@octokit/request": "^5.3.0", + "@octokit/types": "^6.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/openapi-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-2.2.0.tgz", + "integrity": "sha512-274lNUDonw10kT8wHg8fCcUc1ZjZHbWv0/TbAwb0ojhBQqZYc1cQ/4yqTVTtPMDeZ//g7xVEYe/s3vURkRghPg==" + }, + "@octokit/plugin-paginate-rest": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.7.0.tgz", + "integrity": "sha512-+zARyncLjt9b0FjqPAbJo4ss7HOlBi1nprq+cPlw5vu2+qjy7WvlXhtXFdRHQbSL1Pt+bfAKaLADEkkvg8sP8w==", + "requires": { + "@octokit/types": "^6.0.1" + } + }, + "@octokit/plugin-request-log": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.2.tgz", + "integrity": "sha512-oTJSNAmBqyDR41uSMunLQKMX0jmEXbwD1fpz8FG27lScV3RhtGfBa1/BBLym+PxcC16IBlF7KH9vP1BUYxA+Eg==" + }, + "@octokit/plugin-rest-endpoint-methods": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.4.1.tgz", + "integrity": "sha512-+v5PcvrUcDeFXf8hv1gnNvNLdm4C0+2EiuWt9EatjjUmfriM1pTMM+r4j1lLHxeBQ9bVDmbywb11e3KjuavieA==", + "requires": { + "@octokit/types": "^6.1.0", + "deprecation": "^2.3.1" + } + }, + "@octokit/request": { + "version": "5.4.12", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.4.12.tgz", + "integrity": "sha512-MvWYdxengUWTGFpfpefBBpVmmEYfkwMoxonIB3sUGp5rhdgwjXL1ejo6JbgzG/QD9B/NYt/9cJX1pxXeSIUCkg==", + "requires": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.0.0", + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.1", + "once": "^1.4.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/request-error": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.4.tgz", + "integrity": "sha512-LjkSiTbsxIErBiRh5wSZvpZqT4t0/c9+4dOe0PII+6jXR+oj/h66s7E4a/MghV7iT8W9ffoQ5Skoxzs96+gBPA==", + "requires": { + "@octokit/types": "^6.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "@octokit/rest": { + "version": "18.0.12", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.0.12.tgz", + "integrity": "sha512-hNRCZfKPpeaIjOVuNJzkEL6zacfZlBPV8vw8ReNeyUkVvbuCvvrrx8K8Gw2eyHHsmd4dPlAxIXIZ9oHhJfkJpw==", + "requires": { + "@octokit/core": "^3.2.3", + "@octokit/plugin-paginate-rest": "^2.6.2", + "@octokit/plugin-request-log": "^1.0.2", + "@octokit/plugin-rest-endpoint-methods": "4.4.1" + } + }, + "@octokit/types": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.2.1.tgz", + "integrity": "sha512-jHs9OECOiZxuEzxMZcXmqrEO8GYraHF+UzNVH2ACYh8e/Y7YoT+hUf9ldvVd6zIvWv4p3NdxbQ0xx3ku5BnSiA==", + "requires": { + "@octokit/openapi-types": "^2.2.0", + "@types/node": ">= 8" + } + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -340,6 +481,11 @@ "tweetnacl": "^0.14.3" } }, + "before-after-hook": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz", + "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==" + }, "bignumber.js": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", @@ -783,6 +929,11 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, + "deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + }, "des.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", @@ -1399,6 +1550,11 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + }, "is-retry-allowed": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", @@ -1690,6 +1846,11 @@ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, "node-gyp-build": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", @@ -2110,6 +2271,31 @@ "simple-concat": "^1.0.0" } }, + "simple-git": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-2.31.0.tgz", + "integrity": "sha512-/+rmE7dYZMbRAfEmn8EUIOwlM2G7UdzpkC60KF86YAfXGnmGtsPrKsym0hKvLBdFLLW019C+aZld1+6iIVy5xA==", + "requires": { + "@kwsites/file-exists": "^1.1.1", + "@kwsites/promise-deferred": "^1.1.1", + "debug": "^4.3.1" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "sshpk": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", @@ -2316,6 +2502,11 @@ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==" }, + "universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" + }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", diff --git a/Client/package.json b/Client/package.json index 0e6e7b0f3..7e53cebd4 100644 --- a/Client/package.json +++ b/Client/package.json @@ -7,10 +7,12 @@ "name": "Luis-Fernando-Molina" }, "dependencies": { + "@octokit/rest": "^18.0.12", "ccxt": "^1.23.67", "child_process": "^1.0.2", "open": "^6.4.0", "rimraf": "^3.0.2", + "simple-git": "^2.31.0", "web3": "^1.3.0", "ws": "^7.1.2" } diff --git a/Projects/Ethereum/Schemas/AppSchema.json b/Projects/Ethereum/Schemas/AppSchema.json index 2c314b32c..8805befb6 100644 --- a/Projects/Ethereum/Schemas/AppSchema.json +++ b/Projects/Ethereum/Schemas/AppSchema.json @@ -48,7 +48,7 @@ "isPinned": true, "positionLocked": true, "icon": "ethereum", - "properties": [ + "childrenNodesProperties": [ { "name": "projectDefinition", "type": "node", @@ -89,7 +89,7 @@ "isHierarchyHead": true, "addLeftIcons": true, "level": 0, - "properties": [ + "childrenNodesProperties": [ { "name": "networkClientReference", "type": "node", @@ -121,12 +121,12 @@ "Use Reference Parent Parent", "Use Reference Parent" ], - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Network Client->" }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Ethereum Wallet->" }, "propertyNameAtParent": "networkClientReference", @@ -175,11 +175,11 @@ }, "addLeftIcons": true, "level": 0, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Ethereum Wallet->" }, "propertyNameAtParent": "walletAccounts", - "properties": [ + "childrenNodesProperties": [ { "name": "ethBalance", "type": "node", @@ -209,7 +209,7 @@ ], "addLeftIcons": true, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Wallet Account->" }, "propertyNameAtParent": "ethBalance", @@ -233,10 +233,10 @@ ], "addLeftIcons": true, "level": 4, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Ethereum Token->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Wallet Account->" }, "propertyNameAtParent": "tokenBalances", @@ -264,7 +264,7 @@ "isHierarchyHead": true, "addLeftIcons": true, "level": 0, - "properties": [ + "childrenNodesProperties": [ { "name": "erc-20TokenType", "type": "node", @@ -309,11 +309,11 @@ ], "addLeftIcons": true, "level": 1, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Ethereum Token Definitions->" }, "propertyNameAtParent": "erc-20TokenType", - "properties": [ + "childrenNodesProperties": [ { "name": "ethereumTokens", "type": "array", @@ -343,11 +343,11 @@ ], "addLeftIcons": true, "level": 1, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Ethereum Token Definitions->" }, "propertyNameAtParent": "erc-223TokenType", - "properties": [ + "childrenNodesProperties": [ { "name": "ethereumTokens", "type": "array", @@ -377,11 +377,11 @@ ], "addLeftIcons": true, "level": 1, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Ethereum Token Definitions->" }, "propertyNameAtParent": "erc-721TokenType", - "properties": [ + "childrenNodesProperties": [ { "name": "ethereumTokens", "type": "array", @@ -411,11 +411,11 @@ ], "addLeftIcons": true, "level": 1, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Ethereum Token Definitions->" }, "propertyNameAtParent": "erc-777TokenType", - "properties": [ + "childrenNodesProperties": [ { "name": "ethereumTokens", "type": "array", @@ -461,11 +461,11 @@ }, "addLeftIcons": true, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->ERC-20 Token Type->ERC-223 Token Type->ERC-721 Token Type->ERC-777 Token Type->" }, "propertyNameAtParent": "ethereumTokens", - "properties": [ + "childrenNodesProperties": [ { "name": "smartContracts", "type": "node", @@ -506,7 +506,7 @@ "isHierarchyHead": true, "addLeftIcons": true, "level": 0, - "properties": [ + "childrenNodesProperties": [ { "name": "blockchainNetworks", "type": "array", @@ -536,11 +536,11 @@ ], "addLeftIcons": true, "level": 1, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Ethereum Blockchain->" }, "propertyNameAtParent": "blockchainNetworks", - "properties": [ + "childrenNodesProperties": [ { "name": "networkClients", "type": "array", @@ -570,7 +570,7 @@ "actionFunction": "payload.executeAction" } ], - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Network Node->" }, "editors": { @@ -581,7 +581,7 @@ }, "addLeftIcons": true, "level": 1, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Blockchain Network->" }, "propertyNameAtParent": "networkClients", @@ -609,7 +609,7 @@ "isHierarchyHead": true, "addLeftIcons": true, "level": 0, - "properties": [ + "childrenNodesProperties": [ { "name": "smartContracts", "type": "array", @@ -653,13 +653,13 @@ "initialValues": { "config": "{ \n\"address\": \"\"\n}" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Token Definition->Ethereum Decentralized Application->" }, "propertyNameAtParent": "smartContracts", "addLeftIcons": true, "level": 1, - "properties": [ + "childrenNodesProperties": [ { "name": "solidityCode", "type": "node", @@ -694,7 +694,7 @@ "initialValues": { "code": "// Type your smart contract code here." }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Smart Contract->" }, "propertyNameAtParent": "solidityCode", @@ -721,14 +721,14 @@ "alternativeIcons": "Use Reference Parent Parent", "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Project Definition->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Data Tasks->" }, "propertyNameAtParent": "projectDataTasks", - "properties": [], + "childrenNodesProperties": [], "icon": "bitcoin" }, { @@ -750,14 +750,14 @@ "alternativeIcons": "Use Reference Parent Parent", "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Project Definition->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Learning Tasks->" }, "propertyNameAtParent": "projectLearningTasks", - "properties": [], + "childrenNodesProperties": [], "icon": "bitcoin" }, { @@ -779,14 +779,14 @@ "alternativeIcons": "Use Reference Parent Parent", "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Project Definition->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Tasks->" }, "propertyNameAtParent": "projectTradingTasks", - "properties": [], + "childrenNodesProperties": [], "icon": "bitcoin" }, { @@ -808,14 +808,14 @@ "alternativeIcons": "Use Reference Parent Parent", "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Project Definition->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Data Mines Data->" }, "propertyNameAtParent": "projectDataProducts", - "properties": [], + "childrenNodesProperties": [], "icon": "bitcoin" }, { @@ -837,14 +837,14 @@ "alternativeIcons": "Use Reference Parent Parent", "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Project Definition->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Learning Mine Data->" }, "propertyNameAtParent": "projectLearningProducts", - "properties": [], + "childrenNodesProperties": [], "icon": "bitcoin" }, { @@ -866,14 +866,14 @@ "alternativeIcons": "Use Reference Parent Parent", "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Project Definition->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Mine Data->" }, "propertyNameAtParent": "projectTradingProducts", - "properties": [], + "childrenNodesProperties": [], "icon": "bitcoin" }, { @@ -895,14 +895,14 @@ "alternativeIcons": "Use Reference Parent Parent", "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Project Definition->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Charting Space->" }, "propertyNameAtParent": "projectDashboards", - "properties": [], + "childrenNodesProperties": [], "icon": "bitcoin" }, { @@ -942,7 +942,7 @@ "initialValues": { "config": "{ \n\"codeName\": \"Type a name with no spaces or dashes\"\n}" }, - "properties": [ + "childrenNodesProperties": [ { "name": "blockchainScannerBots", "type": "array", @@ -993,10 +993,10 @@ "config": "{ \n \"codeName\": \"\"\n}" }, "level": 1, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Data Mine->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "processes", "type": "array", diff --git a/Projects/Ethereum/Schemas/ConceptSchema.json b/Projects/Ethereum/Schemas/ConceptSchema.json index 32960f8ce..3eed4e3b0 100644 --- a/Projects/Ethereum/Schemas/ConceptSchema.json +++ b/Projects/Ethereum/Schemas/ConceptSchema.json @@ -1,2 +1,6 @@ [ + { + "type": "Ethereum Concept", + "definition": "This is the definition of an Ethereum Concept." + } ] \ No newline at end of file diff --git a/Projects/Ethereum/Schemas/DocSchema.json b/Projects/Ethereum/Schemas/DocSchema.json index 32960f8ce..8d8c61318 100644 --- a/Projects/Ethereum/Schemas/DocSchema.json +++ b/Projects/Ethereum/Schemas/DocSchema.json @@ -1,2 +1,6 @@ [ + { + "type": "Ethereum Project", + "definition": "This is the definition for the Ethereum Project." + } ] \ No newline at end of file diff --git a/Projects/ProjectsSchema.json b/Projects/ProjectsSchema.json index 2a9f0ca59..783631241 100644 --- a/Projects/ProjectsSchema.json +++ b/Projects/ProjectsSchema.json @@ -197,6 +197,31 @@ "name": "Folders", "propertyName": "folders", "functionName": "newSuperalgosUtilitiesFolders" + }, + { + "name": "Strings", + "propertyName": "strings", + "functionName": "newSuperalgosUtilitiesStrings" + }, + { + "name": "Languages", + "propertyName": "languages", + "functionName": "newSuperalgosUtilitiesLanguages" + }, + { + "name": "Git Branches", + "propertyName": "gitBranches", + "functionName": "newSuperalgosUtilitiesGitBranches" + }, + { + "name": "Docs", + "propertyName": "docs", + "functionName": "newSuperalgosUtilitiesDocs" + }, + { + "name": "Credits Page", + "propertyName": "creditsPage", + "functionName": "newSuperalgosUtilitiesCreditsPage" } ], "spaces": [ @@ -220,7 +245,7 @@ "functionName": "newSuperalgosTopSpace", "initializationIndex": 1, "animationPhysicsIndex": 7, - "animationDrawIndex": 6, + "animationDrawIndex": 5, "onMouseOverIndex": 4, "onMouseClickIndex": 4, "onMouseDownIndex": 4 @@ -232,7 +257,7 @@ "functionName": "newSuperalgosCockpitSpace", "initializationIndex": 2, "animationPhysicsIndex": 0, - "animationDrawIndex": 7, + "animationDrawIndex": 6, "onMouseWheelIndex": 4, "onMouseOverIndex": 5, "onMouseClickIndex": 5, @@ -291,13 +316,13 @@ "onMouseDownIndex": 2 }, { - "name": "Doc Space", - "folderName": "Doc-Space", - "propertyName": "docSpace", + "name": "Docs Space", + "folderName": "Docs-Space", + "propertyName": "docsSpace", "functionName": "newSuperalgosDocSpace", "initializationIndex": 7, "animationPhysicsIndex": 5, - "animationDrawIndex": 4, + "animationDrawIndex": 7, "onMouseWheelIndex": 1, "onMouseOverIndex": 1, "onMouseClickIndex": 1, @@ -316,7 +341,7 @@ "functionName": "newSuperalgosTutorialSpace", "initializationIndex": 8, "animationPhysicsIndex": 6, - "animationDrawIndex": 5, + "animationDrawIndex": 4, "onMouseWheelIndex": 0, "onMouseOverIndex": 0, "onMouseClickIndex": 0, diff --git a/Projects/Superalgos/GIFs/Docs/design-space/Thumbs.db b/Projects/Superalgos/GIFs/Docs/design-space/Thumbs.db new file mode 100644 index 000000000..dff588353 Binary files /dev/null and b/Projects/Superalgos/GIFs/Docs/design-space/Thumbs.db differ diff --git a/Projects/Superalgos/GIFs/Docs/design-space/accessing-the-design-space-with-keyboard.gif b/Projects/Superalgos/GIFs/Docs/design-space/accessing-the-design-space-with-keyboard.gif new file mode 100644 index 000000000..32cc5d5df Binary files /dev/null and b/Projects/Superalgos/GIFs/Docs/design-space/accessing-the-design-space-with-keyboard.gif differ diff --git a/Projects/Superalgos/GIFs/Docs/design-space/accessing-the-design-space.gif b/Projects/Superalgos/GIFs/Docs/design-space/accessing-the-design-space.gif new file mode 100644 index 000000000..c39f8cf6b Binary files /dev/null and b/Projects/Superalgos/GIFs/Docs/design-space/accessing-the-design-space.gif differ diff --git a/Projects/Superalgos/GIFs/Docs/design-space/establish-and-remove-references.gif b/Projects/Superalgos/GIFs/Docs/design-space/establish-and-remove-references.gif new file mode 100644 index 000000000..70768caaf Binary files /dev/null and b/Projects/Superalgos/GIFs/Docs/design-space/establish-and-remove-references.gif differ diff --git a/Projects/Superalgos/GIFs/Docs/design-space/keyboard-shortcut-to-node.gif b/Projects/Superalgos/GIFs/Docs/design-space/keyboard-shortcut-to-node.gif new file mode 100644 index 000000000..53e59772b Binary files /dev/null and b/Projects/Superalgos/GIFs/Docs/design-space/keyboard-shortcut-to-node.gif differ diff --git a/Projects/Superalgos/GIFs/Docs/how-to/Thumbs.db b/Projects/Superalgos/GIFs/Docs/how-to/Thumbs.db new file mode 100644 index 000000000..4f77e71c6 Binary files /dev/null and b/Projects/Superalgos/GIFs/Docs/how-to/Thumbs.db differ diff --git a/Projects/Superalgos/GIFs/Docs/indicators/Thumbs.db b/Projects/Superalgos/GIFs/Docs/indicators/Thumbs.db new file mode 100644 index 000000000..ef632f82c Binary files /dev/null and b/Projects/Superalgos/GIFs/Docs/indicators/Thumbs.db differ diff --git a/Projects/Superalgos/GIFs/Docs/indicators/masters-bots-layers-00-candles.gif b/Projects/Superalgos/GIFs/Docs/indicators/masters-bots-layers-00-candles.gif new file mode 100644 index 000000000..88f9cd8fa Binary files /dev/null and b/Projects/Superalgos/GIFs/Docs/indicators/masters-bots-layers-00-candles.gif differ diff --git a/Projects/Superalgos/GIFs/Docs/indicators/masters-bots-layers-01-volumes.gif b/Projects/Superalgos/GIFs/Docs/indicators/masters-bots-layers-01-volumes.gif new file mode 100644 index 000000000..7280ee9b8 Binary files /dev/null and b/Projects/Superalgos/GIFs/Docs/indicators/masters-bots-layers-01-volumes.gif differ diff --git a/Projects/Superalgos/GIFs/Docs/indicators/masters-bots-layers-04-bollinger-bands.gif b/Projects/Superalgos/GIFs/Docs/indicators/masters-bots-layers-04-bollinger-bands.gif new file mode 100644 index 000000000..ce5dabef0 Binary files /dev/null and b/Projects/Superalgos/GIFs/Docs/indicators/masters-bots-layers-04-bollinger-bands.gif differ diff --git a/Projects/Superalgos/GIFs/Docs/indicators/masters-bots-layers-05-percentage-bandwidth.gif b/Projects/Superalgos/GIFs/Docs/indicators/masters-bots-layers-05-percentage-bandwidth.gif new file mode 100644 index 000000000..5fac029ae Binary files /dev/null and b/Projects/Superalgos/GIFs/Docs/indicators/masters-bots-layers-05-percentage-bandwidth.gif differ diff --git a/Projects/Superalgos/GIFs/Docs/indicators/masters-bots-layers-06-percentage-bandwidth-2.gif b/Projects/Superalgos/GIFs/Docs/indicators/masters-bots-layers-06-percentage-bandwidth-2.gif new file mode 100644 index 000000000..4fedfdfe5 Binary files /dev/null and b/Projects/Superalgos/GIFs/Docs/indicators/masters-bots-layers-06-percentage-bandwidth-2.gif differ diff --git a/Projects/Superalgos/GIFs/Docs/indicators/masters-bots-layers-07-bollinger-channels.gif b/Projects/Superalgos/GIFs/Docs/indicators/masters-bots-layers-07-bollinger-channels.gif new file mode 100644 index 000000000..c26bc9a50 Binary files /dev/null and b/Projects/Superalgos/GIFs/Docs/indicators/masters-bots-layers-07-bollinger-channels.gif differ diff --git a/Projects/Superalgos/GIFs/Docs/indicators/masters-bots-layers-08-bollinger-subchannels.gif b/Projects/Superalgos/GIFs/Docs/indicators/masters-bots-layers-08-bollinger-subchannels.gif new file mode 100644 index 000000000..a8e698de0 Binary files /dev/null and b/Projects/Superalgos/GIFs/Docs/indicators/masters-bots-layers-08-bollinger-subchannels.gif differ diff --git a/Projects/Superalgos/GIFs/Docs/indicators/support-resistance-01.gif b/Projects/Superalgos/GIFs/Docs/indicators/support-resistance-01.gif new file mode 100644 index 000000000..e1e690289 Binary files /dev/null and b/Projects/Superalgos/GIFs/Docs/indicators/support-resistance-01.gif differ diff --git a/Projects/Superalgos/GIFs/Docs/indicators/support-resistance-02.gif b/Projects/Superalgos/GIFs/Docs/indicators/support-resistance-02.gif new file mode 100644 index 000000000..435781118 Binary files /dev/null and b/Projects/Superalgos/GIFs/Docs/indicators/support-resistance-02.gif differ diff --git a/Projects/Superalgos/Gifs/trading-bot-layers-episode-counters-01.gif b/Projects/Superalgos/GIFs/Tutorials/trading-bot-layers-episode-counters-01.gif similarity index 100% rename from Projects/Superalgos/Gifs/trading-bot-layers-episode-counters-01.gif rename to Projects/Superalgos/GIFs/Tutorials/trading-bot-layers-episode-counters-01.gif diff --git a/Projects/Superalgos/Gifs/trading-bot-layers-trading-system-highlights.gif b/Projects/Superalgos/GIFs/Tutorials/trading-bot-layers-trading-system-highlights.gif similarity index 100% rename from Projects/Superalgos/Gifs/trading-bot-layers-trading-system-highlights.gif rename to Projects/Superalgos/GIFs/Tutorials/trading-bot-layers-trading-system-highlights.gif diff --git a/Projects/Superalgos/Gifs/trading-systems-candles-panel.gif b/Projects/Superalgos/GIFs/Tutorials/trading-systems-candles-panel.gif similarity index 100% rename from Projects/Superalgos/Gifs/trading-systems-candles-panel.gif rename to Projects/Superalgos/GIFs/Tutorials/trading-systems-candles-panel.gif diff --git a/Projects/Superalgos/Gifs/trading-systems-position.gif b/Projects/Superalgos/GIFs/Tutorials/trading-systems-position.gif similarity index 100% rename from Projects/Superalgos/Gifs/trading-systems-position.gif rename to Projects/Superalgos/GIFs/Tutorials/trading-systems-position.gif diff --git a/Projects/Superalgos/Gifs/trading-systems-second-backtest.gif b/Projects/Superalgos/GIFs/Tutorials/trading-systems-second-backtest.gif similarity index 100% rename from Projects/Superalgos/Gifs/trading-systems-second-backtest.gif rename to Projects/Superalgos/GIFs/Tutorials/trading-systems-second-backtest.gif diff --git a/Projects/Superalgos/Gifs/trading-systems-third-backtest.gif b/Projects/Superalgos/GIFs/Tutorials/trading-systems-third-backtest.gif similarity index 100% rename from Projects/Superalgos/Gifs/trading-systems-third-backtest.gif rename to Projects/Superalgos/GIFs/Tutorials/trading-systems-third-backtest.gif diff --git a/Projects/Superalgos/Gifs/trading-systems-tracking-errors.gif b/Projects/Superalgos/GIFs/Tutorials/trading-systems-tracking-errors.gif similarity index 100% rename from Projects/Superalgos/Gifs/trading-systems-tracking-errors.gif rename to Projects/Superalgos/GIFs/Tutorials/trading-systems-tracking-errors.gif diff --git a/Projects/Superalgos/Gifs/trading-systems-trigger-stage-test.gif b/Projects/Superalgos/GIFs/Tutorials/trading-systems-trigger-stage-test.gif similarity index 100% rename from Projects/Superalgos/Gifs/trading-systems-trigger-stage-test.gif rename to Projects/Superalgos/GIFs/Tutorials/trading-systems-trigger-stage-test.gif diff --git a/Projects/Superalgos/Gifs/welcome-backtesting-trading-engine-visualization-01.gif b/Projects/Superalgos/GIFs/Tutorials/welcome-backtesting-trading-engine-visualization-01.gif similarity index 100% rename from Projects/Superalgos/Gifs/welcome-backtesting-trading-engine-visualization-01.gif rename to Projects/Superalgos/GIFs/Tutorials/welcome-backtesting-trading-engine-visualization-01.gif diff --git a/Projects/Superalgos/Gifs/welcome-backtesting-trading-engine-visualization-02.gif b/Projects/Superalgos/GIFs/Tutorials/welcome-backtesting-trading-engine-visualization-02.gif similarity index 100% rename from Projects/Superalgos/Gifs/welcome-backtesting-trading-engine-visualization-02.gif rename to Projects/Superalgos/GIFs/Tutorials/welcome-backtesting-trading-engine-visualization-02.gif diff --git a/Projects/Superalgos/Gifs/welcome-binanceus.gif b/Projects/Superalgos/GIFs/Tutorials/welcome-binanceus.gif similarity index 100% rename from Projects/Superalgos/Gifs/welcome-binanceus.gif rename to Projects/Superalgos/GIFs/Tutorials/welcome-binanceus.gif diff --git a/Projects/Superalgos/Gifs/welcome-charts-layer-managers-scroll.gif b/Projects/Superalgos/GIFs/Tutorials/welcome-charts-layer-managers-scroll.gif similarity index 100% rename from Projects/Superalgos/Gifs/welcome-charts-layer-managers-scroll.gif rename to Projects/Superalgos/GIFs/Tutorials/welcome-charts-layer-managers-scroll.gif diff --git a/Projects/Superalgos/Gifs/welcome-charts-layer-on.gif b/Projects/Superalgos/GIFs/Tutorials/welcome-charts-layer-on.gif similarity index 100% rename from Projects/Superalgos/Gifs/welcome-charts-layer-on.gif rename to Projects/Superalgos/GIFs/Tutorials/welcome-charts-layer-on.gif diff --git a/Projects/Superalgos/Gifs/welcome-charts-layer-panels.gif b/Projects/Superalgos/GIFs/Tutorials/welcome-charts-layer-panels.gif similarity index 100% rename from Projects/Superalgos/Gifs/welcome-charts-layer-panels.gif rename to Projects/Superalgos/GIFs/Tutorials/welcome-charts-layer-panels.gif diff --git a/Projects/Superalgos/Gifs/welcome-charts-scales-auto-locked.gif b/Projects/Superalgos/GIFs/Tutorials/welcome-charts-scales-auto-locked.gif similarity index 100% rename from Projects/Superalgos/Gifs/welcome-charts-scales-auto-locked.gif rename to Projects/Superalgos/GIFs/Tutorials/welcome-charts-scales-auto-locked.gif diff --git a/Projects/Superalgos/Gifs/welcome-charts-scales-time-frame-scale.gif b/Projects/Superalgos/GIFs/Tutorials/welcome-charts-scales-time-frame-scale.gif similarity index 100% rename from Projects/Superalgos/Gifs/welcome-charts-scales-time-frame-scale.gif rename to Projects/Superalgos/GIFs/Tutorials/welcome-charts-scales-time-frame-scale.gif diff --git a/Projects/Superalgos/Gifs/welcome-charts-scales-unlock-rate-scale.gif b/Projects/Superalgos/GIFs/Tutorials/welcome-charts-scales-unlock-rate-scale.gif similarity index 100% rename from Projects/Superalgos/Gifs/welcome-charts-scales-unlock-rate-scale.gif rename to Projects/Superalgos/GIFs/Tutorials/welcome-charts-scales-unlock-rate-scale.gif diff --git a/Projects/Superalgos/Gifs/welcome-charts-scales-unlock-time-scale.gif b/Projects/Superalgos/GIFs/Tutorials/welcome-charts-scales-unlock-time-scale.gif similarity index 100% rename from Projects/Superalgos/Gifs/welcome-charts-scales-unlock-time-scale.gif rename to Projects/Superalgos/GIFs/Tutorials/welcome-charts-scales-unlock-time-scale.gif diff --git a/Projects/Superalgos/Gifs/welcome-live-trading-binance-orders.gif b/Projects/Superalgos/GIFs/Tutorials/welcome-live-trading-binance-orders.gif similarity index 100% rename from Projects/Superalgos/Gifs/welcome-live-trading-binance-orders.gif rename to Projects/Superalgos/GIFs/Tutorials/welcome-live-trading-binance-orders.gif diff --git a/Projects/Superalgos/Gifs/welcome-live-trading-console.gif b/Projects/Superalgos/GIFs/Tutorials/welcome-live-trading-console.gif similarity index 100% rename from Projects/Superalgos/Gifs/welcome-live-trading-console.gif rename to Projects/Superalgos/GIFs/Tutorials/welcome-live-trading-console.gif diff --git a/Projects/Superalgos/Gifs/welcome-live-trading-process-progress.gif b/Projects/Superalgos/GIFs/Tutorials/welcome-live-trading-process-progress.gif similarity index 100% rename from Projects/Superalgos/Gifs/welcome-live-trading-process-progress.gif rename to Projects/Superalgos/GIFs/Tutorials/welcome-live-trading-process-progress.gif diff --git a/Projects/Superalgos/Gifs/welcome-live-trading-run.gif b/Projects/Superalgos/GIFs/Tutorials/welcome-live-trading-run.gif similarity index 100% rename from Projects/Superalgos/Gifs/welcome-live-trading-run.gif rename to Projects/Superalgos/GIFs/Tutorials/welcome-live-trading-run.gif diff --git a/Projects/Superalgos/Gifs/welcome-start-data-mining-console.gif b/Projects/Superalgos/GIFs/Tutorials/welcome-start-data-mining-console.gif similarity index 100% rename from Projects/Superalgos/Gifs/welcome-start-data-mining-console.gif rename to Projects/Superalgos/GIFs/Tutorials/welcome-start-data-mining-console.gif diff --git a/Projects/Superalgos/Gifs/Docs/design-space/design-space-interface-00-shortcuts.gif b/Projects/Superalgos/Gifs/Docs/design-space/design-space-interface-00-shortcuts.gif new file mode 100644 index 000000000..53e59772b Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/design-space/design-space-interface-00-shortcuts.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/design-space/fundamental-design-space-concepts-01.gif b/Projects/Superalgos/Gifs/Docs/design-space/fundamental-design-space-concepts-01.gif new file mode 100644 index 000000000..187f4de67 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/design-space/fundamental-design-space-concepts-01.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/design-space/fundamental-design-space-concepts-02.gif b/Projects/Superalgos/Gifs/Docs/design-space/fundamental-design-space-concepts-02.gif new file mode 100644 index 000000000..2857e2d58 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/design-space/fundamental-design-space-concepts-02.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/design-space/network-farm-01.PNG b/Projects/Superalgos/Gifs/Docs/design-space/network-farm-01.PNG new file mode 100644 index 000000000..0bc01e1c9 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/design-space/network-farm-01.PNG differ diff --git a/Projects/Superalgos/Gifs/Docs/design-space/trading-farm-01.gif b/Projects/Superalgos/Gifs/Docs/design-space/trading-farm-01.gif new file mode 100644 index 000000000..3fe150818 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/design-space/trading-farm-01.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/design-space/trading-farm-02.gif b/Projects/Superalgos/Gifs/Docs/design-space/trading-farm-02.gif new file mode 100644 index 000000000..5f8fb49a7 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/design-space/trading-farm-02.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/design-space/trading-farm-03.gif b/Projects/Superalgos/Gifs/Docs/design-space/trading-farm-03.gif new file mode 100644 index 000000000..f1474c256 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/design-space/trading-farm-03.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/design-space/trading-farm-04.gif b/Projects/Superalgos/Gifs/Docs/design-space/trading-farm-04.gif new file mode 100644 index 000000000..045beb3fe Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/design-space/trading-farm-04.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/design-space/workspace-01.gif b/Projects/Superalgos/Gifs/Docs/design-space/workspace-01.gif new file mode 100644 index 000000000..3b38387ce Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/design-space/workspace-01.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/build-an-indicator-step-5.gif b/Projects/Superalgos/Gifs/Docs/how-to/build-an-indicator-step-5.gif new file mode 100644 index 000000000..6a8879e31 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/build-an-indicator-step-5.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/change-directories-in-the-console-00.gif b/Projects/Superalgos/Gifs/Docs/how-to/change-directories-in-the-console-00.gif new file mode 100644 index 000000000..9288cdd49 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/change-directories-in-the-console-00.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/data-mining-01.gif b/Projects/Superalgos/Gifs/Docs/how-to/data-mining-01.gif new file mode 100644 index 000000000..c26193823 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/data-mining-01.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/data-mining-02.gif b/Projects/Superalgos/Gifs/Docs/how-to/data-mining-02.gif new file mode 100644 index 000000000..d0a34139b Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/data-mining-02.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/data-mining-progress-00.gif b/Projects/Superalgos/Gifs/Docs/how-to/data-mining-progress-00.gif new file mode 100644 index 000000000..da7cd4acf Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/data-mining-progress-00.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/data-mining-progress-01.gif b/Projects/Superalgos/Gifs/Docs/how-to/data-mining-progress-01.gif new file mode 100644 index 000000000..4eb503921 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/data-mining-progress-01.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/data-mining-progress-02.gif b/Projects/Superalgos/Gifs/Docs/how-to/data-mining-progress-02.gif new file mode 100644 index 000000000..5995d26e6 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/data-mining-progress-02.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/download-the-software-00.gif b/Projects/Superalgos/Gifs/Docs/how-to/download-the-software-00.gif new file mode 100644 index 000000000..c5058f17d Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/download-the-software-00.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/download-the-software-01.gif b/Projects/Superalgos/Gifs/Docs/how-to/download-the-software-01.gif new file mode 100644 index 000000000..299a8cad9 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/download-the-software-01.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/download-the-software-02.gif b/Projects/Superalgos/Gifs/Docs/how-to/download-the-software-02.gif new file mode 100644 index 000000000..6bb431f51 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/download-the-software-02.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/empty-cache-hard-reload-00.gif b/Projects/Superalgos/Gifs/Docs/how-to/empty-cache-hard-reload-00.gif new file mode 100644 index 000000000..f33c51a97 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/empty-cache-hard-reload-00.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/find-a-hierarchy-00.gif b/Projects/Superalgos/Gifs/Docs/how-to/find-a-hierarchy-00.gif new file mode 100644 index 000000000..fab374738 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/find-a-hierarchy-00.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/go-to-the-workspace-node-00.gif b/Projects/Superalgos/Gifs/Docs/how-to/go-to-the-workspace-node-00.gif new file mode 100644 index 000000000..4a737e093 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/go-to-the-workspace-node-00.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/import-the-workspace-00.gif b/Projects/Superalgos/Gifs/Docs/how-to/import-the-workspace-00.gif new file mode 100644 index 000000000..0c517fc7d Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/import-the-workspace-00.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/install-a-new-market-00.gif b/Projects/Superalgos/Gifs/Docs/how-to/install-a-new-market-00.gif new file mode 100644 index 000000000..7c32e8beb Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/install-a-new-market-00.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/quick-overview-00.gif b/Projects/Superalgos/Gifs/Docs/how-to/quick-overview-00.gif new file mode 100644 index 000000000..c39f8cf6b Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/quick-overview-00.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/quick-overview-01.gif b/Projects/Superalgos/Gifs/Docs/how-to/quick-overview-01.gif new file mode 100644 index 000000000..32cc5d5df Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/quick-overview-01.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/report-a-bug-00.gif b/Projects/Superalgos/Gifs/Docs/how-to/report-a-bug-00.gif new file mode 100644 index 000000000..feab25c54 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/report-a-bug-00.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/report-a-bug-01.PNG b/Projects/Superalgos/Gifs/Docs/how-to/report-a-bug-01.PNG new file mode 100644 index 000000000..f99f5b173 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/report-a-bug-01.PNG differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/run-a-backtesting-session-00.gif b/Projects/Superalgos/Gifs/Docs/how-to/run-a-backtesting-session-00.gif new file mode 100644 index 000000000..8927c4051 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/run-a-backtesting-session-00.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/run-a-backtesting-session-01.gif b/Projects/Superalgos/Gifs/Docs/how-to/run-a-backtesting-session-01.gif new file mode 100644 index 000000000..e33c58f0c Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/run-a-backtesting-session-01.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/run-a-backtesting-session-02.gif b/Projects/Superalgos/Gifs/Docs/how-to/run-a-backtesting-session-02.gif new file mode 100644 index 000000000..dd6479dd2 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/run-a-backtesting-session-02.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/run-a-backtesting-session-03.gif b/Projects/Superalgos/Gifs/Docs/how-to/run-a-backtesting-session-03.gif new file mode 100644 index 000000000..c86303412 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/run-a-backtesting-session-03.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/run-a-live-session-00.gif b/Projects/Superalgos/Gifs/Docs/how-to/run-a-live-session-00.gif new file mode 100644 index 000000000..099f4353d Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/run-a-live-session-00.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/run-a-live-session-01.PNG b/Projects/Superalgos/Gifs/Docs/how-to/run-a-live-session-01.PNG new file mode 100644 index 000000000..bc2760f18 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/run-a-live-session-01.PNG differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/run-a-live-session-02.gif b/Projects/Superalgos/Gifs/Docs/how-to/run-a-live-session-02.gif new file mode 100644 index 000000000..f8a998897 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/run-a-live-session-02.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/run-a-live-session-02.png b/Projects/Superalgos/Gifs/Docs/how-to/run-a-live-session-02.png new file mode 100644 index 000000000..abaffd1a0 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/run-a-live-session-02.png differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/run-the-system-00.gif b/Projects/Superalgos/Gifs/Docs/how-to/run-the-system-00.gif new file mode 100644 index 000000000..330fd28a3 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/run-the-system-00.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/run-the-system-01.gif b/Projects/Superalgos/Gifs/Docs/how-to/run-the-system-01.gif new file mode 100644 index 000000000..18c3916f0 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/run-the-system-01.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/run-the-system-02.gif b/Projects/Superalgos/Gifs/Docs/how-to/run-the-system-02.gif new file mode 100644 index 000000000..e9e5635a7 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/run-the-system-02.gif differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/tutorial-welcome-00.png b/Projects/Superalgos/Gifs/Docs/how-to/tutorial-welcome-00.png new file mode 100644 index 000000000..0022e0dab Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/tutorial-welcome-00.png differ diff --git a/Projects/Superalgos/Gifs/Docs/how-to/uninstall-existing-markets-01.gif b/Projects/Superalgos/Gifs/Docs/how-to/uninstall-existing-markets-01.gif new file mode 100644 index 000000000..ac1418ad5 Binary files /dev/null and b/Projects/Superalgos/Gifs/Docs/how-to/uninstall-existing-markets-01.gif differ diff --git a/Projects/Superalgos/Icons/Thumbs.db b/Projects/Superalgos/Icons/Thumbs.db new file mode 100644 index 000000000..9a9ddcc9a Binary files /dev/null and b/Projects/Superalgos/Icons/Thumbs.db differ diff --git a/Projects/Superalgos/Icons/docs-action-copy-to-clipboard.png b/Projects/Superalgos/Icons/docs-action-copy-to-clipboard.png new file mode 100644 index 000000000..d5d128b26 Binary files /dev/null and b/Projects/Superalgos/Icons/docs-action-copy-to-clipboard.png differ diff --git a/Projects/Superalgos/Icons/docs-action-delete-paragraph.png b/Projects/Superalgos/Icons/docs-action-delete-paragraph.png new file mode 100644 index 000000000..2c31a2f3e Binary files /dev/null and b/Projects/Superalgos/Icons/docs-action-delete-paragraph.png differ diff --git a/Projects/Superalgos/Icons/docs-action-edit-paragraph.png b/Projects/Superalgos/Icons/docs-action-edit-paragraph.png new file mode 100644 index 000000000..23d6956db Binary files /dev/null and b/Projects/Superalgos/Icons/docs-action-edit-paragraph.png differ diff --git a/Projects/Superalgos/Icons/docs-anchor-style.png b/Projects/Superalgos/Icons/docs-anchor-style.png new file mode 100644 index 000000000..8447a9109 Binary files /dev/null and b/Projects/Superalgos/Icons/docs-anchor-style.png differ diff --git a/Projects/Superalgos/Icons/docs-block-style.png b/Projects/Superalgos/Icons/docs-block-style.png new file mode 100644 index 000000000..6fc37309f Binary files /dev/null and b/Projects/Superalgos/Icons/docs-block-style.png differ diff --git a/Projects/Superalgos/Icons/docs-callout-style.png b/Projects/Superalgos/Icons/docs-callout-style.png new file mode 100644 index 000000000..e0c9cfaa3 Binary files /dev/null and b/Projects/Superalgos/Icons/docs-callout-style.png differ diff --git a/Projects/Superalgos/Icons/docs-chapter-style.png b/Projects/Superalgos/Icons/docs-chapter-style.png new file mode 100644 index 000000000..22429f57b Binary files /dev/null and b/Projects/Superalgos/Icons/docs-chapter-style.png differ diff --git a/Projects/Superalgos/Icons/docs-error-style.png b/Projects/Superalgos/Icons/docs-error-style.png new file mode 100644 index 000000000..1410b768e Binary files /dev/null and b/Projects/Superalgos/Icons/docs-error-style.png differ diff --git a/Projects/Superalgos/Icons/docs-gif-style.png b/Projects/Superalgos/Icons/docs-gif-style.png new file mode 100644 index 000000000..c2b661556 Binary files /dev/null and b/Projects/Superalgos/Icons/docs-gif-style.png differ diff --git a/Projects/Superalgos/Icons/docs-hierarchy-style.png b/Projects/Superalgos/Icons/docs-hierarchy-style.png new file mode 100644 index 000000000..6595956ba Binary files /dev/null and b/Projects/Superalgos/Icons/docs-hierarchy-style.png differ diff --git a/Projects/Superalgos/Icons/docs-important-style.png b/Projects/Superalgos/Icons/docs-important-style.png new file mode 100644 index 000000000..6f01959e6 Binary files /dev/null and b/Projects/Superalgos/Icons/docs-important-style.png differ diff --git a/Projects/Superalgos/Icons/docs-include-style.png b/Projects/Superalgos/Icons/docs-include-style.png new file mode 100644 index 000000000..21e2defb3 Binary files /dev/null and b/Projects/Superalgos/Icons/docs-include-style.png differ diff --git a/Projects/Superalgos/Icons/docs-js-code-style.png b/Projects/Superalgos/Icons/docs-js-code-style.png new file mode 100644 index 000000000..af261c8aa Binary files /dev/null and b/Projects/Superalgos/Icons/docs-js-code-style.png differ diff --git a/Projects/Superalgos/Icons/docs-json-code-style.png b/Projects/Superalgos/Icons/docs-json-code-style.png new file mode 100644 index 000000000..ad4ed8307 Binary files /dev/null and b/Projects/Superalgos/Icons/docs-json-code-style.png differ diff --git a/Projects/Superalgos/Icons/docs-list-style.png b/Projects/Superalgos/Icons/docs-list-style.png new file mode 100644 index 000000000..78abaf468 Binary files /dev/null and b/Projects/Superalgos/Icons/docs-list-style.png differ diff --git a/Projects/Superalgos/Icons/docs-note-style.png b/Projects/Superalgos/Icons/docs-note-style.png new file mode 100644 index 000000000..0255e998e Binary files /dev/null and b/Projects/Superalgos/Icons/docs-note-style.png differ diff --git a/Projects/Superalgos/Icons/docs-png-style.png b/Projects/Superalgos/Icons/docs-png-style.png new file mode 100644 index 000000000..05a6c0053 Binary files /dev/null and b/Projects/Superalgos/Icons/docs-png-style.png differ diff --git a/Projects/Superalgos/Icons/docs-section-style.png b/Projects/Superalgos/Icons/docs-section-style.png new file mode 100644 index 000000000..226cc2de7 Binary files /dev/null and b/Projects/Superalgos/Icons/docs-section-style.png differ diff --git a/Projects/Superalgos/Icons/docs-subtitle-style.png b/Projects/Superalgos/Icons/docs-subtitle-style.png new file mode 100644 index 000000000..7b6fc3458 Binary files /dev/null and b/Projects/Superalgos/Icons/docs-subtitle-style.png differ diff --git a/Projects/Superalgos/Icons/docs-success-style.png b/Projects/Superalgos/Icons/docs-success-style.png new file mode 100644 index 000000000..ecdb43a6a Binary files /dev/null and b/Projects/Superalgos/Icons/docs-success-style.png differ diff --git a/Projects/Superalgos/Icons/docs-summary-style.png b/Projects/Superalgos/Icons/docs-summary-style.png new file mode 100644 index 000000000..67ea31099 Binary files /dev/null and b/Projects/Superalgos/Icons/docs-summary-style.png differ diff --git a/Projects/Superalgos/Icons/docs-table-style.png b/Projects/Superalgos/Icons/docs-table-style.png new file mode 100644 index 000000000..539318026 Binary files /dev/null and b/Projects/Superalgos/Icons/docs-table-style.png differ diff --git a/Projects/Superalgos/Icons/docs-text-style.png b/Projects/Superalgos/Icons/docs-text-style.png new file mode 100644 index 000000000..227fbb805 Binary files /dev/null and b/Projects/Superalgos/Icons/docs-text-style.png differ diff --git a/Projects/Superalgos/Icons/docs-title-style.png b/Projects/Superalgos/Icons/docs-title-style.png new file mode 100644 index 000000000..bebd5e2b4 Binary files /dev/null and b/Projects/Superalgos/Icons/docs-title-style.png differ diff --git a/Projects/Superalgos/Icons/docs-warning-style.png b/Projects/Superalgos/Icons/docs-warning-style.png new file mode 100644 index 000000000..552ac1781 Binary files /dev/null and b/Projects/Superalgos/Icons/docs-warning-style.png differ diff --git a/Projects/Superalgos/Icons/docs-web-page-link-style.png b/Projects/Superalgos/Icons/docs-web-page-link-style.png new file mode 100644 index 000000000..537afd0e0 Binary files /dev/null and b/Projects/Superalgos/Icons/docs-web-page-link-style.png differ diff --git a/Projects/Superalgos/Icons/docs-youtube-video-style.png b/Projects/Superalgos/Icons/docs-youtube-video-style.png new file mode 100644 index 000000000..d9e46d9a4 Binary files /dev/null and b/Projects/Superalgos/Icons/docs-youtube-video-style.png differ diff --git a/Projects/Superalgos/Icons/procedure-javascript-code.png b/Projects/Superalgos/Icons/procedure-javascript-code.png new file mode 100644 index 000000000..21bf6a8b7 Binary files /dev/null and b/Projects/Superalgos/Icons/procedure-javascript-code.png differ diff --git a/Projects/Superalgos/Icons/project-dashboards.png b/Projects/Superalgos/Icons/project-dashboards.png new file mode 100644 index 000000000..58de23926 Binary files /dev/null and b/Projects/Superalgos/Icons/project-dashboards.png differ diff --git a/Projects/Superalgos/Icons/project-data-products.png b/Projects/Superalgos/Icons/project-data-products.png new file mode 100644 index 000000000..6386d031d Binary files /dev/null and b/Projects/Superalgos/Icons/project-data-products.png differ diff --git a/Projects/Superalgos/Icons/project-data-tasks.png b/Projects/Superalgos/Icons/project-data-tasks.png new file mode 100644 index 000000000..9c8346f70 Binary files /dev/null and b/Projects/Superalgos/Icons/project-data-tasks.png differ diff --git a/Projects/Superalgos/Icons/project-learning-products.png b/Projects/Superalgos/Icons/project-learning-products.png new file mode 100644 index 000000000..b7cd5e125 Binary files /dev/null and b/Projects/Superalgos/Icons/project-learning-products.png differ diff --git a/Projects/Superalgos/Icons/project-learning-tasks.png b/Projects/Superalgos/Icons/project-learning-tasks.png new file mode 100644 index 000000000..ae714c4db Binary files /dev/null and b/Projects/Superalgos/Icons/project-learning-tasks.png differ diff --git a/Projects/Superalgos/Icons/project-trading-products.png b/Projects/Superalgos/Icons/project-trading-products.png new file mode 100644 index 000000000..09211cab1 Binary files /dev/null and b/Projects/Superalgos/Icons/project-trading-products.png differ diff --git a/Projects/Superalgos/Icons/project-trading-tasks.png b/Projects/Superalgos/Icons/project-trading-tasks.png new file mode 100644 index 000000000..ad4d775cf Binary files /dev/null and b/Projects/Superalgos/Icons/project-trading-tasks.png differ diff --git a/Projects/Superalgos/Icons/record-formula.png b/Projects/Superalgos/Icons/record-formula.png new file mode 100644 index 000000000..4049ba2a7 Binary files /dev/null and b/Projects/Superalgos/Icons/record-formula.png differ diff --git a/Projects/Superalgos/Icons/tree-connector-elbow.png b/Projects/Superalgos/Icons/tree-connector-elbow.png new file mode 100644 index 000000000..05fcba9f2 Binary files /dev/null and b/Projects/Superalgos/Icons/tree-connector-elbow.png differ diff --git a/Projects/Superalgos/Icons/tree-connector-fork.png b/Projects/Superalgos/Icons/tree-connector-fork.png new file mode 100644 index 000000000..86b2f09d0 Binary files /dev/null and b/Projects/Superalgos/Icons/tree-connector-fork.png differ diff --git a/Projects/Superalgos/Icons/tree-connector-line.png b/Projects/Superalgos/Icons/tree-connector-line.png new file mode 100644 index 000000000..36b752a9b Binary files /dev/null and b/Projects/Superalgos/Icons/tree-connector-line.png differ diff --git a/Projects/Superalgos/Icons/tree-spacer.png b/Projects/Superalgos/Icons/tree-spacer.png new file mode 100644 index 000000000..6afe92280 Binary files /dev/null and b/Projects/Superalgos/Icons/tree-spacer.png differ diff --git a/Projects/Superalgos/PNGs/Docs/Charts/target-rate-in-position.png b/Projects/Superalgos/PNGs/Docs/Charts/target-rate-in-position.png new file mode 100644 index 000000000..40dd67bbb Binary files /dev/null and b/Projects/Superalgos/PNGs/Docs/Charts/target-rate-in-position.png differ diff --git a/Projects/Superalgos/PNGs/Docs/charts/Thumbs.db b/Projects/Superalgos/PNGs/Docs/charts/Thumbs.db new file mode 100644 index 000000000..cb374a1fb Binary files /dev/null and b/Projects/Superalgos/PNGs/Docs/charts/Thumbs.db differ diff --git a/Projects/Superalgos/PNGs/Docs/indicators/support-resistance-00.png b/Projects/Superalgos/PNGs/Docs/indicators/support-resistance-00.png new file mode 100644 index 000000000..ad3406efd Binary files /dev/null and b/Projects/Superalgos/PNGs/Docs/indicators/support-resistance-00.png differ diff --git a/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-00.jpg b/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-00.jpg new file mode 100644 index 000000000..ad1708c0c Binary files /dev/null and b/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-00.jpg differ diff --git a/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-01.jpg b/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-01.jpg new file mode 100644 index 000000000..6edabb4bf Binary files /dev/null and b/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-01.jpg differ diff --git a/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-02.jpg b/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-02.jpg new file mode 100644 index 000000000..6b705a5ee Binary files /dev/null and b/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-02.jpg differ diff --git a/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-03.jpg b/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-03.jpg new file mode 100644 index 000000000..30ceb87fd Binary files /dev/null and b/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-03.jpg differ diff --git a/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-04.jpg b/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-04.jpg new file mode 100644 index 000000000..0715c1556 Binary files /dev/null and b/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-04.jpg differ diff --git a/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-05.jpg b/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-05.jpg new file mode 100644 index 000000000..276384978 Binary files /dev/null and b/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-05.jpg differ diff --git a/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-06.jpg b/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-06.jpg new file mode 100644 index 000000000..cc609647f Binary files /dev/null and b/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-06.jpg differ diff --git a/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-07.jpg b/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-07.jpg new file mode 100644 index 000000000..c37bc47d1 Binary files /dev/null and b/Projects/Superalgos/PNGs/Docs/troubleshooting/RSI-07.jpg differ diff --git a/Projects/Superalgos/PNGs/Docs/troubleshooting/frames-per-second-tool.png b/Projects/Superalgos/PNGs/Docs/troubleshooting/frames-per-second-tool.png new file mode 100644 index 000000000..0b6ce2a38 Binary files /dev/null and b/Projects/Superalgos/PNGs/Docs/troubleshooting/frames-per-second-tool.png differ diff --git a/Projects/Superalgos/PNGs/Docs/troubleshooting/log-files-01.PNG b/Projects/Superalgos/PNGs/Docs/troubleshooting/log-files-01.PNG new file mode 100644 index 000000000..a83ec2860 Binary files /dev/null and b/Projects/Superalgos/PNGs/Docs/troubleshooting/log-files-01.PNG differ diff --git a/Projects/Superalgos/PNGs/Docs/troubleshooting/report-an-issue-01.PNG b/Projects/Superalgos/PNGs/Docs/troubleshooting/report-an-issue-01.PNG new file mode 100644 index 000000000..accb4d80e Binary files /dev/null and b/Projects/Superalgos/PNGs/Docs/troubleshooting/report-an-issue-01.PNG differ diff --git a/Projects/Superalgos/Plugins/Data-Mines/Alpha.json b/Projects/Superalgos/Plugins/Data-Mines/Alpha.json index d2b712403..4aec9a1c3 100644 --- a/Projects/Superalgos/Plugins/Data-Mines/Alpha.json +++ b/Projects/Superalgos/Plugins/Data-Mines/Alpha.json @@ -1 +1 @@ -{"type":"Data Mine","name":"Alpha","config":"{ \n\"codeName\": \"Alpha\"\n}","project":"Superalgos","sensorBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"Average True Range (ATR)","config":"{\n\"codeName\": \"ATR\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates RSI.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market ATR - SMA","project":"Superalgos","id":"5cdfa018-5ade-469b-90bf-cc523ef0a46e","savedPayload":{"position":{"x":14824.467185363952,"y":17153.56240800229},"targetPosition":{"x":15051.32778510527,"y":17433.553422503435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2570d2c7-72e3-4131-97dc-a9f97f493e93"}}},{"type":"Output Dataset","name":"Multi-Period-Market ATR - RMA","project":"Superalgos","id":"e7e58e02-fef8-4400-9928-f29805a96f98","savedPayload":{"position":{"x":14995.21249473741,"y":17077.69824065427},"targetPosition":{"x":15051.32778510527,"y":17433.553422503435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"67695466-be2d-43b4-9824-83baa7a08412"}}}],"outputDatasetFolders":[],"id":"b345304f-fbb3-4889-934a-8f9b4941ed29","savedPayload":{"position":{"x":15027.5645769923,"y":17379.910551027475},"targetPosition":{"x":15182.942695423619,"y":17728.650277388508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"eb499527-0f18-45f9-99ab-a7bc7fabb3aa","savedPayload":{"position":{"x":15005.836154077664,"y":17146.468954298347},"targetPosition":{"x":15216.865516382564,"y":17407.20361136918},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Average True Range (ATR) Multi-Period-Market","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"025a6f70-c187-4b4d-aa62-6f4ebfc116ba","savedPayload":{"position":{"x":15251.795115631983,"y":17073.59332967888},"targetPosition":{"x":15216.865516382564,"y":17407.20361136918},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"8a6c8b1e-950d-4819-88a9-9c45272a0799"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"f25ba171-3c78-4e4f-acb8-66446be1ce0a","savedPayload":{"position":{"x":15480.231901478768,"y":17193.677641293492},"targetPosition":{"x":15216.865516382564,"y":17407.20361136918},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"bf337039-bd28-4f50-89d1-5115e631e6cf","savedPayload":{"position":{"x":15223.760246305472,"y":17340.44129825625},"targetPosition":{"x":15182.942695423619,"y":17728.650277388508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"8a6c8b1e-950d-4819-88a9-9c45272a0799","savedPayload":{"position":{"x":15405.437118264057,"y":17422.346390022496},"targetPosition":{"x":15182.942695423619,"y":17728.650277388508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"d150911d-47e9-4046-b365-ac817667cf32","savedPayload":{"position":{"x":15528.652645556173,"y":17574.742245083573},"targetPosition":{"x":15182.942695423619,"y":17728.650277388508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"faac5fcf-e7b2-4883-84bd-427aa74bc3c1","savedPayload":{"position":{"x":15565.646615241436,"y":17768.731993392837},"targetPosition":{"x":15182.942695423619,"y":17728.650277388508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"83a07439-ad71-463a-9727-5f43ad0b03d2","savedPayload":{"position":{"x":14641.679910005776,"y":18014.370126068952},"targetPosition":{"x":14465.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Calculates RSI\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily ATR - SMA","project":"Superalgos","id":"570c8470-a4ae-40a8-b647-d3859887c148","savedPayload":{"position":{"x":15465.460311788222,"y":17379.399895719584},"targetPosition":{"x":15484.411897348979,"y":17735.651101693715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"93eb665f-d903-4825-9fb1-2783e917ac89"}}},{"type":"Output Dataset","name":"Multi-Period-Daily ATR - RMA","project":"Superalgos","id":"60d2cf94-0cf3-4cdf-a2ec-69c012f74019","savedPayload":{"position":{"x":15646.57888452697,"y":17417.31050770898},"targetPosition":{"x":15484.411897348979,"y":17735.651101693715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e3d0bccf-5f97-4902-92df-4ac8fe8c41a8"}}}],"outputDatasetFolders":[],"id":"d6545bbe-389f-4dbe-b31e-de9d7ad95e4b","savedPayload":{"position":{"x":15496.977942325364,"y":17678.445446074387},"targetPosition":{"x":15417.659540146633,"y":18051.7097399962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Average True Range (ATR) Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"89b9660c-6005-4381-a692-e320b9422268","savedPayload":{"position":{"x":15564.15545397628,"y":17483.269514920896},"targetPosition":{"x":15633.621715641162,"y":17811.451787469283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"619713bc-8cf4-4152-b36d-d470361f8a3b"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"6aba1eb8-b5b6-4749-a323-16016a453194","savedPayload":{"position":{"x":15770.006365190904,"y":17505.24247410749},"targetPosition":{"x":15633.621715641162,"y":17811.451787469283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"77cb48bb-f6ca-4eba-ab3d-2b5583f7285a","savedPayload":{"position":{"x":15924.068145475645,"y":17643.81613481951},"targetPosition":{"x":15633.621715641162,"y":17811.451787469283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"b7383dbe-549f-4ffe-8764-9ea324d5025d","savedPayload":{"position":{"x":15967.210012200747,"y":17846.37164582619},"targetPosition":{"x":15633.621715641162,"y":17811.451787469283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"e1b3e953-5756-4810-abcb-67535b51f3ca","savedPayload":{"position":{"x":15677.96647171682,"y":17763.072101860675},"targetPosition":{"x":15417.659540146633,"y":18051.7097399962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"619713bc-8cf4-4152-b36d-d470361f8a3b","savedPayload":{"position":{"x":15787.027818764218,"y":17931.849664745085},"targetPosition":{"x":15417.659540146633,"y":18051.7097399962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"54a8ad94-41a9-4b8d-83f7-c40056140ef4","savedPayload":{"position":{"x":15792.243119384671,"y":18131.348956080044},"targetPosition":{"x":15417.659540146633,"y":18051.7097399962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"0b02390a-fc39-4f1a-a53c-8bae1492e292","savedPayload":{"position":{"x":15701.913401188041,"y":18307.82189517813},"targetPosition":{"x":15417.659540146633,"y":18051.7097399962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"61dde091-7c09-4384-ab2d-1fec0dbef7c5","savedPayload":{"position":{"x":14750.661289206579,"y":18164.370126068952},"targetPosition":{"x":14465.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"ATR - RMA","config":"{\n \"codeName\": \"ATR-RMA\",\n \"singularVariableName\": \"atrRMA\",\n \"pluralVariableName\": \"atrRMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"67695466-be2d-43b4-9824-83baa7a08412","savedPayload":{"position":{"x":15339.563793425255,"y":18236.86776043583},"targetPosition":{"x":15111.82908854388,"y":18402.43596333557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"e3d0bccf-5f97-4902-92df-4ac8fe8c41a8","savedPayload":{"position":{"x":15392.952051274442,"y":18402.82090543185},"targetPosition":{"x":15111.82908854388,"y":18402.43596333557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"Begin","code":"record.current.begin","project":"Superalgos","id":"a0cb3931-383f-4c9d-8f01-fe812c22181e","savedPayload":{"position":{"x":16416.482333386328,"y":18617.461565209003},"targetPosition":{"x":16268.776991591974,"y":18683.26044587566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e538eb1e-f296-4e00-bdbb-8a904c5b897a","savedPayload":{"position":{"x":16268.776991591974,"y":18683.26044587566},"targetPosition":{"x":15939.620580611292,"y":18829.973526666363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"566fa39a-58b3-439a-a666-9c0d6927dfcc","savedPayload":{"position":{"x":16464.216373506217,"y":18884.800084065864},"targetPosition":{"x":16302.888076865202,"y":18868.0004634721},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3a3dfa55-78be-4e15-90ae-b64d7db87d29","savedPayload":{"position":{"x":16302.888076865202,"y":18868.0004634721},"targetPosition":{"x":15939.620580611292,"y":18829.973526666363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ATR2","config":"{\n \"codeName\": \"atr2\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.atr2","project":"Superalgos","id":"fc05c629-916b-40a9-a62d-06b309420ee6","savedPayload":{"position":{"x":16362.23490885691,"y":19136.94556622118},"targetPosition":{"x":16231.24770039141,"y":19041.79504569027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b4e9fd6c-b742-4378-851f-ec6a84183727","savedPayload":{"position":{"x":16231.24770039141,"y":19041.79504569027},"targetPosition":{"x":15939.620580611292,"y":18829.973526666363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ATR3","config":"{\n \"codeName\": \"atr3\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.atr3","project":"Superalgos","id":"2521d41c-60fa-421e-ba7d-8d9b6ff19477","savedPayload":{"position":{"x":16151.91397250432,"y":19307.095190144013},"targetPosition":{"x":16086.12577985863,"y":19159.20980728678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"039f8d7d-2ea5-44b1-b758-4f86a4445a63","savedPayload":{"position":{"x":16086.12577985863,"y":19159.20980728678},"targetPosition":{"x":15939.620580611292,"y":18829.973526666363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ATR14","config":"{\n \"codeName\": \"atr14\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.atr14","project":"Superalgos","id":"65b7d85e-1da0-4a77-b96f-eaa5d3b24036","savedPayload":{"position":{"x":15884.526032532656,"y":19354.15136731505},"targetPosition":{"x":15901.383235043144,"y":19193.23287469804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c6b1bb6e-17b8-45ff-8a25-b1ae575dde04","savedPayload":{"position":{"x":15901.383235043144,"y":19193.23287469804},"targetPosition":{"x":15939.620580611292,"y":18829.973526666363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2838dfa4-22e5-4583-9b08-fed43081af24","savedPayload":{"position":{"x":15508.104528550284,"y":18690.163143118298},"targetPosition":{"x":15111.82908854388,"y":18402.43596333557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current // get current candle data\nlet tr = calculateTR() // get true range value\n\nvariable.atr2 = calculateATR(tr, 2, variable.previousATR2)\nvariable.atr3 = calculateATR(tr, 3, variable.previousATR3)\nvariable.atr14 = calculateATR(tr, 14, variable.previousATR14)\n\nvariable.prevClose = candle.close\nvariable.previousATR2 = variable.atr2\nvariable.previousATR3 = variable.atr3\nvariable.previousATR14 = variable.atr14\n\n/* Helper Functions */\n\n/* Calculate True Range */\nfunction calculateTR() {\n let hl = candle.max - candle.min\n \n if (variable.prevClose === 0) { return hl } // Return High-Low when previous Close is 0\n \n let hcp = Math.abs(candle.max - variable.prevClose)\n let lcp = Math.abs(candle.min - variable.prevClose)\n \n return Math.max(hl, hcp, lcp)\n}\n\n/* Calculate Average True Range - Smoothing Function RMA*/\nfunction calculateATR(source, length, previousATR) {\n return (source + (length - 1) * previousATR) / length\n}","project":"Superalgos","id":"0814b5ad-81ed-4d17-ba6c-2ecad55f5f31","savedPayload":{"position":{"x":15575.010446231227,"y":19037.695900070066},"targetPosition":{"x":15392.900591436046,"y":18873.151975537177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"752cd82a-205d-43f5-b6ee-06f5c0a82f33","savedPayload":{"position":{"x":15392.900591436046,"y":18873.151975537177},"targetPosition":{"x":15211.42938287064,"y":18709.591525655145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.prevClose = 0\n\nvariable.previousATR2 = 0\nvariable.previousATR3 = 0\nvariable.previousATR14 = 0","project":"Superalgos","id":"b1ee7e9d-a89a-4c18-beaf-9b1ebdc25dd1","savedPayload":{"position":{"x":15109.914055259567,"y":19188.839831202968},"targetPosition":{"x":15160.493193644543,"y":18948.62593414079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c1dbc0e9-06b0-426a-9e7b-731bd1c2305f","savedPayload":{"position":{"x":15160.493193644543,"y":18948.62593414079},"targetPosition":{"x":15211.42938287064,"y":18709.591525655145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7779fc37-e563-4515-8c11-7732793ebfe0","savedPayload":{"position":{"x":15211.42938287064,"y":18709.591525655145},"targetPosition":{"x":15111.82908854388,"y":18402.43596333557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"660570d1-36e0-4099-817c-6c8a29b32689","savedPayload":{"position":{"x":14750.661289206579,"y":18349.780322693918},"targetPosition":{"x":14465.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"ATR - RMA","id":"99088549-f1c0-4157-ba7e-ffd6dfd0d140"}}},{"type":"Product Definition","name":"ATR - SMA","config":"{\n \"codeName\": \"ATR-SMA\",\n \"singularVariableName\": \"atrSMA\",\n \"pluralVariableName\": \"atrSMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"2570d2c7-72e3-4131-97dc-a9f97f493e93","savedPayload":{"position":{"x":15472.11610717982,"y":18741.93050267255},"targetPosition":{"x":15117.105403575064,"y":18741.930812238214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"93eb665f-d903-4825-9fb1-2783e917ac89","savedPayload":{"position":{"x":15403.749982332578,"y":18950.274850863527},"targetPosition":{"x":15117.105403575064,"y":18741.930812238214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"Begin","code":"record.current.begin","project":"Superalgos","id":"8b1f8ca7-d741-489f-a1f9-3851920e6d59","savedPayload":{"position":{"x":15563.98975852019,"y":19212.413049678013},"targetPosition":{"x":15444.111512197633,"y":19187.105219850695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7c4a6317-bc3a-45d8-9dcc-4c42fa6a653b","savedPayload":{"position":{"x":15444.111512197633,"y":19187.105219850695},"targetPosition":{"x":15085.58723895279,"y":19111.911279284417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"42ca9eb2-da3a-4972-8be8-756fa50a5585","savedPayload":{"position":{"x":15448.78525522479,"y":19438.67387600754},"targetPosition":{"x":15357.597814261277,"y":19356.842918661983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d4ccc9d1-616c-44e1-8019-f5dfbbac5d4c","savedPayload":{"position":{"x":15357.597814261277,"y":19356.842918661983},"targetPosition":{"x":15085.58723895279,"y":19111.911279284417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ATR2","config":"{\n \"codeName\": \"atr2\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.atr2","project":"Superalgos","id":"fa760872-a812-4bc6-8fe4-8669ec91bbe0","savedPayload":{"position":{"x":15236.45046312056,"y":19577.663799949813},"targetPosition":{"x":15198.540010551624,"y":19459.57363893426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"02df8c90-68ec-44ef-8abf-fb7d255815d2","savedPayload":{"position":{"x":15198.540010551624,"y":19459.57363893426},"targetPosition":{"x":15085.58723895279,"y":19111.911279284417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ATR3","config":"{\n \"codeName\": \"atr3\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.atr3","project":"Superalgos","id":"ee78802d-f297-45d6-8fa7-df7800ebf295","savedPayload":{"position":{"x":14983.425277280316,"y":19590.624304791076},"targetPosition":{"x":15009.678460048635,"y":19470.060210477488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3e3dd4c6-8f81-4e2b-bcba-34d1ca11abf0","savedPayload":{"position":{"x":15009.678460048635,"y":19470.060210477488},"targetPosition":{"x":15085.58723895279,"y":19111.911279284417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ATR14","config":"{\n \"codeName\": \"atr14\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.atr14","project":"Superalgos","id":"fdcc52bb-2dd9-4597-8399-eba8f2e36639","savedPayload":{"position":{"x":14757.895117274733,"y":19474.975208550157},"targetPosition":{"x":14840.06843551105,"y":19384.201150231296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"93cc0b1e-9414-406b-bbf7-7708bf303a9a","savedPayload":{"position":{"x":14840.06843551105,"y":19384.201150231296},"targetPosition":{"x":15085.58723895279,"y":19111.911279284417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"de04ae72-affd-4bea-aab2-d7e4b1e8345d","savedPayload":{"position":{"x":15302.429654583873,"y":19311.928359012905},"targetPosition":{"x":15117.105403575064,"y":18741.930812238214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current // get current candle data\nvariable.last14TR.push(calculateTR()) // Add the current true range value to last 14 array\n\nif (variable.last14TR.length > 14) {\n variable.last14TR.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 14 elements\n}\n\nvariable.atr2 = calculateATR(2)\nvariable.atr3 = calculateATR(3)\nvariable.atr14 = calculateATR(14)\nvariable.prevClose = candle.close\n\n/* Helper Functions */\n\n/* Calculate True Range */\nfunction calculateTR() {\n let hl = candle.max - candle.min\n \n if (variable.prevClose === 0) { return hl } // Return High-Low when previous Close is 0\n \n let hcp = Math.abs(candle.max - variable.prevClose)\n let lcp = Math.abs(candle.min - variable.prevClose)\n \n return Math.max(hl, hcp, lcp)\n}\n\n/* Calculate Average True Range - Smoothing Function SMA */\nfunction calculateATR(length) {\n /* We check we have enough values to make the calculation */\n if (variable.last14TR.length < length) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last14TR.length - length; i < variable.last14TR.length; i++) { // Iterate through the last periods\n sum = sum + variable.last14TR[i]\n }\n \n let atr = sum / length\n return atr\n}","project":"Superalgos","id":"de821ecb-f4c2-4645-abe3-f2ec25c5b50f","savedPayload":{"position":{"x":15112.81585302037,"y":19726.046484448707},"targetPosition":{"x":15050.653396756414,"y":19432.052700560984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"81ad9ba0-f387-4884-8b7d-32ee9d44d73e","savedPayload":{"position":{"x":15050.653396756414,"y":19432.052700560984},"targetPosition":{"x":14987.751564882532,"y":19140.476669581738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.last14TR = []\nvariable.prevClose = 0","project":"Superalgos","id":"d388972a-f1b2-4b99-8406-35d07a7a5ab0","savedPayload":{"position":{"x":14660.64938184871,"y":19644.01327732395},"targetPosition":{"x":14824.318926700133,"y":19391.246244290895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad6cc9e7-46c3-4500-924b-7523e5c9fa7f","savedPayload":{"position":{"x":14824.318926700133,"y":19391.246244290895},"targetPosition":{"x":14987.751564882532,"y":19140.476669581738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4a310776-ce28-4e79-97fb-90fb350614c2","savedPayload":{"position":{"x":14987.751564882532,"y":19140.476669581738},"targetPosition":{"x":15117.105403575064,"y":18741.930812238214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d83ffb9c-d01c-49eb-991d-3dc31baac747","savedPayload":{"position":{"x":14641.679910005776,"y":18499.780322693918},"targetPosition":{"x":14465.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"ATR - SMA","id":"a6a3f5a6-8c33-482d-a922-5719afc35325"}}}],"id":"3f716c19-6b29-4a9e-aef4-e4a867838e57","savedPayload":{"position":{"x":14465.344334318033,"y":18257.075224381435},"targetPosition":{"x":14165.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Rate of Change (ROC)","config":"{\n\"codeName\": \"ROC\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates RSI.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market ROC 32","project":"Superalgos","id":"6687ee94-004b-4834-a145-867151c4e37c","savedPayload":{"position":{"x":15008.933381907107,"y":18622.44483249069},"targetPosition":{"x":14938.819526428793,"y":18884.707090876826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"41a488be-c66c-458d-99fc-490b9e8172ef"}}},{"type":"Output Dataset","name":"Multi-Period-Market ROC 76","project":"Superalgos","id":"a27232dd-4d69-46b8-8d8e-67499c9ddc30","savedPayload":{"position":{"x":15174.077838841935,"y":18749.059694959735},"targetPosition":{"x":14938.819526428793,"y":18884.707090876826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"40268fec-e5e8-4b05-9f27-c4072ebda94a"}}},{"type":"Output Dataset","name":"Multi-Period-Market ROC 9","project":"Superalgos","id":"bbeb8cb6-5465-45be-80a9-2cbb46e3f5fa","savedPayload":{"position":{"x":15201.331077961531,"y":18955.151491455043},"targetPosition":{"x":14938.819526428793,"y":18884.707090876826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9c6b7d85-01f5-449c-a5be-9a357b6588bc"}}}],"outputDatasetFolders":[],"id":"b6c54494-092a-4220-b0e9-1db9da7fd411","savedPayload":{"position":{"x":14938.819526428793,"y":18884.707090876826},"targetPosition":{"x":14627.331297304194,"y":19064.746737076068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"5f954d97-d843-483e-919b-d94dd8329497","savedPayload":{"position":{"x":14834.45408468019,"y":17455.46839254802},"targetPosition":{"x":15045.48344698509,"y":17716.203049618853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Rate of Change (ROC) Multi-Period-Market","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"7820dbef-88ab-4682-b542-88f6d2ae9f59","savedPayload":{"position":{"x":15080.41304623451,"y":17382.592767928552},"targetPosition":{"x":15045.48344698509,"y":17716.203049618853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"87a0c5e3-20b4-48f7-a9db-4a9280ecb4b3"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"805d6b40-cc28-470f-8f39-67b2b48f155a","savedPayload":{"position":{"x":15308.849832081294,"y":17502.677079543166},"targetPosition":{"x":15045.48344698509,"y":17716.203049618853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"aa85fa69-abb3-4423-8d78-8bf1dd6c42d5","savedPayload":{"position":{"x":14994.681870186992,"y":19065.033839370873},"targetPosition":{"x":14627.331297304194,"y":19064.746737076068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"87a0c5e3-20b4-48f7-a9db-4a9280ecb4b3","savedPayload":{"position":{"x":14946.684261605933,"y":19249.06978931289},"targetPosition":{"x":14627.331297304194,"y":19064.746737076068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"3a6b674a-eb56-4f63-866b-f4e41dde72bb","savedPayload":{"position":{"x":14811.634440232534,"y":19383.37614366503},"targetPosition":{"x":14627.331297304194,"y":19064.746737076068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"c97508ab-c7eb-4047-911a-3ee3265c352b","savedPayload":{"position":{"x":14627.927303539287,"y":19438.784183043557},"targetPosition":{"x":14627.331297304194,"y":19064.746737076068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a2a141ba-08ed-4f30-9c7d-f811c6a7c571","savedPayload":{"position":{"x":14615.344334318033,"y":18516.882845516768},"targetPosition":{"x":14315.344334318033,"y":18516.882845516768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Calculates RSI\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily ROC 32","project":"Superalgos","id":"3c5e8fe8-cf8d-4a96-967a-2d4d534bbd71","savedPayload":{"position":{"x":14978.585790503006,"y":19072.05799184798},"targetPosition":{"x":14786.604641261492,"y":19264.109327774422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"30276899-0d68-40e3-9c35-a28442485b55"}}},{"type":"Output Dataset","name":"Multi-Period-Daily ROC 76","project":"Superalgos","id":"daf0c646-8592-4fd2-9f7d-bab86663faaf","savedPayload":{"position":{"x":15058.038872582096,"y":19264.193847454917},"targetPosition":{"x":14786.604641261492,"y":19264.109327774422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cb60d68b-b11d-4317-8830-65c212a8c728"}}},{"type":"Output Dataset","name":"Multi-Period-Daily ROC 9","project":"Superalgos","id":"0dbd1ffd-047b-4bf7-a74a-9df95d5b534c","savedPayload":{"position":{"x":14978.29180056839,"y":19456.55465706332},"targetPosition":{"x":14786.604641261492,"y":19264.109327774422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"66f59b6d-9d4b-4cef-9ffd-aed019219809"}}}],"outputDatasetFolders":[],"id":"09d69ba1-345f-4d96-b3e4-a98f1f778a70","savedPayload":{"position":{"x":14786.604641261492,"y":19264.109327774422},"targetPosition":{"x":14428.246269815478,"y":19263.877911817646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Rate of Change (ROC) Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"b1e59db1-0480-4533-940c-e6ede212b124","savedPayload":{"position":{"x":15392.773384578806,"y":17792.26895317057},"targetPosition":{"x":15462.239646243688,"y":18120.451225718956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"af0bcf3a-4021-4861-870a-a06f5aad8761"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"67e616b0-72f4-4e9c-b144-e6f6bde5777b","savedPayload":{"position":{"x":15598.62429579343,"y":17814.241912357164},"targetPosition":{"x":15462.239646243688,"y":18120.451225718956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"c4cbf20f-ff4e-4611-8e4a-4340231bc3c5","savedPayload":{"position":{"x":15752.686076078171,"y":17952.815573069183},"targetPosition":{"x":15462.239646243688,"y":18120.451225718956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"b95527eb-2205-43ef-a1e6-7d3a08219e27","savedPayload":{"position":{"x":15795.827942803273,"y":18155.371084075865},"targetPosition":{"x":15462.239646243688,"y":18120.451225718956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"d1a1f76c-a070-4958-8821-b3abcac7b176","savedPayload":{"position":{"x":14744.078440246507,"y":19447.108012017554},"targetPosition":{"x":14428.246269815478,"y":19263.877911817646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"af0bcf3a-4021-4861-870a-a06f5aad8761","savedPayload":{"position":{"x":14611.053964737748,"y":19581.229080578545},"targetPosition":{"x":14428.246269815478,"y":19263.877911817646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"f75ad3de-ba1f-4c68-a869-1bdad8587c71","savedPayload":{"position":{"x":14428.245659562737,"y":19630.366604182327},"targetPosition":{"x":14428.246269815478,"y":19263.877911817646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"bd45fa4a-4611-4126-b746-e9d56b9991bd","savedPayload":{"position":{"x":14245.46161436666,"y":19580.498820009692},"targetPosition":{"x":14428.246269815478,"y":19263.877911817646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"eea3cb55-83e5-400f-acc4-b71f5631d351","savedPayload":{"position":{"x":14575.151955453364,"y":18666.882845516768},"targetPosition":{"x":14315.344334318033,"y":18516.882845516768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"ROC 76","config":"{\n \"codeName\": \"ROC-76\",\n \"singularVariableName\": \"roc76\",\n \"pluralVariableName\": \"roc76s\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"40268fec-e5e8-4b05-9f27-c4072ebda94a","savedPayload":{"position":{"x":14314.12127307937,"y":19535.220382261967},"targetPosition":{"x":14072.436809520677,"y":19360.046678345214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"cb60d68b-b11d-4317-8830-65c212a8c728","savedPayload":{"position":{"x":14164.62333429476,"y":19643.5798771065},"targetPosition":{"x":14072.436809520677,"y":19360.046678345214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"Begin","code":"record.current.begin","project":"Superalgos","id":"f3985849-3dba-4ab4-be09-45855ceb32a5","savedPayload":{"position":{"x":14090.35742574501,"y":20240.1078249821},"targetPosition":{"x":14028.436669898714,"y":20118.419424725806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ca08ef1e-44f8-4b51-8412-ab5ea4cd4383","savedPayload":{"position":{"x":14028.436669898714,"y":20118.419424725806},"targetPosition":{"x":13905.040550199243,"y":19876.331196723928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"f84ebdb9-1371-4a1b-a55a-ec0fff505e8d","savedPayload":{"position":{"x":13779.263341745129,"y":20264.865670766187},"targetPosition":{"x":13821.292014135495,"y":20134.872909444355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9b6434b8-6a14-4b15-9071-560f91991c1e","savedPayload":{"position":{"x":13821.292014135495,"y":20134.872909444355},"targetPosition":{"x":13905.040550199243,"y":19876.331196723928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Value","config":"{\n \"codeName\": \"value\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.value","project":"Superalgos","id":"4b4cc4ab-233d-4366-bb1c-c6cf4945e87e","savedPayload":{"position":{"x":13541.56143534548,"y":20062.21662922665},"targetPosition":{"x":13663.02830397808,"y":19999.789780996187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a3ee4969-b28a-4d7c-9ceb-eba3ba2c8a21","savedPayload":{"position":{"x":13663.02830397808,"y":19999.789780996187},"targetPosition":{"x":13905.040550199243,"y":19876.331196723928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8b1a0793-6111-4773-b83f-4fdc596aebfc","savedPayload":{"position":{"x":13905.040550199243,"y":19876.331196723928},"targetPosition":{"x":14072.436809520677,"y":19360.046678345214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current // get current candle data\n\n/* Calculate Rate of Change */\nvariable.value = calculateROC(candle.close, variable.length)\n\nvariable.lastCloses.push(candle.close) // Add the current close value to the last closes array.\n\nif (variable.lastCloses.length > variable.length) {\n variable.lastCloses.splice(0, 1) // Remove the first element of the array to keep it at a maximun of n elements.\n}\n\n/* Helper Functions */\n\n/* Calculate Rate of Change */\nfunction calculateROC(source, length) {\n /* Check if we have enough values to make the calculation */\n if (variable.lastCloses.length < length) { return 0 }\n \n /* Check if n-last candle close is zero, avoid division by zero */\n if (variable.lastCloses[0] === 0) { return 0 }\n \n return 100 * (source - variable.lastCloses[0]) / variable.lastCloses[0]\n}","project":"Superalgos","id":"37483919-8084-4d28-8763-02cfd1bdc45d","savedPayload":{"position":{"x":13477.061125501321,"y":19966.568441162126},"targetPosition":{"x":13647.724035519972,"y":19755.965621829666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5eb39756-772a-4cc2-b0f2-4b7eab6abf57","savedPayload":{"position":{"x":13647.724035519972,"y":19755.965621829666},"targetPosition":{"x":13818.767616795143,"y":19544.646354946926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.length = 76\nvariable.lastCloses = []","project":"Superalgos","id":"3157aaee-5248-4767-b339-45835c0cffa7","savedPayload":{"position":{"x":13311.392851826651,"y":19739.34622069687},"targetPosition":{"x":13564.772486033042,"y":19642.261075240218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1392b12a-4221-4e2a-b692-cb7a07b40f84","savedPayload":{"position":{"x":13564.772486033042,"y":19642.261075240218},"targetPosition":{"x":13818.767616795143,"y":19544.646354946926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bd3ccec7-4ec5-40e8-81f2-1402651648b7","savedPayload":{"position":{"x":13818.767616795143,"y":19544.646354946926},"targetPosition":{"x":14072.436809520677,"y":19360.046678345214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9c2b6696-872f-44a4-b6b2-ab15a0c8541a","savedPayload":{"position":{"x":14465.344334318033,"y":18776.6904666521},"targetPosition":{"x":14315.344334318033,"y":18516.882845516768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"ROC 76","id":"a21bb3ba-b24d-4163-b7d0-ea60220fc368"}}},{"type":"Product Definition","name":"ROC 32","config":"{\n \"codeName\": \"ROC-32\",\n \"singularVariableName\": \"roc32\",\n \"pluralVariableName\": \"roc32s\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"41a488be-c66c-458d-99fc-490b9e8172ef","savedPayload":{"position":{"x":13718.618375116974,"y":19410.832629042437},"targetPosition":{"x":13718.490820807947,"y":19112.59402420142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"30276899-0d68-40e3-9c35-a28442485b55","savedPayload":{"position":{"x":13543.1453600053,"y":19353.559133421008},"targetPosition":{"x":13718.490820807947,"y":19112.59402420142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"Begin","code":"record.current.begin","project":"Superalgos","id":"905bb06a-9b7f-4484-8031-22b0bdf76c79","savedPayload":{"position":{"x":12989.160677061296,"y":19698.57763702253},"targetPosition":{"x":13050.800012383836,"y":19578.0527477508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"23ba960b-4a3f-410d-8d95-d7fb8419557e","savedPayload":{"position":{"x":13050.800012383836,"y":19578.0527477508},"targetPosition":{"x":13202.85733186901,"y":19279.818827442105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"8b6f20e9-ffae-470f-9da0-0fc12d2bbd6d","savedPayload":{"position":{"x":12755.23511866818,"y":19425.519413525875},"targetPosition":{"x":12884.308067133694,"y":19383.20189525649},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"40737f74-0e6d-4ea4-9e77-023af6343601","savedPayload":{"position":{"x":12884.308067133694,"y":19383.20189525649},"targetPosition":{"x":13202.85733186901,"y":19279.818827442105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Value","config":"{\n \"codeName\": \"value\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.value","project":"Superalgos","id":"11ce21e7-ebc3-401d-b550-7b129f3f86b5","savedPayload":{"position":{"x":12783.121989186639,"y":19066.299947034604},"targetPosition":{"x":12903.75325835451,"y":19127.296200889898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4bae0e4f-fa97-4b6e-99de-a61bd75014b1","savedPayload":{"position":{"x":12903.75325835451,"y":19127.296200889898},"targetPosition":{"x":13202.85733186901,"y":19279.818827442105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"048e2c90-bb92-4b32-a847-f337d3953392","savedPayload":{"position":{"x":13202.190682374006,"y":19280.410047627105},"targetPosition":{"x":13718.490820807947,"y":19112.59402420142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current // get current candle data\n\n/* Calculate Rate of Change */\nvariable.value = calculateROC(candle.close, variable.length)\n\nvariable.lastCloses.push(candle.close) // Add the current close value to the last closes array.\n\nif (variable.lastCloses.length > variable.length) {\n variable.lastCloses.splice(0, 1) // Remove the first element of the array to keep it at a maximun of n elements.\n}\n\n/* Helper Functions */\n\n/* Calculate Rate of Change */\nfunction calculateROC(source, length) {\n /* Check if we have enough values to make the calculation */\n if (variable.lastCloses.length < length) { return 0 }\n \n /* Check if n-last candle close is zero, avoid division by zero */\n if (variable.lastCloses[0] === 0) { return 0 }\n \n return 100 * (source - variable.lastCloses[0]) / variable.lastCloses[0]\n}","project":"Superalgos","id":"f84b95ea-bfa6-4c2b-bf49-ff4810a11b97","savedPayload":{"position":{"x":12888.489401132538,"y":19127.753169735326},"targetPosition":{"x":13154.297976415517,"y":19071.518489020447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7848d1ed-fedd-4d0e-8ea6-1212b2d614e5","savedPayload":{"position":{"x":13154.297976415517,"y":19071.518489020447},"targetPosition":{"x":13419.966891686934,"y":19015.55749660139},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.length = 32\nvariable.lastCloses = []","project":"Superalgos","id":"858ab5d5-0fdc-406a-bbf8-18b648879abe","savedPayload":{"position":{"x":12964.271439963351,"y":18719.83340123723},"targetPosition":{"x":13192.142464146888,"y":18867.665713190574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"428a7ff5-a19a-448d-92d9-d11815613c67","savedPayload":{"position":{"x":13192.142464146888,"y":18867.665713190574},"targetPosition":{"x":13419.966891686934,"y":19015.55749660139},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"37ee9d85-7676-4ae0-956a-7c13706f4311","savedPayload":{"position":{"x":13419.966891686934,"y":19015.55749660139},"targetPosition":{"x":13718.490820807947,"y":19112.59402420142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ff5aacca-1783-4247-9702-ee5dd01fb3ff","savedPayload":{"position":{"x":14315.344334318033,"y":18816.882845516768},"targetPosition":{"x":14315.344334318033,"y":18516.882845516768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"ROC 32","id":"7812b3a3-8375-4f0d-9671-acc05b256d74"}}},{"type":"Product Definition","name":"ROC 9","config":"{\n \"codeName\": \"ROC-9\",\n \"singularVariableName\": \"roc9\",\n \"pluralVariableName\": \"roc9s\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"9c6b7d85-01f5-449c-a5be-9a357b6588bc","savedPayload":{"position":{"x":13656.605096016498,"y":19364.19275728213},"targetPosition":{"x":13687.702590016783,"y":19064.801936312448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"66f59b6d-9d4b-4cef-9ffd-aed019219809","savedPayload":{"position":{"x":13486.349789699583,"y":19287.86746984555},"targetPosition":{"x":13687.702590016783,"y":19064.801936312448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"Begin","code":"record.current.begin","project":"Superalgos","id":"d0c1361d-9b94-4eaf-9b94-b7fe36e11779","savedPayload":{"position":{"x":12901.394873051628,"y":19572.35726702975},"targetPosition":{"x":12974.887087734249,"y":19459.01947800212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"805c77d6-442d-408a-b767-f0bc03b78d68","savedPayload":{"position":{"x":12974.887087734249,"y":19459.01947800212},"targetPosition":{"x":13157.391027265778,"y":19177.689935166243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"b9a17c63-21ea-4295-af8e-e6a3329c2b99","savedPayload":{"position":{"x":12696.97362638759,"y":19275.071878342595},"targetPosition":{"x":12830.238755904316,"y":19247.48865213532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fc34bcb4-0c85-4aa6-a08a-a78120167ed0","savedPayload":{"position":{"x":12830.238755904316,"y":19247.48865213532},"targetPosition":{"x":13157.391027265778,"y":19177.689935166243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Value","config":"{\n \"codeName\": \"value\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.value","project":"Superalgos","id":"d035de65-da5d-4c9f-bf6f-390de346f264","savedPayload":{"position":{"x":12762.744616432738,"y":18922.127163569858},"targetPosition":{"x":12875.355146988095,"y":18994.863745604693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2dda380a-bda1-4bc5-9132-86956e080f01","savedPayload":{"position":{"x":12875.355146988095,"y":18994.863745604693},"targetPosition":{"x":13157.391027265778,"y":19177.689935166243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"31966558-4e25-4512-bc6a-1a83d05affac","savedPayload":{"position":{"x":13156.599441905964,"y":19177.816035139378},"targetPosition":{"x":13687.702590016783,"y":19064.801936312448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current // get current candle data\n\n/* Calculate Rate of Change */\nvariable.value = calculateROC(candle.close, variable.length)\n\nvariable.lastCloses.push(candle.close) // Add the current close value to the last closes array.\n\nif (variable.lastCloses.length > variable.length) {\n variable.lastCloses.splice(0, 1) // Remove the first element of the array to keep it at a maximun of n elements.\n}\n\n/* Helper Functions */\n\n/* Calculate Rate of Change */\nfunction calculateROC(source, length) {\n /* Check if we have enough values to make the calculation */\n if (variable.lastCloses.length < length) { return 0 }\n \n /* Check if n-last candle close is zero, avoid division by zero */\n if (variable.lastCloses[0] === 0) { return 0 }\n \n return 100 * (source - variable.lastCloses[0]) / variable.lastCloses[0]\n}","project":"Superalgos","id":"9073d856-36e6-4fbb-86a8-b0244be2ff2a","savedPayload":{"position":{"x":12855.154558109843,"y":18990.86633818107},"targetPosition":{"x":13125.88933406421,"y":18962.89293855672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8bb88eaa-9d57-470b-8bb4-b443917ce585","savedPayload":{"position":{"x":13125.88933406421,"y":18962.89293855672},"targetPosition":{"x":13395.301115489227,"y":18934.647124705894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.length = 9\nvariable.lastCloses = []","project":"Superalgos","id":"d8f4eb7f-979c-423f-96b4-519046ede40b","savedPayload":{"position":{"x":12973.176248094209,"y":18593.112868463013},"targetPosition":{"x":13184.841603055607,"y":18764.118449419162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed52861e-b8e3-40fa-88e8-2d7a1fde01d4","savedPayload":{"position":{"x":13184.841603055607,"y":18764.118449419162},"targetPosition":{"x":13395.301115489227,"y":18934.647124705894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a77a13e5-83be-4f7d-803b-6a18e202ae7e","savedPayload":{"position":{"x":13395.301115489227,"y":18934.647124705894},"targetPosition":{"x":13687.702590016783,"y":19064.801936312448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"83bfd082-1c10-4c42-be63-379a2100cc0e","savedPayload":{"position":{"x":14165.344334318033,"y":18776.6904666521},"targetPosition":{"x":14315.344334318033,"y":18516.882845516768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"ROC 9","id":"5ecd7465-9f89-4e20-bea9-2216863e2990"}}}],"id":"aa47dd1b-60cc-4ab1-8cd1-d5f54005e54c","savedPayload":{"position":{"x":14315.344334318033,"y":18516.882845516768},"targetPosition":{"x":14165.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Stochastic","config":"{\n\"codeName\": \"Stochastic\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates RSI.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Stoch-14-3-3","project":"Superalgos","id":"2c380e74-2851-45ff-975d-32344bb1ac34","savedPayload":{"position":{"x":14139.548849759183,"y":19671.558824397838},"targetPosition":{"x":13905.00195827708,"y":19481.5337394559},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"88b1ff0e-ad99-474c-8833-7b76a5a57ebd"}}}],"outputDatasetFolders":[],"id":"40b215c0-0e30-4315-b501-1335125297ce","savedPayload":{"position":{"x":13905.00195827708,"y":19481.5337394559},"targetPosition":{"x":13615.358389345267,"y":19247.34051029314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"5f810842-42b7-47cf-b1c8-cafff231ca57","savedPayload":{"position":{"x":14359.45087102331,"y":17224.64805011805},"targetPosition":{"x":14570.48023332821,"y":17485.38270718888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Stochastic Multi-Period-Market","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"c8f7ce8f-1aee-4433-8395-e4b6c2e24ba7","savedPayload":{"position":{"x":14605.409832577629,"y":17151.77242549858},"targetPosition":{"x":14570.48023332821,"y":17485.38270718888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"94b42891-942c-4026-aeff-60fd555096f4"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"7d9dc95c-39e1-45a4-b982-3d5bb0994db5","savedPayload":{"position":{"x":14833.846618424413,"y":17271.85673711319},"targetPosition":{"x":14570.48023332821,"y":17485.38270718888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"1262c170-5760-4cb8-8fbc-d8c002bf3a66","savedPayload":{"position":{"x":13750.501795926328,"y":19600.834507007894},"targetPosition":{"x":13615.358389345267,"y":19247.34051029314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"94b42891-942c-4026-aeff-60fd555096f4","savedPayload":{"position":{"x":13556.300527061034,"y":19620.36891365568},"targetPosition":{"x":13615.358389345267,"y":19247.34051029314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"8e13aff4-da04-49bb-81d2-322fd6d0b412","savedPayload":{"position":{"x":13377.380217526432,"y":19541.357409571203},"targetPosition":{"x":13615.358389345267,"y":19247.34051029314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"962fd00f-ab4c-4f0d-af74-a39c6c5a9c38","savedPayload":{"position":{"x":13262.29945362842,"y":19382.849140922044},"targetPosition":{"x":13615.358389345267,"y":19247.34051029314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6a6a6533-21a9-4be9-b2f0-ace1adfe45b8","savedPayload":{"position":{"x":14092.990047848789,"y":18806.66059340349},"targetPosition":{"x":14015.344334318033,"y":18516.882845516768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Calculates RSI\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Stoch-14-3-3","project":"Superalgos","id":"d834ef3b-b891-43d0-b5ba-ab072e0fc98b","savedPayload":{"position":{"x":13292.8816411857,"y":19675.421818898074},"targetPosition":{"x":13261.437340592827,"y":19375.733938448233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4b941e0d-8b0a-41e2-bc20-54e0bc0d936a"}}}],"outputDatasetFolders":[],"id":"3068bb07-0fec-4c91-bfc1-8060bfed5f51","savedPayload":{"position":{"x":13261.437340592827,"y":19375.733938448233},"targetPosition":{"x":13222.716557950087,"y":19006.715341160238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Stochastic Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"1cafc2e1-ea17-4b18-bd08-9ce02fd49de3","savedPayload":{"position":{"x":14917.770170921925,"y":17561.448610740597},"targetPosition":{"x":14987.236432586807,"y":17889.630883288984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"494234e3-13b6-4f90-a529-77b23ee55bc8"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"31a36ff7-480e-4472-8286-ab91f424d2f2","savedPayload":{"position":{"x":15123.62108213655,"y":17583.421569927188},"targetPosition":{"x":14987.236432586807,"y":17889.630883288984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"bf8a555b-95d9-4a79-8889-4b9e3fe0bc06","savedPayload":{"position":{"x":15277.68286242129,"y":17721.995230639208},"targetPosition":{"x":14987.236432586807,"y":17889.630883288984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"a38119ba-cc6a-4cc8-8138-c9fe971073c0","savedPayload":{"position":{"x":15320.824729146392,"y":17924.550741645893},"targetPosition":{"x":14987.236432586807,"y":17889.630883288984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"c9030a10-5dbe-4438-9b47-e3c2e21e9c45","savedPayload":{"position":{"x":13069.491397115922,"y":19350.038916312325},"targetPosition":{"x":13222.716557950087,"y":19006.715341160238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"494234e3-13b6-4f90-a529-77b23ee55bc8","savedPayload":{"position":{"x":12917.836912733812,"y":19228.234249660654},"targetPosition":{"x":13222.716557950087,"y":19006.715341160238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"0141c05e-dd7a-4466-b87c-6f5ff6248096","savedPayload":{"position":{"x":12848.58107207068,"y":19046.265422478395},"targetPosition":{"x":13222.716557950087,"y":19006.715341160238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"e8651790-aada-42d6-85c7-b98b6bd2f7d6","savedPayload":{"position":{"x":12875.06023777149,"y":18872.181385849726},"targetPosition":{"x":13222.716557950087,"y":19006.715341160238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6a39c43d-0ad2-4c98-ae06-6e40f55d1753","savedPayload":{"position":{"x":13865.344334318033,"y":18776.6904666521},"targetPosition":{"x":14015.344334318033,"y":18516.882845516768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Stoch-14-3-3","config":"{\n \"codeName\": \"Stoch-14-3-3\",\n \"singularVariableName\": \"stoch1433\",\n \"pluralVariableName\": \"stoch1433s\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"88b1ff0e-ad99-474c-8833-7b76a5a57ebd","savedPayload":{"position":{"x":13004.06761041703,"y":19361.104625510237},"targetPosition":{"x":13130.570381785448,"y":19031.170971173728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"4b941e0d-8b0a-41e2-bc20-54e0bc0d936a","savedPayload":{"position":{"x":12834.104503070754,"y":19223.427131090273},"targetPosition":{"x":13130.570381785448,"y":19031.170971173728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"Begin","code":"record.current.begin","project":"Superalgos","id":"f75f0660-8a0c-44cb-bf93-db351ab8d05c","savedPayload":{"position":{"x":12122.365439559711,"y":19406.01629098763},"targetPosition":{"x":12231.034563710582,"y":19271.71015493603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8c35b00f-6b83-47b6-8f23-ecef14656d97","savedPayload":{"position":{"x":12231.034563710582,"y":19271.71015493603},"targetPosition":{"x":12458.122288795184,"y":18990.974948712355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"c7303daa-523a-4153-ae52-a8cac30aa567","savedPayload":{"position":{"x":11942.728033441905,"y":19129.001522343606},"targetPosition":{"x":12109.367235877373,"y":19084.407734478482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"db80f524-af49-4d39-b4b4-d70d87e47745","savedPayload":{"position":{"x":12109.367235877373,"y":19084.407734478482},"targetPosition":{"x":12458.122288795184,"y":18990.974948712355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fast Line","config":"{\n \"codeName\": \"fastLine\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.fastLine","project":"Superalgos","id":"430718f7-482d-4a44-96ce-a85dd76680b1","savedPayload":{"position":{"x":11953.28260028235,"y":18797.57969264456},"targetPosition":{"x":12115.13704231436,"y":18859.526827090576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a2b00adf-0b72-44cf-82a0-bcd6b95ff7c1","savedPayload":{"position":{"x":12115.13704231436,"y":18859.526827090576},"targetPosition":{"x":12458.122288795184,"y":18990.974948712355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Line","config":"{\n \"codeName\": \"slowLine\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.slowLine","project":"Superalgos","id":"9ad4bcac-98b9-4880-93fe-a6319635384a","savedPayload":{"position":{"x":12149.24710607322,"y":18538.458915311232},"targetPosition":{"x":12261.710964333291,"y":18693.36626511135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c7620ef0-d47f-4eba-ae08-386c7cae1491","savedPayload":{"position":{"x":12261.710964333291,"y":18693.36626511135},"targetPosition":{"x":12458.122288795184,"y":18990.974948712355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"77ed625d-dbbc-4dc0-a707-de3ca5066341","savedPayload":{"position":{"x":12425.038924721215,"y":18994.379878811258},"targetPosition":{"x":13130.570381785448,"y":19031.170971173728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current // get current candle data\nvariable.lastHighs.push(candle.max) // Add the current high value to the last highs array.\nvariable.lastLows.push(candle.min) // Add the current low value to the last lows array.\n\n/* Remove the first element of the array to keep it at a maximun of n elements */\nif (variable.lastHighs.length > variable.length) {\n variable.lastHighs.splice(0, 1)\n variable.lastLows.splice(0, 1)\n}\n\n/* Calculate Stoch - Signal */\nvariable.signal = calculateStoch(candle.close, variable.length)\n\n\nvariable.lastSignals.push(variable.signal)\n\n/* Remove the first element of the array to keep it at a maximun of n elements */\nif (variable.lastSignals.length > variable.smaFast) {\n variable.lastSignals.splice(0, 1)\n}\n\n/* Calculate Stoch - Fast Line */\nvariable.fastLine = calculateSMA(variable.lastSignals, variable.smaFast)\n\n\nvariable.lastSMAFast.push(variable.fastLine)\n\n/* Remove the first element of the array to keep it at a maximun of n elements */\nif (variable.lastSMAFast.length > variable.smaSlow) {\n variable.lastSMAFast.splice(0, 1)\n}\n\n/* Calculate Stoch - Slow Line */\nvariable.slowLine = calculateSMA(variable.lastSMAFast, variable.smaSlow)\n\n\n/* Helper Functions */\n\n/* Calculate Sochastic Signal */\nfunction calculateStoch(source, length) {\n /* Check if we have enough values to make the calculation */\n if (variable.lastHighs.length < length) { return 0 }\n \n /* Get highest high and lowest low of n-last elements */\n let high = Math.max(...variable.lastHighs)\n let low = Math.min(...variable.lastLows)\n\n /* Check on division by Zero */\n if(high === low) { return 0 }\n \n return 100 * (source - low) / (high - low)\n}\n\n/* Calculate Simple Moving Average */\nfunction calculateSMA(values, length) {\n /* We check we have enough values to make the calculation */\n if (values.length < length) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = values.length - length; i < values.length; i++) { // Iterate through the last periods\n sum = sum + values[i]\n }\n \n return sum / length\n}","project":"Superalgos","id":"cb01047f-16aa-4507-8e97-a96d7a8bbb75","savedPayload":{"position":{"x":12159.0254730005,"y":18698.64521302974},"targetPosition":{"x":12507.812215796479,"y":18753.826877550106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2e7b0c32-92cc-4e9e-a130-ae33bc248b40","savedPayload":{"position":{"x":12507.812215796479,"y":18753.826877550106},"targetPosition":{"x":12856.337340568305,"y":18809.08618152958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.length = 14\nvariable.smaFast = 3\nvariable.smaSlow = 3\n\nvariable.signal = 0\nvariable.lastSignals = []\nvariable.lastSMAFast = []\nvariable.lastHighs = []\nvariable.lastLows = []","project":"Superalgos","id":"18cf20b6-0b7b-4520-9cf4-89ee085ab8b9","savedPayload":{"position":{"x":12441.189670001335,"y":18237.68441715349},"targetPosition":{"x":12648.724660790016,"y":18523.299611254966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bc5124f7-650e-476b-b997-1257e4f89c2f","savedPayload":{"position":{"x":12648.724660790016,"y":18523.299611254966},"targetPosition":{"x":12856.337340568305,"y":18809.08618152958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"169e9a70-4b42-426c-8d9a-b60c41ab7f17","savedPayload":{"position":{"x":12856.337340568305,"y":18809.08618152958},"targetPosition":{"x":13130.570381785448,"y":19031.170971173728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"393dc97b-76ee-409a-9b8f-f264ed652b0b","savedPayload":{"position":{"x":13725.566586431312,"y":18594.528559047525},"targetPosition":{"x":14015.344334318033,"y":18516.882845516768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Stoch 14-3-3","id":"6a85fbb1-5a99-4ccc-93e8-092f5dbf6c4a"}}}],"id":"87754aba-6878-4841-9688-352e8c565d16","savedPayload":{"position":{"x":14015.344334318033,"y":18516.882845516768},"targetPosition":{"x":14165.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"plotters":[{"type":"Plotter","name":"Average True Range (ATR)","config":"{\n\"codeName\": \"Plotter-ATR\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"ATR - RMA","config":"{\n\t\"codeName\": \"Module-ATR-RMA\",\n\t\"banner\": \"Oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Grid","project":"Superalgos","points":[{"type":"Point","name":"Begin 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"a7d2fc22-a7d8-4e61-ab21-f9a39f1d8c60","savedPayload":{"position":{"x":13653.871300609968,"y":19119.953262831852},"targetPosition":{"x":13619.532708273084,"y":19316.137204984807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2b15da18-c6ba-45b4-9c1d-35c84f50ec2c","savedPayload":{"position":{"x":13619.532708273084,"y":19316.137204984807},"targetPosition":{"x":13585.038840716112,"y":19512.83235710673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"95e093d9-e212-4ee4-abc0-6b5deffc8db6","savedPayload":{"position":{"x":13891.924639941586,"y":19256.67883107766},"targetPosition":{"x":13738.512849493647,"y":19384.610872980073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c0ff77b-ba09-41be-9ff5-cb6d8bae710d","savedPayload":{"position":{"x":13738.512849493647,"y":19384.610872980073},"targetPosition":{"x":13585.038840716112,"y":19512.83235710673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-2 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.atr2","project":"Superalgos","id":"75a4f710-e619-4578-ad51-a01b965800db","savedPayload":{"position":{"x":13985.86691454998,"y":19513.44372790657},"targetPosition":{"x":13785.479084176077,"y":19513.081659914802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a5d5cdc1-5731-4ec5-b8cd-001e4e62ef54","savedPayload":{"position":{"x":13785.479084176077,"y":19513.081659914802},"targetPosition":{"x":13585.038840716112,"y":19512.83235710673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-2 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.atr2","project":"Superalgos","id":"fcb4421d-ee8a-4a27-8bd2-100cdb0cdbf9","savedPayload":{"position":{"x":13892.032792373917,"y":19771.01365371225},"targetPosition":{"x":13738.584020289993,"y":19641.881812090258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d548a98e-d369-45da-abaf-2e5a758e5379","savedPayload":{"position":{"x":13738.584020289993,"y":19641.881812090258},"targetPosition":{"x":13585.038840716112,"y":19512.83235710673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-3 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.atr3","project":"Superalgos","id":"fb2683a4-a28c-4f2b-9345-93937db60072","savedPayload":{"position":{"x":13654.433256515014,"y":19908.095777372575},"targetPosition":{"x":13619.809100971012,"y":19710.421049658275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08c720e8-2c9a-435d-baf4-06e38a7c7ce0","savedPayload":{"position":{"x":13619.809100971012,"y":19710.421049658275},"targetPosition":{"x":13585.038840716112,"y":19512.83235710673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-3 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.atr3","project":"Superalgos","id":"bdb5b37c-6890-4186-9877-84c01b1672af","savedPayload":{"position":{"x":13384.86014742354,"y":19860.483276799227},"targetPosition":{"x":13485.049058225875,"y":19686.60931772967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a25effcc-2adc-4fc1-939c-45630c3ccd75","savedPayload":{"position":{"x":13485.049058225875,"y":19686.60931772967},"targetPosition":{"x":13585.038840716112,"y":19512.83235710673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-14 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.atr14","project":"Superalgos","id":"df8f75d2-2e35-4567-a43a-6ef38a1d9b6e","savedPayload":{"position":{"x":13208.584983833189,"y":19650.49754924135},"targetPosition":{"x":13396.934232087955,"y":19581.58805671044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"87985d52-78d7-4796-9918-81c7a534035d","savedPayload":{"position":{"x":13396.934232087955,"y":19581.58805671044},"targetPosition":{"x":13585.038840716112,"y":19512.83235710673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-14 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.atr14","project":"Superalgos","id":"9f5379b7-8632-4873-8534-a13505a8cd92","savedPayload":{"position":{"x":13209.003842370985,"y":19377.2541932991},"targetPosition":{"x":13397.127071356557,"y":19444.69671342954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48292688-3718-49fe-9580-97d9ac87fcd4","savedPayload":{"position":{"x":13397.127071356557,"y":19444.69671342954},"targetPosition":{"x":13585.038840716112,"y":19512.83235710673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1cc0e5a-f1dd-4723-a632-51abeb3f696c","savedPayload":{"position":{"x":13585.038840716112,"y":19512.83235710673},"targetPosition":{"x":13186.482907832658,"y":18821.97695189916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line 0","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"4f411d32-d31c-4f70-880d-14400f3f8e20","savedPayload":{"position":{"x":13457.907384246548,"y":19693.976087680807},"targetPosition":{"x":13306.833809660096,"y":19530.27497485336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"18c69ccb-7152-4204-b34e-0d1d92840067","savedPayload":{"position":{"x":13306.833809660096,"y":19530.27497485336},"targetPosition":{"x":13092.476220632878,"y":19315.87297769144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End 0","project":"Superalgos","id":"e1973335-e34b-410f-8c60-6e4f77e4f7fc","savedPayload":{"position":{"x":13092.476284097807,"y":19618.864691375216},"targetPosition":{"x":13092.476220632878,"y":19315.87297769144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"8c0ff77b-ba09-41be-9ff5-cb6d8bae710d"}}},{"type":"Polygon Vertex","name":"Begin 0","project":"Superalgos","id":"5cf3f400-725e-4f2f-8fbb-f9d9d75210a9","savedPayload":{"position":{"x":12875.901425899501,"y":19532.637537031813},"targetPosition":{"x":13092.476220632878,"y":19315.87297769144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"2b15da18-c6ba-45b4-9c1d-35c84f50ec2c"}}}],"id":"b24d41f5-7cc8-4b4b-a0a9-b31b5799c74c","savedPayload":{"position":{"x":13186.326606026596,"y":19221.79100077515},"targetPosition":{"x":13186.482907832658,"y":18821.97695189916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"ATR-14 Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"97f64b46-e6ae-4a56-89fe-808c11a09ec4","savedPayload":{"position":{"x":13004.409873740587,"y":19768.821193830903},"targetPosition":{"x":12946.28450556237,"y":19551.324411120644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"fab23f0e-9455-47a4-ba56-17c3ae1f0c7f","savedPayload":{"position":{"x":12946.28450556237,"y":19551.324411120644},"targetPosition":{"x":12867.169595288506,"y":19255.445078367236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"ATR-14 End","project":"Superalgos","id":"872ffd8b-6c72-42dc-90b4-2c8c73d89173","savedPayload":{"position":{"x":12713.99654304235,"y":19520.683508229053},"targetPosition":{"x":12867.169595288506,"y":19255.445078367236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-14 End","id":"48292688-3718-49fe-9580-97d9ac87fcd4"}}},{"type":"Polygon Vertex","name":"ATR-14 Begin","project":"Superalgos","id":"76fc0dd8-8e4c-4392-93a7-25c0906e6d90","savedPayload":{"position":{"x":12571.201400186928,"y":19334.72910135868},"targetPosition":{"x":12867.169595288506,"y":19255.445078367236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-14 Begin","id":"87985d52-78d7-4796-9918-81c7a534035d"}}}],"id":"ecec9e37-265d-4f9e-8e82-68f6333fbbea","savedPayload":{"position":{"x":12986.36394175057,"y":19168.533476997167},"targetPosition":{"x":13186.482907832658,"y":18821.97695189916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"ATR-3 Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"0bf6c9ec-c077-4ec0-aee5-461ca992952f","savedPayload":{"position":{"x":12735.736757097915,"y":19408.92749305495},"targetPosition":{"x":12787.907134000325,"y":19215.450565930772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"e2ed8b31-4016-421b-b4a5-be4a1efe7dce","savedPayload":{"position":{"x":12787.907134000325,"y":19215.450565930772},"targetPosition":{"x":12839.987380869174,"y":19021.973375922527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"ATR-3 Begin","project":"Superalgos","id":"1f566a4a-a727-4315-bf57-98f6bda4f9f9","savedPayload":{"position":{"x":12666.200707348435,"y":19122.146546122975},"targetPosition":{"x":12839.987380869174,"y":19021.973375922527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-3 Begin","id":"08c720e8-2c9a-435d-baf4-06e38a7c7ce0"}}},{"type":"Polygon Vertex","name":"ATR-3 End","project":"Superalgos","id":"e2ebb5ae-1776-4084-b22d-f8bb1f0f9ce2","savedPayload":{"position":{"x":12646.146960168571,"y":18970.516139771185},"targetPosition":{"x":12839.987380869174,"y":19021.973375922527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-3 End","id":"a25effcc-2adc-4fc1-939c-45630c3ccd75"}}}],"id":"faed1922-2c6f-404f-aa89-bd0279d4a7f6","savedPayload":{"position":{"x":12839.987380869174,"y":19021.973375922527},"targetPosition":{"x":13186.482907832658,"y":18821.97695189916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"ATR-2 Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"5cf73947-8357-482f-b35f-8e9b53437b6a","savedPayload":{"position":{"x":12268.885825197689,"y":19239.33988259211},"targetPosition":{"x":12428.158215134037,"y":19080.028229447955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"4caa937b-ddf0-4ca2-af43-2d464ccad98d","savedPayload":{"position":{"x":12428.158215134037,"y":19080.028229447955},"targetPosition":{"x":12642.334112450113,"y":18865.819958623797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"ATR-2 Begin","project":"Superalgos","id":"c163eb42-687b-4fba-9db6-0084e18e52ce","savedPayload":{"position":{"x":12339.362164957802,"y":18865.85253613687},"targetPosition":{"x":12642.334112450113,"y":18865.819958623797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-2 Begin","id":"a5d5cdc1-5731-4ec5-b8cd-001e4e62ef54"}}},{"type":"Polygon Vertex","name":"ATR-2 End","project":"Superalgos","id":"a44429f7-6721-4619-9419-d14c0a30de19","savedPayload":{"position":{"x":12426.937981376319,"y":18650.429035190355},"targetPosition":{"x":12642.334112450113,"y":18865.819958623797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-2 End","id":"d548a98e-d369-45da-abaf-2e5a758e5379"}}}],"id":"2a6fc3b7-2f9f-4a82-8a96-c05208c308b6","savedPayload":{"position":{"x":12792.854290000712,"y":18827.269762402448},"targetPosition":{"x":13186.482907832658,"y":18821.97695189916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"b5cf58d5-da89-4fff-83cc-000ac1095b32","savedPayload":{"position":{"x":13186.482907832658,"y":18821.97695189916},"targetPosition":{"x":13386.043081475327,"y":18476.082746317756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"ATR - RMA","config":"{ \n\"codeName\": \"Panel-ATR-RMA\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"ATR-2","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.atr2","project":"Superalgos","id":"437acbb9-8126-4866-9a59-5624ab0212fa","savedPayload":{"position":{"x":12689.606048673246,"y":18747.74275773145},"targetPosition":{"x":12844.958211148158,"y":18617.085566845824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08c2e812-c653-45fa-8350-f79c9be57419","savedPayload":{"position":{"x":12844.958211148158,"y":18617.085566845824},"targetPosition":{"x":12986.643151410157,"y":18475.97083021092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ATR-3","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.atr3","project":"Superalgos","id":"d1bb96e2-10c5-41c8-9599-b1220ca00fae","savedPayload":{"position":{"x":12585.710946427327,"y":18475.84733451977},"targetPosition":{"x":12786.142620522907,"y":18475.932087561083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e940e706-b774-413a-9b2f-24d4f2d3403d","savedPayload":{"position":{"x":12786.142620522907,"y":18475.932087561083},"targetPosition":{"x":12986.643151410157,"y":18475.97083021092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ATR-14","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.atr14","project":"Superalgos","id":"9d2b2ba5-4b4c-4323-b66f-25d703cd7522","savedPayload":{"position":{"x":12703.250296222122,"y":18192.7625593956},"targetPosition":{"x":12844.930867252788,"y":18334.380258799494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c4283089-0809-4a02-bb24-fb061af3430a","savedPayload":{"position":{"x":12844.930867252788,"y":18334.380258799494},"targetPosition":{"x":12986.643151410157,"y":18475.97083021092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ea919b0e-a30e-44d7-8d5b-cd83f2c0c3e5","savedPayload":{"position":{"x":12986.643151410157,"y":18475.97083021092},"targetPosition":{"x":13386.043081475327,"y":18476.082746317756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"99088549-f1c0-4157-ba7e-ffd6dfd0d140","savedPayload":{"position":{"x":13386.043081475327,"y":18476.082746317756},"targetPosition":{"x":13765.467815432614,"y":18257.19365613139},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Plotter Module","name":"ATR - SMA","config":"{\n\t\"codeName\": \"Module-ATR-SMA\",\n\t\"banner\": \"Oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Grid","project":"Superalgos","points":[{"type":"Point","name":"Begin 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"24c4ad6e-7531-4c02-a4d1-a92fa0c2d0bd","savedPayload":{"position":{"x":12971.119986950249,"y":18518.03528893684},"targetPosition":{"x":12759.769676598487,"y":18594.784519993726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e1b746f-f708-49a5-9717-eebf4bb6c91a","savedPayload":{"position":{"x":12759.769676598487,"y":18594.784519993726},"targetPosition":{"x":12481.77784164968,"y":18695.849358122832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"96531747-4036-4cf3-91ce-53a592c111db","savedPayload":{"position":{"x":12971.087268712712,"y":18873.911789067744},"targetPosition":{"x":12759.466392719387,"y":18796.975327723892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"51c6cdeb-f974-49f5-a8d6-4a3e4c57539e","savedPayload":{"position":{"x":12759.466392719387,"y":18796.975327723892},"targetPosition":{"x":12481.77784164968,"y":18695.849358122832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-2 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.atr2","project":"Superalgos","id":"a0a91f69-8665-4c10-97ed-b344d46e24e9","savedPayload":{"position":{"x":12742.17856723236,"y":19146.830363930327},"targetPosition":{"x":12629.422093181834,"y":18951.81150086756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"84bd5028-9dd1-4128-b903-2e8e27afee2c","savedPayload":{"position":{"x":12629.422093181834,"y":18951.81150086756},"targetPosition":{"x":12481.77784164968,"y":18695.849358122832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-2 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.atr2","project":"Superalgos","id":"b79ea353-e9af-486d-bd59-f647c1d34121","savedPayload":{"position":{"x":12391.316112767501,"y":19208.60306822377},"targetPosition":{"x":12430.470959288952,"y":18986.860813012907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ebcf383a-71f7-4caf-8c4b-1334e60dfb49","savedPayload":{"position":{"x":12430.470959288952,"y":18986.860813012907},"targetPosition":{"x":12481.77784164968,"y":18695.849358122832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-3 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.atr3","project":"Superalgos","id":"5e321a40-2362-4534-b465-2a9989aecdf8","savedPayload":{"position":{"x":12082.847770433655,"y":19030.564643534963},"targetPosition":{"x":12255.465648035639,"y":18885.770319348274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"806649c5-aef9-4da4-8c8a-e041bc9e71e2","savedPayload":{"position":{"x":12255.465648035639,"y":18885.770319348274},"targetPosition":{"x":12481.77784164968,"y":18695.849358122832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-3 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.atr3","project":"Superalgos","id":"210cdd54-6060-47ff-be8a-06d80daf1438","savedPayload":{"position":{"x":11931.040209725063,"y":18695.856307251648},"targetPosition":{"x":12161.200370127157,"y":18695.848099950676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e5945b52-ef11-4a12-9503-8c8accbefcc5","savedPayload":{"position":{"x":12161.200370127157,"y":18695.848099950676},"targetPosition":{"x":12481.77784164968,"y":18695.849358122832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-14 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.atr14","project":"Superalgos","id":"37501854-7854-49b5-8ab0-d36febe18a65","savedPayload":{"position":{"x":12082.543495556925,"y":18361.339959347893},"targetPosition":{"x":12255.217962444302,"y":18505.98909918443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"57b4f263-265b-4a4f-9470-6c1503961d61","savedPayload":{"position":{"x":12255.217962444302,"y":18505.98909918443},"targetPosition":{"x":12481.77784164968,"y":18695.849358122832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-14 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.atr14","project":"Superalgos","id":"8395b74a-3ceb-49b7-a2e5-f7b00866bd7b","savedPayload":{"position":{"x":12389.280402280645,"y":18179.17557149128},"targetPosition":{"x":12429.990904794839,"y":18402.17903065696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"79026076-fe40-4641-a1c7-903c20ecff2d","savedPayload":{"position":{"x":12429.990904794839,"y":18402.17903065696},"targetPosition":{"x":12481.77784164968,"y":18695.849358122832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bfab9870-bf09-49c5-86cd-975ee33e64ca","savedPayload":{"position":{"x":12417.879093575477,"y":18804.161000187934},"targetPosition":{"x":12867.211473398937,"y":18025.91615906582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line 0","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"2f3896e2-233c-4413-b989-bb111636a6f1","savedPayload":{"position":{"x":12318.164305955797,"y":18795.144035582598},"targetPosition":{"x":12389.598074117963,"y":18579.21223375277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9e5ef462-76d3-417a-8e33-9481761ba313","savedPayload":{"position":{"x":12389.598074117963,"y":18579.21223375277},"targetPosition":{"x":12477.501102397171,"y":18251.10810496637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End 0","project":"Superalgos","id":"510f0f9c-b8c3-405f-93fa-150f2ba98b44","savedPayload":{"position":{"x":12184.827054201378,"y":18419.97672953765},"targetPosition":{"x":12477.501102397171,"y":18251.10810496637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"51c6cdeb-f974-49f5-a8d6-4a3e4c57539e"}}},{"type":"Polygon Vertex","name":"Begin 0","project":"Superalgos","id":"aac1fbbe-4728-4c97-92ea-7ab4ab1e976a","savedPayload":{"position":{"x":12146.167210436714,"y":18162.50416005346},"targetPosition":{"x":12477.501102397171,"y":18251.10810496637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"8e1b746f-f708-49a5-9717-eebf4bb6c91a"}}}],"id":"dae87eed-2840-45ec-b8fd-97868408e748","savedPayload":{"position":{"x":12477.297628673965,"y":18251.0647988392},"targetPosition":{"x":12867.211473398937,"y":18025.91615906582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"ATR-14 Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"7026f16e-1ad8-4eaa-bbab-ce47b2ad820d","savedPayload":{"position":{"x":12041.247563103094,"y":18401.707007293968},"targetPosition":{"x":12200.436382616383,"y":18242.608419639677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f8abfda8-11a5-4159-8b25-70b123bb3da8","savedPayload":{"position":{"x":12200.436382616383,"y":18242.608419639677},"targetPosition":{"x":12417.195625665423,"y":18025.935036541785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"ATR-14 End","project":"Superalgos","id":"aa7480fd-e24a-43db-b0b9-96fbbf6a8190","savedPayload":{"position":{"x":12110.781034888929,"y":18025.93948478445},"targetPosition":{"x":12417.195625665423,"y":18025.935036541785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-14 End","id":"79026076-fe40-4641-a1c7-903c20ecff2d"}}},{"type":"Polygon Vertex","name":"ATR-14 Begin","project":"Superalgos","id":"a0c299f5-5134-4d5f-9f32-1589e26f8e94","savedPayload":{"position":{"x":12200.426057959517,"y":17809.41383893721},"targetPosition":{"x":12417.195625665423,"y":18025.935036541785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-14 Begin","id":"57b4f263-265b-4a4f-9470-6c1503961d61"}}}],"id":"60444df5-1f4a-4553-92bb-5af88cc3b422","savedPayload":{"position":{"x":12416.899762325778,"y":18025.91127785977},"targetPosition":{"x":12867.211473398937,"y":18025.91615906582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"ATR-3 Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"0fdd9432-2ce4-4f80-987e-6683bee9b731","savedPayload":{"position":{"x":11960.73285047954,"y":17939.042866663418},"targetPosition":{"x":12178.446911197636,"y":17880.839195308574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"89eab967-e7d1-4bf5-b4d0-3919f59392bb","savedPayload":{"position":{"x":12178.446911197636,"y":17880.839195308574},"targetPosition":{"x":12477.487178114363,"y":17800.876157826766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"ATR-3 Begin","project":"Superalgos","id":"74dc9232-405c-4361-a9c1-52b0cb48a8ab","savedPayload":{"position":{"x":12210.717075804972,"y":17646.848305031006},"targetPosition":{"x":12477.487178114363,"y":17800.876157826766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-3 Begin","id":"806649c5-aef9-4da4-8c8a-e041bc9e71e2"}}},{"type":"Polygon Vertex","name":"ATR-3 End","project":"Superalgos","id":"f5142bc0-0a8a-4b51-bb55-37d55d2b07b2","savedPayload":{"position":{"x":12397.363448466596,"y":17501.78672378432},"targetPosition":{"x":12477.487178114363,"y":17800.876157826766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-3 End","id":"e5945b52-ef11-4a12-9503-8c8accbefcc5"}}}],"id":"61c9a80d-5f39-438c-9c90-9ebb93e3ebf1","savedPayload":{"position":{"x":12477.248748905531,"y":17800.792844251344},"targetPosition":{"x":12867.211473398937,"y":18025.91615906582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"ATR-2 Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"3cd2a5a6-65a3-4459-9b82-9df07a560744","savedPayload":{"position":{"x":12130.688071715333,"y":17498.970584803243},"targetPosition":{"x":12348.158479918708,"y":17557.203602315712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"7e31615a-3abe-4749-be9c-9d4e7d0e8290","savedPayload":{"position":{"x":12348.158479918708,"y":17557.203602315712},"targetPosition":{"x":12642.414732217814,"y":17636.065351771715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"ATR-2 Begin","project":"Superalgos","id":"05f68187-ffcb-4e54-9ff2-c46dc076fded","savedPayload":{"position":{"x":12490.10076134112,"y":17372.149559050195},"targetPosition":{"x":12642.414732217814,"y":17636.065351771715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-2 Begin","id":"84bd5028-9dd1-4128-b903-2e8e27afee2c"}}},{"type":"Polygon Vertex","name":"ATR-2 End","project":"Superalgos","id":"fde40884-dc75-4eb5-b93d-b8ec1d19d93a","savedPayload":{"position":{"x":12721.196782305557,"y":17341.729864742585},"targetPosition":{"x":12642.414732217814,"y":17636.065351771715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-2 End","id":"ebcf383a-71f7-4caf-8c4b-1334e60dfb49"}}}],"id":"ae2cd4db-eebd-4bda-813a-9d9a788f8838","savedPayload":{"position":{"x":12642.181937923218,"y":17635.923781948553},"targetPosition":{"x":12867.211473398937,"y":18025.91615906582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"9a053fa4-ca14-432c-8927-15ef216b2faf","savedPayload":{"position":{"x":12375.010118286198,"y":17939.97138426258},"targetPosition":{"x":12996.010108087248,"y":17939.972723398158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"ATR - SMA","config":"{ \n\"codeName\": \"Panel-ATR-SMA\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"ATR-2","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.atr2","project":"Superalgos","id":"71d72170-f480-46e5-9fb7-3f79eef990d6","savedPayload":{"position":{"x":12084.763419973446,"y":17241.47541022092},"targetPosition":{"x":12385.202877495165,"y":17321.914158264808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"00581f1e-843d-436b-8625-71b0814676f7","savedPayload":{"position":{"x":12385.202877495165,"y":17321.914158264808},"targetPosition":{"x":12685.651242131433,"y":17402.279147132598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ATR-3","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.atr3","project":"Superalgos","id":"ac407a65-ed19-4863-b039-0e53dcf6744d","savedPayload":{"position":{"x":12374.711484631873,"y":16863.493406177542},"targetPosition":{"x":12530.187315854244,"y":17132.895784315722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bded503d-8475-4b34-886e-ec67a698a06d","savedPayload":{"position":{"x":12530.187315854244,"y":17132.895784315722},"targetPosition":{"x":12685.651242131433,"y":17402.279147132598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ATR-14","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.atr14","project":"Superalgos","id":"07af6d07-5ef8-4c38-a1c4-5f07355e9274","savedPayload":{"position":{"x":12846.378293283804,"y":16801.427150187727},"targetPosition":{"x":12766.055413164355,"y":17101.8667852005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0eda57d2-0c10-4511-b3ab-7c6f1c5b953a","savedPayload":{"position":{"x":12766.055413164355,"y":17101.8667852005},"targetPosition":{"x":12685.651242131433,"y":17402.279147132598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d841e272-ce7b-4f3d-9774-545f69e8fc79","savedPayload":{"position":{"x":12685.651242131433,"y":17402.279147132598},"targetPosition":{"x":12996.010108087248,"y":17939.972723398158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a6a3f5a6-8c33-482d-a922-5719afc35325","savedPayload":{"position":{"x":13386.07016175849,"y":18038.43419944887},"targetPosition":{"x":13765.467815432614,"y":18257.19365613139},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"17f8f37a-bf30-4c1d-82f2-f587830576a0","savedPayload":{"position":{"x":13865.344334318033,"y":18257.075224381435},"targetPosition":{"x":14165.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Rate of Change (ROC)","config":"{\n\"codeName\": \"Plotter-ROC\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"ROC 76","config":"{\n\t\"codeName\": \"Module-ROC-76\",\n\t\"banner\": \"Oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Grid","project":"Superalgos","points":[{"type":"Point","name":"Begin 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"5b9a08e3-0df5-4f24-9e46-cfd57c00dbda","savedPayload":{"position":{"x":12690.765442415486,"y":17710.107690601086},"targetPosition":{"x":12545.565312436727,"y":17486.296956570804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a39c9f60-84e3-4e05-8ef0-24539ac40325","savedPayload":{"position":{"x":12545.565312436727,"y":17486.296956570804},"targetPosition":{"x":12400.013569873416,"y":17262.259342080706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"7860512f-766c-4e66-be5f-7702f9c9f047","savedPayload":{"position":{"x":12063.365982666084,"y":17677.473832372292},"targetPosition":{"x":12231.685705438576,"y":17469.821611097872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0fc534f6-3e3f-408a-b25b-f5c973ec0f63","savedPayload":{"position":{"x":12231.685705438576,"y":17469.821611097872},"targetPosition":{"x":12400.013569873416,"y":17262.259342080706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Value Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.value","project":"Superalgos","id":"721530f2-7ad7-411e-b73a-69d45c002577","savedPayload":{"position":{"x":11901.323230047266,"y":17070.823858234267},"targetPosition":{"x":12150.719282854887,"y":17166.45505814962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3b4f240c-66f5-4a3f-9527-47ea197ccf47","savedPayload":{"position":{"x":12150.719282854887,"y":17166.45505814962},"targetPosition":{"x":12400.013569873416,"y":17262.259342080706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Value End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.value","project":"Superalgos","id":"9eee04a2-4bc6-4277-9716-4db129bc6a03","savedPayload":{"position":{"x":12427.302289129584,"y":16728.62306661268},"targetPosition":{"x":12413.704671068801,"y":16995.323547202126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f1de1d87-6d4a-4aea-bf10-74d64ddfb4ed","savedPayload":{"position":{"x":12413.704671068801,"y":16995.323547202126},"targetPosition":{"x":12400.013569873416,"y":17262.259342080706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e60e3722-01e4-421e-a06f-371bcb71aac4","savedPayload":{"position":{"x":12400.013569873416,"y":17262.259342080706},"targetPosition":{"x":13428.304643907115,"y":16986.981045728597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line 0","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"cc082fda-c47e-438f-8157-f2d870c218ac","savedPayload":{"position":{"x":13152.296446116972,"y":20044.437457634325},"targetPosition":{"x":13001.222871530521,"y":19880.73634480688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"cc2ec800-b3ff-4031-8bdd-688d475b2d5e","savedPayload":{"position":{"x":13001.222871530521,"y":19880.73634480688},"targetPosition":{"x":12786.865282503302,"y":19666.33434764496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End 0","project":"Superalgos","id":"511d620d-335d-4b07-b181-ae732630d137","savedPayload":{"position":{"x":12786.865345968232,"y":19969.326061328735},"targetPosition":{"x":12786.865282503302,"y":19666.33434764496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"0fc534f6-3e3f-408a-b25b-f5c973ec0f63"}}},{"type":"Polygon Vertex","name":"Begin 0","project":"Superalgos","id":"ea7d0d25-e182-41a9-9451-99402984c131","savedPayload":{"position":{"x":12570.290487769926,"y":19883.09890698533},"targetPosition":{"x":12786.865282503302,"y":19666.33434764496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"a39c9f60-84e3-4e05-8ef0-24539ac40325"}}}],"id":"526bbff1-0ab2-4b5f-ad73-6886c6ef295c","savedPayload":{"position":{"x":12965.817812090267,"y":16719.952228248017},"targetPosition":{"x":13428.304643907115,"y":16986.981045728597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Value","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"d0fdbc54-377b-4862-b50f-b4a4c97eac09","savedPayload":{"position":{"x":12919.606556179995,"y":16089.01273977435},"targetPosition":{"x":13126.961696695911,"y":16256.825981040984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"d829f8bb-3737-4cef-ab7a-e92700ca7a6a","savedPayload":{"position":{"x":13126.961696695911,"y":16256.825981040984},"targetPosition":{"x":13372.145445194725,"y":16455.49186586648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Value Begin","project":"Superalgos","id":"29d5faa8-13a8-45a0-ba94-f43c2c200222","savedPayload":{"position":{"x":13339.148055106361,"y":16142.215368289375},"targetPosition":{"x":13372.145445194725,"y":16455.49186586648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Value Begin","id":"3b4f240c-66f5-4a3f-9527-47ea197ccf47"}}},{"type":"Polygon Vertex","name":"Value End","project":"Superalgos","id":"adf14091-c476-40aa-a560-fe8d90b8b8f3","savedPayload":{"position":{"x":13584.02765281019,"y":16193.580032635484},"targetPosition":{"x":13372.145445194725,"y":16455.49186586648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Value End","id":"f1de1d87-6d4a-4aea-bf10-74d64ddfb4ed"}}}],"id":"2e3e77ee-7057-47ca-b0fb-01f483c00949","savedPayload":{"position":{"x":13290.175539622156,"y":16471.01893911659},"targetPosition":{"x":13428.304643907115,"y":16986.981045728597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"ae6b4dd4-c45f-4398-91cf-50cb16a36b42","savedPayload":{"position":{"x":13427.984657342924,"y":16987.03228914368},"targetPosition":{"x":13890.09696208531,"y":17253.679303469136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"ROC 76","config":"{ \n\"codeName\": \"Panel-ROC-76\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Value","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.value","project":"Superalgos","id":"f9921989-1157-49ad-894e-9f4e9d197d46","savedPayload":{"position":{"x":13890.093751735112,"y":16186.535967659582},"targetPosition":{"x":13890.098653286936,"y":16453.44172222894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fcffae02-a826-4058-930a-f1eba1c3c0dc","savedPayload":{"position":{"x":13890.098653286936,"y":16453.44172222894},"targetPosition":{"x":13890.09784275767,"y":16720.326048114424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b44763a3-2604-4204-9275-1c822bf7b85f","savedPayload":{"position":{"x":13890.09784275767,"y":16720.326048114424},"targetPosition":{"x":13890.09696208531,"y":17253.679303469136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a21bb3ba-b24d-4163-b7d0-ea60220fc368","savedPayload":{"position":{"x":13542.2871273399,"y":17797.98376868404},"targetPosition":{"x":13965.354713192395,"y":17911.008978057733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Plotter Module","name":"ROC 32","config":"{\n\t\"codeName\": \"Module-ROC-32\",\n\t\"banner\": \"Oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Grid","project":"Superalgos","points":[{"type":"Point","name":"Begin 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"360c9616-373e-4b79-8623-507a4e126b2d","savedPayload":{"position":{"x":12888.75500246257,"y":16977.332518454205},"targetPosition":{"x":12875.00220270336,"y":16710.597850502454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3830e3a4-e15c-4f83-9530-9d24a940d5a6","savedPayload":{"position":{"x":12875.00220270336,"y":16710.597850502454},"targetPosition":{"x":12861.19991910876,"y":16443.86718498305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"251012cf-5083-4a10-932c-d6ffe369acc2","savedPayload":{"position":{"x":12362.213165677356,"y":16635.130671177292},"targetPosition":{"x":12611.69977463907,"y":16539.49598095313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"050405b7-8bd9-413b-b1cf-3ea9259b6e20","savedPayload":{"position":{"x":12611.69977463907,"y":16539.49598095313},"targetPosition":{"x":12861.19991910876,"y":16443.86718498305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Value Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.value","project":"Superalgos","id":"f5e02d75-2c37-431b-91d2-e4ee89f6b4ca","savedPayload":{"position":{"x":12524.895981256293,"y":16028.566829236714},"targetPosition":{"x":12693.038605663784,"y":16236.212639047524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f277e303-3eb8-49f8-a70f-36e5fa6acb05","savedPayload":{"position":{"x":12693.038605663784,"y":16236.212639047524},"targetPosition":{"x":12861.19991910876,"y":16443.86718498305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Value End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.value","project":"Superalgos","id":"a551a375-2f95-469d-9748-f5ffa94cb8a2","savedPayload":{"position":{"x":13151.964592513606,"y":15995.680630450224},"targetPosition":{"x":13006.590582770386,"y":16219.793374094777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"010b0145-7fa3-41bd-8d4c-ad221abe3f75","savedPayload":{"position":{"x":13006.590582770386,"y":16219.793374094777},"targetPosition":{"x":12861.19991910876,"y":16443.86718498305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c45748d1-cb04-4a9f-8564-d6489e1ca532","savedPayload":{"position":{"x":12861.19991910876,"y":16443.86718498305},"targetPosition":{"x":13890.471028866428,"y":16719.600875265263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line 0","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"4f8b88e5-1ef4-4094-be2a-c62f3aace8a0","savedPayload":{"position":{"x":12012.553367826222,"y":19145.605405536116},"targetPosition":{"x":12083.987135988387,"y":18929.673603706287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"5ecae3ca-c6ff-4de7-91c8-186c9d242586","savedPayload":{"position":{"x":12083.987135988387,"y":18929.673603706287},"targetPosition":{"x":12171.890164267596,"y":18601.56947491989},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End 0","project":"Superalgos","id":"4d8a5169-ff68-4d76-bdda-70533b12857d","savedPayload":{"position":{"x":11879.216116071802,"y":18770.43809949117},"targetPosition":{"x":12171.890164267596,"y":18601.56947491989},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"050405b7-8bd9-413b-b1cf-3ea9259b6e20"}}},{"type":"Polygon Vertex","name":"Begin 0","project":"Superalgos","id":"7562f064-db9f-48d1-b085-6b0378a9e230","savedPayload":{"position":{"x":11840.556272307138,"y":18512.96553000698},"targetPosition":{"x":12171.890164267596,"y":18601.56947491989},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"3830e3a4-e15c-4f83-9530-9d24a940d5a6"}}}],"id":"aadad370-9c78-49cd-8360-c290b42eb47c","savedPayload":{"position":{"x":13623.442857733171,"y":16256.924335060925},"targetPosition":{"x":13890.471028866428,"y":16719.600875265263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Value Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"54dc15cf-f4b0-4575-92b5-32047ac32fef","savedPayload":{"position":{"x":14952.941491431618,"y":15800.651788180305},"targetPosition":{"x":14909.703786705959,"y":16065.944493580106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"7b8cb64d-2d91-4aea-9e7d-9d0541095294","savedPayload":{"position":{"x":14909.703786705959,"y":16065.944493580106},"targetPosition":{"x":14856.832360917968,"y":16405.860043675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Value Begin","project":"Superalgos","id":"e4131510-0ce7-4fcb-82f9-03582a5c861c","savedPayload":{"position":{"x":15136.19746420817,"y":16202.533207181717},"targetPosition":{"x":14856.832360917968,"y":16405.860043675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Value Begin","id":"f277e303-3eb8-49f8-a70f-36e5fa6acb05"}}},{"type":"Polygon Vertex","name":"Value End","project":"Superalgos","id":"8a780be1-a258-4af4-8450-e57384ff7bf0","savedPayload":{"position":{"x":15197.708151128398,"y":16458.451548006396},"targetPosition":{"x":14856.832360917968,"y":16405.860043675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Value End","id":"010b0145-7fa3-41bd-8d4c-ad221abe3f75"}}}],"id":"2b87e0ff-d5a1-4b9b-b713-743f46573249","savedPayload":{"position":{"x":14028.65039602201,"y":16203.509911083413},"targetPosition":{"x":13890.471028866428,"y":16719.600875265263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"66c3abab-2df5-4d90-a119-1a18c24536a5","savedPayload":{"position":{"x":13890.471028866428,"y":16719.600875265263},"targetPosition":{"x":14157.344829091726,"y":17181.935398050387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"ROC 32","config":"{ \n\"codeName\": \"Panel-ROC-32\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Value","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.value","project":"Superalgos","id":"a7d719e2-be07-47cc-a91c-ebdab4dbc814","savedPayload":{"position":{"x":14691.2795236485,"y":16256.780360396919},"targetPosition":{"x":14557.722535394514,"y":16488.189520703774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0aa50f71-8801-4d7c-b04e-136adbb3592a","savedPayload":{"position":{"x":14557.722535394514,"y":16488.189520703774},"targetPosition":{"x":14424.183527266156,"y":16719.59818113489},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4d4fdc48-dca1-47e8-8f2e-e595adf26c0e","savedPayload":{"position":{"x":14424.183527266156,"y":16719.59818113489},"targetPosition":{"x":14157.344829091726,"y":17181.935398050387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7812b3a3-8375-4f0d-9671-acc05b256d74","savedPayload":{"position":{"x":13746.072945844426,"y":17532.09950495856},"targetPosition":{"x":13965.354713192395,"y":17911.008978057733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Plotter Module","name":"ROC 9","config":"{\n\t\"codeName\": \"Module-ROC-9\",\n\t\"banner\": \"Oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Grid","project":"Superalgos","points":[{"type":"Point","name":"Begin 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"d30a2a69-8977-4528-aac6-abebe3aad8b1","savedPayload":{"position":{"x":13200.084900939106,"y":17094.135597011984},"targetPosition":{"x":13241.88619433323,"y":16898.861374812237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"44d4ab03-4306-43f7-8c94-08976c57625a","savedPayload":{"position":{"x":13241.88619433323,"y":16898.861374812237},"targetPosition":{"x":13283.5640858043,"y":16703.65560307367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"c9bcf00d-9a15-4444-94f3-bf493cacdc4e","savedPayload":{"position":{"x":12885.429606449652,"y":16744.660763496093},"targetPosition":{"x":13084.528387997398,"y":16724.14777315935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5a0efe28-4669-4f77-af30-322b9c8fad72","savedPayload":{"position":{"x":13084.528387997398,"y":16724.14777315935},"targetPosition":{"x":13283.5640858043,"y":16703.65560307367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Value Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.value","project":"Superalgos","id":"388b4734-3b11-4b4c-9fca-0ea51581be66","savedPayload":{"position":{"x":13120.735849258948,"y":16337.734640932893},"targetPosition":{"x":13202.147889010612,"y":16520.737177508978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"473c0f5f-22eb-4212-bd6f-3e7b4b81e563","savedPayload":{"position":{"x":13202.147889010612,"y":16520.737177508978},"targetPosition":{"x":13283.5640858043,"y":16703.65560307367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Value End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.value","project":"Superalgos","id":"bc667db2-4e37-427b-a581-e3f29086f305","savedPayload":{"position":{"x":13580.128561596055,"y":16435.425774725118},"targetPosition":{"x":13431.82519531102,"y":16569.640006115027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"79ce261d-2055-4a8a-9604-41b37653759a","savedPayload":{"position":{"x":13431.82519531102,"y":16569.640006115027},"targetPosition":{"x":13283.5640858043,"y":16703.65560307367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cc49ad50-0be2-43c9-8f4a-ccccea8dc087","savedPayload":{"position":{"x":13283.5640858043,"y":16703.65560307367},"targetPosition":{"x":13974.24440327154,"y":17102.255244000266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line 0","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"28729ed0-43c3-4adb-8dd6-a708dda9d798","savedPayload":{"position":{"x":12626.543818349695,"y":21735.833378546624},"targetPosition":{"x":12475.470243763244,"y":21572.132265719178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"7c568a67-a0af-49ed-bae4-71e9fb835dcc","savedPayload":{"position":{"x":12475.470243763244,"y":21572.132265719178},"targetPosition":{"x":12261.112654736025,"y":21357.730268557258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End 0","project":"Superalgos","id":"f13ef470-67b1-4ea9-b5f9-d1323b9e5921","savedPayload":{"position":{"x":12261.112718200955,"y":21660.721982241033},"targetPosition":{"x":12261.112654736025,"y":21357.730268557258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"5a0efe28-4669-4f77-af30-322b9c8fad72"}}},{"type":"Polygon Vertex","name":"Begin 0","project":"Superalgos","id":"382b90b0-c454-438c-8342-f625c475b183","savedPayload":{"position":{"x":12044.537860002649,"y":21574.49482789763},"targetPosition":{"x":12261.112654736025,"y":21357.730268557258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"44d4ab03-4306-43f7-8c94-08976c57625a"}}}],"id":"79c02166-9fb5-41f8-9a93-c86f198d046d","savedPayload":{"position":{"x":13870.446308592876,"y":16715.850288024092},"targetPosition":{"x":13974.24440327154,"y":17102.255244000266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Value","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"6475bd9e-d457-4fa6-a0e2-6bab43c1b900","savedPayload":{"position":{"x":12393.853928412718,"y":17780.408660686648},"targetPosition":{"x":12601.209068928634,"y":17948.221901953282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"3dbc0e73-14ef-4ffc-8284-f16c461778f3","savedPayload":{"position":{"x":12601.209068928634,"y":17948.221901953282},"targetPosition":{"x":12846.392817427448,"y":18146.887786778778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Value Begin","project":"Superalgos","id":"a2794b60-36b4-4896-899b-20f60c519042","savedPayload":{"position":{"x":12813.395427339085,"y":17833.611289201675},"targetPosition":{"x":12846.392817427448,"y":18146.887786778778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Value Begin","id":"473c0f5f-22eb-4212-bd6f-3e7b4b81e563"}}},{"type":"Polygon Vertex","name":"Value End","project":"Superalgos","id":"759aba24-d4ed-4266-a9c4-9ea04a19f8f7","savedPayload":{"position":{"x":13058.275025042913,"y":17884.975953547782},"targetPosition":{"x":12846.392817427448,"y":18146.887786778778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Value End","id":"79ce261d-2055-4a8a-9604-41b37653759a"}}}],"id":"5ee0dccd-325b-410f-b069-f0f3e3881447","savedPayload":{"position":{"x":14172.809307626118,"y":16754.936771276127},"targetPosition":{"x":13974.24440327154,"y":17102.255244000266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"05a0cab0-cf12-4ee7-92a8-76fe96e42805","savedPayload":{"position":{"x":13974.24440327154,"y":17102.255244000266},"targetPosition":{"x":14078.2811635562,"y":17487.928205375356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"ROC 9","config":"{ \n\"codeName\": \"Panel-ROC-9\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Value","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.value","project":"Superalgos","id":"488e613d-484a-4750-8b22-a20f0434d1ea","savedPayload":{"position":{"x":14642.77803935672,"y":16924.48788595342},"targetPosition":{"x":14501.448465435366,"y":17065.418852389474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"521fa5b1-2419-4550-b8fb-ef2dcc284693","savedPayload":{"position":{"x":14501.448465435366,"y":17065.418852389474},"targetPosition":{"x":14360.1138110096,"y":17206.144756410024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1be3230-a9a3-4d36-95d0-f6ba0ddcd5e5","savedPayload":{"position":{"x":14360.1138110096,"y":17206.144756410024},"targetPosition":{"x":14078.2811635562,"y":17487.928205375356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5ecd7465-9f89-4e20-bea9-2216863e2990","savedPayload":{"position":{"x":14078.2811635562,"y":17487.928205375356},"targetPosition":{"x":13965.354713192395,"y":17911.008978057733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"85e9a7d0-c411-4fac-9297-95d71a9ae363","savedPayload":{"position":{"x":14015.344334318033,"y":17997.267603246102},"targetPosition":{"x":14165.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Stochastic","config":"{\n\"codeName\": \"Plotter-Stoch\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Stoch 14-3-3","config":"{\n\t\"codeName\": \"Module-Stoch-14-3-3\",\n \"icon\": \"Oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Slow Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.slowLine","project":"Superalgos","id":"55d7707a-30e2-4879-8be5-ca7ecd2f3873","savedPayload":{"position":{"x":14500.412541320678,"y":16717.082928006344},"targetPosition":{"x":14358.99926521186,"y":16878.693041065108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bc0a51ed-fc21-4517-80a9-742f8a28ede7","savedPayload":{"position":{"x":14358.99926521186,"y":16878.693041065108},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Slow Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.slowLine","project":"Superalgos","id":"bacc0912-cfd8-4cf1-91b7-9754df472dae","savedPayload":{"position":{"x":14634.337058498098,"y":16881.012777889817},"targetPosition":{"x":14446.655149506696,"y":16988.538441338664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d97911db-336c-414a-b163-69cb135de17b","savedPayload":{"position":{"x":14446.655149506696,"y":16988.538441338664},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Fast Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.fastLine","project":"Superalgos","id":"17a984a0-223a-4e41-87b5-1cbe8ff2e51d","savedPayload":{"position":{"x":14709.305326523641,"y":17081.709174441472},"targetPosition":{"x":14497.383047273546,"y":17121.107763559703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"97e0ce46-a22d-49ce-bf5c-bb50ec060d86","savedPayload":{"position":{"x":14497.383047273546,"y":17121.107763559703},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Fast Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.fastLine","project":"Superalgos","id":"013e38de-657d-461b-8b9b-beee034d1a28","savedPayload":{"position":{"x":14689.655835612004,"y":17333.127186423677},"targetPosition":{"x":14498.586146919963,"y":17262.07553537839},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5b1e120b-33fa-434a-9913-135f3f94edad","savedPayload":{"position":{"x":14498.586146919963,"y":17262.07553537839},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"a6b82c72-273b-4bb0-a20f-672e868a8bc4","savedPayload":{"position":{"x":14648.081851491876,"y":17495.203323907794},"targetPosition":{"x":14456.779967131246,"y":17397.55563974745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e894f129-e11d-4ec6-8d76-50d39dab5dd5","savedPayload":{"position":{"x":14456.779967131246,"y":17397.55563974745},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"ed878528-be4d-4b54-b05c-14be099d2e0a","savedPayload":{"position":{"x":14526.460539241063,"y":17657.65979151649},"targetPosition":{"x":14371.636414802539,"y":17510.425288371425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"93278c60-4529-454e-989f-771ce3beb3c1","savedPayload":{"position":{"x":14371.636414802539,"y":17510.425288371425},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 20","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 20","project":"Superalgos","id":"4c062900-b756-40f7-8538-dabb9ae12c16","savedPayload":{"position":{"x":14345.238249104506,"y":17784.488644608973},"targetPosition":{"x":14254.509388014114,"y":17589.535506694287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"59d32253-47b9-4227-bc5b-e2f1d5416844","savedPayload":{"position":{"x":14254.509388014114,"y":17589.535506694287},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 20","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 20","project":"Superalgos","id":"3a560a43-44d0-4d9e-b897-465c472fa9ea","savedPayload":{"position":{"x":14140.458084894548,"y":17844.298486516775},"targetPosition":{"x":14118.745310022794,"y":17629.086424118585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ce6a0861-712e-4cf4-81e9-92ab6c8a5f4d","savedPayload":{"position":{"x":14118.745310022794,"y":17629.086424118585},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 30","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 30","project":"Superalgos","id":"a492b3aa-e876-4762-a297-e3fd36964bb8","savedPayload":{"position":{"x":13931.199164271944,"y":17831.32771389947},"targetPosition":{"x":13977.75650321729,"y":17618.255578693977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3ea0b783-3d43-47d1-90aa-99366cd09a7d","savedPayload":{"position":{"x":13977.75650321729,"y":17618.255578693977},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 30","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 30","project":"Superalgos","id":"45566c80-77fd-4246-8fc3-50692ff479a2","savedPayload":{"position":{"x":13732.599782581467,"y":17747.160978196865},"targetPosition":{"x":13845.918144521158,"y":17565.081435490447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4e7322f7-3bfa-41cc-b9a0-c5dcbe16e83e","savedPayload":{"position":{"x":13845.918144521158,"y":17565.081435490447},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 70","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 70","project":"Superalgos","id":"c982c6b7-9b74-4b02-a2b8-8c6fb6df231e","savedPayload":{"position":{"x":13571.7404311149,"y":17606.053418764204},"targetPosition":{"x":13739.02459647497,"y":17471.751884800975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4f226496-b6a0-436d-97c5-d6e61dd00c23","savedPayload":{"position":{"x":13739.02459647497,"y":17471.751884800975},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 70","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 70","project":"Superalgos","id":"a66f14af-1cd6-4b48-979c-13bd4171828c","savedPayload":{"position":{"x":13466.666928482526,"y":17422.73038411507},"targetPosition":{"x":13670.620725938232,"y":17347.85895576789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"22287519-c930-4dfb-bb4a-298da4e32cdf","savedPayload":{"position":{"x":13670.620725938232,"y":17347.85895576789},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 80","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 80","project":"Superalgos","id":"742160f2-7cd8-4565-9536-5c0dca39a3e9","savedPayload":{"position":{"x":13428.248006144717,"y":17211.811717445744},"targetPosition":{"x":13642.898403227431,"y":17207.803685401588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fb48eeab-d538-4fc5-81fe-dd916f749477","savedPayload":{"position":{"x":13642.898403227431,"y":17207.803685401588},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 80","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 80","project":"Superalgos","id":"9057daf5-069d-4489-aaf5-dd803f642a86","savedPayload":{"position":{"x":13458.068283494933,"y":17005.727621093876},"targetPosition":{"x":13663.309460364133,"y":17070.422146740217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9a3c052a-a6b6-4392-b2fd-54151febb8f5","savedPayload":{"position":{"x":13663.309460364133,"y":17070.422146740217},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 100","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 100","project":"Superalgos","id":"2e17f6ae-23e6-4411-a0a5-69be7d7d3232","savedPayload":{"position":{"x":13555.397395788568,"y":16813.94900110847},"targetPosition":{"x":13727.299748005371,"y":16943.95746546435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f3e69d47-f137-412e-a515-7dc262af7f8b","savedPayload":{"position":{"x":13727.299748005371,"y":16943.95746546435},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 100","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 100","project":"Superalgos","id":"a7a616cf-f882-4088-b1d0-eb4fdb4ffd11","savedPayload":{"position":{"x":13708.897288308788,"y":16664.920860451773},"targetPosition":{"x":13830.990398255264,"y":16844.128732825302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"29103f63-7cd6-4005-bec7-a385cf373eaf","savedPayload":{"position":{"x":13830.990398255264,"y":16844.128732825302},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 50","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 50","project":"Superalgos","id":"8b212cf0-fab5-45dd-b645-0f4e79656653","savedPayload":{"position":{"x":13902.343939295632,"y":16576.903119606537},"targetPosition":{"x":13959.494498865544,"y":16785.29584208598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"99b1d6a8-0904-43ff-b209-c7c6868181b5","savedPayload":{"position":{"x":13959.494498865544,"y":16785.29584208598},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 50","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 50","project":"Superalgos","id":"864cc94d-3947-45bd-8a85-a19d06609b9a","savedPayload":{"position":{"x":14113.069605098972,"y":16554.064492957255},"targetPosition":{"x":14100.739545008255,"y":16770.08649033821},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"84db0a13-44f1-4953-ab27-d7425ab1ee6b","savedPayload":{"position":{"x":14100.739545008255,"y":16770.08649033821},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8ac3440e-1b64-4a12-8c31-38783846da01","savedPayload":{"position":{"x":14073.671803484238,"y":17200.463381239268},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Slow Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"d89f9f7e-12c9-4883-a753-41cf0e061dde","savedPayload":{"position":{"x":14881.88263912611,"y":15458.623840849868},"targetPosition":{"x":14904.92183213402,"y":15752.688927759145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"7ef54320-7e6d-4e77-9345-9f4e5742a18e","savedPayload":{"position":{"x":14904.92183213402,"y":15752.688927759145},"targetPosition":{"x":14930.534242384983,"y":16076.522458276297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Slow Line End","project":"Superalgos","id":"f093f915-dc4b-4ba3-bc51-57e593a3025a","savedPayload":{"position":{"x":15030.738467583615,"y":15767.953884853594},"targetPosition":{"x":14930.534242384983,"y":16076.522458276297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Slow Line End","id":"d97911db-336c-414a-b163-69cb135de17b"}}},{"type":"Polygon Vertex","name":"Slow Line Begin","project":"Superalgos","id":"a2116df6-c3ec-4017-a51d-ae12cc47e021","savedPayload":{"position":{"x":15142.363331122157,"y":15828.704705059128},"targetPosition":{"x":14930.534242384983,"y":16076.522458276297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Slow Line Begin","id":"bc0a51ed-fc21-4517-80a9-742f8a28ede7"}}}],"id":"c28b1cfd-4cf5-4382-8bce-45930b5e8a15","savedPayload":{"position":{"x":14201.993958535346,"y":17003.19451255007},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Fast Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"a5147142-56f2-4fd8-a06e-449cfb1a997d","savedPayload":{"position":{"x":13625.381695674056,"y":16191.14875269467},"targetPosition":{"x":13915.188737628669,"y":16249.85213294344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"b7bec76c-a5d6-4b78-a0f5-8315ca1c0dba","savedPayload":{"position":{"x":13915.188737628669,"y":16249.85213294344},"targetPosition":{"x":14240.140716616275,"y":16314.556716142033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Fast Line End","project":"Superalgos","id":"88ffc758-994a-4385-a9d6-c28361403f5a","savedPayload":{"position":{"x":13964.875042604868,"y":16130.495798717502},"targetPosition":{"x":14240.140716616275,"y":16314.556716142033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Fast Line End","id":"5b1e120b-33fa-434a-9913-135f3f94edad"}}},{"type":"Polygon Vertex","name":"Fast Line Begin","project":"Superalgos","id":"3a43f15c-ff64-4415-bee8-f458601a3e96","savedPayload":{"position":{"x":14056.78264738161,"y":16038.840279158478},"targetPosition":{"x":14240.140716616275,"y":16314.556716142033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Fast Line Begin","id":"97e0ce46-a22d-49ce-bf5c-bb50ec060d86"}}}],"id":"53d89dd3-df4f-4001-a9cc-a9fa5c7808d4","savedPayload":{"position":{"x":14236.360873547066,"y":16914.75201765375},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 0","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"258f1f9e-4410-4a64-9cd6-e445d4444ba7","savedPayload":{"position":{"x":13702.745808248466,"y":15875.038802026615},"targetPosition":{"x":13969.359500255105,"y":16002.185058927986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"805ec3ae-e0ec-42ba-ba1c-617d5fe24e09","savedPayload":{"position":{"x":13969.359500255105,"y":16002.185058927986},"targetPosition":{"x":14289.638486496271,"y":16154.740841079923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 0","project":"Superalgos","id":"379a9e22-27fa-4f50-900a-0730cbe0b3d3","savedPayload":{"position":{"x":14052.331481490426,"y":15891.112813263133},"targetPosition":{"x":14289.638486496271,"y":16154.740841079923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"e894f129-e11d-4ec6-8d76-50d39dab5dd5"}}},{"type":"Polygon Vertex","name":"End 0","project":"Superalgos","id":"0ff4fba2-0167-41df-99e5-542a673adf30","savedPayload":{"position":{"x":14171.396090723109,"y":15820.39101464825},"targetPosition":{"x":14289.638486496271,"y":16154.740841079923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"93278c60-4529-454e-989f-771ce3beb3c1"}}}],"id":"e8f5af9d-ba4b-4482-aca7-295b92f60f17","savedPayload":{"position":{"x":14291.290812535648,"y":16847.296392877666},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"1172daa1-fe47-4069-818e-50a800f539ef","savedPayload":{"position":{"x":13893.06119689997,"y":15800.062787087045},"targetPosition":{"x":14139.030902348699,"y":15964.416186511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1efe1989-3881-41f4-af21-bf32d3fdc64a","savedPayload":{"position":{"x":14139.030902348699,"y":15964.416186511},"targetPosition":{"x":14414.754874111859,"y":16148.379372960488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 20","project":"Superalgos","id":"0617cdf2-2290-4f79-b132-ce46e33f3eb8","savedPayload":{"position":{"x":14230.462384508712,"y":15872.449127029126},"targetPosition":{"x":14414.754874111859,"y":16148.379372960488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 20","id":"59d32253-47b9-4227-bc5b-e2f1d5416844"}}},{"type":"Polygon Vertex","name":"End 20","project":"Superalgos","id":"cbc04d73-2faf-4808-b1ef-43aa2d1cf509","savedPayload":{"position":{"x":14350.333436877696,"y":15823.030678194007},"targetPosition":{"x":14414.754874111859,"y":16148.379372960488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 20","id":"ce6a0861-712e-4cf4-81e9-92ab6c8a5f4d"}}}],"id":"3d7a22fa-7a63-4cea-8ce7-d3358bd79ac8","savedPayload":{"position":{"x":14354.397854191131,"y":16790.91251362693},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 30","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"c10e1ba8-3255-4eab-8d43-83315dca23e1","savedPayload":{"position":{"x":14079.954098657792,"y":15648.035814856934},"targetPosition":{"x":14289.333375393791,"y":15857.42583550441},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c4dbb4e0-6e92-4304-bba1-76013eb739d4","savedPayload":{"position":{"x":14289.333375393791,"y":15857.42583550441},"targetPosition":{"x":14522.37381540821,"y":16090.207760408486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 30","project":"Superalgos","id":"1bb29f63-48b2-405c-8b76-5b42be6c1e3f","savedPayload":{"position":{"x":14394.329864329815,"y":15780.64025013279},"targetPosition":{"x":14522.37381540821,"y":16090.207760408486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"3ea0b783-3d43-47d1-90aa-99366cd09a7d"}}},{"type":"Polygon Vertex","name":"End 30","project":"Superalgos","id":"86cc6fd9-ca44-42ff-817c-c33d9a4a4558","savedPayload":{"position":{"x":14522.408259668995,"y":15758.672253212442},"targetPosition":{"x":14522.37381540821,"y":16090.207760408486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"4e7322f7-3bfa-41cc-b9a0-c5dcbe16e83e"}}}],"id":"49ef61a8-1381-45f0-b7d4-0a95ed9d7e60","savedPayload":{"position":{"x":14427.88390784217,"y":16755.728339537032},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 50","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"f18a4f3f-1b4a-4816-9c76-9b6171a6c886","savedPayload":{"position":{"x":14324.687713946754,"y":15529.844927165017},"targetPosition":{"x":14466.527813882756,"y":15791.239264977536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bdcda8bd-a2a3-4dae-8774-7fe7a1bd8df9","savedPayload":{"position":{"x":14466.527813882756,"y":15791.239264977536},"targetPosition":{"x":14621.074502981792,"y":16076.006864731542},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 50","project":"Superalgos","id":"155ecca7-3c3a-40b0-98e0-c4cc97021ba2","savedPayload":{"position":{"x":14586.46038748571,"y":15750.848606168975},"targetPosition":{"x":14621.074502981792,"y":16076.006864731542},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 50","id":"99b1d6a8-0904-43ff-b209-c7c6868181b5"}}},{"type":"Polygon Vertex","name":"End 50","project":"Superalgos","id":"3f22cf14-5acc-4f4d-b19a-108f02fa2e53","savedPayload":{"position":{"x":14712.853631866885,"y":15761.787851885105},"targetPosition":{"x":14621.074502981792,"y":16076.006864731542},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 50","id":"84db0a13-44f1-4953-ab27-d7425ab1ee6b"}}}],"id":"eb850831-fe4c-4fda-9294-df765f377e3e","savedPayload":{"position":{"x":14505.49137372122,"y":16724.97060299985},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 70","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"871bf7be-3e85-43f3-9537-fae86fe3f821","savedPayload":{"position":{"x":14512.392733655088,"y":15468.99084206536},"targetPosition":{"x":14625.38730649422,"y":15741.946523562865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"692686f4-d4a0-4fd3-b9ac-32ced49b8633","savedPayload":{"position":{"x":14625.38730649422,"y":15741.946523562865},"targetPosition":{"x":14751.192149081158,"y":16045.350359981385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 70","project":"Superalgos","id":"4742a27b-2eb2-4a18-835e-6fbefb47bdcd","savedPayload":{"position":{"x":14751.194081815393,"y":15715.230718398909},"targetPosition":{"x":14751.192149081158,"y":16045.350359981385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"4f226496-b6a0-436d-97c5-d6e61dd00c23"}}},{"type":"Polygon Vertex","name":"End 70","project":"Superalgos","id":"57aca36d-e53c-428f-a961-00f95c636a8c","savedPayload":{"position":{"x":14877.622086392272,"y":15740.422636870771},"targetPosition":{"x":14751.192149081158,"y":16045.350359981385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"22287519-c930-4dfb-bb4a-298da4e32cdf"}}}],"id":"cd93957c-2562-4f27-b3c3-4278231b1241","savedPayload":{"position":{"x":14584.223131281895,"y":16731.51978875375},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 80","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"0a960c41-faa4-4456-8d7c-91215785612f","savedPayload":{"position":{"x":14648.40278969756,"y":15517.704191748435},"targetPosition":{"x":14782.200374032745,"y":15780.654156293193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"d4446b75-1844-4114-9faf-ae3b5641e43d","savedPayload":{"position":{"x":14782.200374032745,"y":15780.654156293193},"targetPosition":{"x":14932.461747102487,"y":16076.326425861622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 80","project":"Superalgos","id":"7b104c6b-0b09-4efe-9af7-21e18088158a","savedPayload":{"position":{"x":15035.349360977496,"y":15759.549979691443},"targetPosition":{"x":14932.461747102487,"y":16076.326425861622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 80","id":"fb48eeab-d538-4fc5-81fe-dd916f749477"}}},{"type":"Polygon Vertex","name":"End 80","project":"Superalgos","id":"4bf87284-559e-4154-93f5-988ea7755e80","savedPayload":{"position":{"x":15227.83107009239,"y":15925.624656640039},"targetPosition":{"x":14932.461747102487,"y":16076.326425861622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 80","id":"9a3c052a-a6b6-4392-b2fd-54151febb8f5"}}}],"id":"a25d52fa-a178-4454-8ebc-500572b38d04","savedPayload":{"position":{"x":14674.60987260898,"y":16714.311625083956},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 100","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"a169ba02-78c5-49d9-b212-236fb5e48bad","savedPayload":{"position":{"x":15674.784023349268,"y":16011.89398302409},"targetPosition":{"x":15510.231843257661,"y":16257.937513107705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"b71ce594-e5f7-48f0-94a3-8f44ac26c01c","savedPayload":{"position":{"x":15510.231843257661,"y":16257.937513107705},"targetPosition":{"x":15328.83066410559,"y":16528.851004914046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 100","project":"Superalgos","id":"6b947ced-abe6-41e4-8e11-a8777d52a977","savedPayload":{"position":{"x":15650.712254896971,"y":16465.04401764869},"targetPosition":{"x":15328.83066410559,"y":16528.851004914046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 100","id":"f3e69d47-f137-412e-a515-7dc262af7f8b"}}},{"type":"Polygon Vertex","name":"End 100","project":"Superalgos","id":"9ff21949-3190-45a4-8b36-e6d8f291ea7f","savedPayload":{"position":{"x":15601.712003168006,"y":16711.091812352934},"targetPosition":{"x":15328.83066410559,"y":16528.851004914046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 100","id":"29103f63-7cd6-4005-bec7-a385cf373eaf"}}}],"id":"a4dacfad-5901-4ba9-a728-132f0d452680","savedPayload":{"position":{"x":14727.785332558746,"y":16785.541058032082},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 0-20","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.25,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.35,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"e740b91d-1364-49ea-9878-df9cddbfc805","savedPayload":{"position":{"x":14801.995160216018,"y":15590.35341743311},"targetPosition":{"x":14932.096287700177,"y":15854.809139984567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6c079371-854a-41cb-82cb-3066463c51c5","savedPayload":{"position":{"x":14932.096287700177,"y":15854.809139984567},"targetPosition":{"x":15075.439247330982,"y":16146.725389764557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 0","project":"Superalgos","id":"fbfe5ddc-2890-4be2-9c46-446bbb49cde0","savedPayload":{"position":{"x":15096.8746851807,"y":15822.40160392652},"targetPosition":{"x":15075.439247330982,"y":16146.725389764557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"e894f129-e11d-4ec6-8d76-50d39dab5dd5"}}},{"type":"Polygon Vertex","name":"End 0","project":"Superalgos","id":"007fe5a0-0fac-4958-8c95-aba6e504e4d5","savedPayload":{"position":{"x":15256.060218545852,"y":15876.501458136829},"targetPosition":{"x":15075.439247330982,"y":16146.725389764557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"93278c60-4529-454e-989f-771ce3beb3c1"}}},{"type":"Polygon Vertex","name":"End 20","project":"Superalgos","id":"3d285cd7-11f6-4e20-969b-eec492cab81e","savedPayload":{"position":{"x":15367.022649865521,"y":16003.001103388673},"targetPosition":{"x":15075.439247330982,"y":16146.725389764557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 20","id":"ce6a0861-712e-4cf4-81e9-92ab6c8a5f4d"}}},{"type":"Polygon Vertex","name":"Begin 20","project":"Superalgos","id":"779ba063-a7c9-4fa8-bb93-a64917dacbd4","savedPayload":{"position":{"x":15401.71775765116,"y":16167.860373477006},"targetPosition":{"x":15075.439247330982,"y":16146.725389764557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 20","id":"59d32253-47b9-4227-bc5b-e2f1d5416844"}}}],"id":"518be834-5410-4eee-afc5-369ec833199c","savedPayload":{"position":{"x":14847.171694088589,"y":16765.9426118098},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 20-30","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"42dcb813-82a7-439d-96db-e1838746a098","savedPayload":{"position":{"x":15044.200861982783,"y":15764.286977065669},"targetPosition":{"x":15082.177798541794,"y":15907.467516426286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"057fa196-0288-45ff-ba35-62465f6ea603","savedPayload":{"position":{"x":15082.177798541794,"y":15907.467516426286},"targetPosition":{"x":15165.718147686232,"y":16221.31350258067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 20","project":"Superalgos","id":"1f65bf18-a749-4221-880b-dc1e2e573ed7","savedPayload":{"position":{"x":15250.345276759075,"y":15906.239731453099},"targetPosition":{"x":15165.718147686232,"y":16221.31350258067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 20","id":"59d32253-47b9-4227-bc5b-e2f1d5416844"}}},{"type":"Polygon Vertex","name":"End 20","project":"Superalgos","id":"4a723692-de81-4fa5-9292-88573a34b816","savedPayload":{"position":{"x":15395.33830688029,"y":15991.79172318524},"targetPosition":{"x":15165.718147686232,"y":16221.31350258067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 20","id":"ce6a0861-712e-4cf4-81e9-92ab6c8a5f4d"}}},{"type":"Polygon Vertex","name":"End 30","project":"Superalgos","id":"ada9ee7e-b823-452e-aab3-2bbb4bf10cc3","savedPayload":{"position":{"x":15481.090965187395,"y":16136.792249410832},"targetPosition":{"x":15165.718147686232,"y":16221.31350258067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"4e7322f7-3bfa-41cc-b9a0-c5dcbe16e83e"}}},{"type":"Polygon Vertex","name":"Begin 30","project":"Superalgos","id":"5d96b5d5-7e34-4a43-891b-273fb9bbf4b6","savedPayload":{"position":{"x":15479.313869113746,"y":16304.928704682641},"targetPosition":{"x":15165.718147686232,"y":16221.31350258067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"3ea0b783-3d43-47d1-90aa-99366cd09a7d"}}}],"id":"bd729215-749b-4893-b21e-fe8add8e3199","savedPayload":{"position":{"x":14837.174364687828,"y":16875.859747454866},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 30-70","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.05,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"48f54b6c-7cd5-4089-b6e2-1f39e2361be7","savedPayload":{"position":{"x":15197.379210862578,"y":15687.764148249116},"targetPosition":{"x":15216.35923730363,"y":15982.574648347845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"20728a48-6ba3-4bf8-b51e-bb57303594f2","savedPayload":{"position":{"x":15216.35923730363,"y":15982.574648347845},"targetPosition":{"x":15237.045995848057,"y":16306.381157256064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 30","project":"Superalgos","id":"058eb800-ac91-44dd-8b28-6a740f6470ee","savedPayload":{"position":{"x":15380.819731650154,"y":16015.440449418407},"targetPosition":{"x":15237.045995848057,"y":16306.381157256064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"3ea0b783-3d43-47d1-90aa-99366cd09a7d"}}},{"type":"Polygon Vertex","name":"End 30","project":"Superalgos","id":"d01decaf-72ca-41e6-aa58-d6dbe505fe29","savedPayload":{"position":{"x":15507.56273970833,"y":16125.946327339409},"targetPosition":{"x":15237.045995848057,"y":16306.381157256064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"4e7322f7-3bfa-41cc-b9a0-c5dcbe16e83e"}}},{"type":"Polygon Vertex","name":"End 70","project":"Superalgos","id":"f87349bc-dc97-46fd-a88f-a28ba9678a43","savedPayload":{"position":{"x":15561.699800086655,"y":16285.075671388058},"targetPosition":{"x":15237.045995848057,"y":16306.381157256064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"22287519-c930-4dfb-bb4a-298da4e32cdf"}}},{"type":"Polygon Vertex","name":"Begin 70","project":"Superalgos","id":"fa0278c8-e861-4c72-8795-32186c329c89","savedPayload":{"position":{"x":15529.963508066128,"y":16450.847898812583},"targetPosition":{"x":15237.045995848057,"y":16306.381157256064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"4f226496-b6a0-436d-97c5-d6e61dd00c23"}}}],"id":"f95afd47-9495-44f4-bf5a-8577bd0750c5","savedPayload":{"position":{"x":14961.782586339552,"y":16888.902513095432},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 70-80","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"191e1de4-e807-46e0-9cac-5b0eb4df5b7d","savedPayload":{"position":{"x":15665.482198676924,"y":15914.480753460648},"targetPosition":{"x":15485.392221749815,"y":16149.037315820953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"baa9237a-41ad-49a1-b78d-664bcb893f79","savedPayload":{"position":{"x":15485.392221749815,"y":16149.037315820953},"targetPosition":{"x":15293.42022246364,"y":16412.17421585777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 70","project":"Superalgos","id":"bdd3f8c1-1194-4472-a681-96a6ee1eedc0","savedPayload":{"position":{"x":15551.407846848033,"y":16209.747242353294},"targetPosition":{"x":15293.42022246364,"y":16412.17421585777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"4f226496-b6a0-436d-97c5-d6e61dd00c23"}}},{"type":"Polygon Vertex","name":"End 70","project":"Superalgos","id":"5c4b0947-4269-4fc3-ae1f-c6707c0488d2","savedPayload":{"position":{"x":15596.368057553645,"y":16285.09338464684},"targetPosition":{"x":15293.42022246364,"y":16412.17421585777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"22287519-c930-4dfb-bb4a-298da4e32cdf"}}},{"type":"Polygon Vertex","name":"End 80","project":"Superalgos","id":"c2c40046-c4c9-42de-887d-892ed868bc4e","savedPayload":{"position":{"x":15619.486917090777,"y":16368.123000614289},"targetPosition":{"x":15293.42022246364,"y":16412.17421585777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 80","id":"9a3c052a-a6b6-4392-b2fd-54151febb8f5"}}},{"type":"Polygon Vertex","name":"Begin 80","project":"Superalgos","id":"e5d1db7f-bceb-4548-a136-bac0f2d23d33","savedPayload":{"position":{"x":15616.910846243638,"y":16471.16852352616},"targetPosition":{"x":15293.42022246364,"y":16412.17421585777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 80","id":"fb48eeab-d538-4fc5-81fe-dd916f749477"}}}],"id":"b75a1367-e45d-4561-9cf9-b537eba7e103","savedPayload":{"position":{"x":14924.689864321197,"y":16984.791987048375},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 80-100","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.25,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.35,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"da7f5472-50e7-4083-86e9-5a24dede1557","savedPayload":{"position":{"x":15678.326561538324,"y":16206.533924146303},"targetPosition":{"x":15566.575323889905,"y":16304.292629014306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6ef84309-4ee8-44c5-a4a9-d5dd9634d09f","savedPayload":{"position":{"x":15566.575323889905,"y":16304.292629014306},"targetPosition":{"x":15327.12898795262,"y":16524.862436172007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 80","project":"Superalgos","id":"fef200a2-c609-4684-9d4d-a84d720f1ee1","savedPayload":{"position":{"x":15619.661171953707,"y":16376.572635916398},"targetPosition":{"x":15327.12898795262,"y":16524.862436172007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 80","id":"fb48eeab-d538-4fc5-81fe-dd916f749477"}}},{"type":"Polygon Vertex","name":"End 80","project":"Superalgos","id":"dd767960-3de1-49ec-914a-f0b3d54e7786","savedPayload":{"position":{"x":15649.15531535157,"y":16459.218232227882},"targetPosition":{"x":15327.12898795262,"y":16524.862436172007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 80","id":"9a3c052a-a6b6-4392-b2fd-54151febb8f5"}}},{"type":"Polygon Vertex","name":"End 100","project":"Superalgos","id":"6fbf425e-e7e4-481a-a14b-762d2879b614","savedPayload":{"position":{"x":15655.244255967908,"y":16545.282385964838},"targetPosition":{"x":15327.12898795262,"y":16524.862436172007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 100","id":"29103f63-7cd6-4005-bec7-a385cf373eaf"}}},{"type":"Polygon Vertex","name":"Begin 100","project":"Superalgos","id":"41244682-e765-41f6-940a-3cced032f765","savedPayload":{"position":{"x":15632.532385569117,"y":16645.745463255524},"targetPosition":{"x":15327.12898795262,"y":16524.862436172007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 100","id":"f3e69d47-f137-412e-a515-7dc262af7f8b"}}}],"id":"e9077695-93a9-4ef5-ae32-3da768e946b1","savedPayload":{"position":{"x":15002.039975555406,"y":17089.0713977216},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"b824fc17-2864-430d-93f2-00d42d159b5a","savedPayload":{"position":{"x":14584.436743276281,"y":17133.037726411552},"targetPosition":{"x":14584.360497041456,"y":17532.3608625606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Stoch 14-3-3","config":"{ \n\"codeName\": \"Panel-Stoch-14-3-3\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Slow Line","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.slowLine","project":"Superalgos","id":"158086f9-9654-4e33-8292-6a9b7041526a","savedPayload":{"position":{"x":15210.324521090304,"y":17042.487003231865},"targetPosition":{"x":15068.093172926725,"y":17183.663843012888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c332ec98-c6fb-4eeb-a13a-2bda02958a9d","savedPayload":{"position":{"x":15068.093172926725,"y":17183.663843012888},"targetPosition":{"x":14930.743915364332,"y":17333.31278336956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fast Line","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.fastLine","project":"Superalgos","id":"474d9024-e7ff-46d2-a46f-830c5e55ec30","savedPayload":{"position":{"x":15325.410409067576,"y":17244.130006324696},"targetPosition":{"x":15131.761241181623,"y":17295.280803363756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8249ea87-9d41-431a-b827-c3153fcddd0b","savedPayload":{"position":{"x":15131.761241181623,"y":17295.280803363756},"targetPosition":{"x":14930.743915364332,"y":17333.31278336956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"af6182b0-9814-4ebe-bbe7-7a455d8a6a0e","savedPayload":{"position":{"x":14930.743915364332,"y":17333.31278336956},"targetPosition":{"x":14584.360497041456,"y":17532.3608625606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6a85fbb1-5a99-4ccc-93e8-092f5dbf6c4a","savedPayload":{"position":{"x":14584.360497041456,"y":17532.3608625606},"targetPosition":{"x":14365.186971787978,"y":17911.1677114271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3fcd7ef7-fe1a-42f4-9339-a3bda6859248","savedPayload":{"position":{"x":14315.344334318033,"y":17997.267603246102},"targetPosition":{"x":14165.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"511bef1e-62d8-4ff9-8d87-15bd0d3d630c","savedPayload":{"position":{"x":14165.344334318033,"y":18257.075224381435},"targetPosition":{"x":14165.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}} \ No newline at end of file +{"type":"Data Mine","name":"Alpha","config":"{ \n\"codeName\": \"Alpha\"\n}","project":"Superalgos","sensorBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"Average True Range (ATR)","config":"{\n\"codeName\": \"ATR\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates RSI.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market ATR - SMA","project":"Superalgos","id":"5cdfa018-5ade-469b-90bf-cc523ef0a46e","savedPayload":{"position":{"x":14824.467185363952,"y":17153.56240800229},"targetPosition":{"x":15051.32778510527,"y":17433.553422503435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2570d2c7-72e3-4131-97dc-a9f97f493e93"}}},{"type":"Output Dataset","name":"Multi-Period-Market ATR - RMA","project":"Superalgos","id":"e7e58e02-fef8-4400-9928-f29805a96f98","savedPayload":{"position":{"x":14995.21249473741,"y":17077.69824065427},"targetPosition":{"x":15051.32778510527,"y":17433.553422503435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"67695466-be2d-43b4-9824-83baa7a08412"}}}],"outputDatasetFolders":[],"id":"b345304f-fbb3-4889-934a-8f9b4941ed29","savedPayload":{"position":{"x":15027.5645769923,"y":17379.910551027475},"targetPosition":{"x":15182.942695423619,"y":17728.650277388508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"eb499527-0f18-45f9-99ab-a7bc7fabb3aa","savedPayload":{"position":{"x":15005.836154077664,"y":17146.468954298347},"targetPosition":{"x":15216.865516382564,"y":17407.20361136918},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Average True Range (ATR) Multi-Period-Market","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"025a6f70-c187-4b4d-aa62-6f4ebfc116ba","savedPayload":{"position":{"x":15251.795115631983,"y":17073.59332967888},"targetPosition":{"x":15216.865516382564,"y":17407.20361136918},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"8a6c8b1e-950d-4819-88a9-9c45272a0799"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"f25ba171-3c78-4e4f-acb8-66446be1ce0a","savedPayload":{"position":{"x":15480.231901478768,"y":17193.677641293492},"targetPosition":{"x":15216.865516382564,"y":17407.20361136918},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"bf337039-bd28-4f50-89d1-5115e631e6cf","savedPayload":{"position":{"x":15223.760246305472,"y":17340.44129825625},"targetPosition":{"x":15182.942695423619,"y":17728.650277388508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"8a6c8b1e-950d-4819-88a9-9c45272a0799","savedPayload":{"position":{"x":15405.437118264057,"y":17422.346390022496},"targetPosition":{"x":15182.942695423619,"y":17728.650277388508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"d150911d-47e9-4046-b365-ac817667cf32","savedPayload":{"position":{"x":15528.652645556173,"y":17574.742245083573},"targetPosition":{"x":15182.942695423619,"y":17728.650277388508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"faac5fcf-e7b2-4883-84bd-427aa74bc3c1","savedPayload":{"position":{"x":15565.646615241436,"y":17768.731993392837},"targetPosition":{"x":15182.942695423619,"y":17728.650277388508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"83a07439-ad71-463a-9727-5f43ad0b03d2","savedPayload":{"position":{"x":14641.679910005776,"y":18014.370126068952},"targetPosition":{"x":14465.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Calculates RSI\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily ATR - SMA","project":"Superalgos","id":"570c8470-a4ae-40a8-b647-d3859887c148","savedPayload":{"position":{"x":15465.460311788222,"y":17379.399895719584},"targetPosition":{"x":15484.411897348979,"y":17735.651101693715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"93eb665f-d903-4825-9fb1-2783e917ac89"}}},{"type":"Output Dataset","name":"Multi-Period-Daily ATR - RMA","project":"Superalgos","id":"60d2cf94-0cf3-4cdf-a2ec-69c012f74019","savedPayload":{"position":{"x":15646.57888452697,"y":17417.31050770898},"targetPosition":{"x":15484.411897348979,"y":17735.651101693715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e3d0bccf-5f97-4902-92df-4ac8fe8c41a8"}}}],"outputDatasetFolders":[],"id":"d6545bbe-389f-4dbe-b31e-de9d7ad95e4b","savedPayload":{"position":{"x":15496.977942325364,"y":17678.445446074387},"targetPosition":{"x":15417.659540146633,"y":18051.7097399962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Average True Range (ATR) Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"89b9660c-6005-4381-a692-e320b9422268","savedPayload":{"position":{"x":15564.15545397628,"y":17483.269514920896},"targetPosition":{"x":15633.621715641162,"y":17811.451787469283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"619713bc-8cf4-4152-b36d-d470361f8a3b"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"6aba1eb8-b5b6-4749-a323-16016a453194","savedPayload":{"position":{"x":15770.006365190904,"y":17505.24247410749},"targetPosition":{"x":15633.621715641162,"y":17811.451787469283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"77cb48bb-f6ca-4eba-ab3d-2b5583f7285a","savedPayload":{"position":{"x":15924.068145475645,"y":17643.81613481951},"targetPosition":{"x":15633.621715641162,"y":17811.451787469283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"b7383dbe-549f-4ffe-8764-9ea324d5025d","savedPayload":{"position":{"x":15967.210012200747,"y":17846.37164582619},"targetPosition":{"x":15633.621715641162,"y":17811.451787469283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"e1b3e953-5756-4810-abcb-67535b51f3ca","savedPayload":{"position":{"x":15677.96647171682,"y":17763.072101860675},"targetPosition":{"x":15417.659540146633,"y":18051.7097399962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"619713bc-8cf4-4152-b36d-d470361f8a3b","savedPayload":{"position":{"x":15787.027818764218,"y":17931.849664745085},"targetPosition":{"x":15417.659540146633,"y":18051.7097399962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"54a8ad94-41a9-4b8d-83f7-c40056140ef4","savedPayload":{"position":{"x":15792.243119384671,"y":18131.348956080044},"targetPosition":{"x":15417.659540146633,"y":18051.7097399962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"0b02390a-fc39-4f1a-a53c-8bae1492e292","savedPayload":{"position":{"x":15701.913401188041,"y":18307.82189517813},"targetPosition":{"x":15417.659540146633,"y":18051.7097399962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"61dde091-7c09-4384-ab2d-1fec0dbef7c5","savedPayload":{"position":{"x":14750.661289206579,"y":18164.370126068952},"targetPosition":{"x":14465.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"ATR - RMA","config":"{\n \"codeName\": \"ATR-RMA\",\n \"singularVariableName\": \"atrRMA\",\n \"pluralVariableName\": \"atrRMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"67695466-be2d-43b4-9824-83baa7a08412","savedPayload":{"position":{"x":15339.563793425255,"y":18236.86776043583},"targetPosition":{"x":15111.82908854388,"y":18402.43596333557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"e3d0bccf-5f97-4902-92df-4ac8fe8c41a8","savedPayload":{"position":{"x":15392.952051274442,"y":18402.82090543185},"targetPosition":{"x":15111.82908854388,"y":18402.43596333557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"Begin","code":"record.current.begin","project":"Superalgos","id":"a0cb3931-383f-4c9d-8f01-fe812c22181e","savedPayload":{"position":{"x":16416.482333386328,"y":18617.461565209003},"targetPosition":{"x":16268.776991591974,"y":18683.26044587566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e538eb1e-f296-4e00-bdbb-8a904c5b897a","savedPayload":{"position":{"x":16268.776991591974,"y":18683.26044587566},"targetPosition":{"x":15939.620580611292,"y":18829.973526666363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"566fa39a-58b3-439a-a666-9c0d6927dfcc","savedPayload":{"position":{"x":16464.216373506217,"y":18884.800084065864},"targetPosition":{"x":16302.888076865202,"y":18868.0004634721},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3a3dfa55-78be-4e15-90ae-b64d7db87d29","savedPayload":{"position":{"x":16302.888076865202,"y":18868.0004634721},"targetPosition":{"x":15939.620580611292,"y":18829.973526666363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ATR2","config":"{\n \"codeName\": \"atr2\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.atr2","project":"Superalgos","id":"fc05c629-916b-40a9-a62d-06b309420ee6","savedPayload":{"position":{"x":16362.23490885691,"y":19136.94556622118},"targetPosition":{"x":16231.24770039141,"y":19041.79504569027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b4e9fd6c-b742-4378-851f-ec6a84183727","savedPayload":{"position":{"x":16231.24770039141,"y":19041.79504569027},"targetPosition":{"x":15939.620580611292,"y":18829.973526666363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ATR3","config":"{\n \"codeName\": \"atr3\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.atr3","project":"Superalgos","id":"2521d41c-60fa-421e-ba7d-8d9b6ff19477","savedPayload":{"position":{"x":16151.91397250432,"y":19307.095190144013},"targetPosition":{"x":16086.12577985863,"y":19159.20980728678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"039f8d7d-2ea5-44b1-b758-4f86a4445a63","savedPayload":{"position":{"x":16086.12577985863,"y":19159.20980728678},"targetPosition":{"x":15939.620580611292,"y":18829.973526666363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ATR14","config":"{\n \"codeName\": \"atr14\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.atr14","project":"Superalgos","id":"65b7d85e-1da0-4a77-b96f-eaa5d3b24036","savedPayload":{"position":{"x":15884.526032532656,"y":19354.15136731505},"targetPosition":{"x":15901.383235043144,"y":19193.23287469804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c6b1bb6e-17b8-45ff-8a25-b1ae575dde04","savedPayload":{"position":{"x":15901.383235043144,"y":19193.23287469804},"targetPosition":{"x":15939.620580611292,"y":18829.973526666363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2838dfa4-22e5-4583-9b08-fed43081af24","savedPayload":{"position":{"x":15508.104528550284,"y":18690.163143118298},"targetPosition":{"x":15111.82908854388,"y":18402.43596333557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current // get current candle data\nlet tr = calculateTR() // get true range value\n\nvariable.atr2 = calculateATR(tr, 2, variable.previousATR2)\nvariable.atr3 = calculateATR(tr, 3, variable.previousATR3)\nvariable.atr14 = calculateATR(tr, 14, variable.previousATR14)\n\nvariable.prevClose = candle.close\nvariable.previousATR2 = variable.atr2\nvariable.previousATR3 = variable.atr3\nvariable.previousATR14 = variable.atr14\n\n/* Helper Functions */\n\n/* Calculate True Range */\nfunction calculateTR() {\n let hl = candle.max - candle.min\n \n if (variable.prevClose === 0) { return hl } // Return High-Low when previous Close is 0\n \n let hcp = Math.abs(candle.max - variable.prevClose)\n let lcp = Math.abs(candle.min - variable.prevClose)\n \n return Math.max(hl, hcp, lcp)\n}\n\n/* Calculate Average True Range - Smoothing Function RMA*/\nfunction calculateATR(source, length, previousATR) {\n return (source + (length - 1) * previousATR) / length\n}","project":"Superalgos","id":"0814b5ad-81ed-4d17-ba6c-2ecad55f5f31","savedPayload":{"position":{"x":15575.010446231227,"y":19037.695900070066},"targetPosition":{"x":15392.900591436046,"y":18873.151975537177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"752cd82a-205d-43f5-b6ee-06f5c0a82f33","savedPayload":{"position":{"x":15392.900591436046,"y":18873.151975537177},"targetPosition":{"x":15211.42938287064,"y":18709.591525655145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code*/\n\nvariable.prevClose = 0\n\nvariable.previousATR2 = 0\nvariable.previousATR3 = 0\nvariable.previousATR14 = 0","project":"Superalgos","id":"b1ee7e9d-a89a-4c18-beaf-9b1ebdc25dd1","savedPayload":{"position":{"x":15109.914055259567,"y":19188.839831202968},"targetPosition":{"x":15160.493193644543,"y":18948.62593414079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c1dbc0e9-06b0-426a-9e7b-731bd1c2305f","savedPayload":{"position":{"x":15160.493193644543,"y":18948.62593414079},"targetPosition":{"x":15211.42938287064,"y":18709.591525655145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7779fc37-e563-4515-8c11-7732793ebfe0","savedPayload":{"position":{"x":15211.42938287064,"y":18709.591525655145},"targetPosition":{"x":15111.82908854388,"y":18402.43596333557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"660570d1-36e0-4099-817c-6c8a29b32689","savedPayload":{"position":{"x":14750.661289206579,"y":18349.780322693918},"targetPosition":{"x":14465.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"ATR - RMA","id":"99088549-f1c0-4157-ba7e-ffd6dfd0d140"}}},{"type":"Product Definition","name":"ATR - SMA","config":"{\n \"codeName\": \"ATR-SMA\",\n \"singularVariableName\": \"atrSMA\",\n \"pluralVariableName\": \"atrSMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"2570d2c7-72e3-4131-97dc-a9f97f493e93","savedPayload":{"position":{"x":15472.11610717982,"y":18741.93050267255},"targetPosition":{"x":15117.105403575064,"y":18741.930812238214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"93eb665f-d903-4825-9fb1-2783e917ac89","savedPayload":{"position":{"x":15403.749982332578,"y":18950.274850863527},"targetPosition":{"x":15117.105403575064,"y":18741.930812238214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"Begin","code":"record.current.begin","project":"Superalgos","id":"8b1f8ca7-d741-489f-a1f9-3851920e6d59","savedPayload":{"position":{"x":15563.98975852019,"y":19212.413049678013},"targetPosition":{"x":15444.111512197633,"y":19187.105219850695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7c4a6317-bc3a-45d8-9dcc-4c42fa6a653b","savedPayload":{"position":{"x":15444.111512197633,"y":19187.105219850695},"targetPosition":{"x":15085.58723895279,"y":19111.911279284417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"42ca9eb2-da3a-4972-8be8-756fa50a5585","savedPayload":{"position":{"x":15448.78525522479,"y":19438.67387600754},"targetPosition":{"x":15357.597814261277,"y":19356.842918661983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d4ccc9d1-616c-44e1-8019-f5dfbbac5d4c","savedPayload":{"position":{"x":15357.597814261277,"y":19356.842918661983},"targetPosition":{"x":15085.58723895279,"y":19111.911279284417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ATR2","config":"{\n \"codeName\": \"atr2\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.atr2","project":"Superalgos","id":"fa760872-a812-4bc6-8fe4-8669ec91bbe0","savedPayload":{"position":{"x":15236.45046312056,"y":19577.663799949813},"targetPosition":{"x":15198.540010551624,"y":19459.57363893426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"02df8c90-68ec-44ef-8abf-fb7d255815d2","savedPayload":{"position":{"x":15198.540010551624,"y":19459.57363893426},"targetPosition":{"x":15085.58723895279,"y":19111.911279284417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ATR3","config":"{\n \"codeName\": \"atr3\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.atr3","project":"Superalgos","id":"ee78802d-f297-45d6-8fa7-df7800ebf295","savedPayload":{"position":{"x":14983.425277280316,"y":19590.624304791076},"targetPosition":{"x":15009.678460048635,"y":19470.060210477488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3e3dd4c6-8f81-4e2b-bcba-34d1ca11abf0","savedPayload":{"position":{"x":15009.678460048635,"y":19470.060210477488},"targetPosition":{"x":15085.58723895279,"y":19111.911279284417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ATR14","config":"{\n \"codeName\": \"atr14\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.atr14","project":"Superalgos","id":"fdcc52bb-2dd9-4597-8399-eba8f2e36639","savedPayload":{"position":{"x":14757.895117274733,"y":19474.975208550157},"targetPosition":{"x":14840.06843551105,"y":19384.201150231296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"93cc0b1e-9414-406b-bbf7-7708bf303a9a","savedPayload":{"position":{"x":14840.06843551105,"y":19384.201150231296},"targetPosition":{"x":15085.58723895279,"y":19111.911279284417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"de04ae72-affd-4bea-aab2-d7e4b1e8345d","savedPayload":{"position":{"x":15302.429654583873,"y":19311.928359012905},"targetPosition":{"x":15117.105403575064,"y":18741.930812238214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current // get current candle data\nvariable.last14TR.push(calculateTR()) // Add the current true range value to last 14 array\n\nif (variable.last14TR.length > 14) {\n variable.last14TR.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 14 elements\n}\n\nvariable.atr2 = calculateATR(2)\nvariable.atr3 = calculateATR(3)\nvariable.atr14 = calculateATR(14)\nvariable.prevClose = candle.close\n\n/* Helper Functions */\n\n/* Calculate True Range */\nfunction calculateTR() {\n let hl = candle.max - candle.min\n \n if (variable.prevClose === 0) { return hl } // Return High-Low when previous Close is 0\n \n let hcp = Math.abs(candle.max - variable.prevClose)\n let lcp = Math.abs(candle.min - variable.prevClose)\n \n return Math.max(hl, hcp, lcp)\n}\n\n/* Calculate Average True Range - Smoothing Function SMA */\nfunction calculateATR(length) {\n /* We check we have enough values to make the calculation */\n if (variable.last14TR.length < length) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last14TR.length - length; i < variable.last14TR.length; i++) { // Iterate through the last periods\n sum = sum + variable.last14TR[i]\n }\n \n let atr = sum / length\n return atr\n}","project":"Superalgos","id":"de821ecb-f4c2-4645-abe3-f2ec25c5b50f","savedPayload":{"position":{"x":15112.81585302037,"y":19726.046484448707},"targetPosition":{"x":15050.653396756414,"y":19432.052700560984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"81ad9ba0-f387-4884-8b7d-32ee9d44d73e","savedPayload":{"position":{"x":15050.653396756414,"y":19432.052700560984},"targetPosition":{"x":14987.751564882532,"y":19140.476669581738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code*/\n\nvariable.last14TR = []\nvariable.prevClose = 0","project":"Superalgos","id":"d388972a-f1b2-4b99-8406-35d07a7a5ab0","savedPayload":{"position":{"x":14660.64938184871,"y":19644.01327732395},"targetPosition":{"x":14824.318926700133,"y":19391.246244290895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad6cc9e7-46c3-4500-924b-7523e5c9fa7f","savedPayload":{"position":{"x":14824.318926700133,"y":19391.246244290895},"targetPosition":{"x":14987.751564882532,"y":19140.476669581738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4a310776-ce28-4e79-97fb-90fb350614c2","savedPayload":{"position":{"x":14987.751564882532,"y":19140.476669581738},"targetPosition":{"x":15117.105403575064,"y":18741.930812238214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d83ffb9c-d01c-49eb-991d-3dc31baac747","savedPayload":{"position":{"x":14641.679910005776,"y":18499.780322693918},"targetPosition":{"x":14465.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"ATR - SMA","id":"a6a3f5a6-8c33-482d-a922-5719afc35325"}}}],"id":"3f716c19-6b29-4a9e-aef4-e4a867838e57","savedPayload":{"position":{"x":14465.344334318033,"y":18257.075224381435},"targetPosition":{"x":14165.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Rate of Change (ROC)","config":"{\n\"codeName\": \"ROC\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates RSI.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market ROC 32","project":"Superalgos","id":"6687ee94-004b-4834-a145-867151c4e37c","savedPayload":{"position":{"x":15008.933381907107,"y":18622.44483249069},"targetPosition":{"x":14938.819526428793,"y":18884.707090876826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"41a488be-c66c-458d-99fc-490b9e8172ef"}}},{"type":"Output Dataset","name":"Multi-Period-Market ROC 76","project":"Superalgos","id":"a27232dd-4d69-46b8-8d8e-67499c9ddc30","savedPayload":{"position":{"x":15174.077838841935,"y":18749.059694959735},"targetPosition":{"x":14938.819526428793,"y":18884.707090876826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"40268fec-e5e8-4b05-9f27-c4072ebda94a"}}},{"type":"Output Dataset","name":"Multi-Period-Market ROC 9","project":"Superalgos","id":"bbeb8cb6-5465-45be-80a9-2cbb46e3f5fa","savedPayload":{"position":{"x":15201.331077961531,"y":18955.151491455043},"targetPosition":{"x":14938.819526428793,"y":18884.707090876826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9c6b7d85-01f5-449c-a5be-9a357b6588bc"}}}],"outputDatasetFolders":[],"id":"b6c54494-092a-4220-b0e9-1db9da7fd411","savedPayload":{"position":{"x":14938.819526428793,"y":18884.707090876826},"targetPosition":{"x":14627.331297304194,"y":19064.746737076068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"5f954d97-d843-483e-919b-d94dd8329497","savedPayload":{"position":{"x":14834.45408468019,"y":17455.46839254802},"targetPosition":{"x":15045.48344698509,"y":17716.203049618853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Rate of Change (ROC) Multi-Period-Market","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"7820dbef-88ab-4682-b542-88f6d2ae9f59","savedPayload":{"position":{"x":15080.41304623451,"y":17382.592767928552},"targetPosition":{"x":15045.48344698509,"y":17716.203049618853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"87a0c5e3-20b4-48f7-a9db-4a9280ecb4b3"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"805d6b40-cc28-470f-8f39-67b2b48f155a","savedPayload":{"position":{"x":15308.849832081294,"y":17502.677079543166},"targetPosition":{"x":15045.48344698509,"y":17716.203049618853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"aa85fa69-abb3-4423-8d78-8bf1dd6c42d5","savedPayload":{"position":{"x":14994.681870186992,"y":19065.033839370873},"targetPosition":{"x":14627.331297304194,"y":19064.746737076068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"87a0c5e3-20b4-48f7-a9db-4a9280ecb4b3","savedPayload":{"position":{"x":14946.684261605933,"y":19249.06978931289},"targetPosition":{"x":14627.331297304194,"y":19064.746737076068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"3a6b674a-eb56-4f63-866b-f4e41dde72bb","savedPayload":{"position":{"x":14811.634440232534,"y":19383.37614366503},"targetPosition":{"x":14627.331297304194,"y":19064.746737076068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"c97508ab-c7eb-4047-911a-3ee3265c352b","savedPayload":{"position":{"x":14627.927303539287,"y":19438.784183043557},"targetPosition":{"x":14627.331297304194,"y":19064.746737076068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a2a141ba-08ed-4f30-9c7d-f811c6a7c571","savedPayload":{"position":{"x":14615.344334318033,"y":18516.882845516768},"targetPosition":{"x":14315.344334318033,"y":18516.882845516768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Calculates RSI\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily ROC 32","project":"Superalgos","id":"3c5e8fe8-cf8d-4a96-967a-2d4d534bbd71","savedPayload":{"position":{"x":14978.585790503006,"y":19072.05799184798},"targetPosition":{"x":14786.604641261492,"y":19264.109327774422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"30276899-0d68-40e3-9c35-a28442485b55"}}},{"type":"Output Dataset","name":"Multi-Period-Daily ROC 76","project":"Superalgos","id":"daf0c646-8592-4fd2-9f7d-bab86663faaf","savedPayload":{"position":{"x":15058.038872582096,"y":19264.193847454917},"targetPosition":{"x":14786.604641261492,"y":19264.109327774422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cb60d68b-b11d-4317-8830-65c212a8c728"}}},{"type":"Output Dataset","name":"Multi-Period-Daily ROC 9","project":"Superalgos","id":"0dbd1ffd-047b-4bf7-a74a-9df95d5b534c","savedPayload":{"position":{"x":14978.29180056839,"y":19456.55465706332},"targetPosition":{"x":14786.604641261492,"y":19264.109327774422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"66f59b6d-9d4b-4cef-9ffd-aed019219809"}}}],"outputDatasetFolders":[],"id":"09d69ba1-345f-4d96-b3e4-a98f1f778a70","savedPayload":{"position":{"x":14786.604641261492,"y":19264.109327774422},"targetPosition":{"x":14428.246269815478,"y":19263.877911817646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Rate of Change (ROC) Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"b1e59db1-0480-4533-940c-e6ede212b124","savedPayload":{"position":{"x":15392.773384578806,"y":17792.26895317057},"targetPosition":{"x":15462.239646243688,"y":18120.451225718956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"af0bcf3a-4021-4861-870a-a06f5aad8761"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"67e616b0-72f4-4e9c-b144-e6f6bde5777b","savedPayload":{"position":{"x":15598.62429579343,"y":17814.241912357164},"targetPosition":{"x":15462.239646243688,"y":18120.451225718956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"c4cbf20f-ff4e-4611-8e4a-4340231bc3c5","savedPayload":{"position":{"x":15752.686076078171,"y":17952.815573069183},"targetPosition":{"x":15462.239646243688,"y":18120.451225718956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"b95527eb-2205-43ef-a1e6-7d3a08219e27","savedPayload":{"position":{"x":15795.827942803273,"y":18155.371084075865},"targetPosition":{"x":15462.239646243688,"y":18120.451225718956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"d1a1f76c-a070-4958-8821-b3abcac7b176","savedPayload":{"position":{"x":14744.078440246507,"y":19447.108012017554},"targetPosition":{"x":14428.246269815478,"y":19263.877911817646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"af0bcf3a-4021-4861-870a-a06f5aad8761","savedPayload":{"position":{"x":14611.053964737748,"y":19581.229080578545},"targetPosition":{"x":14428.246269815478,"y":19263.877911817646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"f75ad3de-ba1f-4c68-a869-1bdad8587c71","savedPayload":{"position":{"x":14428.245659562737,"y":19630.366604182327},"targetPosition":{"x":14428.246269815478,"y":19263.877911817646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"bd45fa4a-4611-4126-b746-e9d56b9991bd","savedPayload":{"position":{"x":14245.46161436666,"y":19580.498820009692},"targetPosition":{"x":14428.246269815478,"y":19263.877911817646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"eea3cb55-83e5-400f-acc4-b71f5631d351","savedPayload":{"position":{"x":14575.151955453364,"y":18666.882845516768},"targetPosition":{"x":14315.344334318033,"y":18516.882845516768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"ROC 76","config":"{\n \"codeName\": \"ROC-76\",\n \"singularVariableName\": \"roc76\",\n \"pluralVariableName\": \"roc76s\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"40268fec-e5e8-4b05-9f27-c4072ebda94a","savedPayload":{"position":{"x":14314.12127307937,"y":19535.220382261967},"targetPosition":{"x":14072.436809520677,"y":19360.046678345214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"cb60d68b-b11d-4317-8830-65c212a8c728","savedPayload":{"position":{"x":14164.62333429476,"y":19643.5798771065},"targetPosition":{"x":14072.436809520677,"y":19360.046678345214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"Begin","code":"record.current.begin","project":"Superalgos","id":"f3985849-3dba-4ab4-be09-45855ceb32a5","savedPayload":{"position":{"x":14090.35742574501,"y":20240.1078249821},"targetPosition":{"x":14028.436669898714,"y":20118.419424725806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ca08ef1e-44f8-4b51-8412-ab5ea4cd4383","savedPayload":{"position":{"x":14028.436669898714,"y":20118.419424725806},"targetPosition":{"x":13905.040550199243,"y":19876.331196723928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"f84ebdb9-1371-4a1b-a55a-ec0fff505e8d","savedPayload":{"position":{"x":13779.263341745129,"y":20264.865670766187},"targetPosition":{"x":13821.292014135495,"y":20134.872909444355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9b6434b8-6a14-4b15-9071-560f91991c1e","savedPayload":{"position":{"x":13821.292014135495,"y":20134.872909444355},"targetPosition":{"x":13905.040550199243,"y":19876.331196723928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Value","config":"{\n \"codeName\": \"value\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.value","project":"Superalgos","id":"4b4cc4ab-233d-4366-bb1c-c6cf4945e87e","savedPayload":{"position":{"x":13541.56143534548,"y":20062.21662922665},"targetPosition":{"x":13663.02830397808,"y":19999.789780996187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a3ee4969-b28a-4d7c-9ceb-eba3ba2c8a21","savedPayload":{"position":{"x":13663.02830397808,"y":19999.789780996187},"targetPosition":{"x":13905.040550199243,"y":19876.331196723928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8b1a0793-6111-4773-b83f-4fdc596aebfc","savedPayload":{"position":{"x":13905.040550199243,"y":19876.331196723928},"targetPosition":{"x":14072.436809520677,"y":19360.046678345214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current // get current candle data\n\n/* Calculate Rate of Change */\nvariable.value = calculateROC(candle.close, variable.length)\n\nvariable.lastCloses.push(candle.close) // Add the current close value to the last closes array.\n\nif (variable.lastCloses.length > variable.length) {\n variable.lastCloses.splice(0, 1) // Remove the first element of the array to keep it at a maximun of n elements.\n}\n\n/* Helper Functions */\n\n/* Calculate Rate of Change */\nfunction calculateROC(source, length) {\n /* Check if we have enough values to make the calculation */\n if (variable.lastCloses.length < length) { return 0 }\n \n /* Check if n-last candle close is zero, avoid division by zero */\n if (variable.lastCloses[0] === 0) { return 0 }\n \n return 100 * (source - variable.lastCloses[0]) / variable.lastCloses[0]\n}","project":"Superalgos","id":"37483919-8084-4d28-8763-02cfd1bdc45d","savedPayload":{"position":{"x":13477.061125501321,"y":19966.568441162126},"targetPosition":{"x":13647.724035519972,"y":19755.965621829666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5eb39756-772a-4cc2-b0f2-4b7eab6abf57","savedPayload":{"position":{"x":13647.724035519972,"y":19755.965621829666},"targetPosition":{"x":13818.767616795143,"y":19544.646354946926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code*/\n\nvariable.length = 76\nvariable.lastCloses = []","project":"Superalgos","id":"3157aaee-5248-4767-b339-45835c0cffa7","savedPayload":{"position":{"x":13311.392851826651,"y":19739.34622069687},"targetPosition":{"x":13564.772486033042,"y":19642.261075240218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1392b12a-4221-4e2a-b692-cb7a07b40f84","savedPayload":{"position":{"x":13564.772486033042,"y":19642.261075240218},"targetPosition":{"x":13818.767616795143,"y":19544.646354946926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bd3ccec7-4ec5-40e8-81f2-1402651648b7","savedPayload":{"position":{"x":13818.767616795143,"y":19544.646354946926},"targetPosition":{"x":14072.436809520677,"y":19360.046678345214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9c2b6696-872f-44a4-b6b2-ab15a0c8541a","savedPayload":{"position":{"x":14465.344334318033,"y":18776.6904666521},"targetPosition":{"x":14315.344334318033,"y":18516.882845516768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"ROC 76","id":"a21bb3ba-b24d-4163-b7d0-ea60220fc368"}}},{"type":"Product Definition","name":"ROC 32","config":"{\n \"codeName\": \"ROC-32\",\n \"singularVariableName\": \"roc32\",\n \"pluralVariableName\": \"roc32s\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"41a488be-c66c-458d-99fc-490b9e8172ef","savedPayload":{"position":{"x":13718.618375116974,"y":19410.832629042437},"targetPosition":{"x":13718.490820807947,"y":19112.59402420142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"30276899-0d68-40e3-9c35-a28442485b55","savedPayload":{"position":{"x":13543.1453600053,"y":19353.559133421008},"targetPosition":{"x":13718.490820807947,"y":19112.59402420142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"Begin","code":"record.current.begin","project":"Superalgos","id":"905bb06a-9b7f-4484-8031-22b0bdf76c79","savedPayload":{"position":{"x":12989.160677061296,"y":19698.57763702253},"targetPosition":{"x":13050.800012383836,"y":19578.0527477508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"23ba960b-4a3f-410d-8d95-d7fb8419557e","savedPayload":{"position":{"x":13050.800012383836,"y":19578.0527477508},"targetPosition":{"x":13202.85733186901,"y":19279.818827442105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"8b6f20e9-ffae-470f-9da0-0fc12d2bbd6d","savedPayload":{"position":{"x":12755.23511866818,"y":19425.519413525875},"targetPosition":{"x":12884.308067133694,"y":19383.20189525649},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"40737f74-0e6d-4ea4-9e77-023af6343601","savedPayload":{"position":{"x":12884.308067133694,"y":19383.20189525649},"targetPosition":{"x":13202.85733186901,"y":19279.818827442105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Value","config":"{\n \"codeName\": \"value\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.value","project":"Superalgos","id":"11ce21e7-ebc3-401d-b550-7b129f3f86b5","savedPayload":{"position":{"x":12783.121989186639,"y":19066.299947034604},"targetPosition":{"x":12903.75325835451,"y":19127.296200889898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4bae0e4f-fa97-4b6e-99de-a61bd75014b1","savedPayload":{"position":{"x":12903.75325835451,"y":19127.296200889898},"targetPosition":{"x":13202.85733186901,"y":19279.818827442105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"048e2c90-bb92-4b32-a847-f337d3953392","savedPayload":{"position":{"x":13202.190682374006,"y":19280.410047627105},"targetPosition":{"x":13718.490820807947,"y":19112.59402420142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current // get current candle data\n\n/* Calculate Rate of Change */\nvariable.value = calculateROC(candle.close, variable.length)\n\nvariable.lastCloses.push(candle.close) // Add the current close value to the last closes array.\n\nif (variable.lastCloses.length > variable.length) {\n variable.lastCloses.splice(0, 1) // Remove the first element of the array to keep it at a maximun of n elements.\n}\n\n/* Helper Functions */\n\n/* Calculate Rate of Change */\nfunction calculateROC(source, length) {\n /* Check if we have enough values to make the calculation */\n if (variable.lastCloses.length < length) { return 0 }\n \n /* Check if n-last candle close is zero, avoid division by zero */\n if (variable.lastCloses[0] === 0) { return 0 }\n \n return 100 * (source - variable.lastCloses[0]) / variable.lastCloses[0]\n}","project":"Superalgos","id":"f84b95ea-bfa6-4c2b-bf49-ff4810a11b97","savedPayload":{"position":{"x":12888.489401132538,"y":19127.753169735326},"targetPosition":{"x":13154.297976415517,"y":19071.518489020447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7848d1ed-fedd-4d0e-8ea6-1212b2d614e5","savedPayload":{"position":{"x":13154.297976415517,"y":19071.518489020447},"targetPosition":{"x":13419.966891686934,"y":19015.55749660139},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code*/\n\nvariable.length = 32\nvariable.lastCloses = []","project":"Superalgos","id":"858ab5d5-0fdc-406a-bbf8-18b648879abe","savedPayload":{"position":{"x":12964.271439963351,"y":18719.83340123723},"targetPosition":{"x":13192.142464146888,"y":18867.665713190574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"428a7ff5-a19a-448d-92d9-d11815613c67","savedPayload":{"position":{"x":13192.142464146888,"y":18867.665713190574},"targetPosition":{"x":13419.966891686934,"y":19015.55749660139},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"37ee9d85-7676-4ae0-956a-7c13706f4311","savedPayload":{"position":{"x":13419.966891686934,"y":19015.55749660139},"targetPosition":{"x":13718.490820807947,"y":19112.59402420142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ff5aacca-1783-4247-9702-ee5dd01fb3ff","savedPayload":{"position":{"x":14315.344334318033,"y":18816.882845516768},"targetPosition":{"x":14315.344334318033,"y":18516.882845516768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"ROC 32","id":"7812b3a3-8375-4f0d-9671-acc05b256d74"}}},{"type":"Product Definition","name":"ROC 9","config":"{\n \"codeName\": \"ROC-9\",\n \"singularVariableName\": \"roc9\",\n \"pluralVariableName\": \"roc9s\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"9c6b7d85-01f5-449c-a5be-9a357b6588bc","savedPayload":{"position":{"x":13656.605096016498,"y":19364.19275728213},"targetPosition":{"x":13687.702590016783,"y":19064.801936312448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"66f59b6d-9d4b-4cef-9ffd-aed019219809","savedPayload":{"position":{"x":13486.349789699583,"y":19287.86746984555},"targetPosition":{"x":13687.702590016783,"y":19064.801936312448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"Begin","code":"record.current.begin","project":"Superalgos","id":"d0c1361d-9b94-4eaf-9b94-b7fe36e11779","savedPayload":{"position":{"x":12901.394873051628,"y":19572.35726702975},"targetPosition":{"x":12974.887087734249,"y":19459.01947800212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"805c77d6-442d-408a-b767-f0bc03b78d68","savedPayload":{"position":{"x":12974.887087734249,"y":19459.01947800212},"targetPosition":{"x":13157.391027265778,"y":19177.689935166243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"b9a17c63-21ea-4295-af8e-e6a3329c2b99","savedPayload":{"position":{"x":12696.97362638759,"y":19275.071878342595},"targetPosition":{"x":12830.238755904316,"y":19247.48865213532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fc34bcb4-0c85-4aa6-a08a-a78120167ed0","savedPayload":{"position":{"x":12830.238755904316,"y":19247.48865213532},"targetPosition":{"x":13157.391027265778,"y":19177.689935166243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Value","config":"{\n \"codeName\": \"value\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.value","project":"Superalgos","id":"d035de65-da5d-4c9f-bf6f-390de346f264","savedPayload":{"position":{"x":12762.744616432738,"y":18922.127163569858},"targetPosition":{"x":12875.355146988095,"y":18994.863745604693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2dda380a-bda1-4bc5-9132-86956e080f01","savedPayload":{"position":{"x":12875.355146988095,"y":18994.863745604693},"targetPosition":{"x":13157.391027265778,"y":19177.689935166243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"31966558-4e25-4512-bc6a-1a83d05affac","savedPayload":{"position":{"x":13156.599441905964,"y":19177.816035139378},"targetPosition":{"x":13687.702590016783,"y":19064.801936312448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current // get current candle data\n\n/* Calculate Rate of Change */\nvariable.value = calculateROC(candle.close, variable.length)\n\nvariable.lastCloses.push(candle.close) // Add the current close value to the last closes array.\n\nif (variable.lastCloses.length > variable.length) {\n variable.lastCloses.splice(0, 1) // Remove the first element of the array to keep it at a maximun of n elements.\n}\n\n/* Helper Functions */\n\n/* Calculate Rate of Change */\nfunction calculateROC(source, length) {\n /* Check if we have enough values to make the calculation */\n if (variable.lastCloses.length < length) { return 0 }\n \n /* Check if n-last candle close is zero, avoid division by zero */\n if (variable.lastCloses[0] === 0) { return 0 }\n \n return 100 * (source - variable.lastCloses[0]) / variable.lastCloses[0]\n}","project":"Superalgos","id":"9073d856-36e6-4fbb-86a8-b0244be2ff2a","savedPayload":{"position":{"x":12855.154558109843,"y":18990.86633818107},"targetPosition":{"x":13125.88933406421,"y":18962.89293855672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8bb88eaa-9d57-470b-8bb4-b443917ce585","savedPayload":{"position":{"x":13125.88933406421,"y":18962.89293855672},"targetPosition":{"x":13395.301115489227,"y":18934.647124705894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code*/\n\nvariable.length = 9\nvariable.lastCloses = []","project":"Superalgos","id":"d8f4eb7f-979c-423f-96b4-519046ede40b","savedPayload":{"position":{"x":12973.176248094209,"y":18593.112868463013},"targetPosition":{"x":13184.841603055607,"y":18764.118449419162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed52861e-b8e3-40fa-88e8-2d7a1fde01d4","savedPayload":{"position":{"x":13184.841603055607,"y":18764.118449419162},"targetPosition":{"x":13395.301115489227,"y":18934.647124705894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a77a13e5-83be-4f7d-803b-6a18e202ae7e","savedPayload":{"position":{"x":13395.301115489227,"y":18934.647124705894},"targetPosition":{"x":13687.702590016783,"y":19064.801936312448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"83bfd082-1c10-4c42-be63-379a2100cc0e","savedPayload":{"position":{"x":14165.344334318033,"y":18776.6904666521},"targetPosition":{"x":14315.344334318033,"y":18516.882845516768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"ROC 9","id":"5ecd7465-9f89-4e20-bea9-2216863e2990"}}}],"id":"aa47dd1b-60cc-4ab1-8cd1-d5f54005e54c","savedPayload":{"position":{"x":14315.344334318033,"y":18516.882845516768},"targetPosition":{"x":14165.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Stochastic","config":"{\n\"codeName\": \"Stochastic\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates RSI.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Stoch-14-3-3","project":"Superalgos","id":"2c380e74-2851-45ff-975d-32344bb1ac34","savedPayload":{"position":{"x":14139.548849759183,"y":19671.558824397838},"targetPosition":{"x":13905.00195827708,"y":19481.5337394559},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"88b1ff0e-ad99-474c-8833-7b76a5a57ebd"}}}],"outputDatasetFolders":[],"id":"40b215c0-0e30-4315-b501-1335125297ce","savedPayload":{"position":{"x":13905.00195827708,"y":19481.5337394559},"targetPosition":{"x":13615.358389345267,"y":19247.34051029314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"5f810842-42b7-47cf-b1c8-cafff231ca57","savedPayload":{"position":{"x":14359.45087102331,"y":17224.64805011805},"targetPosition":{"x":14570.48023332821,"y":17485.38270718888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Stochastic Multi-Period-Market","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"c8f7ce8f-1aee-4433-8395-e4b6c2e24ba7","savedPayload":{"position":{"x":14605.409832577629,"y":17151.77242549858},"targetPosition":{"x":14570.48023332821,"y":17485.38270718888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"94b42891-942c-4026-aeff-60fd555096f4"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"7d9dc95c-39e1-45a4-b982-3d5bb0994db5","savedPayload":{"position":{"x":14833.846618424413,"y":17271.85673711319},"targetPosition":{"x":14570.48023332821,"y":17485.38270718888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"1262c170-5760-4cb8-8fbc-d8c002bf3a66","savedPayload":{"position":{"x":13750.501795926328,"y":19600.834507007894},"targetPosition":{"x":13615.358389345267,"y":19247.34051029314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"94b42891-942c-4026-aeff-60fd555096f4","savedPayload":{"position":{"x":13556.300527061034,"y":19620.36891365568},"targetPosition":{"x":13615.358389345267,"y":19247.34051029314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"8e13aff4-da04-49bb-81d2-322fd6d0b412","savedPayload":{"position":{"x":13377.380217526432,"y":19541.357409571203},"targetPosition":{"x":13615.358389345267,"y":19247.34051029314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"962fd00f-ab4c-4f0d-af74-a39c6c5a9c38","savedPayload":{"position":{"x":13262.29945362842,"y":19382.849140922044},"targetPosition":{"x":13615.358389345267,"y":19247.34051029314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6a6a6533-21a9-4be9-b2f0-ace1adfe45b8","savedPayload":{"position":{"x":14092.990047848789,"y":18806.66059340349},"targetPosition":{"x":14015.344334318033,"y":18516.882845516768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Calculates RSI\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Stoch-14-3-3","project":"Superalgos","id":"d834ef3b-b891-43d0-b5ba-ab072e0fc98b","savedPayload":{"position":{"x":13292.8816411857,"y":19675.421818898074},"targetPosition":{"x":13261.437340592827,"y":19375.733938448233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4b941e0d-8b0a-41e2-bc20-54e0bc0d936a"}}}],"outputDatasetFolders":[],"id":"3068bb07-0fec-4c91-bfc1-8060bfed5f51","savedPayload":{"position":{"x":13261.437340592827,"y":19375.733938448233},"targetPosition":{"x":13222.716557950087,"y":19006.715341160238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Stochastic Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"1cafc2e1-ea17-4b18-bd08-9ce02fd49de3","savedPayload":{"position":{"x":14917.770170921925,"y":17561.448610740597},"targetPosition":{"x":14987.236432586807,"y":17889.630883288984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"494234e3-13b6-4f90-a529-77b23ee55bc8"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"31a36ff7-480e-4472-8286-ab91f424d2f2","savedPayload":{"position":{"x":15123.62108213655,"y":17583.421569927188},"targetPosition":{"x":14987.236432586807,"y":17889.630883288984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"bf8a555b-95d9-4a79-8889-4b9e3fe0bc06","savedPayload":{"position":{"x":15277.68286242129,"y":17721.995230639208},"targetPosition":{"x":14987.236432586807,"y":17889.630883288984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"a38119ba-cc6a-4cc8-8138-c9fe971073c0","savedPayload":{"position":{"x":15320.824729146392,"y":17924.550741645893},"targetPosition":{"x":14987.236432586807,"y":17889.630883288984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"c9030a10-5dbe-4438-9b47-e3c2e21e9c45","savedPayload":{"position":{"x":13069.491397115922,"y":19350.038916312325},"targetPosition":{"x":13222.716557950087,"y":19006.715341160238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"494234e3-13b6-4f90-a529-77b23ee55bc8","savedPayload":{"position":{"x":12917.836912733812,"y":19228.234249660654},"targetPosition":{"x":13222.716557950087,"y":19006.715341160238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"0141c05e-dd7a-4466-b87c-6f5ff6248096","savedPayload":{"position":{"x":12848.58107207068,"y":19046.265422478395},"targetPosition":{"x":13222.716557950087,"y":19006.715341160238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"e8651790-aada-42d6-85c7-b98b6bd2f7d6","savedPayload":{"position":{"x":12875.06023777149,"y":18872.181385849726},"targetPosition":{"x":13222.716557950087,"y":19006.715341160238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6a39c43d-0ad2-4c98-ae06-6e40f55d1753","savedPayload":{"position":{"x":13865.344334318033,"y":18776.6904666521},"targetPosition":{"x":14015.344334318033,"y":18516.882845516768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Stoch-14-3-3","config":"{\n \"codeName\": \"Stoch-14-3-3\",\n \"singularVariableName\": \"stoch1433\",\n \"pluralVariableName\": \"stoch1433s\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"88b1ff0e-ad99-474c-8833-7b76a5a57ebd","savedPayload":{"position":{"x":13004.06761041703,"y":19361.104625510237},"targetPosition":{"x":13130.570381785448,"y":19031.170971173728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"4b941e0d-8b0a-41e2-bc20-54e0bc0d936a","savedPayload":{"position":{"x":12834.104503070754,"y":19223.427131090273},"targetPosition":{"x":13130.570381785448,"y":19031.170971173728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"Begin","code":"record.current.begin","project":"Superalgos","id":"f75f0660-8a0c-44cb-bf93-db351ab8d05c","savedPayload":{"position":{"x":12122.365439559711,"y":19406.01629098763},"targetPosition":{"x":12231.034563710582,"y":19271.71015493603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8c35b00f-6b83-47b6-8f23-ecef14656d97","savedPayload":{"position":{"x":12231.034563710582,"y":19271.71015493603},"targetPosition":{"x":12458.122288795184,"y":18990.974948712355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"c7303daa-523a-4153-ae52-a8cac30aa567","savedPayload":{"position":{"x":11942.728033441905,"y":19129.001522343606},"targetPosition":{"x":12109.367235877373,"y":19084.407734478482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"db80f524-af49-4d39-b4b4-d70d87e47745","savedPayload":{"position":{"x":12109.367235877373,"y":19084.407734478482},"targetPosition":{"x":12458.122288795184,"y":18990.974948712355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fast Line","config":"{\n \"codeName\": \"fastLine\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.fastLine","project":"Superalgos","id":"430718f7-482d-4a44-96ce-a85dd76680b1","savedPayload":{"position":{"x":11953.28260028235,"y":18797.57969264456},"targetPosition":{"x":12115.13704231436,"y":18859.526827090576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a2b00adf-0b72-44cf-82a0-bcd6b95ff7c1","savedPayload":{"position":{"x":12115.13704231436,"y":18859.526827090576},"targetPosition":{"x":12458.122288795184,"y":18990.974948712355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Line","config":"{\n \"codeName\": \"slowLine\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.slowLine","project":"Superalgos","id":"9ad4bcac-98b9-4880-93fe-a6319635384a","savedPayload":{"position":{"x":12149.24710607322,"y":18538.458915311232},"targetPosition":{"x":12261.710964333291,"y":18693.36626511135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c7620ef0-d47f-4eba-ae08-386c7cae1491","savedPayload":{"position":{"x":12261.710964333291,"y":18693.36626511135},"targetPosition":{"x":12458.122288795184,"y":18990.974948712355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"77ed625d-dbbc-4dc0-a707-de3ca5066341","savedPayload":{"position":{"x":12425.038924721215,"y":18994.379878811258},"targetPosition":{"x":13130.570381785448,"y":19031.170971173728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current // get current candle data\nvariable.lastHighs.push(candle.max) // Add the current high value to the last highs array.\nvariable.lastLows.push(candle.min) // Add the current low value to the last lows array.\n\n/* Remove the first element of the array to keep it at a maximun of n elements */\nif (variable.lastHighs.length > variable.length) {\n variable.lastHighs.splice(0, 1)\n variable.lastLows.splice(0, 1)\n}\n\n/* Calculate Stoch - Signal */\nvariable.signal = calculateStoch(candle.close, variable.length)\n\n\nvariable.lastSignals.push(variable.signal)\n\n/* Remove the first element of the array to keep it at a maximun of n elements */\nif (variable.lastSignals.length > variable.smaFast) {\n variable.lastSignals.splice(0, 1)\n}\n\n/* Calculate Stoch - Fast Line */\nvariable.fastLine = calculateSMA(variable.lastSignals, variable.smaFast)\n\n\nvariable.lastSMAFast.push(variable.fastLine)\n\n/* Remove the first element of the array to keep it at a maximun of n elements */\nif (variable.lastSMAFast.length > variable.smaSlow) {\n variable.lastSMAFast.splice(0, 1)\n}\n\n/* Calculate Stoch - Slow Line */\nvariable.slowLine = calculateSMA(variable.lastSMAFast, variable.smaSlow)\n\n\n/* Helper Functions */\n\n/* Calculate Sochastic Signal */\nfunction calculateStoch(source, length) {\n /* Check if we have enough values to make the calculation */\n if (variable.lastHighs.length < length) { return 0 }\n \n /* Get highest high and lowest low of n-last elements */\n let high = Math.max(...variable.lastHighs)\n let low = Math.min(...variable.lastLows)\n\n /* Check on division by Zero */\n if(high === low) { return 0 }\n \n return 100 * (source - low) / (high - low)\n}\n\n/* Calculate Simple Moving Average */\nfunction calculateSMA(values, length) {\n /* We check we have enough values to make the calculation */\n if (values.length < length) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = values.length - length; i < values.length; i++) { // Iterate through the last periods\n sum = sum + values[i]\n }\n \n return sum / length\n}","project":"Superalgos","id":"cb01047f-16aa-4507-8e97-a96d7a8bbb75","savedPayload":{"position":{"x":12159.0254730005,"y":18698.64521302974},"targetPosition":{"x":12507.812215796479,"y":18753.826877550106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2e7b0c32-92cc-4e9e-a130-ae33bc248b40","savedPayload":{"position":{"x":12507.812215796479,"y":18753.826877550106},"targetPosition":{"x":12856.337340568305,"y":18809.08618152958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code*/\n\nvariable.length = 14\nvariable.smaFast = 3\nvariable.smaSlow = 3\n\nvariable.signal = 0\nvariable.lastSignals = []\nvariable.lastSMAFast = []\nvariable.lastHighs = []\nvariable.lastLows = []","project":"Superalgos","id":"18cf20b6-0b7b-4520-9cf4-89ee085ab8b9","savedPayload":{"position":{"x":12441.189670001335,"y":18237.68441715349},"targetPosition":{"x":12648.724660790016,"y":18523.299611254966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bc5124f7-650e-476b-b997-1257e4f89c2f","savedPayload":{"position":{"x":12648.724660790016,"y":18523.299611254966},"targetPosition":{"x":12856.337340568305,"y":18809.08618152958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"169e9a70-4b42-426c-8d9a-b60c41ab7f17","savedPayload":{"position":{"x":12856.337340568305,"y":18809.08618152958},"targetPosition":{"x":13130.570381785448,"y":19031.170971173728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"393dc97b-76ee-409a-9b8f-f264ed652b0b","savedPayload":{"position":{"x":13725.566586431312,"y":18594.528559047525},"targetPosition":{"x":14015.344334318033,"y":18516.882845516768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Stoch 14-3-3","id":"6a85fbb1-5a99-4ccc-93e8-092f5dbf6c4a"}}}],"id":"87754aba-6878-4841-9688-352e8c565d16","savedPayload":{"position":{"x":14015.344334318033,"y":18516.882845516768},"targetPosition":{"x":14165.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"plotters":[{"type":"Plotter","name":"Average True Range (ATR)","config":"{\n\"codeName\": \"Plotter-ATR\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"ATR - RMA","config":"{\n\t\"codeName\": \"Module-ATR-RMA\",\n\t\"banner\": \"Oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Grid","project":"Superalgos","points":[{"type":"Point","name":"Begin 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"a7d2fc22-a7d8-4e61-ab21-f9a39f1d8c60","savedPayload":{"position":{"x":13653.871300609968,"y":19119.953262831852},"targetPosition":{"x":13619.532708273084,"y":19316.137204984807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2b15da18-c6ba-45b4-9c1d-35c84f50ec2c","savedPayload":{"position":{"x":13619.532708273084,"y":19316.137204984807},"targetPosition":{"x":13585.038840716112,"y":19512.83235710673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"95e093d9-e212-4ee4-abc0-6b5deffc8db6","savedPayload":{"position":{"x":13891.924639941586,"y":19256.67883107766},"targetPosition":{"x":13738.512849493647,"y":19384.610872980073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c0ff77b-ba09-41be-9ff5-cb6d8bae710d","savedPayload":{"position":{"x":13738.512849493647,"y":19384.610872980073},"targetPosition":{"x":13585.038840716112,"y":19512.83235710673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-2 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.atr2","project":"Superalgos","id":"75a4f710-e619-4578-ad51-a01b965800db","savedPayload":{"position":{"x":13985.86691454998,"y":19513.44372790657},"targetPosition":{"x":13785.479084176077,"y":19513.081659914802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a5d5cdc1-5731-4ec5-b8cd-001e4e62ef54","savedPayload":{"position":{"x":13785.479084176077,"y":19513.081659914802},"targetPosition":{"x":13585.038840716112,"y":19512.83235710673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-2 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.atr2","project":"Superalgos","id":"fcb4421d-ee8a-4a27-8bd2-100cdb0cdbf9","savedPayload":{"position":{"x":13892.032792373917,"y":19771.01365371225},"targetPosition":{"x":13738.584020289993,"y":19641.881812090258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d548a98e-d369-45da-abaf-2e5a758e5379","savedPayload":{"position":{"x":13738.584020289993,"y":19641.881812090258},"targetPosition":{"x":13585.038840716112,"y":19512.83235710673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-3 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.atr3","project":"Superalgos","id":"fb2683a4-a28c-4f2b-9345-93937db60072","savedPayload":{"position":{"x":13654.433256515014,"y":19908.095777372575},"targetPosition":{"x":13619.809100971012,"y":19710.421049658275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08c720e8-2c9a-435d-baf4-06e38a7c7ce0","savedPayload":{"position":{"x":13619.809100971012,"y":19710.421049658275},"targetPosition":{"x":13585.038840716112,"y":19512.83235710673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-3 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.atr3","project":"Superalgos","id":"bdb5b37c-6890-4186-9877-84c01b1672af","savedPayload":{"position":{"x":13384.86014742354,"y":19860.483276799227},"targetPosition":{"x":13485.049058225875,"y":19686.60931772967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a25effcc-2adc-4fc1-939c-45630c3ccd75","savedPayload":{"position":{"x":13485.049058225875,"y":19686.60931772967},"targetPosition":{"x":13585.038840716112,"y":19512.83235710673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-14 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.atr14","project":"Superalgos","id":"df8f75d2-2e35-4567-a43a-6ef38a1d9b6e","savedPayload":{"position":{"x":13208.584983833189,"y":19650.49754924135},"targetPosition":{"x":13396.934232087955,"y":19581.58805671044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"87985d52-78d7-4796-9918-81c7a534035d","savedPayload":{"position":{"x":13396.934232087955,"y":19581.58805671044},"targetPosition":{"x":13585.038840716112,"y":19512.83235710673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-14 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.atr14","project":"Superalgos","id":"9f5379b7-8632-4873-8534-a13505a8cd92","savedPayload":{"position":{"x":13209.003842370985,"y":19377.2541932991},"targetPosition":{"x":13397.127071356557,"y":19444.69671342954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48292688-3718-49fe-9580-97d9ac87fcd4","savedPayload":{"position":{"x":13397.127071356557,"y":19444.69671342954},"targetPosition":{"x":13585.038840716112,"y":19512.83235710673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1cc0e5a-f1dd-4723-a632-51abeb3f696c","savedPayload":{"position":{"x":13585.038840716112,"y":19512.83235710673},"targetPosition":{"x":13186.482907832658,"y":18821.97695189916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line 0","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"4f411d32-d31c-4f70-880d-14400f3f8e20","savedPayload":{"position":{"x":13457.907384246548,"y":19693.976087680807},"targetPosition":{"x":13306.833809660096,"y":19530.27497485336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"18c69ccb-7152-4204-b34e-0d1d92840067","savedPayload":{"position":{"x":13306.833809660096,"y":19530.27497485336},"targetPosition":{"x":13092.476220632878,"y":19315.87297769144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End 0","project":"Superalgos","id":"e1973335-e34b-410f-8c60-6e4f77e4f7fc","savedPayload":{"position":{"x":13092.476284097807,"y":19618.864691375216},"targetPosition":{"x":13092.476220632878,"y":19315.87297769144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"8c0ff77b-ba09-41be-9ff5-cb6d8bae710d"}}},{"type":"Polygon Vertex","name":"Begin 0","project":"Superalgos","id":"5cf3f400-725e-4f2f-8fbb-f9d9d75210a9","savedPayload":{"position":{"x":12875.901425899501,"y":19532.637537031813},"targetPosition":{"x":13092.476220632878,"y":19315.87297769144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"2b15da18-c6ba-45b4-9c1d-35c84f50ec2c"}}}],"id":"b24d41f5-7cc8-4b4b-a0a9-b31b5799c74c","savedPayload":{"position":{"x":13186.326606026596,"y":19221.79100077515},"targetPosition":{"x":13186.482907832658,"y":18821.97695189916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"ATR-14 Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"97f64b46-e6ae-4a56-89fe-808c11a09ec4","savedPayload":{"position":{"x":13004.409873740587,"y":19768.821193830903},"targetPosition":{"x":12946.28450556237,"y":19551.324411120644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"fab23f0e-9455-47a4-ba56-17c3ae1f0c7f","savedPayload":{"position":{"x":12946.28450556237,"y":19551.324411120644},"targetPosition":{"x":12867.169595288506,"y":19255.445078367236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"ATR-14 End","project":"Superalgos","id":"872ffd8b-6c72-42dc-90b4-2c8c73d89173","savedPayload":{"position":{"x":12713.99654304235,"y":19520.683508229053},"targetPosition":{"x":12867.169595288506,"y":19255.445078367236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-14 End","id":"48292688-3718-49fe-9580-97d9ac87fcd4"}}},{"type":"Polygon Vertex","name":"ATR-14 Begin","project":"Superalgos","id":"76fc0dd8-8e4c-4392-93a7-25c0906e6d90","savedPayload":{"position":{"x":12571.201400186928,"y":19334.72910135868},"targetPosition":{"x":12867.169595288506,"y":19255.445078367236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-14 Begin","id":"87985d52-78d7-4796-9918-81c7a534035d"}}}],"id":"ecec9e37-265d-4f9e-8e82-68f6333fbbea","savedPayload":{"position":{"x":12986.36394175057,"y":19168.533476997167},"targetPosition":{"x":13186.482907832658,"y":18821.97695189916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"ATR-3 Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"0bf6c9ec-c077-4ec0-aee5-461ca992952f","savedPayload":{"position":{"x":12735.736757097915,"y":19408.92749305495},"targetPosition":{"x":12787.907134000325,"y":19215.450565930772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"e2ed8b31-4016-421b-b4a5-be4a1efe7dce","savedPayload":{"position":{"x":12787.907134000325,"y":19215.450565930772},"targetPosition":{"x":12839.987380869174,"y":19021.973375922527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"ATR-3 Begin","project":"Superalgos","id":"1f566a4a-a727-4315-bf57-98f6bda4f9f9","savedPayload":{"position":{"x":12666.200707348435,"y":19122.146546122975},"targetPosition":{"x":12839.987380869174,"y":19021.973375922527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-3 Begin","id":"08c720e8-2c9a-435d-baf4-06e38a7c7ce0"}}},{"type":"Polygon Vertex","name":"ATR-3 End","project":"Superalgos","id":"e2ebb5ae-1776-4084-b22d-f8bb1f0f9ce2","savedPayload":{"position":{"x":12646.146960168571,"y":18970.516139771185},"targetPosition":{"x":12839.987380869174,"y":19021.973375922527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-3 End","id":"a25effcc-2adc-4fc1-939c-45630c3ccd75"}}}],"id":"faed1922-2c6f-404f-aa89-bd0279d4a7f6","savedPayload":{"position":{"x":12839.987380869174,"y":19021.973375922527},"targetPosition":{"x":13186.482907832658,"y":18821.97695189916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"ATR-2 Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"5cf73947-8357-482f-b35f-8e9b53437b6a","savedPayload":{"position":{"x":12268.885825197689,"y":19239.33988259211},"targetPosition":{"x":12428.158215134037,"y":19080.028229447955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"4caa937b-ddf0-4ca2-af43-2d464ccad98d","savedPayload":{"position":{"x":12428.158215134037,"y":19080.028229447955},"targetPosition":{"x":12642.334112450113,"y":18865.819958623797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"ATR-2 Begin","project":"Superalgos","id":"c163eb42-687b-4fba-9db6-0084e18e52ce","savedPayload":{"position":{"x":12339.362164957802,"y":18865.85253613687},"targetPosition":{"x":12642.334112450113,"y":18865.819958623797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-2 Begin","id":"a5d5cdc1-5731-4ec5-b8cd-001e4e62ef54"}}},{"type":"Polygon Vertex","name":"ATR-2 End","project":"Superalgos","id":"a44429f7-6721-4619-9419-d14c0a30de19","savedPayload":{"position":{"x":12426.937981376319,"y":18650.429035190355},"targetPosition":{"x":12642.334112450113,"y":18865.819958623797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-2 End","id":"d548a98e-d369-45da-abaf-2e5a758e5379"}}}],"id":"2a6fc3b7-2f9f-4a82-8a96-c05208c308b6","savedPayload":{"position":{"x":12792.854290000712,"y":18827.269762402448},"targetPosition":{"x":13186.482907832658,"y":18821.97695189916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"b5cf58d5-da89-4fff-83cc-000ac1095b32","savedPayload":{"position":{"x":13186.482907832658,"y":18821.97695189916},"targetPosition":{"x":13386.043081475327,"y":18476.082746317756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"ATR - RMA","config":"{ \n\"codeName\": \"Panel-ATR-RMA\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"ATR-2","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.atr2","project":"Superalgos","id":"437acbb9-8126-4866-9a59-5624ab0212fa","savedPayload":{"position":{"x":12689.606048673246,"y":18747.74275773145},"targetPosition":{"x":12844.958211148158,"y":18617.085566845824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08c2e812-c653-45fa-8350-f79c9be57419","savedPayload":{"position":{"x":12844.958211148158,"y":18617.085566845824},"targetPosition":{"x":12986.643151410157,"y":18475.97083021092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ATR-3","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.atr3","project":"Superalgos","id":"d1bb96e2-10c5-41c8-9599-b1220ca00fae","savedPayload":{"position":{"x":12585.710946427327,"y":18475.84733451977},"targetPosition":{"x":12786.142620522907,"y":18475.932087561083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e940e706-b774-413a-9b2f-24d4f2d3403d","savedPayload":{"position":{"x":12786.142620522907,"y":18475.932087561083},"targetPosition":{"x":12986.643151410157,"y":18475.97083021092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ATR-14","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.atr14","project":"Superalgos","id":"9d2b2ba5-4b4c-4323-b66f-25d703cd7522","savedPayload":{"position":{"x":12703.250296222122,"y":18192.7625593956},"targetPosition":{"x":12844.930867252788,"y":18334.380258799494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c4283089-0809-4a02-bb24-fb061af3430a","savedPayload":{"position":{"x":12844.930867252788,"y":18334.380258799494},"targetPosition":{"x":12986.643151410157,"y":18475.97083021092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ea919b0e-a30e-44d7-8d5b-cd83f2c0c3e5","savedPayload":{"position":{"x":12986.643151410157,"y":18475.97083021092},"targetPosition":{"x":13386.043081475327,"y":18476.082746317756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"99088549-f1c0-4157-ba7e-ffd6dfd0d140","savedPayload":{"position":{"x":13386.043081475327,"y":18476.082746317756},"targetPosition":{"x":13765.467815432614,"y":18257.19365613139},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Plotter Module","name":"ATR - SMA","config":"{\n\t\"codeName\": \"Module-ATR-SMA\",\n\t\"banner\": \"Oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Grid","project":"Superalgos","points":[{"type":"Point","name":"Begin 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"24c4ad6e-7531-4c02-a4d1-a92fa0c2d0bd","savedPayload":{"position":{"x":12971.119986950249,"y":18518.03528893684},"targetPosition":{"x":12759.769676598487,"y":18594.784519993726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e1b746f-f708-49a5-9717-eebf4bb6c91a","savedPayload":{"position":{"x":12759.769676598487,"y":18594.784519993726},"targetPosition":{"x":12481.77784164968,"y":18695.849358122832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"96531747-4036-4cf3-91ce-53a592c111db","savedPayload":{"position":{"x":12971.087268712712,"y":18873.911789067744},"targetPosition":{"x":12759.466392719387,"y":18796.975327723892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"51c6cdeb-f974-49f5-a8d6-4a3e4c57539e","savedPayload":{"position":{"x":12759.466392719387,"y":18796.975327723892},"targetPosition":{"x":12481.77784164968,"y":18695.849358122832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-2 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.atr2","project":"Superalgos","id":"a0a91f69-8665-4c10-97ed-b344d46e24e9","savedPayload":{"position":{"x":12742.17856723236,"y":19146.830363930327},"targetPosition":{"x":12629.422093181834,"y":18951.81150086756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"84bd5028-9dd1-4128-b903-2e8e27afee2c","savedPayload":{"position":{"x":12629.422093181834,"y":18951.81150086756},"targetPosition":{"x":12481.77784164968,"y":18695.849358122832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-2 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.atr2","project":"Superalgos","id":"b79ea353-e9af-486d-bd59-f647c1d34121","savedPayload":{"position":{"x":12391.316112767501,"y":19208.60306822377},"targetPosition":{"x":12430.470959288952,"y":18986.860813012907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ebcf383a-71f7-4caf-8c4b-1334e60dfb49","savedPayload":{"position":{"x":12430.470959288952,"y":18986.860813012907},"targetPosition":{"x":12481.77784164968,"y":18695.849358122832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-3 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.atr3","project":"Superalgos","id":"5e321a40-2362-4534-b465-2a9989aecdf8","savedPayload":{"position":{"x":12082.847770433655,"y":19030.564643534963},"targetPosition":{"x":12255.465648035639,"y":18885.770319348274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"806649c5-aef9-4da4-8c8a-e041bc9e71e2","savedPayload":{"position":{"x":12255.465648035639,"y":18885.770319348274},"targetPosition":{"x":12481.77784164968,"y":18695.849358122832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-3 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.atr3","project":"Superalgos","id":"210cdd54-6060-47ff-be8a-06d80daf1438","savedPayload":{"position":{"x":11931.040209725063,"y":18695.856307251648},"targetPosition":{"x":12161.200370127157,"y":18695.848099950676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e5945b52-ef11-4a12-9503-8c8accbefcc5","savedPayload":{"position":{"x":12161.200370127157,"y":18695.848099950676},"targetPosition":{"x":12481.77784164968,"y":18695.849358122832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-14 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.atr14","project":"Superalgos","id":"37501854-7854-49b5-8ab0-d36febe18a65","savedPayload":{"position":{"x":12082.543495556925,"y":18361.339959347893},"targetPosition":{"x":12255.217962444302,"y":18505.98909918443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"57b4f263-265b-4a4f-9470-6c1503961d61","savedPayload":{"position":{"x":12255.217962444302,"y":18505.98909918443},"targetPosition":{"x":12481.77784164968,"y":18695.849358122832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ATR-14 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.atr14","project":"Superalgos","id":"8395b74a-3ceb-49b7-a2e5-f7b00866bd7b","savedPayload":{"position":{"x":12389.280402280645,"y":18179.17557149128},"targetPosition":{"x":12429.990904794839,"y":18402.17903065696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"79026076-fe40-4641-a1c7-903c20ecff2d","savedPayload":{"position":{"x":12429.990904794839,"y":18402.17903065696},"targetPosition":{"x":12481.77784164968,"y":18695.849358122832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bfab9870-bf09-49c5-86cd-975ee33e64ca","savedPayload":{"position":{"x":12417.879093575477,"y":18804.161000187934},"targetPosition":{"x":12867.211473398937,"y":18025.91615906582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line 0","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"2f3896e2-233c-4413-b989-bb111636a6f1","savedPayload":{"position":{"x":12318.164305955797,"y":18795.144035582598},"targetPosition":{"x":12389.598074117963,"y":18579.21223375277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9e5ef462-76d3-417a-8e33-9481761ba313","savedPayload":{"position":{"x":12389.598074117963,"y":18579.21223375277},"targetPosition":{"x":12477.501102397171,"y":18251.10810496637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End 0","project":"Superalgos","id":"510f0f9c-b8c3-405f-93fa-150f2ba98b44","savedPayload":{"position":{"x":12184.827054201378,"y":18419.97672953765},"targetPosition":{"x":12477.501102397171,"y":18251.10810496637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"51c6cdeb-f974-49f5-a8d6-4a3e4c57539e"}}},{"type":"Polygon Vertex","name":"Begin 0","project":"Superalgos","id":"aac1fbbe-4728-4c97-92ea-7ab4ab1e976a","savedPayload":{"position":{"x":12146.167210436714,"y":18162.50416005346},"targetPosition":{"x":12477.501102397171,"y":18251.10810496637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"8e1b746f-f708-49a5-9717-eebf4bb6c91a"}}}],"id":"dae87eed-2840-45ec-b8fd-97868408e748","savedPayload":{"position":{"x":12477.297628673965,"y":18251.0647988392},"targetPosition":{"x":12867.211473398937,"y":18025.91615906582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"ATR-14 Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"7026f16e-1ad8-4eaa-bbab-ce47b2ad820d","savedPayload":{"position":{"x":12041.247563103094,"y":18401.707007293968},"targetPosition":{"x":12200.436382616383,"y":18242.608419639677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f8abfda8-11a5-4159-8b25-70b123bb3da8","savedPayload":{"position":{"x":12200.436382616383,"y":18242.608419639677},"targetPosition":{"x":12417.195625665423,"y":18025.935036541785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"ATR-14 End","project":"Superalgos","id":"aa7480fd-e24a-43db-b0b9-96fbbf6a8190","savedPayload":{"position":{"x":12110.781034888929,"y":18025.93948478445},"targetPosition":{"x":12417.195625665423,"y":18025.935036541785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-14 End","id":"79026076-fe40-4641-a1c7-903c20ecff2d"}}},{"type":"Polygon Vertex","name":"ATR-14 Begin","project":"Superalgos","id":"a0c299f5-5134-4d5f-9f32-1589e26f8e94","savedPayload":{"position":{"x":12200.426057959517,"y":17809.41383893721},"targetPosition":{"x":12417.195625665423,"y":18025.935036541785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-14 Begin","id":"57b4f263-265b-4a4f-9470-6c1503961d61"}}}],"id":"60444df5-1f4a-4553-92bb-5af88cc3b422","savedPayload":{"position":{"x":12416.899762325778,"y":18025.91127785977},"targetPosition":{"x":12867.211473398937,"y":18025.91615906582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"ATR-3 Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"0fdd9432-2ce4-4f80-987e-6683bee9b731","savedPayload":{"position":{"x":11960.73285047954,"y":17939.042866663418},"targetPosition":{"x":12178.446911197636,"y":17880.839195308574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"89eab967-e7d1-4bf5-b4d0-3919f59392bb","savedPayload":{"position":{"x":12178.446911197636,"y":17880.839195308574},"targetPosition":{"x":12477.487178114363,"y":17800.876157826766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"ATR-3 Begin","project":"Superalgos","id":"74dc9232-405c-4361-a9c1-52b0cb48a8ab","savedPayload":{"position":{"x":12210.717075804972,"y":17646.848305031006},"targetPosition":{"x":12477.487178114363,"y":17800.876157826766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-3 Begin","id":"806649c5-aef9-4da4-8c8a-e041bc9e71e2"}}},{"type":"Polygon Vertex","name":"ATR-3 End","project":"Superalgos","id":"f5142bc0-0a8a-4b51-bb55-37d55d2b07b2","savedPayload":{"position":{"x":12397.363448466596,"y":17501.78672378432},"targetPosition":{"x":12477.487178114363,"y":17800.876157826766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-3 End","id":"e5945b52-ef11-4a12-9503-8c8accbefcc5"}}}],"id":"61c9a80d-5f39-438c-9c90-9ebb93e3ebf1","savedPayload":{"position":{"x":12477.248748905531,"y":17800.792844251344},"targetPosition":{"x":12867.211473398937,"y":18025.91615906582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"ATR-2 Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"3cd2a5a6-65a3-4459-9b82-9df07a560744","savedPayload":{"position":{"x":12130.688071715333,"y":17498.970584803243},"targetPosition":{"x":12348.158479918708,"y":17557.203602315712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"7e31615a-3abe-4749-be9c-9d4e7d0e8290","savedPayload":{"position":{"x":12348.158479918708,"y":17557.203602315712},"targetPosition":{"x":12642.414732217814,"y":17636.065351771715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"ATR-2 Begin","project":"Superalgos","id":"05f68187-ffcb-4e54-9ff2-c46dc076fded","savedPayload":{"position":{"x":12490.10076134112,"y":17372.149559050195},"targetPosition":{"x":12642.414732217814,"y":17636.065351771715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-2 Begin","id":"84bd5028-9dd1-4128-b903-2e8e27afee2c"}}},{"type":"Polygon Vertex","name":"ATR-2 End","project":"Superalgos","id":"fde40884-dc75-4eb5-b93d-b8ec1d19d93a","savedPayload":{"position":{"x":12721.196782305557,"y":17341.729864742585},"targetPosition":{"x":12642.414732217814,"y":17636.065351771715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ATR-2 End","id":"ebcf383a-71f7-4caf-8c4b-1334e60dfb49"}}}],"id":"ae2cd4db-eebd-4bda-813a-9d9a788f8838","savedPayload":{"position":{"x":12642.181937923218,"y":17635.923781948553},"targetPosition":{"x":12867.211473398937,"y":18025.91615906582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"9a053fa4-ca14-432c-8927-15ef216b2faf","savedPayload":{"position":{"x":12375.010118286198,"y":17939.97138426258},"targetPosition":{"x":12996.010108087248,"y":17939.972723398158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"ATR - SMA","config":"{ \n\"codeName\": \"Panel-ATR-SMA\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"ATR-2","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.atr2","project":"Superalgos","id":"71d72170-f480-46e5-9fb7-3f79eef990d6","savedPayload":{"position":{"x":12084.763419973446,"y":17241.47541022092},"targetPosition":{"x":12385.202877495165,"y":17321.914158264808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"00581f1e-843d-436b-8625-71b0814676f7","savedPayload":{"position":{"x":12385.202877495165,"y":17321.914158264808},"targetPosition":{"x":12685.651242131433,"y":17402.279147132598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ATR-3","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.atr3","project":"Superalgos","id":"ac407a65-ed19-4863-b039-0e53dcf6744d","savedPayload":{"position":{"x":12374.711484631873,"y":16863.493406177542},"targetPosition":{"x":12530.187315854244,"y":17132.895784315722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bded503d-8475-4b34-886e-ec67a698a06d","savedPayload":{"position":{"x":12530.187315854244,"y":17132.895784315722},"targetPosition":{"x":12685.651242131433,"y":17402.279147132598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ATR-14","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.atr14","project":"Superalgos","id":"07af6d07-5ef8-4c38-a1c4-5f07355e9274","savedPayload":{"position":{"x":12846.378293283804,"y":16801.427150187727},"targetPosition":{"x":12766.055413164355,"y":17101.8667852005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0eda57d2-0c10-4511-b3ab-7c6f1c5b953a","savedPayload":{"position":{"x":12766.055413164355,"y":17101.8667852005},"targetPosition":{"x":12685.651242131433,"y":17402.279147132598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d841e272-ce7b-4f3d-9774-545f69e8fc79","savedPayload":{"position":{"x":12685.651242131433,"y":17402.279147132598},"targetPosition":{"x":12996.010108087248,"y":17939.972723398158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a6a3f5a6-8c33-482d-a922-5719afc35325","savedPayload":{"position":{"x":13386.07016175849,"y":18038.43419944887},"targetPosition":{"x":13765.467815432614,"y":18257.19365613139},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"17f8f37a-bf30-4c1d-82f2-f587830576a0","savedPayload":{"position":{"x":13865.344334318033,"y":18257.075224381435},"targetPosition":{"x":14165.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Rate of Change (ROC)","config":"{\n\"codeName\": \"Plotter-ROC\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"ROC 76","config":"{\n\t\"codeName\": \"Module-ROC-76\",\n\t\"banner\": \"Oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Grid","project":"Superalgos","points":[{"type":"Point","name":"Begin 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"5b9a08e3-0df5-4f24-9e46-cfd57c00dbda","savedPayload":{"position":{"x":12690.765442415486,"y":17710.107690601086},"targetPosition":{"x":12545.565312436727,"y":17486.296956570804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a39c9f60-84e3-4e05-8ef0-24539ac40325","savedPayload":{"position":{"x":12545.565312436727,"y":17486.296956570804},"targetPosition":{"x":12400.013569873416,"y":17262.259342080706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"7860512f-766c-4e66-be5f-7702f9c9f047","savedPayload":{"position":{"x":12063.365982666084,"y":17677.473832372292},"targetPosition":{"x":12231.685705438576,"y":17469.821611097872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0fc534f6-3e3f-408a-b25b-f5c973ec0f63","savedPayload":{"position":{"x":12231.685705438576,"y":17469.821611097872},"targetPosition":{"x":12400.013569873416,"y":17262.259342080706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Value Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.value","project":"Superalgos","id":"721530f2-7ad7-411e-b73a-69d45c002577","savedPayload":{"position":{"x":11901.323230047266,"y":17070.823858234267},"targetPosition":{"x":12150.719282854887,"y":17166.45505814962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3b4f240c-66f5-4a3f-9527-47ea197ccf47","savedPayload":{"position":{"x":12150.719282854887,"y":17166.45505814962},"targetPosition":{"x":12400.013569873416,"y":17262.259342080706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Value End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.value","project":"Superalgos","id":"9eee04a2-4bc6-4277-9716-4db129bc6a03","savedPayload":{"position":{"x":12427.302289129584,"y":16728.62306661268},"targetPosition":{"x":12413.704671068801,"y":16995.323547202126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f1de1d87-6d4a-4aea-bf10-74d64ddfb4ed","savedPayload":{"position":{"x":12413.704671068801,"y":16995.323547202126},"targetPosition":{"x":12400.013569873416,"y":17262.259342080706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e60e3722-01e4-421e-a06f-371bcb71aac4","savedPayload":{"position":{"x":12400.013569873416,"y":17262.259342080706},"targetPosition":{"x":13428.304643907115,"y":16986.981045728597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line 0","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"cc082fda-c47e-438f-8157-f2d870c218ac","savedPayload":{"position":{"x":13152.296446116972,"y":20044.437457634325},"targetPosition":{"x":13001.222871530521,"y":19880.73634480688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"cc2ec800-b3ff-4031-8bdd-688d475b2d5e","savedPayload":{"position":{"x":13001.222871530521,"y":19880.73634480688},"targetPosition":{"x":12786.865282503302,"y":19666.33434764496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End 0","project":"Superalgos","id":"511d620d-335d-4b07-b181-ae732630d137","savedPayload":{"position":{"x":12786.865345968232,"y":19969.326061328735},"targetPosition":{"x":12786.865282503302,"y":19666.33434764496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"0fc534f6-3e3f-408a-b25b-f5c973ec0f63"}}},{"type":"Polygon Vertex","name":"Begin 0","project":"Superalgos","id":"ea7d0d25-e182-41a9-9451-99402984c131","savedPayload":{"position":{"x":12570.290487769926,"y":19883.09890698533},"targetPosition":{"x":12786.865282503302,"y":19666.33434764496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"a39c9f60-84e3-4e05-8ef0-24539ac40325"}}}],"id":"526bbff1-0ab2-4b5f-ad73-6886c6ef295c","savedPayload":{"position":{"x":12965.817812090267,"y":16719.952228248017},"targetPosition":{"x":13428.304643907115,"y":16986.981045728597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Value","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"d0fdbc54-377b-4862-b50f-b4a4c97eac09","savedPayload":{"position":{"x":12919.606556179995,"y":16089.01273977435},"targetPosition":{"x":13126.961696695911,"y":16256.825981040984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"d829f8bb-3737-4cef-ab7a-e92700ca7a6a","savedPayload":{"position":{"x":13126.961696695911,"y":16256.825981040984},"targetPosition":{"x":13372.145445194725,"y":16455.49186586648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Value Begin","project":"Superalgos","id":"29d5faa8-13a8-45a0-ba94-f43c2c200222","savedPayload":{"position":{"x":13339.148055106361,"y":16142.215368289375},"targetPosition":{"x":13372.145445194725,"y":16455.49186586648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Value Begin","id":"3b4f240c-66f5-4a3f-9527-47ea197ccf47"}}},{"type":"Polygon Vertex","name":"Value End","project":"Superalgos","id":"adf14091-c476-40aa-a560-fe8d90b8b8f3","savedPayload":{"position":{"x":13584.02765281019,"y":16193.580032635484},"targetPosition":{"x":13372.145445194725,"y":16455.49186586648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Value End","id":"f1de1d87-6d4a-4aea-bf10-74d64ddfb4ed"}}}],"id":"2e3e77ee-7057-47ca-b0fb-01f483c00949","savedPayload":{"position":{"x":13290.175539622156,"y":16471.01893911659},"targetPosition":{"x":13428.304643907115,"y":16986.981045728597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"ae6b4dd4-c45f-4398-91cf-50cb16a36b42","savedPayload":{"position":{"x":13427.984657342924,"y":16987.03228914368},"targetPosition":{"x":13890.09696208531,"y":17253.679303469136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"ROC 76","config":"{ \n\"codeName\": \"Panel-ROC-76\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Value","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.value","project":"Superalgos","id":"f9921989-1157-49ad-894e-9f4e9d197d46","savedPayload":{"position":{"x":13890.093751735112,"y":16186.535967659582},"targetPosition":{"x":13890.098653286936,"y":16453.44172222894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fcffae02-a826-4058-930a-f1eba1c3c0dc","savedPayload":{"position":{"x":13890.098653286936,"y":16453.44172222894},"targetPosition":{"x":13890.09784275767,"y":16720.326048114424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b44763a3-2604-4204-9275-1c822bf7b85f","savedPayload":{"position":{"x":13890.09784275767,"y":16720.326048114424},"targetPosition":{"x":13890.09696208531,"y":17253.679303469136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a21bb3ba-b24d-4163-b7d0-ea60220fc368","savedPayload":{"position":{"x":13542.2871273399,"y":17797.98376868404},"targetPosition":{"x":13965.354713192395,"y":17911.008978057733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Plotter Module","name":"ROC 32","config":"{\n\t\"codeName\": \"Module-ROC-32\",\n\t\"banner\": \"Oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Grid","project":"Superalgos","points":[{"type":"Point","name":"Begin 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"360c9616-373e-4b79-8623-507a4e126b2d","savedPayload":{"position":{"x":12888.75500246257,"y":16977.332518454205},"targetPosition":{"x":12875.00220270336,"y":16710.597850502454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3830e3a4-e15c-4f83-9530-9d24a940d5a6","savedPayload":{"position":{"x":12875.00220270336,"y":16710.597850502454},"targetPosition":{"x":12861.19991910876,"y":16443.86718498305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"251012cf-5083-4a10-932c-d6ffe369acc2","savedPayload":{"position":{"x":12362.213165677356,"y":16635.130671177292},"targetPosition":{"x":12611.69977463907,"y":16539.49598095313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"050405b7-8bd9-413b-b1cf-3ea9259b6e20","savedPayload":{"position":{"x":12611.69977463907,"y":16539.49598095313},"targetPosition":{"x":12861.19991910876,"y":16443.86718498305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Value Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.value","project":"Superalgos","id":"f5e02d75-2c37-431b-91d2-e4ee89f6b4ca","savedPayload":{"position":{"x":12524.895981256293,"y":16028.566829236714},"targetPosition":{"x":12693.038605663784,"y":16236.212639047524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f277e303-3eb8-49f8-a70f-36e5fa6acb05","savedPayload":{"position":{"x":12693.038605663784,"y":16236.212639047524},"targetPosition":{"x":12861.19991910876,"y":16443.86718498305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Value End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.value","project":"Superalgos","id":"a551a375-2f95-469d-9748-f5ffa94cb8a2","savedPayload":{"position":{"x":13151.964592513606,"y":15995.680630450224},"targetPosition":{"x":13006.590582770386,"y":16219.793374094777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"010b0145-7fa3-41bd-8d4c-ad221abe3f75","savedPayload":{"position":{"x":13006.590582770386,"y":16219.793374094777},"targetPosition":{"x":12861.19991910876,"y":16443.86718498305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c45748d1-cb04-4a9f-8564-d6489e1ca532","savedPayload":{"position":{"x":12861.19991910876,"y":16443.86718498305},"targetPosition":{"x":13890.471028866428,"y":16719.600875265263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line 0","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"4f8b88e5-1ef4-4094-be2a-c62f3aace8a0","savedPayload":{"position":{"x":12012.553367826222,"y":19145.605405536116},"targetPosition":{"x":12083.987135988387,"y":18929.673603706287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"5ecae3ca-c6ff-4de7-91c8-186c9d242586","savedPayload":{"position":{"x":12083.987135988387,"y":18929.673603706287},"targetPosition":{"x":12171.890164267596,"y":18601.56947491989},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End 0","project":"Superalgos","id":"4d8a5169-ff68-4d76-bdda-70533b12857d","savedPayload":{"position":{"x":11879.216116071802,"y":18770.43809949117},"targetPosition":{"x":12171.890164267596,"y":18601.56947491989},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"050405b7-8bd9-413b-b1cf-3ea9259b6e20"}}},{"type":"Polygon Vertex","name":"Begin 0","project":"Superalgos","id":"7562f064-db9f-48d1-b085-6b0378a9e230","savedPayload":{"position":{"x":11840.556272307138,"y":18512.96553000698},"targetPosition":{"x":12171.890164267596,"y":18601.56947491989},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"3830e3a4-e15c-4f83-9530-9d24a940d5a6"}}}],"id":"aadad370-9c78-49cd-8360-c290b42eb47c","savedPayload":{"position":{"x":13623.442857733171,"y":16256.924335060925},"targetPosition":{"x":13890.471028866428,"y":16719.600875265263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Value Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"54dc15cf-f4b0-4575-92b5-32047ac32fef","savedPayload":{"position":{"x":14952.941491431618,"y":15800.651788180305},"targetPosition":{"x":14909.703786705959,"y":16065.944493580106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"7b8cb64d-2d91-4aea-9e7d-9d0541095294","savedPayload":{"position":{"x":14909.703786705959,"y":16065.944493580106},"targetPosition":{"x":14856.832360917968,"y":16405.860043675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Value Begin","project":"Superalgos","id":"e4131510-0ce7-4fcb-82f9-03582a5c861c","savedPayload":{"position":{"x":15136.19746420817,"y":16202.533207181717},"targetPosition":{"x":14856.832360917968,"y":16405.860043675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Value Begin","id":"f277e303-3eb8-49f8-a70f-36e5fa6acb05"}}},{"type":"Polygon Vertex","name":"Value End","project":"Superalgos","id":"8a780be1-a258-4af4-8450-e57384ff7bf0","savedPayload":{"position":{"x":15197.708151128398,"y":16458.451548006396},"targetPosition":{"x":14856.832360917968,"y":16405.860043675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Value End","id":"010b0145-7fa3-41bd-8d4c-ad221abe3f75"}}}],"id":"2b87e0ff-d5a1-4b9b-b713-743f46573249","savedPayload":{"position":{"x":14028.65039602201,"y":16203.509911083413},"targetPosition":{"x":13890.471028866428,"y":16719.600875265263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"66c3abab-2df5-4d90-a119-1a18c24536a5","savedPayload":{"position":{"x":13890.471028866428,"y":16719.600875265263},"targetPosition":{"x":14157.344829091726,"y":17181.935398050387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"ROC 32","config":"{ \n\"codeName\": \"Panel-ROC-32\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Value","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.value","project":"Superalgos","id":"a7d719e2-be07-47cc-a91c-ebdab4dbc814","savedPayload":{"position":{"x":14691.2795236485,"y":16256.780360396919},"targetPosition":{"x":14557.722535394514,"y":16488.189520703774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0aa50f71-8801-4d7c-b04e-136adbb3592a","savedPayload":{"position":{"x":14557.722535394514,"y":16488.189520703774},"targetPosition":{"x":14424.183527266156,"y":16719.59818113489},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4d4fdc48-dca1-47e8-8f2e-e595adf26c0e","savedPayload":{"position":{"x":14424.183527266156,"y":16719.59818113489},"targetPosition":{"x":14157.344829091726,"y":17181.935398050387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7812b3a3-8375-4f0d-9671-acc05b256d74","savedPayload":{"position":{"x":13746.072945844426,"y":17532.09950495856},"targetPosition":{"x":13965.354713192395,"y":17911.008978057733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Plotter Module","name":"ROC 9","config":"{\n\t\"codeName\": \"Module-ROC-9\",\n\t\"banner\": \"Oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Grid","project":"Superalgos","points":[{"type":"Point","name":"Begin 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"d30a2a69-8977-4528-aac6-abebe3aad8b1","savedPayload":{"position":{"x":13200.084900939106,"y":17094.135597011984},"targetPosition":{"x":13241.88619433323,"y":16898.861374812237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"44d4ab03-4306-43f7-8c94-08976c57625a","savedPayload":{"position":{"x":13241.88619433323,"y":16898.861374812237},"targetPosition":{"x":13283.5640858043,"y":16703.65560307367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"c9bcf00d-9a15-4444-94f3-bf493cacdc4e","savedPayload":{"position":{"x":12885.429606449652,"y":16744.660763496093},"targetPosition":{"x":13084.528387997398,"y":16724.14777315935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5a0efe28-4669-4f77-af30-322b9c8fad72","savedPayload":{"position":{"x":13084.528387997398,"y":16724.14777315935},"targetPosition":{"x":13283.5640858043,"y":16703.65560307367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Value Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.value","project":"Superalgos","id":"388b4734-3b11-4b4c-9fca-0ea51581be66","savedPayload":{"position":{"x":13120.735849258948,"y":16337.734640932893},"targetPosition":{"x":13202.147889010612,"y":16520.737177508978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"473c0f5f-22eb-4212-bd6f-3e7b4b81e563","savedPayload":{"position":{"x":13202.147889010612,"y":16520.737177508978},"targetPosition":{"x":13283.5640858043,"y":16703.65560307367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Value End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.value","project":"Superalgos","id":"bc667db2-4e37-427b-a581-e3f29086f305","savedPayload":{"position":{"x":13580.128561596055,"y":16435.425774725118},"targetPosition":{"x":13431.82519531102,"y":16569.640006115027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"79ce261d-2055-4a8a-9604-41b37653759a","savedPayload":{"position":{"x":13431.82519531102,"y":16569.640006115027},"targetPosition":{"x":13283.5640858043,"y":16703.65560307367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cc49ad50-0be2-43c9-8f4a-ccccea8dc087","savedPayload":{"position":{"x":13283.5640858043,"y":16703.65560307367},"targetPosition":{"x":13974.24440327154,"y":17102.255244000266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line 0","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"28729ed0-43c3-4adb-8dd6-a708dda9d798","savedPayload":{"position":{"x":12626.543818349695,"y":21735.833378546624},"targetPosition":{"x":12475.470243763244,"y":21572.132265719178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"7c568a67-a0af-49ed-bae4-71e9fb835dcc","savedPayload":{"position":{"x":12475.470243763244,"y":21572.132265719178},"targetPosition":{"x":12261.112654736025,"y":21357.730268557258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End 0","project":"Superalgos","id":"f13ef470-67b1-4ea9-b5f9-d1323b9e5921","savedPayload":{"position":{"x":12261.112718200955,"y":21660.721982241033},"targetPosition":{"x":12261.112654736025,"y":21357.730268557258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"5a0efe28-4669-4f77-af30-322b9c8fad72"}}},{"type":"Polygon Vertex","name":"Begin 0","project":"Superalgos","id":"382b90b0-c454-438c-8342-f625c475b183","savedPayload":{"position":{"x":12044.537860002649,"y":21574.49482789763},"targetPosition":{"x":12261.112654736025,"y":21357.730268557258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"44d4ab03-4306-43f7-8c94-08976c57625a"}}}],"id":"79c02166-9fb5-41f8-9a93-c86f198d046d","savedPayload":{"position":{"x":13870.446308592876,"y":16715.850288024092},"targetPosition":{"x":13974.24440327154,"y":17102.255244000266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Value","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"6475bd9e-d457-4fa6-a0e2-6bab43c1b900","savedPayload":{"position":{"x":12393.853928412718,"y":17780.408660686648},"targetPosition":{"x":12601.209068928634,"y":17948.221901953282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"3dbc0e73-14ef-4ffc-8284-f16c461778f3","savedPayload":{"position":{"x":12601.209068928634,"y":17948.221901953282},"targetPosition":{"x":12846.392817427448,"y":18146.887786778778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Value Begin","project":"Superalgos","id":"a2794b60-36b4-4896-899b-20f60c519042","savedPayload":{"position":{"x":12813.395427339085,"y":17833.611289201675},"targetPosition":{"x":12846.392817427448,"y":18146.887786778778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Value Begin","id":"473c0f5f-22eb-4212-bd6f-3e7b4b81e563"}}},{"type":"Polygon Vertex","name":"Value End","project":"Superalgos","id":"759aba24-d4ed-4266-a9c4-9ea04a19f8f7","savedPayload":{"position":{"x":13058.275025042913,"y":17884.975953547782},"targetPosition":{"x":12846.392817427448,"y":18146.887786778778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Value End","id":"79ce261d-2055-4a8a-9604-41b37653759a"}}}],"id":"5ee0dccd-325b-410f-b069-f0f3e3881447","savedPayload":{"position":{"x":14172.809307626118,"y":16754.936771276127},"targetPosition":{"x":13974.24440327154,"y":17102.255244000266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"05a0cab0-cf12-4ee7-92a8-76fe96e42805","savedPayload":{"position":{"x":13974.24440327154,"y":17102.255244000266},"targetPosition":{"x":14078.2811635562,"y":17487.928205375356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"ROC 9","config":"{ \n\"codeName\": \"Panel-ROC-9\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Value","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.value","project":"Superalgos","id":"488e613d-484a-4750-8b22-a20f0434d1ea","savedPayload":{"position":{"x":14642.77803935672,"y":16924.48788595342},"targetPosition":{"x":14501.448465435366,"y":17065.418852389474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"521fa5b1-2419-4550-b8fb-ef2dcc284693","savedPayload":{"position":{"x":14501.448465435366,"y":17065.418852389474},"targetPosition":{"x":14360.1138110096,"y":17206.144756410024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1be3230-a9a3-4d36-95d0-f6ba0ddcd5e5","savedPayload":{"position":{"x":14360.1138110096,"y":17206.144756410024},"targetPosition":{"x":14078.2811635562,"y":17487.928205375356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5ecd7465-9f89-4e20-bea9-2216863e2990","savedPayload":{"position":{"x":14078.2811635562,"y":17487.928205375356},"targetPosition":{"x":13965.354713192395,"y":17911.008978057733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"85e9a7d0-c411-4fac-9297-95d71a9ae363","savedPayload":{"position":{"x":14015.344334318033,"y":17997.267603246102},"targetPosition":{"x":14165.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Stochastic","config":"{\n\"codeName\": \"Plotter-Stoch\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Stoch 14-3-3","config":"{\n\t\"codeName\": \"Module-Stoch-14-3-3\",\n \"icon\": \"Oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Slow Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.slowLine","project":"Superalgos","id":"55d7707a-30e2-4879-8be5-ca7ecd2f3873","savedPayload":{"position":{"x":14500.412541320678,"y":16717.082928006344},"targetPosition":{"x":14358.99926521186,"y":16878.693041065108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bc0a51ed-fc21-4517-80a9-742f8a28ede7","savedPayload":{"position":{"x":14358.99926521186,"y":16878.693041065108},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Slow Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.slowLine","project":"Superalgos","id":"bacc0912-cfd8-4cf1-91b7-9754df472dae","savedPayload":{"position":{"x":14634.337058498098,"y":16881.012777889817},"targetPosition":{"x":14446.655149506696,"y":16988.538441338664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d97911db-336c-414a-b163-69cb135de17b","savedPayload":{"position":{"x":14446.655149506696,"y":16988.538441338664},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Fast Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.fastLine","project":"Superalgos","id":"17a984a0-223a-4e41-87b5-1cbe8ff2e51d","savedPayload":{"position":{"x":14709.305326523641,"y":17081.709174441472},"targetPosition":{"x":14497.383047273546,"y":17121.107763559703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"97e0ce46-a22d-49ce-bf5c-bb50ec060d86","savedPayload":{"position":{"x":14497.383047273546,"y":17121.107763559703},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Fast Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.fastLine","project":"Superalgos","id":"013e38de-657d-461b-8b9b-beee034d1a28","savedPayload":{"position":{"x":14689.655835612004,"y":17333.127186423677},"targetPosition":{"x":14498.586146919963,"y":17262.07553537839},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5b1e120b-33fa-434a-9913-135f3f94edad","savedPayload":{"position":{"x":14498.586146919963,"y":17262.07553537839},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"a6b82c72-273b-4bb0-a20f-672e868a8bc4","savedPayload":{"position":{"x":14648.081851491876,"y":17495.203323907794},"targetPosition":{"x":14456.779967131246,"y":17397.55563974745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e894f129-e11d-4ec6-8d76-50d39dab5dd5","savedPayload":{"position":{"x":14456.779967131246,"y":17397.55563974745},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"ed878528-be4d-4b54-b05c-14be099d2e0a","savedPayload":{"position":{"x":14526.460539241063,"y":17657.65979151649},"targetPosition":{"x":14371.636414802539,"y":17510.425288371425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"93278c60-4529-454e-989f-771ce3beb3c1","savedPayload":{"position":{"x":14371.636414802539,"y":17510.425288371425},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 20","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 20","project":"Superalgos","id":"4c062900-b756-40f7-8538-dabb9ae12c16","savedPayload":{"position":{"x":14345.238249104506,"y":17784.488644608973},"targetPosition":{"x":14254.509388014114,"y":17589.535506694287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"59d32253-47b9-4227-bc5b-e2f1d5416844","savedPayload":{"position":{"x":14254.509388014114,"y":17589.535506694287},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 20","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 20","project":"Superalgos","id":"3a560a43-44d0-4d9e-b897-465c472fa9ea","savedPayload":{"position":{"x":14140.458084894548,"y":17844.298486516775},"targetPosition":{"x":14118.745310022794,"y":17629.086424118585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ce6a0861-712e-4cf4-81e9-92ab6c8a5f4d","savedPayload":{"position":{"x":14118.745310022794,"y":17629.086424118585},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 30","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 30","project":"Superalgos","id":"a492b3aa-e876-4762-a297-e3fd36964bb8","savedPayload":{"position":{"x":13931.199164271944,"y":17831.32771389947},"targetPosition":{"x":13977.75650321729,"y":17618.255578693977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3ea0b783-3d43-47d1-90aa-99366cd09a7d","savedPayload":{"position":{"x":13977.75650321729,"y":17618.255578693977},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 30","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 30","project":"Superalgos","id":"45566c80-77fd-4246-8fc3-50692ff479a2","savedPayload":{"position":{"x":13732.599782581467,"y":17747.160978196865},"targetPosition":{"x":13845.918144521158,"y":17565.081435490447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4e7322f7-3bfa-41cc-b9a0-c5dcbe16e83e","savedPayload":{"position":{"x":13845.918144521158,"y":17565.081435490447},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 70","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 70","project":"Superalgos","id":"c982c6b7-9b74-4b02-a2b8-8c6fb6df231e","savedPayload":{"position":{"x":13571.7404311149,"y":17606.053418764204},"targetPosition":{"x":13739.02459647497,"y":17471.751884800975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4f226496-b6a0-436d-97c5-d6e61dd00c23","savedPayload":{"position":{"x":13739.02459647497,"y":17471.751884800975},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 70","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 70","project":"Superalgos","id":"a66f14af-1cd6-4b48-979c-13bd4171828c","savedPayload":{"position":{"x":13466.666928482526,"y":17422.73038411507},"targetPosition":{"x":13670.620725938232,"y":17347.85895576789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"22287519-c930-4dfb-bb4a-298da4e32cdf","savedPayload":{"position":{"x":13670.620725938232,"y":17347.85895576789},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 80","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 80","project":"Superalgos","id":"742160f2-7cd8-4565-9536-5c0dca39a3e9","savedPayload":{"position":{"x":13428.248006144717,"y":17211.811717445744},"targetPosition":{"x":13642.898403227431,"y":17207.803685401588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fb48eeab-d538-4fc5-81fe-dd916f749477","savedPayload":{"position":{"x":13642.898403227431,"y":17207.803685401588},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 80","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 80","project":"Superalgos","id":"9057daf5-069d-4489-aaf5-dd803f642a86","savedPayload":{"position":{"x":13458.068283494933,"y":17005.727621093876},"targetPosition":{"x":13663.309460364133,"y":17070.422146740217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9a3c052a-a6b6-4392-b2fd-54151febb8f5","savedPayload":{"position":{"x":13663.309460364133,"y":17070.422146740217},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 100","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 100","project":"Superalgos","id":"2e17f6ae-23e6-4411-a0a5-69be7d7d3232","savedPayload":{"position":{"x":13555.397395788568,"y":16813.94900110847},"targetPosition":{"x":13727.299748005371,"y":16943.95746546435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f3e69d47-f137-412e-a515-7dc262af7f8b","savedPayload":{"position":{"x":13727.299748005371,"y":16943.95746546435},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 100","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 100","project":"Superalgos","id":"a7a616cf-f882-4088-b1d0-eb4fdb4ffd11","savedPayload":{"position":{"x":13708.897288308788,"y":16664.920860451773},"targetPosition":{"x":13830.990398255264,"y":16844.128732825302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"29103f63-7cd6-4005-bec7-a385cf373eaf","savedPayload":{"position":{"x":13830.990398255264,"y":16844.128732825302},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 50","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 50","project":"Superalgos","id":"8b212cf0-fab5-45dd-b645-0f4e79656653","savedPayload":{"position":{"x":13902.343939295632,"y":16576.903119606537},"targetPosition":{"x":13959.494498865544,"y":16785.29584208598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"99b1d6a8-0904-43ff-b209-c7c6868181b5","savedPayload":{"position":{"x":13959.494498865544,"y":16785.29584208598},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 50","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 50","project":"Superalgos","id":"864cc94d-3947-45bd-8a85-a19d06609b9a","savedPayload":{"position":{"x":14113.069605098972,"y":16554.064492957255},"targetPosition":{"x":14100.739545008255,"y":16770.08649033821},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"84db0a13-44f1-4953-ab27-d7425ab1ee6b","savedPayload":{"position":{"x":14100.739545008255,"y":16770.08649033821},"targetPosition":{"x":14073.671803484238,"y":17200.463381239268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8ac3440e-1b64-4a12-8c31-38783846da01","savedPayload":{"position":{"x":14073.671803484238,"y":17200.463381239268},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Slow Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"d89f9f7e-12c9-4883-a753-41cf0e061dde","savedPayload":{"position":{"x":14881.88263912611,"y":15458.623840849868},"targetPosition":{"x":14904.92183213402,"y":15752.688927759145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"7ef54320-7e6d-4e77-9345-9f4e5742a18e","savedPayload":{"position":{"x":14904.92183213402,"y":15752.688927759145},"targetPosition":{"x":14930.534242384983,"y":16076.522458276297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Slow Line End","project":"Superalgos","id":"f093f915-dc4b-4ba3-bc51-57e593a3025a","savedPayload":{"position":{"x":15030.738467583615,"y":15767.953884853594},"targetPosition":{"x":14930.534242384983,"y":16076.522458276297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Slow Line End","id":"d97911db-336c-414a-b163-69cb135de17b"}}},{"type":"Polygon Vertex","name":"Slow Line Begin","project":"Superalgos","id":"a2116df6-c3ec-4017-a51d-ae12cc47e021","savedPayload":{"position":{"x":15142.363331122157,"y":15828.704705059128},"targetPosition":{"x":14930.534242384983,"y":16076.522458276297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Slow Line Begin","id":"bc0a51ed-fc21-4517-80a9-742f8a28ede7"}}}],"id":"c28b1cfd-4cf5-4382-8bce-45930b5e8a15","savedPayload":{"position":{"x":14201.993958535346,"y":17003.19451255007},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Fast Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"a5147142-56f2-4fd8-a06e-449cfb1a997d","savedPayload":{"position":{"x":13625.381695674056,"y":16191.14875269467},"targetPosition":{"x":13915.188737628669,"y":16249.85213294344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"b7bec76c-a5d6-4b78-a0f5-8315ca1c0dba","savedPayload":{"position":{"x":13915.188737628669,"y":16249.85213294344},"targetPosition":{"x":14240.140716616275,"y":16314.556716142033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Fast Line End","project":"Superalgos","id":"88ffc758-994a-4385-a9d6-c28361403f5a","savedPayload":{"position":{"x":13964.875042604868,"y":16130.495798717502},"targetPosition":{"x":14240.140716616275,"y":16314.556716142033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Fast Line End","id":"5b1e120b-33fa-434a-9913-135f3f94edad"}}},{"type":"Polygon Vertex","name":"Fast Line Begin","project":"Superalgos","id":"3a43f15c-ff64-4415-bee8-f458601a3e96","savedPayload":{"position":{"x":14056.78264738161,"y":16038.840279158478},"targetPosition":{"x":14240.140716616275,"y":16314.556716142033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Fast Line Begin","id":"97e0ce46-a22d-49ce-bf5c-bb50ec060d86"}}}],"id":"53d89dd3-df4f-4001-a9cc-a9fa5c7808d4","savedPayload":{"position":{"x":14236.360873547066,"y":16914.75201765375},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 0","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"258f1f9e-4410-4a64-9cd6-e445d4444ba7","savedPayload":{"position":{"x":13702.745808248466,"y":15875.038802026615},"targetPosition":{"x":13969.359500255105,"y":16002.185058927986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"805ec3ae-e0ec-42ba-ba1c-617d5fe24e09","savedPayload":{"position":{"x":13969.359500255105,"y":16002.185058927986},"targetPosition":{"x":14289.638486496271,"y":16154.740841079923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 0","project":"Superalgos","id":"379a9e22-27fa-4f50-900a-0730cbe0b3d3","savedPayload":{"position":{"x":14052.331481490426,"y":15891.112813263133},"targetPosition":{"x":14289.638486496271,"y":16154.740841079923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"e894f129-e11d-4ec6-8d76-50d39dab5dd5"}}},{"type":"Polygon Vertex","name":"End 0","project":"Superalgos","id":"0ff4fba2-0167-41df-99e5-542a673adf30","savedPayload":{"position":{"x":14171.396090723109,"y":15820.39101464825},"targetPosition":{"x":14289.638486496271,"y":16154.740841079923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"93278c60-4529-454e-989f-771ce3beb3c1"}}}],"id":"e8f5af9d-ba4b-4482-aca7-295b92f60f17","savedPayload":{"position":{"x":14291.290812535648,"y":16847.296392877666},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"1172daa1-fe47-4069-818e-50a800f539ef","savedPayload":{"position":{"x":13893.06119689997,"y":15800.062787087045},"targetPosition":{"x":14139.030902348699,"y":15964.416186511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1efe1989-3881-41f4-af21-bf32d3fdc64a","savedPayload":{"position":{"x":14139.030902348699,"y":15964.416186511},"targetPosition":{"x":14414.754874111859,"y":16148.379372960488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 20","project":"Superalgos","id":"0617cdf2-2290-4f79-b132-ce46e33f3eb8","savedPayload":{"position":{"x":14230.462384508712,"y":15872.449127029126},"targetPosition":{"x":14414.754874111859,"y":16148.379372960488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 20","id":"59d32253-47b9-4227-bc5b-e2f1d5416844"}}},{"type":"Polygon Vertex","name":"End 20","project":"Superalgos","id":"cbc04d73-2faf-4808-b1ef-43aa2d1cf509","savedPayload":{"position":{"x":14350.333436877696,"y":15823.030678194007},"targetPosition":{"x":14414.754874111859,"y":16148.379372960488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 20","id":"ce6a0861-712e-4cf4-81e9-92ab6c8a5f4d"}}}],"id":"3d7a22fa-7a63-4cea-8ce7-d3358bd79ac8","savedPayload":{"position":{"x":14354.397854191131,"y":16790.91251362693},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 30","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"c10e1ba8-3255-4eab-8d43-83315dca23e1","savedPayload":{"position":{"x":14079.954098657792,"y":15648.035814856934},"targetPosition":{"x":14289.333375393791,"y":15857.42583550441},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c4dbb4e0-6e92-4304-bba1-76013eb739d4","savedPayload":{"position":{"x":14289.333375393791,"y":15857.42583550441},"targetPosition":{"x":14522.37381540821,"y":16090.207760408486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 30","project":"Superalgos","id":"1bb29f63-48b2-405c-8b76-5b42be6c1e3f","savedPayload":{"position":{"x":14394.329864329815,"y":15780.64025013279},"targetPosition":{"x":14522.37381540821,"y":16090.207760408486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"3ea0b783-3d43-47d1-90aa-99366cd09a7d"}}},{"type":"Polygon Vertex","name":"End 30","project":"Superalgos","id":"86cc6fd9-ca44-42ff-817c-c33d9a4a4558","savedPayload":{"position":{"x":14522.408259668995,"y":15758.672253212442},"targetPosition":{"x":14522.37381540821,"y":16090.207760408486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"4e7322f7-3bfa-41cc-b9a0-c5dcbe16e83e"}}}],"id":"49ef61a8-1381-45f0-b7d4-0a95ed9d7e60","savedPayload":{"position":{"x":14427.88390784217,"y":16755.728339537032},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 50","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"f18a4f3f-1b4a-4816-9c76-9b6171a6c886","savedPayload":{"position":{"x":14324.687713946754,"y":15529.844927165017},"targetPosition":{"x":14466.527813882756,"y":15791.239264977536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bdcda8bd-a2a3-4dae-8774-7fe7a1bd8df9","savedPayload":{"position":{"x":14466.527813882756,"y":15791.239264977536},"targetPosition":{"x":14621.074502981792,"y":16076.006864731542},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 50","project":"Superalgos","id":"155ecca7-3c3a-40b0-98e0-c4cc97021ba2","savedPayload":{"position":{"x":14586.46038748571,"y":15750.848606168975},"targetPosition":{"x":14621.074502981792,"y":16076.006864731542},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 50","id":"99b1d6a8-0904-43ff-b209-c7c6868181b5"}}},{"type":"Polygon Vertex","name":"End 50","project":"Superalgos","id":"3f22cf14-5acc-4f4d-b19a-108f02fa2e53","savedPayload":{"position":{"x":14712.853631866885,"y":15761.787851885105},"targetPosition":{"x":14621.074502981792,"y":16076.006864731542},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 50","id":"84db0a13-44f1-4953-ab27-d7425ab1ee6b"}}}],"id":"eb850831-fe4c-4fda-9294-df765f377e3e","savedPayload":{"position":{"x":14505.49137372122,"y":16724.97060299985},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 70","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"871bf7be-3e85-43f3-9537-fae86fe3f821","savedPayload":{"position":{"x":14512.392733655088,"y":15468.99084206536},"targetPosition":{"x":14625.38730649422,"y":15741.946523562865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"692686f4-d4a0-4fd3-b9ac-32ced49b8633","savedPayload":{"position":{"x":14625.38730649422,"y":15741.946523562865},"targetPosition":{"x":14751.192149081158,"y":16045.350359981385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 70","project":"Superalgos","id":"4742a27b-2eb2-4a18-835e-6fbefb47bdcd","savedPayload":{"position":{"x":14751.194081815393,"y":15715.230718398909},"targetPosition":{"x":14751.192149081158,"y":16045.350359981385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"4f226496-b6a0-436d-97c5-d6e61dd00c23"}}},{"type":"Polygon Vertex","name":"End 70","project":"Superalgos","id":"57aca36d-e53c-428f-a961-00f95c636a8c","savedPayload":{"position":{"x":14877.622086392272,"y":15740.422636870771},"targetPosition":{"x":14751.192149081158,"y":16045.350359981385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"22287519-c930-4dfb-bb4a-298da4e32cdf"}}}],"id":"cd93957c-2562-4f27-b3c3-4278231b1241","savedPayload":{"position":{"x":14584.223131281895,"y":16731.51978875375},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 80","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"0a960c41-faa4-4456-8d7c-91215785612f","savedPayload":{"position":{"x":14648.40278969756,"y":15517.704191748435},"targetPosition":{"x":14782.200374032745,"y":15780.654156293193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"d4446b75-1844-4114-9faf-ae3b5641e43d","savedPayload":{"position":{"x":14782.200374032745,"y":15780.654156293193},"targetPosition":{"x":14932.461747102487,"y":16076.326425861622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 80","project":"Superalgos","id":"7b104c6b-0b09-4efe-9af7-21e18088158a","savedPayload":{"position":{"x":15035.349360977496,"y":15759.549979691443},"targetPosition":{"x":14932.461747102487,"y":16076.326425861622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 80","id":"fb48eeab-d538-4fc5-81fe-dd916f749477"}}},{"type":"Polygon Vertex","name":"End 80","project":"Superalgos","id":"4bf87284-559e-4154-93f5-988ea7755e80","savedPayload":{"position":{"x":15227.83107009239,"y":15925.624656640039},"targetPosition":{"x":14932.461747102487,"y":16076.326425861622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 80","id":"9a3c052a-a6b6-4392-b2fd-54151febb8f5"}}}],"id":"a25d52fa-a178-4454-8ebc-500572b38d04","savedPayload":{"position":{"x":14674.60987260898,"y":16714.311625083956},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 100","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"a169ba02-78c5-49d9-b212-236fb5e48bad","savedPayload":{"position":{"x":15674.784023349268,"y":16011.89398302409},"targetPosition":{"x":15510.231843257661,"y":16257.937513107705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"b71ce594-e5f7-48f0-94a3-8f44ac26c01c","savedPayload":{"position":{"x":15510.231843257661,"y":16257.937513107705},"targetPosition":{"x":15328.83066410559,"y":16528.851004914046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 100","project":"Superalgos","id":"6b947ced-abe6-41e4-8e11-a8777d52a977","savedPayload":{"position":{"x":15650.712254896971,"y":16465.04401764869},"targetPosition":{"x":15328.83066410559,"y":16528.851004914046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 100","id":"f3e69d47-f137-412e-a515-7dc262af7f8b"}}},{"type":"Polygon Vertex","name":"End 100","project":"Superalgos","id":"9ff21949-3190-45a4-8b36-e6d8f291ea7f","savedPayload":{"position":{"x":15601.712003168006,"y":16711.091812352934},"targetPosition":{"x":15328.83066410559,"y":16528.851004914046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 100","id":"29103f63-7cd6-4005-bec7-a385cf373eaf"}}}],"id":"a4dacfad-5901-4ba9-a728-132f0d452680","savedPayload":{"position":{"x":14727.785332558746,"y":16785.541058032082},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 0-20","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.25,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.35,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"e740b91d-1364-49ea-9878-df9cddbfc805","savedPayload":{"position":{"x":14801.995160216018,"y":15590.35341743311},"targetPosition":{"x":14932.096287700177,"y":15854.809139984567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6c079371-854a-41cb-82cb-3066463c51c5","savedPayload":{"position":{"x":14932.096287700177,"y":15854.809139984567},"targetPosition":{"x":15075.439247330982,"y":16146.725389764557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 0","project":"Superalgos","id":"fbfe5ddc-2890-4be2-9c46-446bbb49cde0","savedPayload":{"position":{"x":15096.8746851807,"y":15822.40160392652},"targetPosition":{"x":15075.439247330982,"y":16146.725389764557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"e894f129-e11d-4ec6-8d76-50d39dab5dd5"}}},{"type":"Polygon Vertex","name":"End 0","project":"Superalgos","id":"007fe5a0-0fac-4958-8c95-aba6e504e4d5","savedPayload":{"position":{"x":15256.060218545852,"y":15876.501458136829},"targetPosition":{"x":15075.439247330982,"y":16146.725389764557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"93278c60-4529-454e-989f-771ce3beb3c1"}}},{"type":"Polygon Vertex","name":"End 20","project":"Superalgos","id":"3d285cd7-11f6-4e20-969b-eec492cab81e","savedPayload":{"position":{"x":15367.022649865521,"y":16003.001103388673},"targetPosition":{"x":15075.439247330982,"y":16146.725389764557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 20","id":"ce6a0861-712e-4cf4-81e9-92ab6c8a5f4d"}}},{"type":"Polygon Vertex","name":"Begin 20","project":"Superalgos","id":"779ba063-a7c9-4fa8-bb93-a64917dacbd4","savedPayload":{"position":{"x":15401.71775765116,"y":16167.860373477006},"targetPosition":{"x":15075.439247330982,"y":16146.725389764557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 20","id":"59d32253-47b9-4227-bc5b-e2f1d5416844"}}}],"id":"518be834-5410-4eee-afc5-369ec833199c","savedPayload":{"position":{"x":14847.171694088589,"y":16765.9426118098},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 20-30","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"42dcb813-82a7-439d-96db-e1838746a098","savedPayload":{"position":{"x":15044.200861982783,"y":15764.286977065669},"targetPosition":{"x":15082.177798541794,"y":15907.467516426286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"057fa196-0288-45ff-ba35-62465f6ea603","savedPayload":{"position":{"x":15082.177798541794,"y":15907.467516426286},"targetPosition":{"x":15165.718147686232,"y":16221.31350258067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 20","project":"Superalgos","id":"1f65bf18-a749-4221-880b-dc1e2e573ed7","savedPayload":{"position":{"x":15250.345276759075,"y":15906.239731453099},"targetPosition":{"x":15165.718147686232,"y":16221.31350258067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 20","id":"59d32253-47b9-4227-bc5b-e2f1d5416844"}}},{"type":"Polygon Vertex","name":"End 20","project":"Superalgos","id":"4a723692-de81-4fa5-9292-88573a34b816","savedPayload":{"position":{"x":15395.33830688029,"y":15991.79172318524},"targetPosition":{"x":15165.718147686232,"y":16221.31350258067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 20","id":"ce6a0861-712e-4cf4-81e9-92ab6c8a5f4d"}}},{"type":"Polygon Vertex","name":"End 30","project":"Superalgos","id":"ada9ee7e-b823-452e-aab3-2bbb4bf10cc3","savedPayload":{"position":{"x":15481.090965187395,"y":16136.792249410832},"targetPosition":{"x":15165.718147686232,"y":16221.31350258067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"4e7322f7-3bfa-41cc-b9a0-c5dcbe16e83e"}}},{"type":"Polygon Vertex","name":"Begin 30","project":"Superalgos","id":"5d96b5d5-7e34-4a43-891b-273fb9bbf4b6","savedPayload":{"position":{"x":15479.313869113746,"y":16304.928704682641},"targetPosition":{"x":15165.718147686232,"y":16221.31350258067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"3ea0b783-3d43-47d1-90aa-99366cd09a7d"}}}],"id":"bd729215-749b-4893-b21e-fe8add8e3199","savedPayload":{"position":{"x":14837.174364687828,"y":16875.859747454866},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 30-70","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.05,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"48f54b6c-7cd5-4089-b6e2-1f39e2361be7","savedPayload":{"position":{"x":15197.379210862578,"y":15687.764148249116},"targetPosition":{"x":15216.35923730363,"y":15982.574648347845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"20728a48-6ba3-4bf8-b51e-bb57303594f2","savedPayload":{"position":{"x":15216.35923730363,"y":15982.574648347845},"targetPosition":{"x":15237.045995848057,"y":16306.381157256064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 30","project":"Superalgos","id":"058eb800-ac91-44dd-8b28-6a740f6470ee","savedPayload":{"position":{"x":15380.819731650154,"y":16015.440449418407},"targetPosition":{"x":15237.045995848057,"y":16306.381157256064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"3ea0b783-3d43-47d1-90aa-99366cd09a7d"}}},{"type":"Polygon Vertex","name":"End 30","project":"Superalgos","id":"d01decaf-72ca-41e6-aa58-d6dbe505fe29","savedPayload":{"position":{"x":15507.56273970833,"y":16125.946327339409},"targetPosition":{"x":15237.045995848057,"y":16306.381157256064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"4e7322f7-3bfa-41cc-b9a0-c5dcbe16e83e"}}},{"type":"Polygon Vertex","name":"End 70","project":"Superalgos","id":"f87349bc-dc97-46fd-a88f-a28ba9678a43","savedPayload":{"position":{"x":15561.699800086655,"y":16285.075671388058},"targetPosition":{"x":15237.045995848057,"y":16306.381157256064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"22287519-c930-4dfb-bb4a-298da4e32cdf"}}},{"type":"Polygon Vertex","name":"Begin 70","project":"Superalgos","id":"fa0278c8-e861-4c72-8795-32186c329c89","savedPayload":{"position":{"x":15529.963508066128,"y":16450.847898812583},"targetPosition":{"x":15237.045995848057,"y":16306.381157256064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"4f226496-b6a0-436d-97c5-d6e61dd00c23"}}}],"id":"f95afd47-9495-44f4-bf5a-8577bd0750c5","savedPayload":{"position":{"x":14961.782586339552,"y":16888.902513095432},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 70-80","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"191e1de4-e807-46e0-9cac-5b0eb4df5b7d","savedPayload":{"position":{"x":15665.482198676924,"y":15914.480753460648},"targetPosition":{"x":15485.392221749815,"y":16149.037315820953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"baa9237a-41ad-49a1-b78d-664bcb893f79","savedPayload":{"position":{"x":15485.392221749815,"y":16149.037315820953},"targetPosition":{"x":15293.42022246364,"y":16412.17421585777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 70","project":"Superalgos","id":"bdd3f8c1-1194-4472-a681-96a6ee1eedc0","savedPayload":{"position":{"x":15551.407846848033,"y":16209.747242353294},"targetPosition":{"x":15293.42022246364,"y":16412.17421585777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"4f226496-b6a0-436d-97c5-d6e61dd00c23"}}},{"type":"Polygon Vertex","name":"End 70","project":"Superalgos","id":"5c4b0947-4269-4fc3-ae1f-c6707c0488d2","savedPayload":{"position":{"x":15596.368057553645,"y":16285.09338464684},"targetPosition":{"x":15293.42022246364,"y":16412.17421585777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"22287519-c930-4dfb-bb4a-298da4e32cdf"}}},{"type":"Polygon Vertex","name":"End 80","project":"Superalgos","id":"c2c40046-c4c9-42de-887d-892ed868bc4e","savedPayload":{"position":{"x":15619.486917090777,"y":16368.123000614289},"targetPosition":{"x":15293.42022246364,"y":16412.17421585777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 80","id":"9a3c052a-a6b6-4392-b2fd-54151febb8f5"}}},{"type":"Polygon Vertex","name":"Begin 80","project":"Superalgos","id":"e5d1db7f-bceb-4548-a136-bac0f2d23d33","savedPayload":{"position":{"x":15616.910846243638,"y":16471.16852352616},"targetPosition":{"x":15293.42022246364,"y":16412.17421585777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 80","id":"fb48eeab-d538-4fc5-81fe-dd916f749477"}}}],"id":"b75a1367-e45d-4561-9cf9-b537eba7e103","savedPayload":{"position":{"x":14924.689864321197,"y":16984.791987048375},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 80-100","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.25,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.35,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"da7f5472-50e7-4083-86e9-5a24dede1557","savedPayload":{"position":{"x":15678.326561538324,"y":16206.533924146303},"targetPosition":{"x":15566.575323889905,"y":16304.292629014306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6ef84309-4ee8-44c5-a4a9-d5dd9634d09f","savedPayload":{"position":{"x":15566.575323889905,"y":16304.292629014306},"targetPosition":{"x":15327.12898795262,"y":16524.862436172007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 80","project":"Superalgos","id":"fef200a2-c609-4684-9d4d-a84d720f1ee1","savedPayload":{"position":{"x":15619.661171953707,"y":16376.572635916398},"targetPosition":{"x":15327.12898795262,"y":16524.862436172007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 80","id":"fb48eeab-d538-4fc5-81fe-dd916f749477"}}},{"type":"Polygon Vertex","name":"End 80","project":"Superalgos","id":"dd767960-3de1-49ec-914a-f0b3d54e7786","savedPayload":{"position":{"x":15649.15531535157,"y":16459.218232227882},"targetPosition":{"x":15327.12898795262,"y":16524.862436172007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 80","id":"9a3c052a-a6b6-4392-b2fd-54151febb8f5"}}},{"type":"Polygon Vertex","name":"End 100","project":"Superalgos","id":"6fbf425e-e7e4-481a-a14b-762d2879b614","savedPayload":{"position":{"x":15655.244255967908,"y":16545.282385964838},"targetPosition":{"x":15327.12898795262,"y":16524.862436172007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 100","id":"29103f63-7cd6-4005-bec7-a385cf373eaf"}}},{"type":"Polygon Vertex","name":"Begin 100","project":"Superalgos","id":"41244682-e765-41f6-940a-3cced032f765","savedPayload":{"position":{"x":15632.532385569117,"y":16645.745463255524},"targetPosition":{"x":15327.12898795262,"y":16524.862436172007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 100","id":"f3e69d47-f137-412e-a515-7dc262af7f8b"}}}],"id":"e9077695-93a9-4ef5-ae32-3da768e946b1","savedPayload":{"position":{"x":15002.039975555406,"y":17089.0713977216},"targetPosition":{"x":14584.436743276281,"y":17133.037726411552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"b824fc17-2864-430d-93f2-00d42d159b5a","savedPayload":{"position":{"x":14584.436743276281,"y":17133.037726411552},"targetPosition":{"x":14584.360497041456,"y":17532.3608625606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Stoch 14-3-3","config":"{ \n\"codeName\": \"Panel-Stoch-14-3-3\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Slow Line","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.slowLine","project":"Superalgos","id":"158086f9-9654-4e33-8292-6a9b7041526a","savedPayload":{"position":{"x":15210.324521090304,"y":17042.487003231865},"targetPosition":{"x":15068.093172926725,"y":17183.663843012888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c332ec98-c6fb-4eeb-a13a-2bda02958a9d","savedPayload":{"position":{"x":15068.093172926725,"y":17183.663843012888},"targetPosition":{"x":14930.743915364332,"y":17333.31278336956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fast Line","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.fastLine","project":"Superalgos","id":"474d9024-e7ff-46d2-a46f-830c5e55ec30","savedPayload":{"position":{"x":15325.410409067576,"y":17244.130006324696},"targetPosition":{"x":15131.761241181623,"y":17295.280803363756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8249ea87-9d41-431a-b827-c3153fcddd0b","savedPayload":{"position":{"x":15131.761241181623,"y":17295.280803363756},"targetPosition":{"x":14930.743915364332,"y":17333.31278336956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"af6182b0-9814-4ebe-bbe7-7a455d8a6a0e","savedPayload":{"position":{"x":14930.743915364332,"y":17333.31278336956},"targetPosition":{"x":14584.360497041456,"y":17532.3608625606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6a85fbb1-5a99-4ccc-93e8-092f5dbf6c4a","savedPayload":{"position":{"x":14584.360497041456,"y":17532.3608625606},"targetPosition":{"x":14365.186971787978,"y":17911.1677114271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3fcd7ef7-fe1a-42f4-9339-a3bda6859248","savedPayload":{"position":{"x":14315.344334318033,"y":17997.267603246102},"targetPosition":{"x":14165.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"511bef1e-62d8-4ff9-8d87-15bd0d3d630c","savedPayload":{"position":{"x":14165.344334318033,"y":18257.075224381435},"targetPosition":{"x":14165.344334318033,"y":18257.075224381435},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}} \ No newline at end of file diff --git a/Projects/Superalgos/Plugins/Data-Mines/Buddha.json b/Projects/Superalgos/Plugins/Data-Mines/Buddha.json index ac3c7526f..61d8cc5a7 100644 --- a/Projects/Superalgos/Plugins/Data-Mines/Buddha.json +++ b/Projects/Superalgos/Plugins/Data-Mines/Buddha.json @@ -1 +1 @@ -{"type":"Data Mine","name":"Buddha","config":"{ \n\"codeName\": \"Buddha\"\n}","project":"Superalgos","sensorBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"Candle Patterns","config":"{\n\"codeName\": \"Candle-Patterns\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates Candles Patterns for Time Frames of 01-hs and above.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Basic Candles","project":"Superalgos","id":"3e933426-1c7b-45e1-845f-08a7d2684620","savedPayload":{"position":{"x":3129.041401383918,"y":17452.35686716615},"targetPosition":{"x":3328.835973695903,"y":17542.236357748305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"07be5b9b-e8fd-49fc-ab77-20f89fdea10f"}}},{"type":"Output Dataset","name":"Multi-Period-Market One-Candle Patterns","project":"Superalgos","id":"201dc796-db42-49ce-8b9c-1b26c0f3a0ce","savedPayload":{"position":{"x":3169.134883158589,"y":17383.139478265486},"targetPosition":{"x":3328.835973695903,"y":17542.236357748305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"144d8665-1ff0-4db3-9340-a33fd7d0d098"}}},{"type":"Output Dataset","name":"Multi-Period-Market Two-Candles Patterns","project":"Superalgos","id":"c20616cc-d93f-40fc-904a-025fc2799a75","savedPayload":{"position":{"x":3229.9770922491734,"y":17339.671801899964},"targetPosition":{"x":3328.835973695903,"y":17542.236357748305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"8c35ce52-9dee-4d20-92e6-50ba7fd2882b"}}},{"type":"Output Dataset","name":"Multi-Period-Market Three-Candles Patterns","project":"Superalgos","id":"c8074ffc-f5ff-4cb5-8e83-0adcecc82a0c","savedPayload":{"position":{"x":3326.830605382722,"y":17343.877223597563},"targetPosition":{"x":3328.835973695903,"y":17542.236357748305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"087fc67e-78f9-4204-ba5e-8b670566a716"}}}],"outputDatasetFolders":[],"id":"0dc09316-0987-4d22-b600-bd3868942026","savedPayload":{"position":{"x":3328.835973695903,"y":17542.236357748305},"targetPosition":{"x":3543.032821461693,"y":17856.18635281792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candle Patterns Multi-Period-Market","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"2d079388-93e4-4005-b392-c4a997904ccb","savedPayload":{"position":{"x":3351.5917081132684,"y":17243.24971495471},"targetPosition":{"x":3509.228632498114,"y":17403.518467361682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"401fbf30-8faa-40e9-9707-fac2d35f6195"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{ \n\"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"418e1725-b690-4a55-b5f7-a4a92465c162","savedPayload":{"position":{"x":3493.451892335186,"y":17189.127853558104},"targetPosition":{"x":3509.228632498114,"y":17403.518467361682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"85c548fd-9ef7-4936-a86d-2a206cf90039","savedPayload":{"position":{"x":3649.480915739696,"y":17240.712195185763},"targetPosition":{"x":3509.228632498114,"y":17403.518467361682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"de8bf1ab-cf7b-41ab-b8cb-ae38b1e587ce","savedPayload":{"position":{"x":3509.228632498114,"y":17403.518467361682},"targetPosition":{"x":3543.032821461693,"y":17856.18635281792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"401fbf30-8faa-40e9-9707-fac2d35f6195","savedPayload":{"position":{"x":3718.5418607694155,"y":17491.6141666957},"targetPosition":{"x":3543.032821461693,"y":17856.18635281792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"e100074c-7981-49e1-9d06-813104ee4c41","savedPayload":{"position":{"x":3877.8656690120297,"y":17627.14745828865},"targetPosition":{"x":3543.032821461693,"y":17856.18635281792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"2a8f2e62-256b-4281-a470-3f640af21337","savedPayload":{"position":{"x":3953.433684726442,"y":17825.86189317393},"targetPosition":{"x":3543.032821461693,"y":17856.18635281792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3aaf9f93-0516-4b3d-9772-44be91615154","savedPayload":{"position":{"x":3574.032305105167,"y":17834.302415959657},"targetPosition":{"x":3378.784622502266,"y":18239.738406515746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Calculates Candles Patterns for Time Frames of 45-min and below.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Basic Candles","project":"Superalgos","id":"3fc6cd67-c356-41fc-89d9-5c1cdcdd7360","savedPayload":{"position":{"x":3930.1916909577412,"y":17088.32954990486},"targetPosition":{"x":4138.971828579179,"y":17379.183804585642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"9e6d7f95-b2fe-466e-9a5d-175479cbf85d"}}},{"type":"Output Dataset","name":"Multi-Period-Daily One-Candle Patterns","project":"Superalgos","id":"7b078979-c28c-4ba5-8305-d469c8d4ec84","savedPayload":{"position":{"x":4030.754275768206,"y":17037.847420053233},"targetPosition":{"x":4138.971828579179,"y":17379.183804585642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f0a11771-dd69-4b9a-9347-7cb2d1f231ff"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Two-Candles Patterns","project":"Superalgos","id":"5ab95923-5553-40a7-836e-14b96f8a4764","savedPayload":{"position":{"x":4141.41271164468,"y":17021.198369469843},"targetPosition":{"x":4138.971828579179,"y":17379.183804585642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4f1260c8-6d74-454e-963a-fa3ff910329c"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Three-Candles Patterns","project":"Superalgos","id":"cb6acbaf-bf43-4bf6-b8ca-7689130cc9cf","savedPayload":{"position":{"x":4252.36357255399,"y":17039.900153164792},"targetPosition":{"x":4138.971828579179,"y":17379.183804585642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b60cb94f-79c5-410c-b166-abc97d0f2bc3"}}}],"outputDatasetFolders":[],"id":"bcfa61bd-e1d0-4a60-9fd5-ab7dabe4fd39","savedPayload":{"position":{"x":4138.971828579179,"y":17379.183804585642},"targetPosition":{"x":4202.31007347551,"y":17802.310313042937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candle Patterns Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"a7ea36fb-cc2e-4d55-b021-e67d8c5a7020","savedPayload":{"position":{"x":4271.274080895866,"y":16836.051781428025},"targetPosition":{"x":4463.497734878572,"y":17137.665772151136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"3a20d7e9-d551-4346-81c7-e3b0098bef99"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"48b53dc5-015c-43f1-9485-047aaaffe0f7","savedPayload":{"position":{"x":4484.925367632157,"y":16780.62286642274},"targetPosition":{"x":4463.497734878572,"y":17137.665772151136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"49d2c9ad-bdde-427a-8590-801aa4422cca","savedPayload":{"position":{"x":4690.64049560163,"y":16861.440515194765},"targetPosition":{"x":4463.497734878572,"y":17137.665772151136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"19bf518a-1e20-4e3a-8f40-8e07324f634b","savedPayload":{"position":{"x":4809.620831706085,"y":17047.77279346082},"targetPosition":{"x":4463.497734878572,"y":17137.665772151136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"2a7a3bf2-9044-4040-95a7-28c1a339a37f","savedPayload":{"position":{"x":4463.497734878572,"y":17137.665772151136},"targetPosition":{"x":4202.31007347551,"y":17802.310313042937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"3a20d7e9-d551-4346-81c7-e3b0098bef99","savedPayload":{"position":{"x":4760.922783662587,"y":17357.337045572225},"targetPosition":{"x":4202.31007347551,"y":17802.310313042937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"4d03c099-0d5e-4668-a347-c0de2f42f8bd","savedPayload":{"position":{"x":4631.263310134087,"y":17737.757537231206},"targetPosition":{"x":4202.31007347551,"y":17802.310313042937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"3ef2f54d-64c9-4264-a298-0c5a908458ab","savedPayload":{"position":{"x":4602.685416209504,"y":17958.874466789566},"targetPosition":{"x":4202.31007347551,"y":17802.310313042937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8a7ce3e2-20a1-496b-86bf-2d7842f88536","savedPayload":{"position":{"x":3730.6087896128793,"y":17959.167995679316},"targetPosition":{"x":3378.784622502266,"y":18239.738406515746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Basic Candles","config":"{\n \"codeName\": \"Basic-Candles\",\n \"singularVariableName\": \"basicCandle\",\n \"pluralVariableName\": \"basicCandles\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"07be5b9b-e8fd-49fc-ab77-20f89fdea10f","savedPayload":{"position":{"x":4543.557043633315,"y":17732.52121724577},"targetPosition":{"x":4397.387467659923,"y":18074.90669060388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"9e6d7f95-b2fe-466e-9a5d-175479cbf85d","savedPayload":{"position":{"x":4716.876479057264,"y":17884.407289039897},"targetPosition":{"x":4397.387467659923,"y":18074.90669060388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"Basic Candles Variables","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"7d35e864-2f37-4d1c-912d-225952131ffd","savedPayload":{"position":{"x":5243.300902669818,"y":17694.234544014682},"targetPosition":{"x":5503.05010588257,"y":17796.698970175938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"52215804-fb71-43ed-a232-3b29d843cb58","savedPayload":{"position":{"x":5503.05010588257,"y":17796.698970175938},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"bdeaed7f-2923-4fde-a7ea-257f00bb7ee9","savedPayload":{"position":{"x":5361.434274238682,"y":17486.529590492595},"targetPosition":{"x":5581.882197024175,"y":17658.27100096263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b8f2240b-03a9-4fd5-8e37-d43237554239","savedPayload":{"position":{"x":5581.882197024175,"y":17658.27100096263},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"name","config":"{\n \"codeName\": \"name\",\n \"isString\": true\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.name","project":"Superalgos","id":"5ac4a021-ae1b-45d7-80ea-09587174c038","savedPayload":{"position":{"x":5533.068929769028,"y":17321.14386498576},"targetPosition":{"x":5696.33677158257,"y":17547.906705873695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8220f919-2232-47b2-8bcb-1d30a905c026","savedPayload":{"position":{"x":5696.33677158257,"y":17547.906705873695},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"size","config":"{ \n\"codeName\": \"size\",\n\"isString\": true\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.size","project":"Superalgos","id":"8162dea0-df67-42b5-8223-7533f950af7a","savedPayload":{"position":{"x":5744.665428222961,"y":17210.425479501188},"targetPosition":{"x":5837.235956477414,"y":17474.237864607072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2bff73a1-c5c2-4413-91ed-9d2aaf642d83","savedPayload":{"position":{"x":5837.235956477414,"y":17474.237864607072},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"direction","config":"{ \n\"codeName\": \"direction\",\n\"isString\": true\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.direction","project":"Superalgos","id":"770f6a35-9069-49ba-9c12-99dc6e5ff54a","savedPayload":{"position":{"x":5978.659552191561,"y":17164.12104348829},"targetPosition":{"x":5993.197817157594,"y":17443.44991488241},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"871bc42d-f3f7-4896-b575-ca23f325e50f","savedPayload":{"position":{"x":5993.197817157594,"y":17443.44991488241},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"upperShadowPercent","config":"{ \n\"codeName\": \"upperShadowPercent\",\n\"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.upperShadowPercent","project":"Superalgos","id":"1645f231-45ab-48b5-9891-45f27e2b4d7e","savedPayload":{"position":{"x":6215.745762155788,"y":17185.4847720107},"targetPosition":{"x":6151.260782482586,"y":17457.53940533661},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"dec83c16-8f66-4403-9dda-e536223e7577","savedPayload":{"position":{"x":6151.260782482586,"y":17457.53940533661},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bodyPercent","config":"{ \n\"codeName\": \"bodyPercent\",\n\"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.bodyPercent","project":"Superalgos","id":"36408e7c-d9cc-4d63-9115-feffa763b85f","savedPayload":{"position":{"x":6437.384791894061,"y":17272.97639100739},"targetPosition":{"x":6299.059885150024,"y":17515.86892053557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cba04177-1edd-444f-94a3-79784d84d70e","savedPayload":{"position":{"x":6299.059885150024,"y":17515.86892053557},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"lowerShadowPercent","config":"{ \n\"codeName\": \"lowerShadowPercent\",\n\"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.lowerShadowPercent","project":"Superalgos","id":"71464adc-3bd3-47b8-b018-cbacf897c119","savedPayload":{"position":{"x":6625.956992622145,"y":17419.515024556917},"targetPosition":{"x":6424.646044938092,"y":17613.45149521807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c2c5753a-2e74-4429-9b6a-aa016a753be2","savedPayload":{"position":{"x":6424.646044938092,"y":17613.45149521807},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"body","config":"{ \n\"codeName\": \"body\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.body","project":"Superalgos","id":"1bc97398-5645-4452-9169-f62efc0a7fe1","savedPayload":{"position":{"x":6765.224388489449,"y":17612.934801319963},"targetPosition":{"x":6517.479393432612,"y":17742.38112056753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f0019951-d651-4fcf-888e-0a0cf1564c98","savedPayload":{"position":{"x":6517.479393432612,"y":17742.38112056753},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"upperShadow","config":"{ \n\"codeName\": \"upperShadow\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.upperShadow","project":"Superalgos","id":"cf426ed9-53d3-411e-acf1-1694c5d45b89","savedPayload":{"position":{"x":6844.438361579003,"y":17838.291272164868},"targetPosition":{"x":6570.220243552896,"y":17892.478058050765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2d3b26eb-15bc-4272-b296-9658ac24baa9","savedPayload":{"position":{"x":6570.220243552896,"y":17892.478058050765},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"lowerShadow","config":"{ \n\"codeName\": \"lowerShadow\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.lowerShadow","project":"Superalgos","id":"a0909b34-9ad9-4290-aa93-5b1731b74a66","savedPayload":{"position":{"x":6857.373941733622,"y":18075.89717696571},"targetPosition":{"x":6578.765103241236,"y":18050.895253165992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2369782b-6afb-41e1-a93f-721c7442e5c3","savedPayload":{"position":{"x":6578.765103241236,"y":18050.895253165992},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"length","config":"{ \n\"codeName\": \"length\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.length","project":"Superalgos","id":"3639b9ee-c558-4699-9b48-2ddfdc59fa33","savedPayload":{"position":{"x":6802.330696790366,"y":18307.921708544687},"targetPosition":{"x":6542.1841852105135,"y":18205.641292375883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a6773db1-97fb-418d-b7cf-d4298054f376","savedPayload":{"position":{"x":6542.1841852105135,"y":18205.641292375883},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"meanBody","config":"{ \n\"codeName\": \"meanBody\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.meanBody","project":"Superalgos","id":"a45ab78a-fa03-469b-ab64-78fd184d9dd5","savedPayload":{"position":{"x":6683.925547715877,"y":18515.366727041524},"targetPosition":{"x":6463.305020388798,"y":18343.699094836596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c32b5645-7bbe-4f06-aaef-d9efc3a5c9da","savedPayload":{"position":{"x":6463.305020388798,"y":18343.699094836596},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"avgRef","config":"{ \n\"codeName\": \"avgRef\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.avgRef","project":"Superalgos","id":"26313abc-cd03-4fb9-b54d-2a0d67a3c0da","savedPayload":{"position":{"x":6512.319034276483,"y":18680.924730972125},"targetPosition":{"x":6348.919906015339,"y":18454.114196658797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0bdc3b36-d092-421f-8741-a0ecfa8fcc41","savedPayload":{"position":{"x":6348.919906015339,"y":18454.114196658797},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Nbodies","config":"{ \n\"codeName\": \"Nbodies\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.Nbodies","project":"Superalgos","id":"f5b650b4-497d-4eef-84f8-c53b5703dbed","savedPayload":{"position":{"x":6300.818320518336,"y":18791.289105675434},"targetPosition":{"x":6207.993808010269,"y":18527.655813473764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cf0a624b-44cb-4926-8e26-867ea485e3fe","savedPayload":{"position":{"x":6207.993808010269,"y":18527.655813473764},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"dojiFactor","config":"{ \n\"codeName\": \"dojiFactor\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.dojiFactor","project":"Superalgos","id":"8e3696bf-dace-4ecb-a9e7-db654ba86ed8","savedPayload":{"position":{"x":6066.700297459774,"y":18837.781036628825},"targetPosition":{"x":6052.025902110538,"y":18558.6505418354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cda80e33-8ed9-4579-8c45-99da25652634","savedPayload":{"position":{"x":6052.025902110538,"y":18558.6505418354},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"sizeFactor","config":"{ \n\"codeName\": \"sizeFactor\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.sizeFactor","project":"Superalgos","id":"08e5507c-e88f-410e-ac54-886d8ce157d2","savedPayload":{"position":{"x":5830.273633796629,"y":18816.462399687203},"targetPosition":{"x":5894.242071234996,"y":18544.1893096125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"20fadb1a-1f55-4b10-ba45-cda61d8d0157","savedPayload":{"position":{"x":5894.242071234996,"y":18544.1893096125},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Nlengths","config":"{ \n\"codeName\": \"Nlengths\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.Nlengths","project":"Superalgos","id":"addc3851-bbe2-47ac-8652-5b745e12918a","savedPayload":{"position":{"x":5597.065099427209,"y":18732.00017717133},"targetPosition":{"x":5746.252783209857,"y":18485.936491246895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0a736450-a2e1-41a0-8c29-cd2434296872","savedPayload":{"position":{"x":5746.252783209857,"y":18485.936491246895},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"sizeMethod","config":"{ \n\"codeName\": \"sizeMethod\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.sizeMethod","project":"Superalgos","id":"e2109d1f-c4aa-46d6-a6b7-75d1ffd9c0ee","savedPayload":{"position":{"x":5419.925716874699,"y":18582.301617339857},"targetPosition":{"x":5620.814387211058,"y":18388.37670408981},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"23853614-5c16-4e3e-b1ae-d3fda37d5884","savedPayload":{"position":{"x":5620.814387211058,"y":18388.37670408981},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"meanLength","config":"{ \n\"codeName\": \"meanLength\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.meanLength","project":"Superalgos","id":"4731c75f-5e23-4972-ba37-10bd4363ee0d","savedPayload":{"position":{"x":5280.391387567346,"y":18388.63473053433},"targetPosition":{"x":5527.8119261481625,"y":18259.320219875386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fc7702c5-1b49-4ed6-b2b3-fde741557115","savedPayload":{"position":{"x":5527.8119261481625,"y":18259.320219875386},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"min","config":"{ \n\"codeName\": \"min\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.candleMin","project":"Superalgos","id":"016b76f2-2f06-408e-986f-e29cd5edc107","savedPayload":{"position":{"x":5201.249991326287,"y":18163.14056712514},"targetPosition":{"x":5474.98716504105,"y":18109.084384305213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"31730ec0-eedf-404d-9a38-bd065bdc2064","savedPayload":{"position":{"x":5474.98716504105,"y":18109.084384305213},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4d364dfd-44f1-4d8e-87fd-5aa54564e167","savedPayload":{"position":{"x":6022.515021635823,"y":18000.96732511276},"targetPosition":{"x":4397.387467659923,"y":18074.90669060388},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* ¡¡¡ VERY IMPORTANT !!!\n\"PLEASE READ BEFORE STARTING ALL DOCUMENTATION RELATED TO THIS INDICATOR ON THE SUPERALGOS WEBSITE\" */\n\n/* INTRODUCTION:\nThere are a lot of combinations in order to construct a candle. That's why we are going to define 4 families of candles based on their appearence.\n1) “CLASSIC CANDLES”: These candles have two shadows shorter than the body.\n2) “MARUBOZU CANDLES”: These candles have no at least one shadow. The shadow, if present, cannot be longer than the body. \n3) “SPINNING TOP CANDLES”: These candles have differents opening and closing prices and have at least one shadow. At the same time at least one shadow has to be longer than the body.\n4) “DOJI CANDLES”: These candles have no body. The open price is equal to the close price. */\n\n// ---------------------------------------------------------------------------------------------------------------------\n// From here the variables to be used will be defined\n// ---------------------------------------------------------------------------------------------------------------------\n\n/* The following variables could be modified by the user to adapt the indicator with his preferences\n(Please, read the documentation before) */\n\nlet sizeMethod = \"SMA\" // Choose \"SMA\" or \"EMA\" to calculate the average length of the last \"Nlengths\" candles\nlet Nlengths = 20 // Default value: 20 - \"Nlengths\" is the number of candles to calculate the average length value\nlet sizeFactor = 75 // Default value: 75% - \"sizeFactor\" is to define \"Long\" or \"Short\" size\nlet Nbodies = 10 // Default value: 10 - \"Nbodies\" is the number of bodies to calculate the average bodie value\nlet dojiFactor = 3 // Default value: 3% - \"dojiFactor\" is to define when a candle is \"doji\" or not\n\n /* In order to avoid errors, the initial condition of the name of the candle is defined */\nvariable.name = \"Unknown\" // To be used on the Plotter Panel and Conditions\n\n/* Candles as dependencies are defined */\nlet candle = record.current \n\n/* The height of the body */\nlet body = Math.abs (candle.close-candle.open)\n\n/* Array of N bodies is defined to verify if a candle has a Short Body or a Long Body */\nif (variable.lastNbodies.length > Nbodies) {\n variable.lastNbodies.shift() // Remove the first element of the array to keep it at a maximun of N elements\n}\nlet meanBody \nif (variable.lastNbodies.length < Nbodies) { // If \"lastNbodies\" array hasn't enough bodies, zero value is defined\n meanBody = 0 \n} else { \n let sum = 0 // Initialize sum variable \n for (let i = variable.lastNbodies.length-Nbodies; i < variable.lastNbodies.length; i++) { // Iterate through the last periods\n sum = sum + variable.lastNbodies[i]\n } \n meanBody = sum/Nbodies\n}\nvariable.lastNbodies.push(body) // Add the current body value to the \"lastNbodies\" array for next cycle\n\n /* Total length of the candle, equivalent to the sum of upper shadow, lower shadow and body */\nlet length = candle.max - candle.min \n\n/* Calculating average candles length \"EMA\" or \"SMA\" */\nif (sizeMethod === \"EMA\") {\n let k = 2 / (Nlengths + 1)\n variable.EMAlength = length * k + variable.previousEMAlength * (1-k)\n variable.previousEMAlength = variable.EMAlength\n variable.avgRef = variable.EMAlength * sizeFactor / 100\n variable.SMAlength = 0\n} \nif (sizeMethod === \"SMA\") {\n variable.EMAlength = 0\n if (variable.lastNlengths.length > Nlengths) {\n variable.lastNlengths.shift() // Remove the first element of the array to keep it at a maximun of N elements \n } \n if (variable.lastNlengths.length < Nlengths) { // If \"lastNlengths\" array hasn't enough candles length, zero value is defined\n variable.SMAlength = 0 \n variable.avgRef = 0 \n } else { \n let sum = 0 // Initialize sum variable \n for (let i = variable.lastNlengths.length-Nlengths; i < variable.lastNlengths.length; i++) { // Iterate through the last periods\n sum = sum + variable.lastNlengths[i]\n } \n variable.SMAlength = sum/Nlengths\n variable.avgRef = variable.SMAlength * sizeFactor / 100 // To be used in Shapes\n }\n variable.lastNlengths.push(length) // Add the current length value to the \"lastNlengths\" array for next cycle\n}\n\n/* Only one MA is calculated, the other is defined as 0. It is useful to integrate both variables into one for future operations */\nvariable.meanLength = variable.SMAlength + variable.EMAlength // To be used in Shapes and Conditions\n\n/* Defining if a candle is \"Long\" or \"Short\" */\nlet size\nif (length > variable.avgRef) {\n size = \"Long\"\n} else {\n size = \"Short\"\n} \n\n/* Green candles are \"Bullish\" and red candles are \"Bearish\" */\nlet direction \nif (candle.close > candle.open) {\n direction = \"Bullish\"\n} else {\n direction = \"Bearish\"\n}\n\n/* The value of the upper shadow */\nlet upperShadow \nif (direction === \"Bullish\") {\n upperShadow = candle.max-candle.close\n} else {\n upperShadow = candle.max-candle.open\n}\n\n/* The value of the lower shadow */\nlet lowerShadow \nif (direction === \"Bullish\") {\n lowerShadow = candle.open-candle.min\n} else {\n lowerShadow = candle.close-candle.min\n}\n\n/* Four possibilities of combinations of the shadows are defined: \"lower\", \"upper\", \"both\", \"none\" */\nlet shadow\nif (upperShadow > 0 && lowerShadow > 0) {\n shadow = \"Both\"\n}\nif (upperShadow === 0 && lowerShadow === 0) {\n shadow = \"None\"\n}\nif (upperShadow > 0 && lowerShadow === 0) {\n shadow = \"Upper\"\n}\nif (upperShadow === 0 && lowerShadow > 0) {\n shadow = \"Lower\"\n}\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here the name of the candles will be defined\n// ----------------------------------------------------------------------------------------------------------------------------\n\nif (body > length*dojiFactor/100) { // From here all kind of candles that are NOT \"doji\" are defined\n\n/* \"CLASSIC CANDLES\" family:\nThese candles have the following characteristics in common:\n1) Both shadows are present.\n2) Each shadow is shorter than the body. \n3) The opening price differs from the closing price. */\n\nif (shadow === \"Both\" && upperShadow <= body && lowerShadow <= body) {\n\n/* \"SHORT GREEN CANDLE\" and \"SHORT RED CANDLE\" properties:\n1) Bullish or Bearish.\n2) Relative Size: Short. */\n\nif (direction === \"Bullish\" && size === \"Short\") {\n variable.name = \"Short Green Candle\"\n}\nif (direction === \"Bearish\" && size === \"Short\") {\n variable.name = \"Short Red Candle\"\n}\n\n/* \"GREEN CANDLE\" and \"RED CANDLE\" properties: \n1) Bullish or Bearish.\n2) Relative Size: Long . */\n\nif (direction === \"Bullish\" && size === \"Long\") {\n variable.name = \"Green Candle\"\n}\nif (direction === \"Bearish\" && size === \"Long\") {\n variable.name = \"Red Candle\"\n}\n\n/* \"LONG GREEN CANDLE\" and \"LONG RED CANDLE\" properties:\n1) Bullish or Bearish respectively.\n2) The body is at least three times higher than the mean body.\n4) Relative Size: Long. */\n\nif (direction === \"Bullish\" && size === \"Long\" && body >= meanBody*3) {\n variable.name = \"Long Green Candle\"\n}\nif (direction === \"Bearish\" && size === \"Long\" && body >= meanBody*3) {\n variable.name = \"Long Red Candle\"\n}\n\n} // Closing \"Classic Candles\" Family \n\n/* \"MARUBOZU CANDLES\" family:\nThese candles have the following characteristics in common:\n1) Lack at least one shadow.\n2) If it has one shadow, it must be shorter than the body.\n3) The opening price differs from the closing price.\n4) Relative Size: Short or Long. */\n\n/* \"GREEN MARUBOZU\" and \"RED MARUBOZU\" properties: \n1) Bullish or Barish.\n2) No shadows. */\n\nif (direction === \"Bullish\" && shadow === \"None\") {\n variable.name = \"Green Marubozu\"\n}\nif (direction === \"Bearish\" && shadow === \"None\") {\n variable.name = \"Red Marubozu\"\n}\n\n/* \"OPENING GREEN MARUBOZU\" properties: \n1) Bullish.\n2) No lower shadow. */\n\nif (direction === \"Bullish\" && shadow === \"Upper\" && upperShadow <= body) {\n variable.name = \"Opening Green Marubozu\"\n}\n\n/* \"CLOSING GREEN MARUBOZU\" properties:\n1) Bullish.\n2) No upper shadow. */\n\nif (direction === \"Bullish\" && shadow === \"Lower\" && lowerShadow <= body) {\n variable.name = \"Closing Green Marubozu\"\n}\n\n/* \"CLOSING RED MARUBOZU\" properties:\n1) Bearish.\n2) No lower shadow. */\n\nif (direction === \"Bearish\" && shadow === \"Upper\" && upperShadow <= body) {\n variable.name = \"Closing Red Marubozu\"\n}\n\n/* \"OPENING RED MARUBOZU\" properties: \n1) Bearish.\n2) No upper shadow. */\n\nif (direction === \"Bearish\" && shadow === \"Lower\" && lowerShadow <= body) {\n variable.name = \"Opening Red Marubozu\"\n}\n\n/* \"SPINNING TOP CANDLES\" family:\nThese candles have the following characteristics in common:\n1) Have at least one shadow.\n2) At least one shadow is greater than the body.\n3) The opening price differs from the closing price. */\n\n/* \"GREEN SPINNING TOP\" and \"RED SPINNING TOP\" properties:\n1) Bullish or Bearish.\n4) Relative Size: Short or Long. \n5) If it's relative size is Long, none of the shadows can exceed three times the body. */\n\nif (shadow !== \"None\") { \n if (upperShadow > body || lowerShadow > body) { \n if (size === \"Long\") {\n if (upperShadow > 3*body || lowerShadow > 3*body) {\n } else {\n if (direction === \"Bullish\") {\n variable.name = \"Green Spinning Top\"\n } else {\n variable.name = \"Red Spinning Top\"\n }\n } \n } else {\n if (direction === \"Bullish\") {\n variable.name = \"Green Spinning Top\"\n } else {\n variable.name = \"Red Spinning Top\"\n }\n }\n } \n} \n\n/* \"HIGH WAVE\" properties:\n1) Bullish or Bearish.\n2) Relative Size: Long.\n3) The length of at least one shadow is at least 3 times larger than the body.*/\n\nif (shadow !== \"None\" && size === \"Long\") {\n if (upperShadow > 3*body || lowerShadow > 3*body) { \n variable.name = \"High Wave\"\n } \n}\n\n} else { // Closing the initial \"dojiFactor\" if condition, from here \"Doji Candles\" family are defined \n\n/* \"DOJI CANDLES\" family:\nThese candles have the following characteristics in common:\n1) Have no body, or very small body if it is allowed. */\n\n/* \"FOUR-PRICE DOJI\" properties:\n1) No shadows.\n2) Relative Size: Short.*/\n\nif (shadow === \"None\" && size === \"Short\") {\n variable.name = \"Four-Price Doji\"\n}\n\n/* \"STAR DOJI\" properties:\n1) Body is located nearly mid-range (between 60% and 40% of total length).\n2) Relative Size: Short. */\n\nif (size === \"Short\" && upperShadow <= length * 0.6 && upperShadow >= length * (0.4 - dojiFactor/100)) {\n variable.name = \"Star Doji\"\n}\n\n/* \"LONG-LEGGED DOJI\" properties:\n1) Body is located nearly mid-range (between 60% and 40% of total length).\n2) Relative Size: Long. */\n\nif (size === \"Long\" && upperShadow <= length * 0.6 && upperShadow >= length * (0.4 - dojiFactor/100)) {\n variable.name = \"Long-Legged Doji\"\n}\n\n/* \"DRAGONFLY DOJI\" properties:\n1) Upper shadow shorter than 1% of total candle length.\n2) Relative Size: Long. */\n\nif (size === \"Long\" && upperShadow <= length * 0.01) {\n variable.name = \"Dragonfly Doji\"\n}\n\n/* \"GRAVESTONE DOJI\" properties:\n1) Lower shadow shorter than 1% of total candle length.\n2) Relative Size: Long.*/\n\nif (size === \"Long\" && lowerShadow <= length * 0.01) {\n variable.name = \"Gravestone Doji\"\n}\n\n/* \"GENERIC DOJI\" properties:\n1) None of the above five Doji. */\n\nif (variable.name === \"Unknown\") {\n variable.name = \"Generic Doji\"\n}\n\n} // Closing the \"dojiFactor\" else\n\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here all the variables that will be written in the records are defined \n// ----------------------------------------------------------------------------------------------------------------------------\n\nvariable.size = size // To be used on the Plotter Panel and Conditions\nvariable.direction = direction // To be used on the Plotter Panel and Conditions\nif (length > 0) { // Condition to avoid dividing by 0\n variable.upperShadowPercent = upperShadow/length*100 // To be used on the Plotter Panel\n variable.bodyPercent = body/length*100 // To be used on the Plotter Panel\n variable.lowerShadowPercent = lowerShadow/length*100 // To be used on the Plotter Panel\n} else {\n variable.lowerShadowPercent = 0\n variable.bodyPercent = 0\n variable.upperShadowPercent = 0\n}\nvariable.Nbodies = Nbodies // To be used on the Plotter Panel\nvariable.sizeFactor = sizeFactor // To be used on the Plotter Panel\nvariable.dojiFactor = dojiFactor // To be used on the Plotter Panel\nvariable.Nlengths = Nlengths // To be used on the Plotter Panel\nvariable.sizeMethod = sizeMethod // To be used on the Plotter Panel\nvariable.candleMin = candle.min // To be used in Shapes\nvariable.length = length // To be used in Conditions\nvariable.upperShadow = upperShadow // To be used in Conditions\nvariable.lowerShadow = lowerShadow // To be used in Conditions\nvariable.body = body // To be used in Conditions\nvariable.meanBody = meanBody // To be used in Conditions\n","project":"Superalgos","id":"119670a5-5f25-4a75-aaad-6939a18aebf0","savedPayload":{"position":{"x":5693.573835174204,"y":18703.895667095363},"targetPosition":{"x":5318.264450787843,"y":18634.648023107347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"shortcutKey":"f"}}},"id":"351fa6f0-1fbb-4e1b-9d95-3599476aed35","savedPayload":{"position":{"x":5318.264450787843,"y":18634.648023107347},"targetPosition":{"x":4954.862224073002,"y":18562.428413799887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* ¡¡¡ VERY IMPORTANT !!!\n\"PLEASE READ BEFORE STARTING ALL DOCUMENTATION RELATED TO THIS INDICATOR ON THE SUPERALGOS WEBSITE\" */\n\n/* It is necessary to define when a candle has a long or a short body. To do that, the bodies of the last N candles have to be averaged. */\nvariable.lastNbodies = [ ] // Define \"lastNbodies\" array to record the value of the last N bodies (SMA)\n\n/* It is necessary to define when a candle is \"Long\" or \"Short\". To do that, the length of the last N candles have to be averaged. */\nvariable.previousEMAlength = 0 // Initialize the variable previous enter to the main loop (EMA)\nvariable.lastNlengths = [ ] // Define \"lastNlengths\" array to record the value of the last N candles length (SMA)","project":"Superalgos","id":"70e6788a-2518-48cf-8493-27f1e7e5ad61","savedPayload":{"position":{"x":5134.43651537488,"y":19090.94349632314},"targetPosition":{"x":5074.637276372179,"y":18914.448702293234},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0b2207a1-b217-4c06-92bd-6985d621d035","savedPayload":{"position":{"x":5074.637276372179,"y":18914.448702293234},"targetPosition":{"x":4954.862224073002,"y":18562.428413799887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f2638b08-3f3b-4574-9e89-dc41f984273d","savedPayload":{"position":{"x":4954.862224073002,"y":18562.428413799887},"targetPosition":{"x":4397.387467659923,"y":18074.90669060388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7519e3d8-b5ec-47eb-84c9-8c9262c9efc6","savedPayload":{"position":{"x":3817.502182984086,"y":18139.603986235405},"targetPosition":{"x":3378.784622502266,"y":18239.738406515746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Basic Candles","id":"09e0a24c-ead1-40c6-9e43-72b46e4294c5"}}},{"type":"Product Definition","name":"One-Candle Patterns","config":"{\n \"codeName\": \"One-Candle-Patterns\",\n \"singularVariableName\": \"oneCandlePattern\",\n \"pluralVariableName\": \"oneCandlePatterns\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"144d8665-1ff0-4db3-9340-a33fd7d0d098","savedPayload":{"position":{"x":4379.589693688931,"y":18139.373683469374},"targetPosition":{"x":4112.264531521449,"y":18372.754243610005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"f0a11771-dd69-4b9a-9347-7cb2d1f231ff","savedPayload":{"position":{"x":4466.003859580354,"y":18341.753515923112},"targetPosition":{"x":4112.264531521449,"y":18372.754243610005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"One-Candle Patterns Records","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"6269672d-95af-44a9-8f10-52f7d4a6892b","savedPayload":{"position":{"x":4587.910104787861,"y":18158.71238268851},"targetPosition":{"x":4763.958803948364,"y":18513.517047571368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"023fd450-0cae-4b41-8cb2-c446ac69bf32","savedPayload":{"position":{"x":4763.958803948364,"y":18513.517047571368},"targetPosition":{"x":4949.568780610876,"y":18886.534396570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"6902c73f-da76-4ca0-b8c2-4ac0351c9a59","savedPayload":{"position":{"x":5040.247449527134,"y":18078.47983082935},"targetPosition":{"x":4996.216852960717,"y":18472.7216781132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ebafaaab-38a0-4bed-a8ea-169f0e92b1cb","savedPayload":{"position":{"x":4996.216852960717,"y":18472.7216781132},"targetPosition":{"x":4949.568780610876,"y":18886.534396570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"name","config":"{ \n\"codeName\": \"name\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.name","project":"Superalgos","id":"ae345ad9-8364-4e58-bd0a-8b44803b1d98","savedPayload":{"position":{"x":5462.087826799281,"y":18255.158055464555},"targetPosition":{"x":5212.568336268181,"y":18562.609510952294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b633fced-5335-4a72-b0cf-ebb6237e2a17","savedPayload":{"position":{"x":5212.568336268181,"y":18562.609510952294},"targetPosition":{"x":4949.568780610876,"y":18886.534396570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trend","config":"{ \n\"codeName\": \"trend\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.trend","project":"Superalgos","id":"5cd8361b-112f-4a4f-9fcd-42a2ff493e96","savedPayload":{"position":{"x":5722.545430983178,"y":18632.089346956927},"targetPosition":{"x":5345.1937909711505,"y":18756.122878002287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"853f4eb3-8068-47d1-9726-22b0c7e835ad","savedPayload":{"position":{"x":5345.1937909711505,"y":18756.122878002287},"targetPosition":{"x":4949.568780610876,"y":18886.534396570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"forecast","config":"{ \n\"codeName\": \"forecast\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.forecast","project":"Superalgos","id":"3b9c18d5-c9e8-4fad-bb3c-1c46751b91a9","savedPayload":{"position":{"x":5736.503709060398,"y":19089.79819116966},"targetPosition":{"x":5353.6709067777665,"y":18991.134671650172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1325daec-fb39-4cb8-acec-14adc2ee94e9","savedPayload":{"position":{"x":5353.6709067777665,"y":18991.134671650172},"targetPosition":{"x":4949.568780610876,"y":18886.534396570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendLine","config":"{ \n\"codeName\": \"trendLine\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.trendLine","project":"Superalgos","id":"d4a6b997-360b-442b-a08c-b75c331a6a84","savedPayload":{"position":{"x":5301.733278681682,"y":19266.576724658637},"targetPosition":{"x":5231.910901682279,"y":19191.692482253744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"e1a74ac9-f660-4d09-89e9-f8eaebf137c4","savedPayload":{"position":{"x":5231.910901682279,"y":19191.692482253744},"targetPosition":{"x":4949.568780610876,"y":18886.534396570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bearishArrowHead","config":"{ \n\"codeName\": \"bearishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.bearishArrowHead","project":"Superalgos","id":"7ca628f3-61d6-4b1f-a4a8-610d07bd8bdb","savedPayload":{"position":{"x":5040.780167562203,"y":19396.213693138863},"targetPosition":{"x":5022.549835225156,"y":19295.863525255263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"d9837267-f999-420e-8906-169c546fc7f5","savedPayload":{"position":{"x":5022.549835225156,"y":19295.863525255263},"targetPosition":{"x":4949.568780610876,"y":18886.534396570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bullishArrowHead","config":"{ \n\"codeName\": \"bullishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.bullishArrowHead","project":"Superalgos","id":"9ddcf2bf-57b5-489e-a7a5-496afd9b7301","savedPayload":{"position":{"x":4756.609984669511,"y":19369.96167357614},"targetPosition":{"x":4795.127009015465,"y":19278.78828123524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c474fa25-64ec-470c-ab04-4132e0f3f9a3","savedPayload":{"position":{"x":4795.127009015465,"y":19278.78828123524},"targetPosition":{"x":4949.568780610876,"y":18886.534396570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"period","config":"{ \n\"codeName\": \"period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.period","project":"Superalgos","id":"4986b4c7-0753-4bab-bf62-906acab4c408","savedPayload":{"position":{"x":4443.076391201399,"y":19236.335647007865},"targetPosition":{"x":4607.2153836654725,"y":19122.80222935768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"49eea75b-d5c8-44cd-afa7-8689127ac9ae","savedPayload":{"position":{"x":4607.2153836654725,"y":19122.80222935768},"targetPosition":{"x":4949.568780610876,"y":18886.534396570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendMethod","config":"{ \n\"codeName\": \"trendMethod\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.trendMethod","project":"Superalgos","id":"8fdf87c8-a467-49a9-9b6a-e70cd12a2b93","savedPayload":{"position":{"x":4334.545726617684,"y":18906.959595002954},"targetPosition":{"x":4533.835716185422,"y":18900.209567664584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6337c29e-3df8-4e54-82ab-a2cdeb800a1b","savedPayload":{"position":{"x":4533.835716185422,"y":18900.209567664584},"targetPosition":{"x":4949.568780610876,"y":18886.534396570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"02d96f47-c6f0-4423-a144-4799f4023c99","savedPayload":{"position":{"x":4949.568780610876,"y":18886.534396570307},"targetPosition":{"x":4112.264531521449,"y":18372.754243610005},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"One-Candle Patterns Code","code":"// -----------------------------------------------------------------------------------------------------------------------------\n// From here the variables that will be used during the definition of the patterns will be defined\n// -----------------------------------------------------------------------------------------------------------------------------\n\n/* The following variables could be modified by the user to adapt the indicator with his preferences\n(Please, read the documentation before) */\nlet N = 10 // Default value: 10 periods - \"N\" is the period to calculate the Moving Average of the trend line (between 5 and 20) \nvariable.trendMethod = \"SMA\" // Choose \"SMA\" or \"EMA\" to calculate the Moving Average of the trend line\n\n /* In order to avoid errors, the initial condition of the output variables are defined */\nvariable.name = \"No Pattern\" // The name of the one-candle pattern\nvariable.forecast = \"None\" // The forecast of the pattern\n\n/* \"Candles\" and \"Basic Candles\" are dependencies */\nlet candle = record.current // Calling \"Candles\"\nlet basicCandle = getElement ('basicCandles', candle) // Calling \"Basic Candles\"\n\n/* To define if the trend is Up or Down , it is necessary to average the candle closes of the last N candles. */\nif (variable.trendMethod === \"SMA\") {\n variable.lastN.push(candle.close) // Add the current Candle Close value to the \"lastN\" array\n if (variable.lastN.length > N) {\n variable.lastN.shift() // Remove the first element of the array to keep it at a maximun of N elements\n }\n let smaN\n if (variable.lastN.length < N) { // If the array \"lastN\" has not enough Candle Closes, the value zero for the smaN is defined\n smaN = 0 \n } else { \n let sum = 0 // Initialize sum variable \n for (let i = variable.lastN.length-N; i < variable.lastN.length; i++) { // Iterate through the last periods\n sum = sum + variable.lastN[i]\n } \n smaN = sum/N\n variable.lastMA.push(smaN) // Add the current SMA value to the \"lastMA\" array\n if (variable.lastMA.length > 4) {\n variable.lastMA.shift() // Remove the first element of the array to keep it at a maximun of 4 SMA's\n }\n }\n}\n\nif (variable.trendMethod === \"EMA\") {\n let k = 2 / (N + 1)\n variable.ema = candle.close * k + variable.previousEMA * (1-k)\n variable.previousEMA = variable.ema\n if (variable.ema === undefined) {\n variable.lastMA.push(0)\n } else { \n variable.lastMA.push(variable.ema) // Add the current EMA value to the \"lastMA\" array\n } \n if (variable.lastMA.length > 4) {\n variable.lastMA.shift() // Remove the first element of the array to keep it at a maximun of 4 EMA's\n }\n} \n\n/* Calling the 3 last and current Moving Averages of the \"lastMA\" array */\nlet ma3Back = variable.lastMA [0] \nlet ma2Back = variable.lastMA [1]\nlet ma1Back = variable.lastMA [2]\nlet trendLine = variable.lastMA [3]\n\n/* Defining trend (Uptrend or Downtrend). It is important to avoid \"undefined\" candles or ma's */\nlet trend = \"None\"\nlet candle1Back = mainDependency.records[index - 1] // Calling previous candle\nlet candle2Back = mainDependency.records[index - 2] // Calling 2 previous candle\nlet candle3Back = mainDependency.records[index - 3] // Calling 3 previous candle\n\nif (candle1Back !== undefined && candle2Back !== undefined && candle3Back !== undefined) { \n if (ma1Back !== undefined && ma2Back !== undefined && ma3Back !== undefined) { \n if (candle1Back.close >= ma1Back && candle1Back.open >= ma1Back) {\n if (candle2Back.close >= ma2Back && candle2Back.open >= ma2Back) {\n if (candle3Back.close >= ma3Back && candle3Back.open >= ma3Back) {\n trend = \"Uptrend\"\n }\n }\n }\n if (candle1Back.close <= ma1Back && candle1Back.open <= ma1Back) {\n if (candle2Back.close <= ma2Back && candle2Back.open <= ma2Back) {\n if (candle3Back.close <= ma3Back && candle3Back.open <= ma3Back) {\n trend = \"Downtrend\"\n }\n }\n }\n }\n}\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here patterns will be defined\n// ----------------------------------------------------------------------------------------------------------------------------\n\n/* Patterns will be grouped as follows:\n1) Bearish continuation --> These patterns indicates that the current downtrend could continue.\n2) Bearish Reversal --> These patterns indicates that the current uptrend could turn to downtrend.\n3) Bullish Continuation --> These patterns indicates that the current uptrend could continue.\n4) Bullish Reversal --> These patterns indicates that the current downtrend could turn to uptrend. */\n\n/* \"BEARISH CONTINUATION\" group:\nThese patterns should appear during a downtrend to be valid*/\nif (trend === \"Downtrend\") {\n\n/* \"BEARISH STRONG LINE\" properties:\n1) Basic Candle can be \"Long Red Candle\", \"Red Marubozu\", \"Opening Red Marubozu\" or \"Closing Red Marubozu\".\n2) Average size: Long.\n3) The body has to be three times higher than the mean body.\n4) The body is placed below the trend line. */\n\nif (basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.body >= basicCandle.meanBody*3) {\n if (candle.open <= trendLine) {\n variable.name = \"Bearish Strong Line\"\n variable.forecast = \"Bearish Continuation\"\n }\n }\n }\n}\n\n} // Closing \"Bearish Continuation\" group\n\n//-------------------------------------------------------\n\n/* \"BEARISH REVERSAL\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend === \"Uptrend\") {\n\n/* \"BEARISH BELT HOLD\" properties:\n1) Basic Candle is \"Opening Red Marubozu\". \n2) Average size: Long.\n3) Short lower shadow. (20 percent of the candle is defined, user can change it). */\n\nif (basicCandle.name === \"Opening Red Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if(basicCandle.lowerShadow <= basicCandle.length*0.2) {\n variable.name = \"Bearish Belt Hold\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n}\n\n/* \"HANGING MAN\" properties:\n1) Basic Candle can be \"Green Spinning Top\", \" Red Spinning Top\" or \"High Wave\".\n2) Average size: Long.\n3) The upper shadow shorter than the body.\n4) Long lower shadow that is at least twice the size as the body.\n5) The body above the trend line. */\n\nif (basicCandle.name === \"Green Spinning Top\" || basicCandle.name === \"Red Spinning Top\" || basicCandle.name === \"High Wave\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.upperShadow <= basicCandle.body) {\n if (basicCandle.lowerShadow >= basicCandle.body*2) {\n if (candle.close >= trendLine && candle.open >= trendLine) {\n variable.name = \"Hanging Man\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n } \n}\n\n/* \"SHOOTING STAR\" properties:\n1) Basic Candle can be \"Green Spinning Top\", \" Red Spinning Top\" or \"High Wave\".\n2) Average size: Long.\n3) The lower shadow shorter than the body.\n4) Upper shadow that is at least two times longer than the body.\n5) The body above the trend line. */\n\nif (basicCandle.name === \"Green Spinning Top\" || basicCandle.name === \"Red Spinning Top\" || basicCandle.name === \"High Wave\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.lowerShadow <= basicCandle.body) {\n if (basicCandle.upperShadow >= basicCandle.body*2) {\n if (candle.close >= trendLine && candle.open >= trendLine) {\n variable.name = \"Shooting Star\"\n variable.forecast = \"Bearish Reversal\"\n } \n }\n }\n } \n}\n\n/* \"BEARISH STRONG LINE\" properties:\n1) Basic Candle can be \"Long Red Candle\", \"Red Marubozu\", \"Opening Red Marubozu\" or \"Closing Red Marubozu\". \n2) Average size: Long.\n3) The body has to be three times higher than the mean body.\n4) The opening price is above the trendline (Remember, if the body is below the trendline, belongs to bearish continuation). */\n\nif (basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.body >= basicCandle.meanBody*3) {\n if (candle.open >= trendLine) {\n variable.name = \"Bearish Strong Line\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n} // Closing \"Bearish Reversal\" group\n\n//-------------------------------------------------------\n\n/* \"BULLISH CONTINUATION\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend === \"Uptrend\") {\n\n/* \"BULLISH STRONG LINE\" properties:\n1) Basic Candle can be \"Long Green Candle\", \"Green Marubozu\", \"Opening Green Marubozu\" or \"Closing Green Marubozu\".\n2) Average size: Long.\n3) The body has to be three times higher than the mean body.\n4) The body is placed above the trendline. */\n\nif (basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.body >= basicCandle.meanBody*3) {\n if (candle.open >= trendLine) {\n variable.name = \"Bullish Strong Line\"\n variable.forecast = \"Bullish Continuation\"\n }\n }\n }\n}\n\n} // Closing \"Bullish Continuation\" group\n\n//-------------------------------------------------------\n\n/* \"BULLISH REVERSAL\" group:\nThese patterns should appear during a downtrend*/\nif (trend === \"Downtrend\") {\n\n/* \"BULLISH BELT HOLD\" properties:\n1) Basic Candle is \"Opening Green Marubozu\".\n2) Average size: Long.\n3) Short upper shadow. 20 percent of the candle length, user can change it value. */\n\nif (basicCandle.name === \"Opening Green Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.upperShadow <= basicCandle.length*0.2) {\n variable.name = \"Bullish Belt Hold\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n}\n\n/* \"HAMMER\" properties:\n1) Basic Candle can be \"Green Spinning Top\", \" Red Spinning Top\" or \"High Wave\".\n2) Average size: Long.\n3) The upper shadow shorter than the body.\n4) Lower shadow at least two times longer than the body. \n5) The body has to be below the trend line. */\n\nif (basicCandle.name === \"Green Spinning Top\" || basicCandle.name === \"Red Spinning Top\" || basicCandle.name === \"High Wave\" ) {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.upperShadow <= basicCandle.body) {\n if (basicCandle.lowerShadow >= basicCandle.body*2) {\n if (candle.close <= trendLine && candle.open <= trendLine) {\n variable.name = \"Hammer\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n }\n } \n}\n \n/* \"BULLISH STRONG LINE\" properties:\n1) Basic Candle can be \"Long Green Candle\", \"Green Marubozu\", \"Opening Green Marubozu\" or \"Closing Green Marubozu\". \n2) Average size: Long.\n3) The body three times higher than the mean body.\n4) The opening price is below the trendline (Remember, if the body is placed above the trendline, belongs to bulliish continuation). */\n\nif (basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.body >= basicCandle.meanBody*3) {\n if (candle.open <= trendLine) {\n variable.name = \"Bullish Strong Line\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n }\n}\n\n} // Closing \"Bullish Reversal\" group\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here all the variables that will be written in the records are defined \n// ----------------------------------------------------------------------------------------------------------------------------\n\nvariable.trend = trend\nvariable.trendLine = trendLine\nvariable.period = N // This record will be for pattern visualization on the chart\nvariable.bearishArrowHead = candle.max*1.02 // This record will be for pattern visualization on the chart\nvariable.bullishArrowHead = candle.min*0.98 // This record will be for pattern visualization on the chart","project":"Superalgos","id":"08e03d17-e3d4-4a60-9e76-8b0c246f6eab","savedPayload":{"position":{"x":4708.181636308345,"y":19193.27160890174},"targetPosition":{"x":4588.102783784305,"y":19102.515372521324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"45f3274c-5f6c-4730-83cc-3a4a80be5f11","savedPayload":{"position":{"x":4588.102783784305,"y":19102.515372521324},"targetPosition":{"x":4347.66576105129,"y":18923.01369094286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* It is necessary to define Moving Average of N Periods to define the trend of the market. */\nvariable.lastN = [ ] // Define lastN array to record the value of the last N candle closes (SMA)\nvariable.previousEMA = 0 // Initialize the variable previous enter to the main loop (EMA)\nvariable.lastMA = [0, 0, 0, 0] // Define lastMA array to record the value of the last 3 and current Moving Averages of N Periods","project":"Superalgos","id":"dcdb9df8-32b5-4c90-b392-8eb147d91a1e","savedPayload":{"position":{"x":4294.001042774589,"y":19370.16978745303},"targetPosition":{"x":4312.353012109685,"y":19220.490039329583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0571fcc4-4f29-4c5b-8de0-54da0ee0dd44","savedPayload":{"position":{"x":4312.353012109685,"y":19220.490039329583},"targetPosition":{"x":4347.66576105129,"y":18923.01369094286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61de6419-4760-4b57-a184-d5aac5114be8","savedPayload":{"position":{"x":4347.66576105129,"y":18923.01369094286},"targetPosition":{"x":4112.264531521449,"y":18372.754243610005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f3c0863c-ac0c-4fc0-b9ee-5f0f2bd722ea","savedPayload":{"position":{"x":3817.502182984086,"y":18339.872826796087},"targetPosition":{"x":3378.784622502266,"y":18239.738406515746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"One-Candle Patterns","id":"14f83391-e4a6-470c-90c0-19763f83429b"}}},{"type":"Product Definition","name":"Two-Candles Patterns","config":"{\n \"codeName\": \"Two-Candles-Patterns\",\n \"singularVariableName\": \"twoCandlePattern\",\n \"pluralVariableName\": \"twoCandlePatterns\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"8c35ce52-9dee-4d20-92e6-50ba7fd2882b","savedPayload":{"position":{"x":4105.741923194211,"y":18395.210116661106},"targetPosition":{"x":3692.4332887174132,"y":18509.48517375739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"4f1260c8-6d74-454e-963a-fa3ff910329c","savedPayload":{"position":{"x":4093.4955365505703,"y":18659.83069367279},"targetPosition":{"x":3692.4332887174132,"y":18509.48517375739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"Two-Candles Patterns Records","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"61a74369-9fad-4af6-99d8-c6e4821d4750","savedPayload":{"position":{"x":4511.506479424588,"y":18808.641406992305},"targetPosition":{"x":4512.631929064031,"y":18917.186767177074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d0948117-06a2-44e6-a9c6-eed01b943780","savedPayload":{"position":{"x":4512.631929064031,"y":18917.186767177074},"targetPosition":{"x":4515.490551317351,"y":19132.101015737037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"73933242-2824-4a63-bb50-d6043c1796a0","savedPayload":{"position":{"x":4687.381944801706,"y":18857.549328703673},"targetPosition":{"x":4629.570962774706,"y":18949.759972030603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d5bcbb61-ab9d-4908-91c4-0bbbdade33c0","savedPayload":{"position":{"x":4629.570962774706,"y":18949.759972030603},"targetPosition":{"x":4515.490551317351,"y":19132.101015737037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"name","config":"{ \n\"codeName\": \"name\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.name","project":"Superalgos","id":"34cec9a0-7a4d-430c-a69e-b67150a8701d","savedPayload":{"position":{"x":4802.913421971327,"y":18996.877389132147},"targetPosition":{"x":4709.592714974562,"y":19040.708844291315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c8a5978b-4038-4493-9c79-697d6508604f","savedPayload":{"position":{"x":4709.592714974562,"y":19040.708844291315},"targetPosition":{"x":4515.490551317351,"y":19132.101015737037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trend","config":"{ \n\"codeName\": \"trend\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.trend","project":"Superalgos","id":"d5af582e-67e7-4bd4-80c8-561fb4b28f0b","savedPayload":{"position":{"x":4830.5978010438885,"y":19173.31805259477},"targetPosition":{"x":4728.290959487345,"y":19159.96427499382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"ceed7f12-8a54-43bf-9bd0-c9297493d6a1","savedPayload":{"position":{"x":4728.290959487345,"y":19159.96427499382},"targetPosition":{"x":4515.490551317351,"y":19132.101015737037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"forecast","config":"{ \n\"codeName\": \"forecast\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.forecast","project":"Superalgos","id":"ce5d5a36-b9dd-404d-90c1-a6556cc15145","savedPayload":{"position":{"x":4758.2029272869,"y":19337.15030784822},"targetPosition":{"x":4679.404103803652,"y":19270.59398362157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"0e22e091-4ace-44ab-b1c9-aa386e928299","savedPayload":{"position":{"x":4679.404103803652,"y":19270.59398362157},"targetPosition":{"x":4515.490551317351,"y":19132.101015737037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bullishArrowHead","config":"{ \n\"codeName\": \"bullishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.bullishArrowHead","project":"Superalgos","id":"7095f60c-5b45-4f3c-b026-97c89a480135","savedPayload":{"position":{"x":4608.749972898444,"y":19435.843028155774},"targetPosition":{"x":4578.478959928612,"y":19337.237388278132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"228d8125-2609-45c6-9cc7-e644c017ee0e","savedPayload":{"position":{"x":4578.478959928612,"y":19337.237388278132},"targetPosition":{"x":4515.490551317351,"y":19132.101015737037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bearishArrowHead","config":"{ \n\"codeName\": \"bearishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.bearishArrowHead","project":"Superalgos","id":"409212af-d4f2-4371-9cc2-4402e16c1889","savedPayload":{"position":{"x":4430.222396179863,"y":19438.060444595878},"targetPosition":{"x":4457.811008546021,"y":19338.73067176096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"fa50b0e1-d8df-4a16-91c9-361541808fbf","savedPayload":{"position":{"x":4457.811008546021,"y":19338.73067176096},"targetPosition":{"x":4515.490551317351,"y":19132.101015737037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendLine","config":"{ \n\"codeName\": \"trendLine\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.trendLine","project":"Superalgos","id":"7302e487-d514-4964-bdc3-9901ba318dea","savedPayload":{"position":{"x":4278.505571438527,"y":19343.095925592825},"targetPosition":{"x":4355.319111136239,"y":19274.575067483856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"64444857-2818-42de-a4c1-69c4d2804ebf","savedPayload":{"position":{"x":4355.319111136239,"y":19274.575067483856},"targetPosition":{"x":4515.490551317351,"y":19132.101015737037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"period","config":"{ \n\"codeName\": \"period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.period","project":"Superalgos","id":"dfdef370-336e-4650-a441-4b65f7304047","savedPayload":{"position":{"x":4195.971924468871,"y":19182.08068833095},"targetPosition":{"x":4303.192232694928,"y":19165.241806554797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6dafe978-a5df-4f5b-a7ae-d496b83bcc94","savedPayload":{"position":{"x":4303.192232694928,"y":19165.241806554797},"targetPosition":{"x":4515.490551317351,"y":19132.101015737037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendMethod","config":"{ \n\"codeName\": \"trendMethod\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.trendMethod","project":"Superalgos","id":"aea83576-35e1-4190-b284-faf3f696436b","savedPayload":{"position":{"x":4220.405041993439,"y":19001.08247878895},"targetPosition":{"x":4319.346554396849,"y":19044.887374080874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"552e82f9-e5e6-4802-9cf2-d9a7bbbc5a22","savedPayload":{"position":{"x":4319.346554396849,"y":19044.887374080874},"targetPosition":{"x":4515.490551317351,"y":19132.101015737037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"17ec2118-b9df-415f-b5f3-120fb3b3155a","savedPayload":{"position":{"x":4515.490551317351,"y":19132.101015737037},"targetPosition":{"x":3692.4332887174132,"y":18509.48517375739},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"Two-Candles Patterns Code","code":"// -----------------------------------------------------------------------------------------------------------------------------\n// From here the variables that will be used during the definition of the patterns will be defined\n// -----------------------------------------------------------------------------------------------------------------------------\n\n /* In order to avoid errors, the initial condition of the output variables are defined */\nvariable.name = \"No Pattern\" // The name of the two-candle pattern, for panel visualization\nvariable.forecast = \"None\" // The forecast of the two-candle pattern, for panel visualization\nvariable.trend = \"None\" // The trend of the current pattern, for panel visualization\nvariable.trendLine = 1 // This record will be for pattern shapes visualization on the chart\nvariable.bearishArrowHead = 1 // This record will be for pattern shapes visualization on the chart\nvariable.bullishArrowHead = 1 // This record will be for pattern shapes visualization on the chart\nvariable.period = 0 // The period of the trend MA, for panel visualization\n \n/* \"Candles\", \"Basic Candles\" and \"One-Candle Patterns\" are dependencies */\nlet candle = record.current // Calling \"Candles\"\nlet basicCandle = getElement ('basicCandles', candle) // Calling \"Basic Candles\" product\nlet oneCandlePattern = getElement ('oneCandlePatterns', candle) // Calling \"One-Candle Patterns\" product\n\n/* Some properties of the previous candle are needed (max, min, open and close) */\nlet candle1Back = mainDependency.records[index - 1] \n\n/* In order to avoid \"undefined\" elements during calculations */\nif (basicCandle !== undefined && oneCandlePattern !== undefined && candle1Back !== undefined) { \n\n/*Another properties of the previous candle are needed (trend, span, name and direction)*/\nvariable.records1Back.push(oneCandlePattern.trend, basicCandle.size, basicCandle.name, basicCandle.direction)\nlet trend1Back = \"None\"\nlet size1Back = \"None\"\nlet name1Back = \"None\"\nlet direction1Back = \"None\"\nif (variable.records1Back[0] !== undefined) {\n trend1Back = variable.records1Back[0] // Taking first element of the array (index 0)\n}\nif (variable.records1Back[1] !== undefined) {\n size1Back = variable.records1Back[1] // Taking second element of the array (index 1)\n}\nif (variable.records1Back[2] !== undefined) {\n name1Back = variable.records1Back[2] // Taking third element of the array (index 2)\n}\nif (variable.records1Back[3] !== undefined) {\n direction1Back = variable.records1Back[3] // Taking fourth element of the array (index 3)\n}\nif (variable.records1Back.length === 8) { // Array with 8 elements, 4 currents and 4 from previous\n variable.records1Back.splice(0, 4) // Remove the first 4 elements of the array\n} \n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here patterns will be defined\n// ----------------------------------------------------------------------------------------------------------------------------\n\n/* Patterns will be grouped as follows:\n1) Bearish continuation --> These patterns indicates that the current downtrend could continue.\n2) Bearish Reversal --> These patterns indicates that the current uptrend could turn to downtrend.\n3) Bullish Continuation --> These patterns indicates that the current uptrend could continue.\n4) Bullish Reversal --> These patterns indicates that the current downtrend could turn to uptrend. */\n\n/* \"BEARISH CONTINUATION\" group:\nThese patterns should appear during a downtrend to be valid*/\nif (trend1Back === \"Downtrend\") {\n\n/* \"LAST ENGULFING BOTTOM\" properties:\nIt is important to know that this pattern has a \"Bearish Continuation\" or \"Bullish Reversal\" forecast, depending on the context.\n--First candle\n1) Can be any green basic candle, excluding Four-Price Doji.\n--Second candle\n1) Can be the following red basic candles: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Candle's body engulfs the prior candle's body.\n3) Average size: long. */\n\nif (direction1Back === \"Bullish\" && name1Back !== \"Four-Price Doji\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.name === \"Red Candle\" || basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\") {\n if (candle1Back.close <= candle.open && candle1Back.open > candle.close) {\n variable.name = \"Last Engulfing Bottom\"\n variable.forecast = \"Depends On The Context\"\n }\n }\n }\n}\n\n} // Closing \"Bearish Continuation\" group\n\n//-------------------------------------------------------\n\n/* \"BEARISH REVERSAL\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend1Back === \"Uptrend\") {\n\n/* \"BEARISH ENGULFING\" properties:\n--First candle\n1) Can be any green basic candle, excluding Four-Price Doji.\n--Second candle\n1) Can be the following red basic candles: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Candle's body engulfs the prior candle's body.\n3) Average size: long. */\n\nif (direction1Back === \"Bullish\" && name1Back !== \"Four-Price Doji\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.name === \"Red Candle\" || basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\") {\n if (candle1Back.close <= candle.open && candle1Back.open > candle.close) {\n variable.name = \"Bearish Engulfing\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n/* \"BEARISH HARAMI\" properties:\n--First candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Can be any red basic candle, excluding Four-Price Doji.\n2) Candle's body engulfed by the previous candle's body. */\n\nif (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.direction === \"Bearish\" && basicCandle.name !== \"Four-Price Doji\") {\n if (candle1Back.close >= candle.open && candle1Back.open < candle.close) {\n variable.name = \"Bearish Harami\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n/* \"BEARISH HARAMI CROSS\" properties:\n--First candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Should be a Classic Doji.\n2) Candle's body (including shadows) engulfed by the prior candle's body. */\n\nif (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.name === \"Classic Doji\") {\n if (candle1Back.close >= candle.max && candle1Back.open <= candle.min) {\n variable.name = \"Bearish Harami Cross\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n/* \"BEARISH TASUKI LINE\" properties:\n--First candle\n1) Bullish candle.\n2) Average size: Long.\n--Second candle\n1) Bearish candle.\n2) Opening price below or equal to the previous closing price.\n3) Closing price below the previous opening price.\n4) Average size: Long. */\n\nif (direction1Back === \"Bullish\" && size1Back === \"Long\") {\n if (basicCandle.direction === \"Bearish\" && basicCandle.size === \"Long\") {\n if (candle.open <= candle1Back.close && candle.close < candle1Back.open) {\n variable.name = \"Bearish Tasuki Line\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n}\n\n/* \"DESCENDING HAWK\" properties:\n--First candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Can be the following green basic candles: Short Green Candle, Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Candle's body engulfed by the prior candle's body. */\n\nif (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.name === \"Short Green Candle\" || basicCandle.name === \"Green Candle\" || basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\") {\n if (candle1Back.close >= candle.close && candle1Back.open < candle.open) {\n variable.name = \"Descending Hawk\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n/* \"TWEEZERS TOP\" properties:\n--First candle\n1) Any candle except the Four-Price Doji.\n2) Could be \"Bullish\" or \"Bearish\" candle.\n--Second candle\n1) Any candle except the Four-Price Doji.\n2) Could be \"Bullish\" or \"Bearish\" candle.\n3) High price equal to the previous high price. */\n\nif (candle1Back.name !== \"Four-Price Doji\" && basicCandle.name !== \"Four-Price Doji\" && candle.max === candle1Back.max) {\n variable.name = \"Tweezers Top\"\n variable.forecast = \"Bearish Reversal\"\n}\n\n/* \"TWO-CANDLE SHOOTING STAR\" properties:\n--First candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Can be the following basic candles: Red Spinning Top, Green Spinning Top, High Wave. \n2) No lower shadow or the shadow cannot be longer than then body.\n3) Upper shadow at least 2.5 times longer than the body.\n4) The open above or at the level of the previous candle’s close. */\n\nif (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.name === \"Red Spinning Top\" || basicCandle.name === \"Green Spinning Top\" || basicCandle.name === \"High Wave\") {\n if (basicCandle.lowerShadow <= basicCandle.body && basicCandle.upperShadow >= basicCandle.body*2.5 && candle.open >= candle1Back.close) {\n variable.name = \"Two-Candle Shooting Star\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n} // Closing \"Bearish Reversal\" group\n\n//-------------------------------------------------------\n\n/* \"BULLISH CONTINUATION\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend1Back === \"Uptrend\") {\n\n/* \"LAST ENGULFING TOP\" properties:\nIt is important to know that this pattern has a \"Bearish Continuation\" or \"Bullish Reversal\" forecast, depending on the context.\n--First candle\n1) Bearish candle, excluding \"Four-Price Doji\".\n--Second candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Candle's body engulfs the prior candle's body. \n3) Average size: Long. */\n\nif (direction1Back === \"Bearish\" && name1Back !== \"Four-Price Doji\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.name === \"Green Candle\" || basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\") {\n if (candle1Back.close >= candle.open && candle1Back.open < candle.close) { \n variable.name = \"Last Engulfing Top\"\n variable.forecast = \"Depends On The Context\"\n }\n }\n }\n}\n\n} // Closing \"Bullish Continuation\" group\n \n//-------------------------------------------------------\n\n/* \"BULLISH REVERSAL\" group:\nThese patterns should appear during a downtrend*/\nif (trend1Back === \"Downtrend\") {\n\n/* \"BULLISH ENGULFING\" properties:\n--First candle\n1) Bearish candle, excluding \"Four-Price Doji\".\n--Second candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Candle's body engulfs the prior candle's body. \n3) Average size: Long. */\n\nif (direction1Back === \"Bearish\" && name1Back !== \"Four-Price Doji\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.name === \"Green Candle\" || basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\") {\n if (candle1Back.close >= candle.open && candle1Back.open < candle.close) { \n variable.name = \"Bullish Engulfing\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n }\n}\n\n/* \"BULLISH HARAMI\" properties:\n--First candle\n1) Can be the following red basic candles: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long.\n--Second candle\n1) Can be any green basic candle, excluding Four-Price Doji.\n2) Candle's body engulfed by the prior candle's body. */\n\nif (name1Back === \"Red Candle\" || name1Back === \"Long Red Candle\" || name1Back === \"Red Marubozu\" || name1Back === \"Opening Red Marubozu\" || name1Back === \"Closing Red Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.direction === \"Bullish\" && basicCandle.name !== \"Four-Price Doji\") {\n if (candle1Back.close <= candle.open && candle1Back.open > candle.close) {\n variable.name = \"Bullish Harami\"\n variable.forecast = \"Bulliish Reversal\"\n }\n }\n }\n}\n\n/* \"BULLISH HARAMI CROSS\" properties:\n--First candle\n1) Can be the following red basic candles: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long.\n--Second candle\n1) Should be a Classic Doji.\n2) Candle's body (including shadows) engulfed by the prior candle's body. */\n\nif (name1Back === \"Red Candle\" || name1Back === \"Long Red Candle\" || name1Back === \"Red Marubozu\" || name1Back === \"Opening Red Marubozu\" || name1Back === \"Closing Red Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.name === \"Classic Doji\") {\n if (candle1Back.open >= candle.max && candle1Back.close <= candle.min) {\n variable.name = \"Bullish Harami Cross\"\n variable.forecast = \"Bulliish Reversal\"\n }\n }\n }\n}\n\n/* \"BULLISH TASUKI LINE\" properties:\n--First candle\n1) Bearish candle.\n2) Average size: Long.\n--Second candle\n1) Bullish candle.\n2) Opening price above or equal to the previous closing price\n3) Closing price above the previous opening price\n4) Average size: Long. */\n\nif (direction1Back === \"Bearish\" && size1Back === \"Long\") {\n if (basicCandle.direction === \"Bullish\" && basicCandle.size === \"Long\") {\n if (candle.open >= candle1Back.close && candle.close > candle1Back.open) {\n variable.name = \"Bullish Tasuki Line\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n}\n\n/* \"TWEEZERS BOTTOM\" properties:\n--First candle\n1) Any candle except the Four-Price Doji.\n2) Could be \"Bullish\" or \"Bearish\" candle.\n--Second candle\n1) Any candle except the Four-Price Doji.\n2) Could be \"Bullish\" or \"Bearish\" candle.\n3) Low price equal to the previous low price. */\n\nif (candle1Back.name !== \"Four-Price Doji\" && basicCandle.name !== \"Four-Price Doji\" && candle.min === candle1Back.min) {\n variable.name = \"Tweezers Bottom\"\n variable.forecast = \"Bullish Reversal\"\n}\n\n} // Closing \"Bullish Reversal\" group\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here all the variables that will be written in the records are defined \n// ----------------------------------------------------------------------------------------------------------------------------\n\nvariable.trend = trend1Back\nvariable.trendLine = oneCandlePattern.trendLine\nvariable.period = oneCandlePattern.period\nvariable.trendMethod = oneCandlePattern.trendMethod\nvariable.bearishArrowHead = candle.max*1.02 \nvariable.bullishArrowHead = candle.min*0.98\n\n} // Closing initial \"undefined\" avoid\n","project":"Superalgos","id":"0df41d0a-e490-427e-a355-9043e81eb3c1","savedPayload":{"position":{"x":3869.5860627862567,"y":19317.61201969103},"targetPosition":{"x":3771.4651932597408,"y":19127.082242222306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"36593fb7-a9ab-4e3f-95ff-9c291e0f96f6","savedPayload":{"position":{"x":3771.4651932597408,"y":19127.082242222306},"targetPosition":{"x":3673.162865767572,"y":18936.864823598287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* Because this pattern has two candles, the properties of the previous candle are needed. */\nvariable.records1Back = [ ] // The properties will be record in this array","project":"Superalgos","id":"36e0e453-9058-45de-bcff-bc1e17fe7aa8","savedPayload":{"position":{"x":3442.0272555997544,"y":19298.387154050335},"targetPosition":{"x":3557.6075329371306,"y":19117.527866464377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a939b7f6-400d-483f-9017-676c53451613","savedPayload":{"position":{"x":3557.6075329371306,"y":19117.527866464377},"targetPosition":{"x":3673.162865767572,"y":18936.864823598287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"896e9b4a-04e0-497d-be61-af2c96bb9d86","savedPayload":{"position":{"x":3673.162865767572,"y":18936.864823598287},"targetPosition":{"x":3692.4332887174132,"y":18509.48517375739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"29283392-6a01-4acd-8f41-328e92281980","savedPayload":{"position":{"x":3730.6087896128793,"y":18520.308817352176},"targetPosition":{"x":3378.784622502266,"y":18239.738406515746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Two-Candles Patterns","id":"3bf46641-3478-41fd-8407-0af20e72f30b"}}},{"type":"Product Definition","name":"Three-Candles Patterns","config":"{\n \"codeName\": \"Three-Candles-Patterns\",\n \"singularVariableName\": \"threeCandlePattern\",\n \"pluralVariableName\": \"threeCandlePatterns\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"087fc67e-78f9-4204-ba5e-8b670566a716","savedPayload":{"position":{"x":3965.2334788843473,"y":18705.002901661068},"targetPosition":{"x":3543.251136774903,"y":18628.545261527746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"b60cb94f-79c5-410c-b166-abc97d0f2bc3","savedPayload":{"position":{"x":3839.4790639176717,"y":18938.520201231913},"targetPosition":{"x":3543.251136774903,"y":18628.545261527746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"Three-Candles Patterns Records","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"1c316dcb-6d17-4108-ac41-f2d059685e5e","savedPayload":{"position":{"x":3826.6001807185166,"y":18798.36729589883},"targetPosition":{"x":3760.31041721116,"y":18946.432644328084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8328e683-8704-4b65-a774-63da0346e252","savedPayload":{"position":{"x":3760.31041721116,"y":18946.432644328084},"targetPosition":{"x":3629.575093193893,"y":19265.837720704258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"db0992c2-3fd6-4eb9-bbe9-40dad5ae53f6","savedPayload":{"position":{"x":4063.94441151938,"y":18993.883856043944},"targetPosition":{"x":3928.5134137427194,"y":19079.682057479906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fbef0b72-edde-4678-aca5-f405068271b3","savedPayload":{"position":{"x":3928.5134137427194,"y":19079.682057479906},"targetPosition":{"x":3629.575093193893,"y":19265.837720704258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"name","config":"{ \n\"codeName\": \"name\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.name","project":"Superalgos","id":"c397cffb-3ba1-435b-af0b-e920b319b23b","savedPayload":{"position":{"x":4082.3356879433704,"y":19270.78132779846},"targetPosition":{"x":3980.0691683058285,"y":19270.187876305354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"2f7591d7-6877-4fde-aafb-1b9580f6ad60","savedPayload":{"position":{"x":3980.0691683058285,"y":19270.187876305354},"targetPosition":{"x":3629.575093193893,"y":19265.837720704258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trend","config":"{ \n\"codeName\": \"trend\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.trend","project":"Superalgos","id":"ea48eb6b-63a3-444c-abd2-166097bb50c5","savedPayload":{"position":{"x":4007.0391316619207,"y":19514.4200361134},"targetPosition":{"x":3922.289634100427,"y":19459.160562500972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"162b594a-c0a4-45c0-a52c-45682978d00a","savedPayload":{"position":{"x":3922.289634100427,"y":19459.160562500972},"targetPosition":{"x":3629.575093193893,"y":19265.837720704258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"forecast","config":"{ \n\"codeName\": \"forecast\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.forecast","project":"Superalgos","id":"fd07c697-966a-4a3c-a123-61198f194538","savedPayload":{"position":{"x":3813.8233091573384,"y":19678.549086294497},"targetPosition":{"x":3772.3487692558992,"y":19585.973068700867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c1afb085-e6cd-4c27-af62-6765cb270c1d","savedPayload":{"position":{"x":3772.3487692558992,"y":19585.973068700867},"targetPosition":{"x":3629.575093193893,"y":19265.837720704258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bullishArrowHead","config":"{ \n\"codeName\": \"bullishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.bullishArrowHead","project":"Superalgos","id":"dd019f19-f96a-4e88-a2e1-0159ba87fbe3","savedPayload":{"position":{"x":3559.4542349435033,"y":19713.34858190846},"targetPosition":{"x":3576.3008203086865,"y":19612.229621545644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"7059a7a5-021b-4277-80b9-8ef4c5387736","savedPayload":{"position":{"x":3576.3008203086865,"y":19612.229621545644},"targetPosition":{"x":3629.575093193893,"y":19265.837720704258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bearishArrowHead","config":"{ \n\"codeName\": \"bearishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.bearishArrowHead","project":"Superalgos","id":"bc455c93-3c64-4cf4-ab94-0116da22c404","savedPayload":{"position":{"x":3331.213600526218,"y":19604.69011873805},"targetPosition":{"x":3397.3233196058645,"y":19527.94193903369},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"ec8749b1-4f5f-4163-b079-3dd9bec6eefa","savedPayload":{"position":{"x":3397.3233196058645,"y":19527.94193903369},"targetPosition":{"x":3629.575093193893,"y":19265.837720704258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendLine","config":"{ \n\"codeName\": \"trendLine\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.trendLine","project":"Superalgos","id":"54625f1a-aa6f-44a6-bf2e-bcf1f5210674","savedPayload":{"position":{"x":3195.7354388023377,"y":19390.21691584315},"targetPosition":{"x":3293.051902683841,"y":19362.693943698105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"7a781a34-4af5-4eb1-b237-1746ea2e69d0","savedPayload":{"position":{"x":3293.051902683841,"y":19362.693943698105},"targetPosition":{"x":3629.575093193893,"y":19265.837720704258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"period","config":"{ \n\"codeName\": \"period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.period","project":"Superalgos","id":"fd68bb74-c7f3-48ff-941c-121031aaf6a1","savedPayload":{"position":{"x":3148.9080998770005,"y":19111.394004630667},"targetPosition":{"x":3302.385051799891,"y":19160.120001489704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b738ac34-a6eb-41c3-9871-0fc1732be676","savedPayload":{"position":{"x":3302.385051799891,"y":19160.120001489704},"targetPosition":{"x":3629.575093193893,"y":19265.837720704258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendMethod","config":"{ \n\"codeName\": \"trendMethod\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.trendMethod","project":"Superalgos","id":"65ed19cf-524e-4ccd-94df-c60c9b41c40a","savedPayload":{"position":{"x":3294.509321639307,"y":18877.980836029772},"targetPosition":{"x":3400.467180561838,"y":18999.81502034397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"32ff1b3e-acb0-4961-82b9-1dd37a795c41","savedPayload":{"position":{"x":3400.467180561838,"y":18999.81502034397},"targetPosition":{"x":3629.575093193893,"y":19265.837720704258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8a01e390-aea9-494b-a002-9c7498f23189","savedPayload":{"position":{"x":3629.522318607167,"y":19265.779644981907},"targetPosition":{"x":3543.251136774903,"y":18628.545261527746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"Three-Candles Patterns Code","code":"// -----------------------------------------------------------------------------------------------------------------------------\n// From here the variables that will be used during the definition of the patterns will be defined\n// -----------------------------------------------------------------------------------------------------------------------------\n\n /* In order to avoid errors, the initial condition of the output variables are defined */\nvariable.name = \"No Pattern\" // The name of the pattern, for panel visualization\nvariable.forecast = \"None\" // The forecast of the pattern, for panel visualization\nvariable.trend = \"None\" // The trend of the current pattern, for panel visualization\nvariable.trendLine = 1 // This record will be for pattern shapes visualization on the chart\nvariable.bearishArrowHead = 1 // This record will be for pattern shapes visualization on the chart\nvariable.bullishArrowHead = 1 // This record will be for pattern shapes visualization on the chart\nvariable.period = 0 // The period of the trend MA, for panel visualization\n\n/* \"Candles\", \"Basic Candles\" and \"One-Candle Patterns\" are dependencies */\nlet candle = record.current // Calling \"Candles\" records\nlet basicCandle = getElement ('basicCandles', candle) // Calling \"Basic Candles\" records\nlet oneCandlePattern = getElement ('oneCandlePatterns', candle) // Calling \"One-Candle Patterns\" records\n\n/* Some properties of the previous 2 candles are needed (max, min, open and close) */\nlet candle1Back = mainDependency.records[index - 1] \nlet candle2Back = mainDependency.records[index - 2] \n\n/* To avoid \"undefined\" elements during calculations, the following if() condition will include all the entire code */\nif (basicCandle !== undefined && oneCandlePattern !== undefined && candle1Back !== undefined && candle2Back !== undefined) { \n\n/*To define patterns, another properties of the 2 previous candles are needed (trend, size, name and direction)*/\nvariable.recordsBack.push(oneCandlePattern.trend, basicCandle.size, basicCandle.name, basicCandle.direction)\nlet trend1Back = \"None\"\nlet size1Back = \"None\"\nlet name1Back = \"None\"\nlet direction1Back = \"None\"\nlet trend2Back = \"None\"\nlet size2Back = \"None\"\nlet name2Back = \"None\"\nlet direction2Back = \"None\"\n\nif (variable.recordsBack[0] !== undefined) {\n trend2Back = variable.recordsBack[0] // Taking first element of the array (index 0)\n}\nif (variable.recordsBack[1] !== undefined) {\n size2Back = variable.recordsBack[1] // Taking second element of the array (index 1)\n}\nif (variable.recordsBack[2] !== undefined) {\n name2Back = variable.recordsBack[2] // Taking third element of the array (index 2)\n}\nif (variable.recordsBack[3] !== undefined) {\n direction2Back = variable.recordsBack[3] // Taking fourth element of the array (index 3)\n}\nif (variable.recordsBack[0] !== undefined) {\n trend1Back = variable.recordsBack[4] // Taking fifth element of the array (index 4)\n}\nif (variable.recordsBack[1] !== undefined) {\n size1Back = variable.recordsBack[5] // Taking sixth element of the array (index 5)\n}\nif (variable.recordsBack[2] !== undefined) {\n name1Back = variable.recordsBack[6] // Taking seventh element of the array (index 6)\n}\nif (variable.recordsBack[3] !== undefined) {\n direction1Back = variable.recordsBack[7] // Taking eigthth element of the array (index 7)\n}\nif (variable.recordsBack.length === 12) { // Array with 12 elements, 4 currents, 4 from 1 previous and 4 from 2 previous \n variable.recordsBack.splice(0, 4) // Remove the first 4 elements of the array\n} \n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here patterns will be defined\n// ----------------------------------------------------------------------------------------------------------------------------\n\n/* Patterns will be grouped as follows:\n1) Bearish continuation --> These patterns indicates that the current downtrend could continue.\n2) Bearish Reversal --> These patterns indicates that the current uptrend could turn to downtrend.\n3) Bullish Continuation --> These patterns indicates that the current uptrend could continue.\n4) Bullish Reversal --> These patterns indicates that the current downtrend could turn to uptrend. */\n\n/* \"BEARISH CONTINUATION\" group:\nThese patterns should appear during a downtrend to be valid*/\nif (trend2Back === \"Downtrend\") {\n\n} // Closing \"Bearish Continuation\" group\n\n//-------------------------------------------------------\n\n/* \"BEARISH REVERSAL\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend2Back === \"Uptrend\") {\n\n/* \"ADVANCE BLOCK\" properties:\n--First candle\n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu or Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Bullish.\n2) Body shortet than the previous candle.\n3) Shadows longer than the first candle.\n--Third Candle \n1) Bullish.\n2) Body shortet than the previous candle.\n3) Shadows longer than the first candle. */\n\nif (name2Back === \"Green Candle\" || name2Back === \"Long Green Candle\" || name2Back === \"Opening Green Marubozu\" || name2Back === \"Closing Green Marubozu\" || name2Back === \"Green Marubozu\") {\n if (size2Back === \"Long\") {\n if (direction1Back === \"Bullish\" && (candle1Back.close - candle1Back.open) < (candle2Back.close - candle2Back.open) ) {\n if (basicCandle.direction === \"Bullish\" && (candle.close-candle.open) < (candle1Back.close - candle1Back.open) ) {\n variable.name = \"Advance Block\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n/* \"DELIBERATION\" properties:\n--First candle\n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu or Green Marubozu.\n--Second candle\n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu or Green Marubozu.\n2) Opening price is above the previous opening price.\n3) Closing price is above the previous closing price.\n--Third Candle \n1) Any following bullish basic candle: Short Green Candle or Green Spinning Top.\n2) Opening price is slightly lower or higher than the previous closing price.\n3) Closing price is above the previous closing price.\n4) Average size: Short. */\n\nif (name2Back === \"Green Candle\" || name2Back === \"Long Green Candle\" || name2Back === \"Opening Green Marubozu\" || name2Back === \"Closing Green Marubozu\" || name2Back === \"Green Marubozu\") {\n if (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\" || name1Back === \"Green Marubozu\") {\n if (candle1Back.open > candle2Back.open && candle1Back.close > candle2Back.close) {\n if (basicCandle.name === \"Short Green Candle\" || basicCandle.name === \"Green Spinning Top\") { \n if (basicCandle.size === \"Short\" && candle.close > candle1Back.close) {\n variable.name = \"Deliberation\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n }\n}\n\n/* \"IDENTICAL THREE CROWS\" properties:\n--First candle\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long.\n--Second candle\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long. \n3) Opening price at or near the prior close.\n--Third Candle\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long. \n3) Opening price at or near the prior close.*/\n\nif (name2Back === \"Red Candle\" || name2Back === \"Long Red Candle\" || name2Back === \"Red Marubozu\" || name2Back === \"Opening Red Marubozu\" || name2Back === \"Closing Red Marubozu\") {\n if (name1Back === \"Red Candle\" || name1Back === \"Long Red Candle\" || name1Back === \"Red Marubozu\" || name1Back === \"Opening Red Marubozu\" || name1Back === \"Closing Red Marubozu\") {\n if (basicCandle.name === \"Red Candle\" || basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\") {\n if (size2Back === \"Long\" && size1Back === \"Long\" && basicCandle.size === \"Long\") {\n variable.name = \"Identical Three Crows\"\n variable.forecast = \"Bulliish Reversal\"\n }\n }\n }\n}\n\n/* \"THREE INSIDE DOWN\" properties:\n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu or Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu or Red Spinning Top.\n2) Candle body is engulfed by the prior candle body.\n--Third Candle \n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu or Red Spinning Top.\n2) Closing price is below the previous closing price. */\n\nif (name2Back === \"Green Candle\" || name2Back === \"Long Green Candle\" || name2Back === \"Opening Green Marubozu\" || name2Back === \"Closing Green Marubozu\" || name2Back === \"Green Marubozu\") {\n if (size2Back === \"Long\") {\n if (name1Back === \"Red Candle\" || name1Back === \"Long Red Candle\" || name1Back === \"Red Marubozu\" || name1Back === \"Opening Red Marubozu\" || name1Back === \"Closing Red Marubozu\" || name1Back === \"Red Spinning Top\") {\n if (candle1Back.close > candle2Back.open) {\n if (basicCandle.name === \"Red Candle\" || basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\" || basicCandle.name === \"Red Spinning Top\") {\n variable.name = \"Three Inside Down\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n }\n}\n\n/* \"THREE OUTSIDE DOWN\" properties:\n1) Any bullish basic candle except \"Four-Price Doji\".\n--Second candle\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Candle's body engulfs the prior candle's body. \n3) Average size: Long.\n--Third Candle \n1) Any bearish basic candle except \"Four-Price Doji\".\n2) Closing price is below the previous closing price. */ \n\nif (direction2Back === \"Bullish\" && name2Back !== \"Four-Price Doji\") {\n if (name1Back === \"Red Candle\" || name1Back === \"Long Red Candle\" || name1Back === \"Red Marubozu\" || name1Back === \"Opening Red Marubozu\" || name1Back === \"Closing Red Marubozu\") {\n if (candle1Back.close < candle2Back.open && size1Back === \"Long\") {\n if (basicCandle.direction === \"Bearish\" && basicCandle.name !== \"Four-Price Doji\") {\n variable.name = \"Three Outside Down\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n} // Closing \"Bearish Reversal\" group\n\n//-------------------------------------------------------\n\n/* \"BULLISH CONTINUATION\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend2Back === \"Uptrend\") {\n\n\n\n} // Closing \"Bullish Continuation\" group\n \n//-------------------------------------------------------\n\n/* \"BULLISH REVERSAL\" group:\nThese patterns should appear during a downtrend*/\nif (trend2Back === \"Downtrend\") {\n\n/* \"THREE INSIDE UP\" properties:\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long.\n--Second candle\n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu, Green Marubozu or Green Spinning Top.\n2) Candle body is engulfed by the prior candle body.\n--Third Candle \n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu, Green Marubozu or Green Spinning Top.\n2) Closing price is above the previous closing price. */\n\nif (name2Back === \"Red Candle\" || name2Back === \"Long Red Candle\" || name2Back === \"Opening Red Marubozu\" || name2Back === \"Closing Red Marubozu\" || name2Back === \"Red Marubozu\") {\n if (size2Back === \"Long\") {\n if (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\" || name1Back === \"Green Spinning Top\") {\n if (candle1Back.close < candle2Back.open) {\n if (basicCandle.name === \"Green Candle\" || basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\" || basicCandle.name === \"Green Spinning Top\") {\n variable.name = \"Three Inside Up\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n }\n }\n}\n\n/* \"THREE OUTSIDE UP\" properties:\n1) Any bearish basic candle except \"Four-Price Doji\".\n--Second candle\n1) Any following bearish basic candle: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Candle's body engulfs the prior candle's body. \n3) Average size: Long.\n--Third Candle \n1) Any bullish basic candle except \"Four-Price Doji\".\n2) Closing price is above the previous closing price. */ \n\nif (direction2Back === \"Bearish\" && name2Back !== \"Four-Price Doji\") {\n if (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\") {\n if (candle1Back.close > candle2Back.open && size1Back === \"Long\") {\n if (basicCandle.direction === \"Bullish\" && basicCandle.name !== \"Four-Price Doji\") {\n variable.name = \"Three Outside Up\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n }\n}\n\n} // Closing \"Bullish Reversal\" group\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here all the variables that will be written in the records are defined \n// ----------------------------------------------------------------------------------------------------------------------------\n\nvariable.trend = trend2Back\nvariable.trendLine = oneCandlePattern.trendLine\nvariable.period = oneCandlePattern.period\nvariable.trendMethod = oneCandlePattern.trendMethod\nvariable.bearishArrowHead = candle.max*1.02\nvariable.bullishArrowHead = candle.min*0.98 \n\n} // Closing initial \"undefined\" avoid","project":"Superalgos","id":"e4b8fa10-e9de-48b2-871b-fd5bc2be8544","savedPayload":{"position":{"x":3258.2746750303595,"y":19835.936507406826},"targetPosition":{"x":3248.7687718987836,"y":19514.66850116454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a3ca00b1-8cb7-40f0-9d46-e86bcae26607","savedPayload":{"position":{"x":3248.7687718987836,"y":19514.66850116454},"targetPosition":{"x":3239.270048206079,"y":19193.486203585882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* Because of these patterns have three candles, the properties of the previous 2 candles are needed. */\nvariable.recordsBack = [ ] // The properties will be recorded in this array","project":"Superalgos","id":"69da8b87-1e7f-45f4-bd47-9a9b0a2057e0","savedPayload":{"position":{"x":2692.413096542212,"y":19531.4375811615},"targetPosition":{"x":2965.815024425043,"y":19362.48280216782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"20684141-89f4-4049-8130-5219f9934b94","savedPayload":{"position":{"x":2965.815024425043,"y":19362.48280216782},"targetPosition":{"x":3239.270048206079,"y":19193.486203585882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1193e656-0fce-4d39-8f46-316d51a8bb95","savedPayload":{"position":{"x":3239.270048206079,"y":19193.486203585882},"targetPosition":{"x":3543.251136774903,"y":18628.545261527746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1b6f79d8-d1ba-49e5-a808-42f71fba5657","savedPayload":{"position":{"x":3574.0323051051673,"y":18645.174397071834},"targetPosition":{"x":3378.784622502266,"y":18239.738406515746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Three-Candles Patterns","id":"acdb9c43-0859-42be-87b0-1a600cf513d4"}}}],"id":"254b4e7d-0ede-4208-8f0a-a486dd1a0faf","savedPayload":{"position":{"x":3378.784622502266,"y":18239.738406515746},"targetPosition":{"x":2928.784622502266,"y":18239.738406515746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"plotters":[{"type":"Plotter","name":"Candle Patterns","config":"{\n\"codeName\": \"Candle-Patterns\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Basic Candles","config":"{ \n\"codeName\": \"Basic-Candles\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Basic Candles","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Candle Min","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)/2\ny = record.previous.min","project":"Superalgos","id":"da43ce7b-c3af-49b7-a95c-025494c40a6e","savedPayload":{"position":{"x":3224.339810746169,"y":18066.09285340539},"targetPosition":{"x":3108.2740985463897,"y":18343.660919380185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"84c72ff6-fc9c-4869-bd8e-ea8404df0a0f","savedPayload":{"position":{"x":3108.2740985463897,"y":18343.660919380185},"targetPosition":{"x":2989.743897483906,"y":18626.71701292928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.min","project":"Superalgos","id":"ee2ef08b-7253-46c1-a087-49feaeae0bd9","savedPayload":{"position":{"x":3474.569663430513,"y":18257.925086273455},"targetPosition":{"x":3234.8474549024104,"y":18440.047454226187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b077cf02-7c54-4023-9182-4de81327ff35","savedPayload":{"position":{"x":3234.8474549024104,"y":18440.047454226187},"targetPosition":{"x":2989.743897483906,"y":18626.71701292928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2fe07cd8-53ed-4533-a747-05b3906b4755","savedPayload":{"position":{"x":3017.4142713211113,"y":18811.34435385075},"targetPosition":{"x":2752.3091741782973,"y":19154.58899893521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Mean Length","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)/2\ny = record.previous.min + record.previous.meanLength","project":"Superalgos","id":"c8b8a404-7746-458c-91a4-61d13114c824","savedPayload":{"position":{"x":3789.0393780043614,"y":18385.9339285127},"targetPosition":{"x":3464.4659419795025,"y":18673.10931625475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2b2ed3d9-a095-403e-8ed8-62f7e73e9f1c","savedPayload":{"position":{"x":3464.4659419795025,"y":18673.10931625475},"targetPosition":{"x":3140.092531282282,"y":18960.68047341169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.min + record.meanLength","project":"Superalgos","id":"372fd8b2-9346-4c0a-8465-cb4e2ece90bc","savedPayload":{"position":{"x":3989.842097125742,"y":18787.216471546242},"targetPosition":{"x":3565.0225702069856,"y":18874.041740612527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"628ac9f1-445b-4638-8fd5-aa62f6fd859c","savedPayload":{"position":{"x":3565.0225702069856,"y":18874.041740612527},"targetPosition":{"x":3140.092531282282,"y":18960.68047341169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"86515391-e909-4183-a0bb-2f6b6d452087","savedPayload":{"position":{"x":3140.383792480221,"y":18960.369372117664},"targetPosition":{"x":2752.3091741782973,"y":19154.58899893521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"avgRef","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)/2\ny = record.previous.min + record.previous.avgRef","project":"Superalgos","id":"a231e15f-f884-4326-983c-001a812d2e08","savedPayload":{"position":{"x":3694.16531194211,"y":18694.203971131825},"targetPosition":{"x":3404.9509945914288,"y":18775.333017529032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"41fec509-9af9-4ef7-b947-90382ad5ee5d","savedPayload":{"position":{"x":3404.9509945914288,"y":18775.333017529032},"targetPosition":{"x":3106.2314933687667,"y":18860.09024923567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.min + record.avgRef","project":"Superalgos","id":"69d5c95c-ec98-4656-9057-54ab9fc64a1e","savedPayload":{"position":{"x":3704.1656952582307,"y":18996.2017323469},"targetPosition":{"x":3404.8182784720557,"y":18935.511211889676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9703549c-8ca6-4293-b4ec-83a4f899c806","savedPayload":{"position":{"x":3404.8182784720557,"y":18935.511211889676},"targetPosition":{"x":3106.2314933687667,"y":18860.09024923567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3fe2df6a-c2fe-4f66-8529-c959ba7dd010","savedPayload":{"position":{"x":3186.275332944584,"y":19148.00891042361},"targetPosition":{"x":2752.3091741782973,"y":19154.58899893521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Candle Min","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.4,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"e19cb185-a1ae-4595-b22f-825aabca3f15","savedPayload":{"position":{"x":4013.3832217761355,"y":19372.288738743868},"targetPosition":{"x":3580.05833729394,"y":19354.397964258522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"0c47d43f-28d6-4e22-bcab-ce1a5ba86b13","savedPayload":{"position":{"x":3580.05833729394,"y":19354.397964258522},"targetPosition":{"x":3146.5074321162247,"y":19336.786001080854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"aeb3daf8-939c-472d-a653-bb053b201626","savedPayload":{"position":{"x":3540.3237881457353,"y":19519.037120292287},"targetPosition":{"x":3146.5074321162247,"y":19336.786001080854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"84c72ff6-fc9c-4869-bd8e-ea8404df0a0f"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"cf9cdbd9-6a4d-4958-906f-555616617a31","savedPayload":{"position":{"x":3456.072331929103,"y":19633.313111001436},"targetPosition":{"x":3146.5074321162247,"y":19336.786001080854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"b077cf02-7c54-4023-9182-4de81327ff35"}}}],"id":"0e718fe1-b457-49b9-a1cd-118bd9f111f4","savedPayload":{"position":{"x":3146.5074321162247,"y":19336.786001080854},"targetPosition":{"x":2752.3091741782973,"y":19154.58899893521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Mean Length","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.4,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"51351071-cd12-48d6-aa76-8755bd6322b4","savedPayload":{"position":{"x":3781.057188158209,"y":19920.284927464694},"targetPosition":{"x":3398.4394046001344,"y":19716.222880712943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8487ed2a-b56a-4d41-895c-569bf127fedc","savedPayload":{"position":{"x":3398.4394046001344,"y":19716.222880712943},"targetPosition":{"x":3031.077500069283,"y":19489.372737950747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"4db28f87-f9dd-4420-87bc-d210699f8a01","savedPayload":{"position":{"x":3306.7091755733545,"y":19824.703324756287},"targetPosition":{"x":3031.077500069283,"y":19489.372737950747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"2b2ed3d9-a095-403e-8ed8-62f7e73e9f1c"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"a4fa988d-7488-4bf4-90f9-2ee6fd939475","savedPayload":{"position":{"x":3179.602605602917,"y":19893.734073694017},"targetPosition":{"x":3031.077500069283,"y":19489.372737950747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"628ac9f1-445b-4638-8fd5-aa62f6fd859c"}}}],"id":"32840d7a-c3be-4c5c-8604-ddec41903a8e","savedPayload":{"position":{"x":3031.077500069283,"y":19489.372737950747},"targetPosition":{"x":2752.3091741782973,"y":19154.58899893521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"avgRef","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.4,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","project":"Superalgos","id":"dc036a39-a0d7-43f5-ae0a-f49f80566f35","savedPayload":{"position":{"x":3344.6927878107217,"y":20287.938268319842},"targetPosition":{"x":3088.525795221851,"y":19937.867215200873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"332c16f9-b95f-4a5d-a0a7-825adec7b190","savedPayload":{"position":{"x":3088.525795221851,"y":19937.867215200873},"targetPosition":{"x":2854.636673442521,"y":19576.71832846637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"6df63fd0-62c4-49d9-aa62-43e4ebb9e2a3","savedPayload":{"position":{"x":2957.137120213716,"y":19998.52791081622},"targetPosition":{"x":2854.636673442521,"y":19576.71832846637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"41fec509-9af9-4ef7-b947-90382ad5ee5d"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"66870fcb-caf4-4e03-9db2-4f7fc0f8cae2","savedPayload":{"position":{"x":2788.400712830722,"y":20005.80926218142},"targetPosition":{"x":2854.636673442521,"y":19576.71832846637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"9703549c-8ca6-4293-b4ec-83a4f899c806"}}}],"id":"b504d259-c93f-4dfa-af0f-ffc23b3e616d","savedPayload":{"position":{"x":2854.636673442521,"y":19576.71832846637},"targetPosition":{"x":2752.3091741782973,"y":19154.58899893521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"dc146044-78b9-46c7-8e91-47619c333444","savedPayload":{"position":{"x":2752.3091741782973,"y":19154.58899893521},"targetPosition":{"x":2328.0907190410617,"y":19064.787018629508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Basic Candles","config":"{ \n\"codeName\": \"Basic-Candles\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.name","project":"Superalgos","id":"b94b9d37-1552-4a01-b14b-4897feedd52f","savedPayload":{"position":{"x":3064.992134307644,"y":19060.123574952522},"targetPosition":{"x":2645.974111418096,"y":19174.198745397996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c416dd7-5075-49cc-b404-52fcca7a314c","savedPayload":{"position":{"x":2645.974111418096,"y":19174.198745397996},"targetPosition":{"x":2111.2757513842116,"y":19248.349291894905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.size","project":"Superalgos","id":"7ab67e86-30c4-4d4c-9048-156de658edaa","savedPayload":{"position":{"x":2932.1792242346746,"y":19510.00630562548},"targetPosition":{"x":2524.621875573481,"y":19378.665459485797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"84776c6f-6b89-4889-a119-f407ad30a39b","savedPayload":{"position":{"x":2524.621875573481,"y":19378.665459485797},"targetPosition":{"x":2111.2757513842116,"y":19248.349291894905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Upper Shadow %","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.upperShadowPercent","project":"Superalgos","id":"1515c038-a83d-4a33-803d-93f19df9d44f","savedPayload":{"position":{"x":2665.743200225137,"y":19915.178940332728},"targetPosition":{"x":2388.6246811440233,"y":19581.829521968906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5bfcb212-425e-481c-93ee-4ddfe0365d04","savedPayload":{"position":{"x":2388.6246811440233,"y":19581.829521968906},"targetPosition":{"x":2111.2757513842116,"y":19248.349291894905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Body %","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.bodyPercent","project":"Superalgos","id":"13fb74c6-4320-4755-b896-e3c15b507a8c","savedPayload":{"position":{"x":2217.6626321073145,"y":20109.588672897},"targetPosition":{"x":2164.4364453737326,"y":19679.068072411777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4787fdfa-a1b4-4252-be30-1c394ae28d23","savedPayload":{"position":{"x":2164.4364453737326,"y":19679.068072411777},"targetPosition":{"x":2111.2757513842116,"y":19248.349291894905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Lower Shadow %","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.lowerShadowPercent","project":"Superalgos","id":"621a0736-7286-407f-be3c-7f9237c1c4e6","savedPayload":{"position":{"x":1735.7871207121698,"y":20030.675867695973},"targetPosition":{"x":1923.453769724576,"y":19639.6149160824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"10570ba3-e68c-4aa0-83b9-daed46a61cee","savedPayload":{"position":{"x":1923.453769724576,"y":19639.6149160824},"targetPosition":{"x":2111.2757513842116,"y":19248.349291894905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Parameter: \"Nbodies\"","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.Nbodies","project":"Superalgos","id":"1ae2288d-9479-410d-9243-21430691060b","savedPayload":{"position":{"x":1372.431977043334,"y":19703.461291186337},"targetPosition":{"x":1741.7463279676067,"y":19475.979291881966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"34f62235-4353-4f23-8630-841fbee8665b","savedPayload":{"position":{"x":1741.7463279676067,"y":19475.979291881966},"targetPosition":{"x":2111.2757513842116,"y":19248.349291894905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Parameter: \"dojiFactor\" %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.dojiFactor","project":"Superalgos","id":"165f2a72-3eac-4740-8445-c9aa133e0ae4","savedPayload":{"position":{"x":1243.5738955116867,"y":19232.437105003395},"targetPosition":{"x":1677.3247072111735,"y":19240.40349000022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8fe17343-1ae4-4ba8-990a-bfe78872d998","savedPayload":{"position":{"x":1677.3247072111735,"y":19240.40349000022},"targetPosition":{"x":2111.2757513842116,"y":19248.349291894905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Parameter: \"sizeFactor\" %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFactor","project":"Superalgos","id":"6d9b3c35-1b25-46fb-8b16-ad551cf53493","savedPayload":{"position":{"x":1445.2886934898543,"y":18792.994619102887},"targetPosition":{"x":1750.6645036768023,"y":19007.14598342125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c2bd7cb-ea2a-48fe-9328-6e7cf397abe5","savedPayload":{"position":{"x":1750.6645036768023,"y":19007.14598342125},"targetPosition":{"x":2111.2757513842116,"y":19248.349291894905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Parameter: \"Nlengths\"","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.Nlengths","project":"Superalgos","id":"42a0f840-7b6f-4e38-ac13-442a40767d70","savedPayload":{"position":{"x":1765.5920550013343,"y":18452.79740026814},"targetPosition":{"x":1938.4315627863234,"y":18850.512730455863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"26d5e8b8-22fc-40fc-bb28-c3d5272845d0","savedPayload":{"position":{"x":1938.4315627863234,"y":18850.512730455863},"targetPosition":{"x":2111.2757513842116,"y":19248.349291894905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Average Size Method","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeMethod","project":"Superalgos","id":"867e57e7-6fc8-4e52-834d-f20f077f37fd","savedPayload":{"position":{"x":2216.0569970031465,"y":18334.56991999282},"targetPosition":{"x":2146.6869605550946,"y":18763.27017896996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"87d0bb1d-c8e2-47a6-85cc-4e747082305f","savedPayload":{"position":{"x":2146.6869605550946,"y":18763.27017896996},"targetPosition":{"x":2111.2757513842116,"y":19248.349291894905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7e6dc8b6-bdeb-4f1a-bf39-a239fa100200","savedPayload":{"position":{"x":2111.2757513842116,"y":19248.349291894905},"targetPosition":{"x":2328.0907190410617,"y":19064.787018629508},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"09e0a24c-ead1-40c6-9e43-72b46e4294c5","savedPayload":{"position":{"x":2514.2789220500163,"y":18810.258336358525},"targetPosition":{"x":2329.1552773955063,"y":18239.74204132476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"One-Candle Patterns","config":"{ \n\"codeName\": \"One-Candle-Patterns\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"One-Candle Pattern","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Bearish Arrow","project":"Superalgos","points":[{"type":"Point","name":"-1-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"e175ab11-cdad-4cfa-bc0e-e9d68fd56419","savedPayload":{"position":{"x":3080.8449301094734,"y":18746.352422980795},"targetPosition":{"x":2867.192448127458,"y":18981.700545824435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f0e4b32d-4c67-44a9-b215-46dd2de99095","savedPayload":{"position":{"x":2867.192448127458,"y":18981.700545824435},"targetPosition":{"x":2440.494091922381,"y":19452.123905385513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"ad0cc3d5-6a7a-45ac-b7db-41438836230c","savedPayload":{"position":{"x":3302.756198451276,"y":19045.48227567612},"targetPosition":{"x":3014.9586219710072,"y":19180.865349185882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"23dc1c78-a55d-482c-be5b-f6893e5294c7","savedPayload":{"position":{"x":3014.9586219710072,"y":19180.865349185882},"targetPosition":{"x":2440.494091922381,"y":19452.123905385513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.03","project":"Superalgos","id":"16686f17-868b-406b-a3ab-f4e9dbc8a002","savedPayload":{"position":{"x":3393.481687658881,"y":19406.212262641275},"targetPosition":{"x":3075.621361155667,"y":19421.38751332956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2c9565a9-49d5-4f04-91ad-a073ff669a46","savedPayload":{"position":{"x":3075.621361155667,"y":19421.38751332956},"targetPosition":{"x":2440.494091922381,"y":19452.123905385513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.03","project":"Superalgos","id":"1c6a13b5-d22c-4c2f-b692-a387651394ab","savedPayload":{"position":{"x":3338.101565844816,"y":19773.766967852527},"targetPosition":{"x":3038.5214096448362,"y":19666.4003294984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fe68b37d-0bf8-4347-9e38-4013fa120bc8","savedPayload":{"position":{"x":3038.5214096448362,"y":19666.4003294984},"targetPosition":{"x":2440.494091922381,"y":19452.123905385513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"7de429ac-d43c-4d1f-970a-69cfdcbc1fcc","savedPayload":{"position":{"x":3146.7507593779446,"y":20093.10491765014},"targetPosition":{"x":2911.103971327855,"y":19879.111574348302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a4e0461d-4d13-4a01-9332-3fd94aa6647a","savedPayload":{"position":{"x":2911.103971327855,"y":19879.111574348302},"targetPosition":{"x":2440.494091922381,"y":19452.123905385513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"e156a730-1cf6-40a2-8272-8ba1ff8534a7","savedPayload":{"position":{"x":2847.504911126409,"y":20314.510612767343},"targetPosition":{"x":2711.6588493404197,"y":20026.84675988325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7b205c46-8dc6-4e0b-bca6-258a84c652c5","savedPayload":{"position":{"x":2711.6588493404197,"y":20026.84675988325},"targetPosition":{"x":2440.494091922381,"y":19452.123905385513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bearishArrowHead","project":"Superalgos","id":"459bad82-6540-43d3-8c3c-73b119d4dfed","savedPayload":{"position":{"x":2486.1439746701617,"y":20404.88499446093},"targetPosition":{"x":2471.050898579473,"y":20086.86540205742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"71bbdced-dc17-4019-a104-c37bd0ecdc98","savedPayload":{"position":{"x":2471.050898579473,"y":20086.86540205742},"targetPosition":{"x":2440.494091922381,"y":19452.123905385513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fccdf048-5edb-4377-9f0e-27a4c21e21f1","savedPayload":{"position":{"x":2468.729377774256,"y":19383.163540792295},"targetPosition":{"x":1904.319882070864,"y":19180.678163456185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Trend Line","project":"Superalgos","points":[{"type":"Point","name":"Trend Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.trendLine\n","project":"Superalgos","id":"1b000a16-4143-4eb2-8b9c-9661ddad10ed","savedPayload":{"position":{"x":2678.5524092125706,"y":19634.00689373895},"targetPosition":{"x":2371.939021173617,"y":19549.25122019482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a20e46e-5535-4cb4-b34a-36faec96f4da","savedPayload":{"position":{"x":2371.939021173617,"y":19549.25122019482},"targetPosition":{"x":2065.498034888511,"y":19464.270163342197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Trend Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.trendLine","project":"Superalgos","id":"f159d45c-483e-4c46-b6ef-b1cd92d00cb7","savedPayload":{"position":{"x":2225.5647753152516,"y":20080.337715796893},"targetPosition":{"x":2145.634134277254,"y":19772.207931816487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"58992b77-271b-4362-b130-251d65d8be55","savedPayload":{"position":{"x":2145.634134277254,"y":19772.207931816487},"targetPosition":{"x":2065.498034888511,"y":19464.270163342197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"edfd4367-c042-4fa0-8f77-31c218fc8d78","savedPayload":{"position":{"x":2120.2190763748877,"y":19400.096234833734},"targetPosition":{"x":1904.319882070864,"y":19180.678163456185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Bullish Arrow","project":"Superalgos","points":[{"type":"Point","name":"-1-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"fba54222-55a5-437d-92aa-756f08eecdb5","savedPayload":{"position":{"x":2999.412567559135,"y":19899.032294002413},"targetPosition":{"x":2681.9701834259977,"y":19879.026095805973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e8aef2aa-6d0c-42f5-82a4-7c37a157c8de","savedPayload":{"position":{"x":2681.9701834259977,"y":19879.026095805973},"targetPosition":{"x":2047.8706195696213,"y":19838.748239626057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"187b028b-4696-4003-90a1-b5beb8ea2ba3","savedPayload":{"position":{"x":2903.9571137125095,"y":20258.872793327308},"targetPosition":{"x":2618.2030164252683,"y":20118.54612774904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b834103f-86be-4106-ac3c-47b326cd97b4","savedPayload":{"position":{"x":2618.2030164252683,"y":20118.54612774904},"targetPosition":{"x":2047.8706195696213,"y":19838.748239626057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.97","project":"Superalgos","id":"e51d81db-649a-4b1b-8aad-ed2f24a9affa","savedPayload":{"position":{"x":2677.939859033446,"y":20554.5275394061},"targetPosition":{"x":2467.717629575909,"y":20315.606213759795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"54a1db25-bb24-4ef9-bcbd-1432848214fd","savedPayload":{"position":{"x":2467.717629575909,"y":20315.606213759795},"targetPosition":{"x":2047.8706195696213,"y":19838.748239626057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.97","project":"Superalgos","id":"bb33e4b3-dea3-40d4-89d6-4621df7a0ae0","savedPayload":{"position":{"x":2355.991520902866,"y":20741.420421467054},"targetPosition":{"x":2253.303182385527,"y":20440.284648501744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"800f7290-42e1-4970-a00c-f4a5cd30312b","savedPayload":{"position":{"x":2253.303182385527,"y":20440.284648501744},"targetPosition":{"x":2047.8706195696213,"y":19838.748239626057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"a09fda1a-0f15-45d2-92ae-e780435c819e","savedPayload":{"position":{"x":1987.5102180693102,"y":20790.88196958961},"targetPosition":{"x":2007.5409036627789,"y":20473.08229622266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4a83e816-d5a4-47f0-a30e-3f5e5320147e","savedPayload":{"position":{"x":2007.5409036627789,"y":20473.08229622266},"targetPosition":{"x":2047.8706195696213,"y":19838.748239626057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"1b3b0d03-bef2-4f05-9460-19227819c39b","savedPayload":{"position":{"x":1627.6078749458138,"y":20694.85680047352},"targetPosition":{"x":1767.851751856746,"y":20409.279505967876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c6806791-bd74-413b-b86c-61383118cba6","savedPayload":{"position":{"x":1767.851751856746,"y":20409.279505967876},"targetPosition":{"x":2047.8706195696213,"y":19838.748239626057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bullishArrowHead","project":"Superalgos","id":"931a9f64-7ec8-44a9-8555-6d03477940f2","savedPayload":{"position":{"x":1332.0058008190244,"y":20468.62831970925},"targetPosition":{"x":1570.9393303684374,"y":20258.574544207513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2f37b7be-5805-419d-a0a8-3e2fc5eb9e3b","savedPayload":{"position":{"x":1570.9393303684374,"y":20258.574544207513},"targetPosition":{"x":2047.8706195696213,"y":19838.748239626057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2591fc95-5f9b-409c-8816-11a3dd6d8581","savedPayload":{"position":{"x":2098.092518179368,"y":19748.368088421616},"targetPosition":{"x":1904.319882070864,"y":19180.678163456185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Bearish Arrow","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bearish Reversal\" || record.forecast === \"Bearish Continuation\" ","project":"Superalgos","id":"c92a8076-d1cf-4879-88e2-16f89c878649","savedPayload":{"position":{"x":2350.9770800043334,"y":20119.752507833793},"targetPosition":{"x":1766.872390821074,"y":19869.41564486204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"921dec12-c29d-4656-8ea5-6e5fc7c92469","savedPayload":{"position":{"x":2501.905121399439,"y":20477.082067254778},"targetPosition":{"x":2256.745753999443,"y":20274.425998150866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"d7ca8665-bd27-421a-be79-e5b48c4ffd3f","savedPayload":{"position":{"x":2256.745753999443,"y":20274.425998150866},"targetPosition":{"x":1766.872390821074,"y":19869.41564486204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","project":"Superalgos","id":"2360af46-2b53-4cea-a26b-019107a4e4dc","savedPayload":{"position":{"x":2300.597744523391,"y":20659.78179312054},"targetPosition":{"x":2122.516414849004,"y":20396.0415923759},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1beaa578-f91e-4eb9-bcc9-4c979bc9a87c","savedPayload":{"position":{"x":2122.516414849004,"y":20396.0415923759},"targetPosition":{"x":1766.872390821074,"y":19869.41564486204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","project":"Superalgos","id":"6c20d736-5211-4bb1-836f-3ee460ba4f75","savedPayload":{"position":{"x":1832.214783814059,"y":20501.94120019898},"targetPosition":{"x":1766.872390821074,"y":19869.41564486204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"f0e4b32d-4c67-44a9-b215-46dd2de99095"}}},{"type":"Polygon Vertex","name":"-2-","project":"Superalgos","id":"7870b61d-7540-4f9e-9d57-bc8b54dab81d","savedPayload":{"position":{"x":1738.9541872117916,"y":20505.377905270125},"targetPosition":{"x":1766.872390821074,"y":19869.41564486204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"23dc1c78-a55d-482c-be5b-f6893e5294c7"}}},{"type":"Polygon Vertex","name":"-3-","project":"Superalgos","id":"666d3979-14ea-4753-8d79-36a17ace6f3b","savedPayload":{"position":{"x":1647.3398250125247,"y":20494.94813973253},"targetPosition":{"x":1766.872390821074,"y":19869.41564486204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"2c9565a9-49d5-4f04-91ad-a073ff669a46"}}},{"type":"Polygon Vertex","name":"-4-","project":"Superalgos","id":"58596c8a-eab1-4926-a006-4c287afd7096","savedPayload":{"position":{"x":1558.7581009651767,"y":20471.43853722881},"targetPosition":{"x":1766.872390821074,"y":19869.41564486204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"fe68b37d-0bf8-4347-9e38-4013fa120bc8"}}},{"type":"Polygon Vertex","name":"-5-","project":"Superalgos","id":"e6073465-7636-48b1-8344-5e82a314ac1d","savedPayload":{"position":{"x":1474.746583144315,"y":20435.517123066646},"targetPosition":{"x":1766.872390821074,"y":19869.41564486204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"a4e0461d-4d13-4a01-9332-3fd94aa6647a"}}},{"type":"Polygon Vertex","name":"-6-","project":"Superalgos","id":"87a3f44c-5361-4e65-a9f3-1c5a461600b0","savedPayload":{"position":{"x":1396.8724749228968,"y":20387.996008736984},"targetPosition":{"x":1766.872390821074,"y":19869.41564486204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"7b205c46-8dc6-4e0b-bca6-258a84c652c5"}}},{"type":"Polygon Vertex","name":"-7-","project":"Superalgos","id":"dcd75a74-5275-4181-8801-8bb625ab2545","savedPayload":{"position":{"x":1319.5782461135022,"y":20322.0766452818},"targetPosition":{"x":1766.872390821074,"y":19869.41564486204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"71bbdced-dc17-4019-a104-c37bd0ecdc98"}}}],"id":"d503108f-9b4f-4aae-9e99-b92e1aedb6c8","savedPayload":{"position":{"x":1832.6575089898834,"y":19777.02591209868},"targetPosition":{"x":1904.319882070864,"y":19180.678163456185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Trend Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"8b777f5a-b79e-45c5-ae85-3693d946b577","savedPayload":{"position":{"x":1869.853171656414,"y":20099.63718397527},"targetPosition":{"x":1806.0323727179748,"y":19806.442496787102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9ec3107b-2173-46b2-b831-7144910bd2ed","savedPayload":{"position":{"x":1806.0323727179748,"y":19806.442496787102},"targetPosition":{"x":1756.0359408061304,"y":19455.13752574431},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Trend Line End","project":"Superalgos","id":"66cee7f2-7951-4c23-84d9-8af01e017f34","savedPayload":{"position":{"x":1561.8831096034519,"y":19759.237933852222},"targetPosition":{"x":1756.0359408061304,"y":19455.13752574431},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line End","id":"58992b77-271b-4362-b130-251d65d8be55"}}},{"type":"Polygon Vertex","name":"Trend Line Begin","project":"Superalgos","id":"968f315d-33e1-4866-b061-42fb61964ad6","savedPayload":{"position":{"x":1406.8497611531275,"y":19543.11831407684},"targetPosition":{"x":1756.0359408061304,"y":19455.13752574431},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line Begin","id":"0a20e46e-5535-4cb4-b34a-36faec96f4da"}}}],"id":"2e0fe089-4dae-4895-b46b-4f5e07ac9926","savedPayload":{"position":{"x":1738.3877277845168,"y":19440.51804634741},"targetPosition":{"x":1904.319882070864,"y":19180.678163456185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Bullish Arrow","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bullish Reversal\" || record.forecast === \"Bullish Continuation\" ","project":"Superalgos","id":"e32f5ba5-7e4e-4b48-9255-985134b35bf6","savedPayload":{"position":{"x":1471.6957260684503,"y":20186.904119974984},"targetPosition":{"x":1301.0222865494725,"y":19572.881379809005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"dc4c1077-65c7-4b76-8420-ea719c497798","savedPayload":{"position":{"x":1287.1566181025773,"y":20528.443882008352},"targetPosition":{"x":1291.1073148502146,"y":20208.64155547604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8f42597b-9b13-46a3-b926-bf79570f27eb","savedPayload":{"position":{"x":1291.1073148502146,"y":20208.64155547604},"targetPosition":{"x":1301.0222865494725,"y":19572.881379809005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","project":"Superalgos","id":"97b28c5b-f7c8-41d4-82a7-2db8fe1bd533","savedPayload":{"position":{"x":1015.9337099747281,"y":20485.64531791023},"targetPosition":{"x":1111.283076602438,"y":20181.030283687556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"fc855e6f-bb88-485d-8079-99653a800a36","savedPayload":{"position":{"x":1111.283076602438,"y":20181.030283687556},"targetPosition":{"x":1301.0222865494725,"y":19572.881379809005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","project":"Superalgos","id":"6f1e0d8e-a1a7-4fc7-ab01-d2e4d5cb0807","savedPayload":{"position":{"x":846.039044048026,"y":20017.94181492224},"targetPosition":{"x":1301.0222865494725,"y":19572.881379809005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"e8aef2aa-6d0c-42f5-82a4-7c37a157c8de"}}},{"type":"Polygon Vertex","name":"-2-","project":"Superalgos","id":"7bff821f-bb70-4a9f-89b9-74bd1dcde01f","savedPayload":{"position":{"x":784.8170995781256,"y":19946.73815891691},"targetPosition":{"x":1301.0222865494725,"y":19572.881379809005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"b834103f-86be-4106-ac3c-47b326cd97b4"}}},{"type":"Polygon Vertex","name":"-3-","project":"Superalgos","id":"e14aa3b8-ed10-4358-87db-81d0f2fd580c","savedPayload":{"position":{"x":734.3937745412113,"y":19869.00175603716},"targetPosition":{"x":1301.0222865494725,"y":19572.881379809005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"54a1db25-bb24-4ef9-bcbd-1432848214fd"}}},{"type":"Polygon Vertex","name":"-4-","project":"Superalgos","id":"fa285436-8897-49fa-81bf-bcf727e368de","savedPayload":{"position":{"x":696.0585924480438,"y":19785.29825439155},"targetPosition":{"x":1301.0222865494725,"y":19572.881379809005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"800f7290-42e1-4970-a00c-f4a5cd30312b"}}},{"type":"Polygon Vertex","name":"-5-","project":"Superalgos","id":"cb9d9c29-9b41-42ba-bb6b-3e63dcbd253e","savedPayload":{"position":{"x":671.7308138341104,"y":19697.013607421773},"targetPosition":{"x":1301.0222865494725,"y":19572.881379809005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"4a83e816-d5a4-47f0-a30e-3f5e5320147e"}}},{"type":"Polygon Vertex","name":"-6-","project":"Superalgos","id":"56ccabba-f502-416d-92ff-da20ee90ddf3","savedPayload":{"position":{"x":662.7383136875033,"y":19606.371881746123},"targetPosition":{"x":1301.0222865494725,"y":19572.881379809005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"c6806791-bd74-413b-b86c-61383118cba6"}}},{"type":"Polygon Vertex","name":"-7-","project":"Superalgos","id":"688ebb45-45d7-4e2a-bfbc-f0bb799b2360","savedPayload":{"position":{"x":667.1931005166225,"y":19504.836576323876},"targetPosition":{"x":1301.0222865494725,"y":19572.881379809005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"2f37b7be-5805-419d-a0a8-3e2fc5eb9e3b"}}}],"id":"2cd7982f-ecc8-41ce-8b27-ede1d1ad7d8c","savedPayload":{"position":{"x":1393.3879915113357,"y":19496.397325469276},"targetPosition":{"x":1904.319882070864,"y":19180.678163456185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"0a02f148-0036-4d1c-aac5-a4e4ee5c25e7","savedPayload":{"position":{"x":1904.3472109186077,"y":19180.85809022492},"targetPosition":{"x":1841.8165061507789,"y":18584.032417983835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"One-Candle Patterns","config":"{ \n\"codeName\": \"One-Candle-Patterns\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Pattern Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.name","project":"Superalgos","id":"664bc7e8-5c76-4dea-82ad-acef43eaa2da","savedPayload":{"position":{"x":1617.2992773611513,"y":19054.655161558156},"targetPosition":{"x":1541.725611951988,"y":18763.77367310407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"119aa231-cf07-40a8-98ee-679e8d4e99ce","savedPayload":{"position":{"x":1541.725611951988,"y":18763.77367310407},"targetPosition":{"x":1519.7744713517714,"y":18440.997313279913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Direction","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trend","project":"Superalgos","id":"d4102f27-72a7-412c-b9b4-244e3ef5100d","savedPayload":{"position":{"x":1159.319282441793,"y":18921.892184975106},"targetPosition":{"x":1339.3292881889174,"y":18681.41185242583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2409211c-7992-4b1a-8273-25ce7e284b72","savedPayload":{"position":{"x":1339.3292881889174,"y":18681.41185242583},"targetPosition":{"x":1519.7744713517714,"y":18440.997313279913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Forecast","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.forecast","project":"Superalgos","id":"19821933-d558-452e-9dc0-5df90116fcc1","savedPayload":{"position":{"x":919.1114024700837,"y":18458.831272457523},"targetPosition":{"x":1219.2161818569257,"y":18449.857733587392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e240fe07-156c-4766-8fe0-f123781842ef","savedPayload":{"position":{"x":1219.2161818569257,"y":18449.857733587392},"targetPosition":{"x":1519.7744713517714,"y":18440.997313279913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Method","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendMethod","project":"Superalgos","id":"7541dc87-d801-48bc-b2d8-391e605c0c5e","savedPayload":{"position":{"x":1131.1758950951407,"y":17982.83366789137},"targetPosition":{"x":1325.2611531029725,"y":18211.840454406403},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e0c328ed-84b7-43a2-bfb2-274d1b1d3bae","savedPayload":{"position":{"x":1325.2611531029725,"y":18211.840454406403},"targetPosition":{"x":1519.7744713517714,"y":18440.997313279913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Period","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","project":"Superalgos","id":"6b66e742-6d13-43d6-a00f-a6ed9d070249","savedPayload":{"position":{"x":1634.5538332617143,"y":17851.48271774591},"targetPosition":{"x":1577.2690905267955,"y":18146.234517687204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e457e54c-7cbb-4866-9b67-3bb71332e2c5","savedPayload":{"position":{"x":1577.2690905267955,"y":18146.234517687204},"targetPosition":{"x":1519.7744713517714,"y":18440.997313279913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Value","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendLine","project":"Superalgos","id":"e33fff96-c3f5-4376-8d90-4feafc0df08b","savedPayload":{"position":{"x":2040.3453152022958,"y":18103.08333606556},"targetPosition":{"x":1773.8205455644056,"y":18240.49665170587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"42d2f0eb-65fa-4358-af25-484517433307","savedPayload":{"position":{"x":1773.8205455644056,"y":18240.49665170587},"targetPosition":{"x":1519.7744713517714,"y":18440.997313279913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d2af80dc-8d17-42f3-b88a-af1726c59859","savedPayload":{"position":{"x":1519.7744713517714,"y":18440.997313279913},"targetPosition":{"x":1841.8165061507789,"y":18584.032417983835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"14f83391-e4a6-470c-90c0-19763f83429b","savedPayload":{"position":{"x":1843.8809875097704,"y":18592.094209473187},"targetPosition":{"x":2329.1552773955063,"y":18239.74204132476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Two-Candles Patterns","config":"{ \n\"codeName\": \"Two-Candles Patterns\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Two-Candles Patterns","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Bearish Arrow","project":"Superalgos","points":[{"type":"Point","name":"-1-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"7dc394b3-ca00-4738-a554-420b393aa4f8","savedPayload":{"position":{"x":2195.72664109528,"y":19098.49208088335},"targetPosition":{"x":1905.6107409976103,"y":18967.820911851388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7291f0d5-78e1-4d7c-a73d-2068e491344b","savedPayload":{"position":{"x":1905.6107409976103,"y":18967.820911851388},"targetPosition":{"x":1326.245476167238,"y":18707.12605254107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"cfdc25f2-f236-4fd0-a09c-11759c6a4e07","savedPayload":{"position":{"x":1979.6165060384847,"y":19401.476843512814},"targetPosition":{"x":1761.4221215259677,"y":19169.551964755992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"87745033-dc64-4d86-8579-29cf35124f9a","savedPayload":{"position":{"x":1761.4221215259677,"y":19169.551964755992},"targetPosition":{"x":1326.245476167238,"y":18707.12605254107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.04","project":"Superalgos","id":"f30d7904-2195-4bab-93d4-d5083000fe6b","savedPayload":{"position":{"x":1664.2344869467343,"y":19599.03123109803},"targetPosition":{"x":1551.520168497762,"y":19301.490499630032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"87fc7e3a-455f-49bb-ab44-fc06ba845f00","savedPayload":{"position":{"x":1551.520168497762,"y":19301.490499630032},"targetPosition":{"x":1326.245476167238,"y":18707.12605254107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.04","project":"Superalgos","id":"f29b34a0-8604-4cde-b52c-237a422ccb31","savedPayload":{"position":{"x":1297.802246042109,"y":19660.60125008331},"targetPosition":{"x":1307.257273112402,"y":19342.425865039393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2bab7192-a08c-4461-b36e-f369491dfd42","savedPayload":{"position":{"x":1307.257273112402,"y":19342.425865039393},"targetPosition":{"x":1326.245476167238,"y":18707.12605254107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"20df1362-6e33-45c3-bf48-c4a76035b428","savedPayload":{"position":{"x":935.0327412310944,"y":19577.03772812304},"targetPosition":{"x":1065.5586532910347,"y":19286.745337813474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3c9d80e6-ad20-4b47-a8f5-1bf19a0b80e2","savedPayload":{"position":{"x":1065.5586532910347,"y":19286.745337813474},"targetPosition":{"x":1326.245476167238,"y":18707.12605254107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"64a8c860-86c4-40da-9ca0-d5e424ade757","savedPayload":{"position":{"x":631.7888178401663,"y":19360.980236245126},"targetPosition":{"x":863.5695451237589,"y":19142.822813284918},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c6a0d716-6534-453b-9d0f-a8c6faa502f0","savedPayload":{"position":{"x":863.5695451237589,"y":19142.822813284918},"targetPosition":{"x":1326.245476167238,"y":18707.12605254107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bearishArrowHead","project":"Superalgos","id":"62fc84a0-55e5-452c-b72d-4c91174ea85a","savedPayload":{"position":{"x":434.43056831295326,"y":19045.20651584465},"targetPosition":{"x":732.0195430902495,"y":18932.42318977743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fef9ea3b-84c5-43cd-9602-96f8170065bd","savedPayload":{"position":{"x":732.0195430902495,"y":18932.42318977743},"targetPosition":{"x":1326.245476167238,"y":18707.12605254107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9020cd21-a011-4b59-aec4-56469a5ce79f","savedPayload":{"position":{"x":1327.4442603114512,"y":18671.595550300277},"targetPosition":{"x":1345.4501805427353,"y":18071.923229611886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Trend Line","project":"Superalgos","points":[{"type":"Point","name":"Trend Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.trendLine\n","project":"Superalgos","id":"aed6b5b4-e6e5-4e5c-a13b-1d707c93c15a","savedPayload":{"position":{"x":1227.5652980273262,"y":19012.75883673778},"targetPosition":{"x":1213.516360777041,"y":18694.384235986516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"691a374a-ab65-4dc5-b788-979162f87185","savedPayload":{"position":{"x":1213.516360777041,"y":18694.384235986516},"targetPosition":{"x":1198.8882449174125,"y":18354.283862231532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Trend Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.trendLine","project":"Superalgos","id":"9b3acde4-3360-4869-8685-c08922111bd5","savedPayload":{"position":{"x":643.6905502953996,"y":18709.29589503549},"targetPosition":{"x":911.949394997886,"y":18537.96603627632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1e2e8a50-8a93-4696-9ed7-f8ea1da75c5e","savedPayload":{"position":{"x":911.949394997886,"y":18537.96603627632},"targetPosition":{"x":1198.8882449174125,"y":18354.283862231532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7af63af8-4b52-4c71-b427-906a0eaa37d2","savedPayload":{"position":{"x":1206.9743846717793,"y":18338.578246681463},"targetPosition":{"x":1345.4501805427353,"y":18071.923229611886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Bullish Arrow","project":"Superalgos","points":[{"type":"Point","name":"-1-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"7cd5ae63-7c34-4ce3-84f9-8de0b14fbafa","savedPayload":{"position":{"x":1073.3572103759761,"y":19377.05671068657},"targetPosition":{"x":994.5700125922958,"y":19068.71943471399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"38b0018b-d162-492e-90b3-604efc79c16e","savedPayload":{"position":{"x":994.5700125922958,"y":19068.71943471399},"targetPosition":{"x":837.0664760030559,"y":18453.0787667015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"3221cc5c-76c7-4335-bc1c-a781c1c7a6f4","savedPayload":{"position":{"x":702.1667932272649,"y":19397.285041624935},"targetPosition":{"x":747.1569478760975,"y":19082.18198252445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"66a65473-db28-42bf-8491-3497a35cc42b","savedPayload":{"position":{"x":747.1569478760975,"y":19082.18198252445},"targetPosition":{"x":837.0664760030559,"y":18453.0787667015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.96","project":"Superalgos","id":"5dbc1498-0b47-48cd-a37c-1a4f19f6c788","savedPayload":{"position":{"x":350.9999846965475,"y":19273.672980317464},"targetPosition":{"x":513.1924812069992,"y":18999.828410030525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cb37189b-fdb7-4cd7-aa78-1dfd71c8e614","savedPayload":{"position":{"x":513.1924812069992,"y":18999.828410030525},"targetPosition":{"x":837.0664760030559,"y":18453.0787667015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.96","project":"Superalgos","id":"1bcf2a18-15b8-4a2c-b7b6-1167c00ff5e9","savedPayload":{"position":{"x":73.87651109374201,"y":19025.061291040198},"targetPosition":{"x":328.56347058618485,"y":18834.204730153688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"aae0a6cc-e05b-402f-800c-807df07b1f37","savedPayload":{"position":{"x":328.56347058618485,"y":18834.204730153688},"targetPosition":{"x":837.0664760030559,"y":18453.0787667015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"8011dcdd-1c27-4bcb-8ea6-3344573aa905","savedPayload":{"position":{"x":-87.02971477915708,"y":18689.351132284843},"targetPosition":{"x":221.36798116612772,"y":18610.54173930777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a5f609bd-7162-4155-8778-d085b000ef04","savedPayload":{"position":{"x":221.36798116612772,"y":18610.54173930777},"targetPosition":{"x":837.0664760030559,"y":18453.0787667015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"37fa781c-1480-47fd-a862-39894108dc46","savedPayload":{"position":{"x":-107.20335720301227,"y":18318.192597426554},"targetPosition":{"x":207.92243856209825,"y":18363.163524108608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6edd83d4-739a-4651-9204-2a0f617e1256","savedPayload":{"position":{"x":207.92243856209825,"y":18363.163524108608},"targetPosition":{"x":837.0664760030559,"y":18453.0787667015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bullishArrowHead","project":"Superalgos","id":"65f9907e-ab3a-4ef4-a902-b8204afc49d7","savedPayload":{"position":{"x":16.485140691034758,"y":17966.931490806888},"targetPosition":{"x":290.30659238481894,"y":18129.128864711212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b98d1777-f3a2-4bcc-8312-6d89d1c6662e","savedPayload":{"position":{"x":290.30659238481894,"y":18129.128864711212},"targetPosition":{"x":837.0664760030559,"y":18453.0787667015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20da6d05-3166-4ba2-bd3c-b21770ae1958","savedPayload":{"position":{"x":865.6282381004057,"y":18431.584406822403},"targetPosition":{"x":1345.4501805427353,"y":18071.923229611886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Bearish Arrow","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bearish Reversal\" || record.forecast === \"Bearish Continuation\" ","project":"Superalgos","id":"bebcd91f-d028-4d8c-bc25-317d19f1b955","savedPayload":{"position":{"x":661.2834255513189,"y":18828.17056430762},"targetPosition":{"x":719.931808182755,"y":18194.096037691634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"8d874a62-2e9c-43e9-9632-e93a7e25d8c3","savedPayload":{"position":{"x":369.8325358981965,"y":19081.677832442525},"targetPosition":{"x":485.8930762706477,"y":18785.182823911993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6e948385-96a4-40ba-b8db-eb11d079aad1","savedPayload":{"position":{"x":485.8930762706477,"y":18785.182823911993},"targetPosition":{"x":719.931808182755,"y":18194.096037691634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","project":"Superalgos","id":"65302767-1fb6-4a56-b981-4ca898e3fc1f","savedPayload":{"position":{"x":134.71663270572753,"y":18945.766972505262},"targetPosition":{"x":329.57896375685596,"y":18695.428763387565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6365634c-c753-4be1-9f4e-d81a88690b96","savedPayload":{"position":{"x":329.57896375685596,"y":18695.428763387565},"targetPosition":{"x":719.931808182755,"y":18194.096037691634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","project":"Superalgos","id":"952bb578-3cc3-4576-b7dd-a043f2b4d719","savedPayload":{"position":{"x":137.54595356950085,"y":18451.66451690792},"targetPosition":{"x":719.931808182755,"y":18194.096037691634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"7291f0d5-78e1-4d7c-a73d-2068e491344b"}}},{"type":"Polygon Vertex","name":"-2-","project":"Superalgos","id":"bc4ee454-7c2b-4808-a99c-002afae05d39","savedPayload":{"position":{"x":105.67634668296887,"y":18363.70208971497},"targetPosition":{"x":719.931808182755,"y":18194.096037691634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"87745033-dc64-4d86-8579-29cf35124f9a"}}},{"type":"Polygon Vertex","name":"-3-","project":"Superalgos","id":"6ad8a90c-4d6e-47ed-a4be-ae3a5684b26d","savedPayload":{"position":{"x":86.96060272565228,"y":18273.261845624096},"targetPosition":{"x":719.931808182755,"y":18194.096037691634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"87fc7e3a-455f-49bb-ab44-fc06ba845f00"}}},{"type":"Polygon Vertex","name":"-4-","project":"Superalgos","id":"a49d5c98-f797-45ec-832a-c89de61c5030","savedPayload":{"position":{"x":81.81793337247291,"y":18181.661462412732},"targetPosition":{"x":719.931808182755,"y":18194.096037691634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"2bab7192-a08c-4461-b36e-f369491dfd42"}}},{"type":"Polygon Vertex","name":"-5-","project":"Superalgos","id":"5ee4c947-de43-4212-adf9-28d28820da8e","savedPayload":{"position":{"x":89.92446734741316,"y":18090.590554997452},"targetPosition":{"x":719.931808182755,"y":18194.096037691634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"3c9d80e6-ad20-4b47-a8f5-1bf19a0b80e2"}}},{"type":"Polygon Vertex","name":"-6-","project":"Superalgos","id":"c6e490ea-bdfd-4738-84e7-dcd8e1078605","savedPayload":{"position":{"x":112.09773933554607,"y":18002.158412882738},"targetPosition":{"x":719.931808182755,"y":18194.096037691634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"c6a0d716-6534-453b-9d0f-a8c6faa502f0"}}},{"type":"Polygon Vertex","name":"-7-","project":"Superalgos","id":"2aaa39e8-be04-491e-862e-b1bb03c8d29d","savedPayload":{"position":{"x":150.95643524521438,"y":17908.260169596124},"targetPosition":{"x":719.931808182755,"y":18194.096037691634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"fef9ea3b-84c5-43cd-9602-96f8170065bd"}}}],"id":"49566c3d-5038-4737-a68a-4f1f99a53296","savedPayload":{"position":{"x":756.3254536113964,"y":18187.85352139228},"targetPosition":{"x":1345.4501805427353,"y":18071.923229611886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Trend Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"5d90400c-c680-452a-b5d6-dd01f3483a67","savedPayload":{"position":{"x":451.4061846807126,"y":18328.23916504679},"targetPosition":{"x":725.7402688206748,"y":18167.571085284675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6ab5c6b9-d4e4-4b61-a135-17bb3a0204cb","savedPayload":{"position":{"x":725.7402688206748,"y":18167.571085284675},"targetPosition":{"x":1037.158326324472,"y":17991.83786227524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Trend Line End","project":"Superalgos","id":"d99e5489-5977-4ca7-9d11-a65feaeb3e1e","savedPayload":{"position":{"x":683.7732727352886,"y":17899.872713256853},"targetPosition":{"x":1037.158326324472,"y":17991.83786227524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line End","id":"1e2e8a50-8a93-4696-9ed7-f8ea1da75c5e"}}},{"type":"Polygon Vertex","name":"Trend Line Begin","project":"Superalgos","id":"0f83b930-9073-41a5-a3e6-59ea6b3ebafd","savedPayload":{"position":{"x":842.5294567868368,"y":17728.278050186207},"targetPosition":{"x":1037.158326324472,"y":17991.83786227524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line Begin","id":"691a374a-ab65-4dc5-b788-979162f87185"}}}],"id":"f826e8bf-cc5c-4b7f-9d15-1fc6a45d7ced","savedPayload":{"position":{"x":1054.4513436660054,"y":17996.350325190193},"targetPosition":{"x":1345.4501805427353,"y":18071.923229611886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Bullish Arrow","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bullish Reversal\" || record.forecast === \"Bullish Continuation\" ","project":"Superalgos","id":"edbfaf8f-8507-4d7b-9057-353f9571e615","savedPayload":{"position":{"x":329.13999908540427,"y":18009.978642156617},"targetPosition":{"x":860.1654539481824,"y":17660.609212304094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"010c4131-393a-474e-98af-444ebfbb7a8d","savedPayload":{"position":{"x":-52.527714717980416,"y":17939.245254592694},"targetPosition":{"x":252.10025806643534,"y":17846.194207603803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"5f6e62fc-4d25-4af4-86df-ca18bdd1e897","savedPayload":{"position":{"x":252.10025806643534,"y":17846.194207603803},"targetPosition":{"x":860.1654539481824,"y":17660.609212304094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","project":"Superalgos","id":"51545ef3-4202-4f31-8746-908b4d04e273","savedPayload":{"position":{"x":-93.63968108287008,"y":17670.486842659964},"targetPosition":{"x":224.45348297978126,"y":17667.46176191518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"504af6cf-5682-4ec9-90f1-3b5ac174cb67","savedPayload":{"position":{"x":224.45348297978126,"y":17667.46176191518},"targetPosition":{"x":860.1654539481824,"y":17660.609212304094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","project":"Superalgos","id":"e9090bdf-ffe5-4031-89d1-3de33dec1105","savedPayload":{"position":{"x":296.2801960645811,"y":17366.73130950318},"targetPosition":{"x":860.1654539481824,"y":17660.609212304094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"38b0018b-d162-492e-90b3-604efc79c16e"}}},{"type":"Polygon Vertex","name":"-2-","project":"Superalgos","id":"4a190301-2d52-49ae-a061-9bb553ea1c0f","savedPayload":{"position":{"x":344.8492318946337,"y":17287.078638453677},"targetPosition":{"x":860.1654539481824,"y":17660.609212304094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"66a65473-db28-42bf-8491-3497a35cc42b"}}},{"type":"Polygon Vertex","name":"-3-","project":"Superalgos","id":"f5a0eaa5-7837-4d60-8040-37f4353e3b27","savedPayload":{"position":{"x":404.1682454237489,"y":17216.527092611956},"targetPosition":{"x":860.1654539481824,"y":17660.609212304094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"cb37189b-fdb7-4cd7-aa78-1dfd71c8e614"}}},{"type":"Polygon Vertex","name":"-4-","project":"Superalgos","id":"13577516-ccb2-469f-9d59-f5bc71c16e77","savedPayload":{"position":{"x":472.27708310617527,"y":17155.168760337583},"targetPosition":{"x":860.1654539481824,"y":17660.609212304094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"aae0a6cc-e05b-402f-800c-807df07b1f37"}}},{"type":"Polygon Vertex","name":"-5-","project":"Superalgos","id":"9884c89e-fbb3-4101-b19f-0522b933175c","savedPayload":{"position":{"x":548.4968740693221,"y":17104.7351514593},"targetPosition":{"x":860.1654539481824,"y":17660.609212304094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"a5f609bd-7162-4155-8778-d085b000ef04"}}},{"type":"Polygon Vertex","name":"-6-","project":"Superalgos","id":"a089c901-705c-4b1a-bf29-fca8669ad902","savedPayload":{"position":{"x":631.1625043962995,"y":17066.15834650045},"targetPosition":{"x":860.1654539481824,"y":17660.609212304094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"6edd83d4-739a-4651-9204-2a0f617e1256"}}},{"type":"Polygon Vertex","name":"-7-","project":"Superalgos","id":"6a3d330f-6852-4cb0-80fe-72c3bf02aa31","savedPayload":{"position":{"x":728.6627277636035,"y":17037.81912025545},"targetPosition":{"x":860.1654539481824,"y":17660.609212304094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"b98d1777-f3a2-4bcc-8312-6d89d1c6662e"}}}],"id":"ba0bcada-77c5-450e-a1fc-7708bcaca60b","savedPayload":{"position":{"x":887.3917500526622,"y":17683.795083610763},"targetPosition":{"x":1345.4501805427353,"y":18071.923229611886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"e0c63725-4cfb-4d1e-9b70-80343de2e9b3","savedPayload":{"position":{"x":1345.4501805427353,"y":18071.923229611886},"targetPosition":{"x":1841.6731826176947,"y":17877.711280918953},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Two-Candles Patterns","config":"{ \n\"codeName\": \"Two-Candles Patterns\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Pattern Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.name","project":"Superalgos","id":"6d2625d7-82c7-4186-95a7-8bfe0892446a","savedPayload":{"position":{"x":1397.660874241701,"y":17603.87077117183},"targetPosition":{"x":1650.8742931129782,"y":17442.59693000413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f5538abe-a9aa-42ad-9c30-798dc41ddb80","savedPayload":{"position":{"x":1650.8742931129782,"y":17442.59693000413},"targetPosition":{"x":1904.0952458130341,"y":17281.22234910908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Direction","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trend","project":"Superalgos","id":"7f273725-f758-4f3e-bc3a-d7d47f919c7a","savedPayload":{"position":{"x":1335.399782705088,"y":17086.862839363992},"targetPosition":{"x":1619.7147319711803,"y":17184.013459610185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2e819599-22c9-4acd-ac77-92f18b20cb61","savedPayload":{"position":{"x":1619.7147319711803,"y":17184.013459610185},"targetPosition":{"x":1904.0952458130341,"y":17281.22234910908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Forecast","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.forecast","project":"Superalgos","id":"43090bdd-e415-48e8-ba75-4b80d4f0aeee","savedPayload":{"position":{"x":1701.4913553769875,"y":16715.327054393056},"targetPosition":{"x":1802.7726813657573,"y":16998.21659527268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"39649444-cba8-41d2-bb32-064f43cf8df4","savedPayload":{"position":{"x":1802.7726813657573,"y":16998.21659527268},"targetPosition":{"x":1904.0952458130341,"y":17281.22234910908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Method","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendMethod","project":"Superalgos","id":"f7a45eca-7fe0-4837-b719-92e81fa0774d","savedPayload":{"position":{"x":2219.6409935016054,"y":16769.770218885817},"targetPosition":{"x":2061.872623168216,"y":17025.44698063584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6cb4eef6-735b-409a-92c4-fe2b2e1e82be","savedPayload":{"position":{"x":2061.872623168216,"y":17025.44698063584},"targetPosition":{"x":1904.0952458130341,"y":17281.22234910908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Period","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","project":"Superalgos","id":"75c3e3bd-c749-463d-bae4-296abf83f078","savedPayload":{"position":{"x":2500.3733972303125,"y":17209.058000630794},"targetPosition":{"x":2202.2428684448278,"y":17245.165380240378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4c31ec17-bf6c-4dfc-8f42-1e7fe7e77297","savedPayload":{"position":{"x":2202.2428684448278,"y":17245.165380240378},"targetPosition":{"x":1904.0952458130341,"y":17281.22234910908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Value","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendLine","project":"Superalgos","id":"d9e33fbf-8990-4363-b674-f1ec7f71bfcd","savedPayload":{"position":{"x":2331.110057389338,"y":17702.049492892656},"targetPosition":{"x":2117.8226198334523,"y":17491.616096790727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d4f75b19-1a90-48d8-b6fe-9f064505ae93","savedPayload":{"position":{"x":2117.8226198334523,"y":17491.616096790727},"targetPosition":{"x":1904.0952458130341,"y":17281.22234910908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6426039f-b3dc-443b-bf6a-faa1dd1e3f2c","savedPayload":{"position":{"x":1904.0952458130341,"y":17281.22234910908},"targetPosition":{"x":1841.6731826176947,"y":17877.711280918953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3bf46641-3478-41fd-8407-0af20e72f30b","savedPayload":{"position":{"x":1843.8696151958356,"y":17887.281390754717},"targetPosition":{"x":2329.1552773955063,"y":18239.74204132476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Three-Candles Patterns","config":"{ \n\"codeName\": \"Three-Candles Patterns\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Three-Candles Patterns","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Bearish Arrow","project":"Superalgos","points":[{"type":"Point","name":"-1-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"050fd307-0763-423f-b0a7-488f1e22b2f0","savedPayload":{"position":{"x":1438.584999638042,"y":18276.482026675305},"targetPosition":{"x":1471.2081640418546,"y":17978.026548014397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b20f834d-a9d0-419e-87ce-c9d56cdfe948","savedPayload":{"position":{"x":1471.2081640418546,"y":17978.026548014397},"targetPosition":{"x":1536.2398045217597,"y":17381.691539969077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"ea09a04d-33f3-430d-9210-b60a0d93accf","savedPayload":{"position":{"x":1103.5358620806546,"y":18171.06859505426},"targetPosition":{"x":1247.9856495697604,"y":17907.642583588684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d119f364-4c32-4605-afcb-025e62d32f20","savedPayload":{"position":{"x":1247.9856495697604,"y":17907.642583588684},"targetPosition":{"x":1536.2398045217597,"y":17381.691539969077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.05","project":"Superalgos","id":"c472d80d-ff4c-4bdf-af76-b8fb1c9dd3f5","savedPayload":{"position":{"x":834.3371290446739,"y":17945.41465891187},"targetPosition":{"x":1068.6061790830172,"y":17757.30421542917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0e94de71-51dc-4d00-81fc-db6a47af48e9","savedPayload":{"position":{"x":1068.6061790830172,"y":17757.30421542917},"targetPosition":{"x":1536.2398045217597,"y":17381.691539969077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.05","project":"Superalgos","id":"c851f754-5148-4d6c-abef-446f4dcbf95c","savedPayload":{"position":{"x":671.9481969281296,"y":17633.886593613548},"targetPosition":{"x":960.413047449405,"y":17549.760383879864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"54f3f9d8-a0fd-489b-a280-5791c92afe4a","savedPayload":{"position":{"x":960.413047449405,"y":17549.760383879864},"targetPosition":{"x":1536.2398045217597,"y":17381.691539969077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"305bea41-e179-499b-bff8-687f861b575a","savedPayload":{"position":{"x":641.1069484058207,"y":17284.523492929984},"targetPosition":{"x":939.8684479850526,"y":17316.907453628504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"75712c99-427f-4995-ad28-116f514f1b1d","savedPayload":{"position":{"x":939.8684479850526,"y":17316.907453628504},"targetPosition":{"x":1536.2398045217597,"y":17381.691539969077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"3fd2696f-e7e8-41f5-ae74-e757cb72b755","savedPayload":{"position":{"x":746.4860836831685,"y":16949.458446896315},"targetPosition":{"x":1010.0997692128476,"y":17093.67168556322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"32a9e24a-ecbb-4272-868f-8a2c1131d780","savedPayload":{"position":{"x":1010.0997692128476,"y":17093.67168556322},"targetPosition":{"x":1536.2398045217597,"y":17381.691539969077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bearishArrowHead","project":"Superalgos","id":"b02696af-5430-4311-a2b8-b7a69d5f085b","savedPayload":{"position":{"x":983.311085250567,"y":16691.17940760464},"targetPosition":{"x":1160.3232677802007,"y":16914.542770371852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"da13c2e7-5b21-44b3-98ef-e101a208cd82","savedPayload":{"position":{"x":1160.3232677802007,"y":16914.542770371852},"targetPosition":{"x":1536.2398045217597,"y":17381.691539969077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ed6c9b38-f0d8-49d8-b6e6-831ba4391e67","savedPayload":{"position":{"x":1535.7415711041212,"y":17381.576474508744},"targetPosition":{"x":2111.6505599584743,"y":17213.585655808856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Trend Line","project":"Superalgos","points":[{"type":"Point","name":"Trend Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.trendLine\n","project":"Superalgos","id":"8df901ad-9507-4c1b-aa66-e80e52142e64","savedPayload":{"position":{"x":1132.0839059168138,"y":17332.087952896174},"targetPosition":{"x":1431.492385562884,"y":17220.937965035147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f05e403b-b940-4007-be9d-517cd5f5b761","savedPayload":{"position":{"x":1431.492385562884,"y":17220.937965035147},"targetPosition":{"x":1750.1087910076967,"y":17102.505862344937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Trend Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.trendLine","project":"Superalgos","id":"c790f239-fe7c-488c-a22c-ea82c2ea43f3","savedPayload":{"position":{"x":1239.33819158388,"y":16684.492080641947},"targetPosition":{"x":1486.079237807673,"y":16886.954448277505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e185278f-a45c-43e3-8691-6252e48809cc","savedPayload":{"position":{"x":1486.079237807673,"y":16886.954448277505},"targetPosition":{"x":1750.1087910076967,"y":17102.505862344937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"30170318-2cab-4bb6-ad3b-362b5a25d245","savedPayload":{"position":{"x":1815.2208708074359,"y":17164.44594669901},"targetPosition":{"x":2111.6505599584743,"y":17213.585655808856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Bullish Arrow","project":"Superalgos","points":[{"type":"Point","name":"-1-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"91cd5c4e-6dc9-41f4-abba-e66c6d9c7c3e","savedPayload":{"position":{"x":738.0839349878697,"y":17299.01636558067},"targetPosition":{"x":1006.9869456204578,"y":17128.70387821366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a9852c0f-8ac8-4b9d-ac29-e8d8f29da720","savedPayload":{"position":{"x":1006.9869456204578,"y":17128.70387821366},"targetPosition":{"x":1543.7365820693922,"y":16788.61263110348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"99075b18-7979-4f15-915a-272a4debd949","savedPayload":{"position":{"x":603.960110312295,"y":16951.63262851615},"targetPosition":{"x":917.6592275137082,"y":16897.266298923445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bb29fdb8-abfe-4377-9063-6790f2eb8d8f","savedPayload":{"position":{"x":917.6592275137082,"y":16897.266298923445},"targetPosition":{"x":1543.7365820693922,"y":16788.61263110348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.94","project":"Superalgos","id":"9ab43674-72c8-4525-8697-49cbf37785e0","savedPayload":{"position":{"x":613.0889274399378,"y":16580.05449804568},"targetPosition":{"x":923.7266092055725,"y":16649.66997932559},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a46f8fdb-d00f-46f6-8ec9-3ef0166107ef","savedPayload":{"position":{"x":923.7266092055725,"y":16649.66997932559},"targetPosition":{"x":1543.7365820693922,"y":16788.61263110348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.94","project":"Superalgos","id":"cb153aae-7f46-4fbc-aa01-26f7193e8eaf","savedPayload":{"position":{"x":763.8269557166204,"y":16239.69627571295},"targetPosition":{"x":1024.173450096132,"y":16422.884547853933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2e60f4be-e8cc-4489-81f6-27fa3f61921b","savedPayload":{"position":{"x":1024.173450096132,"y":16422.884547853933},"targetPosition":{"x":1543.7365820693922,"y":16788.61263110348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"0b2f59a6-9de6-4ccd-81bc-28288491d705","savedPayload":{"position":{"x":1033.344096836241,"y":15982.95248836767},"targetPosition":{"x":1203.6421844258257,"y":16251.871096216133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1740e52b-986e-49cf-bb3f-c373200c4449","savedPayload":{"position":{"x":1203.6421844258257,"y":16251.871096216133},"targetPosition":{"x":1543.7365820693922,"y":16788.61263110348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"ee129388-9aec-4709-bf79-3a3b83fe769e","savedPayload":{"position":{"x":1380.601236882976,"y":15848.834740730377},"targetPosition":{"x":1435.0429790855997,"y":16162.440559758656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c8b169eb-6d38-41ab-bc48-e5a08c6f9f45","savedPayload":{"position":{"x":1435.0429790855997,"y":16162.440559758656},"targetPosition":{"x":1543.7365820693922,"y":16788.61263110348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bullishArrowHead","project":"Superalgos","id":"c58904a7-8615-4a27-bd74-1966b35e8924","savedPayload":{"position":{"x":1752.415527276673,"y":15857.958616991591},"targetPosition":{"x":1682.8357833984337,"y":16168.585406915927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f5cee1fe-b34d-47e5-8d4a-26061487b242","savedPayload":{"position":{"x":1682.8357833984337,"y":16168.585406915927},"targetPosition":{"x":1543.7365820693922,"y":16788.61263110348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b8b4b3de-a98c-4d32-a385-61a186871641","savedPayload":{"position":{"x":1620.973443872157,"y":16868.415124882762},"targetPosition":{"x":2111.6505599584743,"y":17213.585655808856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Bearish Arrow","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bearish Reversal\" || record.forecast === \"Bearish Continuation\" ","project":"Superalgos","id":"4db8acef-2d4b-4e56-b319-d32b145c4fc1","savedPayload":{"position":{"x":1234.4899699810194,"y":16822.015023925254},"targetPosition":{"x":1819.5197471983156,"y":16689.294495603644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"da54ef22-f928-44a9-ba54-ddc157d6e2fd","savedPayload":{"position":{"x":920.9315133275086,"y":16633.288126748255},"targetPosition":{"x":1220.8019692846392,"y":16651.912146765062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bd6aeeb9-f9ce-4289-84ee-b89e5bce37ed","savedPayload":{"position":{"x":1220.8019692846392,"y":16651.912146765062},"targetPosition":{"x":1819.5197471983156,"y":16689.294495603644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","project":"Superalgos","id":"e73e98ac-0abf-488c-88c7-5f218487754a","savedPayload":{"position":{"x":973.3032293621218,"y":16382.028948760024},"targetPosition":{"x":1255.6883000772032,"y":16484.548016798173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"871328e3-7832-4dc2-8758-72612387f556","savedPayload":{"position":{"x":1255.6883000772032,"y":16484.548016798173},"targetPosition":{"x":1819.5197471983156,"y":16689.294495603644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","project":"Superalgos","id":"bc05844f-b3a3-4f25-8688-b555ff25cd31","savedPayload":{"position":{"x":1416.412852009984,"y":16244.068357326323},"targetPosition":{"x":1819.5197471983156,"y":16689.294495603644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"b20f834d-a9d0-419e-87ce-c9d56cdfe948"}}},{"type":"Polygon Vertex","name":"-2-","project":"Superalgos","id":"a7f33d57-8a91-4bf6-a755-2f9572b02d0b","savedPayload":{"position":{"x":1486.5341366029024,"y":16188.234119485443},"targetPosition":{"x":1819.5197471983156,"y":16689.294495603644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"d119f364-4c32-4605-afcb-025e62d32f20"}}},{"type":"Polygon Vertex","name":"-3-","project":"Superalgos","id":"4f2d69c6-4919-44a1-b4f4-b11c4d07a8d5","savedPayload":{"position":{"x":1562.854115474831,"y":16144.723819739347},"targetPosition":{"x":1819.5197471983156,"y":16689.294495603644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"0e94de71-51dc-4d00-81fc-db6a47af48e9"}}},{"type":"Polygon Vertex","name":"-4-","project":"Superalgos","id":"cae92b34-1055-4413-8521-b00838b6b3a1","savedPayload":{"position":{"x":1643.9156341791168,"y":16113.237343966646},"targetPosition":{"x":1819.5197471983156,"y":16689.294495603644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"54f3f9d8-a0fd-489b-a280-5791c92afe4a"}}},{"type":"Polygon Vertex","name":"-5-","project":"Superalgos","id":"26a5fbf5-1e3c-49a3-a80e-89a38760a6ce","savedPayload":{"position":{"x":1728.247104850132,"y":16093.914079998383},"targetPosition":{"x":1819.5197471983156,"y":16689.294495603644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"75712c99-427f-4995-ad28-116f514f1b1d"}}},{"type":"Polygon Vertex","name":"-6-","project":"Superalgos","id":"85dd4fe1-e267-4e2c-8249-e5a4ad8ac57b","savedPayload":{"position":{"x":1814.2565332601844,"y":16086.941641914495},"targetPosition":{"x":1819.5197471983156,"y":16689.294495603644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"32a9e24a-ecbb-4272-868f-8a2c1131d780"}}},{"type":"Polygon Vertex","name":"-7-","project":"Superalgos","id":"0b35f295-6655-45ea-8050-3ea4d565b0a8","savedPayload":{"position":{"x":1915.3018685780808,"y":16095.780904560012},"targetPosition":{"x":1819.5197471983156,"y":16689.294495603644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"da13c2e7-5b21-44b3-98ef-e101a208cd82"}}}],"id":"d6bca38f-dad2-4bad-b869-718840793911","savedPayload":{"position":{"x":1819.203720716232,"y":16688.956454351835},"targetPosition":{"x":2111.6505599584743,"y":17213.585655808856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Trend Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"735def02-7235-4d8d-b742-2606e271785c","savedPayload":{"position":{"x":1549.3936577691275,"y":16371.78585000826},"targetPosition":{"x":1787.251934452026,"y":16582.647155681487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1cb25c02-7f14-4290-a1dd-cdecfa3d41f1","savedPayload":{"position":{"x":1787.251934452026,"y":16582.647155681487},"targetPosition":{"x":2043.8061772920373,"y":16836.457512059205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Trend Line End","project":"Superalgos","id":"ca4b7aaa-e204-477b-917d-5b0d73dcd9ae","savedPayload":{"position":{"x":2021.884580794107,"y":16472.243897089895},"targetPosition":{"x":2043.8061772920373,"y":16836.457512059205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line End","id":"e185278f-a45c-43e3-8691-6252e48809cc"}}},{"type":"Polygon Vertex","name":"Trend Line Begin","project":"Superalgos","id":"1e9cb0f5-9153-4ebf-bea2-e4cdff34e27d","savedPayload":{"position":{"x":2261.346672941316,"y":16539.890437188667},"targetPosition":{"x":2043.8061772920373,"y":16836.457512059205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line Begin","id":"f05e403b-b940-4007-be9d-517cd5f5b761"}}}],"id":"954cc880-be0c-444b-b810-ddf42e1d6d03","savedPayload":{"position":{"x":2093.765523507329,"y":16913.672549319264},"targetPosition":{"x":2111.6505599584743,"y":17213.585655808856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Bullish Arrow","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bullish Reversal\" || record.forecast === \"Bullish Continuation\" ","project":"Superalgos","id":"71c1088c-78e4-4b13-a432-48488e81f5a9","savedPayload":{"position":{"x":1807.9167913847486,"y":16168.799541960043},"targetPosition":{"x":2304.370183192641,"y":16565.57665509949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"26a20027-9ab4-483f-8e8b-54c5feae8eb7","savedPayload":{"position":{"x":1757.4774358269242,"y":15784.18620859613},"targetPosition":{"x":1939.9911846868708,"y":16044.929358559406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"784e3863-e27c-439a-b219-d2257040f9a8","savedPayload":{"position":{"x":1939.9911846868708,"y":16044.929358559406},"targetPosition":{"x":2304.370183192641,"y":16565.57665509949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","project":"Superalgos","id":"c87d6249-dfd9-4bfc-b6d5-1033dc34ab93","savedPayload":{"position":{"x":2000.1638771482176,"y":15661.573356167055},"targetPosition":{"x":2101.6423829144187,"y":15963.275995487715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c307cae0-1d47-4fbd-b17e-c71ed0b460a2","savedPayload":{"position":{"x":2101.6423829144187,"y":15963.275995487715},"targetPosition":{"x":2304.370183192641,"y":16565.57665509949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","project":"Superalgos","id":"01f59ec4-922f-4f32-89ff-271b4a1715ff","savedPayload":{"position":{"x":2409.6146735267685,"y":15938.437177817335},"targetPosition":{"x":2304.370183192641,"y":16565.57665509949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"a9852c0f-8ac8-4b9d-ac29-e8d8f29da720"}}},{"type":"Polygon Vertex","name":"-2-","project":"Superalgos","id":"63a0a7cf-0e25-4c76-a647-7bce1cf8349d","savedPayload":{"position":{"x":2500.3881632620905,"y":15959.97588730744},"targetPosition":{"x":2304.370183192641,"y":16565.57665509949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"bb29fdb8-abfe-4377-9063-6790f2eb8d8f"}}},{"type":"Polygon Vertex","name":"-3-","project":"Superalgos","id":"34336858-138b-4d29-8e19-963f987eeb7a","savedPayload":{"position":{"x":2585.92452122724,"y":15994.373375422858},"targetPosition":{"x":2304.370183192641,"y":16565.57665509949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"a46f8fdb-d00f-46f6-8ec9-3ef0166107ef"}}},{"type":"Polygon Vertex","name":"-4-","project":"Superalgos","id":"41b893b7-8450-497e-a10e-378e2aad4f86","savedPayload":{"position":{"x":2665.0672948677166,"y":16040.580814874134},"targetPosition":{"x":2304.370183192641,"y":16565.57665509949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"2e60f4be-e8cc-4489-81f6-27fa3f61921b"}}},{"type":"Polygon Vertex","name":"-5-","project":"Superalgos","id":"b298e992-97da-4b07-b1b5-2419ef56b05a","savedPayload":{"position":{"x":2736.507256461591,"y":16097.542610725372},"targetPosition":{"x":2304.370183192641,"y":16565.57665509949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"1740e52b-986e-49cf-bb3f-c373200c4449"}}},{"type":"Polygon Vertex","name":"-6-","project":"Superalgos","id":"c38d5012-bbf9-4b31-916a-e98a2557f2c3","savedPayload":{"position":{"x":2798.941597723704,"y":16164.06224315},"targetPosition":{"x":2304.370183192641,"y":16565.57665509949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"c8b169eb-6d38-41ab-bc48-e5a08c6f9f45"}}},{"type":"Polygon Vertex","name":"-7-","project":"Superalgos","id":"fd3144a6-1558-42b5-82d8-54975ee48863","savedPayload":{"position":{"x":2855.8847901222907,"y":16248.101901475375},"targetPosition":{"x":2304.370183192641,"y":16565.57665509949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"f5cee1fe-b34d-47e5-8d4a-26061487b242"}}}],"id":"f8d58d58-6d2e-454f-ae56-4f57ab357a85","savedPayload":{"position":{"x":2339.253169949676,"y":16657.768208835492},"targetPosition":{"x":2111.6505599584743,"y":17213.585655808856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"01e600b6-8d17-4ea5-bb31-30308e68433e","savedPayload":{"position":{"x":2111.6505599584743,"y":17213.585655808856},"targetPosition":{"x":2513.019277110725,"y":17659.27744427235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Three-Candles Patterns","config":"{ \n\"codeName\": \"Three-Candles Patterns\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Pattern Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.name","project":"Superalgos","id":"5a0d3dea-2329-4eb2-8c13-a112d1f03368","savedPayload":{"position":{"x":2635.587066756936,"y":17152.20436118327},"targetPosition":{"x":2867.393751066833,"y":17343.19708400878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8b719d3b-612d-4978-bde8-a748068d4366","savedPayload":{"position":{"x":2867.393751066833,"y":17343.19708400878},"targetPosition":{"x":3099.3670766727555,"y":17534.25734901168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Direction","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trend","project":"Superalgos","id":"9d7f27b8-56b3-4b97-a3b4-1687a546f367","savedPayload":{"position":{"x":3108.160445539859,"y":16932.93462143233},"targetPosition":{"x":3103.742886957916,"y":17233.518239398458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bdf5aa9a-a121-4275-969e-5eed6ebd878d","savedPayload":{"position":{"x":3103.742886957916,"y":17233.518239398458},"targetPosition":{"x":3099.3670766727555,"y":17534.25734901168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Forecast","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.forecast","project":"Superalgos","id":"04bc641a-62a0-4441-b4d5-58fa30fe413e","savedPayload":{"position":{"x":3574.7089225564014,"y":17166.036102721213},"targetPosition":{"x":3337.022274515981,"y":17350.073203626205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6ddacd18-8603-4112-bd00-80fe0cb03dcb","savedPayload":{"position":{"x":3337.022274515981,"y":17350.073203626205},"targetPosition":{"x":3099.3670766727555,"y":17534.25734901168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Method","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendMethod","project":"Superalgos","id":"3b43a0f7-d76f-4b8a-8228-9b0282826022","savedPayload":{"position":{"x":3683.455879461584,"y":17674.340980010405},"targetPosition":{"x":3391.060786254435,"y":17604.512176281663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"950a394b-df06-4b90-88fc-b59cb3cc1cb5","savedPayload":{"position":{"x":3391.060786254435,"y":17604.512176281663},"targetPosition":{"x":3099.3670766727555,"y":17534.25734901168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Period","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","project":"Superalgos","id":"2b0825d5-9e69-4b0a-861a-c88870b859c4","savedPayload":{"position":{"x":3350.9946451075775,"y":18078.32450876968},"targetPosition":{"x":3225.1959655778337,"y":17806.228001664735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"63fbe7e3-b323-40ea-bfdc-0aac0df03c0f","savedPayload":{"position":{"x":3225.1959655778337,"y":17806.228001664735},"targetPosition":{"x":3099.3670766727555,"y":17534.25734901168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Value","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendLine","project":"Superalgos","id":"e838b1bb-2079-479e-b85a-38019fca078d","savedPayload":{"position":{"x":2830.2574960161764,"y":18070.400843898733},"targetPosition":{"x":2964.931912699256,"y":17802.39757726518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f36e0123-4262-45d3-8e18-699407c0bb78","savedPayload":{"position":{"x":2964.931912699256,"y":17802.39757726518},"targetPosition":{"x":3099.3670766727555,"y":17534.25734901168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1f14d068-2fc4-42b5-8edf-7d552f50d1ed","savedPayload":{"position":{"x":3099.3670766727555,"y":17534.25734901168},"targetPosition":{"x":2513.019277110725,"y":17659.27744427235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"acdb9c43-0859-42be-87b0-1a600cf513d4","savedPayload":{"position":{"x":2514.2561082400025,"y":17669.13045320227},"targetPosition":{"x":2329.1552773955063,"y":18239.74204132476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e10e4374-b30c-4974-b2ff-bd789f50fde2","savedPayload":{"position":{"x":2478.784622502266,"y":18239.738406515746},"targetPosition":{"x":2928.784622502266,"y":18239.738406515746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"38d04c99-51a6-4c1c-853e-ba67e216854b","savedPayload":{"position":{"x":2928.784622502266,"y":18239.738406515746},"targetPosition":{"x":2928.784622502266,"y":18239.738406515746},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}} \ No newline at end of file +{"type":"Data Mine","name":"Buddha","config":"{ \n\"codeName\": \"Buddha\"\n}","project":"Superalgos","sensorBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"Candle Patterns","config":"{\n\"codeName\": \"Candle-Patterns\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates Candles Patterns for Time Frames of 01-hs and above.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Basic Candles","project":"Superalgos","id":"3e933426-1c7b-45e1-845f-08a7d2684620","savedPayload":{"position":{"x":3129.041401383918,"y":17452.35686716615},"targetPosition":{"x":3328.835973695903,"y":17542.236357748305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"07be5b9b-e8fd-49fc-ab77-20f89fdea10f"}}},{"type":"Output Dataset","name":"Multi-Period-Market One-Candle Patterns","project":"Superalgos","id":"201dc796-db42-49ce-8b9c-1b26c0f3a0ce","savedPayload":{"position":{"x":3169.134883158589,"y":17383.139478265486},"targetPosition":{"x":3328.835973695903,"y":17542.236357748305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"144d8665-1ff0-4db3-9340-a33fd7d0d098"}}},{"type":"Output Dataset","name":"Multi-Period-Market Two-Candles Patterns","project":"Superalgos","id":"c20616cc-d93f-40fc-904a-025fc2799a75","savedPayload":{"position":{"x":3229.9770922491734,"y":17339.671801899964},"targetPosition":{"x":3328.835973695903,"y":17542.236357748305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"8c35ce52-9dee-4d20-92e6-50ba7fd2882b"}}},{"type":"Output Dataset","name":"Multi-Period-Market Three-Candles Patterns","project":"Superalgos","id":"c8074ffc-f5ff-4cb5-8e83-0adcecc82a0c","savedPayload":{"position":{"x":3326.830605382722,"y":17343.877223597563},"targetPosition":{"x":3328.835973695903,"y":17542.236357748305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"087fc67e-78f9-4204-ba5e-8b670566a716"}}}],"outputDatasetFolders":[],"id":"0dc09316-0987-4d22-b600-bd3868942026","savedPayload":{"position":{"x":3328.835973695903,"y":17542.236357748305},"targetPosition":{"x":3543.032821461693,"y":17856.18635281792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candle Patterns Multi-Period-Market","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"2d079388-93e4-4005-b392-c4a997904ccb","savedPayload":{"position":{"x":3351.5917081132684,"y":17243.24971495471},"targetPosition":{"x":3509.228632498114,"y":17403.518467361682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"401fbf30-8faa-40e9-9707-fac2d35f6195"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{ \n\"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"418e1725-b690-4a55-b5f7-a4a92465c162","savedPayload":{"position":{"x":3493.451892335186,"y":17189.127853558104},"targetPosition":{"x":3509.228632498114,"y":17403.518467361682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"85c548fd-9ef7-4936-a86d-2a206cf90039","savedPayload":{"position":{"x":3649.480915739696,"y":17240.712195185763},"targetPosition":{"x":3509.228632498114,"y":17403.518467361682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"de8bf1ab-cf7b-41ab-b8cb-ae38b1e587ce","savedPayload":{"position":{"x":3509.228632498114,"y":17403.518467361682},"targetPosition":{"x":3543.032821461693,"y":17856.18635281792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"401fbf30-8faa-40e9-9707-fac2d35f6195","savedPayload":{"position":{"x":3718.5418607694155,"y":17491.6141666957},"targetPosition":{"x":3543.032821461693,"y":17856.18635281792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"e100074c-7981-49e1-9d06-813104ee4c41","savedPayload":{"position":{"x":3877.8656690120297,"y":17627.14745828865},"targetPosition":{"x":3543.032821461693,"y":17856.18635281792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"2a8f2e62-256b-4281-a470-3f640af21337","savedPayload":{"position":{"x":3953.433684726442,"y":17825.86189317393},"targetPosition":{"x":3543.032821461693,"y":17856.18635281792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3aaf9f93-0516-4b3d-9772-44be91615154","savedPayload":{"position":{"x":3574.032305105167,"y":17834.302415959657},"targetPosition":{"x":3378.784622502266,"y":18239.738406515746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Calculates Candles Patterns for Time Frames of 45-min and below.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Basic Candles","project":"Superalgos","id":"3fc6cd67-c356-41fc-89d9-5c1cdcdd7360","savedPayload":{"position":{"x":3930.1916909577412,"y":17088.32954990486},"targetPosition":{"x":4138.971828579179,"y":17379.183804585642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"9e6d7f95-b2fe-466e-9a5d-175479cbf85d"}}},{"type":"Output Dataset","name":"Multi-Period-Daily One-Candle Patterns","project":"Superalgos","id":"7b078979-c28c-4ba5-8305-d469c8d4ec84","savedPayload":{"position":{"x":4030.754275768206,"y":17037.847420053233},"targetPosition":{"x":4138.971828579179,"y":17379.183804585642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f0a11771-dd69-4b9a-9347-7cb2d1f231ff"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Two-Candles Patterns","project":"Superalgos","id":"5ab95923-5553-40a7-836e-14b96f8a4764","savedPayload":{"position":{"x":4141.41271164468,"y":17021.198369469843},"targetPosition":{"x":4138.971828579179,"y":17379.183804585642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4f1260c8-6d74-454e-963a-fa3ff910329c"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Three-Candles Patterns","project":"Superalgos","id":"cb6acbaf-bf43-4bf6-b8ca-7689130cc9cf","savedPayload":{"position":{"x":4252.36357255399,"y":17039.900153164792},"targetPosition":{"x":4138.971828579179,"y":17379.183804585642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b60cb94f-79c5-410c-b166-abc97d0f2bc3"}}}],"outputDatasetFolders":[],"id":"bcfa61bd-e1d0-4a60-9fd5-ab7dabe4fd39","savedPayload":{"position":{"x":4138.971828579179,"y":17379.183804585642},"targetPosition":{"x":4202.31007347551,"y":17802.310313042937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candle Patterns Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"a7ea36fb-cc2e-4d55-b021-e67d8c5a7020","savedPayload":{"position":{"x":4271.274080895866,"y":16836.051781428025},"targetPosition":{"x":4463.497734878572,"y":17137.665772151136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"3a20d7e9-d551-4346-81c7-e3b0098bef99"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"48b53dc5-015c-43f1-9485-047aaaffe0f7","savedPayload":{"position":{"x":4484.925367632157,"y":16780.62286642274},"targetPosition":{"x":4463.497734878572,"y":17137.665772151136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"49d2c9ad-bdde-427a-8590-801aa4422cca","savedPayload":{"position":{"x":4690.64049560163,"y":16861.440515194765},"targetPosition":{"x":4463.497734878572,"y":17137.665772151136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"19bf518a-1e20-4e3a-8f40-8e07324f634b","savedPayload":{"position":{"x":4809.620831706085,"y":17047.77279346082},"targetPosition":{"x":4463.497734878572,"y":17137.665772151136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"2a7a3bf2-9044-4040-95a7-28c1a339a37f","savedPayload":{"position":{"x":4463.497734878572,"y":17137.665772151136},"targetPosition":{"x":4202.31007347551,"y":17802.310313042937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"3a20d7e9-d551-4346-81c7-e3b0098bef99","savedPayload":{"position":{"x":4760.922783662587,"y":17357.337045572225},"targetPosition":{"x":4202.31007347551,"y":17802.310313042937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"4d03c099-0d5e-4668-a347-c0de2f42f8bd","savedPayload":{"position":{"x":4631.263310134087,"y":17737.757537231206},"targetPosition":{"x":4202.31007347551,"y":17802.310313042937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"3ef2f54d-64c9-4264-a298-0c5a908458ab","savedPayload":{"position":{"x":4602.685416209504,"y":17958.874466789566},"targetPosition":{"x":4202.31007347551,"y":17802.310313042937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8a7ce3e2-20a1-496b-86bf-2d7842f88536","savedPayload":{"position":{"x":3730.6087896128793,"y":17959.167995679316},"targetPosition":{"x":3378.784622502266,"y":18239.738406515746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Basic Candles","config":"{\n \"codeName\": \"Basic-Candles\",\n \"singularVariableName\": \"basicCandle\",\n \"pluralVariableName\": \"basicCandles\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"07be5b9b-e8fd-49fc-ab77-20f89fdea10f","savedPayload":{"position":{"x":4543.557043633315,"y":17732.52121724577},"targetPosition":{"x":4397.387467659923,"y":18074.90669060388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"9e6d7f95-b2fe-466e-9a5d-175479cbf85d","savedPayload":{"position":{"x":4716.876479057264,"y":17884.407289039897},"targetPosition":{"x":4397.387467659923,"y":18074.90669060388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"Basic Candles Variables","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"7d35e864-2f37-4d1c-912d-225952131ffd","savedPayload":{"position":{"x":5243.300902669818,"y":17694.234544014682},"targetPosition":{"x":5503.05010588257,"y":17796.698970175938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"52215804-fb71-43ed-a232-3b29d843cb58","savedPayload":{"position":{"x":5503.05010588257,"y":17796.698970175938},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"bdeaed7f-2923-4fde-a7ea-257f00bb7ee9","savedPayload":{"position":{"x":5361.434274238682,"y":17486.529590492595},"targetPosition":{"x":5581.882197024175,"y":17658.27100096263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b8f2240b-03a9-4fd5-8e37-d43237554239","savedPayload":{"position":{"x":5581.882197024175,"y":17658.27100096263},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"name","config":"{\n \"codeName\": \"name\",\n \"isString\": true\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.name","project":"Superalgos","id":"5ac4a021-ae1b-45d7-80ea-09587174c038","savedPayload":{"position":{"x":5533.068929769028,"y":17321.14386498576},"targetPosition":{"x":5696.33677158257,"y":17547.906705873695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8220f919-2232-47b2-8bcb-1d30a905c026","savedPayload":{"position":{"x":5696.33677158257,"y":17547.906705873695},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"size","config":"{ \n\"codeName\": \"size\",\n\"isString\": true\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.size","project":"Superalgos","id":"8162dea0-df67-42b5-8223-7533f950af7a","savedPayload":{"position":{"x":5744.665428222961,"y":17210.425479501188},"targetPosition":{"x":5837.235956477414,"y":17474.237864607072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2bff73a1-c5c2-4413-91ed-9d2aaf642d83","savedPayload":{"position":{"x":5837.235956477414,"y":17474.237864607072},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"direction","config":"{ \n\"codeName\": \"direction\",\n\"isString\": true\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.direction","project":"Superalgos","id":"770f6a35-9069-49ba-9c12-99dc6e5ff54a","savedPayload":{"position":{"x":5978.659552191561,"y":17164.12104348829},"targetPosition":{"x":5993.197817157594,"y":17443.44991488241},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"871bc42d-f3f7-4896-b575-ca23f325e50f","savedPayload":{"position":{"x":5993.197817157594,"y":17443.44991488241},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"upperShadowPercent","config":"{ \n\"codeName\": \"upperShadowPercent\",\n\"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.upperShadowPercent","project":"Superalgos","id":"1645f231-45ab-48b5-9891-45f27e2b4d7e","savedPayload":{"position":{"x":6215.745762155788,"y":17185.4847720107},"targetPosition":{"x":6151.260782482586,"y":17457.53940533661},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"dec83c16-8f66-4403-9dda-e536223e7577","savedPayload":{"position":{"x":6151.260782482586,"y":17457.53940533661},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bodyPercent","config":"{ \n\"codeName\": \"bodyPercent\",\n\"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.bodyPercent","project":"Superalgos","id":"36408e7c-d9cc-4d63-9115-feffa763b85f","savedPayload":{"position":{"x":6437.384791894061,"y":17272.97639100739},"targetPosition":{"x":6299.059885150024,"y":17515.86892053557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cba04177-1edd-444f-94a3-79784d84d70e","savedPayload":{"position":{"x":6299.059885150024,"y":17515.86892053557},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"lowerShadowPercent","config":"{ \n\"codeName\": \"lowerShadowPercent\",\n\"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.lowerShadowPercent","project":"Superalgos","id":"71464adc-3bd3-47b8-b018-cbacf897c119","savedPayload":{"position":{"x":6625.956992622145,"y":17419.515024556917},"targetPosition":{"x":6424.646044938092,"y":17613.45149521807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c2c5753a-2e74-4429-9b6a-aa016a753be2","savedPayload":{"position":{"x":6424.646044938092,"y":17613.45149521807},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"body","config":"{ \n\"codeName\": \"body\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.body","project":"Superalgos","id":"1bc97398-5645-4452-9169-f62efc0a7fe1","savedPayload":{"position":{"x":6765.224388489449,"y":17612.934801319963},"targetPosition":{"x":6517.479393432612,"y":17742.38112056753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f0019951-d651-4fcf-888e-0a0cf1564c98","savedPayload":{"position":{"x":6517.479393432612,"y":17742.38112056753},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"upperShadow","config":"{ \n\"codeName\": \"upperShadow\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.upperShadow","project":"Superalgos","id":"cf426ed9-53d3-411e-acf1-1694c5d45b89","savedPayload":{"position":{"x":6844.438361579003,"y":17838.291272164868},"targetPosition":{"x":6570.220243552896,"y":17892.478058050765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2d3b26eb-15bc-4272-b296-9658ac24baa9","savedPayload":{"position":{"x":6570.220243552896,"y":17892.478058050765},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"lowerShadow","config":"{ \n\"codeName\": \"lowerShadow\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.lowerShadow","project":"Superalgos","id":"a0909b34-9ad9-4290-aa93-5b1731b74a66","savedPayload":{"position":{"x":6857.373941733622,"y":18075.89717696571},"targetPosition":{"x":6578.765103241236,"y":18050.895253165992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2369782b-6afb-41e1-a93f-721c7442e5c3","savedPayload":{"position":{"x":6578.765103241236,"y":18050.895253165992},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"length","config":"{ \n\"codeName\": \"length\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.length","project":"Superalgos","id":"3639b9ee-c558-4699-9b48-2ddfdc59fa33","savedPayload":{"position":{"x":6802.330696790366,"y":18307.921708544687},"targetPosition":{"x":6542.1841852105135,"y":18205.641292375883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a6773db1-97fb-418d-b7cf-d4298054f376","savedPayload":{"position":{"x":6542.1841852105135,"y":18205.641292375883},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"meanBody","config":"{ \n\"codeName\": \"meanBody\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.meanBody","project":"Superalgos","id":"a45ab78a-fa03-469b-ab64-78fd184d9dd5","savedPayload":{"position":{"x":6683.925547715877,"y":18515.366727041524},"targetPosition":{"x":6463.305020388798,"y":18343.699094836596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c32b5645-7bbe-4f06-aaef-d9efc3a5c9da","savedPayload":{"position":{"x":6463.305020388798,"y":18343.699094836596},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"avgRef","config":"{ \n\"codeName\": \"avgRef\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.avgRef","project":"Superalgos","id":"26313abc-cd03-4fb9-b54d-2a0d67a3c0da","savedPayload":{"position":{"x":6512.319034276483,"y":18680.924730972125},"targetPosition":{"x":6348.919906015339,"y":18454.114196658797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0bdc3b36-d092-421f-8741-a0ecfa8fcc41","savedPayload":{"position":{"x":6348.919906015339,"y":18454.114196658797},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Nbodies","config":"{ \n\"codeName\": \"Nbodies\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.Nbodies","project":"Superalgos","id":"f5b650b4-497d-4eef-84f8-c53b5703dbed","savedPayload":{"position":{"x":6300.818320518336,"y":18791.289105675434},"targetPosition":{"x":6207.993808010269,"y":18527.655813473764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cf0a624b-44cb-4926-8e26-867ea485e3fe","savedPayload":{"position":{"x":6207.993808010269,"y":18527.655813473764},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"dojiFactor","config":"{ \n\"codeName\": \"dojiFactor\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.dojiFactor","project":"Superalgos","id":"8e3696bf-dace-4ecb-a9e7-db654ba86ed8","savedPayload":{"position":{"x":6066.700297459774,"y":18837.781036628825},"targetPosition":{"x":6052.025902110538,"y":18558.6505418354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cda80e33-8ed9-4579-8c45-99da25652634","savedPayload":{"position":{"x":6052.025902110538,"y":18558.6505418354},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"sizeFactor","config":"{ \n\"codeName\": \"sizeFactor\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.sizeFactor","project":"Superalgos","id":"08e5507c-e88f-410e-ac54-886d8ce157d2","savedPayload":{"position":{"x":5830.273633796629,"y":18816.462399687203},"targetPosition":{"x":5894.242071234996,"y":18544.1893096125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"20fadb1a-1f55-4b10-ba45-cda61d8d0157","savedPayload":{"position":{"x":5894.242071234996,"y":18544.1893096125},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Nlengths","config":"{ \n\"codeName\": \"Nlengths\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.Nlengths","project":"Superalgos","id":"addc3851-bbe2-47ac-8652-5b745e12918a","savedPayload":{"position":{"x":5597.065099427209,"y":18732.00017717133},"targetPosition":{"x":5746.252783209857,"y":18485.936491246895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0a736450-a2e1-41a0-8c29-cd2434296872","savedPayload":{"position":{"x":5746.252783209857,"y":18485.936491246895},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"sizeMethod","config":"{ \n\"codeName\": \"sizeMethod\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.sizeMethod","project":"Superalgos","id":"e2109d1f-c4aa-46d6-a6b7-75d1ffd9c0ee","savedPayload":{"position":{"x":5419.925716874699,"y":18582.301617339857},"targetPosition":{"x":5620.814387211058,"y":18388.37670408981},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"23853614-5c16-4e3e-b1ae-d3fda37d5884","savedPayload":{"position":{"x":5620.814387211058,"y":18388.37670408981},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"meanLength","config":"{ \n\"codeName\": \"meanLength\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.meanLength","project":"Superalgos","id":"4731c75f-5e23-4972-ba37-10bd4363ee0d","savedPayload":{"position":{"x":5280.391387567346,"y":18388.63473053433},"targetPosition":{"x":5527.8119261481625,"y":18259.320219875386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fc7702c5-1b49-4ed6-b2b3-fde741557115","savedPayload":{"position":{"x":5527.8119261481625,"y":18259.320219875386},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"min","config":"{ \n\"codeName\": \"min\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.candleMin","project":"Superalgos","id":"016b76f2-2f06-408e-986f-e29cd5edc107","savedPayload":{"position":{"x":5201.249991326287,"y":18163.14056712514},"targetPosition":{"x":5474.98716504105,"y":18109.084384305213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"31730ec0-eedf-404d-9a38-bd065bdc2064","savedPayload":{"position":{"x":5474.98716504105,"y":18109.084384305213},"targetPosition":{"x":6022.515021635823,"y":18000.96732511276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4d364dfd-44f1-4d8e-87fd-5aa54564e167","savedPayload":{"position":{"x":6022.515021635823,"y":18000.96732511276},"targetPosition":{"x":4397.387467659923,"y":18074.90669060388},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* ¡¡¡ VERY IMPORTANT !!!\n\"PLEASE READ BEFORE STARTING ALL DOCUMENTATION RELATED TO THIS INDICATOR ON THE SUPERALGOS WEBSITE\" */\n\n/* INTRODUCTION:\nThere are a lot of combinations in order to construct a candle. That's why we are going to define 4 families of candles based on their appearence.\n1) “CLASSIC CANDLES”: These candles have two shadows shorter than the body.\n2) “MARUBOZU CANDLES”: These candles have no at least one shadow. The shadow, if present, cannot be longer than the body. \n3) “SPINNING TOP CANDLES”: These candles have differents opening and closing prices and have at least one shadow. At the same time at least one shadow has to be longer than the body.\n4) “DOJI CANDLES”: These candles have no body. The open price is equal to the close price. */\n\n// ---------------------------------------------------------------------------------------------------------------------\n// From here the variables to be used will be defined\n// ---------------------------------------------------------------------------------------------------------------------\n\n/* The following variables could be modified by the user to adapt the indicator with his preferences\n(Please, read the documentation before) */\n\nlet sizeMethod = \"SMA\" // Choose \"SMA\" or \"EMA\" to calculate the average length of the last \"Nlengths\" candles\nlet Nlengths = 20 // Default value: 20 - \"Nlengths\" is the number of candles to calculate the average length value\nlet sizeFactor = 75 // Default value: 75% - \"sizeFactor\" is to define \"Long\" or \"Short\" size\nlet Nbodies = 10 // Default value: 10 - \"Nbodies\" is the number of bodies to calculate the average bodie value\nlet dojiFactor = 3 // Default value: 3% - \"dojiFactor\" is to define when a candle is \"doji\" or not\n\n /* In order to avoid errors, the initial condition of the name of the candle is defined */\nvariable.name = \"Unknown\" // To be used on the Plotter Panel and Conditions\n\n/* Candles as dependencies are defined */\nlet candle = record.current \n\n/* The height of the body */\nlet body = Math.abs (candle.close-candle.open)\n\n/* Array of N bodies is defined to verify if a candle has a Short Body or a Long Body */\nif (variable.lastNbodies.length > Nbodies) {\n variable.lastNbodies.shift() // Remove the first element of the array to keep it at a maximun of N elements\n}\nlet meanBody \nif (variable.lastNbodies.length < Nbodies) { // If \"lastNbodies\" array hasn't enough bodies, zero value is defined\n meanBody = 0 \n} else { \n let sum = 0 // Initialize sum variable \n for (let i = variable.lastNbodies.length-Nbodies; i < variable.lastNbodies.length; i++) { // Iterate through the last periods\n sum = sum + variable.lastNbodies[i]\n } \n meanBody = sum/Nbodies\n}\nvariable.lastNbodies.push(body) // Add the current body value to the \"lastNbodies\" array for next cycle\n\n /* Total length of the candle, equivalent to the sum of upper shadow, lower shadow and body */\nlet length = candle.max - candle.min \n\n/* Calculating average candles length \"EMA\" or \"SMA\" */\nif (sizeMethod === \"EMA\") {\n let k = 2 / (Nlengths + 1)\n variable.EMAlength = length * k + variable.previousEMAlength * (1-k)\n variable.previousEMAlength = variable.EMAlength\n variable.avgRef = variable.EMAlength * sizeFactor / 100\n variable.SMAlength = 0\n} \nif (sizeMethod === \"SMA\") {\n variable.EMAlength = 0\n if (variable.lastNlengths.length > Nlengths) {\n variable.lastNlengths.shift() // Remove the first element of the array to keep it at a maximun of N elements \n } \n if (variable.lastNlengths.length < Nlengths) { // If \"lastNlengths\" array hasn't enough candles length, zero value is defined\n variable.SMAlength = 0 \n variable.avgRef = 0 \n } else { \n let sum = 0 // Initialize sum variable \n for (let i = variable.lastNlengths.length-Nlengths; i < variable.lastNlengths.length; i++) { // Iterate through the last periods\n sum = sum + variable.lastNlengths[i]\n } \n variable.SMAlength = sum/Nlengths\n variable.avgRef = variable.SMAlength * sizeFactor / 100 // To be used in Shapes\n }\n variable.lastNlengths.push(length) // Add the current length value to the \"lastNlengths\" array for next cycle\n}\n\n/* Only one MA is calculated, the other is defined as 0. It is useful to integrate both variables into one for future operations */\nvariable.meanLength = variable.SMAlength + variable.EMAlength // To be used in Shapes and Conditions\n\n/* Defining if a candle is \"Long\" or \"Short\" */\nlet size\nif (length > variable.avgRef) {\n size = \"Long\"\n} else {\n size = \"Short\"\n} \n\n/* Green candles are \"Bullish\" and red candles are \"Bearish\" */\nlet direction \nif (candle.close > candle.open) {\n direction = \"Bullish\"\n} else {\n direction = \"Bearish\"\n}\n\n/* The value of the upper shadow */\nlet upperShadow \nif (direction === \"Bullish\") {\n upperShadow = candle.max-candle.close\n} else {\n upperShadow = candle.max-candle.open\n}\n\n/* The value of the lower shadow */\nlet lowerShadow \nif (direction === \"Bullish\") {\n lowerShadow = candle.open-candle.min\n} else {\n lowerShadow = candle.close-candle.min\n}\n\n/* Four possibilities of combinations of the shadows are defined: \"lower\", \"upper\", \"both\", \"none\" */\nlet shadow\nif (upperShadow > 0 && lowerShadow > 0) {\n shadow = \"Both\"\n}\nif (upperShadow === 0 && lowerShadow === 0) {\n shadow = \"None\"\n}\nif (upperShadow > 0 && lowerShadow === 0) {\n shadow = \"Upper\"\n}\nif (upperShadow === 0 && lowerShadow > 0) {\n shadow = \"Lower\"\n}\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here the name of the candles will be defined\n// ----------------------------------------------------------------------------------------------------------------------------\n\nif (body > length*dojiFactor/100) { // From here all kind of candles that are NOT \"doji\" are defined\n\n/* \"CLASSIC CANDLES\" family:\nThese candles have the following characteristics in common:\n1) Both shadows are present.\n2) Each shadow is shorter than the body. \n3) The opening price differs from the closing price. */\n\nif (shadow === \"Both\" && upperShadow <= body && lowerShadow <= body) {\n\n/* \"SHORT GREEN CANDLE\" and \"SHORT RED CANDLE\" properties:\n1) Bullish or Bearish.\n2) Relative Size: Short. */\n\nif (direction === \"Bullish\" && size === \"Short\") {\n variable.name = \"Short Green Candle\"\n}\nif (direction === \"Bearish\" && size === \"Short\") {\n variable.name = \"Short Red Candle\"\n}\n\n/* \"GREEN CANDLE\" and \"RED CANDLE\" properties: \n1) Bullish or Bearish.\n2) Relative Size: Long . */\n\nif (direction === \"Bullish\" && size === \"Long\") {\n variable.name = \"Green Candle\"\n}\nif (direction === \"Bearish\" && size === \"Long\") {\n variable.name = \"Red Candle\"\n}\n\n/* \"LONG GREEN CANDLE\" and \"LONG RED CANDLE\" properties:\n1) Bullish or Bearish respectively.\n2) The body is at least three times higher than the mean body.\n4) Relative Size: Long. */\n\nif (direction === \"Bullish\" && size === \"Long\" && body >= meanBody*3) {\n variable.name = \"Long Green Candle\"\n}\nif (direction === \"Bearish\" && size === \"Long\" && body >= meanBody*3) {\n variable.name = \"Long Red Candle\"\n}\n\n} // Closing \"Classic Candles\" Family \n\n/* \"MARUBOZU CANDLES\" family:\nThese candles have the following characteristics in common:\n1) Lack at least one shadow.\n2) If it has one shadow, it must be shorter than the body.\n3) The opening price differs from the closing price.\n4) Relative Size: Short or Long. */\n\n/* \"GREEN MARUBOZU\" and \"RED MARUBOZU\" properties: \n1) Bullish or Barish.\n2) No shadows. */\n\nif (direction === \"Bullish\" && shadow === \"None\") {\n variable.name = \"Green Marubozu\"\n}\nif (direction === \"Bearish\" && shadow === \"None\") {\n variable.name = \"Red Marubozu\"\n}\n\n/* \"OPENING GREEN MARUBOZU\" properties: \n1) Bullish.\n2) No lower shadow. */\n\nif (direction === \"Bullish\" && shadow === \"Upper\" && upperShadow <= body) {\n variable.name = \"Opening Green Marubozu\"\n}\n\n/* \"CLOSING GREEN MARUBOZU\" properties:\n1) Bullish.\n2) No upper shadow. */\n\nif (direction === \"Bullish\" && shadow === \"Lower\" && lowerShadow <= body) {\n variable.name = \"Closing Green Marubozu\"\n}\n\n/* \"CLOSING RED MARUBOZU\" properties:\n1) Bearish.\n2) No lower shadow. */\n\nif (direction === \"Bearish\" && shadow === \"Upper\" && upperShadow <= body) {\n variable.name = \"Closing Red Marubozu\"\n}\n\n/* \"OPENING RED MARUBOZU\" properties: \n1) Bearish.\n2) No upper shadow. */\n\nif (direction === \"Bearish\" && shadow === \"Lower\" && lowerShadow <= body) {\n variable.name = \"Opening Red Marubozu\"\n}\n\n/* \"SPINNING TOP CANDLES\" family:\nThese candles have the following characteristics in common:\n1) Have at least one shadow.\n2) At least one shadow is greater than the body.\n3) The opening price differs from the closing price. */\n\n/* \"GREEN SPINNING TOP\" and \"RED SPINNING TOP\" properties:\n1) Bullish or Bearish.\n4) Relative Size: Short or Long. \n5) If it's relative size is Long, none of the shadows can exceed three times the body. */\n\nif (shadow !== \"None\") { \n if (upperShadow > body || lowerShadow > body) { \n if (size === \"Long\") {\n if (upperShadow > 3*body || lowerShadow > 3*body) {\n } else {\n if (direction === \"Bullish\") {\n variable.name = \"Green Spinning Top\"\n } else {\n variable.name = \"Red Spinning Top\"\n }\n } \n } else {\n if (direction === \"Bullish\") {\n variable.name = \"Green Spinning Top\"\n } else {\n variable.name = \"Red Spinning Top\"\n }\n }\n } \n} \n\n/* \"HIGH WAVE\" properties:\n1) Bullish or Bearish.\n2) Relative Size: Long.\n3) The length of at least one shadow is at least 3 times larger than the body.*/\n\nif (shadow !== \"None\" && size === \"Long\") {\n if (upperShadow > 3*body || lowerShadow > 3*body) { \n variable.name = \"High Wave\"\n } \n}\n\n} else { // Closing the initial \"dojiFactor\" if condition, from here \"Doji Candles\" family are defined \n\n/* \"DOJI CANDLES\" family:\nThese candles have the following characteristics in common:\n1) Have no body, or very small body if it is allowed. */\n\n/* \"FOUR-PRICE DOJI\" properties:\n1) No shadows.\n2) Relative Size: Short.*/\n\nif (shadow === \"None\" && size === \"Short\") {\n variable.name = \"Four-Price Doji\"\n}\n\n/* \"STAR DOJI\" properties:\n1) Body is located nearly mid-range (between 60% and 40% of total length).\n2) Relative Size: Short. */\n\nif (size === \"Short\" && upperShadow <= length * 0.6 && upperShadow >= length * (0.4 - dojiFactor/100)) {\n variable.name = \"Star Doji\"\n}\n\n/* \"LONG-LEGGED DOJI\" properties:\n1) Body is located nearly mid-range (between 60% and 40% of total length).\n2) Relative Size: Long. */\n\nif (size === \"Long\" && upperShadow <= length * 0.6 && upperShadow >= length * (0.4 - dojiFactor/100)) {\n variable.name = \"Long-Legged Doji\"\n}\n\n/* \"DRAGONFLY DOJI\" properties:\n1) Upper shadow shorter than 1% of total candle length.\n2) Relative Size: Long. */\n\nif (size === \"Long\" && upperShadow <= length * 0.01) {\n variable.name = \"Dragonfly Doji\"\n}\n\n/* \"GRAVESTONE DOJI\" properties:\n1) Lower shadow shorter than 1% of total candle length.\n2) Relative Size: Long.*/\n\nif (size === \"Long\" && lowerShadow <= length * 0.01) {\n variable.name = \"Gravestone Doji\"\n}\n\n/* \"GENERIC DOJI\" properties:\n1) None of the above five Doji. */\n\nif (variable.name === \"Unknown\") {\n variable.name = \"Generic Doji\"\n}\n\n} // Closing the \"dojiFactor\" else\n\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here all the variables that will be written in the records are defined \n// ----------------------------------------------------------------------------------------------------------------------------\n\nvariable.size = size // To be used on the Plotter Panel and Conditions\nvariable.direction = direction // To be used on the Plotter Panel and Conditions\nif (length > 0) { // Condition to avoid dividing by 0\n variable.upperShadowPercent = upperShadow/length*100 // To be used on the Plotter Panel\n variable.bodyPercent = body/length*100 // To be used on the Plotter Panel\n variable.lowerShadowPercent = lowerShadow/length*100 // To be used on the Plotter Panel\n} else {\n variable.lowerShadowPercent = 0\n variable.bodyPercent = 0\n variable.upperShadowPercent = 0\n}\nvariable.Nbodies = Nbodies // To be used on the Plotter Panel\nvariable.sizeFactor = sizeFactor // To be used on the Plotter Panel\nvariable.dojiFactor = dojiFactor // To be used on the Plotter Panel\nvariable.Nlengths = Nlengths // To be used on the Plotter Panel\nvariable.sizeMethod = sizeMethod // To be used on the Plotter Panel\nvariable.candleMin = candle.min // To be used in Shapes\nvariable.length = length // To be used in Conditions\nvariable.upperShadow = upperShadow // To be used in Conditions\nvariable.lowerShadow = lowerShadow // To be used in Conditions\nvariable.body = body // To be used in Conditions\nvariable.meanBody = meanBody // To be used in Conditions\n","project":"Superalgos","id":"119670a5-5f25-4a75-aaad-6939a18aebf0","savedPayload":{"position":{"x":5693.573835174204,"y":18703.895667095363},"targetPosition":{"x":5318.264450787843,"y":18634.648023107347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"shortcutKey":"f"}}},"id":"351fa6f0-1fbb-4e1b-9d95-3599476aed35","savedPayload":{"position":{"x":5318.264450787843,"y":18634.648023107347},"targetPosition":{"x":4954.862224073002,"y":18562.428413799887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"/* ¡¡¡ VERY IMPORTANT !!!\n\"PLEASE READ BEFORE STARTING ALL DOCUMENTATION RELATED TO THIS INDICATOR ON THE SUPERALGOS WEBSITE\" */\n\n/* It is necessary to define when a candle has a long or a short body. To do that, the bodies of the last N candles have to be averaged. */\nvariable.lastNbodies = [ ] // Define \"lastNbodies\" array to record the value of the last N bodies (SMA)\n\n/* It is necessary to define when a candle is \"Long\" or \"Short\". To do that, the length of the last N candles have to be averaged. */\nvariable.previousEMAlength = 0 // Initialize the variable previous enter to the main loop (EMA)\nvariable.lastNlengths = [ ] // Define \"lastNlengths\" array to record the value of the last N candles length (SMA)","project":"Superalgos","id":"70e6788a-2518-48cf-8493-27f1e7e5ad61","savedPayload":{"position":{"x":5134.43651537488,"y":19090.94349632314},"targetPosition":{"x":5074.637276372179,"y":18914.448702293234},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0b2207a1-b217-4c06-92bd-6985d621d035","savedPayload":{"position":{"x":5074.637276372179,"y":18914.448702293234},"targetPosition":{"x":4954.862224073002,"y":18562.428413799887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f2638b08-3f3b-4574-9e89-dc41f984273d","savedPayload":{"position":{"x":4954.862224073002,"y":18562.428413799887},"targetPosition":{"x":4397.387467659923,"y":18074.90669060388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7519e3d8-b5ec-47eb-84c9-8c9262c9efc6","savedPayload":{"position":{"x":3817.502182984086,"y":18139.603986235405},"targetPosition":{"x":3378.784622502266,"y":18239.738406515746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Basic Candles","id":"09e0a24c-ead1-40c6-9e43-72b46e4294c5"}}},{"type":"Product Definition","name":"One-Candle Patterns","config":"{\n \"codeName\": \"One-Candle-Patterns\",\n \"singularVariableName\": \"oneCandlePattern\",\n \"pluralVariableName\": \"oneCandlePatterns\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"144d8665-1ff0-4db3-9340-a33fd7d0d098","savedPayload":{"position":{"x":4379.589693688931,"y":18139.373683469374},"targetPosition":{"x":4112.264531521449,"y":18372.754243610005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"f0a11771-dd69-4b9a-9347-7cb2d1f231ff","savedPayload":{"position":{"x":4466.003859580354,"y":18341.753515923112},"targetPosition":{"x":4112.264531521449,"y":18372.754243610005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"One-Candle Patterns Records","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"6269672d-95af-44a9-8f10-52f7d4a6892b","savedPayload":{"position":{"x":4587.910104787861,"y":18158.71238268851},"targetPosition":{"x":4763.958803948364,"y":18513.517047571368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"023fd450-0cae-4b41-8cb2-c446ac69bf32","savedPayload":{"position":{"x":4763.958803948364,"y":18513.517047571368},"targetPosition":{"x":4949.568780610876,"y":18886.534396570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"6902c73f-da76-4ca0-b8c2-4ac0351c9a59","savedPayload":{"position":{"x":5040.247449527134,"y":18078.47983082935},"targetPosition":{"x":4996.216852960717,"y":18472.7216781132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ebafaaab-38a0-4bed-a8ea-169f0e92b1cb","savedPayload":{"position":{"x":4996.216852960717,"y":18472.7216781132},"targetPosition":{"x":4949.568780610876,"y":18886.534396570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"name","config":"{ \n\"codeName\": \"name\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.name","project":"Superalgos","id":"ae345ad9-8364-4e58-bd0a-8b44803b1d98","savedPayload":{"position":{"x":5462.087826799281,"y":18255.158055464555},"targetPosition":{"x":5212.568336268181,"y":18562.609510952294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b633fced-5335-4a72-b0cf-ebb6237e2a17","savedPayload":{"position":{"x":5212.568336268181,"y":18562.609510952294},"targetPosition":{"x":4949.568780610876,"y":18886.534396570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trend","config":"{ \n\"codeName\": \"trend\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.trend","project":"Superalgos","id":"5cd8361b-112f-4a4f-9fcd-42a2ff493e96","savedPayload":{"position":{"x":5722.545430983178,"y":18632.089346956927},"targetPosition":{"x":5345.1937909711505,"y":18756.122878002287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"853f4eb3-8068-47d1-9726-22b0c7e835ad","savedPayload":{"position":{"x":5345.1937909711505,"y":18756.122878002287},"targetPosition":{"x":4949.568780610876,"y":18886.534396570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"forecast","config":"{ \n\"codeName\": \"forecast\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.forecast","project":"Superalgos","id":"3b9c18d5-c9e8-4fad-bb3c-1c46751b91a9","savedPayload":{"position":{"x":5736.503709060398,"y":19089.79819116966},"targetPosition":{"x":5353.6709067777665,"y":18991.134671650172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1325daec-fb39-4cb8-acec-14adc2ee94e9","savedPayload":{"position":{"x":5353.6709067777665,"y":18991.134671650172},"targetPosition":{"x":4949.568780610876,"y":18886.534396570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendLine","config":"{ \n\"codeName\": \"trendLine\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.trendLine","project":"Superalgos","id":"d4a6b997-360b-442b-a08c-b75c331a6a84","savedPayload":{"position":{"x":5301.733278681682,"y":19266.576724658637},"targetPosition":{"x":5231.910901682279,"y":19191.692482253744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"e1a74ac9-f660-4d09-89e9-f8eaebf137c4","savedPayload":{"position":{"x":5231.910901682279,"y":19191.692482253744},"targetPosition":{"x":4949.568780610876,"y":18886.534396570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bearishArrowHead","config":"{ \n\"codeName\": \"bearishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.bearishArrowHead","project":"Superalgos","id":"7ca628f3-61d6-4b1f-a4a8-610d07bd8bdb","savedPayload":{"position":{"x":5040.780167562203,"y":19396.213693138863},"targetPosition":{"x":5022.549835225156,"y":19295.863525255263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"d9837267-f999-420e-8906-169c546fc7f5","savedPayload":{"position":{"x":5022.549835225156,"y":19295.863525255263},"targetPosition":{"x":4949.568780610876,"y":18886.534396570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bullishArrowHead","config":"{ \n\"codeName\": \"bullishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.bullishArrowHead","project":"Superalgos","id":"9ddcf2bf-57b5-489e-a7a5-496afd9b7301","savedPayload":{"position":{"x":4756.609984669511,"y":19369.96167357614},"targetPosition":{"x":4795.127009015465,"y":19278.78828123524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c474fa25-64ec-470c-ab04-4132e0f3f9a3","savedPayload":{"position":{"x":4795.127009015465,"y":19278.78828123524},"targetPosition":{"x":4949.568780610876,"y":18886.534396570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"period","config":"{ \n\"codeName\": \"period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.period","project":"Superalgos","id":"4986b4c7-0753-4bab-bf62-906acab4c408","savedPayload":{"position":{"x":4443.076391201399,"y":19236.335647007865},"targetPosition":{"x":4607.2153836654725,"y":19122.80222935768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"49eea75b-d5c8-44cd-afa7-8689127ac9ae","savedPayload":{"position":{"x":4607.2153836654725,"y":19122.80222935768},"targetPosition":{"x":4949.568780610876,"y":18886.534396570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendMethod","config":"{ \n\"codeName\": \"trendMethod\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.trendMethod","project":"Superalgos","id":"8fdf87c8-a467-49a9-9b6a-e70cd12a2b93","savedPayload":{"position":{"x":4334.545726617684,"y":18906.959595002954},"targetPosition":{"x":4533.835716185422,"y":18900.209567664584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6337c29e-3df8-4e54-82ab-a2cdeb800a1b","savedPayload":{"position":{"x":4533.835716185422,"y":18900.209567664584},"targetPosition":{"x":4949.568780610876,"y":18886.534396570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"02d96f47-c6f0-4423-a144-4799f4023c99","savedPayload":{"position":{"x":4949.568780610876,"y":18886.534396570307},"targetPosition":{"x":4112.264531521449,"y":18372.754243610005},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"One-Candle Patterns Code","code":"// -----------------------------------------------------------------------------------------------------------------------------\n// From here the variables that will be used during the definition of the patterns will be defined\n// -----------------------------------------------------------------------------------------------------------------------------\n\n/* The following variables could be modified by the user to adapt the indicator with his preferences\n(Please, read the documentation before) */\nlet N = 10 // Default value: 10 periods - \"N\" is the period to calculate the Moving Average of the trend line (between 5 and 20) \nvariable.trendMethod = \"SMA\" // Choose \"SMA\" or \"EMA\" to calculate the Moving Average of the trend line\n\n /* In order to avoid errors, the initial condition of the output variables are defined */\nvariable.name = \"No Pattern\" // The name of the one-candle pattern\nvariable.forecast = \"None\" // The forecast of the pattern\n\n/* \"Candles\" and \"Basic Candles\" are dependencies */\nlet candle = record.current // Calling \"Candles\"\nlet basicCandle = getElement ('basicCandles', candle) // Calling \"Basic Candles\"\n\n/* To define if the trend is Up or Down , it is necessary to average the candle closes of the last N candles. */\nif (variable.trendMethod === \"SMA\") {\n variable.lastN.push(candle.close) // Add the current Candle Close value to the \"lastN\" array\n if (variable.lastN.length > N) {\n variable.lastN.shift() // Remove the first element of the array to keep it at a maximun of N elements\n }\n let smaN\n if (variable.lastN.length < N) { // If the array \"lastN\" has not enough Candle Closes, the value zero for the smaN is defined\n smaN = 0 \n } else { \n let sum = 0 // Initialize sum variable \n for (let i = variable.lastN.length-N; i < variable.lastN.length; i++) { // Iterate through the last periods\n sum = sum + variable.lastN[i]\n } \n smaN = sum/N\n variable.lastMA.push(smaN) // Add the current SMA value to the \"lastMA\" array\n if (variable.lastMA.length > 4) {\n variable.lastMA.shift() // Remove the first element of the array to keep it at a maximun of 4 SMA's\n }\n }\n}\n\nif (variable.trendMethod === \"EMA\") {\n let k = 2 / (N + 1)\n variable.ema = candle.close * k + variable.previousEMA * (1-k)\n variable.previousEMA = variable.ema\n if (variable.ema === undefined) {\n variable.lastMA.push(0)\n } else { \n variable.lastMA.push(variable.ema) // Add the current EMA value to the \"lastMA\" array\n } \n if (variable.lastMA.length > 4) {\n variable.lastMA.shift() // Remove the first element of the array to keep it at a maximun of 4 EMA's\n }\n} \n\n/* Calling the 3 last and current Moving Averages of the \"lastMA\" array */\nlet ma3Back = variable.lastMA [0] \nlet ma2Back = variable.lastMA [1]\nlet ma1Back = variable.lastMA [2]\nlet trendLine = variable.lastMA [3]\n\n/* Defining trend (Uptrend or Downtrend). It is important to avoid \"undefined\" candles or ma's */\nlet trend = \"None\"\nlet candle1Back = mainDependency.records[index - 1] // Calling previous candle\nlet candle2Back = mainDependency.records[index - 2] // Calling 2 previous candle\nlet candle3Back = mainDependency.records[index - 3] // Calling 3 previous candle\n\nif (candle1Back !== undefined && candle2Back !== undefined && candle3Back !== undefined) { \n if (ma1Back !== undefined && ma2Back !== undefined && ma3Back !== undefined) { \n if (candle1Back.close >= ma1Back && candle1Back.open >= ma1Back) {\n if (candle2Back.close >= ma2Back && candle2Back.open >= ma2Back) {\n if (candle3Back.close >= ma3Back && candle3Back.open >= ma3Back) {\n trend = \"Uptrend\"\n }\n }\n }\n if (candle1Back.close <= ma1Back && candle1Back.open <= ma1Back) {\n if (candle2Back.close <= ma2Back && candle2Back.open <= ma2Back) {\n if (candle3Back.close <= ma3Back && candle3Back.open <= ma3Back) {\n trend = \"Downtrend\"\n }\n }\n }\n }\n}\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here patterns will be defined\n// ----------------------------------------------------------------------------------------------------------------------------\n\n/* Patterns will be grouped as follows:\n1) Bearish continuation --> These patterns indicates that the current downtrend could continue.\n2) Bearish Reversal --> These patterns indicates that the current uptrend could turn to downtrend.\n3) Bullish Continuation --> These patterns indicates that the current uptrend could continue.\n4) Bullish Reversal --> These patterns indicates that the current downtrend could turn to uptrend. */\n\n/* \"BEARISH CONTINUATION\" group:\nThese patterns should appear during a downtrend to be valid*/\nif (trend === \"Downtrend\") {\n\n/* \"BEARISH STRONG LINE\" properties:\n1) Basic Candle can be \"Long Red Candle\", \"Red Marubozu\", \"Opening Red Marubozu\" or \"Closing Red Marubozu\".\n2) Average size: Long.\n3) The body has to be three times higher than the mean body.\n4) The body is placed below the trend line. */\n\nif (basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.body >= basicCandle.meanBody*3) {\n if (candle.open <= trendLine) {\n variable.name = \"Bearish Strong Line\"\n variable.forecast = \"Bearish Continuation\"\n }\n }\n }\n}\n\n} // Closing \"Bearish Continuation\" group\n\n//-------------------------------------------------------\n\n/* \"BEARISH REVERSAL\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend === \"Uptrend\") {\n\n/* \"BEARISH BELT HOLD\" properties:\n1) Basic Candle is \"Opening Red Marubozu\". \n2) Average size: Long.\n3) Short lower shadow. (20 percent of the candle is defined, user can change it). */\n\nif (basicCandle.name === \"Opening Red Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if(basicCandle.lowerShadow <= basicCandle.length*0.2) {\n variable.name = \"Bearish Belt Hold\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n}\n\n/* \"HANGING MAN\" properties:\n1) Basic Candle can be \"Green Spinning Top\", \" Red Spinning Top\" or \"High Wave\".\n2) Average size: Long.\n3) The upper shadow shorter than the body.\n4) Long lower shadow that is at least twice the size as the body.\n5) The body above the trend line. */\n\nif (basicCandle.name === \"Green Spinning Top\" || basicCandle.name === \"Red Spinning Top\" || basicCandle.name === \"High Wave\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.upperShadow <= basicCandle.body) {\n if (basicCandle.lowerShadow >= basicCandle.body*2) {\n if (candle.close >= trendLine && candle.open >= trendLine) {\n variable.name = \"Hanging Man\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n } \n}\n\n/* \"SHOOTING STAR\" properties:\n1) Basic Candle can be \"Green Spinning Top\", \" Red Spinning Top\" or \"High Wave\".\n2) Average size: Long.\n3) The lower shadow shorter than the body.\n4) Upper shadow that is at least two times longer than the body.\n5) The body above the trend line. */\n\nif (basicCandle.name === \"Green Spinning Top\" || basicCandle.name === \"Red Spinning Top\" || basicCandle.name === \"High Wave\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.lowerShadow <= basicCandle.body) {\n if (basicCandle.upperShadow >= basicCandle.body*2) {\n if (candle.close >= trendLine && candle.open >= trendLine) {\n variable.name = \"Shooting Star\"\n variable.forecast = \"Bearish Reversal\"\n } \n }\n }\n } \n}\n\n/* \"BEARISH STRONG LINE\" properties:\n1) Basic Candle can be \"Long Red Candle\", \"Red Marubozu\", \"Opening Red Marubozu\" or \"Closing Red Marubozu\". \n2) Average size: Long.\n3) The body has to be three times higher than the mean body.\n4) The opening price is above the trendline (Remember, if the body is below the trendline, belongs to bearish continuation). */\n\nif (basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.body >= basicCandle.meanBody*3) {\n if (candle.open >= trendLine) {\n variable.name = \"Bearish Strong Line\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n} // Closing \"Bearish Reversal\" group\n\n//-------------------------------------------------------\n\n/* \"BULLISH CONTINUATION\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend === \"Uptrend\") {\n\n/* \"BULLISH STRONG LINE\" properties:\n1) Basic Candle can be \"Long Green Candle\", \"Green Marubozu\", \"Opening Green Marubozu\" or \"Closing Green Marubozu\".\n2) Average size: Long.\n3) The body has to be three times higher than the mean body.\n4) The body is placed above the trendline. */\n\nif (basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.body >= basicCandle.meanBody*3) {\n if (candle.open >= trendLine) {\n variable.name = \"Bullish Strong Line\"\n variable.forecast = \"Bullish Continuation\"\n }\n }\n }\n}\n\n} // Closing \"Bullish Continuation\" group\n\n//-------------------------------------------------------\n\n/* \"BULLISH REVERSAL\" group:\nThese patterns should appear during a downtrend*/\nif (trend === \"Downtrend\") {\n\n/* \"BULLISH BELT HOLD\" properties:\n1) Basic Candle is \"Opening Green Marubozu\".\n2) Average size: Long.\n3) Short upper shadow. 20 percent of the candle length, user can change it value. */\n\nif (basicCandle.name === \"Opening Green Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.upperShadow <= basicCandle.length*0.2) {\n variable.name = \"Bullish Belt Hold\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n}\n\n/* \"HAMMER\" properties:\n1) Basic Candle can be \"Green Spinning Top\", \" Red Spinning Top\" or \"High Wave\".\n2) Average size: Long.\n3) The upper shadow shorter than the body.\n4) Lower shadow at least two times longer than the body. \n5) The body has to be below the trend line. */\n\nif (basicCandle.name === \"Green Spinning Top\" || basicCandle.name === \"Red Spinning Top\" || basicCandle.name === \"High Wave\" ) {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.upperShadow <= basicCandle.body) {\n if (basicCandle.lowerShadow >= basicCandle.body*2) {\n if (candle.close <= trendLine && candle.open <= trendLine) {\n variable.name = \"Hammer\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n }\n } \n}\n \n/* \"BULLISH STRONG LINE\" properties:\n1) Basic Candle can be \"Long Green Candle\", \"Green Marubozu\", \"Opening Green Marubozu\" or \"Closing Green Marubozu\". \n2) Average size: Long.\n3) The body three times higher than the mean body.\n4) The opening price is below the trendline (Remember, if the body is placed above the trendline, belongs to bulliish continuation). */\n\nif (basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.body >= basicCandle.meanBody*3) {\n if (candle.open <= trendLine) {\n variable.name = \"Bullish Strong Line\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n }\n}\n\n} // Closing \"Bullish Reversal\" group\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here all the variables that will be written in the records are defined \n// ----------------------------------------------------------------------------------------------------------------------------\n\nvariable.trend = trend\nvariable.trendLine = trendLine\nvariable.period = N // This record will be for pattern visualization on the chart\nvariable.bearishArrowHead = candle.max*1.02 // This record will be for pattern visualization on the chart\nvariable.bullishArrowHead = candle.min*0.98 // This record will be for pattern visualization on the chart","project":"Superalgos","id":"08e03d17-e3d4-4a60-9e76-8b0c246f6eab","savedPayload":{"position":{"x":4708.181636308345,"y":19193.27160890174},"targetPosition":{"x":4588.102783784305,"y":19102.515372521324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"45f3274c-5f6c-4730-83cc-3a4a80be5f11","savedPayload":{"position":{"x":4588.102783784305,"y":19102.515372521324},"targetPosition":{"x":4347.66576105129,"y":18923.01369094286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"/* It is necessary to define Moving Average of N Periods to define the trend of the market. */\nvariable.lastN = [ ] // Define lastN array to record the value of the last N candle closes (SMA)\nvariable.previousEMA = 0 // Initialize the variable previous enter to the main loop (EMA)\nvariable.lastMA = [0, 0, 0, 0] // Define lastMA array to record the value of the last 3 and current Moving Averages of N Periods","project":"Superalgos","id":"dcdb9df8-32b5-4c90-b392-8eb147d91a1e","savedPayload":{"position":{"x":4294.001042774589,"y":19370.16978745303},"targetPosition":{"x":4312.353012109685,"y":19220.490039329583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0571fcc4-4f29-4c5b-8de0-54da0ee0dd44","savedPayload":{"position":{"x":4312.353012109685,"y":19220.490039329583},"targetPosition":{"x":4347.66576105129,"y":18923.01369094286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61de6419-4760-4b57-a184-d5aac5114be8","savedPayload":{"position":{"x":4347.66576105129,"y":18923.01369094286},"targetPosition":{"x":4112.264531521449,"y":18372.754243610005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f3c0863c-ac0c-4fc0-b9ee-5f0f2bd722ea","savedPayload":{"position":{"x":3817.502182984086,"y":18339.872826796087},"targetPosition":{"x":3378.784622502266,"y":18239.738406515746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"One-Candle Patterns","id":"14f83391-e4a6-470c-90c0-19763f83429b"}}},{"type":"Product Definition","name":"Two-Candles Patterns","config":"{\n \"codeName\": \"Two-Candles-Patterns\",\n \"singularVariableName\": \"twoCandlePattern\",\n \"pluralVariableName\": \"twoCandlePatterns\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"8c35ce52-9dee-4d20-92e6-50ba7fd2882b","savedPayload":{"position":{"x":4105.741923194211,"y":18395.210116661106},"targetPosition":{"x":3692.4332887174132,"y":18509.48517375739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"4f1260c8-6d74-454e-963a-fa3ff910329c","savedPayload":{"position":{"x":4093.4955365505703,"y":18659.83069367279},"targetPosition":{"x":3692.4332887174132,"y":18509.48517375739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"Two-Candles Patterns Records","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"61a74369-9fad-4af6-99d8-c6e4821d4750","savedPayload":{"position":{"x":4511.506479424588,"y":18808.641406992305},"targetPosition":{"x":4512.631929064031,"y":18917.186767177074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d0948117-06a2-44e6-a9c6-eed01b943780","savedPayload":{"position":{"x":4512.631929064031,"y":18917.186767177074},"targetPosition":{"x":4515.490551317351,"y":19132.101015737037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"73933242-2824-4a63-bb50-d6043c1796a0","savedPayload":{"position":{"x":4687.381944801706,"y":18857.549328703673},"targetPosition":{"x":4629.570962774706,"y":18949.759972030603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d5bcbb61-ab9d-4908-91c4-0bbbdade33c0","savedPayload":{"position":{"x":4629.570962774706,"y":18949.759972030603},"targetPosition":{"x":4515.490551317351,"y":19132.101015737037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"name","config":"{ \n\"codeName\": \"name\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.name","project":"Superalgos","id":"34cec9a0-7a4d-430c-a69e-b67150a8701d","savedPayload":{"position":{"x":4802.913421971327,"y":18996.877389132147},"targetPosition":{"x":4709.592714974562,"y":19040.708844291315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c8a5978b-4038-4493-9c79-697d6508604f","savedPayload":{"position":{"x":4709.592714974562,"y":19040.708844291315},"targetPosition":{"x":4515.490551317351,"y":19132.101015737037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trend","config":"{ \n\"codeName\": \"trend\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.trend","project":"Superalgos","id":"d5af582e-67e7-4bd4-80c8-561fb4b28f0b","savedPayload":{"position":{"x":4830.5978010438885,"y":19173.31805259477},"targetPosition":{"x":4728.290959487345,"y":19159.96427499382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"ceed7f12-8a54-43bf-9bd0-c9297493d6a1","savedPayload":{"position":{"x":4728.290959487345,"y":19159.96427499382},"targetPosition":{"x":4515.490551317351,"y":19132.101015737037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"forecast","config":"{ \n\"codeName\": \"forecast\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.forecast","project":"Superalgos","id":"ce5d5a36-b9dd-404d-90c1-a6556cc15145","savedPayload":{"position":{"x":4758.2029272869,"y":19337.15030784822},"targetPosition":{"x":4679.404103803652,"y":19270.59398362157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"0e22e091-4ace-44ab-b1c9-aa386e928299","savedPayload":{"position":{"x":4679.404103803652,"y":19270.59398362157},"targetPosition":{"x":4515.490551317351,"y":19132.101015737037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bullishArrowHead","config":"{ \n\"codeName\": \"bullishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.bullishArrowHead","project":"Superalgos","id":"7095f60c-5b45-4f3c-b026-97c89a480135","savedPayload":{"position":{"x":4608.749972898444,"y":19435.843028155774},"targetPosition":{"x":4578.478959928612,"y":19337.237388278132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"228d8125-2609-45c6-9cc7-e644c017ee0e","savedPayload":{"position":{"x":4578.478959928612,"y":19337.237388278132},"targetPosition":{"x":4515.490551317351,"y":19132.101015737037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bearishArrowHead","config":"{ \n\"codeName\": \"bearishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.bearishArrowHead","project":"Superalgos","id":"409212af-d4f2-4371-9cc2-4402e16c1889","savedPayload":{"position":{"x":4430.222396179863,"y":19438.060444595878},"targetPosition":{"x":4457.811008546021,"y":19338.73067176096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"fa50b0e1-d8df-4a16-91c9-361541808fbf","savedPayload":{"position":{"x":4457.811008546021,"y":19338.73067176096},"targetPosition":{"x":4515.490551317351,"y":19132.101015737037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendLine","config":"{ \n\"codeName\": \"trendLine\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.trendLine","project":"Superalgos","id":"7302e487-d514-4964-bdc3-9901ba318dea","savedPayload":{"position":{"x":4278.505571438527,"y":19343.095925592825},"targetPosition":{"x":4355.319111136239,"y":19274.575067483856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"64444857-2818-42de-a4c1-69c4d2804ebf","savedPayload":{"position":{"x":4355.319111136239,"y":19274.575067483856},"targetPosition":{"x":4515.490551317351,"y":19132.101015737037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"period","config":"{ \n\"codeName\": \"period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.period","project":"Superalgos","id":"dfdef370-336e-4650-a441-4b65f7304047","savedPayload":{"position":{"x":4195.971924468871,"y":19182.08068833095},"targetPosition":{"x":4303.192232694928,"y":19165.241806554797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6dafe978-a5df-4f5b-a7ae-d496b83bcc94","savedPayload":{"position":{"x":4303.192232694928,"y":19165.241806554797},"targetPosition":{"x":4515.490551317351,"y":19132.101015737037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendMethod","config":"{ \n\"codeName\": \"trendMethod\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.trendMethod","project":"Superalgos","id":"aea83576-35e1-4190-b284-faf3f696436b","savedPayload":{"position":{"x":4220.405041993439,"y":19001.08247878895},"targetPosition":{"x":4319.346554396849,"y":19044.887374080874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"552e82f9-e5e6-4802-9cf2-d9a7bbbc5a22","savedPayload":{"position":{"x":4319.346554396849,"y":19044.887374080874},"targetPosition":{"x":4515.490551317351,"y":19132.101015737037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"17ec2118-b9df-415f-b5f3-120fb3b3155a","savedPayload":{"position":{"x":4515.490551317351,"y":19132.101015737037},"targetPosition":{"x":3692.4332887174132,"y":18509.48517375739},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"Two-Candles Patterns Code","code":"// -----------------------------------------------------------------------------------------------------------------------------\n// From here the variables that will be used during the definition of the patterns will be defined\n// -----------------------------------------------------------------------------------------------------------------------------\n\n /* In order to avoid errors, the initial condition of the output variables are defined */\nvariable.name = \"No Pattern\" // The name of the two-candle pattern, for panel visualization\nvariable.forecast = \"None\" // The forecast of the two-candle pattern, for panel visualization\nvariable.trend = \"None\" // The trend of the current pattern, for panel visualization\nvariable.trendLine = 1 // This record will be for pattern shapes visualization on the chart\nvariable.bearishArrowHead = 1 // This record will be for pattern shapes visualization on the chart\nvariable.bullishArrowHead = 1 // This record will be for pattern shapes visualization on the chart\nvariable.period = 0 // The period of the trend MA, for panel visualization\n \n/* \"Candles\", \"Basic Candles\" and \"One-Candle Patterns\" are dependencies */\nlet candle = record.current // Calling \"Candles\"\nlet basicCandle = getElement ('basicCandles', candle) // Calling \"Basic Candles\" product\nlet oneCandlePattern = getElement ('oneCandlePatterns', candle) // Calling \"One-Candle Patterns\" product\n\n/* Some properties of the previous candle are needed (max, min, open and close) */\nlet candle1Back = mainDependency.records[index - 1] \n\n/* In order to avoid \"undefined\" elements during calculations */\nif (basicCandle !== undefined && oneCandlePattern !== undefined && candle1Back !== undefined) { \n\n/*Another properties of the previous candle are needed (trend, span, name and direction)*/\nvariable.records1Back.push(oneCandlePattern.trend, basicCandle.size, basicCandle.name, basicCandle.direction)\nlet trend1Back = \"None\"\nlet size1Back = \"None\"\nlet name1Back = \"None\"\nlet direction1Back = \"None\"\nif (variable.records1Back[0] !== undefined) {\n trend1Back = variable.records1Back[0] // Taking first element of the array (index 0)\n}\nif (variable.records1Back[1] !== undefined) {\n size1Back = variable.records1Back[1] // Taking second element of the array (index 1)\n}\nif (variable.records1Back[2] !== undefined) {\n name1Back = variable.records1Back[2] // Taking third element of the array (index 2)\n}\nif (variable.records1Back[3] !== undefined) {\n direction1Back = variable.records1Back[3] // Taking fourth element of the array (index 3)\n}\nif (variable.records1Back.length === 8) { // Array with 8 elements, 4 currents and 4 from previous\n variable.records1Back.splice(0, 4) // Remove the first 4 elements of the array\n} \n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here patterns will be defined\n// ----------------------------------------------------------------------------------------------------------------------------\n\n/* Patterns will be grouped as follows:\n1) Bearish continuation --> These patterns indicates that the current downtrend could continue.\n2) Bearish Reversal --> These patterns indicates that the current uptrend could turn to downtrend.\n3) Bullish Continuation --> These patterns indicates that the current uptrend could continue.\n4) Bullish Reversal --> These patterns indicates that the current downtrend could turn to uptrend. */\n\n/* \"BEARISH CONTINUATION\" group:\nThese patterns should appear during a downtrend to be valid*/\nif (trend1Back === \"Downtrend\") {\n\n/* \"LAST ENGULFING BOTTOM\" properties:\nIt is important to know that this pattern has a \"Bearish Continuation\" or \"Bullish Reversal\" forecast, depending on the context.\n--First candle\n1) Can be any green basic candle, excluding Four-Price Doji.\n--Second candle\n1) Can be the following red basic candles: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Candle's body engulfs the prior candle's body.\n3) Average size: long. */\n\nif (direction1Back === \"Bullish\" && name1Back !== \"Four-Price Doji\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.name === \"Red Candle\" || basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\") {\n if (candle1Back.close <= candle.open && candle1Back.open > candle.close) {\n variable.name = \"Last Engulfing Bottom\"\n variable.forecast = \"Depends On The Context\"\n }\n }\n }\n}\n\n} // Closing \"Bearish Continuation\" group\n\n//-------------------------------------------------------\n\n/* \"BEARISH REVERSAL\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend1Back === \"Uptrend\") {\n\n/* \"BEARISH ENGULFING\" properties:\n--First candle\n1) Can be any green basic candle, excluding Four-Price Doji.\n--Second candle\n1) Can be the following red basic candles: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Candle's body engulfs the prior candle's body.\n3) Average size: long. */\n\nif (direction1Back === \"Bullish\" && name1Back !== \"Four-Price Doji\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.name === \"Red Candle\" || basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\") {\n if (candle1Back.close <= candle.open && candle1Back.open > candle.close) {\n variable.name = \"Bearish Engulfing\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n/* \"BEARISH HARAMI\" properties:\n--First candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Can be any red basic candle, excluding Four-Price Doji.\n2) Candle's body engulfed by the previous candle's body. */\n\nif (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.direction === \"Bearish\" && basicCandle.name !== \"Four-Price Doji\") {\n if (candle1Back.close >= candle.open && candle1Back.open < candle.close) {\n variable.name = \"Bearish Harami\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n/* \"BEARISH HARAMI CROSS\" properties:\n--First candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Should be a Classic Doji.\n2) Candle's body (including shadows) engulfed by the prior candle's body. */\n\nif (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.name === \"Classic Doji\") {\n if (candle1Back.close >= candle.max && candle1Back.open <= candle.min) {\n variable.name = \"Bearish Harami Cross\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n/* \"BEARISH TASUKI LINE\" properties:\n--First candle\n1) Bullish candle.\n2) Average size: Long.\n--Second candle\n1) Bearish candle.\n2) Opening price below or equal to the previous closing price.\n3) Closing price below the previous opening price.\n4) Average size: Long. */\n\nif (direction1Back === \"Bullish\" && size1Back === \"Long\") {\n if (basicCandle.direction === \"Bearish\" && basicCandle.size === \"Long\") {\n if (candle.open <= candle1Back.close && candle.close < candle1Back.open) {\n variable.name = \"Bearish Tasuki Line\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n}\n\n/* \"DESCENDING HAWK\" properties:\n--First candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Can be the following green basic candles: Short Green Candle, Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Candle's body engulfed by the prior candle's body. */\n\nif (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.name === \"Short Green Candle\" || basicCandle.name === \"Green Candle\" || basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\") {\n if (candle1Back.close >= candle.close && candle1Back.open < candle.open) {\n variable.name = \"Descending Hawk\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n/* \"TWEEZERS TOP\" properties:\n--First candle\n1) Any candle except the Four-Price Doji.\n2) Could be \"Bullish\" or \"Bearish\" candle.\n--Second candle\n1) Any candle except the Four-Price Doji.\n2) Could be \"Bullish\" or \"Bearish\" candle.\n3) High price equal to the previous high price. */\n\nif (candle1Back.name !== \"Four-Price Doji\" && basicCandle.name !== \"Four-Price Doji\" && candle.max === candle1Back.max) {\n variable.name = \"Tweezers Top\"\n variable.forecast = \"Bearish Reversal\"\n}\n\n/* \"TWO-CANDLE SHOOTING STAR\" properties:\n--First candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Can be the following basic candles: Red Spinning Top, Green Spinning Top, High Wave. \n2) No lower shadow or the shadow cannot be longer than then body.\n3) Upper shadow at least 2.5 times longer than the body.\n4) The open above or at the level of the previous candle’s close. */\n\nif (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.name === \"Red Spinning Top\" || basicCandle.name === \"Green Spinning Top\" || basicCandle.name === \"High Wave\") {\n if (basicCandle.lowerShadow <= basicCandle.body && basicCandle.upperShadow >= basicCandle.body*2.5 && candle.open >= candle1Back.close) {\n variable.name = \"Two-Candle Shooting Star\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n} // Closing \"Bearish Reversal\" group\n\n//-------------------------------------------------------\n\n/* \"BULLISH CONTINUATION\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend1Back === \"Uptrend\") {\n\n/* \"LAST ENGULFING TOP\" properties:\nIt is important to know that this pattern has a \"Bearish Continuation\" or \"Bullish Reversal\" forecast, depending on the context.\n--First candle\n1) Bearish candle, excluding \"Four-Price Doji\".\n--Second candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Candle's body engulfs the prior candle's body. \n3) Average size: Long. */\n\nif (direction1Back === \"Bearish\" && name1Back !== \"Four-Price Doji\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.name === \"Green Candle\" || basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\") {\n if (candle1Back.close >= candle.open && candle1Back.open < candle.close) { \n variable.name = \"Last Engulfing Top\"\n variable.forecast = \"Depends On The Context\"\n }\n }\n }\n}\n\n} // Closing \"Bullish Continuation\" group\n \n//-------------------------------------------------------\n\n/* \"BULLISH REVERSAL\" group:\nThese patterns should appear during a downtrend*/\nif (trend1Back === \"Downtrend\") {\n\n/* \"BULLISH ENGULFING\" properties:\n--First candle\n1) Bearish candle, excluding \"Four-Price Doji\".\n--Second candle\n1) Can be the following green basic candles: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Candle's body engulfs the prior candle's body. \n3) Average size: Long. */\n\nif (direction1Back === \"Bearish\" && name1Back !== \"Four-Price Doji\") {\n if (basicCandle.size === \"Long\") {\n if (basicCandle.name === \"Green Candle\" || basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\") {\n if (candle1Back.close >= candle.open && candle1Back.open < candle.close) { \n variable.name = \"Bullish Engulfing\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n }\n}\n\n/* \"BULLISH HARAMI\" properties:\n--First candle\n1) Can be the following red basic candles: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long.\n--Second candle\n1) Can be any green basic candle, excluding Four-Price Doji.\n2) Candle's body engulfed by the prior candle's body. */\n\nif (name1Back === \"Red Candle\" || name1Back === \"Long Red Candle\" || name1Back === \"Red Marubozu\" || name1Back === \"Opening Red Marubozu\" || name1Back === \"Closing Red Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.direction === \"Bullish\" && basicCandle.name !== \"Four-Price Doji\") {\n if (candle1Back.close <= candle.open && candle1Back.open > candle.close) {\n variable.name = \"Bullish Harami\"\n variable.forecast = \"Bulliish Reversal\"\n }\n }\n }\n}\n\n/* \"BULLISH HARAMI CROSS\" properties:\n--First candle\n1) Can be the following red basic candles: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long.\n--Second candle\n1) Should be a Classic Doji.\n2) Candle's body (including shadows) engulfed by the prior candle's body. */\n\nif (name1Back === \"Red Candle\" || name1Back === \"Long Red Candle\" || name1Back === \"Red Marubozu\" || name1Back === \"Opening Red Marubozu\" || name1Back === \"Closing Red Marubozu\") {\n if (size1Back === \"Long\") {\n if (basicCandle.name === \"Classic Doji\") {\n if (candle1Back.open >= candle.max && candle1Back.close <= candle.min) {\n variable.name = \"Bullish Harami Cross\"\n variable.forecast = \"Bulliish Reversal\"\n }\n }\n }\n}\n\n/* \"BULLISH TASUKI LINE\" properties:\n--First candle\n1) Bearish candle.\n2) Average size: Long.\n--Second candle\n1) Bullish candle.\n2) Opening price above or equal to the previous closing price\n3) Closing price above the previous opening price\n4) Average size: Long. */\n\nif (direction1Back === \"Bearish\" && size1Back === \"Long\") {\n if (basicCandle.direction === \"Bullish\" && basicCandle.size === \"Long\") {\n if (candle.open >= candle1Back.close && candle.close > candle1Back.open) {\n variable.name = \"Bullish Tasuki Line\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n}\n\n/* \"TWEEZERS BOTTOM\" properties:\n--First candle\n1) Any candle except the Four-Price Doji.\n2) Could be \"Bullish\" or \"Bearish\" candle.\n--Second candle\n1) Any candle except the Four-Price Doji.\n2) Could be \"Bullish\" or \"Bearish\" candle.\n3) Low price equal to the previous low price. */\n\nif (candle1Back.name !== \"Four-Price Doji\" && basicCandle.name !== \"Four-Price Doji\" && candle.min === candle1Back.min) {\n variable.name = \"Tweezers Bottom\"\n variable.forecast = \"Bullish Reversal\"\n}\n\n} // Closing \"Bullish Reversal\" group\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here all the variables that will be written in the records are defined \n// ----------------------------------------------------------------------------------------------------------------------------\n\nvariable.trend = trend1Back\nvariable.trendLine = oneCandlePattern.trendLine\nvariable.period = oneCandlePattern.period\nvariable.trendMethod = oneCandlePattern.trendMethod\nvariable.bearishArrowHead = candle.max*1.02 \nvariable.bullishArrowHead = candle.min*0.98\n\n} // Closing initial \"undefined\" avoid\n","project":"Superalgos","id":"0df41d0a-e490-427e-a355-9043e81eb3c1","savedPayload":{"position":{"x":3869.5860627862567,"y":19317.61201969103},"targetPosition":{"x":3771.4651932597408,"y":19127.082242222306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"36593fb7-a9ab-4e3f-95ff-9c291e0f96f6","savedPayload":{"position":{"x":3771.4651932597408,"y":19127.082242222306},"targetPosition":{"x":3673.162865767572,"y":18936.864823598287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"/* Because this pattern has two candles, the properties of the previous candle are needed. */\nvariable.records1Back = [ ] // The properties will be record in this array","project":"Superalgos","id":"36e0e453-9058-45de-bcff-bc1e17fe7aa8","savedPayload":{"position":{"x":3442.0272555997544,"y":19298.387154050335},"targetPosition":{"x":3557.6075329371306,"y":19117.527866464377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a939b7f6-400d-483f-9017-676c53451613","savedPayload":{"position":{"x":3557.6075329371306,"y":19117.527866464377},"targetPosition":{"x":3673.162865767572,"y":18936.864823598287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"896e9b4a-04e0-497d-be61-af2c96bb9d86","savedPayload":{"position":{"x":3673.162865767572,"y":18936.864823598287},"targetPosition":{"x":3692.4332887174132,"y":18509.48517375739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"29283392-6a01-4acd-8f41-328e92281980","savedPayload":{"position":{"x":3730.6087896128793,"y":18520.308817352176},"targetPosition":{"x":3378.784622502266,"y":18239.738406515746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Two-Candles Patterns","id":"3bf46641-3478-41fd-8407-0af20e72f30b"}}},{"type":"Product Definition","name":"Three-Candles Patterns","config":"{\n \"codeName\": \"Three-Candles-Patterns\",\n \"singularVariableName\": \"threeCandlePattern\",\n \"pluralVariableName\": \"threeCandlePatterns\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"087fc67e-78f9-4204-ba5e-8b670566a716","savedPayload":{"position":{"x":3965.2334788843473,"y":18705.002901661068},"targetPosition":{"x":3543.251136774903,"y":18628.545261527746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"b60cb94f-79c5-410c-b166-abc97d0f2bc3","savedPayload":{"position":{"x":3839.4790639176717,"y":18938.520201231913},"targetPosition":{"x":3543.251136774903,"y":18628.545261527746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"Three-Candles Patterns Records","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"1c316dcb-6d17-4108-ac41-f2d059685e5e","savedPayload":{"position":{"x":3826.6001807185166,"y":18798.36729589883},"targetPosition":{"x":3760.31041721116,"y":18946.432644328084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8328e683-8704-4b65-a774-63da0346e252","savedPayload":{"position":{"x":3760.31041721116,"y":18946.432644328084},"targetPosition":{"x":3629.575093193893,"y":19265.837720704258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"db0992c2-3fd6-4eb9-bbe9-40dad5ae53f6","savedPayload":{"position":{"x":4063.94441151938,"y":18993.883856043944},"targetPosition":{"x":3928.5134137427194,"y":19079.682057479906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fbef0b72-edde-4678-aca5-f405068271b3","savedPayload":{"position":{"x":3928.5134137427194,"y":19079.682057479906},"targetPosition":{"x":3629.575093193893,"y":19265.837720704258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"name","config":"{ \n\"codeName\": \"name\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.name","project":"Superalgos","id":"c397cffb-3ba1-435b-af0b-e920b319b23b","savedPayload":{"position":{"x":4082.3356879433704,"y":19270.78132779846},"targetPosition":{"x":3980.0691683058285,"y":19270.187876305354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"2f7591d7-6877-4fde-aafb-1b9580f6ad60","savedPayload":{"position":{"x":3980.0691683058285,"y":19270.187876305354},"targetPosition":{"x":3629.575093193893,"y":19265.837720704258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trend","config":"{ \n\"codeName\": \"trend\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.trend","project":"Superalgos","id":"ea48eb6b-63a3-444c-abd2-166097bb50c5","savedPayload":{"position":{"x":4007.0391316619207,"y":19514.4200361134},"targetPosition":{"x":3922.289634100427,"y":19459.160562500972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"162b594a-c0a4-45c0-a52c-45682978d00a","savedPayload":{"position":{"x":3922.289634100427,"y":19459.160562500972},"targetPosition":{"x":3629.575093193893,"y":19265.837720704258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"forecast","config":"{ \n\"codeName\": \"forecast\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.forecast","project":"Superalgos","id":"fd07c697-966a-4a3c-a123-61198f194538","savedPayload":{"position":{"x":3813.8233091573384,"y":19678.549086294497},"targetPosition":{"x":3772.3487692558992,"y":19585.973068700867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c1afb085-e6cd-4c27-af62-6765cb270c1d","savedPayload":{"position":{"x":3772.3487692558992,"y":19585.973068700867},"targetPosition":{"x":3629.575093193893,"y":19265.837720704258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bullishArrowHead","config":"{ \n\"codeName\": \"bullishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.bullishArrowHead","project":"Superalgos","id":"dd019f19-f96a-4e88-a2e1-0159ba87fbe3","savedPayload":{"position":{"x":3559.4542349435033,"y":19713.34858190846},"targetPosition":{"x":3576.3008203086865,"y":19612.229621545644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"7059a7a5-021b-4277-80b9-8ef4c5387736","savedPayload":{"position":{"x":3576.3008203086865,"y":19612.229621545644},"targetPosition":{"x":3629.575093193893,"y":19265.837720704258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bearishArrowHead","config":"{ \n\"codeName\": \"bearishArrowHead\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.bearishArrowHead","project":"Superalgos","id":"bc455c93-3c64-4cf4-ab94-0116da22c404","savedPayload":{"position":{"x":3331.213600526218,"y":19604.69011873805},"targetPosition":{"x":3397.3233196058645,"y":19527.94193903369},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"ec8749b1-4f5f-4163-b079-3dd9bec6eefa","savedPayload":{"position":{"x":3397.3233196058645,"y":19527.94193903369},"targetPosition":{"x":3629.575093193893,"y":19265.837720704258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendLine","config":"{ \n\"codeName\": \"trendLine\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.trendLine","project":"Superalgos","id":"54625f1a-aa6f-44a6-bf2e-bcf1f5210674","savedPayload":{"position":{"x":3195.7354388023377,"y":19390.21691584315},"targetPosition":{"x":3293.051902683841,"y":19362.693943698105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"7a781a34-4af5-4eb1-b237-1746ea2e69d0","savedPayload":{"position":{"x":3293.051902683841,"y":19362.693943698105},"targetPosition":{"x":3629.575093193893,"y":19265.837720704258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"period","config":"{ \n\"codeName\": \"period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.period","project":"Superalgos","id":"fd68bb74-c7f3-48ff-941c-121031aaf6a1","savedPayload":{"position":{"x":3148.9080998770005,"y":19111.394004630667},"targetPosition":{"x":3302.385051799891,"y":19160.120001489704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b738ac34-a6eb-41c3-9871-0fc1732be676","savedPayload":{"position":{"x":3302.385051799891,"y":19160.120001489704},"targetPosition":{"x":3629.575093193893,"y":19265.837720704258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"trendMethod","config":"{ \n\"codeName\": \"trendMethod\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.trendMethod","project":"Superalgos","id":"65ed19cf-524e-4ccd-94df-c60c9b41c40a","savedPayload":{"position":{"x":3294.509321639307,"y":18877.980836029772},"targetPosition":{"x":3400.467180561838,"y":18999.81502034397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"32ff1b3e-acb0-4961-82b9-1dd37a795c41","savedPayload":{"position":{"x":3400.467180561838,"y":18999.81502034397},"targetPosition":{"x":3629.575093193893,"y":19265.837720704258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8a01e390-aea9-494b-a002-9c7498f23189","savedPayload":{"position":{"x":3629.522318607167,"y":19265.779644981907},"targetPosition":{"x":3543.251136774903,"y":18628.545261527746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"Three-Candles Patterns Code","code":"// -----------------------------------------------------------------------------------------------------------------------------\n// From here the variables that will be used during the definition of the patterns will be defined\n// -----------------------------------------------------------------------------------------------------------------------------\n\n /* In order to avoid errors, the initial condition of the output variables are defined */\nvariable.name = \"No Pattern\" // The name of the pattern, for panel visualization\nvariable.forecast = \"None\" // The forecast of the pattern, for panel visualization\nvariable.trend = \"None\" // The trend of the current pattern, for panel visualization\nvariable.trendLine = 1 // This record will be for pattern shapes visualization on the chart\nvariable.bearishArrowHead = 1 // This record will be for pattern shapes visualization on the chart\nvariable.bullishArrowHead = 1 // This record will be for pattern shapes visualization on the chart\nvariable.period = 0 // The period of the trend MA, for panel visualization\n\n/* \"Candles\", \"Basic Candles\" and \"One-Candle Patterns\" are dependencies */\nlet candle = record.current // Calling \"Candles\" records\nlet basicCandle = getElement ('basicCandles', candle) // Calling \"Basic Candles\" records\nlet oneCandlePattern = getElement ('oneCandlePatterns', candle) // Calling \"One-Candle Patterns\" records\n\n/* Some properties of the previous 2 candles are needed (max, min, open and close) */\nlet candle1Back = mainDependency.records[index - 1] \nlet candle2Back = mainDependency.records[index - 2] \n\n/* To avoid \"undefined\" elements during calculations, the following if() condition will include all the entire code */\nif (basicCandle !== undefined && oneCandlePattern !== undefined && candle1Back !== undefined && candle2Back !== undefined) { \n\n/*To define patterns, another properties of the 2 previous candles are needed (trend, size, name and direction)*/\nvariable.recordsBack.push(oneCandlePattern.trend, basicCandle.size, basicCandle.name, basicCandle.direction)\nlet trend1Back = \"None\"\nlet size1Back = \"None\"\nlet name1Back = \"None\"\nlet direction1Back = \"None\"\nlet trend2Back = \"None\"\nlet size2Back = \"None\"\nlet name2Back = \"None\"\nlet direction2Back = \"None\"\n\nif (variable.recordsBack[0] !== undefined) {\n trend2Back = variable.recordsBack[0] // Taking first element of the array (index 0)\n}\nif (variable.recordsBack[1] !== undefined) {\n size2Back = variable.recordsBack[1] // Taking second element of the array (index 1)\n}\nif (variable.recordsBack[2] !== undefined) {\n name2Back = variable.recordsBack[2] // Taking third element of the array (index 2)\n}\nif (variable.recordsBack[3] !== undefined) {\n direction2Back = variable.recordsBack[3] // Taking fourth element of the array (index 3)\n}\nif (variable.recordsBack[0] !== undefined) {\n trend1Back = variable.recordsBack[4] // Taking fifth element of the array (index 4)\n}\nif (variable.recordsBack[1] !== undefined) {\n size1Back = variable.recordsBack[5] // Taking sixth element of the array (index 5)\n}\nif (variable.recordsBack[2] !== undefined) {\n name1Back = variable.recordsBack[6] // Taking seventh element of the array (index 6)\n}\nif (variable.recordsBack[3] !== undefined) {\n direction1Back = variable.recordsBack[7] // Taking eigthth element of the array (index 7)\n}\nif (variable.recordsBack.length === 12) { // Array with 12 elements, 4 currents, 4 from 1 previous and 4 from 2 previous \n variable.recordsBack.splice(0, 4) // Remove the first 4 elements of the array\n} \n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here patterns will be defined\n// ----------------------------------------------------------------------------------------------------------------------------\n\n/* Patterns will be grouped as follows:\n1) Bearish continuation --> These patterns indicates that the current downtrend could continue.\n2) Bearish Reversal --> These patterns indicates that the current uptrend could turn to downtrend.\n3) Bullish Continuation --> These patterns indicates that the current uptrend could continue.\n4) Bullish Reversal --> These patterns indicates that the current downtrend could turn to uptrend. */\n\n/* \"BEARISH CONTINUATION\" group:\nThese patterns should appear during a downtrend to be valid*/\nif (trend2Back === \"Downtrend\") {\n\n} // Closing \"Bearish Continuation\" group\n\n//-------------------------------------------------------\n\n/* \"BEARISH REVERSAL\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend2Back === \"Uptrend\") {\n\n/* \"ADVANCE BLOCK\" properties:\n--First candle\n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu or Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Bullish.\n2) Body shortet than the previous candle.\n3) Shadows longer than the first candle.\n--Third Candle \n1) Bullish.\n2) Body shortet than the previous candle.\n3) Shadows longer than the first candle. */\n\nif (name2Back === \"Green Candle\" || name2Back === \"Long Green Candle\" || name2Back === \"Opening Green Marubozu\" || name2Back === \"Closing Green Marubozu\" || name2Back === \"Green Marubozu\") {\n if (size2Back === \"Long\") {\n if (direction1Back === \"Bullish\" && (candle1Back.close - candle1Back.open) < (candle2Back.close - candle2Back.open) ) {\n if (basicCandle.direction === \"Bullish\" && (candle.close-candle.open) < (candle1Back.close - candle1Back.open) ) {\n variable.name = \"Advance Block\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n/* \"DELIBERATION\" properties:\n--First candle\n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu or Green Marubozu.\n--Second candle\n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu or Green Marubozu.\n2) Opening price is above the previous opening price.\n3) Closing price is above the previous closing price.\n--Third Candle \n1) Any following bullish basic candle: Short Green Candle or Green Spinning Top.\n2) Opening price is slightly lower or higher than the previous closing price.\n3) Closing price is above the previous closing price.\n4) Average size: Short. */\n\nif (name2Back === \"Green Candle\" || name2Back === \"Long Green Candle\" || name2Back === \"Opening Green Marubozu\" || name2Back === \"Closing Green Marubozu\" || name2Back === \"Green Marubozu\") {\n if (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\" || name1Back === \"Green Marubozu\") {\n if (candle1Back.open > candle2Back.open && candle1Back.close > candle2Back.close) {\n if (basicCandle.name === \"Short Green Candle\" || basicCandle.name === \"Green Spinning Top\") { \n if (basicCandle.size === \"Short\" && candle.close > candle1Back.close) {\n variable.name = \"Deliberation\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n }\n}\n\n/* \"IDENTICAL THREE CROWS\" properties:\n--First candle\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long.\n--Second candle\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long. \n3) Opening price at or near the prior close.\n--Third Candle\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long. \n3) Opening price at or near the prior close.*/\n\nif (name2Back === \"Red Candle\" || name2Back === \"Long Red Candle\" || name2Back === \"Red Marubozu\" || name2Back === \"Opening Red Marubozu\" || name2Back === \"Closing Red Marubozu\") {\n if (name1Back === \"Red Candle\" || name1Back === \"Long Red Candle\" || name1Back === \"Red Marubozu\" || name1Back === \"Opening Red Marubozu\" || name1Back === \"Closing Red Marubozu\") {\n if (basicCandle.name === \"Red Candle\" || basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\") {\n if (size2Back === \"Long\" && size1Back === \"Long\" && basicCandle.size === \"Long\") {\n variable.name = \"Identical Three Crows\"\n variable.forecast = \"Bulliish Reversal\"\n }\n }\n }\n}\n\n/* \"THREE INSIDE DOWN\" properties:\n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu or Green Marubozu.\n2) Average size: Long.\n--Second candle\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu or Red Spinning Top.\n2) Candle body is engulfed by the prior candle body.\n--Third Candle \n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu or Red Spinning Top.\n2) Closing price is below the previous closing price. */\n\nif (name2Back === \"Green Candle\" || name2Back === \"Long Green Candle\" || name2Back === \"Opening Green Marubozu\" || name2Back === \"Closing Green Marubozu\" || name2Back === \"Green Marubozu\") {\n if (size2Back === \"Long\") {\n if (name1Back === \"Red Candle\" || name1Back === \"Long Red Candle\" || name1Back === \"Red Marubozu\" || name1Back === \"Opening Red Marubozu\" || name1Back === \"Closing Red Marubozu\" || name1Back === \"Red Spinning Top\") {\n if (candle1Back.close > candle2Back.open) {\n if (basicCandle.name === \"Red Candle\" || basicCandle.name === \"Long Red Candle\" || basicCandle.name === \"Red Marubozu\" || basicCandle.name === \"Opening Red Marubozu\" || basicCandle.name === \"Closing Red Marubozu\" || basicCandle.name === \"Red Spinning Top\") {\n variable.name = \"Three Inside Down\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n }\n}\n\n/* \"THREE OUTSIDE DOWN\" properties:\n1) Any bullish basic candle except \"Four-Price Doji\".\n--Second candle\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Candle's body engulfs the prior candle's body. \n3) Average size: Long.\n--Third Candle \n1) Any bearish basic candle except \"Four-Price Doji\".\n2) Closing price is below the previous closing price. */ \n\nif (direction2Back === \"Bullish\" && name2Back !== \"Four-Price Doji\") {\n if (name1Back === \"Red Candle\" || name1Back === \"Long Red Candle\" || name1Back === \"Red Marubozu\" || name1Back === \"Opening Red Marubozu\" || name1Back === \"Closing Red Marubozu\") {\n if (candle1Back.close < candle2Back.open && size1Back === \"Long\") {\n if (basicCandle.direction === \"Bearish\" && basicCandle.name !== \"Four-Price Doji\") {\n variable.name = \"Three Outside Down\"\n variable.forecast = \"Bearish Reversal\"\n }\n }\n }\n}\n\n} // Closing \"Bearish Reversal\" group\n\n//-------------------------------------------------------\n\n/* \"BULLISH CONTINUATION\" group:\nThese patterns should appear during an uptrend to be valid */\nif (trend2Back === \"Uptrend\") {\n\n\n\n} // Closing \"Bullish Continuation\" group\n \n//-------------------------------------------------------\n\n/* \"BULLISH REVERSAL\" group:\nThese patterns should appear during a downtrend*/\nif (trend2Back === \"Downtrend\") {\n\n/* \"THREE INSIDE UP\" properties:\n1) Any following bearish basic candle: Red Candle, Long Red Candle, Red Marubozu, Opening Red Marubozu, Closing Red Marubozu.\n2) Average size: Long.\n--Second candle\n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu, Green Marubozu or Green Spinning Top.\n2) Candle body is engulfed by the prior candle body.\n--Third Candle \n1) Any following bullish basic candle: Green Candle, Long Green Candle, Opening Green Marubozu, Closing Green Marubozu, Green Marubozu or Green Spinning Top.\n2) Closing price is above the previous closing price. */\n\nif (name2Back === \"Red Candle\" || name2Back === \"Long Red Candle\" || name2Back === \"Opening Red Marubozu\" || name2Back === \"Closing Red Marubozu\" || name2Back === \"Red Marubozu\") {\n if (size2Back === \"Long\") {\n if (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\" || name1Back === \"Green Spinning Top\") {\n if (candle1Back.close < candle2Back.open) {\n if (basicCandle.name === \"Green Candle\" || basicCandle.name === \"Long Green Candle\" || basicCandle.name === \"Green Marubozu\" || basicCandle.name === \"Opening Green Marubozu\" || basicCandle.name === \"Closing Green Marubozu\" || basicCandle.name === \"Green Spinning Top\") {\n variable.name = \"Three Inside Up\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n }\n }\n}\n\n/* \"THREE OUTSIDE UP\" properties:\n1) Any bearish basic candle except \"Four-Price Doji\".\n--Second candle\n1) Any following bearish basic candle: Green Candle, Long Green Candle, Green Marubozu, Opening Green Marubozu, Closing Green Marubozu.\n2) Candle's body engulfs the prior candle's body. \n3) Average size: Long.\n--Third Candle \n1) Any bullish basic candle except \"Four-Price Doji\".\n2) Closing price is above the previous closing price. */ \n\nif (direction2Back === \"Bearish\" && name2Back !== \"Four-Price Doji\") {\n if (name1Back === \"Green Candle\" || name1Back === \"Long Green Candle\" || name1Back === \"Green Marubozu\" || name1Back === \"Opening Green Marubozu\" || name1Back === \"Closing Green Marubozu\") {\n if (candle1Back.close > candle2Back.open && size1Back === \"Long\") {\n if (basicCandle.direction === \"Bullish\" && basicCandle.name !== \"Four-Price Doji\") {\n variable.name = \"Three Outside Up\"\n variable.forecast = \"Bullish Reversal\"\n }\n }\n }\n}\n\n} // Closing \"Bullish Reversal\" group\n\n// ----------------------------------------------------------------------------------------------------------------------------\n// From here all the variables that will be written in the records are defined \n// ----------------------------------------------------------------------------------------------------------------------------\n\nvariable.trend = trend2Back\nvariable.trendLine = oneCandlePattern.trendLine\nvariable.period = oneCandlePattern.period\nvariable.trendMethod = oneCandlePattern.trendMethod\nvariable.bearishArrowHead = candle.max*1.02\nvariable.bullishArrowHead = candle.min*0.98 \n\n} // Closing initial \"undefined\" avoid","project":"Superalgos","id":"e4b8fa10-e9de-48b2-871b-fd5bc2be8544","savedPayload":{"position":{"x":3258.2746750303595,"y":19835.936507406826},"targetPosition":{"x":3248.7687718987836,"y":19514.66850116454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a3ca00b1-8cb7-40f0-9d46-e86bcae26607","savedPayload":{"position":{"x":3248.7687718987836,"y":19514.66850116454},"targetPosition":{"x":3239.270048206079,"y":19193.486203585882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"/* Because of these patterns have three candles, the properties of the previous 2 candles are needed. */\nvariable.recordsBack = [ ] // The properties will be recorded in this array","project":"Superalgos","id":"69da8b87-1e7f-45f4-bd47-9a9b0a2057e0","savedPayload":{"position":{"x":2692.413096542212,"y":19531.4375811615},"targetPosition":{"x":2965.815024425043,"y":19362.48280216782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"20684141-89f4-4049-8130-5219f9934b94","savedPayload":{"position":{"x":2965.815024425043,"y":19362.48280216782},"targetPosition":{"x":3239.270048206079,"y":19193.486203585882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1193e656-0fce-4d39-8f46-316d51a8bb95","savedPayload":{"position":{"x":3239.270048206079,"y":19193.486203585882},"targetPosition":{"x":3543.251136774903,"y":18628.545261527746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1b6f79d8-d1ba-49e5-a808-42f71fba5657","savedPayload":{"position":{"x":3574.0323051051673,"y":18645.174397071834},"targetPosition":{"x":3378.784622502266,"y":18239.738406515746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Three-Candles Patterns","id":"acdb9c43-0859-42be-87b0-1a600cf513d4"}}}],"id":"254b4e7d-0ede-4208-8f0a-a486dd1a0faf","savedPayload":{"position":{"x":3378.784622502266,"y":18239.738406515746},"targetPosition":{"x":2928.784622502266,"y":18239.738406515746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"plotters":[{"type":"Plotter","name":"Candle Patterns","config":"{\n\"codeName\": \"Candle-Patterns\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Basic Candles","config":"{ \n\"codeName\": \"Basic-Candles\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Basic Candles","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Candle Min","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)/2\ny = record.previous.min","project":"Superalgos","id":"da43ce7b-c3af-49b7-a95c-025494c40a6e","savedPayload":{"position":{"x":3224.339810746169,"y":18066.09285340539},"targetPosition":{"x":3108.2740985463897,"y":18343.660919380185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"84c72ff6-fc9c-4869-bd8e-ea8404df0a0f","savedPayload":{"position":{"x":3108.2740985463897,"y":18343.660919380185},"targetPosition":{"x":2989.743897483906,"y":18626.71701292928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.min","project":"Superalgos","id":"ee2ef08b-7253-46c1-a087-49feaeae0bd9","savedPayload":{"position":{"x":3474.569663430513,"y":18257.925086273455},"targetPosition":{"x":3234.8474549024104,"y":18440.047454226187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b077cf02-7c54-4023-9182-4de81327ff35","savedPayload":{"position":{"x":3234.8474549024104,"y":18440.047454226187},"targetPosition":{"x":2989.743897483906,"y":18626.71701292928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2fe07cd8-53ed-4533-a747-05b3906b4755","savedPayload":{"position":{"x":3017.4142713211113,"y":18811.34435385075},"targetPosition":{"x":2752.3091741782973,"y":19154.58899893521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Mean Length","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)/2\ny = record.previous.min + record.previous.meanLength","project":"Superalgos","id":"c8b8a404-7746-458c-91a4-61d13114c824","savedPayload":{"position":{"x":3789.0393780043614,"y":18385.9339285127},"targetPosition":{"x":3464.4659419795025,"y":18673.10931625475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2b2ed3d9-a095-403e-8ed8-62f7e73e9f1c","savedPayload":{"position":{"x":3464.4659419795025,"y":18673.10931625475},"targetPosition":{"x":3140.092531282282,"y":18960.68047341169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.min + record.meanLength","project":"Superalgos","id":"372fd8b2-9346-4c0a-8465-cb4e2ece90bc","savedPayload":{"position":{"x":3989.842097125742,"y":18787.216471546242},"targetPosition":{"x":3565.0225702069856,"y":18874.041740612527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"628ac9f1-445b-4638-8fd5-aa62f6fd859c","savedPayload":{"position":{"x":3565.0225702069856,"y":18874.041740612527},"targetPosition":{"x":3140.092531282282,"y":18960.68047341169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"86515391-e909-4183-a0bb-2f6b6d452087","savedPayload":{"position":{"x":3140.383792480221,"y":18960.369372117664},"targetPosition":{"x":2752.3091741782973,"y":19154.58899893521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"avgRef","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)/2\ny = record.previous.min + record.previous.avgRef","project":"Superalgos","id":"a231e15f-f884-4326-983c-001a812d2e08","savedPayload":{"position":{"x":3694.16531194211,"y":18694.203971131825},"targetPosition":{"x":3404.9509945914288,"y":18775.333017529032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"41fec509-9af9-4ef7-b947-90382ad5ee5d","savedPayload":{"position":{"x":3404.9509945914288,"y":18775.333017529032},"targetPosition":{"x":3106.2314933687667,"y":18860.09024923567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.min + record.avgRef","project":"Superalgos","id":"69d5c95c-ec98-4656-9057-54ab9fc64a1e","savedPayload":{"position":{"x":3704.1656952582307,"y":18996.2017323469},"targetPosition":{"x":3404.8182784720557,"y":18935.511211889676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9703549c-8ca6-4293-b4ec-83a4f899c806","savedPayload":{"position":{"x":3404.8182784720557,"y":18935.511211889676},"targetPosition":{"x":3106.2314933687667,"y":18860.09024923567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3fe2df6a-c2fe-4f66-8529-c959ba7dd010","savedPayload":{"position":{"x":3186.275332944584,"y":19148.00891042361},"targetPosition":{"x":2752.3091741782973,"y":19154.58899893521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Candle Min","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.4,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"e19cb185-a1ae-4595-b22f-825aabca3f15","savedPayload":{"position":{"x":4013.3832217761355,"y":19372.288738743868},"targetPosition":{"x":3580.05833729394,"y":19354.397964258522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"0c47d43f-28d6-4e22-bcab-ce1a5ba86b13","savedPayload":{"position":{"x":3580.05833729394,"y":19354.397964258522},"targetPosition":{"x":3146.5074321162247,"y":19336.786001080854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"aeb3daf8-939c-472d-a653-bb053b201626","savedPayload":{"position":{"x":3540.3237881457353,"y":19519.037120292287},"targetPosition":{"x":3146.5074321162247,"y":19336.786001080854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"84c72ff6-fc9c-4869-bd8e-ea8404df0a0f"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"cf9cdbd9-6a4d-4958-906f-555616617a31","savedPayload":{"position":{"x":3456.072331929103,"y":19633.313111001436},"targetPosition":{"x":3146.5074321162247,"y":19336.786001080854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"b077cf02-7c54-4023-9182-4de81327ff35"}}}],"id":"0e718fe1-b457-49b9-a1cd-118bd9f111f4","savedPayload":{"position":{"x":3146.5074321162247,"y":19336.786001080854},"targetPosition":{"x":2752.3091741782973,"y":19154.58899893521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Mean Length","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.4,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"51351071-cd12-48d6-aa76-8755bd6322b4","savedPayload":{"position":{"x":3781.057188158209,"y":19920.284927464694},"targetPosition":{"x":3398.4394046001344,"y":19716.222880712943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8487ed2a-b56a-4d41-895c-569bf127fedc","savedPayload":{"position":{"x":3398.4394046001344,"y":19716.222880712943},"targetPosition":{"x":3031.077500069283,"y":19489.372737950747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"4db28f87-f9dd-4420-87bc-d210699f8a01","savedPayload":{"position":{"x":3306.7091755733545,"y":19824.703324756287},"targetPosition":{"x":3031.077500069283,"y":19489.372737950747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"2b2ed3d9-a095-403e-8ed8-62f7e73e9f1c"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"a4fa988d-7488-4bf4-90f9-2ee6fd939475","savedPayload":{"position":{"x":3179.602605602917,"y":19893.734073694017},"targetPosition":{"x":3031.077500069283,"y":19489.372737950747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"628ac9f1-445b-4638-8fd5-aa62f6fd859c"}}}],"id":"32840d7a-c3be-4c5c-8604-ddec41903a8e","savedPayload":{"position":{"x":3031.077500069283,"y":19489.372737950747},"targetPosition":{"x":2752.3091741782973,"y":19154.58899893521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"avgRef","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.4,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","project":"Superalgos","id":"dc036a39-a0d7-43f5-ae0a-f49f80566f35","savedPayload":{"position":{"x":3344.6927878107217,"y":20287.938268319842},"targetPosition":{"x":3088.525795221851,"y":19937.867215200873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"332c16f9-b95f-4a5d-a0a7-825adec7b190","savedPayload":{"position":{"x":3088.525795221851,"y":19937.867215200873},"targetPosition":{"x":2854.636673442521,"y":19576.71832846637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"6df63fd0-62c4-49d9-aa62-43e4ebb9e2a3","savedPayload":{"position":{"x":2957.137120213716,"y":19998.52791081622},"targetPosition":{"x":2854.636673442521,"y":19576.71832846637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"41fec509-9af9-4ef7-b947-90382ad5ee5d"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"66870fcb-caf4-4e03-9db2-4f7fc0f8cae2","savedPayload":{"position":{"x":2788.400712830722,"y":20005.80926218142},"targetPosition":{"x":2854.636673442521,"y":19576.71832846637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"9703549c-8ca6-4293-b4ec-83a4f899c806"}}}],"id":"b504d259-c93f-4dfa-af0f-ffc23b3e616d","savedPayload":{"position":{"x":2854.636673442521,"y":19576.71832846637},"targetPosition":{"x":2752.3091741782973,"y":19154.58899893521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"dc146044-78b9-46c7-8e91-47619c333444","savedPayload":{"position":{"x":2752.3091741782973,"y":19154.58899893521},"targetPosition":{"x":2328.0907190410617,"y":19064.787018629508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Basic Candles","config":"{ \n\"codeName\": \"Basic-Candles\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.name","project":"Superalgos","id":"b94b9d37-1552-4a01-b14b-4897feedd52f","savedPayload":{"position":{"x":3064.992134307644,"y":19060.123574952522},"targetPosition":{"x":2645.974111418096,"y":19174.198745397996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c416dd7-5075-49cc-b404-52fcca7a314c","savedPayload":{"position":{"x":2645.974111418096,"y":19174.198745397996},"targetPosition":{"x":2111.2757513842116,"y":19248.349291894905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.size","project":"Superalgos","id":"7ab67e86-30c4-4d4c-9048-156de658edaa","savedPayload":{"position":{"x":2932.1792242346746,"y":19510.00630562548},"targetPosition":{"x":2524.621875573481,"y":19378.665459485797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"84776c6f-6b89-4889-a119-f407ad30a39b","savedPayload":{"position":{"x":2524.621875573481,"y":19378.665459485797},"targetPosition":{"x":2111.2757513842116,"y":19248.349291894905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Upper Shadow %","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.upperShadowPercent","project":"Superalgos","id":"1515c038-a83d-4a33-803d-93f19df9d44f","savedPayload":{"position":{"x":2665.743200225137,"y":19915.178940332728},"targetPosition":{"x":2388.6246811440233,"y":19581.829521968906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5bfcb212-425e-481c-93ee-4ddfe0365d04","savedPayload":{"position":{"x":2388.6246811440233,"y":19581.829521968906},"targetPosition":{"x":2111.2757513842116,"y":19248.349291894905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Body %","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.bodyPercent","project":"Superalgos","id":"13fb74c6-4320-4755-b896-e3c15b507a8c","savedPayload":{"position":{"x":2217.6626321073145,"y":20109.588672897},"targetPosition":{"x":2164.4364453737326,"y":19679.068072411777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4787fdfa-a1b4-4252-be30-1c394ae28d23","savedPayload":{"position":{"x":2164.4364453737326,"y":19679.068072411777},"targetPosition":{"x":2111.2757513842116,"y":19248.349291894905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Lower Shadow %","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.lowerShadowPercent","project":"Superalgos","id":"621a0736-7286-407f-be3c-7f9237c1c4e6","savedPayload":{"position":{"x":1735.7871207121698,"y":20030.675867695973},"targetPosition":{"x":1923.453769724576,"y":19639.6149160824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"10570ba3-e68c-4aa0-83b9-daed46a61cee","savedPayload":{"position":{"x":1923.453769724576,"y":19639.6149160824},"targetPosition":{"x":2111.2757513842116,"y":19248.349291894905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Parameter: \"Nbodies\"","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.Nbodies","project":"Superalgos","id":"1ae2288d-9479-410d-9243-21430691060b","savedPayload":{"position":{"x":1372.431977043334,"y":19703.461291186337},"targetPosition":{"x":1741.7463279676067,"y":19475.979291881966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"34f62235-4353-4f23-8630-841fbee8665b","savedPayload":{"position":{"x":1741.7463279676067,"y":19475.979291881966},"targetPosition":{"x":2111.2757513842116,"y":19248.349291894905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Parameter: \"dojiFactor\" %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.dojiFactor","project":"Superalgos","id":"165f2a72-3eac-4740-8445-c9aa133e0ae4","savedPayload":{"position":{"x":1243.5738955116867,"y":19232.437105003395},"targetPosition":{"x":1677.3247072111735,"y":19240.40349000022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8fe17343-1ae4-4ba8-990a-bfe78872d998","savedPayload":{"position":{"x":1677.3247072111735,"y":19240.40349000022},"targetPosition":{"x":2111.2757513842116,"y":19248.349291894905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Parameter: \"sizeFactor\" %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFactor","project":"Superalgos","id":"6d9b3c35-1b25-46fb-8b16-ad551cf53493","savedPayload":{"position":{"x":1445.2886934898543,"y":18792.994619102887},"targetPosition":{"x":1750.6645036768023,"y":19007.14598342125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c2bd7cb-ea2a-48fe-9328-6e7cf397abe5","savedPayload":{"position":{"x":1750.6645036768023,"y":19007.14598342125},"targetPosition":{"x":2111.2757513842116,"y":19248.349291894905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Parameter: \"Nlengths\"","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.Nlengths","project":"Superalgos","id":"42a0f840-7b6f-4e38-ac13-442a40767d70","savedPayload":{"position":{"x":1765.5920550013343,"y":18452.79740026814},"targetPosition":{"x":1938.4315627863234,"y":18850.512730455863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"26d5e8b8-22fc-40fc-bb28-c3d5272845d0","savedPayload":{"position":{"x":1938.4315627863234,"y":18850.512730455863},"targetPosition":{"x":2111.2757513842116,"y":19248.349291894905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Average Size Method","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeMethod","project":"Superalgos","id":"867e57e7-6fc8-4e52-834d-f20f077f37fd","savedPayload":{"position":{"x":2216.0569970031465,"y":18334.56991999282},"targetPosition":{"x":2146.6869605550946,"y":18763.27017896996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"87d0bb1d-c8e2-47a6-85cc-4e747082305f","savedPayload":{"position":{"x":2146.6869605550946,"y":18763.27017896996},"targetPosition":{"x":2111.2757513842116,"y":19248.349291894905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7e6dc8b6-bdeb-4f1a-bf39-a239fa100200","savedPayload":{"position":{"x":2111.2757513842116,"y":19248.349291894905},"targetPosition":{"x":2328.0907190410617,"y":19064.787018629508},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"09e0a24c-ead1-40c6-9e43-72b46e4294c5","savedPayload":{"position":{"x":2514.2789220500163,"y":18810.258336358525},"targetPosition":{"x":2329.1552773955063,"y":18239.74204132476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"One-Candle Patterns","config":"{ \n\"codeName\": \"One-Candle-Patterns\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"One-Candle Pattern","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Bearish Arrow","project":"Superalgos","points":[{"type":"Point","name":"-1-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"e175ab11-cdad-4cfa-bc0e-e9d68fd56419","savedPayload":{"position":{"x":3080.8449301094734,"y":18746.352422980795},"targetPosition":{"x":2867.192448127458,"y":18981.700545824435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f0e4b32d-4c67-44a9-b215-46dd2de99095","savedPayload":{"position":{"x":2867.192448127458,"y":18981.700545824435},"targetPosition":{"x":2440.494091922381,"y":19452.123905385513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"ad0cc3d5-6a7a-45ac-b7db-41438836230c","savedPayload":{"position":{"x":3302.756198451276,"y":19045.48227567612},"targetPosition":{"x":3014.9586219710072,"y":19180.865349185882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"23dc1c78-a55d-482c-be5b-f6893e5294c7","savedPayload":{"position":{"x":3014.9586219710072,"y":19180.865349185882},"targetPosition":{"x":2440.494091922381,"y":19452.123905385513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.03","project":"Superalgos","id":"16686f17-868b-406b-a3ab-f4e9dbc8a002","savedPayload":{"position":{"x":3393.481687658881,"y":19406.212262641275},"targetPosition":{"x":3075.621361155667,"y":19421.38751332956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2c9565a9-49d5-4f04-91ad-a073ff669a46","savedPayload":{"position":{"x":3075.621361155667,"y":19421.38751332956},"targetPosition":{"x":2440.494091922381,"y":19452.123905385513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.03","project":"Superalgos","id":"1c6a13b5-d22c-4c2f-b692-a387651394ab","savedPayload":{"position":{"x":3338.101565844816,"y":19773.766967852527},"targetPosition":{"x":3038.5214096448362,"y":19666.4003294984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fe68b37d-0bf8-4347-9e38-4013fa120bc8","savedPayload":{"position":{"x":3038.5214096448362,"y":19666.4003294984},"targetPosition":{"x":2440.494091922381,"y":19452.123905385513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"7de429ac-d43c-4d1f-970a-69cfdcbc1fcc","savedPayload":{"position":{"x":3146.7507593779446,"y":20093.10491765014},"targetPosition":{"x":2911.103971327855,"y":19879.111574348302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a4e0461d-4d13-4a01-9332-3fd94aa6647a","savedPayload":{"position":{"x":2911.103971327855,"y":19879.111574348302},"targetPosition":{"x":2440.494091922381,"y":19452.123905385513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"e156a730-1cf6-40a2-8272-8ba1ff8534a7","savedPayload":{"position":{"x":2847.504911126409,"y":20314.510612767343},"targetPosition":{"x":2711.6588493404197,"y":20026.84675988325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7b205c46-8dc6-4e0b-bca6-258a84c652c5","savedPayload":{"position":{"x":2711.6588493404197,"y":20026.84675988325},"targetPosition":{"x":2440.494091922381,"y":19452.123905385513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bearishArrowHead","project":"Superalgos","id":"459bad82-6540-43d3-8c3c-73b119d4dfed","savedPayload":{"position":{"x":2486.1439746701617,"y":20404.88499446093},"targetPosition":{"x":2471.050898579473,"y":20086.86540205742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"71bbdced-dc17-4019-a104-c37bd0ecdc98","savedPayload":{"position":{"x":2471.050898579473,"y":20086.86540205742},"targetPosition":{"x":2440.494091922381,"y":19452.123905385513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fccdf048-5edb-4377-9f0e-27a4c21e21f1","savedPayload":{"position":{"x":2468.729377774256,"y":19383.163540792295},"targetPosition":{"x":1904.319882070864,"y":19180.678163456185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Trend Line","project":"Superalgos","points":[{"type":"Point","name":"Trend Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.trendLine\n","project":"Superalgos","id":"1b000a16-4143-4eb2-8b9c-9661ddad10ed","savedPayload":{"position":{"x":2678.5524092125706,"y":19634.00689373895},"targetPosition":{"x":2371.939021173617,"y":19549.25122019482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a20e46e-5535-4cb4-b34a-36faec96f4da","savedPayload":{"position":{"x":2371.939021173617,"y":19549.25122019482},"targetPosition":{"x":2065.498034888511,"y":19464.270163342197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Trend Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.trendLine","project":"Superalgos","id":"f159d45c-483e-4c46-b6ef-b1cd92d00cb7","savedPayload":{"position":{"x":2225.5647753152516,"y":20080.337715796893},"targetPosition":{"x":2145.634134277254,"y":19772.207931816487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"58992b77-271b-4362-b130-251d65d8be55","savedPayload":{"position":{"x":2145.634134277254,"y":19772.207931816487},"targetPosition":{"x":2065.498034888511,"y":19464.270163342197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"edfd4367-c042-4fa0-8f77-31c218fc8d78","savedPayload":{"position":{"x":2120.2190763748877,"y":19400.096234833734},"targetPosition":{"x":1904.319882070864,"y":19180.678163456185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Bullish Arrow","project":"Superalgos","points":[{"type":"Point","name":"-1-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"fba54222-55a5-437d-92aa-756f08eecdb5","savedPayload":{"position":{"x":2999.412567559135,"y":19899.032294002413},"targetPosition":{"x":2681.9701834259977,"y":19879.026095805973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e8aef2aa-6d0c-42f5-82a4-7c37a157c8de","savedPayload":{"position":{"x":2681.9701834259977,"y":19879.026095805973},"targetPosition":{"x":2047.8706195696213,"y":19838.748239626057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"187b028b-4696-4003-90a1-b5beb8ea2ba3","savedPayload":{"position":{"x":2903.9571137125095,"y":20258.872793327308},"targetPosition":{"x":2618.2030164252683,"y":20118.54612774904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b834103f-86be-4106-ac3c-47b326cd97b4","savedPayload":{"position":{"x":2618.2030164252683,"y":20118.54612774904},"targetPosition":{"x":2047.8706195696213,"y":19838.748239626057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.97","project":"Superalgos","id":"e51d81db-649a-4b1b-8aad-ed2f24a9affa","savedPayload":{"position":{"x":2677.939859033446,"y":20554.5275394061},"targetPosition":{"x":2467.717629575909,"y":20315.606213759795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"54a1db25-bb24-4ef9-bcbd-1432848214fd","savedPayload":{"position":{"x":2467.717629575909,"y":20315.606213759795},"targetPosition":{"x":2047.8706195696213,"y":19838.748239626057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.97","project":"Superalgos","id":"bb33e4b3-dea3-40d4-89d6-4621df7a0ae0","savedPayload":{"position":{"x":2355.991520902866,"y":20741.420421467054},"targetPosition":{"x":2253.303182385527,"y":20440.284648501744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"800f7290-42e1-4970-a00c-f4a5cd30312b","savedPayload":{"position":{"x":2253.303182385527,"y":20440.284648501744},"targetPosition":{"x":2047.8706195696213,"y":19838.748239626057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"a09fda1a-0f15-45d2-92ae-e780435c819e","savedPayload":{"position":{"x":1987.5102180693102,"y":20790.88196958961},"targetPosition":{"x":2007.5409036627789,"y":20473.08229622266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4a83e816-d5a4-47f0-a30e-3f5e5320147e","savedPayload":{"position":{"x":2007.5409036627789,"y":20473.08229622266},"targetPosition":{"x":2047.8706195696213,"y":19838.748239626057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"1b3b0d03-bef2-4f05-9460-19227819c39b","savedPayload":{"position":{"x":1627.6078749458138,"y":20694.85680047352},"targetPosition":{"x":1767.851751856746,"y":20409.279505967876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c6806791-bd74-413b-b86c-61383118cba6","savedPayload":{"position":{"x":1767.851751856746,"y":20409.279505967876},"targetPosition":{"x":2047.8706195696213,"y":19838.748239626057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bullishArrowHead","project":"Superalgos","id":"931a9f64-7ec8-44a9-8555-6d03477940f2","savedPayload":{"position":{"x":1332.0058008190244,"y":20468.62831970925},"targetPosition":{"x":1570.9393303684374,"y":20258.574544207513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2f37b7be-5805-419d-a0a8-3e2fc5eb9e3b","savedPayload":{"position":{"x":1570.9393303684374,"y":20258.574544207513},"targetPosition":{"x":2047.8706195696213,"y":19838.748239626057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2591fc95-5f9b-409c-8816-11a3dd6d8581","savedPayload":{"position":{"x":2098.092518179368,"y":19748.368088421616},"targetPosition":{"x":1904.319882070864,"y":19180.678163456185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Bearish Arrow","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bearish Reversal\" || record.forecast === \"Bearish Continuation\" ","project":"Superalgos","id":"c92a8076-d1cf-4879-88e2-16f89c878649","savedPayload":{"position":{"x":2350.9770800043334,"y":20119.752507833793},"targetPosition":{"x":1766.872390821074,"y":19869.41564486204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"921dec12-c29d-4656-8ea5-6e5fc7c92469","savedPayload":{"position":{"x":2501.905121399439,"y":20477.082067254778},"targetPosition":{"x":2256.745753999443,"y":20274.425998150866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"d7ca8665-bd27-421a-be79-e5b48c4ffd3f","savedPayload":{"position":{"x":2256.745753999443,"y":20274.425998150866},"targetPosition":{"x":1766.872390821074,"y":19869.41564486204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","project":"Superalgos","id":"2360af46-2b53-4cea-a26b-019107a4e4dc","savedPayload":{"position":{"x":2300.597744523391,"y":20659.78179312054},"targetPosition":{"x":2122.516414849004,"y":20396.0415923759},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1beaa578-f91e-4eb9-bcc9-4c979bc9a87c","savedPayload":{"position":{"x":2122.516414849004,"y":20396.0415923759},"targetPosition":{"x":1766.872390821074,"y":19869.41564486204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","project":"Superalgos","id":"6c20d736-5211-4bb1-836f-3ee460ba4f75","savedPayload":{"position":{"x":1832.214783814059,"y":20501.94120019898},"targetPosition":{"x":1766.872390821074,"y":19869.41564486204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"f0e4b32d-4c67-44a9-b215-46dd2de99095"}}},{"type":"Polygon Vertex","name":"-2-","project":"Superalgos","id":"7870b61d-7540-4f9e-9d57-bc8b54dab81d","savedPayload":{"position":{"x":1738.9541872117916,"y":20505.377905270125},"targetPosition":{"x":1766.872390821074,"y":19869.41564486204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"23dc1c78-a55d-482c-be5b-f6893e5294c7"}}},{"type":"Polygon Vertex","name":"-3-","project":"Superalgos","id":"666d3979-14ea-4753-8d79-36a17ace6f3b","savedPayload":{"position":{"x":1647.3398250125247,"y":20494.94813973253},"targetPosition":{"x":1766.872390821074,"y":19869.41564486204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"2c9565a9-49d5-4f04-91ad-a073ff669a46"}}},{"type":"Polygon Vertex","name":"-4-","project":"Superalgos","id":"58596c8a-eab1-4926-a006-4c287afd7096","savedPayload":{"position":{"x":1558.7581009651767,"y":20471.43853722881},"targetPosition":{"x":1766.872390821074,"y":19869.41564486204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"fe68b37d-0bf8-4347-9e38-4013fa120bc8"}}},{"type":"Polygon Vertex","name":"-5-","project":"Superalgos","id":"e6073465-7636-48b1-8344-5e82a314ac1d","savedPayload":{"position":{"x":1474.746583144315,"y":20435.517123066646},"targetPosition":{"x":1766.872390821074,"y":19869.41564486204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"a4e0461d-4d13-4a01-9332-3fd94aa6647a"}}},{"type":"Polygon Vertex","name":"-6-","project":"Superalgos","id":"87a3f44c-5361-4e65-a9f3-1c5a461600b0","savedPayload":{"position":{"x":1396.8724749228968,"y":20387.996008736984},"targetPosition":{"x":1766.872390821074,"y":19869.41564486204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"7b205c46-8dc6-4e0b-bca6-258a84c652c5"}}},{"type":"Polygon Vertex","name":"-7-","project":"Superalgos","id":"dcd75a74-5275-4181-8801-8bb625ab2545","savedPayload":{"position":{"x":1319.5782461135022,"y":20322.0766452818},"targetPosition":{"x":1766.872390821074,"y":19869.41564486204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"71bbdced-dc17-4019-a104-c37bd0ecdc98"}}}],"id":"d503108f-9b4f-4aae-9e99-b92e1aedb6c8","savedPayload":{"position":{"x":1832.6575089898834,"y":19777.02591209868},"targetPosition":{"x":1904.319882070864,"y":19180.678163456185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Trend Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"8b777f5a-b79e-45c5-ae85-3693d946b577","savedPayload":{"position":{"x":1869.853171656414,"y":20099.63718397527},"targetPosition":{"x":1806.0323727179748,"y":19806.442496787102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9ec3107b-2173-46b2-b831-7144910bd2ed","savedPayload":{"position":{"x":1806.0323727179748,"y":19806.442496787102},"targetPosition":{"x":1756.0359408061304,"y":19455.13752574431},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Trend Line End","project":"Superalgos","id":"66cee7f2-7951-4c23-84d9-8af01e017f34","savedPayload":{"position":{"x":1561.8831096034519,"y":19759.237933852222},"targetPosition":{"x":1756.0359408061304,"y":19455.13752574431},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line End","id":"58992b77-271b-4362-b130-251d65d8be55"}}},{"type":"Polygon Vertex","name":"Trend Line Begin","project":"Superalgos","id":"968f315d-33e1-4866-b061-42fb61964ad6","savedPayload":{"position":{"x":1406.8497611531275,"y":19543.11831407684},"targetPosition":{"x":1756.0359408061304,"y":19455.13752574431},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line Begin","id":"0a20e46e-5535-4cb4-b34a-36faec96f4da"}}}],"id":"2e0fe089-4dae-4895-b46b-4f5e07ac9926","savedPayload":{"position":{"x":1738.3877277845168,"y":19440.51804634741},"targetPosition":{"x":1904.319882070864,"y":19180.678163456185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Bullish Arrow","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bullish Reversal\" || record.forecast === \"Bullish Continuation\" ","project":"Superalgos","id":"e32f5ba5-7e4e-4b48-9255-985134b35bf6","savedPayload":{"position":{"x":1471.6957260684503,"y":20186.904119974984},"targetPosition":{"x":1301.0222865494725,"y":19572.881379809005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"dc4c1077-65c7-4b76-8420-ea719c497798","savedPayload":{"position":{"x":1287.1566181025773,"y":20528.443882008352},"targetPosition":{"x":1291.1073148502146,"y":20208.64155547604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8f42597b-9b13-46a3-b926-bf79570f27eb","savedPayload":{"position":{"x":1291.1073148502146,"y":20208.64155547604},"targetPosition":{"x":1301.0222865494725,"y":19572.881379809005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","project":"Superalgos","id":"97b28c5b-f7c8-41d4-82a7-2db8fe1bd533","savedPayload":{"position":{"x":1015.9337099747281,"y":20485.64531791023},"targetPosition":{"x":1111.283076602438,"y":20181.030283687556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"fc855e6f-bb88-485d-8079-99653a800a36","savedPayload":{"position":{"x":1111.283076602438,"y":20181.030283687556},"targetPosition":{"x":1301.0222865494725,"y":19572.881379809005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","project":"Superalgos","id":"6f1e0d8e-a1a7-4fc7-ab01-d2e4d5cb0807","savedPayload":{"position":{"x":846.039044048026,"y":20017.94181492224},"targetPosition":{"x":1301.0222865494725,"y":19572.881379809005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"e8aef2aa-6d0c-42f5-82a4-7c37a157c8de"}}},{"type":"Polygon Vertex","name":"-2-","project":"Superalgos","id":"7bff821f-bb70-4a9f-89b9-74bd1dcde01f","savedPayload":{"position":{"x":784.8170995781256,"y":19946.73815891691},"targetPosition":{"x":1301.0222865494725,"y":19572.881379809005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"b834103f-86be-4106-ac3c-47b326cd97b4"}}},{"type":"Polygon Vertex","name":"-3-","project":"Superalgos","id":"e14aa3b8-ed10-4358-87db-81d0f2fd580c","savedPayload":{"position":{"x":734.3937745412113,"y":19869.00175603716},"targetPosition":{"x":1301.0222865494725,"y":19572.881379809005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"54a1db25-bb24-4ef9-bcbd-1432848214fd"}}},{"type":"Polygon Vertex","name":"-4-","project":"Superalgos","id":"fa285436-8897-49fa-81bf-bcf727e368de","savedPayload":{"position":{"x":696.0585924480438,"y":19785.29825439155},"targetPosition":{"x":1301.0222865494725,"y":19572.881379809005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"800f7290-42e1-4970-a00c-f4a5cd30312b"}}},{"type":"Polygon Vertex","name":"-5-","project":"Superalgos","id":"cb9d9c29-9b41-42ba-bb6b-3e63dcbd253e","savedPayload":{"position":{"x":671.7308138341104,"y":19697.013607421773},"targetPosition":{"x":1301.0222865494725,"y":19572.881379809005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"4a83e816-d5a4-47f0-a30e-3f5e5320147e"}}},{"type":"Polygon Vertex","name":"-6-","project":"Superalgos","id":"56ccabba-f502-416d-92ff-da20ee90ddf3","savedPayload":{"position":{"x":662.7383136875033,"y":19606.371881746123},"targetPosition":{"x":1301.0222865494725,"y":19572.881379809005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"c6806791-bd74-413b-b86c-61383118cba6"}}},{"type":"Polygon Vertex","name":"-7-","project":"Superalgos","id":"688ebb45-45d7-4e2a-bfbc-f0bb799b2360","savedPayload":{"position":{"x":667.1931005166225,"y":19504.836576323876},"targetPosition":{"x":1301.0222865494725,"y":19572.881379809005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"2f37b7be-5805-419d-a0a8-3e2fc5eb9e3b"}}}],"id":"2cd7982f-ecc8-41ce-8b27-ede1d1ad7d8c","savedPayload":{"position":{"x":1393.3879915113357,"y":19496.397325469276},"targetPosition":{"x":1904.319882070864,"y":19180.678163456185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"0a02f148-0036-4d1c-aac5-a4e4ee5c25e7","savedPayload":{"position":{"x":1904.3472109186077,"y":19180.85809022492},"targetPosition":{"x":1841.8165061507789,"y":18584.032417983835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"One-Candle Patterns","config":"{ \n\"codeName\": \"One-Candle-Patterns\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Pattern Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.name","project":"Superalgos","id":"664bc7e8-5c76-4dea-82ad-acef43eaa2da","savedPayload":{"position":{"x":1617.2992773611513,"y":19054.655161558156},"targetPosition":{"x":1541.725611951988,"y":18763.77367310407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"119aa231-cf07-40a8-98ee-679e8d4e99ce","savedPayload":{"position":{"x":1541.725611951988,"y":18763.77367310407},"targetPosition":{"x":1519.7744713517714,"y":18440.997313279913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Direction","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trend","project":"Superalgos","id":"d4102f27-72a7-412c-b9b4-244e3ef5100d","savedPayload":{"position":{"x":1159.319282441793,"y":18921.892184975106},"targetPosition":{"x":1339.3292881889174,"y":18681.41185242583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2409211c-7992-4b1a-8273-25ce7e284b72","savedPayload":{"position":{"x":1339.3292881889174,"y":18681.41185242583},"targetPosition":{"x":1519.7744713517714,"y":18440.997313279913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Forecast","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.forecast","project":"Superalgos","id":"19821933-d558-452e-9dc0-5df90116fcc1","savedPayload":{"position":{"x":919.1114024700837,"y":18458.831272457523},"targetPosition":{"x":1219.2161818569257,"y":18449.857733587392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e240fe07-156c-4766-8fe0-f123781842ef","savedPayload":{"position":{"x":1219.2161818569257,"y":18449.857733587392},"targetPosition":{"x":1519.7744713517714,"y":18440.997313279913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Method","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendMethod","project":"Superalgos","id":"7541dc87-d801-48bc-b2d8-391e605c0c5e","savedPayload":{"position":{"x":1131.1758950951407,"y":17982.83366789137},"targetPosition":{"x":1325.2611531029725,"y":18211.840454406403},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e0c328ed-84b7-43a2-bfb2-274d1b1d3bae","savedPayload":{"position":{"x":1325.2611531029725,"y":18211.840454406403},"targetPosition":{"x":1519.7744713517714,"y":18440.997313279913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Period","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","project":"Superalgos","id":"6b66e742-6d13-43d6-a00f-a6ed9d070249","savedPayload":{"position":{"x":1634.5538332617143,"y":17851.48271774591},"targetPosition":{"x":1577.2690905267955,"y":18146.234517687204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e457e54c-7cbb-4866-9b67-3bb71332e2c5","savedPayload":{"position":{"x":1577.2690905267955,"y":18146.234517687204},"targetPosition":{"x":1519.7744713517714,"y":18440.997313279913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Value","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendLine","project":"Superalgos","id":"e33fff96-c3f5-4376-8d90-4feafc0df08b","savedPayload":{"position":{"x":2040.3453152022958,"y":18103.08333606556},"targetPosition":{"x":1773.8205455644056,"y":18240.49665170587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"42d2f0eb-65fa-4358-af25-484517433307","savedPayload":{"position":{"x":1773.8205455644056,"y":18240.49665170587},"targetPosition":{"x":1519.7744713517714,"y":18440.997313279913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d2af80dc-8d17-42f3-b88a-af1726c59859","savedPayload":{"position":{"x":1519.7744713517714,"y":18440.997313279913},"targetPosition":{"x":1841.8165061507789,"y":18584.032417983835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"14f83391-e4a6-470c-90c0-19763f83429b","savedPayload":{"position":{"x":1843.8809875097704,"y":18592.094209473187},"targetPosition":{"x":2329.1552773955063,"y":18239.74204132476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Two-Candles Patterns","config":"{ \n\"codeName\": \"Two-Candles Patterns\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Two-Candles Patterns","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Bearish Arrow","project":"Superalgos","points":[{"type":"Point","name":"-1-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"7dc394b3-ca00-4738-a554-420b393aa4f8","savedPayload":{"position":{"x":2195.72664109528,"y":19098.49208088335},"targetPosition":{"x":1905.6107409976103,"y":18967.820911851388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7291f0d5-78e1-4d7c-a73d-2068e491344b","savedPayload":{"position":{"x":1905.6107409976103,"y":18967.820911851388},"targetPosition":{"x":1326.245476167238,"y":18707.12605254107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"cfdc25f2-f236-4fd0-a09c-11759c6a4e07","savedPayload":{"position":{"x":1979.6165060384847,"y":19401.476843512814},"targetPosition":{"x":1761.4221215259677,"y":19169.551964755992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"87745033-dc64-4d86-8579-29cf35124f9a","savedPayload":{"position":{"x":1761.4221215259677,"y":19169.551964755992},"targetPosition":{"x":1326.245476167238,"y":18707.12605254107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.04","project":"Superalgos","id":"f30d7904-2195-4bab-93d4-d5083000fe6b","savedPayload":{"position":{"x":1664.2344869467343,"y":19599.03123109803},"targetPosition":{"x":1551.520168497762,"y":19301.490499630032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"87fc7e3a-455f-49bb-ab44-fc06ba845f00","savedPayload":{"position":{"x":1551.520168497762,"y":19301.490499630032},"targetPosition":{"x":1326.245476167238,"y":18707.12605254107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.04","project":"Superalgos","id":"f29b34a0-8604-4cde-b52c-237a422ccb31","savedPayload":{"position":{"x":1297.802246042109,"y":19660.60125008331},"targetPosition":{"x":1307.257273112402,"y":19342.425865039393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2bab7192-a08c-4461-b36e-f369491dfd42","savedPayload":{"position":{"x":1307.257273112402,"y":19342.425865039393},"targetPosition":{"x":1326.245476167238,"y":18707.12605254107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"20df1362-6e33-45c3-bf48-c4a76035b428","savedPayload":{"position":{"x":935.0327412310944,"y":19577.03772812304},"targetPosition":{"x":1065.5586532910347,"y":19286.745337813474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3c9d80e6-ad20-4b47-a8f5-1bf19a0b80e2","savedPayload":{"position":{"x":1065.5586532910347,"y":19286.745337813474},"targetPosition":{"x":1326.245476167238,"y":18707.12605254107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"64a8c860-86c4-40da-9ca0-d5e424ade757","savedPayload":{"position":{"x":631.7888178401663,"y":19360.980236245126},"targetPosition":{"x":863.5695451237589,"y":19142.822813284918},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c6a0d716-6534-453b-9d0f-a8c6faa502f0","savedPayload":{"position":{"x":863.5695451237589,"y":19142.822813284918},"targetPosition":{"x":1326.245476167238,"y":18707.12605254107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bearishArrowHead","project":"Superalgos","id":"62fc84a0-55e5-452c-b72d-4c91174ea85a","savedPayload":{"position":{"x":434.43056831295326,"y":19045.20651584465},"targetPosition":{"x":732.0195430902495,"y":18932.42318977743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fef9ea3b-84c5-43cd-9602-96f8170065bd","savedPayload":{"position":{"x":732.0195430902495,"y":18932.42318977743},"targetPosition":{"x":1326.245476167238,"y":18707.12605254107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9020cd21-a011-4b59-aec4-56469a5ce79f","savedPayload":{"position":{"x":1327.4442603114512,"y":18671.595550300277},"targetPosition":{"x":1345.4501805427353,"y":18071.923229611886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Trend Line","project":"Superalgos","points":[{"type":"Point","name":"Trend Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.trendLine\n","project":"Superalgos","id":"aed6b5b4-e6e5-4e5c-a13b-1d707c93c15a","savedPayload":{"position":{"x":1227.5652980273262,"y":19012.75883673778},"targetPosition":{"x":1213.516360777041,"y":18694.384235986516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"691a374a-ab65-4dc5-b788-979162f87185","savedPayload":{"position":{"x":1213.516360777041,"y":18694.384235986516},"targetPosition":{"x":1198.8882449174125,"y":18354.283862231532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Trend Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.trendLine","project":"Superalgos","id":"9b3acde4-3360-4869-8685-c08922111bd5","savedPayload":{"position":{"x":643.6905502953996,"y":18709.29589503549},"targetPosition":{"x":911.949394997886,"y":18537.96603627632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1e2e8a50-8a93-4696-9ed7-f8ea1da75c5e","savedPayload":{"position":{"x":911.949394997886,"y":18537.96603627632},"targetPosition":{"x":1198.8882449174125,"y":18354.283862231532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7af63af8-4b52-4c71-b427-906a0eaa37d2","savedPayload":{"position":{"x":1206.9743846717793,"y":18338.578246681463},"targetPosition":{"x":1345.4501805427353,"y":18071.923229611886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Bullish Arrow","project":"Superalgos","points":[{"type":"Point","name":"-1-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"7cd5ae63-7c34-4ce3-84f9-8de0b14fbafa","savedPayload":{"position":{"x":1073.3572103759761,"y":19377.05671068657},"targetPosition":{"x":994.5700125922958,"y":19068.71943471399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"38b0018b-d162-492e-90b3-604efc79c16e","savedPayload":{"position":{"x":994.5700125922958,"y":19068.71943471399},"targetPosition":{"x":837.0664760030559,"y":18453.0787667015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"3221cc5c-76c7-4335-bc1c-a781c1c7a6f4","savedPayload":{"position":{"x":702.1667932272649,"y":19397.285041624935},"targetPosition":{"x":747.1569478760975,"y":19082.18198252445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"66a65473-db28-42bf-8491-3497a35cc42b","savedPayload":{"position":{"x":747.1569478760975,"y":19082.18198252445},"targetPosition":{"x":837.0664760030559,"y":18453.0787667015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.96","project":"Superalgos","id":"5dbc1498-0b47-48cd-a37c-1a4f19f6c788","savedPayload":{"position":{"x":350.9999846965475,"y":19273.672980317464},"targetPosition":{"x":513.1924812069992,"y":18999.828410030525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cb37189b-fdb7-4cd7-aa78-1dfd71c8e614","savedPayload":{"position":{"x":513.1924812069992,"y":18999.828410030525},"targetPosition":{"x":837.0664760030559,"y":18453.0787667015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.96","project":"Superalgos","id":"1bcf2a18-15b8-4a2c-b7b6-1167c00ff5e9","savedPayload":{"position":{"x":73.87651109374201,"y":19025.061291040198},"targetPosition":{"x":328.56347058618485,"y":18834.204730153688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"aae0a6cc-e05b-402f-800c-807df07b1f37","savedPayload":{"position":{"x":328.56347058618485,"y":18834.204730153688},"targetPosition":{"x":837.0664760030559,"y":18453.0787667015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"8011dcdd-1c27-4bcb-8ea6-3344573aa905","savedPayload":{"position":{"x":-87.02971477915708,"y":18689.351132284843},"targetPosition":{"x":221.36798116612772,"y":18610.54173930777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a5f609bd-7162-4155-8778-d085b000ef04","savedPayload":{"position":{"x":221.36798116612772,"y":18610.54173930777},"targetPosition":{"x":837.0664760030559,"y":18453.0787667015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"37fa781c-1480-47fd-a862-39894108dc46","savedPayload":{"position":{"x":-107.20335720301227,"y":18318.192597426554},"targetPosition":{"x":207.92243856209825,"y":18363.163524108608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6edd83d4-739a-4651-9204-2a0f617e1256","savedPayload":{"position":{"x":207.92243856209825,"y":18363.163524108608},"targetPosition":{"x":837.0664760030559,"y":18453.0787667015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bullishArrowHead","project":"Superalgos","id":"65f9907e-ab3a-4ef4-a902-b8204afc49d7","savedPayload":{"position":{"x":16.485140691034758,"y":17966.931490806888},"targetPosition":{"x":290.30659238481894,"y":18129.128864711212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b98d1777-f3a2-4bcc-8312-6d89d1c6662e","savedPayload":{"position":{"x":290.30659238481894,"y":18129.128864711212},"targetPosition":{"x":837.0664760030559,"y":18453.0787667015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20da6d05-3166-4ba2-bd3c-b21770ae1958","savedPayload":{"position":{"x":865.6282381004057,"y":18431.584406822403},"targetPosition":{"x":1345.4501805427353,"y":18071.923229611886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Bearish Arrow","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bearish Reversal\" || record.forecast === \"Bearish Continuation\" ","project":"Superalgos","id":"bebcd91f-d028-4d8c-bc25-317d19f1b955","savedPayload":{"position":{"x":661.2834255513189,"y":18828.17056430762},"targetPosition":{"x":719.931808182755,"y":18194.096037691634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"8d874a62-2e9c-43e9-9632-e93a7e25d8c3","savedPayload":{"position":{"x":369.8325358981965,"y":19081.677832442525},"targetPosition":{"x":485.8930762706477,"y":18785.182823911993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6e948385-96a4-40ba-b8db-eb11d079aad1","savedPayload":{"position":{"x":485.8930762706477,"y":18785.182823911993},"targetPosition":{"x":719.931808182755,"y":18194.096037691634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","project":"Superalgos","id":"65302767-1fb6-4a56-b981-4ca898e3fc1f","savedPayload":{"position":{"x":134.71663270572753,"y":18945.766972505262},"targetPosition":{"x":329.57896375685596,"y":18695.428763387565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6365634c-c753-4be1-9f4e-d81a88690b96","savedPayload":{"position":{"x":329.57896375685596,"y":18695.428763387565},"targetPosition":{"x":719.931808182755,"y":18194.096037691634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","project":"Superalgos","id":"952bb578-3cc3-4576-b7dd-a043f2b4d719","savedPayload":{"position":{"x":137.54595356950085,"y":18451.66451690792},"targetPosition":{"x":719.931808182755,"y":18194.096037691634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"7291f0d5-78e1-4d7c-a73d-2068e491344b"}}},{"type":"Polygon Vertex","name":"-2-","project":"Superalgos","id":"bc4ee454-7c2b-4808-a99c-002afae05d39","savedPayload":{"position":{"x":105.67634668296887,"y":18363.70208971497},"targetPosition":{"x":719.931808182755,"y":18194.096037691634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"87745033-dc64-4d86-8579-29cf35124f9a"}}},{"type":"Polygon Vertex","name":"-3-","project":"Superalgos","id":"6ad8a90c-4d6e-47ed-a4be-ae3a5684b26d","savedPayload":{"position":{"x":86.96060272565228,"y":18273.261845624096},"targetPosition":{"x":719.931808182755,"y":18194.096037691634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"87fc7e3a-455f-49bb-ab44-fc06ba845f00"}}},{"type":"Polygon Vertex","name":"-4-","project":"Superalgos","id":"a49d5c98-f797-45ec-832a-c89de61c5030","savedPayload":{"position":{"x":81.81793337247291,"y":18181.661462412732},"targetPosition":{"x":719.931808182755,"y":18194.096037691634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"2bab7192-a08c-4461-b36e-f369491dfd42"}}},{"type":"Polygon Vertex","name":"-5-","project":"Superalgos","id":"5ee4c947-de43-4212-adf9-28d28820da8e","savedPayload":{"position":{"x":89.92446734741316,"y":18090.590554997452},"targetPosition":{"x":719.931808182755,"y":18194.096037691634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"3c9d80e6-ad20-4b47-a8f5-1bf19a0b80e2"}}},{"type":"Polygon Vertex","name":"-6-","project":"Superalgos","id":"c6e490ea-bdfd-4738-84e7-dcd8e1078605","savedPayload":{"position":{"x":112.09773933554607,"y":18002.158412882738},"targetPosition":{"x":719.931808182755,"y":18194.096037691634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"c6a0d716-6534-453b-9d0f-a8c6faa502f0"}}},{"type":"Polygon Vertex","name":"-7-","project":"Superalgos","id":"2aaa39e8-be04-491e-862e-b1bb03c8d29d","savedPayload":{"position":{"x":150.95643524521438,"y":17908.260169596124},"targetPosition":{"x":719.931808182755,"y":18194.096037691634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"fef9ea3b-84c5-43cd-9602-96f8170065bd"}}}],"id":"49566c3d-5038-4737-a68a-4f1f99a53296","savedPayload":{"position":{"x":756.3254536113964,"y":18187.85352139228},"targetPosition":{"x":1345.4501805427353,"y":18071.923229611886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Trend Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"5d90400c-c680-452a-b5d6-dd01f3483a67","savedPayload":{"position":{"x":451.4061846807126,"y":18328.23916504679},"targetPosition":{"x":725.7402688206748,"y":18167.571085284675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6ab5c6b9-d4e4-4b61-a135-17bb3a0204cb","savedPayload":{"position":{"x":725.7402688206748,"y":18167.571085284675},"targetPosition":{"x":1037.158326324472,"y":17991.83786227524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Trend Line End","project":"Superalgos","id":"d99e5489-5977-4ca7-9d11-a65feaeb3e1e","savedPayload":{"position":{"x":683.7732727352886,"y":17899.872713256853},"targetPosition":{"x":1037.158326324472,"y":17991.83786227524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line End","id":"1e2e8a50-8a93-4696-9ed7-f8ea1da75c5e"}}},{"type":"Polygon Vertex","name":"Trend Line Begin","project":"Superalgos","id":"0f83b930-9073-41a5-a3e6-59ea6b3ebafd","savedPayload":{"position":{"x":842.5294567868368,"y":17728.278050186207},"targetPosition":{"x":1037.158326324472,"y":17991.83786227524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line Begin","id":"691a374a-ab65-4dc5-b788-979162f87185"}}}],"id":"f826e8bf-cc5c-4b7f-9d15-1fc6a45d7ced","savedPayload":{"position":{"x":1054.4513436660054,"y":17996.350325190193},"targetPosition":{"x":1345.4501805427353,"y":18071.923229611886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Bullish Arrow","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bullish Reversal\" || record.forecast === \"Bullish Continuation\" ","project":"Superalgos","id":"edbfaf8f-8507-4d7b-9057-353f9571e615","savedPayload":{"position":{"x":329.13999908540427,"y":18009.978642156617},"targetPosition":{"x":860.1654539481824,"y":17660.609212304094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"010c4131-393a-474e-98af-444ebfbb7a8d","savedPayload":{"position":{"x":-52.527714717980416,"y":17939.245254592694},"targetPosition":{"x":252.10025806643534,"y":17846.194207603803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"5f6e62fc-4d25-4af4-86df-ca18bdd1e897","savedPayload":{"position":{"x":252.10025806643534,"y":17846.194207603803},"targetPosition":{"x":860.1654539481824,"y":17660.609212304094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","project":"Superalgos","id":"51545ef3-4202-4f31-8746-908b4d04e273","savedPayload":{"position":{"x":-93.63968108287008,"y":17670.486842659964},"targetPosition":{"x":224.45348297978126,"y":17667.46176191518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"504af6cf-5682-4ec9-90f1-3b5ac174cb67","savedPayload":{"position":{"x":224.45348297978126,"y":17667.46176191518},"targetPosition":{"x":860.1654539481824,"y":17660.609212304094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","project":"Superalgos","id":"e9090bdf-ffe5-4031-89d1-3de33dec1105","savedPayload":{"position":{"x":296.2801960645811,"y":17366.73130950318},"targetPosition":{"x":860.1654539481824,"y":17660.609212304094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"38b0018b-d162-492e-90b3-604efc79c16e"}}},{"type":"Polygon Vertex","name":"-2-","project":"Superalgos","id":"4a190301-2d52-49ae-a061-9bb553ea1c0f","savedPayload":{"position":{"x":344.8492318946337,"y":17287.078638453677},"targetPosition":{"x":860.1654539481824,"y":17660.609212304094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"66a65473-db28-42bf-8491-3497a35cc42b"}}},{"type":"Polygon Vertex","name":"-3-","project":"Superalgos","id":"f5a0eaa5-7837-4d60-8040-37f4353e3b27","savedPayload":{"position":{"x":404.1682454237489,"y":17216.527092611956},"targetPosition":{"x":860.1654539481824,"y":17660.609212304094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"cb37189b-fdb7-4cd7-aa78-1dfd71c8e614"}}},{"type":"Polygon Vertex","name":"-4-","project":"Superalgos","id":"13577516-ccb2-469f-9d59-f5bc71c16e77","savedPayload":{"position":{"x":472.27708310617527,"y":17155.168760337583},"targetPosition":{"x":860.1654539481824,"y":17660.609212304094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"aae0a6cc-e05b-402f-800c-807df07b1f37"}}},{"type":"Polygon Vertex","name":"-5-","project":"Superalgos","id":"9884c89e-fbb3-4101-b19f-0522b933175c","savedPayload":{"position":{"x":548.4968740693221,"y":17104.7351514593},"targetPosition":{"x":860.1654539481824,"y":17660.609212304094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"a5f609bd-7162-4155-8778-d085b000ef04"}}},{"type":"Polygon Vertex","name":"-6-","project":"Superalgos","id":"a089c901-705c-4b1a-bf29-fca8669ad902","savedPayload":{"position":{"x":631.1625043962995,"y":17066.15834650045},"targetPosition":{"x":860.1654539481824,"y":17660.609212304094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"6edd83d4-739a-4651-9204-2a0f617e1256"}}},{"type":"Polygon Vertex","name":"-7-","project":"Superalgos","id":"6a3d330f-6852-4cb0-80fe-72c3bf02aa31","savedPayload":{"position":{"x":728.6627277636035,"y":17037.81912025545},"targetPosition":{"x":860.1654539481824,"y":17660.609212304094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"b98d1777-f3a2-4bcc-8312-6d89d1c6662e"}}}],"id":"ba0bcada-77c5-450e-a1fc-7708bcaca60b","savedPayload":{"position":{"x":887.3917500526622,"y":17683.795083610763},"targetPosition":{"x":1345.4501805427353,"y":18071.923229611886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"e0c63725-4cfb-4d1e-9b70-80343de2e9b3","savedPayload":{"position":{"x":1345.4501805427353,"y":18071.923229611886},"targetPosition":{"x":1841.6731826176947,"y":17877.711280918953},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Two-Candles Patterns","config":"{ \n\"codeName\": \"Two-Candles Patterns\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Pattern Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.name","project":"Superalgos","id":"6d2625d7-82c7-4186-95a7-8bfe0892446a","savedPayload":{"position":{"x":1397.660874241701,"y":17603.87077117183},"targetPosition":{"x":1650.8742931129782,"y":17442.59693000413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f5538abe-a9aa-42ad-9c30-798dc41ddb80","savedPayload":{"position":{"x":1650.8742931129782,"y":17442.59693000413},"targetPosition":{"x":1904.0952458130341,"y":17281.22234910908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Direction","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trend","project":"Superalgos","id":"7f273725-f758-4f3e-bc3a-d7d47f919c7a","savedPayload":{"position":{"x":1335.399782705088,"y":17086.862839363992},"targetPosition":{"x":1619.7147319711803,"y":17184.013459610185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2e819599-22c9-4acd-ac77-92f18b20cb61","savedPayload":{"position":{"x":1619.7147319711803,"y":17184.013459610185},"targetPosition":{"x":1904.0952458130341,"y":17281.22234910908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Forecast","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.forecast","project":"Superalgos","id":"43090bdd-e415-48e8-ba75-4b80d4f0aeee","savedPayload":{"position":{"x":1701.4913553769875,"y":16715.327054393056},"targetPosition":{"x":1802.7726813657573,"y":16998.21659527268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"39649444-cba8-41d2-bb32-064f43cf8df4","savedPayload":{"position":{"x":1802.7726813657573,"y":16998.21659527268},"targetPosition":{"x":1904.0952458130341,"y":17281.22234910908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Method","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendMethod","project":"Superalgos","id":"f7a45eca-7fe0-4837-b719-92e81fa0774d","savedPayload":{"position":{"x":2219.6409935016054,"y":16769.770218885817},"targetPosition":{"x":2061.872623168216,"y":17025.44698063584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6cb4eef6-735b-409a-92c4-fe2b2e1e82be","savedPayload":{"position":{"x":2061.872623168216,"y":17025.44698063584},"targetPosition":{"x":1904.0952458130341,"y":17281.22234910908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Period","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","project":"Superalgos","id":"75c3e3bd-c749-463d-bae4-296abf83f078","savedPayload":{"position":{"x":2500.3733972303125,"y":17209.058000630794},"targetPosition":{"x":2202.2428684448278,"y":17245.165380240378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4c31ec17-bf6c-4dfc-8f42-1e7fe7e77297","savedPayload":{"position":{"x":2202.2428684448278,"y":17245.165380240378},"targetPosition":{"x":1904.0952458130341,"y":17281.22234910908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Value","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendLine","project":"Superalgos","id":"d9e33fbf-8990-4363-b674-f1ec7f71bfcd","savedPayload":{"position":{"x":2331.110057389338,"y":17702.049492892656},"targetPosition":{"x":2117.8226198334523,"y":17491.616096790727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d4f75b19-1a90-48d8-b6fe-9f064505ae93","savedPayload":{"position":{"x":2117.8226198334523,"y":17491.616096790727},"targetPosition":{"x":1904.0952458130341,"y":17281.22234910908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6426039f-b3dc-443b-bf6a-faa1dd1e3f2c","savedPayload":{"position":{"x":1904.0952458130341,"y":17281.22234910908},"targetPosition":{"x":1841.6731826176947,"y":17877.711280918953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3bf46641-3478-41fd-8407-0af20e72f30b","savedPayload":{"position":{"x":1843.8696151958356,"y":17887.281390754717},"targetPosition":{"x":2329.1552773955063,"y":18239.74204132476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Three-Candles Patterns","config":"{ \n\"codeName\": \"Three-Candles Patterns\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Three-Candles Patterns","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Bearish Arrow","project":"Superalgos","points":[{"type":"Point","name":"-1-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"050fd307-0763-423f-b0a7-488f1e22b2f0","savedPayload":{"position":{"x":1438.584999638042,"y":18276.482026675305},"targetPosition":{"x":1471.2081640418546,"y":17978.026548014397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b20f834d-a9d0-419e-87ce-c9d56cdfe948","savedPayload":{"position":{"x":1471.2081640418546,"y":17978.026548014397},"targetPosition":{"x":1536.2398045217597,"y":17381.691539969077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"ea09a04d-33f3-430d-9210-b60a0d93accf","savedPayload":{"position":{"x":1103.5358620806546,"y":18171.06859505426},"targetPosition":{"x":1247.9856495697604,"y":17907.642583588684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d119f364-4c32-4605-afcb-025e62d32f20","savedPayload":{"position":{"x":1247.9856495697604,"y":17907.642583588684},"targetPosition":{"x":1536.2398045217597,"y":17381.691539969077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bearishArrowHead*1.05","project":"Superalgos","id":"c472d80d-ff4c-4bdf-af76-b8fb1c9dd3f5","savedPayload":{"position":{"x":834.3371290446739,"y":17945.41465891187},"targetPosition":{"x":1068.6061790830172,"y":17757.30421542917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0e94de71-51dc-4d00-81fc-db6a47af48e9","savedPayload":{"position":{"x":1068.6061790830172,"y":17757.30421542917},"targetPosition":{"x":1536.2398045217597,"y":17381.691539969077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.05","project":"Superalgos","id":"c851f754-5148-4d6c-abef-446f4dcbf95c","savedPayload":{"position":{"x":671.9481969281296,"y":17633.886593613548},"targetPosition":{"x":960.413047449405,"y":17549.760383879864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"54f3f9d8-a0fd-489b-a280-5791c92afe4a","savedPayload":{"position":{"x":960.413047449405,"y":17549.760383879864},"targetPosition":{"x":1536.2398045217597,"y":17381.691539969077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"305bea41-e179-499b-bff8-687f861b575a","savedPayload":{"position":{"x":641.1069484058207,"y":17284.523492929984},"targetPosition":{"x":939.8684479850526,"y":17316.907453628504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"75712c99-427f-4995-ad28-116f514f1b1d","savedPayload":{"position":{"x":939.8684479850526,"y":17316.907453628504},"targetPosition":{"x":1536.2398045217597,"y":17381.691539969077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bearishArrowHead*1.01","project":"Superalgos","id":"3fd2696f-e7e8-41f5-ae74-e757cb72b755","savedPayload":{"position":{"x":746.4860836831685,"y":16949.458446896315},"targetPosition":{"x":1010.0997692128476,"y":17093.67168556322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"32a9e24a-ecbb-4272-868f-8a2c1131d780","savedPayload":{"position":{"x":1010.0997692128476,"y":17093.67168556322},"targetPosition":{"x":1536.2398045217597,"y":17381.691539969077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bearishArrowHead","project":"Superalgos","id":"b02696af-5430-4311-a2b8-b7a69d5f085b","savedPayload":{"position":{"x":983.311085250567,"y":16691.17940760464},"targetPosition":{"x":1160.3232677802007,"y":16914.542770371852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"da13c2e7-5b21-44b3-98ef-e101a208cd82","savedPayload":{"position":{"x":1160.3232677802007,"y":16914.542770371852},"targetPosition":{"x":1536.2398045217597,"y":17381.691539969077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ed6c9b38-f0d8-49d8-b6e6-831ba4391e67","savedPayload":{"position":{"x":1535.7415711041212,"y":17381.576474508744},"targetPosition":{"x":2111.6505599584743,"y":17213.585655808856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Trend Line","project":"Superalgos","points":[{"type":"Point","name":"Trend Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.trendLine\n","project":"Superalgos","id":"8df901ad-9507-4c1b-aa66-e80e52142e64","savedPayload":{"position":{"x":1132.0839059168138,"y":17332.087952896174},"targetPosition":{"x":1431.492385562884,"y":17220.937965035147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f05e403b-b940-4007-be9d-517cd5f5b761","savedPayload":{"position":{"x":1431.492385562884,"y":17220.937965035147},"targetPosition":{"x":1750.1087910076967,"y":17102.505862344937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Trend Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.trendLine","project":"Superalgos","id":"c790f239-fe7c-488c-a22c-ea82c2ea43f3","savedPayload":{"position":{"x":1239.33819158388,"y":16684.492080641947},"targetPosition":{"x":1486.079237807673,"y":16886.954448277505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e185278f-a45c-43e3-8691-6252e48809cc","savedPayload":{"position":{"x":1486.079237807673,"y":16886.954448277505},"targetPosition":{"x":1750.1087910076967,"y":17102.505862344937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"30170318-2cab-4bb6-ad3b-362b5a25d245","savedPayload":{"position":{"x":1815.2208708074359,"y":17164.44594669901},"targetPosition":{"x":2111.6505599584743,"y":17213.585655808856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Bullish Arrow","project":"Superalgos","points":[{"type":"Point","name":"-1-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin-(record.end-record.begin)\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"91cd5c4e-6dc9-41f4-abba-e66c6d9c7c3e","savedPayload":{"position":{"x":738.0839349878697,"y":17299.01636558067},"targetPosition":{"x":1006.9869456204578,"y":17128.70387821366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a9852c0f-8ac8-4b9d-ac29-e8d8f29da720","savedPayload":{"position":{"x":1006.9869456204578,"y":17128.70387821366},"targetPosition":{"x":1543.7365820693922,"y":16788.61263110348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-2-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"99075b18-7979-4f15-915a-272a4debd949","savedPayload":{"position":{"x":603.960110312295,"y":16951.63262851615},"targetPosition":{"x":917.6592275137082,"y":16897.266298923445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bb29fdb8-abfe-4377-9063-6790f2eb8d8f","savedPayload":{"position":{"x":917.6592275137082,"y":16897.266298923445},"targetPosition":{"x":1543.7365820693922,"y":16788.61263110348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-3-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.bullishArrowHead*0.94","project":"Superalgos","id":"9ab43674-72c8-4525-8697-49cbf37785e0","savedPayload":{"position":{"x":613.0889274399378,"y":16580.05449804568},"targetPosition":{"x":923.7266092055725,"y":16649.66997932559},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a46f8fdb-d00f-46f6-8ec9-3ef0166107ef","savedPayload":{"position":{"x":923.7266092055725,"y":16649.66997932559},"targetPosition":{"x":1543.7365820693922,"y":16788.61263110348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-4-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.94","project":"Superalgos","id":"cb153aae-7f46-4fbc-aa01-26f7193e8eaf","savedPayload":{"position":{"x":763.8269557166204,"y":16239.69627571295},"targetPosition":{"x":1024.173450096132,"y":16422.884547853933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2e60f4be-e8cc-4489-81f6-27fa3f61921b","savedPayload":{"position":{"x":1024.173450096132,"y":16422.884547853933},"targetPosition":{"x":1543.7365820693922,"y":16788.61263110348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-5-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"0b2f59a6-9de6-4ccd-81bc-28288491d705","savedPayload":{"position":{"x":1033.344096836241,"y":15982.95248836767},"targetPosition":{"x":1203.6421844258257,"y":16251.871096216133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1740e52b-986e-49cf-bb3f-c373200c4449","savedPayload":{"position":{"x":1203.6421844258257,"y":16251.871096216133},"targetPosition":{"x":1543.7365820693922,"y":16788.61263110348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-6-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end+(record.end-record.begin)\ny = record.bullishArrowHead*0.99","project":"Superalgos","id":"ee129388-9aec-4709-bf79-3a3b83fe769e","savedPayload":{"position":{"x":1380.601236882976,"y":15848.834740730377},"targetPosition":{"x":1435.0429790855997,"y":16162.440559758656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c8b169eb-6d38-41ab-bc48-e5a08c6f9f45","savedPayload":{"position":{"x":1435.0429790855997,"y":16162.440559758656},"targetPosition":{"x":1543.7365820693922,"y":16788.61263110348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-7-","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end-(record.end-record.begin)/2\ny = record.bullishArrowHead","project":"Superalgos","id":"c58904a7-8615-4a27-bd74-1966b35e8924","savedPayload":{"position":{"x":1752.415527276673,"y":15857.958616991591},"targetPosition":{"x":1682.8357833984337,"y":16168.585406915927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f5cee1fe-b34d-47e5-8d4a-26061487b242","savedPayload":{"position":{"x":1682.8357833984337,"y":16168.585406915927},"targetPosition":{"x":1543.7365820693922,"y":16788.61263110348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b8b4b3de-a98c-4d32-a385-61a186871641","savedPayload":{"position":{"x":1620.973443872157,"y":16868.415124882762},"targetPosition":{"x":2111.6505599584743,"y":17213.585655808856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Bearish Arrow","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bearish Reversal\" || record.forecast === \"Bearish Continuation\" ","project":"Superalgos","id":"4db8acef-2d4b-4e56-b319-d32b145c4fc1","savedPayload":{"position":{"x":1234.4899699810194,"y":16822.015023925254},"targetPosition":{"x":1819.5197471983156,"y":16689.294495603644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"da54ef22-f928-44a9-ba54-ddc157d6e2fd","savedPayload":{"position":{"x":920.9315133275086,"y":16633.288126748255},"targetPosition":{"x":1220.8019692846392,"y":16651.912146765062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bd6aeeb9-f9ce-4289-84ee-b89e5bce37ed","savedPayload":{"position":{"x":1220.8019692846392,"y":16651.912146765062},"targetPosition":{"x":1819.5197471983156,"y":16689.294495603644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","project":"Superalgos","id":"e73e98ac-0abf-488c-88c7-5f218487754a","savedPayload":{"position":{"x":973.3032293621218,"y":16382.028948760024},"targetPosition":{"x":1255.6883000772032,"y":16484.548016798173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"871328e3-7832-4dc2-8758-72612387f556","savedPayload":{"position":{"x":1255.6883000772032,"y":16484.548016798173},"targetPosition":{"x":1819.5197471983156,"y":16689.294495603644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","project":"Superalgos","id":"bc05844f-b3a3-4f25-8688-b555ff25cd31","savedPayload":{"position":{"x":1416.412852009984,"y":16244.068357326323},"targetPosition":{"x":1819.5197471983156,"y":16689.294495603644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"b20f834d-a9d0-419e-87ce-c9d56cdfe948"}}},{"type":"Polygon Vertex","name":"-2-","project":"Superalgos","id":"a7f33d57-8a91-4bf6-a755-2f9572b02d0b","savedPayload":{"position":{"x":1486.5341366029024,"y":16188.234119485443},"targetPosition":{"x":1819.5197471983156,"y":16689.294495603644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"d119f364-4c32-4605-afcb-025e62d32f20"}}},{"type":"Polygon Vertex","name":"-3-","project":"Superalgos","id":"4f2d69c6-4919-44a1-b4f4-b11c4d07a8d5","savedPayload":{"position":{"x":1562.854115474831,"y":16144.723819739347},"targetPosition":{"x":1819.5197471983156,"y":16689.294495603644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"0e94de71-51dc-4d00-81fc-db6a47af48e9"}}},{"type":"Polygon Vertex","name":"-4-","project":"Superalgos","id":"cae92b34-1055-4413-8521-b00838b6b3a1","savedPayload":{"position":{"x":1643.9156341791168,"y":16113.237343966646},"targetPosition":{"x":1819.5197471983156,"y":16689.294495603644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"54f3f9d8-a0fd-489b-a280-5791c92afe4a"}}},{"type":"Polygon Vertex","name":"-5-","project":"Superalgos","id":"26a5fbf5-1e3c-49a3-a80e-89a38760a6ce","savedPayload":{"position":{"x":1728.247104850132,"y":16093.914079998383},"targetPosition":{"x":1819.5197471983156,"y":16689.294495603644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"75712c99-427f-4995-ad28-116f514f1b1d"}}},{"type":"Polygon Vertex","name":"-6-","project":"Superalgos","id":"85dd4fe1-e267-4e2c-8249-e5a4ad8ac57b","savedPayload":{"position":{"x":1814.2565332601844,"y":16086.941641914495},"targetPosition":{"x":1819.5197471983156,"y":16689.294495603644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"32a9e24a-ecbb-4272-868f-8a2c1131d780"}}},{"type":"Polygon Vertex","name":"-7-","project":"Superalgos","id":"0b35f295-6655-45ea-8050-3ea4d565b0a8","savedPayload":{"position":{"x":1915.3018685780808,"y":16095.780904560012},"targetPosition":{"x":1819.5197471983156,"y":16689.294495603644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"da13c2e7-5b21-44b3-98ef-e101a208cd82"}}}],"id":"d6bca38f-dad2-4bad-b869-718840793911","savedPayload":{"position":{"x":1819.203720716232,"y":16688.956454351835},"targetPosition":{"x":2111.6505599584743,"y":17213.585655808856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Trend Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"735def02-7235-4d8d-b742-2606e271785c","savedPayload":{"position":{"x":1549.3936577691275,"y":16371.78585000826},"targetPosition":{"x":1787.251934452026,"y":16582.647155681487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1cb25c02-7f14-4290-a1dd-cdecfa3d41f1","savedPayload":{"position":{"x":1787.251934452026,"y":16582.647155681487},"targetPosition":{"x":2043.8061772920373,"y":16836.457512059205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Trend Line End","project":"Superalgos","id":"ca4b7aaa-e204-477b-917d-5b0d73dcd9ae","savedPayload":{"position":{"x":2021.884580794107,"y":16472.243897089895},"targetPosition":{"x":2043.8061772920373,"y":16836.457512059205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line End","id":"e185278f-a45c-43e3-8691-6252e48809cc"}}},{"type":"Polygon Vertex","name":"Trend Line Begin","project":"Superalgos","id":"1e9cb0f5-9153-4ebf-bea2-e4cdff34e27d","savedPayload":{"position":{"x":2261.346672941316,"y":16539.890437188667},"targetPosition":{"x":2043.8061772920373,"y":16836.457512059205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Trend Line Begin","id":"f05e403b-b940-4007-be9d-517cd5f5b761"}}}],"id":"954cc880-be0c-444b-b810-ddf42e1d6d03","savedPayload":{"position":{"x":2093.765523507329,"y":16913.672549319264},"targetPosition":{"x":2111.6505599584743,"y":17213.585655808856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Bullish Arrow","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.forecast === \"Bullish Reversal\" || record.forecast === \"Bullish Continuation\" ","project":"Superalgos","id":"71c1088c-78e4-4b13-a432-48488e81f5a9","savedPayload":{"position":{"x":1807.9167913847486,"y":16168.799541960043},"targetPosition":{"x":2304.370183192641,"y":16565.57665509949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n\"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"26a20027-9ab4-483f-8e8b-54c5feae8eb7","savedPayload":{"position":{"x":1757.4774358269242,"y":15784.18620859613},"targetPosition":{"x":1939.9911846868708,"y":16044.929358559406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"784e3863-e27c-439a-b219-d2257040f9a8","savedPayload":{"position":{"x":1939.9911846868708,"y":16044.929358559406},"targetPosition":{"x":2304.370183192641,"y":16565.57665509949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","project":"Superalgos","id":"c87d6249-dfd9-4bfc-b6d5-1033dc34ab93","savedPayload":{"position":{"x":2000.1638771482176,"y":15661.573356167055},"targetPosition":{"x":2101.6423829144187,"y":15963.275995487715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c307cae0-1d47-4fbd-b17e-c71ed0b460a2","savedPayload":{"position":{"x":2101.6423829144187,"y":15963.275995487715},"targetPosition":{"x":2304.370183192641,"y":16565.57665509949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-1-","project":"Superalgos","id":"01f59ec4-922f-4f32-89ff-271b4a1715ff","savedPayload":{"position":{"x":2409.6146735267685,"y":15938.437177817335},"targetPosition":{"x":2304.370183192641,"y":16565.57665509949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-1-","id":"a9852c0f-8ac8-4b9d-ac29-e8d8f29da720"}}},{"type":"Polygon Vertex","name":"-2-","project":"Superalgos","id":"63a0a7cf-0e25-4c76-a647-7bce1cf8349d","savedPayload":{"position":{"x":2500.3881632620905,"y":15959.97588730744},"targetPosition":{"x":2304.370183192641,"y":16565.57665509949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-2-","id":"bb29fdb8-abfe-4377-9063-6790f2eb8d8f"}}},{"type":"Polygon Vertex","name":"-3-","project":"Superalgos","id":"34336858-138b-4d29-8e19-963f987eeb7a","savedPayload":{"position":{"x":2585.92452122724,"y":15994.373375422858},"targetPosition":{"x":2304.370183192641,"y":16565.57665509949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-3-","id":"a46f8fdb-d00f-46f6-8ec9-3ef0166107ef"}}},{"type":"Polygon Vertex","name":"-4-","project":"Superalgos","id":"41b893b7-8450-497e-a10e-378e2aad4f86","savedPayload":{"position":{"x":2665.0672948677166,"y":16040.580814874134},"targetPosition":{"x":2304.370183192641,"y":16565.57665509949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-4-","id":"2e60f4be-e8cc-4489-81f6-27fa3f61921b"}}},{"type":"Polygon Vertex","name":"-5-","project":"Superalgos","id":"b298e992-97da-4b07-b1b5-2419ef56b05a","savedPayload":{"position":{"x":2736.507256461591,"y":16097.542610725372},"targetPosition":{"x":2304.370183192641,"y":16565.57665509949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-5-","id":"1740e52b-986e-49cf-bb3f-c373200c4449"}}},{"type":"Polygon Vertex","name":"-6-","project":"Superalgos","id":"c38d5012-bbf9-4b31-916a-e98a2557f2c3","savedPayload":{"position":{"x":2798.941597723704,"y":16164.06224315},"targetPosition":{"x":2304.370183192641,"y":16565.57665509949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-6-","id":"c8b169eb-6d38-41ab-bc48-e5a08c6f9f45"}}},{"type":"Polygon Vertex","name":"-7-","project":"Superalgos","id":"fd3144a6-1558-42b5-82d8-54975ee48863","savedPayload":{"position":{"x":2855.8847901222907,"y":16248.101901475375},"targetPosition":{"x":2304.370183192641,"y":16565.57665509949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-7-","id":"f5cee1fe-b34d-47e5-8d4a-26061487b242"}}}],"id":"f8d58d58-6d2e-454f-ae56-4f57ab357a85","savedPayload":{"position":{"x":2339.253169949676,"y":16657.768208835492},"targetPosition":{"x":2111.6505599584743,"y":17213.585655808856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"01e600b6-8d17-4ea5-bb31-30308e68433e","savedPayload":{"position":{"x":2111.6505599584743,"y":17213.585655808856},"targetPosition":{"x":2513.019277110725,"y":17659.27744427235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Three-Candles Patterns","config":"{ \n\"codeName\": \"Three-Candles Patterns\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Pattern Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.name","project":"Superalgos","id":"5a0d3dea-2329-4eb2-8c13-a112d1f03368","savedPayload":{"position":{"x":2635.587066756936,"y":17152.20436118327},"targetPosition":{"x":2867.393751066833,"y":17343.19708400878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8b719d3b-612d-4978-bde8-a748068d4366","savedPayload":{"position":{"x":2867.393751066833,"y":17343.19708400878},"targetPosition":{"x":3099.3670766727555,"y":17534.25734901168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Direction","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trend","project":"Superalgos","id":"9d7f27b8-56b3-4b97-a3b4-1687a546f367","savedPayload":{"position":{"x":3108.160445539859,"y":16932.93462143233},"targetPosition":{"x":3103.742886957916,"y":17233.518239398458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bdf5aa9a-a121-4275-969e-5eed6ebd878d","savedPayload":{"position":{"x":3103.742886957916,"y":17233.518239398458},"targetPosition":{"x":3099.3670766727555,"y":17534.25734901168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Forecast","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.forecast","project":"Superalgos","id":"04bc641a-62a0-4441-b4d5-58fa30fe413e","savedPayload":{"position":{"x":3574.7089225564014,"y":17166.036102721213},"targetPosition":{"x":3337.022274515981,"y":17350.073203626205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6ddacd18-8603-4112-bd00-80fe0cb03dcb","savedPayload":{"position":{"x":3337.022274515981,"y":17350.073203626205},"targetPosition":{"x":3099.3670766727555,"y":17534.25734901168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Method","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendMethod","project":"Superalgos","id":"3b43a0f7-d76f-4b8a-8228-9b0282826022","savedPayload":{"position":{"x":3683.455879461584,"y":17674.340980010405},"targetPosition":{"x":3391.060786254435,"y":17604.512176281663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"950a394b-df06-4b90-88fc-b59cb3cc1cb5","savedPayload":{"position":{"x":3391.060786254435,"y":17604.512176281663},"targetPosition":{"x":3099.3670766727555,"y":17534.25734901168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Period","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","project":"Superalgos","id":"2b0825d5-9e69-4b0a-861a-c88870b859c4","savedPayload":{"position":{"x":3350.9946451075775,"y":18078.32450876968},"targetPosition":{"x":3225.1959655778337,"y":17806.228001664735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"63fbe7e3-b323-40ea-bfdc-0aac0df03c0f","savedPayload":{"position":{"x":3225.1959655778337,"y":17806.228001664735},"targetPosition":{"x":3099.3670766727555,"y":17534.25734901168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend Line Value","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trendLine","project":"Superalgos","id":"e838b1bb-2079-479e-b85a-38019fca078d","savedPayload":{"position":{"x":2830.2574960161764,"y":18070.400843898733},"targetPosition":{"x":2964.931912699256,"y":17802.39757726518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f36e0123-4262-45d3-8e18-699407c0bb78","savedPayload":{"position":{"x":2964.931912699256,"y":17802.39757726518},"targetPosition":{"x":3099.3670766727555,"y":17534.25734901168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1f14d068-2fc4-42b5-8edf-7d552f50d1ed","savedPayload":{"position":{"x":3099.3670766727555,"y":17534.25734901168},"targetPosition":{"x":2513.019277110725,"y":17659.27744427235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"acdb9c43-0859-42be-87b0-1a600cf513d4","savedPayload":{"position":{"x":2514.2561082400025,"y":17669.13045320227},"targetPosition":{"x":2329.1552773955063,"y":18239.74204132476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e10e4374-b30c-4974-b2ff-bd789f50fde2","savedPayload":{"position":{"x":2478.784622502266,"y":18239.738406515746},"targetPosition":{"x":2928.784622502266,"y":18239.738406515746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"38d04c99-51a6-4c1c-853e-ba67e216854b","savedPayload":{"position":{"x":2928.784622502266,"y":18239.738406515746},"targetPosition":{"x":2928.784622502266,"y":18239.738406515746},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}} \ No newline at end of file diff --git a/Projects/Superalgos/Plugins/Data-Mines/Masters.json b/Projects/Superalgos/Plugins/Data-Mines/Masters.json index c22563933..584406c87 100644 --- a/Projects/Superalgos/Plugins/Data-Mines/Masters.json +++ b/Projects/Superalgos/Plugins/Data-Mines/Masters.json @@ -1 +1 @@ -{"type":"Data Mine","name":"Masters","config":"{\n\"codeName\": \"Masters\"\n}","project":"Superalgos","sensorBots":[{"type":"Sensor Bot","name":"Exchange Raw Data","config":"{\n\"codeName\": \"Exchange-Raw-Data\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Historic-OHLCVs","config":"{\n \"codeName\": \"Historic-OHLCVs\",\n \"description\": \"Retrieves and saves historical maket data\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 60000,\n \"retryWaitTime\": 10000,\n \"botModule\": \"Exchange Raw Data Historic OHLCVs\"\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[],"id":"dfe2556e-a765-4e38-9d30-7f91090c0069","savedPayload":{"position":{"x":7542.108005075513,"y":17855.768569069416},"targetPosition":{"x":7502.950147409498,"y":18153.20202748156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"ea39c98b-18e2-44ce-9f7f-86a8a76a688a","savedPayload":{"position":{"x":7868.207004814731,"y":17677.190023306815},"targetPosition":{"x":7685.578576112114,"y":17915.196025394187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[],"dataMineDataDependencies":[],"id":"5c7fae5a-6da6-4864-a167-f2f21d578c72","savedPayload":{"position":{"x":7685.578576112114,"y":17915.196025394187},"targetPosition":{"x":7502.950147409498,"y":18153.20202748156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e","savedPayload":{"position":{"x":7780.114007162883,"y":18038.396997772034},"targetPosition":{"x":7502.950147409498,"y":18153.20202748156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"","project":"Superalgos","id":"957e7e3a-b167-40be-93b5-9ba4ceff56e5","savedPayload":{"position":{"x":7800.383605821641,"y":18192.359885147573},"targetPosition":{"x":7502.950147409498,"y":18153.20202748156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"fe40a546-43ee-49df-908a-7e72f598f0cd","savedPayload":{"position":{"x":7740.956149496868,"y":18335.830456184176},"targetPosition":{"x":7502.950147409498,"y":18153.20202748156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc","savedPayload":{"position":{"x":7502.950147409498,"y":18153.20202748156},"targetPosition":{"x":7225.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Candles","config":"{\n\"codeName\": \"Candles\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"One-Min","config":"{\n\"codeName\": \"One-Min\"\n}","project":"Superalgos","id":"1c3696e4-c28e-4744-9100-706d6dce0c3c","savedPayload":{"position":{"x":7675.786287656112,"y":18268.007057191084},"targetPosition":{"x":7525.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"id":"2443883b-6959-42a3-ae3b-ef3102ffcdcc","savedPayload":{"position":{"x":7525.786287656112,"y":18268.007057191084},"targetPosition":{"x":7225.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition","name":"Volumes","config":"{\n\"codeName\": \"Volumes\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"One-Min","config":"{\n\"codeName\": \"One-Min\"\n}","project":"Superalgos","id":"73dcce78-c223-49e1-a93c-7e1ab7283f86","savedPayload":{"position":{"x":7641.5320772861905,"y":18440.21460175537},"targetPosition":{"x":7502.950147409498,"y":18382.81208690061},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"id":"3a43c6f3-bac0-404e-865f-822eb48c8660","savedPayload":{"position":{"x":7502.950147409498,"y":18382.81208690061},"targetPosition":{"x":7225.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"af924204-66a2-47d4-9910-66ab78acb06f","savedPayload":{"position":{"x":7225.786287656112,"y":18268.007057191084},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Sensor Bot","name":"Webhooks","config":"{\n\"codeName\": \"Webhooks\",\n\"repo\": \"Webhooks-Sensor-Bot\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Check-Webhook","config":"{\n \"codeName\": \"Check-Webhook\",\n \"description\": \"Retrieves and saves Webhooks Messages Received at the Web Server\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 30000,\n \"retryWaitTime\": 10000,\n \"botModule\": \"Webhooks Check Webhook\"\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[],"id":"9b932f7d-fee5-4d42-97a3-beda58fa0322","savedPayload":{"position":{"x":7778.444819430403,"y":18269.974344490875},"targetPosition":{"x":7506.552483319409,"y":18396.759823013082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Webhooks Check-Webhook","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"d6965837-6a98-474c-aee3-8053ac436b9c","savedPayload":{"position":{"x":8097.437135126733,"y":18292.570916412922},"targetPosition":{"x":7801.994809223071,"y":18344.665369713002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"57bc4c48-663d-4944-8b5b-b09cf6ae3578"}}}],"dataDependencies":[],"dataMineDataDependencies":[],"id":"ff50f64f-12f6-49e7-83a6-659109b89a6a","savedPayload":{"position":{"x":7801.994809223071,"y":18344.665369713002},"targetPosition":{"x":7506.552483319409,"y":18396.759823013082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"57bc4c48-663d-4944-8b5b-b09cf6ae3578","savedPayload":{"position":{"x":7805.410892746932,"y":18422.90654583738},"targetPosition":{"x":7506.552483319409,"y":18396.759823013082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"","project":"Superalgos","id":"ed7c8dbc-8f81-4a3f-a525-a839f3b30440","savedPayload":{"position":{"x":7788.460269555181,"y":18499.365866010783},"targetPosition":{"x":7506.552483319409,"y":18396.759823013082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"1982bdf9-4889-430b-a004-7760307852b9","savedPayload":{"position":{"x":7752.298096606106,"y":18568.832753918396},"targetPosition":{"x":7506.552483319409,"y":18396.759823013082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"69f37820-ab16-4e19-bfd8-386dd6e249a3","savedPayload":{"position":{"x":7506.552483319409,"y":18396.759823013082},"targetPosition":{"x":7207.694073891885,"y":18370.613100188784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"External Signals","config":"{\n\"codeName\": \"External-Signals\",\n \"singularVariableName\": \"externalSignal\",\n \"pluralVariableName\": \"externalSignals\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Single File","config":"{\n \"codeName\": \"Single-File\",\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.json\",\n \"validTimeFrames\": [\n \"Any Time Frame\"\n ]\n }","project":"Superalgos","id":"c52d1012-5e3b-41a0-b5af-84098b0594bf","savedPayload":{"position":{"x":7735.347473414355,"y":18645.292074091798},"targetPosition":{"x":7453.439687178582,"y":18542.686031094097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Timestamp","config":"{ \n\"codeName\": \"timestamp\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"d27e836f-1cea-41e1-b4e8-c411fb50addc","savedPayload":{"position":{"x":8059.147210221705,"y":19327.250202502157},"targetPosition":{"x":7755.575674532873,"y":19095.339495482174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Source","config":"{ \n\"codeName\": \"source\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6aea41d8-153e-4196-9a55-ec40700c6c0e","savedPayload":{"position":{"x":7947.911693441085,"y":19426.85124974337},"targetPosition":{"x":7755.575674532873,"y":19095.339495482174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Message","config":"{ \n\"codeName\": \"message\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7c1feeae-6fdb-4886-aeb7-f16d10433acd","savedPayload":{"position":{"x":7806.971542532254,"y":19475.767071186157},"targetPosition":{"x":7755.575674532873,"y":19095.339495482174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6e1d5a0a-c082-4916-bce1-3a8a1651ff02","savedPayload":{"position":{"x":7646.275970084544,"y":18772.49936402979},"targetPosition":{"x":7453.439687178582,"y":18542.686031094097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"29196db8-4c41-47ea-be7e-952cd9be9a0b","savedPayload":{"position":{"x":7453.439687178582,"y":18542.686031094097},"targetPosition":{"x":7207.694073891885,"y":18370.613100188784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f0d7c835-cf51-447a-8d00-1aeb854bc909","savedPayload":{"position":{"x":7207.694073891885,"y":18370.613100188784},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"indicatorBots":[{"type":"Indicator Bot","name":"Candles Volumes","config":"{\n\"codeName\": \"Candles-Volumes\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces different files with multi-period candles and volumes for entire markets.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"botModule\": \"Candles Volumes Multi Period Market\"\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Candles","project":"Superalgos","id":"5d82f670-e692-40ca-8d24-9273d0f5e08f","savedPayload":{"position":{"x":9192.418398650192,"y":19587.004094485357},"targetPosition":{"x":8748.47479412653,"y":19622.40208184942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}},{"type":"Output Dataset","name":"Multi-Period-Market Volumes","project":"Superalgos","id":"b198c9ea-3141-4407-9953-2b2ebb672450","savedPayload":{"position":{"x":9186.288461833392,"y":19703.793451632006},"targetPosition":{"x":8748.47479412653,"y":19622.40208184942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1"}}}],"outputDatasetFolders":[],"id":"d529ec20-8461-40d6-9dc3-14f9ab8b64be","savedPayload":{"position":{"x":8748.47479412653,"y":19622.40208184942},"targetPosition":{"x":7859.40295616951,"y":19576.64733629439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"ff665e30-1d31-429b-88dc-f5e623b9a5f8","savedPayload":{"position":{"x":9621.27263217908,"y":19668.685379116447},"targetPosition":{"x":8734.234812077724,"y":19739.019113791623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"6d911e31-cef3-4c4f-82e3-d7b9b1ba9541","savedPayload":{"position":{"x":9622.867657177518,"y":19785.3443592653},"targetPosition":{"x":8734.234812077724,"y":19739.019113791623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"957ffa57-d4df-4866-b99f-86cf8add689d","savedPayload":{"position":{"x":9609.173391702054,"y":19901.09726150065},"targetPosition":{"x":8734.234812077724,"y":19739.019113791623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles One-Min","project":"Superalgos","id":"982efbd9-6a54-4322-9a0f-52a6483d67d9","savedPayload":{"position":{"x":9580.460839293297,"y":20014.061215154023},"targetPosition":{"x":8734.234812077724,"y":19739.019113791623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"1c3696e4-c28e-4744-9100-706d6dce0c3c"}}},{"type":"Data Dependency","name":"Volumes One-Min","project":"Superalgos","id":"fe28906a-90b1-4a5e-88b1-110d994cb397","savedPayload":{"position":{"x":9537.086152644468,"y":20122.577057115817},"targetPosition":{"x":8734.234812077724,"y":19739.019113791623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"73dcce78-c223-49e1-a93c-7e1ab7283f86"}}}],"dataMineDataDependencies":[],"id":"09645f1b-96c2-4dbb-a99f-803c8ebe7a00","savedPayload":{"position":{"x":8734.234812077724,"y":19739.019113791623},"targetPosition":{"x":7859.40295616951,"y":19576.64733629439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d","savedPayload":{"position":{"x":8705.575904695885,"y":19851.751665043284},"targetPosition":{"x":7859.40295616951,"y":19576.64733629439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"c086e5db-7777-45d9-bb4d-381f9566341f","savedPayload":{"position":{"x":8662.402085706337,"y":19959.934161459554},"targetPosition":{"x":7859.40295616951,"y":19576.64733629439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"fe40a546-43ee-49df-908a-7e72f598f0cd"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5","savedPayload":{"position":{"x":8605.265378118529,"y":20061.828965164208},"targetPosition":{"x":7859.40295616951,"y":19576.64733629439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1","savedPayload":{"position":{"x":7446.688338474603,"y":18388.266771417148},"targetPosition":{"x":7155.599620591805,"y":18460.843340097046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces different files with multi-period candles and volumes on a daily format.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"botModule\": \"Candles Volumes Multi Period Daily\"\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Candles","project":"Superalgos","id":"f60fba20-b9d6-4362-b667-020096340e38","savedPayload":{"position":{"x":8715.915766665308,"y":20665.767083162216},"targetPosition":{"x":8335.889515147152,"y":20433.45752823543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Volumes","project":"Superalgos","id":"a507b588-ce8f-4d5c-9053-d130015560b5","savedPayload":{"position":{"x":8642.184862733458,"y":20756.797224362635},"targetPosition":{"x":8335.889515147152,"y":20433.45752823543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e683057-f911-4105-bc77-16f2706d1915"}}}],"outputDatasetFolders":[],"id":"4d806ace-6f82-449d-b908-afcd7d029a68","savedPayload":{"position":{"x":8335.889515147152,"y":20433.45752823543},"targetPosition":{"x":7643.595283001359,"y":19873.678412005855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"14730a16-e01e-4bc5-9886-0eed386152f2","savedPayload":{"position":{"x":9014.86821580154,"y":20983.83545120919},"targetPosition":{"x":8255.83757735318,"y":20519.403392246968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"1baff60d-84c4-4e27-b03d-663158ca6bba","savedPayload":{"position":{"x":8947.467233850286,"y":21079.308504042263},"targetPosition":{"x":8255.83757735318,"y":20519.403392246968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"4e77c03b-367c-450c-82ca-c7211c2fab8e","savedPayload":{"position":{"x":8868.34723938024,"y":21164.901646950744},"targetPosition":{"x":8255.83757735318,"y":20519.403392246968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles One-Min","project":"Superalgos","id":"2d324ca2-acc5-4390-ae37-0d350fe8e8fa","savedPayload":{"position":{"x":8778.717343712258,"y":21239.411328957893},"targetPosition":{"x":8255.83757735318,"y":20519.403392246968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"1c3696e4-c28e-4744-9100-706d6dce0c3c"}}},{"type":"Data Dependency","name":"Volumes One-Min","project":"Superalgos","id":"4051019a-9548-4541-a7e7-11097fe3f103","savedPayload":{"position":{"x":8679.837696703074,"y":21301.70639895236},"targetPosition":{"x":8255.83757735318,"y":20519.403392246968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"73dcce78-c223-49e1-a93c-7e1ab7283f86"}}}],"dataMineDataDependencies":[],"id":"1e4c5a40-0c64-423f-968d-31b178056cf3","savedPayload":{"position":{"x":8255.83757735318,"y":20519.403392246968},"targetPosition":{"x":7643.595283001359,"y":19873.678412005855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"2a021da8-9feb-475e-90ab-1586968c17c7","savedPayload":{"position":{"x":8166.401873379367,"y":20593.75117204399},"targetPosition":{"x":7643.595283001359,"y":19873.678412005855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"fa826f1b-2a52-4542-89b2-7190e137ef56","savedPayload":{"position":{"x":8067.90488732592,"y":20655.888206638447},"targetPosition":{"x":7643.595283001359,"y":19873.678412005855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"fe40a546-43ee-49df-908a-7e72f598f0cd"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3","savedPayload":{"position":{"x":7961.8100942438505,"y":20704.74114441311},"targetPosition":{"x":7643.595283001359,"y":19873.678412005855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d","savedPayload":{"position":{"x":7433.754776961843,"y":18573.22531812182},"targetPosition":{"x":7155.599620591805,"y":18460.843340097046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Candles","config":"{\n \"codeName\": \"Candles\",\n \"singularVariableName\": \"candle\",\n \"pluralVariableName\": \"candles\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8","savedPayload":{"position":{"x":7433.174891189126,"y":18999.020144214453},"targetPosition":{"x":7250.546462486509,"y":18761.014142127082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"678a567c-f08d-49b9-813b-4e54fd6afadb","savedPayload":{"position":{"x":7393.694090564393,"y":19024.65927592567},"targetPosition":{"x":7250.546462486509,"y":18761.014142127082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Min","config":"{\n \"codeName\": \"min\",\n \"isString\": false\n}","project":"Superalgos","id":"95264fe8-6089-4a70-bf6d-158bc43c04f3","savedPayload":{"position":{"x":7515.407242548015,"y":19191.21124412991},"targetPosition":{"x":7450.830578026773,"y":19326.59903678239},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Max","config":"{\n \"codeName\": \"max\",\n \"isString\": false\n}","project":"Superalgos","id":"b716bfaa-d785-45e3-b8ca-370284ac901c","savedPayload":{"position":{"x":7592.226801690598,"y":19276.528007897326},"targetPosition":{"x":7450.830578026773,"y":19326.59903678239},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Open","config":"{\n \"codeName\": \"open\",\n \"isString\": false\n}","project":"Superalgos","id":"7d809ac3-9b7d-4687-83bb-40b851e522d0","savedPayload":{"position":{"x":7586.218370679253,"y":19391.175701303633},"targetPosition":{"x":7450.830578026773,"y":19326.59903678239},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Close","config":"{\n \"codeName\": \"close\",\n \"isString\": false\n}","project":"Superalgos","id":"b0ea41f8-03da-454e-8d0f-bb0f2fc5d328","savedPayload":{"position":{"x":7500.901606911837,"y":19467.995260446216},"targetPosition":{"x":7450.830578026773,"y":19326.59903678239},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"21b8be1f-0437-4fc8-9bc0-31779a9ea47e","savedPayload":{"position":{"x":7386.25391350553,"y":19461.98682943487},"targetPosition":{"x":7450.830578026773,"y":19326.59903678239},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"91ba9479-fdb4-42b7-ad02-1b2ac24b13d6","savedPayload":{"position":{"x":7309.4343543629475,"y":19376.670065667455},"targetPosition":{"x":7450.830578026773,"y":19326.59903678239},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction","config":"{\n \"codeName\": \"direction\",\n \"isString\": true,\n \"isCalculated\": true,\n \"possibleValues\": [\"Up\", \"Down\", \"Side\"]\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.direction","project":"Superalgos","id":"becdde12-efb6-464b-bfb0-ac98e3c2b8e3","savedPayload":{"position":{"x":7180.054992721813,"y":19197.445707739906},"targetPosition":{"x":7315.442785374293,"y":19262.022372261148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aafd0a4b-da5d-40c1-94b8-e79f0b1eca9b","savedPayload":{"position":{"x":7315.442785374293,"y":19262.022372261148},"targetPosition":{"x":7450.830578026773,"y":19326.59903678239},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"65ea4bea-6b8f-4df9-8716-d8af0ce2044c","savedPayload":{"position":{"x":7450.830578026773,"y":19326.59903678239},"targetPosition":{"x":7250.546462486509,"y":18761.014142127082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"calculations":{"type":"Calculations Procedure","name":"New Calculations Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"let candle = product.candle\n\nif (candle.close > candle.open) {\n variable.direction = \"Up\"\n}\n\nif (candle.close < candle.open) {\n variable.direction = \"Down\"\n}\n\nif (candle.close === candle.open) {\n variable.direction = \"Side\"\n}","project":"Superalgos","id":"798bc1e0-90d2-435f-980d-b457b30046dd","savedPayload":{"position":{"x":7359.887777781794,"y":19350.967086665452},"targetPosition":{"x":7332.552448957973,"y":19203.47885053086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"abbcb291-c048-49e7-b0d0-fdf20891faea","savedPayload":{"position":{"x":7332.552448957973,"y":19203.47885053086},"targetPosition":{"x":7305.217120134152,"y":19055.99061439627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f7846b50-ae42-46b4-aeb6-9f6217477a1b","savedPayload":{"position":{"x":7305.217120134152,"y":19055.99061439627},"targetPosition":{"x":7250.546462486509,"y":18761.014142127082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7","savedPayload":{"position":{"x":7314.575399861766,"y":18715.257768943975},"targetPosition":{"x":7155.599620591805,"y":18460.843340097046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Candles","id":"0aed75a3-fee8-4ddc-97ff-b6768e6f12a3"}}},{"type":"Product Definition","name":"Volumes","config":"{\n \"codeName\": \"Volumes\",\n \"singularVariableName\": \"volume\",\n \"pluralVariableName\": \"volumes\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"2e683057-f911-4105-bc77-16f2706d1915","savedPayload":{"position":{"x":7120.822619966086,"y":19075.37125732363},"targetPosition":{"x":7066.151962318443,"y":18780.394785054443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1","savedPayload":{"position":{"x":7003.778455073116,"y":19073.839065274584},"targetPosition":{"x":7066.151962318443,"y":18780.394785054443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Buy","config":"{\n \"codeName\": \"buy\",\n \"isString\": false\n}","project":"Superalgos","id":"bc8405e2-4a80-416c-bccf-1334e53d371b","savedPayload":{"position":{"x":6919.136375874943,"y":19183.20329621354},"targetPosition":{"x":6811.26915570227,"y":19151.25156993435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Sell","config":"{\n \"codeName\": \"sell\",\n \"isString\": false\n}","project":"Superalgos","id":"f08f11a8-d092-4b7e-a7e6-c67adac04a33","savedPayload":{"position":{"x":6814.214062386905,"y":19263.713018994098},"targetPosition":{"x":6811.26915570227,"y":19151.25156993435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"8e2624b0-48ee-4d00-821e-0c6a72b3838f","savedPayload":{"position":{"x":6705.221987954399,"y":19188.80484159815},"targetPosition":{"x":6811.26915570227,"y":19151.25156993435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"62964ed9-14c4-442d-b272-602d0c714654","savedPayload":{"position":{"x":6742.783494938787,"y":19061.999319151586},"targetPosition":{"x":6811.26915570227,"y":19151.25156993435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7edf78c7-c63d-4e7e-a643-99aaf52ac967","savedPayload":{"position":{"x":6811.26915570227,"y":19151.25156993435},"targetPosition":{"x":7066.151962318443,"y":18780.394785054443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f","savedPayload":{"position":{"x":7134.672678468567,"y":18760.112555174994},"targetPosition":{"x":7155.599620591805,"y":18460.843340097046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Volumes","id":"a6177fb7-51d1-4b7c-bcbb-04861a5bf0c1"}}}],"id":"285a4618-0423-4ac9-9df9-7a78be6fd915","savedPayload":{"position":{"x":7155.599620591805,"y":18460.843340097046},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"l"}}},{"type":"Indicator Bot","name":"Bollinger Bands","config":"{\n\"codeName\": \"Bollinger-Bands\",\n\"repo\": \"Bollinger-Bands-Indicator-Bot\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces a single file for each time frame covering all the market.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"botModule\": \"Bollinger Bands Multi Period Market\"\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Bollinger Bands","project":"Superalgos","id":"b8c1f684-7327-488b-8c76-4a73d811e312","savedPayload":{"position":{"x":9802.857916415382,"y":20000.495503001977},"targetPosition":{"x":9132.300106221523,"y":19923.18299956292},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f5b2a7d8-fc32-44a3-a002-9b0fc30a9719"}}},{"type":"Output Dataset","name":"Multi-Period-Market Percentage Bandwidth","project":"Superalgos","id":"fa1205c0-3b6e-4064-aca4-ffdaba7e1bd4","savedPayload":{"position":{"x":9759.999264793034,"y":20171.41427545018},"targetPosition":{"x":9132.300106221523,"y":19923.18299956292},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"207e9481-0730-4304-a938-cfe223d70856"}}}],"outputDatasetFolders":[],"id":"72887b4d-8868-4f0c-a051-81b83c366c99","savedPayload":{"position":{"x":9132.300106221523,"y":19923.18299956292},"targetPosition":{"x":7822.840529249766,"y":19594.83011579768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Bollinger Bands Multi-Period-Market","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"603f6167-ef54-4464-9b7b-5ff7f59c24e7","savedPayload":{"position":{"x":10406.37007598429,"y":20333.29976867414},"targetPosition":{"x":9078.23884639279,"y":20091.2926675722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"4f8197fa-2627-46df-bd36-7d30fdb12d8c"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"79c51f8f-95eb-451c-98ac-cce4028e23e2","savedPayload":{"position":{"x":10333.637163535812,"y":20587.755219346724},"targetPosition":{"x":9078.23884639279,"y":20091.2926675722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"25d943b0-45aa-45b3-b8b1-f83d5a8b636f","savedPayload":{"position":{"x":10212.65999779501,"y":20823.131892574016},"targetPosition":{"x":9078.23884639279,"y":20091.2926675722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"bd55a584-c9dd-4f2e-836c-a34a16ef01dc","savedPayload":{"position":{"x":9078.23884639279,"y":20091.2926675722},"targetPosition":{"x":7822.840529249766,"y":19594.83011579768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"4f8197fa-2627-46df-bd36-7d30fdb12d8c","savedPayload":{"position":{"x":9002.697373295567,"y":20250.9077236752},"targetPosition":{"x":7822.840529249766,"y":19594.83011579768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"a2cf5c7f-ffbf-4c38-9640-699fd3a37454","savedPayload":{"position":{"x":8906.968222478601,"y":20399.29711000833},"targetPosition":{"x":7822.840529249766,"y":19594.83011579768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"4a9c8cc7-0ebf-43eb-b7f9-0b280630ff67","savedPayload":{"position":{"x":8792.689346253512,"y":20533.921843030133},"targetPosition":{"x":7822.840529249766,"y":19594.83011579768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"941a0543-0cc0-4a5d-a782-728d2835c100","savedPayload":{"position":{"x":7374.142856266594,"y":18559.173217306714},"targetPosition":{"x":7075.786287656112,"y":18527.814678326416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces a Daily File at each time frame.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"botModule\": \"Bollinger Bands Multi Period Daily\"\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Bollinger Bands","project":"Superalgos","id":"1f8cdcbe-c7dc-49fd-b106-e59bb4fb4ad9","savedPayload":{"position":{"x":7911.777006679837,"y":19005.956128444468},"targetPosition":{"x":7699.682671184095,"y":18930.84958511687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"506104fa-e99a-4a46-930e-176bce311aff"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Percentage Bandwidth","project":"Superalgos","id":"6362cf0d-c71e-4d08-8dea-c9b8d5d0e38b","savedPayload":{"position":{"x":7885.111063624048,"y":19058.290988424957},"targetPosition":{"x":7699.682671184095,"y":18930.84958511687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e60d62dd-87f7-4f2d-ac21-3ac5c30a50ea"}}}],"outputDatasetFolders":[],"id":"3ab24229-73fe-439a-9684-986aac94f220","savedPayload":{"position":{"x":7699.682671184095,"y":18930.84958511687},"targetPosition":{"x":7298.72973529933,"y":18726.553860234075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"aee6dca7-b8e8-4a33-9bc6-37830080a3a2","savedPayload":{"position":{"x":8089.697712102978,"y":19142.702244145632},"targetPosition":{"x":7669.586520179237,"y":18981.436666850248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"40701c78-7ace-40a8-a943-7b76d73147ce","savedPayload":{"position":{"x":8059.297951882236,"y":19206.436666850248},"targetPosition":{"x":7669.586520179237,"y":18981.436666850248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Bollinger Bands Multi-Period-Daily","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"442d1d63-f28a-4bff-8dda-9bab7a5ad708","savedPayload":{"position":{"x":8019.302202834875,"y":19264.630842822673},"targetPosition":{"x":7669.586520179237,"y":18981.436666850248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"7323fef7-870a-48b6-b96f-586111253b40"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"603dbf64-0ee0-45b6-a1b8-14065b398893","savedPayload":{"position":{"x":7970.695293040724,"y":19315.851838315077},"targetPosition":{"x":7669.586520179237,"y":18981.436666850248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"312620aa-b556-43c4-9603-6a80acb7ab00","savedPayload":{"position":{"x":7669.586520179237,"y":18981.436666850248},"targetPosition":{"x":7298.72973529933,"y":18726.553860234075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"7323fef7-870a-48b6-b96f-586111253b40","savedPayload":{"position":{"x":7633.144906764159,"y":19027.662633095562},"targetPosition":{"x":7298.72973529933,"y":18726.553860234075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"7ec89351-b852-416a-961a-7e66717c6473","savedPayload":{"position":{"x":7590.981357047913,"y":19068.73654475409},"targetPosition":{"x":7298.72973529933,"y":18726.553860234075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"acebc3ed-4f3f-4a4b-b403-f16cbe987dde","savedPayload":{"position":{"x":7543.817301056093,"y":19103.955615809515},"targetPosition":{"x":7298.72973529933,"y":18726.553860234075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca","savedPayload":{"position":{"x":7298.72973529933,"y":18728.553860234075},"targetPosition":{"x":7075.786287656112,"y":18527.814678326416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Bollinger Bands","config":"{\n\"codeName\": \"Bollinger-Bands\",\n\"singularVariableName\": \"bollingerBand\",\n\"pluralVariableName\": \"bollingerBands\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"f5b2a7d8-fc32-44a3-a002-9b0fc30a9719","savedPayload":{"position":{"x":7338.898976809098,"y":19044.202406189776},"targetPosition":{"x":7138.15979490144,"y":18821.258958546558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"506104fa-e99a-4a46-930e-176bce311aff","savedPayload":{"position":{"x":7274.356944823305,"y":19088.560915803067},"targetPosition":{"x":7138.15979490144,"y":18821.258958546558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"1e7186ee-c481-401d-827f-a30ee7434d92","savedPayload":{"position":{"x":7323.917305853466,"y":19271.115700340448},"targetPosition":{"x":7262.906809392096,"y":19408.14751898684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"15f90f2e-80f0-4575-94d8-6d8957eceee1","savedPayload":{"position":{"x":7392.810619959761,"y":19333.14751898684},"targetPosition":{"x":7262.906809392096,"y":19408.14751898684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Moving Average","config":"{\n \"codeName\": \"movingAverage\",\n \"isString\": false\n}","project":"Superalgos","id":"9786a9cd-1eff-4b5c-ae7c-1dde51659f82","savedPayload":{"position":{"x":7412.085093697337,"y":19423.82678847699},"targetPosition":{"x":7262.906809392096,"y":19408.14751898684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Standard Deviation","config":"{\n \"codeName\": \"standardDeviation\",\n \"isString\": false\n}","project":"Superalgos","id":"e92d7855-bb18-494e-ab37-a895bbcb8287","savedPayload":{"position":{"x":7374.378533213705,"y":19508.51710994067},"targetPosition":{"x":7262.906809392096,"y":19408.14751898684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Deviation","config":"{\n \"codeName\": \"deviation\",\n \"isString\": false\n}","project":"Superalgos","id":"03043530-caa1-416e-8303-840b732e516e","savedPayload":{"position":{"x":7294.09356301476,"y":19554.869659096912},"targetPosition":{"x":7262.906809392096,"y":19408.14751898684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction","config":"{\n \"codeName\": \"direction\",\n \"isString\": true,\n \"isCalculated\": true,\n \"possibleValues\": [\"Up\", \"Down\", \"Side\"]\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.direction","project":"Superalgos","id":"f72926d9-c869-4b7c-ba1e-b36d134e2bc6","savedPayload":{"position":{"x":7140.885816469356,"y":19682.211156279624},"targetPosition":{"x":7201.896312930726,"y":19545.17933763323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"856f24c9-f5f1-491b-98e7-6e1d3c5c5874","savedPayload":{"position":{"x":7201.896312930726,"y":19545.17933763323},"targetPosition":{"x":7262.906809392096,"y":19408.14751898684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Slope","config":"{\n \"codeName\": \"slope\",\n \"isString\": true,\n \"isCalculated\": true,\n \"possibleValues\": [\"Side\", \"Gentle\", \"Medium\", \"Steep\", \"Extreme\"]\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.slope","project":"Superalgos","id":"fac935fe-b448-4b34-aed7-b35f70808911","savedPayload":{"position":{"x":7003.099188256765,"y":19558.14751898684},"targetPosition":{"x":7133.0029988244305,"y":19483.14751898684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4c027b0c-da8a-4146-a51a-d0a7a126150b","savedPayload":{"position":{"x":7133.0029988244305,"y":19483.14751898684},"targetPosition":{"x":7262.906809392096,"y":19408.14751898684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Upper Band","config":"{ \n \"codeName\": \"upperBand\",\n \"isString\": false,\n \"isCalculated\": true\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.upperBand","project":"Superalgos","id":"72cf5305-7f63-413b-a469-70ae053cfbcf","savedPayload":{"position":{"x":6964.550240781615,"y":19376.788980006542},"targetPosition":{"x":7113.728525086855,"y":19392.46824949669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"58990232-dba9-485d-8246-540554dfeb20","savedPayload":{"position":{"x":7113.728525086855,"y":19392.46824949669},"targetPosition":{"x":7262.906809392096,"y":19408.14751898684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lower Band","config":"{ \n \"codeName\": \"lowerBand\",\n \"isString\": false,\n \"isCalculated\": true\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.lowerBand","project":"Superalgos","id":"c165f7e7-03d7-442d-8182-1c7e913e06a5","savedPayload":{"position":{"x":7039.963361748878,"y":19207.40833707918},"targetPosition":{"x":7151.435085570487,"y":19307.77792803301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f1db553a-f738-4a1e-89c0-82b6b0cac9ba","savedPayload":{"position":{"x":7151.435085570487,"y":19307.77792803301},"targetPosition":{"x":7262.906809392096,"y":19408.14751898684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b5a5ec97-7246-42bd-97e4-28fb4a148b2c","savedPayload":{"position":{"x":7262.906809392096,"y":19408.14751898684},"targetPosition":{"x":7138.15979490144,"y":18821.258958546558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"calculations":{"type":"Calculations Procedure","name":"New Calculations Procedure","project":"Superalgos","initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"variable.lastMovingAverage = 0\nvariable.SIDE_TOLERANCE = 0.5 * system.timeFrame / system.ONE_DAY_IN_MILISECONDS\nvariable.SMALL_SLOPE = 1.0 * system.timeFrame / system.ONE_DAY_IN_MILISECONDS\nvariable.MEDIUM_SLOPE = 2.0 * system.timeFrame / system.ONE_DAY_IN_MILISECONDS\nvariable.HIGH_SLOPE = 4.0 * system.timeFrame / system.ONE_DAY_IN_MILISECONDS\n","project":"Superalgos","id":"f00ac417-cd99-493c-b959-35eddd6fe4f3","savedPayload":{"position":{"x":7149.92417539696,"y":19220.282722193027},"targetPosition":{"x":7142.078265824175,"y":19120.590988819713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d144ab2f-5b4e-4153-806a-d471e9f281dd","savedPayload":{"position":{"x":7142.078265824175,"y":19120.590988819713},"targetPosition":{"x":7130.309401464999,"y":18971.053388759745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"\nif (variable.lastMovingAverage > product.bollingerBand.movingAverage) { variable.direction = \"Down\" }\nif (variable.lastMovingAverage < product.bollingerBand.movingAverage) { variable.direction = \"Up\" }\nif (variable.lastMovingAverage === product.bollingerBand.movingAverage) { variable.direction = \"Side\" }\n\nvariable.delta = Math.abs(product.bollingerBand.movingAverage - variable.lastMovingAverage)\n\nvariable.slope = \"Extreme\"\nif (variable.delta < product.bollingerBand.movingAverage * variable.HIGH_SLOPE / 100) { variable.slope = \"Steep\" }\nif (variable.delta < product.bollingerBand.movingAverage * variable.MEDIUM_SLOPE / 100) { variable.slope = \"Medium\" }\nif (variable.delta < product.bollingerBand.movingAverage * variable.SMALL_SLOPE / 100) { variable.slope = \"Gentle\" }\nif (variable.delta < product.bollingerBand.movingAverage * variable.SIDE_TOLERANCE / 100) { variable.slope = \"Side\" }\n\nvariable.lastMovingAverage = product.bollingerBand.movingAverage\n\nvariable.upperBand = product.bollingerBand.movingAverage + product.bollingerBand.deviation\nvariable.lowerBand = product.bollingerBand.movingAverage - product.bollingerBand.deviation","project":"Superalgos","id":"14fc0c9c-cd10-4931-95b5-4bc7d549942a","savedPayload":{"position":{"x":7084.750520091961,"y":19216.867115650733},"targetPosition":{"x":7102.9740726411765,"y":19118.541624894337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8a669548-845b-4d80-ae96-29f68e9c9ac7","savedPayload":{"position":{"x":7102.9740726411765,"y":19118.541624894337},"targetPosition":{"x":7130.309401464999,"y":18971.053388759745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d72c7cb2-8886-4101-a83a-f9788b8400a0","savedPayload":{"position":{"x":7130.309401464999,"y":18971.053388759745},"targetPosition":{"x":7138.15979490144,"y":18821.258958546558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","id":"139484b3-3a3f-4268-801e-a8c441746c7a","savedPayload":{"position":{"x":7091.807245745198,"y":18963.917435990832},"targetPosition":{"x":7138.15979490144,"y":18821.258958546558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"29088877-8d63-4217-8d34-8742afc262f4","savedPayload":{"position":{"x":7138.15979490144,"y":18821.258958546558},"targetPosition":{"x":7075.786287656112,"y":18527.814678326416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Bollinger Bands","id":"a11bfdf8-595c-4b50-b259-6a9f777d0ea8"}}},{"type":"Product Definition","name":"Percentage Bandwidth","config":"{\n \"codeName\": \"Percentage-Bandwidth\",\n \"singularVariableName\": \"percentageBandwidth\",\n \"pluralVariableName\": \"percentageBandwidths\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"207e9481-0730-4304-a938-cfe223d70856","savedPayload":{"position":{"x":5357.653002488401,"y":20013.01901564487},"targetPosition":{"x":5861.4026547046415,"y":19623.03920165868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"e60d62dd-87f7-4f2d-ac21-3ac5c30a50ea","savedPayload":{"position":{"x":5246.789138410677,"y":19790.245896315388},"targetPosition":{"x":5861.4026547046415,"y":19623.03920165868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"7c793ff3-0356-4f05-b471-4510e9cdaf58","savedPayload":{"position":{"x":4721.320453641816,"y":19755.97100740029},"targetPosition":{"x":4598.489790244897,"y":19462.08387114418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"b02c38c3-216c-4a83-903d-d50a599b55dc","savedPayload":{"position":{"x":4405.404089771984,"y":19715.67644645334},"targetPosition":{"x":4598.489790244897,"y":19462.08387114418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Value","config":"{\n \"codeName\": \"value\",\n \"isString\": false\n}","project":"Superalgos","id":"2c279136-20b1-4f9c-9d35-6a4fd36a4a99","savedPayload":{"position":{"x":4282.2258433977095,"y":19421.8812093852},"targetPosition":{"x":4598.489790244897,"y":19462.08387114418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Moving Average","config":"{\n \"codeName\": \"movingAverage\",\n \"isString\": false\n}","project":"Superalgos","id":"a9e3bbb1-9eaf-4ab1-93bb-ee27357daa76","savedPayload":{"position":{"x":4475.280766835582,"y":19168.151128614045},"targetPosition":{"x":4598.489790244897,"y":19462.08387114418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Bandwidth","config":"{\n \"codeName\": \"bandwidth\",\n \"isString\": false\n}","project":"Superalgos","id":"90d9694f-ed29-4b2e-8c75-c4bdcf35e36a","savedPayload":{"position":{"x":4791.224725337037,"y":19208.527577322042},"targetPosition":{"x":4598.489790244897,"y":19462.08387114418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d04d8ca7-18d0-4360-babf-7c49c3c97f50","savedPayload":{"position":{"x":4598.489790244897,"y":19462.08387114418},"targetPosition":{"x":5861.4026547046415,"y":19623.03920165868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068","savedPayload":{"position":{"x":6953.765294733372,"y":18801.878315619197},"targetPosition":{"x":7075.786287656112,"y":18527.814678326416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Percentage B","id":"06b2f3f6-b138-415f-8974-31c22a930f92"}}}],"id":"1b7ecdbd-82e9-4a27-8fdd-467c0ca6bf23","savedPayload":{"position":{"x":7075.786287656112,"y":18527.814678326416},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"c"}}},{"type":"Indicator Bot","name":"Bollinger Channels","config":"{\n\"codeName\": \"Bollinger-Channels\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces for each market two files with bollinger channels respectively.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Market Bollinger Channels Objects","project":"Superalgos","id":"d804e799-7c12-42f5-8de2-52a3a7d5daa4","savedPayload":{"position":{"x":5687.266644089639,"y":19990.674127031423},"targetPosition":{"x":5498.278313251056,"y":19414.619326731256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"610cd062-ab88-4892-b711-0fb430305c61"}}},{"type":"Output Dataset","name":"Market Bollinger Channels","project":"Superalgos","id":"e524685d-8da0-41f6-839d-9a4100e6e3fe","savedPayload":{"position":{"x":5592.935368757306,"y":20013.944705671965},"targetPosition":{"x":5498.278313251056,"y":19414.619326731256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"22c1f2c6-3838-4657-add8-2e01d7056917"}}},{"type":"Output Dataset","name":"Market Bollinger Sub-Channels Objects","project":"Superalgos","id":"eb0e7947-95e4-4f4a-87ea-1fb430b8b503","savedPayload":{"position":{"x":5497.007603703398,"y":20021.583937529194},"targetPosition":{"x":5498.278313251056,"y":19414.619326731256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"869f615e-0cc0-44fd-8648-4a951c23a410"}}},{"type":"Output Dataset","name":"Market Bollinger Sub-Channels","project":"Superalgos","id":"dc96b9ac-f8d5-4bf8-a135-45cd5d6369f1","savedPayload":{"position":{"x":5421.488977859208,"y":20012.352456774828},"targetPosition":{"x":5498.278313251056,"y":19414.619326731256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"f8d44a4d-3771-4a71-97ca-dc604ff565d3"}}}],"outputDatasetFolders":[],"id":"dd39a54a-3714-446a-9a41-dfd83557664c","savedPayload":{"position":{"x":5498.278313251056,"y":19414.619326731256},"targetPosition":{"x":5452.70185999617,"y":18810.181014120284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Bollinger Channels Multi-Period-Market","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"ae627a69-4089-432d-b379-1b12ce4bd75e","savedPayload":{"position":{"x":5324.033947377382,"y":20011.88811136869},"targetPosition":{"x":5339.86670584817,"y":19405.54825242224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"af8aded9-002a-475a-88f5-d29573740969"}}},{"type":"Status Dependency","name":"Bollinger Bands Multi-Period-Market","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"4a603114-d464-46db-90a1-62304274117a","savedPayload":{"position":{"x":5221.686439018522,"y":20000.397363985212},"targetPosition":{"x":5339.86670584817,"y":19405.54825242224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"4f8197fa-2627-46df-bd36-7d30fdb12d8c"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Bollinger Bands Multi-Period-Market","project":"Superalgos","id":"ea27be54-93a3-48e3-8c52-72bc397b6c66","savedPayload":{"position":{"x":5112.588462840864,"y":19967.319852956214},"targetPosition":{"x":5339.86670584817,"y":19405.54825242224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f5b2a7d8-fc32-44a3-a002-9b0fc30a9719"}}}],"dataMineDataDependencies":[],"id":"8b509294-6028-40e2-88a8-655a34245ed8","savedPayload":{"position":{"x":5339.86670584817,"y":19405.54825242224},"targetPosition":{"x":5452.70185999617,"y":18810.181014120284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"af8aded9-002a-475a-88f5-d29573740969","savedPayload":{"position":{"x":5189.608529126428,"y":19356.103569264757},"targetPosition":{"x":5452.70185999617,"y":18810.181014120284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Bollinger Bands Multi-Period-Market","project":"Superalgos","id":"f4720e04-5def-4c0b-be42-33e50ac6a6b7","savedPayload":{"position":{"x":5057.22091964295,"y":19269.416719789868},"targetPosition":{"x":5452.70185999617,"y":18810.181014120284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"4a9c8cc7-0ebf-43eb-b7f9-0b280630ff67"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"671530dc-5ba5-4c8d-bc23-f228e22c56b3","savedPayload":{"position":{"x":4951.714362621191,"y":19151.262200859976},"targetPosition":{"x":5452.70185999617,"y":18810.181014120284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"28be432d-80ca-46b3-859a-55541e24b2b4","savedPayload":{"position":{"x":7266.668015041196,"y":18642.70152353765},"targetPosition":{"x":6977.880740956192,"y":18561.449383094747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces for each market two files with bollinger channels respectively at each day of the market history.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Daily Bollinger Channels Objects","project":"Superalgos","id":"64430a93-38c2-4c71-8085-71661bbf804e","savedPayload":{"position":{"x":6749.16703949514,"y":19626.732143607558},"targetPosition":{"x":6179.8809249372025,"y":19626.732143607558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"64910fea-c92a-4a55-850a-aa62d98b478e"}}},{"type":"Output Dataset","name":"Daily Bollinger Sub-Channels","project":"Superalgos","id":"b536a078-e32a-4489-93f6-75107a90b527","savedPayload":{"position":{"x":6179.8809249372025,"y":20229.089591771364},"targetPosition":{"x":6179.8809249372025,"y":19626.732143607558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"ca71e765-0f66-4b18-b500-847b9d16169b"}}},{"type":"Output Dataset","name":"Daily Bollinger Sub-Channels Objects","project":"Superalgos","id":"d5bcc7c4-2798-4c34-9504-cc4617b64a04","savedPayload":{"position":{"x":5563.709533981204,"y":19626.732143607558},"targetPosition":{"x":6179.8809249372025,"y":19626.732143607558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"029479ae-275d-4854-ad3e-66948656a053"}}},{"type":"Output Dataset","name":"Daily Bollinger Channels","project":"Superalgos","id":"57898dc1-83a2-4ee9-8a0b-6674f988f0fa","savedPayload":{"position":{"x":6179.8809249372025,"y":19035.126363186133},"targetPosition":{"x":6179.8809249372025,"y":19626.732143607558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"96b4e65b-e6db-44a0-80a5-ceb9d68a09ec"}}}],"outputDatasetFolders":[],"id":"b8fc5ac0-021d-4230-aa59-9876c5f0f3e1","savedPayload":{"position":{"x":4837.803174394638,"y":19431.08867683786},"targetPosition":{"x":5169.713889679955,"y":18584.819258576517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Bollinger Bands Multi-Period-Daily","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"3cb29ee1-02de-452a-a79f-2451700fe335","savedPayload":{"position":{"x":4276.758853260879,"y":20152.442412346893},"targetPosition":{"x":4630.241806005684,"y":19315.72841166174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"7323fef7-870a-48b6-b96f-586111253b40"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"d5f34469-0ae1-45e6-acd9-4155d5940c77","savedPayload":{"position":{"x":4149.938308225999,"y":20086.679737181315},"targetPosition":{"x":4630.241806005684,"y":19315.72841166174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Bollinger Channels Multi-Period-Daily","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"7f6266a5-bddb-4d49-962d-100b1993043d","savedPayload":{"position":{"x":4035.136336165244,"y":20001.952481172197},"targetPosition":{"x":4630.241806005684,"y":19315.72841166174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"b1dd07bf-a698-4bbb-995a-356c929a1e94"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Bollinger Bands Multi-Period-Daily","project":"Superalgos","id":"073e24ab-6b47-482a-b117-0d3554f63c1f","savedPayload":{"position":{"x":3934.9110977998407,"y":19900.149704954005},"targetPosition":{"x":4630.241806005684,"y":19315.72841166174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"506104fa-e99a-4a46-930e-176bce311aff"}}}],"dataMineDataDependencies":[],"id":"c0cb34fe-9268-4ebb-a8ce-7d53a13a6d4d","savedPayload":{"position":{"x":4630.241806005684,"y":19315.72841166174},"targetPosition":{"x":5169.713889679955,"y":18584.819258576517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"b1dd07bf-a698-4bbb-995a-356c929a1e94","savedPayload":{"position":{"x":4459.38698613855,"y":19151.21260876096},"targetPosition":{"x":5169.713889679955,"y":18584.819258576517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Bollinger Bands Multi-Period-Daily","project":"Superalgos","id":"4548cff9-f388-4f4f-b148-665d22ffaf9e","savedPayload":{"position":{"x":4336.934980792743,"y":18948.120225512925},"targetPosition":{"x":5169.713889679955,"y":18584.819258576517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"acebc3ed-4f3f-4a4b-b403-f16cbe987dde"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"34e17fad-2c62-4c45-875c-774ac6b6cc99","savedPayload":{"position":{"x":4271.198872233363,"y":18720.189567902362},"targetPosition":{"x":5169.713889679955,"y":18584.819258576517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"bc15b49d-4547-4bac-a28b-193eb0158fe3","savedPayload":{"position":{"x":7202.815101846514,"y":18759.955134373806},"targetPosition":{"x":6977.880740956192,"y":18561.449383094747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Bollinger Channels Objects","config":"{\n \"codeName\": \"Bollinger-Channels-Objects\",\n \"singularVariableName\": \"bollingerChannelsObject\",\n \"pluralVariableName\": \"bollingerChannelsObjects\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"610cd062-ab88-4892-b711-0fb430305c61","savedPayload":{"position":{"x":5720.882920927928,"y":19952.296078686548},"targetPosition":{"x":5800.806248533099,"y":19417.143841775804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }\n","project":"Superalgos","id":"64910fea-c92a-4a55-850a-aa62d98b478e","savedPayload":{"position":{"x":5558.8784409430045,"y":19900.845209639374},"targetPosition":{"x":5800.806248533099,"y":19417.143841775804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"06edb099-ff64-4528-b8c6-599154bc2ddf","savedPayload":{"position":{"x":5311.500564999933,"y":20162.173239084834},"targetPosition":{"x":5042.175036115106,"y":20186.920481973415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"94656d1f-508a-4e94-a8d2-013690aac596","savedPayload":{"position":{"x":5264.923927723674,"y":20341.17734801434},"targetPosition":{"x":5042.175036115106,"y":20186.920481973415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction","config":"{\n \"codeName\": \"direction\",\n \"isString\": true,\n \"possibleValues\": [\"Up\", \"Down\", \"Side\"]\n}","project":"Superalgos","id":"edc0f697-f5e2-446f-bae8-8db7adf91d23","savedPayload":{"position":{"x":5113.89002857712,"y":20448.42579147178},"targetPosition":{"x":5042.175036115106,"y":20186.920481973415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Period","config":"{\n \"codeName\": \"period\",\n \"isString\": false\n}","project":"Superalgos","id":"eb733f85-6cf5-485e-9bd3-2bf78733c492","savedPayload":{"position":{"x":4929.427401445173,"y":20433.55648065303},"targetPosition":{"x":5042.175036115106,"y":20186.920481973415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"First Moving Average","config":"{\n \"codeName\": \"firstMovingAverage\",\n \"isString\": false\n}","project":"Superalgos","id":"a67a15ee-6f7f-48bd-9d55-82c57efc993b","savedPayload":{"position":{"x":4797.469987566172,"y":20303.546052506135},"targetPosition":{"x":5042.175036115106,"y":20186.920481973415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last Moving Average","config":"{\n \"codeName\": \"lastMovingAverage\",\n \"isString\": false\n}","project":"Superalgos","id":"0f05bffe-d668-4d25-ab67-d55a4a7c8f5d","savedPayload":{"position":{"x":4779.980984599108,"y":20119.56664840727},"targetPosition":{"x":5042.175036115106,"y":20186.920481973415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"First Deviation","config":"{\n \"codeName\": \"firstDeviation\",\n \"isString\": false\n}","project":"Superalgos","id":"eae84509-b689-4a76-9277-eed72af491dd","savedPayload":{"position":{"x":4867.812037731175,"y":19955.395374959928},"targetPosition":{"x":5042.175036115106,"y":20186.920481973415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last Deviation","config":"{\n \"codeName\": \"lastDeviation\",\n \"isString\": false\n}","project":"Superalgos","id":"d5c32d1f-9e3c-48e8-8025-a17d57c0812e","savedPayload":{"position":{"x":5069.229557080776,"y":19925.81306570211},"targetPosition":{"x":5042.175036115106,"y":20186.920481973415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6c3e68b0-b781-4c53-9ff7-67c3f747ac8a","savedPayload":{"position":{"x":5042.175036115106,"y":20186.920481973415},"targetPosition":{"x":5800.806248533099,"y":19417.143841775804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"\n\nif (record.next !== undefined) {\n\n if (\n record.current.direction === record.next.direction) {\n\n if (variable.channel === undefined) {\n\n variable.channel = {\n begin: undefined,\n end: undefined,\n direction: undefined,\n period: 0,\n firstMovingAverage: 0,\n lastMovingAverage: 0,\n firstDeviation: 0,\n lastDeviation: 0\n }\n\n variable.channel.direction = record.current.direction\n variable.channel.period = 2\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.next.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.next.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.next.deviation\n\n } else {\n\n variable.channel.period++\n variable.channel.end = record.next.end\n variable.channel.lastMovingAverage = record.next.movingAverage\n variable.channel.lastDeviation = record.next.deviation\n\n }\n } else {\n\n if (variable.channel !== undefined) {\n results.push(variable.channel)\n variable.channel = undefined\n } else {\n /* The variable.channel has only one period */\n\n variable.channel = {}\n\n variable.channel.direction = record.current.direction\n variable.channel.period = 1\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.current.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.current.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.current.deviation\n\n results.push(variable.channel)\n variable.channel = undefined\n }\n }\n} else {\n if (variable.channel !== undefined) {\n variable.channel.period++\n variable.channel.end = record.current.end\n variable.channel.lastMovingAverage = record.current.movingAverage\n variable.channel.lastDeviation = record.current.deviation\n results.push(variable.channel)\n variable.channel = undefined\n } else {\n /* The variable.channel has only one period */\n\n variable.channel = {}\n\n variable.channel.direction = record.current.direction\n variable.channel.period = 1\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.current.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.current.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.current.deviation\n\n results.push(variable.channel)\n variable.channel = undefined\n }\n}","project":"Superalgos","id":"b81d6adc-e721-4089-b4c3-2fd772f33d25","savedPayload":{"position":{"x":5013.265999650357,"y":19840.81234203045},"targetPosition":{"x":5263.929405162591,"y":19732.285169802894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a2b92c75-e272-4d05-b098-121a70371450","savedPayload":{"position":{"x":5263.929405162591,"y":19732.285169802894},"targetPosition":{"x":5522.6118702301865,"y":19561.75920205435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"116ccf8c-26bc-4b86-99e6-bb3075527713","savedPayload":{"position":{"x":5522.6118702301865,"y":19561.75920205435},"targetPosition":{"x":5800.806248533099,"y":19417.143841775804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1f111f72-624f-4166-9f99-ab8d785d5267","savedPayload":{"position":{"x":7094.4111798386,"y":18837.89224665587},"targetPosition":{"x":6977.880740956192,"y":18561.449383094747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Plotter Module","name":"Bollinger Channels Objects","id":"52881346-3e4b-45e0-92d2-af130d381b8e"}}},{"type":"Product Definition","name":"Bollinger Channels","config":"{\n \"codeName\": \"Bollinger-Channels\",\n \"singularVariableName\": \"bollingerChannel\",\n \"pluralVariableName\": \"bollingerChannels\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"22c1f2c6-3838-4657-add8-2e01d7056917","savedPayload":{"position":{"x":5337.21592038497,"y":19684.391171162788},"targetPosition":{"x":5641.418590789468,"y":19237.159776774533},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }\n","project":"Superalgos","id":"96b4e65b-e6db-44a0-80a5-ceb9d68a09ec","savedPayload":{"position":{"x":5213.544700282855,"y":19567.823825352214},"targetPosition":{"x":5641.418590789468,"y":19237.159776774533},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"b243e3c4-e528-4e7b-9644-b03e47c8ca34","savedPayload":{"position":{"x":4953.851274943034,"y":20030.445985208506},"targetPosition":{"x":4788.86842333401,"y":19816.025093604323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"74268e18-735f-405b-b9db-412ce6cf7438","savedPayload":{"position":{"x":4788.86842333401,"y":19816.025093604323},"targetPosition":{"x":4623.98601946668,"y":19601.63586734566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"bc705d0f-6df6-45f6-8d3a-44b81bf785bd","savedPayload":{"position":{"x":4318.526483972231,"y":20049.02084549715},"targetPosition":{"x":4471.22261506259,"y":19825.422696211226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad08f6a7-5d37-4fd3-9d84-5eebddcd8cb5","savedPayload":{"position":{"x":4471.22261506259,"y":19825.422696211226},"targetPosition":{"x":4623.98601946668,"y":19601.63586734566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction","config":"{\n \"codeName\": \"direction\",\n \"isString\": true,\n \"possibleValues\": [\"Up\", \"Down\", \"Side\"]\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.direction","project":"Superalgos","id":"7b7fd5fc-c820-4c1b-ae3e-400d7b90bb0b","savedPayload":{"position":{"x":4106.964199265562,"y":19455.43121870476},"targetPosition":{"x":4367.151217673905,"y":19530.86979662605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31720cda-be3c-453e-8c6e-c4816299c440","savedPayload":{"position":{"x":4367.151217673905,"y":19530.86979662605},"targetPosition":{"x":4623.98601946668,"y":19601.63586734566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Period","config":"{\n \"codeName\": \"period\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.period","project":"Superalgos","id":"9c44699b-a743-4f46-82f6-0351e8b1a206","savedPayload":{"position":{"x":4625.866910548906,"y":19067.49376446092},"targetPosition":{"x":4623.428111733501,"y":19339.442480933998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8af98ad4-3062-49a1-bff6-593bd9638f72","savedPayload":{"position":{"x":4623.428111733501,"y":19339.442480933998},"targetPosition":{"x":4623.98601946668,"y":19601.63586734566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9106250d-b042-4e96-9121-c760b4c1eab2","savedPayload":{"position":{"x":4623.98601946668,"y":19601.63586734566},"targetPosition":{"x":5641.418590789468,"y":19237.159776774533},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"if (record.previous !== undefined) {\n if (record.current.direction === record.previous.direction) {\n variable.period++\n } else {\n variable.period = 1\n }\n}","project":"Superalgos","id":"8f05a74a-f85c-4eb1-9de1-3363d2e3cb8a","savedPayload":{"position":{"x":4308.618521034068,"y":19447.701832098734},"targetPosition":{"x":4582.725632129386,"y":19412.56698223462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7e54fecc-8443-4aad-a541-0b6a3fcac877","savedPayload":{"position":{"x":4582.725632129386,"y":19412.56698223462},"targetPosition":{"x":5121.182603078487,"y":19313.701368995924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"variable.period = 1","project":"Superalgos","id":"491600d9-228d-41b8-bedb-22b8ba22a7c9","savedPayload":{"position":{"x":4307.097405901435,"y":19221.058906231985},"targetPosition":{"x":4577.265780316491,"y":19247.988772784658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3c3de682-9ac0-4bf9-b1ff-97a3e0cb24b4","savedPayload":{"position":{"x":4577.265780316491,"y":19247.988772784658},"targetPosition":{"x":5121.182603078487,"y":19313.701368995924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9ace6abd-5ef9-4c37-9dbc-7aefc8b8b905","savedPayload":{"position":{"x":5121.182603078487,"y":19313.701368995924},"targetPosition":{"x":5641.418590789468,"y":19237.159776774533},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"94bc3958-cc85-43a1-a178-103e84f42910","savedPayload":{"position":{"x":6962.926975257982,"y":18861.076459460422},"targetPosition":{"x":6977.880740956192,"y":18561.449383094747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Bollinger Channels","id":"a045ea45-c8ff-49a5-86cd-5d38cd3e6d22"}}},{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","config":"{\n \"codeName\": \"Bollinger-Sub-Channels-Objects\",\n \"singularVariableName\": \"bollingerSubChannelsObject\",\n \"pluralVariableName\": \"bollingerSubChannelsObjects\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"869f615e-0cc0-44fd-8648-4a951c23a410","savedPayload":{"position":{"x":5107.783025826782,"y":19276.737567128723},"targetPosition":{"x":5575.816851249463,"y":19005.79696148155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }\n","project":"Superalgos","id":"029479ae-275d-4854-ad3e-66948656a053","savedPayload":{"position":{"x":5047.006363022967,"y":19118.05582271009},"targetPosition":{"x":5575.816851249463,"y":19005.79696148155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"8f0513f5-d78e-4efd-a554-a6ee2a4781ac","savedPayload":{"position":{"x":4701.553695268074,"y":19074.058760946547},"targetPosition":{"x":4501.014432105094,"y":18892.68523642824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"677f9a11-1fa3-4880-ad4f-81a4490d82e8","savedPayload":{"position":{"x":4556.617530496089,"y":19157.805622122658},"targetPosition":{"x":4501.014432105094,"y":18892.68523642824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction","config":"{\n \"codeName\": \"direction\",\n \"isString\": true,\n \"possibleValues\": [\"Up\", \"Down\", \"Side\"]\n}","project":"Superalgos","id":"610f6b9f-9404-4603-a42b-80de31498f2f","savedPayload":{"position":{"x":4390.33895130143,"y":19140.16980911338},"targetPosition":{"x":4501.014432105094,"y":18892.68523642824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Slope","config":"{\n \"codeName\": \"slope\",\n \"isString\": true,\n \"possibleValues\": [\"Side\", \"Gentle\", \"Medium\", \"Steep\", \"Extreme\"]\n}","project":"Superalgos","id":"65600005-8272-4297-8716-b08841eb5e73","savedPayload":{"position":{"x":4265.995336394912,"y":19028.053671886344},"targetPosition":{"x":4501.014432105094,"y":18892.68523642824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Period","config":"{\n \"codeName\": \"period\",\n \"isString\": false\n}","project":"Superalgos","id":"ef18438f-7a1f-4432-8fce-494bc9b5ae01","savedPayload":{"position":{"x":4231.222014703961,"y":18864.43916776906},"targetPosition":{"x":4501.014432105094,"y":18892.68523642824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"First Moving Average","config":"{\n \"codeName\": \"firstMovingAverage\",\n \"isString\": false\n}","project":"Superalgos","id":"e5694d55-735b-4cb2-919e-02a71679c682","savedPayload":{"position":{"x":4299.317018230371,"y":18711.50390365103},"targetPosition":{"x":4501.014432105094,"y":18892.68523642824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last Moving Average","config":"{\n \"codeName\": \"lastMovingAverage\",\n \"isString\": false\n}","project":"Superalgos","id":"d49bae2d-b519-49ba-8fd2-9a3a4c2e8dc3","savedPayload":{"position":{"x":4444.094040376593,"y":18627.991417823378},"targetPosition":{"x":4501.014432105094,"y":18892.68523642824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"First Deviation","config":"{\n \"codeName\": \"firstDeviation\",\n \"isString\": false\n}","project":"Superalgos","id":"a11b4d44-937d-456e-b2bd-9cd025289c34","savedPayload":{"position":{"x":4610.237871424488,"y":18645.76924086054},"targetPosition":{"x":4501.014432105094,"y":18892.68523642824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last Deviation","config":"{\n \"codeName\": \"lastDeviation\",\n \"isString\": false\n}","project":"Superalgos","id":"4d1b7a3f-c452-4002-ab8c-bfa7d396ac2c","savedPayload":{"position":{"x":4734.172628418706,"y":18761.839285792033},"targetPosition":{"x":4501.014432105094,"y":18892.68523642824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a2ff91c2-cfee-487c-959d-fd3ed3dea861","savedPayload":{"position":{"x":4501.014432105094,"y":18892.68523642824},"targetPosition":{"x":5575.816851249463,"y":19005.79696148155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"if (record.next !== undefined) {\n\n if (\n record.current.direction === record.next.direction &&\n record.current.slope === record.next.slope) {\n\n if (variable.channel === undefined) {\n\n variable.channel = {\n begin: undefined,\n end: undefined,\n direction: undefined,\n slope: undefined,\n period: 0,\n firstMovingAverage: 0,\n lastMovingAverage: 0,\n firstDeviation: 0,\n lastDeviation: 0\n }\n\n variable.channel.direction = record.current.direction\n variable.channel.slope = record.current.slope\n variable.channel.period = 2\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.next.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.next.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.next.deviation\n\n } else {\n\n variable.channel.period++\n variable.channel.end = record.next.end\n variable.channel.lastMovingAverage = record.next.movingAverage\n variable.channel.lastDeviation = record.next.deviation\n\n }\n } else {\n\n if (variable.channel !== undefined) {\n results.push(variable.channel)\n variable.channel = undefined\n } else {\n /* The channel has only one period */\n\n variable.channel = {}\n\n variable.channel.direction = record.current.direction\n variable.channel.slope = record.current.slope\n variable.channel.period = 1\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.current.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.current.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.current.deviation\n\n results.push(variable.channel)\n variable.channel = undefined\n }\n }\n\n} else {\n if (variable.channel !== undefined) {\n variable.channel.period++\n variable.channel.end = record.current.end\n variable.channel.lastMovingAverage = record.current.movingAverage\n variable.channel.lastDeviation = record.current.deviation\n results.push(variable.channel)\n variable.channel = undefined\n } else {\n /* The channel has only one period */\n\n variable.channel = {}\n\n variable.channel.direction = record.current.direction\n variable.channel.slope = record.current.slope\n variable.channel.period = 1\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.current.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.current.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.current.deviation\n\n results.push(variable.channel)\n variable.channel = undefined\n }\n}","project":"Superalgos","id":"a1af769c-2a2d-4e78-8f0d-8dfb773982f0","savedPayload":{"position":{"x":4746.328386052239,"y":18661.359603058827},"targetPosition":{"x":4993.349023912837,"y":18777.200545998578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"128aac86-66b5-4685-a75d-4e60ba697c90","savedPayload":{"position":{"x":4993.349023912837,"y":18777.200545998578},"targetPosition":{"x":5289.652822657601,"y":18878.39734672545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5bfe184e-396e-431a-a640-76c05d1c6e06","savedPayload":{"position":{"x":5289.652822657601,"y":18878.39734672545},"targetPosition":{"x":5575.816851249463,"y":19005.79696148155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"080c87fc-4546-4482-ab11-180a33f6d9ab","savedPayload":{"position":{"x":6834.404547369795,"y":18824.915855105817},"targetPosition":{"x":6977.880740956192,"y":18561.449383094747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Bollinger Sub Channels Objects","id":"f8c4b699-1f40-4832-b427-68da3341daa8"}}},{"type":"Product Definition","name":"Bollinger Sub-Channels","config":"{\n \"codeName\": \"Bollinger-Sub-Channels\",\n \"singularVariableName\": \"bollingerSubChannel\",\n \"pluralVariableName\": \"bollingerSubChannels\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"f8d44a4d-3771-4a71-97ca-dc604ff565d3","savedPayload":{"position":{"x":5078.065560225332,"y":18809.666529232563},"targetPosition":{"x":5617.060229699684,"y":18768.843965977925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }\n","project":"Superalgos","id":"ca71e765-0f66-4b18-b500-847b9d16169b","savedPayload":{"position":{"x":5092.340301215987,"y":18640.479645719985},"targetPosition":{"x":5617.060229699684,"y":18768.843965977925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"421aeb2e-dd1b-44ec-bf78-00d8691d4110","savedPayload":{"position":{"x":4914.271631248583,"y":18748.06660970744},"targetPosition":{"x":4921.139964416205,"y":18545.10723836855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2a101e7-8183-42b4-94c4-99bfcbf2c3c2","savedPayload":{"position":{"x":4921.139964416205,"y":18545.10723836855},"targetPosition":{"x":4927.675553436395,"y":18342.423651693094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"febf55a5-de85-4830-b4fe-df78acfc60b5","savedPayload":{"position":{"x":4569.302186443991,"y":18534.35028283147},"targetPosition":{"x":4748.42126072969,"y":18438.423770202477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0cc9b985-b780-41ef-838b-7f764824f244","savedPayload":{"position":{"x":4748.42126072969,"y":18438.423770202477},"targetPosition":{"x":4927.675553436395,"y":18342.423651693094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction","config":"{\n \"codeName\": \"direction\",\n \"isString\": true,\n \"possibleValues\": [\"Up\", \"Down\", \"Side\"]\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.direction","project":"Superalgos","id":"73113162-c56d-4ca1-9e8b-f6a5bf84c30f","savedPayload":{"position":{"x":4581.685255061548,"y":18128.665696087784},"targetPosition":{"x":4754.62718421156,"y":18235.531379399024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"91f3e346-3d02-48f9-aa0c-e55bae62f870","savedPayload":{"position":{"x":4754.62718421156,"y":18235.531379399024},"targetPosition":{"x":4927.675553436395,"y":18342.423651693094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Slope","config":"{\n \"codeName\": \"slope\",\n \"isString\": true,\n \"possibleValues\": [\"Side\", \"Gentle\", \"Medium\", \"Steep\", \"Extreme\"]\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.slope","project":"Superalgos","id":"f9e484d0-138a-4d19-a876-a6067f5a1619","savedPayload":{"position":{"x":4914.033295924655,"y":17959.474958994284},"targetPosition":{"x":4933.56841368847,"y":18139.424641632882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"478a7021-7233-4eb4-958d-f127c6a4891c","savedPayload":{"position":{"x":4933.56841368847,"y":18139.424641632882},"targetPosition":{"x":4927.675553436395,"y":18342.423651693094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Period","config":"{\n \"codeName\": \"period\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.period","project":"Superalgos","id":"35c1cfa6-c691-40b0-b680-bd7c94be19e3","savedPayload":{"position":{"x":5285.095487615155,"y":18150.03364554787},"targetPosition":{"x":5106.40612572504,"y":18246.284735165922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"61f63128-268f-4679-a0ef-e9b53a0a655b","savedPayload":{"position":{"x":5106.40612572504,"y":18246.284735165922},"targetPosition":{"x":4927.675553436395,"y":18342.423651693094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"afe778f1-4343-4102-8eb4-0b9340d7ad5b","savedPayload":{"position":{"x":4927.675553436395,"y":18342.423651693094},"targetPosition":{"x":5617.060229699684,"y":18768.843965977925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"if (record.previous !== undefined) {\n if (record.current.direction === record.previous.direction && record.current.slope === record.previous.slope) {\n variable.period++\n } else {\n variable.period = 1\n }\n}","project":"Superalgos","id":"c450c940-f800-414b-a2c4-bda3481f55c7","savedPayload":{"position":{"x":4468.941584799071,"y":17631.34797116111},"targetPosition":{"x":4868.726756026543,"y":17994.450351736465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a580c9a8-c70a-483e-8dd3-d3b62464f8f4","savedPayload":{"position":{"x":4868.726756026543,"y":17994.450351736465},"targetPosition":{"x":5269.063883864055,"y":18357.239328890257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"variable.period = 1","project":"Superalgos","id":"e0efa286-41a0-45e0-8ce3-dfc27b4dce3e","savedPayload":{"position":{"x":4697.644757189861,"y":17436.21021750168},"targetPosition":{"x":4989.757772223613,"y":17890.41766221909},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2decc091-6c76-458b-be8e-39e3e72cecd6","savedPayload":{"position":{"x":4989.757772223613,"y":17890.41766221909},"targetPosition":{"x":5269.063883864055,"y":18357.239328890257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f16f2ab8-7ba2-4acf-bf85-8ed89bd1e5af","savedPayload":{"position":{"x":5269.063883864055,"y":18357.239328890257},"targetPosition":{"x":5617.060229699684,"y":18768.843965977925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"79ce9c05-8a4c-4b58-850f-288037acc702","savedPayload":{"position":{"x":6734.2993392414355,"y":18736.572484765184},"targetPosition":{"x":6977.880740956192,"y":18561.449383094747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Bollinger Sub Channels","id":"88bdc751-5a1d-499d-a4ba-888dbcf6dc7a"}}}],"id":"bd0f325d-6f98-468b-8b7b-99a42a175d80","savedPayload":{"position":{"x":6977.880740956191,"y":18563.449383094747},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Indicator Bot","name":"Candle Channels","config":"{\n\"codeName\": \"Candle-Channels\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Candles Channels","project":"Superalgos","id":"98bb0dce-e233-4f70-a4ab-9051ee23abd5","savedPayload":{"position":{"x":7420.353770193251,"y":21191.775041429413},"targetPosition":{"x":6806.113535345859,"y":20533.96888921235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"df7d1cd7-95b0-499c-b51a-772c3fb8a2b0"}}},{"type":"Output Dataset","name":"Multi-Period-Market Candles Channels Objects","project":"Superalgos","id":"e5d3a974-b3e5-4f0c-acaf-9cf9915850ee","savedPayload":{"position":{"x":7229.171281551433,"y":21328.3379113774},"targetPosition":{"x":6806.113535345859,"y":20533.96888921235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"566b9df4-da86-4b4f-a3f4-ef8a76443714"}}}],"outputDatasetFolders":[],"id":"81b11bce-fa94-4295-b3a9-a24b6c0c45d3","savedPayload":{"position":{"x":7370.467854275226,"y":18859.942529941443},"targetPosition":{"x":7082.089345493732,"y":18777.251323196342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"8c5feff4-7b13-404f-9fb7-844f3945715c","savedPayload":{"position":{"x":7130.847774893849,"y":21364.40803927999},"targetPosition":{"x":6656.741607984321,"y":20599.40912261517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Candle Channels Multi-Period-Market","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"34699cb0-bf71-4fbc-8671-9570617b1cd0","savedPayload":{"position":{"x":6972.494072843456,"y":21442.202324376656},"targetPosition":{"x":6656.741607984321,"y":20599.40912261517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"902925d3-1d23-4894-9459-0be8df3965df"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"ab069a67-5e2f-4a3b-91e1-967d56ba62b6","savedPayload":{"position":{"x":6802.006180644545,"y":21487.6085393735},"targetPosition":{"x":6656.741607984321,"y":20599.40912261517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"4775daf3-4ac9-4971-a4fb-4cf66d4fbb45","savedPayload":{"position":{"x":7339.239535704364,"y":18931.76274566936},"targetPosition":{"x":7082.089345493732,"y":18777.251323196342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"902925d3-1d23-4894-9459-0be8df3965df","savedPayload":{"position":{"x":7290.486856631433,"y":18993.053263297938},"targetPosition":{"x":7082.089345493732,"y":18777.251323196342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"e9a9ec41-7040-4301-911f-8911d731c7cb","savedPayload":{"position":{"x":7227.532231567635,"y":19039.63723533816},"targetPosition":{"x":7082.089345493732,"y":18777.251323196342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"0ee514b6-0528-4ff9-a901-a519856fbee4","savedPayload":{"position":{"x":7154.665914173631,"y":19068.34004107914},"targetPosition":{"x":7082.089345493732,"y":18777.251323196342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb","savedPayload":{"position":{"x":7082.089345493732,"y":18777.251323196342},"targetPosition":{"x":6873.691834356032,"y":18561.449383094747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Candles Channels","project":"Superalgos","id":"2950c6a6-f1fc-4641-8376-96debaf2e213","savedPayload":{"position":{"x":5900.895028554591,"y":21429.77865750068},"targetPosition":{"x":5790.61299507464,"y":20536.560949944716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"07734f1c-e2e7-4a35-8567-6a996c68883e"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Candles Channels Objects","project":"Superalgos","id":"f1f62696-e584-4b36-b69f-1a557409297a","savedPayload":{"position":{"x":5665.955505250306,"y":21427.886092768982},"targetPosition":{"x":5790.61299507464,"y":20536.560949944716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8a7d224b-7571-4e1a-8b8f-8a35aa25dc63"}}}],"outputDatasetFolders":[],"id":"f81d660c-db1f-44d2-81e5-5fe6c591bab2","savedPayload":{"position":{"x":5790.61299507464,"y":20536.560949944716},"targetPosition":{"x":5797.86274586989,"y":19636.590149799842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"7bdf41eb-4243-4417-8df8-6dbf82cf637f","savedPayload":{"position":{"x":5527.124685628241,"y":21403.491441264883},"targetPosition":{"x":5557.930441228949,"y":20504.018814987758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"43a935c4-46a1-478e-81d0-65c18f1128dc","savedPayload":{"position":{"x":5386.795436488912,"y":21387.598358748604},"targetPosition":{"x":5557.930441228949,"y":20504.018814987758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Candle Channels Multi-Period-Daily","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"71232c95-96bd-4c90-8571-be97495baab0","savedPayload":{"position":{"x":5250.680099130805,"y":21349.948615432553},"targetPosition":{"x":5557.930441228949,"y":20504.018814987758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"4a89ffcd-ef6d-4dd2-bbf6-6e2f1dba24cd"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"97ac78ed-bc8d-49f0-8111-527d7802b559","savedPayload":{"position":{"x":5122.130284900573,"y":21291.469272949504},"targetPosition":{"x":5557.930441228949,"y":20504.018814987758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"41a2dd93-007f-4835-ac77-0bedbe22b128","savedPayload":{"position":{"x":5557.930441228949,"y":20504.018814987758},"targetPosition":{"x":5797.86274586989,"y":19636.590149799842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"4a89ffcd-ef6d-4dd2-bbf6-6e2f1dba24cd","savedPayload":{"position":{"x":5341.59887743766,"y":20412.362849991885},"targetPosition":{"x":5797.86274586989,"y":19636.590149799842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"31740e1a-525b-4ff3-bd71-7fb9c95a0a72","savedPayload":{"position":{"x":5156.360942268333,"y":20267.839257502932},"targetPosition":{"x":5797.86274586989,"y":19636.590149799842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"e29dc92e-bbd9-45ae-ac52-1ee785e44928","savedPayload":{"position":{"x":5014.840294882593,"y":20080.297081512486},"targetPosition":{"x":5797.86274586989,"y":19636.590149799842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f","savedPayload":{"position":{"x":6915.443764644053,"y":18858.529803717218},"targetPosition":{"x":6873.691834356032,"y":18561.449383094747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Candles Channels","config":"{\n \"codeName\": \"Candles-Channels\",\n \"singularVariableName\": \"candlesChannel\",\n \"pluralVariableName\": \"candlesChannels\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"df7d1cd7-95b0-499c-b51a-772c3fb8a2b0","savedPayload":{"position":{"x":4857.00954808449,"y":19915.091831573234},"targetPosition":{"x":5429.013638517197,"y":19220.245574816927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"07734f1c-e2e7-4a35-8567-6a996c68883e","savedPayload":{"position":{"x":4670.286119148172,"y":19704.32465033262},"targetPosition":{"x":5429.013638517197,"y":19220.245574816927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"bb911132-56d2-4368-ac9d-b013c2bf25ae","savedPayload":{"position":{"x":3875.2748331976563,"y":20187.333651026765},"targetPosition":{"x":3998.7581765994037,"y":19873.234759111612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed49d0b4-d13f-42ea-ac30-18fcf718b664","savedPayload":{"position":{"x":3998.7581765994037,"y":19873.234759111612},"targetPosition":{"x":4122.241520001151,"y":19559.13586719646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"58e1bae8-a892-4d59-bd35-d87458cf8bae","savedPayload":{"position":{"x":3553.1958804743826,"y":19922.195173833225},"targetPosition":{"x":3837.718700237767,"y":19740.66552051484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2553b276-b77a-4044-9a25-8fde8158c3fa","savedPayload":{"position":{"x":3837.718700237767,"y":19740.66552051484},"targetPosition":{"x":4122.241520001151,"y":19559.13586719646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction","config":"{\n \"codeName\": \"direction\",\n \"isString\": true,\n \"possibleValues\": [\"Up\", \"Down\", \"Side\"]\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.direction","project":"Superalgos","id":"7273b074-f439-4ff1-82c7-86bf0eb38fb3","savedPayload":{"position":{"x":3448.47302090041,"y":19518.38038143642},"targetPosition":{"x":3785.3572704507806,"y":19538.75812431644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a400d6da-4e0c-417f-bc02-b33b7f64c94f","savedPayload":{"position":{"x":3785.3572704507806,"y":19538.75812431644},"targetPosition":{"x":4122.241520001151,"y":19559.13586719646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Period","config":"{\n \"codeName\": \"period\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.period","project":"Superalgos","id":"41659e98-8488-4d01-9ed4-04520fe9a923","savedPayload":{"position":{"x":3601.1068274339214,"y":19130.132799371928},"targetPosition":{"x":3861.674173717536,"y":19344.634333284193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"01cf59b3-450b-47cc-a235-d334957ed2bd","savedPayload":{"position":{"x":3861.674173717536,"y":19344.634333284193},"targetPosition":{"x":4122.241520001151,"y":19559.13586719646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e186e788-474c-47be-9685-6060c60963d9","savedPayload":{"position":{"x":4122.241520001151,"y":19559.13586719646},"targetPosition":{"x":5429.013638517197,"y":19220.245574816927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"if (record.previous !== undefined) {\n if (record.current.direction === record.previous.direction) {\n variable.period++\n } else {\n variable.period = 1\n }\n}","project":"Superalgos","id":"ed8b3159-b7bb-44a0-850e-d55a4c0c76a2","savedPayload":{"position":{"x":3857.331665158903,"y":19213.44254683272},"targetPosition":{"x":4081.772990011339,"y":19197.596673600772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ffc37ffd-9763-42c5-8a92-53962e11190e","savedPayload":{"position":{"x":4081.772990011339,"y":19197.596673600772},"targetPosition":{"x":4530.655639716213,"y":19165.90492713687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"variable.period = 1","project":"Superalgos","id":"0c8b195c-a6a6-4e83-b1e6-43a4aca039a6","savedPayload":{"position":{"x":3867.970981895578,"y":19037.553673581846},"targetPosition":{"x":4088.8658678357897,"y":19080.337424766854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5668a3b7-6ebc-4e90-8431-2b7f832e4434","savedPayload":{"position":{"x":4088.8658678357897,"y":19080.337424766854},"targetPosition":{"x":4530.655639716213,"y":19165.90492713687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"694d2276-7466-4884-a5b3-99a52e16ea91","savedPayload":{"position":{"x":4530.655639716213,"y":19165.90492713687},"targetPosition":{"x":5429.013638517197,"y":19220.245574816927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8c81d378-0947-4e9d-be25-58e69120152e","savedPayload":{"position":{"x":6732.850365520266,"y":18826.333660952423},"targetPosition":{"x":6873.691834356032,"y":18561.449383094747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Candles Channels","id":"864f26cb-b191-47c1-801e-57bb2436294e"}}},{"type":"Product Definition","name":"Candles Channels Objects","config":"{\n \"codeName\": \"Candles-Channels-Objects\",\n \"singularVariableName\": \"candlesChannelObjects\",\n \"pluralVariableName\": \"candlesChannelsObjects\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"566b9df4-da86-4b4f-a3f4-ef8a76443714","savedPayload":{"position":{"x":5367.643319782928,"y":18098.858592946926},"targetPosition":{"x":5780.876377092711,"y":18194.00899744306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"8a7d224b-7571-4e1a-8b8f-8a35aa25dc63","savedPayload":{"position":{"x":5417.965101093469,"y":17975.083268139333},"targetPosition":{"x":5780.876377092711,"y":18194.00899744306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"b5fad2c7-a8bc-464d-b459-a925a7d1bc95","savedPayload":{"position":{"x":5219.993186914275,"y":17794.041769567848},"targetPosition":{"x":5366.044840846909,"y":17714.116407106743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"89ecb579-a25e-4db4-8f3c-599d6cf4bbb7","savedPayload":{"position":{"x":5187.870970144762,"y":17723.711135124602},"targetPosition":{"x":5366.044840846909,"y":17714.116407106743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction","config":"{\n \"codeName\": \"direction\",\n \"isString\": true,\n \"possibleValues\": [\"Up\", \"Down\", \"Side\"]\n}","project":"Superalgos","id":"c72882a9-25bc-4be9-b90c-072040321213","savedPayload":{"position":{"x":5201.825985494474,"y":17659.847131511026},"targetPosition":{"x":5366.044840846909,"y":17714.116407106743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Period","config":"{\n \"codeName\": \"period\",\n \"isString\": false\n}","project":"Superalgos","id":"c253b3ab-56f4-4aa8-8dd2-801721fd07a7","savedPayload":{"position":{"x":5227.648905193648,"y":17594.69589436363},"targetPosition":{"x":5366.044840846909,"y":17714.116407106743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"First Min","config":"{ \n\"codeName\": \"firstMin\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"4e21dc37-1099-4ed7-8d63-e32e0764ab01","savedPayload":{"position":{"x":5285.076147890126,"y":17584.658626001958},"targetPosition":{"x":5366.044840846909,"y":17714.116407106743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last Min","config":"{ \n\"codeName\": \"lastMin\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"62d4e90b-f3d5-4e32-9ef2-a3b460e17522","savedPayload":{"position":{"x":5352.767106185802,"y":17505.10024853651},"targetPosition":{"x":5366.044840846909,"y":17714.116407106743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"First Max","config":"{ \n\"codeName\": \"firstMax\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"3d4a753f-2b69-49e3-8a3d-4c99ed137495","savedPayload":{"position":{"x":5380.639319085956,"y":17598.165220545357},"targetPosition":{"x":5366.044840846909,"y":17714.116407106743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last Max","config":"{ \n\"codeName\": \"lastMax\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"55381285-2fa6-4ffc-a174-38e3e126708b","savedPayload":{"position":{"x":5478.2363224484325,"y":17562.008435175405},"targetPosition":{"x":5366.044840846909,"y":17714.116407106743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a4c69128-a306-4eac-83a7-20002c4a6b4b","savedPayload":{"position":{"x":5366.044840846909,"y":17714.116407106743},"targetPosition":{"x":5780.876377092711,"y":18194.00899744306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"\n\nif (record.next !== undefined) {\n\n if (\n record.current.direction === record.next.direction) {\n\n if (variable.channel === undefined) {\n\n variable.channel = {\n begin: undefined,\n end: undefined,\n direction: undefined,\n period: 0,\n firstMin: 0,\n lastMin: 0,\n firstMax: 0,\n lastMax: 0\n }\n\n variable.channel.direction = record.current.direction\n variable.channel.period = 2\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.next.end\n\n variable.channel.firstMin = record.current.min\n variable.channel.lastMin = record.next.min\n\n variable.channel.firstMax = record.current.max\n variable.channel.lastMax = record.next.max\n\n } else {\n\n variable.channel.period++\n variable.channel.end = record.next.end\n variable.channel.lastMin = record.next.min\n variable.channel.lastMax = record.next.max\n\n }\n } else {\n\n if (variable.channel !== undefined) {\n results.push(variable.channel)\n variable.channel = undefined\n } else {\n /* The variable.channel has only one period */\n\n variable.channel = {}\n\n variable.channel.direction = record.current.direction\n variable.channel.period = 1\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.current.end\n\n variable.channel.firstMin = record.current.min\n variable.channel.lastMin = record.current.min\n\n variable.channel.firstMax = record.current.max\n variable.channel.lastMax = record.current.max\n\n results.push(variable.channel)\n variable.channel = undefined\n }\n }\n} else {\n if (variable.channel !== undefined) {\n variable.channel.period++\n variable.channel.end = record.current.end\n variable.channel.lastMin = record.current.min\n variable.channel.lastMax = record.current.max\n results.push(variable.channel)\n variable.channel = undefined\n } else {\n /* The variable.channel has only one period */\n\n variable.channel = {}\n\n variable.channel.direction = record.current.direction\n variable.channel.period = 1\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.current.end\n\n variable.channel.firstMin = record.current.min\n variable.channel.lastMin = record.current.min\n\n variable.channel.firstMax = record.current.max\n variable.channel.lastMax = record.current.max\n\n results.push(variable.channel)\n variable.channel = undefined\n }\n}","project":"Superalgos","id":"3d8fcb90-fd49-4a4a-b905-63c2db9a6148","savedPayload":{"position":{"x":5587.912847507643,"y":17728.489890425357},"targetPosition":{"x":5625.390918599947,"y":17820.474961850086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"58776129-39ee-4063-8f51-ca59c75bcae6","savedPayload":{"position":{"x":5625.390918599947,"y":17820.474961850086},"targetPosition":{"x":5665.541989568959,"y":17918.51020983425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d2d46944-c474-417b-a12c-d9b011ffcaa5","savedPayload":{"position":{"x":5665.541989568959,"y":17918.51020983425},"targetPosition":{"x":5780.876377092711,"y":18194.00899744306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047","savedPayload":{"position":{"x":6604.053620466282,"y":18692.96072713147},"targetPosition":{"x":6873.691834356032,"y":18561.449383094747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Candles Channels Objects","id":"7aa1e889-ae4f-4945-b0e5-9ad87ded05a5"}}}],"id":"c4adde4f-8ed9-4a02-8994-90f0967c8be1","savedPayload":{"position":{"x":6873.691834356033,"y":18563.449383094747},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Resistances and Supports","config":"{ \n\"codeName\": \"Resistances-And-Supports\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates SMAs for Time Frames of 01-hs and above.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Resistances","project":"Superalgos","id":"5ccce358-1e38-4b97-9bd4-2634d38f4bc4","savedPayload":{"position":{"x":6660.556535097687,"y":19360.285486284567},"targetPosition":{"x":6337.624143351328,"y":19125.24644369101},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"44e905fc-719f-453b-a567-fd5e3bfcae91"}}},{"type":"Output Dataset","name":"Multi-Period-Market Supports","project":"Superalgos","id":"0f3718f9-e4ed-4217-b59f-77ace0cf9aef","savedPayload":{"position":{"x":6296.324688326677,"y":19522.699414563383},"targetPosition":{"x":6337.624143351328,"y":19125.24644369101},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4a1bd251-76ed-4530-8723-08e41d50f12d"}}}],"outputDatasetFolders":[],"id":"cf7a746c-31f5-4a6e-9ea1-96d1163905cc","savedPayload":{"position":{"x":7196.163849189332,"y":18831.236854599494},"targetPosition":{"x":6897.807280578851,"y":18799.878315619197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"a27c7e9d-a3ea-4f6e-b682-9474ccfe5366","savedPayload":{"position":{"x":6183.091866521991,"y":19507.1400510753},"targetPosition":{"x":6081.9019985160085,"y":19165.502055372897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Resistances and Supports Multi-Period-Market","config":"{ \n\"mainUtility\": \"Self Reference|Market Starting Point|Market Ending Point\"\n}","project":"Superalgos","id":"d0c6a69b-9ee7-4b2e-b58f-050878def5fd","savedPayload":{"position":{"x":6044.515718703693,"y":19519.964254297807},"targetPosition":{"x":6081.9019985160085,"y":19165.502055372897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"61f870e5-33d1-401e-8ca6-f4da59d955bc"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"899c04ed-0144-4193-a7f0-658061c4b719","savedPayload":{"position":{"x":5911.547761216436,"y":19478.473706089007},"targetPosition":{"x":6081.9019985160085,"y":19165.502055372897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"46684253-b8e4-447d-b8d0-6b13ed7ab29b","savedPayload":{"position":{"x":7140.512378891333,"y":18976.21389130694},"targetPosition":{"x":6897.807280578851,"y":18799.878315619197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"61f870e5-33d1-401e-8ca6-f4da59d955bc","savedPayload":{"position":{"x":7019.828273501589,"y":19073.941952911977},"targetPosition":{"x":6897.807280578851,"y":18799.878315619197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"02633aff-3554-4a49-9fd7-a348c9b3671d","savedPayload":{"position":{"x":6866.448741598553,"y":19098.234884229678},"targetPosition":{"x":6897.807280578851,"y":18799.878315619197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"e69d76de-05e3-428a-b823-bfb0e191c659","savedPayload":{"position":{"x":6721.471704891108,"y":19042.58341393168},"targetPosition":{"x":6897.807280578851,"y":18799.878315619197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5d9b2729-43fb-4e7e-aa4f-b8477c424e51","savedPayload":{"position":{"x":6897.807280578851,"y":18799.878315619197},"targetPosition":{"x":6775.786287656112,"y":18525.814678326416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Describe what the process does.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Resistances","project":"Superalgos","id":"e990eaed-a1b4-4668-9778-b0310f249235","savedPayload":{"position":{"x":6310.015782099836,"y":19378.022626830036},"targetPosition":{"x":6075.4636458850255,"y":19054.777604150622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f4530d48-3239-4ab0-8c4d-d611cd55fde3"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Supports","project":"Superalgos","id":"a4208abc-dbfe-4568-8697-4fdbc1bef5c9","savedPayload":{"position":{"x":5915.662638867736,"y":19379.91954841766},"targetPosition":{"x":6075.4636458850255,"y":19054.777604150622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"deaaf4ec-9352-40b6-af9a-8541a73a5e13"}}}],"outputDatasetFolders":[],"id":"86d9d925-de8e-4e76-b08c-2b6fb2303d37","savedPayload":{"position":{"x":5848.218187708517,"y":18907.70031675159},"targetPosition":{"x":5952.3525616383085,"y":18418.292933119745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Resistances and Supports Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"c8e28e76-f11d-493e-8961-6c26a1eed57d","savedPayload":{"position":{"x":6069.706163202947,"y":19447.4078224997},"targetPosition":{"x":5820.05363290989,"y":19014.178955491738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"3842d7ea-292c-438c-af35-f5e6a6c68105"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"56bc0c89-e012-47b1-9e33-3ed4fdc3aa52","savedPayload":{"position":{"x":5782.887891751678,"y":19368.41258602553},"targetPosition":{"x":5820.05363290989,"y":19014.178955491738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"723d9197-6349-4499-9dd4-f6443cba19be","savedPayload":{"position":{"x":5581.627591471792,"y":19279.0184059879},"targetPosition":{"x":5820.05363290989,"y":19014.178955491738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"1e51570a-18ba-4d61-8fc2-4019acc2ffeb","savedPayload":{"position":{"x":5471.575816571021,"y":19088.223128705093},"targetPosition":{"x":5820.05363290989,"y":19014.178955491738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"bf0382d1-1529-4cb0-8c9c-39659093d9e8","savedPayload":{"position":{"x":5617.5565114800775,"y":18789.872501197107},"targetPosition":{"x":5952.3525616383085,"y":18418.292933119745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"3842d7ea-292c-438c-af35-f5e6a6c68105","savedPayload":{"position":{"x":5476.684441720608,"y":18572.818622819555},"targetPosition":{"x":5952.3525616383085,"y":18418.292933119745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"ab23ac12-59f4-42a2-86f3-5c32619f4c6e","savedPayload":{"position":{"x":5463.156970808297,"y":18314.63968762618},"targetPosition":{"x":5952.3525616383085,"y":18418.292933119745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"7e2fdde9-8b64-44a3-85f1-10c3935bd3e3","savedPayload":{"position":{"x":5580.792006121392,"y":18084.073161425848},"targetPosition":{"x":5952.3525616383085,"y":18418.292933119745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"be19d91b-9337-4f84-96b3-f4e54ea12df5","savedPayload":{"position":{"x":6713.412780410785,"y":18819.258958546558},"targetPosition":{"x":6775.786287656112,"y":18525.814678326416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Resistances","config":"{ \n\"codeName\": \"Resistances\",\n \"singularVariableName\": \"resistance\",\n \"pluralVariableName\": \"resistances\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"\n{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"44e905fc-719f-453b-a567-fd5e3bfcae91","savedPayload":{"position":{"x":6464.890020426505,"y":19050.690877645764},"targetPosition":{"x":6441.371116191283,"y":18826.923451187904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }\n","project":"Superalgos","id":"f4530d48-3239-4ab0-8c4d-d611cd55fde3","savedPayload":{"position":{"x":6328.871116191283,"y":19021.779167039404},"targetPosition":{"x":6441.371116191283,"y":18826.923451187904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"8fc59f80-7313-43a0-be1f-3601c653253f","savedPayload":{"position":{"x":6061.706562786712,"y":20468.396333499273},"targetPosition":{"x":5914.197776628789,"y":20043.25969898489},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4db89c62-71d4-4add-8a8a-3fd37b230993","savedPayload":{"position":{"x":5914.197776628789,"y":20043.25969898489},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"8cd95902-f17d-49c6-947f-b574dab41637","savedPayload":{"position":{"x":5951.950040554879,"y":20501.33051164393},"targetPosition":{"x":5841.026761807567,"y":20065.215817747994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ca4c0849-7e58-4dee-958a-7b9567c9bc22","savedPayload":{"position":{"x":5841.026761807567,"y":20065.215817747994},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate Resistance","config":"{\n \"codeName\": \"rateResistance\"\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.resistance.rate","project":"Superalgos","id":"3ead495c-b3d7-4232-bd44-a0201833230e","savedPayload":{"position":{"x":5839.79590402752,"y":20524.838040699397},"targetPosition":{"x":5766.257337455994,"y":20080.887503784972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a198ddb9-bfdc-4ba5-8772-6ddb98a1151d","savedPayload":{"position":{"x":5766.257337455994,"y":20080.887503784972},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Period Resistance","config":"{\n \"codeName\": \"periodResistance\"\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.resistance.period","project":"Superalgos","id":"5ad98412-3b69-4eba-b1ea-6aa86e0db304","savedPayload":{"position":{"x":5726.05222632832,"y":20538.749548380143},"targetPosition":{"x":5690.428218989862,"y":20090.161842238802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"561ab821-c7be-4df8-abb4-3d1a5421b27b","savedPayload":{"position":{"x":5690.428218989862,"y":20090.161842238802},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Type Resistance","config":"{\n \"codeName\": \"typeResistance\",\n \"isString\": true,\n \"possibleValues\": [\"Resistance\", \"Support\"]\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.resistance.type","project":"Superalgos","id":"2d379184-f16b-4c87-8ed4-a0c57d1e2837","savedPayload":{"position":{"x":5611.538533261533,"y":20542.964801954557},"targetPosition":{"x":5614.0857569453365,"y":20092.972011288413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7cdcd891-d5e4-4237-9189-8ad7691d41ac","savedPayload":{"position":{"x":5614.0857569453365,"y":20092.972011288413},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 1 Rate","config":"{ \n\"codeName\": \"resistance1Rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance1Rate","project":"Superalgos","id":"b3da6d1a-38f0-4b52-88eb-926d32db8bf3","savedPayload":{"position":{"x":5497.079898609783,"y":20537.45343042404},"targetPosition":{"x":5537.7800005108365,"y":20089.2977636014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bea03586-2505-4e03-9a2b-3a9477955e66","savedPayload":{"position":{"x":5537.7800005108365,"y":20089.2977636014},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 1 Period","config":"{ \n\"codeName\": \"resistance1Period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance1Period","project":"Superalgos","id":"292c00a5-59ff-4075-a386-6b5222b26019","savedPayload":{"position":{"x":5383.500999458542,"y":20522.25514334676},"targetPosition":{"x":5462.06073441001,"y":20079.16557221655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b8872bec-843c-41cb-a42a-9da8248dc514","savedPayload":{"position":{"x":5462.06073441001,"y":20079.16557221655},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 2 Rate","config":"{ \n\"codeName\": \"resistance2Rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance2Rate","project":"Superalgos","id":"f9904c9a-9244-4d2d-a5b6-22600493c059","savedPayload":{"position":{"x":5271.620174378855,"y":20497.47944472938},"targetPosition":{"x":5387.473517690218,"y":20062.64843980496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"33f9cf94-552f-418d-b93a-8d073def39e7","savedPayload":{"position":{"x":5387.473517690218,"y":20062.64843980496},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 2 Period","config":"{ \n\"codeName\": \"resistance2Period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance2Period","project":"Superalgos","id":"4b08a91c-42f9-4354-b197-a6a84d08d0cb","savedPayload":{"position":{"x":5162.243527279159,"y":20463.304844048165},"targetPosition":{"x":5314.555752957087,"y":20039.86537268415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e67af800-29c1-49fc-9162-13b8a750bfbf","savedPayload":{"position":{"x":5314.555752957087,"y":20039.86537268415},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 3 Rate","config":"{ \n\"codeName\": \"resistance3Rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance3Rate","project":"Superalgos","id":"69de03a4-e0a2-4136-8353-20c7a61cf4e5","savedPayload":{"position":{"x":5056.1591194081775,"y":20419.977570084146},"targetPosition":{"x":5243.832814376434,"y":20010.980523374805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"688458ca-7c03-4ba9-a09f-97c556e5bbae","savedPayload":{"position":{"x":5243.832814376434,"y":20010.980523374805},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 3 Period","config":"{ \n\"codeName\": \"resistance3Period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance3Period","project":"Superalgos","id":"12621061-eba5-477c-add4-85a431de92a4","savedPayload":{"position":{"x":4954.13129135553,"y":20367.80979683906},"targetPosition":{"x":5175.814262341333,"y":19976.20200787808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3be3022d-d812-4570-8d01-849a104da943","savedPayload":{"position":{"x":5175.814262341333,"y":19976.20200787808},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 4 Rate","config":"{ \n\"codeName\": \"resistance4Rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance4Rate","project":"Superalgos","id":"acd8a299-32f4-4646-9acf-f679612e7ff7","savedPayload":{"position":{"x":4856.895155960301,"y":20307.17739431457},"targetPosition":{"x":5110.990172077847,"y":19935.78040619509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"97f41f84-75e6-4b28-a948-6971fa6a3c95","savedPayload":{"position":{"x":5110.990172077847,"y":19935.78040619509},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 4 Period","config":"{ \n\"codeName\": \"resistance4Period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance4Period","project":"Superalgos","id":"0dcb8ce8-61a4-4acc-a78b-8323d2d265af","savedPayload":{"position":{"x":4765.151301806178,"y":20238.517220360256},"targetPosition":{"x":5049.827602641766,"y":19890.00695689221},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b23829c6-2cac-4cbe-bf10-0dff088077ba","savedPayload":{"position":{"x":5049.827602641766,"y":19890.00695689221},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 5 Rate","config":"{ \n\"codeName\": \"resistance5Rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance5Rate","project":"Superalgos","id":"8ca891d5-65e6-4b57-840f-355241255c69","savedPayload":{"position":{"x":4679.560745464638,"y":20162.32397310279},"targetPosition":{"x":4992.767231747406,"y":19839.21145872057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e7a2bbe6-f265-4069-8d11-377fba99a6c3","savedPayload":{"position":{"x":4992.767231747406,"y":19839.21145872057},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 5 Period","config":"{ \n\"codeName\": \"resistance5Period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance5Period","project":"Superalgos","id":"a862b407-8962-4b48-8add-169cdd893269","savedPayload":{"position":{"x":4600.740168855431,"y":20079.14662663464},"targetPosition":{"x":4940.220180674602,"y":19783.759894408468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"30bb7e73-32f0-4cbb-bc41-eb3bdc086718","savedPayload":{"position":{"x":4940.220180674602,"y":19783.759894408468},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 1 Bounce 1","config":"{ \n\"codeName\": \"resistance1Bounce1\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance1Bounce1","project":"Superalgos","id":"2238f0b3-c9e0-45b2-ab8e-66b4ce2ff98e","savedPayload":{"position":{"x":4529.257476039198,"y":19989.584475643103},"targetPosition":{"x":4892.565052130445,"y":19724.051793747443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c111cf47-76d4-44d5-9c39-60f72eca4226","savedPayload":{"position":{"x":4892.565052130445,"y":19724.051793747443},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 1 Bounce 2","config":"{ \n\"codeName\": \"resistance1Bounce2\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance1Bounce2","project":"Superalgos","id":"5de72a19-6f28-4e45-ab8c-532f77ddffbb","savedPayload":{"position":{"x":4465.6277014556945,"y":19894.282817478386},"targetPosition":{"x":4850.145202408112,"y":19660.517354970965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9018b3af-c080-48b4-82c6-8489268c0690","savedPayload":{"position":{"x":4850.145202408112,"y":19660.517354970965},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 1 Bounce 3","config":"{ \n\"codeName\": \"resistance1Bounce3\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance1Bounce3","project":"Superalgos","id":"ce754586-45d8-44d3-b6df-4abd1303671c","savedPayload":{"position":{"x":4410.309299088873,"y":19793.92830277141},"targetPosition":{"x":4813.266267496896,"y":19593.614345166312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0b7458a1-dd88-4b0a-91b7-b92df6263fb4","savedPayload":{"position":{"x":4813.266267496896,"y":19593.614345166312},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 1 Bounce 5","config":"{ \n\"codeName\": \"resistance1Bounce5\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance1Bounce5","project":"Superalgos","id":"4520275c-befa-4070-8b21-9b741381ff87","savedPayload":{"position":{"x":4363.700839295405,"y":19689.243988100243},"targetPosition":{"x":4782.1939609679175,"y":19523.824802052204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f0479991-f060-44bf-8ac5-5b895362f3ef","savedPayload":{"position":{"x":4782.1939609679175,"y":19523.824802052204},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 1 Bounce 10","config":"{ \n\"codeName\": \"resistance1Bounce10\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance1Bounce10","project":"Superalgos","id":"2185c09e-8439-4776-9cb8-503d08e2eaed","savedPayload":{"position":{"x":4326.1381370961335,"y":19580.984126350933},"targetPosition":{"x":4757.152159501737,"y":19451.651560885995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"33826a2e-6432-4a0c-accb-d3a930a1dd73","savedPayload":{"position":{"x":4757.152159501737,"y":19451.651560885995},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 1 Bounce All","config":"{ \n\"codeName\": \"resistance1BounceAll\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance1BounceAll","project":"Superalgos","id":"81fabb3a-9c41-41e9-b09e-f168ca8c7032","savedPayload":{"position":{"x":4297.891832621146,"y":19469.92873230815},"targetPosition":{"x":4738.321289851745,"y":19377.614631524142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"99647cd5-b683-4014-a213-d24fa859d561","savedPayload":{"position":{"x":4738.321289851745,"y":19377.614631524142},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 2 Bounce 1","config":"{ \n\"codeName\": \"resistance2Bounce1\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance2Bounce1","project":"Superalgos","id":"c810907a-f21c-4163-9e8e-8a884e8aa0f7","savedPayload":{"position":{"x":4279.165441141455,"y":19356.877962630806},"targetPosition":{"x":4725.837028865284,"y":19302.247451739244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d93c9b19-9366-444c-b1e2-40c0d7f5685d","savedPayload":{"position":{"x":4725.837028865284,"y":19302.247451739244},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 2 Bounce 2","config":"{ \n\"codeName\": \"resistance2Bounce2\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance2Bounce2","project":"Superalgos","id":"348406a5-5031-4393-becb-19c4f325b698","savedPayload":{"position":{"x":4270.093886736777,"y":19242.646350704978},"targetPosition":{"x":4719.789325928832,"y":19226.093043788693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0458195f-bd6e-474e-8387-0e15f4730aef","savedPayload":{"position":{"x":4719.789325928832,"y":19226.093043788693},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 2 Bounce 3","config":"{ \n\"codeName\": \"resistance2Bounce3\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance2Bounce3","project":"Superalgos","id":"eebbde09-23ce-4403-b792-17c9fd5da771","savedPayload":{"position":{"x":4270.742530164478,"y":19128.05693791219},"targetPosition":{"x":4720.221754880633,"y":19149.700101926835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9b56c44a-4141-4a6c-8b97-345cd1fc5ff3","savedPayload":{"position":{"x":4720.221754880633,"y":19149.700101926835},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 2 Bounce 5","config":"{ \n\"codeName\": \"resistance2Bounce5\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance2Bounce5","project":"Superalgos","id":"6b64ca08-f049-4a3b-97a3-91eb11d07f70","savedPayload":{"position":{"x":4281.1066979337975,"y":19013.935343597444},"targetPosition":{"x":4727.131200060179,"y":19073.619039050336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fb3c325e-8229-4879-9a16-d0b00b12b527","savedPayload":{"position":{"x":4727.131200060179,"y":19073.619039050336},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 2 Bounce 10","config":"{ \n\"codeName\": \"resistance2Bounce10\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance2Bounce10","project":"Superalgos","id":"eae97d09-1001-4c26-9337-ba15de4b6b16","savedPayload":{"position":{"x":4301.111715978463,"y":18901.103816462855},"targetPosition":{"x":4740.467878756623,"y":18998.398020960612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bdeb35a8-ff0d-4441-8507-595bf5152fdb","savedPayload":{"position":{"x":4740.467878756623,"y":18998.398020960612},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 2 Bounce All","config":"{ \n\"codeName\": \"resistance2BounceAll\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance2BounceAll","project":"Superalgos","id":"8f31479b-9788-4b26-9e29-17b021e080bc","savedPayload":{"position":{"x":4330.613447685046,"y":18790.37531024696},"targetPosition":{"x":4760.135699894345,"y":18924.579016816682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f762cc91-2102-4f76-81d0-47ebc238f7b2","savedPayload":{"position":{"x":4760.135699894345,"y":18924.579016816682},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 3 Bounce 1","config":"{ \n\"codeName\": \"resistance3Bounce1\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance3Bounce1","project":"Superalgos","id":"dc591f82-09c1-4a97-9571-db4dea91848a","savedPayload":{"position":{"x":4369.399332400573,"y":18682.54762637438},"targetPosition":{"x":4785.992956371363,"y":18852.693894234962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"108588b4-799b-4a53-880c-09e6241a0d83","savedPayload":{"position":{"x":4785.992956371363,"y":18852.693894234962},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 3 Bounce 2","config":"{ \n\"codeName\": \"resistance3Bounce2\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance3Bounce2","project":"Superalgos","id":"99fdd4d2-2681-45c5-a10c-b5a26d9146f5","savedPayload":{"position":{"x":4417.189916936892,"y":18578.397665778288},"targetPosition":{"x":4817.853346062242,"y":18783.2605871709},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cc680268-6a77-4bf3-8fb6-d52fe13c501c","savedPayload":{"position":{"x":4817.853346062242,"y":18783.2605871709},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 3 Bounce 3","config":"{ \n\"codeName\": \"resistance3Bounce3\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance3Bounce3","project":"Superalgos","id":"d9cfaabe-04b9-4b3a-8143-f5ef50ac58ed","savedPayload":{"position":{"x":4473.640869037299,"y":18478.675831311364},"targetPosition":{"x":4855.487314129179,"y":18716.77936419295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"31034bc5-b30a-4073-ad24-968a1f879551","savedPayload":{"position":{"x":4855.487314129179,"y":18716.77936419295},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 3 Bounce 5","config":"{ \n\"codeName\": \"resistance3Bounce5\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance3Bounce5","project":"Superalgos","id":"db83ae1b-24e1-460f-bea8-f7273ca83e26","savedPayload":{"position":{"x":4538.3454582983395,"y":18384.100621076064},"targetPosition":{"x":4898.623706969873,"y":18653.729224036084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ebb1a278-c6a4-4834-8fae-486ccd553308","savedPayload":{"position":{"x":4898.623706969873,"y":18653.729224036084},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 3 Bounce 10","config":"{ \n\"codeName\": \"resistance3Bounce10\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance3Bounce10","project":"Superalgos","id":"570566fa-85ca-4603-aad1-36275eb97f39","savedPayload":{"position":{"x":4610.837486671688,"y":18295.353451629322},"targetPosition":{"x":4946.951725885439,"y":18594.56444440492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"80df4b28-5835-43dc-a7a8-6e84f9d57525","savedPayload":{"position":{"x":4946.951725885439,"y":18594.56444440492},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 3 Bounce All","config":"{ \n\"codeName\": \"resistance3BounceAll\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance3BounceAll","project":"Superalgos","id":"e3da0929-67a0-46ca-83b5-526873922999","savedPayload":{"position":{"x":4690.594647431757,"y":18213.073748360635},"targetPosition":{"x":5000.1231663921535,"y":18539.711308892463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"096eb127-6766-4d53-a365-12bf9c50c540","savedPayload":{"position":{"x":5000.1231663921535,"y":18539.711308892463},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support Resistance Zone","config":"{ \n\"codeName\": \"supportResistanceZone\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.supportResistanceZone","project":"Superalgos","id":"9f06c41a-3f69-409f-b0a8-03a32014f95e","savedPayload":{"position":{"x":4777.042288407647,"y":18137.85433841749},"targetPosition":{"x":5057.754927042744,"y":18489.565035597036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7b4e7478-e4c0-4664-a95e-8afddd3b245c","savedPayload":{"position":{"x":5057.754927042744,"y":18489.565035597036},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 4 Bounce 1","config":"{ \n\"codeName\": \"resistance4Bounce1\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance4Bounce1","project":"Superalgos","id":"bbceb956-d606-4ee1-86cb-30d3c9e4d16e","savedPayload":{"position":{"x":4869.557552365179,"y":18070.237179372183},"targetPosition":{"x":5119.431769681101,"y":18444.48692956683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c6eace47-c896-4784-9693-6e9d8b678ae4","savedPayload":{"position":{"x":5119.431769681101,"y":18444.48692956683},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 5 Bounce 1","config":"{ \n\"codeName\": \"resistance5Bounce1\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.resistance5Bounce1","project":"Superalgos","id":"335496af-0d73-49cf-bc2e-88237434d4a6","savedPayload":{"position":{"x":4967.473864707561,"y":18010.709454405067},"targetPosition":{"x":5184.709311242688,"y":18404.801779588754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8f735c80-9a12-4061-ab17-7a733f941173","savedPayload":{"position":{"x":5184.709311242688,"y":18404.801779588754},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dbfa5564-4cfd-4bec-8748-c0dc7b1afd98","savedPayload":{"position":{"x":5619.180204312943,"y":19192.986429956123},"targetPosition":{"x":6441.371116191283,"y":18826.923451187904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"\n\nlet candle = record.current\nlet previousCandle = record.previous\n\nvariable.supportResistanceZone = calculateSupportResistanceZone()\n\ndeleteResistances(candle.max)\nincreasePeriods()\n\nvariable.resistance = {}\n\nvariable.resistance.rate = 0\nvariable.resistance.period = 0\nvariable.resistance.type = ''\n\nif (previousCandle !== undefined) {\n\n let previousPreviousCandle = record.previous.previous\n\n if (previousPreviousCandle !== undefined) {\n\n if (previousCandle.max > previousPreviousCandle.max && previousCandle.max > candle.max) {\n variable.resistance.rate = previousCandle.max\n variable.resistance.period = 0\n variable.resistance.type = 'Resistance'\n increaseResistancesBounces(variable.resistance.rate)\n rememberResistance(variable.resistance.rate)\n }\n }\n}\n\nsetClosestResistances()\n\nfunction deleteResistances(rate) {\n\n let max\n\n for (let i = 0; i < variable.resistances.length; i++) {\n let currenRecord = variable.resistances[i]\n let currentRate = currenRecord[0]\n\n if (rate >= currentRate + currentRate * variable.supportResistanceZone / 2 / 100) { // It must go through the support / resistance zone around the current rate value\n max = i\n }\n }\n if (max !== undefined) {\n variable.resistances.splice(0, max + 1)\n }\n}\n\nfunction increasePeriods() {\n\n for (let i = 0; i < variable.resistances.length; i++) {\n let currenRecord = variable.resistances[i]\n currenRecord[1] = currenRecord[1] + 1\n }\n}\n\nfunction setClosestResistances() {\n let record\n\n record = variable.resistances[0]\n if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }\n variable.resistance1Rate = record[0]\n variable.resistance1Period = record[1]\n variable.resistance1Bounce1 = record[2]\n variable.resistance1Bounce2 = record[3]\n variable.resistance1Bounce3 = record[4]\n variable.resistance1Bounce5 = record[5]\n variable.resistance1Bounce10 = record[6]\n variable.resistance1BounceAll = record[7]\n\n record = variable.resistances[1]\n if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }\n variable.resistance2Rate = record[0]\n variable.resistance2Period = record[1]\n variable.resistance2Bounce1 = record[2]\n variable.resistance2Bounce2 = record[3]\n variable.resistance2Bounce3 = record[4]\n variable.resistance2Bounce5 = record[5]\n variable.resistance2Bounce10 = record[6]\n variable.resistance2BounceAll = record[7]\n\n record = variable.resistances[2]\n if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }\n variable.resistance3Rate = record[0]\n variable.resistance3Period = record[1]\n variable.resistance3Bounce1 = record[2]\n variable.resistance3Bounce2 = record[3]\n variable.resistance3Bounce3 = record[4]\n variable.resistance3Bounce5 = record[5]\n variable.resistance3Bounce10 = record[6]\n variable.resistance3BounceAll = record[7]\n\n record = variable.resistances[3]\n if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }\n variable.resistance4Rate = record[0]\n variable.resistance4Period = record[1]\n variable.resistance4Bounce1 = record[2]\n\n record = variable.resistances[4]\n if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }\n variable.resistance5Rate = record[0]\n variable.resistance5Period = record[1]\n variable.resistance5Bounce1 = record[2]\n\n}\n\nfunction rememberResistance(rate) {\n if (variable.resistances.length === 0) {\n variable.resistances.push([rate, 1, 0, 0, 0, 0, 0, 0])\n return\n }\n for (let i = 0; i < variable.resistances.length; i++) {\n let currenRecord = variable.resistances[i]\n let currentRate = currenRecord[0]\n\n if (rate > currentRate - currentRate * variable.supportResistanceZone / 2 / 100 && rate < currentRate + currentRate * variable.supportResistanceZone / 2 / 100) {\n // We are not going to remember this new level since it is absorved by this existing one.\n return\n }\n\n if (rate < currentRate) {\n variable.resistances.splice(i, 0, [rate, 1, 0, 0, 0, 0, 0, 0])\n return\n }\n\n if (i === variable.resistances.length - 1) {\n variable.resistances.push([rate, 1, 0, 0, 0, 0, 0, 0])\n return\n }\n }\n}\n\nfunction increaseResistancesBounces(rate) {\n\n for (let i = 0; i < variable.resistances.length; i++) {\n let currenRecord = variable.resistances[i]\n let currentRate = currenRecord[0]\n let percentage = 100 - rate * 100 / currentRate\n\n if (percentage <= variable.supportResistanceZone / 2 * 1) {\n currenRecord[2] = currenRecord[2] + 1\n }\n\n if (percentage <= variable.supportResistanceZone / 2 * 2) {\n currenRecord[3] = currenRecord[3] + 1\n }\n\n if (percentage <= variable.supportResistanceZone / 2 * 3) {\n currenRecord[4] = currenRecord[4] + 1\n }\n\n if (percentage <= variable.supportResistanceZone / 2 * 5) {\n currenRecord[5] = currenRecord[5] + 1\n }\n\n if (percentage <= variable.supportResistanceZone / 2 * 10) {\n currenRecord[6] = currenRecord[6] + 1\n }\n\n currenRecord[7] = currenRecord[7] + 1\n }\n}\n\nfunction calculateSupportResistanceZone() {\n /* \n The variable % is a percentage we will use for support and resistance based on the time frame.\n We will fix the % for 1 minute candles and for 24 hs candle and the use the formula to obtain\n y on a line by knowing 2 points of the line as described here: https://en.wikipedia.org/wiki/Line_(geometry)\n */\n\n let x0 = system.ONE_MIN_IN_MILISECONDS\n let y0 = 0.1 // At one min, we will consider the resistance / support zone to be 0.1% resistance \n let x1 = system.ONE_DAY_IN_MILISECONDS\n let y1 = 4 // At one day, we will consider the resistance / support zone to be 4% resistance\n\n let x = system.timeFrame // This is the current time frame being calculated\n let y = (x - x0) * (y1 - y0) / (x1 - x0) + y0\n\n return y\n\n}","project":"Superalgos","id":"1c051e71-b2ff-4b5e-9239-98cca169e8fe","savedPayload":{"position":{"x":5771.904615386622,"y":18803.694501063233},"targetPosition":{"x":5996.596260706399,"y":18791.91891090857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"27aac2c1-d423-475c-86ae-84041aa2f3f0","savedPayload":{"position":{"x":5996.596260706399,"y":18791.91891090857},"targetPosition":{"x":6221.287906026177,"y":18780.14332075391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"variable.resistances = []","project":"Superalgos","id":"fdefa569-f171-4d85-8761-d732ebf64ea1","savedPayload":{"position":{"x":5820.334970141412,"y":18575.847595871113},"targetPosition":{"x":6020.811438083794,"y":18677.99545831251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fc16fb34-f72b-4da5-ade1-7598d51a8fbe","savedPayload":{"position":{"x":6020.811438083794,"y":18677.99545831251},"targetPosition":{"x":6221.287906026177,"y":18780.14332075391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a8703574-5d20-4fe2-a8e9-d01de4a958a9","savedPayload":{"position":{"x":6221.287906026177,"y":18780.14332075391},"targetPosition":{"x":6441.371116191283,"y":18826.923451187904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7a734501-a0fb-4305-803e-7e95d477c513","savedPayload":{"position":{"x":6441.371116191283,"y":18826.923451187904},"targetPosition":{"x":6775.786287656112,"y":18525.814678326416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Resistances","id":"156b4fa7-7f8f-4464-8ddb-6eb6123bc5c3"}}},{"type":"Product Definition","name":"Supports","config":"{ \n\"codeName\": \"Supports\",\n \"singularVariableName\": \"support\",\n \"pluralVariableName\": \"supports\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"\n{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"4a1bd251-76ed-4530-8723-08e41d50f12d","savedPayload":{"position":{"x":5583.42872789604,"y":17657.734365839122},"targetPosition":{"x":5987.8967658300135,"y":17657.73671339679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"deaaf4ec-9352-40b6-af9a-8541a73a5e13","savedPayload":{"position":{"x":5661.032690636228,"y":17419.855735417208},"targetPosition":{"x":5987.8967658300135,"y":17657.73671339679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"7cf0c803-eb36-4ada-930f-d129bdffb558","savedPayload":{"position":{"x":4745.844686359975,"y":16472.13609045261},"targetPosition":{"x":5106.616284596701,"y":16384.432727069347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"500e7345-95eb-4430-8171-32caa2356bdf","savedPayload":{"position":{"x":5106.616284596701,"y":16384.432727069347},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"ecbd13b3-2af2-45a5-800c-a34fe73e0db6","savedPayload":{"position":{"x":4607.439160937516,"y":16301.341865829749},"targetPosition":{"x":4975.497653928305,"y":16211.424175280143},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a44b1626-282b-49d2-9ad1-cd5c81cc9f4a","savedPayload":{"position":{"x":4975.497653928305,"y":16211.424175280143},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate Support","config":"{\n \"codeName\": \"rateSupport\"\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.support.rate","project":"Superalgos","id":"14075730-a865-48f7-9f44-5c2d201ed16d","savedPayload":{"position":{"x":4784.106936331831,"y":16340.216640378902},"targetPosition":{"x":5143.354776085958,"y":16326.248511241341},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b2612e72-07b1-4756-834a-6db765bd386c","savedPayload":{"position":{"x":5143.354776085958,"y":16326.248511241341},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Period Support","config":"{\n \"codeName\": \"periodSupport\"\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.support.period","project":"Superalgos","id":"a47c1c1f-8e5e-4e03-9177-33fbf3f5d5a7","savedPayload":{"position":{"x":4790.194649168654,"y":16211.34212814043},"targetPosition":{"x":5158.708433267944,"y":16249.168037238149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bd719e1d-c639-4577-b0f1-89663028daa3","savedPayload":{"position":{"x":5158.708433267944,"y":16249.168037238149},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Type Support","config":"{\n \"codeName\": \"typeSupport\",\n \"isString\": true,\n \"possibleValues\": [\"Resistance\", \"Support\"]\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.support.type","project":"Superalgos","id":"18bf2427-ca89-4840-ba97-c9187b76da8c","savedPayload":{"position":{"x":4622.070722681274,"y":16126.880921211272},"targetPosition":{"x":4998.519108268996,"y":16160.945889484396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"005b24fe-a5d4-47b7-aa13-03c2aa091d8a","savedPayload":{"position":{"x":4998.519108268996,"y":16160.945889484396},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 1 Rate","config":"{ \n\"codeName\": \"support1Rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support1Rate","project":"Superalgos","id":"40e08fb6-52ff-4f0a-99a6-989f5bc81610","savedPayload":{"position":{"x":4818.233421768855,"y":16086.480178469948},"targetPosition":{"x":5185.769184457891,"y":16170.589987695002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7755d99-afae-4dfe-a429-5de300b3a64a","savedPayload":{"position":{"x":5185.769184457891,"y":16170.589987695002},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 1 Period","config":"{ \n\"codeName\": \"support1Period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support1Period","project":"Superalgos","id":"c65fb3e0-42b1-4de7-9d71-613919f6a7ec","savedPayload":{"position":{"x":4655.686086158486,"y":15994.856214445808},"targetPosition":{"x":5020.0993037421795,"y":16092.703500595799},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78fb954c-336d-4a3d-8724-65786fcf8cbf","savedPayload":{"position":{"x":5020.0993037421795,"y":16092.703500595799},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 2 Rate","config":"{ \n\"codeName\": \"support2Rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support2Rate","project":"Superalgos","id":"0ce65da3-57d2-4161-89aa-68bf1802c52a","savedPayload":{"position":{"x":4874.832913778035,"y":15951.588383512744},"targetPosition":{"x":5208.925718376915,"y":16101.748289193976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5d52e50a-ccad-4487-aebb-ac4b8fbecb1e","savedPayload":{"position":{"x":5208.925718376915,"y":16101.748289193976},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 2 Period","config":"{ \n\"codeName\": \"support2Period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support2Period","project":"Superalgos","id":"28425604-1922-47d0-9479-c53c56923197","savedPayload":{"position":{"x":4700.338643959891,"y":15891.548946312712},"targetPosition":{"x":5046.3601679809035,"y":16012.823974413226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fa4c6abd-7eee-4f94-b2b6-65e638c5f1c1","savedPayload":{"position":{"x":5046.3601679809035,"y":16012.823974413226},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 3 Rate","config":"{ \n\"codeName\": \"support3Rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support3Rate","project":"Superalgos","id":"ab99a0da-1377-4cf4-986c-197e52b4c696","savedPayload":{"position":{"x":4744.264441349267,"y":15773.04097117208},"targetPosition":{"x":5240.674160517396,"y":16052.06310870039},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7b87217d-8e2a-425a-a1e1-d5d0a09a98de","savedPayload":{"position":{"x":5240.674160517396,"y":16052.06310870039},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 3 Period","config":"{ \n\"codeName\": \"support3Period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support3Period","project":"Superalgos","id":"052e5b14-17d6-45f9-b680-388146cb6852","savedPayload":{"position":{"x":4949.527495190319,"y":15891.138192962484},"targetPosition":{"x":5078.73031746006,"y":15944.05841827027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aa81f2c7-4fb7-4ce8-a52c-9ced275a240b","savedPayload":{"position":{"x":5078.73031746006,"y":15944.05841827027},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 4 Rate","config":"{ \n\"codeName\": \"support4Rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support4Rate","project":"Superalgos","id":"d7409aeb-b96f-4591-abc6-94c3feae3243","savedPayload":{"position":{"x":4861.463516551274,"y":15573.981737265934},"targetPosition":{"x":5344.699594578011,"y":15871.238591017056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b188be8-ca50-4b70-b54c-01bee5c8fe6e","savedPayload":{"position":{"x":5344.699594578011,"y":15871.238591017056},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 4 Period","config":"{ \n\"codeName\": \"support4Period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support4Period","project":"Superalgos","id":"44d44f24-2c72-4679-8eac-3c571073eb5b","savedPayload":{"position":{"x":4953.122566107657,"y":15764.715559090742},"targetPosition":{"x":5108.924594222724,"y":15971.192176116823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bd577b4c-73a5-4ce1-ba77-30dee0f2d456","savedPayload":{"position":{"x":5108.924594222724,"y":15971.192176116823},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 5 Rate","config":"{ \n\"codeName\": \"support5Rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support5Rate","project":"Superalgos","id":"362400a8-620f-4a50-ac69-ca970d2c8e2c","savedPayload":{"position":{"x":4979.802169458148,"y":15546.012198008568},"targetPosition":{"x":5280.548619648402,"y":15949.625328626105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6a84dce6-0b33-4acd-8eef-ec00e8c1f565","savedPayload":{"position":{"x":5280.548619648402,"y":15949.625328626105},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 5 Period","config":"{ \n\"codeName\": \"support5Period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support5Period","project":"Superalgos","id":"a3c54d4a-d24f-48d2-9bd6-8c97e72988d6","savedPayload":{"position":{"x":5049.35168561387,"y":15646.151665682148},"targetPosition":{"x":5178.604526323721,"y":15869.48173685992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aad90b32-0fc6-42e6-97ad-92369d92c75d","savedPayload":{"position":{"x":5178.604526323721,"y":15869.48173685992},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 1 Bounce 1","config":"{ \n\"codeName\": \"support1Bounce1\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support1Bounce1","project":"Superalgos","id":"f8588e9b-1b98-4d42-9c9e-87a1ccbf5f85","savedPayload":{"position":{"x":5010.618134137054,"y":15438.090060304541},"targetPosition":{"x":5123.20188365475,"y":15597.238016570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"b01a5c8f-7c91-497d-b859-14a28ed2dab0","savedPayload":{"position":{"x":5123.20188365475,"y":15597.238016570307},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 1 Bounce 2","config":"{ \n\"codeName\": \"support1Bounce2\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support1Bounce2","project":"Superalgos","id":"5ced6adc-834d-42d3-8fda-922e22c010b3","savedPayload":{"position":{"x":5096.291174316735,"y":15387.856007484348},"targetPosition":{"x":5187.1572738034665,"y":15549.846667296713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"237bb47a-cad5-4d17-8082-4a668a520c0f","savedPayload":{"position":{"x":5187.1572738034665,"y":15549.846667296713},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 1 Bounce 3","config":"{ \n\"codeName\": \"support1Bounce3\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support1Bounce3","project":"Superalgos","id":"b4699add-3195-4db4-8bd7-9a9afbf47bfe","savedPayload":{"position":{"x":5194.423585050474,"y":15324.65813169382},"targetPosition":{"x":5260.364376596193,"y":15544.092121741136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"7ab00eae-5fff-41cb-a438-2e938663d10b","savedPayload":{"position":{"x":5260.364376596193,"y":15544.092121741136},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 1 Bounce 5","config":"{ \n\"codeName\": \"support1Bounce5\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support1Bounce5","project":"Superalgos","id":"a447aee8-c957-4bc8-b2ee-8e90b69820f1","savedPayload":{"position":{"x":5304.6465556284675,"y":15377.020720108301},"targetPosition":{"x":5332.478778166886,"y":15437.032930568588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"e9f2282a-5328-4765-9e6a-e388f22b0664","savedPayload":{"position":{"x":5332.478778166886,"y":15437.032930568588},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 1 Bounce 10","config":"{ \n\"codeName\": \"support1Bounce10\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support1Bounce10","project":"Superalgos","id":"ccb5af69-8ba1-4050-8e5c-d7bb6d7ca7e6","savedPayload":{"position":{"x":5364.214722423392,"y":15232.598924009395},"targetPosition":{"x":5401.984005472186,"y":15570.392407896661},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"bff9046e-7f89-4bf1-94fa-374623c25270","savedPayload":{"position":{"x":5401.984005472186,"y":15570.392407896661},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 1 Bounce All","config":"{ \n\"codeName\": \"support1BounceAll\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support1BounceAll","project":"Superalgos","id":"db228fdf-d598-4e15-ac14-ee5f9abc9f04","savedPayload":{"position":{"x":5428.904811416338,"y":15349.839552576408},"targetPosition":{"x":5433.613829291633,"y":15450.526723676005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"92fe7b52-2018-4a57-9d5a-68146cb40679","savedPayload":{"position":{"x":5433.613829291633,"y":15450.526723676005},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 2 Bounce 1","config":"{ \n\"codeName\": \"support2Bounce1\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support2Bounce1","project":"Superalgos","id":"668ef50d-cc9c-472d-8f1e-01501af5dcf5","savedPayload":{"position":{"x":5504.80253831884,"y":15248.505715164976},"targetPosition":{"x":5514.201615379916,"y":15533.170164311141},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"1dfa6ecc-7354-4ae2-b82c-3b67c1dc9714","savedPayload":{"position":{"x":5514.201615379916,"y":15533.170164311141},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 2 Bounce 2","config":"{ \n\"codeName\": \"support2Bounce2\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support2Bounce2","project":"Superalgos","id":"879626cc-4c25-4a48-9664-b09a8ef0898b","savedPayload":{"position":{"x":5578.415330117379,"y":15335.284066993205},"targetPosition":{"x":5595.999957803884,"y":15418.27589947746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"2ac63aa9-1097-4384-b9d9-a09591216b46","savedPayload":{"position":{"x":5595.999957803884,"y":15418.27589947746},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 2 Bounce 3","config":"{ \n\"codeName\": \"support2Bounce3\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support2Bounce3","project":"Superalgos","id":"6d35756c-cbf6-4dbb-9e0e-87eec91ae9c7","savedPayload":{"position":{"x":5681.127688752473,"y":15258.072914811995},"targetPosition":{"x":5628.29031963032,"y":15556.400197385896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"0f78e402-d6d9-47c8-a71f-ba19d31fdaa9","savedPayload":{"position":{"x":5628.29031963032,"y":15556.400197385896},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 2 Bounce 5","config":"{ \n\"codeName\": \"support2Bounce5\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support2Bounce5","project":"Superalgos","id":"7ea5cc0c-062a-4ab1-bc29-0cfef7646609","savedPayload":{"position":{"x":5728.886817517217,"y":15361.303084505867},"targetPosition":{"x":5703.733866609062,"y":15457.463092674485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"65e72b1c-36bb-4242-9cea-d0fa1ef8aacc","savedPayload":{"position":{"x":5703.733866609062,"y":15457.463092674485},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 2 Bounce 10","config":"{ \n\"codeName\": \"support2Bounce10\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support2Bounce10","project":"Superalgos","id":"c2e95035-bc39-4a60-bc3d-816d78ec154d","savedPayload":{"position":{"x":5835.564301886625,"y":15292.009053918675},"targetPosition":{"x":5744.492655963899,"y":15568.899014176463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"f8bdb4d7-0a2a-4730-9bd1-a77c3eacb76b","savedPayload":{"position":{"x":5744.492655963899,"y":15568.899014176463},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 2 Bounce All","config":"{ \n\"codeName\": \"support2BounceAll\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support2BounceAll","project":"Superalgos","id":"467b8765-e0cd-449b-8773-5eaf03de28b7","savedPayload":{"position":{"x":5873.947271341811,"y":15407.009199897206},"targetPosition":{"x":5853.883719169018,"y":15491.458903589877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"2fda2cca-b8bc-4b85-919a-f8df88913ec4","savedPayload":{"position":{"x":5853.883719169018,"y":15491.458903589877},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 3 Bounce 1","config":"{ \n\"codeName\": \"support3Bounce1\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support3Bounce1","project":"Superalgos","id":"77a3826e-5aa8-4f72-b389-964cd68e7b74","savedPayload":{"position":{"x":6006.468207229853,"y":15353.688963362854},"targetPosition":{"x":5851.792116398574,"y":15629.555125703504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"7add9106-d78b-4ba4-b08b-6251d16edde3","savedPayload":{"position":{"x":5851.792116398574,"y":15629.555125703504},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 3 Bounce 2","config":"{ \n\"codeName\": \"support3Bounce2\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support3Bounce2","project":"Superalgos","id":"6cc16e19-c604-46e8-9bbb-0d03e52e34aa","savedPayload":{"position":{"x":6007.915568640976,"y":15475.819656929},"targetPosition":{"x":5963.62768146475,"y":15557.899211229136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"eb85b0d0-36b0-4c43-bbb6-3946c0e44075","savedPayload":{"position":{"x":5963.62768146475,"y":15557.899211229136},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 3 Bounce 3","config":"{ \n\"codeName\": \"support3Bounce3\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support3Bounce3","project":"Superalgos","id":"d680f9ce-a7d0-4a1b-86ad-a03b3edf9469","savedPayload":{"position":{"x":6133.929361573577,"y":15449.221211236092},"targetPosition":{"x":5950.654191523565,"y":15689.344609739735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"32259491-a337-4c85-9ae8-b296c401c80b","savedPayload":{"position":{"x":5950.654191523565,"y":15689.344609739735},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 3 Bounce 5","config":"{ \n\"codeName\": \"support3Bounce5\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support3Bounce5","project":"Superalgos","id":"0131d473-e06b-4082-b349-4368a71c15b8","savedPayload":{"position":{"x":6133.178730698361,"y":15567.79839158347},"targetPosition":{"x":6075.793265071461,"y":15640.859623354887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"917cfbe5-6374-4170-b28d-e9d9f7920503","savedPayload":{"position":{"x":6075.793265071461,"y":15640.859623354887},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 3 Bounce 10","config":"{ \n\"codeName\": \"support3Bounce10\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support3Bounce10","project":"Superalgos","id":"58020873-bc14-436c-ab34-70ea0c165e75","savedPayload":{"position":{"x":6269.392053296226,"y":15569.0052897383},"targetPosition":{"x":6036.455380306834,"y":15766.7655865447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"5d70fe41-e6ce-42db-a5c0-12dcaa35a724","savedPayload":{"position":{"x":6036.455380306834,"y":15766.7655865447},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 3 Bounce All","config":"{ \n\"codeName\": \"support3BounceAll\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support3BounceAll","project":"Superalgos","id":"5d24f8e3-9f2f-4d48-9c8e-d8a11a6dc019","savedPayload":{"position":{"x":6256.369438198108,"y":15691.81305805979},"targetPosition":{"x":6162.252702132188,"y":15770.56941811985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"79faaac2-1e37-4667-a4fc-0bdb696cde15","savedPayload":{"position":{"x":6162.252702132188,"y":15770.56941811985},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support Resistance Zone","config":"{ \n\"codeName\": \"supportResistanceZone\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.supportResistanceZone","project":"Superalgos","id":"5f2c5c5d-b624-4642-b235-ce65d442e721","savedPayload":{"position":{"x":5992.997465828703,"y":15932.158519249062},"targetPosition":{"x":5883.589162401047,"y":16002.055379786307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"8405cbdf-a97b-40c8-9e4d-1b5187c7304b","savedPayload":{"position":{"x":5883.589162401047,"y":16002.055379786307},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 4 Bounce 1","config":"{ \n\"codeName\": \"support4Bounce1\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support4Bounce1","project":"Superalgos","id":"c6a343f3-b85c-460d-b8d9-59c4bc638215","savedPayload":{"position":{"x":6361.424623990886,"y":15766.551383050819},"targetPosition":{"x":6172.041097444075,"y":15863.348259506041},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"65d9c0e2-d16d-4702-99af-bba32a73e82b","savedPayload":{"position":{"x":6172.041097444075,"y":15863.348259506041},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 5 Bounce 1","config":"{ \n\"codeName\": \"support5Bounce1\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.support5Bounce1","project":"Superalgos","id":"b715565a-3502-464a-bd5e-e29bb7c8f7fc","savedPayload":{"position":{"x":6398.702137564702,"y":15912.202837811521},"targetPosition":{"x":6237.247341323691,"y":15979.655576224955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"04cf3b6f-3549-4459-9628-1435764305ca","savedPayload":{"position":{"x":6237.247341323691,"y":15979.655576224955},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a2958a95-82c5-480d-a552-69ff3a01cade","savedPayload":{"position":{"x":5525.11995022765,"y":16232.509669131476},"targetPosition":{"x":5987.8967658300135,"y":17657.73671339679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"\n\nlet candle = record.current\nlet previousCandle = record.previous\n\nvariable.supportResistanceZone = calculateSupportResistanceZone()\n\ndeleteSupports(candle.min)\nincreasePeriods()\n\nvariable.support = {}\n\nvariable.support.rate = 0\nvariable.support.period = 0\nvariable.support.type = ''\n\nif (previousCandle !== undefined) {\n\n let previousPreviousCandle = record.previous.previous\n\n if (previousPreviousCandle !== undefined) {\n\n if (previousCandle.min < previousPreviousCandle.min && previousCandle.min < candle.min) {\n variable.support.rate = previousCandle.min\n variable.support.period = 0\n variable.support.type = 'Support'\n increaseSupportsBounces(variable.support.rate)\n rememberSupports(variable.support.rate)\n }\n }\n}\n\nsetClosestSupports()\n\nfunction deleteSupports(rate) {\n\n let max\n\n for (let i = 0; i < variable.supports.length; i++) {\n let currenRecord = variable.supports[i]\n let currentRate = currenRecord[0]\n\n if (rate <= currentRate - currentRate * variable.supportResistanceZone / 2 / 100) { // It must go through the support / resistance zone around the current rate value\n max = i\n }\n }\n if (max !== undefined) {\n variable.supports.splice(0, max + 1)\n }\n}\n\nfunction increasePeriods() {\n\n for (let i = 0; i < variable.supports.length; i++) {\n let currenRecord = variable.supports[i]\n currenRecord[1] = currenRecord[1] + 1\n }\n}\n\nfunction setClosestSupports() {\n let record\n\n record = variable.supports[0]\n if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }\n variable.support1Rate = record[0]\n variable.support1Period = record[1]\n variable.support1Bounce1 = record[2]\n variable.support1Bounce2 = record[3]\n variable.support1Bounce3 = record[4]\n variable.support1Bounce5 = record[5]\n variable.support1Bounce10 = record[6]\n variable.support1BounceAll = record[7]\n\n record = variable.supports[1]\n if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }\n variable.support2Rate = record[0]\n variable.support2Period = record[1]\n variable.support2Bounce1 = record[2]\n variable.support2Bounce2 = record[3]\n variable.support2Bounce3 = record[4]\n variable.support2Bounce5 = record[5]\n variable.support2Bounce10 = record[6]\n variable.support2BounceAll = record[7]\n\n record = variable.supports[2]\n if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }\n variable.support3Rate = record[0]\n variable.support3Period = record[1]\n variable.support3Bounce1 = record[2]\n variable.support3Bounce2 = record[3]\n variable.support3Bounce3 = record[4]\n variable.support3Bounce5 = record[5]\n variable.support3Bounce10 = record[6]\n variable.support3BounceAll = record[7]\n\n record = variable.supports[3]\n if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }\n variable.support4Rate = record[0]\n variable.support4Period = record[1]\n variable.support4Bounce1 = record[2]\n\n record = variable.supports[4]\n if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }\n variable.support5Rate = record[0]\n variable.support5Period = record[1]\n variable.support5Bounce1 = record[2]\n\n}\n\n\nfunction rememberSupports(rate) {\n if (variable.supports.length === 0) {\n variable.supports.push([rate, 1, 0, 0, 0, 0, 0, 0])\n return\n }\n for (let i = 0; i < variable.supports.length; i++) {\n let currenRecord = variable.supports[i]\n let currentRate = currenRecord[0]\n\n if (rate > currentRate - currentRate * variable.supportResistanceZone / 2 / 100 && rate < currentRate + currentRate * variable.supportResistanceZone / 2 / 100) {\n // We are not going to remember this new level since it is absorved by this existing one.\n return\n }\n\n if (rate > currentRate) {\n variable.supports.splice(i, 0, [rate, 1, 0, 0, 0, 0, 0, 0])\n return\n }\n\n if (i === variable.supports.length - 1) {\n variable.supports.push([rate, 1, 0, 0, 0, 0, 0, 0])\n return\n }\n }\n}\n\nfunction increaseSupportsBounces(rate) {\n\n for (let i = 0; i < variable.supports.length; i++) {\n let currenRecord = variable.supports[i]\n let currentRate = currenRecord[0]\n let percentage = rate * 100 / currentRate - 100\n\n if (percentage <= variable.supportResistanceZone / 2 * 1) {\n currenRecord[2] = currenRecord[2] + 1\n }\n\n if (percentage <= variable.supportResistanceZone / 2 * 2) {\n currenRecord[3] = currenRecord[3] + 1\n }\n\n if (percentage <= variable.supportResistanceZone / 2 * 3) {\n currenRecord[4] = currenRecord[4] + 1\n }\n\n if (percentage <= variable.supportResistanceZone / 2 * 5) {\n currenRecord[5] = currenRecord[5] + 1\n }\n\n if (percentage <= variable.supportResistanceZone / 2 * 10) {\n currenRecord[6] = currenRecord[6] + 1\n }\n\n currenRecord[7] = currenRecord[7] + 1\n }\n}\n\nfunction calculateSupportResistanceZone() {\n /* \n The variable % is a percentage we will use for support and resistance based on the time frame.\n We will fix the % for 1 minute candles and for 24 hs candle and the use the formula to obtain\n y on a line by knowing 2 points of the line as described here: https://en.wikipedia.org/wiki/Line_(geometry)\n */\n\n let x0 = system.ONE_MIN_IN_MILISECONDS\n let y0 = 0.1 // At one min, we will consider the resistance / support zone to be 0.1% resistance \n let x1 = system.ONE_DAY_IN_MILISECONDS\n let y1 = 4 // At one day, we will consider the resistance / support zone to be 4% resistance\n\n let x = system.timeFrame // This is the current time frame being calculated\n let y = (x - x0) * (y1 - y0) / (x1 - x0) + y0\n\n return y\n\n}","project":"Superalgos","id":"2f38e534-5b92-4ded-9c74-1a8c1fef392c","savedPayload":{"position":{"x":6258.097574680203,"y":16198.050096020444},"targetPosition":{"x":6238.465310845211,"y":16572.331688549002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f6dbb7b-b13f-45a9-ba9e-e1c9f06970d6","savedPayload":{"position":{"x":6238.465310845211,"y":16572.331688549002},"targetPosition":{"x":6218.9909399021235,"y":16946.451706064538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"variable.supports = []","project":"Superalgos","id":"a62efae4-3818-4048-ad13-bfb7c4bd22d9","savedPayload":{"position":{"x":6627.405908678309,"y":16317.666755778566},"targetPosition":{"x":6423.25641953704,"y":16632.00208818868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"793f079f-9623-4e8c-bd38-8dbd351caf8f","savedPayload":{"position":{"x":6423.25641953704,"y":16632.00208818868},"targetPosition":{"x":6218.9909399021235,"y":16946.451706064538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3d26c2d9-7dd2-4796-91b4-768026944d66","savedPayload":{"position":{"x":6218.9909399021235,"y":16946.451706064538},"targetPosition":{"x":5987.8967658300135,"y":17657.73671339679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bc3c43de-6312-47d4-ae3d-0c95c1b039e0","savedPayload":{"position":{"x":6626.60800335087,"y":18541.493947816565},"targetPosition":{"x":6775.786287656112,"y":18525.814678326416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Supports","id":"1a104c65-6470-4694-a39e-4663f15e490c"}}}],"id":"c037980d-d455-41a0-b058-2d7849ddf582","savedPayload":{"position":{"x":6775.786287656112,"y":18527.814678326416},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Fees Band","config":"{ \n \"codeName\": \"Fees-Band\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{ \n \"codeName\": \"Multi-Period-Market\", \n \"normalWaitTime\": 0, \n \"retryWaitTime\": 10000, \n \"framework\": { \n \"name\": \"Multi-Period-Market\" \n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Fees Band 0.2","project":"Superalgos","id":"addb000e-ee23-4ea2-becd-10513978f9e9","savedPayload":{"position":{"x":5870.449539674286,"y":18614.93272056544},"targetPosition":{"x":5865.918702689563,"y":18389.978344043848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9c699a57-f0cf-434c-8ef8-40aac182200e"}}}],"outputDatasetFolders":[],"id":"d1a16312-6cf6-49b2-9ec9-63820952ec59","savedPayload":{"position":{"x":5865.918702689563,"y":18389.978344043848},"targetPosition":{"x":5861.387865704841,"y":18165.023967522255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Fees Band Multi-Period-Market","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"14fc9c86-f37f-4ff6-ad5a-c371f0846186","savedPayload":{"position":{"x":5727.964134228852,"y":18585.726844319874},"targetPosition":{"x":5752.834497373224,"y":18362.105590774805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"408908d1-0f78-454e-b4ba-935c59e4f1fd"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"cfc81326-b7dd-43ae-8d00-325a1a03a30e","savedPayload":{"position":{"x":5644.281129041607,"y":18559.187214027355},"targetPosition":{"x":5752.834497373224,"y":18362.105590774805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"aae52694-9764-42ea-968b-8256c7e1733b","savedPayload":{"position":{"x":5577.124390144112,"y":18502.643693144},"targetPosition":{"x":5752.834497373224,"y":18362.105590774805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"c5895135-9bd9-4d0b-a50e-7bfa33e806c3","savedPayload":{"position":{"x":5752.834497373224,"y":18362.105590774805},"targetPosition":{"x":5861.387865704841,"y":18165.023967522255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"408908d1-0f78-454e-b4ba-935c59e4f1fd","savedPayload":{"position":{"x":5668.837079437017,"y":18281.424975712227},"targetPosition":{"x":5861.387865704841,"y":18165.023967522255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"517c78ab-154c-4d72-a671-6ceaf7d7daa4","savedPayload":{"position":{"x":5636.433489183248,"y":18169.554804506977},"targetPosition":{"x":5861.387865704841,"y":18165.023967522255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"d2c5852c-7223-4d9d-bbe0-0d7b4109e7e1","savedPayload":{"position":{"x":5664.3062424522905,"y":18056.470599190638},"targetPosition":{"x":5861.387865704841,"y":18165.023967522255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c97a3c7-8333-4b7a-bba3-c1f50edb1771","savedPayload":{"position":{"x":6669.826231896121,"y":18757.70174952457},"targetPosition":{"x":6695.972954720419,"y":18458.843340097046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{ \n \"codeName\": \"Multi-Period-Daily\", \n \"normalWaitTime\": 0, \n \"retryWaitTime\": 10000, \n \"framework\": { \n \"name\": \"Multi-Period-Daily\" \n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Fees Band 0.2","project":"Superalgos","id":"f97f4159-4225-449c-b3cf-e309829385ff","savedPayload":{"position":{"x":5523.750783972486,"y":18319.318036172303},"targetPosition":{"x":5679.613763512145,"y":18157.047485519943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2dd03ed7-736e-4959-ad8e-8108e59b8796"}}}],"outputDatasetFolders":[],"id":"169c266e-2c8b-46fd-9123-2f0cf3dbee75","savedPayload":{"position":{"x":5690.286287656112,"y":18458.862773042583},"targetPosition":{"x":5802.786287656112,"y":18264.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Fees Band Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"4369e75e-d3e2-4540-a37a-62a8bc6f5156","savedPayload":{"position":{"x":5485.386788926233,"y":18565.207934978804},"targetPosition":{"x":5607.930571804613,"y":18376.507057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"44063861-0fab-49a8-ad15-fc3c4dcbc63e"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"9a1ec693-82b2-4ce3-b3dc-b57a75ce8972","savedPayload":{"position":{"x":5433.072730476793,"y":18518.104145177298},"targetPosition":{"x":5607.930571804613,"y":18376.507057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"3f758280-c446-4122-96bc-530b4bb6d1dc","savedPayload":{"position":{"x":5397.874975842744,"y":18457.139845838778},"targetPosition":{"x":5607.930571804613,"y":18376.507057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"753cc3b9-56a8-49fd-bb60-5220e8c68b76","savedPayload":{"position":{"x":5383.238926484835,"y":18388.282647345746},"targetPosition":{"x":5607.930571804613,"y":18376.507057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"f3a27f58-27c0-4693-a83c-743a30cd14d1","savedPayload":{"position":{"x":5607.930571804613,"y":18376.507057191084},"targetPosition":{"x":5802.786287656112,"y":18264.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"44063861-0fab-49a8-ad15-fc3c4dcbc63e","savedPayload":{"position":{"x":5577.786287656112,"y":18264.007057191084},"targetPosition":{"x":5802.786287656112,"y":18264.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"b35ae9ae-9ffc-48d0-8261-3dc4614198c0","savedPayload":{"position":{"x":5607.930571804613,"y":18151.507057191084},"targetPosition":{"x":5802.786287656112,"y":18264.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"1e9595e3-f4f7-4d71-89a6-34398c6ba768","savedPayload":{"position":{"x":5690.286287656112,"y":18069.151341339584},"targetPosition":{"x":5802.786287656112,"y":18264.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2ab4b651-67c8-4b4b-bdce-96aad4dff1dc","savedPayload":{"position":{"x":6466.1596217847255,"y":18651.67962300301},"targetPosition":{"x":6695.972954720419,"y":18458.843340097046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Fees Band 0.2","config":"{ \n \"codeName\": \"Fees-Band-0.2\", \n \"singularVariableName\": \"feesBand02\", \n \"pluralVariableName\": \"feesBand02s\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"9c699a57-f0cf-434c-8ef8-40aac182200e","savedPayload":{"position":{"x":6200.296836595742,"y":18659.10949133958},"targetPosition":{"x":6397.114545292894,"y":18432.696617272748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2dd03ed7-736e-4959-ad8e-8108e59b8796","savedPayload":{"position":{"x":6104.803525857322,"y":18500.181933575906},"targetPosition":{"x":6397.114545292894,"y":18432.696617272748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"4b6ed335-f5cf-49fa-aba7-6dfe1d1b6bfb","savedPayload":{"position":{"x":5316.652693723612,"y":17914.528692414842},"targetPosition":{"x":5541.596046585677,"y":17909.480127948285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2d5157a-34cf-43fd-a83b-d4cca5a82748","savedPayload":{"position":{"x":5541.596046585677,"y":17909.480127948285},"targetPosition":{"x":5766.539399447742,"y":17904.43156348173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"cc285267-5578-4d94-981e-55663b745029","savedPayload":{"position":{"x":5356.824503451273,"y":17718.33023624679},"targetPosition":{"x":5561.681951449507,"y":17811.38089986426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5e905c5f-8ad5-4cdf-a3e7-2c0dfc0541fa","savedPayload":{"position":{"x":5561.681951449507,"y":17811.38089986426},"targetPosition":{"x":5766.539399447742,"y":17904.43156348173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Upper Band","config":"{\n \"codeName\": \"beginUpperBand\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.beginUpperBand","project":"Superalgos","id":"8ec7c074-e8d2-4fd5-a702-be3f8245ea8b","savedPayload":{"position":{"x":5478.1453731544825,"y":17558.99143032062},"targetPosition":{"x":5622.342386301112,"y":17731.711496901175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dcbd6bca-eed6-4d4c-a7c3-1ee9b98aeb21","savedPayload":{"position":{"x":5622.342386301112,"y":17731.711496901175},"targetPosition":{"x":5766.539399447742,"y":17904.43156348173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Lower Band","config":"{\n \"codeName\": \"beginLowerBand\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.beginLowerBand","project":"Superalgos","id":"73490418-babd-4748-9bde-bd5bdc287bf1","savedPayload":{"position":{"x":5656.58621668569,"y":17468.07127931222},"targetPosition":{"x":5711.562808066716,"y":17686.251421396973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"06d379ef-d9c1-4a7c-858e-4be0fa504f49","savedPayload":{"position":{"x":5711.562808066716,"y":17686.251421396973},"targetPosition":{"x":5766.539399447742,"y":17904.43156348173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Upper Band","config":"{\n \"codeName\": \"endUpperBand\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.endUpperBand","project":"Superalgos","id":"52ca2981-9a3c-4c9c-84e9-bdb421727d84","savedPayload":{"position":{"x":5856.804636550216,"y":17463.577634191275},"targetPosition":{"x":5811.672017998979,"y":17684.004598836502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"67983f61-20a2-44e1-856b-ae182bab35ea","savedPayload":{"position":{"x":5811.672017998979,"y":17684.004598836502},"targetPosition":{"x":5766.539399447742,"y":17904.43156348173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Lower Band","config":"{\n \"codeName\": \"endLowerBand\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.endLowerBand","project":"Superalgos","id":"22edfaa2-acbc-4a0b-87a2-88607426b5f3","savedPayload":{"position":{"x":6039.144919176113,"y":17546.400516484926},"targetPosition":{"x":5902.842159311927,"y":17725.416039983327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5d5bda91-d33c-46c3-a669-eafc9dab4fe1","savedPayload":{"position":{"x":5902.842159311927,"y":17725.416039983327},"targetPosition":{"x":5766.539399447742,"y":17904.43156348173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13be8616-22a4-4c9a-bba6-8dd346168aa2","savedPayload":{"position":{"x":6120.963089257162,"y":18315.477278725964},"targetPosition":{"x":6397.114545292894,"y":18432.696617272748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"let close_1 = 0\nlet close_2 = 0\nlet close_3 = 0\nlet close_4 = 0\nlet close_5 = 0\n\nclose_1 = record.current.close\nif (record.previous !== undefined) {\n close_2 = record.previous.close\n if (record.previous.previous !== undefined) {\n close_3 = record.previous.previous.close\n if (record.previous.previous.previous !== undefined) {\n close_4 = record.previous.previous.previous.close\n if (record.previous.previous.previous.previous !== undefined) {\n close_5 = record.previous.previous.previous.previous.close\n } else {\n if (variable.lastMovingAverage !== undefined) {\n close_5 = variable.lastMovingAverage\n } \n }\n } else {\n if (variable.lastMovingAverage !== undefined) {\n close_4 = variable.lastMovingAverage\n } \n }\n } else {\n if (variable.lastMovingAverage !== undefined) {\n close_3 = variable.lastMovingAverage\n } \n }\n} else {\n if (variable.lastMovingAverage !== undefined) {\n close_2 = variable.lastMovingAverage\n } \n}\n\nlet movingAverage = (close_1 + close_2 + close_3 + close_4 + close_5) / 5\n\nif (variable.lastMovingAverage !== undefined) {\n variable.beginUpperBand = variable.lastMovingAverage + variable.lastMovingAverage * 0.1 / 100\n variable.beginLowerBand = variable.lastMovingAverage - variable.lastMovingAverage * 0.1 / 100\n} else {\n variable.beginUpperBand = movingAverage + movingAverage * 0.1 / 100\n variable.beginLowerBand = movingAverage - movingAverage * 0.1 / 100 \n}\n\nvariable.endUpperBand = movingAverage + movingAverage * 0.1 / 100\nvariable.endLowerBand = movingAverage - movingAverage * 0.1 / 100\n\nvariable.lastMovingAverage = movingAverage\n","project":"Superalgos","id":"cb903e7a-ffec-4487-8d03-b26f1a2a684b","savedPayload":{"position":{"x":5933.580277873843,"y":17661.246046640852},"targetPosition":{"x":6088.09170034686,"y":17918.396236851484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"644bb1a1-b38d-4a9e-9787-8328d8e612fd","savedPayload":{"position":{"x":6088.09170034686,"y":17918.396236851484},"targetPosition":{"x":6242.603122819877,"y":18175.546427062116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e189d182-e8a2-4591-9ecd-e4056f8a686b","savedPayload":{"position":{"x":6242.603122819877,"y":18175.546427062116},"targetPosition":{"x":6397.114545292894,"y":18432.696617272748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d6a14ed7-606d-40b9-b663-07ee04927460","savedPayload":{"position":{"x":6397.114545292894,"y":18432.696617272748},"targetPosition":{"x":6695.972954720419,"y":18458.843340097046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Fees Band","id":"eccd3713-e5c8-450c-bfb8-f8821fc429df"}}}],"id":"bb1b6bf2-4071-4617-af61-dad20ce3c51d","savedPayload":{"position":{"x":6695.972954720419,"y":18460.843340097046},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Volume Analysis","config":"{ \n \"codeName\": \"Volume-Analysis\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{ \n \"codeName\": \"Multi-Period-Market\", \n \"normalWaitTime\": 0, \n \"retryWaitTime\": 10000, \n \"framework\": { \n \"name\": \"Multi-Period-Market\" \n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Volume Analysis","project":"Superalgos","id":"ada228be-9705-4819-8c20-fe5c005e1078","savedPayload":{"position":{"x":6414.142410798111,"y":18964.202981303006},"targetPosition":{"x":6398.441623925228,"y":18664.614120876635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"1d4df142-34c0-4439-a532-208c56cbb349"}}}],"outputDatasetFolders":[],"id":"0599cb81-fedd-4387-bbe9-f866ca303b03","savedPayload":{"position":{"x":6491.299966830902,"y":18767.91683943377},"targetPosition":{"x":6413.654253300148,"y":18478.139091547047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Volume Analysis Multi-Period-Market","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"d77afa0b-be9f-4468-9a75-2a2ce510947c","savedPayload":{"position":{"x":6398.382047014718,"y":19061.36111965391},"targetPosition":{"x":6336.008539769391,"y":18767.91683943377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"d37487d0-abfc-4be1-94dd-150e81bcf2a7"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"fa22875f-ee65-4e82-bbc2-66234e5883fc","savedPayload":{"position":{"x":6304.650000789097,"y":19066.27340804425},"targetPosition":{"x":6336.008539769391,"y":18767.91683943377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"71ca9c05-b0c2-48bb-8f5c-39b0e61ae586","savedPayload":{"position":{"x":6213.987546846653,"y":19041.98047672655},"targetPosition":{"x":6336.008539769391,"y":18767.91683943377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Market","project":"Superalgos","id":"571feaf7-7669-40ce-9375-388e3251f124","savedPayload":{"position":{"x":6135.269357861733,"y":18990.860287076986},"targetPosition":{"x":6336.008539769391,"y":18767.91683943377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1"}}}],"dataMineDataDependencies":[],"id":"9d15c349-fee5-45cb-89ed-204d0c5bc330","savedPayload":{"position":{"x":6336.008539769391,"y":18767.91683943377},"targetPosition":{"x":6413.654253300148,"y":18478.139091547047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"d37487d0-abfc-4be1-94dd-150e81bcf2a7","savedPayload":{"position":{"x":6201.522218944181,"y":18690.27112590301},"targetPosition":{"x":6413.654253300148,"y":18478.139091547047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"fc4aafb9-8da5-493c-85e7-1f45264b0c05","savedPayload":{"position":{"x":6123.876505413427,"y":18555.784805077805},"targetPosition":{"x":6413.654253300148,"y":18478.139091547047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"854d9512-497f-4c5f-9f68-22db0c2a4933","savedPayload":{"position":{"x":6123.876505413427,"y":18400.49337801629},"targetPosition":{"x":6413.654253300148,"y":18478.139091547047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2f434c96-d55d-40b8-b58c-51146f1bce5b","savedPayload":{"position":{"x":6517.093022898131,"y":18640.50543629978},"targetPosition":{"x":6643.878501420339,"y":18368.613100188784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{ \n \"codeName\": \"Multi-Period-Daily\", \n \"normalWaitTime\": 0, \n \"retryWaitTime\": 10000, \n \"framework\": { \n \"name\": \"Multi-Period-Daily\" \n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Volume Analysis","project":"Superalgos","id":"29f46d50-8684-4bee-9a4a-156811d47d36","savedPayload":{"position":{"x":5236.750783972486,"y":18317.818036172303},"targetPosition":{"x":5392.613763512145,"y":18155.547485519943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cccbe688-75e9-405c-a087-8c1bb953430f"}}}],"outputDatasetFolders":[],"id":"7b559f39-f888-49d6-948a-a31af2810209","savedPayload":{"position":{"x":6140.158545308172,"y":18362.203490343647},"targetPosition":{"x":6340.89772721583,"y":18139.26004270043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Volume Analysis Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"d3ed5c3a-d516-4f41-95fe-160786e233ae","savedPayload":{"position":{"x":5854.841590419626,"y":18454.90858865613},"targetPosition":{"x":6055.580772327285,"y":18231.96514101291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"8a54d9d3-c038-4e08-ad86-267e9a7f0403"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"27fad487-f5c4-441f-8d1e-8f399d1809af","savedPayload":{"position":{"x":5803.979601943658,"y":18395.35685151742},"targetPosition":{"x":6055.580772327285,"y":18231.96514101291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"5a7aecb7-ded0-469f-a013-09e7eb74a590","savedPayload":{"position":{"x":5770.263817438739,"y":18324.670239325395},"targetPosition":{"x":6055.580772327285,"y":18231.96514101291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"346a0595-7994-4d22-8e7f-be93b4088cbd","savedPayload":{"position":{"x":5755.991911900914,"y":18247.665927885795},"targetPosition":{"x":6055.580772327285,"y":18231.96514101291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Daily","project":"Superalgos","id":"4a026f3a-d8d8-44d3-b058-3a71af0d4b14","savedPayload":{"position":{"x":5762.136492107144,"y":18169.591633767584},"targetPosition":{"x":6055.580772327285,"y":18231.96514101291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e683057-f911-4105-bc77-16f2706d1915"}}}],"dataMineDataDependencies":[],"id":"80465e4d-83cc-4ec2-b5f5-b2774502b29a","savedPayload":{"position":{"x":6055.580772327285,"y":18231.96514101291},"targetPosition":{"x":6340.89772721583,"y":18139.26004270043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"8a54d9d3-c038-4e08-ad86-267e9a7f0403","savedPayload":{"position":{"x":6047.453446995689,"y":18076.8865354551},"targetPosition":{"x":6340.89772721583,"y":18139.26004270043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"d4706947-b55b-4341-b70b-0b45f14e7912","savedPayload":{"position":{"x":6117.954279572612,"y":17938.52086079277},"targetPosition":{"x":6340.89772721583,"y":18139.26004270043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"14125000-f67f-44d5-8fa6-c9b8fd3ab307","savedPayload":{"position":{"x":6248.192628903347,"y":17853.943087811884},"targetPosition":{"x":6340.89772721583,"y":18139.26004270043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6909e701-0c06-46b5-8a26-c5603dadfac6","savedPayload":{"position":{"x":6361.970715184565,"y":18471.219143186485},"targetPosition":{"x":6643.878501420339,"y":18368.613100188784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Volume Analysis","config":"{ \n \"codeName\": \"Volume-Analysis\", \n \"singularVariableName\": \"volumeAnalysi\", \n \"pluralVariableName\": \"volumeAnalysis\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"1d4df142-34c0-4439-a532-208c56cbb349","savedPayload":{"position":{"x":6117.347751121608,"y":18100.80536234719},"targetPosition":{"x":6413.654253300148,"y":18053.87502283512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"cccbe688-75e9-405c-a087-8c1bb953430f","savedPayload":{"position":{"x":6146.352296043635,"y":17917.677872913257},"targetPosition":{"x":6413.654253300148,"y":18053.87502283512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"8b359ad9-7e1f-473e-b10d-33113db1e121","savedPayload":{"position":{"x":5687.766061172228,"y":17897.31815459812},"targetPosition":{"x":5982.611582275258,"y":17841.945610088365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"53da0251-b700-4e23-ad9b-1027d589be74","savedPayload":{"position":{"x":5982.611582275258,"y":17841.945610088365},"targetPosition":{"x":6277.457103378281,"y":17786.57306557861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"fbb6f75d-cae4-407c-abe8-51b6689bbfe9","savedPayload":{"position":{"x":5680.452194691068,"y":17726.697035287943},"targetPosition":{"x":5978.954649034677,"y":17756.635050433277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8d63f4fe-6351-4919-add0-ca9efde3d534","savedPayload":{"position":{"x":5978.954649034677,"y":17756.635050433277},"targetPosition":{"x":6277.457103378281,"y":17786.57306557861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Buy Volume","config":"{\n \"codeName\": \"buyVolume\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.buyVolume","project":"Superalgos","id":"100d6a11-107c-43ab-bdf5-4ea8d8dd1e26","savedPayload":{"position":{"x":5721.504115386841,"y":17560.92671585545},"targetPosition":{"x":5999.480609382561,"y":17673.74989071703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"93e7007f-cd7b-4d8a-b855-2859d61cea0d","savedPayload":{"position":{"x":5999.480609382561,"y":17673.74989071703},"targetPosition":{"x":6277.457103378281,"y":17786.57306557861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Sell Volume","config":"{\n \"codeName\": \"sellVolume\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sellVolume","project":"Superalgos","id":"1e0ed9c8-eacd-4fa4-b2b1-2c7c46fa0001","savedPayload":{"position":{"x":5807.596040789951,"y":17413.43692170702},"targetPosition":{"x":6042.526572084116,"y":17600.004993642815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ff32ed4c-4774-4daa-9682-40102a11274d","savedPayload":{"position":{"x":6042.526572084116,"y":17600.004993642815},"targetPosition":{"x":6277.457103378281,"y":17786.57306557861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Buy SMA 20","config":"{\n \"codeName\": \"buySMA20\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.buySMA20","project":"Superalgos","id":"61268785-244d-445d-85be-0c58958d3d45","savedPayload":{"position":{"x":5931.75331511263,"y":17296.176398808966},"targetPosition":{"x":6104.605209245459,"y":17541.374732193788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1a12d3f4-013a-4427-bda8-4dbceaaaa62a","savedPayload":{"position":{"x":6104.605209245459,"y":17541.374732193788},"targetPosition":{"x":6277.457103378281,"y":17786.57306557861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Sell SMA 20","config":"{\n \"codeName\": \"sellSMA20\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sellSMA20","project":"Superalgos","id":"c77ea447-8be1-45e4-a494-4322504b8357","savedPayload":{"position":{"x":6083.917454381004,"y":17218.644897351318},"targetPosition":{"x":6180.687278879643,"y":17502.608981464964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a3edb3ce-5c43-42b1-9d9e-510ac34fef96","savedPayload":{"position":{"x":6180.687278879643,"y":17502.608981464964},"targetPosition":{"x":6277.457103378281,"y":17786.57306557861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Buy SMA 200","config":"{\n \"codeName\": \"buySMA200\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.buySMA200","project":"Superalgos","id":"2f085466-3ba8-4309-ba9b-3243b4dd2253","savedPayload":{"position":{"x":6251.761024986521,"y":17187.12355848457},"targetPosition":{"x":6264.609064182401,"y":17486.84831203159},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"543e8253-2bd3-4e74-8f5f-58a974b76f01","savedPayload":{"position":{"x":6264.609064182401,"y":17486.84831203159},"targetPosition":{"x":6277.457103378281,"y":17786.57306557861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Sell SMA 200","config":"{\n \"codeName\": \"sellSMA200\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sellSMA200","project":"Superalgos","id":"24094c85-8ace-40f9-94b8-f93aa96435dc","savedPayload":{"position":{"x":6421.686339042881,"y":17204.166053619098},"targetPosition":{"x":6349.571721210581,"y":17495.369559598854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a8457135-b96c-4e31-9ada-8c4b0affc3d7","savedPayload":{"position":{"x":6349.571721210581,"y":17495.369559598854},"targetPosition":{"x":6277.457103378281,"y":17786.57306557861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Buy Force","config":"{\n \"codeName\": \"buyVolume\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.buyForce","project":"Superalgos","id":"f71139b5-222d-411f-90e8-882d09274234","savedPayload":{"position":{"x":6579.92705818998,"y":17268.391701154716},"targetPosition":{"x":6428.692080784134,"y":17527.482383366663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6e7aeead-72db-47cc-ace5-c02c6cf43524","savedPayload":{"position":{"x":6428.692080784134,"y":17527.482383366663},"targetPosition":{"x":6277.457103378281,"y":17786.57306557861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Sell Force","config":"{\n \"codeName\": \"buyVolume\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sellForce","project":"Superalgos","id":"73653b55-41f8-47d2-9c72-8e4cedc94742","savedPayload":{"position":{"x":6713.663460456326,"y":17374.59732109272},"targetPosition":{"x":6495.560281917304,"y":17580.585193335664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"79c4e8b2-7306-4d23-8dbb-045446aab18b","savedPayload":{"position":{"x":6495.560281917304,"y":17580.585193335664},"targetPosition":{"x":6277.457103378281,"y":17786.57306557861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8bf7c8ae-818d-4d95-9aa1-553a95300cb4","savedPayload":{"position":{"x":6277.457103378281,"y":17786.57306557861},"targetPosition":{"x":6413.654253300148,"y":18053.87502283512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"let candle = record.current // This is the primary dependency\nlet volume = getElement('volumes', candle) // Here I get the volume bar corresponding to the current candle\nlet totalVolume = volume.buy + volume.sell // Candles Volumes split the volume received from the exchange evenly betwen buy and sell because it does not know how much of it there is.\n\nvariable.buyVolume = 0\nvariable.sellVolume = 0\n\n/* \nWe will estimate a buy volume or sell volume proportional to the distance from \nthe open to the max and min of the candle.\n*/\nlet distanceOpenMax = candle.max - candle.open\nlet distanceOpenMin = candle.open - candle.min\nlet distanceMaxMin = candle.max - candle.min\n\nvariable.buyVolume = totalVolume * distanceOpenMax * 100 / distanceMaxMin\nvariable.sellVolume = totalVolume * distanceOpenMin * 100 / distanceMaxMin\n\nlet totalBuy\nlet totalSell\nlet totalNonZero\n/* Maintain the 20 periods moving averages. */\nvariable.last20Buy.splice(0, 1)\nvariable.last20Buy.push(variable.buyVolume)\ntotalBuy = 0\ntotalNonZero = 0\nfor (let i = 0; i < variable.last20Buy.length; i++) {\n let value = variable.last20Buy[i]\n if (value > 0) {\n totalBuy = totalBuy + value\n totalNonZero++\n }\n}\nvariable.buySMA20 = totalBuy / totalNonZero\n\nvariable.last20Sell.splice(0, 1)\nvariable.last20Sell.push(variable.sellVolume)\ntotalSell = 0\ntotalNonZero = 0\nfor (let i = 0; i < variable.last20Sell.length; i++) {\n let value = variable.last20Sell[i]\n if (value > 0) {\n totalSell = totalSell + value\n totalNonZero++\n }\n}\nvariable.sellSMA20 = totalSell / totalNonZero\n\n/* Maintain the 200 periods moving averages. */\nvariable.last200Buy.splice(0, 1)\nvariable.last200Buy.push(variable.buyVolume)\ntotalBuy = 0\ntotalNonZero = 0\nfor (let i = 0; i < variable.last200Buy.length; i++) {\n let value = variable.last200Buy[i]\n if (value > 0) {\n totalBuy = totalBuy + value\n totalNonZero++\n }\n}\nvariable.buySMA200 = totalBuy / totalNonZero\n\nvariable.last200Sell.splice(0, 1)\nvariable.last200Sell.push(variable.sellVolume)\ntotalSell = 0\ntotalNonZero = 0\nfor (let i = 0; i < variable.last200Sell.length; i++) {\n let value = variable.last200Sell[i]\n if (value > 0) {\n totalSell = totalSell + value\n totalNonZero++\n }\n}\nvariable.sellSMA200 = totalSell / totalNonZero\n\n/* Finaly we compute how many times the 200 moving average the volume is */\nvariable.buyForce = Math.trunc(variable.buyVolume / variable.buySMA200)\nvariable.sellForce = Math.trunc(variable.sellVolume / variable.sellSMA200)\n\n\n","project":"Superalgos","id":"6f413c35-7c25-424f-9dc8-3d33dff86ce6","savedPayload":{"position":{"x":6397.867514851623,"y":17160.855383435617},"targetPosition":{"x":6429.226053831921,"y":17459.2119520461},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c6058142-fc90-4f02-a7e3-bbfb43fb4ed4","savedPayload":{"position":{"x":6429.226053831921,"y":17459.2119520461},"targetPosition":{"x":6460.584592812218,"y":17757.56852065658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"variable.last20Buy = []\nvariable.last20Sell = []\nvariable.last200Buy = []\nvariable.last200Sell = []\n\nfor (let i = 0; i < 20; i++) {\n variable.last20Buy.push(0)\n variable.last20Sell.push(0)\n}\n\nfor (let i = 0; i < 200; i++) {\n variable.last200Buy.push(0)\n variable.last200Sell.push(0)\n}\n","project":"Superalgos","id":"82d96645-b54f-4d88-88ff-6020fd834848","savedPayload":{"position":{"x":6704.626578657695,"y":17209.44124607102},"targetPosition":{"x":6582.605585734957,"y":17483.5048833638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f1445d37-c8ee-423e-aff4-90764923bdd4","savedPayload":{"position":{"x":6582.605585734957,"y":17483.5048833638},"targetPosition":{"x":6460.584592812218,"y":17757.56852065658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e5040263-0081-47ba-8574-fa4e5be4dc38","savedPayload":{"position":{"x":6460.584592812218,"y":17757.56852065658},"targetPosition":{"x":6413.654253300148,"y":18053.87502283512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c10f698e-1ed4-48a6-9c2d-344bcba5ca35","savedPayload":{"position":{"x":6371.986165309343,"y":18241.827621666576},"targetPosition":{"x":6643.878501420339,"y":18368.613100188784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Volume Analysis","id":"77bf098c-c563-4855-9738-3443a324365c"}}}],"id":"de906bef-f516-4cd1-84ab-c75517cc767b","savedPayload":{"position":{"x":6643.8785014203395,"y":18370.613100188784},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Candle Analysis","config":"{ \n \"codeName\": \"Candle-Analysis\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{ \n \"codeName\": \"Multi-Period-Market\", \n \"normalWaitTime\": 0, \n \"retryWaitTime\": 10000, \n \"framework\": { \n \"name\": \"Multi-Period-Market\" \n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Candle Analysis","project":"Superalgos","id":"78bfdafd-e674-4142-8682-fa0ef2f47020","savedPayload":{"position":{"x":6568.9456803616595,"y":19057.69458732049},"targetPosition":{"x":6491.299966830902,"y":18767.91683943377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f65e4bf0-df3b-414c-aeba-f21dadb5d7ec"}}}],"outputDatasetFolders":[],"id":"09155964-045b-4be5-83b5-b88da97c512b","savedPayload":{"position":{"x":6491.299966830902,"y":18767.91683943377},"targetPosition":{"x":6413.654253300148,"y":18478.139091547047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candle Analysis Multi-Period-Market","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"9e330c52-e2eb-4fd8-9d98-c1321387616f","savedPayload":{"position":{"x":6398.382047014718,"y":19061.36111965391},"targetPosition":{"x":6336.008539769391,"y":18767.91683943377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"c9abb04a-1354-4042-8abf-29ede5c96b2a"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"efc41738-72c9-464c-8712-73a4f0bf349e","savedPayload":{"position":{"x":6304.650000789097,"y":19066.27340804425},"targetPosition":{"x":6336.008539769391,"y":18767.91683943377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"b0a4c404-50d2-46c9-b529-612c83b247f4","savedPayload":{"position":{"x":6213.987546846653,"y":19041.98047672655},"targetPosition":{"x":6336.008539769391,"y":18767.91683943377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Market","project":"Superalgos","id":"ebeda1d1-cecc-413f-a731-d75ea29d9f1a","savedPayload":{"position":{"x":6135.269357861733,"y":18990.860287076986},"targetPosition":{"x":6336.008539769391,"y":18767.91683943377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1"}}}],"dataMineDataDependencies":[],"id":"1cbd3575-7cb4-4e76-b49d-f3f1f3ab1b7c","savedPayload":{"position":{"x":6336.008539769391,"y":18767.91683943377},"targetPosition":{"x":6413.654253300148,"y":18478.139091547047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"c9abb04a-1354-4042-8abf-29ede5c96b2a","savedPayload":{"position":{"x":6201.522218944181,"y":18690.27112590301},"targetPosition":{"x":6413.654253300148,"y":18478.139091547047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"c384af4d-aef0-4c26-9544-b61605eef112","savedPayload":{"position":{"x":6123.876505413427,"y":18555.784805077805},"targetPosition":{"x":6413.654253300148,"y":18478.139091547047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"4c916147-c39c-4575-be84-1605d41fa7c1","savedPayload":{"position":{"x":6123.876505413427,"y":18400.49337801629},"targetPosition":{"x":6413.654253300148,"y":18478.139091547047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"73f1728c-00fb-4806-8aa6-34e5968ed332","savedPayload":{"position":{"x":6413.654253300148,"y":18478.139091547047},"targetPosition":{"x":6625.786287656112,"y":18266.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{ \n \"codeName\": \"Multi-Period-Daily\", \n \"normalWaitTime\": 0, \n \"retryWaitTime\": 10000, \n \"framework\": { \n \"name\": \"Multi-Period-Daily\" \n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Candle Analysis","project":"Superalgos","id":"44aa1ccd-3dd4-4974-8b55-327e16da25dc","savedPayload":{"position":{"x":4796.750783972486,"y":18398.318036172303},"targetPosition":{"x":4952.613763512145,"y":18236.047485519943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2127b8f1-932e-41c4-8eb9-1e0b6f02c2ec"}}}],"outputDatasetFolders":[],"id":"9aa67e23-37af-4bc0-a090-28fe6f461e78","savedPayload":{"position":{"x":5700.158545308172,"y":18442.703490343647},"targetPosition":{"x":5900.89772721583,"y":18219.76004270043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candle Analysis Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"8dbb3296-7574-44b5-8c58-32599cbb227d","savedPayload":{"position":{"x":5414.841590419626,"y":18535.40858865613},"targetPosition":{"x":5615.580772327285,"y":18312.46514101291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"8b201dc7-d8d2-4e0d-bd77-011976b2268b"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"55c1d6f7-6010-4ecd-a5e5-ea9b509b13e7","savedPayload":{"position":{"x":5363.979601943658,"y":18475.85685151742},"targetPosition":{"x":5615.580772327285,"y":18312.46514101291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"27f9c401-e899-4b3d-81ff-af7363705c48","savedPayload":{"position":{"x":5330.263817438739,"y":18405.170239325395},"targetPosition":{"x":5615.580772327285,"y":18312.46514101291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"461beea2-0f20-4473-b8b2-24c062e9f49a","savedPayload":{"position":{"x":5315.991911900914,"y":18328.165927885795},"targetPosition":{"x":5615.580772327285,"y":18312.46514101291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Daily","project":"Superalgos","id":"f1b6baf7-ebae-4b06-bc7f-58d602c95fd1","savedPayload":{"position":{"x":5322.136492107144,"y":18250.091633767584},"targetPosition":{"x":5615.580772327285,"y":18312.46514101291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e683057-f911-4105-bc77-16f2706d1915"}}}],"dataMineDataDependencies":[],"id":"d4e4d6cf-72d4-46ef-84f4-9ac7dbe11774","savedPayload":{"position":{"x":5615.580772327285,"y":18312.46514101291},"targetPosition":{"x":5900.89772721583,"y":18219.76004270043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"8b201dc7-d8d2-4e0d-bd77-011976b2268b","savedPayload":{"position":{"x":5607.453446995689,"y":18157.3865354551},"targetPosition":{"x":5900.89772721583,"y":18219.76004270043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"892b0cf6-1a29-49d5-abcd-190b30d46b19","savedPayload":{"position":{"x":5677.954279572612,"y":18019.02086079277},"targetPosition":{"x":5900.89772721583,"y":18219.76004270043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"b1ca4936-fcd6-478d-9ec0-12cf44df36bd","savedPayload":{"position":{"x":5808.192628903347,"y":17934.443087811884},"targetPosition":{"x":5900.89772721583,"y":18219.76004270043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"24386401-0992-43bd-b104-b0cc9ae58ce4","savedPayload":{"position":{"x":6325.786287656112,"y":18266.007057191084},"targetPosition":{"x":6625.786287656112,"y":18266.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Candle Analysis","config":"{ \n \"codeName\": \"Candle-Analysis\", \n \"singularVariableName\": \"candleAnalysi\", \n \"pluralVariableName\": \"candleAnalysis\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"f65e4bf0-df3b-414c-aeba-f21dadb5d7ec","savedPayload":{"position":{"x":6117.347751121608,"y":18100.80536234719},"targetPosition":{"x":6413.654253300148,"y":18053.87502283512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2127b8f1-932e-41c4-8eb9-1e0b6f02c2ec","savedPayload":{"position":{"x":6146.352296043635,"y":17917.677872913257},"targetPosition":{"x":6413.654253300148,"y":18053.87502283512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"53e79982-6059-417b-b88f-6394f60791dd","savedPayload":{"position":{"x":5343.148815609067,"y":17897.21849182892},"targetPosition":{"x":5776.253672013208,"y":17775.070289389638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e793b431-dad9-4610-9902-9359cd44e154","savedPayload":{"position":{"x":5776.253672013208,"y":17775.070289389638},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"d0cd074a-a587-4000-bc1f-28371a2fb8b6","savedPayload":{"position":{"x":5312.132928057534,"y":17723.535273105415},"targetPosition":{"x":5760.745728237442,"y":17688.228680027885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"69bcccfe-584d-4606-b871-726d66de8947","savedPayload":{"position":{"x":5760.745728237442,"y":17688.228680027885},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Open","config":"{\n \"codeName\": \"open\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.open","project":"Superalgos","id":"3fd60b2f-084c-499e-834d-5ef2213cb614","savedPayload":{"position":{"x":5315.596917157916,"y":17547.1384292383},"targetPosition":{"x":5762.477722787637,"y":17600.030258094328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4a292b21-4454-4fcd-a4f9-71e943dbed57","savedPayload":{"position":{"x":5762.477722787637,"y":17600.030258094328},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Close","config":"{\n \"codeName\": \"close\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.close","project":"Superalgos","id":"48b47283-d6a4-4a90-8738-1734c3c21de2","savedPayload":{"position":{"x":5353.407663751714,"y":17374.806792012903},"targetPosition":{"x":5781.3830960845335,"y":17513.86443948163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"40512ae6-3035-4c77-bcdc-1159fde854b5","savedPayload":{"position":{"x":5781.3830960845335,"y":17513.86443948163},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Min","config":"{\n \"codeName\": \"min\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.min","project":"Superalgos","id":"7950cf77-46f2-4fa1-934e-8d4980144bca","savedPayload":{"position":{"x":5424.112122051836,"y":17213.162969603094},"targetPosition":{"x":5816.735325234593,"y":17433.042528276725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1e360ee1-555c-4e52-b7dd-96488d8f7fce","savedPayload":{"position":{"x":5816.735325234593,"y":17433.042528276725},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Max","config":"{\n \"codeName\": \"max\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.max","project":"Superalgos","id":"ac3fc0fd-7e23-497f-ace6-f2360dbffbd4","savedPayload":{"position":{"x":5524.993159377325,"y":17068.41884345319},"targetPosition":{"x":5867.1758438973375,"y":17360.670465201772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9ab780d4-ecda-4774-a908-a09c7295a468","savedPayload":{"position":{"x":5867.1758438973375,"y":17360.670465201772},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Change","config":"{\n \"codeName\": \"change\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.change","project":"Superalgos","id":"00902197-3be2-430e-a46c-df9738714008","savedPayload":{"position":{"x":5652.173974038498,"y":16946.136849157687},"targetPosition":{"x":5930.766251227924,"y":17299.52946805402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8ffbd369-31e7-4852-b6ff-bf4a3377fda1","savedPayload":{"position":{"x":5930.766251227924,"y":17299.52946805402},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amplitude","config":"{\n \"codeName\": \"amplitude\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.amplitude","project":"Superalgos","id":"93a89ed7-89ad-4daf-86d6-53651293ab50","savedPayload":{"position":{"x":5800.767078651759,"y":16851.016215180825},"targetPosition":{"x":6005.062803534554,"y":17251.96915106559},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"39c3fed7-3a12-4972-945f-8e6fbde73a7e","savedPayload":{"position":{"x":6005.062803534554,"y":17251.96915106559},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last 24 Hs Open","config":"{\n \"codeName\": \"last24HsOpen\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.last24HsOpen","project":"Superalgos","id":"f1270a72-c9e3-4b26-a1ea-cb5c41c9cbac","savedPayload":{"position":{"x":5965.062123538784,"y":16786.712374142073},"targetPosition":{"x":6087.210325978067,"y":17219.817230546214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2023ddfc-ef12-436a-afc1-21ea85bcc15a","savedPayload":{"position":{"x":6087.210325978067,"y":17219.817230546214},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last 24 Hs Close","config":"{\n \"codeName\": \"last24HsClose\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.last24HsClose","project":"Superalgos","id":"24a0db8a-90e1-43ed-a5d4-275d8664a255","savedPayload":{"position":{"x":6138.745342262289,"y":16755.69648659054},"targetPosition":{"x":6174.051935339823,"y":17204.309286770447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7da60321-d817-47b1-b2a7-bdb0f7496f6c","savedPayload":{"position":{"x":6174.051935339823,"y":17204.309286770447},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last 24 Hs Min","config":"{\n \"codeName\": \"last24HsMin\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.last24HsMin","project":"Superalgos","id":"ed0814c8-4b46-4e10-b0f5-99feacad7d18","savedPayload":{"position":{"x":6315.142186129404,"y":16759.160475690922},"targetPosition":{"x":6262.25035727338,"y":17206.04128132064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38f2fdac-ce4b-4108-b29e-6132a0fdb2c1","savedPayload":{"position":{"x":6262.25035727338,"y":17206.04128132064},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last 24 Hs Max","config":"{\n \"codeName\": \"last24HsMax\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.last24HsMax","project":"Superalgos","id":"5dae1d3e-d141-44fa-a964-35e612fdfcba","savedPayload":{"position":{"x":6487.473823354801,"y":16796.971222284716},"targetPosition":{"x":6348.4161758860755,"y":17224.946654617535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"22d112af-2427-4977-89c4-0e473a2656c7","savedPayload":{"position":{"x":6348.4161758860755,"y":17224.946654617535},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last 24 Hs Change","config":"{\n \"codeName\": \"last24HsChange\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.last24HsChange","project":"Superalgos","id":"b4ea6ce6-2a3b-4565-8449-49e1152c51f6","savedPayload":{"position":{"x":6649.117645764611,"y":16867.675680584834},"targetPosition":{"x":6429.23808709098,"y":17260.298883767595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3a2b5bde-db5e-4bcd-8154-65be82b0d116","savedPayload":{"position":{"x":6429.23808709098,"y":17260.298883767595},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last 24 Hs Amplitude","config":"{\n \"codeName\": \"last24HsAmplitude\",\n \"isString\": false,\n \"decimals\": 2}","project":"Superalgos","formula":{"type":"Formula","code":"variable.last24HsAmplitude","project":"Superalgos","id":"866f1e66-8872-4818-b5ed-c288f1c7faaa","savedPayload":{"position":{"x":6793.861771914515,"y":16968.55671791033},"targetPosition":{"x":6501.610150165932,"y":17310.739402430343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"86918cd5-d63f-4949-9eae-9c6474337bb8","savedPayload":{"position":{"x":6501.610150165932,"y":17310.739402430343},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last 24 Hs Direction","config":"{\n \"codeName\": \"last24HsDirection\",\n \"isString\": true\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.last24HsDrection\n ","project":"Superalgos","id":"910daa69-6be0-4baf-9f0b-c0f48cf05112","savedPayload":{"position":{"x":6916.143766210022,"y":17095.737532571504},"targetPosition":{"x":6562.751147313687,"y":17374.32980976093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c1fd4561-1c33-429a-9926-b940660e5500","savedPayload":{"position":{"x":6562.751147313687,"y":17374.32980976093},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"086c529f-aacc-403d-98bb-13c0d2b784b7","savedPayload":{"position":{"x":6209.35852841735,"y":17652.922086950355},"targetPosition":{"x":6413.654253300148,"y":18053.87502283512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"\n\n\nlet candle = {\n open: record.current.open,\n close: record.current.close,\n min: record.current.min,\n max: record.current.max, \n} \n\nvariable.change = (candle.open * 100 / candle.close - 100) * (-1)\nvariable.amplitude = (candle.min * 100 / candle.max - 100) * (-1)\n\nvariable.candlesArray.splice(0, 1)\nvariable.candlesArray.push(candle)\n\nvariable.last24HsOpen = variable.candlesArray[0].open\nvariable.last24HsClose = candle.close\n\nvariable.last24HsMin = variable.candlesArray[0].min\nvariable.last24HsMax = variable.candlesArray[0].max\n\nfor (let i = 0; i < variable.candlesArray.length; i++) {\n let pastCandle = variable.candlesArray[i]\n\n if (pastCandle.min < variable.last24HsMin) {\n variable.last24HsMin = pastCandle.min\n }\n\n if (pastCandle.max > variable.last24HsMax) {\n variable.last24HsMax = pastCandle.max\n }\n}\n\nvariable.last24HsChange = (variable.last24HsOpen * 100 / variable.last24HsClose - 100) * (-1)\nvariable.last24HsAmplitude = (variable.last24HsMin * 100 / variable.last24HsMax - 100) * (-1)\n\nswitch (true) {\n case (variable.last24HsOpen === variable.last24HsClose): {\n variable.last24HsDrection = \"Side\"\n break\n }\n case (variable.last24HsOpen > variable.last24HsClose): {\n variable.last24HsDrection = \"Down\"\n break\n }\n case (variable.last24HsOpen < variable.last24HsClose): {\n variable.last24HsDrection = \"Up\"\n break\n }\n}\n\nif (isNaN(variable.change )) {variable.change = 0}\nif (isNaN(variable.amplitude )) {variable.amplitude = 0}\nif (isNaN(variable.last24HsChange )) {variable.last24HsChange = 0}\nif (isNaN(variable.last24HsAmplitude )) {variable.last24HsAmplitude = 0}","project":"Superalgos","id":"651295c0-b308-46e7-b972-06790ee03cd2","savedPayload":{"position":{"x":6397.867514851627,"y":17160.855383435617},"targetPosition":{"x":6429.226053831921,"y":17459.2119520461},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac737a8b-958d-433c-bd0c-e95b0622a89a","savedPayload":{"position":{"x":6429.226053831921,"y":17459.2119520461},"targetPosition":{"x":6460.584592812218,"y":17757.56852065658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"\n\n\nlet candlesIn24Hs = system.ONE_DAY_IN_MILISECONDS / system.timeFrame\nvariable.candlesArray = []\nlet candle = {\n open: 0,\n close: 0,\n min: 0,\n max: 0\n}\n\nfor (let i = 0; i < candlesIn24Hs; i++) {\n variable.candlesArray.push(candle)\n}\n","project":"Superalgos","id":"74f3b1ad-a2b1-4c08-a737-00c6e251a847","savedPayload":{"position":{"x":6704.626578657699,"y":17209.44124607102},"targetPosition":{"x":6582.605585734957,"y":17483.5048833638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1ba4a91d-63f2-4048-8d07-7f3aa38e200c","savedPayload":{"position":{"x":6582.605585734957,"y":17483.5048833638},"targetPosition":{"x":6460.584592812218,"y":17757.56852065658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b123c4f0-9552-4f16-935b-d6cd9e45e7ff","savedPayload":{"position":{"x":6460.584592812218,"y":17757.56852065658},"targetPosition":{"x":6413.654253300148,"y":18053.87502283512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e911b94f-c475-4400-a921-def0b207d7a3","savedPayload":{"position":{"x":6413.654253300148,"y":18053.87502283512},"targetPosition":{"x":6625.786287656112,"y":18266.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Candle Analysis","id":"7d2c7454-22ee-4d99-ab73-b47e5813a7bc"}}}],"id":"644029c0-ed66-4b57-b33c-75dff309b972","savedPayload":{"position":{"x":6625.786287656112,"y":18268.007057191084},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"plotters":[{"type":"Plotter","name":"Plotters Candles Volumes","config":"{\n\"codeName\": \"PlottersCandlesVolumes\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Candles","config":"{\n\"codeName\": \"Candles\",\n\"isLegacy\": true,\n\"icon\": \"layer-candles\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Candle","config":"{ \n\"codeName\": \"CandlePanel\" ,\n\"isLegacy\": true\n}","project":"Superalgos","panelData":[],"id":"9336f4e6-d56b-4ed4-819d-0bb762ba1fdd","savedPayload":{"position":{"x":6052.993849613016,"y":18267.589920793544},"targetPosition":{"x":6348.436175516679,"y":18215.495467493463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0aed75a3-fee8-4ddc-97ff-b6768e6f12a3","savedPayload":{"position":{"x":6348.436175516679,"y":18215.495467493463},"targetPosition":{"x":6643.878501420339,"y":18163.401014193383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Volumes","config":"{\n\"codeName\": \"Volumes\",\n\"isLegacy\": true,\n\"icon\": \"layer-volume\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Volume","config":"{ \n\"codeName\": \"VolumePanel\" ,\n\"isLegacy\": true\n}","project":"Superalgos","panelData":[],"id":"42dbd098-4550-44a0-987f-54a28dd5f40b","savedPayload":{"position":{"x":6258.205935608417,"y":17703.774348321997},"targetPosition":{"x":6451.04221851438,"y":17933.58768125769},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a6177fb7-51d1-4b7c-bcbb-04861a5bf0c1","savedPayload":{"position":{"x":6451.04221851438,"y":17933.58768125769},"targetPosition":{"x":6643.878501420339,"y":18163.401014193383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e4347543-21b5-4274-b690-e6b3b5899862","savedPayload":{"position":{"x":6643.8785014203395,"y":18165.401014193383},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Plotter","name":"Plotters Bollinger Bands","config":"{\n\"codeName\" : \"PlottersBollingerBands\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Percentage B","config":"{\n\t\"codeName\": \"Percentage Bandwidth\",\n \"icon\": \"layer-oscilator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Previous Value","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.value","project":"Superalgos","id":"ad85e84e-166f-41c7-bc08-b6a50ca4524d","savedPayload":{"position":{"x":6016.050959154461,"y":17991.870762111226},"targetPosition":{"x":6080.578308243956,"y":18084.025367093738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"534c2cd4-d020-43cf-9284-433a57fdcfce","savedPayload":{"position":{"x":6080.578308243956,"y":18084.025367093738},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Value","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.value","project":"Superalgos","id":"1e029480-c6d7-4455-9ae9-5677b99752de","savedPayload":{"position":{"x":6102.173633373724,"y":17955.313855800523},"targetPosition":{"x":6123.639645353585,"y":18065.746913938387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5b05abcc-76cf-4f9d-82e5-671ab7471678","savedPayload":{"position":{"x":6123.639645353585,"y":18065.746913938387},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Previous MA","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.movingAverage","project":"Superalgos","id":"7bafa19b-086c-41cf-b2e4-a41485841f4c","savedPayload":{"position":{"x":6195.719644560817,"y":17956.94670749957},"targetPosition":{"x":6170.412650947132,"y":18066.56333978791},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0993c95f-2054-48d8-9977-2d4eb24dabf7","savedPayload":{"position":{"x":6170.412650947132,"y":18066.56333978791},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End MA","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.movingAverage","project":"Superalgos","id":"412d8820-facc-4065-a235-d35d86c3b569","savedPayload":{"position":{"x":6280.514037542656,"y":17996.48698231561},"targetPosition":{"x":6212.8098474380495,"y":18086.33347719593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"35bdf97d-abf8-4f1e-922c-d853e6980b0c","savedPayload":{"position":{"x":6212.8098474380495,"y":18086.33347719593},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Being Previous Bandwidth","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.bandwidth * 250","project":"Superalgos","id":"cbd72abc-e6c4-44d6-bd58-1bab7c0b2960","savedPayload":{"position":{"x":6341.895091439812,"y":18067.097807520826},"targetPosition":{"x":6243.500374386629,"y":18121.638889798538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"943da81e-c0ca-4213-ba8a-5dbafd3ead18","savedPayload":{"position":{"x":6243.500374386629,"y":18121.638889798538},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bandwidth","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bandwidth * 250","project":"Superalgos","id":"6ac14886-32ee-490f-a600-4f704458f24e","savedPayload":{"position":{"x":6369.249464404089,"y":18156.56992995803},"targetPosition":{"x":6257.177560868768,"y":18166.37495101714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cdf38478-d5d4-410e-98fd-14b7b74bfd8b","savedPayload":{"position":{"x":6257.177560868768,"y":18166.37495101714},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"54cece5b-472f-4c86-b6b6-83342e2890f7","savedPayload":{"position":{"x":6357.847336843293,"y":18249.432806829107},"targetPosition":{"x":6251.47649708837,"y":18212.80638945268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e21c88b-bfb7-41dd-9cbe-678d5dc4fc54","savedPayload":{"position":{"x":6251.47649708837,"y":18212.80638945268},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"1572cfc8-0318-43b5-8405-a04cc00cbd16","savedPayload":{"position":{"x":6309.660240197762,"y":18329.62960309031},"targetPosition":{"x":6227.382948765604,"y":18252.90478758328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"75670aaa-849d-4156-af74-61a25ce49713","savedPayload":{"position":{"x":6227.382948765604,"y":18252.90478758328},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 30","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 30","project":"Superalgos","id":"6039db7e-9c71-4906-b999-3d7848989c5a","savedPayload":{"position":{"x":6233.02016124353,"y":18383.29356410305},"targetPosition":{"x":6189.062909288488,"y":18279.73676808965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ffea0ed5-39b4-4c14-b1fc-2164a6e189fd","savedPayload":{"position":{"x":6189.062909288488,"y":18279.73676808965},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 30","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 30","project":"Superalgos","id":"89393793-42d5-4dea-bca5-aee8f3349659","savedPayload":{"position":{"x":6141.17886588506,"y":18401.145703486436},"targetPosition":{"x":6143.142261609253,"y":18288.662837781343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4bc7f337-74a7-42b7-89b7-9d4edc10fca5","savedPayload":{"position":{"x":6143.142261609253,"y":18288.662837781343},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 70","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 70","project":"Superalgos","id":"c616cf49-abaf-490e-a3b7-f978442c8b4a","savedPayload":{"position":{"x":6050.0165484417885,"y":18380.099224159494},"targetPosition":{"x":6097.561102887619,"y":18278.139598117872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"827e424f-3036-4645-9246-94b4bb0ebaea","savedPayload":{"position":{"x":6097.561102887619,"y":18278.139598117872},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 70","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 70","project":"Superalgos","id":"d3003e73-9318-4282-a293-d61c0d98bd4b","savedPayload":{"position":{"x":5975.296001783321,"y":18323.793253599113},"targetPosition":{"x":6060.200829558384,"y":18249.98661283768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"84bdd434-48af-4f4a-8f14-62df15022d05","savedPayload":{"position":{"x":6060.200829558384,"y":18249.98661283768},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 100","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 100","project":"Superalgos","id":"8d13712b-3f9e-424e-b85c-e6794ce39ca9","savedPayload":{"position":{"x":5242.786689930075,"y":16154.611943473745},"targetPosition":{"x":5498.494448617992,"y":16320.670503605194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ec589261-f564-4ad0-b866-8c63b8a15150","savedPayload":{"position":{"x":6037.521372287603,"y":18209.071788857556},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 100","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 100","project":"Superalgos","id":"8c06033c-c2b7-42a7-b509-e45a1b7edf42","savedPayload":{"position":{"x":5422.085087043011,"y":15975.313546360809},"targetPosition":{"x":5588.143647174464,"y":16231.021305048725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8949ce4a-bdad-47c2-a85f-0728ed7f9746","savedPayload":{"position":{"x":6033.444215273797,"y":18162.46967094317},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9388e24f-4147-4878-8754-b6f6b8807813","savedPayload":{"position":{"x":6145.105657333446,"y":18176.17997207625},"targetPosition":{"x":5952.2430146754705,"y":18060.29640522149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Area From 0 to 30","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","project":"Superalgos","id":"05578d4b-01e3-42fc-a4dd-b473414f467d","savedPayload":{"position":{"x":6129.3468066044115,"y":16124.194244708448},"targetPosition":{"x":5824.868111570169,"y":16140.151296954191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"14810299-01f6-443c-8bbf-de8450c9efd6","savedPayload":{"position":{"x":5824.868111570169,"y":16140.151296954191},"targetPosition":{"x":5520.389416535927,"y":16156.108349199934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 0","project":"Superalgos","id":"d8eda99d-df16-4e21-b621-6f547914c461","savedPayload":{"position":{"x":5618.470429896104,"y":16457.97066932802},"targetPosition":{"x":5520.389416535927,"y":16156.108349199934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"8e21c88b-bfb7-41dd-9cbe-678d5dc4fc54"}}},{"type":"Polygon Vertex","name":"End 0","project":"Superalgos","id":"3a844186-fa2d-45e3-9453-d11750bafb51","savedPayload":{"position":{"x":5266.455205903938,"y":16340.602352539547},"targetPosition":{"x":5520.389416535927,"y":16156.108349199934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"75670aaa-849d-4156-af74-61a25ce49713"}}},{"type":"Polygon Vertex","name":"End 30","project":"Superalgos","id":"95d52cc3-0a06-4181-bcd7-1e65b41194d8","savedPayload":{"position":{"x":5270.139808268283,"y":15974.291366176807},"targetPosition":{"x":5520.389416535927,"y":16156.108349199934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"4bc7f337-74a7-42b7-89b7-9d4edc10fca5"}}},{"type":"Polygon Vertex","name":"Begin 30","project":"Superalgos","id":"a65fe0bd-5517-45b2-ac29-16bd198653a5","savedPayload":{"position":{"x":5605.736627889641,"y":15893.4366418728},"targetPosition":{"x":5520.389416535927,"y":16156.108349199934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"ffea0ed5-39b4-4c14-b1fc-2164a6e189fd"}}}],"id":"d76f185f-5219-4f0b-adb3-9a339b0468c6","savedPayload":{"position":{"x":5996.200266630516,"y":18163.853201234888},"targetPosition":{"x":5952.2430146754705,"y":18060.29640522149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Area From 30 to 70","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","project":"Superalgos","id":"2bdd38d2-0e04-4760-a8e7-af12d8a3baa7","savedPayload":{"position":{"x":5898.560257880894,"y":16354.980793431965},"targetPosition":{"x":5642.852499192977,"y":16188.922233300516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"de6f5e6b-a281-4d29-af86-72f7a545257d","savedPayload":{"position":{"x":5642.852499192977,"y":16188.922233300516},"targetPosition":{"x":5387.14474050506,"y":16022.863673169068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 30","project":"Superalgos","id":"e9bfd52e-bc47-469f-8187-4e79d79ba866","savedPayload":{"position":{"x":5480.091675709726,"y":16308.924925479372},"targetPosition":{"x":5387.14474050506,"y":16022.863673169068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"ffea0ed5-39b4-4c14-b1fc-2164a6e189fd"}}},{"type":"Polygon Vertex","name":"End 30","project":"Superalgos","id":"f562f71b-2e79-4fa0-a9d5-e1d5c4ba12b4","savedPayload":{"position":{"x":5154.49243471105,"y":16191.895467566923},"targetPosition":{"x":5387.14474050506,"y":16022.863673169068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"4bc7f337-74a7-42b7-89b7-9d4edc10fca5"}}},{"type":"Polygon Vertex","name":"End 70","project":"Superalgos","id":"3c79161c-e899-4147-bd75-21805b23f76f","savedPayload":{"position":{"x":5139.533478681649,"y":15842.96356104129},"targetPosition":{"x":5387.14474050506,"y":16022.863673169068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"84bdd434-48af-4f4a-8f14-62df15022d05"}}},{"type":"Polygon Vertex","name":"Begin 70","project":"Superalgos","id":"4cd041c2-e445-46eb-99bf-c3ceee94f101","savedPayload":{"position":{"x":5479.761807982864,"y":15737.817649331171},"targetPosition":{"x":5387.14474050506,"y":16022.863673169068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"827e424f-3036-4645-9246-94b4bb0ebaea"}}}],"id":"1a7969dd-af18-4e44-b4c9-96dd2be57f7c","savedPayload":{"position":{"x":5926.936021061785,"y":18169.91303750983},"targetPosition":{"x":5952.2430146754705,"y":18060.29640522149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Area From 70 to 100","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","project":"Superalgos","id":"b34d9e0e-ed4a-4b99-8e29-b7ed66a3658e","savedPayload":{"position":{"x":5576.197088123266,"y":16406.038103655275},"targetPosition":{"x":5466.9319384134,"y":16121.392656993976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2c35b477-500f-4c85-867f-630e2105278f","savedPayload":{"position":{"x":5466.9319384134,"y":16121.392656993976},"targetPosition":{"x":5357.666788703533,"y":15836.747210332678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 70","project":"Superalgos","id":"1777fb76-c1e2-415d-a517-2e365401490c","savedPayload":{"position":{"x":5452.801576695787,"y":16129.54198114909},"targetPosition":{"x":5357.666788703533,"y":15836.747210332678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"827e424f-3036-4645-9246-94b4bb0ebaea"}}},{"type":"Polygon Vertex","name":"End 70","project":"Superalgos","id":"4652d8cf-d922-44a3-b8cf-c6d329883ca0","savedPayload":{"position":{"x":5125.892714594986,"y":16005.140932061604},"targetPosition":{"x":5357.666788703533,"y":15836.747210332678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"84bdd434-48af-4f4a-8f14-62df15022d05"}}},{"type":"Polygon Vertex","name":"End 100","project":"Superalgos","id":"ef3e750e-8380-40a2-830b-3f364960e44e","savedPayload":{"position":{"x":5106.83726678415,"y":15654.508895378991},"targetPosition":{"x":5357.666788703533,"y":15836.747210332678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 100","id":"8949ce4a-bdad-47c2-a85f-0728ed7f9746"}}},{"type":"Polygon Vertex","name":"Begin 100","project":"Superalgos","id":"c8905f10-3c25-4fec-978a-ef356c0ad395","savedPayload":{"position":{"x":5454.998164274421,"y":15537.192038087547},"targetPosition":{"x":5357.666788703533,"y":15836.747210332678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 100","id":"ec589261-f564-4ad0-b866-8c63b8a15150"}}}],"id":"cb1bcd11-0fb0-4377-bff2-dee4630e0f3f","savedPayload":{"position":{"x":5867.3381869004115,"y":18134.10304598292},"targetPosition":{"x":5952.2430146754705,"y":18060.29640522149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 30","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","project":"Superalgos","id":"3f69a3f7-af79-47a2-9e0b-17524fc986d8","savedPayload":{"position":{"x":5012.026307524979,"y":16100.037952904186},"targetPosition":{"x":5227.62072216289,"y":15884.443538266274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"30e98617-1cfd-4fa7-814c-a5898caac0da","savedPayload":{"position":{"x":5227.62072216289,"y":15884.443538266274},"targetPosition":{"x":5443.215136800805,"y":15668.84912362836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 30","project":"Superalgos","id":"2f5d4ab1-0d70-4baa-988a-2b7077e7b1e6","savedPayload":{"position":{"x":5285.868425154484,"y":15941.38162260368},"targetPosition":{"x":5443.215136800805,"y":15668.84912362836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"ffea0ed5-39b4-4c14-b1fc-2164a6e189fd"}}},{"type":"Polygon Vertex","name":"End 30","project":"Superalgos","id":"b23626ca-e521-4fad-9a8b-8c9f30711de7","savedPayload":{"position":{"x":5301.501161436576,"y":15423.393318154947},"targetPosition":{"x":5443.215136800805,"y":15668.84912362836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"4bc7f337-74a7-42b7-89b7-9d4edc10fca5"}}}],"id":"857043cc-f467-44d2-89eb-2e73f35f638d","savedPayload":{"position":{"x":5840.171111140149,"y":18070.1014262806},"targetPosition":{"x":5952.2430146754705,"y":18060.29640522149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 30","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","project":"Superalgos","id":"9e67e8dc-0a07-4d57-be52-6023ff9087da","savedPayload":{"position":{"x":5008.827698034755,"y":15678.693431398286},"targetPosition":{"x":5309.970460769935,"y":15630.997103464688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"767e0eba-ad98-49a9-a08d-58b5ebfaf655","savedPayload":{"position":{"x":5309.970460769935,"y":15630.997103464688},"targetPosition":{"x":5611.113223505123,"y":15583.30077553109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End 70","project":"Superalgos","id":"9bed0cf3-56c3-4508-88c8-5dede6e574df","savedPayload":{"position":{"x":5454.696420750759,"y":15854.222625059125},"targetPosition":{"x":5611.113223505123,"y":15583.30077553109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"84bdd434-48af-4f4a-8f14-62df15022d05"}}},{"type":"Polygon Vertex","name":"Begin 70","project":"Superalgos","id":"1ce29315-82a5-4b62-8e85-be087a037d73","savedPayload":{"position":{"x":5454.392606746398,"y":15311.852704711451},"targetPosition":{"x":5611.113223505123,"y":15583.30077553109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"827e424f-3036-4645-9246-94b4bb0ebaea"}}}],"id":"984a1917-1d81-4142-a50f-269a18a07c9d","savedPayload":{"position":{"x":5855.811693346484,"y":18002.354621794108},"targetPosition":{"x":5952.2430146754705,"y":18060.29640522149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Bandwidth","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 2,\n \"lineDash\": [2,2],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n }\n}","project":"Superalgos","id":"ccb32f55-1b5e-4813-b614-0581593434a7","savedPayload":{"position":{"x":5253.90006447419,"y":15335.93845752703},"targetPosition":{"x":5525.56487540785,"y":15474.358592429822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"57a26967-b019-4352-9d9d-cc10668837c4","savedPayload":{"position":{"x":5525.56487540785,"y":15474.358592429822},"targetPosition":{"x":5797.22968634151,"y":15612.778727332614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Being Previous Bandwidth","project":"Superalgos","id":"0d8a9c6b-b0e6-4ce1-b1ad-71bd2a506a55","savedPayload":{"position":{"x":5661.504374279899,"y":15847.861863696471},"targetPosition":{"x":5797.22968634151,"y":15612.778727332614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Being Previous Bandwidth","id":"943da81e-c0ca-4213-ba8a-5dbafd3ead18"}}},{"type":"Polygon Vertex","name":"End Bandwidth","project":"Superalgos","id":"38f87d68-5678-46bd-9e26-45b8a8ee75f1","savedPayload":{"position":{"x":5653.4526844203065,"y":15363.749655045161},"targetPosition":{"x":5797.22968634151,"y":15612.778727332614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bandwidth","id":"cdf38478-d5d4-410e-98fd-14b7b74bfd8b"}}}],"id":"0f7a4004-177c-4412-b0ef-2608f3c13da6","savedPayload":{"position":{"x":5908.2857627204285,"y":17956.73960920809},"targetPosition":{"x":5952.2430146754705,"y":18060.29640522149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Value","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.85,\n \"lineWidth\": 2.25,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"6e43dca6-e750-49ff-b025-2a76185e5914","savedPayload":{"position":{"x":5653.634092566794,"y":15202.69378149616},"targetPosition":{"x":5792.054227469587,"y":15474.35859242982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"56c0efd0-d13a-4c29-98f2-d27cb6071099","savedPayload":{"position":{"x":5792.054227469587,"y":15474.35859242982},"targetPosition":{"x":5930.474362372381,"y":15746.02340336348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Previous Value","project":"Superalgos","id":"68e8f2a3-54ee-4fb7-abd2-add6496c08e0","savedPayload":{"position":{"x":5774.809182828645,"y":16015.643403302554},"targetPosition":{"x":5930.474362372381,"y":15746.02340336348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Previous Value","id":"534c2cd4-d020-43cf-9284-433a57fdcfce"}}},{"type":"Polygon Vertex","name":"End Value","project":"Superalgos","id":"a01aa765-6bd5-49d7-afbe-44d543191f76","savedPayload":{"position":{"x":5771.951825878223,"y":15471.454316010906},"targetPosition":{"x":5930.474362372381,"y":15746.02340336348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Value","id":"5b05abcc-76cf-4f9d-82e5-671ab7471678"}}}],"id":"4598a671-83b9-4460-9e65-175df73eba71","savedPayload":{"position":{"x":5977.550008289156,"y":17950.67977293315},"targetPosition":{"x":5952.2430146754705,"y":18060.29640522149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Moving Average","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.55,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"544bf8f4-dfd5-4cd7-aba3-a47f6b477da8","savedPayload":{"position":{"x":5770.699523379797,"y":15439.119490439365},"targetPosition":{"x":6007.648642107499,"y":15630.997103464686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.previous.movingAverage > record.movingAverage","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"opacity\": 0.55,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n}","project":"Superalgos","id":"c89114e1-7181-4091-8c2d-0301a8b00478","savedPayload":{"position":{"x":6576.939535430094,"y":15412.466804044956},"targetPosition":{"x":6292.294088768798,"y":15521.731953754821},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"12891c27-2ec5-4a56-892e-1d29a277d5da","savedPayload":{"position":{"x":6292.294088768798,"y":15521.731953754821},"targetPosition":{"x":6007.648642107499,"y":15630.997103464686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c9847967-ecf5-4f6a-9fe7-2759ca4795b6","savedPayload":{"position":{"x":6007.648642107499,"y":15630.997103464686},"targetPosition":{"x":5959.952314173901,"y":15932.13986619987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"a"}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Previous MA","project":"Superalgos","id":"81660820-6035-481b-a909-9e89e145d61f","savedPayload":{"position":{"x":5806.271775720972,"y":16198.322366934888},"targetPosition":{"x":5959.952314173901,"y":15932.13986619987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Previous MA","id":"0993c95f-2054-48d8-9977-2d4eb24dabf7"}}},{"type":"Polygon Vertex","name":"End MA","project":"Superalgos","id":"2d18f4cf-e5d4-4bde-9a69-85b87c410125","savedPayload":{"position":{"x":5800.791215457488,"y":15656.464756634556},"targetPosition":{"x":5959.952314173901,"y":15932.13986619987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End MA","id":"35bdf97d-abf8-4f1e-922c-d853e6980b0c"}}}],"id":"69c19382-ed5b-48d1-9249-426a8e1e4e51","savedPayload":{"position":{"x":6037.147842450533,"y":17986.489764460057},"targetPosition":{"x":5952.2430146754705,"y":18060.29640522149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"da344cd9-3c37-449a-b5be-6c65814f8562","savedPayload":{"position":{"x":5952.2430146754705,"y":18060.29640522149},"targetPosition":{"x":6400.530628816756,"y":18021.07632098504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"%B Panel","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"%B Value","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.value","project":"Superalgos","id":"c6ca5acc-cc3d-4802-8627-d3461747e731","savedPayload":{"position":{"x":5545.833050817808,"y":17751.679307067127},"targetPosition":{"x":5837.235671761784,"y":17822.98507476498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d34065b9-ce7c-4971-8270-d0819da6b188","savedPayload":{"position":{"x":5837.235671761784,"y":17822.98507476498},"targetPosition":{"x":6128.63829270576,"y":17894.290842462833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Bandwidth","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.bandwidth","project":"Superalgos","id":"5193f538-5133-4561-a9e4-939cfa4d9af9","savedPayload":{"position":{"x":5584.853620483773,"y":17640.719885418417},"targetPosition":{"x":5856.745956594768,"y":17767.505363940625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ba215bbb-99c2-4433-83f8-47f2b00ee378","savedPayload":{"position":{"x":5856.745956594768,"y":17767.505363940625},"targetPosition":{"x":6128.63829270576,"y":17894.290842462833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Moving Average","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.movingAverage","project":"Superalgos","id":"d721b3b0-ffe7-459f-b146-954073605f0e","savedPayload":{"position":{"x":5644.771530145274,"y":17539.505053444685},"targetPosition":{"x":5886.704911425517,"y":17716.89794795376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8705ee2c-1bd8-4e90-b841-d2864f83f14b","savedPayload":{"position":{"x":5886.704911425517,"y":17716.89794795376},"targetPosition":{"x":6128.63829270576,"y":17894.290842462833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"36548f31-d96c-4c80-b923-dea5dd5b56c7","savedPayload":{"position":{"x":6128.63829270576,"y":17894.290842462833},"targetPosition":{"x":6400.530628816756,"y":18021.07632098504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"06b2f3f6-b138-415f-8974-31c22a930f92","savedPayload":{"position":{"x":6400.530628816756,"y":18021.07632098504},"targetPosition":{"x":6695.972954720419,"y":18073.17077428512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Bollinger Bands","config":"{\n\"codeName\": \"BollingerBands\",\n\"isLegacy\": true,\n\"icon\": \"layer-bands\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Bollinger Band","config":"{ \n\"codeName\": \"BollingerBandsPanel\" ,\n\"isLegacy\": true\n}","project":"Superalgos","panelData":[],"id":"de7b7008-6f66-4d7d-96dd-1aa7b1ede335","savedPayload":{"position":{"x":6490.760868725018,"y":17509.355201813574},"targetPosition":{"x":6593.366911722718,"y":17791.262988049348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a11bfdf8-595c-4b50-b259-6a9f777d0ea8","savedPayload":{"position":{"x":6593.366911722718,"y":17791.262988049348},"targetPosition":{"x":6695.972954720419,"y":18073.17077428512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"abd0f050-2f42-4c50-81a9-ffb0d6442cef","savedPayload":{"position":{"x":6695.972954720419,"y":18075.17077428512},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Plotters Bollinger Channels","config":"{\n\"codeName\" : \"Plotter Bollinger Channels\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Bollinger Channels Objects","config":"{\n\"codeName\": \"Bollinger-Channels-Objects\",\n \"icon\": \"layer-trends\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"New Point","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.firstMovingAverage - record.firstDeviation","project":"Superalgos","id":"8117b381-e9c7-41e3-8a51-ed49a1ca6868","savedPayload":{"position":{"x":5674.648296858839,"y":17941.629463526573},"targetPosition":{"x":5810.036089511315,"y":17877.05279900533},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9be61e7d-ae1e-4b39-9ebf-27285a5a67a9","savedPayload":{"position":{"x":5810.036089511315,"y":17877.05279900533},"targetPosition":{"x":5945.4238821637955,"y":17812.476134484088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"New Point","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.lastMovingAverage - record.lastDeviation","project":"Superalgos","id":"69cb3498-4e18-458a-b48e-e65c98b183be","savedPayload":{"position":{"x":5657.7779617033375,"y":17897.680737895265},"targetPosition":{"x":5801.600921933568,"y":17855.078436189677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f87b3204-8901-4774-afcb-b4e5394e255d","savedPayload":{"position":{"x":5801.600921933568,"y":17855.078436189677},"targetPosition":{"x":5945.4238821637955,"y":17812.476134484088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"New Point","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.lastMovingAverage + record.lastDeviation","project":"Superalgos","id":"4c7b46d8-f76b-4039-af87-345c3f72a0a4","savedPayload":{"position":{"x":5647.990423751653,"y":17851.633992150106},"targetPosition":{"x":5796.707152957726,"y":17832.055063317097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5ce82101-6f77-4f54-bef5-d97edae6d44b","savedPayload":{"position":{"x":5796.707152957726,"y":17832.055063317097},"targetPosition":{"x":5945.4238821637955,"y":17812.476134484088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"New Point","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.firstMovingAverage + record.lastDeviation","project":"Superalgos","id":"89e5dbc2-33ed-42b9-9b9b-376097e04aff","savedPayload":{"position":{"x":5645.526684671127,"y":17804.62304999173},"targetPosition":{"x":5795.4752834174615,"y":17808.54959223791},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"45dbe6c3-9433-4b6d-8aa5-691cf6eba8a1","savedPayload":{"position":{"x":5795.4752834174615,"y":17808.54959223791},"targetPosition":{"x":5945.4238821637955,"y":17812.476134484088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"703b0e1b-e2d6-457a-95d6-7b6516b2f772","savedPayload":{"position":{"x":5945.4238821637955,"y":17812.476134484088},"targetPosition":{"x":6238.86816238394,"y":17750.10262723876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"09105647-a665-4fb4-910d-49bcf90eb91e","savedPayload":{"position":{"x":5449.578761483586,"y":17440.699429100387},"targetPosition":{"x":5749.545192026668,"y":17445.187251204967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Side'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.LIGHT\"\n}","project":"Superalgos","id":"ad17706f-09f0-4424-b5f3-b66fb2c76160","savedPayload":{"position":{"x":5155.916396394849,"y":17357.98144293102},"targetPosition":{"x":5452.730794210758,"y":17401.584347067994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3975ecc2-db5b-4cab-a9ab-9e13b2da3015","savedPayload":{"position":{"x":5452.730794210758,"y":17401.584347067994},"targetPosition":{"x":5749.545192026668,"y":17445.187251204967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Up'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR. GREEN\"\n}","project":"Superalgos","id":"0b263642-8fc7-4fdc-a915-9480c8493e68","savedPayload":{"position":{"x":5172.377615127447,"y":17281.243394423815},"targetPosition":{"x":5460.961403577057,"y":17363.21532281439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e218ed70-9da7-43c5-9c23-9e010e08b5b5","savedPayload":{"position":{"x":5460.961403577057,"y":17363.21532281439},"targetPosition":{"x":5749.545192026668,"y":17445.187251204967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Down'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","project":"Superalgos","id":"ce3abe3f-eb38-4e0f-94bb-9c397ed78f49","savedPayload":{"position":{"x":5198.7143311218715,"y":17207.310470759963},"targetPosition":{"x":5474.12976157427,"y":17326.248860982465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"251d5031-13f9-493b-aa35-126f5221bb21","savedPayload":{"position":{"x":5474.12976157427,"y":17326.248860982465},"targetPosition":{"x":5749.545192026668,"y":17445.187251204967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"atMousePosition === true","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.1\n}","project":"Superalgos","id":"2ea26fbc-74c5-4fb5-b64f-c4c7b289003c","savedPayload":{"position":{"x":5234.475915865551,"y":17137.44768476142},"targetPosition":{"x":5492.010553946111,"y":17291.317467983194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8a0f9c00-67be-47fa-9cde-ec6c499c9bec","savedPayload":{"position":{"x":5492.010553946111,"y":17291.317467983194},"targetPosition":{"x":5749.545192026668,"y":17445.187251204967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f2d2ac14-9859-4228-81d9-280c639c1b37","savedPayload":{"position":{"x":5749.545192026668,"y":17445.187251204967},"targetPosition":{"x":6038.128980476282,"y":17527.159179595543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"d85d9603-7ff2-4d45-aa58-9b8ebe23a65f","savedPayload":{"position":{"x":5630.278396358055,"y":17343.66205735595},"targetPosition":{"x":5775.021060177252,"y":17383.02652446174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Side'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK\"\n}","project":"Superalgos","id":"d09de0b4-f477-42e9-a944-6bde9a9a68dd","savedPayload":{"position":{"x":5501.415696002023,"y":17259.98139170737},"targetPosition":{"x":5638.218378089634,"y":17321.503958084555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08167019-4685-45ca-8572-74706f2fb971","savedPayload":{"position":{"x":5638.218378089634,"y":17321.503958084555},"targetPosition":{"x":5775.021060177252,"y":17383.02652446174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Up'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n}","project":"Superalgos","id":"ebab2c53-c230-4622-a5d1-a3e0bd1d4139","savedPayload":{"position":{"x":5524.032731575324,"y":17218.69497269638},"targetPosition":{"x":5649.526895876286,"y":17300.86074857906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5b721945-b84b-4e19-a7db-777bc1c1fee1","savedPayload":{"position":{"x":5649.526895876286,"y":17300.86074857906},"targetPosition":{"x":5775.021060177252,"y":17383.02652446174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Down'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","project":"Superalgos","id":"8bef9d11-9184-420e-a841-97a19f6a160b","savedPayload":{"position":{"x":5552.829932781311,"y":17181.454941875003},"targetPosition":{"x":5663.925496479282,"y":17282.24073316837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a530140d-d0bb-4989-8ca8-d9846adbc91d","savedPayload":{"position":{"x":5663.925496479282,"y":17282.24073316837},"targetPosition":{"x":5775.021060177252,"y":17383.02652446174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"add24099-1310-4e86-99fc-9db01a272b6e","savedPayload":{"position":{"x":5775.021060177252,"y":17383.02652446174},"targetPosition":{"x":6038.128980476282,"y":17527.159179595543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Point","project":"Superalgos","id":"7be4c16d-772a-4750-9735-09d3d9e16037","savedPayload":{"position":{"x":5813.690258094623,"y":17328.09321089248},"targetPosition":{"x":6038.128980476282,"y":17527.159179595543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"New Point","id":"9be61e7d-ae1e-4b39-9ebf-27285a5a67a9"}}},{"type":"Polygon Vertex","name":"New Point","project":"Superalgos","id":"1a592de1-eb28-41eb-8ddb-b22e5034be53","savedPayload":{"position":{"x":5863.613750726701,"y":17283.141896221085},"targetPosition":{"x":6038.128980476282,"y":17527.159179595543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"New Point","id":"f87b3204-8901-4774-afcb-b4e5394e255d"}}},{"type":"Polygon Vertex","name":"New Point","project":"Superalgos","id":"e90a30b1-cd5d-4331-bf74-7cfd4242db34","savedPayload":{"position":{"x":5922.288165690556,"y":17250.426627065524},"targetPosition":{"x":6038.128980476282,"y":17527.159179595543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"New Point","id":"5ce82101-6f77-4f54-bef5-d97edae6d44b"}}},{"type":"Polygon Vertex","name":"New Point","project":"Superalgos","id":"ae4311e5-a02d-46d7-a41c-79e6945f9f21","savedPayload":{"position":{"x":5986.7713228168905,"y":17231.587883628326},"targetPosition":{"x":6038.128980476282,"y":17527.159179595543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"New Point","id":"45dbe6c3-9433-4b6d-8aa5-691cf6eba8a1"}}}],"id":"6e21446c-93e7-44ad-814d-3cd2fa8f8baf","savedPayload":{"position":{"x":6038.128980476282,"y":17527.159179595543},"targetPosition":{"x":6238.86816238394,"y":17750.10262723876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"0b08f6f6-2317-42fb-ab3a-db8957d76dfa","savedPayload":{"position":{"x":6238.86816238394,"y":17750.10262723876},"targetPosition":{"x":6524.1851172724855,"y":17842.807725551243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"o"}}},"panels":[{"type":"Plotter Panel","name":"Bollinger Channels Objects","config":"{ \n\"codeName\": \"Bollinger Channels Objects\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Direction","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.direction","project":"Superalgos","id":"479f9520-4cad-4fe3-a2fc-c7f48d93344d","savedPayload":{"position":{"x":6090.050828740528,"y":17530.272290521698},"targetPosition":{"x":6183.408871390246,"y":17566.10908547623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"24fefe09-fa8d-4904-9c6c-9c775d3866d0","savedPayload":{"position":{"x":6183.408871390246,"y":17566.10908547623},"targetPosition":{"x":6323.445935364827,"y":17619.864277908026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Total Periods","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","project":"Superalgos","id":"69b5e792-b174-4046-9219-786da4601f58","savedPayload":{"position":{"x":6129.159445000583,"y":17462.534180145565},"targetPosition":{"x":6206.874041146282,"y":17525.46621925055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e79b5734-072e-4432-91d5-8f41eef59b26","savedPayload":{"position":{"x":6206.874041146282,"y":17525.46621925055},"targetPosition":{"x":6323.445935364827,"y":17619.864277908026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"First Moving Average","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.firstMovingAverage","project":"Superalgos","id":"b6818aef-a3dc-4d78-9684-46f1ddbf234a","savedPayload":{"position":{"x":6187.286176611069,"y":17410.19663592167},"targetPosition":{"x":6241.750080112575,"y":17494.063692716212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"75fe02cd-776b-45cb-a965-ecbfac163ad4","savedPayload":{"position":{"x":6241.750080112575,"y":17494.063692716212},"targetPosition":{"x":6323.445935364827,"y":17619.864277908026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Last Moving Average","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.lastMovingAverage","project":"Superalgos","id":"25d5ce35-768a-4f5b-b541-65dfdcf77414","savedPayload":{"position":{"x":6258.7411740891985,"y":17378.38282133576},"targetPosition":{"x":6284.6230785994485,"y":17474.975403964665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c5af78de-d153-4002-b6df-79a1fd009100","savedPayload":{"position":{"x":6284.6230785994485,"y":17474.975403964665},"targetPosition":{"x":6323.445935364827,"y":17619.864277908026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"09c8f781-3e54-4bed-bd9a-83e8179fdd66","savedPayload":{"position":{"x":6323.445935364827,"y":17619.864277908026},"targetPosition":{"x":6524.1851172724855,"y":17842.807725551243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"52881346-3e4b-45e0-92d2-af130d381b8e","savedPayload":{"position":{"x":6524.1851172724855,"y":17842.807725551243},"targetPosition":{"x":6775.786287656112,"y":18006.19943605575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Bollinger Sub Channels Objects","config":"{\n\"codeName\": \"Bollinger-Sub-Channels-Objects\",\n\"icon\": \"layer-trends\"\n}","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Definition of the points we are going to use while drawing */\nlet point1\nlet point2\nlet point3\nlet point4\n\npoint1 = {\n x: record.begin,\n y: record.firstMovingAverage - record.firstDeviation\n}\n\npoint2 = {\n x: record.end,\n y: record.lastMovingAverage - record.lastDeviation\n}\n\npoint3 = {\n x: record.end,\n y: record.lastMovingAverage + record.lastDeviation\n}\n\npoint4 = {\n x: record.begin,\n y: record.firstMovingAverage + record.firstDeviation\n}\n\n/* Contributing to Auto-Scale*/\ncoordinateSystem.reportYValue(record.firstMovingAverage - record.firstDeviation)\ncoordinateSystem.reportYValue(record.lastMovingAverage - record.lastDeviation)\ncoordinateSystem.reportYValue(record.lastMovingAverage + record.lastDeviation)\ncoordinateSystem.reportYValue(record.firstMovingAverage + record.firstDeviation)\n\n/*\nThe information we store in files is independent from the charing system and its coordinate systems.\nThat means that the first thing we allways need to do is to trasform these points to the coordinate system of the timeline.\n*/\npoint1 = coordinateSystem.transformThisPoint(point1)\npoint2 = coordinateSystem.transformThisPoint(point2)\npoint3 = coordinateSystem.transformThisPoint(point3)\npoint4 = coordinateSystem.transformThisPoint(point4)\n\n/*\nThe browser canvas object does not care about our timeline and its coordinate system. In order to draw on a html canvas we\nneed the points to be converted into the canvas coordinate system.\nNext we transform again to the screen coordinate system.\n*/\npoint1 = UI.projects.superalgos.utilities.coordinateTransformations.transformThisPoint(point1, thisObject.container)\npoint2 = UI.projects.superalgos.utilities.coordinateTransformations.transformThisPoint(point2, thisObject.container)\npoint3 = UI.projects.superalgos.utilities.coordinateTransformations.transformThisPoint(point3, thisObject.container)\npoint4 = UI.projects.superalgos.utilities.coordinateTransformations.transformThisPoint(point4, thisObject.container)\n\n/* We make sure the points do not fall outside the UI.projects.superalgos.spaces.chartingSpace.viewport visible area. This step allways need to be done. */\npoint1 = UI.projects.superalgos.spaces.chartingSpace.viewport.fitIntoVisibleArea(point1)\npoint2 = UI.projects.superalgos.spaces.chartingSpace.viewport.fitIntoVisibleArea(point2)\npoint3 = UI.projects.superalgos.spaces.chartingSpace.viewport.fitIntoVisibleArea(point3)\npoint4 = UI.projects.superalgos.spaces.chartingSpace.viewport.fitIntoVisibleArea(point4)\n\npoint1 = thisObject.fitFunction(point1);\npoint2 = thisObject.fitFunction(point2);\npoint3 = thisObject.fitFunction(point3);\npoint4 = thisObject.fitFunction(point4);\n\n/*\nNow that we have our 4 points as coordinates of the actual screen (or html canvas object), we can actaully start drawing.\nFirst we are going to draw the shape backgound.\n*/\nbrowserCanvasContext.beginPath()\n\nbrowserCanvasContext.moveTo(point1.x, point1.y)\nbrowserCanvasContext.lineTo(point2.x, point2.y)\nbrowserCanvasContext.lineTo(point3.x, point3.y)\nbrowserCanvasContext.lineTo(point4.x, point4.y)\n\nbrowserCanvasContext.closePath()\n\nlet opacity = '0.25' // The backgound will be quite transparent. Possible values goes from 0..1\n\n/* Depending on the direction of the channel, we use a different color for the border lines. */\nif (record.direction === 'Side') { browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.DARK + ', ' + opacity + ')' }\nif (record.direction === 'Up') { browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.PATINATED_TURQUOISE + ', ' + opacity + ')' }\nif (record.direction === 'Down') { browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.RED + ', ' + opacity + ')' }\n\nswitch (record.slope) {\n case 'Side': {\n opacity = '0.1';\n break;\n }\n case 'Gentle': {\n opacity = '0.1';\n break;\n }\n case 'Medium': {\n opacity = '0.15';\n break;\n }\n case 'Steep': {\n opacity = '0.2';\n break;\n }\n case 'Extreme': {\n opacity = '0.25';\n break;\n }\n}\n\n/* Depending on the direction of the channel, we use a different color for the background. */\nif (record.direction === 'Side' || record.slope === 'Side') { browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.LIGHT + ', ' + opacity + ')'; }\nif (record.direction === 'Up') { browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.GREEN + ', ' + opacity + ')' }\nif (record.direction === 'Down') { browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.RUSTED_RED + ', ' + opacity + ')' }\n\n/* If the mouse is positioned in betwheen the begining and ending of our object, we can opt for changing the color of that specific object. */\nif (atMousePosition) {\n browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', 0.1)'\n}\n\nbrowserCanvasContext.fill() // This is what actually apply the previous instructions on the html canvas object of the browser.\n\n/* Second we are going to draw the shape borders. */\nbrowserCanvasContext.beginPath()\n\nbrowserCanvasContext.moveTo(point1.x, point1.y)\nbrowserCanvasContext.lineTo(point2.x, point2.y)\nbrowserCanvasContext.lineTo(point3.x, point3.y)\nbrowserCanvasContext.lineTo(point4.x, point4.y)\n\nbrowserCanvasContext.closePath()\n\nbrowserCanvasContext.lineWidth = 1 // We use 1 as standard line width\nbrowserCanvasContext.setLineDash([0, 0]) // We do not want dashed lines in this case.\nbrowserCanvasContext.stroke() // This actually draw the borders of our shape.","project":"Superalgos","id":"63406674-a797-430a-96c7-e5bcacb286bc","savedPayload":{"position":{"x":6344.285072028677,"y":17596.72007193092},"targetPosition":{"x":6586.99017034116,"y":17773.05564761866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"panels":[{"type":"Plotter Panel","name":"Bollinger Sub Channels Objects","config":"{ \n\"codeName\": \"Bollinger Sub Channels Objects\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Direction","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.direction","project":"Superalgos","id":"f1793208-a0a5-49a5-a21c-88f848563433","savedPayload":{"position":{"x":6262.714928824684,"y":17352.04569725276},"targetPosition":{"x":6343.616628262178,"y":17410.82422248201},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"029cc150-77ee-44eb-b52b-4c83f0d79e6a","savedPayload":{"position":{"x":6343.616628262178,"y":17410.82422248201},"targetPosition":{"x":6464.969177418421,"y":17498.99201032588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Total Periods","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","project":"Superalgos","id":"f09cfc38-2f4e-4f5f-b6fe-3f8255657081","savedPayload":{"position":{"x":6307.639079655961,"y":17304.70551996164},"targetPosition":{"x":6370.571118760945,"y":17382.420116107336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6020f40d-2141-4f21-b4ae-3a4f32073eda","savedPayload":{"position":{"x":6370.571118760945,"y":17382.420116107336},"targetPosition":{"x":6464.969177418421,"y":17498.99201032588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"First Moving Average","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.firstMovingAverage","project":"Superalgos","id":"be429ff9-1656-4db6-8ddb-758ca900d6f0","savedPayload":{"position":{"x":6363.285016649472,"y":17270.605645915228},"targetPosition":{"x":6403.95868095705,"y":17361.96019167949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ab7f25ee-dad0-4b3e-80b1-a9fcffde8424","savedPayload":{"position":{"x":6403.95868095705,"y":17361.96019167949},"targetPosition":{"x":6464.969177418421,"y":17498.99201032588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Last Moving Average","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.lastMovingAverage","project":"Superalgos","id":"5501c8e2-7406-453a-9cae-75f8628e321f","savedPayload":{"position":{"x":6425.8605611583625,"y":17252.069925177097},"targetPosition":{"x":6441.5040076623845,"y":17350.83875923661},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e0df05de-65cf-45da-a0b5-ee6ce21b4ed8","savedPayload":{"position":{"x":6441.5040076623845,"y":17350.83875923661},"targetPosition":{"x":6464.969177418421,"y":17498.99201032588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Slope","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.slope","project":"Superalgos","id":"567bc3e1-3a15-43f1-9bf4-625c7ad1cad8","savedPayload":{"position":{"x":6491.101293235333,"y":17250.36153648381},"targetPosition":{"x":6480.648446908566,"y":17349.81372602064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c6f2ce73-44ac-4515-bcc3-b394fa3a66e4","savedPayload":{"position":{"x":6480.648446908566,"y":17349.81372602064},"targetPosition":{"x":6464.969177418421,"y":17498.99201032588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8ce4c7ca-3496-4df8-9d57-335d40cc77a0","savedPayload":{"position":{"x":6464.969177418421,"y":17498.99201032588},"targetPosition":{"x":6586.99017034116,"y":17773.05564761866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f8c4b699-1f40-4832-b427-68da3341daa8","savedPayload":{"position":{"x":6586.99017034116,"y":17773.05564761866},"targetPosition":{"x":6775.786287656112,"y":18006.19943605575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"x"}}},{"type":"Plotter Module","name":"Bollinger Channels","config":"{\n\"codeName\": \"Bollinger-Channels\",\n \"icon\": \"layer-trends\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Bollinger Channels","config":"{ \n\"codeName\": \"Bollinger Channels\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Direction","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.direction","project":"Superalgos","id":"f1bb6cde-263f-4582-aeef-8e0bed99d53f","savedPayload":{"position":{"x":6413.819204855816,"y":17243.796931563695},"targetPosition":{"x":6472.597730085061,"y":17324.69863100119},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b7afdb03-dc66-4f9a-b3c7-e8886521b7cc","savedPayload":{"position":{"x":6472.597730085061,"y":17324.69863100119},"targetPosition":{"x":6560.765517928932,"y":17446.051180157432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","project":"Superalgos","id":"991dd9e3-c5d0-4a61-953a-81b3ee218695","savedPayload":{"position":{"x":6534.63340211202,"y":17197.420706315363},"targetPosition":{"x":6545.0862484387835,"y":17296.87289585219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1fbd683b-9294-456f-9464-97d887a49cdc","savedPayload":{"position":{"x":6545.0862484387835,"y":17296.87289585219},"targetPosition":{"x":6560.765517928932,"y":17446.051180157432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"abb4f289-c374-43e0-b8dc-d586d8e3328e","savedPayload":{"position":{"x":6560.765517928932,"y":17446.051180157432},"targetPosition":{"x":6668.275902792524,"y":17726.12530810659},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a045ea45-c8ff-49a5-86cd-5d38cd3e6d22","savedPayload":{"position":{"x":6668.275902792524,"y":17726.12530810659},"targetPosition":{"x":6775.786287656112,"y":18006.19943605575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Bollinger Sub Channels","config":"{\n\"codeName\": \"Bollinger-Sub-Channels\",\n\"icon\": \"layer-trends\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Bollinger Sub Channels","config":"{ \n\"codeName\": \"Bollinger Sub Channels\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Direction","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.direction","project":"Superalgos","id":"6b969637-0945-4ae4-970c-49f8fd940fd2","savedPayload":{"position":{"x":6636.756939708273,"y":17181.375394115545},"targetPosition":{"x":6679.808049389099,"y":17271.63392255053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"67136278-2bc4-4814-b71a-0fd87c85b422","savedPayload":{"position":{"x":6679.808049389099,"y":17271.63392255053},"targetPosition":{"x":6744.384713910345,"y":17407.02171520301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","project":"Superalgos","id":"0e6dcc09-7f32-431f-ab15-08764e0ad29b","savedPayload":{"position":{"x":6731.300724849611,"y":17157.364331514364},"targetPosition":{"x":6736.534320473904,"y":17257.22728498982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"24f260af-1679-444e-9d08-17f39b3af2a8","savedPayload":{"position":{"x":6736.534320473904,"y":17257.22728498982},"targetPosition":{"x":6744.384713910345,"y":17407.02171520301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Slope","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.slope","project":"Superalgos","id":"bd4510b2-1062-4142-81b7-207b292d36c6","savedPayload":{"position":{"x":6827.836428718791,"y":17171.361342429966},"targetPosition":{"x":6794.45574279541,"y":17265.625491539184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c520fa0d-f783-4f91-8951-d83cfe470522","savedPayload":{"position":{"x":6794.45574279541,"y":17265.625491539184},"targetPosition":{"x":6744.384713910345,"y":17407.02171520301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1beae26c-7235-46ef-a732-1d0c9f18dda5","savedPayload":{"position":{"x":6744.384713910345,"y":17407.02171520301},"targetPosition":{"x":6760.085500783229,"y":17706.61057562938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"88bdc751-5a1d-499d-a4ba-888dbcf6dc7a","savedPayload":{"position":{"x":6760.085500783229,"y":17706.61057562938},"targetPosition":{"x":6775.786287656112,"y":18006.19943605575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"343f37be-cc77-4513-a296-7925edfcf0c4","savedPayload":{"position":{"x":6775.786287656112,"y":18008.19943605575},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Plotter Candles Channels","config":"{\n\"codeName\" : \"Candles Channels\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Candles Channels","config":"{ \n\"codeName\": \"Candles Channels\",\n\"icon\": \"layer-trends\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Candles Channels","config":"{ \n\"codeName\": \"Candles Channels\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Direction","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.direction","project":"Superalgos","id":"34e4348e-6bc2-4626-8d84-070efa8e81e2","savedPayload":{"position":{"x":6554.95609463541,"y":17409.51733849713},"targetPosition":{"x":6619.234855604063,"y":17486.12178280903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"eeb8fe38-bb85-441a-933f-d44fc990d037","savedPayload":{"position":{"x":6619.234855604063,"y":17486.12178280903},"targetPosition":{"x":6683.51361657272,"y":17562.72622712093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","project":"Superalgos","id":"facfde0d-c82e-40f5-9659-2b844def9ddd","savedPayload":{"position":{"x":6648.783981039331,"y":17365.764676518487},"targetPosition":{"x":6666.148798806025,"y":17464.24545181971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7991ff70-72ba-44e0-a980-75f0b13672b5","savedPayload":{"position":{"x":6666.148798806025,"y":17464.24545181971},"targetPosition":{"x":6683.51361657272,"y":17562.72622712093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d21f5c62-0455-4671-89c1-f9d96a75f349","savedPayload":{"position":{"x":6683.51361657272,"y":17562.72622712093},"targetPosition":{"x":6746.906355833824,"y":17698.672395176425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"864f26cb-b191-47c1-801e-57bb2436294e","savedPayload":{"position":{"x":6746.906355833824,"y":17698.672395176425},"targetPosition":{"x":6873.691834356032,"y":17970.56473128742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Candles Channels Objects","config":"{ \n\"codeName\": \"Candles Channels Objects\",\n\"icon\": \"layer-trends\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"First Min","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.firstMin","project":"Superalgos","id":"35f51e5f-816b-4067-9c32-b6a95aae79a3","savedPayload":{"position":{"x":6413.750762789125,"y":16968.003826995136},"targetPosition":{"x":6534.329291881706,"y":17057.227245007838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"91a70976-e9d9-4d8e-9f83-719cab4d1497","savedPayload":{"position":{"x":6534.329291881706,"y":17057.227245007838},"targetPosition":{"x":6654.907820974291,"y":17146.45066302054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Last Min","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.lastMin","project":"Superalgos","id":"f4c70158-779d-4ea9-a50c-1610ded698f5","savedPayload":{"position":{"x":6444.635041684334,"y":16932.475528274288},"targetPosition":{"x":6549.771431329311,"y":17039.463095647414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"588627dd-bbc9-4ca5-b413-52dd000e6f30","savedPayload":{"position":{"x":6549.771431329311,"y":17039.463095647414},"targetPosition":{"x":6654.907820974291,"y":17146.45066302054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Last Max","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.lastMax","project":"Superalgos","id":"02969b43-c942-49a2-a50c-3b11f20dc61c","savedPayload":{"position":{"x":6480.696934261006,"y":16902.216007513645},"targetPosition":{"x":6567.802377617649,"y":17024.333335267092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eb4d4b7c-cb3c-4855-8016-88a4df1b667b","savedPayload":{"position":{"x":6567.802377617649,"y":17024.333335267092},"targetPosition":{"x":6654.907820974291,"y":17146.45066302054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"First Max","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.firstMax","project":"Superalgos","id":"6a44702b-c381-4dc2-beaa-005d5dfc7e59","savedPayload":{"position":{"x":6521.048477041346,"y":16877.970354539935},"targetPosition":{"x":6587.978149007817,"y":17012.210508780237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7cf30b7b-b68a-46e4-9c89-65fa7859be97","savedPayload":{"position":{"x":6587.978149007817,"y":17012.210508780237},"targetPosition":{"x":6654.907820974291,"y":17146.45066302054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cfed2fd2-3791-4c86-ac53-f248831fa7a1","savedPayload":{"position":{"x":6654.907820974291,"y":17146.45066302054},"targetPosition":{"x":6847.74410388025,"y":17376.263995956233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"e06b5939-31b9-477b-81a2-1aaf3475144e","savedPayload":{"position":{"x":6750.381984368356,"y":16534.10681640123},"targetPosition":{"x":6887.245181574301,"y":16801.068359044668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Side'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.LIGHT\"\n}","project":"Superalgos","id":"8bf6a1ad-69e9-44ff-8e3a-4f70fe523572","savedPayload":{"position":{"x":6685.551501673126,"y":16235.984595795428},"targetPosition":{"x":6786.398341623713,"y":16518.526477420048},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"76a1c12f-0b87-40c2-9dae-6768884a5076","savedPayload":{"position":{"x":6786.398341623713,"y":16518.526477420048},"targetPosition":{"x":6887.245181574301,"y":16801.068359044668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Up'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR. GREEN\"\n}","project":"Superalgos","id":"a57b9ead-b4b8-40e3-82df-1461cad237c0","savedPayload":{"position":{"x":6761.035250967005,"y":16214.492657693085},"targetPosition":{"x":6824.1402162706545,"y":16507.780508368876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d3d09c74-7274-4fce-8413-815c1ad546ee","savedPayload":{"position":{"x":6824.1402162706545,"y":16507.780508368876},"targetPosition":{"x":6887.245181574301,"y":16801.068359044668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Down'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","project":"Superalgos","id":"2f1ff3f4-94a9-4a3d-b290-fbde30b79e7e","savedPayload":{"position":{"x":6838.67848716558,"y":16203.037192470376},"targetPosition":{"x":6862.96183436994,"y":16502.052775757522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"75f374ef-accc-444d-856f-ba01eba29ced","savedPayload":{"position":{"x":6862.96183436994,"y":16502.052775757522},"targetPosition":{"x":6887.245181574301,"y":16801.068359044668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"atMousePosition === true","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.1\n}","project":"Superalgos","id":"4361ea11-4004-44d7-a94c-9bf27aa75a64","savedPayload":{"position":{"x":6917.152712970721,"y":16201.814206313316},"targetPosition":{"x":6902.198947272511,"y":16501.441282678992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"db98a447-4c7f-43bd-9b9f-d94978b05e14","savedPayload":{"position":{"x":6902.198947272511,"y":16501.441282678992},"targetPosition":{"x":6887.245181574301,"y":16801.068359044668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a7862bd3-6421-4855-86aa-6b2f86b9dde2","savedPayload":{"position":{"x":6887.245181574301,"y":16801.068359044668},"targetPosition":{"x":6950.3501468779505,"y":17094.35620972046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"702d82d3-6978-4c3e-8ffc-cd6f33318efd","savedPayload":{"position":{"x":6920.894238146819,"y":16648.09883748263},"targetPosition":{"x":6954.090041256575,"y":16794.379521976167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Side'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK\"\n}","project":"Superalgos","id":"875f9634-88be-4f74-8adc-bb6b5b284a96","savedPayload":{"position":{"x":6934.282507129108,"y":16495.034133516965},"targetPosition":{"x":6944.186274192842,"y":16644.706827746566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6a9f57c4-7ce6-45b3-a2c2-82ff785f32e4","savedPayload":{"position":{"x":6944.186274192842,"y":16644.706827746566},"targetPosition":{"x":6954.090041256575,"y":16794.379521976167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Up'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n}","project":"Superalgos","id":"3bbfe7c5-b635-4b18-94b5-06ac68408de9","savedPayload":{"position":{"x":6981.354306448808,"y":16495.6209909791},"targetPosition":{"x":6967.722173852693,"y":16645.000256477633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b99aaa3f-25d7-4570-b689-60eb4200b42c","savedPayload":{"position":{"x":6967.722173852693,"y":16645.000256477633},"targetPosition":{"x":6954.090041256575,"y":16794.379521976167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Down'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","project":"Superalgos","id":"897c7976-49b7-401c-a3f0-5d5a5f4edfca","savedPayload":{"position":{"x":7027.7547690745705,"y":16503.564274997094},"targetPosition":{"x":6990.922405165573,"y":16648.97189848663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"06096ed6-281e-4075-a709-2fd07c18fa9c","savedPayload":{"position":{"x":6990.922405165573,"y":16648.97189848663},"targetPosition":{"x":6954.090041256575,"y":16794.379521976167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7c42653b-6268-4c6b-ab1c-522e044bc761","savedPayload":{"position":{"x":6954.090041256575,"y":16794.379521976167},"targetPosition":{"x":6950.3501468779505,"y":17094.35620972046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"First Min","project":"Superalgos","id":"67773b40-e975-42a8-b994-b94ff359cc52","savedPayload":{"position":{"x":7020.747367018266,"y":16802.732768624726},"targetPosition":{"x":6950.3501468779505,"y":17094.35620972046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"First Min","id":"91a70976-e9d9-4d8e-9f83-719cab4d1497"}}},{"type":"Polygon Vertex","name":"Last Min","project":"Superalgos","id":"edd79469-619d-4723-b678-1c415b3ebecb","savedPayload":{"position":{"x":7083.874682208927,"y":16825.70923232327},"targetPosition":{"x":6950.3501468779505,"y":17094.35620972046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Last Min","id":"588627dd-bbc9-4ca5-b413-52dd000e6f30"}}},{"type":"Polygon Vertex","name":"Last Max","project":"Superalgos","id":"5a204cef-fd62-4c53-af97-79f9963f70cb","savedPayload":{"position":{"x":7140.306519648195,"y":16862.15677724059},"targetPosition":{"x":6950.3501468779505,"y":17094.35620972046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Last Max","id":"eb4d4b7c-cb3c-4855-8016-88a4df1b667b"}}},{"type":"Polygon Vertex","name":"First Max","project":"Superalgos","id":"32e5e2d7-3818-4e0c-b36f-712da90e4025","savedPayload":{"position":{"x":7187.2131513680215,"y":16910.247771282844},"targetPosition":{"x":6950.3501468779505,"y":17094.35620972046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"First Max","id":"7cf30b7b-b68a-46e4-9c89-65fa7859be97"}}}],"id":"5383ea8f-c9ed-463e-a7d4-dc5cb6c40dff","savedPayload":{"position":{"x":6950.3501468779505,"y":17094.35620972046},"targetPosition":{"x":6847.74410388025,"y":17376.263995956233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"9651d021-d2af-4172-bc8f-7265407cf181","savedPayload":{"position":{"x":6847.74410388025,"y":17376.263995956233},"targetPosition":{"x":6899.83855718033,"y":17671.706321859896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"o"}}},"panels":[{"type":"Plotter Panel","name":"Candles Channels Objects","config":"{ \n\"codeName\": \"Candles Channels Objects\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Direction","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.direction","project":"Superalgos","id":"daf86ccc-bbf4-4a18-bcd8-583ded1b98a7","savedPayload":{"position":{"x":7188.993613859624,"y":17479.756060661486},"targetPosition":{"x":7112.389169547725,"y":17544.03482163014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"73bc1fd7-799b-4b19-98fa-856575b9ad33","savedPayload":{"position":{"x":7112.389169547725,"y":17544.03482163014},"targetPosition":{"x":7035.78472523583,"y":17608.313582598792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Total Periods","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","project":"Superalgos","id":"32edb120-129e-4734-bfd1-224213e3e8f8","savedPayload":{"position":{"x":7232.746275838272,"y":17573.583947065403},"targetPosition":{"x":7134.265500537051,"y":17590.948764832097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6384ead6-8afc-490a-a6db-055b7b622877","savedPayload":{"position":{"x":7134.265500537051,"y":17590.948764832097},"targetPosition":{"x":7035.78472523583,"y":17608.313582598792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8b63674c-b728-4a00-8b3c-331d7ba2a93b","savedPayload":{"position":{"x":7035.78472523583,"y":17608.313582598792},"targetPosition":{"x":6899.83855718033,"y":17671.706321859896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7aa1e889-ae4f-4945-b0e5-9ad87ded05a5","savedPayload":{"position":{"x":6899.83855718033,"y":17671.706321859896},"targetPosition":{"x":6873.691834356032,"y":17970.56473128742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7c38b69d-fabc-4ca6-b35e-6fef6f1d8b13","savedPayload":{"position":{"x":6873.691834356033,"y":17972.56473128742},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Resistances And Supports","config":"{ \n\"codeName\": \"Resistances-And-Supports\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Resistances","config":"{ \n\"codeName\": \"Resistances-And-Supports\",\n\"icon\": \"layer-resistance\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Base Resistance","project":"Superalgos","points":[{"type":"Point","name":"Base Left","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin - (record.end - record.begin)\ny = record.rateResistance","project":"Superalgos","id":"5781a245-e686-4b11-a000-2fa096a32d87","savedPayload":{"position":{"x":10160.64019886357,"y":8860.470623209347},"targetPosition":{"x":10859.185306432435,"y":8243.406461509127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6e8169a3-28a2-412f-8100-577c4a9a97bb","savedPayload":{"position":{"x":10859.185306432435,"y":8243.406461509127},"targetPosition":{"x":11557.75149974702,"y":7626.311048237983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Base Right","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end- (record.end - record.begin)\ny = record.rateResistance","project":"Superalgos","id":"5a15539d-b94c-4110-a165-9a3bb5fc4fed","savedPayload":{"position":{"x":9730.622705384787,"y":7996.432446799141},"targetPosition":{"x":10644.152617026488,"y":7811.366440669799},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b23883d4-d592-4d0a-822e-82165e22598f","savedPayload":{"position":{"x":10644.152617026488,"y":7811.366440669799},"targetPosition":{"x":11557.75149974702,"y":7626.311048237983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8da1ef7b-5f0a-477b-9179-2c09c2fbdeb8","savedPayload":{"position":{"x":6249.163511340699,"y":17970.87244968553},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Resistance Levels","project":"Superalgos","points":[{"type":"Point","name":"Begin 1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance1Rate","project":"Superalgos","id":"3c34f0a9-1a8e-4452-803c-ea488111c3a5","savedPayload":{"position":{"x":12059.564957052662,"y":10301.386103605379},"targetPosition":{"x":11903.917502510143,"y":9691.441241462462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2a3a3e15-93dd-43f0-95f7-ae2ed478607f","savedPayload":{"position":{"x":11903.917502510143,"y":9691.441241462462},"targetPosition":{"x":11742.569411727927,"y":9081.793204056443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance1Rate","project":"Superalgos","id":"d1968565-ac35-4c42-9760-2b46f17bae96","savedPayload":{"position":{"x":11879.933902586617,"y":10334.649129244044},"targetPosition":{"x":11812.773699876088,"y":9708.762138166945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fe77f4a2-627c-4f27-9d4c-2dab9ddd8926","savedPayload":{"position":{"x":11812.773699876088,"y":9708.762138166945},"targetPosition":{"x":11742.569411727927,"y":9081.793204056443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance2Rate","project":"Superalgos","id":"fe7ad1f2-d9b5-4e47-af1c-7d29b86e1a0a","savedPayload":{"position":{"x":11699.0122111411,"y":10341.628559531797},"targetPosition":{"x":11721.38955043843,"y":9712.566639697125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"71ddeaf4-849d-4973-9b6a-a2ddcaccb86d","savedPayload":{"position":{"x":11721.38955043843,"y":9712.566639697125},"targetPosition":{"x":11742.569411727927,"y":9081.793204056443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance2Rate","project":"Superalgos","id":"992d9a81-4292-4943-bc67-c6ce84ed7e3a","savedPayload":{"position":{"x":11519.390289931336,"y":10322.438210499726},"targetPosition":{"x":11631.09039421289,"y":9703.036299600622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"19746197-9ebc-4af8-b4ba-8217fa0eba77","savedPayload":{"position":{"x":11631.09039421289,"y":9703.036299600622},"targetPosition":{"x":11742.569411727927,"y":9081.793204056443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance3Rate","project":"Superalgos","id":"c29b8386-bb00-4b15-92ee-fa280c7b721f","savedPayload":{"position":{"x":11344.63301599169,"y":10277.856078309616},"targetPosition":{"x":11543.400023446815,"y":9680.755540734512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"febd94d0-09c7-40c5-b7b2-552ca2cca2b9","savedPayload":{"position":{"x":11543.400023446815,"y":9680.755540734512},"targetPosition":{"x":11742.569411727927,"y":9081.793204056443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance3Rate","project":"Superalgos","id":"ff8a40a3-ebed-4e5a-854b-2ca20f2bc441","savedPayload":{"position":{"x":11178.232119455603,"y":10208.975563790687},"targetPosition":{"x":11459.956621028901,"y":9646.202740165694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7003801a-ea76-43e2-a013-72e6d41aff5c","savedPayload":{"position":{"x":11459.956621028901,"y":9646.202740165694},"targetPosition":{"x":11742.569411727927,"y":9081.793204056443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance4Rate","project":"Superalgos","id":"f927d491-29ca-4b19-aa80-c413e4148b38","savedPayload":{"position":{"x":11023.397901079203,"y":10117.104781862205},"targetPosition":{"x":11382.383843099386,"y":9600.113852720951},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"12059a23-6280-499c-8ebc-f8c0de0e5647","savedPayload":{"position":{"x":11382.383843099386,"y":9600.113852720951},"targetPosition":{"x":11742.569411727927,"y":9081.793204056443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance4Rate","project":"Superalgos","id":"8a5e95cc-9871-49e8-a610-bff6fc2883a4","savedPayload":{"position":{"x":10883.226349107277,"y":10004.151401197325},"targetPosition":{"x":11312.168788343173,"y":9543.501456532762},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2e5e4668-102d-4d9a-addc-9b154e7889a9","savedPayload":{"position":{"x":11312.168788343173,"y":9543.501456532762},"targetPosition":{"x":11742.569411727927,"y":9081.793204056443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance5Rate","project":"Superalgos","id":"ac834b1e-4605-456b-8861-2fcf9f2eb9db","savedPayload":{"position":{"x":10760.632090853029,"y":9872.298331959159},"targetPosition":{"x":11250.82823638896,"y":9477.413516711147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1cebdfa8-d6f3-44fb-bf7e-0f8bfaeff946","savedPayload":{"position":{"x":11250.82823638896,"y":9477.413516711147},"targetPosition":{"x":11742.569411727927,"y":9081.793204056443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance5Rate","project":"Superalgos","id":"b8fc5e20-494e-471d-8f0e-97d42a64094b","savedPayload":{"position":{"x":10652.883902763533,"y":9713.837900534652},"targetPosition":{"x":11194.364489542266,"y":9392.876098783325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bbc97ad3-5c93-460f-8463-127d21e3dca4","savedPayload":{"position":{"x":11194.364489542266,"y":9392.876098783325},"targetPosition":{"x":11742.569411727927,"y":9081.793204056443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d0075edc-e3f2-4d8f-84ba-900c9b431782","savedPayload":{"position":{"x":6184.936258074344,"y":17933.475497139138},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Resistance Zone 1","project":"Superalgos","points":[{"type":"Point","name":"Begin - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance1Rate - record.resistance1Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"a86b7e96-ad20-45e9-85f9-811c71852651","savedPayload":{"position":{"x":10908.636076997664,"y":7788.704166235226},"targetPosition":{"x":11095.436482018602,"y":7647.79913927981},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0c275c7e-5012-454c-8772-a3c2f1621567","savedPayload":{"position":{"x":11095.436482018602,"y":7647.79913927981},"targetPosition":{"x":11468.456967720584,"y":7366.465209823147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance1Rate - record.resistance1Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"39fdd36d-0413-47d2-92d9-3257837c89de","savedPayload":{"position":{"x":10789.483416695162,"y":7619.652301078884},"targetPosition":{"x":11022.157392646095,"y":7535.622696148534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e4ca8d91-e86c-4b97-b327-a1a631b28ade","savedPayload":{"position":{"x":11022.157392646095,"y":7535.622696148534},"targetPosition":{"x":11468.456967720584,"y":7366.465209823147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance1Rate + record.resistance1Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"e9e224f5-1483-4d72-97f7-13cbd566ce75","savedPayload":{"position":{"x":10771.128961306767,"y":7425.140917749181},"targetPosition":{"x":10994.247816534138,"y":7390.745790183633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1614af55-2a6c-40a5-9339-958d2944f719","savedPayload":{"position":{"x":10994.247816534138,"y":7390.745790183633},"targetPosition":{"x":11468.456967720584,"y":7366.465209823147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance1Rate + record.resistance1Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"552f846f-64f1-4d31-b37d-2da573c20b7f","savedPayload":{"position":{"x":10824.342465907263,"y":7155.737936453245},"targetPosition":{"x":11045.507183042646,"y":7224.134984213325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e6764b3a-2fdb-4df1-abde-1f6e9fca5a27","savedPayload":{"position":{"x":11045.507183042646,"y":7224.134984213325},"targetPosition":{"x":11468.456967720584,"y":7366.465209823147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1db48443-fc08-4f05-bf9e-4be80c377fe2","savedPayload":{"position":{"x":6127.740316910684,"y":17886.01713184596},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Resistance Zone 2","project":"Superalgos","points":[{"type":"Point","name":"Begin - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance2Rate - record.resistance2Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"31533409-bde7-41ad-b252-1c80e8874519","savedPayload":{"position":{"x":10863.64400266398,"y":7659.09672176588},"targetPosition":{"x":11061.725319119592,"y":7534.595809015913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"055d64bb-b823-4593-b606-4f0a35ac620a","savedPayload":{"position":{"x":11061.725319119592,"y":7534.595809015913},"targetPosition":{"x":11457.295448358629,"y":7285.985673057974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance2Rate - record.resistance2Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"ab6b9bed-1420-4c4f-b572-73274d1beeff","savedPayload":{"position":{"x":10759.150740364355,"y":7478.003279960283},"targetPosition":{"x":10998.928980181645,"y":7413.79948403058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6d8e2772-7475-406d-b048-4599982d04e2","savedPayload":{"position":{"x":10998.928980181645,"y":7413.79948403058},"targetPosition":{"x":11457.295448358629,"y":7285.985673057974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance2Rate + record.resistance2Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"54021cad-c5f9-4756-94a4-6216e9e0bcf7","savedPayload":{"position":{"x":10758.04773805499,"y":7286.6882299415465},"targetPosition":{"x":10985.562129731821,"y":7270.443438781498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d3cc8bbf-1f3e-49bc-9331-5e498064cb88","savedPayload":{"position":{"x":10985.562129731821,"y":7270.443438781498},"targetPosition":{"x":11457.295448358629,"y":7285.985673057974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance2Rate + record.resistance2Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"e44758af-409b-4797-ac44-0cdc0928dfa4","savedPayload":{"position":{"x":10833.626282454006,"y":7024.440369273133},"targetPosition":{"x":11043.492517547038,"y":7110.031934978032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e2c53993-70fa-48f0-96b0-3c73a3baa50f","savedPayload":{"position":{"x":11043.492517547038,"y":7110.031934978032},"targetPosition":{"x":11457.295448358629,"y":7285.985673057974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2881845a-2d94-42f8-bffd-12b8f0674dc6","savedPayload":{"position":{"x":6079.1358440259755,"y":17829.791894296464},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Resistance Zone 3","project":"Superalgos","points":[{"type":"Point","name":"Begin - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance3Rate - record.resistance3Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"b863599f-a422-4d49-be0c-5962371d571d","savedPayload":{"position":{"x":10833.323641650546,"y":7530.689465639097},"targetPosition":{"x":11041.148359727125,"y":7423.618740061745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e18fe7d1-bb71-4228-89ad-6eef714ec53f","savedPayload":{"position":{"x":11041.148359727125,"y":7423.618740061745},"targetPosition":{"x":11456.103352418591,"y":7209.851545773281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance3Rate - record.resistance3Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"aa5baeac-1910-4f48-a6c2-b3ffb7293d4a","savedPayload":{"position":{"x":10764.350053452694,"y":7322.083130816976},"targetPosition":{"x":10995.273606916482,"y":7284.682103142071},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"30f76ba8-3516-4b19-bb42-ae4613d5ce10","savedPayload":{"position":{"x":10995.273606916482,"y":7284.682103142071},"targetPosition":{"x":11456.103352418591,"y":7209.851545773281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance3Rate + record.resistance3Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"a6a1afe8-e380-4979-ba63-703903bc50db","savedPayload":{"position":{"x":10763.32498397609,"y":7103.238342896862},"targetPosition":{"x":10994.65462017803,"y":7138.7876137210305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fc07018f-23a9-46dc-bb6a-f6ddac68be6c","savedPayload":{"position":{"x":10994.65462017803,"y":7138.7876137210305},"targetPosition":{"x":11456.103352418591,"y":7209.851545773281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance3Rate + record.resistance3Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"84cba419-b3e2-4cfc-9c32-69a2a56aa550","savedPayload":{"position":{"x":10830.609907476246,"y":6893.86356422493},"targetPosition":{"x":11039.31789951558,"y":6999.355859493249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d4105484-8b89-48f5-af7f-964d2e541120","savedPayload":{"position":{"x":11039.31789951558,"y":6999.355859493249},"targetPosition":{"x":11456.103352418591,"y":7209.851545773281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a833c73a-2d81-40b3-9d44-3388046804ce","savedPayload":{"position":{"x":6040.448642738109,"y":17766.33346240275},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Resistance Zone 4","project":"Superalgos","points":[{"type":"Point","name":"Begin - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance4Rate - record.resistance4Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"02bf9b17-6651-4e71-bef8-8bb2ba8fe6b3","savedPayload":{"position":{"x":10809.072636304252,"y":7394.122336126922},"targetPosition":{"x":11025.318834723254,"y":7305.089731706234},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"79408eb2-e914-4f85-96c6-0baa918f5f91","savedPayload":{"position":{"x":11025.318834723254,"y":7305.089731706234},"targetPosition":{"x":11457.209060973652,"y":7127.172223298096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance4Rate - record.resistance4Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"64545435-1cc4-4cd5-9c6e-700f76fb976d","savedPayload":{"position":{"x":10758.186539830509,"y":7180.438786292131},"targetPosition":{"x":10991.443947657273,"y":7162.698431793807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9479606b-5668-40a4-8e34-40976668e11b","savedPayload":{"position":{"x":10991.443947657273,"y":7162.698431793807},"targetPosition":{"x":11457.209060973652,"y":7127.172223298096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance4Rate + record.resistance4Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"fc0e0a28-306b-42cc-95b2-d0264ca224b3","savedPayload":{"position":{"x":10775.901692849107,"y":6962.0807231045765},"targetPosition":{"x":11003.251720224107,"y":7017.139536521219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"09f1f62c-723a-4588-ae76-d195aa1cb276","savedPayload":{"position":{"x":11003.251720224107,"y":7017.139536521219},"targetPosition":{"x":11457.209060973652,"y":7127.172223298096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance4Rate + record.resistance4Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"1a8ba3fb-7c20-4c56-a7e5-e9bb8ab8b00b","savedPayload":{"position":{"x":10860.474908388958,"y":6759.387977509147},"targetPosition":{"x":11059.576325338276,"y":6882.071946768019},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"98ef8287-1ef2-498f-ae25-580a148f8fae","savedPayload":{"position":{"x":11059.576325338276,"y":6882.071946768019},"targetPosition":{"x":11457.209060973652,"y":7127.172223298096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"10d84102-de4a-4f5e-b511-8d948b16c186","savedPayload":{"position":{"x":6012.7339990482105,"y":17697.372816763083},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Resistance Zone 5","project":"Superalgos","points":[{"type":"Point","name":"Begin - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance5Rate - record.resistance5Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"8fff05a9-9d0e-4dcb-ba56-15e7758ed61e","savedPayload":{"position":{"x":10798.159923478313,"y":7259.442326840804},"targetPosition":{"x":11021.18822967912,"y":7189.077930230575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8ae90185-2a00-4958-95c1-83aa4b6402ee","savedPayload":{"position":{"x":11021.18822967912,"y":7189.077930230575},"targetPosition":{"x":11466.650961452695,"y":7048.444470855126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance5Rate - record.resistance5Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"d1499c5d-5a9b-428a-abfe-d05d946bbfff","savedPayload":{"position":{"x":10765.597123630581,"y":7042.660758858207},"targetPosition":{"x":10999.525809342962,"y":7044.553036907002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1f76e686-6537-4818-a4c8-f70dc4ec3c4f","savedPayload":{"position":{"x":10999.525809342962,"y":7044.553036907002},"targetPosition":{"x":11466.650961452695,"y":7048.444470855126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance5Rate + record.resistance5Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"e54f3a16-7835-487d-8b09-6dc517bda1d9","savedPayload":{"position":{"x":10801.800877763068,"y":6826.149116979034},"targetPosition":{"x":11023.650900719611,"y":6900.297912000938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"72bab256-b619-4bb5-b188-e3da6d412f2f","savedPayload":{"position":{"x":11023.650900719611,"y":6900.297912000938},"targetPosition":{"x":11466.650961452695,"y":7048.444470855126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance5Rate + record.resistance5Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"d5530e82-a1fb-4108-ac6e-ada9fe0b161b","savedPayload":{"position":{"x":10903.244926906915,"y":6631.363649428362},"targetPosition":{"x":11091.220787800565,"y":6770.496963909963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ee66793e-1c2d-4a17-8c0c-f086656eb0a6","savedPayload":{"position":{"x":11091.220787800565,"y":6770.496963909963},"targetPosition":{"x":11466.650961452695,"y":7048.444470855126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e6120640-850a-4f6f-a55a-b3e7dbca6ab5","savedPayload":{"position":{"x":5996.747896189456,"y":17624.791024023536},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Resistance Line 1","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.resistance1Rate > 0","project":"Superalgos","id":"2a6b550a-7631-4e45-b740-9c46586d71a3","savedPayload":{"position":{"x":5552.292901165445,"y":17641.90316342147},"targetPosition":{"x":5992.926393375172,"y":17550.567926283424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [1,5],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"8f2da42d-c563-4db6-b431-78520c3c282e","savedPayload":{"position":{"x":5093.933309990618,"y":17593.128894631634},"targetPosition":{"x":5543.429851682897,"y":17571.84841045753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ab5ed6ec-35cf-4709-b14d-548495163c99","savedPayload":{"position":{"x":5543.429851682897,"y":17571.84841045753},"targetPosition":{"x":5992.926393375172,"y":17550.567926283424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 1","project":"Superalgos","id":"366d0b55-988c-4995-8dcb-8738605be64b","savedPayload":{"position":{"x":5545.634898850301,"y":17501.26966134734},"targetPosition":{"x":5992.926393375172,"y":17550.567926283424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 1","id":"2a3a3e15-93dd-43f0-95f7-ae2ed478607f"}}},{"type":"Polygon Vertex","name":"End 1","project":"Superalgos","id":"7f2cb9ed-59bc-4f03-bf33-f34ca52db445","savedPayload":{"position":{"x":5558.853747088269,"y":17431.90479913144},"targetPosition":{"x":5992.926393375172,"y":17550.567926283424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 1","id":"fe77f4a2-627c-4f27-9d4c-2dab9ddd8926"}}}],"id":"0c38b25a-d207-430e-ae5a-9ba55227c974","savedPayload":{"position":{"x":5992.926393375172,"y":17550.567926283424},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Resistance Line 2","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.resistance2Rate > 0","project":"Superalgos","id":"27b432e9-4988-4457-8e68-13a06a1341fb","savedPayload":{"position":{"x":10850.422428889626,"y":8512.869680923171},"targetPosition":{"x":11434.635868687958,"y":8275.984496122801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [1,5],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TURQUOISE\"\n }\n}","project":"Superalgos","id":"500b1402-adbe-46d7-9410-92a9cc84b492","savedPayload":{"position":{"x":10206.480248551972,"y":8561.13973244857},"targetPosition":{"x":10820.558058619965,"y":8418.562114285685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c1565617-e60a-4688-bcaf-061fb5ef8f02","savedPayload":{"position":{"x":10820.558058619965,"y":8418.562114285685},"targetPosition":{"x":11434.635868687958,"y":8275.984496122801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 2","project":"Superalgos","id":"b06bed94-85e8-4405-8372-fa5af8fa10f4","savedPayload":{"position":{"x":10805.814322041584,"y":8320.743813501045},"targetPosition":{"x":11434.635868687958,"y":8275.984496122801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 2","id":"71ddeaf4-849d-4973-9b6a-a2ddcaccb86d"}}},{"type":"Polygon Vertex","name":"End 2","project":"Superalgos","id":"a6ad0c69-98e2-459a-a5e4-28b863e7e679","savedPayload":{"position":{"x":10806.5542588807,"y":8221.823389774894},"targetPosition":{"x":11434.635868687958,"y":8275.984496122801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 2","id":"19746197-9ebc-4af8-b4ba-8217fa0eba77"}}}],"id":"532beef7-8d2e-4899-9c99-850db799d9a2","savedPayload":{"position":{"x":6001.373731240215,"y":17476.72813616393},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Resistance Line 3","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.resistance3Rate > 0","project":"Superalgos","id":"6532e5e3-4b6f-4f9b-a52f-f42d588109aa","savedPayload":{"position":{"x":10814.604361591835,"y":8329.199107656274},"targetPosition":{"x":11427.59852472565,"y":8182.032229647753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [1,5],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","project":"Superalgos","id":"f0c15419-ec71-4bfd-8be7-14b5f7ab6213","savedPayload":{"position":{"x":10170.660205499556,"y":8280.955420744114},"targetPosition":{"x":10799.129365112603,"y":8231.493825195934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"3122acb4-11b4-4b42-801d-e6f0f3bc88f5","savedPayload":{"position":{"x":10799.129365112603,"y":8231.493825195934},"targetPosition":{"x":11427.59852472565,"y":8182.032229647753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 3","project":"Superalgos","id":"86879433-37a4-4d4c-94b2-f56509927833","savedPayload":{"position":{"x":10799.129365112603,"y":8132.570634099573},"targetPosition":{"x":11427.59852472565,"y":8182.032229647753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 3","id":"febd94d0-09c7-40c5-b7b2-552ca2cca2b9"}}},{"type":"Polygon Vertex","name":"End 3","project":"Superalgos","id":"ced94fbd-8b64-45a4-af9d-fb2366e9c08f","savedPayload":{"position":{"x":10814.604361591835,"y":8034.865351639233},"targetPosition":{"x":11427.59852472565,"y":8182.032229647753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 3","id":"7003801a-ea76-43e2-a013-72e6d41aff5c"}}}],"id":"9eb7ed64-8225-41de-ab73-3297d19e1529","savedPayload":{"position":{"x":6021.859488428199,"y":17405.28581065354},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Resistance Line 4","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.resistance4Rate > 0","project":"Superalgos","id":"2c5d8280-e687-4ab6-8dc4-a37d33dac54c","savedPayload":{"position":{"x":10806.566716529283,"y":8142.238002574417},"targetPosition":{"x":11434.64832633654,"y":8088.07689622651},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [1,5],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","project":"Superalgos","id":"981c71a0-44f8-40a7-935b-de7a0d29c125","savedPayload":{"position":{"x":10177.005233043794,"y":7998.5582614700215},"targetPosition":{"x":10805.826779690167,"y":8043.317578848266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"66da2fbe-77f0-47ba-b520-cd646ffbc4bf","savedPayload":{"position":{"x":10805.826779690167,"y":8043.317578848266},"targetPosition":{"x":11434.64832633654,"y":8088.07689622651},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 4","project":"Superalgos","id":"2b0a1310-20d6-45cd-a05b-ed8cbddcbb81","savedPayload":{"position":{"x":10820.570516268548,"y":7945.499278063626},"targetPosition":{"x":11434.64832633654,"y":8088.07689622651},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 4","id":"12059a23-6280-499c-8ebc-f8c0de0e5647"}}},{"type":"Polygon Vertex","name":"End 4","project":"Superalgos","id":"db596f4f-6410-4250-a837-dad5cd2d61e8","savedPayload":{"position":{"x":10850.434886538209,"y":7851.19171142614},"targetPosition":{"x":11434.64832633654,"y":8088.07689622651},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 4","id":"2e5e4668-102d-4d9a-addc-9b154e7889a9"}}}],"id":"b8b29e5a-49aa-45cb-b6f3-0ba78dd97899","savedPayload":{"position":{"x":6053.824866885414,"y":17338.189710155937},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Resistance Line 5","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.resistance5Rate > 0","project":"Superalgos","id":"d29fe2ec-f038-419b-a308-caa26a5a8185","savedPayload":{"position":{"x":10826.48162823475,"y":7956.161072074059},"targetPosition":{"x":11455.620379425967,"y":7996.215607004044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [1,5],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"2fb5a769-94e1-480d-9e37-e95b3e6d2391","savedPayload":{"position":{"x":10225.36618057808,"y":7720.254844770076},"targetPosition":{"x":10840.493280002025,"y":7858.23522588706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"5c4e3fb7-482b-4830-b279-ce65f5dde542","savedPayload":{"position":{"x":10840.493280002025,"y":7858.23522588706},"targetPosition":{"x":11455.620379425967,"y":7996.215607004044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 5","project":"Superalgos","id":"94bd59ac-0e4f-4f0c-a8fc-98dda2d4f485","savedPayload":{"position":{"x":10869.651402446914,"y":7763.706914613791},"targetPosition":{"x":11455.620379425967,"y":7996.215607004044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 5","id":"1cebdfa8-d6f3-44fb-bf7e-0f8bfaeff946"}}},{"type":"Polygon Vertex","name":"End 5","project":"Superalgos","id":"890c39f7-712c-4b93-849a-cd652f600124","savedPayload":{"position":{"x":10913.238025824568,"y":7674.903738999281},"targetPosition":{"x":11455.620379425967,"y":7996.215607004044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 5","id":"bbc97ad3-5c93-460f-8463-127d21e3dca4"}}}],"id":"0582dc0b-1512-4762-8340-aabeadad6643","savedPayload":{"position":{"x":6096.397934415076,"y":17277.270041386215},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Resistance Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.typeResistance=== 'Resistance'","project":"Superalgos","id":"ea67ee97-0c26-4369-969a-4b207c45acf2","savedPayload":{"position":{"x":6022.181978166507,"y":16824.72653458673},"targetPosition":{"x":6392.3349540171,"y":17080.63037291072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0,\n \"paletteColor\": \"UI_COLOR.DARK\"\n }\n}","project":"Superalgos","id":"65722c8b-1977-4cfa-ba63-c2cc7434891b","savedPayload":{"position":{"x":5802.0572296741775,"y":16403.794072908324},"targetPosition":{"x":6119.377189276245,"y":16722.867799871456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.typeResistance=== 'Resistance'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK\",\n \"opacity\": 0.5\n}","project":"Superalgos","id":"8322fb8f-d018-4855-a288-20ca625c95a3","savedPayload":{"position":{"x":5671.526815582765,"y":15942.207795271112},"targetPosition":{"x":5895.452002429505,"y":16332.537797571284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad690e4e-7590-4b4d-960e-97510c4fce0d","savedPayload":{"position":{"x":5895.452002429505,"y":16332.537797571284},"targetPosition":{"x":6119.377189276245,"y":16722.867799871456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c3e776eb-ac3c-49a1-b8bb-0a3b37dcff10","savedPayload":{"position":{"x":6119.377189276245,"y":16722.867799871456},"targetPosition":{"x":6392.3349540171,"y":17080.63037291072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Base Left","project":"Superalgos","id":"b6a079f5-8719-4beb-93c5-ae45a48f6bc4","savedPayload":{"position":{"x":6243.291408207391,"y":16656.029358483684},"targetPosition":{"x":6392.3349540171,"y":17080.63037291072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Base Left","id":"6e8169a3-28a2-412f-8100-577c4a9a97bb"}}},{"type":"Polygon Vertex","name":"Base Right","project":"Superalgos","id":"d43b33c2-6d6c-4552-85b6-07300acc05c4","savedPayload":{"position":{"x":6381.795047849839,"y":16630.75382275725},"targetPosition":{"x":6392.3349540171,"y":17080.63037291072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Base Right","id":"b23883d4-d592-4d0a-822e-82165e22598f"}}}],"id":"c62d156c-4686-45a4-af42-283999dd1200","savedPayload":{"position":{"x":6148.417408714671,"y":17224.18853410269},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Resistance Zone 1","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.resistance1Bounce1 > 0","project":"Superalgos","id":"f4fdf8db-0009-4053-acdd-90f790ef2dc1","savedPayload":{"position":{"x":6110.666171190445,"y":16767.74428007707},"targetPosition":{"x":6460.43759147801,"y":17050.869611953287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"678098f3-5628-4c48-baac-daaaa46f7cb6","savedPayload":{"position":{"x":5772.331310117315,"y":16882.249952398357},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"34b995fd-453d-47b9-8967-3d283ce8c5c9","savedPayload":{"position":{"x":5297.398493596465,"y":16860.433727324507},"targetPosition":{"x":5739.917738914217,"y":16778.722543736156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e9625315-0f08-473d-ae16-972cf0dacef6","savedPayload":{"position":{"x":5739.917738914217,"y":16778.722543736156},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 2","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"9c07eec3-733b-415a-9eb2-75bdbb926913","savedPayload":{"position":{"x":5284.006571281989,"y":16643.88139603593},"targetPosition":{"x":5733.221777756979,"y":16670.446378091867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2e9532be-e479-4863-a652-2db78d854596","savedPayload":{"position":{"x":5733.221777756979,"y":16670.446378091867},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 3","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"055dcb1d-7351-4348-ba05-d69e35f1e5c9","savedPayload":{"position":{"x":5322.828158906483,"y":16430.416785141966},"targetPosition":{"x":5752.632571569226,"y":16563.714072644885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"13ae1317-69bb-4a8a-aaa0-170868016d4a","savedPayload":{"position":{"x":5752.632571569226,"y":16563.714072644885},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 4","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"1274e868-d24c-4722-9cfb-a390e63afea4","savedPayload":{"position":{"x":5411.607086907952,"y":16232.445681915498},"targetPosition":{"x":5797.02203556996,"y":16464.72852103165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ee88e538-166d-4c03-b284-d2723f8683f0","savedPayload":{"position":{"x":5797.02203556996,"y":16464.72852103165},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 5","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.4\n}","project":"Superalgos","id":"c5639eed-1b4a-4374-a8ad-300810a6da68","savedPayload":{"position":{"x":5545.183846689211,"y":16061.473447280358},"targetPosition":{"x":5863.81041546059,"y":16379.24240371408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b84e5eee-04d8-4bfe-b252-409df978d9d9","savedPayload":{"position":{"x":5863.81041546059,"y":16379.24240371408},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 6","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"f74b513c-4691-4213-85ec-a8aac88886be","savedPayload":{"position":{"x":5715.795442503553,"y":15927.43636605475},"targetPosition":{"x":5949.116213367761,"y":16312.223863101277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"632d8000-8cd3-467a-96a2-08d3ae5e41fd","savedPayload":{"position":{"x":5949.116213367761,"y":16312.223863101277},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 7","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"e1f8e239-dc70-4be6-9b94-b386891c430e","savedPayload":{"position":{"x":5913.526548550162,"y":15838.124186194542},"targetPosition":{"x":6047.981766391065,"y":16267.567773171173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d7fd86f0-d41f-4d5d-88f8-de219a3013f5","savedPayload":{"position":{"x":6047.981766391065,"y":16267.567773171173},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 8","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1\n}","project":"Superalgos","id":"44c15485-4140-4f89-8491-e39df8a6acec","savedPayload":{"position":{"x":6126.885751668928,"y":15798.727406956652},"targetPosition":{"x":6154.661367950448,"y":16247.869383552228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b8325b61-74f5-4dde-aae5-1a37ca079b8d","savedPayload":{"position":{"x":6154.661367950448,"y":16247.869383552228},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 9","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"9b3a94b1-ff98-459e-83ed-72b1fef97aa8","savedPayload":{"position":{"x":6343.4733905037465,"y":15811.535625948909},"targetPosition":{"x":6262.955187367857,"y":16254.273493048357},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2488848e-b074-47d4-b275-8e7617c2c70e","savedPayload":{"position":{"x":6262.955187367857,"y":16254.273493048357},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 10","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"29599f5b-8578-4e95-88e0-db6f3c0e4d1a","savedPayload":{"position":{"x":6550.702178749572,"y":15875.804476039473},"targetPosition":{"x":6366.56958149077,"y":16286.407918093639},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"396818ff-9a7d-4d0c-be13-67f36f687bb8","savedPayload":{"position":{"x":6366.56958149077,"y":16286.407918093639},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 11","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1\n}","project":"Superalgos","id":"4c01cb73-1bcc-4719-9a6a-0593899023a5","savedPayload":{"position":{"x":6736.528732479546,"y":15987.798885268847},"targetPosition":{"x":6459.482858355757,"y":16342.405122708326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"373bc7b9-3547-4690-a965-e98a2c32b388","savedPayload":{"position":{"x":6459.482858355757,"y":16342.405122708326},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2cd93655-284b-4e59-9959-749211d0c13b","savedPayload":{"position":{"x":6182.436984231968,"y":16697.011360147804},"targetPosition":{"x":6460.43759147801,"y":17050.869611953287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin - Zone Resistance","project":"Superalgos","id":"61265cbf-c690-4531-8e1c-63012f033dec","savedPayload":{"position":{"x":6268.147908550254,"y":16644.022370547445},"targetPosition":{"x":6460.43759147801,"y":17050.869611953287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin - Zone Resistance","id":"0c275c7e-5012-454c-8772-a3c2f1621567"}}},{"type":"Polygon Vertex","name":"End - Zone Resistance","project":"Superalgos","id":"d86b1af1-cc3b-4953-8e11-715de1e47305","savedPayload":{"position":{"x":6363.501040502324,"y":16611.43440047731},"targetPosition":{"x":6460.43759147801,"y":17050.869611953287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End - Zone Resistance","id":"e4ca8d91-e86c-4b97-b327-a1a631b28ade"}}},{"type":"Polygon Vertex","name":"End + Zone Resistance","project":"Superalgos","id":"0a2d374a-1bef-4db3-9259-5fe2d4a4352f","savedPayload":{"position":{"x":6463.714975892104,"y":16600.88154683222},"targetPosition":{"x":6460.43759147801,"y":17050.869611953287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End + Zone Resistance","id":"e6764b3a-2fdb-4df1-abde-1f6e9fca5a27"}}},{"type":"Polygon Vertex","name":"Begin + Zone Resistance","project":"Superalgos","id":"f22ffe77-c62c-4cc1-9c27-35e5a3831104","savedPayload":{"position":{"x":6563.764569542196,"y":16612.892973758822},"targetPosition":{"x":6460.43759147801,"y":17050.869611953287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin + Zone Resistance","id":"1614af55-2a6c-40a5-9339-958d2944f719"}}}],"id":"ca9666cf-e40b-46af-902d-050c1956b702","savedPayload":{"position":{"x":6208.46433412996,"y":17180.39311345089},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Resistance Zone 2","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.resistance2Bounce1 > 0","project":"Superalgos","id":"8e52a153-4da1-4d25-9070-a9cab7901642","savedPayload":{"position":{"x":6234.109761975746,"y":16695.889719705072},"targetPosition":{"x":6532.5098579853475,"y":17032.72407469497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"0d2e9e03-1e4b-406a-8807-a56b112e4bf9","savedPayload":{"position":{"x":5881.542333200534,"y":16753.145596066883},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"909e78e1-4f46-48a0-b49f-d448973a5321","savedPayload":{"position":{"x":5416.677813895811,"y":16653.455543521588},"targetPosition":{"x":5866.610892272292,"y":16645.695067849218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eb9bc072-5c45-4901-8cce-f2c26a2f4505","savedPayload":{"position":{"x":5866.610892272292,"y":16645.695067849218},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 2","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"ca020c35-f86f-4b23-a952-ac6dbb8b1826","savedPayload":{"position":{"x":5439.111882189412,"y":16437.65246581046},"targetPosition":{"x":5877.827926419093,"y":16537.793528993654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b5c6aa09-4166-4c94-9967-b91524c21464","savedPayload":{"position":{"x":5877.827926419093,"y":16537.793528993654},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 3","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"36071756-7d18-4da4-a70c-51f4c463ebba","savedPayload":{"position":{"x":5512.539114128398,"y":16233.489057287843},"targetPosition":{"x":5914.541542388586,"y":16435.711824732345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fa8a71d2-4cc4-4fbe-a186-dcae6715bdae","savedPayload":{"position":{"x":5914.541542388586,"y":16435.711824732345},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 4","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"1fd4231d-7109-4078-a500-e8392f75f443","savedPayload":{"position":{"x":5632.692185889609,"y":16052.830553153275},"targetPosition":{"x":5974.618078269192,"y":16345.382572665061},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"44d57144-5dce-4b2a-aca2-2a2fb6cce4f5","savedPayload":{"position":{"x":5974.618078269192,"y":16345.382572665061},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 5","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.4\n}","project":"Superalgos","id":"dc876bc9-5380-4127-9091-b9d1855127e2","savedPayload":{"position":{"x":5792.588237680917,"y":15906.1761690001},"targetPosition":{"x":6054.5661041648455,"y":16272.055380588474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7ec7f8db-d303-479e-970d-11b1c6b585f8","savedPayload":{"position":{"x":6054.5661041648455,"y":16272.055380588474},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 6","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"0d4b045a-d31d-486e-b211-251eb97727e9","savedPayload":{"position":{"x":5982.934692170726,"y":15802.04892456832},"targetPosition":{"x":6149.73933140975,"y":16219.991758372584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78b93dc0-b51e-4e70-bf86-469ed1dc8b32","savedPayload":{"position":{"x":6149.73933140975,"y":16219.991758372584},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 7","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"a5f88045-13c6-4a79-a26d-808cbae1be55","savedPayload":{"position":{"x":6192.669305305288,"y":15746.500316817168},"targetPosition":{"x":6254.606637977031,"y":16192.217454497008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a094ed80-7548-488d-a6f7-b58b39c43d74","savedPayload":{"position":{"x":6254.606637977031,"y":16192.217454497008},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 8","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1\n}","project":"Superalgos","id":"5b2cf624-f0bf-4576-97e9-4caad311ced1","savedPayload":{"position":{"x":6409.6030637235235,"y":15742.758628918169},"targetPosition":{"x":6363.073517186149,"y":16190.346610547509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c76ac126-507c-4794-9ad4-b3541a1dae4a","savedPayload":{"position":{"x":6363.073517186149,"y":16190.346610547509},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 9","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"e177aa7b-44e6-46b7-9ba4-411fd4eb32a2","savedPayload":{"position":{"x":6621.128565908293,"y":15791.04131417153},"targetPosition":{"x":6468.836268278534,"y":16214.48795317419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94a8abfe-1c08-434a-b735-acc9eee52ea9","savedPayload":{"position":{"x":6468.836268278534,"y":16214.48795317419},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 10","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"88b78d7f-b935-4e2b-b7d2-fbe5c877a950","savedPayload":{"position":{"x":6814.952718536544,"y":15888.542358410747},"targetPosition":{"x":6565.748344592659,"y":16263.238475293798},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"731a3134-805c-432a-8ee4-44ae04ccaeb0","savedPayload":{"position":{"x":6565.748344592659,"y":16263.238475293798},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 11","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1\n}","project":"Superalgos","id":"c843d74e-15ee-4fed-aafd-20c51853dea4","savedPayload":{"position":{"x":6979.811166379637,"y":16029.595355346515},"targetPosition":{"x":6648.177568514206,"y":16333.764973761681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"70790586-ea1f-44b7-bffd-891d0eb5629a","savedPayload":{"position":{"x":6648.177568514206,"y":16333.764973761681},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6f9d86e1-164c-4ea4-992d-2917fda244ac","savedPayload":{"position":{"x":6316.543970648774,"y":16637.934592176847},"targetPosition":{"x":6532.5098579853475,"y":17032.72407469497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin - Zone Resistance","project":"Superalgos","id":"496ec3db-d47e-478d-be79-a266a0f1ee4b","savedPayload":{"position":{"x":6409.8076107078705,"y":16599.775857799395},"targetPosition":{"x":6532.5098579853475,"y":17032.72407469497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin - Zone Resistance","id":"055d64bb-b823-4593-b606-4f0a35ac620a"}}},{"type":"Polygon Vertex","name":"End - Zone Resistance","project":"Superalgos","id":"92e88ed6-dfb5-4d69-b739-2596eabe9562","savedPayload":{"position":{"x":6509.224053805425,"y":16583.3269548514},"targetPosition":{"x":6532.5098579853475,"y":17032.72407469497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End - Zone Resistance","id":"6d8e2772-7475-406d-b048-4599982d04e2"}}},{"type":"Polygon Vertex","name":"End + Zone Resistance","project":"Superalgos","id":"06940067-8e78-4652-80bb-53a20db38d36","savedPayload":{"position":{"x":6609.808144357608,"y":16589.412700011315},"targetPosition":{"x":6532.5098579853475,"y":17032.72407469497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End + Zone Resistance","id":"e2c53993-70fa-48f0-96b0-3c73a3baa50f"}}},{"type":"Polygon Vertex","name":"Begin + Zone Resistance","project":"Superalgos","id":"44754c48-5c48-4911-8782-729f29d1b01e","savedPayload":{"position":{"x":6706.516176061552,"y":16617.727928604956},"targetPosition":{"x":6532.5098579853475,"y":17032.72407469497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin + Zone Resistance","id":"d3cc8bbf-1f3e-49bc-9331-5e498064cb88"}}}],"id":"3032c972-5916-496b-9aec-fb9f49a9237f","savedPayload":{"position":{"x":6274.900787066268,"y":17147.07840434006},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Resistance Zone 3","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.resistance3Bounce1 > 0","project":"Superalgos","id":"1c336053-c230-4ad3-ab58-4b85d364a707","savedPayload":{"position":{"x":6367.696615003675,"y":16645.33330912921},"targetPosition":{"x":6606.585809987166,"y":17026.688724090294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"e7bdfc4c-a887-4a47-9402-e3be2aa390fa","savedPayload":{"position":{"x":6010.513738908674,"y":16643.777598479326},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"65f80810-1132-493b-86c5-b7ac04fb2e1b","savedPayload":{"position":{"x":5568.397809095339,"y":16468.93300322345},"targetPosition":{"x":6013.471719040444,"y":16535.334921013353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"af73149e-c55e-4cd1-8008-a4a0e0dc4bce","savedPayload":{"position":{"x":6013.471719040444,"y":16535.334921013353},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 2","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"1fe17781-8019-412d-bce7-e4015502c1dc","savedPayload":{"position":{"x":5626.045925095226,"y":16259.765724493103},"targetPosition":{"x":6042.295777040388,"y":16430.75128164818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"66a99f55-071a-4c17-8a4c-0a3ca27b49c5","savedPayload":{"position":{"x":6042.295777040388,"y":16430.75128164818},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 3","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"68425fb0-290a-4f0a-bc37-0afacae35c6f","savedPayload":{"position":{"x":5732.075897871924,"y":16070.472563912037},"targetPosition":{"x":6095.310763428737,"y":16336.104701357646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a8b5a03e-3f6c-4e73-893f-a2ead5f90bc4","savedPayload":{"position":{"x":6095.310763428737,"y":16336.104701357646},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 4","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"3fa93e36-a9e8-49db-830d-bdceda8dd236","savedPayload":{"position":{"x":5880.325650810904,"y":15912.054551920583},"targetPosition":{"x":6169.435639898227,"y":16256.89569536192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78bcd2f8-69b6-46ae-a646-d9584ec851f6","savedPayload":{"position":{"x":6169.435639898227,"y":16256.89569536192},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 5","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.4\n}","project":"Superalgos","id":"2d5b8980-b779-4c09-a2ba-eec5e1ec4ac3","savedPayload":{"position":{"x":6062.1794471373,"y":15793.718367549634},"targetPosition":{"x":6260.362538061425,"y":16197.727603176445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8aaddafc-5dcf-43a1-a4ad-2c2ecd043e2f","savedPayload":{"position":{"x":6260.362538061425,"y":16197.727603176445},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 6","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"f9981061-43b5-4e21-a886-d87c223ffdc3","savedPayload":{"position":{"x":6267.068605220258,"y":15722.341279700306},"targetPosition":{"x":6362.807117102904,"y":16162.03905925178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ab07d12e-f9cf-4d09-9fb3-b91ce3d0888b","savedPayload":{"position":{"x":6362.807117102904,"y":16162.03905925178},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 7","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"777654df-f75f-4334-b3a4-7a21904f3d71","savedPayload":{"position":{"x":6483.085711933803,"y":15702.071465273244},"targetPosition":{"x":6470.815670459677,"y":16151.904152038249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"839f62b1-f81f-4488-9b16-ae1b6ac067d1","savedPayload":{"position":{"x":6470.815670459677,"y":16151.904152038249},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 8","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1\n}","project":"Superalgos","id":"3b0ddd27-6b5b-42c5-b7cd-29c12de70616","savedPayload":{"position":{"x":6697.676638225959,"y":15734.086932205173},"targetPosition":{"x":6578.111133605755,"y":16167.911885504214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1d523fad-3f28-47d5-acaf-830a447aa2e8","savedPayload":{"position":{"x":6578.111133605755,"y":16167.911885504214},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 9","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"e8427a08-b22b-4d45-9261-62b73a8ab865","savedPayload":{"position":{"x":6898.370139466919,"y":15816.527057929488},"targetPosition":{"x":6678.4578842262345,"y":16209.131948366372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"51849845-cea5-4b51-9b06-14db6d2af55c","savedPayload":{"position":{"x":6678.4578842262345,"y":16209.131948366372},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 10","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"9b5fb0b3-6e28-41b0-8134-752a98b6b9b0","savedPayload":{"position":{"x":7073.502638855745,"y":15944.600721996765},"targetPosition":{"x":6766.024133920648,"y":16273.16878040001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"55ccd473-ac0c-4724-bfb9-2643edd7d674","savedPayload":{"position":{"x":6766.024133920648,"y":16273.16878040001},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 11","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1\n}","project":"Superalgos","id":"090df02b-08db-48c7-aa8e-915be9ab8265","savedPayload":{"position":{"x":7212.896072108699,"y":16110.864748580243},"targetPosition":{"x":6835.720850547124,"y":16356.30079369175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1bac95a9-f98b-413c-9cb6-66e64391abae","savedPayload":{"position":{"x":6835.720850547124,"y":16356.30079369175},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4b1db531-9768-4f0c-85e9-6f6f03685281","savedPayload":{"position":{"x":6458.54562898555,"y":16601.736838803256},"targetPosition":{"x":6606.585809987166,"y":17026.688724090294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin - Zone Resistance","project":"Superalgos","id":"a5770e2d-61db-4f56-ab84-0892dad59567","savedPayload":{"position":{"x":6556.8179958048095,"y":16579.44923045013},"targetPosition":{"x":6606.585809987166,"y":17026.688724090294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin - Zone Resistance","id":"e18fe7d1-bb71-4228-89ad-6eef714ec53f"}}},{"type":"Polygon Vertex","name":"End - Zone Resistance","project":"Superalgos","id":"c122c5b3-0024-426a-9965-e1e78daec055","savedPayload":{"position":{"x":6657.58592863947,"y":16579.58807781761},"targetPosition":{"x":6606.585809987166,"y":17026.688724090294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End - Zone Resistance","id":"30f76ba8-3516-4b19-bb42-ae4613d5ce10"}}},{"type":"Polygon Vertex","name":"End + Zone Resistance","project":"Superalgos","id":"66a2a41d-c2d3-424b-a5ad-cf339cb4d20f","savedPayload":{"position":{"x":6755.796502566951,"y":16602.146418518918},"targetPosition":{"x":6606.585809987166,"y":17026.688724090294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End + Zone Resistance","id":"d4105484-8b89-48f5-af7f-964d2e541120"}}},{"type":"Polygon Vertex","name":"Begin + Zone Resistance","project":"Superalgos","id":"c050df08-5b55-49ec-91e2-19bc9e16fe91","savedPayload":{"position":{"x":6846.525029318887,"y":16645.993083155856},"targetPosition":{"x":6606.585809987166,"y":17026.688724090294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin + Zone Resistance","id":"fc07018f-23a9-46dc-bb6a-f6ddac68be6c"}}}],"id":"753efd9a-f48d-4826-89ac-7f046667a26c","savedPayload":{"position":{"x":6345.914554274397,"y":17125.153145189775},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Resistance Zone 4","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.resistance4Bounce1 > 0","project":"Superalgos","id":"0931fce8-e103-4a66-b479-207e0662359e","savedPayload":{"position":{"x":6507.782829158572,"y":16617.45409543927},"targetPosition":{"x":6680.644848614458,"y":17032.92818877077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"03da2d32-5673-4d64-b99a-1b7dd6df2fe6","savedPayload":{"position":{"x":6155.7275234973895,"y":16557.12923350878},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"6913a704-6ff8-4978-bba2-2a0acf0d8672","savedPayload":{"position":{"x":5748.419953230543,"y":16311.899400315066},"targetPosition":{"x":6176.49423870206,"y":16450.65244034681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aad10167-a2b9-4055-90a6-e094f118e5d6","savedPayload":{"position":{"x":6176.49423870206,"y":16450.65244034681},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 2","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"b930f4ad-fcba-439d-864d-20082c52ed4e","savedPayload":{"position":{"x":5839.709626609663,"y":16115.073458670857},"targetPosition":{"x":6222.13907539162,"y":16352.239469524706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7cc16cba-79d9-4ebb-af5e-2e9f19e4faaa","savedPayload":{"position":{"x":6222.13907539162,"y":16352.239469524706},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 3","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"9532bb2f-ad66-44dd-a5e4-58848c302734","savedPayload":{"position":{"x":5975.450118966226,"y":15945.81397000155},"targetPosition":{"x":6290.009321569902,"y":16267.609725190054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ce42776f-7050-49de-9d8c-9a616656e668","savedPayload":{"position":{"x":6290.009321569902,"y":16267.609725190054},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 4","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"342c81eb-3f45-4f5c-afdf-51dc77db3926","savedPayload":{"position":{"x":6147.752686281077,"y":15813.957680555402},"targetPosition":{"x":6376.160605227327,"y":16201.681580466979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"970ed430-5c9c-4d26-bb87-a8a5a8dc0498","savedPayload":{"position":{"x":6376.160605227327,"y":16201.681580466979},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 5","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.4\n}","project":"Superalgos","id":"d60fc74e-067a-4b1a-80f9-8f298c70c256","savedPayload":{"position":{"x":6346.6037296362265,"y":15727.167598596905},"targetPosition":{"x":6475.586126904902,"y":16158.28653948773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d647e933-5853-4c85-9f38-7734330f63bf","savedPayload":{"position":{"x":6475.586126904902,"y":16158.28653948773},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 6","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"80b842ae-273d-4398-b18e-8820ff04911b","savedPayload":{"position":{"x":6560.44674918602,"y":15690.487648220384},"targetPosition":{"x":6582.507636679798,"y":16139.94656429947},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"133d0702-17ee-4271-ae5b-f246b0817695","savedPayload":{"position":{"x":6582.507636679798,"y":16139.94656429947},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 7","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"a78374c3-ee33-4150-aece-843122eb04d8","savedPayload":{"position":{"x":6776.8539659219605,"y":15706.049534815518},"targetPosition":{"x":6690.711245047769,"y":16147.727507597036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eb6649aa-3dc5-4e46-a147-7ee698f9f8e0","savedPayload":{"position":{"x":6690.711245047769,"y":16147.727507597036},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 8","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1\n}","project":"Superalgos","id":"ad7af22b-223f-4c23-819c-2515e5ab7274","savedPayload":{"position":{"x":6983.248579015584,"y":15772.948858098562},"targetPosition":{"x":6793.908551594581,"y":16181.17716923856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7301cf1f-91d4-4d0a-8486-c4c9cd816dc4","savedPayload":{"position":{"x":6793.908551594581,"y":16181.17716923856},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 9","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"835e1082-9b76-4d13-aba3-6c2419878c99","savedPayload":{"position":{"x":7167.635683767781,"y":15887.297672569446},"targetPosition":{"x":6886.102103970679,"y":16238.351576474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eac5c80e-8e70-41e7-abe8-5da4d4a8d944","savedPayload":{"position":{"x":6886.102103970679,"y":16238.351576474},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 10","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"2db96f60-f66f-4706-a8f7-ccae83d23d4a","savedPayload":{"position":{"x":7319.29937187022,"y":16042.450440772154},"targetPosition":{"x":6961.933948021899,"y":16315.927960575355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dec0fb37-e4e6-4e00-8a6f-a60a44708a66","savedPayload":{"position":{"x":6961.933948021899,"y":16315.927960575355},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 11","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1\n}","project":"Superalgos","id":"2bb56777-1ea8-4227-acaf-578f3872f00d","savedPayload":{"position":{"x":7429.425501045451,"y":16229.390247776108},"targetPosition":{"x":7016.997012609514,"y":16409.39786407733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9ffc117c-9495-407c-9aed-1b6ef6ba210a","savedPayload":{"position":{"x":7016.997012609514,"y":16409.39786407733},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d181f92f-7c33-429e-9f32-13afcadaac04","savedPayload":{"position":{"x":6604.568524173577,"y":16589.405480378555},"targetPosition":{"x":6680.644848614458,"y":17032.92818877077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin - Zone Resistance","project":"Superalgos","id":"9edd9a7b-2d22-45b3-b481-b8ac59d25f32","savedPayload":{"position":{"x":6705.169003763112,"y":16583.59694590617},"targetPosition":{"x":6680.644848614458,"y":17032.92818877077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin - Zone Resistance","id":"79408eb2-e914-4f85-96c6-0baa918f5f91"}}},{"type":"Polygon Vertex","name":"End - Zone Resistance","project":"Superalgos","id":"40a3e87b-ccb4-4c11-9553-a1934ffe3397","savedPayload":{"position":{"x":6804.539739809541,"y":16600.31975619489},"targetPosition":{"x":6680.644848614458,"y":17032.92818877077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End - Zone Resistance","id":"9479606b-5668-40a4-8e34-40976668e11b"}}},{"type":"Polygon Vertex","name":"End + Zone Resistance","project":"Superalgos","id":"d985e769-5063-49f1-825a-8c469bebb1fc","savedPayload":{"position":{"x":6897.697868671436,"y":16638.735359708462},"targetPosition":{"x":6680.644848614458,"y":17032.92818877077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End + Zone Resistance","id":"98ef8287-1ef2-498f-ae25-580a148f8fae"}}},{"type":"Polygon Vertex","name":"Begin + Zone Resistance","project":"Superalgos","id":"3d630c8d-3820-4190-adcf-cc372272af3f","savedPayload":{"position":{"x":6979.9720527731915,"y":16696.917437677126},"targetPosition":{"x":6680.644848614458,"y":17032.92818877077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin + Zone Resistance","id":"09f1f62c-723a-4588-ae76-d195aa1cb276"}}}],"id":"0fb57b23-fb5d-429c-bc75-84008becc00e","savedPayload":{"position":{"x":6419.568565303984,"y":17115.21539991477},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Resistance Zone 5","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.resistance5Bounce1 > 0","project":"Superalgos","id":"082cf5a1-8c77-42c1-a19e-def34f93c0c3","savedPayload":{"position":{"x":6650.547217695796,"y":16613.012550909018},"targetPosition":{"x":6752.666836350971,"y":17051.27227240498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"50abec57-e340-4709-9f4c-9fae0b30a09a","savedPayload":{"position":{"x":6313.222633467176,"y":16495.564042676207},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"15f87ebf-d18f-4e4f-93aa-545c0bbf36ab","savedPayload":{"position":{"x":5951.833711492109,"y":16186.63820212771},"targetPosition":{"x":6351.23162188875,"y":16393.957543171415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"468bd43d-c2d6-4597-b1a5-6a401b0fe336","savedPayload":{"position":{"x":6351.23162188875,"y":16393.957543171415},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 2","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"2a0d3dfc-d790-4eb4-9951-389ad56d9a10","savedPayload":{"position":{"x":6074.27479793509,"y":16007.522496170757},"targetPosition":{"x":6412.4521651102405,"y":16304.399690192939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6247696c-f48e-41fb-aef2-e051ead37498","savedPayload":{"position":{"x":6412.4521651102405,"y":16304.399690192939},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 3","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"c4c3fb3e-85a5-4f01-ad3f-b86d52b965b3","savedPayload":{"position":{"x":6236.023163089085,"y":15862.913637037556},"targetPosition":{"x":6493.326347687238,"y":16232.095260626338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6bc50b65-7c74-440e-8a08-e1d28540dff8","savedPayload":{"position":{"x":6493.326347687238,"y":16232.095260626338},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 4","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"1ba3d543-f241-4ce5-85f1-98579b075881","savedPayload":{"position":{"x":6427.6785799027275,"y":15761.215765989115},"targetPosition":{"x":6589.154056094059,"y":16181.246325102118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"edbd4422-89b8-4074-8ea5-994d62142496","savedPayload":{"position":{"x":6589.154056094059,"y":16181.246325102118},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 5","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.4\n}","project":"Superalgos","id":"d91e1d41-dcc5-4992-aff7-eba6f8aae36a","savedPayload":{"position":{"x":6638.102732189895,"y":15708.339193634041},"targetPosition":{"x":6694.366132237643,"y":16154.80803892458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b46b6072-5682-463b-abec-ba1b8433d5c1","savedPayload":{"position":{"x":6694.366132237643,"y":16154.80803892458},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 6","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"d39d125f-5ebd-4dc3-97b5-e34f6835342e","savedPayload":{"position":{"x":6855.066533080339,"y":15707.3569141591},"targetPosition":{"x":6802.848032682865,"y":16154.31689918711},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"95087207-6903-418b-87b1-91574b8bf084","savedPayload":{"position":{"x":6802.848032682865,"y":16154.31689918711},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 7","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"0275cc41-3916-47b3-a2a0-70dca25d0db0","savedPayload":{"position":{"x":7065.960835097634,"y":15758.326014076929},"targetPosition":{"x":6908.295183691513,"y":16179.801449146024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"39aa9f71-a813-4da9-b937-eb9dc298b483","savedPayload":{"position":{"x":6908.295183691513,"y":16179.801449146024},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 8","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1\n}","project":"Superalgos","id":"4f0b8341-c2cb-4cad-8d3d-cd3543a4ace9","savedPayload":{"position":{"x":7258.529227978135,"y":15858.284354565447},"targetPosition":{"x":7004.579380131763,"y":16229.780619390283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7593aaba-e315-4982-8fa1-ffca6ef48e2f","savedPayload":{"position":{"x":7004.579380131763,"y":16229.780619390283},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 9","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"e62a0cfa-f94a-4cf9-bafe-7af99b6a2e7d","savedPayload":{"position":{"x":7421.580336685249,"y":16001.422720209244},"targetPosition":{"x":7086.10493448532,"y":16301.349802212182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b8728df0-cd33-4ffd-b6c2-240efc3b1e23","savedPayload":{"position":{"x":7086.10493448532,"y":16301.349802212182},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 10","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"02ad3590-953f-4dfe-92e7-6376926da1a4","savedPayload":{"position":{"x":7545.638223447582,"y":16179.422429483893},"targetPosition":{"x":7148.133877866487,"y":16390.349656849507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8daaa494-c0c7-4be8-932f-5e4186bc4164","savedPayload":{"position":{"x":7148.133877866487,"y":16390.349656849507},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 11","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1\n}","project":"Superalgos","id":"5cc087f1-293f-40f8-832f-a5003ddf7ce2","savedPayload":{"position":{"x":7623.4930948185865,"y":16381.938786288963},"targetPosition":{"x":7187.061313551989,"y":16491.60783525204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a80e57e-0552-42b6-a9c3-8fbbfe38a615","savedPayload":{"position":{"x":7187.061313551989,"y":16491.60783525204},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2db093f9-9a3d-4633-afc3-47d7b7a1ba43","savedPayload":{"position":{"x":6750.629532285391,"y":16601.27688421512},"targetPosition":{"x":6752.666836350971,"y":17051.27227240498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin - Zone Resistance","project":"Superalgos","id":"9b24e6a9-06da-4deb-8710-91d5bd430b2c","savedPayload":{"position":{"x":6850.814005807879,"y":16612.105865302165},"targetPosition":{"x":6752.666836350971,"y":17051.27227240498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin - Zone Resistance","id":"8ae90185-2a00-4958-95c1-83aa4b6402ee"}}},{"type":"Polygon Vertex","name":"End - Zone Resistance","project":"Superalgos","id":"31685577-64d9-4165-8f22-9ee5687950d5","savedPayload":{"position":{"x":6946.076970426908,"y":16644.95648384056},"targetPosition":{"x":6752.666836350971,"y":17051.27227240498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End - Zone Resistance","id":"1f76e686-6537-4818-a4c8-f70dc4ec3c4f"}}},{"type":"Polygon Vertex","name":"End + Zone Resistance","project":"Superalgos","id":"60b0dc5b-992a-4c56-baed-99f61db77df2","savedPayload":{"position":{"x":7031.641543312984,"y":16698.181472644552},"targetPosition":{"x":6752.666836350971,"y":17051.27227240498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End + Zone Resistance","id":"ee66793e-1c2d-4a17-8c0c-f086656eb0a6"}}},{"type":"Polygon Vertex","name":"Begin + Zone Resistance","project":"Superalgos","id":"3381e89f-ca2d-4f2a-808d-6dd705b6da98","savedPayload":{"position":{"x":7103.217159495052,"y":16769.111908527313},"targetPosition":{"x":6752.666836350971,"y":17051.27227240498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin + Zone Resistance","id":"72bab256-b619-4bb5-b188-e3da6d412f2f"}}}],"id":"550e31bb-a95f-4fad-bfbb-b42aae7dc5d3","savedPayload":{"position":{"x":6493.8537307358165,"y":17117.53624430038},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"706e4ed7-a497-41a4-a9b0-28f07c4c3b69","savedPayload":{"position":{"x":6442.706934786245,"y":17564.620134933997},"targetPosition":{"x":6875.274697958492,"y":17688.656945051647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Resistance Bounces","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Level 1 ZONE","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance1Bounce1","project":"Superalgos","id":"19e11730-5eb7-4185-8d37-0ff69d6124ad","savedPayload":{"position":{"x":12836.41734410961,"y":6363.007333404816},"targetPosition":{"x":12979.279252683024,"y":6548.054726167046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"efea3cfd-0f4a-4ae0-9370-33474500839b","savedPayload":{"position":{"x":12979.279252683024,"y":6548.054726167046},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 1 @ 2 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance1Bounce2","project":"Superalgos","id":"271bbb18-0632-42ad-82c4-c4212c705df2","savedPayload":{"position":{"x":12998.448594212401,"y":6258.054873093001},"targetPosition":{"x":13108.904252765256,"y":6464.092757917595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"928c418e-3c43-4207-b50d-23bad01797e1","savedPayload":{"position":{"x":13108.904252765256,"y":6464.092757917595},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 1 @ 3 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance1Bounce3","project":"Superalgos","id":"a8976927-0aa4-40ea-86d7-027862c25e8e","savedPayload":{"position":{"x":13175.544556459743,"y":6181.20329476786},"targetPosition":{"x":13250.581022563128,"y":6402.611495257482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"fa920c04-f22d-4664-ba32-da5b20c08547","savedPayload":{"position":{"x":13250.581022563128,"y":6402.611495257482},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 1 @ 5 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance1Bounce5","project":"Superalgos","id":"20cbe22e-edd4-4907-97a7-845941d2c1dd","savedPayload":{"position":{"x":13362.87451465624,"y":6134.548909148992},"targetPosition":{"x":13400.444989120326,"y":6365.287986762387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"af681228-ea92-40fa-ad2b-52dd554054e4","savedPayload":{"position":{"x":13400.444989120326,"y":6365.287986762387},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 1 @ 10 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance1Bounce10","project":"Superalgos","id":"7763bf76-320a-46eb-b178-96d26ce2397a","savedPayload":{"position":{"x":13555.328595875053,"y":6119.36432625717},"targetPosition":{"x":13554.408254095375,"y":6353.14032044893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"b51a6189-7b10-413f-b7ac-774c1d3101b0","savedPayload":{"position":{"x":13554.408254095375,"y":6353.14032044893},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 1 @ All","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance1BounceAll","project":"Superalgos","id":"485706b2-81af-4cea-8073-be49adbfb553","savedPayload":{"position":{"x":13747.657154470879,"y":6136.063741930433},"targetPosition":{"x":13708.271100972037,"y":6366.49985298754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"696352b4-4de4-42a0-9262-cc44f98ad112","savedPayload":{"position":{"x":13708.271100972037,"y":6366.49985298754},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 ZONE","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance2Bounce1","project":"Superalgos","id":"5b9eb49c-20c0-4635-90b4-f67412864b48","savedPayload":{"position":{"x":13934.613968728358,"y":6184.191639641339},"targetPosition":{"x":13857.83655237802,"y":6405.002171156265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"33f2c959-9c62-4372-b925-a4cb4caed593","savedPayload":{"position":{"x":13857.83655237802,"y":6405.002171156265},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 @ 2 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance2Bounce2","project":"Superalgos","id":"3e974257-e6e9-4b40-b1df-24c9ecc00ad1","savedPayload":{"position":{"x":14111.09934411458,"y":6262.435215800403},"targetPosition":{"x":13999.024852686998,"y":6467.597032083516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"0b9de83a-dc2c-4031-a516-4410130e45e4","savedPayload":{"position":{"x":13999.024852686998,"y":6467.597032083516},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 @ 3 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance2Bounce3","project":"Superalgos","id":"3c98c74a-5f60-4493-9c7d-398b6c84ce7d","savedPayload":{"position":{"x":14272.299219652057,"y":6368.6601896157845},"targetPosition":{"x":14127.98475311698,"y":6552.5770111358215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"e318ca5e-f179-42c4-a81e-d267697a9d4f","savedPayload":{"position":{"x":14127.98475311698,"y":6552.5770111358215},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 @ 5 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance2Bounce5","project":"Superalgos","id":"79505072-1808-46e6-95be-3676d263ade3","savedPayload":{"position":{"x":14413.816482952832,"y":6499.96902070964},"targetPosition":{"x":14241.1985637576,"y":6657.624076010906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"41586c08-f8d7-4786-8659-fdd065c250f1","savedPayload":{"position":{"x":14241.1985637576,"y":6657.624076010906},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 @ 10 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance2Bounce10","project":"Superalgos","id":"506022c0-8f3e-48c2-a0b6-8f1dc42f31c1","savedPayload":{"position":{"x":14531.79091198204,"y":6652.779946466307},"targetPosition":{"x":14335.578106980967,"y":6779.872816616239},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"4e44fa84-0ff5-414c-ba9c-37444ff4c34b","savedPayload":{"position":{"x":14335.578106980967,"y":6779.872816616239},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 @ All","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance2BounceAll","project":"Superalgos","id":"3267f58b-c446-4ca9-a0c1-614b28dd45da","savedPayload":{"position":{"x":14623.004471852142,"y":6822.924683179494},"targetPosition":{"x":14408.54895487705,"y":6915.9886059867895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"1a91ff9b-6df8-4e5a-8369-f962e2cf0939","savedPayload":{"position":{"x":14408.54895487705,"y":6915.9886059867895},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 ZONE","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance3Bounce1","project":"Superalgos","id":"b8fefe16-88c8-46c7-aff6-f1f6a82a2235","savedPayload":{"position":{"x":14684.969094425887,"y":7005.762125965893},"targetPosition":{"x":14458.120652936042,"y":7062.258560215908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"82c0551b-691c-4d7f-8380-9dcab27af775","savedPayload":{"position":{"x":14458.120652936042,"y":7062.258560215908},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 @ 2 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance3Bounce2","project":"Superalgos","id":"c750976a-b090-4018-98c4-5b435b20586c","savedPayload":{"position":{"x":14715.994546329177,"y":7196.304946007931},"targetPosition":{"x":14482.941014458676,"y":7214.692816249539},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"726070ae-bc63-4509-a421-164dfb43a1ec","savedPayload":{"position":{"x":14482.941014458676,"y":7214.692816249539},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 @ 3 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance3Bounce3","project":"Superalgos","id":"69d28461-7ed2-448f-a240-5bcbe67477d4","savedPayload":{"position":{"x":14715.234534111412,"y":7389.355631882926},"targetPosition":{"x":14482.333004684464,"y":7369.133364949535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"07b0eac7-9674-4894-813b-6750063b7c77","savedPayload":{"position":{"x":14482.333004684464,"y":7369.133364949535},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 @ 5 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance3Bounce5","project":"Superalgos","id":"67145f61-12a8-4ebd-a4c3-4ea001b8d0e8","savedPayload":{"position":{"x":14682.709788924687,"y":7579.648264125781},"targetPosition":{"x":14456.313208535084,"y":7521.367470743819},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"1a5e3bc0-ea93-49fd-a4e3-47734fd92d8a","savedPayload":{"position":{"x":14456.313208535084,"y":7521.367470743819},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 @ 10 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance3Bounce10","project":"Superalgos","id":"cd167fdb-412f-4319-b2e6-9f181d0d8255","savedPayload":{"position":{"x":14619.30750103201,"y":7761.992155784783},"targetPosition":{"x":14405.591378220943,"y":7667.24258407102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"6064d4e0-e627-4f14-8d25-9f7634703aa2","savedPayload":{"position":{"x":14405.591378220943,"y":7667.24258407102},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 @ All","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance3BounceAll","project":"Superalgos","id":"0b609743-af25-4879-af19-a29fe6b69c70","savedPayload":{"position":{"x":14526.75711956967,"y":7931.413440830527},"targetPosition":{"x":14331.551073051069,"y":7802.779612107615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"04d4d459-e942-407a-9fdf-7a010a610e3a","savedPayload":{"position":{"x":14331.551073051069,"y":7802.779612107615},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ae66154f-2772-495c-a77b-1989dba9a3e7","savedPayload":{"position":{"x":6690.576255360793,"y":17452.25371896963},"targetPosition":{"x":6875.274697958492,"y":17688.656945051647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Resistance Levels","config":"{ \n\"codeName\": \"Resistances Rates & Periods\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Rate 1","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance1Rate","project":"Superalgos","id":"bc06940a-6869-473e-9c2b-51e2c842595d","savedPayload":{"position":{"x":11449.086580941446,"y":5743.262585924497},"targetPosition":{"x":12112.362612601031,"y":6397.434927822636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6128b932-f039-4825-aff3-9b000b167e1b","savedPayload":{"position":{"x":12112.362612601031,"y":6397.434927822636},"targetPosition":{"x":12775.958756851214,"y":7051.364410930214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period 1","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance1Period","project":"Superalgos","id":"c32e2d59-7d5b-49b7-b094-4d3cb9110cf0","savedPayload":{"position":{"x":11649.057158444186,"y":5567.481220611895},"targetPosition":{"x":12212.417854912794,"y":6309.455178877819},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"99549259-ee7d-4cc2-9539-4e6fc71685fe","savedPayload":{"position":{"x":12212.417854912794,"y":6309.455178877819},"targetPosition":{"x":12775.958756851214,"y":7051.364410930214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate 2","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance2Rate","project":"Superalgos","id":"a6a4f0a8-8c28-4044-8a6c-5d4570b7e2d4","savedPayload":{"position":{"x":11871.845477222683,"y":5422.105157237463},"targetPosition":{"x":12323.843465363134,"y":6236.735861451476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fdb40161-0479-4dc2-8597-6a07de70a255","savedPayload":{"position":{"x":12323.843465363134,"y":6236.735861451476},"targetPosition":{"x":12775.958756851214,"y":7051.364410930214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period 2","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance2Period","project":"Superalgos","id":"7db005db-700c-4b6c-8778-754f72c74872","savedPayload":{"position":{"x":12113.007832192547,"y":5309.952611259298},"targetPosition":{"x":12444.459641422247,"y":6180.638676113107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c2ae4875-3ec7-43a4-903d-3e60f9c44e97","savedPayload":{"position":{"x":12444.459641422247,"y":6180.638676113107},"targetPosition":{"x":12775.958756851214,"y":7051.364410930214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate 3","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance3Rate","project":"Superalgos","id":"d845f56a-ff31-412a-8a32-0b579d044f09","savedPayload":{"position":{"x":12367.697472748237,"y":5233.269148775038},"targetPosition":{"x":12571.815923044589,"y":6142.293180927769},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"098554ac-043a-43c1-a87c-09bec4bbd3af","savedPayload":{"position":{"x":12571.815923044589,"y":6142.293180927769},"targetPosition":{"x":12775.958756851214,"y":7051.364410930214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period 3","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance3Period","project":"Superalgos","id":"92d8b4e1-da71-47b1-9501-e693f9e76290","savedPayload":{"position":{"x":12630.705785001759,"y":5193.63119226947},"targetPosition":{"x":12703.32939443407,"y":6122.470805495636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bb93a05d-7b62-4a48-9fbd-e6f47a8bd962","savedPayload":{"position":{"x":12703.32939443407,"y":6122.470805495636},"targetPosition":{"x":12775.958756851214,"y":7051.364410930214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate 4","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance4Rate","project":"Superalgos","id":"654cbecf-716f-4df3-a49a-816c0607ea25","savedPayload":{"position":{"x":12896.063116482663,"y":5191.836598099559},"targetPosition":{"x":12836.04006057015,"y":6121.573995978802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dfb65955-2b62-485a-adc3-78dab8ed4602","savedPayload":{"position":{"x":12836.04006057015,"y":6121.573995978802},"targetPosition":{"x":12775.958756851214,"y":7051.364410930214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period 4","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance4Period","project":"Superalgos","id":"32e7a536-bc8a-4e1d-b5ae-2f495604218e","savedPayload":{"position":{"x":13159.586664443475,"y":5227.923839332263},"targetPosition":{"x":12967.83156585525,"y":6139.626932132225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c5d75ff9-cee7-4d53-ac2c-81c6f5ee5f28","savedPayload":{"position":{"x":12967.83156585525,"y":6139.626932132225},"targetPosition":{"x":12775.958756851214,"y":7051.364410930214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate 5","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance5Rate","project":"Superalgos","id":"f4ba1f5e-7fc6-4afa-8cc9-7588c9dd63eb","savedPayload":{"position":{"x":13415.327490100259,"y":5301.17343502693},"targetPosition":{"x":13095.741209385797,"y":6176.271708140687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"57a7830b-b73c-4332-81d2-8fd13a6f2666","savedPayload":{"position":{"x":13095.741209385797,"y":6176.271708140687},"targetPosition":{"x":12775.958756851214,"y":7051.364410930214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period 5","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance5Period","project":"Superalgos","id":"aa5f5bdc-b7c9-4480-a31a-aecd9d050335","savedPayload":{"position":{"x":13658.231918343812,"y":5410.198645529203},"targetPosition":{"x":13217.288724029819,"y":6230.84639733094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94b8ef36-ab61-481b-94e2-59c12afa224a","savedPayload":{"position":{"x":13217.288724029819,"y":6230.84639733094},"targetPosition":{"x":12775.958756851214,"y":7051.364410930214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dfd9d091-e377-4ece-be8c-5916271e161b","savedPayload":{"position":{"x":6864.8048489477405,"y":17388.839696945917},"targetPosition":{"x":6875.274697958492,"y":17688.656945051647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Resistance Zone Sizes","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Zone * 1","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.supportResistanceZone","project":"Superalgos","id":"d6cb0538-10ab-4849-8966-1e5e4071140e","savedPayload":{"position":{"x":13831.861613882029,"y":8926.923540123149},"targetPosition":{"x":13716.063388111445,"y":8909.773700247253},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"65b668fb-93ae-465b-b8cd-4bb809d1133b","savedPayload":{"position":{"x":13716.063388111445,"y":8909.773700247253},"targetPosition":{"x":13254.759105347213,"y":8840.613239383394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Zone * 2","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.supportResistanceZone * 2","project":"Superalgos","id":"0b1d7b11-e52c-4174-bdf1-7073e0ca3cdd","savedPayload":{"position":{"x":13711.105570968513,"y":9204.203628736492},"targetPosition":{"x":13619.508204913298,"y":9131.306940811997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"4c85c218-3b93-4066-9f5a-502c6185f65b","savedPayload":{"position":{"x":13619.508204913298,"y":9131.306940811997},"targetPosition":{"x":13254.759105347213,"y":8840.613239383394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Zone * 3","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.supportResistanceZone * 3","project":"Superalgos","id":"a736e939-3c77-474a-811a-5415d69645d2","savedPayload":{"position":{"x":13467.948528613022,"y":9383.760311671766},"targetPosition":{"x":13425.171586472883,"y":9274.781667525405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"3207cf58-21a5-46a5-859b-09097ae163cc","savedPayload":{"position":{"x":13425.171586472883,"y":9274.781667525405},"targetPosition":{"x":13254.759105347213,"y":8840.613239383394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Zone * 5","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.supportResistanceZone * 5","project":"Superalgos","id":"29bf1a3e-b2a3-4f4d-aa89-cb399a82b956","savedPayload":{"position":{"x":13168.245078865399,"y":9417.565934309492},"targetPosition":{"x":13185.45178968615,"y":9301.806734746733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"4c83cdb9-4a58-455f-ac1a-f945a002d59d","savedPayload":{"position":{"x":13185.45178968615,"y":9301.806734746733},"targetPosition":{"x":13254.759105347213,"y":8840.613239383394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Zone * 10","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.supportResistanceZone * 10","project":"Superalgos","id":"3d9c734f-8270-4a2e-9bc8-a2b44ba14c67","savedPayload":{"position":{"x":12891.232902019365,"y":9296.405924115468},"targetPosition":{"x":12964.030858225542,"y":9205.079312280652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"13dac5fd-938e-4c10-a9bc-3a81bfa60c4f","savedPayload":{"position":{"x":12964.030858225542,"y":9205.079312280652},"targetPosition":{"x":13254.759105347213,"y":8840.613239383394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5341a87b-52b4-455d-b8f6-d1cbc4102fb1","savedPayload":{"position":{"x":7043.032568999715,"y":17439.945673285136},"targetPosition":{"x":6875.274697958492,"y":17688.656945051647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"156b4fa7-7f8f-4464-8ddb-6eb6123bc5c3","savedPayload":{"position":{"x":6875.274697958492,"y":17688.656945051647},"targetPosition":{"x":6977.880740956192,"y":17970.56473128742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Supports","config":"{ \n\"codeName\": \"Resistances-And-Supports\",\n\"icon\": \"layer-support\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Base Support","project":"Superalgos","points":[{"type":"Point","name":"Base Left","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin - (record.end - record.begin)\ny = record.rateSupport","project":"Superalgos","id":"8bb830a6-b8f7-45c5-9f5e-b32b13680bff","savedPayload":{"position":{"x":10051.959831322049,"y":9322.247270852586},"targetPosition":{"x":10827.923351453628,"y":8806.128022917392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c3182836-3d36-45b4-8384-d4ecf78ebcc0","savedPayload":{"position":{"x":10827.923351453628,"y":8806.128022917392},"targetPosition":{"x":11603.92533270528,"y":8289.968102203837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Base Right","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end- (record.end - record.begin)\ny = record.rateSupport","project":"Superalgos","id":"a8ca9f48-585e-4f2d-adb4-e4909bdf4791","savedPayload":{"position":{"x":9743.624542417856,"y":8407.799689063173},"targetPosition":{"x":10673.736653251188,"y":8348.876503125022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"beb7e536-5af8-4b52-8194-8053bf181c4a","savedPayload":{"position":{"x":10673.736653251188,"y":8348.876503125022},"targetPosition":{"x":11603.92533270528,"y":8289.968102203837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f84691c4-7a7e-4dba-bd93-82443b0b1f22","savedPayload":{"position":{"x":6799.0760974197,"y":17473.33777109327},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Support Levels","project":"Superalgos","points":[{"type":"Point","name":"Begin 1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support1Rate","project":"Superalgos","id":"09444c80-7a46-4b7a-8c68-5e01e88e589d","savedPayload":{"position":{"x":11991.0117708082,"y":11431.936825238216},"targetPosition":{"x":11826.608107168144,"y":10513.666696580423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d621b89c-3082-47ed-836e-7a98d611df2b","savedPayload":{"position":{"x":11826.608107168144,"y":10513.666696580423},"targetPosition":{"x":11662.194201726015,"y":9595.295397008213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support1Rate","project":"Superalgos","id":"67cb9789-cfe5-40e4-95c8-9b979a1fab14","savedPayload":{"position":{"x":11726.189847131089,"y":11460.055650483813},"targetPosition":{"x":11694.124365421416,"y":10527.721192620991},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bed52b2e-acb6-4b21-90de-8fd08dcd5d34","savedPayload":{"position":{"x":11694.124365421416,"y":10527.721192620991},"targetPosition":{"x":11662.194201726015,"y":9595.295397008213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support2Rate","project":"Superalgos","id":"03925809-b409-4894-bfda-530b1a0459d1","savedPayload":{"position":{"x":11424.187911531735,"y":11472.339825193978},"targetPosition":{"x":11561.271700832385,"y":10522.788015220935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"95e33e9a-7524-4efa-b431-7b4532cf947b","savedPayload":{"position":{"x":11561.271700832385,"y":10522.788015220935},"targetPosition":{"x":11662.194201726015,"y":9595.295397008213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support2Rate","project":"Superalgos","id":"a62f6b4c-385c-478a-93c1-859aa0474043","savedPayload":{"position":{"x":11198.399716088956,"y":11402.534589673309},"targetPosition":{"x":11430.313728914593,"y":10498.971793032522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"636187fb-4abe-4524-a3e2-c5930abb7b15","savedPayload":{"position":{"x":11430.313728914593,"y":10498.971793032522},"targetPosition":{"x":11662.194201726015,"y":9595.295397008213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support3Rate","project":"Superalgos","id":"7212b514-8bde-4ae1-a992-fb4071aa8488","savedPayload":{"position":{"x":10946.045211521825,"y":11318.148408215879},"targetPosition":{"x":11304.148694004616,"y":10456.784546673687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"85f4f1ed-4b3d-4381-af30-a85e4bfd6dd7","savedPayload":{"position":{"x":11304.148694004616,"y":10456.784546673687},"targetPosition":{"x":11662.194201726015,"y":9595.295397008213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support3Rate","project":"Superalgos","id":"a9fc5970-796f-4544-87ca-00348ed4046a","savedPayload":{"position":{"x":10708.668663032491,"y":11198.702309115031},"targetPosition":{"x":11185.723043754158,"y":10397.08399432563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9fc5841d-ba9c-4ae6-a445-d609b0e947dd","savedPayload":{"position":{"x":11185.723043754158,"y":10397.08399432563},"targetPosition":{"x":11662.194201726015,"y":9595.295397008213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support4Rate","project":"Superalgos","id":"118ccc56-a5b5-4920-a501-4189b994d311","savedPayload":{"position":{"x":10499.612405116659,"y":11003.88549970728},"targetPosition":{"x":11085.875743500652,"y":10278.36108386413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e69a3f5b-dcde-4d4a-8ac7-87616ebf68f3","savedPayload":{"position":{"x":11085.875743500652,"y":10278.36108386413},"targetPosition":{"x":11662.194201726015,"y":9595.295397008213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support4Rate","project":"Superalgos","id":"ebba1443-0bea-488a-96eb-296a71982003","savedPayload":{"position":{"x":10294.600380080316,"y":10864.386052114005},"targetPosition":{"x":10978.193225141138,"y":10229.679564845754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1832f8f2-ac4a-4e1f-94ff-c29c18a350d7","savedPayload":{"position":{"x":10978.193225141138,"y":10229.679564845754},"targetPosition":{"x":11662.194201726015,"y":9595.295397008213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support5Rate","project":"Superalgos","id":"423203ac-08c7-48d8-a842-2b604424d7fb","savedPayload":{"position":{"x":10128.021251642174,"y":10657.009879601028},"targetPosition":{"x":10894.988237435951,"y":10126.076292865784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aa501f2a-8d27-40af-aaea-58bc7c5f42db","savedPayload":{"position":{"x":10894.988237435951,"y":10126.076292865784},"targetPosition":{"x":11662.194201726015,"y":9595.295397008213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support5Rate","project":"Superalgos","id":"7e6b4f5d-ef8e-4dd6-bc79-4df9a7bed772","savedPayload":{"position":{"x":9992.458942693982,"y":10427.708386149658},"targetPosition":{"x":10827.200783319553,"y":10011.383343169347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6aa7f5e1-5987-4619-8ec7-39a424d7734a","savedPayload":{"position":{"x":10827.200783319553,"y":10011.383343169347},"targetPosition":{"x":11662.194201726015,"y":9595.295397008213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"97155ce8-2969-4d0a-8626-1205a45a0ada","savedPayload":{"position":{"x":6799.258153617109,"y":17423.790498281833},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Support Zone 1","project":"Superalgos","points":[{"type":"Point","name":"Begin - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support1Rate - record.support1Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"37e59f5d-ac15-478b-8d47-f834a01baa5b","savedPayload":{"position":{"x":10396.849605033898,"y":8245.179481988838},"targetPosition":{"x":10625.044293162053,"y":8193.905537114431},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"99a2940d-3e17-43dc-82ae-6bfd948adaf5","savedPayload":{"position":{"x":10625.044293162053,"y":8193.905537114431},"targetPosition":{"x":11080.758565701944,"y":8091.419621554778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support1Rate - record.support1Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"79ea9f9a-e251-47d9-ac57-a549e0e31dd5","savedPayload":{"position":{"x":10382.608031546395,"y":8026.391085709707},"targetPosition":{"x":10615.483168499799,"y":8048.071166310296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fbd722bf-0f89-46e6-9933-2ce46f906efa","savedPayload":{"position":{"x":10615.483168499799,"y":8048.071166310296},"targetPosition":{"x":11080.758565701944,"y":8091.419621554778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support1Rate + record.support1Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"14e3bbb5-81e4-4016-866f-6b7bd9772d27","savedPayload":{"position":{"x":10436.970498896597,"y":7813.712085093011},"targetPosition":{"x":10651.816344594521,"y":7906.367384349305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c112aca0-14de-4cc3-9e05-20b28aed8dd2","savedPayload":{"position":{"x":10651.816344594521,"y":7906.367384349305},"targetPosition":{"x":11080.758565701944,"y":8091.419621554778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support1Rate + record.support1Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"90cb47a2-5e59-4c6b-b160-0c9df8ba924d","savedPayload":{"position":{"x":10554.432051386317,"y":7628.129430864593},"targetPosition":{"x":10730.048804557762,"y":7782.711121697232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bef0f6c3-3a0d-4c72-a2df-7714001aeb59","savedPayload":{"position":{"x":10730.048804557762,"y":7782.711121697232},"targetPosition":{"x":11080.758565701944,"y":8091.419621554778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"70ec5d22-e80f-4a61-b20e-ed94be657d01","savedPayload":{"position":{"x":6807.592939873204,"y":17374.948951156715},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Support Zone 2","project":"Superalgos","points":[{"type":"Point","name":"Begin - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support2Rate - record.support2Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"2a58f164-97fc-4550-b028-d35ef0900bcc","savedPayload":{"position":{"x":10283.612073301752,"y":7947.297492377958},"targetPosition":{"x":10515.297483764865,"y":7915.608471127336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c3c04eac-b594-45bd-9306-c615bdf6f960","savedPayload":{"position":{"x":10515.297483764865,"y":7915.608471127336},"targetPosition":{"x":10978.081032640624,"y":7852.2210132035725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support2Rate - record.support2Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"f77871dc-1447-4dc9-8c31-ea23dbd0a485","savedPayload":{"position":{"x":10288.191586242527,"y":7728.0949787281825},"targetPosition":{"x":10518.340242691855,"y":7769.47790900305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"afd0cabf-291e-464f-82f9-5a17f55afd09","savedPayload":{"position":{"x":10518.340242691855,"y":7769.47790900305},"targetPosition":{"x":10978.081032640624,"y":7852.2210132035725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support2Rate + record.support2Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"ec1b5181-9ba5-43b5-8ece-8f4c21ef4202","savedPayload":{"position":{"x":10360.399588365446,"y":7520.831916218435},"targetPosition":{"x":10566.506018848973,"y":7631.383221513704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cdd44658-8050-41fa-8a8f-82677b9a149b","savedPayload":{"position":{"x":10566.506018848973,"y":7631.383221513704},"targetPosition":{"x":10978.081032640624,"y":7852.2210132035725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support2Rate + record.support2Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"ed068681-8ff2-4d6b-a448-b23473de9729","savedPayload":{"position":{"x":10493.216957396893,"y":7345.947754232196},"targetPosition":{"x":10654.970550122198,"y":7514.828748859689},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"827e511d-aebc-49a2-86de-8869ef2a11b5","savedPayload":{"position":{"x":10654.970550122198,"y":7514.828748859689},"targetPosition":{"x":10978.081032640624,"y":7852.2210132035725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a339b25e-ffc5-4c3c-84d3-f27b72414868","savedPayload":{"position":{"x":6823.853104946087,"y":17328.145399803077},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Support Zone 3","project":"Superalgos","points":[{"type":"Point","name":"Begin - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support3Rate - record.support3Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"eacddf75-c7b4-47a1-a099-68e8fcc7f84d","savedPayload":{"position":{"x":10932.273634456647,"y":7647.647001783905},"targetPosition":{"x":11165.88195903421,"y":7635.778102584731},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"765f38a2-4cba-49fd-8c86-dd51c8e215db","savedPayload":{"position":{"x":11165.88195903421,"y":7635.778102584731},"targetPosition":{"x":11632.438497750041,"y":7611.942211736482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support3Rate - record.support3Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"0bff84b6-e263-4c4b-ae96-a7ef1ef6bd3c","savedPayload":{"position":{"x":10955.496425354864,"y":7429.666335299907},"targetPosition":{"x":11181.393357777499,"y":7490.461995842104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"615e7f76-5ca1-4d42-84f6-0129a2eea01c","savedPayload":{"position":{"x":11181.393357777499,"y":7490.461995842104},"targetPosition":{"x":11632.438497750041,"y":7611.942211736482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support3Rate + record.support3Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"6d7cb8d5-bcc9-4a40-adbc-84f31327e14d","savedPayload":{"position":{"x":11045.105572581862,"y":7229.2570142908025},"targetPosition":{"x":11241.104248120937,"y":7356.942710032386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cf270516-0d12-45be-834a-c0024b840b3c","savedPayload":{"position":{"x":11241.104248120937,"y":7356.942710032386},"targetPosition":{"x":11632.438497750041,"y":7611.942211736482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support3Rate + record.support3Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"958558ab-3e1b-40b1-bebe-0a7ef60ab54d","savedPayload":{"position":{"x":11192.316697722516,"y":7066.286026394852},"targetPosition":{"x":11339.15798582333,"y":7248.334574122564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"dd6e16bd-9458-47f8-bce8-856baa66a2d3","savedPayload":{"position":{"x":11339.15798582333,"y":7248.334574122564},"targetPosition":{"x":11632.438497750041,"y":7611.942211736482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"84a9a192-bc61-4080-855b-9cc491fd71fe","savedPayload":{"position":{"x":6847.595113919655,"y":17284.656523094094},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Support Zone 4","project":"Superalgos","points":[{"type":"Point","name":"Begin - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support4Rate - record.support4Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"97800a02-901d-46ef-9174-b40d1fbeb396","savedPayload":{"position":{"x":11539.340110071727,"y":6714.55847180137},"targetPosition":{"x":11723.725133131531,"y":6858.428310003338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8a3f2434-8ab8-44aa-931f-f0aa0bed6310","savedPayload":{"position":{"x":11723.725133131531,"y":6858.428310003338},"targetPosition":{"x":12091.872794460054,"y":7145.828859643613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support4Rate - record.support4Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"bcf5f895-aee0-4e65-b4d6-291f37c6708f","savedPayload":{"position":{"x":11699.967182624368,"y":6564.713907443574},"targetPosition":{"x":11830.784819547382,"y":6758.63037995211},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"13dd9d54-d74f-4863-9e86-88b79c9ebe2b","savedPayload":{"position":{"x":11830.784819547382,"y":6758.63037995211},"targetPosition":{"x":12091.872794460054,"y":7145.828859643613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support4Rate + record.support4Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"25dce519-15a1-4420-a05b-49257bfb8995","savedPayload":{"position":{"x":11898.92152370407,"y":6472.1601077692085},"targetPosition":{"x":11963.338351429044,"y":6697.041911303177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6ae4a3ec-2a81-4bae-ae75-3ced2c5cd1cd","savedPayload":{"position":{"x":11963.338351429044,"y":6697.041911303177},"targetPosition":{"x":12091.872794460054,"y":7145.828859643613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support4Rate + record.support4Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"11d60ea2-9963-46dc-a7c1-953cf8e06e4a","savedPayload":{"position":{"x":12116.293564900345,"y":6445.172550736264},"targetPosition":{"x":12108.197222351868,"y":6678.959573265815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"73ecbfa9-1e21-4c80-8f17-6eff316dc2d5","savedPayload":{"position":{"x":12108.197222351868,"y":6678.959573265815},"targetPosition":{"x":12091.872794460054,"y":7145.828859643613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e1efc35b-b8ca-4abb-bfcc-2b18747ad690","savedPayload":{"position":{"x":6878.171346679908,"y":17245.668584219347},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Support Zone 5","project":"Superalgos","points":[{"type":"Point","name":"Begin - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support5Rate - record.support5Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"3a397c6e-4bcc-464b-8dda-084c9083d8ac","savedPayload":{"position":{"x":11602.572337522783,"y":6668.1521462821665},"targetPosition":{"x":11778.918985447792,"y":6821.812499035845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f1da5793-706f-4884-af96-51be961434e8","savedPayload":{"position":{"x":11778.918985447792,"y":6821.812499035845},"targetPosition":{"x":12130.872860767158,"y":7128.645905776549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support5Rate - record.support5Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"bb8bdab3-a9c1-4288-aa35-3836872c0879","savedPayload":{"position":{"x":11771.11055908613,"y":6527.240750658589},"targetPosition":{"x":11891.239396535475,"y":6727.998580841144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ca37a88a-7a07-40c8-99ac-f8b8ff2d5d4d","savedPayload":{"position":{"x":11891.239396535475,"y":6727.998580841144},"targetPosition":{"x":12130.872860767158,"y":7128.645905776549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support5Rate + record.support5Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"3331746d-bc53-41a4-990f-5eb061c90f71","savedPayload":{"position":{"x":11974.6599319819,"y":6445.36415272243},"targetPosition":{"x":12026.788533151877,"y":6673.466617399639},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e1833970-01d0-4715-ad2d-9e717510fd30","savedPayload":{"position":{"x":12026.788533151877,"y":6673.466617399639},"targetPosition":{"x":12130.872860767158,"y":7128.645905776549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support5Rate + record.support5Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"39bc39ce-251f-4b18-8979-503e0ff9ccf2","savedPayload":{"position":{"x":12193.251608290575,"y":6430.301174749914},"targetPosition":{"x":12172.496106819512,"y":6663.3456969479885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"15092839-5205-4e95-b729-0ed82fcfe928","savedPayload":{"position":{"x":12172.496106819512,"y":6663.3456969479885},"targetPosition":{"x":12130.872860767158,"y":7128.645905776549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fc8b9272-d199-4b95-b168-a8da25c5b86b","savedPayload":{"position":{"x":6914.747763303432,"y":17212.245072517373},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Support Line 1","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.support1Rate > 0","project":"Superalgos","id":"e5678d95-7929-42d1-8eb2-ba51b0572876","savedPayload":{"position":{"x":10972.11117591483,"y":8563.74208669509},"targetPosition":{"x":11588.25314840889,"y":8697.11751078076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [1,5],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"1b1df2b6-4914-4feb-a4f7-c8f512b9782d","savedPayload":{"position":{"x":10412.869689874256,"y":8240.879128486185},"targetPosition":{"x":11000.561419141573,"y":8468.998319633472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c7501b66-ee83-48ae-8985-758803465027","savedPayload":{"position":{"x":11000.561419141573,"y":8468.998319633472},"targetPosition":{"x":11588.25314840889,"y":8697.11751078076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 1","project":"Superalgos","id":"7df5f6a2-5785-4f8d-a580-1b389606d6e9","savedPayload":{"position":{"x":11043.482583179903,"y":8379.871604142088},"targetPosition":{"x":11588.25314840889,"y":8697.11751078076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 1","id":"d621b89c-3082-47ed-836e-7a98d611df2b"}}},{"type":"Polygon Vertex","name":"End 1","project":"Superalgos","id":"78cc5e46-abcc-4801-9115-a66e8ac81704","savedPayload":{"position":{"x":11099.81780652402,"y":8298.556535750951},"targetPosition":{"x":11588.25314840889,"y":8697.11751078076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 1","id":"bed52b2e-acb6-4b21-90de-8fd08dcd5d34"}}}],"id":"8baf5a5e-fde5-4405-aea2-035bfa3872c1","savedPayload":{"position":{"x":6956.326654492343,"y":17185.2976942588},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Support Line 2","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.support2Rate > 0","project":"Superalgos","id":"0ae326f3-874b-47bb-9064-2e04fa2e38eb","savedPayload":{"position":{"x":11046.008466831929,"y":8391.80531767649},"targetPosition":{"x":11635.390067107273,"y":8615.52224434002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [1,5],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TURQUOISE\"\n }\n}","project":"Superalgos","id":"b09aa70a-6823-45fb-aa40-9ebf5df20f73","savedPayload":{"position":{"x":10541.133473086858,"y":7989.1978535340695},"targetPosition":{"x":11088.261770097066,"y":8302.360048937044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"87204e2e-e562-426d-aed8-5ead73ef48f7","savedPayload":{"position":{"x":11088.261770097066,"y":8302.360048937044},"targetPosition":{"x":11635.390067107273,"y":8615.52224434002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 2","project":"Superalgos","id":"787fc2c9-a2c4-447e-b7ab-fa46c78b9653","savedPayload":{"position":{"x":11143.987187849307,"y":8220.62587277416},"targetPosition":{"x":11635.390067107273,"y":8615.52224434002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 2","id":"95e33e9a-7524-4efa-b431-7b4532cf947b"}}},{"type":"Polygon Vertex","name":"End 2","project":"Superalgos","id":"3e493a72-7315-4688-93f2-54973cdba641","savedPayload":{"position":{"x":11211.812575361531,"y":8148.615355865146},"targetPosition":{"x":11635.390067107273,"y":8615.52224434002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 2","id":"636187fb-4abe-4524-a3e2-c5930abb7b15"}}}],"id":"baca2e09-2b91-4b8b-9176-e758bfcb4258","savedPayload":{"position":{"x":7001.773856483091,"y":17165.561503675952},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Support Line 3","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.support3Rate > 0","project":"Superalgos","id":"07949760-a5fe-4a9c-a3e7-85628f7703ad","savedPayload":{"position":{"x":11144.656185098844,"y":8232.80482296671},"targetPosition":{"x":11694.111602129102,"y":8541.865785747534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [1,5],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","project":"Superalgos","id":"25eef631-4528-4acd-b69c-26a6d97436fb","savedPayload":{"position":{"x":10705.425756728728,"y":7759.446438350907},"targetPosition":{"x":11199.768679428915,"y":8150.656112049219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"66ae3554-cec4-4591-a346-32f09e0212ab","savedPayload":{"position":{"x":11199.768679428915,"y":8150.656112049219},"targetPosition":{"x":11694.111602129102,"y":8541.865785747534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 3","project":"Superalgos","id":"b5b6232d-dde2-49f8-854d-722a4cbf9f01","savedPayload":{"position":{"x":11267.053537145963,"y":8078.140281648653},"targetPosition":{"x":11694.111602129102,"y":8541.865785747534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 3","id":"85f4f1ed-4b3d-4381-af30-a85e4bfd6dd7"}}},{"type":"Polygon Vertex","name":"End 3","project":"Superalgos","id":"0ff2207e-8476-4417-acb7-e799b37e48ee","savedPayload":{"position":{"x":11344.853981747354,"y":8017.042912175713},"targetPosition":{"x":11694.111602129102,"y":8541.865785747534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 3","id":"9fc5841d-ba9c-4ae6-a445-d609b0e947dd"}}}],"id":"fbe179c2-99ac-44f0-952c-c9ebb205b252","savedPayload":{"position":{"x":7049.849688077371,"y":17153.574852599526},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Support Line 4","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.support4Rate > 0","project":"Superalgos","id":"38995b73-26f1-4211-81b1-4bc4500c9715","savedPayload":{"position":{"x":11265.948183752113,"y":8090.265400466944},"targetPosition":{"x":11763.203491468568,"y":8477.766488164405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [1,5],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","project":"Superalgos","id":"0e256852-2fcc-44db-b917-47ac825583c9","savedPayload":{"position":{"x":10902.174002720301,"y":7556.7301394888955},"targetPosition":{"x":11332.688747094435,"y":8017.248313826651},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8dcde804-7625-49ec-95ea-938eaf512aa6","savedPayload":{"position":{"x":11332.688747094435,"y":8017.248313826651},"targetPosition":{"x":11763.203491468568,"y":8477.766488164405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 4","project":"Superalgos","id":"f0498624-74bb-4833-8113-f5570e7078f8","savedPayload":{"position":{"x":11410.030012239771,"y":7955.570713010746},"targetPosition":{"x":11763.203491468568,"y":8477.766488164405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 4","id":"e69a3f5b-dcde-4d4a-8ac7-87616ebf68f3"}}},{"type":"Polygon Vertex","name":"End 4","project":"Superalgos","id":"1f0b03df-f4f7-4a58-80c5-6690c44859fb","savedPayload":{"position":{"x":11496.067580559298,"y":7906.751305247542},"targetPosition":{"x":11763.203491468568,"y":8477.766488164405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 4","id":"1832f8f2-ac4a-4e1f-94ff-c29c18a350d7"}}}],"id":"764238be-83c1-4523-a7a8-8f8245651b61","savedPayload":{"position":{"x":7099.242765913641,"y":17149.66470562401},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Support Line 5","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.support5Rate > 0","project":"Superalgos","id":"d6c0fe91-6372-42e7-b594-2effc21b9086","savedPayload":{"position":{"x":11407.098756760464,"y":7967.398835568401},"targetPosition":{"x":11841.046093278397,"y":8424.683914209609},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [1,5],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"7d618b16-acc1-481e-a9a1-a5fe7702098b","savedPayload":{"position":{"x":11126.906937152475,"y":7385.604994317875},"targetPosition":{"x":11483.976515215436,"y":7905.144454263742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1ed4cfc8-ac56-40de-9fc0-038c38385637","savedPayload":{"position":{"x":11483.976515215436,"y":7905.144454263742},"targetPosition":{"x":11841.046093278397,"y":8424.683914209609},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 5","project":"Superalgos","id":"841fe68b-d131-4a9e-8968-0fdd36967327","savedPayload":{"position":{"x":11569.646511728308,"y":7855.682858715561},"targetPosition":{"x":11841.046093278397,"y":8424.683914209609},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 5","id":"aa501f2a-8d27-40af-aaea-58bc7c5f42db"}}},{"type":"Polygon Vertex","name":"End 5","project":"Superalgos","id":"212c5989-a35a-42a2-b0e5-2427d138c950","savedPayload":{"position":{"x":11661.999266662515,"y":7820.231957559881},"targetPosition":{"x":11841.046093278397,"y":8424.683914209609},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 5","id":"6aa7f5e1-5987-4619-8ec7-39a424d7734a"}}}],"id":"96977063-3da0-4745-9c71-782818e4a157","savedPayload":{"position":{"x":7148.605775586671,"y":17153.937721365914},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Support Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.typeSupport=== 'Support'","project":"Superalgos","id":"056d896f-1067-4317-92af-3d201055435d","savedPayload":{"position":{"x":12585.851409834679,"y":6180.212982822518},"targetPosition":{"x":12754.236705322011,"y":7096.66276211842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0,\n \"paletteColor\": \"UI_COLOR.DARK\"\n }\n}","project":"Superalgos","id":"068045f8-ddda-41c1-92b4-2d42f9e9608d","savedPayload":{"position":{"x":12878.257493495308,"y":5241.5006039278915},"targetPosition":{"x":12877.139484333155,"y":6173.0265088499655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.typeSupport=== 'Support'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK\",\n \"opacity\": 0.5\n}","project":"Superalgos","id":"05143777-f193-4148-95f6-ea719e452836","savedPayload":{"position":{"x":13361.795547172755,"y":4374.25858021936},"targetPosition":{"x":13119.514555264665,"y":5273.615244767358},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"73181d20-e10c-44c4-b54c-2504b7474582","savedPayload":{"position":{"x":13119.514555264665,"y":5273.615244767358},"targetPosition":{"x":12877.139484333155,"y":6173.0265088499655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"40d55683-c8d8-407f-9fe3-f13a713fc79d","savedPayload":{"position":{"x":12877.139484333155,"y":6173.0265088499655},"targetPosition":{"x":12754.236705322011,"y":7096.66276211842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Base Left","project":"Superalgos","id":"362ecc6e-b0b5-456d-b727-f97b1bd60f5e","savedPayload":{"position":{"x":13156.636843506985,"y":6256.346100858263},"targetPosition":{"x":12754.236705322011,"y":7096.66276211842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Base Left","id":"c3182836-3d36-45b4-8384-d4ecf78ebcc0"}}},{"type":"Polygon Vertex","name":"Base Right","project":"Superalgos","id":"63d2fd83-f7a5-4267-a416-7a5ff9e163fc","savedPayload":{"position":{"x":13396.61875799283,"y":6421.904279960588},"targetPosition":{"x":12754.236705322011,"y":7096.66276211842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Base Right","id":"beb7e536-5af8-4b52-8194-8053bf181c4a"}}}],"id":"b4567b9b-e1e1-463b-bf64-ab3e25bcbced","savedPayload":{"position":{"x":7196.592222872339,"y":17166.277343094716},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Support Zone 1","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.support1Bounce1 > 0","project":"Superalgos","id":"b5bd335d-555f-4cf5-a870-84130fccdf43","savedPayload":{"position":{"x":7514.953391315019,"y":16984.041548612826},"targetPosition":{"x":7468.081378171071,"y":17280.357282896097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"56f2b454-13f9-44ac-9714-9169421c3ab5","savedPayload":{"position":{"x":7336.065223552207,"y":16826.872382936454},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"bf1ec91e-798c-4f93-bfb3-d89c15f94b3e","savedPayload":{"position":{"x":7190.349888131015,"y":16545.397718446533},"targetPosition":{"x":7385.032277077469,"y":16773.64926265621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"369f0304-059f-4776-b557-4bd973c8ebed","savedPayload":{"position":{"x":7385.032277077469,"y":16773.64926265621},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 2","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"0245085a-a486-4195-ba1b-259323a5e8a5","savedPayload":{"position":{"x":7310.912460789288,"y":16465.481778063775},"targetPosition":{"x":7445.313563406606,"y":16733.69129246483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3014da4a-245e-47bb-b1c4-690199dae1de","savedPayload":{"position":{"x":7445.313563406606,"y":16733.69129246483},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 3","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"43cecedf-d860-49a4-96fe-9df0d1ddf168","savedPayload":{"position":{"x":7447.096840559541,"y":16416.74056183116},"targetPosition":{"x":7513.405753291732,"y":16709.320684348524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ec472c0f-1f89-4700-8727-ef9439a38cea","savedPayload":{"position":{"x":7513.405753291732,"y":16709.320684348524},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 4","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"f4a644bc-9041-4f3a-9a8e-9e028d229848","savedPayload":{"position":{"x":7590.988486299604,"y":16402.00673206902},"targetPosition":{"x":7585.351576161764,"y":16701.953769467455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"787cc836-17ba-4215-9fee-bb95a8faaae7","savedPayload":{"position":{"x":7585.351576161764,"y":16701.953769467455},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 5","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.4\n}","project":"Superalgos","id":"f9a74516-d1e2-4856-9a22-4478cdca1820","savedPayload":{"position":{"x":7734.2249385839095,"y":16422.136565407825},"targetPosition":{"x":7656.969802303916,"y":16712.018686136857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"26987001-a080-4d7c-86d2-d7962d00f6d1","savedPayload":{"position":{"x":7656.969802303916,"y":16712.018686136857},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 6","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"55e75ea7-2000-4205-bf6c-8c11a5275b2f","savedPayload":{"position":{"x":7868.481815449013,"y":16475.96018910291},"targetPosition":{"x":7724.098240736468,"y":16738.9304979844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a3eda536-af6e-4f5f-bb22-656d6b39bebc","savedPayload":{"position":{"x":7724.098240736468,"y":16738.9304979844},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 7","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"7b0919e6-f6bc-41bb-b622-526bb07e47a6","savedPayload":{"position":{"x":7985.956595215415,"y":16560.349569786005},"targetPosition":{"x":7782.835630619669,"y":16781.125188325947},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c028550f-7cfc-4396-9cd0-c3fcdece2fe5","savedPayload":{"position":{"x":7782.835630619669,"y":16781.125188325947},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 8","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1\n}","project":"Superalgos","id":"b9e4b31f-f89c-42d0-8354-120ebdc6d77f","savedPayload":{"position":{"x":8079.822070686547,"y":16670.400303394752},"targetPosition":{"x":7829.768368355235,"y":16836.15055513032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"11201d66-b0d7-4bd4-8c18-7b64130a5a90","savedPayload":{"position":{"x":7829.768368355235,"y":16836.15055513032},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 9","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"82aa4a80-1427-44c3-b120-1d9fab15f7e1","savedPayload":{"position":{"x":8144.623121615128,"y":16799.716641309933},"targetPosition":{"x":7862.168893819526,"y":16900.80872408791},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9a635365-7b91-4391-9bb0-85cfee5834b3","savedPayload":{"position":{"x":7862.168893819526,"y":16900.80872408791},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 10","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"4bde1691-62af-4346-947e-080566ff50bd","savedPayload":{"position":{"x":8176.593746463441,"y":16940.78318801769},"targetPosition":{"x":7878.154206243682,"y":16971.34199744179},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"079b7df2-d09b-42c1-9ecc-2bd9fc5e9254","savedPayload":{"position":{"x":7878.154206243682,"y":16971.34199744179},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 11","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1\n}","project":"Superalgos","id":"bbb57f56-8fe2-4df4-9655-7f5e55b002f9","savedPayload":{"position":{"x":8173.875928723792,"y":17085.40166857939},"targetPosition":{"x":7876.7952973738575,"y":17043.65123772264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ca5d32e3-e0ab-4eff-9628-dbb733efdc25","savedPayload":{"position":{"x":7876.7952973738575,"y":17043.65123772264},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f57c1875-5b81-4ad3-a305-10c63f3f1c58","savedPayload":{"position":{"x":7579.714666023923,"y":17001.900806865888},"targetPosition":{"x":7468.081378171071,"y":17280.357282896097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin - Zone Resistance","project":"Superalgos","id":"ba9a2688-0072-44cc-8a9a-968ecfaf7bf3","savedPayload":{"position":{"x":7638.8781815398725,"y":17033.723035560088},"targetPosition":{"x":7468.081378171071,"y":17280.357282896097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin - Zone Resistance","id":"99a2940d-3e17-43dc-82ae-6bfd948adaf5"}}},{"type":"Polygon Vertex","name":"End - Zone Resistance","project":"Superalgos","id":"4f693d5f-4a81-4dd4-b408-a9b01aa92b16","savedPayload":{"position":{"x":7689.477232149566,"y":17077.912535270647},"targetPosition":{"x":7468.081378171071,"y":17280.357282896097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End - Zone Resistance","id":"fbd722bf-0f89-46e6-9933-2ce46f906efa"}}},{"type":"Polygon Vertex","name":"End + Zone Resistance","project":"Superalgos","id":"4daa243a-7b3c-438d-b721-34db4423fe57","savedPayload":{"position":{"x":7728.974570172202,"y":17132.25345996279},"targetPosition":{"x":7468.081378171071,"y":17280.357282896097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End + Zone Resistance","id":"bef0f6c3-3a0d-4c72-a2df-7714001aeb59"}}},{"type":"Polygon Vertex","name":"Begin + Zone Resistance","project":"Superalgos","id":"76f18b23-1e2e-4234-995e-0af0e8b0ea33","savedPayload":{"position":{"x":7755.389634152805,"y":17194.020928764516},"targetPosition":{"x":7468.081378171071,"y":17280.357282896097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin + Zone Resistance","id":"c112aca0-14de-4cc3-9e05-20b28aed8dd2"}}}],"id":"d4705ff6-d94b-4f94-8fd0-9215cf9844ad","savedPayload":{"position":{"x":7241.893162580021,"y":17186.34697809664},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Support Zone 2","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.support2Bounce1 > 0","project":"Superalgos","id":"6c4c67af-9468-47f7-b51a-b79b93a2d251","savedPayload":{"position":{"x":7597.586504683393,"y":17031.36021885846},"targetPosition":{"x":7502.58179782753,"y":17315.91971294578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"a50dcbd3-d699-44cf-a9f2-58d88a7ee84b","savedPayload":{"position":{"x":7447.0073327948085,"y":16846.8906110682},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"e1af646c-9718-461e-9b49-565c1c972f1e","savedPayload":{"position":{"x":7349.608571699122,"y":16545.270938195812},"targetPosition":{"x":7504.066777209766,"y":16802.45309688967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"110cf71c-ed22-41e1-8ad6-a1bf36d645ed","savedPayload":{"position":{"x":7504.066777209766,"y":16802.45309688967},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 2","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"1058548a-13b4-4a58-9b33-d0aebfd91caa","savedPayload":{"position":{"x":7481.680559472123,"y":16486.288894327103},"targetPosition":{"x":7570.102771096266,"y":16772.962074955314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"52bd90e4-a17b-4890-b825-0b52f27b2c4d","savedPayload":{"position":{"x":7570.102771096266,"y":16772.962074955314},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 3","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"a8f6da8e-f165-4a12-983f-ef8a97327020","savedPayload":{"position":{"x":7624.03010232099,"y":16460.627656945384},"targetPosition":{"x":7641.2775425207,"y":16760.131456264455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"47385aa9-0c34-4751-95bb-21858278cb38","savedPayload":{"position":{"x":7641.2775425207,"y":16760.131456264455},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 4","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"d9af1bcb-8bc7-4769-a529-9838c89427fa","savedPayload":{"position":{"x":7768.384362234887,"y":16469.77856389249},"targetPosition":{"x":7713.454672477648,"y":16764.706909738008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ded9c2c3-27b0-482f-a30f-950ef8749323","savedPayload":{"position":{"x":7713.454672477648,"y":16764.706909738008},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 5","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.4\n}","project":"Superalgos","id":"a0d2dd1f-91ef-4687-98a0-a5a01e852281","savedPayload":{"position":{"x":7906.353994333993,"y":16513.20979771884},"targetPosition":{"x":7782.439488527201,"y":16786.422526651182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a9acf6d3-26d8-431e-bbba-4f6420852018","savedPayload":{"position":{"x":7782.439488527201,"y":16786.422526651182},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 6","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"93ec8d12-8654-45cc-9239-7b0bbbd22cd0","savedPayload":{"position":{"x":8029.920705099925,"y":16588.39729298056},"targetPosition":{"x":7844.222843910167,"y":16824.016274282043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4fa39625-af25-4f04-a5e7-e92e5e0eba1d","savedPayload":{"position":{"x":7844.222843910167,"y":16824.016274282043},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 7","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"032131bf-e21c-4bd2-ac78-2d7734ab4225","savedPayload":{"position":{"x":8131.903246449685,"y":16690.97142574846},"targetPosition":{"x":7895.214114585047,"y":16875.303340665992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"62862dc4-aad1-4ef9-b295-7c59bc879cda","savedPayload":{"position":{"x":7895.214114585047,"y":16875.303340665992},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 8","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1\n}","project":"Superalgos","id":"e1a38cbf-808e-47f3-af28-faa275e82913","savedPayload":{"position":{"x":8206.374763771477,"y":16814.970960267885},"targetPosition":{"x":7932.449873245943,"y":16937.303107925705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3dbc7e95-34b0-4d83-a7e8-caf0028b681f","savedPayload":{"position":{"x":7932.449873245943,"y":16937.303107925705},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 9","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"7f50ebb2-5ead-4674-b471-360ac903cbd1","savedPayload":{"position":{"x":8249.007243171509,"y":16953.189494312515},"targetPosition":{"x":7953.766112945959,"y":17006.41237494802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"da7f2571-7735-4eaa-bb9e-ecc31babe8fc","savedPayload":{"position":{"x":7953.766112945959,"y":17006.41237494802},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 10","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"6aaeedbe-c4d7-46a6-96c5-0f6970c4be89","savedPayload":{"position":{"x":8257.323039909803,"y":17097.594269087625},"targetPosition":{"x":7957.924011315106,"y":17078.614762335576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a06c3c37-a556-472b-90bb-25d9bf66b34f","savedPayload":{"position":{"x":7957.924011315106,"y":17078.614762335576},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 11","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1\n}","project":"Superalgos","id":"561e0e03-b5e4-4b7e-a606-2053b174544a","savedPayload":{"position":{"x":8230.838870106636,"y":17239.793003973275},"targetPosition":{"x":7944.681926413523,"y":17149.7141297784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"980dd97a-6ccf-45d3-9ddd-464b406af3d8","savedPayload":{"position":{"x":7944.681926413523,"y":17149.7141297784},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8708e97c-7c5f-45c3-bb04-4cdb69f35d2a","savedPayload":{"position":{"x":7658.52498272041,"y":17059.635255583526},"targetPosition":{"x":7502.58179782753,"y":17315.91971294578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin - Zone Resistance","project":"Superalgos","id":"4a490153-7666-425a-94db-a3407072e08d","savedPayload":{"position":{"x":7711.643818304867,"y":17100.76146515143},"targetPosition":{"x":7502.58179782753,"y":17315.91971294578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin - Zone Resistance","id":"c3c04eac-b594-45bd-9306-c615bdf6f960"}}},{"type":"Polygon Vertex","name":"End - Zone Resistance","project":"Superalgos","id":"bb165791-a19f-42c9-99fd-f55009e98305","savedPayload":{"position":{"x":7754.279411215615,"y":17152.676607686346},"targetPosition":{"x":7502.58179782753,"y":17315.91971294578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End - Zone Resistance","id":"afd0cabf-291e-464f-82f9-5a17f55afd09"}}},{"type":"Polygon Vertex","name":"End + Zone Resistance","project":"Superalgos","id":"ec5ae905-f05e-4f65-b5a2-8423bd220ec3","savedPayload":{"position":{"x":7784.293834793381,"y":17212.777441162816},"targetPosition":{"x":7502.58179782753,"y":17315.91971294578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End + Zone Resistance","id":"827e511d-aebc-49a2-86de-8869ef2a11b5"}}},{"type":"Polygon Vertex","name":"Begin + Zone Resistance","project":"Superalgos","id":"558801bf-b8f7-4caa-93c2-312ae077baff","savedPayload":{"position":{"x":7800.1820405106555,"y":17278.0502588311},"targetPosition":{"x":7502.58179782753,"y":17315.91971294578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin + Zone Resistance","id":"cdd44658-8050-41fa-8a8f-82677b9a149b"}}}],"id":"40c0fced-4d4b-476f-becb-4201ccb21c2f","savedPayload":{"position":{"x":7283.272903165238,"y":17213.59917904648},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Support Zone 3","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.support3Bounce1 > 0","project":"Superalgos","id":"677b5709-c562-4782-b8db-e5301a57aeab","savedPayload":{"position":{"x":7671.30421294794,"y":17091.634487555708},"targetPosition":{"x":7530.7582931244,"y":17356.675700239615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"d915645d-778e-46cd-be7c-9205cde4a151","savedPayload":{"position":{"x":7553.141444212099,"y":16884.89628767571},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"88e66929-008b-44f9-8836-1555529a886c","savedPayload":{"position":{"x":7506.716041744985,"y":16571.359004833004},"targetPosition":{"x":7616.736846615979,"y":16850.456519145722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8024c736-7b70-4f68-9cd7-d8f250cc5da0","savedPayload":{"position":{"x":7616.736846615979,"y":16850.456519145722},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 2","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"dfc32a91-65d3-4e33-8120-e88b82c065ed","savedPayload":{"position":{"x":7646.694865092242,"y":16534.91973388036},"targetPosition":{"x":7686.726258289607,"y":16832.2368836694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1cb52d9c-92a1-4ea3-8925-1addc66bc0db","savedPayload":{"position":{"x":7686.726258289607,"y":16832.2368836694},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 3","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"a5f79b1b-8f2e-4796-b074-08d4266f66ef","savedPayload":{"position":{"x":7791.32664656837,"y":16533.038447011462},"targetPosition":{"x":7759.042149027671,"y":16831.29624023495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"45e75d66-4aac-484c-942a-f8318f6e9179","savedPayload":{"position":{"x":7759.042149027671,"y":16831.29624023495},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 4","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"d1ec8f71-dd0c-4de4-b253-d9f80019a5dc","savedPayload":{"position":{"x":7932.205912749123,"y":16565.824477780934},"targetPosition":{"x":7829.481782118048,"y":16847.689255619687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"25eb0205-21fc-4b8f-9dfd-06521be651e3","savedPayload":{"position":{"x":7829.481782118048,"y":16847.689255619687},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 5","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.4\n}","project":"Superalgos","id":"9139ee33-0888-47ca-8409-3dab12aeb215","savedPayload":{"position":{"x":8061.145272759357,"y":16631.372421252814},"targetPosition":{"x":7893.951462123165,"y":16880.463227355627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a9cb240b-9c72-4f63-97cb-e96c9de9056e","savedPayload":{"position":{"x":7893.951462123165,"y":16880.463227355627},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 6","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"37d2335d-1d62-4b51-a447-0de74026f077","savedPayload":{"position":{"x":8170.651239670791,"y":16725.87286920961},"targetPosition":{"x":7948.704445578882,"y":16927.713451334024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"21e67adf-b609-4620-88ac-5f83fb548d1c","savedPayload":{"position":{"x":7948.704445578882,"y":16927.713451334024},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 7","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"bc7b72e5-ccc9-4836-a8ff-f3e2cfbce33b","savedPayload":{"position":{"x":8254.359724724527,"y":16843.83379911121},"targetPosition":{"x":7990.55868810575,"y":16986.693916284825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"620ca150-1755-4a08-8279-9540cab4d22c","savedPayload":{"position":{"x":7990.55868810575,"y":16986.693916284825},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 8","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1\n}","project":"Superalgos","id":"72241449-0948-4815-8d2b-d13d53c2d3e3","savedPayload":{"position":{"x":8307.405895037198,"y":16978.39975048228},"targetPosition":{"x":8017.081773262085,"y":17053.97689197036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e9311367-87a5-40a0-90ba-560154520098","savedPayload":{"position":{"x":8017.081773262085,"y":17053.97689197036},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 9","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"db418ffb-8e5d-4e3e-815f-daaf5b18dead","savedPayload":{"position":{"x":8326.706900005222,"y":17121.75023935646},"targetPosition":{"x":8026.732275746097,"y":17125.65213640745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"349ab36a-f489-4737-810c-de215405546f","savedPayload":{"position":{"x":8026.732275746097,"y":17125.65213640745},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 10","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"18cbc1ae-04b1-4950-b2ca-ebf928c2cf89","savedPayload":{"position":{"x":8311.141035376153,"y":17265.55425637821},"targetPosition":{"x":8018.949343431563,"y":17197.554144918326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e79dddb-47f4-4e90-8917-0002eac04b6b","savedPayload":{"position":{"x":8018.949343431563,"y":17197.554144918326},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 11","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1\n}","project":"Superalgos","id":"bccbf11b-3740-4519-9811-1fa1d7eef10f","savedPayload":{"position":{"x":8261.612932622622,"y":17401.454434784562},"targetPosition":{"x":7994.185292054797,"y":17265.5042341215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9cdb42b3-d922-40d0-9643-5b1ddc9125a4","savedPayload":{"position":{"x":7994.185292054797,"y":17265.5042341215},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b8a6b5be-21fa-4e43-a687-d20a2149cb2f","savedPayload":{"position":{"x":7726.7576514869725,"y":17129.55403345844},"targetPosition":{"x":7530.7582931244,"y":17356.675700239615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin - Zone Resistance","project":"Superalgos","id":"d2da5bdd-6b2e-4284-af0f-1caaec186399","savedPayload":{"position":{"x":7772.382863775663,"y":17178.862408111065},"targetPosition":{"x":7530.7582931244,"y":17356.675700239615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin - Zone Resistance","id":"765f38a2-4cba-49fd-8c86-dd51c8e215db"}}},{"type":"Polygon Vertex","name":"End - Zone Resistance","project":"Superalgos","id":"ea5e5b65-da6f-49b3-89c2-d7fa902069c7","savedPayload":{"position":{"x":7805.892011155556,"y":17237.087083714665},"targetPosition":{"x":7530.7582931244,"y":17356.675700239615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End - Zone Resistance","id":"615e7f76-5ca1-4d42-84f6-0129a2eea01c"}}},{"type":"Polygon Vertex","name":"End + Zone Resistance","project":"Superalgos","id":"d0aca66f-f495-4355-b75e-b5f11c39cfc7","savedPayload":{"position":{"x":7825.604805055013,"y":17301.308431909398},"targetPosition":{"x":7530.7582931244,"y":17356.675700239615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End + Zone Resistance","id":"dd6e16bd-9458-47f8-bce8-856baa66a2d3"}}},{"type":"Polygon Vertex","name":"Begin + Zone Resistance","project":"Superalgos","id":"d05af5c5-9b11-4c9f-be10-b189ef3163fb","savedPayload":{"position":{"x":7830.532763674455,"y":17368.30612613179},"targetPosition":{"x":7530.7582931244,"y":17356.675700239615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin + Zone Resistance","id":"cf270516-0d12-45be-834a-c0024b840b3c"}}}],"id":"dfa786b7-df65-4c51-b088-dd550ae0c5df","savedPayload":{"position":{"x":7319.60271317375,"y":17247.2905769435},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Support Zone 4","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.support4Bounce1 > 0","project":"Superalgos","id":"e751bdf0-0b5a-4063-84af-ea10f0e47a21","savedPayload":{"position":{"x":7734.0956891949245,"y":17163.22022977781},"targetPosition":{"x":7551.842282720627,"y":17401.513527687162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"251e1404-86d3-4985-8e43-486cc1d6867e","savedPayload":{"position":{"x":7651.572495915589,"y":16939.85271697453},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"bffe3c87-6a71-4824-8446-5f070847eca1","savedPayload":{"position":{"x":7657.386816034359,"y":16622.950303906753},"targetPosition":{"x":7719.969139511657,"y":16916.350121200805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a7c57b61-1430-462d-8869-3bb85750888d","savedPayload":{"position":{"x":7719.969139511657,"y":16916.350121200805},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 2","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"f42177ce-d5a0-4226-8e34-b771cb3ed2fd","savedPayload":{"position":{"x":7801.454217552517,"y":16610.047774191687},"targetPosition":{"x":7792.002840270736,"y":16909.898856343272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dacf8a6e-f8c0-4c0e-9b70-25b69f62fe1a","savedPayload":{"position":{"x":7792.002840270736,"y":16909.898856343272},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 3","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"2b6ddd44-b538-437b-b367-f8e4c5a42e8a","savedPayload":{"position":{"x":7944.423059684155,"y":16631.99775443724},"targetPosition":{"x":7863.487261336555,"y":16920.87384646605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b4b1adb4-b1e3-450e-8fbb-267cf539096f","savedPayload":{"position":{"x":7863.487261336555,"y":16920.87384646605},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 4","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"07471740-91b1-4b7a-bdf2-9d9000ca954d","savedPayload":{"position":{"x":8077.98451299519,"y":16687.524591576486},"targetPosition":{"x":7930.267987992072,"y":16948.63726503567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b2157982-6f42-4894-b0dc-f54c76e26599","savedPayload":{"position":{"x":7930.267987992072,"y":16948.63726503567},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 5","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.4\n}","project":"Superalgos","id":"66b9ff42-57a7-4e1a-90f8-88b9b48815a8","savedPayload":{"position":{"x":8194.376471295302,"y":16773.401267666723},"targetPosition":{"x":7988.463967142128,"y":16991.57560308079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0ed11a98-f701-4fb3-bfbd-b85a77c75f77","savedPayload":{"position":{"x":7988.463967142128,"y":16991.57560308079},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 6","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"609e711b-56c4-422f-8923-ada3996f8918","savedPayload":{"position":{"x":8286.83465703564,"y":16884.636942442612},"targetPosition":{"x":8034.693060012298,"y":17047.193440468734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f729b19a-9c9f-4989-90d0-0b98bc32b3b7","savedPayload":{"position":{"x":8034.693060012298,"y":17047.193440468734},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 7","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"f6080a9c-0a1f-4ee8-a798-ac58f005709d","savedPayload":{"position":{"x":8349.985736532824,"y":17014.767002811397},"targetPosition":{"x":8066.26859976089,"y":17112.258470653127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7ccc66c2-8828-422b-97e1-12e68712370d","savedPayload":{"position":{"x":8066.26859976089,"y":17112.258470653127},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 8","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1\n}","project":"Superalgos","id":"54310033-693e-4fe0-972e-b49accb8da77","savedPayload":{"position":{"x":8380.159598591297,"y":17156.228762667964},"targetPosition":{"x":8081.355530790126,"y":17182.98935058141},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8a0d9b37-3bd7-4661-a28d-986595d5b68c","savedPayload":{"position":{"x":8081.355530790126,"y":17182.98935058141},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 9","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"eab6472b-f317-4781-94d1-3d7d0a9db088","savedPayload":{"position":{"x":8375.602648025753,"y":17300.80097872204},"targetPosition":{"x":8079.077055507354,"y":17255.27545860845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"694fbf14-504d-42e9-a147-58bffbb1b360","savedPayload":{"position":{"x":8079.077055507354,"y":17255.27545860845},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 10","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"25858bf4-0cc5-48ef-857b-76a094552764","savedPayload":{"position":{"x":8336.579718239216,"y":17440.081639275177},"targetPosition":{"x":8059.5655906140855,"y":17324.915788885017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"768cec8a-5e96-48b0-adc2-2a0c78439daf","savedPayload":{"position":{"x":8059.5655906140855,"y":17324.915788885017},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 11","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1\n}","project":"Superalgos","id":"914bef52-f072-49f8-878e-70fb2ec7b266","savedPayload":{"position":{"x":8265.3586800683,"y":17565.97625860062},"targetPosition":{"x":8023.955071528628,"y":17387.86309854774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"edea1467-c5a4-4cc2-8c4c-cf03700c57a8","savedPayload":{"position":{"x":8023.955071528628,"y":17387.86309854774},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20788642-ead1-4b31-abca-6877c0b3d548","savedPayload":{"position":{"x":7782.551462988955,"y":17209.749938494857},"targetPosition":{"x":7551.842282720627,"y":17401.513527687162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin - Zone Resistance","project":"Superalgos","id":"1fc429c5-f3e3-4cbc-b3c7-fa2b8be4b650","savedPayload":{"position":{"x":7819.438515126698,"y":17265.895474309018},"targetPosition":{"x":7551.842282720627,"y":17401.513527687162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin - Zone Resistance","id":"8a3f2434-8ab8-44aa-931f-f0aa0bed6310"}}},{"type":"Polygon Vertex","name":"End - Zone Resistance","project":"Superalgos","id":"54aebf2a-bfb4-4a58-9a4d-12ae422638e0","savedPayload":{"position":{"x":7842.90717478704,"y":17328.841465611236},"targetPosition":{"x":7551.842282720627,"y":17401.513527687162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End - Zone Resistance","id":"13dd9d54-d74f-4863-9e86-88b79c9ebe2b"}}},{"type":"Polygon Vertex","name":"End + Zone Resistance","project":"Superalgos","id":"006283cf-eb63-4341-8c76-b9ed8707c013","savedPayload":{"position":{"x":7851.780625378029,"y":17395.431537558045},"targetPosition":{"x":7551.842282720627,"y":17401.513527687162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End + Zone Resistance","id":"73ecbfa9-1e21-4c80-8f17-6eff316dc2d5"}}},{"type":"Polygon Vertex","name":"Begin + Zone Resistance","project":"Superalgos","id":"3a0c604a-2ba5-40a4-9cef-6f8bda916c1c","savedPayload":{"position":{"x":7845.61391503473,"y":17462.326585886105},"targetPosition":{"x":7551.842282720627,"y":17401.513527687162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin + Zone Resistance","id":"6ae4a3ec-2a81-4bae-ae75-3ced2c5cd1cd"}}}],"id":"c246d453-c21e-4977-a94c-395c8ddfcee1","savedPayload":{"position":{"x":7349.891610093273,"y":17286.502158279993},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Support Zone 5","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.support5Bounce1 > 0","project":"Superalgos","id":"eeaae66c-8f4b-4bc0-912f-f80476486d24","savedPayload":{"position":{"x":7542.732022390981,"y":17082.581362191933},"targetPosition":{"x":7373.313391773107,"y":17330.16433333406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"7c2c5a70-1ccb-4b1e-89b9-93a35e3ff9bd","savedPayload":{"position":{"x":7448.531314037198,"y":16863.882140084057},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"3503a74e-27ab-432d-b23b-384ea189b71c","savedPayload":{"position":{"x":7437.60678348006,"y":16547.11471695042},"targetPosition":{"x":7515.59176052819,"y":16836.8013465259},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b0eb4942-d207-41d7-baea-235288d4c3ba","savedPayload":{"position":{"x":7515.59176052819,"y":16836.8013465259},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 2","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"0014c98f-7ca4-42ce-a904-5358de2ae8cb","savedPayload":{"position":{"x":7580.792083266399,"y":16526.624197719844},"targetPosition":{"x":7587.18441042136,"y":16826.556086910612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"17498492-0347-435c-b51c-471ec5dde3f5","savedPayload":{"position":{"x":7587.18441042136,"y":16826.556086910612},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 3","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"9d45d527-de65-4e27-a6eb-bebd02822ac4","savedPayload":{"position":{"x":7724.720380690902,"y":16540.995580872688},"targetPosition":{"x":7659.148559133613,"y":16833.741778487034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"abc17a70-8a33-482c-98a1-1e9d8fb506d1","savedPayload":{"position":{"x":7659.148559133613,"y":16833.741778487034},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 4","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"095551e1-caff-4550-b6e3-e9fe57fdf87d","savedPayload":{"position":{"x":7861.027086265338,"y":16589.39365385796},"targetPosition":{"x":7727.301911920829,"y":16857.94081497967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6ce3a570-fffb-47b8-adbd-bb5e47ddce01","savedPayload":{"position":{"x":7727.301911920829,"y":16857.94081497967},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 5","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.4\n}","project":"Superalgos","id":"eb84ebd8-a82a-49eb-a125-7b73255da111","savedPayload":{"position":{"x":7981.790549716425,"y":16669.005696593587},"targetPosition":{"x":7787.683643646375,"y":16897.746836347484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"af63db19-44f6-4044-a45e-b02db4d50245","savedPayload":{"position":{"x":7787.683643646375,"y":16897.746836347484},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 6","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"9804666d-4352-4e5d-b37c-85e9d2f2a060","savedPayload":{"position":{"x":8079.9924375057235,"y":16775.204946533784},"targetPosition":{"x":7836.784587541024,"y":16950.846461317582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4cd1a79d-2d39-4612-a7f7-d6fc395785a3","savedPayload":{"position":{"x":7836.784587541024,"y":16950.846461317582},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 7","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"e5eea939-7487-42d4-a1b7-7becb3ddf4ab","savedPayload":{"position":{"x":8149.9256128642555,"y":16901.81948929059},"targetPosition":{"x":7871.751175220288,"y":17014.153732695984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0489d2e1-3816-4129-9bb6-c9624e283e96","savedPayload":{"position":{"x":7871.751175220288,"y":17014.153732695984},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 8","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1\n}","project":"Superalgos","id":"32efd876-da55-4e6e-a4fe-bc3c06825c31","savedPayload":{"position":{"x":8187.525813836932,"y":17041.49094786412},"targetPosition":{"x":7890.551275706628,"y":17083.98946198275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d85e2688-1a84-4349-b57c-87e2c28b6c74","savedPayload":{"position":{"x":7890.551275706628,"y":17083.98946198275},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 9","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"1b688d9a-3f2c-406d-9611-700096e746a7","savedPayload":{"position":{"x":8190.607853414393,"y":17186.102124767174},"targetPosition":{"x":7892.092295495357,"y":17156.295050434277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dddeb326-80d2-4698-b151-22fc5776db4a","savedPayload":{"position":{"x":7892.092295495357,"y":17156.295050434277},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 10","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"260cbf65-ecbe-495a-8e31-5e3bab3c44ff","savedPayload":{"position":{"x":8158.99261465915,"y":17327.248744038377},"targetPosition":{"x":7876.284676117735,"y":17226.86836006988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6817cd8b-baac-49cb-912e-c59d0fd08a74","savedPayload":{"position":{"x":7876.284676117735,"y":17226.86836006988},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 11","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1\n}","project":"Superalgos","id":"c74a9428-2a15-465f-a320-6a1df372b6ec","savedPayload":{"position":{"x":8094.517460330946,"y":17456.72787721279},"targetPosition":{"x":7844.047098953633,"y":17291.607926657085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f56948e0-bcae-48d5-9460-1b3136a9f5ab","savedPayload":{"position":{"x":7844.047098953633,"y":17291.607926657085},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c53fa25f-d13c-4bba-ad54-f63bc4ab370e","savedPayload":{"position":{"x":7593.576737576321,"y":17126.48797610138},"targetPosition":{"x":7373.313391773107,"y":17330.16433333406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin - Zone Resistance","project":"Superalgos","id":"97ae8c75-04ed-4106-a8bc-860b928c801c","savedPayload":{"position":{"x":7633.376528863453,"y":17180.60777304088},"targetPosition":{"x":7373.313391773107,"y":17330.16433333406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin - Zone Resistance","id":"f1da5793-706f-4884-af96-51be961434e8"}}},{"type":"Polygon Vertex","name":"End - Zone Resistance","project":"Superalgos","id":"ff09c05e-8165-4874-ab3e-6b4d536152f5","savedPayload":{"position":{"x":7660.135668527786,"y":17242.226960407286},"targetPosition":{"x":7373.313391773107,"y":17330.16433333406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End - Zone Resistance","id":"ca37a88a-7a07-40c8-99ac-f8b8ff2d5d4d"}}},{"type":"Polygon Vertex","name":"End + Zone Resistance","project":"Superalgos","id":"d05060f1-47ba-4fb0-9cf1-112b43d7052d","savedPayload":{"position":{"x":7672.512341570113,"y":17308.255694846735},"targetPosition":{"x":7373.313391773107,"y":17330.16433333406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End + Zone Resistance","id":"15092839-5205-4e95-b729-0ed82fcfe928"}}},{"type":"Polygon Vertex","name":"Begin + Zone Resistance","project":"Superalgos","id":"b45229f5-8479-4ece-a945-ffb00fd63b70","savedPayload":{"position":{"x":7669.88592992361,"y":17375.38301990244},"targetPosition":{"x":7373.313391773107,"y":17330.16433333406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin + Zone Resistance","id":"e1833970-01d0-4715-ad2d-9e717510fd30"}}}],"id":"be7397f9-5610-4d38-86ee-90c2dfceceef","savedPayload":{"position":{"x":7373.313391773107,"y":17330.16433333406},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"6daa712b-9aa6-4363-a987-cbef7c95d404","savedPayload":{"position":{"x":7098.1404551822525,"y":17449.66268046893},"targetPosition":{"x":7170.717023862151,"y":17740.751398351727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Support Levels","config":"{ \n\"codeName\": \"Resistances Rates & Periods\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Rate 1","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support1Rate","project":"Superalgos","id":"7e6ffb7b-700e-4870-be11-e85a42a4b1c4","savedPayload":{"position":{"x":12660.02370251853,"y":6116.5837618853475},"targetPosition":{"x":12973.467942074065,"y":6993.842466073841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"645eb939-2442-4527-b2a9-41dc9fe757a9","savedPayload":{"position":{"x":12973.467942074065,"y":6993.842466073841},"targetPosition":{"x":13287.748172890337,"y":7871.164714053828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period 1","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support1Period","project":"Superalgos","id":"6c18d565-f06e-4461-93e0-5076f32d9599","savedPayload":{"position":{"x":12916.274035755076,"y":6044.9504193666135},"targetPosition":{"x":13101.966941213755,"y":6958.134171499978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eb9da961-accc-4205-8ae9-4ca89af0cdc2","savedPayload":{"position":{"x":13101.966941213755,"y":6958.134171499978},"targetPosition":{"x":13287.748172890337,"y":7871.164714053828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate 2","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support2Rate","project":"Superalgos","id":"6e0aeeb7-3c81-4ecf-b6f8-09bb8fe599b3","savedPayload":{"position":{"x":13179.94098081714,"y":6010.956171355818},"targetPosition":{"x":13233.898807679252,"y":6940.852257514184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a3c3d8ed-b1c8-454d-91f6-a1f178f12baa","savedPayload":{"position":{"x":13233.898807679252,"y":6940.852257514184},"targetPosition":{"x":13287.748172890337,"y":7871.164714053828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period 2","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support2Period","project":"Superalgos","id":"18e53d69-4c32-4e34-a1ae-c8017b851080","savedPayload":{"position":{"x":13445.590834858594,"y":6014.487186421219},"targetPosition":{"x":13366.606108798529,"y":6942.667620239159},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a43ed0c5-2a03-4c06-8ecf-464f323253ce","savedPayload":{"position":{"x":13366.606108798529,"y":6942.667620239159},"targetPosition":{"x":13287.748172890337,"y":7871.164714053828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate 3","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support3Rate","project":"Superalgos","id":"84073b24-07af-4253-91f0-1a3363515fea","savedPayload":{"position":{"x":13708.420632946807,"y":6056.026419645773},"targetPosition":{"x":13497.977795751394,"y":6963.682696481296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7ddd82f0-f22d-4b58-8c82-72da0faad6df","savedPayload":{"position":{"x":13497.977795751394,"y":6963.682696481296},"targetPosition":{"x":13287.748172890337,"y":7871.164714053828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period 3","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support3Period","project":"Superalgos","id":"cb9423ad-6fc8-4cf8-996c-f6c3ca9d6423","savedPayload":{"position":{"x":13962.192577666614,"y":6134.2249892778855},"targetPosition":{"x":13625.07730741646,"y":7002.5804419478745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d65c13d2-d9b5-426d-916c-fcb049ca684a","savedPayload":{"position":{"x":13625.07730741646,"y":7002.5804419478745},"targetPosition":{"x":13287.748172890337,"y":7871.164714053828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate 4","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support4Rate","project":"Superalgos","id":"3eefba37-d0b5-48c7-8930-2065d0370fd6","savedPayload":{"position":{"x":14202.48038140568,"y":6248.044823916847},"targetPosition":{"x":13745.157842646924,"y":7059.594935258309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cc6ea81e-db56-45ca-ad89-43e3cab97406","savedPayload":{"position":{"x":13745.157842646924,"y":7059.594935258309},"targetPosition":{"x":13287.748172890337,"y":7871.164714053828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period 4","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support4Period","project":"Superalgos","id":"a39d8363-6920-4001-b0f2-0d194c34a7f2","savedPayload":{"position":{"x":14424.175772627164,"y":6394.604006909249},"targetPosition":{"x":13856.06515628512,"y":7132.918477367295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"99f78253-63c7-40f4-bc8a-7e37349ff6f6","savedPayload":{"position":{"x":13856.06515628512,"y":7132.918477367295},"targetPosition":{"x":13287.748172890337,"y":7871.164714053828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate 5","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support5Rate","project":"Superalgos","id":"344a9d6b-1f59-401c-8b50-97f740c8f141","savedPayload":{"position":{"x":14623.487790961022,"y":6571.733762801851},"targetPosition":{"x":13955.62071716741,"y":7221.518604522331},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f01c7994-93d3-46f2-9135-e25955247914","savedPayload":{"position":{"x":13955.62071716741,"y":7221.518604522331},"targetPosition":{"x":13287.748172890337,"y":7871.164714053828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period 5","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support5Period","project":"Superalgos","id":"27ddb6f4-212d-4220-82e7-04b4e3a45fd6","savedPayload":{"position":{"x":14795.237618882486,"y":6775.432788430428},"targetPosition":{"x":14041.60665967776,"y":7323.440280536206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c2195d70-d9d9-4377-8909-adefddae101f","savedPayload":{"position":{"x":14041.60665967776,"y":7323.440280536206},"targetPosition":{"x":13287.748172890337,"y":7871.164714053828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"635f72c8-0556-46db-87cf-4c15449c1e70","savedPayload":{"position":{"x":7283.099001886927,"y":17462.59624198169},"targetPosition":{"x":7170.717023862151,"y":17740.751398351727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Support Bounces","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Level 1 ZONE","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support1Bounce1","project":"Superalgos","id":"d13fcc7c-cc42-4496-ba29-dc8724b5fb29","savedPayload":{"position":{"x":13639.142681930462,"y":7281.150819451561},"targetPosition":{"x":13687.732176151541,"y":7509.7895641433415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"62364bde-b261-4f32-839d-ef2c3878c99f","savedPayload":{"position":{"x":13687.732176151541,"y":7509.7895641433415},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 1 @ 2 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support1Bounce2","project":"Superalgos","id":"b6e48da2-5f15-4a39-b91a-164c7f27926f","savedPayload":{"position":{"x":13830.530963639114,"y":7256.784600603553},"targetPosition":{"x":13840.661954382624,"y":7490.396919855984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"cf514f7a-499b-48ac-90e9-f94e9808edd1","savedPayload":{"position":{"x":13840.661954382624,"y":7490.396919855984},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 1 @ 3 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support1Bounce3","project":"Superalgos","id":"642b6ab0-0e00-4f24-9ade-b09618f11590","savedPayload":{"position":{"x":14022.55994851972,"y":7264.298737366085},"targetPosition":{"x":13994.289926646074,"y":7496.43741064804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"5bdd2b93-c16d-4580-b7f3-b330bb69092d","savedPayload":{"position":{"x":13994.289926646074,"y":7496.43741064804},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 1 @ 5 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support1Bounce5","project":"Superalgos","id":"469287dc-1f38-42ce-975c-099fb1cd9f40","savedPayload":{"position":{"x":14211.200111379949,"y":7303.421774355864},"targetPosition":{"x":14145.055961141785,"y":7527.722499475192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c2d2df4c-2b45-4840-82f8-c012a1743b02","savedPayload":{"position":{"x":14145.055961141785,"y":7527.722499475192},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 1 @ 10 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support1Bounce10","project":"Superalgos","id":"19caf103-9282-4809-b7c6-a069ad289a2c","savedPayload":{"position":{"x":14390.795411869276,"y":7373.064464460795},"targetPosition":{"x":14288.596602520658,"y":7583.394186134639},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"79e1a09f-925e-48b6-85c2-a22026e04dac","savedPayload":{"position":{"x":14288.596602520658,"y":7583.394186134639},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 1 @ All","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support1BounceAll","project":"Superalgos","id":"f19ab711-2207-4110-9d97-06477cfeb543","savedPayload":{"position":{"x":14556.46217678722,"y":7471.31864469663},"targetPosition":{"x":14421.0068389989,"y":7661.931281778161},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"eefbe053-1588-40a7-ac65-228590b7046b","savedPayload":{"position":{"x":14421.0068389989,"y":7661.931281778161},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 ZONE","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support2Bounce1","project":"Superalgos","id":"08a5148e-4fe4-45bf-aa97-2e58a63a74ef","savedPayload":{"position":{"x":14703.688281341976,"y":7595.500435170847},"targetPosition":{"x":14538.679508713984,"y":7761.190277996524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"fb6ade4e-292b-47b3-b20f-05fb859b98b4","savedPayload":{"position":{"x":14538.679508713984,"y":7761.190277996524},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 @ 2 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support2Bounce2","project":"Superalgos","id":"c9b2a0ac-b81c-4fc7-8e1d-091853938587","savedPayload":{"position":{"x":14828.460097064399,"y":7742.220679503347},"targetPosition":{"x":14638.406138269405,"y":7878.463491710692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"9a56c631-2c1c-4ae7-a194-89b346df3463","savedPayload":{"position":{"x":14638.406138269405,"y":7878.463491710692},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 @ 3 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support2Bounce3","project":"Superalgos","id":"0373e364-a16d-4b51-b329-012a61b7ace6","savedPayload":{"position":{"x":14927.377312008957,"y":7907.476253072073},"targetPosition":{"x":14717.46756362035,"y":8010.551591081479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"30071839-72eb-494e-afc6-9a6ab94f9b70","savedPayload":{"position":{"x":14717.46756362035,"y":8010.551591081479},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 @ 5 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support2Bounce5","project":"Superalgos","id":"a2473366-94ac-4849-b862-43428d6d0a98","savedPayload":{"position":{"x":14997.739386510428,"y":8086.757474633909},"targetPosition":{"x":14773.707510638014,"y":8153.852172791792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"8deff06c-f8bc-4726-9907-4b14d0254746","savedPayload":{"position":{"x":14773.707510638014,"y":8153.852172791792},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 @ 10 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support2Bounce10","project":"Superalgos","id":"d4532f24-7d16-49af-a0ca-46e75a7c2f86","savedPayload":{"position":{"x":15037.629444750106,"y":8275.000402941383},"targetPosition":{"x":14805.59152988483,"y":8304.291951748883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"ebc42c04-3f1f-4236-8367-ce463bf2c90f","savedPayload":{"position":{"x":14805.59152988483,"y":8304.291951748883},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 @ All","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support2BounceAll","project":"Superalgos","id":"6da34bd1-0980-452b-b6c8-89db0c82d5f5","savedPayload":{"position":{"x":15045.96237097475,"y":8466.951518760048},"targetPosition":{"x":14812.279714096203,"y":8457.815835023473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"f4a89e5c-6c86-4244-97c1-ad22ea7cd312","savedPayload":{"position":{"x":14812.279714096203,"y":8457.815835023473},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 ZONE","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support3Bounce1","project":"Superalgos","id":"84bdb475-2001-4b44-8cf2-03dfd526b973","savedPayload":{"position":{"x":15022.52917493831,"y":8658.118553594264},"targetPosition":{"x":14793.69885317461,"y":8610.789464837419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"b405e855-bb60-4161-93f2-9598d0622c20","savedPayload":{"position":{"x":14793.69885317461,"y":8610.789464837419},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 @ 2 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support3Bounce2","project":"Superalgos","id":"5ad12a0a-2cae-46ed-b896-7e5db84d4f22","savedPayload":{"position":{"x":14967.791746863451,"y":8842.826056844542},"targetPosition":{"x":14749.953897371557,"y":8758.528115026893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"5edc75a9-9864-48d5-ae37-fa72c4aad2a9","savedPayload":{"position":{"x":14749.953897371557,"y":8758.528115026893},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 @ 3 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support3Bounce3","project":"Superalgos","id":"a9b8e084-a12c-496c-95b1-d99be5ef8b0e","savedPayload":{"position":{"x":14883.572881144726,"y":9016.282838258481},"targetPosition":{"x":14682.47103299804,"y":8896.985968614901},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"d88536c7-cf92-48b1-8501-20b57d8d8a0a","savedPayload":{"position":{"x":14682.47103299804,"y":8896.985968614901},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 @ 5 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support3Bounce5","project":"Superalgos","id":"8d5ba2b2-d7aa-44bf-861c-d584c25b2a6f","savedPayload":{"position":{"x":14771.993794378537,"y":9173.38449109148},"targetPosition":{"x":14593.320478659738,"y":9022.574013840967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"4e750e36-67f4-41fc-b154-e516bc793142","savedPayload":{"position":{"x":14593.320478659738,"y":9022.574013840967},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 @ 10 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support3Bounce10","project":"Superalgos","id":"01c3a535-80db-4473-9a07-0779645fd2aa","savedPayload":{"position":{"x":14635.901554658532,"y":9309.69917181917},"targetPosition":{"x":14484.575859612702,"y":9131.516262705574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"f8eeae14-9884-4912-9eee-161a8b911600","savedPayload":{"position":{"x":14484.575859612702,"y":9131.516262705574},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 @ All","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support3BounceAll","project":"Superalgos","id":"778b179e-29a7-4ab3-bbb6-ce81bb805cad","savedPayload":{"position":{"x":14479.00433215949,"y":9421.927626080538},"targetPosition":{"x":14359.257330091397,"y":9221.241429698795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"0a53817d-766f-49f1-b233-6cd6bdddd754","savedPayload":{"position":{"x":14359.257330091397,"y":9221.241429698795},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7d34b4e7-0593-4b2a-8e4f-a06e6625f6d5","savedPayload":{"position":{"x":7425.13145270908,"y":17581.775619081767},"targetPosition":{"x":7170.717023862151,"y":17740.751398351727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Support Zone Sizes","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Zone * 1","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.supportResistanceZone","project":"Superalgos","id":"799aebef-4e58-4e2c-ba9f-16ea325ac998","savedPayload":{"position":{"x":13930.09380222697,"y":9715.54530717583},"targetPosition":{"x":13814.295576456385,"y":9698.395467299933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"f1f1c795-56fe-4091-804e-d4d472c9142c","savedPayload":{"position":{"x":13814.295576456385,"y":9698.395467299933},"targetPosition":{"x":13352.991293692154,"y":9629.235006436074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Zone * 2","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.supportResistanceZone * 2","project":"Superalgos","id":"32b7a21a-d80c-4bbd-9782-7300dea36122","savedPayload":{"position":{"x":13809.337759313454,"y":9992.825395789172},"targetPosition":{"x":13717.740393258238,"y":9919.928707864678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"19bdcbf6-4979-4b04-ae57-cbe7517c04ea","savedPayload":{"position":{"x":13717.740393258238,"y":9919.928707864678},"targetPosition":{"x":13352.991293692154,"y":9629.235006436074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Zone * 3","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.supportResistanceZone * 3","project":"Superalgos","id":"fbe0c934-822f-4d54-ad5a-d377b3611066","savedPayload":{"position":{"x":13566.180716957962,"y":10172.382078724446},"targetPosition":{"x":13523.403774817823,"y":10063.403434578086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"3f670609-9458-4bb5-8ab5-cc6b36257377","savedPayload":{"position":{"x":13523.403774817823,"y":10063.403434578086},"targetPosition":{"x":13352.991293692154,"y":9629.235006436074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Zone * 5","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.supportResistanceZone * 5","project":"Superalgos","id":"5feb8c45-b7d1-49cb-83b7-74518d752328","savedPayload":{"position":{"x":13266.477267210339,"y":10206.187701362172},"targetPosition":{"x":13283.683978031091,"y":10090.428501799413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"f4944a67-3321-49f2-9cfe-fa63ebaf74e1","savedPayload":{"position":{"x":13283.683978031091,"y":10090.428501799413},"targetPosition":{"x":13352.991293692154,"y":9629.235006436074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Zone * 10","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.supportResistanceZone * 10","project":"Superalgos","id":"68e84fc5-33ac-4e6b-a7c5-688ced53e4a7","savedPayload":{"position":{"x":12989.465090364305,"y":10085.027691168149},"targetPosition":{"x":13062.263046570482,"y":9993.701079333332},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"7d9369a7-6fbb-4e97-b447-6620d98d3089","savedPayload":{"position":{"x":13062.263046570482,"y":9993.701079333332},"targetPosition":{"x":13352.991293692154,"y":9629.235006436074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"24739677-7e84-4013-81db-db4de744c467","savedPayload":{"position":{"x":7469.986238940099,"y":17761.678340474966},"targetPosition":{"x":7170.717023862151,"y":17740.751398351727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1a104c65-6470-4694-a39e-4663f15e490c","savedPayload":{"position":{"x":7170.717023862151,"y":17740.751398351727},"targetPosition":{"x":6977.880740956192,"y":17970.56473128742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0fd59bed-c28b-434c-801e-a2671e609f0d","savedPayload":{"position":{"x":6977.880740956191,"y":17972.56473128742},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Fees Band","config":"{ \n \"codeName\": \"Fees-Band\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Fees Band","config":"{ \n \"codeName\": \"Module-Name\", \n \"icon\": \"band\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Upper Band","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginUpperBand","project":"Superalgos","id":"77e2cda7-d480-4c63-9ade-2223cf5866c4","savedPayload":{"position":{"x":7542.677770506758,"y":17576.04013463916},"targetPosition":{"x":7765.641466904544,"y":17545.837649830188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b2e952c2-3a4a-4857-b329-08b1a7db3f92","savedPayload":{"position":{"x":7765.641466904544,"y":17545.837649830188},"targetPosition":{"x":7988.605163302331,"y":17515.635165021216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Upper Band","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endUpperBand","project":"Superalgos","id":"8adb9a33-c824-453b-a8bd-46e0503934bf","savedPayload":{"position":{"x":7592.3371739668,"y":17302.39426690837},"targetPosition":{"x":7790.471168634565,"y":17409.014715964793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ff8660a3-65b0-4df3-b823-f0656537ea30","savedPayload":{"position":{"x":7790.471168634565,"y":17409.014715964793},"targetPosition":{"x":7988.605163302331,"y":17515.635165021216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Lower Band","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginLowerBand","project":"Superalgos","id":"16e335e4-11dd-4e86-93f6-46670d92aa65","savedPayload":{"position":{"x":7793.357480699429,"y":17110.19917446513},"targetPosition":{"x":7890.98132200088,"y":17312.917169743174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a5d52420-869d-4597-bbf8-27288030c2cb","savedPayload":{"position":{"x":7890.98132200088,"y":17312.917169743174},"targetPosition":{"x":7988.605163302331,"y":17515.635165021216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Lower Band","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endLowerBand","project":"Superalgos","id":"ee0c792c-0b87-448f-a86a-026997df426f","savedPayload":{"position":{"x":8068.95576596172,"y":17072.866850151833},"targetPosition":{"x":8028.7804646320255,"y":17294.251007586525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad2678ac-2687-4a83-84f5-3447adab39e0","savedPayload":{"position":{"x":8028.7804646320255,"y":17294.251007586525},"targetPosition":{"x":7988.605163302331,"y":17515.635165021216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8d7e9c7b-b8b1-4194-a81e-fb5ba2ee3c9d","savedPayload":{"position":{"x":7082.342007435971,"y":17424.210686539758},"targetPosition":{"x":7375.786287656112,"y":17486.584193785086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.2\n }\n}","project":"Superalgos","id":"7a0a39fb-3009-4c68-b5af-76ebfac5b5f4","savedPayload":{"position":{"x":6796.300474090258,"y":16944.185639329127},"targetPosition":{"x":7070.3641113830345,"y":17066.206632251866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"67bb5ca8-09fc-4b35-9e01-53acbcde2f6d","savedPayload":{"position":{"x":7070.3641113830345,"y":17066.206632251866},"targetPosition":{"x":7344.427748675818,"y":17188.227625174604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Upper Band","project":"Superalgos","id":"770ba99e-6809-491a-bdc2-3351fb82a848","savedPayload":{"position":{"x":7168.092172988076,"y":16945.52252686212},"targetPosition":{"x":7344.427748675818,"y":17188.227625174604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Upper Band","id":"b2e952c2-3a4a-4857-b329-08b1a7db3f92"}}},{"type":"Polygon Vertex","name":"End Upper Band","project":"Superalgos","id":"1f0c5a04-316d-46f3-9809-9e7b7f5c8d68","savedPayload":{"position":{"x":7313.069209695521,"y":16889.871056564123},"targetPosition":{"x":7344.427748675818,"y":17188.227625174604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Upper Band","id":"ff8660a3-65b0-4df3-b823-f0656537ea30"}}},{"type":"Polygon Vertex","name":"End Lower Band","project":"Superalgos","id":"784a2f26-c01b-4dd4-be3e-c19a67e51efb","savedPayload":{"position":{"x":7466.448741598557,"y":16914.163987881824},"targetPosition":{"x":7344.427748675818,"y":17188.227625174604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Lower Band","id":"ad2678ac-2687-4a83-84f5-3447adab39e0"}}},{"type":"Polygon Vertex","name":"Begin Lower Band","project":"Superalgos","id":"c5b96ae9-9650-461f-b480-e934eaed42b9","savedPayload":{"position":{"x":7587.132846988301,"y":17011.89204948686},"targetPosition":{"x":7344.427748675818,"y":17188.227625174604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Lower Band","id":"a5d52420-869d-4597-bbf8-27288030c2cb"}}}],"id":"170768fe-218b-4efc-84b1-7fe4360c4bc6","savedPayload":{"position":{"x":7344.427748675818,"y":17188.227625174604},"targetPosition":{"x":7375.786287656112,"y":17486.584193785086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Upper Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.5,\n \"lineWidth\": 0.2\n }\n}","project":"Superalgos","id":"ef35f6f5-edb4-4e2b-ae3b-b12322a6eb01","savedPayload":{"position":{"x":7864.870694676072,"y":16804.414944964028},"targetPosition":{"x":7757.360309812484,"y":17084.489072913188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c9a19eef-84bb-422d-befa-b7e893ef3813","savedPayload":{"position":{"x":7757.360309812484,"y":17084.489072913188},"targetPosition":{"x":7649.849924948892,"y":17364.563200862347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Upper Band","project":"Superalgos","id":"0453f7d1-db79-436f-b0ab-27cd121aa058","savedPayload":{"position":{"x":7923.9135622416725,"y":17242.54220793961},"targetPosition":{"x":7649.849924948892,"y":17364.563200862347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Upper Band","id":"b2e952c2-3a4a-4857-b329-08b1a7db3f92"}}},{"type":"Polygon Vertex","name":"End Upper Band","project":"Superalgos","id":"41e230e4-78d4-43e9-85fb-e5ff01740d63","savedPayload":{"position":{"x":7929.924052898052,"y":17472.07358572594},"targetPosition":{"x":7649.849924948892,"y":17364.563200862347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Upper Band","id":"ff8660a3-65b0-4df3-b823-f0656537ea30"}}}],"id":"93a6b8eb-8c5d-4661-858f-9eb37058f104","savedPayload":{"position":{"x":7649.849924948892,"y":17364.563200862347},"targetPosition":{"x":7375.786287656112,"y":17486.584193785086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Lower Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.5,\n \"lineWidth\": 0.2\n }\n}","project":"Superalgos","id":"5f6e5be0-8b6e-4466-9bc2-a100671f5f74","savedPayload":{"position":{"x":8175.703190416512,"y":17740.92921517407},"targetPosition":{"x":7876.114329990141,"y":17725.228428301187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"80bfd142-4af5-4242-9b49-314e88864a10","savedPayload":{"position":{"x":7876.114329990141,"y":17725.228428301187},"targetPosition":{"x":7576.5254695637705,"y":17709.527641428303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Lower Band","project":"Superalgos","id":"032f51c9-feac-42c1-b0f2-091fcfd99402","savedPayload":{"position":{"x":7777.264651471425,"y":17932.47108907152},"targetPosition":{"x":7576.5254695637705,"y":17709.527641428303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Lower Band","id":"a5d52420-869d-4597-bbf8-27288030c2cb"}}},{"type":"Polygon Vertex","name":"End Lower Band","project":"Superalgos","id":"af720143-1bb7-4f58-b8cb-b6af12c95b2a","savedPayload":{"position":{"x":7560.824682690887,"y":18009.116501854674},"targetPosition":{"x":7576.5254695637705,"y":17709.527641428303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Lower Band","id":"ad2678ac-2687-4a83-84f5-3447adab39e0"}}}],"id":"3ccd3764-3fbe-4da1-929f-4b349e4cc8fa","savedPayload":{"position":{"x":7576.5254695637705,"y":17709.527641428303},"targetPosition":{"x":7375.786287656112,"y":17486.584193785086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"6873036b-9a25-429f-bee6-bd16d1d41093","savedPayload":{"position":{"x":7375.786287656112,"y":17486.584193785086},"targetPosition":{"x":7225.786287656112,"y":17746.39181492042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"id":"eccd3713-e5c8-450c-bfb8-f8821fc429df","savedPayload":{"position":{"x":7225.786287656112,"y":17746.39181492042},"targetPosition":{"x":7075.786287656112,"y":18006.19943605575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"31573886-3aa4-4a73-931c-db92ae11ebf9","savedPayload":{"position":{"x":7075.786287656112,"y":18008.19943605575},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Volume Analysis","config":"{ \n \"codeName\": \"Volume-Analysis\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Volume Analysis","config":"{ \n \"codeName\": \"Volume-Analysis\", \n \"icon\": \"histogram\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Buy Sell Volume","project":"Superalgos","points":[{"type":"Point","name":"Begin Base","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"f8158da3-f5c3-4b74-81dc-2be3c0d22b45","savedPayload":{"position":{"x":6902.867154599913,"y":17404.107130804132},"targetPosition":{"x":7202.855731519168,"y":17406.725091453645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"faabcc21-5670-470c-bc77-c9aca70886b8","savedPayload":{"position":{"x":7202.855731519168,"y":17406.725091453645},"targetPosition":{"x":7502.844308438416,"y":17409.34305210316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Base","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"79b32fa6-3e60-4369-ba3c-3763342a672a","savedPayload":{"position":{"x":6950.5413963669525,"y":17174.90437500959},"targetPosition":{"x":7226.692852402684,"y":17292.123713556375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0fff9bf4-08d1-4f44-bf79-dd08b42ff678","savedPayload":{"position":{"x":7226.692852402684,"y":17292.123713556375},"targetPosition":{"x":7502.844308438416,"y":17409.34305210316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Buy","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.buyVolume","project":"Superalgos","id":"1260a501-c3d7-42ee-b378-3fb0eafec069","savedPayload":{"position":{"x":7082.29874985851,"y":16981.39278261065},"targetPosition":{"x":7292.571529148463,"y":17195.367917356903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7fdb6f4d-0f74-4631-aa4d-dd903d0229d3","savedPayload":{"position":{"x":7292.571529148463,"y":17195.367917356903},"targetPosition":{"x":7502.844308438416,"y":17409.34305210316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Buy","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end - (record.end - record.begin) / 2\ny = record.buyVolume","project":"Superalgos","id":"ceec5884-2e1c-497b-b5d3-e8e782d1c3d8","savedPayload":{"position":{"x":7278.080352388872,"y":16853.032739363083},"targetPosition":{"x":7390.462330413644,"y":17131.18789573312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"604de182-f384-408e-9416-7d6f033e2647","savedPayload":{"position":{"x":7390.462330413644,"y":17131.18789573312},"targetPosition":{"x":7502.844308438416,"y":17409.34305210316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Sell","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end - (record.end - record.begin) / 2\ny = record.sellVolume","project":"Superalgos","id":"b54ab964-74cd-49d0-98a6-da48375d8525","savedPayload":{"position":{"x":7508.080229737443,"y":16809.365898264656},"targetPosition":{"x":7505.46226908793,"y":17109.354475183907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"50689245-9b87-4751-ac97-fe322011a283","savedPayload":{"position":{"x":7505.46226908793,"y":17109.354475183907},"targetPosition":{"x":7502.844308438416,"y":17409.34305210316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Sell","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sellVolume","project":"Superalgos","id":"fbc031e0-d43e-442b-97fe-5a9ad8eb6f9f","savedPayload":{"position":{"x":7737.282985531983,"y":16857.040140031695},"targetPosition":{"x":7620.0636469852,"y":17133.191596067427},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bff175f0-942f-4b80-a47d-4b3a81f8c02e","savedPayload":{"position":{"x":7620.0636469852,"y":17133.191596067427},"targetPosition":{"x":7502.844308438416,"y":17409.34305210316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Middle Base","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end - (record.end - record.begin) / 2\ny = 0","project":"Superalgos","id":"8043c90f-b8a4-4b96-9d7e-c764dac32e1b","savedPayload":{"position":{"x":7930.794577930927,"y":16988.797493523245},"targetPosition":{"x":7716.819443184671,"y":17199.070272813202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"17046023-8100-436e-af2c-7800523e1b76","savedPayload":{"position":{"x":7716.819443184671,"y":17199.070272813202},"targetPosition":{"x":7502.844308438416,"y":17409.34305210316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fc039fb-29b3-43cf-a68d-4e6e6e25a25a","savedPayload":{"position":{"x":7502.844308438416,"y":17409.34305210316},"targetPosition":{"x":7615.226286463192,"y":17687.498208473196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"SMA 20","project":"Superalgos","points":[{"type":"Point","name":"Begin Buy SMA 20","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.buySMA20","project":"Superalgos","id":"c25846dd-bf8e-4ab6-a76d-d0c5ac9d1273","savedPayload":{"position":{"x":7560.58375779623,"y":17130.84400969667},"targetPosition":{"x":7717.333327211014,"y":17386.636059002896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"00cca122-c5d1-4963-a4c5-0ef8402dad6e","savedPayload":{"position":{"x":7717.333327211014,"y":17386.636059002896},"targetPosition":{"x":7874.082896625798,"y":17642.428108309123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Buy SMA 20","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.buySMA20","project":"Superalgos","id":"f6db70cc-ae4c-4d12-ac9f-cf0fc8a7738d","savedPayload":{"position":{"x":7921.158354062507,"y":17044.277708069243},"targetPosition":{"x":7897.620625344152,"y":17343.352908189183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a84d5f5a-955d-4108-babc-0a79f8963cb1","savedPayload":{"position":{"x":7897.620625344152,"y":17343.352908189183},"targetPosition":{"x":7874.082896625798,"y":17642.428108309123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Sell SMA 20","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sellSMA20","project":"Superalgos","id":"50905638-9a46-4835-bab4-5103a7c46fce","savedPayload":{"position":{"x":8263.751725623908,"y":17186.184528949107},"targetPosition":{"x":8068.917311124853,"y":17414.306318629115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fccd2ad5-d651-42be-aa67-3a96feac4ae3","savedPayload":{"position":{"x":8068.917311124853,"y":17414.306318629115},"targetPosition":{"x":7874.082896625798,"y":17642.428108309123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Sell SMA 20","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sellSMA20","project":"Superalgos","id":"3f9f9ad0-2d4c-4036-a616-6307efea7537","savedPayload":{"position":{"x":8457.504848864402,"y":17502.360889995576},"targetPosition":{"x":8165.7938727451,"y":17572.39449915235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"85363ef9-6834-4124-885e-f78bc2516112","savedPayload":{"position":{"x":8165.7938727451,"y":17572.39449915235},"targetPosition":{"x":7874.082896625798,"y":17642.428108309123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7b48abfb-2e5a-4b7a-b0f6-ca827685589a","savedPayload":{"position":{"x":7594.299344339954,"y":17388.22899339525},"targetPosition":{"x":7615.226286463192,"y":17687.498208473196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"SMA 200","project":"Superalgos","points":[{"type":"Point","name":"Begin Buy SMA 200","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.buySMA200","project":"Superalgos","id":"3dd256fa-9944-4d7d-9831-e40dd3493b40","savedPayload":{"position":{"x":7686.4173769120025,"y":17109.47219924951},"targetPosition":{"x":7801.222406621528,"y":17386.636059002896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac42be50-d6da-4956-8c57-240970124355","savedPayload":{"position":{"x":7801.222406621528,"y":17386.636059002896},"targetPosition":{"x":7916.027436331053,"y":17663.799918756282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Buy SMA 200","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.buySMA200","project":"Superalgos","id":"37247409-4983-484d-b719-f9d82f3791b0","savedPayload":{"position":{"x":8056.094654644599,"y":17080.377966517677},"targetPosition":{"x":7986.061045487826,"y":17372.08894263698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a0dd766d-5c5c-4ac1-96f4-6745501455a3","savedPayload":{"position":{"x":7986.061045487826,"y":17372.08894263698},"targetPosition":{"x":7916.027436331053,"y":17663.799918756282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Sell SMA 200","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sellSMA200","project":"Superalgos","id":"fa086961-195a-4b30-b0b8-1045a2ae20b5","savedPayload":{"position":{"x":8372.271015691069,"y":17274.13108975817},"targetPosition":{"x":8144.149226011061,"y":17468.965504257227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"083d6c60-2cfa-4221-a98b-bc082201f194","savedPayload":{"position":{"x":8144.149226011061,"y":17468.965504257227},"targetPosition":{"x":7916.027436331053,"y":17663.799918756282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Sell SMA 200","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sellSMA200","project":"Superalgos","id":"3885decc-ccaa-4818-991b-ce6f1fa7e7aa","savedPayload":{"position":{"x":8514.177836570932,"y":17616.724461319573},"targetPosition":{"x":8215.102636450993,"y":17640.262190037927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2df7e089-1967-4cd8-8e95-376f9aabd43a","savedPayload":{"position":{"x":8215.102636450993,"y":17640.262190037927},"targetPosition":{"x":7916.027436331053,"y":17663.799918756282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c806e2e4-b5b2-4323-8d82-f73e79e923ac","savedPayload":{"position":{"x":7687.802855143094,"y":17396.4094905904},"targetPosition":{"x":7615.226286463192,"y":17687.498208473196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Buy Volume Bar","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.buySMA20 > record.buySMA200 && record.buyVolume > record.buySMA200","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.8\n \n}","project":"Superalgos","id":"87855af8-f080-4f1a-898e-5664b9bc1303","savedPayload":{"position":{"x":7745.318802323669,"y":16861.147171517176},"targetPosition":{"x":7838.023900636152,"y":17146.46412640572},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9ffc7ae4-c366-4588-a604-66f60277d0bd","savedPayload":{"position":{"x":7838.023900636152,"y":17146.46412640572},"targetPosition":{"x":7930.728998948634,"y":17431.781081294266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"!(record.buySMA20 > record.buySMA200 && record.buyVolume > record.buySMA200)","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n \n}","project":"Superalgos","id":"03f1da8f-a211-4454-9bd2-4dacb04c4bdb","savedPayload":{"position":{"x":7899.327425202868,"y":16832.603360441524},"targetPosition":{"x":7915.028212075751,"y":17132.192220867895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4a78dced-32a2-4c26-a5f6-b1b4d9418cd1","savedPayload":{"position":{"x":7915.028212075751,"y":17132.192220867895},"targetPosition":{"x":7930.728998948634,"y":17431.781081294266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5ae67b38-f0c2-4fac-af8b-6716b4899bdf","savedPayload":{"position":{"x":7930.728998948634,"y":17431.781081294266},"targetPosition":{"x":7985.399656596277,"y":17726.757553563453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Base","project":"Superalgos","id":"7bf6e384-1001-4d1b-b96a-fbdacf74f79e","savedPayload":{"position":{"x":8085.541714366409,"y":17443.9651062358},"targetPosition":{"x":7985.399656596277,"y":17726.757553563453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Base","id":"faabcc21-5670-470c-bc77-c9aca70886b8"}}},{"type":"Polygon Vertex","name":"Begin Buy","project":"Superalgos","id":"cdf8e5eb-f2bb-4793-b90f-11fa2fba4c04","savedPayload":{"position":{"x":8213.521446276285,"y":17531.923139064398},"targetPosition":{"x":7985.399656596277,"y":17726.757553563453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Buy","id":"7fdb6f4d-0f74-4631-aa4d-dd903d0229d3"}}},{"type":"Polygon Vertex","name":"End Buy","project":"Superalgos","id":"53ea875f-63fe-4f33-84bf-fa8e000772fe","savedPayload":{"position":{"x":8280.376128865464,"y":17672.08689591581},"targetPosition":{"x":7985.399656596277,"y":17726.757553563453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Buy","id":"604de182-f384-408e-9416-7d6f033e2647"}}},{"type":"Polygon Vertex","name":"Middle Base","project":"Superalgos","id":"9f4d630e-28d8-44ef-a22c-5b706c0997d7","savedPayload":{"position":{"x":8268.192103923931,"y":17826.899611333585},"targetPosition":{"x":7985.399656596277,"y":17726.757553563453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Middle Base","id":"17046023-8100-436e-af2c-7800523e1b76"}}}],"id":"11f192dc-eb4a-48ee-81cc-a484285bfe6f","savedPayload":{"position":{"x":7774.202065733152,"y":17433.083779626268},"targetPosition":{"x":7615.226286463192,"y":17687.498208473196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Sell Volume Bar","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.sellSMA20 > record.sellSMA200 && record.sellVolume > record.sellSMA200 ","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.8\n \n}","project":"Superalgos","id":"ffac30be-b78e-418a-b26b-c6071bc2d13f","savedPayload":{"position":{"x":8073.599584335669,"y":16909.35347994084},"targetPosition":{"x":8073.599584335669,"y":17209.35347994084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e1d52b4a-09ee-451c-aa3d-62ce9f379fcb","savedPayload":{"position":{"x":8073.599584335669,"y":17209.35347994084},"targetPosition":{"x":8073.599584335669,"y":17509.35347994084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"!( record.sellSMA20 > record.sellSMA200 && record.sellVolume > record.sellSMA200 ) ","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.2\n \n}","project":"Superalgos","id":"308a78ae-507a-4047-8231-162422d90173","savedPayload":{"position":{"x":8228.891011397183,"y":16929.7979841674},"targetPosition":{"x":8151.245297866426,"y":17219.57573205412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"71e76b74-39f0-4ed5-bd88-629b956ca6d1","savedPayload":{"position":{"x":8151.245297866426,"y":17219.57573205412},"targetPosition":{"x":8073.599584335669,"y":17509.35347994084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"34b8d505-0245-4c5e-8ee9-c62beae9e648","savedPayload":{"position":{"x":8073.599584335669,"y":17509.35347994084},"targetPosition":{"x":8034.441726669655,"y":17806.786938352983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Middle Base","project":"Superalgos","id":"bdd19f84-69dc-41a8-87cd-5f0fbdafa195","savedPayload":{"position":{"x":8217.070155372272,"y":17568.78093626561},"targetPosition":{"x":8034.441726669655,"y":17806.786938352983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Middle Base","id":"17046023-8100-436e-af2c-7800523e1b76"}}},{"type":"Polygon Vertex","name":"Begin Sell","project":"Superalgos","id":"278692ec-1365-4bb2-895d-d07ed07edb24","savedPayload":{"position":{"x":8311.60558642304,"y":17691.981908643458},"targetPosition":{"x":8034.441726669655,"y":17806.786938352983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Sell","id":"50689245-9b87-4751-ac97-fe322011a283"}}},{"type":"Polygon Vertex","name":"End Sell","project":"Superalgos","id":"6d4b46a4-4d29-4ce9-a4cf-d9f79ef2c81d","savedPayload":{"position":{"x":8331.875185081797,"y":17845.944796018997},"targetPosition":{"x":8034.441726669655,"y":17806.786938352983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Sell","id":"bff175f0-942f-4b80-a47d-4b3a81f8c02e"}}},{"type":"Polygon Vertex","name":"End Base","project":"Superalgos","id":"1a32692b-f345-4ce8-b8f1-eb173a6e9b41","savedPayload":{"position":{"x":8272.447728757026,"y":17989.4153670556},"targetPosition":{"x":8034.441726669655,"y":17806.786938352983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Base","id":"0fff9bf4-08d1-4f44-bf79-dd08b42ff678"}}}],"id":"480b24b1-8ee9-4018-86d1-362f149f7881","savedPayload":{"position":{"x":7845.039619398885,"y":17494.661925567234},"targetPosition":{"x":7615.226286463192,"y":17687.498208473196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Buy SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 0.8\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"eca19f91-9766-4f13-bd9c-cc47432ad3f4","savedPayload":{"position":{"x":8636.441726669655,"y":18034.396997772037},"targetPosition":{"x":8336.441726669655,"y":18034.396997772037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"3f4f66f4-1e05-44b1-977e-4c803c0e57ee","savedPayload":{"position":{"x":8336.441726669655,"y":18034.396997772037},"targetPosition":{"x":8036.441726669655,"y":18034.396997772037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Buy SMA 20","project":"Superalgos","id":"28f5910d-3e5c-462a-a933-59e4ebda9c6d","savedPayload":{"position":{"x":8313.60558642304,"y":18149.202027481566},"targetPosition":{"x":8036.441726669655,"y":18034.396997772037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Buy SMA 20","id":"00cca122-c5d1-4963-a4c5-0ef8402dad6e"}}},{"type":"Polygon Vertex","name":"End Buy SMA 20","project":"Superalgos","id":"c4f28407-5fef-44af-867a-b4f5b66e8c8d","savedPayload":{"position":{"x":8248.573761025618,"y":18246.529032128},"targetPosition":{"x":8036.441726669655,"y":18034.396997772037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Buy SMA 20","id":"a84d5f5a-955d-4108-babc-0a79f8963cb1"}}}],"id":"ec629e5c-341a-4cc3-8ebd-61327c596cbd","savedPayload":{"position":{"x":7893.38144283323,"y":17575.116230448424},"targetPosition":{"x":7615.226286463192,"y":17687.498208473196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Sell SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 0.8\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","project":"Superalgos","id":"c4e9afdc-300c-4585-ad7b-a1e683f510a2","savedPayload":{"position":{"x":8525.737620779004,"y":18361.33406183753},"targetPosition":{"x":8248.573761025618,"y":18246.529032128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"84c664b3-de4c-4d33-a417-264a8992f606","savedPayload":{"position":{"x":8248.573761025618,"y":18246.529032128},"targetPosition":{"x":7971.409901272233,"y":18131.724002418472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Sell SMA 20","project":"Superalgos","id":"86f37b93-cdb3-49cc-9366-1d04af87a68b","savedPayload":{"position":{"x":8183.541935628196,"y":18343.856036774436},"targetPosition":{"x":7971.409901272233,"y":18131.724002418472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Sell SMA 20","id":"fccd2ad5-d651-42be-aa67-3a96feac4ae3"}}},{"type":"Polygon Vertex","name":"End Sell SMA 20","project":"Superalgos","id":"df33d6c2-5652-4491-b635-f2a01a52b141","savedPayload":{"position":{"x":8086.214930981758,"y":18408.887862171858},"targetPosition":{"x":7971.409901272233,"y":18131.724002418472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Sell SMA 20","id":"85363ef9-6834-4124-885e-f78bc2516112"}}}],"id":"b85ff160-cf73-452a-b824-58010659c377","savedPayload":{"position":{"x":7914.49550154114,"y":17666.571266349958},"targetPosition":{"x":7615.226286463192,"y":17687.498208473196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Buy SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.8,\n \"lineWidth\": 0.5\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"5ad42bce-0be4-40af-af98-6bc1bd556929","savedPayload":{"position":{"x":8607.682920579577,"y":18170.20221650143},"targetPosition":{"x":8311.376418401036,"y":18123.27187698936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"d49d4d35-54f2-47c9-be57-dcffa4293acd","savedPayload":{"position":{"x":8311.376418401036,"y":18123.27187698936},"targetPosition":{"x":8015.0699162224955,"y":18076.341537477292},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Buy SMA 200","project":"Superalgos","id":"0a8b1f9d-4b92-4ec2-988a-6ada06a6df19","savedPayload":{"position":{"x":8270.861965528722,"y":18233.091106892076},"targetPosition":{"x":8015.0699162224955,"y":18076.341537477292},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Buy SMA 200","id":"ac42be50-d6da-4956-8c57-240970124355"}}},{"type":"Polygon Vertex","name":"End Buy SMA 200","project":"Superalgos","id":"ab80d6af-82d4-41c6-b696-080c72f76a33","savedPayload":{"position":{"x":8191.405491910238,"y":18319.046635789775},"targetPosition":{"x":8015.0699162224955,"y":18076.341537477292},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Buy SMA 200","id":"a0dd766d-5c5c-4ac1-96f4-6745501455a3"}}}],"id":"6b7e1de7-03c6-42e1-b965-83f3ed9f0c29","savedPayload":{"position":{"x":7906.31500434599,"y":17760.074777153095},"targetPosition":{"x":7615.226286463192,"y":17687.498208473196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Sell SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.8,\n \"lineWidth\": 0.5\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","project":"Superalgos","id":"74783c70-c094-4816-95ac-7aacc5f233d3","savedPayload":{"position":{"x":8488.716195928344,"y":18420.108057586243},"targetPosition":{"x":8221.414238671834,"y":18283.91090766438},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"789febe0-ea41-4f50-b6a9-cd696081071b","savedPayload":{"position":{"x":8221.414238671834,"y":18283.91090766438},"targetPosition":{"x":7954.112281415324,"y":18147.713757742516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Sell SMA 200","project":"Superalgos","id":"732d98b7-9ea0-4d9a-bd60-192ae0440cb2","savedPayload":{"position":{"x":8148.946695914379,"y":18375.835547422525},"targetPosition":{"x":7954.112281415324,"y":18147.713757742516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Sell SMA 200","id":"083d6c60-2cfa-4221-a98b-bc082201f194"}}},{"type":"Polygon Vertex","name":"End Sell SMA 200","project":"Superalgos","id":"7441f304-e6bf-47b2-8d1d-f4689b0d6b30","savedPayload":{"position":{"x":8046.817379727807,"y":18433.03071263106},"targetPosition":{"x":7954.112281415324,"y":18147.713757742516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Sell SMA 200","id":"2df7e089-1967-4cd8-8e95-376f9aabd43a"}}}],"id":"79bbc8bc-1138-4669-b0b3-9113cdde1353","savedPayload":{"position":{"x":7869.640715310121,"y":17846.473987743157},"targetPosition":{"x":7615.226286463192,"y":17687.498208473196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"df508a3b-c7ea-479a-8c29-1fe15c62f816","savedPayload":{"position":{"x":7615.226286463192,"y":17687.498208473196},"targetPosition":{"x":7385.412953527499,"y":17880.33449137916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"id":"77bf098c-c563-4855-9738-3443a324365c","savedPayload":{"position":{"x":7385.412953527499,"y":17880.33449137916},"targetPosition":{"x":7155.599620591805,"y":18073.17077428512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"316fd407-d13c-49e6-bcf6-1f4ef7562e43","savedPayload":{"position":{"x":7155.599620591805,"y":18075.17077428512},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Candle Analysis","config":"{ \n \"codeName\": \"Candle-Analysis\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Candle Analysis","config":"{ \n \"codeName\": \"Candle-Analysis\", \n \"icon\": \"histogram\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Open Close","project":"Superalgos","points":[{"type":"Point","name":"Begin Last 24 Hs Open","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.last24HsOpen","project":"Superalgos","id":"37d9c626-13f1-45d7-a20e-918385c69983","savedPayload":{"position":{"x":6937.024278089175,"y":17341.61243535871},"targetPosition":{"x":7225.402786870673,"y":17424.303642103812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ef270f12-5e8e-4768-a34b-2e063126c45d","savedPayload":{"position":{"x":7225.402786870673,"y":17424.303642103812},"targetPosition":{"x":7513.781295652167,"y":17506.994848848914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Last 24 Hs Open","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.last24HsOpen","project":"Superalgos","id":"b76768c6-c08d-4460-8be5-f37f1a35546d","savedPayload":{"position":{"x":7144.3844104567725,"y":17034.18839668488},"targetPosition":{"x":7329.082853054471,"y":17270.591622766897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b14d9e80-4158-4e77-af54-0d60391c727b","savedPayload":{"position":{"x":7329.082853054471,"y":17270.591622766897},"targetPosition":{"x":7513.781295652167,"y":17506.994848848914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Last 24 Hs Close","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.last24HsClose","project":"Superalgos","id":"d0de9804-6aab-4237-80d8-030d741b4375","savedPayload":{"position":{"x":7492.841597630668,"y":16907.360352637454},"targetPosition":{"x":7503.311446641415,"y":17207.177600743184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7390c069-aa45-4bf9-a3e6-665dacea7bb2","savedPayload":{"position":{"x":7503.311446641415,"y":17207.177600743184},"targetPosition":{"x":7513.781295652167,"y":17506.994848848914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Last 24 Hs Close","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.last24HsClose","project":"Superalgos","id":"804a9d50-a592-4fb8-801c-dde8a5c60a86","savedPayload":{"position":{"x":7849.297037734617,"y":17009.57230531589},"targetPosition":{"x":7681.53916669339,"y":17258.283577082402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7c7778fe-5abb-4d29-af90-372e47aff94a","savedPayload":{"position":{"x":7681.53916669339,"y":17258.283577082402},"targetPosition":{"x":7513.781295652167,"y":17506.994848848914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e407da43-bd31-486a-a3a1-d3e5f1288568","savedPayload":{"position":{"x":7470.9444525759645,"y":17526.51672294287},"targetPosition":{"x":7616.387338649867,"y":17788.902635084687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Min Max","project":"Superalgos","points":[{"type":"Point","name":"Begin Last 24 Hs Min","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.last24HsMin","project":"Superalgos","id":"e21003b1-e8c7-4da1-b12c-ede2e8963ea3","savedPayload":{"position":{"x":7214.135920699908,"y":17081.93977355479},"targetPosition":{"x":7433.5420311856615,"y":17286.53928157354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"be6f78ad-a14f-482a-8f0c-38c6afa21c35","savedPayload":{"position":{"x":7433.5420311856615,"y":17286.53928157354},"targetPosition":{"x":7652.948141671412,"y":17491.13878959229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Last 24 Hs Min","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.last24HsMin","project":"Superalgos","id":"e4483a05-bb5e-4716-8d29-30a42f69ea7b","savedPayload":{"position":{"x":7538.462744445485,"y":16902.162479523693},"targetPosition":{"x":7595.70544305845,"y":17196.65063455799},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"572f8098-6ee2-47d7-b10b-671a220331b7","savedPayload":{"position":{"x":7595.70544305845,"y":17196.65063455799},"targetPosition":{"x":7652.948141671412,"y":17491.13878959229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Last 24 Hs Max","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.last24HsMax","project":"Superalgos","id":"1d61b534-7a8a-4816-a9cb-ca7c476b0456","savedPayload":{"position":{"x":7906.519098715831,"y":16947.354117370298},"targetPosition":{"x":7779.733620193623,"y":17219.246453481293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c7dafc4c-6127-434c-91f2-50c64dcbdca7","savedPayload":{"position":{"x":7779.733620193623,"y":17219.246453481293},"targetPosition":{"x":7652.948141671412,"y":17491.13878959229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Last 24 Hs Max","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.last24HsMax","project":"Superalgos","id":"63c18823-4806-4c96-8b92-c443dbcf239f","savedPayload":{"position":{"x":8177.71996595505,"y":17200.253017444484},"targetPosition":{"x":7915.334053813229,"y":17345.695903518386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c658b47-10e6-4c30-9165-4cd1ed19ed7b","savedPayload":{"position":{"x":7915.334053813229,"y":17345.695903518386},"targetPosition":{"x":7652.948141671412,"y":17491.13878959229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ce9e4ac4-a126-4867-93c6-cef38e3d2ea1","savedPayload":{"position":{"x":7652.948141671412,"y":17491.13878959229},"targetPosition":{"x":7616.387338649867,"y":17788.902635084687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Min Max Band","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\",\n \"opacity\": 0.1\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"c715d30a-6309-462f-9c26-ec6c06ae5b78","savedPayload":{"position":{"x":7645.563823834975,"y":16995.713671021113},"targetPosition":{"x":7733.275335251794,"y":17282.605097810025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1df8c772-630b-4dea-9676-e648c575cc54","savedPayload":{"position":{"x":7733.275335251794,"y":17282.605097810025},"targetPosition":{"x":7820.986846668617,"y":17569.496524598937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Last 24 Hs Min","project":"Superalgos","id":"f8018c15-e606-46d8-8d91-aaf626e105ac","savedPayload":{"position":{"x":7888.472162971775,"y":17277.185505163365},"targetPosition":{"x":7820.986846668617,"y":17569.496524598937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Last 24 Hs Min","id":"be6f78ad-a14f-482a-8f0c-38c6afa21c35"}}},{"type":"Polygon Vertex","name":"Begin Last 24 Hs Max","project":"Superalgos","id":"b2eebdc7-9358-4336-808f-8af8c8a65cf9","savedPayload":{"position":{"x":8025.586354687366,"y":17350.090414113187},"targetPosition":{"x":7820.986846668617,"y":17569.496524598937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Last 24 Hs Max","id":"c7dafc4c-6127-434c-91f2-50c64dcbdca7"}}},{"type":"Polygon Vertex","name":"End Last 24 Hs Max","project":"Superalgos","id":"471158dd-42be-4414-becb-b48269eeb98a","savedPayload":{"position":{"x":8107.878273457525,"y":17481.785013182114},"targetPosition":{"x":7820.986846668617,"y":17569.496524598937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Last 24 Hs Max","id":"8c658b47-10e6-4c30-9165-4cd1ed19ed7b"}}},{"type":"Polygon Vertex","name":"End Last 24 Hs Min","project":"Superalgos","id":"2936e63f-b0b3-46bf-8663-b329e4db74a9","savedPayload":{"position":{"x":8113.297866104189,"y":17636.981840902095},"targetPosition":{"x":7820.986846668617,"y":17569.496524598937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Last 24 Hs Min","id":"572f8098-6ee2-47d7-b10b-671a220331b7"}}}],"id":"b055b3b0-ee85-4d6a-bb97-7c746bf75cb3","savedPayload":{"position":{"x":7820.986846668617,"y":17569.496524598937},"targetPosition":{"x":7616.387338649867,"y":17788.902635084687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Close Band","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"c2e27def-ba2d-4c3b-b7f6-dc0042454852","savedPayload":{"position":{"x":7966.794009733294,"y":17150.923943169455},"targetPosition":{"x":8008.545940021311,"y":17448.004363791926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.last24HsDirection=== 'Up'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.LIGHT\"\n}","project":"Superalgos","id":"150e512d-de17-474a-b1f6-e039e052661c","savedPayload":{"position":{"x":8112.734846621472,"y":16857.1197119846},"targetPosition":{"x":8060.6403933213915,"y":17152.562037888263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32ec5d90-e990-4219-aad0-606d367738ec","savedPayload":{"position":{"x":8060.6403933213915,"y":17152.562037888263},"targetPosition":{"x":8008.545940021311,"y":17448.004363791926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.last24HsDirection=== 'Up'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\"\n}","project":"Superalgos","id":"b5c04ddf-70a3-4256-90c4-71cb20d633d1","savedPayload":{"position":{"x":8290.228877692847,"y":16918.235808076573},"targetPosition":{"x":8149.387408857081,"y":17183.12008593425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3e000e8a-ca95-4701-8eca-38535cefcc3d","savedPayload":{"position":{"x":8149.387408857081,"y":17183.12008593425},"targetPosition":{"x":8008.545940021311,"y":17448.004363791926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.last24HsDirection=== 'Down'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RED\"\n}","project":"Superalgos","id":"a8fa888a-54d0-4c09-8c82-30a834dce41e","savedPayload":{"position":{"x":8440.149820224502,"y":17031.209341516525},"targetPosition":{"x":8224.34788012291,"y":17239.606852654226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2863d662-ccb8-4dc3-b886-22dc5899f72f","savedPayload":{"position":{"x":8224.34788012291,"y":17239.606852654226},"targetPosition":{"x":8008.545940021311,"y":17448.004363791926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e4acda6d-d02e-4d43-9268-1db35d69f789","savedPayload":{"position":{"x":8008.545940021311,"y":17448.004363791926},"targetPosition":{"x":7910.875493684165,"y":17731.659936471722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Last 24 Hs Open","project":"Superalgos","id":"5eb0bebc-8ce7-4651-92e6-f188374a4653","savedPayload":{"position":{"x":8137.288367750996,"y":17534.84222777457},"targetPosition":{"x":7910.875493684165,"y":17731.659936471722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Last 24 Hs Open","id":"ef270f12-5e8e-4768-a34b-2e063126c45d"}}},{"type":"Polygon Vertex","name":"Begin Last 24 Hs Close","project":"Superalgos","id":"cd304a21-0417-4adb-9dd1-73b928442eb2","savedPayload":{"position":{"x":8205.363648718467,"y":17674.417237858757},"targetPosition":{"x":7910.875493684165,"y":17731.659936471722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Last 24 Hs Close","id":"7390c069-aa45-4bf9-a3e6-665dacea7bb2"}}},{"type":"Polygon Vertex","name":"End Last 24 Hs Close","project":"Superalgos","id":"befb9997-0ada-404e-ae76-2e29473eff5a","savedPayload":{"position":{"x":8194.531066363961,"y":17829.33038280887},"targetPosition":{"x":7910.875493684165,"y":17731.659936471722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Last 24 Hs Close","id":"7c7778fe-5abb-4d29-af90-372e47aff94a"}}},{"type":"Polygon Vertex","name":"End Last 24 Hs Open","project":"Superalgos","id":"50d337d6-806e-4d8e-8b17-26abc346723c","savedPayload":{"position":{"x":8107.693202381317,"y":17958.072810538553},"targetPosition":{"x":7910.875493684165,"y":17731.659936471722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Last 24 Hs Open","id":"b14d9e80-4158-4e77-af54-0d60391c727b"}}}],"id":"d43d1db4-07e3-4e86-a7e7-c71774e461d7","savedPayload":{"position":{"x":7910.875493684165,"y":17731.659936471722},"targetPosition":{"x":7616.387338649867,"y":17788.902635084687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"2f5bc46b-a1bb-4f17-8cc4-d3a80b963dcc","savedPayload":{"position":{"x":7616.387338649867,"y":17788.902635084687},"targetPosition":{"x":7489.6018601276555,"y":18060.794971195683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Current Candle","config":"{ \n \"codeName\": \"currentCandle\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Open","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.open","project":"Superalgos","id":"8edb002a-7034-4860-b519-e6cc9c568d35","savedPayload":{"position":{"x":7054.533509998222,"y":17415.106441951146},"targetPosition":{"x":7298.114911712979,"y":17590.229543621583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cccfc3f1-4599-4b5a-9e6f-015f8df6aaa5","savedPayload":{"position":{"x":7298.114911712979,"y":17590.229543621583},"targetPosition":{"x":7541.696313427736,"y":17765.35264529202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Close","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.close","project":"Superalgos","id":"5dabcb38-01c7-4b22-a678-cfe9126d7122","savedPayload":{"position":{"x":7254.743926254945,"y":17238.419701269886},"targetPosition":{"x":7398.220119841342,"y":17501.886173280953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"51df0ecc-3db8-4bed-8f0c-9d12fd9d97f4","savedPayload":{"position":{"x":7398.220119841342,"y":17501.886173280953},"targetPosition":{"x":7541.696313427736,"y":17765.35264529202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Min","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.min","project":"Superalgos","id":"00a15a76-d4d6-46eb-b93f-eb76512fd3a7","savedPayload":{"position":{"x":7511.788782031319,"y":17166.098492560668},"targetPosition":{"x":7526.742547729529,"y":17465.725568926344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"39abe082-4409-4997-a389-6b9491a54c55","savedPayload":{"position":{"x":7526.742547729529,"y":17465.725568926344},"targetPosition":{"x":7541.696313427736,"y":17765.35264529202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Max","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.max","project":"Superalgos","id":"4c85a43e-de1b-4607-8bd8-2a9b96669780","savedPayload":{"position":{"x":7774.757191192555,"y":17212.466918169775},"targetPosition":{"x":7658.226752310144,"y":17488.909781730898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32b0d874-4866-4104-a7f9-bc1214c15a88","savedPayload":{"position":{"x":7658.226752310144,"y":17488.909781730898},"targetPosition":{"x":7541.696313427736,"y":17765.35264529202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Change","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.change","project":"Superalgos","id":"5c2e8161-7dde-45c8-b5bb-e6dc367c799d","savedPayload":{"position":{"x":7991.565035208376,"y":17368.3411427339},"targetPosition":{"x":7766.630674318058,"y":17566.84689401296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"527a7178-8947-4e25-91c7-4fc1bd357530","savedPayload":{"position":{"x":7766.630674318058,"y":17566.84689401296},"targetPosition":{"x":7541.696313427736,"y":17765.35264529202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Amplitude","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.amplitude","project":"Superalgos","id":"04778113-8836-449d-954d-c056d146bfc4","savedPayload":{"position":{"x":8119.270861597743,"y":17602.848364406214},"targetPosition":{"x":7830.483587512739,"y":17684.100504849117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0dcdcf95-219c-4e16-bba0-eed60137f923","savedPayload":{"position":{"x":7830.483587512739,"y":17684.100504849117},"targetPosition":{"x":7541.696313427736,"y":17765.35264529202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2e9d7744-eb1c-40f0-bc8c-46426e14691d","savedPayload":{"position":{"x":7771.509646363429,"y":17958.188928197982},"targetPosition":{"x":7489.6018601276555,"y":18060.794971195683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Last 24 Hs","config":"{ \n \"codeName\": \"last24Hs\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Last 24 Hs Open","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.last24HsOpen","project":"Superalgos","id":"5e00557c-8c2d-4d37-aca8-346e1b8bf274","savedPayload":{"position":{"x":8266.318704450354,"y":18006.85899222328},"targetPosition":{"x":7992.866948756851,"y":18130.245123162462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9c12e42b-8759-4501-a66a-eaecf9f3d014","savedPayload":{"position":{"x":7992.866948756851,"y":18130.245123162462},"targetPosition":{"x":7719.415193063349,"y":18253.631254101645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Last 24 Hs Close","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.last24HsClose","project":"Superalgos","id":"14936ef0-93eb-496b-95db-1e567f134256","savedPayload":{"position":{"x":8319.228702263841,"y":18268.589669144487},"targetPosition":{"x":8019.321947663597,"y":18261.110461623066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e417390f-e0a3-472c-8d7e-6b107a4c38b8","savedPayload":{"position":{"x":8019.321947663597,"y":18261.110461623066},"targetPosition":{"x":7719.415193063349,"y":18253.631254101645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Last 24 Hs Min","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.last24HsMin","project":"Superalgos","id":"da5a18bc-15f7-4b24-a755-21d1764d2828","savedPayload":{"position":{"x":8253.338278350235,"y":18527.35764851354},"targetPosition":{"x":7986.376735706792,"y":18390.494451307593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3834870f-3afb-41ef-96c1-badfa86dd72e","savedPayload":{"position":{"x":7986.376735706792,"y":18390.494451307593},"targetPosition":{"x":7719.415193063349,"y":18253.631254101645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Last 24 Hs Max","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.last24HsMax","project":"Superalgos","id":"8754c72f-e01a-4f98-a9c6-13149eea33b9","savedPayload":{"position":{"x":8081.697839258635,"y":18731.9107584354},"targetPosition":{"x":7900.556516160996,"y":18492.771006268522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"76989651-33bd-4411-b638-21390a0c6461","savedPayload":{"position":{"x":7900.556516160996,"y":18492.771006268522},"targetPosition":{"x":7719.415193063349,"y":18253.631254101645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Last 24 Hs Change","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.last24HsChange","project":"Superalgos","id":"8c3964c6-d43b-419d-93f4-649b3e15e53c","savedPayload":{"position":{"x":7838.302878982988,"y":18841.73474681077},"targetPosition":{"x":7778.859036023172,"y":18547.683000456207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1e45bc0e-c227-4a0d-80fb-d508a6c830f8","savedPayload":{"position":{"x":7778.859036023172,"y":18547.683000456207},"targetPosition":{"x":7719.415193063349,"y":18253.631254101645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Last 24 Hs Amplitude","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.last24HsAmplitude","project":"Superalgos","id":"97789da3-c57f-4360-9cf2-ae02624dd2f8","savedPayload":{"position":{"x":7571.360754449175,"y":18835.07762583909},"targetPosition":{"x":7645.387973756264,"y":18544.354439970368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"60e64b9a-dd54-4db8-a2c0-45707fd1a13d","savedPayload":{"position":{"x":7645.387973756264,"y":18544.354439970368},"targetPosition":{"x":7719.415193063349,"y":18253.631254101645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7a840ca8-b174-45f5-a23e-eb333d46e295","savedPayload":{"position":{"x":7761.494196238651,"y":18187.580449717894},"targetPosition":{"x":7489.6018601276555,"y":18060.794971195683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7d2c7454-22ee-4d99-ab73-b47e5813a7bc","savedPayload":{"position":{"x":7489.6018601276555,"y":18060.794971195683},"targetPosition":{"x":7207.694073891886,"y":18163.401014193383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cd89a4cc-9274-4cc8-a9f3-29e62f8c25fc","savedPayload":{"position":{"x":7207.694073891885,"y":18165.401014193383},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959","savedPayload":{"position":{"x":6925.786287656112,"y":18268.007057191084},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"m"}}} \ No newline at end of file +{"type":"Data Mine","name":"Masters","config":"{\n\"codeName\": \"Masters\"\n}","project":"Superalgos","sensorBots":[{"type":"Sensor Bot","name":"Exchange Raw Data","config":"{\n\"codeName\": \"Exchange-Raw-Data\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Historic-OHLCVs","config":"{\n \"codeName\": \"Historic-OHLCVs\",\n \"description\": \"Retrieves and saves historical maket data\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 60000,\n \"retryWaitTime\": 10000,\n \"botModule\": \"Exchange Raw Data Historic OHLCVs\"\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[],"id":"dfe2556e-a765-4e38-9d30-7f91090c0069","savedPayload":{"position":{"x":7542.108005075513,"y":17855.768569069416},"targetPosition":{"x":7502.950147409498,"y":18153.20202748156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"ea39c98b-18e2-44ce-9f7f-86a8a76a688a","savedPayload":{"position":{"x":7868.207004814731,"y":17677.190023306815},"targetPosition":{"x":7685.578576112114,"y":17915.196025394187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[],"dataMineDataDependencies":[],"id":"5c7fae5a-6da6-4864-a167-f2f21d578c72","savedPayload":{"position":{"x":7685.578576112114,"y":17915.196025394187},"targetPosition":{"x":7502.950147409498,"y":18153.20202748156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e","savedPayload":{"position":{"x":7780.114007162883,"y":18038.396997772034},"targetPosition":{"x":7502.950147409498,"y":18153.20202748156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"","project":"Superalgos","id":"957e7e3a-b167-40be-93b5-9ba4ceff56e5","savedPayload":{"position":{"x":7800.383605821641,"y":18192.359885147573},"targetPosition":{"x":7502.950147409498,"y":18153.20202748156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"fe40a546-43ee-49df-908a-7e72f598f0cd","savedPayload":{"position":{"x":7740.956149496868,"y":18335.830456184176},"targetPosition":{"x":7502.950147409498,"y":18153.20202748156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc","savedPayload":{"position":{"x":7502.950147409498,"y":18153.20202748156},"targetPosition":{"x":7225.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Candles","config":"{\n\"codeName\": \"Candles\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"One-Min","config":"{\n\"codeName\": \"One-Min\"\n}","project":"Superalgos","id":"1c3696e4-c28e-4744-9100-706d6dce0c3c","savedPayload":{"position":{"x":7675.786287656112,"y":18268.007057191084},"targetPosition":{"x":7525.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"id":"2443883b-6959-42a3-ae3b-ef3102ffcdcc","savedPayload":{"position":{"x":7525.786287656112,"y":18268.007057191084},"targetPosition":{"x":7225.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition","name":"Volumes","config":"{\n\"codeName\": \"Volumes\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"One-Min","config":"{\n\"codeName\": \"One-Min\"\n}","project":"Superalgos","id":"73dcce78-c223-49e1-a93c-7e1ab7283f86","savedPayload":{"position":{"x":7641.5320772861905,"y":18440.21460175537},"targetPosition":{"x":7502.950147409498,"y":18382.81208690061},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"id":"3a43c6f3-bac0-404e-865f-822eb48c8660","savedPayload":{"position":{"x":7502.950147409498,"y":18382.81208690061},"targetPosition":{"x":7225.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"af924204-66a2-47d4-9910-66ab78acb06f","savedPayload":{"position":{"x":7225.786287656112,"y":18268.007057191084},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Sensor Bot","name":"Webhooks","config":"{\n\"codeName\": \"Webhooks\",\n\"repo\": \"Webhooks-Sensor-Bot\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Check-Webhook","config":"{\n \"codeName\": \"Check-Webhook\",\n \"description\": \"Retrieves and saves Webhooks Messages Received at the Web Server\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 30000,\n \"retryWaitTime\": 10000,\n \"botModule\": \"Webhooks Check Webhook\"\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[],"id":"9b932f7d-fee5-4d42-97a3-beda58fa0322","savedPayload":{"position":{"x":7778.444819430403,"y":18269.974344490875},"targetPosition":{"x":7506.552483319409,"y":18396.759823013082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Webhooks Check-Webhook","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"d6965837-6a98-474c-aee3-8053ac436b9c","savedPayload":{"position":{"x":8097.437135126733,"y":18292.570916412922},"targetPosition":{"x":7801.994809223071,"y":18344.665369713002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"57bc4c48-663d-4944-8b5b-b09cf6ae3578"}}}],"dataDependencies":[],"dataMineDataDependencies":[],"id":"ff50f64f-12f6-49e7-83a6-659109b89a6a","savedPayload":{"position":{"x":7801.994809223071,"y":18344.665369713002},"targetPosition":{"x":7506.552483319409,"y":18396.759823013082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"57bc4c48-663d-4944-8b5b-b09cf6ae3578","savedPayload":{"position":{"x":7805.410892746932,"y":18422.90654583738},"targetPosition":{"x":7506.552483319409,"y":18396.759823013082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"","project":"Superalgos","id":"ed7c8dbc-8f81-4a3f-a525-a839f3b30440","savedPayload":{"position":{"x":7788.460269555181,"y":18499.365866010783},"targetPosition":{"x":7506.552483319409,"y":18396.759823013082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"1982bdf9-4889-430b-a004-7760307852b9","savedPayload":{"position":{"x":7752.298096606106,"y":18568.832753918396},"targetPosition":{"x":7506.552483319409,"y":18396.759823013082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"69f37820-ab16-4e19-bfd8-386dd6e249a3","savedPayload":{"position":{"x":7506.552483319409,"y":18396.759823013082},"targetPosition":{"x":7207.694073891885,"y":18370.613100188784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"External Signals","config":"{\n\"codeName\": \"External-Signals\",\n \"singularVariableName\": \"externalSignal\",\n \"pluralVariableName\": \"externalSignals\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Single File","config":"{\n \"codeName\": \"Single-File\",\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.json\",\n \"validTimeFrames\": [\n \"Any Time Frame\"\n ]\n }","project":"Superalgos","id":"c52d1012-5e3b-41a0-b5af-84098b0594bf","savedPayload":{"position":{"x":7735.347473414355,"y":18645.292074091798},"targetPosition":{"x":7453.439687178582,"y":18542.686031094097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Timestamp","config":"{ \n\"codeName\": \"timestamp\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"d27e836f-1cea-41e1-b4e8-c411fb50addc","savedPayload":{"position":{"x":8059.147210221705,"y":19327.250202502157},"targetPosition":{"x":7755.575674532873,"y":19095.339495482174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Source","config":"{ \n\"codeName\": \"source\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6aea41d8-153e-4196-9a55-ec40700c6c0e","savedPayload":{"position":{"x":7947.911693441085,"y":19426.85124974337},"targetPosition":{"x":7755.575674532873,"y":19095.339495482174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Message","config":"{ \n\"codeName\": \"message\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7c1feeae-6fdb-4886-aeb7-f16d10433acd","savedPayload":{"position":{"x":7806.971542532254,"y":19475.767071186157},"targetPosition":{"x":7755.575674532873,"y":19095.339495482174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6e1d5a0a-c082-4916-bce1-3a8a1651ff02","savedPayload":{"position":{"x":7646.275970084544,"y":18772.49936402979},"targetPosition":{"x":7453.439687178582,"y":18542.686031094097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"29196db8-4c41-47ea-be7e-952cd9be9a0b","savedPayload":{"position":{"x":7453.439687178582,"y":18542.686031094097},"targetPosition":{"x":7207.694073891885,"y":18370.613100188784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f0d7c835-cf51-447a-8d00-1aeb854bc909","savedPayload":{"position":{"x":7207.694073891885,"y":18370.613100188784},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"indicatorBots":[{"type":"Indicator Bot","name":"Candles Volumes","config":"{\n\"codeName\": \"Candles-Volumes\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces different files with multi-period candles and volumes for entire markets.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"botModule\": \"Candles Volumes Multi Period Market\"\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Candles","project":"Superalgos","id":"5d82f670-e692-40ca-8d24-9273d0f5e08f","savedPayload":{"position":{"x":9192.418398650192,"y":19587.004094485357},"targetPosition":{"x":8748.47479412653,"y":19622.40208184942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}},{"type":"Output Dataset","name":"Multi-Period-Market Volumes","project":"Superalgos","id":"b198c9ea-3141-4407-9953-2b2ebb672450","savedPayload":{"position":{"x":9186.288461833392,"y":19703.793451632006},"targetPosition":{"x":8748.47479412653,"y":19622.40208184942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1"}}}],"outputDatasetFolders":[],"id":"d529ec20-8461-40d6-9dc3-14f9ab8b64be","savedPayload":{"position":{"x":8748.47479412653,"y":19622.40208184942},"targetPosition":{"x":7859.40295616951,"y":19576.64733629439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"ff665e30-1d31-429b-88dc-f5e623b9a5f8","savedPayload":{"position":{"x":9621.27263217908,"y":19668.685379116447},"targetPosition":{"x":8734.234812077724,"y":19739.019113791623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"6d911e31-cef3-4c4f-82e3-d7b9b1ba9541","savedPayload":{"position":{"x":9622.867657177518,"y":19785.3443592653},"targetPosition":{"x":8734.234812077724,"y":19739.019113791623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"957ffa57-d4df-4866-b99f-86cf8add689d","savedPayload":{"position":{"x":9609.173391702054,"y":19901.09726150065},"targetPosition":{"x":8734.234812077724,"y":19739.019113791623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles One-Min","project":"Superalgos","id":"982efbd9-6a54-4322-9a0f-52a6483d67d9","savedPayload":{"position":{"x":9580.460839293297,"y":20014.061215154023},"targetPosition":{"x":8734.234812077724,"y":19739.019113791623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"1c3696e4-c28e-4744-9100-706d6dce0c3c"}}},{"type":"Data Dependency","name":"Volumes One-Min","project":"Superalgos","id":"fe28906a-90b1-4a5e-88b1-110d994cb397","savedPayload":{"position":{"x":9537.086152644468,"y":20122.577057115817},"targetPosition":{"x":8734.234812077724,"y":19739.019113791623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"73dcce78-c223-49e1-a93c-7e1ab7283f86"}}}],"dataMineDataDependencies":[],"id":"09645f1b-96c2-4dbb-a99f-803c8ebe7a00","savedPayload":{"position":{"x":8734.234812077724,"y":19739.019113791623},"targetPosition":{"x":7859.40295616951,"y":19576.64733629439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d","savedPayload":{"position":{"x":8705.575904695885,"y":19851.751665043284},"targetPosition":{"x":7859.40295616951,"y":19576.64733629439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"c086e5db-7777-45d9-bb4d-381f9566341f","savedPayload":{"position":{"x":8662.402085706337,"y":19959.934161459554},"targetPosition":{"x":7859.40295616951,"y":19576.64733629439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"fe40a546-43ee-49df-908a-7e72f598f0cd"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5","savedPayload":{"position":{"x":8605.265378118529,"y":20061.828965164208},"targetPosition":{"x":7859.40295616951,"y":19576.64733629439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1","savedPayload":{"position":{"x":7446.688338474603,"y":18388.266771417148},"targetPosition":{"x":7155.599620591805,"y":18460.843340097046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces different files with multi-period candles and volumes on a daily format.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"botModule\": \"Candles Volumes Multi Period Daily\"\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Candles","project":"Superalgos","id":"f60fba20-b9d6-4362-b667-020096340e38","savedPayload":{"position":{"x":8715.915766665308,"y":20665.767083162216},"targetPosition":{"x":8335.889515147152,"y":20433.45752823543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Volumes","project":"Superalgos","id":"a507b588-ce8f-4d5c-9053-d130015560b5","savedPayload":{"position":{"x":8642.184862733458,"y":20756.797224362635},"targetPosition":{"x":8335.889515147152,"y":20433.45752823543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e683057-f911-4105-bc77-16f2706d1915"}}}],"outputDatasetFolders":[],"id":"4d806ace-6f82-449d-b908-afcd7d029a68","savedPayload":{"position":{"x":8335.889515147152,"y":20433.45752823543},"targetPosition":{"x":7643.595283001359,"y":19873.678412005855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"14730a16-e01e-4bc5-9886-0eed386152f2","savedPayload":{"position":{"x":9014.86821580154,"y":20983.83545120919},"targetPosition":{"x":8255.83757735318,"y":20519.403392246968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"1baff60d-84c4-4e27-b03d-663158ca6bba","savedPayload":{"position":{"x":8947.467233850286,"y":21079.308504042263},"targetPosition":{"x":8255.83757735318,"y":20519.403392246968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"4e77c03b-367c-450c-82ca-c7211c2fab8e","savedPayload":{"position":{"x":8868.34723938024,"y":21164.901646950744},"targetPosition":{"x":8255.83757735318,"y":20519.403392246968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles One-Min","project":"Superalgos","id":"2d324ca2-acc5-4390-ae37-0d350fe8e8fa","savedPayload":{"position":{"x":8778.717343712258,"y":21239.411328957893},"targetPosition":{"x":8255.83757735318,"y":20519.403392246968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"1c3696e4-c28e-4744-9100-706d6dce0c3c"}}},{"type":"Data Dependency","name":"Volumes One-Min","project":"Superalgos","id":"4051019a-9548-4541-a7e7-11097fe3f103","savedPayload":{"position":{"x":8679.837696703074,"y":21301.70639895236},"targetPosition":{"x":8255.83757735318,"y":20519.403392246968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"73dcce78-c223-49e1-a93c-7e1ab7283f86"}}}],"dataMineDataDependencies":[],"id":"1e4c5a40-0c64-423f-968d-31b178056cf3","savedPayload":{"position":{"x":8255.83757735318,"y":20519.403392246968},"targetPosition":{"x":7643.595283001359,"y":19873.678412005855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"2a021da8-9feb-475e-90ab-1586968c17c7","savedPayload":{"position":{"x":8166.401873379367,"y":20593.75117204399},"targetPosition":{"x":7643.595283001359,"y":19873.678412005855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"fa826f1b-2a52-4542-89b2-7190e137ef56","savedPayload":{"position":{"x":8067.90488732592,"y":20655.888206638447},"targetPosition":{"x":7643.595283001359,"y":19873.678412005855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"fe40a546-43ee-49df-908a-7e72f598f0cd"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3","savedPayload":{"position":{"x":7961.8100942438505,"y":20704.74114441311},"targetPosition":{"x":7643.595283001359,"y":19873.678412005855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d","savedPayload":{"position":{"x":7433.754776961843,"y":18573.22531812182},"targetPosition":{"x":7155.599620591805,"y":18460.843340097046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Candles","config":"{\n \"codeName\": \"Candles\",\n \"singularVariableName\": \"candle\",\n \"pluralVariableName\": \"candles\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8","savedPayload":{"position":{"x":7433.174891189126,"y":18999.020144214453},"targetPosition":{"x":7250.546462486509,"y":18761.014142127082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"678a567c-f08d-49b9-813b-4e54fd6afadb","savedPayload":{"position":{"x":7393.694090564393,"y":19024.65927592567},"targetPosition":{"x":7250.546462486509,"y":18761.014142127082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Min","config":"{\n \"codeName\": \"min\",\n \"isString\": false\n}","project":"Superalgos","id":"95264fe8-6089-4a70-bf6d-158bc43c04f3","savedPayload":{"position":{"x":7515.407242548015,"y":19191.21124412991},"targetPosition":{"x":7450.830578026773,"y":19326.59903678239},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Max","config":"{\n \"codeName\": \"max\",\n \"isString\": false\n}","project":"Superalgos","id":"b716bfaa-d785-45e3-b8ca-370284ac901c","savedPayload":{"position":{"x":7592.226801690598,"y":19276.528007897326},"targetPosition":{"x":7450.830578026773,"y":19326.59903678239},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Open","config":"{\n \"codeName\": \"open\",\n \"isString\": false\n}","project":"Superalgos","id":"7d809ac3-9b7d-4687-83bb-40b851e522d0","savedPayload":{"position":{"x":7586.218370679253,"y":19391.175701303633},"targetPosition":{"x":7450.830578026773,"y":19326.59903678239},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Close","config":"{\n \"codeName\": \"close\",\n \"isString\": false\n}","project":"Superalgos","id":"b0ea41f8-03da-454e-8d0f-bb0f2fc5d328","savedPayload":{"position":{"x":7500.901606911837,"y":19467.995260446216},"targetPosition":{"x":7450.830578026773,"y":19326.59903678239},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"21b8be1f-0437-4fc8-9bc0-31779a9ea47e","savedPayload":{"position":{"x":7386.25391350553,"y":19461.98682943487},"targetPosition":{"x":7450.830578026773,"y":19326.59903678239},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"91ba9479-fdb4-42b7-ad02-1b2ac24b13d6","savedPayload":{"position":{"x":7309.4343543629475,"y":19376.670065667455},"targetPosition":{"x":7450.830578026773,"y":19326.59903678239},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction","config":"{\n \"codeName\": \"direction\",\n \"isString\": true,\n \"isCalculated\": true,\n \"possibleValues\": [\"Up\", \"Down\", \"Side\"]\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.direction","project":"Superalgos","id":"becdde12-efb6-464b-bfb0-ac98e3c2b8e3","savedPayload":{"position":{"x":7180.054992721813,"y":19197.445707739906},"targetPosition":{"x":7315.442785374293,"y":19262.022372261148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aafd0a4b-da5d-40c1-94b8-e79f0b1eca9b","savedPayload":{"position":{"x":7315.442785374293,"y":19262.022372261148},"targetPosition":{"x":7450.830578026773,"y":19326.59903678239},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"65ea4bea-6b8f-4df9-8716-d8af0ce2044c","savedPayload":{"position":{"x":7450.830578026773,"y":19326.59903678239},"targetPosition":{"x":7250.546462486509,"y":18761.014142127082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"calculations":{"type":"Calculations Procedure","name":"New Calculations Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"let candle = product.candle\n\nif (candle.close > candle.open) {\n variable.direction = \"Up\"\n}\n\nif (candle.close < candle.open) {\n variable.direction = \"Down\"\n}\n\nif (candle.close === candle.open) {\n variable.direction = \"Side\"\n}","project":"Superalgos","id":"798bc1e0-90d2-435f-980d-b457b30046dd","savedPayload":{"position":{"x":7359.887777781794,"y":19350.967086665452},"targetPosition":{"x":7332.552448957973,"y":19203.47885053086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"abbcb291-c048-49e7-b0d0-fdf20891faea","savedPayload":{"position":{"x":7332.552448957973,"y":19203.47885053086},"targetPosition":{"x":7305.217120134152,"y":19055.99061439627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f7846b50-ae42-46b4-aeb6-9f6217477a1b","savedPayload":{"position":{"x":7305.217120134152,"y":19055.99061439627},"targetPosition":{"x":7250.546462486509,"y":18761.014142127082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7","savedPayload":{"position":{"x":7314.575399861766,"y":18715.257768943975},"targetPosition":{"x":7155.599620591805,"y":18460.843340097046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Candles","id":"0aed75a3-fee8-4ddc-97ff-b6768e6f12a3"}}},{"type":"Product Definition","name":"Volumes","config":"{\n \"codeName\": \"Volumes\",\n \"singularVariableName\": \"volume\",\n \"pluralVariableName\": \"volumes\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"2e683057-f911-4105-bc77-16f2706d1915","savedPayload":{"position":{"x":7120.822619966086,"y":19075.37125732363},"targetPosition":{"x":7066.151962318443,"y":18780.394785054443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1","savedPayload":{"position":{"x":7003.778455073116,"y":19073.839065274584},"targetPosition":{"x":7066.151962318443,"y":18780.394785054443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Buy","config":"{\n \"codeName\": \"buy\",\n \"isString\": false\n}","project":"Superalgos","id":"bc8405e2-4a80-416c-bccf-1334e53d371b","savedPayload":{"position":{"x":6919.136375874943,"y":19183.20329621354},"targetPosition":{"x":6811.26915570227,"y":19151.25156993435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Sell","config":"{\n \"codeName\": \"sell\",\n \"isString\": false\n}","project":"Superalgos","id":"f08f11a8-d092-4b7e-a7e6-c67adac04a33","savedPayload":{"position":{"x":6814.214062386905,"y":19263.713018994098},"targetPosition":{"x":6811.26915570227,"y":19151.25156993435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"8e2624b0-48ee-4d00-821e-0c6a72b3838f","savedPayload":{"position":{"x":6705.221987954399,"y":19188.80484159815},"targetPosition":{"x":6811.26915570227,"y":19151.25156993435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"62964ed9-14c4-442d-b272-602d0c714654","savedPayload":{"position":{"x":6742.783494938787,"y":19061.999319151586},"targetPosition":{"x":6811.26915570227,"y":19151.25156993435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7edf78c7-c63d-4e7e-a643-99aaf52ac967","savedPayload":{"position":{"x":6811.26915570227,"y":19151.25156993435},"targetPosition":{"x":7066.151962318443,"y":18780.394785054443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f","savedPayload":{"position":{"x":7134.672678468567,"y":18760.112555174994},"targetPosition":{"x":7155.599620591805,"y":18460.843340097046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Volumes","id":"a6177fb7-51d1-4b7c-bcbb-04861a5bf0c1"}}}],"id":"285a4618-0423-4ac9-9df9-7a78be6fd915","savedPayload":{"position":{"x":7155.599620591805,"y":18460.843340097046},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"l"}}},{"type":"Indicator Bot","name":"Bollinger Bands","config":"{\n\"codeName\": \"Bollinger-Bands\",\n\"repo\": \"Bollinger-Bands-Indicator-Bot\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces a single file for each time frame covering all the market.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"botModule\": \"Bollinger Bands Multi Period Market\"\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Bollinger Bands","project":"Superalgos","id":"b8c1f684-7327-488b-8c76-4a73d811e312","savedPayload":{"position":{"x":9802.857916415382,"y":20000.495503001977},"targetPosition":{"x":9132.300106221523,"y":19923.18299956292},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f5b2a7d8-fc32-44a3-a002-9b0fc30a9719"}}},{"type":"Output Dataset","name":"Multi-Period-Market Percentage Bandwidth","project":"Superalgos","id":"fa1205c0-3b6e-4064-aca4-ffdaba7e1bd4","savedPayload":{"position":{"x":9759.999264793034,"y":20171.41427545018},"targetPosition":{"x":9132.300106221523,"y":19923.18299956292},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"207e9481-0730-4304-a938-cfe223d70856"}}}],"outputDatasetFolders":[],"id":"72887b4d-8868-4f0c-a051-81b83c366c99","savedPayload":{"position":{"x":9132.300106221523,"y":19923.18299956292},"targetPosition":{"x":7822.840529249766,"y":19594.83011579768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Bollinger Bands Multi-Period-Market","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"603f6167-ef54-4464-9b7b-5ff7f59c24e7","savedPayload":{"position":{"x":10406.37007598429,"y":20333.29976867414},"targetPosition":{"x":9078.23884639279,"y":20091.2926675722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"4f8197fa-2627-46df-bd36-7d30fdb12d8c"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"79c51f8f-95eb-451c-98ac-cce4028e23e2","savedPayload":{"position":{"x":10333.637163535812,"y":20587.755219346724},"targetPosition":{"x":9078.23884639279,"y":20091.2926675722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"25d943b0-45aa-45b3-b8b1-f83d5a8b636f","savedPayload":{"position":{"x":10212.65999779501,"y":20823.131892574016},"targetPosition":{"x":9078.23884639279,"y":20091.2926675722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"bd55a584-c9dd-4f2e-836c-a34a16ef01dc","savedPayload":{"position":{"x":9078.23884639279,"y":20091.2926675722},"targetPosition":{"x":7822.840529249766,"y":19594.83011579768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"4f8197fa-2627-46df-bd36-7d30fdb12d8c","savedPayload":{"position":{"x":9002.697373295567,"y":20250.9077236752},"targetPosition":{"x":7822.840529249766,"y":19594.83011579768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"a2cf5c7f-ffbf-4c38-9640-699fd3a37454","savedPayload":{"position":{"x":8906.968222478601,"y":20399.29711000833},"targetPosition":{"x":7822.840529249766,"y":19594.83011579768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"4a9c8cc7-0ebf-43eb-b7f9-0b280630ff67","savedPayload":{"position":{"x":8792.689346253512,"y":20533.921843030133},"targetPosition":{"x":7822.840529249766,"y":19594.83011579768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"941a0543-0cc0-4a5d-a782-728d2835c100","savedPayload":{"position":{"x":7374.142856266594,"y":18559.173217306714},"targetPosition":{"x":7075.786287656112,"y":18527.814678326416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces a Daily File at each time frame.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"botModule\": \"Bollinger Bands Multi Period Daily\"\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Bollinger Bands","project":"Superalgos","id":"1f8cdcbe-c7dc-49fd-b106-e59bb4fb4ad9","savedPayload":{"position":{"x":7911.777006679837,"y":19005.956128444468},"targetPosition":{"x":7699.682671184095,"y":18930.84958511687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"506104fa-e99a-4a46-930e-176bce311aff"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Percentage Bandwidth","project":"Superalgos","id":"6362cf0d-c71e-4d08-8dea-c9b8d5d0e38b","savedPayload":{"position":{"x":7885.111063624048,"y":19058.290988424957},"targetPosition":{"x":7699.682671184095,"y":18930.84958511687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e60d62dd-87f7-4f2d-ac21-3ac5c30a50ea"}}}],"outputDatasetFolders":[],"id":"3ab24229-73fe-439a-9684-986aac94f220","savedPayload":{"position":{"x":7699.682671184095,"y":18930.84958511687},"targetPosition":{"x":7298.72973529933,"y":18726.553860234075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"aee6dca7-b8e8-4a33-9bc6-37830080a3a2","savedPayload":{"position":{"x":8089.697712102978,"y":19142.702244145632},"targetPosition":{"x":7669.586520179237,"y":18981.436666850248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"40701c78-7ace-40a8-a943-7b76d73147ce","savedPayload":{"position":{"x":8059.297951882236,"y":19206.436666850248},"targetPosition":{"x":7669.586520179237,"y":18981.436666850248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Bollinger Bands Multi-Period-Daily","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"442d1d63-f28a-4bff-8dda-9bab7a5ad708","savedPayload":{"position":{"x":8019.302202834875,"y":19264.630842822673},"targetPosition":{"x":7669.586520179237,"y":18981.436666850248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"7323fef7-870a-48b6-b96f-586111253b40"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"603dbf64-0ee0-45b6-a1b8-14065b398893","savedPayload":{"position":{"x":7970.695293040724,"y":19315.851838315077},"targetPosition":{"x":7669.586520179237,"y":18981.436666850248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"312620aa-b556-43c4-9603-6a80acb7ab00","savedPayload":{"position":{"x":7669.586520179237,"y":18981.436666850248},"targetPosition":{"x":7298.72973529933,"y":18726.553860234075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"7323fef7-870a-48b6-b96f-586111253b40","savedPayload":{"position":{"x":7633.144906764159,"y":19027.662633095562},"targetPosition":{"x":7298.72973529933,"y":18726.553860234075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"7ec89351-b852-416a-961a-7e66717c6473","savedPayload":{"position":{"x":7590.981357047913,"y":19068.73654475409},"targetPosition":{"x":7298.72973529933,"y":18726.553860234075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"acebc3ed-4f3f-4a4b-b403-f16cbe987dde","savedPayload":{"position":{"x":7543.817301056093,"y":19103.955615809515},"targetPosition":{"x":7298.72973529933,"y":18726.553860234075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca","savedPayload":{"position":{"x":7298.72973529933,"y":18728.553860234075},"targetPosition":{"x":7075.786287656112,"y":18527.814678326416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Bollinger Bands","config":"{\n\"codeName\": \"Bollinger-Bands\",\n\"singularVariableName\": \"bollingerBand\",\n\"pluralVariableName\": \"bollingerBands\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"f5b2a7d8-fc32-44a3-a002-9b0fc30a9719","savedPayload":{"position":{"x":7338.898976809098,"y":19044.202406189776},"targetPosition":{"x":7138.15979490144,"y":18821.258958546558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"506104fa-e99a-4a46-930e-176bce311aff","savedPayload":{"position":{"x":7274.356944823305,"y":19088.560915803067},"targetPosition":{"x":7138.15979490144,"y":18821.258958546558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"1e7186ee-c481-401d-827f-a30ee7434d92","savedPayload":{"position":{"x":7323.917305853466,"y":19271.115700340448},"targetPosition":{"x":7262.906809392096,"y":19408.14751898684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"15f90f2e-80f0-4575-94d8-6d8957eceee1","savedPayload":{"position":{"x":7392.810619959761,"y":19333.14751898684},"targetPosition":{"x":7262.906809392096,"y":19408.14751898684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Moving Average","config":"{\n \"codeName\": \"movingAverage\",\n \"isString\": false\n}","project":"Superalgos","id":"9786a9cd-1eff-4b5c-ae7c-1dde51659f82","savedPayload":{"position":{"x":7412.085093697337,"y":19423.82678847699},"targetPosition":{"x":7262.906809392096,"y":19408.14751898684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Standard Deviation","config":"{\n \"codeName\": \"standardDeviation\",\n \"isString\": false\n}","project":"Superalgos","id":"e92d7855-bb18-494e-ab37-a895bbcb8287","savedPayload":{"position":{"x":7374.378533213705,"y":19508.51710994067},"targetPosition":{"x":7262.906809392096,"y":19408.14751898684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Deviation","config":"{\n \"codeName\": \"deviation\",\n \"isString\": false\n}","project":"Superalgos","id":"03043530-caa1-416e-8303-840b732e516e","savedPayload":{"position":{"x":7294.09356301476,"y":19554.869659096912},"targetPosition":{"x":7262.906809392096,"y":19408.14751898684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction","config":"{\n \"codeName\": \"direction\",\n \"isString\": true,\n \"isCalculated\": true,\n \"possibleValues\": [\"Up\", \"Down\", \"Side\"]\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.direction","project":"Superalgos","id":"f72926d9-c869-4b7c-ba1e-b36d134e2bc6","savedPayload":{"position":{"x":7140.885816469356,"y":19682.211156279624},"targetPosition":{"x":7201.896312930726,"y":19545.17933763323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"856f24c9-f5f1-491b-98e7-6e1d3c5c5874","savedPayload":{"position":{"x":7201.896312930726,"y":19545.17933763323},"targetPosition":{"x":7262.906809392096,"y":19408.14751898684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Slope","config":"{\n \"codeName\": \"slope\",\n \"isString\": true,\n \"isCalculated\": true,\n \"possibleValues\": [\"Side\", \"Gentle\", \"Medium\", \"Steep\", \"Extreme\"]\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.slope","project":"Superalgos","id":"fac935fe-b448-4b34-aed7-b35f70808911","savedPayload":{"position":{"x":7003.099188256765,"y":19558.14751898684},"targetPosition":{"x":7133.0029988244305,"y":19483.14751898684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4c027b0c-da8a-4146-a51a-d0a7a126150b","savedPayload":{"position":{"x":7133.0029988244305,"y":19483.14751898684},"targetPosition":{"x":7262.906809392096,"y":19408.14751898684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Upper Band","config":"{ \n \"codeName\": \"upperBand\",\n \"isString\": false,\n \"isCalculated\": true\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.upperBand","project":"Superalgos","id":"72cf5305-7f63-413b-a469-70ae053cfbcf","savedPayload":{"position":{"x":6964.550240781615,"y":19376.788980006542},"targetPosition":{"x":7113.728525086855,"y":19392.46824949669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"58990232-dba9-485d-8246-540554dfeb20","savedPayload":{"position":{"x":7113.728525086855,"y":19392.46824949669},"targetPosition":{"x":7262.906809392096,"y":19408.14751898684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lower Band","config":"{ \n \"codeName\": \"lowerBand\",\n \"isString\": false,\n \"isCalculated\": true\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.lowerBand","project":"Superalgos","id":"c165f7e7-03d7-442d-8182-1c7e913e06a5","savedPayload":{"position":{"x":7039.963361748878,"y":19207.40833707918},"targetPosition":{"x":7151.435085570487,"y":19307.77792803301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f1db553a-f738-4a1e-89c0-82b6b0cac9ba","savedPayload":{"position":{"x":7151.435085570487,"y":19307.77792803301},"targetPosition":{"x":7262.906809392096,"y":19408.14751898684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b5a5ec97-7246-42bd-97e4-28fb4a148b2c","savedPayload":{"position":{"x":7262.906809392096,"y":19408.14751898684},"targetPosition":{"x":7138.15979490144,"y":18821.258958546558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"calculations":{"type":"Calculations Procedure","name":"New Calculations Procedure","project":"Superalgos","initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"variable.lastMovingAverage = 0\nvariable.SIDE_TOLERANCE = 0.5 * system.timeFrame / system.ONE_DAY_IN_MILISECONDS\nvariable.SMALL_SLOPE = 1.0 * system.timeFrame / system.ONE_DAY_IN_MILISECONDS\nvariable.MEDIUM_SLOPE = 2.0 * system.timeFrame / system.ONE_DAY_IN_MILISECONDS\nvariable.HIGH_SLOPE = 4.0 * system.timeFrame / system.ONE_DAY_IN_MILISECONDS\n","project":"Superalgos","id":"f00ac417-cd99-493c-b959-35eddd6fe4f3","savedPayload":{"position":{"x":7149.92417539696,"y":19220.282722193027},"targetPosition":{"x":7142.078265824175,"y":19120.590988819713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d144ab2f-5b4e-4153-806a-d471e9f281dd","savedPayload":{"position":{"x":7142.078265824175,"y":19120.590988819713},"targetPosition":{"x":7130.309401464999,"y":18971.053388759745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"\nif (variable.lastMovingAverage > product.bollingerBand.movingAverage) { variable.direction = \"Down\" }\nif (variable.lastMovingAverage < product.bollingerBand.movingAverage) { variable.direction = \"Up\" }\nif (variable.lastMovingAverage === product.bollingerBand.movingAverage) { variable.direction = \"Side\" }\n\nvariable.delta = Math.abs(product.bollingerBand.movingAverage - variable.lastMovingAverage)\n\nvariable.slope = \"Extreme\"\nif (variable.delta < product.bollingerBand.movingAverage * variable.HIGH_SLOPE / 100) { variable.slope = \"Steep\" }\nif (variable.delta < product.bollingerBand.movingAverage * variable.MEDIUM_SLOPE / 100) { variable.slope = \"Medium\" }\nif (variable.delta < product.bollingerBand.movingAverage * variable.SMALL_SLOPE / 100) { variable.slope = \"Gentle\" }\nif (variable.delta < product.bollingerBand.movingAverage * variable.SIDE_TOLERANCE / 100) { variable.slope = \"Side\" }\n\nvariable.lastMovingAverage = product.bollingerBand.movingAverage\n\nvariable.upperBand = product.bollingerBand.movingAverage + product.bollingerBand.deviation\nvariable.lowerBand = product.bollingerBand.movingAverage - product.bollingerBand.deviation","project":"Superalgos","id":"14fc0c9c-cd10-4931-95b5-4bc7d549942a","savedPayload":{"position":{"x":7084.750520091961,"y":19216.867115650733},"targetPosition":{"x":7102.9740726411765,"y":19118.541624894337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8a669548-845b-4d80-ae96-29f68e9c9ac7","savedPayload":{"position":{"x":7102.9740726411765,"y":19118.541624894337},"targetPosition":{"x":7130.309401464999,"y":18971.053388759745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d72c7cb2-8886-4101-a83a-f9788b8400a0","savedPayload":{"position":{"x":7130.309401464999,"y":18971.053388759745},"targetPosition":{"x":7138.15979490144,"y":18821.258958546558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","id":"139484b3-3a3f-4268-801e-a8c441746c7a","savedPayload":{"position":{"x":7091.807245745198,"y":18963.917435990832},"targetPosition":{"x":7138.15979490144,"y":18821.258958546558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"29088877-8d63-4217-8d34-8742afc262f4","savedPayload":{"position":{"x":7138.15979490144,"y":18821.258958546558},"targetPosition":{"x":7075.786287656112,"y":18527.814678326416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Bollinger Bands","id":"a11bfdf8-595c-4b50-b259-6a9f777d0ea8"}}},{"type":"Product Definition","name":"Percentage Bandwidth","config":"{\n \"codeName\": \"Percentage-Bandwidth\",\n \"singularVariableName\": \"percentageBandwidth\",\n \"pluralVariableName\": \"percentageBandwidths\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"207e9481-0730-4304-a938-cfe223d70856","savedPayload":{"position":{"x":5357.653002488401,"y":20013.01901564487},"targetPosition":{"x":5861.4026547046415,"y":19623.03920165868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"e60d62dd-87f7-4f2d-ac21-3ac5c30a50ea","savedPayload":{"position":{"x":5246.789138410677,"y":19790.245896315388},"targetPosition":{"x":5861.4026547046415,"y":19623.03920165868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"7c793ff3-0356-4f05-b471-4510e9cdaf58","savedPayload":{"position":{"x":4721.320453641816,"y":19755.97100740029},"targetPosition":{"x":4598.489790244897,"y":19462.08387114418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"b02c38c3-216c-4a83-903d-d50a599b55dc","savedPayload":{"position":{"x":4405.404089771984,"y":19715.67644645334},"targetPosition":{"x":4598.489790244897,"y":19462.08387114418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Value","config":"{\n \"codeName\": \"value\",\n \"isString\": false\n}","project":"Superalgos","id":"2c279136-20b1-4f9c-9d35-6a4fd36a4a99","savedPayload":{"position":{"x":4282.2258433977095,"y":19421.8812093852},"targetPosition":{"x":4598.489790244897,"y":19462.08387114418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Moving Average","config":"{\n \"codeName\": \"movingAverage\",\n \"isString\": false\n}","project":"Superalgos","id":"a9e3bbb1-9eaf-4ab1-93bb-ee27357daa76","savedPayload":{"position":{"x":4475.280766835582,"y":19168.151128614045},"targetPosition":{"x":4598.489790244897,"y":19462.08387114418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Bandwidth","config":"{\n \"codeName\": \"bandwidth\",\n \"isString\": false\n}","project":"Superalgos","id":"90d9694f-ed29-4b2e-8c75-c4bdcf35e36a","savedPayload":{"position":{"x":4791.224725337037,"y":19208.527577322042},"targetPosition":{"x":4598.489790244897,"y":19462.08387114418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d04d8ca7-18d0-4360-babf-7c49c3c97f50","savedPayload":{"position":{"x":4598.489790244897,"y":19462.08387114418},"targetPosition":{"x":5861.4026547046415,"y":19623.03920165868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068","savedPayload":{"position":{"x":6953.765294733372,"y":18801.878315619197},"targetPosition":{"x":7075.786287656112,"y":18527.814678326416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Percentage B","id":"06b2f3f6-b138-415f-8974-31c22a930f92"}}}],"id":"1b7ecdbd-82e9-4a27-8fdd-467c0ca6bf23","savedPayload":{"position":{"x":7075.786287656112,"y":18527.814678326416},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"c"}}},{"type":"Indicator Bot","name":"Bollinger Channels","config":"{\n\"codeName\": \"Bollinger-Channels\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces for each market two files with bollinger channels respectively.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Market Bollinger Channels Objects","project":"Superalgos","id":"d804e799-7c12-42f5-8de2-52a3a7d5daa4","savedPayload":{"position":{"x":5687.266644089639,"y":19990.674127031423},"targetPosition":{"x":5498.278313251056,"y":19414.619326731256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"610cd062-ab88-4892-b711-0fb430305c61"}}},{"type":"Output Dataset","name":"Market Bollinger Channels","project":"Superalgos","id":"e524685d-8da0-41f6-839d-9a4100e6e3fe","savedPayload":{"position":{"x":5592.935368757306,"y":20013.944705671965},"targetPosition":{"x":5498.278313251056,"y":19414.619326731256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"22c1f2c6-3838-4657-add8-2e01d7056917"}}},{"type":"Output Dataset","name":"Market Bollinger Sub-Channels Objects","project":"Superalgos","id":"eb0e7947-95e4-4f4a-87ea-1fb430b8b503","savedPayload":{"position":{"x":5497.007603703398,"y":20021.583937529194},"targetPosition":{"x":5498.278313251056,"y":19414.619326731256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"869f615e-0cc0-44fd-8648-4a951c23a410"}}},{"type":"Output Dataset","name":"Market Bollinger Sub-Channels","project":"Superalgos","id":"dc96b9ac-f8d5-4bf8-a135-45cd5d6369f1","savedPayload":{"position":{"x":5421.488977859208,"y":20012.352456774828},"targetPosition":{"x":5498.278313251056,"y":19414.619326731256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"f8d44a4d-3771-4a71-97ca-dc604ff565d3"}}}],"outputDatasetFolders":[],"id":"dd39a54a-3714-446a-9a41-dfd83557664c","savedPayload":{"position":{"x":5498.278313251056,"y":19414.619326731256},"targetPosition":{"x":5452.70185999617,"y":18810.181014120284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Bollinger Channels Multi-Period-Market","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"ae627a69-4089-432d-b379-1b12ce4bd75e","savedPayload":{"position":{"x":5324.033947377382,"y":20011.88811136869},"targetPosition":{"x":5339.86670584817,"y":19405.54825242224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"af8aded9-002a-475a-88f5-d29573740969"}}},{"type":"Status Dependency","name":"Bollinger Bands Multi-Period-Market","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"4a603114-d464-46db-90a1-62304274117a","savedPayload":{"position":{"x":5221.686439018522,"y":20000.397363985212},"targetPosition":{"x":5339.86670584817,"y":19405.54825242224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"4f8197fa-2627-46df-bd36-7d30fdb12d8c"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Bollinger Bands Multi-Period-Market","project":"Superalgos","id":"ea27be54-93a3-48e3-8c52-72bc397b6c66","savedPayload":{"position":{"x":5112.588462840864,"y":19967.319852956214},"targetPosition":{"x":5339.86670584817,"y":19405.54825242224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f5b2a7d8-fc32-44a3-a002-9b0fc30a9719"}}}],"dataMineDataDependencies":[],"id":"8b509294-6028-40e2-88a8-655a34245ed8","savedPayload":{"position":{"x":5339.86670584817,"y":19405.54825242224},"targetPosition":{"x":5452.70185999617,"y":18810.181014120284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"af8aded9-002a-475a-88f5-d29573740969","savedPayload":{"position":{"x":5189.608529126428,"y":19356.103569264757},"targetPosition":{"x":5452.70185999617,"y":18810.181014120284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Bollinger Bands Multi-Period-Market","project":"Superalgos","id":"f4720e04-5def-4c0b-be42-33e50ac6a6b7","savedPayload":{"position":{"x":5057.22091964295,"y":19269.416719789868},"targetPosition":{"x":5452.70185999617,"y":18810.181014120284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"4a9c8cc7-0ebf-43eb-b7f9-0b280630ff67"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"671530dc-5ba5-4c8d-bc23-f228e22c56b3","savedPayload":{"position":{"x":4951.714362621191,"y":19151.262200859976},"targetPosition":{"x":5452.70185999617,"y":18810.181014120284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"28be432d-80ca-46b3-859a-55541e24b2b4","savedPayload":{"position":{"x":7266.668015041196,"y":18642.70152353765},"targetPosition":{"x":6977.880740956192,"y":18561.449383094747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces for each market two files with bollinger channels respectively at each day of the market history.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Daily Bollinger Channels Objects","project":"Superalgos","id":"64430a93-38c2-4c71-8085-71661bbf804e","savedPayload":{"position":{"x":6749.16703949514,"y":19626.732143607558},"targetPosition":{"x":6179.8809249372025,"y":19626.732143607558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"64910fea-c92a-4a55-850a-aa62d98b478e"}}},{"type":"Output Dataset","name":"Daily Bollinger Sub-Channels","project":"Superalgos","id":"b536a078-e32a-4489-93f6-75107a90b527","savedPayload":{"position":{"x":6179.8809249372025,"y":20229.089591771364},"targetPosition":{"x":6179.8809249372025,"y":19626.732143607558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"ca71e765-0f66-4b18-b500-847b9d16169b"}}},{"type":"Output Dataset","name":"Daily Bollinger Sub-Channels Objects","project":"Superalgos","id":"d5bcc7c4-2798-4c34-9504-cc4617b64a04","savedPayload":{"position":{"x":5563.709533981204,"y":19626.732143607558},"targetPosition":{"x":6179.8809249372025,"y":19626.732143607558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"029479ae-275d-4854-ad3e-66948656a053"}}},{"type":"Output Dataset","name":"Daily Bollinger Channels","project":"Superalgos","id":"57898dc1-83a2-4ee9-8a0b-6674f988f0fa","savedPayload":{"position":{"x":6179.8809249372025,"y":19035.126363186133},"targetPosition":{"x":6179.8809249372025,"y":19626.732143607558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"96b4e65b-e6db-44a0-80a5-ceb9d68a09ec"}}}],"outputDatasetFolders":[],"id":"b8fc5ac0-021d-4230-aa59-9876c5f0f3e1","savedPayload":{"position":{"x":4837.803174394638,"y":19431.08867683786},"targetPosition":{"x":5169.713889679955,"y":18584.819258576517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Bollinger Bands Multi-Period-Daily","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"3cb29ee1-02de-452a-a79f-2451700fe335","savedPayload":{"position":{"x":4276.758853260879,"y":20152.442412346893},"targetPosition":{"x":4630.241806005684,"y":19315.72841166174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"7323fef7-870a-48b6-b96f-586111253b40"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"d5f34469-0ae1-45e6-acd9-4155d5940c77","savedPayload":{"position":{"x":4149.938308225999,"y":20086.679737181315},"targetPosition":{"x":4630.241806005684,"y":19315.72841166174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Bollinger Channels Multi-Period-Daily","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"7f6266a5-bddb-4d49-962d-100b1993043d","savedPayload":{"position":{"x":4035.136336165244,"y":20001.952481172197},"targetPosition":{"x":4630.241806005684,"y":19315.72841166174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"b1dd07bf-a698-4bbb-995a-356c929a1e94"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Bollinger Bands Multi-Period-Daily","project":"Superalgos","id":"073e24ab-6b47-482a-b117-0d3554f63c1f","savedPayload":{"position":{"x":3934.9110977998407,"y":19900.149704954005},"targetPosition":{"x":4630.241806005684,"y":19315.72841166174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"506104fa-e99a-4a46-930e-176bce311aff"}}}],"dataMineDataDependencies":[],"id":"c0cb34fe-9268-4ebb-a8ce-7d53a13a6d4d","savedPayload":{"position":{"x":4630.241806005684,"y":19315.72841166174},"targetPosition":{"x":5169.713889679955,"y":18584.819258576517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"b1dd07bf-a698-4bbb-995a-356c929a1e94","savedPayload":{"position":{"x":4459.38698613855,"y":19151.21260876096},"targetPosition":{"x":5169.713889679955,"y":18584.819258576517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Bollinger Bands Multi-Period-Daily","project":"Superalgos","id":"4548cff9-f388-4f4f-b148-665d22ffaf9e","savedPayload":{"position":{"x":4336.934980792743,"y":18948.120225512925},"targetPosition":{"x":5169.713889679955,"y":18584.819258576517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"acebc3ed-4f3f-4a4b-b403-f16cbe987dde"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"34e17fad-2c62-4c45-875c-774ac6b6cc99","savedPayload":{"position":{"x":4271.198872233363,"y":18720.189567902362},"targetPosition":{"x":5169.713889679955,"y":18584.819258576517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"bc15b49d-4547-4bac-a28b-193eb0158fe3","savedPayload":{"position":{"x":7202.815101846514,"y":18759.955134373806},"targetPosition":{"x":6977.880740956192,"y":18561.449383094747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Bollinger Channels Objects","config":"{\n \"codeName\": \"Bollinger-Channels-Objects\",\n \"singularVariableName\": \"bollingerChannelsObject\",\n \"pluralVariableName\": \"bollingerChannelsObjects\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"610cd062-ab88-4892-b711-0fb430305c61","savedPayload":{"position":{"x":5720.882920927928,"y":19952.296078686548},"targetPosition":{"x":5800.806248533099,"y":19417.143841775804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }\n","project":"Superalgos","id":"64910fea-c92a-4a55-850a-aa62d98b478e","savedPayload":{"position":{"x":5558.8784409430045,"y":19900.845209639374},"targetPosition":{"x":5800.806248533099,"y":19417.143841775804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"06edb099-ff64-4528-b8c6-599154bc2ddf","savedPayload":{"position":{"x":5311.500564999933,"y":20162.173239084834},"targetPosition":{"x":5042.175036115106,"y":20186.920481973415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"94656d1f-508a-4e94-a8d2-013690aac596","savedPayload":{"position":{"x":5264.923927723674,"y":20341.17734801434},"targetPosition":{"x":5042.175036115106,"y":20186.920481973415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction","config":"{\n \"codeName\": \"direction\",\n \"isString\": true,\n \"possibleValues\": [\"Up\", \"Down\", \"Side\"]\n}","project":"Superalgos","id":"edc0f697-f5e2-446f-bae8-8db7adf91d23","savedPayload":{"position":{"x":5113.89002857712,"y":20448.42579147178},"targetPosition":{"x":5042.175036115106,"y":20186.920481973415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Period","config":"{\n \"codeName\": \"period\",\n \"isString\": false\n}","project":"Superalgos","id":"eb733f85-6cf5-485e-9bd3-2bf78733c492","savedPayload":{"position":{"x":4929.427401445173,"y":20433.55648065303},"targetPosition":{"x":5042.175036115106,"y":20186.920481973415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"First Moving Average","config":"{\n \"codeName\": \"firstMovingAverage\",\n \"isString\": false\n}","project":"Superalgos","id":"a67a15ee-6f7f-48bd-9d55-82c57efc993b","savedPayload":{"position":{"x":4797.469987566172,"y":20303.546052506135},"targetPosition":{"x":5042.175036115106,"y":20186.920481973415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last Moving Average","config":"{\n \"codeName\": \"lastMovingAverage\",\n \"isString\": false\n}","project":"Superalgos","id":"0f05bffe-d668-4d25-ab67-d55a4a7c8f5d","savedPayload":{"position":{"x":4779.980984599108,"y":20119.56664840727},"targetPosition":{"x":5042.175036115106,"y":20186.920481973415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"First Deviation","config":"{\n \"codeName\": \"firstDeviation\",\n \"isString\": false\n}","project":"Superalgos","id":"eae84509-b689-4a76-9277-eed72af491dd","savedPayload":{"position":{"x":4867.812037731175,"y":19955.395374959928},"targetPosition":{"x":5042.175036115106,"y":20186.920481973415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last Deviation","config":"{\n \"codeName\": \"lastDeviation\",\n \"isString\": false\n}","project":"Superalgos","id":"d5c32d1f-9e3c-48e8-8025-a17d57c0812e","savedPayload":{"position":{"x":5069.229557080776,"y":19925.81306570211},"targetPosition":{"x":5042.175036115106,"y":20186.920481973415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6c3e68b0-b781-4c53-9ff7-67c3f747ac8a","savedPayload":{"position":{"x":5042.175036115106,"y":20186.920481973415},"targetPosition":{"x":5800.806248533099,"y":19417.143841775804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"\n\nif (record.next !== undefined) {\n\n if (\n record.current.direction === record.next.direction) {\n\n if (variable.channel === undefined) {\n\n variable.channel = {\n begin: undefined,\n end: undefined,\n direction: undefined,\n period: 0,\n firstMovingAverage: 0,\n lastMovingAverage: 0,\n firstDeviation: 0,\n lastDeviation: 0\n }\n\n variable.channel.direction = record.current.direction\n variable.channel.period = 2\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.next.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.next.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.next.deviation\n\n } else {\n\n variable.channel.period++\n variable.channel.end = record.next.end\n variable.channel.lastMovingAverage = record.next.movingAverage\n variable.channel.lastDeviation = record.next.deviation\n\n }\n } else {\n\n if (variable.channel !== undefined) {\n results.push(variable.channel)\n variable.channel = undefined\n } else {\n /* The variable.channel has only one period */\n\n variable.channel = {}\n\n variable.channel.direction = record.current.direction\n variable.channel.period = 1\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.current.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.current.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.current.deviation\n\n results.push(variable.channel)\n variable.channel = undefined\n }\n }\n} else {\n if (variable.channel !== undefined) {\n variable.channel.period++\n variable.channel.end = record.current.end\n variable.channel.lastMovingAverage = record.current.movingAverage\n variable.channel.lastDeviation = record.current.deviation\n results.push(variable.channel)\n variable.channel = undefined\n } else {\n /* The variable.channel has only one period */\n\n variable.channel = {}\n\n variable.channel.direction = record.current.direction\n variable.channel.period = 1\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.current.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.current.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.current.deviation\n\n results.push(variable.channel)\n variable.channel = undefined\n }\n}","project":"Superalgos","id":"b81d6adc-e721-4089-b4c3-2fd772f33d25","savedPayload":{"position":{"x":5013.265999650357,"y":19840.81234203045},"targetPosition":{"x":5263.929405162591,"y":19732.285169802894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a2b92c75-e272-4d05-b098-121a70371450","savedPayload":{"position":{"x":5263.929405162591,"y":19732.285169802894},"targetPosition":{"x":5522.6118702301865,"y":19561.75920205435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"116ccf8c-26bc-4b86-99e6-bb3075527713","savedPayload":{"position":{"x":5522.6118702301865,"y":19561.75920205435},"targetPosition":{"x":5800.806248533099,"y":19417.143841775804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1f111f72-624f-4166-9f99-ab8d785d5267","savedPayload":{"position":{"x":7094.4111798386,"y":18837.89224665587},"targetPosition":{"x":6977.880740956192,"y":18561.449383094747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Plotter Module","name":"Bollinger Channels Objects","id":"52881346-3e4b-45e0-92d2-af130d381b8e"}}},{"type":"Product Definition","name":"Bollinger Channels","config":"{\n \"codeName\": \"Bollinger-Channels\",\n \"singularVariableName\": \"bollingerChannel\",\n \"pluralVariableName\": \"bollingerChannels\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"22c1f2c6-3838-4657-add8-2e01d7056917","savedPayload":{"position":{"x":5337.21592038497,"y":19684.391171162788},"targetPosition":{"x":5641.418590789468,"y":19237.159776774533},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }\n","project":"Superalgos","id":"96b4e65b-e6db-44a0-80a5-ceb9d68a09ec","savedPayload":{"position":{"x":5213.544700282855,"y":19567.823825352214},"targetPosition":{"x":5641.418590789468,"y":19237.159776774533},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"b243e3c4-e528-4e7b-9644-b03e47c8ca34","savedPayload":{"position":{"x":4953.851274943034,"y":20030.445985208506},"targetPosition":{"x":4788.86842333401,"y":19816.025093604323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"74268e18-735f-405b-b9db-412ce6cf7438","savedPayload":{"position":{"x":4788.86842333401,"y":19816.025093604323},"targetPosition":{"x":4623.98601946668,"y":19601.63586734566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"bc705d0f-6df6-45f6-8d3a-44b81bf785bd","savedPayload":{"position":{"x":4318.526483972231,"y":20049.02084549715},"targetPosition":{"x":4471.22261506259,"y":19825.422696211226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad08f6a7-5d37-4fd3-9d84-5eebddcd8cb5","savedPayload":{"position":{"x":4471.22261506259,"y":19825.422696211226},"targetPosition":{"x":4623.98601946668,"y":19601.63586734566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction","config":"{\n \"codeName\": \"direction\",\n \"isString\": true,\n \"possibleValues\": [\"Up\", \"Down\", \"Side\"]\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.direction","project":"Superalgos","id":"7b7fd5fc-c820-4c1b-ae3e-400d7b90bb0b","savedPayload":{"position":{"x":4106.964199265562,"y":19455.43121870476},"targetPosition":{"x":4367.151217673905,"y":19530.86979662605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31720cda-be3c-453e-8c6e-c4816299c440","savedPayload":{"position":{"x":4367.151217673905,"y":19530.86979662605},"targetPosition":{"x":4623.98601946668,"y":19601.63586734566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Period","config":"{\n \"codeName\": \"period\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.period","project":"Superalgos","id":"9c44699b-a743-4f46-82f6-0351e8b1a206","savedPayload":{"position":{"x":4625.866910548906,"y":19067.49376446092},"targetPosition":{"x":4623.428111733501,"y":19339.442480933998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8af98ad4-3062-49a1-bff6-593bd9638f72","savedPayload":{"position":{"x":4623.428111733501,"y":19339.442480933998},"targetPosition":{"x":4623.98601946668,"y":19601.63586734566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9106250d-b042-4e96-9121-c760b4c1eab2","savedPayload":{"position":{"x":4623.98601946668,"y":19601.63586734566},"targetPosition":{"x":5641.418590789468,"y":19237.159776774533},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"if (record.previous !== undefined) {\n if (record.current.direction === record.previous.direction) {\n variable.period++\n } else {\n variable.period = 1\n }\n}","project":"Superalgos","id":"8f05a74a-f85c-4eb1-9de1-3363d2e3cb8a","savedPayload":{"position":{"x":4308.618521034068,"y":19447.701832098734},"targetPosition":{"x":4582.725632129386,"y":19412.56698223462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7e54fecc-8443-4aad-a541-0b6a3fcac877","savedPayload":{"position":{"x":4582.725632129386,"y":19412.56698223462},"targetPosition":{"x":5121.182603078487,"y":19313.701368995924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"variable.period = 1","project":"Superalgos","id":"491600d9-228d-41b8-bedb-22b8ba22a7c9","savedPayload":{"position":{"x":4307.097405901435,"y":19221.058906231985},"targetPosition":{"x":4577.265780316491,"y":19247.988772784658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3c3de682-9ac0-4bf9-b1ff-97a3e0cb24b4","savedPayload":{"position":{"x":4577.265780316491,"y":19247.988772784658},"targetPosition":{"x":5121.182603078487,"y":19313.701368995924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9ace6abd-5ef9-4c37-9dbc-7aefc8b8b905","savedPayload":{"position":{"x":5121.182603078487,"y":19313.701368995924},"targetPosition":{"x":5641.418590789468,"y":19237.159776774533},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"94bc3958-cc85-43a1-a178-103e84f42910","savedPayload":{"position":{"x":6962.926975257982,"y":18861.076459460422},"targetPosition":{"x":6977.880740956192,"y":18561.449383094747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Bollinger Channels","id":"a045ea45-c8ff-49a5-86cd-5d38cd3e6d22"}}},{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","config":"{\n \"codeName\": \"Bollinger-Sub-Channels-Objects\",\n \"singularVariableName\": \"bollingerSubChannelsObject\",\n \"pluralVariableName\": \"bollingerSubChannelsObjects\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"869f615e-0cc0-44fd-8648-4a951c23a410","savedPayload":{"position":{"x":5107.783025826782,"y":19276.737567128723},"targetPosition":{"x":5575.816851249463,"y":19005.79696148155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }\n","project":"Superalgos","id":"029479ae-275d-4854-ad3e-66948656a053","savedPayload":{"position":{"x":5047.006363022967,"y":19118.05582271009},"targetPosition":{"x":5575.816851249463,"y":19005.79696148155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"8f0513f5-d78e-4efd-a554-a6ee2a4781ac","savedPayload":{"position":{"x":4701.553695268074,"y":19074.058760946547},"targetPosition":{"x":4501.014432105094,"y":18892.68523642824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"677f9a11-1fa3-4880-ad4f-81a4490d82e8","savedPayload":{"position":{"x":4556.617530496089,"y":19157.805622122658},"targetPosition":{"x":4501.014432105094,"y":18892.68523642824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction","config":"{\n \"codeName\": \"direction\",\n \"isString\": true,\n \"possibleValues\": [\"Up\", \"Down\", \"Side\"]\n}","project":"Superalgos","id":"610f6b9f-9404-4603-a42b-80de31498f2f","savedPayload":{"position":{"x":4390.33895130143,"y":19140.16980911338},"targetPosition":{"x":4501.014432105094,"y":18892.68523642824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Slope","config":"{\n \"codeName\": \"slope\",\n \"isString\": true,\n \"possibleValues\": [\"Side\", \"Gentle\", \"Medium\", \"Steep\", \"Extreme\"]\n}","project":"Superalgos","id":"65600005-8272-4297-8716-b08841eb5e73","savedPayload":{"position":{"x":4265.995336394912,"y":19028.053671886344},"targetPosition":{"x":4501.014432105094,"y":18892.68523642824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Period","config":"{\n \"codeName\": \"period\",\n \"isString\": false\n}","project":"Superalgos","id":"ef18438f-7a1f-4432-8fce-494bc9b5ae01","savedPayload":{"position":{"x":4231.222014703961,"y":18864.43916776906},"targetPosition":{"x":4501.014432105094,"y":18892.68523642824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"First Moving Average","config":"{\n \"codeName\": \"firstMovingAverage\",\n \"isString\": false\n}","project":"Superalgos","id":"e5694d55-735b-4cb2-919e-02a71679c682","savedPayload":{"position":{"x":4299.317018230371,"y":18711.50390365103},"targetPosition":{"x":4501.014432105094,"y":18892.68523642824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last Moving Average","config":"{\n \"codeName\": \"lastMovingAverage\",\n \"isString\": false\n}","project":"Superalgos","id":"d49bae2d-b519-49ba-8fd2-9a3a4c2e8dc3","savedPayload":{"position":{"x":4444.094040376593,"y":18627.991417823378},"targetPosition":{"x":4501.014432105094,"y":18892.68523642824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"First Deviation","config":"{\n \"codeName\": \"firstDeviation\",\n \"isString\": false\n}","project":"Superalgos","id":"a11b4d44-937d-456e-b2bd-9cd025289c34","savedPayload":{"position":{"x":4610.237871424488,"y":18645.76924086054},"targetPosition":{"x":4501.014432105094,"y":18892.68523642824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last Deviation","config":"{\n \"codeName\": \"lastDeviation\",\n \"isString\": false\n}","project":"Superalgos","id":"4d1b7a3f-c452-4002-ab8c-bfa7d396ac2c","savedPayload":{"position":{"x":4734.172628418706,"y":18761.839285792033},"targetPosition":{"x":4501.014432105094,"y":18892.68523642824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a2ff91c2-cfee-487c-959d-fd3ed3dea861","savedPayload":{"position":{"x":4501.014432105094,"y":18892.68523642824},"targetPosition":{"x":5575.816851249463,"y":19005.79696148155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"if (record.next !== undefined) {\n\n if (\n record.current.direction === record.next.direction &&\n record.current.slope === record.next.slope) {\n\n if (variable.channel === undefined) {\n\n variable.channel = {\n begin: undefined,\n end: undefined,\n direction: undefined,\n slope: undefined,\n period: 0,\n firstMovingAverage: 0,\n lastMovingAverage: 0,\n firstDeviation: 0,\n lastDeviation: 0\n }\n\n variable.channel.direction = record.current.direction\n variable.channel.slope = record.current.slope\n variable.channel.period = 2\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.next.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.next.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.next.deviation\n\n } else {\n\n variable.channel.period++\n variable.channel.end = record.next.end\n variable.channel.lastMovingAverage = record.next.movingAverage\n variable.channel.lastDeviation = record.next.deviation\n\n }\n } else {\n\n if (variable.channel !== undefined) {\n results.push(variable.channel)\n variable.channel = undefined\n } else {\n /* The channel has only one period */\n\n variable.channel = {}\n\n variable.channel.direction = record.current.direction\n variable.channel.slope = record.current.slope\n variable.channel.period = 1\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.current.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.current.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.current.deviation\n\n results.push(variable.channel)\n variable.channel = undefined\n }\n }\n\n} else {\n if (variable.channel !== undefined) {\n variable.channel.period++\n variable.channel.end = record.current.end\n variable.channel.lastMovingAverage = record.current.movingAverage\n variable.channel.lastDeviation = record.current.deviation\n results.push(variable.channel)\n variable.channel = undefined\n } else {\n /* The channel has only one period */\n\n variable.channel = {}\n\n variable.channel.direction = record.current.direction\n variable.channel.slope = record.current.slope\n variable.channel.period = 1\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.current.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.current.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.current.deviation\n\n results.push(variable.channel)\n variable.channel = undefined\n }\n}","project":"Superalgos","id":"a1af769c-2a2d-4e78-8f0d-8dfb773982f0","savedPayload":{"position":{"x":4746.328386052239,"y":18661.359603058827},"targetPosition":{"x":4993.349023912837,"y":18777.200545998578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"128aac86-66b5-4685-a75d-4e60ba697c90","savedPayload":{"position":{"x":4993.349023912837,"y":18777.200545998578},"targetPosition":{"x":5289.652822657601,"y":18878.39734672545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5bfe184e-396e-431a-a640-76c05d1c6e06","savedPayload":{"position":{"x":5289.652822657601,"y":18878.39734672545},"targetPosition":{"x":5575.816851249463,"y":19005.79696148155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"080c87fc-4546-4482-ab11-180a33f6d9ab","savedPayload":{"position":{"x":6834.404547369795,"y":18824.915855105817},"targetPosition":{"x":6977.880740956192,"y":18561.449383094747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Bollinger Sub Channels Objects","id":"f8c4b699-1f40-4832-b427-68da3341daa8"}}},{"type":"Product Definition","name":"Bollinger Sub-Channels","config":"{\n \"codeName\": \"Bollinger-Sub-Channels\",\n \"singularVariableName\": \"bollingerSubChannel\",\n \"pluralVariableName\": \"bollingerSubChannels\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"f8d44a4d-3771-4a71-97ca-dc604ff565d3","savedPayload":{"position":{"x":5078.065560225332,"y":18809.666529232563},"targetPosition":{"x":5617.060229699684,"y":18768.843965977925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }\n","project":"Superalgos","id":"ca71e765-0f66-4b18-b500-847b9d16169b","savedPayload":{"position":{"x":5092.340301215987,"y":18640.479645719985},"targetPosition":{"x":5617.060229699684,"y":18768.843965977925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"421aeb2e-dd1b-44ec-bf78-00d8691d4110","savedPayload":{"position":{"x":4914.271631248583,"y":18748.06660970744},"targetPosition":{"x":4921.139964416205,"y":18545.10723836855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2a101e7-8183-42b4-94c4-99bfcbf2c3c2","savedPayload":{"position":{"x":4921.139964416205,"y":18545.10723836855},"targetPosition":{"x":4927.675553436395,"y":18342.423651693094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"febf55a5-de85-4830-b4fe-df78acfc60b5","savedPayload":{"position":{"x":4569.302186443991,"y":18534.35028283147},"targetPosition":{"x":4748.42126072969,"y":18438.423770202477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0cc9b985-b780-41ef-838b-7f764824f244","savedPayload":{"position":{"x":4748.42126072969,"y":18438.423770202477},"targetPosition":{"x":4927.675553436395,"y":18342.423651693094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction","config":"{\n \"codeName\": \"direction\",\n \"isString\": true,\n \"possibleValues\": [\"Up\", \"Down\", \"Side\"]\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.direction","project":"Superalgos","id":"73113162-c56d-4ca1-9e8b-f6a5bf84c30f","savedPayload":{"position":{"x":4581.685255061548,"y":18128.665696087784},"targetPosition":{"x":4754.62718421156,"y":18235.531379399024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"91f3e346-3d02-48f9-aa0c-e55bae62f870","savedPayload":{"position":{"x":4754.62718421156,"y":18235.531379399024},"targetPosition":{"x":4927.675553436395,"y":18342.423651693094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Slope","config":"{\n \"codeName\": \"slope\",\n \"isString\": true,\n \"possibleValues\": [\"Side\", \"Gentle\", \"Medium\", \"Steep\", \"Extreme\"]\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.slope","project":"Superalgos","id":"f9e484d0-138a-4d19-a876-a6067f5a1619","savedPayload":{"position":{"x":4914.033295924655,"y":17959.474958994284},"targetPosition":{"x":4933.56841368847,"y":18139.424641632882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"478a7021-7233-4eb4-958d-f127c6a4891c","savedPayload":{"position":{"x":4933.56841368847,"y":18139.424641632882},"targetPosition":{"x":4927.675553436395,"y":18342.423651693094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Period","config":"{\n \"codeName\": \"period\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.period","project":"Superalgos","id":"35c1cfa6-c691-40b0-b680-bd7c94be19e3","savedPayload":{"position":{"x":5285.095487615155,"y":18150.03364554787},"targetPosition":{"x":5106.40612572504,"y":18246.284735165922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"61f63128-268f-4679-a0ef-e9b53a0a655b","savedPayload":{"position":{"x":5106.40612572504,"y":18246.284735165922},"targetPosition":{"x":4927.675553436395,"y":18342.423651693094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"afe778f1-4343-4102-8eb4-0b9340d7ad5b","savedPayload":{"position":{"x":4927.675553436395,"y":18342.423651693094},"targetPosition":{"x":5617.060229699684,"y":18768.843965977925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"if (record.previous !== undefined) {\n if (record.current.direction === record.previous.direction && record.current.slope === record.previous.slope) {\n variable.period++\n } else {\n variable.period = 1\n }\n}","project":"Superalgos","id":"c450c940-f800-414b-a2c4-bda3481f55c7","savedPayload":{"position":{"x":4468.941584799071,"y":17631.34797116111},"targetPosition":{"x":4868.726756026543,"y":17994.450351736465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a580c9a8-c70a-483e-8dd3-d3b62464f8f4","savedPayload":{"position":{"x":4868.726756026543,"y":17994.450351736465},"targetPosition":{"x":5269.063883864055,"y":18357.239328890257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"variable.period = 1","project":"Superalgos","id":"e0efa286-41a0-45e0-8ce3-dfc27b4dce3e","savedPayload":{"position":{"x":4697.644757189861,"y":17436.21021750168},"targetPosition":{"x":4989.757772223613,"y":17890.41766221909},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2decc091-6c76-458b-be8e-39e3e72cecd6","savedPayload":{"position":{"x":4989.757772223613,"y":17890.41766221909},"targetPosition":{"x":5269.063883864055,"y":18357.239328890257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f16f2ab8-7ba2-4acf-bf85-8ed89bd1e5af","savedPayload":{"position":{"x":5269.063883864055,"y":18357.239328890257},"targetPosition":{"x":5617.060229699684,"y":18768.843965977925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"79ce9c05-8a4c-4b58-850f-288037acc702","savedPayload":{"position":{"x":6734.2993392414355,"y":18736.572484765184},"targetPosition":{"x":6977.880740956192,"y":18561.449383094747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Bollinger Sub Channels","id":"88bdc751-5a1d-499d-a4ba-888dbcf6dc7a"}}}],"id":"bd0f325d-6f98-468b-8b7b-99a42a175d80","savedPayload":{"position":{"x":6977.880740956191,"y":18563.449383094747},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Indicator Bot","name":"Candle Channels","config":"{\n\"codeName\": \"Candle-Channels\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Candles Channels","project":"Superalgos","id":"98bb0dce-e233-4f70-a4ab-9051ee23abd5","savedPayload":{"position":{"x":7420.353770193251,"y":21191.775041429413},"targetPosition":{"x":6806.113535345859,"y":20533.96888921235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"df7d1cd7-95b0-499c-b51a-772c3fb8a2b0"}}},{"type":"Output Dataset","name":"Multi-Period-Market Candles Channels Objects","project":"Superalgos","id":"e5d3a974-b3e5-4f0c-acaf-9cf9915850ee","savedPayload":{"position":{"x":7229.171281551433,"y":21328.3379113774},"targetPosition":{"x":6806.113535345859,"y":20533.96888921235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"566b9df4-da86-4b4f-a3f4-ef8a76443714"}}}],"outputDatasetFolders":[],"id":"81b11bce-fa94-4295-b3a9-a24b6c0c45d3","savedPayload":{"position":{"x":7370.467854275226,"y":18859.942529941443},"targetPosition":{"x":7082.089345493732,"y":18777.251323196342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"8c5feff4-7b13-404f-9fb7-844f3945715c","savedPayload":{"position":{"x":7130.847774893849,"y":21364.40803927999},"targetPosition":{"x":6656.741607984321,"y":20599.40912261517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Candle Channels Multi-Period-Market","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"34699cb0-bf71-4fbc-8671-9570617b1cd0","savedPayload":{"position":{"x":6972.494072843456,"y":21442.202324376656},"targetPosition":{"x":6656.741607984321,"y":20599.40912261517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"902925d3-1d23-4894-9459-0be8df3965df"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"ab069a67-5e2f-4a3b-91e1-967d56ba62b6","savedPayload":{"position":{"x":6802.006180644545,"y":21487.6085393735},"targetPosition":{"x":6656.741607984321,"y":20599.40912261517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"4775daf3-4ac9-4971-a4fb-4cf66d4fbb45","savedPayload":{"position":{"x":7339.239535704364,"y":18931.76274566936},"targetPosition":{"x":7082.089345493732,"y":18777.251323196342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"902925d3-1d23-4894-9459-0be8df3965df","savedPayload":{"position":{"x":7290.486856631433,"y":18993.053263297938},"targetPosition":{"x":7082.089345493732,"y":18777.251323196342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"e9a9ec41-7040-4301-911f-8911d731c7cb","savedPayload":{"position":{"x":7227.532231567635,"y":19039.63723533816},"targetPosition":{"x":7082.089345493732,"y":18777.251323196342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"0ee514b6-0528-4ff9-a901-a519856fbee4","savedPayload":{"position":{"x":7154.665914173631,"y":19068.34004107914},"targetPosition":{"x":7082.089345493732,"y":18777.251323196342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb","savedPayload":{"position":{"x":7082.089345493732,"y":18777.251323196342},"targetPosition":{"x":6873.691834356032,"y":18561.449383094747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Candles Channels","project":"Superalgos","id":"2950c6a6-f1fc-4641-8376-96debaf2e213","savedPayload":{"position":{"x":5900.895028554591,"y":21429.77865750068},"targetPosition":{"x":5790.61299507464,"y":20536.560949944716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"07734f1c-e2e7-4a35-8567-6a996c68883e"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Candles Channels Objects","project":"Superalgos","id":"f1f62696-e584-4b36-b69f-1a557409297a","savedPayload":{"position":{"x":5665.955505250306,"y":21427.886092768982},"targetPosition":{"x":5790.61299507464,"y":20536.560949944716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8a7d224b-7571-4e1a-8b8f-8a35aa25dc63"}}}],"outputDatasetFolders":[],"id":"f81d660c-db1f-44d2-81e5-5fe6c591bab2","savedPayload":{"position":{"x":5790.61299507464,"y":20536.560949944716},"targetPosition":{"x":5797.86274586989,"y":19636.590149799842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"7bdf41eb-4243-4417-8df8-6dbf82cf637f","savedPayload":{"position":{"x":5527.124685628241,"y":21403.491441264883},"targetPosition":{"x":5557.930441228949,"y":20504.018814987758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"43a935c4-46a1-478e-81d0-65c18f1128dc","savedPayload":{"position":{"x":5386.795436488912,"y":21387.598358748604},"targetPosition":{"x":5557.930441228949,"y":20504.018814987758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Candle Channels Multi-Period-Daily","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"71232c95-96bd-4c90-8571-be97495baab0","savedPayload":{"position":{"x":5250.680099130805,"y":21349.948615432553},"targetPosition":{"x":5557.930441228949,"y":20504.018814987758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"4a89ffcd-ef6d-4dd2-bbf6-6e2f1dba24cd"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"97ac78ed-bc8d-49f0-8111-527d7802b559","savedPayload":{"position":{"x":5122.130284900573,"y":21291.469272949504},"targetPosition":{"x":5557.930441228949,"y":20504.018814987758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"41a2dd93-007f-4835-ac77-0bedbe22b128","savedPayload":{"position":{"x":5557.930441228949,"y":20504.018814987758},"targetPosition":{"x":5797.86274586989,"y":19636.590149799842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"4a89ffcd-ef6d-4dd2-bbf6-6e2f1dba24cd","savedPayload":{"position":{"x":5341.59887743766,"y":20412.362849991885},"targetPosition":{"x":5797.86274586989,"y":19636.590149799842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"31740e1a-525b-4ff3-bd71-7fb9c95a0a72","savedPayload":{"position":{"x":5156.360942268333,"y":20267.839257502932},"targetPosition":{"x":5797.86274586989,"y":19636.590149799842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"e29dc92e-bbd9-45ae-ac52-1ee785e44928","savedPayload":{"position":{"x":5014.840294882593,"y":20080.297081512486},"targetPosition":{"x":5797.86274586989,"y":19636.590149799842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f","savedPayload":{"position":{"x":6915.443764644053,"y":18858.529803717218},"targetPosition":{"x":6873.691834356032,"y":18561.449383094747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Candles Channels","config":"{\n \"codeName\": \"Candles-Channels\",\n \"singularVariableName\": \"candlesChannel\",\n \"pluralVariableName\": \"candlesChannels\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"df7d1cd7-95b0-499c-b51a-772c3fb8a2b0","savedPayload":{"position":{"x":4857.00954808449,"y":19915.091831573234},"targetPosition":{"x":5429.013638517197,"y":19220.245574816927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"07734f1c-e2e7-4a35-8567-6a996c68883e","savedPayload":{"position":{"x":4670.286119148172,"y":19704.32465033262},"targetPosition":{"x":5429.013638517197,"y":19220.245574816927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"bb911132-56d2-4368-ac9d-b013c2bf25ae","savedPayload":{"position":{"x":3875.2748331976563,"y":20187.333651026765},"targetPosition":{"x":3998.7581765994037,"y":19873.234759111612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed49d0b4-d13f-42ea-ac30-18fcf718b664","savedPayload":{"position":{"x":3998.7581765994037,"y":19873.234759111612},"targetPosition":{"x":4122.241520001151,"y":19559.13586719646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"58e1bae8-a892-4d59-bd35-d87458cf8bae","savedPayload":{"position":{"x":3553.1958804743826,"y":19922.195173833225},"targetPosition":{"x":3837.718700237767,"y":19740.66552051484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2553b276-b77a-4044-9a25-8fde8158c3fa","savedPayload":{"position":{"x":3837.718700237767,"y":19740.66552051484},"targetPosition":{"x":4122.241520001151,"y":19559.13586719646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction","config":"{\n \"codeName\": \"direction\",\n \"isString\": true,\n \"possibleValues\": [\"Up\", \"Down\", \"Side\"]\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.direction","project":"Superalgos","id":"7273b074-f439-4ff1-82c7-86bf0eb38fb3","savedPayload":{"position":{"x":3448.47302090041,"y":19518.38038143642},"targetPosition":{"x":3785.3572704507806,"y":19538.75812431644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a400d6da-4e0c-417f-bc02-b33b7f64c94f","savedPayload":{"position":{"x":3785.3572704507806,"y":19538.75812431644},"targetPosition":{"x":4122.241520001151,"y":19559.13586719646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Period","config":"{\n \"codeName\": \"period\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.period","project":"Superalgos","id":"41659e98-8488-4d01-9ed4-04520fe9a923","savedPayload":{"position":{"x":3601.1068274339214,"y":19130.132799371928},"targetPosition":{"x":3861.674173717536,"y":19344.634333284193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"01cf59b3-450b-47cc-a235-d334957ed2bd","savedPayload":{"position":{"x":3861.674173717536,"y":19344.634333284193},"targetPosition":{"x":4122.241520001151,"y":19559.13586719646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e186e788-474c-47be-9685-6060c60963d9","savedPayload":{"position":{"x":4122.241520001151,"y":19559.13586719646},"targetPosition":{"x":5429.013638517197,"y":19220.245574816927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"if (record.previous !== undefined) {\n if (record.current.direction === record.previous.direction) {\n variable.period++\n } else {\n variable.period = 1\n }\n}","project":"Superalgos","id":"ed8b3159-b7bb-44a0-850e-d55a4c0c76a2","savedPayload":{"position":{"x":3857.331665158903,"y":19213.44254683272},"targetPosition":{"x":4081.772990011339,"y":19197.596673600772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ffc37ffd-9763-42c5-8a92-53962e11190e","savedPayload":{"position":{"x":4081.772990011339,"y":19197.596673600772},"targetPosition":{"x":4530.655639716213,"y":19165.90492713687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"variable.period = 1","project":"Superalgos","id":"0c8b195c-a6a6-4e83-b1e6-43a4aca039a6","savedPayload":{"position":{"x":3867.970981895578,"y":19037.553673581846},"targetPosition":{"x":4088.8658678357897,"y":19080.337424766854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5668a3b7-6ebc-4e90-8431-2b7f832e4434","savedPayload":{"position":{"x":4088.8658678357897,"y":19080.337424766854},"targetPosition":{"x":4530.655639716213,"y":19165.90492713687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"694d2276-7466-4884-a5b3-99a52e16ea91","savedPayload":{"position":{"x":4530.655639716213,"y":19165.90492713687},"targetPosition":{"x":5429.013638517197,"y":19220.245574816927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8c81d378-0947-4e9d-be25-58e69120152e","savedPayload":{"position":{"x":6732.850365520266,"y":18826.333660952423},"targetPosition":{"x":6873.691834356032,"y":18561.449383094747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Candles Channels","id":"864f26cb-b191-47c1-801e-57bb2436294e"}}},{"type":"Product Definition","name":"Candles Channels Objects","config":"{\n \"codeName\": \"Candles-Channels-Objects\",\n \"singularVariableName\": \"candlesChannelObjects\",\n \"pluralVariableName\": \"candlesChannelsObjects\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"566b9df4-da86-4b4f-a3f4-ef8a76443714","savedPayload":{"position":{"x":5367.643319782928,"y":18098.858592946926},"targetPosition":{"x":5780.876377092711,"y":18194.00899744306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"8a7d224b-7571-4e1a-8b8f-8a35aa25dc63","savedPayload":{"position":{"x":5417.965101093469,"y":17975.083268139333},"targetPosition":{"x":5780.876377092711,"y":18194.00899744306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"b5fad2c7-a8bc-464d-b459-a925a7d1bc95","savedPayload":{"position":{"x":5219.993186914275,"y":17794.041769567848},"targetPosition":{"x":5366.044840846909,"y":17714.116407106743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"89ecb579-a25e-4db4-8f3c-599d6cf4bbb7","savedPayload":{"position":{"x":5187.870970144762,"y":17723.711135124602},"targetPosition":{"x":5366.044840846909,"y":17714.116407106743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction","config":"{\n \"codeName\": \"direction\",\n \"isString\": true,\n \"possibleValues\": [\"Up\", \"Down\", \"Side\"]\n}","project":"Superalgos","id":"c72882a9-25bc-4be9-b90c-072040321213","savedPayload":{"position":{"x":5201.825985494474,"y":17659.847131511026},"targetPosition":{"x":5366.044840846909,"y":17714.116407106743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Period","config":"{\n \"codeName\": \"period\",\n \"isString\": false\n}","project":"Superalgos","id":"c253b3ab-56f4-4aa8-8dd2-801721fd07a7","savedPayload":{"position":{"x":5227.648905193648,"y":17594.69589436363},"targetPosition":{"x":5366.044840846909,"y":17714.116407106743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"First Min","config":"{ \n\"codeName\": \"firstMin\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"4e21dc37-1099-4ed7-8d63-e32e0764ab01","savedPayload":{"position":{"x":5285.076147890126,"y":17584.658626001958},"targetPosition":{"x":5366.044840846909,"y":17714.116407106743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last Min","config":"{ \n\"codeName\": \"lastMin\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"62d4e90b-f3d5-4e32-9ef2-a3b460e17522","savedPayload":{"position":{"x":5352.767106185802,"y":17505.10024853651},"targetPosition":{"x":5366.044840846909,"y":17714.116407106743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"First Max","config":"{ \n\"codeName\": \"firstMax\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"3d4a753f-2b69-49e3-8a3d-4c99ed137495","savedPayload":{"position":{"x":5380.639319085956,"y":17598.165220545357},"targetPosition":{"x":5366.044840846909,"y":17714.116407106743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last Max","config":"{ \n\"codeName\": \"lastMax\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"55381285-2fa6-4ffc-a174-38e3e126708b","savedPayload":{"position":{"x":5478.2363224484325,"y":17562.008435175405},"targetPosition":{"x":5366.044840846909,"y":17714.116407106743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a4c69128-a306-4eac-83a7-20002c4a6b4b","savedPayload":{"position":{"x":5366.044840846909,"y":17714.116407106743},"targetPosition":{"x":5780.876377092711,"y":18194.00899744306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"\n\nif (record.next !== undefined) {\n\n if (\n record.current.direction === record.next.direction) {\n\n if (variable.channel === undefined) {\n\n variable.channel = {\n begin: undefined,\n end: undefined,\n direction: undefined,\n period: 0,\n firstMin: 0,\n lastMin: 0,\n firstMax: 0,\n lastMax: 0\n }\n\n variable.channel.direction = record.current.direction\n variable.channel.period = 2\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.next.end\n\n variable.channel.firstMin = record.current.min\n variable.channel.lastMin = record.next.min\n\n variable.channel.firstMax = record.current.max\n variable.channel.lastMax = record.next.max\n\n } else {\n\n variable.channel.period++\n variable.channel.end = record.next.end\n variable.channel.lastMin = record.next.min\n variable.channel.lastMax = record.next.max\n\n }\n } else {\n\n if (variable.channel !== undefined) {\n results.push(variable.channel)\n variable.channel = undefined\n } else {\n /* The variable.channel has only one period */\n\n variable.channel = {}\n\n variable.channel.direction = record.current.direction\n variable.channel.period = 1\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.current.end\n\n variable.channel.firstMin = record.current.min\n variable.channel.lastMin = record.current.min\n\n variable.channel.firstMax = record.current.max\n variable.channel.lastMax = record.current.max\n\n results.push(variable.channel)\n variable.channel = undefined\n }\n }\n} else {\n if (variable.channel !== undefined) {\n variable.channel.period++\n variable.channel.end = record.current.end\n variable.channel.lastMin = record.current.min\n variable.channel.lastMax = record.current.max\n results.push(variable.channel)\n variable.channel = undefined\n } else {\n /* The variable.channel has only one period */\n\n variable.channel = {}\n\n variable.channel.direction = record.current.direction\n variable.channel.period = 1\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.current.end\n\n variable.channel.firstMin = record.current.min\n variable.channel.lastMin = record.current.min\n\n variable.channel.firstMax = record.current.max\n variable.channel.lastMax = record.current.max\n\n results.push(variable.channel)\n variable.channel = undefined\n }\n}","project":"Superalgos","id":"3d8fcb90-fd49-4a4a-b905-63c2db9a6148","savedPayload":{"position":{"x":5587.912847507643,"y":17728.489890425357},"targetPosition":{"x":5625.390918599947,"y":17820.474961850086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"58776129-39ee-4063-8f51-ca59c75bcae6","savedPayload":{"position":{"x":5625.390918599947,"y":17820.474961850086},"targetPosition":{"x":5665.541989568959,"y":17918.51020983425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d2d46944-c474-417b-a12c-d9b011ffcaa5","savedPayload":{"position":{"x":5665.541989568959,"y":17918.51020983425},"targetPosition":{"x":5780.876377092711,"y":18194.00899744306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047","savedPayload":{"position":{"x":6604.053620466282,"y":18692.96072713147},"targetPosition":{"x":6873.691834356032,"y":18561.449383094747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Candles Channels Objects","id":"7aa1e889-ae4f-4945-b0e5-9ad87ded05a5"}}}],"id":"c4adde4f-8ed9-4a02-8994-90f0967c8be1","savedPayload":{"position":{"x":6873.691834356033,"y":18563.449383094747},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Resistances and Supports","config":"{ \n\"codeName\": \"Resistances-And-Supports\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates SMAs for Time Frames of 01-hs and above.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Resistances","project":"Superalgos","id":"5ccce358-1e38-4b97-9bd4-2634d38f4bc4","savedPayload":{"position":{"x":6660.556535097687,"y":19360.285486284567},"targetPosition":{"x":6337.624143351328,"y":19125.24644369101},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"44e905fc-719f-453b-a567-fd5e3bfcae91"}}},{"type":"Output Dataset","name":"Multi-Period-Market Supports","project":"Superalgos","id":"0f3718f9-e4ed-4217-b59f-77ace0cf9aef","savedPayload":{"position":{"x":6296.324688326677,"y":19522.699414563383},"targetPosition":{"x":6337.624143351328,"y":19125.24644369101},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4a1bd251-76ed-4530-8723-08e41d50f12d"}}}],"outputDatasetFolders":[],"id":"cf7a746c-31f5-4a6e-9ea1-96d1163905cc","savedPayload":{"position":{"x":7196.163849189332,"y":18831.236854599494},"targetPosition":{"x":6897.807280578851,"y":18799.878315619197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"a27c7e9d-a3ea-4f6e-b682-9474ccfe5366","savedPayload":{"position":{"x":6183.091866521991,"y":19507.1400510753},"targetPosition":{"x":6081.9019985160085,"y":19165.502055372897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Resistances and Supports Multi-Period-Market","config":"{ \n\"mainUtility\": \"Self Reference|Market Starting Point|Market Ending Point\"\n}","project":"Superalgos","id":"d0c6a69b-9ee7-4b2e-b58f-050878def5fd","savedPayload":{"position":{"x":6044.515718703693,"y":19519.964254297807},"targetPosition":{"x":6081.9019985160085,"y":19165.502055372897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"61f870e5-33d1-401e-8ca6-f4da59d955bc"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"899c04ed-0144-4193-a7f0-658061c4b719","savedPayload":{"position":{"x":5911.547761216436,"y":19478.473706089007},"targetPosition":{"x":6081.9019985160085,"y":19165.502055372897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"46684253-b8e4-447d-b8d0-6b13ed7ab29b","savedPayload":{"position":{"x":7140.512378891333,"y":18976.21389130694},"targetPosition":{"x":6897.807280578851,"y":18799.878315619197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"61f870e5-33d1-401e-8ca6-f4da59d955bc","savedPayload":{"position":{"x":7019.828273501589,"y":19073.941952911977},"targetPosition":{"x":6897.807280578851,"y":18799.878315619197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"02633aff-3554-4a49-9fd7-a348c9b3671d","savedPayload":{"position":{"x":6866.448741598553,"y":19098.234884229678},"targetPosition":{"x":6897.807280578851,"y":18799.878315619197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"e69d76de-05e3-428a-b823-bfb0e191c659","savedPayload":{"position":{"x":6721.471704891108,"y":19042.58341393168},"targetPosition":{"x":6897.807280578851,"y":18799.878315619197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5d9b2729-43fb-4e7e-aa4f-b8477c424e51","savedPayload":{"position":{"x":6897.807280578851,"y":18799.878315619197},"targetPosition":{"x":6775.786287656112,"y":18525.814678326416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Describe what the process does.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Resistances","project":"Superalgos","id":"e990eaed-a1b4-4668-9778-b0310f249235","savedPayload":{"position":{"x":6310.015782099836,"y":19378.022626830036},"targetPosition":{"x":6075.4636458850255,"y":19054.777604150622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f4530d48-3239-4ab0-8c4d-d611cd55fde3"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Supports","project":"Superalgos","id":"a4208abc-dbfe-4568-8697-4fdbc1bef5c9","savedPayload":{"position":{"x":5915.662638867736,"y":19379.91954841766},"targetPosition":{"x":6075.4636458850255,"y":19054.777604150622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"deaaf4ec-9352-40b6-af9a-8541a73a5e13"}}}],"outputDatasetFolders":[],"id":"86d9d925-de8e-4e76-b08c-2b6fb2303d37","savedPayload":{"position":{"x":5848.218187708517,"y":18907.70031675159},"targetPosition":{"x":5952.3525616383085,"y":18418.292933119745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Resistances and Supports Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"c8e28e76-f11d-493e-8961-6c26a1eed57d","savedPayload":{"position":{"x":6069.706163202947,"y":19447.4078224997},"targetPosition":{"x":5820.05363290989,"y":19014.178955491738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"3842d7ea-292c-438c-af35-f5e6a6c68105"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"56bc0c89-e012-47b1-9e33-3ed4fdc3aa52","savedPayload":{"position":{"x":5782.887891751678,"y":19368.41258602553},"targetPosition":{"x":5820.05363290989,"y":19014.178955491738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"723d9197-6349-4499-9dd4-f6443cba19be","savedPayload":{"position":{"x":5581.627591471792,"y":19279.0184059879},"targetPosition":{"x":5820.05363290989,"y":19014.178955491738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"1e51570a-18ba-4d61-8fc2-4019acc2ffeb","savedPayload":{"position":{"x":5471.575816571021,"y":19088.223128705093},"targetPosition":{"x":5820.05363290989,"y":19014.178955491738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"bf0382d1-1529-4cb0-8c9c-39659093d9e8","savedPayload":{"position":{"x":5617.5565114800775,"y":18789.872501197107},"targetPosition":{"x":5952.3525616383085,"y":18418.292933119745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"3842d7ea-292c-438c-af35-f5e6a6c68105","savedPayload":{"position":{"x":5476.684441720608,"y":18572.818622819555},"targetPosition":{"x":5952.3525616383085,"y":18418.292933119745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"ab23ac12-59f4-42a2-86f3-5c32619f4c6e","savedPayload":{"position":{"x":5463.156970808297,"y":18314.63968762618},"targetPosition":{"x":5952.3525616383085,"y":18418.292933119745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"7e2fdde9-8b64-44a3-85f1-10c3935bd3e3","savedPayload":{"position":{"x":5580.792006121392,"y":18084.073161425848},"targetPosition":{"x":5952.3525616383085,"y":18418.292933119745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"be19d91b-9337-4f84-96b3-f4e54ea12df5","savedPayload":{"position":{"x":6713.412780410785,"y":18819.258958546558},"targetPosition":{"x":6775.786287656112,"y":18525.814678326416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Resistances","config":"{ \n\"codeName\": \"Resistances\",\n \"singularVariableName\": \"resistance\",\n \"pluralVariableName\": \"resistances\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"\n{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"44e905fc-719f-453b-a567-fd5e3bfcae91","savedPayload":{"position":{"x":6464.890020426505,"y":19050.690877645764},"targetPosition":{"x":6441.371116191283,"y":18826.923451187904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }\n","project":"Superalgos","id":"f4530d48-3239-4ab0-8c4d-d611cd55fde3","savedPayload":{"position":{"x":6328.871116191283,"y":19021.779167039404},"targetPosition":{"x":6441.371116191283,"y":18826.923451187904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"8fc59f80-7313-43a0-be1f-3601c653253f","savedPayload":{"position":{"x":6061.706562786712,"y":20468.396333499273},"targetPosition":{"x":5914.197776628789,"y":20043.25969898489},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4db89c62-71d4-4add-8a8a-3fd37b230993","savedPayload":{"position":{"x":5914.197776628789,"y":20043.25969898489},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"8cd95902-f17d-49c6-947f-b574dab41637","savedPayload":{"position":{"x":5951.950040554879,"y":20501.33051164393},"targetPosition":{"x":5841.026761807567,"y":20065.215817747994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ca4c0849-7e58-4dee-958a-7b9567c9bc22","savedPayload":{"position":{"x":5841.026761807567,"y":20065.215817747994},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate Resistance","config":"{\n \"codeName\": \"rateResistance\"\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.resistance.rate","project":"Superalgos","id":"3ead495c-b3d7-4232-bd44-a0201833230e","savedPayload":{"position":{"x":5839.79590402752,"y":20524.838040699397},"targetPosition":{"x":5766.257337455994,"y":20080.887503784972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a198ddb9-bfdc-4ba5-8772-6ddb98a1151d","savedPayload":{"position":{"x":5766.257337455994,"y":20080.887503784972},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Period Resistance","config":"{\n \"codeName\": \"periodResistance\"\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.resistance.period","project":"Superalgos","id":"5ad98412-3b69-4eba-b1ea-6aa86e0db304","savedPayload":{"position":{"x":5726.05222632832,"y":20538.749548380143},"targetPosition":{"x":5690.428218989862,"y":20090.161842238802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"561ab821-c7be-4df8-abb4-3d1a5421b27b","savedPayload":{"position":{"x":5690.428218989862,"y":20090.161842238802},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Type Resistance","config":"{\n \"codeName\": \"typeResistance\",\n \"isString\": true,\n \"possibleValues\": [\"Resistance\", \"Support\"]\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.resistance.type","project":"Superalgos","id":"2d379184-f16b-4c87-8ed4-a0c57d1e2837","savedPayload":{"position":{"x":5611.538533261533,"y":20542.964801954557},"targetPosition":{"x":5614.0857569453365,"y":20092.972011288413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7cdcd891-d5e4-4237-9189-8ad7691d41ac","savedPayload":{"position":{"x":5614.0857569453365,"y":20092.972011288413},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 1 Rate","config":"{ \n\"codeName\": \"resistance1Rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance1Rate","project":"Superalgos","id":"b3da6d1a-38f0-4b52-88eb-926d32db8bf3","savedPayload":{"position":{"x":5497.079898609783,"y":20537.45343042404},"targetPosition":{"x":5537.7800005108365,"y":20089.2977636014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bea03586-2505-4e03-9a2b-3a9477955e66","savedPayload":{"position":{"x":5537.7800005108365,"y":20089.2977636014},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 1 Period","config":"{ \n\"codeName\": \"resistance1Period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance1Period","project":"Superalgos","id":"292c00a5-59ff-4075-a386-6b5222b26019","savedPayload":{"position":{"x":5383.500999458542,"y":20522.25514334676},"targetPosition":{"x":5462.06073441001,"y":20079.16557221655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b8872bec-843c-41cb-a42a-9da8248dc514","savedPayload":{"position":{"x":5462.06073441001,"y":20079.16557221655},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 2 Rate","config":"{ \n\"codeName\": \"resistance2Rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance2Rate","project":"Superalgos","id":"f9904c9a-9244-4d2d-a5b6-22600493c059","savedPayload":{"position":{"x":5271.620174378855,"y":20497.47944472938},"targetPosition":{"x":5387.473517690218,"y":20062.64843980496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"33f9cf94-552f-418d-b93a-8d073def39e7","savedPayload":{"position":{"x":5387.473517690218,"y":20062.64843980496},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 2 Period","config":"{ \n\"codeName\": \"resistance2Period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance2Period","project":"Superalgos","id":"4b08a91c-42f9-4354-b197-a6a84d08d0cb","savedPayload":{"position":{"x":5162.243527279159,"y":20463.304844048165},"targetPosition":{"x":5314.555752957087,"y":20039.86537268415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e67af800-29c1-49fc-9162-13b8a750bfbf","savedPayload":{"position":{"x":5314.555752957087,"y":20039.86537268415},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 3 Rate","config":"{ \n\"codeName\": \"resistance3Rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance3Rate","project":"Superalgos","id":"69de03a4-e0a2-4136-8353-20c7a61cf4e5","savedPayload":{"position":{"x":5056.1591194081775,"y":20419.977570084146},"targetPosition":{"x":5243.832814376434,"y":20010.980523374805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"688458ca-7c03-4ba9-a09f-97c556e5bbae","savedPayload":{"position":{"x":5243.832814376434,"y":20010.980523374805},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 3 Period","config":"{ \n\"codeName\": \"resistance3Period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance3Period","project":"Superalgos","id":"12621061-eba5-477c-add4-85a431de92a4","savedPayload":{"position":{"x":4954.13129135553,"y":20367.80979683906},"targetPosition":{"x":5175.814262341333,"y":19976.20200787808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3be3022d-d812-4570-8d01-849a104da943","savedPayload":{"position":{"x":5175.814262341333,"y":19976.20200787808},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 4 Rate","config":"{ \n\"codeName\": \"resistance4Rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance4Rate","project":"Superalgos","id":"acd8a299-32f4-4646-9acf-f679612e7ff7","savedPayload":{"position":{"x":4856.895155960301,"y":20307.17739431457},"targetPosition":{"x":5110.990172077847,"y":19935.78040619509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"97f41f84-75e6-4b28-a948-6971fa6a3c95","savedPayload":{"position":{"x":5110.990172077847,"y":19935.78040619509},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 4 Period","config":"{ \n\"codeName\": \"resistance4Period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance4Period","project":"Superalgos","id":"0dcb8ce8-61a4-4acc-a78b-8323d2d265af","savedPayload":{"position":{"x":4765.151301806178,"y":20238.517220360256},"targetPosition":{"x":5049.827602641766,"y":19890.00695689221},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b23829c6-2cac-4cbe-bf10-0dff088077ba","savedPayload":{"position":{"x":5049.827602641766,"y":19890.00695689221},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 5 Rate","config":"{ \n\"codeName\": \"resistance5Rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance5Rate","project":"Superalgos","id":"8ca891d5-65e6-4b57-840f-355241255c69","savedPayload":{"position":{"x":4679.560745464638,"y":20162.32397310279},"targetPosition":{"x":4992.767231747406,"y":19839.21145872057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e7a2bbe6-f265-4069-8d11-377fba99a6c3","savedPayload":{"position":{"x":4992.767231747406,"y":19839.21145872057},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 5 Period","config":"{ \n\"codeName\": \"resistance5Period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance5Period","project":"Superalgos","id":"a862b407-8962-4b48-8add-169cdd893269","savedPayload":{"position":{"x":4600.740168855431,"y":20079.14662663464},"targetPosition":{"x":4940.220180674602,"y":19783.759894408468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"30bb7e73-32f0-4cbb-bc41-eb3bdc086718","savedPayload":{"position":{"x":4940.220180674602,"y":19783.759894408468},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 1 Bounce 1","config":"{ \n\"codeName\": \"resistance1Bounce1\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance1Bounce1","project":"Superalgos","id":"2238f0b3-c9e0-45b2-ab8e-66b4ce2ff98e","savedPayload":{"position":{"x":4529.257476039198,"y":19989.584475643103},"targetPosition":{"x":4892.565052130445,"y":19724.051793747443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c111cf47-76d4-44d5-9c39-60f72eca4226","savedPayload":{"position":{"x":4892.565052130445,"y":19724.051793747443},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 1 Bounce 2","config":"{ \n\"codeName\": \"resistance1Bounce2\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance1Bounce2","project":"Superalgos","id":"5de72a19-6f28-4e45-ab8c-532f77ddffbb","savedPayload":{"position":{"x":4465.6277014556945,"y":19894.282817478386},"targetPosition":{"x":4850.145202408112,"y":19660.517354970965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9018b3af-c080-48b4-82c6-8489268c0690","savedPayload":{"position":{"x":4850.145202408112,"y":19660.517354970965},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 1 Bounce 3","config":"{ \n\"codeName\": \"resistance1Bounce3\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance1Bounce3","project":"Superalgos","id":"ce754586-45d8-44d3-b6df-4abd1303671c","savedPayload":{"position":{"x":4410.309299088873,"y":19793.92830277141},"targetPosition":{"x":4813.266267496896,"y":19593.614345166312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0b7458a1-dd88-4b0a-91b7-b92df6263fb4","savedPayload":{"position":{"x":4813.266267496896,"y":19593.614345166312},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 1 Bounce 5","config":"{ \n\"codeName\": \"resistance1Bounce5\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance1Bounce5","project":"Superalgos","id":"4520275c-befa-4070-8b21-9b741381ff87","savedPayload":{"position":{"x":4363.700839295405,"y":19689.243988100243},"targetPosition":{"x":4782.1939609679175,"y":19523.824802052204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f0479991-f060-44bf-8ac5-5b895362f3ef","savedPayload":{"position":{"x":4782.1939609679175,"y":19523.824802052204},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 1 Bounce 10","config":"{ \n\"codeName\": \"resistance1Bounce10\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance1Bounce10","project":"Superalgos","id":"2185c09e-8439-4776-9cb8-503d08e2eaed","savedPayload":{"position":{"x":4326.1381370961335,"y":19580.984126350933},"targetPosition":{"x":4757.152159501737,"y":19451.651560885995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"33826a2e-6432-4a0c-accb-d3a930a1dd73","savedPayload":{"position":{"x":4757.152159501737,"y":19451.651560885995},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 1 Bounce All","config":"{ \n\"codeName\": \"resistance1BounceAll\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance1BounceAll","project":"Superalgos","id":"81fabb3a-9c41-41e9-b09e-f168ca8c7032","savedPayload":{"position":{"x":4297.891832621146,"y":19469.92873230815},"targetPosition":{"x":4738.321289851745,"y":19377.614631524142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"99647cd5-b683-4014-a213-d24fa859d561","savedPayload":{"position":{"x":4738.321289851745,"y":19377.614631524142},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 2 Bounce 1","config":"{ \n\"codeName\": \"resistance2Bounce1\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance2Bounce1","project":"Superalgos","id":"c810907a-f21c-4163-9e8e-8a884e8aa0f7","savedPayload":{"position":{"x":4279.165441141455,"y":19356.877962630806},"targetPosition":{"x":4725.837028865284,"y":19302.247451739244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d93c9b19-9366-444c-b1e2-40c0d7f5685d","savedPayload":{"position":{"x":4725.837028865284,"y":19302.247451739244},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 2 Bounce 2","config":"{ \n\"codeName\": \"resistance2Bounce2\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance2Bounce2","project":"Superalgos","id":"348406a5-5031-4393-becb-19c4f325b698","savedPayload":{"position":{"x":4270.093886736777,"y":19242.646350704978},"targetPosition":{"x":4719.789325928832,"y":19226.093043788693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0458195f-bd6e-474e-8387-0e15f4730aef","savedPayload":{"position":{"x":4719.789325928832,"y":19226.093043788693},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 2 Bounce 3","config":"{ \n\"codeName\": \"resistance2Bounce3\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance2Bounce3","project":"Superalgos","id":"eebbde09-23ce-4403-b792-17c9fd5da771","savedPayload":{"position":{"x":4270.742530164478,"y":19128.05693791219},"targetPosition":{"x":4720.221754880633,"y":19149.700101926835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9b56c44a-4141-4a6c-8b97-345cd1fc5ff3","savedPayload":{"position":{"x":4720.221754880633,"y":19149.700101926835},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 2 Bounce 5","config":"{ \n\"codeName\": \"resistance2Bounce5\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance2Bounce5","project":"Superalgos","id":"6b64ca08-f049-4a3b-97a3-91eb11d07f70","savedPayload":{"position":{"x":4281.1066979337975,"y":19013.935343597444},"targetPosition":{"x":4727.131200060179,"y":19073.619039050336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fb3c325e-8229-4879-9a16-d0b00b12b527","savedPayload":{"position":{"x":4727.131200060179,"y":19073.619039050336},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 2 Bounce 10","config":"{ \n\"codeName\": \"resistance2Bounce10\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance2Bounce10","project":"Superalgos","id":"eae97d09-1001-4c26-9337-ba15de4b6b16","savedPayload":{"position":{"x":4301.111715978463,"y":18901.103816462855},"targetPosition":{"x":4740.467878756623,"y":18998.398020960612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bdeb35a8-ff0d-4441-8507-595bf5152fdb","savedPayload":{"position":{"x":4740.467878756623,"y":18998.398020960612},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 2 Bounce All","config":"{ \n\"codeName\": \"resistance2BounceAll\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance2BounceAll","project":"Superalgos","id":"8f31479b-9788-4b26-9e29-17b021e080bc","savedPayload":{"position":{"x":4330.613447685046,"y":18790.37531024696},"targetPosition":{"x":4760.135699894345,"y":18924.579016816682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f762cc91-2102-4f76-81d0-47ebc238f7b2","savedPayload":{"position":{"x":4760.135699894345,"y":18924.579016816682},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 3 Bounce 1","config":"{ \n\"codeName\": \"resistance3Bounce1\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance3Bounce1","project":"Superalgos","id":"dc591f82-09c1-4a97-9571-db4dea91848a","savedPayload":{"position":{"x":4369.399332400573,"y":18682.54762637438},"targetPosition":{"x":4785.992956371363,"y":18852.693894234962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"108588b4-799b-4a53-880c-09e6241a0d83","savedPayload":{"position":{"x":4785.992956371363,"y":18852.693894234962},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 3 Bounce 2","config":"{ \n\"codeName\": \"resistance3Bounce2\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance3Bounce2","project":"Superalgos","id":"99fdd4d2-2681-45c5-a10c-b5a26d9146f5","savedPayload":{"position":{"x":4417.189916936892,"y":18578.397665778288},"targetPosition":{"x":4817.853346062242,"y":18783.2605871709},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cc680268-6a77-4bf3-8fb6-d52fe13c501c","savedPayload":{"position":{"x":4817.853346062242,"y":18783.2605871709},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 3 Bounce 3","config":"{ \n\"codeName\": \"resistance3Bounce3\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance3Bounce3","project":"Superalgos","id":"d9cfaabe-04b9-4b3a-8143-f5ef50ac58ed","savedPayload":{"position":{"x":4473.640869037299,"y":18478.675831311364},"targetPosition":{"x":4855.487314129179,"y":18716.77936419295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"31034bc5-b30a-4073-ad24-968a1f879551","savedPayload":{"position":{"x":4855.487314129179,"y":18716.77936419295},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 3 Bounce 5","config":"{ \n\"codeName\": \"resistance3Bounce5\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance3Bounce5","project":"Superalgos","id":"db83ae1b-24e1-460f-bea8-f7273ca83e26","savedPayload":{"position":{"x":4538.3454582983395,"y":18384.100621076064},"targetPosition":{"x":4898.623706969873,"y":18653.729224036084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ebb1a278-c6a4-4834-8fae-486ccd553308","savedPayload":{"position":{"x":4898.623706969873,"y":18653.729224036084},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 3 Bounce 10","config":"{ \n\"codeName\": \"resistance3Bounce10\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance3Bounce10","project":"Superalgos","id":"570566fa-85ca-4603-aad1-36275eb97f39","savedPayload":{"position":{"x":4610.837486671688,"y":18295.353451629322},"targetPosition":{"x":4946.951725885439,"y":18594.56444440492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"80df4b28-5835-43dc-a7a8-6e84f9d57525","savedPayload":{"position":{"x":4946.951725885439,"y":18594.56444440492},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 3 Bounce All","config":"{ \n\"codeName\": \"resistance3BounceAll\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance3BounceAll","project":"Superalgos","id":"e3da0929-67a0-46ca-83b5-526873922999","savedPayload":{"position":{"x":4690.594647431757,"y":18213.073748360635},"targetPosition":{"x":5000.1231663921535,"y":18539.711308892463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"096eb127-6766-4d53-a365-12bf9c50c540","savedPayload":{"position":{"x":5000.1231663921535,"y":18539.711308892463},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support Resistance Zone","config":"{ \n\"codeName\": \"supportResistanceZone\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.supportResistanceZone","project":"Superalgos","id":"9f06c41a-3f69-409f-b0a8-03a32014f95e","savedPayload":{"position":{"x":4777.042288407647,"y":18137.85433841749},"targetPosition":{"x":5057.754927042744,"y":18489.565035597036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7b4e7478-e4c0-4664-a95e-8afddd3b245c","savedPayload":{"position":{"x":5057.754927042744,"y":18489.565035597036},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 4 Bounce 1","config":"{ \n\"codeName\": \"resistance4Bounce1\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance4Bounce1","project":"Superalgos","id":"bbceb956-d606-4ee1-86cb-30d3c9e4d16e","savedPayload":{"position":{"x":4869.557552365179,"y":18070.237179372183},"targetPosition":{"x":5119.431769681101,"y":18444.48692956683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c6eace47-c896-4784-9693-6e9d8b678ae4","savedPayload":{"position":{"x":5119.431769681101,"y":18444.48692956683},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Resistance 5 Bounce 1","config":"{ \n\"codeName\": \"resistance5Bounce1\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.resistance5Bounce1","project":"Superalgos","id":"335496af-0d73-49cf-bc2e-88237434d4a6","savedPayload":{"position":{"x":4967.473864707561,"y":18010.709454405067},"targetPosition":{"x":5184.709311242688,"y":18404.801779588754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8f735c80-9a12-4061-ab17-7a733f941173","savedPayload":{"position":{"x":5184.709311242688,"y":18404.801779588754},"targetPosition":{"x":5619.180204312943,"y":19192.986429956123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dbfa5564-4cfd-4bec-8748-c0dc7b1afd98","savedPayload":{"position":{"x":5619.180204312943,"y":19192.986429956123},"targetPosition":{"x":6441.371116191283,"y":18826.923451187904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"\n\nlet candle = record.current\nlet previousCandle = record.previous\n\nvariable.supportResistanceZone = calculateSupportResistanceZone()\n\ndeleteResistances(candle.max)\nincreasePeriods()\n\nvariable.resistance = {}\n\nvariable.resistance.rate = 0\nvariable.resistance.period = 0\nvariable.resistance.type = ''\n\nif (previousCandle !== undefined) {\n\n let previousPreviousCandle = record.previous.previous\n\n if (previousPreviousCandle !== undefined) {\n\n if (previousCandle.max > previousPreviousCandle.max && previousCandle.max > candle.max) {\n variable.resistance.rate = previousCandle.max\n variable.resistance.period = 0\n variable.resistance.type = 'Resistance'\n increaseResistancesBounces(variable.resistance.rate)\n rememberResistance(variable.resistance.rate)\n }\n }\n}\n\nsetClosestResistances()\n\nfunction deleteResistances(rate) {\n\n let max\n\n for (let i = 0; i < variable.resistances.length; i++) {\n let currenRecord = variable.resistances[i]\n let currentRate = currenRecord[0]\n\n if (rate >= currentRate + currentRate * variable.supportResistanceZone / 2 / 100) { // It must go through the support / resistance zone around the current rate value\n max = i\n }\n }\n if (max !== undefined) {\n variable.resistances.splice(0, max + 1)\n }\n}\n\nfunction increasePeriods() {\n\n for (let i = 0; i < variable.resistances.length; i++) {\n let currenRecord = variable.resistances[i]\n currenRecord[1] = currenRecord[1] + 1\n }\n}\n\nfunction setClosestResistances() {\n let record\n\n record = variable.resistances[0]\n if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }\n variable.resistance1Rate = record[0]\n variable.resistance1Period = record[1]\n variable.resistance1Bounce1 = record[2]\n variable.resistance1Bounce2 = record[3]\n variable.resistance1Bounce3 = record[4]\n variable.resistance1Bounce5 = record[5]\n variable.resistance1Bounce10 = record[6]\n variable.resistance1BounceAll = record[7]\n\n record = variable.resistances[1]\n if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }\n variable.resistance2Rate = record[0]\n variable.resistance2Period = record[1]\n variable.resistance2Bounce1 = record[2]\n variable.resistance2Bounce2 = record[3]\n variable.resistance2Bounce3 = record[4]\n variable.resistance2Bounce5 = record[5]\n variable.resistance2Bounce10 = record[6]\n variable.resistance2BounceAll = record[7]\n\n record = variable.resistances[2]\n if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }\n variable.resistance3Rate = record[0]\n variable.resistance3Period = record[1]\n variable.resistance3Bounce1 = record[2]\n variable.resistance3Bounce2 = record[3]\n variable.resistance3Bounce3 = record[4]\n variable.resistance3Bounce5 = record[5]\n variable.resistance3Bounce10 = record[6]\n variable.resistance3BounceAll = record[7]\n\n record = variable.resistances[3]\n if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }\n variable.resistance4Rate = record[0]\n variable.resistance4Period = record[1]\n variable.resistance4Bounce1 = record[2]\n\n record = variable.resistances[4]\n if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }\n variable.resistance5Rate = record[0]\n variable.resistance5Period = record[1]\n variable.resistance5Bounce1 = record[2]\n\n}\n\nfunction rememberResistance(rate) {\n if (variable.resistances.length === 0) {\n variable.resistances.push([rate, 1, 0, 0, 0, 0, 0, 0])\n return\n }\n for (let i = 0; i < variable.resistances.length; i++) {\n let currenRecord = variable.resistances[i]\n let currentRate = currenRecord[0]\n\n if (rate > currentRate - currentRate * variable.supportResistanceZone / 2 / 100 && rate < currentRate + currentRate * variable.supportResistanceZone / 2 / 100) {\n // We are not going to remember this new level since it is absorved by this existing one.\n return\n }\n\n if (rate < currentRate) {\n variable.resistances.splice(i, 0, [rate, 1, 0, 0, 0, 0, 0, 0])\n return\n }\n\n if (i === variable.resistances.length - 1) {\n variable.resistances.push([rate, 1, 0, 0, 0, 0, 0, 0])\n return\n }\n }\n}\n\nfunction increaseResistancesBounces(rate) {\n\n for (let i = 0; i < variable.resistances.length; i++) {\n let currenRecord = variable.resistances[i]\n let currentRate = currenRecord[0]\n let percentage = 100 - rate * 100 / currentRate\n\n if (percentage <= variable.supportResistanceZone / 2 * 1) {\n currenRecord[2] = currenRecord[2] + 1\n }\n\n if (percentage <= variable.supportResistanceZone / 2 * 2) {\n currenRecord[3] = currenRecord[3] + 1\n }\n\n if (percentage <= variable.supportResistanceZone / 2 * 3) {\n currenRecord[4] = currenRecord[4] + 1\n }\n\n if (percentage <= variable.supportResistanceZone / 2 * 5) {\n currenRecord[5] = currenRecord[5] + 1\n }\n\n if (percentage <= variable.supportResistanceZone / 2 * 10) {\n currenRecord[6] = currenRecord[6] + 1\n }\n\n currenRecord[7] = currenRecord[7] + 1\n }\n}\n\nfunction calculateSupportResistanceZone() {\n /* \n The variable % is a percentage we will use for support and resistance based on the time frame.\n We will fix the % for 1 minute candles and for 24 hs candle and the use the formula to obtain\n y on a line by knowing 2 points of the line as described here: https://en.wikipedia.org/wiki/Line_(geometry)\n */\n\n let x0 = system.ONE_MIN_IN_MILISECONDS\n let y0 = 0.1 // At one min, we will consider the resistance / support zone to be 0.1% resistance \n let x1 = system.ONE_DAY_IN_MILISECONDS\n let y1 = 4 // At one day, we will consider the resistance / support zone to be 4% resistance\n\n let x = system.timeFrame // This is the current time frame being calculated\n let y = (x - x0) * (y1 - y0) / (x1 - x0) + y0\n\n return y\n\n}","project":"Superalgos","id":"1c051e71-b2ff-4b5e-9239-98cca169e8fe","savedPayload":{"position":{"x":5771.904615386622,"y":18803.694501063233},"targetPosition":{"x":5996.596260706399,"y":18791.91891090857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"27aac2c1-d423-475c-86ae-84041aa2f3f0","savedPayload":{"position":{"x":5996.596260706399,"y":18791.91891090857},"targetPosition":{"x":6221.287906026177,"y":18780.14332075391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"variable.resistances = []","project":"Superalgos","id":"fdefa569-f171-4d85-8761-d732ebf64ea1","savedPayload":{"position":{"x":5820.334970141412,"y":18575.847595871113},"targetPosition":{"x":6020.811438083794,"y":18677.99545831251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fc16fb34-f72b-4da5-ade1-7598d51a8fbe","savedPayload":{"position":{"x":6020.811438083794,"y":18677.99545831251},"targetPosition":{"x":6221.287906026177,"y":18780.14332075391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a8703574-5d20-4fe2-a8e9-d01de4a958a9","savedPayload":{"position":{"x":6221.287906026177,"y":18780.14332075391},"targetPosition":{"x":6441.371116191283,"y":18826.923451187904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7a734501-a0fb-4305-803e-7e95d477c513","savedPayload":{"position":{"x":6441.371116191283,"y":18826.923451187904},"targetPosition":{"x":6775.786287656112,"y":18525.814678326416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Resistances","id":"156b4fa7-7f8f-4464-8ddb-6eb6123bc5c3"}}},{"type":"Product Definition","name":"Supports","config":"{ \n\"codeName\": \"Supports\",\n \"singularVariableName\": \"support\",\n \"pluralVariableName\": \"supports\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"\n{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"4a1bd251-76ed-4530-8723-08e41d50f12d","savedPayload":{"position":{"x":5583.42872789604,"y":17657.734365839122},"targetPosition":{"x":5987.8967658300135,"y":17657.73671339679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"deaaf4ec-9352-40b6-af9a-8541a73a5e13","savedPayload":{"position":{"x":5661.032690636228,"y":17419.855735417208},"targetPosition":{"x":5987.8967658300135,"y":17657.73671339679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"7cf0c803-eb36-4ada-930f-d129bdffb558","savedPayload":{"position":{"x":4745.844686359975,"y":16472.13609045261},"targetPosition":{"x":5106.616284596701,"y":16384.432727069347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"500e7345-95eb-4430-8171-32caa2356bdf","savedPayload":{"position":{"x":5106.616284596701,"y":16384.432727069347},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"ecbd13b3-2af2-45a5-800c-a34fe73e0db6","savedPayload":{"position":{"x":4607.439160937516,"y":16301.341865829749},"targetPosition":{"x":4975.497653928305,"y":16211.424175280143},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a44b1626-282b-49d2-9ad1-cd5c81cc9f4a","savedPayload":{"position":{"x":4975.497653928305,"y":16211.424175280143},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate Support","config":"{\n \"codeName\": \"rateSupport\"\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.support.rate","project":"Superalgos","id":"14075730-a865-48f7-9f44-5c2d201ed16d","savedPayload":{"position":{"x":4784.106936331831,"y":16340.216640378902},"targetPosition":{"x":5143.354776085958,"y":16326.248511241341},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b2612e72-07b1-4756-834a-6db765bd386c","savedPayload":{"position":{"x":5143.354776085958,"y":16326.248511241341},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Period Support","config":"{\n \"codeName\": \"periodSupport\"\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.support.period","project":"Superalgos","id":"a47c1c1f-8e5e-4e03-9177-33fbf3f5d5a7","savedPayload":{"position":{"x":4790.194649168654,"y":16211.34212814043},"targetPosition":{"x":5158.708433267944,"y":16249.168037238149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bd719e1d-c639-4577-b0f1-89663028daa3","savedPayload":{"position":{"x":5158.708433267944,"y":16249.168037238149},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Type Support","config":"{\n \"codeName\": \"typeSupport\",\n \"isString\": true,\n \"possibleValues\": [\"Resistance\", \"Support\"]\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.support.type","project":"Superalgos","id":"18bf2427-ca89-4840-ba97-c9187b76da8c","savedPayload":{"position":{"x":4622.070722681274,"y":16126.880921211272},"targetPosition":{"x":4998.519108268996,"y":16160.945889484396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"005b24fe-a5d4-47b7-aa13-03c2aa091d8a","savedPayload":{"position":{"x":4998.519108268996,"y":16160.945889484396},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 1 Rate","config":"{ \n\"codeName\": \"support1Rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support1Rate","project":"Superalgos","id":"40e08fb6-52ff-4f0a-99a6-989f5bc81610","savedPayload":{"position":{"x":4818.233421768855,"y":16086.480178469948},"targetPosition":{"x":5185.769184457891,"y":16170.589987695002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7755d99-afae-4dfe-a429-5de300b3a64a","savedPayload":{"position":{"x":5185.769184457891,"y":16170.589987695002},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 1 Period","config":"{ \n\"codeName\": \"support1Period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support1Period","project":"Superalgos","id":"c65fb3e0-42b1-4de7-9d71-613919f6a7ec","savedPayload":{"position":{"x":4655.686086158486,"y":15994.856214445808},"targetPosition":{"x":5020.0993037421795,"y":16092.703500595799},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78fb954c-336d-4a3d-8724-65786fcf8cbf","savedPayload":{"position":{"x":5020.0993037421795,"y":16092.703500595799},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 2 Rate","config":"{ \n\"codeName\": \"support2Rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support2Rate","project":"Superalgos","id":"0ce65da3-57d2-4161-89aa-68bf1802c52a","savedPayload":{"position":{"x":4874.832913778035,"y":15951.588383512744},"targetPosition":{"x":5208.925718376915,"y":16101.748289193976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5d52e50a-ccad-4487-aebb-ac4b8fbecb1e","savedPayload":{"position":{"x":5208.925718376915,"y":16101.748289193976},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 2 Period","config":"{ \n\"codeName\": \"support2Period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support2Period","project":"Superalgos","id":"28425604-1922-47d0-9479-c53c56923197","savedPayload":{"position":{"x":4700.338643959891,"y":15891.548946312712},"targetPosition":{"x":5046.3601679809035,"y":16012.823974413226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fa4c6abd-7eee-4f94-b2b6-65e638c5f1c1","savedPayload":{"position":{"x":5046.3601679809035,"y":16012.823974413226},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 3 Rate","config":"{ \n\"codeName\": \"support3Rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support3Rate","project":"Superalgos","id":"ab99a0da-1377-4cf4-986c-197e52b4c696","savedPayload":{"position":{"x":4744.264441349267,"y":15773.04097117208},"targetPosition":{"x":5240.674160517396,"y":16052.06310870039},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7b87217d-8e2a-425a-a1e1-d5d0a09a98de","savedPayload":{"position":{"x":5240.674160517396,"y":16052.06310870039},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 3 Period","config":"{ \n\"codeName\": \"support3Period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support3Period","project":"Superalgos","id":"052e5b14-17d6-45f9-b680-388146cb6852","savedPayload":{"position":{"x":4949.527495190319,"y":15891.138192962484},"targetPosition":{"x":5078.73031746006,"y":15944.05841827027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aa81f2c7-4fb7-4ce8-a52c-9ced275a240b","savedPayload":{"position":{"x":5078.73031746006,"y":15944.05841827027},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 4 Rate","config":"{ \n\"codeName\": \"support4Rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support4Rate","project":"Superalgos","id":"d7409aeb-b96f-4591-abc6-94c3feae3243","savedPayload":{"position":{"x":4861.463516551274,"y":15573.981737265934},"targetPosition":{"x":5344.699594578011,"y":15871.238591017056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b188be8-ca50-4b70-b54c-01bee5c8fe6e","savedPayload":{"position":{"x":5344.699594578011,"y":15871.238591017056},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 4 Period","config":"{ \n\"codeName\": \"support4Period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support4Period","project":"Superalgos","id":"44d44f24-2c72-4679-8eac-3c571073eb5b","savedPayload":{"position":{"x":4953.122566107657,"y":15764.715559090742},"targetPosition":{"x":5108.924594222724,"y":15971.192176116823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bd577b4c-73a5-4ce1-ba77-30dee0f2d456","savedPayload":{"position":{"x":5108.924594222724,"y":15971.192176116823},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 5 Rate","config":"{ \n\"codeName\": \"support5Rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support5Rate","project":"Superalgos","id":"362400a8-620f-4a50-ac69-ca970d2c8e2c","savedPayload":{"position":{"x":4979.802169458148,"y":15546.012198008568},"targetPosition":{"x":5280.548619648402,"y":15949.625328626105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6a84dce6-0b33-4acd-8eef-ec00e8c1f565","savedPayload":{"position":{"x":5280.548619648402,"y":15949.625328626105},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 5 Period","config":"{ \n\"codeName\": \"support5Period\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support5Period","project":"Superalgos","id":"a3c54d4a-d24f-48d2-9bd6-8c97e72988d6","savedPayload":{"position":{"x":5049.35168561387,"y":15646.151665682148},"targetPosition":{"x":5178.604526323721,"y":15869.48173685992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aad90b32-0fc6-42e6-97ad-92369d92c75d","savedPayload":{"position":{"x":5178.604526323721,"y":15869.48173685992},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 1 Bounce 1","config":"{ \n\"codeName\": \"support1Bounce1\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support1Bounce1","project":"Superalgos","id":"f8588e9b-1b98-4d42-9c9e-87a1ccbf5f85","savedPayload":{"position":{"x":5010.618134137054,"y":15438.090060304541},"targetPosition":{"x":5123.20188365475,"y":15597.238016570307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"b01a5c8f-7c91-497d-b859-14a28ed2dab0","savedPayload":{"position":{"x":5123.20188365475,"y":15597.238016570307},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 1 Bounce 2","config":"{ \n\"codeName\": \"support1Bounce2\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support1Bounce2","project":"Superalgos","id":"5ced6adc-834d-42d3-8fda-922e22c010b3","savedPayload":{"position":{"x":5096.291174316735,"y":15387.856007484348},"targetPosition":{"x":5187.1572738034665,"y":15549.846667296713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"237bb47a-cad5-4d17-8082-4a668a520c0f","savedPayload":{"position":{"x":5187.1572738034665,"y":15549.846667296713},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 1 Bounce 3","config":"{ \n\"codeName\": \"support1Bounce3\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support1Bounce3","project":"Superalgos","id":"b4699add-3195-4db4-8bd7-9a9afbf47bfe","savedPayload":{"position":{"x":5194.423585050474,"y":15324.65813169382},"targetPosition":{"x":5260.364376596193,"y":15544.092121741136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"7ab00eae-5fff-41cb-a438-2e938663d10b","savedPayload":{"position":{"x":5260.364376596193,"y":15544.092121741136},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 1 Bounce 5","config":"{ \n\"codeName\": \"support1Bounce5\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support1Bounce5","project":"Superalgos","id":"a447aee8-c957-4bc8-b2ee-8e90b69820f1","savedPayload":{"position":{"x":5304.6465556284675,"y":15377.020720108301},"targetPosition":{"x":5332.478778166886,"y":15437.032930568588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"e9f2282a-5328-4765-9e6a-e388f22b0664","savedPayload":{"position":{"x":5332.478778166886,"y":15437.032930568588},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 1 Bounce 10","config":"{ \n\"codeName\": \"support1Bounce10\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support1Bounce10","project":"Superalgos","id":"ccb5af69-8ba1-4050-8e5c-d7bb6d7ca7e6","savedPayload":{"position":{"x":5364.214722423392,"y":15232.598924009395},"targetPosition":{"x":5401.984005472186,"y":15570.392407896661},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"bff9046e-7f89-4bf1-94fa-374623c25270","savedPayload":{"position":{"x":5401.984005472186,"y":15570.392407896661},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 1 Bounce All","config":"{ \n\"codeName\": \"support1BounceAll\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support1BounceAll","project":"Superalgos","id":"db228fdf-d598-4e15-ac14-ee5f9abc9f04","savedPayload":{"position":{"x":5428.904811416338,"y":15349.839552576408},"targetPosition":{"x":5433.613829291633,"y":15450.526723676005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"92fe7b52-2018-4a57-9d5a-68146cb40679","savedPayload":{"position":{"x":5433.613829291633,"y":15450.526723676005},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 2 Bounce 1","config":"{ \n\"codeName\": \"support2Bounce1\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support2Bounce1","project":"Superalgos","id":"668ef50d-cc9c-472d-8f1e-01501af5dcf5","savedPayload":{"position":{"x":5504.80253831884,"y":15248.505715164976},"targetPosition":{"x":5514.201615379916,"y":15533.170164311141},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"1dfa6ecc-7354-4ae2-b82c-3b67c1dc9714","savedPayload":{"position":{"x":5514.201615379916,"y":15533.170164311141},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 2 Bounce 2","config":"{ \n\"codeName\": \"support2Bounce2\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support2Bounce2","project":"Superalgos","id":"879626cc-4c25-4a48-9664-b09a8ef0898b","savedPayload":{"position":{"x":5578.415330117379,"y":15335.284066993205},"targetPosition":{"x":5595.999957803884,"y":15418.27589947746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"2ac63aa9-1097-4384-b9d9-a09591216b46","savedPayload":{"position":{"x":5595.999957803884,"y":15418.27589947746},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 2 Bounce 3","config":"{ \n\"codeName\": \"support2Bounce3\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support2Bounce3","project":"Superalgos","id":"6d35756c-cbf6-4dbb-9e0e-87eec91ae9c7","savedPayload":{"position":{"x":5681.127688752473,"y":15258.072914811995},"targetPosition":{"x":5628.29031963032,"y":15556.400197385896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"0f78e402-d6d9-47c8-a71f-ba19d31fdaa9","savedPayload":{"position":{"x":5628.29031963032,"y":15556.400197385896},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 2 Bounce 5","config":"{ \n\"codeName\": \"support2Bounce5\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support2Bounce5","project":"Superalgos","id":"7ea5cc0c-062a-4ab1-bc29-0cfef7646609","savedPayload":{"position":{"x":5728.886817517217,"y":15361.303084505867},"targetPosition":{"x":5703.733866609062,"y":15457.463092674485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"65e72b1c-36bb-4242-9cea-d0fa1ef8aacc","savedPayload":{"position":{"x":5703.733866609062,"y":15457.463092674485},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 2 Bounce 10","config":"{ \n\"codeName\": \"support2Bounce10\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support2Bounce10","project":"Superalgos","id":"c2e95035-bc39-4a60-bc3d-816d78ec154d","savedPayload":{"position":{"x":5835.564301886625,"y":15292.009053918675},"targetPosition":{"x":5744.492655963899,"y":15568.899014176463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"f8bdb4d7-0a2a-4730-9bd1-a77c3eacb76b","savedPayload":{"position":{"x":5744.492655963899,"y":15568.899014176463},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 2 Bounce All","config":"{ \n\"codeName\": \"support2BounceAll\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support2BounceAll","project":"Superalgos","id":"467b8765-e0cd-449b-8773-5eaf03de28b7","savedPayload":{"position":{"x":5873.947271341811,"y":15407.009199897206},"targetPosition":{"x":5853.883719169018,"y":15491.458903589877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"2fda2cca-b8bc-4b85-919a-f8df88913ec4","savedPayload":{"position":{"x":5853.883719169018,"y":15491.458903589877},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 3 Bounce 1","config":"{ \n\"codeName\": \"support3Bounce1\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support3Bounce1","project":"Superalgos","id":"77a3826e-5aa8-4f72-b389-964cd68e7b74","savedPayload":{"position":{"x":6006.468207229853,"y":15353.688963362854},"targetPosition":{"x":5851.792116398574,"y":15629.555125703504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"7add9106-d78b-4ba4-b08b-6251d16edde3","savedPayload":{"position":{"x":5851.792116398574,"y":15629.555125703504},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 3 Bounce 2","config":"{ \n\"codeName\": \"support3Bounce2\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support3Bounce2","project":"Superalgos","id":"6cc16e19-c604-46e8-9bbb-0d03e52e34aa","savedPayload":{"position":{"x":6007.915568640976,"y":15475.819656929},"targetPosition":{"x":5963.62768146475,"y":15557.899211229136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"eb85b0d0-36b0-4c43-bbb6-3946c0e44075","savedPayload":{"position":{"x":5963.62768146475,"y":15557.899211229136},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 3 Bounce 3","config":"{ \n\"codeName\": \"support3Bounce3\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support3Bounce3","project":"Superalgos","id":"d680f9ce-a7d0-4a1b-86ad-a03b3edf9469","savedPayload":{"position":{"x":6133.929361573577,"y":15449.221211236092},"targetPosition":{"x":5950.654191523565,"y":15689.344609739735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"32259491-a337-4c85-9ae8-b296c401c80b","savedPayload":{"position":{"x":5950.654191523565,"y":15689.344609739735},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 3 Bounce 5","config":"{ \n\"codeName\": \"support3Bounce5\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support3Bounce5","project":"Superalgos","id":"0131d473-e06b-4082-b349-4368a71c15b8","savedPayload":{"position":{"x":6133.178730698361,"y":15567.79839158347},"targetPosition":{"x":6075.793265071461,"y":15640.859623354887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"917cfbe5-6374-4170-b28d-e9d9f7920503","savedPayload":{"position":{"x":6075.793265071461,"y":15640.859623354887},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 3 Bounce 10","config":"{ \n\"codeName\": \"support3Bounce10\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support3Bounce10","project":"Superalgos","id":"58020873-bc14-436c-ab34-70ea0c165e75","savedPayload":{"position":{"x":6269.392053296226,"y":15569.0052897383},"targetPosition":{"x":6036.455380306834,"y":15766.7655865447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"5d70fe41-e6ce-42db-a5c0-12dcaa35a724","savedPayload":{"position":{"x":6036.455380306834,"y":15766.7655865447},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 3 Bounce All","config":"{ \n\"codeName\": \"support3BounceAll\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support3BounceAll","project":"Superalgos","id":"5d24f8e3-9f2f-4d48-9c8e-d8a11a6dc019","savedPayload":{"position":{"x":6256.369438198108,"y":15691.81305805979},"targetPosition":{"x":6162.252702132188,"y":15770.56941811985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"79faaac2-1e37-4667-a4fc-0bdb696cde15","savedPayload":{"position":{"x":6162.252702132188,"y":15770.56941811985},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support Resistance Zone","config":"{ \n\"codeName\": \"supportResistanceZone\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.supportResistanceZone","project":"Superalgos","id":"5f2c5c5d-b624-4642-b235-ce65d442e721","savedPayload":{"position":{"x":5992.997465828703,"y":15932.158519249062},"targetPosition":{"x":5883.589162401047,"y":16002.055379786307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"8405cbdf-a97b-40c8-9e4d-1b5187c7304b","savedPayload":{"position":{"x":5883.589162401047,"y":16002.055379786307},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 4 Bounce 1","config":"{ \n\"codeName\": \"support4Bounce1\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support4Bounce1","project":"Superalgos","id":"c6a343f3-b85c-460d-b8d9-59c4bc638215","savedPayload":{"position":{"x":6361.424623990886,"y":15766.551383050819},"targetPosition":{"x":6172.041097444075,"y":15863.348259506041},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"65d9c0e2-d16d-4702-99af-bba32a73e82b","savedPayload":{"position":{"x":6172.041097444075,"y":15863.348259506041},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Support 5 Bounce 1","config":"{ \n\"codeName\": \"support5Bounce1\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.support5Bounce1","project":"Superalgos","id":"b715565a-3502-464a-bd5e-e29bb7c8f7fc","savedPayload":{"position":{"x":6398.702137564702,"y":15912.202837811521},"targetPosition":{"x":6237.247341323691,"y":15979.655576224955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"04cf3b6f-3549-4459-9628-1435764305ca","savedPayload":{"position":{"x":6237.247341323691,"y":15979.655576224955},"targetPosition":{"x":5525.160808938348,"y":16232.498667912976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a2958a95-82c5-480d-a552-69ff3a01cade","savedPayload":{"position":{"x":5525.11995022765,"y":16232.509669131476},"targetPosition":{"x":5987.8967658300135,"y":17657.73671339679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"\n\nlet candle = record.current\nlet previousCandle = record.previous\n\nvariable.supportResistanceZone = calculateSupportResistanceZone()\n\ndeleteSupports(candle.min)\nincreasePeriods()\n\nvariable.support = {}\n\nvariable.support.rate = 0\nvariable.support.period = 0\nvariable.support.type = ''\n\nif (previousCandle !== undefined) {\n\n let previousPreviousCandle = record.previous.previous\n\n if (previousPreviousCandle !== undefined) {\n\n if (previousCandle.min < previousPreviousCandle.min && previousCandle.min < candle.min) {\n variable.support.rate = previousCandle.min\n variable.support.period = 0\n variable.support.type = 'Support'\n increaseSupportsBounces(variable.support.rate)\n rememberSupports(variable.support.rate)\n }\n }\n}\n\nsetClosestSupports()\n\nfunction deleteSupports(rate) {\n\n let max\n\n for (let i = 0; i < variable.supports.length; i++) {\n let currenRecord = variable.supports[i]\n let currentRate = currenRecord[0]\n\n if (rate <= currentRate - currentRate * variable.supportResistanceZone / 2 / 100) { // It must go through the support / resistance zone around the current rate value\n max = i\n }\n }\n if (max !== undefined) {\n variable.supports.splice(0, max + 1)\n }\n}\n\nfunction increasePeriods() {\n\n for (let i = 0; i < variable.supports.length; i++) {\n let currenRecord = variable.supports[i]\n currenRecord[1] = currenRecord[1] + 1\n }\n}\n\nfunction setClosestSupports() {\n let record\n\n record = variable.supports[0]\n if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }\n variable.support1Rate = record[0]\n variable.support1Period = record[1]\n variable.support1Bounce1 = record[2]\n variable.support1Bounce2 = record[3]\n variable.support1Bounce3 = record[4]\n variable.support1Bounce5 = record[5]\n variable.support1Bounce10 = record[6]\n variable.support1BounceAll = record[7]\n\n record = variable.supports[1]\n if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }\n variable.support2Rate = record[0]\n variable.support2Period = record[1]\n variable.support2Bounce1 = record[2]\n variable.support2Bounce2 = record[3]\n variable.support2Bounce3 = record[4]\n variable.support2Bounce5 = record[5]\n variable.support2Bounce10 = record[6]\n variable.support2BounceAll = record[7]\n\n record = variable.supports[2]\n if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }\n variable.support3Rate = record[0]\n variable.support3Period = record[1]\n variable.support3Bounce1 = record[2]\n variable.support3Bounce2 = record[3]\n variable.support3Bounce3 = record[4]\n variable.support3Bounce5 = record[5]\n variable.support3Bounce10 = record[6]\n variable.support3BounceAll = record[7]\n\n record = variable.supports[3]\n if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }\n variable.support4Rate = record[0]\n variable.support4Period = record[1]\n variable.support4Bounce1 = record[2]\n\n record = variable.supports[4]\n if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }\n variable.support5Rate = record[0]\n variable.support5Period = record[1]\n variable.support5Bounce1 = record[2]\n\n}\n\n\nfunction rememberSupports(rate) {\n if (variable.supports.length === 0) {\n variable.supports.push([rate, 1, 0, 0, 0, 0, 0, 0])\n return\n }\n for (let i = 0; i < variable.supports.length; i++) {\n let currenRecord = variable.supports[i]\n let currentRate = currenRecord[0]\n\n if (rate > currentRate - currentRate * variable.supportResistanceZone / 2 / 100 && rate < currentRate + currentRate * variable.supportResistanceZone / 2 / 100) {\n // We are not going to remember this new level since it is absorved by this existing one.\n return\n }\n\n if (rate > currentRate) {\n variable.supports.splice(i, 0, [rate, 1, 0, 0, 0, 0, 0, 0])\n return\n }\n\n if (i === variable.supports.length - 1) {\n variable.supports.push([rate, 1, 0, 0, 0, 0, 0, 0])\n return\n }\n }\n}\n\nfunction increaseSupportsBounces(rate) {\n\n for (let i = 0; i < variable.supports.length; i++) {\n let currenRecord = variable.supports[i]\n let currentRate = currenRecord[0]\n let percentage = rate * 100 / currentRate - 100\n\n if (percentage <= variable.supportResistanceZone / 2 * 1) {\n currenRecord[2] = currenRecord[2] + 1\n }\n\n if (percentage <= variable.supportResistanceZone / 2 * 2) {\n currenRecord[3] = currenRecord[3] + 1\n }\n\n if (percentage <= variable.supportResistanceZone / 2 * 3) {\n currenRecord[4] = currenRecord[4] + 1\n }\n\n if (percentage <= variable.supportResistanceZone / 2 * 5) {\n currenRecord[5] = currenRecord[5] + 1\n }\n\n if (percentage <= variable.supportResistanceZone / 2 * 10) {\n currenRecord[6] = currenRecord[6] + 1\n }\n\n currenRecord[7] = currenRecord[7] + 1\n }\n}\n\nfunction calculateSupportResistanceZone() {\n /* \n The variable % is a percentage we will use for support and resistance based on the time frame.\n We will fix the % for 1 minute candles and for 24 hs candle and the use the formula to obtain\n y on a line by knowing 2 points of the line as described here: https://en.wikipedia.org/wiki/Line_(geometry)\n */\n\n let x0 = system.ONE_MIN_IN_MILISECONDS\n let y0 = 0.1 // At one min, we will consider the resistance / support zone to be 0.1% resistance \n let x1 = system.ONE_DAY_IN_MILISECONDS\n let y1 = 4 // At one day, we will consider the resistance / support zone to be 4% resistance\n\n let x = system.timeFrame // This is the current time frame being calculated\n let y = (x - x0) * (y1 - y0) / (x1 - x0) + y0\n\n return y\n\n}","project":"Superalgos","id":"2f38e534-5b92-4ded-9c74-1a8c1fef392c","savedPayload":{"position":{"x":6258.097574680203,"y":16198.050096020444},"targetPosition":{"x":6238.465310845211,"y":16572.331688549002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f6dbb7b-b13f-45a9-ba9e-e1c9f06970d6","savedPayload":{"position":{"x":6238.465310845211,"y":16572.331688549002},"targetPosition":{"x":6218.9909399021235,"y":16946.451706064538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"variable.supports = []","project":"Superalgos","id":"a62efae4-3818-4048-ad13-bfb7c4bd22d9","savedPayload":{"position":{"x":6627.405908678309,"y":16317.666755778566},"targetPosition":{"x":6423.25641953704,"y":16632.00208818868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"793f079f-9623-4e8c-bd38-8dbd351caf8f","savedPayload":{"position":{"x":6423.25641953704,"y":16632.00208818868},"targetPosition":{"x":6218.9909399021235,"y":16946.451706064538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3d26c2d9-7dd2-4796-91b4-768026944d66","savedPayload":{"position":{"x":6218.9909399021235,"y":16946.451706064538},"targetPosition":{"x":5987.8967658300135,"y":17657.73671339679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bc3c43de-6312-47d4-ae3d-0c95c1b039e0","savedPayload":{"position":{"x":6626.60800335087,"y":18541.493947816565},"targetPosition":{"x":6775.786287656112,"y":18525.814678326416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Supports","id":"1a104c65-6470-4694-a39e-4663f15e490c"}}}],"id":"c037980d-d455-41a0-b058-2d7849ddf582","savedPayload":{"position":{"x":6775.786287656112,"y":18527.814678326416},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Fees Band","config":"{ \n \"codeName\": \"Fees-Band\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{ \n \"codeName\": \"Multi-Period-Market\", \n \"normalWaitTime\": 0, \n \"retryWaitTime\": 10000, \n \"framework\": { \n \"name\": \"Multi-Period-Market\" \n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Fees Band 0.2","project":"Superalgos","id":"addb000e-ee23-4ea2-becd-10513978f9e9","savedPayload":{"position":{"x":5870.449539674286,"y":18614.93272056544},"targetPosition":{"x":5865.918702689563,"y":18389.978344043848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9c699a57-f0cf-434c-8ef8-40aac182200e"}}}],"outputDatasetFolders":[],"id":"d1a16312-6cf6-49b2-9ec9-63820952ec59","savedPayload":{"position":{"x":5865.918702689563,"y":18389.978344043848},"targetPosition":{"x":5861.387865704841,"y":18165.023967522255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Fees Band Multi-Period-Market","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"14fc9c86-f37f-4ff6-ad5a-c371f0846186","savedPayload":{"position":{"x":5727.964134228852,"y":18585.726844319874},"targetPosition":{"x":5752.834497373224,"y":18362.105590774805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"408908d1-0f78-454e-b4ba-935c59e4f1fd"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"cfc81326-b7dd-43ae-8d00-325a1a03a30e","savedPayload":{"position":{"x":5644.281129041607,"y":18559.187214027355},"targetPosition":{"x":5752.834497373224,"y":18362.105590774805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"aae52694-9764-42ea-968b-8256c7e1733b","savedPayload":{"position":{"x":5577.124390144112,"y":18502.643693144},"targetPosition":{"x":5752.834497373224,"y":18362.105590774805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"c5895135-9bd9-4d0b-a50e-7bfa33e806c3","savedPayload":{"position":{"x":5752.834497373224,"y":18362.105590774805},"targetPosition":{"x":5861.387865704841,"y":18165.023967522255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"408908d1-0f78-454e-b4ba-935c59e4f1fd","savedPayload":{"position":{"x":5668.837079437017,"y":18281.424975712227},"targetPosition":{"x":5861.387865704841,"y":18165.023967522255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"517c78ab-154c-4d72-a671-6ceaf7d7daa4","savedPayload":{"position":{"x":5636.433489183248,"y":18169.554804506977},"targetPosition":{"x":5861.387865704841,"y":18165.023967522255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"d2c5852c-7223-4d9d-bbe0-0d7b4109e7e1","savedPayload":{"position":{"x":5664.3062424522905,"y":18056.470599190638},"targetPosition":{"x":5861.387865704841,"y":18165.023967522255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c97a3c7-8333-4b7a-bba3-c1f50edb1771","savedPayload":{"position":{"x":6669.826231896121,"y":18757.70174952457},"targetPosition":{"x":6695.972954720419,"y":18458.843340097046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{ \n \"codeName\": \"Multi-Period-Daily\", \n \"normalWaitTime\": 0, \n \"retryWaitTime\": 10000, \n \"framework\": { \n \"name\": \"Multi-Period-Daily\" \n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Fees Band 0.2","project":"Superalgos","id":"f97f4159-4225-449c-b3cf-e309829385ff","savedPayload":{"position":{"x":5523.750783972486,"y":18319.318036172303},"targetPosition":{"x":5679.613763512145,"y":18157.047485519943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2dd03ed7-736e-4959-ad8e-8108e59b8796"}}}],"outputDatasetFolders":[],"id":"169c266e-2c8b-46fd-9123-2f0cf3dbee75","savedPayload":{"position":{"x":5690.286287656112,"y":18458.862773042583},"targetPosition":{"x":5802.786287656112,"y":18264.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Fees Band Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"4369e75e-d3e2-4540-a37a-62a8bc6f5156","savedPayload":{"position":{"x":5485.386788926233,"y":18565.207934978804},"targetPosition":{"x":5607.930571804613,"y":18376.507057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"44063861-0fab-49a8-ad15-fc3c4dcbc63e"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"9a1ec693-82b2-4ce3-b3dc-b57a75ce8972","savedPayload":{"position":{"x":5433.072730476793,"y":18518.104145177298},"targetPosition":{"x":5607.930571804613,"y":18376.507057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"3f758280-c446-4122-96bc-530b4bb6d1dc","savedPayload":{"position":{"x":5397.874975842744,"y":18457.139845838778},"targetPosition":{"x":5607.930571804613,"y":18376.507057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"753cc3b9-56a8-49fd-bb60-5220e8c68b76","savedPayload":{"position":{"x":5383.238926484835,"y":18388.282647345746},"targetPosition":{"x":5607.930571804613,"y":18376.507057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"f3a27f58-27c0-4693-a83c-743a30cd14d1","savedPayload":{"position":{"x":5607.930571804613,"y":18376.507057191084},"targetPosition":{"x":5802.786287656112,"y":18264.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"44063861-0fab-49a8-ad15-fc3c4dcbc63e","savedPayload":{"position":{"x":5577.786287656112,"y":18264.007057191084},"targetPosition":{"x":5802.786287656112,"y":18264.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"b35ae9ae-9ffc-48d0-8261-3dc4614198c0","savedPayload":{"position":{"x":5607.930571804613,"y":18151.507057191084},"targetPosition":{"x":5802.786287656112,"y":18264.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"1e9595e3-f4f7-4d71-89a6-34398c6ba768","savedPayload":{"position":{"x":5690.286287656112,"y":18069.151341339584},"targetPosition":{"x":5802.786287656112,"y":18264.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2ab4b651-67c8-4b4b-bdce-96aad4dff1dc","savedPayload":{"position":{"x":6466.1596217847255,"y":18651.67962300301},"targetPosition":{"x":6695.972954720419,"y":18458.843340097046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Fees Band 0.2","config":"{ \n \"codeName\": \"Fees-Band-0.2\", \n \"singularVariableName\": \"feesBand02\", \n \"pluralVariableName\": \"feesBand02s\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"9c699a57-f0cf-434c-8ef8-40aac182200e","savedPayload":{"position":{"x":6200.296836595742,"y":18659.10949133958},"targetPosition":{"x":6397.114545292894,"y":18432.696617272748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2dd03ed7-736e-4959-ad8e-8108e59b8796","savedPayload":{"position":{"x":6104.803525857322,"y":18500.181933575906},"targetPosition":{"x":6397.114545292894,"y":18432.696617272748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"4b6ed335-f5cf-49fa-aba7-6dfe1d1b6bfb","savedPayload":{"position":{"x":5316.652693723612,"y":17914.528692414842},"targetPosition":{"x":5541.596046585677,"y":17909.480127948285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2d5157a-34cf-43fd-a83b-d4cca5a82748","savedPayload":{"position":{"x":5541.596046585677,"y":17909.480127948285},"targetPosition":{"x":5766.539399447742,"y":17904.43156348173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"cc285267-5578-4d94-981e-55663b745029","savedPayload":{"position":{"x":5356.824503451273,"y":17718.33023624679},"targetPosition":{"x":5561.681951449507,"y":17811.38089986426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5e905c5f-8ad5-4cdf-a3e7-2c0dfc0541fa","savedPayload":{"position":{"x":5561.681951449507,"y":17811.38089986426},"targetPosition":{"x":5766.539399447742,"y":17904.43156348173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Upper Band","config":"{\n \"codeName\": \"beginUpperBand\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.beginUpperBand","project":"Superalgos","id":"8ec7c074-e8d2-4fd5-a702-be3f8245ea8b","savedPayload":{"position":{"x":5478.1453731544825,"y":17558.99143032062},"targetPosition":{"x":5622.342386301112,"y":17731.711496901175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dcbd6bca-eed6-4d4c-a7c3-1ee9b98aeb21","savedPayload":{"position":{"x":5622.342386301112,"y":17731.711496901175},"targetPosition":{"x":5766.539399447742,"y":17904.43156348173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Lower Band","config":"{\n \"codeName\": \"beginLowerBand\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.beginLowerBand","project":"Superalgos","id":"73490418-babd-4748-9bde-bd5bdc287bf1","savedPayload":{"position":{"x":5656.58621668569,"y":17468.07127931222},"targetPosition":{"x":5711.562808066716,"y":17686.251421396973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"06d379ef-d9c1-4a7c-858e-4be0fa504f49","savedPayload":{"position":{"x":5711.562808066716,"y":17686.251421396973},"targetPosition":{"x":5766.539399447742,"y":17904.43156348173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Upper Band","config":"{\n \"codeName\": \"endUpperBand\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.endUpperBand","project":"Superalgos","id":"52ca2981-9a3c-4c9c-84e9-bdb421727d84","savedPayload":{"position":{"x":5856.804636550216,"y":17463.577634191275},"targetPosition":{"x":5811.672017998979,"y":17684.004598836502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"67983f61-20a2-44e1-856b-ae182bab35ea","savedPayload":{"position":{"x":5811.672017998979,"y":17684.004598836502},"targetPosition":{"x":5766.539399447742,"y":17904.43156348173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Lower Band","config":"{\n \"codeName\": \"endLowerBand\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.endLowerBand","project":"Superalgos","id":"22edfaa2-acbc-4a0b-87a2-88607426b5f3","savedPayload":{"position":{"x":6039.144919176113,"y":17546.400516484926},"targetPosition":{"x":5902.842159311927,"y":17725.416039983327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5d5bda91-d33c-46c3-a669-eafc9dab4fe1","savedPayload":{"position":{"x":5902.842159311927,"y":17725.416039983327},"targetPosition":{"x":5766.539399447742,"y":17904.43156348173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13be8616-22a4-4c9a-bba6-8dd346168aa2","savedPayload":{"position":{"x":6120.963089257162,"y":18315.477278725964},"targetPosition":{"x":6397.114545292894,"y":18432.696617272748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"let close_1 = 0\nlet close_2 = 0\nlet close_3 = 0\nlet close_4 = 0\nlet close_5 = 0\n\nclose_1 = record.current.close\nif (record.previous !== undefined) {\n close_2 = record.previous.close\n if (record.previous.previous !== undefined) {\n close_3 = record.previous.previous.close\n if (record.previous.previous.previous !== undefined) {\n close_4 = record.previous.previous.previous.close\n if (record.previous.previous.previous.previous !== undefined) {\n close_5 = record.previous.previous.previous.previous.close\n } else {\n if (variable.lastMovingAverage !== undefined) {\n close_5 = variable.lastMovingAverage\n } \n }\n } else {\n if (variable.lastMovingAverage !== undefined) {\n close_4 = variable.lastMovingAverage\n } \n }\n } else {\n if (variable.lastMovingAverage !== undefined) {\n close_3 = variable.lastMovingAverage\n } \n }\n} else {\n if (variable.lastMovingAverage !== undefined) {\n close_2 = variable.lastMovingAverage\n } \n}\n\nlet movingAverage = (close_1 + close_2 + close_3 + close_4 + close_5) / 5\n\nif (variable.lastMovingAverage !== undefined) {\n variable.beginUpperBand = variable.lastMovingAverage + variable.lastMovingAverage * 0.1 / 100\n variable.beginLowerBand = variable.lastMovingAverage - variable.lastMovingAverage * 0.1 / 100\n} else {\n variable.beginUpperBand = movingAverage + movingAverage * 0.1 / 100\n variable.beginLowerBand = movingAverage - movingAverage * 0.1 / 100 \n}\n\nvariable.endUpperBand = movingAverage + movingAverage * 0.1 / 100\nvariable.endLowerBand = movingAverage - movingAverage * 0.1 / 100\n\nvariable.lastMovingAverage = movingAverage\n","project":"Superalgos","id":"cb903e7a-ffec-4487-8d03-b26f1a2a684b","savedPayload":{"position":{"x":5933.580277873843,"y":17661.246046640852},"targetPosition":{"x":6088.09170034686,"y":17918.396236851484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"644bb1a1-b38d-4a9e-9787-8328d8e612fd","savedPayload":{"position":{"x":6088.09170034686,"y":17918.396236851484},"targetPosition":{"x":6242.603122819877,"y":18175.546427062116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e189d182-e8a2-4591-9ecd-e4056f8a686b","savedPayload":{"position":{"x":6242.603122819877,"y":18175.546427062116},"targetPosition":{"x":6397.114545292894,"y":18432.696617272748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d6a14ed7-606d-40b9-b663-07ee04927460","savedPayload":{"position":{"x":6397.114545292894,"y":18432.696617272748},"targetPosition":{"x":6695.972954720419,"y":18458.843340097046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Fees Band","id":"eccd3713-e5c8-450c-bfb8-f8821fc429df"}}}],"id":"bb1b6bf2-4071-4617-af61-dad20ce3c51d","savedPayload":{"position":{"x":6695.972954720419,"y":18460.843340097046},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Volume Analysis","config":"{ \n \"codeName\": \"Volume-Analysis\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{ \n \"codeName\": \"Multi-Period-Market\", \n \"normalWaitTime\": 0, \n \"retryWaitTime\": 10000, \n \"framework\": { \n \"name\": \"Multi-Period-Market\" \n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Volume Analysis","project":"Superalgos","id":"ada228be-9705-4819-8c20-fe5c005e1078","savedPayload":{"position":{"x":6414.142410798111,"y":18964.202981303006},"targetPosition":{"x":6398.441623925228,"y":18664.614120876635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"1d4df142-34c0-4439-a532-208c56cbb349"}}}],"outputDatasetFolders":[],"id":"0599cb81-fedd-4387-bbe9-f866ca303b03","savedPayload":{"position":{"x":6491.299966830902,"y":18767.91683943377},"targetPosition":{"x":6413.654253300148,"y":18478.139091547047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Volume Analysis Multi-Period-Market","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"d77afa0b-be9f-4468-9a75-2a2ce510947c","savedPayload":{"position":{"x":6398.382047014718,"y":19061.36111965391},"targetPosition":{"x":6336.008539769391,"y":18767.91683943377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"d37487d0-abfc-4be1-94dd-150e81bcf2a7"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"fa22875f-ee65-4e82-bbc2-66234e5883fc","savedPayload":{"position":{"x":6304.650000789097,"y":19066.27340804425},"targetPosition":{"x":6336.008539769391,"y":18767.91683943377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"71ca9c05-b0c2-48bb-8f5c-39b0e61ae586","savedPayload":{"position":{"x":6213.987546846653,"y":19041.98047672655},"targetPosition":{"x":6336.008539769391,"y":18767.91683943377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Market","project":"Superalgos","id":"571feaf7-7669-40ce-9375-388e3251f124","savedPayload":{"position":{"x":6135.269357861733,"y":18990.860287076986},"targetPosition":{"x":6336.008539769391,"y":18767.91683943377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1"}}}],"dataMineDataDependencies":[],"id":"9d15c349-fee5-45cb-89ed-204d0c5bc330","savedPayload":{"position":{"x":6336.008539769391,"y":18767.91683943377},"targetPosition":{"x":6413.654253300148,"y":18478.139091547047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"d37487d0-abfc-4be1-94dd-150e81bcf2a7","savedPayload":{"position":{"x":6201.522218944181,"y":18690.27112590301},"targetPosition":{"x":6413.654253300148,"y":18478.139091547047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"fc4aafb9-8da5-493c-85e7-1f45264b0c05","savedPayload":{"position":{"x":6123.876505413427,"y":18555.784805077805},"targetPosition":{"x":6413.654253300148,"y":18478.139091547047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"854d9512-497f-4c5f-9f68-22db0c2a4933","savedPayload":{"position":{"x":6123.876505413427,"y":18400.49337801629},"targetPosition":{"x":6413.654253300148,"y":18478.139091547047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2f434c96-d55d-40b8-b58c-51146f1bce5b","savedPayload":{"position":{"x":6517.093022898131,"y":18640.50543629978},"targetPosition":{"x":6643.878501420339,"y":18368.613100188784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{ \n \"codeName\": \"Multi-Period-Daily\", \n \"normalWaitTime\": 0, \n \"retryWaitTime\": 10000, \n \"framework\": { \n \"name\": \"Multi-Period-Daily\" \n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Volume Analysis","project":"Superalgos","id":"29f46d50-8684-4bee-9a4a-156811d47d36","savedPayload":{"position":{"x":5236.750783972486,"y":18317.818036172303},"targetPosition":{"x":5392.613763512145,"y":18155.547485519943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cccbe688-75e9-405c-a087-8c1bb953430f"}}}],"outputDatasetFolders":[],"id":"7b559f39-f888-49d6-948a-a31af2810209","savedPayload":{"position":{"x":6140.158545308172,"y":18362.203490343647},"targetPosition":{"x":6340.89772721583,"y":18139.26004270043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Volume Analysis Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"d3ed5c3a-d516-4f41-95fe-160786e233ae","savedPayload":{"position":{"x":5854.841590419626,"y":18454.90858865613},"targetPosition":{"x":6055.580772327285,"y":18231.96514101291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"8a54d9d3-c038-4e08-ad86-267e9a7f0403"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"27fad487-f5c4-441f-8d1e-8f399d1809af","savedPayload":{"position":{"x":5803.979601943658,"y":18395.35685151742},"targetPosition":{"x":6055.580772327285,"y":18231.96514101291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"5a7aecb7-ded0-469f-a013-09e7eb74a590","savedPayload":{"position":{"x":5770.263817438739,"y":18324.670239325395},"targetPosition":{"x":6055.580772327285,"y":18231.96514101291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"346a0595-7994-4d22-8e7f-be93b4088cbd","savedPayload":{"position":{"x":5755.991911900914,"y":18247.665927885795},"targetPosition":{"x":6055.580772327285,"y":18231.96514101291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Daily","project":"Superalgos","id":"4a026f3a-d8d8-44d3-b058-3a71af0d4b14","savedPayload":{"position":{"x":5762.136492107144,"y":18169.591633767584},"targetPosition":{"x":6055.580772327285,"y":18231.96514101291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e683057-f911-4105-bc77-16f2706d1915"}}}],"dataMineDataDependencies":[],"id":"80465e4d-83cc-4ec2-b5f5-b2774502b29a","savedPayload":{"position":{"x":6055.580772327285,"y":18231.96514101291},"targetPosition":{"x":6340.89772721583,"y":18139.26004270043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"8a54d9d3-c038-4e08-ad86-267e9a7f0403","savedPayload":{"position":{"x":6047.453446995689,"y":18076.8865354551},"targetPosition":{"x":6340.89772721583,"y":18139.26004270043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"d4706947-b55b-4341-b70b-0b45f14e7912","savedPayload":{"position":{"x":6117.954279572612,"y":17938.52086079277},"targetPosition":{"x":6340.89772721583,"y":18139.26004270043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"14125000-f67f-44d5-8fa6-c9b8fd3ab307","savedPayload":{"position":{"x":6248.192628903347,"y":17853.943087811884},"targetPosition":{"x":6340.89772721583,"y":18139.26004270043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6909e701-0c06-46b5-8a26-c5603dadfac6","savedPayload":{"position":{"x":6361.970715184565,"y":18471.219143186485},"targetPosition":{"x":6643.878501420339,"y":18368.613100188784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Volume Analysis","config":"{ \n \"codeName\": \"Volume-Analysis\", \n \"singularVariableName\": \"volumeAnalysi\", \n \"pluralVariableName\": \"volumeAnalysis\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"1d4df142-34c0-4439-a532-208c56cbb349","savedPayload":{"position":{"x":6117.347751121608,"y":18100.80536234719},"targetPosition":{"x":6413.654253300148,"y":18053.87502283512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"cccbe688-75e9-405c-a087-8c1bb953430f","savedPayload":{"position":{"x":6146.352296043635,"y":17917.677872913257},"targetPosition":{"x":6413.654253300148,"y":18053.87502283512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"8b359ad9-7e1f-473e-b10d-33113db1e121","savedPayload":{"position":{"x":5687.766061172228,"y":17897.31815459812},"targetPosition":{"x":5982.611582275258,"y":17841.945610088365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"53da0251-b700-4e23-ad9b-1027d589be74","savedPayload":{"position":{"x":5982.611582275258,"y":17841.945610088365},"targetPosition":{"x":6277.457103378281,"y":17786.57306557861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"fbb6f75d-cae4-407c-abe8-51b6689bbfe9","savedPayload":{"position":{"x":5680.452194691068,"y":17726.697035287943},"targetPosition":{"x":5978.954649034677,"y":17756.635050433277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8d63f4fe-6351-4919-add0-ca9efde3d534","savedPayload":{"position":{"x":5978.954649034677,"y":17756.635050433277},"targetPosition":{"x":6277.457103378281,"y":17786.57306557861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Buy Volume","config":"{\n \"codeName\": \"buyVolume\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.buyVolume","project":"Superalgos","id":"100d6a11-107c-43ab-bdf5-4ea8d8dd1e26","savedPayload":{"position":{"x":5721.504115386841,"y":17560.92671585545},"targetPosition":{"x":5999.480609382561,"y":17673.74989071703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"93e7007f-cd7b-4d8a-b855-2859d61cea0d","savedPayload":{"position":{"x":5999.480609382561,"y":17673.74989071703},"targetPosition":{"x":6277.457103378281,"y":17786.57306557861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Sell Volume","config":"{\n \"codeName\": \"sellVolume\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sellVolume","project":"Superalgos","id":"1e0ed9c8-eacd-4fa4-b2b1-2c7c46fa0001","savedPayload":{"position":{"x":5807.596040789951,"y":17413.43692170702},"targetPosition":{"x":6042.526572084116,"y":17600.004993642815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ff32ed4c-4774-4daa-9682-40102a11274d","savedPayload":{"position":{"x":6042.526572084116,"y":17600.004993642815},"targetPosition":{"x":6277.457103378281,"y":17786.57306557861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Buy SMA 20","config":"{\n \"codeName\": \"buySMA20\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.buySMA20","project":"Superalgos","id":"61268785-244d-445d-85be-0c58958d3d45","savedPayload":{"position":{"x":5931.75331511263,"y":17296.176398808966},"targetPosition":{"x":6104.605209245459,"y":17541.374732193788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1a12d3f4-013a-4427-bda8-4dbceaaaa62a","savedPayload":{"position":{"x":6104.605209245459,"y":17541.374732193788},"targetPosition":{"x":6277.457103378281,"y":17786.57306557861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Sell SMA 20","config":"{\n \"codeName\": \"sellSMA20\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sellSMA20","project":"Superalgos","id":"c77ea447-8be1-45e4-a494-4322504b8357","savedPayload":{"position":{"x":6083.917454381004,"y":17218.644897351318},"targetPosition":{"x":6180.687278879643,"y":17502.608981464964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a3edb3ce-5c43-42b1-9d9e-510ac34fef96","savedPayload":{"position":{"x":6180.687278879643,"y":17502.608981464964},"targetPosition":{"x":6277.457103378281,"y":17786.57306557861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Buy SMA 200","config":"{\n \"codeName\": \"buySMA200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.buySMA200","project":"Superalgos","id":"2f085466-3ba8-4309-ba9b-3243b4dd2253","savedPayload":{"position":{"x":6251.761024986521,"y":17187.12355848457},"targetPosition":{"x":6264.609064182401,"y":17486.84831203159},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"543e8253-2bd3-4e74-8f5f-58a974b76f01","savedPayload":{"position":{"x":6264.609064182401,"y":17486.84831203159},"targetPosition":{"x":6277.457103378281,"y":17786.57306557861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Sell SMA 200","config":"{\n \"codeName\": \"sellSMA200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sellSMA200","project":"Superalgos","id":"24094c85-8ace-40f9-94b8-f93aa96435dc","savedPayload":{"position":{"x":6421.686339042881,"y":17204.166053619098},"targetPosition":{"x":6349.571721210581,"y":17495.369559598854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a8457135-b96c-4e31-9ada-8c4b0affc3d7","savedPayload":{"position":{"x":6349.571721210581,"y":17495.369559598854},"targetPosition":{"x":6277.457103378281,"y":17786.57306557861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Buy Force","config":"{\n \"codeName\": \"buyVolume\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.buyForce","project":"Superalgos","id":"f71139b5-222d-411f-90e8-882d09274234","savedPayload":{"position":{"x":6579.92705818998,"y":17268.391701154716},"targetPosition":{"x":6428.692080784134,"y":17527.482383366663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6e7aeead-72db-47cc-ace5-c02c6cf43524","savedPayload":{"position":{"x":6428.692080784134,"y":17527.482383366663},"targetPosition":{"x":6277.457103378281,"y":17786.57306557861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Sell Force","config":"{\n \"codeName\": \"buyVolume\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sellForce","project":"Superalgos","id":"73653b55-41f8-47d2-9c72-8e4cedc94742","savedPayload":{"position":{"x":6713.663460456326,"y":17374.59732109272},"targetPosition":{"x":6495.560281917304,"y":17580.585193335664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"79c4e8b2-7306-4d23-8dbb-045446aab18b","savedPayload":{"position":{"x":6495.560281917304,"y":17580.585193335664},"targetPosition":{"x":6277.457103378281,"y":17786.57306557861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8bf7c8ae-818d-4d95-9aa1-553a95300cb4","savedPayload":{"position":{"x":6277.457103378281,"y":17786.57306557861},"targetPosition":{"x":6413.654253300148,"y":18053.87502283512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"let candle = record.current // This is the primary dependency\nlet volume = getElement('volumes', candle) // Here I get the volume bar corresponding to the current candle\nlet totalVolume = volume.buy + volume.sell // Candles Volumes split the volume received from the exchange evenly betwen buy and sell because it does not know how much of it there is.\n\nvariable.buyVolume = 0\nvariable.sellVolume = 0\n\n/* \nWe will estimate a buy volume or sell volume proportional to the distance from \nthe open to the max and min of the candle.\n*/\nlet distanceOpenMax = candle.max - candle.open\nlet distanceOpenMin = candle.open - candle.min\nlet distanceMaxMin = candle.max - candle.min\n\nvariable.buyVolume = totalVolume * distanceOpenMax * 100 / distanceMaxMin\nvariable.sellVolume = totalVolume * distanceOpenMin * 100 / distanceMaxMin\n\nlet totalBuy\nlet totalSell\nlet totalNonZero\n/* Maintain the 20 periods moving averages. */\nvariable.last20Buy.splice(0, 1)\nvariable.last20Buy.push(variable.buyVolume)\ntotalBuy = 0\ntotalNonZero = 0\nfor (let i = 0; i < variable.last20Buy.length; i++) {\n let value = variable.last20Buy[i]\n if (value > 0) {\n totalBuy = totalBuy + value\n totalNonZero++\n }\n}\nvariable.buySMA20 = totalBuy / totalNonZero\n\nvariable.last20Sell.splice(0, 1)\nvariable.last20Sell.push(variable.sellVolume)\ntotalSell = 0\ntotalNonZero = 0\nfor (let i = 0; i < variable.last20Sell.length; i++) {\n let value = variable.last20Sell[i]\n if (value > 0) {\n totalSell = totalSell + value\n totalNonZero++\n }\n}\nvariable.sellSMA20 = totalSell / totalNonZero\n\n/* Maintain the 200 periods moving averages. */\nvariable.last200Buy.splice(0, 1)\nvariable.last200Buy.push(variable.buyVolume)\ntotalBuy = 0\ntotalNonZero = 0\nfor (let i = 0; i < variable.last200Buy.length; i++) {\n let value = variable.last200Buy[i]\n if (value > 0) {\n totalBuy = totalBuy + value\n totalNonZero++\n }\n}\nvariable.buySMA200 = totalBuy / totalNonZero\n\nvariable.last200Sell.splice(0, 1)\nvariable.last200Sell.push(variable.sellVolume)\ntotalSell = 0\ntotalNonZero = 0\nfor (let i = 0; i < variable.last200Sell.length; i++) {\n let value = variable.last200Sell[i]\n if (value > 0) {\n totalSell = totalSell + value\n totalNonZero++\n }\n}\nvariable.sellSMA200 = totalSell / totalNonZero\n\n/* Finaly we compute how many times the 200 moving average the volume is */\nvariable.buyForce = Math.trunc(variable.buyVolume / variable.buySMA200)\nvariable.sellForce = Math.trunc(variable.sellVolume / variable.sellSMA200)\n\n\n","project":"Superalgos","id":"6f413c35-7c25-424f-9dc8-3d33dff86ce6","savedPayload":{"position":{"x":6397.867514851623,"y":17160.855383435617},"targetPosition":{"x":6429.226053831921,"y":17459.2119520461},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c6058142-fc90-4f02-a7e3-bbfb43fb4ed4","savedPayload":{"position":{"x":6429.226053831921,"y":17459.2119520461},"targetPosition":{"x":6460.584592812218,"y":17757.56852065658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"variable.last20Buy = []\nvariable.last20Sell = []\nvariable.last200Buy = []\nvariable.last200Sell = []\n\nfor (let i = 0; i < 20; i++) {\n variable.last20Buy.push(0)\n variable.last20Sell.push(0)\n}\n\nfor (let i = 0; i < 200; i++) {\n variable.last200Buy.push(0)\n variable.last200Sell.push(0)\n}\n","project":"Superalgos","id":"82d96645-b54f-4d88-88ff-6020fd834848","savedPayload":{"position":{"x":6704.626578657695,"y":17209.44124607102},"targetPosition":{"x":6582.605585734957,"y":17483.5048833638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f1445d37-c8ee-423e-aff4-90764923bdd4","savedPayload":{"position":{"x":6582.605585734957,"y":17483.5048833638},"targetPosition":{"x":6460.584592812218,"y":17757.56852065658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e5040263-0081-47ba-8574-fa4e5be4dc38","savedPayload":{"position":{"x":6460.584592812218,"y":17757.56852065658},"targetPosition":{"x":6413.654253300148,"y":18053.87502283512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c10f698e-1ed4-48a6-9c2d-344bcba5ca35","savedPayload":{"position":{"x":6371.986165309343,"y":18241.827621666576},"targetPosition":{"x":6643.878501420339,"y":18368.613100188784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Volume Analysis","id":"77bf098c-c563-4855-9738-3443a324365c"}}}],"id":"de906bef-f516-4cd1-84ab-c75517cc767b","savedPayload":{"position":{"x":6643.8785014203395,"y":18370.613100188784},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Candle Analysis","config":"{ \n \"codeName\": \"Candle-Analysis\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{ \n \"codeName\": \"Multi-Period-Market\", \n \"normalWaitTime\": 0, \n \"retryWaitTime\": 10000, \n \"framework\": { \n \"name\": \"Multi-Period-Market\" \n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Candle Analysis","project":"Superalgos","id":"78bfdafd-e674-4142-8682-fa0ef2f47020","savedPayload":{"position":{"x":6568.9456803616595,"y":19057.69458732049},"targetPosition":{"x":6491.299966830902,"y":18767.91683943377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f65e4bf0-df3b-414c-aeba-f21dadb5d7ec"}}}],"outputDatasetFolders":[],"id":"09155964-045b-4be5-83b5-b88da97c512b","savedPayload":{"position":{"x":6491.299966830902,"y":18767.91683943377},"targetPosition":{"x":6413.654253300148,"y":18478.139091547047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candle Analysis Multi-Period-Market","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"9e330c52-e2eb-4fd8-9d98-c1321387616f","savedPayload":{"position":{"x":6398.382047014718,"y":19061.36111965391},"targetPosition":{"x":6336.008539769391,"y":18767.91683943377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"c9abb04a-1354-4042-8abf-29ede5c96b2a"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"efc41738-72c9-464c-8712-73a4f0bf349e","savedPayload":{"position":{"x":6304.650000789097,"y":19066.27340804425},"targetPosition":{"x":6336.008539769391,"y":18767.91683943377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"b0a4c404-50d2-46c9-b529-612c83b247f4","savedPayload":{"position":{"x":6213.987546846653,"y":19041.98047672655},"targetPosition":{"x":6336.008539769391,"y":18767.91683943377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Market","project":"Superalgos","id":"ebeda1d1-cecc-413f-a731-d75ea29d9f1a","savedPayload":{"position":{"x":6135.269357861733,"y":18990.860287076986},"targetPosition":{"x":6336.008539769391,"y":18767.91683943377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1"}}}],"dataMineDataDependencies":[],"id":"1cbd3575-7cb4-4e76-b49d-f3f1f3ab1b7c","savedPayload":{"position":{"x":6336.008539769391,"y":18767.91683943377},"targetPosition":{"x":6413.654253300148,"y":18478.139091547047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"c9abb04a-1354-4042-8abf-29ede5c96b2a","savedPayload":{"position":{"x":6201.522218944181,"y":18690.27112590301},"targetPosition":{"x":6413.654253300148,"y":18478.139091547047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"c384af4d-aef0-4c26-9544-b61605eef112","savedPayload":{"position":{"x":6123.876505413427,"y":18555.784805077805},"targetPosition":{"x":6413.654253300148,"y":18478.139091547047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"4c916147-c39c-4575-be84-1605d41fa7c1","savedPayload":{"position":{"x":6123.876505413427,"y":18400.49337801629},"targetPosition":{"x":6413.654253300148,"y":18478.139091547047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"73f1728c-00fb-4806-8aa6-34e5968ed332","savedPayload":{"position":{"x":6413.654253300148,"y":18478.139091547047},"targetPosition":{"x":6625.786287656112,"y":18266.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{ \n \"codeName\": \"Multi-Period-Daily\", \n \"normalWaitTime\": 0, \n \"retryWaitTime\": 10000, \n \"framework\": { \n \"name\": \"Multi-Period-Daily\" \n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Candle Analysis","project":"Superalgos","id":"44aa1ccd-3dd4-4974-8b55-327e16da25dc","savedPayload":{"position":{"x":4796.750783972486,"y":18398.318036172303},"targetPosition":{"x":4952.613763512145,"y":18236.047485519943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2127b8f1-932e-41c4-8eb9-1e0b6f02c2ec"}}}],"outputDatasetFolders":[],"id":"9aa67e23-37af-4bc0-a090-28fe6f461e78","savedPayload":{"position":{"x":5700.158545308172,"y":18442.703490343647},"targetPosition":{"x":5900.89772721583,"y":18219.76004270043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candle Analysis Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"8dbb3296-7574-44b5-8c58-32599cbb227d","savedPayload":{"position":{"x":5414.841590419626,"y":18535.40858865613},"targetPosition":{"x":5615.580772327285,"y":18312.46514101291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"8b201dc7-d8d2-4e0d-bd77-011976b2268b"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"55c1d6f7-6010-4ecd-a5e5-ea9b509b13e7","savedPayload":{"position":{"x":5363.979601943658,"y":18475.85685151742},"targetPosition":{"x":5615.580772327285,"y":18312.46514101291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"27f9c401-e899-4b3d-81ff-af7363705c48","savedPayload":{"position":{"x":5330.263817438739,"y":18405.170239325395},"targetPosition":{"x":5615.580772327285,"y":18312.46514101291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"461beea2-0f20-4473-b8b2-24c062e9f49a","savedPayload":{"position":{"x":5315.991911900914,"y":18328.165927885795},"targetPosition":{"x":5615.580772327285,"y":18312.46514101291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Daily","project":"Superalgos","id":"f1b6baf7-ebae-4b06-bc7f-58d602c95fd1","savedPayload":{"position":{"x":5322.136492107144,"y":18250.091633767584},"targetPosition":{"x":5615.580772327285,"y":18312.46514101291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e683057-f911-4105-bc77-16f2706d1915"}}}],"dataMineDataDependencies":[],"id":"d4e4d6cf-72d4-46ef-84f4-9ac7dbe11774","savedPayload":{"position":{"x":5615.580772327285,"y":18312.46514101291},"targetPosition":{"x":5900.89772721583,"y":18219.76004270043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"8b201dc7-d8d2-4e0d-bd77-011976b2268b","savedPayload":{"position":{"x":5607.453446995689,"y":18157.3865354551},"targetPosition":{"x":5900.89772721583,"y":18219.76004270043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"892b0cf6-1a29-49d5-abcd-190b30d46b19","savedPayload":{"position":{"x":5677.954279572612,"y":18019.02086079277},"targetPosition":{"x":5900.89772721583,"y":18219.76004270043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"b1ca4936-fcd6-478d-9ec0-12cf44df36bd","savedPayload":{"position":{"x":5808.192628903347,"y":17934.443087811884},"targetPosition":{"x":5900.89772721583,"y":18219.76004270043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"24386401-0992-43bd-b104-b0cc9ae58ce4","savedPayload":{"position":{"x":6325.786287656112,"y":18266.007057191084},"targetPosition":{"x":6625.786287656112,"y":18266.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Candle Analysis","config":"{ \n \"codeName\": \"Candle-Analysis\", \n \"singularVariableName\": \"candleAnalysi\", \n \"pluralVariableName\": \"candleAnalysis\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"f65e4bf0-df3b-414c-aeba-f21dadb5d7ec","savedPayload":{"position":{"x":6117.347751121608,"y":18100.80536234719},"targetPosition":{"x":6413.654253300148,"y":18053.87502283512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2127b8f1-932e-41c4-8eb9-1e0b6f02c2ec","savedPayload":{"position":{"x":6146.352296043635,"y":17917.677872913257},"targetPosition":{"x":6413.654253300148,"y":18053.87502283512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"53e79982-6059-417b-b88f-6394f60791dd","savedPayload":{"position":{"x":5343.148815609067,"y":17897.21849182892},"targetPosition":{"x":5776.253672013208,"y":17775.070289389638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e793b431-dad9-4610-9902-9359cd44e154","savedPayload":{"position":{"x":5776.253672013208,"y":17775.070289389638},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"d0cd074a-a587-4000-bc1f-28371a2fb8b6","savedPayload":{"position":{"x":5312.132928057534,"y":17723.535273105415},"targetPosition":{"x":5760.745728237442,"y":17688.228680027885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"69bcccfe-584d-4606-b871-726d66de8947","savedPayload":{"position":{"x":5760.745728237442,"y":17688.228680027885},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Open","config":"{\n \"codeName\": \"open\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.open","project":"Superalgos","id":"3fd60b2f-084c-499e-834d-5ef2213cb614","savedPayload":{"position":{"x":5315.596917157916,"y":17547.1384292383},"targetPosition":{"x":5762.477722787637,"y":17600.030258094328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4a292b21-4454-4fcd-a4f9-71e943dbed57","savedPayload":{"position":{"x":5762.477722787637,"y":17600.030258094328},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Close","config":"{\n \"codeName\": \"close\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.close","project":"Superalgos","id":"48b47283-d6a4-4a90-8738-1734c3c21de2","savedPayload":{"position":{"x":5353.407663751714,"y":17374.806792012903},"targetPosition":{"x":5781.3830960845335,"y":17513.86443948163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"40512ae6-3035-4c77-bcdc-1159fde854b5","savedPayload":{"position":{"x":5781.3830960845335,"y":17513.86443948163},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Min","config":"{\n \"codeName\": \"min\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.min","project":"Superalgos","id":"7950cf77-46f2-4fa1-934e-8d4980144bca","savedPayload":{"position":{"x":5424.112122051836,"y":17213.162969603094},"targetPosition":{"x":5816.735325234593,"y":17433.042528276725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1e360ee1-555c-4e52-b7dd-96488d8f7fce","savedPayload":{"position":{"x":5816.735325234593,"y":17433.042528276725},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Max","config":"{\n \"codeName\": \"max\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.max","project":"Superalgos","id":"ac3fc0fd-7e23-497f-ace6-f2360dbffbd4","savedPayload":{"position":{"x":5524.993159377325,"y":17068.41884345319},"targetPosition":{"x":5867.1758438973375,"y":17360.670465201772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9ab780d4-ecda-4774-a908-a09c7295a468","savedPayload":{"position":{"x":5867.1758438973375,"y":17360.670465201772},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Change","config":"{\n \"codeName\": \"change\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.change","project":"Superalgos","id":"00902197-3be2-430e-a46c-df9738714008","savedPayload":{"position":{"x":5652.173974038498,"y":16946.136849157687},"targetPosition":{"x":5930.766251227924,"y":17299.52946805402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8ffbd369-31e7-4852-b6ff-bf4a3377fda1","savedPayload":{"position":{"x":5930.766251227924,"y":17299.52946805402},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amplitude","config":"{\n \"codeName\": \"amplitude\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.amplitude","project":"Superalgos","id":"93a89ed7-89ad-4daf-86d6-53651293ab50","savedPayload":{"position":{"x":5800.767078651759,"y":16851.016215180825},"targetPosition":{"x":6005.062803534554,"y":17251.96915106559},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"39c3fed7-3a12-4972-945f-8e6fbde73a7e","savedPayload":{"position":{"x":6005.062803534554,"y":17251.96915106559},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last 24 Hs Open","config":"{\n \"codeName\": \"last24HsOpen\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.last24HsOpen","project":"Superalgos","id":"f1270a72-c9e3-4b26-a1ea-cb5c41c9cbac","savedPayload":{"position":{"x":5965.062123538784,"y":16786.712374142073},"targetPosition":{"x":6087.210325978067,"y":17219.817230546214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2023ddfc-ef12-436a-afc1-21ea85bcc15a","savedPayload":{"position":{"x":6087.210325978067,"y":17219.817230546214},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last 24 Hs Close","config":"{\n \"codeName\": \"last24HsClose\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.last24HsClose","project":"Superalgos","id":"24a0db8a-90e1-43ed-a5d4-275d8664a255","savedPayload":{"position":{"x":6138.745342262289,"y":16755.69648659054},"targetPosition":{"x":6174.051935339823,"y":17204.309286770447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7da60321-d817-47b1-b2a7-bdb0f7496f6c","savedPayload":{"position":{"x":6174.051935339823,"y":17204.309286770447},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last 24 Hs Min","config":"{\n \"codeName\": \"last24HsMin\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.last24HsMin","project":"Superalgos","id":"ed0814c8-4b46-4e10-b0f5-99feacad7d18","savedPayload":{"position":{"x":6315.142186129404,"y":16759.160475690922},"targetPosition":{"x":6262.25035727338,"y":17206.04128132064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38f2fdac-ce4b-4108-b29e-6132a0fdb2c1","savedPayload":{"position":{"x":6262.25035727338,"y":17206.04128132064},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last 24 Hs Max","config":"{\n \"codeName\": \"last24HsMax\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.last24HsMax","project":"Superalgos","id":"5dae1d3e-d141-44fa-a964-35e612fdfcba","savedPayload":{"position":{"x":6487.473823354801,"y":16796.971222284716},"targetPosition":{"x":6348.4161758860755,"y":17224.946654617535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"22d112af-2427-4977-89c4-0e473a2656c7","savedPayload":{"position":{"x":6348.4161758860755,"y":17224.946654617535},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last 24 Hs Change","config":"{\n \"codeName\": \"last24HsChange\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.last24HsChange","project":"Superalgos","id":"b4ea6ce6-2a3b-4565-8449-49e1152c51f6","savedPayload":{"position":{"x":6649.117645764611,"y":16867.675680584834},"targetPosition":{"x":6429.23808709098,"y":17260.298883767595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3a2b5bde-db5e-4bcd-8154-65be82b0d116","savedPayload":{"position":{"x":6429.23808709098,"y":17260.298883767595},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last 24 Hs Amplitude","config":"{\n \"codeName\": \"last24HsAmplitude\",\n \"isString\": false,\n \"decimals\": 2}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.last24HsAmplitude","project":"Superalgos","id":"866f1e66-8872-4818-b5ed-c288f1c7faaa","savedPayload":{"position":{"x":6793.861771914515,"y":16968.55671791033},"targetPosition":{"x":6501.610150165932,"y":17310.739402430343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"86918cd5-d63f-4949-9eae-9c6474337bb8","savedPayload":{"position":{"x":6501.610150165932,"y":17310.739402430343},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Last 24 Hs Direction","config":"{\n \"codeName\": \"last24HsDirection\",\n \"isString\": true\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.last24HsDrection\n ","project":"Superalgos","id":"910daa69-6be0-4baf-9f0b-c0f48cf05112","savedPayload":{"position":{"x":6916.143766210022,"y":17095.737532571504},"targetPosition":{"x":6562.751147313687,"y":17374.32980976093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c1fd4561-1c33-429a-9926-b940660e5500","savedPayload":{"position":{"x":6562.751147313687,"y":17374.32980976093},"targetPosition":{"x":6209.35852841735,"y":17652.922086950355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"086c529f-aacc-403d-98bb-13c0d2b784b7","savedPayload":{"position":{"x":6209.35852841735,"y":17652.922086950355},"targetPosition":{"x":6413.654253300148,"y":18053.87502283512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"\n\n\nlet candle = {\n open: record.current.open,\n close: record.current.close,\n min: record.current.min,\n max: record.current.max, \n} \n\nvariable.change = (candle.open * 100 / candle.close - 100) * (-1)\nvariable.amplitude = (candle.min * 100 / candle.max - 100) * (-1)\n\nvariable.candlesArray.splice(0, 1)\nvariable.candlesArray.push(candle)\n\nvariable.last24HsOpen = variable.candlesArray[0].open\nvariable.last24HsClose = candle.close\n\nvariable.last24HsMin = variable.candlesArray[0].min\nvariable.last24HsMax = variable.candlesArray[0].max\n\nfor (let i = 0; i < variable.candlesArray.length; i++) {\n let pastCandle = variable.candlesArray[i]\n\n if (pastCandle.min < variable.last24HsMin) {\n variable.last24HsMin = pastCandle.min\n }\n\n if (pastCandle.max > variable.last24HsMax) {\n variable.last24HsMax = pastCandle.max\n }\n}\n\nvariable.last24HsChange = (variable.last24HsOpen * 100 / variable.last24HsClose - 100) * (-1)\nvariable.last24HsAmplitude = (variable.last24HsMin * 100 / variable.last24HsMax - 100) * (-1)\n\nswitch (true) {\n case (variable.last24HsOpen === variable.last24HsClose): {\n variable.last24HsDrection = \"Side\"\n break\n }\n case (variable.last24HsOpen > variable.last24HsClose): {\n variable.last24HsDrection = \"Down\"\n break\n }\n case (variable.last24HsOpen < variable.last24HsClose): {\n variable.last24HsDrection = \"Up\"\n break\n }\n}\n\nif (isNaN(variable.change )) {variable.change = 0}\nif (isNaN(variable.amplitude )) {variable.amplitude = 0}\nif (isNaN(variable.last24HsChange )) {variable.last24HsChange = 0}\nif (isNaN(variable.last24HsAmplitude )) {variable.last24HsAmplitude = 0}","project":"Superalgos","id":"651295c0-b308-46e7-b972-06790ee03cd2","savedPayload":{"position":{"x":6397.867514851627,"y":17160.855383435617},"targetPosition":{"x":6429.226053831921,"y":17459.2119520461},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac737a8b-958d-433c-bd0c-e95b0622a89a","savedPayload":{"position":{"x":6429.226053831921,"y":17459.2119520461},"targetPosition":{"x":6460.584592812218,"y":17757.56852065658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"\n\n\nlet candlesIn24Hs = system.ONE_DAY_IN_MILISECONDS / system.timeFrame\nvariable.candlesArray = []\nlet candle = {\n open: 0,\n close: 0,\n min: 0,\n max: 0\n}\n\nfor (let i = 0; i < candlesIn24Hs; i++) {\n variable.candlesArray.push(candle)\n}\n","project":"Superalgos","id":"74f3b1ad-a2b1-4c08-a737-00c6e251a847","savedPayload":{"position":{"x":6704.626578657699,"y":17209.44124607102},"targetPosition":{"x":6582.605585734957,"y":17483.5048833638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1ba4a91d-63f2-4048-8d07-7f3aa38e200c","savedPayload":{"position":{"x":6582.605585734957,"y":17483.5048833638},"targetPosition":{"x":6460.584592812218,"y":17757.56852065658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b123c4f0-9552-4f16-935b-d6cd9e45e7ff","savedPayload":{"position":{"x":6460.584592812218,"y":17757.56852065658},"targetPosition":{"x":6413.654253300148,"y":18053.87502283512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e911b94f-c475-4400-a921-def0b207d7a3","savedPayload":{"position":{"x":6413.654253300148,"y":18053.87502283512},"targetPosition":{"x":6625.786287656112,"y":18266.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Candle Analysis","id":"7d2c7454-22ee-4d99-ab73-b47e5813a7bc"}}}],"id":"644029c0-ed66-4b57-b33c-75dff309b972","savedPayload":{"position":{"x":6625.786287656112,"y":18268.007057191084},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"plotters":[{"type":"Plotter","name":"Plotters Candles Volumes","config":"{\n\"codeName\": \"PlottersCandlesVolumes\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Candles","config":"{\n\"codeName\": \"Candles\",\n\"isLegacy\": true,\n\"icon\": \"layer-candles\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Candle","config":"{ \n\"codeName\": \"CandlePanel\" ,\n\"isLegacy\": true\n}","project":"Superalgos","panelData":[],"id":"9336f4e6-d56b-4ed4-819d-0bb762ba1fdd","savedPayload":{"position":{"x":6052.993849613016,"y":18267.589920793544},"targetPosition":{"x":6348.436175516679,"y":18215.495467493463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0aed75a3-fee8-4ddc-97ff-b6768e6f12a3","savedPayload":{"position":{"x":6348.436175516679,"y":18215.495467493463},"targetPosition":{"x":6643.878501420339,"y":18163.401014193383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Volumes","config":"{\n\"codeName\": \"Volumes\",\n\"isLegacy\": true,\n\"icon\": \"layer-volume\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Volume","config":"{ \n\"codeName\": \"VolumePanel\" ,\n\"isLegacy\": true\n}","project":"Superalgos","panelData":[],"id":"42dbd098-4550-44a0-987f-54a28dd5f40b","savedPayload":{"position":{"x":6258.205935608417,"y":17703.774348321997},"targetPosition":{"x":6451.04221851438,"y":17933.58768125769},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a6177fb7-51d1-4b7c-bcbb-04861a5bf0c1","savedPayload":{"position":{"x":6451.04221851438,"y":17933.58768125769},"targetPosition":{"x":6643.878501420339,"y":18163.401014193383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e4347543-21b5-4274-b690-e6b3b5899862","savedPayload":{"position":{"x":6643.8785014203395,"y":18165.401014193383},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Plotter","name":"Plotters Bollinger Bands","config":"{\n\"codeName\" : \"PlottersBollingerBands\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Percentage B","config":"{\n\t\"codeName\": \"Percentage Bandwidth\",\n \"icon\": \"layer-oscilator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Previous Value","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.value","project":"Superalgos","id":"ad85e84e-166f-41c7-bc08-b6a50ca4524d","savedPayload":{"position":{"x":6016.050959154461,"y":17991.870762111226},"targetPosition":{"x":6080.578308243956,"y":18084.025367093738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"534c2cd4-d020-43cf-9284-433a57fdcfce","savedPayload":{"position":{"x":6080.578308243956,"y":18084.025367093738},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Value","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.value","project":"Superalgos","id":"1e029480-c6d7-4455-9ae9-5677b99752de","savedPayload":{"position":{"x":6102.173633373724,"y":17955.313855800523},"targetPosition":{"x":6123.639645353585,"y":18065.746913938387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5b05abcc-76cf-4f9d-82e5-671ab7471678","savedPayload":{"position":{"x":6123.639645353585,"y":18065.746913938387},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Previous MA","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.movingAverage","project":"Superalgos","id":"7bafa19b-086c-41cf-b2e4-a41485841f4c","savedPayload":{"position":{"x":6195.719644560817,"y":17956.94670749957},"targetPosition":{"x":6170.412650947132,"y":18066.56333978791},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0993c95f-2054-48d8-9977-2d4eb24dabf7","savedPayload":{"position":{"x":6170.412650947132,"y":18066.56333978791},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End MA","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.movingAverage","project":"Superalgos","id":"412d8820-facc-4065-a235-d35d86c3b569","savedPayload":{"position":{"x":6280.514037542656,"y":17996.48698231561},"targetPosition":{"x":6212.8098474380495,"y":18086.33347719593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"35bdf97d-abf8-4f1e-922c-d853e6980b0c","savedPayload":{"position":{"x":6212.8098474380495,"y":18086.33347719593},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Being Previous Bandwidth","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.bandwidth * 250","project":"Superalgos","id":"cbd72abc-e6c4-44d6-bd58-1bab7c0b2960","savedPayload":{"position":{"x":6341.895091439812,"y":18067.097807520826},"targetPosition":{"x":6243.500374386629,"y":18121.638889798538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"943da81e-c0ca-4213-ba8a-5dbafd3ead18","savedPayload":{"position":{"x":6243.500374386629,"y":18121.638889798538},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bandwidth","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bandwidth * 250","project":"Superalgos","id":"6ac14886-32ee-490f-a600-4f704458f24e","savedPayload":{"position":{"x":6369.249464404089,"y":18156.56992995803},"targetPosition":{"x":6257.177560868768,"y":18166.37495101714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cdf38478-d5d4-410e-98fd-14b7b74bfd8b","savedPayload":{"position":{"x":6257.177560868768,"y":18166.37495101714},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"54cece5b-472f-4c86-b6b6-83342e2890f7","savedPayload":{"position":{"x":6357.847336843293,"y":18249.432806829107},"targetPosition":{"x":6251.47649708837,"y":18212.80638945268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e21c88b-bfb7-41dd-9cbe-678d5dc4fc54","savedPayload":{"position":{"x":6251.47649708837,"y":18212.80638945268},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"1572cfc8-0318-43b5-8405-a04cc00cbd16","savedPayload":{"position":{"x":6309.660240197762,"y":18329.62960309031},"targetPosition":{"x":6227.382948765604,"y":18252.90478758328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"75670aaa-849d-4156-af74-61a25ce49713","savedPayload":{"position":{"x":6227.382948765604,"y":18252.90478758328},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 30","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 30","project":"Superalgos","id":"6039db7e-9c71-4906-b999-3d7848989c5a","savedPayload":{"position":{"x":6233.02016124353,"y":18383.29356410305},"targetPosition":{"x":6189.062909288488,"y":18279.73676808965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ffea0ed5-39b4-4c14-b1fc-2164a6e189fd","savedPayload":{"position":{"x":6189.062909288488,"y":18279.73676808965},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 30","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 30","project":"Superalgos","id":"89393793-42d5-4dea-bca5-aee8f3349659","savedPayload":{"position":{"x":6141.17886588506,"y":18401.145703486436},"targetPosition":{"x":6143.142261609253,"y":18288.662837781343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4bc7f337-74a7-42b7-89b7-9d4edc10fca5","savedPayload":{"position":{"x":6143.142261609253,"y":18288.662837781343},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 70","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 70","project":"Superalgos","id":"c616cf49-abaf-490e-a3b7-f978442c8b4a","savedPayload":{"position":{"x":6050.0165484417885,"y":18380.099224159494},"targetPosition":{"x":6097.561102887619,"y":18278.139598117872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"827e424f-3036-4645-9246-94b4bb0ebaea","savedPayload":{"position":{"x":6097.561102887619,"y":18278.139598117872},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 70","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 70","project":"Superalgos","id":"d3003e73-9318-4282-a293-d61c0d98bd4b","savedPayload":{"position":{"x":5975.296001783321,"y":18323.793253599113},"targetPosition":{"x":6060.200829558384,"y":18249.98661283768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"84bdd434-48af-4f4a-8f14-62df15022d05","savedPayload":{"position":{"x":6060.200829558384,"y":18249.98661283768},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 100","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 100","project":"Superalgos","id":"8d13712b-3f9e-424e-b85c-e6794ce39ca9","savedPayload":{"position":{"x":5242.786689930075,"y":16154.611943473745},"targetPosition":{"x":5498.494448617992,"y":16320.670503605194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ec589261-f564-4ad0-b866-8c63b8a15150","savedPayload":{"position":{"x":6037.521372287603,"y":18209.071788857556},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 100","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 100","project":"Superalgos","id":"8c06033c-c2b7-42a7-b509-e45a1b7edf42","savedPayload":{"position":{"x":5422.085087043011,"y":15975.313546360809},"targetPosition":{"x":5588.143647174464,"y":16231.021305048725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8949ce4a-bdad-47c2-a85f-0728ed7f9746","savedPayload":{"position":{"x":6033.444215273797,"y":18162.46967094317},"targetPosition":{"x":6145.105657333446,"y":18176.17997207625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9388e24f-4147-4878-8754-b6f6b8807813","savedPayload":{"position":{"x":6145.105657333446,"y":18176.17997207625},"targetPosition":{"x":5952.2430146754705,"y":18060.29640522149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Area From 0 to 30","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","project":"Superalgos","id":"05578d4b-01e3-42fc-a4dd-b473414f467d","savedPayload":{"position":{"x":6129.3468066044115,"y":16124.194244708448},"targetPosition":{"x":5824.868111570169,"y":16140.151296954191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"14810299-01f6-443c-8bbf-de8450c9efd6","savedPayload":{"position":{"x":5824.868111570169,"y":16140.151296954191},"targetPosition":{"x":5520.389416535927,"y":16156.108349199934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 0","project":"Superalgos","id":"d8eda99d-df16-4e21-b621-6f547914c461","savedPayload":{"position":{"x":5618.470429896104,"y":16457.97066932802},"targetPosition":{"x":5520.389416535927,"y":16156.108349199934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"8e21c88b-bfb7-41dd-9cbe-678d5dc4fc54"}}},{"type":"Polygon Vertex","name":"End 0","project":"Superalgos","id":"3a844186-fa2d-45e3-9453-d11750bafb51","savedPayload":{"position":{"x":5266.455205903938,"y":16340.602352539547},"targetPosition":{"x":5520.389416535927,"y":16156.108349199934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"75670aaa-849d-4156-af74-61a25ce49713"}}},{"type":"Polygon Vertex","name":"End 30","project":"Superalgos","id":"95d52cc3-0a06-4181-bcd7-1e65b41194d8","savedPayload":{"position":{"x":5270.139808268283,"y":15974.291366176807},"targetPosition":{"x":5520.389416535927,"y":16156.108349199934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"4bc7f337-74a7-42b7-89b7-9d4edc10fca5"}}},{"type":"Polygon Vertex","name":"Begin 30","project":"Superalgos","id":"a65fe0bd-5517-45b2-ac29-16bd198653a5","savedPayload":{"position":{"x":5605.736627889641,"y":15893.4366418728},"targetPosition":{"x":5520.389416535927,"y":16156.108349199934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"ffea0ed5-39b4-4c14-b1fc-2164a6e189fd"}}}],"id":"d76f185f-5219-4f0b-adb3-9a339b0468c6","savedPayload":{"position":{"x":5996.200266630516,"y":18163.853201234888},"targetPosition":{"x":5952.2430146754705,"y":18060.29640522149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Area From 30 to 70","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","project":"Superalgos","id":"2bdd38d2-0e04-4760-a8e7-af12d8a3baa7","savedPayload":{"position":{"x":5898.560257880894,"y":16354.980793431965},"targetPosition":{"x":5642.852499192977,"y":16188.922233300516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"de6f5e6b-a281-4d29-af86-72f7a545257d","savedPayload":{"position":{"x":5642.852499192977,"y":16188.922233300516},"targetPosition":{"x":5387.14474050506,"y":16022.863673169068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 30","project":"Superalgos","id":"e9bfd52e-bc47-469f-8187-4e79d79ba866","savedPayload":{"position":{"x":5480.091675709726,"y":16308.924925479372},"targetPosition":{"x":5387.14474050506,"y":16022.863673169068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"ffea0ed5-39b4-4c14-b1fc-2164a6e189fd"}}},{"type":"Polygon Vertex","name":"End 30","project":"Superalgos","id":"f562f71b-2e79-4fa0-a9d5-e1d5c4ba12b4","savedPayload":{"position":{"x":5154.49243471105,"y":16191.895467566923},"targetPosition":{"x":5387.14474050506,"y":16022.863673169068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"4bc7f337-74a7-42b7-89b7-9d4edc10fca5"}}},{"type":"Polygon Vertex","name":"End 70","project":"Superalgos","id":"3c79161c-e899-4147-bd75-21805b23f76f","savedPayload":{"position":{"x":5139.533478681649,"y":15842.96356104129},"targetPosition":{"x":5387.14474050506,"y":16022.863673169068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"84bdd434-48af-4f4a-8f14-62df15022d05"}}},{"type":"Polygon Vertex","name":"Begin 70","project":"Superalgos","id":"4cd041c2-e445-46eb-99bf-c3ceee94f101","savedPayload":{"position":{"x":5479.761807982864,"y":15737.817649331171},"targetPosition":{"x":5387.14474050506,"y":16022.863673169068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"827e424f-3036-4645-9246-94b4bb0ebaea"}}}],"id":"1a7969dd-af18-4e44-b4c9-96dd2be57f7c","savedPayload":{"position":{"x":5926.936021061785,"y":18169.91303750983},"targetPosition":{"x":5952.2430146754705,"y":18060.29640522149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Area From 70 to 100","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","project":"Superalgos","id":"b34d9e0e-ed4a-4b99-8e29-b7ed66a3658e","savedPayload":{"position":{"x":5576.197088123266,"y":16406.038103655275},"targetPosition":{"x":5466.9319384134,"y":16121.392656993976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2c35b477-500f-4c85-867f-630e2105278f","savedPayload":{"position":{"x":5466.9319384134,"y":16121.392656993976},"targetPosition":{"x":5357.666788703533,"y":15836.747210332678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 70","project":"Superalgos","id":"1777fb76-c1e2-415d-a517-2e365401490c","savedPayload":{"position":{"x":5452.801576695787,"y":16129.54198114909},"targetPosition":{"x":5357.666788703533,"y":15836.747210332678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"827e424f-3036-4645-9246-94b4bb0ebaea"}}},{"type":"Polygon Vertex","name":"End 70","project":"Superalgos","id":"4652d8cf-d922-44a3-b8cf-c6d329883ca0","savedPayload":{"position":{"x":5125.892714594986,"y":16005.140932061604},"targetPosition":{"x":5357.666788703533,"y":15836.747210332678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"84bdd434-48af-4f4a-8f14-62df15022d05"}}},{"type":"Polygon Vertex","name":"End 100","project":"Superalgos","id":"ef3e750e-8380-40a2-830b-3f364960e44e","savedPayload":{"position":{"x":5106.83726678415,"y":15654.508895378991},"targetPosition":{"x":5357.666788703533,"y":15836.747210332678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 100","id":"8949ce4a-bdad-47c2-a85f-0728ed7f9746"}}},{"type":"Polygon Vertex","name":"Begin 100","project":"Superalgos","id":"c8905f10-3c25-4fec-978a-ef356c0ad395","savedPayload":{"position":{"x":5454.998164274421,"y":15537.192038087547},"targetPosition":{"x":5357.666788703533,"y":15836.747210332678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 100","id":"ec589261-f564-4ad0-b866-8c63b8a15150"}}}],"id":"cb1bcd11-0fb0-4377-bff2-dee4630e0f3f","savedPayload":{"position":{"x":5867.3381869004115,"y":18134.10304598292},"targetPosition":{"x":5952.2430146754705,"y":18060.29640522149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 30","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","project":"Superalgos","id":"3f69a3f7-af79-47a2-9e0b-17524fc986d8","savedPayload":{"position":{"x":5012.026307524979,"y":16100.037952904186},"targetPosition":{"x":5227.62072216289,"y":15884.443538266274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"30e98617-1cfd-4fa7-814c-a5898caac0da","savedPayload":{"position":{"x":5227.62072216289,"y":15884.443538266274},"targetPosition":{"x":5443.215136800805,"y":15668.84912362836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 30","project":"Superalgos","id":"2f5d4ab1-0d70-4baa-988a-2b7077e7b1e6","savedPayload":{"position":{"x":5285.868425154484,"y":15941.38162260368},"targetPosition":{"x":5443.215136800805,"y":15668.84912362836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"ffea0ed5-39b4-4c14-b1fc-2164a6e189fd"}}},{"type":"Polygon Vertex","name":"End 30","project":"Superalgos","id":"b23626ca-e521-4fad-9a8b-8c9f30711de7","savedPayload":{"position":{"x":5301.501161436576,"y":15423.393318154947},"targetPosition":{"x":5443.215136800805,"y":15668.84912362836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"4bc7f337-74a7-42b7-89b7-9d4edc10fca5"}}}],"id":"857043cc-f467-44d2-89eb-2e73f35f638d","savedPayload":{"position":{"x":5840.171111140149,"y":18070.1014262806},"targetPosition":{"x":5952.2430146754705,"y":18060.29640522149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 30","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","project":"Superalgos","id":"9e67e8dc-0a07-4d57-be52-6023ff9087da","savedPayload":{"position":{"x":5008.827698034755,"y":15678.693431398286},"targetPosition":{"x":5309.970460769935,"y":15630.997103464688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"767e0eba-ad98-49a9-a08d-58b5ebfaf655","savedPayload":{"position":{"x":5309.970460769935,"y":15630.997103464688},"targetPosition":{"x":5611.113223505123,"y":15583.30077553109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End 70","project":"Superalgos","id":"9bed0cf3-56c3-4508-88c8-5dede6e574df","savedPayload":{"position":{"x":5454.696420750759,"y":15854.222625059125},"targetPosition":{"x":5611.113223505123,"y":15583.30077553109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"84bdd434-48af-4f4a-8f14-62df15022d05"}}},{"type":"Polygon Vertex","name":"Begin 70","project":"Superalgos","id":"1ce29315-82a5-4b62-8e85-be087a037d73","savedPayload":{"position":{"x":5454.392606746398,"y":15311.852704711451},"targetPosition":{"x":5611.113223505123,"y":15583.30077553109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"827e424f-3036-4645-9246-94b4bb0ebaea"}}}],"id":"984a1917-1d81-4142-a50f-269a18a07c9d","savedPayload":{"position":{"x":5855.811693346484,"y":18002.354621794108},"targetPosition":{"x":5952.2430146754705,"y":18060.29640522149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Bandwidth","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 2,\n \"lineDash\": [2,2],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n }\n}","project":"Superalgos","id":"ccb32f55-1b5e-4813-b614-0581593434a7","savedPayload":{"position":{"x":5253.90006447419,"y":15335.93845752703},"targetPosition":{"x":5525.56487540785,"y":15474.358592429822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"57a26967-b019-4352-9d9d-cc10668837c4","savedPayload":{"position":{"x":5525.56487540785,"y":15474.358592429822},"targetPosition":{"x":5797.22968634151,"y":15612.778727332614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Being Previous Bandwidth","project":"Superalgos","id":"0d8a9c6b-b0e6-4ce1-b1ad-71bd2a506a55","savedPayload":{"position":{"x":5661.504374279899,"y":15847.861863696471},"targetPosition":{"x":5797.22968634151,"y":15612.778727332614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Being Previous Bandwidth","id":"943da81e-c0ca-4213-ba8a-5dbafd3ead18"}}},{"type":"Polygon Vertex","name":"End Bandwidth","project":"Superalgos","id":"38f87d68-5678-46bd-9e26-45b8a8ee75f1","savedPayload":{"position":{"x":5653.4526844203065,"y":15363.749655045161},"targetPosition":{"x":5797.22968634151,"y":15612.778727332614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bandwidth","id":"cdf38478-d5d4-410e-98fd-14b7b74bfd8b"}}}],"id":"0f7a4004-177c-4412-b0ef-2608f3c13da6","savedPayload":{"position":{"x":5908.2857627204285,"y":17956.73960920809},"targetPosition":{"x":5952.2430146754705,"y":18060.29640522149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Value","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.85,\n \"lineWidth\": 2.25,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"6e43dca6-e750-49ff-b025-2a76185e5914","savedPayload":{"position":{"x":5653.634092566794,"y":15202.69378149616},"targetPosition":{"x":5792.054227469587,"y":15474.35859242982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"56c0efd0-d13a-4c29-98f2-d27cb6071099","savedPayload":{"position":{"x":5792.054227469587,"y":15474.35859242982},"targetPosition":{"x":5930.474362372381,"y":15746.02340336348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Previous Value","project":"Superalgos","id":"68e8f2a3-54ee-4fb7-abd2-add6496c08e0","savedPayload":{"position":{"x":5774.809182828645,"y":16015.643403302554},"targetPosition":{"x":5930.474362372381,"y":15746.02340336348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Previous Value","id":"534c2cd4-d020-43cf-9284-433a57fdcfce"}}},{"type":"Polygon Vertex","name":"End Value","project":"Superalgos","id":"a01aa765-6bd5-49d7-afbe-44d543191f76","savedPayload":{"position":{"x":5771.951825878223,"y":15471.454316010906},"targetPosition":{"x":5930.474362372381,"y":15746.02340336348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Value","id":"5b05abcc-76cf-4f9d-82e5-671ab7471678"}}}],"id":"4598a671-83b9-4460-9e65-175df73eba71","savedPayload":{"position":{"x":5977.550008289156,"y":17950.67977293315},"targetPosition":{"x":5952.2430146754705,"y":18060.29640522149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Moving Average","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.55,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"544bf8f4-dfd5-4cd7-aba3-a47f6b477da8","savedPayload":{"position":{"x":5770.699523379797,"y":15439.119490439365},"targetPosition":{"x":6007.648642107499,"y":15630.997103464686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.previous.movingAverage > record.movingAverage","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"opacity\": 0.55,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n}","project":"Superalgos","id":"c89114e1-7181-4091-8c2d-0301a8b00478","savedPayload":{"position":{"x":6576.939535430094,"y":15412.466804044956},"targetPosition":{"x":6292.294088768798,"y":15521.731953754821},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"12891c27-2ec5-4a56-892e-1d29a277d5da","savedPayload":{"position":{"x":6292.294088768798,"y":15521.731953754821},"targetPosition":{"x":6007.648642107499,"y":15630.997103464686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c9847967-ecf5-4f6a-9fe7-2759ca4795b6","savedPayload":{"position":{"x":6007.648642107499,"y":15630.997103464686},"targetPosition":{"x":5959.952314173901,"y":15932.13986619987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"a"}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Previous MA","project":"Superalgos","id":"81660820-6035-481b-a909-9e89e145d61f","savedPayload":{"position":{"x":5806.271775720972,"y":16198.322366934888},"targetPosition":{"x":5959.952314173901,"y":15932.13986619987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Previous MA","id":"0993c95f-2054-48d8-9977-2d4eb24dabf7"}}},{"type":"Polygon Vertex","name":"End MA","project":"Superalgos","id":"2d18f4cf-e5d4-4bde-9a69-85b87c410125","savedPayload":{"position":{"x":5800.791215457488,"y":15656.464756634556},"targetPosition":{"x":5959.952314173901,"y":15932.13986619987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End MA","id":"35bdf97d-abf8-4f1e-922c-d853e6980b0c"}}}],"id":"69c19382-ed5b-48d1-9249-426a8e1e4e51","savedPayload":{"position":{"x":6037.147842450533,"y":17986.489764460057},"targetPosition":{"x":5952.2430146754705,"y":18060.29640522149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"da344cd9-3c37-449a-b5be-6c65814f8562","savedPayload":{"position":{"x":5952.2430146754705,"y":18060.29640522149},"targetPosition":{"x":6400.530628816756,"y":18021.07632098504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"%B Panel","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"%B Value","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.value","project":"Superalgos","id":"c6ca5acc-cc3d-4802-8627-d3461747e731","savedPayload":{"position":{"x":5545.833050817808,"y":17751.679307067127},"targetPosition":{"x":5837.235671761784,"y":17822.98507476498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d34065b9-ce7c-4971-8270-d0819da6b188","savedPayload":{"position":{"x":5837.235671761784,"y":17822.98507476498},"targetPosition":{"x":6128.63829270576,"y":17894.290842462833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Bandwidth","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.bandwidth","project":"Superalgos","id":"5193f538-5133-4561-a9e4-939cfa4d9af9","savedPayload":{"position":{"x":5584.853620483773,"y":17640.719885418417},"targetPosition":{"x":5856.745956594768,"y":17767.505363940625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ba215bbb-99c2-4433-83f8-47f2b00ee378","savedPayload":{"position":{"x":5856.745956594768,"y":17767.505363940625},"targetPosition":{"x":6128.63829270576,"y":17894.290842462833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Moving Average","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.movingAverage","project":"Superalgos","id":"d721b3b0-ffe7-459f-b146-954073605f0e","savedPayload":{"position":{"x":5644.771530145274,"y":17539.505053444685},"targetPosition":{"x":5886.704911425517,"y":17716.89794795376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8705ee2c-1bd8-4e90-b841-d2864f83f14b","savedPayload":{"position":{"x":5886.704911425517,"y":17716.89794795376},"targetPosition":{"x":6128.63829270576,"y":17894.290842462833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"36548f31-d96c-4c80-b923-dea5dd5b56c7","savedPayload":{"position":{"x":6128.63829270576,"y":17894.290842462833},"targetPosition":{"x":6400.530628816756,"y":18021.07632098504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"06b2f3f6-b138-415f-8974-31c22a930f92","savedPayload":{"position":{"x":6400.530628816756,"y":18021.07632098504},"targetPosition":{"x":6695.972954720419,"y":18073.17077428512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Bollinger Bands","config":"{\n\"codeName\": \"BollingerBands\",\n\"isLegacy\": true,\n\"icon\": \"layer-bands\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Bollinger Band","config":"{ \n\"codeName\": \"BollingerBandsPanel\" ,\n\"isLegacy\": true\n}","project":"Superalgos","panelData":[],"id":"de7b7008-6f66-4d7d-96dd-1aa7b1ede335","savedPayload":{"position":{"x":6490.760868725018,"y":17509.355201813574},"targetPosition":{"x":6593.366911722718,"y":17791.262988049348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a11bfdf8-595c-4b50-b259-6a9f777d0ea8","savedPayload":{"position":{"x":6593.366911722718,"y":17791.262988049348},"targetPosition":{"x":6695.972954720419,"y":18073.17077428512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"abd0f050-2f42-4c50-81a9-ffb0d6442cef","savedPayload":{"position":{"x":6695.972954720419,"y":18075.17077428512},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Plotters Bollinger Channels","config":"{\n\"codeName\" : \"Plotter Bollinger Channels\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Bollinger Channels Objects","config":"{\n\"codeName\": \"Bollinger-Channels-Objects\",\n \"icon\": \"layer-trends\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"New Point","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.firstMovingAverage - record.firstDeviation","project":"Superalgos","id":"8117b381-e9c7-41e3-8a51-ed49a1ca6868","savedPayload":{"position":{"x":5674.648296858839,"y":17941.629463526573},"targetPosition":{"x":5810.036089511315,"y":17877.05279900533},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9be61e7d-ae1e-4b39-9ebf-27285a5a67a9","savedPayload":{"position":{"x":5810.036089511315,"y":17877.05279900533},"targetPosition":{"x":5945.4238821637955,"y":17812.476134484088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"New Point","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.lastMovingAverage - record.lastDeviation","project":"Superalgos","id":"69cb3498-4e18-458a-b48e-e65c98b183be","savedPayload":{"position":{"x":5657.7779617033375,"y":17897.680737895265},"targetPosition":{"x":5801.600921933568,"y":17855.078436189677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f87b3204-8901-4774-afcb-b4e5394e255d","savedPayload":{"position":{"x":5801.600921933568,"y":17855.078436189677},"targetPosition":{"x":5945.4238821637955,"y":17812.476134484088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"New Point","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.lastMovingAverage + record.lastDeviation","project":"Superalgos","id":"4c7b46d8-f76b-4039-af87-345c3f72a0a4","savedPayload":{"position":{"x":5647.990423751653,"y":17851.633992150106},"targetPosition":{"x":5796.707152957726,"y":17832.055063317097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5ce82101-6f77-4f54-bef5-d97edae6d44b","savedPayload":{"position":{"x":5796.707152957726,"y":17832.055063317097},"targetPosition":{"x":5945.4238821637955,"y":17812.476134484088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"New Point","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.firstMovingAverage + record.lastDeviation","project":"Superalgos","id":"89e5dbc2-33ed-42b9-9b9b-376097e04aff","savedPayload":{"position":{"x":5645.526684671127,"y":17804.62304999173},"targetPosition":{"x":5795.4752834174615,"y":17808.54959223791},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"45dbe6c3-9433-4b6d-8aa5-691cf6eba8a1","savedPayload":{"position":{"x":5795.4752834174615,"y":17808.54959223791},"targetPosition":{"x":5945.4238821637955,"y":17812.476134484088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"703b0e1b-e2d6-457a-95d6-7b6516b2f772","savedPayload":{"position":{"x":5945.4238821637955,"y":17812.476134484088},"targetPosition":{"x":6238.86816238394,"y":17750.10262723876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"09105647-a665-4fb4-910d-49bcf90eb91e","savedPayload":{"position":{"x":5449.578761483586,"y":17440.699429100387},"targetPosition":{"x":5749.545192026668,"y":17445.187251204967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Side'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.LIGHT\"\n}","project":"Superalgos","id":"ad17706f-09f0-4424-b5f3-b66fb2c76160","savedPayload":{"position":{"x":5155.916396394849,"y":17357.98144293102},"targetPosition":{"x":5452.730794210758,"y":17401.584347067994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3975ecc2-db5b-4cab-a9ab-9e13b2da3015","savedPayload":{"position":{"x":5452.730794210758,"y":17401.584347067994},"targetPosition":{"x":5749.545192026668,"y":17445.187251204967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Up'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR. GREEN\"\n}","project":"Superalgos","id":"0b263642-8fc7-4fdc-a915-9480c8493e68","savedPayload":{"position":{"x":5172.377615127447,"y":17281.243394423815},"targetPosition":{"x":5460.961403577057,"y":17363.21532281439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e218ed70-9da7-43c5-9c23-9e010e08b5b5","savedPayload":{"position":{"x":5460.961403577057,"y":17363.21532281439},"targetPosition":{"x":5749.545192026668,"y":17445.187251204967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Down'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","project":"Superalgos","id":"ce3abe3f-eb38-4e0f-94bb-9c397ed78f49","savedPayload":{"position":{"x":5198.7143311218715,"y":17207.310470759963},"targetPosition":{"x":5474.12976157427,"y":17326.248860982465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"251d5031-13f9-493b-aa35-126f5221bb21","savedPayload":{"position":{"x":5474.12976157427,"y":17326.248860982465},"targetPosition":{"x":5749.545192026668,"y":17445.187251204967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"atMousePosition === true","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.1\n}","project":"Superalgos","id":"2ea26fbc-74c5-4fb5-b64f-c4c7b289003c","savedPayload":{"position":{"x":5234.475915865551,"y":17137.44768476142},"targetPosition":{"x":5492.010553946111,"y":17291.317467983194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8a0f9c00-67be-47fa-9cde-ec6c499c9bec","savedPayload":{"position":{"x":5492.010553946111,"y":17291.317467983194},"targetPosition":{"x":5749.545192026668,"y":17445.187251204967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f2d2ac14-9859-4228-81d9-280c639c1b37","savedPayload":{"position":{"x":5749.545192026668,"y":17445.187251204967},"targetPosition":{"x":6038.128980476282,"y":17527.159179595543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"d85d9603-7ff2-4d45-aa58-9b8ebe23a65f","savedPayload":{"position":{"x":5630.278396358055,"y":17343.66205735595},"targetPosition":{"x":5775.021060177252,"y":17383.02652446174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Side'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK\"\n}","project":"Superalgos","id":"d09de0b4-f477-42e9-a944-6bde9a9a68dd","savedPayload":{"position":{"x":5501.415696002023,"y":17259.98139170737},"targetPosition":{"x":5638.218378089634,"y":17321.503958084555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08167019-4685-45ca-8572-74706f2fb971","savedPayload":{"position":{"x":5638.218378089634,"y":17321.503958084555},"targetPosition":{"x":5775.021060177252,"y":17383.02652446174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Up'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n}","project":"Superalgos","id":"ebab2c53-c230-4622-a5d1-a3e0bd1d4139","savedPayload":{"position":{"x":5524.032731575324,"y":17218.69497269638},"targetPosition":{"x":5649.526895876286,"y":17300.86074857906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5b721945-b84b-4e19-a7db-777bc1c1fee1","savedPayload":{"position":{"x":5649.526895876286,"y":17300.86074857906},"targetPosition":{"x":5775.021060177252,"y":17383.02652446174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Down'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","project":"Superalgos","id":"8bef9d11-9184-420e-a841-97a19f6a160b","savedPayload":{"position":{"x":5552.829932781311,"y":17181.454941875003},"targetPosition":{"x":5663.925496479282,"y":17282.24073316837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a530140d-d0bb-4989-8ca8-d9846adbc91d","savedPayload":{"position":{"x":5663.925496479282,"y":17282.24073316837},"targetPosition":{"x":5775.021060177252,"y":17383.02652446174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"add24099-1310-4e86-99fc-9db01a272b6e","savedPayload":{"position":{"x":5775.021060177252,"y":17383.02652446174},"targetPosition":{"x":6038.128980476282,"y":17527.159179595543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Point","project":"Superalgos","id":"7be4c16d-772a-4750-9735-09d3d9e16037","savedPayload":{"position":{"x":5813.690258094623,"y":17328.09321089248},"targetPosition":{"x":6038.128980476282,"y":17527.159179595543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"New Point","id":"9be61e7d-ae1e-4b39-9ebf-27285a5a67a9"}}},{"type":"Polygon Vertex","name":"New Point","project":"Superalgos","id":"1a592de1-eb28-41eb-8ddb-b22e5034be53","savedPayload":{"position":{"x":5863.613750726701,"y":17283.141896221085},"targetPosition":{"x":6038.128980476282,"y":17527.159179595543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"New Point","id":"f87b3204-8901-4774-afcb-b4e5394e255d"}}},{"type":"Polygon Vertex","name":"New Point","project":"Superalgos","id":"e90a30b1-cd5d-4331-bf74-7cfd4242db34","savedPayload":{"position":{"x":5922.288165690556,"y":17250.426627065524},"targetPosition":{"x":6038.128980476282,"y":17527.159179595543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"New Point","id":"5ce82101-6f77-4f54-bef5-d97edae6d44b"}}},{"type":"Polygon Vertex","name":"New Point","project":"Superalgos","id":"ae4311e5-a02d-46d7-a41c-79e6945f9f21","savedPayload":{"position":{"x":5986.7713228168905,"y":17231.587883628326},"targetPosition":{"x":6038.128980476282,"y":17527.159179595543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"New Point","id":"45dbe6c3-9433-4b6d-8aa5-691cf6eba8a1"}}}],"id":"6e21446c-93e7-44ad-814d-3cd2fa8f8baf","savedPayload":{"position":{"x":6038.128980476282,"y":17527.159179595543},"targetPosition":{"x":6238.86816238394,"y":17750.10262723876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"0b08f6f6-2317-42fb-ab3a-db8957d76dfa","savedPayload":{"position":{"x":6238.86816238394,"y":17750.10262723876},"targetPosition":{"x":6524.1851172724855,"y":17842.807725551243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"o"}}},"panels":[{"type":"Plotter Panel","name":"Bollinger Channels Objects","config":"{ \n\"codeName\": \"Bollinger Channels Objects\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Direction","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.direction","project":"Superalgos","id":"479f9520-4cad-4fe3-a2fc-c7f48d93344d","savedPayload":{"position":{"x":6090.050828740528,"y":17530.272290521698},"targetPosition":{"x":6183.408871390246,"y":17566.10908547623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"24fefe09-fa8d-4904-9c6c-9c775d3866d0","savedPayload":{"position":{"x":6183.408871390246,"y":17566.10908547623},"targetPosition":{"x":6323.445935364827,"y":17619.864277908026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Total Periods","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","project":"Superalgos","id":"69b5e792-b174-4046-9219-786da4601f58","savedPayload":{"position":{"x":6129.159445000583,"y":17462.534180145565},"targetPosition":{"x":6206.874041146282,"y":17525.46621925055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e79b5734-072e-4432-91d5-8f41eef59b26","savedPayload":{"position":{"x":6206.874041146282,"y":17525.46621925055},"targetPosition":{"x":6323.445935364827,"y":17619.864277908026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"First Moving Average","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.firstMovingAverage","project":"Superalgos","id":"b6818aef-a3dc-4d78-9684-46f1ddbf234a","savedPayload":{"position":{"x":6187.286176611069,"y":17410.19663592167},"targetPosition":{"x":6241.750080112575,"y":17494.063692716212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"75fe02cd-776b-45cb-a965-ecbfac163ad4","savedPayload":{"position":{"x":6241.750080112575,"y":17494.063692716212},"targetPosition":{"x":6323.445935364827,"y":17619.864277908026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Last Moving Average","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.lastMovingAverage","project":"Superalgos","id":"25d5ce35-768a-4f5b-b541-65dfdcf77414","savedPayload":{"position":{"x":6258.7411740891985,"y":17378.38282133576},"targetPosition":{"x":6284.6230785994485,"y":17474.975403964665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c5af78de-d153-4002-b6df-79a1fd009100","savedPayload":{"position":{"x":6284.6230785994485,"y":17474.975403964665},"targetPosition":{"x":6323.445935364827,"y":17619.864277908026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"09c8f781-3e54-4bed-bd9a-83e8179fdd66","savedPayload":{"position":{"x":6323.445935364827,"y":17619.864277908026},"targetPosition":{"x":6524.1851172724855,"y":17842.807725551243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"52881346-3e4b-45e0-92d2-af130d381b8e","savedPayload":{"position":{"x":6524.1851172724855,"y":17842.807725551243},"targetPosition":{"x":6775.786287656112,"y":18006.19943605575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Bollinger Sub Channels Objects","config":"{\n\"codeName\": \"Bollinger-Sub-Channels-Objects\",\n\"icon\": \"layer-trends\"\n}","project":"Superalgos","plotterModuleJavascriptCode":{"type":"Plotter Module Javascript Code","code":"/* Definition of the points we are going to use while drawing */\nlet point1\nlet point2\nlet point3\nlet point4\n\npoint1 = {\n x: record.begin,\n y: record.firstMovingAverage - record.firstDeviation\n}\n\npoint2 = {\n x: record.end,\n y: record.lastMovingAverage - record.lastDeviation\n}\n\npoint3 = {\n x: record.end,\n y: record.lastMovingAverage + record.lastDeviation\n}\n\npoint4 = {\n x: record.begin,\n y: record.firstMovingAverage + record.firstDeviation\n}\n\n/* Contributing to Auto-Scale*/\ncoordinateSystem.reportYValue(record.firstMovingAverage - record.firstDeviation)\ncoordinateSystem.reportYValue(record.lastMovingAverage - record.lastDeviation)\ncoordinateSystem.reportYValue(record.lastMovingAverage + record.lastDeviation)\ncoordinateSystem.reportYValue(record.firstMovingAverage + record.firstDeviation)\n\n/*\nThe information we store in files is independent from the charing system and its coordinate systems.\nThat means that the first thing we allways need to do is to trasform these points to the coordinate system of the timeline.\n*/\npoint1 = coordinateSystem.transformThisPoint(point1)\npoint2 = coordinateSystem.transformThisPoint(point2)\npoint3 = coordinateSystem.transformThisPoint(point3)\npoint4 = coordinateSystem.transformThisPoint(point4)\n\n/*\nThe browser canvas object does not care about our timeline and its coordinate system. In order to draw on a html canvas we\nneed the points to be converted into the canvas coordinate system.\nNext we transform again to the screen coordinate system.\n*/\npoint1 = UI.projects.superalgos.utilities.coordinateTransformations.transformThisPoint(point1, thisObject.container)\npoint2 = UI.projects.superalgos.utilities.coordinateTransformations.transformThisPoint(point2, thisObject.container)\npoint3 = UI.projects.superalgos.utilities.coordinateTransformations.transformThisPoint(point3, thisObject.container)\npoint4 = UI.projects.superalgos.utilities.coordinateTransformations.transformThisPoint(point4, thisObject.container)\n\n/* We make sure the points do not fall outside the UI.projects.superalgos.spaces.chartingSpace.viewport visible area. This step allways need to be done. */\npoint1 = UI.projects.superalgos.spaces.chartingSpace.viewport.fitIntoVisibleArea(point1)\npoint2 = UI.projects.superalgos.spaces.chartingSpace.viewport.fitIntoVisibleArea(point2)\npoint3 = UI.projects.superalgos.spaces.chartingSpace.viewport.fitIntoVisibleArea(point3)\npoint4 = UI.projects.superalgos.spaces.chartingSpace.viewport.fitIntoVisibleArea(point4)\n\npoint1 = thisObject.fitFunction(point1);\npoint2 = thisObject.fitFunction(point2);\npoint3 = thisObject.fitFunction(point3);\npoint4 = thisObject.fitFunction(point4);\n\n/*\nNow that we have our 4 points as coordinates of the actual screen (or html canvas object), we can actaully start drawing.\nFirst we are going to draw the shape backgound.\n*/\nbrowserCanvasContext.beginPath()\n\nbrowserCanvasContext.moveTo(point1.x, point1.y)\nbrowserCanvasContext.lineTo(point2.x, point2.y)\nbrowserCanvasContext.lineTo(point3.x, point3.y)\nbrowserCanvasContext.lineTo(point4.x, point4.y)\n\nbrowserCanvasContext.closePath()\n\nlet opacity = '0.25' // The backgound will be quite transparent. Possible values goes from 0..1\n\n/* Depending on the direction of the channel, we use a different color for the border lines. */\nif (record.direction === 'Side') { browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.DARK + ', ' + opacity + ')' }\nif (record.direction === 'Up') { browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.PATINATED_TURQUOISE + ', ' + opacity + ')' }\nif (record.direction === 'Down') { browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.RED + ', ' + opacity + ')' }\n\nswitch (record.slope) {\n case 'Side': {\n opacity = '0.1';\n break;\n }\n case 'Gentle': {\n opacity = '0.1';\n break;\n }\n case 'Medium': {\n opacity = '0.15';\n break;\n }\n case 'Steep': {\n opacity = '0.2';\n break;\n }\n case 'Extreme': {\n opacity = '0.25';\n break;\n }\n}\n\n/* Depending on the direction of the channel, we use a different color for the background. */\nif (record.direction === 'Side' || record.slope === 'Side') { browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.LIGHT + ', ' + opacity + ')'; }\nif (record.direction === 'Up') { browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.GREEN + ', ' + opacity + ')' }\nif (record.direction === 'Down') { browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.RUSTED_RED + ', ' + opacity + ')' }\n\n/* If the mouse is positioned in betwheen the begining and ending of our object, we can opt for changing the color of that specific object. */\nif (atMousePosition) {\n browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', 0.1)'\n}\n\nbrowserCanvasContext.fill() // This is what actually apply the previous instructions on the html canvas object of the browser.\n\n/* Second we are going to draw the shape borders. */\nbrowserCanvasContext.beginPath()\n\nbrowserCanvasContext.moveTo(point1.x, point1.y)\nbrowserCanvasContext.lineTo(point2.x, point2.y)\nbrowserCanvasContext.lineTo(point3.x, point3.y)\nbrowserCanvasContext.lineTo(point4.x, point4.y)\n\nbrowserCanvasContext.closePath()\n\nbrowserCanvasContext.lineWidth = 1 // We use 1 as standard line width\nbrowserCanvasContext.setLineDash([0, 0]) // We do not want dashed lines in this case.\nbrowserCanvasContext.stroke() // This actually draw the borders of our shape.","project":"Superalgos","id":"63406674-a797-430a-96c7-e5bcacb286bc","savedPayload":{"position":{"x":6344.285072028677,"y":17596.72007193092},"targetPosition":{"x":6586.99017034116,"y":17773.05564761866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"panels":[{"type":"Plotter Panel","name":"Bollinger Sub Channels Objects","config":"{ \n\"codeName\": \"Bollinger Sub Channels Objects\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Direction","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.direction","project":"Superalgos","id":"f1793208-a0a5-49a5-a21c-88f848563433","savedPayload":{"position":{"x":6262.714928824684,"y":17352.04569725276},"targetPosition":{"x":6343.616628262178,"y":17410.82422248201},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"029cc150-77ee-44eb-b52b-4c83f0d79e6a","savedPayload":{"position":{"x":6343.616628262178,"y":17410.82422248201},"targetPosition":{"x":6464.969177418421,"y":17498.99201032588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Total Periods","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","project":"Superalgos","id":"f09cfc38-2f4e-4f5f-b6fe-3f8255657081","savedPayload":{"position":{"x":6307.639079655961,"y":17304.70551996164},"targetPosition":{"x":6370.571118760945,"y":17382.420116107336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6020f40d-2141-4f21-b4ae-3a4f32073eda","savedPayload":{"position":{"x":6370.571118760945,"y":17382.420116107336},"targetPosition":{"x":6464.969177418421,"y":17498.99201032588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"First Moving Average","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.firstMovingAverage","project":"Superalgos","id":"be429ff9-1656-4db6-8ddb-758ca900d6f0","savedPayload":{"position":{"x":6363.285016649472,"y":17270.605645915228},"targetPosition":{"x":6403.95868095705,"y":17361.96019167949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ab7f25ee-dad0-4b3e-80b1-a9fcffde8424","savedPayload":{"position":{"x":6403.95868095705,"y":17361.96019167949},"targetPosition":{"x":6464.969177418421,"y":17498.99201032588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Last Moving Average","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.lastMovingAverage","project":"Superalgos","id":"5501c8e2-7406-453a-9cae-75f8628e321f","savedPayload":{"position":{"x":6425.8605611583625,"y":17252.069925177097},"targetPosition":{"x":6441.5040076623845,"y":17350.83875923661},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e0df05de-65cf-45da-a0b5-ee6ce21b4ed8","savedPayload":{"position":{"x":6441.5040076623845,"y":17350.83875923661},"targetPosition":{"x":6464.969177418421,"y":17498.99201032588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Slope","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.slope","project":"Superalgos","id":"567bc3e1-3a15-43f1-9bf4-625c7ad1cad8","savedPayload":{"position":{"x":6491.101293235333,"y":17250.36153648381},"targetPosition":{"x":6480.648446908566,"y":17349.81372602064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c6f2ce73-44ac-4515-bcc3-b394fa3a66e4","savedPayload":{"position":{"x":6480.648446908566,"y":17349.81372602064},"targetPosition":{"x":6464.969177418421,"y":17498.99201032588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8ce4c7ca-3496-4df8-9d57-335d40cc77a0","savedPayload":{"position":{"x":6464.969177418421,"y":17498.99201032588},"targetPosition":{"x":6586.99017034116,"y":17773.05564761866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f8c4b699-1f40-4832-b427-68da3341daa8","savedPayload":{"position":{"x":6586.99017034116,"y":17773.05564761866},"targetPosition":{"x":6775.786287656112,"y":18006.19943605575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"x"}}},{"type":"Plotter Module","name":"Bollinger Channels","config":"{\n\"codeName\": \"Bollinger-Channels\",\n \"icon\": \"layer-trends\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Bollinger Channels","config":"{ \n\"codeName\": \"Bollinger Channels\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Direction","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.direction","project":"Superalgos","id":"f1bb6cde-263f-4582-aeef-8e0bed99d53f","savedPayload":{"position":{"x":6413.819204855816,"y":17243.796931563695},"targetPosition":{"x":6472.597730085061,"y":17324.69863100119},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b7afdb03-dc66-4f9a-b3c7-e8886521b7cc","savedPayload":{"position":{"x":6472.597730085061,"y":17324.69863100119},"targetPosition":{"x":6560.765517928932,"y":17446.051180157432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","project":"Superalgos","id":"991dd9e3-c5d0-4a61-953a-81b3ee218695","savedPayload":{"position":{"x":6534.63340211202,"y":17197.420706315363},"targetPosition":{"x":6545.0862484387835,"y":17296.87289585219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1fbd683b-9294-456f-9464-97d887a49cdc","savedPayload":{"position":{"x":6545.0862484387835,"y":17296.87289585219},"targetPosition":{"x":6560.765517928932,"y":17446.051180157432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"abb4f289-c374-43e0-b8dc-d586d8e3328e","savedPayload":{"position":{"x":6560.765517928932,"y":17446.051180157432},"targetPosition":{"x":6668.275902792524,"y":17726.12530810659},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a045ea45-c8ff-49a5-86cd-5d38cd3e6d22","savedPayload":{"position":{"x":6668.275902792524,"y":17726.12530810659},"targetPosition":{"x":6775.786287656112,"y":18006.19943605575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Bollinger Sub Channels","config":"{\n\"codeName\": \"Bollinger-Sub-Channels\",\n\"icon\": \"layer-trends\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Bollinger Sub Channels","config":"{ \n\"codeName\": \"Bollinger Sub Channels\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Direction","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.direction","project":"Superalgos","id":"6b969637-0945-4ae4-970c-49f8fd940fd2","savedPayload":{"position":{"x":6636.756939708273,"y":17181.375394115545},"targetPosition":{"x":6679.808049389099,"y":17271.63392255053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"67136278-2bc4-4814-b71a-0fd87c85b422","savedPayload":{"position":{"x":6679.808049389099,"y":17271.63392255053},"targetPosition":{"x":6744.384713910345,"y":17407.02171520301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","project":"Superalgos","id":"0e6dcc09-7f32-431f-ab15-08764e0ad29b","savedPayload":{"position":{"x":6731.300724849611,"y":17157.364331514364},"targetPosition":{"x":6736.534320473904,"y":17257.22728498982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"24f260af-1679-444e-9d08-17f39b3af2a8","savedPayload":{"position":{"x":6736.534320473904,"y":17257.22728498982},"targetPosition":{"x":6744.384713910345,"y":17407.02171520301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Slope","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.slope","project":"Superalgos","id":"bd4510b2-1062-4142-81b7-207b292d36c6","savedPayload":{"position":{"x":6827.836428718791,"y":17171.361342429966},"targetPosition":{"x":6794.45574279541,"y":17265.625491539184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c520fa0d-f783-4f91-8951-d83cfe470522","savedPayload":{"position":{"x":6794.45574279541,"y":17265.625491539184},"targetPosition":{"x":6744.384713910345,"y":17407.02171520301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1beae26c-7235-46ef-a732-1d0c9f18dda5","savedPayload":{"position":{"x":6744.384713910345,"y":17407.02171520301},"targetPosition":{"x":6760.085500783229,"y":17706.61057562938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"88bdc751-5a1d-499d-a4ba-888dbcf6dc7a","savedPayload":{"position":{"x":6760.085500783229,"y":17706.61057562938},"targetPosition":{"x":6775.786287656112,"y":18006.19943605575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"343f37be-cc77-4513-a296-7925edfcf0c4","savedPayload":{"position":{"x":6775.786287656112,"y":18008.19943605575},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Plotter Candles Channels","config":"{\n\"codeName\" : \"Candles Channels\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Candles Channels","config":"{ \n\"codeName\": \"Candles Channels\",\n\"icon\": \"layer-trends\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Candles Channels","config":"{ \n\"codeName\": \"Candles Channels\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Direction","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.direction","project":"Superalgos","id":"34e4348e-6bc2-4626-8d84-070efa8e81e2","savedPayload":{"position":{"x":6554.95609463541,"y":17409.51733849713},"targetPosition":{"x":6619.234855604063,"y":17486.12178280903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"eeb8fe38-bb85-441a-933f-d44fc990d037","savedPayload":{"position":{"x":6619.234855604063,"y":17486.12178280903},"targetPosition":{"x":6683.51361657272,"y":17562.72622712093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","project":"Superalgos","id":"facfde0d-c82e-40f5-9659-2b844def9ddd","savedPayload":{"position":{"x":6648.783981039331,"y":17365.764676518487},"targetPosition":{"x":6666.148798806025,"y":17464.24545181971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7991ff70-72ba-44e0-a980-75f0b13672b5","savedPayload":{"position":{"x":6666.148798806025,"y":17464.24545181971},"targetPosition":{"x":6683.51361657272,"y":17562.72622712093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d21f5c62-0455-4671-89c1-f9d96a75f349","savedPayload":{"position":{"x":6683.51361657272,"y":17562.72622712093},"targetPosition":{"x":6746.906355833824,"y":17698.672395176425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"864f26cb-b191-47c1-801e-57bb2436294e","savedPayload":{"position":{"x":6746.906355833824,"y":17698.672395176425},"targetPosition":{"x":6873.691834356032,"y":17970.56473128742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Candles Channels Objects","config":"{ \n\"codeName\": \"Candles Channels Objects\",\n\"icon\": \"layer-trends\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"First Min","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.firstMin","project":"Superalgos","id":"35f51e5f-816b-4067-9c32-b6a95aae79a3","savedPayload":{"position":{"x":6413.750762789125,"y":16968.003826995136},"targetPosition":{"x":6534.329291881706,"y":17057.227245007838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"91a70976-e9d9-4d8e-9f83-719cab4d1497","savedPayload":{"position":{"x":6534.329291881706,"y":17057.227245007838},"targetPosition":{"x":6654.907820974291,"y":17146.45066302054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Last Min","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.lastMin","project":"Superalgos","id":"f4c70158-779d-4ea9-a50c-1610ded698f5","savedPayload":{"position":{"x":6444.635041684334,"y":16932.475528274288},"targetPosition":{"x":6549.771431329311,"y":17039.463095647414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"588627dd-bbc9-4ca5-b413-52dd000e6f30","savedPayload":{"position":{"x":6549.771431329311,"y":17039.463095647414},"targetPosition":{"x":6654.907820974291,"y":17146.45066302054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Last Max","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.lastMax","project":"Superalgos","id":"02969b43-c942-49a2-a50c-3b11f20dc61c","savedPayload":{"position":{"x":6480.696934261006,"y":16902.216007513645},"targetPosition":{"x":6567.802377617649,"y":17024.333335267092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eb4d4b7c-cb3c-4855-8016-88a4df1b667b","savedPayload":{"position":{"x":6567.802377617649,"y":17024.333335267092},"targetPosition":{"x":6654.907820974291,"y":17146.45066302054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"First Max","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.firstMax","project":"Superalgos","id":"6a44702b-c381-4dc2-beaa-005d5dfc7e59","savedPayload":{"position":{"x":6521.048477041346,"y":16877.970354539935},"targetPosition":{"x":6587.978149007817,"y":17012.210508780237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7cf30b7b-b68a-46e4-9c89-65fa7859be97","savedPayload":{"position":{"x":6587.978149007817,"y":17012.210508780237},"targetPosition":{"x":6654.907820974291,"y":17146.45066302054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cfed2fd2-3791-4c86-ac53-f248831fa7a1","savedPayload":{"position":{"x":6654.907820974291,"y":17146.45066302054},"targetPosition":{"x":6847.74410388025,"y":17376.263995956233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"e06b5939-31b9-477b-81a2-1aaf3475144e","savedPayload":{"position":{"x":6750.381984368356,"y":16534.10681640123},"targetPosition":{"x":6887.245181574301,"y":16801.068359044668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Side'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.LIGHT\"\n}","project":"Superalgos","id":"8bf6a1ad-69e9-44ff-8e3a-4f70fe523572","savedPayload":{"position":{"x":6685.551501673126,"y":16235.984595795428},"targetPosition":{"x":6786.398341623713,"y":16518.526477420048},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"76a1c12f-0b87-40c2-9dae-6768884a5076","savedPayload":{"position":{"x":6786.398341623713,"y":16518.526477420048},"targetPosition":{"x":6887.245181574301,"y":16801.068359044668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Up'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR. GREEN\"\n}","project":"Superalgos","id":"a57b9ead-b4b8-40e3-82df-1461cad237c0","savedPayload":{"position":{"x":6761.035250967005,"y":16214.492657693085},"targetPosition":{"x":6824.1402162706545,"y":16507.780508368876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d3d09c74-7274-4fce-8413-815c1ad546ee","savedPayload":{"position":{"x":6824.1402162706545,"y":16507.780508368876},"targetPosition":{"x":6887.245181574301,"y":16801.068359044668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Down'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","project":"Superalgos","id":"2f1ff3f4-94a9-4a3d-b290-fbde30b79e7e","savedPayload":{"position":{"x":6838.67848716558,"y":16203.037192470376},"targetPosition":{"x":6862.96183436994,"y":16502.052775757522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"75f374ef-accc-444d-856f-ba01eba29ced","savedPayload":{"position":{"x":6862.96183436994,"y":16502.052775757522},"targetPosition":{"x":6887.245181574301,"y":16801.068359044668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"atMousePosition === true","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.1\n}","project":"Superalgos","id":"4361ea11-4004-44d7-a94c-9bf27aa75a64","savedPayload":{"position":{"x":6917.152712970721,"y":16201.814206313316},"targetPosition":{"x":6902.198947272511,"y":16501.441282678992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"db98a447-4c7f-43bd-9b9f-d94978b05e14","savedPayload":{"position":{"x":6902.198947272511,"y":16501.441282678992},"targetPosition":{"x":6887.245181574301,"y":16801.068359044668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a7862bd3-6421-4855-86aa-6b2f86b9dde2","savedPayload":{"position":{"x":6887.245181574301,"y":16801.068359044668},"targetPosition":{"x":6950.3501468779505,"y":17094.35620972046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"702d82d3-6978-4c3e-8ffc-cd6f33318efd","savedPayload":{"position":{"x":6920.894238146819,"y":16648.09883748263},"targetPosition":{"x":6954.090041256575,"y":16794.379521976167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Side'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK\"\n}","project":"Superalgos","id":"875f9634-88be-4f74-8adc-bb6b5b284a96","savedPayload":{"position":{"x":6934.282507129108,"y":16495.034133516965},"targetPosition":{"x":6944.186274192842,"y":16644.706827746566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6a9f57c4-7ce6-45b3-a2c2-82ff785f32e4","savedPayload":{"position":{"x":6944.186274192842,"y":16644.706827746566},"targetPosition":{"x":6954.090041256575,"y":16794.379521976167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Up'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n}","project":"Superalgos","id":"3bbfe7c5-b635-4b18-94b5-06ac68408de9","savedPayload":{"position":{"x":6981.354306448808,"y":16495.6209909791},"targetPosition":{"x":6967.722173852693,"y":16645.000256477633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b99aaa3f-25d7-4570-b689-60eb4200b42c","savedPayload":{"position":{"x":6967.722173852693,"y":16645.000256477633},"targetPosition":{"x":6954.090041256575,"y":16794.379521976167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Down'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","project":"Superalgos","id":"897c7976-49b7-401c-a3f0-5d5a5f4edfca","savedPayload":{"position":{"x":7027.7547690745705,"y":16503.564274997094},"targetPosition":{"x":6990.922405165573,"y":16648.97189848663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"06096ed6-281e-4075-a709-2fd07c18fa9c","savedPayload":{"position":{"x":6990.922405165573,"y":16648.97189848663},"targetPosition":{"x":6954.090041256575,"y":16794.379521976167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7c42653b-6268-4c6b-ab1c-522e044bc761","savedPayload":{"position":{"x":6954.090041256575,"y":16794.379521976167},"targetPosition":{"x":6950.3501468779505,"y":17094.35620972046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"First Min","project":"Superalgos","id":"67773b40-e975-42a8-b994-b94ff359cc52","savedPayload":{"position":{"x":7020.747367018266,"y":16802.732768624726},"targetPosition":{"x":6950.3501468779505,"y":17094.35620972046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"First Min","id":"91a70976-e9d9-4d8e-9f83-719cab4d1497"}}},{"type":"Polygon Vertex","name":"Last Min","project":"Superalgos","id":"edd79469-619d-4723-b678-1c415b3ebecb","savedPayload":{"position":{"x":7083.874682208927,"y":16825.70923232327},"targetPosition":{"x":6950.3501468779505,"y":17094.35620972046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Last Min","id":"588627dd-bbc9-4ca5-b413-52dd000e6f30"}}},{"type":"Polygon Vertex","name":"Last Max","project":"Superalgos","id":"5a204cef-fd62-4c53-af97-79f9963f70cb","savedPayload":{"position":{"x":7140.306519648195,"y":16862.15677724059},"targetPosition":{"x":6950.3501468779505,"y":17094.35620972046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Last Max","id":"eb4d4b7c-cb3c-4855-8016-88a4df1b667b"}}},{"type":"Polygon Vertex","name":"First Max","project":"Superalgos","id":"32e5e2d7-3818-4e0c-b36f-712da90e4025","savedPayload":{"position":{"x":7187.2131513680215,"y":16910.247771282844},"targetPosition":{"x":6950.3501468779505,"y":17094.35620972046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"First Max","id":"7cf30b7b-b68a-46e4-9c89-65fa7859be97"}}}],"id":"5383ea8f-c9ed-463e-a7d4-dc5cb6c40dff","savedPayload":{"position":{"x":6950.3501468779505,"y":17094.35620972046},"targetPosition":{"x":6847.74410388025,"y":17376.263995956233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"9651d021-d2af-4172-bc8f-7265407cf181","savedPayload":{"position":{"x":6847.74410388025,"y":17376.263995956233},"targetPosition":{"x":6899.83855718033,"y":17671.706321859896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"o"}}},"panels":[{"type":"Plotter Panel","name":"Candles Channels Objects","config":"{ \n\"codeName\": \"Candles Channels Objects\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Direction","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.direction","project":"Superalgos","id":"daf86ccc-bbf4-4a18-bcd8-583ded1b98a7","savedPayload":{"position":{"x":7188.993613859624,"y":17479.756060661486},"targetPosition":{"x":7112.389169547725,"y":17544.03482163014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"73bc1fd7-799b-4b19-98fa-856575b9ad33","savedPayload":{"position":{"x":7112.389169547725,"y":17544.03482163014},"targetPosition":{"x":7035.78472523583,"y":17608.313582598792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Total Periods","config":"{\n \n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.period","project":"Superalgos","id":"32edb120-129e-4734-bfd1-224213e3e8f8","savedPayload":{"position":{"x":7232.746275838272,"y":17573.583947065403},"targetPosition":{"x":7134.265500537051,"y":17590.948764832097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6384ead6-8afc-490a-a6db-055b7b622877","savedPayload":{"position":{"x":7134.265500537051,"y":17590.948764832097},"targetPosition":{"x":7035.78472523583,"y":17608.313582598792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8b63674c-b728-4a00-8b3c-331d7ba2a93b","savedPayload":{"position":{"x":7035.78472523583,"y":17608.313582598792},"targetPosition":{"x":6899.83855718033,"y":17671.706321859896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7aa1e889-ae4f-4945-b0e5-9ad87ded05a5","savedPayload":{"position":{"x":6899.83855718033,"y":17671.706321859896},"targetPosition":{"x":6873.691834356032,"y":17970.56473128742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7c38b69d-fabc-4ca6-b35e-6fef6f1d8b13","savedPayload":{"position":{"x":6873.691834356033,"y":17972.56473128742},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Resistances And Supports","config":"{ \n\"codeName\": \"Resistances-And-Supports\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Resistances","config":"{ \n\"codeName\": \"Resistances-And-Supports\",\n\"icon\": \"layer-resistance\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Base Resistance","project":"Superalgos","points":[{"type":"Point","name":"Base Left","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin - (record.end - record.begin)\ny = record.rateResistance","project":"Superalgos","id":"5781a245-e686-4b11-a000-2fa096a32d87","savedPayload":{"position":{"x":10160.64019886357,"y":8860.470623209347},"targetPosition":{"x":10859.185306432435,"y":8243.406461509127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6e8169a3-28a2-412f-8100-577c4a9a97bb","savedPayload":{"position":{"x":10859.185306432435,"y":8243.406461509127},"targetPosition":{"x":11557.75149974702,"y":7626.311048237983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Base Right","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end- (record.end - record.begin)\ny = record.rateResistance","project":"Superalgos","id":"5a15539d-b94c-4110-a165-9a3bb5fc4fed","savedPayload":{"position":{"x":9730.622705384787,"y":7996.432446799141},"targetPosition":{"x":10644.152617026488,"y":7811.366440669799},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b23883d4-d592-4d0a-822e-82165e22598f","savedPayload":{"position":{"x":10644.152617026488,"y":7811.366440669799},"targetPosition":{"x":11557.75149974702,"y":7626.311048237983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8da1ef7b-5f0a-477b-9179-2c09c2fbdeb8","savedPayload":{"position":{"x":6249.163511340699,"y":17970.87244968553},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Resistance Levels","project":"Superalgos","points":[{"type":"Point","name":"Begin 1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance1Rate","project":"Superalgos","id":"3c34f0a9-1a8e-4452-803c-ea488111c3a5","savedPayload":{"position":{"x":12059.564957052662,"y":10301.386103605379},"targetPosition":{"x":11903.917502510143,"y":9691.441241462462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2a3a3e15-93dd-43f0-95f7-ae2ed478607f","savedPayload":{"position":{"x":11903.917502510143,"y":9691.441241462462},"targetPosition":{"x":11742.569411727927,"y":9081.793204056443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance1Rate","project":"Superalgos","id":"d1968565-ac35-4c42-9760-2b46f17bae96","savedPayload":{"position":{"x":11879.933902586617,"y":10334.649129244044},"targetPosition":{"x":11812.773699876088,"y":9708.762138166945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fe77f4a2-627c-4f27-9d4c-2dab9ddd8926","savedPayload":{"position":{"x":11812.773699876088,"y":9708.762138166945},"targetPosition":{"x":11742.569411727927,"y":9081.793204056443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance2Rate","project":"Superalgos","id":"fe7ad1f2-d9b5-4e47-af1c-7d29b86e1a0a","savedPayload":{"position":{"x":11699.0122111411,"y":10341.628559531797},"targetPosition":{"x":11721.38955043843,"y":9712.566639697125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"71ddeaf4-849d-4973-9b6a-a2ddcaccb86d","savedPayload":{"position":{"x":11721.38955043843,"y":9712.566639697125},"targetPosition":{"x":11742.569411727927,"y":9081.793204056443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance2Rate","project":"Superalgos","id":"992d9a81-4292-4943-bc67-c6ce84ed7e3a","savedPayload":{"position":{"x":11519.390289931336,"y":10322.438210499726},"targetPosition":{"x":11631.09039421289,"y":9703.036299600622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"19746197-9ebc-4af8-b4ba-8217fa0eba77","savedPayload":{"position":{"x":11631.09039421289,"y":9703.036299600622},"targetPosition":{"x":11742.569411727927,"y":9081.793204056443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance3Rate","project":"Superalgos","id":"c29b8386-bb00-4b15-92ee-fa280c7b721f","savedPayload":{"position":{"x":11344.63301599169,"y":10277.856078309616},"targetPosition":{"x":11543.400023446815,"y":9680.755540734512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"febd94d0-09c7-40c5-b7b2-552ca2cca2b9","savedPayload":{"position":{"x":11543.400023446815,"y":9680.755540734512},"targetPosition":{"x":11742.569411727927,"y":9081.793204056443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance3Rate","project":"Superalgos","id":"ff8a40a3-ebed-4e5a-854b-2ca20f2bc441","savedPayload":{"position":{"x":11178.232119455603,"y":10208.975563790687},"targetPosition":{"x":11459.956621028901,"y":9646.202740165694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7003801a-ea76-43e2-a013-72e6d41aff5c","savedPayload":{"position":{"x":11459.956621028901,"y":9646.202740165694},"targetPosition":{"x":11742.569411727927,"y":9081.793204056443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance4Rate","project":"Superalgos","id":"f927d491-29ca-4b19-aa80-c413e4148b38","savedPayload":{"position":{"x":11023.397901079203,"y":10117.104781862205},"targetPosition":{"x":11382.383843099386,"y":9600.113852720951},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"12059a23-6280-499c-8ebc-f8c0de0e5647","savedPayload":{"position":{"x":11382.383843099386,"y":9600.113852720951},"targetPosition":{"x":11742.569411727927,"y":9081.793204056443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance4Rate","project":"Superalgos","id":"8a5e95cc-9871-49e8-a610-bff6fc2883a4","savedPayload":{"position":{"x":10883.226349107277,"y":10004.151401197325},"targetPosition":{"x":11312.168788343173,"y":9543.501456532762},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2e5e4668-102d-4d9a-addc-9b154e7889a9","savedPayload":{"position":{"x":11312.168788343173,"y":9543.501456532762},"targetPosition":{"x":11742.569411727927,"y":9081.793204056443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance5Rate","project":"Superalgos","id":"ac834b1e-4605-456b-8861-2fcf9f2eb9db","savedPayload":{"position":{"x":10760.632090853029,"y":9872.298331959159},"targetPosition":{"x":11250.82823638896,"y":9477.413516711147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1cebdfa8-d6f3-44fb-bf7e-0f8bfaeff946","savedPayload":{"position":{"x":11250.82823638896,"y":9477.413516711147},"targetPosition":{"x":11742.569411727927,"y":9081.793204056443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance5Rate","project":"Superalgos","id":"b8fc5e20-494e-471d-8f0e-97d42a64094b","savedPayload":{"position":{"x":10652.883902763533,"y":9713.837900534652},"targetPosition":{"x":11194.364489542266,"y":9392.876098783325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bbc97ad3-5c93-460f-8463-127d21e3dca4","savedPayload":{"position":{"x":11194.364489542266,"y":9392.876098783325},"targetPosition":{"x":11742.569411727927,"y":9081.793204056443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d0075edc-e3f2-4d8f-84ba-900c9b431782","savedPayload":{"position":{"x":6184.936258074344,"y":17933.475497139138},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Resistance Zone 1","project":"Superalgos","points":[{"type":"Point","name":"Begin - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance1Rate - record.resistance1Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"a86b7e96-ad20-45e9-85f9-811c71852651","savedPayload":{"position":{"x":10908.636076997664,"y":7788.704166235226},"targetPosition":{"x":11095.436482018602,"y":7647.79913927981},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0c275c7e-5012-454c-8772-a3c2f1621567","savedPayload":{"position":{"x":11095.436482018602,"y":7647.79913927981},"targetPosition":{"x":11468.456967720584,"y":7366.465209823147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance1Rate - record.resistance1Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"39fdd36d-0413-47d2-92d9-3257837c89de","savedPayload":{"position":{"x":10789.483416695162,"y":7619.652301078884},"targetPosition":{"x":11022.157392646095,"y":7535.622696148534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e4ca8d91-e86c-4b97-b327-a1a631b28ade","savedPayload":{"position":{"x":11022.157392646095,"y":7535.622696148534},"targetPosition":{"x":11468.456967720584,"y":7366.465209823147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance1Rate + record.resistance1Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"e9e224f5-1483-4d72-97f7-13cbd566ce75","savedPayload":{"position":{"x":10771.128961306767,"y":7425.140917749181},"targetPosition":{"x":10994.247816534138,"y":7390.745790183633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1614af55-2a6c-40a5-9339-958d2944f719","savedPayload":{"position":{"x":10994.247816534138,"y":7390.745790183633},"targetPosition":{"x":11468.456967720584,"y":7366.465209823147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance1Rate + record.resistance1Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"552f846f-64f1-4d31-b37d-2da573c20b7f","savedPayload":{"position":{"x":10824.342465907263,"y":7155.737936453245},"targetPosition":{"x":11045.507183042646,"y":7224.134984213325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e6764b3a-2fdb-4df1-abde-1f6e9fca5a27","savedPayload":{"position":{"x":11045.507183042646,"y":7224.134984213325},"targetPosition":{"x":11468.456967720584,"y":7366.465209823147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1db48443-fc08-4f05-bf9e-4be80c377fe2","savedPayload":{"position":{"x":6127.740316910684,"y":17886.01713184596},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Resistance Zone 2","project":"Superalgos","points":[{"type":"Point","name":"Begin - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance2Rate - record.resistance2Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"31533409-bde7-41ad-b252-1c80e8874519","savedPayload":{"position":{"x":10863.64400266398,"y":7659.09672176588},"targetPosition":{"x":11061.725319119592,"y":7534.595809015913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"055d64bb-b823-4593-b606-4f0a35ac620a","savedPayload":{"position":{"x":11061.725319119592,"y":7534.595809015913},"targetPosition":{"x":11457.295448358629,"y":7285.985673057974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance2Rate - record.resistance2Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"ab6b9bed-1420-4c4f-b572-73274d1beeff","savedPayload":{"position":{"x":10759.150740364355,"y":7478.003279960283},"targetPosition":{"x":10998.928980181645,"y":7413.79948403058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6d8e2772-7475-406d-b048-4599982d04e2","savedPayload":{"position":{"x":10998.928980181645,"y":7413.79948403058},"targetPosition":{"x":11457.295448358629,"y":7285.985673057974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance2Rate + record.resistance2Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"54021cad-c5f9-4756-94a4-6216e9e0bcf7","savedPayload":{"position":{"x":10758.04773805499,"y":7286.6882299415465},"targetPosition":{"x":10985.562129731821,"y":7270.443438781498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d3cc8bbf-1f3e-49bc-9331-5e498064cb88","savedPayload":{"position":{"x":10985.562129731821,"y":7270.443438781498},"targetPosition":{"x":11457.295448358629,"y":7285.985673057974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance2Rate + record.resistance2Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"e44758af-409b-4797-ac44-0cdc0928dfa4","savedPayload":{"position":{"x":10833.626282454006,"y":7024.440369273133},"targetPosition":{"x":11043.492517547038,"y":7110.031934978032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e2c53993-70fa-48f0-96b0-3c73a3baa50f","savedPayload":{"position":{"x":11043.492517547038,"y":7110.031934978032},"targetPosition":{"x":11457.295448358629,"y":7285.985673057974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2881845a-2d94-42f8-bffd-12b8f0674dc6","savedPayload":{"position":{"x":6079.1358440259755,"y":17829.791894296464},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Resistance Zone 3","project":"Superalgos","points":[{"type":"Point","name":"Begin - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance3Rate - record.resistance3Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"b863599f-a422-4d49-be0c-5962371d571d","savedPayload":{"position":{"x":10833.323641650546,"y":7530.689465639097},"targetPosition":{"x":11041.148359727125,"y":7423.618740061745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e18fe7d1-bb71-4228-89ad-6eef714ec53f","savedPayload":{"position":{"x":11041.148359727125,"y":7423.618740061745},"targetPosition":{"x":11456.103352418591,"y":7209.851545773281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance3Rate - record.resistance3Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"aa5baeac-1910-4f48-a6c2-b3ffb7293d4a","savedPayload":{"position":{"x":10764.350053452694,"y":7322.083130816976},"targetPosition":{"x":10995.273606916482,"y":7284.682103142071},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"30f76ba8-3516-4b19-bb42-ae4613d5ce10","savedPayload":{"position":{"x":10995.273606916482,"y":7284.682103142071},"targetPosition":{"x":11456.103352418591,"y":7209.851545773281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance3Rate + record.resistance3Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"a6a1afe8-e380-4979-ba63-703903bc50db","savedPayload":{"position":{"x":10763.32498397609,"y":7103.238342896862},"targetPosition":{"x":10994.65462017803,"y":7138.7876137210305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fc07018f-23a9-46dc-bb6a-f6ddac68be6c","savedPayload":{"position":{"x":10994.65462017803,"y":7138.7876137210305},"targetPosition":{"x":11456.103352418591,"y":7209.851545773281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance3Rate + record.resistance3Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"84cba419-b3e2-4cfc-9c32-69a2a56aa550","savedPayload":{"position":{"x":10830.609907476246,"y":6893.86356422493},"targetPosition":{"x":11039.31789951558,"y":6999.355859493249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d4105484-8b89-48f5-af7f-964d2e541120","savedPayload":{"position":{"x":11039.31789951558,"y":6999.355859493249},"targetPosition":{"x":11456.103352418591,"y":7209.851545773281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a833c73a-2d81-40b3-9d44-3388046804ce","savedPayload":{"position":{"x":6040.448642738109,"y":17766.33346240275},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Resistance Zone 4","project":"Superalgos","points":[{"type":"Point","name":"Begin - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance4Rate - record.resistance4Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"02bf9b17-6651-4e71-bef8-8bb2ba8fe6b3","savedPayload":{"position":{"x":10809.072636304252,"y":7394.122336126922},"targetPosition":{"x":11025.318834723254,"y":7305.089731706234},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"79408eb2-e914-4f85-96c6-0baa918f5f91","savedPayload":{"position":{"x":11025.318834723254,"y":7305.089731706234},"targetPosition":{"x":11457.209060973652,"y":7127.172223298096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance4Rate - record.resistance4Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"64545435-1cc4-4cd5-9c6e-700f76fb976d","savedPayload":{"position":{"x":10758.186539830509,"y":7180.438786292131},"targetPosition":{"x":10991.443947657273,"y":7162.698431793807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9479606b-5668-40a4-8e34-40976668e11b","savedPayload":{"position":{"x":10991.443947657273,"y":7162.698431793807},"targetPosition":{"x":11457.209060973652,"y":7127.172223298096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance4Rate + record.resistance4Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"fc0e0a28-306b-42cc-95b2-d0264ca224b3","savedPayload":{"position":{"x":10775.901692849107,"y":6962.0807231045765},"targetPosition":{"x":11003.251720224107,"y":7017.139536521219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"09f1f62c-723a-4588-ae76-d195aa1cb276","savedPayload":{"position":{"x":11003.251720224107,"y":7017.139536521219},"targetPosition":{"x":11457.209060973652,"y":7127.172223298096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance4Rate + record.resistance4Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"1a8ba3fb-7c20-4c56-a7e5-e9bb8ab8b00b","savedPayload":{"position":{"x":10860.474908388958,"y":6759.387977509147},"targetPosition":{"x":11059.576325338276,"y":6882.071946768019},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"98ef8287-1ef2-498f-ae25-580a148f8fae","savedPayload":{"position":{"x":11059.576325338276,"y":6882.071946768019},"targetPosition":{"x":11457.209060973652,"y":7127.172223298096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"10d84102-de4a-4f5e-b511-8d948b16c186","savedPayload":{"position":{"x":6012.7339990482105,"y":17697.372816763083},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Resistance Zone 5","project":"Superalgos","points":[{"type":"Point","name":"Begin - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance5Rate - record.resistance5Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"8fff05a9-9d0e-4dcb-ba56-15e7758ed61e","savedPayload":{"position":{"x":10798.159923478313,"y":7259.442326840804},"targetPosition":{"x":11021.18822967912,"y":7189.077930230575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8ae90185-2a00-4958-95c1-83aa4b6402ee","savedPayload":{"position":{"x":11021.18822967912,"y":7189.077930230575},"targetPosition":{"x":11466.650961452695,"y":7048.444470855126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance5Rate - record.resistance5Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"d1499c5d-5a9b-428a-abfe-d05d946bbfff","savedPayload":{"position":{"x":10765.597123630581,"y":7042.660758858207},"targetPosition":{"x":10999.525809342962,"y":7044.553036907002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1f76e686-6537-4818-a4c8-f70dc4ec3c4f","savedPayload":{"position":{"x":10999.525809342962,"y":7044.553036907002},"targetPosition":{"x":11466.650961452695,"y":7048.444470855126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.resistance5Rate + record.resistance5Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"e54f3a16-7835-487d-8b09-6dc517bda1d9","savedPayload":{"position":{"x":10801.800877763068,"y":6826.149116979034},"targetPosition":{"x":11023.650900719611,"y":6900.297912000938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"72bab256-b619-4bb5-b188-e3da6d412f2f","savedPayload":{"position":{"x":11023.650900719611,"y":6900.297912000938},"targetPosition":{"x":11466.650961452695,"y":7048.444470855126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.resistance5Rate + record.resistance5Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"d5530e82-a1fb-4108-ac6e-ada9fe0b161b","savedPayload":{"position":{"x":10903.244926906915,"y":6631.363649428362},"targetPosition":{"x":11091.220787800565,"y":6770.496963909963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ee66793e-1c2d-4a17-8c0c-f086656eb0a6","savedPayload":{"position":{"x":11091.220787800565,"y":6770.496963909963},"targetPosition":{"x":11466.650961452695,"y":7048.444470855126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e6120640-850a-4f6f-a55a-b3e7dbca6ab5","savedPayload":{"position":{"x":5996.747896189456,"y":17624.791024023536},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Resistance Line 1","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.resistance1Rate > 0","project":"Superalgos","id":"2a6b550a-7631-4e45-b740-9c46586d71a3","savedPayload":{"position":{"x":5552.292901165445,"y":17641.90316342147},"targetPosition":{"x":5992.926393375172,"y":17550.567926283424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [1,5],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"8f2da42d-c563-4db6-b431-78520c3c282e","savedPayload":{"position":{"x":5093.933309990618,"y":17593.128894631634},"targetPosition":{"x":5543.429851682897,"y":17571.84841045753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ab5ed6ec-35cf-4709-b14d-548495163c99","savedPayload":{"position":{"x":5543.429851682897,"y":17571.84841045753},"targetPosition":{"x":5992.926393375172,"y":17550.567926283424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 1","project":"Superalgos","id":"366d0b55-988c-4995-8dcb-8738605be64b","savedPayload":{"position":{"x":5545.634898850301,"y":17501.26966134734},"targetPosition":{"x":5992.926393375172,"y":17550.567926283424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 1","id":"2a3a3e15-93dd-43f0-95f7-ae2ed478607f"}}},{"type":"Polygon Vertex","name":"End 1","project":"Superalgos","id":"7f2cb9ed-59bc-4f03-bf33-f34ca52db445","savedPayload":{"position":{"x":5558.853747088269,"y":17431.90479913144},"targetPosition":{"x":5992.926393375172,"y":17550.567926283424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 1","id":"fe77f4a2-627c-4f27-9d4c-2dab9ddd8926"}}}],"id":"0c38b25a-d207-430e-ae5a-9ba55227c974","savedPayload":{"position":{"x":5992.926393375172,"y":17550.567926283424},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Resistance Line 2","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.resistance2Rate > 0","project":"Superalgos","id":"27b432e9-4988-4457-8e68-13a06a1341fb","savedPayload":{"position":{"x":10850.422428889626,"y":8512.869680923171},"targetPosition":{"x":11434.635868687958,"y":8275.984496122801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [1,5],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TURQUOISE\"\n }\n}","project":"Superalgos","id":"500b1402-adbe-46d7-9410-92a9cc84b492","savedPayload":{"position":{"x":10206.480248551972,"y":8561.13973244857},"targetPosition":{"x":10820.558058619965,"y":8418.562114285685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c1565617-e60a-4688-bcaf-061fb5ef8f02","savedPayload":{"position":{"x":10820.558058619965,"y":8418.562114285685},"targetPosition":{"x":11434.635868687958,"y":8275.984496122801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 2","project":"Superalgos","id":"b06bed94-85e8-4405-8372-fa5af8fa10f4","savedPayload":{"position":{"x":10805.814322041584,"y":8320.743813501045},"targetPosition":{"x":11434.635868687958,"y":8275.984496122801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 2","id":"71ddeaf4-849d-4973-9b6a-a2ddcaccb86d"}}},{"type":"Polygon Vertex","name":"End 2","project":"Superalgos","id":"a6ad0c69-98e2-459a-a5e4-28b863e7e679","savedPayload":{"position":{"x":10806.5542588807,"y":8221.823389774894},"targetPosition":{"x":11434.635868687958,"y":8275.984496122801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 2","id":"19746197-9ebc-4af8-b4ba-8217fa0eba77"}}}],"id":"532beef7-8d2e-4899-9c99-850db799d9a2","savedPayload":{"position":{"x":6001.373731240215,"y":17476.72813616393},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Resistance Line 3","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.resistance3Rate > 0","project":"Superalgos","id":"6532e5e3-4b6f-4f9b-a52f-f42d588109aa","savedPayload":{"position":{"x":10814.604361591835,"y":8329.199107656274},"targetPosition":{"x":11427.59852472565,"y":8182.032229647753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [1,5],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","project":"Superalgos","id":"f0c15419-ec71-4bfd-8be7-14b5f7ab6213","savedPayload":{"position":{"x":10170.660205499556,"y":8280.955420744114},"targetPosition":{"x":10799.129365112603,"y":8231.493825195934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"3122acb4-11b4-4b42-801d-e6f0f3bc88f5","savedPayload":{"position":{"x":10799.129365112603,"y":8231.493825195934},"targetPosition":{"x":11427.59852472565,"y":8182.032229647753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 3","project":"Superalgos","id":"86879433-37a4-4d4c-94b2-f56509927833","savedPayload":{"position":{"x":10799.129365112603,"y":8132.570634099573},"targetPosition":{"x":11427.59852472565,"y":8182.032229647753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 3","id":"febd94d0-09c7-40c5-b7b2-552ca2cca2b9"}}},{"type":"Polygon Vertex","name":"End 3","project":"Superalgos","id":"ced94fbd-8b64-45a4-af9d-fb2366e9c08f","savedPayload":{"position":{"x":10814.604361591835,"y":8034.865351639233},"targetPosition":{"x":11427.59852472565,"y":8182.032229647753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 3","id":"7003801a-ea76-43e2-a013-72e6d41aff5c"}}}],"id":"9eb7ed64-8225-41de-ab73-3297d19e1529","savedPayload":{"position":{"x":6021.859488428199,"y":17405.28581065354},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Resistance Line 4","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.resistance4Rate > 0","project":"Superalgos","id":"2c5d8280-e687-4ab6-8dc4-a37d33dac54c","savedPayload":{"position":{"x":10806.566716529283,"y":8142.238002574417},"targetPosition":{"x":11434.64832633654,"y":8088.07689622651},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [1,5],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","project":"Superalgos","id":"981c71a0-44f8-40a7-935b-de7a0d29c125","savedPayload":{"position":{"x":10177.005233043794,"y":7998.5582614700215},"targetPosition":{"x":10805.826779690167,"y":8043.317578848266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"66da2fbe-77f0-47ba-b520-cd646ffbc4bf","savedPayload":{"position":{"x":10805.826779690167,"y":8043.317578848266},"targetPosition":{"x":11434.64832633654,"y":8088.07689622651},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 4","project":"Superalgos","id":"2b0a1310-20d6-45cd-a05b-ed8cbddcbb81","savedPayload":{"position":{"x":10820.570516268548,"y":7945.499278063626},"targetPosition":{"x":11434.64832633654,"y":8088.07689622651},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 4","id":"12059a23-6280-499c-8ebc-f8c0de0e5647"}}},{"type":"Polygon Vertex","name":"End 4","project":"Superalgos","id":"db596f4f-6410-4250-a837-dad5cd2d61e8","savedPayload":{"position":{"x":10850.434886538209,"y":7851.19171142614},"targetPosition":{"x":11434.64832633654,"y":8088.07689622651},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 4","id":"2e5e4668-102d-4d9a-addc-9b154e7889a9"}}}],"id":"b8b29e5a-49aa-45cb-b6f3-0ba78dd97899","savedPayload":{"position":{"x":6053.824866885414,"y":17338.189710155937},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Resistance Line 5","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.resistance5Rate > 0","project":"Superalgos","id":"d29fe2ec-f038-419b-a308-caa26a5a8185","savedPayload":{"position":{"x":10826.48162823475,"y":7956.161072074059},"targetPosition":{"x":11455.620379425967,"y":7996.215607004044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [1,5],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"2fb5a769-94e1-480d-9e37-e95b3e6d2391","savedPayload":{"position":{"x":10225.36618057808,"y":7720.254844770076},"targetPosition":{"x":10840.493280002025,"y":7858.23522588706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"5c4e3fb7-482b-4830-b279-ce65f5dde542","savedPayload":{"position":{"x":10840.493280002025,"y":7858.23522588706},"targetPosition":{"x":11455.620379425967,"y":7996.215607004044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 5","project":"Superalgos","id":"94bd59ac-0e4f-4f0c-a8fc-98dda2d4f485","savedPayload":{"position":{"x":10869.651402446914,"y":7763.706914613791},"targetPosition":{"x":11455.620379425967,"y":7996.215607004044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 5","id":"1cebdfa8-d6f3-44fb-bf7e-0f8bfaeff946"}}},{"type":"Polygon Vertex","name":"End 5","project":"Superalgos","id":"890c39f7-712c-4b93-849a-cd652f600124","savedPayload":{"position":{"x":10913.238025824568,"y":7674.903738999281},"targetPosition":{"x":11455.620379425967,"y":7996.215607004044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 5","id":"bbc97ad3-5c93-460f-8463-127d21e3dca4"}}}],"id":"0582dc0b-1512-4762-8340-aabeadad6643","savedPayload":{"position":{"x":6096.397934415076,"y":17277.270041386215},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Resistance Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.typeResistance=== 'Resistance'","project":"Superalgos","id":"ea67ee97-0c26-4369-969a-4b207c45acf2","savedPayload":{"position":{"x":6022.181978166507,"y":16824.72653458673},"targetPosition":{"x":6392.3349540171,"y":17080.63037291072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0,\n \"paletteColor\": \"UI_COLOR.DARK\"\n }\n}","project":"Superalgos","id":"65722c8b-1977-4cfa-ba63-c2cc7434891b","savedPayload":{"position":{"x":5802.0572296741775,"y":16403.794072908324},"targetPosition":{"x":6119.377189276245,"y":16722.867799871456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.typeResistance=== 'Resistance'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK\",\n \"opacity\": 0.5\n}","project":"Superalgos","id":"8322fb8f-d018-4855-a288-20ca625c95a3","savedPayload":{"position":{"x":5671.526815582765,"y":15942.207795271112},"targetPosition":{"x":5895.452002429505,"y":16332.537797571284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad690e4e-7590-4b4d-960e-97510c4fce0d","savedPayload":{"position":{"x":5895.452002429505,"y":16332.537797571284},"targetPosition":{"x":6119.377189276245,"y":16722.867799871456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c3e776eb-ac3c-49a1-b8bb-0a3b37dcff10","savedPayload":{"position":{"x":6119.377189276245,"y":16722.867799871456},"targetPosition":{"x":6392.3349540171,"y":17080.63037291072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Base Left","project":"Superalgos","id":"b6a079f5-8719-4beb-93c5-ae45a48f6bc4","savedPayload":{"position":{"x":6243.291408207391,"y":16656.029358483684},"targetPosition":{"x":6392.3349540171,"y":17080.63037291072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Base Left","id":"6e8169a3-28a2-412f-8100-577c4a9a97bb"}}},{"type":"Polygon Vertex","name":"Base Right","project":"Superalgos","id":"d43b33c2-6d6c-4552-85b6-07300acc05c4","savedPayload":{"position":{"x":6381.795047849839,"y":16630.75382275725},"targetPosition":{"x":6392.3349540171,"y":17080.63037291072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Base Right","id":"b23883d4-d592-4d0a-822e-82165e22598f"}}}],"id":"c62d156c-4686-45a4-af42-283999dd1200","savedPayload":{"position":{"x":6148.417408714671,"y":17224.18853410269},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Resistance Zone 1","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.resistance1Bounce1 > 0","project":"Superalgos","id":"f4fdf8db-0009-4053-acdd-90f790ef2dc1","savedPayload":{"position":{"x":6110.666171190445,"y":16767.74428007707},"targetPosition":{"x":6460.43759147801,"y":17050.869611953287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"678098f3-5628-4c48-baac-daaaa46f7cb6","savedPayload":{"position":{"x":5772.331310117315,"y":16882.249952398357},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"34b995fd-453d-47b9-8967-3d283ce8c5c9","savedPayload":{"position":{"x":5297.398493596465,"y":16860.433727324507},"targetPosition":{"x":5739.917738914217,"y":16778.722543736156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e9625315-0f08-473d-ae16-972cf0dacef6","savedPayload":{"position":{"x":5739.917738914217,"y":16778.722543736156},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 2","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"9c07eec3-733b-415a-9eb2-75bdbb926913","savedPayload":{"position":{"x":5284.006571281989,"y":16643.88139603593},"targetPosition":{"x":5733.221777756979,"y":16670.446378091867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2e9532be-e479-4863-a652-2db78d854596","savedPayload":{"position":{"x":5733.221777756979,"y":16670.446378091867},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 3","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"055dcb1d-7351-4348-ba05-d69e35f1e5c9","savedPayload":{"position":{"x":5322.828158906483,"y":16430.416785141966},"targetPosition":{"x":5752.632571569226,"y":16563.714072644885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"13ae1317-69bb-4a8a-aaa0-170868016d4a","savedPayload":{"position":{"x":5752.632571569226,"y":16563.714072644885},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 4","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"1274e868-d24c-4722-9cfb-a390e63afea4","savedPayload":{"position":{"x":5411.607086907952,"y":16232.445681915498},"targetPosition":{"x":5797.02203556996,"y":16464.72852103165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ee88e538-166d-4c03-b284-d2723f8683f0","savedPayload":{"position":{"x":5797.02203556996,"y":16464.72852103165},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 5","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.4\n}","project":"Superalgos","id":"c5639eed-1b4a-4374-a8ad-300810a6da68","savedPayload":{"position":{"x":5545.183846689211,"y":16061.473447280358},"targetPosition":{"x":5863.81041546059,"y":16379.24240371408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b84e5eee-04d8-4bfe-b252-409df978d9d9","savedPayload":{"position":{"x":5863.81041546059,"y":16379.24240371408},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 6","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"f74b513c-4691-4213-85ec-a8aac88886be","savedPayload":{"position":{"x":5715.795442503553,"y":15927.43636605475},"targetPosition":{"x":5949.116213367761,"y":16312.223863101277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"632d8000-8cd3-467a-96a2-08d3ae5e41fd","savedPayload":{"position":{"x":5949.116213367761,"y":16312.223863101277},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 7","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"e1f8e239-dc70-4be6-9b94-b386891c430e","savedPayload":{"position":{"x":5913.526548550162,"y":15838.124186194542},"targetPosition":{"x":6047.981766391065,"y":16267.567773171173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d7fd86f0-d41f-4d5d-88f8-de219a3013f5","savedPayload":{"position":{"x":6047.981766391065,"y":16267.567773171173},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 8","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1\n}","project":"Superalgos","id":"44c15485-4140-4f89-8491-e39df8a6acec","savedPayload":{"position":{"x":6126.885751668928,"y":15798.727406956652},"targetPosition":{"x":6154.661367950448,"y":16247.869383552228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b8325b61-74f5-4dde-aae5-1a37ca079b8d","savedPayload":{"position":{"x":6154.661367950448,"y":16247.869383552228},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 9","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"9b3a94b1-ff98-459e-83ed-72b1fef97aa8","savedPayload":{"position":{"x":6343.4733905037465,"y":15811.535625948909},"targetPosition":{"x":6262.955187367857,"y":16254.273493048357},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2488848e-b074-47d4-b275-8e7617c2c70e","savedPayload":{"position":{"x":6262.955187367857,"y":16254.273493048357},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 10","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"29599f5b-8578-4e95-88e0-db6f3c0e4d1a","savedPayload":{"position":{"x":6550.702178749572,"y":15875.804476039473},"targetPosition":{"x":6366.56958149077,"y":16286.407918093639},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"396818ff-9a7d-4d0c-be13-67f36f687bb8","savedPayload":{"position":{"x":6366.56958149077,"y":16286.407918093639},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance1Bounce1 > 11","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1\n}","project":"Superalgos","id":"4c01cb73-1bcc-4719-9a6a-0593899023a5","savedPayload":{"position":{"x":6736.528732479546,"y":15987.798885268847},"targetPosition":{"x":6459.482858355757,"y":16342.405122708326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"373bc7b9-3547-4690-a965-e98a2c32b388","savedPayload":{"position":{"x":6459.482858355757,"y":16342.405122708326},"targetPosition":{"x":6182.436984231968,"y":16697.011360147804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2cd93655-284b-4e59-9959-749211d0c13b","savedPayload":{"position":{"x":6182.436984231968,"y":16697.011360147804},"targetPosition":{"x":6460.43759147801,"y":17050.869611953287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin - Zone Resistance","project":"Superalgos","id":"61265cbf-c690-4531-8e1c-63012f033dec","savedPayload":{"position":{"x":6268.147908550254,"y":16644.022370547445},"targetPosition":{"x":6460.43759147801,"y":17050.869611953287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin - Zone Resistance","id":"0c275c7e-5012-454c-8772-a3c2f1621567"}}},{"type":"Polygon Vertex","name":"End - Zone Resistance","project":"Superalgos","id":"d86b1af1-cc3b-4953-8e11-715de1e47305","savedPayload":{"position":{"x":6363.501040502324,"y":16611.43440047731},"targetPosition":{"x":6460.43759147801,"y":17050.869611953287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End - Zone Resistance","id":"e4ca8d91-e86c-4b97-b327-a1a631b28ade"}}},{"type":"Polygon Vertex","name":"End + Zone Resistance","project":"Superalgos","id":"0a2d374a-1bef-4db3-9259-5fe2d4a4352f","savedPayload":{"position":{"x":6463.714975892104,"y":16600.88154683222},"targetPosition":{"x":6460.43759147801,"y":17050.869611953287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End + Zone Resistance","id":"e6764b3a-2fdb-4df1-abde-1f6e9fca5a27"}}},{"type":"Polygon Vertex","name":"Begin + Zone Resistance","project":"Superalgos","id":"f22ffe77-c62c-4cc1-9c27-35e5a3831104","savedPayload":{"position":{"x":6563.764569542196,"y":16612.892973758822},"targetPosition":{"x":6460.43759147801,"y":17050.869611953287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin + Zone Resistance","id":"1614af55-2a6c-40a5-9339-958d2944f719"}}}],"id":"ca9666cf-e40b-46af-902d-050c1956b702","savedPayload":{"position":{"x":6208.46433412996,"y":17180.39311345089},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Resistance Zone 2","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.resistance2Bounce1 > 0","project":"Superalgos","id":"8e52a153-4da1-4d25-9070-a9cab7901642","savedPayload":{"position":{"x":6234.109761975746,"y":16695.889719705072},"targetPosition":{"x":6532.5098579853475,"y":17032.72407469497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"0d2e9e03-1e4b-406a-8807-a56b112e4bf9","savedPayload":{"position":{"x":5881.542333200534,"y":16753.145596066883},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"909e78e1-4f46-48a0-b49f-d448973a5321","savedPayload":{"position":{"x":5416.677813895811,"y":16653.455543521588},"targetPosition":{"x":5866.610892272292,"y":16645.695067849218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eb9bc072-5c45-4901-8cce-f2c26a2f4505","savedPayload":{"position":{"x":5866.610892272292,"y":16645.695067849218},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 2","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"ca020c35-f86f-4b23-a952-ac6dbb8b1826","savedPayload":{"position":{"x":5439.111882189412,"y":16437.65246581046},"targetPosition":{"x":5877.827926419093,"y":16537.793528993654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b5c6aa09-4166-4c94-9967-b91524c21464","savedPayload":{"position":{"x":5877.827926419093,"y":16537.793528993654},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 3","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"36071756-7d18-4da4-a70c-51f4c463ebba","savedPayload":{"position":{"x":5512.539114128398,"y":16233.489057287843},"targetPosition":{"x":5914.541542388586,"y":16435.711824732345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fa8a71d2-4cc4-4fbe-a186-dcae6715bdae","savedPayload":{"position":{"x":5914.541542388586,"y":16435.711824732345},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 4","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"1fd4231d-7109-4078-a500-e8392f75f443","savedPayload":{"position":{"x":5632.692185889609,"y":16052.830553153275},"targetPosition":{"x":5974.618078269192,"y":16345.382572665061},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"44d57144-5dce-4b2a-aca2-2a2fb6cce4f5","savedPayload":{"position":{"x":5974.618078269192,"y":16345.382572665061},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 5","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.4\n}","project":"Superalgos","id":"dc876bc9-5380-4127-9091-b9d1855127e2","savedPayload":{"position":{"x":5792.588237680917,"y":15906.1761690001},"targetPosition":{"x":6054.5661041648455,"y":16272.055380588474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7ec7f8db-d303-479e-970d-11b1c6b585f8","savedPayload":{"position":{"x":6054.5661041648455,"y":16272.055380588474},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 6","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"0d4b045a-d31d-486e-b211-251eb97727e9","savedPayload":{"position":{"x":5982.934692170726,"y":15802.04892456832},"targetPosition":{"x":6149.73933140975,"y":16219.991758372584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78b93dc0-b51e-4e70-bf86-469ed1dc8b32","savedPayload":{"position":{"x":6149.73933140975,"y":16219.991758372584},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 7","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"a5f88045-13c6-4a79-a26d-808cbae1be55","savedPayload":{"position":{"x":6192.669305305288,"y":15746.500316817168},"targetPosition":{"x":6254.606637977031,"y":16192.217454497008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a094ed80-7548-488d-a6f7-b58b39c43d74","savedPayload":{"position":{"x":6254.606637977031,"y":16192.217454497008},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 8","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1\n}","project":"Superalgos","id":"5b2cf624-f0bf-4576-97e9-4caad311ced1","savedPayload":{"position":{"x":6409.6030637235235,"y":15742.758628918169},"targetPosition":{"x":6363.073517186149,"y":16190.346610547509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c76ac126-507c-4794-9ad4-b3541a1dae4a","savedPayload":{"position":{"x":6363.073517186149,"y":16190.346610547509},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 9","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"e177aa7b-44e6-46b7-9ba4-411fd4eb32a2","savedPayload":{"position":{"x":6621.128565908293,"y":15791.04131417153},"targetPosition":{"x":6468.836268278534,"y":16214.48795317419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94a8abfe-1c08-434a-b735-acc9eee52ea9","savedPayload":{"position":{"x":6468.836268278534,"y":16214.48795317419},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 10","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"88b78d7f-b935-4e2b-b7d2-fbe5c877a950","savedPayload":{"position":{"x":6814.952718536544,"y":15888.542358410747},"targetPosition":{"x":6565.748344592659,"y":16263.238475293798},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"731a3134-805c-432a-8ee4-44ae04ccaeb0","savedPayload":{"position":{"x":6565.748344592659,"y":16263.238475293798},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance2Bounce1 > 11","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1\n}","project":"Superalgos","id":"c843d74e-15ee-4fed-aafd-20c51853dea4","savedPayload":{"position":{"x":6979.811166379637,"y":16029.595355346515},"targetPosition":{"x":6648.177568514206,"y":16333.764973761681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"70790586-ea1f-44b7-bffd-891d0eb5629a","savedPayload":{"position":{"x":6648.177568514206,"y":16333.764973761681},"targetPosition":{"x":6316.543970648774,"y":16637.934592176847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6f9d86e1-164c-4ea4-992d-2917fda244ac","savedPayload":{"position":{"x":6316.543970648774,"y":16637.934592176847},"targetPosition":{"x":6532.5098579853475,"y":17032.72407469497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin - Zone Resistance","project":"Superalgos","id":"496ec3db-d47e-478d-be79-a266a0f1ee4b","savedPayload":{"position":{"x":6409.8076107078705,"y":16599.775857799395},"targetPosition":{"x":6532.5098579853475,"y":17032.72407469497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin - Zone Resistance","id":"055d64bb-b823-4593-b606-4f0a35ac620a"}}},{"type":"Polygon Vertex","name":"End - Zone Resistance","project":"Superalgos","id":"92e88ed6-dfb5-4d69-b739-2596eabe9562","savedPayload":{"position":{"x":6509.224053805425,"y":16583.3269548514},"targetPosition":{"x":6532.5098579853475,"y":17032.72407469497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End - Zone Resistance","id":"6d8e2772-7475-406d-b048-4599982d04e2"}}},{"type":"Polygon Vertex","name":"End + Zone Resistance","project":"Superalgos","id":"06940067-8e78-4652-80bb-53a20db38d36","savedPayload":{"position":{"x":6609.808144357608,"y":16589.412700011315},"targetPosition":{"x":6532.5098579853475,"y":17032.72407469497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End + Zone Resistance","id":"e2c53993-70fa-48f0-96b0-3c73a3baa50f"}}},{"type":"Polygon Vertex","name":"Begin + Zone Resistance","project":"Superalgos","id":"44754c48-5c48-4911-8782-729f29d1b01e","savedPayload":{"position":{"x":6706.516176061552,"y":16617.727928604956},"targetPosition":{"x":6532.5098579853475,"y":17032.72407469497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin + Zone Resistance","id":"d3cc8bbf-1f3e-49bc-9331-5e498064cb88"}}}],"id":"3032c972-5916-496b-9aec-fb9f49a9237f","savedPayload":{"position":{"x":6274.900787066268,"y":17147.07840434006},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Resistance Zone 3","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.resistance3Bounce1 > 0","project":"Superalgos","id":"1c336053-c230-4ad3-ab58-4b85d364a707","savedPayload":{"position":{"x":6367.696615003675,"y":16645.33330912921},"targetPosition":{"x":6606.585809987166,"y":17026.688724090294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"e7bdfc4c-a887-4a47-9402-e3be2aa390fa","savedPayload":{"position":{"x":6010.513738908674,"y":16643.777598479326},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"65f80810-1132-493b-86c5-b7ac04fb2e1b","savedPayload":{"position":{"x":5568.397809095339,"y":16468.93300322345},"targetPosition":{"x":6013.471719040444,"y":16535.334921013353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"af73149e-c55e-4cd1-8008-a4a0e0dc4bce","savedPayload":{"position":{"x":6013.471719040444,"y":16535.334921013353},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 2","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"1fe17781-8019-412d-bce7-e4015502c1dc","savedPayload":{"position":{"x":5626.045925095226,"y":16259.765724493103},"targetPosition":{"x":6042.295777040388,"y":16430.75128164818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"66a99f55-071a-4c17-8a4c-0a3ca27b49c5","savedPayload":{"position":{"x":6042.295777040388,"y":16430.75128164818},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 3","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"68425fb0-290a-4f0a-bc37-0afacae35c6f","savedPayload":{"position":{"x":5732.075897871924,"y":16070.472563912037},"targetPosition":{"x":6095.310763428737,"y":16336.104701357646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a8b5a03e-3f6c-4e73-893f-a2ead5f90bc4","savedPayload":{"position":{"x":6095.310763428737,"y":16336.104701357646},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 4","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"3fa93e36-a9e8-49db-830d-bdceda8dd236","savedPayload":{"position":{"x":5880.325650810904,"y":15912.054551920583},"targetPosition":{"x":6169.435639898227,"y":16256.89569536192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78bcd2f8-69b6-46ae-a646-d9584ec851f6","savedPayload":{"position":{"x":6169.435639898227,"y":16256.89569536192},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 5","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.4\n}","project":"Superalgos","id":"2d5b8980-b779-4c09-a2ba-eec5e1ec4ac3","savedPayload":{"position":{"x":6062.1794471373,"y":15793.718367549634},"targetPosition":{"x":6260.362538061425,"y":16197.727603176445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8aaddafc-5dcf-43a1-a4ad-2c2ecd043e2f","savedPayload":{"position":{"x":6260.362538061425,"y":16197.727603176445},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 6","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"f9981061-43b5-4e21-a886-d87c223ffdc3","savedPayload":{"position":{"x":6267.068605220258,"y":15722.341279700306},"targetPosition":{"x":6362.807117102904,"y":16162.03905925178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ab07d12e-f9cf-4d09-9fb3-b91ce3d0888b","savedPayload":{"position":{"x":6362.807117102904,"y":16162.03905925178},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 7","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"777654df-f75f-4334-b3a4-7a21904f3d71","savedPayload":{"position":{"x":6483.085711933803,"y":15702.071465273244},"targetPosition":{"x":6470.815670459677,"y":16151.904152038249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"839f62b1-f81f-4488-9b16-ae1b6ac067d1","savedPayload":{"position":{"x":6470.815670459677,"y":16151.904152038249},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 8","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1\n}","project":"Superalgos","id":"3b0ddd27-6b5b-42c5-b7cd-29c12de70616","savedPayload":{"position":{"x":6697.676638225959,"y":15734.086932205173},"targetPosition":{"x":6578.111133605755,"y":16167.911885504214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1d523fad-3f28-47d5-acaf-830a447aa2e8","savedPayload":{"position":{"x":6578.111133605755,"y":16167.911885504214},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 9","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"e8427a08-b22b-4d45-9261-62b73a8ab865","savedPayload":{"position":{"x":6898.370139466919,"y":15816.527057929488},"targetPosition":{"x":6678.4578842262345,"y":16209.131948366372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"51849845-cea5-4b51-9b06-14db6d2af55c","savedPayload":{"position":{"x":6678.4578842262345,"y":16209.131948366372},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 10","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"9b5fb0b3-6e28-41b0-8134-752a98b6b9b0","savedPayload":{"position":{"x":7073.502638855745,"y":15944.600721996765},"targetPosition":{"x":6766.024133920648,"y":16273.16878040001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"55ccd473-ac0c-4724-bfb9-2643edd7d674","savedPayload":{"position":{"x":6766.024133920648,"y":16273.16878040001},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance3Bounce1 > 11","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1\n}","project":"Superalgos","id":"090df02b-08db-48c7-aa8e-915be9ab8265","savedPayload":{"position":{"x":7212.896072108699,"y":16110.864748580243},"targetPosition":{"x":6835.720850547124,"y":16356.30079369175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1bac95a9-f98b-413c-9cb6-66e64391abae","savedPayload":{"position":{"x":6835.720850547124,"y":16356.30079369175},"targetPosition":{"x":6458.54562898555,"y":16601.736838803256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4b1db531-9768-4f0c-85e9-6f6f03685281","savedPayload":{"position":{"x":6458.54562898555,"y":16601.736838803256},"targetPosition":{"x":6606.585809987166,"y":17026.688724090294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin - Zone Resistance","project":"Superalgos","id":"a5770e2d-61db-4f56-ab84-0892dad59567","savedPayload":{"position":{"x":6556.8179958048095,"y":16579.44923045013},"targetPosition":{"x":6606.585809987166,"y":17026.688724090294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin - Zone Resistance","id":"e18fe7d1-bb71-4228-89ad-6eef714ec53f"}}},{"type":"Polygon Vertex","name":"End - Zone Resistance","project":"Superalgos","id":"c122c5b3-0024-426a-9965-e1e78daec055","savedPayload":{"position":{"x":6657.58592863947,"y":16579.58807781761},"targetPosition":{"x":6606.585809987166,"y":17026.688724090294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End - Zone Resistance","id":"30f76ba8-3516-4b19-bb42-ae4613d5ce10"}}},{"type":"Polygon Vertex","name":"End + Zone Resistance","project":"Superalgos","id":"66a2a41d-c2d3-424b-a5ad-cf339cb4d20f","savedPayload":{"position":{"x":6755.796502566951,"y":16602.146418518918},"targetPosition":{"x":6606.585809987166,"y":17026.688724090294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End + Zone Resistance","id":"d4105484-8b89-48f5-af7f-964d2e541120"}}},{"type":"Polygon Vertex","name":"Begin + Zone Resistance","project":"Superalgos","id":"c050df08-5b55-49ec-91e2-19bc9e16fe91","savedPayload":{"position":{"x":6846.525029318887,"y":16645.993083155856},"targetPosition":{"x":6606.585809987166,"y":17026.688724090294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin + Zone Resistance","id":"fc07018f-23a9-46dc-bb6a-f6ddac68be6c"}}}],"id":"753efd9a-f48d-4826-89ac-7f046667a26c","savedPayload":{"position":{"x":6345.914554274397,"y":17125.153145189775},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Resistance Zone 4","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.resistance4Bounce1 > 0","project":"Superalgos","id":"0931fce8-e103-4a66-b479-207e0662359e","savedPayload":{"position":{"x":6507.782829158572,"y":16617.45409543927},"targetPosition":{"x":6680.644848614458,"y":17032.92818877077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"03da2d32-5673-4d64-b99a-1b7dd6df2fe6","savedPayload":{"position":{"x":6155.7275234973895,"y":16557.12923350878},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"6913a704-6ff8-4978-bba2-2a0acf0d8672","savedPayload":{"position":{"x":5748.419953230543,"y":16311.899400315066},"targetPosition":{"x":6176.49423870206,"y":16450.65244034681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aad10167-a2b9-4055-90a6-e094f118e5d6","savedPayload":{"position":{"x":6176.49423870206,"y":16450.65244034681},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 2","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"b930f4ad-fcba-439d-864d-20082c52ed4e","savedPayload":{"position":{"x":5839.709626609663,"y":16115.073458670857},"targetPosition":{"x":6222.13907539162,"y":16352.239469524706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7cc16cba-79d9-4ebb-af5e-2e9f19e4faaa","savedPayload":{"position":{"x":6222.13907539162,"y":16352.239469524706},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 3","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"9532bb2f-ad66-44dd-a5e4-58848c302734","savedPayload":{"position":{"x":5975.450118966226,"y":15945.81397000155},"targetPosition":{"x":6290.009321569902,"y":16267.609725190054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ce42776f-7050-49de-9d8c-9a616656e668","savedPayload":{"position":{"x":6290.009321569902,"y":16267.609725190054},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 4","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"342c81eb-3f45-4f5c-afdf-51dc77db3926","savedPayload":{"position":{"x":6147.752686281077,"y":15813.957680555402},"targetPosition":{"x":6376.160605227327,"y":16201.681580466979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"970ed430-5c9c-4d26-bb87-a8a5a8dc0498","savedPayload":{"position":{"x":6376.160605227327,"y":16201.681580466979},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 5","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.4\n}","project":"Superalgos","id":"d60fc74e-067a-4b1a-80f9-8f298c70c256","savedPayload":{"position":{"x":6346.6037296362265,"y":15727.167598596905},"targetPosition":{"x":6475.586126904902,"y":16158.28653948773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d647e933-5853-4c85-9f38-7734330f63bf","savedPayload":{"position":{"x":6475.586126904902,"y":16158.28653948773},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 6","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"80b842ae-273d-4398-b18e-8820ff04911b","savedPayload":{"position":{"x":6560.44674918602,"y":15690.487648220384},"targetPosition":{"x":6582.507636679798,"y":16139.94656429947},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"133d0702-17ee-4271-ae5b-f246b0817695","savedPayload":{"position":{"x":6582.507636679798,"y":16139.94656429947},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 7","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"a78374c3-ee33-4150-aece-843122eb04d8","savedPayload":{"position":{"x":6776.8539659219605,"y":15706.049534815518},"targetPosition":{"x":6690.711245047769,"y":16147.727507597036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eb6649aa-3dc5-4e46-a147-7ee698f9f8e0","savedPayload":{"position":{"x":6690.711245047769,"y":16147.727507597036},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 8","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1\n}","project":"Superalgos","id":"ad7af22b-223f-4c23-819c-2515e5ab7274","savedPayload":{"position":{"x":6983.248579015584,"y":15772.948858098562},"targetPosition":{"x":6793.908551594581,"y":16181.17716923856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7301cf1f-91d4-4d0a-8486-c4c9cd816dc4","savedPayload":{"position":{"x":6793.908551594581,"y":16181.17716923856},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 9","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"835e1082-9b76-4d13-aba3-6c2419878c99","savedPayload":{"position":{"x":7167.635683767781,"y":15887.297672569446},"targetPosition":{"x":6886.102103970679,"y":16238.351576474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eac5c80e-8e70-41e7-abe8-5da4d4a8d944","savedPayload":{"position":{"x":6886.102103970679,"y":16238.351576474},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 10","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"2db96f60-f66f-4706-a8f7-ccae83d23d4a","savedPayload":{"position":{"x":7319.29937187022,"y":16042.450440772154},"targetPosition":{"x":6961.933948021899,"y":16315.927960575355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dec0fb37-e4e6-4e00-8a6f-a60a44708a66","savedPayload":{"position":{"x":6961.933948021899,"y":16315.927960575355},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance4Bounce1 > 11","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1\n}","project":"Superalgos","id":"2bb56777-1ea8-4227-acaf-578f3872f00d","savedPayload":{"position":{"x":7429.425501045451,"y":16229.390247776108},"targetPosition":{"x":7016.997012609514,"y":16409.39786407733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9ffc117c-9495-407c-9aed-1b6ef6ba210a","savedPayload":{"position":{"x":7016.997012609514,"y":16409.39786407733},"targetPosition":{"x":6604.568524173577,"y":16589.405480378555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d181f92f-7c33-429e-9f32-13afcadaac04","savedPayload":{"position":{"x":6604.568524173577,"y":16589.405480378555},"targetPosition":{"x":6680.644848614458,"y":17032.92818877077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin - Zone Resistance","project":"Superalgos","id":"9edd9a7b-2d22-45b3-b481-b8ac59d25f32","savedPayload":{"position":{"x":6705.169003763112,"y":16583.59694590617},"targetPosition":{"x":6680.644848614458,"y":17032.92818877077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin - Zone Resistance","id":"79408eb2-e914-4f85-96c6-0baa918f5f91"}}},{"type":"Polygon Vertex","name":"End - Zone Resistance","project":"Superalgos","id":"40a3e87b-ccb4-4c11-9553-a1934ffe3397","savedPayload":{"position":{"x":6804.539739809541,"y":16600.31975619489},"targetPosition":{"x":6680.644848614458,"y":17032.92818877077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End - Zone Resistance","id":"9479606b-5668-40a4-8e34-40976668e11b"}}},{"type":"Polygon Vertex","name":"End + Zone Resistance","project":"Superalgos","id":"d985e769-5063-49f1-825a-8c469bebb1fc","savedPayload":{"position":{"x":6897.697868671436,"y":16638.735359708462},"targetPosition":{"x":6680.644848614458,"y":17032.92818877077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End + Zone Resistance","id":"98ef8287-1ef2-498f-ae25-580a148f8fae"}}},{"type":"Polygon Vertex","name":"Begin + Zone Resistance","project":"Superalgos","id":"3d630c8d-3820-4190-adcf-cc372272af3f","savedPayload":{"position":{"x":6979.9720527731915,"y":16696.917437677126},"targetPosition":{"x":6680.644848614458,"y":17032.92818877077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin + Zone Resistance","id":"09f1f62c-723a-4588-ae76-d195aa1cb276"}}}],"id":"0fb57b23-fb5d-429c-bc75-84008becc00e","savedPayload":{"position":{"x":6419.568565303984,"y":17115.21539991477},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Resistance Zone 5","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.resistance5Bounce1 > 0","project":"Superalgos","id":"082cf5a1-8c77-42c1-a19e-def34f93c0c3","savedPayload":{"position":{"x":6650.547217695796,"y":16613.012550909018},"targetPosition":{"x":6752.666836350971,"y":17051.27227240498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"50abec57-e340-4709-9f4c-9fae0b30a09a","savedPayload":{"position":{"x":6313.222633467176,"y":16495.564042676207},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"15f87ebf-d18f-4e4f-93aa-545c0bbf36ab","savedPayload":{"position":{"x":5951.833711492109,"y":16186.63820212771},"targetPosition":{"x":6351.23162188875,"y":16393.957543171415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"468bd43d-c2d6-4597-b1a5-6a401b0fe336","savedPayload":{"position":{"x":6351.23162188875,"y":16393.957543171415},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 2","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"2a0d3dfc-d790-4eb4-9951-389ad56d9a10","savedPayload":{"position":{"x":6074.27479793509,"y":16007.522496170757},"targetPosition":{"x":6412.4521651102405,"y":16304.399690192939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6247696c-f48e-41fb-aef2-e051ead37498","savedPayload":{"position":{"x":6412.4521651102405,"y":16304.399690192939},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 3","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"c4c3fb3e-85a5-4f01-ad3f-b86d52b965b3","savedPayload":{"position":{"x":6236.023163089085,"y":15862.913637037556},"targetPosition":{"x":6493.326347687238,"y":16232.095260626338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6bc50b65-7c74-440e-8a08-e1d28540dff8","savedPayload":{"position":{"x":6493.326347687238,"y":16232.095260626338},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 4","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"1ba3d543-f241-4ce5-85f1-98579b075881","savedPayload":{"position":{"x":6427.6785799027275,"y":15761.215765989115},"targetPosition":{"x":6589.154056094059,"y":16181.246325102118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"edbd4422-89b8-4074-8ea5-994d62142496","savedPayload":{"position":{"x":6589.154056094059,"y":16181.246325102118},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 5","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.4\n}","project":"Superalgos","id":"d91e1d41-dcc5-4992-aff7-eba6f8aae36a","savedPayload":{"position":{"x":6638.102732189895,"y":15708.339193634041},"targetPosition":{"x":6694.366132237643,"y":16154.80803892458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b46b6072-5682-463b-abec-ba1b8433d5c1","savedPayload":{"position":{"x":6694.366132237643,"y":16154.80803892458},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 6","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"d39d125f-5ebd-4dc3-97b5-e34f6835342e","savedPayload":{"position":{"x":6855.066533080339,"y":15707.3569141591},"targetPosition":{"x":6802.848032682865,"y":16154.31689918711},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"95087207-6903-418b-87b1-91574b8bf084","savedPayload":{"position":{"x":6802.848032682865,"y":16154.31689918711},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 7","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"0275cc41-3916-47b3-a2a0-70dca25d0db0","savedPayload":{"position":{"x":7065.960835097634,"y":15758.326014076929},"targetPosition":{"x":6908.295183691513,"y":16179.801449146024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"39aa9f71-a813-4da9-b937-eb9dc298b483","savedPayload":{"position":{"x":6908.295183691513,"y":16179.801449146024},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 8","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1\n}","project":"Superalgos","id":"4f0b8341-c2cb-4cad-8d3d-cd3543a4ace9","savedPayload":{"position":{"x":7258.529227978135,"y":15858.284354565447},"targetPosition":{"x":7004.579380131763,"y":16229.780619390283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7593aaba-e315-4982-8fa1-ffca6ef48e2f","savedPayload":{"position":{"x":7004.579380131763,"y":16229.780619390283},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 9","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"e62a0cfa-f94a-4cf9-bafe-7af99b6a2e7d","savedPayload":{"position":{"x":7421.580336685249,"y":16001.422720209244},"targetPosition":{"x":7086.10493448532,"y":16301.349802212182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b8728df0-cd33-4ffd-b6c2-240efc3b1e23","savedPayload":{"position":{"x":7086.10493448532,"y":16301.349802212182},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 10","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"02ad3590-953f-4dfe-92e7-6376926da1a4","savedPayload":{"position":{"x":7545.638223447582,"y":16179.422429483893},"targetPosition":{"x":7148.133877866487,"y":16390.349656849507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8daaa494-c0c7-4be8-932f-5e4186bc4164","savedPayload":{"position":{"x":7148.133877866487,"y":16390.349656849507},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.resistance5Bounce1 > 11","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1\n}","project":"Superalgos","id":"5cc087f1-293f-40f8-832f-a5003ddf7ce2","savedPayload":{"position":{"x":7623.4930948185865,"y":16381.938786288963},"targetPosition":{"x":7187.061313551989,"y":16491.60783525204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a80e57e-0552-42b6-a9c3-8fbbfe38a615","savedPayload":{"position":{"x":7187.061313551989,"y":16491.60783525204},"targetPosition":{"x":6750.629532285391,"y":16601.27688421512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2db093f9-9a3d-4633-afc3-47d7b7a1ba43","savedPayload":{"position":{"x":6750.629532285391,"y":16601.27688421512},"targetPosition":{"x":6752.666836350971,"y":17051.27227240498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin - Zone Resistance","project":"Superalgos","id":"9b24e6a9-06da-4deb-8710-91d5bd430b2c","savedPayload":{"position":{"x":6850.814005807879,"y":16612.105865302165},"targetPosition":{"x":6752.666836350971,"y":17051.27227240498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin - Zone Resistance","id":"8ae90185-2a00-4958-95c1-83aa4b6402ee"}}},{"type":"Polygon Vertex","name":"End - Zone Resistance","project":"Superalgos","id":"31685577-64d9-4165-8f22-9ee5687950d5","savedPayload":{"position":{"x":6946.076970426908,"y":16644.95648384056},"targetPosition":{"x":6752.666836350971,"y":17051.27227240498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End - Zone Resistance","id":"1f76e686-6537-4818-a4c8-f70dc4ec3c4f"}}},{"type":"Polygon Vertex","name":"End + Zone Resistance","project":"Superalgos","id":"60b0dc5b-992a-4c56-baed-99f61db77df2","savedPayload":{"position":{"x":7031.641543312984,"y":16698.181472644552},"targetPosition":{"x":6752.666836350971,"y":17051.27227240498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End + Zone Resistance","id":"ee66793e-1c2d-4a17-8c0c-f086656eb0a6"}}},{"type":"Polygon Vertex","name":"Begin + Zone Resistance","project":"Superalgos","id":"3381e89f-ca2d-4f2a-808d-6dd705b6da98","savedPayload":{"position":{"x":7103.217159495052,"y":16769.111908527313},"targetPosition":{"x":6752.666836350971,"y":17051.27227240498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin + Zone Resistance","id":"72bab256-b619-4bb5-b188-e3da6d412f2f"}}}],"id":"550e31bb-a95f-4fad-bfbb-b42aae7dc5d3","savedPayload":{"position":{"x":6493.8537307358165,"y":17117.53624430038},"targetPosition":{"x":6442.706934786245,"y":17564.620134933997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"706e4ed7-a497-41a4-a9b0-28f07c4c3b69","savedPayload":{"position":{"x":6442.706934786245,"y":17564.620134933997},"targetPosition":{"x":6875.274697958492,"y":17688.656945051647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Resistance Bounces","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Level 1 ZONE","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance1Bounce1","project":"Superalgos","id":"19e11730-5eb7-4185-8d37-0ff69d6124ad","savedPayload":{"position":{"x":12836.41734410961,"y":6363.007333404816},"targetPosition":{"x":12979.279252683024,"y":6548.054726167046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"efea3cfd-0f4a-4ae0-9370-33474500839b","savedPayload":{"position":{"x":12979.279252683024,"y":6548.054726167046},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 1 @ 2 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance1Bounce2","project":"Superalgos","id":"271bbb18-0632-42ad-82c4-c4212c705df2","savedPayload":{"position":{"x":12998.448594212401,"y":6258.054873093001},"targetPosition":{"x":13108.904252765256,"y":6464.092757917595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"928c418e-3c43-4207-b50d-23bad01797e1","savedPayload":{"position":{"x":13108.904252765256,"y":6464.092757917595},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 1 @ 3 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance1Bounce3","project":"Superalgos","id":"a8976927-0aa4-40ea-86d7-027862c25e8e","savedPayload":{"position":{"x":13175.544556459743,"y":6181.20329476786},"targetPosition":{"x":13250.581022563128,"y":6402.611495257482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"fa920c04-f22d-4664-ba32-da5b20c08547","savedPayload":{"position":{"x":13250.581022563128,"y":6402.611495257482},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 1 @ 5 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance1Bounce5","project":"Superalgos","id":"20cbe22e-edd4-4907-97a7-845941d2c1dd","savedPayload":{"position":{"x":13362.87451465624,"y":6134.548909148992},"targetPosition":{"x":13400.444989120326,"y":6365.287986762387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"af681228-ea92-40fa-ad2b-52dd554054e4","savedPayload":{"position":{"x":13400.444989120326,"y":6365.287986762387},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 1 @ 10 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance1Bounce10","project":"Superalgos","id":"7763bf76-320a-46eb-b178-96d26ce2397a","savedPayload":{"position":{"x":13555.328595875053,"y":6119.36432625717},"targetPosition":{"x":13554.408254095375,"y":6353.14032044893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"b51a6189-7b10-413f-b7ac-774c1d3101b0","savedPayload":{"position":{"x":13554.408254095375,"y":6353.14032044893},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 1 @ All","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance1BounceAll","project":"Superalgos","id":"485706b2-81af-4cea-8073-be49adbfb553","savedPayload":{"position":{"x":13747.657154470879,"y":6136.063741930433},"targetPosition":{"x":13708.271100972037,"y":6366.49985298754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"696352b4-4de4-42a0-9262-cc44f98ad112","savedPayload":{"position":{"x":13708.271100972037,"y":6366.49985298754},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 ZONE","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance2Bounce1","project":"Superalgos","id":"5b9eb49c-20c0-4635-90b4-f67412864b48","savedPayload":{"position":{"x":13934.613968728358,"y":6184.191639641339},"targetPosition":{"x":13857.83655237802,"y":6405.002171156265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"33f2c959-9c62-4372-b925-a4cb4caed593","savedPayload":{"position":{"x":13857.83655237802,"y":6405.002171156265},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 @ 2 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance2Bounce2","project":"Superalgos","id":"3e974257-e6e9-4b40-b1df-24c9ecc00ad1","savedPayload":{"position":{"x":14111.09934411458,"y":6262.435215800403},"targetPosition":{"x":13999.024852686998,"y":6467.597032083516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"0b9de83a-dc2c-4031-a516-4410130e45e4","savedPayload":{"position":{"x":13999.024852686998,"y":6467.597032083516},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 @ 3 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance2Bounce3","project":"Superalgos","id":"3c98c74a-5f60-4493-9c7d-398b6c84ce7d","savedPayload":{"position":{"x":14272.299219652057,"y":6368.6601896157845},"targetPosition":{"x":14127.98475311698,"y":6552.5770111358215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"e318ca5e-f179-42c4-a81e-d267697a9d4f","savedPayload":{"position":{"x":14127.98475311698,"y":6552.5770111358215},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 @ 5 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance2Bounce5","project":"Superalgos","id":"79505072-1808-46e6-95be-3676d263ade3","savedPayload":{"position":{"x":14413.816482952832,"y":6499.96902070964},"targetPosition":{"x":14241.1985637576,"y":6657.624076010906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"41586c08-f8d7-4786-8659-fdd065c250f1","savedPayload":{"position":{"x":14241.1985637576,"y":6657.624076010906},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 @ 10 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance2Bounce10","project":"Superalgos","id":"506022c0-8f3e-48c2-a0b6-8f1dc42f31c1","savedPayload":{"position":{"x":14531.79091198204,"y":6652.779946466307},"targetPosition":{"x":14335.578106980967,"y":6779.872816616239},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"4e44fa84-0ff5-414c-ba9c-37444ff4c34b","savedPayload":{"position":{"x":14335.578106980967,"y":6779.872816616239},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 @ All","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance2BounceAll","project":"Superalgos","id":"3267f58b-c446-4ca9-a0c1-614b28dd45da","savedPayload":{"position":{"x":14623.004471852142,"y":6822.924683179494},"targetPosition":{"x":14408.54895487705,"y":6915.9886059867895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"1a91ff9b-6df8-4e5a-8369-f962e2cf0939","savedPayload":{"position":{"x":14408.54895487705,"y":6915.9886059867895},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 ZONE","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance3Bounce1","project":"Superalgos","id":"b8fefe16-88c8-46c7-aff6-f1f6a82a2235","savedPayload":{"position":{"x":14684.969094425887,"y":7005.762125965893},"targetPosition":{"x":14458.120652936042,"y":7062.258560215908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"82c0551b-691c-4d7f-8380-9dcab27af775","savedPayload":{"position":{"x":14458.120652936042,"y":7062.258560215908},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 @ 2 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance3Bounce2","project":"Superalgos","id":"c750976a-b090-4018-98c4-5b435b20586c","savedPayload":{"position":{"x":14715.994546329177,"y":7196.304946007931},"targetPosition":{"x":14482.941014458676,"y":7214.692816249539},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"726070ae-bc63-4509-a421-164dfb43a1ec","savedPayload":{"position":{"x":14482.941014458676,"y":7214.692816249539},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 @ 3 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance3Bounce3","project":"Superalgos","id":"69d28461-7ed2-448f-a240-5bcbe67477d4","savedPayload":{"position":{"x":14715.234534111412,"y":7389.355631882926},"targetPosition":{"x":14482.333004684464,"y":7369.133364949535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"07b0eac7-9674-4894-813b-6750063b7c77","savedPayload":{"position":{"x":14482.333004684464,"y":7369.133364949535},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 @ 5 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance3Bounce5","project":"Superalgos","id":"67145f61-12a8-4ebd-a4c3-4ea001b8d0e8","savedPayload":{"position":{"x":14682.709788924687,"y":7579.648264125781},"targetPosition":{"x":14456.313208535084,"y":7521.367470743819},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"1a5e3bc0-ea93-49fd-a4e3-47734fd92d8a","savedPayload":{"position":{"x":14456.313208535084,"y":7521.367470743819},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 @ 10 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance3Bounce10","project":"Superalgos","id":"cd167fdb-412f-4319-b2e6-9f181d0d8255","savedPayload":{"position":{"x":14619.30750103201,"y":7761.992155784783},"targetPosition":{"x":14405.591378220943,"y":7667.24258407102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"6064d4e0-e627-4f14-8d25-9f7634703aa2","savedPayload":{"position":{"x":14405.591378220943,"y":7667.24258407102},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 @ All","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance3BounceAll","project":"Superalgos","id":"0b609743-af25-4879-af19-a29fe6b69c70","savedPayload":{"position":{"x":14526.75711956967,"y":7931.413440830527},"targetPosition":{"x":14331.551073051069,"y":7802.779612107615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"04d4d459-e942-407a-9fdf-7a010a610e3a","savedPayload":{"position":{"x":14331.551073051069,"y":7802.779612107615},"targetPosition":{"x":13550.72688697667,"y":7288.244297215969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ae66154f-2772-495c-a77b-1989dba9a3e7","savedPayload":{"position":{"x":6690.576255360793,"y":17452.25371896963},"targetPosition":{"x":6875.274697958492,"y":17688.656945051647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Resistance Levels","config":"{ \n\"codeName\": \"Resistances Rates & Periods\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Rate 1","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance1Rate","project":"Superalgos","id":"bc06940a-6869-473e-9c2b-51e2c842595d","savedPayload":{"position":{"x":11449.086580941446,"y":5743.262585924497},"targetPosition":{"x":12112.362612601031,"y":6397.434927822636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6128b932-f039-4825-aff3-9b000b167e1b","savedPayload":{"position":{"x":12112.362612601031,"y":6397.434927822636},"targetPosition":{"x":12775.958756851214,"y":7051.364410930214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period 1","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance1Period","project":"Superalgos","id":"c32e2d59-7d5b-49b7-b094-4d3cb9110cf0","savedPayload":{"position":{"x":11649.057158444186,"y":5567.481220611895},"targetPosition":{"x":12212.417854912794,"y":6309.455178877819},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"99549259-ee7d-4cc2-9539-4e6fc71685fe","savedPayload":{"position":{"x":12212.417854912794,"y":6309.455178877819},"targetPosition":{"x":12775.958756851214,"y":7051.364410930214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate 2","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance2Rate","project":"Superalgos","id":"a6a4f0a8-8c28-4044-8a6c-5d4570b7e2d4","savedPayload":{"position":{"x":11871.845477222683,"y":5422.105157237463},"targetPosition":{"x":12323.843465363134,"y":6236.735861451476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fdb40161-0479-4dc2-8597-6a07de70a255","savedPayload":{"position":{"x":12323.843465363134,"y":6236.735861451476},"targetPosition":{"x":12775.958756851214,"y":7051.364410930214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period 2","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance2Period","project":"Superalgos","id":"7db005db-700c-4b6c-8778-754f72c74872","savedPayload":{"position":{"x":12113.007832192547,"y":5309.952611259298},"targetPosition":{"x":12444.459641422247,"y":6180.638676113107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c2ae4875-3ec7-43a4-903d-3e60f9c44e97","savedPayload":{"position":{"x":12444.459641422247,"y":6180.638676113107},"targetPosition":{"x":12775.958756851214,"y":7051.364410930214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate 3","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance3Rate","project":"Superalgos","id":"d845f56a-ff31-412a-8a32-0b579d044f09","savedPayload":{"position":{"x":12367.697472748237,"y":5233.269148775038},"targetPosition":{"x":12571.815923044589,"y":6142.293180927769},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"098554ac-043a-43c1-a87c-09bec4bbd3af","savedPayload":{"position":{"x":12571.815923044589,"y":6142.293180927769},"targetPosition":{"x":12775.958756851214,"y":7051.364410930214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period 3","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance3Period","project":"Superalgos","id":"92d8b4e1-da71-47b1-9501-e693f9e76290","savedPayload":{"position":{"x":12630.705785001759,"y":5193.63119226947},"targetPosition":{"x":12703.32939443407,"y":6122.470805495636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bb93a05d-7b62-4a48-9fbd-e6f47a8bd962","savedPayload":{"position":{"x":12703.32939443407,"y":6122.470805495636},"targetPosition":{"x":12775.958756851214,"y":7051.364410930214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate 4","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance4Rate","project":"Superalgos","id":"654cbecf-716f-4df3-a49a-816c0607ea25","savedPayload":{"position":{"x":12896.063116482663,"y":5191.836598099559},"targetPosition":{"x":12836.04006057015,"y":6121.573995978802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dfb65955-2b62-485a-adc3-78dab8ed4602","savedPayload":{"position":{"x":12836.04006057015,"y":6121.573995978802},"targetPosition":{"x":12775.958756851214,"y":7051.364410930214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period 4","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance4Period","project":"Superalgos","id":"32e7a536-bc8a-4e1d-b5ae-2f495604218e","savedPayload":{"position":{"x":13159.586664443475,"y":5227.923839332263},"targetPosition":{"x":12967.83156585525,"y":6139.626932132225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c5d75ff9-cee7-4d53-ac2c-81c6f5ee5f28","savedPayload":{"position":{"x":12967.83156585525,"y":6139.626932132225},"targetPosition":{"x":12775.958756851214,"y":7051.364410930214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate 5","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance5Rate","project":"Superalgos","id":"f4ba1f5e-7fc6-4afa-8cc9-7588c9dd63eb","savedPayload":{"position":{"x":13415.327490100259,"y":5301.17343502693},"targetPosition":{"x":13095.741209385797,"y":6176.271708140687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"57a7830b-b73c-4332-81d2-8fd13a6f2666","savedPayload":{"position":{"x":13095.741209385797,"y":6176.271708140687},"targetPosition":{"x":12775.958756851214,"y":7051.364410930214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period 5","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.resistance5Period","project":"Superalgos","id":"aa5f5bdc-b7c9-4480-a31a-aecd9d050335","savedPayload":{"position":{"x":13658.231918343812,"y":5410.198645529203},"targetPosition":{"x":13217.288724029819,"y":6230.84639733094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94b8ef36-ab61-481b-94e2-59c12afa224a","savedPayload":{"position":{"x":13217.288724029819,"y":6230.84639733094},"targetPosition":{"x":12775.958756851214,"y":7051.364410930214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dfd9d091-e377-4ece-be8c-5916271e161b","savedPayload":{"position":{"x":6864.8048489477405,"y":17388.839696945917},"targetPosition":{"x":6875.274697958492,"y":17688.656945051647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Resistance Zone Sizes","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Zone * 1","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.supportResistanceZone","project":"Superalgos","id":"d6cb0538-10ab-4849-8966-1e5e4071140e","savedPayload":{"position":{"x":13831.861613882029,"y":8926.923540123149},"targetPosition":{"x":13716.063388111445,"y":8909.773700247253},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"65b668fb-93ae-465b-b8cd-4bb809d1133b","savedPayload":{"position":{"x":13716.063388111445,"y":8909.773700247253},"targetPosition":{"x":13254.759105347213,"y":8840.613239383394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Zone * 2","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.supportResistanceZone * 2","project":"Superalgos","id":"0b1d7b11-e52c-4174-bdf1-7073e0ca3cdd","savedPayload":{"position":{"x":13711.105570968513,"y":9204.203628736492},"targetPosition":{"x":13619.508204913298,"y":9131.306940811997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"4c85c218-3b93-4066-9f5a-502c6185f65b","savedPayload":{"position":{"x":13619.508204913298,"y":9131.306940811997},"targetPosition":{"x":13254.759105347213,"y":8840.613239383394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Zone * 3","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.supportResistanceZone * 3","project":"Superalgos","id":"a736e939-3c77-474a-811a-5415d69645d2","savedPayload":{"position":{"x":13467.948528613022,"y":9383.760311671766},"targetPosition":{"x":13425.171586472883,"y":9274.781667525405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"3207cf58-21a5-46a5-859b-09097ae163cc","savedPayload":{"position":{"x":13425.171586472883,"y":9274.781667525405},"targetPosition":{"x":13254.759105347213,"y":8840.613239383394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Zone * 5","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.supportResistanceZone * 5","project":"Superalgos","id":"29bf1a3e-b2a3-4f4d-aa89-cb399a82b956","savedPayload":{"position":{"x":13168.245078865399,"y":9417.565934309492},"targetPosition":{"x":13185.45178968615,"y":9301.806734746733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"4c83cdb9-4a58-455f-ac1a-f945a002d59d","savedPayload":{"position":{"x":13185.45178968615,"y":9301.806734746733},"targetPosition":{"x":13254.759105347213,"y":8840.613239383394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Zone * 10","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.supportResistanceZone * 10","project":"Superalgos","id":"3d9c734f-8270-4a2e-9bc8-a2b44ba14c67","savedPayload":{"position":{"x":12891.232902019365,"y":9296.405924115468},"targetPosition":{"x":12964.030858225542,"y":9205.079312280652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"13dac5fd-938e-4c10-a9bc-3a81bfa60c4f","savedPayload":{"position":{"x":12964.030858225542,"y":9205.079312280652},"targetPosition":{"x":13254.759105347213,"y":8840.613239383394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5341a87b-52b4-455d-b8f6-d1cbc4102fb1","savedPayload":{"position":{"x":7043.032568999715,"y":17439.945673285136},"targetPosition":{"x":6875.274697958492,"y":17688.656945051647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"156b4fa7-7f8f-4464-8ddb-6eb6123bc5c3","savedPayload":{"position":{"x":6875.274697958492,"y":17688.656945051647},"targetPosition":{"x":6977.880740956192,"y":17970.56473128742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Supports","config":"{ \n\"codeName\": \"Resistances-And-Supports\",\n\"icon\": \"layer-support\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Base Support","project":"Superalgos","points":[{"type":"Point","name":"Base Left","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin - (record.end - record.begin)\ny = record.rateSupport","project":"Superalgos","id":"8bb830a6-b8f7-45c5-9f5e-b32b13680bff","savedPayload":{"position":{"x":10051.959831322049,"y":9322.247270852586},"targetPosition":{"x":10827.923351453628,"y":8806.128022917392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c3182836-3d36-45b4-8384-d4ecf78ebcc0","savedPayload":{"position":{"x":10827.923351453628,"y":8806.128022917392},"targetPosition":{"x":11603.92533270528,"y":8289.968102203837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Base Right","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end- (record.end - record.begin)\ny = record.rateSupport","project":"Superalgos","id":"a8ca9f48-585e-4f2d-adb4-e4909bdf4791","savedPayload":{"position":{"x":9743.624542417856,"y":8407.799689063173},"targetPosition":{"x":10673.736653251188,"y":8348.876503125022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"beb7e536-5af8-4b52-8194-8053bf181c4a","savedPayload":{"position":{"x":10673.736653251188,"y":8348.876503125022},"targetPosition":{"x":11603.92533270528,"y":8289.968102203837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f84691c4-7a7e-4dba-bd93-82443b0b1f22","savedPayload":{"position":{"x":6799.0760974197,"y":17473.33777109327},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Support Levels","project":"Superalgos","points":[{"type":"Point","name":"Begin 1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support1Rate","project":"Superalgos","id":"09444c80-7a46-4b7a-8c68-5e01e88e589d","savedPayload":{"position":{"x":11991.0117708082,"y":11431.936825238216},"targetPosition":{"x":11826.608107168144,"y":10513.666696580423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d621b89c-3082-47ed-836e-7a98d611df2b","savedPayload":{"position":{"x":11826.608107168144,"y":10513.666696580423},"targetPosition":{"x":11662.194201726015,"y":9595.295397008213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support1Rate","project":"Superalgos","id":"67cb9789-cfe5-40e4-95c8-9b979a1fab14","savedPayload":{"position":{"x":11726.189847131089,"y":11460.055650483813},"targetPosition":{"x":11694.124365421416,"y":10527.721192620991},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bed52b2e-acb6-4b21-90de-8fd08dcd5d34","savedPayload":{"position":{"x":11694.124365421416,"y":10527.721192620991},"targetPosition":{"x":11662.194201726015,"y":9595.295397008213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support2Rate","project":"Superalgos","id":"03925809-b409-4894-bfda-530b1a0459d1","savedPayload":{"position":{"x":11424.187911531735,"y":11472.339825193978},"targetPosition":{"x":11561.271700832385,"y":10522.788015220935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"95e33e9a-7524-4efa-b431-7b4532cf947b","savedPayload":{"position":{"x":11561.271700832385,"y":10522.788015220935},"targetPosition":{"x":11662.194201726015,"y":9595.295397008213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support2Rate","project":"Superalgos","id":"a62f6b4c-385c-478a-93c1-859aa0474043","savedPayload":{"position":{"x":11198.399716088956,"y":11402.534589673309},"targetPosition":{"x":11430.313728914593,"y":10498.971793032522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"636187fb-4abe-4524-a3e2-c5930abb7b15","savedPayload":{"position":{"x":11430.313728914593,"y":10498.971793032522},"targetPosition":{"x":11662.194201726015,"y":9595.295397008213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support3Rate","project":"Superalgos","id":"7212b514-8bde-4ae1-a992-fb4071aa8488","savedPayload":{"position":{"x":10946.045211521825,"y":11318.148408215879},"targetPosition":{"x":11304.148694004616,"y":10456.784546673687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"85f4f1ed-4b3d-4381-af30-a85e4bfd6dd7","savedPayload":{"position":{"x":11304.148694004616,"y":10456.784546673687},"targetPosition":{"x":11662.194201726015,"y":9595.295397008213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support3Rate","project":"Superalgos","id":"a9fc5970-796f-4544-87ca-00348ed4046a","savedPayload":{"position":{"x":10708.668663032491,"y":11198.702309115031},"targetPosition":{"x":11185.723043754158,"y":10397.08399432563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9fc5841d-ba9c-4ae6-a445-d609b0e947dd","savedPayload":{"position":{"x":11185.723043754158,"y":10397.08399432563},"targetPosition":{"x":11662.194201726015,"y":9595.295397008213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support4Rate","project":"Superalgos","id":"118ccc56-a5b5-4920-a501-4189b994d311","savedPayload":{"position":{"x":10499.612405116659,"y":11003.88549970728},"targetPosition":{"x":11085.875743500652,"y":10278.36108386413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e69a3f5b-dcde-4d4a-8ac7-87616ebf68f3","savedPayload":{"position":{"x":11085.875743500652,"y":10278.36108386413},"targetPosition":{"x":11662.194201726015,"y":9595.295397008213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support4Rate","project":"Superalgos","id":"ebba1443-0bea-488a-96eb-296a71982003","savedPayload":{"position":{"x":10294.600380080316,"y":10864.386052114005},"targetPosition":{"x":10978.193225141138,"y":10229.679564845754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1832f8f2-ac4a-4e1f-94ff-c29c18a350d7","savedPayload":{"position":{"x":10978.193225141138,"y":10229.679564845754},"targetPosition":{"x":11662.194201726015,"y":9595.295397008213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support5Rate","project":"Superalgos","id":"423203ac-08c7-48d8-a842-2b604424d7fb","savedPayload":{"position":{"x":10128.021251642174,"y":10657.009879601028},"targetPosition":{"x":10894.988237435951,"y":10126.076292865784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aa501f2a-8d27-40af-aaea-58bc7c5f42db","savedPayload":{"position":{"x":10894.988237435951,"y":10126.076292865784},"targetPosition":{"x":11662.194201726015,"y":9595.295397008213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support5Rate","project":"Superalgos","id":"7e6b4f5d-ef8e-4dd6-bc79-4df9a7bed772","savedPayload":{"position":{"x":9992.458942693982,"y":10427.708386149658},"targetPosition":{"x":10827.200783319553,"y":10011.383343169347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6aa7f5e1-5987-4619-8ec7-39a424d7734a","savedPayload":{"position":{"x":10827.200783319553,"y":10011.383343169347},"targetPosition":{"x":11662.194201726015,"y":9595.295397008213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"97155ce8-2969-4d0a-8626-1205a45a0ada","savedPayload":{"position":{"x":6799.258153617109,"y":17423.790498281833},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Support Zone 1","project":"Superalgos","points":[{"type":"Point","name":"Begin - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support1Rate - record.support1Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"37e59f5d-ac15-478b-8d47-f834a01baa5b","savedPayload":{"position":{"x":10396.849605033898,"y":8245.179481988838},"targetPosition":{"x":10625.044293162053,"y":8193.905537114431},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"99a2940d-3e17-43dc-82ae-6bfd948adaf5","savedPayload":{"position":{"x":10625.044293162053,"y":8193.905537114431},"targetPosition":{"x":11080.758565701944,"y":8091.419621554778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support1Rate - record.support1Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"79ea9f9a-e251-47d9-ac57-a549e0e31dd5","savedPayload":{"position":{"x":10382.608031546395,"y":8026.391085709707},"targetPosition":{"x":10615.483168499799,"y":8048.071166310296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fbd722bf-0f89-46e6-9933-2ce46f906efa","savedPayload":{"position":{"x":10615.483168499799,"y":8048.071166310296},"targetPosition":{"x":11080.758565701944,"y":8091.419621554778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support1Rate + record.support1Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"14e3bbb5-81e4-4016-866f-6b7bd9772d27","savedPayload":{"position":{"x":10436.970498896597,"y":7813.712085093011},"targetPosition":{"x":10651.816344594521,"y":7906.367384349305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c112aca0-14de-4cc3-9e05-20b28aed8dd2","savedPayload":{"position":{"x":10651.816344594521,"y":7906.367384349305},"targetPosition":{"x":11080.758565701944,"y":8091.419621554778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support1Rate + record.support1Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"90cb47a2-5e59-4c6b-b160-0c9df8ba924d","savedPayload":{"position":{"x":10554.432051386317,"y":7628.129430864593},"targetPosition":{"x":10730.048804557762,"y":7782.711121697232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bef0f6c3-3a0d-4c72-a2df-7714001aeb59","savedPayload":{"position":{"x":10730.048804557762,"y":7782.711121697232},"targetPosition":{"x":11080.758565701944,"y":8091.419621554778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"70ec5d22-e80f-4a61-b20e-ed94be657d01","savedPayload":{"position":{"x":6807.592939873204,"y":17374.948951156715},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Support Zone 2","project":"Superalgos","points":[{"type":"Point","name":"Begin - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support2Rate - record.support2Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"2a58f164-97fc-4550-b028-d35ef0900bcc","savedPayload":{"position":{"x":10283.612073301752,"y":7947.297492377958},"targetPosition":{"x":10515.297483764865,"y":7915.608471127336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c3c04eac-b594-45bd-9306-c615bdf6f960","savedPayload":{"position":{"x":10515.297483764865,"y":7915.608471127336},"targetPosition":{"x":10978.081032640624,"y":7852.2210132035725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support2Rate - record.support2Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"f77871dc-1447-4dc9-8c31-ea23dbd0a485","savedPayload":{"position":{"x":10288.191586242527,"y":7728.0949787281825},"targetPosition":{"x":10518.340242691855,"y":7769.47790900305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"afd0cabf-291e-464f-82f9-5a17f55afd09","savedPayload":{"position":{"x":10518.340242691855,"y":7769.47790900305},"targetPosition":{"x":10978.081032640624,"y":7852.2210132035725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support2Rate + record.support2Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"ec1b5181-9ba5-43b5-8ece-8f4c21ef4202","savedPayload":{"position":{"x":10360.399588365446,"y":7520.831916218435},"targetPosition":{"x":10566.506018848973,"y":7631.383221513704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cdd44658-8050-41fa-8a8f-82677b9a149b","savedPayload":{"position":{"x":10566.506018848973,"y":7631.383221513704},"targetPosition":{"x":10978.081032640624,"y":7852.2210132035725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support2Rate + record.support2Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"ed068681-8ff2-4d6b-a448-b23473de9729","savedPayload":{"position":{"x":10493.216957396893,"y":7345.947754232196},"targetPosition":{"x":10654.970550122198,"y":7514.828748859689},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"827e511d-aebc-49a2-86de-8869ef2a11b5","savedPayload":{"position":{"x":10654.970550122198,"y":7514.828748859689},"targetPosition":{"x":10978.081032640624,"y":7852.2210132035725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a339b25e-ffc5-4c3c-84d3-f27b72414868","savedPayload":{"position":{"x":6823.853104946087,"y":17328.145399803077},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Support Zone 3","project":"Superalgos","points":[{"type":"Point","name":"Begin - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support3Rate - record.support3Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"eacddf75-c7b4-47a1-a099-68e8fcc7f84d","savedPayload":{"position":{"x":10932.273634456647,"y":7647.647001783905},"targetPosition":{"x":11165.88195903421,"y":7635.778102584731},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"765f38a2-4cba-49fd-8c86-dd51c8e215db","savedPayload":{"position":{"x":11165.88195903421,"y":7635.778102584731},"targetPosition":{"x":11632.438497750041,"y":7611.942211736482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support3Rate - record.support3Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"0bff84b6-e263-4c4b-ae96-a7ef1ef6bd3c","savedPayload":{"position":{"x":10955.496425354864,"y":7429.666335299907},"targetPosition":{"x":11181.393357777499,"y":7490.461995842104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"615e7f76-5ca1-4d42-84f6-0129a2eea01c","savedPayload":{"position":{"x":11181.393357777499,"y":7490.461995842104},"targetPosition":{"x":11632.438497750041,"y":7611.942211736482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support3Rate + record.support3Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"6d7cb8d5-bcc9-4a40-adbc-84f31327e14d","savedPayload":{"position":{"x":11045.105572581862,"y":7229.2570142908025},"targetPosition":{"x":11241.104248120937,"y":7356.942710032386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cf270516-0d12-45be-834a-c0024b840b3c","savedPayload":{"position":{"x":11241.104248120937,"y":7356.942710032386},"targetPosition":{"x":11632.438497750041,"y":7611.942211736482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support3Rate + record.support3Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"958558ab-3e1b-40b1-bebe-0a7ef60ab54d","savedPayload":{"position":{"x":11192.316697722516,"y":7066.286026394852},"targetPosition":{"x":11339.15798582333,"y":7248.334574122564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"dd6e16bd-9458-47f8-bce8-856baa66a2d3","savedPayload":{"position":{"x":11339.15798582333,"y":7248.334574122564},"targetPosition":{"x":11632.438497750041,"y":7611.942211736482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"84a9a192-bc61-4080-855b-9cc491fd71fe","savedPayload":{"position":{"x":6847.595113919655,"y":17284.656523094094},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Support Zone 4","project":"Superalgos","points":[{"type":"Point","name":"Begin - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support4Rate - record.support4Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"97800a02-901d-46ef-9174-b40d1fbeb396","savedPayload":{"position":{"x":11539.340110071727,"y":6714.55847180137},"targetPosition":{"x":11723.725133131531,"y":6858.428310003338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8a3f2434-8ab8-44aa-931f-f0aa0bed6310","savedPayload":{"position":{"x":11723.725133131531,"y":6858.428310003338},"targetPosition":{"x":12091.872794460054,"y":7145.828859643613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support4Rate - record.support4Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"bcf5f895-aee0-4e65-b4d6-291f37c6708f","savedPayload":{"position":{"x":11699.967182624368,"y":6564.713907443574},"targetPosition":{"x":11830.784819547382,"y":6758.63037995211},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"13dd9d54-d74f-4863-9e86-88b79c9ebe2b","savedPayload":{"position":{"x":11830.784819547382,"y":6758.63037995211},"targetPosition":{"x":12091.872794460054,"y":7145.828859643613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support4Rate + record.support4Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"25dce519-15a1-4420-a05b-49257bfb8995","savedPayload":{"position":{"x":11898.92152370407,"y":6472.1601077692085},"targetPosition":{"x":11963.338351429044,"y":6697.041911303177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6ae4a3ec-2a81-4bae-ae75-3ced2c5cd1cd","savedPayload":{"position":{"x":11963.338351429044,"y":6697.041911303177},"targetPosition":{"x":12091.872794460054,"y":7145.828859643613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support4Rate + record.support4Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"11d60ea2-9963-46dc-a7c1-953cf8e06e4a","savedPayload":{"position":{"x":12116.293564900345,"y":6445.172550736264},"targetPosition":{"x":12108.197222351868,"y":6678.959573265815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"73ecbfa9-1e21-4c80-8f17-6eff316dc2d5","savedPayload":{"position":{"x":12108.197222351868,"y":6678.959573265815},"targetPosition":{"x":12091.872794460054,"y":7145.828859643613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e1efc35b-b8ca-4abb-bfcc-2b18747ad690","savedPayload":{"position":{"x":6878.171346679908,"y":17245.668584219347},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Support Zone 5","project":"Superalgos","points":[{"type":"Point","name":"Begin - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support5Rate - record.support5Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"3a397c6e-4bcc-464b-8dda-084c9083d8ac","savedPayload":{"position":{"x":11602.572337522783,"y":6668.1521462821665},"targetPosition":{"x":11778.918985447792,"y":6821.812499035845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f1da5793-706f-4884-af96-51be961434e8","savedPayload":{"position":{"x":11778.918985447792,"y":6821.812499035845},"targetPosition":{"x":12130.872860767158,"y":7128.645905776549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End - Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support5Rate - record.support5Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"bb8bdab3-a9c1-4288-aa35-3836872c0879","savedPayload":{"position":{"x":11771.11055908613,"y":6527.240750658589},"targetPosition":{"x":11891.239396535475,"y":6727.998580841144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ca37a88a-7a07-40c8-99ac-f8b8ff2d5d4d","savedPayload":{"position":{"x":11891.239396535475,"y":6727.998580841144},"targetPosition":{"x":12130.872860767158,"y":7128.645905776549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.support5Rate + record.support5Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"3331746d-bc53-41a4-990f-5eb061c90f71","savedPayload":{"position":{"x":11974.6599319819,"y":6445.36415272243},"targetPosition":{"x":12026.788533151877,"y":6673.466617399639},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e1833970-01d0-4715-ad2d-9e717510fd30","savedPayload":{"position":{"x":12026.788533151877,"y":6673.466617399639},"targetPosition":{"x":12130.872860767158,"y":7128.645905776549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End + Zone Resistance","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.support5Rate + record.support5Rate * record.supportResistanceZone / 2 / 100","project":"Superalgos","id":"39bc39ce-251f-4b18-8979-503e0ff9ccf2","savedPayload":{"position":{"x":12193.251608290575,"y":6430.301174749914},"targetPosition":{"x":12172.496106819512,"y":6663.3456969479885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"15092839-5205-4e95-b729-0ed82fcfe928","savedPayload":{"position":{"x":12172.496106819512,"y":6663.3456969479885},"targetPosition":{"x":12130.872860767158,"y":7128.645905776549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fc8b9272-d199-4b95-b168-a8da25c5b86b","savedPayload":{"position":{"x":6914.747763303432,"y":17212.245072517373},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Support Line 1","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.support1Rate > 0","project":"Superalgos","id":"e5678d95-7929-42d1-8eb2-ba51b0572876","savedPayload":{"position":{"x":10972.11117591483,"y":8563.74208669509},"targetPosition":{"x":11588.25314840889,"y":8697.11751078076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [1,5],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"1b1df2b6-4914-4feb-a4f7-c8f512b9782d","savedPayload":{"position":{"x":10412.869689874256,"y":8240.879128486185},"targetPosition":{"x":11000.561419141573,"y":8468.998319633472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c7501b66-ee83-48ae-8985-758803465027","savedPayload":{"position":{"x":11000.561419141573,"y":8468.998319633472},"targetPosition":{"x":11588.25314840889,"y":8697.11751078076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 1","project":"Superalgos","id":"7df5f6a2-5785-4f8d-a580-1b389606d6e9","savedPayload":{"position":{"x":11043.482583179903,"y":8379.871604142088},"targetPosition":{"x":11588.25314840889,"y":8697.11751078076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 1","id":"d621b89c-3082-47ed-836e-7a98d611df2b"}}},{"type":"Polygon Vertex","name":"End 1","project":"Superalgos","id":"78cc5e46-abcc-4801-9115-a66e8ac81704","savedPayload":{"position":{"x":11099.81780652402,"y":8298.556535750951},"targetPosition":{"x":11588.25314840889,"y":8697.11751078076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 1","id":"bed52b2e-acb6-4b21-90de-8fd08dcd5d34"}}}],"id":"8baf5a5e-fde5-4405-aea2-035bfa3872c1","savedPayload":{"position":{"x":6956.326654492343,"y":17185.2976942588},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Support Line 2","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.support2Rate > 0","project":"Superalgos","id":"0ae326f3-874b-47bb-9064-2e04fa2e38eb","savedPayload":{"position":{"x":11046.008466831929,"y":8391.80531767649},"targetPosition":{"x":11635.390067107273,"y":8615.52224434002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [1,5],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TURQUOISE\"\n }\n}","project":"Superalgos","id":"b09aa70a-6823-45fb-aa40-9ebf5df20f73","savedPayload":{"position":{"x":10541.133473086858,"y":7989.1978535340695},"targetPosition":{"x":11088.261770097066,"y":8302.360048937044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"87204e2e-e562-426d-aed8-5ead73ef48f7","savedPayload":{"position":{"x":11088.261770097066,"y":8302.360048937044},"targetPosition":{"x":11635.390067107273,"y":8615.52224434002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 2","project":"Superalgos","id":"787fc2c9-a2c4-447e-b7ab-fa46c78b9653","savedPayload":{"position":{"x":11143.987187849307,"y":8220.62587277416},"targetPosition":{"x":11635.390067107273,"y":8615.52224434002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 2","id":"95e33e9a-7524-4efa-b431-7b4532cf947b"}}},{"type":"Polygon Vertex","name":"End 2","project":"Superalgos","id":"3e493a72-7315-4688-93f2-54973cdba641","savedPayload":{"position":{"x":11211.812575361531,"y":8148.615355865146},"targetPosition":{"x":11635.390067107273,"y":8615.52224434002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 2","id":"636187fb-4abe-4524-a3e2-c5930abb7b15"}}}],"id":"baca2e09-2b91-4b8b-9176-e758bfcb4258","savedPayload":{"position":{"x":7001.773856483091,"y":17165.561503675952},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Support Line 3","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.support3Rate > 0","project":"Superalgos","id":"07949760-a5fe-4a9c-a3e7-85628f7703ad","savedPayload":{"position":{"x":11144.656185098844,"y":8232.80482296671},"targetPosition":{"x":11694.111602129102,"y":8541.865785747534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [1,5],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","project":"Superalgos","id":"25eef631-4528-4acd-b69c-26a6d97436fb","savedPayload":{"position":{"x":10705.425756728728,"y":7759.446438350907},"targetPosition":{"x":11199.768679428915,"y":8150.656112049219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"66ae3554-cec4-4591-a346-32f09e0212ab","savedPayload":{"position":{"x":11199.768679428915,"y":8150.656112049219},"targetPosition":{"x":11694.111602129102,"y":8541.865785747534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 3","project":"Superalgos","id":"b5b6232d-dde2-49f8-854d-722a4cbf9f01","savedPayload":{"position":{"x":11267.053537145963,"y":8078.140281648653},"targetPosition":{"x":11694.111602129102,"y":8541.865785747534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 3","id":"85f4f1ed-4b3d-4381-af30-a85e4bfd6dd7"}}},{"type":"Polygon Vertex","name":"End 3","project":"Superalgos","id":"0ff2207e-8476-4417-acb7-e799b37e48ee","savedPayload":{"position":{"x":11344.853981747354,"y":8017.042912175713},"targetPosition":{"x":11694.111602129102,"y":8541.865785747534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 3","id":"9fc5841d-ba9c-4ae6-a445-d609b0e947dd"}}}],"id":"fbe179c2-99ac-44f0-952c-c9ebb205b252","savedPayload":{"position":{"x":7049.849688077371,"y":17153.574852599526},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Support Line 4","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.support4Rate > 0","project":"Superalgos","id":"38995b73-26f1-4211-81b1-4bc4500c9715","savedPayload":{"position":{"x":11265.948183752113,"y":8090.265400466944},"targetPosition":{"x":11763.203491468568,"y":8477.766488164405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [1,5],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","project":"Superalgos","id":"0e256852-2fcc-44db-b917-47ac825583c9","savedPayload":{"position":{"x":10902.174002720301,"y":7556.7301394888955},"targetPosition":{"x":11332.688747094435,"y":8017.248313826651},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8dcde804-7625-49ec-95ea-938eaf512aa6","savedPayload":{"position":{"x":11332.688747094435,"y":8017.248313826651},"targetPosition":{"x":11763.203491468568,"y":8477.766488164405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 4","project":"Superalgos","id":"f0498624-74bb-4833-8113-f5570e7078f8","savedPayload":{"position":{"x":11410.030012239771,"y":7955.570713010746},"targetPosition":{"x":11763.203491468568,"y":8477.766488164405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 4","id":"e69a3f5b-dcde-4d4a-8ac7-87616ebf68f3"}}},{"type":"Polygon Vertex","name":"End 4","project":"Superalgos","id":"1f0b03df-f4f7-4a58-80c5-6690c44859fb","savedPayload":{"position":{"x":11496.067580559298,"y":7906.751305247542},"targetPosition":{"x":11763.203491468568,"y":8477.766488164405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 4","id":"1832f8f2-ac4a-4e1f-94ff-c29c18a350d7"}}}],"id":"764238be-83c1-4523-a7a8-8f8245651b61","savedPayload":{"position":{"x":7099.242765913641,"y":17149.66470562401},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Support Line 5","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.support5Rate > 0","project":"Superalgos","id":"d6c0fe91-6372-42e7-b594-2effc21b9086","savedPayload":{"position":{"x":11407.098756760464,"y":7967.398835568401},"targetPosition":{"x":11841.046093278397,"y":8424.683914209609},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [1,5],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"7d618b16-acc1-481e-a9a1-a5fe7702098b","savedPayload":{"position":{"x":11126.906937152475,"y":7385.604994317875},"targetPosition":{"x":11483.976515215436,"y":7905.144454263742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1ed4cfc8-ac56-40de-9fc0-038c38385637","savedPayload":{"position":{"x":11483.976515215436,"y":7905.144454263742},"targetPosition":{"x":11841.046093278397,"y":8424.683914209609},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 5","project":"Superalgos","id":"841fe68b-d131-4a9e-8968-0fdd36967327","savedPayload":{"position":{"x":11569.646511728308,"y":7855.682858715561},"targetPosition":{"x":11841.046093278397,"y":8424.683914209609},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 5","id":"aa501f2a-8d27-40af-aaea-58bc7c5f42db"}}},{"type":"Polygon Vertex","name":"End 5","project":"Superalgos","id":"212c5989-a35a-42a2-b0e5-2427d138c950","savedPayload":{"position":{"x":11661.999266662515,"y":7820.231957559881},"targetPosition":{"x":11841.046093278397,"y":8424.683914209609},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 5","id":"6aa7f5e1-5987-4619-8ec7-39a424d7734a"}}}],"id":"96977063-3da0-4745-9c71-782818e4a157","savedPayload":{"position":{"x":7148.605775586671,"y":17153.937721365914},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Support Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.typeSupport=== 'Support'","project":"Superalgos","id":"056d896f-1067-4317-92af-3d201055435d","savedPayload":{"position":{"x":12585.851409834679,"y":6180.212982822518},"targetPosition":{"x":12754.236705322011,"y":7096.66276211842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0,\n \"paletteColor\": \"UI_COLOR.DARK\"\n }\n}","project":"Superalgos","id":"068045f8-ddda-41c1-92b4-2d42f9e9608d","savedPayload":{"position":{"x":12878.257493495308,"y":5241.5006039278915},"targetPosition":{"x":12877.139484333155,"y":6173.0265088499655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.typeSupport=== 'Support'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK\",\n \"opacity\": 0.5\n}","project":"Superalgos","id":"05143777-f193-4148-95f6-ea719e452836","savedPayload":{"position":{"x":13361.795547172755,"y":4374.25858021936},"targetPosition":{"x":13119.514555264665,"y":5273.615244767358},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"73181d20-e10c-44c4-b54c-2504b7474582","savedPayload":{"position":{"x":13119.514555264665,"y":5273.615244767358},"targetPosition":{"x":12877.139484333155,"y":6173.0265088499655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"40d55683-c8d8-407f-9fe3-f13a713fc79d","savedPayload":{"position":{"x":12877.139484333155,"y":6173.0265088499655},"targetPosition":{"x":12754.236705322011,"y":7096.66276211842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Base Left","project":"Superalgos","id":"362ecc6e-b0b5-456d-b727-f97b1bd60f5e","savedPayload":{"position":{"x":13156.636843506985,"y":6256.346100858263},"targetPosition":{"x":12754.236705322011,"y":7096.66276211842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Base Left","id":"c3182836-3d36-45b4-8384-d4ecf78ebcc0"}}},{"type":"Polygon Vertex","name":"Base Right","project":"Superalgos","id":"63d2fd83-f7a5-4267-a416-7a5ff9e163fc","savedPayload":{"position":{"x":13396.61875799283,"y":6421.904279960588},"targetPosition":{"x":12754.236705322011,"y":7096.66276211842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Base Right","id":"beb7e536-5af8-4b52-8194-8053bf181c4a"}}}],"id":"b4567b9b-e1e1-463b-bf64-ab3e25bcbced","savedPayload":{"position":{"x":7196.592222872339,"y":17166.277343094716},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Support Zone 1","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.support1Bounce1 > 0","project":"Superalgos","id":"b5bd335d-555f-4cf5-a870-84130fccdf43","savedPayload":{"position":{"x":7514.953391315019,"y":16984.041548612826},"targetPosition":{"x":7468.081378171071,"y":17280.357282896097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"56f2b454-13f9-44ac-9714-9169421c3ab5","savedPayload":{"position":{"x":7336.065223552207,"y":16826.872382936454},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"bf1ec91e-798c-4f93-bfb3-d89c15f94b3e","savedPayload":{"position":{"x":7190.349888131015,"y":16545.397718446533},"targetPosition":{"x":7385.032277077469,"y":16773.64926265621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"369f0304-059f-4776-b557-4bd973c8ebed","savedPayload":{"position":{"x":7385.032277077469,"y":16773.64926265621},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 2","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"0245085a-a486-4195-ba1b-259323a5e8a5","savedPayload":{"position":{"x":7310.912460789288,"y":16465.481778063775},"targetPosition":{"x":7445.313563406606,"y":16733.69129246483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3014da4a-245e-47bb-b1c4-690199dae1de","savedPayload":{"position":{"x":7445.313563406606,"y":16733.69129246483},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 3","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"43cecedf-d860-49a4-96fe-9df0d1ddf168","savedPayload":{"position":{"x":7447.096840559541,"y":16416.74056183116},"targetPosition":{"x":7513.405753291732,"y":16709.320684348524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ec472c0f-1f89-4700-8727-ef9439a38cea","savedPayload":{"position":{"x":7513.405753291732,"y":16709.320684348524},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 4","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"f4a644bc-9041-4f3a-9a8e-9e028d229848","savedPayload":{"position":{"x":7590.988486299604,"y":16402.00673206902},"targetPosition":{"x":7585.351576161764,"y":16701.953769467455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"787cc836-17ba-4215-9fee-bb95a8faaae7","savedPayload":{"position":{"x":7585.351576161764,"y":16701.953769467455},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 5","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.4\n}","project":"Superalgos","id":"f9a74516-d1e2-4856-9a22-4478cdca1820","savedPayload":{"position":{"x":7734.2249385839095,"y":16422.136565407825},"targetPosition":{"x":7656.969802303916,"y":16712.018686136857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"26987001-a080-4d7c-86d2-d7962d00f6d1","savedPayload":{"position":{"x":7656.969802303916,"y":16712.018686136857},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 6","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"55e75ea7-2000-4205-bf6c-8c11a5275b2f","savedPayload":{"position":{"x":7868.481815449013,"y":16475.96018910291},"targetPosition":{"x":7724.098240736468,"y":16738.9304979844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a3eda536-af6e-4f5f-bb22-656d6b39bebc","savedPayload":{"position":{"x":7724.098240736468,"y":16738.9304979844},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 7","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"7b0919e6-f6bc-41bb-b622-526bb07e47a6","savedPayload":{"position":{"x":7985.956595215415,"y":16560.349569786005},"targetPosition":{"x":7782.835630619669,"y":16781.125188325947},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c028550f-7cfc-4396-9cd0-c3fcdece2fe5","savedPayload":{"position":{"x":7782.835630619669,"y":16781.125188325947},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 8","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1\n}","project":"Superalgos","id":"b9e4b31f-f89c-42d0-8354-120ebdc6d77f","savedPayload":{"position":{"x":8079.822070686547,"y":16670.400303394752},"targetPosition":{"x":7829.768368355235,"y":16836.15055513032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"11201d66-b0d7-4bd4-8c18-7b64130a5a90","savedPayload":{"position":{"x":7829.768368355235,"y":16836.15055513032},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 9","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"82aa4a80-1427-44c3-b120-1d9fab15f7e1","savedPayload":{"position":{"x":8144.623121615128,"y":16799.716641309933},"targetPosition":{"x":7862.168893819526,"y":16900.80872408791},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9a635365-7b91-4391-9bb0-85cfee5834b3","savedPayload":{"position":{"x":7862.168893819526,"y":16900.80872408791},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 10","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"4bde1691-62af-4346-947e-080566ff50bd","savedPayload":{"position":{"x":8176.593746463441,"y":16940.78318801769},"targetPosition":{"x":7878.154206243682,"y":16971.34199744179},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"079b7df2-d09b-42c1-9ecc-2bd9fc5e9254","savedPayload":{"position":{"x":7878.154206243682,"y":16971.34199744179},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support1Bounce1 > 11","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1\n}","project":"Superalgos","id":"bbb57f56-8fe2-4df4-9655-7f5e55b002f9","savedPayload":{"position":{"x":8173.875928723792,"y":17085.40166857939},"targetPosition":{"x":7876.7952973738575,"y":17043.65123772264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ca5d32e3-e0ab-4eff-9628-dbb733efdc25","savedPayload":{"position":{"x":7876.7952973738575,"y":17043.65123772264},"targetPosition":{"x":7579.714666023923,"y":17001.900806865888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f57c1875-5b81-4ad3-a305-10c63f3f1c58","savedPayload":{"position":{"x":7579.714666023923,"y":17001.900806865888},"targetPosition":{"x":7468.081378171071,"y":17280.357282896097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin - Zone Resistance","project":"Superalgos","id":"ba9a2688-0072-44cc-8a9a-968ecfaf7bf3","savedPayload":{"position":{"x":7638.8781815398725,"y":17033.723035560088},"targetPosition":{"x":7468.081378171071,"y":17280.357282896097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin - Zone Resistance","id":"99a2940d-3e17-43dc-82ae-6bfd948adaf5"}}},{"type":"Polygon Vertex","name":"End - Zone Resistance","project":"Superalgos","id":"4f693d5f-4a81-4dd4-b408-a9b01aa92b16","savedPayload":{"position":{"x":7689.477232149566,"y":17077.912535270647},"targetPosition":{"x":7468.081378171071,"y":17280.357282896097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End - Zone Resistance","id":"fbd722bf-0f89-46e6-9933-2ce46f906efa"}}},{"type":"Polygon Vertex","name":"End + Zone Resistance","project":"Superalgos","id":"4daa243a-7b3c-438d-b721-34db4423fe57","savedPayload":{"position":{"x":7728.974570172202,"y":17132.25345996279},"targetPosition":{"x":7468.081378171071,"y":17280.357282896097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End + Zone Resistance","id":"bef0f6c3-3a0d-4c72-a2df-7714001aeb59"}}},{"type":"Polygon Vertex","name":"Begin + Zone Resistance","project":"Superalgos","id":"76f18b23-1e2e-4234-995e-0af0e8b0ea33","savedPayload":{"position":{"x":7755.389634152805,"y":17194.020928764516},"targetPosition":{"x":7468.081378171071,"y":17280.357282896097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin + Zone Resistance","id":"c112aca0-14de-4cc3-9e05-20b28aed8dd2"}}}],"id":"d4705ff6-d94b-4f94-8fd0-9215cf9844ad","savedPayload":{"position":{"x":7241.893162580021,"y":17186.34697809664},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Support Zone 2","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.support2Bounce1 > 0","project":"Superalgos","id":"6c4c67af-9468-47f7-b51a-b79b93a2d251","savedPayload":{"position":{"x":7597.586504683393,"y":17031.36021885846},"targetPosition":{"x":7502.58179782753,"y":17315.91971294578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"a50dcbd3-d699-44cf-a9f2-58d88a7ee84b","savedPayload":{"position":{"x":7447.0073327948085,"y":16846.8906110682},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"e1af646c-9718-461e-9b49-565c1c972f1e","savedPayload":{"position":{"x":7349.608571699122,"y":16545.270938195812},"targetPosition":{"x":7504.066777209766,"y":16802.45309688967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"110cf71c-ed22-41e1-8ad6-a1bf36d645ed","savedPayload":{"position":{"x":7504.066777209766,"y":16802.45309688967},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 2","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"1058548a-13b4-4a58-9b33-d0aebfd91caa","savedPayload":{"position":{"x":7481.680559472123,"y":16486.288894327103},"targetPosition":{"x":7570.102771096266,"y":16772.962074955314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"52bd90e4-a17b-4890-b825-0b52f27b2c4d","savedPayload":{"position":{"x":7570.102771096266,"y":16772.962074955314},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 3","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"a8f6da8e-f165-4a12-983f-ef8a97327020","savedPayload":{"position":{"x":7624.03010232099,"y":16460.627656945384},"targetPosition":{"x":7641.2775425207,"y":16760.131456264455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"47385aa9-0c34-4751-95bb-21858278cb38","savedPayload":{"position":{"x":7641.2775425207,"y":16760.131456264455},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 4","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"d9af1bcb-8bc7-4769-a529-9838c89427fa","savedPayload":{"position":{"x":7768.384362234887,"y":16469.77856389249},"targetPosition":{"x":7713.454672477648,"y":16764.706909738008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ded9c2c3-27b0-482f-a30f-950ef8749323","savedPayload":{"position":{"x":7713.454672477648,"y":16764.706909738008},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 5","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.4\n}","project":"Superalgos","id":"a0d2dd1f-91ef-4687-98a0-a5a01e852281","savedPayload":{"position":{"x":7906.353994333993,"y":16513.20979771884},"targetPosition":{"x":7782.439488527201,"y":16786.422526651182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a9acf6d3-26d8-431e-bbba-4f6420852018","savedPayload":{"position":{"x":7782.439488527201,"y":16786.422526651182},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 6","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"93ec8d12-8654-45cc-9239-7b0bbbd22cd0","savedPayload":{"position":{"x":8029.920705099925,"y":16588.39729298056},"targetPosition":{"x":7844.222843910167,"y":16824.016274282043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4fa39625-af25-4f04-a5e7-e92e5e0eba1d","savedPayload":{"position":{"x":7844.222843910167,"y":16824.016274282043},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 7","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"032131bf-e21c-4bd2-ac78-2d7734ab4225","savedPayload":{"position":{"x":8131.903246449685,"y":16690.97142574846},"targetPosition":{"x":7895.214114585047,"y":16875.303340665992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"62862dc4-aad1-4ef9-b295-7c59bc879cda","savedPayload":{"position":{"x":7895.214114585047,"y":16875.303340665992},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 8","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1\n}","project":"Superalgos","id":"e1a38cbf-808e-47f3-af28-faa275e82913","savedPayload":{"position":{"x":8206.374763771477,"y":16814.970960267885},"targetPosition":{"x":7932.449873245943,"y":16937.303107925705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3dbc7e95-34b0-4d83-a7e8-caf0028b681f","savedPayload":{"position":{"x":7932.449873245943,"y":16937.303107925705},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 9","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"7f50ebb2-5ead-4674-b471-360ac903cbd1","savedPayload":{"position":{"x":8249.007243171509,"y":16953.189494312515},"targetPosition":{"x":7953.766112945959,"y":17006.41237494802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"da7f2571-7735-4eaa-bb9e-ecc31babe8fc","savedPayload":{"position":{"x":7953.766112945959,"y":17006.41237494802},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 10","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"6aaeedbe-c4d7-46a6-96c5-0f6970c4be89","savedPayload":{"position":{"x":8257.323039909803,"y":17097.594269087625},"targetPosition":{"x":7957.924011315106,"y":17078.614762335576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a06c3c37-a556-472b-90bb-25d9bf66b34f","savedPayload":{"position":{"x":7957.924011315106,"y":17078.614762335576},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support2Bounce1 > 11","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1\n}","project":"Superalgos","id":"561e0e03-b5e4-4b7e-a606-2053b174544a","savedPayload":{"position":{"x":8230.838870106636,"y":17239.793003973275},"targetPosition":{"x":7944.681926413523,"y":17149.7141297784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"980dd97a-6ccf-45d3-9ddd-464b406af3d8","savedPayload":{"position":{"x":7944.681926413523,"y":17149.7141297784},"targetPosition":{"x":7658.52498272041,"y":17059.635255583526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8708e97c-7c5f-45c3-bb04-4cdb69f35d2a","savedPayload":{"position":{"x":7658.52498272041,"y":17059.635255583526},"targetPosition":{"x":7502.58179782753,"y":17315.91971294578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin - Zone Resistance","project":"Superalgos","id":"4a490153-7666-425a-94db-a3407072e08d","savedPayload":{"position":{"x":7711.643818304867,"y":17100.76146515143},"targetPosition":{"x":7502.58179782753,"y":17315.91971294578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin - Zone Resistance","id":"c3c04eac-b594-45bd-9306-c615bdf6f960"}}},{"type":"Polygon Vertex","name":"End - Zone Resistance","project":"Superalgos","id":"bb165791-a19f-42c9-99fd-f55009e98305","savedPayload":{"position":{"x":7754.279411215615,"y":17152.676607686346},"targetPosition":{"x":7502.58179782753,"y":17315.91971294578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End - Zone Resistance","id":"afd0cabf-291e-464f-82f9-5a17f55afd09"}}},{"type":"Polygon Vertex","name":"End + Zone Resistance","project":"Superalgos","id":"ec5ae905-f05e-4f65-b5a2-8423bd220ec3","savedPayload":{"position":{"x":7784.293834793381,"y":17212.777441162816},"targetPosition":{"x":7502.58179782753,"y":17315.91971294578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End + Zone Resistance","id":"827e511d-aebc-49a2-86de-8869ef2a11b5"}}},{"type":"Polygon Vertex","name":"Begin + Zone Resistance","project":"Superalgos","id":"558801bf-b8f7-4caa-93c2-312ae077baff","savedPayload":{"position":{"x":7800.1820405106555,"y":17278.0502588311},"targetPosition":{"x":7502.58179782753,"y":17315.91971294578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin + Zone Resistance","id":"cdd44658-8050-41fa-8a8f-82677b9a149b"}}}],"id":"40c0fced-4d4b-476f-becb-4201ccb21c2f","savedPayload":{"position":{"x":7283.272903165238,"y":17213.59917904648},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Support Zone 3","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.support3Bounce1 > 0","project":"Superalgos","id":"677b5709-c562-4782-b8db-e5301a57aeab","savedPayload":{"position":{"x":7671.30421294794,"y":17091.634487555708},"targetPosition":{"x":7530.7582931244,"y":17356.675700239615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"d915645d-778e-46cd-be7c-9205cde4a151","savedPayload":{"position":{"x":7553.141444212099,"y":16884.89628767571},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"88e66929-008b-44f9-8836-1555529a886c","savedPayload":{"position":{"x":7506.716041744985,"y":16571.359004833004},"targetPosition":{"x":7616.736846615979,"y":16850.456519145722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8024c736-7b70-4f68-9cd7-d8f250cc5da0","savedPayload":{"position":{"x":7616.736846615979,"y":16850.456519145722},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 2","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"dfc32a91-65d3-4e33-8120-e88b82c065ed","savedPayload":{"position":{"x":7646.694865092242,"y":16534.91973388036},"targetPosition":{"x":7686.726258289607,"y":16832.2368836694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1cb52d9c-92a1-4ea3-8925-1addc66bc0db","savedPayload":{"position":{"x":7686.726258289607,"y":16832.2368836694},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 3","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"a5f79b1b-8f2e-4796-b074-08d4266f66ef","savedPayload":{"position":{"x":7791.32664656837,"y":16533.038447011462},"targetPosition":{"x":7759.042149027671,"y":16831.29624023495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"45e75d66-4aac-484c-942a-f8318f6e9179","savedPayload":{"position":{"x":7759.042149027671,"y":16831.29624023495},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 4","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"d1ec8f71-dd0c-4de4-b253-d9f80019a5dc","savedPayload":{"position":{"x":7932.205912749123,"y":16565.824477780934},"targetPosition":{"x":7829.481782118048,"y":16847.689255619687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"25eb0205-21fc-4b8f-9dfd-06521be651e3","savedPayload":{"position":{"x":7829.481782118048,"y":16847.689255619687},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 5","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.4\n}","project":"Superalgos","id":"9139ee33-0888-47ca-8409-3dab12aeb215","savedPayload":{"position":{"x":8061.145272759357,"y":16631.372421252814},"targetPosition":{"x":7893.951462123165,"y":16880.463227355627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a9cb240b-9c72-4f63-97cb-e96c9de9056e","savedPayload":{"position":{"x":7893.951462123165,"y":16880.463227355627},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 6","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"37d2335d-1d62-4b51-a447-0de74026f077","savedPayload":{"position":{"x":8170.651239670791,"y":16725.87286920961},"targetPosition":{"x":7948.704445578882,"y":16927.713451334024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"21e67adf-b609-4620-88ac-5f83fb548d1c","savedPayload":{"position":{"x":7948.704445578882,"y":16927.713451334024},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 7","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"bc7b72e5-ccc9-4836-a8ff-f3e2cfbce33b","savedPayload":{"position":{"x":8254.359724724527,"y":16843.83379911121},"targetPosition":{"x":7990.55868810575,"y":16986.693916284825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"620ca150-1755-4a08-8279-9540cab4d22c","savedPayload":{"position":{"x":7990.55868810575,"y":16986.693916284825},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 8","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1\n}","project":"Superalgos","id":"72241449-0948-4815-8d2b-d13d53c2d3e3","savedPayload":{"position":{"x":8307.405895037198,"y":16978.39975048228},"targetPosition":{"x":8017.081773262085,"y":17053.97689197036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e9311367-87a5-40a0-90ba-560154520098","savedPayload":{"position":{"x":8017.081773262085,"y":17053.97689197036},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 9","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"db418ffb-8e5d-4e3e-815f-daaf5b18dead","savedPayload":{"position":{"x":8326.706900005222,"y":17121.75023935646},"targetPosition":{"x":8026.732275746097,"y":17125.65213640745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"349ab36a-f489-4737-810c-de215405546f","savedPayload":{"position":{"x":8026.732275746097,"y":17125.65213640745},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 10","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"18cbc1ae-04b1-4950-b2ca-ebf928c2cf89","savedPayload":{"position":{"x":8311.141035376153,"y":17265.55425637821},"targetPosition":{"x":8018.949343431563,"y":17197.554144918326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e79dddb-47f4-4e90-8917-0002eac04b6b","savedPayload":{"position":{"x":8018.949343431563,"y":17197.554144918326},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support3Bounce1 > 11","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1\n}","project":"Superalgos","id":"bccbf11b-3740-4519-9811-1fa1d7eef10f","savedPayload":{"position":{"x":8261.612932622622,"y":17401.454434784562},"targetPosition":{"x":7994.185292054797,"y":17265.5042341215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9cdb42b3-d922-40d0-9643-5b1ddc9125a4","savedPayload":{"position":{"x":7994.185292054797,"y":17265.5042341215},"targetPosition":{"x":7726.7576514869725,"y":17129.55403345844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b8a6b5be-21fa-4e43-a687-d20a2149cb2f","savedPayload":{"position":{"x":7726.7576514869725,"y":17129.55403345844},"targetPosition":{"x":7530.7582931244,"y":17356.675700239615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin - Zone Resistance","project":"Superalgos","id":"d2da5bdd-6b2e-4284-af0f-1caaec186399","savedPayload":{"position":{"x":7772.382863775663,"y":17178.862408111065},"targetPosition":{"x":7530.7582931244,"y":17356.675700239615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin - Zone Resistance","id":"765f38a2-4cba-49fd-8c86-dd51c8e215db"}}},{"type":"Polygon Vertex","name":"End - Zone Resistance","project":"Superalgos","id":"ea5e5b65-da6f-49b3-89c2-d7fa902069c7","savedPayload":{"position":{"x":7805.892011155556,"y":17237.087083714665},"targetPosition":{"x":7530.7582931244,"y":17356.675700239615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End - Zone Resistance","id":"615e7f76-5ca1-4d42-84f6-0129a2eea01c"}}},{"type":"Polygon Vertex","name":"End + Zone Resistance","project":"Superalgos","id":"d0aca66f-f495-4355-b75e-b5f11c39cfc7","savedPayload":{"position":{"x":7825.604805055013,"y":17301.308431909398},"targetPosition":{"x":7530.7582931244,"y":17356.675700239615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End + Zone Resistance","id":"dd6e16bd-9458-47f8-bce8-856baa66a2d3"}}},{"type":"Polygon Vertex","name":"Begin + Zone Resistance","project":"Superalgos","id":"d05af5c5-9b11-4c9f-be10-b189ef3163fb","savedPayload":{"position":{"x":7830.532763674455,"y":17368.30612613179},"targetPosition":{"x":7530.7582931244,"y":17356.675700239615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin + Zone Resistance","id":"cf270516-0d12-45be-834a-c0024b840b3c"}}}],"id":"dfa786b7-df65-4c51-b088-dd550ae0c5df","savedPayload":{"position":{"x":7319.60271317375,"y":17247.2905769435},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Support Zone 4","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.support4Bounce1 > 0","project":"Superalgos","id":"e751bdf0-0b5a-4063-84af-ea10f0e47a21","savedPayload":{"position":{"x":7734.0956891949245,"y":17163.22022977781},"targetPosition":{"x":7551.842282720627,"y":17401.513527687162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"251e1404-86d3-4985-8e43-486cc1d6867e","savedPayload":{"position":{"x":7651.572495915589,"y":16939.85271697453},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"bffe3c87-6a71-4824-8446-5f070847eca1","savedPayload":{"position":{"x":7657.386816034359,"y":16622.950303906753},"targetPosition":{"x":7719.969139511657,"y":16916.350121200805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a7c57b61-1430-462d-8869-3bb85750888d","savedPayload":{"position":{"x":7719.969139511657,"y":16916.350121200805},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 2","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"f42177ce-d5a0-4226-8e34-b771cb3ed2fd","savedPayload":{"position":{"x":7801.454217552517,"y":16610.047774191687},"targetPosition":{"x":7792.002840270736,"y":16909.898856343272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dacf8a6e-f8c0-4c0e-9b70-25b69f62fe1a","savedPayload":{"position":{"x":7792.002840270736,"y":16909.898856343272},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 3","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"2b6ddd44-b538-437b-b367-f8e4c5a42e8a","savedPayload":{"position":{"x":7944.423059684155,"y":16631.99775443724},"targetPosition":{"x":7863.487261336555,"y":16920.87384646605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b4b1adb4-b1e3-450e-8fbb-267cf539096f","savedPayload":{"position":{"x":7863.487261336555,"y":16920.87384646605},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 4","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"07471740-91b1-4b7a-bdf2-9d9000ca954d","savedPayload":{"position":{"x":8077.98451299519,"y":16687.524591576486},"targetPosition":{"x":7930.267987992072,"y":16948.63726503567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b2157982-6f42-4894-b0dc-f54c76e26599","savedPayload":{"position":{"x":7930.267987992072,"y":16948.63726503567},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 5","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.4\n}","project":"Superalgos","id":"66b9ff42-57a7-4e1a-90f8-88b9b48815a8","savedPayload":{"position":{"x":8194.376471295302,"y":16773.401267666723},"targetPosition":{"x":7988.463967142128,"y":16991.57560308079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0ed11a98-f701-4fb3-bfbd-b85a77c75f77","savedPayload":{"position":{"x":7988.463967142128,"y":16991.57560308079},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 6","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"609e711b-56c4-422f-8923-ada3996f8918","savedPayload":{"position":{"x":8286.83465703564,"y":16884.636942442612},"targetPosition":{"x":8034.693060012298,"y":17047.193440468734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f729b19a-9c9f-4989-90d0-0b98bc32b3b7","savedPayload":{"position":{"x":8034.693060012298,"y":17047.193440468734},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 7","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"f6080a9c-0a1f-4ee8-a798-ac58f005709d","savedPayload":{"position":{"x":8349.985736532824,"y":17014.767002811397},"targetPosition":{"x":8066.26859976089,"y":17112.258470653127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7ccc66c2-8828-422b-97e1-12e68712370d","savedPayload":{"position":{"x":8066.26859976089,"y":17112.258470653127},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 8","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1\n}","project":"Superalgos","id":"54310033-693e-4fe0-972e-b49accb8da77","savedPayload":{"position":{"x":8380.159598591297,"y":17156.228762667964},"targetPosition":{"x":8081.355530790126,"y":17182.98935058141},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8a0d9b37-3bd7-4661-a28d-986595d5b68c","savedPayload":{"position":{"x":8081.355530790126,"y":17182.98935058141},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 9","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"eab6472b-f317-4781-94d1-3d7d0a9db088","savedPayload":{"position":{"x":8375.602648025753,"y":17300.80097872204},"targetPosition":{"x":8079.077055507354,"y":17255.27545860845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"694fbf14-504d-42e9-a147-58bffbb1b360","savedPayload":{"position":{"x":8079.077055507354,"y":17255.27545860845},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 10","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"25858bf4-0cc5-48ef-857b-76a094552764","savedPayload":{"position":{"x":8336.579718239216,"y":17440.081639275177},"targetPosition":{"x":8059.5655906140855,"y":17324.915788885017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"768cec8a-5e96-48b0-adc2-2a0c78439daf","savedPayload":{"position":{"x":8059.5655906140855,"y":17324.915788885017},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support4Bounce1 > 11","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1\n}","project":"Superalgos","id":"914bef52-f072-49f8-878e-70fb2ec7b266","savedPayload":{"position":{"x":8265.3586800683,"y":17565.97625860062},"targetPosition":{"x":8023.955071528628,"y":17387.86309854774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"edea1467-c5a4-4cc2-8c4c-cf03700c57a8","savedPayload":{"position":{"x":8023.955071528628,"y":17387.86309854774},"targetPosition":{"x":7782.551462988955,"y":17209.749938494857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20788642-ead1-4b31-abca-6877c0b3d548","savedPayload":{"position":{"x":7782.551462988955,"y":17209.749938494857},"targetPosition":{"x":7551.842282720627,"y":17401.513527687162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin - Zone Resistance","project":"Superalgos","id":"1fc429c5-f3e3-4cbc-b3c7-fa2b8be4b650","savedPayload":{"position":{"x":7819.438515126698,"y":17265.895474309018},"targetPosition":{"x":7551.842282720627,"y":17401.513527687162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin - Zone Resistance","id":"8a3f2434-8ab8-44aa-931f-f0aa0bed6310"}}},{"type":"Polygon Vertex","name":"End - Zone Resistance","project":"Superalgos","id":"54aebf2a-bfb4-4a58-9a4d-12ae422638e0","savedPayload":{"position":{"x":7842.90717478704,"y":17328.841465611236},"targetPosition":{"x":7551.842282720627,"y":17401.513527687162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End - Zone Resistance","id":"13dd9d54-d74f-4863-9e86-88b79c9ebe2b"}}},{"type":"Polygon Vertex","name":"End + Zone Resistance","project":"Superalgos","id":"006283cf-eb63-4341-8c76-b9ed8707c013","savedPayload":{"position":{"x":7851.780625378029,"y":17395.431537558045},"targetPosition":{"x":7551.842282720627,"y":17401.513527687162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End + Zone Resistance","id":"73ecbfa9-1e21-4c80-8f17-6eff316dc2d5"}}},{"type":"Polygon Vertex","name":"Begin + Zone Resistance","project":"Superalgos","id":"3a0c604a-2ba5-40a4-9cef-6f8bda916c1c","savedPayload":{"position":{"x":7845.61391503473,"y":17462.326585886105},"targetPosition":{"x":7551.842282720627,"y":17401.513527687162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin + Zone Resistance","id":"6ae4a3ec-2a81-4bae-ae75-3ced2c5cd1cd"}}}],"id":"c246d453-c21e-4977-a94c-395c8ddfcee1","savedPayload":{"position":{"x":7349.891610093273,"y":17286.502158279993},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Support Zone 5","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.support5Bounce1 > 0","project":"Superalgos","id":"eeaae66c-8f4b-4bc0-912f-f80476486d24","savedPayload":{"position":{"x":7542.732022390981,"y":17082.581362191933},"targetPosition":{"x":7373.313391773107,"y":17330.16433333406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"7c2c5a70-1ccb-4b1e-89b9-93a35e3ff9bd","savedPayload":{"position":{"x":7448.531314037198,"y":16863.882140084057},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"3503a74e-27ab-432d-b23b-384ea189b71c","savedPayload":{"position":{"x":7437.60678348006,"y":16547.11471695042},"targetPosition":{"x":7515.59176052819,"y":16836.8013465259},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b0eb4942-d207-41d7-baea-235288d4c3ba","savedPayload":{"position":{"x":7515.59176052819,"y":16836.8013465259},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 2","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"0014c98f-7ca4-42ce-a904-5358de2ae8cb","savedPayload":{"position":{"x":7580.792083266399,"y":16526.624197719844},"targetPosition":{"x":7587.18441042136,"y":16826.556086910612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"17498492-0347-435c-b51c-471ec5dde3f5","savedPayload":{"position":{"x":7587.18441042136,"y":16826.556086910612},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 3","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"9d45d527-de65-4e27-a6eb-bebd02822ac4","savedPayload":{"position":{"x":7724.720380690902,"y":16540.995580872688},"targetPosition":{"x":7659.148559133613,"y":16833.741778487034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"abc17a70-8a33-482c-98a1-1e9d8fb506d1","savedPayload":{"position":{"x":7659.148559133613,"y":16833.741778487034},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 4","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.2\n}","project":"Superalgos","id":"095551e1-caff-4550-b6e3-e9fe57fdf87d","savedPayload":{"position":{"x":7861.027086265338,"y":16589.39365385796},"targetPosition":{"x":7727.301911920829,"y":16857.94081497967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6ce3a570-fffb-47b8-adbd-bb5e47ddce01","savedPayload":{"position":{"x":7727.301911920829,"y":16857.94081497967},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 5","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.4\n}","project":"Superalgos","id":"eb84ebd8-a82a-49eb-a125-7b73255da111","savedPayload":{"position":{"x":7981.790549716425,"y":16669.005696593587},"targetPosition":{"x":7787.683643646375,"y":16897.746836347484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"af63db19-44f6-4044-a45e-b02db4d50245","savedPayload":{"position":{"x":7787.683643646375,"y":16897.746836347484},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 6","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"9804666d-4352-4e5d-b37c-85e9d2f2a060","savedPayload":{"position":{"x":8079.9924375057235,"y":16775.204946533784},"targetPosition":{"x":7836.784587541024,"y":16950.846461317582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4cd1a79d-2d39-4612-a7f7-d6fc395785a3","savedPayload":{"position":{"x":7836.784587541024,"y":16950.846461317582},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 7","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"e5eea939-7487-42d4-a1b7-7becb3ddf4ab","savedPayload":{"position":{"x":8149.9256128642555,"y":16901.81948929059},"targetPosition":{"x":7871.751175220288,"y":17014.153732695984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0489d2e1-3816-4129-9bb6-c9624e283e96","savedPayload":{"position":{"x":7871.751175220288,"y":17014.153732695984},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 8","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1\n}","project":"Superalgos","id":"32efd876-da55-4e6e-a4fe-bc3c06825c31","savedPayload":{"position":{"x":8187.525813836932,"y":17041.49094786412},"targetPosition":{"x":7890.551275706628,"y":17083.98946198275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d85e2688-1a84-4349-b57c-87e2c28b6c74","savedPayload":{"position":{"x":7890.551275706628,"y":17083.98946198275},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 9","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.6\n}","project":"Superalgos","id":"1b688d9a-3f2c-406d-9611-700096e746a7","savedPayload":{"position":{"x":8190.607853414393,"y":17186.102124767174},"targetPosition":{"x":7892.092295495357,"y":17156.295050434277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dddeb326-80d2-4698-b151-22fc5776db4a","savedPayload":{"position":{"x":7892.092295495357,"y":17156.295050434277},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 10","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.8\n}","project":"Superalgos","id":"260cbf65-ecbe-495a-8e31-5e3bab3c44ff","savedPayload":{"position":{"x":8158.99261465915,"y":17327.248744038377},"targetPosition":{"x":7876.284676117735,"y":17226.86836006988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6817cd8b-baac-49cb-912e-c59d0fd08a74","savedPayload":{"position":{"x":7876.284676117735,"y":17226.86836006988},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.support5Bounce1 > 11","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1\n}","project":"Superalgos","id":"c74a9428-2a15-465f-a320-6a1df372b6ec","savedPayload":{"position":{"x":8094.517460330946,"y":17456.72787721279},"targetPosition":{"x":7844.047098953633,"y":17291.607926657085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f56948e0-bcae-48d5-9460-1b3136a9f5ab","savedPayload":{"position":{"x":7844.047098953633,"y":17291.607926657085},"targetPosition":{"x":7593.576737576321,"y":17126.48797610138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c53fa25f-d13c-4bba-ad54-f63bc4ab370e","savedPayload":{"position":{"x":7593.576737576321,"y":17126.48797610138},"targetPosition":{"x":7373.313391773107,"y":17330.16433333406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin - Zone Resistance","project":"Superalgos","id":"97ae8c75-04ed-4106-a8bc-860b928c801c","savedPayload":{"position":{"x":7633.376528863453,"y":17180.60777304088},"targetPosition":{"x":7373.313391773107,"y":17330.16433333406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin - Zone Resistance","id":"f1da5793-706f-4884-af96-51be961434e8"}}},{"type":"Polygon Vertex","name":"End - Zone Resistance","project":"Superalgos","id":"ff09c05e-8165-4874-ab3e-6b4d536152f5","savedPayload":{"position":{"x":7660.135668527786,"y":17242.226960407286},"targetPosition":{"x":7373.313391773107,"y":17330.16433333406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End - Zone Resistance","id":"ca37a88a-7a07-40c8-99ac-f8b8ff2d5d4d"}}},{"type":"Polygon Vertex","name":"End + Zone Resistance","project":"Superalgos","id":"d05060f1-47ba-4fb0-9cf1-112b43d7052d","savedPayload":{"position":{"x":7672.512341570113,"y":17308.255694846735},"targetPosition":{"x":7373.313391773107,"y":17330.16433333406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End + Zone Resistance","id":"15092839-5205-4e95-b729-0ed82fcfe928"}}},{"type":"Polygon Vertex","name":"Begin + Zone Resistance","project":"Superalgos","id":"b45229f5-8479-4ece-a945-ffb00fd63b70","savedPayload":{"position":{"x":7669.88592992361,"y":17375.38301990244},"targetPosition":{"x":7373.313391773107,"y":17330.16433333406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin + Zone Resistance","id":"e1833970-01d0-4715-ad2d-9e717510fd30"}}}],"id":"be7397f9-5610-4d38-86ee-90c2dfceceef","savedPayload":{"position":{"x":7373.313391773107,"y":17330.16433333406},"targetPosition":{"x":7098.1404551822525,"y":17449.66268046893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"6daa712b-9aa6-4363-a987-cbef7c95d404","savedPayload":{"position":{"x":7098.1404551822525,"y":17449.66268046893},"targetPosition":{"x":7170.717023862151,"y":17740.751398351727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Support Levels","config":"{ \n\"codeName\": \"Resistances Rates & Periods\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Rate 1","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support1Rate","project":"Superalgos","id":"7e6ffb7b-700e-4870-be11-e85a42a4b1c4","savedPayload":{"position":{"x":12660.02370251853,"y":6116.5837618853475},"targetPosition":{"x":12973.467942074065,"y":6993.842466073841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"645eb939-2442-4527-b2a9-41dc9fe757a9","savedPayload":{"position":{"x":12973.467942074065,"y":6993.842466073841},"targetPosition":{"x":13287.748172890337,"y":7871.164714053828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period 1","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support1Period","project":"Superalgos","id":"6c18d565-f06e-4461-93e0-5076f32d9599","savedPayload":{"position":{"x":12916.274035755076,"y":6044.9504193666135},"targetPosition":{"x":13101.966941213755,"y":6958.134171499978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eb9da961-accc-4205-8ae9-4ca89af0cdc2","savedPayload":{"position":{"x":13101.966941213755,"y":6958.134171499978},"targetPosition":{"x":13287.748172890337,"y":7871.164714053828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate 2","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support2Rate","project":"Superalgos","id":"6e0aeeb7-3c81-4ecf-b6f8-09bb8fe599b3","savedPayload":{"position":{"x":13179.94098081714,"y":6010.956171355818},"targetPosition":{"x":13233.898807679252,"y":6940.852257514184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a3c3d8ed-b1c8-454d-91f6-a1f178f12baa","savedPayload":{"position":{"x":13233.898807679252,"y":6940.852257514184},"targetPosition":{"x":13287.748172890337,"y":7871.164714053828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period 2","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support2Period","project":"Superalgos","id":"18e53d69-4c32-4e34-a1ae-c8017b851080","savedPayload":{"position":{"x":13445.590834858594,"y":6014.487186421219},"targetPosition":{"x":13366.606108798529,"y":6942.667620239159},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a43ed0c5-2a03-4c06-8ecf-464f323253ce","savedPayload":{"position":{"x":13366.606108798529,"y":6942.667620239159},"targetPosition":{"x":13287.748172890337,"y":7871.164714053828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate 3","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support3Rate","project":"Superalgos","id":"84073b24-07af-4253-91f0-1a3363515fea","savedPayload":{"position":{"x":13708.420632946807,"y":6056.026419645773},"targetPosition":{"x":13497.977795751394,"y":6963.682696481296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7ddd82f0-f22d-4b58-8c82-72da0faad6df","savedPayload":{"position":{"x":13497.977795751394,"y":6963.682696481296},"targetPosition":{"x":13287.748172890337,"y":7871.164714053828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period 3","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support3Period","project":"Superalgos","id":"cb9423ad-6fc8-4cf8-996c-f6c3ca9d6423","savedPayload":{"position":{"x":13962.192577666614,"y":6134.2249892778855},"targetPosition":{"x":13625.07730741646,"y":7002.5804419478745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d65c13d2-d9b5-426d-916c-fcb049ca684a","savedPayload":{"position":{"x":13625.07730741646,"y":7002.5804419478745},"targetPosition":{"x":13287.748172890337,"y":7871.164714053828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate 4","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support4Rate","project":"Superalgos","id":"3eefba37-d0b5-48c7-8930-2065d0370fd6","savedPayload":{"position":{"x":14202.48038140568,"y":6248.044823916847},"targetPosition":{"x":13745.157842646924,"y":7059.594935258309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cc6ea81e-db56-45ca-ad89-43e3cab97406","savedPayload":{"position":{"x":13745.157842646924,"y":7059.594935258309},"targetPosition":{"x":13287.748172890337,"y":7871.164714053828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period 4","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support4Period","project":"Superalgos","id":"a39d8363-6920-4001-b0f2-0d194c34a7f2","savedPayload":{"position":{"x":14424.175772627164,"y":6394.604006909249},"targetPosition":{"x":13856.06515628512,"y":7132.918477367295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"99f78253-63c7-40f4-bc8a-7e37349ff6f6","savedPayload":{"position":{"x":13856.06515628512,"y":7132.918477367295},"targetPosition":{"x":13287.748172890337,"y":7871.164714053828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate 5","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support5Rate","project":"Superalgos","id":"344a9d6b-1f59-401c-8b50-97f740c8f141","savedPayload":{"position":{"x":14623.487790961022,"y":6571.733762801851},"targetPosition":{"x":13955.62071716741,"y":7221.518604522331},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f01c7994-93d3-46f2-9135-e25955247914","savedPayload":{"position":{"x":13955.62071716741,"y":7221.518604522331},"targetPosition":{"x":13287.748172890337,"y":7871.164714053828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Period 5","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support5Period","project":"Superalgos","id":"27ddb6f4-212d-4220-82e7-04b4e3a45fd6","savedPayload":{"position":{"x":14795.237618882486,"y":6775.432788430428},"targetPosition":{"x":14041.60665967776,"y":7323.440280536206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c2195d70-d9d9-4377-8909-adefddae101f","savedPayload":{"position":{"x":14041.60665967776,"y":7323.440280536206},"targetPosition":{"x":13287.748172890337,"y":7871.164714053828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"635f72c8-0556-46db-87cf-4c15449c1e70","savedPayload":{"position":{"x":7283.099001886927,"y":17462.59624198169},"targetPosition":{"x":7170.717023862151,"y":17740.751398351727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Support Bounces","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Level 1 ZONE","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support1Bounce1","project":"Superalgos","id":"d13fcc7c-cc42-4496-ba29-dc8724b5fb29","savedPayload":{"position":{"x":13639.142681930462,"y":7281.150819451561},"targetPosition":{"x":13687.732176151541,"y":7509.7895641433415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"62364bde-b261-4f32-839d-ef2c3878c99f","savedPayload":{"position":{"x":13687.732176151541,"y":7509.7895641433415},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 1 @ 2 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support1Bounce2","project":"Superalgos","id":"b6e48da2-5f15-4a39-b91a-164c7f27926f","savedPayload":{"position":{"x":13830.530963639114,"y":7256.784600603553},"targetPosition":{"x":13840.661954382624,"y":7490.396919855984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"cf514f7a-499b-48ac-90e9-f94e9808edd1","savedPayload":{"position":{"x":13840.661954382624,"y":7490.396919855984},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 1 @ 3 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support1Bounce3","project":"Superalgos","id":"642b6ab0-0e00-4f24-9ade-b09618f11590","savedPayload":{"position":{"x":14022.55994851972,"y":7264.298737366085},"targetPosition":{"x":13994.289926646074,"y":7496.43741064804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"5bdd2b93-c16d-4580-b7f3-b330bb69092d","savedPayload":{"position":{"x":13994.289926646074,"y":7496.43741064804},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 1 @ 5 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support1Bounce5","project":"Superalgos","id":"469287dc-1f38-42ce-975c-099fb1cd9f40","savedPayload":{"position":{"x":14211.200111379949,"y":7303.421774355864},"targetPosition":{"x":14145.055961141785,"y":7527.722499475192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c2d2df4c-2b45-4840-82f8-c012a1743b02","savedPayload":{"position":{"x":14145.055961141785,"y":7527.722499475192},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 1 @ 10 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support1Bounce10","project":"Superalgos","id":"19caf103-9282-4809-b7c6-a069ad289a2c","savedPayload":{"position":{"x":14390.795411869276,"y":7373.064464460795},"targetPosition":{"x":14288.596602520658,"y":7583.394186134639},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"79e1a09f-925e-48b6-85c2-a22026e04dac","savedPayload":{"position":{"x":14288.596602520658,"y":7583.394186134639},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 1 @ All","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support1BounceAll","project":"Superalgos","id":"f19ab711-2207-4110-9d97-06477cfeb543","savedPayload":{"position":{"x":14556.46217678722,"y":7471.31864469663},"targetPosition":{"x":14421.0068389989,"y":7661.931281778161},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"eefbe053-1588-40a7-ac65-228590b7046b","savedPayload":{"position":{"x":14421.0068389989,"y":7661.931281778161},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 ZONE","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support2Bounce1","project":"Superalgos","id":"08a5148e-4fe4-45bf-aa97-2e58a63a74ef","savedPayload":{"position":{"x":14703.688281341976,"y":7595.500435170847},"targetPosition":{"x":14538.679508713984,"y":7761.190277996524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"fb6ade4e-292b-47b3-b20f-05fb859b98b4","savedPayload":{"position":{"x":14538.679508713984,"y":7761.190277996524},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 @ 2 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support2Bounce2","project":"Superalgos","id":"c9b2a0ac-b81c-4fc7-8e1d-091853938587","savedPayload":{"position":{"x":14828.460097064399,"y":7742.220679503347},"targetPosition":{"x":14638.406138269405,"y":7878.463491710692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"9a56c631-2c1c-4ae7-a194-89b346df3463","savedPayload":{"position":{"x":14638.406138269405,"y":7878.463491710692},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 @ 3 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support2Bounce3","project":"Superalgos","id":"0373e364-a16d-4b51-b329-012a61b7ace6","savedPayload":{"position":{"x":14927.377312008957,"y":7907.476253072073},"targetPosition":{"x":14717.46756362035,"y":8010.551591081479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"30071839-72eb-494e-afc6-9a6ab94f9b70","savedPayload":{"position":{"x":14717.46756362035,"y":8010.551591081479},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 @ 5 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support2Bounce5","project":"Superalgos","id":"a2473366-94ac-4849-b862-43428d6d0a98","savedPayload":{"position":{"x":14997.739386510428,"y":8086.757474633909},"targetPosition":{"x":14773.707510638014,"y":8153.852172791792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"8deff06c-f8bc-4726-9907-4b14d0254746","savedPayload":{"position":{"x":14773.707510638014,"y":8153.852172791792},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 @ 10 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support2Bounce10","project":"Superalgos","id":"d4532f24-7d16-49af-a0ca-46e75a7c2f86","savedPayload":{"position":{"x":15037.629444750106,"y":8275.000402941383},"targetPosition":{"x":14805.59152988483,"y":8304.291951748883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"ebc42c04-3f1f-4236-8367-ce463bf2c90f","savedPayload":{"position":{"x":14805.59152988483,"y":8304.291951748883},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 2 @ All","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support2BounceAll","project":"Superalgos","id":"6da34bd1-0980-452b-b6c8-89db0c82d5f5","savedPayload":{"position":{"x":15045.96237097475,"y":8466.951518760048},"targetPosition":{"x":14812.279714096203,"y":8457.815835023473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"f4a89e5c-6c86-4244-97c1-ad22ea7cd312","savedPayload":{"position":{"x":14812.279714096203,"y":8457.815835023473},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 ZONE","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support3Bounce1","project":"Superalgos","id":"84bdb475-2001-4b44-8cf2-03dfd526b973","savedPayload":{"position":{"x":15022.52917493831,"y":8658.118553594264},"targetPosition":{"x":14793.69885317461,"y":8610.789464837419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"b405e855-bb60-4161-93f2-9598d0622c20","savedPayload":{"position":{"x":14793.69885317461,"y":8610.789464837419},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 @ 2 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support3Bounce2","project":"Superalgos","id":"5ad12a0a-2cae-46ed-b896-7e5db84d4f22","savedPayload":{"position":{"x":14967.791746863451,"y":8842.826056844542},"targetPosition":{"x":14749.953897371557,"y":8758.528115026893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"5edc75a9-9864-48d5-ae37-fa72c4aad2a9","savedPayload":{"position":{"x":14749.953897371557,"y":8758.528115026893},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 @ 3 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support3Bounce3","project":"Superalgos","id":"a9b8e084-a12c-496c-95b1-d99be5ef8b0e","savedPayload":{"position":{"x":14883.572881144726,"y":9016.282838258481},"targetPosition":{"x":14682.47103299804,"y":8896.985968614901},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"d88536c7-cf92-48b1-8501-20b57d8d8a0a","savedPayload":{"position":{"x":14682.47103299804,"y":8896.985968614901},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 @ 5 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support3Bounce5","project":"Superalgos","id":"8d5ba2b2-d7aa-44bf-861c-d584c25b2a6f","savedPayload":{"position":{"x":14771.993794378537,"y":9173.38449109148},"targetPosition":{"x":14593.320478659738,"y":9022.574013840967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"4e750e36-67f4-41fc-b154-e516bc793142","savedPayload":{"position":{"x":14593.320478659738,"y":9022.574013840967},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 @ 10 %","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support3Bounce10","project":"Superalgos","id":"01c3a535-80db-4473-9a07-0779645fd2aa","savedPayload":{"position":{"x":14635.901554658532,"y":9309.69917181917},"targetPosition":{"x":14484.575859612702,"y":9131.516262705574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"f8eeae14-9884-4912-9eee-161a8b911600","savedPayload":{"position":{"x":14484.575859612702,"y":9131.516262705574},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Level 3 @ All","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.support3BounceAll","project":"Superalgos","id":"778b179e-29a7-4ab3-bbb6-ce81bb805cad","savedPayload":{"position":{"x":14479.00433215949,"y":9421.927626080538},"targetPosition":{"x":14359.257330091397,"y":9221.241429698795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"0a53817d-766f-49f1-b233-6cd6bdddd754","savedPayload":{"position":{"x":14359.257330091397,"y":9221.241429698795},"targetPosition":{"x":13881.07749811856,"y":8421.423827258568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7d34b4e7-0593-4b2a-8e4f-a06e6625f6d5","savedPayload":{"position":{"x":7425.13145270908,"y":17581.775619081767},"targetPosition":{"x":7170.717023862151,"y":17740.751398351727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Support Zone Sizes","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Zone * 1","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.supportResistanceZone","project":"Superalgos","id":"799aebef-4e58-4e2c-ba9f-16ea325ac998","savedPayload":{"position":{"x":13930.09380222697,"y":9715.54530717583},"targetPosition":{"x":13814.295576456385,"y":9698.395467299933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"f1f1c795-56fe-4091-804e-d4d472c9142c","savedPayload":{"position":{"x":13814.295576456385,"y":9698.395467299933},"targetPosition":{"x":13352.991293692154,"y":9629.235006436074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Zone * 2","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.supportResistanceZone * 2","project":"Superalgos","id":"32b7a21a-d80c-4bbd-9782-7300dea36122","savedPayload":{"position":{"x":13809.337759313454,"y":9992.825395789172},"targetPosition":{"x":13717.740393258238,"y":9919.928707864678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"19bdcbf6-4979-4b04-ae57-cbe7517c04ea","savedPayload":{"position":{"x":13717.740393258238,"y":9919.928707864678},"targetPosition":{"x":13352.991293692154,"y":9629.235006436074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Zone * 3","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.supportResistanceZone * 3","project":"Superalgos","id":"fbe0c934-822f-4d54-ad5a-d377b3611066","savedPayload":{"position":{"x":13566.180716957962,"y":10172.382078724446},"targetPosition":{"x":13523.403774817823,"y":10063.403434578086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"3f670609-9458-4bb5-8ab5-cc6b36257377","savedPayload":{"position":{"x":13523.403774817823,"y":10063.403434578086},"targetPosition":{"x":13352.991293692154,"y":9629.235006436074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Zone * 5","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.supportResistanceZone * 5","project":"Superalgos","id":"5feb8c45-b7d1-49cb-83b7-74518d752328","savedPayload":{"position":{"x":13266.477267210339,"y":10206.187701362172},"targetPosition":{"x":13283.683978031091,"y":10090.428501799413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"f4944a67-3321-49f2-9cfe-fa63ebaf74e1","savedPayload":{"position":{"x":13283.683978031091,"y":10090.428501799413},"targetPosition":{"x":13352.991293692154,"y":9629.235006436074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Zone * 10","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.supportResistanceZone * 10","project":"Superalgos","id":"68e84fc5-33ac-4e6b-a7c5-688ced53e4a7","savedPayload":{"position":{"x":12989.465090364305,"y":10085.027691168149},"targetPosition":{"x":13062.263046570482,"y":9993.701079333332},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"7d9369a7-6fbb-4e97-b447-6620d98d3089","savedPayload":{"position":{"x":13062.263046570482,"y":9993.701079333332},"targetPosition":{"x":13352.991293692154,"y":9629.235006436074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"24739677-7e84-4013-81db-db4de744c467","savedPayload":{"position":{"x":7469.986238940099,"y":17761.678340474966},"targetPosition":{"x":7170.717023862151,"y":17740.751398351727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1a104c65-6470-4694-a39e-4663f15e490c","savedPayload":{"position":{"x":7170.717023862151,"y":17740.751398351727},"targetPosition":{"x":6977.880740956192,"y":17970.56473128742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0fd59bed-c28b-434c-801e-a2671e609f0d","savedPayload":{"position":{"x":6977.880740956191,"y":17972.56473128742},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Fees Band","config":"{ \n \"codeName\": \"Fees-Band\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Fees Band","config":"{ \n \"codeName\": \"Module-Name\", \n \"icon\": \"band\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Upper Band","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginUpperBand","project":"Superalgos","id":"77e2cda7-d480-4c63-9ade-2223cf5866c4","savedPayload":{"position":{"x":7542.677770506758,"y":17576.04013463916},"targetPosition":{"x":7765.641466904544,"y":17545.837649830188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b2e952c2-3a4a-4857-b329-08b1a7db3f92","savedPayload":{"position":{"x":7765.641466904544,"y":17545.837649830188},"targetPosition":{"x":7988.605163302331,"y":17515.635165021216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Upper Band","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endUpperBand","project":"Superalgos","id":"8adb9a33-c824-453b-a8bd-46e0503934bf","savedPayload":{"position":{"x":7592.3371739668,"y":17302.39426690837},"targetPosition":{"x":7790.471168634565,"y":17409.014715964793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ff8660a3-65b0-4df3-b823-f0656537ea30","savedPayload":{"position":{"x":7790.471168634565,"y":17409.014715964793},"targetPosition":{"x":7988.605163302331,"y":17515.635165021216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Lower Band","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginLowerBand","project":"Superalgos","id":"16e335e4-11dd-4e86-93f6-46670d92aa65","savedPayload":{"position":{"x":7793.357480699429,"y":17110.19917446513},"targetPosition":{"x":7890.98132200088,"y":17312.917169743174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a5d52420-869d-4597-bbf8-27288030c2cb","savedPayload":{"position":{"x":7890.98132200088,"y":17312.917169743174},"targetPosition":{"x":7988.605163302331,"y":17515.635165021216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Lower Band","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endLowerBand","project":"Superalgos","id":"ee0c792c-0b87-448f-a86a-026997df426f","savedPayload":{"position":{"x":8068.95576596172,"y":17072.866850151833},"targetPosition":{"x":8028.7804646320255,"y":17294.251007586525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad2678ac-2687-4a83-84f5-3447adab39e0","savedPayload":{"position":{"x":8028.7804646320255,"y":17294.251007586525},"targetPosition":{"x":7988.605163302331,"y":17515.635165021216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8d7e9c7b-b8b1-4194-a81e-fb5ba2ee3c9d","savedPayload":{"position":{"x":7082.342007435971,"y":17424.210686539758},"targetPosition":{"x":7375.786287656112,"y":17486.584193785086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.2\n }\n}","project":"Superalgos","id":"7a0a39fb-3009-4c68-b5af-76ebfac5b5f4","savedPayload":{"position":{"x":6796.300474090258,"y":16944.185639329127},"targetPosition":{"x":7070.3641113830345,"y":17066.206632251866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"67bb5ca8-09fc-4b35-9e01-53acbcde2f6d","savedPayload":{"position":{"x":7070.3641113830345,"y":17066.206632251866},"targetPosition":{"x":7344.427748675818,"y":17188.227625174604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Upper Band","project":"Superalgos","id":"770ba99e-6809-491a-bdc2-3351fb82a848","savedPayload":{"position":{"x":7168.092172988076,"y":16945.52252686212},"targetPosition":{"x":7344.427748675818,"y":17188.227625174604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Upper Band","id":"b2e952c2-3a4a-4857-b329-08b1a7db3f92"}}},{"type":"Polygon Vertex","name":"End Upper Band","project":"Superalgos","id":"1f0c5a04-316d-46f3-9809-9e7b7f5c8d68","savedPayload":{"position":{"x":7313.069209695521,"y":16889.871056564123},"targetPosition":{"x":7344.427748675818,"y":17188.227625174604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Upper Band","id":"ff8660a3-65b0-4df3-b823-f0656537ea30"}}},{"type":"Polygon Vertex","name":"End Lower Band","project":"Superalgos","id":"784a2f26-c01b-4dd4-be3e-c19a67e51efb","savedPayload":{"position":{"x":7466.448741598557,"y":16914.163987881824},"targetPosition":{"x":7344.427748675818,"y":17188.227625174604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Lower Band","id":"ad2678ac-2687-4a83-84f5-3447adab39e0"}}},{"type":"Polygon Vertex","name":"Begin Lower Band","project":"Superalgos","id":"c5b96ae9-9650-461f-b480-e934eaed42b9","savedPayload":{"position":{"x":7587.132846988301,"y":17011.89204948686},"targetPosition":{"x":7344.427748675818,"y":17188.227625174604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Lower Band","id":"a5d52420-869d-4597-bbf8-27288030c2cb"}}}],"id":"170768fe-218b-4efc-84b1-7fe4360c4bc6","savedPayload":{"position":{"x":7344.427748675818,"y":17188.227625174604},"targetPosition":{"x":7375.786287656112,"y":17486.584193785086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Upper Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.5,\n \"lineWidth\": 0.2\n }\n}","project":"Superalgos","id":"ef35f6f5-edb4-4e2b-ae3b-b12322a6eb01","savedPayload":{"position":{"x":7864.870694676072,"y":16804.414944964028},"targetPosition":{"x":7757.360309812484,"y":17084.489072913188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c9a19eef-84bb-422d-befa-b7e893ef3813","savedPayload":{"position":{"x":7757.360309812484,"y":17084.489072913188},"targetPosition":{"x":7649.849924948892,"y":17364.563200862347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Upper Band","project":"Superalgos","id":"0453f7d1-db79-436f-b0ab-27cd121aa058","savedPayload":{"position":{"x":7923.9135622416725,"y":17242.54220793961},"targetPosition":{"x":7649.849924948892,"y":17364.563200862347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Upper Band","id":"b2e952c2-3a4a-4857-b329-08b1a7db3f92"}}},{"type":"Polygon Vertex","name":"End Upper Band","project":"Superalgos","id":"41e230e4-78d4-43e9-85fb-e5ff01740d63","savedPayload":{"position":{"x":7929.924052898052,"y":17472.07358572594},"targetPosition":{"x":7649.849924948892,"y":17364.563200862347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Upper Band","id":"ff8660a3-65b0-4df3-b823-f0656537ea30"}}}],"id":"93a6b8eb-8c5d-4661-858f-9eb37058f104","savedPayload":{"position":{"x":7649.849924948892,"y":17364.563200862347},"targetPosition":{"x":7375.786287656112,"y":17486.584193785086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Lower Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.5,\n \"lineWidth\": 0.2\n }\n}","project":"Superalgos","id":"5f6e5be0-8b6e-4466-9bc2-a100671f5f74","savedPayload":{"position":{"x":8175.703190416512,"y":17740.92921517407},"targetPosition":{"x":7876.114329990141,"y":17725.228428301187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"80bfd142-4af5-4242-9b49-314e88864a10","savedPayload":{"position":{"x":7876.114329990141,"y":17725.228428301187},"targetPosition":{"x":7576.5254695637705,"y":17709.527641428303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Lower Band","project":"Superalgos","id":"032f51c9-feac-42c1-b0f2-091fcfd99402","savedPayload":{"position":{"x":7777.264651471425,"y":17932.47108907152},"targetPosition":{"x":7576.5254695637705,"y":17709.527641428303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Lower Band","id":"a5d52420-869d-4597-bbf8-27288030c2cb"}}},{"type":"Polygon Vertex","name":"End Lower Band","project":"Superalgos","id":"af720143-1bb7-4f58-b8cb-b6af12c95b2a","savedPayload":{"position":{"x":7560.824682690887,"y":18009.116501854674},"targetPosition":{"x":7576.5254695637705,"y":17709.527641428303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Lower Band","id":"ad2678ac-2687-4a83-84f5-3447adab39e0"}}}],"id":"3ccd3764-3fbe-4da1-929f-4b349e4cc8fa","savedPayload":{"position":{"x":7576.5254695637705,"y":17709.527641428303},"targetPosition":{"x":7375.786287656112,"y":17486.584193785086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"6873036b-9a25-429f-bee6-bd16d1d41093","savedPayload":{"position":{"x":7375.786287656112,"y":17486.584193785086},"targetPosition":{"x":7225.786287656112,"y":17746.39181492042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"id":"eccd3713-e5c8-450c-bfb8-f8821fc429df","savedPayload":{"position":{"x":7225.786287656112,"y":17746.39181492042},"targetPosition":{"x":7075.786287656112,"y":18006.19943605575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"31573886-3aa4-4a73-931c-db92ae11ebf9","savedPayload":{"position":{"x":7075.786287656112,"y":18008.19943605575},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Volume Analysis","config":"{ \n \"codeName\": \"Volume-Analysis\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Volume Analysis","config":"{ \n \"codeName\": \"Volume-Analysis\", \n \"icon\": \"histogram\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Buy Sell Volume","project":"Superalgos","points":[{"type":"Point","name":"Begin Base","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"f8158da3-f5c3-4b74-81dc-2be3c0d22b45","savedPayload":{"position":{"x":6902.867154599913,"y":17404.107130804132},"targetPosition":{"x":7202.855731519168,"y":17406.725091453645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"faabcc21-5670-470c-bc77-c9aca70886b8","savedPayload":{"position":{"x":7202.855731519168,"y":17406.725091453645},"targetPosition":{"x":7502.844308438416,"y":17409.34305210316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Base","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"79b32fa6-3e60-4369-ba3c-3763342a672a","savedPayload":{"position":{"x":6950.5413963669525,"y":17174.90437500959},"targetPosition":{"x":7226.692852402684,"y":17292.123713556375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0fff9bf4-08d1-4f44-bf79-dd08b42ff678","savedPayload":{"position":{"x":7226.692852402684,"y":17292.123713556375},"targetPosition":{"x":7502.844308438416,"y":17409.34305210316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Buy","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.buyVolume","project":"Superalgos","id":"1260a501-c3d7-42ee-b378-3fb0eafec069","savedPayload":{"position":{"x":7082.29874985851,"y":16981.39278261065},"targetPosition":{"x":7292.571529148463,"y":17195.367917356903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7fdb6f4d-0f74-4631-aa4d-dd903d0229d3","savedPayload":{"position":{"x":7292.571529148463,"y":17195.367917356903},"targetPosition":{"x":7502.844308438416,"y":17409.34305210316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Buy","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end - (record.end - record.begin) / 2\ny = record.buyVolume","project":"Superalgos","id":"ceec5884-2e1c-497b-b5d3-e8e782d1c3d8","savedPayload":{"position":{"x":7278.080352388872,"y":16853.032739363083},"targetPosition":{"x":7390.462330413644,"y":17131.18789573312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"604de182-f384-408e-9416-7d6f033e2647","savedPayload":{"position":{"x":7390.462330413644,"y":17131.18789573312},"targetPosition":{"x":7502.844308438416,"y":17409.34305210316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Sell","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end - (record.end - record.begin) / 2\ny = record.sellVolume","project":"Superalgos","id":"b54ab964-74cd-49d0-98a6-da48375d8525","savedPayload":{"position":{"x":7508.080229737443,"y":16809.365898264656},"targetPosition":{"x":7505.46226908793,"y":17109.354475183907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"50689245-9b87-4751-ac97-fe322011a283","savedPayload":{"position":{"x":7505.46226908793,"y":17109.354475183907},"targetPosition":{"x":7502.844308438416,"y":17409.34305210316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Sell","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sellVolume","project":"Superalgos","id":"fbc031e0-d43e-442b-97fe-5a9ad8eb6f9f","savedPayload":{"position":{"x":7737.282985531983,"y":16857.040140031695},"targetPosition":{"x":7620.0636469852,"y":17133.191596067427},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bff175f0-942f-4b80-a47d-4b3a81f8c02e","savedPayload":{"position":{"x":7620.0636469852,"y":17133.191596067427},"targetPosition":{"x":7502.844308438416,"y":17409.34305210316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Middle Base","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end - (record.end - record.begin) / 2\ny = 0","project":"Superalgos","id":"8043c90f-b8a4-4b96-9d7e-c764dac32e1b","savedPayload":{"position":{"x":7930.794577930927,"y":16988.797493523245},"targetPosition":{"x":7716.819443184671,"y":17199.070272813202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"17046023-8100-436e-af2c-7800523e1b76","savedPayload":{"position":{"x":7716.819443184671,"y":17199.070272813202},"targetPosition":{"x":7502.844308438416,"y":17409.34305210316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fc039fb-29b3-43cf-a68d-4e6e6e25a25a","savedPayload":{"position":{"x":7502.844308438416,"y":17409.34305210316},"targetPosition":{"x":7615.226286463192,"y":17687.498208473196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"SMA 20","project":"Superalgos","points":[{"type":"Point","name":"Begin Buy SMA 20","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.buySMA20","project":"Superalgos","id":"c25846dd-bf8e-4ab6-a76d-d0c5ac9d1273","savedPayload":{"position":{"x":7560.58375779623,"y":17130.84400969667},"targetPosition":{"x":7717.333327211014,"y":17386.636059002896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"00cca122-c5d1-4963-a4c5-0ef8402dad6e","savedPayload":{"position":{"x":7717.333327211014,"y":17386.636059002896},"targetPosition":{"x":7874.082896625798,"y":17642.428108309123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Buy SMA 20","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.buySMA20","project":"Superalgos","id":"f6db70cc-ae4c-4d12-ac9f-cf0fc8a7738d","savedPayload":{"position":{"x":7921.158354062507,"y":17044.277708069243},"targetPosition":{"x":7897.620625344152,"y":17343.352908189183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a84d5f5a-955d-4108-babc-0a79f8963cb1","savedPayload":{"position":{"x":7897.620625344152,"y":17343.352908189183},"targetPosition":{"x":7874.082896625798,"y":17642.428108309123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Sell SMA 20","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sellSMA20","project":"Superalgos","id":"50905638-9a46-4835-bab4-5103a7c46fce","savedPayload":{"position":{"x":8263.751725623908,"y":17186.184528949107},"targetPosition":{"x":8068.917311124853,"y":17414.306318629115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fccd2ad5-d651-42be-aa67-3a96feac4ae3","savedPayload":{"position":{"x":8068.917311124853,"y":17414.306318629115},"targetPosition":{"x":7874.082896625798,"y":17642.428108309123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Sell SMA 20","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sellSMA20","project":"Superalgos","id":"3f9f9ad0-2d4c-4036-a616-6307efea7537","savedPayload":{"position":{"x":8457.504848864402,"y":17502.360889995576},"targetPosition":{"x":8165.7938727451,"y":17572.39449915235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"85363ef9-6834-4124-885e-f78bc2516112","savedPayload":{"position":{"x":8165.7938727451,"y":17572.39449915235},"targetPosition":{"x":7874.082896625798,"y":17642.428108309123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7b48abfb-2e5a-4b7a-b0f6-ca827685589a","savedPayload":{"position":{"x":7594.299344339954,"y":17388.22899339525},"targetPosition":{"x":7615.226286463192,"y":17687.498208473196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"SMA 200","project":"Superalgos","points":[{"type":"Point","name":"Begin Buy SMA 200","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.buySMA200","project":"Superalgos","id":"3dd256fa-9944-4d7d-9831-e40dd3493b40","savedPayload":{"position":{"x":7686.4173769120025,"y":17109.47219924951},"targetPosition":{"x":7801.222406621528,"y":17386.636059002896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac42be50-d6da-4956-8c57-240970124355","savedPayload":{"position":{"x":7801.222406621528,"y":17386.636059002896},"targetPosition":{"x":7916.027436331053,"y":17663.799918756282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Buy SMA 200","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.buySMA200","project":"Superalgos","id":"37247409-4983-484d-b719-f9d82f3791b0","savedPayload":{"position":{"x":8056.094654644599,"y":17080.377966517677},"targetPosition":{"x":7986.061045487826,"y":17372.08894263698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a0dd766d-5c5c-4ac1-96f4-6745501455a3","savedPayload":{"position":{"x":7986.061045487826,"y":17372.08894263698},"targetPosition":{"x":7916.027436331053,"y":17663.799918756282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Sell SMA 200","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sellSMA200","project":"Superalgos","id":"fa086961-195a-4b30-b0b8-1045a2ae20b5","savedPayload":{"position":{"x":8372.271015691069,"y":17274.13108975817},"targetPosition":{"x":8144.149226011061,"y":17468.965504257227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"083d6c60-2cfa-4221-a98b-bc082201f194","savedPayload":{"position":{"x":8144.149226011061,"y":17468.965504257227},"targetPosition":{"x":7916.027436331053,"y":17663.799918756282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Sell SMA 200","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sellSMA200","project":"Superalgos","id":"3885decc-ccaa-4818-991b-ce6f1fa7e7aa","savedPayload":{"position":{"x":8514.177836570932,"y":17616.724461319573},"targetPosition":{"x":8215.102636450993,"y":17640.262190037927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2df7e089-1967-4cd8-8e95-376f9aabd43a","savedPayload":{"position":{"x":8215.102636450993,"y":17640.262190037927},"targetPosition":{"x":7916.027436331053,"y":17663.799918756282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c806e2e4-b5b2-4323-8d82-f73e79e923ac","savedPayload":{"position":{"x":7687.802855143094,"y":17396.4094905904},"targetPosition":{"x":7615.226286463192,"y":17687.498208473196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Buy Volume Bar","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.buySMA20 > record.buySMA200 && record.buyVolume > record.buySMA200","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.8\n \n}","project":"Superalgos","id":"87855af8-f080-4f1a-898e-5664b9bc1303","savedPayload":{"position":{"x":7745.318802323669,"y":16861.147171517176},"targetPosition":{"x":7838.023900636152,"y":17146.46412640572},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9ffc7ae4-c366-4588-a604-66f60277d0bd","savedPayload":{"position":{"x":7838.023900636152,"y":17146.46412640572},"targetPosition":{"x":7930.728998948634,"y":17431.781081294266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"!(record.buySMA20 > record.buySMA200 && record.buyVolume > record.buySMA200)","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.2\n \n}","project":"Superalgos","id":"03f1da8f-a211-4454-9bd2-4dacb04c4bdb","savedPayload":{"position":{"x":7899.327425202868,"y":16832.603360441524},"targetPosition":{"x":7915.028212075751,"y":17132.192220867895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4a78dced-32a2-4c26-a5f6-b1b4d9418cd1","savedPayload":{"position":{"x":7915.028212075751,"y":17132.192220867895},"targetPosition":{"x":7930.728998948634,"y":17431.781081294266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5ae67b38-f0c2-4fac-af8b-6716b4899bdf","savedPayload":{"position":{"x":7930.728998948634,"y":17431.781081294266},"targetPosition":{"x":7985.399656596277,"y":17726.757553563453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Base","project":"Superalgos","id":"7bf6e384-1001-4d1b-b96a-fbdacf74f79e","savedPayload":{"position":{"x":8085.541714366409,"y":17443.9651062358},"targetPosition":{"x":7985.399656596277,"y":17726.757553563453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Base","id":"faabcc21-5670-470c-bc77-c9aca70886b8"}}},{"type":"Polygon Vertex","name":"Begin Buy","project":"Superalgos","id":"cdf8e5eb-f2bb-4793-b90f-11fa2fba4c04","savedPayload":{"position":{"x":8213.521446276285,"y":17531.923139064398},"targetPosition":{"x":7985.399656596277,"y":17726.757553563453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Buy","id":"7fdb6f4d-0f74-4631-aa4d-dd903d0229d3"}}},{"type":"Polygon Vertex","name":"End Buy","project":"Superalgos","id":"53ea875f-63fe-4f33-84bf-fa8e000772fe","savedPayload":{"position":{"x":8280.376128865464,"y":17672.08689591581},"targetPosition":{"x":7985.399656596277,"y":17726.757553563453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Buy","id":"604de182-f384-408e-9416-7d6f033e2647"}}},{"type":"Polygon Vertex","name":"Middle Base","project":"Superalgos","id":"9f4d630e-28d8-44ef-a22c-5b706c0997d7","savedPayload":{"position":{"x":8268.192103923931,"y":17826.899611333585},"targetPosition":{"x":7985.399656596277,"y":17726.757553563453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Middle Base","id":"17046023-8100-436e-af2c-7800523e1b76"}}}],"id":"11f192dc-eb4a-48ee-81cc-a484285bfe6f","savedPayload":{"position":{"x":7774.202065733152,"y":17433.083779626268},"targetPosition":{"x":7615.226286463192,"y":17687.498208473196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Sell Volume Bar","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.sellSMA20 > record.sellSMA200 && record.sellVolume > record.sellSMA200 ","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.8\n \n}","project":"Superalgos","id":"ffac30be-b78e-418a-b26b-c6071bc2d13f","savedPayload":{"position":{"x":8073.599584335669,"y":16909.35347994084},"targetPosition":{"x":8073.599584335669,"y":17209.35347994084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e1d52b4a-09ee-451c-aa3d-62ce9f379fcb","savedPayload":{"position":{"x":8073.599584335669,"y":17209.35347994084},"targetPosition":{"x":8073.599584335669,"y":17509.35347994084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"!( record.sellSMA20 > record.sellSMA200 && record.sellVolume > record.sellSMA200 ) ","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.2\n \n}","project":"Superalgos","id":"308a78ae-507a-4047-8231-162422d90173","savedPayload":{"position":{"x":8228.891011397183,"y":16929.7979841674},"targetPosition":{"x":8151.245297866426,"y":17219.57573205412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"71e76b74-39f0-4ed5-bd88-629b956ca6d1","savedPayload":{"position":{"x":8151.245297866426,"y":17219.57573205412},"targetPosition":{"x":8073.599584335669,"y":17509.35347994084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"34b8d505-0245-4c5e-8ee9-c62beae9e648","savedPayload":{"position":{"x":8073.599584335669,"y":17509.35347994084},"targetPosition":{"x":8034.441726669655,"y":17806.786938352983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Middle Base","project":"Superalgos","id":"bdd19f84-69dc-41a8-87cd-5f0fbdafa195","savedPayload":{"position":{"x":8217.070155372272,"y":17568.78093626561},"targetPosition":{"x":8034.441726669655,"y":17806.786938352983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Middle Base","id":"17046023-8100-436e-af2c-7800523e1b76"}}},{"type":"Polygon Vertex","name":"Begin Sell","project":"Superalgos","id":"278692ec-1365-4bb2-895d-d07ed07edb24","savedPayload":{"position":{"x":8311.60558642304,"y":17691.981908643458},"targetPosition":{"x":8034.441726669655,"y":17806.786938352983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Sell","id":"50689245-9b87-4751-ac97-fe322011a283"}}},{"type":"Polygon Vertex","name":"End Sell","project":"Superalgos","id":"6d4b46a4-4d29-4ce9-a4cf-d9f79ef2c81d","savedPayload":{"position":{"x":8331.875185081797,"y":17845.944796018997},"targetPosition":{"x":8034.441726669655,"y":17806.786938352983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Sell","id":"bff175f0-942f-4b80-a47d-4b3a81f8c02e"}}},{"type":"Polygon Vertex","name":"End Base","project":"Superalgos","id":"1a32692b-f345-4ce8-b8f1-eb173a6e9b41","savedPayload":{"position":{"x":8272.447728757026,"y":17989.4153670556},"targetPosition":{"x":8034.441726669655,"y":17806.786938352983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Base","id":"0fff9bf4-08d1-4f44-bf79-dd08b42ff678"}}}],"id":"480b24b1-8ee9-4018-86d1-362f149f7881","savedPayload":{"position":{"x":7845.039619398885,"y":17494.661925567234},"targetPosition":{"x":7615.226286463192,"y":17687.498208473196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Buy SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 0.8\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"eca19f91-9766-4f13-bd9c-cc47432ad3f4","savedPayload":{"position":{"x":8636.441726669655,"y":18034.396997772037},"targetPosition":{"x":8336.441726669655,"y":18034.396997772037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"3f4f66f4-1e05-44b1-977e-4c803c0e57ee","savedPayload":{"position":{"x":8336.441726669655,"y":18034.396997772037},"targetPosition":{"x":8036.441726669655,"y":18034.396997772037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Buy SMA 20","project":"Superalgos","id":"28f5910d-3e5c-462a-a933-59e4ebda9c6d","savedPayload":{"position":{"x":8313.60558642304,"y":18149.202027481566},"targetPosition":{"x":8036.441726669655,"y":18034.396997772037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Buy SMA 20","id":"00cca122-c5d1-4963-a4c5-0ef8402dad6e"}}},{"type":"Polygon Vertex","name":"End Buy SMA 20","project":"Superalgos","id":"c4f28407-5fef-44af-867a-b4f5b66e8c8d","savedPayload":{"position":{"x":8248.573761025618,"y":18246.529032128},"targetPosition":{"x":8036.441726669655,"y":18034.396997772037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Buy SMA 20","id":"a84d5f5a-955d-4108-babc-0a79f8963cb1"}}}],"id":"ec629e5c-341a-4cc3-8ebd-61327c596cbd","savedPayload":{"position":{"x":7893.38144283323,"y":17575.116230448424},"targetPosition":{"x":7615.226286463192,"y":17687.498208473196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Sell SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 0.8\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","project":"Superalgos","id":"c4e9afdc-300c-4585-ad7b-a1e683f510a2","savedPayload":{"position":{"x":8525.737620779004,"y":18361.33406183753},"targetPosition":{"x":8248.573761025618,"y":18246.529032128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"84c664b3-de4c-4d33-a417-264a8992f606","savedPayload":{"position":{"x":8248.573761025618,"y":18246.529032128},"targetPosition":{"x":7971.409901272233,"y":18131.724002418472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Sell SMA 20","project":"Superalgos","id":"86f37b93-cdb3-49cc-9366-1d04af87a68b","savedPayload":{"position":{"x":8183.541935628196,"y":18343.856036774436},"targetPosition":{"x":7971.409901272233,"y":18131.724002418472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Sell SMA 20","id":"fccd2ad5-d651-42be-aa67-3a96feac4ae3"}}},{"type":"Polygon Vertex","name":"End Sell SMA 20","project":"Superalgos","id":"df33d6c2-5652-4491-b635-f2a01a52b141","savedPayload":{"position":{"x":8086.214930981758,"y":18408.887862171858},"targetPosition":{"x":7971.409901272233,"y":18131.724002418472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Sell SMA 20","id":"85363ef9-6834-4124-885e-f78bc2516112"}}}],"id":"b85ff160-cf73-452a-b824-58010659c377","savedPayload":{"position":{"x":7914.49550154114,"y":17666.571266349958},"targetPosition":{"x":7615.226286463192,"y":17687.498208473196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Buy SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.8,\n \"lineWidth\": 0.5\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"5ad42bce-0be4-40af-af98-6bc1bd556929","savedPayload":{"position":{"x":8607.682920579577,"y":18170.20221650143},"targetPosition":{"x":8311.376418401036,"y":18123.27187698936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"d49d4d35-54f2-47c9-be57-dcffa4293acd","savedPayload":{"position":{"x":8311.376418401036,"y":18123.27187698936},"targetPosition":{"x":8015.0699162224955,"y":18076.341537477292},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Buy SMA 200","project":"Superalgos","id":"0a8b1f9d-4b92-4ec2-988a-6ada06a6df19","savedPayload":{"position":{"x":8270.861965528722,"y":18233.091106892076},"targetPosition":{"x":8015.0699162224955,"y":18076.341537477292},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Buy SMA 200","id":"ac42be50-d6da-4956-8c57-240970124355"}}},{"type":"Polygon Vertex","name":"End Buy SMA 200","project":"Superalgos","id":"ab80d6af-82d4-41c6-b696-080c72f76a33","savedPayload":{"position":{"x":8191.405491910238,"y":18319.046635789775},"targetPosition":{"x":8015.0699162224955,"y":18076.341537477292},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Buy SMA 200","id":"a0dd766d-5c5c-4ac1-96f4-6745501455a3"}}}],"id":"6b7e1de7-03c6-42e1-b965-83f3ed9f0c29","savedPayload":{"position":{"x":7906.31500434599,"y":17760.074777153095},"targetPosition":{"x":7615.226286463192,"y":17687.498208473196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Sell SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.8,\n \"lineWidth\": 0.5\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","project":"Superalgos","id":"74783c70-c094-4816-95ac-7aacc5f233d3","savedPayload":{"position":{"x":8488.716195928344,"y":18420.108057586243},"targetPosition":{"x":8221.414238671834,"y":18283.91090766438},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"789febe0-ea41-4f50-b6a9-cd696081071b","savedPayload":{"position":{"x":8221.414238671834,"y":18283.91090766438},"targetPosition":{"x":7954.112281415324,"y":18147.713757742516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Sell SMA 200","project":"Superalgos","id":"732d98b7-9ea0-4d9a-bd60-192ae0440cb2","savedPayload":{"position":{"x":8148.946695914379,"y":18375.835547422525},"targetPosition":{"x":7954.112281415324,"y":18147.713757742516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Sell SMA 200","id":"083d6c60-2cfa-4221-a98b-bc082201f194"}}},{"type":"Polygon Vertex","name":"End Sell SMA 200","project":"Superalgos","id":"7441f304-e6bf-47b2-8d1d-f4689b0d6b30","savedPayload":{"position":{"x":8046.817379727807,"y":18433.03071263106},"targetPosition":{"x":7954.112281415324,"y":18147.713757742516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Sell SMA 200","id":"2df7e089-1967-4cd8-8e95-376f9aabd43a"}}}],"id":"79bbc8bc-1138-4669-b0b3-9113cdde1353","savedPayload":{"position":{"x":7869.640715310121,"y":17846.473987743157},"targetPosition":{"x":7615.226286463192,"y":17687.498208473196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"df508a3b-c7ea-479a-8c29-1fe15c62f816","savedPayload":{"position":{"x":7615.226286463192,"y":17687.498208473196},"targetPosition":{"x":7385.412953527499,"y":17880.33449137916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"id":"77bf098c-c563-4855-9738-3443a324365c","savedPayload":{"position":{"x":7385.412953527499,"y":17880.33449137916},"targetPosition":{"x":7155.599620591805,"y":18073.17077428512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"316fd407-d13c-49e6-bcf6-1f4ef7562e43","savedPayload":{"position":{"x":7155.599620591805,"y":18075.17077428512},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Candle Analysis","config":"{ \n \"codeName\": \"Candle-Analysis\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Candle Analysis","config":"{ \n \"codeName\": \"Candle-Analysis\", \n \"icon\": \"histogram\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Open Close","project":"Superalgos","points":[{"type":"Point","name":"Begin Last 24 Hs Open","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.last24HsOpen","project":"Superalgos","id":"37d9c626-13f1-45d7-a20e-918385c69983","savedPayload":{"position":{"x":6937.024278089175,"y":17341.61243535871},"targetPosition":{"x":7225.402786870673,"y":17424.303642103812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ef270f12-5e8e-4768-a34b-2e063126c45d","savedPayload":{"position":{"x":7225.402786870673,"y":17424.303642103812},"targetPosition":{"x":7513.781295652167,"y":17506.994848848914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Last 24 Hs Open","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.last24HsOpen","project":"Superalgos","id":"b76768c6-c08d-4460-8be5-f37f1a35546d","savedPayload":{"position":{"x":7144.3844104567725,"y":17034.18839668488},"targetPosition":{"x":7329.082853054471,"y":17270.591622766897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b14d9e80-4158-4e77-af54-0d60391c727b","savedPayload":{"position":{"x":7329.082853054471,"y":17270.591622766897},"targetPosition":{"x":7513.781295652167,"y":17506.994848848914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Last 24 Hs Close","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.last24HsClose","project":"Superalgos","id":"d0de9804-6aab-4237-80d8-030d741b4375","savedPayload":{"position":{"x":7492.841597630668,"y":16907.360352637454},"targetPosition":{"x":7503.311446641415,"y":17207.177600743184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7390c069-aa45-4bf9-a3e6-665dacea7bb2","savedPayload":{"position":{"x":7503.311446641415,"y":17207.177600743184},"targetPosition":{"x":7513.781295652167,"y":17506.994848848914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Last 24 Hs Close","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.last24HsClose","project":"Superalgos","id":"804a9d50-a592-4fb8-801c-dde8a5c60a86","savedPayload":{"position":{"x":7849.297037734617,"y":17009.57230531589},"targetPosition":{"x":7681.53916669339,"y":17258.283577082402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7c7778fe-5abb-4d29-af90-372e47aff94a","savedPayload":{"position":{"x":7681.53916669339,"y":17258.283577082402},"targetPosition":{"x":7513.781295652167,"y":17506.994848848914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e407da43-bd31-486a-a3a1-d3e5f1288568","savedPayload":{"position":{"x":7470.9444525759645,"y":17526.51672294287},"targetPosition":{"x":7616.387338649867,"y":17788.902635084687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Min Max","project":"Superalgos","points":[{"type":"Point","name":"Begin Last 24 Hs Min","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.last24HsMin","project":"Superalgos","id":"e21003b1-e8c7-4da1-b12c-ede2e8963ea3","savedPayload":{"position":{"x":7214.135920699908,"y":17081.93977355479},"targetPosition":{"x":7433.5420311856615,"y":17286.53928157354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"be6f78ad-a14f-482a-8f0c-38c6afa21c35","savedPayload":{"position":{"x":7433.5420311856615,"y":17286.53928157354},"targetPosition":{"x":7652.948141671412,"y":17491.13878959229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Last 24 Hs Min","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.last24HsMin","project":"Superalgos","id":"e4483a05-bb5e-4716-8d29-30a42f69ea7b","savedPayload":{"position":{"x":7538.462744445485,"y":16902.162479523693},"targetPosition":{"x":7595.70544305845,"y":17196.65063455799},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"572f8098-6ee2-47d7-b10b-671a220331b7","savedPayload":{"position":{"x":7595.70544305845,"y":17196.65063455799},"targetPosition":{"x":7652.948141671412,"y":17491.13878959229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Last 24 Hs Max","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.last24HsMax","project":"Superalgos","id":"1d61b534-7a8a-4816-a9cb-ca7c476b0456","savedPayload":{"position":{"x":7906.519098715831,"y":16947.354117370298},"targetPosition":{"x":7779.733620193623,"y":17219.246453481293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c7dafc4c-6127-434c-91f2-50c64dcbdca7","savedPayload":{"position":{"x":7779.733620193623,"y":17219.246453481293},"targetPosition":{"x":7652.948141671412,"y":17491.13878959229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Last 24 Hs Max","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.last24HsMax","project":"Superalgos","id":"63c18823-4806-4c96-8b92-c443dbcf239f","savedPayload":{"position":{"x":8177.71996595505,"y":17200.253017444484},"targetPosition":{"x":7915.334053813229,"y":17345.695903518386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c658b47-10e6-4c30-9165-4cd1ed19ed7b","savedPayload":{"position":{"x":7915.334053813229,"y":17345.695903518386},"targetPosition":{"x":7652.948141671412,"y":17491.13878959229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ce9e4ac4-a126-4867-93c6-cef38e3d2ea1","savedPayload":{"position":{"x":7652.948141671412,"y":17491.13878959229},"targetPosition":{"x":7616.387338649867,"y":17788.902635084687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Min Max Band","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\",\n \"opacity\": 0.1\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"c715d30a-6309-462f-9c26-ec6c06ae5b78","savedPayload":{"position":{"x":7645.563823834975,"y":16995.713671021113},"targetPosition":{"x":7733.275335251794,"y":17282.605097810025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1df8c772-630b-4dea-9676-e648c575cc54","savedPayload":{"position":{"x":7733.275335251794,"y":17282.605097810025},"targetPosition":{"x":7820.986846668617,"y":17569.496524598937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Last 24 Hs Min","project":"Superalgos","id":"f8018c15-e606-46d8-8d91-aaf626e105ac","savedPayload":{"position":{"x":7888.472162971775,"y":17277.185505163365},"targetPosition":{"x":7820.986846668617,"y":17569.496524598937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Last 24 Hs Min","id":"be6f78ad-a14f-482a-8f0c-38c6afa21c35"}}},{"type":"Polygon Vertex","name":"Begin Last 24 Hs Max","project":"Superalgos","id":"b2eebdc7-9358-4336-808f-8af8c8a65cf9","savedPayload":{"position":{"x":8025.586354687366,"y":17350.090414113187},"targetPosition":{"x":7820.986846668617,"y":17569.496524598937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Last 24 Hs Max","id":"c7dafc4c-6127-434c-91f2-50c64dcbdca7"}}},{"type":"Polygon Vertex","name":"End Last 24 Hs Max","project":"Superalgos","id":"471158dd-42be-4414-becb-b48269eeb98a","savedPayload":{"position":{"x":8107.878273457525,"y":17481.785013182114},"targetPosition":{"x":7820.986846668617,"y":17569.496524598937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Last 24 Hs Max","id":"8c658b47-10e6-4c30-9165-4cd1ed19ed7b"}}},{"type":"Polygon Vertex","name":"End Last 24 Hs Min","project":"Superalgos","id":"2936e63f-b0b3-46bf-8663-b329e4db74a9","savedPayload":{"position":{"x":8113.297866104189,"y":17636.981840902095},"targetPosition":{"x":7820.986846668617,"y":17569.496524598937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Last 24 Hs Min","id":"572f8098-6ee2-47d7-b10b-671a220331b7"}}}],"id":"b055b3b0-ee85-4d6a-bb97-7c746bf75cb3","savedPayload":{"position":{"x":7820.986846668617,"y":17569.496524598937},"targetPosition":{"x":7616.387338649867,"y":17788.902635084687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Close Band","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"c2e27def-ba2d-4c3b-b7f6-dc0042454852","savedPayload":{"position":{"x":7966.794009733294,"y":17150.923943169455},"targetPosition":{"x":8008.545940021311,"y":17448.004363791926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.last24HsDirection=== 'Up'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.LIGHT\"\n}","project":"Superalgos","id":"150e512d-de17-474a-b1f6-e039e052661c","savedPayload":{"position":{"x":8112.734846621472,"y":16857.1197119846},"targetPosition":{"x":8060.6403933213915,"y":17152.562037888263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32ec5d90-e990-4219-aad0-606d367738ec","savedPayload":{"position":{"x":8060.6403933213915,"y":17152.562037888263},"targetPosition":{"x":8008.545940021311,"y":17448.004363791926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.last24HsDirection=== 'Up'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\"\n}","project":"Superalgos","id":"b5c04ddf-70a3-4256-90c4-71cb20d633d1","savedPayload":{"position":{"x":8290.228877692847,"y":16918.235808076573},"targetPosition":{"x":8149.387408857081,"y":17183.12008593425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3e000e8a-ca95-4701-8eca-38535cefcc3d","savedPayload":{"position":{"x":8149.387408857081,"y":17183.12008593425},"targetPosition":{"x":8008.545940021311,"y":17448.004363791926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Style Condition","name":"New Style Condition","code":"record.last24HsDirection=== 'Down'","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"paletteColor\": \"UI_COLOR.RED\"\n}","project":"Superalgos","id":"a8fa888a-54d0-4c09-8c82-30a834dce41e","savedPayload":{"position":{"x":8440.149820224502,"y":17031.209341516525},"targetPosition":{"x":8224.34788012291,"y":17239.606852654226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2863d662-ccb8-4dc3-b886-22dc5899f72f","savedPayload":{"position":{"x":8224.34788012291,"y":17239.606852654226},"targetPosition":{"x":8008.545940021311,"y":17448.004363791926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e4acda6d-d02e-4d43-9268-1db35d69f789","savedPayload":{"position":{"x":8008.545940021311,"y":17448.004363791926},"targetPosition":{"x":7910.875493684165,"y":17731.659936471722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Last 24 Hs Open","project":"Superalgos","id":"5eb0bebc-8ce7-4651-92e6-f188374a4653","savedPayload":{"position":{"x":8137.288367750996,"y":17534.84222777457},"targetPosition":{"x":7910.875493684165,"y":17731.659936471722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Last 24 Hs Open","id":"ef270f12-5e8e-4768-a34b-2e063126c45d"}}},{"type":"Polygon Vertex","name":"Begin Last 24 Hs Close","project":"Superalgos","id":"cd304a21-0417-4adb-9dd1-73b928442eb2","savedPayload":{"position":{"x":8205.363648718467,"y":17674.417237858757},"targetPosition":{"x":7910.875493684165,"y":17731.659936471722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Last 24 Hs Close","id":"7390c069-aa45-4bf9-a3e6-665dacea7bb2"}}},{"type":"Polygon Vertex","name":"End Last 24 Hs Close","project":"Superalgos","id":"befb9997-0ada-404e-ae76-2e29473eff5a","savedPayload":{"position":{"x":8194.531066363961,"y":17829.33038280887},"targetPosition":{"x":7910.875493684165,"y":17731.659936471722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Last 24 Hs Close","id":"7c7778fe-5abb-4d29-af90-372e47aff94a"}}},{"type":"Polygon Vertex","name":"End Last 24 Hs Open","project":"Superalgos","id":"50d337d6-806e-4d8e-8b17-26abc346723c","savedPayload":{"position":{"x":8107.693202381317,"y":17958.072810538553},"targetPosition":{"x":7910.875493684165,"y":17731.659936471722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Last 24 Hs Open","id":"b14d9e80-4158-4e77-af54-0d60391c727b"}}}],"id":"d43d1db4-07e3-4e86-a7e7-c71774e461d7","savedPayload":{"position":{"x":7910.875493684165,"y":17731.659936471722},"targetPosition":{"x":7616.387338649867,"y":17788.902635084687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"2f5bc46b-a1bb-4f17-8cc4-d3a80b963dcc","savedPayload":{"position":{"x":7616.387338649867,"y":17788.902635084687},"targetPosition":{"x":7489.6018601276555,"y":18060.794971195683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Current Candle","config":"{ \n \"codeName\": \"currentCandle\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Open","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.open","project":"Superalgos","id":"8edb002a-7034-4860-b519-e6cc9c568d35","savedPayload":{"position":{"x":7054.533509998222,"y":17415.106441951146},"targetPosition":{"x":7298.114911712979,"y":17590.229543621583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cccfc3f1-4599-4b5a-9e6f-015f8df6aaa5","savedPayload":{"position":{"x":7298.114911712979,"y":17590.229543621583},"targetPosition":{"x":7541.696313427736,"y":17765.35264529202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Close","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.close","project":"Superalgos","id":"5dabcb38-01c7-4b22-a678-cfe9126d7122","savedPayload":{"position":{"x":7254.743926254945,"y":17238.419701269886},"targetPosition":{"x":7398.220119841342,"y":17501.886173280953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"51df0ecc-3db8-4bed-8f0c-9d12fd9d97f4","savedPayload":{"position":{"x":7398.220119841342,"y":17501.886173280953},"targetPosition":{"x":7541.696313427736,"y":17765.35264529202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Min","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.min","project":"Superalgos","id":"00a15a76-d4d6-46eb-b93f-eb76512fd3a7","savedPayload":{"position":{"x":7511.788782031319,"y":17166.098492560668},"targetPosition":{"x":7526.742547729529,"y":17465.725568926344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"39abe082-4409-4997-a389-6b9491a54c55","savedPayload":{"position":{"x":7526.742547729529,"y":17465.725568926344},"targetPosition":{"x":7541.696313427736,"y":17765.35264529202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Max","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.max","project":"Superalgos","id":"4c85a43e-de1b-4607-8bd8-2a9b96669780","savedPayload":{"position":{"x":7774.757191192555,"y":17212.466918169775},"targetPosition":{"x":7658.226752310144,"y":17488.909781730898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32b0d874-4866-4104-a7f9-bc1214c15a88","savedPayload":{"position":{"x":7658.226752310144,"y":17488.909781730898},"targetPosition":{"x":7541.696313427736,"y":17765.35264529202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Change","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.change","project":"Superalgos","id":"5c2e8161-7dde-45c8-b5bb-e6dc367c799d","savedPayload":{"position":{"x":7991.565035208376,"y":17368.3411427339},"targetPosition":{"x":7766.630674318058,"y":17566.84689401296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"527a7178-8947-4e25-91c7-4fc1bd357530","savedPayload":{"position":{"x":7766.630674318058,"y":17566.84689401296},"targetPosition":{"x":7541.696313427736,"y":17765.35264529202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Amplitude","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.amplitude","project":"Superalgos","id":"04778113-8836-449d-954d-c056d146bfc4","savedPayload":{"position":{"x":8119.270861597743,"y":17602.848364406214},"targetPosition":{"x":7830.483587512739,"y":17684.100504849117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0dcdcf95-219c-4e16-bba0-eed60137f923","savedPayload":{"position":{"x":7830.483587512739,"y":17684.100504849117},"targetPosition":{"x":7541.696313427736,"y":17765.35264529202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2e9d7744-eb1c-40f0-bc8c-46426e14691d","savedPayload":{"position":{"x":7771.509646363429,"y":17958.188928197982},"targetPosition":{"x":7489.6018601276555,"y":18060.794971195683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Last 24 Hs","config":"{ \n \"codeName\": \"last24Hs\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Last 24 Hs Open","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.last24HsOpen","project":"Superalgos","id":"5e00557c-8c2d-4d37-aca8-346e1b8bf274","savedPayload":{"position":{"x":8266.318704450354,"y":18006.85899222328},"targetPosition":{"x":7992.866948756851,"y":18130.245123162462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9c12e42b-8759-4501-a66a-eaecf9f3d014","savedPayload":{"position":{"x":7992.866948756851,"y":18130.245123162462},"targetPosition":{"x":7719.415193063349,"y":18253.631254101645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Last 24 Hs Close","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.last24HsClose","project":"Superalgos","id":"14936ef0-93eb-496b-95db-1e567f134256","savedPayload":{"position":{"x":8319.228702263841,"y":18268.589669144487},"targetPosition":{"x":8019.321947663597,"y":18261.110461623066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e417390f-e0a3-472c-8d7e-6b107a4c38b8","savedPayload":{"position":{"x":8019.321947663597,"y":18261.110461623066},"targetPosition":{"x":7719.415193063349,"y":18253.631254101645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Last 24 Hs Min","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.last24HsMin","project":"Superalgos","id":"da5a18bc-15f7-4b24-a755-21d1764d2828","savedPayload":{"position":{"x":8253.338278350235,"y":18527.35764851354},"targetPosition":{"x":7986.376735706792,"y":18390.494451307593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3834870f-3afb-41ef-96c1-badfa86dd72e","savedPayload":{"position":{"x":7986.376735706792,"y":18390.494451307593},"targetPosition":{"x":7719.415193063349,"y":18253.631254101645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Last 24 Hs Max","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.last24HsMax","project":"Superalgos","id":"8754c72f-e01a-4f98-a9c6-13149eea33b9","savedPayload":{"position":{"x":8081.697839258635,"y":18731.9107584354},"targetPosition":{"x":7900.556516160996,"y":18492.771006268522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"76989651-33bd-4411-b638-21390a0c6461","savedPayload":{"position":{"x":7900.556516160996,"y":18492.771006268522},"targetPosition":{"x":7719.415193063349,"y":18253.631254101645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Last 24 Hs Change","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.last24HsChange","project":"Superalgos","id":"8c3964c6-d43b-419d-93f4-649b3e15e53c","savedPayload":{"position":{"x":7838.302878982988,"y":18841.73474681077},"targetPosition":{"x":7778.859036023172,"y":18547.683000456207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1e45bc0e-c227-4a0d-80fb-d508a6c830f8","savedPayload":{"position":{"x":7778.859036023172,"y":18547.683000456207},"targetPosition":{"x":7719.415193063349,"y":18253.631254101645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Last 24 Hs Amplitude","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.last24HsAmplitude","project":"Superalgos","id":"97789da3-c57f-4360-9cf2-ae02624dd2f8","savedPayload":{"position":{"x":7571.360754449175,"y":18835.07762583909},"targetPosition":{"x":7645.387973756264,"y":18544.354439970368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"60e64b9a-dd54-4db8-a2c0-45707fd1a13d","savedPayload":{"position":{"x":7645.387973756264,"y":18544.354439970368},"targetPosition":{"x":7719.415193063349,"y":18253.631254101645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7a840ca8-b174-45f5-a23e-eb333d46e295","savedPayload":{"position":{"x":7761.494196238651,"y":18187.580449717894},"targetPosition":{"x":7489.6018601276555,"y":18060.794971195683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7d2c7454-22ee-4d99-ab73-b47e5813a7bc","savedPayload":{"position":{"x":7489.6018601276555,"y":18060.794971195683},"targetPosition":{"x":7207.694073891886,"y":18163.401014193383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cd89a4cc-9274-4cc8-a9f3-29e62f8c25fc","savedPayload":{"position":{"x":7207.694073891885,"y":18165.401014193383},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959","savedPayload":{"position":{"x":6925.786287656112,"y":18268.007057191084},"targetPosition":{"x":6925.786287656112,"y":18268.007057191084},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"m"}}} \ No newline at end of file diff --git a/Projects/Superalgos/Plugins/Data-Mines/Samurai.json b/Projects/Superalgos/Plugins/Data-Mines/Samurai.json index 6fdbf5955..1b4700b11 100644 --- a/Projects/Superalgos/Plugins/Data-Mines/Samurai.json +++ b/Projects/Superalgos/Plugins/Data-Mines/Samurai.json @@ -1 +1 @@ -{"type":"Data Mine","name":"Samurai","config":"{\n\"codeName\": \"Samurai\"\n}","project":"Superalgos","sensorBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"Candles Probabilities","config":"{\n\"codeName\": \"Candles-Probabilities\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates SMAs for Time Frames of 01-hs and above.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Candles Probabilities","project":"Superalgos","id":"ab027b2e-4e02-4c71-8da5-6b43c37de20b","savedPayload":{"position":{"x":17017.002939912152,"y":17072.851514913826},"targetPosition":{"x":17333.108273730588,"y":17255.374459837658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"85c67513-347a-4948-9121-dee04543fcff"}}}],"outputDatasetFolders":[],"id":"1a087bb8-af2f-4384-85dd-c86d4b39aeff","savedPayload":{"position":{"x":17561.343925622532,"y":17819.598525719965},"targetPosition":{"x":17821.151546757865,"y":17969.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"09588f6b-2193-4c9e-bc33-2ac075e8e4f4","savedPayload":{"position":{"x":18333.022001614398,"y":16677.231587610237},"targetPosition":{"x":18439.170132387782,"y":17034.801415402228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Candles Probabilities Multi-Period-Market","config":"{ \n\"mainUtility\": \"Self Reference|Market Starting Point|Market Ending Point\"\n}","project":"Superalgos","id":"83721123-d178-4ab3-8d6f-da06e8416eb8","savedPayload":{"position":{"x":18478.065557950595,"y":16664.193728839367},"targetPosition":{"x":18439.170132387782,"y":17034.801415402228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"24ca1130-0386-4088-9417-48eb5d8ac96a"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"2cfeb861-3ce6-4f63-b974-acc395f744cc","savedPayload":{"position":{"x":18617.22326499627,"y":16707.770450870878},"targetPosition":{"x":18439.170132387782,"y":17034.801415402228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"08845d0d-a0a1-4d26-bb44-1072dfcf0b07","savedPayload":{"position":{"x":17671.151546757865,"y":17709.79090458463},"targetPosition":{"x":17821.151546757865,"y":17969.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"24ca1130-0386-4088-9417-48eb5d8ac96a","savedPayload":{"position":{"x":17821.151546757865,"y":17669.598525719965},"targetPosition":{"x":17821.151546757865,"y":17969.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"82529746-2044-48f0-b1f6-d1454ba5682d","savedPayload":{"position":{"x":17971.151546757865,"y":17709.79090458463},"targetPosition":{"x":17821.151546757865,"y":17969.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"05bcb9a5-4065-44cf-88db-77bb2b61b99a","savedPayload":{"position":{"x":18080.959167893197,"y":17819.598525719965},"targetPosition":{"x":17821.151546757865,"y":17969.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b9db962a-525e-409c-99b7-81fc0116b4b9","savedPayload":{"position":{"x":17821.151546757865,"y":17969.598525719965},"targetPosition":{"x":17821.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Describe what the process does.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Candles Probabilities","project":"Superalgos","id":"b16f70b2-d7a8-434c-a36c-a3200f3414ab","savedPayload":{"position":{"x":18346.151546757865,"y":17879.887094016965},"targetPosition":{"x":18271.151546757865,"y":18009.79090458463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"fa17370b-0a9c-4350-9cce-1df4be39b58c"}}}],"outputDatasetFolders":[],"id":"e156d437-ff71-4a1c-9239-abfc3b1dd3cb","savedPayload":{"position":{"x":18271.151546757865,"y":18009.79090458463},"targetPosition":{"x":18121.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Probabilities Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"f102b96d-854c-4fa1-9c1f-7689da34d35b","savedPayload":{"position":{"x":18396.638437383346,"y":17970.420241414722},"targetPosition":{"x":18380.959167893197,"y":18119.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"ac04d901-b5ee-4b27-abc7-e0eeb7d79cc3"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"6a656f04-04eb-4ee8-ac17-d87d8ada1264","savedPayload":{"position":{"x":18481.328758847027,"y":18008.126801898354},"targetPosition":{"x":18380.959167893197,"y":18119.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"86adad3f-7780-4a41-8ec5-5f2f9bdb1e10","savedPayload":{"position":{"x":18527.68130800327,"y":18088.4117720973},"targetPosition":{"x":18380.959167893197,"y":18119.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"d4417217-99e4-4644-8b6b-3d8168b01090","savedPayload":{"position":{"x":18517.99098653959,"y":18180.609022181336},"targetPosition":{"x":18380.959167893197,"y":18119.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"1cab7bdf-ecd1-4054-90ff-54f2cf683b2e","savedPayload":{"position":{"x":18380.959167893197,"y":18119.598525719965},"targetPosition":{"x":18121.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"ac04d901-b5ee-4b27-abc7-e0eeb7d79cc3","savedPayload":{"position":{"x":18421.151546757865,"y":18269.598525719965},"targetPosition":{"x":18121.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"34548656-528b-4e6b-89d9-ec56d7818f88","savedPayload":{"position":{"x":18380.959167893197,"y":18419.598525719965},"targetPosition":{"x":18121.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"3900deae-546f-4277-8fcb-e78c03a7fb0d","savedPayload":{"position":{"x":18271.151546757865,"y":18529.406146855297},"targetPosition":{"x":18121.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2212f26a-27aa-4e1f-b2aa-73ede1434477","savedPayload":{"position":{"x":18121.151546757865,"y":18269.598525719965},"targetPosition":{"x":17821.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Candles Probabilities","config":"{\n \"codeName\": \"Candles-Probabilities\",\n \"singularVariableName\": \"candlesProbability\",\n \"pluralVariableName\": \"candlesProbabilities\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"85c67513-347a-4948-9121-dee04543fcff","savedPayload":{"position":{"x":17942.504095914108,"y":18657.766313563836},"targetPosition":{"x":17821.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"fa17370b-0a9c-4350-9cce-1df4be39b58c","savedPayload":{"position":{"x":17867.504095914108,"y":18712.25700316424},"targetPosition":{"x":17821.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"7f630e20-9ead-4b62-a13a-d98dfde35569","savedPayload":{"position":{"x":17862.27256971715,"y":19003.54444570399},"targetPosition":{"x":17795.359509081267,"y":18929.22996315625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8356c5bd-3acf-46d5-bb60-5ca4784b0a48","savedPayload":{"position":{"x":17795.359509081267,"y":18929.22996315625},"targetPosition":{"x":17728.446448445382,"y":18854.91548060851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"abb35458-3007-4a6f-9926-b2034eef794f","savedPayload":{"position":{"x":17770.02878660893,"y":19050.545000755268},"targetPosition":{"x":17749.237617527157,"y":18952.73024068189},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"12a6b10a-22b5-459a-81d9-9de037af4f4e","savedPayload":{"position":{"x":17749.237617527157,"y":18952.73024068189},"targetPosition":{"x":17728.446448445382,"y":18854.91548060851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction Up","config":"{\n \"codeName\": \"directionUp\"\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.directionUp","project":"Superalgos","id":"cf8a68a3-d2e2-402a-ab5e-ae493f62b1ae","savedPayload":{"position":{"x":17666.643049570393,"y":19045.126783867538},"targetPosition":{"x":17697.544749007888,"y":18950.021132238024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b88c6ec-e33a-46e8-9a17-24e9158d476e","savedPayload":{"position":{"x":17697.544749007888,"y":18950.021132238024},"targetPosition":{"x":17728.446448445382,"y":18854.91548060851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction Down","config":"{\n \"codeName\": \"directionDown\"\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.directionDown","project":"Superalgos","id":"dcf8a2e7-3f11-4237-a3bb-433d99f3dde7","savedPayload":{"position":{"x":17579.817483349903,"y":18988.74160188028},"targetPosition":{"x":17654.131965897643,"y":18921.828541244395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"528446c8-b8b6-4b1c-94f6-0895ba1fba83","savedPayload":{"position":{"x":17654.131965897643,"y":18921.828541244395},"targetPosition":{"x":17728.446448445382,"y":18854.91548060851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction Side","config":"{\n \"codeName\": \"directionSide\"\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.directionSide","project":"Superalgos","id":"b1e369f5-64b2-4a81-b21b-52976b8949e8","savedPayload":{"position":{"x":17532.816928298624,"y":18896.49781877206},"targetPosition":{"x":17630.631688372003,"y":18875.706649690284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c2214ffd-7628-4ae3-9731-3c08329dfbd1","savedPayload":{"position":{"x":17630.631688372003,"y":18875.706649690284},"targetPosition":{"x":17728.446448445382,"y":18854.91548060851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f5fdf31a-a5bd-47b9-91a7-2698538af74e","savedPayload":{"position":{"x":17728.446448445382,"y":18854.91548060851},"targetPosition":{"x":17821.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"let candle = record.current // Our main dependencies are candles\nvariable.count++\n\nif (candle.direction === \"Up\") {\n variable.countUp++\n}\n\nif (candle.direction === \"Down\") {\n variable.countDown++\n}\n\nif (candle.direction === \"Side\") {\n variable.countSide++\n}\n\nvariable.directionUp = variable.countUp / variable.count\nvariable.directionDown = variable.countDown / variable.count\nvariable.directionSide = variable.countSide / variable.count\n","project":"Superalgos","id":"cd5da888-ac24-4ab0-a249-28237a881fa6","savedPayload":{"position":{"x":17456.42545552264,"y":19019.99773870049},"targetPosition":{"x":17517.43595198401,"y":18882.9659200541},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"97a50cc8-8086-43e2-8a2c-5ee5394676b4","savedPayload":{"position":{"x":17517.43595198401,"y":18882.9659200541},"targetPosition":{"x":17578.446448445382,"y":18745.934101407707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"variable.count = 0 \nvariable.countUp = 0\nvariable.countDown = 0\nvariable.countSide = 0\n","project":"Superalgos","id":"9d71f7ab-bffc-4898-bdbe-132b864e989c","savedPayload":{"position":{"x":17280.089879834897,"y":18777.292640388005},"targetPosition":{"x":17429.26816414014,"y":18761.613370897856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a1f47a1-f5f9-4e1b-9cdb-f0fff0e01e59","savedPayload":{"position":{"x":17429.26816414014,"y":18761.613370897856},"targetPosition":{"x":17578.446448445382,"y":18745.934101407707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6d6c4442-0674-4782-a79f-8f18b5d7a688","savedPayload":{"position":{"x":17578.446448445382,"y":18745.934101407707},"targetPosition":{"x":17821.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d0e9521c-2ba8-44ce-b81e-7baf841008e0","savedPayload":{"position":{"x":17821.151546757865,"y":18569.598525719965},"targetPosition":{"x":17821.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Candles Probabilities","id":"ecab3716-75a4-4752-b826-1d5df9ec7325"}}}],"id":"07fee895-ee90-4175-829a-df0bbd498178","savedPayload":{"position":{"x":17821.151546757865,"y":18269.598525719965},"targetPosition":{"x":17521.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Candles Channels Probabilities","config":"{\n\"codeName\": \"Candles-Channels-Probabilities\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates SMAs for Time Frames of 01-hs and above.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Candles Channels Probabilities","project":"Superalgos","id":"46154f7d-e7dc-423a-b297-8d6a1bc36a0c","savedPayload":{"position":{"x":18046.151546757865,"y":18179.887094016965},"targetPosition":{"x":17971.151546757865,"y":18309.79090458463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"fdee2b9c-3036-4db2-af42-b3507a6ffacf"}}}],"outputDatasetFolders":[],"id":"1c1a6fa0-6969-4353-81ff-56d0c82aee08","savedPayload":{"position":{"x":17971.151546757865,"y":18309.79090458463},"targetPosition":{"x":17821.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Channels Probabilities Multi-Period-Market","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"b08e8123-6edf-4b08-80e2-13e37b81d415","savedPayload":{"position":{"x":18172.273382244504,"y":18300.59552467628},"targetPosition":{"x":18080.959167893197,"y":18419.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"e1e05f4b-5d1f-463c-8c99-f09066fd485b"}}},{"type":"Status Dependency","name":"Candle Channels Multi-Period-Market","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"831c0a8c-aa09-480d-b790-54352d40ae93","savedPayload":{"position":{"x":18210.862978460864,"y":18344.598525719965},"targetPosition":{"x":18080.959167893197,"y":18419.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"902925d3-1d23-4894-9459-0be8df3965df"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Channels Objects Multi-Period-Market","project":"Superalgos","id":"53e98a6b-95d8-4b9b-aa37-71b565b73a6c","savedPayload":{"position":{"x":18229.67589709927,"y":18400.019596886956},"targetPosition":{"x":18080.959167893197,"y":18419.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"566b9df4-da86-4b4f-a3f4-ef8a76443714"}}}],"dataMineDataDependencies":[],"id":"f2f59d93-f4ba-47f0-bd3a-4b5dbe76841d","savedPayload":{"position":{"x":18080.959167893197,"y":18419.598525719965},"targetPosition":{"x":17821.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"e1e05f4b-5d1f-463c-8c99-f09066fd485b","savedPayload":{"position":{"x":18121.151546757865,"y":18569.598525719965},"targetPosition":{"x":17821.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candle Channels Multi-Period-Market","project":"Superalgos","id":"861617d8-0cff-491f-862d-11b5fd292351","savedPayload":{"position":{"x":18080.959167893197,"y":18719.598525719965},"targetPosition":{"x":17821.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"0ee514b6-0528-4ff9-a901-a519856fbee4"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"a05d99eb-b96a-4594-8b29-eb2b544a9036","savedPayload":{"position":{"x":17971.151546757865,"y":18829.406146855297},"targetPosition":{"x":17821.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"87fd6735-ee38-41aa-8a58-1a75f89aea5e","savedPayload":{"position":{"x":17821.151546757865,"y":18569.598525719965},"targetPosition":{"x":17521.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Describe what the process does.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Candles Channels Probabilities","project":"Superalgos","id":"1d0c0cce-6113-49d7-afac-85d9938d9655","savedPayload":{"position":{"x":17910.862978460864,"y":19094.598525719965},"targetPosition":{"x":17780.959167893197,"y":19019.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2774470d-7382-48e3-bd0a-957f0332a698"}}}],"outputDatasetFolders":[],"id":"8e168ff4-ad08-493f-b804-1786cf2e2431","savedPayload":{"position":{"x":17780.959167893197,"y":19019.598525719965},"targetPosition":{"x":17521.151546757865,"y":18869.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Channels Probabilities Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"abd6c6ca-b442-47bf-9820-ab2243bdf2fa","savedPayload":{"position":{"x":17820.329831063107,"y":19145.085416345446},"targetPosition":{"x":17671.151546757865,"y":19129.406146855297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"3fd6046f-ea3c-4b62-ab4e-7d84a5b9bb9f"}}},{"type":"Status Dependency","name":"Candle Channels Multi-Period-Daily","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"772d5c04-73a6-44eb-af42-bc94d6f24618","savedPayload":{"position":{"x":17782.623270579476,"y":19229.775737809126},"targetPosition":{"x":17671.151546757865,"y":19129.406146855297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"4a89ffcd-ef6d-4dd2-bbf6-6e2f1dba24cd"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"d9e96093-0e4b-4b5a-86bc-5361d4dd5744","savedPayload":{"position":{"x":17702.33830038053,"y":19276.12828696537},"targetPosition":{"x":17671.151546757865,"y":19129.406146855297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Channels Objects Multi-Period-Daily","project":"Superalgos","id":"bbee33b8-ad71-44c0-8900-9ff8527615a6","savedPayload":{"position":{"x":17610.141050296494,"y":19266.43796550169},"targetPosition":{"x":17671.151546757865,"y":19129.406146855297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8a7d224b-7571-4e1a-8b8f-8a35aa25dc63"}}}],"dataMineDataDependencies":[],"id":"6c06360e-fef9-4cb5-a94e-69cefb1e68d5","savedPayload":{"position":{"x":17671.151546757865,"y":19129.406146855297},"targetPosition":{"x":17521.151546757865,"y":18869.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"3fd6046f-ea3c-4b62-ab4e-7d84a5b9bb9f","savedPayload":{"position":{"x":17521.151546757865,"y":19169.598525719965},"targetPosition":{"x":17521.151546757865,"y":18869.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candle Channels Multi-Period-Daily","project":"Superalgos","id":"da961f64-aab7-46a7-b5ca-48246c13a938","savedPayload":{"position":{"x":17371.151546757865,"y":19129.406146855297},"targetPosition":{"x":17521.151546757865,"y":18869.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"e29dc92e-bbd9-45ae-ac52-1ee785e44928"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"a739e56b-d98c-46ca-8fcb-dc3508bf2d89","savedPayload":{"position":{"x":17261.343925622532,"y":19019.598525719965},"targetPosition":{"x":17521.151546757865,"y":18869.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b2261546-4415-4425-aedf-72bfc5c9fdba","savedPayload":{"position":{"x":17521.151546757865,"y":18869.598525719965},"targetPosition":{"x":17521.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Candles Channels Probabilities","config":"{\n \"codeName\": \"Candles-Channels-Probabilities\",\n \"singularVariableName\": \"candlesChannelsProbability\",\n \"pluralVariableName\": \"candlesChannelsProbabilities\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"fdee2b9c-3036-4db2-af42-b3507a6ffacf","savedPayload":{"position":{"x":16848.894510871272,"y":19267.583840781},"targetPosition":{"x":16941.14452983774,"y":18982.93617339545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"2774470d-7382-48e3-bd0a-957f0332a698","savedPayload":{"position":{"x":16698.86643863483,"y":19158.586916496635},"targetPosition":{"x":16941.14452983774,"y":18982.93617339545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"339d7be1-ca04-4765-a1ef-e4e94d8fa506","savedPayload":{"position":{"x":16503.268439492276,"y":19033.787399762095},"targetPosition":{"x":16234.555952707226,"y":19026.63608845484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"58a58c23-588e-44d5-a294-ff055b12823a","savedPayload":{"position":{"x":16234.555952707226,"y":19026.63608845484},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"5f29de35-5c6f-4adb-bc0a-5c4fbc540c79","savedPayload":{"position":{"x":16539.04992871576,"y":19129.804624677454},"targetPosition":{"x":16252.571064940254,"y":19047.436010578887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"29d683db-c178-4d5e-9023-8b38a44eeae1","savedPayload":{"position":{"x":16252.571064940254,"y":19047.436010578887},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Count All","config":"{\n \"codeName\": \"countAll\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.count.all","project":"Superalgos","id":"526500fd-4057-44b7-a130-0149cb982475","savedPayload":{"position":{"x":16394.283858441962,"y":19166.090283135156},"targetPosition":{"x":16121.928055678589,"y":19104.05659378152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2444603-4120-42fe-a655-3967d334e404","savedPayload":{"position":{"x":16121.928055678589,"y":19104.05659378152},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Count Up","config":"{\n \"codeName\": \"countUp\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.count.up","project":"Superalgos","id":"6501ff4c-1d67-4c0c-bcff-7037f4936720","savedPayload":{"position":{"x":16508.09780226663,"y":19247.832052319125},"targetPosition":{"x":16259.691828083058,"y":19128.252375402808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f1e38827-72ba-43c3-af89-462bda3ab733","savedPayload":{"position":{"x":16259.691828083058,"y":19128.252375402808},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Count Down","config":"{\n \"codeName\": \"countDown\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.count.down","project":"Superalgos","id":"ba9191b5-5130-44ea-887b-97c13c119022","savedPayload":{"position":{"x":16401.41119181429,"y":19269.002311716322},"targetPosition":{"x":16225.932841054051,"y":19174.711997054903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"20761e96-657c-453b-870b-33c65b105b1b","savedPayload":{"position":{"x":16225.932841054051,"y":19174.711997054903},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Count Side","config":"{\n \"codeName\": \"countSide\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.count.side","project":"Superalgos","id":"5a61ff39-689a-4fcf-8d71-833a83b1d916","savedPayload":{"position":{"x":16439.165243899177,"y":19406.607327422404},"targetPosition":{"x":16089.786635769422,"y":19168.125958743636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96a9ee06-1ae3-44c4-9ab6-ac6b165fbf8b","savedPayload":{"position":{"x":16089.786635769422,"y":19168.125958743636},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Max Up","config":"{\n \"codeName\": \"maxUp\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.max.up","project":"Superalgos","id":"0703509d-2bd1-4216-bdd1-1c1b4a34428b","savedPayload":{"position":{"x":16311.466820049776,"y":19357.36283281498},"targetPosition":{"x":16194.609654605221,"y":19251.289512275554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"24101201-acb1-4d59-b459-6d54443fa8c9","savedPayload":{"position":{"x":16194.609654605221,"y":19251.289512275554},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Max Down","config":"{\n \"codeName\": \"maxDown\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.max.down","project":"Superalgos","id":"29169bea-d6de-491e-a7de-03f3012d0a1a","savedPayload":{"position":{"x":16348.209449674367,"y":19492.213901398878},"targetPosition":{"x":16135.86963649631,"y":19238.4561173894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dacb52f7-f537-4f6d-9863-a571d0d8b075","savedPayload":{"position":{"x":16135.86963649631,"y":19238.4561173894},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Max Side","config":"{\n \"codeName\": \"maxSide\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.max.side","project":"Superalgos","id":"80356b40-83df-450c-9f47-f18f656b9ecd","savedPayload":{"position":{"x":16216.06201403254,"y":19442.908834066446},"targetPosition":{"x":16028.19920222339,"y":19407.952664448676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"65d31025-6197-4023-9710-62695081e6ab","savedPayload":{"position":{"x":16028.19920222339,"y":19407.952664448676},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up","config":"{\n \"codeName\": \"probabilityUp\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.probability.up","project":"Superalgos","id":"9667a091-1e5d-4333-903d-5c11e94418ba","savedPayload":{"position":{"x":16240.703817908408,"y":19577.90575529227},"targetPosition":{"x":16107.261536693728,"y":19253.187358894455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6386661f-d590-4ddb-a220-8e248e67c523","savedPayload":{"position":{"x":16107.261536693728,"y":19253.187358894455},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down","config":"{\n \"codeName\": \"probabilityDown\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.probability.down","project":"Superalgos","id":"a0459d9d-dba1-4a1c-886b-b18439204b74","savedPayload":{"position":{"x":16126.342282856505,"y":19509.06827262674},"targetPosition":{"x":16036.916376991961,"y":19267.02577366108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"784b6455-4277-4fdb-b57e-278cc47b69d2","savedPayload":{"position":{"x":16036.916376991961,"y":19267.02577366108},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side","config":"{\n \"codeName\": \"probabilitySide\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.probability.side","project":"Superalgos","id":"7f62f7d5-5b86-4d97-8732-301bdf8db799","savedPayload":{"position":{"x":16113.63303137321,"y":19648.89750331344},"targetPosition":{"x":15973.500666430173,"y":19276.3429545822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d1c041f4-81bf-471d-8365-cbfd12e1102c","savedPayload":{"position":{"x":15973.500666430173,"y":19276.3429545822},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up 1","config":"{\n \"codeName\": \"probabilityUp1\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayUp[1].probability.toFixed(2)","project":"Superalgos","id":"168044ac-5997-4b3a-a8c1-7d34290ac7f3","savedPayload":{"position":{"x":16021.393045603654,"y":19554.328525101384},"targetPosition":{"x":15967.02586979347,"y":19409.003018492345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2d9ee19a-7694-44eb-a6d1-4822e4731338","savedPayload":{"position":{"x":15967.02586979347,"y":19409.003018492345},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down 1","config":"{\n \"codeName\": \"probabilityDown1\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayDown[1].probability.toFixed(2)","project":"Superalgos","id":"468b91b1-4c86-4606-af93-d263be661ae3","savedPayload":{"position":{"x":15975.416402976989,"y":19688.632251002346},"targetPosition":{"x":15911.255099518654,"y":19291.40698986262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e27c1bb9-4986-4b9c-b620-65258db2bc29","savedPayload":{"position":{"x":15911.255099518654,"y":19291.40698986262},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side 1","config":"{\n \"codeName\": \"probabilitySide1\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arraySide[1].probability.toFixed(2)","project":"Superalgos","id":"22f8a518-bd3c-4d6c-81c3-53a298995517","savedPayload":{"position":{"x":15905.697737269154,"y":19574.820815342733},"targetPosition":{"x":15885.698768887287,"y":19419.173282048105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b667e2f8-7ede-4514-bb40-56a4043f1270","savedPayload":{"position":{"x":15885.698768887287,"y":19419.173282048105},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up 2","config":"{\n \"codeName\": \"probabilityUp2\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayUp[2].probability","project":"Superalgos","id":"00eb6eae-eaa0-48b1-baff-47bf23e2b58b","savedPayload":{"position":{"x":15833.400776382034,"y":19697.38134065442},"targetPosition":{"x":15849.456847352518,"y":19298.104806245872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3d827117-fa9c-4dd3-9276-d2954e592bc7","savedPayload":{"position":{"x":15849.456847352518,"y":19298.104806245872},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down 2","config":"{\n \"codeName\": \"probabilityDown2\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayDown[2].probability.toFixed(2)","project":"Superalgos","id":"47eb727a-2d95-4478-b028-ee983fe1dcdf","savedPayload":{"position":{"x":15784.535311187032,"y":19569.706228057476},"targetPosition":{"x":15798.931494037613,"y":19417.240827050053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ce463489-7789-459d-846d-1d4d999b9724","savedPayload":{"position":{"x":15798.931494037613,"y":19417.240827050053},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side 2","config":"{\n \"codeName\": \"probabilitySide2\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arraySide[2].probability.toFixed(2)","project":"Superalgos","id":"59c2243d-3340-4f65-a8bf-1ea0ddbcd9ec","savedPayload":{"position":{"x":15693.71698261303,"y":19678.093206415142},"targetPosition":{"x":15788.331607003576,"y":19293.72576285169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"89a3c63f-12ea-435e-8150-2c0965f3ec27","savedPayload":{"position":{"x":15788.331607003576,"y":19293.72576285169},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up 3","config":"{\n \"codeName\": \"probabilityUp3\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayUp[3].probability.toFixed(2)","project":"Superalgos","id":"37662cb1-05e1-4a4d-b753-09cd88973f7d","savedPayload":{"position":{"x":15670.984071772717,"y":19548.745763915264},"targetPosition":{"x":15710.923802015921,"y":19398.612910179523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9383f539-81a6-4e16-9a23-e6702c662e58","savedPayload":{"position":{"x":15710.923802015921,"y":19398.612910179523},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down 3","config":"{\n \"codeName\": \"probabilityDown3\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayDown[3].probability.toFixed(2)","project":"Superalgos","id":"3cf1663b-33ed-4bee-b3bb-a9d3ff81ecec","savedPayload":{"position":{"x":15556.54701333238,"y":19632.920166405092},"targetPosition":{"x":15729.366716147706,"y":19276.324096939046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fb60deb4-7593-4ffe-9d36-06f654ab1398","savedPayload":{"position":{"x":15729.366716147706,"y":19276.324096939046},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side 3","config":"{\n \"codeName\": \"probabilitySide3\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arraySide[3].probability.toFixed(2)","project":"Superalgos","id":"a4e814b0-4278-41b1-9275-319a21c12ad2","savedPayload":{"position":{"x":15562.962648572731,"y":19499.858047236325},"targetPosition":{"x":15632.077113255826,"y":19360.918686955054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d29e40d0-8b0a-49d7-9287-5ee1713eac4e","savedPayload":{"position":{"x":15632.077113255826,"y":19360.918686955054},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up 4","config":"{\n \"codeName\": \"probabilityUp4\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayUp[4].probability.toFixed(2)","project":"Superalgos","id":"d6ddfe51-ed65-4317-a6db-8dd7c29ced59","savedPayload":{"position":{"x":15435.206256656882,"y":19560.601310823782},"targetPosition":{"x":15673.671071471108,"y":19242.149674816414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"903d6dd1-9cd8-4e8a-9a9b-f554658ce564","savedPayload":{"position":{"x":15673.671071471108,"y":19242.149674816414},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down 4","config":"{\n \"codeName\": \"probabilityDown4\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayDown[4].probability.toFixed(2)","project":"Superalgos","id":"2bf22e1b-6a16-4199-8b72-4283ae8ea725","savedPayload":{"position":{"x":15466.037813388688,"y":19427.622315215827},"targetPosition":{"x":15562.816966353479,"y":19309.549779633475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0526403b-4378-41d5-b3fa-79bccdc31750","savedPayload":{"position":{"x":15562.816966353479,"y":19309.549779633475},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side 4","config":"{\n \"codeName\": \"probabilitySide4\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arraySide[4].probability.toFixed(2)","project":"Superalgos","id":"148cba98-c7b3-4278-ac40-c0805a2a31d9","savedPayload":{"position":{"x":15331.234400161324,"y":19466.720042865985},"targetPosition":{"x":15625.593060404542,"y":19201.295555221855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5b2780a7-e06f-4929-afa3-45931c83a70f","savedPayload":{"position":{"x":15625.593060404542,"y":19201.295555221855},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up 5","config":"{\n \"codeName\": \"probabilityUp5\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayUp[5].probability.toFixed(2)","project":"Superalgos","id":"833d2de2-62f0-4b87-9c8d-07da620c766f","savedPayload":{"position":{"x":15384.373400078966,"y":19341.387587791458},"targetPosition":{"x":15503.303832699337,"y":19245.184128156216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1f067a3e-21bd-434c-99d3-467032a2176a","savedPayload":{"position":{"x":15503.303832699337,"y":19245.184128156216},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down 5","config":"{\n \"codeName\": \"probabilityDown5\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayDown[5].probability.toFixed(2)","project":"Superalgos","id":"8bbd333f-8733-4c12-9f48-f44b6409f4ca","savedPayload":{"position":{"x":15243.754891064593,"y":19353.984592522866},"targetPosition":{"x":15586.922919575649,"y":19151.26899044574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2fa08b17-9fcc-4d03-b7f4-5f02c44183c6","savedPayload":{"position":{"x":15586.922919575649,"y":19151.26899044574},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side 5","config":"{\n \"codeName\": \"probabilitySide5\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arraySide[5].probability.toFixed(2)","project":"Superalgos","id":"ddcb3fba-ab34-4c66-aa82-991ce4a21f3e","savedPayload":{"position":{"x":15321.12660774892,"y":19245.74853584564},"targetPosition":{"x":15458.412422666483,"y":19170.361632868662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"491077de-5fe1-4cc4-98a4-72648541d766","savedPayload":{"position":{"x":15458.412422666483,"y":19170.361632868662},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up 6","config":"{\n \"codeName\": \"probabilityUp6\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayUp[6].probability.toFixed(2)","project":"Superalgos","id":"4c8885df-b460-492a-8fd7-7f6e692a1c18","savedPayload":{"position":{"x":15180.263946969335,"y":19223.05788861563},"targetPosition":{"x":15559.369475545765,"y":19093.64168629473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7628b231-d7c0-4f56-a875-c40f9dc5d453","savedPayload":{"position":{"x":15559.369475545765,"y":19093.64168629473},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down 6","config":"{\n \"codeName\": \"probabilityDown6\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayDown[6].probability.toFixed(2)","project":"Superalgos","id":"4a93051d-2d10-449c-b503-77dba2e9fe28","savedPayload":{"position":{"x":15281.591511057919,"y":19133.122707929244},"targetPosition":{"x":15429.412713226167,"y":19088.721343374564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78255cd6-c8f7-4533-a542-fe93e1b748f9","savedPayload":{"position":{"x":15429.412713226167,"y":19088.721343374564},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side 6","config":"{\n \"codeName\": \"probabilitySide6\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arraySide[6].probability.toFixed(2)","project":"Superalgos","id":"4182a108-ece7-4a17-b932-5c1d9a4756b6","savedPayload":{"position":{"x":15147.691286031895,"y":19085.79315112104},"targetPosition":{"x":15541.783193078645,"y":19034.120903242852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ca625650-fc68-403e-8bee-3c38a51bb70f","savedPayload":{"position":{"x":15541.783193078645,"y":19034.120903242852},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up 7","config":"{\n \"codeName\": \"probabilityUp7\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayUp[7].probability.toFixed(2)","project":"Superalgos","id":"b5ccdd41-090d-4123-af8b-30eb08c3c67b","savedPayload":{"position":{"x":15263.084859658768,"y":19016.38371229328},"targetPosition":{"x":15415.020312507564,"y":19000.27149158105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"91ee1783-d1e9-48b5-bae9-5db7887904da","savedPayload":{"position":{"x":15415.020312507564,"y":19000.27149158105},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down 7","config":"{\n \"codeName\": \"probabilityDown7\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayDown[7].probability.toFixed(2)","project":"Superalgos","id":"f4704dcd-2c14-47f7-9fc9-bd18d5582621","savedPayload":{"position":{"x":15140.917519529787,"y":18943.551616751254},"targetPosition":{"x":15536.102593000734,"y":18973.068857017053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cb6c389f-adbc-4dfe-8d4e-f12bb5a52077","savedPayload":{"position":{"x":15536.102593000734,"y":18973.068857017053},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side 7","config":"{\n \"codeName\": \"probabilitySide7\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arraySide[7].probability.toFixed(2)","project":"Superalgos","id":"4ac32582-3f5f-4e70-889b-44163296a6d4","savedPayload":{"position":{"x":15268.4101812802,"y":18898.63825193572},"targetPosition":{"x":15420.862016464627,"y":18911.93015819935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d0889582-9ed3-476b-a9cd-8d797a16d727","savedPayload":{"position":{"x":15420.862016464627,"y":18911.93015819935},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up 8","config":"{\n \"codeName\": \"probabilityUp8\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayUp[8].probability.toFixed(2)","project":"Superalgos","id":"6e5231b7-4720-4f4d-a665-7e1a404a46b5","savedPayload":{"position":{"x":15163.290278156906,"y":18804.207758370838},"targetPosition":{"x":15548.755997573116,"y":18908.39814880547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0065cbce-fa3b-42ef-a96f-ebd05efa496f","savedPayload":{"position":{"x":15548.755997573116,"y":18908.39814880547},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down 8","config":"{\n \"codeName\": \"probabilityDown8\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayDown[8].probability.toFixed(2)","project":"Superalgos","id":"f11b3a77-6419-4080-9676-975024dfb661","savedPayload":{"position":{"x":15294.54880570983,"y":18784.504069506853},"targetPosition":{"x":15444.330890976082,"y":18830.953225651778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b5cf9f1-6c7d-42be-95d1-afdbd3b3351f","savedPayload":{"position":{"x":15444.330890976082,"y":18830.953225651778},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side 8","config":"{\n \"codeName\": \"probabilitySide8\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arraySide[8].probability","project":"Superalgos","id":"f6edd4f5-a848-41cd-90dc-02f3847588db","savedPayload":{"position":{"x":15212.059133555722,"y":18667.836693700112},"targetPosition":{"x":15567.697863457455,"y":18849.18708672085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9f5d322b-0dc5-4ae9-bc17-5381f9a70c62","savedPayload":{"position":{"x":15567.697863457455,"y":18849.18708672085},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up 9","config":"{\n \"codeName\": \"probabilityUp9\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayUp[9].probability.toFixed(2)","project":"Superalgos","id":"321132b1-60e5-4a83-98de-ab4b96ccdeb7","savedPayload":{"position":{"x":15344.741709433343,"y":18678.172824316127},"targetPosition":{"x":15482.27871371504,"y":18751.349087565282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d4276b44-3c7e-490e-a5fe-d634f33f8daf","savedPayload":{"position":{"x":15482.27871371504,"y":18751.349087565282},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down 9","config":"{\n \"codeName\": \"probabilityDown9\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayDown[9].probability.toFixed(2)","project":"Superalgos","id":"a166f651-bde0-4120-88bc-1ca1cf43aa74","savedPayload":{"position":{"x":15287.514743377578,"y":18547.067166461537},"targetPosition":{"x":15599.924056426738,"y":18794.84902464901},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a81432a2-6778-4063-94bf-6618b1feeadd","savedPayload":{"position":{"x":15599.924056426738,"y":18794.84902464901},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side 9","config":"{\n \"codeName\": \"probabilitySide9\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arraySide[9].probability.toFixed(2)","project":"Superalgos","id":"1b71e277-d4a1-4e61-bbb1-bf7ca148575f","savedPayload":{"position":{"x":15414.835428129321,"y":18583.204995259577},"targetPosition":{"x":15535.517961603146,"y":18681.354006069465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"65426441-c082-4d12-94d9-de1d25ba697d","savedPayload":{"position":{"x":15535.517961603146,"y":18681.354006069465},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up 10","config":"{\n \"codeName\": \"probabilityUp10\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayUp[10].probability.toFixed(2)","project":"Superalgos","id":"eb7ecf8d-987a-4425-a45a-c2d2c79e392a","savedPayload":{"position":{"x":15385.171844120032,"y":18444.191904374296},"targetPosition":{"x":15640.720142007307,"y":18747.961651578982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f30dad9f-282a-47f6-bc54-ee76701c824b","savedPayload":{"position":{"x":15640.720142007307,"y":18747.961651578982},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down 10","config":"{\n \"codeName\": \"probabilityDown10\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayDown[10].probability.toFixed(2)","project":"Superalgos","id":"f0c4e430-c1dd-4c35-82f8-4a35623f2429","savedPayload":{"position":{"x":15504.458913795614,"y":18503.937422964158},"targetPosition":{"x":15598.515130802021,"y":18625.070901068124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a582ab2e-41f4-41b6-a281-14813c1f83e6","savedPayload":{"position":{"x":15598.515130802021,"y":18625.070901068124},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side 10","config":"{\n \"codeName\": \"probabilitySide10\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arraySide[10].probability.toFixed(2)","project":"Superalgos","id":"880c3925-d3ef-4ad8-a454-069e5ca4c188","savedPayload":{"position":{"x":15483.558977030665,"y":18364.571247309203},"targetPosition":{"x":15689.514173708576,"y":18709.621320830545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8045f35a-2f67-4a07-af52-a7a66343ae03","savedPayload":{"position":{"x":15689.514173708576,"y":18709.621320830545},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Up 1","config":"{\n \"codeName\": \"nextUp1\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayUp[1].greaterProbability.toFixed(2)","project":"Superalgos","id":"b53e83dd-00b7-460e-92ed-b5c4a24e5459","savedPayload":{"position":{"x":15638.544223214201,"y":18593.037499140562},"targetPosition":{"x":15710.19318748124,"y":18570.81556105862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"4a694c4e-5318-4298-b7f1-d9103f77ebf9","savedPayload":{"position":{"x":15710.19318748124,"y":18570.81556105862},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Down 1","config":"{\n \"codeName\": \"nextDown1\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayDown[1].greaterProbability.toFixed(2)","project":"Superalgos","id":"33d00317-95c1-4d35-be64-d513e1223b77","savedPayload":{"position":{"x":15653.585321656774,"y":18492.780564247143},"targetPosition":{"x":15732.491386443555,"y":18683.94798015546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"5d8da44f-fb39-4b0f-9cc7-fa9d32a4d209","savedPayload":{"position":{"x":15732.491386443555,"y":18683.94798015546},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Up 2","config":"{\n \"codeName\": \"nextUp2\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayUp[2].greaterProbability.toFixed(2)","project":"Superalgos","id":"bc732386-1448-4b48-bf55-70d5cd2196ba","savedPayload":{"position":{"x":15881.764206480573,"y":18485.464715821952},"targetPosition":{"x":15769.689016281238,"y":18665.895426256862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"ac16b3e9-e9d7-42ea-b428-9c8ec11d7e2b","savedPayload":{"position":{"x":15769.689016281238,"y":18665.895426256862},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Down 2","config":"{\n \"codeName\": \"nextDown2\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayDown[2].greaterProbability.toFixed(2)","project":"Superalgos","id":"cb9ff30d-2792-45ab-80e8-ca606f92758e","savedPayload":{"position":{"x":15731.895982517439,"y":18480.643758570957},"targetPosition":{"x":15785.717387636178,"y":18582.3573291342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"9acdb9db-3669-45a8-b02a-053f2faf6058","savedPayload":{"position":{"x":15785.717387636178,"y":18582.3573291342},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Up 3","config":"{\n \"codeName\": \"nextUp3\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayUp[3].greaterProbability.toFixed(2)","project":"Superalgos","id":"9f22f2e4-d461-4402-a9a4-248a815876c9","savedPayload":{"position":{"x":15832.59953100618,"y":18483.028906748168},"targetPosition":{"x":15859.709621598333,"y":18677.3044714439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"192e85df-e1bb-4292-ae05-ce740133fb29","savedPayload":{"position":{"x":15859.709621598333,"y":18677.3044714439},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Down 3","config":"{\n \"codeName\": \"nextDown3\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayDown[3].greaterProbability.toFixed(2)","project":"Superalgos","id":"e34c5d6c-6bfb-4733-a3e7-28e0e1bbd3a7","savedPayload":{"position":{"x":15966.971594216331,"y":18397.029853463508},"targetPosition":{"x":15869.469348606191,"y":18528.43327108489},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"4e60fdb7-fc23-4989-8706-7d81271f6225","savedPayload":{"position":{"x":15869.469348606191,"y":18528.43327108489},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Up 4","config":"{\n \"codeName\": \"nextUp4\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayUp[4].greaterProbability.toFixed(2)","project":"Superalgos","id":"09f989af-7270-4671-afda-2073458e77c7","savedPayload":{"position":{"x":15832.023178238243,"y":18607.138909109777},"targetPosition":{"x":16030.482017144222,"y":18588.00855568031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"2959103e-d4b4-4ead-8f6b-fbe06e89ff7a","savedPayload":{"position":{"x":16030.482017144222,"y":18588.00855568031},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Down 4","config":"{\n \"codeName\": \"nextDown4\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayDown[4].greaterProbability.toFixed(2)","project":"Superalgos","id":"e7eae73d-ee2e-477a-91ac-a2dbf6b8bba9","savedPayload":{"position":{"x":15959.994423111726,"y":18491.381784822708},"targetPosition":{"x":15910.42805859489,"y":18591.681957183988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"2a921871-4c5f-4424-a85f-9081ee420b55","savedPayload":{"position":{"x":15910.42805859489,"y":18591.681957183988},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Up 5","config":"{\n \"codeName\": \"nextUp5\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayUp[5].greaterProbability.toFixed(2)","project":"Superalgos","id":"e7709492-43e5-45e0-b94c-f6c63b5c4df4","savedPayload":{"position":{"x":16123.955925168098,"y":18607.331122910444},"targetPosition":{"x":15948.622767930177,"y":18664.267695717874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"5567d2d1-97d3-4551-ad1d-68b5fe8fca5e","savedPayload":{"position":{"x":15948.622767930177,"y":18664.267695717874},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Down 5","config":"{\n \"codeName\": \"nextDown5\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayDown[5].greaterProbability.toFixed(2)","project":"Superalgos","id":"95292d68-dcaa-475d-bb56-12634a6ef26e","savedPayload":{"position":{"x":16043.185595036211,"y":18499.71262661797},"targetPosition":{"x":15989.235838817825,"y":18687.67655917861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c4baa1b9-4879-4632-90bd-6b4aca0cc145","savedPayload":{"position":{"x":15989.235838817825,"y":18687.67655917861},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Up 6","config":"{\n \"codeName\": \"nextUp6\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayUp[6].greaterProbability.toFixed(2)","project":"Superalgos","id":"f459f2bb-0cf3-44da-a6e0-37495f592d7e","savedPayload":{"position":{"x":16137.826963339056,"y":18534.856375255848},"targetPosition":{"x":16137.545435580672,"y":18624.53898933548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"0c024e0d-6a5a-4631-9484-a563525dfad2","savedPayload":{"position":{"x":16137.545435580672,"y":18624.53898933548},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Down 6","config":"{\n \"codeName\": \"nextDown6\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayDown[6].greaterProbability.toFixed(2)","project":"Superalgos","id":"38310cb6-0f60-412b-b694-35a4d324f5c8","savedPayload":{"position":{"x":16324.09921546356,"y":18840.551118406926},"targetPosition":{"x":16023.375050728704,"y":18719.535308249884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"b8fb4ea6-e301-46e2-b3ca-7d1fa5d1dbb5","savedPayload":{"position":{"x":16023.375050728704,"y":18719.535308249884},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Up 7","config":"{\n \"codeName\": \"nextUp7\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayUp[7].greaterProbability.toFixed(2)","project":"Superalgos","id":"80bbe6d4-50ca-4ea2-b66c-ce3c71fd6fcc","savedPayload":{"position":{"x":16241.238871266254,"y":18593.77312625479},"targetPosition":{"x":16081.520302713863,"y":18680.47981914375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"7c29b4a9-94e3-4b6c-b359-03ef39258389","savedPayload":{"position":{"x":16081.520302713863,"y":18680.47981914375},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Down 7","config":"{\n \"codeName\": \"nextDown7\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayDown[7].greaterProbability.toFixed(2)","project":"Superalgos","id":"30b30cd2-4c85-4b3f-b589-358db9495959","savedPayload":{"position":{"x":16205.972438775614,"y":18647.01685371886},"targetPosition":{"x":16127.142363585615,"y":18705.96812990362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"5914dd39-dadd-4294-acb5-8088f81921df","savedPayload":{"position":{"x":16127.142363585615,"y":18705.96812990362},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Up 8","config":"{\n \"codeName\": \"nextUp8\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayUp[8].greaterProbability.toFixed(2)","project":"Superalgos","id":"c14ab122-acfa-46ff-8aa8-b6e4e01f29b4","savedPayload":{"position":{"x":16389.340637164256,"y":18732.344585153718},"targetPosition":{"x":16116.923558378494,"y":18871.746762879862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"da43c6d0-55f3-4422-9b23-24e6d19318ea","savedPayload":{"position":{"x":16116.923558378494,"y":18871.746762879862},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Down 8","config":"{\n \"codeName\": \"nextDown8\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayDown[8].greaterProbability.toFixed(2)","project":"Superalgos","id":"fac4074e-62de-461d-9c5e-78b492764124","savedPayload":{"position":{"x":16275.00204138623,"y":18729.703091712996},"targetPosition":{"x":16157.540923864828,"y":18739.33745909122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"2257ff95-2ad1-436c-8c75-d97ee7911623","savedPayload":{"position":{"x":16157.540923864828,"y":18739.33745909122},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Up9","config":"{\n \"codeName\": \"nextUp9\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayUp[9].greaterProbability.toFixed(2)","project":"Superalgos","id":"a5634a8e-ac5f-4542-98ab-6fbc7c6799e9","savedPayload":{"position":{"x":16244.35381360838,"y":18758.42021868722},"targetPosition":{"x":16196.433716556057,"y":18808.036829467783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"89252867-2e51-49cc-8061-710857117262","savedPayload":{"position":{"x":16196.433716556057,"y":18808.036829467783},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Down 9","config":"{\n \"codeName\": \"nextDown9\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayDown[9].greaterProbability.toFixed(2)","project":"Superalgos","id":"09d70a53-4761-4fb7-ac02-3bc9d3c9f118","savedPayload":{"position":{"x":16341.454658970593,"y":18821.546387694332},"targetPosition":{"x":16304.718624097368,"y":18879.90990296522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"3fb2d973-7ed0-4266-9bbe-927c880f27fc","savedPayload":{"position":{"x":16304.718624097368,"y":18879.90990296522},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Up 10","config":"{\n \"codeName\": \"nextUp10\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayUp[10].greaterProbability.toFixed(2)","project":"Superalgos","id":"971a4486-0ee2-4451-99f8-2d1183e3519c","savedPayload":{"position":{"x":16230.759711105857,"y":19023.299616676733},"targetPosition":{"x":16152.304282294463,"y":18880.96375863695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c5370b4b-5736-4f38-b026-7ee211e550f0","savedPayload":{"position":{"x":16152.304282294463,"y":18880.96375863695},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Down 10","config":"{\n \"codeName\": \"nextDown10\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.arrayDown[10].greaterProbability.toFixed(2)","project":"Superalgos","id":"aa0f0d5f-47b7-4c30-a8e5-c0204646b0b8","savedPayload":{"position":{"x":16347.22649218297,"y":18972.384684069548},"targetPosition":{"x":16235.041448311687,"y":18921.33496235319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"8393bb69-756c-4809-95b1-71b459e49d89","savedPayload":{"position":{"x":16235.041448311687,"y":18921.33496235319},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3a8e6c45-0172-4d5d-913d-4d9da74a66c2","savedPayload":{"position":{"x":15854.946749139024,"y":18982.941220285935},"targetPosition":{"x":16941.14452983774,"y":18982.93617339545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"let channel = record.current // Our main dependencies are candles\nvariable.count.all++\n\nif (channel.direction === \"Up\") {\n\n variable.count.up++\n\n if (channel.period > variable.max.up) { variable.max.up = channel.period }\n\n if (channel.period <= variable.MAX_PERIODS) {\n let data = variable.arrayUp[channel.period]\n data.count++\n data.probability = data.count / variable.count.up\n variable.arrayUp[channel.period] = data\n }\n\n for (let i = 1; i <= variable.MAX_PERIODS; i++) {\n if (channel.period > i) {\n let data = variable.arrayUp[i]\n data.greaterCount++\n data.greaterProbability = data.greaterCount / variable.count.up\n variable.arrayUp[i] = data\n }\n }\n}\n\nif (channel.direction === \"Down\") {\n\n variable.count.down++\n\n if (channel.period > variable.max.down) { variable.max.down = channel.period }\n\n if (channel.period <= variable.MAX_PERIODS) {\n let data = variable.arrayDown[channel.period]\n data.count++\n data.probability = data.count / variable.count.down\n variable.arrayDown[channel.period] = data\n }\n\n for (let i = 1; i <= variable.MAX_PERIODS; i++) {\n if (channel.period > i) {\n let data = variable.arrayDown[i]\n data.greaterCount++\n data.greaterProbability = data.greaterCount / variable.count.up\n variable.arrayDown[i] = data\n }\n }\n}\n\nif (channel.direction === \"Side\") {\n\n variable.count.side++\n\n if (channel.period > variable.max.side) { variable.max.side = channel.period }\n\n if (channel.period <= variable.MAX_PERIODS) {\n let data = variable.arraySide[channel.period]\n data.count++\n data.probability = data.count / variable.count.side\n variable.arraySide[channel.period] = data\n }\n\n for (let i = 1; i <= variable.MAX_PERIODS; i++) {\n if (channel.period > i) {\n let data = variable.arraySide[i]\n data.greaterCount++\n data.greaterProbability = data.greaterCount / variable.count.up\n variable.arraySide[i] = data\n }\n }\n}\n\nvariable.probability.up = variable.count.up / variable.count.all\nvariable.probability.down = variable.count.down / variable.count.all\nvariable.probability.side = variable.count.side / variable.count.all\n\n","project":"Superalgos","id":"c15afb69-a887-4bb7-90b0-7828ed44cc36","savedPayload":{"position":{"x":16415.49350893315,"y":18770.795871478007},"targetPosition":{"x":16551.440836957383,"y":18785.14191681551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6363cb92-acac-4e9f-b390-e759c691b3f4","savedPayload":{"position":{"x":16551.440836957383,"y":18785.14191681551},"targetPosition":{"x":16686.79573286535,"y":18798.59917415872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"variable = {\n MAX_PERIODS: 10,\n count: {\n all: 0,\n up: 0,\n down: 0,\n side: 0\n },\n max: {\n up: 0,\n down: 0,\n side: 0\n },\n probability: {\n up: 0,\n down: 0,\n side: 0\n },\n arrayUp: [],\n arrayDown: [],\n arraySide: []\n}\n\nfor (let i = 0; i <= variable.MAX_PERIODS; i++) {\n let dataUp = {\n count: 0,\n probability: 0,\n greaterCount: 0,\n greaterProbability: 0\n }\n let dataDown = {\n count: 0,\n probability: 0,\n greaterCount: 0,\n greaterProbability: 0\n }\n let dataSide = {\n count: 0,\n probability: 0,\n greaterCount: 0,\n greaterProbability: 0\n }\n variable.arrayUp.push(dataUp)\n variable.arrayDown.push(dataDown)\n variable.arraySide.push(dataSide)\n}\n","project":"Superalgos","id":"3ab58fbc-1e9c-42c6-9396-85f2476039ea","savedPayload":{"position":{"x":16596.823147467745,"y":18508.355992138244},"targetPosition":{"x":16653.30873765082,"y":18633.815449435402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"51e8fb5d-98ce-4eae-9b92-cdea22017c3e","savedPayload":{"position":{"x":16653.30873765082,"y":18633.815449435402},"targetPosition":{"x":16686.79573286535,"y":18798.59917415872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"216d8d3f-305e-41d7-844f-044244ba4c86","savedPayload":{"position":{"x":16686.79573286535,"y":18798.59917415872},"targetPosition":{"x":16941.14452983774,"y":18982.93617339545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6f5208bc-786c-4fe8-876a-e1d3550db36d","savedPayload":{"position":{"x":17221.151546757865,"y":18569.598525719965},"targetPosition":{"x":17521.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Candles Channels Probabilities","id":"194dbe67-1ef8-47a3-8d1f-d769f9d19b55"}}}],"id":"4309c865-1bac-404b-8904-5ac6405d2993","savedPayload":{"position":{"x":17521.151546757865,"y":18569.598525719965},"targetPosition":{"x":17521.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"plotters":[{"type":"Plotter","name":"Candles Probabilities","config":"{\n\"codeName\": \"Candles-Probabilities\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Candles Probabilities","config":"{\n\t\"codeName\": \"Candles-Probabilities\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Candles Probabilities","config":"{ \n\"codeName\": \"Candles-Probabilities\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Direction Up","config":"{\n \"valueDecimals\": 6\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.directionUp","project":"Superalgos","id":"896d5095-3ca6-47b8-8108-145e2e363f32","savedPayload":{"position":{"x":16025.97808509376,"y":18672.41029433825},"targetPosition":{"x":16026.28619829056,"y":18472.437718250025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1b7eea96-210d-4fd8-a160-76f7bca629ba","savedPayload":{"position":{"x":16026.28619829056,"y":18472.437718250025},"targetPosition":{"x":16026.258134614276,"y":18272.593625627633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Direction Down","config":"{\n \"valueDecimals\": 6\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.directionDown","project":"Superalgos","id":"28b81006-e70c-4608-a695-bce4a8933a8f","savedPayload":{"position":{"x":15626.063888363082,"y":18272.595774909085},"targetPosition":{"x":15826.366683835327,"y":18272.590443216668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"11a6da40-b053-4c51-a929-af711aa02cf6","savedPayload":{"position":{"x":15826.366683835327,"y":18272.590443216668},"targetPosition":{"x":16026.258134614276,"y":18272.593625627633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Direction Side","config":"{\n \"valueDecimals\": 6\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.directionSide","project":"Superalgos","id":"fbd5a4b7-18ff-47d5-82b8-c600cc4fac99","savedPayload":{"position":{"x":16025.972320311157,"y":17872.766591033513},"targetPosition":{"x":16026.283106124949,"y":18072.729364745723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"46500c39-2a45-4836-ab76-baaac8b98100","savedPayload":{"position":{"x":16026.283106124949,"y":18072.729364745723},"targetPosition":{"x":16026.258134614276,"y":18272.593625627633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3102069a-4a2a-41e6-aa8d-f71dc48148f2","savedPayload":{"position":{"x":16026.258134614276,"y":18272.593625627633},"targetPosition":{"x":16425.300993389905,"y":18272.596584446146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ecab3716-75a4-4752-b826-1d5df9ec7325","savedPayload":{"position":{"x":16425.300993389905,"y":18272.596584446146},"targetPosition":{"x":16863.33295866748,"y":18272.595526064877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bf60e853-e860-4fbf-8922-c7430406b12d","savedPayload":{"position":{"x":17221.151546757865,"y":18269.598525719965},"targetPosition":{"x":17521.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Candles Channels Probabilities","config":"{\n\"codeName\": \"Candles-Channels-Probabilities\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Candles Channels Probabilities","config":"{ \n\"codeName\": \"Candles-Channels-Probabilities\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Candles Channels Probabilities","config":"{ \n\"codeName\": \"Candles Channels Probabilities\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Count All","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.countAll","project":"Superalgos","id":"fa576991-5a1c-4a7b-b6f0-16a26b50b534","savedPayload":{"position":{"x":17606.981924815067,"y":17532.628465793307},"targetPosition":{"x":17251.58028641225,"y":17432.08915705172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0ead2e06-daea-4212-aff2-3564d6f1ac14","savedPayload":{"position":{"x":17251.58028641225,"y":17432.08915705172},"targetPosition":{"x":16895.888152631214,"y":17323.714087092136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Count Up","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.countUp","project":"Superalgos","id":"b495344a-0ee6-4b91-a38e-c59728bc4fa8","savedPayload":{"position":{"x":17378.76339999789,"y":17867.16824439164},"targetPosition":{"x":17130.3302538366,"y":17596.687513013247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"786019d8-2fec-4feb-a784-d32f35c013e6","savedPayload":{"position":{"x":17130.3302538366,"y":17596.687513013247},"targetPosition":{"x":16895.888152631214,"y":17323.714087092136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Count Down","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.countDown","project":"Superalgos","id":"1cd50ef3-9d6e-4c28-9789-785d250dfd77","savedPayload":{"position":{"x":17020.320808272485,"y":18047.48094539746},"targetPosition":{"x":16958.067968920164,"y":17685.787930801598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"adebe92f-1d1a-4afb-b61d-7081f6b290f4","savedPayload":{"position":{"x":16958.067968920164,"y":17685.787930801598},"targetPosition":{"x":16895.888152631214,"y":17323.714087092136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Count Side","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.countSide","project":"Superalgos","id":"3aa9ba59-e653-4247-8cbf-4905f7382cc8","savedPayload":{"position":{"x":16609.39551544905,"y":18000.175772843555},"targetPosition":{"x":16752.597737113392,"y":17662.107240727924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fdb8d804-d6e6-4fa7-a71a-a79f4bb5c00a","savedPayload":{"position":{"x":16752.597737113392,"y":17662.107240727924},"targetPosition":{"x":16895.888152631214,"y":17323.714087092136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Max Periods Up","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.maxUp","project":"Superalgos","id":"9ae88e84-07a2-4398-a17b-069443eef06a","savedPayload":{"position":{"x":16288.74674675997,"y":17738.080418995392},"targetPosition":{"x":16592.21911292496,"y":17530.94773060307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f2fb198b-3027-4037-8b77-656c1a09e6fe","savedPayload":{"position":{"x":16592.21911292496,"y":17530.94773060307},"targetPosition":{"x":16895.888152631214,"y":17323.714087092136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Max Periods Down","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.maxDown","project":"Superalgos","id":"5ab6f852-4d60-42e9-a268-7719ae05c039","savedPayload":{"position":{"x":16160.781514887978,"y":17344.04372823146},"targetPosition":{"x":16528.206419711823,"y":17333.865003606603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5836b0c5-4a10-4efa-b732-cfccb42f7bb3","savedPayload":{"position":{"x":16528.206419711823,"y":17333.865003606603},"targetPosition":{"x":16895.888152631214,"y":17323.714087092136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Max Periods Side","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.maxSide","project":"Superalgos","id":"9bed7e40-98c0-4894-afb3-f65c8df9feef","savedPayload":{"position":{"x":16266.144911407158,"y":16943.91186364417},"targetPosition":{"x":16580.897176974588,"y":17133.736259869605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"85e693e8-b634-4cb1-b983-6bd0d125d95b","savedPayload":{"position":{"x":16580.897176974588,"y":17133.736259869605},"targetPosition":{"x":16895.888152631214,"y":17323.714087092136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Probability Up","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp","project":"Superalgos","id":"e68177d3-b01e-4d0d-a1f0-0cab3cdf295e","savedPayload":{"position":{"x":16571.4101520004,"y":16663.66517488857},"targetPosition":{"x":16733.55694992239,"y":16993.580808556377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9187cf3a-e693-4f3f-a675-a0b677ebbf47","savedPayload":{"position":{"x":16733.55694992239,"y":16993.580808556377},"targetPosition":{"x":16895.888152631214,"y":17323.714087092136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Probability Down","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown","project":"Superalgos","id":"1053b129-d1bf-4c28-9a67-bfa678f3149b","savedPayload":{"position":{"x":16979.29439689928,"y":16592.95321329056},"targetPosition":{"x":16937.6035629527,"y":16958.295548665563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e023b233-b20a-4645-a96b-9ca6f9ed1f2d","savedPayload":{"position":{"x":16937.6035629527,"y":16958.295548665563},"targetPosition":{"x":16895.888152631214,"y":17323.714087092136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Probability Side","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide","project":"Superalgos","id":"ec9d0a16-b97b-44e0-a659-8a4876f759fc","savedPayload":{"position":{"x":17341.94503274795,"y":16729.92477571676},"targetPosition":{"x":17115.290510777344,"y":17021.667152922666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0897183b-3295-4559-93b5-d961822f9e3f","savedPayload":{"position":{"x":17115.290510777344,"y":17021.667152922666},"targetPosition":{"x":16895.888152631214,"y":17323.714087092136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9b4851ba-9cd0-42e4-9929-6e4650800b94","savedPayload":{"position":{"x":16794.171231043354,"y":17807.716798385685},"targetPosition":{"x":17263.154398834504,"y":17434.755189042116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Candles Channels Up Probabilities","config":"{ \n\"codeName\": \"Candles Channels Up Probabilities\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"1 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp1","project":"Superalgos","id":"07e00144-4d7c-4be0-9446-fcce6a7c0e6a","savedPayload":{"position":{"x":16976.68360825868,"y":17865.10075312756},"targetPosition":{"x":16945.52718444125,"y":17315.4013398115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bc260d63-484b-4fb2-850a-c8a57b386c95","savedPayload":{"position":{"x":16945.52718444125,"y":17315.4013398115},"targetPosition":{"x":16914.403357707823,"y":16765.625755119305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"2 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp2","project":"Superalgos","id":"35ca47e6-f52a-4ee5-9839-b2841f987d78","savedPayload":{"position":{"x":16372.447210036036,"y":17724.41687415103},"targetPosition":{"x":16643.375812603404,"y":17244.989610471075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4908d680-f84a-49d5-ba5f-7abec1219b9f","savedPayload":{"position":{"x":16643.375812603404,"y":17244.989610471075},"targetPosition":{"x":16914.403357707823,"y":16765.625755119305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"3 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp3","project":"Superalgos","id":"44a7d661-accf-4962-90f0-1ab53c99c5ab","savedPayload":{"position":{"x":15939.922941426772,"y":17279.353714246783},"targetPosition":{"x":16427.112258152934,"y":17022.494414007604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e658351e-118c-481f-8387-53e1c7dc3d1e","savedPayload":{"position":{"x":16427.112258152934,"y":17022.494414007604},"targetPosition":{"x":16914.403357707823,"y":16765.625755119305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"4 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp4","project":"Superalgos","id":"a6387b2c-5f86-44e3-a298-a25fb5667e37","savedPayload":{"position":{"x":15816.686276107226,"y":16671.35657815776},"targetPosition":{"x":16365.493396836253,"y":16718.471568492998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9679e258-89b4-4cbc-81e0-78c2d53f2a76","savedPayload":{"position":{"x":16365.493396836253,"y":16718.471568492998},"targetPosition":{"x":16914.403357707823,"y":16765.625755119305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"5 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp5","project":"Superalgos","id":"7867c03a-d26f-4ea3-a7d2-6e3042e4a5e9","savedPayload":{"position":{"x":16041.979233687129,"y":16092.813961423244},"targetPosition":{"x":16478.148970292066,"y":16429.17590509398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"000c1693-1ca1-481f-99ad-64dc0b3d864f","savedPayload":{"position":{"x":16478.148970292066,"y":16429.17590509398},"targetPosition":{"x":16914.403357707823,"y":16765.625755119305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"6 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp6","project":"Superalgos","id":"8dde6fd4-76ad-43cd-b65a-c8b2cd344fde","savedPayload":{"position":{"x":16544.301461593972,"y":15727.876109652008},"targetPosition":{"x":16729.33011665096,"y":16246.689656796341},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d59a341d-36d1-4780-86f0-332a60cdc7a8","savedPayload":{"position":{"x":16729.33011665096,"y":16246.689656796341},"targetPosition":{"x":16914.403357707823,"y":16765.625755119305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"7 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp7","project":"Superalgos","id":"3e3d36c0-c609-47cd-b50c-b67ef9033d13","savedPayload":{"position":{"x":17163.72098692383,"y":15692.463720397624},"targetPosition":{"x":17039.06976050387,"y":16228.978597587791},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"15c0e7d0-aef2-485a-8e47-225002493c8a","savedPayload":{"position":{"x":17039.06976050387,"y":16228.978597587791},"targetPosition":{"x":16914.403357707823,"y":16765.625755119305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"8 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp8","project":"Superalgos","id":"915d2648-2b9f-4594-904d-3310da162972","savedPayload":{"position":{"x":17704.206772840706,"y":15997.82004143336},"targetPosition":{"x":17309.332917560372,"y":16381.656357354226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3c5cc745-31f0-442c-86ab-2de4fe641a8a","savedPayload":{"position":{"x":17309.332917560372,"y":16381.656357354226},"targetPosition":{"x":16914.403357707823,"y":16765.625755119305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"9 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp9","project":"Superalgos","id":"7ecb2b5b-f932-48fe-95a0-9c2f86d771f9","savedPayload":{"position":{"x":17993.836671184374,"y":16546.64149946571},"targetPosition":{"x":17454.099299759273,"y":16656.02811742707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"64ef6260-28c6-4aca-9899-5b5e422716c8","savedPayload":{"position":{"x":17454.099299759273,"y":16656.02811742707},"targetPosition":{"x":16914.403357707823,"y":16765.625755119305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"10 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp10","project":"Superalgos","id":"4a25b034-61a2-4050-85c7-9e39c5ebbafb","savedPayload":{"position":{"x":17940.9763520172,"y":17164.51299349597},"targetPosition":{"x":17427.71296558897,"y":16965.031651298894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"57f242de-4438-408a-8e7d-17554c1d8602","savedPayload":{"position":{"x":17427.71296558897,"y":16965.031651298894},"targetPosition":{"x":16914.403357707823,"y":16765.625755119305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c9b2fa2a-7993-4602-9c5c-180175745dd4","savedPayload":{"position":{"x":16679.524090396844,"y":17301.668228302253},"targetPosition":{"x":17263.154398834504,"y":17434.755189042116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Candles Channels Down Probabilities","config":"{ \n\"codeName\": \"Candles Channels Down Probabilities\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"1 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown1","project":"Superalgos","id":"23dca426-62bb-472d-a631-6de325f9f9e3","savedPayload":{"position":{"x":16535.20460234588,"y":17164.70411848688},"targetPosition":{"x":17048.558969514106,"y":16965.143147160114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"82ea7539-87d8-4801-8a55-5d72341f7981","savedPayload":{"position":{"x":17048.558969514106,"y":16965.143147160114},"targetPosition":{"x":17561.95326687484,"y":16765.65335965308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"2 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown2","project":"Superalgos","id":"9f42086f-9981-47d0-a6ca-40b9f8cd555b","savedPayload":{"position":{"x":16482.33899897167,"y":16546.663886847527},"targetPosition":{"x":17022.163990752946,"y":16656.06293128033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5659eebc-8ea9-4d6c-bcc0-1bb7cfa83c8a","savedPayload":{"position":{"x":17022.163990752946,"y":16656.06293128033},"targetPosition":{"x":17561.95326687484,"y":16765.65335965308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"3 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown3","project":"Superalgos","id":"1024ff8c-10a7-4bc0-bfd5-6fde53b25151","savedPayload":{"position":{"x":16772.037677486867,"y":15997.759521790189},"targetPosition":{"x":17166.97139807511,"y":16381.647174707954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4e4162b5-9989-4ced-954c-024c643b354b","savedPayload":{"position":{"x":17166.97139807511,"y":16381.647174707954},"targetPosition":{"x":17561.95326687484,"y":16765.65335965308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"4 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown4","project":"Superalgos","id":"cfee4218-a9d7-4649-8118-c68f4c04917d","savedPayload":{"position":{"x":17312.652986836183,"y":15692.528429059976},"targetPosition":{"x":17437.297837958733,"y":16229.027752262722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"40026d30-b3ce-4a0c-8ae4-50ab1847b6f8","savedPayload":{"position":{"x":17437.297837958733,"y":16229.027752262722},"targetPosition":{"x":17561.95326687484,"y":16765.65335965308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"5 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown5","project":"Superalgos","id":"49be0cfe-1c4e-4bee-96c5-93cc97022dfc","savedPayload":{"position":{"x":17932.02965631574,"y":15727.984198051336},"targetPosition":{"x":17747.015850360956,"y":16246.75780339765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2534a50-5cc5-4fca-a800-859c88427ab3","savedPayload":{"position":{"x":17747.015850360956,"y":16246.75780339765},"targetPosition":{"x":17561.95326687484,"y":16765.65335965308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"6 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown6","project":"Superalgos","id":"a9411068-45d1-409c-b8d3-91750a9f1f61","savedPayload":{"position":{"x":18434.320675409195,"y":16092.89357556531},"targetPosition":{"x":17998.181936228215,"y":16429.227639467244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"043a6c35-a878-4082-8b98-b58ca01fb5a0","savedPayload":{"position":{"x":17998.181936228215,"y":16429.227639467244},"targetPosition":{"x":17561.95326687484,"y":16765.65335965308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"7 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown7","project":"Superalgos","id":"a2d057f6-857e-41cc-b88e-ef6240cda541","savedPayload":{"position":{"x":18659.468634970537,"y":16671.408010183877},"targetPosition":{"x":18110.768724143443,"y":16718.507258266545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"982ba082-d3a1-4c25-a712-fd22585e4473","savedPayload":{"position":{"x":18110.768724143443,"y":16718.507258266545},"targetPosition":{"x":17561.95326687484,"y":16765.65335965308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"8 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown8","project":"Superalgos","id":"6837746d-276b-473f-9a1b-6a2ee79bdb4d","savedPayload":{"position":{"x":18536.2485600019,"y":17279.188226498587},"targetPosition":{"x":18049.14959507045,"y":17022.428867394097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9379c93b-0cdd-40b0-a8b0-fc1019f5b082","savedPayload":{"position":{"x":18049.14959507045,"y":17022.428867394097},"targetPosition":{"x":17561.95326687484,"y":16765.65335965308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"9 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown9","project":"Superalgos","id":"f59472a9-6507-4c28-8820-06d2ff4d4cc7","savedPayload":{"position":{"x":18103.810109646503,"y":17724.04312667822},"targetPosition":{"x":17832.938995814315,"y":17244.836622321098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d612b2c7-503f-4327-a7d3-a6d0ca9e7b91","savedPayload":{"position":{"x":17832.938995814315,"y":17244.836622321098},"targetPosition":{"x":17561.95326687484,"y":16765.65335965308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"10 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown10","project":"Superalgos","id":"0c2a9662-fb18-45c1-8f0a-fb7339601cd2","savedPayload":{"position":{"x":17499.7524271772,"y":17864.69798846866},"targetPosition":{"x":17530.889304381464,"y":17315.230774780706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f766ff2-0076-41b3-836d-4cbba53b6b4b","savedPayload":{"position":{"x":17530.889304381464,"y":17315.230774780706},"targetPosition":{"x":17561.95326687484,"y":16765.65335965308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"af3d5d0c-21a1-4fe7-83f9-9afabd3cf16f","savedPayload":{"position":{"x":17003.51900665623,"y":16895.515234213486},"targetPosition":{"x":17263.154398834504,"y":17434.755189042116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Candles Channels Side Probabilities","config":"{ \n\"codeName\": \"Candles Channels Side Probabilities\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"1 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide1","project":"Superalgos","id":"f7bc6a24-6277-4c81-89cf-b07a285b9fda","savedPayload":{"position":{"x":16614.56259286925,"y":16883.331299276993},"targetPosition":{"x":17164.936669710114,"y":16909.57579156544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1ae051e6-771f-4332-87fa-ccb3faa468d5","savedPayload":{"position":{"x":17164.936669710114,"y":16909.57579156544},"targetPosition":{"x":17715.243195523326,"y":16935.935863882543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"2 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide2","project":"Superalgos","id":"cfc70522-309f-4f8a-962d-e98bbd6bfc06","savedPayload":{"position":{"x":16830.707939977496,"y":16276.39542437472},"targetPosition":{"x":17279.36281883726,"y":16595.924768114026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c8f2d5bb-14c3-4094-bc2b-2b5c46f4dc59","savedPayload":{"position":{"x":17279.36281883726,"y":16595.924768114026},"targetPosition":{"x":17715.243195523326,"y":16935.935863882543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"3 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide3","project":"Superalgos","id":"269c5548-643a-4c77-a4bb-33d3741b5aa2","savedPayload":{"position":{"x":17305.992101278516,"y":15913.016238315331},"targetPosition":{"x":17510.617379832995,"y":16424.410730013595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ebc2b7eb-e399-4025-a222-0c288a218b9c","savedPayload":{"position":{"x":17510.617379832995,"y":16424.410730013595},"targetPosition":{"x":17715.243195523326,"y":16935.935863882543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"4 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide4","project":"Superalgos","id":"3cb178ac-79a4-4742-b056-4242f1a44a4f","savedPayload":{"position":{"x":17923.614229014784,"y":15854.045092573619},"targetPosition":{"x":17819.444335842327,"y":16394.931473614044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9b18832c-c75a-48d5-84a8-10c87c3ecaa7","savedPayload":{"position":{"x":17819.444335842327,"y":16394.931473614044},"targetPosition":{"x":17715.243195523326,"y":16935.935863882543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"5 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide5","project":"Superalgos","id":"886987c2-c671-4fb1-8e4f-2531678fdf27","savedPayload":{"position":{"x":18475.487906060116,"y":16138.560435191639},"targetPosition":{"x":18095.40197964389,"y":16537.199765522717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"02d20e04-267c-4947-aaef-975b0afbc6be","savedPayload":{"position":{"x":18095.40197964389,"y":16537.199765522717},"targetPosition":{"x":17715.243195523326,"y":16935.935863882543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"6 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide6","project":"Superalgos","id":"1c3ef0f9-8202-4bd1-b2cf-d5f093a0b93e","savedPayload":{"position":{"x":18785.962806817737,"y":16676.256125358523},"targetPosition":{"x":18250.658819874978,"y":16806.066351431222},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8263c56f-f813-4b09-a3ec-d03873f61cfb","savedPayload":{"position":{"x":18250.658819874978,"y":16806.066351431222},"targetPosition":{"x":17715.243195523326,"y":16935.935863882543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"7 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide7","project":"Superalgos","id":"65c5aefe-26f5-43b7-9db4-92869f50c17d","savedPayload":{"position":{"x":18756.4753610408,"y":17295.97442816932},"targetPosition":{"x":18235.91510968265,"y":17115.94452300114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"defe61e1-b9f0-4a78-89fb-d9793c2b6a30","savedPayload":{"position":{"x":18235.91510968265,"y":17115.94452300114},"targetPosition":{"x":17715.243195523326,"y":16935.935863882543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"8 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide8","project":"Superalgos","id":"4ec4604d-2c8a-43e2-9c86-e4cd4f84e6cc","savedPayload":{"position":{"x":18396.504969455786,"y":17801.67471363776},"targetPosition":{"x":18055.924490699093,"y":17368.76407480768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"34bc4b9d-8740-49d3-b289-3a15f1e5ad90","savedPayload":{"position":{"x":18055.924490699093,"y":17368.76407480768},"targetPosition":{"x":17715.243195523326,"y":16935.935863882543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"9 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide9","project":"Superalgos","id":"7896244a-82de-46a3-9ad5-973a8a46bc47","savedPayload":{"position":{"x":17845.31331501733,"y":18031.55667120074},"targetPosition":{"x":17792.914664108357,"y":17483.278510117034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3700449f-d0f2-4dc6-aad2-8ed6ba3dffb3","savedPayload":{"position":{"x":17792.914664108357,"y":17483.278510117034},"targetPosition":{"x":17715.243195523326,"y":16935.935863882543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"10 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide10","project":"Superalgos","id":"eefa0c8e-3bbd-4f17-bf18-da2ea4adce72","savedPayload":{"position":{"x":17210.755704187304,"y":17914.980078896617},"targetPosition":{"x":17463.112166825664,"y":17425.45310280496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"319c7144-ca2d-47de-acc4-ea71a008def2","savedPayload":{"position":{"x":17463.112166825664,"y":17425.45310280496},"targetPosition":{"x":17715.243195523326,"y":16935.935863882543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f4f7ebb6-52dc-4031-9822-f0391e95e043","savedPayload":{"position":{"x":17522.79013156026,"y":16895.51664411747},"targetPosition":{"x":17263.154398834504,"y":17434.755189042116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Candles Channels Next Up","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"1 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextUp1","project":"Superalgos","id":"4c2ab782-9799-4259-99ee-7ffeb3428f92","savedPayload":{"position":{"x":17533.95509685593,"y":17134.432784936274},"targetPosition":{"x":17582.321199525428,"y":17228.691140318893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"6ab10cae-4aa4-45f6-b5c7-9baf4c0691a1","savedPayload":{"position":{"x":17582.321199525428,"y":17228.691140318893},"targetPosition":{"x":17715.09010292881,"y":17486.465691245812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"2 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextUp2","project":"Superalgos","id":"751ec0df-e3bc-404f-a1b0-d17647bb854e","savedPayload":{"position":{"x":17752.816447867714,"y":17092.006024769365},"targetPosition":{"x":17742.445252284284,"y":17200.18110190182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"17e442b4-eb1a-4c17-8b63-d731b95c983a","savedPayload":{"position":{"x":17742.445252284284,"y":17200.18110190182},"targetPosition":{"x":17715.09010292881,"y":17486.465691245812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"3 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextUp3","project":"Superalgos","id":"4ebf70da-30e3-4b0e-bc5c-029e30a705ec","savedPayload":{"position":{"x":17959.943588997205,"y":17175.221126230383},"targetPosition":{"x":17894.368414415047,"y":17258.552988966607},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"162d2a00-b00c-4284-9c01-1837f0161e1b","savedPayload":{"position":{"x":17894.368414415047,"y":17258.552988966607},"targetPosition":{"x":17715.09010292881,"y":17486.465691245812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"4 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextUp4","project":"Superalgos","id":"1101c09f-831c-4a7d-9ce2-0c23a66a240f","savedPayload":{"position":{"x":18089.287888125826,"y":17357.055380640442},"targetPosition":{"x":17989.04169960099,"y":17391.70119544983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"fa5a33a9-8d8a-408c-93bd-8b06b3fbafe6","savedPayload":{"position":{"x":17989.04169960099,"y":17391.70119544983},"targetPosition":{"x":17715.09010292881,"y":17486.465691245812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"5 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextUp5","project":"Superalgos","id":"211e8218-8abd-476b-8b61-f95235f54548","savedPayload":{"position":{"x":18099.72386148323,"y":17579.4846470344},"targetPosition":{"x":17996.821451688054,"y":17554.66412101828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"0c4098da-6a1c-45a2-b0cc-e67f995f265d","savedPayload":{"position":{"x":17996.821451688054,"y":17554.66412101828},"targetPosition":{"x":17715.09010292881,"y":17486.465691245812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"6 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextUp6","project":"Superalgos","id":"a471a5b8-7716-42d9-8c4e-c493e427733c","savedPayload":{"position":{"x":17988.598002896615,"y":17772.961989464013},"targetPosition":{"x":17915.28470858238,"y":17696.24637128049},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"f4b0d4a0-fa30-4e94-a2f1-f8a2e94eb991","savedPayload":{"position":{"x":17915.28470858238,"y":17696.24637128049},"targetPosition":{"x":17715.09010292881,"y":17486.465691245812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"7 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextUp7","project":"Superalgos","id":"fc8aa338-c938-4827-acfd-335a685a45a7","savedPayload":{"position":{"x":17790.133939750005,"y":17875.03890795553},"targetPosition":{"x":17770.015254663223,"y":17771.0378023132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"dd6b2919-8a58-4817-91da-8e2d591633e2","savedPayload":{"position":{"x":17770.015254663223,"y":17771.0378023132},"targetPosition":{"x":17715.09010292881,"y":17486.465691245812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"8 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextUp8","project":"Superalgos","id":"97cdc151-6085-4925-bf5f-b51f757f12c9","savedPayload":{"position":{"x":17568.371953199767,"y":17853.952648012724},"targetPosition":{"x":17607.542955121608,"y":17755.61636697007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"d3c74a33-f336-4d3a-9646-064fee673e10","savedPayload":{"position":{"x":17607.542955121608,"y":17755.61636697007},"targetPosition":{"x":17715.09010292881,"y":17486.465691245812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"9 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextUp9","project":"Superalgos","id":"26a6b54f-5c6f-43a6-94da-ea5381b4f53d","savedPayload":{"position":{"x":17392.697935565317,"y":17716.46151836316},"targetPosition":{"x":17478.985771901844,"y":17654.73087049579},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"dff2a6e7-8415-4f8a-bfce-a5b7106db6e6","savedPayload":{"position":{"x":17478.985771901844,"y":17654.73087049579},"targetPosition":{"x":17715.09010292881,"y":17486.465691245812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"10 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextUp10","project":"Superalgos","id":"2b04f728-46ee-4056-bdee-d7b643308401","savedPayload":{"position":{"x":17320.012564056844,"y":17505.8541568963},"targetPosition":{"x":17425.8598574674,"y":17499.95041605412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"3ac887b6-7bdb-494d-8490-dab0c77aec2e","savedPayload":{"position":{"x":17425.8598574674,"y":17499.95041605412},"targetPosition":{"x":17715.09010292881,"y":17486.465691245812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3b367a4d-115a-4d9e-b783-2d0c6e542735","savedPayload":{"position":{"x":17846.785259271128,"y":17301.67482462373},"targetPosition":{"x":17263.154398834504,"y":17434.755189042116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Candles Channels Next Down","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"1 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextDown1","project":"Superalgos","id":"b3bb2ecb-6337-4d2c-8c89-245c7f73e108","savedPayload":{"position":{"x":17542.219050897027,"y":17180.320391397727},"targetPosition":{"x":17575.181163820056,"y":17278.389426764035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"61b3b455-eb49-41a9-9de5-03d92c567f4a","savedPayload":{"position":{"x":17575.181163820056,"y":17278.389426764035},"targetPosition":{"x":17668.377777042737,"y":17554.22977398563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"2 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextDown2","project":"Superalgos","id":"e989918e-5605-496d-a7f2-0ca713de39f0","savedPayload":{"position":{"x":17763.16601526517,"y":17177.864963756118},"targetPosition":{"x":17737.915783168304,"y":17275.89723534287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"2b917503-223e-4dde-8cf0-cb40412a6ec6","savedPayload":{"position":{"x":17737.915783168304,"y":17275.89723534287},"targetPosition":{"x":17668.377777042737,"y":17554.22977398563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"3 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextDown3","project":"Superalgos","id":"63721d6c-2bb1-4da6-a8c6-ae21295382b0","savedPayload":{"position":{"x":17956.836503031638,"y":17283.001286558785},"targetPosition":{"x":17881.4081782494,"y":17353.8577968001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"2a8d6136-b67f-468a-8c38-d5b30701b1b8","savedPayload":{"position":{"x":17881.4081782494,"y":17353.8577968001},"targetPosition":{"x":17668.377777042737,"y":17554.22977398563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"4 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextDown4","project":"Superalgos","id":"2fd80a46-7a01-4de0-b98e-3ac645d3b8ac","savedPayload":{"position":{"x":18056.683570826946,"y":17482.322672001843},"targetPosition":{"x":17957.292186229777,"y":17500.680774854074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"bc71245e-73f8-4442-ae03-7daa88da531c","savedPayload":{"position":{"x":17957.292186229777,"y":17500.680774854074},"targetPosition":{"x":17668.377777042737,"y":17554.22977398563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"5 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextDown5","project":"Superalgos","id":"382438e9-28c2-4ff2-851a-20fca2d466e0","savedPayload":{"position":{"x":18034.477888299105,"y":17703.25095653305},"targetPosition":{"x":17940.549373049496,"y":17665.121221212466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"d63906ec-7de0-4edf-8947-96baca8dc478","savedPayload":{"position":{"x":17940.549373049496,"y":17665.121221212466},"targetPosition":{"x":17668.377777042737,"y":17554.22977398563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"6 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextDown6","project":"Superalgos","id":"731bf25d-359a-463a-8a63-a0c5d3d0c306","savedPayload":{"position":{"x":17895.221023647977,"y":17876.78773095619},"targetPosition":{"x":17837.174799436663,"y":17794.404317970948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"d25e4daa-306d-47b9-98fb-c8bb25dec5e0","savedPayload":{"position":{"x":17837.174799436663,"y":17794.404317970948},"targetPosition":{"x":17668.377777042737,"y":17554.22977398563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"7 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextDown7","project":"Superalgos","id":"d0e9fb29-52c5-48e3-81c9-b6d74b42733f","savedPayload":{"position":{"x":17684.634174568328,"y":17948.33193934848},"targetPosition":{"x":17680.4401976853,"y":17847.64385705356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"22726c47-81aa-40ac-8b23-0b6f280f067c","savedPayload":{"position":{"x":17680.4401976853,"y":17847.64385705356},"targetPosition":{"x":17668.377777042737,"y":17554.22977398563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"8 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextDown8","project":"Superalgos","id":"e0ce0822-3eb2-4429-8a67-b41c8fbf0cdd","savedPayload":{"position":{"x":17469.183366731962,"y":17894.77882550172},"targetPosition":{"x":17520.086479319565,"y":17807.558696124273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"4ebe2345-d360-4de4-b58a-73a711fefa7a","savedPayload":{"position":{"x":17520.086479319565,"y":17807.558696124273},"targetPosition":{"x":17668.377777042737,"y":17554.22977398563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"9 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextDown9","project":"Superalgos","id":"80873b6e-5349-407f-993a-2b5247f73b3f","savedPayload":{"position":{"x":17317.474770160945,"y":17732.780647754662},"targetPosition":{"x":17406.872405278715,"y":17686.99291923555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"1738151b-da20-4cc6-8565-87a08de1c2db","savedPayload":{"position":{"x":17406.872405278715,"y":17686.99291923555},"targetPosition":{"x":17668.377777042737,"y":17554.22977398563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"10 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextDown10","project":"Superalgos","id":"253de26c-204d-49f7-af4c-2945ce71dee3","savedPayload":{"position":{"x":17292.972885107913,"y":17492.826814621163},"targetPosition":{"x":17387.590557007894,"y":17528.564160278467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c030125c-1b29-4743-bbd5-93a86a2bad7d","savedPayload":{"position":{"x":17387.590557007894,"y":17528.564160278467},"targetPosition":{"x":17668.377777042737,"y":17554.22977398563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c16dc1ed-9da7-45da-bf32-c205a1d52d55","savedPayload":{"position":{"x":17732.345581230198,"y":17807.745094490558},"targetPosition":{"x":17263.154398834504,"y":17434.755189042116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"194dbe67-1ef8-47a3-8d1f-d769f9d19b55","savedPayload":{"position":{"x":17263.154398834504,"y":17434.755189042116},"targetPosition":{"x":17263.15485888043,"y":17872.753753020574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a2224a2d-77d4-40ff-b632-a3629ce984f7","savedPayload":{"position":{"x":17521.151546757865,"y":17969.598525719965},"targetPosition":{"x":17521.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"37e312af-e076-47aa-a1cd-bf5b2e16127d","savedPayload":{"position":{"x":17521.151546757865,"y":18269.598525719965},"targetPosition":{"x":17521.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}} \ No newline at end of file +{"type":"Data Mine","name":"Samurai","config":"{\n\"codeName\": \"Samurai\"\n}","project":"Superalgos","sensorBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"Candles Probabilities","config":"{\n\"codeName\": \"Candles-Probabilities\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates SMAs for Time Frames of 01-hs and above.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Candles Probabilities","project":"Superalgos","id":"ab027b2e-4e02-4c71-8da5-6b43c37de20b","savedPayload":{"position":{"x":17017.002939912152,"y":17072.851514913826},"targetPosition":{"x":17333.108273730588,"y":17255.374459837658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"85c67513-347a-4948-9121-dee04543fcff"}}}],"outputDatasetFolders":[],"id":"1a087bb8-af2f-4384-85dd-c86d4b39aeff","savedPayload":{"position":{"x":17561.343925622532,"y":17819.598525719965},"targetPosition":{"x":17821.151546757865,"y":17969.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"09588f6b-2193-4c9e-bc33-2ac075e8e4f4","savedPayload":{"position":{"x":18333.022001614398,"y":16677.231587610237},"targetPosition":{"x":18439.170132387782,"y":17034.801415402228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Candles Probabilities Multi-Period-Market","config":"{ \n\"mainUtility\": \"Self Reference|Market Starting Point|Market Ending Point\"\n}","project":"Superalgos","id":"83721123-d178-4ab3-8d6f-da06e8416eb8","savedPayload":{"position":{"x":18478.065557950595,"y":16664.193728839367},"targetPosition":{"x":18439.170132387782,"y":17034.801415402228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"24ca1130-0386-4088-9417-48eb5d8ac96a"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"2cfeb861-3ce6-4f63-b974-acc395f744cc","savedPayload":{"position":{"x":18617.22326499627,"y":16707.770450870878},"targetPosition":{"x":18439.170132387782,"y":17034.801415402228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"08845d0d-a0a1-4d26-bb44-1072dfcf0b07","savedPayload":{"position":{"x":17671.151546757865,"y":17709.79090458463},"targetPosition":{"x":17821.151546757865,"y":17969.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"24ca1130-0386-4088-9417-48eb5d8ac96a","savedPayload":{"position":{"x":17821.151546757865,"y":17669.598525719965},"targetPosition":{"x":17821.151546757865,"y":17969.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"82529746-2044-48f0-b1f6-d1454ba5682d","savedPayload":{"position":{"x":17971.151546757865,"y":17709.79090458463},"targetPosition":{"x":17821.151546757865,"y":17969.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"05bcb9a5-4065-44cf-88db-77bb2b61b99a","savedPayload":{"position":{"x":18080.959167893197,"y":17819.598525719965},"targetPosition":{"x":17821.151546757865,"y":17969.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b9db962a-525e-409c-99b7-81fc0116b4b9","savedPayload":{"position":{"x":17821.151546757865,"y":17969.598525719965},"targetPosition":{"x":17821.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Describe what the process does.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Candles Probabilities","project":"Superalgos","id":"b16f70b2-d7a8-434c-a36c-a3200f3414ab","savedPayload":{"position":{"x":18346.151546757865,"y":17879.887094016965},"targetPosition":{"x":18271.151546757865,"y":18009.79090458463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"fa17370b-0a9c-4350-9cce-1df4be39b58c"}}}],"outputDatasetFolders":[],"id":"e156d437-ff71-4a1c-9239-abfc3b1dd3cb","savedPayload":{"position":{"x":18271.151546757865,"y":18009.79090458463},"targetPosition":{"x":18121.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Probabilities Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"f102b96d-854c-4fa1-9c1f-7689da34d35b","savedPayload":{"position":{"x":18396.638437383346,"y":17970.420241414722},"targetPosition":{"x":18380.959167893197,"y":18119.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"ac04d901-b5ee-4b27-abc7-e0eeb7d79cc3"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"6a656f04-04eb-4ee8-ac17-d87d8ada1264","savedPayload":{"position":{"x":18481.328758847027,"y":18008.126801898354},"targetPosition":{"x":18380.959167893197,"y":18119.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"86adad3f-7780-4a41-8ec5-5f2f9bdb1e10","savedPayload":{"position":{"x":18527.68130800327,"y":18088.4117720973},"targetPosition":{"x":18380.959167893197,"y":18119.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"d4417217-99e4-4644-8b6b-3d8168b01090","savedPayload":{"position":{"x":18517.99098653959,"y":18180.609022181336},"targetPosition":{"x":18380.959167893197,"y":18119.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"1cab7bdf-ecd1-4054-90ff-54f2cf683b2e","savedPayload":{"position":{"x":18380.959167893197,"y":18119.598525719965},"targetPosition":{"x":18121.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"ac04d901-b5ee-4b27-abc7-e0eeb7d79cc3","savedPayload":{"position":{"x":18421.151546757865,"y":18269.598525719965},"targetPosition":{"x":18121.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"34548656-528b-4e6b-89d9-ec56d7818f88","savedPayload":{"position":{"x":18380.959167893197,"y":18419.598525719965},"targetPosition":{"x":18121.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"3900deae-546f-4277-8fcb-e78c03a7fb0d","savedPayload":{"position":{"x":18271.151546757865,"y":18529.406146855297},"targetPosition":{"x":18121.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2212f26a-27aa-4e1f-b2aa-73ede1434477","savedPayload":{"position":{"x":18121.151546757865,"y":18269.598525719965},"targetPosition":{"x":17821.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Candles Probabilities","config":"{\n \"codeName\": \"Candles-Probabilities\",\n \"singularVariableName\": \"candlesProbability\",\n \"pluralVariableName\": \"candlesProbabilities\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"85c67513-347a-4948-9121-dee04543fcff","savedPayload":{"position":{"x":17942.504095914108,"y":18657.766313563836},"targetPosition":{"x":17821.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"fa17370b-0a9c-4350-9cce-1df4be39b58c","savedPayload":{"position":{"x":17867.504095914108,"y":18712.25700316424},"targetPosition":{"x":17821.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"7f630e20-9ead-4b62-a13a-d98dfde35569","savedPayload":{"position":{"x":17862.27256971715,"y":19003.54444570399},"targetPosition":{"x":17795.359509081267,"y":18929.22996315625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8356c5bd-3acf-46d5-bb60-5ca4784b0a48","savedPayload":{"position":{"x":17795.359509081267,"y":18929.22996315625},"targetPosition":{"x":17728.446448445382,"y":18854.91548060851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"abb35458-3007-4a6f-9926-b2034eef794f","savedPayload":{"position":{"x":17770.02878660893,"y":19050.545000755268},"targetPosition":{"x":17749.237617527157,"y":18952.73024068189},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"12a6b10a-22b5-459a-81d9-9de037af4f4e","savedPayload":{"position":{"x":17749.237617527157,"y":18952.73024068189},"targetPosition":{"x":17728.446448445382,"y":18854.91548060851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction Up","config":"{\n \"codeName\": \"directionUp\"\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.directionUp","project":"Superalgos","id":"cf8a68a3-d2e2-402a-ab5e-ae493f62b1ae","savedPayload":{"position":{"x":17666.643049570393,"y":19045.126783867538},"targetPosition":{"x":17697.544749007888,"y":18950.021132238024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b88c6ec-e33a-46e8-9a17-24e9158d476e","savedPayload":{"position":{"x":17697.544749007888,"y":18950.021132238024},"targetPosition":{"x":17728.446448445382,"y":18854.91548060851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction Down","config":"{\n \"codeName\": \"directionDown\"\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.directionDown","project":"Superalgos","id":"dcf8a2e7-3f11-4237-a3bb-433d99f3dde7","savedPayload":{"position":{"x":17579.817483349903,"y":18988.74160188028},"targetPosition":{"x":17654.131965897643,"y":18921.828541244395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"528446c8-b8b6-4b1c-94f6-0895ba1fba83","savedPayload":{"position":{"x":17654.131965897643,"y":18921.828541244395},"targetPosition":{"x":17728.446448445382,"y":18854.91548060851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction Side","config":"{\n \"codeName\": \"directionSide\"\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.directionSide","project":"Superalgos","id":"b1e369f5-64b2-4a81-b21b-52976b8949e8","savedPayload":{"position":{"x":17532.816928298624,"y":18896.49781877206},"targetPosition":{"x":17630.631688372003,"y":18875.706649690284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c2214ffd-7628-4ae3-9731-3c08329dfbd1","savedPayload":{"position":{"x":17630.631688372003,"y":18875.706649690284},"targetPosition":{"x":17728.446448445382,"y":18854.91548060851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f5fdf31a-a5bd-47b9-91a7-2698538af74e","savedPayload":{"position":{"x":17728.446448445382,"y":18854.91548060851},"targetPosition":{"x":17821.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"let candle = record.current // Our main dependencies are candles\nvariable.count++\n\nif (candle.direction === \"Up\") {\n variable.countUp++\n}\n\nif (candle.direction === \"Down\") {\n variable.countDown++\n}\n\nif (candle.direction === \"Side\") {\n variable.countSide++\n}\n\nvariable.directionUp = variable.countUp / variable.count\nvariable.directionDown = variable.countDown / variable.count\nvariable.directionSide = variable.countSide / variable.count\n","project":"Superalgos","id":"cd5da888-ac24-4ab0-a249-28237a881fa6","savedPayload":{"position":{"x":17456.42545552264,"y":19019.99773870049},"targetPosition":{"x":17517.43595198401,"y":18882.9659200541},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"97a50cc8-8086-43e2-8a2c-5ee5394676b4","savedPayload":{"position":{"x":17517.43595198401,"y":18882.9659200541},"targetPosition":{"x":17578.446448445382,"y":18745.934101407707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"variable.count = 0 \nvariable.countUp = 0\nvariable.countDown = 0\nvariable.countSide = 0\n","project":"Superalgos","id":"9d71f7ab-bffc-4898-bdbe-132b864e989c","savedPayload":{"position":{"x":17280.089879834897,"y":18777.292640388005},"targetPosition":{"x":17429.26816414014,"y":18761.613370897856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a1f47a1-f5f9-4e1b-9cdb-f0fff0e01e59","savedPayload":{"position":{"x":17429.26816414014,"y":18761.613370897856},"targetPosition":{"x":17578.446448445382,"y":18745.934101407707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6d6c4442-0674-4782-a79f-8f18b5d7a688","savedPayload":{"position":{"x":17578.446448445382,"y":18745.934101407707},"targetPosition":{"x":17821.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d0e9521c-2ba8-44ce-b81e-7baf841008e0","savedPayload":{"position":{"x":17821.151546757865,"y":18569.598525719965},"targetPosition":{"x":17821.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Candles Probabilities","id":"ecab3716-75a4-4752-b826-1d5df9ec7325"}}}],"id":"07fee895-ee90-4175-829a-df0bbd498178","savedPayload":{"position":{"x":17821.151546757865,"y":18269.598525719965},"targetPosition":{"x":17521.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Candles Channels Probabilities","config":"{\n\"codeName\": \"Candles-Channels-Probabilities\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates SMAs for Time Frames of 01-hs and above.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Candles Channels Probabilities","project":"Superalgos","id":"46154f7d-e7dc-423a-b297-8d6a1bc36a0c","savedPayload":{"position":{"x":18046.151546757865,"y":18179.887094016965},"targetPosition":{"x":17971.151546757865,"y":18309.79090458463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"fdee2b9c-3036-4db2-af42-b3507a6ffacf"}}}],"outputDatasetFolders":[],"id":"1c1a6fa0-6969-4353-81ff-56d0c82aee08","savedPayload":{"position":{"x":17971.151546757865,"y":18309.79090458463},"targetPosition":{"x":17821.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Channels Probabilities Multi-Period-Market","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"b08e8123-6edf-4b08-80e2-13e37b81d415","savedPayload":{"position":{"x":18172.273382244504,"y":18300.59552467628},"targetPosition":{"x":18080.959167893197,"y":18419.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"e1e05f4b-5d1f-463c-8c99-f09066fd485b"}}},{"type":"Status Dependency","name":"Candle Channels Multi-Period-Market","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"831c0a8c-aa09-480d-b790-54352d40ae93","savedPayload":{"position":{"x":18210.862978460864,"y":18344.598525719965},"targetPosition":{"x":18080.959167893197,"y":18419.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"902925d3-1d23-4894-9459-0be8df3965df"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Channels Objects Multi-Period-Market","project":"Superalgos","id":"53e98a6b-95d8-4b9b-aa37-71b565b73a6c","savedPayload":{"position":{"x":18229.67589709927,"y":18400.019596886956},"targetPosition":{"x":18080.959167893197,"y":18419.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"566b9df4-da86-4b4f-a3f4-ef8a76443714"}}}],"dataMineDataDependencies":[],"id":"f2f59d93-f4ba-47f0-bd3a-4b5dbe76841d","savedPayload":{"position":{"x":18080.959167893197,"y":18419.598525719965},"targetPosition":{"x":17821.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"e1e05f4b-5d1f-463c-8c99-f09066fd485b","savedPayload":{"position":{"x":18121.151546757865,"y":18569.598525719965},"targetPosition":{"x":17821.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candle Channels Multi-Period-Market","project":"Superalgos","id":"861617d8-0cff-491f-862d-11b5fd292351","savedPayload":{"position":{"x":18080.959167893197,"y":18719.598525719965},"targetPosition":{"x":17821.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"0ee514b6-0528-4ff9-a901-a519856fbee4"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"a05d99eb-b96a-4594-8b29-eb2b544a9036","savedPayload":{"position":{"x":17971.151546757865,"y":18829.406146855297},"targetPosition":{"x":17821.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"87fd6735-ee38-41aa-8a58-1a75f89aea5e","savedPayload":{"position":{"x":17821.151546757865,"y":18569.598525719965},"targetPosition":{"x":17521.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Describe what the process does.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Candles Channels Probabilities","project":"Superalgos","id":"1d0c0cce-6113-49d7-afac-85d9938d9655","savedPayload":{"position":{"x":17910.862978460864,"y":19094.598525719965},"targetPosition":{"x":17780.959167893197,"y":19019.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2774470d-7382-48e3-bd0a-957f0332a698"}}}],"outputDatasetFolders":[],"id":"8e168ff4-ad08-493f-b804-1786cf2e2431","savedPayload":{"position":{"x":17780.959167893197,"y":19019.598525719965},"targetPosition":{"x":17521.151546757865,"y":18869.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Channels Probabilities Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"abd6c6ca-b442-47bf-9820-ab2243bdf2fa","savedPayload":{"position":{"x":17820.329831063107,"y":19145.085416345446},"targetPosition":{"x":17671.151546757865,"y":19129.406146855297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"3fd6046f-ea3c-4b62-ab4e-7d84a5b9bb9f"}}},{"type":"Status Dependency","name":"Candle Channels Multi-Period-Daily","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"772d5c04-73a6-44eb-af42-bc94d6f24618","savedPayload":{"position":{"x":17782.623270579476,"y":19229.775737809126},"targetPosition":{"x":17671.151546757865,"y":19129.406146855297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"4a89ffcd-ef6d-4dd2-bbf6-6e2f1dba24cd"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"d9e96093-0e4b-4b5a-86bc-5361d4dd5744","savedPayload":{"position":{"x":17702.33830038053,"y":19276.12828696537},"targetPosition":{"x":17671.151546757865,"y":19129.406146855297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Channels Objects Multi-Period-Daily","project":"Superalgos","id":"bbee33b8-ad71-44c0-8900-9ff8527615a6","savedPayload":{"position":{"x":17610.141050296494,"y":19266.43796550169},"targetPosition":{"x":17671.151546757865,"y":19129.406146855297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8a7d224b-7571-4e1a-8b8f-8a35aa25dc63"}}}],"dataMineDataDependencies":[],"id":"6c06360e-fef9-4cb5-a94e-69cefb1e68d5","savedPayload":{"position":{"x":17671.151546757865,"y":19129.406146855297},"targetPosition":{"x":17521.151546757865,"y":18869.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"3fd6046f-ea3c-4b62-ab4e-7d84a5b9bb9f","savedPayload":{"position":{"x":17521.151546757865,"y":19169.598525719965},"targetPosition":{"x":17521.151546757865,"y":18869.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candle Channels Multi-Period-Daily","project":"Superalgos","id":"da961f64-aab7-46a7-b5ca-48246c13a938","savedPayload":{"position":{"x":17371.151546757865,"y":19129.406146855297},"targetPosition":{"x":17521.151546757865,"y":18869.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"e29dc92e-bbd9-45ae-ac52-1ee785e44928"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"a739e56b-d98c-46ca-8fcb-dc3508bf2d89","savedPayload":{"position":{"x":17261.343925622532,"y":19019.598525719965},"targetPosition":{"x":17521.151546757865,"y":18869.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b2261546-4415-4425-aedf-72bfc5c9fdba","savedPayload":{"position":{"x":17521.151546757865,"y":18869.598525719965},"targetPosition":{"x":17521.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Candles Channels Probabilities","config":"{\n \"codeName\": \"Candles-Channels-Probabilities\",\n \"singularVariableName\": \"candlesChannelsProbability\",\n \"pluralVariableName\": \"candlesChannelsProbabilities\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"fdee2b9c-3036-4db2-af42-b3507a6ffacf","savedPayload":{"position":{"x":16848.894510871272,"y":19267.583840781},"targetPosition":{"x":16941.14452983774,"y":18982.93617339545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"2774470d-7382-48e3-bd0a-957f0332a698","savedPayload":{"position":{"x":16698.86643863483,"y":19158.586916496635},"targetPosition":{"x":16941.14452983774,"y":18982.93617339545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"339d7be1-ca04-4765-a1ef-e4e94d8fa506","savedPayload":{"position":{"x":16503.268439492276,"y":19033.787399762095},"targetPosition":{"x":16234.555952707226,"y":19026.63608845484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"58a58c23-588e-44d5-a294-ff055b12823a","savedPayload":{"position":{"x":16234.555952707226,"y":19026.63608845484},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"5f29de35-5c6f-4adb-bc0a-5c4fbc540c79","savedPayload":{"position":{"x":16539.04992871576,"y":19129.804624677454},"targetPosition":{"x":16252.571064940254,"y":19047.436010578887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"29d683db-c178-4d5e-9023-8b38a44eeae1","savedPayload":{"position":{"x":16252.571064940254,"y":19047.436010578887},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Count All","config":"{\n \"codeName\": \"countAll\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.count.all","project":"Superalgos","id":"526500fd-4057-44b7-a130-0149cb982475","savedPayload":{"position":{"x":16394.283858441962,"y":19166.090283135156},"targetPosition":{"x":16121.928055678589,"y":19104.05659378152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2444603-4120-42fe-a655-3967d334e404","savedPayload":{"position":{"x":16121.928055678589,"y":19104.05659378152},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Count Up","config":"{\n \"codeName\": \"countUp\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.count.up","project":"Superalgos","id":"6501ff4c-1d67-4c0c-bcff-7037f4936720","savedPayload":{"position":{"x":16508.09780226663,"y":19247.832052319125},"targetPosition":{"x":16259.691828083058,"y":19128.252375402808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f1e38827-72ba-43c3-af89-462bda3ab733","savedPayload":{"position":{"x":16259.691828083058,"y":19128.252375402808},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Count Down","config":"{\n \"codeName\": \"countDown\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.count.down","project":"Superalgos","id":"ba9191b5-5130-44ea-887b-97c13c119022","savedPayload":{"position":{"x":16401.41119181429,"y":19269.002311716322},"targetPosition":{"x":16225.932841054051,"y":19174.711997054903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"20761e96-657c-453b-870b-33c65b105b1b","savedPayload":{"position":{"x":16225.932841054051,"y":19174.711997054903},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Count Side","config":"{\n \"codeName\": \"countSide\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.count.side","project":"Superalgos","id":"5a61ff39-689a-4fcf-8d71-833a83b1d916","savedPayload":{"position":{"x":16439.165243899177,"y":19406.607327422404},"targetPosition":{"x":16089.786635769422,"y":19168.125958743636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96a9ee06-1ae3-44c4-9ab6-ac6b165fbf8b","savedPayload":{"position":{"x":16089.786635769422,"y":19168.125958743636},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Max Up","config":"{\n \"codeName\": \"maxUp\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.max.up","project":"Superalgos","id":"0703509d-2bd1-4216-bdd1-1c1b4a34428b","savedPayload":{"position":{"x":16311.466820049776,"y":19357.36283281498},"targetPosition":{"x":16194.609654605221,"y":19251.289512275554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"24101201-acb1-4d59-b459-6d54443fa8c9","savedPayload":{"position":{"x":16194.609654605221,"y":19251.289512275554},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Max Down","config":"{\n \"codeName\": \"maxDown\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.max.down","project":"Superalgos","id":"29169bea-d6de-491e-a7de-03f3012d0a1a","savedPayload":{"position":{"x":16348.209449674367,"y":19492.213901398878},"targetPosition":{"x":16135.86963649631,"y":19238.4561173894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dacb52f7-f537-4f6d-9863-a571d0d8b075","savedPayload":{"position":{"x":16135.86963649631,"y":19238.4561173894},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Max Side","config":"{\n \"codeName\": \"maxSide\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.max.side","project":"Superalgos","id":"80356b40-83df-450c-9f47-f18f656b9ecd","savedPayload":{"position":{"x":16216.06201403254,"y":19442.908834066446},"targetPosition":{"x":16028.19920222339,"y":19407.952664448676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"65d31025-6197-4023-9710-62695081e6ab","savedPayload":{"position":{"x":16028.19920222339,"y":19407.952664448676},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up","config":"{\n \"codeName\": \"probabilityUp\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.probability.up","project":"Superalgos","id":"9667a091-1e5d-4333-903d-5c11e94418ba","savedPayload":{"position":{"x":16240.703817908408,"y":19577.90575529227},"targetPosition":{"x":16107.261536693728,"y":19253.187358894455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6386661f-d590-4ddb-a220-8e248e67c523","savedPayload":{"position":{"x":16107.261536693728,"y":19253.187358894455},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down","config":"{\n \"codeName\": \"probabilityDown\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.probability.down","project":"Superalgos","id":"a0459d9d-dba1-4a1c-886b-b18439204b74","savedPayload":{"position":{"x":16126.342282856505,"y":19509.06827262674},"targetPosition":{"x":16036.916376991961,"y":19267.02577366108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"784b6455-4277-4fdb-b57e-278cc47b69d2","savedPayload":{"position":{"x":16036.916376991961,"y":19267.02577366108},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side","config":"{\n \"codeName\": \"probabilitySide\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.probability.side","project":"Superalgos","id":"7f62f7d5-5b86-4d97-8732-301bdf8db799","savedPayload":{"position":{"x":16113.63303137321,"y":19648.89750331344},"targetPosition":{"x":15973.500666430173,"y":19276.3429545822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d1c041f4-81bf-471d-8365-cbfd12e1102c","savedPayload":{"position":{"x":15973.500666430173,"y":19276.3429545822},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up 1","config":"{\n \"codeName\": \"probabilityUp1\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayUp[1].probability.toFixed(2)","project":"Superalgos","id":"168044ac-5997-4b3a-a8c1-7d34290ac7f3","savedPayload":{"position":{"x":16021.393045603654,"y":19554.328525101384},"targetPosition":{"x":15967.02586979347,"y":19409.003018492345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2d9ee19a-7694-44eb-a6d1-4822e4731338","savedPayload":{"position":{"x":15967.02586979347,"y":19409.003018492345},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down 1","config":"{\n \"codeName\": \"probabilityDown1\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayDown[1].probability.toFixed(2)","project":"Superalgos","id":"468b91b1-4c86-4606-af93-d263be661ae3","savedPayload":{"position":{"x":15975.416402976989,"y":19688.632251002346},"targetPosition":{"x":15911.255099518654,"y":19291.40698986262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e27c1bb9-4986-4b9c-b620-65258db2bc29","savedPayload":{"position":{"x":15911.255099518654,"y":19291.40698986262},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side 1","config":"{\n \"codeName\": \"probabilitySide1\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arraySide[1].probability.toFixed(2)","project":"Superalgos","id":"22f8a518-bd3c-4d6c-81c3-53a298995517","savedPayload":{"position":{"x":15905.697737269154,"y":19574.820815342733},"targetPosition":{"x":15885.698768887287,"y":19419.173282048105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b667e2f8-7ede-4514-bb40-56a4043f1270","savedPayload":{"position":{"x":15885.698768887287,"y":19419.173282048105},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up 2","config":"{\n \"codeName\": \"probabilityUp2\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayUp[2].probability","project":"Superalgos","id":"00eb6eae-eaa0-48b1-baff-47bf23e2b58b","savedPayload":{"position":{"x":15833.400776382034,"y":19697.38134065442},"targetPosition":{"x":15849.456847352518,"y":19298.104806245872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3d827117-fa9c-4dd3-9276-d2954e592bc7","savedPayload":{"position":{"x":15849.456847352518,"y":19298.104806245872},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down 2","config":"{\n \"codeName\": \"probabilityDown2\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayDown[2].probability.toFixed(2)","project":"Superalgos","id":"47eb727a-2d95-4478-b028-ee983fe1dcdf","savedPayload":{"position":{"x":15784.535311187032,"y":19569.706228057476},"targetPosition":{"x":15798.931494037613,"y":19417.240827050053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ce463489-7789-459d-846d-1d4d999b9724","savedPayload":{"position":{"x":15798.931494037613,"y":19417.240827050053},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side 2","config":"{\n \"codeName\": \"probabilitySide2\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arraySide[2].probability.toFixed(2)","project":"Superalgos","id":"59c2243d-3340-4f65-a8bf-1ea0ddbcd9ec","savedPayload":{"position":{"x":15693.71698261303,"y":19678.093206415142},"targetPosition":{"x":15788.331607003576,"y":19293.72576285169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"89a3c63f-12ea-435e-8150-2c0965f3ec27","savedPayload":{"position":{"x":15788.331607003576,"y":19293.72576285169},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up 3","config":"{\n \"codeName\": \"probabilityUp3\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayUp[3].probability.toFixed(2)","project":"Superalgos","id":"37662cb1-05e1-4a4d-b753-09cd88973f7d","savedPayload":{"position":{"x":15670.984071772717,"y":19548.745763915264},"targetPosition":{"x":15710.923802015921,"y":19398.612910179523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9383f539-81a6-4e16-9a23-e6702c662e58","savedPayload":{"position":{"x":15710.923802015921,"y":19398.612910179523},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down 3","config":"{\n \"codeName\": \"probabilityDown3\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayDown[3].probability.toFixed(2)","project":"Superalgos","id":"3cf1663b-33ed-4bee-b3bb-a9d3ff81ecec","savedPayload":{"position":{"x":15556.54701333238,"y":19632.920166405092},"targetPosition":{"x":15729.366716147706,"y":19276.324096939046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fb60deb4-7593-4ffe-9d36-06f654ab1398","savedPayload":{"position":{"x":15729.366716147706,"y":19276.324096939046},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side 3","config":"{\n \"codeName\": \"probabilitySide3\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arraySide[3].probability.toFixed(2)","project":"Superalgos","id":"a4e814b0-4278-41b1-9275-319a21c12ad2","savedPayload":{"position":{"x":15562.962648572731,"y":19499.858047236325},"targetPosition":{"x":15632.077113255826,"y":19360.918686955054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d29e40d0-8b0a-49d7-9287-5ee1713eac4e","savedPayload":{"position":{"x":15632.077113255826,"y":19360.918686955054},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up 4","config":"{\n \"codeName\": \"probabilityUp4\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayUp[4].probability.toFixed(2)","project":"Superalgos","id":"d6ddfe51-ed65-4317-a6db-8dd7c29ced59","savedPayload":{"position":{"x":15435.206256656882,"y":19560.601310823782},"targetPosition":{"x":15673.671071471108,"y":19242.149674816414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"903d6dd1-9cd8-4e8a-9a9b-f554658ce564","savedPayload":{"position":{"x":15673.671071471108,"y":19242.149674816414},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down 4","config":"{\n \"codeName\": \"probabilityDown4\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayDown[4].probability.toFixed(2)","project":"Superalgos","id":"2bf22e1b-6a16-4199-8b72-4283ae8ea725","savedPayload":{"position":{"x":15466.037813388688,"y":19427.622315215827},"targetPosition":{"x":15562.816966353479,"y":19309.549779633475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0526403b-4378-41d5-b3fa-79bccdc31750","savedPayload":{"position":{"x":15562.816966353479,"y":19309.549779633475},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side 4","config":"{\n \"codeName\": \"probabilitySide4\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arraySide[4].probability.toFixed(2)","project":"Superalgos","id":"148cba98-c7b3-4278-ac40-c0805a2a31d9","savedPayload":{"position":{"x":15331.234400161324,"y":19466.720042865985},"targetPosition":{"x":15625.593060404542,"y":19201.295555221855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5b2780a7-e06f-4929-afa3-45931c83a70f","savedPayload":{"position":{"x":15625.593060404542,"y":19201.295555221855},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up 5","config":"{\n \"codeName\": \"probabilityUp5\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayUp[5].probability.toFixed(2)","project":"Superalgos","id":"833d2de2-62f0-4b87-9c8d-07da620c766f","savedPayload":{"position":{"x":15384.373400078966,"y":19341.387587791458},"targetPosition":{"x":15503.303832699337,"y":19245.184128156216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1f067a3e-21bd-434c-99d3-467032a2176a","savedPayload":{"position":{"x":15503.303832699337,"y":19245.184128156216},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down 5","config":"{\n \"codeName\": \"probabilityDown5\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayDown[5].probability.toFixed(2)","project":"Superalgos","id":"8bbd333f-8733-4c12-9f48-f44b6409f4ca","savedPayload":{"position":{"x":15243.754891064593,"y":19353.984592522866},"targetPosition":{"x":15586.922919575649,"y":19151.26899044574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2fa08b17-9fcc-4d03-b7f4-5f02c44183c6","savedPayload":{"position":{"x":15586.922919575649,"y":19151.26899044574},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side 5","config":"{\n \"codeName\": \"probabilitySide5\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arraySide[5].probability.toFixed(2)","project":"Superalgos","id":"ddcb3fba-ab34-4c66-aa82-991ce4a21f3e","savedPayload":{"position":{"x":15321.12660774892,"y":19245.74853584564},"targetPosition":{"x":15458.412422666483,"y":19170.361632868662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"491077de-5fe1-4cc4-98a4-72648541d766","savedPayload":{"position":{"x":15458.412422666483,"y":19170.361632868662},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up 6","config":"{\n \"codeName\": \"probabilityUp6\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayUp[6].probability.toFixed(2)","project":"Superalgos","id":"4c8885df-b460-492a-8fd7-7f6e692a1c18","savedPayload":{"position":{"x":15180.263946969335,"y":19223.05788861563},"targetPosition":{"x":15559.369475545765,"y":19093.64168629473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7628b231-d7c0-4f56-a875-c40f9dc5d453","savedPayload":{"position":{"x":15559.369475545765,"y":19093.64168629473},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down 6","config":"{\n \"codeName\": \"probabilityDown6\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayDown[6].probability.toFixed(2)","project":"Superalgos","id":"4a93051d-2d10-449c-b503-77dba2e9fe28","savedPayload":{"position":{"x":15281.591511057919,"y":19133.122707929244},"targetPosition":{"x":15429.412713226167,"y":19088.721343374564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78255cd6-c8f7-4533-a542-fe93e1b748f9","savedPayload":{"position":{"x":15429.412713226167,"y":19088.721343374564},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side 6","config":"{\n \"codeName\": \"probabilitySide6\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arraySide[6].probability.toFixed(2)","project":"Superalgos","id":"4182a108-ece7-4a17-b932-5c1d9a4756b6","savedPayload":{"position":{"x":15147.691286031895,"y":19085.79315112104},"targetPosition":{"x":15541.783193078645,"y":19034.120903242852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ca625650-fc68-403e-8bee-3c38a51bb70f","savedPayload":{"position":{"x":15541.783193078645,"y":19034.120903242852},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up 7","config":"{\n \"codeName\": \"probabilityUp7\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayUp[7].probability.toFixed(2)","project":"Superalgos","id":"b5ccdd41-090d-4123-af8b-30eb08c3c67b","savedPayload":{"position":{"x":15263.084859658768,"y":19016.38371229328},"targetPosition":{"x":15415.020312507564,"y":19000.27149158105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"91ee1783-d1e9-48b5-bae9-5db7887904da","savedPayload":{"position":{"x":15415.020312507564,"y":19000.27149158105},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down 7","config":"{\n \"codeName\": \"probabilityDown7\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayDown[7].probability.toFixed(2)","project":"Superalgos","id":"f4704dcd-2c14-47f7-9fc9-bd18d5582621","savedPayload":{"position":{"x":15140.917519529787,"y":18943.551616751254},"targetPosition":{"x":15536.102593000734,"y":18973.068857017053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cb6c389f-adbc-4dfe-8d4e-f12bb5a52077","savedPayload":{"position":{"x":15536.102593000734,"y":18973.068857017053},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side 7","config":"{\n \"codeName\": \"probabilitySide7\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arraySide[7].probability.toFixed(2)","project":"Superalgos","id":"4ac32582-3f5f-4e70-889b-44163296a6d4","savedPayload":{"position":{"x":15268.4101812802,"y":18898.63825193572},"targetPosition":{"x":15420.862016464627,"y":18911.93015819935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d0889582-9ed3-476b-a9cd-8d797a16d727","savedPayload":{"position":{"x":15420.862016464627,"y":18911.93015819935},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up 8","config":"{\n \"codeName\": \"probabilityUp8\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayUp[8].probability.toFixed(2)","project":"Superalgos","id":"6e5231b7-4720-4f4d-a665-7e1a404a46b5","savedPayload":{"position":{"x":15163.290278156906,"y":18804.207758370838},"targetPosition":{"x":15548.755997573116,"y":18908.39814880547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0065cbce-fa3b-42ef-a96f-ebd05efa496f","savedPayload":{"position":{"x":15548.755997573116,"y":18908.39814880547},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down 8","config":"{\n \"codeName\": \"probabilityDown8\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayDown[8].probability.toFixed(2)","project":"Superalgos","id":"f11b3a77-6419-4080-9676-975024dfb661","savedPayload":{"position":{"x":15294.54880570983,"y":18784.504069506853},"targetPosition":{"x":15444.330890976082,"y":18830.953225651778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b5cf9f1-6c7d-42be-95d1-afdbd3b3351f","savedPayload":{"position":{"x":15444.330890976082,"y":18830.953225651778},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side 8","config":"{\n \"codeName\": \"probabilitySide8\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arraySide[8].probability","project":"Superalgos","id":"f6edd4f5-a848-41cd-90dc-02f3847588db","savedPayload":{"position":{"x":15212.059133555722,"y":18667.836693700112},"targetPosition":{"x":15567.697863457455,"y":18849.18708672085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9f5d322b-0dc5-4ae9-bc17-5381f9a70c62","savedPayload":{"position":{"x":15567.697863457455,"y":18849.18708672085},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up 9","config":"{\n \"codeName\": \"probabilityUp9\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayUp[9].probability.toFixed(2)","project":"Superalgos","id":"321132b1-60e5-4a83-98de-ab4b96ccdeb7","savedPayload":{"position":{"x":15344.741709433343,"y":18678.172824316127},"targetPosition":{"x":15482.27871371504,"y":18751.349087565282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d4276b44-3c7e-490e-a5fe-d634f33f8daf","savedPayload":{"position":{"x":15482.27871371504,"y":18751.349087565282},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down 9","config":"{\n \"codeName\": \"probabilityDown9\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayDown[9].probability.toFixed(2)","project":"Superalgos","id":"a166f651-bde0-4120-88bc-1ca1cf43aa74","savedPayload":{"position":{"x":15287.514743377578,"y":18547.067166461537},"targetPosition":{"x":15599.924056426738,"y":18794.84902464901},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a81432a2-6778-4063-94bf-6618b1feeadd","savedPayload":{"position":{"x":15599.924056426738,"y":18794.84902464901},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side 9","config":"{\n \"codeName\": \"probabilitySide9\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arraySide[9].probability.toFixed(2)","project":"Superalgos","id":"1b71e277-d4a1-4e61-bbb1-bf7ca148575f","savedPayload":{"position":{"x":15414.835428129321,"y":18583.204995259577},"targetPosition":{"x":15535.517961603146,"y":18681.354006069465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"65426441-c082-4d12-94d9-de1d25ba697d","savedPayload":{"position":{"x":15535.517961603146,"y":18681.354006069465},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Up 10","config":"{\n \"codeName\": \"probabilityUp10\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayUp[10].probability.toFixed(2)","project":"Superalgos","id":"eb7ecf8d-987a-4425-a45a-c2d2c79e392a","savedPayload":{"position":{"x":15385.171844120032,"y":18444.191904374296},"targetPosition":{"x":15640.720142007307,"y":18747.961651578982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f30dad9f-282a-47f6-bc54-ee76701c824b","savedPayload":{"position":{"x":15640.720142007307,"y":18747.961651578982},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Down 10","config":"{\n \"codeName\": \"probabilityDown10\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayDown[10].probability.toFixed(2)","project":"Superalgos","id":"f0c4e430-c1dd-4c35-82f8-4a35623f2429","savedPayload":{"position":{"x":15504.458913795614,"y":18503.937422964158},"targetPosition":{"x":15598.515130802021,"y":18625.070901068124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a582ab2e-41f4-41b6-a281-14813c1f83e6","savedPayload":{"position":{"x":15598.515130802021,"y":18625.070901068124},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Probability Side 10","config":"{\n \"codeName\": \"probabilitySide10\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arraySide[10].probability.toFixed(2)","project":"Superalgos","id":"880c3925-d3ef-4ad8-a454-069e5ca4c188","savedPayload":{"position":{"x":15483.558977030665,"y":18364.571247309203},"targetPosition":{"x":15689.514173708576,"y":18709.621320830545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8045f35a-2f67-4a07-af52-a7a66343ae03","savedPayload":{"position":{"x":15689.514173708576,"y":18709.621320830545},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Up 1","config":"{\n \"codeName\": \"nextUp1\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayUp[1].greaterProbability.toFixed(2)","project":"Superalgos","id":"b53e83dd-00b7-460e-92ed-b5c4a24e5459","savedPayload":{"position":{"x":15638.544223214201,"y":18593.037499140562},"targetPosition":{"x":15710.19318748124,"y":18570.81556105862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"4a694c4e-5318-4298-b7f1-d9103f77ebf9","savedPayload":{"position":{"x":15710.19318748124,"y":18570.81556105862},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Down 1","config":"{\n \"codeName\": \"nextDown1\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayDown[1].greaterProbability.toFixed(2)","project":"Superalgos","id":"33d00317-95c1-4d35-be64-d513e1223b77","savedPayload":{"position":{"x":15653.585321656774,"y":18492.780564247143},"targetPosition":{"x":15732.491386443555,"y":18683.94798015546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"5d8da44f-fb39-4b0f-9cc7-fa9d32a4d209","savedPayload":{"position":{"x":15732.491386443555,"y":18683.94798015546},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Up 2","config":"{\n \"codeName\": \"nextUp2\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayUp[2].greaterProbability.toFixed(2)","project":"Superalgos","id":"bc732386-1448-4b48-bf55-70d5cd2196ba","savedPayload":{"position":{"x":15881.764206480573,"y":18485.464715821952},"targetPosition":{"x":15769.689016281238,"y":18665.895426256862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"ac16b3e9-e9d7-42ea-b428-9c8ec11d7e2b","savedPayload":{"position":{"x":15769.689016281238,"y":18665.895426256862},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Down 2","config":"{\n \"codeName\": \"nextDown2\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayDown[2].greaterProbability.toFixed(2)","project":"Superalgos","id":"cb9ff30d-2792-45ab-80e8-ca606f92758e","savedPayload":{"position":{"x":15731.895982517439,"y":18480.643758570957},"targetPosition":{"x":15785.717387636178,"y":18582.3573291342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"9acdb9db-3669-45a8-b02a-053f2faf6058","savedPayload":{"position":{"x":15785.717387636178,"y":18582.3573291342},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Up 3","config":"{\n \"codeName\": \"nextUp3\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayUp[3].greaterProbability.toFixed(2)","project":"Superalgos","id":"9f22f2e4-d461-4402-a9a4-248a815876c9","savedPayload":{"position":{"x":15832.59953100618,"y":18483.028906748168},"targetPosition":{"x":15859.709621598333,"y":18677.3044714439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"192e85df-e1bb-4292-ae05-ce740133fb29","savedPayload":{"position":{"x":15859.709621598333,"y":18677.3044714439},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Down 3","config":"{\n \"codeName\": \"nextDown3\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayDown[3].greaterProbability.toFixed(2)","project":"Superalgos","id":"e34c5d6c-6bfb-4733-a3e7-28e0e1bbd3a7","savedPayload":{"position":{"x":15966.971594216331,"y":18397.029853463508},"targetPosition":{"x":15869.469348606191,"y":18528.43327108489},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"4e60fdb7-fc23-4989-8706-7d81271f6225","savedPayload":{"position":{"x":15869.469348606191,"y":18528.43327108489},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Up 4","config":"{\n \"codeName\": \"nextUp4\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayUp[4].greaterProbability.toFixed(2)","project":"Superalgos","id":"09f989af-7270-4671-afda-2073458e77c7","savedPayload":{"position":{"x":15832.023178238243,"y":18607.138909109777},"targetPosition":{"x":16030.482017144222,"y":18588.00855568031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"2959103e-d4b4-4ead-8f6b-fbe06e89ff7a","savedPayload":{"position":{"x":16030.482017144222,"y":18588.00855568031},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Down 4","config":"{\n \"codeName\": \"nextDown4\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayDown[4].greaterProbability.toFixed(2)","project":"Superalgos","id":"e7eae73d-ee2e-477a-91ac-a2dbf6b8bba9","savedPayload":{"position":{"x":15959.994423111726,"y":18491.381784822708},"targetPosition":{"x":15910.42805859489,"y":18591.681957183988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"2a921871-4c5f-4424-a85f-9081ee420b55","savedPayload":{"position":{"x":15910.42805859489,"y":18591.681957183988},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Up 5","config":"{\n \"codeName\": \"nextUp5\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayUp[5].greaterProbability.toFixed(2)","project":"Superalgos","id":"e7709492-43e5-45e0-b94c-f6c63b5c4df4","savedPayload":{"position":{"x":16123.955925168098,"y":18607.331122910444},"targetPosition":{"x":15948.622767930177,"y":18664.267695717874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"5567d2d1-97d3-4551-ad1d-68b5fe8fca5e","savedPayload":{"position":{"x":15948.622767930177,"y":18664.267695717874},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Down 5","config":"{\n \"codeName\": \"nextDown5\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayDown[5].greaterProbability.toFixed(2)","project":"Superalgos","id":"95292d68-dcaa-475d-bb56-12634a6ef26e","savedPayload":{"position":{"x":16043.185595036211,"y":18499.71262661797},"targetPosition":{"x":15989.235838817825,"y":18687.67655917861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c4baa1b9-4879-4632-90bd-6b4aca0cc145","savedPayload":{"position":{"x":15989.235838817825,"y":18687.67655917861},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Up 6","config":"{\n \"codeName\": \"nextUp6\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayUp[6].greaterProbability.toFixed(2)","project":"Superalgos","id":"f459f2bb-0cf3-44da-a6e0-37495f592d7e","savedPayload":{"position":{"x":16137.826963339056,"y":18534.856375255848},"targetPosition":{"x":16137.545435580672,"y":18624.53898933548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"0c024e0d-6a5a-4631-9484-a563525dfad2","savedPayload":{"position":{"x":16137.545435580672,"y":18624.53898933548},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Down 6","config":"{\n \"codeName\": \"nextDown6\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayDown[6].greaterProbability.toFixed(2)","project":"Superalgos","id":"38310cb6-0f60-412b-b694-35a4d324f5c8","savedPayload":{"position":{"x":16324.09921546356,"y":18840.551118406926},"targetPosition":{"x":16023.375050728704,"y":18719.535308249884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"b8fb4ea6-e301-46e2-b3ca-7d1fa5d1dbb5","savedPayload":{"position":{"x":16023.375050728704,"y":18719.535308249884},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Up 7","config":"{\n \"codeName\": \"nextUp7\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayUp[7].greaterProbability.toFixed(2)","project":"Superalgos","id":"80bbe6d4-50ca-4ea2-b66c-ce3c71fd6fcc","savedPayload":{"position":{"x":16241.238871266254,"y":18593.77312625479},"targetPosition":{"x":16081.520302713863,"y":18680.47981914375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"7c29b4a9-94e3-4b6c-b359-03ef39258389","savedPayload":{"position":{"x":16081.520302713863,"y":18680.47981914375},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Down 7","config":"{\n \"codeName\": \"nextDown7\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayDown[7].greaterProbability.toFixed(2)","project":"Superalgos","id":"30b30cd2-4c85-4b3f-b589-358db9495959","savedPayload":{"position":{"x":16205.972438775614,"y":18647.01685371886},"targetPosition":{"x":16127.142363585615,"y":18705.96812990362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"5914dd39-dadd-4294-acb5-8088f81921df","savedPayload":{"position":{"x":16127.142363585615,"y":18705.96812990362},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Up 8","config":"{\n \"codeName\": \"nextUp8\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayUp[8].greaterProbability.toFixed(2)","project":"Superalgos","id":"c14ab122-acfa-46ff-8aa8-b6e4e01f29b4","savedPayload":{"position":{"x":16389.340637164256,"y":18732.344585153718},"targetPosition":{"x":16116.923558378494,"y":18871.746762879862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"da43c6d0-55f3-4422-9b23-24e6d19318ea","savedPayload":{"position":{"x":16116.923558378494,"y":18871.746762879862},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Down 8","config":"{\n \"codeName\": \"nextDown8\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayDown[8].greaterProbability.toFixed(2)","project":"Superalgos","id":"fac4074e-62de-461d-9c5e-78b492764124","savedPayload":{"position":{"x":16275.00204138623,"y":18729.703091712996},"targetPosition":{"x":16157.540923864828,"y":18739.33745909122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"2257ff95-2ad1-436c-8c75-d97ee7911623","savedPayload":{"position":{"x":16157.540923864828,"y":18739.33745909122},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Up9","config":"{\n \"codeName\": \"nextUp9\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayUp[9].greaterProbability.toFixed(2)","project":"Superalgos","id":"a5634a8e-ac5f-4542-98ab-6fbc7c6799e9","savedPayload":{"position":{"x":16244.35381360838,"y":18758.42021868722},"targetPosition":{"x":16196.433716556057,"y":18808.036829467783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"89252867-2e51-49cc-8061-710857117262","savedPayload":{"position":{"x":16196.433716556057,"y":18808.036829467783},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Down 9","config":"{\n \"codeName\": \"nextDown9\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayDown[9].greaterProbability.toFixed(2)","project":"Superalgos","id":"09d70a53-4761-4fb7-ac02-3bc9d3c9f118","savedPayload":{"position":{"x":16341.454658970593,"y":18821.546387694332},"targetPosition":{"x":16304.718624097368,"y":18879.90990296522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"3fb2d973-7ed0-4266-9bbe-927c880f27fc","savedPayload":{"position":{"x":16304.718624097368,"y":18879.90990296522},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Up 10","config":"{\n \"codeName\": \"nextUp10\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayUp[10].greaterProbability.toFixed(2)","project":"Superalgos","id":"971a4486-0ee2-4451-99f8-2d1183e3519c","savedPayload":{"position":{"x":16230.759711105857,"y":19023.299616676733},"targetPosition":{"x":16152.304282294463,"y":18880.96375863695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c5370b4b-5736-4f38-b026-7ee211e550f0","savedPayload":{"position":{"x":16152.304282294463,"y":18880.96375863695},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Down 10","config":"{\n \"codeName\": \"nextDown10\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.arrayDown[10].greaterProbability.toFixed(2)","project":"Superalgos","id":"aa0f0d5f-47b7-4c30-a8e5-c0204646b0b8","savedPayload":{"position":{"x":16347.22649218297,"y":18972.384684069548},"targetPosition":{"x":16235.041448311687,"y":18921.33496235319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"8393bb69-756c-4809-95b1-71b459e49d89","savedPayload":{"position":{"x":16235.041448311687,"y":18921.33496235319},"targetPosition":{"x":15854.937561745985,"y":18982.969208117596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3a8e6c45-0172-4d5d-913d-4d9da74a66c2","savedPayload":{"position":{"x":15854.946749139024,"y":18982.941220285935},"targetPosition":{"x":16941.14452983774,"y":18982.93617339545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"let channel = record.current // Our main dependencies are candles\nvariable.count.all++\n\nif (channel.direction === \"Up\") {\n\n variable.count.up++\n\n if (channel.period > variable.max.up) { variable.max.up = channel.period }\n\n if (channel.period <= variable.MAX_PERIODS) {\n let data = variable.arrayUp[channel.period]\n data.count++\n data.probability = data.count / variable.count.up\n variable.arrayUp[channel.period] = data\n }\n\n for (let i = 1; i <= variable.MAX_PERIODS; i++) {\n if (channel.period > i) {\n let data = variable.arrayUp[i]\n data.greaterCount++\n data.greaterProbability = data.greaterCount / variable.count.up\n variable.arrayUp[i] = data\n }\n }\n}\n\nif (channel.direction === \"Down\") {\n\n variable.count.down++\n\n if (channel.period > variable.max.down) { variable.max.down = channel.period }\n\n if (channel.period <= variable.MAX_PERIODS) {\n let data = variable.arrayDown[channel.period]\n data.count++\n data.probability = data.count / variable.count.down\n variable.arrayDown[channel.period] = data\n }\n\n for (let i = 1; i <= variable.MAX_PERIODS; i++) {\n if (channel.period > i) {\n let data = variable.arrayDown[i]\n data.greaterCount++\n data.greaterProbability = data.greaterCount / variable.count.up\n variable.arrayDown[i] = data\n }\n }\n}\n\nif (channel.direction === \"Side\") {\n\n variable.count.side++\n\n if (channel.period > variable.max.side) { variable.max.side = channel.period }\n\n if (channel.period <= variable.MAX_PERIODS) {\n let data = variable.arraySide[channel.period]\n data.count++\n data.probability = data.count / variable.count.side\n variable.arraySide[channel.period] = data\n }\n\n for (let i = 1; i <= variable.MAX_PERIODS; i++) {\n if (channel.period > i) {\n let data = variable.arraySide[i]\n data.greaterCount++\n data.greaterProbability = data.greaterCount / variable.count.up\n variable.arraySide[i] = data\n }\n }\n}\n\nvariable.probability.up = variable.count.up / variable.count.all\nvariable.probability.down = variable.count.down / variable.count.all\nvariable.probability.side = variable.count.side / variable.count.all\n\n","project":"Superalgos","id":"c15afb69-a887-4bb7-90b0-7828ed44cc36","savedPayload":{"position":{"x":16415.49350893315,"y":18770.795871478007},"targetPosition":{"x":16551.440836957383,"y":18785.14191681551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6363cb92-acac-4e9f-b390-e759c691b3f4","savedPayload":{"position":{"x":16551.440836957383,"y":18785.14191681551},"targetPosition":{"x":16686.79573286535,"y":18798.59917415872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"variable = {\n MAX_PERIODS: 10,\n count: {\n all: 0,\n up: 0,\n down: 0,\n side: 0\n },\n max: {\n up: 0,\n down: 0,\n side: 0\n },\n probability: {\n up: 0,\n down: 0,\n side: 0\n },\n arrayUp: [],\n arrayDown: [],\n arraySide: []\n}\n\nfor (let i = 0; i <= variable.MAX_PERIODS; i++) {\n let dataUp = {\n count: 0,\n probability: 0,\n greaterCount: 0,\n greaterProbability: 0\n }\n let dataDown = {\n count: 0,\n probability: 0,\n greaterCount: 0,\n greaterProbability: 0\n }\n let dataSide = {\n count: 0,\n probability: 0,\n greaterCount: 0,\n greaterProbability: 0\n }\n variable.arrayUp.push(dataUp)\n variable.arrayDown.push(dataDown)\n variable.arraySide.push(dataSide)\n}\n","project":"Superalgos","id":"3ab58fbc-1e9c-42c6-9396-85f2476039ea","savedPayload":{"position":{"x":16596.823147467745,"y":18508.355992138244},"targetPosition":{"x":16653.30873765082,"y":18633.815449435402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"51e8fb5d-98ce-4eae-9b92-cdea22017c3e","savedPayload":{"position":{"x":16653.30873765082,"y":18633.815449435402},"targetPosition":{"x":16686.79573286535,"y":18798.59917415872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"216d8d3f-305e-41d7-844f-044244ba4c86","savedPayload":{"position":{"x":16686.79573286535,"y":18798.59917415872},"targetPosition":{"x":16941.14452983774,"y":18982.93617339545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6f5208bc-786c-4fe8-876a-e1d3550db36d","savedPayload":{"position":{"x":17221.151546757865,"y":18569.598525719965},"targetPosition":{"x":17521.151546757865,"y":18569.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Candles Channels Probabilities","id":"194dbe67-1ef8-47a3-8d1f-d769f9d19b55"}}}],"id":"4309c865-1bac-404b-8904-5ac6405d2993","savedPayload":{"position":{"x":17521.151546757865,"y":18569.598525719965},"targetPosition":{"x":17521.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"plotters":[{"type":"Plotter","name":"Candles Probabilities","config":"{\n\"codeName\": \"Candles-Probabilities\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Candles Probabilities","config":"{\n\t\"codeName\": \"Candles-Probabilities\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Candles Probabilities","config":"{ \n\"codeName\": \"Candles-Probabilities\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Direction Up","config":"{\n \"valueDecimals\": 6\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.directionUp","project":"Superalgos","id":"896d5095-3ca6-47b8-8108-145e2e363f32","savedPayload":{"position":{"x":16025.97808509376,"y":18672.41029433825},"targetPosition":{"x":16026.28619829056,"y":18472.437718250025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1b7eea96-210d-4fd8-a160-76f7bca629ba","savedPayload":{"position":{"x":16026.28619829056,"y":18472.437718250025},"targetPosition":{"x":16026.258134614276,"y":18272.593625627633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Direction Down","config":"{\n \"valueDecimals\": 6\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.directionDown","project":"Superalgos","id":"28b81006-e70c-4608-a695-bce4a8933a8f","savedPayload":{"position":{"x":15626.063888363082,"y":18272.595774909085},"targetPosition":{"x":15826.366683835327,"y":18272.590443216668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"11a6da40-b053-4c51-a929-af711aa02cf6","savedPayload":{"position":{"x":15826.366683835327,"y":18272.590443216668},"targetPosition":{"x":16026.258134614276,"y":18272.593625627633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Direction Side","config":"{\n \"valueDecimals\": 6\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.directionSide","project":"Superalgos","id":"fbd5a4b7-18ff-47d5-82b8-c600cc4fac99","savedPayload":{"position":{"x":16025.972320311157,"y":17872.766591033513},"targetPosition":{"x":16026.283106124949,"y":18072.729364745723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"46500c39-2a45-4836-ab76-baaac8b98100","savedPayload":{"position":{"x":16026.283106124949,"y":18072.729364745723},"targetPosition":{"x":16026.258134614276,"y":18272.593625627633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3102069a-4a2a-41e6-aa8d-f71dc48148f2","savedPayload":{"position":{"x":16026.258134614276,"y":18272.593625627633},"targetPosition":{"x":16425.300993389905,"y":18272.596584446146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ecab3716-75a4-4752-b826-1d5df9ec7325","savedPayload":{"position":{"x":16425.300993389905,"y":18272.596584446146},"targetPosition":{"x":16863.33295866748,"y":18272.595526064877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bf60e853-e860-4fbf-8922-c7430406b12d","savedPayload":{"position":{"x":17221.151546757865,"y":18269.598525719965},"targetPosition":{"x":17521.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Candles Channels Probabilities","config":"{\n\"codeName\": \"Candles-Channels-Probabilities\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Candles Channels Probabilities","config":"{ \n\"codeName\": \"Candles-Channels-Probabilities\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Candles Channels Probabilities","config":"{ \n\"codeName\": \"Candles Channels Probabilities\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Count All","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.countAll","project":"Superalgos","id":"fa576991-5a1c-4a7b-b6f0-16a26b50b534","savedPayload":{"position":{"x":17606.981924815067,"y":17532.628465793307},"targetPosition":{"x":17251.58028641225,"y":17432.08915705172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0ead2e06-daea-4212-aff2-3564d6f1ac14","savedPayload":{"position":{"x":17251.58028641225,"y":17432.08915705172},"targetPosition":{"x":16895.888152631214,"y":17323.714087092136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Count Up","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.countUp","project":"Superalgos","id":"b495344a-0ee6-4b91-a38e-c59728bc4fa8","savedPayload":{"position":{"x":17378.76339999789,"y":17867.16824439164},"targetPosition":{"x":17130.3302538366,"y":17596.687513013247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"786019d8-2fec-4feb-a784-d32f35c013e6","savedPayload":{"position":{"x":17130.3302538366,"y":17596.687513013247},"targetPosition":{"x":16895.888152631214,"y":17323.714087092136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Count Down","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.countDown","project":"Superalgos","id":"1cd50ef3-9d6e-4c28-9789-785d250dfd77","savedPayload":{"position":{"x":17020.320808272485,"y":18047.48094539746},"targetPosition":{"x":16958.067968920164,"y":17685.787930801598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"adebe92f-1d1a-4afb-b61d-7081f6b290f4","savedPayload":{"position":{"x":16958.067968920164,"y":17685.787930801598},"targetPosition":{"x":16895.888152631214,"y":17323.714087092136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Count Side","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.countSide","project":"Superalgos","id":"3aa9ba59-e653-4247-8cbf-4905f7382cc8","savedPayload":{"position":{"x":16609.39551544905,"y":18000.175772843555},"targetPosition":{"x":16752.597737113392,"y":17662.107240727924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fdb8d804-d6e6-4fa7-a71a-a79f4bb5c00a","savedPayload":{"position":{"x":16752.597737113392,"y":17662.107240727924},"targetPosition":{"x":16895.888152631214,"y":17323.714087092136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Max Periods Up","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.maxUp","project":"Superalgos","id":"9ae88e84-07a2-4398-a17b-069443eef06a","savedPayload":{"position":{"x":16288.74674675997,"y":17738.080418995392},"targetPosition":{"x":16592.21911292496,"y":17530.94773060307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f2fb198b-3027-4037-8b77-656c1a09e6fe","savedPayload":{"position":{"x":16592.21911292496,"y":17530.94773060307},"targetPosition":{"x":16895.888152631214,"y":17323.714087092136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Max Periods Down","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.maxDown","project":"Superalgos","id":"5ab6f852-4d60-42e9-a268-7719ae05c039","savedPayload":{"position":{"x":16160.781514887978,"y":17344.04372823146},"targetPosition":{"x":16528.206419711823,"y":17333.865003606603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5836b0c5-4a10-4efa-b732-cfccb42f7bb3","savedPayload":{"position":{"x":16528.206419711823,"y":17333.865003606603},"targetPosition":{"x":16895.888152631214,"y":17323.714087092136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Max Periods Side","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.maxSide","project":"Superalgos","id":"9bed7e40-98c0-4894-afb3-f65c8df9feef","savedPayload":{"position":{"x":16266.144911407158,"y":16943.91186364417},"targetPosition":{"x":16580.897176974588,"y":17133.736259869605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"85e693e8-b634-4cb1-b983-6bd0d125d95b","savedPayload":{"position":{"x":16580.897176974588,"y":17133.736259869605},"targetPosition":{"x":16895.888152631214,"y":17323.714087092136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Probability Up","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp","project":"Superalgos","id":"e68177d3-b01e-4d0d-a1f0-0cab3cdf295e","savedPayload":{"position":{"x":16571.4101520004,"y":16663.66517488857},"targetPosition":{"x":16733.55694992239,"y":16993.580808556377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9187cf3a-e693-4f3f-a675-a0b677ebbf47","savedPayload":{"position":{"x":16733.55694992239,"y":16993.580808556377},"targetPosition":{"x":16895.888152631214,"y":17323.714087092136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Probability Down","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown","project":"Superalgos","id":"1053b129-d1bf-4c28-9a67-bfa678f3149b","savedPayload":{"position":{"x":16979.29439689928,"y":16592.95321329056},"targetPosition":{"x":16937.6035629527,"y":16958.295548665563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e023b233-b20a-4645-a96b-9ca6f9ed1f2d","savedPayload":{"position":{"x":16937.6035629527,"y":16958.295548665563},"targetPosition":{"x":16895.888152631214,"y":17323.714087092136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Probability Side","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide","project":"Superalgos","id":"ec9d0a16-b97b-44e0-a659-8a4876f759fc","savedPayload":{"position":{"x":17341.94503274795,"y":16729.92477571676},"targetPosition":{"x":17115.290510777344,"y":17021.667152922666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0897183b-3295-4559-93b5-d961822f9e3f","savedPayload":{"position":{"x":17115.290510777344,"y":17021.667152922666},"targetPosition":{"x":16895.888152631214,"y":17323.714087092136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9b4851ba-9cd0-42e4-9929-6e4650800b94","savedPayload":{"position":{"x":16794.171231043354,"y":17807.716798385685},"targetPosition":{"x":17263.154398834504,"y":17434.755189042116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Candles Channels Up Probabilities","config":"{ \n\"codeName\": \"Candles Channels Up Probabilities\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"1 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp1","project":"Superalgos","id":"07e00144-4d7c-4be0-9446-fcce6a7c0e6a","savedPayload":{"position":{"x":16976.68360825868,"y":17865.10075312756},"targetPosition":{"x":16945.52718444125,"y":17315.4013398115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bc260d63-484b-4fb2-850a-c8a57b386c95","savedPayload":{"position":{"x":16945.52718444125,"y":17315.4013398115},"targetPosition":{"x":16914.403357707823,"y":16765.625755119305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"2 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp2","project":"Superalgos","id":"35ca47e6-f52a-4ee5-9839-b2841f987d78","savedPayload":{"position":{"x":16372.447210036036,"y":17724.41687415103},"targetPosition":{"x":16643.375812603404,"y":17244.989610471075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4908d680-f84a-49d5-ba5f-7abec1219b9f","savedPayload":{"position":{"x":16643.375812603404,"y":17244.989610471075},"targetPosition":{"x":16914.403357707823,"y":16765.625755119305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"3 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp3","project":"Superalgos","id":"44a7d661-accf-4962-90f0-1ab53c99c5ab","savedPayload":{"position":{"x":15939.922941426772,"y":17279.353714246783},"targetPosition":{"x":16427.112258152934,"y":17022.494414007604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e658351e-118c-481f-8387-53e1c7dc3d1e","savedPayload":{"position":{"x":16427.112258152934,"y":17022.494414007604},"targetPosition":{"x":16914.403357707823,"y":16765.625755119305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"4 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp4","project":"Superalgos","id":"a6387b2c-5f86-44e3-a298-a25fb5667e37","savedPayload":{"position":{"x":15816.686276107226,"y":16671.35657815776},"targetPosition":{"x":16365.493396836253,"y":16718.471568492998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9679e258-89b4-4cbc-81e0-78c2d53f2a76","savedPayload":{"position":{"x":16365.493396836253,"y":16718.471568492998},"targetPosition":{"x":16914.403357707823,"y":16765.625755119305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"5 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp5","project":"Superalgos","id":"7867c03a-d26f-4ea3-a7d2-6e3042e4a5e9","savedPayload":{"position":{"x":16041.979233687129,"y":16092.813961423244},"targetPosition":{"x":16478.148970292066,"y":16429.17590509398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"000c1693-1ca1-481f-99ad-64dc0b3d864f","savedPayload":{"position":{"x":16478.148970292066,"y":16429.17590509398},"targetPosition":{"x":16914.403357707823,"y":16765.625755119305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"6 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp6","project":"Superalgos","id":"8dde6fd4-76ad-43cd-b65a-c8b2cd344fde","savedPayload":{"position":{"x":16544.301461593972,"y":15727.876109652008},"targetPosition":{"x":16729.33011665096,"y":16246.689656796341},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d59a341d-36d1-4780-86f0-332a60cdc7a8","savedPayload":{"position":{"x":16729.33011665096,"y":16246.689656796341},"targetPosition":{"x":16914.403357707823,"y":16765.625755119305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"7 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp7","project":"Superalgos","id":"3e3d36c0-c609-47cd-b50c-b67ef9033d13","savedPayload":{"position":{"x":17163.72098692383,"y":15692.463720397624},"targetPosition":{"x":17039.06976050387,"y":16228.978597587791},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"15c0e7d0-aef2-485a-8e47-225002493c8a","savedPayload":{"position":{"x":17039.06976050387,"y":16228.978597587791},"targetPosition":{"x":16914.403357707823,"y":16765.625755119305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"8 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp8","project":"Superalgos","id":"915d2648-2b9f-4594-904d-3310da162972","savedPayload":{"position":{"x":17704.206772840706,"y":15997.82004143336},"targetPosition":{"x":17309.332917560372,"y":16381.656357354226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3c5cc745-31f0-442c-86ab-2de4fe641a8a","savedPayload":{"position":{"x":17309.332917560372,"y":16381.656357354226},"targetPosition":{"x":16914.403357707823,"y":16765.625755119305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"9 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp9","project":"Superalgos","id":"7ecb2b5b-f932-48fe-95a0-9c2f86d771f9","savedPayload":{"position":{"x":17993.836671184374,"y":16546.64149946571},"targetPosition":{"x":17454.099299759273,"y":16656.02811742707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"64ef6260-28c6-4aca-9899-5b5e422716c8","savedPayload":{"position":{"x":17454.099299759273,"y":16656.02811742707},"targetPosition":{"x":16914.403357707823,"y":16765.625755119305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"10 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityUp10","project":"Superalgos","id":"4a25b034-61a2-4050-85c7-9e39c5ebbafb","savedPayload":{"position":{"x":17940.9763520172,"y":17164.51299349597},"targetPosition":{"x":17427.71296558897,"y":16965.031651298894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"57f242de-4438-408a-8e7d-17554c1d8602","savedPayload":{"position":{"x":17427.71296558897,"y":16965.031651298894},"targetPosition":{"x":16914.403357707823,"y":16765.625755119305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c9b2fa2a-7993-4602-9c5c-180175745dd4","savedPayload":{"position":{"x":16679.524090396844,"y":17301.668228302253},"targetPosition":{"x":17263.154398834504,"y":17434.755189042116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Candles Channels Down Probabilities","config":"{ \n\"codeName\": \"Candles Channels Down Probabilities\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"1 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown1","project":"Superalgos","id":"23dca426-62bb-472d-a631-6de325f9f9e3","savedPayload":{"position":{"x":16535.20460234588,"y":17164.70411848688},"targetPosition":{"x":17048.558969514106,"y":16965.143147160114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"82ea7539-87d8-4801-8a55-5d72341f7981","savedPayload":{"position":{"x":17048.558969514106,"y":16965.143147160114},"targetPosition":{"x":17561.95326687484,"y":16765.65335965308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"2 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown2","project":"Superalgos","id":"9f42086f-9981-47d0-a6ca-40b9f8cd555b","savedPayload":{"position":{"x":16482.33899897167,"y":16546.663886847527},"targetPosition":{"x":17022.163990752946,"y":16656.06293128033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5659eebc-8ea9-4d6c-bcc0-1bb7cfa83c8a","savedPayload":{"position":{"x":17022.163990752946,"y":16656.06293128033},"targetPosition":{"x":17561.95326687484,"y":16765.65335965308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"3 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown3","project":"Superalgos","id":"1024ff8c-10a7-4bc0-bfd5-6fde53b25151","savedPayload":{"position":{"x":16772.037677486867,"y":15997.759521790189},"targetPosition":{"x":17166.97139807511,"y":16381.647174707954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4e4162b5-9989-4ced-954c-024c643b354b","savedPayload":{"position":{"x":17166.97139807511,"y":16381.647174707954},"targetPosition":{"x":17561.95326687484,"y":16765.65335965308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"4 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown4","project":"Superalgos","id":"cfee4218-a9d7-4649-8118-c68f4c04917d","savedPayload":{"position":{"x":17312.652986836183,"y":15692.528429059976},"targetPosition":{"x":17437.297837958733,"y":16229.027752262722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"40026d30-b3ce-4a0c-8ae4-50ab1847b6f8","savedPayload":{"position":{"x":17437.297837958733,"y":16229.027752262722},"targetPosition":{"x":17561.95326687484,"y":16765.65335965308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"5 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown5","project":"Superalgos","id":"49be0cfe-1c4e-4bee-96c5-93cc97022dfc","savedPayload":{"position":{"x":17932.02965631574,"y":15727.984198051336},"targetPosition":{"x":17747.015850360956,"y":16246.75780339765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2534a50-5cc5-4fca-a800-859c88427ab3","savedPayload":{"position":{"x":17747.015850360956,"y":16246.75780339765},"targetPosition":{"x":17561.95326687484,"y":16765.65335965308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"6 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown6","project":"Superalgos","id":"a9411068-45d1-409c-b8d3-91750a9f1f61","savedPayload":{"position":{"x":18434.320675409195,"y":16092.89357556531},"targetPosition":{"x":17998.181936228215,"y":16429.227639467244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"043a6c35-a878-4082-8b98-b58ca01fb5a0","savedPayload":{"position":{"x":17998.181936228215,"y":16429.227639467244},"targetPosition":{"x":17561.95326687484,"y":16765.65335965308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"7 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown7","project":"Superalgos","id":"a2d057f6-857e-41cc-b88e-ef6240cda541","savedPayload":{"position":{"x":18659.468634970537,"y":16671.408010183877},"targetPosition":{"x":18110.768724143443,"y":16718.507258266545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"982ba082-d3a1-4c25-a712-fd22585e4473","savedPayload":{"position":{"x":18110.768724143443,"y":16718.507258266545},"targetPosition":{"x":17561.95326687484,"y":16765.65335965308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"8 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown8","project":"Superalgos","id":"6837746d-276b-473f-9a1b-6a2ee79bdb4d","savedPayload":{"position":{"x":18536.2485600019,"y":17279.188226498587},"targetPosition":{"x":18049.14959507045,"y":17022.428867394097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9379c93b-0cdd-40b0-a8b0-fc1019f5b082","savedPayload":{"position":{"x":18049.14959507045,"y":17022.428867394097},"targetPosition":{"x":17561.95326687484,"y":16765.65335965308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"9 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown9","project":"Superalgos","id":"f59472a9-6507-4c28-8820-06d2ff4d4cc7","savedPayload":{"position":{"x":18103.810109646503,"y":17724.04312667822},"targetPosition":{"x":17832.938995814315,"y":17244.836622321098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d612b2c7-503f-4327-a7d3-a6d0ca9e7b91","savedPayload":{"position":{"x":17832.938995814315,"y":17244.836622321098},"targetPosition":{"x":17561.95326687484,"y":16765.65335965308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"10 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilityDown10","project":"Superalgos","id":"0c2a9662-fb18-45c1-8f0a-fb7339601cd2","savedPayload":{"position":{"x":17499.7524271772,"y":17864.69798846866},"targetPosition":{"x":17530.889304381464,"y":17315.230774780706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f766ff2-0076-41b3-836d-4cbba53b6b4b","savedPayload":{"position":{"x":17530.889304381464,"y":17315.230774780706},"targetPosition":{"x":17561.95326687484,"y":16765.65335965308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"af3d5d0c-21a1-4fe7-83f9-9afabd3cf16f","savedPayload":{"position":{"x":17003.51900665623,"y":16895.515234213486},"targetPosition":{"x":17263.154398834504,"y":17434.755189042116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Candles Channels Side Probabilities","config":"{ \n\"codeName\": \"Candles Channels Side Probabilities\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"1 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide1","project":"Superalgos","id":"f7bc6a24-6277-4c81-89cf-b07a285b9fda","savedPayload":{"position":{"x":16614.56259286925,"y":16883.331299276993},"targetPosition":{"x":17164.936669710114,"y":16909.57579156544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1ae051e6-771f-4332-87fa-ccb3faa468d5","savedPayload":{"position":{"x":17164.936669710114,"y":16909.57579156544},"targetPosition":{"x":17715.243195523326,"y":16935.935863882543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"2 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide2","project":"Superalgos","id":"cfc70522-309f-4f8a-962d-e98bbd6bfc06","savedPayload":{"position":{"x":16830.707939977496,"y":16276.39542437472},"targetPosition":{"x":17279.36281883726,"y":16595.924768114026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c8f2d5bb-14c3-4094-bc2b-2b5c46f4dc59","savedPayload":{"position":{"x":17279.36281883726,"y":16595.924768114026},"targetPosition":{"x":17715.243195523326,"y":16935.935863882543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"3 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide3","project":"Superalgos","id":"269c5548-643a-4c77-a4bb-33d3741b5aa2","savedPayload":{"position":{"x":17305.992101278516,"y":15913.016238315331},"targetPosition":{"x":17510.617379832995,"y":16424.410730013595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ebc2b7eb-e399-4025-a222-0c288a218b9c","savedPayload":{"position":{"x":17510.617379832995,"y":16424.410730013595},"targetPosition":{"x":17715.243195523326,"y":16935.935863882543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"4 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide4","project":"Superalgos","id":"3cb178ac-79a4-4742-b056-4242f1a44a4f","savedPayload":{"position":{"x":17923.614229014784,"y":15854.045092573619},"targetPosition":{"x":17819.444335842327,"y":16394.931473614044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9b18832c-c75a-48d5-84a8-10c87c3ecaa7","savedPayload":{"position":{"x":17819.444335842327,"y":16394.931473614044},"targetPosition":{"x":17715.243195523326,"y":16935.935863882543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"5 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide5","project":"Superalgos","id":"886987c2-c671-4fb1-8e4f-2531678fdf27","savedPayload":{"position":{"x":18475.487906060116,"y":16138.560435191639},"targetPosition":{"x":18095.40197964389,"y":16537.199765522717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"02d20e04-267c-4947-aaef-975b0afbc6be","savedPayload":{"position":{"x":18095.40197964389,"y":16537.199765522717},"targetPosition":{"x":17715.243195523326,"y":16935.935863882543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"6 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide6","project":"Superalgos","id":"1c3ef0f9-8202-4bd1-b2cf-d5f093a0b93e","savedPayload":{"position":{"x":18785.962806817737,"y":16676.256125358523},"targetPosition":{"x":18250.658819874978,"y":16806.066351431222},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8263c56f-f813-4b09-a3ec-d03873f61cfb","savedPayload":{"position":{"x":18250.658819874978,"y":16806.066351431222},"targetPosition":{"x":17715.243195523326,"y":16935.935863882543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"7 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide7","project":"Superalgos","id":"65c5aefe-26f5-43b7-9db4-92869f50c17d","savedPayload":{"position":{"x":18756.4753610408,"y":17295.97442816932},"targetPosition":{"x":18235.91510968265,"y":17115.94452300114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"defe61e1-b9f0-4a78-89fb-d9793c2b6a30","savedPayload":{"position":{"x":18235.91510968265,"y":17115.94452300114},"targetPosition":{"x":17715.243195523326,"y":16935.935863882543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"8 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide8","project":"Superalgos","id":"4ec4604d-2c8a-43e2-9c86-e4cd4f84e6cc","savedPayload":{"position":{"x":18396.504969455786,"y":17801.67471363776},"targetPosition":{"x":18055.924490699093,"y":17368.76407480768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"34bc4b9d-8740-49d3-b289-3a15f1e5ad90","savedPayload":{"position":{"x":18055.924490699093,"y":17368.76407480768},"targetPosition":{"x":17715.243195523326,"y":16935.935863882543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"9 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide9","project":"Superalgos","id":"7896244a-82de-46a3-9ad5-973a8a46bc47","savedPayload":{"position":{"x":17845.31331501733,"y":18031.55667120074},"targetPosition":{"x":17792.914664108357,"y":17483.278510117034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3700449f-d0f2-4dc6-aad2-8ed6ba3dffb3","savedPayload":{"position":{"x":17792.914664108357,"y":17483.278510117034},"targetPosition":{"x":17715.243195523326,"y":16935.935863882543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"10 Periods","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.probabilitySide10","project":"Superalgos","id":"eefa0c8e-3bbd-4f17-bf18-da2ea4adce72","savedPayload":{"position":{"x":17210.755704187304,"y":17914.980078896617},"targetPosition":{"x":17463.112166825664,"y":17425.45310280496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"319c7144-ca2d-47de-acc4-ea71a008def2","savedPayload":{"position":{"x":17463.112166825664,"y":17425.45310280496},"targetPosition":{"x":17715.243195523326,"y":16935.935863882543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f4f7ebb6-52dc-4031-9822-f0391e95e043","savedPayload":{"position":{"x":17522.79013156026,"y":16895.51664411747},"targetPosition":{"x":17263.154398834504,"y":17434.755189042116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Candles Channels Next Up","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"1 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextUp1","project":"Superalgos","id":"4c2ab782-9799-4259-99ee-7ffeb3428f92","savedPayload":{"position":{"x":17533.95509685593,"y":17134.432784936274},"targetPosition":{"x":17582.321199525428,"y":17228.691140318893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"6ab10cae-4aa4-45f6-b5c7-9baf4c0691a1","savedPayload":{"position":{"x":17582.321199525428,"y":17228.691140318893},"targetPosition":{"x":17715.09010292881,"y":17486.465691245812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"2 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextUp2","project":"Superalgos","id":"751ec0df-e3bc-404f-a1b0-d17647bb854e","savedPayload":{"position":{"x":17752.816447867714,"y":17092.006024769365},"targetPosition":{"x":17742.445252284284,"y":17200.18110190182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"17e442b4-eb1a-4c17-8b63-d731b95c983a","savedPayload":{"position":{"x":17742.445252284284,"y":17200.18110190182},"targetPosition":{"x":17715.09010292881,"y":17486.465691245812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"3 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextUp3","project":"Superalgos","id":"4ebf70da-30e3-4b0e-bc5c-029e30a705ec","savedPayload":{"position":{"x":17959.943588997205,"y":17175.221126230383},"targetPosition":{"x":17894.368414415047,"y":17258.552988966607},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"162d2a00-b00c-4284-9c01-1837f0161e1b","savedPayload":{"position":{"x":17894.368414415047,"y":17258.552988966607},"targetPosition":{"x":17715.09010292881,"y":17486.465691245812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"4 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextUp4","project":"Superalgos","id":"1101c09f-831c-4a7d-9ce2-0c23a66a240f","savedPayload":{"position":{"x":18089.287888125826,"y":17357.055380640442},"targetPosition":{"x":17989.04169960099,"y":17391.70119544983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"fa5a33a9-8d8a-408c-93bd-8b06b3fbafe6","savedPayload":{"position":{"x":17989.04169960099,"y":17391.70119544983},"targetPosition":{"x":17715.09010292881,"y":17486.465691245812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"5 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextUp5","project":"Superalgos","id":"211e8218-8abd-476b-8b61-f95235f54548","savedPayload":{"position":{"x":18099.72386148323,"y":17579.4846470344},"targetPosition":{"x":17996.821451688054,"y":17554.66412101828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"0c4098da-6a1c-45a2-b0cc-e67f995f265d","savedPayload":{"position":{"x":17996.821451688054,"y":17554.66412101828},"targetPosition":{"x":17715.09010292881,"y":17486.465691245812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"6 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextUp6","project":"Superalgos","id":"a471a5b8-7716-42d9-8c4e-c493e427733c","savedPayload":{"position":{"x":17988.598002896615,"y":17772.961989464013},"targetPosition":{"x":17915.28470858238,"y":17696.24637128049},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"f4b0d4a0-fa30-4e94-a2f1-f8a2e94eb991","savedPayload":{"position":{"x":17915.28470858238,"y":17696.24637128049},"targetPosition":{"x":17715.09010292881,"y":17486.465691245812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"7 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextUp7","project":"Superalgos","id":"fc8aa338-c938-4827-acfd-335a685a45a7","savedPayload":{"position":{"x":17790.133939750005,"y":17875.03890795553},"targetPosition":{"x":17770.015254663223,"y":17771.0378023132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"dd6b2919-8a58-4817-91da-8e2d591633e2","savedPayload":{"position":{"x":17770.015254663223,"y":17771.0378023132},"targetPosition":{"x":17715.09010292881,"y":17486.465691245812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"8 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextUp8","project":"Superalgos","id":"97cdc151-6085-4925-bf5f-b51f757f12c9","savedPayload":{"position":{"x":17568.371953199767,"y":17853.952648012724},"targetPosition":{"x":17607.542955121608,"y":17755.61636697007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"d3c74a33-f336-4d3a-9646-064fee673e10","savedPayload":{"position":{"x":17607.542955121608,"y":17755.61636697007},"targetPosition":{"x":17715.09010292881,"y":17486.465691245812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"9 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextUp9","project":"Superalgos","id":"26a6b54f-5c6f-43a6-94da-ea5381b4f53d","savedPayload":{"position":{"x":17392.697935565317,"y":17716.46151836316},"targetPosition":{"x":17478.985771901844,"y":17654.73087049579},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"dff2a6e7-8415-4f8a-bfce-a5b7106db6e6","savedPayload":{"position":{"x":17478.985771901844,"y":17654.73087049579},"targetPosition":{"x":17715.09010292881,"y":17486.465691245812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"10 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextUp10","project":"Superalgos","id":"2b04f728-46ee-4056-bdee-d7b643308401","savedPayload":{"position":{"x":17320.012564056844,"y":17505.8541568963},"targetPosition":{"x":17425.8598574674,"y":17499.95041605412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"3ac887b6-7bdb-494d-8490-dab0c77aec2e","savedPayload":{"position":{"x":17425.8598574674,"y":17499.95041605412},"targetPosition":{"x":17715.09010292881,"y":17486.465691245812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3b367a4d-115a-4d9e-b783-2d0c6e542735","savedPayload":{"position":{"x":17846.785259271128,"y":17301.67482462373},"targetPosition":{"x":17263.154398834504,"y":17434.755189042116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Candles Channels Next Down","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"1 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextDown1","project":"Superalgos","id":"b3bb2ecb-6337-4d2c-8c89-245c7f73e108","savedPayload":{"position":{"x":17542.219050897027,"y":17180.320391397727},"targetPosition":{"x":17575.181163820056,"y":17278.389426764035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"61b3b455-eb49-41a9-9de5-03d92c567f4a","savedPayload":{"position":{"x":17575.181163820056,"y":17278.389426764035},"targetPosition":{"x":17668.377777042737,"y":17554.22977398563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"2 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextDown2","project":"Superalgos","id":"e989918e-5605-496d-a7f2-0ca713de39f0","savedPayload":{"position":{"x":17763.16601526517,"y":17177.864963756118},"targetPosition":{"x":17737.915783168304,"y":17275.89723534287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"2b917503-223e-4dde-8cf0-cb40412a6ec6","savedPayload":{"position":{"x":17737.915783168304,"y":17275.89723534287},"targetPosition":{"x":17668.377777042737,"y":17554.22977398563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"3 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextDown3","project":"Superalgos","id":"63721d6c-2bb1-4da6-a8c6-ae21295382b0","savedPayload":{"position":{"x":17956.836503031638,"y":17283.001286558785},"targetPosition":{"x":17881.4081782494,"y":17353.8577968001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"2a8d6136-b67f-468a-8c38-d5b30701b1b8","savedPayload":{"position":{"x":17881.4081782494,"y":17353.8577968001},"targetPosition":{"x":17668.377777042737,"y":17554.22977398563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"4 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextDown4","project":"Superalgos","id":"2fd80a46-7a01-4de0-b98e-3ac645d3b8ac","savedPayload":{"position":{"x":18056.683570826946,"y":17482.322672001843},"targetPosition":{"x":17957.292186229777,"y":17500.680774854074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"bc71245e-73f8-4442-ae03-7daa88da531c","savedPayload":{"position":{"x":17957.292186229777,"y":17500.680774854074},"targetPosition":{"x":17668.377777042737,"y":17554.22977398563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"5 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextDown5","project":"Superalgos","id":"382438e9-28c2-4ff2-851a-20fca2d466e0","savedPayload":{"position":{"x":18034.477888299105,"y":17703.25095653305},"targetPosition":{"x":17940.549373049496,"y":17665.121221212466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"d63906ec-7de0-4edf-8947-96baca8dc478","savedPayload":{"position":{"x":17940.549373049496,"y":17665.121221212466},"targetPosition":{"x":17668.377777042737,"y":17554.22977398563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"6 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextDown6","project":"Superalgos","id":"731bf25d-359a-463a-8a63-a0c5d3d0c306","savedPayload":{"position":{"x":17895.221023647977,"y":17876.78773095619},"targetPosition":{"x":17837.174799436663,"y":17794.404317970948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"d25e4daa-306d-47b9-98fb-c8bb25dec5e0","savedPayload":{"position":{"x":17837.174799436663,"y":17794.404317970948},"targetPosition":{"x":17668.377777042737,"y":17554.22977398563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"7 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextDown7","project":"Superalgos","id":"d0e9fb29-52c5-48e3-81c9-b6d74b42733f","savedPayload":{"position":{"x":17684.634174568328,"y":17948.33193934848},"targetPosition":{"x":17680.4401976853,"y":17847.64385705356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"22726c47-81aa-40ac-8b23-0b6f280f067c","savedPayload":{"position":{"x":17680.4401976853,"y":17847.64385705356},"targetPosition":{"x":17668.377777042737,"y":17554.22977398563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"8 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextDown8","project":"Superalgos","id":"e0ce0822-3eb2-4429-8a67-b41c8fbf0cdd","savedPayload":{"position":{"x":17469.183366731962,"y":17894.77882550172},"targetPosition":{"x":17520.086479319565,"y":17807.558696124273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"4ebe2345-d360-4de4-b58a-73a711fefa7a","savedPayload":{"position":{"x":17520.086479319565,"y":17807.558696124273},"targetPosition":{"x":17668.377777042737,"y":17554.22977398563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"9 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextDown9","project":"Superalgos","id":"80873b6e-5349-407f-993a-2b5247f73b3f","savedPayload":{"position":{"x":17317.474770160945,"y":17732.780647754662},"targetPosition":{"x":17406.872405278715,"y":17686.99291923555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"1738151b-da20-4cc6-8565-87a08de1c2db","savedPayload":{"position":{"x":17406.872405278715,"y":17686.99291923555},"targetPosition":{"x":17668.377777042737,"y":17554.22977398563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"10 Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.nextDown10","project":"Superalgos","id":"253de26c-204d-49f7-af4c-2945ce71dee3","savedPayload":{"position":{"x":17292.972885107913,"y":17492.826814621163},"targetPosition":{"x":17387.590557007894,"y":17528.564160278467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c030125c-1b29-4743-bbd5-93a86a2bad7d","savedPayload":{"position":{"x":17387.590557007894,"y":17528.564160278467},"targetPosition":{"x":17668.377777042737,"y":17554.22977398563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c16dc1ed-9da7-45da-bf32-c205a1d52d55","savedPayload":{"position":{"x":17732.345581230198,"y":17807.745094490558},"targetPosition":{"x":17263.154398834504,"y":17434.755189042116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"194dbe67-1ef8-47a3-8d1f-d769f9d19b55","savedPayload":{"position":{"x":17263.154398834504,"y":17434.755189042116},"targetPosition":{"x":17263.15485888043,"y":17872.753753020574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a2224a2d-77d4-40ff-b632-a3629ce984f7","savedPayload":{"position":{"x":17521.151546757865,"y":17969.598525719965},"targetPosition":{"x":17521.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"37e312af-e076-47aa-a1cd-bf5b2e16127d","savedPayload":{"position":{"x":17521.151546757865,"y":18269.598525719965},"targetPosition":{"x":17521.151546757865,"y":18269.598525719965},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}} \ No newline at end of file diff --git a/Projects/Superalgos/Plugins/Data-Mines/Sparta.json b/Projects/Superalgos/Plugins/Data-Mines/Sparta.json index 6c7cbdb16..835cfa693 100644 --- a/Projects/Superalgos/Plugins/Data-Mines/Sparta.json +++ b/Projects/Superalgos/Plugins/Data-Mines/Sparta.json @@ -1 +1 @@ -{"type":"Data Mine","name":"Sparta","config":"{\n\"codeName\": \"Sparta\"\n}","project":"Superalgos","sensorBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"Simple Moving Average (SMA)","config":"{\n\"codeName\": \"SMA\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates SMAs for Time Frames of 01-hs and above.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Popular SMAs","project":"Superalgos","id":"5302effb-1f09-4a30-9f71-6956b8b9ca88","savedPayload":{"position":{"x":10609.044651705652,"y":17428.90566641547},"targetPosition":{"x":10995.890269605332,"y":17540.32974347027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3b21f9d7-2cbc-4c23-80c8-cc5e5b06a22c"}}},{"type":"Output Dataset","name":"Multi-Period-Market Base11 SMAs","project":"Superalgos","id":"8221593c-6298-4b4c-bfc2-cffbc9e5cd0f","savedPayload":{"position":{"x":10652.515125452519,"y":17324.96443352291},"targetPosition":{"x":10995.890269605332,"y":17540.32974347027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"af9b9cef-2a74-486f-b79e-047d68669a1f"}}},{"type":"Output Dataset","name":"Multi-Period-Market Base7 SMAs","project":"Superalgos","id":"aabd0857-b4fc-404a-8967-967475ed3993","savedPayload":{"position":{"x":10721.675023375876,"y":17240.07387795538},"targetPosition":{"x":10995.890269605332,"y":17540.32974347027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"78a6ef37-4df8-4ac8-83a0-c9a732467c59"}}},{"type":"Output Dataset","name":"Multi-Period-Market Base6 SMAs","project":"Superalgos","id":"dd00a77a-761e-404b-9e44-627335668112","savedPayload":{"position":{"x":10809.956405495142,"y":17178.031642194932},"targetPosition":{"x":10995.890269605332,"y":17540.32974347027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c0862b3d-d35a-4d3e-8d80-258b8a01c37c"}}},{"type":"Output Dataset","name":"Muti-Period-Market Base5 SMAs","project":"Superalgos","id":"b6426833-d2c7-4300-b610-801e12a7edfd","savedPayload":{"position":{"x":10936.584878620257,"y":17141.406608785455},"targetPosition":{"x":10995.890269605332,"y":17540.32974347027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Muti-Period-Market","id":"a5d28568-fb58-469a-9820-b9f0e8eab705"}}}],"outputDatasetFolders":[],"id":"85a56739-9351-444b-95e9-a57470dca38a","savedPayload":{"position":{"x":10995.890269605332,"y":17540.32974347027},"targetPosition":{"x":11302.555356491408,"y":17880.959414907546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Simple Moving Average (SMA) Multi-Period-Market","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"d49d1e94-1960-4121-8e40-be8af52947ee","savedPayload":{"position":{"x":11067.618896327327,"y":17267.479023725446},"targetPosition":{"x":11205.707967556615,"y":17422.24521572421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"81346f2f-13f2-46f4-85f5-a04b4d80f455"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"f7cf0949-06fc-4c98-a399-61fac1671c6e","savedPayload":{"position":{"x":11151.101786685287,"y":17208.702149919078},"targetPosition":{"x":11205.707967556615,"y":17422.24521572421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"4228fdf3-e992-46b2-a91e-de95108a753d","savedPayload":{"position":{"x":11281.349968991311,"y":17232.215525355536},"targetPosition":{"x":11205.707967556615,"y":17422.24521572421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"f404e748-b631-4cc5-975c-2a0736e55c0d","savedPayload":{"position":{"x":11205.707967556615,"y":17422.24521572421},"targetPosition":{"x":11302.555356491408,"y":17880.959414907546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"81346f2f-13f2-46f4-85f5-a04b4d80f455","savedPayload":{"position":{"x":11447.995850449608,"y":17434.978620984843},"targetPosition":{"x":11302.555356491408,"y":17880.959414907546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"2bce272e-2712-4f28-9736-03b51929aba2","savedPayload":{"position":{"x":11651.429237176782,"y":17567.173890562313},"targetPosition":{"x":11302.555356491408,"y":17880.959414907546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"b569db86-9ab5-4ba2-be41-357a9bce84b4","savedPayload":{"position":{"x":11761.931404826617,"y":17783.446955381383},"targetPosition":{"x":11302.555356491408,"y":17880.959414907546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297","savedPayload":{"position":{"x":11375.730830411274,"y":17827.50998867358},"targetPosition":{"x":11236.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Describe what the process does.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Popular SMAs","project":"Superalgos","id":"417d3141-1e22-4ee6-b2d6-531a55b95c88","savedPayload":{"position":{"x":10908.000942572438,"y":17289.61734811988},"targetPosition":{"x":11241.486516415418,"y":17515.355998969822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2c338fe0-385f-45ab-b210-b98ef013228d"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Base11 SMAs","project":"Superalgos","id":"022edfeb-ec62-4cd9-85bf-20e9f444e3c1","savedPayload":{"position":{"x":10981.273990850172,"y":17203.75391921497},"targetPosition":{"x":11241.486516415418,"y":17515.355998969822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"de5cfa30-edbf-4d5b-8d7f-facfb69a0f3e"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Base7 SMAs","project":"Superalgos","id":"42e89cd9-acbe-49cd-b6f6-7671317796d6","savedPayload":{"position":{"x":11073.516140956957,"y":17144.702213328612},"targetPosition":{"x":11241.486516415418,"y":17515.355998969822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f155e2ed-7082-4021-a4ff-a6f3cfd5683d"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Base6 SMAs","project":"Superalgos","id":"a270e81a-4d70-4293-8a37-19191cf2ec23","savedPayload":{"position":{"x":11176.677768786107,"y":17112.984973336374},"targetPosition":{"x":11241.486516415418,"y":17515.355998969822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f5050eb2-0a99-464e-b5e2-2d8f40453e9a"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Base5 SMAs","project":"Superalgos","id":"d3d1bc15-201c-4d00-ba2e-6401e5392c14","savedPayload":{"position":{"x":11308.395529414094,"y":17117.52152380214},"targetPosition":{"x":11241.486516415418,"y":17515.355998969822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"01f32aa3-55e9-4f8c-80c7-997b52073274"}}}],"outputDatasetFolders":[],"id":"ad03dff7-56b2-4980-bc14-1b6c41fdf6cf","savedPayload":{"position":{"x":11241.486516415418,"y":17515.355998969822},"targetPosition":{"x":11427.923891797012,"y":17934.131710771882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Simple Moving Average (SMA) Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"d674a833-b9c8-4bdb-84de-e007ab243860","savedPayload":{"position":{"x":11372.391907582994,"y":17287.029491257614},"targetPosition":{"x":11477.595845032154,"y":17468.58334053084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"d2727d60-b26b-4e8b-a635-fbe78bc81240"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"ba857809-2273-4280-aa19-4b50837abccb","savedPayload":{"position":{"x":11457.701784390403,"y":17236.604263899466},"targetPosition":{"x":11477.595845032154,"y":17468.58334053084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"40e12ba8-59dc-4eaf-a30d-07bb8192e0a6","savedPayload":{"position":{"x":11516.240865570066,"y":17285.93915623869},"targetPosition":{"x":11477.595845032154,"y":17468.58334053084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"5f5e40cb-841e-4b18-a249-a04d541d31a0","savedPayload":{"position":{"x":11646.567809240092,"y":17311.01465490835},"targetPosition":{"x":11477.595845032154,"y":17468.58334053084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"b6aae3c7-2d70-4ffd-a5e5-951f0a565b13","savedPayload":{"position":{"x":11477.595845032154,"y":17468.58334053084},"targetPosition":{"x":11427.923891797012,"y":17934.131710771882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"d2727d60-b26b-4e8b-a635-fbe78bc81240","savedPayload":{"position":{"x":11680.848739056928,"y":17588.042619884007},"targetPosition":{"x":11427.923891797012,"y":17934.131710771882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"8b753072-e4c9-4671-a5ce-eea9e1c1ba0f","savedPayload":{"position":{"x":11820.489965011919,"y":17760.00736076534},"targetPosition":{"x":11427.923891797012,"y":17934.131710771882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"87c9e783-adc5-40e3-b1fb-fdb2994c1217","savedPayload":{"position":{"x":11854.281117311806,"y":17978.955338289215},"targetPosition":{"x":11427.923891797012,"y":17934.131710771882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f","savedPayload":{"position":{"x":11501.17654647416,"y":17891.427773537675},"targetPosition":{"x":11236.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Popular SMAs","config":"{\n \"codeName\": \"Popular-SMAs\",\n \"singularVariableName\": \"popularSMA\",\n \"pluralVariableName\": \"popularSMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"3b21f9d7-2cbc-4c23-80c8-cc5e5b06a22c","savedPayload":{"position":{"x":11600.730830411274,"y":17540.982057474786},"targetPosition":{"x":11600.730830411274,"y":17990.982057474786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"2c338fe0-385f-45ab-b210-b98ef013228d","savedPayload":{"position":{"x":11865.234193942886,"y":17626.92441000606},"targetPosition":{"x":11600.730830411274,"y":17990.982057474786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"673a7fbf-1a73-4220-a561-84cf8b11c3a7","savedPayload":{"position":{"x":12470.444471317933,"y":17197.919443865172},"targetPosition":{"x":12683.57280375448,"y":17340.427774878928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"305fc918-e6df-48d7-a7b5-726e3fa8f958","savedPayload":{"position":{"x":12683.57280375448,"y":17340.427774878928},"targetPosition":{"x":12991.29960269697,"y":17543.63490179658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"002ffd5e-583c-4af5-87eb-a886fd3bc50e","savedPayload":{"position":{"x":12936.123471306175,"y":16920.355881694733},"targetPosition":{"x":12958.85102388261,"y":17175.38997181171},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a305a94d-3af9-430a-8642-5ffb1229710f","savedPayload":{"position":{"x":12958.85102388261,"y":17175.38997181171},"targetPosition":{"x":12991.29960269697,"y":17543.63490179658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA20","config":"{\n \"codeName\": \"sma20\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma20","project":"Superalgos","id":"5adb676d-35a8-47b2-aa47-dc0e6edf8a81","savedPayload":{"position":{"x":13443.336778030538,"y":17111.61002307471},"targetPosition":{"x":13259.145932449086,"y":17287.73603107492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1657736e-6bc4-4279-9e65-5b0b0cf737cb","savedPayload":{"position":{"x":13259.145932449086,"y":17287.73603107492},"targetPosition":{"x":12991.29960269697,"y":17543.63490179658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA50","config":"{\n \"codeName\": \"sma50\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma50","project":"Superalgos","id":"85033109-c11c-43d2-84cc-4510dae276ca","savedPayload":{"position":{"x":13611.305715436905,"y":17627.04214358736},"targetPosition":{"x":13357.251563570568,"y":17593.331735860374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e7f1f78d-3a6d-49a2-b522-4423bd8d6a82","savedPayload":{"position":{"x":13357.251563570568,"y":17593.331735860374},"targetPosition":{"x":12991.29960269697,"y":17543.63490179658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA100","config":"{\n \"codeName\": \"sma100\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma100","project":"Superalgos","id":"43eebecb-65db-4e64-902a-582515e06daa","savedPayload":{"position":{"x":13313.247591223331,"y":18079.434497143986},"targetPosition":{"x":13181.254826210923,"y":17860.97703493739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"090fa9ea-f050-4315-9360-3958ce5debaa","savedPayload":{"position":{"x":13181.254826210923,"y":17860.97703493739},"targetPosition":{"x":12991.29960269697,"y":17543.63490179658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA200","config":"{\n \"codeName\": \"sma200\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma200","project":"Superalgos","id":"5bdf982c-5480-4f90-9ec2-7708bf2d4943","savedPayload":{"position":{"x":12773.670560646326,"y":18128.10739092227},"targetPosition":{"x":12862.170633593152,"y":17890.25441054592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8146fe70-3592-4f27-af4a-d3d8e93268d1","savedPayload":{"position":{"x":12862.170633593152,"y":17890.25441054592},"targetPosition":{"x":12991.29960269697,"y":17543.63490179658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1b29d760-f7fe-48a5-928c-212a6f9a2486","savedPayload":{"position":{"x":12242.693978910502,"y":17782.395586271698},"targetPosition":{"x":11600.730830411274,"y":17990.982057474786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last200.push(candle.close) // Add the current close value to the last 200 array.\n\nif (variable.last200.length > 200) {\n variable.last200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 200 elements.\n}\n\nvariable.sma20 = calculateSMA(20)\nvariable.sma50 = calculateSMA(50)\nvariable.sma100 = calculateSMA(100)\nvariable.sma200 = calculateSMA(200)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last200.length - periods; i < variable.last200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last200.length=\" + variable.last200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"a9904080-6677-45e0-bcac-f336e882380a","savedPayload":{"position":{"x":12468.872683074307,"y":18036.47944407552},"targetPosition":{"x":12248.7894729092,"y":18083.259574509517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"shortcutKey":"f"}}},"id":"52a2ea69-6420-40f6-90f0-3330d33e6f67","savedPayload":{"position":{"x":12248.7894729092,"y":18083.259574509517},"targetPosition":{"x":12028.706262744094,"y":18130.039704943512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"2790fd06-6fe8-4175-bbfc-854d9909aeb4","savedPayload":{"position":{"x":12329.815035605581,"y":18464.454876408337},"targetPosition":{"x":12179.260649174837,"y":18297.247290675925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6d5772df-819e-4968-9e27-61981c08f0e2","savedPayload":{"position":{"x":12179.260649174837,"y":18297.247290675925},"targetPosition":{"x":12028.706262744094,"y":18130.039704943512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f1f881ff-a04f-4663-9747-2042d4581953","savedPayload":{"position":{"x":12028.706262744094,"y":18130.039704943512},"targetPosition":{"x":11600.730830411274,"y":17990.982057474786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34","savedPayload":{"position":{"x":11600.730830411274,"y":17990.982057474786},"targetPosition":{"x":11236.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"SMA Popular","id":"ddf21e96-c312-4ebe-9e2b-f56e8ea072aa"}}},{"type":"Product Definition","name":"Base7 SMAs","config":"{\n \"codeName\": \"Base7-SMAs\",\n \"singularVariableName\": \"base7SMA\",\n \"pluralVariableName\": \"base7SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"78a6ef37-4df8-4ac8-83a0-c9a732467c59","savedPayload":{"position":{"x":11803.706262744094,"y":17688.452341204855},"targetPosition":{"x":11664.648615275368,"y":18116.427773537675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"f155e2ed-7082-4021-a4ff-a6f3cfd5683d","savedPayload":{"position":{"x":12028.706262744094,"y":17851.92441000606},"targetPosition":{"x":11664.648615275368,"y":18116.427773537675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"6d7e37c5-d80e-44a3-8484-f532bcfc7819","savedPayload":{"position":{"x":13067.417599591397,"y":17923.116422777504},"targetPosition":{"x":13298.333593318817,"y":18026.477632153736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"87203f0b-0fb8-4875-8127-d715198bf01b","savedPayload":{"position":{"x":13298.333593318817,"y":18026.477632153736},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"bf74ad1e-a569-4428-a387-b0f39bb63759","savedPayload":{"position":{"x":13220.425236389947,"y":17712.461152725813},"targetPosition":{"x":13389.830689741633,"y":17901.69096166294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0bc477f0-8b7d-4c75-8613-0cc63a25a79d","savedPayload":{"position":{"x":13389.830689741633,"y":17901.69096166294},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA7","config":"{\n \"codeName\": \"sma7\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma7","project":"Superalgos","id":"1a89def9-4270-4584-93c3-86ca30cb184c","savedPayload":{"position":{"x":13444.977797239106,"y":17581.544153339284},"targetPosition":{"x":13523.543176053983,"y":17825.52556324174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a87dddd8-9806-45be-b9a9-0e3196da48a7","savedPayload":{"position":{"x":13523.543176053983,"y":17825.52556324174},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA14","config":"{\n \"codeName\": \"sma14\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma14","project":"Superalgos","id":"c0b78d39-a652-4d13-9fce-1b56d4e6ffbb","savedPayload":{"position":{"x":13703.136121894386,"y":17553.691965097147},"targetPosition":{"x":13676.144990623528,"y":17808.886495660056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"114a04b9-e5b6-4f60-ad99-760c10275f9e","savedPayload":{"position":{"x":13676.144990623528,"y":17808.886495660056},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA21","config":"{\n \"codeName\": \"sma21\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma21","project":"Superalgos","id":"4740139a-d2d7-4050-a0f6-145eef002bed","savedPayload":{"position":{"x":13951.07092288548,"y":17633.900951615273},"targetPosition":{"x":13822.853055477604,"y":17855.76511301012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac8182cd-7f7b-44e9-a91c-b470be594ef0","savedPayload":{"position":{"x":13822.853055477604,"y":17855.76511301012},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA28","config":"{\n \"codeName\": \"sma28\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma28","project":"Superalgos","id":"0a2f17a1-2663-477a-8c28-015592a67a7e","savedPayload":{"position":{"x":14142.173843900822,"y":17810.393893179487},"targetPosition":{"x":13938.598902789225,"y":17958.130869977824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"81c852eb-9b3e-4505-b81a-f236b39d770d","savedPayload":{"position":{"x":13938.598902789225,"y":17958.130869977824},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA35","config":"{\n \"codeName\": \"sma35\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma35","project":"Superalgos","id":"1a30763f-6398-475f-b232-ff0da4ad41fa","savedPayload":{"position":{"x":14249.312354030615,"y":18047.130043323723},"targetPosition":{"x":13998.366233158278,"y":18100.317942514102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a8a4dd40-6286-46b0-8f4d-61893d2d9234","savedPayload":{"position":{"x":13998.366233158278,"y":18100.317942514102},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA70","config":"{\n \"codeName\": \"sma70\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma70","project":"Superalgos","id":"07471d43-2432-4961-81b5-4aa1bb399df4","savedPayload":{"position":{"x":14250.589621846808,"y":18306.779419955812},"targetPosition":{"x":13998.599704419277,"y":18253.456156944154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9dbc330c-e654-4591-92d0-c3e92262436e","savedPayload":{"position":{"x":13998.599704419277,"y":18253.456156944154},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA140","config":"{\n \"codeName\": \"sma140\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma140","project":"Superalgos","id":"0ef6719d-cfa8-458e-a137-6bd2e77aa6fd","savedPayload":{"position":{"x":14144.205179463726,"y":18544.55660320917},"targetPosition":{"x":13937.462154050405,"y":18394.674447873127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"93814c2c-8fff-4415-9934-1356bf555015","savedPayload":{"position":{"x":13937.462154050405,"y":18394.674447873127},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA210","config":"{\n \"codeName\": \"sma210\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma210","project":"Superalgos","id":"037c98d5-1eef-4928-ade0-a70021337aa5","savedPayload":{"position":{"x":13950.412630791408,"y":18718.282998048362},"targetPosition":{"x":13822.922403668796,"y":18497.911587478895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"efbcaa0c-2bf3-44e6-aae3-4f73c6255c69","savedPayload":{"position":{"x":13822.922403668796,"y":18497.911587478895},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA280","config":"{\n \"codeName\": \"sma280\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma280","project":"Superalgos","id":"2bdc1e1e-b6a3-4e68-90b5-e88e64684804","savedPayload":{"position":{"x":13703.375846371768,"y":18798.954049356613},"targetPosition":{"x":13676.270425522162,"y":18544.780808046817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6b302071-d15f-43b3-9ab2-4b970a379ebc","savedPayload":{"position":{"x":13676.270425522162,"y":18544.780808046817},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA350","config":"{\n \"codeName\": \"sma350\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma350","project":"Superalgos","id":"18baf5c6-5aa5-4f66-8637-9966fdf4acf4","savedPayload":{"position":{"x":13445.172278806236,"y":18772.60498631521},"targetPosition":{"x":13523.592902832486,"y":18528.675972146935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f1de76b8-1665-4142-b8fc-712203bad655","savedPayload":{"position":{"x":13523.592902832486,"y":18528.675972146935},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA700","config":"{\n \"codeName\": \"sma700\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma700","project":"Superalgos","id":"c8f08ae8-f608-40f1-8df3-e4eb537a89ed","savedPayload":{"position":{"x":13219.923169659083,"y":18642.659717934876},"targetPosition":{"x":13389.85514569101,"y":18452.171969413837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"83b3c070-c0cb-4a4b-86ea-0b6292f57c13","savedPayload":{"position":{"x":13389.85514569101,"y":18452.171969413837},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA1400","config":"{\n \"codeName\": \"sma1400\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma1400","project":"Superalgos","id":"ca4c686e-61d0-4dc0-96f9-9ee80d856422","savedPayload":{"position":{"x":13065.94663787181,"y":18430.14861867591},"targetPosition":{"x":13298.605451028328,"y":18326.908347816407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e07922ab-0abb-4216-a534-07db74399c2a","savedPayload":{"position":{"x":13298.605451028328,"y":18326.908347816407},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f3c4fe44-c417-4c98-9547-4b0c062f7bd7","savedPayload":{"position":{"x":12339.648615275368,"y":18116.427773537675},"targetPosition":{"x":11664.648615275368,"y":18116.427773537675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1400.push(candle.close) // Add the current close value to the last 1400 array.\n\nif (variable.last1400.length > 1400) {\n variable.last1400.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1400 elements.\n}\n\nvariable.sma7 = calculateSMA(7)\nvariable.sma14 = calculateSMA(14)\nvariable.sma21 = calculateSMA(21)\nvariable.sma28 = calculateSMA(28)\nvariable.sma35 = calculateSMA(35)\nvariable.sma70 = calculateSMA(70)\nvariable.sma140 = calculateSMA(140)\nvariable.sma210 = calculateSMA(210)\nvariable.sma280 = calculateSMA(280)\nvariable.sma350 = calculateSMA(350)\nvariable.sma700 = calculateSMA(700)\nvariable.sma1400 = calculateSMA(1400)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1400.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1400.length - periods; i < variable.last1400.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1400[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1400.length=\" + variable.last1400.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1400[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"27796e5a-2553-47c6-bddd-c8deaed05c2f","savedPayload":{"position":{"x":12476.241115659817,"y":18427.96894553973},"targetPosition":{"x":12252.473689201955,"y":18404.45004130451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e5d799ba-3a4f-45fb-8533-4c3de5d7886f","savedPayload":{"position":{"x":12252.473689201955,"y":18404.45004130451},"targetPosition":{"x":12028.706262744094,"y":18380.93113706929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1400 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1400 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"17ee3425-2a07-4523-b005-bac9dbf75184","savedPayload":{"position":{"x":12211.737752128203,"y":18792.026593008457},"targetPosition":{"x":12120.222007436148,"y":18586.478865038873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e9e5c8c-98e2-4bbf-884a-071449177692","savedPayload":{"position":{"x":12120.222007436148,"y":18586.478865038873},"targetPosition":{"x":12028.706262744094,"y":18380.93113706929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6bd8fef6-49f7-45c5-9f9f-944785f8578e","savedPayload":{"position":{"x":12028.706262744094,"y":18380.93113706929},"targetPosition":{"x":11664.648615275368,"y":18116.427773537675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6","savedPayload":{"position":{"x":11664.648615275368,"y":18116.427773537675},"targetPosition":{"x":11236.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"SMA Base 7","id":"515565ff-dee2-4adf-adaf-b4cfea5f5dbd"}}},{"type":"Product Definition","name":"Base11 SMAs","config":"{\n \"codeName\": \"Base11-SMAs\",\n \"singularVariableName\": \"base11SMA\",\n \"pluralVariableName\": \"base11SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"af9b9cef-2a74-486f-b79e-047d68669a1f","savedPayload":{"position":{"x":11951.17654647416,"y":17891.427773537675},"targetPosition":{"x":11686.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"de5cfa30-edbf-4d5b-8d7f-facfb69a0f3e","savedPayload":{"position":{"x":12114.648615275368,"y":18116.427773537675},"targetPosition":{"x":11686.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"a6c93c64-52da-4dad-bff9-9f6d9b4606b9","savedPayload":{"position":{"x":12815.839933983814,"y":17808.111121777427},"targetPosition":{"x":12930.869304078122,"y":18035.811005961208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5e8f3d9c-8284-4b92-b7f5-ad7498e5ef3d","savedPayload":{"position":{"x":12930.869304078122,"y":18035.811005961208},"targetPosition":{"x":13097.856729092255,"y":18365.693706624377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"ac16b3d1-e3b0-4b79-9047-cd137c6eeafc","savedPayload":{"position":{"x":13293.607527255394,"y":17765.74634874688},"targetPosition":{"x":13214.044573516047,"y":18009.605687813662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"43337725-24dd-4c1a-ae8d-2562a028d02d","savedPayload":{"position":{"x":13214.044573516047,"y":18009.605687813662},"targetPosition":{"x":13097.856729092255,"y":18365.693706624377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA11","config":"{\n \"codeName\": \"sma11\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma11","project":"Superalgos","id":"87a1e288-0966-46e9-8a4f-1ddbb3f8976c","savedPayload":{"position":{"x":13656.085062508537,"y":18081.67391036068},"targetPosition":{"x":13427.810877330005,"y":18197.794536757327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6a67dbd9-1e8e-4100-849f-5ea77ea67985","savedPayload":{"position":{"x":13427.810877330005,"y":18197.794536757327},"targetPosition":{"x":13097.856729092255,"y":18365.693706624377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA22","config":"{\n \"codeName\": \"sma22\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma22","project":"Superalgos","id":"8652042b-c373-4024-9fbf-c582a55134e0","savedPayload":{"position":{"x":13693.003048222032,"y":18558.388889273087},"targetPosition":{"x":13450.14208525616,"y":18479.773963090887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a5665ca1-e399-4e8a-8e04-8c0b153702e4","savedPayload":{"position":{"x":13450.14208525616,"y":18479.773963090887},"targetPosition":{"x":13097.856729092255,"y":18365.693706624377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA33","config":"{\n \"codeName\": \"sma33\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma33","project":"Superalgos","id":"738317b6-dcb4-4699-a48c-170491515eb5","savedPayload":{"position":{"x":13382.82630306523,"y":18922.50504144711},"targetPosition":{"x":13266.09417628483,"y":18694.477320538124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f35c54ed-6469-4cfa-94cf-f94f1c916e91","savedPayload":{"position":{"x":13266.09417628483,"y":18694.477320538124},"targetPosition":{"x":13097.856729092255,"y":18365.693706624377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA55","config":"{\n \"codeName\": \"sma55\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma55","project":"Superalgos","id":"675e9f6c-1e0d-4d09-ab69-88252ef60fe2","savedPayload":{"position":{"x":12906.084990925701,"y":18959.098790523312},"targetPosition":{"x":12984.690376271374,"y":18717.4131111295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c17d77b3-4d80-462d-88ba-ef421928dde1","savedPayload":{"position":{"x":12984.690376271374,"y":18717.4131111295},"targetPosition":{"x":13097.856729092255,"y":18365.693706624377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA111","config":"{\n \"codeName\": \"sma111\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma111","project":"Superalgos","id":"b32a4356-312c-4536-b30b-63bad302e857","savedPayload":{"position":{"x":12543.670310576828,"y":18650.173951610268},"targetPosition":{"x":12769.457037473414,"y":18533.46183379377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f49152b4-5306-41d2-966b-dba92eef2590","savedPayload":{"position":{"x":12769.457037473414,"y":18533.46183379377},"targetPosition":{"x":13097.856729092255,"y":18365.693706624377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a099f207-16db-4f66-adfb-1529fa350385","savedPayload":{"position":{"x":12328.636331441776,"y":18464.07189220949},"targetPosition":{"x":11686.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last200.push(candle.close) // Add the current close value to the last 200 array.\n\nif (variable.last200.length > 200) {\n variable.last200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 200 elements.\n}\n\nvariable.sma11 = calculateSMA(11)\nvariable.sma22 = calculateSMA(22)\nvariable.sma33 = calculateSMA(33)\nvariable.sma55 = calculateSMA(55)\nvariable.sma111 = calculateSMA(111)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last200.length - periods; i < variable.last200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last200.length=\" + variable.last200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"317788d5-11f5-48a6-ab0c-252cdcef7728","savedPayload":{"position":{"x":12362.272002413332,"y":18802.57455785924},"targetPosition":{"x":12156.724274443746,"y":18711.058813167183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cce46065-5c04-428f-823f-4cb5e67b212a","savedPayload":{"position":{"x":12156.724274443746,"y":18711.058813167183},"targetPosition":{"x":11951.17654647416,"y":18619.543068475126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"70d5537e-f682-4322-992b-99a55edb2582","savedPayload":{"position":{"x":11998.214354944603,"y":19067.077921390846},"targetPosition":{"x":11974.695450709381,"y":18843.310494932986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f0707196-a2ac-4aee-99df-48a7fe77c365","savedPayload":{"position":{"x":11974.695450709381,"y":18843.310494932986},"targetPosition":{"x":11951.17654647416,"y":18619.543068475126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"663d58c6-e03e-4923-8cc7-03cc860aa318","savedPayload":{"position":{"x":11951.17654647416,"y":18619.543068475126},"targetPosition":{"x":11686.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"05fabbf9-7798-4a53-995e-53ae74bef3de","savedPayload":{"position":{"x":11686.673182942548,"y":18255.4854210064},"targetPosition":{"x":11236.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"SMA Base 11","id":"4a61ac35-a1ae-40f4-b3da-f81ae796ee00"}}},{"type":"Product Definition","name":"Base5 SMAs","config":"{\n \"codeName\": \"Base5-SMAs\",\n \"singularVariableName\": \"base5SMA\",\n \"pluralVariableName\": \"base5SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Muti-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"a5d28568-fb58-469a-9820-b9f0e8eab705","savedPayload":{"position":{"x":12028.706262744094,"y":18130.039704943512},"targetPosition":{"x":11664.648615275368,"y":18394.543068475126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"01f32aa3-55e9-4f8c-80c7-997b52073274","savedPayload":{"position":{"x":12114.648615275368,"y":18394.543068475126},"targetPosition":{"x":11664.648615275368,"y":18394.543068475126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"949a2e58-5d07-475e-92b9-e0ef4b9fd9e7","savedPayload":{"position":{"x":12631.430740513992,"y":18527.19541638269},"targetPosition":{"x":12757.991933540474,"y":18748.88779178959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"65545f82-9022-4d4c-bd09-b900182bae75","savedPayload":{"position":{"x":12757.991933540474,"y":18748.88779178959},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"551c49da-26d4-438e-aff4-2a0ecc18ce7f","savedPayload":{"position":{"x":12878.38246006576,"y":18446.077083286185},"targetPosition":{"x":12904.469362235344,"y":18701.556316630446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"74445dab-2c42-4c71-b179-04b98b5a8e27","savedPayload":{"position":{"x":12904.469362235344,"y":18701.556316630446},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA5","config":"{\n \"codeName\": \"sma5\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma5","project":"Superalgos","id":"1c996969-c249-4b55-845c-62205e91fc68","savedPayload":{"position":{"x":13136.655925362178,"y":18474.32374860043},"targetPosition":{"x":13057.07326191098,"y":18717.06779996958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3b9f6fbf-20d8-4952-b5e8-34937746fef7","savedPayload":{"position":{"x":13057.07326191098,"y":18717.06779996958},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA10","config":"{\n \"codeName\": \"sma10\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma10","project":"Superalgos","id":"d16592d7-2f02-49ae-8857-dd7098990f20","savedPayload":{"position":{"x":13362.275478941527,"y":18603.53716795297},"targetPosition":{"x":13189.39813258298,"y":18794.6644705036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"73cb2d83-d59b-457e-af00-68a8d0e2b016","savedPayload":{"position":{"x":13189.39813258298,"y":18794.6644705036},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA15","config":"{\n \"codeName\": \"sma15\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma15","project":"Superalgos","id":"147ea31e-2735-4bae-b6a9-99072ed3d7a5","savedPayload":{"position":{"x":13514.859298171934,"y":18814.25026908552},"targetPosition":{"x":13280.593586645118,"y":18918.226137238154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"666f82ef-a002-4067-9edb-6ddbe2861056","savedPayload":{"position":{"x":13280.593586645118,"y":18918.226137238154},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA20","config":"{\n \"codeName\": \"sma20\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma20","project":"Superalgos","id":"f2507a4f-7f65-4d22-b062-1834c9269285","savedPayload":{"position":{"x":13568.906674373367,"y":19068.685962409374},"targetPosition":{"x":13312.502699284716,"y":19068.65750665126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a6a82705-0a6c-425e-afab-099a63570ada","savedPayload":{"position":{"x":13312.502699284716,"y":19068.65750665126},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA25","config":"{\n \"codeName\": \"sma25\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma25","project":"Superalgos","id":"53aead0b-0c80-4e74-b19b-7290672f7444","savedPayload":{"position":{"x":13514.719449905871,"y":19323.041859592275},"targetPosition":{"x":13280.823325748614,"y":19218.971709928708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cbc6da93-d064-4762-a32f-ae1071a1ebe2","savedPayload":{"position":{"x":13280.823325748614,"y":19218.971709928708},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA50","config":"{\n \"codeName\": \"sma50\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma50","project":"Superalgos","id":"0c126131-e3bd-4d43-a037-53e54e268300","savedPayload":{"position":{"x":13362.372497644017,"y":19534.262084955666},"targetPosition":{"x":13189.975833161152,"y":19343.183901652937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1cda317e-4b82-4bd9-8b07-71ad7365e524","savedPayload":{"position":{"x":13189.975833161152,"y":19343.183901652937},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA100","config":"{\n \"codeName\": \"sma100\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma100","project":"Superalgos","id":"77c897e8-ab38-4c88-a215-e67d53401196","savedPayload":{"position":{"x":13136.47762679262,"y":19663.422695891826},"targetPosition":{"x":13057.288268143111,"y":19421.03251610179},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7a66586-158d-40e2-be75-1077a91b0d7e","savedPayload":{"position":{"x":13057.288268143111,"y":19421.03251610179},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA150","config":"{\n \"codeName\": \"sma150\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma150","project":"Superalgos","id":"1e5d6df6-a1af-49f0-a06e-08c362b1cd34","savedPayload":{"position":{"x":12878.696847407744,"y":19691.424104771806},"targetPosition":{"x":12904.485327109865,"y":19436.379588121057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"83260971-1089-4349-9019-29ea469a9d24","savedPayload":{"position":{"x":12904.485327109865,"y":19436.379588121057},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA200","config":"{\n \"codeName\": \"sma200\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma200","project":"Superalgos","id":"bc63f986-17dd-48fb-892b-7f2d2b033cc5","savedPayload":{"position":{"x":12630.731357409528,"y":19613.336466167246},"targetPosition":{"x":12759.711387513235,"y":19389.20416988291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"07a55760-46cf-44e8-b2f9-f55a6bb5a81c","savedPayload":{"position":{"x":12759.711387513235,"y":19389.20416988291},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA250","config":"{\n \"codeName\": \"sma250\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma250","project":"Superalgos","id":"1bdc84fd-9eac-4b07-9ff6-56f80ec08553","savedPayload":{"position":{"x":12436.06979659692,"y":19438.111284062434},"targetPosition":{"x":12643.4009817867,"y":19286.268684278046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8b672a62-1ae1-4e92-819e-597fa42da35b","savedPayload":{"position":{"x":12643.4009817867,"y":19286.268684278046},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA 500","config":"{\n \"codeName\": \"sma500\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma500","project":"Superalgos","id":"0d17399e-97d1-459d-8864-6c72967f0fd4","savedPayload":{"position":{"x":12331.676468515354,"y":19200.173581719828},"targetPosition":{"x":12579.954354793055,"y":19145.993190409758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"92405f1d-9adf-4a70-af18-f2537ba2b0a0","savedPayload":{"position":{"x":12579.954354793055,"y":19145.993190409758},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA 1000","config":"{\n \"codeName\": \"sma1000\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma1000","project":"Superalgos","id":"e2364abc-b940-4b52-a506-587c1a5941e3","savedPayload":{"position":{"x":12340.072122910238,"y":18941.379679370883},"targetPosition":{"x":12588.711494420986,"y":18993.090678828456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5318bf3f-6e8a-46c8-8b04-3769bde03438","savedPayload":{"position":{"x":12588.711494420986,"y":18993.090678828456},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"69298c3e-479d-4eb6-a972-35f8f079ce86","savedPayload":{"position":{"x":12210.735086478457,"y":18791.298113772547},"targetPosition":{"x":11664.648615275368,"y":18394.543068475126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1000.push(candle.close) // Add the current close value to the last 1000 array.\n\nif (variable.last1000.length > 1000) {\n variable.last1000.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1000 elements.\n}\n\nvariable.sma5 = calculateSMA(5)\nvariable.sma10 = calculateSMA(10)\nvariable.sma15 = calculateSMA(15)\nvariable.sma20 = calculateSMA(20)\nvariable.sma25 = calculateSMA(25)\nvariable.sma50 = calculateSMA(50)\nvariable.sma100 = calculateSMA(100)\nvariable.sma150 = calculateSMA(150)\nvariable.sma200 = calculateSMA(200)\nvariable.sma250 = calculateSMA(250)\nvariable.sma500 = calculateSMA(500)\nvariable.sma1000 = calculateSMA(1000)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1000.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1000.length - periods; i < variable.last1000.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1000[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1000.length=\" + variable.last1000.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1000[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"45ebc09e-bada-4bcd-8780-a2f56f23f037","savedPayload":{"position":{"x":12138.121434208922,"y":19123.627273669434},"targetPosition":{"x":11970.913848476508,"y":18973.07288723869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f65693cf-81ef-497e-86d2-a7ad9b74a1ca","savedPayload":{"position":{"x":11970.913848476508,"y":18973.07288723869},"targetPosition":{"x":11803.706262744094,"y":18822.518500807946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1000 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1000 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"22db43d3-db5d-43b6-80fc-1faa358bfadb","savedPayload":{"position":{"x":11710.146001876103,"y":19262.68492113816},"targetPosition":{"x":11756.926132310098,"y":19042.601710973053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"12255c95-c680-43af-be1b-61ee37e0e827","savedPayload":{"position":{"x":11756.926132310098,"y":19042.601710973053},"targetPosition":{"x":11803.706262744094,"y":18822.518500807946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd8c13e4-2b9e-4a42-a576-539d412f239a","savedPayload":{"position":{"x":11803.706262744094,"y":18822.518500807946},"targetPosition":{"x":11664.648615275368,"y":18394.543068475126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2dcb55de-1673-409e-aa52-f51e7c7f8fa3","savedPayload":{"position":{"x":11664.648615275368,"y":18394.543068475126},"targetPosition":{"x":11236.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"SMA Base 5","id":"888c381d-457d-4421-8401-a7475b42ff03"}}},{"type":"Product Definition","name":"Base6 SMAs","config":"{\n \"codeName\": \"Base6-SMAs\",\n \"singularVariableName\": \"base6SMA\",\n \"pluralVariableName\": \"base6SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"c0862b3d-d35a-4d3e-8d80-258b8a01c37c","savedPayload":{"position":{"x":12028.706262744094,"y":18380.93113706929},"targetPosition":{"x":11600.730830411274,"y":18519.988784538014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"f5050eb2-0a99-464e-b5e2-2d8f40453e9a","savedPayload":{"position":{"x":12028.706262744094,"y":18659.04643200674},"targetPosition":{"x":11600.730830411274,"y":18519.988784538014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Being","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"fc90c194-682d-4d5c-923b-89b19e49f234","savedPayload":{"position":{"x":12518.123842367757,"y":18796.742666167233},"targetPosition":{"x":12608.575729356638,"y":19034.63004887762},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"37fc0238-a202-4c33-89ca-6a4e24d4e1ac","savedPayload":{"position":{"x":12608.575729356638,"y":19034.63004887762},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"c1b3c2c1-68aa-443a-8c69-c50dcd34998f","savedPayload":{"position":{"x":12775.14039598213,"y":18756.60976374205},"targetPosition":{"x":12761.227712057589,"y":19010.397701422422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7757e0dd-c3b4-48b4-bdf7-e517ce8df601","savedPayload":{"position":{"x":12761.227712057589,"y":19010.397701422422},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA6","config":"{\n \"codeName\": \"sma6\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma6","project":"Superalgos","id":"8a633674-750f-492d-8bfc-ac6f2e79793a","savedPayload":{"position":{"x":13025.56264021057,"y":18824.417620048924},"targetPosition":{"x":12909.760462591214,"y":19051.0955755378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"12d5b8f1-c83c-43a3-bf45-6f85e85a6df9","savedPayload":{"position":{"x":12909.760462591214,"y":19051.0955755378},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA12","config":"{\n \"codeName\": \"sma12\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma12","project":"Superalgos","id":"11e2a0cd-851a-425e-b2bd-f3cff1b00c77","savedPayload":{"position":{"x":13229.963678740656,"y":18986.285522403843},"targetPosition":{"x":13028.646357813344,"y":19148.79058530685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c1f3e32-9310-4ece-a796-cf9225172978","savedPayload":{"position":{"x":13028.646357813344,"y":19148.79058530685},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA18","config":"{\n \"codeName\": \"sma18\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma18","project":"Superalgos","id":"0cbf493f-fa5f-41a8-a928-754ec9720fe0","savedPayload":{"position":{"x":13347.372799195153,"y":19219.292222188866},"targetPosition":{"x":13100.520254887451,"y":19285.057023997735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"12bf3180-d354-451d-ba14-81cdd9d95c19","savedPayload":{"position":{"x":13100.520254887451,"y":19285.057023997735},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA24","config":"{\n \"codeName\": \"sma24\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma24","project":"Superalgos","id":"4d677df1-74ec-417e-a518-2b8946c84542","savedPayload":{"position":{"x":13360.141975674167,"y":19478.670782592704},"targetPosition":{"x":13108.393900146672,"y":19438.87379146364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3e3a6434-aaa4-4170-8cdc-cca21c8d0863","savedPayload":{"position":{"x":13108.393900146672,"y":19438.87379146364},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA30","config":"{\n \"codeName\": \"sma30\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma30","project":"Superalgos","id":"3a92b258-6c21-4747-ba08-16cf9ba814ec","savedPayload":{"position":{"x":13267.006894894705,"y":19721.917511299434},"targetPosition":{"x":13052.178368936238,"y":19582.47502335127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"22bc84a6-f431-464c-a7e0-b9249b32abdf","savedPayload":{"position":{"x":13052.178368936238,"y":19582.47502335127},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA60","config":"{\n \"codeName\": \"sma60\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma60","project":"Superalgos","id":"d9a44db6-45eb-47f8-975b-ee8dccd0659d","savedPayload":{"position":{"x":13083.105056949393,"y":19906.38760759629},"targetPosition":{"x":12943.108340732419,"y":19691.05840464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c3d4d569-0b7e-44b9-b2f0-84d9a91ee6b0","savedPayload":{"position":{"x":12943.108340732419,"y":19691.05840464},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA120","config":"{\n \"codeName\": \"sma120\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma120","project":"Superalgos","id":"90fee0af-0e23-44de-aa16-d446857485f4","savedPayload":{"position":{"x":12839.6961331139,"y":20000.10704137432},"targetPosition":{"x":12799.363344164169,"y":19746.41445018096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f572d61-ff96-4ccb-90ca-7a26d5cc8322","savedPayload":{"position":{"x":12799.363344164169,"y":19746.41445018096},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA180","config":"{\n \"codeName\": \"sma180\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma180","project":"Superalgos","id":"031e5277-e225-4307-a247-f49dae98ac26","savedPayload":{"position":{"x":12580.072359770787,"y":19986.739674337266},"targetPosition":{"x":12645.99599212076,"y":19738.4472573072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e3eb2e1-3cb4-4f0b-9a5a-5196bb4af3af","savedPayload":{"position":{"x":12645.99599212076,"y":19738.4472573072},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA240","config":"{\n \"codeName\": \"sma240\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma240","project":"Superalgos","id":"cb9604b0-3004-48d5-84fe-680747edb943","savedPayload":{"position":{"x":12348.34363920327,"y":19868.483455275786},"targetPosition":{"x":12509.020271243964,"y":19668.81530964601},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"83c2137c-676d-4a43-88c1-e9a5f69cafeb","savedPayload":{"position":{"x":12509.020271243964,"y":19668.81530964601},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA300","config":"{\n \"codeName\": \"sma300\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma300","project":"Superalgos","id":"8c3259f1-e88b-40a2-9af2-a0e554affbd2","savedPayload":{"position":{"x":12184.214335572466,"y":19665.501086883618},"targetPosition":{"x":12412.16318559575,"y":19549.007697483048},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"829bfd3a-8c69-4e51-8951-a1d7cb0b8c6f","savedPayload":{"position":{"x":12412.16318559575,"y":19549.007697483048},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA600","config":"{\n \"codeName\": \"sma600\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma600","project":"Superalgos","id":"501b1e82-840a-4288-801d-38a5e5c7f7cb","savedPayload":{"position":{"x":12116.720676417353,"y":19414.84523130682},"targetPosition":{"x":12372.563512092525,"y":19400.31128154793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7174f99-231c-4188-8f4a-95a34c0c35f8","savedPayload":{"position":{"x":12372.563512092525,"y":19400.31128154793},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA1200","config":"{\n \"codeName\": \"sma1200\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma1200","project":"Superalgos","id":"0554601a-009b-47a2-8e0c-c7d6f3901a9e","savedPayload":{"position":{"x":12157.35115053918,"y":19169.246307242243},"targetPosition":{"x":12396.796880595488,"y":19247.943201583694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f6f0c544-4054-4cb4-9be1-14ffa23c5251","savedPayload":{"position":{"x":12396.796880595488,"y":19247.943201583694},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a84f4438-cabc-4c9a-bd9c-0338e55a6e15","savedPayload":{"position":{"x":12078.027907712194,"y":18997.285861838933},"targetPosition":{"x":11600.730830411274,"y":18519.988784538014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1200.push(candle.close) // Add the current close value to the last 1200 array.\n\nif (variable.last1200.length > 1200) {\n variable.last1200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1200 elements.\n}\n\nvariable.sma6 = calculateSMA(6)\nvariable.sma12 = calculateSMA(12)\nvariable.sma18 = calculateSMA(18)\nvariable.sma24 = calculateSMA(24)\nvariable.sma30 = calculateSMA(30)\nvariable.sma60 = calculateSMA(60)\nvariable.sma120 = calculateSMA(120)\nvariable.sma180 = calculateSMA(180)\nvariable.sma240 = calculateSMA(240)\nvariable.sma300 = calculateSMA(300)\nvariable.sma600 = calculateSMA(600)\nvariable.sma1200 = calculateSMA(1200)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1200.length - periods; i < variable.last1200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1200.length=\" + variable.last1200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"f2c97b70-717a-4f98-be7c-d76dd94b8227","savedPayload":{"position":{"x":11825.730830411274,"y":19359.700216241014},"targetPosition":{"x":11713.230830411274,"y":19164.844500389514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96841e7b-90d9-4508-8933-4f0f9769800e","savedPayload":{"position":{"x":11713.230830411274,"y":19164.844500389514},"targetPosition":{"x":11600.730830411274,"y":18969.988784538014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"14dcff53-0599-4529-8a5d-5cf92a5c33c8","savedPayload":{"position":{"x":11375.730830411274,"y":19359.700216241014},"targetPosition":{"x":11488.230830411274,"y":19164.844500389514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2863a8f-8f38-4c47-9f48-0bd45b628fa0","savedPayload":{"position":{"x":11488.230830411274,"y":19164.844500389514},"targetPosition":{"x":11600.730830411274,"y":18969.988784538014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"948be5d9-da96-488a-bb15-f8cd94777231","savedPayload":{"position":{"x":11600.730830411274,"y":18969.988784538014},"targetPosition":{"x":11600.730830411274,"y":18519.988784538014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4ae22e54-cd02-4e2e-b638-1c5ea9a171ac","savedPayload":{"position":{"x":11600.730830411274,"y":18519.988784538014},"targetPosition":{"x":11236.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"SMA Base 6","id":"6ace920a-3a4b-4d28-8f04-4c2ecd3dfeb8"}}},{"type":"Product Definition","name":"Base12 SMAs","config":"{\n \"codeName\": \"Base12-SMAs\",\n \"singularVariableName\": \"base12SMA\",\n \"pluralVariableName\": \"base12SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"6ba76363-0f50-4e67-8678-3eb4fd6d07d6","savedPayload":{"position":{"x":11951.17654647416,"y":18619.543068475126},"targetPosition":{"x":11501.17654647416,"y":18619.543068475126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"92d92b3e-6870-499b-bfec-33bab220bf62","savedPayload":{"position":{"x":11865.234193942886,"y":18884.04643200674},"targetPosition":{"x":11501.17654647416,"y":18619.543068475126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"d44292f3-8960-448b-8339-32147b8bb1c3","savedPayload":{"position":{"x":12268.537839892972,"y":19160.66778883406},"targetPosition":{"x":12233.559112923682,"y":19414.005128872792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bcec1860-262e-4125-bdf4-a8f798d9d4ff","savedPayload":{"position":{"x":12233.559112923682,"y":19414.005128872792},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"91264df6-db08-498e-a039-fec9b0cd09a5","savedPayload":{"position":{"x":12528.468904962538,"y":19260.58340178264},"targetPosition":{"x":12388.794395686142,"y":19471.129101190952},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0ef8d741-e876-446e-86ac-146b4f33d8e8","savedPayload":{"position":{"x":12388.794395686142,"y":19471.129101190952},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA12","config":"{\n \"codeName\": \"sma12\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma12","project":"Superalgos","id":"c694dcde-b622-4d71-b2cf-e42e1b4934ec","savedPayload":{"position":{"x":12721.623219845791,"y":19460.514484498093},"targetPosition":{"x":12500.851560287909,"y":19591.98779683995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"daf8aa00-f032-412e-b319-e7c581611db0","savedPayload":{"position":{"x":12500.851560287909,"y":19591.98779683995},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA24","config":"{\n \"codeName\": \"sma24\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma24","project":"Superalgos","id":"445b00ba-46a1-4e79-b762-72c521223b5f","savedPayload":{"position":{"x":12808.521978966688,"y":19725.347412753305},"targetPosition":{"x":12551.98980814482,"y":19747.980357115877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"255fdffa-cdbb-428b-a54e-14448f7cda29","savedPayload":{"position":{"x":12551.98980814482,"y":19747.980357115877},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA36","config":"{\n \"codeName\": \"sma36\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma36","project":"Superalgos","id":"c9c11106-98b6-4fcb-b30b-d49263a05d95","savedPayload":{"position":{"x":12771.19230375399,"y":20001.243759379897},"targetPosition":{"x":12530.784645915264,"y":19910.896189088067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"628c3c4f-7ef7-4008-bada-76e4edf6de42","savedPayload":{"position":{"x":12530.784645915264,"y":19910.896189088067},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA48","config":"{\n \"codeName\": \"sma48\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma48","project":"Superalgos","id":"8e1cfb60-cb51-4625-a36b-75d64381840d","savedPayload":{"position":{"x":12616.012827625196,"y":20232.509685482728},"targetPosition":{"x":12440.757875918833,"y":20049.234354919434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1aa9fd38-51e5-4158-9bb2-31dbc8f933d0","savedPayload":{"position":{"x":12440.757875918833,"y":20049.234354919434},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA60","config":"{\n \"codeName\": \"sma60\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma60","project":"Superalgos","id":"6fe04671-6298-4ef4-9ef8-779eafc1645d","savedPayload":{"position":{"x":12377.539737275205,"y":20375.747388592714},"targetPosition":{"x":12298.29594304106,"y":20131.966711366957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d76d7819-b542-4ee8-98fd-539ec3325e2c","savedPayload":{"position":{"x":12298.29594304106,"y":20131.966711366957},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA120","config":"{\n \"codeName\": \"sma120\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma120","project":"Superalgos","id":"f8abde07-3312-4983-bff2-65ed4f475a3f","savedPayload":{"position":{"x":12100.598608405107,"y":20402.012882846087},"targetPosition":{"x":12134.883822485106,"y":20146.590658265293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0e696147-e020-4056-8ad4-40ad79cba391","savedPayload":{"position":{"x":12134.883822485106,"y":20146.590658265293},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA240","config":"{\n \"codeName\": \"sma240\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma240","project":"Superalgos","id":"1ea2c145-6dcf-4e8a-908a-b12e08a8d658","savedPayload":{"position":{"x":11839.54590068695,"y":20303.914923392564},"targetPosition":{"x":11980.369703744356,"y":20089.790790351974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e02938c9-f5b1-49f7-8e63-f8637f6d1d4d","savedPayload":{"position":{"x":11980.369703744356,"y":20089.790790351974},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA360","config":"{\n \"codeName\": \"sma360\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma360","project":"Superalgos","id":"16ab9e8b-cb14-4a59-b7b3-0a1d13dbea5b","savedPayload":{"position":{"x":11647.368845844165,"y":20102.64379755925},"targetPosition":{"x":11866.446501467308,"y":19970.949212239215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fe671bcf-1d71-4081-a100-f4bbc59203c7","savedPayload":{"position":{"x":11866.446501467308,"y":19970.949212239215},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA480","config":"{\n \"codeName\": \"sma480\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma480","project":"Superalgos","id":"135a34fc-3cc8-4555-b1b9-c8ea03150aff","savedPayload":{"position":{"x":11560.911913255317,"y":19836.792972487285},"targetPosition":{"x":11815.946311079933,"y":19814.105984994203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"85a59bf2-d419-43c9-a287-68902b8cb199","savedPayload":{"position":{"x":11815.946311079933,"y":19814.105984994203},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA600","config":"{\n \"codeName\": \"sma600\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma600","project":"Superalgos","id":"cacf8e3b-77d3-4697-9ca5-51cff50afb6c","savedPayload":{"position":{"x":11598.011325828462,"y":19562.1155933226},"targetPosition":{"x":11838.187213857931,"y":19651.288307289935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"608a2a98-bd6e-49e0-b202-afff3553337d","savedPayload":{"position":{"x":11838.187213857931,"y":19651.288307289935},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA1200","config":"{\n \"codeName\": \"sma1200\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma1200","project":"Superalgos","id":"2e1c84ea-2cb3-4936-8106-623dcdff8782","savedPayload":{"position":{"x":11741.261685859681,"y":19337.76852914406},"targetPosition":{"x":11929.582638764146,"y":19513.73482505784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dda31bad-8835-446a-9015-4e15ae4cb845","savedPayload":{"position":{"x":11929.582638764146,"y":19513.73482505784},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f46175dc-dfd2-4e1e-a60c-554867b5f0a5","savedPayload":{"position":{"x":11709.763017677249,"y":19261.506216974354},"targetPosition":{"x":11501.17654647416,"y":18619.543068475126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1200.push(candle.close) // Add the current close value to the last 1200 array.\n\nif (variable.last1200.length > 1200) {\n variable.last1200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1200 elements.\n}\n\nvariable.sma12 = calculateSMA(12)\nvariable.sma24 = calculateSMA(24)\nvariable.sma36 = calculateSMA(36)\nvariable.sma48 = calculateSMA(48)\nvariable.sma60 = calculateSMA(60)\nvariable.sma120 = calculateSMA(120)\nvariable.sma240 = calculateSMA(240)\nvariable.sma360 = calculateSMA(360)\nvariable.sma480 = calculateSMA(480)\nvariable.sma600 = calculateSMA(600)\nvariable.sma1200 = calculateSMA(1200)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1200.length - periods; i < variable.last1200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1200.length=\" + variable.last1200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"fba7176b-58ff-4bd6-95de-ad6f88de4cda","savedPayload":{"position":{"x":11455.679159873425,"y":19487.68492113816},"targetPosition":{"x":11408.89902943943,"y":19267.601710973053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"daf2fb19-bfda-4248-a0c6-8e364fe863ee","savedPayload":{"position":{"x":11408.89902943943,"y":19267.601710973053},"targetPosition":{"x":11362.118899005434,"y":19047.518500807946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"4d3f1fee-e71d-46cd-a50b-69176de5e1e8","savedPayload":{"position":{"x":11027.703727540606,"y":19348.627273669434},"targetPosition":{"x":11194.91131327302,"y":19198.07288723869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08365c70-c9ba-481d-abb8-62dc21067754","savedPayload":{"position":{"x":11194.91131327302,"y":19198.07288723869},"targetPosition":{"x":11362.118899005434,"y":19047.518500807946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4aa28d66-d2c5-40d1-9b42-b6adb1e94d1c","savedPayload":{"position":{"x":11362.118899005434,"y":19047.518500807946},"targetPosition":{"x":11501.17654647416,"y":18619.543068475126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"723d28e9-a010-48c5-bda0-43a4c2343ddf","savedPayload":{"position":{"x":11501.17654647416,"y":18619.543068475126},"targetPosition":{"x":11236.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition","name":"Base30 SMAs","config":"{\n \"codeName\": \"Base30-SMAs\",\n \"singularVariableName\": \"base30SMA\",\n \"pluralVariableName\": \"base30SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"4c486321-22e0-4991-9a1c-571bada649ad","savedPayload":{"position":{"x":11803.706262744094,"y":18822.518500807946},"targetPosition":{"x":11375.730830411274,"y":18683.46085333922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"819688c9-c7bd-444b-9658-2a4379125c72","savedPayload":{"position":{"x":11640.234193942886,"y":19047.518500807946},"targetPosition":{"x":11375.730830411274,"y":18683.46085333922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"16806650-2bfb-4709-acbd-aca1549c16e8","savedPayload":{"position":{"x":11968.57719225152,"y":19374.30146172853},"targetPosition":{"x":11849.570889732899,"y":19600.041718043874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"265d3765-cd1d-4652-a0ed-01931674a151","savedPayload":{"position":{"x":11849.570889732899,"y":19600.041718043874},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"d0b81562-348b-433f-8524-f9bc909de69e","savedPayload":{"position":{"x":12193.250921530442,"y":19572.61223321748},"targetPosition":{"x":11981.745241798762,"y":19718.013400850094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fe6074be-18c6-46c0-abd4-5d31bc067798","savedPayload":{"position":{"x":11981.745241798762,"y":19718.013400850094},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA30","config":"{\n \"codeName\": \"sma30\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma30","project":"Superalgos","id":"2ef589ba-7f7d-4df5-91fd-9107d67a7792","savedPayload":{"position":{"x":12300.973584614097,"y":19852.362438769094},"targetPosition":{"x":12043.902799440155,"y":19883.18496167935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"72debf77-1c4b-4e8d-9a99-96951bd6d24c","savedPayload":{"position":{"x":12043.902799440155,"y":19883.18496167935},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA60","config":"{\n \"codeName\": \"sma60\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma60","project":"Superalgos","id":"d51798bf-2373-4f5e-b6e4-56aad8117820","savedPayload":{"position":{"x":12263.189989611616,"y":20149.229900795446},"targetPosition":{"x":12024.509598912926,"y":20058.668611217672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78e59381-fcda-4204-a70a-4113eebdbba7","savedPayload":{"position":{"x":12024.509598912926,"y":20058.668611217672},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA90","config":"{\n \"codeName\": \"sma90\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma90","project":"Superalgos","id":"a35a40dd-e5b4-4444-a8da-14eeb79e76b3","savedPayload":{"position":{"x":12092.47070537697,"y":20395.12769549593},"targetPosition":{"x":11923.260601163045,"y":20204.045475181087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"90b3598c-8f08-4dc1-ad41-a64caf0cab39","savedPayload":{"position":{"x":11923.260601163045,"y":20204.045475181087},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA120","config":"{\n \"codeName\": \"sma120\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma120","project":"Superalgos","id":"046bdfe3-d838-425e-8cc0-e117151bdbf8","savedPayload":{"position":{"x":11827.568995315934,"y":20534.33935901192},"targetPosition":{"x":11766.288240413567,"y":20285.32985029943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aa9f7095-66e7-4e42-b6b2-d3a51e3b35d9","savedPayload":{"position":{"x":11766.288240413567,"y":20285.32985029943},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA150","config":"{\n \"codeName\": \"sma150\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma150","project":"Superalgos","id":"8129644d-2b0a-4936-8255-22dc2aada9e7","savedPayload":{"position":{"x":11528.411907950678,"y":20536.294116998004},"targetPosition":{"x":11590.18860235955,"y":20284.844486988317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b0c06b10-549c-4280-aac9-0b649ede898c","savedPayload":{"position":{"x":11590.18860235955,"y":20284.844486988317},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA300","config":"{\n \"codeName\": \"sma300\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma300","project":"Superalgos","id":"23ddb87c-8211-4032-8273-222af79863b5","savedPayload":{"position":{"x":11263.576689406345,"y":20395.65080037283},"targetPosition":{"x":11432.549700421943,"y":20204.69820845169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38b8e859-eda7-4cd9-afc2-ee0e3ed297b7","savedPayload":{"position":{"x":11432.549700421943,"y":20204.69820845169},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA600","config":"{\n \"codeName\": \"sma600\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma600","project":"Superalgos","id":"8f07691b-ccdc-47cc-9c07-3701b61322f9","savedPayload":{"position":{"x":11094.128689311594,"y":20149.03733060192},"targetPosition":{"x":11332.352279952458,"y":20058.53464225396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cebd7a57-eebb-4e4f-9315-6f1411970e55","savedPayload":{"position":{"x":11332.352279952458,"y":20058.53464225396},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA900","config":"{\n \"codeName\": \"sma900\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma900","project":"Superalgos","id":"ed66265d-f971-448f-b395-e0c12c178173","savedPayload":{"position":{"x":11057.115248483686,"y":19852.788016272083},"targetPosition":{"x":11312.030487126085,"y":19883.234286523333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fcbefbb9-2a6d-459a-8d3b-595d71caaa88","savedPayload":{"position":{"x":11312.030487126085,"y":19883.234286523333},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA1200","config":"{\n \"codeName\": \"sma1200\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma1200","project":"Superalgos","id":"3e936d3b-8f40-49da-830c-f73ea5bf271a","savedPayload":{"position":{"x":11162.792697882222,"y":19572.688018186516},"targetPosition":{"x":11374.098633785092,"y":19717.771005017414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"311d2e2d-163e-4b8e-ae99-2b2d0fbbb2aa","savedPayload":{"position":{"x":11374.098633785092,"y":19717.771005017414},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA1500","config":"{\n \"codeName\": \"sma1500\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.sma1500","project":"Superalgos","id":"d4db0dc9-12a2-41c6-8511-43cbfdcfb136","savedPayload":{"position":{"x":11383.37047794033,"y":19375.881276743556},"targetPosition":{"x":11506.966084152566,"y":19600.109115793202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b71b603d-38de-401d-b1df-ca20710dba64","savedPayload":{"position":{"x":11506.966084152566,"y":19600.109115793202},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"229b4129-39f9-4f46-bbb5-a86a714023f8","savedPayload":{"position":{"x":11375.730830411274,"y":19358.46085333922},"targetPosition":{"x":11375.730830411274,"y":18683.46085333922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1500.push(candle.close) // Add the current close value to the last 1500 array.\n\nif (variable.last1500.length > 1500) {\n variable.last1500.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1500 elements.\n}\n\nvariable.sma30 = calculateSMA(30)\nvariable.sma60 = calculateSMA(60)\nvariable.sma90 = calculateSMA(90)\nvariable.sma120 = calculateSMA(120)\nvariable.sma150 = calculateSMA(150)\nvariable.sma300 = calculateSMA(300)\nvariable.sma600 = calculateSMA(600)\nvariable.sma900 = calculateSMA(900)\nvariable.sma1200 = calculateSMA(1200)\nvariable.sma1500 = calculateSMA(1500)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1500.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1500.length - periods; i < variable.last1500.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1500[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1500.length=\" + variable.last1500.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1500[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"382c5abf-a91a-40c0-88c2-7e230e93ed44","savedPayload":{"position":{"x":11064.18965840922,"y":19495.053353723666},"targetPosition":{"x":11087.70856264444,"y":19271.285927265806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d3dab655-2db2-4d4c-a776-91a6ae116304","savedPayload":{"position":{"x":11087.70856264444,"y":19271.285927265806},"targetPosition":{"x":11111.227466879662,"y":19047.518500807946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1500 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1500 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"41af43f4-4f30-404d-8d9e-3ad5e752688c","savedPayload":{"position":{"x":10700.13201094049,"y":19230.54999019206},"targetPosition":{"x":10905.679738910076,"y":19139.034245500003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8611aff-7f4f-4df8-a2ac-b92ef5633ad4","savedPayload":{"position":{"x":10905.679738910076,"y":19139.034245500003},"targetPosition":{"x":11111.227466879662,"y":19047.518500807946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e8bebfde-97db-42d7-93a2-972366bc002c","savedPayload":{"position":{"x":11111.227466879662,"y":19047.518500807946},"targetPosition":{"x":11375.730830411274,"y":18683.46085333922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"607ebabd-9602-4e5c-803d-d4207dbd6794","savedPayload":{"position":{"x":11375.730830411274,"y":18683.46085333922},"targetPosition":{"x":11236.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c1c6f0e0-49f7-4723-bf22-dd24dfee6102","savedPayload":{"position":{"x":11236.673182942548,"y":18255.4854210064},"targetPosition":{"x":10786.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Exponential Moving Average (EMA)","config":"{\n\"codeName\": \"EMA\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates EMAs based on SMAs\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Popular EMAs","project":"Superalgos","id":"4e72640b-d384-434c-a607-47b1c8e4c9ef","savedPayload":{"position":{"x":11342.184438607097,"y":17698.695372266164},"targetPosition":{"x":11446.464633512465,"y":17893.1313848007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ea1af06a-2584-43f0-aecf-ec8ad9169e9c"}}},{"type":"Output Dataset","name":"Multi-Period-Market Base7 EMAs","project":"Superalgos","id":"e554af82-9965-4a5d-a59a-3dc873526ad9","savedPayload":{"position":{"x":11473.821080093669,"y":17690.416998797347},"targetPosition":{"x":11446.464633512465,"y":17893.1313848007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4e36a5a5-7a03-43a9-b3e0-0c5763c29199"}}},{"type":"Output Dataset","name":"Multi-Period-Market Base11 EMAs","project":"Superalgos","id":"fcefc8e1-6900-485f-a5b0-80366450aedf","savedPayload":{"position":{"x":11595.99731062978,"y":17757.616228702624},"targetPosition":{"x":11446.464633512465,"y":17893.1313848007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5586aa74-2ecb-4b71-83ea-d621aa400660"}}}],"outputDatasetFolders":[],"id":"268cf8f3-e871-4fed-bbdb-725a070e7cb6","savedPayload":{"position":{"x":11446.464633512465,"y":17893.1313848007},"targetPosition":{"x":11422.987248828329,"y":18350.198656895645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Exponential Moving Average (EMA) Multi-Period-Market","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"6c163397-f3a4-4acc-b281-567f2809b8a0","savedPayload":{"position":{"x":11620.85611712274,"y":17890.198043416687},"targetPosition":{"x":11668.204830719264,"y":18045.06119113832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"8e7c0f51-727f-4a28-b516-087443ee369f"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{ \n\"mainUtility\": \"Market Ending Point.\"\n}","project":"Superalgos","id":"eb2d5251-f873-4785-80c8-3a75186e6fa9","savedPayload":{"position":{"x":11742.9925821725,"y":17907.567018001842},"targetPosition":{"x":11668.204830719264,"y":18045.06119113832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"7715ed1a-35f7-4b1c-ad79-fcd2486fe2ca","savedPayload":{"position":{"x":11800.657320688659,"y":18018.857789327347},"targetPosition":{"x":11668.204830719264,"y":18045.06119113832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"39426478-777d-4ef5-a72a-2ad862c979c7","savedPayload":{"position":{"x":11668.204830719264,"y":18045.06119113832},"targetPosition":{"x":11422.987248828329,"y":18350.198656895645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"8e7c0f51-727f-4a28-b516-087443ee369f","savedPayload":{"position":{"x":11843.026233085555,"y":18144.023206097358},"targetPosition":{"x":11422.987248828329,"y":18350.198656895645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"19e3e53c-0752-4cae-93bd-162e0839b32f","savedPayload":{"position":{"x":11892.05708309534,"y":18374.976866985693},"targetPosition":{"x":11422.987248828329,"y":18350.198656895645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"f865a93d-38fd-433f-92e6-ccb7f2d33b05","savedPayload":{"position":{"x":11817.021720088042,"y":18606.058749634525},"targetPosition":{"x":11422.987248828329,"y":18350.198656895645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"278c34a7-199d-400e-8a06-087149e3d391","savedPayload":{"position":{"x":11505.824170361258,"y":18369.38774765755},"targetPosition":{"x":11104.871234476494,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Calculates EMAs based on SMAs.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Popular EMAs","project":"Superalgos","id":"24f5e41a-5839-4174-8e74-2fcde5c2f6a4","savedPayload":{"position":{"x":11548.803851704495,"y":17869.091371048136},"targetPosition":{"x":11630.360428925462,"y":18052.503297737738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e7f5899c-fc4c-412d-a8db-77c1bef8ed21"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Base11 EMAs","project":"Superalgos","id":"cf348b8d-e3cb-4841-b064-6bf2a8b54062","savedPayload":{"position":{"x":11702.050233018894,"y":17864.520348617392},"targetPosition":{"x":11630.360428925462,"y":18052.503297737738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"0198fa3f-98e3-4c57-a4a4-a7a8e27905d3"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Base7 EMAs","project":"Superalgos","id":"49d8444c-a216-4d81-8039-fa15683ed461","savedPayload":{"position":{"x":11792.054805474363,"y":17917.47797471867},"targetPosition":{"x":11630.360428925462,"y":18052.503297737738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"15ccbcff-318d-46db-93f2-d649b57fd52a"}}}],"outputDatasetFolders":[],"id":"3864c37f-f9dc-433d-96e4-e36a6720adf1","savedPayload":{"position":{"x":11630.360428925462,"y":18052.503297737738},"targetPosition":{"x":11466.410204099717,"y":18480.477767445645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Exponential Moving Average (EMA) Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"2b523347-3f95-43ab-9ac8-72470000c774","savedPayload":{"position":{"x":11827.282195191654,"y":18042.310511479678},"targetPosition":{"x":11830.337591675547,"y":18186.461734191125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"fb2c8ec5-75ff-41e9-8782-60a952bd06e8"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"5c6a74d3-7f45-409c-a408-fe3c67c050e9","savedPayload":{"position":{"x":11953.125485063545,"y":18007.78863263712},"targetPosition":{"x":11830.337591675547,"y":18186.461734191125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"dbfe665f-e805-40f4-a494-231cc265acc8","savedPayload":{"position":{"x":12022.507719742785,"y":18112.82877244633},"targetPosition":{"x":11830.337591675547,"y":18186.461734191125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"70d56a4f-6375-456e-b797-d590ab2109a3","savedPayload":{"position":{"x":12025.18881794876,"y":18244.360705363368},"targetPosition":{"x":11830.337591675547,"y":18186.461734191125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"b5b3313a-d8e6-4b64-9300-fdc6693a2cb7","savedPayload":{"position":{"x":11830.337591675547,"y":18186.461734191125},"targetPosition":{"x":11466.410204099717,"y":18480.477767445645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"fb2c8ec5-75ff-41e9-8782-60a952bd06e8","savedPayload":{"position":{"x":11929.3264044669,"y":18407.33295342068},"targetPosition":{"x":11466.410204099717,"y":18480.477767445645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"41fe3adc-42c9-4f5d-b757-13cedd7e0155","savedPayload":{"position":{"x":11903.945195008377,"y":18648.768079429585},"targetPosition":{"x":11466.410204099717,"y":18480.477767445645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"e232777d-86ee-4bb4-9a6d-659f06493aa5","savedPayload":{"position":{"x":11761.593248385612,"y":18845.391657675584},"targetPosition":{"x":11466.410204099717,"y":18480.477767445645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2","savedPayload":{"position":{"x":11549.330987744306,"y":18503.287963272243},"targetPosition":{"x":11104.871234476494,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Popular EMAs","config":"{\n \"codeName\": \"Popular-EMAs\",\n \"singularVariableName\": \"popularEMA\",\n \"pluralVariableName\": \"popularEMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"ea1af06a-2584-43f0-aecf-ec8ad9169e9c","savedPayload":{"position":{"x":11708.430013511279,"y":18484.979956041476},"targetPosition":{"x":11549.330987744306,"y":18644.07898180845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"e7f5899c-fc4c-412d-a8db-77c1bef8ed21","savedPayload":{"position":{"x":11771.560864378213,"y":18608.881227174395},"targetPosition":{"x":11549.330987744306,"y":18644.07898180845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"a88a6b8e-0c81-45f5-b69f-33ead2c9af2a","savedPayload":{"position":{"x":12789.832680951025,"y":18714.0750067526},"targetPosition":{"x":12841.609923854667,"y":18972.42552512846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"60b742b7-4a6b-4c3a-a924-7ae2c7c284d8","savedPayload":{"position":{"x":12841.609923854667,"y":18972.42552512846},"targetPosition":{"x":12916.076987855111,"y":19342.271291723184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"f12e6638-8bbd-4bff-b969-232c1861b45c","savedPayload":{"position":{"x":13324.514309764189,"y":18853.944662394337},"targetPosition":{"x":13155.673275761106,"y":19055.77487546145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"87688525-3fc6-4a15-806d-fd8d0f3fd876","savedPayload":{"position":{"x":13155.673275761106,"y":19055.77487546145},"targetPosition":{"x":12916.076987855111,"y":19342.271291723184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA20","config":"{\n \"codeName\": \"ema20\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema20","project":"Superalgos","id":"71d926a1-6f74-452c-a8af-2df52ccfceb2","savedPayload":{"position":{"x":13551.594374852302,"y":19355.2829907094},"targetPosition":{"x":13288.82795801272,"y":19349.843948150155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5058b626-2b62-47c3-a915-12d6d451487c","savedPayload":{"position":{"x":13288.82795801272,"y":19349.843948150155},"targetPosition":{"x":12916.076987855111,"y":19342.271291723184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA50","config":"{\n \"codeName\": \"ema50\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema50","project":"Superalgos","id":"7d744a34-29cc-46fa-89c9-a3258bbf79f6","savedPayload":{"position":{"x":13303.603563216959,"y":19845.58763452959},"targetPosition":{"x":13142.179059431048,"y":19635.939523601242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1293683f-1686-47f2-8856-ce40dc753450","savedPayload":{"position":{"x":13142.179059431048,"y":19635.939523601242},"targetPosition":{"x":12916.076987855111,"y":19342.271291723184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA100","config":"{\n \"codeName\": \"ema100\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema100","project":"Superalgos","id":"c0465aae-99b4-488f-801b-f0c96c30a695","savedPayload":{"position":{"x":12775.867358662337,"y":19939.58494993326},"targetPosition":{"x":12824.71879386199,"y":19701.181919011175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2b72da7-da22-46bb-8f7b-1f2b4fdc0324","savedPayload":{"position":{"x":12824.71879386199,"y":19701.181919011175},"targetPosition":{"x":12916.076987855111,"y":19342.271291723184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA200","config":"{\n \"codeName\": \"ema200\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema200","project":"Superalgos","id":"4ef9d626-2bf5-4a0b-bb72-6528f0ece6eb","savedPayload":{"position":{"x":12340.117146671004,"y":19601.503331718177},"targetPosition":{"x":12579.562572171752,"y":19493.686388158552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e3b4c1a-8cff-4999-b8af-d8403ee3f614","savedPayload":{"position":{"x":12579.562572171752,"y":19493.686388158552},"targetPosition":{"x":12916.076987855111,"y":19342.271291723184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3a6ab821-f693-4929-a0d7-ad0499d23e68","savedPayload":{"position":{"x":12150.760391571455,"y":18950.52256913264},"targetPosition":{"x":11549.330987744306,"y":18644.07898180845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current \n\nvariable.ema20 = calculateEMA(20, candle.close, variable.previousEMA20)\nvariable.previousEMA20 = variable.ema20 \n \nvariable.ema50 = calculateEMA(50, candle.close, variable.previousEMA50)\nvariable.previousEMA50 = variable.ema50 \n\nvariable.ema100 = calculateEMA(100, candle.close, variable.previousEMA100)\nvariable.previousEMA100 = variable.ema100 \n\nvariable.ema200 = calculateEMA(200, candle.close, variable.previousEMA200)\nvariable.previousEMA200 = variable.ema200 \n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","project":"Superalgos","id":"25aad3fa-6c8f-46b0-8852-07a95544d6bd","savedPayload":{"position":{"x":11840.179727973424,"y":18967.099232629214},"targetPosition":{"x":11745.829289079564,"y":18905.827341190023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d4805ae2-446b-4e54-89c6-0b2e9df3fade","savedPayload":{"position":{"x":11745.829289079564,"y":18905.827341190023},"targetPosition":{"x":11651.478850185704,"y":18844.55544975083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA20 = 0\nvariable.previousEMA50 = 0\nvariable.previousEMA100 = 0\nvariable.previousEMA200 = 0","project":"Superalgos","id":"c5b50764-185a-43a8-b399-62dd6d81a249","savedPayload":{"position":{"x":11639.703260031041,"y":19069.24709507061},"targetPosition":{"x":11645.591055108373,"y":18956.90127241072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6dd7dc20-5c47-4226-8abc-8551b6bd698f","savedPayload":{"position":{"x":11645.591055108373,"y":18956.90127241072},"targetPosition":{"x":11651.478850185704,"y":18844.55544975083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4c2e867a-f31c-4356-be35-138cdc902c15","savedPayload":{"position":{"x":11651.478850185704,"y":18844.55544975083},"targetPosition":{"x":11549.330987744306,"y":18644.07898180845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d5894707-b065-429b-ba6b-78c71e6529fe","savedPayload":{"position":{"x":11549.330987744306,"y":18644.07898180845},"targetPosition":{"x":11104.871234476494,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"EMA Popular","id":"79bf7438-f77a-4c8d-a450-67027d5fd8bc"}}},{"type":"Product Definition","name":"Base5 EMAs","config":"{\n \"codeName\": \"Base5-EMAs\",\n \"singularVariableName\": \"base5EMA\",\n \"pluralVariableName\": \"base5EMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"85e3f0ce-5331-4c0b-900a-e73aaf53d96e","savedPayload":{"position":{"x":11906.777106246023,"y":18573.683472540346},"targetPosition":{"x":11505.824170361258,"y":18777.97919742314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"e04edb48-09ab-4f92-beb7-14ba647de7d6","savedPayload":{"position":{"x":11950.283923629071,"y":18848.374706691244},"targetPosition":{"x":11505.824170361258,"y":18777.97919742314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"6d1e00cd-ea21-4c5d-9f21-bbe4e18eaaa1","savedPayload":{"position":{"x":12427.089474399869,"y":19214.527432051495},"targetPosition":{"x":12519.875040469116,"y":19461.458907421842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7804f5d6-913b-48d3-941a-10135819f0d7","savedPayload":{"position":{"x":12519.875040469116,"y":19461.458907421842},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"615487b1-0964-4bfc-800e-f8d3471dfeb0","savedPayload":{"position":{"x":12686.95398006164,"y":19173.718175763453},"targetPosition":{"x":12672.12273290542,"y":19436.369853679622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5aaf85b9-35bd-47f1-a2a4-dcfa881bc542","savedPayload":{"position":{"x":12672.12273290542,"y":19436.369853679622},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA5","config":"{\n \"codeName\": \"ema5\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema5","project":"Superalgos","id":"1abd53a1-2924-4db2-b50c-06e36aa91e47","savedPayload":{"position":{"x":12941.855172862051,"y":19241.605541334295},"targetPosition":{"x":12821.283213874165,"y":19476.66088073584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4912e0cb-1bba-4750-a063-d8d205091281","savedPayload":{"position":{"x":12821.283213874165,"y":19476.66088073584},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA10","config":"{\n \"codeName\": \"ema10\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema10","project":"Superalgos","id":"00ca97c2-f4e9-4d08-af83-3fee7e5d1887","savedPayload":{"position":{"x":13146.034629246624,"y":19408.716563856844},"targetPosition":{"x":12942.009683286571,"y":19573.41412161195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7e888a6-a986-45fe-804d-c4cba934bd9b","savedPayload":{"position":{"x":12942.009683286571,"y":19573.41412161195},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA15","config":"{\n \"codeName\": \"ema15\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema15","project":"Superalgos","id":"f259ce57-d1c2-4196-8e55-dae9f1eb78f5","savedPayload":{"position":{"x":13267.02890205934,"y":19643.405638559183},"targetPosition":{"x":13010.961225606261,"y":19711.84920841072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9720b3bd-fcb9-4997-9fe8-9d8682aa9dc9","savedPayload":{"position":{"x":13010.961225606261,"y":19711.84920841072},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA20","config":"{\n \"codeName\": \"ema20\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema20","project":"Superalgos","id":"5c7d8482-a86c-4ebc-8524-31b1a73900c3","savedPayload":{"position":{"x":13279.855907171328,"y":19906.581409986815},"targetPosition":{"x":13020.187491704226,"y":19865.84035756413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"716e98b8-640e-4653-9c50-ca0286c851c0","savedPayload":{"position":{"x":13020.187491704226,"y":19865.84035756413},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA25","config":"{\n \"codeName\": \"ema25\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema25","project":"Superalgos","id":"031e3d2f-b487-4df2-9892-845d3e43916a","savedPayload":{"position":{"x":13186.12650309235,"y":20154.219535971984},"targetPosition":{"x":12963.471736980333,"y":20010.437326311196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"56be5d1d-2bd8-42dd-9861-729f4bb72ccf","savedPayload":{"position":{"x":12963.471736980333,"y":20010.437326311196},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA50","config":"{\n \"codeName\": \"ema50\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema50","project":"Superalgos","id":"309f068f-74e5-4405-8267-418ea12ca20d","savedPayload":{"position":{"x":13000.839039050788,"y":20340.553724968628},"targetPosition":{"x":12855.60490703426,"y":20119.184924442336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed5849ae-b0fe-4915-b8c3-8bdb004e5acf","savedPayload":{"position":{"x":12855.60490703426,"y":20119.184924442336},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA100","config":"{\n \"codeName\": \"ema100\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema100","project":"Superalgos","id":"6b164582-e3a2-4ea0-bc0a-e362929d556f","savedPayload":{"position":{"x":12787.455413724932,"y":20450.937033392693},"targetPosition":{"x":12711.436832070842,"y":20175.402555433295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7f690611-834a-4048-bf59-5685995167e9","savedPayload":{"position":{"x":12711.436832070842,"y":20175.402555433295},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA150","config":"{\n \"codeName\": \"ema150\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema150","project":"Superalgos","id":"829731e3-421a-4b49-ac4d-69cc76cdbfab","savedPayload":{"position":{"x":12507.149856883621,"y":20429.436877871114},"targetPosition":{"x":12556.962239489276,"y":20167.20119327036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6b51dbbf-76eb-484b-9535-6043984a7ed6","savedPayload":{"position":{"x":12556.962239489276,"y":20167.20119327036},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA200","config":"{\n \"codeName\": \"ema200\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema200","project":"Superalgos","id":"3786f9d4-064e-43ba-8098-d336cd64cfb4","savedPayload":{"position":{"x":12252.580968670834,"y":20295.434751720113},"targetPosition":{"x":12418.958123532004,"y":20096.330422260162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9f96cb9c-ac78-4d23-80e7-650dcff0a56a","savedPayload":{"position":{"x":12418.958123532004,"y":20096.330422260162},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA250","config":"{\n \"codeName\": \"ema250\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema250","project":"Superalgos","id":"710f1d8e-a59f-41d9-9576-e73e292d5cac","savedPayload":{"position":{"x":12099.829884804501,"y":20094.975961394204},"targetPosition":{"x":12322.162443358298,"y":19976.089893629236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e3fc138-8765-46af-95a3-6ee316f49a72","savedPayload":{"position":{"x":12322.162443358298,"y":19976.089893629236},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA500","config":"{\n \"codeName\": \"ema500\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema500","project":"Superalgos","id":"8be9f984-f4ad-471c-885d-b0291c74f04f","savedPayload":{"position":{"x":12021.702230197938,"y":19838.469174153186},"targetPosition":{"x":12282.682962682182,"y":19826.135215873088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"05a21cb3-24bc-42cf-8269-62f14e8f3ed1","savedPayload":{"position":{"x":12282.682962682182,"y":19826.135215873088},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA1000","config":"{\n \"codeName\": \"ema1000\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema1000","project":"Superalgos","id":"1001e9de-822a-4a75-9526-390dc6be8fe7","savedPayload":{"position":{"x":12061.671743245559,"y":19580.889144696546},"targetPosition":{"x":12307.352873096715,"y":19673.457423317934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cc878593-3f3d-4533-9ed1-a7c7fd0cdd99","savedPayload":{"position":{"x":12307.352873096715,"y":19673.457423317934},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7133bdf5-a6d6-4ca5-bc27-390fe276eca6","savedPayload":{"position":{"x":11983.121247662179,"y":19255.27627472406},"targetPosition":{"x":11505.824170361258,"y":18777.97919742314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current \n\nvariable.ema5 = calculateEMA(5, candle.close, variable.previousEMA5)\nvariable.previousEMA5 = variable.ema5\n\nvariable.ema10 = calculateEMA(10, candle.close, variable.previousEMA10)\nvariable.previousEMA10 = variable.ema10\n\nvariable.ema15 = calculateEMA(15, candle.close, variable.previousEMA15)\nvariable.previousEMA15 = variable.ema15\n\nvariable.ema20 = calculateEMA(20, candle.close, variable.previousEMA20)\nvariable.previousEMA20 = variable.ema20\n\nvariable.ema25 = calculateEMA(25, candle.close, variable.previousEMA25)\nvariable.previousEMA25 = variable.ema25\n\nvariable.ema50 = calculateEMA(50, candle.close, variable.previousEMA50)\nvariable.previousEMA50 = variable.ema50\n\nvariable.ema100 = calculateEMA(100, candle.close, variable.previousEMA100)\nvariable.previousEMA100 = variable.ema100\n\nvariable.ema150 = calculateEMA(150, candle.close, variable.previousEMA150)\nvariable.previousEMA150 = variable.ema150\n\nvariable.ema200 = calculateEMA(200, candle.close, variable.previousEMA200)\nvariable.previousEMA200 = variable.ema200\n\nvariable.ema250 = calculateEMA(250, candle.close, variable.previousEMA250)\nvariable.previousEMA250 = variable.ema250\n\nvariable.ema500 = calculateEMA(500, candle.close, variable.previousEMA500)\nvariable.previousEMA500 = variable.ema500\n\nvariable.ema1000 = calculateEMA(1000, candle.close, variable.previousEMA1000)\nvariable.previousEMA1000 = variable.ema1000\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}\n","project":"Superalgos","id":"3ea21697-ef5d-421a-825c-db6f04a041ce","savedPayload":{"position":{"x":11859.413855601792,"y":19572.154633346592},"targetPosition":{"x":11717.816767615577,"y":19397.296792018773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d955ad88-0ca4-443b-8d4e-fa0c322d7797","savedPayload":{"position":{"x":11717.816767615577,"y":19397.296792018773},"targetPosition":{"x":11576.219679629363,"y":19222.438950690954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA5 = 0\nvariable.previousEMA10 = 0\nvariable.previousEMA15 = 0\nvariable.previousEMA20 = 0\nvariable.previousEMA25 = 0\nvariable.previousEMA50 = 0\nvariable.previousEMA100 = 0\nvariable.previousEMA150 = 0\nvariable.previousEMA200 = 0\nvariable.previousEMA250 = 0\nvariable.previousEMA500 = 0\nvariable.previousEMA1000 = 0","project":"Superalgos","id":"b951bfdc-9216-4494-8bcf-66099ea9eb8f","savedPayload":{"position":{"x":11414.954102333979,"y":19642.55014261469},"targetPosition":{"x":11495.58689098167,"y":19432.494546652822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2aa36b6f-bde7-433d-a7b6-e646b19e2c20","savedPayload":{"position":{"x":11495.58689098167,"y":19432.494546652822},"targetPosition":{"x":11576.219679629363,"y":19222.438950690954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"54d9ab04-cfe7-433e-8c85-36a511b38d6d","savedPayload":{"position":{"x":11576.219679629363,"y":19222.438950690954},"targetPosition":{"x":11505.824170361258,"y":18777.97919742314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9a37881e-7d9a-4279-95b2-8743de82eec5","savedPayload":{"position":{"x":11505.824170361258,"y":18777.97919742314},"targetPosition":{"x":11104.871234476494,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition","name":"Base6 EMAs","config":"{\n \"codeName\": \"Base6-EMAs\",\n \"singularVariableName\": \"base6EMA\",\n \"pluralVariableName\": \"base6EMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"6b6840f7-3b76-474a-9d27-9515cbcd6499","savedPayload":{"position":{"x":11867.529039278252,"y":18821.48601480619},"targetPosition":{"x":11423.06928601044,"y":18891.88152407429},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"ef3d5a7d-11eb-4ead-8e24-49ac7c80b0c7","savedPayload":{"position":{"x":11824.022221895204,"y":19096.177248957087},"targetPosition":{"x":11423.06928601044,"y":18891.88152407429},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"611ac809-a75a-4550-b9a7-2f5f43cae1e8","savedPayload":{"position":{"x":12228.885700862014,"y":19590.326708573935},"targetPosition":{"x":12241.214880126547,"y":19852.057412966074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"77290003-4665-4c78-bce6-7cb50a44bb31","savedPayload":{"position":{"x":12241.214880126547,"y":19852.057412966074},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"59bd5c2f-dd37-4724-8b40-593ba56967ba","savedPayload":{"position":{"x":12472.583529310243,"y":19628.82887311675},"targetPosition":{"x":12377.789802689931,"y":19873.31616417988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"70c54561-94ce-4d2a-a56e-cf1cd4d2a2f5","savedPayload":{"position":{"x":12377.789802689931,"y":19873.31616417988},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA6","config":"{\n \"codeName\": \"ema6\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema6","project":"Superalgos","id":"330b3cad-7015-4691-98ff-e6c0aaeaa807","savedPayload":{"position":{"x":12679.455063453941,"y":19763.182123303814},"targetPosition":{"x":12493.043764561171,"y":19948.748784695268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a7e48821-628f-4393-9272-055bcc8ea5f7","savedPayload":{"position":{"x":12493.043764561171,"y":19948.748784695268},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA12","config":"{\n \"codeName\": \"ema12\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema12","project":"Superalgos","id":"7679a1d7-49b9-4798-82d2-f00dbfd7db05","savedPayload":{"position":{"x":12814.654790257631,"y":19970.284578227125},"targetPosition":{"x":12568.3307490773,"y":20064.615456273226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"53cda9a0-2acf-4fa9-b52b-c860da5dbb32","savedPayload":{"position":{"x":12568.3307490773,"y":20064.615456273226},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA18","config":"{\n \"codeName\": \"ema18\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema18","project":"Superalgos","id":"092a466e-c714-41b3-8053-a4c060520f3c","savedPayload":{"position":{"x":12853.174769842226,"y":20214.266187707788},"targetPosition":{"x":12590.538503128391,"y":20200.632977848978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"446296f9-21fa-4a92-bc49-23fb81af896b","savedPayload":{"position":{"x":12590.538503128391,"y":20200.632977848978},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA24","config":"{\n \"codeName\": \"ema24\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema24","project":"Superalgos","id":"f666cf13-3e37-4649-a2fc-338fabb1f7d0","savedPayload":{"position":{"x":12788.552995118152,"y":20453.226168731653},"targetPosition":{"x":12554.816905458367,"y":20334.246017545032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"518927a0-e986-4c9e-a645-75c02c2f571b","savedPayload":{"position":{"x":12554.816905458367,"y":20334.246017545032},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA30","config":"{\n \"codeName\": \"ema30\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema30","project":"Superalgos","id":"3c76eaaf-56ac-4e91-9ee5-11b32219d2ea","savedPayload":{"position":{"x":12633.201006665211,"y":20645.110266925676},"targetPosition":{"x":12467.39994890623,"y":20441.466343533146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3b056114-3148-432d-908e-d82df0355b7f","savedPayload":{"position":{"x":12467.39994890623,"y":20441.466343533146},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA60","config":"{\n \"codeName\": \"ema60\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema60","project":"Superalgos","id":"ee78d4d5-f202-4d8e-ae88-eea38f2d0bc0","savedPayload":{"position":{"x":12414.143449967978,"y":20758.10794926402},"targetPosition":{"x":12344.888199013807,"y":20503.508381075742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"83802e58-4437-4ddc-b329-9ae962866387","savedPayload":{"position":{"x":12344.888199013807,"y":20503.508381075742},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA120","config":"{\n \"codeName\": \"ema120\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema120","project":"Superalgos","id":"ab81fc7a-4873-49d2-a3ef-c9c1eed99dba","savedPayload":{"position":{"x":12195.208012402378,"y":20760.959153076812},"targetPosition":{"x":12203.438376784601,"y":20509.335962430476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bec21f4d-ac0c-4b70-a565-16d065d1e89c","savedPayload":{"position":{"x":12203.438376784601,"y":20509.335962430476},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA180","config":"{\n \"codeName\": \"ema180\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema180","project":"Superalgos","id":"ce0ce81c-9577-4cc6-8edd-ad99c52916aa","savedPayload":{"position":{"x":11941.452170228149,"y":20694.569416798513},"targetPosition":{"x":12078.792679642833,"y":20461.9455439698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7318a961-0663-4a33-9295-21a8ab990854","savedPayload":{"position":{"x":12078.792679642833,"y":20461.9455439698},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA240","config":"{\n \"codeName\": \"ema240\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema240","project":"Superalgos","id":"f9c4fe37-e76d-4601-9933-ce1ad3e8ad3d","savedPayload":{"position":{"x":11770.471566183489,"y":20518.842516919256},"targetPosition":{"x":11981.204444376966,"y":20363.212181876897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b2bfa489-cb63-498e-8a80-a82ebf19d0e6","savedPayload":{"position":{"x":11981.204444376966,"y":20363.212181876897},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA300","config":"{\n \"codeName\": \"ema300\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema300","project":"Superalgos","id":"8b93fa9d-ea11-4654-a6ac-70411f0db75a","savedPayload":{"position":{"x":11679.082445775359,"y":20286.546512755503},"targetPosition":{"x":11937.98713613367,"y":20246.0037176514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a6926058-2ae5-454e-b696-b9d49162e901","savedPayload":{"position":{"x":11937.98713613367,"y":20246.0037176514},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA600","config":"{\n \"codeName\": \"ema600\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema600","project":"Superalgos","id":"b67f8d22-c54d-4a21-a726-a8975c10d710","savedPayload":{"position":{"x":11686.174999369192,"y":20026.465026809707},"targetPosition":{"x":11939.21531213626,"y":20096.883363283137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cd299cac-3be1-4899-8816-70baccd30168","savedPayload":{"position":{"x":11939.21531213626,"y":20096.883363283137},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA1200","config":"{\n \"codeName\": \"ema1200\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema1200","project":"Superalgos","id":"f7b1d5d4-86c8-4a90-a98a-774fe1171e73","savedPayload":{"position":{"x":11798.572568797994,"y":19812.37988448967},"targetPosition":{"x":12000.857341035571,"y":19976.81141774428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"717ba1d7-3b27-4f87-8e25-c2a26f435e67","savedPayload":{"position":{"x":12000.857341035571,"y":19976.81141774428},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"003162cf-ab76-4dea-ac72-a4dd3a0e87ac","savedPayload":{"position":{"x":11729.512873334634,"y":19493.31092790144},"targetPosition":{"x":11423.06928601044,"y":18891.88152407429},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current \n\nvariable.ema6 = calculateEMA(6, candle.close, variable.previousEMA6)\nvariable.previousEMA6 = variable.ema6\n\nvariable.ema12 = calculateEMA(12, candle.close, variable.previousEMA12)\nvariable.previousEMA12 = variable.ema12\n\nvariable.ema18 = calculateEMA(18, candle.close, variable.previousEMA18)\nvariable.previousEMA18 = variable.ema18\n\nvariable.ema24 = calculateEMA(24, candle.close, variable.previousEMA24)\nvariable.previousEMA24 = variable.ema24\n\nvariable.ema30 = calculateEMA(30, candle.close, variable.previousEMA30)\nvariable.previousEMA30 = variable.ema30\n\nvariable.ema60 = calculateEMA(60, candle.close, variable.previousEMA60)\nvariable.previousEMA60 = variable.ema60\n\nvariable.ema120 = calculateEMA(120, candle.close, variable.previousEMA120)\nvariable.previousEMA120 = variable.ema120\n\nvariable.ema180 = calculateEMA(180, candle.close, variable.previousEMA180)\nvariable.previousEMA180 = variable.ema180\n\nvariable.ema240 = calculateEMA(240, candle.close, variable.previousEMA240)\nvariable.previousEMA240 = variable.ema240\n\nvariable.ema300 = calculateEMA(300, candle.close, variable.previousEMA300)\nvariable.previousEMA300 = variable.ema300\n\nvariable.ema600 = calculateEMA(600, candle.close, variable.previousEMA600)\nvariable.previousEMA600 = variable.ema600\n\nvariable.ema1200 = calculateEMA(1200, candle.close, variable.previousEMA1200)\nvariable.previousEMA1200 = variable.ema1200\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","project":"Superalgos","id":"49789f74-3691-45b3-8c29-9a72500ae81c","savedPayload":{"position":{"x":11513.939354037719,"y":19756.45246926584},"targetPosition":{"x":11433.306565390027,"y":19546.396873303973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed1c9899-0b00-4cc5-b30d-faefdbe914d6","savedPayload":{"position":{"x":11433.306565390027,"y":19546.396873303973},"targetPosition":{"x":11352.673776742335,"y":19336.341277342104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA6 = 0\nvariable.previousEMA12 = 0\nvariable.previousEMA18 = 0\nvariable.previousEMA24 = 0\nvariable.previousEMA30 = 0\nvariable.previousEMA60 = 0\nvariable.previousEMA120 = 0\nvariable.previousEMA180 = 0\nvariable.previousEMA240 = 0\nvariable.previousEMA300 = 0\nvariable.previousEMA600 = 0\nvariable.previousEMA1200 = 0","project":"Superalgos","id":"db307137-4eec-41a0-93ca-af5623c7ecf5","savedPayload":{"position":{"x":11069.47960076991,"y":19686.056959997743},"targetPosition":{"x":11211.076688756122,"y":19511.199118669923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2c17eb75-3069-47ad-b303-be44390e4736","savedPayload":{"position":{"x":11211.076688756122,"y":19511.199118669923},"targetPosition":{"x":11352.673776742335,"y":19336.341277342104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bd1f404b-64bb-4f2e-95f6-8d52f40bebad","savedPayload":{"position":{"x":11352.673776742335,"y":19336.341277342104},"targetPosition":{"x":11423.06928601044,"y":18891.88152407429},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e4267570-575b-4e59-9667-cb78aaae052c","savedPayload":{"position":{"x":11423.06928601044,"y":18891.88152407429},"targetPosition":{"x":11104.871234476494,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition","name":"Base7 EMAs","config":"{\n \"codeName\": \"Base7-EMAs\",\n \"singularVariableName\": \"base7EMA\",\n \"pluralVariableName\": \"base7EMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"4e36a5a5-7a03-43a9-b3e0-0c5763c29199","savedPayload":{"position":{"x":11753.626712627101,"y":19045.031917693213},"targetPosition":{"x":11309.166959359289,"y":18974.63640842511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"15ccbcff-318d-46db-93f2-d649b57fd52a","savedPayload":{"position":{"x":11627.365010893234,"y":19292.834459959056},"targetPosition":{"x":11309.166959359289,"y":18974.63640842511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"b91e2094-b8f7-4f7f-a956-30de55c693b7","savedPayload":{"position":{"x":11921.386899029061,"y":19799.28977521995},"targetPosition":{"x":11852.436615833525,"y":20052.229516474577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5163d7f4-3b6c-41c3-b7f6-ec13109fcb0e","savedPayload":{"position":{"x":11852.436615833525,"y":20052.229516474577},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"ea560ee8-06c9-4348-a5b4-24992035245e","savedPayload":{"position":{"x":12156.232617451013,"y":19918.784046393226},"targetPosition":{"x":11990.697515965989,"y":20122.095617031184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4b5dcfda-66ec-4a20-9c4c-0718b51cf761","savedPayload":{"position":{"x":11990.697515965989,"y":20122.095617031184},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA7","config":"{\n \"codeName\": \"ema7\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema7","project":"Superalgos","id":"90e20354-4dd5-4e56-aaf5-cf725f02c1e6","savedPayload":{"position":{"x":12322.280430215014,"y":20123.696361859318},"targetPosition":{"x":12088.088497855908,"y":20242.393098360673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4adf5737-3d1a-4610-9a31-89faddbe679e","savedPayload":{"position":{"x":12088.088497855908,"y":20242.393098360673},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA14","config":"{\n \"codeName\": \"ema14\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema14","project":"Superalgos","id":"b158c3b7-a93f-4e13-8d80-dff1a7172416","savedPayload":{"position":{"x":12390.247302727832,"y":20378.358794877557},"targetPosition":{"x":12128.314113456683,"y":20391.735498547845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c0f0982-caf3-4c7e-a729-54c511ffb65e","savedPayload":{"position":{"x":12128.314113456683,"y":20391.735498547845},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA21","config":"{\n \"codeName\": \"ema21\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema21","project":"Superalgos","id":"3ce74000-2892-4b42-a12e-c8efc1504710","savedPayload":{"position":{"x":12353.623101434918,"y":20640.858218990732},"targetPosition":{"x":12108.447900486917,"y":20546.75311445651},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ff999b95-7623-4eee-b11c-f53dae69f69c","savedPayload":{"position":{"x":12108.447900486917,"y":20546.75311445651},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA28","config":"{\n \"codeName\": \"ema28\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema28","project":"Superalgos","id":"95ccd057-5e33-4b72-a7b0-e44479f3b195","savedPayload":{"position":{"x":12205.331269700993,"y":20860.3003950131},"targetPosition":{"x":12019.416320110107,"y":20674.57915328522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a30ef925-4ab9-45f6-98f3-6723e57fbf97","savedPayload":{"position":{"x":12019.416320110107,"y":20674.57915328522},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA35","config":"{\n \"codeName\": \"ema35\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema35","project":"Superalgos","id":"83513896-dfd7-45a8-aa9a-1922dc9b5b97","savedPayload":{"position":{"x":11984.885222202665,"y":21004.38443550891},"targetPosition":{"x":11890.11474675851,"y":20758.3849767628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2d2b734-e754-4b6c-856b-053eb5b13694","savedPayload":{"position":{"x":11890.11474675851,"y":20758.3849767628},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA70","config":"{\n \"codeName\": \"ema70\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema70","project":"Superalgos","id":"23ca8b8e-400b-4638-946c-c871a632d17b","savedPayload":{"position":{"x":11723.887851985306,"y":21045.31601848717},"targetPosition":{"x":11736.777553200634,"y":20783.38066415148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"863c717d-d171-4616-ac79-dd4a5956bfb5","savedPayload":{"position":{"x":11736.777553200634,"y":20783.38066415148},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA140","config":"{\n \"codeName\": \"ema140\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema140","project":"Superalgos","id":"fb446f49-e024-4246-9783-d41ea25a8a63","savedPayload":{"position":{"x":11471.933878799762,"y":20980.457028158253},"targetPosition":{"x":11591.583290224204,"y":20745.02854844544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ba2fbf20-a074-4d89-b1f8-2e00f141b25e","savedPayload":{"position":{"x":11591.583290224204,"y":20745.02854844544},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EM210","config":"{\n \"codeName\": \"ema210\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema210","project":"Superalgos","id":"dd3ed495-e64d-4b76-ba8a-8a6fbaebc223","savedPayload":{"position":{"x":11265.072267424279,"y":20812.172466846707},"targetPosition":{"x":11468.150560580634,"y":20645.283590636987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fbc7524a-d8ff-40c4-9691-1397bd774535","savedPayload":{"position":{"x":11468.150560580634,"y":20645.283590636987},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA280","config":"{\n \"codeName\": \"ema280\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema280","project":"Superalgos","id":"45655778-7860-46a8-9ee1-12ab9d4f463b","savedPayload":{"position":{"x":11152.57394786883,"y":20592.990659899777},"targetPosition":{"x":11397.34437241478,"y":20506.672281083658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"49670f83-5516-4fed-bfc9-3ea4ac3a4865","savedPayload":{"position":{"x":11397.34437241478,"y":20506.672281083658},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA350","config":"{\n \"codeName\": \"ema350\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema350","project":"Superalgos","id":"6203288d-a807-49ee-a209-4466b959be33","savedPayload":{"position":{"x":11135.34252325847,"y":20333.939031727885},"targetPosition":{"x":11389.713458700851,"y":20353.976006922636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f06f627-f385-494a-bb6a-a06c62d0d20f","savedPayload":{"position":{"x":11389.713458700851,"y":20353.976006922636},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA700","config":"{\n \"codeName\": \"ema700\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema700","project":"Superalgos","id":"1663af80-49b7-4593-ad91-6c79fc61f61c","savedPayload":{"position":{"x":11226.78102920582,"y":20066.48522923058},"targetPosition":{"x":11444.954298870602,"y":20208.546905936008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b3810873-e8ea-4466-b011-095b648f0064","savedPayload":{"position":{"x":11444.954298870602,"y":20208.546905936008},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA1400","config":"{\n \"codeName\": \"ema1400\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema1400","project":"Superalgos","id":"92eee4c6-788b-4aa2-8608-5a026f9f5590","savedPayload":{"position":{"x":11409.745823217872,"y":19881.84048419626},"targetPosition":{"x":11551.601950936601,"y":20101.444939467907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"26a199f6-c167-4de7-9513-0d9c453d8108","savedPayload":{"position":{"x":11551.601950936601,"y":20101.444939467907},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e78e6e7a-03db-4e3b-ae8e-b1c309b6ec9e","savedPayload":{"position":{"x":11414.760223261444,"y":19641.326038326828},"targetPosition":{"x":11309.166959359289,"y":18974.63640842511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current \n\nvariable.ema7 = calculateEMA(7, candle.close, variable.previousEMA7)\nvariable.previousEMA7 = variable.ema7\n\nvariable.ema14 = calculateEMA(14, candle.close, variable.previousEMA14)\nvariable.previousEMA14 = variable.ema14\n\nvariable.ema21 = calculateEMA(21, candle.close, variable.previousEMA21)\nvariable.previousEMA21 = variable.ema21\n\nvariable.ema28 = calculateEMA(28, candle.close, variable.previousEMA28)\nvariable.previousEMA28 = variable.ema28\n\nvariable.ema35 = calculateEMA(35, candle.close, variable.previousEMA35)\nvariable.previousEMA35 = variable.ema35\n\nvariable.ema70 = calculateEMA(70, candle.close, variable.previousEMA70)\nvariable.previousEMA70 = variable.ema70\n\nvariable.ema140 = calculateEMA(140, candle.close, variable.previousEMA140)\nvariable.previousEMA140 = variable.ema140\n\nvariable.ema210 = calculateEMA(210, candle.close, variable.previousEMA210)\nvariable.previousEMA210 = variable.ema210\n\nvariable.ema280 = calculateEMA(280, candle.close, variable.previousEMA280)\nvariable.previousEMA280 = variable.ema280\n\nvariable.ema350 = calculateEMA(350, candle.close, variable.previousEMA350)\nvariable.previousEMA350 = variable.ema350\n\nvariable.ema700 = calculateEMA(700, candle.close, variable.previousEMA700)\nvariable.previousEMA700 = variable.ema700\n\nvariable.ema1400 = calculateEMA(1400, candle.close, variable.previousEMA1400)\nvariable.previousEMA1400 = variable.ema1400\n\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","project":"Superalgos","id":"9eb652ba-7df8-41a2-bc5f-c6a1922d8b9c","savedPayload":{"position":{"x":11128.422414785819,"y":19824.97263494943},"targetPosition":{"x":11116.646824631156,"y":19600.280989629653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"659c5fa3-33f6-4127-b4f0-dc1bb0c25691","savedPayload":{"position":{"x":11116.646824631156,"y":19600.280989629653},"targetPosition":{"x":11104.871234476494,"y":19375.589344309876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA7 = 0\nvariable.previousEMA14 = 0\nvariable.previousEMA21 = 0\nvariable.previousEMA28 = 0\nvariable.previousEMA35 = 0\nvariable.previousEMA70 = 0\nvariable.previousEMA140 = 0\nvariable.previousEMA210 = 0\nvariable.previousEMA280 = 0\nvariable.previousEMA350 = 0\nvariable.previousEMA700 = 0\nvariable.previousEMA1400 = 0","project":"Superalgos","id":"03253e10-8b5a-4d6d-abc1-1b171138444c","savedPayload":{"position":{"x":10727.469478901054,"y":19620.676910066635},"targetPosition":{"x":10916.170356688774,"y":19498.133127188255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"07d4aaa2-43ba-42a3-9a5b-73e5866c1307","savedPayload":{"position":{"x":10916.170356688774,"y":19498.133127188255},"targetPosition":{"x":11104.871234476494,"y":19375.589344309876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"91a31871-1901-4a45-9b00-c5aa30a37bf2","savedPayload":{"position":{"x":11104.871234476494,"y":19375.589344309876},"targetPosition":{"x":11309.166959359289,"y":18974.63640842511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984","savedPayload":{"position":{"x":11309.166959359289,"y":18974.63640842511},"targetPosition":{"x":11104.871234476494,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"EMA Base 7","id":"a52a9764-3ef2-44e6-82bd-e6538058119d"}}},{"type":"Product Definition","name":"Base11 EMAs","config":"{\n \"codeName\": \"Base11-EMAs\",\n \"singularVariableName\": \"base11EMA\",\n \"pluralVariableName\": \"base11EMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"5586aa74-2ecb-4b71-83ea-d621aa400660","savedPayload":{"position":{"x":11576.219679629363,"y":19222.438950690954},"targetPosition":{"x":11175.266743744598,"y":19018.14322580816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"0198fa3f-98e3-4c57-a4a4-a7a8e27905d3","savedPayload":{"position":{"x":11379.562468627395,"y":19419.096161692923},"targetPosition":{"x":11175.266743744598,"y":19018.14322580816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"b0559af0-2d8b-401c-8619-1eb20942ec2a","savedPayload":{"position":{"x":11743.329092477725,"y":20104.26829467343},"targetPosition":{"x":11530.779312435167,"y":20257.801921095877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"33f46215-3b1a-422a-9305-89c6ffb342f6","savedPayload":{"position":{"x":11530.779312435167,"y":20257.801921095877},"targetPosition":{"x":11229.421518888797,"y":20475.796789098837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"7bfaab7e-73a5-4086-9eb8-d4a6fdfbbbcf","savedPayload":{"position":{"x":11856.09203216663,"y":20575.401249426486},"targetPosition":{"x":11597.287256204527,"y":20534.26578724623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6155e3b0-2648-407e-b085-4eac778ca3e8","savedPayload":{"position":{"x":11597.287256204527,"y":20534.26578724623},"targetPosition":{"x":11229.421518888797,"y":20475.796789098837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA11","config":"{\n \"codeName\": \"ema11\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema11","project":"Superalgos","id":"16f9f1d2-c73c-4eb6-9240-0d4015e3252a","savedPayload":{"position":{"x":11603.01069000734,"y":20989.526164445844},"targetPosition":{"x":11448.343852740065,"y":20776.768821850837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b925a6aa-04ee-465b-aa93-fc02066b4e3c","savedPayload":{"position":{"x":11448.343852740065,"y":20776.768821850837},"targetPosition":{"x":11229.421518888797,"y":20475.796789098837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA22","config":"{\n \"codeName\": \"ema22\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema22","project":"Superalgos","id":"21cca6ba-53d3-4fd0-b3c9-43a71702e4f3","savedPayload":{"position":{"x":11131.805588309671,"y":21103.30317640185},"targetPosition":{"x":11172.297873378775,"y":20843.578583841805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7f02db91-5147-438c-98c9-e024fba210a2","savedPayload":{"position":{"x":11172.297873378775,"y":20843.578583841805},"targetPosition":{"x":11229.421518888797,"y":20475.796789098837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA33","config":"{\n \"codeName\": \"ema33\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema33","project":"Superalgos","id":"69184123-7d64-41a6-ad3f-8f53bf358f95","savedPayload":{"position":{"x":10727.352861231058,"y":20834.18321734576},"targetPosition":{"x":10929.216939114951,"y":20695.299826268274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"55be1211-a38f-4ff4-8d12-fa78fa8ba2dd","savedPayload":{"position":{"x":10929.216939114951,"y":20695.299826268274},"targetPosition":{"x":11229.421518888797,"y":20475.796789098837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA55","config":"{\n \"codeName\": \"ema55\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema55","project":"Superalgos","id":"5281da7d-c090-4637-9a42-dc28599f0385","savedPayload":{"position":{"x":10591.224735841322,"y":20343.4010693224},"targetPosition":{"x":10864.210380814642,"y":20412.58162050297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"710e13ba-afd9-41c2-b7e8-f0ef7be4bb53","savedPayload":{"position":{"x":10864.210380814642,"y":20412.58162050297},"targetPosition":{"x":11229.421518888797,"y":20475.796789098837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA111","config":"{\n \"codeName\": \"ema111\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema111","project":"Superalgos","id":"f0dd0fa6-ace3-44ea-a701-e36808f6e348","savedPayload":{"position":{"x":10859.197017011611,"y":19963.259872345698},"targetPosition":{"x":11012.341125967869,"y":20175.150601422527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"461f6d65-e227-4362-b62c-16b7225014f6","savedPayload":{"position":{"x":11012.341125967869,"y":20175.150601422527},"targetPosition":{"x":11229.421518888797,"y":20475.796789098837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6a451383-677d-4da8-a15d-f746cda23991","savedPayload":{"position":{"x":11069.673479842442,"y":19684.832855709876},"targetPosition":{"x":11175.266743744598,"y":19018.14322580816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current \n\nvariable.ema11 = calculateEMA(11, candle.close, variable.previousEMA11)\nvariable.previousEMA11 = variable.ema11\n\nvariable.ema22 = calculateEMA(22, candle.close, variable.previousEMA22)\nvariable.previousEMA22 = variable.ema22\n\nvariable.ema33 = calculateEMA(33, candle.close, variable.previousEMA33)\nvariable.previousEMA33 = variable.ema33\n\nvariable.ema55 = calculateEMA(55, candle.close, variable.previousEMA55)\nvariable.previousEMA55 = variable.ema55\n\nvariable.ema111 = calculateEMA(111, candle.close, variable.previousEMA111)\nvariable.previousEMA111 = variable.ema111\n\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","project":"Superalgos","id":"38ceaace-d9e5-482a-a15b-c7bb06767056","savedPayload":{"position":{"x":10740.600121914516,"y":19771.007899172186},"targetPosition":{"x":10798.834407062584,"y":19553.674588257145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"db87f908-271b-44be-8756-706c3ff98c29","savedPayload":{"position":{"x":10798.834407062584,"y":19553.674588257145},"targetPosition":{"x":10857.068692210652,"y":19336.341277342104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA11 = 0\nvariable.previousEMA22 = 0\nvariable.previousEMA33 = 0\nvariable.previousEMA55 = 0\nvariable.previousEMA111 = 0","project":"Superalgos","id":"5c34d18a-ac4e-4af6-aa52-cb4c0f016e6d","savedPayload":{"position":{"x":10422.40207038057,"y":19452.80984763824},"targetPosition":{"x":10639.735381295612,"y":19394.575562490172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f34dd488-d3ea-4bd0-b4f8-68ea81c4a635","savedPayload":{"position":{"x":10639.735381295612,"y":19394.575562490172},"targetPosition":{"x":10857.068692210652,"y":19336.341277342104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e02efb2a-bb39-4a12-89c8-37c254e9bf5f","savedPayload":{"position":{"x":10857.068692210652,"y":19336.341277342104},"targetPosition":{"x":11175.266743744598,"y":19018.14322580816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"21df4f44-96eb-453b-8652-4ce2dc03424c","savedPayload":{"position":{"x":11175.266743744598,"y":19018.14322580816},"targetPosition":{"x":11104.871234476494,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"EMA Base 11","id":"cef26be6-07a9-415a-8439-99d06b1e1cfb"}}},{"type":"Product Definition","name":"Base12 EMAs","config":"{\n \"codeName\": \"Base12-EMAs\",\n \"singularVariableName\": \"base12EMA\",\n \"pluralVariableName\": \"base12EMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"ea61dfed-8f93-4b4f-8575-61ca2547ea90","savedPayload":{"position":{"x":11352.673776742335,"y":19336.341277342104},"targetPosition":{"x":11034.47572520839,"y":19018.14322580816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"b251aca0-1996-4d13-99ed-6fb9796ec8d6","savedPayload":{"position":{"x":11104.871234476494,"y":19462.60297907597},"targetPosition":{"x":11034.47572520839,"y":19018.14322580816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"f1df9aec-05c4-40d0-a82c-d17a0e2f1596","savedPayload":{"position":{"x":11199.581581705417,"y":19993.61239009383},"targetPosition":{"x":10990.80316358375,"y":20151.542772107536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2c0c9e78-796b-4845-8cbb-c153a6b7c791","savedPayload":{"position":{"x":10990.80316358375,"y":20151.542772107536},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"355a63aa-8c8c-4eca-a246-272eb464d094","savedPayload":{"position":{"x":11316.569480801518,"y":20250.10455343706},"targetPosition":{"x":11059.189090866395,"y":20302.256811415387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"256d27f8-b34e-46ca-9b5f-531823534e11","savedPayload":{"position":{"x":11059.189090866395,"y":20302.256811415387},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA12","config":"{\n \"codeName\": \"ema12\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema12","project":"Superalgos","id":"121d3c83-9fb4-44a1-93ed-e9755dfcc59e","savedPayload":{"position":{"x":11310.243120179799,"y":20531.75518533407},"targetPosition":{"x":11055.725062475613,"y":20467.446051010396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b386dd09-a2a1-4669-a73b-6df619dee15d","savedPayload":{"position":{"x":11055.725062475613,"y":20467.446051010396},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA24","config":"{\n \"codeName\": \"ema24\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema24","project":"Superalgos","id":"e4418d5e-74e5-440c-bd58-f8f18245ba6d","savedPayload":{"position":{"x":11182.115382991418,"y":20783.302149643485},"targetPosition":{"x":10980.671395694499,"y":20615.012535472273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c23ef82a-9c9a-477f-8d48-14d93f06e3c6","savedPayload":{"position":{"x":10980.671395694499,"y":20615.012535472273},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA36","config":"{\n \"codeName\": \"ema36\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema36","project":"Superalgos","id":"21dc0fd4-01f5-428b-9a9e-45307981af50","savedPayload":{"position":{"x":10957.376735757167,"y":20954.218648666414},"targetPosition":{"x":10848.941674980866,"y":20715.399075750756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e613c9c6-61da-4830-9289-8b400c3b41d7","savedPayload":{"position":{"x":10848.941674980866,"y":20715.399075750756},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA48","config":"{\n \"codeName\": \"ema48\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema48","project":"Superalgos","id":"6afd224b-ba9c-49eb-973f-e7e3d609e82e","savedPayload":{"position":{"x":10681.251446331145,"y":21011.04084129591},"targetPosition":{"x":10686.92091978501,"y":20748.358303110548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e49e8056-f659-4090-91e7-0e83b4a3654e","savedPayload":{"position":{"x":10686.92091978501,"y":20748.358303110548},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA60","config":"{\n \"codeName\": \"ema60\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema60","project":"Superalgos","id":"2db84126-00b9-4cde-bb35-66f9fcb8bfc6","savedPayload":{"position":{"x":10407.784331926654,"y":20942.072654511936},"targetPosition":{"x":10526.555795203822,"y":20708.193881655367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"77a0ccf0-aa97-4a11-b1db-bd74d33c28b7","savedPayload":{"position":{"x":10526.555795203822,"y":20708.193881655367},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA120","config":"{\n \"codeName\": \"ema120\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema120","project":"Superalgos","id":"e3f30f2b-23c8-4bac-b19e-69ae740a4773","savedPayload":{"position":{"x":10190.907930732767,"y":20762.289025950024},"targetPosition":{"x":10399.904433004773,"y":20602.249523148217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fca691ac-2651-4619-af01-48a0fafcfd75","savedPayload":{"position":{"x":10399.904433004773,"y":20602.249523148217},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA240","config":"{\n \"codeName\": \"ema240\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema240","project":"Superalgos","id":"99b8a3c3-7e86-40aa-ad44-82a0bdb1f208","savedPayload":{"position":{"x":10072.120643142764,"y":20497.312100434792},"targetPosition":{"x":10329.352518983313,"y":20443.47802886613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6f194951-d813-4418-be45-420680399c17","savedPayload":{"position":{"x":10329.352518983313,"y":20443.47802886613},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA360","config":"{\n \"codeName\": \"ema360\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema360","project":"Superalgos","id":"fd430a5b-2a43-40c5-ae9d-4c7f901b527d","savedPayload":{"position":{"x":10083.955097047405,"y":20222.86111337171},"targetPosition":{"x":10334.222958342623,"y":20288.084525528127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d9b00ca8-b18b-43da-9f3d-889fe101120c","savedPayload":{"position":{"x":10334.222958342623,"y":20288.084525528127},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA480","config":"{\n \"codeName\": \"ema480\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema480","project":"Superalgos","id":"4601277a-9f86-41a4-81b1-21b3c13d1d34","savedPayload":{"position":{"x":10206.471770562726,"y":19972.802440699114},"targetPosition":{"x":10407.726560817711,"y":20141.13975652584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2eccd071-3101-47bb-a8e6-008703cf6848","savedPayload":{"position":{"x":10407.726560817711,"y":20141.13975652584},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA600","config":"{\n \"codeName\": \"ema600\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema600","project":"Superalgos","id":"5c687030-e498-4126-8ce9-0c99a427168e","savedPayload":{"position":{"x":10434.255439197012,"y":19799.135814612437},"targetPosition":{"x":10542.368735473996,"y":20038.069493133484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e715e341-88d4-477c-9d7f-b0bb85ee3022","savedPayload":{"position":{"x":10542.368735473996,"y":20038.069493133484},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA1200","config":"{\n \"codeName\": \"ema1200\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema1200","project":"Superalgos","id":"7c39560e-7434-4f50-aa3d-b93e131ce066","savedPayload":{"position":{"x":10694.155441668983,"y":19741.14675488769},"targetPosition":{"x":10704.474514582107,"y":20005.476176795473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f1939b18-3af9-4376-b8ba-6f506b215f82","savedPayload":{"position":{"x":10704.474514582107,"y":20005.476176795473},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"512144fe-195c-47ae-b5b7-8167ba61a4bb","savedPayload":{"position":{"x":10728.032137884195,"y":19619.572629635306},"targetPosition":{"x":11034.47572520839,"y":19018.14322580816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current \n\nvariable.ema12 = calculateEMA(12, candle.close, variable.previousEMA12)\nvariable.previousEMA12 = variable.ema12\n\nvariable.ema24 = calculateEMA(24, candle.close, variable.previousEMA24)\nvariable.previousEMA24 = variable.ema24\n\nvariable.ema36 = calculateEMA(36, candle.close, variable.previousEMA36)\nvariable.previousEMA36 = variable.ema36\n\nvariable.ema48 = calculateEMA(48, candle.close, variable.previousEMA48)\nvariable.previousEMA48 = variable.ema48\n\nvariable.ema60 = calculateEMA(60, candle.close, variable.previousEMA60)\nvariable.previousEMA60 = variable.ema60\n\nvariable.ema120 = calculateEMA(120, candle.close, variable.previousEMA120)\nvariable.previousEMA120 = variable.ema120\n\nvariable.ema240 = calculateEMA(240, candle.close, variable.previousEMA240)\nvariable.previousEMA240 = variable.ema240\n\nvariable.ema360 = calculateEMA(360, candle.close, variable.previousEMA360)\nvariable.previousEMA360 = variable.ema360\n\nvariable.ema480 = calculateEMA(480, candle.close, variable.previousEMA480)\nvariable.previousEMA480 = variable.ema480\n\nvariable.ema600 = calculateEMA(600, candle.close, variable.previousEMA600)\nvariable.previousEMA600 = variable.ema600\n\nvariable.ema1200 = calculateEMA(1200, candle.close, variable.previousEMA1200)\nvariable.previousEMA1200 = variable.ema1200\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","project":"Superalgos","id":"c3936de6-e8b4-4459-8c31-d97bea84cbfa","savedPayload":{"position":{"x":10388.435223566861,"y":19599.840706266394},"targetPosition":{"x":10510.979006445243,"y":19411.139828478674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c4c50d01-1dff-4700-853a-986821fd55c5","savedPayload":{"position":{"x":10510.979006445243,"y":19411.139828478674},"targetPosition":{"x":10633.522789323624,"y":19222.438950690954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA12 = 0\nvariable.previousEMA24 = 0\nvariable.previousEMA36 = 0\nvariable.previousEMA48 = 0\nvariable.previousEMA60 = 0\nvariable.previousEMA120 = 0\nvariable.previousEMA240 = 0\nvariable.previousEMA360 = 0\nvariable.previousEMA480 = 0\nvariable.previousEMA600 = 0\nvariable.previousEMA1200 = 0\n","project":"Superalgos","id":"c1639309-d20d-47cb-bb44-f6d45fd498a2","savedPayload":{"position":{"x":10184.139498684066,"y":19198.88777038163},"targetPosition":{"x":10408.831144003845,"y":19210.66336053629},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6a845db8-4418-4417-80ac-11114304a476","savedPayload":{"position":{"x":10408.831144003845,"y":19210.66336053629},"targetPosition":{"x":10633.522789323624,"y":19222.438950690954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1f5b9ce3-8278-4359-a57c-2c9e275a64cc","savedPayload":{"position":{"x":10633.522789323624,"y":19222.438950690954},"targetPosition":{"x":11034.47572520839,"y":19018.14322580816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"43d6f23d-d206-47e9-95d4-6bef34377014","savedPayload":{"position":{"x":11034.47572520839,"y":19018.14322580816},"targetPosition":{"x":11104.871234476494,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition","name":"Base30 EMAs","config":"{\n \"codeName\": \"Base30-EMAs\",\n \"singularVariableName\": \"base30EMA\",\n \"pluralVariableName\": \"base30EMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"dea3491f-aae7-4419-a98f-108cf5d69b87","savedPayload":{"position":{"x":11104.871234476494,"y":19375.589344309876},"targetPosition":{"x":10900.575509593698,"y":18974.63640842511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"6624337b-4afd-44b8-a2ea-3f1779ddda7e","savedPayload":{"position":{"x":10830.180000325594,"y":19419.096161692923},"targetPosition":{"x":10900.575509593698,"y":18974.63640842511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"d3c4e9c3-9823-4809-997e-dc36dac93b22","savedPayload":{"position":{"x":10821.40940266549,"y":19929.892964872874},"targetPosition":{"x":10571.976521288376,"y":20007.215399038734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cdf3538e-a8e5-44e5-9263-e5ffe18e65c2","savedPayload":{"position":{"x":10571.976521288376,"y":20007.215399038734},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"af0bf0dd-e517-4723-b0cc-832261c78c76","savedPayload":{"position":{"x":10839.715530369202,"y":20232.404729016092},"targetPosition":{"x":10582.455794726506,"y":20185.078698771526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"27b3ce25-c547-4003-9a1c-2214b22e4fd8","savedPayload":{"position":{"x":10582.455794726506,"y":20185.078698771526},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA30","config":"{\n \"codeName\": \"ema30\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema30","project":"Superalgos","id":"d49aaf82-1063-490d-bedb-3c63d639e097","savedPayload":{"position":{"x":10715.532265594436,"y":20509.14183965206},"targetPosition":{"x":10509.0639985288,"y":20347.22219951388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c92e3720-fc04-45ff-99e7-95abc2ddabea","savedPayload":{"position":{"x":10509.0639985288,"y":20347.22219951388},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA60","config":"{\n \"codeName\": \"ema60\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema60","project":"Superalgos","id":"47f6b7dc-d0e0-4707-9e20-4113af4916ce","savedPayload":{"position":{"x":10476.754452437519,"y":20696.578712102062},"targetPosition":{"x":10369.073698020144,"y":20457.01211384963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d489aab4-6b93-490a-95b0-5b586a80960a","savedPayload":{"position":{"x":10369.073698020144,"y":20457.01211384963},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA90","config":"{\n \"codeName\": \"ema90\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema90","project":"Superalgos","id":"d2ac9ce8-32ab-4802-ab41-b959112a696b","savedPayload":{"position":{"x":10178.452602544636,"y":20750.993468817167},"targetPosition":{"x":10194.212351730763,"y":20489.464580613403},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7b763dc2-e990-44b7-b67f-93d27e5b7507","savedPayload":{"position":{"x":10194.212351730763,"y":20489.464580613403},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA120","config":"{\n \"codeName\": \"ema120\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema120","project":"Superalgos","id":"41283546-a88c-41a6-87a6-48f178b378f5","savedPayload":{"position":{"x":9888.762512289188,"y":20660.463956954616},"targetPosition":{"x":10024.177959045497,"y":20436.393859007258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"19b80a14-7510-4066-aa0a-43e8d92f8bec","savedPayload":{"position":{"x":10024.177959045497,"y":20436.393859007258},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA150","config":"{\n \"codeName\": \"ema150\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema150","project":"Superalgos","id":"d82aeb70-2857-4d97-8f42-6fa22acc3ec1","savedPayload":{"position":{"x":9674.443057334469,"y":20445.748298647784},"targetPosition":{"x":9898.435927474922,"y":20310.337428978746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2dcea6aa-8e40-44d9-b540-e831f54b0e19","savedPayload":{"position":{"x":9898.435927474922,"y":20310.337428978746},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA300","config":"{\n \"codeName\": \"ema300\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema300","project":"Superalgos","id":"3bfc5b00-3b36-4b7e-b549-4cac3826de4f","savedPayload":{"position":{"x":9583.09127017772,"y":20156.277237723178},"targetPosition":{"x":9846.174105707367,"y":20140.37642233499},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7cc56b79-f74d-465e-8e4d-070be004c71b","savedPayload":{"position":{"x":9846.174105707367,"y":20140.37642233499},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA600","config":"{\n \"codeName\": \"ema600\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema600","project":"Superalgos","id":"22bc84a5-61f6-479e-a87d-b1aee1b8416d","savedPayload":{"position":{"x":9638.062625380833,"y":19857.996576366782},"targetPosition":{"x":9877.279213927563,"y":19965.45036564405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0e28ed26-69c1-4a8e-b13f-cef5faf27fc8","savedPayload":{"position":{"x":9877.279213927563,"y":19965.45036564405},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA900","config":"{\n \"codeName\": \"ema900\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema900","project":"Superalgos","id":"bd0354df-70f8-44e7-b988-49c514433ee3","savedPayload":{"position":{"x":9825.52178735478,"y":19619.36007984657},"targetPosition":{"x":9987.030734561187,"y":19825.181409372428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1dfbb7b7-1ddc-4079-a17d-abef03fcd978","savedPayload":{"position":{"x":9987.030734561187,"y":19825.181409372428},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA1200","config":"{\n \"codeName\": \"ema1200\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema1200","project":"Superalgos","id":"fed49d03-931b-45a8-ac59-60859500e8ea","savedPayload":{"position":{"x":10102.00663800595,"y":19494.606053292748},"targetPosition":{"x":10149.570281089356,"y":19752.594725746043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2854d03b-388d-42be-bd49-0b0ed1293a30","savedPayload":{"position":{"x":10149.570281089356,"y":19752.594725746043},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA1500","config":"{\n \"codeName\": \"ema1500\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema1500","project":"Superalgos","id":"1486d92f-10f4-4e34-b603-b0a18408713c","savedPayload":{"position":{"x":10400.663094471864,"y":19510.75438069367},"targetPosition":{"x":10327.273450016848,"y":19763.400734511888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9936d329-ffe9-4c8a-929c-b6f4a3a38954","savedPayload":{"position":{"x":10327.273450016848,"y":19763.400734511888},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3dda31b0-7d30-43c2-9b91-74c25cffed38","savedPayload":{"position":{"x":10423.278432292778,"y":19451.93348572603},"targetPosition":{"x":10900.575509593698,"y":18974.63640842511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\nvariable.ema30 = calculateEMA(30, candle.close, variable.previousEMA30)\nvariable.previousEMA30 = variable.ema30\n\nvariable.ema60 = calculateEMA(60, candle.close, variable.previousEMA60)\nvariable.previousEMA60 = variable.ema60\n\nvariable.ema90 = calculateEMA(90, candle.close, variable.previousEMA90)\nvariable.previousEMA90 = variable.ema90\n\nvariable.ema120 = calculateEMA(120, candle.close, variable.previousEMA120)\nvariable.previousEMA120 = variable.ema120\n\nvariable.ema150 = calculateEMA(150, candle.close, variable.previousEMA150)\nvariable.previousEMA150 = variable.ema150\n\nvariable.ema300 = calculateEMA(300, candle.close, variable.previousEMA300)\nvariable.previousEMA300 = variable.ema300\n\nvariable.ema600 = calculateEMA(600, candle.close, variable.previousEMA600)\nvariable.previousEMA600 = variable.ema600\n\nvariable.ema900 = calculateEMA(900, candle.close, variable.previousEMA900)\nvariable.previousEMA900 = variable.ema900\n\nvariable.ema1200 = calculateEMA(1200, candle.close, variable.previousEMA1200)\nvariable.previousEMA1200 = variable.ema1200\n\nvariable.ema1500 = calculateEMA(1500, candle.close, variable.previousEMA1500)\nvariable.previousEMA1500 = variable.ema1500\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","project":"Superalgos","id":"df900089-7554-4b01-88d1-801706c194a5","savedPayload":{"position":{"x":10106.400073670247,"y":19328.226093665642},"targetPosition":{"x":10281.257914998067,"y":19186.629005679428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ff38e18a-c36c-4c4a-8d5b-b7230451c098","savedPayload":{"position":{"x":10281.257914998067,"y":19186.629005679428},"targetPosition":{"x":10456.115756325886,"y":19045.031917693213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA30 = 0\nvariable.previousEMA60 = 0\nvariable.previousEMA90 = 0\nvariable.previousEMA120 = 0\nvariable.previousEMA150 = 0\nvariable.previousEMA300 = 0\nvariable.previousEMA600 = 0\nvariable.previousEMA900 = 0\nvariable.previousEMA1200 = 0\nvariable.previousEMA1500 = 0\n","project":"Superalgos","id":"14cfa602-002c-439e-b658-24cc8d2d1c14","savedPayload":{"position":{"x":10036.004564402145,"y":18883.766340397826},"targetPosition":{"x":10246.060160364015,"y":18964.39912904552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2489fa2c-03cb-4007-b426-88158b8ab442","savedPayload":{"position":{"x":10246.060160364015,"y":18964.39912904552},"targetPosition":{"x":10456.115756325886,"y":19045.031917693213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ff57a6a1-1133-4cce-abab-d958d5936360","savedPayload":{"position":{"x":10456.115756325886,"y":19045.031917693213},"targetPosition":{"x":10900.575509593698,"y":18974.63640842511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4394346c-7c25-478f-9be7-04f071dc673c","savedPayload":{"position":{"x":10900.575509593698,"y":18974.63640842511},"targetPosition":{"x":11104.871234476494,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"274a20f7-97c3-452d-9ef7-aa35f482f5e3","savedPayload":{"position":{"x":11104.871234476494,"y":18573.683472540346},"targetPosition":{"x":10786.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Moving Average Convergence Diveregence (MACD)","config":"{\n\"codeName\": \"MACD\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces the MACD indicator.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market MACD 122609","project":"Superalgos","id":"b1bf9ad6-e21f-43a9-b7a5-7d5dd0485b2e","savedPayload":{"position":{"x":11471.325556217509,"y":18405.473779853357},"targetPosition":{"x":11469.246885277484,"y":18606.984751204003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"01d43ed0-2a80-4eca-bee6-db2fe40470fc"}}},{"type":"Output Dataset","name":"Multi-Period-Market MACD 031016","project":"Superalgos","id":"a8aa057b-aa19-45cb-bca0-7c3b57a350f7","savedPayload":{"position":{"x":11591.827714898898,"y":18445.982326925216},"targetPosition":{"x":11469.246885277484,"y":18606.984751204003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"19b1d791-d2ea-4f25-a6e1-fe0a64450745"}}},{"type":"Output Dataset","name":"Multi-Period-Market MACD 081709","project":"Superalgos","id":"150637f5-1917-439e-916f-71e86edccd49","savedPayload":{"position":{"x":11663.167943060898,"y":18546.707493952617},"targetPosition":{"x":11469.246885277484,"y":18606.984751204003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c390cbd3-0ba0-4507-8614-42c88f4ce7e6"}}},{"type":"Output Dataset","name":"Multi-Period-Market MACD 245209","project":"Superalgos","id":"6854acc9-b22d-46e6-8967-e3843ca6db76","savedPayload":{"position":{"x":11638.699150104434,"y":18682.17859204875},"targetPosition":{"x":11469.246885277484,"y":18606.984751204003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"89254c6c-9be2-4037-b063-467edc660d10"}}}],"outputDatasetFolders":[],"id":"af39ab1b-b1c0-4869-9093-47ad8ff63494","savedPayload":{"position":{"x":11469.246885277484,"y":18606.984751204003},"targetPosition":{"x":11146.380205402404,"y":18828.49426866509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Moving Average Convergence Diveregence (MACD) Multi-Period-Market","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"7e17f51a-deed-4976-a53b-d34c2e45f92f","savedPayload":{"position":{"x":11764.959412667115,"y":18644.76708633784},"targetPosition":{"x":11611.12774169202,"y":18799.46432564655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"101cc7d6-d35b-4907-b530-f28d5e02ff0a"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"473dbe5e-6332-4005-8457-c77c3f5c65d0","savedPayload":{"position":{"x":11812.666821230629,"y":18784.593603082372},"targetPosition":{"x":11611.12774169202,"y":18799.46432564655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"fa10270c-f94c-479d-9094-f974018e2029","savedPayload":{"position":{"x":11764.332487832256,"y":18930.369845930523},"targetPosition":{"x":11611.12774169202,"y":18799.46432564655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"7a34fbb2-19de-4b82-88f2-c016f6959f74","savedPayload":{"position":{"x":11611.12774169202,"y":18799.46432564655},"targetPosition":{"x":11146.380205402404,"y":18828.49426866509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"101cc7d6-d35b-4907-b530-f28d5e02ff0a","savedPayload":{"position":{"x":11532.007627082303,"y":19015.11308965402},"targetPosition":{"x":11146.380205402404,"y":18828.49426866509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"1bc17bd6-0c20-4dfe-87dd-68db36113733","savedPayload":{"position":{"x":11388.574793248437,"y":19183.690969215804},"targetPosition":{"x":11146.380205402404,"y":18828.49426866509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"f2eca95a-37ae-448b-8ff9-c6dc4b133245","savedPayload":{"position":{"x":11179.215800183229,"y":19256.7416427928},"targetPosition":{"x":11146.380205402404,"y":18828.49426866509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"44019efe-950a-4eec-a546-cd2ee26818b9","savedPayload":{"position":{"x":11192.109173498637,"y":18900.733103609302},"targetPosition":{"x":10786.673182942548,"y":18705.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces the MACD indicator.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily MACD 122609","project":"Superalgos","id":"c79ae046-983f-4acf-9c73-ab7e5d24fd85","savedPayload":{"position":{"x":11511.788478998946,"y":18729.087679203458},"targetPosition":{"x":11423.120987240496,"y":18909.280747413723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"dd5d3067-ff7b-4353-ba4f-c030bd3da796"}}},{"type":"Output Dataset","name":"Multi-Period-Daily MACD 081709","project":"Superalgos","id":"daa8862c-2eda-4846-97d5-8684673baf3f","savedPayload":{"position":{"x":11604.38864530181,"y":18817.112728624175},"targetPosition":{"x":11423.120987240496,"y":18909.280747413723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"29e18539-f188-4d29-9531-25cd3ee8f282"}}},{"type":"Output Dataset","name":"Multi-Period-Daily MACD 245209","project":"Superalgos","id":"59cb9a88-ccd4-4306-8822-bf9d0e526c02","savedPayload":{"position":{"x":11622.242951690432,"y":18923.763104045265},"targetPosition":{"x":11423.120987240496,"y":18909.280747413723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8a9dde13-e4b8-40f3-80bc-ea51050b2f08"}}},{"type":"Output Dataset","name":"Multi-Period-Daily MACD 031016","project":"Superalgos","id":"b09b8313-baaf-45f4-a0fb-b33614d58699","savedPayload":{"position":{"x":11535.914434027527,"y":19053.02835972005},"targetPosition":{"x":11423.120987240496,"y":18909.280747413723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ec2611a6-699b-45a5-beec-679dd4b7734a"}}}],"outputDatasetFolders":[],"id":"a95e4b61-4e49-4b99-bfb8-8bb917afe8df","savedPayload":{"position":{"x":11423.120987240496,"y":18909.280747413723},"targetPosition":{"x":11035.62412102021,"y":18968.40815893568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Moving Average Convergence Diveregence (MACD) Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"e02fb6a2-c775-46de-bce6-a40f7d40cd5c","savedPayload":{"position":{"x":11667.664138004697,"y":19039.709652620666},"targetPosition":{"x":11467.620824567097,"y":19142.294892787006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a9d544cb-9643-4f7e-9220-d3ec7397bcdf"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"650627ec-3cab-4024-a17d-a43174f869e9","savedPayload":{"position":{"x":11673.702193082405,"y":19161.74648414973},"targetPosition":{"x":11467.620824567097,"y":19142.294892787006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"62a1b4d7-e2fd-44bf-9e37-3108a7b5b956","savedPayload":{"position":{"x":11625.952728395798,"y":19277.378341214728},"targetPosition":{"x":11467.620824567097,"y":19142.294892787006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"38aa26d5-f3b2-43e6-8533-cd51d7128221","savedPayload":{"position":{"x":11510.96708269091,"y":19342.512617404187},"targetPosition":{"x":11467.620824567097,"y":19142.294892787006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"e8291604-ea73-4217-b00c-51f65bdec1d6","savedPayload":{"position":{"x":11467.620824567097,"y":19142.294892787006},"targetPosition":{"x":11035.62412102021,"y":18968.40815893568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"a9d544cb-9643-4f7e-9220-d3ec7397bcdf","savedPayload":{"position":{"x":11301.930633865084,"y":19303.88449411361},"targetPosition":{"x":11035.62412102021,"y":18968.40815893568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"35b430c4-60bd-41ff-8a3a-7907146b0238","savedPayload":{"position":{"x":11098.59309515605,"y":19392.676673282793},"targetPosition":{"x":11035.62412102021,"y":18968.40815893568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"c6191bb8-66bf-4d67-9d1b-9364e7e6e84e","savedPayload":{"position":{"x":10878.574576673316,"y":19367.191346795345},"targetPosition":{"x":11035.62412102021,"y":18968.40815893568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8e5db945-8507-4489-9288-21cfa1e9301c","savedPayload":{"position":{"x":11067.243593778978,"y":19057.309588117016},"targetPosition":{"x":10786.673182942548,"y":18705.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"MACD 122609","config":"{\n \"codeName\": \"MACD-122609\",\n \"singularVariableName\": \"macd122609\",\n \"pluralVariableName\": \"macd122609s\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"01d43ed0-2a80-4eca-bee6-db2fe40470fc","savedPayload":{"position":{"x":11093.701352046966,"y":19232.633613610356},"targetPosition":{"x":10886.80760322289,"y":19144.202981488223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"dd5d3067-ff7b-4353-ba4f-c030bd3da796","savedPayload":{"position":{"x":11002.209940639219,"y":19337.353960048644},"targetPosition":{"x":10886.80760322289,"y":19144.202981488223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"c30a9207-3220-4aa4-b96e-64a82200e356","savedPayload":{"position":{"x":11336.274368047882,"y":20512.31889534635},"targetPosition":{"x":11115.407754950553,"y":20696.19406122658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"16c55335-8817-4121-a068-1c2d184fd814","savedPayload":{"position":{"x":11115.407754950553,"y":20696.19406122658},"targetPosition":{"x":10853.93843725678,"y":20914.304101346162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"0f82ce78-91ac-4b61-b514-bb1a67c2ef0e","savedPayload":{"position":{"x":11479.867161113292,"y":20970.67675558434},"targetPosition":{"x":11192.60426111444,"y":20944.80644606634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dedc2ef0-61e4-45bd-921d-187c9a6f3ae1","savedPayload":{"position":{"x":11192.60426111444,"y":20944.80644606634},"targetPosition":{"x":10853.93843725678,"y":20914.304101346162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Line","config":"{\n \"codeName\": \"line\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.line","project":"Superalgos","id":"42754005-58a0-4a8b-b839-938d11aeb0ab","savedPayload":{"position":{"x":11256.150288844477,"y":21396.302069109464},"targetPosition":{"x":11071.944013750086,"y":21175.564938419928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5fe10f78-a397-4fb1-bfeb-a506d44d60ef","savedPayload":{"position":{"x":11071.944013750086,"y":21175.564938419928},"targetPosition":{"x":10853.93843725678,"y":20914.304101346162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Signal","config":"{\n \"codeName\": \"signal\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.signal","project":"Superalgos","id":"588045df-e0fb-4c07-adf3-1acd832088af","savedPayload":{"position":{"x":10797.950820895952,"y":21539.86945918945},"targetPosition":{"x":10823.646721472494,"y":21252.62950791361},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2926733e-3962-4e7b-a492-7fcb437f536e","savedPayload":{"position":{"x":10823.646721472494,"y":21252.62950791361},"targetPosition":{"x":10853.93843725678,"y":20914.304101346162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA12","config":"{\n \"codeName\": \"ema12\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema12","project":"Superalgos","id":"d9f6340c-15cd-499b-ba74-007b4c569b22","savedPayload":{"position":{"x":10368.265135258589,"y":21319.957798032858},"targetPosition":{"x":10589.161665237007,"y":21135.468617947237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"29fb3e14-c1fd-4fa6-af1a-62b1c61ff1fc","savedPayload":{"position":{"x":10589.161665237007,"y":21135.468617947237},"targetPosition":{"x":10853.93843725678,"y":20914.304101346162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA26","config":"{\n \"codeName\": \"ema26\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema26","project":"Superalgos","id":"748ed791-c88b-4776-b2cb-742758821641","savedPayload":{"position":{"x":10228.532072017708,"y":20858.685378975988},"targetPosition":{"x":10515.251077034834,"y":20884.15932519373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d1b7a8ce-c89b-4e0f-ac04-0f45d575524d","savedPayload":{"position":{"x":10515.251077034834,"y":20884.15932519373},"targetPosition":{"x":10853.93843725678,"y":20914.304101346162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Histogram","config":"{\n \"codeName\": \"histogram\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.histogram","project":"Superalgos","id":"9652e52e-55c0-47ee-a90c-a1a700f6b989","savedPayload":{"position":{"x":10450.931882952533,"y":20432.63012287277},"targetPosition":{"x":10635.918022960017,"y":20653.34317252064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6157c979-57a2-473c-b19f-f79bb2f12c09","savedPayload":{"position":{"x":10635.918022960017,"y":20653.34317252064},"targetPosition":{"x":10853.93843725678,"y":20914.304101346162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7985ad16-8c8a-460f-9445-711df5e062a7","savedPayload":{"position":{"x":10826.301069713072,"y":19816.48562993501},"targetPosition":{"x":10886.80760322289,"y":19144.202981488223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\n/* EMA12 and EMA26 Calculation */\n\nlet candle = record.current\n\nvariable.ema12 = calculateEMA(12, candle.close, variable.previousEMA12)\nvariable.previousEMA12 = variable.ema12\n\nvariable.ema26 = calculateEMA(26, candle.close, variable.previousEMA26)\nvariable.previousEMA26 = variable.ema26\n\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}\n\n\n/* MACD Line Calculation */\n\nmacdLine = variable.ema12 - variable.ema26\n\nvariable.line = macdLine.toFixed(2)\n\n/* Signal Line Calculation (EMA9 of MACD Line) */\n\nmacdSignal = calculateSignalEMA(9, variable.line, variable.previousSignal)\nvariable.signal = macdSignal.toFixed(2)\nvariable.previousSignal = variable.signal \n \nfunction calculateSignalEMA(periods, currentSignal, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSignal * k + variable.previousSignal * (1-k)\n}\n\n/* Histogram Calculation */\n\nhistogram = variable.line - variable.signal\nvariable.histogram = histogram.toFixed(2)","project":"Superalgos","id":"e1e871f6-1e87-423f-8214-ece80c4295eb","savedPayload":{"position":{"x":10503.770013542022,"y":19924.601913717226},"targetPosition":{"x":10547.25259504602,"y":19703.843527453537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c3390f8c-4865-42b1-aa00-eaa49d293121","savedPayload":{"position":{"x":10547.25259504602,"y":19703.843527453537},"targetPosition":{"x":10590.735176550019,"y":19483.085141189847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\n/* SMA Calculation */\n\n/* \nAlthough we don't really need to set an array to access a number of candles,\nwe will do so in order to reuse the code built for the SMA indicator, and also\nso that the same code may be used for other MACD products that may require\naccessing more candles than are available in the span of two days.\n*/\n\nvariable.last100 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")\n\n/* EMA Calculation */\n\nvariable.previousEMA12 = 0\nvariable.previousEMA26 = 0\n\n/* MACD Line calculation */\n\nvariable.previousSignal = 0","project":"Superalgos","id":"a9600d4d-ddc7-4639-a8bd-d5f6840a1f04","savedPayload":{"position":{"x":10164.887853840395,"y":19628.529487044354},"targetPosition":{"x":10377.811515195208,"y":19555.8073141171},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8ff5320-c74f-4f6e-8b15-f7284242f24e","savedPayload":{"position":{"x":10377.811515195208,"y":19555.8073141171},"targetPosition":{"x":10590.735176550019,"y":19483.085141189847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c69aae16-d38f-4d9a-8174-4e664a22e579","savedPayload":{"position":{"x":10590.735176550019,"y":19483.085141189847},"targetPosition":{"x":10886.80760322289,"y":19144.202981488223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119","savedPayload":{"position":{"x":10886.80760322289,"y":19144.202981488223},"targetPosition":{"x":10786.673182942548,"y":18705.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"MACD 122609","id":"fb08cb11-7983-4106-8b03-edf70baad4a0"}}},{"type":"Product Definition","name":"MACD 031016","config":"{\n \"codeName\": \"MACD-031016\",\n \"singularVariableName\": \"macd031016\",\n \"pluralVariableName\": \"macd031016s\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"19b1d791-d2ea-4f25-a6e1-fe0a64450745","savedPayload":{"position":{"x":10834.574975998643,"y":19313.644061339037},"targetPosition":{"x":10686.538762662207,"y":19144.202981488223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"ec2611a6-699b-45a5-beec-679dd4b7734a","savedPayload":{"position":{"x":10706.70760716548,"y":19368.297197637152},"targetPosition":{"x":10686.538762662207,"y":19144.202981488223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"7e2e4448-6bc6-4c1c-9a7f-54185fea3831","savedPayload":{"position":{"x":10667.601963540352,"y":19641.191030097943},"targetPosition":{"x":10503.966856976785,"y":19682.423473633713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"399e67a5-1b3c-4f13-b1a8-c8333b013471","savedPayload":{"position":{"x":10503.966856976785,"y":19682.423473633713},"targetPosition":{"x":10340.33175041322,"y":19723.655917169483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"0e12c2f0-25f8-48c6-9920-4291c0154f92","savedPayload":{"position":{"x":10630.058218253847,"y":19896.759423293974},"targetPosition":{"x":10485.194984333533,"y":19810.207670231728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1588b3ba-04e6-498f-baeb-857c55bf0c2f","savedPayload":{"position":{"x":10485.194984333533,"y":19810.207670231728},"targetPosition":{"x":10340.33175041322,"y":19723.655917169483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Line","config":"{\n \"codeName\": \"line\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.line","project":"Superalgos","id":"5d5b5bb6-fcd8-4834-9da9-858c8fc756d6","savedPayload":{"position":{"x":10422.796637484758,"y":20050.92613029661},"targetPosition":{"x":10381.564193948989,"y":19887.291023733047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a1c75f48-5568-46da-a828-6d26a69b5021","savedPayload":{"position":{"x":10381.564193948989,"y":19887.291023733047},"targetPosition":{"x":10340.33175041322,"y":19723.655917169483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Signal","config":"{\n \"codeName\": \"signal\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.signal","project":"Superalgos","id":"a42bb9fd-fb33-4c25-b3d3-7ce7c8839e08","savedPayload":{"position":{"x":10167.228244288724,"y":20013.38238501011},"targetPosition":{"x":10253.779997350972,"y":19868.519151089797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7d0b5eee-4b62-4e35-a421-e3825b0cdb2c","savedPayload":{"position":{"x":10253.779997350972,"y":19868.519151089797},"targetPosition":{"x":10340.33175041322,"y":19723.655917169483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA3","config":"{\n \"codeName\": \"ema3\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema3","project":"Superalgos","id":"c725639d-6fa1-480f-b962-90be561f8464","savedPayload":{"position":{"x":10013.061537286087,"y":19806.12080424102},"targetPosition":{"x":10176.696643849653,"y":19764.888360705252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4406003b-bf04-4d4e-b9e5-fb444be155ee","savedPayload":{"position":{"x":10176.696643849653,"y":19764.888360705252},"targetPosition":{"x":10340.33175041322,"y":19723.655917169483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA10","config":"{\n \"codeName\": \"ema10\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema10","project":"Superalgos","id":"fbfc968a-1b7e-48f6-935b-b40fe63bdc85","savedPayload":{"position":{"x":10050.605282572591,"y":19550.55241104499},"targetPosition":{"x":10195.468516492905,"y":19637.104164107237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d5cc4f53-cc80-457a-842f-a2259450f02f","savedPayload":{"position":{"x":10195.468516492905,"y":19637.104164107237},"targetPosition":{"x":10340.33175041322,"y":19723.655917169483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Histogram","config":"{\n \"codeName\": \"histogram\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.histogram","project":"Superalgos","id":"9724655b-b624-425d-b21c-87c69ede1d0a","savedPayload":{"position":{"x":10257.86686334168,"y":19396.385704042354},"targetPosition":{"x":10299.09930687745,"y":19560.020810605918},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d0f070bb-08a6-4c05-8e49-49f7b6a3aa15","savedPayload":{"position":{"x":10299.09930687745,"y":19560.020810605918},"targetPosition":{"x":10340.33175041322,"y":19723.655917169483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b5df9321-87e6-4c0b-892b-0af0e9b47d8d","savedPayload":{"position":{"x":10340.33175041322,"y":19723.655917169483},"targetPosition":{"x":10686.538762662207,"y":19144.202981488223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\n/* EMA3 and EMA10 Calculation */\n\nlet candle = record.current\n\nvariable.ema3 = calculateEMA(3, candle.close, variable.previousEMA3)\nvariable.previousEMA3 = variable.ema3\n\nvariable.ema10 = calculateEMA(10, candle.close, variable.previousEMA10)\nvariable.previousEMA10 = variable.ema10\n\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}\n\n/* MACD Line Calculation */\n\nmacdLine = variable.ema3 - variable.ema10\n\nvariable.line = macdLine.toFixed(2)\n\n/* Signal Line Calculation (EMA16 of MACD Line) */\n\nmacdSignal = calculateSignalEMA(16, variable.line, variable.previousSignal)\nvariable.signal = macdSignal.toFixed(2)\nvariable.previousSignal = variable.signal \n \nfunction calculateSignalEMA(periods, currentSignal, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSignal * k + variable.previousSignal * (1-k)\n}\n\n/* Histogram Calculation */\n\nhistogram = variable.line - variable.signal\nvariable.histogram = histogram.toFixed(2)","project":"Superalgos","id":"6e3e0c8a-7600-4cf4-aa00-a29c8e94b42a","savedPayload":{"position":{"x":10002.831412404494,"y":19681.124342337527},"targetPosition":{"x":10137.791338709274,"y":19501.094294035007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ba2052e5-b0b2-4cae-b4a8-3212eb5cbe62","savedPayload":{"position":{"x":10137.791338709274,"y":19501.094294035007},"targetPosition":{"x":10272.751265014054,"y":19321.064245732487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\n/* SMA Calculation */\n\n/* \nAlthough we don't really need to set an array to access a number of candles,\nwe will do so in order to reuse the code built for the SMA indicator, and also\nso that the same code may be used for other MACD products that may require\naccessing more candles than are available in the span of two days.\n*/\n\nvariable.last100 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")\n\n/* EMA Calculation */\n\nvariable.previousEMA3 = 0\nvariable.previousEMA10 = 0\n\n/* MACD Line calculation */\n\nvariable.previousSignal = 0","project":"Superalgos","id":"e009ff8c-ac89-4cff-b3c4-27777ff2173c","savedPayload":{"position":{"x":9825.970148160226,"y":19267.336844689373},"targetPosition":{"x":10049.36070658714,"y":19294.20054521093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fba3e3c4-5cf5-4925-9e02-36981e662f0d","savedPayload":{"position":{"x":10049.36070658714,"y":19294.20054521093},"targetPosition":{"x":10272.751265014054,"y":19321.064245732487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6659182a-7112-4c25-8fac-69f8745f9d2f","savedPayload":{"position":{"x":10272.751265014054,"y":19321.064245732487},"targetPosition":{"x":10686.538762662207,"y":19144.202981488223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a","savedPayload":{"position":{"x":10686.538762662207,"y":19144.202981488223},"targetPosition":{"x":10786.673182942548,"y":18705.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"MACD 031016","id":"03816d0f-361f-4c6c-8f85-0bf2dfff1c21"}}},{"type":"Product Definition","name":"MACD 081709","config":"{\n \"codeName\": \"MACD-081709\",\n \"singularVariableName\": \"macd081709\",\n \"pluralVariableName\": \"macd081709s\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"c390cbd3-0ba0-4507-8614-42c88f4ce7e6","savedPayload":{"position":{"x":10565.96106235862,"y":19274.201231773583},"targetPosition":{"x":10506.102772106118,"y":19057.309588117016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"29e18539-f188-4d29-9531-25cd3ee8f282","savedPayload":{"position":{"x":10427.043436687816,"y":19267.962434010955},"targetPosition":{"x":10506.102772106118,"y":19057.309588117016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"94ec28d4-c1bc-4c6d-8887-75877f9a2343","savedPayload":{"position":{"x":10004.775102232743,"y":20388.599367455117},"targetPosition":{"x":9722.86599689049,"y":20330.497944797815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5135ffe3-47fa-4642-8c46-0994438d7e7a","savedPayload":{"position":{"x":9722.86599689049,"y":20330.497944797815},"targetPosition":{"x":9350.224572722986,"y":20254.131624293503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"d3388f28-900d-452f-b83c-936c50b4344e","savedPayload":{"position":{"x":9717.764878762951,"y":20811.831927891653},"targetPosition":{"x":9559.548903700634,"y":20571.70441892552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8056d769-ea76-4ec0-88ff-952921e48d2c","savedPayload":{"position":{"x":9559.548903700634,"y":20571.70441892552},"targetPosition":{"x":9350.224572722986,"y":20254.131624293503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Line","config":"{\n \"codeName\": \"line\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.line","project":"Superalgos","id":"3864df8c-ee73-4f0e-be03-718954a4dbfc","savedPayload":{"position":{"x":9216.296575081466,"y":20908.59525084883},"targetPosition":{"x":9274.07409133314,"y":20626.144920323983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a69347ff-6f46-464a-834a-4d441b8ff291","savedPayload":{"position":{"x":9274.07409133314,"y":20626.144920323983},"targetPosition":{"x":9350.224572722986,"y":20254.131624293503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Signal","config":"{\n \"codeName\": \"signal\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.signal","project":"Superalgos","id":"9db26074-5aaf-4f3e-83aa-bb1064981c64","savedPayload":{"position":{"x":8793.039526838667,"y":20621.831590077083},"targetPosition":{"x":9033.169527976333,"y":20463.382643012537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cf022fb7-6c7e-432d-ae6a-fe0f4ed28116","savedPayload":{"position":{"x":9033.169527976333,"y":20463.382643012537},"targetPosition":{"x":9350.224572722986,"y":20254.131624293503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA8","config":"{\n \"codeName\": \"ema8\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema8","project":"Superalgos","id":"93f62cc4-1f47-4b75-8a7c-c8dbd75b0c9f","savedPayload":{"position":{"x":8695.944621273047,"y":20120.697072596984},"targetPosition":{"x":8978.157967200641,"y":20178.225205053008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"80e1f38f-36c5-440e-a12b-f9154efede9f","savedPayload":{"position":{"x":8978.157967200641,"y":20178.225205053008},"targetPosition":{"x":9350.224572722986,"y":20254.131624293503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA17","config":"{\n \"codeName\": \"ema17\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema17","project":"Superalgos","id":"73b43260-1688-460b-862c-b8fb7406cc10","savedPayload":{"position":{"x":8981.811195966879,"y":19696.893043245826},"targetPosition":{"x":9140.673473196388,"y":19937.14065657381},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a2552af4-df0a-4fcf-85ae-1e35dbcb2608","savedPayload":{"position":{"x":9140.673473196388,"y":19937.14065657381},"targetPosition":{"x":9350.224572722986,"y":20254.131624293503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Histogram","config":"{\n \"codeName\": \"histogram\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.histogram","project":"Superalgos","id":"94cb6751-f4a9-4bad-a8a9-d53d3375a77c","savedPayload":{"position":{"x":9483.038369136804,"y":19599.659511871865},"targetPosition":{"x":9426.15631702869,"y":19881.36227464148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"52e3a47c-f282-4edc-83cb-8bce988e054b","savedPayload":{"position":{"x":9426.15631702869,"y":19881.36227464148},"targetPosition":{"x":9350.224572722986,"y":20254.131624293503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f5a29a3d-06eb-4298-80d0-3d6e22957829","savedPayload":{"position":{"x":9942.765825844239,"y":19429.165050597185},"targetPosition":{"x":10506.102772106118,"y":19057.309588117016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\n/* EMA8 and EMA26 Calculation */\n\nlet candle = record.current\n\nvariable.ema8 = calculateEMA(8, candle.close, variable.previousEMA8)\nvariable.previousEMA8 = variable.ema8\n\nvariable.ema17 = calculateEMA(17, candle.close, variable.previousEMA17)\nvariable.previousEMA17 = variable.ema17\n\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}\n\n/* MACD Line Calculation */\n\nmacdLine = variable.ema8 - variable.ema17\n\nvariable.line = macdLine.toFixed(2)\n\n/* Signal Line Calculation (EMA9 of MACD Line) */\n\nmacdSignal = calculateSignalEMA(9, variable.line, variable.previousSignal)\nvariable.signal = macdSignal.toFixed(2)\nvariable.previousSignal = variable.signal \n \nfunction calculateSignalEMA(periods, currentSignal, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSignal * k + variable.previousSignal * (1-k)\n}\n\n/* Histogram Calculation */\n\nhistogram = variable.line - variable.signal\nvariable.histogram = histogram.toFixed(2)","project":"Superalgos","id":"0290fa4a-851b-4e21-b35e-61e106fc8f81","savedPayload":{"position":{"x":9657.142287110477,"y":19244.409517162072},"targetPosition":{"x":9856.849089636502,"y":19140.76496581068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2a30807-83b5-4c99-8f27-55783b4487ce","savedPayload":{"position":{"x":9856.849089636502,"y":19140.76496581068},"targetPosition":{"x":10056.555892162527,"y":19037.120414459285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\n/* SMA Calculation */\n\n/* \nAlthough we don't really need to set an array to access a number of candles,\nwe will do so in order to reuse the code built for the SMA indicator, and also\nso that the same code may be used for other MACD products that may require\naccessing more candles than are available in the span of two days.\n*/\n\nvariable.last100 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")\n\n/* EMA Calculation */\n\nvariable.previousEMA8 = 0\nvariable.previousEMA17 = 0\n\n/* MACD Line calculation */\n\nvariable.previousSignal = 0","project":"Superalgos","id":"b8dca759-eb3d-4b8b-8a20-99679727f272","savedPayload":{"position":{"x":9298.107029373892,"y":18552.60485997767},"targetPosition":{"x":9677.33146076821,"y":18794.862637218477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a16923a7-9b13-4526-818d-9278fdc509a0","savedPayload":{"position":{"x":9677.33146076821,"y":18794.862637218477},"targetPosition":{"x":10056.555892162527,"y":19037.120414459285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8136f190-cf6a-4ca3-8620-7153ad82a295","savedPayload":{"position":{"x":10056.555892162527,"y":19037.120414459285},"targetPosition":{"x":10506.102772106118,"y":19057.309588117016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750","savedPayload":{"position":{"x":10506.102772106118,"y":19057.309588117016},"targetPosition":{"x":10786.673182942548,"y":18705.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"MACD 081709","id":"43695164-d8aa-40d8-bbf4-ee8cbbdec3f0"}}},{"type":"Product Definition","name":"MACD 245209","config":"{\n \"codeName\": \"MACD-245209\",\n \"singularVariableName\": \"macd245209\",\n \"pluralVariableName\": \"macd245209s\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"89254c6c-9be2-4037-b063-467edc660d10","savedPayload":{"position":{"x":10341.061891056766,"y":19122.117261043993},"targetPosition":{"x":10381.23719238646,"y":18900.733103609302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"8a9dde13-e4b8-40f3-80bc-ea51050b2f08","savedPayload":{"position":{"x":10218.608348025296,"y":19056.222199631346},"targetPosition":{"x":10381.23719238646,"y":18900.733103609302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.begin","project":"Superalgos","id":"adee537e-2c4d-4454-9006-05171c09313a","savedPayload":{"position":{"x":9980.869388440704,"y":19195.794697832494},"targetPosition":{"x":9846.607745816904,"y":19093.567627934357},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38a52afc-8a7c-49c9-8068-dbe438ac64d0","savedPayload":{"position":{"x":9846.607745816904,"y":19093.567627934357},"targetPosition":{"x":9712.346103193104,"y":18991.34055803622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"83439522-7972-454e-af41-d516ee51b26f","savedPayload":{"position":{"x":9757.649830406564,"y":19325.7861026329},"targetPosition":{"x":9734.997966799834,"y":19158.56333033456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"03c98b2f-4e9c-4800-9d9b-5c6ef3f94665","savedPayload":{"position":{"x":9734.997966799834,"y":19158.56333033456},"targetPosition":{"x":9712.346103193104,"y":18991.34055803622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Line","config":"{\n \"codeName\": \"line\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.line","project":"Superalgos","id":"6aa9ee37-3044-444c-bc27-e09dd444f182","savedPayload":{"position":{"x":9507.891963396829,"y":19259.863843283823},"targetPosition":{"x":9610.119033294966,"y":19125.60220066002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c9237bcd-4d76-4460-bcbb-8474843efc03","savedPayload":{"position":{"x":9610.119033294966,"y":19125.60220066002},"targetPosition":{"x":9712.346103193104,"y":18991.34055803622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Signal","config":"{\n \"codeName\": \"signal\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.signal","project":"Superalgos","id":"35ac625e-5516-4a15-b92d-f3a5dc4d8ec0","savedPayload":{"position":{"x":9377.900558596426,"y":19036.64428524968},"targetPosition":{"x":9545.123330894765,"y":19013.99242164295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8dd22ed9-76d1-4108-8a7f-ed4c03d7eede","savedPayload":{"position":{"x":9545.123330894765,"y":19013.99242164295},"targetPosition":{"x":9712.346103193104,"y":18991.34055803622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA24","config":"{\n \"codeName\": \"ema24\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema24","project":"Superalgos","id":"e56fbdd1-4b1c-484b-bcbb-6b9ec6414080","savedPayload":{"position":{"x":9443.822817945504,"y":18786.886418239945},"targetPosition":{"x":9578.084460569304,"y":18889.113488138082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"57f32362-cb33-471d-a855-2c3cddb88bf9","savedPayload":{"position":{"x":9578.084460569304,"y":18889.113488138082},"targetPosition":{"x":9712.346103193104,"y":18991.34055803622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA52","config":"{\n \"codeName\": \"ema52\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.ema52","project":"Superalgos","id":"619feddc-3ff2-4a97-aa8b-a924b80bd099","savedPayload":{"position":{"x":9667.042375979643,"y":18656.895013439538},"targetPosition":{"x":9689.694239586373,"y":18824.11778573788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"93f3c29f-178d-44fb-8f64-21e617d2387e","savedPayload":{"position":{"x":9689.694239586373,"y":18824.11778573788},"targetPosition":{"x":9712.346103193104,"y":18991.34055803622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Histogram","config":"{\n \"codeName\": \"histogram\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.histogram","project":"Superalgos","id":"615f9b7a-676f-444b-8fc8-8355c8c8aef6","savedPayload":{"position":{"x":10530.16266237821,"y":17917.24741704581},"targetPosition":{"x":10121.254382785657,"y":18454.293987541016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"650fc7dc-1ea8-426d-a720-89efdec4292e","savedPayload":{"position":{"x":10121.254382785657,"y":18454.293987541016},"targetPosition":{"x":9712.346103193104,"y":18991.34055803622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"371d2f8e-8868-4933-baee-9827c0496fc1","savedPayload":{"position":{"x":9712.346103193104,"y":18991.34055803622},"targetPosition":{"x":10381.23719238646,"y":18900.733103609302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\n/* EMA24 and EMA52 Calculation */\n\nlet candle = record.current\n\nvariable.ema24 = calculateEMA(24, candle.close, variable.previousEMA24)\nvariable.previousEMA24 = variable.ema24\n\nvariable.ema52 = calculateEMA(52, candle.close, variable.previousEMA52)\nvariable.previousEMA52 = variable.ema52\n\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}\n\n/* MACD Line Calculation */\n\nmacdLine = variable.ema24 - variable.ema52\n\nvariable.line = macdLine.toFixed(2)\n\n/* Signal Line Calculation (EMA9 of MACD Line) */\n\nmacdSignal = calculateSignalEMA(9, variable.line, variable.previousSignal)\nvariable.signal = macdSignal.toFixed(2)\nvariable.previousSignal = variable.signal \n \nfunction calculateSignalEMA(periods, currentSignal, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSignal * k + variable.previousSignal * (1-k)\n}\n\n/* Histogram Calculation */\n\nhistogram = variable.line - variable.signal\nvariable.histogram = histogram.toFixed(2)","project":"Superalgos","id":"4f4e66a9-4791-494a-ada7-72f3d5db7415","savedPayload":{"position":{"x":9535.17060852335,"y":18700.95416527268},"targetPosition":{"x":9760.069905787139,"y":18694.223185384566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d8e07801-1e77-44a5-a232-fd672264f252","savedPayload":{"position":{"x":9760.069905787139,"y":18694.223185384566},"targetPosition":{"x":9984.969203050927,"y":18687.49220549645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\n/* SMA Calculation */\n\n/* \nAlthough we don't really need to set an array to access a number of candles,\nwe will do so in order to reuse the code built for the SMA indicator, and also\nso that the same code may be used for other MACD products that may require\naccessing more candles than are available in the span of two days.\n*/\n\nvariable.last100 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")\n\n/* EMA Calculation */\n\nvariable.previousEMA24 = 0\nvariable.previousEMA52 = 0\n\n/* MACD Line calculation */\n\nvariable.previousSignal = 0","project":"Superalgos","id":"5f25ca07-07ce-49a7-a397-5d2f3e89c0c3","savedPayload":{"position":{"x":9748.411506636197,"y":18304.68617593715},"targetPosition":{"x":9866.690354843562,"y":18496.0891907168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dd01ebc2-8204-4b51-83d9-92d416521553","savedPayload":{"position":{"x":9866.690354843562,"y":18496.0891907168},"targetPosition":{"x":9984.969203050927,"y":18687.49220549645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e1a8b841-84d8-4ddd-822b-d81fe2b9a313","savedPayload":{"position":{"x":9984.969203050927,"y":18687.49220549645},"targetPosition":{"x":10381.23719238646,"y":18900.733103609302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"47984765-8180-45cf-a9eb-f0a8b22d165d","savedPayload":{"position":{"x":10381.23719238646,"y":18900.733103609302},"targetPosition":{"x":10786.673182942548,"y":18705.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"MACD 245209","id":"2fe60a0e-dd3a-4bb8-a321-4742389ab930"}}}],"id":"7724b857-30aa-4d3c-9ab7-e70895229f2a","savedPayload":{"position":{"x":10786.673182942548,"y":18705.4854210064},"targetPosition":{"x":10786.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Relative Strenght Index (RSI)","config":"{\n\"codeName\": \"RSI\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates RSI.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market RSI14","project":"Superalgos","id":"41eb05b7-0222-49b7-9b62-f14f43302f8f","savedPayload":{"position":{"x":10929.798362268186,"y":19635.71782522133},"targetPosition":{"x":10595.346188357256,"y":19635.71782522133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5ec62760-e144-4496-98ab-0415a4b315ec"}}}],"outputDatasetFolders":[],"id":"35d2683b-470d-44e0-97bb-6075e6b5cc92","savedPayload":{"position":{"x":10595.346188357256,"y":19635.71782522133},"targetPosition":{"x":10293.068156950681,"y":19461.197522418635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"ea692963-60c5-445b-921c-f2be614186d7","savedPayload":{"position":{"x":10467.588459753377,"y":20112.353187521097},"targetPosition":{"x":10467.588459753377,"y":19763.47555382521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Relative Strenght Index (RSI) Multi-Period-Market","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"4211e16a-a54f-4049-941e-fd3be8244852","savedPayload":{"position":{"x":10168.348880730115,"y":19936.241605326482},"targetPosition":{"x":10467.588459753377,"y":19763.47555382521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"bbff3247-937a-429e-9959-c896b8207f26"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"9d9b2836-9eab-437b-9426-2cef828cd0e3","savedPayload":{"position":{"x":10162.163267304335,"y":19587.13823674746},"targetPosition":{"x":10467.588459753377,"y":19763.47555382521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"1a42abe3-eaab-444f-8687-c3930dc28a06","savedPayload":{"position":{"x":10467.588459753377,"y":19763.47555382521},"targetPosition":{"x":10293.068156950681,"y":19461.197522418635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"bbff3247-937a-429e-9959-c896b8207f26","savedPayload":{"position":{"x":10293.068156950681,"y":19810.238128024026},"targetPosition":{"x":10293.068156950681,"y":19461.197522418635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"b2babf3e-22f6-4064-b4e5-840eec9ff707","savedPayload":{"position":{"x":9961.779140505223,"y":19353.55519582988},"targetPosition":{"x":10293.068156950681,"y":19461.197522418635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"ae4d9310-3446-41b3-88b9-90978defd305","savedPayload":{"position":{"x":9990.790125544107,"y":19635.71782522133},"targetPosition":{"x":10293.068156950681,"y":19461.197522418635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"96f31416-5090-428a-be83-985a0b3ab275","savedPayload":{"position":{"x":10468.475131408602,"y":19023.683472540346},"targetPosition":{"x":10468.475131408602,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Calculates RSI\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily RSI14","project":"Superalgos","id":"7539f591-7ca7-4fd5-9142-a6b470f8ef8e","savedPayload":{"position":{"x":10061.980638233039,"y":19593.88160485174},"targetPosition":{"x":9889.788554929411,"y":19593.88160485174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f1556d09-f134-4678-83fb-04002d1dcd34"}}}],"outputDatasetFolders":[],"id":"f5a20865-68a4-4e3f-8547-afc741d7fb85","savedPayload":{"position":{"x":9889.788554929411,"y":19593.88160485174},"targetPosition":{"x":9799.450198684619,"y":19256.734269473916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Relative Strenght Index (RSI) Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"632dbd10-6cf7-453a-8e5c-4a74d33fcaf4","savedPayload":{"position":{"x":9709.111842439826,"y":19766.15125195415},"targetPosition":{"x":9709.111842439826,"y":19593.88160485174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2d1d4e5a-49c3-4d9a-958a-195d3f0949c2"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"5a1a8917-5d85-4f33-b552-a314ee6c54db","savedPayload":{"position":{"x":9578.18666368231,"y":19724.806783609256},"targetPosition":{"x":9709.111842439826,"y":19593.88160485174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"9ea493a4-33b1-445e-975d-b202994079c8","savedPayload":{"position":{"x":9519.007852631566,"y":19593.88160485174},"targetPosition":{"x":9709.111842439826,"y":19593.88160485174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"86af23c8-eb30-499a-9d88-39e0e9df06e5","savedPayload":{"position":{"x":9589.839215203403,"y":19474.608977615317},"targetPosition":{"x":9709.111842439826,"y":19593.88160485174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"6e2f9722-24f9-40dc-9e38-f4dcbbbeb38a","savedPayload":{"position":{"x":9709.111842439826,"y":19593.88160485174},"targetPosition":{"x":9799.450198684619,"y":19256.734269473916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"2d1d4e5a-49c3-4d9a-958a-195d3f0949c2","savedPayload":{"position":{"x":9552.641219551588,"y":19503.543248606948},"targetPosition":{"x":9799.450198684619,"y":19256.734269473916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"525140eb-d037-4b8d-9eef-f01574ca49ff","savedPayload":{"position":{"x":9428.783085643507,"y":19136.29722370107},"targetPosition":{"x":9799.450198684619,"y":19256.734269473916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"9162d141-5486-4a0d-a3e4-71c74060beb8","savedPayload":{"position":{"x":9462.302863306795,"y":19166.395913229124},"targetPosition":{"x":9799.450198684619,"y":19256.734269473916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f1177bcd-22dc-425b-8f30-878844aa82b8","savedPayload":{"position":{"x":10150.277079874657,"y":18891.88152407429},"targetPosition":{"x":10468.475131408602,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"RSI14","config":"{\n \"codeName\": \"RSI-14\",\n \"singularVariableName\": \"rsi14\",\n \"pluralVariableName\": \"rsi14s\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"5ec62760-e144-4496-98ab-0415a4b315ec","savedPayload":{"position":{"x":9886.223449642795,"y":18755.71229627471},"targetPosition":{"x":10018.475131408602,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"f1556d09-f134-4678-83fb-04002d1dcd34","savedPayload":{"position":{"x":9804.487415242193,"y":18643.21229627471},"targetPosition":{"x":10018.475131408602,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"Begin","code":"record.current.begin","project":"Superalgos","id":"069fdb18-b72b-4fd2-9255-061f7a4f0b7e","savedPayload":{"position":{"x":9390.0232311334,"y":18536.77368751302},"targetPosition":{"x":9490.261465104591,"y":18485.69975629232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"309f6917-c246-4d84-89ac-abca872eb828","savedPayload":{"position":{"x":9490.261465104591,"y":18485.69975629232},"targetPosition":{"x":9590.499699075783,"y":18434.62582507162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"record.current.end","project":"Superalgos","id":"2128f049-e006-4e71-b9a5-91655bfcb290","savedPayload":{"position":{"x":9376.511982909375,"y":18365.097001337257},"targetPosition":{"x":9483.505840992579,"y":18399.86141320444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38a593cc-3232-4977-9597-18939c86bb5d","savedPayload":{"position":{"x":9483.505840992579,"y":18399.86141320444},"targetPosition":{"x":9590.499699075783,"y":18434.62582507162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Value","config":"{\n \"codeName\": \"value\",\n \"isString\": false\n}","project":"Superalgos","formula":{"type":"Formula","code":"variable.value","project":"Superalgos","id":"c5e2ca09-53a7-4655-b0dc-242b7fbd11f0","savedPayload":{"position":{"x":9488.351836634385,"y":18234.149357129238},"targetPosition":{"x":9539.425767855084,"y":18334.38759110043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5988292a-69bf-4e2d-833b-dccb78aa32a8","savedPayload":{"position":{"x":9539.425767855084,"y":18334.38759110043},"targetPosition":{"x":9590.499699075783,"y":18434.62582507162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b12a20d9-1b6a-4525-b50c-8edf1fc3bff8","savedPayload":{"position":{"x":9590.499699075783,"y":18434.62582507162},"targetPosition":{"x":10018.475131408602,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Loop Code */\n\n/* \nCalculation method credit: https://www.macroption.com/rsi-calculation/\n\nRSI Calculation Formula\n\n RSI = 100 – 100 / ( 1 + RS )\n RS = Relative Strength = AvgU / AvgD\n AvgU = average of all up moves in the last N price bars\n AvgD = average of all down moves in the last N price bars\n N = the period of RSI\n There are 3 different commonly used methods for the exact calculation of AvgU and AvgD (see details below)\n\nRSI Calculation Step by Step\n\n Calculate up moves and down moves (get U and D)\n Average the up moves and down moves (get AvgU and AvgD)\n Calculate Relative Strength (get RS)\n Calculate the Relative Strength Index (get RSI)\n*/\n\n/* Calculating Up Moves and Down Moves */\n\n//let candle = record.current // Our main dependencies are candles \n//let candlePrevious = record.previous\n\nif (record.previous !== undefined) {\n if (record.current.close > record.previous.close) {\n variable.last14U.push(record.current.close - record.previous.close) // Add win to last 14 array.\n } else {\n variable.last14U.push(0) // Add 0 to keep proper count of records in the last 14 array.\n }\n \n if (record.current.close < record.previous.close) {\n variable.last14D.push(record.previous.close - record.current.close) // Add win to last 14 array.\n } else {\n variable.last14D.push(0) // Add 0 to keep proper count of records in the last 14 array.\n }\n \n if (variable.last14U.length > 14) {\n variable.last14U.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 14 elements.\n }\n \n if (variable.last14D.length > 14) {\n variable.last14D.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 14 elements.\n }\n \n /* Calculating Averages of Up Moves and Down Moves */\n \n variable.avgU = calculateAVGU(14)\n variable.avgD = calculateAVGD(14)\n \n /* Calculating Relative Strength */\n \n if (variable.avgD > 0) {\n relativeStrength = variable.avgU / variable.avgD\n } else {\n relativeStrength = 0\n }\n\n /* Calculating RSI */\n\n relativeStrengthIndex = 100 - 100 / ( 1 + relativeStrength)\n\n if (relativeStrengthIndex !== undefined) {\n variable.value = relativeStrengthIndex.toFixed(2)\n } else {\n variable.value = 0\n }\n} else {\n variable.value = 0\n}\n\nfunction calculateAVGU(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last14U.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sumU = 0 // Initialize sum variable. \n for (let j = variable.last14U.length - periods; j < variable.last14U.length; j++) { // Iterate through the last periods\n sumU = sumU + variable.last14U[j]\n }\n let averageU = sumU / periods\n return averageU\n}\n\nfunction calculateAVGD(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last14D.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sumD = 0 // Initialize sum variable. \n for (let i = variable.last14D.length - periods; i < variable.last14D.length; i++) { // Iterate through the last periods\n sumD = sumD + variable.last14D[i]\n }\n let averageD = sumD / periods\n return averageD\n}","project":"Superalgos","id":"a00ed092-3bc1-4288-979d-34c204713d65","savedPayload":{"position":{"x":9342.876311937818,"y":18026.594335687507},"targetPosition":{"x":9548.424039907404,"y":18118.110080379563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c2f8b23a-4e60-4181-9c19-ed243eb151cb","savedPayload":{"position":{"x":9548.424039907404,"y":18118.110080379563},"targetPosition":{"x":9753.97176787699,"y":18209.62582507162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\n/* \nWe keep two separate arrays to store last 14 price increments or losses.\n*/\n\nvariable.last14U = []\nvariable.last14D = []","project":"Superalgos","id":"59da2324-377e-4307-a6d1-b9cf170733ba","savedPayload":{"position":{"x":9706.933959406548,"y":17762.0909721559},"targetPosition":{"x":9730.452863641769,"y":17985.85839861376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aca0a380-6355-42b9-876b-6932d6d13105","savedPayload":{"position":{"x":9730.452863641769,"y":17985.85839861376},"targetPosition":{"x":9753.97176787699,"y":18209.62582507162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5c066df5-2a29-4c74-b7bc-dc5ea1329089","savedPayload":{"position":{"x":9753.97176787699,"y":18209.62582507162},"targetPosition":{"x":10018.475131408602,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7","savedPayload":{"position":{"x":10018.475131408602,"y":18573.683472540346},"targetPosition":{"x":10468.475131408602,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"RSI 14","id":"72403d40-2a64-4e51-8eaf-b1a872e4474e"}}}],"id":"276e2181-0c8d-4d56-94e0-1999ec317cb5","savedPayload":{"position":{"x":10468.475131408602,"y":18573.683472540346},"targetPosition":{"x":10786.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"plotters":[{"type":"Plotter","name":"Simple Moving Average (SMA)","config":"{\n\"codeName\": \"Plotter SMA\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"SMA Popular","config":"{\n\t\"codeName\": \"SMA-Popular\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA 20 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma20","project":"Superalgos","id":"81557791-d18b-472c-b152-612294f281cc","savedPayload":{"position":{"x":8234.942123098328,"y":19481.69403121839},"targetPosition":{"x":9294.01292901739,"y":19389.037341829207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b932c738-3b05-4b1f-a822-2ba7bae30252","savedPayload":{"position":{"x":9294.01292901739,"y":19389.037341829207},"targetPosition":{"x":10353.083734936452,"y":19296.380652440024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 20 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma20","project":"Superalgos","id":"dd573845-585b-4a89-8518-425173e02916","savedPayload":{"position":{"x":8611.375979660901,"y":18076.82375283777},"targetPosition":{"x":9482.229857298677,"y":18686.602202638896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"44ba79ce-2ad1-4bb7-87db-df0aa58e6440","savedPayload":{"position":{"x":9482.229857298677,"y":18686.602202638896},"targetPosition":{"x":10353.083734936452,"y":19296.380652440024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 50 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma50","project":"Superalgos","id":"054b7477-497f-46f9-b33e-de27dc3d494f","savedPayload":{"position":{"x":9802.77425184245,"y":17242.59770164623},"targetPosition":{"x":10077.92899338945,"y":18269.489177043128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"00efabf8-701d-44b1-a590-b8399149dfbb","savedPayload":{"position":{"x":10077.92899338945,"y":18269.489177043128},"targetPosition":{"x":10353.083734936452,"y":19296.380652440024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 50 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma50","project":"Superalgos","id":"2e18404b-0350-4720-95d1-77533ced3986","savedPayload":{"position":{"x":11251.66844717232,"y":17369.359518386107},"targetPosition":{"x":10802.376091054386,"y":18332.870085413066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"084b4468-49d2-4ad2-a716-ebc338c34248","savedPayload":{"position":{"x":10802.376091054386,"y":18332.870085413066},"targetPosition":{"x":10353.083734936452,"y":19296.380652440024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 100 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma100","project":"Superalgos","id":"9e730b8b-7f20-41df-9126-9d9aae2f8ca6","savedPayload":{"position":{"x":12280.10486899037,"y":18397.795940204156},"targetPosition":{"x":11316.59430196341,"y":18847.08829632209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bbacba1b-6b2d-48b7-a440-986a04c61858","savedPayload":{"position":{"x":11316.59430196341,"y":18847.08829632209},"targetPosition":{"x":10353.083734936452,"y":19296.380652440024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 100 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma100","project":"Superalgos","id":"922d462b-1e9f-4766-859d-330041428bc0","savedPayload":{"position":{"x":12406.866685730245,"y":19846.690135534027},"targetPosition":{"x":11379.975210333349,"y":19571.535393987026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"270a8be8-ad51-4061-abe1-a4c7234eb88a","savedPayload":{"position":{"x":11379.975210333349,"y":19571.535393987026},"targetPosition":{"x":10353.083734936452,"y":19296.380652440024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 200 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma200","project":"Superalgos","id":"4278cffb-da8c-458e-b014-449f8487204b","savedPayload":{"position":{"x":11572.640634538708,"y":21038.088407715575},"targetPosition":{"x":10962.86218473758,"y":20167.2345300778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cd242031-8d7a-4cee-a680-156b0be7c7c7","savedPayload":{"position":{"x":10962.86218473758,"y":20167.2345300778},"targetPosition":{"x":10353.083734936452,"y":19296.380652440024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 200 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma200","project":"Superalgos","id":"a3b73c57-a9b2-4a55-9232-9bacf741a933","savedPayload":{"position":{"x":10167.770356158086,"y":21414.52226427815},"targetPosition":{"x":10260.427045547269,"y":20355.451458359086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"328b048e-eb4a-4a02-ad95-a17cd170c4a7","savedPayload":{"position":{"x":10260.427045547269,"y":20355.451458359086},"targetPosition":{"x":10353.083734936452,"y":19296.380652440024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6755d98f-e1de-4ae9-b688-d06ab9cc543e","savedPayload":{"position":{"x":10353.083734936452,"y":19296.380652440024},"targetPosition":{"x":9601.347001086557,"y":20048.11738628992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"6368c66e-47fc-486d-8c03-e2ed303de825","savedPayload":{"position":{"x":11178.547959577456,"y":18269.489177043128},"targetPosition":{"x":10903.393218030455,"y":19296.380652440024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"b0d22693-8100-49e9-b92e-11a8a55a5480","savedPayload":{"position":{"x":10903.393218030455,"y":19296.380652440024},"targetPosition":{"x":10628.238476483453,"y":20323.27212783692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 20 End","project":"Superalgos","id":"d9dae274-33d5-403d-a5ff-5514104df62e","savedPayload":{"position":{"x":10085.994679600848,"y":21262.465934126652},"targetPosition":{"x":10628.238476483453,"y":20323.27212783692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 20 End","id":"44ba79ce-2ad1-4bb7-87db-df0aa58e6440"}}},{"type":"Polygon Vertex","name":"SMA 20 Begin","project":"Superalgos","id":"45823ead-7d67-409c-8160-ea36496c412e","savedPayload":{"position":{"x":10101.501563544349,"y":19410.937032404407},"targetPosition":{"x":10628.238476483453,"y":20323.27212783692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 20 Begin","id":"b932c738-3b05-4b1f-a822-2ba7bae30252"}}}],"id":"ffe11ebb-d04f-4bf6-b6ff-43382be7c347","savedPayload":{"position":{"x":10628.238476483453,"y":20323.27212783692},"targetPosition":{"x":9601.347001086557,"y":20048.11738628992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 50","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b0de67a4-9a26-40ce-aa19-f5336145f871","savedPayload":{"position":{"x":11930.284693427351,"y":20524.699378592813},"targetPosition":{"x":10903.393218030455,"y":20799.854120139815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f06c2d68-11d4-40e0-99df-43a758ca0123","savedPayload":{"position":{"x":10903.393218030455,"y":20799.854120139815},"targetPosition":{"x":9876.501742633558,"y":21075.008861686816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 50 End","project":"Superalgos","id":"baf11fde-1f46-4e77-a8fe-d19a3ee8a4b2","savedPayload":{"position":{"x":9356.176491753184,"y":21976.23863267265},"targetPosition":{"x":9876.501742633558,"y":21075.008861686816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 50 End","id":"084b4468-49d2-4ad2-a716-ebc338c34248"}}},{"type":"Polygon Vertex","name":"SMA 50 Begin","project":"Superalgos","id":"bb6ef8cd-1473-4200-9c0e-35b5eab40259","savedPayload":{"position":{"x":9351.254908732608,"y":20165.254658855683},"targetPosition":{"x":9876.501742633558,"y":21075.008861686816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 50 Begin","id":"00efabf8-701d-44b1-a590-b8399149dfbb"}}}],"id":"c867bef2-aa91-4753-9b27-68f88d42370e","savedPayload":{"position":{"x":9876.501742633558,"y":21075.008861686816},"targetPosition":{"x":9601.347001086557,"y":20048.11738628992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 100","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b03ef9cb-fef3-4a54-bf5a-a85528fa2699","savedPayload":{"position":{"x":10664.463285431131,"y":21551.59085398971},"targetPosition":{"x":9601.347001086557,"y":21551.59085398971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"baf25122-e7de-4283-b638-cfe2766220ac","savedPayload":{"position":{"x":9601.347001086557,"y":21551.59085398971},"targetPosition":{"x":8849.610267236661,"y":20799.854120139815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 100 Begin","project":"Superalgos","id":"8657980b-1796-4291-bba6-87520122b302","savedPayload":{"position":{"x":8314.085047829074,"y":21727.411008888226},"targetPosition":{"x":8849.610267236661,"y":20799.854120139815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 100 Begin","id":"bbacba1b-6b2d-48b7-a440-986a04c61858"}}},{"type":"Polygon Vertex","name":"SMA 100 End","project":"Superalgos","id":"45403abf-a4b1-4f8a-9d18-8ee72fef1792","savedPayload":{"position":{"x":8323.508001529335,"y":19888.618265957626},"targetPosition":{"x":8849.610267236661,"y":20799.854120139815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 100 End","id":"270a8be8-ad51-4061-abe1-a4c7234eb88a"}}}],"id":"7473f9b9-7737-4ee1-8418-39b96d8365c3","savedPayload":{"position":{"x":8849.610267236661,"y":20799.854120139815},"targetPosition":{"x":9601.347001086557,"y":20048.11738628992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 200","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"9475aa23-1561-45f6-8129-9d7ffaf0bb22","savedPayload":{"position":{"x":8024.1460425956575,"y":21826.74559553671},"targetPosition":{"x":8299.300784142659,"y":20799.854120139815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9007d9ad-f2b5-45fb-a7b3-b9579c74866d","savedPayload":{"position":{"x":8299.300784142659,"y":20799.854120139815},"targetPosition":{"x":8574.45552568966,"y":19772.96264474292},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 200 Begin","project":"Superalgos","id":"0b3d001b-060a-4d72-94e7-d8e9f76ef1ae","savedPayload":{"position":{"x":8049.264063956005,"y":20682.620940166973},"targetPosition":{"x":8574.45552568966,"y":19772.96264474292},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 200 Begin","id":"cd242031-8d7a-4cee-a680-156b0be7c7c7"}}},{"type":"Polygon Vertex","name":"SMA 200 End","project":"Superalgos","id":"178f2776-a5db-4cb9-b8c7-11ecb471bf12","savedPayload":{"position":{"x":8042.338171766252,"y":18851.308352158467},"targetPosition":{"x":8574.45552568966,"y":19772.96264474292},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 200 End","id":"328b048e-eb4a-4a02-ad95-a17cd170c4a7"}}}],"id":"5dbe47bb-9414-4edd-be08-5ab50755a852","savedPayload":{"position":{"x":8574.45552568966,"y":19772.96264474292},"targetPosition":{"x":9601.347001086557,"y":20048.11738628992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"340dc986-ccc9-4b47-ac54-294187daa2e0","savedPayload":{"position":{"x":10111.673182942548,"y":19095.1968527094},"targetPosition":{"x":10111.673182942548,"y":18645.1968527094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Popular SMA","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"SMA 20","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma20","project":"Superalgos","id":"4f901876-b274-426e-9755-529b6241890d","savedPayload":{"position":{"x":10390.792094169205,"y":19472.414398432375},"targetPosition":{"x":10056.376922704378,"y":19171.305625570887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"57d75985-febe-441b-be12-31f5eb10881b","savedPayload":{"position":{"x":10056.376922704378,"y":19171.305625570887},"targetPosition":{"x":9721.96175123955,"y":18870.1968527094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 50","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma50","project":"Superalgos","id":"dc2d66e9-8dc1-4092-bfa8-e147c7cf7226","savedPayload":{"position":{"x":9355.898772471332,"y":19692.387764587744},"targetPosition":{"x":9538.930261855441,"y":19281.29230864857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"74e3faab-246a-4c05-ae0a-b68f2095aa73","savedPayload":{"position":{"x":9538.930261855441,"y":19281.29230864857},"targetPosition":{"x":9721.96175123955,"y":18870.1968527094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 100","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma100","project":"Superalgos","id":"1b045b3c-13a9-4091-a804-0040340cf1be","savedPayload":{"position":{"x":8826.892045408104,"y":18776.121235768514},"targetPosition":{"x":9274.426898323827,"y":18823.159044238957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f46c7caf-8907-4cc4-b048-efe691a24049","savedPayload":{"position":{"x":9274.426898323827,"y":18823.159044238957},"targetPosition":{"x":9721.96175123955,"y":18870.1968527094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 200","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma200","project":"Superalgos","id":"ef7a7e7d-dec3-4da6-9646-d087e03b7a71","savedPayload":{"position":{"x":9534.841229503569,"y":17989.864012048973},"targetPosition":{"x":9628.40149037156,"y":18430.030432379186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e1108c8-e8a4-4ae8-b6b1-765c4292580a","savedPayload":{"position":{"x":9628.40149037156,"y":18430.030432379186},"targetPosition":{"x":9721.96175123955,"y":18870.1968527094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7fc74763-c245-4b23-8121-7fe0d1e8e1db","savedPayload":{"position":{"x":9721.96175123955,"y":18870.1968527094},"targetPosition":{"x":10111.673182942548,"y":18645.1968527094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ddf21e96-c312-4ebe-9e2b-f56e8ea072aa","savedPayload":{"position":{"x":10111.673182942548,"y":18645.1968527094},"targetPosition":{"x":10336.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"SMA Base 11","config":"{\n\t\"codeName\": \"SMA-Base11\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA 11 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma11","project":"Superalgos","id":"ab8c79b6-26ed-436e-a9ed-5581e48403a9","savedPayload":{"position":{"x":9383.181492817348,"y":18807.345717939013},"targetPosition":{"x":9544.3468964233,"y":18924.908769877064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"77d02772-853e-4e30-9efe-7bea8e829d51","savedPayload":{"position":{"x":9544.3468964233,"y":18924.908769877064},"targetPosition":{"x":9705.742435078944,"y":19042.28992410319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 11 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma11","project":"Superalgos","id":"e7f8c6de-4085-4886-ad93-c207274eb90c","savedPayload":{"position":{"x":9561.752539126115,"y":18670.019856663617},"targetPosition":{"x":9633.718566859352,"y":18856.20574317858},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"185ca2e7-b561-4ce4-b219-bd54496885b5","savedPayload":{"position":{"x":9633.718566859352,"y":18856.20574317858},"targetPosition":{"x":9705.742435078944,"y":19042.28992410319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 22 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma22","project":"Superalgos","id":"0c62dd54-916a-4187-be47-0715604a0632","savedPayload":{"position":{"x":9785.680908868886,"y":18651.36096062012},"targetPosition":{"x":9745.726969118656,"y":18846.851558282717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08b23cb2-cf78-48ae-bd9a-efe0e8df4578","savedPayload":{"position":{"x":9745.726969118656,"y":18846.851558282717},"targetPosition":{"x":9705.742435078944,"y":19042.28992410319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 22 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma22","project":"Superalgos","id":"f1d537b7-09a0-4031-8565-02ea33b66261","savedPayload":{"position":{"x":9984.580255818033,"y":18757.08319234595},"targetPosition":{"x":9845.1771487039,"y":18899.68042359086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3871971f-7f4b-49a0-a0d7-b1d08a4db951","savedPayload":{"position":{"x":9845.1771487039,"y":18899.68042359086},"targetPosition":{"x":9705.742435078944,"y":19042.28992410319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 33 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma33","project":"Superalgos","id":"5cbdb800-4b2b-49e6-a8ef-678587ecd626","savedPayload":{"position":{"x":10094.847058486153,"y":18953.57133778103},"targetPosition":{"x":9900.31076186333,"y":18997.91627189774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2734c9f2-1347-4b5b-8dbf-f7f42eb2c810","savedPayload":{"position":{"x":9900.31076186333,"y":18997.91627189774},"targetPosition":{"x":9705.742435078944,"y":19042.28992410319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 33 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma33","project":"Superalgos","id":"d7051dab-455d-4d02-8e0b-59139c3546d3","savedPayload":{"position":{"x":10175.009507231309,"y":19211.59843072385},"targetPosition":{"x":9893.62654816997,"y":19110.107233946117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"ce242fe6-2b52-4b89-a203-ce398b3545fd","savedPayload":{"position":{"x":9893.62654816997,"y":19110.107233946117},"targetPosition":{"x":9705.742435078944,"y":19042.28992410319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 55 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma55","project":"Superalgos","id":"2c8a5860-2c8c-4a04-b0aa-d353817d3dab","savedPayload":{"position":{"x":9948.613835573771,"y":19359.721783544366},"targetPosition":{"x":9827.178835175178,"y":19200.996960807097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bdc5f0cf-2c2f-466c-963b-19d81a13b532","savedPayload":{"position":{"x":9827.178835175178,"y":19200.996960807097},"targetPosition":{"x":9705.742435078944,"y":19042.28992410319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 55 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma55","project":"Superalgos","id":"62dfcbf0-e773-41db-80e0-bf46d47d977f","savedPayload":{"position":{"x":9738.567213938491,"y":19440.848134216503},"targetPosition":{"x":9722.142659191763,"y":19241.549245291986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2e58c59-c5d7-4b42-bb66-f012da23c12a","savedPayload":{"position":{"x":9722.142659191763,"y":19241.549245291986},"targetPosition":{"x":9705.742435078944,"y":19042.28992410319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 111 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma111","project":"Superalgos","id":"b496251d-8005-4d21-9be0-1dec58cb58ba","savedPayload":{"position":{"x":9518.412900675969,"y":19395.43500239507},"targetPosition":{"x":9612.038486393823,"y":19218.829351624554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"62ed1060-3233-4175-a4cc-8ad04a123105","savedPayload":{"position":{"x":9612.038486393823,"y":19218.829351624554},"targetPosition":{"x":9705.742435078944,"y":19042.28992410319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 11 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma111","project":"Superalgos","id":"3e765b91-17a0-4b30-bcfb-d7491afa9635","savedPayload":{"position":{"x":9357.413338947015,"y":19237.739607484033},"targetPosition":{"x":9531.475330971385,"y":19139.92089509658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bdee0fe7-c635-483d-b547-6271410cc35a","savedPayload":{"position":{"x":9531.475330971385,"y":19139.92089509658},"targetPosition":{"x":9705.742435078944,"y":19042.28992410319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"853ae08f-85ed-48e9-82d9-7f00184ff7e7","savedPayload":{"position":{"x":9705.742435078944,"y":19042.28992410319},"targetPosition":{"x":8712.334395529022,"y":18989.77442130183},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 11","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"a36a0be4-c3be-4e17-8459-ce24d08c60d4","savedPayload":{"position":{"x":8828.160936008579,"y":19632.984596305465},"targetPosition":{"x":8784.60140892896,"y":19506.80778662233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bc76dbe0-28fe-4811-b396-583cc810ad8c","savedPayload":{"position":{"x":8784.60140892896,"y":19506.80778662233},"targetPosition":{"x":8697.332722179079,"y":19255.325246155346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 11 Begin","project":"Superalgos","id":"007b0aa7-d129-4b66-97b1-a223b61465a9","savedPayload":{"position":{"x":8681.820965795447,"y":19521.276976398567},"targetPosition":{"x":8697.332722179079,"y":19255.325246155346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 11 Begin","id":"77d02772-853e-4e30-9efe-7bea8e829d51"}}},{"type":"Polygon Vertex","name":"SMA 11 End","project":"Superalgos","id":"8bf6c449-35d6-44c0-ac25-0da059e0c7d0","savedPayload":{"position":{"x":8614.844304460443,"y":19504.93942738568},"targetPosition":{"x":8697.332722179079,"y":19255.325246155346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 11 End","id":"185ca2e7-b561-4ce4-b219-bd54496885b5"}}}],"id":"82eff706-25ff-45ba-b066-0f20b64e26e1","savedPayload":{"position":{"x":8697.332722179079,"y":19255.325246155346},"targetPosition":{"x":8712.334395529022,"y":18989.77442130183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 22","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"48b5e69c-d187-40f8-aee9-89f02ac7b442","savedPayload":{"position":{"x":8517.80519229289,"y":19614.64286656509},"targetPosition":{"x":8533.37202129342,"y":19481.734843570386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"13b6ae03-77c1-473a-9cd9-eee42cab5005","savedPayload":{"position":{"x":8533.37202129342,"y":19481.734843570386},"targetPosition":{"x":8583.092636861576,"y":19222.19742188692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 22 End","project":"Superalgos","id":"5101118b-d0b2-46b3-b752-c1e8f3e09842","savedPayload":{"position":{"x":8442.022328549589,"y":19453.5226212805},"targetPosition":{"x":8583.092636861576,"y":19222.19742188692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 22 End","id":"3871971f-7f4b-49a0-a0d7-b1d08a4db951"}}},{"type":"Polygon Vertex","name":"SMA 22 Begin","project":"Superalgos","id":"5d1290b9-98c2-4925-9da4-fcdf50d13c5b","savedPayload":{"position":{"x":8398.362199323532,"y":19409.170527626364},"targetPosition":{"x":8583.092636861576,"y":19222.19742188692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 22 Begin","id":"08b23cb2-cf78-48ae-bd9a-efe0e8df4578"}}}],"id":"b7186c69-0a02-4820-bb58-1e2cee5790b3","savedPayload":{"position":{"x":8583.092636861576,"y":19222.19742188692},"targetPosition":{"x":8712.334395529022,"y":18989.77442130183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 33","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"a8183072-9dc8-4f7c-b72b-742477e4c8fd","savedPayload":{"position":{"x":8264.424399874737,"y":19467.084347394954},"targetPosition":{"x":8336.235746683473,"y":19354.114380500887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"98a87528-cb66-4e15-a3b0-aadb8d25fcec","savedPayload":{"position":{"x":8336.235746683473,"y":19354.114380500887},"targetPosition":{"x":8494.871490433437,"y":19142.83247303302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 33 End","project":"Superalgos","id":"242e470b-2971-40b2-9f06-a95bf95e23fc","savedPayload":{"position":{"x":8266.675999455947,"y":19289.583637805164},"targetPosition":{"x":8494.871490433437,"y":19142.83247303302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 33 End","id":"ce242fe6-2b52-4b89-a203-ce398b3545fd"}}},{"type":"Polygon Vertex","name":"SMA 33 Begin","project":"Superalgos","id":"106e4253-deab-440c-828a-ea55aea78c97","savedPayload":{"position":{"x":8247.108659606201,"y":19230.885635027793},"targetPosition":{"x":8494.871490433437,"y":19142.83247303302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 33 Begin","id":"2734c9f2-1347-4b5b-8dbf-f7f42eb2c810"}}}],"id":"53f19bad-dcb0-476f-8b32-0d332d1ad130","savedPayload":{"position":{"x":8494.871490433437,"y":19142.83247303302},"targetPosition":{"x":8712.334395529022,"y":18989.77442130183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 55","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"ea853676-6bdc-4723-a515-1a4c683fa1fa","savedPayload":{"position":{"x":8101.71058715121,"y":19224.911733393317},"targetPosition":{"x":8215.448838789682,"y":19154.35246683007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1fd3b244-b5ae-4a96-add5-50b228eac931","savedPayload":{"position":{"x":8215.448838789682,"y":19154.35246683007},"targetPosition":{"x":8449.92306524219,"y":19032.998583296296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 55 End","project":"Superalgos","id":"c0102a15-8594-4582-9714-75e555e3f2ac","savedPayload":{"position":{"x":8180.518023130728,"y":19066.182565077248},"targetPosition":{"x":8449.92306524219,"y":19032.998583296296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 55 End","id":"d2e58c59-c5d7-4b42-bb66-f012da23c12a"}}},{"type":"Polygon Vertex","name":"SMA 55 Begin","project":"Superalgos","id":"aa781190-aa71-4407-bc72-db67ffd67c7e","savedPayload":{"position":{"x":8188.44811119615,"y":19004.812482643138},"targetPosition":{"x":8449.92306524219,"y":19032.998583296296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 55 Begin","id":"bdc5f0cf-2c2f-466c-963b-19d81a13b532"}}}],"id":"8341d899-4df1-47f8-8e0d-bb87b76ed622","savedPayload":{"position":{"x":8449.92306524219,"y":19032.998583296296},"targetPosition":{"x":8712.334395529022,"y":18989.77442130183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 111","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"85056d46-5dd2-4dc2-9c40-55ef936aeea8","savedPayload":{"position":{"x":8060.750446473568,"y":18936.31980580264},"targetPosition":{"x":8193.716212493997,"y":18922.169183789323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bd5b197d-7425-461d-a2ab-5ad6446d00ee","savedPayload":{"position":{"x":8193.716212493997,"y":18922.169183789323},"targetPosition":{"x":8457.28042621804,"y":18914.458295622982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 11 End","project":"Superalgos","id":"fbd2d02d-d58e-4d04-a5a6-9bbc6e877244","savedPayload":{"position":{"x":8200.035224025785,"y":18827.50955426969},"targetPosition":{"x":8457.28042621804,"y":18914.458295622982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 11 End","id":"bdee0fe7-c635-483d-b547-6271410cc35a"}}},{"type":"Polygon Vertex","name":"SMA 111 Begin","project":"Superalgos","id":"e79d988b-7d4a-4201-839a-a95f99dc26fe","savedPayload":{"position":{"x":8253.55638438573,"y":18741.867832740318},"targetPosition":{"x":8457.28042621804,"y":18914.458295622982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 111 Begin","id":"62ed1060-3233-4175-a4cc-8ad04a123105"}}}],"id":"5745a180-5f94-4109-b8e5-41b2c21e9f1a","savedPayload":{"position":{"x":8457.28042621804,"y":18914.458295622982},"targetPosition":{"x":8712.334395529022,"y":18989.77442130183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"ade8af76-e9e6-4dda-8921-c3c5cc8a0ecc","savedPayload":{"position":{"x":8712.334395529022,"y":18989.77442130183},"targetPosition":{"x":9067.143905103756,"y":18595.585201819194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"SMA Base 11","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"SMA 11","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma11","project":"Superalgos","id":"bce6e5ba-e93b-4c0f-9013-db467727e721","savedPayload":{"position":{"x":7690.82716357227,"y":18698.521226845543},"targetPosition":{"x":7868.968460979686,"y":18501.01233308383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f4794965-6a35-4289-9e0e-718b931028de","savedPayload":{"position":{"x":7868.968460979686,"y":18501.01233308383},"targetPosition":{"x":8046.89224069933,"y":18303.419755563373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 22","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma22","project":"Superalgos","id":"e8837d50-025b-4bbc-8199-328df7afbdda","savedPayload":{"position":{"x":7540.728645988642,"y":18467.584258462917},"targetPosition":{"x":7793.8494686813465,"y":18385.51164910862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2b4712d6-5952-4bd0-bcac-7d396d95f842","savedPayload":{"position":{"x":7793.8494686813465,"y":18385.51164910862},"targetPosition":{"x":8046.89224069933,"y":18303.419755563373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 33","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma33","project":"Superalgos","id":"825bc681-cb31-4d26-85af-4f692538fc9d","savedPayload":{"position":{"x":7526.319350283335,"y":18192.993436092846},"targetPosition":{"x":7786.640289765532,"y":18248.196888819733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"377ff3cb-9d7b-45aa-a2c1-3cabf3540c8e","savedPayload":{"position":{"x":7786.640289765532,"y":18248.196888819733},"targetPosition":{"x":8046.89224069933,"y":18303.419755563373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 55","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma55","project":"Superalgos","id":"24c4a804-6686-43ab-a664-db08d860034c","savedPayload":{"position":{"x":7651.409019812963,"y":17947.626704977585},"targetPosition":{"x":7849.2046405484,"y":18125.49841436369},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4b0485d9-4d37-4402-939b-eb878c6750ec","savedPayload":{"position":{"x":7849.2046405484,"y":18125.49841436369},"targetPosition":{"x":8046.89224069933,"y":18303.419755563373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 111","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma111","project":"Superalgos","id":"3d21e771-7edd-4460-aa23-da3c7880a629","savedPayload":{"position":{"x":7882.582971693344,"y":17797.80704902606},"targetPosition":{"x":7964.874005998467,"y":18050.544608162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"738b01bd-a4da-4f90-a816-c021eeb81030","savedPayload":{"position":{"x":7964.874005998467,"y":18050.544608162},"targetPosition":{"x":8046.89224069933,"y":18303.419755563373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fc702308-8514-4e8d-85d3-5d052aad782c","savedPayload":{"position":{"x":8046.89224069933,"y":18303.419755563373},"targetPosition":{"x":9067.143905103756,"y":18595.585201819194},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4a61ac35-a1ae-40f4-b3da-f81ae796ee00","savedPayload":{"position":{"x":9752.106035388051,"y":18592.9854210064},"targetPosition":{"x":10336.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"SMA Base 7","config":"{\n\t\"codeName\": \"SMA-Base7\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA 7 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma7","project":"Superalgos","id":"b459dee1-24d0-4794-9c4d-d9c58972f6e6","savedPayload":{"position":{"x":7924.4581076445465,"y":19754.23480148812},"targetPosition":{"x":8275.428754428198,"y":20152.62466313735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8d6e2d59-fe23-4ba5-ad87-d9d15ad60340","savedPayload":{"position":{"x":8275.428754428198,"y":20152.62466313735},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 7 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma7","project":"Superalgos","id":"3994ef79-ab0b-4552-bbde-f754a86f2e04","savedPayload":{"position":{"x":8165.829233947225,"y":19594.47003371846},"targetPosition":{"x":8396.154729796512,"y":20072.641733875826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a95fee99-4a06-44d7-a6c4-0eea9ccec4d9","savedPayload":{"position":{"x":8396.154729796512,"y":20072.641733875826},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 14 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma14","project":"Superalgos","id":"40d386cb-84a9-49b0-b28e-3d39e9e274cb","savedPayload":{"position":{"x":8441.423538395913,"y":19505.683982804214},"targetPosition":{"x":8533.928384809977,"y":20028.22049259961},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c6d631e7-8cd0-4ccd-b7b4-90b8dda615d8","savedPayload":{"position":{"x":8533.928384809977,"y":20028.22049259961},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 21 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma21","project":"Superalgos","id":"6d2cd604-9a38-4ab7-b19d-9e9e3ae8ad25","savedPayload":{"position":{"x":8730.243038089553,"y":19494.35117695828},"targetPosition":{"x":8678.36579042373,"y":20022.602550834836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f1044fa-67dd-42dc-ba74-61e299e1f1e1","savedPayload":{"position":{"x":8678.36579042373,"y":20022.602550834836},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 21 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma21","project":"Superalgos","id":"1de80488-5eeb-491c-bd5f-e5bd7569dc59","savedPayload":{"position":{"x":9011.698059988921,"y":19561.493443206},"targetPosition":{"x":8819.13631815161,"y":20056.21297029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"df7e58c1-c042-443b-bfd3-69d57894d358","savedPayload":{"position":{"x":8819.13631815161,"y":20056.21297029057},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 28 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma28","project":"Superalgos","id":"93b50d69-b003-4590-b098-ff59dc226e22","savedPayload":{"position":{"x":9264.568962888286,"y":19702.108497000165},"targetPosition":{"x":8945.610825815766,"y":20126.546537699018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7bd742dd-7c4c-4dfe-9415-e655a5e1cc88","savedPayload":{"position":{"x":8945.610825815766,"y":20126.546537699018},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 28 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma28","project":"Superalgos","id":"36ddca01-d7c2-44e4-bac6-1efd92721b56","savedPayload":{"position":{"x":9470.11478921376,"y":19905.76395509005},"targetPosition":{"x":9048.410919460857,"y":20228.399921427615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7678774b-b068-4757-962b-8e126342898a","savedPayload":{"position":{"x":9048.410919460857,"y":20228.399921427615},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 35 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma35","project":"Superalgos","id":"e631b84b-646b-41f7-b87b-7cb4fbf8ac76","savedPayload":{"position":{"x":9613.082275503264,"y":20157.333310532602},"targetPosition":{"x":9119.905453138304,"y":20354.21058016676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"93613bd9-2dbb-493c-a72e-414b0398733e","savedPayload":{"position":{"x":9119.905453138304,"y":20354.21058016676},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 35 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma35","project":"Superalgos","id":"89e3900f-eeaf-47cb-97f6-9093b2f39811","savedPayload":{"position":{"x":9682.882303442613,"y":20438.158639779485},"targetPosition":{"x":9154.81384628839,"y":20494.653849311384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f620fdbe-48b5-4831-995d-b3c721738d1b","savedPayload":{"position":{"x":9154.81384628839,"y":20494.653849311384},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 70 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma70","project":"Superalgos","id":"cacaceaf-b19d-4b2a-81b3-5ac6b44877b7","savedPayload":{"position":{"x":9674.327031472189,"y":20726.99614205352},"targetPosition":{"x":9150.536806995697,"y":20639.098881402304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e506a85-5f72-4a3f-a773-cd85d8b15f21","savedPayload":{"position":{"x":9150.52981203033,"y":20639.095156736894},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 70 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma70","project":"Superalgos","id":"8658d660-52c4-41f8-b423-db569ff19941","savedPayload":{"position":{"x":9588.032736084515,"y":21003.19985327202},"targetPosition":{"x":9107.381152766848,"y":20777.227031679475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8392e1ff-33a6-4b95-baad-3f146bd3c121","savedPayload":{"position":{"x":9107.385060788252,"y":20777.233862153025},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 140 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma140","project":"Superalgos","id":"a56e674e-ec4f-4448-a8bc-bfbc3a02eea4","savedPayload":{"position":{"x":9430.411601855223,"y":21245.887720094255},"targetPosition":{"x":9028.554049361028,"y":20898.593460648928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"39e65adb-6125-4e9a-8f15-5403b21aac40","savedPayload":{"position":{"x":9028.56625760474,"y":20898.595818593778},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 140 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma140","project":"Superalgos","id":"9aeb4594-c7e0-41e1-83b3-8df31b0d44b0","savedPayload":{"position":{"x":9213.16845744941,"y":21437.0633595646},"targetPosition":{"x":8919.917664468816,"y":20994.20502186945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7559cbf5-acba-4a60-91b4-d95f90293f22","savedPayload":{"position":{"x":8919.91017998999,"y":20994.21135544464},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 210 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma210","project":"Superalgos","id":"8856ee41-b264-4468-9dac-eb808b483df3","savedPayload":{"position":{"x":8952.372633911818,"y":21562.52103613648},"targetPosition":{"x":8789.493979865729,"y":21056.951956783356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"479df802-576f-45f1-8322-6b2e493c5ecc","savedPayload":{"position":{"x":8789.50637795308,"y":21056.95149920585},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 210 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma210","project":"Superalgos","id":"f4fa8a22-fe87-4174-bf51-cb574381ca0d","savedPayload":{"position":{"x":8667.40925271039,"y":21612.97606195051},"targetPosition":{"x":8646.983756710713,"y":21082.182383228053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"45a926f2-4bb2-4562-b40f-bd2532ff1d10","savedPayload":{"position":{"x":8646.987243865668,"y":21082.17107973462},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 280 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma280","project":"Superalgos","id":"49f183b2-f8d1-4055-947d-291b7787d846","savedPayload":{"position":{"x":8379.804795041793,"y":21584.693431738036},"targetPosition":{"x":8503.153898364933,"y":21068.04061559355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d5e455bf-bb27-41fa-ba41-c8e7d0aa4d5e","savedPayload":{"position":{"x":8503.16491870677,"y":21068.04304327845},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 280 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma280","project":"Superalgos","id":"012f6580-f9e9-47f6-b6f4-82598b8e8aa7","savedPayload":{"position":{"x":8110.095055204674,"y":21479.76009389127},"targetPosition":{"x":8368.2753323978,"y":21015.557492182434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"298d0ca9-1b4a-48d8-8efe-fda6b2fc2c34","savedPayload":{"position":{"x":8368.288982473729,"y":21015.561343167265},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 350 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma350","project":"Superalgos","id":"4a3f6588-26e3-446b-ac4e-54ad3bc9ef3c","savedPayload":{"position":{"x":7878.704544148615,"y":21305.95312318116},"targetPosition":{"x":8252.561244746095,"y":20928.63811337829},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f3c05d30-da2e-449e-8471-dcc216f4e630","savedPayload":{"position":{"x":8252.57541240655,"y":20928.636462026636},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 350 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma350","project":"Superalgos","id":"1157762f-1236-43b1-a399-06d59a992d55","savedPayload":{"position":{"x":7702.796208908232,"y":21076.164747618153},"targetPosition":{"x":8164.597317944226,"y":20813.720375959554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d6598381-9b15-4cb3-afba-b85ed6770ce3","savedPayload":{"position":{"x":8164.601799719287,"y":20813.708270070074},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"New Point","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"24151ce9-3ecb-4c6b-97e5-41a8a95b45a8","savedPayload":{"position":{"x":7595.406247101153,"y":20807.426564724785},"targetPosition":{"x":8110.89487759805,"y":20679.318680863948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"30f77a0a-81fd-4498-8510-cfca20b6b1d8","savedPayload":{"position":{"x":8110.891984664871,"y":20679.325384518284},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"New Point","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"0da81a21-3169-44c7-a896-17eb32bdfa17","savedPayload":{"position":{"x":7564.504276171734,"y":20520.09039280759},"targetPosition":{"x":8095.446372859231,"y":20535.612642209082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6fd2e88e-f5e1-45d5-8baf-4bc724bf2bae","savedPayload":{"position":{"x":8095.446372859231,"y":20535.612642209082},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 14 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma14","project":"Superalgos","id":"78e7fbfb-c210-44b6-8399-1567f81c73c9","savedPayload":{"position":{"x":7612.421466774944,"y":20234.607984954633},"targetPosition":{"x":8119.427440348038,"y":20392.80057866766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d5f823d6-8b99-44b5-99dc-04724a531323","savedPayload":{"position":{"x":8119.427440348038,"y":20392.80057866766},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e561ee2d-8458-4001-8904-61cd2a3a815e","savedPayload":{"position":{"x":8626.560260716764,"y":20551.169215832335},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 7","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"38522e0c-85c4-49ae-93ac-9a04470855e0","savedPayload":{"position":{"x":8252.443799997553,"y":19263.54131752478},"targetPosition":{"x":8301.597088541981,"y":19139.55031849191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"fcc0c4b0-28ea-4482-8da8-16a0c88c1e52","savedPayload":{"position":{"x":8301.597088541981,"y":19139.55031849191},"targetPosition":{"x":8374.01587073219,"y":18878.974436158598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 7 End","project":"Superalgos","id":"f11dbba2-2bd3-4d0a-a182-2ef78a492d32","savedPayload":{"position":{"x":8226.635557952322,"y":19118.893857873674},"targetPosition":{"x":8374.01587073219,"y":18878.974436158598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 7 End","id":"a95fee99-4a06-44d7-a6c4-0eea9ccec4d9"}}},{"type":"Polygon Vertex","name":"SMA 7 Begin","project":"Superalgos","id":"c50700bc-305d-4cb6-b1bf-1c03c7459d2b","savedPayload":{"position":{"x":8178.681026709226,"y":19048.679022859982},"targetPosition":{"x":8374.01587073219,"y":18878.974436158598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 7 Begin","id":"8d6e2d59-fe23-4ba5-ad87-d9d15ad60340"}}}],"id":"62ad882d-f16d-4476-8c17-0f6e2d6e2b76","savedPayload":{"position":{"x":8374.01587073219,"y":18878.974436158598},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 14","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"14a21030-fa6b-44ef-8cb2-e4f3cb79126e","savedPayload":{"position":{"x":8037.375925744829,"y":19123.256694005093},"targetPosition":{"x":8117.363476839717,"y":19016.069051638104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ca2fa8f2-f6a1-4084-8606-a35495dfd596","savedPayload":{"position":{"x":8117.363476839717,"y":19016.069051638104},"targetPosition":{"x":8268.083455446482,"y":18788.681855964238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 14 Begin","project":"Superalgos","id":"e7d170e8-3d4f-4a55-883a-3a3394fef2af","savedPayload":{"position":{"x":8064.349363530146,"y":18979.758085451354},"targetPosition":{"x":8268.083455446482,"y":18788.681855964238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 14 Begin","id":"d5f823d6-8b99-44b5-99dc-04724a531323"}}},{"type":"Polygon Vertex","name":"SMA 14 End","project":"Superalgos","id":"2383789a-4600-4b8b-a49b-51cbeb46d4f1","savedPayload":{"position":{"x":8034.218104480391,"y":18901.75102395761},"targetPosition":{"x":8268.083455446482,"y":18788.681855964238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 14 End","id":"c6d631e7-8cd0-4ccd-b7b4-90b8dda615d8"}}}],"id":"ab179cef-53c3-46f7-a83b-af29ccd8bc90","savedPayload":{"position":{"x":8268.083455446482,"y":18788.681855964238},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 21","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"f8f0733e-0890-4d54-8d77-1b1fc8b8c92b","savedPayload":{"position":{"x":7878.991878596775,"y":18937.272601556157},"targetPosition":{"x":7984.165899821968,"y":18854.456193319937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"a0f2de63-1abd-4945-9c8c-84e21fd121e0","savedPayload":{"position":{"x":7984.165899821968,"y":18854.456193319937},"targetPosition":{"x":8189.316746544326,"y":18674.234290549834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 21 End","project":"Superalgos","id":"69c3f249-07bf-4a03-b8a1-9d74d0255f23","savedPayload":{"position":{"x":7942.5632499408275,"y":18805.760867566303},"targetPosition":{"x":8189.316746544326,"y":18674.234290549834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 21 End","id":"df7e58c1-c042-443b-bfd3-69d57894d358"}}},{"type":"Polygon Vertex","name":"SMA 21 Begin","project":"Superalgos","id":"959961b9-9bf9-48ce-9ee0-08d2d6a62b8e","savedPayload":{"position":{"x":7934.453251296498,"y":18722.6132559411},"targetPosition":{"x":8189.316746544326,"y":18674.234290549834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 21 Begin","id":"4f1044fa-67dd-42dc-ba74-61e299e1f1e1"}}}],"id":"9a17429f-8213-4a7e-8167-dc36d761973e","savedPayload":{"position":{"x":8189.316746544326,"y":18674.234290549834},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 28","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"713c60e9-ee11-4551-ab62-58ce9c16e066","savedPayload":{"position":{"x":7774.558778671915,"y":18717.03142791299},"targetPosition":{"x":7897.642496897133,"y":18664.309276482138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"725a4d2f-0838-4d78-a8fa-a2b129feda2f","savedPayload":{"position":{"x":7897.642496897133,"y":18664.309276482138},"targetPosition":{"x":8142.882324441336,"y":18543.34202283513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 28 Begin","project":"Superalgos","id":"f4c161f4-6510-47a2-97f7-3f9f848d9892","savedPayload":{"position":{"x":7870.545719635898,"y":18606.438062094872},"targetPosition":{"x":8142.882324441336,"y":18543.34202283513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 28 Begin","id":"7bd742dd-7c4c-4dfe-9415-e655a5e1cc88"}}},{"type":"Polygon Vertex","name":"SMA 28 End","project":"Superalgos","id":"b1b22a6f-0a69-401f-90ea-2306baee0ea2","savedPayload":{"position":{"x":7884.062039084125,"y":18524.183214866738},"targetPosition":{"x":8142.882324441336,"y":18543.34202283513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 28 End","id":"7678774b-b068-4757-962b-8e126342898a"}}}],"id":"4f6e0c60-00a8-4a76-b1b1-4eaa25c5824c","savedPayload":{"position":{"x":8142.882324441336,"y":18543.34202283513},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 35","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"73f591c5-286b-4441-aa59-f647f738e40e","savedPayload":{"position":{"x":7599.719987582568,"y":18496.50536638155},"targetPosition":{"x":7863.425575888927,"y":18458.388169859227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2c56cb10-43c9-447b-8b8a-30dae8e7fab8","savedPayload":{"position":{"x":7863.425575888927,"y":18458.388169859227},"targetPosition":{"x":8131.96785915098,"y":18405.11128088391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 35 End","project":"Superalgos","id":"3ad24108-1339-4c6d-abc6-27a9aa5bc046","savedPayload":{"position":{"x":7852.843961589664,"y":18395.620862705608},"targetPosition":{"x":8131.96785915098,"y":18405.11128088391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 35 End","id":"f620fdbe-48b5-4831-995d-b3c721738d1b"}}},{"type":"Polygon Vertex","name":"SMA 35 Begin","project":"Superalgos","id":"abfdefe3-b9d4-4816-b2cc-7aa64bb69734","savedPayload":{"position":{"x":7886.693868965085,"y":18319.501514394233},"targetPosition":{"x":8131.96785915098,"y":18405.11128088391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 35 Begin","id":"93613bd9-2dbb-493c-a72e-414b0398733e"}}}],"id":"a8a09eca-7bee-4f17-b7db-1f43f419441c","savedPayload":{"position":{"x":8131.96785915098,"y":18405.11128088391},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 70","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"9ac33f9d-bce7-407a-8de9-3334bb263b69","savedPayload":{"position":{"x":7619.701099020283,"y":18219.443095113777},"targetPosition":{"x":7884.283227019376,"y":18250.683805938188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ea184e1f-5a0f-4ed3-b3ed-6ba18e7237f9","savedPayload":{"position":{"x":7884.283227019376,"y":18250.683805938188},"targetPosition":{"x":8157.255025769755,"y":18268.631664856304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 70 Begin","project":"Superalgos","id":"5505dd50-5ad7-48fc-9256-14cab581d92f","savedPayload":{"position":{"x":7890.120377666757,"y":18187.276506483522},"targetPosition":{"x":8157.255025769755,"y":18268.631664856304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 70 Begin","id":"9e506a85-5f72-4a3f-a773-cd85d8b15f21"}}},{"type":"Polygon Vertex","name":"SMA 70 End","project":"Superalgos","id":"b255b251-b73a-469c-a41f-e273d2909af2","savedPayload":{"position":{"x":7942.431280581219,"y":18122.42444651228},"targetPosition":{"x":8157.255025769755,"y":18268.631664856304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 70 End","id":"8392e1ff-33a6-4b95-baad-3f146bd3c121"}}}],"id":"31cf093b-6de4-4e4a-a8f4-f3ff989dd374","savedPayload":{"position":{"x":8157.255025769755,"y":18268.631664856304},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 140","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"e9088da2-eb17-4e48-9fba-5bd00fba6a2b","savedPayload":{"position":{"x":7710.8560181116845,"y":17956.871423259512},"targetPosition":{"x":7958.28097072769,"y":18055.490295575146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"b93ae9ca-6c4e-47db-a998-045e845ab9cd","savedPayload":{"position":{"x":7958.28097072769,"y":18055.490295575146},"targetPosition":{"x":8217.06739595913,"y":18143.330928105715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 140 Begin","project":"Superalgos","id":"e1bdea5b-664c-4146-adf6-858405354f8c","savedPayload":{"position":{"x":7980.041623602574,"y":17995.526277990564},"targetPosition":{"x":8217.06739595913,"y":18143.330928105715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 140 Begin","id":"39e65adb-6125-4e9a-8f15-5403b21aac40"}}},{"type":"Polygon Vertex","name":"SMA 140 End","project":"Superalgos","id":"3d994072-d0b7-4065-a8be-3c718de28086","savedPayload":{"position":{"x":8047.563244050285,"y":17946.5566451907},"targetPosition":{"x":8217.06739595913,"y":18143.330928105715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 140 End","id":"7559cbf5-acba-4a60-91b4-d95f90293f22"}}}],"id":"41a149aa-efdf-4f53-82cf-cce9e904a000","savedPayload":{"position":{"x":8217.06739595913,"y":18143.330928105715},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 210","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"08949257-633e-4013-b770-bbb798972d2d","savedPayload":{"position":{"x":7866.808483348836,"y":17726.787559283333},"targetPosition":{"x":8080.171292052328,"y":17885.97733437856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"53e088d8-8ec5-4dbe-b732-c65f31005105","savedPayload":{"position":{"x":8080.171292052328,"y":17885.97733437856},"targetPosition":{"x":8307.304958444904,"y":18037.73912548282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 210 Begin","project":"Superalgos","id":"15882e16-4782-48e8-9cac-fbb1d07ae51d","savedPayload":{"position":{"x":8116.688084896257,"y":17833.662323191566},"targetPosition":{"x":8307.304958444904,"y":18037.73912548282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 210 Begin","id":"479df802-576f-45f1-8322-6b2e493c5ecc"}}},{"type":"Polygon Vertex","name":"SMA 210 End","project":"Superalgos","id":"a6f51174-ea46-4282-a476-4e809f456682","savedPayload":{"position":{"x":8194.62404860694,"y":17803.771655551598},"targetPosition":{"x":8307.304958444904,"y":18037.73912548282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 210 End","id":"45a926f2-4bb2-4562-b40f-bd2532ff1d10"}}}],"id":"c3ee15c5-a5b3-4318-bc09-a9fd03592d83","savedPayload":{"position":{"x":8307.304958444904,"y":18037.73912548282},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 280","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"942d9600-7935-4ca6-81d8-9bd014df736f","savedPayload":{"position":{"x":8077.345513047199,"y":17544.868171614493},"targetPosition":{"x":8241.887240880693,"y":17753.802767958114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1c6e0c3f-8ac7-4b0b-9da8-0f7faf9befd1","savedPayload":{"position":{"x":8241.887240880693,"y":17753.802767958114},"targetPosition":{"x":8421.880003139959,"y":17959.087383424867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 280 Begin","project":"Superalgos","id":"cc54382b-cf2b-42c7-8958-8816809dd7ba","savedPayload":{"position":{"x":8290.585401559361,"y":17712.266237260712},"targetPosition":{"x":8421.880003139959,"y":17959.087383424867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 280 Begin","id":"d5e455bf-bb27-41fa-ba41-c8e7d0aa4d5e"}}},{"type":"Polygon Vertex","name":"SMA 280 End","project":"Superalgos","id":"3629786a-8eed-4cff-9780-0e685aeed577","savedPayload":{"position":{"x":8373.91140868601,"y":17704.32678310176},"targetPosition":{"x":8421.880003139959,"y":17959.087383424867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 280 End","id":"298d0ca9-1b4a-48d8-8efe-fda6b2fc2c34"}}}],"id":"3bbf5574-e89c-4538-a95c-2da58e5a74d7","savedPayload":{"position":{"x":8421.880003139959,"y":17959.087383424867},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 350","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.BLACK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"8142bd21-31e4-4edd-97d5-217e30321e0a","savedPayload":{"position":{"x":8327.572677003798,"y":17423.086081637604},"targetPosition":{"x":8432.288758488718,"y":17667.611070988834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6eade211-19cf-48a7-87ac-faf30e387e10","savedPayload":{"position":{"x":8432.288758488718,"y":17667.611070988834},"targetPosition":{"x":8553.10716459541,"y":17912.743876372548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 350 End","project":"Superalgos","id":"f16d8eac-9e78-4167-b087-9803637412a6","savedPayload":{"position":{"x":8485.252145805101,"y":17639.02204652707},"targetPosition":{"x":8553.10716459541,"y":17912.743876372548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 350 End","id":"d6598381-9b15-4cb3-afba-b85ed6770ce3"}}},{"type":"Polygon Vertex","name":"SMA 350 Begin","project":"Superalgos","id":"b94a339d-5abf-4563-a693-edb5d812c24e","savedPayload":{"position":{"x":8595.688241181047,"y":17652.18275151536},"targetPosition":{"x":8553.10716459541,"y":17912.743876372548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 350 Begin","id":"f3c05d30-da2e-449e-8471-dcc216f4e630"}}}],"id":"046240f2-f70b-471d-b07b-0e7490222f0d","savedPayload":{"position":{"x":8553.10716459541,"y":17912.743876372548},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"391b803a-4b4e-4c0b-bb6b-b4d68e989c9c","savedPayload":{"position":{"x":8662.742040571695,"y":18432.77995224194},"targetPosition":{"x":9067.446839984288,"y":17938.99651740955},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"SMA Base 7","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"SMA 7","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma7","project":"Superalgos","id":"1c683838-c882-49bd-997a-2f4255347854","savedPayload":{"position":{"x":7931.76623776737,"y":17488.265904432366},"targetPosition":{"x":7889.4062739556975,"y":17226.38467959082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c26c14bd-b9ab-4121-89b2-eb3044534cf2","savedPayload":{"position":{"x":7889.4062739556975,"y":17226.38467959082},"targetPosition":{"x":7846.680017136143,"y":16964.194267115152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 14","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma14","project":"Superalgos","id":"1060ea54-bb29-4c3b-8db0-522893543a36","savedPayload":{"position":{"x":7634.596976637695,"y":17451.6690083696},"targetPosition":{"x":7740.690878153728,"y":17207.987347244165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94b29f18-cad5-49df-8b87-d6ef10f5ae61","savedPayload":{"position":{"x":7740.690878153728,"y":17207.987347244165},"targetPosition":{"x":7846.680017136143,"y":16964.194267115152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 21","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma21","project":"Superalgos","id":"c0287e9c-4b88-4b92-b6ac-f17474649958","savedPayload":{"position":{"x":7404.3549720124065,"y":17259.81779391045},"targetPosition":{"x":7625.510289031819,"y":17112.013278031198},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ffcb7173-b2bf-4d5d-90e5-6f8b26af4b86","savedPayload":{"position":{"x":7625.510289031819,"y":17112.013278031198},"targetPosition":{"x":7846.680017136143,"y":16964.194267115152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 28","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma28","project":"Superalgos","id":"9f1615e0-e437-4221-8e9a-a6dcb4556022","savedPayload":{"position":{"x":7314.46585307259,"y":16973.804634409313},"targetPosition":{"x":7580.538821250248,"y":16968.982207324134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"186d8c1a-5eef-44a1-aa09-b28e4f5b6b0e","savedPayload":{"position":{"x":7580.538821250248,"y":16968.982207324134},"targetPosition":{"x":7846.680017136143,"y":16964.194267115152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 35","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma35","project":"Superalgos","id":"423f3069-d5a3-4d29-bb35-68802f367c50","savedPayload":{"position":{"x":7393.501305306105,"y":16684.931119976958},"targetPosition":{"x":7620.053326785106,"y":16824.530873789074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6b047d8e-451d-4267-adc4-6e9496aa0025","savedPayload":{"position":{"x":7620.053326785106,"y":16824.530873789074},"targetPosition":{"x":7846.680017136143,"y":16964.194267115152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 70","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma70","project":"Superalgos","id":"62ed074e-5b1a-4306-b411-cd436680147d","savedPayload":{"position":{"x":7616.3948631495805,"y":16484.253095142783},"targetPosition":{"x":7731.516700918088,"y":16724.177000928346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9676685c-f20e-4d65-a0fe-8551e80132ee","savedPayload":{"position":{"x":7731.516700918088,"y":16724.177000928346},"targetPosition":{"x":7846.680017136143,"y":16964.194267115152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 140","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma140","project":"Superalgos","id":"2200abd2-2897-4eff-9804-f599c0e18f42","savedPayload":{"position":{"x":7911.974574042917,"y":16435.910008409315},"targetPosition":{"x":7879.327601914589,"y":16700.005954984834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a44d3c89-8463-4493-b195-70ee4146bbdb","savedPayload":{"position":{"x":7879.327601914589,"y":16700.005954984834},"targetPosition":{"x":7846.680017136143,"y":16964.194267115152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 210","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma210","project":"Superalgos","id":"38e3066f-1951-4c96-8a36-3bcf778328bd","savedPayload":{"position":{"x":8187.062377590519,"y":16555.24944495255},"targetPosition":{"x":8016.892905570028,"y":16759.692069869172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"44198c4d-4d98-43a2-9c03-2d8794b9edac","savedPayload":{"position":{"x":8016.892905570028,"y":16759.692069869172},"targetPosition":{"x":7846.680017136143,"y":16964.194267115152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 280","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma280","project":"Superalgos","id":"eca55243-4492-4983-9e03-04694437c8ae","savedPayload":{"position":{"x":8353.933872537942,"y":16804.365673372242},"targetPosition":{"x":8100.338508855533,"y":16884.277102455835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96706885-fa55-4fad-82bd-fb43a2f331d7","savedPayload":{"position":{"x":8100.338508855533,"y":16884.277102455835},"targetPosition":{"x":7846.680017136143,"y":16964.194267115152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 350","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma350","project":"Superalgos","id":"64ea1867-2fb1-4191-a4c7-b5ac37f7be7a","savedPayload":{"position":{"x":8359.54699409522,"y":17103.71886027376},"targetPosition":{"x":8103.120944400147,"y":17034.060790175834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9f208b33-3d80-4d2e-ad88-13139a8e93f8","savedPayload":{"position":{"x":8103.120944400147,"y":17034.060790175834},"targetPosition":{"x":7846.680017136143,"y":16964.194267115152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b73ac725-eea1-4aa2-974c-937de300b456","savedPayload":{"position":{"x":7846.680017136143,"y":16964.194267115152},"targetPosition":{"x":9067.446839984288,"y":17938.99651740955},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"515565ff-dee2-4adf-adaf-b4cfea5f5dbd","savedPayload":{"position":{"x":9661.673182942548,"y":18255.4854210064},"targetPosition":{"x":10336.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"SMA Base 6","config":"{\n\t\"codeName\": \"SMA-Base6\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA 6 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma6","project":"Superalgos","id":"28dce892-9996-45ac-af68-55d0056b6af2","savedPayload":{"position":{"x":8784.926036564942,"y":17618.648375054432},"targetPosition":{"x":8483.518627252892,"y":18355.339203919444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dece94e6-77de-4d21-9376-c2efc825b567","savedPayload":{"position":{"x":8483.518627252892,"y":18355.339203919444},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 6 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma6","project":"Superalgos","id":"f878b59a-0787-4c44-a341-02db47b15aad","savedPayload":{"position":{"x":9132.552940694495,"y":17814.365197435625},"targetPosition":{"x":8657.272623990102,"y":18453.451750811935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32025fb3-9ec4-4f50-b4c9-9a73100ce864","savedPayload":{"position":{"x":8657.272623990102,"y":18453.451750811935},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 12 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma12","project":"Superalgos","id":"d3c24df7-68df-4d50-92d6-9f722ee8816a","savedPayload":{"position":{"x":9419.93876311959,"y":18091.388097424337},"targetPosition":{"x":8801.073996701492,"y":18591.713509806603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8662f4a4-41a4-4992-a333-017cd8764cd1","savedPayload":{"position":{"x":8801.073996701492,"y":18591.713509806603},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 18 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma18","project":"Superalgos","id":"fc0e1a4a-8966-4340-83bc-2c43992486ed","savedPayload":{"position":{"x":9629.838412502442,"y":18430.98347628255},"targetPosition":{"x":8906.095218010581,"y":18761.566302437834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3260182a-83b5-4362-8962-84ec488b69cb","savedPayload":{"position":{"x":8906.095218010581,"y":18761.566302437834},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 18 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma18","project":"Superalgos","id":"53ce5612-9c75-4a89-98cd-7dd278f67df3","savedPayload":{"position":{"x":9749.031234081202,"y":18811.92717403645},"targetPosition":{"x":8965.74414486534,"y":18951.968376009703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"942b73d2-241e-43dd-b83b-0d3724f331a4","savedPayload":{"position":{"x":8965.74414486534,"y":18951.968376009703},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 24 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma24","project":"Superalgos","id":"9c2d5563-016b-40e7-a45f-973a874ee6e3","savedPayload":{"position":{"x":9769.65751240202,"y":19210.019141050027},"targetPosition":{"x":8976.043304231756,"y":19151.013819200183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c0b2d03c-3cec-4ca2-b344-cdd99cb28362","savedPayload":{"position":{"x":8976.043304231756,"y":19151.013819200183},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 24 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma24","project":"Superalgos","id":"3b3a0b5b-0290-47a3-8bef-d5b289e4f7b6","savedPayload":{"position":{"x":9690.502560245888,"y":19601.125844807462},"targetPosition":{"x":8936.447686429208,"y":19346.585086258423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4b33b779-8111-415c-a1e5-893ed5f49527","savedPayload":{"position":{"x":8936.447686429208,"y":19346.585086258423},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 30 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma30","project":"Superalgos","id":"876a382a-7632-4dcf-b0d5-b36d8df8b92c","savedPayload":{"position":{"x":9516.545347534058,"y":19960.263796462405},"targetPosition":{"x":8849.451720801175,"y":19526.173861829917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fef118ef-22cb-4ff5-b971-c90c2a01265a","savedPayload":{"position":{"x":8849.451720801175,"y":19526.173861829917},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 30 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma30","project":"Superalgos","id":"59c1198f-77ea-4780-b25b-e17b11bd0a0e","savedPayload":{"position":{"x":9258.717146711675,"y":20264.8613786487},"targetPosition":{"x":8720.523677897767,"y":19678.490261710245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e2f5657-06b0-4e46-aa7e-8676683ffb77","savedPayload":{"position":{"x":8720.523677897767,"y":19678.490261710245},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 60 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma60","project":"Superalgos","id":"deea8750-3324-4bdc-bc4d-7fc9db32ceca","savedPayload":{"position":{"x":8933.226305305336,"y":20495.775614949933},"targetPosition":{"x":8557.766595755355,"y":19793.959784416296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e7fb950-9b88-4aaf-95a1-982abf35b9f3","savedPayload":{"position":{"x":8557.766595755355,"y":19793.959784416296},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 60 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma60","project":"Superalgos","id":"4c4c6ec2-0ae2-4c37-bf9e-a2753f2b6ac5","savedPayload":{"position":{"x":8560.524275895837,"y":20638.500317257425},"targetPosition":{"x":8371.404578693528,"y":19865.334723898864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"173b07f4-37d0-4831-8d6b-1b989d9e3213","savedPayload":{"position":{"x":8371.404578693528,"y":19865.334723898864},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 120 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma120","project":"Superalgos","id":"4fae8019-4feb-4608-b26e-1b84bfa92eca","savedPayload":{"position":{"x":8164.42452703739,"y":20684.044565880133},"targetPosition":{"x":8173.345499876759,"y":19888.11520632519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2fb358ff-8b9f-4b95-95f8-8be509b5b3a1","savedPayload":{"position":{"x":8173.345499876759,"y":19888.11520632519},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 120 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma120","project":"Superalgos","id":"94a5dfc2-27fa-48e5-8d60-125c185ee02c","savedPayload":{"position":{"x":7666.102712598233,"y":21012.616762200018},"targetPosition":{"x":7975.648815546541,"y":19860.882326174436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"682e079f-319c-43dc-91a2-5732c3fb28c8","savedPayload":{"position":{"x":7975.648815546541,"y":19860.882326174436},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 180 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma180","project":"Superalgos","id":"c2b1772b-a983-4ecd-baec-c3ca0c346515","savedPayload":{"position":{"x":7399.678930186452,"y":20478.50323053214},"targetPosition":{"x":7790.933209543444,"y":19785.34523148415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5a2a1087-3910-4dd5-90d6-2370dc8949fa","savedPayload":{"position":{"x":7790.933209543444,"y":19785.34523148415},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 180 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma180","project":"Superalgos","id":"b7886b86-1f12-4645-b2fb-ecb4182dbec2","savedPayload":{"position":{"x":7079.425481541748,"y":20240.318919928817},"targetPosition":{"x":7630.793122121642,"y":19666.25201608441},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1b5a66be-de8e-40c3-b3f2-e193e5deaeed","savedPayload":{"position":{"x":7630.793122121642,"y":19666.25201608441},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 240 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma240","project":"Superalgos","id":"219f9e45-38cc-4c5f-a396-f7a0788f973e","savedPayload":{"position":{"x":6828.4936097259815,"y":19930.015461871422},"targetPosition":{"x":7505.321217059107,"y":19511.106348259316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"854a73e9-f8d2-4b85-a0dd-65284e175ca0","savedPayload":{"position":{"x":7505.321217059107,"y":19511.106348259316},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 240 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma240","project":"Superalgos","id":"57299592-e72a-4e7e-ac7a-e055ac925792","savedPayload":{"position":{"x":6662.590317786035,"y":19567.089978356453},"targetPosition":{"x":7422.351736425375,"y":19329.656971983844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"13eca50c-c1fb-4baa-8618-1f7eafde66c9","savedPayload":{"position":{"x":7422.351736425375,"y":19329.656971983844},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 300 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma300","project":"Superalgos","id":"fc7307b3-aeb1-49c0-bac9-ac2d27ad5d05","savedPayload":{"position":{"x":6580.714142626875,"y":19178.744185390788},"targetPosition":{"x":7375.700977904089,"y":19137.675134188095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"45ae2073-5312-48dc-b4ed-61326a2ce947","savedPayload":{"position":{"x":7375.700977904089,"y":19137.675134188095},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 300 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma300","project":"Superalgos","id":"9754f895-ef8d-4165-ae3b-efd97f52f9ce","savedPayload":{"position":{"x":6621.548014742748,"y":18776.824633809018},"targetPosition":{"x":7401.726616883854,"y":18934.54159194162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31514c9e-d4f7-4c54-94ca-4e04e5f1df5c","savedPayload":{"position":{"x":7401.726616883854,"y":18934.54159194162},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 12 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma12","project":"Superalgos","id":"cb472a55-eacc-4dec-b337-087a1116e39f","savedPayload":{"position":{"x":6763.415562186303,"y":18377.668347378556},"targetPosition":{"x":7480.034291241405,"y":18724.391823656602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48fe3ebc-6bbf-4a33-9068-2766eaf1599a","savedPayload":{"position":{"x":7480.034291241405,"y":18724.391823656602},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 600 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma600","project":"Superalgos","id":"a22c9eff-f7ff-4867-ba2e-c123b4036f99","savedPayload":{"position":{"x":6967.097034973176,"y":18063.759453803577},"targetPosition":{"x":7574.619313071224,"y":18577.895377794983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3ecee44a-2a84-41ac-b579-f6f48acc590a","savedPayload":{"position":{"x":7574.619313071224,"y":18577.895377794983},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 600 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma600","project":"Superalgos","id":"2197c8c8-f750-4adf-a521-b1e4b347663c","savedPayload":{"position":{"x":7253.04979384744,"y":17801.57780348806},"targetPosition":{"x":7714.048250134521,"y":18450.42300048595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9bd8a9e7-09cf-4989-a9fa-c2f73d361134","savedPayload":{"position":{"x":7714.048250134521,"y":18450.42300048595},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 1200 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma1200","project":"Superalgos","id":"17399e4a-5716-4e7b-9348-995fef5766eb","savedPayload":{"position":{"x":7613.7598402051335,"y":17605.212765219327},"targetPosition":{"x":7898.140655412619,"y":18348.45158147753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0481ec1e-ae49-4c99-a5ad-16c427db6e45","savedPayload":{"position":{"x":7898.140655412619,"y":18348.45158147753},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 1200 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma1200","project":"Superalgos","id":"5df49dd0-4b42-4be0-8493-2d762fa6b9c2","savedPayload":{"position":{"x":8000.938798678919,"y":17510.39495960453},"targetPosition":{"x":8091.804509364083,"y":18301.12200613795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eacd5f37-bdf2-4756-b7db-46db919b08a7","savedPayload":{"position":{"x":8091.804509364083,"y":18301.12200613795},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ddf91804-9a1f-44db-aea2-11db8bcd6aa1","savedPayload":{"position":{"x":8182.136089724139,"y":19092.072704280137},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 6","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"34040727-f963-4459-9d11-6dfe71da067f","savedPayload":{"position":{"x":7870.470892110574,"y":19291.251271101813},"targetPosition":{"x":7918.532749729497,"y":19029.778214010472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ec04ffcd-829f-41db-9aa0-c3807ff916ef","savedPayload":{"position":{"x":7918.532749729497,"y":19029.778214010472},"targetPosition":{"x":8006.529446421318,"y":18505.21214870891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 6 End","project":"Superalgos","id":"143eac37-51eb-4384-9455-94a62c781a28","savedPayload":{"position":{"x":7813.369318167974,"y":19002.31029299623},"targetPosition":{"x":8006.529446421318,"y":18505.21214870891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 6 End","id":"32025fb3-9ec4-4f50-b4c9-9a73100ce864"}}},{"type":"Polygon Vertex","name":"SMA 6 Begin","project":"Superalgos","id":"ffabc963-65ea-44af-9d15-d8bf6896a781","savedPayload":{"position":{"x":7706.852273704935,"y":18945.107174743192},"targetPosition":{"x":8006.529446421318,"y":18505.21214870891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 6 Begin","id":"dece94e6-77de-4d21-9376-c2efc825b567"}}}],"id":"12470549-c8b6-453f-a87a-396921a0a871","savedPayload":{"position":{"x":8006.529446421318,"y":18505.21214870891},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 12","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"065e548b-05c8-4419-9bd1-0ef305c8b868","savedPayload":{"position":{"x":7454.056406058586,"y":19109.098886581032},"targetPosition":{"x":7563.389156359481,"y":18866.717329380695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bb849209-1786-43ce-b2cc-cb1d43252144","savedPayload":{"position":{"x":7563.389156359481,"y":18866.717329380695},"targetPosition":{"x":7781.597622341327,"y":18382.52591882279},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 12 Begin","project":"Superalgos","id":"9af3283c-bb60-4843-beae-89f1d065c8ba","savedPayload":{"position":{"x":7472.91911226169,"y":18814.73407653735},"targetPosition":{"x":7781.597622341327,"y":18382.52591882279},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 12 Begin","id":"48fe3ebc-6bbf-4a33-9068-2766eaf1599a"}}},{"type":"Polygon Vertex","name":"SMA 12 End","project":"Superalgos","id":"fee1b2e2-fdd0-4a53-b277-b7549e08aaf8","savedPayload":{"position":{"x":7394.413549193181,"y":18746.035461837506},"targetPosition":{"x":7781.597622341327,"y":18382.52591882279},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 12 End","id":"8662f4a4-41a4-4992-a333-017cd8764cd1"}}}],"id":"986a8bf8-3b7a-4421-80bd-940fa3bfe496","savedPayload":{"position":{"x":7781.597622341327,"y":18382.52591882279},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 18","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"4ee42ccb-7981-4865-990b-09a84732f649","savedPayload":{"position":{"x":7100.6219317642135,"y":18836.55913096034},"targetPosition":{"x":7264.821157355327,"y":18627.4261059301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"557e774e-833c-4373-a833-24a2b8e1c98b","savedPayload":{"position":{"x":7264.821157355327,"y":18627.4261059301},"targetPosition":{"x":7592.608500143437,"y":18209.571306853595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 18 End","project":"Superalgos","id":"b73a1590-a667-4c62-b1b0-319bc1c35264","savedPayload":{"position":{"x":7189.422605647909,"y":18555.30018448232},"targetPosition":{"x":7592.608500143437,"y":18209.571306853595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 18 End","id":"942b73d2-241e-43dd-b83b-0d3724f331a4"}}},{"type":"Polygon Vertex","name":"SMA 18 Begin","project":"Superalgos","id":"370a951b-b7cb-47fe-8e09-799f7da546a6","savedPayload":{"position":{"x":7129.612854958716,"y":18469.772770152806},"targetPosition":{"x":7592.608500143437,"y":18209.571306853595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 18 Begin","id":"3260182a-83b5-4362-8962-84ec488b69cb"}}}],"id":"9f9eeee3-ebd5-4f65-9079-cd0ac3c373da","savedPayload":{"position":{"x":7592.608500143437,"y":18209.571306853595},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 24","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b30aa3da-65ea-4e03-88d0-d452114f94bc","savedPayload":{"position":{"x":6036.576727749292,"y":18971.08079584052},"targetPosition":{"x":6350.456467372842,"y":18725.700014962727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"42bded2a-28e5-457d-b8de-a71218db1630","savedPayload":{"position":{"x":6350.456467372842,"y":18725.700014962727},"targetPosition":{"x":6977.4336185639,"y":18235.356178207916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 24 Begin","project":"Superalgos","id":"a7a1b3d2-2c0a-47d0-8177-991c5b860ed4","savedPayload":{"position":{"x":6266.742281746996,"y":18593.80693715404},"targetPosition":{"x":6977.4336185639,"y":18235.356178207916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 24 Begin","id":"c0b2d03c-3cec-4ca2-b344-cdd99cb28362"}}},{"type":"Polygon Vertex","name":"SMA 24 End","project":"Superalgos","id":"8aac2b0b-8089-4adc-93d2-1544e0113105","savedPayload":{"position":{"x":6210.4019857731,"y":18448.134843817606},"targetPosition":{"x":6977.4336185639,"y":18235.356178207916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 24 End","id":"4b33b779-8111-415c-a1e5-893ed5f49527"}}}],"id":"5cde1b9e-eed8-4e90-9f31-9d0f38d4aef9","savedPayload":{"position":{"x":6977.4336185639,"y":18235.356178207916},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 30","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"682c040c-2367-4838-92d2-5c14e6d65e0a","savedPayload":{"position":{"x":6394.756154402687,"y":18190.9440998352},"targetPosition":{"x":6879.279696710168,"y":17973.59275336184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"e80caa85-ac79-4b2b-ab2d-04f54c46b24b","savedPayload":{"position":{"x":6879.279696710168,"y":17973.59275336184},"targetPosition":{"x":7363.750715336988,"y":17755.937798368843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 30 End","project":"Superalgos","id":"985225d1-7a9d-45f7-93d2-59fe91c4450c","savedPayload":{"position":{"x":6846.014400939508,"y":17874.63726644333},"targetPosition":{"x":7363.750715336988,"y":17755.937798368843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 30 End","id":"8e2f5657-06b0-4e46-aa7e-8676683ffb77"}}},{"type":"Polygon Vertex","name":"SMA 30 Begin","project":"Superalgos","id":"0e1a912e-34be-4976-8d43-141b0f89a8ee","savedPayload":{"position":{"x":6832.80483911165,"y":17771.158385198014},"targetPosition":{"x":7363.750715336988,"y":17755.937798368843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 30 Begin","id":"fef118ef-22cb-4ff5-b971-c90c2a01265a"}}}],"id":"ba9cdf50-c1e0-42c5-a81c-dbc068c3b10e","savedPayload":{"position":{"x":7363.750715336988,"y":17755.937798368843},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 60","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"85247bae-4a81-4247-affa-a8889f32987c","savedPayload":{"position":{"x":6291.884593400249,"y":17691.79521514607},"targetPosition":{"x":6814.403940968976,"y":17596.713331077677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9a153786-a0a0-4686-b83d-f55fb7513c56","savedPayload":{"position":{"x":6814.403940968976,"y":17596.713331077677},"targetPosition":{"x":7336.9432512784515,"y":17501.404408525894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 60 Begin","project":"Superalgos","id":"389d9bf7-3844-4b65-9607-17dec104368f","savedPayload":{"position":{"x":6805.797788201824,"y":17492.923240209147},"targetPosition":{"x":7336.9432512784515,"y":17501.404408525894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 60 Begin","id":"8e7fb950-9b88-4aaf-95a1-982abf35b9f3"}}},{"type":"Polygon Vertex","name":"SMA 60 End","project":"Superalgos","id":"0386e3c3-f9a3-442c-b2e4-c9d069621958","savedPayload":{"position":{"x":6817.741014691757,"y":17389.287051376697},"targetPosition":{"x":7336.9432512784515,"y":17501.404408525894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 60 End","id":"173b07f4-37d0-4831-8d6b-1b989d9e3213"}}}],"id":"8170049e-056a-4818-8f0a-1a23f9c51bff","savedPayload":{"position":{"x":7336.9432512784515,"y":17501.404408525894},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 120","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"613b4c9b-b002-4c65-87b7-8b9d41eda4df","savedPayload":{"position":{"x":6311.573987266369,"y":17182.819825369435},"targetPosition":{"x":6841.693724755289,"y":17215.372110264976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"27a6e346-8da3-4900-83c4-41680d2168f4","savedPayload":{"position":{"x":6841.693724755289,"y":17215.372110264976},"targetPosition":{"x":7371.890590833289,"y":17247.721169317734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 120 Begin","project":"Superalgos","id":"956a6867-d00a-4888-9ffe-cbfabcfbe4fa","savedPayload":{"position":{"x":6858.226812042696,"y":17112.34569816824},"targetPosition":{"x":7371.890590833289,"y":17247.721169317734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 120 Begin","id":"2fb358ff-8b9f-4b95-95f8-8be509b5b3a1"}}},{"type":"Polygon Vertex","name":"SMA 120 End","project":"Superalgos","id":"040f4fe5-147d-4ba9-9a2d-fa134ca5d178","savedPayload":{"position":{"x":6894.628384401622,"y":17014.577524492615},"targetPosition":{"x":7371.890590833289,"y":17247.721169317734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 120 End","id":"682e079f-319c-43dc-91a2-5732c3fb28c8"}}}],"id":"7da9bd30-a7f8-410b-93a5-6b76ac57708b","savedPayload":{"position":{"x":7371.890590833289,"y":17247.721169317734},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 240","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"d2ac585e-594d-4031-b17d-2274efc677ec","savedPayload":{"position":{"x":6452.6185786093265,"y":16692.971949921677},"targetPosition":{"x":6959.519549934161,"y":16851.46685004537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"4e402467-2d78-4d95-ba03-3910f5120122","savedPayload":{"position":{"x":6959.519549934161,"y":16851.46685004537},"targetPosition":{"x":7466.540438602882,"y":17009.790925231075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 180 Begin","project":"Superalgos","id":"efe56d7d-f6e6-4944-aa32-26d3c4ed055b","savedPayload":{"position":{"x":7000.229744713506,"y":16755.390951667312},"targetPosition":{"x":7466.540438602882,"y":17009.790925231075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 180 Begin","id":"5a2a1087-3910-4dd5-90d6-2370dc8949fa"}}},{"type":"Polygon Vertex","name":"SMA 180 End","project":"Superalgos","id":"ec3a6f4b-adf2-4be1-ab28-313bbffb7491","savedPayload":{"position":{"x":7058.973991744071,"y":16669.175152744294},"targetPosition":{"x":7466.540438602882,"y":17009.790925231075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 180 End","id":"1b5a66be-de8e-40c3-b3f2-e193e5deaeed"}}}],"id":"adf40814-2b9a-4ee8-a154-364bfca32f7a","savedPayload":{"position":{"x":7466.540438602882,"y":17009.790925231075},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 300","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"e79c6ed7-e52f-4191-a423-b14965211a19","savedPayload":{"position":{"x":6706.822462771914,"y":16251.11267843796},"targetPosition":{"x":7161.033067160406,"y":16526.33395375489},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"e5cd42c0-f52d-4608-91d5-966cc7bf39b3","savedPayload":{"position":{"x":7161.033067160406,"y":16526.33395375489},"targetPosition":{"x":7615.392782443618,"y":16801.425045167678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 240 Begin","project":"Superalgos","id":"f29f45ac-86bb-4490-b8b1-9a50dc736782","savedPayload":{"position":{"x":7223.555199739098,"y":16442.79264111214},"targetPosition":{"x":7615.392782443618,"y":16801.425045167678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 240 Begin","id":"854a73e9-f8d2-4b85-a0dd-65284e175ca0"}}},{"type":"Polygon Vertex","name":"SMA 240 End","project":"Superalgos","id":"eb330333-6b0f-4fad-97a7-a34e93cc3dee","savedPayload":{"position":{"x":7301.2298229754415,"y":16373.140618013334},"targetPosition":{"x":7615.392782443618,"y":16801.425045167678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 240 End","id":"13eca50c-c1fb-4baa-8618-1f7eafde66c9"}}}],"id":"60c00cdc-dbf4-460b-b021-7339dd7bbec8","savedPayload":{"position":{"x":7615.392782443618,"y":16801.425045167678},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 600","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"182273b1-1d73-4dc7-93dc-b2a4644b18f1","savedPayload":{"position":{"x":7059.441523908423,"y":15882.919302080209},"targetPosition":{"x":7434.550303467015,"y":16258.862603424812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"3342f900-2346-4377-b6b0-34566787d6d9","savedPayload":{"position":{"x":7434.550303467015,"y":16258.862603424812},"targetPosition":{"x":7809.8174785531955,"y":16634.72325032074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 600 Begin","project":"Superalgos","id":"5b6c238c-a7cb-4002-85e5-5e84cd6ffdf8","savedPayload":{"position":{"x":7515.2550007707905,"y":16192.71208534432},"targetPosition":{"x":7809.8174785531955,"y":16634.72325032074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 600 Begin","id":"3ecee44a-2a84-41ac-b579-f6f48acc590a"}}},{"type":"Polygon Vertex","name":"SMA 600 End","project":"Superalgos","id":"b60e6d28-cb70-49c5-9e06-c67cfe81b1f1","savedPayload":{"position":{"x":7607.352830596294,"y":16143.673205103958},"targetPosition":{"x":7809.8174785531955,"y":16634.72325032074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 600 End","id":"9bd8a9e7-09cf-4989-a9fa-c2f73d361134"}}}],"id":"93c1746c-2470-4032-84e1-c16a2d4e3921","savedPayload":{"position":{"x":7809.8174785531955,"y":16634.72325032074},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 1200","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"f0b2a565-d33f-42d4-85ed-d61766b82af7","savedPayload":{"position":{"x":7490.086731137799,"y":15609.794099868745},"targetPosition":{"x":7764.271115127343,"y":16064.593080996601},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"e108f855-0252-4113-8bd3-2cf2581abc47","savedPayload":{"position":{"x":7764.271115127343,"y":16064.593080996601},"targetPosition":{"x":8038.576997876298,"y":16519.364870327743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 1200 Begin","project":"Superalgos","id":"f15e631f-a4ef-4493-bb68-8c3a082ba0aa","savedPayload":{"position":{"x":7858.488842099869,"y":16019.680165354763},"targetPosition":{"x":8038.576997876298,"y":16519.364870327743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 1200 Begin","id":"0481ec1e-ae49-4c99-a5ad-16c427db6e45"}}},{"type":"Polygon Vertex","name":"SMA 1200 End","project":"Superalgos","id":"cf097102-9c66-4f90-95cd-1c1c9efc113b","savedPayload":{"position":{"x":7959.726359086046,"y":15994.096564582214},"targetPosition":{"x":8038.576997876298,"y":16519.364870327743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 1200 End","id":"eacd5f37-bdf2-4756-b7db-46db919b08a7"}}}],"id":"790efcb9-f3af-4e01-86f2-adbfcda6a356","savedPayload":{"position":{"x":8038.576997876298,"y":16519.364870327743},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"93675e57-6b0f-4fe5-8c8a-a4c02f794650","savedPayload":{"position":{"x":8238.66951813001,"y":18267.81656837503},"targetPosition":{"x":9157.701562317623,"y":17736.303306547787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"SMA Base 6","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"SMA 6","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma6","project":"Superalgos","id":"bf5de8a3-8c0b-41e8-8d21-bef5a721133f","savedPayload":{"position":{"x":9128.107651840997,"y":16891.90847946323},"targetPosition":{"x":9226.396623863315,"y":16644.907232081652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"995dd126-9cef-4b6e-960f-6828cfc41777","savedPayload":{"position":{"x":9226.396623863315,"y":16644.907232081652},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 12","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma12","project":"Superalgos","id":"9d4756de-3019-4ab6-a77d-7a1452ce1813","savedPayload":{"position":{"x":8902.147562635779,"y":16730.41172421395},"targetPosition":{"x":9104.104806538533,"y":16557.379237332785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"414bd6ad-d6c6-4100-867e-232c6e649de2","savedPayload":{"position":{"x":9104.104806538533,"y":16557.379237332785},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 18","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma18","project":"Superalgos","id":"8c7a57b7-0d00-4239-b7ce-018b8da0fce7","savedPayload":{"position":{"x":8777.345517165639,"y":16482.518418348063},"targetPosition":{"x":9036.702994842137,"y":16423.179568146043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2b73a8b5-c7a5-47b2-acad-87fa5aec85be","savedPayload":{"position":{"x":9036.702994842137,"y":16423.179568146043},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 24","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma24","project":"Superalgos","id":"3880e650-f608-4c97-8b5a-6956c8c2fba7","savedPayload":{"position":{"x":8782.037836613224,"y":16205.591510859282},"targetPosition":{"x":9039.329951372438,"y":16273.387347850246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7655b5d6-708e-4e05-9499-2058d8511689","savedPayload":{"position":{"x":9039.329951372438,"y":16273.387347850246},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 30","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma30","project":"Superalgos","id":"ae5edcfd-b4be-4c3e-bb28-333fade4b88d","savedPayload":{"position":{"x":8915.021822425424,"y":15962.218582661364},"targetPosition":{"x":9111.276330775498,"y":16141.820294973662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad60eba1-2b62-4b1f-bed9-de38285f4acc","savedPayload":{"position":{"x":9111.276330775498,"y":16141.820294973662},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 60","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma60","project":"Superalgos","id":"cd97e51b-fa6a-4d6e-b7dd-43c9299bde4d","savedPayload":{"position":{"x":9145.76697142252,"y":15808.471820899347},"targetPosition":{"x":9236.055793553933,"y":16058.777694547916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5baddfba-9384-417f-954a-37abf160567e","savedPayload":{"position":{"x":9236.055793553933,"y":16058.777694547916},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 120","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma120","project":"Superalgos","id":"189b3ffd-8d2b-4124-af4c-52a9756c3409","savedPayload":{"position":{"x":9421.038960232203,"y":15779.458613080737},"targetPosition":{"x":9384.860135408286,"y":16043.08938415745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"980faff9-33a9-4c63-b64c-3bdbeeeb1b8a","savedPayload":{"position":{"x":9384.860135408286,"y":16043.08938415745},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 180","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma180","project":"Superalgos","id":"7dac036e-a376-493f-8e5a-d8a7e211f262","savedPayload":{"position":{"x":9678.685252236359,"y":15881.881350178082},"targetPosition":{"x":9524.20557378358,"y":16098.336315001161},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d22d8f06-1510-43c7-a233-7a5dc67f809b","savedPayload":{"position":{"x":9524.20557378358,"y":16098.336315001161},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 240","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma240","project":"Superalgos","id":"2b86e2e4-bf2d-4b68-a54e-a781e56458bf","savedPayload":{"position":{"x":9859.428005354319,"y":16092.216053287066},"targetPosition":{"x":9621.898048440777,"y":16212.10827312235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"696305ab-09c2-41af-bfb3-85ce4fb5e705","savedPayload":{"position":{"x":9621.898048440777,"y":16212.10827312235},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 300 ","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma300","project":"Superalgos","id":"03bc78eb-d57f-41fc-a8ba-3592e222d5cc","savedPayload":{"position":{"x":9921.60647505218,"y":16362.129439114626},"targetPosition":{"x":9655.721707405268,"y":16358.077111049432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f34223f9-87e3-49fe-8acf-77080dffa25f","savedPayload":{"position":{"x":9655.721707405268,"y":16358.077111049432},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 600 ","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma600","project":"Superalgos","id":"c6511ef3-8c3a-445c-9d90-1bb91a1763fb","savedPayload":{"position":{"x":9851.010086436028,"y":16630.556181734548},"targetPosition":{"x":9617.613799751543,"y":16503.366123196207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ff4236e0-4c9b-4b98-9dd3-b3c152bb12e2","savedPayload":{"position":{"x":9617.613799751543,"y":16503.366123196207},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 1200 ","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma1200","project":"Superalgos","id":"931713d5-2d25-428f-95bc-0a21e01892f7","savedPayload":{"position":{"x":9663.48901968612,"y":16835.48235985025},"targetPosition":{"x":9516.129053857883,"y":16614.35396314737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e3345124-6aed-4164-ab86-041fd39608b0","savedPayload":{"position":{"x":9516.129053857883,"y":16614.35396314737},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"40313dff-6c5d-4650-bd51-8767bba6f6ad","savedPayload":{"position":{"x":8627.980697466191,"y":16818.405408218063},"targetPosition":{"x":9157.701562317623,"y":17736.303306547787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6ace920a-3a4b-4d28-8f04-4c2ecd3dfeb8","savedPayload":{"position":{"x":9752.106035388051,"y":17917.9854210064},"targetPosition":{"x":10336.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"SMA Base 5","config":"{\n\t\"codeName\": \"SMA-Base7\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA 5 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma5","project":"Superalgos","id":"37d1cd48-3a3f-4477-a125-76dcec51195b","savedPayload":{"position":{"x":11254.604515332216,"y":12982.317767868859},"targetPosition":{"x":11389.353051419119,"y":14561.406021107547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9eca5bc8-cdb2-46fb-9a26-1c2da03b8818","savedPayload":{"position":{"x":11389.353051419119,"y":14561.406021107547},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 5 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma5","project":"Superalgos","id":"3537c835-0158-465b-81d1-5440a40a649b","savedPayload":{"position":{"x":12047.763435013992,"y":13014.60489623446},"targetPosition":{"x":11785.979598511269,"y":14577.549312159099},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"db00298d-2997-4640-93fe-17125aeb7f0e","savedPayload":{"position":{"x":11785.979598511269,"y":14577.549312159099},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 10 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma10","project":"Superalgos","id":"3f1d398f-6d0a-4713-8fbf-29cbb133be3e","savedPayload":{"position":{"x":12808.651634463917,"y":13243.478535081294},"targetPosition":{"x":12166.411392189788,"y":14691.976627701515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b2e038ee-355d-4862-a454-514f7bcf31cf","savedPayload":{"position":{"x":12166.411392189788,"y":14691.976627701515},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 15 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma15","project":"Superalgos","id":"cadaa709-8956-4c7a-9215-76ac92a53517","savedPayload":{"position":{"x":13488.77888319562,"y":13654.04051145998},"targetPosition":{"x":12506.484997140058,"y":14897.23475176062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"02f80e02-080a-4950-9ffc-2f3b5770b404","savedPayload":{"position":{"x":12506.484997140058,"y":14897.23475176062},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 15 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma15","project":"Superalgos","id":"e4212208-3b31-47c0-aebd-966d4a77c0f9","savedPayload":{"position":{"x":14045.502482610049,"y":14220.790687745273},"targetPosition":{"x":12784.83308761624,"y":15180.611832248558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32c7c4d3-a210-4d4d-8d10-bb23f91edcda","savedPayload":{"position":{"x":12784.83308761624,"y":15180.611832248558},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 20 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma20","project":"Superalgos","id":"73c6c2a6-b4b7-4d2a-be7e-5810261e68c7","savedPayload":{"position":{"x":14443.775723746747,"y":14908.136675448059},"targetPosition":{"x":12983.964978504697,"y":15524.301057793791},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6b07cc40-e7da-48bc-a49b-cac5a0615c34","savedPayload":{"position":{"x":12983.964978504697,"y":15524.301057793791},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 20 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma20","project":"Superalgos","id":"c8dd3770-668a-47d7-aad8-db412890bc28","savedPayload":{"position":{"x":14659.016452476253,"y":15672.957647872234},"targetPosition":{"x":13091.5931751961,"y":15906.711249996708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2f2041d-b896-44d7-b251-85eb1cd7fadf","savedPayload":{"position":{"x":13091.5931751961,"y":15906.711249996708},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 25 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma25","project":"Superalgos","id":"d7265ad0-64e1-4fb7-8cd0-bdbf329b3d6d","savedPayload":{"position":{"x":14676.9592002972,"y":16466.49130586259},"targetPosition":{"x":13100.565201798192,"y":16303.465925203338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78b96701-c691-41fa-91d2-3bdb00e2e0fa","savedPayload":{"position":{"x":13100.565201798192,"y":16303.465925203338},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 25 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma25","project":"Superalgos","id":"5cefb3f2-2429-478b-80a8-8f9e07e12c00","savedPayload":{"position":{"x":14496.299730170018,"y":17240.21531597365},"targetPosition":{"x":13010.25421430045,"y":16690.293203265504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c9293d92-6255-4c96-9bf9-f4c6dcf419a1","savedPayload":{"position":{"x":13010.25421430045,"y":16690.293203265504},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 50 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma50","project":"Superalgos","id":"cfa001a1-ac90-4713-b542-4fab32f377e0","savedPayload":{"position":{"x":14129.41701866566,"y":17944.705051785877},"targetPosition":{"x":12826.783868308092,"y":17042.5437368819},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1d352202-ba2e-41a7-9d4b-c4c97d2e391d","savedPayload":{"position":{"x":12826.783868308092,"y":17042.5437368819},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 50 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma50","project":"Superalgos","id":"1655e27e-3738-4b5d-8961-105e11b5070c","savedPayload":{"position":{"x":13599.040673232612,"y":18535.708989593262},"targetPosition":{"x":12561.563519671701,"y":17338.04502466745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4e34e6e6-d370-4127-b4fe-0c9fd591e730","savedPayload":{"position":{"x":12561.563519671701,"y":17338.04502466745},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 100 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma100","project":"Superalgos","id":"44d9a566-3392-4f8f-ae69-f16de47bdd50","savedPayload":{"position":{"x":12927.919532684715,"y":18993.984828638346},"targetPosition":{"x":12231.370007911992,"y":17558.09193128513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"651f424a-51be-4b25-a895-d50f75329384","savedPayload":{"position":{"x":12231.370007911992,"y":17558.09193128513},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 100 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma100","project":"Superalgos","id":"05d2a007-3c1e-4e61-8cef-0aa1bdb3c0f5","savedPayload":{"position":{"x":12123.685996169126,"y":19197.984941638457},"targetPosition":{"x":11791.29613628973,"y":17639.85387920112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aada5c3d-5ff5-4afd-8dd1-298ce8fce853","savedPayload":{"position":{"x":11791.29613628973,"y":17639.85387920112},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 150 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma150","project":"Superalgos","id":"f5f1a287-14c5-4b05-9032-85623b3e948f","savedPayload":{"position":{"x":11396.104758292819,"y":19307.760280390336},"targetPosition":{"x":11460.266289114472,"y":17724.06127942761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"55d6b376-dd20-4044-b6c2-51acd03bee71","savedPayload":{"position":{"x":11460.266289114472,"y":17724.06127942761},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 150 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma150","project":"Superalgos","id":"e8805c13-2905-47dd-ad3d-eea5d645fd2f","savedPayload":{"position":{"x":10612.779440288185,"y":19175.6925612597},"targetPosition":{"x":11068.433530643284,"y":17657.973394573783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"812b92a9-2ba5-44e2-b255-976f8354e841","savedPayload":{"position":{"x":11068.433530643284,"y":17657.973394573783},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 200 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma200","project":"Superalgos","id":"13b0144f-8413-43d8-97f9-61a50712a17b","savedPayload":{"position":{"x":9885.847810890536,"y":18852.776771749803},"targetPosition":{"x":10704.879070888015,"y":17495.89499034751},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"652e1cae-11c0-489c-a820-03296a362c77","savedPayload":{"position":{"x":10704.879070888015,"y":17495.89499034751},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 200 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma200","project":"Superalgos","id":"51211e13-8719-4d03-afb1-a7bb2f656f68","savedPayload":{"position":{"x":9263.21139797568,"y":18360.687122024396},"targetPosition":{"x":10393.670698169535,"y":17250.31267482924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4e4458f4-c6ca-4235-8734-8e833d3722f2","savedPayload":{"position":{"x":10393.670698169535,"y":17250.31267482924},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 250 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma250","project":"Superalgos","id":"a37e3e5a-dc59-4373-97c3-98de0c09fbb7","savedPayload":{"position":{"x":8781.86460313504,"y":17728.6204374918},"targetPosition":{"x":10153.152307255426,"y":16934.433162424168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"52aefae1-6ceb-47c4-a82d-ac55a7b91b25","savedPayload":{"position":{"x":10153.152307255426,"y":16934.433162424168},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 250 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma250","project":"Superalgos","id":"aae7721e-b9d3-4629-94be-eecd49675c8f","savedPayload":{"position":{"x":8473.135286263878,"y":16997.040674489035},"targetPosition":{"x":9998.680805086446,"y":16568.57388592151},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8ddf18b2-93b4-4422-9e64-f9fc22f5de52","savedPayload":{"position":{"x":9998.680805086446,"y":16568.57388592151},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 500 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"65cfa112-3dc1-4bbd-9f90-13076e630272","savedPayload":{"position":{"x":8337.557594955164,"y":16208.229768479781},"targetPosition":{"x":9939.689257141508,"y":16175.7418815606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d1ec756e-a71c-433b-ad10-ef8234617768","savedPayload":{"position":{"x":9939.689257141508,"y":16175.7418815606},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 500 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"577145f8-de78-4ded-a41e-86f9b54ec8a2","savedPayload":{"position":{"x":8437.59860890629,"y":15421.508675532863},"targetPosition":{"x":9980.883285563057,"y":15780.9938652311},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b2fbef6-9a30-4ed6-a98e-5ccceb77aea3","savedPayload":{"position":{"x":9980.883285563057,"y":15780.9938652311},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 10 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma10","project":"Superalgos","id":"520c2e51-b036-4267-928d-53f69d83747b","savedPayload":{"position":{"x":8716.962683878144,"y":14677.453507298553},"targetPosition":{"x":10119.012817569837,"y":15408.518720461996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7fe319a5-1a75-4f65-97da-20345cc502c2","savedPayload":{"position":{"x":10119.012817569837,"y":15408.518720461996},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 1000 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"3514870d-ad16-4bee-b5fa-a68739f3b332","savedPayload":{"position":{"x":9156.353112681754,"y":14029.632265106286},"targetPosition":{"x":10345.230756193752,"y":15081.993696686382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"db6c9de6-aeb9-46ff-a46d-893ac56a32a2","savedPayload":{"position":{"x":10345.230756193752,"y":15081.993696686382},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 1000 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"9cd8a206-16f2-446d-b63e-43faa32d7abd","savedPayload":{"position":{"x":9766.77341168357,"y":13503.597715903159},"targetPosition":{"x":10645.567417076196,"y":14821.953382914717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e518b92f-f678-4868-ae0c-a0bd31f480eb","savedPayload":{"position":{"x":10645.567417076196,"y":14821.953382914717},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f32ec0d3-ec1a-4f9d-b0dc-a394dac962ba","savedPayload":{"position":{"x":11524.167824900098,"y":16140.496033265808},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 5","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"a7e019b1-8c26-45dc-a717-de61a361f789","savedPayload":{"position":{"x":5898.624780708225,"y":17359.02357236948},"targetPosition":{"x":6241.613792926084,"y":17156.80286274157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"7da673e1-96be-42bb-ac8e-ba94da835b8d","savedPayload":{"position":{"x":6241.613792926084,"y":17156.80286274157},"targetPosition":{"x":6926.246973763242,"y":16752.733965991414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 5 End","project":"Superalgos","id":"e755e4bb-ff8f-4591-b0ae-878d71639fd5","savedPayload":{"position":{"x":6175.90087717264,"y":17015.204169514953},"targetPosition":{"x":6926.246973763242,"y":16752.733965991414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 5 End","id":"db00298d-2997-4640-93fe-17125aeb7f0e"}}},{"type":"Polygon Vertex","name":"SMA 5 Begin","project":"Superalgos","id":"c452cccc-8d2b-4630-9219-fb5e4d89fb1e","savedPayload":{"position":{"x":6138.970248296388,"y":16863.612141027872},"targetPosition":{"x":6926.246973763242,"y":16752.733965991414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 5 Begin","id":"9eca5bc8-cdb2-46fb-9a26-1c2da03b8818"}}}],"id":"9de00c59-ad47-414f-93f4-976d1a798e33","savedPayload":{"position":{"x":6926.246973763242,"y":16752.733965991414},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 10","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"d99069f1-59c4-4dd2-a77f-15de8869aeaf","savedPayload":{"position":{"x":5710.227167440338,"y":16767.372193321728},"targetPosition":{"x":6089.63824125945,"y":16646.704547237205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6867a6be-eb3c-4c1f-a83e-f630c5a40ba3","savedPayload":{"position":{"x":6089.63824125945,"y":16646.704547237205},"targetPosition":{"x":6846.937387081867,"y":16405.3536695277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 10 Begin","project":"Superalgos","id":"43ddbce7-424a-4718-9012-bd9327a7b6e0","savedPayload":{"position":{"x":6057.037243327497,"y":16494.118567739155},"targetPosition":{"x":6846.937387081867,"y":16405.3536695277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 10 Begin","id":"7fe319a5-1a75-4f65-97da-20345cc502c2"}}},{"type":"Polygon Vertex","name":"SMA 10 End","project":"Superalgos","id":"f48c16c1-ca4a-4a64-ae78-78cbc754888e","savedPayload":{"position":{"x":6054.638403330609,"y":16338.587779508107},"targetPosition":{"x":6846.937387081867,"y":16405.3536695277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 10 End","id":"b2e038ee-355d-4862-a454-514f7bcf31cf"}}}],"id":"0c387d26-20c4-4a66-aac4-599d98b8300e","savedPayload":{"position":{"x":6846.937387081867,"y":16405.3536695277},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 15","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"e52e6176-fecb-48d3-ad99-7b66e11b02de","savedPayload":{"position":{"x":5658.035226923817,"y":16149.762332203682},"targetPosition":{"x":6054.9061800589225,"y":16116.589502699215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"3850ed1d-dc3b-47b2-bee7-7aa961acfaa2","savedPayload":{"position":{"x":6054.9061800589225,"y":16116.589502699215},"targetPosition":{"x":6846.98244272844,"y":16049.715059408161},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 15 End","project":"Superalgos","id":"3f50ad9c-b951-420f-92cb-564d050f144e","savedPayload":{"position":{"x":6057.006693773823,"y":15960.773992185466},"targetPosition":{"x":6846.98244272844,"y":16049.715059408161},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 15 End","id":"32c7c4d3-a210-4d4d-8d10-bb23f91edcda"}}},{"type":"Polygon Vertex","name":"SMA 15 Begin","project":"Superalgos","id":"5cce1576-091c-49fa-a98f-0ebcf033c933","savedPayload":{"position":{"x":6089.630733135986,"y":15808.160619758462},"targetPosition":{"x":6846.98244272844,"y":16049.715059408161},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 15 Begin","id":"02f80e02-080a-4950-9ffc-2f3b5770b404"}}}],"id":"9f49d18a-dfd7-4d55-8a1e-c186dbfc043e","savedPayload":{"position":{"x":6846.98244272844,"y":16049.715059408161},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"e9126aac-9402-4bfc-9f89-b6996780d7ba","savedPayload":{"position":{"x":5744.550901802635,"y":15535.874271274544},"targetPosition":{"x":6138.664478101753,"y":15591.533975452412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9ec36dc5-91e0-4861-8748-9f9b7d92bacc","savedPayload":{"position":{"x":6138.664478101753,"y":15591.533975452412},"targetPosition":{"x":6926.010414578679,"y":15702.474184147826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 20 Begin","project":"Superalgos","id":"6a595b60-ea82-4ef7-ad14-f698d4885e0d","savedPayload":{"position":{"x":6175.56173822725,"y":15439.840093525461},"targetPosition":{"x":6926.010414578679,"y":15702.474184147826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 20 Begin","id":"6b07cc40-e7da-48bc-a49b-cac5a0615c34"}}},{"type":"Polygon Vertex","name":"SMA 20 End","project":"Superalgos","id":"3d4d3854-f28c-462a-b08a-21db3bdf9d82","savedPayload":{"position":{"x":6241.362508462567,"y":15298.415365586585},"targetPosition":{"x":6926.010414578679,"y":15702.474184147826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 20 End","id":"e2f2041d-b896-44d7-b251-85eb1cd7fadf"}}}],"id":"39db09d1-e5b2-4e83-80b5-41b5af443e3f","savedPayload":{"position":{"x":6926.010414578679,"y":15702.474184147826},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 25","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"938779af-a8c9-48dc-a936-7f196f976c5a","savedPayload":{"position":{"x":5594.084373752445,"y":14813.202897893683},"targetPosition":{"x":6337.243589906877,"y":15098.546767756252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c905d757-47ba-4c5b-9f85-73db3050e897","savedPayload":{"position":{"x":6337.243589906877,"y":15098.546767756252},"targetPosition":{"x":7080.56461483545,"y":15381.73535784935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 25 End","project":"Superalgos","id":"a952acf4-c97a-40f5-8f9d-edbae371305d","savedPayload":{"position":{"x":6407.4081272683725,"y":14958.66061707899},"targetPosition":{"x":7080.56461483545,"y":15381.73535784935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 25 End","id":"c9293d92-6255-4c96-9bf9-f4c6dcf419a1"}}},{"type":"Polygon Vertex","name":"SMA 25 Begin","project":"Superalgos","id":"88efd4f2-dc1e-43d6-96f0-7e60ed1d4177","savedPayload":{"position":{"x":6502.770173648594,"y":14835.334073997652},"targetPosition":{"x":7080.56461483545,"y":15381.73535784935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 25 Begin","id":"78b96701-c691-41fa-91d2-3bdb00e2e0fa"}}}],"id":"9b80c90a-521b-4d8e-ba2b-781f3aee1fb2","savedPayload":{"position":{"x":7080.56461483545,"y":15381.73535784935},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 50","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b8842dee-7b08-40e5-818d-54df493e6e20","savedPayload":{"position":{"x":5974.218207617305,"y":14214.12579186019},"targetPosition":{"x":6635.88443507774,"y":14656.229095391034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c1dfcdd1-96a1-49ee-82e6-7d78077c43c0","savedPayload":{"position":{"x":6641.559191643686,"y":14660.462915613587},"targetPosition":{"x":7302.455818250706,"y":15103.237352464135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 50 Begin","project":"Superalgos","id":"cdbfa16a-32ae-43e0-ba6f-940351c04786","savedPayload":{"position":{"x":6740.422271549927,"y":14541.143071479502},"targetPosition":{"x":7302.455818250706,"y":15103.237352464135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 50 Begin","id":"1d352202-ba2e-41a7-9d4b-c4c97d2e391d"}}},{"type":"Polygon Vertex","name":"SMA 50 End","project":"Superalgos","id":"5e17d592-e906-4b8b-b48b-97b98cdd2cd1","savedPayload":{"position":{"x":6861.009400608327,"y":14442.238825584896},"targetPosition":{"x":7302.455818250706,"y":15103.237352464135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 50 End","id":"4e34e6e6-d370-4127-b4fe-0c9fd591e730"}}}],"id":"39d6a3fc-1380-4e2d-8de6-13d0b9e7a8e3","savedPayload":{"position":{"x":7302.455818250706,"y":15103.237352464135},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 100","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"2a39fe15-bcc6-49a4-9dcd-41c882a4b361","savedPayload":{"position":{"x":6483.017421302578,"y":13719.638808567148},"targetPosition":{"x":7029.593665995624,"y":14297.823870143538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ea97087b-647a-4900-8de5-2aabe7f95095","savedPayload":{"position":{"x":7029.730791047241,"y":14297.8428513599},"targetPosition":{"x":7576.56031909923,"y":14876.159299033758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 100 Begin","project":"Superalgos","id":"d87c3f75-6f43-4087-ab8b-0493e77a3a25","savedPayload":{"position":{"x":7157.994166743541,"y":14207.879327854424},"targetPosition":{"x":7581.028457304848,"y":14881.116855921035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 100 Begin","id":"651f424a-51be-4b25-a895-d50f75329384"}}},{"type":"Polygon Vertex","name":"SMA 100 End","project":"Superalgos","id":"b6782eed-6d13-4cf8-98c1-b623da09e0d1","savedPayload":{"position":{"x":7297.753778030259,"y":14138.147609090809},"targetPosition":{"x":7581.028457304848,"y":14881.116855921035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 100 End","id":"aada5c3d-5ff5-4afd-8dd1-298ce8fce853"}}}],"id":"c7c55c53-c6ee-4edc-8b4e-eab2ece17db9","savedPayload":{"position":{"x":7581.028457304848,"y":14881.116855921035},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 150","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"7e3e32b9-1c64-43f1-85ab-6bb2d777c5a5","savedPayload":{"position":{"x":7090.099040886136,"y":13353.081110122366},"targetPosition":{"x":7494.0445241354755,"y":14037.987845771859},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"91bbb7a8-0800-4d46-a3ba-bd195153f61e","savedPayload":{"position":{"x":7493.1916875047355,"y":14035.918016063259},"targetPosition":{"x":7897.56976249551,"y":14721.438196487205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 150 Begin","project":"Superalgos","id":"db2a660d-2315-482c-a29a-38acac0ca453","savedPayload":{"position":{"x":7639.324985291598,"y":13976.400074191348},"targetPosition":{"x":7901.8183518318765,"y":14726.800252896563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 150 Begin","id":"55d6b376-dd20-4044-b6c2-51acd03bee71"}}},{"type":"Polygon Vertex","name":"SMA 150 End","project":"Superalgos","id":"2c0a8a74-58c0-4331-a438-2154306fb317","savedPayload":{"position":{"x":7790.761422719745,"y":13939.6445027938},"targetPosition":{"x":7901.8183518318765,"y":14726.800252896563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 150 End","id":"812b92a9-2ba5-44e2-b255-976f8354e841"}}}],"id":"5c7935c9-6393-4e0f-8561-742533c1ebcf","savedPayload":{"position":{"x":7901.8183518318765,"y":14726.800252896563},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 200","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"0ab949bd-a21b-43e8-ae5d-ba2067fa9436","savedPayload":{"position":{"x":7762.492294167747,"y":13128.347053218302},"targetPosition":{"x":8003.859459276693,"y":13885.994992940869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"838799c3-76c5-4e9e-9291-e297d352969c","savedPayload":{"position":{"x":8003.4763253119745,"y":13883.827086107127},"targetPosition":{"x":8245.12947260895,"y":14642.108806436348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 200 Begin","project":"Superalgos","id":"f36ca4d6-1114-4958-9bf2-09cd34536077","savedPayload":{"position":{"x":8159.985999926856,"y":13857.31975346093},"targetPosition":{"x":8248.940246696668,"y":14647.583891286631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 200 Begin","id":"652e1cae-11c0-489c-a820-03296a362c77"}}},{"type":"Polygon Vertex","name":"SMA 200 End","project":"Superalgos","id":"af95d8b6-43cf-4529-910a-8713ab69fb13","savedPayload":{"position":{"x":8315.592510899525,"y":13855.456708518788},"targetPosition":{"x":8248.940246696668,"y":14647.583891286631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 200 End","id":"4e4458f4-c6ca-4235-8734-8e833d3722f2"}}}],"id":"796fa379-26a6-4443-b515-1be86217f891","savedPayload":{"position":{"x":8248.940246696668,"y":14647.583891286631},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 250","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.BLACK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"6f488fbe-fb26-4965-9ad2-be64bc66477e","savedPayload":{"position":{"x":8467.760104740883,"y":13058.857172348196},"targetPosition":{"x":8534.442620376398,"y":13851.244178224668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1860376f-2657-41cb-84d1-10c324f64535","savedPayload":{"position":{"x":8534.584546689817,"y":13849.04909225246},"targetPosition":{"x":8601.415768774914,"y":14642.113124613585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 250 End","project":"Superalgos","id":"e513348c-19d0-49e5-a77f-e6059d459335","savedPayload":{"position":{"x":8693.72509380208,"y":13857.583152445624},"targetPosition":{"x":8604.725148368376,"y":14647.678914778158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 250 End","id":"8ddf18b2-93b4-4422-9e64-f9fc22f5de52"}}},{"type":"Polygon Vertex","name":"SMA 250 Begin","project":"Superalgos","id":"ddd52ba0-601f-4121-908e-9cd42450ecaa","savedPayload":{"position":{"x":8846.156766555978,"y":13890.180403608134},"targetPosition":{"x":8604.725148368376,"y":14647.678914778158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 250 Begin","id":"52aefae1-6ceb-47c4-a82d-ac55a7b91b25"}}}],"id":"3ec27802-69a6-4c76-8bf5-ba92335ff928","savedPayload":{"position":{"x":8604.725148368376,"y":14647.678914778158},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 500","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.BLACK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b8892640-241d-4817-90b9-142d50f45575","savedPayload":{"position":{"x":9170.539672142233,"y":13148.132010487972},"targetPosition":{"x":9059.473223891135,"y":13935.512141689218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"640d28c5-0762-4fe0-8d3b-b2b2fd178cbe","savedPayload":{"position":{"x":9060.108806415126,"y":13933.332511866647},"targetPosition":{"x":8948.960779210738,"y":14721.45730130827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 500 Begin","project":"Superalgos","id":"cc1d57e4-c69b-4faf-987e-1ecc6402d774","savedPayload":{"position":{"x":9214.431169509287,"y":13976.230175554481},"targetPosition":{"x":8951.798543616984,"y":14726.800309194063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 500 Begin","id":"d1ec756e-a71c-433b-ad10-ef8234617768"}}},{"type":"Polygon Vertex","name":"SMA 500 End","project":"Superalgos","id":"f5f0ed9f-dc7d-40cb-94cb-9fca1de4aacf","savedPayload":{"position":{"x":9355.810471454457,"y":14042.179877162023},"targetPosition":{"x":8951.798543616984,"y":14726.800309194063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 500 End","id":"0b2fbef6-9a30-4ed6-a98e-5ccceb77aea3"}}}],"id":"d638a3eb-6f91-4c41-9f65-981ba269343a","savedPayload":{"position":{"x":8951.798543616984,"y":14726.800309194063},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 1000","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.BLACK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"accb8fb4-da01-4314-bda3-a127f32443db","savedPayload":{"position":{"x":9837.387047803968,"y":13389.82112935621},"targetPosition":{"x":9553.792066279693,"y":14132.922753310495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2139584e-6960-4ac5-a6b2-d45aae1cfae3","savedPayload":{"position":{"x":9554.185921355991,"y":14132.64658458411},"targetPosition":{"x":9270.385770384844,"y":14876.246477311379},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 1000 Begin","project":"Superalgos","id":"82d72489-eb93-4293-8b96-498e6756e89d","savedPayload":{"position":{"x":9695.774069903691,"y":14208.243257070533},"targetPosition":{"x":9272.77971366134,"y":14881.255399754165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 1000 Begin","id":"db6c9de6-aeb9-46ff-a46d-893ac56a32a2"}}},{"type":"Polygon Vertex","name":"SMA 1000 End","project":"Superalgos","id":"e781d4f3-58b9-4fce-82aa-27b669582090","savedPayload":{"position":{"x":9819.109634908778,"y":14303.806395517597},"targetPosition":{"x":9272.77971366134,"y":14881.255399754165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 1000 End","id":"e518b92f-f678-4868-ae0c-a0bd31f480eb"}}}],"id":"8042e9e4-b3be-4d8b-94bc-558b8b97a3f0","savedPayload":{"position":{"x":9272.77971366134,"y":14881.255399754165},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"9847b54e-34cd-4a44-b43f-be3c091f5ec0","savedPayload":{"position":{"x":8426.705423653035,"y":16227.407603939377},"targetPosition":{"x":9546.823996722476,"y":17347.5391788509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"SMA Base 5","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"SMA 5","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma5","project":"Superalgos","id":"5c11d2b4-671b-42ec-88b0-9dbbf0ba5a57","savedPayload":{"position":{"x":9277.089591114182,"y":16800.50042766004},"targetPosition":{"x":9400.891315491339,"y":16564.7487336349},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ec513f64-7c7c-4693-ac51-b2e36f2f858c","savedPayload":{"position":{"x":9400.891315491339,"y":16564.7487336349},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 10","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma10","project":"Superalgos","id":"5e333385-55ff-48d1-abb0-0757ef26a20c","savedPayload":{"position":{"x":9065.059013195303,"y":16618.817953353486},"targetPosition":{"x":9284.19437658519,"y":16467.83472140327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c599221d-9b35-48c5-bb4d-4c4fd0c8c4e8","savedPayload":{"position":{"x":9284.19437658519,"y":16467.83472140327},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 15","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma15","project":"Superalgos","id":"0cb3bdcb-7c0b-4cfa-9357-0b142c1e230b","savedPayload":{"position":{"x":8971.160598384402,"y":16356.300645654039},"targetPosition":{"x":9235.632242167325,"y":16324.448528645873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f3ff46f2-80e9-458f-b7ca-8f0fe7c7cff2","savedPayload":{"position":{"x":9235.632242167325,"y":16324.448528645873},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 20","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma20","project":"Superalgos","id":"8dc1f569-2c1e-4842-b135-528ba461ca30","savedPayload":{"position":{"x":9004.298169584825,"y":16081.373515847125},"targetPosition":{"x":9253.990581457252,"y":16176.04505028882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"14a4ef21-076b-418a-98a6-7b3ff64f2a9f","savedPayload":{"position":{"x":9253.990581457252,"y":16176.04505028882},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 25","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma25","project":"Superalgos","id":"2d76e840-cdda-48e8-9290-342c2a143b6d","savedPayload":{"position":{"x":9162.774564246094,"y":15853.759744014309},"targetPosition":{"x":9338.82847308835,"y":16052.529159044414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d8d31fc6-55db-4a89-bcc8-4e33a3583542","savedPayload":{"position":{"x":9338.82847308835,"y":16052.529159044414},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 50","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma50","project":"Superalgos","id":"9a0af05e-b760-4a22-85ab-8b3c64b3ef29","savedPayload":{"position":{"x":9407.780218853237,"y":15723.618705719471},"targetPosition":{"x":9471.82455758275,"y":15983.822817595788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48d5643b-e652-4c4d-b7cf-37e9656bfd43","savedPayload":{"position":{"x":9471.82455758275,"y":15983.822817595788},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 100","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma100","project":"Superalgos","id":"1987b0ae-9510-45e9-b7ed-3802c3f28e1d","savedPayload":{"position":{"x":9684.582396877795,"y":15724.967971996297},"targetPosition":{"x":9621.3354349465,"y":15982.340659966165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4ad1bbaa-2c37-4009-bbdd-d154be78b2d0","savedPayload":{"position":{"x":9621.3354349465,"y":15982.340659966165},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 150","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma150","project":"Superalgos","id":"611d7c8b-2cb8-412b-bd1b-2a04b3a796c0","savedPayload":{"position":{"x":9930.163421270201,"y":15853.42139071546},"targetPosition":{"x":9753.4718530797,"y":16053.055503000232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8ef64a02-b88d-4635-8d88-99121a55ed73","savedPayload":{"position":{"x":9753.4718530797,"y":16053.055503000232},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 200","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma200","project":"Superalgos","id":"d8bbc57a-1eda-43c8-a865-1ceeb879a755","savedPayload":{"position":{"x":10088.092407321328,"y":16081.421564973196},"targetPosition":{"x":9838.97476274682,"y":16175.949481847587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"06680ab8-0ec9-448e-9854-97bf413f4133","savedPayload":{"position":{"x":9838.97476274682,"y":16175.949481847587},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 250","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma250","project":"Superalgos","id":"496ce598-2c93-40df-8f2e-effaeff2b665","savedPayload":{"position":{"x":10121.730982005018,"y":16356.24344760182},"targetPosition":{"x":9857.53899293744,"y":16324.460598334947},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"503ab933-6f8f-4fcb-a0e6-ecf1b6e8b24b","savedPayload":{"position":{"x":9857.53899293744,"y":16324.460598334947},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 500","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma500","project":"Superalgos","id":"67dd80e5-30f9-48b2-b661-e40acde070cc","savedPayload":{"position":{"x":10022.943571674397,"y":16615.588564592683},"targetPosition":{"x":9804.531092616653,"y":16465.01309490849},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a4ab02a6-f6c0-4b8f-98d9-e24b66e492ab","savedPayload":{"position":{"x":9804.531092616653,"y":16465.01309490849},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 1000","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma1000","project":"Superalgos","id":"359489a0-97b9-49f8-8f35-2f6247b570a9","savedPayload":{"position":{"x":9815.063233755962,"y":16799.736013120975},"targetPosition":{"x":9691.684274832027,"y":16564.397370631843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"88560ba5-2c50-4236-90b6-47d19ac3afa5","savedPayload":{"position":{"x":9691.684274832027,"y":16564.397370631843},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa2c0f1e-8a0e-4da1-97df-6815890e5770","savedPayload":{"position":{"x":9546.8298124457,"y":16288.856744141856},"targetPosition":{"x":9546.823996722476,"y":17347.5391788509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"888c381d-457d-4421-8401-a7475b42ff03","savedPayload":{"position":{"x":9999.173182942548,"y":17670.918273451905},"targetPosition":{"x":10336.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9b2443b7-9276-4fa3-b4b3-b9b991d886d8","savedPayload":{"position":{"x":10336.673182942548,"y":18255.4854210064},"targetPosition":{"x":10786.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Relative Strenght Index (RSI)","config":"{\n\"codeName\": \"Plotter RSI\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"RSI 14","config":"{\n\t\"codeName\": \"RSI 14\",\n\t\"slot\": {\n\t\t\"number\": 3,\n\t\t\"minValue\": 0,\n\t\t\"maxValue\": 100\n\t},\n \"banner\": \"Oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Grid","project":"Superalgos","points":[{"type":"Point","name":"Begin 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"88e15149-215e-42c8-bc00-78b63343daa0","savedPayload":{"position":{"x":9041.466765892419,"y":17104.708491403868},"targetPosition":{"x":9092.522650893712,"y":17234.795772144193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e376a028-b688-4bb5-a100-00be6d161bd6","savedPayload":{"position":{"x":9092.522650893712,"y":17234.795772144193},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"6904030c-e751-4eb9-844a-d1cf45caa1f2","savedPayload":{"position":{"x":9144.872911655657,"y":17056.547828402367},"targetPosition":{"x":9147.32815015229,"y":17200.370216744708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f562d9d7-357b-4677-ac4b-3ddbb735ca2b","savedPayload":{"position":{"x":9147.32815015229,"y":17200.370216744708},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 20","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 20","project":"Superalgos","id":"4fc2797d-7023-461e-912e-23f2834d4141","savedPayload":{"position":{"x":9239.643622656196,"y":17093.149724835082},"targetPosition":{"x":9197.375997044976,"y":17225.15908271543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8227114d-f503-4f27-ae0b-4bc2804e2cdb","savedPayload":{"position":{"x":9197.375997044976,"y":17225.15908271543},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 20","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 20","project":"Superalgos","id":"e6640285-69e5-4a37-8907-9d8bbcc2008b","savedPayload":{"position":{"x":9366.797753160485,"y":17117.87646604142},"targetPosition":{"x":9278.434526115558,"y":17233.490337434196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c9de9989-11da-44a7-bcbf-137435767d90","savedPayload":{"position":{"x":9278.434526115558,"y":17233.490337434196},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 30","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 30","project":"Superalgos","id":"db815155-dbec-4824-9132-470a173d328b","savedPayload":{"position":{"x":9372.730161346997,"y":17211.69953322924},"targetPosition":{"x":9227.486174342735,"y":17309.174849242296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0f0a70c3-9f37-4e58-a93c-fcfcf9686c09","savedPayload":{"position":{"x":9227.486174342735,"y":17309.174849242296},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 30","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 30","project":"Superalgos","id":"db6c3539-81f5-465d-9d79-8004a60ac5fb","savedPayload":{"position":{"x":9441.520657695095,"y":17285.929008924075},"targetPosition":{"x":9340.129456510967,"y":17307.453777739527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac82bb81-5d37-4eea-ab52-0f698de71014","savedPayload":{"position":{"x":9340.129456510967,"y":17307.453777739527},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 50","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 50","project":"Superalgos","id":"a6a8718f-2c9a-4c5f-af7a-7029bddfb839","savedPayload":{"position":{"x":9394.83828323309,"y":17401.15545586696},"targetPosition":{"x":9266.650204186692,"y":17362.90148536058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a0cdc721-996a-44b2-b619-bbc0ef97cd62","savedPayload":{"position":{"x":9266.650204186692,"y":17362.90148536058},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 50","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 50","project":"Superalgos","id":"c996c1b4-2b1f-4d11-acd4-8aba4d3e3e5d","savedPayload":{"position":{"x":9437.870952784117,"y":17503.07549719417},"targetPosition":{"x":9313.535713817942,"y":17454.49309723108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"59a77a0b-bcee-4c1e-855c-854c3d3bc521","savedPayload":{"position":{"x":9313.535713817942,"y":17454.49309723108},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 70","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 70","project":"Superalgos","id":"bdcd3323-0da6-4667-95c2-b017623500af","savedPayload":{"position":{"x":9343.802166774247,"y":17549.824629422408},"targetPosition":{"x":9235.925230802259,"y":17427.435244869328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"228edebc-3b5b-4760-9791-2229cb76a662","savedPayload":{"position":{"x":9235.925230802259,"y":17427.435244869328},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 70","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 70","project":"Superalgos","id":"9977888b-2cf4-472e-8468-d6705690a57c","savedPayload":{"position":{"x":9264.975563351509,"y":17635.509373008612},"targetPosition":{"x":9231.720430111443,"y":17529.123260164444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4cbfd9aa-d595-4e06-ac82-a87bfdf9f680","savedPayload":{"position":{"x":9231.720430111443,"y":17529.123260164444},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 80","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 80","project":"Superalgos","id":"75cda528-f689-4d21-a8ed-ba08705d5ec7","savedPayload":{"position":{"x":9141.967677017881,"y":17566.93412478785},"targetPosition":{"x":9168.190184239134,"y":17433.7100107913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e7b453a3-5312-48e6-8797-6d96e058766b","savedPayload":{"position":{"x":9168.190184239134,"y":17433.7100107913},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Eng 80","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 80","project":"Superalgos","id":"df4c7f58-96c7-4ffb-9ce3-ff1b35ddf3c3","savedPayload":{"position":{"x":9011.4750858361,"y":17662.04819786081},"targetPosition":{"x":9083.813562756965,"y":17541.858264982904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d64e2ceb-abb9-4cc0-b929-211bcbd934a7","savedPayload":{"position":{"x":9083.813562756965,"y":17541.858264982904},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 100","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 100","project":"Superalgos","id":"79f20ec4-c499-41ca-aa79-f56fe5b7bcbc","savedPayload":{"position":{"x":8997.08027135814,"y":17484.088465918925},"targetPosition":{"x":9115.683799445174,"y":17408.58662548788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7d5d4922-1d7d-45a3-b5ff-75d14016ee1d","savedPayload":{"position":{"x":9115.683799445174,"y":17408.58662548788},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 100","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 100","project":"Superalgos","id":"58d10fb8-87e5-4a4c-95ab-99be2f5b14ea","savedPayload":{"position":{"x":8888.333662990459,"y":17448.668931998443},"targetPosition":{"x":9000.579874749692,"y":17417.274298658464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dc11ae4c-bce1-4e88-986a-457a3612102a","savedPayload":{"position":{"x":9000.579874749692,"y":17417.274298658464},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"RSI Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.value","project":"Superalgos","id":"e068d3fa-623c-4349-a10f-4abdd6263b07","savedPayload":{"position":{"x":8931.216328161867,"y":17339.10900642492},"targetPosition":{"x":9096.713401138608,"y":17334.80702412845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7f687c2f-3a91-4b53-b00d-8a651e82c97d","savedPayload":{"position":{"x":9096.713401138608,"y":17334.80702412845},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"RSI End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.value","project":"Superalgos","id":"bb45d3f0-e6e7-473a-b2f4-7016c65bd7ee","savedPayload":{"position":{"x":8913.163416459192,"y":17241.14896823239},"targetPosition":{"x":9025.658626425542,"y":17302.122150020718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f5d97a45-0db5-4d48-bf32-efdd6b2726c0","savedPayload":{"position":{"x":9025.658626425542,"y":17302.122150020718},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ff9f35c7-b1ca-446e-905c-c971ca51dfbe","savedPayload":{"position":{"x":9165.934568754576,"y":17358.127392340488},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Box 0-20","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.25,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.35,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"9e7202ce-11e7-4526-80d5-52f0dbdcb91c","savedPayload":{"position":{"x":8228.979153972432,"y":18272.782940556674},"targetPosition":{"x":8151.316869970575,"y":18022.423521716195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8716fe80-7aa5-4707-93d9-f47ac26e9a53","savedPayload":{"position":{"x":8151.316869970575,"y":18022.423521716195},"targetPosition":{"x":8073.265313054497,"y":17771.95877923628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 0","project":"Superalgos","id":"89a7b82e-5d1d-4359-80a8-0b85d997a62c","savedPayload":{"position":{"x":8015.767094759813,"y":18028.129382759744},"targetPosition":{"x":8073.265313054497,"y":17771.95877923628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"e376a028-b688-4bb5-a100-00be6d161bd6"}}},{"type":"Polygon Vertex","name":"End 0","project":"Superalgos","id":"4ddfe945-d3dd-431a-a0bf-477d2f0c0af1","savedPayload":{"position":{"x":7895.564145649296,"y":17965.16055683019},"targetPosition":{"x":8073.265313054497,"y":17771.95877923628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"f562d9d7-357b-4677-ac4b-3ddbb735ca2b"}}},{"type":"Polygon Vertex","name":"End 20","project":"Superalgos","id":"1fd4c8e3-47e3-4e05-8739-a34e8239b178","savedPayload":{"position":{"x":7822.957444550346,"y":17850.429287220817},"targetPosition":{"x":8073.265313054497,"y":17771.95877923628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 20","id":"c9de9989-11da-44a7-bcbf-137435767d90"}}},{"type":"Polygon Vertex","name":"Begin 20","project":"Superalgos","id":"2920b1c1-1d61-44b8-b31a-31e2d87fa9e4","savedPayload":{"position":{"x":7820.120782257367,"y":17714.624553705515},"targetPosition":{"x":8073.265313054497,"y":17771.95877923628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 20","id":"8227114d-f503-4f27-ae0b-4bc2804e2cdb"}}}],"id":"0dce63e6-acf6-482e-bcf9-3e44b7487cbf","savedPayload":{"position":{"x":8073.265313054497,"y":17771.95877923628},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 80-100","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.25,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.35,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"f95287c0-8123-4025-8018-370eb91b6189","savedPayload":{"position":{"x":7558.683405849144,"y":18282.62451333664},"targetPosition":{"x":7675.9176575545425,"y":18048.05799532052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c46a4519-e917-410e-98d7-faf0ad80a99a","savedPayload":{"position":{"x":7675.9176575545425,"y":18048.05799532052},"targetPosition":{"x":7909.795444112082,"y":17579.47464025012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 80","project":"Superalgos","id":"eb76ec36-eae3-424a-9105-d26eefca1b67","savedPayload":{"position":{"x":7562.412055779616,"y":17971.430700001223},"targetPosition":{"x":7909.795444112082,"y":17579.47464025012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 80","id":"e7b453a3-5312-48e6-8797-6d96e058766b"}}},{"type":"Polygon Vertex","name":"Eng 80","project":"Superalgos","id":"6facb2b7-b324-4e01-a53f-5d72541ba64f","savedPayload":{"position":{"x":7472.768839481356,"y":17868.215055099583},"targetPosition":{"x":7909.795444112082,"y":17579.47464025012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Eng 80","id":"d64e2ceb-abb9-4cc0-b929-211bcbd934a7"}}},{"type":"Polygon Vertex","name":"End 100","project":"Superalgos","id":"2e7bfaf4-7828-4021-9895-58882a03987e","savedPayload":{"position":{"x":7412.9008971814765,"y":17745.347413509826},"targetPosition":{"x":7909.795444112082,"y":17579.47464025012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 100","id":"dc11ae4c-bce1-4e88-986a-457a3612102a"}}},{"type":"Polygon Vertex","name":"Begin 100","project":"Superalgos","id":"d2a601ff-7a5d-414e-bc06-be93e13e6ddb","savedPayload":{"position":{"x":7386.86640898254,"y":17611.099491829893},"targetPosition":{"x":7909.795444112082,"y":17579.47464025012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 100","id":"7d5d4922-1d7d-45a3-b5ff-75d14016ee1d"}}}],"id":"2429edaa-20db-4fd9-b834-c84953e78bf3","savedPayload":{"position":{"x":7909.795444112082,"y":17579.47464025012},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 20-30","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"f1ac3d45-3f00-4269-a41f-872bcbc99620","savedPayload":{"position":{"x":7722.246727281603,"y":17741.337378224856},"targetPosition":{"x":7749.057585218765,"y":17611.24419339063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1aa28d17-1653-496a-8b8a-35fdf6691e0b","savedPayload":{"position":{"x":7749.057585218765,"y":17611.24419339063},"targetPosition":{"x":7796.854740606876,"y":17353.82148014623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 20","project":"Superalgos","id":"2e88069b-6333-45f8-8199-021fe3896667","savedPayload":{"position":{"x":7626.445524102059,"y":17553.45780766685},"targetPosition":{"x":7796.854740606876,"y":17353.82148014623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 20","id":"8227114d-f503-4f27-ae0b-4bc2804e2cdb"}}},{"type":"Polygon Vertex","name":"End 20","project":"Superalgos","id":"cdea2bf9-a545-4877-8d65-5a027352bb8a","savedPayload":{"position":{"x":7549.39644463838,"y":17441.938265340184},"targetPosition":{"x":7796.854740606876,"y":17353.82148014623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 20","id":"c9de9989-11da-44a7-bcbf-137435767d90"}}},{"type":"Polygon Vertex","name":"End 30","project":"Superalgos","id":"bfb22589-c1af-4822-8944-1767e3e691bc","savedPayload":{"position":{"x":7544.153715592249,"y":17332.987816512705},"targetPosition":{"x":7796.854740606876,"y":17353.82148014623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"ac82bb81-5d37-4eea-ab52-0f698de71014"}}},{"type":"Polygon Vertex","name":"Begin 30","project":"Superalgos","id":"208c9dfc-a7fb-41ab-becc-3b68104e07ed","savedPayload":{"position":{"x":7601.756609746528,"y":17180.846760302793},"targetPosition":{"x":7796.854740606876,"y":17353.82148014623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"0f0a70c3-9f37-4e58-a93c-fcfcf9686c09"}}}],"id":"4a0db3d1-061d-4587-9c05-f42c09c0b271","savedPayload":{"position":{"x":7796.854740606876,"y":17353.82148014623},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 70-80","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"6335d57f-9462-4d19-b954-2f511308b9c8","savedPayload":{"position":{"x":7304.520865432885,"y":17390.846905944392},"targetPosition":{"x":7517.635146597222,"y":17237.50952314289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"b01a727e-5773-47c2-b094-c19ad0ac71f4","savedPayload":{"position":{"x":7517.635146597222,"y":17237.50952314289},"targetPosition":{"x":7741.485073757016,"y":17107.588457039914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 70","project":"Superalgos","id":"c59e52e4-9b7e-4985-ab53-35f5cd29f250","savedPayload":{"position":{"x":7251.523773111789,"y":17293.05151635694},"targetPosition":{"x":7741.485073757016,"y":17107.588457039914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"228edebc-3b5b-4760-9791-2229cb76a662"}}},{"type":"Polygon Vertex","name":"End 70","project":"Superalgos","id":"957f8c1e-cb14-4241-b805-abfdc50c07d0","savedPayload":{"position":{"x":7220.200957198529,"y":17160.00932270219},"targetPosition":{"x":7741.485073757016,"y":17107.588457039914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"4cbfd9aa-d595-4e06-ac82-a87bfdf9f680"}}},{"type":"Polygon Vertex","name":"Eng 80","project":"Superalgos","id":"37688deb-5377-4f52-bde8-5e8abbf6e25f","savedPayload":{"position":{"x":7212.944238398726,"y":17053.204675324116},"targetPosition":{"x":7741.485073757016,"y":17107.588457039914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Eng 80","id":"d64e2ceb-abb9-4cc0-b929-211bcbd934a7"}}},{"type":"Polygon Vertex","name":"Begin 80","project":"Superalgos","id":"6d346213-f33f-4b5a-a519-5e1c3fb42e50","savedPayload":{"position":{"x":7267.884064406258,"y":16873.92170311763},"targetPosition":{"x":7741.485073757016,"y":17107.588457039914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 80","id":"e7b453a3-5312-48e6-8797-6d96e058766b"}}}],"id":"5835d367-23bc-4039-b2c1-1a23f3ca652f","savedPayload":{"position":{"x":7741.485073757016,"y":17107.588457039914},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"6ad882da-10d9-427c-8fb5-3a7c55b678a1","savedPayload":{"position":{"x":7245.379384255615,"y":16974.90988540458},"targetPosition":{"x":7492.213075435608,"y":16920.993648590847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"fa05777f-6288-4dd2-9b7a-61194bc43681","savedPayload":{"position":{"x":7492.213075435608,"y":16920.993648590847},"targetPosition":{"x":7746.340853981968,"y":16855.743044137183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 20","project":"Superalgos","id":"a9a9dd2d-d7f8-4a25-b81d-d1e2a2f9d5a6","savedPayload":{"position":{"x":7486.444193538173,"y":16818.77684208694},"targetPosition":{"x":7746.340853981968,"y":16855.743044137183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 20","id":"8227114d-f503-4f27-ae0b-4bc2804e2cdb"}}},{"type":"Polygon Vertex","name":"End 20","project":"Superalgos","id":"a717c7d2-3bc7-4d8c-9e9f-e1fb75fd0d42","savedPayload":{"position":{"x":7520.637021628336,"y":16721.945317913327},"targetPosition":{"x":7746.340853981968,"y":16855.743044137183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 20","id":"c9de9989-11da-44a7-bcbf-137435767d90"}}}],"id":"27aab97e-ce7f-47fc-bd22-d9b70ffec2d1","savedPayload":{"position":{"x":7746.340853981968,"y":16855.743044137183},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 30","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"0b1d6f25-076c-4495-b462-435a8d1900d2","savedPayload":{"position":{"x":7156.561117564255,"y":16617.887160815404},"targetPosition":{"x":7287.958455489759,"y":16617.21263767734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6cb61271-a82a-47a1-ac0c-404dc28b05e5","savedPayload":{"position":{"x":7287.958455489759,"y":16617.21263767734},"targetPosition":{"x":7811.62360135858,"y":16612.267507098382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End 30","project":"Superalgos","id":"e656c0ce-1b57-420e-84f5-cd62a9bb602d","savedPayload":{"position":{"x":7325.760817765749,"y":16416.81560701725},"targetPosition":{"x":7811.62360135858,"y":16612.267507098382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"ac82bb81-5d37-4eea-ab52-0f698de71014"}}},{"type":"Polygon Vertex","name":"Begin 30","project":"Superalgos","id":"8e2ee705-7be7-4705-a32f-242a5c1d286d","savedPayload":{"position":{"x":7455.180112254813,"y":16214.557427450061},"targetPosition":{"x":7811.62360135858,"y":16612.267507098382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"0f0a70c3-9f37-4e58-a93c-fcfcf9686c09"}}}],"id":"18e4afd3-7536-405b-97b6-d36ec7ddc692","savedPayload":{"position":{"x":7811.62360135858,"y":16612.267507098382},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 50","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"68ca10ec-d83d-4f61-b9ee-6a0f3a74cb12","savedPayload":{"position":{"x":7405.089567066894,"y":16302.212928345576},"targetPosition":{"x":7677.872160575054,"y":16331.518179283827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"fefbf0c0-287c-4bb7-81a7-6b745dcfcf3b","savedPayload":{"position":{"x":7677.872160575054,"y":16331.518179283827},"targetPosition":{"x":7933.312597355987,"y":16391.47046498201},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 50","project":"Superalgos","id":"cfa25adf-05eb-49d0-956a-69e4fde9bacf","savedPayload":{"position":{"x":7720.405320033522,"y":16238.03472399152},"targetPosition":{"x":7933.312597355987,"y":16391.47046498201},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 50","id":"a0cdc721-996a-44b2-b619-bbc0ef97cd62"}}},{"type":"Polygon Vertex","name":"End 50","project":"Superalgos","id":"de1447aa-e70f-419b-bab5-d94b333612c7","savedPayload":{"position":{"x":7795.658442970092,"y":16168.05608958238},"targetPosition":{"x":7933.312597355987,"y":16391.47046498201},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 50","id":"59a77a0b-bcee-4c1e-855c-854c3d3bc521"}}}],"id":"bbe48886-b71e-4507-b6e8-7f073b691a6a","savedPayload":{"position":{"x":7933.312597355987,"y":16391.47046498201},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 70","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"913293ac-040f-4348-ade4-5b3103fe1375","savedPayload":{"position":{"x":7404.842559288143,"y":15847.667848539753},"targetPosition":{"x":7638.290430348519,"y":15967.348640662687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8640a48e-f7ca-419c-a687-3f52c3a5afa9","savedPayload":{"position":{"x":7638.290430348519,"y":15967.348640662687},"targetPosition":{"x":8104.349286029883,"y":16206.106265614704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End 70","project":"Superalgos","id":"bc77b107-0a70-4038-86a6-3034ab4e86dd","savedPayload":{"position":{"x":7764.948383030864,"y":15806.86913302687},"targetPosition":{"x":8104.349286029883,"y":16206.106265614704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"4cbfd9aa-d595-4e06-ac82-a87bfdf9f680"}}},{"type":"Polygon Vertex","name":"Begin 70","project":"Superalgos","id":"36882cd2-2ec4-4d2d-af00-98b4c54bf1e7","savedPayload":{"position":{"x":7943.501594841553,"y":15707.783493876559},"targetPosition":{"x":8104.349286029883,"y":16206.106265614704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"228edebc-3b5b-4760-9791-2229cb76a662"}}}],"id":"508b71cf-79d3-4db4-a6d3-0b26226ad5b9","savedPayload":{"position":{"x":8104.349286029883,"y":16206.106265614704},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 80","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"9506c6ad-440b-45a1-aadf-89004f5311fb","savedPayload":{"position":{"x":7817.772544535699,"y":15900.626015530124},"targetPosition":{"x":8066.190821162942,"y":15983.725623994713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"59804538-89e9-485a-a2b1-88ff78eb5661","savedPayload":{"position":{"x":8066.190821162942,"y":15983.725623994713},"targetPosition":{"x":8314.759088143492,"y":16067.095387477268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 80","project":"Superalgos","id":"23df3ac4-6427-4a69-a5a3-8230186b46f3","savedPayload":{"position":{"x":8197.541759948243,"y":15832.310807759082},"targetPosition":{"x":8314.759088143492,"y":16067.095387477268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 80","id":"e7b453a3-5312-48e6-8797-6d96e058766b"}}},{"type":"Polygon Vertex","name":"Eng 80","project":"Superalgos","id":"7a5139be-30b6-4eab-994a-bb8b74be455d","savedPayload":{"position":{"x":8395.35153558732,"y":15819.910162775726},"targetPosition":{"x":8314.759088143492,"y":16067.095387477268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Eng 80","id":"d64e2ceb-abb9-4cc0-b929-211bcbd934a7"}}}],"id":"8499947d-a392-40ed-be9d-225a28429642","savedPayload":{"position":{"x":8314.759088143492,"y":16067.095387477268},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"RSI Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"90fe9ece-e33a-4e2e-904a-779327e7155a","savedPayload":{"position":{"x":8049.468086358571,"y":15386.751607217655},"targetPosition":{"x":8250.95930669296,"y":15554.688337468171},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"(record.previous.value < 20 && record.value < 20) || (record.previous.value > 80 && record.value > 80)","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n}","project":"Superalgos","id":"58f58e7a-3056-49c7-9117-f2a514d4479e","savedPayload":{"position":{"x":8070.339389676807,"y":15062.23854071272},"targetPosition":{"x":8160.744844776244,"y":15308.373137475635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9fcf2614-7ec8-407f-93a2-3c749f6683ef","savedPayload":{"position":{"x":8160.744844776244,"y":15308.373137475635},"targetPosition":{"x":8250.95930669296,"y":15554.688337468171},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6dc77d6e-5aa6-41ab-b247-43c4391fcc96","savedPayload":{"position":{"x":8250.95930669296,"y":15554.688337468171},"targetPosition":{"x":8552.450330399297,"y":15982.598830896633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"RSI Begin","project":"Superalgos","id":"5312ee43-9c15-4d4b-9255-5fb7259c5734","savedPayload":{"position":{"x":8437.706266341083,"y":15471.685524354878},"targetPosition":{"x":8552.450330399297,"y":15982.598830896633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"RSI Begin","id":"7f687c2f-3a91-4b53-b00d-8a651e82c97d"}}},{"type":"Polygon Vertex","name":"RSI End","project":"Superalgos","id":"01981eaa-b1c6-41e1-84b4-2dc8106ac095","savedPayload":{"position":{"x":8641.6067339746,"y":15466.514514759878},"targetPosition":{"x":8552.450330399297,"y":15982.598830896633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"RSI End","id":"f5d97a45-0db5-4d48-bf32-efdd6b2726c0"}}}],"id":"e8eb9949-277b-4493-a9f4-cbcb502aacbc","savedPayload":{"position":{"x":8552.450330399297,"y":15982.598830896633},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 30-70","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.05,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"5b04f4bb-2cc4-48a5-b421-667c96b2dd27","savedPayload":{"position":{"x":8469.50565959404,"y":15751.10333219452},"targetPosition":{"x":8579.620308027937,"y":15821.091576453144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"208ca141-b231-4a70-8b31-eeae09576822","savedPayload":{"position":{"x":8579.620308027937,"y":15821.091576453144},"targetPosition":{"x":8803.459921085156,"y":15957.112271984272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 30","project":"Superalgos","id":"7956c253-3704-46c0-b188-f6662bb58904","savedPayload":{"position":{"x":8677.537395103172,"y":15727.008815406463},"targetPosition":{"x":8803.459921085156,"y":15957.112271984272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"0f0a70c3-9f37-4e58-a93c-fcfcf9686c09"}}},{"type":"Polygon Vertex","name":"End 30","project":"Superalgos","id":"b043ae0f-a172-4ebe-922b-a895b8a888c9","savedPayload":{"position":{"x":8808.975757300414,"y":15694.56308556777},"targetPosition":{"x":8803.459921085156,"y":15957.112271984272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"ac82bb81-5d37-4eea-ab52-0f698de71014"}}},{"type":"Polygon Vertex","name":"End 70","project":"Superalgos","id":"5830f66c-dca5-4f62-8102-d7d8ea588d0d","savedPayload":{"position":{"x":8939.336169221991,"y":15732.432444795015},"targetPosition":{"x":8803.459921085156,"y":15957.112271984272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"4cbfd9aa-d595-4e06-ac82-a87bfdf9f680"}}},{"type":"Polygon Vertex","name":"Begin 70","project":"Superalgos","id":"a8eb0500-2421-4879-9459-2ecdb4ae09d5","savedPayload":{"position":{"x":9033.369294788372,"y":15830.623456333724},"targetPosition":{"x":8803.459921085156,"y":15957.112271984272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"228edebc-3b5b-4760-9791-2229cb76a662"}}}],"id":"b294fd86-15d6-4bc8-9379-0532df288eee","savedPayload":{"position":{"x":8803.459921085156,"y":15957.112271984272},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"bc1170cc-a04b-4453-bd28-0e522f747617","savedPayload":{"position":{"x":8781.975919951139,"y":17002.858173090124},"targetPosition":{"x":9792.406959270818,"y":17274.489042520254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"RSI 14","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"RSI 14","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.value","project":"Superalgos","id":"fbec83cc-a090-491b-8cfb-833d40b2b843","savedPayload":{"position":{"x":9619.475174311261,"y":16619.970914687554},"targetPosition":{"x":9663.981618387988,"y":16789.089042186693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e5fd8d57-8920-417e-8b9b-c1e0d6868a7a","savedPayload":{"position":{"x":9663.981618387988,"y":16789.089042186693},"targetPosition":{"x":9708.506075336682,"y":16958.293141492002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ff06d653-f886-44f4-8b28-82bab51aa98d","savedPayload":{"position":{"x":9708.506075336682,"y":16958.293141492002},"targetPosition":{"x":9792.406959270818,"y":17274.489042520254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"72403d40-2a64-4e51-8eaf-b1a872e4474e","savedPayload":{"position":{"x":10194.036407210227,"y":17662.470452487396},"targetPosition":{"x":10503.5723768561,"y":17972.343528830246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"bbc529df-b938-47b5-8cb7-a5579c859b99","savedPayload":{"position":{"x":10468.475131408602,"y":17937.287369472455},"targetPosition":{"x":10786.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Moving Average Convergence Diveregence (MACD)","config":"{\n\"codeName\": \"Plotter-MACD\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"MACD 122609","config":"{\n\t\"codeName\": \"Module-MACD-122609\",\n \"icon\": \"histogram\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.line","project":"Superalgos","id":"013bf1cc-f8e0-4355-9690-6fb63ca3d103","savedPayload":{"position":{"x":9957.714104929728,"y":17109.742609250963},"targetPosition":{"x":9975.541315025515,"y":17460.555042366927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94440a25-a6c7-4e2d-a254-6479c643ff09","savedPayload":{"position":{"x":9975.541315025515,"y":17460.555042366927},"targetPosition":{"x":9898.508540483832,"y":17758.839933946627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.line","project":"Superalgos","id":"3c8d9416-40db-43cd-a0ae-07a9e0635ef7","savedPayload":{"position":{"x":10497.470705841275,"y":17501.817170057762},"targetPosition":{"x":10157.8657295622,"y":17593.63686169426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b988153-3df8-402b-9c04-7e74699887f7","savedPayload":{"position":{"x":10157.8657295622,"y":17593.63686169426},"targetPosition":{"x":9898.508540483832,"y":17758.839933946627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Signal Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.signal","project":"Superalgos","id":"91037bb8-b0c7-4967-9706-9ead7aaecd8b","savedPayload":{"position":{"x":10500.50523863111,"y":17836.056699398316},"targetPosition":{"x":10183.947745503468,"y":17802.861598416715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"365f7baa-2fd3-48cc-aaff-24844093e7eb","savedPayload":{"position":{"x":10183.947745503468,"y":17802.861598416715},"targetPosition":{"x":9898.508540483832,"y":17758.839933946627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Signal End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.signal","project":"Superalgos","id":"39df31ee-2e46-4a02-a8fb-8629589eb362","savedPayload":{"position":{"x":10340.075207947972,"y":18216.787188748494},"targetPosition":{"x":10119.279623149025,"y":17987.861381576582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4c82a32a-feff-405d-bc3f-036793beee1b","savedPayload":{"position":{"x":10119.279623149025,"y":17987.861381576582},"targetPosition":{"x":9898.508540483832,"y":17758.839933946627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"5522b77c-b212-4da0-b875-ec3ed641d6b9","savedPayload":{"position":{"x":9942.30455765386,"y":18394.048525363196},"targetPosition":{"x":9920.381747427436,"y":18076.11722849859},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c0cd1824-c456-4b8a-ba66-d74f5141f9d1","savedPayload":{"position":{"x":9920.381747427436,"y":18076.11722849859},"targetPosition":{"x":9898.508540483832,"y":17758.839933946627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"0f1eceef-4664-4e5f-9f78-1e16eea87c82","savedPayload":{"position":{"x":9524.023706322045,"y":18273.833424814457},"targetPosition":{"x":9711.23167850373,"y":18016.26802029575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"580f0304-770f-4fe3-aa42-8e8556096b71","savedPayload":{"position":{"x":9711.23167850373,"y":18016.26802029575},"targetPosition":{"x":9898.508540483832,"y":17758.839933946627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = (record.end - record.begin)/2 + record.begin\ny = 0","project":"Superalgos","id":"266e904b-ce67-4b66-9474-4a4b030e055c","savedPayload":{"position":{"x":9280.759500140965,"y":17912.921974261524},"targetPosition":{"x":9589.574385827185,"y":17835.8505677069},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ceed0b7c-ddfd-4395-ba25-d85353ed9b0c","savedPayload":{"position":{"x":9589.574385827185,"y":17835.8505677069},"targetPosition":{"x":9898.508540483832,"y":17758.839933946627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Histogram","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = (record.end - record.begin)/2 + record.begin\ny = record.histogram","project":"Superalgos","id":"82de3468-fabd-41ab-bb34-aa7be6f9a564","savedPayload":{"position":{"x":9326.498325692217,"y":17480.27066291669},"targetPosition":{"x":9612.413671536087,"y":17619.473120252664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"274108bd-33fb-46a0-b744-6500621a56c6","savedPayload":{"position":{"x":9612.413671536087,"y":17619.473120252664},"targetPosition":{"x":9898.508540483832,"y":17758.839933946627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f2b8d463-e10e-4db3-b2b8-ed4d4a980312","savedPayload":{"position":{"x":9898.508540483832,"y":17758.839933946627},"targetPosition":{"x":9640.170792951394,"y":17178.25159998977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line Zero","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"eb2c7353-ba05-45d2-8abf-e605899e2c25","savedPayload":{"position":{"x":8620.938952197408,"y":17898.90843188128},"targetPosition":{"x":8840.012461071921,"y":17668.132542051713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"35816f89-9448-4bd4-89fe-2d6a626c127e","savedPayload":{"position":{"x":8840.012461071921,"y":17668.132542051713},"targetPosition":{"x":9059.00107209985,"y":17437.094535832544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero Begin","project":"Superalgos","id":"53278a2d-78c8-44f4-a450-46dd8a33967c","savedPayload":{"position":{"x":8768.143635318236,"y":17566.658703870846},"targetPosition":{"x":9059.00107209985,"y":17437.094535832544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Begin","id":"c0cd1824-c456-4b8a-ba66-d74f5141f9d1"}}},{"type":"Polygon Vertex","name":"Zero End","project":"Superalgos","id":"8e67d151-e3aa-4831-8bf8-027cfc4caa17","savedPayload":{"position":{"x":8736.368572306976,"y":17473.39954243933},"targetPosition":{"x":9059.00107209985,"y":17437.094535832544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero End","id":"580f0304-770f-4fe3-aa42-8e8556096b71"}}}],"id":"7efecae7-d203-47c5-8526-bb7135cf7581","savedPayload":{"position":{"x":9059.00107209985,"y":17437.094535832544},"targetPosition":{"x":9640.170792951394,"y":17178.25159998977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Histogram","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"87cb111c-9ab9-4708-a631-ea69bbe2ce9b","savedPayload":{"position":{"x":8751.47530923552,"y":17373.348242272194},"targetPosition":{"x":9018.652141188035,"y":17235.413546263702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.histogram < 0","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","project":"Superalgos","id":"2f2bb59f-6665-45c6-ab49-dc5e3c886790","savedPayload":{"position":{"x":8382.185614819497,"y":17251.609282504676},"targetPosition":{"x":8700.342753622339,"y":17243.412099648103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5d880310-15ff-48fa-bdaa-2b5f756078ae","savedPayload":{"position":{"x":8700.342753622339,"y":17243.412099648103},"targetPosition":{"x":9018.652141188035,"y":17235.413546263702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ccbf5840-9d7d-4ff6-9072-2d6643b10017","savedPayload":{"position":{"x":9018.652141188035,"y":17235.413546263702},"targetPosition":{"x":9323.806673165946,"y":17145.09704284161},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero","project":"Superalgos","id":"6791722d-5183-48b7-b905-8c1604acae96","savedPayload":{"position":{"x":9007.17883998798,"y":17111.82530003933},"targetPosition":{"x":9323.806673165946,"y":17145.09704284161},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero","id":"ceed0b7c-ddfd-4395-ba25-d85353ed9b0c"}}},{"type":"Polygon Vertex","name":"Histogram","project":"Superalgos","id":"0ceaf5d8-b8c7-4d39-a8b3-fd58e402cf37","savedPayload":{"position":{"x":9044.076794942685,"y":16993.193542762263},"targetPosition":{"x":9323.806673165946,"y":17145.09704284161},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Histogram","id":"274108bd-33fb-46a0-b744-6500621a56c6"}}}],"id":"e0c98602-420c-4f55-bad0-e27649a79e25","savedPayload":{"position":{"x":9323.806673165946,"y":17145.09704284161},"targetPosition":{"x":9640.170792951394,"y":17178.25159998977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b027e8fb-cfc7-4658-89dd-28be20660c11","savedPayload":{"position":{"x":8506.358542621016,"y":16655.769728077197},"targetPosition":{"x":8815.797219256776,"y":16730.06762282395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"29f3ad41-e970-4817-8285-732bb172e30f","savedPayload":{"position":{"x":8815.797219256776,"y":16730.06762282395},"targetPosition":{"x":9125.416412732659,"y":16804.230426668102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Line End","project":"Superalgos","id":"6819d608-167a-4d7f-a636-cd4f5a01969a","savedPayload":{"position":{"x":8867.820469825328,"y":16617.066574746354},"targetPosition":{"x":9125.416412732659,"y":16804.230426668102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Line End","id":"0b988153-3df8-402b-9c04-7e74699887f7"}}},{"type":"Polygon Vertex","name":"Line Begin","project":"Superalgos","id":"6d212921-f546-4874-a1ca-655ac05d6587","savedPayload":{"position":{"x":8959.092847209286,"y":16532.7593341009},"targetPosition":{"x":9125.416412732659,"y":16804.230426668102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Line Begin","id":"94440a25-a6c7-4e2d-a254-6479c643ff09"}}}],"id":"c5b15661-b8ab-46b6-bd98-9c2b74ebf550","savedPayload":{"position":{"x":9125.416412732659,"y":16804.230426668102},"targetPosition":{"x":9640.170792951394,"y":17178.25159998977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Signal","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"016d7265-d869-4534-8669-f6182a573d85","savedPayload":{"position":{"x":9049.485539606074,"y":16448.988823312848},"targetPosition":{"x":9280.125850362427,"y":16668.381706119504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"257492c0-dffd-4e78-854d-90bbf6423652","savedPayload":{"position":{"x":9280.125850362427,"y":16668.381706119504},"targetPosition":{"x":9510.945552945446,"y":16887.52402908186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Signal End","project":"Superalgos","id":"7c9842d1-9d91-49d2-bdd2-2b443b94a237","savedPayload":{"position":{"x":9381.584894248517,"y":16596.662295718183},"targetPosition":{"x":9510.945552945446,"y":16887.52402908186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Signal End","id":"4c82a32a-feff-405d-bc3f-036793beee1b"}}},{"type":"Polygon Vertex","name":"Signal Begin","project":"Superalgos","id":"5f1617a3-28fe-4fbc-9e92-c466c30141a1","savedPayload":{"position":{"x":9502.913138836804,"y":16569.312143774365},"targetPosition":{"x":9510.945552945446,"y":16887.52402908186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Signal Begin","id":"365f7baa-2fd3-48cc-aaff-24844093e7eb"}}}],"id":"a783436f-fdf6-42e1-8394-633220627cf6","savedPayload":{"position":{"x":9510.945552945446,"y":16887.52402908186},"targetPosition":{"x":9640.170792951394,"y":17178.25159998977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"4c2df818-f24d-4458-84d5-eb5e50c413e5","savedPayload":{"position":{"x":9640.170792951394,"y":17178.25159998977},"targetPosition":{"x":10272.054812434122,"y":17244.639863223692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"MACD 122609","config":"{ \n\"codeName\": \"Panel-MACD-122609\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Line","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.line","project":"Superalgos","id":"52edc6fd-3d02-4f47-ad41-f2937d00ff3d","savedPayload":{"position":{"x":9420.185279012396,"y":16435.19007931649},"targetPosition":{"x":9717.083650699427,"y":16549.7123157449},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a39ffdbe-3b95-48b9-b8b6-a760f44def62","savedPayload":{"position":{"x":9717.083650699427,"y":16549.7123157449},"targetPosition":{"x":10013.822761864623,"y":16663.937402125444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Signal","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.signal","project":"Superalgos","id":"f8089efa-fde3-41df-b096-1a00df3581ae","savedPayload":{"position":{"x":9755.325468031235,"y":16082.326724034428},"targetPosition":{"x":9884.602407883849,"y":16373.115022257469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fadd439a-0ae7-473c-940c-4e0119bfa325","savedPayload":{"position":{"x":9884.602407883849,"y":16373.115022257469},"targetPosition":{"x":10013.822761864623,"y":16663.937402125444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Histogram","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.histogram","project":"Superalgos","id":"1bfbffeb-bd62-4f0e-bf46-a69d97a19af7","savedPayload":{"position":{"x":10241.865048158917,"y":16069.71256943548},"targetPosition":{"x":10127.882252185766,"y":16366.810514825127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9b0b1888-dbfb-4ec1-ae2e-3cfa9fbd51fe","savedPayload":{"position":{"x":10127.882252185766,"y":16366.810514825127},"targetPosition":{"x":10013.822761864623,"y":16663.937402125444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20625002-d334-440f-a473-88140625598f","savedPayload":{"position":{"x":10013.822761864623,"y":16663.937402125444},"targetPosition":{"x":10272.054812434122,"y":17244.639863223692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fb08cb11-7983-4106-8b03-edf70baad4a0","savedPayload":{"position":{"x":10422.615535473822,"y":17540.982057474786},"targetPosition":{"x":10786.673182942548,"y":17805.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"MACD 031016","config":"{\n\t\"codeName\": \"Module-MACD-031016\",\n \"icon\": \"histogram\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.line","project":"Superalgos","id":"b5d7cbce-d6e7-401c-b79e-121856736ff4","savedPayload":{"position":{"x":10417.710415038699,"y":16716.67975487464},"targetPosition":{"x":10225.347199637825,"y":17013.803424783433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1f9c9003-b080-49e5-8ab7-2b5b17086596","savedPayload":{"position":{"x":10225.347199637825,"y":17013.803424783433},"targetPosition":{"x":9985.87423622629,"y":17209.880842832965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.line","project":"Superalgos","id":"032146dc-0480-4dbe-a91e-ad8067da7659","savedPayload":{"position":{"x":10639.71447070195,"y":17348.27880787056},"targetPosition":{"x":10304.365184709688,"y":17218.609846433494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aecccad2-09c2-483f-ad7e-b58d463ecc31","savedPayload":{"position":{"x":10304.365184709688,"y":17218.609846433494},"targetPosition":{"x":9985.87423622629,"y":17209.880842832965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Signal Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.signal","project":"Superalgos","id":"8016a3c1-2c79-4449-8075-3be7d559e628","savedPayload":{"position":{"x":10458.36626757642,"y":17635.751388169563},"targetPosition":{"x":10222.060234036278,"y":17423.05421569705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"10c05c23-c90c-45df-8aba-a2828c90f7e1","savedPayload":{"position":{"x":10222.060234036278,"y":17423.05421569705},"targetPosition":{"x":9985.87423622629,"y":17209.880842832965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Signal End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.signal","project":"Superalgos","id":"4e570054-6ad8-4894-994f-33008806def2","savedPayload":{"position":{"x":10073.508896052517,"y":17840.13688806208},"targetPosition":{"x":10029.726550772019,"y":17525.029844713063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f3abb57c-7d3c-4803-9939-cf0bd64964d2","savedPayload":{"position":{"x":10029.726550772019,"y":17525.029844713063},"targetPosition":{"x":9985.87423622629,"y":17209.880842832965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"17fa15b8-c752-45e7-9ab0-91ceab45e38f","savedPayload":{"position":{"x":9648.160071689454,"y":17749.584159421905},"targetPosition":{"x":9816.991162191007,"y":17479.772916334117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"adbe6c72-d20f-4e31-a636-2efde1ffb8fe","savedPayload":{"position":{"x":9816.991162191007,"y":17479.772916334117},"targetPosition":{"x":9985.87423622629,"y":17209.880842832965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"11f10b6a-4de7-4c2e-8b08-ff25a0f391fe","savedPayload":{"position":{"x":9380.199887207003,"y":17406.489865024014},"targetPosition":{"x":9682.979941950569,"y":17308.20104167734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ba91f45f-78ef-4776-b0db-76626b4ab6a9","savedPayload":{"position":{"x":9682.979941950569,"y":17308.20104167734},"targetPosition":{"x":9985.87423622629,"y":17209.880842832965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero Middle","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = (record.end - record.begin)/2 + record.begin\ny = 0","project":"Superalgos","id":"d6c3344a-031a-4abe-a954-84fb5f3a348a","savedPayload":{"position":{"x":9395.42365148085,"y":16971.662390059668},"targetPosition":{"x":9690.60105023297,"y":17090.74389652627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7910022b-7f2a-42c1-a8bb-a7dbfd7173fb","savedPayload":{"position":{"x":9690.60105023297,"y":17090.74389652627},"targetPosition":{"x":9985.87423622629,"y":17209.880842832965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Histogram","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = (record.end - record.begin)/2 + record.begin\ny = record.histogram","project":"Superalgos","id":"9feab5b3-5a73-456b-a177-6a5cbbd1a542","savedPayload":{"position":{"x":9686.879465268008,"y":16648.347499758976},"targetPosition":{"x":9836.356512433591,"y":16928.997744876036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aa1b0de1-8ca0-414f-915b-b03fd6322cb7","savedPayload":{"position":{"x":9836.356512433591,"y":16928.997744876036},"targetPosition":{"x":9985.87423622629,"y":17209.880842832965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"95bb8ee2-447e-465c-aa18-fdf3cd1d9fe7","savedPayload":{"position":{"x":9985.87423622629,"y":17209.880842832965},"targetPosition":{"x":10118.26273015251,"y":16588.4171681783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line Zero","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"d3aedc59-15d6-43d5-9edb-41b17ba0b9a7","savedPayload":{"position":{"x":8869.927505770804,"y":16572.327680528164},"targetPosition":{"x":9182.86008603722,"y":16514.466597914186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c9204ab8-9aa4-461f-bfef-f16e80dfcfde","savedPayload":{"position":{"x":9182.86008603722,"y":16514.466597914186},"targetPosition":{"x":9495.883130769962,"y":16456.344143888822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero Begin","project":"Superalgos","id":"a26ab460-419c-4c64-94b3-f344d333e427","savedPayload":{"position":{"x":9184.36354357393,"y":16390.32779459711},"targetPosition":{"x":9495.883130769962,"y":16456.344143888822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Begin","id":"adbe6c72-d20f-4e31-a636-2efde1ffb8fe"}}},{"type":"Polygon Vertex","name":"Zero End","project":"Superalgos","id":"8bcffc78-e71a-4a5b-b874-98335342557a","savedPayload":{"position":{"x":9213.564317390254,"y":16296.157401963152},"targetPosition":{"x":9495.883130769962,"y":16456.344143888822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero End","id":"ba91f45f-78ef-4776-b0db-76626b4ab6a9"}}}],"id":"b8ddf2bf-44ec-455e-b9e0-3aea2fe4c03b","savedPayload":{"position":{"x":9495.883130769962,"y":16456.344143888822},"targetPosition":{"x":10118.26273015251,"y":16588.4171681783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Histogram","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"8387bbc3-546c-45d6-9bd3-efe1abdd3511","savedPayload":{"position":{"x":9284.456648232117,"y":16224.137308115842},"targetPosition":{"x":9581.834066362353,"y":16269.417491714903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.histogram < 0","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","project":"Superalgos","id":"8b8ca847-0ee9-4a50-93d8-219afad9d2bb","savedPayload":{"position":{"x":9057.284673912669,"y":15908.65543015465},"targetPosition":{"x":9319.554516645163,"y":16088.909892608695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"18c65f10-ca47-46aa-a74d-50ed3a7b3c21","savedPayload":{"position":{"x":9319.554516645163,"y":16088.909892608695},"targetPosition":{"x":9581.834066362353,"y":16269.417491714903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"836ad43b-dbbe-4145-b584-f06f92971981","savedPayload":{"position":{"x":9581.834066362353,"y":16269.417491714903},"targetPosition":{"x":9881.858696088591,"y":16375.596112050029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero Middle","project":"Superalgos","id":"d41ccd8f-9abd-4701-a00d-a0582cf90328","savedPayload":{"position":{"x":9645.314980681116,"y":16162.532037463661},"targetPosition":{"x":9881.858696088591,"y":16375.596112050029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Middle","id":"7910022b-7f2a-42c1-a8bb-a7dbfd7173fb"}}},{"type":"Polygon Vertex","name":"Histogram","project":"Superalgos","id":"5d816817-9b56-41c0-8e3d-9ee2c13d4a2d","savedPayload":{"position":{"x":9744.895984265833,"y":16088.242980353978},"targetPosition":{"x":9881.858696088591,"y":16375.596112050029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Histogram","id":"aa1b0de1-8ca0-414f-915b-b03fd6322cb7"}}}],"id":"34dac9ae-bbb4-4c68-9462-986a7102e87e","savedPayload":{"position":{"x":9881.858696088591,"y":16375.596112050029},"targetPosition":{"x":10118.26273015251,"y":16588.4171681783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"8c239919-8420-451f-8d50-282b389d47cd","savedPayload":{"position":{"x":9508.272529107755,"y":15499.143943380177},"targetPosition":{"x":9714.883793462188,"y":15741.178918331394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6c3dfcca-7012-4442-91be-64a8215832d5","savedPayload":{"position":{"x":9714.883793462188,"y":15741.178918331394},"targetPosition":{"x":9921.717885270962,"y":15983.213581580483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Line End","project":"Superalgos","id":"340835c7-b097-4be7-a0f5-76958ceb2e46","savedPayload":{"position":{"x":9823.389033548716,"y":15680.340833053628},"targetPosition":{"x":9921.717885270962,"y":15983.213581580483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Line End","id":"aecccad2-09c2-483f-ad7e-b58d463ecc31"}}},{"type":"Polygon Vertex","name":"Line Begin","project":"Superalgos","id":"c14a8ccb-9184-4483-a0c7-73d2259fa7eb","savedPayload":{"position":{"x":9946.580323056962,"y":15665.783084855913},"targetPosition":{"x":9921.717885270962,"y":15983.213581580483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Line Begin","id":"1f9c9003-b080-49e5-8ab7-2b5b17086596"}}}],"id":"bfe93326-71d6-47d7-a34f-221c188a22a9","savedPayload":{"position":{"x":9921.717885270962,"y":15983.213581580483},"targetPosition":{"x":10118.26273015251,"y":16588.4171681783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Signal","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"3536f467-d468-4b5b-974d-6835b3932a5c","savedPayload":{"position":{"x":10069.009593902487,"y":15651.093524705946},"targetPosition":{"x":10126.58204888166,"y":15964.197157945153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2b5adcee-bef1-4a94-b045-8c52317c89f7","savedPayload":{"position":{"x":10126.58204888166,"y":15964.197157945153},"targetPosition":{"x":10184.455293128394,"y":16277.206111168514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Signal End","project":"Superalgos","id":"c7c53102-0db0-44d5-935f-b4609ce0ad1a","savedPayload":{"position":{"x":10250.622088218766,"y":15965.814010155726},"targetPosition":{"x":10184.455293128394,"y":16277.206111168514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Signal End","id":"f3abb57c-7d3c-4803-9939-cf0bd64964d2"}}},{"type":"Polygon Vertex","name":"Signal Begin","project":"Superalgos","id":"f6b5228a-83bf-42ee-b652-b7b71674e710","savedPayload":{"position":{"x":10364.854011009444,"y":16015.001176718772},"targetPosition":{"x":10184.455293128394,"y":16277.206111168514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Signal Begin","id":"10c05c23-c90c-45df-8aba-a2828c90f7e1"}}}],"id":"004e01d2-9a9b-4cec-935d-fd5427397838","savedPayload":{"position":{"x":10184.455293128394,"y":16277.206111168514},"targetPosition":{"x":10118.26273015251,"y":16588.4171681783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"cff04172-4157-400a-ba23-98428f3f8505","savedPayload":{"position":{"x":10118.26273015251,"y":16588.4171681783},"targetPosition":{"x":10590.396862870522,"y":17013.587981503046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"MACD 031016","config":"{ \n\"codeName\": \"Panel-MACD-031016\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Line","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.line","project":"Superalgos","id":"30e7b23c-7d15-4eb2-971b-442ef569578d","savedPayload":{"position":{"x":10376.995356607316,"y":15857.864844503649},"targetPosition":{"x":10549.814761147623,"y":16125.074891032273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fc80e234-9a51-434b-9a75-776ac31fb892","savedPayload":{"position":{"x":10549.814761147623,"y":16125.074891032273},"targetPosition":{"x":10722.679178935265,"y":16391.95401359322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Signal","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.signal","project":"Superalgos","id":"e4b2dfeb-834f-4daf-8c65-5f10885d4dfa","savedPayload":{"position":{"x":10855.138739824917,"y":15769.37915228869},"targetPosition":{"x":10788.942651854934,"y":16080.668310625391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fe1b0c2a-0a40-42b7-a275-dfe9d14f0a7c","savedPayload":{"position":{"x":10788.942651854934,"y":16080.668310625391},"targetPosition":{"x":10722.679178935265,"y":16391.95401359322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Histogram","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.histogram","project":"Superalgos","id":"3698be44-3c02-481a-94fa-d3b759c3fd16","savedPayload":{"position":{"x":11256.49457419772,"y":16045.38553950921},"targetPosition":{"x":10989.627064560358,"y":16218.679963849212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"251d6cd3-674e-4269-86ac-4ef977924055","savedPayload":{"position":{"x":10989.627064560358,"y":16218.679963849212},"targetPosition":{"x":10722.679178935265,"y":16391.95401359322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d05c86b5-c035-4dde-967b-fd9ec3f33d8d","savedPayload":{"position":{"x":10722.679178935265,"y":16391.95401359322},"targetPosition":{"x":10590.396862870522,"y":17013.587981503046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"03816d0f-361f-4c6c-8f85-0bf2dfff1c21","savedPayload":{"position":{"x":10647.615535473822,"y":17377.50998867358},"targetPosition":{"x":10786.673182942548,"y":17805.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"MACD 081709","config":"{\n\t\"codeName\": \"Module-MACD-081709\",\n \"icon\": \"histogram\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.line","project":"Superalgos","id":"9a6467e7-6106-454b-b7ef-e7d3ef9bf6ff","savedPayload":{"position":{"x":10961.806000148903,"y":16623.36891426989},"targetPosition":{"x":10651.163693714614,"y":16772.536990534758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6d3d1eb7-854c-48c1-9f53-9a81d3d40d6a","savedPayload":{"position":{"x":10651.163693714614,"y":16772.536990534758},"targetPosition":{"x":10379.037326309466,"y":16817.086630812868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.line","project":"Superalgos","id":"0820faf8-ca0c-4188-9af8-ebd57e41dfa3","savedPayload":{"position":{"x":10746.790045660477,"y":17323.30996581473},"targetPosition":{"x":10584.884493914462,"y":17012.17008458705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"075592ad-acd5-4389-ac67-5cc0cb03b92a","savedPayload":{"position":{"x":10584.884493914462,"y":17012.17008458705},"targetPosition":{"x":10379.037326309466,"y":16817.086630812868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Signal Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.signal","project":"Superalgos","id":"eba62e43-3d37-46e0-aa8e-19f394d28745","savedPayload":{"position":{"x":10510.733391520534,"y":17439.481261390105},"targetPosition":{"x":10444.830218209408,"y":17128.381327580235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96975ec0-b8cd-41d9-90b1-4b3a7acdb4c2","savedPayload":{"position":{"x":10444.830218209408,"y":17128.381327580235},"targetPosition":{"x":10379.037326309466,"y":16817.086630812868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Signal End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.signal","project":"Superalgos","id":"48465d15-62ec-4961-9b7c-b0f90cb6b661","savedPayload":{"position":{"x":10079.463085824464,"y":17378.403549108403},"targetPosition":{"x":10229.236053801815,"y":17097.48922084501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d6442860-3c2e-43f4-97b2-d4dfff64c72f","savedPayload":{"position":{"x":10229.236053801815,"y":17097.48922084501},"targetPosition":{"x":10379.037326309466,"y":16817.086630812868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"c83ddb1a-8e52-4163-b80e-3868cf6529a0","savedPayload":{"position":{"x":9788.484268842178,"y":17055.144142745557},"targetPosition":{"x":10083.692464289124,"y":16936.087963302227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2ae7ce7b-794a-454e-8260-1868d6b2909e","savedPayload":{"position":{"x":10083.692464289124,"y":16936.087963302227},"targetPosition":{"x":10379.037326309466,"y":16817.086630812868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"7e353304-2d0b-4718-8cfa-cc6a925ad6a5","savedPayload":{"position":{"x":9773.394033619148,"y":16620.431705514115},"targetPosition":{"x":10076.152886092517,"y":16718.72484064233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6fc15982-383b-4a39-8c6e-5acbf13ac87c","savedPayload":{"position":{"x":10076.152886092517,"y":16718.72484064233},"targetPosition":{"x":10379.037326309466,"y":16817.086630812868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = (record.end - record.begin)/2 + record.begin\ny = 0","project":"Superalgos","id":"06a7bc4a-17b4-4aef-bfa0-c949e5c53484","savedPayload":{"position":{"x":10041.440174410502,"y":16277.391555180806},"targetPosition":{"x":10210.224564864635,"y":16547.17544117167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"00562b76-47c9-49fd-b8f2-902f22484df5","savedPayload":{"position":{"x":10210.224564864635,"y":16547.17544117167},"targetPosition":{"x":10379.037326309466,"y":16817.086630812868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Histogram","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = (record.end - record.begin)/2 + record.begin\ny = record.histogram","project":"Superalgos","id":"65c9be94-3e68-4aba-9b52-e7b8848064ea","savedPayload":{"position":{"x":10466.933988332941,"y":16187.094001424255},"targetPosition":{"x":10423.047302716346,"y":16501.968859737834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f4fe4dc0-d4ab-4812-bd09-96953df3813a","savedPayload":{"position":{"x":10423.047302716346,"y":16501.968859737834},"targetPosition":{"x":10379.037326309466,"y":16817.086630812868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"247d8d0e-3330-4aa0-9e5e-0f3823bd7258","savedPayload":{"position":{"x":10379.037326309466,"y":16817.086630812868},"targetPosition":{"x":10851.522603571259,"y":16392.23568677424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line Zero","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"a75405f5-da8a-487f-871c-6e2b7e800c42","savedPayload":{"position":{"x":9851.030618638622,"y":15645.694690497825},"targetPosition":{"x":10138.250449516312,"y":15782.687925730146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2bb22bfc-5bc6-46bd-b780-4269bd800d69","savedPayload":{"position":{"x":10138.250449516312,"y":15782.687925730146},"targetPosition":{"x":10425.700558142646,"y":15919.523623765079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero Begin","project":"Superalgos","id":"0ead2c7c-b1e2-4297-86c4-f1515df7f077","savedPayload":{"position":{"x":10212.551740702656,"y":15682.98043443546},"targetPosition":{"x":10425.700558142646,"y":15919.523623765079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Begin","id":"2ae7ce7b-794a-454e-8260-1868d6b2909e"}}},{"type":"Polygon Vertex","name":"Zero End","project":"Superalgos","id":"5da8d9fb-ca1e-429e-87e9-605b2493e037","savedPayload":{"position":{"x":10291.531524799615,"y":15623.950379816619},"targetPosition":{"x":10425.700558142646,"y":15919.523623765079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero End","id":"6fc15982-383b-4a39-8c6e-5acbf13ac87c"}}}],"id":"19fac3f2-d743-4b88-b051-294f37589fe5","savedPayload":{"position":{"x":10425.700558142646,"y":15919.523623765079},"targetPosition":{"x":10851.522603571259,"y":16392.23568677424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Histogram","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"6383ddc1-5bd7-4cd2-83ce-b7ffe7dbabff","savedPayload":{"position":{"x":10391.288088624562,"y":15607.338607491583},"targetPosition":{"x":10605.181245031465,"y":15818.787424464497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.histogram < 0","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","project":"Superalgos","id":"6ce4860c-7dc9-4fa0-9ac1-e768b669141b","savedPayload":{"position":{"x":10393.016200261703,"y":15218.53997238088},"targetPosition":{"x":10499.167622204339,"y":15518.559533154277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"038a1be4-9af1-4942-a4db-258ccdbce08c","savedPayload":{"position":{"x":10499.167622204339,"y":15518.559533154277},"targetPosition":{"x":10605.181245031465,"y":15818.787424464497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7fc825fc-7db0-47dc-bbdb-14d269d1fcb4","savedPayload":{"position":{"x":10605.181245031465,"y":15818.787424464497},"targetPosition":{"x":10785.424737929636,"y":16081.069269418978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero","project":"Superalgos","id":"d48a6d8f-eab0-49f1-9b7f-1fc503cd1df9","savedPayload":{"position":{"x":10719.367272258598,"y":15769.630900073573},"targetPosition":{"x":10785.424737929636,"y":16081.069269418978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero","id":"00562b76-47c9-49fd-b8f2-902f22484df5"}}},{"type":"Polygon Vertex","name":"Histogram","project":"Superalgos","id":"6892eda6-1689-49a2-8145-9ffd38d4bc3d","savedPayload":{"position":{"x":10843.398098844482,"y":15768.06220805717},"targetPosition":{"x":10785.424737929636,"y":16081.069269418978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Histogram","id":"f4fe4dc0-d4ab-4812-bd09-96953df3813a"}}}],"id":"68162ec3-a643-4567-818b-83362fc9e843","savedPayload":{"position":{"x":10785.424737929636,"y":16081.069269418978},"targetPosition":{"x":10851.522603571259,"y":16392.23568677424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b93e8f5b-41db-44e6-8d00-b1aac544377a","savedPayload":{"position":{"x":10998.307829784379,"y":15152.354032654483},"targetPosition":{"x":11023.118910181049,"y":15469.63955880657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"541af95f-c876-4ba2-aaef-56e43a140ffd","savedPayload":{"position":{"x":11023.118910181049,"y":15469.63955880657},"targetPosition":{"x":11048.112794692297,"y":15787.054584289517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Line End","project":"Superalgos","id":"a2c0de4e-cf82-4b65-a591-a364e6c3f9e8","savedPayload":{"position":{"x":11146.464020205982,"y":15484.200459675476},"targetPosition":{"x":11048.112794692297,"y":15787.054584289517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Line End","id":"075592ad-acd5-4389-ac67-5cc0cb03b92a"}}},{"type":"Polygon Vertex","name":"Line Begin","project":"Superalgos","id":"1c1fd64b-34ee-447c-b0d3-76ca645588c6","savedPayload":{"position":{"x":11254.845466355506,"y":15544.951439620347},"targetPosition":{"x":11048.112794692297,"y":15787.054584289517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Line Begin","id":"6d3d1eb7-854c-48c1-9f53-9a81d3d40d6a"}}}],"id":"9e96b118-c85c-4707-8063-a2651ae44740","savedPayload":{"position":{"x":11048.112794692297,"y":15787.054584289517},"targetPosition":{"x":10851.522603571259,"y":16392.23568677424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Signal","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"c1d9c98e-657c-4895-a557-bd2074056db5","savedPayload":{"position":{"x":11362.42209198275,"y":15605.008847220346},"targetPosition":{"x":11225.082909629502,"y":15892.17973030646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"64c671b3-60a7-4fc0-b7ba-a597fce77d38","savedPayload":{"position":{"x":11225.082909629502,"y":15892.17973030646},"targetPosition":{"x":11088.036376014741,"y":16179.449870746495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Signal End","project":"Superalgos","id":"faff0d49-252e-45e3-a42d-fa041b77dd34","savedPayload":{"position":{"x":11324.661809150988,"y":15966.516648798628},"targetPosition":{"x":11088.036376014741,"y":16179.449870746495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Signal End","id":"d6442860-3c2e-43f4-97b2-d4dfff64c72f"}}},{"type":"Polygon Vertex","name":"Signal Begin","project":"Superalgos","id":"0469d29c-4fd7-4ab3-a5fc-433cd33e82c8","savedPayload":{"position":{"x":11388.166582967486,"y":16073.448957209835},"targetPosition":{"x":11088.036376014741,"y":16179.449870746495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Signal Begin","id":"96975ec0-b8cd-41d9-90b1-4b3a7acdb4c2"}}}],"id":"d3737a2f-c760-4373-a2ed-bc3c321a87b6","savedPayload":{"position":{"x":11088.036376014741,"y":16179.449870746495},"targetPosition":{"x":10851.522603571259,"y":16392.23568677424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"e89f491f-20db-434b-810f-6c93c0096d3f","savedPayload":{"position":{"x":10851.522603571259,"y":16392.23568677424},"targetPosition":{"x":10983.525315335319,"y":17013.773622323035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"MACD 081709","config":"{ \n\"codeName\": \"Panel-MACD-081709\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Line","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.line","project":"Superalgos","id":"10eb7ea2-b8dd-4ddd-b200-71d0ecea3c6e","savedPayload":{"position":{"x":11489.955953609857,"y":15953.227693199737},"targetPosition":{"x":11472.840130549292,"y":16271.038514026633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1e07f765-13e9-49f2-8f76-90cb6e4466af","savedPayload":{"position":{"x":11472.840130549292,"y":16271.038514026633},"targetPosition":{"x":11455.960091456545,"y":16588.53830386705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Signal","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.signal","project":"Superalgos","id":"f2dcbee4-39a8-42aa-8fdd-8e4c3addb6d2","savedPayload":{"position":{"x":11929.015147279933,"y":16162.951797813621},"targetPosition":{"x":11692.465205281853,"y":16375.816402202843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"95d59325-db92-413c-a74a-5a12fea61b82","savedPayload":{"position":{"x":11692.465205281853,"y":16375.816402202843},"targetPosition":{"x":11455.960091456545,"y":16588.53830386705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Histogram","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.histogram","project":"Superalgos","id":"387de792-7d66-46a8-b11d-a96403f09dfe","savedPayload":{"position":{"x":12091.635523631438,"y":16621.661475079938},"targetPosition":{"x":11773.841885808622,"y":16605.143108986827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9d00b3d7-779a-452f-b800-6d2949df7a03","savedPayload":{"position":{"x":11773.841885808622,"y":16605.143108986827},"targetPosition":{"x":11455.960091456545,"y":16588.53830386705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a858c3e2-ad02-4ee4-aea3-fd60ab8fe9d7","savedPayload":{"position":{"x":11455.960091456545,"y":16588.53830386705},"targetPosition":{"x":10983.525315335319,"y":17013.773622323035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"43695164-d8aa-40d8-bbf4-ee8cbbdec3f0","savedPayload":{"position":{"x":10925.730830411274,"y":17377.50998867358},"targetPosition":{"x":10786.673182942548,"y":17805.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"MACD 245209","config":"{\n\t\"codeName\": \"Module-MACD-245209\",\n \"icon\": \"histogram\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.line","project":"Superalgos","id":"48f415e0-0abb-4867-a7d7-454bc5450e6b","savedPayload":{"position":{"x":11527.566202051075,"y":16988.257361443488},"targetPosition":{"x":11187.97659116958,"y":16896.26015941122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"36adae0b-9c21-40b9-abfb-e511d72f2b5d","savedPayload":{"position":{"x":11187.97659116958,"y":16896.26015941122},"targetPosition":{"x":10928.052016349226,"y":16731.06557102472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.line","project":"Superalgos","id":"1e3e4460-9762-470f-9cbc-0efd86f722da","savedPayload":{"position":{"x":10995.60039436715,"y":17394.485473159744},"targetPosition":{"x":11016.127647747471,"y":17036.08405056848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6f0173db-8cbd-4530-a30d-ebe66906c578","savedPayload":{"position":{"x":11016.127647747471,"y":17036.08405056848},"targetPosition":{"x":10928.052016349226,"y":16731.06557102472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Signal Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.signal","project":"Superalgos","id":"8f397084-7cae-4586-b410-c5970593562e","savedPayload":{"position":{"x":10668.863692403414,"y":17311.950649193543},"targetPosition":{"x":10798.348073555717,"y":17021.577072075786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0cc9c494-c307-4bfe-9baf-8ed796fb602d","savedPayload":{"position":{"x":10798.348073555717,"y":17021.577072075786},"targetPosition":{"x":10928.052016349226,"y":16731.06557102472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Signal End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.signal","project":"Superalgos","id":"dd38ae56-a770-4332-899e-6f8239fa815b","savedPayload":{"position":{"x":10355.557251055172,"y":17008.63499924957},"targetPosition":{"x":10641.908135836231,"y":16869.670694744756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cd80c183-d19f-48a6-b7fc-a69b1b794b2a","savedPayload":{"position":{"x":10641.908135836231,"y":16869.670694744756},"targetPosition":{"x":10928.052016349226,"y":16731.06557102472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"4939828f-043d-4764-be8b-eafcd061b524","savedPayload":{"position":{"x":10310.130373733806,"y":16576.49449741801},"targetPosition":{"x":10619.059781347718,"y":16653.690428674858},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"957cc3a3-ac48-4a0e-b7b3-b0ad7f529cf4","savedPayload":{"position":{"x":10619.059781347718,"y":16653.690428674858},"targetPosition":{"x":10928.052016349226,"y":16731.06557102472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"eb1dcee7-230c-4970-9326-0359d3e67857","savedPayload":{"position":{"x":10553.716258093187,"y":16215.77268773086},"targetPosition":{"x":10740.85036267681,"y":16473.327308687745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"749f8342-4448-48d8-b663-9840ad6295c2","savedPayload":{"position":{"x":10740.85036267681,"y":16473.327308687745},"targetPosition":{"x":10928.052016349226,"y":16731.06557102472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = (record.end - record.begin)/2 + record.begin\ny = 0","project":"Superalgos","id":"7de51d6d-a086-4c6f-b801-5f13b37c9feb","savedPayload":{"position":{"x":10971.786274958671,"y":16095.833866146975},"targetPosition":{"x":10949.94595157287,"y":16413.364089487826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2d60df1-8bd2-4371-9ce1-60a328cc80d3","savedPayload":{"position":{"x":10949.94595157287,"y":16413.364089487826},"targetPosition":{"x":10928.052016349226,"y":16731.06557102472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Histogram","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = (record.end - record.begin)/2 + record.begin\ny = record.histogram","project":"Superalgos","id":"b8f5d987-aa7a-415e-ac1e-e36a3afa7db1","savedPayload":{"position":{"x":11369.340204801716,"y":16273.125550099026},"targetPosition":{"x":11148.843177943294,"y":16502.009695748566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4292d954-54aa-45e3-acb4-a52622471108","savedPayload":{"position":{"x":11148.843177943294,"y":16502.009695748566},"targetPosition":{"x":10928.052016349226,"y":16731.06557102472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fd10b89d-abb6-4a47-b82b-1efc5196c46b","savedPayload":{"position":{"x":10928.052016349226,"y":16731.06557102472},"targetPosition":{"x":11559.796772737882,"y":16665.21408201984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line Zero","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"c93101ad-3f34-469d-8141-6bbb810cf79c","savedPayload":{"position":{"x":11189.316923785245,"y":15473.180487504036},"targetPosition":{"x":11341.058552222428,"y":15752.87793679334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c4c38f4b-d3a5-4a1c-8862-ebd87269fe24","savedPayload":{"position":{"x":11341.058552222428,"y":15752.87793679334},"targetPosition":{"x":11493.189257387989,"y":16032.579523066255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero Begin","project":"Superalgos","id":"0c3f9cb5-0866-4694-97e4-c195f216059e","savedPayload":{"position":{"x":11459.823198293445,"y":15715.81629169433},"targetPosition":{"x":11493.189257387989,"y":16032.579523066255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Begin","id":"957cc3a3-ac48-4a0e-b7b3-b0ad7f529cf4"}}},{"type":"Polygon Vertex","name":"Zero End","project":"Superalgos","id":"a6fba16b-f5a7-4c45-8348-28bb07430bad","savedPayload":{"position":{"x":11558.224025742591,"y":15714.374426658893},"targetPosition":{"x":11493.189257387989,"y":16032.579523066255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero End","id":"749f8342-4448-48d8-b663-9840ad6295c2"}}}],"id":"579cce76-9e03-43a3-b252-9d62ba988ed3","savedPayload":{"position":{"x":11493.189257387989,"y":16032.579523066255},"targetPosition":{"x":11559.796772737882,"y":16665.21408201984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Histogram","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"83f50f64-2a7f-49b1-9649-dd23f86374b1","savedPayload":{"position":{"x":11648.597979919956,"y":15759.707670817716},"targetPosition":{"x":11697.168394015116,"y":16056.459127790786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.histogram < 0","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","project":"Superalgos","id":"de351dae-2678-4a8a-a5cc-e2a42418f558","savedPayload":{"position":{"x":11878.107389423818,"y":15446.020476562011},"targetPosition":{"x":11787.798109830303,"y":15751.182955482345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6d9e5ad0-dd68-4192-ad7f-9986f34050af","savedPayload":{"position":{"x":11787.798109830303,"y":15751.182955482345},"targetPosition":{"x":11697.168394015116,"y":16056.459127790786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0c056547-f273-4157-8c55-ca13da5adeb5","savedPayload":{"position":{"x":11697.168394015116,"y":16056.459127790786},"targetPosition":{"x":11689.01084256476,"y":16374.636064965867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero","project":"Superalgos","id":"02e0cf18-f0d8-4c59-ae6a-37a1e516b67a","savedPayload":{"position":{"x":11818.502764725115,"y":16083.766964505896},"targetPosition":{"x":11689.01084256476,"y":16374.636064965867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero","id":"d2d60df1-8bd2-4371-9ce1-60a328cc80d3"}}},{"type":"Polygon Vertex","name":"Histogram","project":"Superalgos","id":"e4c545cd-400d-4616-bf3a-f24a1fd24794","savedPayload":{"position":{"x":11919.931511612056,"y":16155.54406407501},"targetPosition":{"x":11689.01084256476,"y":16374.636064965867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Histogram","id":"4292d954-54aa-45e3-acb4-a52622471108"}}}],"id":"83a0d615-06f0-4daf-a684-211e42345717","savedPayload":{"position":{"x":11689.01084256476,"y":16374.636064965867},"targetPosition":{"x":11559.796772737882,"y":16665.21408201984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"cd8d0c68-f06e-43be-9c1c-d4d2b79fc680","savedPayload":{"position":{"x":12406.96650226567,"y":15748.416268304361},"targetPosition":{"x":12240.679403992275,"y":16019.720652485037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"dec1dd79-8e14-4104-86e1-ab9b5919055c","savedPayload":{"position":{"x":12240.679403992275,"y":16019.720652485037},"targetPosition":{"x":12074.495012908723,"y":16291.312301245314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Line End","project":"Superalgos","id":"8a24dd4a-0202-40ea-95d6-127abe4893bf","savedPayload":{"position":{"x":12332.148214265137,"y":16104.143718342952},"targetPosition":{"x":12074.495012908723,"y":16291.312301245314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Line End","id":"6f0173db-8cbd-4530-a30d-ebe66906c578"}}},{"type":"Polygon Vertex","name":"Line Begin","project":"Superalgos","id":"11bd728e-9c76-4cd3-97e5-27965f60bd9d","savedPayload":{"position":{"x":12384.117021272403,"y":16217.02100487515},"targetPosition":{"x":12074.495012908723,"y":16291.312301245314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Line Begin","id":"36adae0b-9c21-40b9-abfb-e511d72f2b5d"}}}],"id":"c5dff6f5-ceea-4cf7-8d51-3f2bd9423d10","savedPayload":{"position":{"x":12074.495012908723,"y":16291.312301245314},"targetPosition":{"x":11559.796772737882,"y":16665.21408201984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Signal","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"263c0cb6-735f-48ae-a2fc-9835403317dc","savedPayload":{"position":{"x":12435.955787338578,"y":16329.02354030653},"targetPosition":{"x":12155.93618561629,"y":16480.452285749743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"630155a8-17d7-414a-801b-933cff540e61","savedPayload":{"position":{"x":12155.93618561629,"y":16480.452285749743},"targetPosition":{"x":11876.177152094388,"y":16632.22923013628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Signal End","project":"Superalgos","id":"9d1ae188-aa8e-4c73-a417-31c3968a9e6f","savedPayload":{"position":{"x":12192.806210324929,"y":16599.1220541292},"targetPosition":{"x":11876.177152094388,"y":16632.22923013628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Signal End","id":"cd80c183-d19f-48a6-b7fc-a69b1b794b2a"}}},{"type":"Polygon Vertex","name":"Signal Begin","project":"Superalgos","id":"9ef44a8e-4e95-4e21-a7f7-0950844c58f3","savedPayload":{"position":{"x":12181.283374442784,"y":16722.752286636987},"targetPosition":{"x":11876.177152094388,"y":16632.22923013628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Signal Begin","id":"0cc9c494-c307-4bfe-9baf-8ed796fb602d"}}}],"id":"1c32305b-ed73-433e-af91-5c221e1c8254","savedPayload":{"position":{"x":11876.177152094388,"y":16632.22923013628},"targetPosition":{"x":11559.796772737882,"y":16665.21408201984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"b1a0e87f-af0a-4354-a9a3-74ee5a667593","savedPayload":{"position":{"x":11559.796772737882,"y":16665.21408201984},"targetPosition":{"x":11301.616106872847,"y":17245.258532479864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"MACD 245209","config":"{ \n\"codeName\": \"Panel-MACD-245209\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Line","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.line","project":"Superalgos","id":"7449cbcf-82e3-44a9-b623-8ce89d3d0a90","savedPayload":{"position":{"x":12334.468931273557,"y":16685.65117262279},"targetPosition":{"x":12133.65985686408,"y":16932.49011791376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"03f0b78f-d66e-43d9-93fb-28ec2a0c78ad","savedPayload":{"position":{"x":12133.65985686408,"y":16932.49011791376},"targetPosition":{"x":11933.312695724559,"y":17179.250193664397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Signal","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.signal","project":"Superalgos","id":"d32b0179-d71f-4cc4-a53e-f65d850da700","savedPayload":{"position":{"x":12566.350356003008,"y":17113.27030504329},"targetPosition":{"x":12249.835584409335,"y":17146.30342672009},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"22cd37eb-620d-4fc6-ba86-e09d58614393","savedPayload":{"position":{"x":12249.835584409335,"y":17146.30342672009},"targetPosition":{"x":11933.312695724559,"y":17179.250193664397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Histogram","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.histogram","project":"Superalgos","id":"bddd9afa-785d-4791-8d87-e2c984a74f12","savedPayload":{"position":{"x":12427.85889367602,"y":17579.640312315543},"targetPosition":{"x":12180.577222403954,"y":17379.50320892032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bfa738fb-7d49-4539-97be-707922adde3e","savedPayload":{"position":{"x":12180.577222403954,"y":17379.50320892032},"targetPosition":{"x":11933.312695724559,"y":17179.250193664397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e864cbe9-0b24-45c0-b08b-85c2486bef8d","savedPayload":{"position":{"x":11933.312695724559,"y":17179.250193664397},"targetPosition":{"x":11301.616106872847,"y":17245.258532479864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2fe60a0e-dd3a-4bb8-a321-4742389ab930","savedPayload":{"position":{"x":11150.730830411274,"y":17540.982057474786},"targetPosition":{"x":10786.673182942548,"y":17805.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"24146ce7-bc0d-461a-8a43-0d2bd3059886","savedPayload":{"position":{"x":10786.673182942548,"y":17805.4854210064},"targetPosition":{"x":10786.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Exponential Moving Average (EMA)","config":"{\n\"codeName\": \"Plotter EMA\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"EMA Popular","config":"{\n\t\"codeName\": \"EMA-Popular\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"EMA 20 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema20","project":"Superalgos","id":"7bf83ec0-5a84-4a81-a111-19d913e12135","savedPayload":{"position":{"x":10997.442917519547,"y":16939.298078423195},"targetPosition":{"x":10833.26003087962,"y":16998.839430783417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6e1ff74e-36ba-460c-9f78-c8ee0b5e0837","savedPayload":{"position":{"x":10833.26003087962,"y":16998.839430783417},"targetPosition":{"x":10591.253089301088,"y":17071.853866278092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 20 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema20","project":"Superalgos","id":"12164218-7531-4063-bbd3-32855e7f7847","savedPayload":{"position":{"x":11009.291245785298,"y":17223.885132142426},"targetPosition":{"x":10844.648689210582,"y":17163.90986893795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"83f1d130-42bd-45ae-9078-ed3f825531bb","savedPayload":{"position":{"x":10844.648689210582,"y":17163.90986893795},"targetPosition":{"x":10591.253089301088,"y":17071.853866278092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 50 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema50","project":"Superalgos","id":"580ad5c4-aee7-4af2-b85d-0ef86d020823","savedPayload":{"position":{"x":10812.965675905554,"y":17456.10430533299},"targetPosition":{"x":10725.798157020261,"y":17305.266969811753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7084c0a2-8874-46a7-b240-d9605a7baf49","savedPayload":{"position":{"x":10725.798157020261,"y":17305.266969811753},"targetPosition":{"x":10591.253089301088,"y":17071.853866278092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 50 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema50","project":"Superalgos","id":"1e7a4d05-3daf-4d0a-97ff-b53e35eab2aa","savedPayload":{"position":{"x":10514.092058803766,"y":17507.95177129594},"targetPosition":{"x":10544.547766743206,"y":17336.1590706016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3861b379-3e51-43e2-b607-e3b7fba16a34","savedPayload":{"position":{"x":10544.547766743206,"y":17336.1590706016},"targetPosition":{"x":10591.253089301088,"y":17071.853866278092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 100 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema100","project":"Superalgos","id":"b50c3599-e7bd-45ef-b348-4ddf85460bbf","savedPayload":{"position":{"x":10251.91444938253,"y":17356.627071153962},"targetPosition":{"x":10386.154867552363,"y":17243.9435456885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d3b1e9cb-8098-4e62-94ea-4e89852b4f6a","savedPayload":{"position":{"x":10386.154867552363,"y":17243.9435456885},"targetPosition":{"x":10591.253089301088,"y":17071.853866278092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 100 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema100","project":"Superalgos","id":"f5cf8bb1-98bf-4c38-9e7c-f31678a656e4","savedPayload":{"position":{"x":10148.062524311434,"y":17071.827765710783},"targetPosition":{"x":10323.189750186102,"y":17071.833641942667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32ca337a-699d-4c2f-9b6a-73d9a4481e78","savedPayload":{"position":{"x":10323.189750186102,"y":17071.833641942667},"targetPosition":{"x":10591.253089301088,"y":17071.853866278092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 200 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema200","project":"Superalgos","id":"451d4c20-a9ad-4b8d-a116-fae9406ee356","savedPayload":{"position":{"x":10251.662680639569,"y":16787.250667349752},"targetPosition":{"x":10385.390435735815,"y":16899.240667929836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"33d1fe7c-ff86-440a-8b42-0de9c296a632","savedPayload":{"position":{"x":10385.390435735815,"y":16899.240667929836},"targetPosition":{"x":10591.253089301088,"y":17071.853866278092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 200 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema200","project":"Superalgos","id":"24e42cf3-2dc8-4257-a511-7dc52dc6f060","savedPayload":{"position":{"x":10514.039093269308,"y":16634.572368739726},"targetPosition":{"x":10544.562568711168,"y":16807.167530836618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"87e2a3ab-afc2-44cb-b2ca-03a715a4d673","savedPayload":{"position":{"x":10544.562568711168,"y":16807.167530836618},"targetPosition":{"x":10591.253089301088,"y":17071.853866278092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dd70bea3-9a52-4b2b-a364-31917b08d98d","savedPayload":{"position":{"x":10429.871234476494,"y":17487.287369472455},"targetPosition":{"x":10767.371234476494,"y":16902.72022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"d468c2f1-2586-4fe4-aa0c-fc3737d992f5","savedPayload":{"position":{"x":10140.475019985584,"y":16689.91763204369},"targetPosition":{"x":10307.781340342415,"y":16711.943926980824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"23236076-e29a-451e-8c95-e3812064279c","savedPayload":{"position":{"x":10307.781340342415,"y":16711.943926980824},"targetPosition":{"x":10475.087660699246,"y":16733.97022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 20 Begin","project":"Superalgos","id":"5f877b66-2ca6-4a8f-967e-70948cefc9ea","savedPayload":{"position":{"x":10328.945873810622,"y":16649.59522191796},"targetPosition":{"x":10475.087660699246,"y":16733.97022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 20 Begin","id":"6e1ff74e-36ba-460c-9f78-c8ee0b5e0837"}}},{"type":"Polygon Vertex","name":"EMA 20 End","project":"Superalgos","id":"d5971215-2792-4415-bfea-2e4b2b5b98fe","savedPayload":{"position":{"x":10372.359169554024,"y":16600.091845743813},"targetPosition":{"x":10475.087660699246,"y":16733.97022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 20 End","id":"83f1d130-42bd-45ae-9078-ed3f825531bb"}}}],"id":"17ca2f43-9ddf-47f8-9929-e4612b00dd4f","savedPayload":{"position":{"x":10475.087660699246,"y":16733.97022191796},"targetPosition":{"x":10767.371234476494,"y":16902.72022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 50","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"330fba24-ff59-48d2-a297-b4e6903efc3d","savedPayload":{"position":{"x":10330.864482128203,"y":16404.979665850267},"targetPosition":{"x":10464.742858302348,"y":16507.70815699549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"0806f6fe-730c-4fde-b730-dcdf31825733","savedPayload":{"position":{"x":10464.742858302348,"y":16507.70815699549},"targetPosition":{"x":10598.621234476494,"y":16610.436648140712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 50 End","project":"Superalgos","id":"b00cf575-af36-4653-97ec-441912af5bb8","savedPayload":{"position":{"x":10514.246234476494,"y":16464.29486125209},"targetPosition":{"x":10598.621234476494,"y":16610.436648140712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 50 End","id":"3861b379-3e51-43e2-b607-e3b7fba16a34"}}},{"type":"Polygon Vertex","name":"EMA 50 Begin","project":"Superalgos","id":"da71a6f7-2917-4c07-bd77-dc1b0334c5ec","savedPayload":{"position":{"x":10576.59493953936,"y":16443.13032778388},"targetPosition":{"x":10598.621234476494,"y":16610.436648140712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 50 Begin","id":"7084c0a2-8874-46a7-b240-d9605a7baf49"}}}],"id":"36482493-d7f7-4a41-9588-a348e3204025","savedPayload":{"position":{"x":10598.621234476494,"y":16610.436648140712},"targetPosition":{"x":10767.371234476494,"y":16902.72022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 100","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"278d84a3-2d10-4db3-90cc-b38f6af88ecf","savedPayload":{"position":{"x":10638.215576053277,"y":16253.4108796954},"targetPosition":{"x":10702.793405264885,"y":16409.31555080668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"612138e2-6896-4f8f-956a-d5bf1b8c043a","savedPayload":{"position":{"x":10702.793405264885,"y":16409.31555080668},"targetPosition":{"x":10767.371234476494,"y":16565.22022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 100 Begin","project":"Superalgos","id":"fc01c5ca-4323-4a71-9d83-1f288b80e8ed","savedPayload":{"position":{"x":10767.371234476494,"y":16396.47022191796},"targetPosition":{"x":10767.371234476494,"y":16565.22022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 100 Begin","id":"d3b1e9cb-8098-4e62-94ea-4e89852b4f6a"}}},{"type":"Polygon Vertex","name":"EMA 100 End","project":"Superalgos","id":"fbd76a9e-5a2e-4cb8-a2ed-35d2616d9a2e","savedPayload":{"position":{"x":10831.949063688102,"y":16409.31555080668},"targetPosition":{"x":10767.371234476494,"y":16565.22022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 100 End","id":"32ca337a-699d-4c2f-9b6a-73d9a4481e78"}}}],"id":"37a16b86-6ee7-4dfa-b32a-c8b9bcb9b484","savedPayload":{"position":{"x":10767.371234476494,"y":16565.22022191796},"targetPosition":{"x":10767.371234476494,"y":16902.72022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 200","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b170fc33-32c4-452d-919d-cf2df82c224f","savedPayload":{"position":{"x":10980.17382435076,"y":16275.82400742705},"targetPosition":{"x":10958.147529413627,"y":16443.13032778388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ad1ad1fa-9fe8-4a56-aade-dcade3d90c38","savedPayload":{"position":{"x":10958.147529413627,"y":16443.13032778388},"targetPosition":{"x":10936.121234476494,"y":16610.436648140712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 200 End","project":"Superalgos","id":"a98d63cf-bb2b-43f0-80cd-680c59ef741a","savedPayload":{"position":{"x":11020.496234476494,"y":16464.29486125209},"targetPosition":{"x":10936.121234476494,"y":16610.436648140712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 200 End","id":"87e2a3ab-afc2-44cb-b2ca-03a715a4d673"}}},{"type":"Polygon Vertex","name":"EMA 200 Begin","project":"Superalgos","id":"c9ce7524-76dd-4399-92d8-58d1d757ed89","savedPayload":{"position":{"x":11069.999610650639,"y":16507.70815699549},"targetPosition":{"x":10936.121234476494,"y":16610.436648140712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 200 Begin","id":"33d1fe7c-ff86-440a-8b42-0de9c296a632"}}}],"id":"2e225665-d05d-46cd-91d0-4b36803bcf67","savedPayload":{"position":{"x":10936.121234476494,"y":16610.436648140712},"targetPosition":{"x":10767.371234476494,"y":16902.72022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"5ea59fb9-f0d6-438b-b1a7-a62ed1750004","savedPayload":{"position":{"x":10767.371234476494,"y":16902.72022191796},"targetPosition":{"x":11104.871234476494,"y":17487.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"EMA Popular","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"EMA 20","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema20","project":"Superalgos","id":"c79a60a8-e960-4a7d-86b0-bb8d65272b30","savedPayload":{"position":{"x":11096.758401798224,"y":16717.170368472052},"targetPosition":{"x":11238.355489784439,"y":16892.02820979987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"b212a4cc-ecc2-478b-8309-de778e7abb65","savedPayload":{"position":{"x":11203.157735150387,"y":16669.798333165967},"targetPosition":{"x":11238.355489784439,"y":16892.02820979987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"80fa0565-6440-406f-a49d-57adcdaf20ae","savedPayload":{"position":{"x":11238.355489784439,"y":16892.02820979987},"targetPosition":{"x":11329.871234476494,"y":17097.575937769456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 50","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema50","project":"Superalgos","id":"ad4b2bc1-bc45-4a8f-b07f-aa0f79f5e884","savedPayload":{"position":{"x":11364.875774755827,"y":16652.80108228457},"targetPosition":{"x":11376.651364910489,"y":16877.49272760435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"6c0a0f94-7f53-4226-8cac-46a2c8c93f0e","savedPayload":{"position":{"x":11478.799227351887,"y":16677.016259661967},"targetPosition":{"x":11376.651364910489,"y":16877.49272760435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f43975ff-c552-42b8-a504-d2b6a3a46b18","savedPayload":{"position":{"x":11376.651364910489,"y":16877.49272760435},"targetPosition":{"x":11329.871234476494,"y":17097.575937769456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 100","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema100","project":"Superalgos","id":"2bfe0bed-a18d-452e-a59a-9ddbd135dd0a","savedPayload":{"position":{"x":11619.62260308729,"y":16758.320673550992},"targetPosition":{"x":11497.078820208908,"y":16947.021551338712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"4c01a5e4-bd67-4914-b544-0f6fd7ed9940","savedPayload":{"position":{"x":11697.55528815129,"y":16844.873688897314},"targetPosition":{"x":11497.078820208908,"y":16947.021551338712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9507a099-6a7f-4d00-8b6e-623a7003055c","savedPayload":{"position":{"x":11497.078820208908,"y":16947.021551338712},"targetPosition":{"x":11329.871234476494,"y":17097.575937769456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 200","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema200","project":"Superalgos","id":"ee01f76f-2b56-4d87-a278-4dd98436dca7","savedPayload":{"position":{"x":11763.694256896226,"y":16993.42424488654},"targetPosition":{"x":11553.638660934355,"y":17074.057033534235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"3ca9953f-2806-471d-aa84-d80fd4645414","savedPayload":{"position":{"x":11775.868537568262,"y":17109.254788168288},"targetPosition":{"x":11553.638660934355,"y":17074.057033534235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5bf57692-7070-4a12-9bc3-487a841125b0","savedPayload":{"position":{"x":11553.638660934355,"y":17074.057033534235},"targetPosition":{"x":11329.871234476494,"y":17097.575937769456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a819c354-b152-4946-a403-62a8cf0f650f","savedPayload":{"position":{"x":11329.871234476494,"y":17097.575937769456},"targetPosition":{"x":11104.871234476494,"y":17487.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"79bf7438-f77a-4c8d-a450-67027d5fd8bc","savedPayload":{"position":{"x":11104.871234476494,"y":17487.287369472455},"targetPosition":{"x":11104.871234476494,"y":17937.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"EMA Base 11","config":"{\n\t\"codeName\": \"EMA-Base11\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"EMA 11 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema11","project":"Superalgos","id":"41b049dc-e0da-471f-82f7-5f2c1eb61f90","savedPayload":{"position":{"x":11349.218158179905,"y":17400.17619458912},"targetPosition":{"x":11238.151499672495,"y":17382.275150820715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c961312c-6bb2-4b38-a142-9f03d0b3eba4","savedPayload":{"position":{"x":11238.151499672495,"y":17382.275150820715},"targetPosition":{"x":11127.084841165084,"y":17364.37410705231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 11 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema11","project":"Superalgos","id":"55db8355-8155-4c70-85b5-4a629aeefa45","savedPayload":{"position":{"x":11294.599208990792,"y":17514.587077770397},"targetPosition":{"x":11210.842025077938,"y":17439.480592411353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"750547e8-4963-4008-aa2b-8edc565afd79","savedPayload":{"position":{"x":11210.842025077938,"y":17439.480592411353},"targetPosition":{"x":11127.084841165084,"y":17364.37410705231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 22 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema22","project":"Superalgos","id":"bda3c179-331d-444e-9b1e-e3cfd1a26bb7","savedPayload":{"position":{"x":11186.79563161698,"y":17581.30640410282},"targetPosition":{"x":11156.940236391032,"y":17472.840255577565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8ac0329a-2d0d-483f-a047-305198817a24","savedPayload":{"position":{"x":11156.940236391032,"y":17472.840255577565},"targetPosition":{"x":11127.084841165084,"y":17364.37410705231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 22 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema22","project":"Superalgos","id":"08508d15-658f-40da-a580-76a5b512414d","savedPayload":{"position":{"x":11060.034300170977,"y":17579.151258892067},"targetPosition":{"x":11093.55957066803,"y":17471.76268297219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"adc1fb05-93dd-4a32-98dd-30577e4a68de","savedPayload":{"position":{"x":11093.55957066803,"y":17471.76268297219},"targetPosition":{"x":11127.084841165084,"y":17364.37410705231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 33 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema33","project":"Superalgos","id":"bceee9f7-3824-498c-beb1-866463df7a7e","savedPayload":{"position":{"x":10954.56104173412,"y":17508.80588551503},"targetPosition":{"x":11040.822941449602,"y":17436.58999628367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"25fd3a99-95c4-4514-b7f3-d195c9ee3189","savedPayload":{"position":{"x":11040.822941449602,"y":17436.58999628367},"targetPosition":{"x":11127.084841165084,"y":17364.37410705231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 33 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema33","project":"Superalgos","id":"6c2cc6ab-b520-4d47-8165-db2abfd53ed8","savedPayload":{"position":{"x":10903.862870621677,"y":17392.604442982258},"targetPosition":{"x":11015.47385589338,"y":17378.489275017284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0fe0c9b1-3079-499b-ad49-1b13e1e0af82","savedPayload":{"position":{"x":11015.47385589338,"y":17378.489275017284},"targetPosition":{"x":11127.084841165084,"y":17364.37410705231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 55 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema55","project":"Superalgos","id":"5df6eee6-f3a0-406f-be6c-2e6bce745054","savedPayload":{"position":{"x":10924.03609794569,"y":17267.440068257754},"targetPosition":{"x":11025.560469555387,"y":17315.907087655032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"27b05f8b-84e9-4ab2-944d-46b10c2a978c","savedPayload":{"position":{"x":11025.560469555387,"y":17315.907087655032},"targetPosition":{"x":11127.084841165084,"y":17364.37410705231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 55 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema55","project":"Superalgos","id":"508f7fdf-3889-4b3f-bec4-9ee071f7aa21","savedPayload":{"position":{"x":11008.675866567999,"y":17173.05156594733},"targetPosition":{"x":11067.880353866542,"y":17268.71283649982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1eeef11e-809a-4e49-8b3b-48a955f42ce3","savedPayload":{"position":{"x":11067.880353866542,"y":17268.71283649982},"targetPosition":{"x":11127.084841165084,"y":17364.37410705231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 111 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema111","project":"Superalgos","id":"b9f04b17-af03-4983-8266-0e63f8f3271c","savedPayload":{"position":{"x":11130.909647987046,"y":17139.406618617257},"targetPosition":{"x":11128.997244576065,"y":17251.890362834783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cb15539c-b3a0-4641-9417-861c48bd62ac","savedPayload":{"position":{"x":11128.997244576065,"y":17251.890362834783},"targetPosition":{"x":11127.084841165084,"y":17364.37410705231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 11 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema111","project":"Superalgos","id":"abc69976-c994-40d1-a923-fd64ded26938","savedPayload":{"position":{"x":11251.929080264916,"y":17177.187259321},"targetPosition":{"x":11189.506960715,"y":17270.780683186655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"afa38489-5525-4f32-b766-cfe85d683a65","savedPayload":{"position":{"x":11189.506960715,"y":17270.780683186655},"targetPosition":{"x":11127.084841165084,"y":17364.37410705231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"573429d9-05d9-41ea-9fac-5eaf95fcc06c","savedPayload":{"position":{"x":11125.084841165084,"y":17157.37410705231},"targetPosition":{"x":11537.537856306573,"y":16977.422696108428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"02c6627c-956c-4022-a3f9-a132627d02d8","savedPayload":{"position":{"x":11033.494084421432,"y":16252.777205754091},"targetPosition":{"x":11195.54026489206,"y":16408.873443360513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"48f091c0-5895-4615-a56d-f779d35b60c6","savedPayload":{"position":{"x":11195.54026489206,"y":16408.873443360513},"targetPosition":{"x":11357.58644536269,"y":16564.969680966937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 11 End","project":"Superalgos","id":"1143164d-0f70-46f0-80fe-6107db66ce29","savedPayload":{"position":{"x":11267.610739890748,"y":16358.743173396191},"targetPosition":{"x":11357.58644536269,"y":16564.969680966937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 11 End","id":"750547e8-4963-4008-aa2b-8edc565afd79"}}},{"type":"Polygon Vertex","name":"EMA 11 Begin","project":"Superalgos","id":"31fd051d-973f-4d8c-b9d3-ac1c13621ab0","savedPayload":{"position":{"x":11353.379200415737,"y":16340.009019761568},"targetPosition":{"x":11357.58644536269,"y":16564.969680966937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 11 Begin","id":"c961312c-6bb2-4b38-a142-9f03d0b3eba4"}}}],"id":"01f54960-957d-490a-91c7-cfd01f2bf806","savedPayload":{"position":{"x":11357.58644536269,"y":16564.969680966937},"targetPosition":{"x":11537.537856306573,"y":16977.422696108428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"76712d22-b3a8-490e-a964-b1f51641d472","savedPayload":{"position":{"x":11397.822004667567,"y":16105.843272608847},"targetPosition":{"x":11476.092949199243,"y":16316.790325781247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"61487dfb-c30e-41b5-b3bb-a52bbe476c22","savedPayload":{"position":{"x":11476.092949199243,"y":16316.790325781247},"targetPosition":{"x":11554.363893730919,"y":16527.737378953647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 22 End","project":"Superalgos","id":"bd3f3676-7a98-43ca-b661-395e53cc2d9c","savedPayload":{"position":{"x":11562.776912443092,"y":16302.894720376256},"targetPosition":{"x":11554.363893730919,"y":16527.737378953647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 22 End","id":"adc1fb05-93dd-4a32-98dd-30577e4a68de"}}},{"type":"Polygon Vertex","name":"EMA 22 Begin","project":"Superalgos","id":"6a2c8c60-7c69-4372-bc67-b5bac89eb8a5","savedPayload":{"position":{"x":11648.180069852217,"y":16323.2293715359},"targetPosition":{"x":11554.363893730919,"y":16527.737378953647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 22 Begin","id":"8ac0329a-2d0d-483f-a047-305198817a24"}}}],"id":"c9043797-16f8-4dc7-85c0-bd9d995dcec1","savedPayload":{"position":{"x":11554.363893730919,"y":16527.737378953647},"targetPosition":{"x":11537.537856306573,"y":16977.422696108428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"9ee24b06-2b0b-472a-9272-23f52d3ddc05","savedPayload":{"position":{"x":11789.82236283328,"y":16131.536333507844},"targetPosition":{"x":11768.815550931366,"y":16355.553551269599},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"12acb041-6cf9-4cab-bc99-7d3413860838","savedPayload":{"position":{"x":11768.815550931366,"y":16355.553551269599},"targetPosition":{"x":11747.808739029451,"y":16579.570769031354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 33 End","project":"Superalgos","id":"e5ec4acb-cef0-48cc-8eb4-432547dc0541","savedPayload":{"position":{"x":11852.94418039089,"y":16380.644805492817},"targetPosition":{"x":11747.808739029451,"y":16579.570769031354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 33 End","id":"0fe0c9b1-3079-499b-ad49-1b13e1e0af82"}}},{"type":"Polygon Vertex","name":"EMA 33 Begin","project":"Superalgos","id":"46dfb895-487c-4a14-a8f4-e39f77a98f34","savedPayload":{"position":{"x":11921.066891958286,"y":16436.02073439643},"targetPosition":{"x":11747.808739029451,"y":16579.570769031354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 33 Begin","id":"25fd3a99-95c4-4514-b7f3-d195c9ee3189"}}}],"id":"d6e73bfe-e6af-4fff-b482-df4889701cf7","savedPayload":{"position":{"x":11747.808739029451,"y":16579.570769031354},"targetPosition":{"x":11537.537856306573,"y":16977.422696108428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"cb42e26b-ace9-47f5-a272-15645af64e39","savedPayload":{"position":{"x":12131.85468041495,"y":16324.767562635318},"targetPosition":{"x":12015.730768808262,"y":16517.485587617834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"cd8235f2-8641-4f92-9029-d30375e43f1f","savedPayload":{"position":{"x":12015.730768808262,"y":16517.485587617834},"targetPosition":{"x":11899.606857201574,"y":16710.20361260035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 55 End","project":"Superalgos","id":"fff3b40f-45a5-424f-bbe3-b62c4811423d","savedPayload":{"position":{"x":12080.641357649074,"y":16576.594070846313},"targetPosition":{"x":11899.606857201574,"y":16710.20361260035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 55 End","id":"1eeef11e-809a-4e49-8b3b-48a955f42ce3"}}},{"type":"Polygon Vertex","name":"EMA 55 Begin","project":"Superalgos","id":"e644af79-d267-4c8b-bebd-2d919eb5efd9","savedPayload":{"position":{"x":12117.991084878588,"y":16656.043395633333},"targetPosition":{"x":11899.606857201574,"y":16710.20361260035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 55 Begin","id":"27b05f8b-84e9-4ab2-944d-46b10c2a978c"}}}],"id":"001084ac-f732-465a-aea1-bb8c63770971","savedPayload":{"position":{"x":11899.606857201574,"y":16710.20361260035},"targetPosition":{"x":11537.537856306573,"y":16977.422696108428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"5d5e3413-6b2a-49e0-8b7e-14441b448203","savedPayload":{"position":{"x":12356.175262164441,"y":16647.26514523707},"targetPosition":{"x":12167.934015712997,"y":16770.513809061093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"d1c5bddf-9fc3-47b8-b026-a0fd18fc7efd","savedPayload":{"position":{"x":12167.934015712997,"y":16770.513809061093},"targetPosition":{"x":11979.692769261554,"y":16893.762472885115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 11 End","project":"Superalgos","id":"2aed0f5f-77bd-4297-a131-77c0c08914d5","savedPayload":{"position":{"x":12200.770225739043,"y":16851.93236127346},"targetPosition":{"x":11979.692769261554,"y":16893.762472885115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 11 End","id":"afa38489-5525-4f32-b766-cfe85d683a65"}}},{"type":"Polygon Vertex","name":"EMA 111 Begin","project":"Superalgos","id":"dff4ca7d-4499-4a8a-834b-7315e9e784e4","savedPayload":{"position":{"x":12199.949397088525,"y":16939.719168787793},"targetPosition":{"x":11979.692769261554,"y":16893.762472885115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 111 Begin","id":"cb15539c-b3a0-4641-9417-861c48bd62ac"}}}],"id":"47ab5422-37ad-4070-a2eb-248bbe9b007f","savedPayload":{"position":{"x":11979.692769261554,"y":16893.762472885115},"targetPosition":{"x":11537.537856306573,"y":16977.422696108428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"951aba38-5a6a-43df-8f70-f311d621c98d","savedPayload":{"position":{"x":11537.537856306573,"y":16977.422696108428},"targetPosition":{"x":11423.06928601044,"y":17619.08931793851},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"EMA 11","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"EMA 11","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema11","project":"Superalgos","id":"ee21f97e-daa4-45b8-bebd-5c53d872534b","savedPayload":{"position":{"x":11915.970192988587,"y":17060.287436727333},"targetPosition":{"x":11915.970192988587,"y":17285.287436727333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"f1df9f6b-60b7-489c-b776-aefb39c54d85","savedPayload":{"position":{"x":12028.470192988587,"y":17090.431720875833},"targetPosition":{"x":11915.970192988587,"y":17285.287436727333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a96b4bae-0ce3-4dc6-88df-af120452af6b","savedPayload":{"position":{"x":11915.970192988587,"y":17285.287436727333},"targetPosition":{"x":11857.73590784052,"y":17502.620747642373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 22","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema22","project":"Superalgos","id":"583909a2-6932-4bfa-952d-a0c81123cc3f","savedPayload":{"position":{"x":12129.334933607493,"y":17148.6660060239},"targetPosition":{"x":12016.834933607493,"y":17343.5217218754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"e7ecb64a-a5b0-4f04-ab8b-f1c1b5491922","savedPayload":{"position":{"x":12211.690649458993,"y":17231.0217218754},"targetPosition":{"x":12016.834933607493,"y":17343.5217218754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2a2f4d65-a013-4c73-b851-1c9ac3dceb9f","savedPayload":{"position":{"x":12016.834933607493,"y":17343.5217218754},"targetPosition":{"x":11857.73590784052,"y":17502.620747642373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 33","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema33","project":"Superalgos","id":"067efa03-229a-49e1-9dff-579ead9e6603","savedPayload":{"position":{"x":12269.924934607061,"y":17331.886462494305},"targetPosition":{"x":12075.069218755561,"y":17444.386462494305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"56dacb40-906f-4ba4-a1de-752818c286c6","savedPayload":{"position":{"x":12300.069218755561,"y":17444.386462494305},"targetPosition":{"x":12075.069218755561,"y":17444.386462494305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a51bde01-b164-49bd-99fc-d048468e4cc0","savedPayload":{"position":{"x":12075.069218755561,"y":17444.386462494305},"targetPosition":{"x":11857.73590784052,"y":17502.620747642373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 55","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema55","project":"Superalgos","id":"4663f0f2-cf79-4a80-b4c0-33c41bca9d88","savedPayload":{"position":{"x":12300.069218755561,"y":17560.85503279044},"targetPosition":{"x":12075.069218755561,"y":17560.85503279044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"545bd2c7-f8db-4e89-ac74-5c8d5e63a9ec","savedPayload":{"position":{"x":12269.924934607061,"y":17673.35503279044},"targetPosition":{"x":12075.069218755561,"y":17560.85503279044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"782092b0-9e6c-4de0-aec6-0d6b47fac8b4","savedPayload":{"position":{"x":12075.069218755561,"y":17560.85503279044},"targetPosition":{"x":11857.73590784052,"y":17502.620747642373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 111","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema111","project":"Superalgos","id":"8064c04e-1499-4c01-b056-aac2a1aecc01","savedPayload":{"position":{"x":12211.690649458993,"y":17774.219773409346},"targetPosition":{"x":12016.834933607493,"y":17661.719773409346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"3e70225b-a8b1-4d04-959e-129f26e3ea3e","savedPayload":{"position":{"x":12129.334933607493,"y":17856.575489260846},"targetPosition":{"x":12016.834933607493,"y":17661.719773409346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2c4a358f-23b6-433c-98de-623caad85051","savedPayload":{"position":{"x":12016.834933607493,"y":17661.719773409346},"targetPosition":{"x":11857.73590784052,"y":17502.620747642373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"efc451e7-a5c0-4377-877c-a6b1a60a6604","savedPayload":{"position":{"x":11857.73590784052,"y":17502.620747642373},"targetPosition":{"x":11423.06928601044,"y":17619.08931793851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cef26be6-07a9-415a-8439-99d06b1e1cfb","savedPayload":{"position":{"x":11423.06928601044,"y":17619.08931793851},"targetPosition":{"x":11104.871234476494,"y":17937.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"EMA Base 7","config":"{\n\t\"codeName\": \"EMA-Base7\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"EMA 7 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema7","project":"Superalgos","id":"d41ccc81-8740-46e9-9ed3-9ffc1df75ee0","savedPayload":{"position":{"x":11657.445555200324,"y":17730.271782174135},"targetPosition":{"x":11591.567517244961,"y":17639.077845340857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2bb8ca1-5fcc-4286-aba3-1d307d4f7168","savedPayload":{"position":{"x":11591.567517244961,"y":17639.077845340857},"targetPosition":{"x":11525.689479289598,"y":17547.883908507578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 7 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema7","project":"Superalgos","id":"91431058-cccd-40c3-bb98-dd9484a0807d","savedPayload":{"position":{"x":11537.923414508397,"y":17772.55106416025},"targetPosition":{"x":11531.806446898998,"y":17660.217486333913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8ea750de-2b74-41ea-9897-637291621ae9","savedPayload":{"position":{"x":11531.806446898998,"y":17660.217486333913},"targetPosition":{"x":11525.689479289598,"y":17547.883908507578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 14 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema14","project":"Superalgos","id":"753c8686-38ea-4fc2-9343-3598039aa890","savedPayload":{"position":{"x":11414.517085825355,"y":17743.50011164891},"targetPosition":{"x":11470.103282557477,"y":17645.692010078244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"77265bb0-8ba2-4c0b-a788-970cd44ddcc9","savedPayload":{"position":{"x":11470.103282557477,"y":17645.692010078244},"targetPosition":{"x":11525.689479289598,"y":17547.883908507578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 14 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema14","project":"Superalgos","id":"c64e3670-c41d-44d0-bc7a-05c8f0a841b6","savedPayload":{"position":{"x":11326.407206560616,"y":17652.34239679824},"targetPosition":{"x":11426.048342925107,"y":17600.11315265291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cd04ee65-bd26-4fbc-abed-76c6fc5c964b","savedPayload":{"position":{"x":11426.048342925107,"y":17600.11315265291},"targetPosition":{"x":11525.689479289598,"y":17547.883908507578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 21 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema21","project":"Superalgos","id":"be27efec-c4ed-43ec-925a-f7d862f999c1","savedPayload":{"position":{"x":11301.568040826074,"y":17528.019849983695},"targetPosition":{"x":11413.628760057836,"y":17537.951879245637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2f13bba0-f9c2-435f-ad66-8ad73082c502","savedPayload":{"position":{"x":11413.628760057836,"y":17537.951879245637},"targetPosition":{"x":11525.689479289598,"y":17547.883908507578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 21 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema21","project":"Superalgos","id":"e6af4547-c256-4f33-95fc-9d9f3cd5d111","savedPayload":{"position":{"x":11347.885848237289,"y":17410.004001397752},"targetPosition":{"x":11436.787663763444,"y":17478.943954952665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a5e04840-b217-44cb-9f8f-2629bf4d1f6e","savedPayload":{"position":{"x":11436.787663763444,"y":17478.943954952665},"targetPosition":{"x":11525.689479289598,"y":17547.883908507578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 28 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema28","project":"Superalgos","id":"a42e77a3-9107-4c33-853d-4ed8966f339d","savedPayload":{"position":{"x":11450.655052207188,"y":17335.76404910631},"targetPosition":{"x":11488.172265748393,"y":17441.823978806944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0d436286-6b79-4dca-a2f3-b7bd3b9a5671","savedPayload":{"position":{"x":11488.172265748393,"y":17441.823978806944},"targetPosition":{"x":11525.689479289598,"y":17547.883908507578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 28 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema28","project":"Superalgos","id":"0e7f0922-d9b4-4ea3-9f5f-57ad9d4c9328","savedPayload":{"position":{"x":11577.247156607827,"y":17328.870653407463},"targetPosition":{"x":11551.468317948713,"y":17438.37728095752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f50599e9-c04f-4b07-aca0-f276dd08ea94","savedPayload":{"position":{"x":11551.468317948713,"y":17438.37728095752},"targetPosition":{"x":11525.689479289598,"y":17547.883908507578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 35 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema35","project":"Superalgos","id":"db011cc5-705a-444a-9f7a-159466b19247","savedPayload":{"position":{"x":11687.470062749067,"y":17391.512418729184},"targetPosition":{"x":11606.579771019333,"y":17469.69816361838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d7ac980a-16ab-4077-b3f1-05cf1f4c3a39","savedPayload":{"position":{"x":11606.579771019333,"y":17469.69816361838},"targetPosition":{"x":11525.689479289598,"y":17547.883908507578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 35 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema35","project":"Superalgos","id":"6b3dc821-e0e9-4c09-965b-c8600bd3e9d5","savedPayload":{"position":{"x":11746.328776728904,"y":17503.801027187397},"targetPosition":{"x":11636.009128009251,"y":17525.842467847488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8992ec1b-4e8c-4f47-a08e-b6e18a0d9c31","savedPayload":{"position":{"x":11636.009128009251,"y":17525.842467847488},"targetPosition":{"x":11525.689479289598,"y":17547.883908507578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5a4d5b2f-63dc-403c-a545-6025652d9e81","savedPayload":{"position":{"x":11511.09860169615,"y":17353.182178025138},"targetPosition":{"x":12139.438382030989,"y":17599.787369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 7","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"496c35a4-5cf7-4def-97bc-ce71a6fc45f7","savedPayload":{"position":{"x":12127.777419546734,"y":16976.27771794892},"targetPosition":{"x":12195.25919865069,"y":17130.94759862698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"671a56e0-b5eb-4833-aa19-3dca720b5b0e","savedPayload":{"position":{"x":12195.25919865069,"y":17130.94759862698},"targetPosition":{"x":12262.740977754647,"y":17285.617479305038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 7 End","project":"Superalgos","id":"b0be4203-a40d-4ee7-83e0-d1ac87f0bd31","savedPayload":{"position":{"x":12324.392275616476,"y":17128.53253422133},"targetPosition":{"x":12262.740977754647,"y":17285.617479305038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 7 End","id":"8ea750de-2b74-41ea-9897-637291621ae9"}}},{"type":"Polygon Vertex","name":"EMA 7 Begin","project":"Superalgos","id":"afe09e1e-c8fd-4fc7-8f09-324ee7d7d012","savedPayload":{"position":{"x":12417.410858432706,"y":17218.13570020108},"targetPosition":{"x":12262.740977754647,"y":17285.617479305038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 7 Begin","id":"d2bb8ca1-5fcc-4286-aba3-1d307d4f7168"}}}],"id":"45946a01-a9fb-4ea8-bb82-ef6088fad08e","savedPayload":{"position":{"x":12262.740977754647,"y":17285.617479305038},"targetPosition":{"x":12139.438382030989,"y":17599.787369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 14","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"9c0f7800-bf53-4a63-94ba-fccbec15d0ea","savedPayload":{"position":{"x":12597.929785046477,"y":16910.086053784835},"targetPosition":{"x":12527.567652955504,"y":17063.467059348146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"651877b1-61a2-48a2-8fc4-86e809f89d42","savedPayload":{"position":{"x":12527.567652955504,"y":17063.467059348146},"targetPosition":{"x":12386.843388773555,"y":17370.22907047477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 14 End","project":"Superalgos","id":"72f9e17d-9c36-408d-9a2e-13da010f4d97","savedPayload":{"position":{"x":12634.248395516122,"y":17140.670771477082},"targetPosition":{"x":12386.843388773555,"y":17370.22907047477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 14 End","id":"cd04ee65-bd26-4fbc-abed-76c6fc5c964b"}}},{"type":"Polygon Vertex","name":"EMA 14 Begin","project":"Superalgos","id":"5a24fd6f-de93-4fcd-94f7-1f7fe268e8be","savedPayload":{"position":{"x":12703.263968532156,"y":17252.822653677253},"targetPosition":{"x":12386.843388773555,"y":17370.22907047477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 14 Begin","id":"77265bb0-8ba2-4c0b-a788-970cd44ddcc9"}}}],"id":"b1689975-de58-4f84-a802-c6f13e885dc6","savedPayload":{"position":{"x":12386.843388773555,"y":17370.22907047477},"targetPosition":{"x":12139.438382030989,"y":17599.787369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 21","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"14146df5-5a4a-46b7-9db5-4957b8445915","savedPayload":{"position":{"x":12619.647366025969,"y":17201.918552800966},"targetPosition":{"x":12540.79578500489,"y":17351.11302545487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2552b9ce-3620-4245-9803-d55ad53969da","savedPayload":{"position":{"x":12540.79578500489,"y":17351.11302545487},"targetPosition":{"x":12461.94420398381,"y":17500.307498108774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 21 Begin","project":"Superalgos","id":"803ffc35-a2e2-426d-a8d2-7c770e5d0a6a","savedPayload":{"position":{"x":12623.197114960221,"y":17450.567562426935},"targetPosition":{"x":12461.94420398381,"y":17500.307498108774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 21 Begin","id":"2f13bba0-f9c2-435f-ad66-8ad73082c502"}}},{"type":"Polygon Vertex","name":"EMA 21 End","project":"Superalgos","id":"a0449481-80c2-4160-adb3-49d4327bf921","savedPayload":{"position":{"x":12611.138676637713,"y":17579.15907912985},"targetPosition":{"x":12461.94420398381,"y":17500.307498108774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 21 End","id":"a5e04840-b217-44cb-9f8f-2629bf4d1f6e"}}}],"id":"15f599b3-7620-4a0c-b9e0-29830383cd36","savedPayload":{"position":{"x":12461.94420398381,"y":17500.307498108774},"targetPosition":{"x":12139.438382030989,"y":17599.787369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 28","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"e4a06d7f-ecad-400a-acca-f3c340642354","savedPayload":{"position":{"x":12964.53329815525,"y":17528.22864613112},"targetPosition":{"x":12800.74512739749,"y":17568.848808856383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"65f345ac-2766-411d-af4f-9390e525667c","savedPayload":{"position":{"x":12800.74512739749,"y":17568.848808856383},"targetPosition":{"x":12473.16878588197,"y":17650.089134306912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 28 Begin","project":"Superalgos","id":"ca1f7537-47e7-4c48-a056-fedd8820a1de","savedPayload":{"position":{"x":12806.89918973295,"y":17700.39089914137},"targetPosition":{"x":12473.16878588197,"y":17650.089134306912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 28 Begin","id":"0d436286-6b79-4dca-a2f3-b7bd3b9a5671"}}},{"type":"Polygon Vertex","name":"EMA 28 End","project":"Superalgos","id":"80c45995-463a-442a-a6d8-92cc9971a8b9","savedPayload":{"position":{"x":12762.245823355745,"y":17824.275001716946},"targetPosition":{"x":12473.16878588197,"y":17650.089134306912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 28 End","id":"f50599e9-c04f-4b07-aca0-f276dd08ea94"}}}],"id":"e3c75e9c-a5ec-4755-9a86-909db1b690ca","savedPayload":{"position":{"x":12473.16878588197,"y":17650.089134306912},"targetPosition":{"x":12139.438382030989,"y":17599.787369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 35","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"9d05ca49-9de9-4c97-b4da-891614ed84a5","savedPayload":{"position":{"x":12749.91015307887,"y":17727.162721651446},"targetPosition":{"x":12584.102060720754,"y":17758.535305360187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"56422e5e-ccaa-4c0c-b5a1-79e62ebc1e74","savedPayload":{"position":{"x":12584.102060720754,"y":17758.535305360187},"targetPosition":{"x":12418.293968362637,"y":17789.907889068927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 35 Begin","project":"Superalgos","id":"155db5be-8214-4154-a918-ab9469587cc7","savedPayload":{"position":{"x":12557.72176152846,"y":17884.968148867163},"targetPosition":{"x":12418.293968362637,"y":17789.907889068927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 35 Begin","id":"d7ac980a-16ab-4077-b3f1-05cf1f4c3a39"}}},{"type":"Polygon Vertex","name":"EMA 35 End","project":"Superalgos","id":"ee71f62a-adc7-4411-aeb1-54ca5712ce34","savedPayload":{"position":{"x":12449.66655207138,"y":17955.715981427045},"targetPosition":{"x":12418.293968362637,"y":17789.907889068927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 35 End","id":"8992ec1b-4e8c-4f47-a08e-b6e18a0d9c31"}}}],"id":"3511cc8f-eb39-4dd0-8043-9f06a8faa698","savedPayload":{"position":{"x":12418.293968362637,"y":17789.907889068927},"targetPosition":{"x":12139.438382030989,"y":17599.787369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"8e7cd7e8-5c59-4cc2-8d9e-ea86d7554205","savedPayload":{"position":{"x":12139.438382030989,"y":17599.787369472455},"targetPosition":{"x":11554.871234476494,"y":17937.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"EMA Base 7","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"EMA 7","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema7","project":"Superalgos","id":"9d9efe26-4895-475c-ac3c-149f0331c6f7","savedPayload":{"position":{"x":12298.537407797961,"y":17890.688343705482},"targetPosition":{"x":12139.438382030989,"y":18049.787369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"06c8429b-e260-4d36-a859-5ae92112772c","savedPayload":{"position":{"x":12356.77169294603,"y":17991.553084324387},"targetPosition":{"x":12139.438382030989,"y":18049.787369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aeaebf9b-54bf-41f3-a833-b0e4fcc55c00","savedPayload":{"position":{"x":12139.438382030989,"y":18049.787369472455},"targetPosition":{"x":11944.58266617949,"y":18162.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 14","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema14","project":"Superalgos","id":"7c922a65-b8a6-4ebf-a964-af3851b30367","savedPayload":{"position":{"x":12386.915977094532,"y":18104.053084324387},"targetPosition":{"x":12169.58266617949,"y":18162.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"3ccf0c41-3b69-434a-8b0d-d7683301d56a","savedPayload":{"position":{"x":12386.915977094532,"y":18220.521654620523},"targetPosition":{"x":12169.58266617949,"y":18162.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f749c1c5-25f9-4c3f-af87-c8df30a177e0","savedPayload":{"position":{"x":12169.58266617949,"y":18162.287369472455},"targetPosition":{"x":11944.58266617949,"y":18162.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 21","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema21","project":"Superalgos","id":"f5a9c1c1-9331-4492-a263-1f69ff44711a","savedPayload":{"position":{"x":12356.771692946031,"y":18333.021654620523},"targetPosition":{"x":12139.43838203099,"y":18274.787369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"4c6d3920-5b9d-476f-96a7-ae94cbde7ba9","savedPayload":{"position":{"x":12298.537407797963,"y":18433.886395239428},"targetPosition":{"x":12139.43838203099,"y":18274.787369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"92f7a1a7-bd42-403f-9d0e-2eb907e8abea","savedPayload":{"position":{"x":12139.43838203099,"y":18274.787369472455},"targetPosition":{"x":11944.58266617949,"y":18162.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 28","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema28","project":"Superalgos","id":"0fcdb422-d014-4dc8-927a-5484c5d7c34b","savedPayload":{"position":{"x":12216.181691946464,"y":18516.242111090927},"targetPosition":{"x":12057.08266617949,"y":18357.143085323954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"0097353e-f325-476a-a480-d8fd7126a442","savedPayload":{"position":{"x":12115.316951327559,"y":18574.476396238995},"targetPosition":{"x":12057.08266617949,"y":18357.143085323954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4c51ef79-f3dd-4f24-ad22-4e38f42f3ff2","savedPayload":{"position":{"x":12057.08266617949,"y":18357.143085323954},"targetPosition":{"x":11944.58266617949,"y":18162.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 35","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema35","project":"Superalgos","id":"c23e6dd3-f9d5-498f-a01c-c951b11cbdf6","savedPayload":{"position":{"x":12002.816951327559,"y":18604.620680387496},"targetPosition":{"x":11944.58266617949,"y":18387.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"be76e3d7-0601-486a-ba56-27929fc5ce77","savedPayload":{"position":{"x":11886.348381031425,"y":18604.620680387496},"targetPosition":{"x":11944.58266617949,"y":18387.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8cdd88af-871c-4f1b-966b-cf9d00483caa","savedPayload":{"position":{"x":11944.58266617949,"y":18387.287369472455},"targetPosition":{"x":11944.58266617949,"y":18162.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"481ef93a-bef5-4fe3-b87b-f8032a63c69f","savedPayload":{"position":{"x":11944.58266617949,"y":18162.287369472455},"targetPosition":{"x":11554.871234476494,"y":17937.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a52a9764-3ef2-44e6-82bd-e6538058119d","savedPayload":{"position":{"x":11554.871234476494,"y":17937.287369472455},"targetPosition":{"x":11104.871234476494,"y":17937.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6cb2807d-22bb-4f90-b4d8-c84cf84a0d5c","savedPayload":{"position":{"x":11104.871234476494,"y":17937.287369472455},"targetPosition":{"x":10786.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"a"}}}],"id":"9cfffc48-486a-48cb-b641-98c82e314d3a","savedPayload":{"position":{"x":10786.673182942548,"y":18255.4854210064},"targetPosition":{"x":10786.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}} \ No newline at end of file +{"type":"Data Mine","name":"Sparta","config":"{\n\"codeName\": \"Sparta\"\n}","project":"Superalgos","sensorBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"Simple Moving Average (SMA)","config":"{\n\"codeName\": \"SMA\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates SMAs for Time Frames of 01-hs and above.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Popular SMAs","project":"Superalgos","id":"5302effb-1f09-4a30-9f71-6956b8b9ca88","savedPayload":{"position":{"x":10609.044651705652,"y":17428.90566641547},"targetPosition":{"x":10995.890269605332,"y":17540.32974347027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3b21f9d7-2cbc-4c23-80c8-cc5e5b06a22c"}}},{"type":"Output Dataset","name":"Multi-Period-Market Base11 SMAs","project":"Superalgos","id":"8221593c-6298-4b4c-bfc2-cffbc9e5cd0f","savedPayload":{"position":{"x":10652.515125452519,"y":17324.96443352291},"targetPosition":{"x":10995.890269605332,"y":17540.32974347027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"af9b9cef-2a74-486f-b79e-047d68669a1f"}}},{"type":"Output Dataset","name":"Multi-Period-Market Base7 SMAs","project":"Superalgos","id":"aabd0857-b4fc-404a-8967-967475ed3993","savedPayload":{"position":{"x":10721.675023375876,"y":17240.07387795538},"targetPosition":{"x":10995.890269605332,"y":17540.32974347027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"78a6ef37-4df8-4ac8-83a0-c9a732467c59"}}},{"type":"Output Dataset","name":"Multi-Period-Market Base6 SMAs","project":"Superalgos","id":"dd00a77a-761e-404b-9e44-627335668112","savedPayload":{"position":{"x":10809.956405495142,"y":17178.031642194932},"targetPosition":{"x":10995.890269605332,"y":17540.32974347027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c0862b3d-d35a-4d3e-8d80-258b8a01c37c"}}},{"type":"Output Dataset","name":"Muti-Period-Market Base5 SMAs","project":"Superalgos","id":"b6426833-d2c7-4300-b610-801e12a7edfd","savedPayload":{"position":{"x":10936.584878620257,"y":17141.406608785455},"targetPosition":{"x":10995.890269605332,"y":17540.32974347027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Muti-Period-Market","id":"a5d28568-fb58-469a-9820-b9f0e8eab705"}}}],"outputDatasetFolders":[],"id":"85a56739-9351-444b-95e9-a57470dca38a","savedPayload":{"position":{"x":10995.890269605332,"y":17540.32974347027},"targetPosition":{"x":11302.555356491408,"y":17880.959414907546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Simple Moving Average (SMA) Multi-Period-Market","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"d49d1e94-1960-4121-8e40-be8af52947ee","savedPayload":{"position":{"x":11067.618896327327,"y":17267.479023725446},"targetPosition":{"x":11205.707967556615,"y":17422.24521572421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"81346f2f-13f2-46f4-85f5-a04b4d80f455"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"f7cf0949-06fc-4c98-a399-61fac1671c6e","savedPayload":{"position":{"x":11151.101786685287,"y":17208.702149919078},"targetPosition":{"x":11205.707967556615,"y":17422.24521572421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"4228fdf3-e992-46b2-a91e-de95108a753d","savedPayload":{"position":{"x":11281.349968991311,"y":17232.215525355536},"targetPosition":{"x":11205.707967556615,"y":17422.24521572421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"f404e748-b631-4cc5-975c-2a0736e55c0d","savedPayload":{"position":{"x":11205.707967556615,"y":17422.24521572421},"targetPosition":{"x":11302.555356491408,"y":17880.959414907546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"81346f2f-13f2-46f4-85f5-a04b4d80f455","savedPayload":{"position":{"x":11447.995850449608,"y":17434.978620984843},"targetPosition":{"x":11302.555356491408,"y":17880.959414907546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"2bce272e-2712-4f28-9736-03b51929aba2","savedPayload":{"position":{"x":11651.429237176782,"y":17567.173890562313},"targetPosition":{"x":11302.555356491408,"y":17880.959414907546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"b569db86-9ab5-4ba2-be41-357a9bce84b4","savedPayload":{"position":{"x":11761.931404826617,"y":17783.446955381383},"targetPosition":{"x":11302.555356491408,"y":17880.959414907546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297","savedPayload":{"position":{"x":11375.730830411274,"y":17827.50998867358},"targetPosition":{"x":11236.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Describe what the process does.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Popular SMAs","project":"Superalgos","id":"417d3141-1e22-4ee6-b2d6-531a55b95c88","savedPayload":{"position":{"x":10908.000942572438,"y":17289.61734811988},"targetPosition":{"x":11241.486516415418,"y":17515.355998969822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2c338fe0-385f-45ab-b210-b98ef013228d"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Base11 SMAs","project":"Superalgos","id":"022edfeb-ec62-4cd9-85bf-20e9f444e3c1","savedPayload":{"position":{"x":10981.273990850172,"y":17203.75391921497},"targetPosition":{"x":11241.486516415418,"y":17515.355998969822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"de5cfa30-edbf-4d5b-8d7f-facfb69a0f3e"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Base7 SMAs","project":"Superalgos","id":"42e89cd9-acbe-49cd-b6f6-7671317796d6","savedPayload":{"position":{"x":11073.516140956957,"y":17144.702213328612},"targetPosition":{"x":11241.486516415418,"y":17515.355998969822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f155e2ed-7082-4021-a4ff-a6f3cfd5683d"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Base6 SMAs","project":"Superalgos","id":"a270e81a-4d70-4293-8a37-19191cf2ec23","savedPayload":{"position":{"x":11176.677768786107,"y":17112.984973336374},"targetPosition":{"x":11241.486516415418,"y":17515.355998969822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f5050eb2-0a99-464e-b5e2-2d8f40453e9a"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Base5 SMAs","project":"Superalgos","id":"d3d1bc15-201c-4d00-ba2e-6401e5392c14","savedPayload":{"position":{"x":11308.395529414094,"y":17117.52152380214},"targetPosition":{"x":11241.486516415418,"y":17515.355998969822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"01f32aa3-55e9-4f8c-80c7-997b52073274"}}}],"outputDatasetFolders":[],"id":"ad03dff7-56b2-4980-bc14-1b6c41fdf6cf","savedPayload":{"position":{"x":11241.486516415418,"y":17515.355998969822},"targetPosition":{"x":11427.923891797012,"y":17934.131710771882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Simple Moving Average (SMA) Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"d674a833-b9c8-4bdb-84de-e007ab243860","savedPayload":{"position":{"x":11372.391907582994,"y":17287.029491257614},"targetPosition":{"x":11477.595845032154,"y":17468.58334053084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"d2727d60-b26b-4e8b-a635-fbe78bc81240"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"ba857809-2273-4280-aa19-4b50837abccb","savedPayload":{"position":{"x":11457.701784390403,"y":17236.604263899466},"targetPosition":{"x":11477.595845032154,"y":17468.58334053084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"40e12ba8-59dc-4eaf-a30d-07bb8192e0a6","savedPayload":{"position":{"x":11516.240865570066,"y":17285.93915623869},"targetPosition":{"x":11477.595845032154,"y":17468.58334053084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"5f5e40cb-841e-4b18-a249-a04d541d31a0","savedPayload":{"position":{"x":11646.567809240092,"y":17311.01465490835},"targetPosition":{"x":11477.595845032154,"y":17468.58334053084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"b6aae3c7-2d70-4ffd-a5e5-951f0a565b13","savedPayload":{"position":{"x":11477.595845032154,"y":17468.58334053084},"targetPosition":{"x":11427.923891797012,"y":17934.131710771882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"d2727d60-b26b-4e8b-a635-fbe78bc81240","savedPayload":{"position":{"x":11680.848739056928,"y":17588.042619884007},"targetPosition":{"x":11427.923891797012,"y":17934.131710771882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"8b753072-e4c9-4671-a5ce-eea9e1c1ba0f","savedPayload":{"position":{"x":11820.489965011919,"y":17760.00736076534},"targetPosition":{"x":11427.923891797012,"y":17934.131710771882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"87c9e783-adc5-40e3-b1fb-fdb2994c1217","savedPayload":{"position":{"x":11854.281117311806,"y":17978.955338289215},"targetPosition":{"x":11427.923891797012,"y":17934.131710771882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f","savedPayload":{"position":{"x":11501.17654647416,"y":17891.427773537675},"targetPosition":{"x":11236.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Popular SMAs","config":"{\n \"codeName\": \"Popular-SMAs\",\n \"singularVariableName\": \"popularSMA\",\n \"pluralVariableName\": \"popularSMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"3b21f9d7-2cbc-4c23-80c8-cc5e5b06a22c","savedPayload":{"position":{"x":11600.730830411274,"y":17540.982057474786},"targetPosition":{"x":11600.730830411274,"y":17990.982057474786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"2c338fe0-385f-45ab-b210-b98ef013228d","savedPayload":{"position":{"x":11865.234193942886,"y":17626.92441000606},"targetPosition":{"x":11600.730830411274,"y":17990.982057474786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"673a7fbf-1a73-4220-a561-84cf8b11c3a7","savedPayload":{"position":{"x":12470.444471317933,"y":17197.919443865172},"targetPosition":{"x":12683.57280375448,"y":17340.427774878928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"305fc918-e6df-48d7-a7b5-726e3fa8f958","savedPayload":{"position":{"x":12683.57280375448,"y":17340.427774878928},"targetPosition":{"x":12991.29960269697,"y":17543.63490179658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"002ffd5e-583c-4af5-87eb-a886fd3bc50e","savedPayload":{"position":{"x":12936.123471306175,"y":16920.355881694733},"targetPosition":{"x":12958.85102388261,"y":17175.38997181171},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a305a94d-3af9-430a-8642-5ffb1229710f","savedPayload":{"position":{"x":12958.85102388261,"y":17175.38997181171},"targetPosition":{"x":12991.29960269697,"y":17543.63490179658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA20","config":"{\n \"codeName\": \"sma20\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma20","project":"Superalgos","id":"5adb676d-35a8-47b2-aa47-dc0e6edf8a81","savedPayload":{"position":{"x":13443.336778030538,"y":17111.61002307471},"targetPosition":{"x":13259.145932449086,"y":17287.73603107492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1657736e-6bc4-4279-9e65-5b0b0cf737cb","savedPayload":{"position":{"x":13259.145932449086,"y":17287.73603107492},"targetPosition":{"x":12991.29960269697,"y":17543.63490179658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA50","config":"{\n \"codeName\": \"sma50\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma50","project":"Superalgos","id":"85033109-c11c-43d2-84cc-4510dae276ca","savedPayload":{"position":{"x":13611.305715436905,"y":17627.04214358736},"targetPosition":{"x":13357.251563570568,"y":17593.331735860374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e7f1f78d-3a6d-49a2-b522-4423bd8d6a82","savedPayload":{"position":{"x":13357.251563570568,"y":17593.331735860374},"targetPosition":{"x":12991.29960269697,"y":17543.63490179658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA100","config":"{\n \"codeName\": \"sma100\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma100","project":"Superalgos","id":"43eebecb-65db-4e64-902a-582515e06daa","savedPayload":{"position":{"x":13313.247591223331,"y":18079.434497143986},"targetPosition":{"x":13181.254826210923,"y":17860.97703493739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"090fa9ea-f050-4315-9360-3958ce5debaa","savedPayload":{"position":{"x":13181.254826210923,"y":17860.97703493739},"targetPosition":{"x":12991.29960269697,"y":17543.63490179658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA200","config":"{\n \"codeName\": \"sma200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma200","project":"Superalgos","id":"5bdf982c-5480-4f90-9ec2-7708bf2d4943","savedPayload":{"position":{"x":12773.670560646326,"y":18128.10739092227},"targetPosition":{"x":12862.170633593152,"y":17890.25441054592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8146fe70-3592-4f27-af4a-d3d8e93268d1","savedPayload":{"position":{"x":12862.170633593152,"y":17890.25441054592},"targetPosition":{"x":12991.29960269697,"y":17543.63490179658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1b29d760-f7fe-48a5-928c-212a6f9a2486","savedPayload":{"position":{"x":12242.693978910502,"y":17782.395586271698},"targetPosition":{"x":11600.730830411274,"y":17990.982057474786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last200.push(candle.close) // Add the current close value to the last 200 array.\n\nif (variable.last200.length > 200) {\n variable.last200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 200 elements.\n}\n\nvariable.sma20 = calculateSMA(20)\nvariable.sma50 = calculateSMA(50)\nvariable.sma100 = calculateSMA(100)\nvariable.sma200 = calculateSMA(200)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last200.length - periods; i < variable.last200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last200.length=\" + variable.last200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"a9904080-6677-45e0-bcac-f336e882380a","savedPayload":{"position":{"x":12468.872683074307,"y":18036.47944407552},"targetPosition":{"x":12248.7894729092,"y":18083.259574509517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"shortcutKey":"f"}}},"id":"52a2ea69-6420-40f6-90f0-3330d33e6f67","savedPayload":{"position":{"x":12248.7894729092,"y":18083.259574509517},"targetPosition":{"x":12028.706262744094,"y":18130.039704943512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"2790fd06-6fe8-4175-bbfc-854d9909aeb4","savedPayload":{"position":{"x":12329.815035605581,"y":18464.454876408337},"targetPosition":{"x":12179.260649174837,"y":18297.247290675925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6d5772df-819e-4968-9e27-61981c08f0e2","savedPayload":{"position":{"x":12179.260649174837,"y":18297.247290675925},"targetPosition":{"x":12028.706262744094,"y":18130.039704943512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f1f881ff-a04f-4663-9747-2042d4581953","savedPayload":{"position":{"x":12028.706262744094,"y":18130.039704943512},"targetPosition":{"x":11600.730830411274,"y":17990.982057474786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34","savedPayload":{"position":{"x":11600.730830411274,"y":17990.982057474786},"targetPosition":{"x":11236.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"SMA Popular","id":"ddf21e96-c312-4ebe-9e2b-f56e8ea072aa"}}},{"type":"Product Definition","name":"Base7 SMAs","config":"{\n \"codeName\": \"Base7-SMAs\",\n \"singularVariableName\": \"base7SMA\",\n \"pluralVariableName\": \"base7SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"78a6ef37-4df8-4ac8-83a0-c9a732467c59","savedPayload":{"position":{"x":11803.706262744094,"y":17688.452341204855},"targetPosition":{"x":11664.648615275368,"y":18116.427773537675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"f155e2ed-7082-4021-a4ff-a6f3cfd5683d","savedPayload":{"position":{"x":12028.706262744094,"y":17851.92441000606},"targetPosition":{"x":11664.648615275368,"y":18116.427773537675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"6d7e37c5-d80e-44a3-8484-f532bcfc7819","savedPayload":{"position":{"x":13067.417599591397,"y":17923.116422777504},"targetPosition":{"x":13298.333593318817,"y":18026.477632153736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"87203f0b-0fb8-4875-8127-d715198bf01b","savedPayload":{"position":{"x":13298.333593318817,"y":18026.477632153736},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"bf74ad1e-a569-4428-a387-b0f39bb63759","savedPayload":{"position":{"x":13220.425236389947,"y":17712.461152725813},"targetPosition":{"x":13389.830689741633,"y":17901.69096166294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0bc477f0-8b7d-4c75-8613-0cc63a25a79d","savedPayload":{"position":{"x":13389.830689741633,"y":17901.69096166294},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA7","config":"{\n \"codeName\": \"sma7\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma7","project":"Superalgos","id":"1a89def9-4270-4584-93c3-86ca30cb184c","savedPayload":{"position":{"x":13444.977797239106,"y":17581.544153339284},"targetPosition":{"x":13523.543176053983,"y":17825.52556324174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a87dddd8-9806-45be-b9a9-0e3196da48a7","savedPayload":{"position":{"x":13523.543176053983,"y":17825.52556324174},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA14","config":"{\n \"codeName\": \"sma14\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma14","project":"Superalgos","id":"c0b78d39-a652-4d13-9fce-1b56d4e6ffbb","savedPayload":{"position":{"x":13703.136121894386,"y":17553.691965097147},"targetPosition":{"x":13676.144990623528,"y":17808.886495660056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"114a04b9-e5b6-4f60-ad99-760c10275f9e","savedPayload":{"position":{"x":13676.144990623528,"y":17808.886495660056},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA21","config":"{\n \"codeName\": \"sma21\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma21","project":"Superalgos","id":"4740139a-d2d7-4050-a0f6-145eef002bed","savedPayload":{"position":{"x":13951.07092288548,"y":17633.900951615273},"targetPosition":{"x":13822.853055477604,"y":17855.76511301012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac8182cd-7f7b-44e9-a91c-b470be594ef0","savedPayload":{"position":{"x":13822.853055477604,"y":17855.76511301012},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA28","config":"{\n \"codeName\": \"sma28\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma28","project":"Superalgos","id":"0a2f17a1-2663-477a-8c28-015592a67a7e","savedPayload":{"position":{"x":14142.173843900822,"y":17810.393893179487},"targetPosition":{"x":13938.598902789225,"y":17958.130869977824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"81c852eb-9b3e-4505-b81a-f236b39d770d","savedPayload":{"position":{"x":13938.598902789225,"y":17958.130869977824},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA35","config":"{\n \"codeName\": \"sma35\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma35","project":"Superalgos","id":"1a30763f-6398-475f-b232-ff0da4ad41fa","savedPayload":{"position":{"x":14249.312354030615,"y":18047.130043323723},"targetPosition":{"x":13998.366233158278,"y":18100.317942514102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a8a4dd40-6286-46b0-8f4d-61893d2d9234","savedPayload":{"position":{"x":13998.366233158278,"y":18100.317942514102},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA70","config":"{\n \"codeName\": \"sma70\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma70","project":"Superalgos","id":"07471d43-2432-4961-81b5-4aa1bb399df4","savedPayload":{"position":{"x":14250.589621846808,"y":18306.779419955812},"targetPosition":{"x":13998.599704419277,"y":18253.456156944154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9dbc330c-e654-4591-92d0-c3e92262436e","savedPayload":{"position":{"x":13998.599704419277,"y":18253.456156944154},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA140","config":"{\n \"codeName\": \"sma140\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma140","project":"Superalgos","id":"0ef6719d-cfa8-458e-a137-6bd2e77aa6fd","savedPayload":{"position":{"x":14144.205179463726,"y":18544.55660320917},"targetPosition":{"x":13937.462154050405,"y":18394.674447873127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"93814c2c-8fff-4415-9934-1356bf555015","savedPayload":{"position":{"x":13937.462154050405,"y":18394.674447873127},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA210","config":"{\n \"codeName\": \"sma210\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma210","project":"Superalgos","id":"037c98d5-1eef-4928-ade0-a70021337aa5","savedPayload":{"position":{"x":13950.412630791408,"y":18718.282998048362},"targetPosition":{"x":13822.922403668796,"y":18497.911587478895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"efbcaa0c-2bf3-44e6-aae3-4f73c6255c69","savedPayload":{"position":{"x":13822.922403668796,"y":18497.911587478895},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA280","config":"{\n \"codeName\": \"sma280\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma280","project":"Superalgos","id":"2bdc1e1e-b6a3-4e68-90b5-e88e64684804","savedPayload":{"position":{"x":13703.375846371768,"y":18798.954049356613},"targetPosition":{"x":13676.270425522162,"y":18544.780808046817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6b302071-d15f-43b3-9ab2-4b970a379ebc","savedPayload":{"position":{"x":13676.270425522162,"y":18544.780808046817},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA350","config":"{\n \"codeName\": \"sma350\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma350","project":"Superalgos","id":"18baf5c6-5aa5-4f66-8637-9966fdf4acf4","savedPayload":{"position":{"x":13445.172278806236,"y":18772.60498631521},"targetPosition":{"x":13523.592902832486,"y":18528.675972146935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f1de76b8-1665-4142-b8fc-712203bad655","savedPayload":{"position":{"x":13523.592902832486,"y":18528.675972146935},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA700","config":"{\n \"codeName\": \"sma700\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma700","project":"Superalgos","id":"c8f08ae8-f608-40f1-8df3-e4eb537a89ed","savedPayload":{"position":{"x":13219.923169659083,"y":18642.659717934876},"targetPosition":{"x":13389.85514569101,"y":18452.171969413837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"83b3c070-c0cb-4a4b-86ea-0b6292f57c13","savedPayload":{"position":{"x":13389.85514569101,"y":18452.171969413837},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA1400","config":"{\n \"codeName\": \"sma1400\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma1400","project":"Superalgos","id":"ca4c686e-61d0-4dc0-96f9-9ee80d856422","savedPayload":{"position":{"x":13065.94663787181,"y":18430.14861867591},"targetPosition":{"x":13298.605451028328,"y":18326.908347816407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e07922ab-0abb-4216-a534-07db74399c2a","savedPayload":{"position":{"x":13298.605451028328,"y":18326.908347816407},"targetPosition":{"x":13637.2076726312,"y":18176.962660168454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f3c4fe44-c417-4c98-9547-4b0c062f7bd7","savedPayload":{"position":{"x":12339.648615275368,"y":18116.427773537675},"targetPosition":{"x":11664.648615275368,"y":18116.427773537675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1400.push(candle.close) // Add the current close value to the last 1400 array.\n\nif (variable.last1400.length > 1400) {\n variable.last1400.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1400 elements.\n}\n\nvariable.sma7 = calculateSMA(7)\nvariable.sma14 = calculateSMA(14)\nvariable.sma21 = calculateSMA(21)\nvariable.sma28 = calculateSMA(28)\nvariable.sma35 = calculateSMA(35)\nvariable.sma70 = calculateSMA(70)\nvariable.sma140 = calculateSMA(140)\nvariable.sma210 = calculateSMA(210)\nvariable.sma280 = calculateSMA(280)\nvariable.sma350 = calculateSMA(350)\nvariable.sma700 = calculateSMA(700)\nvariable.sma1400 = calculateSMA(1400)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1400.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1400.length - periods; i < variable.last1400.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1400[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1400.length=\" + variable.last1400.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1400[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"27796e5a-2553-47c6-bddd-c8deaed05c2f","savedPayload":{"position":{"x":12476.241115659817,"y":18427.96894553973},"targetPosition":{"x":12252.473689201955,"y":18404.45004130451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e5d799ba-3a4f-45fb-8533-4c3de5d7886f","savedPayload":{"position":{"x":12252.473689201955,"y":18404.45004130451},"targetPosition":{"x":12028.706262744094,"y":18380.93113706929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1400 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1400 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"17ee3425-2a07-4523-b005-bac9dbf75184","savedPayload":{"position":{"x":12211.737752128203,"y":18792.026593008457},"targetPosition":{"x":12120.222007436148,"y":18586.478865038873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e9e5c8c-98e2-4bbf-884a-071449177692","savedPayload":{"position":{"x":12120.222007436148,"y":18586.478865038873},"targetPosition":{"x":12028.706262744094,"y":18380.93113706929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6bd8fef6-49f7-45c5-9f9f-944785f8578e","savedPayload":{"position":{"x":12028.706262744094,"y":18380.93113706929},"targetPosition":{"x":11664.648615275368,"y":18116.427773537675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6","savedPayload":{"position":{"x":11664.648615275368,"y":18116.427773537675},"targetPosition":{"x":11236.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"SMA Base 7","id":"515565ff-dee2-4adf-adaf-b4cfea5f5dbd"}}},{"type":"Product Definition","name":"Base11 SMAs","config":"{\n \"codeName\": \"Base11-SMAs\",\n \"singularVariableName\": \"base11SMA\",\n \"pluralVariableName\": \"base11SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"af9b9cef-2a74-486f-b79e-047d68669a1f","savedPayload":{"position":{"x":11951.17654647416,"y":17891.427773537675},"targetPosition":{"x":11686.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"de5cfa30-edbf-4d5b-8d7f-facfb69a0f3e","savedPayload":{"position":{"x":12114.648615275368,"y":18116.427773537675},"targetPosition":{"x":11686.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"a6c93c64-52da-4dad-bff9-9f6d9b4606b9","savedPayload":{"position":{"x":12815.839933983814,"y":17808.111121777427},"targetPosition":{"x":12930.869304078122,"y":18035.811005961208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5e8f3d9c-8284-4b92-b7f5-ad7498e5ef3d","savedPayload":{"position":{"x":12930.869304078122,"y":18035.811005961208},"targetPosition":{"x":13097.856729092255,"y":18365.693706624377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"ac16b3d1-e3b0-4b79-9047-cd137c6eeafc","savedPayload":{"position":{"x":13293.607527255394,"y":17765.74634874688},"targetPosition":{"x":13214.044573516047,"y":18009.605687813662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"43337725-24dd-4c1a-ae8d-2562a028d02d","savedPayload":{"position":{"x":13214.044573516047,"y":18009.605687813662},"targetPosition":{"x":13097.856729092255,"y":18365.693706624377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA11","config":"{\n \"codeName\": \"sma11\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma11","project":"Superalgos","id":"87a1e288-0966-46e9-8a4f-1ddbb3f8976c","savedPayload":{"position":{"x":13656.085062508537,"y":18081.67391036068},"targetPosition":{"x":13427.810877330005,"y":18197.794536757327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6a67dbd9-1e8e-4100-849f-5ea77ea67985","savedPayload":{"position":{"x":13427.810877330005,"y":18197.794536757327},"targetPosition":{"x":13097.856729092255,"y":18365.693706624377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA22","config":"{\n \"codeName\": \"sma22\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma22","project":"Superalgos","id":"8652042b-c373-4024-9fbf-c582a55134e0","savedPayload":{"position":{"x":13693.003048222032,"y":18558.388889273087},"targetPosition":{"x":13450.14208525616,"y":18479.773963090887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a5665ca1-e399-4e8a-8e04-8c0b153702e4","savedPayload":{"position":{"x":13450.14208525616,"y":18479.773963090887},"targetPosition":{"x":13097.856729092255,"y":18365.693706624377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA33","config":"{\n \"codeName\": \"sma33\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma33","project":"Superalgos","id":"738317b6-dcb4-4699-a48c-170491515eb5","savedPayload":{"position":{"x":13382.82630306523,"y":18922.50504144711},"targetPosition":{"x":13266.09417628483,"y":18694.477320538124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f35c54ed-6469-4cfa-94cf-f94f1c916e91","savedPayload":{"position":{"x":13266.09417628483,"y":18694.477320538124},"targetPosition":{"x":13097.856729092255,"y":18365.693706624377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA55","config":"{\n \"codeName\": \"sma55\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma55","project":"Superalgos","id":"675e9f6c-1e0d-4d09-ab69-88252ef60fe2","savedPayload":{"position":{"x":12906.084990925701,"y":18959.098790523312},"targetPosition":{"x":12984.690376271374,"y":18717.4131111295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c17d77b3-4d80-462d-88ba-ef421928dde1","savedPayload":{"position":{"x":12984.690376271374,"y":18717.4131111295},"targetPosition":{"x":13097.856729092255,"y":18365.693706624377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA111","config":"{\n \"codeName\": \"sma111\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma111","project":"Superalgos","id":"b32a4356-312c-4536-b30b-63bad302e857","savedPayload":{"position":{"x":12543.670310576828,"y":18650.173951610268},"targetPosition":{"x":12769.457037473414,"y":18533.46183379377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f49152b4-5306-41d2-966b-dba92eef2590","savedPayload":{"position":{"x":12769.457037473414,"y":18533.46183379377},"targetPosition":{"x":13097.856729092255,"y":18365.693706624377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a099f207-16db-4f66-adfb-1529fa350385","savedPayload":{"position":{"x":12328.636331441776,"y":18464.07189220949},"targetPosition":{"x":11686.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last200.push(candle.close) // Add the current close value to the last 200 array.\n\nif (variable.last200.length > 200) {\n variable.last200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 200 elements.\n}\n\nvariable.sma11 = calculateSMA(11)\nvariable.sma22 = calculateSMA(22)\nvariable.sma33 = calculateSMA(33)\nvariable.sma55 = calculateSMA(55)\nvariable.sma111 = calculateSMA(111)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last200.length - periods; i < variable.last200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last200.length=\" + variable.last200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"317788d5-11f5-48a6-ab0c-252cdcef7728","savedPayload":{"position":{"x":12362.272002413332,"y":18802.57455785924},"targetPosition":{"x":12156.724274443746,"y":18711.058813167183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cce46065-5c04-428f-823f-4cb5e67b212a","savedPayload":{"position":{"x":12156.724274443746,"y":18711.058813167183},"targetPosition":{"x":11951.17654647416,"y":18619.543068475126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"70d5537e-f682-4322-992b-99a55edb2582","savedPayload":{"position":{"x":11998.214354944603,"y":19067.077921390846},"targetPosition":{"x":11974.695450709381,"y":18843.310494932986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f0707196-a2ac-4aee-99df-48a7fe77c365","savedPayload":{"position":{"x":11974.695450709381,"y":18843.310494932986},"targetPosition":{"x":11951.17654647416,"y":18619.543068475126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"663d58c6-e03e-4923-8cc7-03cc860aa318","savedPayload":{"position":{"x":11951.17654647416,"y":18619.543068475126},"targetPosition":{"x":11686.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"05fabbf9-7798-4a53-995e-53ae74bef3de","savedPayload":{"position":{"x":11686.673182942548,"y":18255.4854210064},"targetPosition":{"x":11236.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"SMA Base 11","id":"4a61ac35-a1ae-40f4-b3da-f81ae796ee00"}}},{"type":"Product Definition","name":"Base5 SMAs","config":"{\n \"codeName\": \"Base5-SMAs\",\n \"singularVariableName\": \"base5SMA\",\n \"pluralVariableName\": \"base5SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Muti-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"a5d28568-fb58-469a-9820-b9f0e8eab705","savedPayload":{"position":{"x":12028.706262744094,"y":18130.039704943512},"targetPosition":{"x":11664.648615275368,"y":18394.543068475126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"01f32aa3-55e9-4f8c-80c7-997b52073274","savedPayload":{"position":{"x":12114.648615275368,"y":18394.543068475126},"targetPosition":{"x":11664.648615275368,"y":18394.543068475126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"949a2e58-5d07-475e-92b9-e0ef4b9fd9e7","savedPayload":{"position":{"x":12631.430740513992,"y":18527.19541638269},"targetPosition":{"x":12757.991933540474,"y":18748.88779178959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"65545f82-9022-4d4c-bd09-b900182bae75","savedPayload":{"position":{"x":12757.991933540474,"y":18748.88779178959},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"551c49da-26d4-438e-aff4-2a0ecc18ce7f","savedPayload":{"position":{"x":12878.38246006576,"y":18446.077083286185},"targetPosition":{"x":12904.469362235344,"y":18701.556316630446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"74445dab-2c42-4c71-b179-04b98b5a8e27","savedPayload":{"position":{"x":12904.469362235344,"y":18701.556316630446},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA5","config":"{\n \"codeName\": \"sma5\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma5","project":"Superalgos","id":"1c996969-c249-4b55-845c-62205e91fc68","savedPayload":{"position":{"x":13136.655925362178,"y":18474.32374860043},"targetPosition":{"x":13057.07326191098,"y":18717.06779996958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3b9f6fbf-20d8-4952-b5e8-34937746fef7","savedPayload":{"position":{"x":13057.07326191098,"y":18717.06779996958},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA10","config":"{\n \"codeName\": \"sma10\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma10","project":"Superalgos","id":"d16592d7-2f02-49ae-8857-dd7098990f20","savedPayload":{"position":{"x":13362.275478941527,"y":18603.53716795297},"targetPosition":{"x":13189.39813258298,"y":18794.6644705036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"73cb2d83-d59b-457e-af00-68a8d0e2b016","savedPayload":{"position":{"x":13189.39813258298,"y":18794.6644705036},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA15","config":"{\n \"codeName\": \"sma15\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma15","project":"Superalgos","id":"147ea31e-2735-4bae-b6a9-99072ed3d7a5","savedPayload":{"position":{"x":13514.859298171934,"y":18814.25026908552},"targetPosition":{"x":13280.593586645118,"y":18918.226137238154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"666f82ef-a002-4067-9edb-6ddbe2861056","savedPayload":{"position":{"x":13280.593586645118,"y":18918.226137238154},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA20","config":"{\n \"codeName\": \"sma20\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma20","project":"Superalgos","id":"f2507a4f-7f65-4d22-b062-1834c9269285","savedPayload":{"position":{"x":13568.906674373367,"y":19068.685962409374},"targetPosition":{"x":13312.502699284716,"y":19068.65750665126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a6a82705-0a6c-425e-afab-099a63570ada","savedPayload":{"position":{"x":13312.502699284716,"y":19068.65750665126},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA25","config":"{\n \"codeName\": \"sma25\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma25","project":"Superalgos","id":"53aead0b-0c80-4e74-b19b-7290672f7444","savedPayload":{"position":{"x":13514.719449905871,"y":19323.041859592275},"targetPosition":{"x":13280.823325748614,"y":19218.971709928708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cbc6da93-d064-4762-a32f-ae1071a1ebe2","savedPayload":{"position":{"x":13280.823325748614,"y":19218.971709928708},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA50","config":"{\n \"codeName\": \"sma50\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma50","project":"Superalgos","id":"0c126131-e3bd-4d43-a037-53e54e268300","savedPayload":{"position":{"x":13362.372497644017,"y":19534.262084955666},"targetPosition":{"x":13189.975833161152,"y":19343.183901652937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1cda317e-4b82-4bd9-8b07-71ad7365e524","savedPayload":{"position":{"x":13189.975833161152,"y":19343.183901652937},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA100","config":"{\n \"codeName\": \"sma100\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma100","project":"Superalgos","id":"77c897e8-ab38-4c88-a215-e67d53401196","savedPayload":{"position":{"x":13136.47762679262,"y":19663.422695891826},"targetPosition":{"x":13057.288268143111,"y":19421.03251610179},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7a66586-158d-40e2-be75-1077a91b0d7e","savedPayload":{"position":{"x":13057.288268143111,"y":19421.03251610179},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA150","config":"{\n \"codeName\": \"sma150\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma150","project":"Superalgos","id":"1e5d6df6-a1af-49f0-a06e-08c362b1cd34","savedPayload":{"position":{"x":12878.696847407744,"y":19691.424104771806},"targetPosition":{"x":12904.485327109865,"y":19436.379588121057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"83260971-1089-4349-9019-29ea469a9d24","savedPayload":{"position":{"x":12904.485327109865,"y":19436.379588121057},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA200","config":"{\n \"codeName\": \"sma200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma200","project":"Superalgos","id":"bc63f986-17dd-48fb-892b-7f2d2b033cc5","savedPayload":{"position":{"x":12630.731357409528,"y":19613.336466167246},"targetPosition":{"x":12759.711387513235,"y":19389.20416988291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"07a55760-46cf-44e8-b2f9-f55a6bb5a81c","savedPayload":{"position":{"x":12759.711387513235,"y":19389.20416988291},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA250","config":"{\n \"codeName\": \"sma250\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma250","project":"Superalgos","id":"1bdc84fd-9eac-4b07-9ff6-56f80ec08553","savedPayload":{"position":{"x":12436.06979659692,"y":19438.111284062434},"targetPosition":{"x":12643.4009817867,"y":19286.268684278046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8b672a62-1ae1-4e92-819e-597fa42da35b","savedPayload":{"position":{"x":12643.4009817867,"y":19286.268684278046},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA 500","config":"{\n \"codeName\": \"sma500\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma500","project":"Superalgos","id":"0d17399e-97d1-459d-8864-6c72967f0fd4","savedPayload":{"position":{"x":12331.676468515354,"y":19200.173581719828},"targetPosition":{"x":12579.954354793055,"y":19145.993190409758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"92405f1d-9adf-4a70-af18-f2537ba2b0a0","savedPayload":{"position":{"x":12579.954354793055,"y":19145.993190409758},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA 1000","config":"{\n \"codeName\": \"sma1000\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma1000","project":"Superalgos","id":"e2364abc-b940-4b52-a506-587c1a5941e3","savedPayload":{"position":{"x":12340.072122910238,"y":18941.379679370883},"targetPosition":{"x":12588.711494420986,"y":18993.090678828456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5318bf3f-6e8a-46c8-8b04-3769bde03438","savedPayload":{"position":{"x":12588.711494420986,"y":18993.090678828456},"targetPosition":{"x":12942.143576853261,"y":19068.65265764684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"69298c3e-479d-4eb6-a972-35f8f079ce86","savedPayload":{"position":{"x":12210.735086478457,"y":18791.298113772547},"targetPosition":{"x":11664.648615275368,"y":18394.543068475126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1000.push(candle.close) // Add the current close value to the last 1000 array.\n\nif (variable.last1000.length > 1000) {\n variable.last1000.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1000 elements.\n}\n\nvariable.sma5 = calculateSMA(5)\nvariable.sma10 = calculateSMA(10)\nvariable.sma15 = calculateSMA(15)\nvariable.sma20 = calculateSMA(20)\nvariable.sma25 = calculateSMA(25)\nvariable.sma50 = calculateSMA(50)\nvariable.sma100 = calculateSMA(100)\nvariable.sma150 = calculateSMA(150)\nvariable.sma200 = calculateSMA(200)\nvariable.sma250 = calculateSMA(250)\nvariable.sma500 = calculateSMA(500)\nvariable.sma1000 = calculateSMA(1000)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1000.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1000.length - periods; i < variable.last1000.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1000[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1000.length=\" + variable.last1000.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1000[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"45ebc09e-bada-4bcd-8780-a2f56f23f037","savedPayload":{"position":{"x":12138.121434208922,"y":19123.627273669434},"targetPosition":{"x":11970.913848476508,"y":18973.07288723869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f65693cf-81ef-497e-86d2-a7ad9b74a1ca","savedPayload":{"position":{"x":11970.913848476508,"y":18973.07288723869},"targetPosition":{"x":11803.706262744094,"y":18822.518500807946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1000 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1000 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"22db43d3-db5d-43b6-80fc-1faa358bfadb","savedPayload":{"position":{"x":11710.146001876103,"y":19262.68492113816},"targetPosition":{"x":11756.926132310098,"y":19042.601710973053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"12255c95-c680-43af-be1b-61ee37e0e827","savedPayload":{"position":{"x":11756.926132310098,"y":19042.601710973053},"targetPosition":{"x":11803.706262744094,"y":18822.518500807946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd8c13e4-2b9e-4a42-a576-539d412f239a","savedPayload":{"position":{"x":11803.706262744094,"y":18822.518500807946},"targetPosition":{"x":11664.648615275368,"y":18394.543068475126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2dcb55de-1673-409e-aa52-f51e7c7f8fa3","savedPayload":{"position":{"x":11664.648615275368,"y":18394.543068475126},"targetPosition":{"x":11236.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"SMA Base 5","id":"888c381d-457d-4421-8401-a7475b42ff03"}}},{"type":"Product Definition","name":"Base6 SMAs","config":"{\n \"codeName\": \"Base6-SMAs\",\n \"singularVariableName\": \"base6SMA\",\n \"pluralVariableName\": \"base6SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"c0862b3d-d35a-4d3e-8d80-258b8a01c37c","savedPayload":{"position":{"x":12028.706262744094,"y":18380.93113706929},"targetPosition":{"x":11600.730830411274,"y":18519.988784538014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"f5050eb2-0a99-464e-b5e2-2d8f40453e9a","savedPayload":{"position":{"x":12028.706262744094,"y":18659.04643200674},"targetPosition":{"x":11600.730830411274,"y":18519.988784538014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Being","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"fc90c194-682d-4d5c-923b-89b19e49f234","savedPayload":{"position":{"x":12518.123842367757,"y":18796.742666167233},"targetPosition":{"x":12608.575729356638,"y":19034.63004887762},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"37fc0238-a202-4c33-89ca-6a4e24d4e1ac","savedPayload":{"position":{"x":12608.575729356638,"y":19034.63004887762},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"c1b3c2c1-68aa-443a-8c69-c50dcd34998f","savedPayload":{"position":{"x":12775.14039598213,"y":18756.60976374205},"targetPosition":{"x":12761.227712057589,"y":19010.397701422422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7757e0dd-c3b4-48b4-bdf7-e517ce8df601","savedPayload":{"position":{"x":12761.227712057589,"y":19010.397701422422},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA6","config":"{\n \"codeName\": \"sma6\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma6","project":"Superalgos","id":"8a633674-750f-492d-8bfc-ac6f2e79793a","savedPayload":{"position":{"x":13025.56264021057,"y":18824.417620048924},"targetPosition":{"x":12909.760462591214,"y":19051.0955755378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"12d5b8f1-c83c-43a3-bf45-6f85e85a6df9","savedPayload":{"position":{"x":12909.760462591214,"y":19051.0955755378},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA12","config":"{\n \"codeName\": \"sma12\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma12","project":"Superalgos","id":"11e2a0cd-851a-425e-b2bd-f3cff1b00c77","savedPayload":{"position":{"x":13229.963678740656,"y":18986.285522403843},"targetPosition":{"x":13028.646357813344,"y":19148.79058530685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c1f3e32-9310-4ece-a796-cf9225172978","savedPayload":{"position":{"x":13028.646357813344,"y":19148.79058530685},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA18","config":"{\n \"codeName\": \"sma18\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma18","project":"Superalgos","id":"0cbf493f-fa5f-41a8-a928-754ec9720fe0","savedPayload":{"position":{"x":13347.372799195153,"y":19219.292222188866},"targetPosition":{"x":13100.520254887451,"y":19285.057023997735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"12bf3180-d354-451d-ba14-81cdd9d95c19","savedPayload":{"position":{"x":13100.520254887451,"y":19285.057023997735},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA24","config":"{\n \"codeName\": \"sma24\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma24","project":"Superalgos","id":"4d677df1-74ec-417e-a518-2b8946c84542","savedPayload":{"position":{"x":13360.141975674167,"y":19478.670782592704},"targetPosition":{"x":13108.393900146672,"y":19438.87379146364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3e3a6434-aaa4-4170-8cdc-cca21c8d0863","savedPayload":{"position":{"x":13108.393900146672,"y":19438.87379146364},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA30","config":"{\n \"codeName\": \"sma30\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma30","project":"Superalgos","id":"3a92b258-6c21-4747-ba08-16cf9ba814ec","savedPayload":{"position":{"x":13267.006894894705,"y":19721.917511299434},"targetPosition":{"x":13052.178368936238,"y":19582.47502335127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"22bc84a6-f431-464c-a7e0-b9249b32abdf","savedPayload":{"position":{"x":13052.178368936238,"y":19582.47502335127},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA60","config":"{\n \"codeName\": \"sma60\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma60","project":"Superalgos","id":"d9a44db6-45eb-47f8-975b-ee8dccd0659d","savedPayload":{"position":{"x":13083.105056949393,"y":19906.38760759629},"targetPosition":{"x":12943.108340732419,"y":19691.05840464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c3d4d569-0b7e-44b9-b2f0-84d9a91ee6b0","savedPayload":{"position":{"x":12943.108340732419,"y":19691.05840464},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA120","config":"{\n \"codeName\": \"sma120\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma120","project":"Superalgos","id":"90fee0af-0e23-44de-aa16-d446857485f4","savedPayload":{"position":{"x":12839.6961331139,"y":20000.10704137432},"targetPosition":{"x":12799.363344164169,"y":19746.41445018096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f572d61-ff96-4ccb-90ca-7a26d5cc8322","savedPayload":{"position":{"x":12799.363344164169,"y":19746.41445018096},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA180","config":"{\n \"codeName\": \"sma180\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma180","project":"Superalgos","id":"031e5277-e225-4307-a247-f49dae98ac26","savedPayload":{"position":{"x":12580.072359770787,"y":19986.739674337266},"targetPosition":{"x":12645.99599212076,"y":19738.4472573072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e3eb2e1-3cb4-4f0b-9a5a-5196bb4af3af","savedPayload":{"position":{"x":12645.99599212076,"y":19738.4472573072},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA240","config":"{\n \"codeName\": \"sma240\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma240","project":"Superalgos","id":"cb9604b0-3004-48d5-84fe-680747edb943","savedPayload":{"position":{"x":12348.34363920327,"y":19868.483455275786},"targetPosition":{"x":12509.020271243964,"y":19668.81530964601},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"83c2137c-676d-4a43-88c1-e9a5f69cafeb","savedPayload":{"position":{"x":12509.020271243964,"y":19668.81530964601},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA300","config":"{\n \"codeName\": \"sma300\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma300","project":"Superalgos","id":"8c3259f1-e88b-40a2-9af2-a0e554affbd2","savedPayload":{"position":{"x":12184.214335572466,"y":19665.501086883618},"targetPosition":{"x":12412.16318559575,"y":19549.007697483048},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"829bfd3a-8c69-4e51-8951-a1d7cb0b8c6f","savedPayload":{"position":{"x":12412.16318559575,"y":19549.007697483048},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA600","config":"{\n \"codeName\": \"sma600\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma600","project":"Superalgos","id":"501b1e82-840a-4288-801d-38a5e5c7f7cb","savedPayload":{"position":{"x":12116.720676417353,"y":19414.84523130682},"targetPosition":{"x":12372.563512092525,"y":19400.31128154793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7174f99-231c-4188-8f4a-95a34c0c35f8","savedPayload":{"position":{"x":12372.563512092525,"y":19400.31128154793},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA1200","config":"{\n \"codeName\": \"sma1200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma1200","project":"Superalgos","id":"0554601a-009b-47a2-8e0c-c7d6f3901a9e","savedPayload":{"position":{"x":12157.35115053918,"y":19169.246307242243},"targetPosition":{"x":12396.796880595488,"y":19247.943201583694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f6f0c544-4054-4cb4-9be1-14ffa23c5251","savedPayload":{"position":{"x":12396.796880595488,"y":19247.943201583694},"targetPosition":{"x":12741.319027776819,"y":19380.777803530273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a84f4438-cabc-4c9a-bd9c-0338e55a6e15","savedPayload":{"position":{"x":12078.027907712194,"y":18997.285861838933},"targetPosition":{"x":11600.730830411274,"y":18519.988784538014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1200.push(candle.close) // Add the current close value to the last 1200 array.\n\nif (variable.last1200.length > 1200) {\n variable.last1200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1200 elements.\n}\n\nvariable.sma6 = calculateSMA(6)\nvariable.sma12 = calculateSMA(12)\nvariable.sma18 = calculateSMA(18)\nvariable.sma24 = calculateSMA(24)\nvariable.sma30 = calculateSMA(30)\nvariable.sma60 = calculateSMA(60)\nvariable.sma120 = calculateSMA(120)\nvariable.sma180 = calculateSMA(180)\nvariable.sma240 = calculateSMA(240)\nvariable.sma300 = calculateSMA(300)\nvariable.sma600 = calculateSMA(600)\nvariable.sma1200 = calculateSMA(1200)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1200.length - periods; i < variable.last1200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1200.length=\" + variable.last1200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"f2c97b70-717a-4f98-be7c-d76dd94b8227","savedPayload":{"position":{"x":11825.730830411274,"y":19359.700216241014},"targetPosition":{"x":11713.230830411274,"y":19164.844500389514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96841e7b-90d9-4508-8933-4f0f9769800e","savedPayload":{"position":{"x":11713.230830411274,"y":19164.844500389514},"targetPosition":{"x":11600.730830411274,"y":18969.988784538014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"14dcff53-0599-4529-8a5d-5cf92a5c33c8","savedPayload":{"position":{"x":11375.730830411274,"y":19359.700216241014},"targetPosition":{"x":11488.230830411274,"y":19164.844500389514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2863a8f-8f38-4c47-9f48-0bd45b628fa0","savedPayload":{"position":{"x":11488.230830411274,"y":19164.844500389514},"targetPosition":{"x":11600.730830411274,"y":18969.988784538014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"948be5d9-da96-488a-bb15-f8cd94777231","savedPayload":{"position":{"x":11600.730830411274,"y":18969.988784538014},"targetPosition":{"x":11600.730830411274,"y":18519.988784538014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4ae22e54-cd02-4e2e-b638-1c5ea9a171ac","savedPayload":{"position":{"x":11600.730830411274,"y":18519.988784538014},"targetPosition":{"x":11236.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"SMA Base 6","id":"6ace920a-3a4b-4d28-8f04-4c2ecd3dfeb8"}}},{"type":"Product Definition","name":"Base12 SMAs","config":"{\n \"codeName\": \"Base12-SMAs\",\n \"singularVariableName\": \"base12SMA\",\n \"pluralVariableName\": \"base12SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"6ba76363-0f50-4e67-8678-3eb4fd6d07d6","savedPayload":{"position":{"x":11951.17654647416,"y":18619.543068475126},"targetPosition":{"x":11501.17654647416,"y":18619.543068475126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"92d92b3e-6870-499b-bfec-33bab220bf62","savedPayload":{"position":{"x":11865.234193942886,"y":18884.04643200674},"targetPosition":{"x":11501.17654647416,"y":18619.543068475126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"d44292f3-8960-448b-8339-32147b8bb1c3","savedPayload":{"position":{"x":12268.537839892972,"y":19160.66778883406},"targetPosition":{"x":12233.559112923682,"y":19414.005128872792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bcec1860-262e-4125-bdf4-a8f798d9d4ff","savedPayload":{"position":{"x":12233.559112923682,"y":19414.005128872792},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"91264df6-db08-498e-a039-fec9b0cd09a5","savedPayload":{"position":{"x":12528.468904962538,"y":19260.58340178264},"targetPosition":{"x":12388.794395686142,"y":19471.129101190952},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0ef8d741-e876-446e-86ac-146b4f33d8e8","savedPayload":{"position":{"x":12388.794395686142,"y":19471.129101190952},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA12","config":"{\n \"codeName\": \"sma12\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma12","project":"Superalgos","id":"c694dcde-b622-4d71-b2cf-e42e1b4934ec","savedPayload":{"position":{"x":12721.623219845791,"y":19460.514484498093},"targetPosition":{"x":12500.851560287909,"y":19591.98779683995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"daf8aa00-f032-412e-b319-e7c581611db0","savedPayload":{"position":{"x":12500.851560287909,"y":19591.98779683995},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA24","config":"{\n \"codeName\": \"sma24\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma24","project":"Superalgos","id":"445b00ba-46a1-4e79-b762-72c521223b5f","savedPayload":{"position":{"x":12808.521978966688,"y":19725.347412753305},"targetPosition":{"x":12551.98980814482,"y":19747.980357115877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"255fdffa-cdbb-428b-a54e-14448f7cda29","savedPayload":{"position":{"x":12551.98980814482,"y":19747.980357115877},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA36","config":"{\n \"codeName\": \"sma36\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma36","project":"Superalgos","id":"c9c11106-98b6-4fcb-b30b-d49263a05d95","savedPayload":{"position":{"x":12771.19230375399,"y":20001.243759379897},"targetPosition":{"x":12530.784645915264,"y":19910.896189088067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"628c3c4f-7ef7-4008-bada-76e4edf6de42","savedPayload":{"position":{"x":12530.784645915264,"y":19910.896189088067},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA48","config":"{\n \"codeName\": \"sma48\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma48","project":"Superalgos","id":"8e1cfb60-cb51-4625-a36b-75d64381840d","savedPayload":{"position":{"x":12616.012827625196,"y":20232.509685482728},"targetPosition":{"x":12440.757875918833,"y":20049.234354919434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1aa9fd38-51e5-4158-9bb2-31dbc8f933d0","savedPayload":{"position":{"x":12440.757875918833,"y":20049.234354919434},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA60","config":"{\n \"codeName\": \"sma60\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma60","project":"Superalgos","id":"6fe04671-6298-4ef4-9ef8-779eafc1645d","savedPayload":{"position":{"x":12377.539737275205,"y":20375.747388592714},"targetPosition":{"x":12298.29594304106,"y":20131.966711366957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d76d7819-b542-4ee8-98fd-539ec3325e2c","savedPayload":{"position":{"x":12298.29594304106,"y":20131.966711366957},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA120","config":"{\n \"codeName\": \"sma120\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma120","project":"Superalgos","id":"f8abde07-3312-4983-bff2-65ed4f475a3f","savedPayload":{"position":{"x":12100.598608405107,"y":20402.012882846087},"targetPosition":{"x":12134.883822485106,"y":20146.590658265293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0e696147-e020-4056-8ad4-40ad79cba391","savedPayload":{"position":{"x":12134.883822485106,"y":20146.590658265293},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA240","config":"{\n \"codeName\": \"sma240\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma240","project":"Superalgos","id":"1ea2c145-6dcf-4e8a-908a-b12e08a8d658","savedPayload":{"position":{"x":11839.54590068695,"y":20303.914923392564},"targetPosition":{"x":11980.369703744356,"y":20089.790790351974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e02938c9-f5b1-49f7-8e63-f8637f6d1d4d","savedPayload":{"position":{"x":11980.369703744356,"y":20089.790790351974},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA360","config":"{\n \"codeName\": \"sma360\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma360","project":"Superalgos","id":"16ab9e8b-cb14-4a59-b7b3-0a1d13dbea5b","savedPayload":{"position":{"x":11647.368845844165,"y":20102.64379755925},"targetPosition":{"x":11866.446501467308,"y":19970.949212239215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fe671bcf-1d71-4081-a100-f4bbc59203c7","savedPayload":{"position":{"x":11866.446501467308,"y":19970.949212239215},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA480","config":"{\n \"codeName\": \"sma480\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma480","project":"Superalgos","id":"135a34fc-3cc8-4555-b1b9-c8ea03150aff","savedPayload":{"position":{"x":11560.911913255317,"y":19836.792972487285},"targetPosition":{"x":11815.946311079933,"y":19814.105984994203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"85a59bf2-d419-43c9-a287-68902b8cb199","savedPayload":{"position":{"x":11815.946311079933,"y":19814.105984994203},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA600","config":"{\n \"codeName\": \"sma600\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma600","project":"Superalgos","id":"cacf8e3b-77d3-4697-9ca5-51cff50afb6c","savedPayload":{"position":{"x":11598.011325828462,"y":19562.1155933226},"targetPosition":{"x":11838.187213857931,"y":19651.288307289935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"608a2a98-bd6e-49e0-b202-afff3553337d","savedPayload":{"position":{"x":11838.187213857931,"y":19651.288307289935},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA1200","config":"{\n \"codeName\": \"sma1200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma1200","project":"Superalgos","id":"2e1c84ea-2cb3-4936-8106-623dcdff8782","savedPayload":{"position":{"x":11741.261685859681,"y":19337.76852914406},"targetPosition":{"x":11929.582638764146,"y":19513.73482505784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dda31bad-8835-446a-9015-4e15ae4cb845","savedPayload":{"position":{"x":11929.582638764146,"y":19513.73482505784},"targetPosition":{"x":12183.99236509009,"y":19780.650445065086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f46175dc-dfd2-4e1e-a60c-554867b5f0a5","savedPayload":{"position":{"x":11709.763017677249,"y":19261.506216974354},"targetPosition":{"x":11501.17654647416,"y":18619.543068475126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1200.push(candle.close) // Add the current close value to the last 1200 array.\n\nif (variable.last1200.length > 1200) {\n variable.last1200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1200 elements.\n}\n\nvariable.sma12 = calculateSMA(12)\nvariable.sma24 = calculateSMA(24)\nvariable.sma36 = calculateSMA(36)\nvariable.sma48 = calculateSMA(48)\nvariable.sma60 = calculateSMA(60)\nvariable.sma120 = calculateSMA(120)\nvariable.sma240 = calculateSMA(240)\nvariable.sma360 = calculateSMA(360)\nvariable.sma480 = calculateSMA(480)\nvariable.sma600 = calculateSMA(600)\nvariable.sma1200 = calculateSMA(1200)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1200.length - periods; i < variable.last1200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1200.length=\" + variable.last1200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"fba7176b-58ff-4bd6-95de-ad6f88de4cda","savedPayload":{"position":{"x":11455.679159873425,"y":19487.68492113816},"targetPosition":{"x":11408.89902943943,"y":19267.601710973053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"daf2fb19-bfda-4248-a0c6-8e364fe863ee","savedPayload":{"position":{"x":11408.89902943943,"y":19267.601710973053},"targetPosition":{"x":11362.118899005434,"y":19047.518500807946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"4d3f1fee-e71d-46cd-a50b-69176de5e1e8","savedPayload":{"position":{"x":11027.703727540606,"y":19348.627273669434},"targetPosition":{"x":11194.91131327302,"y":19198.07288723869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08365c70-c9ba-481d-abb8-62dc21067754","savedPayload":{"position":{"x":11194.91131327302,"y":19198.07288723869},"targetPosition":{"x":11362.118899005434,"y":19047.518500807946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4aa28d66-d2c5-40d1-9b42-b6adb1e94d1c","savedPayload":{"position":{"x":11362.118899005434,"y":19047.518500807946},"targetPosition":{"x":11501.17654647416,"y":18619.543068475126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"723d28e9-a010-48c5-bda0-43a4c2343ddf","savedPayload":{"position":{"x":11501.17654647416,"y":18619.543068475126},"targetPosition":{"x":11236.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition","name":"Base30 SMAs","config":"{\n \"codeName\": \"Base30-SMAs\",\n \"singularVariableName\": \"base30SMA\",\n \"pluralVariableName\": \"base30SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"4c486321-22e0-4991-9a1c-571bada649ad","savedPayload":{"position":{"x":11803.706262744094,"y":18822.518500807946},"targetPosition":{"x":11375.730830411274,"y":18683.46085333922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"819688c9-c7bd-444b-9658-2a4379125c72","savedPayload":{"position":{"x":11640.234193942886,"y":19047.518500807946},"targetPosition":{"x":11375.730830411274,"y":18683.46085333922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"16806650-2bfb-4709-acbd-aca1549c16e8","savedPayload":{"position":{"x":11968.57719225152,"y":19374.30146172853},"targetPosition":{"x":11849.570889732899,"y":19600.041718043874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"265d3765-cd1d-4652-a0ed-01931674a151","savedPayload":{"position":{"x":11849.570889732899,"y":19600.041718043874},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"d0b81562-348b-433f-8524-f9bc909de69e","savedPayload":{"position":{"x":12193.250921530442,"y":19572.61223321748},"targetPosition":{"x":11981.745241798762,"y":19718.013400850094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fe6074be-18c6-46c0-abd4-5d31bc067798","savedPayload":{"position":{"x":11981.745241798762,"y":19718.013400850094},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA30","config":"{\n \"codeName\": \"sma30\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma30","project":"Superalgos","id":"2ef589ba-7f7d-4df5-91fd-9107d67a7792","savedPayload":{"position":{"x":12300.973584614097,"y":19852.362438769094},"targetPosition":{"x":12043.902799440155,"y":19883.18496167935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"72debf77-1c4b-4e8d-9a99-96951bd6d24c","savedPayload":{"position":{"x":12043.902799440155,"y":19883.18496167935},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA60","config":"{\n \"codeName\": \"sma60\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma60","project":"Superalgos","id":"d51798bf-2373-4f5e-b6e4-56aad8117820","savedPayload":{"position":{"x":12263.189989611616,"y":20149.229900795446},"targetPosition":{"x":12024.509598912926,"y":20058.668611217672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78e59381-fcda-4204-a70a-4113eebdbba7","savedPayload":{"position":{"x":12024.509598912926,"y":20058.668611217672},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA90","config":"{\n \"codeName\": \"sma90\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma90","project":"Superalgos","id":"a35a40dd-e5b4-4444-a8da-14eeb79e76b3","savedPayload":{"position":{"x":12092.47070537697,"y":20395.12769549593},"targetPosition":{"x":11923.260601163045,"y":20204.045475181087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"90b3598c-8f08-4dc1-ad41-a64caf0cab39","savedPayload":{"position":{"x":11923.260601163045,"y":20204.045475181087},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA120","config":"{\n \"codeName\": \"sma120\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma120","project":"Superalgos","id":"046bdfe3-d838-425e-8cc0-e117151bdbf8","savedPayload":{"position":{"x":11827.568995315934,"y":20534.33935901192},"targetPosition":{"x":11766.288240413567,"y":20285.32985029943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aa9f7095-66e7-4e42-b6b2-d3a51e3b35d9","savedPayload":{"position":{"x":11766.288240413567,"y":20285.32985029943},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA150","config":"{\n \"codeName\": \"sma150\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma150","project":"Superalgos","id":"8129644d-2b0a-4936-8255-22dc2aada9e7","savedPayload":{"position":{"x":11528.411907950678,"y":20536.294116998004},"targetPosition":{"x":11590.18860235955,"y":20284.844486988317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b0c06b10-549c-4280-aac9-0b649ede898c","savedPayload":{"position":{"x":11590.18860235955,"y":20284.844486988317},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA300","config":"{\n \"codeName\": \"sma300\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma300","project":"Superalgos","id":"23ddb87c-8211-4032-8273-222af79863b5","savedPayload":{"position":{"x":11263.576689406345,"y":20395.65080037283},"targetPosition":{"x":11432.549700421943,"y":20204.69820845169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38b8e859-eda7-4cd9-afc2-ee0e3ed297b7","savedPayload":{"position":{"x":11432.549700421943,"y":20204.69820845169},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA600","config":"{\n \"codeName\": \"sma600\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma600","project":"Superalgos","id":"8f07691b-ccdc-47cc-9c07-3701b61322f9","savedPayload":{"position":{"x":11094.128689311594,"y":20149.03733060192},"targetPosition":{"x":11332.352279952458,"y":20058.53464225396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cebd7a57-eebb-4e4f-9315-6f1411970e55","savedPayload":{"position":{"x":11332.352279952458,"y":20058.53464225396},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA900","config":"{\n \"codeName\": \"sma900\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma900","project":"Superalgos","id":"ed66265d-f971-448f-b395-e0c12c178173","savedPayload":{"position":{"x":11057.115248483686,"y":19852.788016272083},"targetPosition":{"x":11312.030487126085,"y":19883.234286523333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fcbefbb9-2a6d-459a-8d3b-595d71caaa88","savedPayload":{"position":{"x":11312.030487126085,"y":19883.234286523333},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA1200","config":"{\n \"codeName\": \"sma1200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma1200","project":"Superalgos","id":"3e936d3b-8f40-49da-830c-f73ea5bf271a","savedPayload":{"position":{"x":11162.792697882222,"y":19572.688018186516},"targetPosition":{"x":11374.098633785092,"y":19717.771005017414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"311d2e2d-163e-4b8e-ae99-2b2d0fbbb2aa","savedPayload":{"position":{"x":11374.098633785092,"y":19717.771005017414},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA1500","config":"{\n \"codeName\": \"sma1500\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma1500","project":"Superalgos","id":"d4db0dc9-12a2-41c6-8511-43cbfdcfb136","savedPayload":{"position":{"x":11383.37047794033,"y":19375.881276743556},"targetPosition":{"x":11506.966084152566,"y":19600.109115793202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b71b603d-38de-401d-b1df-ca20710dba64","savedPayload":{"position":{"x":11506.966084152566,"y":19600.109115793202},"targetPosition":{"x":11678.122349428879,"y":19927.224063461064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"229b4129-39f9-4f46-bbb5-a86a714023f8","savedPayload":{"position":{"x":11375.730830411274,"y":19358.46085333922},"targetPosition":{"x":11375.730830411274,"y":18683.46085333922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1500.push(candle.close) // Add the current close value to the last 1500 array.\n\nif (variable.last1500.length > 1500) {\n variable.last1500.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1500 elements.\n}\n\nvariable.sma30 = calculateSMA(30)\nvariable.sma60 = calculateSMA(60)\nvariable.sma90 = calculateSMA(90)\nvariable.sma120 = calculateSMA(120)\nvariable.sma150 = calculateSMA(150)\nvariable.sma300 = calculateSMA(300)\nvariable.sma600 = calculateSMA(600)\nvariable.sma900 = calculateSMA(900)\nvariable.sma1200 = calculateSMA(1200)\nvariable.sma1500 = calculateSMA(1500)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1500.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1500.length - periods; i < variable.last1500.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1500[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1500.length=\" + variable.last1500.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1500[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"382c5abf-a91a-40c0-88c2-7e230e93ed44","savedPayload":{"position":{"x":11064.18965840922,"y":19495.053353723666},"targetPosition":{"x":11087.70856264444,"y":19271.285927265806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d3dab655-2db2-4d4c-a776-91a6ae116304","savedPayload":{"position":{"x":11087.70856264444,"y":19271.285927265806},"targetPosition":{"x":11111.227466879662,"y":19047.518500807946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1500 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1500 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"41af43f4-4f30-404d-8d9e-3ad5e752688c","savedPayload":{"position":{"x":10700.13201094049,"y":19230.54999019206},"targetPosition":{"x":10905.679738910076,"y":19139.034245500003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8611aff-7f4f-4df8-a2ac-b92ef5633ad4","savedPayload":{"position":{"x":10905.679738910076,"y":19139.034245500003},"targetPosition":{"x":11111.227466879662,"y":19047.518500807946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e8bebfde-97db-42d7-93a2-972366bc002c","savedPayload":{"position":{"x":11111.227466879662,"y":19047.518500807946},"targetPosition":{"x":11375.730830411274,"y":18683.46085333922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"607ebabd-9602-4e5c-803d-d4207dbd6794","savedPayload":{"position":{"x":11375.730830411274,"y":18683.46085333922},"targetPosition":{"x":11236.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c1c6f0e0-49f7-4723-bf22-dd24dfee6102","savedPayload":{"position":{"x":11236.673182942548,"y":18255.4854210064},"targetPosition":{"x":10786.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Exponential Moving Average (EMA)","config":"{\n\"codeName\": \"EMA\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates EMAs based on SMAs\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Popular EMAs","project":"Superalgos","id":"4e72640b-d384-434c-a607-47b1c8e4c9ef","savedPayload":{"position":{"x":11342.184438607097,"y":17698.695372266164},"targetPosition":{"x":11446.464633512465,"y":17893.1313848007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ea1af06a-2584-43f0-aecf-ec8ad9169e9c"}}},{"type":"Output Dataset","name":"Multi-Period-Market Base7 EMAs","project":"Superalgos","id":"e554af82-9965-4a5d-a59a-3dc873526ad9","savedPayload":{"position":{"x":11473.821080093669,"y":17690.416998797347},"targetPosition":{"x":11446.464633512465,"y":17893.1313848007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4e36a5a5-7a03-43a9-b3e0-0c5763c29199"}}},{"type":"Output Dataset","name":"Multi-Period-Market Base11 EMAs","project":"Superalgos","id":"fcefc8e1-6900-485f-a5b0-80366450aedf","savedPayload":{"position":{"x":11595.99731062978,"y":17757.616228702624},"targetPosition":{"x":11446.464633512465,"y":17893.1313848007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5586aa74-2ecb-4b71-83ea-d621aa400660"}}}],"outputDatasetFolders":[],"id":"268cf8f3-e871-4fed-bbdb-725a070e7cb6","savedPayload":{"position":{"x":11446.464633512465,"y":17893.1313848007},"targetPosition":{"x":11422.987248828329,"y":18350.198656895645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Exponential Moving Average (EMA) Multi-Period-Market","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"6c163397-f3a4-4acc-b281-567f2809b8a0","savedPayload":{"position":{"x":11620.85611712274,"y":17890.198043416687},"targetPosition":{"x":11668.204830719264,"y":18045.06119113832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"8e7c0f51-727f-4a28-b516-087443ee369f"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{ \n\"mainUtility\": \"Market Ending Point.\"\n}","project":"Superalgos","id":"eb2d5251-f873-4785-80c8-3a75186e6fa9","savedPayload":{"position":{"x":11742.9925821725,"y":17907.567018001842},"targetPosition":{"x":11668.204830719264,"y":18045.06119113832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"7715ed1a-35f7-4b1c-ad79-fcd2486fe2ca","savedPayload":{"position":{"x":11800.657320688659,"y":18018.857789327347},"targetPosition":{"x":11668.204830719264,"y":18045.06119113832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"39426478-777d-4ef5-a72a-2ad862c979c7","savedPayload":{"position":{"x":11668.204830719264,"y":18045.06119113832},"targetPosition":{"x":11422.987248828329,"y":18350.198656895645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"8e7c0f51-727f-4a28-b516-087443ee369f","savedPayload":{"position":{"x":11843.026233085555,"y":18144.023206097358},"targetPosition":{"x":11422.987248828329,"y":18350.198656895645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"19e3e53c-0752-4cae-93bd-162e0839b32f","savedPayload":{"position":{"x":11892.05708309534,"y":18374.976866985693},"targetPosition":{"x":11422.987248828329,"y":18350.198656895645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"f865a93d-38fd-433f-92e6-ccb7f2d33b05","savedPayload":{"position":{"x":11817.021720088042,"y":18606.058749634525},"targetPosition":{"x":11422.987248828329,"y":18350.198656895645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"278c34a7-199d-400e-8a06-087149e3d391","savedPayload":{"position":{"x":11505.824170361258,"y":18369.38774765755},"targetPosition":{"x":11104.871234476494,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Calculates EMAs based on SMAs.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Popular EMAs","project":"Superalgos","id":"24f5e41a-5839-4174-8e74-2fcde5c2f6a4","savedPayload":{"position":{"x":11548.803851704495,"y":17869.091371048136},"targetPosition":{"x":11630.360428925462,"y":18052.503297737738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e7f5899c-fc4c-412d-a8db-77c1bef8ed21"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Base11 EMAs","project":"Superalgos","id":"cf348b8d-e3cb-4841-b064-6bf2a8b54062","savedPayload":{"position":{"x":11702.050233018894,"y":17864.520348617392},"targetPosition":{"x":11630.360428925462,"y":18052.503297737738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"0198fa3f-98e3-4c57-a4a4-a7a8e27905d3"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Base7 EMAs","project":"Superalgos","id":"49d8444c-a216-4d81-8039-fa15683ed461","savedPayload":{"position":{"x":11792.054805474363,"y":17917.47797471867},"targetPosition":{"x":11630.360428925462,"y":18052.503297737738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"15ccbcff-318d-46db-93f2-d649b57fd52a"}}}],"outputDatasetFolders":[],"id":"3864c37f-f9dc-433d-96e4-e36a6720adf1","savedPayload":{"position":{"x":11630.360428925462,"y":18052.503297737738},"targetPosition":{"x":11466.410204099717,"y":18480.477767445645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Exponential Moving Average (EMA) Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"2b523347-3f95-43ab-9ac8-72470000c774","savedPayload":{"position":{"x":11827.282195191654,"y":18042.310511479678},"targetPosition":{"x":11830.337591675547,"y":18186.461734191125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"fb2c8ec5-75ff-41e9-8782-60a952bd06e8"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"5c6a74d3-7f45-409c-a408-fe3c67c050e9","savedPayload":{"position":{"x":11953.125485063545,"y":18007.78863263712},"targetPosition":{"x":11830.337591675547,"y":18186.461734191125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"dbfe665f-e805-40f4-a494-231cc265acc8","savedPayload":{"position":{"x":12022.507719742785,"y":18112.82877244633},"targetPosition":{"x":11830.337591675547,"y":18186.461734191125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"70d56a4f-6375-456e-b797-d590ab2109a3","savedPayload":{"position":{"x":12025.18881794876,"y":18244.360705363368},"targetPosition":{"x":11830.337591675547,"y":18186.461734191125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"b5b3313a-d8e6-4b64-9300-fdc6693a2cb7","savedPayload":{"position":{"x":11830.337591675547,"y":18186.461734191125},"targetPosition":{"x":11466.410204099717,"y":18480.477767445645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"fb2c8ec5-75ff-41e9-8782-60a952bd06e8","savedPayload":{"position":{"x":11929.3264044669,"y":18407.33295342068},"targetPosition":{"x":11466.410204099717,"y":18480.477767445645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"41fe3adc-42c9-4f5d-b757-13cedd7e0155","savedPayload":{"position":{"x":11903.945195008377,"y":18648.768079429585},"targetPosition":{"x":11466.410204099717,"y":18480.477767445645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"e232777d-86ee-4bb4-9a6d-659f06493aa5","savedPayload":{"position":{"x":11761.593248385612,"y":18845.391657675584},"targetPosition":{"x":11466.410204099717,"y":18480.477767445645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2","savedPayload":{"position":{"x":11549.330987744306,"y":18503.287963272243},"targetPosition":{"x":11104.871234476494,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Popular EMAs","config":"{\n \"codeName\": \"Popular-EMAs\",\n \"singularVariableName\": \"popularEMA\",\n \"pluralVariableName\": \"popularEMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"ea1af06a-2584-43f0-aecf-ec8ad9169e9c","savedPayload":{"position":{"x":11708.430013511279,"y":18484.979956041476},"targetPosition":{"x":11549.330987744306,"y":18644.07898180845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"e7f5899c-fc4c-412d-a8db-77c1bef8ed21","savedPayload":{"position":{"x":11771.560864378213,"y":18608.881227174395},"targetPosition":{"x":11549.330987744306,"y":18644.07898180845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"a88a6b8e-0c81-45f5-b69f-33ead2c9af2a","savedPayload":{"position":{"x":12789.832680951025,"y":18714.0750067526},"targetPosition":{"x":12841.609923854667,"y":18972.42552512846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"60b742b7-4a6b-4c3a-a924-7ae2c7c284d8","savedPayload":{"position":{"x":12841.609923854667,"y":18972.42552512846},"targetPosition":{"x":12916.076987855111,"y":19342.271291723184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"f12e6638-8bbd-4bff-b969-232c1861b45c","savedPayload":{"position":{"x":13324.514309764189,"y":18853.944662394337},"targetPosition":{"x":13155.673275761106,"y":19055.77487546145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"87688525-3fc6-4a15-806d-fd8d0f3fd876","savedPayload":{"position":{"x":13155.673275761106,"y":19055.77487546145},"targetPosition":{"x":12916.076987855111,"y":19342.271291723184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA20","config":"{\n \"codeName\": \"ema20\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema20","project":"Superalgos","id":"71d926a1-6f74-452c-a8af-2df52ccfceb2","savedPayload":{"position":{"x":13551.594374852302,"y":19355.2829907094},"targetPosition":{"x":13288.82795801272,"y":19349.843948150155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5058b626-2b62-47c3-a915-12d6d451487c","savedPayload":{"position":{"x":13288.82795801272,"y":19349.843948150155},"targetPosition":{"x":12916.076987855111,"y":19342.271291723184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA50","config":"{\n \"codeName\": \"ema50\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema50","project":"Superalgos","id":"7d744a34-29cc-46fa-89c9-a3258bbf79f6","savedPayload":{"position":{"x":13303.603563216959,"y":19845.58763452959},"targetPosition":{"x":13142.179059431048,"y":19635.939523601242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1293683f-1686-47f2-8856-ce40dc753450","savedPayload":{"position":{"x":13142.179059431048,"y":19635.939523601242},"targetPosition":{"x":12916.076987855111,"y":19342.271291723184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA100","config":"{\n \"codeName\": \"ema100\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema100","project":"Superalgos","id":"c0465aae-99b4-488f-801b-f0c96c30a695","savedPayload":{"position":{"x":12775.867358662337,"y":19939.58494993326},"targetPosition":{"x":12824.71879386199,"y":19701.181919011175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2b72da7-da22-46bb-8f7b-1f2b4fdc0324","savedPayload":{"position":{"x":12824.71879386199,"y":19701.181919011175},"targetPosition":{"x":12916.076987855111,"y":19342.271291723184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA200","config":"{\n \"codeName\": \"ema200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema200","project":"Superalgos","id":"4ef9d626-2bf5-4a0b-bb72-6528f0ece6eb","savedPayload":{"position":{"x":12340.117146671004,"y":19601.503331718177},"targetPosition":{"x":12579.562572171752,"y":19493.686388158552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e3b4c1a-8cff-4999-b8af-d8403ee3f614","savedPayload":{"position":{"x":12579.562572171752,"y":19493.686388158552},"targetPosition":{"x":12916.076987855111,"y":19342.271291723184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3a6ab821-f693-4929-a0d7-ad0499d23e68","savedPayload":{"position":{"x":12150.760391571455,"y":18950.52256913264},"targetPosition":{"x":11549.330987744306,"y":18644.07898180845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current \n\nvariable.ema20 = calculateEMA(20, candle.close, variable.previousEMA20)\nvariable.previousEMA20 = variable.ema20 \n \nvariable.ema50 = calculateEMA(50, candle.close, variable.previousEMA50)\nvariable.previousEMA50 = variable.ema50 \n\nvariable.ema100 = calculateEMA(100, candle.close, variable.previousEMA100)\nvariable.previousEMA100 = variable.ema100 \n\nvariable.ema200 = calculateEMA(200, candle.close, variable.previousEMA200)\nvariable.previousEMA200 = variable.ema200 \n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","project":"Superalgos","id":"25aad3fa-6c8f-46b0-8852-07a95544d6bd","savedPayload":{"position":{"x":11840.179727973424,"y":18967.099232629214},"targetPosition":{"x":11745.829289079564,"y":18905.827341190023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d4805ae2-446b-4e54-89c6-0b2e9df3fade","savedPayload":{"position":{"x":11745.829289079564,"y":18905.827341190023},"targetPosition":{"x":11651.478850185704,"y":18844.55544975083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA20 = 0\nvariable.previousEMA50 = 0\nvariable.previousEMA100 = 0\nvariable.previousEMA200 = 0","project":"Superalgos","id":"c5b50764-185a-43a8-b399-62dd6d81a249","savedPayload":{"position":{"x":11639.703260031041,"y":19069.24709507061},"targetPosition":{"x":11645.591055108373,"y":18956.90127241072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6dd7dc20-5c47-4226-8abc-8551b6bd698f","savedPayload":{"position":{"x":11645.591055108373,"y":18956.90127241072},"targetPosition":{"x":11651.478850185704,"y":18844.55544975083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4c2e867a-f31c-4356-be35-138cdc902c15","savedPayload":{"position":{"x":11651.478850185704,"y":18844.55544975083},"targetPosition":{"x":11549.330987744306,"y":18644.07898180845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d5894707-b065-429b-ba6b-78c71e6529fe","savedPayload":{"position":{"x":11549.330987744306,"y":18644.07898180845},"targetPosition":{"x":11104.871234476494,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"EMA Popular","id":"79bf7438-f77a-4c8d-a450-67027d5fd8bc"}}},{"type":"Product Definition","name":"Base5 EMAs","config":"{\n \"codeName\": \"Base5-EMAs\",\n \"singularVariableName\": \"base5EMA\",\n \"pluralVariableName\": \"base5EMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"85e3f0ce-5331-4c0b-900a-e73aaf53d96e","savedPayload":{"position":{"x":11906.777106246023,"y":18573.683472540346},"targetPosition":{"x":11505.824170361258,"y":18777.97919742314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"e04edb48-09ab-4f92-beb7-14ba647de7d6","savedPayload":{"position":{"x":11950.283923629071,"y":18848.374706691244},"targetPosition":{"x":11505.824170361258,"y":18777.97919742314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"6d1e00cd-ea21-4c5d-9f21-bbe4e18eaaa1","savedPayload":{"position":{"x":12427.089474399869,"y":19214.527432051495},"targetPosition":{"x":12519.875040469116,"y":19461.458907421842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7804f5d6-913b-48d3-941a-10135819f0d7","savedPayload":{"position":{"x":12519.875040469116,"y":19461.458907421842},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"615487b1-0964-4bfc-800e-f8d3471dfeb0","savedPayload":{"position":{"x":12686.95398006164,"y":19173.718175763453},"targetPosition":{"x":12672.12273290542,"y":19436.369853679622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5aaf85b9-35bd-47f1-a2a4-dcfa881bc542","savedPayload":{"position":{"x":12672.12273290542,"y":19436.369853679622},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA5","config":"{\n \"codeName\": \"ema5\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema5","project":"Superalgos","id":"1abd53a1-2924-4db2-b50c-06e36aa91e47","savedPayload":{"position":{"x":12941.855172862051,"y":19241.605541334295},"targetPosition":{"x":12821.283213874165,"y":19476.66088073584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4912e0cb-1bba-4750-a063-d8d205091281","savedPayload":{"position":{"x":12821.283213874165,"y":19476.66088073584},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA10","config":"{\n \"codeName\": \"ema10\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema10","project":"Superalgos","id":"00ca97c2-f4e9-4d08-af83-3fee7e5d1887","savedPayload":{"position":{"x":13146.034629246624,"y":19408.716563856844},"targetPosition":{"x":12942.009683286571,"y":19573.41412161195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7e888a6-a986-45fe-804d-c4cba934bd9b","savedPayload":{"position":{"x":12942.009683286571,"y":19573.41412161195},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA15","config":"{\n \"codeName\": \"ema15\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema15","project":"Superalgos","id":"f259ce57-d1c2-4196-8e55-dae9f1eb78f5","savedPayload":{"position":{"x":13267.02890205934,"y":19643.405638559183},"targetPosition":{"x":13010.961225606261,"y":19711.84920841072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9720b3bd-fcb9-4997-9fe8-9d8682aa9dc9","savedPayload":{"position":{"x":13010.961225606261,"y":19711.84920841072},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA20","config":"{\n \"codeName\": \"ema20\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema20","project":"Superalgos","id":"5c7d8482-a86c-4ebc-8524-31b1a73900c3","savedPayload":{"position":{"x":13279.855907171328,"y":19906.581409986815},"targetPosition":{"x":13020.187491704226,"y":19865.84035756413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"716e98b8-640e-4653-9c50-ca0286c851c0","savedPayload":{"position":{"x":13020.187491704226,"y":19865.84035756413},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA25","config":"{\n \"codeName\": \"ema25\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema25","project":"Superalgos","id":"031e3d2f-b487-4df2-9892-845d3e43916a","savedPayload":{"position":{"x":13186.12650309235,"y":20154.219535971984},"targetPosition":{"x":12963.471736980333,"y":20010.437326311196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"56be5d1d-2bd8-42dd-9861-729f4bb72ccf","savedPayload":{"position":{"x":12963.471736980333,"y":20010.437326311196},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA50","config":"{\n \"codeName\": \"ema50\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema50","project":"Superalgos","id":"309f068f-74e5-4405-8267-418ea12ca20d","savedPayload":{"position":{"x":13000.839039050788,"y":20340.553724968628},"targetPosition":{"x":12855.60490703426,"y":20119.184924442336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed5849ae-b0fe-4915-b8c3-8bdb004e5acf","savedPayload":{"position":{"x":12855.60490703426,"y":20119.184924442336},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA100","config":"{\n \"codeName\": \"ema100\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema100","project":"Superalgos","id":"6b164582-e3a2-4ea0-bc0a-e362929d556f","savedPayload":{"position":{"x":12787.455413724932,"y":20450.937033392693},"targetPosition":{"x":12711.436832070842,"y":20175.402555433295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7f690611-834a-4048-bf59-5685995167e9","savedPayload":{"position":{"x":12711.436832070842,"y":20175.402555433295},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA150","config":"{\n \"codeName\": \"ema150\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema150","project":"Superalgos","id":"829731e3-421a-4b49-ac4d-69cc76cdbfab","savedPayload":{"position":{"x":12507.149856883621,"y":20429.436877871114},"targetPosition":{"x":12556.962239489276,"y":20167.20119327036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6b51dbbf-76eb-484b-9535-6043984a7ed6","savedPayload":{"position":{"x":12556.962239489276,"y":20167.20119327036},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA200","config":"{\n \"codeName\": \"ema200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema200","project":"Superalgos","id":"3786f9d4-064e-43ba-8098-d336cd64cfb4","savedPayload":{"position":{"x":12252.580968670834,"y":20295.434751720113},"targetPosition":{"x":12418.958123532004,"y":20096.330422260162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9f96cb9c-ac78-4d23-80e7-650dcff0a56a","savedPayload":{"position":{"x":12418.958123532004,"y":20096.330422260162},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA250","config":"{\n \"codeName\": \"ema250\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema250","project":"Superalgos","id":"710f1d8e-a59f-41d9-9576-e73e292d5cac","savedPayload":{"position":{"x":12099.829884804501,"y":20094.975961394204},"targetPosition":{"x":12322.162443358298,"y":19976.089893629236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e3fc138-8765-46af-95a3-6ee316f49a72","savedPayload":{"position":{"x":12322.162443358298,"y":19976.089893629236},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA500","config":"{\n \"codeName\": \"ema500\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema500","project":"Superalgos","id":"8be9f984-f4ad-471c-885d-b0291c74f04f","savedPayload":{"position":{"x":12021.702230197938,"y":19838.469174153186},"targetPosition":{"x":12282.682962682182,"y":19826.135215873088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"05a21cb3-24bc-42cf-8269-62f14e8f3ed1","savedPayload":{"position":{"x":12282.682962682182,"y":19826.135215873088},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA1000","config":"{\n \"codeName\": \"ema1000\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema1000","project":"Superalgos","id":"1001e9de-822a-4a75-9526-390dc6be8fe7","savedPayload":{"position":{"x":12061.671743245559,"y":19580.889144696546},"targetPosition":{"x":12307.352873096715,"y":19673.457423317934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cc878593-3f3d-4533-9ed1-a7c7fd0cdd99","savedPayload":{"position":{"x":12307.352873096715,"y":19673.457423317934},"targetPosition":{"x":12651.41763510741,"y":19808.092694391835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7133bdf5-a6d6-4ca5-bc27-390fe276eca6","savedPayload":{"position":{"x":11983.121247662179,"y":19255.27627472406},"targetPosition":{"x":11505.824170361258,"y":18777.97919742314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current \n\nvariable.ema5 = calculateEMA(5, candle.close, variable.previousEMA5)\nvariable.previousEMA5 = variable.ema5\n\nvariable.ema10 = calculateEMA(10, candle.close, variable.previousEMA10)\nvariable.previousEMA10 = variable.ema10\n\nvariable.ema15 = calculateEMA(15, candle.close, variable.previousEMA15)\nvariable.previousEMA15 = variable.ema15\n\nvariable.ema20 = calculateEMA(20, candle.close, variable.previousEMA20)\nvariable.previousEMA20 = variable.ema20\n\nvariable.ema25 = calculateEMA(25, candle.close, variable.previousEMA25)\nvariable.previousEMA25 = variable.ema25\n\nvariable.ema50 = calculateEMA(50, candle.close, variable.previousEMA50)\nvariable.previousEMA50 = variable.ema50\n\nvariable.ema100 = calculateEMA(100, candle.close, variable.previousEMA100)\nvariable.previousEMA100 = variable.ema100\n\nvariable.ema150 = calculateEMA(150, candle.close, variable.previousEMA150)\nvariable.previousEMA150 = variable.ema150\n\nvariable.ema200 = calculateEMA(200, candle.close, variable.previousEMA200)\nvariable.previousEMA200 = variable.ema200\n\nvariable.ema250 = calculateEMA(250, candle.close, variable.previousEMA250)\nvariable.previousEMA250 = variable.ema250\n\nvariable.ema500 = calculateEMA(500, candle.close, variable.previousEMA500)\nvariable.previousEMA500 = variable.ema500\n\nvariable.ema1000 = calculateEMA(1000, candle.close, variable.previousEMA1000)\nvariable.previousEMA1000 = variable.ema1000\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}\n","project":"Superalgos","id":"3ea21697-ef5d-421a-825c-db6f04a041ce","savedPayload":{"position":{"x":11859.413855601792,"y":19572.154633346592},"targetPosition":{"x":11717.816767615577,"y":19397.296792018773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d955ad88-0ca4-443b-8d4e-fa0c322d7797","savedPayload":{"position":{"x":11717.816767615577,"y":19397.296792018773},"targetPosition":{"x":11576.219679629363,"y":19222.438950690954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA5 = 0\nvariable.previousEMA10 = 0\nvariable.previousEMA15 = 0\nvariable.previousEMA20 = 0\nvariable.previousEMA25 = 0\nvariable.previousEMA50 = 0\nvariable.previousEMA100 = 0\nvariable.previousEMA150 = 0\nvariable.previousEMA200 = 0\nvariable.previousEMA250 = 0\nvariable.previousEMA500 = 0\nvariable.previousEMA1000 = 0","project":"Superalgos","id":"b951bfdc-9216-4494-8bcf-66099ea9eb8f","savedPayload":{"position":{"x":11414.954102333979,"y":19642.55014261469},"targetPosition":{"x":11495.58689098167,"y":19432.494546652822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2aa36b6f-bde7-433d-a7b6-e646b19e2c20","savedPayload":{"position":{"x":11495.58689098167,"y":19432.494546652822},"targetPosition":{"x":11576.219679629363,"y":19222.438950690954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"54d9ab04-cfe7-433e-8c85-36a511b38d6d","savedPayload":{"position":{"x":11576.219679629363,"y":19222.438950690954},"targetPosition":{"x":11505.824170361258,"y":18777.97919742314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9a37881e-7d9a-4279-95b2-8743de82eec5","savedPayload":{"position":{"x":11505.824170361258,"y":18777.97919742314},"targetPosition":{"x":11104.871234476494,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition","name":"Base6 EMAs","config":"{\n \"codeName\": \"Base6-EMAs\",\n \"singularVariableName\": \"base6EMA\",\n \"pluralVariableName\": \"base6EMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"6b6840f7-3b76-474a-9d27-9515cbcd6499","savedPayload":{"position":{"x":11867.529039278252,"y":18821.48601480619},"targetPosition":{"x":11423.06928601044,"y":18891.88152407429},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"ef3d5a7d-11eb-4ead-8e24-49ac7c80b0c7","savedPayload":{"position":{"x":11824.022221895204,"y":19096.177248957087},"targetPosition":{"x":11423.06928601044,"y":18891.88152407429},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"611ac809-a75a-4550-b9a7-2f5f43cae1e8","savedPayload":{"position":{"x":12228.885700862014,"y":19590.326708573935},"targetPosition":{"x":12241.214880126547,"y":19852.057412966074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"77290003-4665-4c78-bce6-7cb50a44bb31","savedPayload":{"position":{"x":12241.214880126547,"y":19852.057412966074},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"59bd5c2f-dd37-4724-8b40-593ba56967ba","savedPayload":{"position":{"x":12472.583529310243,"y":19628.82887311675},"targetPosition":{"x":12377.789802689931,"y":19873.31616417988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"70c54561-94ce-4d2a-a56e-cf1cd4d2a2f5","savedPayload":{"position":{"x":12377.789802689931,"y":19873.31616417988},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA6","config":"{\n \"codeName\": \"ema6\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema6","project":"Superalgos","id":"330b3cad-7015-4691-98ff-e6c0aaeaa807","savedPayload":{"position":{"x":12679.455063453941,"y":19763.182123303814},"targetPosition":{"x":12493.043764561171,"y":19948.748784695268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a7e48821-628f-4393-9272-055bcc8ea5f7","savedPayload":{"position":{"x":12493.043764561171,"y":19948.748784695268},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA12","config":"{\n \"codeName\": \"ema12\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema12","project":"Superalgos","id":"7679a1d7-49b9-4798-82d2-f00dbfd7db05","savedPayload":{"position":{"x":12814.654790257631,"y":19970.284578227125},"targetPosition":{"x":12568.3307490773,"y":20064.615456273226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"53cda9a0-2acf-4fa9-b52b-c860da5dbb32","savedPayload":{"position":{"x":12568.3307490773,"y":20064.615456273226},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA18","config":"{\n \"codeName\": \"ema18\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema18","project":"Superalgos","id":"092a466e-c714-41b3-8053-a4c060520f3c","savedPayload":{"position":{"x":12853.174769842226,"y":20214.266187707788},"targetPosition":{"x":12590.538503128391,"y":20200.632977848978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"446296f9-21fa-4a92-bc49-23fb81af896b","savedPayload":{"position":{"x":12590.538503128391,"y":20200.632977848978},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA24","config":"{\n \"codeName\": \"ema24\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema24","project":"Superalgos","id":"f666cf13-3e37-4649-a2fc-338fabb1f7d0","savedPayload":{"position":{"x":12788.552995118152,"y":20453.226168731653},"targetPosition":{"x":12554.816905458367,"y":20334.246017545032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"518927a0-e986-4c9e-a645-75c02c2f571b","savedPayload":{"position":{"x":12554.816905458367,"y":20334.246017545032},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA30","config":"{\n \"codeName\": \"ema30\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema30","project":"Superalgos","id":"3c76eaaf-56ac-4e91-9ee5-11b32219d2ea","savedPayload":{"position":{"x":12633.201006665211,"y":20645.110266925676},"targetPosition":{"x":12467.39994890623,"y":20441.466343533146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3b056114-3148-432d-908e-d82df0355b7f","savedPayload":{"position":{"x":12467.39994890623,"y":20441.466343533146},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA60","config":"{\n \"codeName\": \"ema60\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema60","project":"Superalgos","id":"ee78d4d5-f202-4d8e-ae88-eea38f2d0bc0","savedPayload":{"position":{"x":12414.143449967978,"y":20758.10794926402},"targetPosition":{"x":12344.888199013807,"y":20503.508381075742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"83802e58-4437-4ddc-b329-9ae962866387","savedPayload":{"position":{"x":12344.888199013807,"y":20503.508381075742},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA120","config":"{\n \"codeName\": \"ema120\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema120","project":"Superalgos","id":"ab81fc7a-4873-49d2-a3ef-c9c1eed99dba","savedPayload":{"position":{"x":12195.208012402378,"y":20760.959153076812},"targetPosition":{"x":12203.438376784601,"y":20509.335962430476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bec21f4d-ac0c-4b70-a565-16d065d1e89c","savedPayload":{"position":{"x":12203.438376784601,"y":20509.335962430476},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA180","config":"{\n \"codeName\": \"ema180\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema180","project":"Superalgos","id":"ce0ce81c-9577-4cc6-8edd-ad99c52916aa","savedPayload":{"position":{"x":11941.452170228149,"y":20694.569416798513},"targetPosition":{"x":12078.792679642833,"y":20461.9455439698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7318a961-0663-4a33-9295-21a8ab990854","savedPayload":{"position":{"x":12078.792679642833,"y":20461.9455439698},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA240","config":"{\n \"codeName\": \"ema240\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema240","project":"Superalgos","id":"f9c4fe37-e76d-4601-9933-ce1ad3e8ad3d","savedPayload":{"position":{"x":11770.471566183489,"y":20518.842516919256},"targetPosition":{"x":11981.204444376966,"y":20363.212181876897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b2bfa489-cb63-498e-8a80-a82ebf19d0e6","savedPayload":{"position":{"x":11981.204444376966,"y":20363.212181876897},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA300","config":"{\n \"codeName\": \"ema300\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema300","project":"Superalgos","id":"8b93fa9d-ea11-4654-a6ac-70411f0db75a","savedPayload":{"position":{"x":11679.082445775359,"y":20286.546512755503},"targetPosition":{"x":11937.98713613367,"y":20246.0037176514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a6926058-2ae5-454e-b696-b9d49162e901","savedPayload":{"position":{"x":11937.98713613367,"y":20246.0037176514},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA600","config":"{\n \"codeName\": \"ema600\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema600","project":"Superalgos","id":"b67f8d22-c54d-4a21-a726-a8975c10d710","savedPayload":{"position":{"x":11686.174999369192,"y":20026.465026809707},"targetPosition":{"x":11939.21531213626,"y":20096.883363283137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cd299cac-3be1-4899-8816-70baccd30168","savedPayload":{"position":{"x":11939.21531213626,"y":20096.883363283137},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA1200","config":"{\n \"codeName\": \"ema1200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema1200","project":"Superalgos","id":"f7b1d5d4-86c8-4a90-a98a-774fe1171e73","savedPayload":{"position":{"x":11798.572568797994,"y":19812.37988448967},"targetPosition":{"x":12000.857341035571,"y":19976.81141774428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"717ba1d7-3b27-4f87-8e25-c2a26f435e67","savedPayload":{"position":{"x":12000.857341035571,"y":19976.81141774428},"targetPosition":{"x":12257.643879580293,"y":20183.312289524056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"003162cf-ab76-4dea-ac72-a4dd3a0e87ac","savedPayload":{"position":{"x":11729.512873334634,"y":19493.31092790144},"targetPosition":{"x":11423.06928601044,"y":18891.88152407429},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current \n\nvariable.ema6 = calculateEMA(6, candle.close, variable.previousEMA6)\nvariable.previousEMA6 = variable.ema6\n\nvariable.ema12 = calculateEMA(12, candle.close, variable.previousEMA12)\nvariable.previousEMA12 = variable.ema12\n\nvariable.ema18 = calculateEMA(18, candle.close, variable.previousEMA18)\nvariable.previousEMA18 = variable.ema18\n\nvariable.ema24 = calculateEMA(24, candle.close, variable.previousEMA24)\nvariable.previousEMA24 = variable.ema24\n\nvariable.ema30 = calculateEMA(30, candle.close, variable.previousEMA30)\nvariable.previousEMA30 = variable.ema30\n\nvariable.ema60 = calculateEMA(60, candle.close, variable.previousEMA60)\nvariable.previousEMA60 = variable.ema60\n\nvariable.ema120 = calculateEMA(120, candle.close, variable.previousEMA120)\nvariable.previousEMA120 = variable.ema120\n\nvariable.ema180 = calculateEMA(180, candle.close, variable.previousEMA180)\nvariable.previousEMA180 = variable.ema180\n\nvariable.ema240 = calculateEMA(240, candle.close, variable.previousEMA240)\nvariable.previousEMA240 = variable.ema240\n\nvariable.ema300 = calculateEMA(300, candle.close, variable.previousEMA300)\nvariable.previousEMA300 = variable.ema300\n\nvariable.ema600 = calculateEMA(600, candle.close, variable.previousEMA600)\nvariable.previousEMA600 = variable.ema600\n\nvariable.ema1200 = calculateEMA(1200, candle.close, variable.previousEMA1200)\nvariable.previousEMA1200 = variable.ema1200\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","project":"Superalgos","id":"49789f74-3691-45b3-8c29-9a72500ae81c","savedPayload":{"position":{"x":11513.939354037719,"y":19756.45246926584},"targetPosition":{"x":11433.306565390027,"y":19546.396873303973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed1c9899-0b00-4cc5-b30d-faefdbe914d6","savedPayload":{"position":{"x":11433.306565390027,"y":19546.396873303973},"targetPosition":{"x":11352.673776742335,"y":19336.341277342104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA6 = 0\nvariable.previousEMA12 = 0\nvariable.previousEMA18 = 0\nvariable.previousEMA24 = 0\nvariable.previousEMA30 = 0\nvariable.previousEMA60 = 0\nvariable.previousEMA120 = 0\nvariable.previousEMA180 = 0\nvariable.previousEMA240 = 0\nvariable.previousEMA300 = 0\nvariable.previousEMA600 = 0\nvariable.previousEMA1200 = 0","project":"Superalgos","id":"db307137-4eec-41a0-93ca-af5623c7ecf5","savedPayload":{"position":{"x":11069.47960076991,"y":19686.056959997743},"targetPosition":{"x":11211.076688756122,"y":19511.199118669923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2c17eb75-3069-47ad-b303-be44390e4736","savedPayload":{"position":{"x":11211.076688756122,"y":19511.199118669923},"targetPosition":{"x":11352.673776742335,"y":19336.341277342104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bd1f404b-64bb-4f2e-95f6-8d52f40bebad","savedPayload":{"position":{"x":11352.673776742335,"y":19336.341277342104},"targetPosition":{"x":11423.06928601044,"y":18891.88152407429},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e4267570-575b-4e59-9667-cb78aaae052c","savedPayload":{"position":{"x":11423.06928601044,"y":18891.88152407429},"targetPosition":{"x":11104.871234476494,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition","name":"Base7 EMAs","config":"{\n \"codeName\": \"Base7-EMAs\",\n \"singularVariableName\": \"base7EMA\",\n \"pluralVariableName\": \"base7EMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"4e36a5a5-7a03-43a9-b3e0-0c5763c29199","savedPayload":{"position":{"x":11753.626712627101,"y":19045.031917693213},"targetPosition":{"x":11309.166959359289,"y":18974.63640842511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"15ccbcff-318d-46db-93f2-d649b57fd52a","savedPayload":{"position":{"x":11627.365010893234,"y":19292.834459959056},"targetPosition":{"x":11309.166959359289,"y":18974.63640842511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"b91e2094-b8f7-4f7f-a956-30de55c693b7","savedPayload":{"position":{"x":11921.386899029061,"y":19799.28977521995},"targetPosition":{"x":11852.436615833525,"y":20052.229516474577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5163d7f4-3b6c-41c3-b7f6-ec13109fcb0e","savedPayload":{"position":{"x":11852.436615833525,"y":20052.229516474577},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"ea560ee8-06c9-4348-a5b4-24992035245e","savedPayload":{"position":{"x":12156.232617451013,"y":19918.784046393226},"targetPosition":{"x":11990.697515965989,"y":20122.095617031184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4b5dcfda-66ec-4a20-9c4c-0718b51cf761","savedPayload":{"position":{"x":11990.697515965989,"y":20122.095617031184},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA7","config":"{\n \"codeName\": \"ema7\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema7","project":"Superalgos","id":"90e20354-4dd5-4e56-aaf5-cf725f02c1e6","savedPayload":{"position":{"x":12322.280430215014,"y":20123.696361859318},"targetPosition":{"x":12088.088497855908,"y":20242.393098360673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4adf5737-3d1a-4610-9a31-89faddbe679e","savedPayload":{"position":{"x":12088.088497855908,"y":20242.393098360673},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA14","config":"{\n \"codeName\": \"ema14\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema14","project":"Superalgos","id":"b158c3b7-a93f-4e13-8d80-dff1a7172416","savedPayload":{"position":{"x":12390.247302727832,"y":20378.358794877557},"targetPosition":{"x":12128.314113456683,"y":20391.735498547845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c0f0982-caf3-4c7e-a729-54c511ffb65e","savedPayload":{"position":{"x":12128.314113456683,"y":20391.735498547845},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA21","config":"{\n \"codeName\": \"ema21\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema21","project":"Superalgos","id":"3ce74000-2892-4b42-a12e-c8efc1504710","savedPayload":{"position":{"x":12353.623101434918,"y":20640.858218990732},"targetPosition":{"x":12108.447900486917,"y":20546.75311445651},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ff999b95-7623-4eee-b11c-f53dae69f69c","savedPayload":{"position":{"x":12108.447900486917,"y":20546.75311445651},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA28","config":"{\n \"codeName\": \"ema28\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema28","project":"Superalgos","id":"95ccd057-5e33-4b72-a7b0-e44479f3b195","savedPayload":{"position":{"x":12205.331269700993,"y":20860.3003950131},"targetPosition":{"x":12019.416320110107,"y":20674.57915328522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a30ef925-4ab9-45f6-98f3-6723e57fbf97","savedPayload":{"position":{"x":12019.416320110107,"y":20674.57915328522},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA35","config":"{\n \"codeName\": \"ema35\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema35","project":"Superalgos","id":"83513896-dfd7-45a8-aa9a-1922dc9b5b97","savedPayload":{"position":{"x":11984.885222202665,"y":21004.38443550891},"targetPosition":{"x":11890.11474675851,"y":20758.3849767628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2d2b734-e754-4b6c-856b-053eb5b13694","savedPayload":{"position":{"x":11890.11474675851,"y":20758.3849767628},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA70","config":"{\n \"codeName\": \"ema70\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema70","project":"Superalgos","id":"23ca8b8e-400b-4638-946c-c871a632d17b","savedPayload":{"position":{"x":11723.887851985306,"y":21045.31601848717},"targetPosition":{"x":11736.777553200634,"y":20783.38066415148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"863c717d-d171-4616-ac79-dd4a5956bfb5","savedPayload":{"position":{"x":11736.777553200634,"y":20783.38066415148},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA140","config":"{\n \"codeName\": \"ema140\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema140","project":"Superalgos","id":"fb446f49-e024-4246-9783-d41ea25a8a63","savedPayload":{"position":{"x":11471.933878799762,"y":20980.457028158253},"targetPosition":{"x":11591.583290224204,"y":20745.02854844544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ba2fbf20-a074-4d89-b1f8-2e00f141b25e","savedPayload":{"position":{"x":11591.583290224204,"y":20745.02854844544},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EM210","config":"{\n \"codeName\": \"ema210\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema210","project":"Superalgos","id":"dd3ed495-e64d-4b76-ba8a-8a6fbaebc223","savedPayload":{"position":{"x":11265.072267424279,"y":20812.172466846707},"targetPosition":{"x":11468.150560580634,"y":20645.283590636987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fbc7524a-d8ff-40c4-9691-1397bd774535","savedPayload":{"position":{"x":11468.150560580634,"y":20645.283590636987},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA280","config":"{\n \"codeName\": \"ema280\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema280","project":"Superalgos","id":"45655778-7860-46a8-9ee1-12ab9d4f463b","savedPayload":{"position":{"x":11152.57394786883,"y":20592.990659899777},"targetPosition":{"x":11397.34437241478,"y":20506.672281083658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"49670f83-5516-4fed-bfc9-3ea4ac3a4865","savedPayload":{"position":{"x":11397.34437241478,"y":20506.672281083658},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA350","config":"{\n \"codeName\": \"ema350\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema350","project":"Superalgos","id":"6203288d-a807-49ee-a209-4466b959be33","savedPayload":{"position":{"x":11135.34252325847,"y":20333.939031727885},"targetPosition":{"x":11389.713458700851,"y":20353.976006922636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f06f627-f385-494a-bb6a-a06c62d0d20f","savedPayload":{"position":{"x":11389.713458700851,"y":20353.976006922636},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA700","config":"{\n \"codeName\": \"ema700\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema700","project":"Superalgos","id":"1663af80-49b7-4593-ad91-6c79fc61f61c","savedPayload":{"position":{"x":11226.78102920582,"y":20066.48522923058},"targetPosition":{"x":11444.954298870602,"y":20208.546905936008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b3810873-e8ea-4466-b011-095b648f0064","savedPayload":{"position":{"x":11444.954298870602,"y":20208.546905936008},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA1400","config":"{\n \"codeName\": \"ema1400\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema1400","project":"Superalgos","id":"92eee4c6-788b-4aa2-8608-5a026f9f5590","savedPayload":{"position":{"x":11409.745823217872,"y":19881.84048419626},"targetPosition":{"x":11551.601950936601,"y":20101.444939467907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"26a199f6-c167-4de7-9513-0d9c453d8108","savedPayload":{"position":{"x":11551.601950936601,"y":20101.444939467907},"targetPosition":{"x":11755.633060597742,"y":20411.058297196818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e78e6e7a-03db-4e3b-ae8e-b1c309b6ec9e","savedPayload":{"position":{"x":11414.760223261444,"y":19641.326038326828},"targetPosition":{"x":11309.166959359289,"y":18974.63640842511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current \n\nvariable.ema7 = calculateEMA(7, candle.close, variable.previousEMA7)\nvariable.previousEMA7 = variable.ema7\n\nvariable.ema14 = calculateEMA(14, candle.close, variable.previousEMA14)\nvariable.previousEMA14 = variable.ema14\n\nvariable.ema21 = calculateEMA(21, candle.close, variable.previousEMA21)\nvariable.previousEMA21 = variable.ema21\n\nvariable.ema28 = calculateEMA(28, candle.close, variable.previousEMA28)\nvariable.previousEMA28 = variable.ema28\n\nvariable.ema35 = calculateEMA(35, candle.close, variable.previousEMA35)\nvariable.previousEMA35 = variable.ema35\n\nvariable.ema70 = calculateEMA(70, candle.close, variable.previousEMA70)\nvariable.previousEMA70 = variable.ema70\n\nvariable.ema140 = calculateEMA(140, candle.close, variable.previousEMA140)\nvariable.previousEMA140 = variable.ema140\n\nvariable.ema210 = calculateEMA(210, candle.close, variable.previousEMA210)\nvariable.previousEMA210 = variable.ema210\n\nvariable.ema280 = calculateEMA(280, candle.close, variable.previousEMA280)\nvariable.previousEMA280 = variable.ema280\n\nvariable.ema350 = calculateEMA(350, candle.close, variable.previousEMA350)\nvariable.previousEMA350 = variable.ema350\n\nvariable.ema700 = calculateEMA(700, candle.close, variable.previousEMA700)\nvariable.previousEMA700 = variable.ema700\n\nvariable.ema1400 = calculateEMA(1400, candle.close, variable.previousEMA1400)\nvariable.previousEMA1400 = variable.ema1400\n\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","project":"Superalgos","id":"9eb652ba-7df8-41a2-bc5f-c6a1922d8b9c","savedPayload":{"position":{"x":11128.422414785819,"y":19824.97263494943},"targetPosition":{"x":11116.646824631156,"y":19600.280989629653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"659c5fa3-33f6-4127-b4f0-dc1bb0c25691","savedPayload":{"position":{"x":11116.646824631156,"y":19600.280989629653},"targetPosition":{"x":11104.871234476494,"y":19375.589344309876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA7 = 0\nvariable.previousEMA14 = 0\nvariable.previousEMA21 = 0\nvariable.previousEMA28 = 0\nvariable.previousEMA35 = 0\nvariable.previousEMA70 = 0\nvariable.previousEMA140 = 0\nvariable.previousEMA210 = 0\nvariable.previousEMA280 = 0\nvariable.previousEMA350 = 0\nvariable.previousEMA700 = 0\nvariable.previousEMA1400 = 0","project":"Superalgos","id":"03253e10-8b5a-4d6d-abc1-1b171138444c","savedPayload":{"position":{"x":10727.469478901054,"y":19620.676910066635},"targetPosition":{"x":10916.170356688774,"y":19498.133127188255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"07d4aaa2-43ba-42a3-9a5b-73e5866c1307","savedPayload":{"position":{"x":10916.170356688774,"y":19498.133127188255},"targetPosition":{"x":11104.871234476494,"y":19375.589344309876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"91a31871-1901-4a45-9b00-c5aa30a37bf2","savedPayload":{"position":{"x":11104.871234476494,"y":19375.589344309876},"targetPosition":{"x":11309.166959359289,"y":18974.63640842511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984","savedPayload":{"position":{"x":11309.166959359289,"y":18974.63640842511},"targetPosition":{"x":11104.871234476494,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"EMA Base 7","id":"a52a9764-3ef2-44e6-82bd-e6538058119d"}}},{"type":"Product Definition","name":"Base11 EMAs","config":"{\n \"codeName\": \"Base11-EMAs\",\n \"singularVariableName\": \"base11EMA\",\n \"pluralVariableName\": \"base11EMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"5586aa74-2ecb-4b71-83ea-d621aa400660","savedPayload":{"position":{"x":11576.219679629363,"y":19222.438950690954},"targetPosition":{"x":11175.266743744598,"y":19018.14322580816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"0198fa3f-98e3-4c57-a4a4-a7a8e27905d3","savedPayload":{"position":{"x":11379.562468627395,"y":19419.096161692923},"targetPosition":{"x":11175.266743744598,"y":19018.14322580816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"b0559af0-2d8b-401c-8619-1eb20942ec2a","savedPayload":{"position":{"x":11743.329092477725,"y":20104.26829467343},"targetPosition":{"x":11530.779312435167,"y":20257.801921095877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"33f46215-3b1a-422a-9305-89c6ffb342f6","savedPayload":{"position":{"x":11530.779312435167,"y":20257.801921095877},"targetPosition":{"x":11229.421518888797,"y":20475.796789098837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"7bfaab7e-73a5-4086-9eb8-d4a6fdfbbbcf","savedPayload":{"position":{"x":11856.09203216663,"y":20575.401249426486},"targetPosition":{"x":11597.287256204527,"y":20534.26578724623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6155e3b0-2648-407e-b085-4eac778ca3e8","savedPayload":{"position":{"x":11597.287256204527,"y":20534.26578724623},"targetPosition":{"x":11229.421518888797,"y":20475.796789098837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA11","config":"{\n \"codeName\": \"ema11\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema11","project":"Superalgos","id":"16f9f1d2-c73c-4eb6-9240-0d4015e3252a","savedPayload":{"position":{"x":11603.01069000734,"y":20989.526164445844},"targetPosition":{"x":11448.343852740065,"y":20776.768821850837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b925a6aa-04ee-465b-aa93-fc02066b4e3c","savedPayload":{"position":{"x":11448.343852740065,"y":20776.768821850837},"targetPosition":{"x":11229.421518888797,"y":20475.796789098837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA22","config":"{\n \"codeName\": \"ema22\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema22","project":"Superalgos","id":"21cca6ba-53d3-4fd0-b3c9-43a71702e4f3","savedPayload":{"position":{"x":11131.805588309671,"y":21103.30317640185},"targetPosition":{"x":11172.297873378775,"y":20843.578583841805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7f02db91-5147-438c-98c9-e024fba210a2","savedPayload":{"position":{"x":11172.297873378775,"y":20843.578583841805},"targetPosition":{"x":11229.421518888797,"y":20475.796789098837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA33","config":"{\n \"codeName\": \"ema33\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema33","project":"Superalgos","id":"69184123-7d64-41a6-ad3f-8f53bf358f95","savedPayload":{"position":{"x":10727.352861231058,"y":20834.18321734576},"targetPosition":{"x":10929.216939114951,"y":20695.299826268274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"55be1211-a38f-4ff4-8d12-fa78fa8ba2dd","savedPayload":{"position":{"x":10929.216939114951,"y":20695.299826268274},"targetPosition":{"x":11229.421518888797,"y":20475.796789098837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA55","config":"{\n \"codeName\": \"ema55\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema55","project":"Superalgos","id":"5281da7d-c090-4637-9a42-dc28599f0385","savedPayload":{"position":{"x":10591.224735841322,"y":20343.4010693224},"targetPosition":{"x":10864.210380814642,"y":20412.58162050297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"710e13ba-afd9-41c2-b7e8-f0ef7be4bb53","savedPayload":{"position":{"x":10864.210380814642,"y":20412.58162050297},"targetPosition":{"x":11229.421518888797,"y":20475.796789098837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA111","config":"{\n \"codeName\": \"ema111\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema111","project":"Superalgos","id":"f0dd0fa6-ace3-44ea-a701-e36808f6e348","savedPayload":{"position":{"x":10859.197017011611,"y":19963.259872345698},"targetPosition":{"x":11012.341125967869,"y":20175.150601422527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"461f6d65-e227-4362-b62c-16b7225014f6","savedPayload":{"position":{"x":11012.341125967869,"y":20175.150601422527},"targetPosition":{"x":11229.421518888797,"y":20475.796789098837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6a451383-677d-4da8-a15d-f746cda23991","savedPayload":{"position":{"x":11069.673479842442,"y":19684.832855709876},"targetPosition":{"x":11175.266743744598,"y":19018.14322580816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current \n\nvariable.ema11 = calculateEMA(11, candle.close, variable.previousEMA11)\nvariable.previousEMA11 = variable.ema11\n\nvariable.ema22 = calculateEMA(22, candle.close, variable.previousEMA22)\nvariable.previousEMA22 = variable.ema22\n\nvariable.ema33 = calculateEMA(33, candle.close, variable.previousEMA33)\nvariable.previousEMA33 = variable.ema33\n\nvariable.ema55 = calculateEMA(55, candle.close, variable.previousEMA55)\nvariable.previousEMA55 = variable.ema55\n\nvariable.ema111 = calculateEMA(111, candle.close, variable.previousEMA111)\nvariable.previousEMA111 = variable.ema111\n\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","project":"Superalgos","id":"38ceaace-d9e5-482a-a15b-c7bb06767056","savedPayload":{"position":{"x":10740.600121914516,"y":19771.007899172186},"targetPosition":{"x":10798.834407062584,"y":19553.674588257145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"db87f908-271b-44be-8756-706c3ff98c29","savedPayload":{"position":{"x":10798.834407062584,"y":19553.674588257145},"targetPosition":{"x":10857.068692210652,"y":19336.341277342104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA11 = 0\nvariable.previousEMA22 = 0\nvariable.previousEMA33 = 0\nvariable.previousEMA55 = 0\nvariable.previousEMA111 = 0","project":"Superalgos","id":"5c34d18a-ac4e-4af6-aa52-cb4c0f016e6d","savedPayload":{"position":{"x":10422.40207038057,"y":19452.80984763824},"targetPosition":{"x":10639.735381295612,"y":19394.575562490172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f34dd488-d3ea-4bd0-b4f8-68ea81c4a635","savedPayload":{"position":{"x":10639.735381295612,"y":19394.575562490172},"targetPosition":{"x":10857.068692210652,"y":19336.341277342104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e02efb2a-bb39-4a12-89c8-37c254e9bf5f","savedPayload":{"position":{"x":10857.068692210652,"y":19336.341277342104},"targetPosition":{"x":11175.266743744598,"y":19018.14322580816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"21df4f44-96eb-453b-8652-4ce2dc03424c","savedPayload":{"position":{"x":11175.266743744598,"y":19018.14322580816},"targetPosition":{"x":11104.871234476494,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"EMA Base 11","id":"cef26be6-07a9-415a-8439-99d06b1e1cfb"}}},{"type":"Product Definition","name":"Base12 EMAs","config":"{\n \"codeName\": \"Base12-EMAs\",\n \"singularVariableName\": \"base12EMA\",\n \"pluralVariableName\": \"base12EMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"ea61dfed-8f93-4b4f-8575-61ca2547ea90","savedPayload":{"position":{"x":11352.673776742335,"y":19336.341277342104},"targetPosition":{"x":11034.47572520839,"y":19018.14322580816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"b251aca0-1996-4d13-99ed-6fb9796ec8d6","savedPayload":{"position":{"x":11104.871234476494,"y":19462.60297907597},"targetPosition":{"x":11034.47572520839,"y":19018.14322580816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"f1df9aec-05c4-40d0-a82c-d17a0e2f1596","savedPayload":{"position":{"x":11199.581581705417,"y":19993.61239009383},"targetPosition":{"x":10990.80316358375,"y":20151.542772107536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2c0c9e78-796b-4845-8cbb-c153a6b7c791","savedPayload":{"position":{"x":10990.80316358375,"y":20151.542772107536},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"355a63aa-8c8c-4eca-a246-272eb464d094","savedPayload":{"position":{"x":11316.569480801518,"y":20250.10455343706},"targetPosition":{"x":11059.189090866395,"y":20302.256811415387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"256d27f8-b34e-46ca-9b5f-531823534e11","savedPayload":{"position":{"x":11059.189090866395,"y":20302.256811415387},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA12","config":"{\n \"codeName\": \"ema12\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema12","project":"Superalgos","id":"121d3c83-9fb4-44a1-93ed-e9755dfcc59e","savedPayload":{"position":{"x":11310.243120179799,"y":20531.75518533407},"targetPosition":{"x":11055.725062475613,"y":20467.446051010396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b386dd09-a2a1-4669-a73b-6df619dee15d","savedPayload":{"position":{"x":11055.725062475613,"y":20467.446051010396},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA24","config":"{\n \"codeName\": \"ema24\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema24","project":"Superalgos","id":"e4418d5e-74e5-440c-bd58-f8f18245ba6d","savedPayload":{"position":{"x":11182.115382991418,"y":20783.302149643485},"targetPosition":{"x":10980.671395694499,"y":20615.012535472273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c23ef82a-9c9a-477f-8d48-14d93f06e3c6","savedPayload":{"position":{"x":10980.671395694499,"y":20615.012535472273},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA36","config":"{\n \"codeName\": \"ema36\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema36","project":"Superalgos","id":"21dc0fd4-01f5-428b-9a9e-45307981af50","savedPayload":{"position":{"x":10957.376735757167,"y":20954.218648666414},"targetPosition":{"x":10848.941674980866,"y":20715.399075750756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e613c9c6-61da-4830-9289-8b400c3b41d7","savedPayload":{"position":{"x":10848.941674980866,"y":20715.399075750756},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA48","config":"{\n \"codeName\": \"ema48\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema48","project":"Superalgos","id":"6afd224b-ba9c-49eb-973f-e7e3d609e82e","savedPayload":{"position":{"x":10681.251446331145,"y":21011.04084129591},"targetPosition":{"x":10686.92091978501,"y":20748.358303110548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e49e8056-f659-4090-91e7-0e83b4a3654e","savedPayload":{"position":{"x":10686.92091978501,"y":20748.358303110548},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA60","config":"{\n \"codeName\": \"ema60\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema60","project":"Superalgos","id":"2db84126-00b9-4cde-bb35-66f9fcb8bfc6","savedPayload":{"position":{"x":10407.784331926654,"y":20942.072654511936},"targetPosition":{"x":10526.555795203822,"y":20708.193881655367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"77a0ccf0-aa97-4a11-b1db-bd74d33c28b7","savedPayload":{"position":{"x":10526.555795203822,"y":20708.193881655367},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA120","config":"{\n \"codeName\": \"ema120\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema120","project":"Superalgos","id":"e3f30f2b-23c8-4bac-b19e-69ae740a4773","savedPayload":{"position":{"x":10190.907930732767,"y":20762.289025950024},"targetPosition":{"x":10399.904433004773,"y":20602.249523148217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fca691ac-2651-4619-af01-48a0fafcfd75","savedPayload":{"position":{"x":10399.904433004773,"y":20602.249523148217},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA240","config":"{\n \"codeName\": \"ema240\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema240","project":"Superalgos","id":"99b8a3c3-7e86-40aa-ad44-82a0bdb1f208","savedPayload":{"position":{"x":10072.120643142764,"y":20497.312100434792},"targetPosition":{"x":10329.352518983313,"y":20443.47802886613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6f194951-d813-4418-be45-420680399c17","savedPayload":{"position":{"x":10329.352518983313,"y":20443.47802886613},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA360","config":"{\n \"codeName\": \"ema360\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema360","project":"Superalgos","id":"fd430a5b-2a43-40c5-ae9d-4c7f901b527d","savedPayload":{"position":{"x":10083.955097047405,"y":20222.86111337171},"targetPosition":{"x":10334.222958342623,"y":20288.084525528127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d9b00ca8-b18b-43da-9f3d-889fe101120c","savedPayload":{"position":{"x":10334.222958342623,"y":20288.084525528127},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA480","config":"{\n \"codeName\": \"ema480\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema480","project":"Superalgos","id":"4601277a-9f86-41a4-81b1-21b3c13d1d34","savedPayload":{"position":{"x":10206.471770562726,"y":19972.802440699114},"targetPosition":{"x":10407.726560817711,"y":20141.13975652584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2eccd071-3101-47bb-a8e6-008703cf6848","savedPayload":{"position":{"x":10407.726560817711,"y":20141.13975652584},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA600","config":"{\n \"codeName\": \"ema600\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema600","project":"Superalgos","id":"5c687030-e498-4126-8ce9-0c99a427168e","savedPayload":{"position":{"x":10434.255439197012,"y":19799.135814612437},"targetPosition":{"x":10542.368735473996,"y":20038.069493133484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e715e341-88d4-477c-9d7f-b0bb85ee3022","savedPayload":{"position":{"x":10542.368735473996,"y":20038.069493133484},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA1200","config":"{\n \"codeName\": \"ema1200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema1200","project":"Superalgos","id":"7c39560e-7434-4f50-aa3d-b93e131ce066","savedPayload":{"position":{"x":10694.155441668983,"y":19741.14675488769},"targetPosition":{"x":10704.474514582107,"y":20005.476176795473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f1939b18-3af9-4376-b8ba-6f506b215f82","savedPayload":{"position":{"x":10704.474514582107,"y":20005.476176795473},"targetPosition":{"x":10694.899946357036,"y":20376.297644719623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"512144fe-195c-47ae-b5b7-8167ba61a4bb","savedPayload":{"position":{"x":10728.032137884195,"y":19619.572629635306},"targetPosition":{"x":11034.47572520839,"y":19018.14322580816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code */\n\nlet candle = record.current \n\nvariable.ema12 = calculateEMA(12, candle.close, variable.previousEMA12)\nvariable.previousEMA12 = variable.ema12\n\nvariable.ema24 = calculateEMA(24, candle.close, variable.previousEMA24)\nvariable.previousEMA24 = variable.ema24\n\nvariable.ema36 = calculateEMA(36, candle.close, variable.previousEMA36)\nvariable.previousEMA36 = variable.ema36\n\nvariable.ema48 = calculateEMA(48, candle.close, variable.previousEMA48)\nvariable.previousEMA48 = variable.ema48\n\nvariable.ema60 = calculateEMA(60, candle.close, variable.previousEMA60)\nvariable.previousEMA60 = variable.ema60\n\nvariable.ema120 = calculateEMA(120, candle.close, variable.previousEMA120)\nvariable.previousEMA120 = variable.ema120\n\nvariable.ema240 = calculateEMA(240, candle.close, variable.previousEMA240)\nvariable.previousEMA240 = variable.ema240\n\nvariable.ema360 = calculateEMA(360, candle.close, variable.previousEMA360)\nvariable.previousEMA360 = variable.ema360\n\nvariable.ema480 = calculateEMA(480, candle.close, variable.previousEMA480)\nvariable.previousEMA480 = variable.ema480\n\nvariable.ema600 = calculateEMA(600, candle.close, variable.previousEMA600)\nvariable.previousEMA600 = variable.ema600\n\nvariable.ema1200 = calculateEMA(1200, candle.close, variable.previousEMA1200)\nvariable.previousEMA1200 = variable.ema1200\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","project":"Superalgos","id":"c3936de6-e8b4-4459-8c31-d97bea84cbfa","savedPayload":{"position":{"x":10388.435223566861,"y":19599.840706266394},"targetPosition":{"x":10510.979006445243,"y":19411.139828478674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c4c50d01-1dff-4700-853a-986821fd55c5","savedPayload":{"position":{"x":10510.979006445243,"y":19411.139828478674},"targetPosition":{"x":10633.522789323624,"y":19222.438950690954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA12 = 0\nvariable.previousEMA24 = 0\nvariable.previousEMA36 = 0\nvariable.previousEMA48 = 0\nvariable.previousEMA60 = 0\nvariable.previousEMA120 = 0\nvariable.previousEMA240 = 0\nvariable.previousEMA360 = 0\nvariable.previousEMA480 = 0\nvariable.previousEMA600 = 0\nvariable.previousEMA1200 = 0\n","project":"Superalgos","id":"c1639309-d20d-47cb-bb44-f6d45fd498a2","savedPayload":{"position":{"x":10184.139498684066,"y":19198.88777038163},"targetPosition":{"x":10408.831144003845,"y":19210.66336053629},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6a845db8-4418-4417-80ac-11114304a476","savedPayload":{"position":{"x":10408.831144003845,"y":19210.66336053629},"targetPosition":{"x":10633.522789323624,"y":19222.438950690954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1f5b9ce3-8278-4359-a57c-2c9e275a64cc","savedPayload":{"position":{"x":10633.522789323624,"y":19222.438950690954},"targetPosition":{"x":11034.47572520839,"y":19018.14322580816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"43d6f23d-d206-47e9-95d4-6bef34377014","savedPayload":{"position":{"x":11034.47572520839,"y":19018.14322580816},"targetPosition":{"x":11104.871234476494,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition","name":"Base30 EMAs","config":"{\n \"codeName\": \"Base30-EMAs\",\n \"singularVariableName\": \"base30EMA\",\n \"pluralVariableName\": \"base30EMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"dea3491f-aae7-4419-a98f-108cf5d69b87","savedPayload":{"position":{"x":11104.871234476494,"y":19375.589344309876},"targetPosition":{"x":10900.575509593698,"y":18974.63640842511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"6624337b-4afd-44b8-a2ea-3f1779ddda7e","savedPayload":{"position":{"x":10830.180000325594,"y":19419.096161692923},"targetPosition":{"x":10900.575509593698,"y":18974.63640842511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"d3c4e9c3-9823-4809-997e-dc36dac93b22","savedPayload":{"position":{"x":10821.40940266549,"y":19929.892964872874},"targetPosition":{"x":10571.976521288376,"y":20007.215399038734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cdf3538e-a8e5-44e5-9263-e5ffe18e65c2","savedPayload":{"position":{"x":10571.976521288376,"y":20007.215399038734},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"af0bf0dd-e517-4723-b0cc-832261c78c76","savedPayload":{"position":{"x":10839.715530369202,"y":20232.404729016092},"targetPosition":{"x":10582.455794726506,"y":20185.078698771526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"27b3ce25-c547-4003-9a1c-2214b22e4fd8","savedPayload":{"position":{"x":10582.455794726506,"y":20185.078698771526},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA30","config":"{\n \"codeName\": \"ema30\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema30","project":"Superalgos","id":"d49aaf82-1063-490d-bedb-3c63d639e097","savedPayload":{"position":{"x":10715.532265594436,"y":20509.14183965206},"targetPosition":{"x":10509.0639985288,"y":20347.22219951388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c92e3720-fc04-45ff-99e7-95abc2ddabea","savedPayload":{"position":{"x":10509.0639985288,"y":20347.22219951388},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA60","config":"{\n \"codeName\": \"ema60\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema60","project":"Superalgos","id":"47f6b7dc-d0e0-4707-9e20-4113af4916ce","savedPayload":{"position":{"x":10476.754452437519,"y":20696.578712102062},"targetPosition":{"x":10369.073698020144,"y":20457.01211384963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d489aab4-6b93-490a-95b0-5b586a80960a","savedPayload":{"position":{"x":10369.073698020144,"y":20457.01211384963},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA90","config":"{\n \"codeName\": \"ema90\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema90","project":"Superalgos","id":"d2ac9ce8-32ab-4802-ab41-b959112a696b","savedPayload":{"position":{"x":10178.452602544636,"y":20750.993468817167},"targetPosition":{"x":10194.212351730763,"y":20489.464580613403},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7b763dc2-e990-44b7-b67f-93d27e5b7507","savedPayload":{"position":{"x":10194.212351730763,"y":20489.464580613403},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA120","config":"{\n \"codeName\": \"ema120\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema120","project":"Superalgos","id":"41283546-a88c-41a6-87a6-48f178b378f5","savedPayload":{"position":{"x":9888.762512289188,"y":20660.463956954616},"targetPosition":{"x":10024.177959045497,"y":20436.393859007258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"19b80a14-7510-4066-aa0a-43e8d92f8bec","savedPayload":{"position":{"x":10024.177959045497,"y":20436.393859007258},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA150","config":"{\n \"codeName\": \"ema150\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema150","project":"Superalgos","id":"d82aeb70-2857-4d97-8f42-6fa22acc3ec1","savedPayload":{"position":{"x":9674.443057334469,"y":20445.748298647784},"targetPosition":{"x":9898.435927474922,"y":20310.337428978746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2dcea6aa-8e40-44d9-b540-e831f54b0e19","savedPayload":{"position":{"x":9898.435927474922,"y":20310.337428978746},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA300","config":"{\n \"codeName\": \"ema300\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema300","project":"Superalgos","id":"3bfc5b00-3b36-4b7e-b549-4cac3826de4f","savedPayload":{"position":{"x":9583.09127017772,"y":20156.277237723178},"targetPosition":{"x":9846.174105707367,"y":20140.37642233499},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7cc56b79-f74d-465e-8e4d-070be004c71b","savedPayload":{"position":{"x":9846.174105707367,"y":20140.37642233499},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA600","config":"{\n \"codeName\": \"ema600\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema600","project":"Superalgos","id":"22bc84a5-61f6-479e-a87d-b1aee1b8416d","savedPayload":{"position":{"x":9638.062625380833,"y":19857.996576366782},"targetPosition":{"x":9877.279213927563,"y":19965.45036564405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0e28ed26-69c1-4a8e-b13f-cef5faf27fc8","savedPayload":{"position":{"x":9877.279213927563,"y":19965.45036564405},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA900","config":"{\n \"codeName\": \"ema900\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema900","project":"Superalgos","id":"bd0354df-70f8-44e7-b988-49c514433ee3","savedPayload":{"position":{"x":9825.52178735478,"y":19619.36007984657},"targetPosition":{"x":9987.030734561187,"y":19825.181409372428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1dfbb7b7-1ddc-4079-a17d-abef03fcd978","savedPayload":{"position":{"x":9987.030734561187,"y":19825.181409372428},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA1200","config":"{\n \"codeName\": \"ema1200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema1200","project":"Superalgos","id":"fed49d03-931b-45a8-ac59-60859500e8ea","savedPayload":{"position":{"x":10102.00663800595,"y":19494.606053292748},"targetPosition":{"x":10149.570281089356,"y":19752.594725746043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2854d03b-388d-42be-bd49-0b0ed1293a30","savedPayload":{"position":{"x":10149.570281089356,"y":19752.594725746043},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA1500","config":"{\n \"codeName\": \"ema1500\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema1500","project":"Superalgos","id":"1486d92f-10f4-4e34-b603-b0a18408713c","savedPayload":{"position":{"x":10400.663094471864,"y":19510.75438069367},"targetPosition":{"x":10327.273450016848,"y":19763.400734511888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9936d329-ffe9-4c8a-929c-b6f4a3a38954","savedPayload":{"position":{"x":10327.273450016848,"y":19763.400734511888},"targetPosition":{"x":10216.637862666594,"y":20117.96071195439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3dda31b0-7d30-43c2-9b91-74c25cffed38","savedPayload":{"position":{"x":10423.278432292778,"y":19451.93348572603},"targetPosition":{"x":10900.575509593698,"y":18974.63640842511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code */\n\nvariable.ema30 = calculateEMA(30, candle.close, variable.previousEMA30)\nvariable.previousEMA30 = variable.ema30\n\nvariable.ema60 = calculateEMA(60, candle.close, variable.previousEMA60)\nvariable.previousEMA60 = variable.ema60\n\nvariable.ema90 = calculateEMA(90, candle.close, variable.previousEMA90)\nvariable.previousEMA90 = variable.ema90\n\nvariable.ema120 = calculateEMA(120, candle.close, variable.previousEMA120)\nvariable.previousEMA120 = variable.ema120\n\nvariable.ema150 = calculateEMA(150, candle.close, variable.previousEMA150)\nvariable.previousEMA150 = variable.ema150\n\nvariable.ema300 = calculateEMA(300, candle.close, variable.previousEMA300)\nvariable.previousEMA300 = variable.ema300\n\nvariable.ema600 = calculateEMA(600, candle.close, variable.previousEMA600)\nvariable.previousEMA600 = variable.ema600\n\nvariable.ema900 = calculateEMA(900, candle.close, variable.previousEMA900)\nvariable.previousEMA900 = variable.ema900\n\nvariable.ema1200 = calculateEMA(1200, candle.close, variable.previousEMA1200)\nvariable.previousEMA1200 = variable.ema1200\n\nvariable.ema1500 = calculateEMA(1500, candle.close, variable.previousEMA1500)\nvariable.previousEMA1500 = variable.ema1500\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","project":"Superalgos","id":"df900089-7554-4b01-88d1-801706c194a5","savedPayload":{"position":{"x":10106.400073670247,"y":19328.226093665642},"targetPosition":{"x":10281.257914998067,"y":19186.629005679428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ff38e18a-c36c-4c4a-8d5b-b7230451c098","savedPayload":{"position":{"x":10281.257914998067,"y":19186.629005679428},"targetPosition":{"x":10456.115756325886,"y":19045.031917693213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA30 = 0\nvariable.previousEMA60 = 0\nvariable.previousEMA90 = 0\nvariable.previousEMA120 = 0\nvariable.previousEMA150 = 0\nvariable.previousEMA300 = 0\nvariable.previousEMA600 = 0\nvariable.previousEMA900 = 0\nvariable.previousEMA1200 = 0\nvariable.previousEMA1500 = 0\n","project":"Superalgos","id":"14cfa602-002c-439e-b658-24cc8d2d1c14","savedPayload":{"position":{"x":10036.004564402145,"y":18883.766340397826},"targetPosition":{"x":10246.060160364015,"y":18964.39912904552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2489fa2c-03cb-4007-b426-88158b8ab442","savedPayload":{"position":{"x":10246.060160364015,"y":18964.39912904552},"targetPosition":{"x":10456.115756325886,"y":19045.031917693213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ff57a6a1-1133-4cce-abab-d958d5936360","savedPayload":{"position":{"x":10456.115756325886,"y":19045.031917693213},"targetPosition":{"x":10900.575509593698,"y":18974.63640842511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4394346c-7c25-478f-9be7-04f071dc673c","savedPayload":{"position":{"x":10900.575509593698,"y":18974.63640842511},"targetPosition":{"x":11104.871234476494,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"274a20f7-97c3-452d-9ef7-aa35f482f5e3","savedPayload":{"position":{"x":11104.871234476494,"y":18573.683472540346},"targetPosition":{"x":10786.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Moving Average Convergence Diveregence (MACD)","config":"{\n\"codeName\": \"MACD\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces the MACD indicator.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market MACD 122609","project":"Superalgos","id":"b1bf9ad6-e21f-43a9-b7a5-7d5dd0485b2e","savedPayload":{"position":{"x":11471.325556217509,"y":18405.473779853357},"targetPosition":{"x":11469.246885277484,"y":18606.984751204003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"01d43ed0-2a80-4eca-bee6-db2fe40470fc"}}},{"type":"Output Dataset","name":"Multi-Period-Market MACD 031016","project":"Superalgos","id":"a8aa057b-aa19-45cb-bca0-7c3b57a350f7","savedPayload":{"position":{"x":11591.827714898898,"y":18445.982326925216},"targetPosition":{"x":11469.246885277484,"y":18606.984751204003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"19b1d791-d2ea-4f25-a6e1-fe0a64450745"}}},{"type":"Output Dataset","name":"Multi-Period-Market MACD 081709","project":"Superalgos","id":"150637f5-1917-439e-916f-71e86edccd49","savedPayload":{"position":{"x":11663.167943060898,"y":18546.707493952617},"targetPosition":{"x":11469.246885277484,"y":18606.984751204003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c390cbd3-0ba0-4507-8614-42c88f4ce7e6"}}},{"type":"Output Dataset","name":"Multi-Period-Market MACD 245209","project":"Superalgos","id":"6854acc9-b22d-46e6-8967-e3843ca6db76","savedPayload":{"position":{"x":11638.699150104434,"y":18682.17859204875},"targetPosition":{"x":11469.246885277484,"y":18606.984751204003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"89254c6c-9be2-4037-b063-467edc660d10"}}}],"outputDatasetFolders":[],"id":"af39ab1b-b1c0-4869-9093-47ad8ff63494","savedPayload":{"position":{"x":11469.246885277484,"y":18606.984751204003},"targetPosition":{"x":11146.380205402404,"y":18828.49426866509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Moving Average Convergence Diveregence (MACD) Multi-Period-Market","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"7e17f51a-deed-4976-a53b-d34c2e45f92f","savedPayload":{"position":{"x":11764.959412667115,"y":18644.76708633784},"targetPosition":{"x":11611.12774169202,"y":18799.46432564655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"101cc7d6-d35b-4907-b530-f28d5e02ff0a"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"473dbe5e-6332-4005-8457-c77c3f5c65d0","savedPayload":{"position":{"x":11812.666821230629,"y":18784.593603082372},"targetPosition":{"x":11611.12774169202,"y":18799.46432564655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"fa10270c-f94c-479d-9094-f974018e2029","savedPayload":{"position":{"x":11764.332487832256,"y":18930.369845930523},"targetPosition":{"x":11611.12774169202,"y":18799.46432564655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"7a34fbb2-19de-4b82-88f2-c016f6959f74","savedPayload":{"position":{"x":11611.12774169202,"y":18799.46432564655},"targetPosition":{"x":11146.380205402404,"y":18828.49426866509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"101cc7d6-d35b-4907-b530-f28d5e02ff0a","savedPayload":{"position":{"x":11532.007627082303,"y":19015.11308965402},"targetPosition":{"x":11146.380205402404,"y":18828.49426866509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"1bc17bd6-0c20-4dfe-87dd-68db36113733","savedPayload":{"position":{"x":11388.574793248437,"y":19183.690969215804},"targetPosition":{"x":11146.380205402404,"y":18828.49426866509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"f2eca95a-37ae-448b-8ff9-c6dc4b133245","savedPayload":{"position":{"x":11179.215800183229,"y":19256.7416427928},"targetPosition":{"x":11146.380205402404,"y":18828.49426866509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"44019efe-950a-4eec-a546-cd2ee26818b9","savedPayload":{"position":{"x":11192.109173498637,"y":18900.733103609302},"targetPosition":{"x":10786.673182942548,"y":18705.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces the MACD indicator.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily MACD 122609","project":"Superalgos","id":"c79ae046-983f-4acf-9c73-ab7e5d24fd85","savedPayload":{"position":{"x":11511.788478998946,"y":18729.087679203458},"targetPosition":{"x":11423.120987240496,"y":18909.280747413723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"dd5d3067-ff7b-4353-ba4f-c030bd3da796"}}},{"type":"Output Dataset","name":"Multi-Period-Daily MACD 081709","project":"Superalgos","id":"daa8862c-2eda-4846-97d5-8684673baf3f","savedPayload":{"position":{"x":11604.38864530181,"y":18817.112728624175},"targetPosition":{"x":11423.120987240496,"y":18909.280747413723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"29e18539-f188-4d29-9531-25cd3ee8f282"}}},{"type":"Output Dataset","name":"Multi-Period-Daily MACD 245209","project":"Superalgos","id":"59cb9a88-ccd4-4306-8822-bf9d0e526c02","savedPayload":{"position":{"x":11622.242951690432,"y":18923.763104045265},"targetPosition":{"x":11423.120987240496,"y":18909.280747413723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8a9dde13-e4b8-40f3-80bc-ea51050b2f08"}}},{"type":"Output Dataset","name":"Multi-Period-Daily MACD 031016","project":"Superalgos","id":"b09b8313-baaf-45f4-a0fb-b33614d58699","savedPayload":{"position":{"x":11535.914434027527,"y":19053.02835972005},"targetPosition":{"x":11423.120987240496,"y":18909.280747413723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ec2611a6-699b-45a5-beec-679dd4b7734a"}}}],"outputDatasetFolders":[],"id":"a95e4b61-4e49-4b99-bfb8-8bb917afe8df","savedPayload":{"position":{"x":11423.120987240496,"y":18909.280747413723},"targetPosition":{"x":11035.62412102021,"y":18968.40815893568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Moving Average Convergence Diveregence (MACD) Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"e02fb6a2-c775-46de-bce6-a40f7d40cd5c","savedPayload":{"position":{"x":11667.664138004697,"y":19039.709652620666},"targetPosition":{"x":11467.620824567097,"y":19142.294892787006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a9d544cb-9643-4f7e-9220-d3ec7397bcdf"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"650627ec-3cab-4024-a17d-a43174f869e9","savedPayload":{"position":{"x":11673.702193082405,"y":19161.74648414973},"targetPosition":{"x":11467.620824567097,"y":19142.294892787006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"62a1b4d7-e2fd-44bf-9e37-3108a7b5b956","savedPayload":{"position":{"x":11625.952728395798,"y":19277.378341214728},"targetPosition":{"x":11467.620824567097,"y":19142.294892787006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"38aa26d5-f3b2-43e6-8533-cd51d7128221","savedPayload":{"position":{"x":11510.96708269091,"y":19342.512617404187},"targetPosition":{"x":11467.620824567097,"y":19142.294892787006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"e8291604-ea73-4217-b00c-51f65bdec1d6","savedPayload":{"position":{"x":11467.620824567097,"y":19142.294892787006},"targetPosition":{"x":11035.62412102021,"y":18968.40815893568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"a9d544cb-9643-4f7e-9220-d3ec7397bcdf","savedPayload":{"position":{"x":11301.930633865084,"y":19303.88449411361},"targetPosition":{"x":11035.62412102021,"y":18968.40815893568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"35b430c4-60bd-41ff-8a3a-7907146b0238","savedPayload":{"position":{"x":11098.59309515605,"y":19392.676673282793},"targetPosition":{"x":11035.62412102021,"y":18968.40815893568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"c6191bb8-66bf-4d67-9d1b-9364e7e6e84e","savedPayload":{"position":{"x":10878.574576673316,"y":19367.191346795345},"targetPosition":{"x":11035.62412102021,"y":18968.40815893568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8e5db945-8507-4489-9288-21cfa1e9301c","savedPayload":{"position":{"x":11067.243593778978,"y":19057.309588117016},"targetPosition":{"x":10786.673182942548,"y":18705.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"MACD 122609","config":"{\n \"codeName\": \"MACD-122609\",\n \"singularVariableName\": \"macd122609\",\n \"pluralVariableName\": \"macd122609s\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"01d43ed0-2a80-4eca-bee6-db2fe40470fc","savedPayload":{"position":{"x":11093.701352046966,"y":19232.633613610356},"targetPosition":{"x":10886.80760322289,"y":19144.202981488223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"dd5d3067-ff7b-4353-ba4f-c030bd3da796","savedPayload":{"position":{"x":11002.209940639219,"y":19337.353960048644},"targetPosition":{"x":10886.80760322289,"y":19144.202981488223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"c30a9207-3220-4aa4-b96e-64a82200e356","savedPayload":{"position":{"x":11336.274368047882,"y":20512.31889534635},"targetPosition":{"x":11115.407754950553,"y":20696.19406122658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"16c55335-8817-4121-a068-1c2d184fd814","savedPayload":{"position":{"x":11115.407754950553,"y":20696.19406122658},"targetPosition":{"x":10853.93843725678,"y":20914.304101346162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"0f82ce78-91ac-4b61-b514-bb1a67c2ef0e","savedPayload":{"position":{"x":11479.867161113292,"y":20970.67675558434},"targetPosition":{"x":11192.60426111444,"y":20944.80644606634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dedc2ef0-61e4-45bd-921d-187c9a6f3ae1","savedPayload":{"position":{"x":11192.60426111444,"y":20944.80644606634},"targetPosition":{"x":10853.93843725678,"y":20914.304101346162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Line","config":"{\n \"codeName\": \"line\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.line","project":"Superalgos","id":"42754005-58a0-4a8b-b839-938d11aeb0ab","savedPayload":{"position":{"x":11256.150288844477,"y":21396.302069109464},"targetPosition":{"x":11071.944013750086,"y":21175.564938419928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5fe10f78-a397-4fb1-bfeb-a506d44d60ef","savedPayload":{"position":{"x":11071.944013750086,"y":21175.564938419928},"targetPosition":{"x":10853.93843725678,"y":20914.304101346162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Signal","config":"{\n \"codeName\": \"signal\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.signal","project":"Superalgos","id":"588045df-e0fb-4c07-adf3-1acd832088af","savedPayload":{"position":{"x":10797.950820895952,"y":21539.86945918945},"targetPosition":{"x":10823.646721472494,"y":21252.62950791361},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2926733e-3962-4e7b-a492-7fcb437f536e","savedPayload":{"position":{"x":10823.646721472494,"y":21252.62950791361},"targetPosition":{"x":10853.93843725678,"y":20914.304101346162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA12","config":"{\n \"codeName\": \"ema12\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema12","project":"Superalgos","id":"d9f6340c-15cd-499b-ba74-007b4c569b22","savedPayload":{"position":{"x":10368.265135258589,"y":21319.957798032858},"targetPosition":{"x":10589.161665237007,"y":21135.468617947237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"29fb3e14-c1fd-4fa6-af1a-62b1c61ff1fc","savedPayload":{"position":{"x":10589.161665237007,"y":21135.468617947237},"targetPosition":{"x":10853.93843725678,"y":20914.304101346162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA26","config":"{\n \"codeName\": \"ema26\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema26","project":"Superalgos","id":"748ed791-c88b-4776-b2cb-742758821641","savedPayload":{"position":{"x":10228.532072017708,"y":20858.685378975988},"targetPosition":{"x":10515.251077034834,"y":20884.15932519373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d1b7a8ce-c89b-4e0f-ac04-0f45d575524d","savedPayload":{"position":{"x":10515.251077034834,"y":20884.15932519373},"targetPosition":{"x":10853.93843725678,"y":20914.304101346162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Histogram","config":"{\n \"codeName\": \"histogram\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.histogram","project":"Superalgos","id":"9652e52e-55c0-47ee-a90c-a1a700f6b989","savedPayload":{"position":{"x":10450.931882952533,"y":20432.63012287277},"targetPosition":{"x":10635.918022960017,"y":20653.34317252064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6157c979-57a2-473c-b19f-f79bb2f12c09","savedPayload":{"position":{"x":10635.918022960017,"y":20653.34317252064},"targetPosition":{"x":10853.93843725678,"y":20914.304101346162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7985ad16-8c8a-460f-9445-711df5e062a7","savedPayload":{"position":{"x":10826.301069713072,"y":19816.48562993501},"targetPosition":{"x":10886.80760322289,"y":19144.202981488223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code */\n\n/* EMA12 and EMA26 Calculation */\n\nlet candle = record.current\n\nvariable.ema12 = calculateEMA(12, candle.close, variable.previousEMA12)\nvariable.previousEMA12 = variable.ema12\n\nvariable.ema26 = calculateEMA(26, candle.close, variable.previousEMA26)\nvariable.previousEMA26 = variable.ema26\n\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}\n\n\n/* MACD Line Calculation */\n\nmacdLine = variable.ema12 - variable.ema26\n\nvariable.line = macdLine.toFixed(2)\n\n/* Signal Line Calculation (EMA9 of MACD Line) */\n\nmacdSignal = calculateSignalEMA(9, variable.line, variable.previousSignal)\nvariable.signal = macdSignal.toFixed(2)\nvariable.previousSignal = variable.signal \n \nfunction calculateSignalEMA(periods, currentSignal, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSignal * k + variable.previousSignal * (1-k)\n}\n\n/* Histogram Calculation */\n\nhistogram = variable.line - variable.signal\nvariable.histogram = histogram.toFixed(2)","project":"Superalgos","id":"e1e871f6-1e87-423f-8214-ece80c4295eb","savedPayload":{"position":{"x":10503.770013542022,"y":19924.601913717226},"targetPosition":{"x":10547.25259504602,"y":19703.843527453537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c3390f8c-4865-42b1-aa00-eaa49d293121","savedPayload":{"position":{"x":10547.25259504602,"y":19703.843527453537},"targetPosition":{"x":10590.735176550019,"y":19483.085141189847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code*/\n\n/* SMA Calculation */\n\n/* \nAlthough we don't really need to set an array to access a number of candles,\nwe will do so in order to reuse the code built for the SMA indicator, and also\nso that the same code may be used for other MACD products that may require\naccessing more candles than are available in the span of two days.\n*/\n\nvariable.last100 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")\n\n/* EMA Calculation */\n\nvariable.previousEMA12 = 0\nvariable.previousEMA26 = 0\n\n/* MACD Line calculation */\n\nvariable.previousSignal = 0","project":"Superalgos","id":"a9600d4d-ddc7-4639-a8bd-d5f6840a1f04","savedPayload":{"position":{"x":10164.887853840395,"y":19628.529487044354},"targetPosition":{"x":10377.811515195208,"y":19555.8073141171},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8ff5320-c74f-4f6e-8b15-f7284242f24e","savedPayload":{"position":{"x":10377.811515195208,"y":19555.8073141171},"targetPosition":{"x":10590.735176550019,"y":19483.085141189847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c69aae16-d38f-4d9a-8174-4e664a22e579","savedPayload":{"position":{"x":10590.735176550019,"y":19483.085141189847},"targetPosition":{"x":10886.80760322289,"y":19144.202981488223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119","savedPayload":{"position":{"x":10886.80760322289,"y":19144.202981488223},"targetPosition":{"x":10786.673182942548,"y":18705.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"MACD 122609","id":"fb08cb11-7983-4106-8b03-edf70baad4a0"}}},{"type":"Product Definition","name":"MACD 031016","config":"{\n \"codeName\": \"MACD-031016\",\n \"singularVariableName\": \"macd031016\",\n \"pluralVariableName\": \"macd031016s\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"19b1d791-d2ea-4f25-a6e1-fe0a64450745","savedPayload":{"position":{"x":10834.574975998643,"y":19313.644061339037},"targetPosition":{"x":10686.538762662207,"y":19144.202981488223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"ec2611a6-699b-45a5-beec-679dd4b7734a","savedPayload":{"position":{"x":10706.70760716548,"y":19368.297197637152},"targetPosition":{"x":10686.538762662207,"y":19144.202981488223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"7e2e4448-6bc6-4c1c-9a7f-54185fea3831","savedPayload":{"position":{"x":10667.601963540352,"y":19641.191030097943},"targetPosition":{"x":10503.966856976785,"y":19682.423473633713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"399e67a5-1b3c-4f13-b1a8-c8333b013471","savedPayload":{"position":{"x":10503.966856976785,"y":19682.423473633713},"targetPosition":{"x":10340.33175041322,"y":19723.655917169483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"0e12c2f0-25f8-48c6-9920-4291c0154f92","savedPayload":{"position":{"x":10630.058218253847,"y":19896.759423293974},"targetPosition":{"x":10485.194984333533,"y":19810.207670231728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1588b3ba-04e6-498f-baeb-857c55bf0c2f","savedPayload":{"position":{"x":10485.194984333533,"y":19810.207670231728},"targetPosition":{"x":10340.33175041322,"y":19723.655917169483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Line","config":"{\n \"codeName\": \"line\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.line","project":"Superalgos","id":"5d5b5bb6-fcd8-4834-9da9-858c8fc756d6","savedPayload":{"position":{"x":10422.796637484758,"y":20050.92613029661},"targetPosition":{"x":10381.564193948989,"y":19887.291023733047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a1c75f48-5568-46da-a828-6d26a69b5021","savedPayload":{"position":{"x":10381.564193948989,"y":19887.291023733047},"targetPosition":{"x":10340.33175041322,"y":19723.655917169483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Signal","config":"{\n \"codeName\": \"signal\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.signal","project":"Superalgos","id":"a42bb9fd-fb33-4c25-b3d3-7ce7c8839e08","savedPayload":{"position":{"x":10167.228244288724,"y":20013.38238501011},"targetPosition":{"x":10253.779997350972,"y":19868.519151089797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7d0b5eee-4b62-4e35-a421-e3825b0cdb2c","savedPayload":{"position":{"x":10253.779997350972,"y":19868.519151089797},"targetPosition":{"x":10340.33175041322,"y":19723.655917169483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA3","config":"{\n \"codeName\": \"ema3\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema3","project":"Superalgos","id":"c725639d-6fa1-480f-b962-90be561f8464","savedPayload":{"position":{"x":10013.061537286087,"y":19806.12080424102},"targetPosition":{"x":10176.696643849653,"y":19764.888360705252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4406003b-bf04-4d4e-b9e5-fb444be155ee","savedPayload":{"position":{"x":10176.696643849653,"y":19764.888360705252},"targetPosition":{"x":10340.33175041322,"y":19723.655917169483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA10","config":"{\n \"codeName\": \"ema10\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema10","project":"Superalgos","id":"fbfc968a-1b7e-48f6-935b-b40fe63bdc85","savedPayload":{"position":{"x":10050.605282572591,"y":19550.55241104499},"targetPosition":{"x":10195.468516492905,"y":19637.104164107237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d5cc4f53-cc80-457a-842f-a2259450f02f","savedPayload":{"position":{"x":10195.468516492905,"y":19637.104164107237},"targetPosition":{"x":10340.33175041322,"y":19723.655917169483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Histogram","config":"{\n \"codeName\": \"histogram\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.histogram","project":"Superalgos","id":"9724655b-b624-425d-b21c-87c69ede1d0a","savedPayload":{"position":{"x":10257.86686334168,"y":19396.385704042354},"targetPosition":{"x":10299.09930687745,"y":19560.020810605918},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d0f070bb-08a6-4c05-8e49-49f7b6a3aa15","savedPayload":{"position":{"x":10299.09930687745,"y":19560.020810605918},"targetPosition":{"x":10340.33175041322,"y":19723.655917169483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b5df9321-87e6-4c0b-892b-0af0e9b47d8d","savedPayload":{"position":{"x":10340.33175041322,"y":19723.655917169483},"targetPosition":{"x":10686.538762662207,"y":19144.202981488223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code */\n\n/* EMA3 and EMA10 Calculation */\n\nlet candle = record.current\n\nvariable.ema3 = calculateEMA(3, candle.close, variable.previousEMA3)\nvariable.previousEMA3 = variable.ema3\n\nvariable.ema10 = calculateEMA(10, candle.close, variable.previousEMA10)\nvariable.previousEMA10 = variable.ema10\n\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}\n\n/* MACD Line Calculation */\n\nmacdLine = variable.ema3 - variable.ema10\n\nvariable.line = macdLine.toFixed(2)\n\n/* Signal Line Calculation (EMA16 of MACD Line) */\n\nmacdSignal = calculateSignalEMA(16, variable.line, variable.previousSignal)\nvariable.signal = macdSignal.toFixed(2)\nvariable.previousSignal = variable.signal \n \nfunction calculateSignalEMA(periods, currentSignal, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSignal * k + variable.previousSignal * (1-k)\n}\n\n/* Histogram Calculation */\n\nhistogram = variable.line - variable.signal\nvariable.histogram = histogram.toFixed(2)","project":"Superalgos","id":"6e3e0c8a-7600-4cf4-aa00-a29c8e94b42a","savedPayload":{"position":{"x":10002.831412404494,"y":19681.124342337527},"targetPosition":{"x":10137.791338709274,"y":19501.094294035007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ba2052e5-b0b2-4cae-b4a8-3212eb5cbe62","savedPayload":{"position":{"x":10137.791338709274,"y":19501.094294035007},"targetPosition":{"x":10272.751265014054,"y":19321.064245732487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code*/\n\n/* SMA Calculation */\n\n/* \nAlthough we don't really need to set an array to access a number of candles,\nwe will do so in order to reuse the code built for the SMA indicator, and also\nso that the same code may be used for other MACD products that may require\naccessing more candles than are available in the span of two days.\n*/\n\nvariable.last100 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")\n\n/* EMA Calculation */\n\nvariable.previousEMA3 = 0\nvariable.previousEMA10 = 0\n\n/* MACD Line calculation */\n\nvariable.previousSignal = 0","project":"Superalgos","id":"e009ff8c-ac89-4cff-b3c4-27777ff2173c","savedPayload":{"position":{"x":9825.970148160226,"y":19267.336844689373},"targetPosition":{"x":10049.36070658714,"y":19294.20054521093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fba3e3c4-5cf5-4925-9e02-36981e662f0d","savedPayload":{"position":{"x":10049.36070658714,"y":19294.20054521093},"targetPosition":{"x":10272.751265014054,"y":19321.064245732487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6659182a-7112-4c25-8fac-69f8745f9d2f","savedPayload":{"position":{"x":10272.751265014054,"y":19321.064245732487},"targetPosition":{"x":10686.538762662207,"y":19144.202981488223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a","savedPayload":{"position":{"x":10686.538762662207,"y":19144.202981488223},"targetPosition":{"x":10786.673182942548,"y":18705.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"MACD 031016","id":"03816d0f-361f-4c6c-8f85-0bf2dfff1c21"}}},{"type":"Product Definition","name":"MACD 081709","config":"{\n \"codeName\": \"MACD-081709\",\n \"singularVariableName\": \"macd081709\",\n \"pluralVariableName\": \"macd081709s\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"c390cbd3-0ba0-4507-8614-42c88f4ce7e6","savedPayload":{"position":{"x":10565.96106235862,"y":19274.201231773583},"targetPosition":{"x":10506.102772106118,"y":19057.309588117016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"29e18539-f188-4d29-9531-25cd3ee8f282","savedPayload":{"position":{"x":10427.043436687816,"y":19267.962434010955},"targetPosition":{"x":10506.102772106118,"y":19057.309588117016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"94ec28d4-c1bc-4c6d-8887-75877f9a2343","savedPayload":{"position":{"x":10004.775102232743,"y":20388.599367455117},"targetPosition":{"x":9722.86599689049,"y":20330.497944797815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5135ffe3-47fa-4642-8c46-0994438d7e7a","savedPayload":{"position":{"x":9722.86599689049,"y":20330.497944797815},"targetPosition":{"x":9350.224572722986,"y":20254.131624293503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"d3388f28-900d-452f-b83c-936c50b4344e","savedPayload":{"position":{"x":9717.764878762951,"y":20811.831927891653},"targetPosition":{"x":9559.548903700634,"y":20571.70441892552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8056d769-ea76-4ec0-88ff-952921e48d2c","savedPayload":{"position":{"x":9559.548903700634,"y":20571.70441892552},"targetPosition":{"x":9350.224572722986,"y":20254.131624293503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Line","config":"{\n \"codeName\": \"line\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.line","project":"Superalgos","id":"3864df8c-ee73-4f0e-be03-718954a4dbfc","savedPayload":{"position":{"x":9216.296575081466,"y":20908.59525084883},"targetPosition":{"x":9274.07409133314,"y":20626.144920323983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a69347ff-6f46-464a-834a-4d441b8ff291","savedPayload":{"position":{"x":9274.07409133314,"y":20626.144920323983},"targetPosition":{"x":9350.224572722986,"y":20254.131624293503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Signal","config":"{\n \"codeName\": \"signal\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.signal","project":"Superalgos","id":"9db26074-5aaf-4f3e-83aa-bb1064981c64","savedPayload":{"position":{"x":8793.039526838667,"y":20621.831590077083},"targetPosition":{"x":9033.169527976333,"y":20463.382643012537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cf022fb7-6c7e-432d-ae6a-fe0f4ed28116","savedPayload":{"position":{"x":9033.169527976333,"y":20463.382643012537},"targetPosition":{"x":9350.224572722986,"y":20254.131624293503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA8","config":"{\n \"codeName\": \"ema8\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema8","project":"Superalgos","id":"93f62cc4-1f47-4b75-8a7c-c8dbd75b0c9f","savedPayload":{"position":{"x":8695.944621273047,"y":20120.697072596984},"targetPosition":{"x":8978.157967200641,"y":20178.225205053008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"80e1f38f-36c5-440e-a12b-f9154efede9f","savedPayload":{"position":{"x":8978.157967200641,"y":20178.225205053008},"targetPosition":{"x":9350.224572722986,"y":20254.131624293503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA17","config":"{\n \"codeName\": \"ema17\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema17","project":"Superalgos","id":"73b43260-1688-460b-862c-b8fb7406cc10","savedPayload":{"position":{"x":8981.811195966879,"y":19696.893043245826},"targetPosition":{"x":9140.673473196388,"y":19937.14065657381},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a2552af4-df0a-4fcf-85ae-1e35dbcb2608","savedPayload":{"position":{"x":9140.673473196388,"y":19937.14065657381},"targetPosition":{"x":9350.224572722986,"y":20254.131624293503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Histogram","config":"{\n \"codeName\": \"histogram\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.histogram","project":"Superalgos","id":"94cb6751-f4a9-4bad-a8a9-d53d3375a77c","savedPayload":{"position":{"x":9483.038369136804,"y":19599.659511871865},"targetPosition":{"x":9426.15631702869,"y":19881.36227464148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"52e3a47c-f282-4edc-83cb-8bce988e054b","savedPayload":{"position":{"x":9426.15631702869,"y":19881.36227464148},"targetPosition":{"x":9350.224572722986,"y":20254.131624293503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f5a29a3d-06eb-4298-80d0-3d6e22957829","savedPayload":{"position":{"x":9942.765825844239,"y":19429.165050597185},"targetPosition":{"x":10506.102772106118,"y":19057.309588117016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code */\n\n/* EMA8 and EMA26 Calculation */\n\nlet candle = record.current\n\nvariable.ema8 = calculateEMA(8, candle.close, variable.previousEMA8)\nvariable.previousEMA8 = variable.ema8\n\nvariable.ema17 = calculateEMA(17, candle.close, variable.previousEMA17)\nvariable.previousEMA17 = variable.ema17\n\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}\n\n/* MACD Line Calculation */\n\nmacdLine = variable.ema8 - variable.ema17\n\nvariable.line = macdLine.toFixed(2)\n\n/* Signal Line Calculation (EMA9 of MACD Line) */\n\nmacdSignal = calculateSignalEMA(9, variable.line, variable.previousSignal)\nvariable.signal = macdSignal.toFixed(2)\nvariable.previousSignal = variable.signal \n \nfunction calculateSignalEMA(periods, currentSignal, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSignal * k + variable.previousSignal * (1-k)\n}\n\n/* Histogram Calculation */\n\nhistogram = variable.line - variable.signal\nvariable.histogram = histogram.toFixed(2)","project":"Superalgos","id":"0290fa4a-851b-4e21-b35e-61e106fc8f81","savedPayload":{"position":{"x":9657.142287110477,"y":19244.409517162072},"targetPosition":{"x":9856.849089636502,"y":19140.76496581068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2a30807-83b5-4c99-8f27-55783b4487ce","savedPayload":{"position":{"x":9856.849089636502,"y":19140.76496581068},"targetPosition":{"x":10056.555892162527,"y":19037.120414459285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code*/\n\n/* SMA Calculation */\n\n/* \nAlthough we don't really need to set an array to access a number of candles,\nwe will do so in order to reuse the code built for the SMA indicator, and also\nso that the same code may be used for other MACD products that may require\naccessing more candles than are available in the span of two days.\n*/\n\nvariable.last100 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")\n\n/* EMA Calculation */\n\nvariable.previousEMA8 = 0\nvariable.previousEMA17 = 0\n\n/* MACD Line calculation */\n\nvariable.previousSignal = 0","project":"Superalgos","id":"b8dca759-eb3d-4b8b-8a20-99679727f272","savedPayload":{"position":{"x":9298.107029373892,"y":18552.60485997767},"targetPosition":{"x":9677.33146076821,"y":18794.862637218477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a16923a7-9b13-4526-818d-9278fdc509a0","savedPayload":{"position":{"x":9677.33146076821,"y":18794.862637218477},"targetPosition":{"x":10056.555892162527,"y":19037.120414459285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8136f190-cf6a-4ca3-8620-7153ad82a295","savedPayload":{"position":{"x":10056.555892162527,"y":19037.120414459285},"targetPosition":{"x":10506.102772106118,"y":19057.309588117016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750","savedPayload":{"position":{"x":10506.102772106118,"y":19057.309588117016},"targetPosition":{"x":10786.673182942548,"y":18705.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"MACD 081709","id":"43695164-d8aa-40d8-bbf4-ee8cbbdec3f0"}}},{"type":"Product Definition","name":"MACD 245209","config":"{\n \"codeName\": \"MACD-245209\",\n \"singularVariableName\": \"macd245209\",\n \"pluralVariableName\": \"macd245209s\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"89254c6c-9be2-4037-b063-467edc660d10","savedPayload":{"position":{"x":10341.061891056766,"y":19122.117261043993},"targetPosition":{"x":10381.23719238646,"y":18900.733103609302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"8a9dde13-e4b8-40f3-80bc-ea51050b2f08","savedPayload":{"position":{"x":10218.608348025296,"y":19056.222199631346},"targetPosition":{"x":10381.23719238646,"y":18900.733103609302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"adee537e-2c4d-4454-9006-05171c09313a","savedPayload":{"position":{"x":9980.869388440704,"y":19195.794697832494},"targetPosition":{"x":9846.607745816904,"y":19093.567627934357},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38a52afc-8a7c-49c9-8068-dbe438ac64d0","savedPayload":{"position":{"x":9846.607745816904,"y":19093.567627934357},"targetPosition":{"x":9712.346103193104,"y":18991.34055803622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"83439522-7972-454e-af41-d516ee51b26f","savedPayload":{"position":{"x":9757.649830406564,"y":19325.7861026329},"targetPosition":{"x":9734.997966799834,"y":19158.56333033456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"03c98b2f-4e9c-4800-9d9b-5c6ef3f94665","savedPayload":{"position":{"x":9734.997966799834,"y":19158.56333033456},"targetPosition":{"x":9712.346103193104,"y":18991.34055803622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Line","config":"{\n \"codeName\": \"line\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.line","project":"Superalgos","id":"6aa9ee37-3044-444c-bc27-e09dd444f182","savedPayload":{"position":{"x":9507.891963396829,"y":19259.863843283823},"targetPosition":{"x":9610.119033294966,"y":19125.60220066002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c9237bcd-4d76-4460-bcbb-8474843efc03","savedPayload":{"position":{"x":9610.119033294966,"y":19125.60220066002},"targetPosition":{"x":9712.346103193104,"y":18991.34055803622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Signal","config":"{\n \"codeName\": \"signal\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.signal","project":"Superalgos","id":"35ac625e-5516-4a15-b92d-f3a5dc4d8ec0","savedPayload":{"position":{"x":9377.900558596426,"y":19036.64428524968},"targetPosition":{"x":9545.123330894765,"y":19013.99242164295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8dd22ed9-76d1-4108-8a7f-ed4c03d7eede","savedPayload":{"position":{"x":9545.123330894765,"y":19013.99242164295},"targetPosition":{"x":9712.346103193104,"y":18991.34055803622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA24","config":"{\n \"codeName\": \"ema24\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema24","project":"Superalgos","id":"e56fbdd1-4b1c-484b-bcbb-6b9ec6414080","savedPayload":{"position":{"x":9443.822817945504,"y":18786.886418239945},"targetPosition":{"x":9578.084460569304,"y":18889.113488138082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"57f32362-cb33-471d-a855-2c3cddb88bf9","savedPayload":{"position":{"x":9578.084460569304,"y":18889.113488138082},"targetPosition":{"x":9712.346103193104,"y":18991.34055803622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"EMA52","config":"{\n \"codeName\": \"ema52\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.ema52","project":"Superalgos","id":"619feddc-3ff2-4a97-aa8b-a924b80bd099","savedPayload":{"position":{"x":9667.042375979643,"y":18656.895013439538},"targetPosition":{"x":9689.694239586373,"y":18824.11778573788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"93f3c29f-178d-44fb-8f64-21e617d2387e","savedPayload":{"position":{"x":9689.694239586373,"y":18824.11778573788},"targetPosition":{"x":9712.346103193104,"y":18991.34055803622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Histogram","config":"{\n \"codeName\": \"histogram\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.histogram","project":"Superalgos","id":"615f9b7a-676f-444b-8fc8-8355c8c8aef6","savedPayload":{"position":{"x":10530.16266237821,"y":17917.24741704581},"targetPosition":{"x":10121.254382785657,"y":18454.293987541016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"650fc7dc-1ea8-426d-a720-89efdec4292e","savedPayload":{"position":{"x":10121.254382785657,"y":18454.293987541016},"targetPosition":{"x":9712.346103193104,"y":18991.34055803622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"371d2f8e-8868-4933-baee-9827c0496fc1","savedPayload":{"position":{"x":9712.346103193104,"y":18991.34055803622},"targetPosition":{"x":10381.23719238646,"y":18900.733103609302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code */\n\n/* EMA24 and EMA52 Calculation */\n\nlet candle = record.current\n\nvariable.ema24 = calculateEMA(24, candle.close, variable.previousEMA24)\nvariable.previousEMA24 = variable.ema24\n\nvariable.ema52 = calculateEMA(52, candle.close, variable.previousEMA52)\nvariable.previousEMA52 = variable.ema52\n\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}\n\n/* MACD Line Calculation */\n\nmacdLine = variable.ema24 - variable.ema52\n\nvariable.line = macdLine.toFixed(2)\n\n/* Signal Line Calculation (EMA9 of MACD Line) */\n\nmacdSignal = calculateSignalEMA(9, variable.line, variable.previousSignal)\nvariable.signal = macdSignal.toFixed(2)\nvariable.previousSignal = variable.signal \n \nfunction calculateSignalEMA(periods, currentSignal, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSignal * k + variable.previousSignal * (1-k)\n}\n\n/* Histogram Calculation */\n\nhistogram = variable.line - variable.signal\nvariable.histogram = histogram.toFixed(2)","project":"Superalgos","id":"4f4e66a9-4791-494a-ada7-72f3d5db7415","savedPayload":{"position":{"x":9535.17060852335,"y":18700.95416527268},"targetPosition":{"x":9760.069905787139,"y":18694.223185384566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d8e07801-1e77-44a5-a232-fd672264f252","savedPayload":{"position":{"x":9760.069905787139,"y":18694.223185384566},"targetPosition":{"x":9984.969203050927,"y":18687.49220549645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code*/\n\n/* SMA Calculation */\n\n/* \nAlthough we don't really need to set an array to access a number of candles,\nwe will do so in order to reuse the code built for the SMA indicator, and also\nso that the same code may be used for other MACD products that may require\naccessing more candles than are available in the span of two days.\n*/\n\nvariable.last100 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")\n\n/* EMA Calculation */\n\nvariable.previousEMA24 = 0\nvariable.previousEMA52 = 0\n\n/* MACD Line calculation */\n\nvariable.previousSignal = 0","project":"Superalgos","id":"5f25ca07-07ce-49a7-a397-5d2f3e89c0c3","savedPayload":{"position":{"x":9748.411506636197,"y":18304.68617593715},"targetPosition":{"x":9866.690354843562,"y":18496.0891907168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dd01ebc2-8204-4b51-83d9-92d416521553","savedPayload":{"position":{"x":9866.690354843562,"y":18496.0891907168},"targetPosition":{"x":9984.969203050927,"y":18687.49220549645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e1a8b841-84d8-4ddd-822b-d81fe2b9a313","savedPayload":{"position":{"x":9984.969203050927,"y":18687.49220549645},"targetPosition":{"x":10381.23719238646,"y":18900.733103609302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"47984765-8180-45cf-a9eb-f0a8b22d165d","savedPayload":{"position":{"x":10381.23719238646,"y":18900.733103609302},"targetPosition":{"x":10786.673182942548,"y":18705.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"MACD 245209","id":"2fe60a0e-dd3a-4bb8-a321-4742389ab930"}}}],"id":"7724b857-30aa-4d3c-9ab7-e70895229f2a","savedPayload":{"position":{"x":10786.673182942548,"y":18705.4854210064},"targetPosition":{"x":10786.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Relative Strenght Index (RSI)","config":"{\n\"codeName\": \"RSI\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates RSI.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market RSI14","project":"Superalgos","id":"41eb05b7-0222-49b7-9b62-f14f43302f8f","savedPayload":{"position":{"x":10929.798362268186,"y":19635.71782522133},"targetPosition":{"x":10595.346188357256,"y":19635.71782522133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5ec62760-e144-4496-98ab-0415a4b315ec"}}}],"outputDatasetFolders":[],"id":"35d2683b-470d-44e0-97bb-6075e6b5cc92","savedPayload":{"position":{"x":10595.346188357256,"y":19635.71782522133},"targetPosition":{"x":10293.068156950681,"y":19461.197522418635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"ea692963-60c5-445b-921c-f2be614186d7","savedPayload":{"position":{"x":10467.588459753377,"y":20112.353187521097},"targetPosition":{"x":10467.588459753377,"y":19763.47555382521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Relative Strenght Index (RSI) Multi-Period-Market","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"4211e16a-a54f-4049-941e-fd3be8244852","savedPayload":{"position":{"x":10168.348880730115,"y":19936.241605326482},"targetPosition":{"x":10467.588459753377,"y":19763.47555382521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"bbff3247-937a-429e-9959-c896b8207f26"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"9d9b2836-9eab-437b-9426-2cef828cd0e3","savedPayload":{"position":{"x":10162.163267304335,"y":19587.13823674746},"targetPosition":{"x":10467.588459753377,"y":19763.47555382521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"1a42abe3-eaab-444f-8687-c3930dc28a06","savedPayload":{"position":{"x":10467.588459753377,"y":19763.47555382521},"targetPosition":{"x":10293.068156950681,"y":19461.197522418635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"bbff3247-937a-429e-9959-c896b8207f26","savedPayload":{"position":{"x":10293.068156950681,"y":19810.238128024026},"targetPosition":{"x":10293.068156950681,"y":19461.197522418635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"b2babf3e-22f6-4064-b4e5-840eec9ff707","savedPayload":{"position":{"x":9961.779140505223,"y":19353.55519582988},"targetPosition":{"x":10293.068156950681,"y":19461.197522418635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"ae4d9310-3446-41b3-88b9-90978defd305","savedPayload":{"position":{"x":9990.790125544107,"y":19635.71782522133},"targetPosition":{"x":10293.068156950681,"y":19461.197522418635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"96f31416-5090-428a-be83-985a0b3ab275","savedPayload":{"position":{"x":10468.475131408602,"y":19023.683472540346},"targetPosition":{"x":10468.475131408602,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Calculates RSI\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily RSI14","project":"Superalgos","id":"7539f591-7ca7-4fd5-9142-a6b470f8ef8e","savedPayload":{"position":{"x":10061.980638233039,"y":19593.88160485174},"targetPosition":{"x":9889.788554929411,"y":19593.88160485174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f1556d09-f134-4678-83fb-04002d1dcd34"}}}],"outputDatasetFolders":[],"id":"f5a20865-68a4-4e3f-8547-afc741d7fb85","savedPayload":{"position":{"x":9889.788554929411,"y":19593.88160485174},"targetPosition":{"x":9799.450198684619,"y":19256.734269473916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Relative Strenght Index (RSI) Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"632dbd10-6cf7-453a-8e5c-4a74d33fcaf4","savedPayload":{"position":{"x":9709.111842439826,"y":19766.15125195415},"targetPosition":{"x":9709.111842439826,"y":19593.88160485174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2d1d4e5a-49c3-4d9a-958a-195d3f0949c2"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"5a1a8917-5d85-4f33-b552-a314ee6c54db","savedPayload":{"position":{"x":9578.18666368231,"y":19724.806783609256},"targetPosition":{"x":9709.111842439826,"y":19593.88160485174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"9ea493a4-33b1-445e-975d-b202994079c8","savedPayload":{"position":{"x":9519.007852631566,"y":19593.88160485174},"targetPosition":{"x":9709.111842439826,"y":19593.88160485174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"86af23c8-eb30-499a-9d88-39e0e9df06e5","savedPayload":{"position":{"x":9589.839215203403,"y":19474.608977615317},"targetPosition":{"x":9709.111842439826,"y":19593.88160485174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"6e2f9722-24f9-40dc-9e38-f4dcbbbeb38a","savedPayload":{"position":{"x":9709.111842439826,"y":19593.88160485174},"targetPosition":{"x":9799.450198684619,"y":19256.734269473916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"2d1d4e5a-49c3-4d9a-958a-195d3f0949c2","savedPayload":{"position":{"x":9552.641219551588,"y":19503.543248606948},"targetPosition":{"x":9799.450198684619,"y":19256.734269473916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"525140eb-d037-4b8d-9eef-f01574ca49ff","savedPayload":{"position":{"x":9428.783085643507,"y":19136.29722370107},"targetPosition":{"x":9799.450198684619,"y":19256.734269473916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"9162d141-5486-4a0d-a3e4-71c74060beb8","savedPayload":{"position":{"x":9462.302863306795,"y":19166.395913229124},"targetPosition":{"x":9799.450198684619,"y":19256.734269473916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f1177bcd-22dc-425b-8f30-878844aa82b8","savedPayload":{"position":{"x":10150.277079874657,"y":18891.88152407429},"targetPosition":{"x":10468.475131408602,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"RSI14","config":"{\n \"codeName\": \"RSI-14\",\n \"singularVariableName\": \"rsi14\",\n \"pluralVariableName\": \"rsi14s\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"5ec62760-e144-4496-98ab-0415a4b315ec","savedPayload":{"position":{"x":9886.223449642795,"y":18755.71229627471},"targetPosition":{"x":10018.475131408602,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"f1556d09-f134-4678-83fb-04002d1dcd34","savedPayload":{"position":{"x":9804.487415242193,"y":18643.21229627471},"targetPosition":{"x":10018.475131408602,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"Begin","code":"record.current.begin","project":"Superalgos","id":"069fdb18-b72b-4fd2-9255-061f7a4f0b7e","savedPayload":{"position":{"x":9390.0232311334,"y":18536.77368751302},"targetPosition":{"x":9490.261465104591,"y":18485.69975629232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"309f6917-c246-4d84-89ac-abca872eb828","savedPayload":{"position":{"x":9490.261465104591,"y":18485.69975629232},"targetPosition":{"x":9590.499699075783,"y":18434.62582507162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"2128f049-e006-4e71-b9a5-91655bfcb290","savedPayload":{"position":{"x":9376.511982909375,"y":18365.097001337257},"targetPosition":{"x":9483.505840992579,"y":18399.86141320444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38a593cc-3232-4977-9597-18939c86bb5d","savedPayload":{"position":{"x":9483.505840992579,"y":18399.86141320444},"targetPosition":{"x":9590.499699075783,"y":18434.62582507162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Value","config":"{\n \"codeName\": \"value\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.value","project":"Superalgos","id":"c5e2ca09-53a7-4655-b0dc-242b7fbd11f0","savedPayload":{"position":{"x":9488.351836634385,"y":18234.149357129238},"targetPosition":{"x":9539.425767855084,"y":18334.38759110043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5988292a-69bf-4e2d-833b-dccb78aa32a8","savedPayload":{"position":{"x":9539.425767855084,"y":18334.38759110043},"targetPosition":{"x":9590.499699075783,"y":18434.62582507162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b12a20d9-1b6a-4525-b50c-8edf1fc3bff8","savedPayload":{"position":{"x":9590.499699075783,"y":18434.62582507162},"targetPosition":{"x":10018.475131408602,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code */\n\n/* \nCalculation method credit: https://www.macroption.com/rsi-calculation/\n\nRSI Calculation Formula\n\n RSI = 100 – 100 / ( 1 + RS )\n RS = Relative Strength = AvgU / AvgD\n AvgU = average of all up moves in the last N price bars\n AvgD = average of all down moves in the last N price bars\n N = the period of RSI\n There are 3 different commonly used methods for the exact calculation of AvgU and AvgD (see details below)\n\nRSI Calculation Step by Step\n\n Calculate up moves and down moves (get U and D)\n Average the up moves and down moves (get AvgU and AvgD)\n Calculate Relative Strength (get RS)\n Calculate the Relative Strength Index (get RSI)\n*/\n\n/* Calculating Up Moves and Down Moves */\n\n//let candle = record.current // Our main dependencies are candles \n//let candlePrevious = record.previous\n\nif (record.previous !== undefined) {\n if (record.current.close > record.previous.close) {\n variable.last14U.push(record.current.close - record.previous.close) // Add win to last 14 array.\n } else {\n variable.last14U.push(0) // Add 0 to keep proper count of records in the last 14 array.\n }\n \n if (record.current.close < record.previous.close) {\n variable.last14D.push(record.previous.close - record.current.close) // Add win to last 14 array.\n } else {\n variable.last14D.push(0) // Add 0 to keep proper count of records in the last 14 array.\n }\n \n if (variable.last14U.length > 14) {\n variable.last14U.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 14 elements.\n }\n \n if (variable.last14D.length > 14) {\n variable.last14D.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 14 elements.\n }\n \n /* Calculating Averages of Up Moves and Down Moves */\n \n variable.avgU = calculateAVGU(14)\n variable.avgD = calculateAVGD(14)\n \n /* Calculating Relative Strength */\n \n if (variable.avgD > 0) {\n relativeStrength = variable.avgU / variable.avgD\n } else {\n relativeStrength = 0\n }\n\n /* Calculating RSI */\n\n relativeStrengthIndex = 100 - 100 / ( 1 + relativeStrength)\n\n if (relativeStrengthIndex !== undefined) {\n variable.value = relativeStrengthIndex.toFixed(2)\n } else {\n variable.value = 0\n }\n} else {\n variable.value = 0\n}\n\nfunction calculateAVGU(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last14U.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sumU = 0 // Initialize sum variable. \n for (let j = variable.last14U.length - periods; j < variable.last14U.length; j++) { // Iterate through the last periods\n sumU = sumU + variable.last14U[j]\n }\n let averageU = sumU / periods\n return averageU\n}\n\nfunction calculateAVGD(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last14D.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sumD = 0 // Initialize sum variable. \n for (let i = variable.last14D.length - periods; i < variable.last14D.length; i++) { // Iterate through the last periods\n sumD = sumD + variable.last14D[i]\n }\n let averageD = sumD / periods\n return averageD\n}","project":"Superalgos","id":"a00ed092-3bc1-4288-979d-34c204713d65","savedPayload":{"position":{"x":9342.876311937818,"y":18026.594335687507},"targetPosition":{"x":9548.424039907404,"y":18118.110080379563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c2f8b23a-4e60-4181-9c19-ed243eb151cb","savedPayload":{"position":{"x":9548.424039907404,"y":18118.110080379563},"targetPosition":{"x":9753.97176787699,"y":18209.62582507162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code*/\n\n/* \nWe keep two separate arrays to store last 14 price increments or losses.\n*/\n\nvariable.last14U = []\nvariable.last14D = []","project":"Superalgos","id":"59da2324-377e-4307-a6d1-b9cf170733ba","savedPayload":{"position":{"x":9706.933959406548,"y":17762.0909721559},"targetPosition":{"x":9730.452863641769,"y":17985.85839861376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aca0a380-6355-42b9-876b-6932d6d13105","savedPayload":{"position":{"x":9730.452863641769,"y":17985.85839861376},"targetPosition":{"x":9753.97176787699,"y":18209.62582507162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5c066df5-2a29-4c74-b7bc-dc5ea1329089","savedPayload":{"position":{"x":9753.97176787699,"y":18209.62582507162},"targetPosition":{"x":10018.475131408602,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7","savedPayload":{"position":{"x":10018.475131408602,"y":18573.683472540346},"targetPosition":{"x":10468.475131408602,"y":18573.683472540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"RSI 14","id":"72403d40-2a64-4e51-8eaf-b1a872e4474e"}}}],"id":"276e2181-0c8d-4d56-94e0-1999ec317cb5","savedPayload":{"position":{"x":10468.475131408602,"y":18573.683472540346},"targetPosition":{"x":10786.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"plotters":[{"type":"Plotter","name":"Simple Moving Average (SMA)","config":"{\n\"codeName\": \"Plotter SMA\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"SMA Popular","config":"{\n\t\"codeName\": \"SMA-Popular\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA 20 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma20","project":"Superalgos","id":"81557791-d18b-472c-b152-612294f281cc","savedPayload":{"position":{"x":8234.942123098328,"y":19481.69403121839},"targetPosition":{"x":9294.01292901739,"y":19389.037341829207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b932c738-3b05-4b1f-a822-2ba7bae30252","savedPayload":{"position":{"x":9294.01292901739,"y":19389.037341829207},"targetPosition":{"x":10353.083734936452,"y":19296.380652440024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 20 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma20","project":"Superalgos","id":"dd573845-585b-4a89-8518-425173e02916","savedPayload":{"position":{"x":8611.375979660901,"y":18076.82375283777},"targetPosition":{"x":9482.229857298677,"y":18686.602202638896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"44ba79ce-2ad1-4bb7-87db-df0aa58e6440","savedPayload":{"position":{"x":9482.229857298677,"y":18686.602202638896},"targetPosition":{"x":10353.083734936452,"y":19296.380652440024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 50 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma50","project":"Superalgos","id":"054b7477-497f-46f9-b33e-de27dc3d494f","savedPayload":{"position":{"x":9802.77425184245,"y":17242.59770164623},"targetPosition":{"x":10077.92899338945,"y":18269.489177043128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"00efabf8-701d-44b1-a590-b8399149dfbb","savedPayload":{"position":{"x":10077.92899338945,"y":18269.489177043128},"targetPosition":{"x":10353.083734936452,"y":19296.380652440024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 50 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma50","project":"Superalgos","id":"2e18404b-0350-4720-95d1-77533ced3986","savedPayload":{"position":{"x":11251.66844717232,"y":17369.359518386107},"targetPosition":{"x":10802.376091054386,"y":18332.870085413066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"084b4468-49d2-4ad2-a716-ebc338c34248","savedPayload":{"position":{"x":10802.376091054386,"y":18332.870085413066},"targetPosition":{"x":10353.083734936452,"y":19296.380652440024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 100 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma100","project":"Superalgos","id":"9e730b8b-7f20-41df-9126-9d9aae2f8ca6","savedPayload":{"position":{"x":12280.10486899037,"y":18397.795940204156},"targetPosition":{"x":11316.59430196341,"y":18847.08829632209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bbacba1b-6b2d-48b7-a440-986a04c61858","savedPayload":{"position":{"x":11316.59430196341,"y":18847.08829632209},"targetPosition":{"x":10353.083734936452,"y":19296.380652440024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 100 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma100","project":"Superalgos","id":"922d462b-1e9f-4766-859d-330041428bc0","savedPayload":{"position":{"x":12406.866685730245,"y":19846.690135534027},"targetPosition":{"x":11379.975210333349,"y":19571.535393987026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"270a8be8-ad51-4061-abe1-a4c7234eb88a","savedPayload":{"position":{"x":11379.975210333349,"y":19571.535393987026},"targetPosition":{"x":10353.083734936452,"y":19296.380652440024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 200 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma200","project":"Superalgos","id":"4278cffb-da8c-458e-b014-449f8487204b","savedPayload":{"position":{"x":11572.640634538708,"y":21038.088407715575},"targetPosition":{"x":10962.86218473758,"y":20167.2345300778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cd242031-8d7a-4cee-a680-156b0be7c7c7","savedPayload":{"position":{"x":10962.86218473758,"y":20167.2345300778},"targetPosition":{"x":10353.083734936452,"y":19296.380652440024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 200 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma200","project":"Superalgos","id":"a3b73c57-a9b2-4a55-9232-9bacf741a933","savedPayload":{"position":{"x":10167.770356158086,"y":21414.52226427815},"targetPosition":{"x":10260.427045547269,"y":20355.451458359086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"328b048e-eb4a-4a02-ad95-a17cd170c4a7","savedPayload":{"position":{"x":10260.427045547269,"y":20355.451458359086},"targetPosition":{"x":10353.083734936452,"y":19296.380652440024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6755d98f-e1de-4ae9-b688-d06ab9cc543e","savedPayload":{"position":{"x":10353.083734936452,"y":19296.380652440024},"targetPosition":{"x":9601.347001086557,"y":20048.11738628992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"6368c66e-47fc-486d-8c03-e2ed303de825","savedPayload":{"position":{"x":11178.547959577456,"y":18269.489177043128},"targetPosition":{"x":10903.393218030455,"y":19296.380652440024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"b0d22693-8100-49e9-b92e-11a8a55a5480","savedPayload":{"position":{"x":10903.393218030455,"y":19296.380652440024},"targetPosition":{"x":10628.238476483453,"y":20323.27212783692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 20 End","project":"Superalgos","id":"d9dae274-33d5-403d-a5ff-5514104df62e","savedPayload":{"position":{"x":10085.994679600848,"y":21262.465934126652},"targetPosition":{"x":10628.238476483453,"y":20323.27212783692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 20 End","id":"44ba79ce-2ad1-4bb7-87db-df0aa58e6440"}}},{"type":"Polygon Vertex","name":"SMA 20 Begin","project":"Superalgos","id":"45823ead-7d67-409c-8160-ea36496c412e","savedPayload":{"position":{"x":10101.501563544349,"y":19410.937032404407},"targetPosition":{"x":10628.238476483453,"y":20323.27212783692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 20 Begin","id":"b932c738-3b05-4b1f-a822-2ba7bae30252"}}}],"id":"ffe11ebb-d04f-4bf6-b6ff-43382be7c347","savedPayload":{"position":{"x":10628.238476483453,"y":20323.27212783692},"targetPosition":{"x":9601.347001086557,"y":20048.11738628992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 50","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b0de67a4-9a26-40ce-aa19-f5336145f871","savedPayload":{"position":{"x":11930.284693427351,"y":20524.699378592813},"targetPosition":{"x":10903.393218030455,"y":20799.854120139815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f06c2d68-11d4-40e0-99df-43a758ca0123","savedPayload":{"position":{"x":10903.393218030455,"y":20799.854120139815},"targetPosition":{"x":9876.501742633558,"y":21075.008861686816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 50 End","project":"Superalgos","id":"baf11fde-1f46-4e77-a8fe-d19a3ee8a4b2","savedPayload":{"position":{"x":9356.176491753184,"y":21976.23863267265},"targetPosition":{"x":9876.501742633558,"y":21075.008861686816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 50 End","id":"084b4468-49d2-4ad2-a716-ebc338c34248"}}},{"type":"Polygon Vertex","name":"SMA 50 Begin","project":"Superalgos","id":"bb6ef8cd-1473-4200-9c0e-35b5eab40259","savedPayload":{"position":{"x":9351.254908732608,"y":20165.254658855683},"targetPosition":{"x":9876.501742633558,"y":21075.008861686816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 50 Begin","id":"00efabf8-701d-44b1-a590-b8399149dfbb"}}}],"id":"c867bef2-aa91-4753-9b27-68f88d42370e","savedPayload":{"position":{"x":9876.501742633558,"y":21075.008861686816},"targetPosition":{"x":9601.347001086557,"y":20048.11738628992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 100","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b03ef9cb-fef3-4a54-bf5a-a85528fa2699","savedPayload":{"position":{"x":10664.463285431131,"y":21551.59085398971},"targetPosition":{"x":9601.347001086557,"y":21551.59085398971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"baf25122-e7de-4283-b638-cfe2766220ac","savedPayload":{"position":{"x":9601.347001086557,"y":21551.59085398971},"targetPosition":{"x":8849.610267236661,"y":20799.854120139815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 100 Begin","project":"Superalgos","id":"8657980b-1796-4291-bba6-87520122b302","savedPayload":{"position":{"x":8314.085047829074,"y":21727.411008888226},"targetPosition":{"x":8849.610267236661,"y":20799.854120139815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 100 Begin","id":"bbacba1b-6b2d-48b7-a440-986a04c61858"}}},{"type":"Polygon Vertex","name":"SMA 100 End","project":"Superalgos","id":"45403abf-a4b1-4f8a-9d18-8ee72fef1792","savedPayload":{"position":{"x":8323.508001529335,"y":19888.618265957626},"targetPosition":{"x":8849.610267236661,"y":20799.854120139815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 100 End","id":"270a8be8-ad51-4061-abe1-a4c7234eb88a"}}}],"id":"7473f9b9-7737-4ee1-8418-39b96d8365c3","savedPayload":{"position":{"x":8849.610267236661,"y":20799.854120139815},"targetPosition":{"x":9601.347001086557,"y":20048.11738628992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 200","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"9475aa23-1561-45f6-8129-9d7ffaf0bb22","savedPayload":{"position":{"x":8024.1460425956575,"y":21826.74559553671},"targetPosition":{"x":8299.300784142659,"y":20799.854120139815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9007d9ad-f2b5-45fb-a7b3-b9579c74866d","savedPayload":{"position":{"x":8299.300784142659,"y":20799.854120139815},"targetPosition":{"x":8574.45552568966,"y":19772.96264474292},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 200 Begin","project":"Superalgos","id":"0b3d001b-060a-4d72-94e7-d8e9f76ef1ae","savedPayload":{"position":{"x":8049.264063956005,"y":20682.620940166973},"targetPosition":{"x":8574.45552568966,"y":19772.96264474292},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 200 Begin","id":"cd242031-8d7a-4cee-a680-156b0be7c7c7"}}},{"type":"Polygon Vertex","name":"SMA 200 End","project":"Superalgos","id":"178f2776-a5db-4cb9-b8c7-11ecb471bf12","savedPayload":{"position":{"x":8042.338171766252,"y":18851.308352158467},"targetPosition":{"x":8574.45552568966,"y":19772.96264474292},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 200 End","id":"328b048e-eb4a-4a02-ad95-a17cd170c4a7"}}}],"id":"5dbe47bb-9414-4edd-be08-5ab50755a852","savedPayload":{"position":{"x":8574.45552568966,"y":19772.96264474292},"targetPosition":{"x":9601.347001086557,"y":20048.11738628992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"340dc986-ccc9-4b47-ac54-294187daa2e0","savedPayload":{"position":{"x":10111.673182942548,"y":19095.1968527094},"targetPosition":{"x":10111.673182942548,"y":18645.1968527094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Popular SMA","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"SMA 20","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma20","project":"Superalgos","id":"4f901876-b274-426e-9755-529b6241890d","savedPayload":{"position":{"x":10390.792094169205,"y":19472.414398432375},"targetPosition":{"x":10056.376922704378,"y":19171.305625570887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"57d75985-febe-441b-be12-31f5eb10881b","savedPayload":{"position":{"x":10056.376922704378,"y":19171.305625570887},"targetPosition":{"x":9721.96175123955,"y":18870.1968527094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 50","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma50","project":"Superalgos","id":"dc2d66e9-8dc1-4092-bfa8-e147c7cf7226","savedPayload":{"position":{"x":9355.898772471332,"y":19692.387764587744},"targetPosition":{"x":9538.930261855441,"y":19281.29230864857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"74e3faab-246a-4c05-ae0a-b68f2095aa73","savedPayload":{"position":{"x":9538.930261855441,"y":19281.29230864857},"targetPosition":{"x":9721.96175123955,"y":18870.1968527094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 100","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma100","project":"Superalgos","id":"1b045b3c-13a9-4091-a804-0040340cf1be","savedPayload":{"position":{"x":8826.892045408104,"y":18776.121235768514},"targetPosition":{"x":9274.426898323827,"y":18823.159044238957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f46c7caf-8907-4cc4-b048-efe691a24049","savedPayload":{"position":{"x":9274.426898323827,"y":18823.159044238957},"targetPosition":{"x":9721.96175123955,"y":18870.1968527094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 200","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma200","project":"Superalgos","id":"ef7a7e7d-dec3-4da6-9646-d087e03b7a71","savedPayload":{"position":{"x":9534.841229503569,"y":17989.864012048973},"targetPosition":{"x":9628.40149037156,"y":18430.030432379186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e1108c8-e8a4-4ae8-b6b1-765c4292580a","savedPayload":{"position":{"x":9628.40149037156,"y":18430.030432379186},"targetPosition":{"x":9721.96175123955,"y":18870.1968527094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7fc74763-c245-4b23-8121-7fe0d1e8e1db","savedPayload":{"position":{"x":9721.96175123955,"y":18870.1968527094},"targetPosition":{"x":10111.673182942548,"y":18645.1968527094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ddf21e96-c312-4ebe-9e2b-f56e8ea072aa","savedPayload":{"position":{"x":10111.673182942548,"y":18645.1968527094},"targetPosition":{"x":10336.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"SMA Base 11","config":"{\n\t\"codeName\": \"SMA-Base11\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA 11 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma11","project":"Superalgos","id":"ab8c79b6-26ed-436e-a9ed-5581e48403a9","savedPayload":{"position":{"x":9383.181492817348,"y":18807.345717939013},"targetPosition":{"x":9544.3468964233,"y":18924.908769877064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"77d02772-853e-4e30-9efe-7bea8e829d51","savedPayload":{"position":{"x":9544.3468964233,"y":18924.908769877064},"targetPosition":{"x":9705.742435078944,"y":19042.28992410319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 11 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma11","project":"Superalgos","id":"e7f8c6de-4085-4886-ad93-c207274eb90c","savedPayload":{"position":{"x":9561.752539126115,"y":18670.019856663617},"targetPosition":{"x":9633.718566859352,"y":18856.20574317858},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"185ca2e7-b561-4ce4-b219-bd54496885b5","savedPayload":{"position":{"x":9633.718566859352,"y":18856.20574317858},"targetPosition":{"x":9705.742435078944,"y":19042.28992410319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 22 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma22","project":"Superalgos","id":"0c62dd54-916a-4187-be47-0715604a0632","savedPayload":{"position":{"x":9785.680908868886,"y":18651.36096062012},"targetPosition":{"x":9745.726969118656,"y":18846.851558282717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08b23cb2-cf78-48ae-bd9a-efe0e8df4578","savedPayload":{"position":{"x":9745.726969118656,"y":18846.851558282717},"targetPosition":{"x":9705.742435078944,"y":19042.28992410319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 22 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma22","project":"Superalgos","id":"f1d537b7-09a0-4031-8565-02ea33b66261","savedPayload":{"position":{"x":9984.580255818033,"y":18757.08319234595},"targetPosition":{"x":9845.1771487039,"y":18899.68042359086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3871971f-7f4b-49a0-a0d7-b1d08a4db951","savedPayload":{"position":{"x":9845.1771487039,"y":18899.68042359086},"targetPosition":{"x":9705.742435078944,"y":19042.28992410319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 33 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma33","project":"Superalgos","id":"5cbdb800-4b2b-49e6-a8ef-678587ecd626","savedPayload":{"position":{"x":10094.847058486153,"y":18953.57133778103},"targetPosition":{"x":9900.31076186333,"y":18997.91627189774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2734c9f2-1347-4b5b-8dbf-f7f42eb2c810","savedPayload":{"position":{"x":9900.31076186333,"y":18997.91627189774},"targetPosition":{"x":9705.742435078944,"y":19042.28992410319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 33 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma33","project":"Superalgos","id":"d7051dab-455d-4d02-8e0b-59139c3546d3","savedPayload":{"position":{"x":10175.009507231309,"y":19211.59843072385},"targetPosition":{"x":9893.62654816997,"y":19110.107233946117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"ce242fe6-2b52-4b89-a203-ce398b3545fd","savedPayload":{"position":{"x":9893.62654816997,"y":19110.107233946117},"targetPosition":{"x":9705.742435078944,"y":19042.28992410319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 55 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma55","project":"Superalgos","id":"2c8a5860-2c8c-4a04-b0aa-d353817d3dab","savedPayload":{"position":{"x":9948.613835573771,"y":19359.721783544366},"targetPosition":{"x":9827.178835175178,"y":19200.996960807097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bdc5f0cf-2c2f-466c-963b-19d81a13b532","savedPayload":{"position":{"x":9827.178835175178,"y":19200.996960807097},"targetPosition":{"x":9705.742435078944,"y":19042.28992410319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 55 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma55","project":"Superalgos","id":"62dfcbf0-e773-41db-80e0-bf46d47d977f","savedPayload":{"position":{"x":9738.567213938491,"y":19440.848134216503},"targetPosition":{"x":9722.142659191763,"y":19241.549245291986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2e58c59-c5d7-4b42-bb66-f012da23c12a","savedPayload":{"position":{"x":9722.142659191763,"y":19241.549245291986},"targetPosition":{"x":9705.742435078944,"y":19042.28992410319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 111 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma111","project":"Superalgos","id":"b496251d-8005-4d21-9be0-1dec58cb58ba","savedPayload":{"position":{"x":9518.412900675969,"y":19395.43500239507},"targetPosition":{"x":9612.038486393823,"y":19218.829351624554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"62ed1060-3233-4175-a4cc-8ad04a123105","savedPayload":{"position":{"x":9612.038486393823,"y":19218.829351624554},"targetPosition":{"x":9705.742435078944,"y":19042.28992410319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 11 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma111","project":"Superalgos","id":"3e765b91-17a0-4b30-bcfb-d7491afa9635","savedPayload":{"position":{"x":9357.413338947015,"y":19237.739607484033},"targetPosition":{"x":9531.475330971385,"y":19139.92089509658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bdee0fe7-c635-483d-b547-6271410cc35a","savedPayload":{"position":{"x":9531.475330971385,"y":19139.92089509658},"targetPosition":{"x":9705.742435078944,"y":19042.28992410319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"853ae08f-85ed-48e9-82d9-7f00184ff7e7","savedPayload":{"position":{"x":9705.742435078944,"y":19042.28992410319},"targetPosition":{"x":8712.334395529022,"y":18989.77442130183},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 11","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"a36a0be4-c3be-4e17-8459-ce24d08c60d4","savedPayload":{"position":{"x":8828.160936008579,"y":19632.984596305465},"targetPosition":{"x":8784.60140892896,"y":19506.80778662233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bc76dbe0-28fe-4811-b396-583cc810ad8c","savedPayload":{"position":{"x":8784.60140892896,"y":19506.80778662233},"targetPosition":{"x":8697.332722179079,"y":19255.325246155346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 11 Begin","project":"Superalgos","id":"007b0aa7-d129-4b66-97b1-a223b61465a9","savedPayload":{"position":{"x":8681.820965795447,"y":19521.276976398567},"targetPosition":{"x":8697.332722179079,"y":19255.325246155346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 11 Begin","id":"77d02772-853e-4e30-9efe-7bea8e829d51"}}},{"type":"Polygon Vertex","name":"SMA 11 End","project":"Superalgos","id":"8bf6c449-35d6-44c0-ac25-0da059e0c7d0","savedPayload":{"position":{"x":8614.844304460443,"y":19504.93942738568},"targetPosition":{"x":8697.332722179079,"y":19255.325246155346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 11 End","id":"185ca2e7-b561-4ce4-b219-bd54496885b5"}}}],"id":"82eff706-25ff-45ba-b066-0f20b64e26e1","savedPayload":{"position":{"x":8697.332722179079,"y":19255.325246155346},"targetPosition":{"x":8712.334395529022,"y":18989.77442130183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 22","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"48b5e69c-d187-40f8-aee9-89f02ac7b442","savedPayload":{"position":{"x":8517.80519229289,"y":19614.64286656509},"targetPosition":{"x":8533.37202129342,"y":19481.734843570386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"13b6ae03-77c1-473a-9cd9-eee42cab5005","savedPayload":{"position":{"x":8533.37202129342,"y":19481.734843570386},"targetPosition":{"x":8583.092636861576,"y":19222.19742188692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 22 End","project":"Superalgos","id":"5101118b-d0b2-46b3-b752-c1e8f3e09842","savedPayload":{"position":{"x":8442.022328549589,"y":19453.5226212805},"targetPosition":{"x":8583.092636861576,"y":19222.19742188692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 22 End","id":"3871971f-7f4b-49a0-a0d7-b1d08a4db951"}}},{"type":"Polygon Vertex","name":"SMA 22 Begin","project":"Superalgos","id":"5d1290b9-98c2-4925-9da4-fcdf50d13c5b","savedPayload":{"position":{"x":8398.362199323532,"y":19409.170527626364},"targetPosition":{"x":8583.092636861576,"y":19222.19742188692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 22 Begin","id":"08b23cb2-cf78-48ae-bd9a-efe0e8df4578"}}}],"id":"b7186c69-0a02-4820-bb58-1e2cee5790b3","savedPayload":{"position":{"x":8583.092636861576,"y":19222.19742188692},"targetPosition":{"x":8712.334395529022,"y":18989.77442130183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 33","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"a8183072-9dc8-4f7c-b72b-742477e4c8fd","savedPayload":{"position":{"x":8264.424399874737,"y":19467.084347394954},"targetPosition":{"x":8336.235746683473,"y":19354.114380500887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"98a87528-cb66-4e15-a3b0-aadb8d25fcec","savedPayload":{"position":{"x":8336.235746683473,"y":19354.114380500887},"targetPosition":{"x":8494.871490433437,"y":19142.83247303302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 33 End","project":"Superalgos","id":"242e470b-2971-40b2-9f06-a95bf95e23fc","savedPayload":{"position":{"x":8266.675999455947,"y":19289.583637805164},"targetPosition":{"x":8494.871490433437,"y":19142.83247303302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 33 End","id":"ce242fe6-2b52-4b89-a203-ce398b3545fd"}}},{"type":"Polygon Vertex","name":"SMA 33 Begin","project":"Superalgos","id":"106e4253-deab-440c-828a-ea55aea78c97","savedPayload":{"position":{"x":8247.108659606201,"y":19230.885635027793},"targetPosition":{"x":8494.871490433437,"y":19142.83247303302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 33 Begin","id":"2734c9f2-1347-4b5b-8dbf-f7f42eb2c810"}}}],"id":"53f19bad-dcb0-476f-8b32-0d332d1ad130","savedPayload":{"position":{"x":8494.871490433437,"y":19142.83247303302},"targetPosition":{"x":8712.334395529022,"y":18989.77442130183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 55","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"ea853676-6bdc-4723-a515-1a4c683fa1fa","savedPayload":{"position":{"x":8101.71058715121,"y":19224.911733393317},"targetPosition":{"x":8215.448838789682,"y":19154.35246683007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1fd3b244-b5ae-4a96-add5-50b228eac931","savedPayload":{"position":{"x":8215.448838789682,"y":19154.35246683007},"targetPosition":{"x":8449.92306524219,"y":19032.998583296296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 55 End","project":"Superalgos","id":"c0102a15-8594-4582-9714-75e555e3f2ac","savedPayload":{"position":{"x":8180.518023130728,"y":19066.182565077248},"targetPosition":{"x":8449.92306524219,"y":19032.998583296296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 55 End","id":"d2e58c59-c5d7-4b42-bb66-f012da23c12a"}}},{"type":"Polygon Vertex","name":"SMA 55 Begin","project":"Superalgos","id":"aa781190-aa71-4407-bc72-db67ffd67c7e","savedPayload":{"position":{"x":8188.44811119615,"y":19004.812482643138},"targetPosition":{"x":8449.92306524219,"y":19032.998583296296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 55 Begin","id":"bdc5f0cf-2c2f-466c-963b-19d81a13b532"}}}],"id":"8341d899-4df1-47f8-8e0d-bb87b76ed622","savedPayload":{"position":{"x":8449.92306524219,"y":19032.998583296296},"targetPosition":{"x":8712.334395529022,"y":18989.77442130183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 111","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"85056d46-5dd2-4dc2-9c40-55ef936aeea8","savedPayload":{"position":{"x":8060.750446473568,"y":18936.31980580264},"targetPosition":{"x":8193.716212493997,"y":18922.169183789323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bd5b197d-7425-461d-a2ab-5ad6446d00ee","savedPayload":{"position":{"x":8193.716212493997,"y":18922.169183789323},"targetPosition":{"x":8457.28042621804,"y":18914.458295622982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 11 End","project":"Superalgos","id":"fbd2d02d-d58e-4d04-a5a6-9bbc6e877244","savedPayload":{"position":{"x":8200.035224025785,"y":18827.50955426969},"targetPosition":{"x":8457.28042621804,"y":18914.458295622982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 11 End","id":"bdee0fe7-c635-483d-b547-6271410cc35a"}}},{"type":"Polygon Vertex","name":"SMA 111 Begin","project":"Superalgos","id":"e79d988b-7d4a-4201-839a-a95f99dc26fe","savedPayload":{"position":{"x":8253.55638438573,"y":18741.867832740318},"targetPosition":{"x":8457.28042621804,"y":18914.458295622982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 111 Begin","id":"62ed1060-3233-4175-a4cc-8ad04a123105"}}}],"id":"5745a180-5f94-4109-b8e5-41b2c21e9f1a","savedPayload":{"position":{"x":8457.28042621804,"y":18914.458295622982},"targetPosition":{"x":8712.334395529022,"y":18989.77442130183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"ade8af76-e9e6-4dda-8921-c3c5cc8a0ecc","savedPayload":{"position":{"x":8712.334395529022,"y":18989.77442130183},"targetPosition":{"x":9067.143905103756,"y":18595.585201819194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"SMA Base 11","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"SMA 11","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma11","project":"Superalgos","id":"bce6e5ba-e93b-4c0f-9013-db467727e721","savedPayload":{"position":{"x":7690.82716357227,"y":18698.521226845543},"targetPosition":{"x":7868.968460979686,"y":18501.01233308383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f4794965-6a35-4289-9e0e-718b931028de","savedPayload":{"position":{"x":7868.968460979686,"y":18501.01233308383},"targetPosition":{"x":8046.89224069933,"y":18303.419755563373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 22","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma22","project":"Superalgos","id":"e8837d50-025b-4bbc-8199-328df7afbdda","savedPayload":{"position":{"x":7540.728645988642,"y":18467.584258462917},"targetPosition":{"x":7793.8494686813465,"y":18385.51164910862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2b4712d6-5952-4bd0-bcac-7d396d95f842","savedPayload":{"position":{"x":7793.8494686813465,"y":18385.51164910862},"targetPosition":{"x":8046.89224069933,"y":18303.419755563373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 33","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma33","project":"Superalgos","id":"825bc681-cb31-4d26-85af-4f692538fc9d","savedPayload":{"position":{"x":7526.319350283335,"y":18192.993436092846},"targetPosition":{"x":7786.640289765532,"y":18248.196888819733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"377ff3cb-9d7b-45aa-a2c1-3cabf3540c8e","savedPayload":{"position":{"x":7786.640289765532,"y":18248.196888819733},"targetPosition":{"x":8046.89224069933,"y":18303.419755563373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 55","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma55","project":"Superalgos","id":"24c4a804-6686-43ab-a664-db08d860034c","savedPayload":{"position":{"x":7651.409019812963,"y":17947.626704977585},"targetPosition":{"x":7849.2046405484,"y":18125.49841436369},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4b0485d9-4d37-4402-939b-eb878c6750ec","savedPayload":{"position":{"x":7849.2046405484,"y":18125.49841436369},"targetPosition":{"x":8046.89224069933,"y":18303.419755563373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 111","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma111","project":"Superalgos","id":"3d21e771-7edd-4460-aa23-da3c7880a629","savedPayload":{"position":{"x":7882.582971693344,"y":17797.80704902606},"targetPosition":{"x":7964.874005998467,"y":18050.544608162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"738b01bd-a4da-4f90-a816-c021eeb81030","savedPayload":{"position":{"x":7964.874005998467,"y":18050.544608162},"targetPosition":{"x":8046.89224069933,"y":18303.419755563373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fc702308-8514-4e8d-85d3-5d052aad782c","savedPayload":{"position":{"x":8046.89224069933,"y":18303.419755563373},"targetPosition":{"x":9067.143905103756,"y":18595.585201819194},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4a61ac35-a1ae-40f4-b3da-f81ae796ee00","savedPayload":{"position":{"x":9752.106035388051,"y":18592.9854210064},"targetPosition":{"x":10336.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"SMA Base 7","config":"{\n\t\"codeName\": \"SMA-Base7\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA 7 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma7","project":"Superalgos","id":"b459dee1-24d0-4794-9c4d-d9c58972f6e6","savedPayload":{"position":{"x":7924.4581076445465,"y":19754.23480148812},"targetPosition":{"x":8275.428754428198,"y":20152.62466313735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8d6e2d59-fe23-4ba5-ad87-d9d15ad60340","savedPayload":{"position":{"x":8275.428754428198,"y":20152.62466313735},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 7 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma7","project":"Superalgos","id":"3994ef79-ab0b-4552-bbde-f754a86f2e04","savedPayload":{"position":{"x":8165.829233947225,"y":19594.47003371846},"targetPosition":{"x":8396.154729796512,"y":20072.641733875826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a95fee99-4a06-44d7-a6c4-0eea9ccec4d9","savedPayload":{"position":{"x":8396.154729796512,"y":20072.641733875826},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 14 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma14","project":"Superalgos","id":"40d386cb-84a9-49b0-b28e-3d39e9e274cb","savedPayload":{"position":{"x":8441.423538395913,"y":19505.683982804214},"targetPosition":{"x":8533.928384809977,"y":20028.22049259961},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c6d631e7-8cd0-4ccd-b7b4-90b8dda615d8","savedPayload":{"position":{"x":8533.928384809977,"y":20028.22049259961},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 21 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma21","project":"Superalgos","id":"6d2cd604-9a38-4ab7-b19d-9e9e3ae8ad25","savedPayload":{"position":{"x":8730.243038089553,"y":19494.35117695828},"targetPosition":{"x":8678.36579042373,"y":20022.602550834836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f1044fa-67dd-42dc-ba74-61e299e1f1e1","savedPayload":{"position":{"x":8678.36579042373,"y":20022.602550834836},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 21 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma21","project":"Superalgos","id":"1de80488-5eeb-491c-bd5f-e5bd7569dc59","savedPayload":{"position":{"x":9011.698059988921,"y":19561.493443206},"targetPosition":{"x":8819.13631815161,"y":20056.21297029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"df7e58c1-c042-443b-bfd3-69d57894d358","savedPayload":{"position":{"x":8819.13631815161,"y":20056.21297029057},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 28 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma28","project":"Superalgos","id":"93b50d69-b003-4590-b098-ff59dc226e22","savedPayload":{"position":{"x":9264.568962888286,"y":19702.108497000165},"targetPosition":{"x":8945.610825815766,"y":20126.546537699018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7bd742dd-7c4c-4dfe-9415-e655a5e1cc88","savedPayload":{"position":{"x":8945.610825815766,"y":20126.546537699018},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 28 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma28","project":"Superalgos","id":"36ddca01-d7c2-44e4-bac6-1efd92721b56","savedPayload":{"position":{"x":9470.11478921376,"y":19905.76395509005},"targetPosition":{"x":9048.410919460857,"y":20228.399921427615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7678774b-b068-4757-962b-8e126342898a","savedPayload":{"position":{"x":9048.410919460857,"y":20228.399921427615},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 35 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma35","project":"Superalgos","id":"e631b84b-646b-41f7-b87b-7cb4fbf8ac76","savedPayload":{"position":{"x":9613.082275503264,"y":20157.333310532602},"targetPosition":{"x":9119.905453138304,"y":20354.21058016676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"93613bd9-2dbb-493c-a72e-414b0398733e","savedPayload":{"position":{"x":9119.905453138304,"y":20354.21058016676},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 35 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma35","project":"Superalgos","id":"89e3900f-eeaf-47cb-97f6-9093b2f39811","savedPayload":{"position":{"x":9682.882303442613,"y":20438.158639779485},"targetPosition":{"x":9154.81384628839,"y":20494.653849311384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f620fdbe-48b5-4831-995d-b3c721738d1b","savedPayload":{"position":{"x":9154.81384628839,"y":20494.653849311384},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 70 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma70","project":"Superalgos","id":"cacaceaf-b19d-4b2a-81b3-5ac6b44877b7","savedPayload":{"position":{"x":9674.327031472189,"y":20726.99614205352},"targetPosition":{"x":9150.536806995697,"y":20639.098881402304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e506a85-5f72-4a3f-a773-cd85d8b15f21","savedPayload":{"position":{"x":9150.52981203033,"y":20639.095156736894},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 70 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma70","project":"Superalgos","id":"8658d660-52c4-41f8-b423-db569ff19941","savedPayload":{"position":{"x":9588.032736084515,"y":21003.19985327202},"targetPosition":{"x":9107.381152766848,"y":20777.227031679475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8392e1ff-33a6-4b95-baad-3f146bd3c121","savedPayload":{"position":{"x":9107.385060788252,"y":20777.233862153025},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 140 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma140","project":"Superalgos","id":"a56e674e-ec4f-4448-a8bc-bfbc3a02eea4","savedPayload":{"position":{"x":9430.411601855223,"y":21245.887720094255},"targetPosition":{"x":9028.554049361028,"y":20898.593460648928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"39e65adb-6125-4e9a-8f15-5403b21aac40","savedPayload":{"position":{"x":9028.56625760474,"y":20898.595818593778},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 140 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma140","project":"Superalgos","id":"9aeb4594-c7e0-41e1-83b3-8df31b0d44b0","savedPayload":{"position":{"x":9213.16845744941,"y":21437.0633595646},"targetPosition":{"x":8919.917664468816,"y":20994.20502186945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7559cbf5-acba-4a60-91b4-d95f90293f22","savedPayload":{"position":{"x":8919.91017998999,"y":20994.21135544464},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 210 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma210","project":"Superalgos","id":"8856ee41-b264-4468-9dac-eb808b483df3","savedPayload":{"position":{"x":8952.372633911818,"y":21562.52103613648},"targetPosition":{"x":8789.493979865729,"y":21056.951956783356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"479df802-576f-45f1-8322-6b2e493c5ecc","savedPayload":{"position":{"x":8789.50637795308,"y":21056.95149920585},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 210 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma210","project":"Superalgos","id":"f4fa8a22-fe87-4174-bf51-cb574381ca0d","savedPayload":{"position":{"x":8667.40925271039,"y":21612.97606195051},"targetPosition":{"x":8646.983756710713,"y":21082.182383228053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"45a926f2-4bb2-4562-b40f-bd2532ff1d10","savedPayload":{"position":{"x":8646.987243865668,"y":21082.17107973462},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 280 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma280","project":"Superalgos","id":"49f183b2-f8d1-4055-947d-291b7787d846","savedPayload":{"position":{"x":8379.804795041793,"y":21584.693431738036},"targetPosition":{"x":8503.153898364933,"y":21068.04061559355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d5e455bf-bb27-41fa-ba41-c8e7d0aa4d5e","savedPayload":{"position":{"x":8503.16491870677,"y":21068.04304327845},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 280 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma280","project":"Superalgos","id":"012f6580-f9e9-47f6-b6f4-82598b8e8aa7","savedPayload":{"position":{"x":8110.095055204674,"y":21479.76009389127},"targetPosition":{"x":8368.2753323978,"y":21015.557492182434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"298d0ca9-1b4a-48d8-8efe-fda6b2fc2c34","savedPayload":{"position":{"x":8368.288982473729,"y":21015.561343167265},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 350 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma350","project":"Superalgos","id":"4a3f6588-26e3-446b-ac4e-54ad3bc9ef3c","savedPayload":{"position":{"x":7878.704544148615,"y":21305.95312318116},"targetPosition":{"x":8252.561244746095,"y":20928.63811337829},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f3c05d30-da2e-449e-8471-dcc216f4e630","savedPayload":{"position":{"x":8252.57541240655,"y":20928.636462026636},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 350 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma350","project":"Superalgos","id":"1157762f-1236-43b1-a399-06d59a992d55","savedPayload":{"position":{"x":7702.796208908232,"y":21076.164747618153},"targetPosition":{"x":8164.597317944226,"y":20813.720375959554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d6598381-9b15-4cb3-afba-b85ed6770ce3","savedPayload":{"position":{"x":8164.601799719287,"y":20813.708270070074},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"New Point","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"24151ce9-3ecb-4c6b-97e5-41a8a95b45a8","savedPayload":{"position":{"x":7595.406247101153,"y":20807.426564724785},"targetPosition":{"x":8110.89487759805,"y":20679.318680863948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"30f77a0a-81fd-4498-8510-cfca20b6b1d8","savedPayload":{"position":{"x":8110.891984664871,"y":20679.325384518284},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"New Point","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"0da81a21-3169-44c7-a896-17eb32bdfa17","savedPayload":{"position":{"x":7564.504276171734,"y":20520.09039280759},"targetPosition":{"x":8095.446372859231,"y":20535.612642209082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6fd2e88e-f5e1-45d5-8baf-4bc724bf2bae","savedPayload":{"position":{"x":8095.446372859231,"y":20535.612642209082},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 14 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma14","project":"Superalgos","id":"78e7fbfb-c210-44b6-8399-1567f81c73c9","savedPayload":{"position":{"x":7612.421466774944,"y":20234.607984954633},"targetPosition":{"x":8119.427440348038,"y":20392.80057866766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d5f823d6-8b99-44b5-99dc-04724a531323","savedPayload":{"position":{"x":8119.427440348038,"y":20392.80057866766},"targetPosition":{"x":8626.560260716764,"y":20551.169215832335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e561ee2d-8458-4001-8904-61cd2a3a815e","savedPayload":{"position":{"x":8626.560260716764,"y":20551.169215832335},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 7","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"38522e0c-85c4-49ae-93ac-9a04470855e0","savedPayload":{"position":{"x":8252.443799997553,"y":19263.54131752478},"targetPosition":{"x":8301.597088541981,"y":19139.55031849191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"fcc0c4b0-28ea-4482-8da8-16a0c88c1e52","savedPayload":{"position":{"x":8301.597088541981,"y":19139.55031849191},"targetPosition":{"x":8374.01587073219,"y":18878.974436158598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 7 End","project":"Superalgos","id":"f11dbba2-2bd3-4d0a-a182-2ef78a492d32","savedPayload":{"position":{"x":8226.635557952322,"y":19118.893857873674},"targetPosition":{"x":8374.01587073219,"y":18878.974436158598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 7 End","id":"a95fee99-4a06-44d7-a6c4-0eea9ccec4d9"}}},{"type":"Polygon Vertex","name":"SMA 7 Begin","project":"Superalgos","id":"c50700bc-305d-4cb6-b1bf-1c03c7459d2b","savedPayload":{"position":{"x":8178.681026709226,"y":19048.679022859982},"targetPosition":{"x":8374.01587073219,"y":18878.974436158598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 7 Begin","id":"8d6e2d59-fe23-4ba5-ad87-d9d15ad60340"}}}],"id":"62ad882d-f16d-4476-8c17-0f6e2d6e2b76","savedPayload":{"position":{"x":8374.01587073219,"y":18878.974436158598},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 14","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"14a21030-fa6b-44ef-8cb2-e4f3cb79126e","savedPayload":{"position":{"x":8037.375925744829,"y":19123.256694005093},"targetPosition":{"x":8117.363476839717,"y":19016.069051638104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ca2fa8f2-f6a1-4084-8606-a35495dfd596","savedPayload":{"position":{"x":8117.363476839717,"y":19016.069051638104},"targetPosition":{"x":8268.083455446482,"y":18788.681855964238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 14 Begin","project":"Superalgos","id":"e7d170e8-3d4f-4a55-883a-3a3394fef2af","savedPayload":{"position":{"x":8064.349363530146,"y":18979.758085451354},"targetPosition":{"x":8268.083455446482,"y":18788.681855964238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 14 Begin","id":"d5f823d6-8b99-44b5-99dc-04724a531323"}}},{"type":"Polygon Vertex","name":"SMA 14 End","project":"Superalgos","id":"2383789a-4600-4b8b-a49b-51cbeb46d4f1","savedPayload":{"position":{"x":8034.218104480391,"y":18901.75102395761},"targetPosition":{"x":8268.083455446482,"y":18788.681855964238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 14 End","id":"c6d631e7-8cd0-4ccd-b7b4-90b8dda615d8"}}}],"id":"ab179cef-53c3-46f7-a83b-af29ccd8bc90","savedPayload":{"position":{"x":8268.083455446482,"y":18788.681855964238},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 21","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"f8f0733e-0890-4d54-8d77-1b1fc8b8c92b","savedPayload":{"position":{"x":7878.991878596775,"y":18937.272601556157},"targetPosition":{"x":7984.165899821968,"y":18854.456193319937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"a0f2de63-1abd-4945-9c8c-84e21fd121e0","savedPayload":{"position":{"x":7984.165899821968,"y":18854.456193319937},"targetPosition":{"x":8189.316746544326,"y":18674.234290549834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 21 End","project":"Superalgos","id":"69c3f249-07bf-4a03-b8a1-9d74d0255f23","savedPayload":{"position":{"x":7942.5632499408275,"y":18805.760867566303},"targetPosition":{"x":8189.316746544326,"y":18674.234290549834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 21 End","id":"df7e58c1-c042-443b-bfd3-69d57894d358"}}},{"type":"Polygon Vertex","name":"SMA 21 Begin","project":"Superalgos","id":"959961b9-9bf9-48ce-9ee0-08d2d6a62b8e","savedPayload":{"position":{"x":7934.453251296498,"y":18722.6132559411},"targetPosition":{"x":8189.316746544326,"y":18674.234290549834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 21 Begin","id":"4f1044fa-67dd-42dc-ba74-61e299e1f1e1"}}}],"id":"9a17429f-8213-4a7e-8167-dc36d761973e","savedPayload":{"position":{"x":8189.316746544326,"y":18674.234290549834},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 28","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"713c60e9-ee11-4551-ab62-58ce9c16e066","savedPayload":{"position":{"x":7774.558778671915,"y":18717.03142791299},"targetPosition":{"x":7897.642496897133,"y":18664.309276482138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"725a4d2f-0838-4d78-a8fa-a2b129feda2f","savedPayload":{"position":{"x":7897.642496897133,"y":18664.309276482138},"targetPosition":{"x":8142.882324441336,"y":18543.34202283513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 28 Begin","project":"Superalgos","id":"f4c161f4-6510-47a2-97f7-3f9f848d9892","savedPayload":{"position":{"x":7870.545719635898,"y":18606.438062094872},"targetPosition":{"x":8142.882324441336,"y":18543.34202283513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 28 Begin","id":"7bd742dd-7c4c-4dfe-9415-e655a5e1cc88"}}},{"type":"Polygon Vertex","name":"SMA 28 End","project":"Superalgos","id":"b1b22a6f-0a69-401f-90ea-2306baee0ea2","savedPayload":{"position":{"x":7884.062039084125,"y":18524.183214866738},"targetPosition":{"x":8142.882324441336,"y":18543.34202283513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 28 End","id":"7678774b-b068-4757-962b-8e126342898a"}}}],"id":"4f6e0c60-00a8-4a76-b1b1-4eaa25c5824c","savedPayload":{"position":{"x":8142.882324441336,"y":18543.34202283513},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 35","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"73f591c5-286b-4441-aa59-f647f738e40e","savedPayload":{"position":{"x":7599.719987582568,"y":18496.50536638155},"targetPosition":{"x":7863.425575888927,"y":18458.388169859227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2c56cb10-43c9-447b-8b8a-30dae8e7fab8","savedPayload":{"position":{"x":7863.425575888927,"y":18458.388169859227},"targetPosition":{"x":8131.96785915098,"y":18405.11128088391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 35 End","project":"Superalgos","id":"3ad24108-1339-4c6d-abc6-27a9aa5bc046","savedPayload":{"position":{"x":7852.843961589664,"y":18395.620862705608},"targetPosition":{"x":8131.96785915098,"y":18405.11128088391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 35 End","id":"f620fdbe-48b5-4831-995d-b3c721738d1b"}}},{"type":"Polygon Vertex","name":"SMA 35 Begin","project":"Superalgos","id":"abfdefe3-b9d4-4816-b2cc-7aa64bb69734","savedPayload":{"position":{"x":7886.693868965085,"y":18319.501514394233},"targetPosition":{"x":8131.96785915098,"y":18405.11128088391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 35 Begin","id":"93613bd9-2dbb-493c-a72e-414b0398733e"}}}],"id":"a8a09eca-7bee-4f17-b7db-1f43f419441c","savedPayload":{"position":{"x":8131.96785915098,"y":18405.11128088391},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 70","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"9ac33f9d-bce7-407a-8de9-3334bb263b69","savedPayload":{"position":{"x":7619.701099020283,"y":18219.443095113777},"targetPosition":{"x":7884.283227019376,"y":18250.683805938188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ea184e1f-5a0f-4ed3-b3ed-6ba18e7237f9","savedPayload":{"position":{"x":7884.283227019376,"y":18250.683805938188},"targetPosition":{"x":8157.255025769755,"y":18268.631664856304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 70 Begin","project":"Superalgos","id":"5505dd50-5ad7-48fc-9256-14cab581d92f","savedPayload":{"position":{"x":7890.120377666757,"y":18187.276506483522},"targetPosition":{"x":8157.255025769755,"y":18268.631664856304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 70 Begin","id":"9e506a85-5f72-4a3f-a773-cd85d8b15f21"}}},{"type":"Polygon Vertex","name":"SMA 70 End","project":"Superalgos","id":"b255b251-b73a-469c-a41f-e273d2909af2","savedPayload":{"position":{"x":7942.431280581219,"y":18122.42444651228},"targetPosition":{"x":8157.255025769755,"y":18268.631664856304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 70 End","id":"8392e1ff-33a6-4b95-baad-3f146bd3c121"}}}],"id":"31cf093b-6de4-4e4a-a8f4-f3ff989dd374","savedPayload":{"position":{"x":8157.255025769755,"y":18268.631664856304},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 140","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"e9088da2-eb17-4e48-9fba-5bd00fba6a2b","savedPayload":{"position":{"x":7710.8560181116845,"y":17956.871423259512},"targetPosition":{"x":7958.28097072769,"y":18055.490295575146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"b93ae9ca-6c4e-47db-a998-045e845ab9cd","savedPayload":{"position":{"x":7958.28097072769,"y":18055.490295575146},"targetPosition":{"x":8217.06739595913,"y":18143.330928105715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 140 Begin","project":"Superalgos","id":"e1bdea5b-664c-4146-adf6-858405354f8c","savedPayload":{"position":{"x":7980.041623602574,"y":17995.526277990564},"targetPosition":{"x":8217.06739595913,"y":18143.330928105715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 140 Begin","id":"39e65adb-6125-4e9a-8f15-5403b21aac40"}}},{"type":"Polygon Vertex","name":"SMA 140 End","project":"Superalgos","id":"3d994072-d0b7-4065-a8be-3c718de28086","savedPayload":{"position":{"x":8047.563244050285,"y":17946.5566451907},"targetPosition":{"x":8217.06739595913,"y":18143.330928105715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 140 End","id":"7559cbf5-acba-4a60-91b4-d95f90293f22"}}}],"id":"41a149aa-efdf-4f53-82cf-cce9e904a000","savedPayload":{"position":{"x":8217.06739595913,"y":18143.330928105715},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 210","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"08949257-633e-4013-b770-bbb798972d2d","savedPayload":{"position":{"x":7866.808483348836,"y":17726.787559283333},"targetPosition":{"x":8080.171292052328,"y":17885.97733437856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"53e088d8-8ec5-4dbe-b732-c65f31005105","savedPayload":{"position":{"x":8080.171292052328,"y":17885.97733437856},"targetPosition":{"x":8307.304958444904,"y":18037.73912548282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 210 Begin","project":"Superalgos","id":"15882e16-4782-48e8-9cac-fbb1d07ae51d","savedPayload":{"position":{"x":8116.688084896257,"y":17833.662323191566},"targetPosition":{"x":8307.304958444904,"y":18037.73912548282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 210 Begin","id":"479df802-576f-45f1-8322-6b2e493c5ecc"}}},{"type":"Polygon Vertex","name":"SMA 210 End","project":"Superalgos","id":"a6f51174-ea46-4282-a476-4e809f456682","savedPayload":{"position":{"x":8194.62404860694,"y":17803.771655551598},"targetPosition":{"x":8307.304958444904,"y":18037.73912548282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 210 End","id":"45a926f2-4bb2-4562-b40f-bd2532ff1d10"}}}],"id":"c3ee15c5-a5b3-4318-bc09-a9fd03592d83","savedPayload":{"position":{"x":8307.304958444904,"y":18037.73912548282},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 280","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"942d9600-7935-4ca6-81d8-9bd014df736f","savedPayload":{"position":{"x":8077.345513047199,"y":17544.868171614493},"targetPosition":{"x":8241.887240880693,"y":17753.802767958114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1c6e0c3f-8ac7-4b0b-9da8-0f7faf9befd1","savedPayload":{"position":{"x":8241.887240880693,"y":17753.802767958114},"targetPosition":{"x":8421.880003139959,"y":17959.087383424867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 280 Begin","project":"Superalgos","id":"cc54382b-cf2b-42c7-8958-8816809dd7ba","savedPayload":{"position":{"x":8290.585401559361,"y":17712.266237260712},"targetPosition":{"x":8421.880003139959,"y":17959.087383424867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 280 Begin","id":"d5e455bf-bb27-41fa-ba41-c8e7d0aa4d5e"}}},{"type":"Polygon Vertex","name":"SMA 280 End","project":"Superalgos","id":"3629786a-8eed-4cff-9780-0e685aeed577","savedPayload":{"position":{"x":8373.91140868601,"y":17704.32678310176},"targetPosition":{"x":8421.880003139959,"y":17959.087383424867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 280 End","id":"298d0ca9-1b4a-48d8-8efe-fda6b2fc2c34"}}}],"id":"3bbf5574-e89c-4538-a95c-2da58e5a74d7","savedPayload":{"position":{"x":8421.880003139959,"y":17959.087383424867},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 350","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.BLACK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"8142bd21-31e4-4edd-97d5-217e30321e0a","savedPayload":{"position":{"x":8327.572677003798,"y":17423.086081637604},"targetPosition":{"x":8432.288758488718,"y":17667.611070988834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6eade211-19cf-48a7-87ac-faf30e387e10","savedPayload":{"position":{"x":8432.288758488718,"y":17667.611070988834},"targetPosition":{"x":8553.10716459541,"y":17912.743876372548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 350 End","project":"Superalgos","id":"f16d8eac-9e78-4167-b087-9803637412a6","savedPayload":{"position":{"x":8485.252145805101,"y":17639.02204652707},"targetPosition":{"x":8553.10716459541,"y":17912.743876372548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 350 End","id":"d6598381-9b15-4cb3-afba-b85ed6770ce3"}}},{"type":"Polygon Vertex","name":"SMA 350 Begin","project":"Superalgos","id":"b94a339d-5abf-4563-a693-edb5d812c24e","savedPayload":{"position":{"x":8595.688241181047,"y":17652.18275151536},"targetPosition":{"x":8553.10716459541,"y":17912.743876372548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 350 Begin","id":"f3c05d30-da2e-449e-8471-dcc216f4e630"}}}],"id":"046240f2-f70b-471d-b07b-0e7490222f0d","savedPayload":{"position":{"x":8553.10716459541,"y":17912.743876372548},"targetPosition":{"x":8662.742040571695,"y":18432.77995224194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"391b803a-4b4e-4c0b-bb6b-b4d68e989c9c","savedPayload":{"position":{"x":8662.742040571695,"y":18432.77995224194},"targetPosition":{"x":9067.446839984288,"y":17938.99651740955},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"SMA Base 7","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"SMA 7","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma7","project":"Superalgos","id":"1c683838-c882-49bd-997a-2f4255347854","savedPayload":{"position":{"x":7931.76623776737,"y":17488.265904432366},"targetPosition":{"x":7889.4062739556975,"y":17226.38467959082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c26c14bd-b9ab-4121-89b2-eb3044534cf2","savedPayload":{"position":{"x":7889.4062739556975,"y":17226.38467959082},"targetPosition":{"x":7846.680017136143,"y":16964.194267115152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 14","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma14","project":"Superalgos","id":"1060ea54-bb29-4c3b-8db0-522893543a36","savedPayload":{"position":{"x":7634.596976637695,"y":17451.6690083696},"targetPosition":{"x":7740.690878153728,"y":17207.987347244165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94b29f18-cad5-49df-8b87-d6ef10f5ae61","savedPayload":{"position":{"x":7740.690878153728,"y":17207.987347244165},"targetPosition":{"x":7846.680017136143,"y":16964.194267115152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 21","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma21","project":"Superalgos","id":"c0287e9c-4b88-4b92-b6ac-f17474649958","savedPayload":{"position":{"x":7404.3549720124065,"y":17259.81779391045},"targetPosition":{"x":7625.510289031819,"y":17112.013278031198},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ffcb7173-b2bf-4d5d-90e5-6f8b26af4b86","savedPayload":{"position":{"x":7625.510289031819,"y":17112.013278031198},"targetPosition":{"x":7846.680017136143,"y":16964.194267115152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 28","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma28","project":"Superalgos","id":"9f1615e0-e437-4221-8e9a-a6dcb4556022","savedPayload":{"position":{"x":7314.46585307259,"y":16973.804634409313},"targetPosition":{"x":7580.538821250248,"y":16968.982207324134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"186d8c1a-5eef-44a1-aa09-b28e4f5b6b0e","savedPayload":{"position":{"x":7580.538821250248,"y":16968.982207324134},"targetPosition":{"x":7846.680017136143,"y":16964.194267115152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 35","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma35","project":"Superalgos","id":"423f3069-d5a3-4d29-bb35-68802f367c50","savedPayload":{"position":{"x":7393.501305306105,"y":16684.931119976958},"targetPosition":{"x":7620.053326785106,"y":16824.530873789074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6b047d8e-451d-4267-adc4-6e9496aa0025","savedPayload":{"position":{"x":7620.053326785106,"y":16824.530873789074},"targetPosition":{"x":7846.680017136143,"y":16964.194267115152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 70","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma70","project":"Superalgos","id":"62ed074e-5b1a-4306-b411-cd436680147d","savedPayload":{"position":{"x":7616.3948631495805,"y":16484.253095142783},"targetPosition":{"x":7731.516700918088,"y":16724.177000928346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9676685c-f20e-4d65-a0fe-8551e80132ee","savedPayload":{"position":{"x":7731.516700918088,"y":16724.177000928346},"targetPosition":{"x":7846.680017136143,"y":16964.194267115152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 140","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma140","project":"Superalgos","id":"2200abd2-2897-4eff-9804-f599c0e18f42","savedPayload":{"position":{"x":7911.974574042917,"y":16435.910008409315},"targetPosition":{"x":7879.327601914589,"y":16700.005954984834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a44d3c89-8463-4493-b195-70ee4146bbdb","savedPayload":{"position":{"x":7879.327601914589,"y":16700.005954984834},"targetPosition":{"x":7846.680017136143,"y":16964.194267115152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 210","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma210","project":"Superalgos","id":"38e3066f-1951-4c96-8a36-3bcf778328bd","savedPayload":{"position":{"x":8187.062377590519,"y":16555.24944495255},"targetPosition":{"x":8016.892905570028,"y":16759.692069869172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"44198c4d-4d98-43a2-9c03-2d8794b9edac","savedPayload":{"position":{"x":8016.892905570028,"y":16759.692069869172},"targetPosition":{"x":7846.680017136143,"y":16964.194267115152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 280","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma280","project":"Superalgos","id":"eca55243-4492-4983-9e03-04694437c8ae","savedPayload":{"position":{"x":8353.933872537942,"y":16804.365673372242},"targetPosition":{"x":8100.338508855533,"y":16884.277102455835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96706885-fa55-4fad-82bd-fb43a2f331d7","savedPayload":{"position":{"x":8100.338508855533,"y":16884.277102455835},"targetPosition":{"x":7846.680017136143,"y":16964.194267115152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 350","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma350","project":"Superalgos","id":"64ea1867-2fb1-4191-a4c7-b5ac37f7be7a","savedPayload":{"position":{"x":8359.54699409522,"y":17103.71886027376},"targetPosition":{"x":8103.120944400147,"y":17034.060790175834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9f208b33-3d80-4d2e-ad88-13139a8e93f8","savedPayload":{"position":{"x":8103.120944400147,"y":17034.060790175834},"targetPosition":{"x":7846.680017136143,"y":16964.194267115152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b73ac725-eea1-4aa2-974c-937de300b456","savedPayload":{"position":{"x":7846.680017136143,"y":16964.194267115152},"targetPosition":{"x":9067.446839984288,"y":17938.99651740955},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"515565ff-dee2-4adf-adaf-b4cfea5f5dbd","savedPayload":{"position":{"x":9661.673182942548,"y":18255.4854210064},"targetPosition":{"x":10336.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"SMA Base 6","config":"{\n\t\"codeName\": \"SMA-Base6\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA 6 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma6","project":"Superalgos","id":"28dce892-9996-45ac-af68-55d0056b6af2","savedPayload":{"position":{"x":8784.926036564942,"y":17618.648375054432},"targetPosition":{"x":8483.518627252892,"y":18355.339203919444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dece94e6-77de-4d21-9376-c2efc825b567","savedPayload":{"position":{"x":8483.518627252892,"y":18355.339203919444},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 6 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma6","project":"Superalgos","id":"f878b59a-0787-4c44-a341-02db47b15aad","savedPayload":{"position":{"x":9132.552940694495,"y":17814.365197435625},"targetPosition":{"x":8657.272623990102,"y":18453.451750811935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32025fb3-9ec4-4f50-b4c9-9a73100ce864","savedPayload":{"position":{"x":8657.272623990102,"y":18453.451750811935},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 12 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma12","project":"Superalgos","id":"d3c24df7-68df-4d50-92d6-9f722ee8816a","savedPayload":{"position":{"x":9419.93876311959,"y":18091.388097424337},"targetPosition":{"x":8801.073996701492,"y":18591.713509806603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8662f4a4-41a4-4992-a333-017cd8764cd1","savedPayload":{"position":{"x":8801.073996701492,"y":18591.713509806603},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 18 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma18","project":"Superalgos","id":"fc0e1a4a-8966-4340-83bc-2c43992486ed","savedPayload":{"position":{"x":9629.838412502442,"y":18430.98347628255},"targetPosition":{"x":8906.095218010581,"y":18761.566302437834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3260182a-83b5-4362-8962-84ec488b69cb","savedPayload":{"position":{"x":8906.095218010581,"y":18761.566302437834},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 18 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma18","project":"Superalgos","id":"53ce5612-9c75-4a89-98cd-7dd278f67df3","savedPayload":{"position":{"x":9749.031234081202,"y":18811.92717403645},"targetPosition":{"x":8965.74414486534,"y":18951.968376009703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"942b73d2-241e-43dd-b83b-0d3724f331a4","savedPayload":{"position":{"x":8965.74414486534,"y":18951.968376009703},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 24 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma24","project":"Superalgos","id":"9c2d5563-016b-40e7-a45f-973a874ee6e3","savedPayload":{"position":{"x":9769.65751240202,"y":19210.019141050027},"targetPosition":{"x":8976.043304231756,"y":19151.013819200183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c0b2d03c-3cec-4ca2-b344-cdd99cb28362","savedPayload":{"position":{"x":8976.043304231756,"y":19151.013819200183},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 24 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma24","project":"Superalgos","id":"3b3a0b5b-0290-47a3-8bef-d5b289e4f7b6","savedPayload":{"position":{"x":9690.502560245888,"y":19601.125844807462},"targetPosition":{"x":8936.447686429208,"y":19346.585086258423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4b33b779-8111-415c-a1e5-893ed5f49527","savedPayload":{"position":{"x":8936.447686429208,"y":19346.585086258423},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 30 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma30","project":"Superalgos","id":"876a382a-7632-4dcf-b0d5-b36d8df8b92c","savedPayload":{"position":{"x":9516.545347534058,"y":19960.263796462405},"targetPosition":{"x":8849.451720801175,"y":19526.173861829917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fef118ef-22cb-4ff5-b971-c90c2a01265a","savedPayload":{"position":{"x":8849.451720801175,"y":19526.173861829917},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 30 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma30","project":"Superalgos","id":"59c1198f-77ea-4780-b25b-e17b11bd0a0e","savedPayload":{"position":{"x":9258.717146711675,"y":20264.8613786487},"targetPosition":{"x":8720.523677897767,"y":19678.490261710245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e2f5657-06b0-4e46-aa7e-8676683ffb77","savedPayload":{"position":{"x":8720.523677897767,"y":19678.490261710245},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 60 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma60","project":"Superalgos","id":"deea8750-3324-4bdc-bc4d-7fc9db32ceca","savedPayload":{"position":{"x":8933.226305305336,"y":20495.775614949933},"targetPosition":{"x":8557.766595755355,"y":19793.959784416296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e7fb950-9b88-4aaf-95a1-982abf35b9f3","savedPayload":{"position":{"x":8557.766595755355,"y":19793.959784416296},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 60 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma60","project":"Superalgos","id":"4c4c6ec2-0ae2-4c37-bf9e-a2753f2b6ac5","savedPayload":{"position":{"x":8560.524275895837,"y":20638.500317257425},"targetPosition":{"x":8371.404578693528,"y":19865.334723898864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"173b07f4-37d0-4831-8d6b-1b989d9e3213","savedPayload":{"position":{"x":8371.404578693528,"y":19865.334723898864},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 120 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma120","project":"Superalgos","id":"4fae8019-4feb-4608-b26e-1b84bfa92eca","savedPayload":{"position":{"x":8164.42452703739,"y":20684.044565880133},"targetPosition":{"x":8173.345499876759,"y":19888.11520632519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2fb358ff-8b9f-4b95-95f8-8be509b5b3a1","savedPayload":{"position":{"x":8173.345499876759,"y":19888.11520632519},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 120 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma120","project":"Superalgos","id":"94a5dfc2-27fa-48e5-8d60-125c185ee02c","savedPayload":{"position":{"x":7666.102712598233,"y":21012.616762200018},"targetPosition":{"x":7975.648815546541,"y":19860.882326174436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"682e079f-319c-43dc-91a2-5732c3fb28c8","savedPayload":{"position":{"x":7975.648815546541,"y":19860.882326174436},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 180 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma180","project":"Superalgos","id":"c2b1772b-a983-4ecd-baec-c3ca0c346515","savedPayload":{"position":{"x":7399.678930186452,"y":20478.50323053214},"targetPosition":{"x":7790.933209543444,"y":19785.34523148415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5a2a1087-3910-4dd5-90d6-2370dc8949fa","savedPayload":{"position":{"x":7790.933209543444,"y":19785.34523148415},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 180 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma180","project":"Superalgos","id":"b7886b86-1f12-4645-b2fb-ecb4182dbec2","savedPayload":{"position":{"x":7079.425481541748,"y":20240.318919928817},"targetPosition":{"x":7630.793122121642,"y":19666.25201608441},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1b5a66be-de8e-40c3-b3f2-e193e5deaeed","savedPayload":{"position":{"x":7630.793122121642,"y":19666.25201608441},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 240 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma240","project":"Superalgos","id":"219f9e45-38cc-4c5f-a396-f7a0788f973e","savedPayload":{"position":{"x":6828.4936097259815,"y":19930.015461871422},"targetPosition":{"x":7505.321217059107,"y":19511.106348259316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"854a73e9-f8d2-4b85-a0dd-65284e175ca0","savedPayload":{"position":{"x":7505.321217059107,"y":19511.106348259316},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 240 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma240","project":"Superalgos","id":"57299592-e72a-4e7e-ac7a-e055ac925792","savedPayload":{"position":{"x":6662.590317786035,"y":19567.089978356453},"targetPosition":{"x":7422.351736425375,"y":19329.656971983844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"13eca50c-c1fb-4baa-8618-1f7eafde66c9","savedPayload":{"position":{"x":7422.351736425375,"y":19329.656971983844},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 300 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma300","project":"Superalgos","id":"fc7307b3-aeb1-49c0-bac9-ac2d27ad5d05","savedPayload":{"position":{"x":6580.714142626875,"y":19178.744185390788},"targetPosition":{"x":7375.700977904089,"y":19137.675134188095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"45ae2073-5312-48dc-b4ed-61326a2ce947","savedPayload":{"position":{"x":7375.700977904089,"y":19137.675134188095},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 300 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma300","project":"Superalgos","id":"9754f895-ef8d-4165-ae3b-efd97f52f9ce","savedPayload":{"position":{"x":6621.548014742748,"y":18776.824633809018},"targetPosition":{"x":7401.726616883854,"y":18934.54159194162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31514c9e-d4f7-4c54-94ca-4e04e5f1df5c","savedPayload":{"position":{"x":7401.726616883854,"y":18934.54159194162},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 12 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma12","project":"Superalgos","id":"cb472a55-eacc-4dec-b337-087a1116e39f","savedPayload":{"position":{"x":6763.415562186303,"y":18377.668347378556},"targetPosition":{"x":7480.034291241405,"y":18724.391823656602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48fe3ebc-6bbf-4a33-9068-2766eaf1599a","savedPayload":{"position":{"x":7480.034291241405,"y":18724.391823656602},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 600 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma600","project":"Superalgos","id":"a22c9eff-f7ff-4867-ba2e-c123b4036f99","savedPayload":{"position":{"x":6967.097034973176,"y":18063.759453803577},"targetPosition":{"x":7574.619313071224,"y":18577.895377794983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3ecee44a-2a84-41ac-b579-f6f48acc590a","savedPayload":{"position":{"x":7574.619313071224,"y":18577.895377794983},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 600 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma600","project":"Superalgos","id":"2197c8c8-f750-4adf-a521-b1e4b347663c","savedPayload":{"position":{"x":7253.04979384744,"y":17801.57780348806},"targetPosition":{"x":7714.048250134521,"y":18450.42300048595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9bd8a9e7-09cf-4989-a9fa-c2f73d361134","savedPayload":{"position":{"x":7714.048250134521,"y":18450.42300048595},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 1200 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma1200","project":"Superalgos","id":"17399e4a-5716-4e7b-9348-995fef5766eb","savedPayload":{"position":{"x":7613.7598402051335,"y":17605.212765219327},"targetPosition":{"x":7898.140655412619,"y":18348.45158147753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0481ec1e-ae49-4c99-a5ad-16c427db6e45","savedPayload":{"position":{"x":7898.140655412619,"y":18348.45158147753},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 1200 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma1200","project":"Superalgos","id":"5df49dd0-4b42-4be0-8493-2d762fa6b9c2","savedPayload":{"position":{"x":8000.938798678919,"y":17510.39495960453},"targetPosition":{"x":8091.804509364083,"y":18301.12200613795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eacd5f37-bdf2-4756-b7db-46db919b08a7","savedPayload":{"position":{"x":8091.804509364083,"y":18301.12200613795},"targetPosition":{"x":8182.249500362999,"y":19092.027131705683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ddf91804-9a1f-44db-aea2-11db8bcd6aa1","savedPayload":{"position":{"x":8182.136089724139,"y":19092.072704280137},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 6","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"34040727-f963-4459-9d11-6dfe71da067f","savedPayload":{"position":{"x":7870.470892110574,"y":19291.251271101813},"targetPosition":{"x":7918.532749729497,"y":19029.778214010472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ec04ffcd-829f-41db-9aa0-c3807ff916ef","savedPayload":{"position":{"x":7918.532749729497,"y":19029.778214010472},"targetPosition":{"x":8006.529446421318,"y":18505.21214870891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 6 End","project":"Superalgos","id":"143eac37-51eb-4384-9455-94a62c781a28","savedPayload":{"position":{"x":7813.369318167974,"y":19002.31029299623},"targetPosition":{"x":8006.529446421318,"y":18505.21214870891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 6 End","id":"32025fb3-9ec4-4f50-b4c9-9a73100ce864"}}},{"type":"Polygon Vertex","name":"SMA 6 Begin","project":"Superalgos","id":"ffabc963-65ea-44af-9d15-d8bf6896a781","savedPayload":{"position":{"x":7706.852273704935,"y":18945.107174743192},"targetPosition":{"x":8006.529446421318,"y":18505.21214870891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 6 Begin","id":"dece94e6-77de-4d21-9376-c2efc825b567"}}}],"id":"12470549-c8b6-453f-a87a-396921a0a871","savedPayload":{"position":{"x":8006.529446421318,"y":18505.21214870891},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 12","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"065e548b-05c8-4419-9bd1-0ef305c8b868","savedPayload":{"position":{"x":7454.056406058586,"y":19109.098886581032},"targetPosition":{"x":7563.389156359481,"y":18866.717329380695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bb849209-1786-43ce-b2cc-cb1d43252144","savedPayload":{"position":{"x":7563.389156359481,"y":18866.717329380695},"targetPosition":{"x":7781.597622341327,"y":18382.52591882279},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 12 Begin","project":"Superalgos","id":"9af3283c-bb60-4843-beae-89f1d065c8ba","savedPayload":{"position":{"x":7472.91911226169,"y":18814.73407653735},"targetPosition":{"x":7781.597622341327,"y":18382.52591882279},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 12 Begin","id":"48fe3ebc-6bbf-4a33-9068-2766eaf1599a"}}},{"type":"Polygon Vertex","name":"SMA 12 End","project":"Superalgos","id":"fee1b2e2-fdd0-4a53-b277-b7549e08aaf8","savedPayload":{"position":{"x":7394.413549193181,"y":18746.035461837506},"targetPosition":{"x":7781.597622341327,"y":18382.52591882279},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 12 End","id":"8662f4a4-41a4-4992-a333-017cd8764cd1"}}}],"id":"986a8bf8-3b7a-4421-80bd-940fa3bfe496","savedPayload":{"position":{"x":7781.597622341327,"y":18382.52591882279},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 18","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"4ee42ccb-7981-4865-990b-09a84732f649","savedPayload":{"position":{"x":7100.6219317642135,"y":18836.55913096034},"targetPosition":{"x":7264.821157355327,"y":18627.4261059301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"557e774e-833c-4373-a833-24a2b8e1c98b","savedPayload":{"position":{"x":7264.821157355327,"y":18627.4261059301},"targetPosition":{"x":7592.608500143437,"y":18209.571306853595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 18 End","project":"Superalgos","id":"b73a1590-a667-4c62-b1b0-319bc1c35264","savedPayload":{"position":{"x":7189.422605647909,"y":18555.30018448232},"targetPosition":{"x":7592.608500143437,"y":18209.571306853595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 18 End","id":"942b73d2-241e-43dd-b83b-0d3724f331a4"}}},{"type":"Polygon Vertex","name":"SMA 18 Begin","project":"Superalgos","id":"370a951b-b7cb-47fe-8e09-799f7da546a6","savedPayload":{"position":{"x":7129.612854958716,"y":18469.772770152806},"targetPosition":{"x":7592.608500143437,"y":18209.571306853595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 18 Begin","id":"3260182a-83b5-4362-8962-84ec488b69cb"}}}],"id":"9f9eeee3-ebd5-4f65-9079-cd0ac3c373da","savedPayload":{"position":{"x":7592.608500143437,"y":18209.571306853595},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 24","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b30aa3da-65ea-4e03-88d0-d452114f94bc","savedPayload":{"position":{"x":6036.576727749292,"y":18971.08079584052},"targetPosition":{"x":6350.456467372842,"y":18725.700014962727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"42bded2a-28e5-457d-b8de-a71218db1630","savedPayload":{"position":{"x":6350.456467372842,"y":18725.700014962727},"targetPosition":{"x":6977.4336185639,"y":18235.356178207916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 24 Begin","project":"Superalgos","id":"a7a1b3d2-2c0a-47d0-8177-991c5b860ed4","savedPayload":{"position":{"x":6266.742281746996,"y":18593.80693715404},"targetPosition":{"x":6977.4336185639,"y":18235.356178207916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 24 Begin","id":"c0b2d03c-3cec-4ca2-b344-cdd99cb28362"}}},{"type":"Polygon Vertex","name":"SMA 24 End","project":"Superalgos","id":"8aac2b0b-8089-4adc-93d2-1544e0113105","savedPayload":{"position":{"x":6210.4019857731,"y":18448.134843817606},"targetPosition":{"x":6977.4336185639,"y":18235.356178207916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 24 End","id":"4b33b779-8111-415c-a1e5-893ed5f49527"}}}],"id":"5cde1b9e-eed8-4e90-9f31-9d0f38d4aef9","savedPayload":{"position":{"x":6977.4336185639,"y":18235.356178207916},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 30","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"682c040c-2367-4838-92d2-5c14e6d65e0a","savedPayload":{"position":{"x":6394.756154402687,"y":18190.9440998352},"targetPosition":{"x":6879.279696710168,"y":17973.59275336184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"e80caa85-ac79-4b2b-ab2d-04f54c46b24b","savedPayload":{"position":{"x":6879.279696710168,"y":17973.59275336184},"targetPosition":{"x":7363.750715336988,"y":17755.937798368843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 30 End","project":"Superalgos","id":"985225d1-7a9d-45f7-93d2-59fe91c4450c","savedPayload":{"position":{"x":6846.014400939508,"y":17874.63726644333},"targetPosition":{"x":7363.750715336988,"y":17755.937798368843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 30 End","id":"8e2f5657-06b0-4e46-aa7e-8676683ffb77"}}},{"type":"Polygon Vertex","name":"SMA 30 Begin","project":"Superalgos","id":"0e1a912e-34be-4976-8d43-141b0f89a8ee","savedPayload":{"position":{"x":6832.80483911165,"y":17771.158385198014},"targetPosition":{"x":7363.750715336988,"y":17755.937798368843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 30 Begin","id":"fef118ef-22cb-4ff5-b971-c90c2a01265a"}}}],"id":"ba9cdf50-c1e0-42c5-a81c-dbc068c3b10e","savedPayload":{"position":{"x":7363.750715336988,"y":17755.937798368843},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 60","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"85247bae-4a81-4247-affa-a8889f32987c","savedPayload":{"position":{"x":6291.884593400249,"y":17691.79521514607},"targetPosition":{"x":6814.403940968976,"y":17596.713331077677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9a153786-a0a0-4686-b83d-f55fb7513c56","savedPayload":{"position":{"x":6814.403940968976,"y":17596.713331077677},"targetPosition":{"x":7336.9432512784515,"y":17501.404408525894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 60 Begin","project":"Superalgos","id":"389d9bf7-3844-4b65-9607-17dec104368f","savedPayload":{"position":{"x":6805.797788201824,"y":17492.923240209147},"targetPosition":{"x":7336.9432512784515,"y":17501.404408525894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 60 Begin","id":"8e7fb950-9b88-4aaf-95a1-982abf35b9f3"}}},{"type":"Polygon Vertex","name":"SMA 60 End","project":"Superalgos","id":"0386e3c3-f9a3-442c-b2e4-c9d069621958","savedPayload":{"position":{"x":6817.741014691757,"y":17389.287051376697},"targetPosition":{"x":7336.9432512784515,"y":17501.404408525894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 60 End","id":"173b07f4-37d0-4831-8d6b-1b989d9e3213"}}}],"id":"8170049e-056a-4818-8f0a-1a23f9c51bff","savedPayload":{"position":{"x":7336.9432512784515,"y":17501.404408525894},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 120","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"613b4c9b-b002-4c65-87b7-8b9d41eda4df","savedPayload":{"position":{"x":6311.573987266369,"y":17182.819825369435},"targetPosition":{"x":6841.693724755289,"y":17215.372110264976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"27a6e346-8da3-4900-83c4-41680d2168f4","savedPayload":{"position":{"x":6841.693724755289,"y":17215.372110264976},"targetPosition":{"x":7371.890590833289,"y":17247.721169317734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 120 Begin","project":"Superalgos","id":"956a6867-d00a-4888-9ffe-cbfabcfbe4fa","savedPayload":{"position":{"x":6858.226812042696,"y":17112.34569816824},"targetPosition":{"x":7371.890590833289,"y":17247.721169317734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 120 Begin","id":"2fb358ff-8b9f-4b95-95f8-8be509b5b3a1"}}},{"type":"Polygon Vertex","name":"SMA 120 End","project":"Superalgos","id":"040f4fe5-147d-4ba9-9a2d-fa134ca5d178","savedPayload":{"position":{"x":6894.628384401622,"y":17014.577524492615},"targetPosition":{"x":7371.890590833289,"y":17247.721169317734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 120 End","id":"682e079f-319c-43dc-91a2-5732c3fb28c8"}}}],"id":"7da9bd30-a7f8-410b-93a5-6b76ac57708b","savedPayload":{"position":{"x":7371.890590833289,"y":17247.721169317734},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 240","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"d2ac585e-594d-4031-b17d-2274efc677ec","savedPayload":{"position":{"x":6452.6185786093265,"y":16692.971949921677},"targetPosition":{"x":6959.519549934161,"y":16851.46685004537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"4e402467-2d78-4d95-ba03-3910f5120122","savedPayload":{"position":{"x":6959.519549934161,"y":16851.46685004537},"targetPosition":{"x":7466.540438602882,"y":17009.790925231075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 180 Begin","project":"Superalgos","id":"efe56d7d-f6e6-4944-aa32-26d3c4ed055b","savedPayload":{"position":{"x":7000.229744713506,"y":16755.390951667312},"targetPosition":{"x":7466.540438602882,"y":17009.790925231075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 180 Begin","id":"5a2a1087-3910-4dd5-90d6-2370dc8949fa"}}},{"type":"Polygon Vertex","name":"SMA 180 End","project":"Superalgos","id":"ec3a6f4b-adf2-4be1-ab28-313bbffb7491","savedPayload":{"position":{"x":7058.973991744071,"y":16669.175152744294},"targetPosition":{"x":7466.540438602882,"y":17009.790925231075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 180 End","id":"1b5a66be-de8e-40c3-b3f2-e193e5deaeed"}}}],"id":"adf40814-2b9a-4ee8-a154-364bfca32f7a","savedPayload":{"position":{"x":7466.540438602882,"y":17009.790925231075},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 300","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"e79c6ed7-e52f-4191-a423-b14965211a19","savedPayload":{"position":{"x":6706.822462771914,"y":16251.11267843796},"targetPosition":{"x":7161.033067160406,"y":16526.33395375489},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"e5cd42c0-f52d-4608-91d5-966cc7bf39b3","savedPayload":{"position":{"x":7161.033067160406,"y":16526.33395375489},"targetPosition":{"x":7615.392782443618,"y":16801.425045167678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 240 Begin","project":"Superalgos","id":"f29f45ac-86bb-4490-b8b1-9a50dc736782","savedPayload":{"position":{"x":7223.555199739098,"y":16442.79264111214},"targetPosition":{"x":7615.392782443618,"y":16801.425045167678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 240 Begin","id":"854a73e9-f8d2-4b85-a0dd-65284e175ca0"}}},{"type":"Polygon Vertex","name":"SMA 240 End","project":"Superalgos","id":"eb330333-6b0f-4fad-97a7-a34e93cc3dee","savedPayload":{"position":{"x":7301.2298229754415,"y":16373.140618013334},"targetPosition":{"x":7615.392782443618,"y":16801.425045167678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 240 End","id":"13eca50c-c1fb-4baa-8618-1f7eafde66c9"}}}],"id":"60c00cdc-dbf4-460b-b021-7339dd7bbec8","savedPayload":{"position":{"x":7615.392782443618,"y":16801.425045167678},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 600","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"182273b1-1d73-4dc7-93dc-b2a4644b18f1","savedPayload":{"position":{"x":7059.441523908423,"y":15882.919302080209},"targetPosition":{"x":7434.550303467015,"y":16258.862603424812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"3342f900-2346-4377-b6b0-34566787d6d9","savedPayload":{"position":{"x":7434.550303467015,"y":16258.862603424812},"targetPosition":{"x":7809.8174785531955,"y":16634.72325032074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 600 Begin","project":"Superalgos","id":"5b6c238c-a7cb-4002-85e5-5e84cd6ffdf8","savedPayload":{"position":{"x":7515.2550007707905,"y":16192.71208534432},"targetPosition":{"x":7809.8174785531955,"y":16634.72325032074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 600 Begin","id":"3ecee44a-2a84-41ac-b579-f6f48acc590a"}}},{"type":"Polygon Vertex","name":"SMA 600 End","project":"Superalgos","id":"b60e6d28-cb70-49c5-9e06-c67cfe81b1f1","savedPayload":{"position":{"x":7607.352830596294,"y":16143.673205103958},"targetPosition":{"x":7809.8174785531955,"y":16634.72325032074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 600 End","id":"9bd8a9e7-09cf-4989-a9fa-c2f73d361134"}}}],"id":"93c1746c-2470-4032-84e1-c16a2d4e3921","savedPayload":{"position":{"x":7809.8174785531955,"y":16634.72325032074},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 1200","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"f0b2a565-d33f-42d4-85ed-d61766b82af7","savedPayload":{"position":{"x":7490.086731137799,"y":15609.794099868745},"targetPosition":{"x":7764.271115127343,"y":16064.593080996601},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"e108f855-0252-4113-8bd3-2cf2581abc47","savedPayload":{"position":{"x":7764.271115127343,"y":16064.593080996601},"targetPosition":{"x":8038.576997876298,"y":16519.364870327743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 1200 Begin","project":"Superalgos","id":"f15e631f-a4ef-4493-bb68-8c3a082ba0aa","savedPayload":{"position":{"x":7858.488842099869,"y":16019.680165354763},"targetPosition":{"x":8038.576997876298,"y":16519.364870327743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 1200 Begin","id":"0481ec1e-ae49-4c99-a5ad-16c427db6e45"}}},{"type":"Polygon Vertex","name":"SMA 1200 End","project":"Superalgos","id":"cf097102-9c66-4f90-95cd-1c1c9efc113b","savedPayload":{"position":{"x":7959.726359086046,"y":15994.096564582214},"targetPosition":{"x":8038.576997876298,"y":16519.364870327743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 1200 End","id":"eacd5f37-bdf2-4756-b7db-46db919b08a7"}}}],"id":"790efcb9-f3af-4e01-86f2-adbfcda6a356","savedPayload":{"position":{"x":8038.576997876298,"y":16519.364870327743},"targetPosition":{"x":8398.770467753533,"y":17518.37270415975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"93675e57-6b0f-4fe5-8c8a-a4c02f794650","savedPayload":{"position":{"x":8238.66951813001,"y":18267.81656837503},"targetPosition":{"x":9157.701562317623,"y":17736.303306547787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"SMA Base 6","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"SMA 6","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma6","project":"Superalgos","id":"bf5de8a3-8c0b-41e8-8d21-bef5a721133f","savedPayload":{"position":{"x":9128.107651840997,"y":16891.90847946323},"targetPosition":{"x":9226.396623863315,"y":16644.907232081652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"995dd126-9cef-4b6e-960f-6828cfc41777","savedPayload":{"position":{"x":9226.396623863315,"y":16644.907232081652},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 12","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma12","project":"Superalgos","id":"9d4756de-3019-4ab6-a77d-7a1452ce1813","savedPayload":{"position":{"x":8902.147562635779,"y":16730.41172421395},"targetPosition":{"x":9104.104806538533,"y":16557.379237332785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"414bd6ad-d6c6-4100-867e-232c6e649de2","savedPayload":{"position":{"x":9104.104806538533,"y":16557.379237332785},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 18","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma18","project":"Superalgos","id":"8c7a57b7-0d00-4239-b7ce-018b8da0fce7","savedPayload":{"position":{"x":8777.345517165639,"y":16482.518418348063},"targetPosition":{"x":9036.702994842137,"y":16423.179568146043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2b73a8b5-c7a5-47b2-acad-87fa5aec85be","savedPayload":{"position":{"x":9036.702994842137,"y":16423.179568146043},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 24","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma24","project":"Superalgos","id":"3880e650-f608-4c97-8b5a-6956c8c2fba7","savedPayload":{"position":{"x":8782.037836613224,"y":16205.591510859282},"targetPosition":{"x":9039.329951372438,"y":16273.387347850246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7655b5d6-708e-4e05-9499-2058d8511689","savedPayload":{"position":{"x":9039.329951372438,"y":16273.387347850246},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 30","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma30","project":"Superalgos","id":"ae5edcfd-b4be-4c3e-bb28-333fade4b88d","savedPayload":{"position":{"x":8915.021822425424,"y":15962.218582661364},"targetPosition":{"x":9111.276330775498,"y":16141.820294973662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad60eba1-2b62-4b1f-bed9-de38285f4acc","savedPayload":{"position":{"x":9111.276330775498,"y":16141.820294973662},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 60","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma60","project":"Superalgos","id":"cd97e51b-fa6a-4d6e-b7dd-43c9299bde4d","savedPayload":{"position":{"x":9145.76697142252,"y":15808.471820899347},"targetPosition":{"x":9236.055793553933,"y":16058.777694547916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5baddfba-9384-417f-954a-37abf160567e","savedPayload":{"position":{"x":9236.055793553933,"y":16058.777694547916},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 120","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma120","project":"Superalgos","id":"189b3ffd-8d2b-4124-af4c-52a9756c3409","savedPayload":{"position":{"x":9421.038960232203,"y":15779.458613080737},"targetPosition":{"x":9384.860135408286,"y":16043.08938415745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"980faff9-33a9-4c63-b64c-3bdbeeeb1b8a","savedPayload":{"position":{"x":9384.860135408286,"y":16043.08938415745},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 180","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma180","project":"Superalgos","id":"7dac036e-a376-493f-8e5a-d8a7e211f262","savedPayload":{"position":{"x":9678.685252236359,"y":15881.881350178082},"targetPosition":{"x":9524.20557378358,"y":16098.336315001161},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d22d8f06-1510-43c7-a233-7a5dc67f809b","savedPayload":{"position":{"x":9524.20557378358,"y":16098.336315001161},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 240","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma240","project":"Superalgos","id":"2b86e2e4-bf2d-4b68-a54e-a781e56458bf","savedPayload":{"position":{"x":9859.428005354319,"y":16092.216053287066},"targetPosition":{"x":9621.898048440777,"y":16212.10827312235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"696305ab-09c2-41af-bfb3-85ce4fb5e705","savedPayload":{"position":{"x":9621.898048440777,"y":16212.10827312235},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 300 ","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma300","project":"Superalgos","id":"03bc78eb-d57f-41fc-a8ba-3592e222d5cc","savedPayload":{"position":{"x":9921.60647505218,"y":16362.129439114626},"targetPosition":{"x":9655.721707405268,"y":16358.077111049432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f34223f9-87e3-49fe-8acf-77080dffa25f","savedPayload":{"position":{"x":9655.721707405268,"y":16358.077111049432},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 600 ","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma600","project":"Superalgos","id":"c6511ef3-8c3a-445c-9d90-1bb91a1763fb","savedPayload":{"position":{"x":9851.010086436028,"y":16630.556181734548},"targetPosition":{"x":9617.613799751543,"y":16503.366123196207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ff4236e0-4c9b-4b98-9dd3-b3c152bb12e2","savedPayload":{"position":{"x":9617.613799751543,"y":16503.366123196207},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 1200 ","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma1200","project":"Superalgos","id":"931713d5-2d25-428f-95bc-0a21e01892f7","savedPayload":{"position":{"x":9663.48901968612,"y":16835.48235985025},"targetPosition":{"x":9516.129053857883,"y":16614.35396314737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e3345124-6aed-4164-ab86-041fd39608b0","savedPayload":{"position":{"x":9516.129053857883,"y":16614.35396314737},"targetPosition":{"x":9342.280794431143,"y":16353.221111652263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"40313dff-6c5d-4650-bd51-8767bba6f6ad","savedPayload":{"position":{"x":8627.980697466191,"y":16818.405408218063},"targetPosition":{"x":9157.701562317623,"y":17736.303306547787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6ace920a-3a4b-4d28-8f04-4c2ecd3dfeb8","savedPayload":{"position":{"x":9752.106035388051,"y":17917.9854210064},"targetPosition":{"x":10336.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"SMA Base 5","config":"{\n\t\"codeName\": \"SMA-Base7\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA 5 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma5","project":"Superalgos","id":"37d1cd48-3a3f-4477-a125-76dcec51195b","savedPayload":{"position":{"x":11254.604515332216,"y":12982.317767868859},"targetPosition":{"x":11389.353051419119,"y":14561.406021107547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9eca5bc8-cdb2-46fb-9a26-1c2da03b8818","savedPayload":{"position":{"x":11389.353051419119,"y":14561.406021107547},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 5 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma5","project":"Superalgos","id":"3537c835-0158-465b-81d1-5440a40a649b","savedPayload":{"position":{"x":12047.763435013992,"y":13014.60489623446},"targetPosition":{"x":11785.979598511269,"y":14577.549312159099},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"db00298d-2997-4640-93fe-17125aeb7f0e","savedPayload":{"position":{"x":11785.979598511269,"y":14577.549312159099},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 10 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma10","project":"Superalgos","id":"3f1d398f-6d0a-4713-8fbf-29cbb133be3e","savedPayload":{"position":{"x":12808.651634463917,"y":13243.478535081294},"targetPosition":{"x":12166.411392189788,"y":14691.976627701515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b2e038ee-355d-4862-a454-514f7bcf31cf","savedPayload":{"position":{"x":12166.411392189788,"y":14691.976627701515},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 15 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma15","project":"Superalgos","id":"cadaa709-8956-4c7a-9215-76ac92a53517","savedPayload":{"position":{"x":13488.77888319562,"y":13654.04051145998},"targetPosition":{"x":12506.484997140058,"y":14897.23475176062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"02f80e02-080a-4950-9ffc-2f3b5770b404","savedPayload":{"position":{"x":12506.484997140058,"y":14897.23475176062},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 15 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma15","project":"Superalgos","id":"e4212208-3b31-47c0-aebd-966d4a77c0f9","savedPayload":{"position":{"x":14045.502482610049,"y":14220.790687745273},"targetPosition":{"x":12784.83308761624,"y":15180.611832248558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32c7c4d3-a210-4d4d-8d10-bb23f91edcda","savedPayload":{"position":{"x":12784.83308761624,"y":15180.611832248558},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 20 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma20","project":"Superalgos","id":"73c6c2a6-b4b7-4d2a-be7e-5810261e68c7","savedPayload":{"position":{"x":14443.775723746747,"y":14908.136675448059},"targetPosition":{"x":12983.964978504697,"y":15524.301057793791},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6b07cc40-e7da-48bc-a49b-cac5a0615c34","savedPayload":{"position":{"x":12983.964978504697,"y":15524.301057793791},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 20 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma20","project":"Superalgos","id":"c8dd3770-668a-47d7-aad8-db412890bc28","savedPayload":{"position":{"x":14659.016452476253,"y":15672.957647872234},"targetPosition":{"x":13091.5931751961,"y":15906.711249996708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2f2041d-b896-44d7-b251-85eb1cd7fadf","savedPayload":{"position":{"x":13091.5931751961,"y":15906.711249996708},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 25 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma25","project":"Superalgos","id":"d7265ad0-64e1-4fb7-8cd0-bdbf329b3d6d","savedPayload":{"position":{"x":14676.9592002972,"y":16466.49130586259},"targetPosition":{"x":13100.565201798192,"y":16303.465925203338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78b96701-c691-41fa-91d2-3bdb00e2e0fa","savedPayload":{"position":{"x":13100.565201798192,"y":16303.465925203338},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 25 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma25","project":"Superalgos","id":"5cefb3f2-2429-478b-80a8-8f9e07e12c00","savedPayload":{"position":{"x":14496.299730170018,"y":17240.21531597365},"targetPosition":{"x":13010.25421430045,"y":16690.293203265504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c9293d92-6255-4c96-9bf9-f4c6dcf419a1","savedPayload":{"position":{"x":13010.25421430045,"y":16690.293203265504},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 50 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma50","project":"Superalgos","id":"cfa001a1-ac90-4713-b542-4fab32f377e0","savedPayload":{"position":{"x":14129.41701866566,"y":17944.705051785877},"targetPosition":{"x":12826.783868308092,"y":17042.5437368819},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1d352202-ba2e-41a7-9d4b-c4c97d2e391d","savedPayload":{"position":{"x":12826.783868308092,"y":17042.5437368819},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 50 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma50","project":"Superalgos","id":"1655e27e-3738-4b5d-8961-105e11b5070c","savedPayload":{"position":{"x":13599.040673232612,"y":18535.708989593262},"targetPosition":{"x":12561.563519671701,"y":17338.04502466745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4e34e6e6-d370-4127-b4fe-0c9fd591e730","savedPayload":{"position":{"x":12561.563519671701,"y":17338.04502466745},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 100 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma100","project":"Superalgos","id":"44d9a566-3392-4f8f-ae69-f16de47bdd50","savedPayload":{"position":{"x":12927.919532684715,"y":18993.984828638346},"targetPosition":{"x":12231.370007911992,"y":17558.09193128513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"651f424a-51be-4b25-a895-d50f75329384","savedPayload":{"position":{"x":12231.370007911992,"y":17558.09193128513},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 100 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma100","project":"Superalgos","id":"05d2a007-3c1e-4e61-8cef-0aa1bdb3c0f5","savedPayload":{"position":{"x":12123.685996169126,"y":19197.984941638457},"targetPosition":{"x":11791.29613628973,"y":17639.85387920112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aada5c3d-5ff5-4afd-8dd1-298ce8fce853","savedPayload":{"position":{"x":11791.29613628973,"y":17639.85387920112},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 150 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma150","project":"Superalgos","id":"f5f1a287-14c5-4b05-9032-85623b3e948f","savedPayload":{"position":{"x":11396.104758292819,"y":19307.760280390336},"targetPosition":{"x":11460.266289114472,"y":17724.06127942761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"55d6b376-dd20-4044-b6c2-51acd03bee71","savedPayload":{"position":{"x":11460.266289114472,"y":17724.06127942761},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 150 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma150","project":"Superalgos","id":"e8805c13-2905-47dd-ad3d-eea5d645fd2f","savedPayload":{"position":{"x":10612.779440288185,"y":19175.6925612597},"targetPosition":{"x":11068.433530643284,"y":17657.973394573783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"812b92a9-2ba5-44e2-b255-976f8354e841","savedPayload":{"position":{"x":11068.433530643284,"y":17657.973394573783},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 200 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma200","project":"Superalgos","id":"13b0144f-8413-43d8-97f9-61a50712a17b","savedPayload":{"position":{"x":9885.847810890536,"y":18852.776771749803},"targetPosition":{"x":10704.879070888015,"y":17495.89499034751},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"652e1cae-11c0-489c-a820-03296a362c77","savedPayload":{"position":{"x":10704.879070888015,"y":17495.89499034751},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 200 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma200","project":"Superalgos","id":"51211e13-8719-4d03-afb1-a7bb2f656f68","savedPayload":{"position":{"x":9263.21139797568,"y":18360.687122024396},"targetPosition":{"x":10393.670698169535,"y":17250.31267482924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4e4458f4-c6ca-4235-8734-8e833d3722f2","savedPayload":{"position":{"x":10393.670698169535,"y":17250.31267482924},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 250 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma250","project":"Superalgos","id":"a37e3e5a-dc59-4373-97c3-98de0c09fbb7","savedPayload":{"position":{"x":8781.86460313504,"y":17728.6204374918},"targetPosition":{"x":10153.152307255426,"y":16934.433162424168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"52aefae1-6ceb-47c4-a82d-ac55a7b91b25","savedPayload":{"position":{"x":10153.152307255426,"y":16934.433162424168},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 250 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma250","project":"Superalgos","id":"aae7721e-b9d3-4629-94be-eecd49675c8f","savedPayload":{"position":{"x":8473.135286263878,"y":16997.040674489035},"targetPosition":{"x":9998.680805086446,"y":16568.57388592151},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8ddf18b2-93b4-4422-9e64-f9fc22f5de52","savedPayload":{"position":{"x":9998.680805086446,"y":16568.57388592151},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 500 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"65cfa112-3dc1-4bbd-9f90-13076e630272","savedPayload":{"position":{"x":8337.557594955164,"y":16208.229768479781},"targetPosition":{"x":9939.689257141508,"y":16175.7418815606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d1ec756e-a71c-433b-ad10-ef8234617768","savedPayload":{"position":{"x":9939.689257141508,"y":16175.7418815606},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 500 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"577145f8-de78-4ded-a41e-86f9b54ec8a2","savedPayload":{"position":{"x":8437.59860890629,"y":15421.508675532863},"targetPosition":{"x":9980.883285563057,"y":15780.9938652311},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b2fbef6-9a30-4ed6-a98e-5ccceb77aea3","savedPayload":{"position":{"x":9980.883285563057,"y":15780.9938652311},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 10 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma10","project":"Superalgos","id":"520c2e51-b036-4267-928d-53f69d83747b","savedPayload":{"position":{"x":8716.962683878144,"y":14677.453507298553},"targetPosition":{"x":10119.012817569837,"y":15408.518720461996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7fe319a5-1a75-4f65-97da-20345cc502c2","savedPayload":{"position":{"x":10119.012817569837,"y":15408.518720461996},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 1000 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"3514870d-ad16-4bee-b5fa-a68739f3b332","savedPayload":{"position":{"x":9156.353112681754,"y":14029.632265106286},"targetPosition":{"x":10345.230756193752,"y":15081.993696686382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"db6c9de6-aeb9-46ff-a46d-893ac56a32a2","savedPayload":{"position":{"x":10345.230756193752,"y":15081.993696686382},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 1000 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"9cd8a206-16f2-446d-b63e-43faa32d7abd","savedPayload":{"position":{"x":9766.77341168357,"y":13503.597715903159},"targetPosition":{"x":10645.567417076196,"y":14821.953382914717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e518b92f-f678-4868-ae0c-a0bd31f480eb","savedPayload":{"position":{"x":10645.567417076196,"y":14821.953382914717},"targetPosition":{"x":11524.167824900098,"y":16140.496033265808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f32ec0d3-ec1a-4f9d-b0dc-a394dac962ba","savedPayload":{"position":{"x":11524.167824900098,"y":16140.496033265808},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 5","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"a7e019b1-8c26-45dc-a717-de61a361f789","savedPayload":{"position":{"x":5898.624780708225,"y":17359.02357236948},"targetPosition":{"x":6241.613792926084,"y":17156.80286274157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"7da673e1-96be-42bb-ac8e-ba94da835b8d","savedPayload":{"position":{"x":6241.613792926084,"y":17156.80286274157},"targetPosition":{"x":6926.246973763242,"y":16752.733965991414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 5 End","project":"Superalgos","id":"e755e4bb-ff8f-4591-b0ae-878d71639fd5","savedPayload":{"position":{"x":6175.90087717264,"y":17015.204169514953},"targetPosition":{"x":6926.246973763242,"y":16752.733965991414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 5 End","id":"db00298d-2997-4640-93fe-17125aeb7f0e"}}},{"type":"Polygon Vertex","name":"SMA 5 Begin","project":"Superalgos","id":"c452cccc-8d2b-4630-9219-fb5e4d89fb1e","savedPayload":{"position":{"x":6138.970248296388,"y":16863.612141027872},"targetPosition":{"x":6926.246973763242,"y":16752.733965991414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 5 Begin","id":"9eca5bc8-cdb2-46fb-9a26-1c2da03b8818"}}}],"id":"9de00c59-ad47-414f-93f4-976d1a798e33","savedPayload":{"position":{"x":6926.246973763242,"y":16752.733965991414},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 10","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"d99069f1-59c4-4dd2-a77f-15de8869aeaf","savedPayload":{"position":{"x":5710.227167440338,"y":16767.372193321728},"targetPosition":{"x":6089.63824125945,"y":16646.704547237205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6867a6be-eb3c-4c1f-a83e-f630c5a40ba3","savedPayload":{"position":{"x":6089.63824125945,"y":16646.704547237205},"targetPosition":{"x":6846.937387081867,"y":16405.3536695277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 10 Begin","project":"Superalgos","id":"43ddbce7-424a-4718-9012-bd9327a7b6e0","savedPayload":{"position":{"x":6057.037243327497,"y":16494.118567739155},"targetPosition":{"x":6846.937387081867,"y":16405.3536695277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 10 Begin","id":"7fe319a5-1a75-4f65-97da-20345cc502c2"}}},{"type":"Polygon Vertex","name":"SMA 10 End","project":"Superalgos","id":"f48c16c1-ca4a-4a64-ae78-78cbc754888e","savedPayload":{"position":{"x":6054.638403330609,"y":16338.587779508107},"targetPosition":{"x":6846.937387081867,"y":16405.3536695277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 10 End","id":"b2e038ee-355d-4862-a454-514f7bcf31cf"}}}],"id":"0c387d26-20c4-4a66-aac4-599d98b8300e","savedPayload":{"position":{"x":6846.937387081867,"y":16405.3536695277},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 15","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"e52e6176-fecb-48d3-ad99-7b66e11b02de","savedPayload":{"position":{"x":5658.035226923817,"y":16149.762332203682},"targetPosition":{"x":6054.9061800589225,"y":16116.589502699215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"3850ed1d-dc3b-47b2-bee7-7aa961acfaa2","savedPayload":{"position":{"x":6054.9061800589225,"y":16116.589502699215},"targetPosition":{"x":6846.98244272844,"y":16049.715059408161},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 15 End","project":"Superalgos","id":"3f50ad9c-b951-420f-92cb-564d050f144e","savedPayload":{"position":{"x":6057.006693773823,"y":15960.773992185466},"targetPosition":{"x":6846.98244272844,"y":16049.715059408161},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 15 End","id":"32c7c4d3-a210-4d4d-8d10-bb23f91edcda"}}},{"type":"Polygon Vertex","name":"SMA 15 Begin","project":"Superalgos","id":"5cce1576-091c-49fa-a98f-0ebcf033c933","savedPayload":{"position":{"x":6089.630733135986,"y":15808.160619758462},"targetPosition":{"x":6846.98244272844,"y":16049.715059408161},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 15 Begin","id":"02f80e02-080a-4950-9ffc-2f3b5770b404"}}}],"id":"9f49d18a-dfd7-4d55-8a1e-c186dbfc043e","savedPayload":{"position":{"x":6846.98244272844,"y":16049.715059408161},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"e9126aac-9402-4bfc-9f89-b6996780d7ba","savedPayload":{"position":{"x":5744.550901802635,"y":15535.874271274544},"targetPosition":{"x":6138.664478101753,"y":15591.533975452412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9ec36dc5-91e0-4861-8748-9f9b7d92bacc","savedPayload":{"position":{"x":6138.664478101753,"y":15591.533975452412},"targetPosition":{"x":6926.010414578679,"y":15702.474184147826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 20 Begin","project":"Superalgos","id":"6a595b60-ea82-4ef7-ad14-f698d4885e0d","savedPayload":{"position":{"x":6175.56173822725,"y":15439.840093525461},"targetPosition":{"x":6926.010414578679,"y":15702.474184147826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 20 Begin","id":"6b07cc40-e7da-48bc-a49b-cac5a0615c34"}}},{"type":"Polygon Vertex","name":"SMA 20 End","project":"Superalgos","id":"3d4d3854-f28c-462a-b08a-21db3bdf9d82","savedPayload":{"position":{"x":6241.362508462567,"y":15298.415365586585},"targetPosition":{"x":6926.010414578679,"y":15702.474184147826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 20 End","id":"e2f2041d-b896-44d7-b251-85eb1cd7fadf"}}}],"id":"39db09d1-e5b2-4e83-80b5-41b5af443e3f","savedPayload":{"position":{"x":6926.010414578679,"y":15702.474184147826},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 25","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"938779af-a8c9-48dc-a936-7f196f976c5a","savedPayload":{"position":{"x":5594.084373752445,"y":14813.202897893683},"targetPosition":{"x":6337.243589906877,"y":15098.546767756252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c905d757-47ba-4c5b-9f85-73db3050e897","savedPayload":{"position":{"x":6337.243589906877,"y":15098.546767756252},"targetPosition":{"x":7080.56461483545,"y":15381.73535784935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 25 End","project":"Superalgos","id":"a952acf4-c97a-40f5-8f9d-edbae371305d","savedPayload":{"position":{"x":6407.4081272683725,"y":14958.66061707899},"targetPosition":{"x":7080.56461483545,"y":15381.73535784935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 25 End","id":"c9293d92-6255-4c96-9bf9-f4c6dcf419a1"}}},{"type":"Polygon Vertex","name":"SMA 25 Begin","project":"Superalgos","id":"88efd4f2-dc1e-43d6-96f0-7e60ed1d4177","savedPayload":{"position":{"x":6502.770173648594,"y":14835.334073997652},"targetPosition":{"x":7080.56461483545,"y":15381.73535784935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 25 Begin","id":"78b96701-c691-41fa-91d2-3bdb00e2e0fa"}}}],"id":"9b80c90a-521b-4d8e-ba2b-781f3aee1fb2","savedPayload":{"position":{"x":7080.56461483545,"y":15381.73535784935},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 50","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b8842dee-7b08-40e5-818d-54df493e6e20","savedPayload":{"position":{"x":5974.218207617305,"y":14214.12579186019},"targetPosition":{"x":6635.88443507774,"y":14656.229095391034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c1dfcdd1-96a1-49ee-82e6-7d78077c43c0","savedPayload":{"position":{"x":6641.559191643686,"y":14660.462915613587},"targetPosition":{"x":7302.455818250706,"y":15103.237352464135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 50 Begin","project":"Superalgos","id":"cdbfa16a-32ae-43e0-ba6f-940351c04786","savedPayload":{"position":{"x":6740.422271549927,"y":14541.143071479502},"targetPosition":{"x":7302.455818250706,"y":15103.237352464135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 50 Begin","id":"1d352202-ba2e-41a7-9d4b-c4c97d2e391d"}}},{"type":"Polygon Vertex","name":"SMA 50 End","project":"Superalgos","id":"5e17d592-e906-4b8b-b48b-97b98cdd2cd1","savedPayload":{"position":{"x":6861.009400608327,"y":14442.238825584896},"targetPosition":{"x":7302.455818250706,"y":15103.237352464135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 50 End","id":"4e34e6e6-d370-4127-b4fe-0c9fd591e730"}}}],"id":"39d6a3fc-1380-4e2d-8de6-13d0b9e7a8e3","savedPayload":{"position":{"x":7302.455818250706,"y":15103.237352464135},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 100","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"2a39fe15-bcc6-49a4-9dcd-41c882a4b361","savedPayload":{"position":{"x":6483.017421302578,"y":13719.638808567148},"targetPosition":{"x":7029.593665995624,"y":14297.823870143538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ea97087b-647a-4900-8de5-2aabe7f95095","savedPayload":{"position":{"x":7029.730791047241,"y":14297.8428513599},"targetPosition":{"x":7576.56031909923,"y":14876.159299033758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 100 Begin","project":"Superalgos","id":"d87c3f75-6f43-4087-ab8b-0493e77a3a25","savedPayload":{"position":{"x":7157.994166743541,"y":14207.879327854424},"targetPosition":{"x":7581.028457304848,"y":14881.116855921035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 100 Begin","id":"651f424a-51be-4b25-a895-d50f75329384"}}},{"type":"Polygon Vertex","name":"SMA 100 End","project":"Superalgos","id":"b6782eed-6d13-4cf8-98c1-b623da09e0d1","savedPayload":{"position":{"x":7297.753778030259,"y":14138.147609090809},"targetPosition":{"x":7581.028457304848,"y":14881.116855921035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 100 End","id":"aada5c3d-5ff5-4afd-8dd1-298ce8fce853"}}}],"id":"c7c55c53-c6ee-4edc-8b4e-eab2ece17db9","savedPayload":{"position":{"x":7581.028457304848,"y":14881.116855921035},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 150","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"7e3e32b9-1c64-43f1-85ab-6bb2d777c5a5","savedPayload":{"position":{"x":7090.099040886136,"y":13353.081110122366},"targetPosition":{"x":7494.0445241354755,"y":14037.987845771859},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"91bbb7a8-0800-4d46-a3ba-bd195153f61e","savedPayload":{"position":{"x":7493.1916875047355,"y":14035.918016063259},"targetPosition":{"x":7897.56976249551,"y":14721.438196487205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 150 Begin","project":"Superalgos","id":"db2a660d-2315-482c-a29a-38acac0ca453","savedPayload":{"position":{"x":7639.324985291598,"y":13976.400074191348},"targetPosition":{"x":7901.8183518318765,"y":14726.800252896563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 150 Begin","id":"55d6b376-dd20-4044-b6c2-51acd03bee71"}}},{"type":"Polygon Vertex","name":"SMA 150 End","project":"Superalgos","id":"2c0a8a74-58c0-4331-a438-2154306fb317","savedPayload":{"position":{"x":7790.761422719745,"y":13939.6445027938},"targetPosition":{"x":7901.8183518318765,"y":14726.800252896563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 150 End","id":"812b92a9-2ba5-44e2-b255-976f8354e841"}}}],"id":"5c7935c9-6393-4e0f-8561-742533c1ebcf","savedPayload":{"position":{"x":7901.8183518318765,"y":14726.800252896563},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 200","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"0ab949bd-a21b-43e8-ae5d-ba2067fa9436","savedPayload":{"position":{"x":7762.492294167747,"y":13128.347053218302},"targetPosition":{"x":8003.859459276693,"y":13885.994992940869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"838799c3-76c5-4e9e-9291-e297d352969c","savedPayload":{"position":{"x":8003.4763253119745,"y":13883.827086107127},"targetPosition":{"x":8245.12947260895,"y":14642.108806436348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 200 Begin","project":"Superalgos","id":"f36ca4d6-1114-4958-9bf2-09cd34536077","savedPayload":{"position":{"x":8159.985999926856,"y":13857.31975346093},"targetPosition":{"x":8248.940246696668,"y":14647.583891286631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 200 Begin","id":"652e1cae-11c0-489c-a820-03296a362c77"}}},{"type":"Polygon Vertex","name":"SMA 200 End","project":"Superalgos","id":"af95d8b6-43cf-4529-910a-8713ab69fb13","savedPayload":{"position":{"x":8315.592510899525,"y":13855.456708518788},"targetPosition":{"x":8248.940246696668,"y":14647.583891286631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 200 End","id":"4e4458f4-c6ca-4235-8734-8e833d3722f2"}}}],"id":"796fa379-26a6-4443-b515-1be86217f891","savedPayload":{"position":{"x":8248.940246696668,"y":14647.583891286631},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 250","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.BLACK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"6f488fbe-fb26-4965-9ad2-be64bc66477e","savedPayload":{"position":{"x":8467.760104740883,"y":13058.857172348196},"targetPosition":{"x":8534.442620376398,"y":13851.244178224668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1860376f-2657-41cb-84d1-10c324f64535","savedPayload":{"position":{"x":8534.584546689817,"y":13849.04909225246},"targetPosition":{"x":8601.415768774914,"y":14642.113124613585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 250 End","project":"Superalgos","id":"e513348c-19d0-49e5-a77f-e6059d459335","savedPayload":{"position":{"x":8693.72509380208,"y":13857.583152445624},"targetPosition":{"x":8604.725148368376,"y":14647.678914778158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 250 End","id":"8ddf18b2-93b4-4422-9e64-f9fc22f5de52"}}},{"type":"Polygon Vertex","name":"SMA 250 Begin","project":"Superalgos","id":"ddd52ba0-601f-4121-908e-9cd42450ecaa","savedPayload":{"position":{"x":8846.156766555978,"y":13890.180403608134},"targetPosition":{"x":8604.725148368376,"y":14647.678914778158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 250 Begin","id":"52aefae1-6ceb-47c4-a82d-ac55a7b91b25"}}}],"id":"3ec27802-69a6-4c76-8bf5-ba92335ff928","savedPayload":{"position":{"x":8604.725148368376,"y":14647.678914778158},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 500","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.BLACK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b8892640-241d-4817-90b9-142d50f45575","savedPayload":{"position":{"x":9170.539672142233,"y":13148.132010487972},"targetPosition":{"x":9059.473223891135,"y":13935.512141689218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"640d28c5-0762-4fe0-8d3b-b2b2fd178cbe","savedPayload":{"position":{"x":9060.108806415126,"y":13933.332511866647},"targetPosition":{"x":8948.960779210738,"y":14721.45730130827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 500 Begin","project":"Superalgos","id":"cc1d57e4-c69b-4faf-987e-1ecc6402d774","savedPayload":{"position":{"x":9214.431169509287,"y":13976.230175554481},"targetPosition":{"x":8951.798543616984,"y":14726.800309194063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 500 Begin","id":"d1ec756e-a71c-433b-ad10-ef8234617768"}}},{"type":"Polygon Vertex","name":"SMA 500 End","project":"Superalgos","id":"f5f0ed9f-dc7d-40cb-94cb-9fca1de4aacf","savedPayload":{"position":{"x":9355.810471454457,"y":14042.179877162023},"targetPosition":{"x":8951.798543616984,"y":14726.800309194063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 500 End","id":"0b2fbef6-9a30-4ed6-a98e-5ccceb77aea3"}}}],"id":"d638a3eb-6f91-4c41-9f65-981ba269343a","savedPayload":{"position":{"x":8951.798543616984,"y":14726.800309194063},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 1000","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.BLACK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"accb8fb4-da01-4314-bda3-a127f32443db","savedPayload":{"position":{"x":9837.387047803968,"y":13389.82112935621},"targetPosition":{"x":9553.792066279693,"y":14132.922753310495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2139584e-6960-4ac5-a6b2-d45aae1cfae3","savedPayload":{"position":{"x":9554.185921355991,"y":14132.64658458411},"targetPosition":{"x":9270.385770384844,"y":14876.246477311379},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 1000 Begin","project":"Superalgos","id":"82d72489-eb93-4293-8b96-498e6756e89d","savedPayload":{"position":{"x":9695.774069903691,"y":14208.243257070533},"targetPosition":{"x":9272.77971366134,"y":14881.255399754165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 1000 Begin","id":"db6c9de6-aeb9-46ff-a46d-893ac56a32a2"}}},{"type":"Polygon Vertex","name":"SMA 1000 End","project":"Superalgos","id":"e781d4f3-58b9-4fce-82aa-27b669582090","savedPayload":{"position":{"x":9819.109634908778,"y":14303.806395517597},"targetPosition":{"x":9272.77971366134,"y":14881.255399754165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 1000 End","id":"e518b92f-f678-4868-ae0c-a0bd31f480eb"}}}],"id":"8042e9e4-b3be-4d8b-94bc-558b8b97a3f0","savedPayload":{"position":{"x":9272.77971366134,"y":14881.255399754165},"targetPosition":{"x":8426.705423653035,"y":16227.407603939377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"9847b54e-34cd-4a44-b43f-be3c091f5ec0","savedPayload":{"position":{"x":8426.705423653035,"y":16227.407603939377},"targetPosition":{"x":9546.823996722476,"y":17347.5391788509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"SMA Base 5","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"SMA 5","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma5","project":"Superalgos","id":"5c11d2b4-671b-42ec-88b0-9dbbf0ba5a57","savedPayload":{"position":{"x":9277.089591114182,"y":16800.50042766004},"targetPosition":{"x":9400.891315491339,"y":16564.7487336349},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ec513f64-7c7c-4693-ac51-b2e36f2f858c","savedPayload":{"position":{"x":9400.891315491339,"y":16564.7487336349},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 10","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma10","project":"Superalgos","id":"5e333385-55ff-48d1-abb0-0757ef26a20c","savedPayload":{"position":{"x":9065.059013195303,"y":16618.817953353486},"targetPosition":{"x":9284.19437658519,"y":16467.83472140327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c599221d-9b35-48c5-bb4d-4c4fd0c8c4e8","savedPayload":{"position":{"x":9284.19437658519,"y":16467.83472140327},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 15","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma15","project":"Superalgos","id":"0cb3bdcb-7c0b-4cfa-9357-0b142c1e230b","savedPayload":{"position":{"x":8971.160598384402,"y":16356.300645654039},"targetPosition":{"x":9235.632242167325,"y":16324.448528645873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f3ff46f2-80e9-458f-b7ca-8f0fe7c7cff2","savedPayload":{"position":{"x":9235.632242167325,"y":16324.448528645873},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 20","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma20","project":"Superalgos","id":"8dc1f569-2c1e-4842-b135-528ba461ca30","savedPayload":{"position":{"x":9004.298169584825,"y":16081.373515847125},"targetPosition":{"x":9253.990581457252,"y":16176.04505028882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"14a4ef21-076b-418a-98a6-7b3ff64f2a9f","savedPayload":{"position":{"x":9253.990581457252,"y":16176.04505028882},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 25","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma25","project":"Superalgos","id":"2d76e840-cdda-48e8-9290-342c2a143b6d","savedPayload":{"position":{"x":9162.774564246094,"y":15853.759744014309},"targetPosition":{"x":9338.82847308835,"y":16052.529159044414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d8d31fc6-55db-4a89-bcc8-4e33a3583542","savedPayload":{"position":{"x":9338.82847308835,"y":16052.529159044414},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 50","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma50","project":"Superalgos","id":"9a0af05e-b760-4a22-85ab-8b3c64b3ef29","savedPayload":{"position":{"x":9407.780218853237,"y":15723.618705719471},"targetPosition":{"x":9471.82455758275,"y":15983.822817595788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48d5643b-e652-4c4d-b7cf-37e9656bfd43","savedPayload":{"position":{"x":9471.82455758275,"y":15983.822817595788},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 100","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma100","project":"Superalgos","id":"1987b0ae-9510-45e9-b7ed-3802c3f28e1d","savedPayload":{"position":{"x":9684.582396877795,"y":15724.967971996297},"targetPosition":{"x":9621.3354349465,"y":15982.340659966165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4ad1bbaa-2c37-4009-bbdd-d154be78b2d0","savedPayload":{"position":{"x":9621.3354349465,"y":15982.340659966165},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 150","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma150","project":"Superalgos","id":"611d7c8b-2cb8-412b-bd1b-2a04b3a796c0","savedPayload":{"position":{"x":9930.163421270201,"y":15853.42139071546},"targetPosition":{"x":9753.4718530797,"y":16053.055503000232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8ef64a02-b88d-4635-8d88-99121a55ed73","savedPayload":{"position":{"x":9753.4718530797,"y":16053.055503000232},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 200","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma200","project":"Superalgos","id":"d8bbc57a-1eda-43c8-a865-1ceeb879a755","savedPayload":{"position":{"x":10088.092407321328,"y":16081.421564973196},"targetPosition":{"x":9838.97476274682,"y":16175.949481847587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"06680ab8-0ec9-448e-9854-97bf413f4133","savedPayload":{"position":{"x":9838.97476274682,"y":16175.949481847587},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 250","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma250","project":"Superalgos","id":"496ce598-2c93-40df-8f2e-effaeff2b665","savedPayload":{"position":{"x":10121.730982005018,"y":16356.24344760182},"targetPosition":{"x":9857.53899293744,"y":16324.460598334947},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"503ab933-6f8f-4fcb-a0e6-ecf1b6e8b24b","savedPayload":{"position":{"x":9857.53899293744,"y":16324.460598334947},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 500","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma500","project":"Superalgos","id":"67dd80e5-30f9-48b2-b661-e40acde070cc","savedPayload":{"position":{"x":10022.943571674397,"y":16615.588564592683},"targetPosition":{"x":9804.531092616653,"y":16465.01309490849},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a4ab02a6-f6c0-4b8f-98d9-e24b66e492ab","savedPayload":{"position":{"x":9804.531092616653,"y":16465.01309490849},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 1000","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma1000","project":"Superalgos","id":"359489a0-97b9-49f8-8f35-2f6247b570a9","savedPayload":{"position":{"x":9815.063233755962,"y":16799.736013120975},"targetPosition":{"x":9691.684274832027,"y":16564.397370631843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"88560ba5-2c50-4236-90b6-47d19ac3afa5","savedPayload":{"position":{"x":9691.684274832027,"y":16564.397370631843},"targetPosition":{"x":9546.461305990331,"y":16286.944648610974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa2c0f1e-8a0e-4da1-97df-6815890e5770","savedPayload":{"position":{"x":9546.8298124457,"y":16288.856744141856},"targetPosition":{"x":9546.823996722476,"y":17347.5391788509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"888c381d-457d-4421-8401-a7475b42ff03","savedPayload":{"position":{"x":9999.173182942548,"y":17670.918273451905},"targetPosition":{"x":10336.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9b2443b7-9276-4fa3-b4b3-b9b991d886d8","savedPayload":{"position":{"x":10336.673182942548,"y":18255.4854210064},"targetPosition":{"x":10786.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Relative Strenght Index (RSI)","config":"{\n\"codeName\": \"Plotter RSI\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"RSI 14","config":"{\n\t\"codeName\": \"RSI 14\",\n\t\"slot\": {\n\t\t\"number\": 3,\n\t\t\"minValue\": 0,\n\t\t\"maxValue\": 100\n\t},\n \"banner\": \"Oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"Grid","project":"Superalgos","points":[{"type":"Point","name":"Begin 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"88e15149-215e-42c8-bc00-78b63343daa0","savedPayload":{"position":{"x":9041.466765892419,"y":17104.708491403868},"targetPosition":{"x":9092.522650893712,"y":17234.795772144193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e376a028-b688-4bb5-a100-00be6d161bd6","savedPayload":{"position":{"x":9092.522650893712,"y":17234.795772144193},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 0","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"6904030c-e751-4eb9-844a-d1cf45caa1f2","savedPayload":{"position":{"x":9144.872911655657,"y":17056.547828402367},"targetPosition":{"x":9147.32815015229,"y":17200.370216744708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f562d9d7-357b-4677-ac4b-3ddbb735ca2b","savedPayload":{"position":{"x":9147.32815015229,"y":17200.370216744708},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 20","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 20","project":"Superalgos","id":"4fc2797d-7023-461e-912e-23f2834d4141","savedPayload":{"position":{"x":9239.643622656196,"y":17093.149724835082},"targetPosition":{"x":9197.375997044976,"y":17225.15908271543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8227114d-f503-4f27-ae0b-4bc2804e2cdb","savedPayload":{"position":{"x":9197.375997044976,"y":17225.15908271543},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 20","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 20","project":"Superalgos","id":"e6640285-69e5-4a37-8907-9d8bbcc2008b","savedPayload":{"position":{"x":9366.797753160485,"y":17117.87646604142},"targetPosition":{"x":9278.434526115558,"y":17233.490337434196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c9de9989-11da-44a7-bcbf-137435767d90","savedPayload":{"position":{"x":9278.434526115558,"y":17233.490337434196},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 30","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 30","project":"Superalgos","id":"db815155-dbec-4824-9132-470a173d328b","savedPayload":{"position":{"x":9372.730161346997,"y":17211.69953322924},"targetPosition":{"x":9227.486174342735,"y":17309.174849242296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0f0a70c3-9f37-4e58-a93c-fcfcf9686c09","savedPayload":{"position":{"x":9227.486174342735,"y":17309.174849242296},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 30","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 30","project":"Superalgos","id":"db6c3539-81f5-465d-9d79-8004a60ac5fb","savedPayload":{"position":{"x":9441.520657695095,"y":17285.929008924075},"targetPosition":{"x":9340.129456510967,"y":17307.453777739527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac82bb81-5d37-4eea-ab52-0f698de71014","savedPayload":{"position":{"x":9340.129456510967,"y":17307.453777739527},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 50","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 50","project":"Superalgos","id":"a6a8718f-2c9a-4c5f-af7a-7029bddfb839","savedPayload":{"position":{"x":9394.83828323309,"y":17401.15545586696},"targetPosition":{"x":9266.650204186692,"y":17362.90148536058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a0cdc721-996a-44b2-b619-bbc0ef97cd62","savedPayload":{"position":{"x":9266.650204186692,"y":17362.90148536058},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 50","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 50","project":"Superalgos","id":"c996c1b4-2b1f-4d11-acd4-8aba4d3e3e5d","savedPayload":{"position":{"x":9437.870952784117,"y":17503.07549719417},"targetPosition":{"x":9313.535713817942,"y":17454.49309723108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"59a77a0b-bcee-4c1e-855c-854c3d3bc521","savedPayload":{"position":{"x":9313.535713817942,"y":17454.49309723108},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 70","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 70","project":"Superalgos","id":"bdcd3323-0da6-4667-95c2-b017623500af","savedPayload":{"position":{"x":9343.802166774247,"y":17549.824629422408},"targetPosition":{"x":9235.925230802259,"y":17427.435244869328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"228edebc-3b5b-4760-9791-2229cb76a662","savedPayload":{"position":{"x":9235.925230802259,"y":17427.435244869328},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 70","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 70","project":"Superalgos","id":"9977888b-2cf4-472e-8468-d6705690a57c","savedPayload":{"position":{"x":9264.975563351509,"y":17635.509373008612},"targetPosition":{"x":9231.720430111443,"y":17529.123260164444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4cbfd9aa-d595-4e06-ac82-a87bfdf9f680","savedPayload":{"position":{"x":9231.720430111443,"y":17529.123260164444},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 80","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 80","project":"Superalgos","id":"75cda528-f689-4d21-a8ed-ba08705d5ec7","savedPayload":{"position":{"x":9141.967677017881,"y":17566.93412478785},"targetPosition":{"x":9168.190184239134,"y":17433.7100107913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e7b453a3-5312-48e6-8797-6d96e058766b","savedPayload":{"position":{"x":9168.190184239134,"y":17433.7100107913},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Eng 80","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 80","project":"Superalgos","id":"df4c7f58-96c7-4ffb-9ce3-ff1b35ddf3c3","savedPayload":{"position":{"x":9011.4750858361,"y":17662.04819786081},"targetPosition":{"x":9083.813562756965,"y":17541.858264982904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d64e2ceb-abb9-4cc0-b929-211bcbd934a7","savedPayload":{"position":{"x":9083.813562756965,"y":17541.858264982904},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin 100","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 100","project":"Superalgos","id":"79f20ec4-c499-41ca-aa79-f56fe5b7bcbc","savedPayload":{"position":{"x":8997.08027135814,"y":17484.088465918925},"targetPosition":{"x":9115.683799445174,"y":17408.58662548788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7d5d4922-1d7d-45a3-b5ff-75d14016ee1d","savedPayload":{"position":{"x":9115.683799445174,"y":17408.58662548788},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End 100","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 100","project":"Superalgos","id":"58d10fb8-87e5-4a4c-95ab-99be2f5b14ea","savedPayload":{"position":{"x":8888.333662990459,"y":17448.668931998443},"targetPosition":{"x":9000.579874749692,"y":17417.274298658464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dc11ae4c-bce1-4e88-986a-457a3612102a","savedPayload":{"position":{"x":9000.579874749692,"y":17417.274298658464},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"RSI Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.value","project":"Superalgos","id":"e068d3fa-623c-4349-a10f-4abdd6263b07","savedPayload":{"position":{"x":8931.216328161867,"y":17339.10900642492},"targetPosition":{"x":9096.713401138608,"y":17334.80702412845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7f687c2f-3a91-4b53-b00d-8a651e82c97d","savedPayload":{"position":{"x":9096.713401138608,"y":17334.80702412845},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"RSI End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.value","project":"Superalgos","id":"bb45d3f0-e6e7-473a-b2f4-7016c65bd7ee","savedPayload":{"position":{"x":8913.163416459192,"y":17241.14896823239},"targetPosition":{"x":9025.658626425542,"y":17302.122150020718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f5d97a45-0db5-4d48-bf32-efdd6b2726c0","savedPayload":{"position":{"x":9025.658626425542,"y":17302.122150020718},"targetPosition":{"x":9165.934568754576,"y":17358.127392340488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ff9f35c7-b1ca-446e-905c-c971ca51dfbe","savedPayload":{"position":{"x":9165.934568754576,"y":17358.127392340488},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Box 0-20","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.25,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.35,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"9e7202ce-11e7-4526-80d5-52f0dbdcb91c","savedPayload":{"position":{"x":8228.979153972432,"y":18272.782940556674},"targetPosition":{"x":8151.316869970575,"y":18022.423521716195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8716fe80-7aa5-4707-93d9-f47ac26e9a53","savedPayload":{"position":{"x":8151.316869970575,"y":18022.423521716195},"targetPosition":{"x":8073.265313054497,"y":17771.95877923628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 0","project":"Superalgos","id":"89a7b82e-5d1d-4359-80a8-0b85d997a62c","savedPayload":{"position":{"x":8015.767094759813,"y":18028.129382759744},"targetPosition":{"x":8073.265313054497,"y":17771.95877923628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"e376a028-b688-4bb5-a100-00be6d161bd6"}}},{"type":"Polygon Vertex","name":"End 0","project":"Superalgos","id":"4ddfe945-d3dd-431a-a0bf-477d2f0c0af1","savedPayload":{"position":{"x":7895.564145649296,"y":17965.16055683019},"targetPosition":{"x":8073.265313054497,"y":17771.95877923628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"f562d9d7-357b-4677-ac4b-3ddbb735ca2b"}}},{"type":"Polygon Vertex","name":"End 20","project":"Superalgos","id":"1fd4c8e3-47e3-4e05-8739-a34e8239b178","savedPayload":{"position":{"x":7822.957444550346,"y":17850.429287220817},"targetPosition":{"x":8073.265313054497,"y":17771.95877923628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 20","id":"c9de9989-11da-44a7-bcbf-137435767d90"}}},{"type":"Polygon Vertex","name":"Begin 20","project":"Superalgos","id":"2920b1c1-1d61-44b8-b31a-31e2d87fa9e4","savedPayload":{"position":{"x":7820.120782257367,"y":17714.624553705515},"targetPosition":{"x":8073.265313054497,"y":17771.95877923628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 20","id":"8227114d-f503-4f27-ae0b-4bc2804e2cdb"}}}],"id":"0dce63e6-acf6-482e-bcf9-3e44b7487cbf","savedPayload":{"position":{"x":8073.265313054497,"y":17771.95877923628},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 80-100","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.25,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.35,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"f95287c0-8123-4025-8018-370eb91b6189","savedPayload":{"position":{"x":7558.683405849144,"y":18282.62451333664},"targetPosition":{"x":7675.9176575545425,"y":18048.05799532052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c46a4519-e917-410e-98d7-faf0ad80a99a","savedPayload":{"position":{"x":7675.9176575545425,"y":18048.05799532052},"targetPosition":{"x":7909.795444112082,"y":17579.47464025012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 80","project":"Superalgos","id":"eb76ec36-eae3-424a-9105-d26eefca1b67","savedPayload":{"position":{"x":7562.412055779616,"y":17971.430700001223},"targetPosition":{"x":7909.795444112082,"y":17579.47464025012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 80","id":"e7b453a3-5312-48e6-8797-6d96e058766b"}}},{"type":"Polygon Vertex","name":"Eng 80","project":"Superalgos","id":"6facb2b7-b324-4e01-a53f-5d72541ba64f","savedPayload":{"position":{"x":7472.768839481356,"y":17868.215055099583},"targetPosition":{"x":7909.795444112082,"y":17579.47464025012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Eng 80","id":"d64e2ceb-abb9-4cc0-b929-211bcbd934a7"}}},{"type":"Polygon Vertex","name":"End 100","project":"Superalgos","id":"2e7bfaf4-7828-4021-9895-58882a03987e","savedPayload":{"position":{"x":7412.9008971814765,"y":17745.347413509826},"targetPosition":{"x":7909.795444112082,"y":17579.47464025012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 100","id":"dc11ae4c-bce1-4e88-986a-457a3612102a"}}},{"type":"Polygon Vertex","name":"Begin 100","project":"Superalgos","id":"d2a601ff-7a5d-414e-bc06-be93e13e6ddb","savedPayload":{"position":{"x":7386.86640898254,"y":17611.099491829893},"targetPosition":{"x":7909.795444112082,"y":17579.47464025012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 100","id":"7d5d4922-1d7d-45a3-b5ff-75d14016ee1d"}}}],"id":"2429edaa-20db-4fd9-b834-c84953e78bf3","savedPayload":{"position":{"x":7909.795444112082,"y":17579.47464025012},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 20-30","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"f1ac3d45-3f00-4269-a41f-872bcbc99620","savedPayload":{"position":{"x":7722.246727281603,"y":17741.337378224856},"targetPosition":{"x":7749.057585218765,"y":17611.24419339063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1aa28d17-1653-496a-8b8a-35fdf6691e0b","savedPayload":{"position":{"x":7749.057585218765,"y":17611.24419339063},"targetPosition":{"x":7796.854740606876,"y":17353.82148014623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 20","project":"Superalgos","id":"2e88069b-6333-45f8-8199-021fe3896667","savedPayload":{"position":{"x":7626.445524102059,"y":17553.45780766685},"targetPosition":{"x":7796.854740606876,"y":17353.82148014623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 20","id":"8227114d-f503-4f27-ae0b-4bc2804e2cdb"}}},{"type":"Polygon Vertex","name":"End 20","project":"Superalgos","id":"cdea2bf9-a545-4877-8d65-5a027352bb8a","savedPayload":{"position":{"x":7549.39644463838,"y":17441.938265340184},"targetPosition":{"x":7796.854740606876,"y":17353.82148014623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 20","id":"c9de9989-11da-44a7-bcbf-137435767d90"}}},{"type":"Polygon Vertex","name":"End 30","project":"Superalgos","id":"bfb22589-c1af-4822-8944-1767e3e691bc","savedPayload":{"position":{"x":7544.153715592249,"y":17332.987816512705},"targetPosition":{"x":7796.854740606876,"y":17353.82148014623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"ac82bb81-5d37-4eea-ab52-0f698de71014"}}},{"type":"Polygon Vertex","name":"Begin 30","project":"Superalgos","id":"208c9dfc-a7fb-41ab-becc-3b68104e07ed","savedPayload":{"position":{"x":7601.756609746528,"y":17180.846760302793},"targetPosition":{"x":7796.854740606876,"y":17353.82148014623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"0f0a70c3-9f37-4e58-a93c-fcfcf9686c09"}}}],"id":"4a0db3d1-061d-4587-9c05-f42c09c0b271","savedPayload":{"position":{"x":7796.854740606876,"y":17353.82148014623},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 70-80","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"6335d57f-9462-4d19-b954-2f511308b9c8","savedPayload":{"position":{"x":7304.520865432885,"y":17390.846905944392},"targetPosition":{"x":7517.635146597222,"y":17237.50952314289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"b01a727e-5773-47c2-b094-c19ad0ac71f4","savedPayload":{"position":{"x":7517.635146597222,"y":17237.50952314289},"targetPosition":{"x":7741.485073757016,"y":17107.588457039914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 70","project":"Superalgos","id":"c59e52e4-9b7e-4985-ab53-35f5cd29f250","savedPayload":{"position":{"x":7251.523773111789,"y":17293.05151635694},"targetPosition":{"x":7741.485073757016,"y":17107.588457039914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"228edebc-3b5b-4760-9791-2229cb76a662"}}},{"type":"Polygon Vertex","name":"End 70","project":"Superalgos","id":"957f8c1e-cb14-4241-b805-abfdc50c07d0","savedPayload":{"position":{"x":7220.200957198529,"y":17160.00932270219},"targetPosition":{"x":7741.485073757016,"y":17107.588457039914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"4cbfd9aa-d595-4e06-ac82-a87bfdf9f680"}}},{"type":"Polygon Vertex","name":"Eng 80","project":"Superalgos","id":"37688deb-5377-4f52-bde8-5e8abbf6e25f","savedPayload":{"position":{"x":7212.944238398726,"y":17053.204675324116},"targetPosition":{"x":7741.485073757016,"y":17107.588457039914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Eng 80","id":"d64e2ceb-abb9-4cc0-b929-211bcbd934a7"}}},{"type":"Polygon Vertex","name":"Begin 80","project":"Superalgos","id":"6d346213-f33f-4b5a-a519-5e1c3fb42e50","savedPayload":{"position":{"x":7267.884064406258,"y":16873.92170311763},"targetPosition":{"x":7741.485073757016,"y":17107.588457039914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 80","id":"e7b453a3-5312-48e6-8797-6d96e058766b"}}}],"id":"5835d367-23bc-4039-b2c1-1a23f3ca652f","savedPayload":{"position":{"x":7741.485073757016,"y":17107.588457039914},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"6ad882da-10d9-427c-8fb5-3a7c55b678a1","savedPayload":{"position":{"x":7245.379384255615,"y":16974.90988540458},"targetPosition":{"x":7492.213075435608,"y":16920.993648590847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"fa05777f-6288-4dd2-9b7a-61194bc43681","savedPayload":{"position":{"x":7492.213075435608,"y":16920.993648590847},"targetPosition":{"x":7746.340853981968,"y":16855.743044137183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 20","project":"Superalgos","id":"a9a9dd2d-d7f8-4a25-b81d-d1e2a2f9d5a6","savedPayload":{"position":{"x":7486.444193538173,"y":16818.77684208694},"targetPosition":{"x":7746.340853981968,"y":16855.743044137183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 20","id":"8227114d-f503-4f27-ae0b-4bc2804e2cdb"}}},{"type":"Polygon Vertex","name":"End 20","project":"Superalgos","id":"a717c7d2-3bc7-4d8c-9e9f-e1fb75fd0d42","savedPayload":{"position":{"x":7520.637021628336,"y":16721.945317913327},"targetPosition":{"x":7746.340853981968,"y":16855.743044137183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 20","id":"c9de9989-11da-44a7-bcbf-137435767d90"}}}],"id":"27aab97e-ce7f-47fc-bd22-d9b70ffec2d1","savedPayload":{"position":{"x":7746.340853981968,"y":16855.743044137183},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 30","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"0b1d6f25-076c-4495-b462-435a8d1900d2","savedPayload":{"position":{"x":7156.561117564255,"y":16617.887160815404},"targetPosition":{"x":7287.958455489759,"y":16617.21263767734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6cb61271-a82a-47a1-ac0c-404dc28b05e5","savedPayload":{"position":{"x":7287.958455489759,"y":16617.21263767734},"targetPosition":{"x":7811.62360135858,"y":16612.267507098382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End 30","project":"Superalgos","id":"e656c0ce-1b57-420e-84f5-cd62a9bb602d","savedPayload":{"position":{"x":7325.760817765749,"y":16416.81560701725},"targetPosition":{"x":7811.62360135858,"y":16612.267507098382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"ac82bb81-5d37-4eea-ab52-0f698de71014"}}},{"type":"Polygon Vertex","name":"Begin 30","project":"Superalgos","id":"8e2ee705-7be7-4705-a32f-242a5c1d286d","savedPayload":{"position":{"x":7455.180112254813,"y":16214.557427450061},"targetPosition":{"x":7811.62360135858,"y":16612.267507098382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"0f0a70c3-9f37-4e58-a93c-fcfcf9686c09"}}}],"id":"18e4afd3-7536-405b-97b6-d36ec7ddc692","savedPayload":{"position":{"x":7811.62360135858,"y":16612.267507098382},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 50","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"68ca10ec-d83d-4f61-b9ee-6a0f3a74cb12","savedPayload":{"position":{"x":7405.089567066894,"y":16302.212928345576},"targetPosition":{"x":7677.872160575054,"y":16331.518179283827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"fefbf0c0-287c-4bb7-81a7-6b745dcfcf3b","savedPayload":{"position":{"x":7677.872160575054,"y":16331.518179283827},"targetPosition":{"x":7933.312597355987,"y":16391.47046498201},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 50","project":"Superalgos","id":"cfa25adf-05eb-49d0-956a-69e4fde9bacf","savedPayload":{"position":{"x":7720.405320033522,"y":16238.03472399152},"targetPosition":{"x":7933.312597355987,"y":16391.47046498201},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 50","id":"a0cdc721-996a-44b2-b619-bbc0ef97cd62"}}},{"type":"Polygon Vertex","name":"End 50","project":"Superalgos","id":"de1447aa-e70f-419b-bab5-d94b333612c7","savedPayload":{"position":{"x":7795.658442970092,"y":16168.05608958238},"targetPosition":{"x":7933.312597355987,"y":16391.47046498201},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 50","id":"59a77a0b-bcee-4c1e-855c-854c3d3bc521"}}}],"id":"bbe48886-b71e-4507-b6e8-7f073b691a6a","savedPayload":{"position":{"x":7933.312597355987,"y":16391.47046498201},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 70","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"913293ac-040f-4348-ade4-5b3103fe1375","savedPayload":{"position":{"x":7404.842559288143,"y":15847.667848539753},"targetPosition":{"x":7638.290430348519,"y":15967.348640662687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8640a48e-f7ca-419c-a687-3f52c3a5afa9","savedPayload":{"position":{"x":7638.290430348519,"y":15967.348640662687},"targetPosition":{"x":8104.349286029883,"y":16206.106265614704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End 70","project":"Superalgos","id":"bc77b107-0a70-4038-86a6-3034ab4e86dd","savedPayload":{"position":{"x":7764.948383030864,"y":15806.86913302687},"targetPosition":{"x":8104.349286029883,"y":16206.106265614704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"4cbfd9aa-d595-4e06-ac82-a87bfdf9f680"}}},{"type":"Polygon Vertex","name":"Begin 70","project":"Superalgos","id":"36882cd2-2ec4-4d2d-af00-98b4c54bf1e7","savedPayload":{"position":{"x":7943.501594841553,"y":15707.783493876559},"targetPosition":{"x":8104.349286029883,"y":16206.106265614704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"228edebc-3b5b-4760-9791-2229cb76a662"}}}],"id":"508b71cf-79d3-4db4-a6d3-0b26226ad5b9","savedPayload":{"position":{"x":8104.349286029883,"y":16206.106265614704},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line 80","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.15,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n }\n}","project":"Superalgos","id":"9506c6ad-440b-45a1-aadf-89004f5311fb","savedPayload":{"position":{"x":7817.772544535699,"y":15900.626015530124},"targetPosition":{"x":8066.190821162942,"y":15983.725623994713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"59804538-89e9-485a-a2b1-88ff78eb5661","savedPayload":{"position":{"x":8066.190821162942,"y":15983.725623994713},"targetPosition":{"x":8314.759088143492,"y":16067.095387477268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 80","project":"Superalgos","id":"23df3ac4-6427-4a69-a5a3-8230186b46f3","savedPayload":{"position":{"x":8197.541759948243,"y":15832.310807759082},"targetPosition":{"x":8314.759088143492,"y":16067.095387477268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 80","id":"e7b453a3-5312-48e6-8797-6d96e058766b"}}},{"type":"Polygon Vertex","name":"Eng 80","project":"Superalgos","id":"7a5139be-30b6-4eab-994a-bb8b74be455d","savedPayload":{"position":{"x":8395.35153558732,"y":15819.910162775726},"targetPosition":{"x":8314.759088143492,"y":16067.095387477268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Eng 80","id":"d64e2ceb-abb9-4cc0-b929-211bcbd934a7"}}}],"id":"8499947d-a392-40ed-be9d-225a28429642","savedPayload":{"position":{"x":8314.759088143492,"y":16067.095387477268},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"RSI Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"90fe9ece-e33a-4e2e-904a-779327e7155a","savedPayload":{"position":{"x":8049.468086358571,"y":15386.751607217655},"targetPosition":{"x":8250.95930669296,"y":15554.688337468171},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"(record.previous.value < 20 && record.value < 20) || (record.previous.value > 80 && record.value > 80)","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n}","project":"Superalgos","id":"58f58e7a-3056-49c7-9117-f2a514d4479e","savedPayload":{"position":{"x":8070.339389676807,"y":15062.23854071272},"targetPosition":{"x":8160.744844776244,"y":15308.373137475635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9fcf2614-7ec8-407f-93a2-3c749f6683ef","savedPayload":{"position":{"x":8160.744844776244,"y":15308.373137475635},"targetPosition":{"x":8250.95930669296,"y":15554.688337468171},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6dc77d6e-5aa6-41ab-b247-43c4391fcc96","savedPayload":{"position":{"x":8250.95930669296,"y":15554.688337468171},"targetPosition":{"x":8552.450330399297,"y":15982.598830896633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"RSI Begin","project":"Superalgos","id":"5312ee43-9c15-4d4b-9255-5fb7259c5734","savedPayload":{"position":{"x":8437.706266341083,"y":15471.685524354878},"targetPosition":{"x":8552.450330399297,"y":15982.598830896633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"RSI Begin","id":"7f687c2f-3a91-4b53-b00d-8a651e82c97d"}}},{"type":"Polygon Vertex","name":"RSI End","project":"Superalgos","id":"01981eaa-b1c6-41e1-84b4-2dc8106ac095","savedPayload":{"position":{"x":8641.6067339746,"y":15466.514514759878},"targetPosition":{"x":8552.450330399297,"y":15982.598830896633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"RSI End","id":"f5d97a45-0db5-4d48-bf32-efdd6b2726c0"}}}],"id":"e8eb9949-277b-4493-a9f4-cbcb502aacbc","savedPayload":{"position":{"x":8552.450330399297,"y":15982.598830896633},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Box 30-70","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.05,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}","project":"Superalgos","id":"5b04f4bb-2cc4-48a5-b421-667c96b2dd27","savedPayload":{"position":{"x":8469.50565959404,"y":15751.10333219452},"targetPosition":{"x":8579.620308027937,"y":15821.091576453144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"208ca141-b231-4a70-8b31-eeae09576822","savedPayload":{"position":{"x":8579.620308027937,"y":15821.091576453144},"targetPosition":{"x":8803.459921085156,"y":15957.112271984272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin 30","project":"Superalgos","id":"7956c253-3704-46c0-b188-f6662bb58904","savedPayload":{"position":{"x":8677.537395103172,"y":15727.008815406463},"targetPosition":{"x":8803.459921085156,"y":15957.112271984272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"0f0a70c3-9f37-4e58-a93c-fcfcf9686c09"}}},{"type":"Polygon Vertex","name":"End 30","project":"Superalgos","id":"b043ae0f-a172-4ebe-922b-a895b8a888c9","savedPayload":{"position":{"x":8808.975757300414,"y":15694.56308556777},"targetPosition":{"x":8803.459921085156,"y":15957.112271984272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"ac82bb81-5d37-4eea-ab52-0f698de71014"}}},{"type":"Polygon Vertex","name":"End 70","project":"Superalgos","id":"5830f66c-dca5-4f62-8102-d7d8ea588d0d","savedPayload":{"position":{"x":8939.336169221991,"y":15732.432444795015},"targetPosition":{"x":8803.459921085156,"y":15957.112271984272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"4cbfd9aa-d595-4e06-ac82-a87bfdf9f680"}}},{"type":"Polygon Vertex","name":"Begin 70","project":"Superalgos","id":"a8eb0500-2421-4879-9459-2ecdb4ae09d5","savedPayload":{"position":{"x":9033.369294788372,"y":15830.623456333724},"targetPosition":{"x":8803.459921085156,"y":15957.112271984272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"228edebc-3b5b-4760-9791-2229cb76a662"}}}],"id":"b294fd86-15d6-4bc8-9379-0532df288eee","savedPayload":{"position":{"x":8803.459921085156,"y":15957.112271984272},"targetPosition":{"x":8781.975919951139,"y":17002.858173090124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"bc1170cc-a04b-4453-bd28-0e522f747617","savedPayload":{"position":{"x":8781.975919951139,"y":17002.858173090124},"targetPosition":{"x":9792.406959270818,"y":17274.489042520254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"RSI 14","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"RSI 14","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.value","project":"Superalgos","id":"fbec83cc-a090-491b-8cfb-833d40b2b843","savedPayload":{"position":{"x":9619.475174311261,"y":16619.970914687554},"targetPosition":{"x":9663.981618387988,"y":16789.089042186693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e5fd8d57-8920-417e-8b9b-c1e0d6868a7a","savedPayload":{"position":{"x":9663.981618387988,"y":16789.089042186693},"targetPosition":{"x":9708.506075336682,"y":16958.293141492002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ff06d653-f886-44f4-8b28-82bab51aa98d","savedPayload":{"position":{"x":9708.506075336682,"y":16958.293141492002},"targetPosition":{"x":9792.406959270818,"y":17274.489042520254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"72403d40-2a64-4e51-8eaf-b1a872e4474e","savedPayload":{"position":{"x":10194.036407210227,"y":17662.470452487396},"targetPosition":{"x":10503.5723768561,"y":17972.343528830246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"bbc529df-b938-47b5-8cb7-a5579c859b99","savedPayload":{"position":{"x":10468.475131408602,"y":17937.287369472455},"targetPosition":{"x":10786.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Moving Average Convergence Diveregence (MACD)","config":"{\n\"codeName\": \"Plotter-MACD\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"MACD 122609","config":"{\n\t\"codeName\": \"Module-MACD-122609\",\n \"icon\": \"histogram\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.line","project":"Superalgos","id":"013bf1cc-f8e0-4355-9690-6fb63ca3d103","savedPayload":{"position":{"x":9957.714104929728,"y":17109.742609250963},"targetPosition":{"x":9975.541315025515,"y":17460.555042366927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94440a25-a6c7-4e2d-a254-6479c643ff09","savedPayload":{"position":{"x":9975.541315025515,"y":17460.555042366927},"targetPosition":{"x":9898.508540483832,"y":17758.839933946627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.line","project":"Superalgos","id":"3c8d9416-40db-43cd-a0ae-07a9e0635ef7","savedPayload":{"position":{"x":10497.470705841275,"y":17501.817170057762},"targetPosition":{"x":10157.8657295622,"y":17593.63686169426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b988153-3df8-402b-9c04-7e74699887f7","savedPayload":{"position":{"x":10157.8657295622,"y":17593.63686169426},"targetPosition":{"x":9898.508540483832,"y":17758.839933946627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Signal Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.signal","project":"Superalgos","id":"91037bb8-b0c7-4967-9706-9ead7aaecd8b","savedPayload":{"position":{"x":10500.50523863111,"y":17836.056699398316},"targetPosition":{"x":10183.947745503468,"y":17802.861598416715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"365f7baa-2fd3-48cc-aaff-24844093e7eb","savedPayload":{"position":{"x":10183.947745503468,"y":17802.861598416715},"targetPosition":{"x":9898.508540483832,"y":17758.839933946627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Signal End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.signal","project":"Superalgos","id":"39df31ee-2e46-4a02-a8fb-8629589eb362","savedPayload":{"position":{"x":10340.075207947972,"y":18216.787188748494},"targetPosition":{"x":10119.279623149025,"y":17987.861381576582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4c82a32a-feff-405d-bc3f-036793beee1b","savedPayload":{"position":{"x":10119.279623149025,"y":17987.861381576582},"targetPosition":{"x":9898.508540483832,"y":17758.839933946627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"5522b77c-b212-4da0-b875-ec3ed641d6b9","savedPayload":{"position":{"x":9942.30455765386,"y":18394.048525363196},"targetPosition":{"x":9920.381747427436,"y":18076.11722849859},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c0cd1824-c456-4b8a-ba66-d74f5141f9d1","savedPayload":{"position":{"x":9920.381747427436,"y":18076.11722849859},"targetPosition":{"x":9898.508540483832,"y":17758.839933946627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"0f1eceef-4664-4e5f-9f78-1e16eea87c82","savedPayload":{"position":{"x":9524.023706322045,"y":18273.833424814457},"targetPosition":{"x":9711.23167850373,"y":18016.26802029575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"580f0304-770f-4fe3-aa42-8e8556096b71","savedPayload":{"position":{"x":9711.23167850373,"y":18016.26802029575},"targetPosition":{"x":9898.508540483832,"y":17758.839933946627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = (record.end - record.begin)/2 + record.begin\ny = 0","project":"Superalgos","id":"266e904b-ce67-4b66-9474-4a4b030e055c","savedPayload":{"position":{"x":9280.759500140965,"y":17912.921974261524},"targetPosition":{"x":9589.574385827185,"y":17835.8505677069},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ceed0b7c-ddfd-4395-ba25-d85353ed9b0c","savedPayload":{"position":{"x":9589.574385827185,"y":17835.8505677069},"targetPosition":{"x":9898.508540483832,"y":17758.839933946627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Histogram","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = (record.end - record.begin)/2 + record.begin\ny = record.histogram","project":"Superalgos","id":"82de3468-fabd-41ab-bb34-aa7be6f9a564","savedPayload":{"position":{"x":9326.498325692217,"y":17480.27066291669},"targetPosition":{"x":9612.413671536087,"y":17619.473120252664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"274108bd-33fb-46a0-b744-6500621a56c6","savedPayload":{"position":{"x":9612.413671536087,"y":17619.473120252664},"targetPosition":{"x":9898.508540483832,"y":17758.839933946627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f2b8d463-e10e-4db3-b2b8-ed4d4a980312","savedPayload":{"position":{"x":9898.508540483832,"y":17758.839933946627},"targetPosition":{"x":9640.170792951394,"y":17178.25159998977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line Zero","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"eb2c7353-ba05-45d2-8abf-e605899e2c25","savedPayload":{"position":{"x":8620.938952197408,"y":17898.90843188128},"targetPosition":{"x":8840.012461071921,"y":17668.132542051713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"35816f89-9448-4bd4-89fe-2d6a626c127e","savedPayload":{"position":{"x":8840.012461071921,"y":17668.132542051713},"targetPosition":{"x":9059.00107209985,"y":17437.094535832544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero Begin","project":"Superalgos","id":"53278a2d-78c8-44f4-a450-46dd8a33967c","savedPayload":{"position":{"x":8768.143635318236,"y":17566.658703870846},"targetPosition":{"x":9059.00107209985,"y":17437.094535832544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Begin","id":"c0cd1824-c456-4b8a-ba66-d74f5141f9d1"}}},{"type":"Polygon Vertex","name":"Zero End","project":"Superalgos","id":"8e67d151-e3aa-4831-8bf8-027cfc4caa17","savedPayload":{"position":{"x":8736.368572306976,"y":17473.39954243933},"targetPosition":{"x":9059.00107209985,"y":17437.094535832544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero End","id":"580f0304-770f-4fe3-aa42-8e8556096b71"}}}],"id":"7efecae7-d203-47c5-8526-bb7135cf7581","savedPayload":{"position":{"x":9059.00107209985,"y":17437.094535832544},"targetPosition":{"x":9640.170792951394,"y":17178.25159998977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Histogram","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"87cb111c-9ab9-4708-a631-ea69bbe2ce9b","savedPayload":{"position":{"x":8751.47530923552,"y":17373.348242272194},"targetPosition":{"x":9018.652141188035,"y":17235.413546263702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.histogram < 0","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","project":"Superalgos","id":"2f2bb59f-6665-45c6-ab49-dc5e3c886790","savedPayload":{"position":{"x":8382.185614819497,"y":17251.609282504676},"targetPosition":{"x":8700.342753622339,"y":17243.412099648103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5d880310-15ff-48fa-bdaa-2b5f756078ae","savedPayload":{"position":{"x":8700.342753622339,"y":17243.412099648103},"targetPosition":{"x":9018.652141188035,"y":17235.413546263702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ccbf5840-9d7d-4ff6-9072-2d6643b10017","savedPayload":{"position":{"x":9018.652141188035,"y":17235.413546263702},"targetPosition":{"x":9323.806673165946,"y":17145.09704284161},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero","project":"Superalgos","id":"6791722d-5183-48b7-b905-8c1604acae96","savedPayload":{"position":{"x":9007.17883998798,"y":17111.82530003933},"targetPosition":{"x":9323.806673165946,"y":17145.09704284161},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero","id":"ceed0b7c-ddfd-4395-ba25-d85353ed9b0c"}}},{"type":"Polygon Vertex","name":"Histogram","project":"Superalgos","id":"0ceaf5d8-b8c7-4d39-a8b3-fd58e402cf37","savedPayload":{"position":{"x":9044.076794942685,"y":16993.193542762263},"targetPosition":{"x":9323.806673165946,"y":17145.09704284161},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Histogram","id":"274108bd-33fb-46a0-b744-6500621a56c6"}}}],"id":"e0c98602-420c-4f55-bad0-e27649a79e25","savedPayload":{"position":{"x":9323.806673165946,"y":17145.09704284161},"targetPosition":{"x":9640.170792951394,"y":17178.25159998977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b027e8fb-cfc7-4658-89dd-28be20660c11","savedPayload":{"position":{"x":8506.358542621016,"y":16655.769728077197},"targetPosition":{"x":8815.797219256776,"y":16730.06762282395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"29f3ad41-e970-4817-8285-732bb172e30f","savedPayload":{"position":{"x":8815.797219256776,"y":16730.06762282395},"targetPosition":{"x":9125.416412732659,"y":16804.230426668102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Line End","project":"Superalgos","id":"6819d608-167a-4d7f-a636-cd4f5a01969a","savedPayload":{"position":{"x":8867.820469825328,"y":16617.066574746354},"targetPosition":{"x":9125.416412732659,"y":16804.230426668102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Line End","id":"0b988153-3df8-402b-9c04-7e74699887f7"}}},{"type":"Polygon Vertex","name":"Line Begin","project":"Superalgos","id":"6d212921-f546-4874-a1ca-655ac05d6587","savedPayload":{"position":{"x":8959.092847209286,"y":16532.7593341009},"targetPosition":{"x":9125.416412732659,"y":16804.230426668102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Line Begin","id":"94440a25-a6c7-4e2d-a254-6479c643ff09"}}}],"id":"c5b15661-b8ab-46b6-bd98-9c2b74ebf550","savedPayload":{"position":{"x":9125.416412732659,"y":16804.230426668102},"targetPosition":{"x":9640.170792951394,"y":17178.25159998977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Signal","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"016d7265-d869-4534-8669-f6182a573d85","savedPayload":{"position":{"x":9049.485539606074,"y":16448.988823312848},"targetPosition":{"x":9280.125850362427,"y":16668.381706119504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"257492c0-dffd-4e78-854d-90bbf6423652","savedPayload":{"position":{"x":9280.125850362427,"y":16668.381706119504},"targetPosition":{"x":9510.945552945446,"y":16887.52402908186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Signal End","project":"Superalgos","id":"7c9842d1-9d91-49d2-bdd2-2b443b94a237","savedPayload":{"position":{"x":9381.584894248517,"y":16596.662295718183},"targetPosition":{"x":9510.945552945446,"y":16887.52402908186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Signal End","id":"4c82a32a-feff-405d-bc3f-036793beee1b"}}},{"type":"Polygon Vertex","name":"Signal Begin","project":"Superalgos","id":"5f1617a3-28fe-4fbc-9e92-c466c30141a1","savedPayload":{"position":{"x":9502.913138836804,"y":16569.312143774365},"targetPosition":{"x":9510.945552945446,"y":16887.52402908186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Signal Begin","id":"365f7baa-2fd3-48cc-aaff-24844093e7eb"}}}],"id":"a783436f-fdf6-42e1-8394-633220627cf6","savedPayload":{"position":{"x":9510.945552945446,"y":16887.52402908186},"targetPosition":{"x":9640.170792951394,"y":17178.25159998977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"4c2df818-f24d-4458-84d5-eb5e50c413e5","savedPayload":{"position":{"x":9640.170792951394,"y":17178.25159998977},"targetPosition":{"x":10272.054812434122,"y":17244.639863223692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"MACD 122609","config":"{ \n\"codeName\": \"Panel-MACD-122609\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Line","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.line","project":"Superalgos","id":"52edc6fd-3d02-4f47-ad41-f2937d00ff3d","savedPayload":{"position":{"x":9420.185279012396,"y":16435.19007931649},"targetPosition":{"x":9717.083650699427,"y":16549.7123157449},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a39ffdbe-3b95-48b9-b8b6-a760f44def62","savedPayload":{"position":{"x":9717.083650699427,"y":16549.7123157449},"targetPosition":{"x":10013.822761864623,"y":16663.937402125444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Signal","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.signal","project":"Superalgos","id":"f8089efa-fde3-41df-b096-1a00df3581ae","savedPayload":{"position":{"x":9755.325468031235,"y":16082.326724034428},"targetPosition":{"x":9884.602407883849,"y":16373.115022257469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fadd439a-0ae7-473c-940c-4e0119bfa325","savedPayload":{"position":{"x":9884.602407883849,"y":16373.115022257469},"targetPosition":{"x":10013.822761864623,"y":16663.937402125444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Histogram","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.histogram","project":"Superalgos","id":"1bfbffeb-bd62-4f0e-bf46-a69d97a19af7","savedPayload":{"position":{"x":10241.865048158917,"y":16069.71256943548},"targetPosition":{"x":10127.882252185766,"y":16366.810514825127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9b0b1888-dbfb-4ec1-ae2e-3cfa9fbd51fe","savedPayload":{"position":{"x":10127.882252185766,"y":16366.810514825127},"targetPosition":{"x":10013.822761864623,"y":16663.937402125444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20625002-d334-440f-a473-88140625598f","savedPayload":{"position":{"x":10013.822761864623,"y":16663.937402125444},"targetPosition":{"x":10272.054812434122,"y":17244.639863223692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fb08cb11-7983-4106-8b03-edf70baad4a0","savedPayload":{"position":{"x":10422.615535473822,"y":17540.982057474786},"targetPosition":{"x":10786.673182942548,"y":17805.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"MACD 031016","config":"{\n\t\"codeName\": \"Module-MACD-031016\",\n \"icon\": \"histogram\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.line","project":"Superalgos","id":"b5d7cbce-d6e7-401c-b79e-121856736ff4","savedPayload":{"position":{"x":10417.710415038699,"y":16716.67975487464},"targetPosition":{"x":10225.347199637825,"y":17013.803424783433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1f9c9003-b080-49e5-8ab7-2b5b17086596","savedPayload":{"position":{"x":10225.347199637825,"y":17013.803424783433},"targetPosition":{"x":9985.87423622629,"y":17209.880842832965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.line","project":"Superalgos","id":"032146dc-0480-4dbe-a91e-ad8067da7659","savedPayload":{"position":{"x":10639.71447070195,"y":17348.27880787056},"targetPosition":{"x":10304.365184709688,"y":17218.609846433494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aecccad2-09c2-483f-ad7e-b58d463ecc31","savedPayload":{"position":{"x":10304.365184709688,"y":17218.609846433494},"targetPosition":{"x":9985.87423622629,"y":17209.880842832965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Signal Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.signal","project":"Superalgos","id":"8016a3c1-2c79-4449-8075-3be7d559e628","savedPayload":{"position":{"x":10458.36626757642,"y":17635.751388169563},"targetPosition":{"x":10222.060234036278,"y":17423.05421569705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"10c05c23-c90c-45df-8aba-a2828c90f7e1","savedPayload":{"position":{"x":10222.060234036278,"y":17423.05421569705},"targetPosition":{"x":9985.87423622629,"y":17209.880842832965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Signal End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.signal","project":"Superalgos","id":"4e570054-6ad8-4894-994f-33008806def2","savedPayload":{"position":{"x":10073.508896052517,"y":17840.13688806208},"targetPosition":{"x":10029.726550772019,"y":17525.029844713063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f3abb57c-7d3c-4803-9939-cf0bd64964d2","savedPayload":{"position":{"x":10029.726550772019,"y":17525.029844713063},"targetPosition":{"x":9985.87423622629,"y":17209.880842832965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"17fa15b8-c752-45e7-9ab0-91ceab45e38f","savedPayload":{"position":{"x":9648.160071689454,"y":17749.584159421905},"targetPosition":{"x":9816.991162191007,"y":17479.772916334117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"adbe6c72-d20f-4e31-a636-2efde1ffb8fe","savedPayload":{"position":{"x":9816.991162191007,"y":17479.772916334117},"targetPosition":{"x":9985.87423622629,"y":17209.880842832965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"11f10b6a-4de7-4c2e-8b08-ff25a0f391fe","savedPayload":{"position":{"x":9380.199887207003,"y":17406.489865024014},"targetPosition":{"x":9682.979941950569,"y":17308.20104167734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ba91f45f-78ef-4776-b0db-76626b4ab6a9","savedPayload":{"position":{"x":9682.979941950569,"y":17308.20104167734},"targetPosition":{"x":9985.87423622629,"y":17209.880842832965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero Middle","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = (record.end - record.begin)/2 + record.begin\ny = 0","project":"Superalgos","id":"d6c3344a-031a-4abe-a954-84fb5f3a348a","savedPayload":{"position":{"x":9395.42365148085,"y":16971.662390059668},"targetPosition":{"x":9690.60105023297,"y":17090.74389652627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7910022b-7f2a-42c1-a8bb-a7dbfd7173fb","savedPayload":{"position":{"x":9690.60105023297,"y":17090.74389652627},"targetPosition":{"x":9985.87423622629,"y":17209.880842832965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Histogram","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = (record.end - record.begin)/2 + record.begin\ny = record.histogram","project":"Superalgos","id":"9feab5b3-5a73-456b-a177-6a5cbbd1a542","savedPayload":{"position":{"x":9686.879465268008,"y":16648.347499758976},"targetPosition":{"x":9836.356512433591,"y":16928.997744876036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aa1b0de1-8ca0-414f-915b-b03fd6322cb7","savedPayload":{"position":{"x":9836.356512433591,"y":16928.997744876036},"targetPosition":{"x":9985.87423622629,"y":17209.880842832965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"95bb8ee2-447e-465c-aa18-fdf3cd1d9fe7","savedPayload":{"position":{"x":9985.87423622629,"y":17209.880842832965},"targetPosition":{"x":10118.26273015251,"y":16588.4171681783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line Zero","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"d3aedc59-15d6-43d5-9edb-41b17ba0b9a7","savedPayload":{"position":{"x":8869.927505770804,"y":16572.327680528164},"targetPosition":{"x":9182.86008603722,"y":16514.466597914186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c9204ab8-9aa4-461f-bfef-f16e80dfcfde","savedPayload":{"position":{"x":9182.86008603722,"y":16514.466597914186},"targetPosition":{"x":9495.883130769962,"y":16456.344143888822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero Begin","project":"Superalgos","id":"a26ab460-419c-4c64-94b3-f344d333e427","savedPayload":{"position":{"x":9184.36354357393,"y":16390.32779459711},"targetPosition":{"x":9495.883130769962,"y":16456.344143888822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Begin","id":"adbe6c72-d20f-4e31-a636-2efde1ffb8fe"}}},{"type":"Polygon Vertex","name":"Zero End","project":"Superalgos","id":"8bcffc78-e71a-4a5b-b874-98335342557a","savedPayload":{"position":{"x":9213.564317390254,"y":16296.157401963152},"targetPosition":{"x":9495.883130769962,"y":16456.344143888822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero End","id":"ba91f45f-78ef-4776-b0db-76626b4ab6a9"}}}],"id":"b8ddf2bf-44ec-455e-b9e0-3aea2fe4c03b","savedPayload":{"position":{"x":9495.883130769962,"y":16456.344143888822},"targetPosition":{"x":10118.26273015251,"y":16588.4171681783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Histogram","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"8387bbc3-546c-45d6-9bd3-efe1abdd3511","savedPayload":{"position":{"x":9284.456648232117,"y":16224.137308115842},"targetPosition":{"x":9581.834066362353,"y":16269.417491714903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.histogram < 0","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","project":"Superalgos","id":"8b8ca847-0ee9-4a50-93d8-219afad9d2bb","savedPayload":{"position":{"x":9057.284673912669,"y":15908.65543015465},"targetPosition":{"x":9319.554516645163,"y":16088.909892608695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"18c65f10-ca47-46aa-a74d-50ed3a7b3c21","savedPayload":{"position":{"x":9319.554516645163,"y":16088.909892608695},"targetPosition":{"x":9581.834066362353,"y":16269.417491714903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"836ad43b-dbbe-4145-b584-f06f92971981","savedPayload":{"position":{"x":9581.834066362353,"y":16269.417491714903},"targetPosition":{"x":9881.858696088591,"y":16375.596112050029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero Middle","project":"Superalgos","id":"d41ccd8f-9abd-4701-a00d-a0582cf90328","savedPayload":{"position":{"x":9645.314980681116,"y":16162.532037463661},"targetPosition":{"x":9881.858696088591,"y":16375.596112050029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Middle","id":"7910022b-7f2a-42c1-a8bb-a7dbfd7173fb"}}},{"type":"Polygon Vertex","name":"Histogram","project":"Superalgos","id":"5d816817-9b56-41c0-8e3d-9ee2c13d4a2d","savedPayload":{"position":{"x":9744.895984265833,"y":16088.242980353978},"targetPosition":{"x":9881.858696088591,"y":16375.596112050029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Histogram","id":"aa1b0de1-8ca0-414f-915b-b03fd6322cb7"}}}],"id":"34dac9ae-bbb4-4c68-9462-986a7102e87e","savedPayload":{"position":{"x":9881.858696088591,"y":16375.596112050029},"targetPosition":{"x":10118.26273015251,"y":16588.4171681783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"8c239919-8420-451f-8d50-282b389d47cd","savedPayload":{"position":{"x":9508.272529107755,"y":15499.143943380177},"targetPosition":{"x":9714.883793462188,"y":15741.178918331394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6c3dfcca-7012-4442-91be-64a8215832d5","savedPayload":{"position":{"x":9714.883793462188,"y":15741.178918331394},"targetPosition":{"x":9921.717885270962,"y":15983.213581580483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Line End","project":"Superalgos","id":"340835c7-b097-4be7-a0f5-76958ceb2e46","savedPayload":{"position":{"x":9823.389033548716,"y":15680.340833053628},"targetPosition":{"x":9921.717885270962,"y":15983.213581580483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Line End","id":"aecccad2-09c2-483f-ad7e-b58d463ecc31"}}},{"type":"Polygon Vertex","name":"Line Begin","project":"Superalgos","id":"c14a8ccb-9184-4483-a0c7-73d2259fa7eb","savedPayload":{"position":{"x":9946.580323056962,"y":15665.783084855913},"targetPosition":{"x":9921.717885270962,"y":15983.213581580483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Line Begin","id":"1f9c9003-b080-49e5-8ab7-2b5b17086596"}}}],"id":"bfe93326-71d6-47d7-a34f-221c188a22a9","savedPayload":{"position":{"x":9921.717885270962,"y":15983.213581580483},"targetPosition":{"x":10118.26273015251,"y":16588.4171681783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Signal","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"3536f467-d468-4b5b-974d-6835b3932a5c","savedPayload":{"position":{"x":10069.009593902487,"y":15651.093524705946},"targetPosition":{"x":10126.58204888166,"y":15964.197157945153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2b5adcee-bef1-4a94-b045-8c52317c89f7","savedPayload":{"position":{"x":10126.58204888166,"y":15964.197157945153},"targetPosition":{"x":10184.455293128394,"y":16277.206111168514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Signal End","project":"Superalgos","id":"c7c53102-0db0-44d5-935f-b4609ce0ad1a","savedPayload":{"position":{"x":10250.622088218766,"y":15965.814010155726},"targetPosition":{"x":10184.455293128394,"y":16277.206111168514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Signal End","id":"f3abb57c-7d3c-4803-9939-cf0bd64964d2"}}},{"type":"Polygon Vertex","name":"Signal Begin","project":"Superalgos","id":"f6b5228a-83bf-42ee-b652-b7b71674e710","savedPayload":{"position":{"x":10364.854011009444,"y":16015.001176718772},"targetPosition":{"x":10184.455293128394,"y":16277.206111168514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Signal Begin","id":"10c05c23-c90c-45df-8aba-a2828c90f7e1"}}}],"id":"004e01d2-9a9b-4cec-935d-fd5427397838","savedPayload":{"position":{"x":10184.455293128394,"y":16277.206111168514},"targetPosition":{"x":10118.26273015251,"y":16588.4171681783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"cff04172-4157-400a-ba23-98428f3f8505","savedPayload":{"position":{"x":10118.26273015251,"y":16588.4171681783},"targetPosition":{"x":10590.396862870522,"y":17013.587981503046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"MACD 031016","config":"{ \n\"codeName\": \"Panel-MACD-031016\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Line","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.line","project":"Superalgos","id":"30e7b23c-7d15-4eb2-971b-442ef569578d","savedPayload":{"position":{"x":10376.995356607316,"y":15857.864844503649},"targetPosition":{"x":10549.814761147623,"y":16125.074891032273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fc80e234-9a51-434b-9a75-776ac31fb892","savedPayload":{"position":{"x":10549.814761147623,"y":16125.074891032273},"targetPosition":{"x":10722.679178935265,"y":16391.95401359322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Signal","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.signal","project":"Superalgos","id":"e4b2dfeb-834f-4daf-8c65-5f10885d4dfa","savedPayload":{"position":{"x":10855.138739824917,"y":15769.37915228869},"targetPosition":{"x":10788.942651854934,"y":16080.668310625391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fe1b0c2a-0a40-42b7-a275-dfe9d14f0a7c","savedPayload":{"position":{"x":10788.942651854934,"y":16080.668310625391},"targetPosition":{"x":10722.679178935265,"y":16391.95401359322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Histogram","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.histogram","project":"Superalgos","id":"3698be44-3c02-481a-94fa-d3b759c3fd16","savedPayload":{"position":{"x":11256.49457419772,"y":16045.38553950921},"targetPosition":{"x":10989.627064560358,"y":16218.679963849212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"251d6cd3-674e-4269-86ac-4ef977924055","savedPayload":{"position":{"x":10989.627064560358,"y":16218.679963849212},"targetPosition":{"x":10722.679178935265,"y":16391.95401359322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d05c86b5-c035-4dde-967b-fd9ec3f33d8d","savedPayload":{"position":{"x":10722.679178935265,"y":16391.95401359322},"targetPosition":{"x":10590.396862870522,"y":17013.587981503046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"03816d0f-361f-4c6c-8f85-0bf2dfff1c21","savedPayload":{"position":{"x":10647.615535473822,"y":17377.50998867358},"targetPosition":{"x":10786.673182942548,"y":17805.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"MACD 081709","config":"{\n\t\"codeName\": \"Module-MACD-081709\",\n \"icon\": \"histogram\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.line","project":"Superalgos","id":"9a6467e7-6106-454b-b7ef-e7d3ef9bf6ff","savedPayload":{"position":{"x":10961.806000148903,"y":16623.36891426989},"targetPosition":{"x":10651.163693714614,"y":16772.536990534758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6d3d1eb7-854c-48c1-9f53-9a81d3d40d6a","savedPayload":{"position":{"x":10651.163693714614,"y":16772.536990534758},"targetPosition":{"x":10379.037326309466,"y":16817.086630812868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.line","project":"Superalgos","id":"0820faf8-ca0c-4188-9af8-ebd57e41dfa3","savedPayload":{"position":{"x":10746.790045660477,"y":17323.30996581473},"targetPosition":{"x":10584.884493914462,"y":17012.17008458705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"075592ad-acd5-4389-ac67-5cc0cb03b92a","savedPayload":{"position":{"x":10584.884493914462,"y":17012.17008458705},"targetPosition":{"x":10379.037326309466,"y":16817.086630812868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Signal Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.signal","project":"Superalgos","id":"eba62e43-3d37-46e0-aa8e-19f394d28745","savedPayload":{"position":{"x":10510.733391520534,"y":17439.481261390105},"targetPosition":{"x":10444.830218209408,"y":17128.381327580235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96975ec0-b8cd-41d9-90b1-4b3a7acdb4c2","savedPayload":{"position":{"x":10444.830218209408,"y":17128.381327580235},"targetPosition":{"x":10379.037326309466,"y":16817.086630812868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Signal End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.signal","project":"Superalgos","id":"48465d15-62ec-4961-9b7c-b0f90cb6b661","savedPayload":{"position":{"x":10079.463085824464,"y":17378.403549108403},"targetPosition":{"x":10229.236053801815,"y":17097.48922084501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d6442860-3c2e-43f4-97b2-d4dfff64c72f","savedPayload":{"position":{"x":10229.236053801815,"y":17097.48922084501},"targetPosition":{"x":10379.037326309466,"y":16817.086630812868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"c83ddb1a-8e52-4163-b80e-3868cf6529a0","savedPayload":{"position":{"x":9788.484268842178,"y":17055.144142745557},"targetPosition":{"x":10083.692464289124,"y":16936.087963302227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2ae7ce7b-794a-454e-8260-1868d6b2909e","savedPayload":{"position":{"x":10083.692464289124,"y":16936.087963302227},"targetPosition":{"x":10379.037326309466,"y":16817.086630812868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"7e353304-2d0b-4718-8cfa-cc6a925ad6a5","savedPayload":{"position":{"x":9773.394033619148,"y":16620.431705514115},"targetPosition":{"x":10076.152886092517,"y":16718.72484064233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6fc15982-383b-4a39-8c6e-5acbf13ac87c","savedPayload":{"position":{"x":10076.152886092517,"y":16718.72484064233},"targetPosition":{"x":10379.037326309466,"y":16817.086630812868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = (record.end - record.begin)/2 + record.begin\ny = 0","project":"Superalgos","id":"06a7bc4a-17b4-4aef-bfa0-c949e5c53484","savedPayload":{"position":{"x":10041.440174410502,"y":16277.391555180806},"targetPosition":{"x":10210.224564864635,"y":16547.17544117167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"00562b76-47c9-49fd-b8f2-902f22484df5","savedPayload":{"position":{"x":10210.224564864635,"y":16547.17544117167},"targetPosition":{"x":10379.037326309466,"y":16817.086630812868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Histogram","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = (record.end - record.begin)/2 + record.begin\ny = record.histogram","project":"Superalgos","id":"65c9be94-3e68-4aba-9b52-e7b8848064ea","savedPayload":{"position":{"x":10466.933988332941,"y":16187.094001424255},"targetPosition":{"x":10423.047302716346,"y":16501.968859737834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f4fe4dc0-d4ab-4812-bd09-96953df3813a","savedPayload":{"position":{"x":10423.047302716346,"y":16501.968859737834},"targetPosition":{"x":10379.037326309466,"y":16817.086630812868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"247d8d0e-3330-4aa0-9e5e-0f3823bd7258","savedPayload":{"position":{"x":10379.037326309466,"y":16817.086630812868},"targetPosition":{"x":10851.522603571259,"y":16392.23568677424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line Zero","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"a75405f5-da8a-487f-871c-6e2b7e800c42","savedPayload":{"position":{"x":9851.030618638622,"y":15645.694690497825},"targetPosition":{"x":10138.250449516312,"y":15782.687925730146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2bb22bfc-5bc6-46bd-b780-4269bd800d69","savedPayload":{"position":{"x":10138.250449516312,"y":15782.687925730146},"targetPosition":{"x":10425.700558142646,"y":15919.523623765079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero Begin","project":"Superalgos","id":"0ead2c7c-b1e2-4297-86c4-f1515df7f077","savedPayload":{"position":{"x":10212.551740702656,"y":15682.98043443546},"targetPosition":{"x":10425.700558142646,"y":15919.523623765079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Begin","id":"2ae7ce7b-794a-454e-8260-1868d6b2909e"}}},{"type":"Polygon Vertex","name":"Zero End","project":"Superalgos","id":"5da8d9fb-ca1e-429e-87e9-605b2493e037","savedPayload":{"position":{"x":10291.531524799615,"y":15623.950379816619},"targetPosition":{"x":10425.700558142646,"y":15919.523623765079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero End","id":"6fc15982-383b-4a39-8c6e-5acbf13ac87c"}}}],"id":"19fac3f2-d743-4b88-b051-294f37589fe5","savedPayload":{"position":{"x":10425.700558142646,"y":15919.523623765079},"targetPosition":{"x":10851.522603571259,"y":16392.23568677424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Histogram","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"6383ddc1-5bd7-4cd2-83ce-b7ffe7dbabff","savedPayload":{"position":{"x":10391.288088624562,"y":15607.338607491583},"targetPosition":{"x":10605.181245031465,"y":15818.787424464497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.histogram < 0","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","project":"Superalgos","id":"6ce4860c-7dc9-4fa0-9ac1-e768b669141b","savedPayload":{"position":{"x":10393.016200261703,"y":15218.53997238088},"targetPosition":{"x":10499.167622204339,"y":15518.559533154277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"038a1be4-9af1-4942-a4db-258ccdbce08c","savedPayload":{"position":{"x":10499.167622204339,"y":15518.559533154277},"targetPosition":{"x":10605.181245031465,"y":15818.787424464497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7fc825fc-7db0-47dc-bbdb-14d269d1fcb4","savedPayload":{"position":{"x":10605.181245031465,"y":15818.787424464497},"targetPosition":{"x":10785.424737929636,"y":16081.069269418978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero","project":"Superalgos","id":"d48a6d8f-eab0-49f1-9b7f-1fc503cd1df9","savedPayload":{"position":{"x":10719.367272258598,"y":15769.630900073573},"targetPosition":{"x":10785.424737929636,"y":16081.069269418978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero","id":"00562b76-47c9-49fd-b8f2-902f22484df5"}}},{"type":"Polygon Vertex","name":"Histogram","project":"Superalgos","id":"6892eda6-1689-49a2-8145-9ffd38d4bc3d","savedPayload":{"position":{"x":10843.398098844482,"y":15768.06220805717},"targetPosition":{"x":10785.424737929636,"y":16081.069269418978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Histogram","id":"f4fe4dc0-d4ab-4812-bd09-96953df3813a"}}}],"id":"68162ec3-a643-4567-818b-83362fc9e843","savedPayload":{"position":{"x":10785.424737929636,"y":16081.069269418978},"targetPosition":{"x":10851.522603571259,"y":16392.23568677424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b93e8f5b-41db-44e6-8d00-b1aac544377a","savedPayload":{"position":{"x":10998.307829784379,"y":15152.354032654483},"targetPosition":{"x":11023.118910181049,"y":15469.63955880657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"541af95f-c876-4ba2-aaef-56e43a140ffd","savedPayload":{"position":{"x":11023.118910181049,"y":15469.63955880657},"targetPosition":{"x":11048.112794692297,"y":15787.054584289517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Line End","project":"Superalgos","id":"a2c0de4e-cf82-4b65-a591-a364e6c3f9e8","savedPayload":{"position":{"x":11146.464020205982,"y":15484.200459675476},"targetPosition":{"x":11048.112794692297,"y":15787.054584289517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Line End","id":"075592ad-acd5-4389-ac67-5cc0cb03b92a"}}},{"type":"Polygon Vertex","name":"Line Begin","project":"Superalgos","id":"1c1fd64b-34ee-447c-b0d3-76ca645588c6","savedPayload":{"position":{"x":11254.845466355506,"y":15544.951439620347},"targetPosition":{"x":11048.112794692297,"y":15787.054584289517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Line Begin","id":"6d3d1eb7-854c-48c1-9f53-9a81d3d40d6a"}}}],"id":"9e96b118-c85c-4707-8063-a2651ae44740","savedPayload":{"position":{"x":11048.112794692297,"y":15787.054584289517},"targetPosition":{"x":10851.522603571259,"y":16392.23568677424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Signal","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"c1d9c98e-657c-4895-a557-bd2074056db5","savedPayload":{"position":{"x":11362.42209198275,"y":15605.008847220346},"targetPosition":{"x":11225.082909629502,"y":15892.17973030646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"64c671b3-60a7-4fc0-b7ba-a597fce77d38","savedPayload":{"position":{"x":11225.082909629502,"y":15892.17973030646},"targetPosition":{"x":11088.036376014741,"y":16179.449870746495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Signal End","project":"Superalgos","id":"faff0d49-252e-45e3-a42d-fa041b77dd34","savedPayload":{"position":{"x":11324.661809150988,"y":15966.516648798628},"targetPosition":{"x":11088.036376014741,"y":16179.449870746495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Signal End","id":"d6442860-3c2e-43f4-97b2-d4dfff64c72f"}}},{"type":"Polygon Vertex","name":"Signal Begin","project":"Superalgos","id":"0469d29c-4fd7-4ab3-a5fc-433cd33e82c8","savedPayload":{"position":{"x":11388.166582967486,"y":16073.448957209835},"targetPosition":{"x":11088.036376014741,"y":16179.449870746495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Signal Begin","id":"96975ec0-b8cd-41d9-90b1-4b3a7acdb4c2"}}}],"id":"d3737a2f-c760-4373-a2ed-bc3c321a87b6","savedPayload":{"position":{"x":11088.036376014741,"y":16179.449870746495},"targetPosition":{"x":10851.522603571259,"y":16392.23568677424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"e89f491f-20db-434b-810f-6c93c0096d3f","savedPayload":{"position":{"x":10851.522603571259,"y":16392.23568677424},"targetPosition":{"x":10983.525315335319,"y":17013.773622323035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"MACD 081709","config":"{ \n\"codeName\": \"Panel-MACD-081709\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Line","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.line","project":"Superalgos","id":"10eb7ea2-b8dd-4ddd-b200-71d0ecea3c6e","savedPayload":{"position":{"x":11489.955953609857,"y":15953.227693199737},"targetPosition":{"x":11472.840130549292,"y":16271.038514026633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1e07f765-13e9-49f2-8f76-90cb6e4466af","savedPayload":{"position":{"x":11472.840130549292,"y":16271.038514026633},"targetPosition":{"x":11455.960091456545,"y":16588.53830386705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Signal","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.signal","project":"Superalgos","id":"f2dcbee4-39a8-42aa-8fdd-8e4c3addb6d2","savedPayload":{"position":{"x":11929.015147279933,"y":16162.951797813621},"targetPosition":{"x":11692.465205281853,"y":16375.816402202843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"95d59325-db92-413c-a74a-5a12fea61b82","savedPayload":{"position":{"x":11692.465205281853,"y":16375.816402202843},"targetPosition":{"x":11455.960091456545,"y":16588.53830386705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Histogram","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.histogram","project":"Superalgos","id":"387de792-7d66-46a8-b11d-a96403f09dfe","savedPayload":{"position":{"x":12091.635523631438,"y":16621.661475079938},"targetPosition":{"x":11773.841885808622,"y":16605.143108986827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9d00b3d7-779a-452f-b800-6d2949df7a03","savedPayload":{"position":{"x":11773.841885808622,"y":16605.143108986827},"targetPosition":{"x":11455.960091456545,"y":16588.53830386705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a858c3e2-ad02-4ee4-aea3-fd60ab8fe9d7","savedPayload":{"position":{"x":11455.960091456545,"y":16588.53830386705},"targetPosition":{"x":10983.525315335319,"y":17013.773622323035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"43695164-d8aa-40d8-bbf4-ee8cbbdec3f0","savedPayload":{"position":{"x":10925.730830411274,"y":17377.50998867358},"targetPosition":{"x":10786.673182942548,"y":17805.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"MACD 245209","config":"{\n\t\"codeName\": \"Module-MACD-245209\",\n \"icon\": \"histogram\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.line","project":"Superalgos","id":"48f415e0-0abb-4867-a7d7-454bc5450e6b","savedPayload":{"position":{"x":11527.566202051075,"y":16988.257361443488},"targetPosition":{"x":11187.97659116958,"y":16896.26015941122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"36adae0b-9c21-40b9-abfb-e511d72f2b5d","savedPayload":{"position":{"x":11187.97659116958,"y":16896.26015941122},"targetPosition":{"x":10928.052016349226,"y":16731.06557102472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.line","project":"Superalgos","id":"1e3e4460-9762-470f-9cbc-0efd86f722da","savedPayload":{"position":{"x":10995.60039436715,"y":17394.485473159744},"targetPosition":{"x":11016.127647747471,"y":17036.08405056848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6f0173db-8cbd-4530-a30d-ebe66906c578","savedPayload":{"position":{"x":11016.127647747471,"y":17036.08405056848},"targetPosition":{"x":10928.052016349226,"y":16731.06557102472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Signal Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.signal","project":"Superalgos","id":"8f397084-7cae-4586-b410-c5970593562e","savedPayload":{"position":{"x":10668.863692403414,"y":17311.950649193543},"targetPosition":{"x":10798.348073555717,"y":17021.577072075786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0cc9c494-c307-4bfe-9baf-8ed796fb602d","savedPayload":{"position":{"x":10798.348073555717,"y":17021.577072075786},"targetPosition":{"x":10928.052016349226,"y":16731.06557102472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Signal End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.signal","project":"Superalgos","id":"dd38ae56-a770-4332-899e-6f8239fa815b","savedPayload":{"position":{"x":10355.557251055172,"y":17008.63499924957},"targetPosition":{"x":10641.908135836231,"y":16869.670694744756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cd80c183-d19f-48a6-b7fc-a69b1b794b2a","savedPayload":{"position":{"x":10641.908135836231,"y":16869.670694744756},"targetPosition":{"x":10928.052016349226,"y":16731.06557102472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"4939828f-043d-4764-be8b-eafcd061b524","savedPayload":{"position":{"x":10310.130373733806,"y":16576.49449741801},"targetPosition":{"x":10619.059781347718,"y":16653.690428674858},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"957cc3a3-ac48-4a0e-b7b3-b0ad7f529cf4","savedPayload":{"position":{"x":10619.059781347718,"y":16653.690428674858},"targetPosition":{"x":10928.052016349226,"y":16731.06557102472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"eb1dcee7-230c-4970-9326-0359d3e67857","savedPayload":{"position":{"x":10553.716258093187,"y":16215.77268773086},"targetPosition":{"x":10740.85036267681,"y":16473.327308687745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"749f8342-4448-48d8-b663-9840ad6295c2","savedPayload":{"position":{"x":10740.85036267681,"y":16473.327308687745},"targetPosition":{"x":10928.052016349226,"y":16731.06557102472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = (record.end - record.begin)/2 + record.begin\ny = 0","project":"Superalgos","id":"7de51d6d-a086-4c6f-b801-5f13b37c9feb","savedPayload":{"position":{"x":10971.786274958671,"y":16095.833866146975},"targetPosition":{"x":10949.94595157287,"y":16413.364089487826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2d60df1-8bd2-4371-9ce1-60a328cc80d3","savedPayload":{"position":{"x":10949.94595157287,"y":16413.364089487826},"targetPosition":{"x":10928.052016349226,"y":16731.06557102472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Histogram","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = (record.end - record.begin)/2 + record.begin\ny = record.histogram","project":"Superalgos","id":"b8f5d987-aa7a-415e-ac1e-e36a3afa7db1","savedPayload":{"position":{"x":11369.340204801716,"y":16273.125550099026},"targetPosition":{"x":11148.843177943294,"y":16502.009695748566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4292d954-54aa-45e3-acb4-a52622471108","savedPayload":{"position":{"x":11148.843177943294,"y":16502.009695748566},"targetPosition":{"x":10928.052016349226,"y":16731.06557102472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fd10b89d-abb6-4a47-b82b-1efc5196c46b","savedPayload":{"position":{"x":10928.052016349226,"y":16731.06557102472},"targetPosition":{"x":11559.796772737882,"y":16665.21408201984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Line Zero","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"c93101ad-3f34-469d-8141-6bbb810cf79c","savedPayload":{"position":{"x":11189.316923785245,"y":15473.180487504036},"targetPosition":{"x":11341.058552222428,"y":15752.87793679334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c4c38f4b-d3a5-4a1c-8862-ebd87269fe24","savedPayload":{"position":{"x":11341.058552222428,"y":15752.87793679334},"targetPosition":{"x":11493.189257387989,"y":16032.579523066255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero Begin","project":"Superalgos","id":"0c3f9cb5-0866-4694-97e4-c195f216059e","savedPayload":{"position":{"x":11459.823198293445,"y":15715.81629169433},"targetPosition":{"x":11493.189257387989,"y":16032.579523066255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Begin","id":"957cc3a3-ac48-4a0e-b7b3-b0ad7f529cf4"}}},{"type":"Polygon Vertex","name":"Zero End","project":"Superalgos","id":"a6fba16b-f5a7-4c45-8348-28bb07430bad","savedPayload":{"position":{"x":11558.224025742591,"y":15714.374426658893},"targetPosition":{"x":11493.189257387989,"y":16032.579523066255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero End","id":"749f8342-4448-48d8-b663-9840ad6295c2"}}}],"id":"579cce76-9e03-43a3-b252-9d62ba988ed3","savedPayload":{"position":{"x":11493.189257387989,"y":16032.579523066255},"targetPosition":{"x":11559.796772737882,"y":16665.21408201984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Histogram","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"83f50f64-2a7f-49b1-9649-dd23f86374b1","savedPayload":{"position":{"x":11648.597979919956,"y":15759.707670817716},"targetPosition":{"x":11697.168394015116,"y":16056.459127790786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.histogram < 0","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","project":"Superalgos","id":"de351dae-2678-4a8a-a5cc-e2a42418f558","savedPayload":{"position":{"x":11878.107389423818,"y":15446.020476562011},"targetPosition":{"x":11787.798109830303,"y":15751.182955482345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6d9e5ad0-dd68-4192-ad7f-9986f34050af","savedPayload":{"position":{"x":11787.798109830303,"y":15751.182955482345},"targetPosition":{"x":11697.168394015116,"y":16056.459127790786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0c056547-f273-4157-8c55-ca13da5adeb5","savedPayload":{"position":{"x":11697.168394015116,"y":16056.459127790786},"targetPosition":{"x":11689.01084256476,"y":16374.636064965867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero","project":"Superalgos","id":"02e0cf18-f0d8-4c59-ae6a-37a1e516b67a","savedPayload":{"position":{"x":11818.502764725115,"y":16083.766964505896},"targetPosition":{"x":11689.01084256476,"y":16374.636064965867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero","id":"d2d60df1-8bd2-4371-9ce1-60a328cc80d3"}}},{"type":"Polygon Vertex","name":"Histogram","project":"Superalgos","id":"e4c545cd-400d-4616-bf3a-f24a1fd24794","savedPayload":{"position":{"x":11919.931511612056,"y":16155.54406407501},"targetPosition":{"x":11689.01084256476,"y":16374.636064965867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Histogram","id":"4292d954-54aa-45e3-acb4-a52622471108"}}}],"id":"83a0d615-06f0-4daf-a684-211e42345717","savedPayload":{"position":{"x":11689.01084256476,"y":16374.636064965867},"targetPosition":{"x":11559.796772737882,"y":16665.21408201984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"cd8d0c68-f06e-43be-9c1c-d4d2b79fc680","savedPayload":{"position":{"x":12406.96650226567,"y":15748.416268304361},"targetPosition":{"x":12240.679403992275,"y":16019.720652485037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"dec1dd79-8e14-4104-86e1-ab9b5919055c","savedPayload":{"position":{"x":12240.679403992275,"y":16019.720652485037},"targetPosition":{"x":12074.495012908723,"y":16291.312301245314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Line End","project":"Superalgos","id":"8a24dd4a-0202-40ea-95d6-127abe4893bf","savedPayload":{"position":{"x":12332.148214265137,"y":16104.143718342952},"targetPosition":{"x":12074.495012908723,"y":16291.312301245314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Line End","id":"6f0173db-8cbd-4530-a30d-ebe66906c578"}}},{"type":"Polygon Vertex","name":"Line Begin","project":"Superalgos","id":"11bd728e-9c76-4cd3-97e5-27965f60bd9d","savedPayload":{"position":{"x":12384.117021272403,"y":16217.02100487515},"targetPosition":{"x":12074.495012908723,"y":16291.312301245314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Line Begin","id":"36adae0b-9c21-40b9-abfb-e511d72f2b5d"}}}],"id":"c5dff6f5-ceea-4cf7-8d51-3f2bd9423d10","savedPayload":{"position":{"x":12074.495012908723,"y":16291.312301245314},"targetPosition":{"x":11559.796772737882,"y":16665.21408201984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Signal","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"263c0cb6-735f-48ae-a2fc-9835403317dc","savedPayload":{"position":{"x":12435.955787338578,"y":16329.02354030653},"targetPosition":{"x":12155.93618561629,"y":16480.452285749743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"630155a8-17d7-414a-801b-933cff540e61","savedPayload":{"position":{"x":12155.93618561629,"y":16480.452285749743},"targetPosition":{"x":11876.177152094388,"y":16632.22923013628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Signal End","project":"Superalgos","id":"9d1ae188-aa8e-4c73-a417-31c3968a9e6f","savedPayload":{"position":{"x":12192.806210324929,"y":16599.1220541292},"targetPosition":{"x":11876.177152094388,"y":16632.22923013628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Signal End","id":"cd80c183-d19f-48a6-b7fc-a69b1b794b2a"}}},{"type":"Polygon Vertex","name":"Signal Begin","project":"Superalgos","id":"9ef44a8e-4e95-4e21-a7f7-0950844c58f3","savedPayload":{"position":{"x":12181.283374442784,"y":16722.752286636987},"targetPosition":{"x":11876.177152094388,"y":16632.22923013628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Signal Begin","id":"0cc9c494-c307-4bfe-9baf-8ed796fb602d"}}}],"id":"1c32305b-ed73-433e-af91-5c221e1c8254","savedPayload":{"position":{"x":11876.177152094388,"y":16632.22923013628},"targetPosition":{"x":11559.796772737882,"y":16665.21408201984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"b1a0e87f-af0a-4354-a9a3-74ee5a667593","savedPayload":{"position":{"x":11559.796772737882,"y":16665.21408201984},"targetPosition":{"x":11301.616106872847,"y":17245.258532479864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"MACD 245209","config":"{ \n\"codeName\": \"Panel-MACD-245209\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Line","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.line","project":"Superalgos","id":"7449cbcf-82e3-44a9-b623-8ce89d3d0a90","savedPayload":{"position":{"x":12334.468931273557,"y":16685.65117262279},"targetPosition":{"x":12133.65985686408,"y":16932.49011791376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"03f0b78f-d66e-43d9-93fb-28ec2a0c78ad","savedPayload":{"position":{"x":12133.65985686408,"y":16932.49011791376},"targetPosition":{"x":11933.312695724559,"y":17179.250193664397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Signal","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.signal","project":"Superalgos","id":"d32b0179-d71f-4cc4-a53e-f65d850da700","savedPayload":{"position":{"x":12566.350356003008,"y":17113.27030504329},"targetPosition":{"x":12249.835584409335,"y":17146.30342672009},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"22cd37eb-620d-4fc6-ba86-e09d58614393","savedPayload":{"position":{"x":12249.835584409335,"y":17146.30342672009},"targetPosition":{"x":11933.312695724559,"y":17179.250193664397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Histogram","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.histogram","project":"Superalgos","id":"bddd9afa-785d-4791-8d87-e2c984a74f12","savedPayload":{"position":{"x":12427.85889367602,"y":17579.640312315543},"targetPosition":{"x":12180.577222403954,"y":17379.50320892032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bfa738fb-7d49-4539-97be-707922adde3e","savedPayload":{"position":{"x":12180.577222403954,"y":17379.50320892032},"targetPosition":{"x":11933.312695724559,"y":17179.250193664397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e864cbe9-0b24-45c0-b08b-85c2486bef8d","savedPayload":{"position":{"x":11933.312695724559,"y":17179.250193664397},"targetPosition":{"x":11301.616106872847,"y":17245.258532479864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2fe60a0e-dd3a-4bb8-a321-4742389ab930","savedPayload":{"position":{"x":11150.730830411274,"y":17540.982057474786},"targetPosition":{"x":10786.673182942548,"y":17805.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"24146ce7-bc0d-461a-8a43-0d2bd3059886","savedPayload":{"position":{"x":10786.673182942548,"y":17805.4854210064},"targetPosition":{"x":10786.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Exponential Moving Average (EMA)","config":"{\n\"codeName\": \"Plotter EMA\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"EMA Popular","config":"{\n\t\"codeName\": \"EMA-Popular\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"EMA 20 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema20","project":"Superalgos","id":"7bf83ec0-5a84-4a81-a111-19d913e12135","savedPayload":{"position":{"x":10997.442917519547,"y":16939.298078423195},"targetPosition":{"x":10833.26003087962,"y":16998.839430783417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6e1ff74e-36ba-460c-9f78-c8ee0b5e0837","savedPayload":{"position":{"x":10833.26003087962,"y":16998.839430783417},"targetPosition":{"x":10591.253089301088,"y":17071.853866278092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 20 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema20","project":"Superalgos","id":"12164218-7531-4063-bbd3-32855e7f7847","savedPayload":{"position":{"x":11009.291245785298,"y":17223.885132142426},"targetPosition":{"x":10844.648689210582,"y":17163.90986893795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"83f1d130-42bd-45ae-9078-ed3f825531bb","savedPayload":{"position":{"x":10844.648689210582,"y":17163.90986893795},"targetPosition":{"x":10591.253089301088,"y":17071.853866278092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 50 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema50","project":"Superalgos","id":"580ad5c4-aee7-4af2-b85d-0ef86d020823","savedPayload":{"position":{"x":10812.965675905554,"y":17456.10430533299},"targetPosition":{"x":10725.798157020261,"y":17305.266969811753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7084c0a2-8874-46a7-b240-d9605a7baf49","savedPayload":{"position":{"x":10725.798157020261,"y":17305.266969811753},"targetPosition":{"x":10591.253089301088,"y":17071.853866278092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 50 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema50","project":"Superalgos","id":"1e7a4d05-3daf-4d0a-97ff-b53e35eab2aa","savedPayload":{"position":{"x":10514.092058803766,"y":17507.95177129594},"targetPosition":{"x":10544.547766743206,"y":17336.1590706016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3861b379-3e51-43e2-b607-e3b7fba16a34","savedPayload":{"position":{"x":10544.547766743206,"y":17336.1590706016},"targetPosition":{"x":10591.253089301088,"y":17071.853866278092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 100 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema100","project":"Superalgos","id":"b50c3599-e7bd-45ef-b348-4ddf85460bbf","savedPayload":{"position":{"x":10251.91444938253,"y":17356.627071153962},"targetPosition":{"x":10386.154867552363,"y":17243.9435456885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d3b1e9cb-8098-4e62-94ea-4e89852b4f6a","savedPayload":{"position":{"x":10386.154867552363,"y":17243.9435456885},"targetPosition":{"x":10591.253089301088,"y":17071.853866278092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 100 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema100","project":"Superalgos","id":"f5cf8bb1-98bf-4c38-9e7c-f31678a656e4","savedPayload":{"position":{"x":10148.062524311434,"y":17071.827765710783},"targetPosition":{"x":10323.189750186102,"y":17071.833641942667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32ca337a-699d-4c2f-9b6a-73d9a4481e78","savedPayload":{"position":{"x":10323.189750186102,"y":17071.833641942667},"targetPosition":{"x":10591.253089301088,"y":17071.853866278092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 200 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema200","project":"Superalgos","id":"451d4c20-a9ad-4b8d-a116-fae9406ee356","savedPayload":{"position":{"x":10251.662680639569,"y":16787.250667349752},"targetPosition":{"x":10385.390435735815,"y":16899.240667929836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"33d1fe7c-ff86-440a-8b42-0de9c296a632","savedPayload":{"position":{"x":10385.390435735815,"y":16899.240667929836},"targetPosition":{"x":10591.253089301088,"y":17071.853866278092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 200 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema200","project":"Superalgos","id":"24e42cf3-2dc8-4257-a511-7dc52dc6f060","savedPayload":{"position":{"x":10514.039093269308,"y":16634.572368739726},"targetPosition":{"x":10544.562568711168,"y":16807.167530836618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"87e2a3ab-afc2-44cb-b2ca-03a715a4d673","savedPayload":{"position":{"x":10544.562568711168,"y":16807.167530836618},"targetPosition":{"x":10591.253089301088,"y":17071.853866278092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dd70bea3-9a52-4b2b-a364-31917b08d98d","savedPayload":{"position":{"x":10429.871234476494,"y":17487.287369472455},"targetPosition":{"x":10767.371234476494,"y":16902.72022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"d468c2f1-2586-4fe4-aa0c-fc3737d992f5","savedPayload":{"position":{"x":10140.475019985584,"y":16689.91763204369},"targetPosition":{"x":10307.781340342415,"y":16711.943926980824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"23236076-e29a-451e-8c95-e3812064279c","savedPayload":{"position":{"x":10307.781340342415,"y":16711.943926980824},"targetPosition":{"x":10475.087660699246,"y":16733.97022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 20 Begin","project":"Superalgos","id":"5f877b66-2ca6-4a8f-967e-70948cefc9ea","savedPayload":{"position":{"x":10328.945873810622,"y":16649.59522191796},"targetPosition":{"x":10475.087660699246,"y":16733.97022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 20 Begin","id":"6e1ff74e-36ba-460c-9f78-c8ee0b5e0837"}}},{"type":"Polygon Vertex","name":"EMA 20 End","project":"Superalgos","id":"d5971215-2792-4415-bfea-2e4b2b5b98fe","savedPayload":{"position":{"x":10372.359169554024,"y":16600.091845743813},"targetPosition":{"x":10475.087660699246,"y":16733.97022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 20 End","id":"83f1d130-42bd-45ae-9078-ed3f825531bb"}}}],"id":"17ca2f43-9ddf-47f8-9929-e4612b00dd4f","savedPayload":{"position":{"x":10475.087660699246,"y":16733.97022191796},"targetPosition":{"x":10767.371234476494,"y":16902.72022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 50","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"330fba24-ff59-48d2-a297-b4e6903efc3d","savedPayload":{"position":{"x":10330.864482128203,"y":16404.979665850267},"targetPosition":{"x":10464.742858302348,"y":16507.70815699549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"0806f6fe-730c-4fde-b730-dcdf31825733","savedPayload":{"position":{"x":10464.742858302348,"y":16507.70815699549},"targetPosition":{"x":10598.621234476494,"y":16610.436648140712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 50 End","project":"Superalgos","id":"b00cf575-af36-4653-97ec-441912af5bb8","savedPayload":{"position":{"x":10514.246234476494,"y":16464.29486125209},"targetPosition":{"x":10598.621234476494,"y":16610.436648140712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 50 End","id":"3861b379-3e51-43e2-b607-e3b7fba16a34"}}},{"type":"Polygon Vertex","name":"EMA 50 Begin","project":"Superalgos","id":"da71a6f7-2917-4c07-bd77-dc1b0334c5ec","savedPayload":{"position":{"x":10576.59493953936,"y":16443.13032778388},"targetPosition":{"x":10598.621234476494,"y":16610.436648140712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 50 Begin","id":"7084c0a2-8874-46a7-b240-d9605a7baf49"}}}],"id":"36482493-d7f7-4a41-9588-a348e3204025","savedPayload":{"position":{"x":10598.621234476494,"y":16610.436648140712},"targetPosition":{"x":10767.371234476494,"y":16902.72022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 100","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"278d84a3-2d10-4db3-90cc-b38f6af88ecf","savedPayload":{"position":{"x":10638.215576053277,"y":16253.4108796954},"targetPosition":{"x":10702.793405264885,"y":16409.31555080668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"612138e2-6896-4f8f-956a-d5bf1b8c043a","savedPayload":{"position":{"x":10702.793405264885,"y":16409.31555080668},"targetPosition":{"x":10767.371234476494,"y":16565.22022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 100 Begin","project":"Superalgos","id":"fc01c5ca-4323-4a71-9d83-1f288b80e8ed","savedPayload":{"position":{"x":10767.371234476494,"y":16396.47022191796},"targetPosition":{"x":10767.371234476494,"y":16565.22022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 100 Begin","id":"d3b1e9cb-8098-4e62-94ea-4e89852b4f6a"}}},{"type":"Polygon Vertex","name":"EMA 100 End","project":"Superalgos","id":"fbd76a9e-5a2e-4cb8-a2ed-35d2616d9a2e","savedPayload":{"position":{"x":10831.949063688102,"y":16409.31555080668},"targetPosition":{"x":10767.371234476494,"y":16565.22022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 100 End","id":"32ca337a-699d-4c2f-9b6a-73d9a4481e78"}}}],"id":"37a16b86-6ee7-4dfa-b32a-c8b9bcb9b484","savedPayload":{"position":{"x":10767.371234476494,"y":16565.22022191796},"targetPosition":{"x":10767.371234476494,"y":16902.72022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 200","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b170fc33-32c4-452d-919d-cf2df82c224f","savedPayload":{"position":{"x":10980.17382435076,"y":16275.82400742705},"targetPosition":{"x":10958.147529413627,"y":16443.13032778388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ad1ad1fa-9fe8-4a56-aade-dcade3d90c38","savedPayload":{"position":{"x":10958.147529413627,"y":16443.13032778388},"targetPosition":{"x":10936.121234476494,"y":16610.436648140712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 200 End","project":"Superalgos","id":"a98d63cf-bb2b-43f0-80cd-680c59ef741a","savedPayload":{"position":{"x":11020.496234476494,"y":16464.29486125209},"targetPosition":{"x":10936.121234476494,"y":16610.436648140712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 200 End","id":"87e2a3ab-afc2-44cb-b2ca-03a715a4d673"}}},{"type":"Polygon Vertex","name":"EMA 200 Begin","project":"Superalgos","id":"c9ce7524-76dd-4399-92d8-58d1d757ed89","savedPayload":{"position":{"x":11069.999610650639,"y":16507.70815699549},"targetPosition":{"x":10936.121234476494,"y":16610.436648140712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 200 Begin","id":"33d1fe7c-ff86-440a-8b42-0de9c296a632"}}}],"id":"2e225665-d05d-46cd-91d0-4b36803bcf67","savedPayload":{"position":{"x":10936.121234476494,"y":16610.436648140712},"targetPosition":{"x":10767.371234476494,"y":16902.72022191796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"5ea59fb9-f0d6-438b-b1a7-a62ed1750004","savedPayload":{"position":{"x":10767.371234476494,"y":16902.72022191796},"targetPosition":{"x":11104.871234476494,"y":17487.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"EMA Popular","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"EMA 20","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema20","project":"Superalgos","id":"c79a60a8-e960-4a7d-86b0-bb8d65272b30","savedPayload":{"position":{"x":11096.758401798224,"y":16717.170368472052},"targetPosition":{"x":11238.355489784439,"y":16892.02820979987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"b212a4cc-ecc2-478b-8309-de778e7abb65","savedPayload":{"position":{"x":11203.157735150387,"y":16669.798333165967},"targetPosition":{"x":11238.355489784439,"y":16892.02820979987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"80fa0565-6440-406f-a49d-57adcdaf20ae","savedPayload":{"position":{"x":11238.355489784439,"y":16892.02820979987},"targetPosition":{"x":11329.871234476494,"y":17097.575937769456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 50","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema50","project":"Superalgos","id":"ad4b2bc1-bc45-4a8f-b07f-aa0f79f5e884","savedPayload":{"position":{"x":11364.875774755827,"y":16652.80108228457},"targetPosition":{"x":11376.651364910489,"y":16877.49272760435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"6c0a0f94-7f53-4226-8cac-46a2c8c93f0e","savedPayload":{"position":{"x":11478.799227351887,"y":16677.016259661967},"targetPosition":{"x":11376.651364910489,"y":16877.49272760435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f43975ff-c552-42b8-a504-d2b6a3a46b18","savedPayload":{"position":{"x":11376.651364910489,"y":16877.49272760435},"targetPosition":{"x":11329.871234476494,"y":17097.575937769456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 100","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema100","project":"Superalgos","id":"2bfe0bed-a18d-452e-a59a-9ddbd135dd0a","savedPayload":{"position":{"x":11619.62260308729,"y":16758.320673550992},"targetPosition":{"x":11497.078820208908,"y":16947.021551338712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"4c01a5e4-bd67-4914-b544-0f6fd7ed9940","savedPayload":{"position":{"x":11697.55528815129,"y":16844.873688897314},"targetPosition":{"x":11497.078820208908,"y":16947.021551338712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9507a099-6a7f-4d00-8b6e-623a7003055c","savedPayload":{"position":{"x":11497.078820208908,"y":16947.021551338712},"targetPosition":{"x":11329.871234476494,"y":17097.575937769456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 200","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema200","project":"Superalgos","id":"ee01f76f-2b56-4d87-a278-4dd98436dca7","savedPayload":{"position":{"x":11763.694256896226,"y":16993.42424488654},"targetPosition":{"x":11553.638660934355,"y":17074.057033534235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"3ca9953f-2806-471d-aa84-d80fd4645414","savedPayload":{"position":{"x":11775.868537568262,"y":17109.254788168288},"targetPosition":{"x":11553.638660934355,"y":17074.057033534235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5bf57692-7070-4a12-9bc3-487a841125b0","savedPayload":{"position":{"x":11553.638660934355,"y":17074.057033534235},"targetPosition":{"x":11329.871234476494,"y":17097.575937769456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a819c354-b152-4946-a403-62a8cf0f650f","savedPayload":{"position":{"x":11329.871234476494,"y":17097.575937769456},"targetPosition":{"x":11104.871234476494,"y":17487.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"79bf7438-f77a-4c8d-a450-67027d5fd8bc","savedPayload":{"position":{"x":11104.871234476494,"y":17487.287369472455},"targetPosition":{"x":11104.871234476494,"y":17937.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"EMA Base 11","config":"{\n\t\"codeName\": \"EMA-Base11\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"EMA 11 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema11","project":"Superalgos","id":"41b049dc-e0da-471f-82f7-5f2c1eb61f90","savedPayload":{"position":{"x":11349.218158179905,"y":17400.17619458912},"targetPosition":{"x":11238.151499672495,"y":17382.275150820715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c961312c-6bb2-4b38-a142-9f03d0b3eba4","savedPayload":{"position":{"x":11238.151499672495,"y":17382.275150820715},"targetPosition":{"x":11127.084841165084,"y":17364.37410705231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 11 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema11","project":"Superalgos","id":"55db8355-8155-4c70-85b5-4a629aeefa45","savedPayload":{"position":{"x":11294.599208990792,"y":17514.587077770397},"targetPosition":{"x":11210.842025077938,"y":17439.480592411353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"750547e8-4963-4008-aa2b-8edc565afd79","savedPayload":{"position":{"x":11210.842025077938,"y":17439.480592411353},"targetPosition":{"x":11127.084841165084,"y":17364.37410705231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 22 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema22","project":"Superalgos","id":"bda3c179-331d-444e-9b1e-e3cfd1a26bb7","savedPayload":{"position":{"x":11186.79563161698,"y":17581.30640410282},"targetPosition":{"x":11156.940236391032,"y":17472.840255577565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8ac0329a-2d0d-483f-a047-305198817a24","savedPayload":{"position":{"x":11156.940236391032,"y":17472.840255577565},"targetPosition":{"x":11127.084841165084,"y":17364.37410705231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 22 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema22","project":"Superalgos","id":"08508d15-658f-40da-a580-76a5b512414d","savedPayload":{"position":{"x":11060.034300170977,"y":17579.151258892067},"targetPosition":{"x":11093.55957066803,"y":17471.76268297219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"adc1fb05-93dd-4a32-98dd-30577e4a68de","savedPayload":{"position":{"x":11093.55957066803,"y":17471.76268297219},"targetPosition":{"x":11127.084841165084,"y":17364.37410705231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 33 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema33","project":"Superalgos","id":"bceee9f7-3824-498c-beb1-866463df7a7e","savedPayload":{"position":{"x":10954.56104173412,"y":17508.80588551503},"targetPosition":{"x":11040.822941449602,"y":17436.58999628367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"25fd3a99-95c4-4514-b7f3-d195c9ee3189","savedPayload":{"position":{"x":11040.822941449602,"y":17436.58999628367},"targetPosition":{"x":11127.084841165084,"y":17364.37410705231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 33 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema33","project":"Superalgos","id":"6c2cc6ab-b520-4d47-8165-db2abfd53ed8","savedPayload":{"position":{"x":10903.862870621677,"y":17392.604442982258},"targetPosition":{"x":11015.47385589338,"y":17378.489275017284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0fe0c9b1-3079-499b-ad49-1b13e1e0af82","savedPayload":{"position":{"x":11015.47385589338,"y":17378.489275017284},"targetPosition":{"x":11127.084841165084,"y":17364.37410705231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 55 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema55","project":"Superalgos","id":"5df6eee6-f3a0-406f-be6c-2e6bce745054","savedPayload":{"position":{"x":10924.03609794569,"y":17267.440068257754},"targetPosition":{"x":11025.560469555387,"y":17315.907087655032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"27b05f8b-84e9-4ab2-944d-46b10c2a978c","savedPayload":{"position":{"x":11025.560469555387,"y":17315.907087655032},"targetPosition":{"x":11127.084841165084,"y":17364.37410705231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 55 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema55","project":"Superalgos","id":"508f7fdf-3889-4b3f-bec4-9ee071f7aa21","savedPayload":{"position":{"x":11008.675866567999,"y":17173.05156594733},"targetPosition":{"x":11067.880353866542,"y":17268.71283649982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1eeef11e-809a-4e49-8b3b-48a955f42ce3","savedPayload":{"position":{"x":11067.880353866542,"y":17268.71283649982},"targetPosition":{"x":11127.084841165084,"y":17364.37410705231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 111 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema111","project":"Superalgos","id":"b9f04b17-af03-4983-8266-0e63f8f3271c","savedPayload":{"position":{"x":11130.909647987046,"y":17139.406618617257},"targetPosition":{"x":11128.997244576065,"y":17251.890362834783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cb15539c-b3a0-4641-9417-861c48bd62ac","savedPayload":{"position":{"x":11128.997244576065,"y":17251.890362834783},"targetPosition":{"x":11127.084841165084,"y":17364.37410705231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 11 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema111","project":"Superalgos","id":"abc69976-c994-40d1-a923-fd64ded26938","savedPayload":{"position":{"x":11251.929080264916,"y":17177.187259321},"targetPosition":{"x":11189.506960715,"y":17270.780683186655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"afa38489-5525-4f32-b766-cfe85d683a65","savedPayload":{"position":{"x":11189.506960715,"y":17270.780683186655},"targetPosition":{"x":11127.084841165084,"y":17364.37410705231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"573429d9-05d9-41ea-9fac-5eaf95fcc06c","savedPayload":{"position":{"x":11125.084841165084,"y":17157.37410705231},"targetPosition":{"x":11537.537856306573,"y":16977.422696108428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"02c6627c-956c-4022-a3f9-a132627d02d8","savedPayload":{"position":{"x":11033.494084421432,"y":16252.777205754091},"targetPosition":{"x":11195.54026489206,"y":16408.873443360513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"48f091c0-5895-4615-a56d-f779d35b60c6","savedPayload":{"position":{"x":11195.54026489206,"y":16408.873443360513},"targetPosition":{"x":11357.58644536269,"y":16564.969680966937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 11 End","project":"Superalgos","id":"1143164d-0f70-46f0-80fe-6107db66ce29","savedPayload":{"position":{"x":11267.610739890748,"y":16358.743173396191},"targetPosition":{"x":11357.58644536269,"y":16564.969680966937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 11 End","id":"750547e8-4963-4008-aa2b-8edc565afd79"}}},{"type":"Polygon Vertex","name":"EMA 11 Begin","project":"Superalgos","id":"31fd051d-973f-4d8c-b9d3-ac1c13621ab0","savedPayload":{"position":{"x":11353.379200415737,"y":16340.009019761568},"targetPosition":{"x":11357.58644536269,"y":16564.969680966937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 11 Begin","id":"c961312c-6bb2-4b38-a142-9f03d0b3eba4"}}}],"id":"01f54960-957d-490a-91c7-cfd01f2bf806","savedPayload":{"position":{"x":11357.58644536269,"y":16564.969680966937},"targetPosition":{"x":11537.537856306573,"y":16977.422696108428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"76712d22-b3a8-490e-a964-b1f51641d472","savedPayload":{"position":{"x":11397.822004667567,"y":16105.843272608847},"targetPosition":{"x":11476.092949199243,"y":16316.790325781247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"61487dfb-c30e-41b5-b3bb-a52bbe476c22","savedPayload":{"position":{"x":11476.092949199243,"y":16316.790325781247},"targetPosition":{"x":11554.363893730919,"y":16527.737378953647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 22 End","project":"Superalgos","id":"bd3f3676-7a98-43ca-b661-395e53cc2d9c","savedPayload":{"position":{"x":11562.776912443092,"y":16302.894720376256},"targetPosition":{"x":11554.363893730919,"y":16527.737378953647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 22 End","id":"adc1fb05-93dd-4a32-98dd-30577e4a68de"}}},{"type":"Polygon Vertex","name":"EMA 22 Begin","project":"Superalgos","id":"6a2c8c60-7c69-4372-bc67-b5bac89eb8a5","savedPayload":{"position":{"x":11648.180069852217,"y":16323.2293715359},"targetPosition":{"x":11554.363893730919,"y":16527.737378953647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 22 Begin","id":"8ac0329a-2d0d-483f-a047-305198817a24"}}}],"id":"c9043797-16f8-4dc7-85c0-bd9d995dcec1","savedPayload":{"position":{"x":11554.363893730919,"y":16527.737378953647},"targetPosition":{"x":11537.537856306573,"y":16977.422696108428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"9ee24b06-2b0b-472a-9272-23f52d3ddc05","savedPayload":{"position":{"x":11789.82236283328,"y":16131.536333507844},"targetPosition":{"x":11768.815550931366,"y":16355.553551269599},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"12acb041-6cf9-4cab-bc99-7d3413860838","savedPayload":{"position":{"x":11768.815550931366,"y":16355.553551269599},"targetPosition":{"x":11747.808739029451,"y":16579.570769031354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 33 End","project":"Superalgos","id":"e5ec4acb-cef0-48cc-8eb4-432547dc0541","savedPayload":{"position":{"x":11852.94418039089,"y":16380.644805492817},"targetPosition":{"x":11747.808739029451,"y":16579.570769031354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 33 End","id":"0fe0c9b1-3079-499b-ad49-1b13e1e0af82"}}},{"type":"Polygon Vertex","name":"EMA 33 Begin","project":"Superalgos","id":"46dfb895-487c-4a14-a8f4-e39f77a98f34","savedPayload":{"position":{"x":11921.066891958286,"y":16436.02073439643},"targetPosition":{"x":11747.808739029451,"y":16579.570769031354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 33 Begin","id":"25fd3a99-95c4-4514-b7f3-d195c9ee3189"}}}],"id":"d6e73bfe-e6af-4fff-b482-df4889701cf7","savedPayload":{"position":{"x":11747.808739029451,"y":16579.570769031354},"targetPosition":{"x":11537.537856306573,"y":16977.422696108428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"cb42e26b-ace9-47f5-a272-15645af64e39","savedPayload":{"position":{"x":12131.85468041495,"y":16324.767562635318},"targetPosition":{"x":12015.730768808262,"y":16517.485587617834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"cd8235f2-8641-4f92-9029-d30375e43f1f","savedPayload":{"position":{"x":12015.730768808262,"y":16517.485587617834},"targetPosition":{"x":11899.606857201574,"y":16710.20361260035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 55 End","project":"Superalgos","id":"fff3b40f-45a5-424f-bbe3-b62c4811423d","savedPayload":{"position":{"x":12080.641357649074,"y":16576.594070846313},"targetPosition":{"x":11899.606857201574,"y":16710.20361260035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 55 End","id":"1eeef11e-809a-4e49-8b3b-48a955f42ce3"}}},{"type":"Polygon Vertex","name":"EMA 55 Begin","project":"Superalgos","id":"e644af79-d267-4c8b-bebd-2d919eb5efd9","savedPayload":{"position":{"x":12117.991084878588,"y":16656.043395633333},"targetPosition":{"x":11899.606857201574,"y":16710.20361260035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 55 Begin","id":"27b05f8b-84e9-4ab2-944d-46b10c2a978c"}}}],"id":"001084ac-f732-465a-aea1-bb8c63770971","savedPayload":{"position":{"x":11899.606857201574,"y":16710.20361260035},"targetPosition":{"x":11537.537856306573,"y":16977.422696108428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"5d5e3413-6b2a-49e0-8b7e-14441b448203","savedPayload":{"position":{"x":12356.175262164441,"y":16647.26514523707},"targetPosition":{"x":12167.934015712997,"y":16770.513809061093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"d1c5bddf-9fc3-47b8-b026-a0fd18fc7efd","savedPayload":{"position":{"x":12167.934015712997,"y":16770.513809061093},"targetPosition":{"x":11979.692769261554,"y":16893.762472885115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 11 End","project":"Superalgos","id":"2aed0f5f-77bd-4297-a131-77c0c08914d5","savedPayload":{"position":{"x":12200.770225739043,"y":16851.93236127346},"targetPosition":{"x":11979.692769261554,"y":16893.762472885115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 11 End","id":"afa38489-5525-4f32-b766-cfe85d683a65"}}},{"type":"Polygon Vertex","name":"EMA 111 Begin","project":"Superalgos","id":"dff4ca7d-4499-4a8a-834b-7315e9e784e4","savedPayload":{"position":{"x":12199.949397088525,"y":16939.719168787793},"targetPosition":{"x":11979.692769261554,"y":16893.762472885115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 111 Begin","id":"cb15539c-b3a0-4641-9417-861c48bd62ac"}}}],"id":"47ab5422-37ad-4070-a2eb-248bbe9b007f","savedPayload":{"position":{"x":11979.692769261554,"y":16893.762472885115},"targetPosition":{"x":11537.537856306573,"y":16977.422696108428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"951aba38-5a6a-43df-8f70-f311d621c98d","savedPayload":{"position":{"x":11537.537856306573,"y":16977.422696108428},"targetPosition":{"x":11423.06928601044,"y":17619.08931793851},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"EMA 11","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"EMA 11","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema11","project":"Superalgos","id":"ee21f97e-daa4-45b8-bebd-5c53d872534b","savedPayload":{"position":{"x":11915.970192988587,"y":17060.287436727333},"targetPosition":{"x":11915.970192988587,"y":17285.287436727333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"f1df9f6b-60b7-489c-b776-aefb39c54d85","savedPayload":{"position":{"x":12028.470192988587,"y":17090.431720875833},"targetPosition":{"x":11915.970192988587,"y":17285.287436727333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a96b4bae-0ce3-4dc6-88df-af120452af6b","savedPayload":{"position":{"x":11915.970192988587,"y":17285.287436727333},"targetPosition":{"x":11857.73590784052,"y":17502.620747642373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 22","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema22","project":"Superalgos","id":"583909a2-6932-4bfa-952d-a0c81123cc3f","savedPayload":{"position":{"x":12129.334933607493,"y":17148.6660060239},"targetPosition":{"x":12016.834933607493,"y":17343.5217218754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"e7ecb64a-a5b0-4f04-ab8b-f1c1b5491922","savedPayload":{"position":{"x":12211.690649458993,"y":17231.0217218754},"targetPosition":{"x":12016.834933607493,"y":17343.5217218754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2a2f4d65-a013-4c73-b851-1c9ac3dceb9f","savedPayload":{"position":{"x":12016.834933607493,"y":17343.5217218754},"targetPosition":{"x":11857.73590784052,"y":17502.620747642373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 33","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema33","project":"Superalgos","id":"067efa03-229a-49e1-9dff-579ead9e6603","savedPayload":{"position":{"x":12269.924934607061,"y":17331.886462494305},"targetPosition":{"x":12075.069218755561,"y":17444.386462494305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"56dacb40-906f-4ba4-a1de-752818c286c6","savedPayload":{"position":{"x":12300.069218755561,"y":17444.386462494305},"targetPosition":{"x":12075.069218755561,"y":17444.386462494305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a51bde01-b164-49bd-99fc-d048468e4cc0","savedPayload":{"position":{"x":12075.069218755561,"y":17444.386462494305},"targetPosition":{"x":11857.73590784052,"y":17502.620747642373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 55","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema55","project":"Superalgos","id":"4663f0f2-cf79-4a80-b4c0-33c41bca9d88","savedPayload":{"position":{"x":12300.069218755561,"y":17560.85503279044},"targetPosition":{"x":12075.069218755561,"y":17560.85503279044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"545bd2c7-f8db-4e89-ac74-5c8d5e63a9ec","savedPayload":{"position":{"x":12269.924934607061,"y":17673.35503279044},"targetPosition":{"x":12075.069218755561,"y":17560.85503279044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"782092b0-9e6c-4de0-aec6-0d6b47fac8b4","savedPayload":{"position":{"x":12075.069218755561,"y":17560.85503279044},"targetPosition":{"x":11857.73590784052,"y":17502.620747642373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 111","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema111","project":"Superalgos","id":"8064c04e-1499-4c01-b056-aac2a1aecc01","savedPayload":{"position":{"x":12211.690649458993,"y":17774.219773409346},"targetPosition":{"x":12016.834933607493,"y":17661.719773409346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"3e70225b-a8b1-4d04-959e-129f26e3ea3e","savedPayload":{"position":{"x":12129.334933607493,"y":17856.575489260846},"targetPosition":{"x":12016.834933607493,"y":17661.719773409346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2c4a358f-23b6-433c-98de-623caad85051","savedPayload":{"position":{"x":12016.834933607493,"y":17661.719773409346},"targetPosition":{"x":11857.73590784052,"y":17502.620747642373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"efc451e7-a5c0-4377-877c-a6b1a60a6604","savedPayload":{"position":{"x":11857.73590784052,"y":17502.620747642373},"targetPosition":{"x":11423.06928601044,"y":17619.08931793851},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cef26be6-07a9-415a-8439-99d06b1e1cfb","savedPayload":{"position":{"x":11423.06928601044,"y":17619.08931793851},"targetPosition":{"x":11104.871234476494,"y":17937.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"EMA Base 7","config":"{\n\t\"codeName\": \"EMA-Base7\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"EMA 7 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema7","project":"Superalgos","id":"d41ccc81-8740-46e9-9ed3-9ffc1df75ee0","savedPayload":{"position":{"x":11657.445555200324,"y":17730.271782174135},"targetPosition":{"x":11591.567517244961,"y":17639.077845340857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2bb8ca1-5fcc-4286-aba3-1d307d4f7168","savedPayload":{"position":{"x":11591.567517244961,"y":17639.077845340857},"targetPosition":{"x":11525.689479289598,"y":17547.883908507578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 7 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema7","project":"Superalgos","id":"91431058-cccd-40c3-bb98-dd9484a0807d","savedPayload":{"position":{"x":11537.923414508397,"y":17772.55106416025},"targetPosition":{"x":11531.806446898998,"y":17660.217486333913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8ea750de-2b74-41ea-9897-637291621ae9","savedPayload":{"position":{"x":11531.806446898998,"y":17660.217486333913},"targetPosition":{"x":11525.689479289598,"y":17547.883908507578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 14 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema14","project":"Superalgos","id":"753c8686-38ea-4fc2-9343-3598039aa890","savedPayload":{"position":{"x":11414.517085825355,"y":17743.50011164891},"targetPosition":{"x":11470.103282557477,"y":17645.692010078244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"77265bb0-8ba2-4c0b-a788-970cd44ddcc9","savedPayload":{"position":{"x":11470.103282557477,"y":17645.692010078244},"targetPosition":{"x":11525.689479289598,"y":17547.883908507578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 14 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema14","project":"Superalgos","id":"c64e3670-c41d-44d0-bc7a-05c8f0a841b6","savedPayload":{"position":{"x":11326.407206560616,"y":17652.34239679824},"targetPosition":{"x":11426.048342925107,"y":17600.11315265291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cd04ee65-bd26-4fbc-abed-76c6fc5c964b","savedPayload":{"position":{"x":11426.048342925107,"y":17600.11315265291},"targetPosition":{"x":11525.689479289598,"y":17547.883908507578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 21 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema21","project":"Superalgos","id":"be27efec-c4ed-43ec-925a-f7d862f999c1","savedPayload":{"position":{"x":11301.568040826074,"y":17528.019849983695},"targetPosition":{"x":11413.628760057836,"y":17537.951879245637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2f13bba0-f9c2-435f-ad66-8ad73082c502","savedPayload":{"position":{"x":11413.628760057836,"y":17537.951879245637},"targetPosition":{"x":11525.689479289598,"y":17547.883908507578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 21 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema21","project":"Superalgos","id":"e6af4547-c256-4f33-95fc-9d9f3cd5d111","savedPayload":{"position":{"x":11347.885848237289,"y":17410.004001397752},"targetPosition":{"x":11436.787663763444,"y":17478.943954952665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a5e04840-b217-44cb-9f8f-2629bf4d1f6e","savedPayload":{"position":{"x":11436.787663763444,"y":17478.943954952665},"targetPosition":{"x":11525.689479289598,"y":17547.883908507578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 28 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema28","project":"Superalgos","id":"a42e77a3-9107-4c33-853d-4ed8966f339d","savedPayload":{"position":{"x":11450.655052207188,"y":17335.76404910631},"targetPosition":{"x":11488.172265748393,"y":17441.823978806944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0d436286-6b79-4dca-a2f3-b7bd3b9a5671","savedPayload":{"position":{"x":11488.172265748393,"y":17441.823978806944},"targetPosition":{"x":11525.689479289598,"y":17547.883908507578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 28 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema28","project":"Superalgos","id":"0e7f0922-d9b4-4ea3-9f5f-57ad9d4c9328","savedPayload":{"position":{"x":11577.247156607827,"y":17328.870653407463},"targetPosition":{"x":11551.468317948713,"y":17438.37728095752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f50599e9-c04f-4b07-aca0-f276dd08ea94","savedPayload":{"position":{"x":11551.468317948713,"y":17438.37728095752},"targetPosition":{"x":11525.689479289598,"y":17547.883908507578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 35 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema35","project":"Superalgos","id":"db011cc5-705a-444a-9f7a-159466b19247","savedPayload":{"position":{"x":11687.470062749067,"y":17391.512418729184},"targetPosition":{"x":11606.579771019333,"y":17469.69816361838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d7ac980a-16ab-4077-b3f1-05cf1f4c3a39","savedPayload":{"position":{"x":11606.579771019333,"y":17469.69816361838},"targetPosition":{"x":11525.689479289598,"y":17547.883908507578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"EMA 35 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema35","project":"Superalgos","id":"6b3dc821-e0e9-4c09-965b-c8600bd3e9d5","savedPayload":{"position":{"x":11746.328776728904,"y":17503.801027187397},"targetPosition":{"x":11636.009128009251,"y":17525.842467847488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8992ec1b-4e8c-4f47-a08e-b6e18a0d9c31","savedPayload":{"position":{"x":11636.009128009251,"y":17525.842467847488},"targetPosition":{"x":11525.689479289598,"y":17547.883908507578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5a4d5b2f-63dc-403c-a545-6025652d9e81","savedPayload":{"position":{"x":11511.09860169615,"y":17353.182178025138},"targetPosition":{"x":12139.438382030989,"y":17599.787369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 7","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"496c35a4-5cf7-4def-97bc-ce71a6fc45f7","savedPayload":{"position":{"x":12127.777419546734,"y":16976.27771794892},"targetPosition":{"x":12195.25919865069,"y":17130.94759862698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"671a56e0-b5eb-4833-aa19-3dca720b5b0e","savedPayload":{"position":{"x":12195.25919865069,"y":17130.94759862698},"targetPosition":{"x":12262.740977754647,"y":17285.617479305038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 7 End","project":"Superalgos","id":"b0be4203-a40d-4ee7-83e0-d1ac87f0bd31","savedPayload":{"position":{"x":12324.392275616476,"y":17128.53253422133},"targetPosition":{"x":12262.740977754647,"y":17285.617479305038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 7 End","id":"8ea750de-2b74-41ea-9897-637291621ae9"}}},{"type":"Polygon Vertex","name":"EMA 7 Begin","project":"Superalgos","id":"afe09e1e-c8fd-4fc7-8f09-324ee7d7d012","savedPayload":{"position":{"x":12417.410858432706,"y":17218.13570020108},"targetPosition":{"x":12262.740977754647,"y":17285.617479305038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 7 Begin","id":"d2bb8ca1-5fcc-4286-aba3-1d307d4f7168"}}}],"id":"45946a01-a9fb-4ea8-bb82-ef6088fad08e","savedPayload":{"position":{"x":12262.740977754647,"y":17285.617479305038},"targetPosition":{"x":12139.438382030989,"y":17599.787369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 14","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"9c0f7800-bf53-4a63-94ba-fccbec15d0ea","savedPayload":{"position":{"x":12597.929785046477,"y":16910.086053784835},"targetPosition":{"x":12527.567652955504,"y":17063.467059348146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"651877b1-61a2-48a2-8fc4-86e809f89d42","savedPayload":{"position":{"x":12527.567652955504,"y":17063.467059348146},"targetPosition":{"x":12386.843388773555,"y":17370.22907047477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 14 End","project":"Superalgos","id":"72f9e17d-9c36-408d-9a2e-13da010f4d97","savedPayload":{"position":{"x":12634.248395516122,"y":17140.670771477082},"targetPosition":{"x":12386.843388773555,"y":17370.22907047477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 14 End","id":"cd04ee65-bd26-4fbc-abed-76c6fc5c964b"}}},{"type":"Polygon Vertex","name":"EMA 14 Begin","project":"Superalgos","id":"5a24fd6f-de93-4fcd-94f7-1f7fe268e8be","savedPayload":{"position":{"x":12703.263968532156,"y":17252.822653677253},"targetPosition":{"x":12386.843388773555,"y":17370.22907047477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 14 Begin","id":"77265bb0-8ba2-4c0b-a788-970cd44ddcc9"}}}],"id":"b1689975-de58-4f84-a802-c6f13e885dc6","savedPayload":{"position":{"x":12386.843388773555,"y":17370.22907047477},"targetPosition":{"x":12139.438382030989,"y":17599.787369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 21","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"14146df5-5a4a-46b7-9db5-4957b8445915","savedPayload":{"position":{"x":12619.647366025969,"y":17201.918552800966},"targetPosition":{"x":12540.79578500489,"y":17351.11302545487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2552b9ce-3620-4245-9803-d55ad53969da","savedPayload":{"position":{"x":12540.79578500489,"y":17351.11302545487},"targetPosition":{"x":12461.94420398381,"y":17500.307498108774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 21 Begin","project":"Superalgos","id":"803ffc35-a2e2-426d-a8d2-7c770e5d0a6a","savedPayload":{"position":{"x":12623.197114960221,"y":17450.567562426935},"targetPosition":{"x":12461.94420398381,"y":17500.307498108774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 21 Begin","id":"2f13bba0-f9c2-435f-ad66-8ad73082c502"}}},{"type":"Polygon Vertex","name":"EMA 21 End","project":"Superalgos","id":"a0449481-80c2-4160-adb3-49d4327bf921","savedPayload":{"position":{"x":12611.138676637713,"y":17579.15907912985},"targetPosition":{"x":12461.94420398381,"y":17500.307498108774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 21 End","id":"a5e04840-b217-44cb-9f8f-2629bf4d1f6e"}}}],"id":"15f599b3-7620-4a0c-b9e0-29830383cd36","savedPayload":{"position":{"x":12461.94420398381,"y":17500.307498108774},"targetPosition":{"x":12139.438382030989,"y":17599.787369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 28","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"e4a06d7f-ecad-400a-acca-f3c340642354","savedPayload":{"position":{"x":12964.53329815525,"y":17528.22864613112},"targetPosition":{"x":12800.74512739749,"y":17568.848808856383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"65f345ac-2766-411d-af4f-9390e525667c","savedPayload":{"position":{"x":12800.74512739749,"y":17568.848808856383},"targetPosition":{"x":12473.16878588197,"y":17650.089134306912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 28 Begin","project":"Superalgos","id":"ca1f7537-47e7-4c48-a056-fedd8820a1de","savedPayload":{"position":{"x":12806.89918973295,"y":17700.39089914137},"targetPosition":{"x":12473.16878588197,"y":17650.089134306912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 28 Begin","id":"0d436286-6b79-4dca-a2f3-b7bd3b9a5671"}}},{"type":"Polygon Vertex","name":"EMA 28 End","project":"Superalgos","id":"80c45995-463a-442a-a6d8-92cc9971a8b9","savedPayload":{"position":{"x":12762.245823355745,"y":17824.275001716946},"targetPosition":{"x":12473.16878588197,"y":17650.089134306912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 28 End","id":"f50599e9-c04f-4b07-aca0-f276dd08ea94"}}}],"id":"e3c75e9c-a5ec-4755-9a86-909db1b690ca","savedPayload":{"position":{"x":12473.16878588197,"y":17650.089134306912},"targetPosition":{"x":12139.438382030989,"y":17599.787369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 35","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"9d05ca49-9de9-4c97-b4da-891614ed84a5","savedPayload":{"position":{"x":12749.91015307887,"y":17727.162721651446},"targetPosition":{"x":12584.102060720754,"y":17758.535305360187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"56422e5e-ccaa-4c0c-b5a1-79e62ebc1e74","savedPayload":{"position":{"x":12584.102060720754,"y":17758.535305360187},"targetPosition":{"x":12418.293968362637,"y":17789.907889068927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"EMA 35 Begin","project":"Superalgos","id":"155db5be-8214-4154-a918-ab9469587cc7","savedPayload":{"position":{"x":12557.72176152846,"y":17884.968148867163},"targetPosition":{"x":12418.293968362637,"y":17789.907889068927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 35 Begin","id":"d7ac980a-16ab-4077-b3f1-05cf1f4c3a39"}}},{"type":"Polygon Vertex","name":"EMA 35 End","project":"Superalgos","id":"ee71f62a-adc7-4411-aeb1-54ca5712ce34","savedPayload":{"position":{"x":12449.66655207138,"y":17955.715981427045},"targetPosition":{"x":12418.293968362637,"y":17789.907889068927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 35 End","id":"8992ec1b-4e8c-4f47-a08e-b6e18a0d9c31"}}}],"id":"3511cc8f-eb39-4dd0-8043-9f06a8faa698","savedPayload":{"position":{"x":12418.293968362637,"y":17789.907889068927},"targetPosition":{"x":12139.438382030989,"y":17599.787369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"8e7cd7e8-5c59-4cc2-8d9e-ea86d7554205","savedPayload":{"position":{"x":12139.438382030989,"y":17599.787369472455},"targetPosition":{"x":11554.871234476494,"y":17937.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"EMA Base 7","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"EMA 7","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema7","project":"Superalgos","id":"9d9efe26-4895-475c-ac3c-149f0331c6f7","savedPayload":{"position":{"x":12298.537407797961,"y":17890.688343705482},"targetPosition":{"x":12139.438382030989,"y":18049.787369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"06c8429b-e260-4d36-a859-5ae92112772c","savedPayload":{"position":{"x":12356.77169294603,"y":17991.553084324387},"targetPosition":{"x":12139.438382030989,"y":18049.787369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aeaebf9b-54bf-41f3-a833-b0e4fcc55c00","savedPayload":{"position":{"x":12139.438382030989,"y":18049.787369472455},"targetPosition":{"x":11944.58266617949,"y":18162.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 14","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema14","project":"Superalgos","id":"7c922a65-b8a6-4ebf-a964-af3851b30367","savedPayload":{"position":{"x":12386.915977094532,"y":18104.053084324387},"targetPosition":{"x":12169.58266617949,"y":18162.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"3ccf0c41-3b69-434a-8b0d-d7683301d56a","savedPayload":{"position":{"x":12386.915977094532,"y":18220.521654620523},"targetPosition":{"x":12169.58266617949,"y":18162.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f749c1c5-25f9-4c3f-af87-c8df30a177e0","savedPayload":{"position":{"x":12169.58266617949,"y":18162.287369472455},"targetPosition":{"x":11944.58266617949,"y":18162.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 21","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema21","project":"Superalgos","id":"f5a9c1c1-9331-4492-a263-1f69ff44711a","savedPayload":{"position":{"x":12356.771692946031,"y":18333.021654620523},"targetPosition":{"x":12139.43838203099,"y":18274.787369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"4c6d3920-5b9d-476f-96a7-ae94cbde7ba9","savedPayload":{"position":{"x":12298.537407797963,"y":18433.886395239428},"targetPosition":{"x":12139.43838203099,"y":18274.787369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"92f7a1a7-bd42-403f-9d0e-2eb907e8abea","savedPayload":{"position":{"x":12139.43838203099,"y":18274.787369472455},"targetPosition":{"x":11944.58266617949,"y":18162.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 28","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema28","project":"Superalgos","id":"0fcdb422-d014-4dc8-927a-5484c5d7c34b","savedPayload":{"position":{"x":12216.181691946464,"y":18516.242111090927},"targetPosition":{"x":12057.08266617949,"y":18357.143085323954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"0097353e-f325-476a-a480-d8fd7126a442","savedPayload":{"position":{"x":12115.316951327559,"y":18574.476396238995},"targetPosition":{"x":12057.08266617949,"y":18357.143085323954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4c51ef79-f3dd-4f24-ad22-4e38f42f3ff2","savedPayload":{"position":{"x":12057.08266617949,"y":18357.143085323954},"targetPosition":{"x":11944.58266617949,"y":18162.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"EMA 35","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema35","project":"Superalgos","id":"c23e6dd3-f9d5-498f-a01c-c951b11cbdf6","savedPayload":{"position":{"x":12002.816951327559,"y":18604.620680387496},"targetPosition":{"x":11944.58266617949,"y":18387.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"be76e3d7-0601-486a-ba56-27929fc5ce77","savedPayload":{"position":{"x":11886.348381031425,"y":18604.620680387496},"targetPosition":{"x":11944.58266617949,"y":18387.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8cdd88af-871c-4f1b-966b-cf9d00483caa","savedPayload":{"position":{"x":11944.58266617949,"y":18387.287369472455},"targetPosition":{"x":11944.58266617949,"y":18162.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"481ef93a-bef5-4fe3-b87b-f8032a63c69f","savedPayload":{"position":{"x":11944.58266617949,"y":18162.287369472455},"targetPosition":{"x":11554.871234476494,"y":17937.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a52a9764-3ef2-44e6-82bd-e6538058119d","savedPayload":{"position":{"x":11554.871234476494,"y":17937.287369472455},"targetPosition":{"x":11104.871234476494,"y":17937.287369472455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6cb2807d-22bb-4f90-b4d8-c84cf84a0d5c","savedPayload":{"position":{"x":11104.871234476494,"y":17937.287369472455},"targetPosition":{"x":10786.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"a"}}}],"id":"9cfffc48-486a-48cb-b641-98c82e314d3a","savedPayload":{"position":{"x":10786.673182942548,"y":18255.4854210064},"targetPosition":{"x":10786.673182942548,"y":18255.4854210064},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}} \ No newline at end of file diff --git a/Projects/Superalgos/Plugins/Data-Mines/Zeus.json b/Projects/Superalgos/Plugins/Data-Mines/Zeus.json index 0766e689b..287b86829 100644 --- a/Projects/Superalgos/Plugins/Data-Mines/Zeus.json +++ b/Projects/Superalgos/Plugins/Data-Mines/Zeus.json @@ -1 +1 @@ -{"type":"Data Mine","name":"Zeus","config":"{ \n\"codeName\": \"Zeus\"\n}","project":"Superalgos","sensorBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"Super Trend","config":"{ \n\"codeName\": \"Super-Trend\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":" {\n \"codeName\": \"Multi-Period-Market\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Super Trend","project":"Superalgos","id":"2412939e-1585-47f9-8d09-7ea8dd7c8bf0","savedPayload":{"position":{"x":21786.83642206419,"y":17775.938049371594},"targetPosition":{"x":21825.659278829567,"y":17920.826923314955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7c8e7a6f-99c8-4d90-9f44-e3e9e909eb88"}}}],"outputDatasetFolders":[],"id":"74212c63-4a69-407d-80ec-d39ee2d8df74","savedPayload":{"position":{"x":21825.659278829567,"y":17920.826923314955},"targetPosition":{"x":21864.482135594946,"y":18065.715797258315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Super Trend Multi-Period-Market","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"5a35d0d1-cfed-4893-84ab-344a77c7d252","savedPayload":{"position":{"x":21792.127849125704,"y":17516.13042823626},"targetPosition":{"x":21942.127849125704,"y":17775.938049371594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"25f05344-3e7f-4d5f-ab1c-d72689a85764"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"2a42dd15-1e04-4826-bd5f-85d95fbae135","savedPayload":{"position":{"x":22019.77356265646,"y":17486.160301484873},"targetPosition":{"x":21942.127849125704,"y":17775.938049371594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"88a45f27-a0b8-4234-b7aa-f139400305db","savedPayload":{"position":{"x":22201.935470261036,"y":17625.938049371594},"targetPosition":{"x":21942.127849125704,"y":17775.938049371594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"eef38121-80a2-4471-b909-24acdc4d213a","savedPayload":{"position":{"x":21942.127849125704,"y":17775.938049371594},"targetPosition":{"x":21864.482135594946,"y":18065.715797258315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"25f05344-3e7f-4d5f-ab1c-d72689a85764","savedPayload":{"position":{"x":22076.61416995091,"y":17853.58376290235},"targetPosition":{"x":21864.482135594946,"y":18065.715797258315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"d9b0ffbd-c1bd-4e43-a00d-04a6b6fb470b","savedPayload":{"position":{"x":22154.259883481667,"y":17988.070083727558},"targetPosition":{"x":21864.482135594946,"y":18065.715797258315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"d405bfe9-74f9-4419-8288-94229c9813a6","savedPayload":{"position":{"x":22154.259883481667,"y":18143.361510789073},"targetPosition":{"x":21864.482135594946,"y":18065.715797258315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fc3dbb85-168e-4fac-8893-b285de35a694","savedPayload":{"position":{"x":21864.482135594946,"y":18065.715797258315},"targetPosition":{"x":21652.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":" {\n \"codeName\": \"Multi-Period-Daily\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Super Trend","project":"Superalgos","id":"f5a69b9b-0423-42be-bb58-b5a51f762ee7","savedPayload":{"position":{"x":22185.350101238982,"y":18510.463073884945},"targetPosition":{"x":21885.350101238982,"y":18510.463073884945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"c17b5d3f-7cf7-418a-92b8-f8c67a120446"}}}],"outputDatasetFolders":[],"id":"04c16ec8-b60b-4cf0-acf4-69d955a5d2aa","savedPayload":{"position":{"x":21885.350101238982,"y":18510.463073884945},"targetPosition":{"x":21585.350101238982,"y":18510.463073884945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Super Trend Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"935a9195-83ac-41bc-835e-f118f5a79049","savedPayload":{"position":{"x":22144.746582800686,"y":18676.163860757828},"targetPosition":{"x":21845.157722374315,"y":18660.463073884945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"89d59eb6-bd97-485d-ac94-a095aaf4e58d"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"a3f5a224-75c0-4054-84ac-c4a98f823085","savedPayload":{"position":{"x":22125.231850323475,"y":18767.973458748536},"targetPosition":{"x":21845.157722374315,"y":18660.463073884945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{ \n\"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"d39acabb-3797-410a-9d86-0edda4a41b70","savedPayload":{"position":{"x":22078.301510811405,"y":18849.259191199897},"targetPosition":{"x":21845.157722374315,"y":18660.463073884945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"0fbf825f-68af-415d-b01e-1e30528a4b49","savedPayload":{"position":{"x":22008.549432878823,"y":18912.06424426857},"targetPosition":{"x":21845.157722374315,"y":18660.463073884945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"98d9f621-8b18-4b4f-b191-b79d930dc4ec","savedPayload":{"position":{"x":21845.157722374315,"y":18660.463073884945},"targetPosition":{"x":21585.350101238982,"y":18510.463073884945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"89d59eb6-bd97-485d-ac94-a095aaf4e58d","savedPayload":{"position":{"x":21660.350101238982,"y":18640.36688445261},"targetPosition":{"x":21585.350101238982,"y":18510.463073884945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"3f1b6db1-7e06-499c-9879-194596e2978e","savedPayload":{"position":{"x":21585.350101238982,"y":18660.463073884945},"targetPosition":{"x":21585.350101238982,"y":18510.463073884945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"f884fccf-e2dc-45db-a1df-36b6826b020c","savedPayload":{"position":{"x":21510.350101238982,"y":18640.36688445261},"targetPosition":{"x":21585.350101238982,"y":18510.463073884945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c2ade18e-8e3c-4448-a743-947c8163b80d","savedPayload":{"position":{"x":21952.350101238982,"y":18277.84783161428},"targetPosition":{"x":21652.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Super Trend","config":"{\n \"codeName\": \"Super-Trend\",\n \"singularVariableName\": \"superTrend\",\n \"pluralVariableName\": \"superTrends\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"7c8e7a6f-99c8-4d90-9f44-e3e9e909eb88","savedPayload":{"position":{"x":22415.00790604074,"y":18525.650373880122},"targetPosition":{"x":21970.548152772928,"y":18596.045883148225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"c17b5d3f-7cf7-418a-92b8-f8c67a120446","savedPayload":{"position":{"x":22371.501088657693,"y":18800.34160803102},"targetPosition":{"x":21970.548152772928,"y":18596.045883148225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"record.current.begin","project":"Superalgos","id":"af4ce0b3-14a3-4e8d-8f27-353aa5d819e5","savedPayload":{"position":{"x":23052.05880280838,"y":19344.991865301457},"targetPosition":{"x":22827.752402718426,"y":19362.645161840224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"eece0283-d534-4ce5-8606-4fa5cec4fe90","savedPayload":{"position":{"x":22827.752402718426,"y":19362.645161840224},"targetPosition":{"x":22379.13960253852,"y":19397.951754917754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{ \n\"codeName\": \"end\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"record.current.end","project":"Superalgos","id":"47190c61-ec22-49ff-8a4c-e08e5cddc2c0","savedPayload":{"position":{"x":23021.102751037746,"y":19606.538226120843},"targetPosition":{"x":22807.115034871338,"y":19537.00940238648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"aab131cd-6b2a-4708-84bf-11e65bd4f995","savedPayload":{"position":{"x":22807.115034871338,"y":19537.00940238648},"targetPosition":{"x":22379.13960253852,"y":19397.951754917754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"True Range","config":"{ \n \"codeName\": \"trueRange\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.trueRange","project":"Superalgos","id":"5e5bd969-819b-4131-aad4-d855c57b236d","savedPayload":{"position":{"x":22892.413629318537,"y":19836.32918754063},"targetPosition":{"x":22721.32228705853,"y":19690.203376666337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"79e64cdc-8d3d-4c17-8bb6-69c52b09d0a5","savedPayload":{"position":{"x":22721.32228705853,"y":19690.203376666337},"targetPosition":{"x":22379.13960253852,"y":19397.951754917754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ATR N Period","config":"{ \n \"codeName\": \"atrNPeriod\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.atrNPeriod","project":"Superalgos","id":"139dd901-2800-4a78-b536-a26d71f8180f","savedPayload":{"position":{"x":22685.58318986271,"y":19999.3811587449},"targetPosition":{"x":22583.435327421314,"y":19798.90469080252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5bf3d6da-c010-4297-90f2-db405eb25ab9","savedPayload":{"position":{"x":22583.435327421314,"y":19798.90469080252},"targetPosition":{"x":22379.13960253852,"y":19397.951754917754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Up Trend","config":"{ \n \"codeName\": \"uptrend\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.uptrend","project":"Superalgos","id":"1227cf03-417e-42af-8be8-0ac79c0372e6","savedPayload":{"position":{"x":22432.099492154815,"y":20070.870955187616},"targetPosition":{"x":22414.44619561605,"y":19846.564555097662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"58b49e52-ac7e-4458-8dc0-c16a63c11c73","savedPayload":{"position":{"x":22414.44619561605,"y":19846.564555097662},"targetPosition":{"x":22379.13960253852,"y":19397.951754917754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Down Trend","config":"{ \n \"codeName\": \"downtrend\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.downtrend","project":"Superalgos","id":"4b55c31f-ca51-4dcd-beaf-a03463e5d541","savedPayload":{"position":{"x":22170.55313133543,"y":20039.914903416982},"targetPosition":{"x":22240.081955069792,"y":19825.927187250574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9c7651af-9740-4086-9c1b-c859d25cae26","savedPayload":{"position":{"x":22240.081955069792,"y":19825.927187250574},"targetPosition":{"x":22379.13960253852,"y":19397.951754917754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Trend","config":"{ \n \"codeName\": \"trend\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.trend","project":"Superalgos","id":"eb1e09d6-6794-4d4e-a8a9-227fdbb1698c","savedPayload":{"position":{"x":21940.762169915644,"y":19911.225781697776},"targetPosition":{"x":22086.887980789936,"y":19740.13443943777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"880b51d4-9bda-4f26-b722-7cd84f9cc494","savedPayload":{"position":{"x":22086.887980789936,"y":19740.13443943777},"targetPosition":{"x":22379.13960253852,"y":19397.951754917754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"93965329-75b8-4e62-99ab-252a4aed8d86","savedPayload":{"position":{"x":22379.13960253852,"y":19397.951754917754},"targetPosition":{"x":21970.548152772928,"y":18596.045883148225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* Loop Code */\n\n/* Big thanks to @rico4dev for providing the base start for ATR calcs\nI made some tweaks so now the way ATR is calculated matches TradingView :-)\n */\n\n// Set parameters to be used for ATR Period and Multiplier\nlet Nperiod = 10 // ATR Period\nlet multiplier = 3 // ATR Multiplier\n\n// Get Current and Previous Candle Data\nlet currCandle = record.current \nlet prevCandle = record.previous \n\n/* We need to build the price source\nFor current price there is no problem, we have data\nFor previous price we must check if exist\nSource price is defined as OHCL4*/\n\n// OHCL4 Source for current price\nvariable.currClose = currCandle.close\nvariable.ohcl4 = (currCandle.max + currCandle.min + currCandle.close + currCandle.open)/4\n\n// OHCL4 Source for previous candle price - make sure data exists\nif (prevCandle === undefined) {\n variable.prevClose = currCandle.close\n variable.prev_ohcl4 = 0 \n} else {\n variable.prevClose = prevCandle.close\n variable.prev_ohcl4 = (prevCandle.max + prevCandle.min + prevCandle.close + prevCandle.open)/4\n}\n\n/* Define variables we need and build functions */\n/* True Range and ATR - Average True Range */\n\nvariable.trueRange = calculateTR()\nvariable.atrNPeriod = calculateATR(Nperiod)\nvariable.prevAtrNperiod = variable.atrNPeriod // Store ATR value for calcs in RMA\n\n/* To keep lastNperiodTR array to a fixed length\nwe remove the first element of the array if length is > Nperiod */\n\nvariable.lastNPeriodTR.push(calculateTR())\nif (variable.lastNPeriodTR.length > Nperiod) {\n variable.lastNPeriodTR.splice(0, 1)\n}\n\n/* Calculate ATR */\nfunction calculateATR(length) {\n return calculateRMA(variable.trueRange, length)\n}\n\n/* Calculate True Range */\nfunction calculateTR() {\n let hl = currCandle.max - currCandle.min \n if (variable.prevClose === 0) { return hl } // Return High-Low when previous Close is 0 \n let hcp = Math.abs(currCandle.max - variable.prevClose)\n let lcp = Math.abs(currCandle.min - variable.prevClose) \n return Math.max(hl, hcp, lcp)\n}\n\n/* Calculate RMA */\nfunction calculateRMA(src, length) { \n if (src.length < length) { return 0 } // We check we have enough values to make the calcs. If not, set value to zero \n let alpha=1/length // It's a constant\n if (isNaN(variable.prevAtrNperiod)) {\n return 0 \n } else {\n return alpha * src + (1 - alpha) * variable.prevAtrNperiod \n } \n \n}\n\n// Build Up Trend function\n\nvariable.up = variable.ohcl4 - (multiplier * variable.atrNPeriod)\n\nif (variable.last2uptrend.length > 2) {\n variable.last2uptrend.splice(0, 1)\n}\n\nvariable.up1 = variable.last2uptrend[variable.last2uptrend.length - 1] // Previous Up Trend \n\nvariable.uptrend = calculateUpTrend()\n\nvariable.last2uptrend.push(variable.uptrend) \n\nfunction calculateUpTrend() {\n if (variable.prevClose > variable.up1) {\n return Math.max(variable.up, variable.up1)\n } else {\n return variable.up\n }\n}\n\n// Build Down Trend function\n\nvariable.dn = variable.ohcl4 + (multiplier * variable.atrNPeriod)\n\nif (variable.last2downtrend.length > 2) {\n variable.last2downtrend.splice(0, 1)\n}\n\nvariable.dn1 = variable.last2downtrend[variable.last2downtrend.length - 1] // Previous Down Trend\n\nvariable.downtrend = calculateDnTrend()\n\nvariable.last2downtrend.push(variable.downtrend) \n\nfunction calculateDnTrend() {\n if (variable.prevClose < variable.dn1) {\n return Math.min(variable.dn, variable.dn1)\n } else {\n return variable.dn\n }\n}\n\n\n// Build Trend function\n\nif (variable.last2Trend.length > 2) {\n variable.last2Trend.splice(0, 1)\n}\n\nvariable.prevTrend = variable.last2Trend[variable.last2Trend.length - 1]\n\nvariable.trend = calculateTrend()\n\nvariable.last2Trend.push(variable.trend)\n\nfunction calculateTrend() {\n\n if (variable.trend = -1 && variable.currClose > variable.dn1) {\n return 1\n }\n else if (variable.trend = 1 && variable.currClose < variable.up1) {\n return -1\n } \n else {\n return variable.prevTrend\n }\n}\n\n// End of code :-)","project":"Superalgos","id":"8f978d1c-9ed3-4dc6-9393-85f1a9497a8f","savedPayload":{"position":{"x":21935.430999857657,"y":19376.156776102827},"targetPosition":{"x":21923.671547740047,"y":19264.273062873897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ab4157e5-9690-48a8-9826-c70b3802e617","savedPayload":{"position":{"x":21923.671547740047,"y":19264.273062873897},"targetPosition":{"x":21900.152643504825,"y":19040.505636416037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* Initialization Code*/\n\n//// Arrays to store past data\nvariable.lastNPeriodTR = []\nvariable.last2uptrend = [0]\nvariable.last2downtrend = [0]\nvariable.last2Trend = [0]\n\n// Initialize trend\nvariable.trend = 1","project":"Superalgos","id":"179290ba-51ab-4754-be1c-90355b7a74c2","savedPayload":{"position":{"x":21762.87902646674,"y":19348.827228370414},"targetPosition":{"x":21808.63689881277,"y":19246.05336438562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"17591e91-1610-4ccd-ab12-167be170d523","savedPayload":{"position":{"x":21808.63689881277,"y":19246.05336438562},"targetPosition":{"x":21900.152643504825,"y":19040.505636416037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"eee493c1-3895-4351-91ea-b53baf429bbb","savedPayload":{"position":{"x":21900.152643504825,"y":19040.505636416037},"targetPosition":{"x":21970.548152772928,"y":18596.045883148225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2bb58403-f839-4e0a-9b04-4f9219d7df83","savedPayload":{"position":{"x":21970.548152772928,"y":18596.045883148225},"targetPosition":{"x":21652.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Super Trend","id":"acfb7d6b-e877-4fb0-bef4-3923c049244b"}}}],"id":"c2aec9e5-4b10-4ebc-89c7-84b3df03c4a4","savedPayload":{"position":{"x":21652.350101238982,"y":18277.84783161428},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Wave Trend","config":"{ \n\"codeName\": \"Wave-Trend\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":" {\n \"codeName\": \"Multi-Period-Market\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Wave Trend","project":"Superalgos","id":"d39fc6ac-79b2-4308-9c65-05e82bf02c8d","savedPayload":{"position":{"x":22200.780530114665,"y":17963.676706110182},"targetPosition":{"x":22120.14774146697,"y":18173.73230207205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9b727bdd-1684-43e1-a39c-fbd14ce64828"}}}],"outputDatasetFolders":[],"id":"ce1d6928-a5ef-4a75-af09-51d8b6e5ec3a","savedPayload":{"position":{"x":22120.14774146697,"y":18173.73230207205},"targetPosition":{"x":22039.514952819278,"y":18383.78789803392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Wave Trend Multi-Period-Market","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"88287fbf-f6b6-4b7d-ab0a-557c10b459d2","savedPayload":{"position":{"x":22226.132246264708,"y":18130.307096818775},"targetPosition":{"x":22214.372794147097,"y":18242.190810047705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"64877b9b-6a54-4b10-b82a-ab1a12ff483b"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"f713c037-7ea9-46f2-9982-318e30de5db1","savedPayload":{"position":{"x":22301.801714811005,"y":18171.392266054598},"targetPosition":{"x":22214.372794147097,"y":18242.190810047705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"d4377097-6d3f-418d-8101-2bed732b55ec","savedPayload":{"position":{"x":22326.256507376027,"y":18253.950262165316},"targetPosition":{"x":22214.372794147097,"y":18242.190810047705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"e2689a2e-356c-4dda-b198-2fa163578c77","savedPayload":{"position":{"x":22214.372794147097,"y":18242.190810047705},"targetPosition":{"x":22039.514952819278,"y":18383.78789803392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"64877b9b-6a54-4b10-b82a-ab1a12ff483b","savedPayload":{"position":{"x":22483.97470608709,"y":18313.392388765817},"targetPosition":{"x":22039.514952819278,"y":18383.78789803392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"dbb205f1-b207-4e15-8523-16a8f5d00c81","savedPayload":{"position":{"x":22249.570548781146,"y":18464.420686681613},"targetPosition":{"x":22039.514952819278,"y":18383.78789803392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"1abb722a-a84a-4dbe-892b-cc35a0776e3a","savedPayload":{"position":{"x":22181.112040805492,"y":18558.64573936174},"targetPosition":{"x":22039.514952819278,"y":18383.78789803392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"26d5d563-1bb6-4766-9601-f43578e09501","savedPayload":{"position":{"x":22039.514952819278,"y":18383.78789803392},"targetPosition":{"x":21595.055199551465,"y":18454.18340730202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":" {\n \"codeName\": \"Multi-Period-Daily\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Wave Trend","project":"Superalgos","id":"b8a695ab-0f23-4002-82b9-400a29d413c2","savedPayload":{"position":{"x":22781.303758898535,"y":18352.623792065417},"targetPosition":{"x":22370.208302959363,"y":18535.655281449526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"3bf983d5-4d3c-46f8-a130-9e621b76e62d"}}}],"outputDatasetFolders":[],"id":"c66980e3-2ed9-4ce8-a3b0-a63d5e91bc17","savedPayload":{"position":{"x":22370.208302959363,"y":18535.655281449526},"targetPosition":{"x":21959.11284702019,"y":18718.686770833636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Wave Trend Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"543c4f25-0af0-450b-9ea1-a4a4c6877d4a","savedPayload":{"position":{"x":22826.758891859656,"y":18604.459002008694},"targetPosition":{"x":22406.647699935915,"y":18765.72457930408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a79125c3-e49c-4ad0-85df-8ea1e6b72cb2"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"2f7dd1e6-e0e0-4565-a6b9-a49c2ddcd0b4","savedPayload":{"position":{"x":22856.030990575473,"y":18742.173398994753},"targetPosition":{"x":22406.647699935915,"y":18765.72457930408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{ \n\"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"01b4e456-8585-448d-acd1-d9a730f95eb1","savedPayload":{"position":{"x":22841.314321765996,"y":18882.193149600214},"targetPosition":{"x":22406.647699935915,"y":18765.72457930408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"97ed7b3c-ce95-484a-8608-e8826f28d08e","savedPayload":{"position":{"x":22784.049455511355,"y":19010.81214506084},"targetPosition":{"x":22406.647699935915,"y":18765.72457930408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"f5fb61fa-828b-4551-8b48-9e9c1fc4fa64","savedPayload":{"position":{"x":22406.647699935915,"y":18765.72457930408},"targetPosition":{"x":21959.11284702019,"y":18718.686770833636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"a79125c3-e49c-4ad0-85df-8ea1e6b72cb2","savedPayload":{"position":{"x":22323.170494488917,"y":18983.19013436525},"targetPosition":{"x":21959.11284702019,"y":18718.686770833636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"17690387-850d-4e80-8d08-abebcf1ec894","savedPayload":{"position":{"x":22050.628591712248,"y":18924.23449880322},"targetPosition":{"x":21959.11284702019,"y":18718.686770833636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"654860da-2fe0-4b1c-a91d-45690a8d11b8","savedPayload":{"position":{"x":21935.59394278497,"y":18942.454197291496},"targetPosition":{"x":21959.11284702019,"y":18718.686770833636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"56663c74-0c47-441f-8591-d9098f9a610b","savedPayload":{"position":{"x":21959.11284702019,"y":18718.686770833636},"targetPosition":{"x":21595.055199551465,"y":18454.18340730202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Wave Trend","config":"{\n \"codeName\": \"Wave-Trend\",\n \"singularVariableName\": \"waveTrend\",\n \"pluralVariableName\": \"waveTrends\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"9b727bdd-1684-43e1-a39c-fbd14ce64828","savedPayload":{"position":{"x":21909.287496320045,"y":18886.687059402426},"targetPosition":{"x":21641.985539063535,"y":18750.489909480562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"3bf983d5-4d3c-46f8-a130-9e621b76e62d","savedPayload":{"position":{"x":21778.1826889854,"y":19017.791866737072},"targetPosition":{"x":21641.985539063535,"y":18750.489909480562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"record.current.begin","project":"Superalgos","id":"7c0c0127-d33a-40cd-95ce-a4c4db782862","savedPayload":{"position":{"x":22014.412436913575,"y":19720.69514846755},"targetPosition":{"x":21781.268648476485,"y":19531.899031152596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1fa9f019-5b1a-4310-acb9-18be189b37a7","savedPayload":{"position":{"x":21781.268648476485,"y":19531.899031152596},"targetPosition":{"x":21548.124860039396,"y":19343.102913837643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{ \n\"codeName\": \"end\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"record.current.end","project":"Superalgos","id":"fe518407-7360-4ded-ac8c-743508cf9944","savedPayload":{"position":{"x":21763.14562976658,"y":19903.251169735962},"targetPosition":{"x":21655.635244902987,"y":19623.177041786803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"efbc0585-5a1c-4caf-ad89-2e29b5e98ca0","savedPayload":{"position":{"x":21655.635244902987,"y":19623.177041786803},"targetPosition":{"x":21548.124860039396,"y":19343.102913837643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Record WAVETREND","config":"{ \n \"codeName\": \"waveTrend\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.waveTrend","project":"Superalgos","id":"29c99584-8b16-494a-a1be-0e9d7071641b","savedPayload":{"position":{"x":21477.729350771293,"y":19787.562667105456},"targetPosition":{"x":21501.194520527326,"y":19639.409416016184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"39424ebf-7f21-4372-8b88-15bb7086cca9","savedPayload":{"position":{"x":21501.194520527326,"y":19639.409416016184},"targetPosition":{"x":21548.124860039396,"y":19343.102913837643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Record WAVETRENDSIGNAL","config":"{ \n \"codeName\": \"waveTrendSignal\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.waveTrendSignal","project":"Superalgos","id":"a5e59332-48bb-4252-97aa-ac587609a4e8","savedPayload":{"position":{"x":21264.930684066967,"y":19692.818596493278},"targetPosition":{"x":21359.328742724443,"y":19576.246702274733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d9a10773-5caa-4b8d-8637-ccaa4faef8b2","savedPayload":{"position":{"x":21359.328742724443,"y":19576.246702274733},"targetPosition":{"x":21548.124860039396,"y":19343.102913837643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Record WT3","config":"{ \n \"codeName\": \"wt3\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.wt3","project":"Superalgos","id":"a8cbbddf-28c6-4d38-8eca-841e44f4884a","savedPayload":{"position":{"x":21128.013668115655,"y":19504.36849113303},"targetPosition":{"x":21268.050732090236,"y":19450.613298701235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"33d15bce-9db7-4b43-b795-59353cd2e63d","savedPayload":{"position":{"x":21268.050732090236,"y":19450.613298701235},"targetPosition":{"x":21548.124860039396,"y":19343.102913837643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8a14c05f-d4a6-4cd5-9beb-328ec32e44dd","savedPayload":{"position":{"x":21548.124860039396,"y":19343.102913837643},"targetPosition":{"x":21641.985539063535,"y":18750.489909480562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* Loop Code */\n\nlet candle = {\n open: record.current.open,\n close: record.current.close,\n min: record.current.min,\n max: record.current.max,\n begin: record.current.begin,\n end: record.current.end,\n} \n\n/* Set constant */\n\nlet n1=10 // Channel Length\nlet n2=21 // Average Length\n\n// Overbought and Oversold Levels\nlet ob=60\nlet ob2=53\nlet os=-60\nlet os2=-53\n\n/* ************** */\n\nvariable.ap = (candle.max+candle.min+candle.close)/3\n\n/* Build 3 EMAs and CI parameter */\n\nvariable.EMAesa = calculateEMA(variable.ap, n1, variable.previousEMAesa)\nif (isNaN(variable.EMAesa)) {variable.EMAesa=0}\nvariable.previousEMAesa = variable.EMAesa\n\nvariable.EMAd = calculateEMA(Math.abs(variable.ap-variable.EMAesa), n1, variable.previousEMAd)\nif (isNaN(variable.EMAd)) {variable.EMAd=0}\nvariable.previousEMAd = variable.EMAd\n\nvariable.ci = (variable.ap-variable.EMAesa)/(0.015*variable.EMAd)\nif (isNaN(variable.ci)) {variable.ci=0}\n\nvariable.EMAtci = calculateEMA(variable.ci, n2, variable.previousEMAtci)\nif (isNaN(variable.EMAtci)) {variable.EMAtci=0}\nvariable.previousEMAtci = variable.EMAtci\n\nfunction calculateEMA(src, periods, previousEMA) {\n if (src.length < periods) { return 0 }\n let k = 2 / (periods + 1)\n return src * k + previousEMA * (1-k)\n}\n\n/* Build WAVETREND and WAVETRENDSIGNAL \nFor WAVETRENDSIGNAL we need a SMA\nParameters are SMA(WAVETREND, 4) */\n\nvariable.waveTrend = variable.EMAtci // Wave Trend - It's a line\n\nvariable.last4wt1.push(variable.waveTrend)\nif (variable.last4wt1.length > 4) {\n variable.last4wt1.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 4 elements\n}\n\nvariable.waveTrendSignal = calculateSMA(variable.last4wt1, 4) // Signal - It's a line\n\nfunction calculateSMA(src, periods) { \n // Check we have enough values to make the calculation\n if (src.length < periods) { return 0 }\n \n let sum = 0 // Initialize sum variable\n for (let i = src.length - periods; i < src.length; i++) {\n sum = sum + src[i]\n }\n let sma = sum / periods\n return sma\n}\n\n/* Build WT3 */\n\nvariable.wt3 = variable.waveTrend - variable.waveTrendSignal // Histogram\n\n// End of code :-)","project":"Superalgos","id":"32d5f441-d68a-4c29-89ee-041138ae67d3","savedPayload":{"position":{"x":21304.85350470757,"y":19179.128294782637},"targetPosition":{"x":21354.85350470757,"y":19092.525754404192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6c129c1b-0def-43a3-826b-7542c834eb24","savedPayload":{"position":{"x":21354.85350470757,"y":19092.525754404192},"targetPosition":{"x":21429.85350470757,"y":18962.621943836526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* Initialization Code */\n/* WaveTrend needs 3 EMA and 1 SMA\nOthers constants and vars are declared in the loop code\nso to use let and not var and avoid possible conflicts */\n \nvariable.previousEMAesa = 0\nvariable.previousEMAd = 0\nvariable.previousEMAtci = 0\n\nvariable.last4wt1 = [] // Last 4 wt1 records\n\n/* HLC3 */\nvariable.ap = 0","project":"Superalgos","id":"5cad68f2-69ba-42a1-95b5-3a6ae2cac0b1","savedPayload":{"position":{"x":21213.34715376146,"y":19087.621943836526},"targetPosition":{"x":21299.949694139905,"y":19037.621943836526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c689da4f-8f19-47e6-8f82-11e2f42d3ecd","savedPayload":{"position":{"x":21299.949694139905,"y":19037.621943836526},"targetPosition":{"x":21429.85350470757,"y":18962.621943836526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3f88bd6f-cdde-4122-9778-ce7a7588fd7b","savedPayload":{"position":{"x":21429.85350470757,"y":18962.621943836526},"targetPosition":{"x":21641.985539063535,"y":18750.489909480562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ff542733-ddbd-4cbf-b90d-a12c49752916","savedPayload":{"position":{"x":21641.985539063535,"y":18750.489909480562},"targetPosition":{"x":21595.055199551465,"y":18454.18340730202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Wave Trend","id":"cfa6bcb9-8d18-4658-81f4-1f7d55adc742"}}}],"id":"9ce52f75-7caa-4d0e-8faf-09a1e8a8033a","savedPayload":{"position":{"x":21595.055199551465,"y":18454.18340730202},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Donchian Channel","config":"{ \n\"codeName\": \"Donchian-Channel\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces the MACD indicator.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Donchian Channel","project":"Superalgos","id":"2000e920-443a-49d2-9003-b16d742547dc","savedPayload":{"position":{"x":22215.55949757523,"y":18372.578515415673},"targetPosition":{"x":21963.9583271916,"y":18535.97022592018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7298225c-3b68-4f34-a935-fc0ab3d8f662"}}}],"outputDatasetFolders":[],"id":"014aaa46-fa23-41a3-9834-b9382f6af876","savedPayload":{"position":{"x":21963.9583271916,"y":18535.97022592018},"targetPosition":{"x":21712.357156807975,"y":18699.361936424688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"22266684-e056-49a8-8885-4a31cebd34d2","savedPayload":{"position":{"x":22212.685199142004,"y":18460.717701908587},"targetPosition":{"x":22011.946017234346,"y":18683.661149551805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Donchian Channel Multi-Period-Market","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"d55aa460-8292-4cba-831a-01425cbea4e7","savedPayload":{"position":{"x":22161.740447447533,"y":18675.810756115363},"targetPosition":{"x":22011.946017234346,"y":18683.661149551805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"8af7a7fd-54f6-496c-b4e3-05a37d838288"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"71b430e7-6a5c-437b-a015-76a8202de236","savedPayload":{"position":{"x":22123.417741055957,"y":18784.030740505634},"targetPosition":{"x":22011.946017234346,"y":18683.661149551805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"9070474a-4a33-4c1b-8ac0-113ca33928c5","savedPayload":{"position":{"x":22011.946017234346,"y":18683.661149551805},"targetPosition":{"x":21712.357156807975,"y":18699.361936424688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"8af7a7fd-54f6-496c-b4e3-05a37d838288","savedPayload":{"position":{"x":21979.659114064485,"y":18835.55908634655},"targetPosition":{"x":21712.357156807975,"y":18699.361936424688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"75ad91f0-37ca-42fb-9c20-c3965f115741","savedPayload":{"position":{"x":21794.05301206023,"y":18825.1625216165},"targetPosition":{"x":21712.357156807975,"y":18699.361936424688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"f4f25b2a-d402-43d9-b1de-248f2987e80f","savedPayload":{"position":{"x":21720.207550244417,"y":18849.156366637875},"targetPosition":{"x":21712.357156807975,"y":18699.361936424688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"18bfecb5-3666-4eaf-8b3a-d44a41aa5752","savedPayload":{"position":{"x":21712.357156807975,"y":18699.361936424688},"targetPosition":{"x":21445.055199551465,"y":18563.164786502824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces the MACD indicator.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Donchian Channel","project":"Superalgos","id":"a0373c2d-dcd9-4b36-8db8-6c5e377f4e70","savedPayload":{"position":{"x":20730.93072434567,"y":19122.500353393523},"targetPosition":{"x":20753.3497524216,"y":18823.339214239168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"50ed783e-0e71-4903-8a82-854c8bd2ed6e"}}}],"outputDatasetFolders":[],"id":"a9f3e616-1897-4716-94be-92676ab2c97c","savedPayload":{"position":{"x":20753.3497524216,"y":18823.339214239168},"targetPosition":{"x":20775.76878049753,"y":18524.178075084812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Donchian Channel Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"ab757f0c-c816-42c1-86f0-97c16ef7df9b","savedPayload":{"position":{"x":20568.727575212957,"y":19069.62753531758},"targetPosition":{"x":20606.772763078443,"y":18772.04970737961},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"0c9cddc3-dfd4-49f2-b5e9-2d9cb15164e2"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"5675ab54-d0e8-4038-ab6a-56ef2aa08c55","savedPayload":{"position":{"x":20478.633033263286,"y":19043.306430140354},"targetPosition":{"x":20606.772763078443,"y":18772.04970737961},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{ \n\"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"51eb2e2d-75b5-4aa9-9628-da6fdafee5c0","savedPayload":{"position":{"x":20401.081700869912,"y":18990.432826982586},"targetPosition":{"x":20606.772763078443,"y":18772.04970737961},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"c19ecb80-d74c-4a66-8bc9-7c164f2f81bf","savedPayload":{"position":{"x":20343.664842779413,"y":18916.182362513413},"targetPosition":{"x":20606.772763078443,"y":18772.04970737961},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"22190dfd-2d9d-401b-a391-642f3140b8ba","savedPayload":{"position":{"x":20606.772763078443,"y":18772.04970737961},"targetPosition":{"x":20775.76878049753,"y":18524.178075084812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"0c9cddc3-dfd4-49f2-b5e9-2d9cb15164e2","savedPayload":{"position":{"x":20640.623450312167,"y":18589.260635952447},"targetPosition":{"x":20775.76878049753,"y":18524.178075084812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"decfbbf5-ddb1-48ed-9703-3dfd2817fd4a","savedPayload":{"position":{"x":20626.18821092035,"y":18512.968561046848},"targetPosition":{"x":20775.76878049753,"y":18524.178075084812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"66d5f6e0-5b1e-4fce-9187-11f226def0a6","savedPayload":{"position":{"x":20651.832964350127,"y":18439.68006637527},"targetPosition":{"x":20775.76878049753,"y":18524.178075084812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"04245397-cdac-4f93-b45f-86787e821ab6","savedPayload":{"position":{"x":21537.760297863948,"y":18848.48174139137},"targetPosition":{"x":21445.055199551465,"y":18563.164786502824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Donchian Channel","config":"{\n \"codeName\": \"Donchian-Channel\",\n \"singularVariableName\": \"donchian\",\n \"pluralVariableName\": \"donchians\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"7298225c-3b68-4f34-a935-fc0ab3d8f662","savedPayload":{"position":{"x":21685.219227936483,"y":19034.513231655692},"targetPosition":{"x":21240.75947466867,"y":18964.11772238759},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"50ed783e-0e71-4903-8a82-854c8bd2ed6e","savedPayload":{"position":{"x":21311.154983936773,"y":19408.577475655402},"targetPosition":{"x":21240.75947466867,"y":18964.11772238759},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"record.current.begin","project":"Superalgos","id":"1a36f31f-c662-44c1-859e-95dfc06c72cf","savedPayload":{"position":{"x":21205.432704204683,"y":19638.192658346925},"targetPosition":{"x":20922.381387523103,"y":19454.376984029353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"39eca54b-9530-4c5b-a28f-a58a7b7a7f6a","savedPayload":{"position":{"x":20922.381387523103,"y":19454.376984029353},"targetPosition":{"x":20639.330070841523,"y":19270.561309711782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{ \n\"codeName\": \"end\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"record.current.end","project":"Superalgos","id":"25467c14-bbdd-4b2f-8f55-7463c2e47d0f","savedPayload":{"position":{"x":20604.003300377535,"y":19944.63624567112},"targetPosition":{"x":20621.66668560953,"y":19607.59877769145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d8a9f877-40ea-4464-823b-6ece32c332a4","savedPayload":{"position":{"x":20621.66668560953,"y":19607.59877769145},"targetPosition":{"x":20639.330070841523,"y":19270.561309711782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"hiHigh","config":"{ \n \"codeName\": \"hiHigh\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.hiHigh","project":"Superalgos","id":"7d1d3c9b-5638-4ff1-a97b-fccb540d14f4","savedPayload":{"position":{"x":20188.258017971162,"y":19500.394000204928},"targetPosition":{"x":20338.61536892795,"y":19423.78310337388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6fd13621-5530-49fc-9b62-cd43937ae9c8","savedPayload":{"position":{"x":20338.61536892795,"y":19423.78310337388},"targetPosition":{"x":20639.330070841523,"y":19270.561309711782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"loLow","config":"{ \n \"codeName\": \"loLow\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.loLow","project":"Superalgos","id":"ed2dd438-916d-422c-8395-b85103cfac6a","savedPayload":{"position":{"x":20214.753095819153,"y":18994.837798235425},"targetPosition":{"x":20356.278754159943,"y":19086.74563539421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d8ffc062-4f09-429d-8b7f-fad13e2b0bcc","savedPayload":{"position":{"x":20356.278754159943,"y":19086.74563539421},"targetPosition":{"x":20639.330070841523,"y":19270.561309711782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Mid Point","config":"{ \n \"codeName\": \"midPoint\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.midPoint","project":"Superalgos","id":"fda3d478-ea77-4a42-a742-e99caddf1b37","savedPayload":{"position":{"x":20665.825148689513,"y":18765.00510774228},"targetPosition":{"x":20656.993456073516,"y":18933.523841732112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"be82c2e0-7fbd-4aa6-9cc2-203b60a3138d","savedPayload":{"position":{"x":20656.993456073516,"y":18933.523841732112},"targetPosition":{"x":20639.330070841523,"y":19270.561309711782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"086a47ac-062a-442f-9cde-0fa2f0550df3","savedPayload":{"position":{"x":20639.330070841523,"y":19270.561309711782},"targetPosition":{"x":21240.75947466867,"y":18964.11772238759},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* Loop Code */\n\nlet dcLen = 20 // Channel length\nlet candle = record.current\n\n// Build arrays Max and Min\n\nvariable.lastHighs.push(candle.max) \nvariable.lastLows.push(candle.min)\n\n// Keep the array the correct size\n\nif (variable.lastHighs.length > dcLen) {\n variable.lastHighs.splice(0, 1)\n}\n\nif (variable.lastLows.length > dcLen) {\n variable.lastLows.splice(0, 1)\n}\n\n// Calculate indicator values\n\nvariable.hiHigh = calculateHigh (variable.lastHighs, dcLen) // higher highs\nvariable.loLow = calculateLow (variable.lastLows, dcLen) // lower lows\nvariable.midPoint = (variable.hiHigh + variable.loLow) / 2 // Midpoint\n\nfunction calculateHigh (array, length) {\n\n /* We check we have enough values to make the calculation */\n if (array.length < length) { return 0 }\n\n return Math.max(...array)\n}\n\nfunction calculateLow (array, length) {\n\n /* We check we have enough values to make the calculation */\n if (array.length < length) { return 0 }\n\n return Math.min(...array)\n}\n\n\n// End of code :-)","project":"Superalgos","id":"58b389fb-0695-4083-8b14-cd6679d36d67","savedPayload":{"position":{"x":20596.561456762163,"y":18558.568243131544},"targetPosition":{"x":20705.228112219684,"y":18587.685385705576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0655fb31-8425-4174-bc6b-275c313ee834","savedPayload":{"position":{"x":20705.228112219684,"y":18587.685385705576},"targetPosition":{"x":20922.561423134724,"y":18645.919670853644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* Initialization Code*/\n\nvariable.lastHighs = []\nvariable.lastLows = []\n\n","project":"Superalgos","id":"eeb544b6-45f7-4bff-a026-cef0ad9edbff","savedPayload":{"position":{"x":20835.209995412624,"y":18319.919704481083},"targetPosition":{"x":20864.327137986656,"y":18428.586359938603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a2c221ef-f3c9-4069-9ff3-4ac1190b1527","savedPayload":{"position":{"x":20864.327137986656,"y":18428.586359938603},"targetPosition":{"x":20922.561423134724,"y":18645.919670853644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"393374e9-30fa-4598-9143-8df35e487665","savedPayload":{"position":{"x":20922.561423134724,"y":18645.919670853644},"targetPosition":{"x":21240.75947466867,"y":18964.11772238759},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4768d183-d8ea-4686-8419-f9dad3172020","savedPayload":{"position":{"x":21240.75947466867,"y":18964.11772238759},"targetPosition":{"x":21445.055199551465,"y":18563.164786502824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Donchian Channel","id":"dd7b5cd7-3b5e-4809-949e-777ddcce4648"}}}],"id":"48c69242-e9f9-4433-b12f-6c79ee85d86b","savedPayload":{"position":{"x":21445.055199551465,"y":18563.164786502824},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Directional Movement Index (DMI)","config":"{ \n\"codeName\": \"DMI\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market DMI Directional Movement","project":"Superalgos","id":"5919f5c5-6bee-468c-b910-f5652cbecb82","savedPayload":{"position":{"x":21995.019873701105,"y":18861.8683175051},"targetPosition":{"x":21695.431013274734,"y":18846.167530632218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ffc7f78b-9ec3-4218-b76f-47233d535a17"}}}],"outputDatasetFolders":[],"id":"7aaea608-87b1-44dd-b913-0b901b31f0a4","savedPayload":{"position":{"x":21695.431013274734,"y":18846.167530632218},"targetPosition":{"x":21395.842152848363,"y":18830.466743759334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"fe35d43c-c6df-4e14-8f8f-05097d8780c4","savedPayload":{"position":{"x":21940.88760345213,"y":18931.484947018515},"targetPosition":{"x":21647.44332323199,"y":18993.858454263842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Directional Movement Index (DMI) Multi-Period-Market","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"fd624718-e85a-4d9d-8a67-90d4e961d39d","savedPayload":{"position":{"x":21773.243908423803,"y":19075.554309516097},"targetPosition":{"x":21647.44332323199,"y":18993.858454263842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"f80adcc4-0286-43e6-a21f-b11c8210b305"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"84e787de-6e28-47f7-999b-ccb4df1b58b3","savedPayload":{"position":{"x":21678.630076854653,"y":19140.580594373914},"targetPosition":{"x":21647.44332323199,"y":18993.858454263842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"0caf1c52-9492-4149-900c-88c36f943c04","savedPayload":{"position":{"x":21647.44332323199,"y":18993.858454263842},"targetPosition":{"x":21395.842152848363,"y":18830.466743759334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"f80adcc4-0286-43e6-a21f-b11c8210b305","savedPayload":{"position":{"x":21532.039302770227,"y":19097.768701015844},"targetPosition":{"x":21395.842152848363,"y":18830.466743759334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"77ab62fd-1ace-4833-852a-4b7fcfa71af1","savedPayload":{"position":{"x":21387.99175941192,"y":18980.26117397252},"targetPosition":{"x":21395.842152848363,"y":18830.466743759334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"1e735ccd-0aac-412e-9cd3-e7371c4da681","savedPayload":{"position":{"x":21314.146297596108,"y":18956.267328951148},"targetPosition":{"x":21395.842152848363,"y":18830.466743759334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b15d854d-e6bd-4a3f-86a4-e52298e1bedb","savedPayload":{"position":{"x":21395.842152848363,"y":18830.466743759334},"targetPosition":{"x":21259.6450029265,"y":18563.164786502824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":" {\n \"codeName\": \"Multi-Period-Daily\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily DMI Directional Movement","project":"Superalgos","id":"7aa772da-83ed-49bc-ae02-cdf6dec2e327","savedPayload":{"position":{"x":21568.418268429334,"y":19294.368636677806},"targetPosition":{"x":21367.679086521675,"y":19071.425189034588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"9b222dca-e8c2-4392-9c3e-7c970dca4a52"}}}],"outputDatasetFolders":[],"id":"689dc40b-6766-4c3f-8b01-1337836842d3","savedPayload":{"position":{"x":21367.679086521675,"y":19071.425189034588},"targetPosition":{"x":21166.939904614017,"y":18848.48174139137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Directional Movement Index (DMI) Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"68ae89c3-ae95-4f7c-8010-77696f7cece1","savedPayload":{"position":{"x":21418.109529174297,"y":19375.0698100486},"targetPosition":{"x":21229.313411859344,"y":19141.92602161151},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"410a9275-4f43-4cbe-9ee9-a674a8465fb2"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"676dd9be-1e1e-4f80-98af-e9d74d588c9b","savedPayload":{"position":{"x":21336.823796722936,"y":19422.00014956067},"targetPosition":{"x":21229.313411859344,"y":19141.92602161151},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{ \n\"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"7d829a3f-61dc-451c-aedf-2d441bb73ee6","savedPayload":{"position":{"x":21245.014198732228,"y":19441.51488203788},"targetPosition":{"x":21229.313411859344,"y":19141.92602161151},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"a4433576-f48c-46ad-be60-94456f62807d","savedPayload":{"position":{"x":21151.667698328587,"y":19431.703769498232},"targetPosition":{"x":21229.313411859344,"y":19141.92602161151},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"2bc735c8-7b2c-43bf-a5ad-04a92a55b492","savedPayload":{"position":{"x":21229.313411859344,"y":19141.92602161151},"targetPosition":{"x":21166.939904614017,"y":18848.48174139137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"410a9275-4f43-4cbe-9ee9-a674a8465fb2","savedPayload":{"position":{"x":21120.587355457774,"y":18991.140218835644},"targetPosition":{"x":21166.939904614017,"y":18848.48174139137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"f5079609-c590-4de5-aeaf-50454e9462ff","savedPayload":{"position":{"x":21055.468180792406,"y":18948.8513323452},"targetPosition":{"x":21166.939904614017,"y":18848.48174139137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"4a4808ce-da77-4797-9c98-a20c7f4b66ff","savedPayload":{"position":{"x":21020.217764503945,"y":18879.668495014033},"targetPosition":{"x":21166.939904614017,"y":18848.48174139137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e7398a04-47e8-4195-9504-c8fb6a7f8006","savedPayload":{"position":{"x":21166.939904614017,"y":18848.48174139137},"targetPosition":{"x":21259.6450029265,"y":18563.164786502824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"DMI Directional Movement","config":"{\n \"codeName\": \"DMI\",\n \"singularVariableName\": \"DMI\",\n \"pluralVariableName\": \"DMIs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"ffc7f78b-9ec3-4218-b76f-47233d535a17","savedPayload":{"position":{"x":21176.89011857568,"y":19085.658562919565},"targetPosition":{"x":20858.692067041735,"y":18767.46051138562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"9b222dca-e8c2-4392-9c3e-7c970dca4a52","savedPayload":{"position":{"x":20654.39634215894,"y":19168.413447270384},"targetPosition":{"x":20858.692067041735,"y":18767.46051138562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"record.current.begin","project":"Superalgos","id":"1ec34464-ca30-478d-b477-060d5ce5c395","savedPayload":{"position":{"x":20433.900803083092,"y":19292.034035369074},"targetPosition":{"x":20312.951620111555,"y":18976.95064142627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e5938129-efd9-406d-99d7-5138f70c071f","savedPayload":{"position":{"x":20312.951620111555,"y":18976.95064142627},"targetPosition":{"x":20192.002437140018,"y":18661.867247483464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{ \n\"codeName\": \"end\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"record.current.end","project":"Superalgos","id":"fec95a23-69ea-4963-8525-8eaa5d791bc9","savedPayload":{"position":{"x":19767.211173181375,"y":19186.440771466918},"targetPosition":{"x":19979.606805160696,"y":18924.15400947519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"138e7e11-7336-481f-9a0c-397cdcf8c275","savedPayload":{"position":{"x":19979.606805160696,"y":18924.15400947519},"targetPosition":{"x":20192.002437140018,"y":18661.867247483464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"+DI","config":"{ \n \"codeName\": \"plusDI\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.plusDI","project":"Superalgos","id":"ff000762-5411-45e6-bd76-17f41e2b7770","savedPayload":{"position":{"x":19691.985214713728,"y":18582.67229955685},"targetPosition":{"x":19858.65762218916,"y":18609.070615532386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ae437f00-ed26-439e-8ee2-b464ac13a414","savedPayload":{"position":{"x":19858.65762218916,"y":18609.070615532386},"targetPosition":{"x":20192.002437140018,"y":18661.867247483464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"-DI","config":"{ \n \"codeName\": \"minusDI\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.minusDI","project":"Superalgos","id":"bc1af38f-d7ee-4af5-a8ed-e793527c0955","savedPayload":{"position":{"x":20010.578662682707,"y":18189.242156569257},"targetPosition":{"x":20071.053254168477,"y":18346.78385354066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"25cafbf6-5636-4e0e-aabc-5323c92faa92","savedPayload":{"position":{"x":20071.053254168477,"y":18346.78385354066},"targetPosition":{"x":20192.002437140018,"y":18661.867247483464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ADX","config":"{ \n \"codeName\": \"adx\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.adx","project":"Superalgos","id":"57bc2009-d447-4470-a9e3-49cab55d6fac","savedPayload":{"position":{"x":20510.595885109,"y":18268.43710449587},"targetPosition":{"x":20404.39806911934,"y":18399.580485491737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"01c1bb22-2c02-4b43-8084-71126021fbc9","savedPayload":{"position":{"x":20404.39806911934,"y":18399.580485491737},"targetPosition":{"x":20192.002437140018,"y":18661.867247483464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3aa516a7-f994-48ed-9f01-92cf496e5338","savedPayload":{"position":{"x":20192.002437140018,"y":18661.867247483464},"targetPosition":{"x":20858.692067041735,"y":18767.46051138562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* Loop Code */\n\nlet len = 14 // DI Length\nlet lensig = 14 // ADX Smoothing\n\n// Get Current and Previous Candle Data\nlet currCandle = record.current \nlet prevCandle = record.previous \n\n\n// Make sure data exists for prevCandle\n// Build variable.up = current max - previous max\n\nif (prevCandle === undefined) {\n variable.up = 0\n variable.down = 0\n variable.prevClose = currCandle.close\n} else {\n variable.up = currCandle.max - prevCandle.max\n variable.down = prevCandle.min - currCandle.min\n variable.prevClose = prevCandle.close\n}\n\n\n// console.log (variable.up, variable.down)\n\n\nvariable.plusDM = calculatePlusDM (variable.up,variable.down)\nvariable.minusDM = calculateMinusDM (variable.up,variable.down)\n\n\nfunction calculatePlusDM (up, down) {\n if (up > down && up > 0) {\n return up\n } else {\n return 0\n }\n}\n\nfunction calculateMinusDM (up, down) {\n if (down > up && down > 0) {\n return down\n } else {\n return 0\n }\n}\n\n\nvariable.trueRange = calculateTR()\n\n/* Calculate True Range */\nfunction calculateTR() {\n let hl = currCandle.max - currCandle.min \n if (variable.prevClose === 0) { return hl }\n if (isNaN(variable.prevClose)) { return hl } // Return High-Low when previous Close is 0 \n let hcp = Math.abs(currCandle.max - variable.prevClose)\n let lcp = Math.abs(currCandle.min - variable.prevClose) \n return Math.max(hl, hcp, lcp)\n}\n\n/* Calculate RMA */\nfunction calculateRMA(src, length, prevRMA) {\n if (src.length < length) { return 0 }\n let alpha = 1/length\n return alpha*src+(1-alpha)*prevRMA\n}\n\nvariable.trur = calculateRMA(variable.trueRange, len, variable.previousTrur)\nvariable.previousTrur = variable.trur\n\nk = 100/variable.trur\n\nvariable.basePlusDI = calculateRMA(variable.plusDM, len, variable.previousBasePlusDI)\nvariable.previousBasePlusDI = variable.basePlusDI\n\nvariable.baseMinusDI = calculateRMA(variable.minusDM, len, variable.previousBaseMinusDI)\nvariable.previousBaseMinusDI = variable.baseMinusDI\n\nvariable.plusDI = variable.basePlusDI * k\nif (isNaN(variable.plusDI)) {variable.plusDI=0}\nvariable.minusDI = variable.baseMinusDI * k\nif (isNaN(variable.minusDI)) {variable.minusDI=0}\n\nvariable.sumPlusMinus = variable.plusDI + variable.minusDI\n\nif (variable.sumPlusMinus == 0) {\n variable.sumPlusMinus = 1 \n} else {\n variable.sumPlusMinus = variable.sumPlusMinus\n}\n\nvariable.baseADX = calculateRMA(Math.abs(variable.plusDI - variable.minusDI)/variable.sumPlusMinus, lensig, variable.previousBaseADX)\nvariable.previousBaseADX = variable.baseADX\nvariable.adx = 100 * variable.baseADX\n\n// End of code :-)","project":"Superalgos","id":"3d2db569-3ddf-43da-be3d-c28e5504273d","savedPayload":{"position":{"x":20575.90092579431,"y":18060.71399612608},"targetPosition":{"x":20646.699469787418,"y":18148.142916789988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a6258f38-8354-48de-adb7-3b661899667e","savedPayload":{"position":{"x":20646.699469787418,"y":18148.142916789988},"targetPosition":{"x":20788.296557773632,"y":18323.000758117807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* Initialization Code*/\n\n\nvariable.previousTrur = 0\nvariable.previousBasePlusDI = 0\nvariable.previousBaseMinusDI = 0\nvariable.previousBaseADX = 0","project":"Superalgos","id":"c2937149-cf61-4d86-808e-979e5948216b","savedPayload":{"position":{"x":20909.245740745173,"y":18007.917364175002},"targetPosition":{"x":20868.929346421326,"y":18112.94516215594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9a0b15f6-028e-47c3-9ba3-6c0bef0cdfb3","savedPayload":{"position":{"x":20868.929346421326,"y":18112.94516215594},"targetPosition":{"x":20788.296557773632,"y":18323.000758117807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"da6ee60e-081f-401e-bd6a-5df0a847e64f","savedPayload":{"position":{"x":20788.296557773632,"y":18323.000758117807},"targetPosition":{"x":20858.692067041735,"y":18767.46051138562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"baba93f1-f096-429d-a544-efe36119fac8","savedPayload":{"position":{"x":20858.692067041735,"y":18767.46051138562},"targetPosition":{"x":21259.6450029265,"y":18563.164786502824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"DMI Directional Movement","id":"4e8c7782-32a0-496d-baab-d11bb1a562d0"}}}],"id":"de6b7c83-31ee-41f3-83cc-57f47865c6e9","savedPayload":{"position":{"x":21259.6450029265,"y":18563.164786502824},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Ichimoku Cloud","config":"{ \n\"codeName\": \"Ichimoku\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces the MACD indicator.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Ichimoku Cloud","project":"Superalgos","id":"fc0db1a6-d3f2-42ee-8151-3341b44cd685","savedPayload":{"position":{"x":20577.965343509648,"y":19519.34783161428},"targetPosition":{"x":20318.157722374315,"y":19369.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"80018870-2528-42bf-a3a7-6f0b5e44d9c9"}}}],"outputDatasetFolders":[],"id":"6ff0e507-30a0-44cf-9889-234622011f92","savedPayload":{"position":{"x":20318.157722374315,"y":19369.34783161428},"targetPosition":{"x":20058.350101238982,"y":19219.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"5e8b154e-58b0-436c-a28e-0d6a165cf7fe","savedPayload":{"position":{"x":20498.127849125704,"y":19556.80116628037},"targetPosition":{"x":20208.350101238982,"y":19479.155452749612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Ichimoku Cloud Multi-Period-Market","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"b1eeff79-6ce6-4e3f-916f-efb6f5c57d36","savedPayload":{"position":{"x":20283.350101238982,"y":19609.05926331728},"targetPosition":{"x":20208.350101238982,"y":19479.155452749612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"dbcf7839-bf6e-41e9-beff-ad4a672dec87"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"8815bfb5-a494-425b-8211-215b858acd8c","savedPayload":{"position":{"x":20169.527244473604,"y":19624.044326692972},"targetPosition":{"x":20208.350101238982,"y":19479.155452749612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"17464577-a8e2-4909-b674-bf190ae9bd61","savedPayload":{"position":{"x":20208.350101238982,"y":19479.155452749612},"targetPosition":{"x":20058.350101238982,"y":19219.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"dbcf7839-bf6e-41e9-beff-ad4a672dec87","savedPayload":{"position":{"x":20058.350101238982,"y":19519.34783161428},"targetPosition":{"x":20058.350101238982,"y":19219.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"28298755-1265-4638-ad84-4ea48d9967c4","savedPayload":{"position":{"x":19983.350101238982,"y":19349.251642181945},"targetPosition":{"x":20058.350101238982,"y":19219.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"cffec99c-61ce-4c11-acfe-7cfab0661b92","savedPayload":{"position":{"x":19928.446290671316,"y":19294.34783161428},"targetPosition":{"x":20058.350101238982,"y":19219.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0419a095-c117-4b03-8581-c6c2fb30fe43","savedPayload":{"position":{"x":21062.71466341443,"y":18750.489909480562},"targetPosition":{"x":21109.6450029265,"y":18454.18340730202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces the MACD indicator.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Ichimoku Cloud","project":"Superalgos","id":"d7fe8959-24a8-4872-90e6-e4e4ecee89c6","savedPayload":{"position":{"x":19977.54248010365,"y":19704.34783161428},"targetPosition":{"x":19977.54248010365,"y":19404.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ef8da44c-8cc5-41fc-add6-f2feff945632"}}}],"outputDatasetFolders":[],"id":"e4fa5f98-33d5-4d71-935b-ce77340cb43a","savedPayload":{"position":{"x":19977.54248010365,"y":19404.34783161428},"targetPosition":{"x":19977.54248010365,"y":19104.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Ichimoku Cloud Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"5097611a-6c4c-4629-9b4e-ab1ae850980f","savedPayload":{"position":{"x":19811.841693230766,"y":19663.744313175983},"targetPosition":{"x":19827.54248010365,"y":19364.155452749612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"906bf32a-6310-4aa4-83d9-7de0a94906d6"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"f7e27eb6-6cdb-4352-a880-51f78903cd72","savedPayload":{"position":{"x":19720.032095240058,"y":19644.22958069877},"targetPosition":{"x":19827.54248010365,"y":19364.155452749612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{ \n\"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"826de77b-7a62-4f14-b5ea-911aa0612cec","savedPayload":{"position":{"x":19638.746362788697,"y":19597.2992411867},"targetPosition":{"x":19827.54248010365,"y":19364.155452749612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"ebfa73d9-6cd5-45f7-b66c-464c68692b63","savedPayload":{"position":{"x":19575.941309720023,"y":19527.54716325412},"targetPosition":{"x":19827.54248010365,"y":19364.155452749612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"434839d0-e4ac-429e-aed0-5542fda64850","savedPayload":{"position":{"x":19827.54248010365,"y":19364.155452749612},"targetPosition":{"x":19977.54248010365,"y":19104.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"906bf32a-6310-4aa4-83d9-7de0a94906d6","savedPayload":{"position":{"x":19847.638669535983,"y":19179.34783161428},"targetPosition":{"x":19977.54248010365,"y":19104.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"7a8bcb97-9f5e-44e4-861b-dd111ad7c1f2","savedPayload":{"position":{"x":19827.54248010365,"y":19104.34783161428},"targetPosition":{"x":19977.54248010365,"y":19104.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"3d514935-9c3a-4b52-9497-b0cdfb4dedc4","savedPayload":{"position":{"x":19847.638669535983,"y":19029.34783161428},"targetPosition":{"x":19977.54248010365,"y":19104.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"13b83df6-2b1a-4535-8b78-5711c9b4630d","savedPayload":{"position":{"x":20866.939904614017,"y":18630.518982989764},"targetPosition":{"x":21109.6450029265,"y":18454.18340730202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Ichimoku Cloud","config":"{\n \"codeName\": \"Ichimoku\",\n \"singularVariableName\": \"ichimoku\",\n \"pluralVariableName\": \"ichimokus\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"80018870-2528-42bf-a3a7-6f0b5e44d9c9","savedPayload":{"position":{"x":20735.58075892679,"y":18828.247651301732},"targetPosition":{"x":20665.185249658687,"y":18383.78789803392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"ef8da44c-8cc5-41fc-add6-f2feff945632","savedPayload":{"position":{"x":20264.232313773922,"y":18588.083622916714},"targetPosition":{"x":20665.185249658687,"y":18383.78789803392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"record.current.begin","project":"Superalgos","id":"72a92d9f-1ed8-4889-85dc-cf06b82a696e","savedPayload":{"position":{"x":20355.091947472574,"y":18384.33175670161},"targetPosition":{"x":20299.35735576764,"y":18225.051444712073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e8a2fd42-8b10-4ebd-9403-fda27ec231af","savedPayload":{"position":{"x":20299.35735576764,"y":18225.051444712073},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{ \n\"codeName\": \"end\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"record.current.end","project":"Superalgos","id":"0b6082e7-ec6b-47c1-818e-9af517edf285","savedPayload":{"position":{"x":20131.206156330467,"y":18409.557626991456},"targetPosition":{"x":20150.1001616729,"y":18241.86869157197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"43e28612-17ea-4a7b-89c7-bd039dec9ea1","savedPayload":{"position":{"x":20150.1001616729,"y":18241.86869157197},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Conversion Line","config":"{ \n \"codeName\": \"conversionLine\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.conversionLine","project":"Superalgos","id":"0e232ef8-ac61-4c1a-ada7-73b687dc805b","savedPayload":{"position":{"x":19918.54693362188,"y":18335.14494659232},"targetPosition":{"x":20008.327346533843,"y":18192.260237972547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"512e4c3c-391b-4dfa-9e88-0473375d1799","savedPayload":{"position":{"x":20008.327346533843,"y":18192.260237972547},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Base Line","config":"{ \n \"codeName\": \"baseLine\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.baseLine","project":"Superalgos","id":"c9604d93-a559-4469-9cab-5fc86b5e1648","savedPayload":{"position":{"x":19759.234046498448,"y":18175.83205946889},"targetPosition":{"x":19902.118755118223,"y":18086.051646556927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ca0fadce-a732-4048-991c-9e11de0bed02","savedPayload":{"position":{"x":19902.118755118223,"y":18086.051646556927},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lagging Span","config":"{ \n \"codeName\": \"laggingSpan\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.laggingSpan","project":"Superalgos","id":"f8b08c0d-a298-47c8-98b4-14498ae3f069","savedPayload":{"position":{"x":19684.821366099313,"y":17963.172836760303},"targetPosition":{"x":19852.5103015188,"y":17944.27883141787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b1421f51-e5e9-4c19-8ef8-0361872d12a5","savedPayload":{"position":{"x":19852.5103015188,"y":17944.27883141787},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lead Line 1","config":"{ \n \"codeName\": \"leadLine1\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.leadLine1","project":"Superalgos","id":"33f1f757-9ad5-4c0a-9dff-aae377cb5fc4","savedPayload":{"position":{"x":19710.047236389157,"y":17739.287045618195},"targetPosition":{"x":19869.327548378693,"y":17795.02163732313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"40a00adc-bc21-4ae8-95da-623d84b9fb5f","savedPayload":{"position":{"x":19869.327548378693,"y":17795.02163732313},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lead Line 2","config":"{ \n \"codeName\": \"leadLine2\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.leadLine2","project":"Superalgos","id":"748194a5-7fc8-4389-83ec-251ea6212867","savedPayload":{"position":{"x":19829.91536438208,"y":17548.51801275731},"targetPosition":{"x":19949.239633707308,"y":17667.84228208254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d4dc6e16-82d8-44b5-bf4a-898746e9f906","savedPayload":{"position":{"x":19949.239633707308,"y":17667.84228208254},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Past Begin","config":"{ \n \"codeName\": \"pastBegin\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.pastBegin","project":"Superalgos","id":"36cea089-33a9-4613-bf31-b6559e672bfe","savedPayload":{"position":{"x":20020.684397242963,"y":17428.64988476439},"targetPosition":{"x":20076.4189889479,"y":17587.930196753925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6e65d1a7-d1d6-4e55-8a5e-1b633d847760","savedPayload":{"position":{"x":20076.4189889479,"y":17587.930196753925},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Past End","config":"{ \n \"codeName\": \"pastEnd\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.pastEnd","project":"Superalgos","id":"f6122e26-d738-4265-87d7-05e277ca4125","savedPayload":{"position":{"x":20244.57018838507,"y":17403.424014474545},"targetPosition":{"x":20225.676183042637,"y":17571.11294989403},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6c9f44c4-05fa-45c0-b7c2-4ea0a7215be9","savedPayload":{"position":{"x":20225.676183042637,"y":17571.11294989403},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Forward Begin","config":"{ \n \"codeName\": \"forwardBegin\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.forwardBegin","project":"Superalgos","id":"eea563b8-20c5-4464-8f2f-add8dc54621e","savedPayload":{"position":{"x":20457.229411093656,"y":17477.83669487368},"targetPosition":{"x":20367.448998181695,"y":17620.721403493455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f4aacf4c-ceb3-42eb-8658-1b75219f91d5","savedPayload":{"position":{"x":20367.448998181695,"y":17620.721403493455},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Forward End","config":"{ \n \"codeName\": \"forwardEnd\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.forwardEnd","project":"Superalgos","id":"b24fdba5-01d6-4172-8d60-97714a1f419e","savedPayload":{"position":{"x":20616.54229821709,"y":17637.149581997113},"targetPosition":{"x":20473.657589597315,"y":17726.929994909075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"66042c7c-421c-4882-b2dc-f68a47c928ea","savedPayload":{"position":{"x":20473.657589597315,"y":17726.929994909075},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Plot Lead Line 1","config":"{ \n \"codeName\": \"plotLeadLine1\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.plotLeadLine1","project":"Superalgos","id":"53b40211-2c67-45d0-909e-aa8182dbe7fa","savedPayload":{"position":{"x":20690.954978616224,"y":17849.8088047057},"targetPosition":{"x":20523.266043196738,"y":17868.702810048133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b73f0fd0-94de-4247-a3fb-f066d12c3749","savedPayload":{"position":{"x":20523.266043196738,"y":17868.702810048133},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Plot Lead Line2","config":"{ \n \"codeName\": \"plotLeadLine2\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"variable.plotLeadLine2","project":"Superalgos","id":"ed655742-cd9e-4ca2-baad-ea28f5a3fe0a","savedPayload":{"position":{"x":20665.72910832638,"y":18073.694595847806},"targetPosition":{"x":20506.448796336845,"y":18017.96000414287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"aa927173-5062-420c-bc81-7019042625bc","savedPayload":{"position":{"x":20506.448796336845,"y":18017.96000414287},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4ad846c6-be10-469e-bb6b-178b94b1bcf6","savedPayload":{"position":{"x":20187.88817235777,"y":17906.490820733},"targetPosition":{"x":20665.185249658687,"y":18383.78789803392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* Loop Code */\n\n/* Modify value here */\n\nlet conversionPeriods = 20 // Conversion Line Periods\nlet basePeriods = 30 // Base Line Periods\nlet laggingSpan2Periods = 120 // Lagging Span 2 Periods\nlet displacement = 60 // Displacement\n\n/* Define candle object and property */\n\nlet candle = {\n open: record.current.open,\n close: record.current.close,\n min: record.current.min,\n max: record.current.max,\n begin: record.current.begin,\n end: record.current.end,\n} \n\n/* We need a function to calculate the average\nof past (length) Lows and Highs\nBasically it is a Donchian\nwith different periods */\n\n// Build arrays Max and Min for each variable\n\nvariable.lastHiConversionPeriods.push(candle.max)\nvariable.lastHiBasePeriods.push(candle.max)\nvariable.lastHiLaggingSpan2Periods.push(candle.max)\n\nvariable.lastLowConversionPeriods.push(candle.min)\nvariable.lastLowBasePeriods.push(candle.min)\nvariable.lastLowLaggingSpan2Periods.push(candle.min)\n\n// And keep the array the correct size\n// Highs\n\nif (variable.lastHiConversionPeriods.length > conversionPeriods) {\n variable.lastHiConversionPeriods.splice(0, 1)\n}\n\nif (variable.lastHiBasePeriods.length > basePeriods) {\n variable.lastHiBasePeriods.splice(0, 1)\n}\n\nif (variable.lastHiLaggingSpan2Periods.length > laggingSpan2Periods) {\n variable.lastHiLaggingSpan2Periods.splice(0, 1)\n}\n\n// Lows\nif (variable.lastLowConversionPeriods.length > conversionPeriods) {\n variable.lastLowConversionPeriods.splice(0, 1)\n}\n\nif (variable.lastLowBasePeriods.length > basePeriods) {\n variable.lastLowBasePeriods.splice(0, 1)\n}\n\nif (variable.lastLowLaggingSpan2Periods.length > laggingSpan2Periods) {\n variable.lastLowLaggingSpan2Periods.splice(0, 1)\n}\n\n// Build a donchian function to calculate average of Highs and Lows\n\nfunction donchian (srcMax, srcMin, length) {\n\n let hiHigh = calculateHigh (srcMax, length) // higher highs\n let loLow = calculateLow (srcMin, length) // lower lows\n return (hiHigh + loLow) / 2 // Average\n}\n\nfunction calculateHigh (array, length) {\n /* We check we have enough values to make the calculation */\n if (array.length < length) { return 0 }\n return Math.max(...array)\n}\n\nfunction calculateLow (array, length) {\n /* We check we have enough values to make the calculation */\n if (array.length < length) { return 0 }\n return Math.min(...array)\n}\n\n// Build Ichimoku Clouds!\n\nvariable.conversionLine = donchian (variable.lastHiConversionPeriods, variable.lastLowConversionPeriods, conversionPeriods)\nvariable.baseLine = donchian (variable.lastHiBasePeriods, variable.lastLowBasePeriods, basePeriods)\nvariable.plotLeadLine1 = (variable.conversionLine + variable.baseLine) / 2\nvariable.plotLeadLine2 = donchian (variable.lastHiLaggingSpan2Periods, variable.lastLowLaggingSpan2Periods, laggingSpan2Periods)\n\n// Lagging Span is the close price plotted back \"displacement\" periods\n// Maybe there is no need of this variable... but I leave it here\nvariable.laggingSpan = candle.close\n\n/* We need to plot data in the past for the LaggingLine\nand in the future for LeadLine 1&2\nDefining past/forward Begin/End -> Values are then stored as new properties\nin Record definition so we can use them in Chart Points to plot\ndata in the past and in the future\n*/\n\nvariable.pastBegin = candle.begin - (candle.end-candle.begin)*displacement\nvariable.pastEnd = candle.end - (candle.end-candle.begin)*displacement\n\nvariable.forwardBegin = candle.begin + (candle.end-candle.begin)*displacement\nvariable.forwardEnd = candle.end + (candle.end-candle.begin)*displacement\n\n/* Syncronizing LeadLine 1&2 values with current candle\nso when writing strategy values are synced\n*/\n\nvariable.pastLeadLine1.push(variable.plotLeadLine1)\nif (variable.pastLeadLine1.length > displacement) {\n variable.pastLeadLine1.splice(0, 1)\n}\n\nif (variable.pastLeadLine1.length < displacement) {\n variable.leadLine1 = 0 \n} else {\n variable.leadLine1 = variable.pastLeadLine1[0] // LeadLine1 \n}\n\nvariable.pastLeadLine2.push(variable.plotLeadLine2)\nif (variable.pastLeadLine2.length > displacement) {\n variable.pastLeadLine2.splice(0, 1)\n}\n\nif (variable.pastLeadLine2.length < displacement) {\n variable.leadLine2 = 0 \n} else {\n variable.leadLine2 = variable.pastLeadLine2[0] // LeadLine2\n}\n\n// End of code :-)","project":"Superalgos","id":"899265ba-76d1-4525-b3c3-2e99d73daf7b","savedPayload":{"position":{"x":20851.81758930949,"y":17645.79749416949},"targetPosition":{"x":20857.70538438682,"y":17758.143316829377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5d5b6e50-f79b-4039-b835-b0bdc3e58653","savedPayload":{"position":{"x":20857.70538438682,"y":17758.143316829377},"targetPosition":{"x":20869.480974541482,"y":17982.834962149154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/* Initialization Code*/\n\nvariable.lastHiConversionPeriods = []\nvariable.lastHiBasePeriods = []\nvariable.lastHiLaggingSpan2Periods = []\n\nvariable.lastLowConversionPeriods = []\nvariable.lastLowBasePeriods = []\nvariable.lastLowLaggingSpan2Periods = []\n\nvariable.pastLeadLine1 = []\nvariable.pastLeadLine2 = []","project":"Superalgos","id":"50245904-f0f3-43a9-8e7a-164fba5bc780","savedPayload":{"position":{"x":21152.532291223062,"y":17799.019287831583},"targetPosition":{"x":21058.181852329202,"y":17860.291179270775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0d1d1ab8-da87-44b2-aa06-1d1c0b034dc1","savedPayload":{"position":{"x":21058.181852329202,"y":17860.291179270775},"targetPosition":{"x":20869.480974541482,"y":17982.834962149154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"99f9d3e1-78fc-4e8d-b41a-d900687192f9","savedPayload":{"position":{"x":20869.480974541482,"y":17982.834962149154},"targetPosition":{"x":20665.185249658687,"y":18383.78789803392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ccd20b4b-2783-4b65-a1ac-087621e5e315","savedPayload":{"position":{"x":20665.185249658687,"y":18383.78789803392},"targetPosition":{"x":21109.6450029265,"y":18454.18340730202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Ichimoku","id":"c5dedee0-0553-457c-9a14-5c5d97907cb2"}}}],"id":"ab48285e-a196-4696-b8be-a25c373a64be","savedPayload":{"position":{"x":21109.6450029265,"y":18454.18340730202},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"plotters":[{"type":"Plotter","name":"Wave Trend","config":"{ \n \"codeName\": \"PlotterWaveTrend\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Wave Trend","config":"{ \n \"codeName\": \"waveTrend\", \n \"icon\": \"oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"WaveTrend + Signal + Histogram","project":"Superalgos","points":[{"type":"Point","name":"WAVETREND Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.waveTrend","project":"Superalgos","id":"2c5ca3e2-3f1d-41b8-8b16-8bec853896c1","savedPayload":{"position":{"x":20187.11850005987,"y":18762.713955427484},"targetPosition":{"x":20296.85435108448,"y":18787.49889036597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0067f22f-46a2-4735-86fe-5e5329285f92","savedPayload":{"position":{"x":20296.85435108448,"y":18787.49889036597},"targetPosition":{"x":20516.326053133696,"y":18837.06876024294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"WAVETREND End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.waveTrend","project":"Superalgos","id":"7bbd00d1-0fab-4055-97fe-7993b2677537","savedPayload":{"position":{"x":20311.932783724733,"y":18568.49913906378},"targetPosition":{"x":20380.06387352772,"y":18658.0223461235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"244f05f3-b51c-4427-8078-3b319ccd0092","savedPayload":{"position":{"x":20380.06387352772,"y":18658.0223461235},"targetPosition":{"x":20516.326053133696,"y":18837.06876024294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SIGNAL Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.waveTrendSignal","project":"Superalgos","id":"6d226efa-bc1b-4192-9fce-b3389535ec68","savedPayload":{"position":{"x":20532.38494972421,"y":18499.951033268673},"targetPosition":{"x":20527.03198419404,"y":18612.323608926763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"80f21e0b-76c2-48a9-b3d2-1ee3c3f774d9","savedPayload":{"position":{"x":20527.03198419404,"y":18612.323608926763},"targetPosition":{"x":20516.326053133696,"y":18837.06876024294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SIGNAL End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.waveTrendSignal","project":"Superalgos","id":"fc0f1fb3-ab13-4b01-8496-15c9c15a2b57","savedPayload":{"position":{"x":20745.32297953423,"y":18589.144058571022},"targetPosition":{"x":20668.990670734052,"y":18671.785625794993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"dd98f729-93b7-4509-bc62-3332f00cd3d0","savedPayload":{"position":{"x":20668.990670734052,"y":18671.785625794993},"targetPosition":{"x":20516.326053133696,"y":18837.06876024294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"WT3 Histogram Zero","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = (record.end - record.begin)/2 + record.begin\ny = 0","project":"Superalgos","id":"0e4d11eb-1949-4d16-a548-1bdee21dd59b","savedPayload":{"position":{"x":20851.11080246409,"y":18794.3438071618},"targetPosition":{"x":20739.515886020625,"y":18808.585458188845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8c7a44ee-f5e7-4c27-a129-2567f4c3787a","savedPayload":{"position":{"x":20739.515886020625,"y":18808.585458188845},"targetPosition":{"x":20516.326053133696,"y":18837.06876024294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"WT3 Histogram","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = (record.end - record.begin)/2 + record.begin\ny = record.wt3","project":"Superalgos","id":"3d279675-73d8-45b6-823a-3898e74e3ec2","savedPayload":{"position":{"x":20800.24912046422,"y":19019.535036134203},"targetPosition":{"x":20705.60809802071,"y":18958.71294417045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"041ff6d0-02aa-4a0f-81e1-8af53427e0bf","savedPayload":{"position":{"x":20705.60809802071,"y":18958.71294417045},"targetPosition":{"x":20516.326053133696,"y":18837.06876024294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"95b28bb4-1b05-45ca-b4b2-c36af8849126","savedPayload":{"position":{"x":20616.536679806988,"y":19159.348266730314},"targetPosition":{"x":20583.133137582558,"y":19051.921764567855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"82e2aee4-871f-4f54-85b0-2c34acdcbbdd","savedPayload":{"position":{"x":20583.133137582558,"y":19051.921764567855},"targetPosition":{"x":20516.326053133696,"y":18837.06876024294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"6a55e459-a04d-43ed-bd23-f0b8aac737bd","savedPayload":{"position":{"x":20385.934573212267,"y":19148.363334503236},"targetPosition":{"x":20429.398399852744,"y":19044.59847641647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2f1122e6-62ec-47c3-a29c-f3eff9169efd","savedPayload":{"position":{"x":20429.398399852744,"y":19044.59847641647},"targetPosition":{"x":20516.326053133696,"y":18837.06876024294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8a7d2782-832c-4732-94ac-b50588cdfe04","savedPayload":{"position":{"x":20516.326053133696,"y":18837.06876024294},"targetPosition":{"x":20116.350101238982,"y":19043.270695020274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Upper+Lower Levels","project":"Superalgos","points":[{"type":"Point","name":"Upper 53 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 53","project":"Superalgos","id":"1b2a894d-474b-431f-945f-0d3a19b5e304","savedPayload":{"position":{"x":21105.11553481132,"y":18810.79492922037},"targetPosition":{"x":21223.48942211176,"y":18931.062070640553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"237d03b2-63ad-400c-9c3c-080bcc7c3d3b","savedPayload":{"position":{"x":21223.48942211176,"y":18931.062070640553},"targetPosition":{"x":21460.237196712646,"y":19171.59635348092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Upper 53 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 53","project":"Superalgos","id":"e1cddc05-9901-4b87-bbb3-a093dfdfc40c","savedPayload":{"position":{"x":21420.116906053896,"y":18666.93862315525},"targetPosition":{"x":21433.49033627348,"y":18835.15786659714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e042ff20-3176-415f-a4df-09a426fd79da","savedPayload":{"position":{"x":21433.49033627348,"y":18835.15786659714},"targetPosition":{"x":21460.237196712646,"y":19171.59635348092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Upper 60 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 60","project":"Superalgos","id":"d75c866e-9530-4d0f-94ca-8ec8b2f9d2ee","savedPayload":{"position":{"x":21753.891007183065,"y":18759.217277755437},"targetPosition":{"x":21656.006403692925,"y":18896.67696966393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ca64f2c6-152e-4081-8d38-1d8e80045206","savedPayload":{"position":{"x":21656.006403692925,"y":18896.67696966393},"targetPosition":{"x":21460.237196712646,"y":19171.59635348092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Upper 60 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 60","project":"Superalgos","id":"16da2601-ca28-4889-9155-12c687a9ec70","savedPayload":{"position":{"x":21950.26122679455,"y":19044.452684970496},"targetPosition":{"x":21786.919883433915,"y":19086.833907807304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1a202c3b-ff57-4907-b26f-3caabb330ec3","savedPayload":{"position":{"x":21786.919883433915,"y":19086.833907807304},"targetPosition":{"x":21460.237196712646,"y":19171.59635348092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Lower 53 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = -53","project":"Superalgos","id":"d0ce070f-1912-43ce-82c0-77def287c519","savedPayload":{"position":{"x":21917.34375672025,"y":19389.180027726063},"targetPosition":{"x":21764.97490338438,"y":19316.652136311015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cab7980f-9dae-4f54-9f56-bf377777b85a","savedPayload":{"position":{"x":21764.97490338438,"y":19316.652136311015},"targetPosition":{"x":21460.237196712646,"y":19171.59635348092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Lower 53 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = -53","project":"Superalgos","id":"b3aec95a-cdee-4816-8330-c5ac7ae90c79","savedPayload":{"position":{"x":21670.54104704485,"y":19632.097551129144},"targetPosition":{"x":21600.43976360078,"y":19478.59715191307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3e633fdd-4535-4a9d-9b2b-5577533e417d","savedPayload":{"position":{"x":21600.43976360078,"y":19478.59715191307},"targetPosition":{"x":21460.237196712646,"y":19171.59635348092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Lower 60 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = -60","project":"Superalgos","id":"f0a9d25e-ccda-4d95-b5e7-b8ad25e0615c","savedPayload":{"position":{"x":21325.334828532068,"y":19659.541446251893},"targetPosition":{"x":21370.30228459226,"y":19496.893081994902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3b48dde7-59c2-4c52-9aab-a8bfafcb7e99","savedPayload":{"position":{"x":21370.30228459226,"y":19496.893081994902},"targetPosition":{"x":21460.237196712646,"y":19171.59635348092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Lower 60 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = -60","project":"Superalgos","id":"f9969fe0-e387-4247-be00-e26ad15ca006","savedPayload":{"position":{"x":21043.25092736379,"y":19458.670409561448},"targetPosition":{"x":21182.246350480076,"y":19362.979057534605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"db3520c1-9af2-4715-af97-cca2986db9ac","savedPayload":{"position":{"x":21182.246350480076,"y":19362.979057534605},"targetPosition":{"x":21460.237196712646,"y":19171.59635348092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"427a710c-2eb9-4fb3-9023-e2dd30f58871","savedPayload":{"position":{"x":21460.237196712646,"y":19171.59635348092},"targetPosition":{"x":20116.350101238982,"y":19043.270695020274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Zero Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"8f897a11-c8bb-4e26-a8fb-46a3ee60b983","savedPayload":{"position":{"x":17157.379924716563,"y":24811.771417957705},"targetPosition":{"x":16971.20594634032,"y":24834.03124220595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"eaa77ce9-3146-4a18-a228-1b5dfb7f58d1","savedPayload":{"position":{"x":16971.20594634032,"y":24834.03124220595},"targetPosition":{"x":16785.031967964078,"y":24856.291066454196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero Line Begin","project":"Superalgos","id":"c0a1ab8a-0a7a-47c2-a789-28ab62426e9e","savedPayload":{"position":{"x":16932.41692322835,"y":24972.19587637056},"targetPosition":{"x":16785.031967964078,"y":24856.291066454196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Line Begin","id":"82e2aee4-871f-4f54-85b0-2c34acdcbbdd"}}},{"type":"Polygon Vertex","name":"Zero Line End","project":"Superalgos","id":"371298d7-7c65-4fbe-b4c2-e3fc54cd88dc","savedPayload":{"position":{"x":16807.291792212323,"y":25042.46504483044},"targetPosition":{"x":16785.031967964078,"y":24856.291066454196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Line End","id":"2f1122e6-62ec-47c3-a29c-f3eff9169efd"}}}],"id":"12090784-30fc-4f0b-853d-d5711b242112","savedPayload":{"position":{"x":20823.79788650749,"y":19599.613782618817},"targetPosition":{"x":20116.350101238982,"y":19043.270695020274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"WT3 Histogram","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"ba324dfe-27b0-41b5-ae10-247e0bc52baf","savedPayload":{"position":{"x":21065.342314449015,"y":19161.070830802157},"targetPosition":{"x":20840.915588661708,"y":19177.122147021983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.wt3 < 0","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","project":"Superalgos","id":"a268871c-78be-4354-a82c-2218c15a25df","savedPayload":{"position":{"x":21093.14400967011,"y":19549.7893224421},"targetPosition":{"x":20967.02979916591,"y":19363.45573473204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ae2c64bc-ed7f-470d-b4b0-7118b830ba3c","savedPayload":{"position":{"x":20967.02979916591,"y":19363.45573473204},"targetPosition":{"x":20840.915588661708,"y":19177.122147021983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0ce7f235-57d6-4ad6-9cf6-a47ac3004b2b","savedPayload":{"position":{"x":20840.915588661708,"y":19177.122147021983},"targetPosition":{"x":20638.53068473182,"y":19078.809631738877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"WT3 Histogram Zero","project":"Superalgos","id":"cbf4755c-88d8-43cd-9f7c-d2ba81e6a46a","savedPayload":{"position":{"x":20712.12097647824,"y":19291.434815949677},"targetPosition":{"x":20638.53068473182,"y":19078.809631738877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"WT3 Histogram Zero","id":"8c7a44ee-f5e7-4c27-a129-2567f4c3787a"}}},{"type":"Polygon Vertex","name":"WT3 Histogram","project":"Superalgos","id":"52313113-c0bc-49f4-8f64-a446e5b0fb3d","savedPayload":{"position":{"x":20540.218169448715,"y":19281.194535668765},"targetPosition":{"x":20638.53068473182,"y":19078.809631738877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"WT3 Histogram","id":"041ff6d0-02aa-4a0f-81e1-8af53427e0bf"}}}],"id":"6399921a-70ac-4c45-ba3d-b2745f291d67","savedPayload":{"position":{"x":20410.711268224662,"y":19893.771431863475},"targetPosition":{"x":20116.350101238982,"y":19043.270695020274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Wave Trend","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.75,\n \"lineWidth\": 0.75,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 1.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"5fb5a80e-4ed6-4131-9762-8a241e4e5de9","savedPayload":{"position":{"x":16628.726476464682,"y":24772.405594205025},"targetPosition":{"x":16563.96283159315,"y":24696.21064487796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"db105320-a505-4e27-be2a-ad5b2ff77051","savedPayload":{"position":{"x":16563.96283159315,"y":24696.21064487796},"targetPosition":{"x":16442.53099745903,"y":24553.345114889707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"WAVETREND Begin","project":"Superalgos","id":"d23cd662-a740-425f-b5cd-e0d22580f743","savedPayload":{"position":{"x":16299.665467470779,"y":24674.776949023828},"targetPosition":{"x":16442.53099745903,"y":24553.345114889707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"WAVETREND Begin","id":"0067f22f-46a2-4735-86fe-5e5329285f92"}}},{"type":"Polygon Vertex","name":"WAVETREND End","project":"Superalgos","id":"5ee7b2b6-96aa-42e1-92e8-78290f09964b","savedPayload":{"position":{"x":16321.09916332491,"y":24410.479584901455},"targetPosition":{"x":16442.53099745903,"y":24553.345114889707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"WAVETREND End","id":"244f05f3-b51c-4427-8078-3b319ccd0092"}}}],"id":"56bc1d31-4574-45ed-ae1e-a96c0a0ce57d","savedPayload":{"position":{"x":19904.1670592805,"y":19917.90110651146},"targetPosition":{"x":20116.350101238982,"y":19043.270695020274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Signal Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.75,\n \"lineWidth\": 0.75,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 1.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"038158de-f7fd-458e-869f-a834f376935e","savedPayload":{"position":{"x":16182.112216735088,"y":24588.81847469396},"targetPosition":{"x":16242.799369748238,"y":24509.338480612692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8e26548a-c9d4-48ff-8976-9f81905f1e98","savedPayload":{"position":{"x":16242.799369748238,"y":24509.338480612692},"targetPosition":{"x":16356.587781647897,"y":24360.313491710316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SIGNAL Begin","project":"Superalgos","id":"1bdf5db8-ea42-4af0-9498-ae171e29c0ab","savedPayload":{"position":{"x":16170.75064375408,"y":24385.229514254737},"targetPosition":{"x":16356.587781647897,"y":24360.313491710316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SIGNAL Begin","id":"80f21e0b-76c2-48a9-b3d2-1ee3c3f774d9"}}},{"type":"Polygon Vertex","name":"SIGNAL End","project":"Superalgos","id":"dd6a6d21-d877-4b1f-8e3c-09c92f8a5a5c","savedPayload":{"position":{"x":16207.56279274552,"y":24246.525079810657},"targetPosition":{"x":16356.587781647897,"y":24360.313491710316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SIGNAL End","id":"dd98f729-93b7-4509-bc62-3332f00cd3d0"}}}],"id":"b233d138-7074-43fb-bca6-d67bed33b3e9","savedPayload":{"position":{"x":19464.98946694442,"y":19664.341805354175},"targetPosition":{"x":20116.350101238982,"y":19043.270695020274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Upper 53","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [3,33],\n \"paletteColor\": \"UI_COLOR.TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"7a412ade-bfb4-4afd-8d02-6e98894ce228","savedPayload":{"position":{"x":16118.33121610582,"y":24249.36255847565},"targetPosition":{"x":16212.354626947064,"y":24215.309684679465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8141c484-6521-4a05-a3d9-66941314ad57","savedPayload":{"position":{"x":16212.354626947064,"y":24215.309684679465},"targetPosition":{"x":16388.648522274394,"y":24151.46054631162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Upper 53 Begin","project":"Superalgos","id":"5cf6a61d-0d4c-4390-b0e4-4b6f2614593f","savedPayload":{"position":{"x":16218.841754693825,"y":24071.950096156696},"targetPosition":{"x":16388.648522274394,"y":24151.46054631162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Upper 53 Begin","id":"237d03b2-63ad-400c-9c3c-080bcc7c3d3b"}}},{"type":"Polygon Vertex","name":"Upper 53 End","project":"Superalgos","id":"6336fba4-1e3f-4574-a645-f8562c8cc41d","savedPayload":{"position":{"x":16324.79938390655,"y":23975.16665098429},"targetPosition":{"x":16388.648522274394,"y":24151.46054631162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Upper 53 End","id":"e042ff20-3176-415f-a4df-09a426fd79da"}}}],"id":"6c967bd9-801d-44bc-b8e2-30ca4763bb84","savedPayload":{"position":{"x":19232.614273702548,"y":19213.59681494464},"targetPosition":{"x":20116.350101238982,"y":19043.270695020274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Upper 60","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"731315a8-1f99-43de-bdca-06c05c0b277a","savedPayload":{"position":{"x":16124.88214145556,"y":23779.383254160573},"targetPosition":{"x":16240.153748304958,"y":23835.62880942335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9caf63a1-7446-4480-8f2f-717e990a1afa","savedPayload":{"position":{"x":16240.153748304958,"y":23835.62880942335},"targetPosition":{"x":16553.620710963998,"y":23988.7182859496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Upper 60 Begin","project":"Superalgos","id":"ded5d9fd-2b8d-4d29-8921-9109c514dc36","savedPayload":{"position":{"x":16715.456938895066,"y":23656.77946906171},"targetPosition":{"x":16553.620710963998,"y":23988.7182859496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Upper 60 Begin","id":"ca64f2c6-152e-4081-8d38-1d8e80045206"}}},{"type":"Polygon Vertex","name":"Upper 60 End","project":"Superalgos","id":"2ce948e8-dde1-47f8-a04f-728227d80408","savedPayload":{"position":{"x":16885.351552619795,"y":24150.444672623653},"targetPosition":{"x":16553.620710963998,"y":23988.7182859496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Upper 60 End","id":"1a202c3b-ff57-4907-b26f-3caabb330ec3"}}}],"id":"7761e0e0-697e-48b4-bbe4-0ac0b22be26f","savedPayload":{"position":{"x":19280.818961524517,"y":18708.77448492598},"targetPosition":{"x":20116.350101238982,"y":19043.270695020274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Lower 53","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [3,33],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [3,33],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"3acb3136-b9e9-424f-9ddc-50309522959a","savedPayload":{"position":{"x":15989.221339652351,"y":24271.339338091966},"targetPosition":{"x":16087.83677502417,"y":24287.9223386174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"59331a82-0691-4f26-aaa9-b871f57e7118","savedPayload":{"position":{"x":16087.83677502417,"y":24287.9223386174},"targetPosition":{"x":16272.740716346332,"y":24319.015464602595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Lower 53 Begin","project":"Superalgos","id":"111eef17-b3f6-4e81-988c-9dea12ec48b0","savedPayload":{"position":{"x":16163.98004580173,"y":24166.282473593157},"targetPosition":{"x":16272.740716346332,"y":24319.015464602595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Lower 53 Begin","id":"cab7980f-9dae-4f54-9f56-bf377777b85a"}}},{"type":"Polygon Vertex","name":"Lower 53 End","project":"Superalgos","id":"f9f7600a-d00a-440d-bdfc-7fb43df81e79","savedPayload":{"position":{"x":16303.833842331525,"y":24134.111523280433},"targetPosition":{"x":16272.740716346332,"y":24319.015464602595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Lower 53 End","id":"3e633fdd-4535-4a9d-9b2b-5577533e417d"}}}],"id":"8058bc7b-06c0-41c1-972b-62e146a7515d","savedPayload":{"position":{"x":19594.298882624902,"y":18310.152338174972},"targetPosition":{"x":20116.350101238982,"y":19043.270695020274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Lower 60","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"13ec6d93-ce9f-48f1-a405-9cdfe5cb1abe","savedPayload":{"position":{"x":16693.626676836186,"y":23839.226058948567},"targetPosition":{"x":16777.2335369284,"y":23894.088550192773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"5006eb12-faac-4f3a-8814-dba7931a70e5","savedPayload":{"position":{"x":16777.2335369284,"y":23894.088550192773},"targetPosition":{"x":16933.996399601307,"y":23996.955721275663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Lower 60 Begin","project":"Superalgos","id":"308980bc-2ba9-4756-bf65-b06c40f19b31","savedPayload":{"position":{"x":17036.863570684196,"y":23840.192858602757},"targetPosition":{"x":16933.996399601307,"y":23996.955721275663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Lower 60 Begin","id":"3b48dde7-59c2-4c52-9aab-a8bfafcb7e99"}}},{"type":"Polygon Vertex","name":"Lower 60 End","project":"Superalgos","id":"d5881d46-60c2-4f18-80ef-9defa218d9a5","savedPayload":{"position":{"x":17117.58255706972,"y":23958.845712275623},"targetPosition":{"x":16933.996399601307,"y":23996.955721275663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Lower 60 End","id":"db3520c1-9af2-4715-af97-cca2986db9ac"}}}],"id":"d4fd8b32-5d47-4bdd-bbea-239a78a31f70","savedPayload":{"position":{"x":20073.526376997615,"y":18144.290089755566},"targetPosition":{"x":20116.350101238982,"y":19043.270695020274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"fd680561-143c-44f1-a9cb-f0c185f6769b","savedPayload":{"position":{"x":20116.350101238982,"y":19043.270695020274},"targetPosition":{"x":20566.350101238982,"y":18263.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Wave Trend","config":"{ \n \"codeName\": \"waveTrend\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Wave Trend","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.waveTrend","project":"Superalgos","id":"332d453d-9874-4936-b435-7d09042620d9","savedPayload":{"position":{"x":19516.9720477059,"y":17532.667829615144},"targetPosition":{"x":19951.638669535983,"y":17649.13639991128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"540f54ff-b28d-4130-9aa4-deba874115e8","savedPayload":{"position":{"x":19633.440618002038,"y":17330.938348377334},"targetPosition":{"x":19951.638669535983,"y":17649.13639991128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ab66b69f-d80d-40bb-8c50-9948cec124b5","savedPayload":{"position":{"x":19951.638669535983,"y":17649.13639991128},"targetPosition":{"x":20341.350101238982,"y":17874.13639991128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Signal","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.waveTrendSignal","project":"Superalgos","id":"a3cc36f6-bb87-4038-8774-d115eebf8950","savedPayload":{"position":{"x":20116.350101238982,"y":17034.42496820828},"targetPosition":{"x":20341.350101238982,"y":17424.13639991128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"0fc2adb9-86a3-47b3-a7a3-a602e3a829d5","savedPayload":{"position":{"x":20566.350101238982,"y":17034.42496820828},"targetPosition":{"x":20341.350101238982,"y":17424.13639991128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"901b3dfa-790a-4669-b0d6-97a99262293f","savedPayload":{"position":{"x":20341.350101238982,"y":17424.13639991128},"targetPosition":{"x":20341.350101238982,"y":17874.13639991128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c902b183-78b4-43f5-a537-75795f838954","savedPayload":{"position":{"x":20341.350101238982,"y":17874.13639991128},"targetPosition":{"x":20566.350101238982,"y":18263.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cfa6bcb9-8d18-4658-81f4-1f7d55adc742","savedPayload":{"position":{"x":20566.350101238982,"y":18263.84783161428},"targetPosition":{"x":21016.350101238982,"y":18263.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f991328f-70b7-492d-baf5-ec38d70e737b","savedPayload":{"position":{"x":21052.350101238982,"y":18277.84783161428},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Super Trend","config":"{ \n \"codeName\": \"PlotterSuperTrend\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Super Trend","config":"{ \n \"codeName\": \"superTrend\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"UP Trend Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.uptrend","project":"Superalgos","id":"05d1244b-e39d-4ec3-a899-4690af33f70d","savedPayload":{"position":{"x":20869.841958176403,"y":18524.963273135036},"targetPosition":{"x":20645.150312856626,"y":18536.7388632897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"807b982d-7dd4-4b96-ba1f-460b1b6b4fb7","savedPayload":{"position":{"x":20645.150312856626,"y":18536.7388632897},"targetPosition":{"x":20420.45866753685,"y":18548.51445344436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"UP Trend End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.uptrend","project":"Superalgos","id":"709b85bb-ad49-4adb-a651-1b2cecc80b27","savedPayload":{"position":{"x":20581.724244832236,"y":18968.625645368098},"targetPosition":{"x":20501.091456184542,"y":18758.57004940623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"adf1bd2c-2a5a-4243-9591-2a462635b074","savedPayload":{"position":{"x":20501.091456184542,"y":18758.57004940623},"targetPosition":{"x":20420.45866753685,"y":18548.51445344436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Down Trend Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.downtrend","project":"Superalgos","id":"cf21fd4d-3219-4ab5-994e-aa4b152645ce","savedPayload":{"position":{"x":20070.74298488121,"y":18831.70862941679},"targetPosition":{"x":20245.60082620903,"y":18690.111541430575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6e276847-0fa5-4473-898f-ccd4c63591c4","savedPayload":{"position":{"x":20245.60082620903,"y":18690.111541430575},"targetPosition":{"x":20420.45866753685,"y":18548.51445344436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Down Trend End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.downtrend","project":"Superalgos","id":"89c531b8-c842-44cb-ad8f-99d4a9f61f4e","savedPayload":{"position":{"x":20043.05691196141,"y":18303.4268876876},"targetPosition":{"x":20231.75778974913,"y":18425.97067056598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ab5aabfe-781f-41d6-a809-95299392ca90","savedPayload":{"position":{"x":20231.75778974913,"y":18425.97067056598},"targetPosition":{"x":20420.45866753685,"y":18548.51445344436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"603526b3-a7a3-4a2b-9233-8a7414077f20","savedPayload":{"position":{"x":20420.45866753685,"y":18548.51445344436},"targetPosition":{"x":20536.927237832984,"y":18113.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"UP Trend","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","project":"Superalgos","id":"41571575-f05c-407e-969a-df51b088ef60","savedPayload":{"position":{"x":20147.215806129985,"y":18773.51445344436},"targetPosition":{"x":20088.981520981917,"y":18556.18114252932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.trend != 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"opacity\": 0.0,\n \"lineWidth\": 0,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n}","project":"Superalgos","id":"b3ab1b97-8eee-4c8b-be96-a090897e42ad","savedPayload":{"position":{"x":19770.78346944797,"y":18874.379194063265},"targetPosition":{"x":19929.882495214944,"y":18715.280168296293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4070b155-77b5-4c09-b1b4-6ebe49cfcf1d","savedPayload":{"position":{"x":19929.882495214944,"y":18715.280168296293},"targetPosition":{"x":20088.981520981917,"y":18556.18114252932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fe128ca4-0803-4db3-b409-8c6a3d31b47b","savedPayload":{"position":{"x":20088.981520981917,"y":18556.18114252932},"targetPosition":{"x":20147.215806129985,"y":18338.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"UP Trend Begin","project":"Superalgos","id":"87966102-abf2-4ba4-a9b1-2e29faadfb43","savedPayload":{"position":{"x":19757.504374426986,"y":18563.84783161428},"targetPosition":{"x":20147.215806129985,"y":18338.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"UP Trend Begin","id":"807b982d-7dd4-4b96-ba1f-460b1b6b4fb7"}}},{"type":"Polygon Vertex","name":"UP Trend End","project":"Superalgos","id":"04f54fc4-3887-414c-91b2-9d71d70ec519","savedPayload":{"position":{"x":19712.549184299904,"y":18222.379261318143},"targetPosition":{"x":20147.215806129985,"y":18338.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"UP Trend End","id":"adf1bd2c-2a5a-4243-9591-2a462635b074"}}}],"id":"e51152bb-9000-4200-88c1-632aaf05333b","savedPayload":{"position":{"x":20147.215806129985,"y":18338.84783161428},"targetPosition":{"x":20536.927237832984,"y":18113.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Down Trend","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"91670c53-5e35-4144-8fac-6f8feb43e59d","savedPayload":{"position":{"x":21033.20916918861,"y":16474.704063229266},"targetPosition":{"x":21192.30819495558,"y":16633.80308899624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.trend != -1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"opacity\": 0.0,\n \"lineWidth\": 0,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n}","project":"Superalgos","id":"2395d71a-99ee-4330-84d4-1837025d78d6","savedPayload":{"position":{"x":21308.776765251718,"y":16199.136467166158},"targetPosition":{"x":21250.54248010365,"y":16416.4697780812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ba17827a-0425-4044-8e15-d29792f800d5","savedPayload":{"position":{"x":21250.54248010365,"y":16416.4697780812},"targetPosition":{"x":21192.30819495558,"y":16633.80308899624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a97ad15a-c206-4b75-8d8e-1c95197b9b57","savedPayload":{"position":{"x":21192.30819495558,"y":16633.80308899624},"targetPosition":{"x":21250.54248010365,"y":16851.13639991128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Down Trend Begin","project":"Superalgos","id":"54f9e103-c71f-4ec3-b950-0df008f2e6fa","savedPayload":{"position":{"x":21475.54248010365,"y":16461.42496820828},"targetPosition":{"x":21250.54248010365,"y":16851.13639991128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Down Trend Begin","id":"6e276847-0fa5-4473-898f-ccd4c63591c4"}}},{"type":"Polygon Vertex","name":"Down Trend End","project":"Superalgos","id":"d57924a2-920b-40ec-8b56-3ae304ef2979","savedPayload":{"position":{"x":21685.20910193373,"y":16734.667829615144},"targetPosition":{"x":21250.54248010365,"y":16851.13639991128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Down Trend End","id":"ab5aabfe-781f-41d6-a809-95299392ca90"}}}],"id":"4f25fc3c-5e09-4feb-bcfa-7ac9e729a4dc","savedPayload":{"position":{"x":20311.927237832984,"y":17724.13639991128},"targetPosition":{"x":20536.927237832984,"y":18113.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"cff527e9-cc21-4872-9732-2b713890e8b8","savedPayload":{"position":{"x":20536.927237832984,"y":18113.84783161428},"targetPosition":{"x":20796.734858968317,"y":17963.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Super Trend","config":"{ \n \"codeName\": \"superTrend\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Up Trend","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"Up Trend","code":"record.uptrend","project":"Superalgos","id":"5b0f1653-7d8e-4ed1-8dec-70dd6701c16b","savedPayload":{"position":{"x":20404.650439272085,"y":17300.96336120078},"targetPosition":{"x":20614.706035233954,"y":17381.596149848472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"1384fd63-8258-44d4-ab3f-5f18c3eaaaa1","savedPayload":{"position":{"x":20473.10894724774,"y":17206.738308520653},"targetPosition":{"x":20614.706035233954,"y":17381.596149848472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"07dfc209-e925-4f10-bbc9-608896333744","savedPayload":{"position":{"x":20614.706035233954,"y":17381.596149848472},"targetPosition":{"x":20796.734858968317,"y":17513.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Down Trend","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.downtrend","project":"Superalgos","id":"14561cfc-7d72-4cb5-8567-7892d8ae6a8c","savedPayload":{"position":{"x":20604.662252355574,"y":17111.15923766015},"targetPosition":{"x":20727.206035233954,"y":17299.86011544787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"9d950966-b1bb-406e-b3b3-d1fdaea7577e","savedPayload":{"position":{"x":20715.43044507929,"y":17075.168470128094},"targetPosition":{"x":20727.206035233954,"y":17299.86011544787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3be37b3c-92d2-4f4c-a0d3-644acc172106","savedPayload":{"position":{"x":20727.206035233954,"y":17299.86011544787},"targetPosition":{"x":20796.734858968317,"y":17513.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trend","project":"Superalgos","id":"d8579565-736a-48ec-af20-e7cd3cdf2294","savedPayload":{"position":{"x":20878.039272857342,"y":17075.168470128094},"targetPosition":{"x":20866.26368270268,"y":17299.86011544787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"ba78eeae-12db-4b4a-9e68-2b30598fc986","savedPayload":{"position":{"x":20988.80746558106,"y":17111.15923766015},"targetPosition":{"x":20866.26368270268,"y":17299.86011544787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c265c3b9-bd32-49fe-8676-d2b93e513455","savedPayload":{"position":{"x":20866.26368270268,"y":17299.86011544787},"targetPosition":{"x":20796.734858968317,"y":17513.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ATR N Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.atrNPeriod","project":"Superalgos","id":"48978331-2944-4c90-8ffe-896ef6ce0a52","savedPayload":{"position":{"x":21024.52155504871,"y":17278.82228586368},"targetPosition":{"x":20978.76368270268,"y":17381.596149848472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"00b8eb7b-440e-4e3b-81ee-bd1de53de6b0","savedPayload":{"position":{"x":21090.64739593161,"y":17369.83669773086},"targetPosition":{"x":20978.76368270268,"y":17381.596149848472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cd7a1729-5463-4d4b-bec3-eb94685354a1","savedPayload":{"position":{"x":20978.76368270268,"y":17381.596149848472},"targetPosition":{"x":20796.734858968317,"y":17513.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4e328571-7ea2-44a4-8239-a8bfd6614a6d","savedPayload":{"position":{"x":20796.734858968317,"y":17513.84783161428},"targetPosition":{"x":20796.734858968317,"y":17963.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"acfb7d6b-e877-4fb0-bef4-3923c049244b","savedPayload":{"position":{"x":20796.734858968317,"y":17963.84783161428},"targetPosition":{"x":21056.54248010365,"y":18113.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c6fdad31-1843-49e2-abe3-51fe7ed4a836","savedPayload":{"position":{"x":21109.6450029265,"y":18101.512255926536},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Donchian Channel","config":"{ \n \"codeName\": \"PlotterDonchianChannel\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Donchian Channel","config":"{ \n \"codeName\": \"donchian\", \n \"icon\": \"oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"hiHigh Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.hiHigh","project":"Superalgos","id":"55651897-b11c-45f5-a388-b2015d93f406","savedPayload":{"position":{"x":21501.4755458967,"y":17360.015278897445},"targetPosition":{"x":21352.176069369405,"y":17191.6862371112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"50921056-6afc-4c1f-a6b9-3caa26d760af","savedPayload":{"position":{"x":21352.176069369405,"y":17191.6862371112},"targetPosition":{"x":21202.87659284211,"y":17023.357195324956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"hiHigh End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.hiHigh","project":"Superalgos","id":"ba3e4c9d-b10b-4e21-9452-f8fd45fa0c63","savedPayload":{"position":{"x":21125.840106353022,"y":17466.714139275784},"targetPosition":{"x":21164.358349597565,"y":17245.03566730037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"922ff9da-5d6f-4db2-b052-15b2a9a33fcd","savedPayload":{"position":{"x":21164.358349597565,"y":17245.03566730037},"targetPosition":{"x":21202.87659284211,"y":17023.357195324956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"loLow Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.loLow","project":"Superalgos","id":"8103aa93-0697-45da-bbbc-3872ec54fe9a","savedPayload":{"position":{"x":20906.880182505698,"y":17185.506432350485},"targetPosition":{"x":21005.545652617835,"y":17131.45668667531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8e0ce244-ab42-4e17-a9ce-0c7019722135","savedPayload":{"position":{"x":21005.545652617835,"y":17131.45668667531},"targetPosition":{"x":21202.87659284211,"y":17023.357195324956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"loLow End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.loLow","project":"Superalgos","id":"03e5140a-a35e-4f09-82cd-15b5ecc94027","savedPayload":{"position":{"x":20891.552471245835,"y":16893.036278691015},"targetPosition":{"x":20995.327178444593,"y":16936.47658423566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c4f84735-1bcb-4ff2-9611-ea6f7a344352","savedPayload":{"position":{"x":20995.327178444593,"y":16936.47658423566},"targetPosition":{"x":21202.87659284211,"y":17023.357195324956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Mid Point Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.midPoint","project":"Superalgos","id":"bb353f64-f496-4db0-84c5-650922328ff7","savedPayload":{"position":{"x":21110.65817340271,"y":16698.70043331914},"targetPosition":{"x":21141.397646549176,"y":16806.919353987745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"881ca3b6-39c7-4930-a596-b3aad84ab0ad","savedPayload":{"position":{"x":21141.397646549176,"y":16806.919353987745},"targetPosition":{"x":21202.87659284211,"y":17023.357195324956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Mid Point End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.midPoint","project":"Superalgos","id":"a016b845-9a98-4e67-a4c5-43f7fb8aa3fc","savedPayload":{"position":{"x":21399.206226310387,"y":16748.83775152869},"targetPosition":{"x":21333.763015154294,"y":16840.344232794112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9493a69b-1a23-4b91-928f-88edebf47e71","savedPayload":{"position":{"x":21333.763015154294,"y":16840.344232794112},"targetPosition":{"x":21202.87659284211,"y":17023.357195324956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"63f034d5-a5e4-47e1-8949-47da43c99b36","savedPayload":{"position":{"x":20467.830036640586,"y":17586.03500079752},"targetPosition":{"x":20907.9964569708,"y":17492.47473992953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"hiHigh","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"65953e73-b3e0-46d9-9eda-6cc40a7f5738","savedPayload":{"position":{"x":20073.7845637797,"y":17585.474516733975},"targetPosition":{"x":20353.85869172886,"y":17477.964131870383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f22dc14f-5ba4-49b0-9c92-d8cba9c6b895","savedPayload":{"position":{"x":20353.85869172886,"y":17477.964131870383},"targetPosition":{"x":20633.93281967802,"y":17370.45374700679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"hiHigh Begin","project":"Superalgos","id":"45dea2ad-ffd9-4e03-84e5-fddaa7df9365","savedPayload":{"position":{"x":20359.86918238524,"y":17248.432754084053},"targetPosition":{"x":20633.93281967802,"y":17370.45374700679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"hiHigh Begin","id":"50921056-6afc-4c1f-a6b9-3caa26d760af"}}},{"type":"Polygon Vertex","name":"hiHigh End","project":"Superalgos","id":"261569f5-3798-45cf-94e9-377f8163be3b","savedPayload":{"position":{"x":20526.422434814427,"y":17090.379619057632},"targetPosition":{"x":20633.93281967802,"y":17370.45374700679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"hiHigh End","id":"922ff9da-5d6f-4db2-b052-15b2a9a33fcd"}}}],"id":"83f6ab27-cdde-40d2-ae59-18b0bc64747b","savedPayload":{"position":{"x":20633.93281967802,"y":17370.45374700679},"targetPosition":{"x":20907.9964569708,"y":17492.47473992953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"loLow","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"81ad12f9-de32-439d-b54f-b8173a9d7e83","savedPayload":{"position":{"x":21856.90457949552,"y":16711.316284191722},"targetPosition":{"x":21919.278086740847,"y":17004.760564411863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9d836367-daba-432f-901d-f0c89c5d7d70","savedPayload":{"position":{"x":21919.278086740847,"y":17004.760564411863},"targetPosition":{"x":21981.651593986175,"y":17298.204844632004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"loLow Begin","project":"Superalgos","id":"09df170c-f916-4d62-a7c6-eed4a9a575c4","savedPayload":{"position":{"x":22145.043304490682,"y":17046.603674248378},"targetPosition":{"x":21981.651593986175,"y":17298.204844632004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"loLow Begin","id":"8e0ce244-ab42-4e17-a9ce-0c7019722135"}}},{"type":"Polygon Vertex","name":"loLow End","project":"Superalgos","id":"166b6f98-ae48-4253-8554-6efa78fe8c7b","savedPayload":{"position":{"x":22275.095874206316,"y":17235.831337386677},"targetPosition":{"x":21981.651593986175,"y":17298.204844632004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"loLow End","id":"c4f84735-1bcb-4ff2-9611-ea6f7a344352"}}}],"id":"955b060d-1916-499a-b281-6ad2d778e470","savedPayload":{"position":{"x":20757.9964569708,"y":17232.667118794197},"targetPosition":{"x":20907.9964569708,"y":17492.47473992953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Mid Point","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [5,5],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"lineWidth\": 2,\n \"lineDash\": [5,5],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"0babee6c-8476-4607-9c4b-8755442c337c","savedPayload":{"position":{"x":20561.76276132119,"y":16727.83059444487},"targetPosition":{"x":20750.558878636144,"y":16960.97438288196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"70981c2b-54c8-4621-b6b3-c3f31d20ba9e","savedPayload":{"position":{"x":20750.558878636144,"y":16960.97438288196},"targetPosition":{"x":20939.354995951096,"y":17194.11817131905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Mid Point Begin","project":"Superalgos","id":"18757d43-015d-4613-8eec-c62d45430523","savedPayload":{"position":{"x":20970.713534931394,"y":16895.761602708568},"targetPosition":{"x":20939.354995951096,"y":17194.11817131905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Mid Point Begin","id":"881ca3b6-39c7-4930-a596-b3aad84ab0ad"}}},{"type":"Polygon Vertex","name":"Mid Point End","project":"Superalgos","id":"caeda3ac-dcce-419a-8b02-385fde1add1d","savedPayload":{"position":{"x":21172.498784388186,"y":17005.322054004097},"targetPosition":{"x":20939.354995951096,"y":17194.11817131905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Mid Point End","id":"9493a69b-1a23-4b91-928f-88edebf47e71"}}}],"id":"e14b4a49-8143-4d23-91b2-012ccb487ed0","savedPayload":{"position":{"x":20939.354995951096,"y":17194.11817131905},"targetPosition":{"x":20907.9964569708,"y":17492.47473992953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"e30d5478-bee6-4de2-aaba-d2b7f3c9fcc7","savedPayload":{"position":{"x":20907.9964569708,"y":17492.47473992953},"targetPosition":{"x":21130.939904614017,"y":17693.21392183719},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Donchian Channel","config":"{ \n \"codeName\": \"donchian\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Higher Highs","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"Higher Highs","code":"record.hiHigh","project":"Superalgos","id":"f20d1bbf-730c-42fe-89d5-dae9247a3e87","savedPayload":{"position":{"x":20762.619744098327,"y":17011.971321311557},"targetPosition":{"x":21029.921701354837,"y":17148.16847123342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"e9f188e5-39f2-4829-a984-20692feec630","savedPayload":{"position":{"x":21014.220914481954,"y":16848.57961080705},"targetPosition":{"x":21029.921701354837,"y":17148.16847123342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fc38d930-d64d-43b1-ab5c-0298399637c7","savedPayload":{"position":{"x":21029.921701354837,"y":17148.16847123342},"targetPosition":{"x":21193.313411859344,"y":17399.769641617047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Lower Lows","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.loLow","project":"Superalgos","id":"f74f46f9-e98b-480d-a83a-ea771ac8798f","savedPayload":{"position":{"x":21162.98182079219,"y":16821.00840650836},"targetPosition":{"x":21255.68691910467,"y":17106.325361396906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"d1dd430a-4173-4e15-b63e-a79ce99f3a1f","savedPayload":{"position":{"x":21456.42610101233,"y":16883.38191375369},"targetPosition":{"x":21255.68691910467,"y":17106.325361396906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d335f544-6464-4427-9e05-65e0cee03904","savedPayload":{"position":{"x":21255.68691910467,"y":17106.325361396906},"targetPosition":{"x":21193.313411859344,"y":17399.769641617047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Mid Point","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.midPoint","project":"Superalgos","id":"e463947a-45b3-43ed-ac68-c7bee6d9e15d","savedPayload":{"position":{"x":21581.111732164834,"y":16969.07597385603},"targetPosition":{"x":21444.91458224297,"y":17236.37793111254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1,\n \"fontSize\": 14\n}\n\n\n\n","project":"Superalgos","id":"38521ffb-a1aa-4cea-be3f-2879dcd927a2","savedPayload":{"position":{"x":21744.503442669342,"y":17220.677144239657},"targetPosition":{"x":21444.91458224297,"y":17236.37793111254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3019461a-f4d1-4530-8f20-364f06dce9d3","savedPayload":{"position":{"x":21444.91458224297,"y":17236.37793111254},"targetPosition":{"x":21193.313411859344,"y":17399.769641617047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"239cb3b7-204e-4b5a-969f-d3cc6eec864c","savedPayload":{"position":{"x":21193.313411859344,"y":17399.769641617047},"targetPosition":{"x":21130.939904614017,"y":17693.21392183719},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dd7b5cd7-3b5e-4809-949e-777ddcce4648","savedPayload":{"position":{"x":21130.939904614017,"y":17693.21392183719},"targetPosition":{"x":21223.6450029265,"y":17978.530876725734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"45f9ecae-362e-4302-ba60-b6d7f949c9bc","savedPayload":{"position":{"x":21259.6450029265,"y":17992.530876725734},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Directional Movement Index (DMI)","config":"{ \n \"codeName\": \"Plotter-DMI\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"DMI Directional Movement","config":"{ \n \"codeName\": \"DMI\", \n \"icon\": \"oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"ADX +DI -DI","project":"Superalgos","points":[{"type":"Point","name":"ADX Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.adx","project":"Superalgos","id":"9a5c382e-9075-4fd9-a6c3-3b4595bb9ecb","savedPayload":{"position":{"x":21309.810447616328,"y":17808.40510073104},"targetPosition":{"x":21203.45955868158,"y":17610.12628586977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fae38925-e197-4984-bbf3-4f5cf8cdde87","savedPayload":{"position":{"x":21203.45955868158,"y":17610.12628586977},"targetPosition":{"x":20990.75778081209,"y":17213.568656147232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ADX End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.adx","project":"Superalgos","id":"968b241e-722e-4a8b-aaf4-ee34cb41daaa","savedPayload":{"position":{"x":20724.622005525394,"y":17833.88853259208},"targetPosition":{"x":20813.33393062096,"y":17627.115240443796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8cc5bc3c-d019-4a1a-a069-f38d61131e7f","savedPayload":{"position":{"x":20813.33393062096,"y":17627.115240443796},"targetPosition":{"x":20990.75778081209,"y":17213.568656147232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"+DI Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.plusDI","project":"Superalgos","id":"cc9624f8-ae30-4d30-9336-103a59a3bfd1","savedPayload":{"position":{"x":20339.83923040581,"y":17392.258445270687},"targetPosition":{"x":20556.812080541236,"y":17332.695182229534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ab40f6c8-026c-4c9e-970b-e1da797e83d7","savedPayload":{"position":{"x":20556.812080541236,"y":17332.695182229534},"targetPosition":{"x":20990.75778081209,"y":17213.568656147232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"+DI End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.plusDI","project":"Superalgos","id":"f4f90058-af66-4c40-822f-ccf546ac016f","savedPayload":{"position":{"x":20445.211400060816,"y":16816.07130213191},"targetPosition":{"x":20627.060193644575,"y":16948.570420137017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cee77e2a-f5ac-4f21-91dc-21fd2a63ffd4","savedPayload":{"position":{"x":20627.060193644575,"y":16948.570420137017},"targetPosition":{"x":20990.75778081209,"y":17213.568656147232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-DI Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.minusDI","project":"Superalgos","id":"3abacd0d-e595-4322-9e4f-6e7462a6ce06","savedPayload":{"position":{"x":20961.391121539647,"y":16539.20777403501},"targetPosition":{"x":20971.180007963794,"y":16763.994734739084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"20776211-c287-4689-9048-83655653dac9","savedPayload":{"position":{"x":20971.180007963794,"y":16763.994734739084},"targetPosition":{"x":20990.75778081209,"y":17213.568656147232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-DI End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.minusDI","project":"Superalgos","id":"214b0afe-f312-490f-943b-66f6e302086d","savedPayload":{"position":{"x":21499.68453642131,"y":16770.15174462369},"targetPosition":{"x":21330.04228455157,"y":16917.957381798205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f0a11eef-05f1-474f-89e7-3bee3ab07a67","savedPayload":{"position":{"x":21330.04228455157,"y":16917.957381798205},"targetPosition":{"x":20990.75778081209,"y":17213.568656147232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0bea3584-667d-4f44-a761-cd73fde6da89","savedPayload":{"position":{"x":20429.098202389174,"y":17644.731722693676},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"BANDS","project":"Superalgos","points":[{"type":"Point","name":"Band 50 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 50","project":"Superalgos","id":"8153d621-7b8c-4d0b-a6da-8c82b1a09e2a","savedPayload":{"position":{"x":20256.729390350236,"y":18091.691741064627},"targetPosition":{"x":20288.04333806625,"y":17868.881425597774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3190a724-bdd5-42d8-8f98-cb0607d80ce8","savedPayload":{"position":{"x":20288.04333806625,"y":17868.881425597774},"targetPosition":{"x":20350.67123349828,"y":17423.260794664067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Band 50 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 50","project":"Superalgos","id":"28976ae7-de81-4013-a436-036b58dfdae5","savedPayload":{"position":{"x":20033.777928617805,"y":18019.250419843844},"targetPosition":{"x":20139.40903024463,"y":17820.587211450584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"75de4dca-059a-43c8-97c0-a17cefd70e72","savedPayload":{"position":{"x":20139.40903024463,"y":17820.587211450584},"targetPosition":{"x":20350.67123349828,"y":17423.260794664067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Band 75 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 75","project":"Superalgos","id":"28f64dde-54a2-4fd3-b2bd-9b1815490769","savedPayload":{"position":{"x":19849.04847630104,"y":17874.9239539563},"targetPosition":{"x":20016.25606203345,"y":17724.369567525555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"226d3395-f608-4bf7-9526-6cffaf7b734d","savedPayload":{"position":{"x":20016.25606203345,"y":17724.369567525555},"targetPosition":{"x":20350.67123349828,"y":17423.260794664067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Band 75 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 75","project":"Superalgos","id":"c1a16632-8d96-4f3e-bdb9-ee30b9c2f300","savedPayload":{"position":{"x":19724.8221316657,"y":17676.12024521981},"targetPosition":{"x":19933.438498943226,"y":17591.83376170123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"85418e43-44b8-47a0-8172-767bdd742b05","savedPayload":{"position":{"x":19933.438498943226,"y":17591.83376170123},"targetPosition":{"x":20350.67123349828,"y":17423.260794664067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Band 100 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 100","project":"Superalgos","id":"7bdd757b-7e1f-40b6-b46f-fae1ee4b5b4a","savedPayload":{"position":{"x":19676.082425260392,"y":17446.817954938255},"targetPosition":{"x":19900.945361339687,"y":17438.965568180192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f5c6c92d-c739-4f17-964d-080240fc4628","savedPayload":{"position":{"x":19900.945361339687,"y":17438.965568180192},"targetPosition":{"x":20350.67123349828,"y":17423.260794664067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Band 100 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 100","project":"Superalgos","id":"2c839429-dbff-4e26-9366-5f1b1cc261d2","savedPayload":{"position":{"x":19708.708084999053,"y":17214.67432346098},"targetPosition":{"x":19922.69580116546,"y":17284.20314719534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"798370e8-9a99-4947-9a67-968bca900833","savedPayload":{"position":{"x":19922.69580116546,"y":17284.20314719534},"targetPosition":{"x":20350.67123349828,"y":17423.260794664067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Band 25 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 25","project":"Superalgos","id":"8fc31d22-96f4-4311-82eb-a6db86a2469a","savedPayload":{"position":{"x":19818.763974813744,"y":17007.68929881925},"targetPosition":{"x":19996.066394375255,"y":17146.213130767523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c9437036-a169-4106-a07c-3e88867f8ff2","savedPayload":{"position":{"x":19996.066394375255,"y":17146.213130767523},"targetPosition":{"x":20350.67123349828,"y":17423.260794664067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Band 25 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 25","project":"Superalgos","id":"b0947b18-8186-4774-a839-5e4f3b0aa1eb","savedPayload":{"position":{"x":19992.975730140864,"y":16850.82832975848},"targetPosition":{"x":20112.207564593336,"y":17041.639151393676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"748819d2-1545-40ef-aa5b-5bf8d5916733","savedPayload":{"position":{"x":20112.207564593336,"y":17041.639151393676},"targetPosition":{"x":20350.67123349828,"y":17423.260794664067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8f04ce0f-d46d-44c8-9bf0-b0cb86b8b0de","savedPayload":{"position":{"x":20350.67123349828,"y":17423.260794664067},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"ADX","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"108326b6-7de4-4b09-a38b-b1366de3c0d1","savedPayload":{"position":{"x":21322.578120454,"y":17075.54857399022},"targetPosition":{"x":21435.015676513583,"y":17071.8007763239},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"4c6d1aad-872b-4d09-9eae-859d28f30589","savedPayload":{"position":{"x":21435.015676513583,"y":17071.8007763239},"targetPosition":{"x":21547.453232573167,"y":17068.05297865758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"ADX Begin","project":"Superalgos","id":"e70cdd03-d5b5-4da8-a647-ef0b6351f3e5","savedPayload":{"position":{"x":21218.831426596586,"y":16760.63191783596},"targetPosition":{"x":21547.453232573167,"y":17068.05297865758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ADX Begin","id":"fae38925-e197-4984-bbf3-4f5cf8cdde87"}}},{"type":"Polygon Vertex","name":"ADX End","project":"Superalgos","id":"8def43f6-65bf-404d-9407-46f1e7b90ea8","savedPayload":{"position":{"x":21532.462041907886,"y":16618.302754419237},"targetPosition":{"x":21547.453232573167,"y":17068.05297865758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ADX End","id":"8cc5bc3c-d019-4a1a-a069-f38d61131e7f"}}}],"id":"e493efd6-ece7-4243-8a14-23ea1771b2f1","savedPayload":{"position":{"x":20781.620783519145,"y":17212.58909261876},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"+DI","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"1ff8bfc1-8a0e-4cea-bcda-d0dfbbfd6ecd","savedPayload":{"position":{"x":21429.497402973662,"y":16931.759560795497},"targetPosition":{"x":21538.436324602277,"y":16959.840895421803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"580eab00-426b-410c-8c33-86778ca7f89c","savedPayload":{"position":{"x":21538.436324602277,"y":16959.840895421803},"targetPosition":{"x":21647.37524623089,"y":16987.92223004811},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"+DI Begin","project":"Superalgos","id":"65ec6c2d-5328-41f2-8eb6-0f03fbed8f42","savedPayload":{"position":{"x":21418.675453912034,"y":16600.37042061702},"targetPosition":{"x":21647.37524623089,"y":16987.92223004811},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"+DI Begin","id":"ab40f6c8-026c-4c9e-970b-e1da797e83d7"}}},{"type":"Polygon Vertex","name":"+DI End","project":"Superalgos","id":"a61c7250-5391-45d5-9da3-133b3089268c","savedPayload":{"position":{"x":21759.700584736114,"y":16552.16654353365},"targetPosition":{"x":21647.37524623089,"y":16987.92223004811},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"+DI End","id":"cee77e2a-f5ac-4f21-91dc-21fd2a63ffd4"}}}],"id":"900f1174-1224-4aa1-9d99-58103f23c4ac","savedPayload":{"position":{"x":20803.028641825884,"y":17097.08262545936},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"-DI","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"a6a9fd26-a928-484e-9408-7df706ab8202","savedPayload":{"position":{"x":21486.716013048677,"y":16772.686114286662},"targetPosition":{"x":21572.59574962824,"y":16823.917655792116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ed323d74-83e4-4338-b932-bb36584e68c4","savedPayload":{"position":{"x":21572.59574962824,"y":16823.917655792116},"targetPosition":{"x":21765.825156932253,"y":16939.188624179387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-DI Begin","project":"Superalgos","id":"654b23d0-1ac9-4511-b0a1-b773a6c905d5","savedPayload":{"position":{"x":21655.575275314757,"y":16502.903208879576},"targetPosition":{"x":21765.825156932253,"y":16939.188624179387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-DI Begin","id":"20776211-c287-4689-9048-83655653dac9"}}},{"type":"Polygon Vertex","name":"-DI End","project":"Superalgos","id":"ae8b6d1e-6ec2-4bba-a5e6-c2a6d3813b53","savedPayload":{"position":{"x":21996.367093706795,"y":16552.729809571356},"targetPosition":{"x":21765.825156932253,"y":16939.188624179387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-DI End","id":"f0a11eef-05f1-474f-89e7-3bee3ab07a67"}}}],"id":"057d309b-88ca-42f6-8e23-ea8ae1e2ed05","savedPayload":{"position":{"x":20853.602318583264,"y":16991.052707171322},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Band 50 - 75","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.LIGHT\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.LIGHT\"\n }\n}","project":"Superalgos","id":"f29f2ffc-a9e6-42b3-b524-32f9d70bc7df","savedPayload":{"position":{"x":21321.91235715429,"y":16566.290053880995},"targetPosition":{"x":21512.343857223186,"y":16686.126791910327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"dc5a2ec9-1b68-453d-bfc8-035e20b66703","savedPayload":{"position":{"x":21512.343857223186,"y":16686.126791910327},"targetPosition":{"x":21893.206857360976,"y":16925.800267968985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Band 50 Begin","project":"Superalgos","id":"0dc3c13a-0b4b-4a8c-bfc2-238bdb440b60","savedPayload":{"position":{"x":21683.206561909425,"y":16527.80544901997},"targetPosition":{"x":21893.206857360976,"y":16925.800267968985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 50 Begin","id":"3190a724-bdd5-42d8-8f98-cb0607d80ce8"}}},{"type":"Polygon Vertex","name":"Band 50 End","project":"Superalgos","id":"e2f2d64f-6fd0-477d-932a-20b83ce53cf1","savedPayload":{"position":{"x":21910.338676172203,"y":16476.12649645877},"targetPosition":{"x":21893.206857360976,"y":16925.800267968985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 50 End","id":"75de4dca-059a-43c8-97c0-a17cefd70e72"}}},{"type":"Polygon Vertex","name":"Band 75 End","project":"Superalgos","id":"dde5fc42-4c65-4f55-b754-ee07575081e6","savedPayload":{"position":{"x":22132.880333419635,"y":16544.937267831196},"targetPosition":{"x":21893.206857360976,"y":16925.800267968985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 75 End","id":"85418e43-44b8-47a0-8172-767bdd742b05"}}},{"type":"Polygon Vertex","name":"Band 75 Begin","project":"Superalgos","id":"4154f4b4-739c-4d2f-90d0-c4c6f735b3f3","savedPayload":{"position":{"x":22291.201676309993,"y":16715.799972517434},"targetPosition":{"x":21893.206857360976,"y":16925.800267968985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 75 Begin","id":"226d3395-f608-4bf7-9526-6cffaf7b734d"}}}],"id":"0c2cbdcc-700f-45af-a671-29be9b677dcc","savedPayload":{"position":{"x":20929.895301297216,"y":16901.725101463257},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Band 75 - 100","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.GREY\"\n }\n}","project":"Superalgos","id":"cd98d7c9-6bd1-4f1f-a21e-ecda719b6888","savedPayload":{"position":{"x":21721.289088391586,"y":16611.575283338283},"targetPosition":{"x":21870.24486405402,"y":16780.208544875866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"4af5b3ce-bba8-4f3d-9b54-9674f9daa71f","savedPayload":{"position":{"x":21870.24486405402,"y":16780.208544875866},"targetPosition":{"x":22019.200639716455,"y":16948.84180641345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Band 75 Begin","project":"Superalgos","id":"2f2f44d1-6b8f-4def-a1fb-18500da9952b","savedPayload":{"position":{"x":21929.83492972587,"y":16507.804653921874},"targetPosition":{"x":22019.200639716455,"y":16948.84180641345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 75 Begin","id":"226d3395-f608-4bf7-9526-6cffaf7b734d"}}},{"type":"Polygon Vertex","name":"Band 75 End","project":"Superalgos","id":"c9d5eb01-23ba-4da5-8029-84f4ac6c2007","savedPayload":{"position":{"x":22162.32624088316,"y":16522.2095733477},"targetPosition":{"x":22019.200639716455,"y":16948.84180641345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 75 End","id":"85418e43-44b8-47a0-8172-767bdd742b05"}}},{"type":"Polygon Vertex","name":"Band 100 End","project":"Superalgos","id":"97b2cafc-9ca1-49fd-b86c-ebafcf546842","savedPayload":{"position":{"x":22356.467162791618,"y":16650.93025508858},"targetPosition":{"x":22019.200639716455,"y":16948.84180641345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 100 End","id":"798370e8-9a99-4947-9a67-968bca900833"}}},{"type":"Polygon Vertex","name":"Band 100 Begin","project":"Superalgos","id":"d0dedf91-ac18-4ef0-9335-765bcbdf95b0","savedPayload":{"position":{"x":22460.23779220803,"y":16859.476096422863},"targetPosition":{"x":22019.200639716455,"y":16948.84180641345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 100 Begin","id":"f5c6c92d-c739-4f17-964d-080240fc4628"}}}],"id":"9b1c6d74-48a6-4c92-85ae-8c0d211dfbf5","savedPayload":{"position":{"x":21026.70834927591,"y":16835.18733704332},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Level 50","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n }\n}","project":"Superalgos","id":"e06383fe-a5dd-4554-a163-f6d0adaa434a","savedPayload":{"position":{"x":22521.53479181756,"y":16664.64716489982},"targetPosition":{"x":22521.53479181756,"y":16364.64716489982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"281f1f26-a63f-47e8-aced-cf97115f7925","savedPayload":{"position":{"x":22054.754504680466,"y":16563.4076045345},"targetPosition":{"x":22133.59923706614,"y":17006.44655110131},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Band 50 Begin","project":"Superalgos","id":"5ab321e2-936f-4946-a708-62011d8bac64","savedPayload":{"position":{"x":22391.12343558253,"y":16637.419062723424},"targetPosition":{"x":22133.59923706614,"y":17006.44655110131},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 50 Begin","id":"3190a724-bdd5-42d8-8f98-cb0607d80ce8"}}},{"type":"Polygon Vertex","name":"Band 50 End","project":"Superalgos","id":"2afa5b8c-582f-45f6-8749-6e818fa56d7c","savedPayload":{"position":{"x":22576.638183632953,"y":16927.601818715637},"targetPosition":{"x":22133.59923706614,"y":17006.44655110131},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 50 End","id":"75de4dca-059a-43c8-97c0-a17cefd70e72"}}}],"id":"6df98b5c-0db8-447a-adab-23a356c6182b","savedPayload":{"position":{"x":21137.443813290713,"y":16795.973852597872},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Level 75","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n }\n}","project":"Superalgos","id":"d58e329b-6996-469e-9279-319128435135","savedPayload":{"position":{"x":22741.79144749199,"y":16393.376449443695},"targetPosition":{"x":22506.66709336981,"y":16777.064523403034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"7befc553-bc07-43b5-9b53-eed7f7564b69","savedPayload":{"position":{"x":22276.302283873436,"y":16646.641823889655},"targetPosition":{"x":22227.134755407402,"y":17093.947708206575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Band 75 Begin","project":"Superalgos","id":"d7ee0589-7046-41da-97e2-64bece0f45ae","savedPayload":{"position":{"x":22578.194472265055,"y":16812.42137693395},"targetPosition":{"x":22227.134755407402,"y":17093.947708206575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 75 Begin","id":"226d3395-f608-4bf7-9526-6cffaf7b734d"}}},{"type":"Polygon Vertex","name":"Band 75 End","project":"Superalgos","id":"58218d74-b8ed-4c09-9920-bcd103d2c00b","savedPayload":{"position":{"x":22674.440639724322,"y":17143.11523667261},"targetPosition":{"x":22227.134755407402,"y":17093.947708206575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 75 End","id":"85418e43-44b8-47a0-8172-767bdd742b05"}}}],"id":"56c84477-78b8-4ec2-bbd6-c0f76f9c9a90","savedPayload":{"position":{"x":21254.55525446803,"y":16786.756982288527},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Band 25 - 50","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.LIGHT_GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.LIGHT_GREY\"\n }\n}","project":"Superalgos","id":"6a419c80-9d0a-4f32-8645-44f71498c2a6","savedPayload":{"position":{"x":22352.027957427996,"y":16758.247323424825},"targetPosition":{"x":22322.12873037469,"y":16981.251888897405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6c954fd3-d05d-421c-b9dd-9e413759d50b","savedPayload":{"position":{"x":22322.12873037469,"y":16981.251888897405},"targetPosition":{"x":22292.229503321385,"y":17204.256454369985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Band 25 Begin","project":"Superalgos","id":"646f52b1-0faf-44cd-bff8-eaf02feff5cd","savedPayload":{"position":{"x":22567.02104915733,"y":16847.900443704963},"targetPosition":{"x":22292.229503321385,"y":17204.256454369985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 25 Begin","id":"c9437036-a169-4106-a07c-3e88867f8ff2"}}},{"type":"Polygon Vertex","name":"Band 25 End","project":"Superalgos","id":"88b7af94-e3f7-46d8-b3ea-8438c3919f01","savedPayload":{"position":{"x":22708.38396809302,"y":17033.03886926077},"targetPosition":{"x":22292.229503321385,"y":17204.256454369985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 25 End","id":"748819d2-1545-40ef-aa5b-5bf8d5916733"}}},{"type":"Polygon Vertex","name":"Band 50 End","project":"Superalgos","id":"215b0fd2-a4c4-487f-a1ef-f6854e918ca3","savedPayload":{"position":{"x":22738.23863426655,"y":17264.0549084766},"targetPosition":{"x":22292.229503321385,"y":17204.256454369985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 50 End","id":"75de4dca-059a-43c8-97c0-a17cefd70e72"}}},{"type":"Polygon Vertex","name":"Band 50 Begin","project":"Superalgos","id":"fbed1fbe-4264-413d-91ea-4eaf3639bab7","savedPayload":{"position":{"x":22648.585513986407,"y":17479.04800020593},"targetPosition":{"x":22292.229503321385,"y":17204.256454369985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 50 Begin","id":"3190a724-bdd5-42d8-8f98-cb0607d80ce8"}}}],"id":"a39c8312-2af2-4dd4-946b-60dc03bb4868","savedPayload":{"position":{"x":21370.06172162743,"y":16808.164840595266},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[{"type":"Text","name":"New Text","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"","project":"Superalgos","id":"bbc7ba15-2edb-4f35-9649-4d9ce3c353de","savedPayload":{"position":{"x":21314.826062620083,"y":16438.627325428904},"targetPosition":{"x":21476.091639915467,"y":16858.738517352645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"ff933fea-8a4b-4532-b1ce-1cdd194f09d9","savedPayload":{"position":{"x":21592.5602102116,"y":16424.071895522564},"targetPosition":{"x":21476.091639915467,"y":16858.738517352645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"record.property","project":"Superalgos","id":"73edee06-950f-45cd-bd90-32ef9303ac94","savedPayload":{"position":{"x":21825.807322571105,"y":16575.544341380217},"targetPosition":{"x":21476.091639915467,"y":16858.738517352645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{ \n\"configuration\": \"Get the appropriate configuration from the documentation\"\n}","project":"Superalgos","id":"f6f816f8-5f5f-4b00-9fa2-21f2b30db3b2","savedPayload":{"position":{"x":21925.474930555025,"y":16835.18733704332},"targetPosition":{"x":21476.091639915467,"y":16858.738517352645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1b37d84b-5045-456c-aabf-924be783d067","savedPayload":{"position":{"x":21476.091639915467,"y":16858.738517352645},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cdb5a75e-613a-481d-88e0-38991cc242f2","savedPayload":{"position":{"x":21231.004074158704,"y":17236.140272928085},"targetPosition":{"x":21532.11284702019,"y":17570.555444392914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"DMI Directional Movement","config":"{ \n \"codeName\": \"DMI\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"ADX","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.adx","project":"Superalgos","id":"0eaf0b8e-aeb3-4b05-be3a-d235958773d2","savedPayload":{"position":{"x":22240.918013416493,"y":16650.210137309925},"targetPosition":{"x":22217.366833107168,"y":17099.593427949483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"581d5c5a-0805-4d53-80c3-ec3fd38fd825","savedPayload":{"position":{"x":22618.319768991933,"y":16895.297703066688},"targetPosition":{"x":22217.366833107168,"y":17099.593427949483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"57929c4f-d65a-4342-a156-83e3c37bcde3","savedPayload":{"position":{"x":22217.366833107168,"y":17099.593427949483},"targetPosition":{"x":21972.279267350405,"y":17476.995183524923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"+DI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.plusDI","project":"Superalgos","id":"f03ad7aa-8df8-48d4-b8f9-ca83062e24f1","savedPayload":{"position":{"x":22746.860859145447,"y":17082.326149795445},"targetPosition":{"x":22412.445687680618,"y":17383.434922656932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"a59f5ccb-0893-4a38-8603-f33c7bd79d86","savedPayload":{"position":{"x":22840.421120013438,"y":17522.492570125658},"targetPosition":{"x":22412.445687680618,"y":17383.434922656932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a2d73831-c487-4f26-8b5b-66980654a6ff","savedPayload":{"position":{"x":22412.445687680618,"y":17383.434922656932},"targetPosition":{"x":21972.279267350405,"y":17476.995183524923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"-DI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.minusDI","project":"Superalgos","id":"b0dc6011-498f-486e-947e-4b7d700927ae","savedPayload":{"position":{"x":22799.064313565403,"y":17745.63392959101},"targetPosition":{"x":22349.681022925844,"y":17722.082749281686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"b942aa1f-30ab-4633-bc95-9c9d5c7dc100","savedPayload":{"position":{"x":22553.97674780864,"y":18123.03568516645},"targetPosition":{"x":22349.681022925844,"y":17722.082749281686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c8fd597b-22d1-43c9-88a0-34afa3fd44c1","savedPayload":{"position":{"x":22349.681022925844,"y":17722.082749281686},"targetPosition":{"x":21972.279267350405,"y":17476.995183524923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9021a665-2e1b-472e-ab60-6b244795eb9e","savedPayload":{"position":{"x":21972.279267350405,"y":17476.995183524923},"targetPosition":{"x":21532.11284702019,"y":17570.555444392914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4e8c7782-32a0-496d-baab-d11bb1a562d0","savedPayload":{"position":{"x":21532.11284702019,"y":17570.555444392914},"targetPosition":{"x":21393.055199551465,"y":17998.530876725734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"24ac7fd1-9eb7-4931-9103-43dec214e698","savedPayload":{"position":{"x":21445.055199551465,"y":17992.530876725734},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Ichimoku Cloud","config":"{ \n \"codeName\": \"Plotter-Ichimoku\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Ichimoku","config":"{ \n \"codeName\": \"Ichimoku\", \n \"icon\": \"|moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Lagging Span Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.pastBegin\ny = record.previous.laggingSpan\n","project":"Superalgos","id":"40d770c4-6cc1-4a26-afed-5aae3615acd0","savedPayload":{"position":{"x":21613.92929803368,"y":17824.290980236306},"targetPosition":{"x":21545.053354308588,"y":17532.30450045346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed94f11a-7635-42cb-ac2d-fe9d05159b2a","savedPayload":{"position":{"x":21545.053354308588,"y":17532.30450045346},"targetPosition":{"x":21476.177410583496,"y":17240.318020670617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Lagging Span End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.pastEnd\ny = record.laggingSpan\n","project":"Superalgos","id":"a671dd96-1e10-4fe7-bf9c-64acf9379878","savedPayload":{"position":{"x":21276.342054323566,"y":17806.061629020252},"targetPosition":{"x":21376.25973245353,"y":17523.189824845434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"15d9b3e5-54b9-4f6f-9e69-37dae6d9d37b","savedPayload":{"position":{"x":21376.25973245353,"y":17523.189824845434},"targetPosition":{"x":21476.177410583496,"y":17240.318020670617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Conersion Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.conversionLine","project":"Superalgos","id":"827748a6-7f40-4a30-a811-f88883118c88","savedPayload":{"position":{"x":21160.193219699046,"y":17485.581126561214},"targetPosition":{"x":21239.18926742016,"y":17424.265350088564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"a56bb9d9-6e55-4fa3-936d-81582cf1f94d","savedPayload":{"position":{"x":21239.18926742016,"y":17424.265350088564},"targetPosition":{"x":21476.177410583496,"y":17240.318020670617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Conversion Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.conversionLine","project":"Superalgos","id":"3e816114-9409-4ef8-ae5b-92de87c7ba20","savedPayload":{"position":{"x":21077.755347622762,"y":17275.812523711415},"targetPosition":{"x":21177.360863362945,"y":17266.938897951215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"3eaf4ff4-cf81-4928-b2f8-26d75e89d3c0","savedPayload":{"position":{"x":21177.360863362945,"y":17266.938897951215},"targetPosition":{"x":21476.177410583496,"y":17240.318020670617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Base Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.baseLine","project":"Superalgos","id":"9473832d-9c65-47c0-81b7-06e6399b21b1","savedPayload":{"position":{"x":21121.813665420734,"y":17054.774666938338},"targetPosition":{"x":21210.404601711423,"y":17101.16050537141},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"f7d3e6d3-089b-4bc7-8468-2e42bc6511b7","savedPayload":{"position":{"x":21210.404601711423,"y":17101.16050537141},"targetPosition":{"x":21476.177410583496,"y":17240.318020670617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Base Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.baseLine","project":"Superalgos","id":"01e0f6a0-132f-497a-8cbf-45f305163405","savedPayload":{"position":{"x":21278.379968493304,"y":16892.64551398857},"targetPosition":{"x":21327.82932901585,"y":16979.563640659082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"385613d8-5b52-44b9-be18-91bca1c86c47","savedPayload":{"position":{"x":21327.82932901585,"y":16979.563640659082},"targetPosition":{"x":21476.177410583496,"y":17240.318020670617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Plot Lead Line 1 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.forwardBegin\ny = record.previous.plotLeadLine1","project":"Superalgos","id":"19cecf0e-124a-4394-8968-2edcb21cfbd8","savedPayload":{"position":{"x":21497.74556185957,"y":16840.899925373804},"targetPosition":{"x":21492.35352404055,"y":16940.754449198008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"fbac2c1f-aa48-421f-b725-4b62cc53fc41","savedPayload":{"position":{"x":21492.35352404055,"y":16940.754449198008},"targetPosition":{"x":21476.177410583496,"y":17240.318020670617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Plot Lead Line 1 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.forwardEnd\ny = record.plotLeadLine1","project":"Superalgos","id":"1584a320-70a4-4487-8b2e-cbacab3288ad","savedPayload":{"position":{"x":21710.263419588955,"y":16915.966759862375},"targetPosition":{"x":21651.74191733759,"y":16997.054575064434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"cb4fb579-edd5-4de7-a831-003f24afcf39","savedPayload":{"position":{"x":21651.74191733759,"y":16997.054575064434},"targetPosition":{"x":21476.177410583496,"y":17240.318020670617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Plot Lead Line 2 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.forwardBegin\ny = record.previous.plotLeadLine2","project":"Superalgos","id":"66ad8d46-50dc-4306-9d06-a3c6f4ead8e2","savedPayload":{"position":{"x":21848.460623431813,"y":17094.012827901068},"targetPosition":{"x":21755.389820219734,"y":17130.589126093455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"b7ab8f9c-d7a0-4c4d-b7d6-1e1d0c02eb83","savedPayload":{"position":{"x":21755.389820219734,"y":17130.589126093455},"targetPosition":{"x":21476.177410583496,"y":17240.318020670617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Plot Lead Line 2 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.forwardEnd\ny = record.plotLeadLine2","project":"Superalgos","id":"e837a646-7549-469e-8d35-6c1cee681da4","savedPayload":{"position":{"x":21868.460537622814,"y":17318.509760900997},"targetPosition":{"x":21770.389755862983,"y":17298.961825843402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"02355e05-fe68-4efc-bfae-d2cc6f1457c3","savedPayload":{"position":{"x":21770.389755862983,"y":17298.961825843402},"targetPosition":{"x":21476.177410583496,"y":17240.318020670617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3086f338-1640-4ebb-bafe-bf8cfd3da0ec","savedPayload":{"position":{"x":21476.177410583496,"y":17240.318020670617},"targetPosition":{"x":21907.781290786686,"y":17657.113042946014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Lagging Span","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n }\n}","project":"Superalgos","id":"fbbfd9a2-92d9-4ce7-8c21-17f2dbc6f1fc","savedPayload":{"position":{"x":21358.45008670067,"y":17482.68789820106},"targetPosition":{"x":21444.48655215333,"y":17359.81509155771},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"cd32ab1b-e563-45d7-a3f8-ecb171273385","savedPayload":{"position":{"x":21444.48655215333,"y":17359.81509155771},"targetPosition":{"x":21530.523017605985,"y":17236.94228491436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Lagging Span Begin","project":"Superalgos","id":"01c3a82b-97af-4c64-9675-c2ae9e55c5c9","savedPayload":{"position":{"x":21235.080691702322,"y":17289.03673821444},"targetPosition":{"x":21530.523017605985,"y":17236.94228491436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Lagging Span Begin","id":"ed94f11a-7635-42cb-ac2d-fe9d05159b2a"}}},{"type":"Polygon Vertex","name":"Lagging Span End","project":"Superalgos","id":"5e20b9a4-ae32-4a81-bb0b-289bf8d04a58","savedPayload":{"position":{"x":21284.777404319288,"y":17064.869354009046},"targetPosition":{"x":21530.523017605985,"y":17236.94228491436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Lagging Span End","id":"15d9b3e5-54b9-4f6f-9e69-37dae6d9d37b"}}}],"id":"90a34d00-99e2-4a5e-94f1-782aeaec89ed","savedPayload":{"position":{"x":21616.69257290389,"y":17584.536474266115},"targetPosition":{"x":21907.781290786686,"y":17657.113042946014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Conversion Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TURQUOISE\"\n }\n}","project":"Superalgos","id":"e865a1b2-668e-427f-b16d-3ecc6c4f770f","savedPayload":{"position":{"x":20986.602226600873,"y":17190.139258675794},"targetPosition":{"x":21276.379974487594,"y":17112.493545145036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"5f0a0922-aecd-4b40-9fb3-b3fdd1207eea","savedPayload":{"position":{"x":21276.379974487594,"y":17112.493545145036},"targetPosition":{"x":21566.157722374315,"y":17034.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Conersion Line Begin","project":"Superalgos","id":"0e09b636-d71d-49d5-9d9a-6e3b067925ca","savedPayload":{"position":{"x":21306.350101238982,"y":16884.84783161428},"targetPosition":{"x":21566.157722374315,"y":17034.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Conersion Line Begin","id":"a56bb9d9-6e55-4fa3-936d-81582cf1f94d"}}},{"type":"Polygon Vertex","name":"Conversion Line End","project":"Superalgos","id":"b92598e2-5755-4a95-85f7-80bc63612184","savedPayload":{"position":{"x":21488.512008843558,"y":16745.070083727558},"targetPosition":{"x":21566.157722374315,"y":17034.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Conversion Line End","id":"3eaf4ff4-cf81-4928-b2f8-26d75e89d3c0"}}}],"id":"59bb987c-d919-4454-ad68-f52a84639d18","savedPayload":{"position":{"x":21731.445715098944,"y":17414.40794463353},"targetPosition":{"x":21907.781290786686,"y":17657.113042946014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Base Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"623a0cc7-8641-46ab-bb9b-6132f6b4374c","savedPayload":{"position":{"x":21179.574628289956,"y":16649.36908833409},"targetPosition":{"x":21451.466964400952,"y":16776.154566856298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"639d75aa-1e58-4c36-8257-67168abafb05","savedPayload":{"position":{"x":21451.466964400952,"y":16776.154566856298},"targetPosition":{"x":21723.359300511947,"y":16902.940045378506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Base Line Begin","project":"Superalgos","id":"eca8fef0-6505-4e10-908e-5fcf8a99293a","savedPayload":{"position":{"x":21620.753257514247,"y":16621.032259142732},"targetPosition":{"x":21723.359300511947,"y":16902.940045378506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Base Line Begin","id":"f7d3e6d3-089b-4bc7-8468-2e42bc6511b7"}}},{"type":"Polygon Vertex","name":"Base Line End","project":"Superalgos","id":"09535200-2132-4847-960a-9ce3698e72b9","savedPayload":{"position":{"x":21850.14477903416,"y":16631.04770926751},"targetPosition":{"x":21723.359300511947,"y":16902.940045378506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Base Line End","id":"385613d8-5b52-44b9-be18-91bca1c86c47"}}}],"id":"5ae2d724-fb7c-478e-bc67-bd08b88562bb","savedPayload":{"position":{"x":21928.708232909925,"y":17357.843827868066},"targetPosition":{"x":21907.781290786686,"y":17657.113042946014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Lead Line 1","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","project":"Superalgos","id":"77e51645-bb9d-4c7a-a8bb-70de2bca0f05","savedPayload":{"position":{"x":22105.707358062016,"y":16841.402485750586},"targetPosition":{"x":22110.9430799932,"y":17141.356794297502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"70f77c83-7b79-4a15-926e-173e9fcbf78f","savedPayload":{"position":{"x":22110.9430799932,"y":17141.356794297502},"targetPosition":{"x":22116.178801924387,"y":17441.31110284442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Plot Lead Line 1 Begin","project":"Superalgos","id":"878fdf21-37b6-4487-ba94-22f16b609ec4","savedPayload":{"position":{"x":22324.576313062087,"y":17225.509162742823},"targetPosition":{"x":22116.178801924387,"y":17441.31110284442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 1 Begin","id":"fbac2c1f-aa48-421f-b725-4b62cc53fc41"}}},{"type":"Polygon Vertex","name":"Plot Lead Line 1 End","project":"Superalgos","id":"3d6e5394-4cef-41ce-8091-4b557155d5a9","savedPayload":{"position":{"x":22416.133110471303,"y":17436.075380913233},"targetPosition":{"x":22116.178801924387,"y":17441.31110284442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 1 End","id":"cb4fb579-edd5-4de7-a831-003f24afcf39"}}}],"id":"c8fca9b3-dfe0-4442-8275-493b9d545d7a","savedPayload":{"position":{"x":22116.178801924387,"y":17441.31110284442},"targetPosition":{"x":21907.781290786686,"y":17657.113042946014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Lead Line 2","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","project":"Superalgos","id":"62ad6e42-cc75-4cf3-8217-b460a5b465f4","savedPayload":{"position":{"x":22241.064391706495,"y":16455.292335840837},"targetPosition":{"x":22163.418678175738,"y":16745.070083727558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"0637699a-e7e2-4d24-b5c0-7c76748dda74","savedPayload":{"position":{"x":22163.418678175738,"y":16745.070083727558},"targetPosition":{"x":22085.77296464498,"y":17034.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Plot Lead Line 2 Begin","project":"Superalgos","id":"3d4d544a-28fc-463b-b792-5d08ec382a6f","savedPayload":{"position":{"x":22345.580585780313,"y":16884.84783161428},"targetPosition":{"x":22085.77296464498,"y":17034.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 2 Begin","id":"b7ab8f9c-d7a0-4c4d-b7d6-1e1d0c02eb83"}}},{"type":"Polygon Vertex","name":"Plot Lead Line 2 End","project":"Superalgos","id":"507b22e5-4ae9-4290-a0df-7d7bac232aa9","savedPayload":{"position":{"x":22375.5507125317,"y":17112.493545145036},"targetPosition":{"x":22085.77296464498,"y":17034.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 2 End","id":"02355e05-fe68-4efc-bfae-d2cc6f1457c3"}}}],"id":"8bcba1bd-2717-4d86-a955-b7a396e27687","savedPayload":{"position":{"x":22206.137859397168,"y":17625.754503965716},"targetPosition":{"x":21907.781290786686,"y":17657.113042946014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Cloud Green","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.plotLeadLine1 > record.plotLeadLine2","project":"Superalgos","id":"13e89aa0-e3e2-40ac-abc6-0b98ee4bf44a","savedPayload":{"position":{"x":22256.130465244914,"y":16914.557171243552},"targetPosition":{"x":22125.965343509648,"y":17184.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","project":"Superalgos","id":"403e5719-537a-4f87-ba17-a2885f64f841","savedPayload":{"position":{"x":22595.064232990466,"y":16810.753950499042},"targetPosition":{"x":22360.514788250057,"y":16997.80089105666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"a896ce8e-5bd8-49fc-b445-ac872d80ad69","savedPayload":{"position":{"x":22360.514788250057,"y":16997.80089105666},"targetPosition":{"x":22125.965343509648,"y":17184.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Plot Lead Line 1 Begin","project":"Superalgos","id":"c42cc383-9c0e-4aea-851a-c224501448b4","savedPayload":{"position":{"x":22418.443717164195,"y":17118.091551427384},"targetPosition":{"x":22125.965343509648,"y":17184.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 1 Begin","id":"fbac2c1f-aa48-421f-b725-4b62cc53fc41"}}},{"type":"Polygon Vertex","name":"Plot Lead Line 1 End","project":"Superalgos","id":"f315431a-2603-459e-9f05-34b8ee64356c","savedPayload":{"position":{"x":22418.443717164195,"y":17251.604111801174},"targetPosition":{"x":22125.965343509648,"y":17184.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 1 End","id":"cb4fb579-edd5-4de7-a831-003f24afcf39"}}},{"type":"Polygon Vertex","name":"Plot Lead Line 2 End","project":"Superalgos","id":"52eb035e-85aa-4746-ad09-7a6f1b636f3c","savedPayload":{"position":{"x":22360.514788250057,"y":17371.894772171898},"targetPosition":{"x":22125.965343509648,"y":17184.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 2 End","id":"02355e05-fe68-4efc-bfae-d2cc6f1457c3"}}},{"type":"Polygon Vertex","name":"Plot Lead Line 2 Begin","project":"Superalgos","id":"52b3d278-b029-46f3-8772-e7dd7b5d42a3","savedPayload":{"position":{"x":22256.130465244914,"y":17455.138491985006},"targetPosition":{"x":22125.965343509648,"y":17184.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 2 Begin","id":"b7ab8f9c-d7a0-4c4d-b7d6-1e1d0c02eb83"}}}],"id":"d3ee5217-2b18-443a-a8dc-6884ff3711e9","savedPayload":{"position":{"x":22156.492562553198,"y":17824.870913987237},"targetPosition":{"x":21907.781290786686,"y":17657.113042946014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Cloud Red","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.plotLeadLine1 < record.plotLeadLine2","project":"Superalgos","id":"0486bacd-b7c4-468b-a2bd-fca7604d031a","savedPayload":{"position":{"x":22301.262376958122,"y":17325.896147383693},"targetPosition":{"x":22018.09737786561,"y":17424.979865970243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","project":"Superalgos","id":"acf85f27-802a-4609-a45f-f602dd9dcd1c","savedPayload":{"position":{"x":22614.324703801554,"y":17492.15855163223},"targetPosition":{"x":22316.211040833583,"y":17458.569208801237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f6448eec-e334-4c22-8d0e-a3c68316ce42","savedPayload":{"position":{"x":22316.211040833583,"y":17458.569208801237},"targetPosition":{"x":22018.09737786561,"y":17424.979865970243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Plot Lead Line 1 Begin","project":"Superalgos","id":"ae3a2357-a62e-498d-81e0-90f06b7c3ec4","savedPayload":{"position":{"x":22272.1146376341,"y":17584.589488924845},"targetPosition":{"x":22018.09737786561,"y":17424.979865970243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 1 Begin","id":"fbac2c1f-aa48-421f-b725-4b62cc53fc41"}}},{"type":"Polygon Vertex","name":"Plot Lead Line 1 End","project":"Superalgos","id":"cc92f4b4-eee9-4017-b30e-7e69d13f7200","savedPayload":{"position":{"x":22177.707000820214,"y":17678.99712573873},"targetPosition":{"x":22018.09737786561,"y":17424.979865970243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 1 End","id":"cb4fb579-edd5-4de7-a831-003f24afcf39"}}},{"type":"Polygon Vertex","name":"Plot Lead Line 2 End","project":"Superalgos","id":"d7e2bed8-30ec-479d-8909-a1d6f05084a1","savedPayload":{"position":{"x":22051.686720696605,"y":17723.093528938214},"targetPosition":{"x":22018.09737786561,"y":17424.979865970243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 2 End","id":"02355e05-fe68-4efc-bfae-d2cc6f1457c3"}}},{"type":"Polygon Vertex","name":"Plot Lead Line 2 Begin","project":"Superalgos","id":"9fb73913-c17f-4c3f-b60f-b1f2821d740f","savedPayload":{"position":{"x":21919.013659279062,"y":17708.144865062754},"targetPosition":{"x":22018.09737786561,"y":17424.979865970243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 2 Begin","id":"b7ab8f9c-d7a0-4c4d-b7d6-1e1d0c02eb83"}}}],"id":"e1707dc5-c49a-4b2d-b2b9-d6fd2e064a3c","savedPayload":{"position":{"x":21990.472497531788,"y":17945.491551727508},"targetPosition":{"x":21907.781290786686,"y":17657.113042946014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"2a9c9e98-7ccf-4999-804c-2094204d1ca6","savedPayload":{"position":{"x":21907.781290786686,"y":17657.113042946014},"targetPosition":{"x":21785.760297863948,"y":17931.176680238794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Ichimoku Cloud","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Lagging Span","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.laggingSpan","project":"Superalgos","id":"e923bf3d-c6c5-4f08-9292-4910b5aafd6f","savedPayload":{"position":{"x":22259.43541858742,"y":17494.427625711018},"targetPosition":{"x":22290.79395756772,"y":17792.7841943215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"4b843355-d7ea-45af-8fb1-ecefe26e6a75","savedPayload":{"position":{"x":22533.499055880202,"y":17616.448618633756},"targetPosition":{"x":22290.79395756772,"y":17792.7841943215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ce794350-6644-4e6c-afac-e8a7a10c60ca","savedPayload":{"position":{"x":22290.79395756772,"y":17792.7841943215},"targetPosition":{"x":22168.77296464498,"y":18066.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Conversion Line","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.conversionLine","project":"Superalgos","id":"468401fd-3794-4749-9434-4f9c2107db49","savedPayload":{"position":{"x":22715.862101497816,"y":17391.249012143493},"targetPosition":{"x":22532.830612113707,"y":17802.344468082665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.TURQUOISE\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"32127f3e-22ec-4d64-ab18-90aef4433588","savedPayload":{"position":{"x":22980.36546502943,"y":17755.306659612223},"targetPosition":{"x":22532.830612113707,"y":17802.344468082665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f6d23c72-ba68-4d19-8291-53e729d60d43","savedPayload":{"position":{"x":22532.830612113707,"y":17802.344468082665},"targetPosition":{"x":22168.77296464498,"y":18066.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Base Line","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.baseLine","project":"Superalgos","id":"b00a3c5a-16ca-4a05-b8a2-87442f67e7ee","savedPayload":{"position":{"x":22709.834631567945,"y":17859.15371694624},"targetPosition":{"x":22467.129533255462,"y":18035.48929263398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"f9456c22-246e-4ebb-9f1a-64023ddc007e","savedPayload":{"position":{"x":22741.193170548242,"y":18157.51028555672},"targetPosition":{"x":22467.129533255462,"y":18035.48929263398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ab82afc6-55b3-4ec7-9e1e-eec7e1260efc","savedPayload":{"position":{"x":22467.129533255462,"y":18035.48929263398},"targetPosition":{"x":22168.77296464498,"y":18066.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Lead Line 1","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.leadLine1","project":"Superalgos","id":"a275f6d4-c570-4d08-a93a-fcb8d2ed168a","savedPayload":{"position":{"x":23027.403273499876,"y":18202.841512527946},"targetPosition":{"x":22579.868420584153,"y":18249.87932099839},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"bf48ad18-804f-482c-ae5d-dbb0a3522237","savedPayload":{"position":{"x":22844.371784115767,"y":18613.936968467115},"targetPosition":{"x":22579.868420584153,"y":18249.87932099839},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8b7ebb57-8606-435a-be7b-921bc4e6a2d5","savedPayload":{"position":{"x":22579.868420584153,"y":18249.87932099839},"targetPosition":{"x":22168.77296464498,"y":18066.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Lead Line 2","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.leadLine2","project":"Superalgos","id":"2dafd617-bb89-4aad-b697-6a361de69a98","savedPayload":{"position":{"x":22619.172177625504,"y":18431.5739228495},"targetPosition":{"x":22345.108540332723,"y":18309.552929926762},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"34880e13-f3bd-4fa6-8245-cb47783fc1d1","savedPayload":{"position":{"x":22376.46707931302,"y":18607.909498537243},"targetPosition":{"x":22345.108540332723,"y":18309.552929926762},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"375c2ae1-cdb0-42a9-a243-0ea3a9d486a0","savedPayload":{"position":{"x":22345.108540332723,"y":18309.552929926762},"targetPosition":{"x":22168.77296464498,"y":18066.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c2502509-bfd7-483e-bae8-db4db0ae302b","savedPayload":{"position":{"x":22168.77296464498,"y":18066.84783161428},"targetPosition":{"x":21785.760297863948,"y":17931.176680238794},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c5dedee0-0553-457c-9a14-5c5d97907cb2","savedPayload":{"position":{"x":21785.760297863948,"y":17931.176680238794},"targetPosition":{"x":21543.055199551465,"y":18107.512255926536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f1d66d3b-c40e-4633-aa38-0f85d032d1f8","savedPayload":{"position":{"x":21595.055199551465,"y":18101.512255926536},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d2083ac0-43e2-41e4-83c7-eb09a6f29353","savedPayload":{"position":{"x":21352.350101238982,"y":18277.84783161428},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}} \ No newline at end of file +{"type":"Data Mine","name":"Zeus","config":"{ \n\"codeName\": \"Zeus\"\n}","project":"Superalgos","sensorBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"Super Trend","config":"{ \n\"codeName\": \"Super-Trend\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":" {\n \"codeName\": \"Multi-Period-Market\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Super Trend","project":"Superalgos","id":"2412939e-1585-47f9-8d09-7ea8dd7c8bf0","savedPayload":{"position":{"x":21786.83642206419,"y":17775.938049371594},"targetPosition":{"x":21825.659278829567,"y":17920.826923314955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7c8e7a6f-99c8-4d90-9f44-e3e9e909eb88"}}}],"outputDatasetFolders":[],"id":"74212c63-4a69-407d-80ec-d39ee2d8df74","savedPayload":{"position":{"x":21825.659278829567,"y":17920.826923314955},"targetPosition":{"x":21864.482135594946,"y":18065.715797258315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Super Trend Multi-Period-Market","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"5a35d0d1-cfed-4893-84ab-344a77c7d252","savedPayload":{"position":{"x":21792.127849125704,"y":17516.13042823626},"targetPosition":{"x":21942.127849125704,"y":17775.938049371594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"25f05344-3e7f-4d5f-ab1c-d72689a85764"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"2a42dd15-1e04-4826-bd5f-85d95fbae135","savedPayload":{"position":{"x":22019.77356265646,"y":17486.160301484873},"targetPosition":{"x":21942.127849125704,"y":17775.938049371594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"88a45f27-a0b8-4234-b7aa-f139400305db","savedPayload":{"position":{"x":22201.935470261036,"y":17625.938049371594},"targetPosition":{"x":21942.127849125704,"y":17775.938049371594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"eef38121-80a2-4471-b909-24acdc4d213a","savedPayload":{"position":{"x":21942.127849125704,"y":17775.938049371594},"targetPosition":{"x":21864.482135594946,"y":18065.715797258315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"25f05344-3e7f-4d5f-ab1c-d72689a85764","savedPayload":{"position":{"x":22076.61416995091,"y":17853.58376290235},"targetPosition":{"x":21864.482135594946,"y":18065.715797258315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"d9b0ffbd-c1bd-4e43-a00d-04a6b6fb470b","savedPayload":{"position":{"x":22154.259883481667,"y":17988.070083727558},"targetPosition":{"x":21864.482135594946,"y":18065.715797258315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"d405bfe9-74f9-4419-8288-94229c9813a6","savedPayload":{"position":{"x":22154.259883481667,"y":18143.361510789073},"targetPosition":{"x":21864.482135594946,"y":18065.715797258315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fc3dbb85-168e-4fac-8893-b285de35a694","savedPayload":{"position":{"x":21864.482135594946,"y":18065.715797258315},"targetPosition":{"x":21652.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":" {\n \"codeName\": \"Multi-Period-Daily\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Super Trend","project":"Superalgos","id":"f5a69b9b-0423-42be-bb58-b5a51f762ee7","savedPayload":{"position":{"x":22185.350101238982,"y":18510.463073884945},"targetPosition":{"x":21885.350101238982,"y":18510.463073884945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"c17b5d3f-7cf7-418a-92b8-f8c67a120446"}}}],"outputDatasetFolders":[],"id":"04c16ec8-b60b-4cf0-acf4-69d955a5d2aa","savedPayload":{"position":{"x":21885.350101238982,"y":18510.463073884945},"targetPosition":{"x":21585.350101238982,"y":18510.463073884945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Super Trend Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"935a9195-83ac-41bc-835e-f118f5a79049","savedPayload":{"position":{"x":22144.746582800686,"y":18676.163860757828},"targetPosition":{"x":21845.157722374315,"y":18660.463073884945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"89d59eb6-bd97-485d-ac94-a095aaf4e58d"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"a3f5a224-75c0-4054-84ac-c4a98f823085","savedPayload":{"position":{"x":22125.231850323475,"y":18767.973458748536},"targetPosition":{"x":21845.157722374315,"y":18660.463073884945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{ \n\"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"d39acabb-3797-410a-9d86-0edda4a41b70","savedPayload":{"position":{"x":22078.301510811405,"y":18849.259191199897},"targetPosition":{"x":21845.157722374315,"y":18660.463073884945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"0fbf825f-68af-415d-b01e-1e30528a4b49","savedPayload":{"position":{"x":22008.549432878823,"y":18912.06424426857},"targetPosition":{"x":21845.157722374315,"y":18660.463073884945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"98d9f621-8b18-4b4f-b191-b79d930dc4ec","savedPayload":{"position":{"x":21845.157722374315,"y":18660.463073884945},"targetPosition":{"x":21585.350101238982,"y":18510.463073884945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"89d59eb6-bd97-485d-ac94-a095aaf4e58d","savedPayload":{"position":{"x":21660.350101238982,"y":18640.36688445261},"targetPosition":{"x":21585.350101238982,"y":18510.463073884945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"3f1b6db1-7e06-499c-9879-194596e2978e","savedPayload":{"position":{"x":21585.350101238982,"y":18660.463073884945},"targetPosition":{"x":21585.350101238982,"y":18510.463073884945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"f884fccf-e2dc-45db-a1df-36b6826b020c","savedPayload":{"position":{"x":21510.350101238982,"y":18640.36688445261},"targetPosition":{"x":21585.350101238982,"y":18510.463073884945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c2ade18e-8e3c-4448-a743-947c8163b80d","savedPayload":{"position":{"x":21952.350101238982,"y":18277.84783161428},"targetPosition":{"x":21652.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Super Trend","config":"{\n \"codeName\": \"Super-Trend\",\n \"singularVariableName\": \"superTrend\",\n \"pluralVariableName\": \"superTrends\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"7c8e7a6f-99c8-4d90-9f44-e3e9e909eb88","savedPayload":{"position":{"x":22415.00790604074,"y":18525.650373880122},"targetPosition":{"x":21970.548152772928,"y":18596.045883148225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"c17b5d3f-7cf7-418a-92b8-f8c67a120446","savedPayload":{"position":{"x":22371.501088657693,"y":18800.34160803102},"targetPosition":{"x":21970.548152772928,"y":18596.045883148225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"record.current.begin","project":"Superalgos","id":"af4ce0b3-14a3-4e8d-8f27-353aa5d819e5","savedPayload":{"position":{"x":23052.05880280838,"y":19344.991865301457},"targetPosition":{"x":22827.752402718426,"y":19362.645161840224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"eece0283-d534-4ce5-8606-4fa5cec4fe90","savedPayload":{"position":{"x":22827.752402718426,"y":19362.645161840224},"targetPosition":{"x":22379.13960253852,"y":19397.951754917754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{ \n\"codeName\": \"end\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"record.current.end","project":"Superalgos","id":"47190c61-ec22-49ff-8a4c-e08e5cddc2c0","savedPayload":{"position":{"x":23021.102751037746,"y":19606.538226120843},"targetPosition":{"x":22807.115034871338,"y":19537.00940238648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"aab131cd-6b2a-4708-84bf-11e65bd4f995","savedPayload":{"position":{"x":22807.115034871338,"y":19537.00940238648},"targetPosition":{"x":22379.13960253852,"y":19397.951754917754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"True Range","config":"{ \n \"codeName\": \"trueRange\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.trueRange","project":"Superalgos","id":"5e5bd969-819b-4131-aad4-d855c57b236d","savedPayload":{"position":{"x":22892.413629318537,"y":19836.32918754063},"targetPosition":{"x":22721.32228705853,"y":19690.203376666337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"79e64cdc-8d3d-4c17-8bb6-69c52b09d0a5","savedPayload":{"position":{"x":22721.32228705853,"y":19690.203376666337},"targetPosition":{"x":22379.13960253852,"y":19397.951754917754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ATR N Period","config":"{ \n \"codeName\": \"atrNPeriod\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.atrNPeriod","project":"Superalgos","id":"139dd901-2800-4a78-b536-a26d71f8180f","savedPayload":{"position":{"x":22685.58318986271,"y":19999.3811587449},"targetPosition":{"x":22583.435327421314,"y":19798.90469080252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5bf3d6da-c010-4297-90f2-db405eb25ab9","savedPayload":{"position":{"x":22583.435327421314,"y":19798.90469080252},"targetPosition":{"x":22379.13960253852,"y":19397.951754917754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Up Trend","config":"{ \n \"codeName\": \"uptrend\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.uptrend","project":"Superalgos","id":"1227cf03-417e-42af-8be8-0ac79c0372e6","savedPayload":{"position":{"x":22432.099492154815,"y":20070.870955187616},"targetPosition":{"x":22414.44619561605,"y":19846.564555097662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"58b49e52-ac7e-4458-8dc0-c16a63c11c73","savedPayload":{"position":{"x":22414.44619561605,"y":19846.564555097662},"targetPosition":{"x":22379.13960253852,"y":19397.951754917754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Down Trend","config":"{ \n \"codeName\": \"downtrend\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.downtrend","project":"Superalgos","id":"4b55c31f-ca51-4dcd-beaf-a03463e5d541","savedPayload":{"position":{"x":22170.55313133543,"y":20039.914903416982},"targetPosition":{"x":22240.081955069792,"y":19825.927187250574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9c7651af-9740-4086-9c1b-c859d25cae26","savedPayload":{"position":{"x":22240.081955069792,"y":19825.927187250574},"targetPosition":{"x":22379.13960253852,"y":19397.951754917754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Trend","config":"{ \n \"codeName\": \"trend\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.trend","project":"Superalgos","id":"eb1e09d6-6794-4d4e-a8a9-227fdbb1698c","savedPayload":{"position":{"x":21940.762169915644,"y":19911.225781697776},"targetPosition":{"x":22086.887980789936,"y":19740.13443943777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"880b51d4-9bda-4f26-b722-7cd84f9cc494","savedPayload":{"position":{"x":22086.887980789936,"y":19740.13443943777},"targetPosition":{"x":22379.13960253852,"y":19397.951754917754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"93965329-75b8-4e62-99ab-252a4aed8d86","savedPayload":{"position":{"x":22379.13960253852,"y":19397.951754917754},"targetPosition":{"x":21970.548152772928,"y":18596.045883148225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"/* Loop Code */\n\n/* Big thanks to @rico4dev for providing the base start for ATR calcs\nI made some tweaks so now the way ATR is calculated matches TradingView :-)\n */\n\n// Set parameters to be used for ATR Period and Multiplier\nlet Nperiod = 10 // ATR Period\nlet multiplier = 3 // ATR Multiplier\n\n// Get Current and Previous Candle Data\nlet currCandle = record.current \nlet prevCandle = record.previous \n\n/* We need to build the price source\nFor current price there is no problem, we have data\nFor previous price we must check if exist\nSource price is defined as OHCL4*/\n\n// OHCL4 Source for current price\nvariable.currClose = currCandle.close\nvariable.ohcl4 = (currCandle.max + currCandle.min + currCandle.close + currCandle.open)/4\n\n// OHCL4 Source for previous candle price - make sure data exists\nif (prevCandle === undefined) {\n variable.prevClose = currCandle.close\n variable.prev_ohcl4 = 0 \n} else {\n variable.prevClose = prevCandle.close\n variable.prev_ohcl4 = (prevCandle.max + prevCandle.min + prevCandle.close + prevCandle.open)/4\n}\n\n/* Define variables we need and build functions */\n/* True Range and ATR - Average True Range */\n\nvariable.trueRange = calculateTR()\nvariable.atrNPeriod = calculateATR(Nperiod)\nvariable.prevAtrNperiod = variable.atrNPeriod // Store ATR value for calcs in RMA\n\n/* To keep lastNperiodTR array to a fixed length\nwe remove the first element of the array if length is > Nperiod */\n\nvariable.lastNPeriodTR.push(calculateTR())\nif (variable.lastNPeriodTR.length > Nperiod) {\n variable.lastNPeriodTR.splice(0, 1)\n}\n\n/* Calculate ATR */\nfunction calculateATR(length) {\n return calculateRMA(variable.trueRange, length)\n}\n\n/* Calculate True Range */\nfunction calculateTR() {\n let hl = currCandle.max - currCandle.min \n if (variable.prevClose === 0) { return hl } // Return High-Low when previous Close is 0 \n let hcp = Math.abs(currCandle.max - variable.prevClose)\n let lcp = Math.abs(currCandle.min - variable.prevClose) \n return Math.max(hl, hcp, lcp)\n}\n\n/* Calculate RMA */\nfunction calculateRMA(src, length) { \n if (src.length < length) { return 0 } // We check we have enough values to make the calcs. If not, set value to zero \n let alpha=1/length // It's a constant\n if (isNaN(variable.prevAtrNperiod)) {\n return 0 \n } else {\n return alpha * src + (1 - alpha) * variable.prevAtrNperiod \n } \n \n}\n\n// Build Up Trend function\n\nvariable.up = variable.ohcl4 - (multiplier * variable.atrNPeriod)\n\nif (variable.last2uptrend.length > 2) {\n variable.last2uptrend.splice(0, 1)\n}\n\nvariable.up1 = variable.last2uptrend[variable.last2uptrend.length - 1] // Previous Up Trend \n\nvariable.uptrend = calculateUpTrend()\n\nvariable.last2uptrend.push(variable.uptrend) \n\nfunction calculateUpTrend() {\n if (variable.prevClose > variable.up1) {\n return Math.max(variable.up, variable.up1)\n } else {\n return variable.up\n }\n}\n\n// Build Down Trend function\n\nvariable.dn = variable.ohcl4 + (multiplier * variable.atrNPeriod)\n\nif (variable.last2downtrend.length > 2) {\n variable.last2downtrend.splice(0, 1)\n}\n\nvariable.dn1 = variable.last2downtrend[variable.last2downtrend.length - 1] // Previous Down Trend\n\nvariable.downtrend = calculateDnTrend()\n\nvariable.last2downtrend.push(variable.downtrend) \n\nfunction calculateDnTrend() {\n if (variable.prevClose < variable.dn1) {\n return Math.min(variable.dn, variable.dn1)\n } else {\n return variable.dn\n }\n}\n\n\n// Build Trend function\n\nif (variable.last2Trend.length > 2) {\n variable.last2Trend.splice(0, 1)\n}\n\nvariable.prevTrend = variable.last2Trend[variable.last2Trend.length - 1]\n\nvariable.trend = calculateTrend()\n\nvariable.last2Trend.push(variable.trend)\n\nfunction calculateTrend() {\n\n if (variable.trend = -1 && variable.currClose > variable.dn1) {\n return 1\n }\n else if (variable.trend = 1 && variable.currClose < variable.up1) {\n return -1\n } \n else {\n return variable.prevTrend\n }\n}\n\n// End of code :-)","project":"Superalgos","id":"8f978d1c-9ed3-4dc6-9393-85f1a9497a8f","savedPayload":{"position":{"x":21935.430999857657,"y":19376.156776102827},"targetPosition":{"x":21923.671547740047,"y":19264.273062873897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ab4157e5-9690-48a8-9826-c70b3802e617","savedPayload":{"position":{"x":21923.671547740047,"y":19264.273062873897},"targetPosition":{"x":21900.152643504825,"y":19040.505636416037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"/* Initialization Code*/\n\n//// Arrays to store past data\nvariable.lastNPeriodTR = []\nvariable.last2uptrend = [0]\nvariable.last2downtrend = [0]\nvariable.last2Trend = [0]\n\n// Initialize trend\nvariable.trend = 1","project":"Superalgos","id":"179290ba-51ab-4754-be1c-90355b7a74c2","savedPayload":{"position":{"x":21762.87902646674,"y":19348.827228370414},"targetPosition":{"x":21808.63689881277,"y":19246.05336438562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"17591e91-1610-4ccd-ab12-167be170d523","savedPayload":{"position":{"x":21808.63689881277,"y":19246.05336438562},"targetPosition":{"x":21900.152643504825,"y":19040.505636416037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"eee493c1-3895-4351-91ea-b53baf429bbb","savedPayload":{"position":{"x":21900.152643504825,"y":19040.505636416037},"targetPosition":{"x":21970.548152772928,"y":18596.045883148225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2bb58403-f839-4e0a-9b04-4f9219d7df83","savedPayload":{"position":{"x":21970.548152772928,"y":18596.045883148225},"targetPosition":{"x":21652.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Super Trend","id":"acfb7d6b-e877-4fb0-bef4-3923c049244b"}}}],"id":"c2aec9e5-4b10-4ebc-89c7-84b3df03c4a4","savedPayload":{"position":{"x":21652.350101238982,"y":18277.84783161428},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Wave Trend","config":"{ \n\"codeName\": \"Wave-Trend\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":" {\n \"codeName\": \"Multi-Period-Market\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Wave Trend","project":"Superalgos","id":"d39fc6ac-79b2-4308-9c65-05e82bf02c8d","savedPayload":{"position":{"x":22200.780530114665,"y":17963.676706110182},"targetPosition":{"x":22120.14774146697,"y":18173.73230207205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9b727bdd-1684-43e1-a39c-fbd14ce64828"}}}],"outputDatasetFolders":[],"id":"ce1d6928-a5ef-4a75-af09-51d8b6e5ec3a","savedPayload":{"position":{"x":22120.14774146697,"y":18173.73230207205},"targetPosition":{"x":22039.514952819278,"y":18383.78789803392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Wave Trend Multi-Period-Market","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"88287fbf-f6b6-4b7d-ab0a-557c10b459d2","savedPayload":{"position":{"x":22226.132246264708,"y":18130.307096818775},"targetPosition":{"x":22214.372794147097,"y":18242.190810047705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"64877b9b-6a54-4b10-b82a-ab1a12ff483b"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"f713c037-7ea9-46f2-9982-318e30de5db1","savedPayload":{"position":{"x":22301.801714811005,"y":18171.392266054598},"targetPosition":{"x":22214.372794147097,"y":18242.190810047705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"d4377097-6d3f-418d-8101-2bed732b55ec","savedPayload":{"position":{"x":22326.256507376027,"y":18253.950262165316},"targetPosition":{"x":22214.372794147097,"y":18242.190810047705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"e2689a2e-356c-4dda-b198-2fa163578c77","savedPayload":{"position":{"x":22214.372794147097,"y":18242.190810047705},"targetPosition":{"x":22039.514952819278,"y":18383.78789803392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"64877b9b-6a54-4b10-b82a-ab1a12ff483b","savedPayload":{"position":{"x":22483.97470608709,"y":18313.392388765817},"targetPosition":{"x":22039.514952819278,"y":18383.78789803392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"dbb205f1-b207-4e15-8523-16a8f5d00c81","savedPayload":{"position":{"x":22249.570548781146,"y":18464.420686681613},"targetPosition":{"x":22039.514952819278,"y":18383.78789803392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"1abb722a-a84a-4dbe-892b-cc35a0776e3a","savedPayload":{"position":{"x":22181.112040805492,"y":18558.64573936174},"targetPosition":{"x":22039.514952819278,"y":18383.78789803392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"26d5d563-1bb6-4766-9601-f43578e09501","savedPayload":{"position":{"x":22039.514952819278,"y":18383.78789803392},"targetPosition":{"x":21595.055199551465,"y":18454.18340730202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":" {\n \"codeName\": \"Multi-Period-Daily\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Wave Trend","project":"Superalgos","id":"b8a695ab-0f23-4002-82b9-400a29d413c2","savedPayload":{"position":{"x":22781.303758898535,"y":18352.623792065417},"targetPosition":{"x":22370.208302959363,"y":18535.655281449526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"3bf983d5-4d3c-46f8-a130-9e621b76e62d"}}}],"outputDatasetFolders":[],"id":"c66980e3-2ed9-4ce8-a3b0-a63d5e91bc17","savedPayload":{"position":{"x":22370.208302959363,"y":18535.655281449526},"targetPosition":{"x":21959.11284702019,"y":18718.686770833636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Wave Trend Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"543c4f25-0af0-450b-9ea1-a4a4c6877d4a","savedPayload":{"position":{"x":22826.758891859656,"y":18604.459002008694},"targetPosition":{"x":22406.647699935915,"y":18765.72457930408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a79125c3-e49c-4ad0-85df-8ea1e6b72cb2"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"2f7dd1e6-e0e0-4565-a6b9-a49c2ddcd0b4","savedPayload":{"position":{"x":22856.030990575473,"y":18742.173398994753},"targetPosition":{"x":22406.647699935915,"y":18765.72457930408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{ \n\"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"01b4e456-8585-448d-acd1-d9a730f95eb1","savedPayload":{"position":{"x":22841.314321765996,"y":18882.193149600214},"targetPosition":{"x":22406.647699935915,"y":18765.72457930408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"97ed7b3c-ce95-484a-8608-e8826f28d08e","savedPayload":{"position":{"x":22784.049455511355,"y":19010.81214506084},"targetPosition":{"x":22406.647699935915,"y":18765.72457930408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"f5fb61fa-828b-4551-8b48-9e9c1fc4fa64","savedPayload":{"position":{"x":22406.647699935915,"y":18765.72457930408},"targetPosition":{"x":21959.11284702019,"y":18718.686770833636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"a79125c3-e49c-4ad0-85df-8ea1e6b72cb2","savedPayload":{"position":{"x":22323.170494488917,"y":18983.19013436525},"targetPosition":{"x":21959.11284702019,"y":18718.686770833636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"17690387-850d-4e80-8d08-abebcf1ec894","savedPayload":{"position":{"x":22050.628591712248,"y":18924.23449880322},"targetPosition":{"x":21959.11284702019,"y":18718.686770833636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"654860da-2fe0-4b1c-a91d-45690a8d11b8","savedPayload":{"position":{"x":21935.59394278497,"y":18942.454197291496},"targetPosition":{"x":21959.11284702019,"y":18718.686770833636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"56663c74-0c47-441f-8591-d9098f9a610b","savedPayload":{"position":{"x":21959.11284702019,"y":18718.686770833636},"targetPosition":{"x":21595.055199551465,"y":18454.18340730202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Wave Trend","config":"{\n \"codeName\": \"Wave-Trend\",\n \"singularVariableName\": \"waveTrend\",\n \"pluralVariableName\": \"waveTrends\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"9b727bdd-1684-43e1-a39c-fbd14ce64828","savedPayload":{"position":{"x":21909.287496320045,"y":18886.687059402426},"targetPosition":{"x":21641.985539063535,"y":18750.489909480562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"3bf983d5-4d3c-46f8-a130-9e621b76e62d","savedPayload":{"position":{"x":21778.1826889854,"y":19017.791866737072},"targetPosition":{"x":21641.985539063535,"y":18750.489909480562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"record.current.begin","project":"Superalgos","id":"7c0c0127-d33a-40cd-95ce-a4c4db782862","savedPayload":{"position":{"x":22014.412436913575,"y":19720.69514846755},"targetPosition":{"x":21781.268648476485,"y":19531.899031152596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1fa9f019-5b1a-4310-acb9-18be189b37a7","savedPayload":{"position":{"x":21781.268648476485,"y":19531.899031152596},"targetPosition":{"x":21548.124860039396,"y":19343.102913837643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{ \n\"codeName\": \"end\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"record.current.end","project":"Superalgos","id":"fe518407-7360-4ded-ac8c-743508cf9944","savedPayload":{"position":{"x":21763.14562976658,"y":19903.251169735962},"targetPosition":{"x":21655.635244902987,"y":19623.177041786803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"efbc0585-5a1c-4caf-ad89-2e29b5e98ca0","savedPayload":{"position":{"x":21655.635244902987,"y":19623.177041786803},"targetPosition":{"x":21548.124860039396,"y":19343.102913837643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Record WAVETREND","config":"{ \n \"codeName\": \"waveTrend\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.waveTrend","project":"Superalgos","id":"29c99584-8b16-494a-a1be-0e9d7071641b","savedPayload":{"position":{"x":21477.729350771293,"y":19787.562667105456},"targetPosition":{"x":21501.194520527326,"y":19639.409416016184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"39424ebf-7f21-4372-8b88-15bb7086cca9","savedPayload":{"position":{"x":21501.194520527326,"y":19639.409416016184},"targetPosition":{"x":21548.124860039396,"y":19343.102913837643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Record WAVETRENDSIGNAL","config":"{ \n \"codeName\": \"waveTrendSignal\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.waveTrendSignal","project":"Superalgos","id":"a5e59332-48bb-4252-97aa-ac587609a4e8","savedPayload":{"position":{"x":21264.930684066967,"y":19692.818596493278},"targetPosition":{"x":21359.328742724443,"y":19576.246702274733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d9a10773-5caa-4b8d-8637-ccaa4faef8b2","savedPayload":{"position":{"x":21359.328742724443,"y":19576.246702274733},"targetPosition":{"x":21548.124860039396,"y":19343.102913837643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Record WT3","config":"{ \n \"codeName\": \"wt3\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.wt3","project":"Superalgos","id":"a8cbbddf-28c6-4d38-8eca-841e44f4884a","savedPayload":{"position":{"x":21128.013668115655,"y":19504.36849113303},"targetPosition":{"x":21268.050732090236,"y":19450.613298701235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"33d15bce-9db7-4b43-b795-59353cd2e63d","savedPayload":{"position":{"x":21268.050732090236,"y":19450.613298701235},"targetPosition":{"x":21548.124860039396,"y":19343.102913837643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8a14c05f-d4a6-4cd5-9beb-328ec32e44dd","savedPayload":{"position":{"x":21548.124860039396,"y":19343.102913837643},"targetPosition":{"x":21641.985539063535,"y":18750.489909480562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"/* Loop Code */\n\nlet candle = {\n open: record.current.open,\n close: record.current.close,\n min: record.current.min,\n max: record.current.max,\n begin: record.current.begin,\n end: record.current.end,\n} \n\n/* Set constant */\n\nlet n1=10 // Channel Length\nlet n2=21 // Average Length\n\n// Overbought and Oversold Levels\nlet ob=60\nlet ob2=53\nlet os=-60\nlet os2=-53\n\n/* ************** */\n\nvariable.ap = (candle.max+candle.min+candle.close)/3\n\n/* Build 3 EMAs and CI parameter */\n\nvariable.EMAesa = calculateEMA(variable.ap, n1, variable.previousEMAesa)\nif (isNaN(variable.EMAesa)) {variable.EMAesa=0}\nvariable.previousEMAesa = variable.EMAesa\n\nvariable.EMAd = calculateEMA(Math.abs(variable.ap-variable.EMAesa), n1, variable.previousEMAd)\nif (isNaN(variable.EMAd)) {variable.EMAd=0}\nvariable.previousEMAd = variable.EMAd\n\nvariable.ci = (variable.ap-variable.EMAesa)/(0.015*variable.EMAd)\nif (isNaN(variable.ci)) {variable.ci=0}\n\nvariable.EMAtci = calculateEMA(variable.ci, n2, variable.previousEMAtci)\nif (isNaN(variable.EMAtci)) {variable.EMAtci=0}\nvariable.previousEMAtci = variable.EMAtci\n\nfunction calculateEMA(src, periods, previousEMA) {\n if (src.length < periods) { return 0 }\n let k = 2 / (periods + 1)\n return src * k + previousEMA * (1-k)\n}\n\n/* Build WAVETREND and WAVETRENDSIGNAL \nFor WAVETRENDSIGNAL we need a SMA\nParameters are SMA(WAVETREND, 4) */\n\nvariable.waveTrend = variable.EMAtci // Wave Trend - It's a line\n\nvariable.last4wt1.push(variable.waveTrend)\nif (variable.last4wt1.length > 4) {\n variable.last4wt1.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 4 elements\n}\n\nvariable.waveTrendSignal = calculateSMA(variable.last4wt1, 4) // Signal - It's a line\n\nfunction calculateSMA(src, periods) { \n // Check we have enough values to make the calculation\n if (src.length < periods) { return 0 }\n \n let sum = 0 // Initialize sum variable\n for (let i = src.length - periods; i < src.length; i++) {\n sum = sum + src[i]\n }\n let sma = sum / periods\n return sma\n}\n\n/* Build WT3 */\n\nvariable.wt3 = variable.waveTrend - variable.waveTrendSignal // Histogram\n\n// End of code :-)","project":"Superalgos","id":"32d5f441-d68a-4c29-89ee-041138ae67d3","savedPayload":{"position":{"x":21304.85350470757,"y":19179.128294782637},"targetPosition":{"x":21354.85350470757,"y":19092.525754404192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6c129c1b-0def-43a3-826b-7542c834eb24","savedPayload":{"position":{"x":21354.85350470757,"y":19092.525754404192},"targetPosition":{"x":21429.85350470757,"y":18962.621943836526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"/* Initialization Code */\n/* WaveTrend needs 3 EMA and 1 SMA\nOthers constants and vars are declared in the loop code\nso to use let and not var and avoid possible conflicts */\n \nvariable.previousEMAesa = 0\nvariable.previousEMAd = 0\nvariable.previousEMAtci = 0\n\nvariable.last4wt1 = [] // Last 4 wt1 records\n\n/* HLC3 */\nvariable.ap = 0","project":"Superalgos","id":"5cad68f2-69ba-42a1-95b5-3a6ae2cac0b1","savedPayload":{"position":{"x":21213.34715376146,"y":19087.621943836526},"targetPosition":{"x":21299.949694139905,"y":19037.621943836526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c689da4f-8f19-47e6-8f82-11e2f42d3ecd","savedPayload":{"position":{"x":21299.949694139905,"y":19037.621943836526},"targetPosition":{"x":21429.85350470757,"y":18962.621943836526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3f88bd6f-cdde-4122-9778-ce7a7588fd7b","savedPayload":{"position":{"x":21429.85350470757,"y":18962.621943836526},"targetPosition":{"x":21641.985539063535,"y":18750.489909480562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ff542733-ddbd-4cbf-b90d-a12c49752916","savedPayload":{"position":{"x":21641.985539063535,"y":18750.489909480562},"targetPosition":{"x":21595.055199551465,"y":18454.18340730202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Wave Trend","id":"cfa6bcb9-8d18-4658-81f4-1f7d55adc742"}}}],"id":"9ce52f75-7caa-4d0e-8faf-09a1e8a8033a","savedPayload":{"position":{"x":21595.055199551465,"y":18454.18340730202},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Donchian Channel","config":"{ \n\"codeName\": \"Donchian-Channel\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces the MACD indicator.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Donchian Channel","project":"Superalgos","id":"2000e920-443a-49d2-9003-b16d742547dc","savedPayload":{"position":{"x":22215.55949757523,"y":18372.578515415673},"targetPosition":{"x":21963.9583271916,"y":18535.97022592018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7298225c-3b68-4f34-a935-fc0ab3d8f662"}}}],"outputDatasetFolders":[],"id":"014aaa46-fa23-41a3-9834-b9382f6af876","savedPayload":{"position":{"x":21963.9583271916,"y":18535.97022592018},"targetPosition":{"x":21712.357156807975,"y":18699.361936424688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"22266684-e056-49a8-8885-4a31cebd34d2","savedPayload":{"position":{"x":22212.685199142004,"y":18460.717701908587},"targetPosition":{"x":22011.946017234346,"y":18683.661149551805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Donchian Channel Multi-Period-Market","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"d55aa460-8292-4cba-831a-01425cbea4e7","savedPayload":{"position":{"x":22161.740447447533,"y":18675.810756115363},"targetPosition":{"x":22011.946017234346,"y":18683.661149551805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"8af7a7fd-54f6-496c-b4e3-05a37d838288"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"71b430e7-6a5c-437b-a015-76a8202de236","savedPayload":{"position":{"x":22123.417741055957,"y":18784.030740505634},"targetPosition":{"x":22011.946017234346,"y":18683.661149551805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"9070474a-4a33-4c1b-8ac0-113ca33928c5","savedPayload":{"position":{"x":22011.946017234346,"y":18683.661149551805},"targetPosition":{"x":21712.357156807975,"y":18699.361936424688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"8af7a7fd-54f6-496c-b4e3-05a37d838288","savedPayload":{"position":{"x":21979.659114064485,"y":18835.55908634655},"targetPosition":{"x":21712.357156807975,"y":18699.361936424688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"75ad91f0-37ca-42fb-9c20-c3965f115741","savedPayload":{"position":{"x":21794.05301206023,"y":18825.1625216165},"targetPosition":{"x":21712.357156807975,"y":18699.361936424688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"f4f25b2a-d402-43d9-b1de-248f2987e80f","savedPayload":{"position":{"x":21720.207550244417,"y":18849.156366637875},"targetPosition":{"x":21712.357156807975,"y":18699.361936424688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"18bfecb5-3666-4eaf-8b3a-d44a41aa5752","savedPayload":{"position":{"x":21712.357156807975,"y":18699.361936424688},"targetPosition":{"x":21445.055199551465,"y":18563.164786502824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces the MACD indicator.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Donchian Channel","project":"Superalgos","id":"a0373c2d-dcd9-4b36-8db8-6c5e377f4e70","savedPayload":{"position":{"x":20730.93072434567,"y":19122.500353393523},"targetPosition":{"x":20753.3497524216,"y":18823.339214239168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"50ed783e-0e71-4903-8a82-854c8bd2ed6e"}}}],"outputDatasetFolders":[],"id":"a9f3e616-1897-4716-94be-92676ab2c97c","savedPayload":{"position":{"x":20753.3497524216,"y":18823.339214239168},"targetPosition":{"x":20775.76878049753,"y":18524.178075084812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Donchian Channel Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"ab757f0c-c816-42c1-86f0-97c16ef7df9b","savedPayload":{"position":{"x":20568.727575212957,"y":19069.62753531758},"targetPosition":{"x":20606.772763078443,"y":18772.04970737961},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"0c9cddc3-dfd4-49f2-b5e9-2d9cb15164e2"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"5675ab54-d0e8-4038-ab6a-56ef2aa08c55","savedPayload":{"position":{"x":20478.633033263286,"y":19043.306430140354},"targetPosition":{"x":20606.772763078443,"y":18772.04970737961},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{ \n\"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"51eb2e2d-75b5-4aa9-9628-da6fdafee5c0","savedPayload":{"position":{"x":20401.081700869912,"y":18990.432826982586},"targetPosition":{"x":20606.772763078443,"y":18772.04970737961},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"c19ecb80-d74c-4a66-8bc9-7c164f2f81bf","savedPayload":{"position":{"x":20343.664842779413,"y":18916.182362513413},"targetPosition":{"x":20606.772763078443,"y":18772.04970737961},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"22190dfd-2d9d-401b-a391-642f3140b8ba","savedPayload":{"position":{"x":20606.772763078443,"y":18772.04970737961},"targetPosition":{"x":20775.76878049753,"y":18524.178075084812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"0c9cddc3-dfd4-49f2-b5e9-2d9cb15164e2","savedPayload":{"position":{"x":20640.623450312167,"y":18589.260635952447},"targetPosition":{"x":20775.76878049753,"y":18524.178075084812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"decfbbf5-ddb1-48ed-9703-3dfd2817fd4a","savedPayload":{"position":{"x":20626.18821092035,"y":18512.968561046848},"targetPosition":{"x":20775.76878049753,"y":18524.178075084812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"66d5f6e0-5b1e-4fce-9187-11f226def0a6","savedPayload":{"position":{"x":20651.832964350127,"y":18439.68006637527},"targetPosition":{"x":20775.76878049753,"y":18524.178075084812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"04245397-cdac-4f93-b45f-86787e821ab6","savedPayload":{"position":{"x":21537.760297863948,"y":18848.48174139137},"targetPosition":{"x":21445.055199551465,"y":18563.164786502824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Donchian Channel","config":"{\n \"codeName\": \"Donchian-Channel\",\n \"singularVariableName\": \"donchian\",\n \"pluralVariableName\": \"donchians\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"7298225c-3b68-4f34-a935-fc0ab3d8f662","savedPayload":{"position":{"x":21685.219227936483,"y":19034.513231655692},"targetPosition":{"x":21240.75947466867,"y":18964.11772238759},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"50ed783e-0e71-4903-8a82-854c8bd2ed6e","savedPayload":{"position":{"x":21311.154983936773,"y":19408.577475655402},"targetPosition":{"x":21240.75947466867,"y":18964.11772238759},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"record.current.begin","project":"Superalgos","id":"1a36f31f-c662-44c1-859e-95dfc06c72cf","savedPayload":{"position":{"x":21205.432704204683,"y":19638.192658346925},"targetPosition":{"x":20922.381387523103,"y":19454.376984029353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"39eca54b-9530-4c5b-a28f-a58a7b7a7f6a","savedPayload":{"position":{"x":20922.381387523103,"y":19454.376984029353},"targetPosition":{"x":20639.330070841523,"y":19270.561309711782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{ \n\"codeName\": \"end\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"record.current.end","project":"Superalgos","id":"25467c14-bbdd-4b2f-8f55-7463c2e47d0f","savedPayload":{"position":{"x":20604.003300377535,"y":19944.63624567112},"targetPosition":{"x":20621.66668560953,"y":19607.59877769145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d8a9f877-40ea-4464-823b-6ece32c332a4","savedPayload":{"position":{"x":20621.66668560953,"y":19607.59877769145},"targetPosition":{"x":20639.330070841523,"y":19270.561309711782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"hiHigh","config":"{ \n \"codeName\": \"hiHigh\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.hiHigh","project":"Superalgos","id":"7d1d3c9b-5638-4ff1-a97b-fccb540d14f4","savedPayload":{"position":{"x":20188.258017971162,"y":19500.394000204928},"targetPosition":{"x":20338.61536892795,"y":19423.78310337388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6fd13621-5530-49fc-9b62-cd43937ae9c8","savedPayload":{"position":{"x":20338.61536892795,"y":19423.78310337388},"targetPosition":{"x":20639.330070841523,"y":19270.561309711782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"loLow","config":"{ \n \"codeName\": \"loLow\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.loLow","project":"Superalgos","id":"ed2dd438-916d-422c-8395-b85103cfac6a","savedPayload":{"position":{"x":20214.753095819153,"y":18994.837798235425},"targetPosition":{"x":20356.278754159943,"y":19086.74563539421},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d8ffc062-4f09-429d-8b7f-fad13e2b0bcc","savedPayload":{"position":{"x":20356.278754159943,"y":19086.74563539421},"targetPosition":{"x":20639.330070841523,"y":19270.561309711782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Mid Point","config":"{ \n \"codeName\": \"midPoint\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.midPoint","project":"Superalgos","id":"fda3d478-ea77-4a42-a742-e99caddf1b37","savedPayload":{"position":{"x":20665.825148689513,"y":18765.00510774228},"targetPosition":{"x":20656.993456073516,"y":18933.523841732112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"be82c2e0-7fbd-4aa6-9cc2-203b60a3138d","savedPayload":{"position":{"x":20656.993456073516,"y":18933.523841732112},"targetPosition":{"x":20639.330070841523,"y":19270.561309711782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"086a47ac-062a-442f-9cde-0fa2f0550df3","savedPayload":{"position":{"x":20639.330070841523,"y":19270.561309711782},"targetPosition":{"x":21240.75947466867,"y":18964.11772238759},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"/* Loop Code */\n\nlet dcLen = 20 // Channel length\nlet candle = record.current\n\n// Build arrays Max and Min\n\nvariable.lastHighs.push(candle.max) \nvariable.lastLows.push(candle.min)\n\n// Keep the array the correct size\n\nif (variable.lastHighs.length > dcLen) {\n variable.lastHighs.splice(0, 1)\n}\n\nif (variable.lastLows.length > dcLen) {\n variable.lastLows.splice(0, 1)\n}\n\n// Calculate indicator values\n\nvariable.hiHigh = calculateHigh (variable.lastHighs, dcLen) // higher highs\nvariable.loLow = calculateLow (variable.lastLows, dcLen) // lower lows\nvariable.midPoint = (variable.hiHigh + variable.loLow) / 2 // Midpoint\n\nfunction calculateHigh (array, length) {\n\n /* We check we have enough values to make the calculation */\n if (array.length < length) { return 0 }\n\n return Math.max(...array)\n}\n\nfunction calculateLow (array, length) {\n\n /* We check we have enough values to make the calculation */\n if (array.length < length) { return 0 }\n\n return Math.min(...array)\n}\n\n\n// End of code :-)","project":"Superalgos","id":"58b389fb-0695-4083-8b14-cd6679d36d67","savedPayload":{"position":{"x":20596.561456762163,"y":18558.568243131544},"targetPosition":{"x":20705.228112219684,"y":18587.685385705576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0655fb31-8425-4174-bc6b-275c313ee834","savedPayload":{"position":{"x":20705.228112219684,"y":18587.685385705576},"targetPosition":{"x":20922.561423134724,"y":18645.919670853644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"/* Initialization Code*/\n\nvariable.lastHighs = []\nvariable.lastLows = []\n\n","project":"Superalgos","id":"eeb544b6-45f7-4bff-a026-cef0ad9edbff","savedPayload":{"position":{"x":20835.209995412624,"y":18319.919704481083},"targetPosition":{"x":20864.327137986656,"y":18428.586359938603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a2c221ef-f3c9-4069-9ff3-4ac1190b1527","savedPayload":{"position":{"x":20864.327137986656,"y":18428.586359938603},"targetPosition":{"x":20922.561423134724,"y":18645.919670853644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"393374e9-30fa-4598-9143-8df35e487665","savedPayload":{"position":{"x":20922.561423134724,"y":18645.919670853644},"targetPosition":{"x":21240.75947466867,"y":18964.11772238759},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4768d183-d8ea-4686-8419-f9dad3172020","savedPayload":{"position":{"x":21240.75947466867,"y":18964.11772238759},"targetPosition":{"x":21445.055199551465,"y":18563.164786502824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Donchian Channel","id":"dd7b5cd7-3b5e-4809-949e-777ddcce4648"}}}],"id":"48c69242-e9f9-4433-b12f-6c79ee85d86b","savedPayload":{"position":{"x":21445.055199551465,"y":18563.164786502824},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Directional Movement Index (DMI)","config":"{ \n\"codeName\": \"DMI\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market DMI Directional Movement","project":"Superalgos","id":"5919f5c5-6bee-468c-b910-f5652cbecb82","savedPayload":{"position":{"x":21995.019873701105,"y":18861.8683175051},"targetPosition":{"x":21695.431013274734,"y":18846.167530632218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ffc7f78b-9ec3-4218-b76f-47233d535a17"}}}],"outputDatasetFolders":[],"id":"7aaea608-87b1-44dd-b913-0b901b31f0a4","savedPayload":{"position":{"x":21695.431013274734,"y":18846.167530632218},"targetPosition":{"x":21395.842152848363,"y":18830.466743759334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"fe35d43c-c6df-4e14-8f8f-05097d8780c4","savedPayload":{"position":{"x":21940.88760345213,"y":18931.484947018515},"targetPosition":{"x":21647.44332323199,"y":18993.858454263842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Directional Movement Index (DMI) Multi-Period-Market","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"fd624718-e85a-4d9d-8a67-90d4e961d39d","savedPayload":{"position":{"x":21773.243908423803,"y":19075.554309516097},"targetPosition":{"x":21647.44332323199,"y":18993.858454263842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"f80adcc4-0286-43e6-a21f-b11c8210b305"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"84e787de-6e28-47f7-999b-ccb4df1b58b3","savedPayload":{"position":{"x":21678.630076854653,"y":19140.580594373914},"targetPosition":{"x":21647.44332323199,"y":18993.858454263842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"0caf1c52-9492-4149-900c-88c36f943c04","savedPayload":{"position":{"x":21647.44332323199,"y":18993.858454263842},"targetPosition":{"x":21395.842152848363,"y":18830.466743759334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"f80adcc4-0286-43e6-a21f-b11c8210b305","savedPayload":{"position":{"x":21532.039302770227,"y":19097.768701015844},"targetPosition":{"x":21395.842152848363,"y":18830.466743759334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"77ab62fd-1ace-4833-852a-4b7fcfa71af1","savedPayload":{"position":{"x":21387.99175941192,"y":18980.26117397252},"targetPosition":{"x":21395.842152848363,"y":18830.466743759334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"1e735ccd-0aac-412e-9cd3-e7371c4da681","savedPayload":{"position":{"x":21314.146297596108,"y":18956.267328951148},"targetPosition":{"x":21395.842152848363,"y":18830.466743759334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b15d854d-e6bd-4a3f-86a4-e52298e1bedb","savedPayload":{"position":{"x":21395.842152848363,"y":18830.466743759334},"targetPosition":{"x":21259.6450029265,"y":18563.164786502824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":" {\n \"codeName\": \"Multi-Period-Daily\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily DMI Directional Movement","project":"Superalgos","id":"7aa772da-83ed-49bc-ae02-cdf6dec2e327","savedPayload":{"position":{"x":21568.418268429334,"y":19294.368636677806},"targetPosition":{"x":21367.679086521675,"y":19071.425189034588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"9b222dca-e8c2-4392-9c3e-7c970dca4a52"}}}],"outputDatasetFolders":[],"id":"689dc40b-6766-4c3f-8b01-1337836842d3","savedPayload":{"position":{"x":21367.679086521675,"y":19071.425189034588},"targetPosition":{"x":21166.939904614017,"y":18848.48174139137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Directional Movement Index (DMI) Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"68ae89c3-ae95-4f7c-8010-77696f7cece1","savedPayload":{"position":{"x":21418.109529174297,"y":19375.0698100486},"targetPosition":{"x":21229.313411859344,"y":19141.92602161151},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"410a9275-4f43-4cbe-9ee9-a674a8465fb2"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"676dd9be-1e1e-4f80-98af-e9d74d588c9b","savedPayload":{"position":{"x":21336.823796722936,"y":19422.00014956067},"targetPosition":{"x":21229.313411859344,"y":19141.92602161151},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{ \n\"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"7d829a3f-61dc-451c-aedf-2d441bb73ee6","savedPayload":{"position":{"x":21245.014198732228,"y":19441.51488203788},"targetPosition":{"x":21229.313411859344,"y":19141.92602161151},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"a4433576-f48c-46ad-be60-94456f62807d","savedPayload":{"position":{"x":21151.667698328587,"y":19431.703769498232},"targetPosition":{"x":21229.313411859344,"y":19141.92602161151},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"2bc735c8-7b2c-43bf-a5ad-04a92a55b492","savedPayload":{"position":{"x":21229.313411859344,"y":19141.92602161151},"targetPosition":{"x":21166.939904614017,"y":18848.48174139137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"410a9275-4f43-4cbe-9ee9-a674a8465fb2","savedPayload":{"position":{"x":21120.587355457774,"y":18991.140218835644},"targetPosition":{"x":21166.939904614017,"y":18848.48174139137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"f5079609-c590-4de5-aeaf-50454e9462ff","savedPayload":{"position":{"x":21055.468180792406,"y":18948.8513323452},"targetPosition":{"x":21166.939904614017,"y":18848.48174139137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"4a4808ce-da77-4797-9c98-a20c7f4b66ff","savedPayload":{"position":{"x":21020.217764503945,"y":18879.668495014033},"targetPosition":{"x":21166.939904614017,"y":18848.48174139137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e7398a04-47e8-4195-9504-c8fb6a7f8006","savedPayload":{"position":{"x":21166.939904614017,"y":18848.48174139137},"targetPosition":{"x":21259.6450029265,"y":18563.164786502824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"DMI Directional Movement","config":"{\n \"codeName\": \"DMI\",\n \"singularVariableName\": \"DMI\",\n \"pluralVariableName\": \"DMIs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"ffc7f78b-9ec3-4218-b76f-47233d535a17","savedPayload":{"position":{"x":21176.89011857568,"y":19085.658562919565},"targetPosition":{"x":20858.692067041735,"y":18767.46051138562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"9b222dca-e8c2-4392-9c3e-7c970dca4a52","savedPayload":{"position":{"x":20654.39634215894,"y":19168.413447270384},"targetPosition":{"x":20858.692067041735,"y":18767.46051138562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"record.current.begin","project":"Superalgos","id":"1ec34464-ca30-478d-b477-060d5ce5c395","savedPayload":{"position":{"x":20433.900803083092,"y":19292.034035369074},"targetPosition":{"x":20312.951620111555,"y":18976.95064142627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e5938129-efd9-406d-99d7-5138f70c071f","savedPayload":{"position":{"x":20312.951620111555,"y":18976.95064142627},"targetPosition":{"x":20192.002437140018,"y":18661.867247483464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{ \n\"codeName\": \"end\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"record.current.end","project":"Superalgos","id":"fec95a23-69ea-4963-8525-8eaa5d791bc9","savedPayload":{"position":{"x":19767.211173181375,"y":19186.440771466918},"targetPosition":{"x":19979.606805160696,"y":18924.15400947519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"138e7e11-7336-481f-9a0c-397cdcf8c275","savedPayload":{"position":{"x":19979.606805160696,"y":18924.15400947519},"targetPosition":{"x":20192.002437140018,"y":18661.867247483464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"+DI","config":"{ \n \"codeName\": \"plusDI\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.plusDI","project":"Superalgos","id":"ff000762-5411-45e6-bd76-17f41e2b7770","savedPayload":{"position":{"x":19691.985214713728,"y":18582.67229955685},"targetPosition":{"x":19858.65762218916,"y":18609.070615532386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ae437f00-ed26-439e-8ee2-b464ac13a414","savedPayload":{"position":{"x":19858.65762218916,"y":18609.070615532386},"targetPosition":{"x":20192.002437140018,"y":18661.867247483464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"-DI","config":"{ \n \"codeName\": \"minusDI\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.minusDI","project":"Superalgos","id":"bc1af38f-d7ee-4af5-a8ed-e793527c0955","savedPayload":{"position":{"x":20010.578662682707,"y":18189.242156569257},"targetPosition":{"x":20071.053254168477,"y":18346.78385354066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"25cafbf6-5636-4e0e-aabc-5323c92faa92","savedPayload":{"position":{"x":20071.053254168477,"y":18346.78385354066},"targetPosition":{"x":20192.002437140018,"y":18661.867247483464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ADX","config":"{ \n \"codeName\": \"adx\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.adx","project":"Superalgos","id":"57bc2009-d447-4470-a9e3-49cab55d6fac","savedPayload":{"position":{"x":20510.595885109,"y":18268.43710449587},"targetPosition":{"x":20404.39806911934,"y":18399.580485491737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"01c1bb22-2c02-4b43-8084-71126021fbc9","savedPayload":{"position":{"x":20404.39806911934,"y":18399.580485491737},"targetPosition":{"x":20192.002437140018,"y":18661.867247483464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3aa516a7-f994-48ed-9f01-92cf496e5338","savedPayload":{"position":{"x":20192.002437140018,"y":18661.867247483464},"targetPosition":{"x":20858.692067041735,"y":18767.46051138562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"/* Loop Code */\n\nlet len = 14 // DI Length\nlet lensig = 14 // ADX Smoothing\n\n// Get Current and Previous Candle Data\nlet currCandle = record.current \nlet prevCandle = record.previous \n\n\n// Make sure data exists for prevCandle\n// Build variable.up = current max - previous max\n\nif (prevCandle === undefined) {\n variable.up = 0\n variable.down = 0\n variable.prevClose = currCandle.close\n} else {\n variable.up = currCandle.max - prevCandle.max\n variable.down = prevCandle.min - currCandle.min\n variable.prevClose = prevCandle.close\n}\n\n\n// console.log (variable.up, variable.down)\n\n\nvariable.plusDM = calculatePlusDM (variable.up,variable.down)\nvariable.minusDM = calculateMinusDM (variable.up,variable.down)\n\n\nfunction calculatePlusDM (up, down) {\n if (up > down && up > 0) {\n return up\n } else {\n return 0\n }\n}\n\nfunction calculateMinusDM (up, down) {\n if (down > up && down > 0) {\n return down\n } else {\n return 0\n }\n}\n\n\nvariable.trueRange = calculateTR()\n\n/* Calculate True Range */\nfunction calculateTR() {\n let hl = currCandle.max - currCandle.min \n if (variable.prevClose === 0) { return hl }\n if (isNaN(variable.prevClose)) { return hl } // Return High-Low when previous Close is 0 \n let hcp = Math.abs(currCandle.max - variable.prevClose)\n let lcp = Math.abs(currCandle.min - variable.prevClose) \n return Math.max(hl, hcp, lcp)\n}\n\n/* Calculate RMA */\nfunction calculateRMA(src, length, prevRMA) {\n if (src.length < length) { return 0 }\n let alpha = 1/length\n return alpha*src+(1-alpha)*prevRMA\n}\n\nvariable.trur = calculateRMA(variable.trueRange, len, variable.previousTrur)\nvariable.previousTrur = variable.trur\n\nk = 100/variable.trur\n\nvariable.basePlusDI = calculateRMA(variable.plusDM, len, variable.previousBasePlusDI)\nvariable.previousBasePlusDI = variable.basePlusDI\n\nvariable.baseMinusDI = calculateRMA(variable.minusDM, len, variable.previousBaseMinusDI)\nvariable.previousBaseMinusDI = variable.baseMinusDI\n\nvariable.plusDI = variable.basePlusDI * k\nif (isNaN(variable.plusDI)) {variable.plusDI=0}\nvariable.minusDI = variable.baseMinusDI * k\nif (isNaN(variable.minusDI)) {variable.minusDI=0}\n\nvariable.sumPlusMinus = variable.plusDI + variable.minusDI\n\nif (variable.sumPlusMinus == 0) {\n variable.sumPlusMinus = 1 \n} else {\n variable.sumPlusMinus = variable.sumPlusMinus\n}\n\nvariable.baseADX = calculateRMA(Math.abs(variable.plusDI - variable.minusDI)/variable.sumPlusMinus, lensig, variable.previousBaseADX)\nvariable.previousBaseADX = variable.baseADX\nvariable.adx = 100 * variable.baseADX\n\n// End of code :-)","project":"Superalgos","id":"3d2db569-3ddf-43da-be3d-c28e5504273d","savedPayload":{"position":{"x":20575.90092579431,"y":18060.71399612608},"targetPosition":{"x":20646.699469787418,"y":18148.142916789988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a6258f38-8354-48de-adb7-3b661899667e","savedPayload":{"position":{"x":20646.699469787418,"y":18148.142916789988},"targetPosition":{"x":20788.296557773632,"y":18323.000758117807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"/* Initialization Code*/\n\n\nvariable.previousTrur = 0\nvariable.previousBasePlusDI = 0\nvariable.previousBaseMinusDI = 0\nvariable.previousBaseADX = 0","project":"Superalgos","id":"c2937149-cf61-4d86-808e-979e5948216b","savedPayload":{"position":{"x":20909.245740745173,"y":18007.917364175002},"targetPosition":{"x":20868.929346421326,"y":18112.94516215594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9a0b15f6-028e-47c3-9ba3-6c0bef0cdfb3","savedPayload":{"position":{"x":20868.929346421326,"y":18112.94516215594},"targetPosition":{"x":20788.296557773632,"y":18323.000758117807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"da6ee60e-081f-401e-bd6a-5df0a847e64f","savedPayload":{"position":{"x":20788.296557773632,"y":18323.000758117807},"targetPosition":{"x":20858.692067041735,"y":18767.46051138562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"baba93f1-f096-429d-a544-efe36119fac8","savedPayload":{"position":{"x":20858.692067041735,"y":18767.46051138562},"targetPosition":{"x":21259.6450029265,"y":18563.164786502824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"DMI Directional Movement","id":"4e8c7782-32a0-496d-baab-d11bb1a562d0"}}}],"id":"de6b7c83-31ee-41f3-83cc-57f47865c6e9","savedPayload":{"position":{"x":21259.6450029265,"y":18563.164786502824},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Ichimoku Cloud","config":"{ \n\"codeName\": \"Ichimoku\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces the MACD indicator.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Ichimoku Cloud","project":"Superalgos","id":"fc0db1a6-d3f2-42ee-8151-3341b44cd685","savedPayload":{"position":{"x":20577.965343509648,"y":19519.34783161428},"targetPosition":{"x":20318.157722374315,"y":19369.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"80018870-2528-42bf-a3a7-6f0b5e44d9c9"}}}],"outputDatasetFolders":[],"id":"6ff0e507-30a0-44cf-9889-234622011f92","savedPayload":{"position":{"x":20318.157722374315,"y":19369.34783161428},"targetPosition":{"x":20058.350101238982,"y":19219.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"5e8b154e-58b0-436c-a28e-0d6a165cf7fe","savedPayload":{"position":{"x":20498.127849125704,"y":19556.80116628037},"targetPosition":{"x":20208.350101238982,"y":19479.155452749612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Ichimoku Cloud Multi-Period-Market","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"b1eeff79-6ce6-4e3f-916f-efb6f5c57d36","savedPayload":{"position":{"x":20283.350101238982,"y":19609.05926331728},"targetPosition":{"x":20208.350101238982,"y":19479.155452749612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"dbcf7839-bf6e-41e9-beff-ad4a672dec87"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"8815bfb5-a494-425b-8211-215b858acd8c","savedPayload":{"position":{"x":20169.527244473604,"y":19624.044326692972},"targetPosition":{"x":20208.350101238982,"y":19479.155452749612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"17464577-a8e2-4909-b674-bf190ae9bd61","savedPayload":{"position":{"x":20208.350101238982,"y":19479.155452749612},"targetPosition":{"x":20058.350101238982,"y":19219.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"dbcf7839-bf6e-41e9-beff-ad4a672dec87","savedPayload":{"position":{"x":20058.350101238982,"y":19519.34783161428},"targetPosition":{"x":20058.350101238982,"y":19219.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"28298755-1265-4638-ad84-4ea48d9967c4","savedPayload":{"position":{"x":19983.350101238982,"y":19349.251642181945},"targetPosition":{"x":20058.350101238982,"y":19219.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"cffec99c-61ce-4c11-acfe-7cfab0661b92","savedPayload":{"position":{"x":19928.446290671316,"y":19294.34783161428},"targetPosition":{"x":20058.350101238982,"y":19219.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0419a095-c117-4b03-8581-c6c2fb30fe43","savedPayload":{"position":{"x":21062.71466341443,"y":18750.489909480562},"targetPosition":{"x":21109.6450029265,"y":18454.18340730202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces the MACD indicator.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Ichimoku Cloud","project":"Superalgos","id":"d7fe8959-24a8-4872-90e6-e4e4ecee89c6","savedPayload":{"position":{"x":19977.54248010365,"y":19704.34783161428},"targetPosition":{"x":19977.54248010365,"y":19404.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ef8da44c-8cc5-41fc-add6-f2feff945632"}}}],"outputDatasetFolders":[],"id":"e4fa5f98-33d5-4d71-935b-ce77340cb43a","savedPayload":{"position":{"x":19977.54248010365,"y":19404.34783161428},"targetPosition":{"x":19977.54248010365,"y":19104.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Ichimoku Cloud Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"5097611a-6c4c-4629-9b4e-ab1ae850980f","savedPayload":{"position":{"x":19811.841693230766,"y":19663.744313175983},"targetPosition":{"x":19827.54248010365,"y":19364.155452749612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"906bf32a-6310-4aa4-83d9-7de0a94906d6"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"f7e27eb6-6cdb-4352-a880-51f78903cd72","savedPayload":{"position":{"x":19720.032095240058,"y":19644.22958069877},"targetPosition":{"x":19827.54248010365,"y":19364.155452749612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{ \n\"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"826de77b-7a62-4f14-b5ea-911aa0612cec","savedPayload":{"position":{"x":19638.746362788697,"y":19597.2992411867},"targetPosition":{"x":19827.54248010365,"y":19364.155452749612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"ebfa73d9-6cd5-45f7-b66c-464c68692b63","savedPayload":{"position":{"x":19575.941309720023,"y":19527.54716325412},"targetPosition":{"x":19827.54248010365,"y":19364.155452749612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"434839d0-e4ac-429e-aed0-5542fda64850","savedPayload":{"position":{"x":19827.54248010365,"y":19364.155452749612},"targetPosition":{"x":19977.54248010365,"y":19104.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"906bf32a-6310-4aa4-83d9-7de0a94906d6","savedPayload":{"position":{"x":19847.638669535983,"y":19179.34783161428},"targetPosition":{"x":19977.54248010365,"y":19104.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"7a8bcb97-9f5e-44e4-861b-dd111ad7c1f2","savedPayload":{"position":{"x":19827.54248010365,"y":19104.34783161428},"targetPosition":{"x":19977.54248010365,"y":19104.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"3d514935-9c3a-4b52-9497-b0cdfb4dedc4","savedPayload":{"position":{"x":19847.638669535983,"y":19029.34783161428},"targetPosition":{"x":19977.54248010365,"y":19104.34783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"13b83df6-2b1a-4535-8b78-5711c9b4630d","savedPayload":{"position":{"x":20866.939904614017,"y":18630.518982989764},"targetPosition":{"x":21109.6450029265,"y":18454.18340730202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Ichimoku Cloud","config":"{\n \"codeName\": \"Ichimoku\",\n \"singularVariableName\": \"ichimoku\",\n \"pluralVariableName\": \"ichimokus\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"80018870-2528-42bf-a3a7-6f0b5e44d9c9","savedPayload":{"position":{"x":20735.58075892679,"y":18828.247651301732},"targetPosition":{"x":20665.185249658687,"y":18383.78789803392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }","project":"Superalgos","id":"ef8da44c-8cc5-41fc-add6-f2feff945632","savedPayload":{"position":{"x":20264.232313773922,"y":18588.083622916714},"targetPosition":{"x":20665.185249658687,"y":18383.78789803392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"record.current.begin","project":"Superalgos","id":"72a92d9f-1ed8-4889-85dc-cf06b82a696e","savedPayload":{"position":{"x":20355.091947472574,"y":18384.33175670161},"targetPosition":{"x":20299.35735576764,"y":18225.051444712073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e8a2fd42-8b10-4ebd-9403-fda27ec231af","savedPayload":{"position":{"x":20299.35735576764,"y":18225.051444712073},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{ \n\"codeName\": \"end\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"record.current.end","project":"Superalgos","id":"0b6082e7-ec6b-47c1-818e-9af517edf285","savedPayload":{"position":{"x":20131.206156330467,"y":18409.557626991456},"targetPosition":{"x":20150.1001616729,"y":18241.86869157197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"43e28612-17ea-4a7b-89c7-bd039dec9ea1","savedPayload":{"position":{"x":20150.1001616729,"y":18241.86869157197},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Conversion Line","config":"{ \n \"codeName\": \"conversionLine\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.conversionLine","project":"Superalgos","id":"0e232ef8-ac61-4c1a-ada7-73b687dc805b","savedPayload":{"position":{"x":19918.54693362188,"y":18335.14494659232},"targetPosition":{"x":20008.327346533843,"y":18192.260237972547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"512e4c3c-391b-4dfa-9e88-0473375d1799","savedPayload":{"position":{"x":20008.327346533843,"y":18192.260237972547},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Base Line","config":"{ \n \"codeName\": \"baseLine\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.baseLine","project":"Superalgos","id":"c9604d93-a559-4469-9cab-5fc86b5e1648","savedPayload":{"position":{"x":19759.234046498448,"y":18175.83205946889},"targetPosition":{"x":19902.118755118223,"y":18086.051646556927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ca0fadce-a732-4048-991c-9e11de0bed02","savedPayload":{"position":{"x":19902.118755118223,"y":18086.051646556927},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lagging Span","config":"{ \n \"codeName\": \"laggingSpan\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.laggingSpan","project":"Superalgos","id":"f8b08c0d-a298-47c8-98b4-14498ae3f069","savedPayload":{"position":{"x":19684.821366099313,"y":17963.172836760303},"targetPosition":{"x":19852.5103015188,"y":17944.27883141787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b1421f51-e5e9-4c19-8ef8-0361872d12a5","savedPayload":{"position":{"x":19852.5103015188,"y":17944.27883141787},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lead Line 1","config":"{ \n \"codeName\": \"leadLine1\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.leadLine1","project":"Superalgos","id":"33f1f757-9ad5-4c0a-9dff-aae377cb5fc4","savedPayload":{"position":{"x":19710.047236389157,"y":17739.287045618195},"targetPosition":{"x":19869.327548378693,"y":17795.02163732313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"40a00adc-bc21-4ae8-95da-623d84b9fb5f","savedPayload":{"position":{"x":19869.327548378693,"y":17795.02163732313},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lead Line 2","config":"{ \n \"codeName\": \"leadLine2\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.leadLine2","project":"Superalgos","id":"748194a5-7fc8-4389-83ec-251ea6212867","savedPayload":{"position":{"x":19829.91536438208,"y":17548.51801275731},"targetPosition":{"x":19949.239633707308,"y":17667.84228208254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d4dc6e16-82d8-44b5-bf4a-898746e9f906","savedPayload":{"position":{"x":19949.239633707308,"y":17667.84228208254},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Past Begin","config":"{ \n \"codeName\": \"pastBegin\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.pastBegin","project":"Superalgos","id":"36cea089-33a9-4613-bf31-b6559e672bfe","savedPayload":{"position":{"x":20020.684397242963,"y":17428.64988476439},"targetPosition":{"x":20076.4189889479,"y":17587.930196753925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6e65d1a7-d1d6-4e55-8a5e-1b633d847760","savedPayload":{"position":{"x":20076.4189889479,"y":17587.930196753925},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Past End","config":"{ \n \"codeName\": \"pastEnd\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.pastEnd","project":"Superalgos","id":"f6122e26-d738-4265-87d7-05e277ca4125","savedPayload":{"position":{"x":20244.57018838507,"y":17403.424014474545},"targetPosition":{"x":20225.676183042637,"y":17571.11294989403},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6c9f44c4-05fa-45c0-b7c2-4ea0a7215be9","savedPayload":{"position":{"x":20225.676183042637,"y":17571.11294989403},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Forward Begin","config":"{ \n \"codeName\": \"forwardBegin\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.forwardBegin","project":"Superalgos","id":"eea563b8-20c5-4464-8f2f-add8dc54621e","savedPayload":{"position":{"x":20457.229411093656,"y":17477.83669487368},"targetPosition":{"x":20367.448998181695,"y":17620.721403493455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f4aacf4c-ceb3-42eb-8658-1b75219f91d5","savedPayload":{"position":{"x":20367.448998181695,"y":17620.721403493455},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Forward End","config":"{ \n \"codeName\": \"forwardEnd\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.forwardEnd","project":"Superalgos","id":"b24fdba5-01d6-4172-8d60-97714a1f419e","savedPayload":{"position":{"x":20616.54229821709,"y":17637.149581997113},"targetPosition":{"x":20473.657589597315,"y":17726.929994909075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"66042c7c-421c-4882-b2dc-f68a47c928ea","savedPayload":{"position":{"x":20473.657589597315,"y":17726.929994909075},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Plot Lead Line 1","config":"{ \n \"codeName\": \"plotLeadLine1\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.plotLeadLine1","project":"Superalgos","id":"53b40211-2c67-45d0-909e-aa8182dbe7fa","savedPayload":{"position":{"x":20690.954978616224,"y":17849.8088047057},"targetPosition":{"x":20523.266043196738,"y":17868.702810048133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b73f0fd0-94de-4247-a3fb-f066d12c3749","savedPayload":{"position":{"x":20523.266043196738,"y":17868.702810048133},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Plot Lead Line2","config":"{ \n \"codeName\": \"plotLeadLine2\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"variable.plotLeadLine2","project":"Superalgos","id":"ed655742-cd9e-4ca2-baad-ea28f5a3fe0a","savedPayload":{"position":{"x":20665.72910832638,"y":18073.694595847806},"targetPosition":{"x":20506.448796336845,"y":18017.96000414287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"aa927173-5062-420c-bc81-7019042625bc","savedPayload":{"position":{"x":20506.448796336845,"y":18017.96000414287},"targetPosition":{"x":20187.88817235777,"y":17906.490820733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4ad846c6-be10-469e-bb6b-178b94b1bcf6","savedPayload":{"position":{"x":20187.88817235777,"y":17906.490820733},"targetPosition":{"x":20665.185249658687,"y":18383.78789803392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"/* Loop Code */\n\n/* Modify value here */\n\nlet conversionPeriods = 20 // Conversion Line Periods\nlet basePeriods = 30 // Base Line Periods\nlet laggingSpan2Periods = 120 // Lagging Span 2 Periods\nlet displacement = 60 // Displacement\n\n/* Define candle object and property */\n\nlet candle = {\n open: record.current.open,\n close: record.current.close,\n min: record.current.min,\n max: record.current.max,\n begin: record.current.begin,\n end: record.current.end,\n} \n\n/* We need a function to calculate the average\nof past (length) Lows and Highs\nBasically it is a Donchian\nwith different periods */\n\n// Build arrays Max and Min for each variable\n\nvariable.lastHiConversionPeriods.push(candle.max)\nvariable.lastHiBasePeriods.push(candle.max)\nvariable.lastHiLaggingSpan2Periods.push(candle.max)\n\nvariable.lastLowConversionPeriods.push(candle.min)\nvariable.lastLowBasePeriods.push(candle.min)\nvariable.lastLowLaggingSpan2Periods.push(candle.min)\n\n// And keep the array the correct size\n// Highs\n\nif (variable.lastHiConversionPeriods.length > conversionPeriods) {\n variable.lastHiConversionPeriods.splice(0, 1)\n}\n\nif (variable.lastHiBasePeriods.length > basePeriods) {\n variable.lastHiBasePeriods.splice(0, 1)\n}\n\nif (variable.lastHiLaggingSpan2Periods.length > laggingSpan2Periods) {\n variable.lastHiLaggingSpan2Periods.splice(0, 1)\n}\n\n// Lows\nif (variable.lastLowConversionPeriods.length > conversionPeriods) {\n variable.lastLowConversionPeriods.splice(0, 1)\n}\n\nif (variable.lastLowBasePeriods.length > basePeriods) {\n variable.lastLowBasePeriods.splice(0, 1)\n}\n\nif (variable.lastLowLaggingSpan2Periods.length > laggingSpan2Periods) {\n variable.lastLowLaggingSpan2Periods.splice(0, 1)\n}\n\n// Build a donchian function to calculate average of Highs and Lows\n\nfunction donchian (srcMax, srcMin, length) {\n\n let hiHigh = calculateHigh (srcMax, length) // higher highs\n let loLow = calculateLow (srcMin, length) // lower lows\n return (hiHigh + loLow) / 2 // Average\n}\n\nfunction calculateHigh (array, length) {\n /* We check we have enough values to make the calculation */\n if (array.length < length) { return 0 }\n return Math.max(...array)\n}\n\nfunction calculateLow (array, length) {\n /* We check we have enough values to make the calculation */\n if (array.length < length) { return 0 }\n return Math.min(...array)\n}\n\n// Build Ichimoku Clouds!\n\nvariable.conversionLine = donchian (variable.lastHiConversionPeriods, variable.lastLowConversionPeriods, conversionPeriods)\nvariable.baseLine = donchian (variable.lastHiBasePeriods, variable.lastLowBasePeriods, basePeriods)\nvariable.plotLeadLine1 = (variable.conversionLine + variable.baseLine) / 2\nvariable.plotLeadLine2 = donchian (variable.lastHiLaggingSpan2Periods, variable.lastLowLaggingSpan2Periods, laggingSpan2Periods)\n\n// Lagging Span is the close price plotted back \"displacement\" periods\n// Maybe there is no need of this variable... but I leave it here\nvariable.laggingSpan = candle.close\n\n/* We need to plot data in the past for the LaggingLine\nand in the future for LeadLine 1&2\nDefining past/forward Begin/End -> Values are then stored as new properties\nin Record definition so we can use them in Chart Points to plot\ndata in the past and in the future\n*/\n\nvariable.pastBegin = candle.begin - (candle.end-candle.begin)*displacement\nvariable.pastEnd = candle.end - (candle.end-candle.begin)*displacement\n\nvariable.forwardBegin = candle.begin + (candle.end-candle.begin)*displacement\nvariable.forwardEnd = candle.end + (candle.end-candle.begin)*displacement\n\n/* Syncronizing LeadLine 1&2 values with current candle\nso when writing strategy values are synced\n*/\n\nvariable.pastLeadLine1.push(variable.plotLeadLine1)\nif (variable.pastLeadLine1.length > displacement) {\n variable.pastLeadLine1.splice(0, 1)\n}\n\nif (variable.pastLeadLine1.length < displacement) {\n variable.leadLine1 = 0 \n} else {\n variable.leadLine1 = variable.pastLeadLine1[0] // LeadLine1 \n}\n\nvariable.pastLeadLine2.push(variable.plotLeadLine2)\nif (variable.pastLeadLine2.length > displacement) {\n variable.pastLeadLine2.splice(0, 1)\n}\n\nif (variable.pastLeadLine2.length < displacement) {\n variable.leadLine2 = 0 \n} else {\n variable.leadLine2 = variable.pastLeadLine2[0] // LeadLine2\n}\n\n// End of code :-)","project":"Superalgos","id":"899265ba-76d1-4525-b3c3-2e99d73daf7b","savedPayload":{"position":{"x":20851.81758930949,"y":17645.79749416949},"targetPosition":{"x":20857.70538438682,"y":17758.143316829377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5d5b6e50-f79b-4039-b835-b0bdc3e58653","savedPayload":{"position":{"x":20857.70538438682,"y":17758.143316829377},"targetPosition":{"x":20869.480974541482,"y":17982.834962149154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"/* Initialization Code*/\n\nvariable.lastHiConversionPeriods = []\nvariable.lastHiBasePeriods = []\nvariable.lastHiLaggingSpan2Periods = []\n\nvariable.lastLowConversionPeriods = []\nvariable.lastLowBasePeriods = []\nvariable.lastLowLaggingSpan2Periods = []\n\nvariable.pastLeadLine1 = []\nvariable.pastLeadLine2 = []","project":"Superalgos","id":"50245904-f0f3-43a9-8e7a-164fba5bc780","savedPayload":{"position":{"x":21152.532291223062,"y":17799.019287831583},"targetPosition":{"x":21058.181852329202,"y":17860.291179270775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0d1d1ab8-da87-44b2-aa06-1d1c0b034dc1","savedPayload":{"position":{"x":21058.181852329202,"y":17860.291179270775},"targetPosition":{"x":20869.480974541482,"y":17982.834962149154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"99f9d3e1-78fc-4e8d-b41a-d900687192f9","savedPayload":{"position":{"x":20869.480974541482,"y":17982.834962149154},"targetPosition":{"x":20665.185249658687,"y":18383.78789803392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ccd20b4b-2783-4b65-a1ac-087621e5e315","savedPayload":{"position":{"x":20665.185249658687,"y":18383.78789803392},"targetPosition":{"x":21109.6450029265,"y":18454.18340730202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Ichimoku","id":"c5dedee0-0553-457c-9a14-5c5d97907cb2"}}}],"id":"ab48285e-a196-4696-b8be-a25c373a64be","savedPayload":{"position":{"x":21109.6450029265,"y":18454.18340730202},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"plotters":[{"type":"Plotter","name":"Wave Trend","config":"{ \n \"codeName\": \"PlotterWaveTrend\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Wave Trend","config":"{ \n \"codeName\": \"waveTrend\", \n \"icon\": \"oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"WaveTrend + Signal + Histogram","project":"Superalgos","points":[{"type":"Point","name":"WAVETREND Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.waveTrend","project":"Superalgos","id":"2c5ca3e2-3f1d-41b8-8b16-8bec853896c1","savedPayload":{"position":{"x":20187.11850005987,"y":18762.713955427484},"targetPosition":{"x":20296.85435108448,"y":18787.49889036597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0067f22f-46a2-4735-86fe-5e5329285f92","savedPayload":{"position":{"x":20296.85435108448,"y":18787.49889036597},"targetPosition":{"x":20516.326053133696,"y":18837.06876024294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"WAVETREND End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.waveTrend","project":"Superalgos","id":"7bbd00d1-0fab-4055-97fe-7993b2677537","savedPayload":{"position":{"x":20311.932783724733,"y":18568.49913906378},"targetPosition":{"x":20380.06387352772,"y":18658.0223461235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"244f05f3-b51c-4427-8078-3b319ccd0092","savedPayload":{"position":{"x":20380.06387352772,"y":18658.0223461235},"targetPosition":{"x":20516.326053133696,"y":18837.06876024294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SIGNAL Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.waveTrendSignal","project":"Superalgos","id":"6d226efa-bc1b-4192-9fce-b3389535ec68","savedPayload":{"position":{"x":20532.38494972421,"y":18499.951033268673},"targetPosition":{"x":20527.03198419404,"y":18612.323608926763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"80f21e0b-76c2-48a9-b3d2-1ee3c3f774d9","savedPayload":{"position":{"x":20527.03198419404,"y":18612.323608926763},"targetPosition":{"x":20516.326053133696,"y":18837.06876024294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SIGNAL End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.waveTrendSignal","project":"Superalgos","id":"fc0f1fb3-ab13-4b01-8496-15c9c15a2b57","savedPayload":{"position":{"x":20745.32297953423,"y":18589.144058571022},"targetPosition":{"x":20668.990670734052,"y":18671.785625794993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"dd98f729-93b7-4509-bc62-3332f00cd3d0","savedPayload":{"position":{"x":20668.990670734052,"y":18671.785625794993},"targetPosition":{"x":20516.326053133696,"y":18837.06876024294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"WT3 Histogram Zero","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = (record.end - record.begin)/2 + record.begin\ny = 0","project":"Superalgos","id":"0e4d11eb-1949-4d16-a548-1bdee21dd59b","savedPayload":{"position":{"x":20851.11080246409,"y":18794.3438071618},"targetPosition":{"x":20739.515886020625,"y":18808.585458188845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8c7a44ee-f5e7-4c27-a129-2567f4c3787a","savedPayload":{"position":{"x":20739.515886020625,"y":18808.585458188845},"targetPosition":{"x":20516.326053133696,"y":18837.06876024294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"WT3 Histogram","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = (record.end - record.begin)/2 + record.begin\ny = record.wt3","project":"Superalgos","id":"3d279675-73d8-45b6-823a-3898e74e3ec2","savedPayload":{"position":{"x":20800.24912046422,"y":19019.535036134203},"targetPosition":{"x":20705.60809802071,"y":18958.71294417045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"041ff6d0-02aa-4a0f-81e1-8af53427e0bf","savedPayload":{"position":{"x":20705.60809802071,"y":18958.71294417045},"targetPosition":{"x":20516.326053133696,"y":18837.06876024294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"95b28bb4-1b05-45ca-b4b2-c36af8849126","savedPayload":{"position":{"x":20616.536679806988,"y":19159.348266730314},"targetPosition":{"x":20583.133137582558,"y":19051.921764567855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"82e2aee4-871f-4f54-85b0-2c34acdcbbdd","savedPayload":{"position":{"x":20583.133137582558,"y":19051.921764567855},"targetPosition":{"x":20516.326053133696,"y":18837.06876024294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"6a55e459-a04d-43ed-bd23-f0b8aac737bd","savedPayload":{"position":{"x":20385.934573212267,"y":19148.363334503236},"targetPosition":{"x":20429.398399852744,"y":19044.59847641647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2f1122e6-62ec-47c3-a29c-f3eff9169efd","savedPayload":{"position":{"x":20429.398399852744,"y":19044.59847641647},"targetPosition":{"x":20516.326053133696,"y":18837.06876024294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8a7d2782-832c-4732-94ac-b50588cdfe04","savedPayload":{"position":{"x":20516.326053133696,"y":18837.06876024294},"targetPosition":{"x":20116.350101238982,"y":19043.270695020274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"Upper+Lower Levels","project":"Superalgos","points":[{"type":"Point","name":"Upper 53 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 53","project":"Superalgos","id":"1b2a894d-474b-431f-945f-0d3a19b5e304","savedPayload":{"position":{"x":21105.11553481132,"y":18810.79492922037},"targetPosition":{"x":21223.48942211176,"y":18931.062070640553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"237d03b2-63ad-400c-9c3c-080bcc7c3d3b","savedPayload":{"position":{"x":21223.48942211176,"y":18931.062070640553},"targetPosition":{"x":21460.237196712646,"y":19171.59635348092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Upper 53 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 53","project":"Superalgos","id":"e1cddc05-9901-4b87-bbb3-a093dfdfc40c","savedPayload":{"position":{"x":21420.116906053896,"y":18666.93862315525},"targetPosition":{"x":21433.49033627348,"y":18835.15786659714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e042ff20-3176-415f-a4df-09a426fd79da","savedPayload":{"position":{"x":21433.49033627348,"y":18835.15786659714},"targetPosition":{"x":21460.237196712646,"y":19171.59635348092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Upper 60 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 60","project":"Superalgos","id":"d75c866e-9530-4d0f-94ca-8ec8b2f9d2ee","savedPayload":{"position":{"x":21753.891007183065,"y":18759.217277755437},"targetPosition":{"x":21656.006403692925,"y":18896.67696966393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ca64f2c6-152e-4081-8d38-1d8e80045206","savedPayload":{"position":{"x":21656.006403692925,"y":18896.67696966393},"targetPosition":{"x":21460.237196712646,"y":19171.59635348092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Upper 60 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 60","project":"Superalgos","id":"16da2601-ca28-4889-9155-12c687a9ec70","savedPayload":{"position":{"x":21950.26122679455,"y":19044.452684970496},"targetPosition":{"x":21786.919883433915,"y":19086.833907807304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1a202c3b-ff57-4907-b26f-3caabb330ec3","savedPayload":{"position":{"x":21786.919883433915,"y":19086.833907807304},"targetPosition":{"x":21460.237196712646,"y":19171.59635348092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Lower 53 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = -53","project":"Superalgos","id":"d0ce070f-1912-43ce-82c0-77def287c519","savedPayload":{"position":{"x":21917.34375672025,"y":19389.180027726063},"targetPosition":{"x":21764.97490338438,"y":19316.652136311015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cab7980f-9dae-4f54-9f56-bf377777b85a","savedPayload":{"position":{"x":21764.97490338438,"y":19316.652136311015},"targetPosition":{"x":21460.237196712646,"y":19171.59635348092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Lower 53 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = -53","project":"Superalgos","id":"b3aec95a-cdee-4816-8330-c5ac7ae90c79","savedPayload":{"position":{"x":21670.54104704485,"y":19632.097551129144},"targetPosition":{"x":21600.43976360078,"y":19478.59715191307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3e633fdd-4535-4a9d-9b2b-5577533e417d","savedPayload":{"position":{"x":21600.43976360078,"y":19478.59715191307},"targetPosition":{"x":21460.237196712646,"y":19171.59635348092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Lower 60 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = -60","project":"Superalgos","id":"f0a9d25e-ccda-4d95-b5e7-b8ad25e0615c","savedPayload":{"position":{"x":21325.334828532068,"y":19659.541446251893},"targetPosition":{"x":21370.30228459226,"y":19496.893081994902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3b48dde7-59c2-4c52-9aab-a8bfafcb7e99","savedPayload":{"position":{"x":21370.30228459226,"y":19496.893081994902},"targetPosition":{"x":21460.237196712646,"y":19171.59635348092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Lower 60 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = -60","project":"Superalgos","id":"f9969fe0-e387-4247-be00-e26ad15ca006","savedPayload":{"position":{"x":21043.25092736379,"y":19458.670409561448},"targetPosition":{"x":21182.246350480076,"y":19362.979057534605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"db3520c1-9af2-4715-af97-cca2986db9ac","savedPayload":{"position":{"x":21182.246350480076,"y":19362.979057534605},"targetPosition":{"x":21460.237196712646,"y":19171.59635348092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"427a710c-2eb9-4fb3-9023-e2dd30f58871","savedPayload":{"position":{"x":21460.237196712646,"y":19171.59635348092},"targetPosition":{"x":20116.350101238982,"y":19043.270695020274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Zero Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"8f897a11-c8bb-4e26-a8fb-46a3ee60b983","savedPayload":{"position":{"x":17157.379924716563,"y":24811.771417957705},"targetPosition":{"x":16971.20594634032,"y":24834.03124220595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"eaa77ce9-3146-4a18-a228-1b5dfb7f58d1","savedPayload":{"position":{"x":16971.20594634032,"y":24834.03124220595},"targetPosition":{"x":16785.031967964078,"y":24856.291066454196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero Line Begin","project":"Superalgos","id":"c0a1ab8a-0a7a-47c2-a789-28ab62426e9e","savedPayload":{"position":{"x":16932.41692322835,"y":24972.19587637056},"targetPosition":{"x":16785.031967964078,"y":24856.291066454196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Line Begin","id":"82e2aee4-871f-4f54-85b0-2c34acdcbbdd"}}},{"type":"Polygon Vertex","name":"Zero Line End","project":"Superalgos","id":"371298d7-7c65-4fbe-b4c2-e3fc54cd88dc","savedPayload":{"position":{"x":16807.291792212323,"y":25042.46504483044},"targetPosition":{"x":16785.031967964078,"y":24856.291066454196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Line End","id":"2f1122e6-62ec-47c3-a29c-f3eff9169efd"}}}],"id":"12090784-30fc-4f0b-853d-d5711b242112","savedPayload":{"position":{"x":20823.79788650749,"y":19599.613782618817},"targetPosition":{"x":20116.350101238982,"y":19043.270695020274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"WT3 Histogram","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"ba324dfe-27b0-41b5-ae10-247e0bc52baf","savedPayload":{"position":{"x":21065.342314449015,"y":19161.070830802157},"targetPosition":{"x":20840.915588661708,"y":19177.122147021983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.wt3 < 0","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","project":"Superalgos","id":"a268871c-78be-4354-a82c-2218c15a25df","savedPayload":{"position":{"x":21093.14400967011,"y":19549.7893224421},"targetPosition":{"x":20967.02979916591,"y":19363.45573473204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ae2c64bc-ed7f-470d-b4b0-7118b830ba3c","savedPayload":{"position":{"x":20967.02979916591,"y":19363.45573473204},"targetPosition":{"x":20840.915588661708,"y":19177.122147021983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0ce7f235-57d6-4ad6-9cf6-a47ac3004b2b","savedPayload":{"position":{"x":20840.915588661708,"y":19177.122147021983},"targetPosition":{"x":20638.53068473182,"y":19078.809631738877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"WT3 Histogram Zero","project":"Superalgos","id":"cbf4755c-88d8-43cd-9f7c-d2ba81e6a46a","savedPayload":{"position":{"x":20712.12097647824,"y":19291.434815949677},"targetPosition":{"x":20638.53068473182,"y":19078.809631738877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"WT3 Histogram Zero","id":"8c7a44ee-f5e7-4c27-a129-2567f4c3787a"}}},{"type":"Polygon Vertex","name":"WT3 Histogram","project":"Superalgos","id":"52313113-c0bc-49f4-8f64-a446e5b0fb3d","savedPayload":{"position":{"x":20540.218169448715,"y":19281.194535668765},"targetPosition":{"x":20638.53068473182,"y":19078.809631738877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"WT3 Histogram","id":"041ff6d0-02aa-4a0f-81e1-8af53427e0bf"}}}],"id":"6399921a-70ac-4c45-ba3d-b2745f291d67","savedPayload":{"position":{"x":20410.711268224662,"y":19893.771431863475},"targetPosition":{"x":20116.350101238982,"y":19043.270695020274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Wave Trend","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.75,\n \"lineWidth\": 0.75,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 1.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"5fb5a80e-4ed6-4131-9762-8a241e4e5de9","savedPayload":{"position":{"x":16628.726476464682,"y":24772.405594205025},"targetPosition":{"x":16563.96283159315,"y":24696.21064487796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"db105320-a505-4e27-be2a-ad5b2ff77051","savedPayload":{"position":{"x":16563.96283159315,"y":24696.21064487796},"targetPosition":{"x":16442.53099745903,"y":24553.345114889707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"WAVETREND Begin","project":"Superalgos","id":"d23cd662-a740-425f-b5cd-e0d22580f743","savedPayload":{"position":{"x":16299.665467470779,"y":24674.776949023828},"targetPosition":{"x":16442.53099745903,"y":24553.345114889707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"WAVETREND Begin","id":"0067f22f-46a2-4735-86fe-5e5329285f92"}}},{"type":"Polygon Vertex","name":"WAVETREND End","project":"Superalgos","id":"5ee7b2b6-96aa-42e1-92e8-78290f09964b","savedPayload":{"position":{"x":16321.09916332491,"y":24410.479584901455},"targetPosition":{"x":16442.53099745903,"y":24553.345114889707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"WAVETREND End","id":"244f05f3-b51c-4427-8078-3b319ccd0092"}}}],"id":"56bc1d31-4574-45ed-ae1e-a96c0a0ce57d","savedPayload":{"position":{"x":19904.1670592805,"y":19917.90110651146},"targetPosition":{"x":20116.350101238982,"y":19043.270695020274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Signal Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.75,\n \"lineWidth\": 0.75,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 1.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"038158de-f7fd-458e-869f-a834f376935e","savedPayload":{"position":{"x":16182.112216735088,"y":24588.81847469396},"targetPosition":{"x":16242.799369748238,"y":24509.338480612692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8e26548a-c9d4-48ff-8976-9f81905f1e98","savedPayload":{"position":{"x":16242.799369748238,"y":24509.338480612692},"targetPosition":{"x":16356.587781647897,"y":24360.313491710316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SIGNAL Begin","project":"Superalgos","id":"1bdf5db8-ea42-4af0-9498-ae171e29c0ab","savedPayload":{"position":{"x":16170.75064375408,"y":24385.229514254737},"targetPosition":{"x":16356.587781647897,"y":24360.313491710316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SIGNAL Begin","id":"80f21e0b-76c2-48a9-b3d2-1ee3c3f774d9"}}},{"type":"Polygon Vertex","name":"SIGNAL End","project":"Superalgos","id":"dd6a6d21-d877-4b1f-8e3c-09c92f8a5a5c","savedPayload":{"position":{"x":16207.56279274552,"y":24246.525079810657},"targetPosition":{"x":16356.587781647897,"y":24360.313491710316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SIGNAL End","id":"dd98f729-93b7-4509-bc62-3332f00cd3d0"}}}],"id":"b233d138-7074-43fb-bca6-d67bed33b3e9","savedPayload":{"position":{"x":19464.98946694442,"y":19664.341805354175},"targetPosition":{"x":20116.350101238982,"y":19043.270695020274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Upper 53","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [3,33],\n \"paletteColor\": \"UI_COLOR.TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"7a412ade-bfb4-4afd-8d02-6e98894ce228","savedPayload":{"position":{"x":16118.33121610582,"y":24249.36255847565},"targetPosition":{"x":16212.354626947064,"y":24215.309684679465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8141c484-6521-4a05-a3d9-66941314ad57","savedPayload":{"position":{"x":16212.354626947064,"y":24215.309684679465},"targetPosition":{"x":16388.648522274394,"y":24151.46054631162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Upper 53 Begin","project":"Superalgos","id":"5cf6a61d-0d4c-4390-b0e4-4b6f2614593f","savedPayload":{"position":{"x":16218.841754693825,"y":24071.950096156696},"targetPosition":{"x":16388.648522274394,"y":24151.46054631162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Upper 53 Begin","id":"237d03b2-63ad-400c-9c3c-080bcc7c3d3b"}}},{"type":"Polygon Vertex","name":"Upper 53 End","project":"Superalgos","id":"6336fba4-1e3f-4574-a645-f8562c8cc41d","savedPayload":{"position":{"x":16324.79938390655,"y":23975.16665098429},"targetPosition":{"x":16388.648522274394,"y":24151.46054631162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Upper 53 End","id":"e042ff20-3176-415f-a4df-09a426fd79da"}}}],"id":"6c967bd9-801d-44bc-b8e2-30ca4763bb84","savedPayload":{"position":{"x":19232.614273702548,"y":19213.59681494464},"targetPosition":{"x":20116.350101238982,"y":19043.270695020274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Upper 60","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"731315a8-1f99-43de-bdca-06c05c0b277a","savedPayload":{"position":{"x":16124.88214145556,"y":23779.383254160573},"targetPosition":{"x":16240.153748304958,"y":23835.62880942335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9caf63a1-7446-4480-8f2f-717e990a1afa","savedPayload":{"position":{"x":16240.153748304958,"y":23835.62880942335},"targetPosition":{"x":16553.620710963998,"y":23988.7182859496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Upper 60 Begin","project":"Superalgos","id":"ded5d9fd-2b8d-4d29-8921-9109c514dc36","savedPayload":{"position":{"x":16715.456938895066,"y":23656.77946906171},"targetPosition":{"x":16553.620710963998,"y":23988.7182859496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Upper 60 Begin","id":"ca64f2c6-152e-4081-8d38-1d8e80045206"}}},{"type":"Polygon Vertex","name":"Upper 60 End","project":"Superalgos","id":"2ce948e8-dde1-47f8-a04f-728227d80408","savedPayload":{"position":{"x":16885.351552619795,"y":24150.444672623653},"targetPosition":{"x":16553.620710963998,"y":23988.7182859496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Upper 60 End","id":"1a202c3b-ff57-4907-b26f-3caabb330ec3"}}}],"id":"7761e0e0-697e-48b4-bbe4-0ac0b22be26f","savedPayload":{"position":{"x":19280.818961524517,"y":18708.77448492598},"targetPosition":{"x":20116.350101238982,"y":19043.270695020274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Lower 53","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [3,33],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [3,33],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"3acb3136-b9e9-424f-9ddc-50309522959a","savedPayload":{"position":{"x":15989.221339652351,"y":24271.339338091966},"targetPosition":{"x":16087.83677502417,"y":24287.9223386174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"59331a82-0691-4f26-aaa9-b871f57e7118","savedPayload":{"position":{"x":16087.83677502417,"y":24287.9223386174},"targetPosition":{"x":16272.740716346332,"y":24319.015464602595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Lower 53 Begin","project":"Superalgos","id":"111eef17-b3f6-4e81-988c-9dea12ec48b0","savedPayload":{"position":{"x":16163.98004580173,"y":24166.282473593157},"targetPosition":{"x":16272.740716346332,"y":24319.015464602595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Lower 53 Begin","id":"cab7980f-9dae-4f54-9f56-bf377777b85a"}}},{"type":"Polygon Vertex","name":"Lower 53 End","project":"Superalgos","id":"f9f7600a-d00a-440d-bdfc-7fb43df81e79","savedPayload":{"position":{"x":16303.833842331525,"y":24134.111523280433},"targetPosition":{"x":16272.740716346332,"y":24319.015464602595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Lower 53 End","id":"3e633fdd-4535-4a9d-9b2b-5577533e417d"}}}],"id":"8058bc7b-06c0-41c1-972b-62e146a7515d","savedPayload":{"position":{"x":19594.298882624902,"y":18310.152338174972},"targetPosition":{"x":20116.350101238982,"y":19043.270695020274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Lower 60","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"13ec6d93-ce9f-48f1-a405-9cdfe5cb1abe","savedPayload":{"position":{"x":16693.626676836186,"y":23839.226058948567},"targetPosition":{"x":16777.2335369284,"y":23894.088550192773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"5006eb12-faac-4f3a-8814-dba7931a70e5","savedPayload":{"position":{"x":16777.2335369284,"y":23894.088550192773},"targetPosition":{"x":16933.996399601307,"y":23996.955721275663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Lower 60 Begin","project":"Superalgos","id":"308980bc-2ba9-4756-bf65-b06c40f19b31","savedPayload":{"position":{"x":17036.863570684196,"y":23840.192858602757},"targetPosition":{"x":16933.996399601307,"y":23996.955721275663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Lower 60 Begin","id":"3b48dde7-59c2-4c52-9aab-a8bfafcb7e99"}}},{"type":"Polygon Vertex","name":"Lower 60 End","project":"Superalgos","id":"d5881d46-60c2-4f18-80ef-9defa218d9a5","savedPayload":{"position":{"x":17117.58255706972,"y":23958.845712275623},"targetPosition":{"x":16933.996399601307,"y":23996.955721275663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Lower 60 End","id":"db3520c1-9af2-4715-af97-cca2986db9ac"}}}],"id":"d4fd8b32-5d47-4bdd-bbea-239a78a31f70","savedPayload":{"position":{"x":20073.526376997615,"y":18144.290089755566},"targetPosition":{"x":20116.350101238982,"y":19043.270695020274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"fd680561-143c-44f1-a9cb-f0c185f6769b","savedPayload":{"position":{"x":20116.350101238982,"y":19043.270695020274},"targetPosition":{"x":20566.350101238982,"y":18263.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Wave Trend","config":"{ \n \"codeName\": \"waveTrend\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Wave Trend","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.waveTrend","project":"Superalgos","id":"332d453d-9874-4936-b435-7d09042620d9","savedPayload":{"position":{"x":19516.9720477059,"y":17532.667829615144},"targetPosition":{"x":19951.638669535983,"y":17649.13639991128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"540f54ff-b28d-4130-9aa4-deba874115e8","savedPayload":{"position":{"x":19633.440618002038,"y":17330.938348377334},"targetPosition":{"x":19951.638669535983,"y":17649.13639991128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ab66b69f-d80d-40bb-8c50-9948cec124b5","savedPayload":{"position":{"x":19951.638669535983,"y":17649.13639991128},"targetPosition":{"x":20341.350101238982,"y":17874.13639991128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Signal","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.waveTrendSignal","project":"Superalgos","id":"a3cc36f6-bb87-4038-8774-d115eebf8950","savedPayload":{"position":{"x":20116.350101238982,"y":17034.42496820828},"targetPosition":{"x":20341.350101238982,"y":17424.13639991128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"0fc2adb9-86a3-47b3-a7a3-a602e3a829d5","savedPayload":{"position":{"x":20566.350101238982,"y":17034.42496820828},"targetPosition":{"x":20341.350101238982,"y":17424.13639991128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"901b3dfa-790a-4669-b0d6-97a99262293f","savedPayload":{"position":{"x":20341.350101238982,"y":17424.13639991128},"targetPosition":{"x":20341.350101238982,"y":17874.13639991128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c902b183-78b4-43f5-a537-75795f838954","savedPayload":{"position":{"x":20341.350101238982,"y":17874.13639991128},"targetPosition":{"x":20566.350101238982,"y":18263.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cfa6bcb9-8d18-4658-81f4-1f7d55adc742","savedPayload":{"position":{"x":20566.350101238982,"y":18263.84783161428},"targetPosition":{"x":21016.350101238982,"y":18263.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f991328f-70b7-492d-baf5-ec38d70e737b","savedPayload":{"position":{"x":21052.350101238982,"y":18277.84783161428},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Super Trend","config":"{ \n \"codeName\": \"PlotterSuperTrend\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Super Trend","config":"{ \n \"codeName\": \"superTrend\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"UP Trend Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.uptrend","project":"Superalgos","id":"05d1244b-e39d-4ec3-a899-4690af33f70d","savedPayload":{"position":{"x":20869.841958176403,"y":18524.963273135036},"targetPosition":{"x":20645.150312856626,"y":18536.7388632897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"807b982d-7dd4-4b96-ba1f-460b1b6b4fb7","savedPayload":{"position":{"x":20645.150312856626,"y":18536.7388632897},"targetPosition":{"x":20420.45866753685,"y":18548.51445344436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"UP Trend End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.uptrend","project":"Superalgos","id":"709b85bb-ad49-4adb-a651-1b2cecc80b27","savedPayload":{"position":{"x":20581.724244832236,"y":18968.625645368098},"targetPosition":{"x":20501.091456184542,"y":18758.57004940623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"adf1bd2c-2a5a-4243-9591-2a462635b074","savedPayload":{"position":{"x":20501.091456184542,"y":18758.57004940623},"targetPosition":{"x":20420.45866753685,"y":18548.51445344436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Down Trend Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.downtrend","project":"Superalgos","id":"cf21fd4d-3219-4ab5-994e-aa4b152645ce","savedPayload":{"position":{"x":20070.74298488121,"y":18831.70862941679},"targetPosition":{"x":20245.60082620903,"y":18690.111541430575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6e276847-0fa5-4473-898f-ccd4c63591c4","savedPayload":{"position":{"x":20245.60082620903,"y":18690.111541430575},"targetPosition":{"x":20420.45866753685,"y":18548.51445344436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Down Trend End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.downtrend","project":"Superalgos","id":"89c531b8-c842-44cb-ad8f-99d4a9f61f4e","savedPayload":{"position":{"x":20043.05691196141,"y":18303.4268876876},"targetPosition":{"x":20231.75778974913,"y":18425.97067056598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ab5aabfe-781f-41d6-a809-95299392ca90","savedPayload":{"position":{"x":20231.75778974913,"y":18425.97067056598},"targetPosition":{"x":20420.45866753685,"y":18548.51445344436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"603526b3-a7a3-4a2b-9233-8a7414077f20","savedPayload":{"position":{"x":20420.45866753685,"y":18548.51445344436},"targetPosition":{"x":20536.927237832984,"y":18113.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"UP Trend","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","project":"Superalgos","id":"41571575-f05c-407e-969a-df51b088ef60","savedPayload":{"position":{"x":20147.215806129985,"y":18773.51445344436},"targetPosition":{"x":20088.981520981917,"y":18556.18114252932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.trend != 1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"opacity\": 0.0,\n \"lineWidth\": 0,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n}","project":"Superalgos","id":"b3ab1b97-8eee-4c8b-be96-a090897e42ad","savedPayload":{"position":{"x":19770.78346944797,"y":18874.379194063265},"targetPosition":{"x":19929.882495214944,"y":18715.280168296293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4070b155-77b5-4c09-b1b4-6ebe49cfcf1d","savedPayload":{"position":{"x":19929.882495214944,"y":18715.280168296293},"targetPosition":{"x":20088.981520981917,"y":18556.18114252932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fe128ca4-0803-4db3-b409-8c6a3d31b47b","savedPayload":{"position":{"x":20088.981520981917,"y":18556.18114252932},"targetPosition":{"x":20147.215806129985,"y":18338.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"UP Trend Begin","project":"Superalgos","id":"87966102-abf2-4ba4-a9b1-2e29faadfb43","savedPayload":{"position":{"x":19757.504374426986,"y":18563.84783161428},"targetPosition":{"x":20147.215806129985,"y":18338.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"UP Trend Begin","id":"807b982d-7dd4-4b96-ba1f-460b1b6b4fb7"}}},{"type":"Polygon Vertex","name":"UP Trend End","project":"Superalgos","id":"04f54fc4-3887-414c-91b2-9d71d70ec519","savedPayload":{"position":{"x":19712.549184299904,"y":18222.379261318143},"targetPosition":{"x":20147.215806129985,"y":18338.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"UP Trend End","id":"adf1bd2c-2a5a-4243-9591-2a462635b074"}}}],"id":"e51152bb-9000-4200-88c1-632aaf05333b","savedPayload":{"position":{"x":20147.215806129985,"y":18338.84783161428},"targetPosition":{"x":20536.927237832984,"y":18113.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Down Trend","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"91670c53-5e35-4144-8fac-6f8feb43e59d","savedPayload":{"position":{"x":21033.20916918861,"y":16474.704063229266},"targetPosition":{"x":21192.30819495558,"y":16633.80308899624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.trend != -1","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"opacity\": 0.0,\n \"lineWidth\": 0,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n}","project":"Superalgos","id":"2395d71a-99ee-4330-84d4-1837025d78d6","savedPayload":{"position":{"x":21308.776765251718,"y":16199.136467166158},"targetPosition":{"x":21250.54248010365,"y":16416.4697780812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ba17827a-0425-4044-8e15-d29792f800d5","savedPayload":{"position":{"x":21250.54248010365,"y":16416.4697780812},"targetPosition":{"x":21192.30819495558,"y":16633.80308899624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a97ad15a-c206-4b75-8d8e-1c95197b9b57","savedPayload":{"position":{"x":21192.30819495558,"y":16633.80308899624},"targetPosition":{"x":21250.54248010365,"y":16851.13639991128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Down Trend Begin","project":"Superalgos","id":"54f9e103-c71f-4ec3-b950-0df008f2e6fa","savedPayload":{"position":{"x":21475.54248010365,"y":16461.42496820828},"targetPosition":{"x":21250.54248010365,"y":16851.13639991128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Down Trend Begin","id":"6e276847-0fa5-4473-898f-ccd4c63591c4"}}},{"type":"Polygon Vertex","name":"Down Trend End","project":"Superalgos","id":"d57924a2-920b-40ec-8b56-3ae304ef2979","savedPayload":{"position":{"x":21685.20910193373,"y":16734.667829615144},"targetPosition":{"x":21250.54248010365,"y":16851.13639991128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Down Trend End","id":"ab5aabfe-781f-41d6-a809-95299392ca90"}}}],"id":"4f25fc3c-5e09-4feb-bcfa-7ac9e729a4dc","savedPayload":{"position":{"x":20311.927237832984,"y":17724.13639991128},"targetPosition":{"x":20536.927237832984,"y":18113.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"cff527e9-cc21-4872-9732-2b713890e8b8","savedPayload":{"position":{"x":20536.927237832984,"y":18113.84783161428},"targetPosition":{"x":20796.734858968317,"y":17963.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Super Trend","config":"{ \n \"codeName\": \"superTrend\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Up Trend","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"Up Trend","code":"record.uptrend","project":"Superalgos","id":"5b0f1653-7d8e-4ed1-8dec-70dd6701c16b","savedPayload":{"position":{"x":20404.650439272085,"y":17300.96336120078},"targetPosition":{"x":20614.706035233954,"y":17381.596149848472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"1384fd63-8258-44d4-ab3f-5f18c3eaaaa1","savedPayload":{"position":{"x":20473.10894724774,"y":17206.738308520653},"targetPosition":{"x":20614.706035233954,"y":17381.596149848472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"07dfc209-e925-4f10-bbc9-608896333744","savedPayload":{"position":{"x":20614.706035233954,"y":17381.596149848472},"targetPosition":{"x":20796.734858968317,"y":17513.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Down Trend","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.downtrend","project":"Superalgos","id":"14561cfc-7d72-4cb5-8567-7892d8ae6a8c","savedPayload":{"position":{"x":20604.662252355574,"y":17111.15923766015},"targetPosition":{"x":20727.206035233954,"y":17299.86011544787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"9d950966-b1bb-406e-b3b3-d1fdaea7577e","savedPayload":{"position":{"x":20715.43044507929,"y":17075.168470128094},"targetPosition":{"x":20727.206035233954,"y":17299.86011544787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3be37b3c-92d2-4f4c-a0d3-644acc172106","savedPayload":{"position":{"x":20727.206035233954,"y":17299.86011544787},"targetPosition":{"x":20796.734858968317,"y":17513.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Trend","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.trend","project":"Superalgos","id":"d8579565-736a-48ec-af20-e7cd3cdf2294","savedPayload":{"position":{"x":20878.039272857342,"y":17075.168470128094},"targetPosition":{"x":20866.26368270268,"y":17299.86011544787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"ba78eeae-12db-4b4a-9e68-2b30598fc986","savedPayload":{"position":{"x":20988.80746558106,"y":17111.15923766015},"targetPosition":{"x":20866.26368270268,"y":17299.86011544787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c265c3b9-bd32-49fe-8676-d2b93e513455","savedPayload":{"position":{"x":20866.26368270268,"y":17299.86011544787},"targetPosition":{"x":20796.734858968317,"y":17513.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ATR N Period","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.atrNPeriod","project":"Superalgos","id":"48978331-2944-4c90-8ffe-896ef6ce0a52","savedPayload":{"position":{"x":21024.52155504871,"y":17278.82228586368},"targetPosition":{"x":20978.76368270268,"y":17381.596149848472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"00b8eb7b-440e-4e3b-81ee-bd1de53de6b0","savedPayload":{"position":{"x":21090.64739593161,"y":17369.83669773086},"targetPosition":{"x":20978.76368270268,"y":17381.596149848472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cd7a1729-5463-4d4b-bec3-eb94685354a1","savedPayload":{"position":{"x":20978.76368270268,"y":17381.596149848472},"targetPosition":{"x":20796.734858968317,"y":17513.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4e328571-7ea2-44a4-8239-a8bfd6614a6d","savedPayload":{"position":{"x":20796.734858968317,"y":17513.84783161428},"targetPosition":{"x":20796.734858968317,"y":17963.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"acfb7d6b-e877-4fb0-bef4-3923c049244b","savedPayload":{"position":{"x":20796.734858968317,"y":17963.84783161428},"targetPosition":{"x":21056.54248010365,"y":18113.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c6fdad31-1843-49e2-abe3-51fe7ed4a836","savedPayload":{"position":{"x":21109.6450029265,"y":18101.512255926536},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Donchian Channel","config":"{ \n \"codeName\": \"PlotterDonchianChannel\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Donchian Channel","config":"{ \n \"codeName\": \"donchian\", \n \"icon\": \"oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"hiHigh Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.hiHigh","project":"Superalgos","id":"55651897-b11c-45f5-a388-b2015d93f406","savedPayload":{"position":{"x":21501.4755458967,"y":17360.015278897445},"targetPosition":{"x":21352.176069369405,"y":17191.6862371112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"50921056-6afc-4c1f-a6b9-3caa26d760af","savedPayload":{"position":{"x":21352.176069369405,"y":17191.6862371112},"targetPosition":{"x":21202.87659284211,"y":17023.357195324956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"hiHigh End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.hiHigh","project":"Superalgos","id":"ba3e4c9d-b10b-4e21-9452-f8fd45fa0c63","savedPayload":{"position":{"x":21125.840106353022,"y":17466.714139275784},"targetPosition":{"x":21164.358349597565,"y":17245.03566730037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"922ff9da-5d6f-4db2-b052-15b2a9a33fcd","savedPayload":{"position":{"x":21164.358349597565,"y":17245.03566730037},"targetPosition":{"x":21202.87659284211,"y":17023.357195324956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"loLow Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.loLow","project":"Superalgos","id":"8103aa93-0697-45da-bbbc-3872ec54fe9a","savedPayload":{"position":{"x":20906.880182505698,"y":17185.506432350485},"targetPosition":{"x":21005.545652617835,"y":17131.45668667531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8e0ce244-ab42-4e17-a9ce-0c7019722135","savedPayload":{"position":{"x":21005.545652617835,"y":17131.45668667531},"targetPosition":{"x":21202.87659284211,"y":17023.357195324956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"loLow End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.loLow","project":"Superalgos","id":"03e5140a-a35e-4f09-82cd-15b5ecc94027","savedPayload":{"position":{"x":20891.552471245835,"y":16893.036278691015},"targetPosition":{"x":20995.327178444593,"y":16936.47658423566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c4f84735-1bcb-4ff2-9611-ea6f7a344352","savedPayload":{"position":{"x":20995.327178444593,"y":16936.47658423566},"targetPosition":{"x":21202.87659284211,"y":17023.357195324956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Mid Point Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.midPoint","project":"Superalgos","id":"bb353f64-f496-4db0-84c5-650922328ff7","savedPayload":{"position":{"x":21110.65817340271,"y":16698.70043331914},"targetPosition":{"x":21141.397646549176,"y":16806.919353987745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"881ca3b6-39c7-4930-a596-b3aad84ab0ad","savedPayload":{"position":{"x":21141.397646549176,"y":16806.919353987745},"targetPosition":{"x":21202.87659284211,"y":17023.357195324956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Mid Point End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.midPoint","project":"Superalgos","id":"a016b845-9a98-4e67-a4c5-43f7fb8aa3fc","savedPayload":{"position":{"x":21399.206226310387,"y":16748.83775152869},"targetPosition":{"x":21333.763015154294,"y":16840.344232794112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9493a69b-1a23-4b91-928f-88edebf47e71","savedPayload":{"position":{"x":21333.763015154294,"y":16840.344232794112},"targetPosition":{"x":21202.87659284211,"y":17023.357195324956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"63f034d5-a5e4-47e1-8949-47da43c99b36","savedPayload":{"position":{"x":20467.830036640586,"y":17586.03500079752},"targetPosition":{"x":20907.9964569708,"y":17492.47473992953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"hiHigh","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"65953e73-b3e0-46d9-9eda-6cc40a7f5738","savedPayload":{"position":{"x":20073.7845637797,"y":17585.474516733975},"targetPosition":{"x":20353.85869172886,"y":17477.964131870383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f22dc14f-5ba4-49b0-9c92-d8cba9c6b895","savedPayload":{"position":{"x":20353.85869172886,"y":17477.964131870383},"targetPosition":{"x":20633.93281967802,"y":17370.45374700679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"hiHigh Begin","project":"Superalgos","id":"45dea2ad-ffd9-4e03-84e5-fddaa7df9365","savedPayload":{"position":{"x":20359.86918238524,"y":17248.432754084053},"targetPosition":{"x":20633.93281967802,"y":17370.45374700679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"hiHigh Begin","id":"50921056-6afc-4c1f-a6b9-3caa26d760af"}}},{"type":"Polygon Vertex","name":"hiHigh End","project":"Superalgos","id":"261569f5-3798-45cf-94e9-377f8163be3b","savedPayload":{"position":{"x":20526.422434814427,"y":17090.379619057632},"targetPosition":{"x":20633.93281967802,"y":17370.45374700679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"hiHigh End","id":"922ff9da-5d6f-4db2-b052-15b2a9a33fcd"}}}],"id":"83f6ab27-cdde-40d2-ae59-18b0bc64747b","savedPayload":{"position":{"x":20633.93281967802,"y":17370.45374700679},"targetPosition":{"x":20907.9964569708,"y":17492.47473992953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"loLow","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"81ad12f9-de32-439d-b54f-b8173a9d7e83","savedPayload":{"position":{"x":21856.90457949552,"y":16711.316284191722},"targetPosition":{"x":21919.278086740847,"y":17004.760564411863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9d836367-daba-432f-901d-f0c89c5d7d70","savedPayload":{"position":{"x":21919.278086740847,"y":17004.760564411863},"targetPosition":{"x":21981.651593986175,"y":17298.204844632004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"loLow Begin","project":"Superalgos","id":"09df170c-f916-4d62-a7c6-eed4a9a575c4","savedPayload":{"position":{"x":22145.043304490682,"y":17046.603674248378},"targetPosition":{"x":21981.651593986175,"y":17298.204844632004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"loLow Begin","id":"8e0ce244-ab42-4e17-a9ce-0c7019722135"}}},{"type":"Polygon Vertex","name":"loLow End","project":"Superalgos","id":"166b6f98-ae48-4253-8554-6efa78fe8c7b","savedPayload":{"position":{"x":22275.095874206316,"y":17235.831337386677},"targetPosition":{"x":21981.651593986175,"y":17298.204844632004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"loLow End","id":"c4f84735-1bcb-4ff2-9611-ea6f7a344352"}}}],"id":"955b060d-1916-499a-b281-6ad2d778e470","savedPayload":{"position":{"x":20757.9964569708,"y":17232.667118794197},"targetPosition":{"x":20907.9964569708,"y":17492.47473992953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Mid Point","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [5,5],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"lineWidth\": 2,\n \"lineDash\": [5,5],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"0babee6c-8476-4607-9c4b-8755442c337c","savedPayload":{"position":{"x":20561.76276132119,"y":16727.83059444487},"targetPosition":{"x":20750.558878636144,"y":16960.97438288196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"70981c2b-54c8-4621-b6b3-c3f31d20ba9e","savedPayload":{"position":{"x":20750.558878636144,"y":16960.97438288196},"targetPosition":{"x":20939.354995951096,"y":17194.11817131905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Mid Point Begin","project":"Superalgos","id":"18757d43-015d-4613-8eec-c62d45430523","savedPayload":{"position":{"x":20970.713534931394,"y":16895.761602708568},"targetPosition":{"x":20939.354995951096,"y":17194.11817131905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Mid Point Begin","id":"881ca3b6-39c7-4930-a596-b3aad84ab0ad"}}},{"type":"Polygon Vertex","name":"Mid Point End","project":"Superalgos","id":"caeda3ac-dcce-419a-8b02-385fde1add1d","savedPayload":{"position":{"x":21172.498784388186,"y":17005.322054004097},"targetPosition":{"x":20939.354995951096,"y":17194.11817131905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Mid Point End","id":"9493a69b-1a23-4b91-928f-88edebf47e71"}}}],"id":"e14b4a49-8143-4d23-91b2-012ccb487ed0","savedPayload":{"position":{"x":20939.354995951096,"y":17194.11817131905},"targetPosition":{"x":20907.9964569708,"y":17492.47473992953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"e30d5478-bee6-4de2-aaba-d2b7f3c9fcc7","savedPayload":{"position":{"x":20907.9964569708,"y":17492.47473992953},"targetPosition":{"x":21130.939904614017,"y":17693.21392183719},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Donchian Channel","config":"{ \n \"codeName\": \"donchian\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Higher Highs","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"Higher Highs","code":"record.hiHigh","project":"Superalgos","id":"f20d1bbf-730c-42fe-89d5-dae9247a3e87","savedPayload":{"position":{"x":20762.619744098327,"y":17011.971321311557},"targetPosition":{"x":21029.921701354837,"y":17148.16847123342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"e9f188e5-39f2-4829-a984-20692feec630","savedPayload":{"position":{"x":21014.220914481954,"y":16848.57961080705},"targetPosition":{"x":21029.921701354837,"y":17148.16847123342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fc38d930-d64d-43b1-ab5c-0298399637c7","savedPayload":{"position":{"x":21029.921701354837,"y":17148.16847123342},"targetPosition":{"x":21193.313411859344,"y":17399.769641617047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Lower Lows","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.loLow","project":"Superalgos","id":"f74f46f9-e98b-480d-a83a-ea771ac8798f","savedPayload":{"position":{"x":21162.98182079219,"y":16821.00840650836},"targetPosition":{"x":21255.68691910467,"y":17106.325361396906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"d1dd430a-4173-4e15-b63e-a79ce99f3a1f","savedPayload":{"position":{"x":21456.42610101233,"y":16883.38191375369},"targetPosition":{"x":21255.68691910467,"y":17106.325361396906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d335f544-6464-4427-9e05-65e0cee03904","savedPayload":{"position":{"x":21255.68691910467,"y":17106.325361396906},"targetPosition":{"x":21193.313411859344,"y":17399.769641617047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Mid Point","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.midPoint","project":"Superalgos","id":"e463947a-45b3-43ed-ac68-c7bee6d9e15d","savedPayload":{"position":{"x":21581.111732164834,"y":16969.07597385603},"targetPosition":{"x":21444.91458224297,"y":17236.37793111254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1,\n \"fontSize\": 14\n}\n\n\n\n","project":"Superalgos","id":"38521ffb-a1aa-4cea-be3f-2879dcd927a2","savedPayload":{"position":{"x":21744.503442669342,"y":17220.677144239657},"targetPosition":{"x":21444.91458224297,"y":17236.37793111254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3019461a-f4d1-4530-8f20-364f06dce9d3","savedPayload":{"position":{"x":21444.91458224297,"y":17236.37793111254},"targetPosition":{"x":21193.313411859344,"y":17399.769641617047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"239cb3b7-204e-4b5a-969f-d3cc6eec864c","savedPayload":{"position":{"x":21193.313411859344,"y":17399.769641617047},"targetPosition":{"x":21130.939904614017,"y":17693.21392183719},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dd7b5cd7-3b5e-4809-949e-777ddcce4648","savedPayload":{"position":{"x":21130.939904614017,"y":17693.21392183719},"targetPosition":{"x":21223.6450029265,"y":17978.530876725734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"45f9ecae-362e-4302-ba60-b6d7f949c9bc","savedPayload":{"position":{"x":21259.6450029265,"y":17992.530876725734},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Directional Movement Index (DMI)","config":"{ \n \"codeName\": \"Plotter-DMI\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"DMI Directional Movement","config":"{ \n \"codeName\": \"DMI\", \n \"icon\": \"oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"ADX +DI -DI","project":"Superalgos","points":[{"type":"Point","name":"ADX Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.adx","project":"Superalgos","id":"9a5c382e-9075-4fd9-a6c3-3b4595bb9ecb","savedPayload":{"position":{"x":21309.810447616328,"y":17808.40510073104},"targetPosition":{"x":21203.45955868158,"y":17610.12628586977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fae38925-e197-4984-bbf3-4f5cf8cdde87","savedPayload":{"position":{"x":21203.45955868158,"y":17610.12628586977},"targetPosition":{"x":20990.75778081209,"y":17213.568656147232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"ADX End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.adx","project":"Superalgos","id":"968b241e-722e-4a8b-aaf4-ee34cb41daaa","savedPayload":{"position":{"x":20724.622005525394,"y":17833.88853259208},"targetPosition":{"x":20813.33393062096,"y":17627.115240443796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8cc5bc3c-d019-4a1a-a069-f38d61131e7f","savedPayload":{"position":{"x":20813.33393062096,"y":17627.115240443796},"targetPosition":{"x":20990.75778081209,"y":17213.568656147232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"+DI Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.plusDI","project":"Superalgos","id":"cc9624f8-ae30-4d30-9336-103a59a3bfd1","savedPayload":{"position":{"x":20339.83923040581,"y":17392.258445270687},"targetPosition":{"x":20556.812080541236,"y":17332.695182229534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ab40f6c8-026c-4c9e-970b-e1da797e83d7","savedPayload":{"position":{"x":20556.812080541236,"y":17332.695182229534},"targetPosition":{"x":20990.75778081209,"y":17213.568656147232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"+DI End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.plusDI","project":"Superalgos","id":"f4f90058-af66-4c40-822f-ccf546ac016f","savedPayload":{"position":{"x":20445.211400060816,"y":16816.07130213191},"targetPosition":{"x":20627.060193644575,"y":16948.570420137017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cee77e2a-f5ac-4f21-91dc-21fd2a63ffd4","savedPayload":{"position":{"x":20627.060193644575,"y":16948.570420137017},"targetPosition":{"x":20990.75778081209,"y":17213.568656147232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-DI Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.minusDI","project":"Superalgos","id":"3abacd0d-e595-4322-9e4f-6e7462a6ce06","savedPayload":{"position":{"x":20961.391121539647,"y":16539.20777403501},"targetPosition":{"x":20971.180007963794,"y":16763.994734739084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"20776211-c287-4689-9048-83655653dac9","savedPayload":{"position":{"x":20971.180007963794,"y":16763.994734739084},"targetPosition":{"x":20990.75778081209,"y":17213.568656147232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"-DI End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.minusDI","project":"Superalgos","id":"214b0afe-f312-490f-943b-66f6e302086d","savedPayload":{"position":{"x":21499.68453642131,"y":16770.15174462369},"targetPosition":{"x":21330.04228455157,"y":16917.957381798205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f0a11eef-05f1-474f-89e7-3bee3ab07a67","savedPayload":{"position":{"x":21330.04228455157,"y":16917.957381798205},"targetPosition":{"x":20990.75778081209,"y":17213.568656147232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0bea3584-667d-4f44-a761-cd73fde6da89","savedPayload":{"position":{"x":20429.098202389174,"y":17644.731722693676},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Chart Points","name":"BANDS","project":"Superalgos","points":[{"type":"Point","name":"Band 50 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 50","project":"Superalgos","id":"8153d621-7b8c-4d0b-a6da-8c82b1a09e2a","savedPayload":{"position":{"x":20256.729390350236,"y":18091.691741064627},"targetPosition":{"x":20288.04333806625,"y":17868.881425597774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3190a724-bdd5-42d8-8f98-cb0607d80ce8","savedPayload":{"position":{"x":20288.04333806625,"y":17868.881425597774},"targetPosition":{"x":20350.67123349828,"y":17423.260794664067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Band 50 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 50","project":"Superalgos","id":"28976ae7-de81-4013-a436-036b58dfdae5","savedPayload":{"position":{"x":20033.777928617805,"y":18019.250419843844},"targetPosition":{"x":20139.40903024463,"y":17820.587211450584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"75de4dca-059a-43c8-97c0-a17cefd70e72","savedPayload":{"position":{"x":20139.40903024463,"y":17820.587211450584},"targetPosition":{"x":20350.67123349828,"y":17423.260794664067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Band 75 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 75","project":"Superalgos","id":"28f64dde-54a2-4fd3-b2bd-9b1815490769","savedPayload":{"position":{"x":19849.04847630104,"y":17874.9239539563},"targetPosition":{"x":20016.25606203345,"y":17724.369567525555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"226d3395-f608-4bf7-9526-6cffaf7b734d","savedPayload":{"position":{"x":20016.25606203345,"y":17724.369567525555},"targetPosition":{"x":20350.67123349828,"y":17423.260794664067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Band 75 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 75","project":"Superalgos","id":"c1a16632-8d96-4f3e-bdb9-ee30b9c2f300","savedPayload":{"position":{"x":19724.8221316657,"y":17676.12024521981},"targetPosition":{"x":19933.438498943226,"y":17591.83376170123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"85418e43-44b8-47a0-8172-767bdd742b05","savedPayload":{"position":{"x":19933.438498943226,"y":17591.83376170123},"targetPosition":{"x":20350.67123349828,"y":17423.260794664067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Band 100 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 100","project":"Superalgos","id":"7bdd757b-7e1f-40b6-b46f-fae1ee4b5b4a","savedPayload":{"position":{"x":19676.082425260392,"y":17446.817954938255},"targetPosition":{"x":19900.945361339687,"y":17438.965568180192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f5c6c92d-c739-4f17-964d-080240fc4628","savedPayload":{"position":{"x":19900.945361339687,"y":17438.965568180192},"targetPosition":{"x":20350.67123349828,"y":17423.260794664067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Band 100 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 100","project":"Superalgos","id":"2c839429-dbff-4e26-9366-5f1b1cc261d2","savedPayload":{"position":{"x":19708.708084999053,"y":17214.67432346098},"targetPosition":{"x":19922.69580116546,"y":17284.20314719534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"798370e8-9a99-4947-9a67-968bca900833","savedPayload":{"position":{"x":19922.69580116546,"y":17284.20314719534},"targetPosition":{"x":20350.67123349828,"y":17423.260794664067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Band 25 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 25","project":"Superalgos","id":"8fc31d22-96f4-4311-82eb-a6db86a2469a","savedPayload":{"position":{"x":19818.763974813744,"y":17007.68929881925},"targetPosition":{"x":19996.066394375255,"y":17146.213130767523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c9437036-a169-4106-a07c-3e88867f8ff2","savedPayload":{"position":{"x":19996.066394375255,"y":17146.213130767523},"targetPosition":{"x":20350.67123349828,"y":17423.260794664067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Band 25 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 25","project":"Superalgos","id":"b0947b18-8186-4774-a839-5e4f3b0aa1eb","savedPayload":{"position":{"x":19992.975730140864,"y":16850.82832975848},"targetPosition":{"x":20112.207564593336,"y":17041.639151393676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"748819d2-1545-40ef-aa5b-5bf8d5916733","savedPayload":{"position":{"x":20112.207564593336,"y":17041.639151393676},"targetPosition":{"x":20350.67123349828,"y":17423.260794664067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8f04ce0f-d46d-44c8-9bf0-b0cb86b8b0de","savedPayload":{"position":{"x":20350.67123349828,"y":17423.260794664067},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"ADX","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"108326b6-7de4-4b09-a38b-b1366de3c0d1","savedPayload":{"position":{"x":21322.578120454,"y":17075.54857399022},"targetPosition":{"x":21435.015676513583,"y":17071.8007763239},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"4c6d1aad-872b-4d09-9eae-859d28f30589","savedPayload":{"position":{"x":21435.015676513583,"y":17071.8007763239},"targetPosition":{"x":21547.453232573167,"y":17068.05297865758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"ADX Begin","project":"Superalgos","id":"e70cdd03-d5b5-4da8-a647-ef0b6351f3e5","savedPayload":{"position":{"x":21218.831426596586,"y":16760.63191783596},"targetPosition":{"x":21547.453232573167,"y":17068.05297865758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ADX Begin","id":"fae38925-e197-4984-bbf3-4f5cf8cdde87"}}},{"type":"Polygon Vertex","name":"ADX End","project":"Superalgos","id":"8def43f6-65bf-404d-9407-46f1e7b90ea8","savedPayload":{"position":{"x":21532.462041907886,"y":16618.302754419237},"targetPosition":{"x":21547.453232573167,"y":17068.05297865758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"ADX End","id":"8cc5bc3c-d019-4a1a-a069-f38d61131e7f"}}}],"id":"e493efd6-ece7-4243-8a14-23ea1771b2f1","savedPayload":{"position":{"x":20781.620783519145,"y":17212.58909261876},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"+DI","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"1ff8bfc1-8a0e-4cea-bcda-d0dfbbfd6ecd","savedPayload":{"position":{"x":21429.497402973662,"y":16931.759560795497},"targetPosition":{"x":21538.436324602277,"y":16959.840895421803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"580eab00-426b-410c-8c33-86778ca7f89c","savedPayload":{"position":{"x":21538.436324602277,"y":16959.840895421803},"targetPosition":{"x":21647.37524623089,"y":16987.92223004811},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"+DI Begin","project":"Superalgos","id":"65ec6c2d-5328-41f2-8eb6-0f03fbed8f42","savedPayload":{"position":{"x":21418.675453912034,"y":16600.37042061702},"targetPosition":{"x":21647.37524623089,"y":16987.92223004811},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"+DI Begin","id":"ab40f6c8-026c-4c9e-970b-e1da797e83d7"}}},{"type":"Polygon Vertex","name":"+DI End","project":"Superalgos","id":"a61c7250-5391-45d5-9da3-133b3089268c","savedPayload":{"position":{"x":21759.700584736114,"y":16552.16654353365},"targetPosition":{"x":21647.37524623089,"y":16987.92223004811},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"+DI End","id":"cee77e2a-f5ac-4f21-91dc-21fd2a63ffd4"}}}],"id":"900f1174-1224-4aa1-9d99-58103f23c4ac","savedPayload":{"position":{"x":20803.028641825884,"y":17097.08262545936},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"-DI","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"a6a9fd26-a928-484e-9408-7df706ab8202","savedPayload":{"position":{"x":21486.716013048677,"y":16772.686114286662},"targetPosition":{"x":21572.59574962824,"y":16823.917655792116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ed323d74-83e4-4338-b932-bb36584e68c4","savedPayload":{"position":{"x":21572.59574962824,"y":16823.917655792116},"targetPosition":{"x":21765.825156932253,"y":16939.188624179387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"-DI Begin","project":"Superalgos","id":"654b23d0-1ac9-4511-b0a1-b773a6c905d5","savedPayload":{"position":{"x":21655.575275314757,"y":16502.903208879576},"targetPosition":{"x":21765.825156932253,"y":16939.188624179387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-DI Begin","id":"20776211-c287-4689-9048-83655653dac9"}}},{"type":"Polygon Vertex","name":"-DI End","project":"Superalgos","id":"ae8b6d1e-6ec2-4bba-a5e6-c2a6d3813b53","savedPayload":{"position":{"x":21996.367093706795,"y":16552.729809571356},"targetPosition":{"x":21765.825156932253,"y":16939.188624179387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"-DI End","id":"f0a11eef-05f1-474f-89e7-3bee3ab07a67"}}}],"id":"057d309b-88ca-42f6-8e23-ea8ae1e2ed05","savedPayload":{"position":{"x":20853.602318583264,"y":16991.052707171322},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Band 50 - 75","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.LIGHT\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.LIGHT\"\n }\n}","project":"Superalgos","id":"f29f2ffc-a9e6-42b3-b524-32f9d70bc7df","savedPayload":{"position":{"x":21321.91235715429,"y":16566.290053880995},"targetPosition":{"x":21512.343857223186,"y":16686.126791910327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"dc5a2ec9-1b68-453d-bfc8-035e20b66703","savedPayload":{"position":{"x":21512.343857223186,"y":16686.126791910327},"targetPosition":{"x":21893.206857360976,"y":16925.800267968985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Band 50 Begin","project":"Superalgos","id":"0dc3c13a-0b4b-4a8c-bfc2-238bdb440b60","savedPayload":{"position":{"x":21683.206561909425,"y":16527.80544901997},"targetPosition":{"x":21893.206857360976,"y":16925.800267968985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 50 Begin","id":"3190a724-bdd5-42d8-8f98-cb0607d80ce8"}}},{"type":"Polygon Vertex","name":"Band 50 End","project":"Superalgos","id":"e2f2d64f-6fd0-477d-932a-20b83ce53cf1","savedPayload":{"position":{"x":21910.338676172203,"y":16476.12649645877},"targetPosition":{"x":21893.206857360976,"y":16925.800267968985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 50 End","id":"75de4dca-059a-43c8-97c0-a17cefd70e72"}}},{"type":"Polygon Vertex","name":"Band 75 End","project":"Superalgos","id":"dde5fc42-4c65-4f55-b754-ee07575081e6","savedPayload":{"position":{"x":22132.880333419635,"y":16544.937267831196},"targetPosition":{"x":21893.206857360976,"y":16925.800267968985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 75 End","id":"85418e43-44b8-47a0-8172-767bdd742b05"}}},{"type":"Polygon Vertex","name":"Band 75 Begin","project":"Superalgos","id":"4154f4b4-739c-4d2f-90d0-c4c6f735b3f3","savedPayload":{"position":{"x":22291.201676309993,"y":16715.799972517434},"targetPosition":{"x":21893.206857360976,"y":16925.800267968985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 75 Begin","id":"226d3395-f608-4bf7-9526-6cffaf7b734d"}}}],"id":"0c2cbdcc-700f-45af-a671-29be9b677dcc","savedPayload":{"position":{"x":20929.895301297216,"y":16901.725101463257},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Band 75 - 100","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.GREY\"\n }\n}","project":"Superalgos","id":"cd98d7c9-6bd1-4f1f-a21e-ecda719b6888","savedPayload":{"position":{"x":21721.289088391586,"y":16611.575283338283},"targetPosition":{"x":21870.24486405402,"y":16780.208544875866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"4af5b3ce-bba8-4f3d-9b54-9674f9daa71f","savedPayload":{"position":{"x":21870.24486405402,"y":16780.208544875866},"targetPosition":{"x":22019.200639716455,"y":16948.84180641345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Band 75 Begin","project":"Superalgos","id":"2f2f44d1-6b8f-4def-a1fb-18500da9952b","savedPayload":{"position":{"x":21929.83492972587,"y":16507.804653921874},"targetPosition":{"x":22019.200639716455,"y":16948.84180641345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 75 Begin","id":"226d3395-f608-4bf7-9526-6cffaf7b734d"}}},{"type":"Polygon Vertex","name":"Band 75 End","project":"Superalgos","id":"c9d5eb01-23ba-4da5-8029-84f4ac6c2007","savedPayload":{"position":{"x":22162.32624088316,"y":16522.2095733477},"targetPosition":{"x":22019.200639716455,"y":16948.84180641345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 75 End","id":"85418e43-44b8-47a0-8172-767bdd742b05"}}},{"type":"Polygon Vertex","name":"Band 100 End","project":"Superalgos","id":"97b2cafc-9ca1-49fd-b86c-ebafcf546842","savedPayload":{"position":{"x":22356.467162791618,"y":16650.93025508858},"targetPosition":{"x":22019.200639716455,"y":16948.84180641345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 100 End","id":"798370e8-9a99-4947-9a67-968bca900833"}}},{"type":"Polygon Vertex","name":"Band 100 Begin","project":"Superalgos","id":"d0dedf91-ac18-4ef0-9335-765bcbdf95b0","savedPayload":{"position":{"x":22460.23779220803,"y":16859.476096422863},"targetPosition":{"x":22019.200639716455,"y":16948.84180641345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 100 Begin","id":"f5c6c92d-c739-4f17-964d-080240fc4628"}}}],"id":"9b1c6d74-48a6-4c92-85ae-8c0d211dfbf5","savedPayload":{"position":{"x":21026.70834927591,"y":16835.18733704332},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Level 50","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n }\n}","project":"Superalgos","id":"e06383fe-a5dd-4554-a163-f6d0adaa434a","savedPayload":{"position":{"x":22521.53479181756,"y":16664.64716489982},"targetPosition":{"x":22521.53479181756,"y":16364.64716489982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"281f1f26-a63f-47e8-aced-cf97115f7925","savedPayload":{"position":{"x":22054.754504680466,"y":16563.4076045345},"targetPosition":{"x":22133.59923706614,"y":17006.44655110131},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Band 50 Begin","project":"Superalgos","id":"5ab321e2-936f-4946-a708-62011d8bac64","savedPayload":{"position":{"x":22391.12343558253,"y":16637.419062723424},"targetPosition":{"x":22133.59923706614,"y":17006.44655110131},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 50 Begin","id":"3190a724-bdd5-42d8-8f98-cb0607d80ce8"}}},{"type":"Polygon Vertex","name":"Band 50 End","project":"Superalgos","id":"2afa5b8c-582f-45f6-8749-6e818fa56d7c","savedPayload":{"position":{"x":22576.638183632953,"y":16927.601818715637},"targetPosition":{"x":22133.59923706614,"y":17006.44655110131},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 50 End","id":"75de4dca-059a-43c8-97c0-a17cefd70e72"}}}],"id":"6df98b5c-0db8-447a-adab-23a356c6182b","savedPayload":{"position":{"x":21137.443813290713,"y":16795.973852597872},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Level 75","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n }\n}","project":"Superalgos","id":"d58e329b-6996-469e-9279-319128435135","savedPayload":{"position":{"x":22741.79144749199,"y":16393.376449443695},"targetPosition":{"x":22506.66709336981,"y":16777.064523403034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"7befc553-bc07-43b5-9b53-eed7f7564b69","savedPayload":{"position":{"x":22276.302283873436,"y":16646.641823889655},"targetPosition":{"x":22227.134755407402,"y":17093.947708206575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Band 75 Begin","project":"Superalgos","id":"d7ee0589-7046-41da-97e2-64bece0f45ae","savedPayload":{"position":{"x":22578.194472265055,"y":16812.42137693395},"targetPosition":{"x":22227.134755407402,"y":17093.947708206575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 75 Begin","id":"226d3395-f608-4bf7-9526-6cffaf7b734d"}}},{"type":"Polygon Vertex","name":"Band 75 End","project":"Superalgos","id":"58218d74-b8ed-4c09-9920-bcd103d2c00b","savedPayload":{"position":{"x":22674.440639724322,"y":17143.11523667261},"targetPosition":{"x":22227.134755407402,"y":17093.947708206575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 75 End","id":"85418e43-44b8-47a0-8172-767bdd742b05"}}}],"id":"56c84477-78b8-4ec2-bbd6-c0f76f9c9a90","savedPayload":{"position":{"x":21254.55525446803,"y":16786.756982288527},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Band 25 - 50","project":"Superalgos","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.LIGHT_GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"paletteColor\": \"UI_COLOR.LIGHT_GREY\"\n }\n}","project":"Superalgos","id":"6a419c80-9d0a-4f32-8645-44f71498c2a6","savedPayload":{"position":{"x":22352.027957427996,"y":16758.247323424825},"targetPosition":{"x":22322.12873037469,"y":16981.251888897405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6c954fd3-d05d-421c-b9dd-9e413759d50b","savedPayload":{"position":{"x":22322.12873037469,"y":16981.251888897405},"targetPosition":{"x":22292.229503321385,"y":17204.256454369985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Band 25 Begin","project":"Superalgos","id":"646f52b1-0faf-44cd-bff8-eaf02feff5cd","savedPayload":{"position":{"x":22567.02104915733,"y":16847.900443704963},"targetPosition":{"x":22292.229503321385,"y":17204.256454369985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 25 Begin","id":"c9437036-a169-4106-a07c-3e88867f8ff2"}}},{"type":"Polygon Vertex","name":"Band 25 End","project":"Superalgos","id":"88b7af94-e3f7-46d8-b3ea-8438c3919f01","savedPayload":{"position":{"x":22708.38396809302,"y":17033.03886926077},"targetPosition":{"x":22292.229503321385,"y":17204.256454369985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 25 End","id":"748819d2-1545-40ef-aa5b-5bf8d5916733"}}},{"type":"Polygon Vertex","name":"Band 50 End","project":"Superalgos","id":"215b0fd2-a4c4-487f-a1ef-f6854e918ca3","savedPayload":{"position":{"x":22738.23863426655,"y":17264.0549084766},"targetPosition":{"x":22292.229503321385,"y":17204.256454369985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 50 End","id":"75de4dca-059a-43c8-97c0-a17cefd70e72"}}},{"type":"Polygon Vertex","name":"Band 50 Begin","project":"Superalgos","id":"fbed1fbe-4264-413d-91ea-4eaf3639bab7","savedPayload":{"position":{"x":22648.585513986407,"y":17479.04800020593},"targetPosition":{"x":22292.229503321385,"y":17204.256454369985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Band 50 Begin","id":"3190a724-bdd5-42d8-8f98-cb0607d80ce8"}}}],"id":"a39c8312-2af2-4dd4-946b-60dc03bb4868","savedPayload":{"position":{"x":21370.06172162743,"y":16808.164840595266},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[{"type":"Text","name":"New Text","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"","project":"Superalgos","id":"bbc7ba15-2edb-4f35-9649-4d9ce3c353de","savedPayload":{"position":{"x":21314.826062620083,"y":16438.627325428904},"targetPosition":{"x":21476.091639915467,"y":16858.738517352645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"ff933fea-8a4b-4532-b1ce-1cdd194f09d9","savedPayload":{"position":{"x":21592.5602102116,"y":16424.071895522564},"targetPosition":{"x":21476.091639915467,"y":16858.738517352645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"record.property","project":"Superalgos","id":"73edee06-950f-45cd-bd90-32ef9303ac94","savedPayload":{"position":{"x":21825.807322571105,"y":16575.544341380217},"targetPosition":{"x":21476.091639915467,"y":16858.738517352645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{ \n\"configuration\": \"Get the appropriate configuration from the documentation\"\n}","project":"Superalgos","id":"f6f816f8-5f5f-4b00-9fa2-21f2b30db3b2","savedPayload":{"position":{"x":21925.474930555025,"y":16835.18733704332},"targetPosition":{"x":21476.091639915467,"y":16858.738517352645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1b37d84b-5045-456c-aabf-924be783d067","savedPayload":{"position":{"x":21476.091639915467,"y":16858.738517352645},"targetPosition":{"x":21231.004074158704,"y":17236.140272928085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cdb5a75e-613a-481d-88e0-38991cc242f2","savedPayload":{"position":{"x":21231.004074158704,"y":17236.140272928085},"targetPosition":{"x":21532.11284702019,"y":17570.555444392914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"DMI Directional Movement","config":"{ \n \"codeName\": \"DMI\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"ADX","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.adx","project":"Superalgos","id":"0eaf0b8e-aeb3-4b05-be3a-d235958773d2","savedPayload":{"position":{"x":22240.918013416493,"y":16650.210137309925},"targetPosition":{"x":22217.366833107168,"y":17099.593427949483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"581d5c5a-0805-4d53-80c3-ec3fd38fd825","savedPayload":{"position":{"x":22618.319768991933,"y":16895.297703066688},"targetPosition":{"x":22217.366833107168,"y":17099.593427949483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"57929c4f-d65a-4342-a156-83e3c37bcde3","savedPayload":{"position":{"x":22217.366833107168,"y":17099.593427949483},"targetPosition":{"x":21972.279267350405,"y":17476.995183524923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"+DI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.plusDI","project":"Superalgos","id":"f03ad7aa-8df8-48d4-b8f9-ca83062e24f1","savedPayload":{"position":{"x":22746.860859145447,"y":17082.326149795445},"targetPosition":{"x":22412.445687680618,"y":17383.434922656932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"a59f5ccb-0893-4a38-8603-f33c7bd79d86","savedPayload":{"position":{"x":22840.421120013438,"y":17522.492570125658},"targetPosition":{"x":22412.445687680618,"y":17383.434922656932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a2d73831-c487-4f26-8b5b-66980654a6ff","savedPayload":{"position":{"x":22412.445687680618,"y":17383.434922656932},"targetPosition":{"x":21972.279267350405,"y":17476.995183524923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"-DI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.minusDI","project":"Superalgos","id":"b0dc6011-498f-486e-947e-4b7d700927ae","savedPayload":{"position":{"x":22799.064313565403,"y":17745.63392959101},"targetPosition":{"x":22349.681022925844,"y":17722.082749281686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 1,\n \"fontSize\": 16\n}","project":"Superalgos","id":"b942aa1f-30ab-4633-bc95-9c9d5c7dc100","savedPayload":{"position":{"x":22553.97674780864,"y":18123.03568516645},"targetPosition":{"x":22349.681022925844,"y":17722.082749281686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c8fd597b-22d1-43c9-88a0-34afa3fd44c1","savedPayload":{"position":{"x":22349.681022925844,"y":17722.082749281686},"targetPosition":{"x":21972.279267350405,"y":17476.995183524923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9021a665-2e1b-472e-ab60-6b244795eb9e","savedPayload":{"position":{"x":21972.279267350405,"y":17476.995183524923},"targetPosition":{"x":21532.11284702019,"y":17570.555444392914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4e8c7782-32a0-496d-baab-d11bb1a562d0","savedPayload":{"position":{"x":21532.11284702019,"y":17570.555444392914},"targetPosition":{"x":21393.055199551465,"y":17998.530876725734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"24ac7fd1-9eb7-4931-9103-43dec214e698","savedPayload":{"position":{"x":21445.055199551465,"y":17992.530876725734},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Ichimoku Cloud","config":"{ \n \"codeName\": \"Plotter-Ichimoku\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Ichimoku","config":"{ \n \"codeName\": \"Ichimoku\", \n \"icon\": \"|moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Lagging Span Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.pastBegin\ny = record.previous.laggingSpan\n","project":"Superalgos","id":"40d770c4-6cc1-4a26-afed-5aae3615acd0","savedPayload":{"position":{"x":21613.92929803368,"y":17824.290980236306},"targetPosition":{"x":21545.053354308588,"y":17532.30450045346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed94f11a-7635-42cb-ac2d-fe9d05159b2a","savedPayload":{"position":{"x":21545.053354308588,"y":17532.30450045346},"targetPosition":{"x":21476.177410583496,"y":17240.318020670617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Lagging Span End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.pastEnd\ny = record.laggingSpan\n","project":"Superalgos","id":"a671dd96-1e10-4fe7-bf9c-64acf9379878","savedPayload":{"position":{"x":21276.342054323566,"y":17806.061629020252},"targetPosition":{"x":21376.25973245353,"y":17523.189824845434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"15d9b3e5-54b9-4f6f-9e69-37dae6d9d37b","savedPayload":{"position":{"x":21376.25973245353,"y":17523.189824845434},"targetPosition":{"x":21476.177410583496,"y":17240.318020670617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Conersion Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.conversionLine","project":"Superalgos","id":"827748a6-7f40-4a30-a811-f88883118c88","savedPayload":{"position":{"x":21160.193219699046,"y":17485.581126561214},"targetPosition":{"x":21239.18926742016,"y":17424.265350088564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"a56bb9d9-6e55-4fa3-936d-81582cf1f94d","savedPayload":{"position":{"x":21239.18926742016,"y":17424.265350088564},"targetPosition":{"x":21476.177410583496,"y":17240.318020670617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Conversion Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.conversionLine","project":"Superalgos","id":"3e816114-9409-4ef8-ae5b-92de87c7ba20","savedPayload":{"position":{"x":21077.755347622762,"y":17275.812523711415},"targetPosition":{"x":21177.360863362945,"y":17266.938897951215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"3eaf4ff4-cf81-4928-b2f8-26d75e89d3c0","savedPayload":{"position":{"x":21177.360863362945,"y":17266.938897951215},"targetPosition":{"x":21476.177410583496,"y":17240.318020670617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Base Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.baseLine","project":"Superalgos","id":"9473832d-9c65-47c0-81b7-06e6399b21b1","savedPayload":{"position":{"x":21121.813665420734,"y":17054.774666938338},"targetPosition":{"x":21210.404601711423,"y":17101.16050537141},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"f7d3e6d3-089b-4bc7-8468-2e42bc6511b7","savedPayload":{"position":{"x":21210.404601711423,"y":17101.16050537141},"targetPosition":{"x":21476.177410583496,"y":17240.318020670617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Base Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.baseLine","project":"Superalgos","id":"01e0f6a0-132f-497a-8cbf-45f305163405","savedPayload":{"position":{"x":21278.379968493304,"y":16892.64551398857},"targetPosition":{"x":21327.82932901585,"y":16979.563640659082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"385613d8-5b52-44b9-be18-91bca1c86c47","savedPayload":{"position":{"x":21327.82932901585,"y":16979.563640659082},"targetPosition":{"x":21476.177410583496,"y":17240.318020670617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Plot Lead Line 1 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.forwardBegin\ny = record.previous.plotLeadLine1","project":"Superalgos","id":"19cecf0e-124a-4394-8968-2edcb21cfbd8","savedPayload":{"position":{"x":21497.74556185957,"y":16840.899925373804},"targetPosition":{"x":21492.35352404055,"y":16940.754449198008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"fbac2c1f-aa48-421f-b725-4b62cc53fc41","savedPayload":{"position":{"x":21492.35352404055,"y":16940.754449198008},"targetPosition":{"x":21476.177410583496,"y":17240.318020670617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Plot Lead Line 1 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.forwardEnd\ny = record.plotLeadLine1","project":"Superalgos","id":"1584a320-70a4-4487-8b2e-cbacab3288ad","savedPayload":{"position":{"x":21710.263419588955,"y":16915.966759862375},"targetPosition":{"x":21651.74191733759,"y":16997.054575064434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"cb4fb579-edd5-4de7-a831-003f24afcf39","savedPayload":{"position":{"x":21651.74191733759,"y":16997.054575064434},"targetPosition":{"x":21476.177410583496,"y":17240.318020670617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Plot Lead Line 2 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.forwardBegin\ny = record.previous.plotLeadLine2","project":"Superalgos","id":"66ad8d46-50dc-4306-9d06-a3c6f4ead8e2","savedPayload":{"position":{"x":21848.460623431813,"y":17094.012827901068},"targetPosition":{"x":21755.389820219734,"y":17130.589126093455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"b7ab8f9c-d7a0-4c4d-b7d6-1e1d0c02eb83","savedPayload":{"position":{"x":21755.389820219734,"y":17130.589126093455},"targetPosition":{"x":21476.177410583496,"y":17240.318020670617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Plot Lead Line 2 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.forwardEnd\ny = record.plotLeadLine2","project":"Superalgos","id":"e837a646-7549-469e-8d35-6c1cee681da4","savedPayload":{"position":{"x":21868.460537622814,"y":17318.509760900997},"targetPosition":{"x":21770.389755862983,"y":17298.961825843402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"02355e05-fe68-4efc-bfae-d2cc6f1457c3","savedPayload":{"position":{"x":21770.389755862983,"y":17298.961825843402},"targetPosition":{"x":21476.177410583496,"y":17240.318020670617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3086f338-1640-4ebb-bafe-bf8cfd3da0ec","savedPayload":{"position":{"x":21476.177410583496,"y":17240.318020670617},"targetPosition":{"x":21907.781290786686,"y":17657.113042946014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Lagging Span","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.3,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n }\n}","project":"Superalgos","id":"fbbfd9a2-92d9-4ce7-8c21-17f2dbc6f1fc","savedPayload":{"position":{"x":21358.45008670067,"y":17482.68789820106},"targetPosition":{"x":21444.48655215333,"y":17359.81509155771},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"cd32ab1b-e563-45d7-a3f8-ecb171273385","savedPayload":{"position":{"x":21444.48655215333,"y":17359.81509155771},"targetPosition":{"x":21530.523017605985,"y":17236.94228491436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Lagging Span Begin","project":"Superalgos","id":"01c3a82b-97af-4c64-9675-c2ae9e55c5c9","savedPayload":{"position":{"x":21235.080691702322,"y":17289.03673821444},"targetPosition":{"x":21530.523017605985,"y":17236.94228491436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Lagging Span Begin","id":"ed94f11a-7635-42cb-ac2d-fe9d05159b2a"}}},{"type":"Polygon Vertex","name":"Lagging Span End","project":"Superalgos","id":"5e20b9a4-ae32-4a81-bb0b-289bf8d04a58","savedPayload":{"position":{"x":21284.777404319288,"y":17064.869354009046},"targetPosition":{"x":21530.523017605985,"y":17236.94228491436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Lagging Span End","id":"15d9b3e5-54b9-4f6f-9e69-37dae6d9d37b"}}}],"id":"90a34d00-99e2-4a5e-94f1-782aeaec89ed","savedPayload":{"position":{"x":21616.69257290389,"y":17584.536474266115},"targetPosition":{"x":21907.781290786686,"y":17657.113042946014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Conversion Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TURQUOISE\"\n }\n}","project":"Superalgos","id":"e865a1b2-668e-427f-b16d-3ecc6c4f770f","savedPayload":{"position":{"x":20986.602226600873,"y":17190.139258675794},"targetPosition":{"x":21276.379974487594,"y":17112.493545145036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"5f0a0922-aecd-4b40-9fb3-b3fdd1207eea","savedPayload":{"position":{"x":21276.379974487594,"y":17112.493545145036},"targetPosition":{"x":21566.157722374315,"y":17034.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Conersion Line Begin","project":"Superalgos","id":"0e09b636-d71d-49d5-9d9a-6e3b067925ca","savedPayload":{"position":{"x":21306.350101238982,"y":16884.84783161428},"targetPosition":{"x":21566.157722374315,"y":17034.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Conersion Line Begin","id":"a56bb9d9-6e55-4fa3-936d-81582cf1f94d"}}},{"type":"Polygon Vertex","name":"Conversion Line End","project":"Superalgos","id":"b92598e2-5755-4a95-85f7-80bc63612184","savedPayload":{"position":{"x":21488.512008843558,"y":16745.070083727558},"targetPosition":{"x":21566.157722374315,"y":17034.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Conversion Line End","id":"3eaf4ff4-cf81-4928-b2f8-26d75e89d3c0"}}}],"id":"59bb987c-d919-4454-ad68-f52a84639d18","savedPayload":{"position":{"x":21731.445715098944,"y":17414.40794463353},"targetPosition":{"x":21907.781290786686,"y":17657.113042946014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Base Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"623a0cc7-8641-46ab-bb9b-6132f6b4374c","savedPayload":{"position":{"x":21179.574628289956,"y":16649.36908833409},"targetPosition":{"x":21451.466964400952,"y":16776.154566856298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"639d75aa-1e58-4c36-8257-67168abafb05","savedPayload":{"position":{"x":21451.466964400952,"y":16776.154566856298},"targetPosition":{"x":21723.359300511947,"y":16902.940045378506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Base Line Begin","project":"Superalgos","id":"eca8fef0-6505-4e10-908e-5fcf8a99293a","savedPayload":{"position":{"x":21620.753257514247,"y":16621.032259142732},"targetPosition":{"x":21723.359300511947,"y":16902.940045378506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Base Line Begin","id":"f7d3e6d3-089b-4bc7-8468-2e42bc6511b7"}}},{"type":"Polygon Vertex","name":"Base Line End","project":"Superalgos","id":"09535200-2132-4847-960a-9ce3698e72b9","savedPayload":{"position":{"x":21850.14477903416,"y":16631.04770926751},"targetPosition":{"x":21723.359300511947,"y":16902.940045378506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Base Line End","id":"385613d8-5b52-44b9-be18-91bca1c86c47"}}}],"id":"5ae2d724-fb7c-478e-bc67-bd08b88562bb","savedPayload":{"position":{"x":21928.708232909925,"y":17357.843827868066},"targetPosition":{"x":21907.781290786686,"y":17657.113042946014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Lead Line 1","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","project":"Superalgos","id":"77e51645-bb9d-4c7a-a8bb-70de2bca0f05","savedPayload":{"position":{"x":22105.707358062016,"y":16841.402485750586},"targetPosition":{"x":22110.9430799932,"y":17141.356794297502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"70f77c83-7b79-4a15-926e-173e9fcbf78f","savedPayload":{"position":{"x":22110.9430799932,"y":17141.356794297502},"targetPosition":{"x":22116.178801924387,"y":17441.31110284442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Plot Lead Line 1 Begin","project":"Superalgos","id":"878fdf21-37b6-4487-ba94-22f16b609ec4","savedPayload":{"position":{"x":22324.576313062087,"y":17225.509162742823},"targetPosition":{"x":22116.178801924387,"y":17441.31110284442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 1 Begin","id":"fbac2c1f-aa48-421f-b725-4b62cc53fc41"}}},{"type":"Polygon Vertex","name":"Plot Lead Line 1 End","project":"Superalgos","id":"3d6e5394-4cef-41ce-8091-4b557155d5a9","savedPayload":{"position":{"x":22416.133110471303,"y":17436.075380913233},"targetPosition":{"x":22116.178801924387,"y":17441.31110284442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 1 End","id":"cb4fb579-edd5-4de7-a831-003f24afcf39"}}}],"id":"c8fca9b3-dfe0-4442-8275-493b9d545d7a","savedPayload":{"position":{"x":22116.178801924387,"y":17441.31110284442},"targetPosition":{"x":21907.781290786686,"y":17657.113042946014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Lead Line 2","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.5,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","project":"Superalgos","id":"62ad6e42-cc75-4cf3-8217-b460a5b465f4","savedPayload":{"position":{"x":22241.064391706495,"y":16455.292335840837},"targetPosition":{"x":22163.418678175738,"y":16745.070083727558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"0637699a-e7e2-4d24-b5c0-7c76748dda74","savedPayload":{"position":{"x":22163.418678175738,"y":16745.070083727558},"targetPosition":{"x":22085.77296464498,"y":17034.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Plot Lead Line 2 Begin","project":"Superalgos","id":"3d4d544a-28fc-463b-b792-5d08ec382a6f","savedPayload":{"position":{"x":22345.580585780313,"y":16884.84783161428},"targetPosition":{"x":22085.77296464498,"y":17034.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 2 Begin","id":"b7ab8f9c-d7a0-4c4d-b7d6-1e1d0c02eb83"}}},{"type":"Polygon Vertex","name":"Plot Lead Line 2 End","project":"Superalgos","id":"507b22e5-4ae9-4290-a0df-7d7bac232aa9","savedPayload":{"position":{"x":22375.5507125317,"y":17112.493545145036},"targetPosition":{"x":22085.77296464498,"y":17034.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 2 End","id":"02355e05-fe68-4efc-bfae-d2cc6f1457c3"}}}],"id":"8bcba1bd-2717-4d86-a955-b7a396e27687","savedPayload":{"position":{"x":22206.137859397168,"y":17625.754503965716},"targetPosition":{"x":21907.781290786686,"y":17657.113042946014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Cloud Green","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.plotLeadLine1 > record.plotLeadLine2","project":"Superalgos","id":"13e89aa0-e3e2-40ac-abc6-0b98ee4bf44a","savedPayload":{"position":{"x":22256.130465244914,"y":16914.557171243552},"targetPosition":{"x":22125.965343509648,"y":17184.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","project":"Superalgos","id":"403e5719-537a-4f87-ba17-a2885f64f841","savedPayload":{"position":{"x":22595.064232990466,"y":16810.753950499042},"targetPosition":{"x":22360.514788250057,"y":16997.80089105666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"a896ce8e-5bd8-49fc-b445-ac872d80ad69","savedPayload":{"position":{"x":22360.514788250057,"y":16997.80089105666},"targetPosition":{"x":22125.965343509648,"y":17184.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Plot Lead Line 1 Begin","project":"Superalgos","id":"c42cc383-9c0e-4aea-851a-c224501448b4","savedPayload":{"position":{"x":22418.443717164195,"y":17118.091551427384},"targetPosition":{"x":22125.965343509648,"y":17184.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 1 Begin","id":"fbac2c1f-aa48-421f-b725-4b62cc53fc41"}}},{"type":"Polygon Vertex","name":"Plot Lead Line 1 End","project":"Superalgos","id":"f315431a-2603-459e-9f05-34b8ee64356c","savedPayload":{"position":{"x":22418.443717164195,"y":17251.604111801174},"targetPosition":{"x":22125.965343509648,"y":17184.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 1 End","id":"cb4fb579-edd5-4de7-a831-003f24afcf39"}}},{"type":"Polygon Vertex","name":"Plot Lead Line 2 End","project":"Superalgos","id":"52eb035e-85aa-4746-ad09-7a6f1b636f3c","savedPayload":{"position":{"x":22360.514788250057,"y":17371.894772171898},"targetPosition":{"x":22125.965343509648,"y":17184.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 2 End","id":"02355e05-fe68-4efc-bfae-d2cc6f1457c3"}}},{"type":"Polygon Vertex","name":"Plot Lead Line 2 Begin","project":"Superalgos","id":"52b3d278-b029-46f3-8772-e7dd7b5d42a3","savedPayload":{"position":{"x":22256.130465244914,"y":17455.138491985006},"targetPosition":{"x":22125.965343509648,"y":17184.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 2 Begin","id":"b7ab8f9c-d7a0-4c4d-b7d6-1e1d0c02eb83"}}}],"id":"d3ee5217-2b18-443a-a8dc-6884ff3711e9","savedPayload":{"position":{"x":22156.492562553198,"y":17824.870913987237},"targetPosition":{"x":21907.781290786686,"y":17657.113042946014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Cloud Red","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.plotLeadLine1 < record.plotLeadLine2","project":"Superalgos","id":"0486bacd-b7c4-468b-a2bd-fca7604d031a","savedPayload":{"position":{"x":22301.262376958122,"y":17325.896147383693},"targetPosition":{"x":22018.09737786561,"y":17424.979865970243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","project":"Superalgos","id":"acf85f27-802a-4609-a45f-f602dd9dcd1c","savedPayload":{"position":{"x":22614.324703801554,"y":17492.15855163223},"targetPosition":{"x":22316.211040833583,"y":17458.569208801237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f6448eec-e334-4c22-8d0e-a3c68316ce42","savedPayload":{"position":{"x":22316.211040833583,"y":17458.569208801237},"targetPosition":{"x":22018.09737786561,"y":17424.979865970243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Plot Lead Line 1 Begin","project":"Superalgos","id":"ae3a2357-a62e-498d-81e0-90f06b7c3ec4","savedPayload":{"position":{"x":22272.1146376341,"y":17584.589488924845},"targetPosition":{"x":22018.09737786561,"y":17424.979865970243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 1 Begin","id":"fbac2c1f-aa48-421f-b725-4b62cc53fc41"}}},{"type":"Polygon Vertex","name":"Plot Lead Line 1 End","project":"Superalgos","id":"cc92f4b4-eee9-4017-b30e-7e69d13f7200","savedPayload":{"position":{"x":22177.707000820214,"y":17678.99712573873},"targetPosition":{"x":22018.09737786561,"y":17424.979865970243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 1 End","id":"cb4fb579-edd5-4de7-a831-003f24afcf39"}}},{"type":"Polygon Vertex","name":"Plot Lead Line 2 End","project":"Superalgos","id":"d7e2bed8-30ec-479d-8909-a1d6f05084a1","savedPayload":{"position":{"x":22051.686720696605,"y":17723.093528938214},"targetPosition":{"x":22018.09737786561,"y":17424.979865970243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 2 End","id":"02355e05-fe68-4efc-bfae-d2cc6f1457c3"}}},{"type":"Polygon Vertex","name":"Plot Lead Line 2 Begin","project":"Superalgos","id":"9fb73913-c17f-4c3f-b60f-b1f2821d740f","savedPayload":{"position":{"x":21919.013659279062,"y":17708.144865062754},"targetPosition":{"x":22018.09737786561,"y":17424.979865970243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Plot Lead Line 2 Begin","id":"b7ab8f9c-d7a0-4c4d-b7d6-1e1d0c02eb83"}}}],"id":"e1707dc5-c49a-4b2d-b2b9-d6fd2e064a3c","savedPayload":{"position":{"x":21990.472497531788,"y":17945.491551727508},"targetPosition":{"x":21907.781290786686,"y":17657.113042946014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"2a9c9e98-7ccf-4999-804c-2094204d1ca6","savedPayload":{"position":{"x":21907.781290786686,"y":17657.113042946014},"targetPosition":{"x":21785.760297863948,"y":17931.176680238794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Ichimoku Cloud","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Lagging Span","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.laggingSpan","project":"Superalgos","id":"e923bf3d-c6c5-4f08-9292-4910b5aafd6f","savedPayload":{"position":{"x":22259.43541858742,"y":17494.427625711018},"targetPosition":{"x":22290.79395756772,"y":17792.7841943215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"4b843355-d7ea-45af-8fb1-ecefe26e6a75","savedPayload":{"position":{"x":22533.499055880202,"y":17616.448618633756},"targetPosition":{"x":22290.79395756772,"y":17792.7841943215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ce794350-6644-4e6c-afac-e8a7a10c60ca","savedPayload":{"position":{"x":22290.79395756772,"y":17792.7841943215},"targetPosition":{"x":22168.77296464498,"y":18066.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Conversion Line","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.conversionLine","project":"Superalgos","id":"468401fd-3794-4749-9434-4f9c2107db49","savedPayload":{"position":{"x":22715.862101497816,"y":17391.249012143493},"targetPosition":{"x":22532.830612113707,"y":17802.344468082665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.TURQUOISE\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"32127f3e-22ec-4d64-ab18-90aef4433588","savedPayload":{"position":{"x":22980.36546502943,"y":17755.306659612223},"targetPosition":{"x":22532.830612113707,"y":17802.344468082665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f6d23c72-ba68-4d19-8291-53e729d60d43","savedPayload":{"position":{"x":22532.830612113707,"y":17802.344468082665},"targetPosition":{"x":22168.77296464498,"y":18066.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Base Line","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.baseLine","project":"Superalgos","id":"b00a3c5a-16ca-4a05-b8a2-87442f67e7ee","savedPayload":{"position":{"x":22709.834631567945,"y":17859.15371694624},"targetPosition":{"x":22467.129533255462,"y":18035.48929263398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"f9456c22-246e-4ebb-9f1a-64023ddc007e","savedPayload":{"position":{"x":22741.193170548242,"y":18157.51028555672},"targetPosition":{"x":22467.129533255462,"y":18035.48929263398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ab82afc6-55b3-4ec7-9e1e-eec7e1260efc","savedPayload":{"position":{"x":22467.129533255462,"y":18035.48929263398},"targetPosition":{"x":22168.77296464498,"y":18066.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Lead Line 1","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.leadLine1","project":"Superalgos","id":"a275f6d4-c570-4d08-a93a-fcb8d2ed168a","savedPayload":{"position":{"x":23027.403273499876,"y":18202.841512527946},"targetPosition":{"x":22579.868420584153,"y":18249.87932099839},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"bf48ad18-804f-482c-ae5d-dbb0a3522237","savedPayload":{"position":{"x":22844.371784115767,"y":18613.936968467115},"targetPosition":{"x":22579.868420584153,"y":18249.87932099839},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8b7ebb57-8606-435a-be7b-921bc4e6a2d5","savedPayload":{"position":{"x":22579.868420584153,"y":18249.87932099839},"targetPosition":{"x":22168.77296464498,"y":18066.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Lead Line 2","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.leadLine2","project":"Superalgos","id":"2dafd617-bb89-4aad-b697-6a361de69a98","savedPayload":{"position":{"x":22619.172177625504,"y":18431.5739228495},"targetPosition":{"x":22345.108540332723,"y":18309.552929926762},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"fontSize\": 14\n}","project":"Superalgos","id":"34880e13-f3bd-4fa6-8245-cb47783fc1d1","savedPayload":{"position":{"x":22376.46707931302,"y":18607.909498537243},"targetPosition":{"x":22345.108540332723,"y":18309.552929926762},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"375c2ae1-cdb0-42a9-a243-0ea3a9d486a0","savedPayload":{"position":{"x":22345.108540332723,"y":18309.552929926762},"targetPosition":{"x":22168.77296464498,"y":18066.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c2502509-bfd7-483e-bae8-db4db0ae302b","savedPayload":{"position":{"x":22168.77296464498,"y":18066.84783161428},"targetPosition":{"x":21785.760297863948,"y":17931.176680238794},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c5dedee0-0553-457c-9a14-5c5d97907cb2","savedPayload":{"position":{"x":21785.760297863948,"y":17931.176680238794},"targetPosition":{"x":21543.055199551465,"y":18107.512255926536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f1d66d3b-c40e-4633-aa38-0f85d032d1f8","savedPayload":{"position":{"x":21595.055199551465,"y":18101.512255926536},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d2083ac0-43e2-41e4-83c7-eb09a6f29353","savedPayload":{"position":{"x":21352.350101238982,"y":18277.84783161428},"targetPosition":{"x":21352.350101238982,"y":18277.84783161428},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}} \ No newline at end of file diff --git a/Projects/Superalgos/Plugins/Workspaces/Getting-Started.json b/Projects/Superalgos/Plugins/Workspaces/Getting-Started.json index 0899ed90c..41c5d72c0 100644 --- a/Projects/Superalgos/Plugins/Workspaces/Getting-Started.json +++ b/Projects/Superalgos/Plugins/Workspaces/Getting-Started.json @@ -1 +1 @@ -{"type":"Workspace","name":"Getting Started","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[{"type":"Project Data Tasks","name":"Superalgos","project":"Superalgos","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","project":"Superalgos","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Exchange Raw Data","project":"Superalgos","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","config":"{ \n\"startDate\": \"2020-01-01\"\n}","project":"Superalgos","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"d244c564-4e86-43c7-9796-dc3b6294ec8b","savedPayload":{"position":{"x":23490.023749611923,"y":29239.135911211026},"targetPosition":{"x":23779.801497498644,"y":29316.781624741783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"343313ae-5705-484d-8bf8-aed25ba61cfa","savedPayload":{"position":{"x":23779.801497498644,"y":29316.781624741783},"targetPosition":{"x":24069.579245385365,"y":29394.42733827254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a8f38508-1cac-4ab1-815f-d338fc813377","savedPayload":{"position":{"x":24069.579245385365,"y":29394.42733827254},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Volumes","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"f0ef12ed-f0fd-4b88-8e15-27cf24265a5f","savedPayload":{"position":{"x":23799.549372136753,"y":28802.457809532632},"targetPosition":{"x":24059.356993272086,"y":28952.457809532632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"7c8b312c-09bf-4c59-853f-1592391a9c57","savedPayload":{"position":{"x":24059.356993272086,"y":28652.457809532632},"targetPosition":{"x":24059.356993272086,"y":28952.457809532632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"8d58e84b-d7ef-464f-8079-0ec0887e3da3","savedPayload":{"position":{"x":24059.356993272086,"y":28952.457809532632},"targetPosition":{"x":24209.356993272086,"y":29212.265430667965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bf29e3bd-9386-408b-9091-042da0c53e81","savedPayload":{"position":{"x":24209.356993272086,"y":29212.265430667965},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Resistances and Supports","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Resistances and Supports","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Market","project":"Superalgos","id":"a707814e-b81b-4102-9b5b-4e2fe969324f","savedPayload":{"position":{"x":24437.002706802843,"y":28602.739808143135},"targetPosition":{"x":24514.6484203336,"y":28892.517556029856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"5d9b2729-43fb-4e7e-aa4f-b8477c424e51"}}},{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Daily","project":"Superalgos","id":"c5395fbe-4b5a-4492-a7fb-e2d259905e27","savedPayload":{"position":{"x":24726.780454689564,"y":28680.385521673892},"targetPosition":{"x":24514.6484203336,"y":28892.517556029856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"be19d91b-9337-4f84-96b3-f4e54ea12df5"}}}],"id":"112be2cf-74ea-4272-9566-cf0cd24c111c","savedPayload":{"position":{"x":24514.6484203336,"y":28892.517556029856},"targetPosition":{"x":24437.002706802843,"y":29182.295303916577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e74c3232-7b59-4006-87fa-b3b2a328a52b","savedPayload":{"position":{"x":24437.002706802843,"y":29182.295303916577},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c193ecbb-c3e0-4fd5-94ed-bb6356d1d5ea","savedPayload":{"position":{"x":24359.356993272086,"y":29472.073051803298},"targetPosition":{"x":24509.356993272086,"y":29731.88067293863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"85224e5e-f3ee-4e8d-b9bd-e5901bd49b33","savedPayload":{"position":{"x":24509.356993272086,"y":29731.88067293863},"targetPosition":{"x":24659.356993272086,"y":29991.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}}],"id":"70d459d6-d270-49e0-b70d-2053c65a40e2","savedPayload":{"position":{"x":24659.356993272086,"y":29991.688294073963},"targetPosition":{"x":24809.356993272086,"y":30251.495915209296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"af949a76-a6f4-4ec6-869e-f240480eea81","savedPayload":{"position":{"x":24809.356993272086,"y":30251.495915209296},"targetPosition":{"x":24959.356993272086,"y":30511.30353634463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"9b93b56d-dccf-4a8c-bbd0-8c608c31363c","savedPayload":{"position":{"x":24959.356993272086,"y":30511.30353634463},"targetPosition":{"x":25109.356993272086,"y":30771.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"40af91d9-431c-4b7d-addc-aed37bc2f3fe","savedPayload":{"position":{"x":25109.356993272086,"y":30771.11115747996},"targetPosition":{"x":25259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningTasks":{"type":"Learning Tasks","name":"New Learning Tasks","project":"Superalgos","projectLearningTasks":[{"type":"Project Learning Tasks","name":"Superalgos","project":"Superalgos","exchangeLearningTasks":[],"id":"ddd4bf4d-46fd-4c16-86d3-1785f5ad629e","savedPayload":{"position":{"x":25559.356993272086,"y":30511.30353634463},"targetPosition":{"x":25409.356993272086,"y":30771.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"0818dfbe-61ea-40b8-8544-bee25d7f45be","savedPayload":{"position":{"x":25409.356993272086,"y":30771.11115747996},"targetPosition":{"x":25259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"testingTradingTasks":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","project":"Superalgos","projectTradingTasks":[{"type":"Project Trading Tasks","name":"Superalgos","project":"Superalgos","exchangeTradingTasks":[{"type":"Exchange Trading Tasks","name":"Binance","project":"Superalgos","marketTradingTasks":[{"type":"Market Trading Tasks","name":"Binance BTC/USDT","project":"Superalgos","tradingMineTasks":[{"type":"Trading Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Lightning Strike","project":"Superalgos","bot":{"type":"Trading Bot Instance","name":"Low Frequency","config":"{}","project":"Superalgos","processes":[{"type":"Trading Process Instance","name":"Low Frequency Trading","project":"Superalgos","session":{"type":"Backtesting Session","name":"Lightning Strike","config":"{\"folderName\":\"Lightning-Strike\"}","project":"Superalgos","tradingParameters":{"type":"Trading Parameters","name":"New Parameters","project":"Superalgos","sessionBaseAsset":{"type":"Session Base Asset","name":"","config":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0\n}","project":"Superalgos","id":"fb252bd6-3e7d-49a0-9fc6-be392be5db5b","savedPayload":{"position":{"x":28335.291877706186,"y":30551.48478700282},"targetPosition":{"x":28471.48902762805,"y":30818.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sessionQuotedAsset":{"type":"Session Quoted Asset","name":"","config":"{\n\"initialBalance\": 1000\n}","project":"Superalgos","id":"ed578090-732c-4e41-a4ae-9d4f34607170","savedPayload":{"position":{"x":28424.55868811598,"y":30522.48024208079},"targetPosition":{"x":28471.48902762805,"y":30818.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","config":"{ \n\"initialDatetime\": \"2020-09-01\",\n\"finalDatetime\": \"2020-09-02\",\n \"allowStartingFromThePast\": false\n}","project":"Superalgos","id":"47fa4509-16f4-42b7-9453-fa3b3d2885b0","savedPayload":{"position":{"x":28518.41936714012,"y":30522.48024208079},"targetPosition":{"x":28471.48902762805,"y":30818.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","config":"{ \n\"label\": \"01-min\"\n}","project":"Superalgos","id":"dfe3514c-1aa9-4cea-bb2d-e6657037e69d","savedPayload":{"position":{"x":28607.686177549913,"y":30551.48478700282},"targetPosition":{"x":28471.48902762805,"y":30818.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","config":"{ \n\"marketOrderRate\": 0.1,\n\"stopLoss\": 0.2,\n\"takeProfit\": 0.3\n}","project":"Superalgos","id":"c711e510-373f-468d-8ed9-1601da6a06f5","savedPayload":{"position":{"x":28683.621061984013,"y":30606.654709903367},"targetPosition":{"x":28471.48902762805,"y":30818.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","config":"{ \n\"maker\": 0.1,\n\"taker\": 0.1\n}","project":"Superalgos","id":"fdc7c383-8301-4393-b415-8c2d542e05fe","savedPayload":{"position":{"x":28738.79098488456,"y":30682.589594337467},"targetPosition":{"x":28471.48902762805,"y":30818.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"snapshots":{"type":"Snapshots","name":"New Snapshots","config":"{ \n\"strategy\": true,\n\"position\": true\n}","project":"Superalgos","id":"28db17c9-2703-430b-a162-5e04b68640a3","savedPayload":{"position":{"x":28767.79552980659,"y":30771.85640474726},"targetPosition":{"x":28471.48902762805,"y":30818.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"heartbeats":{"type":"Heartbeats","name":"New Heartbeats","config":"{ \n\"date\": true,\n\"candleIndex\": false\n}","project":"Superalgos","id":"78270062-7d10-4afa-baee-2bda8a4b4ed2","savedPayload":{"position":{"x":28767.79552980659,"y":30865.7170837714},"targetPosition":{"x":28471.48902762805,"y":30818.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedParameters":{"type":"User Defined Parameters","name":"New User Defined Parameters","config":"{ \n\"param1Name\": \"A text string value example\",\n\"param2Name\": 0\n}","project":"Superalgos","id":"4c9cdc50-70c0-43ee-ad54-052f8b7ecbc8","savedPayload":{"position":{"x":28738.79098488456,"y":30954.983894181194},"targetPosition":{"x":28471.48902762805,"y":30818.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e79ab7df-ba40-46aa-abcd-63df8031a931","savedPayload":{"position":{"x":28471.48902762805,"y":30818.78674425933},"targetPosition":{"x":28259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingSystemReference":{"type":"Trading System Reference","name":"Lightning Strike","project":"Superalgos","id":"c6397744-c7b6-4fad-92a0-6954f282c0c2","savedPayload":{"position":{"x":28559.356993272086,"y":31030.918778615294},"targetPosition":{"x":28259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Lightning Strike","id":"628b758d-ffff-445f-9d4f-8aa480a13db3"}}},"tradingEngineReference":{"type":"Trading Engine Reference","name":"Low-Frequency","project":"Superalgos","id":"720feaab-efc8-435a-bb3c-ab4e33ed1ca2","savedPayload":{"position":{"x":28471.48902762805,"y":31243.050812971258},"targetPosition":{"x":28259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading Engine","name":"Low-Frequency","id":"eb20f622-71bf-4479-a574-d2320e1d4bd1"}}},"id":"ce648922-fef2-44e3-8d76-2bd7ab72a29f","savedPayload":{"position":{"x":28259.356993272086,"y":31030.918778615294},"targetPosition":{"x":27959.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"60a5e5c0-cfb3-4488-b46c-55d637212aa5","savedPayload":{"position":{"x":27959.356993272086,"y":31030.918778615294},"targetPosition":{"x":27659.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Trading","id":"a8c8d761-96e5-4a86-9285-6c3881d61442"}}}],"id":"cbfbb9e7-9c30-4482-8a9f-4c90771feffc","savedPayload":{"position":{"x":27659.356993272086,"y":31030.918778615294},"targetPosition":{"x":27359.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"08222935-2499-4a3e-a927-4f5dfbc392df","savedPayload":{"position":{"x":27359.356993272086,"y":31030.918778615294},"targetPosition":{"x":27059.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"56c5656b-a7e0-42ed-92d6-631e78ca99d0","savedPayload":{"position":{"x":27059.356993272086,"y":31030.918778615294},"targetPosition":{"x":26759.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1ce02342-473e-4614-ac76-c7788f56ab8e","savedPayload":{"position":{"x":26759.356993272086,"y":31030.918778615294},"targetPosition":{"x":26459.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"2db856e0-4719-408c-88bc-5b47d412c066","savedPayload":{"position":{"x":26459.356993272086,"y":31030.918778615294},"targetPosition":{"x":26159.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"ba36975c-08d6-458d-b7c0-eb4684a85b5d","savedPayload":{"position":{"x":26159.356993272086,"y":31030.918778615294},"targetPosition":{"x":25859.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"55c01047-3fce-41b3-9214-2e885f28b987","savedPayload":{"position":{"x":25859.356993272086,"y":31030.918778615294},"targetPosition":{"x":25559.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"8117db0a-e418-4f56-8fe4-fda2ddac1cbb","savedPayload":{"position":{"x":25559.356993272086,"y":31030.918778615294},"targetPosition":{"x":25259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"productionTradingTasks":{"type":"Production Trading Tasks","name":"New Production Trading Tasks","project":"Superalgos","projectTradingTasks":[{"type":"Project Trading Tasks","name":"Superalgos","project":"Superalgos","exchangeTradingTasks":[{"type":"Exchange Trading Tasks","name":"Binance","project":"Superalgos","marketTradingTasks":[{"type":"Market Trading Tasks","name":"Binance BTC/USDT","project":"Superalgos","tradingMineTasks":[{"type":"Trading Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Lightning Strike","project":"Superalgos","bot":{"type":"Trading Bot Instance","name":"Low Frequency","config":"{}","project":"Superalgos","processes":[{"type":"Trading Process Instance","name":"Low Frequency Trading","project":"Superalgos","session":{"type":"Live Trading Session","name":"Lightning Strike","config":"{\"folderName\":\"Lightning-Strike\"}","project":"Superalgos","tradingParameters":{"type":"Trading Parameters","name":"New Parameters","project":"Superalgos","sessionBaseAsset":{"type":"Session Base Asset","name":"","config":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0\n}","project":"Superalgos","id":"5db563b5-a8d6-48c6-a34e-bbca8825ce37","savedPayload":{"position":{"x":27214.318791376507,"y":32665.54775609566},"targetPosition":{"x":27341.104269898715,"y":32937.440092206656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sessionQuotedAsset":{"type":"Session Quoted Asset","name":"","config":"{\n\"initialBalance\": 100\n}","project":"Superalgos","id":"f6cd46c1-66df-422c-82d4-02ac8e37f689","savedPayload":{"position":{"x":27314.957547074417,"y":32638.58168277913},"targetPosition":{"x":27341.104269898715,"y":32937.440092206656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","config":"{ \n\"label\": \"01-min\"\n}","project":"Superalgos","id":"727de4cc-40e6-4064-843c-8cb3a9f2fcdf","savedPayload":{"position":{"x":27418.749983429472,"y":32647.662344319935},"targetPosition":{"x":27341.104269898715,"y":32937.440092206656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","config":"{ \n\"marketOrderRate\": 0.1,\n\"stopLoss\": 0.2,\n\"takeProfit\": 0.3\n}","project":"Superalgos","id":"598dc355-73c9-4e7f-a0e9-ee5fd7952825","savedPayload":{"position":{"x":27513.177200804028,"y":32691.69447891996},"targetPosition":{"x":27341.104269898715,"y":32937.440092206656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","config":"{ \n\"maker\": 0.1,\n\"taker\": 0.1\n}","project":"Superalgos","id":"a3646bab-4d27-48a7-b17c-79d6da48f64d","savedPayload":{"position":{"x":27586.849883185412,"y":32765.367161301343},"targetPosition":{"x":27341.104269898715,"y":32937.440092206656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"snapshots":{"type":"Snapshots","name":"New Snapshots","config":"{ \n\"strategy\": true,\n\"position\": true\n}","project":"Superalgos","id":"5021a926-442a-4341-8844-8a432293ecb1","savedPayload":{"position":{"x":27630.882017785436,"y":32859.7943786759},"targetPosition":{"x":27341.104269898715,"y":32937.440092206656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"heartbeats":{"type":"Heartbeats","name":"New Heartbeats","config":"{ \n\"date\": true,\n\"candleIndex\": false\n}","project":"Superalgos","id":"e8cedec0-1bc2-46ba-98de-b7ff746a74c8","savedPayload":{"position":{"x":27639.96267932624,"y":32963.586815030954},"targetPosition":{"x":27341.104269898715,"y":32937.440092206656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedParameters":{"type":"User Defined Parameters","name":"New User Defined Parameters","config":"{ \n\"param1Name\": \"A text string value example\",\n\"param2Name\": 0\n}","project":"Superalgos","id":"67da1d57-62ff-424c-ab2e-034e008fc079","savedPayload":{"position":{"x":27612.99660600971,"y":33064.225570728864},"targetPosition":{"x":27341.104269898715,"y":32937.440092206656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"726c35b1-e30b-4620-819f-a88a955f1902","savedPayload":{"position":{"x":27341.104269898715,"y":32937.440092206656},"targetPosition":{"x":27128.97223554275,"y":33149.57212656262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingSystemReference":{"type":"Trading System Reference","name":"Lightning Strike","project":"Superalgos","id":"ff1cd7c1-9415-4c49-8ecf-188fd0c60ea4","savedPayload":{"position":{"x":27428.97223554275,"y":33149.57212656262},"targetPosition":{"x":27128.97223554275,"y":33149.57212656262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Lightning Strike","id":"628b758d-ffff-445f-9d4f-8aa480a13db3"}}},"tradingEngineReference":{"type":"Trading Engine Reference","name":"Low-Frequency","project":"Superalgos","id":"5fd0a826-0819-4f19-a999-66cc64be0272","savedPayload":{"position":{"x":27341.104269898715,"y":33361.70416091858},"targetPosition":{"x":27128.97223554275,"y":33149.57212656262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading Engine","name":"Low-Frequency","id":"eb20f622-71bf-4479-a574-d2320e1d4bd1"}}},"id":"1ce123af-467f-4295-b317-dba8729faf25","savedPayload":{"position":{"x":27128.97223554275,"y":33149.57212656262},"targetPosition":{"x":26828.97223554275,"y":33149.57212656262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Resistances and Supports Multi-Period-Daily","project":"Superalgos","id":"0d54601b-fcac-42c9-8ce6-d532bfc81de5","savedPayload":{"position":{"x":26978.97223554275,"y":33409.37974769795},"targetPosition":{"x":26828.97223554275,"y":33149.57212656262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"7e2fdde9-8b64-44a3-85f1-10c3935bd3e3"}}},"id":"4d7e7fa0-afcb-4b2f-983b-ceacea91b29d","savedPayload":{"position":{"x":26828.97223554275,"y":33149.57212656262},"targetPosition":{"x":26569.16461440742,"y":32999.57212656262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Trading","id":"a8c8d761-96e5-4a86-9285-6c3881d61442"}}}],"id":"2451fc98-0396-44df-902c-a3eaa90f0618","savedPayload":{"position":{"x":26569.16461440742,"y":32999.57212656262},"targetPosition":{"x":26309.356993272086,"y":32849.57212656262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"keyReference":{"type":"Key Reference","name":"Key for Lighting Strike","project":"Superalgos","id":"a0622fc9-c4e3-44c3-963d-7ae5fa163e99","savedPayload":{"position":{"x":26309.356993272086,"y":33149.57212656262},"targetPosition":{"x":26309.356993272086,"y":32849.57212656262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key for Lighting Strike","id":"e85bbbd6-aca8-450f-9237-788062de5761"}}},"id":"c8492c4a-a7a7-4a80-a25a-a610377e6180","savedPayload":{"position":{"x":26309.356993272086,"y":32849.57212656262},"targetPosition":{"x":26159.356993272086,"y":32589.76450542729},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dd73b670-11d7-4cdc-848b-c063fb7a3848","savedPayload":{"position":{"x":26159.356993272086,"y":32589.76450542729},"targetPosition":{"x":26009.356993272086,"y":32329.956884291958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1e087225-153c-4c7e-b9ec-2a36f32ee511","savedPayload":{"position":{"x":26009.356993272086,"y":32329.956884291958},"targetPosition":{"x":25859.356993272086,"y":32070.149263156625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"013985a8-7bf7-4b91-8e2d-f4e8bd81cb62","savedPayload":{"position":{"x":25859.356993272086,"y":32070.149263156625},"targetPosition":{"x":25709.356993272086,"y":31810.341642021293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"d539c0ac-aaeb-4c44-9dba-ac26df819a8d","savedPayload":{"position":{"x":25709.356993272086,"y":31810.341642021293},"targetPosition":{"x":25559.356993272086,"y":31550.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"f4fc305a-6764-427e-86a7-6557118a4b35","savedPayload":{"position":{"x":25559.356993272086,"y":31550.53402088596},"targetPosition":{"x":25409.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"673caa5f-511d-4688-9305-e5f0f0f780cd","savedPayload":{"position":{"x":25409.356993272086,"y":31290.726399750627},"targetPosition":{"x":25259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataStorage":{"type":"Data Storage","name":"New Data Storage","project":"Superalgos","dataMinesData":{"type":"Data Mines Data","name":"New Data Mines Data","project":"Superalgos","projectDataProducts":[{"type":"Project Data Products","name":"Superalgos","project":"Superalgos","exchangeDataProducts":[{"type":"Exchange Data Products","name":"Binance","project":"Superalgos","marketDataProducts":[{"type":"Market Data Products","name":"Binance BTC/USDT","project":"Superalgos","dataProducts":[],"dataMineProducts":[{"type":"Data Mine Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Candles Volumes","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Candles","project":"Superalgos","id":"b9c30464-73e5-4f5c-b422-9ba1a02b78ab","savedPayload":{"position":{"x":25635.373168930517,"y":32126.257878002114},"targetPosition":{"x":25538.373168930517,"y":32224.257878002114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","project":"Superalgos","id":"07c11481-7dbd-477d-8bf7-79212542a6aa","savedPayload":{"position":{"x":25617.373168930517,"y":32183.257878002114},"targetPosition":{"x":25538.373168930517,"y":32224.257878002114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}}],"dataProductFolders":[],"id":"73bb62ff-8212-4387-b160-40ee8de2a133","savedPayload":{"position":{"x":25028.372734651544,"y":33055.05755156473},"targetPosition":{"x":24913.567704942016,"y":32777.89369181134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Products","name":"Resistances and Supports","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Resistances","project":"Superalgos","id":"a1669770-1bbe-40f7-acb3-ded15272935f","savedPayload":{"position":{"x":25621.373168930517,"y":32076.257878002114},"targetPosition":{"x":25592.373168930517,"y":32158.257878002114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Resistances","id":"7a734501-a0fb-4305-803e-7e95d477c513"}}},{"type":"Data Product","name":"Supports","project":"Superalgos","id":"64899503-b618-493a-ba94-bfad2051a611","savedPayload":{"position":{"x":25644.373168930517,"y":32138.257878002114},"targetPosition":{"x":25592.373168930517,"y":32158.257878002114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Supports","id":"bc3c43de-6312-47d4-ae3d-0c95c1b039e0"}}}],"dataProductFolders":[],"id":"a1855a09-0948-43de-bba7-8900c5c161d8","savedPayload":{"position":{"x":24730.939276239398,"y":33015.89969389871},"targetPosition":{"x":24913.567704942016,"y":32777.89369181134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d37d8bf1-be3b-49ac-805b-0ddb3944e6a0","savedPayload":{"position":{"x":24913.567704942016,"y":32777.89369181134},"targetPosition":{"x":24952.72556260803,"y":32480.460233399197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}}],"id":"6d7273da-5366-4fe3-9749-e643038abd7a","savedPayload":{"position":{"x":24952.72556260803,"y":32480.460233399197},"targetPosition":{"x":24991.883420274044,"y":32183.026774987055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"9bc0aea4-0596-449c-91bd-4fb4cb672aa8","savedPayload":{"position":{"x":24991.883420274044,"y":32183.026774987055},"targetPosition":{"x":25031.041277940058,"y":31885.593316574912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"db554581-93fa-465d-89f7-50f026e839d8","savedPayload":{"position":{"x":25031.041277940058,"y":31885.593316574912},"targetPosition":{"x":25070.19913560607,"y":31588.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"32e7c122-fa5a-4d00-9d71-d54e890e32de","savedPayload":{"position":{"x":25070.19913560607,"y":31588.15985816277},"targetPosition":{"x":25109.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingMinesData":{"type":"Trading Mines Data","name":"New Trading Mines Data","project":"Superalgos","projectTradingProducts":[{"type":"Project Trading Products","name":"Superalgos","project":"Superalgos","exchangeTradingProducts":[{"type":"Exchange Trading Products","name":"Binance","project":"Superalgos","marketTradingProducts":[{"type":"Market Trading Products","name":"Binance BTC/USDT","project":"Superalgos","tradingSessionReferences":[{"type":"Trading Session Reference","name":"Lightning Strike Backtesting Session","project":"Superalgos","dataProducts":[],"tradingMineProducts":[{"type":"Trading Mine Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Low Frequency","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Trading Engine","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Episode","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episode Counters","project":"Superalgos","id":"a01b42b0-ea87-47ab-b0e9-52d4b10cb631","savedPayload":{"position":{"x":24463.592002018682,"y":31980.531877463392},"targetPosition":{"x":24377.592002018682,"y":31972.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Counters","id":"d81c6019-864e-42f5-94ba-2f249b865f85"}}},{"type":"Data Product","name":"Episode Statistics","project":"Superalgos","id":"559a20a7-6697-4245-9d6c-ad7c0e31ff84","savedPayload":{"position":{"x":24313.592002018682,"y":31909.531877463392},"targetPosition":{"x":24377.592002018682,"y":31972.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Statistics","id":"400c7f49-37da-41fb-b83d-879960aa74ff"}}},{"type":"Data Product","name":"Episode Candle","project":"Superalgos","id":"24fab05f-ff78-4cca-af61-d4d0bb2f2960","savedPayload":{"position":{"x":24420.592002018682,"y":31952.531877463392},"targetPosition":{"x":24377.592002018682,"y":31972.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Candle","id":"b9a58113-cf27-4d57-9810-87a2cc158804"}}},{"type":"Data Product","name":"Episode Balances","project":"Superalgos","id":"7c580919-08ce-4aff-9e84-888fdf07caec","savedPayload":{"position":{"x":24281.592002018682,"y":31964.531877463392},"targetPosition":{"x":24377.592002018682,"y":31972.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Balances","id":"a9a53d82-133b-4417-b639-f9a56d338233"}}},{"type":"Data Product","name":"Distance To Event","project":"Superalgos","id":"389797d4-8456-4258-9adf-246a6ba69016","savedPayload":{"position":{"x":24441.592002018682,"y":31984.531877463392},"targetPosition":{"x":24377.592002018682,"y":31972.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Distance To Event","id":"8ea88d6c-7d7f-4152-b781-ea108df52c63"}}},{"type":"Data Product","name":"Episode Base Asset","project":"Superalgos","id":"323c7b0b-42b1-4ff0-9d4b-36c2fd605caa","savedPayload":{"position":{"x":24417.592002018682,"y":31995.531877463392},"targetPosition":{"x":24377.592002018682,"y":31972.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Base Asset","id":"234969ff-eab1-4d59-b6fa-79433c9a20e9"}}},{"type":"Data Product","name":"Episode Quoted Asset","project":"Superalgos","id":"63594fc6-3b89-4507-bca8-2d43ef618cbe","savedPayload":{"position":{"x":24475.592002018682,"y":31901.531877463392},"targetPosition":{"x":24377.592002018682,"y":31972.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Quoted Asset","id":"ae525e31-d6a8-47d2-9021-3f2ddb9615b0"}}},{"type":"Data Product","name":"Current Episode","project":"Superalgos","id":"73bb3f9e-b112-4e5a-bce9-6d4bec41cc6c","savedPayload":{"position":{"x":24306.592002018682,"y":32068.531877463392},"targetPosition":{"x":24377.592002018682,"y":31972.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Episode","id":"b8da0132-ba28-46ec-aa54-eb9eaac56ce7"}}}],"dataProductFolders":[],"id":"a606455e-f5ce-4535-b1af-6d9dd529f91c","savedPayload":{"position":{"x":24377.592002018682,"y":31972.531877463392},"targetPosition":{"x":24421.592002018682,"y":32058.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Strategy","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Strategy","project":"Superalgos","id":"515f5fd6-d860-44d4-b5d6-a19acd9c5c86","savedPayload":{"position":{"x":24475.592002018682,"y":31953.531877463392},"targetPosition":{"x":24454.592002018682,"y":32022.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Strategy","id":"895d8a04-ef45-41a7-909a-ba31013ffb90"}}},{"type":"Data Product","name":"Last Strategy","project":"Superalgos","id":"556e97e8-eba3-419d-869d-950cc99371da","savedPayload":{"position":{"x":24448.592002018682,"y":32071.531877463392},"targetPosition":{"x":24454.592002018682,"y":32022.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Strategy","id":"0625f524-2b97-4b4d-8a90-590ffc62ecd3"}}}],"dataProductFolders":[],"id":"3af0887b-ae23-4f57-b376-4a540fe13112","savedPayload":{"position":{"x":24454.592002018682,"y":32022.531877463392},"targetPosition":{"x":24421.592002018682,"y":32058.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Position","project":"Superalgos","id":"d33abc39-702b-4d7a-8435-43d90e0f2c3a","savedPayload":{"position":{"x":24352.592002018682,"y":32024.531877463392},"targetPosition":{"x":24447.592002018682,"y":32101.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Position","id":"832ecada-8da3-4ba6-b6e9-be34dd5f7ce9"}}},{"type":"Data Product","name":"Last Position","project":"Superalgos","id":"d681fd5f-64af-4f39-9f6d-a767bef7692f","savedPayload":{"position":{"x":24398.592002018682,"y":32035.531877463392},"targetPosition":{"x":24447.592002018682,"y":32101.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Position","id":"477cd6d5-862a-44d0-9313-786a4e63a602"}}}],"dataProductFolders":[],"id":"895feaf2-ae82-4b8e-ada6-780beab73ea9","savedPayload":{"position":{"x":24447.592002018682,"y":32101.531877463392},"targetPosition":{"x":24421.592002018682,"y":32058.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Open Stage","project":"Superalgos","id":"b0961496-1af9-48cd-bbeb-ac5973192e78","savedPayload":{"position":{"x":24555.592002018682,"y":31897.531877463392},"targetPosition":{"x":24520.592002018682,"y":31974.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stage","id":"73c3c041-ba2a-4798-a362-a453409b518a"}}},{"type":"Data Product","name":"Close Stage","project":"Superalgos","id":"0c9cf78d-ce6e-4318-811d-e748ca72845d","savedPayload":{"position":{"x":24541.592002018682,"y":31929.531877463392},"targetPosition":{"x":24520.592002018682,"y":31974.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stage","id":"2bb9bb41-1ff5-4f83-aa5b-bfc4c9f06a9a"}}},{"type":"Data Product","name":"Trigger Stage","project":"Superalgos","id":"e298787f-b7f2-4334-931e-38b9441e43f9","savedPayload":{"position":{"x":24504.592002018682,"y":31961.531877463392},"targetPosition":{"x":24520.592002018682,"y":31974.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stage","id":"b6cff826-9056-4fbd-8eca-cbd6cceec962"}}},{"type":"Data Product","name":"Manage Stage","project":"Superalgos","id":"4719b69d-b23e-4037-8c0a-b641fd8ab14c","savedPayload":{"position":{"x":24444.592002018682,"y":31908.531877463392},"targetPosition":{"x":24520.592002018682,"y":31974.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stage","id":"bd691611-e7a6-49a8-b07d-c15360b55e40"}}}],"dataProductFolders":[],"id":"9fe11205-286a-4610-81ec-29cbc70d6075","savedPayload":{"position":{"x":24520.592002018682,"y":31974.531877463392},"targetPosition":{"x":24421.592002018682,"y":32058.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"90834a1b-cc7e-48a9-be5c-0e30380af4bd","savedPayload":{"position":{"x":24483.592002018682,"y":31990.531877463392},"targetPosition":{"x":24511.592002018682,"y":32023.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"7c769317-2639-4460-8b88-9dc92f7b0585"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"e2112d60-5fc2-4e67-befe-d4fbd6c1de77","savedPayload":{"position":{"x":24491.592002018682,"y":32003.531877463392},"targetPosition":{"x":24511.592002018682,"y":32023.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"9cc7645a-54fe-40d6-9896-9278167011fb"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"e734b6be-ba40-468c-a94f-1153dc85e00c","savedPayload":{"position":{"x":24445.592002018682,"y":32089.531877463392},"targetPosition":{"x":24511.592002018682,"y":32023.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"4c827ee0-a29b-4b65-8438-03e2ea98b410"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"9a973229-4d9d-45af-b5aa-64906a915f6e","savedPayload":{"position":{"x":24422.592002018682,"y":32032.531877463392},"targetPosition":{"x":24511.592002018682,"y":32023.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2c753cd8-36d8-466c-bd80-1ebfa8e314dc"}}},{"type":"Data Product","name":"Last Market Order","project":"Superalgos","id":"56517fe9-64da-4404-83f3-005106bc1c0a","savedPayload":{"position":{"x":24412.592002018682,"y":32018.531877463392},"targetPosition":{"x":24511.592002018682,"y":32023.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Market Order","id":"6df1ac87-92d5-4788-b0bc-f3543b283ef0"}}},{"type":"Data Product","name":"Last Limit Order","project":"Superalgos","id":"d00c76e7-4be0-4518-9892-a0f6df943951","savedPayload":{"position":{"x":24594.592002018682,"y":31949.531877463392},"targetPosition":{"x":24511.592002018682,"y":32023.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Limit Order","id":"c24ec6a1-e937-4d20-93eb-4faf2a0becc3"}}}],"dataProductFolders":[],"id":"b5154bc1-4311-4148-b396-5ebca1c62417","savedPayload":{"position":{"x":24511.592002018682,"y":32023.531877463392},"targetPosition":{"x":24421.592002018682,"y":32058.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"89edd698-1d64-4500-bcef-d13ea74bee1c","savedPayload":{"position":{"x":24421.592002018682,"y":32058.531877463392},"targetPosition":{"x":24436.592002018682,"y":31978.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Trading System","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trading System Errors","project":"Superalgos","id":"a0c29c57-0a20-4084-9697-142300f62f9c","savedPayload":{"position":{"x":24383.592002018682,"y":32063.531877463392},"targetPosition":{"x":24378.592002018682,"y":32060.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Errors","id":"1d9c570d-77c7-40ac-a61e-c5a57a411de8"}}},{"type":"Data Product","name":"Trading System Highlights","project":"Superalgos","id":"aa0fe882-89a8-4811-8988-c589554afe9d","savedPayload":{"position":{"x":24294.592002018682,"y":32008.531877463392},"targetPosition":{"x":24378.592002018682,"y":32060.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Highlights","id":"319f660a-78be-4cf4-8052-877837cad806"}}},{"type":"Data Product","name":"Trading System Values","project":"Superalgos","id":"bbc65054-b22b-4cbb-816b-529672e2f498","savedPayload":{"position":{"x":24324.592002018682,"y":32032.531877463392},"targetPosition":{"x":24378.592002018682,"y":32060.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Values","id":"c90c009b-588d-45d4-aff1-05e375181dfa"}}},{"type":"Data Product","name":"Trading System Status","project":"Superalgos","id":"776a3ece-8255-4e80-b60f-85bb818b561f","savedPayload":{"position":{"x":24340.592002018682,"y":32026.531877463392},"targetPosition":{"x":24378.592002018682,"y":32060.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Status","id":"eed48c80-35c5-49fa-b12d-18e7280ffb8f"}}},{"type":"Data Product","name":"Trading System Progress","project":"Superalgos","id":"7593aaf9-0505-4b58-9920-235340ff2d2f","savedPayload":{"position":{"x":24325.592002018682,"y":32003.531877463392},"targetPosition":{"x":24378.592002018682,"y":32060.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Progress","id":"04c8606b-5e59-4e7d-b3ac-387bfffcd300"}}},{"type":"Data Product","name":"Trading System Running","project":"Superalgos","id":"3e2e6105-f41f-42e2-bce5-74ebb3b81cbd","savedPayload":{"position":{"x":24332.592002018682,"y":32039.531877463392},"targetPosition":{"x":24378.592002018682,"y":32060.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Running","id":"17236f59-6ef2-4cc3-913c-1ff6db052236"}}},{"type":"Data Product","name":"Trading System Announcements","project":"Superalgos","id":"faab4399-898b-4393-8c27-fa2f3109c60a","savedPayload":{"position":{"x":24307.592002018682,"y":32057.531877463392},"targetPosition":{"x":24378.592002018682,"y":32060.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Announcements","id":"4a6f828a-9671-431e-8257-fc920943581e"}}},{"type":"Data Product","name":"Trading System Warnings","project":"Superalgos","id":"9ff0f035-ca7f-4e65-a82c-186fa7f09157","savedPayload":{"position":{"x":24297.592002018682,"y":32133.531877463392},"targetPosition":{"x":24378.592002018682,"y":32060.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Warnings","id":"34310596-466a-4e9a-a5a2-256b0fe3e339"}}},{"type":"Data Product","name":"Trading System Infos","project":"Superalgos","id":"04210a59-070a-45f1-a2a0-cf50bd4879f7","savedPayload":{"position":{"x":24389.592002018682,"y":31999.531877463392},"targetPosition":{"x":24378.592002018682,"y":32060.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Infos","id":"020ad519-0fc6-4f2f-9f26-b2c7de118fb8"}}}],"dataProductFolders":[],"id":"1a16bc12-581d-4626-846c-895f08e65fdf","savedPayload":{"position":{"x":24378.592002018682,"y":32060.531877463392},"targetPosition":{"x":24436.592002018682,"y":31978.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Objects","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episodes","project":"Superalgos","id":"73dff61a-7b05-4ca6-b963-99d6c578e9ba","savedPayload":{"position":{"x":24433.592002018682,"y":31946.531877463392},"targetPosition":{"x":24528.592002018682,"y":31946.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episodes","id":"aeec080e-8caf-4976-8187-ba4e725b73b0"}}},{"type":"Data Product","name":"Strategies","project":"Superalgos","id":"a9c454c8-9075-4dcf-bfe9-ebd0c1658049","savedPayload":{"position":{"x":24490.592002018682,"y":31966.531877463392},"targetPosition":{"x":24528.592002018682,"y":31946.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"21db6fce-8450-4b07-9015-d81a339fd030"}}}],"dataProductFolders":[{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"cad1eecc-e897-4086-b42c-fcfd843c04cc","savedPayload":{"position":{"x":24570.592002018682,"y":32052.531877463392},"targetPosition":{"x":24586.592002018682,"y":31971.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"db256083-9aa2-48e1-8fd6-3425a5085302"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"fdf22e85-7071-4847-bdba-e3fb43a616ed","savedPayload":{"position":{"x":24567.592002018682,"y":32057.531877463392},"targetPosition":{"x":24586.592002018682,"y":31971.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"1958f79b-5c6c-4874-9154-98c314822ed7"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"d2b1ab31-d8a1-422b-a717-33ee7df9b07b","savedPayload":{"position":{"x":24545.592002018682,"y":31956.531877463392},"targetPosition":{"x":24586.592002018682,"y":31971.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"5deceb32-c7ab-4560-818a-0f0b9d6632fb"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"3b5a12db-b969-4400-8b9d-afb9b7b81642","savedPayload":{"position":{"x":24672.592002018682,"y":31889.531877463392},"targetPosition":{"x":24586.592002018682,"y":31971.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2a1d405b-2fbe-4ed4-a76a-d2c7be59d20e"}}}],"dataProductFolders":[],"id":"97736b8e-761c-43f2-83bf-df8f5d41b963","savedPayload":{"position":{"x":24586.592002018682,"y":31971.531877463392},"targetPosition":{"x":24528.592002018682,"y":31946.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trigger Stages","project":"Superalgos","id":"9fc29be1-9393-4933-95d3-bebddd73c05e","savedPayload":{"position":{"x":24507.592002018682,"y":31875.531877463392},"targetPosition":{"x":24487.592002018682,"y":31875.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stages","id":"18cc2e79-7e57-418c-b635-6c68fc11d681"}}},{"type":"Data Product","name":"Open Stages","project":"Superalgos","id":"b555388f-db93-4db1-91be-7772550afa70","savedPayload":{"position":{"x":24439.592002018682,"y":31926.531877463392},"targetPosition":{"x":24487.592002018682,"y":31875.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stages","id":"d5938c00-0849-466d-ae14-4ea91b571678"}}},{"type":"Data Product","name":"Manage Stages","project":"Superalgos","id":"41953904-e48c-4176-bf0f-09d133bc444c","savedPayload":{"position":{"x":24441.592002018682,"y":31883.531877463392},"targetPosition":{"x":24487.592002018682,"y":31875.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stages","id":"8fab86b3-db8d-4113-8418-1d256bd98cf2"}}},{"type":"Data Product","name":"Close Stages","project":"Superalgos","id":"47b4553c-7f2e-438c-9f4b-9ba30e943a6c","savedPayload":{"position":{"x":24463.592002018682,"y":31931.531877463392},"targetPosition":{"x":24487.592002018682,"y":31875.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stages","id":"ba911e61-f951-48cd-b547-9a70aa211100"}}}],"dataProductFolders":[],"id":"ac789224-64dc-4ff5-a316-2dfbb6347b8a","savedPayload":{"position":{"x":24487.592002018682,"y":31875.531877463392},"targetPosition":{"x":24528.592002018682,"y":31946.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Positions","project":"Superalgos","id":"6e49b57f-8c94-410f-985b-82c126155b11","savedPayload":{"position":{"x":24693.592002018682,"y":31870.531877463392},"targetPosition":{"x":24616.592002018682,"y":31921.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Positions","id":"1eabba24-cbd4-4cbf-95e0-c5135349d41d"}}},{"type":"Data Product","name":"Position Base Asset","project":"Superalgos","id":"ae8fa9a5-95b6-4769-8ade-f9854e6855ba","savedPayload":{"position":{"x":24673.592002018682,"y":32018.531877463392},"targetPosition":{"x":24616.592002018682,"y":31921.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Base Asset","id":"b371b039-f6c8-4f60-84cb-52f55c96c84d"}}},{"type":"Data Product","name":"Position Quoted Asset","project":"Superalgos","id":"9e9b19ee-9c51-4586-b74d-d2880f13f71f","savedPayload":{"position":{"x":24656.592002018682,"y":31987.531877463392},"targetPosition":{"x":24616.592002018682,"y":31921.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Quoted Asset","id":"a376f02b-a5d2-4079-b5cd-ab7dc894b909"}}},{"type":"Data Product","name":"Stop Loss","project":"Superalgos","id":"01491591-0462-453c-91e0-6da6f554a729","savedPayload":{"position":{"x":24536.592002018682,"y":31883.531877463392},"targetPosition":{"x":24616.592002018682,"y":31921.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Stop Loss","id":"c18bdc82-216a-4b1d-8850-5c3c9dc2000b"}}},{"type":"Data Product","name":"Take Profit","project":"Superalgos","id":"719dd8a6-58ab-41c6-9693-9b67c12232d2","savedPayload":{"position":{"x":24558.592002018682,"y":31830.531877463392},"targetPosition":{"x":24616.592002018682,"y":31921.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Take Profit","id":"2542c7d0-fa26-4b52-a59a-a3630e52eb89"}}}],"dataProductFolders":[],"id":"2a4cb5a2-8e6a-4b14-816a-b8e0cce4dae5","savedPayload":{"position":{"x":24616.592002018682,"y":31921.531877463392},"targetPosition":{"x":24528.592002018682,"y":31946.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"39e122ca-cdc4-49a6-91a6-2f2c05f62ea0","savedPayload":{"position":{"x":24528.592002018682,"y":31946.531877463392},"targetPosition":{"x":24436.592002018682,"y":31978.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"363150a9-d4e7-4e2e-b327-89109935718c","savedPayload":{"position":{"x":24436.592002018682,"y":31978.531877463392},"targetPosition":{"x":24383.592002018682,"y":32012.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13a2b4f9-2c05-49b2-b42c-32ffa71ae0b7","savedPayload":{"position":{"x":24383.592002018682,"y":32012.531877463392},"targetPosition":{"x":24343.592002018682,"y":31925.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"a5de30a4-022e-4f8a-afd0-3eb6d8600ae8","savedPayload":{"position":{"x":24509.356993272086,"y":32629.956884291958},"targetPosition":{"x":24509.356993272086,"y":32329.956884291958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"Lightning Strike","id":"ce648922-fef2-44e3-8d76-2bd7ab72a29f"}}},{"type":"Trading Session Reference","name":"Lightning Strike Live Trading Session","project":"Superalgos","dataProducts":[],"tradingMineProducts":[{"type":"Trading Mine Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Low Frequency","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Trading Engine","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Episode","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episode Counters","project":"Superalgos","id":"dc6cc4ef-4bd7-4837-8442-919462314db3","savedPayload":{"position":{"x":24040.07658106541,"y":32774.458634291004},"targetPosition":{"x":23667.871774199913,"y":32820.15963806794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Counters","id":"d81c6019-864e-42f5-94ba-2f249b865f85"}}},{"type":"Data Product","name":"Episode Statistics","project":"Superalgos","id":"776ed571-8321-47aa-8cfb-c8ebf565dace","savedPayload":{"position":{"x":24033.260548494378,"y":32904.51628344689},"targetPosition":{"x":23667.871774199913,"y":32820.15963806794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Statistics","id":"400c7f49-37da-41fb-b83d-879960aa74ff"}}},{"type":"Data Product","name":"Episode Candle","project":"Superalgos","id":"ded93703-a48d-44be-9703-878c28f949cd","savedPayload":{"position":{"x":23982.373237179447,"y":33024.39927619857},"targetPosition":{"x":23667.871774199913,"y":32820.15963806794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Candle","id":"b9a58113-cf27-4d57-9810-87a2cc158804"}}},{"type":"Data Product","name":"Episode Balances","project":"Superalgos","id":"e702f1dd-1c91-4d05-ac55-19db363f5f3a","savedPayload":{"position":{"x":23893.552407881933,"y":33119.64795433567},"targetPosition":{"x":23667.871774199913,"y":32820.15963806794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Balances","id":"a9a53d82-133b-4417-b639-f9a56d338233"}}},{"type":"Data Product","name":"Distance To Event","project":"Superalgos","id":"b8abea53-8221-47bd-91a2-cdcdd2ad1027","savedPayload":{"position":{"x":23777.51116347094,"y":33178.77392155408},"targetPosition":{"x":23667.871774199913,"y":32820.15963806794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Distance To Event","id":"8ea88d6c-7d7f-4152-b781-ea108df52c63"}}},{"type":"Data Product","name":"Episode Base Asset","project":"Superalgos","id":"18bcbd26-c237-4acb-96f4-d9c95d833a42","savedPayload":{"position":{"x":23648.24579060881,"y":33194.6457136009},"targetPosition":{"x":23667.871774199913,"y":32820.15963806794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Base Asset","id":"234969ff-eab1-4d59-b6fa-79433c9a20e9"}}},{"type":"Data Product","name":"Episode Quoted Asset","project":"Superalgos","id":"c444f4b5-fa67-4c21-afa8-1f998da7a2a2","savedPayload":{"position":{"x":23521.347601016434,"y":33165.348958112605},"targetPosition":{"x":23667.871774199913,"y":32820.15963806794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Quoted Asset","id":"ae525e31-d6a8-47d2-9021-3f2ddb9615b0"}}},{"type":"Data Product","name":"Current Episode","project":"Superalgos","id":"057570bd-69d4-4f3c-b0d4-94ee32f61e65","savedPayload":{"position":{"x":23412.122389176475,"y":33094.417276175125},"targetPosition":{"x":23667.871774199913,"y":32820.15963806794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Episode","id":"b8da0132-ba28-46ec-aa54-eb9eaac56ce7"}}}],"dataProductFolders":[],"id":"6a331de0-7872-4f86-bea0-6dd802c97921","savedPayload":{"position":{"x":23667.871774199913,"y":32820.15963806794},"targetPosition":{"x":23497.625336797584,"y":32486.0321914973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Strategy","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Strategy","project":"Superalgos","id":"88dd680c-a81b-48ae-96ba-838281abfa35","savedPayload":{"position":{"x":23648.24579060881,"y":33194.6457136009},"targetPosition":{"x":23477.99935320648,"y":32860.51826703026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Strategy","id":"895d8a04-ef45-41a7-909a-ba31013ffb90"}}},{"type":"Data Product","name":"Last Strategy","project":"Superalgos","id":"24af3ffc-6a52-4ee3-a30b-f068aa5b2062","savedPayload":{"position":{"x":23273.759715075845,"y":33175.01973000979},"targetPosition":{"x":23477.99935320648,"y":32860.51826703026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Strategy","id":"0625f524-2b97-4b4d-8a90-590ffc62ecd3"}}}],"dataProductFolders":[],"id":"74c10f36-887b-4233-81e5-abe365511bfa","savedPayload":{"position":{"x":23477.99935320648,"y":32860.51826703026},"targetPosition":{"x":23497.625336797584,"y":32486.0321914973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Position","project":"Superalgos","id":"25280962-e4e5-40df-9e42-9edfbad6f6d3","savedPayload":{"position":{"x":23273.759715075845,"y":33175.01973000979},"targetPosition":{"x":23293.38569866695,"y":32800.533654476836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Position","id":"832ecada-8da3-4ba6-b6e9-be34dd5f7ce9"}}},{"type":"Data Product","name":"Last Position","project":"Superalgos","id":"7a95a249-132d-4e0f-9182-cc7af45cacea","savedPayload":{"position":{"x":22959.25825209631,"y":32970.78009187916},"targetPosition":{"x":23293.38569866695,"y":32800.533654476836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Position","id":"477cd6d5-862a-44d0-9313-786a4e63a602"}}}],"dataProductFolders":[],"id":"7eca88a8-3724-4ca1-aa30-9227727eb834","savedPayload":{"position":{"x":23293.38569866695,"y":32800.533654476836},"targetPosition":{"x":23497.625336797584,"y":32486.0321914973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Open Stage","project":"Superalgos","id":"c9c4bca7-f918-4aa8-b538-ffe8aa31d5c2","savedPayload":{"position":{"x":23104.83496583686,"y":33026.66175662281},"targetPosition":{"x":23163.497890226947,"y":32656.27862889963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stage","id":"73c3c041-ba2a-4798-a362-a453409b518a"}}},{"type":"Data Product","name":"Close Stage","project":"Superalgos","id":"4201d7c0-43aa-4ac0-bd7e-ab26b688aa2d","savedPayload":{"position":{"x":22898.332847281992,"y":32921.44367184458},"targetPosition":{"x":23163.497890226947,"y":32656.27862889963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stage","id":"2bb9bb41-1ff5-4f83-aa5b-bfc4c9f06a9a"}}},{"type":"Data Product","name":"Trigger Stage","project":"Superalgos","id":"4fe24ddc-973f-4a5d-bf8a-d77090486125","savedPayload":{"position":{"x":22793.11476250377,"y":32714.941553289715},"targetPosition":{"x":23163.497890226947,"y":32656.27862889963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stage","id":"b6cff826-9056-4fbd-8eca-cbd6cceec962"}}},{"type":"Data Product","name":"Manage Stage","project":"Superalgos","id":"e2f3d69e-2f0a-4463-8e74-4f0768c4fb70","savedPayload":{"position":{"x":22829.37044365631,"y":32486.0321914973},"targetPosition":{"x":23163.497890226947,"y":32656.27862889963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stage","id":"bd691611-e7a6-49a8-b07d-c15360b55e40"}}}],"dataProductFolders":[],"id":"7236bd16-a6e3-48ac-89bf-dc8674b7e812","savedPayload":{"position":{"x":23163.497890226947,"y":32656.27862889963},"targetPosition":{"x":23497.625336797584,"y":32486.0321914973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"0e0b284a-5014-4ab0-ada0-4322c14a099e","savedPayload":{"position":{"x":22942.973442347367,"y":32795.291108279984},"targetPosition":{"x":23123.13926126462,"y":32466.406207906195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"7c769317-2639-4460-8b88-9dc92f7b0585"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"95b3db7a-9b62-4eab-a76b-4af8794da5a6","savedPayload":{"position":{"x":22818.117657046547,"y":32684.55024509317},"targetPosition":{"x":23123.13926126462,"y":32466.406207906195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"9cc7645a-54fe-40d6-9896-9278167011fb"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"1c6eed42-23aa-4174-aade-be29222acb8c","savedPayload":{"position":{"x":22753.675141305597,"y":32530.603279980434},"targetPosition":{"x":23123.13926126462,"y":32466.406207906195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"4c827ee0-a29b-4b65-8438-03e2ea98b410"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"a2f44cd5-090d-42e5-9eb7-73e732310e85","savedPayload":{"position":{"x":22762.409525702606,"y":32363.941297417976},"targetPosition":{"x":23123.13926126462,"y":32466.406207906195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2c753cd8-36d8-466c-bd80-1ebfa8e314dc"}}},{"type":"Data Product","name":"Last Market Order","project":"Superalgos","id":"8c24d559-ba52-46fe-81b4-8a6bf50c74b6","savedPayload":{"position":{"x":22842.590858287545,"y":32217.573747027367},"targetPosition":{"x":23123.13926126462,"y":32466.406207906195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Market Order","id":"6df1ac87-92d5-4788-b0bc-f3543b283ef0"}}},{"type":"Data Product","name":"Last Limit Order","project":"Superalgos","id":"c451c035-5ece-451f-836f-b5334cb3f967","savedPayload":{"position":{"x":22978.338242782465,"y":32120.49051724367},"targetPosition":{"x":23123.13926126462,"y":32466.406207906195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Limit Order","id":"c24ec6a1-e937-4d20-93eb-4faf2a0becc3"}}}],"dataProductFolders":[],"id":"ce9593a8-3e87-43bb-88c7-af50cf651806","savedPayload":{"position":{"x":23123.13926126462,"y":32466.406207906195},"targetPosition":{"x":23497.625336797584,"y":32486.0321914973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8be94a26-6821-48bb-8169-3eae2a1131af","savedPayload":{"position":{"x":23497.625336797584,"y":32486.0321914973},"targetPosition":{"x":23701.86497492822,"y":32171.530728517766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Trading System","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trading System Errors","project":"Superalgos","id":"ba606f99-2ae5-44dc-b7db-399e657830e1","savedPayload":{"position":{"x":23295.861450927674,"y":32622.443323337528},"targetPosition":{"x":23335.059624653044,"y":32249.497612574425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Errors","id":"1d9c570d-77c7-40ac-a61e-c5a57a411de8"}}},{"type":"Data Product","name":"Trading System Highlights","project":"Superalgos","id":"2d20d8ae-4afa-4e92-8de2-89e66e5efdee","savedPayload":{"position":{"x":23182.53338349962,"y":32592.0771591904},"targetPosition":{"x":23335.059624653044,"y":32249.497612574425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Highlights","id":"319f660a-78be-4cf4-8052-877837cad806"}}},{"type":"Data Product","name":"Trading System Values","project":"Superalgos","id":"f8a6219c-c7b4-410a-8aa4-1910583f51c8","savedPayload":{"position":{"x":23084.13564726847,"y":32528.17692212845},"targetPosition":{"x":23335.059624653044,"y":32249.497612574425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Values","id":"c90c009b-588d-45d4-aff1-05e375181dfa"}}},{"type":"Data Product","name":"Trading System Status","project":"Superalgos","id":"dcff6f56-7646-4505-aa93-6682a110f3f2","savedPayload":{"position":{"x":23010.300098233878,"y":32436.997612574425},"targetPosition":{"x":23335.059624653044,"y":32249.497612574425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Status","id":"eed48c80-35c5-49fa-b12d-18e7280ffb8f"}}},{"type":"Data Product","name":"Trading System Progress","project":"Superalgos","id":"0a9dff80-e462-4110-b988-11ce57bbbcd5","savedPayload":{"position":{"x":22968.25427437787,"y":32327.464496631084},"targetPosition":{"x":23335.059624653044,"y":32249.497612574425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Progress","id":"04c8606b-5e59-4e7d-b3ac-387bfffcd300"}}},{"type":"Data Product","name":"Trading System Running","project":"Superalgos","id":"c7e05ad0-7d4a-4ffb-9aee-191511f85ee7","savedPayload":{"position":{"x":22962.11391388994,"y":32210.299438849055},"targetPosition":{"x":23335.059624653044,"y":32249.497612574425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Running","id":"17236f59-6ef2-4cc3-913c-1ff6db052236"}}},{"type":"Data Product","name":"Trading System Announcements","project":"Superalgos","id":"e4811789-fd94-49b0-9917-8d9d434f997d","savedPayload":{"position":{"x":22992.480078037068,"y":32096.971371421},"targetPosition":{"x":23335.059624653044,"y":32249.497612574425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Announcements","id":"4a6f828a-9671-431e-8257-fc920943581e"}}},{"type":"Data Product","name":"Trading System Warnings","project":"Superalgos","id":"029ff3a7-9c65-425f-855a-882df68fa05b","savedPayload":{"position":{"x":23056.38031509902,"y":31998.573635189852},"targetPosition":{"x":23335.059624653044,"y":32249.497612574425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Warnings","id":"34310596-466a-4e9a-a5a2-256b0fe3e339"}}},{"type":"Data Product","name":"Trading System Infos","project":"Superalgos","id":"0f47adaf-25a0-431f-b15b-0fbf44069b38","savedPayload":{"position":{"x":23147.559624653044,"y":31924.73808615526},"targetPosition":{"x":23335.059624653044,"y":32249.497612574425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Infos","id":"020ad519-0fc6-4f2f-9f26-b2c7de118fb8"}}}],"dataProductFolders":[],"id":"7096a712-deb7-4adb-86e0-d688f24d2832","savedPayload":{"position":{"x":23335.059624653044,"y":32249.497612574425},"targetPosition":{"x":23701.86497492822,"y":32171.530728517766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Objects","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episodes","project":"Superalgos","id":"c6fd6067-4b57-4860-ae3b-5668e4444490","savedPayload":{"position":{"x":23053.23606537805,"y":32137.53752778946},"targetPosition":{"x":23387.363511948686,"y":31967.29109038713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episodes","id":"aeec080e-8caf-4976-8187-ba4e725b73b0"}}},{"type":"Data Product","name":"Strategies","project":"Superalgos","id":"60f88096-7343-42d1-afad-83fecd22fb44","savedPayload":{"position":{"x":23012.87743641572,"y":31947.665106796027},"targetPosition":{"x":23387.363511948686,"y":31967.29109038713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"21db6fce-8450-4b07-9015-d81a339fd030"}}}],"dataProductFolders":[{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"9f939086-c934-4924-8353-776707a7cf10","savedPayload":{"position":{"x":22722.769389032703,"y":31897.43943333598},"targetPosition":{"x":23072.862048969153,"y":31763.051452256495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"db256083-9aa2-48e1-8fd6-3425a5085302"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"da5f279e-d387-43cf-80f4-fc114b9ac906","savedPayload":{"position":{"x":22710.63986411075,"y":31665.99431034305},"targetPosition":{"x":23072.862048969153,"y":31763.051452256495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"1958f79b-5c6c-4874-9154-98c314822ed7"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"367646bb-839a-4071-8305-6d26a647585d","savedPayload":{"position":{"x":22836.866902325462,"y":31471.62171671013},"targetPosition":{"x":23072.862048969153,"y":31763.051452256495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"5deceb32-c7ab-4560-818a-0f0b9d6632fb"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"0b2fc73a-9635-40b2-98d8-0c79c69175a9","savedPayload":{"position":{"x":23053.23606537805,"y":31388.56537672353},"targetPosition":{"x":23072.862048969153,"y":31763.051452256495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2a1d405b-2fbe-4ed4-a76a-d2c7be59d20e"}}}],"dataProductFolders":[],"id":"88643ab2-7859-45d4-b967-8681cf970828","savedPayload":{"position":{"x":23072.862048969153,"y":31763.051452256495},"targetPosition":{"x":23387.363511948686,"y":31967.29109038713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trigger Stages","project":"Superalgos","id":"7fe8c58f-9cad-47c9-ba4e-d66bff094dcf","savedPayload":{"position":{"x":22846.73394682318,"y":31574.500719426407},"targetPosition":{"x":23217.117074546357,"y":31633.163643816493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stages","id":"18cc2e79-7e57-418c-b635-6c68fc11d681"}}},{"type":"Data Product","name":"Open Stages","project":"Superalgos","id":"41f17745-1819-4681-8a2b-9bdda3cd67c4","savedPayload":{"position":{"x":22951.952031601402,"y":31367.99860087154},"targetPosition":{"x":23217.117074546357,"y":31633.163643816493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stages","id":"d5938c00-0849-466d-ae14-4ea91b571678"}}},{"type":"Data Product","name":"Manage Stages","project":"Superalgos","id":"e89c8bfd-fac9-4aff-afc0-3a89c1dc2710","savedPayload":{"position":{"x":23158.45415015627,"y":31262.780516093317},"targetPosition":{"x":23217.117074546357,"y":31633.163643816493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stages","id":"8fab86b3-db8d-4113-8418-1d256bd98cf2"}}},{"type":"Data Product","name":"Close Stages","project":"Superalgos","id":"bc2c6503-e935-4ad7-a76a-89b062d41e91","savedPayload":{"position":{"x":23387.363511948686,"y":31299.036197245856},"targetPosition":{"x":23217.117074546357,"y":31633.163643816493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stages","id":"ba911e61-f951-48cd-b547-9a70aa211100"}}}],"dataProductFolders":[],"id":"869369c1-13de-4086-ad40-77b3d54cfc36","savedPayload":{"position":{"x":23217.117074546357,"y":31633.163643816493},"targetPosition":{"x":23387.363511948686,"y":31967.29109038713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Positions","project":"Superalgos","id":"3ed594a0-8452-4bd8-9eaa-37cd83a45b90","savedPayload":{"position":{"x":23092.488032560257,"y":31388.56537672353},"targetPosition":{"x":23406.98949553979,"y":31592.805014854166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Positions","id":"1eabba24-cbd4-4cbf-95e0-c5135349d41d"}}},{"type":"Data Product","name":"Position Base Asset","project":"Superalgos","id":"88997c97-e77f-490e-9eb5-c7531beec132","savedPayload":{"position":{"x":23236.74305813746,"y":31258.67756828353},"targetPosition":{"x":23406.98949553979,"y":31592.805014854166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Base Asset","id":"b371b039-f6c8-4f60-84cb-52f55c96c84d"}}},{"type":"Data Product","name":"Position Quoted Asset","project":"Superalgos","id":"b4772611-d5d0-4fbd-b689-d42de3c045d4","savedPayload":{"position":{"x":23426.615479130895,"y":31218.3189393212},"targetPosition":{"x":23406.98949553979,"y":31592.805014854166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Quoted Asset","id":"a376f02b-a5d2-4079-b5cd-ab7dc894b909"}}},{"type":"Data Product","name":"Stop Loss","project":"Superalgos","id":"9b064960-3829-441f-b955-334fb8324a53","savedPayload":{"position":{"x":23611.229133670426,"y":31278.303551874633},"targetPosition":{"x":23406.98949553979,"y":31592.805014854166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Stop Loss","id":"c18bdc82-216a-4b1d-8850-5c3c9dc2000b"}}},{"type":"Data Product","name":"Take Profit","project":"Superalgos","id":"cbcc817b-4333-4c80-addc-e2a0ee0845c1","savedPayload":{"position":{"x":23741.116942110428,"y":31422.558577451837},"targetPosition":{"x":23406.98949553979,"y":31592.805014854166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Take Profit","id":"2542c7d0-fa26-4b52-a59a-a3630e52eb89"}}}],"dataProductFolders":[],"id":"7f74f2e1-91b6-4d7a-87cb-1d6232a41876","savedPayload":{"position":{"x":23406.98949553979,"y":31592.805014854166},"targetPosition":{"x":23387.363511948686,"y":31967.29109038713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"291949a0-847b-4b18-b3b4-191496fc38a9","savedPayload":{"position":{"x":23387.363511948686,"y":31967.29109038713},"targetPosition":{"x":23701.86497492822,"y":32171.530728517766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ae78f4fc-6ee5-4ae4-9847-3bab0e2e51a6","savedPayload":{"position":{"x":23701.86497492822,"y":32171.530728517766},"targetPosition":{"x":24068.670325203395,"y":32093.563844461107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa2b0766-a3d5-47e1-acd8-7345af564388","savedPayload":{"position":{"x":24068.670325203395,"y":32093.563844461107},"targetPosition":{"x":24313.207225386846,"y":32041.58592175667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"9ef30086-0c9d-47c2-8983-db5fc9a99583","savedPayload":{"position":{"x":24249.549372136753,"y":32479.956884291958},"targetPosition":{"x":24509.356993272086,"y":32329.956884291958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Live Trading Session","name":"Lightning Strike","id":"1ce123af-467f-4295-b317-dba8729faf25"}}}],"id":"026bab29-64d0-4d83-862c-446657efa101","savedPayload":{"position":{"x":24509.356993272086,"y":32329.956884291958},"targetPosition":{"x":24659.356993272086,"y":32070.149263156625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"f601d2a7-fada-477f-9b63-3ef7ed42d44a","savedPayload":{"position":{"x":24659.356993272086,"y":32070.149263156625},"targetPosition":{"x":24809.356993272086,"y":31810.341642021293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"691abc38-257f-462f-bee5-1cc51d77cea6","savedPayload":{"position":{"x":24809.356993272086,"y":31810.341642021293},"targetPosition":{"x":24959.356993272086,"y":31550.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"e4e268f3-a677-4f90-90a1-d87244e647e5","savedPayload":{"position":{"x":24959.356993272086,"y":31550.53402088596},"targetPosition":{"x":25109.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningMinesData":{"type":"Learning Mines Data","name":"New Learning Mines Data","project":"Superalgos","projectLearningProducts":[{"type":"Project Learning Products","name":"Superalgos","project":"Superalgos","exchangeLearningProducts":[],"id":"071c1c13-0e4c-4649-b2eb-7dc422278961","savedPayload":{"position":{"x":24633.344989097342,"y":31655.98325715586},"targetPosition":{"x":24871.350991184714,"y":31473.354828453244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"2845a687-becc-4c3b-bc79-b2293ba876ba","savedPayload":{"position":{"x":24871.350991184714,"y":31473.354828453244},"targetPosition":{"x":25109.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e2697759-6038-4943-b90c-5a68651ff9a8","savedPayload":{"position":{"x":25109.356993272086,"y":31290.726399750627},"targetPosition":{"x":25259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"d"}}},"id":"e452cf65-2b2b-44f2-9e67-bdd9d3c008e4","savedPayload":{"position":{"x":25259.356993272086,"y":31030.918778615294},"targetPosition":{"x":24959.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"3c165071-7558-4708-9999-8ffe71d346b1","savedPayload":{"position":{"x":24959.356993272086,"y":31030.918778615294},"targetPosition":{"x":24959.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","project":"Superalgos","cryptoExchanges":[{"type":"Crypto Exchanges","name":"Tested","project":"Superalgos","exchanges":[{"type":"Crypto Exchange","name":"Binance","config":"{\n \"codeName\": \"binance\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"EUR\"} \n}","project":"Superalgos","assets":[{"type":"Asset","name":"Bitcoin","config":"{ \n\"codeName\": \"BTC\"\n}","project":"Superalgos","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa","savedPayload":{"position":{"x":19793.079365950267,"y":30513.325102172115},"targetPosition":{"x":19715.43365241951,"y":30803.102850058836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Tether","config":"{ \n\"codeName\": \"USDT\"\n}","project":"Superalgos","id":"f110bfa0-bd5b-469b-a940-4524c8688136","savedPayload":{"position":{"x":20005.21140030623,"y":30725.45713652808},"targetPosition":{"x":19715.43365241951,"y":30803.102850058836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"95d2c30f-215b-486e-8119-f4eac0279575","savedPayload":{"position":{"x":19715.43365241951,"y":30803.102850058836},"targetPosition":{"x":19503.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"E"}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","project":"Superalgos","markets":[{"type":"Market","name":"BTC/USDT","config":"{ \n\"codeName\": \"BTC/USDT\"\n}","project":"Superalgos","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","project":"Superalgos","id":"1017b30d-de1b-4212-991e-9fd0a5b6c814","savedPayload":{"position":{"x":20393.079365950267,"y":30937.589170884043},"targetPosition":{"x":20103.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","project":"Superalgos","id":"705c4a67-787a-48cd-a3dc-3a557438bf0b","savedPayload":{"position":{"x":20393.079365950267,"y":31092.880597945557},"targetPosition":{"x":20103.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"f110bfa0-bd5b-469b-a940-4524c8688136"}}},"id":"9a867bf0-a71d-445c-b99a-75b60bbdce09","savedPayload":{"position":{"x":20103.301618063546,"y":31015.2348844148},"targetPosition":{"x":19803.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2fd80894-900e-44ac-a1a7-56c14124f7a1","savedPayload":{"position":{"x":19803.301618063546,"y":31015.2348844148},"targetPosition":{"x":19503.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[{"type":"Exchange Account Asset","name":"Bitcoin","project":"Superalgos","id":"ba6f3d5c-b36b-49d9-947f-392068109169","savedPayload":{"position":{"x":20507.121182548915,"y":31439.498953126727},"targetPosition":{"x":20217.343434662194,"y":31517.144666657485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa"}}},{"type":"Exchange Account Asset","name":"Tether","project":"Superalgos","id":"c90be267-90f9-45ae-b225-0578adb4aad9","savedPayload":{"position":{"x":20429.475469018158,"y":31729.27670101345},"targetPosition":{"x":20217.343434662194,"y":31517.144666657485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"f110bfa0-bd5b-469b-a940-4524c8688136"}}}],"id":"8ac5c2a9-a238-48ae-ab43-0a0a95a37464","savedPayload":{"position":{"x":20217.343434662194,"y":31517.144666657485},"targetPosition":{"x":19927.565686775473,"y":31439.498953126727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"Key for Lighting Strike","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e85bbbd6-aca8-450f-9237-788062de5761","savedPayload":{"position":{"x":20082.857113836988,"y":32019.05444890017},"targetPosition":{"x":20005.21140030623,"y":31729.27670101345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"48925cc9-f3cd-4499-8466-1338fed28a0d","savedPayload":{"position":{"x":20005.21140030623,"y":31729.27670101345},"targetPosition":{"x":19927.565686775473,"y":31439.498953126727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"63794496-c94b-42f9-81cc-c588708617a6","savedPayload":{"position":{"x":19927.565686775473,"y":31439.498953126727},"targetPosition":{"x":19715.43365241951,"y":31227.366918770764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4b0c1ac5-515f-44a9-b9b9-e698a9c51eac","savedPayload":{"position":{"x":19715.43365241951,"y":31227.366918770764},"targetPosition":{"x":19503.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b","savedPayload":{"position":{"x":19503.301618063546,"y":31015.2348844148},"targetPosition":{"x":19203.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"tutorial":{"status":"Done"}}}],"id":"e3879d63-6f8f-41a3-8ac3-0349c4361722","savedPayload":{"position":{"x":19203.301618063546,"y":31015.2348844148},"targetPosition":{"x":18903.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Untested","project":"Superalgos","exchanges":[{"type":"Crypto Exchange","name":"ACX","config":"{ \n\"codeName\": \"acx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"ebcb522b-ae58-46d2-9d82-a9b0beec3976","savedPayload":{"position":{"x":17935.64382962515,"y":31014.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b2649588-27c6-442c-b179-f6d8817188b3","savedPayload":{"position":{"x":17954.64382962515,"y":31004.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9b2051d5-7ee7-4e94-8c8d-306674889339","savedPayload":{"position":{"x":17838.64382962515,"y":30896.23747069523},"targetPosition":{"x":17766.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"1d5461aa-d26c-4df5-b383-8c83e311b8ca","savedPayload":{"position":{"x":17643.64382962515,"y":30952.23747069523},"targetPosition":{"x":17698.64382962515,"y":30973.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c6372400-de52-4b63-97f3-f748aac9c63f","savedPayload":{"position":{"x":17698.64382962515,"y":30973.23747069523},"targetPosition":{"x":17766.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c948314e-2247-4234-b83d-cc2c1b152665","savedPayload":{"position":{"x":17766.64382962515,"y":30905.23747069523},"targetPosition":{"x":17837.64382962515,"y":30978.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04ccb742-ef1b-4138-b38d-a6b0d92f2f8e","savedPayload":{"position":{"x":17837.64382962515,"y":30978.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e9c21b2d-de21-43b5-8b48-51367a8c981c","savedPayload":{"position":{"x":19313.14497226101,"y":30565.583066825377},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"AOFEX","config":"{ \n\"codeName\": \"aofex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"623ef91b-04c0-4bd5-ac0d-b32c809be3ea","savedPayload":{"position":{"x":17973.64382962515,"y":30923.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"9d0b5855-59a6-4dda-9a4b-33d7a44d582e","savedPayload":{"position":{"x":17901.64382962515,"y":30994.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"e898e569-0dd3-4a22-baa5-caaace66d4ed","savedPayload":{"position":{"x":18062.64382962515,"y":30838.23747069523},"targetPosition":{"x":17982.64382962515,"y":30899.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"64a69d3d-15ff-41c3-a926-5ec93c932ab1","savedPayload":{"position":{"x":17822.64382962515,"y":31052.23747069523},"targetPosition":{"x":17893.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae2785c5-75a1-44fc-a71b-363d88cb5dac","savedPayload":{"position":{"x":17893.64382962515,"y":30981.23747069523},"targetPosition":{"x":17982.64382962515,"y":30899.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07ea69aa-7357-43b1-b548-a4c4fab70c55","savedPayload":{"position":{"x":17982.64382962515,"y":30899.23747069523},"targetPosition":{"x":17971.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2146b410-fc4e-452d-ae57-5d58c9a29706","savedPayload":{"position":{"x":17971.64382962515,"y":30962.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c2e9bb45-97c7-47e8-b13c-56946e673c53","savedPayload":{"position":{"x":19413.67778623216,"y":30647.89853748846},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bequant","config":"{ \n\"codeName\": \"bequant\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"b23c8adf-c880-48fd-b4af-4b4be86cf0e5","savedPayload":{"position":{"x":18059.64382962515,"y":31101.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"523bd94f-68f9-457e-91fd-806c1b95e98d","savedPayload":{"position":{"x":18006.64382962515,"y":31117.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9d914bb1-a68b-41ae-8666-0fcc755358c1","savedPayload":{"position":{"x":17859.64382962515,"y":30964.23747069523},"targetPosition":{"x":17936.64382962515,"y":31059.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"15d903b5-113c-465e-8120-7c46a9a85565","savedPayload":{"position":{"x":17976.64382962515,"y":31146.23747069523},"targetPosition":{"x":17943.64382962515,"y":31134.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2d1c0bc3-abe2-4340-91bf-2eef5b98a2f0","savedPayload":{"position":{"x":17943.64382962515,"y":31134.23747069523},"targetPosition":{"x":17936.64382962515,"y":31059.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a50d459-914c-4bfc-91e8-f15c383280eb","savedPayload":{"position":{"x":17936.64382962515,"y":31059.23747069523},"targetPosition":{"x":17931.64382962515,"y":31071.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b2f2b69f-3bef-4edc-9950-5261d9f36382","savedPayload":{"position":{"x":17931.64382962515,"y":31071.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e928d3e-a2c2-4341-aa2f-b753551c9479","savedPayload":{"position":{"x":19504.72140465123,"y":30740.600980501622},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bibox","config":"{ \n\"codeName\": \"bibox\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"13c1f22c-9a35-4d3f-b000-c96984fd6a2b","savedPayload":{"position":{"x":17995.64382962515,"y":31047.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3c6df49d-70c3-468a-bdd8-6768ce6d3a9d","savedPayload":{"position":{"x":17916.64382962515,"y":31018.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5a54ef39-8fba-4a5f-ac24-5f27e763e28f","savedPayload":{"position":{"x":18050.64382962515,"y":31174.23747069523},"targetPosition":{"x":17956.64382962515,"y":31128.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"08df1f45-dab0-463a-8758-359973f2620d","savedPayload":{"position":{"x":17899.64382962515,"y":31242.23747069523},"targetPosition":{"x":17959.64382962515,"y":31180.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"105b52c2-90ad-4fa1-b690-d8fab14209b4","savedPayload":{"position":{"x":17959.64382962515,"y":31180.23747069523},"targetPosition":{"x":17956.64382962515,"y":31128.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"68c1ef42-1b7b-4cc6-981f-80b20dabcd89","savedPayload":{"position":{"x":17956.64382962515,"y":31128.23747069523},"targetPosition":{"x":17907.64382962515,"y":31057.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fc35e5d0-ea61-42b6-979a-859f19c5ac6c","savedPayload":{"position":{"x":17907.64382962515,"y":31057.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e5f9ee4d-77a3-48ae-b354-b2f6a97d5e47","savedPayload":{"position":{"x":19585.208424334218,"y":30842.603544479174},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BigONE","config":"{ \n\"codeName\": \"bigone\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"3f289513-c1c8-457c-b65a-8cf62b5f5eb5","savedPayload":{"position":{"x":17778.64382962515,"y":31071.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8b365e73-1cee-496a-921f-121cb628a130","savedPayload":{"position":{"x":17798.64382962515,"y":31121.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"447a4f6f-cfa0-443e-9339-d7c1153ada31","savedPayload":{"position":{"x":17921.64382962515,"y":31046.23747069523},"targetPosition":{"x":17891.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0d234c53-c121-471e-bce1-a258c13cd148","savedPayload":{"position":{"x":17848.64382962515,"y":31175.23747069523},"targetPosition":{"x":17944.64382962515,"y":31086.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"816e1b6a-d790-4abd-9ae1-e203fa737af2","savedPayload":{"position":{"x":17944.64382962515,"y":31086.23747069523},"targetPosition":{"x":17891.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"561a57f7-8c22-4e50-840d-d983ed6bb864","savedPayload":{"position":{"x":17891.64382962515,"y":31102.23747069523},"targetPosition":{"x":17813.64382962515,"y":31064.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e243bd5d-ade7-46c8-876b-6ad8c6eb5e0a","savedPayload":{"position":{"x":17813.64382962515,"y":31064.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fb9ee540-bf12-4dda-bf87-cb6b58fce649","savedPayload":{"position":{"x":19654.195208565325,"y":30952.710342620318},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Binance Jersey","config":"{ \n\"codeName\": \"binanceje\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"0b979ea9-7a2d-4744-9517-2dfa632dfafc","savedPayload":{"position":{"x":17852.64382962515,"y":30989.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b9a4497d-20f1-4c61-9a79-444e0fe0ddf4","savedPayload":{"position":{"x":17924.64382962515,"y":30952.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1b24d8a4-ec70-4501-838c-7633f6f7288e","savedPayload":{"position":{"x":17882.64382962515,"y":31051.23747069523},"targetPosition":{"x":17942.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"627472e3-638f-4d68-a917-d0844d6a227b","savedPayload":{"position":{"x":17991.64382962515,"y":31190.23747069523},"targetPosition":{"x":17986.64382962515,"y":31110.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"b8ce75fb-93c9-4ca2-9b2b-9f8ed8af34f3","savedPayload":{"position":{"x":17986.64382962515,"y":31110.23747069523},"targetPosition":{"x":17942.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"08b226e4-14ee-4ad3-8d96-efe77cc38489","savedPayload":{"position":{"x":17942.64382962515,"y":31066.23747069523},"targetPosition":{"x":17949.64382962515,"y":31009.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2771eb11-bc72-4273-9e1b-9ac5410c6354","savedPayload":{"position":{"x":17949.64382962515,"y":31009.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2782350a-84a2-40ec-87c6-3c8043376a18","savedPayload":{"position":{"x":19710.872950374665,"y":31069.630473388454},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Binance US","config":"{ \n\"codeName\": \"binanceus\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"817ee1cf-b44c-4458-a9c4-a05a17ea0510","savedPayload":{"position":{"x":17943.64382962515,"y":30999.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c6694e9e-74dc-4c2e-9151-90f1d6631b45","savedPayload":{"position":{"x":17937.64382962515,"y":30989.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"00144904-5363-49eb-b445-8c8283d92b0d","savedPayload":{"position":{"x":17838.64382962515,"y":31193.23747069523},"targetPosition":{"x":17781.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2e71aa3c-03d4-4dbd-bc50-43b30f59e655","savedPayload":{"position":{"x":17783.64382962515,"y":31148.23747069523},"targetPosition":{"x":17703.64382962515,"y":31182.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"a4d0df32-c600-4421-b893-2a05f0442ed6","savedPayload":{"position":{"x":17703.64382962515,"y":31182.23747069523},"targetPosition":{"x":17781.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7a39543a-00e1-452b-8aba-36c2b240f9fc","savedPayload":{"position":{"x":17781.64382962515,"y":31156.23747069523},"targetPosition":{"x":17799.64382962515,"y":31119.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2543c4e5-8233-4348-b6dc-e47aed1ff381","savedPayload":{"position":{"x":17799.64382962515,"y":31119.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0b2b67d2-853b-470e-8b13-925956ad5621","savedPayload":{"position":{"x":19754.577155060477,"y":31191.993155151424},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"bitbank","config":"{ \n\"codeName\": \"bitbank\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"eb6b6842-9bf7-450e-baa3-7a87541a1cf6","savedPayload":{"position":{"x":17955.64382962515,"y":31107.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"6353ff56-759f-457d-81f3-fdb8ae5b3e83","savedPayload":{"position":{"x":17942.64382962515,"y":31183.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a2b297c7-f33b-48b9-98fa-d339c7b0ff67","savedPayload":{"position":{"x":17999.64382962515,"y":31016.23747069523},"targetPosition":{"x":17945.64382962515,"y":31116.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"9ce6c354-b294-4062-b763-421e5edb69de","savedPayload":{"position":{"x":17883.64382962515,"y":31186.23747069523},"targetPosition":{"x":17845.64382962515,"y":31202.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"547dbf6c-a292-46c0-a628-62856858121e","savedPayload":{"position":{"x":17845.64382962515,"y":31202.23747069523},"targetPosition":{"x":17945.64382962515,"y":31116.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"097055b3-37e5-4100-a24b-91e404fe49a6","savedPayload":{"position":{"x":17945.64382962515,"y":31116.23747069523},"targetPosition":{"x":17897.64382962515,"y":31142.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51aed4ce-0303-431e-a15f-e6f133f7a2cf","savedPayload":{"position":{"x":17897.64382962515,"y":31142.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c9a96a7-ed12-4b3e-bb51-306a8da131f5","savedPayload":{"position":{"x":19784.79543078195,"y":31318.363797342816},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitBay","config":"{ \n\"codeName\": \"bitbay\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"83b4e523-72a7-41ce-9363-fe0c799dcac1","savedPayload":{"position":{"x":17861.64382962515,"y":30965.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"966698f7-8a28-42d7-bb80-f7cd0601e44f","savedPayload":{"position":{"x":17823.64382962515,"y":31026.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"554829eb-3d40-4b95-a1cd-9de943763e2c","savedPayload":{"position":{"x":17914.64382962515,"y":30924.23747069523},"targetPosition":{"x":17876.64382962515,"y":30921.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2f534989-7ca7-4c3d-b14a-3b1071543c8c","savedPayload":{"position":{"x":17845.64382962515,"y":30853.23747069523},"targetPosition":{"x":17832.64382962515,"y":30821.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2f6b76b4-51d4-434f-8aa1-ed86b0e26bd2","savedPayload":{"position":{"x":17832.64382962515,"y":30821.23747069523},"targetPosition":{"x":17876.64382962515,"y":30921.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cbcc3ab6-9758-4273-99d2-9d05fdd392b5","savedPayload":{"position":{"x":17876.64382962515,"y":30921.23747069523},"targetPosition":{"x":17805.64382962515,"y":31015.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dada6c12-7c41-4ab8-9922-908233829f58","savedPayload":{"position":{"x":17805.64382962515,"y":31015.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8778eee5-97a2-4f9d-bd25-cd5a64ec6663","savedPayload":{"position":{"x":19801.173495885087,"y":31447.26081972472},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitfinex","config":"{ \n\"codeName\": \"bitfinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"33508b53-2769-4f3d-8c98-9fa37e5cbf5b","savedPayload":{"position":{"x":17888.64382962515,"y":31043.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4d4ad5a1-81a7-4f92-83db-99f57ce261bb","savedPayload":{"position":{"x":17975.64382962515,"y":30868.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"29d52baf-645c-4d8f-9631-ebd391b4c815","savedPayload":{"position":{"x":18034.64382962515,"y":31066.23747069523},"targetPosition":{"x":18037.64382962515,"y":31012.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d615c33d-c6cf-4572-ac32-8e9ddeb5bb52","savedPayload":{"position":{"x":18023.64382962515,"y":30916.23747069523},"targetPosition":{"x":18106.64382962515,"y":30982.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"0c189040-6318-483c-b6d7-982370a3298d","savedPayload":{"position":{"x":18106.64382962515,"y":30982.23747069523},"targetPosition":{"x":18037.64382962515,"y":31012.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd60de4a-d17c-4ba7-936a-cbf2305fe3bb","savedPayload":{"position":{"x":18037.64382962515,"y":31012.23747069523},"targetPosition":{"x":18039.64382962515,"y":30964.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d247f4f5-6f16-4a59-a4a5-6d1554b43562","savedPayload":{"position":{"x":18039.64382962515,"y":30964.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c076027-683d-4778-8a6a-e60984980fdf","savedPayload":{"position":{"x":19803.51933253116,"y":31577.173022561386},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitfinex","config":"{ \n\"codeName\": \"bitfinex2\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"8fc7f955-5c81-446c-bbeb-205988bf1fc0","savedPayload":{"position":{"x":17830.64382962515,"y":31051.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d5ba38e9-3282-4634-b922-16532c71f426","savedPayload":{"position":{"x":17819.64382962515,"y":31118.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1cebbed5-28f7-4ccd-afce-9e7634d90fb6","savedPayload":{"position":{"x":17892.64382962515,"y":30997.23747069523},"targetPosition":{"x":17855.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0d109aa9-c80c-4a64-96f0-1d8fda0a70a4","savedPayload":{"position":{"x":17888.64382962515,"y":30805.23747069523},"targetPosition":{"x":17942.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5459ab1e-a1ce-4dae-ae72-61c1f7f37ce0","savedPayload":{"position":{"x":17942.64382962515,"y":30905.23747069523},"targetPosition":{"x":17855.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a4615f7a-000d-4ff9-b5ac-109bc9a3a849","savedPayload":{"position":{"x":17855.64382962515,"y":30970.23747069523},"targetPosition":{"x":17919.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e10d303e-ea21-4625-bae1-c32ad7a44e8a","savedPayload":{"position":{"x":17919.64382962515,"y":31043.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f3114102-a73c-4086-9594-5888ef1ab4ec","savedPayload":{"position":{"x":19791.80543793031,"y":31706.577304054405},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitforex","config":"{ \n\"codeName\": \"bitforex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"698e5e38-ad73-4cb6-b7f6-2b69913faff9","savedPayload":{"position":{"x":17897.64382962515,"y":30956.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"f0142bd4-1b63-4d12-a4b7-e150d0da197f","savedPayload":{"position":{"x":18020.64382962515,"y":31021.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"7164fb28-405b-461a-a7d4-59d438ecf1ce","savedPayload":{"position":{"x":17821.64382962515,"y":30984.23747069523},"targetPosition":{"x":17901.64382962515,"y":30907.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"ce8a00c9-f090-4ec2-84ed-c6661f8bf7b0","savedPayload":{"position":{"x":17825.64382962515,"y":30965.23747069523},"targetPosition":{"x":17818.64382962515,"y":30913.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"579cd74b-98f6-4000-990b-25ae1456c94b","savedPayload":{"position":{"x":17818.64382962515,"y":30913.23747069523},"targetPosition":{"x":17901.64382962515,"y":30907.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"dbac6eef-25d2-4cda-86a6-59ce8a9a26bc","savedPayload":{"position":{"x":17901.64382962515,"y":30907.23747069523},"targetPosition":{"x":17909.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1da9dd3-22ec-4536-bb5a-4d0bb8a56b81","savedPayload":{"position":{"x":17909.64382962515,"y":30970.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"499a5a3b-7871-4c95-9b2e-d58d4d9e2392","savedPayload":{"position":{"x":19766.169146786622,"y":31833.956517318737},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"bitkk","config":"{ \n\"codeName\": \"bitkk\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"efbb916c-780b-447f-a4c2-df68570d4ee1","savedPayload":{"position":{"x":17931.64382962515,"y":30937.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0d829516-81d9-46a5-9861-7d94cc89455d","savedPayload":{"position":{"x":17951.64382962515,"y":30912.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"fc174aa3-c485-4b9b-ba19-444b0189ccb1","savedPayload":{"position":{"x":17788.64382962515,"y":30980.23747069523},"targetPosition":{"x":17834.64382962515,"y":30983.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"15921d8a-4b45-481c-9165-79969ed3fd27","savedPayload":{"position":{"x":17796.64382962515,"y":30936.23747069523},"targetPosition":{"x":17891.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"927d5c8a-85df-48bb-b097-c36abb76ca0e","savedPayload":{"position":{"x":17891.64382962515,"y":30922.23747069523},"targetPosition":{"x":17834.64382962515,"y":30983.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"43d218c2-e633-47d5-8dd8-60bc7f7c0b9e","savedPayload":{"position":{"x":17834.64382962515,"y":30983.23747069523},"targetPosition":{"x":17853.64382962515,"y":30925.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2d310d61-cbc7-4306-af02-be3888939545","savedPayload":{"position":{"x":17853.64382962515,"y":30925.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ded39740-3c93-4fda-bb9c-6ac75d2109f4","savedPayload":{"position":{"x":19726.911021174266,"y":31957.817257542785},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMart","config":"{ \n\"codeName\": \"bitmart\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"10374855-6b4a-460b-9c95-70072ac00315","savedPayload":{"position":{"x":17907.64382962515,"y":30901.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3aded60c-4061-48ff-ad33-212c965b5c43","savedPayload":{"position":{"x":17829.64382962515,"y":30925.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1789a3ca-d948-497d-8d1b-1eefd25d16a3","savedPayload":{"position":{"x":17886.64382962515,"y":30937.23747069523},"targetPosition":{"x":17895.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"038170bc-0ca7-4a92-8219-61b7bc8431b0","savedPayload":{"position":{"x":17893.64382962515,"y":31034.23747069523},"targetPosition":{"x":17835.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"55f79ede-ef02-405f-92bd-11902ab3cc7a","savedPayload":{"position":{"x":17835.64382962515,"y":30962.23747069523},"targetPosition":{"x":17895.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8185c660-4af3-4a62-bfa9-8922861101b5","savedPayload":{"position":{"x":17895.64382962515,"y":30988.23747069523},"targetPosition":{"x":17819.64382962515,"y":30909.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"546d48c3-df31-495c-b3b4-cb35109c5542","savedPayload":{"position":{"x":17819.64382962515,"y":30909.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c7ed52a7-895b-46f1-a745-35954d8bcfc6","savedPayload":{"position":{"x":19674.491326722004,"y":32076.707370794375},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMax","config":"{ \n\"codeName\": \"bitmax\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"8a042d0d-7a7a-4a76-889e-42d8642404f4","savedPayload":{"position":{"x":17944.64382962515,"y":31046.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0c4fcc48-51e6-4ff2-925f-405cda6d1122","savedPayload":{"position":{"x":17898.64382962515,"y":31024.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"ef9d5381-d9e3-47f5-9069-6fc14eda0fa3","savedPayload":{"position":{"x":17879.64382962515,"y":31096.23747069523},"targetPosition":{"x":17977.64382962515,"y":31041.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c66fe606-9705-45b0-a196-7ea3efb0221e","savedPayload":{"position":{"x":17982.64382962515,"y":31053.23747069523},"targetPosition":{"x":17943.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"80a5f68e-776a-44de-8797-d2eb806c306e","savedPayload":{"position":{"x":17943.64382962515,"y":31083.23747069523},"targetPosition":{"x":17977.64382962515,"y":31041.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"011fcf1c-1c94-4c36-a246-d6c400aa39dc","savedPayload":{"position":{"x":17977.64382962515,"y":31041.23747069523},"targetPosition":{"x":17942.64382962515,"y":31103.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4a87b8c5-e009-427f-afb7-21afe5594b59","savedPayload":{"position":{"x":17942.64382962515,"y":31103.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fc6a9048-ab8c-48f9-91ae-6c95c28714b0","savedPayload":{"position":{"x":19609.524636419505,"y":32189.2329791979},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMEX","config":"{ \n\"codeName\": \"bitmex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f7636e2b-354a-4217-894b-5e26eddc0c2a","savedPayload":{"position":{"x":17894.64382962515,"y":30934.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"6eb2ddd1-6d06-456c-b4e0-7df56ba182e6","savedPayload":{"position":{"x":17823.64382962515,"y":30834.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"b4a4b8fe-d923-4eb0-a066-171b83d1540d","savedPayload":{"position":{"x":17902.64382962515,"y":31064.23747069523},"targetPosition":{"x":17815.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"918ed585-ce46-4d51-a07a-9beee51f70eb","savedPayload":{"position":{"x":17711.64382962515,"y":31036.23747069523},"targetPosition":{"x":17805.64382962515,"y":31078.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"9efef4d8-5be3-4d17-a645-6edffd9535cf","savedPayload":{"position":{"x":17805.64382962515,"y":31078.23747069523},"targetPosition":{"x":17815.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6ad31a6e-f27b-45c3-9996-a41fb39aa154","savedPayload":{"position":{"x":17815.64382962515,"y":30988.23747069523},"targetPosition":{"x":17844.64382962515,"y":30896.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"82887393-cb1c-4b01-8581-4b3dabc86584","savedPayload":{"position":{"x":17844.64382962515,"y":30896.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1e2f1dd0-ebf1-4485-83d8-7723a9e3e714","savedPayload":{"position":{"x":19532.77262531095,"y":32294.07482287797},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bittrex","config":"{ \n\"codeName\": \"bittrex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"88d4ef94-f030-42df-9115-69d9611317b1","savedPayload":{"position":{"x":17839.64382962515,"y":31009.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"7fe8234d-9a39-4b28-bf98-43b4fdb57ee5","savedPayload":{"position":{"x":17878.64382962515,"y":31045.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5ba7fe13-1e0f-403a-8f4b-8e3968d2e5e2","savedPayload":{"position":{"x":17841.64382962515,"y":30890.23747069523},"targetPosition":{"x":17742.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e926fbb8-d2ac-4e3d-aa59-a0a828d202fd","savedPayload":{"position":{"x":17707.64382962515,"y":30983.23747069523},"targetPosition":{"x":17782.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"4fbe41e1-cb15-4bc2-a3de-681c5b22cc97","savedPayload":{"position":{"x":17782.64382962515,"y":31052.23747069523},"targetPosition":{"x":17742.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ab9fe180-1c07-44de-a0a1-863761ac52d6","savedPayload":{"position":{"x":17742.64382962515,"y":30961.23747069523},"targetPosition":{"x":17796.64382962515,"y":30903.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"584f29ca-9b3c-4b7f-a2b0-aab4180ecefd","savedPayload":{"position":{"x":17796.64382962515,"y":30903.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f598f002-8fc5-491f-888e-07d017ea83c6","savedPayload":{"position":{"x":19445.135140551556,"y":32390.003727075255},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bit-Z","config":"{ \n\"codeName\": \"bitz\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"0a22e02b-7d2e-4955-9cfc-ed7d95f0c9a0","savedPayload":{"position":{"x":17751.64382962515,"y":31083.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"298b45af-b73d-4cd5-848a-97de7b857569","savedPayload":{"position":{"x":17944.64382962515,"y":31083.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6ede807b-b1ab-42b5-bfd7-3b12a942447e","savedPayload":{"position":{"x":17871.64382962515,"y":31049.23747069523},"targetPosition":{"x":17772.64382962515,"y":31098.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"dc172858-3241-4487-950a-e5cae03ac376","savedPayload":{"position":{"x":17751.64382962515,"y":31081.23747069523},"targetPosition":{"x":17753.64382962515,"y":31028.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"19c07cee-1fdf-4e02-ac9f-d110b64ee033","savedPayload":{"position":{"x":17753.64382962515,"y":31028.23747069523},"targetPosition":{"x":17772.64382962515,"y":31098.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4ef5048-ac4c-410e-bd6d-3338e33ab108","savedPayload":{"position":{"x":17772.64382962515,"y":31098.23747069523},"targetPosition":{"x":17788.64382962515,"y":31134.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e7e96c41-c839-4eec-9bcf-1c60d60fa3f5","savedPayload":{"position":{"x":17788.64382962515,"y":31134.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6cc10926-fe41-43be-887b-fa8aba1c7377","savedPayload":{"position":{"x":19347.639651522415,"y":32475.89501309667},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BTC-Alpha","config":"{ \n\"codeName\": \"btcalpha\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"263e3b9c-8fdd-4376-b53b-87f32d0f5898","savedPayload":{"position":{"x":17904.64382962515,"y":30922.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"804603e1-3e0f-4219-a9b7-ee27810d4f07","savedPayload":{"position":{"x":17829.64382962515,"y":30977.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"83b25fff-e448-483f-9bee-cb85fa592c6e","savedPayload":{"position":{"x":17734.64382962515,"y":30862.23747069523},"targetPosition":{"x":17829.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"efcfa3ca-0f82-4eb7-9b04-ed5eb4e1c3cf","savedPayload":{"position":{"x":17799.64382962515,"y":30864.23747069523},"targetPosition":{"x":17837.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"9ca8d728-ee11-4905-9a3a-5ca4ed50f3df","savedPayload":{"position":{"x":17837.64382962515,"y":30919.23747069523},"targetPosition":{"x":17829.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2cfde277-afa6-4ad3-bb5b-8a32b89e2037","savedPayload":{"position":{"x":17829.64382962515,"y":30960.23747069523},"targetPosition":{"x":17903.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"297a0ea2-f6d7-47fd-9fb7-0d99d00a87d8","savedPayload":{"position":{"x":17903.64382962515,"y":30969.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"30e5485f-213b-435b-a670-07b76cfe5cae","savedPayload":{"position":{"x":19241.429203691412,"y":32550.741684144767},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BTC Markets","config":"{ \n\"codeName\": \"btcmarkets\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"fcb3b880-0852-4d93-8714-67373f9dca16","savedPayload":{"position":{"x":17911.64382962515,"y":31036.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"953d8eff-0b2e-4b07-8635-393fddae0c9d","savedPayload":{"position":{"x":18025.64382962515,"y":31127.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c08873f6-9120-4764-8b06-c8110468b423","savedPayload":{"position":{"x":17935.64382962515,"y":30927.23747069523},"targetPosition":{"x":18027.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"beaa2557-4976-4e53-8a24-7ea00fc3afd5","savedPayload":{"position":{"x":18054.64382962515,"y":30851.23747069523},"targetPosition":{"x":18125.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"445158a2-91b4-4ad8-8380-036cbba6ad7e","savedPayload":{"position":{"x":18125.64382962515,"y":30951.23747069523},"targetPosition":{"x":18027.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd00e08c-a26d-4b11-93a3-b0e8f35bec4b","savedPayload":{"position":{"x":18027.64382962515,"y":31003.23747069523},"targetPosition":{"x":18016.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"35cb55c1-ceb3-4093-98af-8a1c2411fe0f","savedPayload":{"position":{"x":18016.64382962515,"y":31075.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ac2fda42-95ca-404a-8dd2-72bff0ff5a0f","savedPayload":{"position":{"x":19127.749017450227,"y":32613.66623143447},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Buda","config":"{ \n\"codeName\": \"buda\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"27f3573d-e1f0-473f-9bfd-f9198e7240a0","savedPayload":{"position":{"x":17945.64382962515,"y":30937.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4ddc0981-4e45-42f3-ae11-f5b136b2bc3d","savedPayload":{"position":{"x":17783.64382962515,"y":31008.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5a325d59-e6a6-4f76-a311-5e67c5f5a8a2","savedPayload":{"position":{"x":17980.64382962515,"y":30843.23747069523},"targetPosition":{"x":17956.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"fb985ab9-7759-4780-a052-8ee9be0b712a","savedPayload":{"position":{"x":17907.64382962515,"y":30968.23747069523},"targetPosition":{"x":17958.64382962515,"y":30884.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fdf7665a-2974-467b-9280-4077a888733f","savedPayload":{"position":{"x":17958.64382962515,"y":30884.23747069523},"targetPosition":{"x":17956.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a3105cfc-f80e-4bcb-b399-6ea9c0f7edf0","savedPayload":{"position":{"x":17956.64382962515,"y":30936.23747069523},"targetPosition":{"x":17872.64382962515,"y":30941.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5d69a76f-e7bc-4538-950e-2e2353eccea3","savedPayload":{"position":{"x":17872.64382962515,"y":30941.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"90fe3d74-662e-4fac-aff3-f41990b61ccf","savedPayload":{"position":{"x":19007.931889043757,"y":32663.930922181273},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BW","config":"{ \n\"codeName\": \"bw\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"457616cd-25f9-4ad3-8c18-6331859dd42e","savedPayload":{"position":{"x":17890.64382962515,"y":31014.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8c1f9aa2-4253-4129-a533-e515644ddb38","savedPayload":{"position":{"x":17909.64382962515,"y":30970.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"24314a5b-85ca-4036-adc6-618120496f1d","savedPayload":{"position":{"x":17773.64382962515,"y":30945.23747069523},"targetPosition":{"x":17860.64382962515,"y":30865.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"f7c593f6-bd7a-41f7-a5e7-b2e1ea9a528f","savedPayload":{"position":{"x":17820.64382962515,"y":30885.23747069523},"targetPosition":{"x":17828.64382962515,"y":30802.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"60dfc799-f863-4895-8d17-568aa2303ef5","savedPayload":{"position":{"x":17828.64382962515,"y":30802.23747069523},"targetPosition":{"x":17860.64382962515,"y":30865.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"223e466d-d750-4e38-91ce-8a59c15242ba","savedPayload":{"position":{"x":17860.64382962515,"y":30865.23747069523},"targetPosition":{"x":17818.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cfff1310-5220-4978-9553-8514be141d14","savedPayload":{"position":{"x":17818.64382962515,"y":30919.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d72db90c-d572-4cbb-8348-e3cc485d8e86","savedPayload":{"position":{"x":18883.38256475272,"y":32700.94644884361},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bybit","config":"{ \n\"codeName\": \"bybit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"18fdf7c8-03c4-4f81-a88e-de97589765e1","savedPayload":{"position":{"x":17803.64382962515,"y":31059.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"a62b2603-ac6f-4b6e-9541-86daf32027b1","savedPayload":{"position":{"x":17847.64382962515,"y":31104.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"66ecff99-7102-4f4a-9ce8-4d55fb22dfbc","savedPayload":{"position":{"x":17851.64382962515,"y":31165.23747069523},"targetPosition":{"x":17916.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"625e127c-0ebb-4f57-af9f-9dfb57b262a1","savedPayload":{"position":{"x":18004.64382962515,"y":31091.23747069523},"targetPosition":{"x":18008.64382962515,"y":31027.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"8174bb53-66b8-4575-b206-74f9b6352a80","savedPayload":{"position":{"x":18008.64382962515,"y":31027.23747069523},"targetPosition":{"x":17916.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ee16357e-abde-4800-b089-f43f4b696a35","savedPayload":{"position":{"x":17916.64382962515,"y":31077.23747069523},"targetPosition":{"x":17944.64382962515,"y":31101.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c9e9473b-aff9-43c8-a6be-5cd30330bee2","savedPayload":{"position":{"x":17944.64382962515,"y":31101.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"516c3831-456b-4d17-b0a0-6a363ba2ddb2","savedPayload":{"position":{"x":18755.561271527895,"y":32724.27883821499},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"ByteTrade","config":"{ \n\"codeName\": \"bytetrade\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e7a1e531-5a9e-466e-b98d-672de39eed3a","savedPayload":{"position":{"x":18088.64382962515,"y":31024.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"edafaba7-fd82-4d9f-b3f7-5d1c01c56599","savedPayload":{"position":{"x":17941.64382962515,"y":30943.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"50fa78b8-3aea-4e43-adcf-1e31820bf97f","savedPayload":{"position":{"x":17886.64382962515,"y":31008.23747069523},"targetPosition":{"x":17858.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"b9c39b04-e86e-4ebb-9aba-39c375f2960c","savedPayload":{"position":{"x":17865.64382962515,"y":30941.23747069523},"targetPosition":{"x":17953.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5965d9cc-1d68-47a7-b838-e6dd81da6ea9","savedPayload":{"position":{"x":17953.64382962515,"y":31023.23747069523},"targetPosition":{"x":17858.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f51a08be-ee3f-4d3b-a75e-d783d63092a7","savedPayload":{"position":{"x":17858.64382962515,"y":30967.23747069523},"targetPosition":{"x":17898.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d395efd0-691b-4a68-a7f1-9bce95b2f687","savedPayload":{"position":{"x":17898.64382962515,"y":30965.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45e2306f-03e8-4d17-a73a-72c11dd14e78","savedPayload":{"position":{"x":18625.966597164217,"y":32733.65453936303},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CEX.IO","config":"{ \n\"codeName\": \"cex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9de19f0a-5824-4e42-af00-484b64421dc3","savedPayload":{"position":{"x":17890.64382962515,"y":31049.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"39db01bc-0cea-422f-b9e9-7d84e3f5446d","savedPayload":{"position":{"x":17918.64382962515,"y":31105.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"93833d3c-42c9-4e4d-bf0f-5b80a90d10c2","savedPayload":{"position":{"x":17978.64382962515,"y":31126.23747069523},"targetPosition":{"x":17953.64382962515,"y":31167.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"42863a52-30f4-4322-9c20-99a45d6dc3d6","savedPayload":{"position":{"x":17884.64382962515,"y":31149.23747069523},"targetPosition":{"x":17895.64382962515,"y":31148.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fcff471d-29be-4176-8ff8-12088361f9fc","savedPayload":{"position":{"x":17895.64382962515,"y":31148.23747069523},"targetPosition":{"x":17953.64382962515,"y":31167.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f7975a18-b3ab-49bc-ae45-eb02c99aff8c","savedPayload":{"position":{"x":17953.64382962515,"y":31167.23747069523},"targetPosition":{"x":17881.64382962515,"y":31096.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ec432123-43fe-4171-8c41-b797d3161edb","savedPayload":{"position":{"x":17881.64382962515,"y":31096.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"346bfc30-e32a-453a-bdc6-0ead48221581","savedPayload":{"position":{"x":18496.117920729066,"y":32728.96363076407},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Coinbase Prime","config":"{ \n\"codeName\": \"coinbaseprime\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"73cabd8d-9308-49ed-b544-44f785ee7d38","savedPayload":{"position":{"x":17867.64382962515,"y":30962.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"31bd1360-f0c5-4d70-876a-b152f7cedfd7","savedPayload":{"position":{"x":17960.64382962515,"y":30864.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9b75fcfa-fe75-48a8-9d28-2ff19c58c041","savedPayload":{"position":{"x":17792.64382962515,"y":30841.23747069523},"targetPosition":{"x":17809.64382962515,"y":30934.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c900b14a-c728-45af-90f8-29b3e5f29f46","savedPayload":{"position":{"x":17801.64382962515,"y":30986.23747069523},"targetPosition":{"x":17793.64382962515,"y":31006.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"eaf72df3-b66f-4b83-83f9-91e22ec0c300","savedPayload":{"position":{"x":17793.64382962515,"y":31006.23747069523},"targetPosition":{"x":17809.64382962515,"y":30934.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9da95675-2071-41bf-b5ac-4f2af602994f","savedPayload":{"position":{"x":17809.64382962515,"y":30934.23747069523},"targetPosition":{"x":17862.64382962515,"y":31021.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4fc49ad4-57cc-43b0-b14b-15f26af994aa","savedPayload":{"position":{"x":17862.64382962515,"y":31021.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a8281db-6ace-4186-8cfb-cd249c4af48b","savedPayload":{"position":{"x":18367.537599231866,"y":32710.26110903248},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Coinbase Pro","config":"{ \n\"codeName\": \"coinbasepro\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"a29d6e1a-a94e-4b6b-8741-e9af6e4762f4","savedPayload":{"position":{"x":17788.64382962515,"y":30897.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"10cd9004-0088-4bc0-8fe6-b937f1bb311b","savedPayload":{"position":{"x":17865.64382962515,"y":30918.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"004397e6-ae73-46a6-9ed7-b4ba1930f77b","savedPayload":{"position":{"x":17945.64382962515,"y":30899.23747069523},"targetPosition":{"x":17850.64382962515,"y":30889.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"a81a7021-2228-4386-a773-9ac80c9e723a","savedPayload":{"position":{"x":17738.64382962515,"y":30761.23747069523},"targetPosition":{"x":17792.64382962515,"y":30789.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"482d82f2-364e-483c-b51a-a3fbe8a91577","savedPayload":{"position":{"x":17792.64382962515,"y":30789.23747069523},"targetPosition":{"x":17850.64382962515,"y":30889.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d823ad8e-0452-40f0-bad9-c2cb3ad29a21","savedPayload":{"position":{"x":17850.64382962515,"y":30889.23747069523},"targetPosition":{"x":17772.64382962515,"y":30894.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0c965322-fdd2-4e67-aaf3-dfc4b9dffc59","savedPayload":{"position":{"x":17772.64382962515,"y":30894.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4242da4b-a67e-44d8-8a19-b1c2f078c94c","savedPayload":{"position":{"x":18241.733119380056,"y":32677.766244135688},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CoinEx","config":"{ \n\"codeName\": \"coinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"af78f796-60e5-4794-87b8-772c7bc74be1","savedPayload":{"position":{"x":18043.64382962515,"y":31069.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d351e6d9-36eb-4d0e-aca5-94429bbb23a3","savedPayload":{"position":{"x":18094.64382962515,"y":31090.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"438f74c6-15e0-4553-af2a-febd5290c269","savedPayload":{"position":{"x":17908.64382962515,"y":31088.23747069523},"targetPosition":{"x":17986.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"bfb22430-77c7-41a7-8083-771f7d7f3634","savedPayload":{"position":{"x":17927.64382962515,"y":30953.23747069523},"targetPosition":{"x":17947.64382962515,"y":30990.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"51daaa12-1c60-4cef-96d8-a445b4b32296","savedPayload":{"position":{"x":17947.64382962515,"y":30990.23747069523},"targetPosition":{"x":17986.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"726b8c33-9873-4be1-b9ef-d6b4483f23b1","savedPayload":{"position":{"x":17986.64382962515,"y":31075.23747069523},"targetPosition":{"x":17919.64382962515,"y":31016.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"30469514-b983-4f6f-9d74-6d6ceef25eb6","savedPayload":{"position":{"x":17919.64382962515,"y":31016.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"62ad0961-6bdf-4a4a-a340-610816742d0a","savedPayload":{"position":{"x":18120.179423675774,"y":32631.860008654276},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"COSS","config":"{ \n\"codeName\": \"coss\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e6315232-c6b1-4e25-aade-7bc7ba9ba6ac","savedPayload":{"position":{"x":17787.64382962515,"y":30984.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b1e8451f-09a2-47b0-add3-cf9c35c487bb","savedPayload":{"position":{"x":17829.64382962515,"y":31095.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d1c9b795-0434-4ce1-9cb7-cc61fac7396d","savedPayload":{"position":{"x":17950.64382962515,"y":31149.23747069523},"targetPosition":{"x":17882.64382962515,"y":31131.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"22be64f9-4b08-4ac3-ae89-6726743a7d5a","savedPayload":{"position":{"x":17890.64382962515,"y":31165.23747069523},"targetPosition":{"x":17956.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c7462500-ba74-4bf3-ad81-35fa232bede3","savedPayload":{"position":{"x":17956.64382962515,"y":31156.23747069523},"targetPosition":{"x":17882.64382962515,"y":31131.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5cd41ced-981a-4075-af43-3a0497eb0fcb","savedPayload":{"position":{"x":17882.64382962515,"y":31131.23747069523},"targetPosition":{"x":17856.64382962515,"y":31148.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b5937899-c6ee-4d7a-b259-1ee23d721f60","savedPayload":{"position":{"x":17856.64382962515,"y":31148.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"695029de-7f61-45bb-aa4c-c6d51e6369ed","savedPayload":{"position":{"x":18004.301618063546,"y":32573.08061122679},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CREX24","config":"{ \n\"codeName\": \"crex24\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c5e12f4a-fb26-40d3-9e70-751b55018e74","savedPayload":{"position":{"x":17910.64382962515,"y":31024.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"00cb629e-bad4-4c6e-8abb-499cad3992f4","savedPayload":{"position":{"x":17938.64382962515,"y":31054.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"4909d182-e0d5-49a9-8ad2-a553c8aaaf88","savedPayload":{"position":{"x":17912.64382962515,"y":31301.23747069523},"targetPosition":{"x":17920.64382962515,"y":31249.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"075eb2a2-299b-4a0f-9f6d-76c385521dc4","savedPayload":{"position":{"x":17800.64382962515,"y":31332.23747069523},"targetPosition":{"x":17883.64382962515,"y":31289.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"e062ef2e-b252-4a66-8f58-d9aa8031f526","savedPayload":{"position":{"x":17883.64382962515,"y":31289.23747069523},"targetPosition":{"x":17920.64382962515,"y":31249.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e75be98-f874-486d-b749-536e364934dc","savedPayload":{"position":{"x":17920.64382962515,"y":31249.23747069523},"targetPosition":{"x":17845.64382962515,"y":31164.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"052f73cd-7ed7-4537-8b01-840b5b892fea","savedPayload":{"position":{"x":17845.64382962515,"y":31164.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07a7ec7c-273e-4675-8d8d-21ab8514a1f0","savedPayload":{"position":{"x":17895.458263866083,"y":32502.117186545547},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Deribit","config":"{ \n\"codeName\": \"deribit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f0b2354b-89e3-4eca-b051-664a3b8283f6","savedPayload":{"position":{"x":17862.64382962515,"y":30844.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4ae1f824-82a8-4796-a2d5-3d2358d8089f","savedPayload":{"position":{"x":17912.64382962515,"y":31024.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2013fe7a-d52c-4c9d-ba53-d281d014a8fc","savedPayload":{"position":{"x":17873.64382962515,"y":30926.23747069523},"targetPosition":{"x":17855.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"706d5778-ed21-49bd-9277-1840ec52708d","savedPayload":{"position":{"x":17729.64382962515,"y":31033.23747069523},"targetPosition":{"x":17813.64382962515,"y":31053.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2e76bc02-6e10-4f14-9bf1-a11dc4268466","savedPayload":{"position":{"x":17813.64382962515,"y":31053.23747069523},"targetPosition":{"x":17855.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"89a3ccc7-20ab-4e2d-929b-52d9286179b7","savedPayload":{"position":{"x":17855.64382962515,"y":30967.23747069523},"targetPosition":{"x":17818.64382962515,"y":30920.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5c8219e3-4509-4b8b-941b-b88ac2c12237","savedPayload":{"position":{"x":17818.64382962515,"y":30920.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"21971815-4248-45df-8e04-20b9a5a83f06","savedPayload":{"position":{"x":17794.92544989493,"y":32419.801715882462},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"DigiFinex","config":"{ \n\"codeName\": \"digifinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e583c93e-9a44-4e0d-acb7-56d7e00a555a","savedPayload":{"position":{"x":17954.64382962515,"y":30992.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8917c7c0-b420-4d4f-a35a-c0fc6870f0de","savedPayload":{"position":{"x":18052.64382962515,"y":30972.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a00b5bb0-5ab9-42e2-91fe-b450c7eb66d2","savedPayload":{"position":{"x":18220.64382962515,"y":31090.23747069523},"targetPosition":{"x":18123.64382962515,"y":30998.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2aafc473-339b-4d23-9b74-06fa7574c293","savedPayload":{"position":{"x":18144.64382962515,"y":31123.23747069523},"targetPosition":{"x":18203.64382962515,"y":31084.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"99e9e136-1ac7-4400-a100-0a2d37f0882d","savedPayload":{"position":{"x":18203.64382962515,"y":31084.23747069523},"targetPosition":{"x":18123.64382962515,"y":30998.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b7cee21b-ddcb-4fd7-b610-43aabb2d1766","savedPayload":{"position":{"x":18123.64382962515,"y":30998.23747069523},"targetPosition":{"x":18032.64382962515,"y":30976.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08e84a25-4368-4ad6-939f-5a16cece62cc","savedPayload":{"position":{"x":18032.64382962515,"y":30976.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b7d56781-0c51-4ec1-95fd-bf4dc8c00352","savedPayload":{"position":{"x":17703.88183147586,"y":32327.0992728693},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"DSX","config":"{ \n\"codeName\": \"dsx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"d672ab56-cd32-4ff5-8fc5-3733262aeccb","savedPayload":{"position":{"x":17916.64382962515,"y":31106.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3731a7b5-ba9d-483e-bb41-abf3ae0232c6","savedPayload":{"position":{"x":17878.64382962515,"y":30946.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9ef7e0ac-dc27-4b47-a06e-0cb7e80ee3d7","savedPayload":{"position":{"x":18124.64382962515,"y":31136.23747069523},"targetPosition":{"x":18093.64382962515,"y":31072.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"77491a3c-3db7-446f-aa67-9b5a1a3be7b3","savedPayload":{"position":{"x":18109.64382962515,"y":31081.23747069523},"targetPosition":{"x":18188.64382962515,"y":31137.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"bd1bd0b7-4943-4aeb-bf90-d3192dcabbb1","savedPayload":{"position":{"x":18188.64382962515,"y":31137.23747069523},"targetPosition":{"x":18093.64382962515,"y":31072.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45747fef-f30e-4fae-b02d-5768ae7dbe68","savedPayload":{"position":{"x":18093.64382962515,"y":31072.23747069523},"targetPosition":{"x":18018.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa2e1c9b-428c-4bb0-9e75-ceb8c9043d4b","savedPayload":{"position":{"x":18018.64382962515,"y":31005.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4c543abc-7372-4701-bc58-107578d45c25","savedPayload":{"position":{"x":17623.394811792878,"y":32225.09670889175},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FCoin","config":"{ \n\"codeName\": \"fcoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"a97d578c-6d7f-403c-8294-18aacf14abd8","savedPayload":{"position":{"x":17893.64382962515,"y":30953.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"442c3834-482e-4928-9255-8ac859ae012e","savedPayload":{"position":{"x":17905.64382962515,"y":30896.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"79754959-1219-4c4d-be63-22766158beb5","savedPayload":{"position":{"x":18106.64382962515,"y":30976.23747069523},"targetPosition":{"x":18069.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"1c3ae096-5024-43c3-abca-24498254e363","savedPayload":{"position":{"x":18112.64382962515,"y":30919.23747069523},"targetPosition":{"x":18126.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"59db5bfd-e413-48a7-af63-237ad56adc82","savedPayload":{"position":{"x":18126.64382962515,"y":30965.23747069523},"targetPosition":{"x":18069.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"833c4e54-08f4-48ec-b90a-2767eb55f244","savedPayload":{"position":{"x":18069.64382962515,"y":31056.23747069523},"targetPosition":{"x":17996.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a8cf17b3-0ea7-4a14-8c76-f655344b58a3","savedPayload":{"position":{"x":17996.64382962515,"y":30970.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6ddedcbd-07cb-4928-91b3-348f47118391","savedPayload":{"position":{"x":17554.408027561767,"y":32114.989910750606},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FCoinJP","config":"{ \n\"codeName\": \"fcoinjp\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"4a8a9810-6df6-451a-ab26-22bd7e7be85a","savedPayload":{"position":{"x":17930.64382962515,"y":31129.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"138ab40c-18ca-4a11-9709-0baa040873e6","savedPayload":{"position":{"x":18007.64382962515,"y":31122.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"258cdf92-8ed0-4133-ae2a-b9f086f56a13","savedPayload":{"position":{"x":17897.64382962515,"y":30887.23747069523},"targetPosition":{"x":17903.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"537e8f0c-05ca-4403-bc96-da6c2f4678ae","savedPayload":{"position":{"x":17825.64382962515,"y":30842.23747069523},"targetPosition":{"x":17836.64382962515,"y":30926.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"62519e63-8f4e-4b72-a341-0a6eea01ac3f","savedPayload":{"position":{"x":17836.64382962515,"y":30926.23747069523},"targetPosition":{"x":17903.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4974cc1-f594-436b-8aa4-aff2733b8e3c","savedPayload":{"position":{"x":17903.64382962515,"y":30977.23747069523},"targetPosition":{"x":17873.64382962515,"y":31061.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d84b404f-75e2-4eb5-b34a-b45af8a57ca7","savedPayload":{"position":{"x":17873.64382962515,"y":31061.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"982627ea-df84-4ba9-9219-612fbe1e4276","savedPayload":{"position":{"x":17497.730285752426,"y":31998.069779982467},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FTX","config":"{ \n\"codeName\": \"ftx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"20c0a4f5-bdb9-46cc-af7e-2111964551e3","savedPayload":{"position":{"x":17886.64382962515,"y":30940.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"75c99a0b-d3c9-4073-9283-d33e539c36bb","savedPayload":{"position":{"x":17992.64382962515,"y":31061.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2e037470-549e-4aa8-bbe7-95cdeaef88ea","savedPayload":{"position":{"x":17964.64382962515,"y":31027.23747069523},"targetPosition":{"x":17970.64382962515,"y":31008.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"3b6f5b7b-9c61-4b71-b29a-ca1bc027e55f","savedPayload":{"position":{"x":17817.64382962515,"y":30943.23747069523},"targetPosition":{"x":17890.64382962515,"y":30978.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"a84010f0-04b5-4eab-a3a6-a5944b80a373","savedPayload":{"position":{"x":17890.64382962515,"y":30978.23747069523},"targetPosition":{"x":17970.64382962515,"y":31008.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5cdc51a3-6136-4e03-9e2c-26a752140d17","savedPayload":{"position":{"x":17970.64382962515,"y":31008.23747069523},"targetPosition":{"x":18010.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"55258a2b-3199-4070-beed-d34a8496870c","savedPayload":{"position":{"x":18010.64382962515,"y":30986.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0c0bcf5c-2774-423e-9fcf-c512b38dd06d","savedPayload":{"position":{"x":17454.026081066615,"y":31875.707098219504},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Gate.io","config":"{ \n\"codeName\": \"gateio\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"71a15089-9d40-4726-9a41-37d406064164","savedPayload":{"position":{"x":17930.64382962515,"y":30993.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c025e976-c2c6-49de-81ec-48e2f737b412","savedPayload":{"position":{"x":17925.64382962515,"y":31053.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"876f964a-e12d-4438-87fb-a84be22f86d1","savedPayload":{"position":{"x":17914.64382962515,"y":30833.23747069523},"targetPosition":{"x":17827.64382962515,"y":30882.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0c5d34c4-467f-4e98-bd39-1b2d9afb834e","savedPayload":{"position":{"x":17852.64382962515,"y":30831.23747069523},"targetPosition":{"x":17870.64382962515,"y":30847.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"89316d8c-893a-46ae-b147-948b4b8a5292","savedPayload":{"position":{"x":17870.64382962515,"y":30847.23747069523},"targetPosition":{"x":17827.64382962515,"y":30882.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a2a5de53-bd45-4904-8bae-0cf5ed66d2af","savedPayload":{"position":{"x":17827.64382962515,"y":30882.23747069523},"targetPosition":{"x":17800.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f6f4072d-8cf6-4e47-8b4e-a21cd553348a","savedPayload":{"position":{"x":17800.64382962515,"y":30936.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c4028289-4cdb-4da0-90e6-5f93328b8e03","savedPayload":{"position":{"x":17423.807805345143,"y":31749.336456028108},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Gemini","config":"{ \n\"codeName\": \"gemini\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9eb15872-8d15-4086-9920-46909eb5f9e7","savedPayload":{"position":{"x":17951.64382962515,"y":30901.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"a84dcf06-57c6-47d7-97a0-9f03f3af8b34","savedPayload":{"position":{"x":18045.64382962515,"y":30891.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5da1ba65-3839-4664-8105-2ccb11652767","savedPayload":{"position":{"x":18028.64382962515,"y":31112.23747069523},"targetPosition":{"x":17941.64382962515,"y":31044.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"337fe5e2-b9fd-40eb-9f42-44fc5057d981","savedPayload":{"position":{"x":17957.64382962515,"y":31129.23747069523},"targetPosition":{"x":17875.64382962515,"y":31086.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"17a3f4a3-8914-4995-afb0-7e8115791b17","savedPayload":{"position":{"x":17875.64382962515,"y":31086.23747069523},"targetPosition":{"x":17941.64382962515,"y":31044.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"32e4a3f1-40d8-421f-9634-7ab339858286","savedPayload":{"position":{"x":17941.64382962515,"y":31044.23747069523},"targetPosition":{"x":17877.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"365f6865-e707-415d-a168-b67c66ca9553","savedPayload":{"position":{"x":17877.64382962515,"y":30977.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"58bf8247-baef-4ea6-a483-7ed8f0ba5043","savedPayload":{"position":{"x":17407.429740242005,"y":31620.439433646203},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"HitBTC","config":"{ \n\"codeName\": \"hitbtc\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"1632c520-fa79-442f-b33b-430cb1356de6","savedPayload":{"position":{"x":17809.64382962515,"y":31086.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"576d1666-dbd3-4914-9fe2-fa05bdf72eea","savedPayload":{"position":{"x":17840.64382962515,"y":31148.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"41317aae-08ce-48cf-a47b-c2d2cc3920ec","savedPayload":{"position":{"x":18096.64382962515,"y":30975.23747069523},"targetPosition":{"x":18026.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"23d7e4ba-8432-4214-bd94-0db5046e39cd","savedPayload":{"position":{"x":18039.64382962515,"y":31075.23747069523},"targetPosition":{"x":17981.64382962515,"y":31126.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ab200349-5ba5-44d2-ad5c-fa826303cfcd","savedPayload":{"position":{"x":17981.64382962515,"y":31126.23747069523},"targetPosition":{"x":18026.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a5f24785-5b2c-429b-a2e4-07063e2de904","savedPayload":{"position":{"x":18026.64382962515,"y":31066.23747069523},"targetPosition":{"x":17972.64382962515,"y":31093.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13f275ca-06a6-4a72-8b4d-a9c079b9cef4","savedPayload":{"position":{"x":17972.64382962515,"y":31093.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8384fa0b-854c-4c23-846e-a5da0179a738","savedPayload":{"position":{"x":17405.083903595932,"y":31490.527230809537},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"HitBTC","config":"{ \n\"codeName\": \"hitbtc2\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9a29cb9e-ee8d-4315-8532-eef82224b84a","savedPayload":{"position":{"x":17838.64382962515,"y":30922.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"badd79e7-1e21-4dc3-bfa7-8dfb4a6c6267","savedPayload":{"position":{"x":17920.64382962515,"y":30944.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"ffdda0b7-af50-4010-84da-2bc0d562af2b","savedPayload":{"position":{"x":17887.64382962515,"y":30982.23747069523},"targetPosition":{"x":17836.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"24816eed-adf7-453e-9b38-42ea4758dbaa","savedPayload":{"position":{"x":18021.64382962515,"y":30979.23747069523},"targetPosition":{"x":17931.64382962515,"y":30923.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"1dd16858-5641-4454-88a3-e5d7446e12a3","savedPayload":{"position":{"x":17931.64382962515,"y":30923.23747069523},"targetPosition":{"x":17836.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"457d75ed-ad21-4ee5-b36b-88cdc444008e","savedPayload":{"position":{"x":17836.64382962515,"y":31023.23747069523},"targetPosition":{"x":17808.64382962515,"y":31039.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b29ded7e-e2d5-4c7f-89af-b0816c32c743","savedPayload":{"position":{"x":17808.64382962515,"y":31039.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"09c634c2-5aba-49c5-80bc-4fd4175e7f0c","savedPayload":{"position":{"x":17416.79779819678,"y":31361.12294931652},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Huobi Pro","config":"{ \n\"codeName\": \"huobipro\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"86caa38c-5bdf-40e4-b27b-8d8b64319575","savedPayload":{"position":{"x":18071.64382962515,"y":31171.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"001225af-c715-4566-9502-f8f0ac1c4531","savedPayload":{"position":{"x":18040.64382962515,"y":31019.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"b4bf5ccb-b529-4500-a192-d9c3a0613389","savedPayload":{"position":{"x":18129.64382962515,"y":31073.23747069523},"targetPosition":{"x":18033.64382962515,"y":31090.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2e58c6d1-cfa7-4dc7-a322-e9356596ea1e","savedPayload":{"position":{"x":17976.64382962515,"y":31132.23747069523},"targetPosition":{"x":17953.64382962515,"y":31093.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae04ddf4-ae3e-4bdc-9393-41acc38ef818","savedPayload":{"position":{"x":17953.64382962515,"y":31093.23747069523},"targetPosition":{"x":18033.64382962515,"y":31090.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2428e8ef-6a09-48fa-8ae4-ebfb28420be8","savedPayload":{"position":{"x":18033.64382962515,"y":31090.23747069523},"targetPosition":{"x":18085.64382962515,"y":31157.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"55c71c8b-f21f-4d16-ae93-e29362c39bf5","savedPayload":{"position":{"x":18085.64382962515,"y":31157.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"967c3914-a76d-4389-9c7e-9c258ae683bd","savedPayload":{"position":{"x":17442.43408934047,"y":31233.743736052187},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Huobi Russia","config":"{ \n\"codeName\": \"huobiru\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9b7b32d6-a42e-44bb-8065-5aa32b1e844b","savedPayload":{"position":{"x":17980.64382962515,"y":31034.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8d74201c-33cd-4e12-8920-b08d0ef97572","savedPayload":{"position":{"x":17992.64382962515,"y":31105.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c6e289d7-074b-4837-96e3-687988886fcc","savedPayload":{"position":{"x":18078.64382962515,"y":30954.23747069523},"targetPosition":{"x":18008.64382962515,"y":31029.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d72f81ba-6b41-414d-9cf0-d5f9c0c25403","savedPayload":{"position":{"x":18026.64382962515,"y":31021.23747069523},"targetPosition":{"x":18083.64382962515,"y":31117.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5354f66c-6e73-4fe5-80ca-2c25b761ef51","savedPayload":{"position":{"x":18083.64382962515,"y":31117.23747069523},"targetPosition":{"x":18008.64382962515,"y":31029.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"81f5adbb-054c-47f2-b019-52585f5d7417","savedPayload":{"position":{"x":18008.64382962515,"y":31029.23747069523},"targetPosition":{"x":18018.64382962515,"y":31009.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ecd8645b-4bb6-4641-a20f-cee51bf33f1a","savedPayload":{"position":{"x":18018.64382962515,"y":31009.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6f97bb5c-8d85-43ee-86a1-33e22cdfbb5e","savedPayload":{"position":{"x":17481.692214952825,"y":31109.882995828142},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"KKEX","config":"{ \n\"codeName\": \"kkex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"daa4e07a-1cd8-4d92-8004-2eabfaa62f77","savedPayload":{"position":{"x":17924.64382962515,"y":31038.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"cb64951f-d984-4f51-a751-166a316084f3","savedPayload":{"position":{"x":17945.64382962515,"y":31156.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6915bf12-9271-47e2-8b49-924ae9f5c65f","savedPayload":{"position":{"x":17958.64382962515,"y":31297.23747069523},"targetPosition":{"x":17875.64382962515,"y":31252.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"ff53381f-c6dd-4d17-a477-11396f60663f","savedPayload":{"position":{"x":17805.64382962515,"y":31141.23747069523},"targetPosition":{"x":17861.64382962515,"y":31223.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae05bfc4-6ac8-408c-a90b-263830b2a71e","savedPayload":{"position":{"x":17861.64382962515,"y":31223.23747069523},"targetPosition":{"x":17875.64382962515,"y":31252.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61c85f1a-a2a6-45c9-bb1e-3c76110f5d1e","savedPayload":{"position":{"x":17875.64382962515,"y":31252.23747069523},"targetPosition":{"x":17911.64382962515,"y":31154.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fafb114-37d2-4d04-9c42-83d04ff62fc7","savedPayload":{"position":{"x":17911.64382962515,"y":31154.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"16ae95ce-796f-4f2b-942c-f98dcbf9cf4b","savedPayload":{"position":{"x":17534.11190940509,"y":30990.99288257655},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Kraken","config":"{ \n\"codeName\": \"kraken\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"747af60f-c8b9-4377-aa6c-172d4137ea23","savedPayload":{"position":{"x":17854.64382962515,"y":31008.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c75f7d97-9dc2-4d3e-89eb-f8a3d5f16368","savedPayload":{"position":{"x":17916.64382962515,"y":30872.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"0093e946-03f4-4aec-942d-c76aed12ab1a","savedPayload":{"position":{"x":17780.64382962515,"y":31091.23747069523},"targetPosition":{"x":17836.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2a4235ac-e5ea-4484-bccd-f06c8a7275ec","savedPayload":{"position":{"x":17930.64382962515,"y":30869.23747069523},"targetPosition":{"x":17883.64382962515,"y":30953.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"737dec0a-23ab-4044-94ba-95c8bc50c0eb","savedPayload":{"position":{"x":17883.64382962515,"y":30953.23747069523},"targetPosition":{"x":17836.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"457b045e-dae5-4f53-a8b7-cab4757e5286","savedPayload":{"position":{"x":17836.64382962515,"y":31011.23747069523},"targetPosition":{"x":17926.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6eff12db-8e7c-402a-9e06-ae2618f506a0","savedPayload":{"position":{"x":17926.64382962515,"y":31005.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"644efe9c-597a-4ddf-9e28-b33fb3b62d3e","savedPayload":{"position":{"x":17599.078599707587,"y":30878.467274173025},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"KuCoin","config":"{ \n\"codeName\": \"kucoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"01ca3037-4ed3-499e-ad6b-e14ca1d4a51f","savedPayload":{"position":{"x":17919.64382962515,"y":30949.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8b3c4ce0-98b1-4d46-bd02-6cf44c3dd686","savedPayload":{"position":{"x":17998.64382962515,"y":30978.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d6c7c0ef-670d-4ed6-9246-6eb7d6bfc359","savedPayload":{"position":{"x":17927.64382962515,"y":30962.23747069523},"targetPosition":{"x":17953.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e8c2c454-b246-4f63-b51b-74d9cbb01ac2","savedPayload":{"position":{"x":17927.64382962515,"y":30924.23747069523},"targetPosition":{"x":17912.64382962515,"y":30869.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"d2bb2603-3b52-443c-8923-86fefafc0b14","savedPayload":{"position":{"x":17912.64382962515,"y":30869.23747069523},"targetPosition":{"x":17953.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fa83b0b9-1039-4406-907c-f809a5af40f5","savedPayload":{"position":{"x":17953.64382962515,"y":30954.23747069523},"targetPosition":{"x":17966.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"471161d3-201e-40c6-b433-49643cf7e43b","savedPayload":{"position":{"x":17966.64382962515,"y":30962.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d79bc720-68e1-4771-a66a-bcffa30639d3","savedPayload":{"position":{"x":17675.830610816145,"y":30773.625430492953},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"LBank","config":"{ \n\"codeName\": \"lbank\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"def3f9d0-f09e-4e09-8b6d-a4c322a4384b","savedPayload":{"position":{"x":17877.64382962515,"y":31024.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"53eac3c1-96d6-4cb1-b54d-f3f174eaf733","savedPayload":{"position":{"x":17764.64382962515,"y":31036.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c6c00704-1357-4426-910e-8134d6f87017","savedPayload":{"position":{"x":18030.64382962515,"y":31212.23747069523},"targetPosition":{"x":17951.64382962515,"y":31172.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"13990604-2192-4be1-b21b-53cf2bafc002","savedPayload":{"position":{"x":17893.64382962515,"y":31189.23747069523},"targetPosition":{"x":17964.64382962515,"y":31122.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ed2c483e-d412-406d-b6f3-cfb1112a3a05","savedPayload":{"position":{"x":17964.64382962515,"y":31122.23747069523},"targetPosition":{"x":17951.64382962515,"y":31172.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6033b63c-c7fe-4a5d-8cf6-82128e2cfb41","savedPayload":{"position":{"x":17951.64382962515,"y":31172.23747069523},"targetPosition":{"x":17891.64382962515,"y":31096.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20ece5c4-dbfa-4f4a-a9ee-8c8d9c38943b","savedPayload":{"position":{"x":17891.64382962515,"y":31096.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cb2558d6-dab0-4f35-b83f-7cfc161b3d4f","savedPayload":{"position":{"x":17763.468095575536,"y":30677.69652629567},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Mercado Bitcoin","config":"{ \n\"codeName\": \"mercado\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"83ab2c39-e844-496f-bebb-7b8607428902","savedPayload":{"position":{"x":17849.64382962515,"y":31081.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d69e722e-c71a-462a-8bbd-d3482d0eab21","savedPayload":{"position":{"x":17771.64382962515,"y":30887.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"18438709-83cf-49a3-96b8-888ab5adbcc5","savedPayload":{"position":{"x":17937.64382962515,"y":31080.23747069523},"targetPosition":{"x":17866.64382962515,"y":31013.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"6b9d4ed4-af81-462a-aace-fac0afd4687a","savedPayload":{"position":{"x":17787.64382962515,"y":30841.23747069523},"targetPosition":{"x":17873.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"802a4c53-8617-4257-95a5-45bfaa60ad0e","savedPayload":{"position":{"x":17873.64382962515,"y":30935.23747069523},"targetPosition":{"x":17866.64382962515,"y":31013.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"87936a4a-aac5-4aca-8f3e-2051611932c4","savedPayload":{"position":{"x":17866.64382962515,"y":31013.23747069523},"targetPosition":{"x":17829.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"48f3a793-bb97-447b-8f1a-1d6965219747","savedPayload":{"position":{"x":17829.64382962515,"y":30919.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5002072e-145c-4aeb-a611-3e0e4c60ee5d","savedPayload":{"position":{"x":17860.963584604677,"y":30591.805240274254},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKCoin","config":"{ \n\"codeName\": \"okcoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"1e4dd5c8-0545-4698-8695-c985880243a3","savedPayload":{"position":{"x":17921.64382962515,"y":31043.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0e188cae-9764-4963-a78b-e5d7ef272522","savedPayload":{"position":{"x":18005.64382962515,"y":30891.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6d82bfd7-b4e1-4f93-a0f8-18f62cee944e","savedPayload":{"position":{"x":18047.64382962515,"y":30877.23747069523},"targetPosition":{"x":17963.64382962515,"y":30898.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d815409c-1dd4-4e89-b844-5b96104509b4","savedPayload":{"position":{"x":17958.64382962515,"y":30988.23747069523},"targetPosition":{"x":17945.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"238b9d2c-e2c0-4a77-945e-8e28604c0a2d","savedPayload":{"position":{"x":17945.64382962515,"y":30961.23747069523},"targetPosition":{"x":17963.64382962515,"y":30898.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8416c29a-5d73-4b2a-9463-511f400deafb","savedPayload":{"position":{"x":17963.64382962515,"y":30898.23747069523},"targetPosition":{"x":18047.64382962515,"y":30885.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04abf32b-084e-4784-aa84-8c5612d3b7b9","savedPayload":{"position":{"x":18047.64382962515,"y":30885.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1f860b4b-2893-4a51-8649-19c47d494a37","savedPayload":{"position":{"x":17967.17403243568,"y":30516.958569226157},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKEX","config":"{ \n\"codeName\": \"okex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"7f618566-3d10-4c3c-90b2-7541a5146eeb","savedPayload":{"position":{"x":17770.64382962515,"y":31094.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"21205576-5d12-452c-814f-eb56182162ae","savedPayload":{"position":{"x":17794.64382962515,"y":31173.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"46456247-ae9c-41ea-8395-a5e4a78007d4","savedPayload":{"position":{"x":17724.64382962515,"y":31147.23747069523},"targetPosition":{"x":17795.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"706bf601-eaad-48bd-b0a7-8dad59066171","savedPayload":{"position":{"x":17715.64382962515,"y":31182.23747069523},"targetPosition":{"x":17706.64382962515,"y":31162.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"f9c7071c-2e5b-4c90-b482-dfc7ee001244","savedPayload":{"position":{"x":17706.64382962515,"y":31162.23747069523},"targetPosition":{"x":17795.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e87e1e10-3404-48b9-8629-5df92ffa1979","savedPayload":{"position":{"x":17795.64382962515,"y":31083.23747069523},"targetPosition":{"x":17789.64382962515,"y":31181.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08e8fd6a-6b23-4d65-8b8e-d966f845c07f","savedPayload":{"position":{"x":17789.64382962515,"y":31181.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"aa0edec0-8b27-4f94-abce-1e437ce5aba6","savedPayload":{"position":{"x":18080.854218676865,"y":30454.034021936455},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"RightBTC","config":"{ \n\"codeName\": \"rightbtc\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"ade372e9-5070-4fa9-843e-57732c4106c3","savedPayload":{"position":{"x":17999.64382962515,"y":30964.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b63d440e-4501-475c-b8a6-2b9a144e32a1","savedPayload":{"position":{"x":17984.64382962515,"y":30901.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"81d77477-4f2e-43c0-b284-dde54f91c37f","savedPayload":{"position":{"x":17864.64382962515,"y":31036.23747069523},"targetPosition":{"x":17861.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"9ce3cc34-1ba4-4155-96a5-c946b1bcc5ab","savedPayload":{"position":{"x":17819.64382962515,"y":31127.23747069523},"targetPosition":{"x":17810.64382962515,"y":31080.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c7df4af7-37c1-403d-ada1-b6a527821bdd","savedPayload":{"position":{"x":17810.64382962515,"y":31080.23747069523},"targetPosition":{"x":17861.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6de19501-5ce7-4944-b9dd-25b149acbb38","savedPayload":{"position":{"x":17861.64382962515,"y":31043.23747069523},"targetPosition":{"x":17946.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa87ace4-a976-401c-93f9-24a498261742","savedPayload":{"position":{"x":17946.64382962515,"y":30988.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c20cd9e1-52a0-4d17-b90c-e9d5b63315ce","savedPayload":{"position":{"x":18200.67134708334,"y":30403.76933118965},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"STEX","config":"{ \n\"codeName\": \"stex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f1d65161-4922-4a1e-ac98-df1a842347a7","savedPayload":{"position":{"x":17872.64382962515,"y":31001.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c313b2c6-6154-4a9a-b826-fd99cc500cd9","savedPayload":{"position":{"x":17888.64382962515,"y":31186.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d0a1259b-1c37-4d39-836e-3c434c3b3687","savedPayload":{"position":{"x":17778.64382962515,"y":31076.23747069523},"targetPosition":{"x":17858.64382962515,"y":31091.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"4a1e5627-459c-4dec-be13-c20d4a9ea58f","savedPayload":{"position":{"x":17841.64382962515,"y":31179.23747069523},"targetPosition":{"x":17795.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"6981eb0d-0f0e-4f8e-9781-4a03e22e93fd","savedPayload":{"position":{"x":17795.64382962515,"y":31105.23747069523},"targetPosition":{"x":17858.64382962515,"y":31091.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7704478a-9717-43a8-bd2e-88daa6f84bd0","savedPayload":{"position":{"x":17858.64382962515,"y":31091.23747069523},"targetPosition":{"x":17941.64382962515,"y":31173.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"262aad86-f430-49ea-a636-e8bd816a9636","savedPayload":{"position":{"x":17941.64382962515,"y":31173.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0ea23137-3c65-4de1-9772-6ac1b65196e8","savedPayload":{"position":{"x":18325.220671374373,"y":30366.753804527314},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TideBit","config":"{ \n\"codeName\": \"tidebit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c92318bd-8b2d-489b-b8e8-cf30fb63286e","savedPayload":{"position":{"x":17981.64382962515,"y":31021.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"83bca3ec-fc1c-435c-b5fe-b1cf92463fd1","savedPayload":{"position":{"x":18051.64382962515,"y":31072.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2f3ee9b2-cd41-458c-84da-edac3155028a","savedPayload":{"position":{"x":18075.64382962515,"y":31059.23747069523},"targetPosition":{"x":17987.64382962515,"y":31047.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"009ae4b6-adbc-4900-9fc0-f18936eeed9b","savedPayload":{"position":{"x":18030.64382962515,"y":31058.23747069523},"targetPosition":{"x":18009.64382962515,"y":31028.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"3ee88180-fe10-41df-8251-b1ed0a526e7a","savedPayload":{"position":{"x":18009.64382962515,"y":31028.23747069523},"targetPosition":{"x":17987.64382962515,"y":31047.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bb88e6e8-a99a-4c4e-9ca5-ffed49aa8b54","savedPayload":{"position":{"x":17987.64382962515,"y":31047.23747069523},"targetPosition":{"x":17925.64382962515,"y":31135.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13a4a95e-4333-4455-9f7c-90bc839d174a","savedPayload":{"position":{"x":17925.64382962515,"y":31135.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5563c310-701a-4c1e-8155-87c08c927ce3","savedPayload":{"position":{"x":18453.041964599197,"y":30343.421415155935},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TimeX","config":"{ \n\"codeName\": \"timex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"5c004b5f-eec4-414f-8d01-d9b3fddeee9e","savedPayload":{"position":{"x":17892.64382962515,"y":30973.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"59a33add-d0e9-4ae1-8a01-f1e0ed09cb61","savedPayload":{"position":{"x":17911.64382962515,"y":30878.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a4189ba1-d1d4-4ff8-91dd-a8696ca493e3","savedPayload":{"position":{"x":17953.64382962515,"y":30880.23747069523},"targetPosition":{"x":17924.64382962515,"y":30871.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"3d34eb9d-e7cb-42fe-8785-c327b2bbc529","savedPayload":{"position":{"x":17839.64382962515,"y":30875.23747069523},"targetPosition":{"x":17930.64382962515,"y":30877.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"773de01f-0999-4a59-91f0-642148cd58d0","savedPayload":{"position":{"x":17930.64382962515,"y":30877.23747069523},"targetPosition":{"x":17924.64382962515,"y":30871.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fe33a596-4f98-4843-a5b1-26e7e0fcf1c8","savedPayload":{"position":{"x":17924.64382962515,"y":30871.23747069523},"targetPosition":{"x":18018.64382962515,"y":30832.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d078b9a3-cdc6-458e-a511-dc4f5bef38ba","savedPayload":{"position":{"x":18018.64382962515,"y":30832.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"27d69fa7-b561-4986-8c0d-1b374e7e1bf1","savedPayload":{"position":{"x":18582.63663896287,"y":30334.045714007894},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TOP.Q","config":"{ \n\"codeName\": \"topq\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"eafef6a3-eed2-470e-a15c-aa4c10001cd2","savedPayload":{"position":{"x":17818.64382962515,"y":31115.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"2d5eb813-ceb6-40cd-8682-7205596bb8b5","savedPayload":{"position":{"x":17759.64382962515,"y":31188.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"61f7832c-c1f0-40bc-b1f2-ba947c58309d","savedPayload":{"position":{"x":17741.64382962515,"y":31288.23747069523},"targetPosition":{"x":17788.64382962515,"y":31228.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"63b973da-30a7-467a-b954-c57537aab18d","savedPayload":{"position":{"x":17677.64382962515,"y":31206.23747069523},"targetPosition":{"x":17756.64382962515,"y":31146.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"722dcf44-de3f-4d1a-8655-80561e1e4d55","savedPayload":{"position":{"x":17756.64382962515,"y":31146.23747069523},"targetPosition":{"x":17788.64382962515,"y":31228.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45d5e04a-4a53-4f32-b4c0-d882456cb263","savedPayload":{"position":{"x":17788.64382962515,"y":31228.23747069523},"targetPosition":{"x":17806.64382962515,"y":31163.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c66e8dfc-4847-4180-b82c-36458f9b405d","savedPayload":{"position":{"x":17806.64382962515,"y":31163.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8fdf13d8-e8d2-4ef4-8b34-f492a25d753a","savedPayload":{"position":{"x":18712.485315398026,"y":30338.736622606855},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Upbit","config":"{ \n\"codeName\": \"upbit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f456fec2-cee6-4f0c-b865-1188088879c9","savedPayload":{"position":{"x":17919.64382962515,"y":30973.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"947c1ca0-bff9-4372-b153-40054e29b705","savedPayload":{"position":{"x":17921.64382962515,"y":31014.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"34ffbe12-5a26-446a-8bf6-7395c0370ba2","savedPayload":{"position":{"x":17874.64382962515,"y":30900.23747069523},"targetPosition":{"x":17945.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"8f00f19d-74a8-48d8-b951-79f35e87b110","savedPayload":{"position":{"x":17906.64382962515,"y":30902.23747069523},"targetPosition":{"x":17896.64382962515,"y":30896.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"64e1bede-aabf-4831-83a6-fe1cea435613","savedPayload":{"position":{"x":17896.64382962515,"y":30896.23747069523},"targetPosition":{"x":17945.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7c80b956-f2ca-4a6f-a661-f17546288d3e","savedPayload":{"position":{"x":17945.64382962515,"y":30971.23747069523},"targetPosition":{"x":18027.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e3686b02-4ecc-4dcb-a311-b7ef542a3c37","savedPayload":{"position":{"x":18027.64382962515,"y":31048.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"74e57ecd-3394-42b4-b2c4-6f216f7e41db","savedPayload":{"position":{"x":18841.065636895226,"y":30357.439144338445},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"WhiteBit","config":"{ \n\"codeName\": \"whitebit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c16eae45-a568-4b2e-b064-4431bdf34c24","savedPayload":{"position":{"x":17767.64382962515,"y":30899.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"dfdf793f-4ba6-4215-a325-323c0f223553","savedPayload":{"position":{"x":17920.64382962515,"y":31004.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"fd749d13-dbac-493f-9af6-c521eddf909f","savedPayload":{"position":{"x":17815.64382962515,"y":30973.23747069523},"targetPosition":{"x":17720.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"79f7d2d0-77a5-4f38-ac68-fd11f18e5e6b","savedPayload":{"position":{"x":17761.64382962515,"y":31182.23747069523},"targetPosition":{"x":17680.64382962515,"y":31153.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fd0506f4-58b7-431e-bc9d-69bce63c3379","savedPayload":{"position":{"x":17680.64382962515,"y":31153.23747069523},"targetPosition":{"x":17720.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"47e8a4b1-9a6c-4555-a881-f7524183d72e","savedPayload":{"position":{"x":17720.64382962515,"y":31056.23747069523},"targetPosition":{"x":17817.64382962515,"y":31010.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7fa08b91-55ab-477d-a097-88ea7f25fb76","savedPayload":{"position":{"x":17817.64382962515,"y":31010.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"467ece1e-d1d0-4a11-ae7a-d0e22cd4eba5","savedPayload":{"position":{"x":18966.87011674703,"y":30389.934009235236},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"ZB","config":"{ \n\"codeName\": \"zb\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"db206cbd-a587-4e8e-acbe-6581ad3b5cc4","savedPayload":{"position":{"x":17855.64382962515,"y":31027.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"1dd658c5-7755-44b7-85f0-9bcd787762a0","savedPayload":{"position":{"x":17789.64382962515,"y":31044.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"0de82bbe-7909-4b65-b304-f59b41f618ae","savedPayload":{"position":{"x":17830.64382962515,"y":30696.23747069523},"targetPosition":{"x":17846.64382962515,"y":30793.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c89819d0-8880-4b36-a9b3-0b284d266e3b","savedPayload":{"position":{"x":17891.64382962515,"y":30748.23747069523},"targetPosition":{"x":17865.64382962515,"y":30772.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"7a55f503-17fa-45c4-880b-1a9a11a0a555","savedPayload":{"position":{"x":17865.64382962515,"y":30772.23747069523},"targetPosition":{"x":17846.64382962515,"y":30793.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e640fca2-8bab-45ff-9a47-8e7b9650c277","savedPayload":{"position":{"x":17846.64382962515,"y":30793.23747069523},"targetPosition":{"x":17909.64382962515,"y":30886.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"421a99cd-3d9a-46a5-8654-08d6336e75be","savedPayload":{"position":{"x":17909.64382962515,"y":30886.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07df07e8-39a8-4fbc-a0c8-150f20b6ac59","savedPayload":{"position":{"x":19088.423812451314,"y":30435.840244716648},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51f64e29-e3ab-4683-a5de-f397fbf94260","savedPayload":{"position":{"x":18603.301618063546,"y":31534.850126685462},"targetPosition":{"x":18903.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Testing Queue","project":"Superalgos","exchanges":[],"id":"895ce4b1-4890-4216-89ba-a012181d2546","savedPayload":{"position":{"x":18753.301618063546,"y":30755.427263279467},"targetPosition":{"x":18903.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"signalsProviders":[],"id":"7217b56c-e854-4c06-8b8a-d5d3c05a153d","savedPayload":{"position":{"x":18903.301618063546,"y":31015.2348844148},"targetPosition":{"x":18903.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Charting Space","name":"New Charting Space","project":"Superalgos","viewport":{"type":"Viewport","name":"New Viewport","config":"{\"zoom\":\"0.00\"}","project":"Superalgos","id":"01713f1d-91b8-44f9-9c5d-a0c12fd09037","savedPayload":{"position":{"x":19200.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"frame":{"position":{"x":245.62500000000045,"y":440.12500000000006}}}},"projectDashboards":[{"type":"Project Dashboards","name":"Superalgos","project":"Superalgos","dashboards":[{"type":"Dashboard","name":"Testing Environment My Computer","project":"Superalgos","timeMachines":[{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","config":"{}","project":"Superalgos","timeScale":{"type":"Time Scale","name":"New Time Scale","config":"{\n \"autoMinScale\": true,\n \"autoMaxScale\": true,\n \"fromDate\": \"2020-08-31T23:40:00.000Z\",\n \"toDate\": \"2020-09-01T01:00:00.000Z\"\n}","project":"Superalgos","id":"691e2b6e-6b13-4a94-a8cd-15bbad6e8d2b","savedPayload":{"position":{"x":18483.434665834,"y":25740.977644897117},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","config":"{\n \"autoMinScale\": true,\n \"autoMaxScale\": true,\n \"minValue\": 11400,\n \"maxValue\": 11800\n}","project":"Superalgos","id":"d1c91955-e558-4ffe-a349-895405dd7475","savedPayload":{"position":{"x":18378.45195066214,"y":25792.749390696466},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","config":"{\"value\":\"24-hs\"}","project":"Superalgos","id":"69064a57-bfa3-4a7a-a597-55887057befb","savedPayload":{"position":{"x":18261.64837946537,"y":25800.405101221888},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Candles Volumes","project":"Superalgos","layers":[{"type":"Layer","name":"Candles","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","id":"550e7d96-2b55-4cb5-91d5-6fbceb32cbb8","savedPayload":{"position":{"x":18000.806237131383,"y":26622.58688508041},"targetPosition":{"x":18000.806237131383,"y":26322.58688508041},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"b9c30464-73e5-4f5c-b422-9ba1a02b78ab"}}}],"layerFolders":[],"id":"a9026e9d-f9c2-4509-9a75-862421b5c70b","savedPayload":{"position":{"x":18000.806237131383,"y":26322.58688508041},"targetPosition":{"x":18000.806237131383,"y":26022.58688508041},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Resistances and Supports","project":"Superalgos","layers":[{"type":"Layer","name":"Resistances","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"ea7115b6-1324-43dc-8fa2-90c12c2c2c48","savedPayload":{"position":{"x":17590.99861599605,"y":26432.394506215744},"targetPosition":{"x":17740.99861599605,"y":26172.58688508041},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Resistances","id":"a1669770-1bbe-40f7-acb3-ded15272935f"}}},{"type":"Layer","name":"Supports","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"2d16e7e1-8676-4041-a1b1-0172e023558a","savedPayload":{"position":{"x":17440.99861599605,"y":26172.58688508041},"targetPosition":{"x":17740.99861599605,"y":26172.58688508041},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Supports","id":"64899503-b618-493a-ba94-bfad2051a611"}}}],"layerFolders":[],"id":"b7fed612-b218-4378-bb3f-6c90fb947449","savedPayload":{"position":{"x":17740.99861599605,"y":26172.58688508041},"targetPosition":{"x":18000.806237131383,"y":26022.58688508041},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa6b9a8f-d5f4-4f60-b3fa-bdf957806bfb","savedPayload":{"position":{"x":18000.806237131383,"y":26022.58688508041},"targetPosition":{"x":18150.806237131383,"y":25762.779263945078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Data Mine Products","name":"Masters","id":"d37d8bf1-be3b-49ac-805b-0ddb3944e6a0"}}},"id":"6a4b0ce0-7e88-4fe3-b9b5-2116d81b2da0","savedPayload":{"position":{"x":18150.806237131383,"y":25762.779263945078},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Trading Engine","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading Engine","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Episode","project":"Superalgos","layers":[{"type":"Layer","name":"Episode Counters","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"fbbb590b-c94d-4625-94e2-bc4bfa2ab6f9","savedPayload":{"position":{"x":17117.615314676776,"y":27603.533941128822},"targetPosition":{"x":16629.455267522357,"y":27495.510435539556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Counters","id":"a01b42b0-ea87-47ab-b0e9-52d4b10cb631"}}},{"type":"Layer","name":"Episode Statistics","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"ab219d3d-1f44-4448-b5f9-f9f6ace6caea","savedPayload":{"position":{"x":17051.16747388602,"y":27764.15503654623},"targetPosition":{"x":16629.455267522357,"y":27495.510435539556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Statistics","id":"559a20a7-6697-4245-9d6c-ad7c0e31ff84"}}},{"type":"Layer","name":"Episode Candle","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"7dd6f9d6-3840-4a95-a9c9-9445a1335868","savedPayload":{"position":{"x":16933.846232243683,"y":27892.241373813282},"targetPosition":{"x":16629.455267522357,"y":27495.510435539556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Candle","id":"24fab05f-ff78-4cca-af61-d4d0bb2f2960"}}},{"type":"Layer","name":"Episode Balances","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"371bfe04-1b2d-4d60-ae70-03a2f7522466","savedPayload":{"position":{"x":16779.824555577114,"y":27972.466666709206},"targetPosition":{"x":16629.455267522357,"y":27495.510435539556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Balances","id":"7c580919-08ce-4aff-9e84-888fdf07caec"}}},{"type":"Layer","name":"Distance To Event","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"f1dea1ef-69f3-4b64-8586-ec43aa281cde","savedPayload":{"position":{"x":16607.980005705944,"y":27995.20904027392},"targetPosition":{"x":16629.455267522357,"y":27495.510435539556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Distance To Event","id":"389797d4-8456-4258-9adf-246a6ba69016"}}},{"type":"Layer","name":"Episode Base Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"eca94344-450b-4dc9-ad80-8e202b6e0517","savedPayload":{"position":{"x":16468.146686869968,"y":28016.33671006015},"targetPosition":{"x":16629.455267522357,"y":27495.510435539556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Base Asset","id":"323c7b0b-42b1-4ff0-9d4b-36c2fd605caa"}}},{"type":"Layer","name":"Episode Quoted Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"a4c54659-0b38-4faf-9827-47976eb9cca7","savedPayload":{"position":{"x":16286.534133073324,"y":27862.805158861436},"targetPosition":{"x":16629.455267522357,"y":27495.510435539556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Quoted Asset","id":"63594fc6-3b89-4507-bca8-2d43ef618cbe"}}},{"type":"Layer","name":"Current Episode","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"e82d97df-5b25-4967-b2b4-da065c5d3ad9","savedPayload":{"position":{"x":16186.118842172375,"y":27726.349378357005},"targetPosition":{"x":16629.455267522357,"y":27495.510435539556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Episode","id":"73bb3f9e-b112-4e5a-bce9-6d4bec41cc6c"}}}],"layerFolders":[],"id":"851d853d-e2d7-4138-b5fd-563f1f844f64","savedPayload":{"position":{"x":16629.455267522357,"y":27495.510435539556},"targetPosition":{"x":16563.94253388532,"y":27000.12691029475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Strategy","project":"Superalgos","layers":[{"type":"Layer","name":"Current Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"dc84698a-bce4-4979-9aca-80661b054191","savedPayload":{"position":{"x":16413.05839477738,"y":27900.48601747122},"targetPosition":{"x":16372.806838862034,"y":27461.836330732353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Strategy","id":"515f5fd6-d860-44d4-b5d6-a19acd9c5c86"}}},{"type":"Layer","name":"Last Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"d3456e5b-0438-4273-a3ce-6b1d60573c33","savedPayload":{"position":{"x":15940.04282322282,"y":27710.982017672217},"targetPosition":{"x":16372.806838862034,"y":27461.836330732353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Strategy","id":"556e97e8-eba3-419d-869d-950cc99371da"}}}],"layerFolders":[],"id":"6ad8b449-785f-40cc-afc0-19c68b508c17","savedPayload":{"position":{"x":16372.806838862034,"y":27461.836330732353},"targetPosition":{"x":16563.94253388532,"y":27000.12691029475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Current Position","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"4b8d055f-0c36-40a6-af78-5faf9b34b72c","savedPayload":{"position":{"x":16011.911411221576,"y":27821.709717793714},"targetPosition":{"x":16167.428268555628,"y":27304.34657839513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Position","id":"d33abc39-702b-4d7a-8435-43d90e0f2c3a"}}},{"type":"Layer","name":"Last Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"ac24a200-397f-4d7c-9916-581328c74f22","savedPayload":{"position":{"x":15678.683136179856,"y":27381.4342703589},"targetPosition":{"x":16167.428268555628,"y":27304.34657839513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Position","id":"d681fd5f-64af-4f39-9f6d-a767bef7692f"}}}],"layerFolders":[],"id":"acf27818-08f1-4c0d-9cc9-30c38ba892fb","savedPayload":{"position":{"x":16167.428268555628,"y":27304.34657839513},"targetPosition":{"x":16563.94253388532,"y":27000.12691029475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Open Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"b9eeeeb3-43db-4d4f-9f28-f42e947494f9","savedPayload":{"position":{"x":15829.8024827204,"y":27504.536838373795},"targetPosition":{"x":16068.487948353533,"y":27065.178022212927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stage","id":"b0961496-1af9-48cd-bbeb-ac5973192e78"}}},{"type":"Layer","name":"Close Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"eda9462a-9688-42cf-ae97-b3dfd02c718c","savedPayload":{"position":{"x":15609.804663880679,"y":27268.796716857654},"targetPosition":{"x":16068.487948353533,"y":27065.178022212927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stage","id":"0c9cf78d-ce6e-4318-811d-e748ca72845d"}}},{"type":"Layer","name":"Trigger Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"1481d280-6112-4d0d-8a48-3fe4e65efc9d","savedPayload":{"position":{"x":15542.751172927,"y":26994.51154740736},"targetPosition":{"x":16068.487948353533,"y":27065.178022212927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stage","id":"e298787f-b7f2-4334-931e-38b9441e43f9"}}},{"type":"Layer","name":"Manage Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"2f579332-aa55-4e51-bbf4-370614838fd3","savedPayload":{"position":{"x":15731.678465146957,"y":26701.21391555524},"targetPosition":{"x":16068.487948353533,"y":27065.178022212927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stage","id":"4719b69d-b23e-4037-8c0a-b641fd8ab14c"}}}],"layerFolders":[],"id":"5b4e1c43-9fb7-439f-9ca9-e600bd41718d","savedPayload":{"position":{"x":16068.487948353533,"y":27065.178022212927},"targetPosition":{"x":16563.94253388532,"y":27000.12691029475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"be00b86a-5b53-4dbd-ab79-7d135115a05e","savedPayload":{"position":{"x":15729.681254722265,"y":27141.496363567436},"targetPosition":{"x":16102.435022890473,"y":26808.60560739891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"90834a1b-cc7e-48a9-be5c-0e30380af4bd"}}},{"type":"Layer","name":"Market Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"3870b052-156c-4f10-9658-3fe3df4baf10","savedPayload":{"position":{"x":15655.766921038878,"y":26926.520781829942},"targetPosition":{"x":16102.435022890473,"y":26808.60560739891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"e2112d60-5fc2-4e67-befe-d4fbd6c1de77"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"5fa754c9-ffc3-499c-b566-0031b276cb73","savedPayload":{"position":{"x":15602.003963464067,"y":26726.16283946371},"targetPosition":{"x":16102.435022890473,"y":26808.60560739891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"e734b6be-ba40-468c-a94f-1153dc85e00c"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"15ec260c-02f5-46e0-853b-6e751175dac7","savedPayload":{"position":{"x":15694.595933594896,"y":26519.078790508484},"targetPosition":{"x":16102.435022890473,"y":26808.60560739891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"9a973229-4d9d-45af-b5aa-64906a915f6e"}}},{"type":"Layer","name":"Last Market Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"be57de60-d843-4bc8-bcb8-d8be27ceffbb","savedPayload":{"position":{"x":15860.599521408476,"y":26370.959361875106},"targetPosition":{"x":16102.435022890473,"y":26808.60560739891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Market Order","id":"56517fe9-64da-4404-83f3-005106bc1c0a"}}},{"type":"Layer","name":"Last Limit Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"407c7816-701b-43bf-92d8-cc728af78f0e","savedPayload":{"position":{"x":16074.514663407172,"y":26309.4257023683},"targetPosition":{"x":16102.435022890473,"y":26808.60560739891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Limit Order","id":"d00c76e7-4be0-4518-9892-a0f6df943951"}}}],"layerFolders":[],"id":"ac1ed18a-243b-4211-bb24-83bbfc20cd0a","savedPayload":{"position":{"x":16102.435022890473,"y":26808.60560739891},"targetPosition":{"x":16563.94253388532,"y":27000.12691029475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"41428787-ca89-4ab9-a5cc-29e66e7c486d","savedPayload":{"position":{"x":16563.94253388532,"y":27000.12691029475},"targetPosition":{"x":16959.887378913278,"y":26696.345955873618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"153096ea-a48c-4ed5-9f8e-49eafa7a779c","savedPayload":{"position":{"x":16959.887378913278,"y":26696.345955873618},"targetPosition":{"x":17356.087169245202,"y":26392.358194020195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"918bdf6d-3cfe-4c8b-894d-320cc72aef70","savedPayload":{"position":{"x":17356.087169245202,"y":26392.358194020195},"targetPosition":{"x":17752.58716757543,"y":26088.09403049708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"13a2b4f9-2c05-49b2-b42c-32ffa71ae0b7"}}},"id":"f0cc2b79-bae6-4441-a456-9fda5962a74f","savedPayload":{"position":{"x":18062.80023504401,"y":25685.600071512363},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Trading System","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading System","project":"Superalgos","layers":[{"type":"Layer","name":"Trading System Errors","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"49761e84-d6c2-4c25-9604-fb2ddf93e510","savedPayload":{"position":{"x":16656.868785422477,"y":26432.858992462687},"targetPosition":{"x":16674.50340983706,"y":26032.473650601696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Errors","id":"a0c29c57-0a20-4084-9697-142300f62f9c"}}},{"type":"Layer","name":"Trading System Highlights","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"622a88bb-151c-48ef-bb99-e093498bf002","savedPayload":{"position":{"x":16532.079378960796,"y":26407.941535439437},"targetPosition":{"x":16674.50340983706,"y":26032.473650601696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Highlights","id":"aa0fe882-89a8-4811-8988-c589554afe9d"}}},{"type":"Layer","name":"Trading System Values","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"fba6a9fb-5e9a-46dd-aa2b-33950f0ec9f1","savedPayload":{"position":{"x":16422.17772780151,"y":26345.322337891994},"targetPosition":{"x":16674.50340983706,"y":26032.473650601696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Values","id":"bbc65054-b22b-4cbb-816b-529672e2f498"}}},{"type":"Layer","name":"Trading System Status","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"4ec0d56a-b497-4d90-9157-094c08930962","savedPayload":{"position":{"x":16337.350686782229,"y":26251.937657405022},"targetPosition":{"x":16674.50340983706,"y":26032.473650601696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Status","id":"776a3ece-8255-4e80-b60f-85bb818b561f"}}},{"type":"Layer","name":"Trading System Progress","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"5db72b24-ad72-49dd-8a32-1256fb25d04a","savedPayload":{"position":{"x":16285.989038785094,"y":26136.930218774854},"targetPosition":{"x":16674.50340983706,"y":26032.473650601696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Progress","id":"7593aaf9-0505-4b58-9920-235340ff2d2f"}}},{"type":"Layer","name":"Trading System Running","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"cbdfc3db-d5dd-476c-bf02-cf86d8a01300","savedPayload":{"position":{"x":16272.745363533515,"y":26011.773677977748},"targetPosition":{"x":16674.50340983706,"y":26032.473650601696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Running","id":"3e2e6105-f41f-42e2-bce5-74ebb3b81cbd"}}},{"type":"Layer","name":"Trading System Announcements","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"105a157c-b33a-40d0-9711-19526b04bfda","savedPayload":{"position":{"x":16299.015550574797,"y":25888.784732962406},"targetPosition":{"x":16674.50340983706,"y":26032.473650601696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Announcements","id":"faab4399-898b-4393-8c27-fa2f3109c60a"}}},{"type":"Layer","name":"Trading System Warnings","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"ab8b1fdc-4319-4b37-ae29-333912412215","savedPayload":{"position":{"x":16361.786293229427,"y":25778.482294029163},"targetPosition":{"x":16674.50340983706,"y":26032.473650601696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Warnings","id":"9ff0f035-ca7f-4e65-a82c-186fa7f09157"}}},{"type":"Layer","name":"Trading System Infos","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"051bd185-3255-41a5-bf62-ea8b27b32ddf","savedPayload":{"position":{"x":16480.783502595135,"y":25721.83855865352},"targetPosition":{"x":16674.50340983706,"y":26032.473650601696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Infos","id":"04210a59-070a-45f1-a2a0-cf50bd4879f7"}}}],"layerFolders":[],"id":"838dab4e-c0bf-47f3-ac6a-8f815e5e666b","savedPayload":{"position":{"x":16674.50340983706,"y":26032.473650601696},"targetPosition":{"x":17060.504725681127,"y":25928.810868229375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"74e5c728-fd06-4e79-8ec1-32ab2720adf5","savedPayload":{"position":{"x":17060.504725681127,"y":25928.810868229375},"targetPosition":{"x":17476.621526107163,"y":25817.204586634994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8a7bce21-b09a-41e3-b9af-87f1939e9136","savedPayload":{"position":{"x":17183.249075924137,"y":26042.417976975546},"targetPosition":{"x":17666.14324924388,"y":25913.066804430764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"13a2b4f9-2c05-49b2-b42c-32ffa71ae0b7"}}},"id":"a514d9bb-8862-4c81-b82e-dbde66abeb77","savedPayload":{"position":{"x":18011.02848924466,"y":25580.617356340503},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Objects","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Objects","project":"Superalgos","layers":[{"type":"Layer","name":"Episodes","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","id":"17c8f568-4716-4a19-a607-689b78a83ef9","savedPayload":{"position":{"x":15863.39648009967,"y":25920.19809968253},"targetPosition":{"x":16168.303357177294,"y":25522.64736240649},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episodes","id":"73dff61a-7b05-4ca6-b963-99d6c578e9ba"}}},{"type":"Layer","name":"Strategies","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"86978570-76c1-4780-a91d-4e72e88ef817","savedPayload":{"position":{"x":15705.823183600161,"y":25714.050844388883},"targetPosition":{"x":16168.303357177294,"y":25522.64736240649},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"a9c454c8-9075-4dcf-bfe9-ebd0c1658049"}}}],"layerFolders":[{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"653e6b00-bda3-4662-a2bd-934212e884d1","savedPayload":{"position":{"x":15327.86442305616,"y":25820.329298596927},"targetPosition":{"x":15672.454225865862,"y":25457.66729056814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"cad1eecc-e897-4086-b42c-fcfd843c04cc"}}},{"type":"Layer","name":"Market Sell Orders","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"2887f930-5d79-42ff-ab1d-7d5cdc6b47da","savedPayload":{"position":{"x":15180.506269267476,"y":25548.319695716105},"targetPosition":{"x":15672.454225865862,"y":25457.66729056814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"fdf22e85-7071-4847-bdba-e3fb43a616ed"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","id":"3040a2f6-0b1c-4ed3-a816-39c916465c9a","savedPayload":{"position":{"x":15221.387997903394,"y":25243.251366030032},"targetPosition":{"x":15672.454225865862,"y":25457.66729056814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"d2b1ab31-d8a1-422b-a717-33ee7df9b07b"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","id":"a59ef70f-534f-410b-99ef-3a700d2ca82a","savedPayload":{"position":{"x":15398.72702979423,"y":25036.45705462772},"targetPosition":{"x":15672.454225865862,"y":25457.66729056814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"3b5a12db-b969-4400-8b9d-afb9b7b81642"}}}],"layerFolders":[],"id":"334a2964-17df-4237-a302-962416655896","savedPayload":{"position":{"x":15672.454225865862,"y":25457.66729056814},"targetPosition":{"x":16168.303357177294,"y":25522.64736240649},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Trigger Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"a6b1a2c5-ca70-42b9-932f-2ff00aff2524","savedPayload":{"position":{"x":15292.017678857432,"y":25360.154463716302},"targetPosition":{"x":15771.52653783795,"y":25218.00065188687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stages","id":"9fc29be1-9393-4933-95d3-bebddd73c05e"}}},{"type":"Layer","name":"Open Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"663ddaf7-784f-4baa-8f69-3ed0ef5cd685","savedPayload":{"position":{"x":15298.823311983959,"y":25050.998457959326},"targetPosition":{"x":15771.52653783795,"y":25218.00065188687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stages","id":"b555388f-db93-4db1-91be-7772550afa70"}}},{"type":"Layer","name":"Manage Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"9a4be770-082c-4d0f-a747-0b74d792e76f","savedPayload":{"position":{"x":15476.277795953174,"y":24812.240105588095},"targetPosition":{"x":15771.52653783795,"y":25218.00065188687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stages","id":"41953904-e48c-4176-bf0f-09d133bc444c"}}},{"type":"Layer","name":"Close Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"efb9d388-a679-49b2-b792-1b8258a489d6","savedPayload":{"position":{"x":15784.125039599678,"y":24724.90131904347},"targetPosition":{"x":15771.52653783795,"y":25218.00065188687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stages","id":"47b4553c-7f2e-438c-9f4b-9ba30e943a6c"}}}],"layerFolders":[],"id":"eea75e9a-a735-4db8-9eea-cf2c4e4119e3","savedPayload":{"position":{"x":15771.52653783795,"y":25218.00065188687},"targetPosition":{"x":16168.303357177294,"y":25522.64736240649},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Positions","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"bb0ea641-23a7-48d0-a70d-f3314722f129","savedPayload":{"position":{"x":15517.085211279895,"y":24978.036206455075},"targetPosition":{"x":15977.296572394282,"y":25060.75923245295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Positions","id":"6e49b57f-8c94-410f-985b-82c126155b11"}}},{"type":"Layer","name":"Position Base Asset","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"fa1cf76f-30a6-4cfd-ba4f-8511afca64b8","savedPayload":{"position":{"x":15592.85911518537,"y":24750.27204370447},"targetPosition":{"x":15977.296572394282,"y":25060.75923245295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Base Asset","id":"ae8fa9a5-95b6-4769-8ade-f9854e6855ba"}}},{"type":"Layer","name":"Position Quoted Asset","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"bf7d5c92-8894-4040-8d2f-3f5cdec443af","savedPayload":{"position":{"x":15786.287615627753,"y":24593.84817912013},"targetPosition":{"x":15977.296572394282,"y":25060.75923245295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Quoted Asset","id":"9e9b19ee-9c51-4586-b74d-d2880f13f71f"}}},{"type":"Layer","name":"Stop Loss","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"125c9155-a747-4ac4-9d9f-1b93a4ae8d17","savedPayload":{"position":{"x":16042.541437710524,"y":24564.41238111062},"targetPosition":{"x":15977.296572394282,"y":25060.75923245295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Stop Loss","id":"01491591-0462-453c-91e0-6da6f554a729"}}},{"type":"Layer","name":"Take Profit","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"3745d5cd-a2be-43ed-b5df-d05c328f8665","savedPayload":{"position":{"x":16280.917386265202,"y":24663.928419862754},"targetPosition":{"x":15977.296572394282,"y":25060.75923245295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Take Profit","id":"719dd8a6-58ab-41c6-9693-9b67c12232d2"}}}],"layerFolders":[],"id":"9854e8b2-d863-42f3-afd5-416d5e2c548e","savedPayload":{"position":{"x":15977.296572394282,"y":25060.75923245295},"targetPosition":{"x":16168.303357177294,"y":25522.64736240649},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6e31ae33-68d1-4dca-8b29-6e59a2a4448e","savedPayload":{"position":{"x":16168.303357177294,"y":25522.64736240649},"targetPosition":{"x":16663.0166511096,"y":25588.08600416838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8c851b59-3105-460c-bb4b-cb4944db1049","savedPayload":{"position":{"x":16663.0166511096,"y":25588.08600416838},"targetPosition":{"x":17157.9116821377,"y":25653.201834587282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"be53f7bc-6c26-4fd7-a0d0-96b965bbf655","savedPayload":{"position":{"x":17157.9116821377,"y":25653.201834587282},"targetPosition":{"x":17653.521538239824,"y":25718.280363218284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"13a2b4f9-2c05-49b2-b42c-32ffa71ae0b7"}}},"id":"43eeb152-b0b8-468d-84d1-7d03fd636387","savedPayload":{"position":{"x":18003.37277871924,"y":25463.81378514373},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"499eac86-6c40-4362-a36a-5f2002081866","savedPayload":{"position":{"x":18300.806237131383,"y":25502.971642809745},"targetPosition":{"x":18450.806237131383,"y":25243.164021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":585,"y":-155},"width":240,"height":111.125,"radius":0},"referenceParent":{"type":"Backtesting Session","name":"Lightning Strike","id":"ce648922-fef2-44e3-8d76-2bd7ab72a29f"}}}],"id":"885265c2-ebb1-4283-a617-34a88780276d","savedPayload":{"position":{"x":18450.806237131383,"y":25243.164021674413},"targetPosition":{"x":18600.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Testing Environment","name":"New Testing Environment","id":"5882d8a8-345b-4188-b1c1-797e9ff805d9"}}},{"type":"Dashboard","name":"Production Environment My Computer","project":"Superalgos","timeMachines":[{"type":"Time Machine","name":"Lightning Strike Live Trading Session My Computer","config":"{}","project":"Superalgos","timeScale":{"type":"Time Scale","name":"New Time Scale","config":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-10-06T17:09:32.085Z\",\n \"toDate\": \"2020-10-06T21:09:32.085Z\"\n}","project":"Superalgos","id":"708c5a9f-a995-4210-aaaf-0794782f0e9e","savedPayload":{"position":{"x":18003.37277871924,"y":24502.89901593443},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","config":"{\n \"autoMinScale\": true,\n \"autoMaxScale\": true,\n \"minValue\": 10419.75,\n \"maxValue\": 10844.37\n}","project":"Superalgos","id":"ee3f6af0-8649-489b-9168-b4f16d2f5a78","savedPayload":{"position":{"x":18011.02848924466,"y":24386.095444737657},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","config":"{\n \"value\": \"01-min\",\n \"autoMinScale\": false,\n \"autoMaxScale\": true,\n \"fromDate\": \"2020-10-05T09:53:58.939Z\",\n \"toDate\": \"2020-10-05T13:53:58.939Z\"\n}","project":"Superalgos","id":"480f9696-76df-4026-a435-7bf364c08056","savedPayload":{"position":{"x":18062.80023504401,"y":24281.112729565797},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"New Data Mine Products","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Candles Volumes","project":"Superalgos","layers":[{"type":"Layer","name":"Candles","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","id":"e3cbbcbe-c938-4669-b670-c317476e0a3b","savedPayload":{"position":{"x":16992.282280946285,"y":23856.49271176323},"targetPosition":{"x":17392.615945713467,"y":23857.108132968406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"b9c30464-73e5-4f5c-b422-9ba1a02b78ab"}}},{"type":"Layer","name":"Volumes","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"385a5f98-118a-43fd-b019-54e825d1f4ae","savedPayload":{"position":{"x":17192.242023030805,"y":23510.135246216414},"targetPosition":{"x":17392.615945713467,"y":23857.108132968406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"07c11481-7dbd-477d-8bf7-79212542a6aa"}}}],"layerFolders":[],"id":"6848a114-9979-41dd-8d95-3a899679ba08","savedPayload":{"position":{"x":17392.615945713467,"y":23857.108132968406},"targetPosition":{"x":17738.764681458488,"y":24056.665358937673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Resistances and Supports","project":"Superalgos","layers":[{"type":"Layer","name":"Resistances","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"0cf13cfa-2a37-4691-902c-513ab5780da8","savedPayload":{"position":{"x":17538.760168957182,"y":23310.0159698544},"targetPosition":{"x":17738.97910230742,"y":23657.072015580987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Resistances","id":"a1669770-1bbe-40f7-acb3-ded15272935f"}}},{"type":"Layer","name":"Supports","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"d9245f0b-54e8-44b1-94bd-56c7048eb5c1","savedPayload":{"position":{"x":17938.505496583897,"y":23310.043709247824},"targetPosition":{"x":17738.97910230742,"y":23657.072015580987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Supports","id":"64899503-b618-493a-ba94-bfad2051a611"}}}],"layerFolders":[],"id":"20bd60bb-917b-4a0f-acc5-b019d1c3bd81","savedPayload":{"position":{"x":17738.97910230742,"y":23657.072015580987},"targetPosition":{"x":17738.764681458488,"y":24056.665358937673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4cbbc012-c91e-4acd-a8d2-feb149e728a0","savedPayload":{"position":{"x":17738.764681458488,"y":24056.665358937673},"targetPosition":{"x":17963.331767523672,"y":24445.732145877373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":330,"radius":0},"referenceParent":{"type":"Data Mine Products","name":"Masters","id":"d37d8bf1-be3b-49ac-805b-0ddb3944e6a0"}}},"id":"bb7afb85-32ea-4471-8400-615a34fc126f","savedPayload":{"position":{"x":18150.806237131383,"y":24203.93353713308},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Trading Engine","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading Engine","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Episode","project":"Superalgos","layers":[{"type":"Layer","name":"Episode Counters","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"05da2270-0016-4d22-89d8-b77cd14008a9","savedPayload":{"position":{"x":12224.806237131383,"y":25700.664021674413},"targetPosition":{"x":12315.806237131383,"y":25752.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Counters","id":"dc6cc4ef-4bd7-4837-8442-919462314db3"}}},{"type":"Layer","name":"Episode Statistics","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"a4165460-e0a7-4a0d-b506-15e756dfac93","savedPayload":{"position":{"x":12219.806237131383,"y":25689.664021674413},"targetPosition":{"x":12315.806237131383,"y":25752.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Statistics","id":"776ed571-8321-47aa-8cfb-c8ebf565dace"}}},{"type":"Layer","name":"Episode Candle","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"371e0cd7-af57-4469-836d-45c4e6059760","savedPayload":{"position":{"x":12317.806237131383,"y":25717.664021674413},"targetPosition":{"x":12315.806237131383,"y":25752.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Candle","id":"ded93703-a48d-44be-9703-878c28f949cd"}}},{"type":"Layer","name":"Episode Balances","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"5ed81442-77cc-4101-b1ff-8c7cbac57d4f","savedPayload":{"position":{"x":12245.806237131383,"y":25698.664021674413},"targetPosition":{"x":12315.806237131383,"y":25752.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Balances","id":"e702f1dd-1c91-4d05-ac55-19db363f5f3a"}}},{"type":"Layer","name":"Distance To Event","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"5e046a6a-4f38-4b44-bae1-1aed6d4d3753","savedPayload":{"position":{"x":12313.806237131383,"y":25819.664021674413},"targetPosition":{"x":12315.806237131383,"y":25752.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Distance To Event","id":"b8abea53-8221-47bd-91a2-cdcdd2ad1027"}}},{"type":"Layer","name":"Episode Base Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"b78a78ec-dca3-499b-881a-d2e3a82bf116","savedPayload":{"position":{"x":12330.806237131383,"y":25734.664021674413},"targetPosition":{"x":12315.806237131383,"y":25752.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Base Asset","id":"18bcbd26-c237-4acb-96f4-d9c95d833a42"}}},{"type":"Layer","name":"Episode Quoted Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"bb95c2a9-6f82-4a2a-9105-17b8f6c3c51a","savedPayload":{"position":{"x":12364.806237131383,"y":25720.664021674413},"targetPosition":{"x":12315.806237131383,"y":25752.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Quoted Asset","id":"c444f4b5-fa67-4c21-afa8-1f998da7a2a2"}}},{"type":"Layer","name":"Current Episode","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"4ad5b6f0-f4a9-4aab-aedf-9175647498b0","savedPayload":{"position":{"x":12321.806237131383,"y":25708.664021674413},"targetPosition":{"x":12315.806237131383,"y":25752.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Episode","id":"057570bd-69d4-4f3c-b0d4-94ee32f61e65"}}}],"layerFolders":[],"id":"7216b7a3-1371-4f07-a395-74c547579ab4","savedPayload":{"position":{"x":12315.806237131383,"y":25752.664021674413},"targetPosition":{"x":12363.806237131383,"y":25731.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Strategy","project":"Superalgos","layers":[{"type":"Layer","name":"Current Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"d2c0a1c8-70ef-4f7b-835a-a99ac6a5837a","savedPayload":{"position":{"x":12210.806237131383,"y":25770.664021674413},"targetPosition":{"x":12305.806237131383,"y":25783.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Strategy","id":"88dd680c-a81b-48ae-96ba-838281abfa35"}}},{"type":"Layer","name":"Last Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"076af680-2114-480b-a979-f7eea4966d7b","savedPayload":{"position":{"x":12302.806237131383,"y":25739.664021674413},"targetPosition":{"x":12305.806237131383,"y":25783.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Strategy","id":"24af3ffc-6a52-4ee3-a30b-f068aa5b2062"}}}],"layerFolders":[],"id":"56112c60-50dd-4d19-89aa-1d46005f194f","savedPayload":{"position":{"x":12305.806237131383,"y":25783.664021674413},"targetPosition":{"x":12363.806237131383,"y":25731.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Current Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"bb93ebef-f7ee-42c2-93b8-fe46eba0874a","savedPayload":{"position":{"x":12424.806237131383,"y":25721.664021674413},"targetPosition":{"x":12427.806237131383,"y":25692.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Position","id":"25280962-e4e5-40df-9e42-9edfbad6f6d3"}}},{"type":"Layer","name":"Last Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"595e7228-5676-4f5c-82bf-baa43e9325ab","savedPayload":{"position":{"x":12488.806237131383,"y":25680.664021674413},"targetPosition":{"x":12427.806237131383,"y":25692.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Position","id":"7a95a249-132d-4e0f-9182-cc7af45cacea"}}}],"layerFolders":[],"id":"9f594c8a-87fe-4c4b-b550-493405fe0b2d","savedPayload":{"position":{"x":12427.806237131383,"y":25692.664021674413},"targetPosition":{"x":12363.806237131383,"y":25731.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Open Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"3ce44f39-8ac9-4984-ad9d-daa53ed3f707","savedPayload":{"position":{"x":12377.806237131383,"y":25588.664021674413},"targetPosition":{"x":12422.806237131383,"y":25658.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stage","id":"c9c4bca7-f918-4aa8-b538-ffe8aa31d5c2"}}},{"type":"Layer","name":"Close Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"a7d5f0aa-8259-4271-aa95-7b351aa9b9c0","savedPayload":{"position":{"x":12337.806237131383,"y":25588.664021674413},"targetPosition":{"x":12422.806237131383,"y":25658.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stage","id":"4201d7c0-43aa-4ac0-bd7e-ab26b688aa2d"}}},{"type":"Layer","name":"Trigger Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"9a9f6580-ab06-4005-9274-98f7e9a491e5","savedPayload":{"position":{"x":12387.806237131383,"y":25625.664021674413},"targetPosition":{"x":12422.806237131383,"y":25658.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stage","id":"4fe24ddc-973f-4a5d-bf8a-d77090486125"}}},{"type":"Layer","name":"Manage Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"f60905ad-b491-45ee-9768-8087df9aef78","savedPayload":{"position":{"x":12466.806237131383,"y":25757.664021674413},"targetPosition":{"x":12422.806237131383,"y":25658.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stage","id":"e2f3d69e-2f0a-4463-8e74-4f0768c4fb70"}}}],"layerFolders":[],"id":"5389c77c-63a7-4495-9cc5-cdc0c70b76e6","savedPayload":{"position":{"x":12422.806237131383,"y":25658.664021674413},"targetPosition":{"x":12363.806237131383,"y":25731.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"f602d8ef-b6a6-423f-a772-9a4b5d5b9c43","savedPayload":{"position":{"x":12422.806237131383,"y":25747.664021674413},"targetPosition":{"x":12437.806237131383,"y":25742.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"0e0b284a-5014-4ab0-ada0-4322c14a099e"}}},{"type":"Layer","name":"Market Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"0a0dd259-5704-46de-900f-5d1dc24af4f6","savedPayload":{"position":{"x":12488.806237131383,"y":25650.664021674413},"targetPosition":{"x":12437.806237131383,"y":25742.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"95b3db7a-9b62-4eab-a76b-4af8794da5a6"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"de6f83f6-a6d9-45c7-93fd-e2c72238040e","savedPayload":{"position":{"x":12410.806237131383,"y":25733.664021674413},"targetPosition":{"x":12437.806237131383,"y":25742.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"1c6eed42-23aa-4174-aade-be29222acb8c"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"ac0f1c2a-5eed-45ee-84da-3d24e455abd3","savedPayload":{"position":{"x":12379.806237131383,"y":25663.664021674413},"targetPosition":{"x":12437.806237131383,"y":25742.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"a2f44cd5-090d-42e5-9eb7-73e732310e85"}}},{"type":"Layer","name":"Last Market Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"89def699-c33f-4344-a045-babca1f545ee","savedPayload":{"position":{"x":12478.806237131383,"y":25752.664021674413},"targetPosition":{"x":12437.806237131383,"y":25742.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Market Order","id":"8c24d559-ba52-46fe-81b4-8a6bf50c74b6"}}},{"type":"Layer","name":"Last Limit Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"a7e04514-bf32-4021-822c-47af56c55a76","savedPayload":{"position":{"x":12504.806237131383,"y":25780.664021674413},"targetPosition":{"x":12437.806237131383,"y":25742.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Limit Order","id":"c451c035-5ece-451f-836f-b5334cb3f967"}}}],"layerFolders":[],"id":"a302255a-cf35-4801-ae3c-95cb47ae9613","savedPayload":{"position":{"x":12437.806237131383,"y":25742.664021674413},"targetPosition":{"x":12363.806237131383,"y":25731.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1857004e-2f12-4287-8847-173043d8d2ab","savedPayload":{"position":{"x":12363.806237131383,"y":25731.664021674413},"targetPosition":{"x":12380.806237131383,"y":25686.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"23ad1663-d4da-4ece-8964-30012894ae5b","savedPayload":{"position":{"x":12380.806237131383,"y":25686.664021674413},"targetPosition":{"x":12448.806237131383,"y":25597.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ddb3fafa-58f4-46c1-9b24-61efe3ec13a6","savedPayload":{"position":{"x":12448.806237131383,"y":25597.664021674413},"targetPosition":{"x":12446.806237131383,"y":25637.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":330,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"aa2b0766-a3d5-47e1-acd8-7345af564388"}}},"id":"788a0207-20ea-411c-862d-b1b13db4e09f","savedPayload":{"position":{"x":18261.64837946537,"y":24166.307699856272},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Trading System","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading System","project":"Superalgos","layers":[{"type":"Layer","name":"Trading System Errors","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"2a1db97f-553d-47ea-b452-c90ba9af9e79","savedPayload":{"position":{"x":12242.806237131383,"y":25582.664021674413},"targetPosition":{"x":12310.806237131383,"y":25627.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Errors","id":"ba606f99-2ae5-44dc-b7db-399e657830e1"}}},{"type":"Layer","name":"Trading System Highlights","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"3c1c9d45-c482-4374-92ad-c3c28bfb7679","savedPayload":{"position":{"x":12270.806237131383,"y":25723.664021674413},"targetPosition":{"x":12310.806237131383,"y":25627.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Highlights","id":"2d20d8ae-4afa-4e92-8de2-89e66e5efdee"}}},{"type":"Layer","name":"Trading System Values","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"a560c8af-91cd-4aea-ab9f-01ed60892abb","savedPayload":{"position":{"x":12340.806237131383,"y":25546.664021674413},"targetPosition":{"x":12310.806237131383,"y":25627.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Values","id":"f8a6219c-c7b4-410a-8aa4-1910583f51c8"}}},{"type":"Layer","name":"Trading System Status","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"40debb84-1e2e-452b-99ff-95ff3994fb29","savedPayload":{"position":{"x":12322.806237131383,"y":25605.664021674413},"targetPosition":{"x":12310.806237131383,"y":25627.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Status","id":"dcff6f56-7646-4505-aa93-6682a110f3f2"}}},{"type":"Layer","name":"Trading System Progress","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"5785c4fb-879d-4b89-aab8-9ec37d5f561b","savedPayload":{"position":{"x":12240.806237131383,"y":25559.664021674413},"targetPosition":{"x":12310.806237131383,"y":25627.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Progress","id":"0a9dff80-e462-4110-b988-11ce57bbbcd5"}}},{"type":"Layer","name":"Trading System Running","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"74d8c1f7-8dd5-4e2c-b3cf-7f7bcfe7143c","savedPayload":{"position":{"x":12342.806237131383,"y":25543.664021674413},"targetPosition":{"x":12310.806237131383,"y":25627.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Running","id":"c7e05ad0-7d4a-4ffb-9aee-191511f85ee7"}}},{"type":"Layer","name":"Trading System Announcements","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"4476fcb1-3898-440f-b69e-afba06be912a","savedPayload":{"position":{"x":12402.806237131383,"y":25585.664021674413},"targetPosition":{"x":12310.806237131383,"y":25627.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Announcements","id":"e4811789-fd94-49b0-9917-8d9d434f997d"}}},{"type":"Layer","name":"Trading System Warnings","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"43fe3418-9b3c-4cd9-b9a9-3994851e0b65","savedPayload":{"position":{"x":12310.806237131383,"y":25555.664021674413},"targetPosition":{"x":12310.806237131383,"y":25627.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Warnings","id":"029ff3a7-9c65-425f-855a-882df68fa05b"}}},{"type":"Layer","name":"Trading System Infos","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"de34ba07-61b5-4785-bcf5-ff5b81d63e48","savedPayload":{"position":{"x":12227.806237131383,"y":25559.664021674413},"targetPosition":{"x":12310.806237131383,"y":25627.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Infos","id":"0f47adaf-25a0-431f-b15b-0fbf44069b38"}}}],"layerFolders":[],"id":"36e02794-0943-4520-af39-2f274050610c","savedPayload":{"position":{"x":12310.806237131383,"y":25627.664021674413},"targetPosition":{"x":12365.806237131383,"y":25585.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1ccfa34c-ca21-4ac3-be74-30f85549bf5e","savedPayload":{"position":{"x":12365.806237131383,"y":25585.664021674413},"targetPosition":{"x":12339.806237131383,"y":25637.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c1c4bd7c-b755-461a-a5ed-b59804b4c280","savedPayload":{"position":{"x":12339.806237131383,"y":25637.664021674413},"targetPosition":{"x":12377.806237131383,"y":25540.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":330,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"aa2b0766-a3d5-47e1-acd8-7345af564388"}}},"id":"ed6507e7-437f-4740-a897-11dc4da4d20a","savedPayload":{"position":{"x":18378.45195066214,"y":24173.963410381693},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Objects","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Objects","project":"Superalgos","layers":[{"type":"Layer","name":"Episodes","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"76852fcc-d524-43b8-a0b1-8645c2fed91e","savedPayload":{"position":{"x":12710.806237131383,"y":25614.664021674413},"targetPosition":{"x":12687.806237131383,"y":25530.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episodes","id":"c6fd6067-4b57-4860-ae3b-5668e4444490"}}},{"type":"Layer","name":"Strategies","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"43b43957-23d5-401b-b3e0-391c430b72c9","savedPayload":{"position":{"x":12705.806237131383,"y":25579.664021674413},"targetPosition":{"x":12687.806237131383,"y":25530.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"60f88096-7343-42d1-afad-83fecd22fb44"}}}],"layerFolders":[{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"aaff7fb6-bd83-48f2-819a-a1dd674876a7","savedPayload":{"position":{"x":12579.806237131383,"y":25470.664021674413},"targetPosition":{"x":12649.806237131383,"y":25488.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"9f939086-c934-4924-8353-776707a7cf10"}}},{"type":"Layer","name":"Market Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"bec241f4-5a8f-4fe7-9620-76d92f64da9c","savedPayload":{"position":{"x":12705.806237131383,"y":25579.664021674413},"targetPosition":{"x":12649.806237131383,"y":25488.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"da5f279e-d387-43cf-80f4-fc114b9ac906"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","id":"2d03d083-7199-4bf2-8e8a-4c96f23a16a8","savedPayload":{"position":{"x":12735.806237131383,"y":25521.664021674413},"targetPosition":{"x":12649.806237131383,"y":25488.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"367646bb-839a-4071-8305-6d26a647585d"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","id":"cb5de20d-e440-4bdb-a074-c408740e9022","savedPayload":{"position":{"x":12631.806237131383,"y":25476.664021674413},"targetPosition":{"x":12649.806237131383,"y":25488.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"0b2fc73a-9635-40b2-98d8-0c79c69175a9"}}}],"layerFolders":[],"id":"a8409c29-905d-495f-bbca-3d0eef14f91c","savedPayload":{"position":{"x":12649.806237131383,"y":25488.664021674413},"targetPosition":{"x":12687.806237131383,"y":25530.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Trigger Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"04d1a0a8-1419-4fbd-9c28-eef6cfefd5d4","savedPayload":{"position":{"x":12584.806237131383,"y":25552.664021674413},"targetPosition":{"x":12680.806237131383,"y":25593.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stages","id":"7fe8c58f-9cad-47c9-ba4e-d66bff094dcf"}}},{"type":"Layer","name":"Open Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"74cda6e5-4fe2-41ef-a611-2c0374780ad5","savedPayload":{"position":{"x":12663.806237131383,"y":25503.664021674413},"targetPosition":{"x":12680.806237131383,"y":25593.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stages","id":"41f17745-1819-4681-8a2b-9bdda3cd67c4"}}},{"type":"Layer","name":"Manage Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"fb041378-9424-4709-a9ed-79426fcdfe68","savedPayload":{"position":{"x":12721.806237131383,"y":25661.664021674413},"targetPosition":{"x":12680.806237131383,"y":25593.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stages","id":"e89c8bfd-fac9-4aff-afc0-3a89c1dc2710"}}},{"type":"Layer","name":"Close Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"6c4ac373-c5ff-4bfd-8047-4caaba6b7788","savedPayload":{"position":{"x":12659.806237131383,"y":25585.664021674413},"targetPosition":{"x":12680.806237131383,"y":25593.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stages","id":"bc2c6503-e935-4ad7-a76a-89b062d41e91"}}}],"layerFolders":[],"id":"4b2ee5fd-d4f7-4a7c-bb6e-5e4c633b1b9f","savedPayload":{"position":{"x":12680.806237131383,"y":25593.664021674413},"targetPosition":{"x":12687.806237131383,"y":25530.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Positions","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"4f77d851-9e93-4e85-9cfb-ec2ab200d79b","savedPayload":{"position":{"x":12581.806237131383,"y":25650.664021674413},"targetPosition":{"x":12672.806237131383,"y":25618.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Positions","id":"3ed594a0-8452-4bd8-9eaa-37cd83a45b90"}}},{"type":"Layer","name":"Position Base Asset","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"0213c668-a6d8-4737-ae57-d59d62b8f715","savedPayload":{"position":{"x":12767.806237131383,"y":25594.664021674413},"targetPosition":{"x":12672.806237131383,"y":25618.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Base Asset","id":"88997c97-e77f-490e-9eb5-c7531beec132"}}},{"type":"Layer","name":"Position Quoted Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"f07986eb-010f-46cd-803d-dcac674adb80","savedPayload":{"position":{"x":12745.806237131383,"y":25673.664021674413},"targetPosition":{"x":12672.806237131383,"y":25618.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Quoted Asset","id":"b4772611-d5d0-4fbd-b689-d42de3c045d4"}}},{"type":"Layer","name":"Stop Loss","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"3f8f8fa3-2149-42d6-92e9-214354cfa186","savedPayload":{"position":{"x":12630.806237131383,"y":25581.664021674413},"targetPosition":{"x":12672.806237131383,"y":25618.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Stop Loss","id":"9b064960-3829-441f-b955-334fb8324a53"}}},{"type":"Layer","name":"Take Profit","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"65ec58e6-2c00-41d4-a145-e6b7e7178bf0","savedPayload":{"position":{"x":12743.806237131383,"y":25590.664021674413},"targetPosition":{"x":12672.806237131383,"y":25618.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Take Profit","id":"cbcc817b-4333-4c80-addc-e2a0ee0845c1"}}}],"layerFolders":[],"id":"66e5c011-9163-422d-863f-115135f832ad","savedPayload":{"position":{"x":12672.806237131383,"y":25618.664021674413},"targetPosition":{"x":12687.806237131383,"y":25530.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"91b8a8e8-823d-4746-967f-c8d85a1ad3ad","savedPayload":{"position":{"x":12687.806237131383,"y":25530.664021674413},"targetPosition":{"x":12591.806237131383,"y":25565.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dcaccce7-d98d-49b3-b3b6-e83495b688c3","savedPayload":{"position":{"x":12591.806237131383,"y":25565.664021674413},"targetPosition":{"x":12523.806237131383,"y":25633.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e328f755-80a6-4799-8f12-002a2ddb983d","savedPayload":{"position":{"x":12523.806237131383,"y":25633.664021674413},"targetPosition":{"x":12489.806237131383,"y":25562.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":330,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"aa2b0766-a3d5-47e1-acd8-7345af564388"}}},"id":"93708a53-ad8d-48e0-9728-b87ea96d1545","savedPayload":{"position":{"x":18483.434665834,"y":24225.735156181043},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cc1fcc1e-81de-4011-8e59-c37ebe32ecf7","savedPayload":{"position":{"x":18300.806237131383,"y":24463.741158268414},"targetPosition":{"x":18450.806237131383,"y":24723.548779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":585,"y":65},"width":240,"height":113.625,"radius":0},"referenceParent":{"type":"Live Trading Session","name":"Lightning Strike","id":"1ce123af-467f-4295-b317-dba8729faf25"}}}],"id":"abc16155-6614-4397-bf7e-ab4a0ff7c1a4","savedPayload":{"position":{"x":18450.806237131383,"y":24723.548779403747},"targetPosition":{"x":18600.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Production Environment","name":"New Production Environment","id":"65a40d20-837c-4652-8356-f8054b4e1346"}}}],"id":"84a1b1ba-4888-4eac-8762-7084f0ee5de7","savedPayload":{"position":{"x":18600.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"21d2ec55-9e56-4652-8e96-c7e451262c36","savedPayload":{"position":{"x":18900.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"c"}}},{"type":"Plugins","name":"New Plugins","project":"Superalgos","pluginProjects":[{"type":"Plugin Project","name":"Superalgos","config":"{ \n \"codeName\": \"Superalgos\"\n}","project":"Superalgos","pluginDataMines":{"type":"Plugin Data Mines","name":"New Plugin Data Mines","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Masters","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Masters","project":"Superalgos","id":"d5234bd2-ef4e-4856-a6a0-ce7659653a48","savedPayload":{"position":{"x":18879.35218735615,"y":18688.55301821844},"targetPosition":{"x":31820.67692045767,"y":18678.794324352373},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ecc1a524-de9b-4e73-8874-b99a7ea0402b","savedPayload":{"position":{"x":31820.67692045767,"y":18678.794324352373},"targetPosition":{"x":31320.502678827743,"y":18678.79704693609},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cbc3d9be-5e59-45d8-bb0f-4ec82763691d","savedPayload":{"position":{"x":31234.673182942548,"y":18370.4854210064},"targetPosition":{"x":31327.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"pluginTradingMines":{"type":"Plugin Trading Mines","name":"New Plugin Trading Mines","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Masters","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Masters","project":"Superalgos","id":"ad1ce785-858f-4cfc-ba68-108b5e0c54d9","savedPayload":{"position":{"x":24941.217404066585,"y":18714.893045797242},"targetPosition":{"x":31320.45102232534,"y":19544.930491916948},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8a64c00e-4f8c-49bf-b57d-4e2e388bae41","savedPayload":{"position":{"x":31320.45102232534,"y":19544.930491916948},"targetPosition":{"x":31070.415084976332,"y":19111.835158656926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8d881813-3ab9-4e8b-ab5a-48dedab2dd19","savedPayload":{"position":{"x":31570.083379567513,"y":18479.466800207203},"targetPosition":{"x":31327.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"pluginTradingSystems":{"type":"Plugin Trading Systems","name":"New Plugin Trading Systems","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Masters-Lightning-Strike","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Masters-Lightning-Strike","project":"Superalgos","id":"37ab4b0d-6bd8-46b6-9778-e193c32669a4","savedPayload":{"position":{"x":31050.365708673427,"y":31068.826468868458},"targetPosition":{"x":30320.47990890508,"y":19544.97425758733},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5fdcecee-8c8f-4e0f-b36b-81e9231970a6","savedPayload":{"position":{"x":30320.47990890508,"y":19544.97425758733},"targetPosition":{"x":30570.439042449398,"y":19111.851515318966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3569d452-c593-4e54-a356-7ff8c6b519f3","savedPayload":{"position":{"x":31570.083379567513,"y":18832.13795158269},"targetPosition":{"x":31327.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"pluginTradingEngines":{"type":"Plugin Trading Engines","name":"New Plugin Trading Engines","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Low-Frequency","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Low-Frequency","project":"Superalgos","id":"e117a2a4-09b3-4181-8455-e680de3bdeb3","savedPayload":{"position":{"x":30923.55093774257,"y":24967.049392142086},"targetPosition":{"x":29820.22642897682,"y":18678.80776835817},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e9270d67-4630-4ac9-91ca-1dec4fb5aa38","savedPayload":{"position":{"x":29820.22642897682,"y":18678.80776835817},"targetPosition":{"x":30320.32799443869,"y":18678.805890109317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"87a28762-63d0-45f7-bd39-9dea436d8244","savedPayload":{"position":{"x":31234.673182942548,"y":18941.11933078349},"targetPosition":{"x":31327.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c4e402d7-5228-408c-9d67-379d6ef40bae","savedPayload":{"position":{"x":31327.37828125503,"y":18655.802375894946},"targetPosition":{"x":31027.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bfb0b514-3b9f-4e9a-85ca-d0ca714b09f6","savedPayload":{"position":{"x":31027.37828125503,"y":18655.802375894946},"targetPosition":{"x":31027.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Tutorial","name":"Install a New Market","config":"{\n \"title\": \"Install a New Market\",\n \"summary\": \"\",\n \"subTitle\": \"\",\n \"gif\": \"\",\n \"image\": \"market\",\n \"definition\": \"This tutorial walks you through the process of setting up a new ->Market-> on which to run data mining and trading operations.\",\n \"bulletListIntro\": \"Setting up a new Market involves:\",\n \"bulletArray\": [\n [\n \"1. Adding the assets \",\n \"for the exchange of choice.\"\n ],\n [\n \"2. Setting up a market \",\n \"with the said assets.\"\n ],\n [\n \"3. Installing the market\",\n \"\"\n ]\n ],\n \"paragraph1\": \"Let's get on with it!\",\n \"callOut\": \"When you click the Next button below, you will go to the ->Exchange Assets-> node under Binance, in the ->Crypto Ecosystem-> hierarchy.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Add the Assets","config":"{\n \"title\": \"Add the Assets\",\n \"summary\": \"\",\n \"gif\": \"\",\n \"image\": \"asset\",\n \"definition\": \"If the assets you wish to work with are not listed under ->Exchange Assets->, you must add and configure them first.\",\n \"paragraph1\": \"\",\n \"callOut\": \"In this section of the tutorial, you will learn to define which assets you may want to work with.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Each exchange may list hundreds of assets, however, you will likely be interested in just a few. Some automated operations may feed on your definitions, so keeping them free of junk is always a good idea.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"title\": \"Add the Assets\",\n \"summary\": \"\",\n \"subTitle\": \"Step 1: Add Nodes\",\n \"gif\": \"\",\n \"image\": \"exchange-assets\",\n \"definition\": \"Open the ->Exchange Assets-> node menu and use the Add Asset button to add the required assets.\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"Assets under Exchange Assets may not be duplicated. If the definitions for the assets you are interested in already exist, you may reuse them instead of creating new ones. If such is the case, simply skip the next few steps until you need to set up the ->Market->.\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"1b3b8d0e-3aa9-4aba-8b74-351647a3b5b5","savedPayload":{"position":{"x":31512.007034355964,"y":44442.18819036314},"targetPosition":{"x":31299.875,"y":44654.3202247191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"title\": \"Add the Assets\",\n \"summary\": \"\",\n \"subTitle\": \"Step 2: Configure Assets\",\n \"gif\": \"\",\n \"image\": \"asset\",\n \"definition\": \"Edit the configuration of each of the new assets entering the ticker (as listed by the exchange) in the codeName property. For example: 'codeName': 'ETH'\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"If the icon for the configured assets exist in the image library, the default icon is replaced automatically.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"05f7092a-2326-40e7-b618-f3be5523e670","savedPayload":{"position":{"x":31599.875,"y":44654.3202247191},"targetPosition":{"x":31299.875,"y":44654.3202247191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"title\": \"Add the Assets\",\n \"summary\": \"\",\n \"subTitle\": \"Step 3: Label Nodes\",\n \"gif\": \"\",\n \"image\": \"asset\",\n \"definition\": \"Label the assets with the descriptive name of the coin or token, for ease of use. For example: Ether.\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Keeping a tidy ->Workspace-> with proper labels for significant nodes helps in managing large operations and administering complexity.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"281274f1-a4ec-47a2-b97c-0c29aa71eed9","savedPayload":{"position":{"x":31512.007034355964,"y":44866.452259075064},"targetPosition":{"x":31299.875,"y":44654.3202247191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"cd6f2f74-407e-46c9-b7de-95d9ab2cc82d","savedPayload":{"position":{"x":31299.875,"y":44654.3202247191},"targetPosition":{"x":30999.875,"y":44654.3202247191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Exchange Assets","name":"New Exchange Assets","id":"95d2c30f-215b-486e-8119-f4eac0279575"}}},{"type":"Tutorial Topic","name":"Set up the Market","config":"{ \n \"title\": \"Set Up the Market\",\n \"summary\": \"\",\n \"gif\": \"\",\n \"image\": \"market\",\n \"definition\": \"If there is no ->Market-> set up with the pair you wish to work with under ->Exchange Markets->, you must set up the market definition before installing it.\",\n \"paragraph1\": \"\",\n \"callOut\": \"The next few steps teach you how to set up the market so that you may later install it.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"Make sure that the combination of base and quoted assets that you wish to define as a market in Superalgos exists as a market listed at the exchange.\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n }","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"title\": \"Set Up the Market\",\n \"summary\": \"\",\n \"subTitle\": \"Step 1: Add Market\",\n \"gif\": \"\",\n \"image\": \"market\",\n \"definition\": \"Add a new Market node using the Add Market option on the menu.\",\n \"paragraph1\": \"A Market node is added featuring two offspring: a ->Market Base Asset-> and a ->Market Quoted Asset->.\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"Before continuing, make sure which is the base and which the quoted asset in the exchange's listing. Usually, the base asset is the first in the name of the pair, but this is not enforced on every exchange, so be vigilant.\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"cae5ddd4-0c48-488d-86f7-38192c7fdbca","savedPayload":{"position":{"x":31448.23156861048,"y":44945.48638483473},"targetPosition":{"x":31149.875,"y":44914.12784585443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"title\": \"Set Up the Market\",\n \"summary\": \"\",\n \"subTitle\": \"Step 2: Reference Base A.\",\n \"gif\": \"\",\n \"image\": \"asset\",\n \"definition\": \"Establish a reference from the ->Market Base Asset-> node in the Market you just defined to the corresponding ->Asset-> node defined under Exchange Assets.\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"If you are not familiar with establishing references, please read about the topic in the documentation.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"https://docs.superalgos.org/suite-references.html#establishing-and-removing-references\"\n}","project":"Superalgos","id":"a7a049cb-72e0-4d76-9247-ee0d873e79c8","savedPayload":{"position":{"x":31372.818447643218,"y":45114.86702776209},"targetPosition":{"x":31149.875,"y":44914.12784585443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"title\": \"Set Up the Market\",\n \"summary\": \"\",\n \"subTitle\": \"Step 3: Reference Quoted A.\",\n \"gif\": \"\",\n \"image\": \"asset\",\n \"definition\": \"Now establish a reference from the ->Market Quoted Asset-> node in the Market you just defined to the corresponding ->Asset-> node defined under Exchange Assets.\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"9710d88d-c4ae-406b-9079-31bcf7395817","savedPayload":{"position":{"x":31212.248507245327,"y":45207.57212607458},"targetPosition":{"x":31149.875,"y":44914.12784585443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"title\": \"Set Up the Market\",\n \"summary\": \"\",\n \"subTitle\": \"Step 4: Label the Market\",\n \"gif\": \"\",\n \"image\": \"market\",\n \"definition\": \"Label the Market with the ticker names corresponding to the Market Base Asset and the Market Quoted Asset, just like the exchange listing. For example: ETH/USDT.\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Keeping a tidy ->Workspace-> with proper labels for significant nodes helps in managing large operations and administering complexity.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"2d2ce361-6261-44b4-b7ff-466035934334","savedPayload":{"position":{"x":31027.85400707726,"y":45188.19148314722},"targetPosition":{"x":31149.875,"y":44914.12784585443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"4de3cd7d-f552-4f39-b4cd-e29269b64668","savedPayload":{"position":{"x":31149.875,"y":44914.12784585443},"targetPosition":{"x":30999.875,"y":44654.3202247191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Exchange Markets","name":"New Exchange Markets","id":"2fd80894-900e-44ac-a1a7-56c14124f7a1"}}},{"type":"Tutorial Topic","name":"Install the Market","config":"{\n \"title\": \"Install the Market\",\n \"summary\": \"Now that the Market is set up, installing it is just a click away.\",\n \"subTitle\": \"Single Step: Install\",\n \"gif\": \"\",\n \"image\": \"market\",\n \"definition\": \"Click the Install Market button on the ->Market-> node you just finished setting up.\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"The Install Market function sets up many data structures in the local ->Network Node-> and in the ->Charting Space->. The next few steps in the tutorial will help you get familiar with the installation.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[],"id":"e003540b-91f4-41ce-8082-45122ddb55e7","savedPayload":{"position":{"x":30849.875,"y":44914.12784585443},"targetPosition":{"x":30999.875,"y":44654.3202247191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Network Verification","config":"{\n \"title\": \"Network Verification\",\n \"summary\": \"\",\n \"subTitle\": \"\",\n \"gif\": \"\",\n \"image\": \"network-node\",\n \"definition\": \"The Install Market function sets up many data structures in the local ->Network Node->. \",\n \"paragraph1\": \"In the next few steps, you will verify that each of the expected data structures was created successfully. The expected structures are:\",\n \"callOut\": \"1. ->Data Tasks-> tasks for all data mines included in your workspace.

2. Backtesting and live trading tasks for all included trading systems.

3. The corresponding ->Data Storage-> definitions.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"title\": \"Network Verification\",\n \"subTitle\": \"Step 1: Verify Data Mining\",\n \"gif\": \"\",\n \"image\": \"data-tasks\",\n \"definition\": \"Verify that the ->Data Tasks-> tasks for the corresponding Market were created successfully.\",\n \"bulletListIntro\": \"Look for the following data structures:\",\n \"bulletArray\": [\n [\n \"A ->Market Data Tasks-> node\",\n \" for the new market.\"\n ],\n [\n \"One ->Data Mine Tasks-> node\",\n \" for each Data Mine included in the Workspace.\"\n ],\n [\n \"One ->Task Manager-> per ->Data Mine->\",\n \" and one ->Task-> for each bot defined in each data mine.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"4bca0860-329c-4fde-a11e-d404d0f23431","savedPayload":{"position":{"x":30523.539424312257,"y":44897.02532303159},"targetPosition":{"x":30699.875,"y":44654.3202247191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Tasks","name":"New Data Tasks","id":"40af91d9-431c-4b7d-addc-aed37bc2f3fe"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"title\": \"Network Verification\",\n \"subTitle\": \"Step 2: Verify Testing Env.\",\n \"gif\": \"\",\n \"image\": \"testing-trading-tasks\",\n \"definition\": \"Verify that the ->Testing Trading Tasks-> tasks for the corresponding ->Market-> were created successfully.\",\n \"bulletListIntro\": \"Look for the following data structures:\",\n \"bulletArray\": [\n [\n \"A ->Market Trading Tasks-> node\",\n \" for the new market.\"\n ],\n [\n \"One ->Trading Mine Tasks-> node\",\n \" for each trading mine included in the Workspace.\"\n ],\n [\n \"One ->Task Manager-> per trading mine and one ->Task-> with a ->Backtesting Session->\",\n \" for each ->Trading System-> in the workspace.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"495e3d4c-87a8-4147-ad2a-06920da9d7a6","savedPayload":{"position":{"x":30414.558045111455,"y":44747.02532303159},"targetPosition":{"x":30699.875,"y":44654.3202247191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","id":"8117db0a-e418-4f56-8fe4-fda2ddac1cbb"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"title\": \"Network Verification\",\n \"subTitle\": \"Step 3: Verify Prod. Env.\",\n \"gif\": \"\",\n \"image\": \"production-trading-tasks\",\n \"definition\": \"Verify that the ->Production Trading Tasks-> tasks for the corresponding ->Market-> were created successfully.\",\n \"bulletListIntro\": \"Look for the following data structures:\",\n \"bulletArray\": [\n [\n \"A ->Market Trading Tasks-> node\",\n \" for the new market.\"\n ],\n [\n \"One ->Trading Mine Tasks-> node\",\n \" for each trading mine included in the workspace.\"\n ],\n [\n \"One ->Task Manager-> per ->Trading Mine-> and one ->Task-> with a ->Backtesting Session->\",\n \" for each ->Trading System-> in the workspace.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"43b85e55-3417-4b13-a7b6-7c5bc0fb691d","savedPayload":{"position":{"x":30414.558045111455,"y":44561.615126406614},"targetPosition":{"x":30699.875,"y":44654.3202247191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Production Trading Tasks","name":"New Production Trading Tasks","id":"673caa5f-511d-4688-9305-e5f0f0f780cd"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"title\": \"Network Verification\",\n \"subTitle\": \"Step 4: Verify Data Storage\",\n \"gif\": \"\",\n \"image\": \"data-storage\",\n \"definition\": \"Verify that the ->Data Storage-> nodes for the corresponding ->Market-> were created successfully.\",\n \"bulletListIntro\": \"Look for the following data structures:\",\n \"bulletArray\": [\n [\n \"A ->Market Data Products-> node\",\n \" under ->Data Mines Data->, with a ->Data Mine Products-> node for each ->Data Mine-> in the workspace.\"\n ],\n [\n \"A ->Market Trading Products-> node\",\n \" under ->Trading Mines Data->, with a ->Trading Session Reference-> for each trading session in the testing and production environments.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"f37edf40-24ba-42d0-9458-bf008c123659","savedPayload":{"position":{"x":30523.539424312257,"y":44411.615126406614},"targetPosition":{"x":30699.875,"y":44654.3202247191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Storage","name":"New Data Storage","id":"e2697759-6038-4943-b90c-5a68651ff9a8"}}}],"tutorialTopics":[],"id":"89c6f1e3-d4c8-48c0-aec1-9dda6e0b9797","savedPayload":{"position":{"x":30699.875,"y":44654.3202247191},"targetPosition":{"x":30999.875,"y":44654.3202247191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Network Node","name":"My Computer","id":"e452cf65-2b2b-44f2-9e67-bdd9d3c008e4"}}},{"type":"Tutorial Topic","name":"Charts Verification","config":"{\n \"title\": \"Charts Verification\",\n \"summary\": \"\",\n \"subTitle\": \"\",\n \"gif\": \"\",\n \"image\": \"charting-space\",\n \"definition\": \"Beyond the data structures set up in the Network hierarchy, the Install Market function also sets up charts matching the trading sessions created.\",\n \"paragraph1\": \"In the next few steps you will verify that the expected data structures were created successfully.\",\n \"callOut\": \"The charts created allow working with each of the trading sessions independently.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Notice from the organization of the charts that Superalgos allows scaling up your operation to unlimited trading systems and charts.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"title\": \"Charts Verification\",\n \"subTitle\": \"Step 1: Verify Charting S.\",\n \"gif\": \"\",\n \"image\": \"charting-space\",\n \"definition\": \"Verify that the ->Charting Space-> data structures for the corresponding Market were created successfully.\",\n \"bulletListIntro\": \"Look for the following data structures:\",\n \"bulletArray\": [\n [\n \"A ->Time Machine-> node\",\n \" for each trading session created in the ->Testing Trading Tasks->.\"\n ],\n [\n \"A ->Time Machine-> node\",\n \" for each trading session created in the ->Production Trading Tasks->.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"17eb1e8e-e9f4-4fe4-a8ea-2c0ea0804d87","savedPayload":{"position":{"x":30590.067378864667,"y":44244.51260358377},"targetPosition":{"x":30849.875,"y":44394.51260358377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"title\": \"Charts Verification\",\n \"subTitle\": \"Step 2: Verify the Charts\",\n \"gif\": \"\",\n \"image\": \"time-machine\",\n \"definition\": \"Verify that the time machines created show up on the chartsing space... you should find...\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": [\n [\n \"A ->Time Machine->\",\n \" for each trading session created in the ->Testing Trading Tasks->.\"\n ],\n [\n \"A ->Time Machine->\",\n \" for each trading session created in the ->Production Trading Tasks->.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Hover your mouse over a chart to see what ->Crypto Exchange-> and ->Market-> it features.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"a94fa42a-87c8-4874-ba45-ffa0ffd02f36","savedPayload":{"position":{"x":30849.875,"y":44094.51260358377},"targetPosition":{"x":30849.875,"y":44394.51260358377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"064a5be1-bb06-468b-8fad-d78d2c844ee1","savedPayload":{"position":{"x":30849.875,"y":44394.51260358377},"targetPosition":{"x":30999.875,"y":44654.3202247191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Charting Space","name":"New Charting Space","id":"21d2ec55-9e56-4652-8e96-c7e451262c36"}}},{"type":"Tutorial Topic","name":"The End","config":"{\n \"title\": \"You Made It!\",\n \"subTitle\": \"\",\n \"gif\": \"\",\n \"image\": \"tutorial\",\n \"definition\": \"Congratulations... you have reached the end of this tutorial!\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"You may revisit this tutorial at any point. If you select the Play option on the menu, you start right from the beginning. If you select the Resume option instead, you start where you last left, or where you last skipped a step.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[],"id":"9b5e9927-860c-4b89-ac5d-d7f6fd86b18d","savedPayload":{"position":{"x":31149.875,"y":44394.51260358377},"targetPosition":{"x":30999.875,"y":44654.3202247191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"d86ff84f-15d3-4a2d-9674-114c5b526de5","savedPayload":{"position":{"x":30999.875,"y":44654.3202247191},"targetPosition":{"x":30999.875,"y":44654.3202247191},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"}}},{"type":"Design Space","name":"My Design Space","project":"Superalgos","spaceStyle":{"type":"Space Style","name":"My Space Style","config":" {\n \"backgroundColor\": \"UI_COLOR.BLACK\",\n \"node\": {\n \"fontSize\": 16,\n \"imageSize\": 60,\n \"type\": {\n \"fontColor\": \"UI_COLOR.WHITE\"\n },\n \"name\": {\n \"fontColor\": \"UI_COLOR.WHITE\"\n },\n \"menuItem\": {\n \"backgroundColor\": \"UI_COLOR.BLACK\",\n \"fontColor\": \"UI_COLOR.WHITE\",\n \"fontSize\": 14,\n \"imageSize\": 14\n }\n }\n }","project":"Superalgos","id":"fad0e429-f7a7-4b62-a2a5-2ead29b8f695","savedPayload":{"position":{"x":25236.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"spaceSettings":{"type":"Space Settings","name":"New Space Settings","config":"{\n \"node\": {\n \"distancePercentage\": 60,\n \"radiusPercentage\": 85,\n \"massPercentage\": 100,\n \"animationSteps\": 2, \n \"menuItem\": {\n \"widthPercentage\": 100,\n \"heightPercentage\": 60,\n \"radiusPercentage\": 90\n }\n },\n \"physics\": false\n}","project":"Superalgos","id":"05c9d6d5-24c4-4eec-9aca-9668d6486fdd","savedPayload":{"position":{"x":24636.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8485ce5-67f3-4476-b9e2-80994e49c318","savedPayload":{"position":{"x":24936.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":255,"y":588.3125}}}},{"type":"Tutorial","name":"Developers Intro","config":"{ \n\"title\": \"Intro for Developers\",\n \"summary\": \"This tutorial walks you through the technical aspects of Superalgos so that you may take advantage of the infrastructure in place as efficiently as possible.\",\n \"subTitle\": \"\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"\",\n \"bulletListIntro\": \"I will cover the following topics:\",\n \"bulletArray\": \n[\n [\"Architecture:\", \"Architectural overview of the system.\"], \n[\"Client:\", \"How the Client is organized.\"], \n[\"Frontend:\", \"How the UI works.\"] \n],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"This is a 3-year-old project that has pivoted a few times to reach its current state of development. It was initially intended for trading bots competitions and is now focused on crypto-trading automation in general. The main technical pivot occurred when we decided to depart from a centralized cloud-based app, to a decentralized network of nodes.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Architecture","config":"{ \n\"title\": \"System Architecture\",\n \"summary\": \"Superalgos is essentially a Node.js application + a Web App.\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"\",\n \"bulletListIntro\": \"The overall idea is that Superalgos runs at users' machines. Advanced users may deploy multiple Superalgos nodes in a LAN and distribute tasks easily. In the current version, these nodes are not ready to be exposed to the Internet. Someday they will, and eventually, they will be able to provide services to other users. These services may include:\",\n \"bulletArray\": \n[\n [\"Data Products:\", \"Pre-calculated indicators or studies.\"], \n [\"Backtest Execution:\", \"To scale testing capabilities.\"], \n[\"Live Trading Execution:\", \"Only if trusted entities emerge.\"], \n[\"Data Processing Execution:\", \"External data processing power.\"] \n],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Client","config":"{ \n\"title\": \"Client\",\n \"summary\": \"The Client has two main components: The Client and the Task Server. When you run the app, what you are running are the Client. An instance of the Task Server is put to run once a user decides to run a task.\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"\",\n \"bulletListIntro\": \"\",\n \"paragraph1\": \"Once the services at the Client are running, the default web browser is called with the URL of the local machine so that it may load the UI and let users interact with the system.\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"The system holds all of its data and logs in the installation folder. The system does not modify—in any way—anything outside the installation folder. Deleting this folder completely removes Superalgos from the computer.\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Client","config":"{ \n\"title\": \"Client\",\n \"summary\": \"Is a collection of servers running on a single Node.js process.\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"\",\n \"bulletListIntro\": \"The servers are:\",\n \"bulletArray\": \n[\n [\"Web Server:\", \"Serves all the JS files that form the User Interface to the browser.\"], \n[\"Web Sockets Server:\", \"Enables the UI to reach the Client via WS.\"], \n[\"Events Server:\", \"Enables the UI to communicate with the Task Manager Server and all of the Task Servers process instances via events over WS.\"] ,\n[\"Task Manager Server:\", \"Manges Task Servers processes based on users commands.\"]\n],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"All of these servers are custom built—in-house—for Superalgos. We prefer to build on top of rock-solid, widely-used, low-level libraries only, like WS, for instance.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Web Server","config":"{ \n \"subTitle\": \"Web Server\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"The Web Server has two main goals: it serves all the JS files that form the Web App and all the data files to be plotted at the charts to the browser that is running the UI.\",\n \"bulletListIntro\": \"The complete list Web Server uses is:\",\n \"bulletArray\": \n[\n [\"JS Files:\", \"Enables the Web App to run on a browser.\"], \n[\"JSON Data Files:\", \"Allows the UI to access data to plot.\"], \n[\"Images:\", \"Images used on the UI are served from the Web Server.\"] ,\n[\"JSON Workspaces Files:\", \"Allow users to create definitions on different Workspaces.\"] ,\n[\"JSON Plugin Files:\", \"Files that are automatically included on Workspaces for convenience.\"] \n],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"4c01144d-0021-4fda-b233-d2984a08be4d","savedPayload":{"position":{"x":24945.810098056187,"y":44085.83878258969},"targetPosition":{"x":25244.166666666668,"y":44117.19732156999},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Web Sockets Server","config":"{ \n \"subTitle\": \"Web Sockets Server\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"This is a simple implementation of a web sockets server. It essentially allows the UI or any of the other services to communicate with the Events Server via WS.\",\n \"bulletListIntro\": \"\",\n \"paragraph1\": \"The system does not allow different processes to talk to each other via WS. All they can do is talk to the Events Server to subscribe to events or to emit events.\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"The Web Socket Server enables this indirect communication mechanism between all processes and the UI running on a single machine, as well as communication between processes running on different machines.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"3b772db2-8aee-4f6e-b4d2-3dbd9c3edc83","savedPayload":{"position":{"x":25021.22321902345,"y":43916.45813966233},"targetPosition":{"x":25244.166666666668,"y":44117.19732156999},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Events Server","config":"{ \n \"subTitle\": \"Events Server\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"The Events Server provides the communication model between processes and the UI. It essentially allows any entity inside each process to create a system-wide event handler and allow any other entity inside a process (or the UI) to subscribe or emit events at that event handler.\",\n \"bulletListIntro\": \"Events-based communication happens between:\",\n \"bulletArray\": \n[\n [\"UI and Task Manager:\", \"To run and stop Task Server processes.\"], \n[\"Task Server and UI:\", \"To get online feedback of what is going on at the Task Server, to display relevant status info at the UI.\"]\n],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"The communication between the UI and the Web Server is HTTP only.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"56f1a417-2b2a-4b82-9ede-11dc2658a4a6","savedPayload":{"position":{"x":25181.79315942134,"y":43823.753041349846},"targetPosition":{"x":25244.166666666668,"y":44117.19732156999},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Task Manager Server","config":"{ \n \"subTitle\": \"Task Manager Server\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"The Task Manager Server is a simple server to manage the execution of Task Servers Node.js processes. It keeps track of all the instances running at any point in time and allows the UI to decide when to run more instance or stop any of those running.\",\n \"bulletListIntro\": \"The Task Manager Server provides the following commands to the UI:\",\n \"bulletArray\": \n[\n [\"Run Task:\", \"Used to run a new task, spawns a Node.js fork process where a Task Server is run.\"], \n[\"Stop Task:\", \"Sends a fork-process-message to the Task Server instance that needs to stop.\"], \n[\"Task Status:\", \"Tells the caller if the Task Id provided corresponds to a running task or not.\"] \n],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"e4892c24-71fd-4b41-a913-7e27abd5ff91","savedPayload":{"position":{"x":25366.187659589406,"y":43843.13368427721},"targetPosition":{"x":25244.166666666668,"y":44117.19732156999},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"3ce65c39-db2b-4ae1-a091-81871192942c","savedPayload":{"position":{"x":25244.166666666668,"y":44117.19732156999},"targetPosition":{"x":25394.166666666668,"y":44377.00494270532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Task Server","config":"{\n \"title\": \"Task Server\",\n \"summary\": \"The Task Server is a Node.js fork process of Client that receives the definition of the Task that needs to run from the UI . \",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"\",\n \"bulletListIntro\": \"The definition includes:\",\n \"bulletArray\": [\n [\n \"Bot to run:\",\n \"The bot might be a Sensor Bot, an Indicator Bot or a Trading Bot.\"\n ],\n [\n \"Processes to run:\",\n \"Each bot definition may have one or more bot processes. \"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"The UI is where all definitions live. Every time the user runs a task, the UI collects all the relevant information into a single, giant JSON object and sends this to the Task Manager Server, which in turn, after the fork process is running, passes this definition to the Task Server instance just created. With that definition, the Task Server knows all the details of the task to run.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[],"id":"1efab353-979b-4b8c-a117-2f1206c16ae4","savedPayload":{"position":{"x":25694.166666666668,"y":44377.00494270532},"targetPosition":{"x":25394.166666666668,"y":44377.00494270532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"04f8ffd7-52eb-41fa-bd19-e0708060e427","savedPayload":{"position":{"x":25394.166666666668,"y":44377.00494270532},"targetPosition":{"x":25244.166666666668,"y":44636.81256384066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Frontend","config":"{ \n\"title\": \"Frontend\",\n \"summary\": \"The Frontend is essentially a Javascript web-app running on the browser.\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"\",\n \"bulletListIntro\": \"As of today it contains:\",\n \"bulletArray\": \n[\n [\"Canvas App:\", \"Most of the functionality is here. The name reflects the fact that most of the UI is rendered in an HTML 5 canvas object.\"], \n[\"Files Component\", \"Includes the mechanisms to read data files in a way that is suitable for navigating through large datasets while plotting the information in real-time.\"]\n],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"The UI was built entirely in-house. We did not reuse any framework to display the design space or the charts.\",\n \"tip\": \"\",\n \"important\": \"The UI is tested in Chrome only.\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Canvas App","config":"{ \n\"title\": \"Canvas App\",\n \"summary\": \"Most of the action happens on an HTML 5 Canvas animation. The rest is pure HTML + CSS, nothing else. \",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"\",\n \"bulletListIntro\": \"The main object of the Canvas App is called canvas. It is essentially a collection of different space objects:\",\n \"bulletArray\": \n[\n\n[\"Charting Space:\", \"Where charts are displayed,\"], \n [\"Design Space:\", \"Where definitions are maintained.\"], \n [\"Floating Space:\", \"Enables visual scripting.\"], \n[\"Side Space:\", \"Currently, the workspace selector.\"],\n[\"Docs Space:\", \"In-app documentation.\"],\n[\"Tutorial Space:\", \"Enables tutorials like this one.\"],\n[\"Panel Space:\", \"Where plotter panels live.\"],\n[\"Cockpit Space:\", \"Currently, the slider .\"],\n[\"Top Space:\", \"Currently, the top bar with logo.\"] \n],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Canvas Animation","config":"{ \n \"subTitle\": \"Canvas Animation\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"The animation runs a physics() and a draw() function for each space, allowing each of them to have their own physics engine / rules and render themselves as a top-level layer on the UI.\",\n \"paragraph1\": \"At each frame, the animation calls the physics() function of each space first and, second, the draw() function. Then, it requests a callback from the browser and starts all over again.\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Depending on how many things the user keeps open, both the physics() call or the draw() call may last more or less time. This makes the frames-per-second variable, and a function of the number of things that need to be calculated or rendered on-screen.\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"4c215e8b-7a83-4586-bcb0-31ee3308a82a","savedPayload":{"position":{"x":25656.671702498086,"y":44621.39575959029},"targetPosition":{"x":25571.166666666668,"y":44856.31891478677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Charting Space","config":"{ \n \"subTitle\": \"Charting Space\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"This is where the charts are displayed. It allows users to navigate through multi-dimensional datasets.\",\n \"bulletListIntro\": \"\",\n \"paragraph1\": \"The Charting Space has its own object structure that partially matches the definitions set by the user on the Charting Space hierarchy. This means that, whenever the user adds a chart, removes a scale, or changes a configuration of any of the nodes inside the Charting Space hierarchy, the Charting Space senses these changes and adapts its object model, most of the time in real-time, which in turn changes the way that the charts are displayed.\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"The Charting Space uses the Files Components as its data provider.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"e4fb4c74-d980-4c56-b87e-60696c078abe","savedPayload":{"position":{"x":25731.863569088302,"y":44664.807804007025},"targetPosition":{"x":25571.166666666668,"y":44856.31891478677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Design Space","config":"{ \n \"subTitle\": \"Design Space\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"Manages the core concept of nodes which, when attached to one another, may form vast definitions easily made and maintained by users.\",\n \"bulletListIntro\": \"\",\n\n \"paragraph1\": \"The system features a file called App Schema which has the rules about the existing types of nodes, which nodes may be the child of other nodes, and which may reference other nodes and which. It also defines the menu items of nodes. All these rules are enforced on the Design Space. \",\n \"callOut\": \"Users may then attach nodes, establish references between nodes, select menu items, and more...\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"The Design Space is tightly coupled with the Floating Space.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"602ed273-6058-4660-bdca-dbbed6863bd2","savedPayload":{"position":{"x":25787.67301761278,"y":44731.31891478677},"targetPosition":{"x":25571.166666666668,"y":44856.31891478677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Floating Space","config":"{ \n \"subTitle\": \"Floating Space\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"This is like the low-level part of the Design Space. It features a physics engine that governs the physical interactions of floating objects.\",\n \"bulletListIntro\": \"\",\n \"paragraph1\": \"At runtime, each node on the Design Space behaves like a molecule featuring three atoms working together: the first one is called Floating Object and belongs to the Floating Space, which controls its position and collision-related physics; the second one is a UiObject which lives at the Design Space and controls the UI of the node, including menu, label, etc.; the third one is a Node that is—essentially—the information contained in that node.\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"When you save the Workspace, Floating Objects and UIOBjects are detached from Nodes, and saved as a big JSON object with only its data.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"87fa3d5c-f9c2-4340-a171-eafbf5926fb8","savedPayload":{"position":{"x":25817.36860491972,"y":44812.90687037003},"targetPosition":{"x":25571.166666666668,"y":44856.31891478677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Side Space","config":"{ \n \"subTitle\": \"Side Space\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"It is the section on the left, accessed by clicking a tab button. As of today, it features a Workspace selector for users to switch between different workspaces. \",\n \"bulletListIntro\": \"On the Side Space users may:\",\n \"bulletArray\": \n[\n [\"Select an included workspace:\", \"The system ships with one or more included workspaces that serve as examples or case studies.\"], \n[\"Select one's own workspaces:\", \"By renaming any included workspace, the user may create a workspace and switch workspaces using the Side Space.\"]\n],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"The Side Space is expected to grow in functionality in the future.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"5d2b9869-82e1-4d98-b213-0fd5906608c7","savedPayload":{"position":{"x":25817.36860491972,"y":44899.7309592035},"targetPosition":{"x":25571.166666666668,"y":44856.31891478677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Docs Space","config":"{ \n \"subTitle\": \"Docs Space\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"This is where the documentation web site is loaded. It's an HTML iFrame inside a DIV, animated in and out of the screen.\",\n \"bulletListIntro\": \"\",\n\n \"paragraph1\": \"\",\n \"callOut\": \"There is an ongoing effort to bring the documentation web site into the app. What you can see today is just the first step in that direction. \",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"The current documentation is implemented as a separate repository, hosted by Github Pages.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"aaaee2ea-644e-4769-8848-ef2b2bc62841","savedPayload":{"position":{"x":25787.67301761278,"y":44981.31891478677},"targetPosition":{"x":25571.166666666668,"y":44856.31891478677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Tutorial Space","config":"{ \n \"subTitle\": \"Tutorial Space\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"Enables running tutorials. It is not based on the HTML canvas, but on HTML + CSS.\",\n \"paragraph1\": \"The Tutorial Space is the highest top-tier layer of all the system since its rendered above everything else. It can manipulate other spaces based on the configuration of each tutorial topic and step. \",\n \"callOut\": \"Not only may tutorials move the user around the UI, but may also take most actions users themselves may take, like, for instance, running tasks of any kind.\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"The Tutorial Space is a new addition to the system. For that reason, few tutorials exist today, but we expect this to change in the future.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"782d10c5-de47-4927-b287-5cb630f305f9","savedPayload":{"position":{"x":25731.863569088302,"y":45047.83002556651},"targetPosition":{"x":25571.166666666668,"y":44856.31891478677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Panel Space","config":"{ \n \"subTitle\": \"Panel Space\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"The Panel Space is where all panels defined by plotters exist. The space has its own physics engine which governs the way users interact with panels, and panels with other panels.\",\n \"bulletListIntro\": \"\",\n \"paragraph1\": \"Panels are constrained within the boundaries of the Panel Space, which matches the boundaries of the Charting Space.\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"Although the panel space has existed since the project's inception, it is still quite underdeveloped, and there is a lot of room to improve it.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"54722f4b-8f86-4220-9e0f-5417297450a6","savedPayload":{"position":{"x":25656.671702498086,"y":45091.242069983244},"targetPosition":{"x":25571.166666666668,"y":44856.31891478677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"d284c632-42b2-47e6-b1f6-6c64029311a0","savedPayload":{"position":{"x":25694.166666666668,"y":44896.62018497599},"targetPosition":{"x":25394.166666666668,"y":44896.62018497599},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Files Component","config":"{ \n\"title\": \"Files Component\",\n \"summary\": \"Encapsulates different data providers able to read datasets organized in different ways.\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"\",\n \"bulletListIntro\": \"The system defines these types of data providers:\",\n \"bulletArray\": \n[\n [\"Market Files:\", \"For time-frames of 1 hour and above, it is convenient to have a single file with all the data of the whole market.\"], \n[\"Daily Files:\", \"For time-frames below 1 hour, up to 1 minute, it is convenient to split market data into one file per day.\"], \n[\"Single File:\", \"Sometimes a process may generate a single file irrespective of the time-frame.\"], \n[\"Files Sequence:\", \"Some processes may produce a sequence of files.\"] \n],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"Daily Files are managed by a File Cursor which dynamically loads the files of one day and its neighboring days.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[],"id":"719861ad-82fd-4c93-b510-86af1d666908","savedPayload":{"position":{"x":25244.166666666668,"y":45156.42780611132},"targetPosition":{"x":25394.166666666668,"y":44896.62018497599},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"b2cfb2eb-be83-4075-bf26-932a75e83566","savedPayload":{"position":{"x":25394.166666666668,"y":44896.62018497599},"targetPosition":{"x":25244.166666666668,"y":44636.81256384066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"33eb3496-ba79-468a-a30a-9b3e4ba0f4c8","savedPayload":{"position":{"x":25244.166666666668,"y":44636.81256384066},"targetPosition":{"x":24944.166666666668,"y":44636.81256384066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Concusion","config":"{ \n\"title\": \"Parting Thoughts...\",\n \"summary\": \"As you can see, Superalgos is much more than a trading bot. It's a holistic infrastructure to manage complexity in the easiest way possible for users.\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"\",\n \"bulletListIntro\": \"\",\n \"paragraph1\": \" This introduction covered the highest level topics of the system in the hope it may help you understand the foundations on which the system is being built.\",\n \"callOut\": \"We hope you agree it's a good idea to reuse this infrastructure to build trading intelligence rather than code a trading bot from scratch. We hope more devs will join us!\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"If you like the project, there are many ways to contribute. Take a look at this page featuring the roadmap to becoming a part of the team.\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"https://docs.superalgos.org/contributing-to-superalgos.html\" \n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[],"id":"bbc427d1-eec8-489b-bc23-d99281687741","savedPayload":{"position":{"x":24644.166666666668,"y":44636.81256384066},"targetPosition":{"x":24944.166666666668,"y":44636.81256384066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"6a03c441-823d-4147-aef3-d592f110dfd8","savedPayload":{"position":{"x":24944.166666666668,"y":44636.81256384066},"targetPosition":{"x":24944.166666666668,"y":44636.81256384066},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"}}},{"type":"Tutorial","name":"Welcome to Superalgos!","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Welcome to Superalgos!\",\n \"gif\": \"\",\n \"image\": \"tutorial\",\n \"definition\": \"I'm an interactive tutorial, the first in a series designed to facilitate your onboarding and teach you all the basics!\",\n \"paragraph1\": \"I will get you started, show you the tools that will help you move around comfortably, and help you discover all the cool things that Superalgos may do for you.\",\n \"callOut\": \"I'm the ultimate Superalgos onboarding tool! Starting with Superalgos in any other way is a mistake, as no other resource will get you up to speed faster. I will answer most of your questions!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Please, always click Next to continue!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Nodes & Hierarchies","config":"{\n \"position\": \"\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Chrome or Chrome","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Use Chrome or Chrome!\",\n \"gif\": \"\",\n \"image\": \"bullet-warning\",\n \"definition\": \"When running the frontend, we highly recommend using Chrome!! We are not testing on any other browsers!\",\n \"bulletListIntro\": \"It is a well-known fact that browsers behave differently, and we do know of features that do not work on other browsers. If you are on Chrome, click Next and continue. If not, do the following:\",\n \"bulletArray\": [\n [\n \"Copy the current URL.\",\n \"\"\n ],\n [\n \"Close this browser as is.\",\n \"Do not close the tutorial!\"\n ],\n [\n \"Open Chrome and paste the URL.\",\n \"The tutorial should be open on this step when you come back.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"We offer online support, but we can't help you with any browser other than Chrome!\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"3d0447b3-92d7-47c3-a8f9-9fd9cc0b48fd","savedPayload":{"position":{"x":19454.95678840193,"y":44418.30382379679},"targetPosition":{"x":19324.791666666664,"y":44688.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"That's Me","config":"{\n \"subTitle\": \"That's Me On the Right!\",\n \"gif\": \"\",\n \"image\": \"tutorial\",\n \"definition\": \"Tutorials are defined within the system, so you may create more of us if you wish! But we'll discuss that God-like power later on. Let's focus on the basics first!\",\n \"paragraph1\": \"Superalgos is inherently a visual tool. The system represents information in hierarchical structures of interconnected nodes, represented by icons. What you see on your right is one of these hierarchies—in particular, a ->Tutorial-> hierarchy with a label reading Welcome to Superalgos!\",\n \"callOut\": \"Hover your mouse pointer over the Tutorial node and see what happens!\",\n \"paragraph2\": \"Wow! Cool right? That's a lot of buttons!\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"57f5e946-1289-4508-95f0-dfe5e95a7346","savedPayload":{"position":{"x":19559.341111407073,"y":44501.54754360989},"targetPosition":{"x":19324.791666666664,"y":44688.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"Welcome to Superalgos!","id":"6f36f540-8de9-4458-b2c7-875884121b87"}}},{"type":"Tutorial Step","name":"Expand That Node!","config":"{\n \"subTitle\": \"Expand That Node!\",\n \"gif\": \"\",\n \"image\": \"expand\",\n \"definition\": \"Each node features a menu. The button on the bottom-left expands and collapses the structure of nodes below the current node.\",\n \"paragraph1\": \"\",\n \"callOut\": \"Go ahead and click the expand button!\",\n \"paragraph2\": \"The ->Tutorial-> node has several offspring, and these have several more offspring. That's why it's a hierarchy!\",\n \"note\": \"Structured visual representations of information are at the core of how Superalgos administers the complexity behind flexible and scalable trading operations.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"dc75d95f-68d8-44a0-a1d2-d4a12a2fd43f","savedPayload":{"position":{"x":19617.27004032121,"y":44621.838203980624},"targetPosition":{"x":19324.791666666664,"y":44688.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"Welcome to Superalgos!","id":"6f36f540-8de9-4458-b2c7-875884121b87"}}},{"type":"Tutorial Step","name":"Let's Go for a Ride!","config":"{\n \"subTitle\": \"Let's Go for a Ride!\",\n \"gif\": \"\",\n \"image\": \"network\",\n \"definition\": \"Before I show you the rest of the menu, let's take a look at another hierarchy: the ->Network->. \",\n \"paragraph1\": \"The Network hierarchy is the control room of the system. This is where you control your ->Data Tasks->, ->Testing Trading Tasks->, and ->Production Trading Tasks->.\",\n \"callOut\": \"Expand the hierarchy and take a look inside!\",\n \"paragraph2\": \"See the nodes I mentioned earlier? Cool! We are here to start your first ever data mining operation.\",\n \"note\": \"But before we start, I have a question for you! Are you accessing the Client remotely?\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"43329093-256d-4bfa-84d1-3eb245287604","savedPayload":{"position":{"x":19617.27004032121,"y":44755.35076435441},"targetPosition":{"x":19324.791666666664,"y":44688.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Network","name":"My Network","id":"3c165071-7558-4708-9999-8ffe71d346b1"}}},{"type":"Tutorial Step","name":"Remote access","config":"{\n \"subTitle\": \"Remote Access!\",\n \"gif\": \"\",\n \"image\": \"network-node\",\n \"definition\": \"Superalgos allows running the Client on a machine and accessing it via Chrome from another machine in the network.\",\n \"paragraph1\": \"Many users choose to run the Client in the cloud, on single-board machines like the Raspberry Pi, or on a dedicated PC that they can leave on at all times when trading live. The My Computer ->Network Node-> represents the machine the Client is running on.\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"At this stage, Superalgos does not implement any form of security measures. Therefore, you should use the system in the context of a restricted Local Area Network only. If you chose to run the Client in the cloud, you must implement your own network security.\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"f9360490-9b6b-4104-b938-5971406bdfe0","savedPayload":{"position":{"x":19559.341111407073,"y":44875.64142472514},"targetPosition":{"x":19324.791666666664,"y":44688.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Network Node","name":"My Computer","id":"e452cf65-2b2b-44f2-9e67-bdd9d3c008e4"}}},{"type":"Tutorial Step","name":"Accessing remotely?","config":"{\n \"subTitle\": \"Accessing Remotely?\",\n \"gif\": \"\",\n \"image\": \"network-node\",\n \"definition\": \"If you are accessing the Client from the same machine, you may click Next and skip this step now!\",\n \"bulletListIntro\": \"If you are accessing the Client from a remote machine, you must adjust the ->Network Node-> configuration before continuing. \",\n \"bulletArray\": [\n [\n \"Open the Network Node menu and click Configure\",\n \"on the top-right corner.\"\n ],\n [\n \"Change the host parameter for the IP address\",\n \"of the machine running the backend.\"\n ],\n [\n \"Exit the configuration\",\n \"by removing the mouse pointer from the configuration bubble! If the configuration is correct, the error message in the Network Node should disappear in a minute!\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"872f6654-cd9b-4b8b-8b8c-b03cae14c1a8","savedPayload":{"position":{"x":19454.95678840193,"y":44958.88514453824},"targetPosition":{"x":19324.791666666664,"y":44688.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Network Node","name":"My Computer","id":"e452cf65-2b2b-44f2-9e67-bdd9d3c008e4"}}}],"tutorialTopics":[],"id":"892c8d8c-824e-4293-af86-bdb81464c7d6","savedPayload":{"position":{"x":19324.791666666664,"y":44688.594484167515},"targetPosition":{"x":19024.791666666664,"y":44688.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Start Data Mining","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Ready to Rock?","config":"{\n \"subTitle\": \"Ready to Rock?\",\n \"gif\": \"\",\n \"image\": \"data-tasks\",\n \"definition\": \"The ->Data Tasks-> node controls all the data mining tasks defined for this ->Network Node->.\",\n \"bulletListIntro\": \"You are about to start the first of the following activities that we'll cover in the next few minutes:\",\n \"bulletArray\": [\n [\n \"1. Run a data mining operation\",\n \" to get data for the BTC/USDT ->Market-> from Binance.\"\n ],\n [\n \"2. Run a ->Backtesting Session->\",\n \" with an existing open-source strategy.\"\n ],\n [\n \"3. Run a ->Live Trading Session->\",\n \" with minimal funds, to test the critical aspects of the system.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"Are you cool with this? Shall we start?\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"d35ce1f2-4963-4add-8998-9bb8995a24e7","savedPayload":{"position":{"x":19514.087560776014,"y":44785.921488813954},"targetPosition":{"x":19236.923701022628,"y":44900.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Tasks","name":"New Data Tasks","id":"40af91d9-431c-4b7d-addc-aed37bc2f3fe"}}},{"type":"Tutorial Step","name":"Binance.com Or Binance.us?","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Binance.com or Binance.us?\",\n \"gif\": \"\",\n \"image\": \"binance\",\n \"definition\": \"Before we start data mining, I have a little question for you: are you trading at binance.com or binance.us?\",\n \"paragraph1\": \"If you trade at binance.com or don't trade with Binance at all, then you may skip this step and the next!\",\n \"callOut\": \"If you trade at binance.us you need to do something with the Binance node to the right! The video on the next step shows you how!\",\n \"paragraph2\": \"1. Open the configuration and change the codeName
to binanceus.

2. Edit the label of the node to read Binanceus.\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"workspaces\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"c1384619-0348-420c-ba81-8a79646cec4d","savedPayload":{"position":{"x":19536.923701022628,"y":44900.72651852348},"targetPosition":{"x":19236.923701022628,"y":44900.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"welcome-binanceus\",\n \"position\": \"Left\",\n \"slider\": \"toTop\"\n}","project":"Superalgos","id":"cb5e31c7-7224-4fcd-bcef-df156cd79d6c","savedPayload":{"position":{"x":19514.087560776014,"y":45015.531548233004},"targetPosition":{"x":19236.923701022628,"y":44900.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"Welcome to Superalgos!","id":"6f36f540-8de9-4458-b2c7-875884121b87"}}},{"type":"Tutorial Step","name":"Let's Mine Some Data!","config":" {\n \"subTitle\": \"Let's Mine Some Data!\",\n \"gif\": \"\",\n \"image\": \"run\",\n \"definition\": \"The Run All Project Data Tasks button on the top-right corner of the ->Data Tasks-> node menu runs... well... all Project Data Tasks!\",\n \"paragraph1\": \"And that is exactly what we want to do, so...\",\n \"callOut\": \"Select the button on the menu and let's mine!\",\n \"paragraph2\": \"Confirm the request by clicking the button a second time. In about 30 seconds, you should see a status notice below the Data Mining node indicating that 1 out of 1 Exchange Data Tasks node is running.\",\n \"note\": \"Your console app should show something similar to the video on the next step.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"37dc22e6-b981-472c-abd6-a61904b5c46e","savedPayload":{"position":{"x":19449.05573537859,"y":45112.85855287944},"targetPosition":{"x":19236.923701022628,"y":44900.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Tasks","name":"New Data Tasks","id":"40af91d9-431c-4b7d-addc-aed37bc2f3fe"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"welcome-start-data-mining-console\",\n \"position\": \"Left\",\n \"slider\": \"toTop\"\n}","project":"Superalgos","id":"204754e6-6145-44fd-877f-6373b2c9caa1","savedPayload":{"position":{"x":19351.728730732157,"y":45177.89037827687},"targetPosition":{"x":19236.923701022628,"y":44900.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"How Are Things Going?","config":"{\n \"subTitle\": \"How Are Things Going?\",\n \"gif\": \"\",\n \"image\": \"sensor-bot-instance\",\n \"definition\": \"I just dragged you deep into the confines of the Data Mining operation. See the progress of the ->Sensor Bot Instance-> to your right!\",\n \"paragraph1\": \"The sensor bot is currently extracting data from the exchange. As soon as she completes the extraction for the defined datetime range something really cool will happen... automatically!\",\n \"callOut\": \"Can you guess what that may be?\",\n \"paragraph2\": \"I won't tell you! You'll find out soon... be patient! It should take no longer than 3 to 5 minutes to extract the data from Binance. Fine! Click Next for a quick hint!\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"bc5ee6e3-62d6-481d-8eb9-5061e93fcf32","savedPayload":{"position":{"x":19236.923701022628,"y":45200.72651852348},"targetPosition":{"x":19236.923701022628,"y":44900.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","id":"d244c564-4e86-43c7-9796-dc3b6294ec8b"}}},{"type":"Tutorial Step","name":"Candles Volumes in Action","config":"{\n \"subTitle\": \"Candles Volumes in Action\",\n \"gif\": \"\",\n \"image\": \"indicator-bot-instance\",\n \"definition\": \"That's right! Indicators will start working as soon as the sensor bot finishes her job!\",\n \"paragraph1\": \"You're watching the processes of Candles Volumes. She turns the one-minute candles the sensor bot downloads from the exchange into candles for all time frames.\",\n \"callOut\": \"What happens after Candles Volumes finishes?\",\n \"paragraph2\": \"Other bots need Candles Volumes to finish her work so that they may start doing theirs. Imagine a bot needs to calculate a 20-periods Simple Moving Average for all time frames. She needs the ->Data Product-> produced by Candles Volumes as input for the SMA calculation. We call such a need a ->Data Dependency->.\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"c04422c9-b9b5-491d-9d69-7c12c5d48a46","savedPayload":{"position":{"x":19122.118671313103,"y":45177.89037827687},"targetPosition":{"x":19236.923701022628,"y":44900.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","id":"f0ef12ed-f0fd-4b88-8e15-27cf24265a5f"}}}],"tutorialTopics":[],"id":"acb0a041-37aa-49d3-b221-66ca76b7d874","savedPayload":{"position":{"x":19236.923701022628,"y":44900.72651852348},"targetPosition":{"x":19024.791666666664,"y":44688.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Control Basics","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Moving Around","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Click & Drag Baby!","config":"{\n \"subTitle\": \"Click & Drag Baby!\",\n \"gif\": \"\",\n \"image\": \"hand-drag\",\n \"definition\": \"I want to show you something while the data mining operation progresses. I'll teach you how to walk... in two seconds!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Just click and drag with your mouse!\",\n \"paragraph2\": \"Easy, right? Great!

However, the design space is a huge place and I wouldn't want you to get tendinitis dragging your way around like this. I'll teach you a couple more tricks in the next couple of steps.\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"c01bc5ad-0d8a-4678-b415-32d08149af10","savedPayload":{"position":{"x":19341.148235277145,"y":45272.760644283146},"targetPosition":{"x":19042.791666666664,"y":45241.40210530285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Time to Take Control!","config":"{\n \"subTitle\": \"Time to Take Control!\",\n \"gif\": \"\",\n \"image\": \"key-ctrl\",\n \"definition\": \"Yes! You may use your keyboard too! You are going to love this for long-distance travel on the design space!\",\n \"paragraph1\": \"Here's the trick:\",\n \"callOut\": \"Regular folks may use the Ctrl key plus arrow keys: ← → ↑ ↓\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Of course Mac fanboys and fangirls must replace Ctrl with Command\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"da5d7044-7add-4cec-8602-60cba9f5964f","savedPayload":{"position":{"x":19265.735114309882,"y":45442.14128721051},"targetPosition":{"x":19042.791666666664,"y":45241.40210530285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Spacetime Teleportation!","config":"{\n \"subTitle\": \"Spacetime Teleportation!\",\n \"gif\": \"\",\n \"image\": \"mouse-right-click\",\n \"definition\": \"Ok, you're not actually going to be teleporting, nor will you bend spacetime, but it almost feels like it! It's time to learn to use the design space map.\",\n \"paragraph1\": \"I said earlier that the design space is huge, and I meant it! Going from one corner to the opposite would take hundreds of clicks and drags. While using the keyboard allows you to develop neck-breaking speeds, it's not as cool as teleporting! This is how it works:\",\n \"callOut\": \"Right-click to open the map and left-click anywhere on the map to go to that specific spot!\",\n \"paragraph2\": \"Look at me on the bottom-left corner of the design space? Now you know where to find me!\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"56422b6d-9194-426a-844b-bc305ae93799","savedPayload":{"position":{"x":19105.16517391199,"y":45534.84638552299},"targetPosition":{"x":19042.791666666664,"y":45241.40210530285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Warp-Speed Zooming!","config":"{\n \"subTitle\": \"Warp-Speed Zooming!\",\n \"gif\": \"\",\n \"image\": \"mouse-wheel-down\",\n \"definition\": \"There's one more tool that you may find useful to manipulate spacetime! The native browser zoom function!\",\n \"paragraph1\": \"Sometimes you may wish to visualize larger sections of hierarchies than your screen allows.\",\n \"callOut\": \"Hit Ctrl and scroll the wheel of your mouse!\",\n \"paragraph2\": \" \",\n \"note\": \"\",\n \"tip\": \"Chrome indicates the level of zoom on the top-right corner. When zooming in or out, the design space gets centered on the screen. After applying the desired level of zoom, use the design space map to go back where you were.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"ab46d3df-1c4b-4520-a042-d022945134e7","savedPayload":{"position":{"x":18920.770673743926,"y":45515.46574259563},"targetPosition":{"x":19042.791666666664,"y":45241.40210530285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"595cc636-c692-401c-9d45-a954146f4679","savedPayload":{"position":{"x":19174.791666666664,"y":45248.40210530285},"targetPosition":{"x":19024.791666666664,"y":44988.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Tutorials & Help","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"A Bit About Tutorials","config":"{\n \"subTitle\": \"A Bit About Tutorials...\",\n \"gif\": \"\",\n \"image\": \"tutorial\",\n \"definition\": \"Before we get back to business, let me tell you a few things about how we—tutorials—work.\",\n \"bulletListIntro\": \"This is likely the most important bit:\",\n \"bulletArray\": [\n [\n \"You are the boss!\",\n \" You may stop a tutorial and skip steps—or entire topics—at any point. Once you're ready to pick up the lesson again, find us on the bottom-left corner of the design space. Select Resume on the menu to start where you left, or on the first step skipped. Select Play to start from the beginning!\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"Let's try that! Click the Stop button below, and once I'm gone, open my menu and select Resume.\",\n \"paragraph2\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"82087d62-2c6a-4336-b974-6ecf06d1485b","savedPayload":{"position":{"x":19024.791666666664,"y":45508.20972643818},"targetPosition":{"x":18874.791666666664,"y":45248.40210530285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"Welcome to Superalgos!","id":"6f36f540-8de9-4458-b2c7-875884121b87"}}},{"type":"Tutorial Step","name":"Need a Quick Reminder?","config":"{\n \"subTitle\": \"Need a Quick Reminder?\",\n \"gif\": \"\",\n \"image\": \"key-left\",\n \"definition\": \"At this point, I'm probably overflowing your hippocampus! But don't worry... you may go back to any previous step!\",\n \"bulletListIntro\": \"If you ever need a reminder about any of these topics...\",\n \"bulletArray\": [\n [\n \"Find a ->Tutorial Topic-> and replay it!\",\n \" You may find me on the bottom-left corner of the design space, expand me, browse through the hierarchy of topics and steps, and click Play on any of them. Topics are arranged in a clockwise direction, starting from the right-hand side of the main ->Tutorial-> node.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"Find the Need a Quick Reminder? step under the Tutorials & Help topic below. Then click Stop, and restart by clicking Play on the said ->Tutorial Step->!\",\n \"paragraph2\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"5d1d848b-4633-4b70-8cb0-01b527a99d23","savedPayload":{"position":{"x":18874.791666666664,"y":45548.40210530285},"targetPosition":{"x":18874.791666666664,"y":45248.40210530285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"Welcome to Superalgos!","id":"6f36f540-8de9-4458-b2c7-875884121b87"}}},{"type":"Tutorial Step","name":"Hungry For More Info?!","config":"{\n \"subTitle\": \"Hungry For More Info?\",\n \"gif\": \"\",\n \"image\": \"help\",\n \"definition\": \"I won't go into every detail as we move along, but if you need more info on a node, the help button on the menu takes you straight to its documentation.\",\n \"bulletListIntro\": \"The documentation of a node may include one or more of the following sections:\",\n \"bulletArray\": [\n [\n \"Definition:\",\n \" describes what the node is or does.\"\n ],\n [\n \"Content:\",\n \" describes how the node works.\"\n ],\n [\n \"Adding:\",\n \" describes how to add the node.\"\n ],\n [\n \"Configure:\",\n \" goes through the node's configuration.\"\n ],\n [\n \"Start:\",\n \" for nodes that may be started or stopped.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"Click the help button on the ->Data Tasks-> node!\",\n \"paragraph2\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"workspaces\": \"Close\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"530a357e-59e6-4c88-b5da-5500e8bed6a8","savedPayload":{"position":{"x":18724.791666666664,"y":45508.20972643818},"targetPosition":{"x":18874.791666666664,"y":45248.40210530285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Tasks","name":"New Data Tasks","id":"40af91d9-431c-4b7d-addc-aed37bc2f3fe"}}},{"type":"Tutorial Step","name":"Broke Something?","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Broke Something?\",\n \"gif\": \"\",\n \"image\": \"workspace\",\n \"definition\": \"If you ever break something—like deleting a node or changing a configuration—and don't know how to deal with the outcome...\",\n \"paragraph1\": \"\",\n \"callOut\": \"... there is an easy way to start over with a brand new workspace!\",\n \"paragraph2\": \"All you need to do is pull the tab on the left-hand side of the screen and click on the Getting-Started plugin workspace. \",\n \"note\": \"\",\n \"tip\": \"A brand new Getting Started workspace will load and I will show up again, fresh from the start!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"workspaces\": \"Open\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"17168fe8-e9dc-466e-905b-8eea70ef26ca","savedPayload":{"position":{"x":18614.98404553133,"y":45398.40210530285},"targetPosition":{"x":18874.791666666664,"y":45248.40210530285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"More Workspaces?","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"More Workspaces?\",\n \"gif\": \"\",\n \"image\": \"workspace\",\n \"definition\": \"Yes! Some of them are plugins shipping with the system and some are your own!\",\n \"paragraph1\": \"As soon as you start using the system, the workspace is saved every minute. It is also saved before closing the browser or browser tab, and you may save it manually too using the Ctrl + Shift + S keys.\",\n \"callOut\": \"When a plugin workspace is modified in any way, a copy is stored in your My-Workspaces folder.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"Plugin files may not be modified from within the system!\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"workspaces\": \"Close\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"fcafc190-5135-4cdb-ad7b-cd3b2ebea1e0","savedPayload":{"position":{"x":18574.791666666664,"y":45248.40210530285},"targetPosition":{"x":18874.791666666664,"y":45248.40210530285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"b230cbd7-658c-4a1c-b772-90462da2afaa","savedPayload":{"position":{"x":18874.791666666664,"y":45248.40210530285},"targetPosition":{"x":19024.791666666664,"y":44988.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"abde1c6f-1863-4752-9146-acda3dcfb987","savedPayload":{"position":{"x":19024.791666666664,"y":44988.594484167515},"targetPosition":{"x":19024.791666666664,"y":44688.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Explore Data Mining","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Back to Work!","config":"{\n \"subTitle\": \"Ok... Back to Work!\",\n \"gif\": \"\",\n \"image\": \"data-tasks\",\n \"definition\": \"Now that you're comfortable moving around, I want you to go on a little tour exploring the ->Data Tasks-> section of the hierarchy.\",\n \"bulletListIntro\": \"Notice the following:\",\n \"bulletArray\": [\n [\n \"The section is organized—first and foremost—by project, exchange, and market.\",\n \" This will help you work with multiple exchanges and multiple markets in an orderly fashion.\"\n ],\n [\n \"The ->Exchange Data Tasks-> and ->Market Data Tasks-> nodes\",\n \" may control all tasks in the exchange and market respectively.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"Go out and check those nodes and their menus!\",\n \"paragraph2\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"20adac13-77a2-4694-a064-0851ae86b20b","savedPayload":{"position":{"x":18911.74335089725,"y":45183.891517615986},"targetPosition":{"x":18812.6596323107,"y":44900.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Tasks","name":"New Data Tasks","id":"40af91d9-431c-4b7d-addc-aed37bc2f3fe"}}},{"type":"Tutorial Step","name":"The Magic of Data Mines","config":"{\n \"subTitle\": \"The Magic of Data Mines\",\n \"gif\": \"\",\n \"image\": \"data-mine-tasks\",\n \"definition\": \"Within each market, the operation is organized by ->Data Mine->. Superalgos ships with several open-source data mines, each with multiple indicators.\",\n \"paragraph1\": \"Think of data mines as plugins that developers may create to extend the data analysis capacity of the system. An ->Indicator Bot-> may process data other indicators produce, hence adding value and producing deeper and richer analysis.\",\n \"callOut\": \"If you have a basic understanding of JavaScript, you may create indicators too!\",\n \"paragraph2\": \"But I'm getting ahead of myself talking about building data mines at this point! Let's get back on track!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"18b58454-4ed5-4c3c-939b-d1f87742a7a1","savedPayload":{"position":{"x":18779.070289479707,"y":45198.840181491454},"targetPosition":{"x":18812.6596323107,"y":44900.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Mine Tasks","name":"Masters","id":"85224e5e-f3ee-4e8d-b9bd-e5901bd49b33"}}},{"type":"Tutorial Step","name":"The Core of Data Mining","config":"{\n \"subTitle\": \"At the Core of Data Mining\",\n \"gif\": \"\",\n \"image\": \"task\",\n \"definition\": \"The core of a data mining operation are tasks running bots. One ->Task-> controls one bot, and a ->Task Manager-> may control multiple tasks.\",\n \"paragraph1\": \"Buy now you've learned about six different devices that you may use to control each bot in your data mining operation. At the highest level, the ->Data Tasks-> node controls all data mining bots in the ->Network Node->.\",\n \"callOut\": \"We'll talk about network nodes in a minute...\",\n \"paragraph2\": \"At the lowest level, an individual task controls a single bot. The nodes in between are organizational nodes that help keep the operation orderly, and allow granular control over the different sections.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"22c05bc7-0d7b-42b7-9c5c-73376a7a9c97","savedPayload":{"position":{"x":18653.0500093561,"y":45154.743778291966},"targetPosition":{"x":18812.6596323107,"y":44900.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Task","name":"Exchange Raw Data","id":"a8f38508-1cac-4ab1-815f-d338fc813377"}}},{"type":"Tutorial Step","name":"Are We Up to Date?","config":"{\n \"subTitle\": \"Are We Up to Date?\",\n \"gif\": \"\",\n \"image\": \"indicator-process-instance\",\n \"definition\": \"By now, all processes should be at 100%. When that happens, we refer to the data mining operation as being up to date.\",\n \"paragraph1\": \"When all processes are up to date, the bots keep running, processing information in realtime as it is produced at the exchange. That is, the data mining operation doesn't stop unless you stop it!\",\n \"callOut\": \"Look around and see if all processes are at 100%\",\n \"paragraph2\": \"To run a ->Live Trading Session->, you need a constant feed of information from the exchange, being processed in realtime, so that the ->Trading Bot-> may apply the rules of your ->Trading System-> to make live trading decisions.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"ad16ed9d-91fe-4f44-8c20-8c257b65cc9c","savedPayload":{"position":{"x":18558.642372542214,"y":45060.33614147808},"targetPosition":{"x":18812.6596323107,"y":44900.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Time to Stop!","config":"{\n \"subTitle\": \"Time to Stop!\",\n \"gif\": \"\",\n \"image\": \"stop\",\n \"definition\": \"We are not going to run a ->Live Trading Session-> just yet, so there is no point in keeping our data mining running at this point.\",\n \"bulletListIntro\": \"There are two main reasons to run a data mining op:\",\n \"bulletArray\": [\n [\n \"To process historic data.\",\n \"You may want to process a datetime range of any given ->Market-> to run a ->Backtesting Session->, or to process new indicators.\"\n ],\n [\n \"To run a live session.\",\n \"Live sessions (->Paper Trading Session->, ->Forward Testing Session->, and ->Live Trading Session->) need a live market feed.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"If all processes are up to date, then select Stop All Tasks in the Masters ->Task Manager->\",\n \"paragraph2\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"dc68fa92-dee8-4d89-8add-893084d24afa","savedPayload":{"position":{"x":18514.54596934273,"y":44934.31586135447},"targetPosition":{"x":18812.6596323107,"y":44900.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Task Manager","name":"Masters","id":"c193ecbb-c3e0-4fd5-94ed-bb6356d1d5ea"}}},{"type":"Tutorial Step","name":"Careful With Your Data","config":"{\n \"subTitle\": \"Careful With Your Data!\",\n \"gif\": \"\",\n \"image\": \"dataset-definition\",\n \"definition\": \"It may take up to one minute for all tasks to come to a halt. You should never close the system before all tasks stop.\",\n \"paragraph1\": \"\",\n \"callOut\": \"Take another quick look at the console app to see how tasks get stopped!\",\n \"paragraph2\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"Closing the Client before tasks stop may cause your data to become corrupt.\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"e2d919b0-de13-418a-a859-c354ab00e098","savedPayload":{"position":{"x":18529.49463321819,"y":44801.642799936926},"targetPosition":{"x":18812.6596323107,"y":44900.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"07d273cd-95b0-4c7e-b81f-8c9c26041598","savedPayload":{"position":{"x":18812.6596323107,"y":44900.72651852348},"targetPosition":{"x":19024.791666666664,"y":44688.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Charting Space","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"The Viewport","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"The Other Dimension","config":"{\n \"subTitle\": \"The Bright Side\",\n \"gif\": \"\",\n \"image\": \"charting-space\",\n \"definition\": \"So far, you've been confined to the dark side of Superalgos. Get ready to be exposed to the bright side: the ->Charting Space->.\",\n \"paragraph1\": \"The charting space lives on top of the design space, separated by a turquoise slider.\",\n \"callOut\": \"\",\n \"paragraph2\": \"As you will come to expect from Superalgos, the charting space is configurable and highly flexible. Everything that happens there is defined on the ->Charting Space-> hierarchy.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"The charting space is known for blowing people's minds. Please, refrain from continuing with this tutorial if you are currently under the influence of psychoactive substances.\",\n \"position\": \"Left\",\n \"slider\": \"toMiddle\",\n \"useReferenceParentTo\": \"Position at Node\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"6a04a6a7-2c77-4fc0-9aab-2355183e9de5","savedPayload":{"position":{"x":18516.856782232564,"y":45161.02847577999},"targetPosition":{"x":18380.6596323107,"y":44893.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Charting Space","name":"New Charting Space","id":"21d2ec55-9e56-4652-8e96-c7e451262c36"}}},{"type":"Tutorial Step","name":"Break On Through","config":"{\n \"subTitle\": \"Break On Through!\",\n \"gif\": \"\",\n \"image\": \"full-board\",\n \"definition\": \"I'll get you up to speed with moving around and browsing the charting space in no time... Let's deal with the slider first!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Click it and drag it down to close the design space and open the charting space. Do the opposite for the reversed effect. To do it with the keyboard, hit Ctrl + Shift + ↓. Try ↑ ← → too!\",\n \"paragraph2\": \"\",\n \"note\": \"Unless you need both spaces to be partially open, it's always a good idea to fully close either of them to save computing resources in your machine.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"31192a2d-e45f-45ee-9f78-53aef9f1e4c2","savedPayload":{"position":{"x":18427.58997182277,"y":45190.03302070202},"targetPosition":{"x":18380.6596323107,"y":44893.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Navigating the White Room","config":"{\n \"subTitle\": \"Navigating the White Room\",\n \"gif\": \"\",\n \"image\": \"mouse-right-click\",\n \"definition\": \"Just like the design space, the charting space features a huge area where you may set up charts... as many as your hardware can cope with! \",\n \"paragraph1\": \"There are only two charts in this default ->Workspace->, to keep things simple for newcomers. Advanced users monitor charts from multiple exchanges and multiple markets.\",\n \"callOut\": \"To move around the charting space, click and drag using your mouse.

The keyboard combination is Shift plus the arrow keys ↑ ← → ↓\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"repositionAtTimeMachineNoZoomReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"8c9f537d-1b51-41b0-abb8-fdcaf8db5224","savedPayload":{"position":{"x":18333.72929279863,"y":45190.03302070202},"targetPosition":{"x":18380.6596323107,"y":44893.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}},{"type":"Tutorial Step","name":"Talkin Time Travel","config":"{\n \"subTitle\": \"Talkin' Time Travel\",\n \"gif\": \"\",\n \"image\": \"time-machine\",\n \"definition\": \"I mentioned earlier there are two charts in this workspace. In Superalgos, we call each of these a ->Time Machine->.\",\n \"paragraph1\": \"A time machine may hold one ->Timeline Chart-> or more. We call them time machines because all timeline charts within a time machine are synchronized in time. This feature of time machines allows to superimpose different layers of data sharing the same ->Time Scale->.\",\n \"callOut\": \"Hover your mouse pointer over the time machines!\",\n \"paragraph2\": \"Notice the label emerging on the left-hand side showing which exchange and market the data is associated with. A single time machine may hold data from multiple markets and multiple exchanges!\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"repositionAtTimeMachineNoZoomReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"2f4e6515-64e4-40ab-b894-5cb2468cad2c","savedPayload":{"position":{"x":18244.462482388837,"y":45161.02847577999},"targetPosition":{"x":18380.6596323107,"y":44893.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}},{"type":"Tutorial Step","name":"Bending Time?","config":"{\n \"subTitle\": \"Bending time?\",\n \"gif\": \"\",\n \"image\": \"time-machine\",\n \"definition\": \"Ok... maybe it's not actually like bending, but, bear with me... You'll love how you can shape time machines to whatever format you wish.\",\n \"paragraph1\": \"Hover your mouse pointer over any of the edges of the turquoise frame defining the time machine and see what happens. See how the edge is highlighted in yellow?\",\n \"callOut\": \"Cool! Now, left-click the frame and pull!\",\n \"paragraph2\": \"\",\n \"note\": \"This is how you may shape time machines to your liking.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"88985962-8763-415e-a06e-362faaf83c3a","savedPayload":{"position":{"x":18168.527597954737,"y":45105.85855287944},"targetPosition":{"x":18380.6596323107,"y":44893.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Size Matters?","config":"{\n \"subTitle\": \"Size Matters?\",\n \"gif\": \"\",\n \"image\": \"time-machine\",\n \"definition\": \"How about shaping the time machine to the exact aspect ratio of your screen?\",\n \"paragraph1\": \"Matching the aspect ratio of your time machines to the aspect ratio of your screen is crucial for charts to fit your screen tightly!\",\n \"callOut\": \"Point your mouse at one of the time machines and hit Ctrl + Shift + A. Do the same with the other one!\",\n \"paragraph2\": \"\",\n \"tip\": \"From now on, leave the time machines matching your screen... it'll work best for our ride!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"5dce35cc-5f3c-4f2d-b8f1-979ac03ddfa2","savedPayload":{"position":{"x":18113.35767505419,"y":45029.92366844534},"targetPosition":{"x":18380.6596323107,"y":44893.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Putting Things in Order","config":"{\n \"subTitle\": \"Putting Things in Order\",\n \"gif\": \"\",\n \"image\": \"hand-drag\",\n \"definition\": \"One more thing before we dive into the charts. You need to know how to put the house in order!\",\n \"paragraph1\": \"The time will come in which you may be working with tens of charts. You already know how to change their format... Now you need to know how to move them around, so that you may create whatever arrangements you require. It's quite easy:\",\n \"callOut\": \"Hit Shift left-click, and drag!\",\n \"paragraph2\": \"I believe we've covered everything about how to manage the charting space. It's time to dive into the charts!\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\" }","project":"Superalgos","id":"9cded7dd-5236-4000-9b0f-d576fa185734","savedPayload":{"position":{"x":18084.35313013216,"y":44940.656858035545},"targetPosition":{"x":18380.6596323107,"y":44893.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Get In the Wormhole!","config":"{\n \"subTitle\": \"Get In the Wormhole!\",\n \"gif\": \"\",\n \"image\": \"mouse-wheel-up\",\n \"definition\": \"It's time to dive into a ->Time Machine-> and see what happens! Are you ready for a full-on immersive experience?\",\n \"paragraph1\": \"The charting space is like the Google Maps of market charts. As you already know, you left-click and drag to move around the landscape... but, how do you zoom in to see the details?\",\n \"callOut\": \"With the wheel of the mouse! Try it!\",\n \"paragraph2\": \"Exactly! Just like in Google Maps! Point the mouse to the area of interest, then roll the wheel of the mouse forwards to zoom in, and backward to zoom out!\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"ad3ff699-7830-478b-8b62-b3b0af7d0134","savedPayload":{"position":{"x":18084.35313013216,"y":44846.79617901141},"targetPosition":{"x":18380.6596323107,"y":44893.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Dashboard","name":"Production Environment My Computer","id":"abc16155-6614-4397-bf7e-ab4a0ff7c1a4"}}},{"type":"Tutorial Step","name":"The Elegant Way...","config":"{\n \"subTitle\": \"The Elegant Way...\",\n \"gif\": \"\",\n \"image\": \"mouse-pointer\",\n \"definition\": \"I know! Zooming into a random spot is unlikely to position the chart squared with your screen, right? No worries...\",\n \"paragraph1\": \"I'll show you how to get into a chart so that everything fits nicely. First, use the Ctrl + Shift + A keys to adjust the aspect ratio to fit your screen. Then, zoom out fully with your mouse. From this position...\",\n \"callOut\": \"Double-click on the time machine on top! Twice!\",\n \"paragraph2\": \"The first double-click centers the chart, and takes you to a certain level of zoom; some margin is left to fit the name of the chart and the tab on the top-left corner. The second double-click takes you all the way in, to the zoom level on which layer managers emerge.\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"keyPressedTimeMachineReferenceParent\": {\n \"shiftKey\": true,\n \"ctrlKey\": true,\n \"metaKey\": true,\n \"code\": \"ArrowRight\",\n \"key\": \"A\"\n },\n \"repositionAtTimeMachineNoZoomReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"dcb0863d-fdce-4620-a41a-ebdf5fa15989","savedPayload":{"position":{"x":18113.35767505419,"y":44757.529368601616},"targetPosition":{"x":18380.6596323107,"y":44893.72651852348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}}],"tutorialTopics":[],"id":"37f74e1d-2e40-409e-8475-b3d990cd7211","savedPayload":{"position":{"x":18380.6596323107,"y":44893.72651852348},"targetPosition":{"x":18592.791666666664,"y":44681.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"The Charts","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Navigation & Scales","config":"{ \n \"title\": \" \",\n \"summary\": \"\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n }","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Moving in Wonderland","config":"{\n \"subTitle\": \"Moving in Wonderland\",\n \"gif\": \"\",\n \"image\": \"mouse-left-click\",\n \"definition\": \"So, you are finally inside a chart. The first thing you'll want to do is move around and learn what these charts may do for you.\",\n \"paragraph1\": \"Let's get on with that! Like in the design space—when inside a time machine—you move by using your mouse and your keyboard. This is how: \",\n \"callOut\": \"With the mouse, left-click and drag. With the keyboard, use the arrow keys: ← → ↑ ↓\",\n \"paragraph2\": \"\",\n \"note\": \"What? It's not working? Are you stuck with a frozen chart? Like in the video on the next step? Don't worry! I know what's going on...\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"keyPressedTimeMachineReferenceParent\": {\n \"shiftKey\": true,\n \"ctrlKey\": true,\n \"metaKey\": true,\n \"code\": \"ArrowRight\",\n \"key\": \"A\"\n },\n \"repositionAtTimeMachineReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"6643c200-4d20-4e65-9fa6-93f60d7eb16b","savedPayload":{"position":{"x":18139.075566510575,"y":45268.90968991311},"targetPosition":{"x":18032.98404553133,"y":44831.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"welcome-charts-scales-auto-locked\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\"\n}","project":"Superalgos","id":"23a3914b-29e2-40c9-9356-395699ce655c","savedPayload":{"position":{"x":18018.709470784208,"y":45131.25468592242},"targetPosition":{"x":18032.98404553133,"y":44831.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}},{"type":"Tutorial Step","name":"Unlocking Time!","config":"{\n \"subTitle\": \"Unlocking Time!\",\n \"gif\": \"\",\n \"image\": \"time-scale\",\n \"definition\": \"The reason why you can't move is that scales are locked in the automatic mode so that you may easily find the data after your first data mining operation.\",\n \"paragraph1\": \"Setting the ->Time Scale-> in automatic mode forces the whole datetime range of available data into the chart.\",\n \"callOut\": \"To toggle between the various automatic modes and manual mode, hit Shift and make a gentle one-step roll with the wheel of your mouse on top of the time scale box.\",\n \"paragraph2\": \"Once you've taken care of that, you should be able to move freely on the X-axis, that is, the time axis of the chart. See the video on the next step for clarity.\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"365c119b-2ce9-47b9-826e-f942134d6bbc","savedPayload":{"position":{"x":17885.803462038493,"y":45256.844852589114},"targetPosition":{"x":18032.98404553133,"y":44831.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"welcome-charts-scales-unlock-time-scale\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\"\n}","project":"Superalgos","id":"51b4c5ac-f874-4814-9bce-31a0fd7949ee","savedPayload":{"position":{"x":17858.96697265997,"y":45075.96726978262},"targetPosition":{"x":18032.98404553133,"y":44831.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Scaling Time!","config":"{\n \"subTitle\": \"Scaling Time!\",\n \"gif\": \"\",\n \"image\": \"time-scale\",\n \"definition\": \"Did you pick up the trick to scale time from the previous video? If not, go to the previous step and watch attentively!\",\n \"paragraph1\": \"That's it! Scroll it, my friend!\",\n \"callOut\": \"Scrolling the wheel of the mouse on top of the time scale box shrinks and expands time!\",\n \"paragraph2\": \"\",\n \"note\": \"There's one more interesting detail worth noting in the previous video: when the time scale exits the automatic mode, the two tiny green triangles indicating each end of the automatic scale disappear!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"a277338e-20c4-4608-bed1-4aa09c40491d","savedPayload":{"position":{"x":17679.260152897077,"y":45109.76602796679},"targetPosition":{"x":18032.98404553133,"y":44831.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Playing With the Rate Scale!","config":"{\n \"subTitle\": \"Playing with the Rate Scale!\",\n \"gif\": \"\",\n \"image\": \"rate-scale\",\n \"definition\": \"Do I need to tell you how the ->Rate Scale-> works or can you figure it out on your own? Ok... I'll give you a hint...\",\n \"paragraph1\": \"\",\n \"callOut\": \"The rate scale works like the time scale! Check the video coming next for clarity!\",\n \"tip\": \"Play with the semi-automatic scale modes too! You know, when a single tiny triangle remains visible after a few flicks of the mouse wheel.\",\n \"note\": \"There's one more scale to work with. I'll tell you all about it after the video.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"documentationURL\": \"\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"2650860c-ce1a-4a1c-af5c-29742a5ab23c","savedPayload":{"position":{"x":17754.47366562651,"y":44943.093220865616},"targetPosition":{"x":18032.98404553133,"y":44831.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"welcome-charts-scales-unlock-rate-scale\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\"\n}","project":"Superalgos","id":"0ff92017-1558-4587-8619-78fe07025467","savedPayload":{"position":{"x":17585.021680373444,"y":44874.369703654396},"targetPosition":{"x":18032.98404553133,"y":44831.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"No Lock on Time Frames!","config":"{\n \"subTitle\": \"Time Frames Salad?\",\n \"gif\": \"\",\n \"image\": \"time-frame-scale\",\n \"definition\": \"News-flash about the ->Time Frame Scale->: there is no automatic mode!\",\n \"paragraph1\": \"You may freely toggle through all available time frames! In descending order: 24, 8, 6, 4, 3, 2, and 1 hours, and 45, 40, 30, 20, 15, 10, 5, 4, 3, 2, and 1 minutes.\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"important\": \"Beware when you switch the time frame scale to lower time frames! Dropping time frames too fast and without adjusting the time scale may cause too much information to be rendered on-screen at a time, slowing down your computer. How much information density your hardware may handle depends on its CPU and GPU performance.\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"32d93242-2796-4ab5-b182-da48a5f3cdce","savedPayload":{"position":{"x":17738.40543635252,"y":44774.81911085939},"targetPosition":{"x":18032.98404553133,"y":44831.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"welcome-charts-scales-time-frame-scale\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"af446d58-735f-4f02-a22e-60afd853bd93","savedPayload":{"position":{"x":17633.008093636618,"y":44625.392549390184},"targetPosition":{"x":18032.98404553133,"y":44831.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Scales' Best-Kept Secrets","config":"{\n \"subTitle\": \"Scales' Best-Kept Secrets\",\n \"gif\": \"\",\n \"image\": \"balance\",\n \"definition\": \"You just learned the basics about the three scales governing the charts, but there's more!\",\n \"paragraph1\": \"Remember I mentioned that a ->Time Machine-> may feature multiple charts from multiple exchanges and markets? There is no limit as to how you may visualize data in Superalgos, and scales play a major role in more complex configurations than the ones we are exploring at this point.\",\n \"callOut\": \"If you wish to learn all the details, feel free to go through the Scale Boxes section of the documentation.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"https://docs.superalgos.org/suite-scale-boxes.html\" \n}","project":"Superalgos","id":"79f7a1e7-b211-452c-b60f-61653fab957a","savedPayload":{"position":{"x":17815.86383409981,"y":44624.57078072288},"targetPosition":{"x":18032.98404553133,"y":44831.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"7d8a4998-6575-4261-b37a-14c44956c4c8","savedPayload":{"position":{"x":18032.98404553133,"y":44831.594484167515},"targetPosition":{"x":18292.791666666664,"y":44681.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Layers & Managers","config":"{ \n \"title\": \" \",\n \"summary\": \"\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n }","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Switching Gears","config":"{\n \"subTitle\": \"Switching Gears...\",\n \"gif\": \"\",\n \"image\": \"layer-manager\",\n \"definition\": \"Leaving scales behind, let's take a look at how the system makes data available on the charts.\",\n \"paragraph1\": \"Every ->Timeline Chart-> has an associated ->Layer Manager->, which is represented as a drop-down menu listing multiple layers.\",\n \"callOut\": \"To open a layers manager, scroll the wheel of the mouse on its header. Use the wheel of the mouse to scroll through its content too!\",\n \"paragraph2\": \"See the video on the next step for clarity...\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"fdb608ad-eea0-42a7-abaa-adab5dfb7df5","savedPayload":{"position":{"x":17785.112413236533,"y":44700.5905015866},"targetPosition":{"x":18032.98404553133,"y":44531.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"welcome-charts-layer-managers-scroll\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\"\n}","project":"Superalgos","id":"8b9a4e1e-dc3a-4f4e-87c5-579f7cc04f55","savedPayload":{"position":{"x":17736.334797663792,"y":44576.30716402037},"targetPosition":{"x":18032.98404553133,"y":44531.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Layers on Top of Layers","config":"{\n \"subTitle\": \"Layers on Top of Layers\",\n \"gif\": \"\",\n \"image\": \"layer\",\n \"definition\": \"Your data mining operation features bots making data products. Each product is made available on the charts through a ->Layer-> in a layers manager.\",\n \"paragraph1\": \"The first layer manager to the left of this time machine features three layers. Those layers represent the data products that the ->Trading System-> we are going to test later on uses to make trading decisions.\",\n \"callOut\": \"To turn layers on and off, left-click on them!\",\n \"paragraph2\": \"\",\n \"note\": \"Superalgos ships with many more indicator bots, but we are not using them for this tutorial. You will learn about them later!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"bf48b83f-67dc-4dc4-b6d1-23b94bc26b40","savedPayload":{"position":{"x":17746.31220379549,"y":44443.16793184425},"targetPosition":{"x":18032.98404553133,"y":44531.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"welcome-charts-layer-on\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\"\n}","project":"Superalgos","id":"9875e052-3270-49b1-8d63-7c1172fbeeae","savedPayload":{"position":{"x":17813.068483982384,"y":44327.54266283624},"targetPosition":{"x":18032.98404553133,"y":44531.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"The Hard Data","config":"{\n \"subTitle\": \"The Hard Data\",\n \"gif\": \"\",\n \"image\": \"plotter-panel\",\n \"definition\": \"A ->Plotter Panel-> features non-graphical representations of data, mostly in the form of numerical values or text.\",\n \"paragraph1\": \"Each layer may or may not feature one or more associated panels. It's up to the developer of the corresponding ->Indicator Bot-> to define them or not.\",\n \"callOut\": \"To access panels, left-click on the plotter panel icon of the layer of choice.\",\n \"paragraph2\": \"\",\n \"tip\": \"You may move layers managers and plotter panels by left-clicking on their headers and dragging them to any corner of the screen.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"4f20424d-85a0-4dc4-afea-b611107942a5","savedPayload":{"position":{"x":17923.38173822141,"y":44252.332359574255},"targetPosition":{"x":18032.98404553133,"y":44531.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"welcome-charts-layer-panels\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\"\n}","project":"Superalgos","id":"d5ff12ca-f763-4291-846a-7dec3d9b1d4f","savedPayload":{"position":{"x":18055.40307360726,"y":44232.43334501316},"targetPosition":{"x":18032.98404553133,"y":44531.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"14ecf560-9e64-4af8-911e-317cc3cd397a","savedPayload":{"position":{"x":18032.98404553133,"y":44531.594484167515},"targetPosition":{"x":18292.791666666664,"y":44681.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"78e702e2-fad8-4ae4-8341-8deb43c6cab8","savedPayload":{"position":{"x":18292.791666666664,"y":44681.594484167515},"targetPosition":{"x":18592.791666666664,"y":44681.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Setup Overview","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Back in Time","config":"{\n \"subTitle\": \"Back in Time\",\n \"gif\": \"\",\n \"image\": \"time-machine\",\n \"definition\": \"This is the ->Charting Space-> hierarchy setup of the ->Time Machine-> we've been playing with on the charts.\",\n \"paragraph1\": \"\",\n \"callOut\": \"Spend a few minutes exploring these definitions! Take a peek at different node's menus!\",\n \"paragraph2\": \"I hope the structure of nodes is intuitive enough to grasp how powerful the concept of the design space is. You set up a time machine by adding timeline charts nodes and the desired scales. Then set up layer managers and layers referencing the corresponding ->Data Mine Products-> so that the desired data becomes available on a particular layers manager on the charts. It's like the Legoland® of trading charts!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"855e28cc-8651-4ad6-a8fa-bf792f170c57","savedPayload":{"position":{"x":18080.6596323107,"y":44469.46244981155},"targetPosition":{"x":18380.6596323107,"y":44469.46244981155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}},{"type":"Tutorial Step","name":"Visual Scripting on Steroids","config":"{\n \"subTitle\": \"Visual Scripting on Steroids\",\n \"gif\": \"\",\n \"image\": \"indicator-bot\",\n \"definition\": \"Talking about block-building, we are now in the confines of the Masters ->Data Mine->. To your left, the definition of one of the bots you sent mining minutes ago.\",\n \"paragraph1\": \"Pretty much like with the Lego-like definitions of the ->Charting Space->, bots are too defined on a visual environment.\",\n \"callOut\": \"All developers need to code is the actual ->Data Building Procedure->.\",\n \"paragraph2\": \"Everything else is defined on a visual setting: processes with their dependencies, outputs and so on, and products, with their record and dataset definitions, etc.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"2dfc697d-48b0-49bb-8760-3c3a76b56916","savedPayload":{"position":{"x":18168.527597954737,"y":44257.33041545559},"targetPosition":{"x":18380.6596323107,"y":44469.46244981155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Product Definition","name":"Resistances","id":"7a734501-a0fb-4305-803e-7e95d477c513"}}},{"type":"Tutorial Step","name":"Plotters Magic","config":"{\n \"subTitle\": \"Plotters Magic!\",\n \"gif\": \"\",\n \"image\": \"plotter\",\n \"definition\": \"And this is how plotters are built! Plotters create graphical representations of data... from candles, to everything else!\",\n \"paragraph1\": \"Again, visual scripting at its best! Plotters use stylized polygons made out of coordinate points to paint lines and shapes that represent data. Every layer made available on the charts is created with a set of definitions of the sort you are looking at right now. The particular case of the Resistances and Supports bot is a rather complex one, but does showcase the power of the tool!\",\n \"callOut\": \"Find the Resistance Zone 5 ->Polygon-> (to the right), expand it, and crawl your way up the branches for a sneak peek of how this beauty was built!\",\n \"paragraph2\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"086416b2-3bf6-4e35-8e26-7e89dd75cf74","savedPayload":{"position":{"x":18380.6596323107,"y":44169.46244981155},"targetPosition":{"x":18380.6596323107,"y":44469.46244981155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Polygon","name":"Resistance Zone 5","id":"550e31bb-a95f-4fad-bfbb-b42aae7dc5d3"}}}],"tutorialTopics":[],"id":"2e9878b3-ebe5-48bb-8f97-2dfd8f6ac3e0","savedPayload":{"position":{"x":18380.6596323107,"y":44469.46244981155},"targetPosition":{"x":18592.791666666664,"y":44681.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"6d0ab467-3134-4ba8-b37c-b3a9f5ba7638","savedPayload":{"position":{"x":18724.791666666664,"y":44688.594484167515},"targetPosition":{"x":19024.791666666664,"y":44688.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Backtesting","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Network","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Let's Do Some Testing!","config":"{\n \"subTitle\": \"Let's Do Some Testing!\",\n \"gif\": \"\",\n \"image\": \"testing-trading-tasks\",\n \"definition\": \"We are back on the ->Network-> hierarchy to show you one of the core strategy-testing resources built-in the ->Trading Bot->.\",\n \"paragraph1\": \"But before you run your first ->Backtesting Session->, let's go on a quick scouting mission to grasp how the ->Testing Trading Tasks-> is set up.\",\n \"callOut\": \"Expand the testing environment and look at the structure of nodes to the right... Looks Familiar?\",\n \"paragraph2\": \"Indeed! It resembles the ->Data Tasks-> section: tasks are organized by exchange, market, and trading mine, so that you may test any number of strategies optimized for different markets, on multiple exchanges.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"db2ed6a0-ba47-4caa-b2f2-78172f44a002","savedPayload":{"position":{"x":18446.319520975387,"y":44815.103765442924},"targetPosition":{"x":18516.35313013216,"y":44523.39278932362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","id":"8117db0a-e418-4f56-8fe4-fda2ddac1cbb"}}},{"type":"Tutorial Step","name":"Aim High, Trade Big!","config":"{\n \"subTitle\": \"Aim High, Trade Big!\",\n \"gif\": \"\",\n \"image\": \"network-node\",\n \"definition\": \"Picture an army of bots working with multiple exchanges, markets, and strategies, running on a network ala trading farm.\",\n \"paragraph1\": \"That is what the ->Network Node-> is about. What you've seen so far is running on your local machine. But...\",\n \"callOut\": \"Superalgos supports distributing tasks across networks of nodes running the Client to be processed in a coordinated fashion, enabling smart and scalable operations. Any machine running the GUI may control the enterprise!\",\n \"paragraph2\": \"You may set up a network with a few Raspberry Pi, an industrial-grade datacenter—or anything in between.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"ff49ac75-5039-4f1f-9d05-826751b5e4e4","savedPayload":{"position":{"x":18340.017554444417,"y":44766.097887636104},"targetPosition":{"x":18516.35313013216,"y":44523.39278932362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Network Node","name":"My Computer","id":"e452cf65-2b2b-44f2-9e67-bdd9d3c008e4"}}},{"type":"Tutorial Step","name":"Machines Learn Too!","config":"{\n \"subTitle\": \"Machines Learn Too!\",\n \"gif\": \"\",\n \"image\": \"learning-tasks\",\n \"definition\": \"Superalgos is constantly evolving, growing, and getting stronger. I heard this through the grapevine, I mean, on the Superalgos Develop group...\",\n \"paragraph1\": \"With upcoming Beta 8, you will be able to train a new type of Learning Bot running a reinforcement learning algorithm! You will feed the bot with data mined from any source, and the learning process will output a policy file describing how to make decisions. \",\n \"callOut\": \"And—of course—this intelligence will be available for consumption from within conditions and formulas in trading systems!\",\n \"paragraph2\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"9e657088-c8dc-40d4-b730-4d0fdc0e4f38","savedPayload":{"position":{"x":18260.561080825933,"y":44680.142358738405},"targetPosition":{"x":18516.35313013216,"y":44523.39278932362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Learning Tasks","name":"New Learning Tasks","id":"0818dfbe-61ea-40b8-8544-bee25d7f45be"}}},{"type":"Tutorial Step","name":"Civil Works Ahead!","config":"{\n \"subTitle\": \"Civil Works Ahead!\",\n \"gif\": \"\",\n \"image\": \"under-construction\",\n \"definition\": \"Please, do not be surprised to find an under construction sign here and there...\",\n \"paragraph1\": \"As I mentioned earlier, Superalgos is constantly growing, and infrastructure architected for the upcoming version may occasionally be merged to the current version in a service pack, along with necessary fixes and minor improvements.\",\n \"callOut\": \"If you are curious about what is cooking for the upcoming Superalgos release, join the Superalgos Develop Telegram group.\",\n \"paragraph2\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"7f2ff93e-9799-423a-923f-5a2382731241","savedPayload":{"position":{"x":18220.04662795362,"y":44570.323128835684},"targetPosition":{"x":18516.35313013216,"y":44523.39278932362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Enough Digressing!","config":"{\n \"subTitle\": \"Enough Digressing!\",\n \"gif\": \"\",\n \"image\": \"backtesting-session\",\n \"definition\": \"We'll run a ->Backtesting Session-> with a bunch of preconfigured parameters so that you may have a quick glimpse at how simulations work.\",\n \"paragraph1\": \"As you can see to the right, a trading session has a reference to a ->Trading System->. That is, the ->Trading Bot-> will apply the rules of the referenced trading system to make decisions. There's also a reference to a ->Trading Engine->—a subject worth its own chapter, so I'll leave it for later! \",\n \"callOut\": \"The trading session is affected by several parameters. Take a quick look at their configurations selecting Configure on the menu!\",\n \"paragraph2\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"57d77273-09c9-4800-acfd-148ebc9faf21","savedPayload":{"position":{"x":18224.642154012858,"y":44453.359180166844},"targetPosition":{"x":18516.35313013216,"y":44523.39278932362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Backtesting Session","name":"Lightning Strike","id":"ce648922-fef2-44e3-8d76-2bd7ab72a29f"}}},{"type":"Tutorial Step","name":"What? When? How?","config":"{\n \"subTitle\": \"What? When? How?\",\n \"gif\": \"\",\n \"image\": \"trading-parameters\",\n \"definition\": \"->Trading Parameters-> determine key aspects of how the trading session is run. Let's take a quick, superficial look...\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": [\n [\n \"->Session Base Asset->:\",\n \" no capital is assigned in BTC.\"\n ],\n [\n \"->Session Quoted Asset->:\",\n \" 1000 USDT of initial capital.\"\n ],\n [\n \"->Time Range->:\",\n \" we'll test a single day, 2020-09-01.\"\n ],\n [\n \"->Time Frame->:\",\n \" orders are placed/canceled every minute, thus 01-min is appropriate.\"\n ],\n [\n \"->Slippage->:\",\n \"it's irrelevant for this case, as the trading system uses limit orders only.\"\n ],\n [\n \"->Fee Structure->:\",\n \"0.1% is the lower Binance tier.\"\n ]\n ],\n \"paragraph1\": \"The remaining parameters do not affect the simulation. To learn more about these ->Trading Parameters->, take a look at the documentation.\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"https://docs.superalgos.org/suite-parameters.html\"\n}","project":"Superalgos","id":"0f48b2d4-48eb-4041-a9eb-4a257ca34fdd","savedPayload":{"position":{"x":18273.648031819677,"y":44347.057213635875},"targetPosition":{"x":18516.35313013216,"y":44523.39278932362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Ready. Set. Go!","config":"{\n \"subTitle\": \"Ready. Set. Go!\",\n \"gif\": \"\",\n \"image\": \"task\",\n \"definition\": \"Let's get going! This is going to be quick anyway, as we are testing a single day worth of historic data.\",\n \"paragraph1\": \"Running a trading task is quite similar to running a data mining task. The difference lies in that—after running the task—you also need to run the trading session.\",\n \"callOut\": \"Select Run on the ->Task-> menu and then select Run on the ->Backtesting Session-> menu.\",\n \"paragraph2\": \"\",\n \"note\": \"When the progress notice of the ->Trading Process Instance-> get's to the 100% mark, stop the task and click Next.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"eca826de-b47a-4589-80bc-0fcf17b4af98","savedPayload":{"position":{"x":18359.603560717376,"y":44267.60074001739},"targetPosition":{"x":18516.35313013216,"y":44523.39278932362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Task","name":"Lightning Strike","id":"08222935-2499-4a3e-a927-4f5dfbc392df"}}}],"tutorialTopics":[],"id":"e3e4bbab-06a8-4ac2-945d-520d605c7c28","savedPayload":{"position":{"x":18516.35313013216,"y":44523.39278932362},"targetPosition":{"x":18812.6596323107,"y":44476.46244981155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"On the Charts","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Trading System & Orders","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Getting to the Fun Bits","config":"{\n \"subTitle\": \"Getting to the Fun Bits!\",\n \"gif\": \"\",\n \"image\": \"time-machine\",\n \"definition\": \"I took the liberty of bringing you to a particular moment in time, interesting for what comes next.\",\n \"paragraph1\": \"You are about to be exposed to the beauty of simulations. Am I a simulation? Are you? Is this whole thing real?\",\n \"callOut\": \"Look around and decide for yourself!\",\n \"paragraph2\": \"First of all, notice you are now in the 1-minute time frame, thus, these are 1-minute candles. The span of time in your screen is little more than one hour, at the beginning of September 1st 2020.\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"repositionAtTimeMachineReferenceParent\": true,\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-08-31T23:40:00.000Z\",\n \"toDate\": \"2020-09-01T01:00:00.000Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 11400,\n \"maxValue\": 11800\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-min\"\n }\n }\n ],\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"c3854cd2-deb1-42ea-83ae-e2db25c94b8f","savedPayload":{"position":{"x":17955.377104123312,"y":44573.5672571462},"targetPosition":{"x":18118.76881462782,"y":44321.96608676257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}},{"type":"Tutorial Step","name":"What Is It We Are Testing?","config":"{\n \"subTitle\": \"What Is It We Are Testing?\",\n \"gif\": \"\",\n \"image\": \"trading-system\",\n \"definition\": \"We've run a backtest but we haven't discussed the ->Trading System-> we are testing! Let's go through the basics!\",\n \"paragraph1\": \"The trading idea is buy the falling knife and sell the rebound. The strategy places a ->Limit Buy Order-> a distance below the price. If the order is not filled by the next minute, the order is canceled and a new order is placed, potentially at an adjusted rate. If the price drops suddenly, chances are the order will get filled. If that happens, then the strategy tries to sell at a higher price.\",\n \"callOut\": \"\",\n \"paragraph2\": \" \",\n \"note\": \"Let's not discuss the merits of the trading idea but the implementation. This is a demo to show off the capacities of the ->Trading Bot->, not the strategy per se.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"f8027526-427e-4ab8-b1b8-2b3d1662d5d5","savedPayload":{"position":{"x":17838.69468667866,"y":44429.47647162616},"targetPosition":{"x":18118.76881462782,"y":44321.96608676257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Green Silver Bullets","config":"{\n \"subTitle\": \"Green Silver Bullets\",\n \"gif\": \"\",\n \"image\": \"bullet-limit-buy-order\",\n \"definition\": \"Do you see the green bullets with an L in the center? Those are the limit buy orders I mentioned.\",\n \"paragraph1\": \"Notice how an order is placed every minute and is canceled before a new order is placed. Do you recognize the symbol for the order cancellation? It's the smaller, darker bullet with a white horizontal stripe in the middle!\",\n \"callOut\": \"Notice the knife falling at 00:21 AM! The price fell well below the rate of the limit order, therefore, the order was filled! That is what the bigger—filled—green bullet indicates!\",\n \"paragraph2\": \"So... what happens afterward?\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-08-31T23:40:00.000Z\",\n \"toDate\": \"2020-09-01T01:00:00.000Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 11400,\n \"maxValue\": 11800\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-min\"\n }\n }\n ],\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"c1622cba-b4f1-4bdd-adc5-d1f40045617f","savedPayload":{"position":{"x":17828.9910667411,"y":44244.320373231814},"targetPosition":{"x":18118.76881462782,"y":44321.96608676257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}},{"type":"Tutorial Step","name":"Sell It Quick!","config":"{\n \"subTitle\": \"Sell It Quick!\",\n \"gif\": \"\",\n \"image\": \"bullet-limit-sell-order\",\n \"definition\": \"I'm sure you noted there are no more limit buy orders after the order got filled. Instead, sell orders start popping up!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Notice how the first ->Limit Sell Order-> is placed at 00:22 AM, the minute after the buy order filled!\",\n \"paragraph2\": \"It's the same minute Superalgos would have gotten notice from the exchange that the order got filled. The ->Trading Bot-> connects with the exchange and goes through two distinct cycles. In the first ->Cycle->, it finds out the status of existing orders. In the second, it gives new instructions.\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"bc79cac7-40bc-4c9c-b33d-88757ebd89e0","savedPayload":{"position":{"x":17929.972697312867,"y":44088.82229832548},"targetPosition":{"x":18118.76881462782,"y":44321.96608676257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}}],"tutorialTopics":[],"id":"3b4175ca-1cc8-4945-bccc-2b9c895ebbfb","savedPayload":{"position":{"x":18118.76881462782,"y":44321.96608676257},"targetPosition":{"x":18418.35767505419,"y":44306.26529988969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Support","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Shall We Dig Deeper?","config":"{\n \"subTitle\": \"Shall We Dig Deeper?\",\n \"gif\": \"\",\n \"image\": \"layer-resistance\",\n \"definition\": \"The logic behind the placing of buy orders is influenced by the Resistances & Supports ->Indicator Bot-> from the Masters ->Data Mine-> you ran earlier.\",\n \"paragraph1\": \"I took the liberty to turn the Supports layer on to show you this beauty... I hope you don't mind!\",\n \"callOut\": \"The indicator identifies levels (price ranges) on which price is rejected, and keeps a counter of how many rejections occur until the level is breached.\",\n \"paragraph2\": \"The way levels are represented on-screen varies with the number of rejections the level has witnessed, giving us a visual clue of how strong each support level may be. Once a level is breached, it disappears.\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-08-31T23:00:00.000Z\",\n \"toDate\": \"2020-09-01T02:00:00.000Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 11400,\n \"maxValue\": 11800\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-min\"\n }\n },\n {\n \"nodePath\": \"referenceParent.timelineCharts[0].layerManager\",\n \"properties\": {\n \"visibleLayers\": 3,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n }\n },\n {\n \"nodePath\": \"referenceParent.timelineCharts[0].layerManager.botLayers[1].layers[1]\",\n \"properties\": {\n \"status\": \"on\",\n \"showPanels\": false\n }\n }\n ],\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"c2c01aaa-8d57-41de-8eca-30de64007320","savedPayload":{"position":{"x":17955.377104123312,"y":44070.364916378945},"targetPosition":{"x":18254.965964549683,"y":44054.66412950606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}},{"type":"Tutorial Step","name":"Who's Keeping Score?","config":"{\n \"subTitle\": \"Who's Keeping Score?\",\n \"gif\": \"\",\n \"image\": \"layer-resistance\",\n \"definition\": \"Check the table below and see if you can interpret the support levels you see on the charts. \",\n \"paragraph1\": \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n ' + for (let j = 0; j < matrixRow.length; j++) { + HTML = HTML + '' + } + HTML = HTML + '' + } + } + } + } + } + + function contextMenuActivateRightClick() { + const contextMenuClickablDiv = document.getElementById('docs-context-menu-clickeable-div') + const menu = document.getElementById('menu') + const outClick = document.getElementById('docs-context-menu-clickeable-div') + + contextMenuClickablDiv.addEventListener('contextmenu', e => { + e.preventDefault() + if (EDITOR_ON_FOCUS === true) { + UI.projects.superalgos.spaces.docsSpace.exitEditMode() + return + } + if (UI.projects.superalgos.spaces.docsSpace.contextMenu.getSelection() === false) { + /* + The click was in a place where we can not recognize an editable piece. + We will not open the menu in this circunstances. + */ + return + } + + menu.style.top = `${e.clientY}px` + menu.style.left = `${e.clientX}px` + menu.classList.add('show') + + outClick.style.display = "block" + }) + + outClick.addEventListener('click', () => { + if (EDITOR_ON_FOCUS !== true) { + UI.projects.superalgos.spaces.docsSpace.contextMenu.forceOutClick() + } + }) + } + + function enableCollapsibleContent() { + let collapsibleElementsArray = document.getElementsByClassName("docs-collapsible-element") + + for (let i = 0; i < collapsibleElementsArray.length; i++) { + collapsibleElementsArray[i].addEventListener("click", function () { + this.classList.toggle("docs-collapsible-active") + let content = this.nextElementSibling + if (content.style.display === "block") { + content.style.display = "none"; + } else { + content.style.display = "block"; + } + }) + } + } + + function disableCollapsibleContent() { + let collapsibleElementsArray = document.getElementsByClassName("docs-collapsible-element") + + for (let i = 0; i < collapsibleElementsArray.length; i++) { + collapsibleElementsArray[i].removeEventListener("click", function () { }) + } + } + + function exitEditMode() { + + /* We will update the paragraph that was being edited*/ + let editing + if (UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id.indexOf('definition') >= 0) { + editing = "Definition" + } else { + editing = "Paragraph" + } + switch (editing) { + case "Paragraph": { + /* + In this case we are at a regular paragraph. + */ + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + /* + We will detect if the user has created new paragraphs while editing. + For that we will inspect the value of the text area looking for a char + code representing carriedge return. + */ + let paragraphs = [] + let paragraph = '' + let splittedSelectedParagraph = UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id.split('-') + let selectededitableParagraphIndex = Number(splittedSelectedParagraph[2]) + let selectedParagraphStyle = splittedSelectedParagraph[3] + let style = selectedParagraphStyle.charAt(0).toUpperCase() + selectedParagraphStyle.slice(1); + + for (let i = 0; i < UI.projects.superalgos.spaces.docsSpace.textArea.value.length; i++) { + if (UI.projects.superalgos.spaces.docsSpace.textArea.value.charCodeAt(i) === 10 && style !== 'Javascript' && style !== 'Json' && style !== 'Table') { + if (paragraph !== '') { + paragraphs.push(paragraph) + } + paragraph = '' + } else { + paragraph = paragraph + UI.projects.superalgos.spaces.docsSpace.textArea.value[i] + } + } + paragraphs.push(paragraph) + + if (paragraphs.length === 1) { + /* There is no need to add new paragraphs, we just update the one we have. */ + if (paragraphs[0] !== '') { + UI.projects.superalgos.utilities.docs.setTextBasedOnLanguage(docSchemaParagraph, paragraphs[0]) + } else { + /* + Deleting paragarphs is only possible in the default language. + */ + if (UI.projects.superalgos.spaces.docsSpace.language === UI.projects.superalgos.globals.docs.DEFAULT_LANGUAGE) { + UI.projects.superalgos.spaces.docsSpace.documentPage.docsSchemaDocument.updated = true + thisObject.docsSchemaDocument.paragraphs.splice(selectededitableParagraphIndex, 1) + if (thisObject.docsSchemaDocument.paragraphs.length === 0) { + let newParagraph = { + style: 'Text', + text: 'Please contribute to the docs by editing this content.' + } + thisObject.docsSchemaDocument.paragraphs.push(newParagraph) + } + } + } + } else { + /* + Adding paragarphs is only possible in the default language. + */ + if (UI.projects.superalgos.spaces.docsSpace.language === UI.projects.superalgos.globals.docs.DEFAULT_LANGUAGE) { + /* + We will update the one paragraph we have and we will add the rest. + */ + UI.projects.superalgos.utilities.docs.setTextBasedOnLanguage(docSchemaParagraph, paragraphs[0]) + + for (let i = 1; i < paragraphs.length; i++) { + let newParagraph = { + style: style, + text: paragraphs[i] + } + thisObject.docsSchemaDocument.paragraphs.splice(selectededitableParagraphIndex + i, 0, newParagraph) + UI.projects.superalgos.spaces.docsSpace.documentPage.docsSchemaDocument.updated = true + } + } + } + + break + } + case "Definition": { + /* + This means that the definition was being edited. + */ + if (UI.projects.superalgos.spaces.docsSpace.textArea.value !== '') { + UI.projects.superalgos.utilities.docs.setTextBasedOnLanguage(thisObject.docsSchemaDocument.definition, UI.projects.superalgos.spaces.docsSpace.textArea.value) + } + break + } + } + } +} \ No newline at end of file diff --git a/Projects/Superalgos/UI/Spaces/Docs-Space/Footer.js b/Projects/Superalgos/UI/Spaces/Docs-Space/Footer.js new file mode 100644 index 000000000..a568c2074 --- /dev/null +++ b/Projects/Superalgos/UI/Spaces/Docs-Space/Footer.js @@ -0,0 +1,172 @@ +function newSuperalgosDocsFooter() { + let thisObject = { + addFooter: addFooter, + initialize: initialize, + finalize: finalize + } + + return thisObject + + function initialize() { + + } + + function finalize() { + + } + + function addFooter() { + + let HTML = '' + + HTML = HTML + '' // Container Ends + + return HTML + } +} \ No newline at end of file diff --git a/Projects/Superalgos/UI/Spaces/Docs-Space/MainSearchPage.js b/Projects/Superalgos/UI/Spaces/Docs-Space/MainSearchPage.js new file mode 100644 index 000000000..7361caa12 --- /dev/null +++ b/Projects/Superalgos/UI/Spaces/Docs-Space/MainSearchPage.js @@ -0,0 +1,66 @@ +function newSuperalgosDocsMainSearchPage() { + let thisObject = { + addSearchHeader: addSearchHeader, + detectEnterOnSearchBox: detectEnterOnSearchBox, + setFocusOnSearchBox: setFocusOnSearchBox, + render: render, + initialize: initialize, + finalize: finalize + } + + return thisObject + + function initialize() { + + } + + function finalize() { + + } + + function render() { + let HTML = '' + HTML = HTML + '
' + HTML = HTML + '
' + HTML = HTML + '
' + HTML = HTML + '
' + let docsContentDiv = document.getElementById('docs-content-div') + docsContentDiv.innerHTML = HTML + UI.projects.superalgos.spaces.docsSpace.footer.addFooter() + + UI.projects.superalgos.spaces.docsSpace.mainSearchPage.detectEnterOnSearchBox() + UI.projects.superalgos.spaces.docsSpace.mainSearchPage.setFocusOnSearchBox() + } + + function addSearchHeader() { + let HTML = '' + // Logo & Search Box + HTML = HTML + '
' + HTML = HTML + '
' + HTML = HTML + '
' + HTML = HTML + '' + HTML = HTML + '
' + HTML = HTML + '
' + + return HTML + } + + function detectEnterOnSearchBox() { + const element = document.getElementsByClassName("docs-search-input")[0] + if (UI.projects.superalgos.spaces.docsSpace.commandInterface.command !== undefined) { + element.value = UI.projects.superalgos.spaces.docsSpace.commandInterface.command + } + element.addEventListener("keyup", function (event) { + if (event.key === "Enter" || event.keyCode === 13) { + UI.projects.superalgos.spaces.docsSpace.currentBookBeingRendered = undefined + UI.projects.superalgos.spaces.docsSpace.contextMenu.forceOutClick() + UI.projects.superalgos.spaces.docsSpace.commandInterface.command = element.value + UI.projects.superalgos.spaces.docsSpace.commandInterface.detectCommands() + } + }); + } + + function setFocusOnSearchBox() { + const element = document.getElementsByClassName("docs-search-input")[0] + element.focus() + } +} \ No newline at end of file diff --git a/Projects/Superalgos/UI/Spaces/Docs-Space/SearchEngine.js b/Projects/Superalgos/UI/Spaces/Docs-Space/SearchEngine.js new file mode 100644 index 000000000..ed16e6ef0 --- /dev/null +++ b/Projects/Superalgos/UI/Spaces/Docs-Space/SearchEngine.js @@ -0,0 +1,192 @@ +function newSuperalgosDocsSearchEngine() { + let thisObject = { + docsIndex: undefined, + setUpSearchEngine: setUpSearchEngine, + initialize: initialize, + finalize: finalize + } + + return thisObject + + function initialize() { + thisObject.docsIndex = [] + } + + function finalize() { + thisObject.docsIndex = undefined + } + + function setUpSearchEngine() { + thisObject.docsIndex = [] + + for (let j = 0; j < PROJECTS_ARRAY.length; j++) { + let project = PROJECTS_ARRAY[j] + + let documentIndex + + /* Search in Nodes */ + for (let i = 0; i < SCHEMAS_BY_PROJECT.get(project).array.docsNodeSchema.length; i++) { + documentIndex = { + phraseCount: {}, // here we have an object with properties matching it paragraph style, and each property is a map of phrases and their total count. + docsSchemaDocument: SCHEMAS_BY_PROJECT.get(project).array.docsNodeSchema[i], + category: 'Node', + project: project + } + indexDocument(documentIndex) + thisObject.docsIndex.push(documentIndex) + } + /* Search in Concepts */ + for (let i = 0; i < SCHEMAS_BY_PROJECT.get(project).array.docsConceptSchema.length; i++) { + documentIndex = { + phraseCount: {}, // here we have an object with properties matching it paragraph style, and each property is a map of phrases and their total count. + docsSchemaDocument: SCHEMAS_BY_PROJECT.get(project).array.docsConceptSchema[i], + category: 'Concept', + project: project + } + indexDocument(documentIndex) + thisObject.docsIndex.push(documentIndex) + } + /* Search in Topics */ + for (let i = 0; i < SCHEMAS_BY_PROJECT.get(project).array.docsTopicSchema.length; i++) { + documentIndex = { + phraseCount: {}, // here we have an object with properties matching it paragraph style, and each property is a map of phrases and their total count. + docsSchemaDocument: SCHEMAS_BY_PROJECT.get(project).array.docsTopicSchema[i], + category: 'Topic', + project: project + } + indexDocument(documentIndex) + thisObject.docsIndex.push(documentIndex) + } + /* Search in Tutorials */ + for (let i = 0; i < SCHEMAS_BY_PROJECT.get(project).array.docsTutorialSchema.length; i++) { + documentIndex = { + phraseCount: {}, // here we have an object with properties matching it paragraph style, and each property is a map of phrases and their total count. + docsSchemaDocument: SCHEMAS_BY_PROJECT.get(project).array.docsTutorialSchema[i], + category: 'Tutorial', + project: project + } + indexDocument(documentIndex) + thisObject.docsIndex.push(documentIndex) + } + /* Search in Books */ + for (let i = 0; i < SCHEMAS_BY_PROJECT.get(project).array.docsBookSchema.length; i++) { + documentIndex = { + phraseCount: {}, // here we have an object with properties matching it paragraph style, and each property is a map of phrases and their total count. + docsSchemaDocument: SCHEMAS_BY_PROJECT.get(project).array.docsBookSchema[i], + category: 'Book', + project: project + } + indexDocument(documentIndex) + thisObject.docsIndex.push(documentIndex) + } + /* Search in Workspace */ + for (let i = 0; i < SCHEMAS_BY_PROJECT.get(project).array.workspaceSchema.length; i++) { + documentIndex = { + phraseCount: {}, // here we have an object with properties matching it paragraph style, and each property is a map of phrases and their total count. + docsSchemaDocument: SCHEMAS_BY_PROJECT.get(project).array.workspaceSchema[i], + category: 'Workspace', + project: project + } + indexDocument(documentIndex) + thisObject.docsIndex.push(documentIndex) + } + } + + function indexDocument(documentIndex) { + + if (documentIndex.docsSchemaDocument === undefined) { + return + } + + if (documentIndex.docsSchemaDocument.topic !== undefined) { + let paragraph = { + style: 'Topic', + text: documentIndex.docsSchemaDocument.topic + } + indexParagraph(paragraph) + } + if (documentIndex.docsSchemaDocument.tutorial !== undefined) { + let paragraph = { + style: 'Tutorial', + text: documentIndex.docsSchemaDocument.tutorial + } + indexParagraph(paragraph) + } + if (documentIndex.docsSchemaDocument.type !== undefined) { + let paragraph = { + style: 'Type', + text: documentIndex.docsSchemaDocument.type + } + indexParagraph(paragraph) + } + if (documentIndex.docsSchemaDocument.definition !== undefined) { + let paragraph = { + style: 'Definition', + text: documentIndex.docsSchemaDocument.definition.text, + translations: documentIndex.docsSchemaDocument.definition.translations + } + indexParagraph(paragraph) + indexAllTranslations(paragraph) + } + if (documentIndex.docsSchemaDocument.paragraphs !== undefined) { + for (let k = 0; k < documentIndex.docsSchemaDocument.paragraphs.length; k++) { + let paragraph = documentIndex.docsSchemaDocument.paragraphs[k] + indexParagraph(paragraph) + indexAllTranslations(paragraph) + } + } + + function indexAllTranslations(paragraph) { + if (paragraph.translations === undefined) { return } + for (i = 0; i < paragraph.translations.length; i++) { + let translation = paragraph.translations[i] + translation.style = paragraph.style + indexParagraph(translation) + } + } + + function indexParagraph(paragraph) { + if (paragraph.text === undefined) { + return + } + if (paragraph.style === undefined) { + return + } + + let text = paragraph.text.toLowerCase() + let style = paragraph.style.toLowerCase() + let stylePhraseCount = documentIndex.phraseCount[style] + + if (stylePhraseCount === undefined) { + stylePhraseCount = new Map() + documentIndex.phraseCount[style] = stylePhraseCount + } + + text = UI.projects.superalgos.utilities.strings.replaceSpecialCharactersForSpaces(text) + + let splittedText = text.split(' ') + + for (n = 0; n < splittedText.length; n++) { + let phrase = '' + for (let m = 0; m < 10; m++) { + let word = splittedText[n + m] + if (word !== undefined) { + if (m === 0) { + phrase = phrase + word + } else { + phrase = phrase + ' ' + word + } + let key = UI.projects.superalgos.utilities.strings.cleanTextOfCommonWordEndings(phrase) + + let thisPhraseCount = stylePhraseCount.get(key) + if (thisPhraseCount === undefined) { thisPhraseCount = 0 } + thisPhraseCount++ + + stylePhraseCount.set(key, thisPhraseCount) + } + } + } + } + } + } +} \ No newline at end of file diff --git a/Projects/Superalgos/UI/Spaces/Docs-Space/SearchResultsPage.js b/Projects/Superalgos/UI/Spaces/Docs-Space/SearchResultsPage.js new file mode 100644 index 000000000..a227fadbc --- /dev/null +++ b/Projects/Superalgos/UI/Spaces/Docs-Space/SearchResultsPage.js @@ -0,0 +1,309 @@ +function newSuperalgosDocsSearchResultsPage() { + let thisObject = { + render: render, + initialize: initialize, + finalize: finalize + } + + return thisObject + + function initialize() { + + } + + function finalize() { + + } + + function render() { + + let resultsArary = [] + let initialTime = new Date() + buildResultsArray() + buildHTML() + + function buildResultsArray() { + for (let i = 0; i < UI.projects.superalgos.spaces.docsSpace.searchEngine.docsIndex.length; i++) { + let documentIndex = UI.projects.superalgos.spaces.docsSpace.searchEngine.docsIndex[i] + let documentPoints = 0 + + for (const style in documentIndex.phraseCount) { + let key = UI.projects.superalgos.utilities.strings.cleanTextOfCommonWordEndings(UI.projects.superalgos.spaces.docsSpace.commandInterface.command.toLowerCase()) + let thisPhraseCount = documentIndex.phraseCount[style].get(key) + if (thisPhraseCount === undefined) { + thisPhraseCount = 0 + } + + if (documentIndex.docsSchemaDocument.type !== undefined) { + if (key === UI.projects.superalgos.utilities.strings.cleanTextOfCommonWordEndings(documentIndex.docsSchemaDocument.type.toLowerCase())) { + documentPoints = documentPoints + thisPhraseCount * 100 + } + } + if (documentIndex.docsSchemaDocument.topic !== undefined) { + if (key === UI.projects.superalgos.utilities.strings.cleanTextOfCommonWordEndings(documentIndex.docsSchemaDocument.topic.toLowerCase())) { + documentPoints = documentPoints + thisPhraseCount * 200 + } + } + if (documentIndex.docsSchemaDocument.tutorial !== undefined) { + if (key === UI.projects.superalgos.utilities.strings.cleanTextOfCommonWordEndings(documentIndex.docsSchemaDocument.tutorial.toLowerCase())) { + documentPoints = documentPoints + thisPhraseCount * 200 + } + } + + switch (style) { + case 'topic': { + documentPoints = documentPoints + thisPhraseCount * 100 + break + } + case 'tutorial': { + documentPoints = documentPoints + thisPhraseCount * 100 + break + } + case 'type': { + documentPoints = documentPoints + thisPhraseCount * 50 + break + } + case 'definition': { + documentPoints = documentPoints + thisPhraseCount * 9 + break + } + case 'title': { + documentPoints = documentPoints + thisPhraseCount * 10 + break + } + case 'subtitle': { + documentPoints = documentPoints + thisPhraseCount * 8 + break + } + case 'text': { + documentPoints = documentPoints + thisPhraseCount * 2 + break + } + case 'list': { + documentPoints = documentPoints + thisPhraseCount * 2 + break + } + case 'note': { + documentPoints = documentPoints + thisPhraseCount * 4 + break + } + case 'warning': { + documentPoints = documentPoints + thisPhraseCount * 6 + break + } + case 'error': { + documentPoints = documentPoints + thisPhraseCount * 6 + break + } + case 'important': { + documentPoints = documentPoints + thisPhraseCount * 7 + break + } + case 'success': { + documentPoints = documentPoints + thisPhraseCount * 5 + break + } + case 'callout': { + documentPoints = documentPoints + thisPhraseCount * 5 + break + } + case 'summary': { + documentPoints = documentPoints + thisPhraseCount * 6 + break + } + case 'section': { + documentPoints = documentPoints + thisPhraseCount * 8 + break + } + case 'table': { + documentPoints = documentPoints + thisPhraseCount * 3 + break + } + case 'hierarchy': { + documentPoints = documentPoints + thisPhraseCount * 3 + break + } + case 'json': { + documentPoints = documentPoints + thisPhraseCount * 2 + break + } + case 'javascript': { + documentPoints = documentPoints + thisPhraseCount * 2 + break + } + case 'gif': { + documentPoints = documentPoints + thisPhraseCount * 1 + break + } + case 'png': { + documentPoints = documentPoints + thisPhraseCount * 1 + break + } + case 'anchor': { + documentPoints = documentPoints + thisPhraseCount * 0 + break + } + case 'block': { + documentPoints = documentPoints + thisPhraseCount * 0 + break + } + case 'include': { + documentPoints = documentPoints + thisPhraseCount * 0 + break + } + case 'link': { + documentPoints = documentPoints + thisPhraseCount * 1 + break + } + case 'youtube': { + documentPoints = documentPoints + thisPhraseCount * 1 + break + } + case 'chapter': { + documentPoints = documentPoints + thisPhraseCount * 8 + break + } + } + } + + if (documentPoints === 0) { continue } // No matches anywhere + + let result = { + documentIndex: documentIndex, + documentPoints: documentPoints + } + let added = false + + if (resultsArary.length === 0) { + resultsArary.push(result) + added = true + } else { + for (let j = 0; j < resultsArary.length; j++) { + let thisResult = resultsArary[j] + if (result.documentPoints > thisResult.documentPoints) { + resultsArary.splice(j, 0, result) + added = true + break + } + } + } + if (added === false) { + resultsArary.push(result) + } + } + } + + function buildHTML() { + const tabs = ['All', 'Nodes', 'Concepts', 'Topics', 'Tutorials', 'Books', 'Workspace'] + let HTML = '' + HTML = HTML + '
' + HTML = HTML + UI.projects.superalgos.spaces.docsSpace.mainSearchPage.addSearchHeader() + + // Tabs + HTML = HTML + '
' + let checked = ' checked=""' + for (let i = 0; i < tabs.length; i++) { + let tab = tabs[i] + HTML = HTML + '' + checked = '' + } + + // Results + HTML = HTML + '
' + + let totalResults = new Map() + for (let i = 0; i < tabs.length; i++) { + let tab = tabs[i] + HTML = HTML + '
' + HTML = HTML + '

' + tab.toUpperCase() + '_TOTAL_RESULTS results (' + tab.toUpperCase() + '_TOTAL_SECONDS seconds)

' + + let resultCounter = 0 + for (let j = 0; j < resultsArary.length; j++) { + let result = resultsArary[j] + + if (tab !== 'All') { + if (tab.indexOf(result.documentIndex.category) < 0) { + continue + } + } + resultCounter++ + + /* Lets see if we can show a path */ + let path = '' + if (result.documentIndex.docsSchemaDocument.nodeNameTypePath !== undefined) { + let linkLabel + for (let i = 0; i < result.documentIndex.docsSchemaDocument.nodeNameTypePath.length; i++) { + let pathStep = result.documentIndex.docsSchemaDocument.nodeNameTypePath[i] + let nodeName = pathStep[0] + let nodeType = pathStep[1] + let nodeProject = pathStep[2] + let nodeId = pathStep[3] + let link = ' > ' + if (nodeName === 'New ' + nodeType || nodeName === 'My ' + nodeType || nodeName === undefined) { + nodeName = '' + } + if (nodeName === '') { + linkLabel = nodeType + } else { + linkLabel = nodeType + ' (' + nodeName + ')' + } + path = path + link + linkLabel + '' + } + } + + HTML = HTML + '
' + HTML = HTML + '

' + result.documentIndex.project + ' > ' + result.documentIndex.category + path + '

' + + let mainLink = '' + + switch (result.documentIndex.category) { + case 'Topic': { + mainLink = result.documentIndex.docsSchemaDocument.topic + ' - Page ' + result.documentIndex.docsSchemaDocument.pageNumber + ' - ' + result.documentIndex.docsSchemaDocument.type + break + } + case 'Tutorial': { + mainLink = result.documentIndex.docsSchemaDocument.tutorial + ' - Page ' + result.documentIndex.docsSchemaDocument.pageNumber + ' - ' + result.documentIndex.docsSchemaDocument.type + break + } + default: { + mainLink = result.documentIndex.docsSchemaDocument.type + } + } + HTML = HTML + '

' + mainLink + '

' + + if (result.documentIndex.docsSchemaDocument.definition !== undefined) { + HTML = HTML + '

' + UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(result.documentIndex.docsSchemaDocument.definition) + '

' + } else { + HTML = HTML + '

' + 'No definition available.' + '

' + } + HTML = HTML + '
' + } + HTML = HTML + '
' + totalResults.set(tab, resultCounter) + } + + // End Content + HTML = HTML + '
' + HTML = HTML + '
' + + // End Section + HTML = HTML + '
' + + // Total Seconds Calculation + let finalTime = new Date() + let totalSeconds = ((finalTime.valueOf() - initialTime.valueOf()) / 1000).toFixed(3) + for (let i = 0; i < tabs.length; i++) { + let tab = tabs[i] + HTML = HTML.replace(tab.toUpperCase() + '_TOTAL_SECONDS', totalSeconds) + resultCounter = totalResults.get(tab) + HTML = HTML.replace(tab.toUpperCase() + '_TOTAL_RESULTS', resultCounter) + } + + let docsContentDiv = document.getElementById('docs-content-div') + docsContentDiv.innerHTML = HTML + UI.projects.superalgos.spaces.docsSpace.footer.addFooter() + + UI.projects.superalgos.spaces.docsSpace.mainSearchPage.detectEnterOnSearchBox() + UI.projects.superalgos.spaces.docsSpace.mainSearchPage.setFocusOnSearchBox() + } + } +} \ No newline at end of file diff --git a/Projects/Superalgos/UI/Spaces/Floating-Space/ConfigEditor.js b/Projects/Superalgos/UI/Spaces/Floating-Space/ConfigEditor.js index 9fc7d1281..bc7c8280b 100644 --- a/Projects/Superalgos/UI/Spaces/Floating-Space/ConfigEditor.js +++ b/Projects/Superalgos/UI/Spaces/Floating-Space/ConfigEditor.js @@ -73,7 +73,7 @@ function newConfigEditor() { thisObject.payload.uiObject.uiObjectTitle.exitEditMode() let textArea = document.getElementById('textArea') - textArea.value = thisObject.payload.node.config + textArea.value = JSON.stringify(JSON.parse(thisObject.payload.node.config), undefined, 4) textArea.style = 'resize: none;' + ' border: none;' + ' outline: none;' + diff --git a/Projects/Superalgos/UI/Spaces/Floating-Space/FloatingSpace.js b/Projects/Superalgos/UI/Spaces/Floating-Space/FloatingSpace.js index d6dd7e284..6a786dca9 100644 --- a/Projects/Superalgos/UI/Spaces/Floating-Space/FloatingSpace.js +++ b/Projects/Superalgos/UI/Spaces/Floating-Space/FloatingSpace.js @@ -92,7 +92,7 @@ function newSuperalgosFloatingSpace() { distancePercentage: 100, radiusPercentage: 100, massPercentage: 100, - animationSteps: 2, + animationSteps: 2, menuItem: { widthPercentage: 100, heightPercentage: 100, @@ -360,12 +360,15 @@ function newSuperalgosFloatingSpace() { return displaceVector } - function positionAtNode(node) { + function positionAtNode(node, xOffset, yOffset) { + if (xOffset === undefined) { xOffset = 0 } + if (yOffset === undefined) { yOffset = 0 } + let position = thisObject.container.frame.frameThisPoint(node.payload.position) let displaceVector = { - x: browserCanvas.width / 2 - position.x, - y: (COCKPIT_SPACE_POSITION + COCKPIT_SPACE_HEIGHT) + (browserCanvas.height - (COCKPIT_SPACE_POSITION + COCKPIT_SPACE_HEIGHT)) / 2 - position.y + x: browserCanvas.width / 2 - position.x + xOffset, + y: (COCKPIT_SPACE_POSITION + COCKPIT_SPACE_HEIGHT) + (browserCanvas.height - (COCKPIT_SPACE_POSITION + COCKPIT_SPACE_HEIGHT)) / 2 - position.y + yOffset } thisObject.container.displace(displaceVector) @@ -519,7 +522,7 @@ function newSuperalgosFloatingSpace() { } if (configSettings.node.menuItem.heightPercentage !== undefined) { thisObject.settings.node.menuItem.heightPercentage = configSettings.node.menuItem.heightPercentage - } + } if (configSettings.node.menuItem.radiusPercentage !== undefined) { thisObject.settings.node.menuItem.radiusPercentage = configSettings.node.menuItem.radiusPercentage } diff --git a/Projects/Superalgos/UI/Spaces/Floating-Space/UiObject.js b/Projects/Superalgos/UI/Spaces/Floating-Space/UiObject.js index af2da374c..e2838ac67 100644 --- a/Projects/Superalgos/UI/Spaces/Floating-Space/UiObject.js +++ b/Projects/Superalgos/UI/Spaces/Floating-Space/UiObject.js @@ -421,10 +421,10 @@ function newUiObject() { let nearbyFloatingObjects = thisObject.payload.floatingObject.nearbyFloatingObjects let compatibleTypes - let nodeDefinition = getNodeDefinition(thisObject.payload.node) - if (nodeDefinition !== undefined) { - if (nodeDefinition.chainAttachesTo !== undefined) { - compatibleTypes = nodeDefinition.chainAttachesTo.compatibleTypes + let schemaDocument = getSchemaDocument(thisObject.payload.node) + if (schemaDocument !== undefined) { + if (schemaDocument.attachingRules !== undefined) { + compatibleTypes = schemaDocument.attachingRules.compatibleTypes } else { return } @@ -443,15 +443,15 @@ function newUiObject() { let nearbyNode = floatingObject.payload.node if (compatibleTypes.indexOf('->' + nearbyNode.type + '->') >= 0) { /* Discard App Schema defined objects with busy coonection ports */ - nodeDefinition = getNodeDefinition(thisObject.payload.node) - if (nodeDefinition !== undefined) { + schemaDocument = getSchemaDocument(thisObject.payload.node) + if (schemaDocument !== undefined) { let mustContinue = false - let parentNodeDefinition = getNodeDefinition(nearbyNode) - if (parentNodeDefinition !== undefined) { - if (parentNodeDefinition.properties !== undefined) { - for (let j = 0; j < parentNodeDefinition.properties.length; j++) { - let property = parentNodeDefinition.properties[j] - if (nodeDefinition.propertyNameAtParent === property.name) { + let parentSchemaDocument = getSchemaDocument(nearbyNode) + if (parentSchemaDocument !== undefined) { + if (parentSchemaDocument.childrenNodesProperties !== undefined) { + for (let j = 0; j < parentSchemaDocument.childrenNodesProperties.length; j++) { + let property = parentSchemaDocument.childrenNodesProperties[j] + if (schemaDocument.propertyNameAtParent === property.name) { switch (property.type) { case 'node': { if (nearbyNode[property.name] !== undefined) { @@ -563,10 +563,10 @@ function newUiObject() { let nearbyFloatingObjects = thisObject.payload.floatingObject.nearbyFloatingObjects let compatibleTypes - let nodeDefinition = getNodeDefinition(thisObject.payload.node) - if (nodeDefinition !== undefined) { - if (nodeDefinition.referenceAttachesTo !== undefined) { - compatibleTypes = nodeDefinition.referenceAttachesTo.compatibleTypes + let schemaDocument = getSchemaDocument(thisObject.payload.node) + if (schemaDocument !== undefined) { + if (schemaDocument.referencingRules !== undefined) { + compatibleTypes = schemaDocument.referencingRules.compatibleTypes } else { return } @@ -584,8 +584,8 @@ function newUiObject() { let floatingObject = nearby[1] let nearbyNode = floatingObject.payload.node if (compatibleTypes.indexOf('->' + nearbyNode.type + '->') >= 0 || compatibleTypes === "->*Any Node*->") { - if (nodeDefinition.referenceAttachesTo.incompatibleTypes !== undefined) { - if (nodeDefinition.referenceAttachesTo.incompatibleTypes.indexOf('->' + nearbyNode.type + '->') >= 0) { + if (schemaDocument.referencingRules.incompatibleTypes !== undefined) { + if (schemaDocument.referencingRules.incompatibleTypes.indexOf('->' + nearbyNode.type + '->') >= 0) { continue } } @@ -735,11 +735,11 @@ function newUiObject() { } function childrenRunningPhysics() { - let nodeDefinition = getNodeDefinition(thisObject.payload.node) - if (nodeDefinition.properties === undefined) { return } + let schemaDocument = getSchemaDocument(thisObject.payload.node) + if (schemaDocument.childrenNodesProperties === undefined) { return } let monitorChildrenRunning = false - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] if (property.monitorChildrenRunning === true) { let children = thisObject.payload.node[property.name] if (children === undefined) { continue } @@ -1165,7 +1165,7 @@ function newUiObject() { function iconPhysics() { icon = UI.projects.superalgos.spaces.designSpace.getIconByProjectAndType(thisObject.payload.node.project, thisObject.payload.node.type) - let nodeDefinition = getNodeDefinition(thisObject.payload.node) + let schemaDocument = getSchemaDocument(thisObject.payload.node) /* If we want this object to have an alternative icon (defined on a list of possible icons) but @@ -1180,19 +1180,19 @@ function newUiObject() { Finally, if the node we are pointing to does not have a config or does not have a list of alternativeIcons, we will just use that node's icon for the current node. */ - if (nodeDefinition.alternativeIcons !== undefined) { + if (schemaDocument.alternativeIcons !== undefined) { let nodeToUse = thisObject.payload.node - if (nodeDefinition.alternativeIcons === 'Use Parent') { + if (schemaDocument.alternativeIcons === 'Use Parent') { if (thisObject.payload.node.payload.parentNode !== undefined) { nodeToUse = thisObject.payload.node.payload.parentNode } } - if (nodeDefinition.alternativeIcons === 'Use Reference Parent') { + if (schemaDocument.alternativeIcons === 'Use Reference Parent') { if (thisObject.payload.node.payload.referenceParent !== undefined) { nodeToUse = thisObject.payload.node.payload.referenceParent } } - if (nodeDefinition.alternativeIcons === 'Use Reference Grandparent') { + if (schemaDocument.alternativeIcons === 'Use Reference Grandparent') { if (thisObject.payload.node.payload.referenceParent !== undefined) { if (thisObject.payload.node.payload.referenceParent.payload !== undefined) { if (thisObject.payload.node.payload.referenceParent.payload.referenceParent !== undefined) { @@ -1201,7 +1201,7 @@ function newUiObject() { } } } - if (nodeDefinition.alternativeIcons === 'Use Reference Parent Parent') { + if (schemaDocument.alternativeIcons === 'Use Reference Parent Parent') { if (thisObject.payload.node.payload.referenceParent !== undefined) { if (thisObject.payload.node.payload.referenceParent.payload !== undefined) { if (thisObject.payload.node.payload.referenceParent.payload.parentNode !== undefined) { @@ -1210,15 +1210,15 @@ function newUiObject() { } } } - nodeDefinition = getNodeDefinition(nodeToUse) + schemaDocument = getSchemaDocument(nodeToUse) let config = nodeToUse.config - if (config !== undefined && (Array.isArray(nodeDefinition.alternativeIcons) === true)) { + if (config !== undefined && (Array.isArray(schemaDocument.alternativeIcons) === true)) { try { config = JSON.parse(config) let alternativeIcon let iconName - for (let i = 0; i < nodeDefinition.alternativeIcons.length; i++) { - alternativeIcon = nodeDefinition.alternativeIcons[i] + for (let i = 0; i < schemaDocument.alternativeIcons.length; i++) { + alternativeIcon = schemaDocument.alternativeIcons[i] if (alternativeIcon.codeName === config.codeName) { iconName = alternativeIcon.iconName } @@ -1231,8 +1231,8 @@ function newUiObject() { nodeToUse.payload.uiObject.setErrorMessage('The config is not well formatted as a JSON object.') } } else { - if (nodeDefinition.icon !== undefined) { - let newIcon = UI.projects.superalgos.spaces.designSpace.getIconByProjectAndName(nodeToUse.project, nodeDefinition.icon) + if (schemaDocument.icon !== undefined) { + let newIcon = UI.projects.superalgos.spaces.designSpace.getIconByProjectAndName(nodeToUse.project, schemaDocument.icon) if (newIcon !== undefined) { icon = newIcon } @@ -1621,9 +1621,9 @@ function newUiObject() { if (label !== undefined) { if (UI.projects.superalgos.spaces.floatingSpace.inMapMode === true) { - let nodeDefinition = getNodeDefinition(thisObject.payload.node) - if (nodeDefinition !== undefined) { - if (nodeDefinition.isHierarchyHead !== true && nodeDefinition.isProjectHead !== true) { + let schemaDocument = getSchemaDocument(thisObject.payload.node) + if (schemaDocument !== undefined) { + if (schemaDocument.isHierarchyHead !== true && schemaDocument.isProjectHead !== true) { return } } @@ -2062,9 +2062,9 @@ function newUiObject() { browserCanvasContext.fill() - let nodeDefinition = getNodeDefinition(thisObject.payload.node) - if (nodeDefinition === undefined) { - console.log('Node ' + thisObject.payload.node + ' without Node Definition at APP SCHEMA.') + let schemaDocument = getSchemaDocument(thisObject.payload.node) + if (schemaDocument === undefined) { + console.log('Node ' + thisObject.payload.node + ' without Schema Document at APP SCHEMA.') return } @@ -2081,7 +2081,7 @@ function newUiObject() { thisObject.hasError !== true && thisObject.WarningError !== true && thisObject.hasInfo !== true && - nodeDefinition.isHierarchyHead !== true && + schemaDocument.isHierarchyHead !== true && thisObject.circularProgressBar === undefined ) { browserCanvasContext.beginPath() @@ -2104,7 +2104,7 @@ function newUiObject() { } /* Hierarchy Head Ring */ - if (nodeDefinition.isHierarchyHead === true) { + if (schemaDocument.isHierarchyHead === true) { VISIBLE_RADIUS = thisObject.payload.floatingObject.container.frame.radius if (UI.projects.superalgos.spaces.floatingSpace.inMapMode === true) { VISIBLE_RADIUS = UI.projects.superalgos.spaces.floatingSpace.transformRadiusToMap(VISIBLE_RADIUS) @@ -2133,7 +2133,7 @@ function newUiObject() { } /* Project Head Ring */ - if (nodeDefinition.isProjectHead === true) { + if (schemaDocument.isProjectHead === true) { VISIBLE_RADIUS = thisObject.payload.floatingObject.container.frame.radius if (UI.projects.superalgos.spaces.floatingSpace.inMapMode === true) { VISIBLE_RADIUS = UI.projects.superalgos.spaces.floatingSpace.transformRadiusToMap(VISIBLE_RADIUS) @@ -2328,11 +2328,11 @@ function newUiObject() { if (isRunningAtBackend === true || isReadyToReferenceAttach === true || isReadyToChainAttach === true) { additionalImageSize = 20 } let totalImageSize = additionalImageSize + thisObject.payload.floatingObject.currentImageSize - let nodeDefinition = getNodeDefinition(thisObject.payload.node) - if (nodeDefinition === undefined) { return } + let schemaDocument = getSchemaDocument(thisObject.payload.node) + if (schemaDocument === undefined) { return } if (UI.projects.superalgos.spaces.floatingSpace.inMapMode === true) { - if (nodeDefinition.isHierarchyHead === true || nodeDefinition.isProjectHead === true) { + if (schemaDocument.isHierarchyHead === true || schemaDocument.isProjectHead === true) { totalImageSize = 50 } else { totalImageSize = 25 diff --git a/Projects/Superalgos/UI/Spaces/Floating-Space/UiObjectConstructor.js b/Projects/Superalgos/UI/Spaces/Floating-Space/UiObjectConstructor.js index 7180845ba..fc1f9cb29 100644 --- a/Projects/Superalgos/UI/Spaces/Floating-Space/UiObjectConstructor.js +++ b/Projects/Superalgos/UI/Spaces/Floating-Space/UiObjectConstructor.js @@ -74,10 +74,10 @@ function newUiObjectConstructor() { */ if (userAddingNew === true) { - let definition = getNodeDefinition(payload.parentNode) - if (definition.properties !== undefined) { - for (let i = 0; i < definition.properties.length; i++) { - let property = definition.properties[i] + let definition = getSchemaDocument(payload.parentNode) + if (definition.childrenNodesProperties !== undefined) { + for (let i = 0; i < definition.childrenNodesProperties.length; i++) { + let property = definition.childrenNodesProperties[i] if (property.childType === payload.node.type) { if (property.type === 'array') { let parentNode = payload.parentNode @@ -94,7 +94,7 @@ function newUiObjectConstructor() { } if (floatingObject.angleToParent === undefined) { for (let j = i - 1; j >= 0; j--) { - let siblingProperty = definition.properties[j] + let siblingProperty = definition.childrenNodesProperties[j] let parentNode = payload.parentNode let parentNodeProperty = parentNode[siblingProperty.name] if (parentNodeProperty !== undefined) { @@ -119,8 +119,8 @@ function newUiObjectConstructor() { } } } - for (let j = i + 1; j < definition.properties.length; j++) { - let siblingProperty = definition.properties[j] + for (let j = i + 1; j < definition.childrenNodesProperties.length; j++) { + let siblingProperty = definition.childrenNodesProperties[j] let parentNode = payload.parentNode let parentNodeProperty = parentNode[siblingProperty.name] if (parentNodeProperty !== undefined) { @@ -174,7 +174,7 @@ function newUiObjectConstructor() { uiObject.isVisibleFunction = UI.projects.superalgos.spaces.floatingSpace.isThisPointVisible let menuItemsInitialValues = getMenuItemsInitialValues(uiObject, floatingObject, payload) - let schemaNode = getNodeDefinition(payload.node) + let schemaNode = getSchemaDocument(payload.node) if (schemaNode === undefined) { console.log(payload.node.type + ' node found at App Schema. This node will not be created. ') return @@ -401,46 +401,46 @@ function newUiObjectConstructor() { function getMenuItemsInitialValues(uiObject, floatingObject, payload) { let menuItemsInitialValues = [] - let nodeDefinition = getNodeDefinition(payload.node) - if (nodeDefinition !== undefined) { - if (nodeDefinition.editors !== undefined) { - if (nodeDefinition.editors.config === true) { + let schemaDocument = getSchemaDocument(payload.node) + if (schemaDocument !== undefined) { + if (schemaDocument.editors !== undefined) { + if (schemaDocument.editors.config === true) { uiObject.configEditor = newConfigEditor() uiObject.configEditor.isVisibleFunction = uiObject.isVisibleFunction uiObject.configEditor.container.connectToParent(uiObject.container, false, false, true, true, false, false, false, false) uiObject.configEditor.initialize() } - if (nodeDefinition.editors.code === true) { + if (schemaDocument.editors.code === true) { uiObject.codeEditor = newCodeEditor() uiObject.codeEditor.isVisibleFunction = uiObject.isVisibleFunction uiObject.codeEditor.container.connectToParent(uiObject.container, false, false, true, true, false, false, false, false) uiObject.codeEditor.initialize() } - if (nodeDefinition.editors.formula === true) { + if (schemaDocument.editors.formula === true) { uiObject.formulaEditor = newFormulaEditor() uiObject.formulaEditor.isVisibleFunction = uiObject.isVisibleFunction uiObject.formulaEditor.container.connectToParent(uiObject.container, false, false, true, true, false, false, false, false) uiObject.formulaEditor.initialize() } - if (nodeDefinition.editors.condition === true) { + if (schemaDocument.editors.condition === true) { uiObject.conditionEditor = newConditionEditor() uiObject.conditionEditor.isVisibleFunction = uiObject.isVisibleFunction uiObject.conditionEditor.container.connectToParent(uiObject.container, false, false, false, true, false, false, false, false) uiObject.conditionEditor.initialize() } } - if (nodeDefinition.addLeftIcons === true) { - addLeftIcons(menuItemsInitialValues, floatingObject, nodeDefinition.isPersonalData) + if (schemaDocument.addLeftIcons === true) { + addLeftIcons(menuItemsInitialValues, floatingObject, schemaDocument.isPersonalData) } - if (nodeDefinition.isPinned === true) { + if (schemaDocument.isPinned === true) { floatingObject.isPinned = true } - if (nodeDefinition.positionLocked === true) { + if (schemaDocument.positionLocked === true) { floatingObject.positionLocked = true } - for (let i = 0; i < nodeDefinition.menuItems.length; i++) { - let menutItemDefinition = nodeDefinition.menuItems[i] + for (let i = 0; i < schemaDocument.menuItems.length; i++) { + let menutItemDefinition = schemaDocument.menuItems[i] let newMenuItem = JSON.parse(JSON.stringify(menutItemDefinition)) /* We need to reference the real function based on its name */ @@ -490,19 +490,19 @@ function newUiObjectConstructor() { const INITIAL_RADIOUS = 70 const INITIAL_IMAGE_SIZE = 80 * 1.2 - let nodeDefinition = getNodeDefinition(payload.node) - if (nodeDefinition === undefined) { + let schemaDocument = getSchemaDocument(payload.node) + if (schemaDocument === undefined) { console.log('[WARN] Set up of the object ' + payload.node.name + ' of type ' + payload.node.type + ' can not be completed becasue its definition can not be found at the APP SCHEMA.') return } - if (nodeDefinition.isProjectHead === true) { + if (schemaDocument.isProjectHead === true) { level_0() floatingObject.angleToParent = ANGLE_TO_PARENT.RANGE_360 return } - switch (nodeDefinition.level) { + switch (schemaDocument.level) { case 0: { level_0() break diff --git a/Projects/Superalgos/UI/Spaces/Floating-Space/UiObjectTitle.js b/Projects/Superalgos/UI/Spaces/Floating-Space/UiObjectTitle.js index 7e9dba320..8c1678d9a 100644 --- a/Projects/Superalgos/UI/Spaces/Floating-Space/UiObjectTitle.js +++ b/Projects/Superalgos/UI/Spaces/Floating-Space/UiObjectTitle.js @@ -51,9 +51,9 @@ function newUiObjectTitle() { thisObject.payload = payload thisObject.allwaysVisible = false // Default value - let nodeDefinition = getNodeDefinition(thisObject.payload.node) - if (nodeDefinition !== undefined) { - if (nodeDefinition.isTitleAllwaysVisible === true) { + let schemaDocument = getSchemaDocument(thisObject.payload.node) + if (schemaDocument !== undefined) { + if (schemaDocument.isTitleAllwaysVisible === true) { thisObject.allwaysVisible = true } } @@ -100,13 +100,13 @@ function newUiObjectTitle() { if (thisObject.payload.title === undefined) { return } /* It is possible to override the default title by setting the APP SCHEMA property 'title' */ - let nodeDefinition = getNodeDefinition(thisObject.payload.node) - if (nodeDefinition.title !== undefined) { + let schemaDocument = getSchemaDocument(thisObject.payload.node) + if (schemaDocument.title !== undefined) { thisObject.payload.title = '' thisObject.payload.node.name = '' let separator = '' - for (let i = 0; i < nodeDefinition.title.length; i++) { - let titleReference = nodeDefinition.title[i] + for (let i = 0; i < schemaDocument.title.length; i++) { + let titleReference = schemaDocument.title[i] switch (titleReference) { case 'Use Parent': { let nodeToUse = thisObject.payload.parentNode @@ -230,8 +230,8 @@ function newUiObjectTitle() { } function onMouseClick(event) { - let nodeDefinition = getNodeDefinition(thisObject.payload.node) - if (nodeDefinition.title !== undefined) { return } + let schemaDocument = getSchemaDocument(thisObject.payload.node) + if (schemaDocument.title !== undefined) { return } let checkPoint = { x: 0, @@ -340,9 +340,9 @@ function newUiObjectTitle() { labelPoint.x = labelPoint.x - getTextWidth(label) / 2, labelPoint.y = labelPoint.y - 35 - let nodeDefinition = getNodeDefinition(thisObject.payload.node) - if (nodeDefinition !== undefined) { - if (nodeDefinition.isHierarchyHead !== true && nodeDefinition.isProjectHead !== true) { + let schemaDocument = getSchemaDocument(thisObject.payload.node) + if (schemaDocument !== undefined) { + if (schemaDocument.isHierarchyHead !== true && schemaDocument.isProjectHead !== true) { return } } diff --git a/Projects/Superalgos/UI/Spaces/Panel-Space/Layer.js b/Projects/Superalgos/UI/Spaces/Panel-Space/Layer.js index 560ba0890..5a75e38e8 100644 --- a/Projects/Superalgos/UI/Spaces/Panel-Space/Layer.js +++ b/Projects/Superalgos/UI/Spaces/Panel-Space/Layer.js @@ -179,10 +179,10 @@ function newLayer() { 'Sensor Bot->Indicator Bot->Trading Bot->Learning Bot->' + 'Data Mine->Trading Mine->Learning Mine->' + 'Dataset Definition->' + - 'Record Definition->Record Property->Formula->' + - 'Data Building Procedure->Procedure Loop->Javascript Code->Procedure Initialization->Javascript Code->' + - 'Calculations Procedure->Procedure Loop->Javascript Code->Procedure Initialization->Javascript Code->' + - 'Plotter Module->Plotter->' + + 'Record Definition->Record Property->Record Formula->' + + 'Data Building Procedure->Procedure Loop->Procedure Javascript Code->Procedure Initialization->Procedure Javascript Code->' + + 'Calculations Procedure->Procedure Loop->Procedure Javascript Code->Procedure Initialization->Procedure Javascript Code->' + + 'Plotter Module->Plotter->Plotter Module Javascript Code->' + 'Shapes->' + 'Chart Points->Point->Point Formula->' + 'Polygon->Polygon Condition->Polygon Body->Style->Style Condition->Style->' + @@ -190,7 +190,7 @@ function newLayer() { 'Polygon Vertex->Point->' + 'Image->Image Condition->Image Position->Point->' + 'Text->Text Condition->Text Position->Point->Text Formula->Text Style->' + - 'Plotter Panel->Javascript Code->Panel Data->Data Formula->Text Style->' + + 'Plotter Panel->Plotter Panel Javascript Code->Panel Data->Data Formula->Text Style->' + 'Nodes Highlights->Nodes Values->Nodes Errors->Nodes Warnings->Nodes Infos->Nodes Status->Nodes Progress->Nodes Running->Nodes Announcements->Record Values->' thisObject.definition = UI.projects.superalgos.functionLibraries.protocolNode.getProtocolNode(thisObject.payload.node, false, true, true, false, false, lightingPath) @@ -303,12 +303,12 @@ function newLayer() { thisObject.quotedAssetIcon = getIcon(thisObject.quotedAsset) function getIcon(node) { - let nodeDefinition = getNodeDefinition(node) + let schemaDocument = getSchemaDocument(node) let iconName let icon - if (nodeDefinition.alternativeIcons !== undefined) { - for (let i = 0; i < nodeDefinition.alternativeIcons.length; i++) { - let alternativeIcon = nodeDefinition.alternativeIcons[i] + if (schemaDocument.alternativeIcons !== undefined) { + for (let i = 0; i < schemaDocument.alternativeIcons.length; i++) { + let alternativeIcon = schemaDocument.alternativeIcons[i] if (alternativeIcon.codeName === node.config.codeName) { iconName = alternativeIcon.iconName } @@ -317,7 +317,7 @@ function newLayer() { if (iconName !== undefined) { icon = UI.projects.superalgos.spaces.designSpace.getIconByProjectAndName('Superalgos', iconName) } else { - icon = UI.projects.superalgos.spaces.designSpace.getIconByProjectAndName('Superalgos', nodeDefinition.icon) + icon = UI.projects.superalgos.spaces.designSpace.getIconByProjectAndName('Superalgos', schemaDocument.icon) } return icon } @@ -661,18 +661,18 @@ function newLayer() { UI.projects.superalgos.utilities.drawPrint.roundedCornersBackground(params) let parentLabel1FontSize = UI.projects.superalgos.utilities.nodeConfig.loadPropertyFromNodeConfig(thisObject.payload.parentNode.payload, 'label1FontSize') - let parentLabel2FontSize = UI.projects.superalgos.utilities.nodeConfig.loadPropertyFromNodeConfig(thisObject.payload.parentNode.payload, 'label2FontSize') + let parentlabelTwoFontSize = UI.projects.superalgos.utilities.nodeConfig.loadPropertyFromNodeConfig(thisObject.payload.parentNode.payload, 'labelTwoFontSize') let parentLabel3FontSize = UI.projects.superalgos.utilities.nodeConfig.loadPropertyFromNodeConfig(thisObject.payload.parentNode.payload, 'label3FontSize') let label1FontSize = UI.projects.superalgos.utilities.nodeConfig.loadPropertyFromNodeConfig(thisObject.payload, 'label1FontSize') - let label2FontSize = UI.projects.superalgos.utilities.nodeConfig.loadPropertyFromNodeConfig(thisObject.payload, 'label2FontSize') + let labelTwoFontSize = UI.projects.superalgos.utilities.nodeConfig.loadPropertyFromNodeConfig(thisObject.payload, 'labelTwoFontSize') let label3FontSize = UI.projects.superalgos.utilities.nodeConfig.loadPropertyFromNodeConfig(thisObject.payload, 'label3FontSize') if (parentLabel1FontSize !== undefined) { label1FontSize = parentLabel1FontSize } - if (parentLabel2FontSize !== undefined) { - label2FontSize = parentLabel2FontSize + if (parentlabelTwoFontSize !== undefined) { + labelTwoFontSize = parentlabelTwoFontSize } if (parentLabel3FontSize !== undefined) { label3FontSize = parentLabel3FontSize @@ -686,8 +686,8 @@ function newLayer() { } } - if (label2FontSize === undefined) { - label2FontSize = 10 + if (labelTwoFontSize === undefined) { + labelTwoFontSize = 10 } if (label3FontSize === undefined) { @@ -695,7 +695,7 @@ function newLayer() { } UI.projects.superalgos.utilities.drawPrint.drawLabel(label1, 1 / 2, 5.2 / 10, -5, 0, label1FontSize, thisObject.container) - UI.projects.superalgos.utilities.drawPrint.drawLabel(label2, 1 / 2, 8.2 / 10, -5, 0, label2FontSize, thisObject.container) + UI.projects.superalgos.utilities.drawPrint.drawLabel(label2, 1 / 2, 8.2 / 10, -5, 0, labelTwoFontSize, thisObject.container) UI.projects.superalgos.utilities.drawPrint.drawLabel(label3, 1 / 2, 9.5 / 10, -5, 0, label3FontSize, thisObject.container) drawProgressBar(marketFileProgressBar, 2, -45 + 18) diff --git a/Projects/Superalgos/UI/Spaces/Panel-Space/PlotterPanel.js b/Projects/Superalgos/UI/Spaces/Panel-Space/PlotterPanel.js index 9d8b54ddc..f22274743 100644 --- a/Projects/Superalgos/UI/Spaces/Panel-Space/PlotterPanel.js +++ b/Projects/Superalgos/UI/Spaces/Panel-Space/PlotterPanel.js @@ -103,12 +103,12 @@ function newPlotterPanel() { let record = currentRecord /* First we execute code if provided. */ - if (panelNode.javascriptCode !== undefined) { + if (panelNode.plotterPanelJavascriptCode !== undefined) { try { - eval(panelNode.javascriptCode.code) + eval(panelNode.plotterPanelJavascriptCode.code) } catch (err) { if (ERROR_LOG === true) { logger.write('[ERROR] plotCurrentRecordData -> err = ' + err.stack) } - if (ERROR_LOG === true) { logger.write('[ERROR] plotCurrentRecordData -> javascriptCode.code = ' + panelNode.javascriptCode.code) } + if (ERROR_LOG === true) { logger.write('[ERROR] plotCurrentRecordData -> plotterPanelJavascriptCode.code = ' + panelNode.plotterPanelJavascriptCode.code) } } } diff --git a/Projects/Superalgos/UI/Spaces/Tutorial-Space/TutorialSpace.js b/Projects/Superalgos/UI/Spaces/Tutorial-Space/TutorialSpace.js index 719526435..86a486c5d 100644 --- a/Projects/Superalgos/UI/Spaces/Tutorial-Space/TutorialSpace.js +++ b/Projects/Superalgos/UI/Spaces/Tutorial-Space/TutorialSpace.js @@ -20,6 +20,9 @@ function newSuperalgosTutorialSpace() { finalize: finalize } + let TUTORIAL_NAME + let PAGE_NUMBER + let isInitialized = false thisObject.container = newContainer() @@ -47,9 +50,11 @@ function newSuperalgosTutorialSpace() { let htmlImage = document.createElement("IMG") let currentImageName = 'Never Set' let newImageName = 'Never Set' + let newImageProject = 'Never Set' let currentConfig let newConfig - let currentDocumentationURL + let currentDocument + let newDocument let resumeModeActivated // In this mode, we skip all the node which status is 'Done' let lastExecutedAction = '' let actionCounter = 0 @@ -228,7 +233,7 @@ function newSuperalgosTutorialSpace() { if (currentGifName === newGifName) { return } currentGifName = newGifName - htmlGif.src = 'Gifs/' + currentNode.project + '/' + currentGifName + '.gif' + htmlGif.src = currentGifName htmlGif.width = "400" htmlGif.height = "580" } @@ -239,14 +244,11 @@ function newSuperalgosTutorialSpace() { tutorialImageDiv.appendChild(htmlImage) } + if (newImageName === undefined) { return } if (currentImageName === newImageName) { return } currentImageName = newImageName - let webParam - if (currentImageName.indexOf('/') >= 0) { - webParam = 'Icons/' + currentImageName + '.png' - } else { - webParam = 'Icons/' + 'Superalgos' + '/' + currentImageName + '.png' - } + let webParam = 'Icons/' + newImageProject + '/' + newImageName + '.png' + htmlImage.src = webParam htmlImage.width = "100" htmlImage.height = "100" @@ -255,27 +257,47 @@ function newSuperalgosTutorialSpace() { function checkDocumentation() { if (currentNode === undefined) { return } let config = JSON.parse(currentNode.config) - let newDocumentationURL = config.documentationURL + documentationCounter++ if (documentationCounter === 10) { - if (newDocumentationURL === undefined) { + + /* Deprecated Property Documentation URL */ + if (config.documentationURL !== undefined && config.documentationURL !== "") { + console.log('Trying to navigate to: ' + config.documentationURL + ' at ' + config.docs.type) + } + + if (config.controlDocs === undefined) { /* The doc panel will remain as it is, and the user will be free to open or close it at will. */ return } - if (newDocumentationURL === "") { + if (config.controlDocs.panel === "Open") { /* - This forces the tutorial to close the documentation panel and to keep it closed. + This forces the tutorial to open the documentation panel. */ - UI.projects.superalgos.spaces.docSpace.sidePanelTab.close() - return + UI.projects.superalgos.spaces.docsSpace.sidePanelTab.open() + } + if (config.controlDocs.panel === "Close") { + /* + This forces the tutorial to close the documentation panel. + */ + UI.projects.superalgos.spaces.docsSpace.sidePanelTab.close() + } + if ( + config.controlDocs.page !== undefined && + config.controlDocs.page.project !== undefined && + config.controlDocs.page.category !== undefined && + config.controlDocs.page.type !== undefined && + config.controlDocs.page.project !== '' && + config.controlDocs.page.category !== '' && + config.controlDocs.page.type !== '' + ) { + /* + This produces the Docs to laod the specified page. + */ + UI.projects.superalgos.spaces.docsSpace.openSpaceAreaAndNavigateTo(config.controlDocs.page.project, config.controlDocs.page.category, config.controlDocs.page.type, config.controlDocs.page.anchor) } - UI.projects.superalgos.spaces.docSpace.sidePanelTab.open() - if (newDocumentationURL === currentDocumentationURL) { return } - - currentDocumentationURL = newDocumentationURL - UI.projects.superalgos.spaces.docSpace.navigateTo(currentDocumentationURL) } } @@ -658,8 +680,12 @@ function newSuperalgosTutorialSpace() { } catch (err) { return } + let position = nodeConfig.position + if (UI.projects.superalgos.spaces.docsSpace.isVisible === true) { + position = 'Left' + } - switch (nodeConfig.position) { + switch (position) { case 'Left': { tutorialPosition = { x: MARGIN, @@ -797,7 +823,7 @@ function newSuperalgosTutorialSpace() { } function resetDocumentation() { - currentDocumentationURL = '' + currentDocumentationPage = '' documentationCounter = 0 } @@ -858,6 +884,10 @@ function newSuperalgosTutorialSpace() { } function playTutorial(node) { + + PAGE_NUMBER = 0 + TUTORIAL_NAME = node.name + navigationStack = [] node.payload.uiObject.isPlaying = true tutorialRootNode = node @@ -1103,123 +1133,217 @@ function newSuperalgosTutorialSpace() { } function buildHTML() { + let nodeConfig = JSON.parse(currentNode.config) + + if (nodeConfig.docs === undefined) { + /* The current node is not referencing any page at the Docs */ + return + } + + let schemaDocument = SCHEMAS_BY_PROJECT.get(project).map.docsTutorialSchema.get(nodeConfig.docs.type) newConfig = currentNode.config - if (newConfig === currentConfig) { return } + newDocument = JSON.stringify(schemaDocument) + ' - ' + UI.projects.superalgos.spaces.docsSpace.language + + if (newConfig === currentConfig && newDocument === currentDocument) { return } currentConfig = newConfig + currentDocument = newDocument - let nodeConfig = JSON.parse(currentNode.config) - let html = '' - if (nodeConfig.title !== undefined && nodeConfig.title !== '') { - html = html + '

' + nodeConfig.title + '

' - } - html = html + '
' - if (nodeConfig.summary !== undefined && nodeConfig.summary !== '') { - html = html + '
' + addToolTips(nodeConfig.summary) + '
' - } - if (nodeConfig.subTitle !== undefined && nodeConfig.subTitle !== '') { - html = html + '

' + nodeConfig.subTitle + '

' - } - if (nodeConfig.gif !== undefined && nodeConfig.gif !== '') { - html = html + '
' - newGifName = nodeConfig.gif - } + let title - if (nodeConfig.definition !== undefined && nodeConfig.definition !== '') { - html = html + '
Rejections  <\\/th>\\r\\n   Graphics  <\\/th>\\r\\n   Comments<\\/th>\\r\\n <\\/tr>\\r\\n <\\/thead>\\r\\n
1<\\/td>\\r\\n <\\/span><\\/td>\\r\\n   A faint, grey dotted line.<\\/td>\\r\\n <\\/tr>\\r\\n
2<\\/td>\\r\\n  <\\/span><\\/td>\\r\\n   A grey block.<\\/td>\\r\\n <\\/tr>\\r\\n
3<\\/td>\\r\\n  <\\/span><\\/td>\\r\\n   A turquoise block.<\\/td>\\r\\n <\\/tr>\\r\\n
4<\\/td>\\r\\n  <\\/span><\\/td>\\r\\n   A yellow block.<\\/td>\\r\\n <\\/tr>\\r\\n
5<\\/td>\\r\\n  <\\/span><\\/td>\\r\\n   A green block.<\\/td>\\r\\n <\\/tr>\\r\\n
6<\\/td>\\r\\n  <\\/span><\\/td>\\r\\n   An orange block.<\\/td>\\r\\n <\\/tr>\\r\\n
7 or more<\\/td>\\r\\n  <\\/span><\\/td>\\r\\n   A purple block.<\\/td>\\r\\n <\\/tr>\\r\\n <\\/tbody>\\r\\n <\\/table>\",\n \"paragraph2\": \"
For a new support level with one rejection, the dotted line marks the exact level on which price bounced. For further rejections, the blocks mark the rate ranges on which subsequent rejections are counted.\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"1b10ba0b-25e4-40e6-9298-fd0e060218c7","savedPayload":{"position":{"x":17987.664007293173,"y":43918.4669795842},"targetPosition":{"x":18254.965964549683,"y":44054.66412950606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"The Power of Data Mining","config":"{\n \"subTitle\": \"The Power of Data Mining\",\n \"gif\": \"\",\n \"image\": \"layer-resistance\",\n \"definition\": \"Why do levels jump up and down? There's something I haven't told you yet, 'cos I'm afraid it may blow your mind!\",\n \"paragraph1\": \"\",\n \"callOut\": \"The bot keeps track of all support levels alive since the start of the dataset, but only shows you the five levels closest to the current price.\",\n \"paragraph2\": \"Keeping track of information for the whole span of the dataset—which may count years—is the true value of data mining, and the kind of things you wouldn't be able to calculate with a function, on the fly. The ->Plotter-> associated with the ->Indicator Bot-> dynamically shows the five levels of support closest to the price because those are the relevant levels for the context.\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}\n","project":"Superalgos","id":"8019055c-dcbd-4f0c-a1be-715cf6512a09","savedPayload":{"position":{"x":18091.574254045176,"y":43803.062959122435},"targetPosition":{"x":18254.965964549683,"y":44054.66412950606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Find the Logic Challenge","config":"{\n \"subTitle\": \"Find the Logic Challenge!\",\n \"gif\": \"\",\n \"image\": \"layer-resistance\",\n \"definition\": \"Now that you know how the indicator works, can you find the relationship between buy orders and support levels?\",\n \"paragraph1\": \"\",\n \"callOut\": \"Take some time to explore the period of time tested looking for clues on how support levels determine the rate of the ->Limit Buy Order->!\",\n \"paragraph2\": \"It's fun noticing how new levels form when price changes direction, and how an established level changes color when price bounces-off it.\",\n \"tip\": \"But the trick lies in counting levels above the order!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"1b6dc587-016b-4c65-9f8e-3e3e59ddc9b7","savedPayload":{"position":{"x":18239.2651776768,"y":43755.07526907969},"targetPosition":{"x":18254.965964549683,"y":44054.66412950606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Here's How It Works","config":"{\n \"subTitle\": \"Here's How it Works...\",\n \"gif\": \"\",\n \"image\": \"layer-resistance\",\n \"definition\": \"Got it? The ->Trading Bot-> places the ->Limit Buy Order-> at the fifth support level! What's the logic behind this?\",\n \"paragraph1\": \"It's sort of arbitrary, but the strategy defines a falling knife as the price action capable of breaching at least four support levels and getting to the fifth during a single minute. Statistically, such events—in this time frame—produce more bounces than continuations. They may be caused by large market orders that temporarily increase the bid/ask spread in the order book.\",\n \"callOut\": \"Take a minute to verify that buy orders are placed at the fifth support level!\",\n \"paragraph2\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"f9e682fd-3906-4dd4-ad44-9c4af0d8a632","savedPayload":{"position":{"x":18391.163114471547,"y":43787.36217224955},"targetPosition":{"x":18254.965964549683,"y":44054.66412950606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"dbb272f3-27d5-4938-96a4-e5ee1b87bff2","savedPayload":{"position":{"x":18254.965964549683,"y":44054.66412950606},"targetPosition":{"x":18418.35767505419,"y":44306.26529988969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"5e3deefe-2224-4b65-be4d-0b7ab311bd48","savedPayload":{"position":{"x":18545.35767505419,"y":44340.26529988969},"targetPosition":{"x":18812.6596323107,"y":44476.46244981155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Trading System","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Come Meet Someone","config":"{\n \"subTitle\": \"Come Meet Someone!\",\n \"gif\": \"\",\n \"image\": \"execution-algorithm\",\n \"definition\": \"Sorry for dragging you away from the charts, but I wanted to introduce you to someone: the guy on the right is the one placing the buy orders!\",\n \"paragraph1\": \"We are inside the Lightning Strike ->Trading System->, within the definitions of the ->Open Stage->. In this stage, the ->Execution Algorithm-> takes over after the decision to take a position has already been made on the ->Trigger Stage->. I know you still don't know what a ->Situation-> or a ->Condition-> are, but I'd still like you to do something...\",\n \"callOut\": \"Take a few minutes to explore the nodes below the execution algorithm, check the formulas and conditions, and see what you can make of them!\",\n \"paragraph2\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"395d6137-6954-48d0-89d7-a41226d6c667","savedPayload":{"position":{"x":18244.873621962466,"y":44186.45970568216},"targetPosition":{"x":18544.462482388837,"y":44202.16049255504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Execution Algorithm","name":"Buy Orders","id":"e635ed9f-3c8c-45bf-8be0-e3836fa0844e"}}},{"type":"Tutorial Step","name":"Formulations","config":"{\n \"subTitle\": \"Formulations...\",\n \"gif\": \"\",\n \"image\": \"formula\",\n \"definition\": \"What you just went through is the definition of the ->Limit Buy Order-> that is placed and cancelled every minute until it gets filled.\",\n \"paragraph1\": \"This is the node that determines the rate of the limit order. Remember what we discussed earlier about placing the order at the rate of the fifth support level?\",\n \"callOut\": \"Go to the ->Formula-> attached to the ->Order Rate-> node and click Edit on the menu.\",\n \"paragraph2\": \"Well... that is how it's done! As you can see, the syntax is virtually self-explanatory! It involves defining the time frame, the indicator, and the indicator property involved.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"f8c57877-6059-4c16-8dbe-18571d22d8ca","savedPayload":{"position":{"x":18292.86131200521,"y":44038.76878205053},"targetPosition":{"x":18544.462482388837,"y":44202.16049255504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Order Rate","name":"New Order Rate","id":"3ff96eb6-5965-4f82-98d4-cd23bf8d0369"}}},{"type":"Tutorial Step","name":"The Seller","config":"{\n \"subTitle\": \"The Seller\",\n \"gif\": \"\",\n \"image\": \"execution-algorithm\",\n \"definition\": \"We are now in the ->Close Stage->. I thought it would be interesting to tell you more about execution algorithms, with another example.\",\n \"paragraph1\": \"An ->Execution Algorithm-> may handle multiple orders, of all types. In this case, multiple limit sell orders are defined.\",\n \"callOut\": \"Select Configure on the menu of the algorithm and reflect on the implications of this definition!\",\n \"paragraph2\": \"Both the open stage, where you define how to take a position, and the close stage, where you define how to exit, may feature multiple execution algorithms, each of them handling a certain amount of capital.\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"29fe5e28-80f8-4ca0-902b-5b8de961aeca","savedPayload":{"position":{"x":18408.265332466974,"y":43934.85853529853},"targetPosition":{"x":18544.462482388837,"y":44202.16049255504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Execution Algorithm","name":"Race to Break Even","id":"0fe764ce-3312-4964-9841-b55500e3f80a"}}},{"type":"Tutorial Step","name":"Simplifying Complexity","config":"{\n \"subTitle\": \"Simplifying Complexity\",\n \"gif\": \"\",\n \"image\": \"trading-system\",\n \"definition\": \"We haven't discussed trading systems as a framework, but a feature relevant to this explanation is that they may handle multiple strategies.\",\n \"paragraph1\": \"Each strategy features an ->Open Stage-> and a ->Close Stage->, each with its own execution definitions. Each stage may feature multiple execution algorithms, and each algorithm may handle multiple orders.\",\n \"callOut\": \"Do you see the pattern? We call it granularity. \",\n \"paragraph2\": \"Superalgos breaks down each issue to the minimum expression, and integrates the solutions. This is how it allows you to design, deploy, and manage both simple and the most complex trading setups you may envision.\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"4b24efc4-d836-4a22-9791-8f34fed6f6d2","savedPayload":{"position":{"x":18560.16326926172,"y":43902.57163212867},"targetPosition":{"x":18544.462482388837,"y":44202.16049255504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Strategy","name":"My Trading Strategy","id":"711041eb-3055-4611-b64f-570363bae854"}}},{"type":"Tutorial Step","name":"Let's Take a Peek","config":"{\n \"subTitle\": \"Let's Take a Peek...\",\n \"gif\": \"\",\n \"image\": \"limit-sell-order\",\n \"definition\": \"Before we leave the trading system, let's take a quick look into one of these orders and see what may be of interest.\",\n \"paragraph1\": \"\",\n \"callOut\": \"Expand Profit 0.6 and check the formula of the ->Order Rate-> node.\",\n \"paragraph2\": \"Let's focus on this misterious bit of the formula:
tradingEngine.current.position.exitTargetRate.value

The formula is fetching the value of the ->Exit Target Rate->, defined elsewhere. Let's not focus and what this target rate may be. Instead, let's take a look at the mechanism by which a ->Trading System-> may have access to information processed by the ->Trading Bot->. \",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"66730e1d-6c7d-4af9-a053-b77d3c0c80a3","savedPayload":{"position":{"x":18707.854192893345,"y":43950.559322171415},"targetPosition":{"x":18544.462482388837,"y":44202.16049255504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Limit Sell Order","name":"Profit 0.6","id":"b80fe127-d306-4fc1-a3a8-95bf88de046f"}}}],"tutorialTopics":[],"id":"4a22546a-13ad-4d99-8309-9583c44d331a","savedPayload":{"position":{"x":18676.462482388837,"y":44209.16049255504},"targetPosition":{"x":18812.6596323107,"y":44476.46244981155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Trading Engine","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Find the Node Challenge","config":"{\n \"subTitle\": \"Find the Node Challenge\",\n \"gif\": \"\",\n \"image\": \"trading-engine\",\n \"definition\": \"The ->Trading Engine-> administers the complexity entailed in automated trading by making information accessible to users and trading systems.\",\n \"paragraph1\": \"Rember my comments about granularity? Remember how the formula on the trading system fetched the value of the exit target rate? Here's a quick reminder:

tradingEngine.current.position.exitTargetRate.value\",\n \"callOut\": \"What if I told you that this string holds the path to that piece of information in the data structure of the ->Trading Engine-> hierarchy? Can you find the ->Exit Target Rate-> node? Expand the node and follow the breadcrumb trail!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"1da79160-ab19-4a67-ad10-383158a5330c","savedPayload":{"position":{"x":18485.989349188396,"y":43975.310599682474},"targetPosition":{"x":18732.58997182277,"y":44146.15594763301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Engine","name":"Low-Frequency","id":"eb20f622-71bf-4479-a574-d2320e1d4bd1"}}},{"type":"Tutorial Step","name":"Found It?","config":"{\n \"subTitle\": \"Found It?\",\n \"gif\": \"\",\n \"image\": \"copy-path\",\n \"definition\": \"This is how the ->Trading Engine-> makes every bit of information processed by the ->Trading Bot-> available to trading systems.\",\n \"paragraph1\": \"There is a path to every piece of data, and by knowing the path, you may access the data from within any ->Formula-> or ->Condition-> in a ->Trading Strategy->. Let's run a quick check:\",\n \"callOut\": \"Open the menu of the ->Exit Target Rate-> node to the left, and click Copy Node Path. Now, open a text editor and paste what you copied.\",\n \"paragraph2\": \"Ok! This is how formulas and conditions access the information... How about humans?\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"ff08fcfb-7c33-4d70-9260-f960f4e1dd12","savedPayload":{"position":{"x":18584.537506403467,"y":43885.2336076863},"targetPosition":{"x":18732.58997182277,"y":44146.15594763301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Entry Target Rate","name":"New Entry Target Rate","id":"71b3e7d9-80d0-422d-999e-99549f5ab59d"}}},{"type":"Tutorial Step","name":"The Coolest Trick!","config":"{\n \"subTitle\": \"The Coolest Trick!\",\n \"gif\": \"\",\n \"image\": \"exit-target-rate\",\n \"definition\": \"Humans may access this information by using a cool trick that makes the charting space interact with the design space!\",\n \"bulletListIntro\": \"To use this trick, I just did the following:\",\n \"bulletArray\": [\n [\n \"Split the screen in half\",\n \" pulling the slider up so that we can see both spaces at the same time.\"\n ],\n [\n \"Turn on the Current Position layer\",\n \" on the Trading Engine layers manager. I chose this layer because it corresponds to this section of the hierarchy... tradingEngine.current.position... remember ?\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"Now, slide the mouse pointer across the candles on which the position is taken and see what happens on the nodes to the left...\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"repositionAtTimeMachineReferenceParent\": true,\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-08-31T23:40:00.000Z\",\n \"toDate\": \"2020-09-01T01:00:00.000Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 11000,\n \"maxValue\": 11800\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-min\"\n }\n },\n {\n \"nodePath\": \"referenceParent.timelineCharts[1].layerManager\",\n \"properties\": {\n \"visibleLayers\": 3,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n }\n },\n {\n \"nodePath\": \"referenceParent.timelineCharts[1].layerManager.botLayers[0].layerFolders[0].layerFolders[2].layers[0]\",\n \"properties\": {\n \"status\": \"on\"\n }\n }\n ],\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"2cc2befe-1858-4c96-a45c-52e3dbfa7384","savedPayload":{"position":{"x":18712.409270139156,"y":43846.835485119074},"targetPosition":{"x":18732.58997182277,"y":44146.15594763301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"welcome-backtesting-trading-engine-visualization-01\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"0276fff4-493c-42c8-8d06-267a23646783","savedPayload":{"position":{"x":18844.278069343352,"y":43867.7214510773},"targetPosition":{"x":18732.58997182277,"y":44146.15594763301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Exit Target Rate","name":"New Exit Target Rate","id":"bc637b55-04bd-4701-9683-78593832cb09"}}},{"type":"Tutorial Step","name":"Feedback Loops","config":"{\n \"subTitle\": \"Feedback Loops\",\n \"gif\": \"\",\n \"image\": \"limit-buy-order\",\n \"definition\": \"Lets take a look at another example to let the notion of the constant feedback loop sink in before we move on!\",\n \"paragraph1\": \"This is the data structure where information about limit buy orders is kept.\",\n \"callOut\": \"Go to the Trading Engine layers manager on the charts (the second counting from the left). Scroll down and turn on the Limit Buy Orders layer. Now swipe the mouse pointer over a few of the buy orders and check the effect on the nodes on the design space.\",\n \"paragraph2\": \"Can you envision the implications of having this level of control over the data managed by the trading bot?\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"f5c6cc94-ab96-4729-aa90-12c904c58066","savedPayload":{"position":{"x":18954.025671068972,"y":43943.75478385339},"targetPosition":{"x":18732.58997182277,"y":44146.15594763301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Rate","name":"New Rate","id":"1c848292-d64a-456f-b1b9-b9e4a387436e"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"welcome-backtesting-trading-engine-visualization-02\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"3169f747-4d89-463d-8307-aa7f7b4a4a62","savedPayload":{"position":{"x":19019.91521682825,"y":44059.876149403404},"targetPosition":{"x":18732.58997182277,"y":44146.15594763301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"9c34436a-f531-443a-bcd5-d69e352da251","savedPayload":{"position":{"x":18859.58997182277,"y":44180.15594763301},"targetPosition":{"x":18812.6596323107,"y":44476.46244981155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"9cf3ea6e-9edb-44ed-81ff-8a00886ce731","savedPayload":{"position":{"x":18812.6596323107,"y":44476.46244981155},"targetPosition":{"x":19024.791666666664,"y":44688.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Live Trading","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Set Up & Run","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Enough Chit Chat","config":"{\n \"subTitle\": \"Enough Chit Chat!\",\n \"gif\": \"\",\n \"image\": \"production-trading-tasks\",\n \"definition\": \"Ok, my friend... It's time for the real deal! Are you ready for a little ->Live Trading Session->?\",\n \"bulletListIntro\": \"I'll help you with the three main requirements:\",\n \"bulletArray\": [\n [\n \"Check your parameters,\",\n \" in particular, decide how much capital you wish to assign to the session.\"\n ],\n [\n \"Set up an ->Exchange Account Key->\",\n \" so that the app may access your account at the exchange.\"\n ],\n [\n \"Ensure a live data feed\",\n \", that is, the data mining operation with the indicators required by the ->Trading System-> must be running and up to date.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"To proceed with a ->Live Trading Session->, click Next.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"8dfa9fdb-3591-4dbe-a865-0ef760ce9742","savedPayload":{"position":{"x":18583.248196169603,"y":44199.514543685014},"targetPosition":{"x":18874.791666666664,"y":44128.78686303218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Production Trading Tasks","name":"New Production Trading Tasks","id":"673caa5f-511d-4688-9305-e5f0f0f780cd"}}},{"type":"Tutorial Step","name":"Warning!","config":"{\n \"warning\": \"Superalgos is a piece of computer software. Like with any software, errors may occur at any point, including errors that may cause you to lose money. You are responsible for taking all precautions you may deem appropriate before trading live. Even if you take all possible precautionary measures, things may still go wrong and errors may occur. By using this software to trade live despite the warnings, you acknowledge that you are aware of the inherent risks in trading and in using software for that purpose. The Superalgos Project offers the software AS IS, with no explicit or implied warranties of any kind. The project, the software, the superalgos.org website, and this tutorial do not offer financial advice. Although the strategies shipping with the system may be fully functional, Superalgos does not make any express or implied recommendation as to how you should use them. We share strategies for educational purposes only. Trade under your responsibility and at your own risk. The use of the software is subject to the terms of the LICENSE.\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"1ad5babb-40d3-48f4-a784-5c2ea0e6b171","savedPayload":{"position":{"x":18575.131464911763,"y":44114.51228828506},"targetPosition":{"x":18874.791666666664,"y":44128.78686303218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Let's Start With 100 Bucks!","config":"{\n \"subTitle\": \"Let's Start With 100 Bucks!\",\n \"gif\": \"\",\n \"image\": \"session-quoted-asset\",\n \"definition\": \"The default initialBalance is set to 100 USDT, well above the minimum transaction size supported by Binance.\",\n \"paragraph1\": \"The initialBalance is defined in the configuration of the ->Session Quoted Asset->. Check it out and decide for yourself if you wish to change it!\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"tip\": \"Binance defines the minimum transaction size in BTC, so the requirement in USDT varies a lot with time. I set the amount to 100 USDT just to ensure you don't run into errors. You are free to try with a smaller amount. You will get errors if it's too small but may try again as many times as needed. Just stop the task, change the initialBalance in the Session Quoted Asset, and try again!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"04b09505-d781-4d1f-8686-57eb3a0cf95c","savedPayload":{"position":{"x":18591.291421052265,"y":44030.66647403696},"targetPosition":{"x":18874.791666666664,"y":44128.78686303218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Session Quoted Asset","name":"","id":"f6cd46c1-66df-422c-82d4-02ac8e37f689"}}},{"type":"Tutorial Step","name":"Check your spot balance!","config":"{\n \"subTitle\": \"Check Your Spot Balance!\",\n \"gif\": \"\",\n \"image\": \"binance\",\n \"definition\": \"Before you run the ->Live Trading Session->, make sure you have enough spot USDT balance at the exchange!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Take a look at your balance at the exchange and arrange for enough USDT for the session!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"important\": \"The ->Trading Bot-> will place one limit order for the initialBalance, and cancel it the next minute in case it is not filled, as explained earlier.\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"cde31bb3-92f1-4b5b-8d2f-5a5065d19bef","savedPayload":{"position":{"x":18630.418881051562,"y":43954.769790160826},"targetPosition":{"x":18874.791666666664,"y":44128.78686303218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Enjoy the Outdoors!","config":"{\n \"subTitle\": \"Enjoy the Outdoors!\",\n \"gif\": \"\",\n \"image\": \"crypto-ecosystem\",\n \"definition\": \"Remember the ->Crypto Ecosystem-> hierarchy? We made a quick stop here before starting data mining!\",\n \"paragraph1\": \"This is where you configure which exchanges and markets you work with, and also your accounts with those exchanges, your API keys, your assets, and so on.\",\n \"callOut\": \"Why don't you take a little walk and I'll catch up with you in the next step?\",\n \"paragraph2\": \"\",\n \"tip\": \"Just look around... enjoy the views! I know your first visit was a bit abrupt!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"ff963975-de14-44e0-a552-44b29644a938","savedPayload":{"position":{"x":18689.34397080048,"y":43892.970934609344},"targetPosition":{"x":18874.791666666664,"y":44128.78686303218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","id":"7217b56c-e854-4c06-8b8a-d5d3c05a153d"}}},{"type":"Tutorial Step","name":"Your Keys, Your Coins!","config":"{\n \"subTitle\": \"Your Keys, Your Coins!\",\n \"gif\": \"\",\n \"image\": \"exchange-account-key\",\n \"definition\": \"This is where you configure your ->Exchange Account Key-> for the Lightning Strike ->Live Trading Session->.\",\n \"paragraph1\": \"\",\n \"callOut\": \"Open the configuration and carefully enter the API name or label and the API secret key.\",\n \"paragraph2\": \"Delete the default text string for each parameter first, so that no foreign character gets mixed up with the keys.\",\n \"note\": \"In the future, when you get to run multiple live sessions at the same time, you will need to set up one ->Exchange Account Key-> per session. This is a requirement in most exchanges.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"a36187cc-415e-424b-8275-352f953552f8","savedPayload":{"position":{"x":18763.292929968567,"y":43850.27648312736},"targetPosition":{"x":18874.791666666664,"y":44128.78686303218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Exchange Account Key","name":"Key for Lighting Strike","id":"e85bbbd6-aca8-450f-9237-788062de5761"}}},{"type":"Tutorial Step","name":"Fire Up the Machine!","config":"{\n \"subTitle\": \"Fire Up the Machine!\",\n \"gif\": \"\",\n \"image\": \"data-tasks\",\n \"definition\": \"Now it's time to fire up your ->Data Tasks-> operation.\",\n \"paragraph1\": \"\",\n \"callOut\": \"Select Run All Project Data Tasks on the menu.\",\n \"paragraph2\": \"We'll give it a few minutes to catch up with the present time. Remember, all indicators must get to 100% before we can start trading!\",\n \"tip\": \"If you're getting a bit anxious, feel free to go down the ->Data Tasks-> section and check the status of the process instances!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"87824465-1fda-4f6a-bb4f-31f6d7f77268","savedPayload":{"position":{"x":18846.274853675408,"y":43830.14528626026},"targetPosition":{"x":18874.791666666664,"y":44128.78686303218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Tasks","name":"New Data Tasks","id":"40af91d9-431c-4b7d-addc-aed37bc2f3fe"}}},{"type":"Tutorial Step","name":"Are We Ready Yet?","config":"{\n \"subTitle\": \"Are We Ready Yet?\",\n \"gif\": \"\",\n \"image\": \"indicator-process-instance\",\n \"definition\": \"Resistances and Supports Multi-Period-Daily to the left is the last of the process to finish.\",\n \"paragraph1\": \"If this process is at 100%, then we are ready to go.\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"Either way, nothing catastrophic happens if you attempt to run a ->Live Trading Session-> when the required indicators are not up to date. There would be an error, and you'd be notified of the reason. So, no big deal!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"f05ce10a-6ccd-4910-9373-8f3d211fe390","savedPayload":{"position":{"x":18931.567039974787,"y":43834.20825385337},"targetPosition":{"x":18874.791666666664,"y":44128.78686303218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Daily","id":"c5395fbe-4b5a-4492-a7fb-e2d259905e27"}}},{"type":"Tutorial Step","name":"Let's Do this!","config":"{\n \"subTitle\": \"Let's Do This!\",\n \"gif\": \"\",\n \"image\": \"live-trading-session\",\n \"definition\": \"We've gone through the 3-point checklist and we are ready to go, so let's get on with it!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Run the Lightning Strike ->Task->, and then run the Lightning Strike ->Live Trading Session-> to the right!\",\n \"paragraph2\": \"\",\n \"note\": \"Once you run the session, the trading bot may have to wait up to 60 seconds for the last indicator to finish processing. Once it does, you will see the current date and a 0% progress notice under the ->Trading Process Instance->, which will remain like that throughout the run.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"ba33c98c-dc22-408d-8206-c173344cdb24","savedPayload":{"position":{"x":19012.259623184887,"y":43862.13622843571},"targetPosition":{"x":18874.791666666664,"y":44128.78686303218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Task","name":"Lightning Strike","id":"c8492c4a-a7a7-4a80-a25a-a610377e6180"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"welcome-live-trading-process-progress\",\n \"position\": \"Left\",\n\"positionAtReferenceParent\": true,\n \"slider\": \"toTop\"\n}","project":"Superalgos","id":"bd2e54f6-f3ca-4bf7-a453-b2a2ce55e65c","savedPayload":{"position":{"x":19081.815370111297,"y":43911.66665160066},"targetPosition":{"x":18874.791666666664,"y":44128.78686303218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Process Instance","name":"Low Frequency Trading","id":"4d7e7fa0-afcb-4b2f-983b-ceacea91b29d"}}}],"tutorialTopics":[],"id":"8f866187-280e-4e87-b871-41dc645fd412","savedPayload":{"position":{"x":18874.791666666664,"y":44128.78686303218},"targetPosition":{"x":19024.791666666664,"y":44388.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Monitoring","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Check Your Console!","config":"{\n \"subTitle\": \"Check Your Console!\",\n \"gif\": \"\",\n \"image\": \"trading-process-instance\",\n \"definition\": \"If you don't see any errors on the ->Trading Process Instance->, chances are everything is working fine!\",\n \"paragraph1\": \"However, you may want to take a look at your console application and see if you notice anything out of the norm.\",\n \"callOut\": \"Take a look at your console app!\",\n \"paragraph2\": \"\",\n \"note\": \"You should be able to see the alternating executions of the Candles-Volumes and Resistances-And-Support indicators, with the Low-Frequency ->Trading Bot->\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"036556c5-b0bd-494a-bec2-bd7413506475","savedPayload":{"position":{"x":18897.791666666664,"y":43834.97924189685},"targetPosition":{"x":19047.791666666664,"y":44094.78686303218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"welcome-live-trading-console\",\n \"position\": \"Left\",\n \"slider\": \"toTop\"\n}","project":"Superalgos","id":"2708d375-3245-455d-85d2-b164ab3ba86f","savedPayload":{"position":{"x":19047.791666666664,"y":43794.78686303218},"targetPosition":{"x":19047.791666666664,"y":44094.78686303218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Is It Working?","config":"{\n \"subTitle\": \"Is It Working?\",\n \"gif\": \"\",\n \"image\": \"binance\",\n \"definition\": \"The unequivocal way to verify things are working fine is logging on to Binance and checking your order history for BTC/USDT.\",\n \"paragraph1\": \"\",\n \"callOut\": \"Go to Binance and take a look at what's going on!\",\n \"paragraph2\": \"\",\n \"note\": \"At any point in time, you should see one open order and a number of canceled orders pilling up in your order history, pretty much like in the video on the next step!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"8f6913ec-257f-49ba-bdbb-dcd43e5fe727","savedPayload":{"position":{"x":19197.791666666664,"y":43834.97924189685},"targetPosition":{"x":19047.791666666664,"y":44094.78686303218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"welcome-live-trading-binance-orders\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"changeNodeConfigWithEvalReferenceParent\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"(new Date((new Date()).valueOf() - 60000 * 120)).toISOString()\",\n \"toDate\": \"(new Date((new Date()).valueOf() + 60000 * 120)).toISOString()\"\n }\n}","project":"Superalgos","id":"9a3be7a3-9fe8-4d58-a84c-abd59c43e7f2","savedPayload":{"position":{"x":19307.599287801997,"y":43944.78686303218},"targetPosition":{"x":19047.791666666664,"y":44094.78686303218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Scale","name":"New Time Scale","id":"708c5a9f-a995-4210-aaaf-0794782f0e9e"}}},{"type":"Tutorial Step","name":"Monitor the Fun Way","config":"{\n \"subTitle\": \"Monitoring the Fun Way!\",\n \"gif\": \"\",\n \"image\": \"bullet-limit-buy-order\",\n \"definition\": \"You thought I would let you monitor the ->Live Trading Session-> watching the ugly list of orders at the exchange? No way!\",\n \"paragraph1\": \"Superalgos produces the same kind of simulations you love for live sessions too, in realtime!\",\n \"callOut\": \"Can you see the first few buy orders on the chart?\",\n \"paragraph2\": \"\",\n \"note\": \"I just brought you to the present time, on the 1-minute chart. You should be able to see the latest candle forming and a few orders already. The ->Rate Scale-> is in automatic mode at both ends. Feel free to change the scales to your liking.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"repositionAtTimeMachineReferenceParent\": true,\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-min\"\n }\n }\n ]\n}","project":"Superalgos","id":"d84be58b-a1c7-4504-89aa-f98efe132c30","savedPayload":{"position":{"x":19347.791666666664,"y":44094.78686303218},"targetPosition":{"x":19047.791666666664,"y":44094.78686303218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Live Trading Session My Computer","id":"cc1fcc1e-81de-4011-8e59-c37ebe32ecf7"}}}],"tutorialTopics":[],"id":"03e5e234-40eb-4fbe-8df3-95a40f1b34ea","savedPayload":{"position":{"x":19174.791666666664,"y":44128.78686303218},"targetPosition":{"x":19024.791666666664,"y":44388.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"8f829077-b2bd-4747-a01d-762f35b3a070","savedPayload":{"position":{"x":19024.791666666664,"y":44388.594484167515},"targetPosition":{"x":19024.791666666664,"y":44688.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"The End","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"What's Next?","config":"{\n \"subTitle\": \"What's Next?\",\n \"gif\": \"\",\n \"image\": \"bullet-info\",\n \"definition\": \"There are tons of things we haven't covered yet, I know! Just look around! So much stuff to see! It's mind-boggling.\",\n \"paragraph1\": \"I'm sure you still have tons of questions floating in your head... How do I build my own strategies? How do I measure performance? How do I build an indicator? How do I deploy a trading farm? How may I integrate with TradingView? How do I set up Telegram announcements? Don't worry! You'll get there my friend... you'll just have to do some reading!\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"tip\": \"In the meantime, remember to stop your live session and data mining when you no longer need them running, and especially before closing the Client.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"06efb824-f003-4a3c-8323-549a6427d83e","savedPayload":{"position":{"x":18978.13822250042,"y":44197.57011370056},"targetPosition":{"x":19104.923701022628,"y":44469.46244981155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"What Else Is Cooking?","config":"{\n \"subTitle\": \"What Else Is Cooking?\",\n \"gif\": \"\",\n \"image\": \"ethereum\",\n \"definition\": \"Superalgos is turning into a multi-project platform, and Ethereum is the first project being integrated...\",\n \"paragraph1\": \"\",\n \"bulletListIntro\": \"What does integrating Ethereum means, you ask? It means that—with Beta 8—you will be able to:\",\n \"bulletArray\": [\n [\n \"Connect to an Ethereum node\",\n \" right from within Superalgos using the visual interface.\"\n ],\n [\n \"Mine blockchain data\",\n \" to access coin and contract information for all Ethereum-based projects, including De-Fi or what have you, visualizing data on the charts, building indicators, and leveraging the whole infrastructure.\"\n ],\n [\n \"Use the data to trade\",\n \" by consuming related indicators from within trading systems!\"\n ]\n ],\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"96d43586-d877-4499-92a5-e84882a38a47","savedPayload":{"position":{"x":19078.77697819833,"y":44170.60404038403},"targetPosition":{"x":19104.923701022628,"y":44469.46244981155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"A Chance to Give Back!","config":"{\n \"subTitle\": \"Your Chance to Give Back!\",\n \"gif\": \"\",\n \"image\": \"superalgos\",\n \"definition\": \"Tens of thousands of hours have gone into building Superalgos and we are happy to share it with you, free of charge...\",\n \"bulletListIntro\": \"All we ask from you is to give three minutes of your time! We need your help to get the word out and grow the user base. There are very good reasons to help us!\",\n \"bulletArray\": [\n [\n \"Removing bugs:\",\n \" more people using the system means that bugs are found and removed faster from each version—your experience improves!\"\n ],\n [\n \"More contributors:\",\n \" the more people using the system, the more may contribute indicators or strategies—more intelligence available to you!\"\n ],\n [\n \"Core Team focus:\",\n \" if you don't help us, we have to do it ourselves! That means we have less time to code new features for you to enjoy!\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"5a45f4f3-5ee8-4816-8873-3f4cffafe4f0","savedPayload":{"position":{"x":19182.569414553385,"y":44179.68470192483},"targetPosition":{"x":19104.923701022628,"y":44469.46244981155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Fork It Baby!","config":"{\n \"subTitle\": \"Fork and Star on GitHub!\",\n \"gif\": \"\",\n \"image\": \"github\",\n \"definition\": \"More developers may find the project if it raises above the noise on GitHub. Forks and stars make projects easier to find!\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": [\n [\n \"Open an account with GitHub\",\n \" if you don't have one. It takes a minute or two!\"\n ],\n [\n \"Go to the Superalgos repository\",\n \" and click the Fork button on the top-right corner of the screen. Follow the instructions to complete the fork!\"\n ],\n [\n \"Go back to the repo\",\n \" and click the Star button next to the Fork button.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"tip\": \"Awesome! You are helping developers find Superalgos! The more developers, the faster Superalgos evolves!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"ecef6518-8ee6-4b8b-9a82-0f429eb21bf7","savedPayload":{"position":{"x":19276.99663192794,"y":44223.71683652485},"targetPosition":{"x":19104.923701022628,"y":44469.46244981155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Tweet It!","config":"{\n \"subTitle\": \"Spread the Word on Twitter!\",\n \"gif\": \"\",\n \"image\": \"twitter\",\n \"definition\": \"Making some noise on Twitter will help bring more traders to the project. That's important too, for similar reasons!\",\n \"bulletListIntro\": \"The more traders using Superalgos, the more they will drive the Core Team to develop ever more advanced features! This is what you need to do:\",\n \"bulletArray\": [\n [\n \"Go to our Twitter page,\",\n \" follow us, and retweet our latest tweet. Make sure you tag traders you follow!\"\n ]\n ],\n \"paragraph1\": \"That's it! No big deal, right?\",\n \"callOut\": \"We appreciate your help and wish you some happy and prosperous trading!\",\n \"paragraph2\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"b32ff594-9dbb-40f5-81b6-127e162115fb","savedPayload":{"position":{"x":19350.669314309325,"y":44297.38951890624},"targetPosition":{"x":19104.923701022628,"y":44469.46244981155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Contacts","config":"{\n \"subTitle\": \"Get In Touch!\",\n \"gif\": \"\",\n \"image\": \"telegram-bot\",\n \"definition\": \"We strive to help users progress fast and push the boundaries of what is possible to achieve with Superalgos!\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": [\n [\n \"Community Group\",\n \"— Let's talk Superalgos!\"\n ],\n [\n \"Support Group\",\n \" — Need help?\"\n ],\n [\n \"Develop Group \",\n \"— Come test the develop branch!\"\n ],\n [\n \"Grupo en Español\",\n \"— Hablemos en español!\"\n ],\n [\n \"Superalgos Announcements\",\n \" — Be the first to know about new releases, hot fixes, and important issues.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"Tell us how you are using Superalgos, or let us know if you are missing any features!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"6f46b0c2-1892-4273-a6f5-f85886ee5cf9","savedPayload":{"position":{"x":19394.70144890935,"y":44391.816736280794},"targetPosition":{"x":19104.923701022628,"y":44469.46244981155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Ready for More?","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Ready for More Tutorials?\",\n \"gif\": \"\",\n \"image\": \"tutorial\",\n \"definition\": \"There are a few more tutorials ready to walk you through other matters upon request!\",\n \"bulletListIntro\": \"At the bottom of this workspace:\",\n \"bulletArray\": [\n [\n \"Developers Intro\",\n \" is a technical overview!\"\n ],\n [\n \"Install a New Market\",\n \" helps you go beyond BTC/USDT!\"\n ]\n ],\n \"paragraph1\": \"Load the Trading System Design Tutorials plugin workspace from the tab on the left to learn how to design strategies!\",\n \"callOut\": \"\",\n \"paragraph2\": \"Also, the Weak-hands Buster V.2 plugin workspace features a tutorial about the Trading Bot Layers to complete your understanding of simulations and how they help while designing and debugging strategies.\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"6ccf52bb-9a95-40e8-8f2c-35530f44114e","savedPayload":{"position":{"x":19403.782110450153,"y":44495.60917263585},"targetPosition":{"x":19104.923701022628,"y":44469.46244981155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"This Is The End","config":"{\n \"subTitle\": \"My Only Friend, The End!\",\n \"gif\": \"\",\n \"image\": \"close-stage-event\",\n \"definition\": \"Ok, my friend, this is the end! I hope you've enjoyed the show and that I've managed to get you hooked to Superalgos!\",\n \"paragraph1\": \"There's no doubt in my mind that you haven't seen anything like Superalgos before. As you may now figure, Superalgos is a vast system and keeps growing fast.\",\n \"callOut\": \"There are many more ways in which you can help the project grow stronger!\",\n \"paragraph2\": \"\",\n \"tip\": \"That's it! No more steps after this one! I promise! Click Next if you don't believe me!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"708b6ed8-28ac-41c8-bf4f-7c1cec6af6a3","savedPayload":{"position":{"x":19376.816037133623,"y":44596.24792833376},"targetPosition":{"x":19104.923701022628,"y":44469.46244981155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"Welcome to Superalgos!","id":"6f36f540-8de9-4458-b2c7-875884121b87"}}}],"tutorialTopics":[],"id":"fcea7b25-5a13-40e6-a92f-9c530b8a7476","savedPayload":{"position":{"x":19236.923701022628,"y":44476.46244981155},"targetPosition":{"x":19024.791666666664,"y":44688.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"6f36f540-8de9-4458-b2c7-875884121b87","savedPayload":{"position":{"x":19024.791666666664,"y":44688.594484167515},"targetPosition":{"x":19024.791666666664,"y":44688.594484167515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isPlaying":true,"isRunning":false},"tutorial":{"status":"Done"}}},{"type":"Superalgos Project","name":"New Superalgos Project","project":"Superalgos","projectDefinition":{"type":"Project Definition","name":"Superalgos","config":"{ \n \"codeName\": \"Superalgos\"\n}","project":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb","savedPayload":{"position":{"x":24603,"y":25001},"targetPosition":{"x":24303,"y":25001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"spaces":{"type":"Spaces","name":"New Spaces","project":"Superalgos","id":"4d0ee814-4e48-4688-9cc5-7ee03de5192b","savedPayload":{"position":{"x":24303,"y":25301},"targetPosition":{"x":24303,"y":25001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"mines":{"type":"Mines","name":"New Mines","project":"Superalgos","id":"b979e3a3-9316-4e5a-831b-c503b4b0e507","savedPayload":{"position":{"x":24003,"y":25001},"targetPosition":{"x":24303,"y":25001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"otherHierarchies":{"type":"Other Hierarchies","name":"New Other Hierarchies","project":"Superalgos","id":"0a1ff755-8e0b-4f62-976e-df76c8139c6f","savedPayload":{"position":{"x":24303,"y":24701},"targetPosition":{"x":24303,"y":25001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cf9f8b3b-77c6-43c6-b01f-95cf366a91f6","savedPayload":{"position":{"x":24303,"y":25001},"targetPosition":{"x":24303,"y":25001},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}]} \ No newline at end of file +{"type":"Workspace","name":"Getting Started","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[{"type":"Project Data Tasks","name":"Superalgos","project":"Superalgos","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","project":"Superalgos","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Exchange Raw Data","project":"Superalgos","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","config":"{ \n\"startDate\": \"2020-01-01\"\n}","project":"Superalgos","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"d244c564-4e86-43c7-9796-dc3b6294ec8b","savedPayload":{"position":{"x":23490.023749611923,"y":29239.135911211026},"targetPosition":{"x":23779.801497498644,"y":29316.781624741783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"343313ae-5705-484d-8bf8-aed25ba61cfa","savedPayload":{"position":{"x":23779.801497498644,"y":29316.781624741783},"targetPosition":{"x":24069.579245385365,"y":29394.42733827254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a8f38508-1cac-4ab1-815f-d338fc813377","savedPayload":{"position":{"x":24069.579245385365,"y":29394.42733827254},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Volumes","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"f0ef12ed-f0fd-4b88-8e15-27cf24265a5f","savedPayload":{"position":{"x":23799.549372136753,"y":28802.457809532632},"targetPosition":{"x":24059.356993272086,"y":28952.457809532632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"7c8b312c-09bf-4c59-853f-1592391a9c57","savedPayload":{"position":{"x":24059.356993272086,"y":28652.457809532632},"targetPosition":{"x":24059.356993272086,"y":28952.457809532632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"8d58e84b-d7ef-464f-8079-0ec0887e3da3","savedPayload":{"position":{"x":24059.356993272086,"y":28952.457809532632},"targetPosition":{"x":24209.356993272086,"y":29212.265430667965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bf29e3bd-9386-408b-9091-042da0c53e81","savedPayload":{"position":{"x":24209.356993272086,"y":29212.265430667965},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Resistances and Supports","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Resistances and Supports","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Market","project":"Superalgos","id":"a707814e-b81b-4102-9b5b-4e2fe969324f","savedPayload":{"position":{"x":24437.002706802843,"y":28602.739808143135},"targetPosition":{"x":24514.6484203336,"y":28892.517556029856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"5d9b2729-43fb-4e7e-aa4f-b8477c424e51"}}},{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Daily","project":"Superalgos","id":"c5395fbe-4b5a-4492-a7fb-e2d259905e27","savedPayload":{"position":{"x":24726.780454689564,"y":28680.385521673892},"targetPosition":{"x":24514.6484203336,"y":28892.517556029856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"be19d91b-9337-4f84-96b3-f4e54ea12df5"}}}],"id":"112be2cf-74ea-4272-9566-cf0cd24c111c","savedPayload":{"position":{"x":24514.6484203336,"y":28892.517556029856},"targetPosition":{"x":24437.002706802843,"y":29182.295303916577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e74c3232-7b59-4006-87fa-b3b2a328a52b","savedPayload":{"position":{"x":24437.002706802843,"y":29182.295303916577},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c193ecbb-c3e0-4fd5-94ed-bb6356d1d5ea","savedPayload":{"position":{"x":24359.356993272086,"y":29472.073051803298},"targetPosition":{"x":24509.356993272086,"y":29731.88067293863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"85224e5e-f3ee-4e8d-b9bd-e5901bd49b33","savedPayload":{"position":{"x":24509.356993272086,"y":29731.88067293863},"targetPosition":{"x":24659.356993272086,"y":29991.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}}],"id":"70d459d6-d270-49e0-b70d-2053c65a40e2","savedPayload":{"position":{"x":24659.356993272086,"y":29991.688294073963},"targetPosition":{"x":24809.356993272086,"y":30251.495915209296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"af949a76-a6f4-4ec6-869e-f240480eea81","savedPayload":{"position":{"x":24809.356993272086,"y":30251.495915209296},"targetPosition":{"x":24959.356993272086,"y":30511.30353634463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"9b93b56d-dccf-4a8c-bbd0-8c608c31363c","savedPayload":{"position":{"x":24959.356993272086,"y":30511.30353634463},"targetPosition":{"x":25109.356993272086,"y":30771.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"40af91d9-431c-4b7d-addc-aed37bc2f3fe","savedPayload":{"position":{"x":25109.356993272086,"y":30771.11115747996},"targetPosition":{"x":25259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningTasks":{"type":"Learning Tasks","name":"New Learning Tasks","project":"Superalgos","projectLearningTasks":[{"type":"Project Learning Tasks","name":"Superalgos","project":"Superalgos","exchangeLearningTasks":[],"id":"ddd4bf4d-46fd-4c16-86d3-1785f5ad629e","savedPayload":{"position":{"x":25559.356993272086,"y":30511.30353634463},"targetPosition":{"x":25409.356993272086,"y":30771.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"0818dfbe-61ea-40b8-8544-bee25d7f45be","savedPayload":{"position":{"x":25409.356993272086,"y":30771.11115747996},"targetPosition":{"x":25259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"testingTradingTasks":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","project":"Superalgos","projectTradingTasks":[{"type":"Project Trading Tasks","name":"Superalgos","project":"Superalgos","exchangeTradingTasks":[{"type":"Exchange Trading Tasks","name":"Binance","project":"Superalgos","marketTradingTasks":[{"type":"Market Trading Tasks","name":"Binance BTC/USDT","project":"Superalgos","tradingMineTasks":[{"type":"Trading Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Lightning Strike","project":"Superalgos","bot":{"type":"Trading Bot Instance","name":"Low Frequency","config":"{}","project":"Superalgos","processes":[{"type":"Trading Process Instance","name":"Low Frequency Trading","project":"Superalgos","session":{"type":"Backtesting Session","name":"Lightning Strike","config":"{\"folderName\":\"Lightning-Strike\"}","project":"Superalgos","tradingParameters":{"type":"Trading Parameters","name":"New Parameters","project":"Superalgos","sessionBaseAsset":{"type":"Session Base Asset","name":"","config":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0\n}","project":"Superalgos","id":"fb252bd6-3e7d-49a0-9fc6-be392be5db5b","savedPayload":{"position":{"x":28335.291877706186,"y":30551.48478700282},"targetPosition":{"x":28471.48902762805,"y":30818.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sessionQuotedAsset":{"type":"Session Quoted Asset","name":"","config":"{\n\"initialBalance\": 1000\n}","project":"Superalgos","id":"ed578090-732c-4e41-a4ae-9d4f34607170","savedPayload":{"position":{"x":28424.55868811598,"y":30522.48024208079},"targetPosition":{"x":28471.48902762805,"y":30818.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","config":"{ \n\"initialDatetime\": \"2020-09-01\",\n\"finalDatetime\": \"2020-09-02\",\n \"allowStartingFromThePast\": false\n}","project":"Superalgos","id":"47fa4509-16f4-42b7-9453-fa3b3d2885b0","savedPayload":{"position":{"x":28518.41936714012,"y":30522.48024208079},"targetPosition":{"x":28471.48902762805,"y":30818.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","config":"{ \n\"label\": \"01-min\"\n}","project":"Superalgos","id":"dfe3514c-1aa9-4cea-bb2d-e6657037e69d","savedPayload":{"position":{"x":28607.686177549913,"y":30551.48478700282},"targetPosition":{"x":28471.48902762805,"y":30818.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","config":"{ \n\"marketOrderRate\": 0.1,\n\"stopLoss\": 0.2,\n\"takeProfit\": 0.3\n}","project":"Superalgos","id":"c711e510-373f-468d-8ed9-1601da6a06f5","savedPayload":{"position":{"x":28683.621061984013,"y":30606.654709903367},"targetPosition":{"x":28471.48902762805,"y":30818.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","config":"{ \n\"maker\": 0.1,\n\"taker\": 0.1\n}","project":"Superalgos","id":"fdc7c383-8301-4393-b415-8c2d542e05fe","savedPayload":{"position":{"x":28738.79098488456,"y":30682.589594337467},"targetPosition":{"x":28471.48902762805,"y":30818.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"snapshots":{"type":"Snapshots","name":"New Snapshots","config":"{ \n\"strategy\": true,\n\"position\": true\n}","project":"Superalgos","id":"28db17c9-2703-430b-a162-5e04b68640a3","savedPayload":{"position":{"x":28767.79552980659,"y":30771.85640474726},"targetPosition":{"x":28471.48902762805,"y":30818.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"heartbeats":{"type":"Heartbeats","name":"New Heartbeats","config":"{ \n\"date\": true,\n\"candleIndex\": false\n}","project":"Superalgos","id":"78270062-7d10-4afa-baee-2bda8a4b4ed2","savedPayload":{"position":{"x":28767.79552980659,"y":30865.7170837714},"targetPosition":{"x":28471.48902762805,"y":30818.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedParameters":{"type":"User Defined Parameters","name":"New User Defined Parameters","config":"{ \n\"param1Name\": \"A text string value example\",\n\"param2Name\": 0\n}","project":"Superalgos","id":"4c9cdc50-70c0-43ee-ad54-052f8b7ecbc8","savedPayload":{"position":{"x":28738.79098488456,"y":30954.983894181194},"targetPosition":{"x":28471.48902762805,"y":30818.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e79ab7df-ba40-46aa-abcd-63df8031a931","savedPayload":{"position":{"x":28471.48902762805,"y":30818.78674425933},"targetPosition":{"x":28259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingSystemReference":{"type":"Trading System Reference","name":"Lightning Strike","project":"Superalgos","id":"c6397744-c7b6-4fad-92a0-6954f282c0c2","savedPayload":{"position":{"x":28559.356993272086,"y":31030.918778615294},"targetPosition":{"x":28259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Lightning Strike","id":"628b758d-ffff-445f-9d4f-8aa480a13db3"}}},"tradingEngineReference":{"type":"Trading Engine Reference","name":"Low-Frequency","project":"Superalgos","id":"720feaab-efc8-435a-bb3c-ab4e33ed1ca2","savedPayload":{"position":{"x":28471.48902762805,"y":31243.050812971258},"targetPosition":{"x":28259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading Engine","name":"Low-Frequency","id":"eb20f622-71bf-4479-a574-d2320e1d4bd1"}}},"id":"ce648922-fef2-44e3-8d76-2bd7ab72a29f","savedPayload":{"position":{"x":28259.356993272086,"y":31030.918778615294},"targetPosition":{"x":27959.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"60a5e5c0-cfb3-4488-b46c-55d637212aa5","savedPayload":{"position":{"x":27959.356993272086,"y":31030.918778615294},"targetPosition":{"x":27659.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Trading","id":"a8c8d761-96e5-4a86-9285-6c3881d61442"}}}],"id":"cbfbb9e7-9c30-4482-8a9f-4c90771feffc","savedPayload":{"position":{"x":27659.356993272086,"y":31030.918778615294},"targetPosition":{"x":27359.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"08222935-2499-4a3e-a927-4f5dfbc392df","savedPayload":{"position":{"x":27359.356993272086,"y":31030.918778615294},"targetPosition":{"x":27059.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"56c5656b-a7e0-42ed-92d6-631e78ca99d0","savedPayload":{"position":{"x":27059.356993272086,"y":31030.918778615294},"targetPosition":{"x":26759.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1ce02342-473e-4614-ac76-c7788f56ab8e","savedPayload":{"position":{"x":26759.356993272086,"y":31030.918778615294},"targetPosition":{"x":26459.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"2db856e0-4719-408c-88bc-5b47d412c066","savedPayload":{"position":{"x":26459.356993272086,"y":31030.918778615294},"targetPosition":{"x":26159.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"ba36975c-08d6-458d-b7c0-eb4684a85b5d","savedPayload":{"position":{"x":26159.356993272086,"y":31030.918778615294},"targetPosition":{"x":25859.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"55c01047-3fce-41b3-9214-2e885f28b987","savedPayload":{"position":{"x":25859.356993272086,"y":31030.918778615294},"targetPosition":{"x":25559.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"8117db0a-e418-4f56-8fe4-fda2ddac1cbb","savedPayload":{"position":{"x":25559.356993272086,"y":31030.918778615294},"targetPosition":{"x":25259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"productionTradingTasks":{"type":"Production Trading Tasks","name":"New Production Trading Tasks","project":"Superalgos","projectTradingTasks":[{"type":"Project Trading Tasks","name":"Superalgos","project":"Superalgos","exchangeTradingTasks":[{"type":"Exchange Trading Tasks","name":"Binance","project":"Superalgos","marketTradingTasks":[{"type":"Market Trading Tasks","name":"Binance BTC/USDT","project":"Superalgos","tradingMineTasks":[{"type":"Trading Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Lightning Strike","project":"Superalgos","bot":{"type":"Trading Bot Instance","name":"Low Frequency","config":"{}","project":"Superalgos","processes":[{"type":"Trading Process Instance","name":"Low Frequency Trading","project":"Superalgos","session":{"type":"Live Trading Session","name":"Lightning Strike","config":"{\"folderName\":\"Lightning-Strike\"}","project":"Superalgos","tradingParameters":{"type":"Trading Parameters","name":"New Parameters","project":"Superalgos","sessionBaseAsset":{"type":"Session Base Asset","name":"","config":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0\n}","project":"Superalgos","id":"5db563b5-a8d6-48c6-a34e-bbca8825ce37","savedPayload":{"position":{"x":27214.318791376507,"y":32665.54775609566},"targetPosition":{"x":27341.104269898715,"y":32937.440092206656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sessionQuotedAsset":{"type":"Session Quoted Asset","name":"","config":"{\n\"initialBalance\": 100\n}","project":"Superalgos","id":"f6cd46c1-66df-422c-82d4-02ac8e37f689","savedPayload":{"position":{"x":27314.957547074417,"y":32638.58168277913},"targetPosition":{"x":27341.104269898715,"y":32937.440092206656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","config":"{ \n\"label\": \"01-min\"\n}","project":"Superalgos","id":"727de4cc-40e6-4064-843c-8cb3a9f2fcdf","savedPayload":{"position":{"x":27418.749983429472,"y":32647.662344319935},"targetPosition":{"x":27341.104269898715,"y":32937.440092206656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","config":"{ \n\"marketOrderRate\": 0.1,\n\"stopLoss\": 0.2,\n\"takeProfit\": 0.3\n}","project":"Superalgos","id":"598dc355-73c9-4e7f-a0e9-ee5fd7952825","savedPayload":{"position":{"x":27513.177200804028,"y":32691.69447891996},"targetPosition":{"x":27341.104269898715,"y":32937.440092206656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","config":"{ \n\"maker\": 0.1,\n\"taker\": 0.1\n}","project":"Superalgos","id":"a3646bab-4d27-48a7-b17c-79d6da48f64d","savedPayload":{"position":{"x":27586.849883185412,"y":32765.367161301343},"targetPosition":{"x":27341.104269898715,"y":32937.440092206656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"snapshots":{"type":"Snapshots","name":"New Snapshots","config":"{ \n\"strategy\": true,\n\"position\": true\n}","project":"Superalgos","id":"5021a926-442a-4341-8844-8a432293ecb1","savedPayload":{"position":{"x":27630.882017785436,"y":32859.7943786759},"targetPosition":{"x":27341.104269898715,"y":32937.440092206656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"heartbeats":{"type":"Heartbeats","name":"New Heartbeats","config":"{ \n\"date\": true,\n\"candleIndex\": false\n}","project":"Superalgos","id":"e8cedec0-1bc2-46ba-98de-b7ff746a74c8","savedPayload":{"position":{"x":27639.96267932624,"y":32963.586815030954},"targetPosition":{"x":27341.104269898715,"y":32937.440092206656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedParameters":{"type":"User Defined Parameters","name":"New User Defined Parameters","config":"{ \n\"param1Name\": \"A text string value example\",\n\"param2Name\": 0\n}","project":"Superalgos","id":"67da1d57-62ff-424c-ab2e-034e008fc079","savedPayload":{"position":{"x":27612.99660600971,"y":33064.225570728864},"targetPosition":{"x":27341.104269898715,"y":32937.440092206656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"726c35b1-e30b-4620-819f-a88a955f1902","savedPayload":{"position":{"x":27341.104269898715,"y":32937.440092206656},"targetPosition":{"x":27128.97223554275,"y":33149.57212656262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingSystemReference":{"type":"Trading System Reference","name":"Lightning Strike","project":"Superalgos","id":"ff1cd7c1-9415-4c49-8ecf-188fd0c60ea4","savedPayload":{"position":{"x":27428.97223554275,"y":33149.57212656262},"targetPosition":{"x":27128.97223554275,"y":33149.57212656262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Lightning Strike","id":"628b758d-ffff-445f-9d4f-8aa480a13db3"}}},"tradingEngineReference":{"type":"Trading Engine Reference","name":"Low-Frequency","project":"Superalgos","id":"5fd0a826-0819-4f19-a999-66cc64be0272","savedPayload":{"position":{"x":27341.104269898715,"y":33361.70416091858},"targetPosition":{"x":27128.97223554275,"y":33149.57212656262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading Engine","name":"Low-Frequency","id":"eb20f622-71bf-4479-a574-d2320e1d4bd1"}}},"id":"1ce123af-467f-4295-b317-dba8729faf25","savedPayload":{"position":{"x":27128.97223554275,"y":33149.57212656262},"targetPosition":{"x":26828.97223554275,"y":33149.57212656262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Resistances and Supports Multi-Period-Daily","project":"Superalgos","id":"0d54601b-fcac-42c9-8ce6-d532bfc81de5","savedPayload":{"position":{"x":26978.97223554275,"y":33409.37974769795},"targetPosition":{"x":26828.97223554275,"y":33149.57212656262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"7e2fdde9-8b64-44a3-85f1-10c3935bd3e3"}}},"id":"4d7e7fa0-afcb-4b2f-983b-ceacea91b29d","savedPayload":{"position":{"x":26828.97223554275,"y":33149.57212656262},"targetPosition":{"x":26569.16461440742,"y":32999.57212656262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Trading","id":"a8c8d761-96e5-4a86-9285-6c3881d61442"}}}],"id":"2451fc98-0396-44df-902c-a3eaa90f0618","savedPayload":{"position":{"x":26569.16461440742,"y":32999.57212656262},"targetPosition":{"x":26309.356993272086,"y":32849.57212656262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"keyReference":{"type":"Key Reference","name":"Key for Lighting Strike","project":"Superalgos","id":"a0622fc9-c4e3-44c3-963d-7ae5fa163e99","savedPayload":{"position":{"x":26309.356993272086,"y":33149.57212656262},"targetPosition":{"x":26309.356993272086,"y":32849.57212656262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key for Lighting Strike","id":"e85bbbd6-aca8-450f-9237-788062de5761"}}},"id":"c8492c4a-a7a7-4a80-a25a-a610377e6180","savedPayload":{"position":{"x":26309.356993272086,"y":32849.57212656262},"targetPosition":{"x":26159.356993272086,"y":32589.76450542729},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dd73b670-11d7-4cdc-848b-c063fb7a3848","savedPayload":{"position":{"x":26159.356993272086,"y":32589.76450542729},"targetPosition":{"x":26009.356993272086,"y":32329.956884291958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1e087225-153c-4c7e-b9ec-2a36f32ee511","savedPayload":{"position":{"x":26009.356993272086,"y":32329.956884291958},"targetPosition":{"x":25859.356993272086,"y":32070.149263156625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"013985a8-7bf7-4b91-8e2d-f4e8bd81cb62","savedPayload":{"position":{"x":25859.356993272086,"y":32070.149263156625},"targetPosition":{"x":25709.356993272086,"y":31810.341642021293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"d539c0ac-aaeb-4c44-9dba-ac26df819a8d","savedPayload":{"position":{"x":25709.356993272086,"y":31810.341642021293},"targetPosition":{"x":25559.356993272086,"y":31550.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"f4fc305a-6764-427e-86a7-6557118a4b35","savedPayload":{"position":{"x":25559.356993272086,"y":31550.53402088596},"targetPosition":{"x":25409.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"673caa5f-511d-4688-9305-e5f0f0f780cd","savedPayload":{"position":{"x":25409.356993272086,"y":31290.726399750627},"targetPosition":{"x":25259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataStorage":{"type":"Data Storage","name":"New Data Storage","project":"Superalgos","dataMinesData":{"type":"Data Mines Data","name":"New Data Mines Data","project":"Superalgos","projectDataProducts":[{"type":"Project Data Products","name":"Superalgos","project":"Superalgos","exchangeDataProducts":[{"type":"Exchange Data Products","name":"Binance","project":"Superalgos","marketDataProducts":[{"type":"Market Data Products","name":"Binance BTC/USDT","project":"Superalgos","dataProducts":[],"dataMineProducts":[{"type":"Data Mine Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Candles Volumes","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Candles","project":"Superalgos","id":"b9c30464-73e5-4f5c-b422-9ba1a02b78ab","savedPayload":{"position":{"x":25635.373168930517,"y":32126.257878002114},"targetPosition":{"x":25538.373168930517,"y":32224.257878002114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","project":"Superalgos","id":"07c11481-7dbd-477d-8bf7-79212542a6aa","savedPayload":{"position":{"x":25617.373168930517,"y":32183.257878002114},"targetPosition":{"x":25538.373168930517,"y":32224.257878002114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}}],"dataProductFolders":[],"id":"73bb62ff-8212-4387-b160-40ee8de2a133","savedPayload":{"position":{"x":25028.372734651544,"y":33055.05755156473},"targetPosition":{"x":24913.567704942016,"y":32777.89369181134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Products","name":"Resistances and Supports","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Resistances","project":"Superalgos","id":"a1669770-1bbe-40f7-acb3-ded15272935f","savedPayload":{"position":{"x":25621.373168930517,"y":32076.257878002114},"targetPosition":{"x":25592.373168930517,"y":32158.257878002114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Resistances","id":"7a734501-a0fb-4305-803e-7e95d477c513"}}},{"type":"Data Product","name":"Supports","project":"Superalgos","id":"64899503-b618-493a-ba94-bfad2051a611","savedPayload":{"position":{"x":25644.373168930517,"y":32138.257878002114},"targetPosition":{"x":25592.373168930517,"y":32158.257878002114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Supports","id":"bc3c43de-6312-47d4-ae3d-0c95c1b039e0"}}}],"dataProductFolders":[],"id":"a1855a09-0948-43de-bba7-8900c5c161d8","savedPayload":{"position":{"x":24730.939276239398,"y":33015.89969389871},"targetPosition":{"x":24913.567704942016,"y":32777.89369181134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d37d8bf1-be3b-49ac-805b-0ddb3944e6a0","savedPayload":{"position":{"x":24913.567704942016,"y":32777.89369181134},"targetPosition":{"x":24952.72556260803,"y":32480.460233399197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}}],"id":"6d7273da-5366-4fe3-9749-e643038abd7a","savedPayload":{"position":{"x":24952.72556260803,"y":32480.460233399197},"targetPosition":{"x":24991.883420274044,"y":32183.026774987055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"9bc0aea4-0596-449c-91bd-4fb4cb672aa8","savedPayload":{"position":{"x":24991.883420274044,"y":32183.026774987055},"targetPosition":{"x":25031.041277940058,"y":31885.593316574912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"db554581-93fa-465d-89f7-50f026e839d8","savedPayload":{"position":{"x":25031.041277940058,"y":31885.593316574912},"targetPosition":{"x":25070.19913560607,"y":31588.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"32e7c122-fa5a-4d00-9d71-d54e890e32de","savedPayload":{"position":{"x":25070.19913560607,"y":31588.15985816277},"targetPosition":{"x":25109.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingMinesData":{"type":"Trading Mines Data","name":"New Trading Mines Data","project":"Superalgos","projectTradingProducts":[{"type":"Project Trading Products","name":"Superalgos","project":"Superalgos","exchangeTradingProducts":[{"type":"Exchange Trading Products","name":"Binance","project":"Superalgos","marketTradingProducts":[{"type":"Market Trading Products","name":"Binance BTC/USDT","project":"Superalgos","tradingSessionReferences":[{"type":"Trading Session Reference","name":"Lightning Strike Backtesting Session","project":"Superalgos","dataProducts":[],"tradingMineProducts":[{"type":"Trading Mine Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Low Frequency","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Trading Engine","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Episode","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episode Counters","project":"Superalgos","id":"a01b42b0-ea87-47ab-b0e9-52d4b10cb631","savedPayload":{"position":{"x":24463.592002018682,"y":31980.531877463392},"targetPosition":{"x":24377.592002018682,"y":31972.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Counters","id":"d81c6019-864e-42f5-94ba-2f249b865f85"}}},{"type":"Data Product","name":"Episode Statistics","project":"Superalgos","id":"559a20a7-6697-4245-9d6c-ad7c0e31ff84","savedPayload":{"position":{"x":24313.592002018682,"y":31909.531877463392},"targetPosition":{"x":24377.592002018682,"y":31972.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Statistics","id":"400c7f49-37da-41fb-b83d-879960aa74ff"}}},{"type":"Data Product","name":"Episode Candle","project":"Superalgos","id":"24fab05f-ff78-4cca-af61-d4d0bb2f2960","savedPayload":{"position":{"x":24420.592002018682,"y":31952.531877463392},"targetPosition":{"x":24377.592002018682,"y":31972.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Candle","id":"b9a58113-cf27-4d57-9810-87a2cc158804"}}},{"type":"Data Product","name":"Episode Balances","project":"Superalgos","id":"7c580919-08ce-4aff-9e84-888fdf07caec","savedPayload":{"position":{"x":24281.592002018682,"y":31964.531877463392},"targetPosition":{"x":24377.592002018682,"y":31972.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Balances","id":"a9a53d82-133b-4417-b639-f9a56d338233"}}},{"type":"Data Product","name":"Distance To Event","project":"Superalgos","id":"389797d4-8456-4258-9adf-246a6ba69016","savedPayload":{"position":{"x":24441.592002018682,"y":31984.531877463392},"targetPosition":{"x":24377.592002018682,"y":31972.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Distance To Event","id":"8ea88d6c-7d7f-4152-b781-ea108df52c63"}}},{"type":"Data Product","name":"Episode Base Asset","project":"Superalgos","id":"323c7b0b-42b1-4ff0-9d4b-36c2fd605caa","savedPayload":{"position":{"x":24417.592002018682,"y":31995.531877463392},"targetPosition":{"x":24377.592002018682,"y":31972.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Base Asset","id":"234969ff-eab1-4d59-b6fa-79433c9a20e9"}}},{"type":"Data Product","name":"Episode Quoted Asset","project":"Superalgos","id":"63594fc6-3b89-4507-bca8-2d43ef618cbe","savedPayload":{"position":{"x":24475.592002018682,"y":31901.531877463392},"targetPosition":{"x":24377.592002018682,"y":31972.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Quoted Asset","id":"ae525e31-d6a8-47d2-9021-3f2ddb9615b0"}}},{"type":"Data Product","name":"Current Episode","project":"Superalgos","id":"73bb3f9e-b112-4e5a-bce9-6d4bec41cc6c","savedPayload":{"position":{"x":24306.592002018682,"y":32068.531877463392},"targetPosition":{"x":24377.592002018682,"y":31972.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Episode","id":"b8da0132-ba28-46ec-aa54-eb9eaac56ce7"}}}],"dataProductFolders":[],"id":"a606455e-f5ce-4535-b1af-6d9dd529f91c","savedPayload":{"position":{"x":24377.592002018682,"y":31972.531877463392},"targetPosition":{"x":24421.592002018682,"y":32058.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Strategy","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Strategy","project":"Superalgos","id":"515f5fd6-d860-44d4-b5d6-a19acd9c5c86","savedPayload":{"position":{"x":24475.592002018682,"y":31953.531877463392},"targetPosition":{"x":24454.592002018682,"y":32022.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Strategy","id":"895d8a04-ef45-41a7-909a-ba31013ffb90"}}},{"type":"Data Product","name":"Last Strategy","project":"Superalgos","id":"556e97e8-eba3-419d-869d-950cc99371da","savedPayload":{"position":{"x":24448.592002018682,"y":32071.531877463392},"targetPosition":{"x":24454.592002018682,"y":32022.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Strategy","id":"0625f524-2b97-4b4d-8a90-590ffc62ecd3"}}}],"dataProductFolders":[],"id":"3af0887b-ae23-4f57-b376-4a540fe13112","savedPayload":{"position":{"x":24454.592002018682,"y":32022.531877463392},"targetPosition":{"x":24421.592002018682,"y":32058.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Position","project":"Superalgos","id":"d33abc39-702b-4d7a-8435-43d90e0f2c3a","savedPayload":{"position":{"x":24352.592002018682,"y":32024.531877463392},"targetPosition":{"x":24447.592002018682,"y":32101.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Position","id":"832ecada-8da3-4ba6-b6e9-be34dd5f7ce9"}}},{"type":"Data Product","name":"Last Position","project":"Superalgos","id":"d681fd5f-64af-4f39-9f6d-a767bef7692f","savedPayload":{"position":{"x":24398.592002018682,"y":32035.531877463392},"targetPosition":{"x":24447.592002018682,"y":32101.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Position","id":"477cd6d5-862a-44d0-9313-786a4e63a602"}}}],"dataProductFolders":[],"id":"895feaf2-ae82-4b8e-ada6-780beab73ea9","savedPayload":{"position":{"x":24447.592002018682,"y":32101.531877463392},"targetPosition":{"x":24421.592002018682,"y":32058.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Open Stage","project":"Superalgos","id":"b0961496-1af9-48cd-bbeb-ac5973192e78","savedPayload":{"position":{"x":24555.592002018682,"y":31897.531877463392},"targetPosition":{"x":24520.592002018682,"y":31974.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stage","id":"73c3c041-ba2a-4798-a362-a453409b518a"}}},{"type":"Data Product","name":"Close Stage","project":"Superalgos","id":"0c9cf78d-ce6e-4318-811d-e748ca72845d","savedPayload":{"position":{"x":24541.592002018682,"y":31929.531877463392},"targetPosition":{"x":24520.592002018682,"y":31974.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stage","id":"2bb9bb41-1ff5-4f83-aa5b-bfc4c9f06a9a"}}},{"type":"Data Product","name":"Trigger Stage","project":"Superalgos","id":"e298787f-b7f2-4334-931e-38b9441e43f9","savedPayload":{"position":{"x":24504.592002018682,"y":31961.531877463392},"targetPosition":{"x":24520.592002018682,"y":31974.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stage","id":"b6cff826-9056-4fbd-8eca-cbd6cceec962"}}},{"type":"Data Product","name":"Manage Stage","project":"Superalgos","id":"4719b69d-b23e-4037-8c0a-b641fd8ab14c","savedPayload":{"position":{"x":24444.592002018682,"y":31908.531877463392},"targetPosition":{"x":24520.592002018682,"y":31974.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stage","id":"bd691611-e7a6-49a8-b07d-c15360b55e40"}}}],"dataProductFolders":[],"id":"9fe11205-286a-4610-81ec-29cbc70d6075","savedPayload":{"position":{"x":24520.592002018682,"y":31974.531877463392},"targetPosition":{"x":24421.592002018682,"y":32058.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"90834a1b-cc7e-48a9-be5c-0e30380af4bd","savedPayload":{"position":{"x":24483.592002018682,"y":31990.531877463392},"targetPosition":{"x":24511.592002018682,"y":32023.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"7c769317-2639-4460-8b88-9dc92f7b0585"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"e2112d60-5fc2-4e67-befe-d4fbd6c1de77","savedPayload":{"position":{"x":24491.592002018682,"y":32003.531877463392},"targetPosition":{"x":24511.592002018682,"y":32023.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"9cc7645a-54fe-40d6-9896-9278167011fb"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"e734b6be-ba40-468c-a94f-1153dc85e00c","savedPayload":{"position":{"x":24445.592002018682,"y":32089.531877463392},"targetPosition":{"x":24511.592002018682,"y":32023.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"4c827ee0-a29b-4b65-8438-03e2ea98b410"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"9a973229-4d9d-45af-b5aa-64906a915f6e","savedPayload":{"position":{"x":24422.592002018682,"y":32032.531877463392},"targetPosition":{"x":24511.592002018682,"y":32023.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2c753cd8-36d8-466c-bd80-1ebfa8e314dc"}}},{"type":"Data Product","name":"Last Market Order","project":"Superalgos","id":"56517fe9-64da-4404-83f3-005106bc1c0a","savedPayload":{"position":{"x":24412.592002018682,"y":32018.531877463392},"targetPosition":{"x":24511.592002018682,"y":32023.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Market Order","id":"6df1ac87-92d5-4788-b0bc-f3543b283ef0"}}},{"type":"Data Product","name":"Last Limit Order","project":"Superalgos","id":"d00c76e7-4be0-4518-9892-a0f6df943951","savedPayload":{"position":{"x":24594.592002018682,"y":31949.531877463392},"targetPosition":{"x":24511.592002018682,"y":32023.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Limit Order","id":"c24ec6a1-e937-4d20-93eb-4faf2a0becc3"}}}],"dataProductFolders":[],"id":"b5154bc1-4311-4148-b396-5ebca1c62417","savedPayload":{"position":{"x":24511.592002018682,"y":32023.531877463392},"targetPosition":{"x":24421.592002018682,"y":32058.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"89edd698-1d64-4500-bcef-d13ea74bee1c","savedPayload":{"position":{"x":24421.592002018682,"y":32058.531877463392},"targetPosition":{"x":24436.592002018682,"y":31978.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Trading System","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trading System Errors","project":"Superalgos","id":"a0c29c57-0a20-4084-9697-142300f62f9c","savedPayload":{"position":{"x":24383.592002018682,"y":32063.531877463392},"targetPosition":{"x":24378.592002018682,"y":32060.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Errors","id":"1d9c570d-77c7-40ac-a61e-c5a57a411de8"}}},{"type":"Data Product","name":"Trading System Highlights","project":"Superalgos","id":"aa0fe882-89a8-4811-8988-c589554afe9d","savedPayload":{"position":{"x":24294.592002018682,"y":32008.531877463392},"targetPosition":{"x":24378.592002018682,"y":32060.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Highlights","id":"319f660a-78be-4cf4-8052-877837cad806"}}},{"type":"Data Product","name":"Trading System Values","project":"Superalgos","id":"bbc65054-b22b-4cbb-816b-529672e2f498","savedPayload":{"position":{"x":24324.592002018682,"y":32032.531877463392},"targetPosition":{"x":24378.592002018682,"y":32060.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Values","id":"c90c009b-588d-45d4-aff1-05e375181dfa"}}},{"type":"Data Product","name":"Trading System Status","project":"Superalgos","id":"776a3ece-8255-4e80-b60f-85bb818b561f","savedPayload":{"position":{"x":24340.592002018682,"y":32026.531877463392},"targetPosition":{"x":24378.592002018682,"y":32060.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Status","id":"eed48c80-35c5-49fa-b12d-18e7280ffb8f"}}},{"type":"Data Product","name":"Trading System Progress","project":"Superalgos","id":"7593aaf9-0505-4b58-9920-235340ff2d2f","savedPayload":{"position":{"x":24325.592002018682,"y":32003.531877463392},"targetPosition":{"x":24378.592002018682,"y":32060.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Progress","id":"04c8606b-5e59-4e7d-b3ac-387bfffcd300"}}},{"type":"Data Product","name":"Trading System Running","project":"Superalgos","id":"3e2e6105-f41f-42e2-bce5-74ebb3b81cbd","savedPayload":{"position":{"x":24332.592002018682,"y":32039.531877463392},"targetPosition":{"x":24378.592002018682,"y":32060.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Running","id":"17236f59-6ef2-4cc3-913c-1ff6db052236"}}},{"type":"Data Product","name":"Trading System Announcements","project":"Superalgos","id":"faab4399-898b-4393-8c27-fa2f3109c60a","savedPayload":{"position":{"x":24307.592002018682,"y":32057.531877463392},"targetPosition":{"x":24378.592002018682,"y":32060.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Announcements","id":"4a6f828a-9671-431e-8257-fc920943581e"}}},{"type":"Data Product","name":"Trading System Warnings","project":"Superalgos","id":"9ff0f035-ca7f-4e65-a82c-186fa7f09157","savedPayload":{"position":{"x":24297.592002018682,"y":32133.531877463392},"targetPosition":{"x":24378.592002018682,"y":32060.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Warnings","id":"34310596-466a-4e9a-a5a2-256b0fe3e339"}}},{"type":"Data Product","name":"Trading System Infos","project":"Superalgos","id":"04210a59-070a-45f1-a2a0-cf50bd4879f7","savedPayload":{"position":{"x":24389.592002018682,"y":31999.531877463392},"targetPosition":{"x":24378.592002018682,"y":32060.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Infos","id":"020ad519-0fc6-4f2f-9f26-b2c7de118fb8"}}}],"dataProductFolders":[],"id":"1a16bc12-581d-4626-846c-895f08e65fdf","savedPayload":{"position":{"x":24378.592002018682,"y":32060.531877463392},"targetPosition":{"x":24436.592002018682,"y":31978.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Objects","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episodes","project":"Superalgos","id":"73dff61a-7b05-4ca6-b963-99d6c578e9ba","savedPayload":{"position":{"x":24433.592002018682,"y":31946.531877463392},"targetPosition":{"x":24528.592002018682,"y":31946.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episodes","id":"aeec080e-8caf-4976-8187-ba4e725b73b0"}}},{"type":"Data Product","name":"Strategies","project":"Superalgos","id":"a9c454c8-9075-4dcf-bfe9-ebd0c1658049","savedPayload":{"position":{"x":24490.592002018682,"y":31966.531877463392},"targetPosition":{"x":24528.592002018682,"y":31946.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"21db6fce-8450-4b07-9015-d81a339fd030"}}}],"dataProductFolders":[{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"cad1eecc-e897-4086-b42c-fcfd843c04cc","savedPayload":{"position":{"x":24570.592002018682,"y":32052.531877463392},"targetPosition":{"x":24586.592002018682,"y":31971.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"db256083-9aa2-48e1-8fd6-3425a5085302"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"fdf22e85-7071-4847-bdba-e3fb43a616ed","savedPayload":{"position":{"x":24567.592002018682,"y":32057.531877463392},"targetPosition":{"x":24586.592002018682,"y":31971.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"1958f79b-5c6c-4874-9154-98c314822ed7"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"d2b1ab31-d8a1-422b-a717-33ee7df9b07b","savedPayload":{"position":{"x":24545.592002018682,"y":31956.531877463392},"targetPosition":{"x":24586.592002018682,"y":31971.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"5deceb32-c7ab-4560-818a-0f0b9d6632fb"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"3b5a12db-b969-4400-8b9d-afb9b7b81642","savedPayload":{"position":{"x":24672.592002018682,"y":31889.531877463392},"targetPosition":{"x":24586.592002018682,"y":31971.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2a1d405b-2fbe-4ed4-a76a-d2c7be59d20e"}}}],"dataProductFolders":[],"id":"97736b8e-761c-43f2-83bf-df8f5d41b963","savedPayload":{"position":{"x":24586.592002018682,"y":31971.531877463392},"targetPosition":{"x":24528.592002018682,"y":31946.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trigger Stages","project":"Superalgos","id":"9fc29be1-9393-4933-95d3-bebddd73c05e","savedPayload":{"position":{"x":24507.592002018682,"y":31875.531877463392},"targetPosition":{"x":24487.592002018682,"y":31875.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stages","id":"18cc2e79-7e57-418c-b635-6c68fc11d681"}}},{"type":"Data Product","name":"Open Stages","project":"Superalgos","id":"b555388f-db93-4db1-91be-7772550afa70","savedPayload":{"position":{"x":24439.592002018682,"y":31926.531877463392},"targetPosition":{"x":24487.592002018682,"y":31875.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stages","id":"d5938c00-0849-466d-ae14-4ea91b571678"}}},{"type":"Data Product","name":"Manage Stages","project":"Superalgos","id":"41953904-e48c-4176-bf0f-09d133bc444c","savedPayload":{"position":{"x":24441.592002018682,"y":31883.531877463392},"targetPosition":{"x":24487.592002018682,"y":31875.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stages","id":"8fab86b3-db8d-4113-8418-1d256bd98cf2"}}},{"type":"Data Product","name":"Close Stages","project":"Superalgos","id":"47b4553c-7f2e-438c-9f4b-9ba30e943a6c","savedPayload":{"position":{"x":24463.592002018682,"y":31931.531877463392},"targetPosition":{"x":24487.592002018682,"y":31875.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stages","id":"ba911e61-f951-48cd-b547-9a70aa211100"}}}],"dataProductFolders":[],"id":"ac789224-64dc-4ff5-a316-2dfbb6347b8a","savedPayload":{"position":{"x":24487.592002018682,"y":31875.531877463392},"targetPosition":{"x":24528.592002018682,"y":31946.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Positions","project":"Superalgos","id":"6e49b57f-8c94-410f-985b-82c126155b11","savedPayload":{"position":{"x":24693.592002018682,"y":31870.531877463392},"targetPosition":{"x":24616.592002018682,"y":31921.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Positions","id":"1eabba24-cbd4-4cbf-95e0-c5135349d41d"}}},{"type":"Data Product","name":"Position Base Asset","project":"Superalgos","id":"ae8fa9a5-95b6-4769-8ade-f9854e6855ba","savedPayload":{"position":{"x":24673.592002018682,"y":32018.531877463392},"targetPosition":{"x":24616.592002018682,"y":31921.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Base Asset","id":"b371b039-f6c8-4f60-84cb-52f55c96c84d"}}},{"type":"Data Product","name":"Position Quoted Asset","project":"Superalgos","id":"9e9b19ee-9c51-4586-b74d-d2880f13f71f","savedPayload":{"position":{"x":24656.592002018682,"y":31987.531877463392},"targetPosition":{"x":24616.592002018682,"y":31921.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Quoted Asset","id":"a376f02b-a5d2-4079-b5cd-ab7dc894b909"}}},{"type":"Data Product","name":"Stop Loss","project":"Superalgos","id":"01491591-0462-453c-91e0-6da6f554a729","savedPayload":{"position":{"x":24536.592002018682,"y":31883.531877463392},"targetPosition":{"x":24616.592002018682,"y":31921.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Stop Loss","id":"c18bdc82-216a-4b1d-8850-5c3c9dc2000b"}}},{"type":"Data Product","name":"Take Profit","project":"Superalgos","id":"719dd8a6-58ab-41c6-9693-9b67c12232d2","savedPayload":{"position":{"x":24558.592002018682,"y":31830.531877463392},"targetPosition":{"x":24616.592002018682,"y":31921.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Take Profit","id":"2542c7d0-fa26-4b52-a59a-a3630e52eb89"}}}],"dataProductFolders":[],"id":"2a4cb5a2-8e6a-4b14-816a-b8e0cce4dae5","savedPayload":{"position":{"x":24616.592002018682,"y":31921.531877463392},"targetPosition":{"x":24528.592002018682,"y":31946.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"39e122ca-cdc4-49a6-91a6-2f2c05f62ea0","savedPayload":{"position":{"x":24528.592002018682,"y":31946.531877463392},"targetPosition":{"x":24436.592002018682,"y":31978.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"363150a9-d4e7-4e2e-b327-89109935718c","savedPayload":{"position":{"x":24436.592002018682,"y":31978.531877463392},"targetPosition":{"x":24383.592002018682,"y":32012.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13a2b4f9-2c05-49b2-b42c-32ffa71ae0b7","savedPayload":{"position":{"x":24383.592002018682,"y":32012.531877463392},"targetPosition":{"x":24343.592002018682,"y":31925.531877463392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"a5de30a4-022e-4f8a-afd0-3eb6d8600ae8","savedPayload":{"position":{"x":24509.356993272086,"y":32629.956884291958},"targetPosition":{"x":24509.356993272086,"y":32329.956884291958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"Lightning Strike","id":"ce648922-fef2-44e3-8d76-2bd7ab72a29f"}}},{"type":"Trading Session Reference","name":"Lightning Strike Live Trading Session","project":"Superalgos","dataProducts":[],"tradingMineProducts":[{"type":"Trading Mine Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Low Frequency","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Trading Engine","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Episode","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episode Counters","project":"Superalgos","id":"dc6cc4ef-4bd7-4837-8442-919462314db3","savedPayload":{"position":{"x":24040.07658106541,"y":32774.458634291004},"targetPosition":{"x":23667.871774199913,"y":32820.15963806794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Counters","id":"d81c6019-864e-42f5-94ba-2f249b865f85"}}},{"type":"Data Product","name":"Episode Statistics","project":"Superalgos","id":"776ed571-8321-47aa-8cfb-c8ebf565dace","savedPayload":{"position":{"x":24033.260548494378,"y":32904.51628344689},"targetPosition":{"x":23667.871774199913,"y":32820.15963806794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Statistics","id":"400c7f49-37da-41fb-b83d-879960aa74ff"}}},{"type":"Data Product","name":"Episode Candle","project":"Superalgos","id":"ded93703-a48d-44be-9703-878c28f949cd","savedPayload":{"position":{"x":23982.373237179447,"y":33024.39927619857},"targetPosition":{"x":23667.871774199913,"y":32820.15963806794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Candle","id":"b9a58113-cf27-4d57-9810-87a2cc158804"}}},{"type":"Data Product","name":"Episode Balances","project":"Superalgos","id":"e702f1dd-1c91-4d05-ac55-19db363f5f3a","savedPayload":{"position":{"x":23893.552407881933,"y":33119.64795433567},"targetPosition":{"x":23667.871774199913,"y":32820.15963806794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Balances","id":"a9a53d82-133b-4417-b639-f9a56d338233"}}},{"type":"Data Product","name":"Distance To Event","project":"Superalgos","id":"b8abea53-8221-47bd-91a2-cdcdd2ad1027","savedPayload":{"position":{"x":23777.51116347094,"y":33178.77392155408},"targetPosition":{"x":23667.871774199913,"y":32820.15963806794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Distance To Event","id":"8ea88d6c-7d7f-4152-b781-ea108df52c63"}}},{"type":"Data Product","name":"Episode Base Asset","project":"Superalgos","id":"18bcbd26-c237-4acb-96f4-d9c95d833a42","savedPayload":{"position":{"x":23648.24579060881,"y":33194.6457136009},"targetPosition":{"x":23667.871774199913,"y":32820.15963806794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Base Asset","id":"234969ff-eab1-4d59-b6fa-79433c9a20e9"}}},{"type":"Data Product","name":"Episode Quoted Asset","project":"Superalgos","id":"c444f4b5-fa67-4c21-afa8-1f998da7a2a2","savedPayload":{"position":{"x":23521.347601016434,"y":33165.348958112605},"targetPosition":{"x":23667.871774199913,"y":32820.15963806794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Quoted Asset","id":"ae525e31-d6a8-47d2-9021-3f2ddb9615b0"}}},{"type":"Data Product","name":"Current Episode","project":"Superalgos","id":"057570bd-69d4-4f3c-b0d4-94ee32f61e65","savedPayload":{"position":{"x":23412.122389176475,"y":33094.417276175125},"targetPosition":{"x":23667.871774199913,"y":32820.15963806794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Episode","id":"b8da0132-ba28-46ec-aa54-eb9eaac56ce7"}}}],"dataProductFolders":[],"id":"6a331de0-7872-4f86-bea0-6dd802c97921","savedPayload":{"position":{"x":23667.871774199913,"y":32820.15963806794},"targetPosition":{"x":23497.625336797584,"y":32486.0321914973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Strategy","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Strategy","project":"Superalgos","id":"88dd680c-a81b-48ae-96ba-838281abfa35","savedPayload":{"position":{"x":23648.24579060881,"y":33194.6457136009},"targetPosition":{"x":23477.99935320648,"y":32860.51826703026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Strategy","id":"895d8a04-ef45-41a7-909a-ba31013ffb90"}}},{"type":"Data Product","name":"Last Strategy","project":"Superalgos","id":"24af3ffc-6a52-4ee3-a30b-f068aa5b2062","savedPayload":{"position":{"x":23273.759715075845,"y":33175.01973000979},"targetPosition":{"x":23477.99935320648,"y":32860.51826703026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Strategy","id":"0625f524-2b97-4b4d-8a90-590ffc62ecd3"}}}],"dataProductFolders":[],"id":"74c10f36-887b-4233-81e5-abe365511bfa","savedPayload":{"position":{"x":23477.99935320648,"y":32860.51826703026},"targetPosition":{"x":23497.625336797584,"y":32486.0321914973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Position","project":"Superalgos","id":"25280962-e4e5-40df-9e42-9edfbad6f6d3","savedPayload":{"position":{"x":23273.759715075845,"y":33175.01973000979},"targetPosition":{"x":23293.38569866695,"y":32800.533654476836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Position","id":"832ecada-8da3-4ba6-b6e9-be34dd5f7ce9"}}},{"type":"Data Product","name":"Last Position","project":"Superalgos","id":"7a95a249-132d-4e0f-9182-cc7af45cacea","savedPayload":{"position":{"x":22959.25825209631,"y":32970.78009187916},"targetPosition":{"x":23293.38569866695,"y":32800.533654476836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Position","id":"477cd6d5-862a-44d0-9313-786a4e63a602"}}}],"dataProductFolders":[],"id":"7eca88a8-3724-4ca1-aa30-9227727eb834","savedPayload":{"position":{"x":23293.38569866695,"y":32800.533654476836},"targetPosition":{"x":23497.625336797584,"y":32486.0321914973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Open Stage","project":"Superalgos","id":"c9c4bca7-f918-4aa8-b538-ffe8aa31d5c2","savedPayload":{"position":{"x":23104.83496583686,"y":33026.66175662281},"targetPosition":{"x":23163.497890226947,"y":32656.27862889963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stage","id":"73c3c041-ba2a-4798-a362-a453409b518a"}}},{"type":"Data Product","name":"Close Stage","project":"Superalgos","id":"4201d7c0-43aa-4ac0-bd7e-ab26b688aa2d","savedPayload":{"position":{"x":22898.332847281992,"y":32921.44367184458},"targetPosition":{"x":23163.497890226947,"y":32656.27862889963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stage","id":"2bb9bb41-1ff5-4f83-aa5b-bfc4c9f06a9a"}}},{"type":"Data Product","name":"Trigger Stage","project":"Superalgos","id":"4fe24ddc-973f-4a5d-bf8a-d77090486125","savedPayload":{"position":{"x":22793.11476250377,"y":32714.941553289715},"targetPosition":{"x":23163.497890226947,"y":32656.27862889963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stage","id":"b6cff826-9056-4fbd-8eca-cbd6cceec962"}}},{"type":"Data Product","name":"Manage Stage","project":"Superalgos","id":"e2f3d69e-2f0a-4463-8e74-4f0768c4fb70","savedPayload":{"position":{"x":22829.37044365631,"y":32486.0321914973},"targetPosition":{"x":23163.497890226947,"y":32656.27862889963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stage","id":"bd691611-e7a6-49a8-b07d-c15360b55e40"}}}],"dataProductFolders":[],"id":"7236bd16-a6e3-48ac-89bf-dc8674b7e812","savedPayload":{"position":{"x":23163.497890226947,"y":32656.27862889963},"targetPosition":{"x":23497.625336797584,"y":32486.0321914973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"0e0b284a-5014-4ab0-ada0-4322c14a099e","savedPayload":{"position":{"x":22942.973442347367,"y":32795.291108279984},"targetPosition":{"x":23123.13926126462,"y":32466.406207906195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"7c769317-2639-4460-8b88-9dc92f7b0585"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"95b3db7a-9b62-4eab-a76b-4af8794da5a6","savedPayload":{"position":{"x":22818.117657046547,"y":32684.55024509317},"targetPosition":{"x":23123.13926126462,"y":32466.406207906195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"9cc7645a-54fe-40d6-9896-9278167011fb"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"1c6eed42-23aa-4174-aade-be29222acb8c","savedPayload":{"position":{"x":22753.675141305597,"y":32530.603279980434},"targetPosition":{"x":23123.13926126462,"y":32466.406207906195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"4c827ee0-a29b-4b65-8438-03e2ea98b410"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"a2f44cd5-090d-42e5-9eb7-73e732310e85","savedPayload":{"position":{"x":22762.409525702606,"y":32363.941297417976},"targetPosition":{"x":23123.13926126462,"y":32466.406207906195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2c753cd8-36d8-466c-bd80-1ebfa8e314dc"}}},{"type":"Data Product","name":"Last Market Order","project":"Superalgos","id":"8c24d559-ba52-46fe-81b4-8a6bf50c74b6","savedPayload":{"position":{"x":22842.590858287545,"y":32217.573747027367},"targetPosition":{"x":23123.13926126462,"y":32466.406207906195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Market Order","id":"6df1ac87-92d5-4788-b0bc-f3543b283ef0"}}},{"type":"Data Product","name":"Last Limit Order","project":"Superalgos","id":"c451c035-5ece-451f-836f-b5334cb3f967","savedPayload":{"position":{"x":22978.338242782465,"y":32120.49051724367},"targetPosition":{"x":23123.13926126462,"y":32466.406207906195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Limit Order","id":"c24ec6a1-e937-4d20-93eb-4faf2a0becc3"}}}],"dataProductFolders":[],"id":"ce9593a8-3e87-43bb-88c7-af50cf651806","savedPayload":{"position":{"x":23123.13926126462,"y":32466.406207906195},"targetPosition":{"x":23497.625336797584,"y":32486.0321914973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8be94a26-6821-48bb-8169-3eae2a1131af","savedPayload":{"position":{"x":23497.625336797584,"y":32486.0321914973},"targetPosition":{"x":23701.86497492822,"y":32171.530728517766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Trading System","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trading System Errors","project":"Superalgos","id":"ba606f99-2ae5-44dc-b7db-399e657830e1","savedPayload":{"position":{"x":23295.861450927674,"y":32622.443323337528},"targetPosition":{"x":23335.059624653044,"y":32249.497612574425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Errors","id":"1d9c570d-77c7-40ac-a61e-c5a57a411de8"}}},{"type":"Data Product","name":"Trading System Highlights","project":"Superalgos","id":"2d20d8ae-4afa-4e92-8de2-89e66e5efdee","savedPayload":{"position":{"x":23182.53338349962,"y":32592.0771591904},"targetPosition":{"x":23335.059624653044,"y":32249.497612574425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Highlights","id":"319f660a-78be-4cf4-8052-877837cad806"}}},{"type":"Data Product","name":"Trading System Values","project":"Superalgos","id":"f8a6219c-c7b4-410a-8aa4-1910583f51c8","savedPayload":{"position":{"x":23084.13564726847,"y":32528.17692212845},"targetPosition":{"x":23335.059624653044,"y":32249.497612574425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Values","id":"c90c009b-588d-45d4-aff1-05e375181dfa"}}},{"type":"Data Product","name":"Trading System Status","project":"Superalgos","id":"dcff6f56-7646-4505-aa93-6682a110f3f2","savedPayload":{"position":{"x":23010.300098233878,"y":32436.997612574425},"targetPosition":{"x":23335.059624653044,"y":32249.497612574425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Status","id":"eed48c80-35c5-49fa-b12d-18e7280ffb8f"}}},{"type":"Data Product","name":"Trading System Progress","project":"Superalgos","id":"0a9dff80-e462-4110-b988-11ce57bbbcd5","savedPayload":{"position":{"x":22968.25427437787,"y":32327.464496631084},"targetPosition":{"x":23335.059624653044,"y":32249.497612574425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Progress","id":"04c8606b-5e59-4e7d-b3ac-387bfffcd300"}}},{"type":"Data Product","name":"Trading System Running","project":"Superalgos","id":"c7e05ad0-7d4a-4ffb-9aee-191511f85ee7","savedPayload":{"position":{"x":22962.11391388994,"y":32210.299438849055},"targetPosition":{"x":23335.059624653044,"y":32249.497612574425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Running","id":"17236f59-6ef2-4cc3-913c-1ff6db052236"}}},{"type":"Data Product","name":"Trading System Announcements","project":"Superalgos","id":"e4811789-fd94-49b0-9917-8d9d434f997d","savedPayload":{"position":{"x":22992.480078037068,"y":32096.971371421},"targetPosition":{"x":23335.059624653044,"y":32249.497612574425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Announcements","id":"4a6f828a-9671-431e-8257-fc920943581e"}}},{"type":"Data Product","name":"Trading System Warnings","project":"Superalgos","id":"029ff3a7-9c65-425f-855a-882df68fa05b","savedPayload":{"position":{"x":23056.38031509902,"y":31998.573635189852},"targetPosition":{"x":23335.059624653044,"y":32249.497612574425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Warnings","id":"34310596-466a-4e9a-a5a2-256b0fe3e339"}}},{"type":"Data Product","name":"Trading System Infos","project":"Superalgos","id":"0f47adaf-25a0-431f-b15b-0fbf44069b38","savedPayload":{"position":{"x":23147.559624653044,"y":31924.73808615526},"targetPosition":{"x":23335.059624653044,"y":32249.497612574425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Infos","id":"020ad519-0fc6-4f2f-9f26-b2c7de118fb8"}}}],"dataProductFolders":[],"id":"7096a712-deb7-4adb-86e0-d688f24d2832","savedPayload":{"position":{"x":23335.059624653044,"y":32249.497612574425},"targetPosition":{"x":23701.86497492822,"y":32171.530728517766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Objects","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episodes","project":"Superalgos","id":"c6fd6067-4b57-4860-ae3b-5668e4444490","savedPayload":{"position":{"x":23053.23606537805,"y":32137.53752778946},"targetPosition":{"x":23387.363511948686,"y":31967.29109038713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episodes","id":"aeec080e-8caf-4976-8187-ba4e725b73b0"}}},{"type":"Data Product","name":"Strategies","project":"Superalgos","id":"60f88096-7343-42d1-afad-83fecd22fb44","savedPayload":{"position":{"x":23012.87743641572,"y":31947.665106796027},"targetPosition":{"x":23387.363511948686,"y":31967.29109038713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"21db6fce-8450-4b07-9015-d81a339fd030"}}}],"dataProductFolders":[{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"9f939086-c934-4924-8353-776707a7cf10","savedPayload":{"position":{"x":22722.769389032703,"y":31897.43943333598},"targetPosition":{"x":23072.862048969153,"y":31763.051452256495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"db256083-9aa2-48e1-8fd6-3425a5085302"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"da5f279e-d387-43cf-80f4-fc114b9ac906","savedPayload":{"position":{"x":22710.63986411075,"y":31665.99431034305},"targetPosition":{"x":23072.862048969153,"y":31763.051452256495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"1958f79b-5c6c-4874-9154-98c314822ed7"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"367646bb-839a-4071-8305-6d26a647585d","savedPayload":{"position":{"x":22836.866902325462,"y":31471.62171671013},"targetPosition":{"x":23072.862048969153,"y":31763.051452256495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"5deceb32-c7ab-4560-818a-0f0b9d6632fb"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"0b2fc73a-9635-40b2-98d8-0c79c69175a9","savedPayload":{"position":{"x":23053.23606537805,"y":31388.56537672353},"targetPosition":{"x":23072.862048969153,"y":31763.051452256495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2a1d405b-2fbe-4ed4-a76a-d2c7be59d20e"}}}],"dataProductFolders":[],"id":"88643ab2-7859-45d4-b967-8681cf970828","savedPayload":{"position":{"x":23072.862048969153,"y":31763.051452256495},"targetPosition":{"x":23387.363511948686,"y":31967.29109038713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trigger Stages","project":"Superalgos","id":"7fe8c58f-9cad-47c9-ba4e-d66bff094dcf","savedPayload":{"position":{"x":22846.73394682318,"y":31574.500719426407},"targetPosition":{"x":23217.117074546357,"y":31633.163643816493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stages","id":"18cc2e79-7e57-418c-b635-6c68fc11d681"}}},{"type":"Data Product","name":"Open Stages","project":"Superalgos","id":"41f17745-1819-4681-8a2b-9bdda3cd67c4","savedPayload":{"position":{"x":22951.952031601402,"y":31367.99860087154},"targetPosition":{"x":23217.117074546357,"y":31633.163643816493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stages","id":"d5938c00-0849-466d-ae14-4ea91b571678"}}},{"type":"Data Product","name":"Manage Stages","project":"Superalgos","id":"e89c8bfd-fac9-4aff-afc0-3a89c1dc2710","savedPayload":{"position":{"x":23158.45415015627,"y":31262.780516093317},"targetPosition":{"x":23217.117074546357,"y":31633.163643816493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stages","id":"8fab86b3-db8d-4113-8418-1d256bd98cf2"}}},{"type":"Data Product","name":"Close Stages","project":"Superalgos","id":"bc2c6503-e935-4ad7-a76a-89b062d41e91","savedPayload":{"position":{"x":23387.363511948686,"y":31299.036197245856},"targetPosition":{"x":23217.117074546357,"y":31633.163643816493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stages","id":"ba911e61-f951-48cd-b547-9a70aa211100"}}}],"dataProductFolders":[],"id":"869369c1-13de-4086-ad40-77b3d54cfc36","savedPayload":{"position":{"x":23217.117074546357,"y":31633.163643816493},"targetPosition":{"x":23387.363511948686,"y":31967.29109038713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Positions","project":"Superalgos","id":"3ed594a0-8452-4bd8-9eaa-37cd83a45b90","savedPayload":{"position":{"x":23092.488032560257,"y":31388.56537672353},"targetPosition":{"x":23406.98949553979,"y":31592.805014854166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Positions","id":"1eabba24-cbd4-4cbf-95e0-c5135349d41d"}}},{"type":"Data Product","name":"Position Base Asset","project":"Superalgos","id":"88997c97-e77f-490e-9eb5-c7531beec132","savedPayload":{"position":{"x":23236.74305813746,"y":31258.67756828353},"targetPosition":{"x":23406.98949553979,"y":31592.805014854166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Base Asset","id":"b371b039-f6c8-4f60-84cb-52f55c96c84d"}}},{"type":"Data Product","name":"Position Quoted Asset","project":"Superalgos","id":"b4772611-d5d0-4fbd-b689-d42de3c045d4","savedPayload":{"position":{"x":23426.615479130895,"y":31218.3189393212},"targetPosition":{"x":23406.98949553979,"y":31592.805014854166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Quoted Asset","id":"a376f02b-a5d2-4079-b5cd-ab7dc894b909"}}},{"type":"Data Product","name":"Stop Loss","project":"Superalgos","id":"9b064960-3829-441f-b955-334fb8324a53","savedPayload":{"position":{"x":23611.229133670426,"y":31278.303551874633},"targetPosition":{"x":23406.98949553979,"y":31592.805014854166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Stop Loss","id":"c18bdc82-216a-4b1d-8850-5c3c9dc2000b"}}},{"type":"Data Product","name":"Take Profit","project":"Superalgos","id":"cbcc817b-4333-4c80-addc-e2a0ee0845c1","savedPayload":{"position":{"x":23741.116942110428,"y":31422.558577451837},"targetPosition":{"x":23406.98949553979,"y":31592.805014854166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Take Profit","id":"2542c7d0-fa26-4b52-a59a-a3630e52eb89"}}}],"dataProductFolders":[],"id":"7f74f2e1-91b6-4d7a-87cb-1d6232a41876","savedPayload":{"position":{"x":23406.98949553979,"y":31592.805014854166},"targetPosition":{"x":23387.363511948686,"y":31967.29109038713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"291949a0-847b-4b18-b3b4-191496fc38a9","savedPayload":{"position":{"x":23387.363511948686,"y":31967.29109038713},"targetPosition":{"x":23701.86497492822,"y":32171.530728517766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ae78f4fc-6ee5-4ae4-9847-3bab0e2e51a6","savedPayload":{"position":{"x":23701.86497492822,"y":32171.530728517766},"targetPosition":{"x":24068.670325203395,"y":32093.563844461107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa2b0766-a3d5-47e1-acd8-7345af564388","savedPayload":{"position":{"x":24068.670325203395,"y":32093.563844461107},"targetPosition":{"x":24313.207225386846,"y":32041.58592175667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"9ef30086-0c9d-47c2-8983-db5fc9a99583","savedPayload":{"position":{"x":24249.549372136753,"y":32479.956884291958},"targetPosition":{"x":24509.356993272086,"y":32329.956884291958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Live Trading Session","name":"Lightning Strike","id":"1ce123af-467f-4295-b317-dba8729faf25"}}}],"id":"026bab29-64d0-4d83-862c-446657efa101","savedPayload":{"position":{"x":24509.356993272086,"y":32329.956884291958},"targetPosition":{"x":24659.356993272086,"y":32070.149263156625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"f601d2a7-fada-477f-9b63-3ef7ed42d44a","savedPayload":{"position":{"x":24659.356993272086,"y":32070.149263156625},"targetPosition":{"x":24809.356993272086,"y":31810.341642021293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"691abc38-257f-462f-bee5-1cc51d77cea6","savedPayload":{"position":{"x":24809.356993272086,"y":31810.341642021293},"targetPosition":{"x":24959.356993272086,"y":31550.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"e4e268f3-a677-4f90-90a1-d87244e647e5","savedPayload":{"position":{"x":24959.356993272086,"y":31550.53402088596},"targetPosition":{"x":25109.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningMinesData":{"type":"Learning Mines Data","name":"New Learning Mines Data","project":"Superalgos","projectLearningProducts":[{"type":"Project Learning Products","name":"Superalgos","project":"Superalgos","exchangeLearningProducts":[],"id":"071c1c13-0e4c-4649-b2eb-7dc422278961","savedPayload":{"position":{"x":24633.344989097342,"y":31655.98325715586},"targetPosition":{"x":24871.350991184714,"y":31473.354828453244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"2845a687-becc-4c3b-bc79-b2293ba876ba","savedPayload":{"position":{"x":24871.350991184714,"y":31473.354828453244},"targetPosition":{"x":25109.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e2697759-6038-4943-b90c-5a68651ff9a8","savedPayload":{"position":{"x":25109.356993272086,"y":31290.726399750627},"targetPosition":{"x":25259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"d"}}},"id":"e452cf65-2b2b-44f2-9e67-bdd9d3c008e4","savedPayload":{"position":{"x":25259.356993272086,"y":31030.918778615294},"targetPosition":{"x":24959.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"3c165071-7558-4708-9999-8ffe71d346b1","savedPayload":{"position":{"x":24959.356993272086,"y":31030.918778615294},"targetPosition":{"x":24959.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","project":"Superalgos","cryptoExchanges":[{"type":"Crypto Exchanges","name":"Tested","project":"Superalgos","exchanges":[{"type":"Crypto Exchange","name":"Binance","config":"{\n \"codeName\": \"binance\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"EUR\"} \n}","project":"Superalgos","assets":[{"type":"Asset","name":"Bitcoin","config":"{ \n\"codeName\": \"BTC\"\n}","project":"Superalgos","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa","savedPayload":{"position":{"x":19793.079365950267,"y":30513.325102172115},"targetPosition":{"x":19715.43365241951,"y":30803.102850058836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Tether","config":"{ \n\"codeName\": \"USDT\"\n}","project":"Superalgos","id":"f110bfa0-bd5b-469b-a940-4524c8688136","savedPayload":{"position":{"x":20005.21140030623,"y":30725.45713652808},"targetPosition":{"x":19715.43365241951,"y":30803.102850058836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"95d2c30f-215b-486e-8119-f4eac0279575","savedPayload":{"position":{"x":19715.43365241951,"y":30803.102850058836},"targetPosition":{"x":19503.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"E"}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","project":"Superalgos","markets":[{"type":"Market","name":"BTC/USDT","config":"{ \n\"codeName\": \"BTC/USDT\"\n}","project":"Superalgos","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","project":"Superalgos","id":"1017b30d-de1b-4212-991e-9fd0a5b6c814","savedPayload":{"position":{"x":20393.079365950267,"y":30937.589170884043},"targetPosition":{"x":20103.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","project":"Superalgos","id":"705c4a67-787a-48cd-a3dc-3a557438bf0b","savedPayload":{"position":{"x":20393.079365950267,"y":31092.880597945557},"targetPosition":{"x":20103.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"f110bfa0-bd5b-469b-a940-4524c8688136"}}},"id":"9a867bf0-a71d-445c-b99a-75b60bbdce09","savedPayload":{"position":{"x":20103.301618063546,"y":31015.2348844148},"targetPosition":{"x":19803.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2fd80894-900e-44ac-a1a7-56c14124f7a1","savedPayload":{"position":{"x":19803.301618063546,"y":31015.2348844148},"targetPosition":{"x":19503.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[{"type":"Exchange Account Asset","name":"Bitcoin","project":"Superalgos","id":"ba6f3d5c-b36b-49d9-947f-392068109169","savedPayload":{"position":{"x":20507.121182548915,"y":31439.498953126727},"targetPosition":{"x":20217.343434662194,"y":31517.144666657485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa"}}},{"type":"Exchange Account Asset","name":"Tether","project":"Superalgos","id":"c90be267-90f9-45ae-b225-0578adb4aad9","savedPayload":{"position":{"x":20429.475469018158,"y":31729.27670101345},"targetPosition":{"x":20217.343434662194,"y":31517.144666657485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"f110bfa0-bd5b-469b-a940-4524c8688136"}}}],"id":"8ac5c2a9-a238-48ae-ab43-0a0a95a37464","savedPayload":{"position":{"x":20217.343434662194,"y":31517.144666657485},"targetPosition":{"x":19927.565686775473,"y":31439.498953126727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"Key for Lighting Strike","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e85bbbd6-aca8-450f-9237-788062de5761","savedPayload":{"position":{"x":20082.857113836988,"y":32019.05444890017},"targetPosition":{"x":20005.21140030623,"y":31729.27670101345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"48925cc9-f3cd-4499-8466-1338fed28a0d","savedPayload":{"position":{"x":20005.21140030623,"y":31729.27670101345},"targetPosition":{"x":19927.565686775473,"y":31439.498953126727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"63794496-c94b-42f9-81cc-c588708617a6","savedPayload":{"position":{"x":19927.565686775473,"y":31439.498953126727},"targetPosition":{"x":19715.43365241951,"y":31227.366918770764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4b0c1ac5-515f-44a9-b9b9-e698a9c51eac","savedPayload":{"position":{"x":19715.43365241951,"y":31227.366918770764},"targetPosition":{"x":19503.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b","savedPayload":{"position":{"x":19503.301618063546,"y":31015.2348844148},"targetPosition":{"x":19203.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"tutorial":{"status":"Done"}}}],"id":"e3879d63-6f8f-41a3-8ac3-0349c4361722","savedPayload":{"position":{"x":19203.301618063546,"y":31015.2348844148},"targetPosition":{"x":18903.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Untested","project":"Superalgos","exchanges":[{"type":"Crypto Exchange","name":"ACX","config":"{ \n\"codeName\": \"acx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"ebcb522b-ae58-46d2-9d82-a9b0beec3976","savedPayload":{"position":{"x":17935.64382962515,"y":31014.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b2649588-27c6-442c-b179-f6d8817188b3","savedPayload":{"position":{"x":17954.64382962515,"y":31004.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9b2051d5-7ee7-4e94-8c8d-306674889339","savedPayload":{"position":{"x":17838.64382962515,"y":30896.23747069523},"targetPosition":{"x":17766.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"1d5461aa-d26c-4df5-b383-8c83e311b8ca","savedPayload":{"position":{"x":17643.64382962515,"y":30952.23747069523},"targetPosition":{"x":17698.64382962515,"y":30973.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c6372400-de52-4b63-97f3-f748aac9c63f","savedPayload":{"position":{"x":17698.64382962515,"y":30973.23747069523},"targetPosition":{"x":17766.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c948314e-2247-4234-b83d-cc2c1b152665","savedPayload":{"position":{"x":17766.64382962515,"y":30905.23747069523},"targetPosition":{"x":17837.64382962515,"y":30978.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04ccb742-ef1b-4138-b38d-a6b0d92f2f8e","savedPayload":{"position":{"x":17837.64382962515,"y":30978.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e9c21b2d-de21-43b5-8b48-51367a8c981c","savedPayload":{"position":{"x":19313.14497226101,"y":30565.583066825377},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"AOFEX","config":"{ \n\"codeName\": \"aofex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"623ef91b-04c0-4bd5-ac0d-b32c809be3ea","savedPayload":{"position":{"x":17973.64382962515,"y":30923.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"9d0b5855-59a6-4dda-9a4b-33d7a44d582e","savedPayload":{"position":{"x":17901.64382962515,"y":30994.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"e898e569-0dd3-4a22-baa5-caaace66d4ed","savedPayload":{"position":{"x":18062.64382962515,"y":30838.23747069523},"targetPosition":{"x":17982.64382962515,"y":30899.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"64a69d3d-15ff-41c3-a926-5ec93c932ab1","savedPayload":{"position":{"x":17822.64382962515,"y":31052.23747069523},"targetPosition":{"x":17893.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae2785c5-75a1-44fc-a71b-363d88cb5dac","savedPayload":{"position":{"x":17893.64382962515,"y":30981.23747069523},"targetPosition":{"x":17982.64382962515,"y":30899.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07ea69aa-7357-43b1-b548-a4c4fab70c55","savedPayload":{"position":{"x":17982.64382962515,"y":30899.23747069523},"targetPosition":{"x":17971.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2146b410-fc4e-452d-ae57-5d58c9a29706","savedPayload":{"position":{"x":17971.64382962515,"y":30962.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c2e9bb45-97c7-47e8-b13c-56946e673c53","savedPayload":{"position":{"x":19413.67778623216,"y":30647.89853748846},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bequant","config":"{ \n\"codeName\": \"bequant\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"b23c8adf-c880-48fd-b4af-4b4be86cf0e5","savedPayload":{"position":{"x":18059.64382962515,"y":31101.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"523bd94f-68f9-457e-91fd-806c1b95e98d","savedPayload":{"position":{"x":18006.64382962515,"y":31117.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9d914bb1-a68b-41ae-8666-0fcc755358c1","savedPayload":{"position":{"x":17859.64382962515,"y":30964.23747069523},"targetPosition":{"x":17936.64382962515,"y":31059.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"15d903b5-113c-465e-8120-7c46a9a85565","savedPayload":{"position":{"x":17976.64382962515,"y":31146.23747069523},"targetPosition":{"x":17943.64382962515,"y":31134.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2d1c0bc3-abe2-4340-91bf-2eef5b98a2f0","savedPayload":{"position":{"x":17943.64382962515,"y":31134.23747069523},"targetPosition":{"x":17936.64382962515,"y":31059.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a50d459-914c-4bfc-91e8-f15c383280eb","savedPayload":{"position":{"x":17936.64382962515,"y":31059.23747069523},"targetPosition":{"x":17931.64382962515,"y":31071.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b2f2b69f-3bef-4edc-9950-5261d9f36382","savedPayload":{"position":{"x":17931.64382962515,"y":31071.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e928d3e-a2c2-4341-aa2f-b753551c9479","savedPayload":{"position":{"x":19504.72140465123,"y":30740.600980501622},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bibox","config":"{ \n\"codeName\": \"bibox\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"13c1f22c-9a35-4d3f-b000-c96984fd6a2b","savedPayload":{"position":{"x":17995.64382962515,"y":31047.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3c6df49d-70c3-468a-bdd8-6768ce6d3a9d","savedPayload":{"position":{"x":17916.64382962515,"y":31018.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5a54ef39-8fba-4a5f-ac24-5f27e763e28f","savedPayload":{"position":{"x":18050.64382962515,"y":31174.23747069523},"targetPosition":{"x":17956.64382962515,"y":31128.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"08df1f45-dab0-463a-8758-359973f2620d","savedPayload":{"position":{"x":17899.64382962515,"y":31242.23747069523},"targetPosition":{"x":17959.64382962515,"y":31180.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"105b52c2-90ad-4fa1-b690-d8fab14209b4","savedPayload":{"position":{"x":17959.64382962515,"y":31180.23747069523},"targetPosition":{"x":17956.64382962515,"y":31128.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"68c1ef42-1b7b-4cc6-981f-80b20dabcd89","savedPayload":{"position":{"x":17956.64382962515,"y":31128.23747069523},"targetPosition":{"x":17907.64382962515,"y":31057.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fc35e5d0-ea61-42b6-979a-859f19c5ac6c","savedPayload":{"position":{"x":17907.64382962515,"y":31057.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e5f9ee4d-77a3-48ae-b354-b2f6a97d5e47","savedPayload":{"position":{"x":19585.208424334218,"y":30842.603544479174},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BigONE","config":"{ \n\"codeName\": \"bigone\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"3f289513-c1c8-457c-b65a-8cf62b5f5eb5","savedPayload":{"position":{"x":17778.64382962515,"y":31071.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8b365e73-1cee-496a-921f-121cb628a130","savedPayload":{"position":{"x":17798.64382962515,"y":31121.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"447a4f6f-cfa0-443e-9339-d7c1153ada31","savedPayload":{"position":{"x":17921.64382962515,"y":31046.23747069523},"targetPosition":{"x":17891.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0d234c53-c121-471e-bce1-a258c13cd148","savedPayload":{"position":{"x":17848.64382962515,"y":31175.23747069523},"targetPosition":{"x":17944.64382962515,"y":31086.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"816e1b6a-d790-4abd-9ae1-e203fa737af2","savedPayload":{"position":{"x":17944.64382962515,"y":31086.23747069523},"targetPosition":{"x":17891.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"561a57f7-8c22-4e50-840d-d983ed6bb864","savedPayload":{"position":{"x":17891.64382962515,"y":31102.23747069523},"targetPosition":{"x":17813.64382962515,"y":31064.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e243bd5d-ade7-46c8-876b-6ad8c6eb5e0a","savedPayload":{"position":{"x":17813.64382962515,"y":31064.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fb9ee540-bf12-4dda-bf87-cb6b58fce649","savedPayload":{"position":{"x":19654.195208565325,"y":30952.710342620318},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Binance Jersey","config":"{ \n\"codeName\": \"binanceje\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"0b979ea9-7a2d-4744-9517-2dfa632dfafc","savedPayload":{"position":{"x":17852.64382962515,"y":30989.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b9a4497d-20f1-4c61-9a79-444e0fe0ddf4","savedPayload":{"position":{"x":17924.64382962515,"y":30952.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1b24d8a4-ec70-4501-838c-7633f6f7288e","savedPayload":{"position":{"x":17882.64382962515,"y":31051.23747069523},"targetPosition":{"x":17942.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"627472e3-638f-4d68-a917-d0844d6a227b","savedPayload":{"position":{"x":17991.64382962515,"y":31190.23747069523},"targetPosition":{"x":17986.64382962515,"y":31110.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"b8ce75fb-93c9-4ca2-9b2b-9f8ed8af34f3","savedPayload":{"position":{"x":17986.64382962515,"y":31110.23747069523},"targetPosition":{"x":17942.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"08b226e4-14ee-4ad3-8d96-efe77cc38489","savedPayload":{"position":{"x":17942.64382962515,"y":31066.23747069523},"targetPosition":{"x":17949.64382962515,"y":31009.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2771eb11-bc72-4273-9e1b-9ac5410c6354","savedPayload":{"position":{"x":17949.64382962515,"y":31009.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2782350a-84a2-40ec-87c6-3c8043376a18","savedPayload":{"position":{"x":19710.872950374665,"y":31069.630473388454},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Binance US","config":"{ \n\"codeName\": \"binanceus\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"817ee1cf-b44c-4458-a9c4-a05a17ea0510","savedPayload":{"position":{"x":17943.64382962515,"y":30999.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c6694e9e-74dc-4c2e-9151-90f1d6631b45","savedPayload":{"position":{"x":17937.64382962515,"y":30989.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"00144904-5363-49eb-b445-8c8283d92b0d","savedPayload":{"position":{"x":17838.64382962515,"y":31193.23747069523},"targetPosition":{"x":17781.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2e71aa3c-03d4-4dbd-bc50-43b30f59e655","savedPayload":{"position":{"x":17783.64382962515,"y":31148.23747069523},"targetPosition":{"x":17703.64382962515,"y":31182.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"a4d0df32-c600-4421-b893-2a05f0442ed6","savedPayload":{"position":{"x":17703.64382962515,"y":31182.23747069523},"targetPosition":{"x":17781.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7a39543a-00e1-452b-8aba-36c2b240f9fc","savedPayload":{"position":{"x":17781.64382962515,"y":31156.23747069523},"targetPosition":{"x":17799.64382962515,"y":31119.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2543c4e5-8233-4348-b6dc-e47aed1ff381","savedPayload":{"position":{"x":17799.64382962515,"y":31119.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0b2b67d2-853b-470e-8b13-925956ad5621","savedPayload":{"position":{"x":19754.577155060477,"y":31191.993155151424},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"bitbank","config":"{ \n\"codeName\": \"bitbank\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"eb6b6842-9bf7-450e-baa3-7a87541a1cf6","savedPayload":{"position":{"x":17955.64382962515,"y":31107.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"6353ff56-759f-457d-81f3-fdb8ae5b3e83","savedPayload":{"position":{"x":17942.64382962515,"y":31183.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a2b297c7-f33b-48b9-98fa-d339c7b0ff67","savedPayload":{"position":{"x":17999.64382962515,"y":31016.23747069523},"targetPosition":{"x":17945.64382962515,"y":31116.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"9ce6c354-b294-4062-b763-421e5edb69de","savedPayload":{"position":{"x":17883.64382962515,"y":31186.23747069523},"targetPosition":{"x":17845.64382962515,"y":31202.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"547dbf6c-a292-46c0-a628-62856858121e","savedPayload":{"position":{"x":17845.64382962515,"y":31202.23747069523},"targetPosition":{"x":17945.64382962515,"y":31116.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"097055b3-37e5-4100-a24b-91e404fe49a6","savedPayload":{"position":{"x":17945.64382962515,"y":31116.23747069523},"targetPosition":{"x":17897.64382962515,"y":31142.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51aed4ce-0303-431e-a15f-e6f133f7a2cf","savedPayload":{"position":{"x":17897.64382962515,"y":31142.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c9a96a7-ed12-4b3e-bb51-306a8da131f5","savedPayload":{"position":{"x":19784.79543078195,"y":31318.363797342816},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitBay","config":"{ \n\"codeName\": \"bitbay\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"83b4e523-72a7-41ce-9363-fe0c799dcac1","savedPayload":{"position":{"x":17861.64382962515,"y":30965.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"966698f7-8a28-42d7-bb80-f7cd0601e44f","savedPayload":{"position":{"x":17823.64382962515,"y":31026.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"554829eb-3d40-4b95-a1cd-9de943763e2c","savedPayload":{"position":{"x":17914.64382962515,"y":30924.23747069523},"targetPosition":{"x":17876.64382962515,"y":30921.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2f534989-7ca7-4c3d-b14a-3b1071543c8c","savedPayload":{"position":{"x":17845.64382962515,"y":30853.23747069523},"targetPosition":{"x":17832.64382962515,"y":30821.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2f6b76b4-51d4-434f-8aa1-ed86b0e26bd2","savedPayload":{"position":{"x":17832.64382962515,"y":30821.23747069523},"targetPosition":{"x":17876.64382962515,"y":30921.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cbcc3ab6-9758-4273-99d2-9d05fdd392b5","savedPayload":{"position":{"x":17876.64382962515,"y":30921.23747069523},"targetPosition":{"x":17805.64382962515,"y":31015.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dada6c12-7c41-4ab8-9922-908233829f58","savedPayload":{"position":{"x":17805.64382962515,"y":31015.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8778eee5-97a2-4f9d-bd25-cd5a64ec6663","savedPayload":{"position":{"x":19801.173495885087,"y":31447.26081972472},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitfinex","config":"{ \n\"codeName\": \"bitfinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"33508b53-2769-4f3d-8c98-9fa37e5cbf5b","savedPayload":{"position":{"x":17888.64382962515,"y":31043.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4d4ad5a1-81a7-4f92-83db-99f57ce261bb","savedPayload":{"position":{"x":17975.64382962515,"y":30868.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"29d52baf-645c-4d8f-9631-ebd391b4c815","savedPayload":{"position":{"x":18034.64382962515,"y":31066.23747069523},"targetPosition":{"x":18037.64382962515,"y":31012.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d615c33d-c6cf-4572-ac32-8e9ddeb5bb52","savedPayload":{"position":{"x":18023.64382962515,"y":30916.23747069523},"targetPosition":{"x":18106.64382962515,"y":30982.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"0c189040-6318-483c-b6d7-982370a3298d","savedPayload":{"position":{"x":18106.64382962515,"y":30982.23747069523},"targetPosition":{"x":18037.64382962515,"y":31012.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd60de4a-d17c-4ba7-936a-cbf2305fe3bb","savedPayload":{"position":{"x":18037.64382962515,"y":31012.23747069523},"targetPosition":{"x":18039.64382962515,"y":30964.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d247f4f5-6f16-4a59-a4a5-6d1554b43562","savedPayload":{"position":{"x":18039.64382962515,"y":30964.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c076027-683d-4778-8a6a-e60984980fdf","savedPayload":{"position":{"x":19803.51933253116,"y":31577.173022561386},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitfinex","config":"{ \n\"codeName\": \"bitfinex2\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"8fc7f955-5c81-446c-bbeb-205988bf1fc0","savedPayload":{"position":{"x":17830.64382962515,"y":31051.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d5ba38e9-3282-4634-b922-16532c71f426","savedPayload":{"position":{"x":17819.64382962515,"y":31118.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1cebbed5-28f7-4ccd-afce-9e7634d90fb6","savedPayload":{"position":{"x":17892.64382962515,"y":30997.23747069523},"targetPosition":{"x":17855.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0d109aa9-c80c-4a64-96f0-1d8fda0a70a4","savedPayload":{"position":{"x":17888.64382962515,"y":30805.23747069523},"targetPosition":{"x":17942.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5459ab1e-a1ce-4dae-ae72-61c1f7f37ce0","savedPayload":{"position":{"x":17942.64382962515,"y":30905.23747069523},"targetPosition":{"x":17855.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a4615f7a-000d-4ff9-b5ac-109bc9a3a849","savedPayload":{"position":{"x":17855.64382962515,"y":30970.23747069523},"targetPosition":{"x":17919.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e10d303e-ea21-4625-bae1-c32ad7a44e8a","savedPayload":{"position":{"x":17919.64382962515,"y":31043.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f3114102-a73c-4086-9594-5888ef1ab4ec","savedPayload":{"position":{"x":19791.80543793031,"y":31706.577304054405},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitforex","config":"{ \n\"codeName\": \"bitforex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"698e5e38-ad73-4cb6-b7f6-2b69913faff9","savedPayload":{"position":{"x":17897.64382962515,"y":30956.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"f0142bd4-1b63-4d12-a4b7-e150d0da197f","savedPayload":{"position":{"x":18020.64382962515,"y":31021.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"7164fb28-405b-461a-a7d4-59d438ecf1ce","savedPayload":{"position":{"x":17821.64382962515,"y":30984.23747069523},"targetPosition":{"x":17901.64382962515,"y":30907.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"ce8a00c9-f090-4ec2-84ed-c6661f8bf7b0","savedPayload":{"position":{"x":17825.64382962515,"y":30965.23747069523},"targetPosition":{"x":17818.64382962515,"y":30913.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"579cd74b-98f6-4000-990b-25ae1456c94b","savedPayload":{"position":{"x":17818.64382962515,"y":30913.23747069523},"targetPosition":{"x":17901.64382962515,"y":30907.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"dbac6eef-25d2-4cda-86a6-59ce8a9a26bc","savedPayload":{"position":{"x":17901.64382962515,"y":30907.23747069523},"targetPosition":{"x":17909.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1da9dd3-22ec-4536-bb5a-4d0bb8a56b81","savedPayload":{"position":{"x":17909.64382962515,"y":30970.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"499a5a3b-7871-4c95-9b2e-d58d4d9e2392","savedPayload":{"position":{"x":19766.169146786622,"y":31833.956517318737},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"bitkk","config":"{ \n\"codeName\": \"bitkk\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"efbb916c-780b-447f-a4c2-df68570d4ee1","savedPayload":{"position":{"x":17931.64382962515,"y":30937.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0d829516-81d9-46a5-9861-7d94cc89455d","savedPayload":{"position":{"x":17951.64382962515,"y":30912.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"fc174aa3-c485-4b9b-ba19-444b0189ccb1","savedPayload":{"position":{"x":17788.64382962515,"y":30980.23747069523},"targetPosition":{"x":17834.64382962515,"y":30983.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"15921d8a-4b45-481c-9165-79969ed3fd27","savedPayload":{"position":{"x":17796.64382962515,"y":30936.23747069523},"targetPosition":{"x":17891.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"927d5c8a-85df-48bb-b097-c36abb76ca0e","savedPayload":{"position":{"x":17891.64382962515,"y":30922.23747069523},"targetPosition":{"x":17834.64382962515,"y":30983.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"43d218c2-e633-47d5-8dd8-60bc7f7c0b9e","savedPayload":{"position":{"x":17834.64382962515,"y":30983.23747069523},"targetPosition":{"x":17853.64382962515,"y":30925.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2d310d61-cbc7-4306-af02-be3888939545","savedPayload":{"position":{"x":17853.64382962515,"y":30925.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ded39740-3c93-4fda-bb9c-6ac75d2109f4","savedPayload":{"position":{"x":19726.911021174266,"y":31957.817257542785},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMart","config":"{ \n\"codeName\": \"bitmart\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"10374855-6b4a-460b-9c95-70072ac00315","savedPayload":{"position":{"x":17907.64382962515,"y":30901.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3aded60c-4061-48ff-ad33-212c965b5c43","savedPayload":{"position":{"x":17829.64382962515,"y":30925.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1789a3ca-d948-497d-8d1b-1eefd25d16a3","savedPayload":{"position":{"x":17886.64382962515,"y":30937.23747069523},"targetPosition":{"x":17895.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"038170bc-0ca7-4a92-8219-61b7bc8431b0","savedPayload":{"position":{"x":17893.64382962515,"y":31034.23747069523},"targetPosition":{"x":17835.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"55f79ede-ef02-405f-92bd-11902ab3cc7a","savedPayload":{"position":{"x":17835.64382962515,"y":30962.23747069523},"targetPosition":{"x":17895.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8185c660-4af3-4a62-bfa9-8922861101b5","savedPayload":{"position":{"x":17895.64382962515,"y":30988.23747069523},"targetPosition":{"x":17819.64382962515,"y":30909.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"546d48c3-df31-495c-b3b4-cb35109c5542","savedPayload":{"position":{"x":17819.64382962515,"y":30909.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c7ed52a7-895b-46f1-a745-35954d8bcfc6","savedPayload":{"position":{"x":19674.491326722004,"y":32076.707370794375},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMax","config":"{ \n\"codeName\": \"bitmax\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"8a042d0d-7a7a-4a76-889e-42d8642404f4","savedPayload":{"position":{"x":17944.64382962515,"y":31046.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0c4fcc48-51e6-4ff2-925f-405cda6d1122","savedPayload":{"position":{"x":17898.64382962515,"y":31024.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"ef9d5381-d9e3-47f5-9069-6fc14eda0fa3","savedPayload":{"position":{"x":17879.64382962515,"y":31096.23747069523},"targetPosition":{"x":17977.64382962515,"y":31041.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c66fe606-9705-45b0-a196-7ea3efb0221e","savedPayload":{"position":{"x":17982.64382962515,"y":31053.23747069523},"targetPosition":{"x":17943.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"80a5f68e-776a-44de-8797-d2eb806c306e","savedPayload":{"position":{"x":17943.64382962515,"y":31083.23747069523},"targetPosition":{"x":17977.64382962515,"y":31041.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"011fcf1c-1c94-4c36-a246-d6c400aa39dc","savedPayload":{"position":{"x":17977.64382962515,"y":31041.23747069523},"targetPosition":{"x":17942.64382962515,"y":31103.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4a87b8c5-e009-427f-afb7-21afe5594b59","savedPayload":{"position":{"x":17942.64382962515,"y":31103.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fc6a9048-ab8c-48f9-91ae-6c95c28714b0","savedPayload":{"position":{"x":19609.524636419505,"y":32189.2329791979},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMEX","config":"{ \n\"codeName\": \"bitmex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f7636e2b-354a-4217-894b-5e26eddc0c2a","savedPayload":{"position":{"x":17894.64382962515,"y":30934.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"6eb2ddd1-6d06-456c-b4e0-7df56ba182e6","savedPayload":{"position":{"x":17823.64382962515,"y":30834.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"b4a4b8fe-d923-4eb0-a066-171b83d1540d","savedPayload":{"position":{"x":17902.64382962515,"y":31064.23747069523},"targetPosition":{"x":17815.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"918ed585-ce46-4d51-a07a-9beee51f70eb","savedPayload":{"position":{"x":17711.64382962515,"y":31036.23747069523},"targetPosition":{"x":17805.64382962515,"y":31078.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"9efef4d8-5be3-4d17-a645-6edffd9535cf","savedPayload":{"position":{"x":17805.64382962515,"y":31078.23747069523},"targetPosition":{"x":17815.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6ad31a6e-f27b-45c3-9996-a41fb39aa154","savedPayload":{"position":{"x":17815.64382962515,"y":30988.23747069523},"targetPosition":{"x":17844.64382962515,"y":30896.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"82887393-cb1c-4b01-8581-4b3dabc86584","savedPayload":{"position":{"x":17844.64382962515,"y":30896.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1e2f1dd0-ebf1-4485-83d8-7723a9e3e714","savedPayload":{"position":{"x":19532.77262531095,"y":32294.07482287797},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bittrex","config":"{ \n\"codeName\": \"bittrex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"88d4ef94-f030-42df-9115-69d9611317b1","savedPayload":{"position":{"x":17839.64382962515,"y":31009.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"7fe8234d-9a39-4b28-bf98-43b4fdb57ee5","savedPayload":{"position":{"x":17878.64382962515,"y":31045.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5ba7fe13-1e0f-403a-8f4b-8e3968d2e5e2","savedPayload":{"position":{"x":17841.64382962515,"y":30890.23747069523},"targetPosition":{"x":17742.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e926fbb8-d2ac-4e3d-aa59-a0a828d202fd","savedPayload":{"position":{"x":17707.64382962515,"y":30983.23747069523},"targetPosition":{"x":17782.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"4fbe41e1-cb15-4bc2-a3de-681c5b22cc97","savedPayload":{"position":{"x":17782.64382962515,"y":31052.23747069523},"targetPosition":{"x":17742.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ab9fe180-1c07-44de-a0a1-863761ac52d6","savedPayload":{"position":{"x":17742.64382962515,"y":30961.23747069523},"targetPosition":{"x":17796.64382962515,"y":30903.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"584f29ca-9b3c-4b7f-a2b0-aab4180ecefd","savedPayload":{"position":{"x":17796.64382962515,"y":30903.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f598f002-8fc5-491f-888e-07d017ea83c6","savedPayload":{"position":{"x":19445.135140551556,"y":32390.003727075255},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bit-Z","config":"{ \n\"codeName\": \"bitz\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"0a22e02b-7d2e-4955-9cfc-ed7d95f0c9a0","savedPayload":{"position":{"x":17751.64382962515,"y":31083.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"298b45af-b73d-4cd5-848a-97de7b857569","savedPayload":{"position":{"x":17944.64382962515,"y":31083.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6ede807b-b1ab-42b5-bfd7-3b12a942447e","savedPayload":{"position":{"x":17871.64382962515,"y":31049.23747069523},"targetPosition":{"x":17772.64382962515,"y":31098.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"dc172858-3241-4487-950a-e5cae03ac376","savedPayload":{"position":{"x":17751.64382962515,"y":31081.23747069523},"targetPosition":{"x":17753.64382962515,"y":31028.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"19c07cee-1fdf-4e02-ac9f-d110b64ee033","savedPayload":{"position":{"x":17753.64382962515,"y":31028.23747069523},"targetPosition":{"x":17772.64382962515,"y":31098.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4ef5048-ac4c-410e-bd6d-3338e33ab108","savedPayload":{"position":{"x":17772.64382962515,"y":31098.23747069523},"targetPosition":{"x":17788.64382962515,"y":31134.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e7e96c41-c839-4eec-9bcf-1c60d60fa3f5","savedPayload":{"position":{"x":17788.64382962515,"y":31134.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6cc10926-fe41-43be-887b-fa8aba1c7377","savedPayload":{"position":{"x":19347.639651522415,"y":32475.89501309667},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BTC-Alpha","config":"{ \n\"codeName\": \"btcalpha\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"263e3b9c-8fdd-4376-b53b-87f32d0f5898","savedPayload":{"position":{"x":17904.64382962515,"y":30922.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"804603e1-3e0f-4219-a9b7-ee27810d4f07","savedPayload":{"position":{"x":17829.64382962515,"y":30977.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"83b25fff-e448-483f-9bee-cb85fa592c6e","savedPayload":{"position":{"x":17734.64382962515,"y":30862.23747069523},"targetPosition":{"x":17829.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"efcfa3ca-0f82-4eb7-9b04-ed5eb4e1c3cf","savedPayload":{"position":{"x":17799.64382962515,"y":30864.23747069523},"targetPosition":{"x":17837.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"9ca8d728-ee11-4905-9a3a-5ca4ed50f3df","savedPayload":{"position":{"x":17837.64382962515,"y":30919.23747069523},"targetPosition":{"x":17829.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2cfde277-afa6-4ad3-bb5b-8a32b89e2037","savedPayload":{"position":{"x":17829.64382962515,"y":30960.23747069523},"targetPosition":{"x":17903.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"297a0ea2-f6d7-47fd-9fb7-0d99d00a87d8","savedPayload":{"position":{"x":17903.64382962515,"y":30969.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"30e5485f-213b-435b-a670-07b76cfe5cae","savedPayload":{"position":{"x":19241.429203691412,"y":32550.741684144767},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BTC Markets","config":"{ \n\"codeName\": \"btcmarkets\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"fcb3b880-0852-4d93-8714-67373f9dca16","savedPayload":{"position":{"x":17911.64382962515,"y":31036.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"953d8eff-0b2e-4b07-8635-393fddae0c9d","savedPayload":{"position":{"x":18025.64382962515,"y":31127.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c08873f6-9120-4764-8b06-c8110468b423","savedPayload":{"position":{"x":17935.64382962515,"y":30927.23747069523},"targetPosition":{"x":18027.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"beaa2557-4976-4e53-8a24-7ea00fc3afd5","savedPayload":{"position":{"x":18054.64382962515,"y":30851.23747069523},"targetPosition":{"x":18125.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"445158a2-91b4-4ad8-8380-036cbba6ad7e","savedPayload":{"position":{"x":18125.64382962515,"y":30951.23747069523},"targetPosition":{"x":18027.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd00e08c-a26d-4b11-93a3-b0e8f35bec4b","savedPayload":{"position":{"x":18027.64382962515,"y":31003.23747069523},"targetPosition":{"x":18016.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"35cb55c1-ceb3-4093-98af-8a1c2411fe0f","savedPayload":{"position":{"x":18016.64382962515,"y":31075.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ac2fda42-95ca-404a-8dd2-72bff0ff5a0f","savedPayload":{"position":{"x":19127.749017450227,"y":32613.66623143447},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Buda","config":"{ \n\"codeName\": \"buda\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"27f3573d-e1f0-473f-9bfd-f9198e7240a0","savedPayload":{"position":{"x":17945.64382962515,"y":30937.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4ddc0981-4e45-42f3-ae11-f5b136b2bc3d","savedPayload":{"position":{"x":17783.64382962515,"y":31008.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5a325d59-e6a6-4f76-a311-5e67c5f5a8a2","savedPayload":{"position":{"x":17980.64382962515,"y":30843.23747069523},"targetPosition":{"x":17956.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"fb985ab9-7759-4780-a052-8ee9be0b712a","savedPayload":{"position":{"x":17907.64382962515,"y":30968.23747069523},"targetPosition":{"x":17958.64382962515,"y":30884.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fdf7665a-2974-467b-9280-4077a888733f","savedPayload":{"position":{"x":17958.64382962515,"y":30884.23747069523},"targetPosition":{"x":17956.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a3105cfc-f80e-4bcb-b399-6ea9c0f7edf0","savedPayload":{"position":{"x":17956.64382962515,"y":30936.23747069523},"targetPosition":{"x":17872.64382962515,"y":30941.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5d69a76f-e7bc-4538-950e-2e2353eccea3","savedPayload":{"position":{"x":17872.64382962515,"y":30941.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"90fe3d74-662e-4fac-aff3-f41990b61ccf","savedPayload":{"position":{"x":19007.931889043757,"y":32663.930922181273},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BW","config":"{ \n\"codeName\": \"bw\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"457616cd-25f9-4ad3-8c18-6331859dd42e","savedPayload":{"position":{"x":17890.64382962515,"y":31014.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8c1f9aa2-4253-4129-a533-e515644ddb38","savedPayload":{"position":{"x":17909.64382962515,"y":30970.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"24314a5b-85ca-4036-adc6-618120496f1d","savedPayload":{"position":{"x":17773.64382962515,"y":30945.23747069523},"targetPosition":{"x":17860.64382962515,"y":30865.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"f7c593f6-bd7a-41f7-a5e7-b2e1ea9a528f","savedPayload":{"position":{"x":17820.64382962515,"y":30885.23747069523},"targetPosition":{"x":17828.64382962515,"y":30802.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"60dfc799-f863-4895-8d17-568aa2303ef5","savedPayload":{"position":{"x":17828.64382962515,"y":30802.23747069523},"targetPosition":{"x":17860.64382962515,"y":30865.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"223e466d-d750-4e38-91ce-8a59c15242ba","savedPayload":{"position":{"x":17860.64382962515,"y":30865.23747069523},"targetPosition":{"x":17818.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cfff1310-5220-4978-9553-8514be141d14","savedPayload":{"position":{"x":17818.64382962515,"y":30919.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d72db90c-d572-4cbb-8348-e3cc485d8e86","savedPayload":{"position":{"x":18883.38256475272,"y":32700.94644884361},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bybit","config":"{ \n\"codeName\": \"bybit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"18fdf7c8-03c4-4f81-a88e-de97589765e1","savedPayload":{"position":{"x":17803.64382962515,"y":31059.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"a62b2603-ac6f-4b6e-9541-86daf32027b1","savedPayload":{"position":{"x":17847.64382962515,"y":31104.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"66ecff99-7102-4f4a-9ce8-4d55fb22dfbc","savedPayload":{"position":{"x":17851.64382962515,"y":31165.23747069523},"targetPosition":{"x":17916.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"625e127c-0ebb-4f57-af9f-9dfb57b262a1","savedPayload":{"position":{"x":18004.64382962515,"y":31091.23747069523},"targetPosition":{"x":18008.64382962515,"y":31027.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"8174bb53-66b8-4575-b206-74f9b6352a80","savedPayload":{"position":{"x":18008.64382962515,"y":31027.23747069523},"targetPosition":{"x":17916.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ee16357e-abde-4800-b089-f43f4b696a35","savedPayload":{"position":{"x":17916.64382962515,"y":31077.23747069523},"targetPosition":{"x":17944.64382962515,"y":31101.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c9e9473b-aff9-43c8-a6be-5cd30330bee2","savedPayload":{"position":{"x":17944.64382962515,"y":31101.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"516c3831-456b-4d17-b0a0-6a363ba2ddb2","savedPayload":{"position":{"x":18755.561271527895,"y":32724.27883821499},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"ByteTrade","config":"{ \n\"codeName\": \"bytetrade\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e7a1e531-5a9e-466e-b98d-672de39eed3a","savedPayload":{"position":{"x":18088.64382962515,"y":31024.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"edafaba7-fd82-4d9f-b3f7-5d1c01c56599","savedPayload":{"position":{"x":17941.64382962515,"y":30943.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"50fa78b8-3aea-4e43-adcf-1e31820bf97f","savedPayload":{"position":{"x":17886.64382962515,"y":31008.23747069523},"targetPosition":{"x":17858.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"b9c39b04-e86e-4ebb-9aba-39c375f2960c","savedPayload":{"position":{"x":17865.64382962515,"y":30941.23747069523},"targetPosition":{"x":17953.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5965d9cc-1d68-47a7-b838-e6dd81da6ea9","savedPayload":{"position":{"x":17953.64382962515,"y":31023.23747069523},"targetPosition":{"x":17858.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f51a08be-ee3f-4d3b-a75e-d783d63092a7","savedPayload":{"position":{"x":17858.64382962515,"y":30967.23747069523},"targetPosition":{"x":17898.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d395efd0-691b-4a68-a7f1-9bce95b2f687","savedPayload":{"position":{"x":17898.64382962515,"y":30965.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45e2306f-03e8-4d17-a73a-72c11dd14e78","savedPayload":{"position":{"x":18625.966597164217,"y":32733.65453936303},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CEX.IO","config":"{ \n\"codeName\": \"cex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9de19f0a-5824-4e42-af00-484b64421dc3","savedPayload":{"position":{"x":17890.64382962515,"y":31049.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"39db01bc-0cea-422f-b9e9-7d84e3f5446d","savedPayload":{"position":{"x":17918.64382962515,"y":31105.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"93833d3c-42c9-4e4d-bf0f-5b80a90d10c2","savedPayload":{"position":{"x":17978.64382962515,"y":31126.23747069523},"targetPosition":{"x":17953.64382962515,"y":31167.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"42863a52-30f4-4322-9c20-99a45d6dc3d6","savedPayload":{"position":{"x":17884.64382962515,"y":31149.23747069523},"targetPosition":{"x":17895.64382962515,"y":31148.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fcff471d-29be-4176-8ff8-12088361f9fc","savedPayload":{"position":{"x":17895.64382962515,"y":31148.23747069523},"targetPosition":{"x":17953.64382962515,"y":31167.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f7975a18-b3ab-49bc-ae45-eb02c99aff8c","savedPayload":{"position":{"x":17953.64382962515,"y":31167.23747069523},"targetPosition":{"x":17881.64382962515,"y":31096.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ec432123-43fe-4171-8c41-b797d3161edb","savedPayload":{"position":{"x":17881.64382962515,"y":31096.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"346bfc30-e32a-453a-bdc6-0ead48221581","savedPayload":{"position":{"x":18496.117920729066,"y":32728.96363076407},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Coinbase Prime","config":"{ \n\"codeName\": \"coinbaseprime\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"73cabd8d-9308-49ed-b544-44f785ee7d38","savedPayload":{"position":{"x":17867.64382962515,"y":30962.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"31bd1360-f0c5-4d70-876a-b152f7cedfd7","savedPayload":{"position":{"x":17960.64382962515,"y":30864.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9b75fcfa-fe75-48a8-9d28-2ff19c58c041","savedPayload":{"position":{"x":17792.64382962515,"y":30841.23747069523},"targetPosition":{"x":17809.64382962515,"y":30934.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c900b14a-c728-45af-90f8-29b3e5f29f46","savedPayload":{"position":{"x":17801.64382962515,"y":30986.23747069523},"targetPosition":{"x":17793.64382962515,"y":31006.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"eaf72df3-b66f-4b83-83f9-91e22ec0c300","savedPayload":{"position":{"x":17793.64382962515,"y":31006.23747069523},"targetPosition":{"x":17809.64382962515,"y":30934.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9da95675-2071-41bf-b5ac-4f2af602994f","savedPayload":{"position":{"x":17809.64382962515,"y":30934.23747069523},"targetPosition":{"x":17862.64382962515,"y":31021.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4fc49ad4-57cc-43b0-b14b-15f26af994aa","savedPayload":{"position":{"x":17862.64382962515,"y":31021.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a8281db-6ace-4186-8cfb-cd249c4af48b","savedPayload":{"position":{"x":18367.537599231866,"y":32710.26110903248},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Coinbase Pro","config":"{ \n\"codeName\": \"coinbasepro\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"a29d6e1a-a94e-4b6b-8741-e9af6e4762f4","savedPayload":{"position":{"x":17788.64382962515,"y":30897.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"10cd9004-0088-4bc0-8fe6-b937f1bb311b","savedPayload":{"position":{"x":17865.64382962515,"y":30918.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"004397e6-ae73-46a6-9ed7-b4ba1930f77b","savedPayload":{"position":{"x":17945.64382962515,"y":30899.23747069523},"targetPosition":{"x":17850.64382962515,"y":30889.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"a81a7021-2228-4386-a773-9ac80c9e723a","savedPayload":{"position":{"x":17738.64382962515,"y":30761.23747069523},"targetPosition":{"x":17792.64382962515,"y":30789.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"482d82f2-364e-483c-b51a-a3fbe8a91577","savedPayload":{"position":{"x":17792.64382962515,"y":30789.23747069523},"targetPosition":{"x":17850.64382962515,"y":30889.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d823ad8e-0452-40f0-bad9-c2cb3ad29a21","savedPayload":{"position":{"x":17850.64382962515,"y":30889.23747069523},"targetPosition":{"x":17772.64382962515,"y":30894.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0c965322-fdd2-4e67-aaf3-dfc4b9dffc59","savedPayload":{"position":{"x":17772.64382962515,"y":30894.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4242da4b-a67e-44d8-8a19-b1c2f078c94c","savedPayload":{"position":{"x":18241.733119380056,"y":32677.766244135688},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CoinEx","config":"{ \n\"codeName\": \"coinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"af78f796-60e5-4794-87b8-772c7bc74be1","savedPayload":{"position":{"x":18043.64382962515,"y":31069.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d351e6d9-36eb-4d0e-aca5-94429bbb23a3","savedPayload":{"position":{"x":18094.64382962515,"y":31090.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"438f74c6-15e0-4553-af2a-febd5290c269","savedPayload":{"position":{"x":17908.64382962515,"y":31088.23747069523},"targetPosition":{"x":17986.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"bfb22430-77c7-41a7-8083-771f7d7f3634","savedPayload":{"position":{"x":17927.64382962515,"y":30953.23747069523},"targetPosition":{"x":17947.64382962515,"y":30990.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"51daaa12-1c60-4cef-96d8-a445b4b32296","savedPayload":{"position":{"x":17947.64382962515,"y":30990.23747069523},"targetPosition":{"x":17986.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"726b8c33-9873-4be1-b9ef-d6b4483f23b1","savedPayload":{"position":{"x":17986.64382962515,"y":31075.23747069523},"targetPosition":{"x":17919.64382962515,"y":31016.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"30469514-b983-4f6f-9d74-6d6ceef25eb6","savedPayload":{"position":{"x":17919.64382962515,"y":31016.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"62ad0961-6bdf-4a4a-a340-610816742d0a","savedPayload":{"position":{"x":18120.179423675774,"y":32631.860008654276},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"COSS","config":"{ \n\"codeName\": \"coss\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e6315232-c6b1-4e25-aade-7bc7ba9ba6ac","savedPayload":{"position":{"x":17787.64382962515,"y":30984.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b1e8451f-09a2-47b0-add3-cf9c35c487bb","savedPayload":{"position":{"x":17829.64382962515,"y":31095.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d1c9b795-0434-4ce1-9cb7-cc61fac7396d","savedPayload":{"position":{"x":17950.64382962515,"y":31149.23747069523},"targetPosition":{"x":17882.64382962515,"y":31131.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"22be64f9-4b08-4ac3-ae89-6726743a7d5a","savedPayload":{"position":{"x":17890.64382962515,"y":31165.23747069523},"targetPosition":{"x":17956.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c7462500-ba74-4bf3-ad81-35fa232bede3","savedPayload":{"position":{"x":17956.64382962515,"y":31156.23747069523},"targetPosition":{"x":17882.64382962515,"y":31131.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5cd41ced-981a-4075-af43-3a0497eb0fcb","savedPayload":{"position":{"x":17882.64382962515,"y":31131.23747069523},"targetPosition":{"x":17856.64382962515,"y":31148.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b5937899-c6ee-4d7a-b259-1ee23d721f60","savedPayload":{"position":{"x":17856.64382962515,"y":31148.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"695029de-7f61-45bb-aa4c-c6d51e6369ed","savedPayload":{"position":{"x":18004.301618063546,"y":32573.08061122679},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CREX24","config":"{ \n\"codeName\": \"crex24\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c5e12f4a-fb26-40d3-9e70-751b55018e74","savedPayload":{"position":{"x":17910.64382962515,"y":31024.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"00cb629e-bad4-4c6e-8abb-499cad3992f4","savedPayload":{"position":{"x":17938.64382962515,"y":31054.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"4909d182-e0d5-49a9-8ad2-a553c8aaaf88","savedPayload":{"position":{"x":17912.64382962515,"y":31301.23747069523},"targetPosition":{"x":17920.64382962515,"y":31249.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"075eb2a2-299b-4a0f-9f6d-76c385521dc4","savedPayload":{"position":{"x":17800.64382962515,"y":31332.23747069523},"targetPosition":{"x":17883.64382962515,"y":31289.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"e062ef2e-b252-4a66-8f58-d9aa8031f526","savedPayload":{"position":{"x":17883.64382962515,"y":31289.23747069523},"targetPosition":{"x":17920.64382962515,"y":31249.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e75be98-f874-486d-b749-536e364934dc","savedPayload":{"position":{"x":17920.64382962515,"y":31249.23747069523},"targetPosition":{"x":17845.64382962515,"y":31164.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"052f73cd-7ed7-4537-8b01-840b5b892fea","savedPayload":{"position":{"x":17845.64382962515,"y":31164.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07a7ec7c-273e-4675-8d8d-21ab8514a1f0","savedPayload":{"position":{"x":17895.458263866083,"y":32502.117186545547},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Deribit","config":"{ \n\"codeName\": \"deribit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f0b2354b-89e3-4eca-b051-664a3b8283f6","savedPayload":{"position":{"x":17862.64382962515,"y":30844.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4ae1f824-82a8-4796-a2d5-3d2358d8089f","savedPayload":{"position":{"x":17912.64382962515,"y":31024.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2013fe7a-d52c-4c9d-ba53-d281d014a8fc","savedPayload":{"position":{"x":17873.64382962515,"y":30926.23747069523},"targetPosition":{"x":17855.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"706d5778-ed21-49bd-9277-1840ec52708d","savedPayload":{"position":{"x":17729.64382962515,"y":31033.23747069523},"targetPosition":{"x":17813.64382962515,"y":31053.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2e76bc02-6e10-4f14-9bf1-a11dc4268466","savedPayload":{"position":{"x":17813.64382962515,"y":31053.23747069523},"targetPosition":{"x":17855.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"89a3ccc7-20ab-4e2d-929b-52d9286179b7","savedPayload":{"position":{"x":17855.64382962515,"y":30967.23747069523},"targetPosition":{"x":17818.64382962515,"y":30920.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5c8219e3-4509-4b8b-941b-b88ac2c12237","savedPayload":{"position":{"x":17818.64382962515,"y":30920.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"21971815-4248-45df-8e04-20b9a5a83f06","savedPayload":{"position":{"x":17794.92544989493,"y":32419.801715882462},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"DigiFinex","config":"{ \n\"codeName\": \"digifinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e583c93e-9a44-4e0d-acb7-56d7e00a555a","savedPayload":{"position":{"x":17954.64382962515,"y":30992.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8917c7c0-b420-4d4f-a35a-c0fc6870f0de","savedPayload":{"position":{"x":18052.64382962515,"y":30972.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a00b5bb0-5ab9-42e2-91fe-b450c7eb66d2","savedPayload":{"position":{"x":18220.64382962515,"y":31090.23747069523},"targetPosition":{"x":18123.64382962515,"y":30998.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2aafc473-339b-4d23-9b74-06fa7574c293","savedPayload":{"position":{"x":18144.64382962515,"y":31123.23747069523},"targetPosition":{"x":18203.64382962515,"y":31084.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"99e9e136-1ac7-4400-a100-0a2d37f0882d","savedPayload":{"position":{"x":18203.64382962515,"y":31084.23747069523},"targetPosition":{"x":18123.64382962515,"y":30998.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b7cee21b-ddcb-4fd7-b610-43aabb2d1766","savedPayload":{"position":{"x":18123.64382962515,"y":30998.23747069523},"targetPosition":{"x":18032.64382962515,"y":30976.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08e84a25-4368-4ad6-939f-5a16cece62cc","savedPayload":{"position":{"x":18032.64382962515,"y":30976.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b7d56781-0c51-4ec1-95fd-bf4dc8c00352","savedPayload":{"position":{"x":17703.88183147586,"y":32327.0992728693},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"DSX","config":"{ \n\"codeName\": \"dsx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"d672ab56-cd32-4ff5-8fc5-3733262aeccb","savedPayload":{"position":{"x":17916.64382962515,"y":31106.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3731a7b5-ba9d-483e-bb41-abf3ae0232c6","savedPayload":{"position":{"x":17878.64382962515,"y":30946.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9ef7e0ac-dc27-4b47-a06e-0cb7e80ee3d7","savedPayload":{"position":{"x":18124.64382962515,"y":31136.23747069523},"targetPosition":{"x":18093.64382962515,"y":31072.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"77491a3c-3db7-446f-aa67-9b5a1a3be7b3","savedPayload":{"position":{"x":18109.64382962515,"y":31081.23747069523},"targetPosition":{"x":18188.64382962515,"y":31137.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"bd1bd0b7-4943-4aeb-bf90-d3192dcabbb1","savedPayload":{"position":{"x":18188.64382962515,"y":31137.23747069523},"targetPosition":{"x":18093.64382962515,"y":31072.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45747fef-f30e-4fae-b02d-5768ae7dbe68","savedPayload":{"position":{"x":18093.64382962515,"y":31072.23747069523},"targetPosition":{"x":18018.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa2e1c9b-428c-4bb0-9e75-ceb8c9043d4b","savedPayload":{"position":{"x":18018.64382962515,"y":31005.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4c543abc-7372-4701-bc58-107578d45c25","savedPayload":{"position":{"x":17623.394811792878,"y":32225.09670889175},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FCoin","config":"{ \n\"codeName\": \"fcoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"a97d578c-6d7f-403c-8294-18aacf14abd8","savedPayload":{"position":{"x":17893.64382962515,"y":30953.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"442c3834-482e-4928-9255-8ac859ae012e","savedPayload":{"position":{"x":17905.64382962515,"y":30896.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"79754959-1219-4c4d-be63-22766158beb5","savedPayload":{"position":{"x":18106.64382962515,"y":30976.23747069523},"targetPosition":{"x":18069.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"1c3ae096-5024-43c3-abca-24498254e363","savedPayload":{"position":{"x":18112.64382962515,"y":30919.23747069523},"targetPosition":{"x":18126.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"59db5bfd-e413-48a7-af63-237ad56adc82","savedPayload":{"position":{"x":18126.64382962515,"y":30965.23747069523},"targetPosition":{"x":18069.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"833c4e54-08f4-48ec-b90a-2767eb55f244","savedPayload":{"position":{"x":18069.64382962515,"y":31056.23747069523},"targetPosition":{"x":17996.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a8cf17b3-0ea7-4a14-8c76-f655344b58a3","savedPayload":{"position":{"x":17996.64382962515,"y":30970.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6ddedcbd-07cb-4928-91b3-348f47118391","savedPayload":{"position":{"x":17554.408027561767,"y":32114.989910750606},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FCoinJP","config":"{ \n\"codeName\": \"fcoinjp\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"4a8a9810-6df6-451a-ab26-22bd7e7be85a","savedPayload":{"position":{"x":17930.64382962515,"y":31129.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"138ab40c-18ca-4a11-9709-0baa040873e6","savedPayload":{"position":{"x":18007.64382962515,"y":31122.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"258cdf92-8ed0-4133-ae2a-b9f086f56a13","savedPayload":{"position":{"x":17897.64382962515,"y":30887.23747069523},"targetPosition":{"x":17903.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"537e8f0c-05ca-4403-bc96-da6c2f4678ae","savedPayload":{"position":{"x":17825.64382962515,"y":30842.23747069523},"targetPosition":{"x":17836.64382962515,"y":30926.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"62519e63-8f4e-4b72-a341-0a6eea01ac3f","savedPayload":{"position":{"x":17836.64382962515,"y":30926.23747069523},"targetPosition":{"x":17903.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4974cc1-f594-436b-8aa4-aff2733b8e3c","savedPayload":{"position":{"x":17903.64382962515,"y":30977.23747069523},"targetPosition":{"x":17873.64382962515,"y":31061.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d84b404f-75e2-4eb5-b34a-b45af8a57ca7","savedPayload":{"position":{"x":17873.64382962515,"y":31061.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"982627ea-df84-4ba9-9219-612fbe1e4276","savedPayload":{"position":{"x":17497.730285752426,"y":31998.069779982467},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FTX","config":"{ \n\"codeName\": \"ftx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"20c0a4f5-bdb9-46cc-af7e-2111964551e3","savedPayload":{"position":{"x":17886.64382962515,"y":30940.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"75c99a0b-d3c9-4073-9283-d33e539c36bb","savedPayload":{"position":{"x":17992.64382962515,"y":31061.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2e037470-549e-4aa8-bbe7-95cdeaef88ea","savedPayload":{"position":{"x":17964.64382962515,"y":31027.23747069523},"targetPosition":{"x":17970.64382962515,"y":31008.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"3b6f5b7b-9c61-4b71-b29a-ca1bc027e55f","savedPayload":{"position":{"x":17817.64382962515,"y":30943.23747069523},"targetPosition":{"x":17890.64382962515,"y":30978.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"a84010f0-04b5-4eab-a3a6-a5944b80a373","savedPayload":{"position":{"x":17890.64382962515,"y":30978.23747069523},"targetPosition":{"x":17970.64382962515,"y":31008.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5cdc51a3-6136-4e03-9e2c-26a752140d17","savedPayload":{"position":{"x":17970.64382962515,"y":31008.23747069523},"targetPosition":{"x":18010.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"55258a2b-3199-4070-beed-d34a8496870c","savedPayload":{"position":{"x":18010.64382962515,"y":30986.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0c0bcf5c-2774-423e-9fcf-c512b38dd06d","savedPayload":{"position":{"x":17454.026081066615,"y":31875.707098219504},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Gate.io","config":"{ \n\"codeName\": \"gateio\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"71a15089-9d40-4726-9a41-37d406064164","savedPayload":{"position":{"x":17930.64382962515,"y":30993.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c025e976-c2c6-49de-81ec-48e2f737b412","savedPayload":{"position":{"x":17925.64382962515,"y":31053.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"876f964a-e12d-4438-87fb-a84be22f86d1","savedPayload":{"position":{"x":17914.64382962515,"y":30833.23747069523},"targetPosition":{"x":17827.64382962515,"y":30882.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0c5d34c4-467f-4e98-bd39-1b2d9afb834e","savedPayload":{"position":{"x":17852.64382962515,"y":30831.23747069523},"targetPosition":{"x":17870.64382962515,"y":30847.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"89316d8c-893a-46ae-b147-948b4b8a5292","savedPayload":{"position":{"x":17870.64382962515,"y":30847.23747069523},"targetPosition":{"x":17827.64382962515,"y":30882.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a2a5de53-bd45-4904-8bae-0cf5ed66d2af","savedPayload":{"position":{"x":17827.64382962515,"y":30882.23747069523},"targetPosition":{"x":17800.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f6f4072d-8cf6-4e47-8b4e-a21cd553348a","savedPayload":{"position":{"x":17800.64382962515,"y":30936.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c4028289-4cdb-4da0-90e6-5f93328b8e03","savedPayload":{"position":{"x":17423.807805345143,"y":31749.336456028108},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Gemini","config":"{ \n\"codeName\": \"gemini\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9eb15872-8d15-4086-9920-46909eb5f9e7","savedPayload":{"position":{"x":17951.64382962515,"y":30901.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"a84dcf06-57c6-47d7-97a0-9f03f3af8b34","savedPayload":{"position":{"x":18045.64382962515,"y":30891.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5da1ba65-3839-4664-8105-2ccb11652767","savedPayload":{"position":{"x":18028.64382962515,"y":31112.23747069523},"targetPosition":{"x":17941.64382962515,"y":31044.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"337fe5e2-b9fd-40eb-9f42-44fc5057d981","savedPayload":{"position":{"x":17957.64382962515,"y":31129.23747069523},"targetPosition":{"x":17875.64382962515,"y":31086.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"17a3f4a3-8914-4995-afb0-7e8115791b17","savedPayload":{"position":{"x":17875.64382962515,"y":31086.23747069523},"targetPosition":{"x":17941.64382962515,"y":31044.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"32e4a3f1-40d8-421f-9634-7ab339858286","savedPayload":{"position":{"x":17941.64382962515,"y":31044.23747069523},"targetPosition":{"x":17877.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"365f6865-e707-415d-a168-b67c66ca9553","savedPayload":{"position":{"x":17877.64382962515,"y":30977.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"58bf8247-baef-4ea6-a483-7ed8f0ba5043","savedPayload":{"position":{"x":17407.429740242005,"y":31620.439433646203},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"HitBTC","config":"{ \n\"codeName\": \"hitbtc\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"1632c520-fa79-442f-b33b-430cb1356de6","savedPayload":{"position":{"x":17809.64382962515,"y":31086.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"576d1666-dbd3-4914-9fe2-fa05bdf72eea","savedPayload":{"position":{"x":17840.64382962515,"y":31148.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"41317aae-08ce-48cf-a47b-c2d2cc3920ec","savedPayload":{"position":{"x":18096.64382962515,"y":30975.23747069523},"targetPosition":{"x":18026.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"23d7e4ba-8432-4214-bd94-0db5046e39cd","savedPayload":{"position":{"x":18039.64382962515,"y":31075.23747069523},"targetPosition":{"x":17981.64382962515,"y":31126.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ab200349-5ba5-44d2-ad5c-fa826303cfcd","savedPayload":{"position":{"x":17981.64382962515,"y":31126.23747069523},"targetPosition":{"x":18026.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a5f24785-5b2c-429b-a2e4-07063e2de904","savedPayload":{"position":{"x":18026.64382962515,"y":31066.23747069523},"targetPosition":{"x":17972.64382962515,"y":31093.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13f275ca-06a6-4a72-8b4d-a9c079b9cef4","savedPayload":{"position":{"x":17972.64382962515,"y":31093.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8384fa0b-854c-4c23-846e-a5da0179a738","savedPayload":{"position":{"x":17405.083903595932,"y":31490.527230809537},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"HitBTC","config":"{ \n\"codeName\": \"hitbtc2\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9a29cb9e-ee8d-4315-8532-eef82224b84a","savedPayload":{"position":{"x":17838.64382962515,"y":30922.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"badd79e7-1e21-4dc3-bfa7-8dfb4a6c6267","savedPayload":{"position":{"x":17920.64382962515,"y":30944.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"ffdda0b7-af50-4010-84da-2bc0d562af2b","savedPayload":{"position":{"x":17887.64382962515,"y":30982.23747069523},"targetPosition":{"x":17836.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"24816eed-adf7-453e-9b38-42ea4758dbaa","savedPayload":{"position":{"x":18021.64382962515,"y":30979.23747069523},"targetPosition":{"x":17931.64382962515,"y":30923.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"1dd16858-5641-4454-88a3-e5d7446e12a3","savedPayload":{"position":{"x":17931.64382962515,"y":30923.23747069523},"targetPosition":{"x":17836.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"457d75ed-ad21-4ee5-b36b-88cdc444008e","savedPayload":{"position":{"x":17836.64382962515,"y":31023.23747069523},"targetPosition":{"x":17808.64382962515,"y":31039.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b29ded7e-e2d5-4c7f-89af-b0816c32c743","savedPayload":{"position":{"x":17808.64382962515,"y":31039.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"09c634c2-5aba-49c5-80bc-4fd4175e7f0c","savedPayload":{"position":{"x":17416.79779819678,"y":31361.12294931652},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Huobi Pro","config":"{ \n\"codeName\": \"huobipro\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"86caa38c-5bdf-40e4-b27b-8d8b64319575","savedPayload":{"position":{"x":18071.64382962515,"y":31171.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"001225af-c715-4566-9502-f8f0ac1c4531","savedPayload":{"position":{"x":18040.64382962515,"y":31019.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"b4bf5ccb-b529-4500-a192-d9c3a0613389","savedPayload":{"position":{"x":18129.64382962515,"y":31073.23747069523},"targetPosition":{"x":18033.64382962515,"y":31090.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2e58c6d1-cfa7-4dc7-a322-e9356596ea1e","savedPayload":{"position":{"x":17976.64382962515,"y":31132.23747069523},"targetPosition":{"x":17953.64382962515,"y":31093.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae04ddf4-ae3e-4bdc-9393-41acc38ef818","savedPayload":{"position":{"x":17953.64382962515,"y":31093.23747069523},"targetPosition":{"x":18033.64382962515,"y":31090.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2428e8ef-6a09-48fa-8ae4-ebfb28420be8","savedPayload":{"position":{"x":18033.64382962515,"y":31090.23747069523},"targetPosition":{"x":18085.64382962515,"y":31157.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"55c71c8b-f21f-4d16-ae93-e29362c39bf5","savedPayload":{"position":{"x":18085.64382962515,"y":31157.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"967c3914-a76d-4389-9c7e-9c258ae683bd","savedPayload":{"position":{"x":17442.43408934047,"y":31233.743736052187},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Huobi Russia","config":"{ \n\"codeName\": \"huobiru\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9b7b32d6-a42e-44bb-8065-5aa32b1e844b","savedPayload":{"position":{"x":17980.64382962515,"y":31034.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8d74201c-33cd-4e12-8920-b08d0ef97572","savedPayload":{"position":{"x":17992.64382962515,"y":31105.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c6e289d7-074b-4837-96e3-687988886fcc","savedPayload":{"position":{"x":18078.64382962515,"y":30954.23747069523},"targetPosition":{"x":18008.64382962515,"y":31029.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d72f81ba-6b41-414d-9cf0-d5f9c0c25403","savedPayload":{"position":{"x":18026.64382962515,"y":31021.23747069523},"targetPosition":{"x":18083.64382962515,"y":31117.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5354f66c-6e73-4fe5-80ca-2c25b761ef51","savedPayload":{"position":{"x":18083.64382962515,"y":31117.23747069523},"targetPosition":{"x":18008.64382962515,"y":31029.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"81f5adbb-054c-47f2-b019-52585f5d7417","savedPayload":{"position":{"x":18008.64382962515,"y":31029.23747069523},"targetPosition":{"x":18018.64382962515,"y":31009.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ecd8645b-4bb6-4641-a20f-cee51bf33f1a","savedPayload":{"position":{"x":18018.64382962515,"y":31009.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6f97bb5c-8d85-43ee-86a1-33e22cdfbb5e","savedPayload":{"position":{"x":17481.692214952825,"y":31109.882995828142},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"KKEX","config":"{ \n\"codeName\": \"kkex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"daa4e07a-1cd8-4d92-8004-2eabfaa62f77","savedPayload":{"position":{"x":17924.64382962515,"y":31038.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"cb64951f-d984-4f51-a751-166a316084f3","savedPayload":{"position":{"x":17945.64382962515,"y":31156.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6915bf12-9271-47e2-8b49-924ae9f5c65f","savedPayload":{"position":{"x":17958.64382962515,"y":31297.23747069523},"targetPosition":{"x":17875.64382962515,"y":31252.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"ff53381f-c6dd-4d17-a477-11396f60663f","savedPayload":{"position":{"x":17805.64382962515,"y":31141.23747069523},"targetPosition":{"x":17861.64382962515,"y":31223.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae05bfc4-6ac8-408c-a90b-263830b2a71e","savedPayload":{"position":{"x":17861.64382962515,"y":31223.23747069523},"targetPosition":{"x":17875.64382962515,"y":31252.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61c85f1a-a2a6-45c9-bb1e-3c76110f5d1e","savedPayload":{"position":{"x":17875.64382962515,"y":31252.23747069523},"targetPosition":{"x":17911.64382962515,"y":31154.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fafb114-37d2-4d04-9c42-83d04ff62fc7","savedPayload":{"position":{"x":17911.64382962515,"y":31154.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"16ae95ce-796f-4f2b-942c-f98dcbf9cf4b","savedPayload":{"position":{"x":17534.11190940509,"y":30990.99288257655},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Kraken","config":"{ \n\"codeName\": \"kraken\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"747af60f-c8b9-4377-aa6c-172d4137ea23","savedPayload":{"position":{"x":17854.64382962515,"y":31008.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c75f7d97-9dc2-4d3e-89eb-f8a3d5f16368","savedPayload":{"position":{"x":17916.64382962515,"y":30872.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"0093e946-03f4-4aec-942d-c76aed12ab1a","savedPayload":{"position":{"x":17780.64382962515,"y":31091.23747069523},"targetPosition":{"x":17836.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2a4235ac-e5ea-4484-bccd-f06c8a7275ec","savedPayload":{"position":{"x":17930.64382962515,"y":30869.23747069523},"targetPosition":{"x":17883.64382962515,"y":30953.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"737dec0a-23ab-4044-94ba-95c8bc50c0eb","savedPayload":{"position":{"x":17883.64382962515,"y":30953.23747069523},"targetPosition":{"x":17836.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"457b045e-dae5-4f53-a8b7-cab4757e5286","savedPayload":{"position":{"x":17836.64382962515,"y":31011.23747069523},"targetPosition":{"x":17926.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6eff12db-8e7c-402a-9e06-ae2618f506a0","savedPayload":{"position":{"x":17926.64382962515,"y":31005.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"644efe9c-597a-4ddf-9e28-b33fb3b62d3e","savedPayload":{"position":{"x":17599.078599707587,"y":30878.467274173025},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"KuCoin","config":"{ \n\"codeName\": \"kucoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"01ca3037-4ed3-499e-ad6b-e14ca1d4a51f","savedPayload":{"position":{"x":17919.64382962515,"y":30949.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8b3c4ce0-98b1-4d46-bd02-6cf44c3dd686","savedPayload":{"position":{"x":17998.64382962515,"y":30978.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d6c7c0ef-670d-4ed6-9246-6eb7d6bfc359","savedPayload":{"position":{"x":17927.64382962515,"y":30962.23747069523},"targetPosition":{"x":17953.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e8c2c454-b246-4f63-b51b-74d9cbb01ac2","savedPayload":{"position":{"x":17927.64382962515,"y":30924.23747069523},"targetPosition":{"x":17912.64382962515,"y":30869.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"d2bb2603-3b52-443c-8923-86fefafc0b14","savedPayload":{"position":{"x":17912.64382962515,"y":30869.23747069523},"targetPosition":{"x":17953.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fa83b0b9-1039-4406-907c-f809a5af40f5","savedPayload":{"position":{"x":17953.64382962515,"y":30954.23747069523},"targetPosition":{"x":17966.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"471161d3-201e-40c6-b433-49643cf7e43b","savedPayload":{"position":{"x":17966.64382962515,"y":30962.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d79bc720-68e1-4771-a66a-bcffa30639d3","savedPayload":{"position":{"x":17675.830610816145,"y":30773.625430492953},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"LBank","config":"{ \n\"codeName\": \"lbank\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"def3f9d0-f09e-4e09-8b6d-a4c322a4384b","savedPayload":{"position":{"x":17877.64382962515,"y":31024.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"53eac3c1-96d6-4cb1-b54d-f3f174eaf733","savedPayload":{"position":{"x":17764.64382962515,"y":31036.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c6c00704-1357-4426-910e-8134d6f87017","savedPayload":{"position":{"x":18030.64382962515,"y":31212.23747069523},"targetPosition":{"x":17951.64382962515,"y":31172.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"13990604-2192-4be1-b21b-53cf2bafc002","savedPayload":{"position":{"x":17893.64382962515,"y":31189.23747069523},"targetPosition":{"x":17964.64382962515,"y":31122.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ed2c483e-d412-406d-b6f3-cfb1112a3a05","savedPayload":{"position":{"x":17964.64382962515,"y":31122.23747069523},"targetPosition":{"x":17951.64382962515,"y":31172.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6033b63c-c7fe-4a5d-8cf6-82128e2cfb41","savedPayload":{"position":{"x":17951.64382962515,"y":31172.23747069523},"targetPosition":{"x":17891.64382962515,"y":31096.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20ece5c4-dbfa-4f4a-a9ee-8c8d9c38943b","savedPayload":{"position":{"x":17891.64382962515,"y":31096.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cb2558d6-dab0-4f35-b83f-7cfc161b3d4f","savedPayload":{"position":{"x":17763.468095575536,"y":30677.69652629567},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Mercado Bitcoin","config":"{ \n\"codeName\": \"mercado\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"83ab2c39-e844-496f-bebb-7b8607428902","savedPayload":{"position":{"x":17849.64382962515,"y":31081.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d69e722e-c71a-462a-8bbd-d3482d0eab21","savedPayload":{"position":{"x":17771.64382962515,"y":30887.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"18438709-83cf-49a3-96b8-888ab5adbcc5","savedPayload":{"position":{"x":17937.64382962515,"y":31080.23747069523},"targetPosition":{"x":17866.64382962515,"y":31013.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"6b9d4ed4-af81-462a-aace-fac0afd4687a","savedPayload":{"position":{"x":17787.64382962515,"y":30841.23747069523},"targetPosition":{"x":17873.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"802a4c53-8617-4257-95a5-45bfaa60ad0e","savedPayload":{"position":{"x":17873.64382962515,"y":30935.23747069523},"targetPosition":{"x":17866.64382962515,"y":31013.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"87936a4a-aac5-4aca-8f3e-2051611932c4","savedPayload":{"position":{"x":17866.64382962515,"y":31013.23747069523},"targetPosition":{"x":17829.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"48f3a793-bb97-447b-8f1a-1d6965219747","savedPayload":{"position":{"x":17829.64382962515,"y":30919.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5002072e-145c-4aeb-a611-3e0e4c60ee5d","savedPayload":{"position":{"x":17860.963584604677,"y":30591.805240274254},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKCoin","config":"{ \n\"codeName\": \"okcoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"1e4dd5c8-0545-4698-8695-c985880243a3","savedPayload":{"position":{"x":17921.64382962515,"y":31043.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0e188cae-9764-4963-a78b-e5d7ef272522","savedPayload":{"position":{"x":18005.64382962515,"y":30891.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6d82bfd7-b4e1-4f93-a0f8-18f62cee944e","savedPayload":{"position":{"x":18047.64382962515,"y":30877.23747069523},"targetPosition":{"x":17963.64382962515,"y":30898.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d815409c-1dd4-4e89-b844-5b96104509b4","savedPayload":{"position":{"x":17958.64382962515,"y":30988.23747069523},"targetPosition":{"x":17945.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"238b9d2c-e2c0-4a77-945e-8e28604c0a2d","savedPayload":{"position":{"x":17945.64382962515,"y":30961.23747069523},"targetPosition":{"x":17963.64382962515,"y":30898.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8416c29a-5d73-4b2a-9463-511f400deafb","savedPayload":{"position":{"x":17963.64382962515,"y":30898.23747069523},"targetPosition":{"x":18047.64382962515,"y":30885.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04abf32b-084e-4784-aa84-8c5612d3b7b9","savedPayload":{"position":{"x":18047.64382962515,"y":30885.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1f860b4b-2893-4a51-8649-19c47d494a37","savedPayload":{"position":{"x":17967.17403243568,"y":30516.958569226157},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKEX","config":"{ \n\"codeName\": \"okex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"7f618566-3d10-4c3c-90b2-7541a5146eeb","savedPayload":{"position":{"x":17770.64382962515,"y":31094.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"21205576-5d12-452c-814f-eb56182162ae","savedPayload":{"position":{"x":17794.64382962515,"y":31173.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"46456247-ae9c-41ea-8395-a5e4a78007d4","savedPayload":{"position":{"x":17724.64382962515,"y":31147.23747069523},"targetPosition":{"x":17795.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"706bf601-eaad-48bd-b0a7-8dad59066171","savedPayload":{"position":{"x":17715.64382962515,"y":31182.23747069523},"targetPosition":{"x":17706.64382962515,"y":31162.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"f9c7071c-2e5b-4c90-b482-dfc7ee001244","savedPayload":{"position":{"x":17706.64382962515,"y":31162.23747069523},"targetPosition":{"x":17795.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e87e1e10-3404-48b9-8629-5df92ffa1979","savedPayload":{"position":{"x":17795.64382962515,"y":31083.23747069523},"targetPosition":{"x":17789.64382962515,"y":31181.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08e8fd6a-6b23-4d65-8b8e-d966f845c07f","savedPayload":{"position":{"x":17789.64382962515,"y":31181.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"aa0edec0-8b27-4f94-abce-1e437ce5aba6","savedPayload":{"position":{"x":18080.854218676865,"y":30454.034021936455},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"RightBTC","config":"{ \n\"codeName\": \"rightbtc\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"ade372e9-5070-4fa9-843e-57732c4106c3","savedPayload":{"position":{"x":17999.64382962515,"y":30964.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b63d440e-4501-475c-b8a6-2b9a144e32a1","savedPayload":{"position":{"x":17984.64382962515,"y":30901.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"81d77477-4f2e-43c0-b284-dde54f91c37f","savedPayload":{"position":{"x":17864.64382962515,"y":31036.23747069523},"targetPosition":{"x":17861.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"9ce3cc34-1ba4-4155-96a5-c946b1bcc5ab","savedPayload":{"position":{"x":17819.64382962515,"y":31127.23747069523},"targetPosition":{"x":17810.64382962515,"y":31080.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c7df4af7-37c1-403d-ada1-b6a527821bdd","savedPayload":{"position":{"x":17810.64382962515,"y":31080.23747069523},"targetPosition":{"x":17861.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6de19501-5ce7-4944-b9dd-25b149acbb38","savedPayload":{"position":{"x":17861.64382962515,"y":31043.23747069523},"targetPosition":{"x":17946.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa87ace4-a976-401c-93f9-24a498261742","savedPayload":{"position":{"x":17946.64382962515,"y":30988.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c20cd9e1-52a0-4d17-b90c-e9d5b63315ce","savedPayload":{"position":{"x":18200.67134708334,"y":30403.76933118965},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"STEX","config":"{ \n\"codeName\": \"stex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f1d65161-4922-4a1e-ac98-df1a842347a7","savedPayload":{"position":{"x":17872.64382962515,"y":31001.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c313b2c6-6154-4a9a-b826-fd99cc500cd9","savedPayload":{"position":{"x":17888.64382962515,"y":31186.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d0a1259b-1c37-4d39-836e-3c434c3b3687","savedPayload":{"position":{"x":17778.64382962515,"y":31076.23747069523},"targetPosition":{"x":17858.64382962515,"y":31091.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"4a1e5627-459c-4dec-be13-c20d4a9ea58f","savedPayload":{"position":{"x":17841.64382962515,"y":31179.23747069523},"targetPosition":{"x":17795.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"6981eb0d-0f0e-4f8e-9781-4a03e22e93fd","savedPayload":{"position":{"x":17795.64382962515,"y":31105.23747069523},"targetPosition":{"x":17858.64382962515,"y":31091.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7704478a-9717-43a8-bd2e-88daa6f84bd0","savedPayload":{"position":{"x":17858.64382962515,"y":31091.23747069523},"targetPosition":{"x":17941.64382962515,"y":31173.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"262aad86-f430-49ea-a636-e8bd816a9636","savedPayload":{"position":{"x":17941.64382962515,"y":31173.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0ea23137-3c65-4de1-9772-6ac1b65196e8","savedPayload":{"position":{"x":18325.220671374373,"y":30366.753804527314},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TideBit","config":"{ \n\"codeName\": \"tidebit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c92318bd-8b2d-489b-b8e8-cf30fb63286e","savedPayload":{"position":{"x":17981.64382962515,"y":31021.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"83bca3ec-fc1c-435c-b5fe-b1cf92463fd1","savedPayload":{"position":{"x":18051.64382962515,"y":31072.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2f3ee9b2-cd41-458c-84da-edac3155028a","savedPayload":{"position":{"x":18075.64382962515,"y":31059.23747069523},"targetPosition":{"x":17987.64382962515,"y":31047.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"009ae4b6-adbc-4900-9fc0-f18936eeed9b","savedPayload":{"position":{"x":18030.64382962515,"y":31058.23747069523},"targetPosition":{"x":18009.64382962515,"y":31028.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"3ee88180-fe10-41df-8251-b1ed0a526e7a","savedPayload":{"position":{"x":18009.64382962515,"y":31028.23747069523},"targetPosition":{"x":17987.64382962515,"y":31047.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bb88e6e8-a99a-4c4e-9ca5-ffed49aa8b54","savedPayload":{"position":{"x":17987.64382962515,"y":31047.23747069523},"targetPosition":{"x":17925.64382962515,"y":31135.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13a4a95e-4333-4455-9f7c-90bc839d174a","savedPayload":{"position":{"x":17925.64382962515,"y":31135.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5563c310-701a-4c1e-8155-87c08c927ce3","savedPayload":{"position":{"x":18453.041964599197,"y":30343.421415155935},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TimeX","config":"{ \n\"codeName\": \"timex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"5c004b5f-eec4-414f-8d01-d9b3fddeee9e","savedPayload":{"position":{"x":17892.64382962515,"y":30973.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"59a33add-d0e9-4ae1-8a01-f1e0ed09cb61","savedPayload":{"position":{"x":17911.64382962515,"y":30878.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a4189ba1-d1d4-4ff8-91dd-a8696ca493e3","savedPayload":{"position":{"x":17953.64382962515,"y":30880.23747069523},"targetPosition":{"x":17924.64382962515,"y":30871.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"3d34eb9d-e7cb-42fe-8785-c327b2bbc529","savedPayload":{"position":{"x":17839.64382962515,"y":30875.23747069523},"targetPosition":{"x":17930.64382962515,"y":30877.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"773de01f-0999-4a59-91f0-642148cd58d0","savedPayload":{"position":{"x":17930.64382962515,"y":30877.23747069523},"targetPosition":{"x":17924.64382962515,"y":30871.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fe33a596-4f98-4843-a5b1-26e7e0fcf1c8","savedPayload":{"position":{"x":17924.64382962515,"y":30871.23747069523},"targetPosition":{"x":18018.64382962515,"y":30832.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d078b9a3-cdc6-458e-a511-dc4f5bef38ba","savedPayload":{"position":{"x":18018.64382962515,"y":30832.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"27d69fa7-b561-4986-8c0d-1b374e7e1bf1","savedPayload":{"position":{"x":18582.63663896287,"y":30334.045714007894},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TOP.Q","config":"{ \n\"codeName\": \"topq\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"eafef6a3-eed2-470e-a15c-aa4c10001cd2","savedPayload":{"position":{"x":17818.64382962515,"y":31115.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"2d5eb813-ceb6-40cd-8682-7205596bb8b5","savedPayload":{"position":{"x":17759.64382962515,"y":31188.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"61f7832c-c1f0-40bc-b1f2-ba947c58309d","savedPayload":{"position":{"x":17741.64382962515,"y":31288.23747069523},"targetPosition":{"x":17788.64382962515,"y":31228.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"63b973da-30a7-467a-b954-c57537aab18d","savedPayload":{"position":{"x":17677.64382962515,"y":31206.23747069523},"targetPosition":{"x":17756.64382962515,"y":31146.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"722dcf44-de3f-4d1a-8655-80561e1e4d55","savedPayload":{"position":{"x":17756.64382962515,"y":31146.23747069523},"targetPosition":{"x":17788.64382962515,"y":31228.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45d5e04a-4a53-4f32-b4c0-d882456cb263","savedPayload":{"position":{"x":17788.64382962515,"y":31228.23747069523},"targetPosition":{"x":17806.64382962515,"y":31163.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c66e8dfc-4847-4180-b82c-36458f9b405d","savedPayload":{"position":{"x":17806.64382962515,"y":31163.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8fdf13d8-e8d2-4ef4-8b34-f492a25d753a","savedPayload":{"position":{"x":18712.485315398026,"y":30338.736622606855},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Upbit","config":"{ \n\"codeName\": \"upbit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f456fec2-cee6-4f0c-b865-1188088879c9","savedPayload":{"position":{"x":17919.64382962515,"y":30973.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"947c1ca0-bff9-4372-b153-40054e29b705","savedPayload":{"position":{"x":17921.64382962515,"y":31014.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"34ffbe12-5a26-446a-8bf6-7395c0370ba2","savedPayload":{"position":{"x":17874.64382962515,"y":30900.23747069523},"targetPosition":{"x":17945.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"8f00f19d-74a8-48d8-b951-79f35e87b110","savedPayload":{"position":{"x":17906.64382962515,"y":30902.23747069523},"targetPosition":{"x":17896.64382962515,"y":30896.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"64e1bede-aabf-4831-83a6-fe1cea435613","savedPayload":{"position":{"x":17896.64382962515,"y":30896.23747069523},"targetPosition":{"x":17945.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7c80b956-f2ca-4a6f-a661-f17546288d3e","savedPayload":{"position":{"x":17945.64382962515,"y":30971.23747069523},"targetPosition":{"x":18027.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e3686b02-4ecc-4dcb-a311-b7ef542a3c37","savedPayload":{"position":{"x":18027.64382962515,"y":31048.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"74e57ecd-3394-42b4-b2c4-6f216f7e41db","savedPayload":{"position":{"x":18841.065636895226,"y":30357.439144338445},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"WhiteBit","config":"{ \n\"codeName\": \"whitebit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c16eae45-a568-4b2e-b064-4431bdf34c24","savedPayload":{"position":{"x":17767.64382962515,"y":30899.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"dfdf793f-4ba6-4215-a325-323c0f223553","savedPayload":{"position":{"x":17920.64382962515,"y":31004.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"fd749d13-dbac-493f-9af6-c521eddf909f","savedPayload":{"position":{"x":17815.64382962515,"y":30973.23747069523},"targetPosition":{"x":17720.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"79f7d2d0-77a5-4f38-ac68-fd11f18e5e6b","savedPayload":{"position":{"x":17761.64382962515,"y":31182.23747069523},"targetPosition":{"x":17680.64382962515,"y":31153.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fd0506f4-58b7-431e-bc9d-69bce63c3379","savedPayload":{"position":{"x":17680.64382962515,"y":31153.23747069523},"targetPosition":{"x":17720.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"47e8a4b1-9a6c-4555-a881-f7524183d72e","savedPayload":{"position":{"x":17720.64382962515,"y":31056.23747069523},"targetPosition":{"x":17817.64382962515,"y":31010.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7fa08b91-55ab-477d-a097-88ea7f25fb76","savedPayload":{"position":{"x":17817.64382962515,"y":31010.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"467ece1e-d1d0-4a11-ae7a-d0e22cd4eba5","savedPayload":{"position":{"x":18966.87011674703,"y":30389.934009235236},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"ZB","config":"{ \n\"codeName\": \"zb\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"db206cbd-a587-4e8e-acbe-6581ad3b5cc4","savedPayload":{"position":{"x":17855.64382962515,"y":31027.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"1dd658c5-7755-44b7-85f0-9bcd787762a0","savedPayload":{"position":{"x":17789.64382962515,"y":31044.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"0de82bbe-7909-4b65-b304-f59b41f618ae","savedPayload":{"position":{"x":17830.64382962515,"y":30696.23747069523},"targetPosition":{"x":17846.64382962515,"y":30793.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c89819d0-8880-4b36-a9b3-0b284d266e3b","savedPayload":{"position":{"x":17891.64382962515,"y":30748.23747069523},"targetPosition":{"x":17865.64382962515,"y":30772.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"7a55f503-17fa-45c4-880b-1a9a11a0a555","savedPayload":{"position":{"x":17865.64382962515,"y":30772.23747069523},"targetPosition":{"x":17846.64382962515,"y":30793.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e640fca2-8bab-45ff-9a47-8e7b9650c277","savedPayload":{"position":{"x":17846.64382962515,"y":30793.23747069523},"targetPosition":{"x":17909.64382962515,"y":30886.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"421a99cd-3d9a-46a5-8654-08d6336e75be","savedPayload":{"position":{"x":17909.64382962515,"y":30886.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07df07e8-39a8-4fbc-a0c8-150f20b6ac59","savedPayload":{"position":{"x":19088.423812451314,"y":30435.840244716648},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51f64e29-e3ab-4683-a5de-f397fbf94260","savedPayload":{"position":{"x":18603.301618063546,"y":31534.850126685462},"targetPosition":{"x":18903.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Testing Queue","project":"Superalgos","exchanges":[],"id":"895ce4b1-4890-4216-89ba-a012181d2546","savedPayload":{"position":{"x":18753.301618063546,"y":30755.427263279467},"targetPosition":{"x":18903.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"signalsProviders":[],"id":"7217b56c-e854-4c06-8b8a-d5d3c05a153d","savedPayload":{"position":{"x":18903.301618063546,"y":31015.2348844148},"targetPosition":{"x":18903.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Charting Space","name":"New Charting Space","project":"Superalgos","viewport":{"type":"Viewport","name":"New Viewport","config":"{\"zoom\":\"0.00\"}","project":"Superalgos","id":"01713f1d-91b8-44f9-9c5d-a0c12fd09037","savedPayload":{"position":{"x":19200.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"frame":{"position":{"x":245.62500000000045,"y":440.12500000000006}}}},"projectDashboards":[{"type":"Project Dashboards","name":"Superalgos","project":"Superalgos","dashboards":[{"type":"Dashboard","name":"Testing Environment My Computer","project":"Superalgos","timeMachines":[{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","config":"{}","project":"Superalgos","timeScale":{"type":"Time Scale","name":"New Time Scale","config":"{\n \"autoMinScale\": true,\n \"autoMaxScale\": true,\n \"fromDate\": \"2020-08-31T23:40:00.000Z\",\n \"toDate\": \"2020-09-01T01:00:00.000Z\"\n}","project":"Superalgos","id":"691e2b6e-6b13-4a94-a8cd-15bbad6e8d2b","savedPayload":{"position":{"x":18483.434665834,"y":25740.977644897117},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","config":"{\n \"autoMinScale\": true,\n \"autoMaxScale\": true,\n \"minValue\": 11400,\n \"maxValue\": 11800\n}","project":"Superalgos","id":"d1c91955-e558-4ffe-a349-895405dd7475","savedPayload":{"position":{"x":18378.45195066214,"y":25792.749390696466},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","config":"{\"value\":\"24-hs\"}","project":"Superalgos","id":"69064a57-bfa3-4a7a-a597-55887057befb","savedPayload":{"position":{"x":18261.64837946537,"y":25800.405101221888},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Candles Volumes","project":"Superalgos","layers":[{"type":"Layer","name":"Candles","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","id":"550e7d96-2b55-4cb5-91d5-6fbceb32cbb8","savedPayload":{"position":{"x":18000.806237131383,"y":26622.58688508041},"targetPosition":{"x":18000.806237131383,"y":26322.58688508041},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"b9c30464-73e5-4f5c-b422-9ba1a02b78ab"}}}],"layerFolders":[],"id":"a9026e9d-f9c2-4509-9a75-862421b5c70b","savedPayload":{"position":{"x":18000.806237131383,"y":26322.58688508041},"targetPosition":{"x":18000.806237131383,"y":26022.58688508041},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Resistances and Supports","project":"Superalgos","layers":[{"type":"Layer","name":"Resistances","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"ea7115b6-1324-43dc-8fa2-90c12c2c2c48","savedPayload":{"position":{"x":17590.99861599605,"y":26432.394506215744},"targetPosition":{"x":17740.99861599605,"y":26172.58688508041},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Resistances","id":"a1669770-1bbe-40f7-acb3-ded15272935f"}}},{"type":"Layer","name":"Supports","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"2d16e7e1-8676-4041-a1b1-0172e023558a","savedPayload":{"position":{"x":17440.99861599605,"y":26172.58688508041},"targetPosition":{"x":17740.99861599605,"y":26172.58688508041},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Supports","id":"64899503-b618-493a-ba94-bfad2051a611"}}}],"layerFolders":[],"id":"b7fed612-b218-4378-bb3f-6c90fb947449","savedPayload":{"position":{"x":17740.99861599605,"y":26172.58688508041},"targetPosition":{"x":18000.806237131383,"y":26022.58688508041},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa6b9a8f-d5f4-4f60-b3fa-bdf957806bfb","savedPayload":{"position":{"x":18000.806237131383,"y":26022.58688508041},"targetPosition":{"x":18150.806237131383,"y":25762.779263945078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Data Mine Products","name":"Masters","id":"d37d8bf1-be3b-49ac-805b-0ddb3944e6a0"}}},"id":"6a4b0ce0-7e88-4fe3-b9b5-2116d81b2da0","savedPayload":{"position":{"x":18150.806237131383,"y":25762.779263945078},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Trading Engine","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading Engine","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Episode","project":"Superalgos","layers":[{"type":"Layer","name":"Episode Counters","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"fbbb590b-c94d-4625-94e2-bc4bfa2ab6f9","savedPayload":{"position":{"x":17117.615314676776,"y":27603.533941128822},"targetPosition":{"x":16629.455267522357,"y":27495.510435539556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Counters","id":"a01b42b0-ea87-47ab-b0e9-52d4b10cb631"}}},{"type":"Layer","name":"Episode Statistics","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"ab219d3d-1f44-4448-b5f9-f9f6ace6caea","savedPayload":{"position":{"x":17051.16747388602,"y":27764.15503654623},"targetPosition":{"x":16629.455267522357,"y":27495.510435539556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Statistics","id":"559a20a7-6697-4245-9d6c-ad7c0e31ff84"}}},{"type":"Layer","name":"Episode Candle","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"7dd6f9d6-3840-4a95-a9c9-9445a1335868","savedPayload":{"position":{"x":16933.846232243683,"y":27892.241373813282},"targetPosition":{"x":16629.455267522357,"y":27495.510435539556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Candle","id":"24fab05f-ff78-4cca-af61-d4d0bb2f2960"}}},{"type":"Layer","name":"Episode Balances","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"371bfe04-1b2d-4d60-ae70-03a2f7522466","savedPayload":{"position":{"x":16779.824555577114,"y":27972.466666709206},"targetPosition":{"x":16629.455267522357,"y":27495.510435539556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Balances","id":"7c580919-08ce-4aff-9e84-888fdf07caec"}}},{"type":"Layer","name":"Distance To Event","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"f1dea1ef-69f3-4b64-8586-ec43aa281cde","savedPayload":{"position":{"x":16607.980005705944,"y":27995.20904027392},"targetPosition":{"x":16629.455267522357,"y":27495.510435539556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Distance To Event","id":"389797d4-8456-4258-9adf-246a6ba69016"}}},{"type":"Layer","name":"Episode Base Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"eca94344-450b-4dc9-ad80-8e202b6e0517","savedPayload":{"position":{"x":16468.146686869968,"y":28016.33671006015},"targetPosition":{"x":16629.455267522357,"y":27495.510435539556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Base Asset","id":"323c7b0b-42b1-4ff0-9d4b-36c2fd605caa"}}},{"type":"Layer","name":"Episode Quoted Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"a4c54659-0b38-4faf-9827-47976eb9cca7","savedPayload":{"position":{"x":16286.534133073324,"y":27862.805158861436},"targetPosition":{"x":16629.455267522357,"y":27495.510435539556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Quoted Asset","id":"63594fc6-3b89-4507-bca8-2d43ef618cbe"}}},{"type":"Layer","name":"Current Episode","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"e82d97df-5b25-4967-b2b4-da065c5d3ad9","savedPayload":{"position":{"x":16186.118842172375,"y":27726.349378357005},"targetPosition":{"x":16629.455267522357,"y":27495.510435539556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Episode","id":"73bb3f9e-b112-4e5a-bce9-6d4bec41cc6c"}}}],"layerFolders":[],"id":"851d853d-e2d7-4138-b5fd-563f1f844f64","savedPayload":{"position":{"x":16629.455267522357,"y":27495.510435539556},"targetPosition":{"x":16563.94253388532,"y":27000.12691029475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Strategy","project":"Superalgos","layers":[{"type":"Layer","name":"Current Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"dc84698a-bce4-4979-9aca-80661b054191","savedPayload":{"position":{"x":16413.05839477738,"y":27900.48601747122},"targetPosition":{"x":16372.806838862034,"y":27461.836330732353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Strategy","id":"515f5fd6-d860-44d4-b5d6-a19acd9c5c86"}}},{"type":"Layer","name":"Last Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"d3456e5b-0438-4273-a3ce-6b1d60573c33","savedPayload":{"position":{"x":15940.04282322282,"y":27710.982017672217},"targetPosition":{"x":16372.806838862034,"y":27461.836330732353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Strategy","id":"556e97e8-eba3-419d-869d-950cc99371da"}}}],"layerFolders":[],"id":"6ad8b449-785f-40cc-afc0-19c68b508c17","savedPayload":{"position":{"x":16372.806838862034,"y":27461.836330732353},"targetPosition":{"x":16563.94253388532,"y":27000.12691029475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Current Position","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"4b8d055f-0c36-40a6-af78-5faf9b34b72c","savedPayload":{"position":{"x":16011.911411221576,"y":27821.709717793714},"targetPosition":{"x":16167.428268555628,"y":27304.34657839513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Position","id":"d33abc39-702b-4d7a-8435-43d90e0f2c3a"}}},{"type":"Layer","name":"Last Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"ac24a200-397f-4d7c-9916-581328c74f22","savedPayload":{"position":{"x":15678.683136179856,"y":27381.4342703589},"targetPosition":{"x":16167.428268555628,"y":27304.34657839513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Position","id":"d681fd5f-64af-4f39-9f6d-a767bef7692f"}}}],"layerFolders":[],"id":"acf27818-08f1-4c0d-9cc9-30c38ba892fb","savedPayload":{"position":{"x":16167.428268555628,"y":27304.34657839513},"targetPosition":{"x":16563.94253388532,"y":27000.12691029475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Open Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"b9eeeeb3-43db-4d4f-9f28-f42e947494f9","savedPayload":{"position":{"x":15829.8024827204,"y":27504.536838373795},"targetPosition":{"x":16068.487948353533,"y":27065.178022212927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stage","id":"b0961496-1af9-48cd-bbeb-ac5973192e78"}}},{"type":"Layer","name":"Close Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"eda9462a-9688-42cf-ae97-b3dfd02c718c","savedPayload":{"position":{"x":15609.804663880679,"y":27268.796716857654},"targetPosition":{"x":16068.487948353533,"y":27065.178022212927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stage","id":"0c9cf78d-ce6e-4318-811d-e748ca72845d"}}},{"type":"Layer","name":"Trigger Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"1481d280-6112-4d0d-8a48-3fe4e65efc9d","savedPayload":{"position":{"x":15542.751172927,"y":26994.51154740736},"targetPosition":{"x":16068.487948353533,"y":27065.178022212927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stage","id":"e298787f-b7f2-4334-931e-38b9441e43f9"}}},{"type":"Layer","name":"Manage Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"2f579332-aa55-4e51-bbf4-370614838fd3","savedPayload":{"position":{"x":15731.678465146957,"y":26701.21391555524},"targetPosition":{"x":16068.487948353533,"y":27065.178022212927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stage","id":"4719b69d-b23e-4037-8c0a-b641fd8ab14c"}}}],"layerFolders":[],"id":"5b4e1c43-9fb7-439f-9ca9-e600bd41718d","savedPayload":{"position":{"x":16068.487948353533,"y":27065.178022212927},"targetPosition":{"x":16563.94253388532,"y":27000.12691029475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"be00b86a-5b53-4dbd-ab79-7d135115a05e","savedPayload":{"position":{"x":15729.681254722265,"y":27141.496363567436},"targetPosition":{"x":16102.435022890473,"y":26808.60560739891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"90834a1b-cc7e-48a9-be5c-0e30380af4bd"}}},{"type":"Layer","name":"Market Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"3870b052-156c-4f10-9658-3fe3df4baf10","savedPayload":{"position":{"x":15655.766921038878,"y":26926.520781829942},"targetPosition":{"x":16102.435022890473,"y":26808.60560739891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"e2112d60-5fc2-4e67-befe-d4fbd6c1de77"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"5fa754c9-ffc3-499c-b566-0031b276cb73","savedPayload":{"position":{"x":15602.003963464067,"y":26726.16283946371},"targetPosition":{"x":16102.435022890473,"y":26808.60560739891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"e734b6be-ba40-468c-a94f-1153dc85e00c"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"15ec260c-02f5-46e0-853b-6e751175dac7","savedPayload":{"position":{"x":15694.595933594896,"y":26519.078790508484},"targetPosition":{"x":16102.435022890473,"y":26808.60560739891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"9a973229-4d9d-45af-b5aa-64906a915f6e"}}},{"type":"Layer","name":"Last Market Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"be57de60-d843-4bc8-bcb8-d8be27ceffbb","savedPayload":{"position":{"x":15860.599521408476,"y":26370.959361875106},"targetPosition":{"x":16102.435022890473,"y":26808.60560739891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Market Order","id":"56517fe9-64da-4404-83f3-005106bc1c0a"}}},{"type":"Layer","name":"Last Limit Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"407c7816-701b-43bf-92d8-cc728af78f0e","savedPayload":{"position":{"x":16074.514663407172,"y":26309.4257023683},"targetPosition":{"x":16102.435022890473,"y":26808.60560739891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Limit Order","id":"d00c76e7-4be0-4518-9892-a0f6df943951"}}}],"layerFolders":[],"id":"ac1ed18a-243b-4211-bb24-83bbfc20cd0a","savedPayload":{"position":{"x":16102.435022890473,"y":26808.60560739891},"targetPosition":{"x":16563.94253388532,"y":27000.12691029475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"41428787-ca89-4ab9-a5cc-29e66e7c486d","savedPayload":{"position":{"x":16563.94253388532,"y":27000.12691029475},"targetPosition":{"x":16959.887378913278,"y":26696.345955873618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"153096ea-a48c-4ed5-9f8e-49eafa7a779c","savedPayload":{"position":{"x":16959.887378913278,"y":26696.345955873618},"targetPosition":{"x":17356.087169245202,"y":26392.358194020195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"918bdf6d-3cfe-4c8b-894d-320cc72aef70","savedPayload":{"position":{"x":17356.087169245202,"y":26392.358194020195},"targetPosition":{"x":17752.58716757543,"y":26088.09403049708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"13a2b4f9-2c05-49b2-b42c-32ffa71ae0b7"}}},"id":"f0cc2b79-bae6-4441-a456-9fda5962a74f","savedPayload":{"position":{"x":18062.80023504401,"y":25685.600071512363},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Trading System","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading System","project":"Superalgos","layers":[{"type":"Layer","name":"Trading System Errors","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"49761e84-d6c2-4c25-9604-fb2ddf93e510","savedPayload":{"position":{"x":16656.868785422477,"y":26432.858992462687},"targetPosition":{"x":16674.50340983706,"y":26032.473650601696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Errors","id":"a0c29c57-0a20-4084-9697-142300f62f9c"}}},{"type":"Layer","name":"Trading System Highlights","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"622a88bb-151c-48ef-bb99-e093498bf002","savedPayload":{"position":{"x":16532.079378960796,"y":26407.941535439437},"targetPosition":{"x":16674.50340983706,"y":26032.473650601696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Highlights","id":"aa0fe882-89a8-4811-8988-c589554afe9d"}}},{"type":"Layer","name":"Trading System Values","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"fba6a9fb-5e9a-46dd-aa2b-33950f0ec9f1","savedPayload":{"position":{"x":16422.17772780151,"y":26345.322337891994},"targetPosition":{"x":16674.50340983706,"y":26032.473650601696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Values","id":"bbc65054-b22b-4cbb-816b-529672e2f498"}}},{"type":"Layer","name":"Trading System Status","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"4ec0d56a-b497-4d90-9157-094c08930962","savedPayload":{"position":{"x":16337.350686782229,"y":26251.937657405022},"targetPosition":{"x":16674.50340983706,"y":26032.473650601696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Status","id":"776a3ece-8255-4e80-b60f-85bb818b561f"}}},{"type":"Layer","name":"Trading System Progress","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"5db72b24-ad72-49dd-8a32-1256fb25d04a","savedPayload":{"position":{"x":16285.989038785094,"y":26136.930218774854},"targetPosition":{"x":16674.50340983706,"y":26032.473650601696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Progress","id":"7593aaf9-0505-4b58-9920-235340ff2d2f"}}},{"type":"Layer","name":"Trading System Running","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"cbdfc3db-d5dd-476c-bf02-cf86d8a01300","savedPayload":{"position":{"x":16272.745363533515,"y":26011.773677977748},"targetPosition":{"x":16674.50340983706,"y":26032.473650601696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Running","id":"3e2e6105-f41f-42e2-bce5-74ebb3b81cbd"}}},{"type":"Layer","name":"Trading System Announcements","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"105a157c-b33a-40d0-9711-19526b04bfda","savedPayload":{"position":{"x":16299.015550574797,"y":25888.784732962406},"targetPosition":{"x":16674.50340983706,"y":26032.473650601696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Announcements","id":"faab4399-898b-4393-8c27-fa2f3109c60a"}}},{"type":"Layer","name":"Trading System Warnings","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"ab8b1fdc-4319-4b37-ae29-333912412215","savedPayload":{"position":{"x":16361.786293229427,"y":25778.482294029163},"targetPosition":{"x":16674.50340983706,"y":26032.473650601696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Warnings","id":"9ff0f035-ca7f-4e65-a82c-186fa7f09157"}}},{"type":"Layer","name":"Trading System Infos","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"051bd185-3255-41a5-bf62-ea8b27b32ddf","savedPayload":{"position":{"x":16480.783502595135,"y":25721.83855865352},"targetPosition":{"x":16674.50340983706,"y":26032.473650601696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Infos","id":"04210a59-070a-45f1-a2a0-cf50bd4879f7"}}}],"layerFolders":[],"id":"838dab4e-c0bf-47f3-ac6a-8f815e5e666b","savedPayload":{"position":{"x":16674.50340983706,"y":26032.473650601696},"targetPosition":{"x":17060.504725681127,"y":25928.810868229375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"74e5c728-fd06-4e79-8ec1-32ab2720adf5","savedPayload":{"position":{"x":17060.504725681127,"y":25928.810868229375},"targetPosition":{"x":17476.621526107163,"y":25817.204586634994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8a7bce21-b09a-41e3-b9af-87f1939e9136","savedPayload":{"position":{"x":17183.249075924137,"y":26042.417976975546},"targetPosition":{"x":17666.14324924388,"y":25913.066804430764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"13a2b4f9-2c05-49b2-b42c-32ffa71ae0b7"}}},"id":"a514d9bb-8862-4c81-b82e-dbde66abeb77","savedPayload":{"position":{"x":18011.02848924466,"y":25580.617356340503},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Objects","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Objects","project":"Superalgos","layers":[{"type":"Layer","name":"Episodes","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","id":"17c8f568-4716-4a19-a607-689b78a83ef9","savedPayload":{"position":{"x":15863.39648009967,"y":25920.19809968253},"targetPosition":{"x":16168.303357177294,"y":25522.64736240649},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episodes","id":"73dff61a-7b05-4ca6-b963-99d6c578e9ba"}}},{"type":"Layer","name":"Strategies","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"86978570-76c1-4780-a91d-4e72e88ef817","savedPayload":{"position":{"x":15705.823183600161,"y":25714.050844388883},"targetPosition":{"x":16168.303357177294,"y":25522.64736240649},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"a9c454c8-9075-4dcf-bfe9-ebd0c1658049"}}}],"layerFolders":[{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"653e6b00-bda3-4662-a2bd-934212e884d1","savedPayload":{"position":{"x":15327.86442305616,"y":25820.329298596927},"targetPosition":{"x":15672.454225865862,"y":25457.66729056814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"cad1eecc-e897-4086-b42c-fcfd843c04cc"}}},{"type":"Layer","name":"Market Sell Orders","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"2887f930-5d79-42ff-ab1d-7d5cdc6b47da","savedPayload":{"position":{"x":15180.506269267476,"y":25548.319695716105},"targetPosition":{"x":15672.454225865862,"y":25457.66729056814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"fdf22e85-7071-4847-bdba-e3fb43a616ed"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","id":"3040a2f6-0b1c-4ed3-a816-39c916465c9a","savedPayload":{"position":{"x":15221.387997903394,"y":25243.251366030032},"targetPosition":{"x":15672.454225865862,"y":25457.66729056814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"d2b1ab31-d8a1-422b-a717-33ee7df9b07b"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","id":"a59ef70f-534f-410b-99ef-3a700d2ca82a","savedPayload":{"position":{"x":15398.72702979423,"y":25036.45705462772},"targetPosition":{"x":15672.454225865862,"y":25457.66729056814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"3b5a12db-b969-4400-8b9d-afb9b7b81642"}}}],"layerFolders":[],"id":"334a2964-17df-4237-a302-962416655896","savedPayload":{"position":{"x":15672.454225865862,"y":25457.66729056814},"targetPosition":{"x":16168.303357177294,"y":25522.64736240649},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Trigger Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"a6b1a2c5-ca70-42b9-932f-2ff00aff2524","savedPayload":{"position":{"x":15292.017678857432,"y":25360.154463716302},"targetPosition":{"x":15771.52653783795,"y":25218.00065188687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stages","id":"9fc29be1-9393-4933-95d3-bebddd73c05e"}}},{"type":"Layer","name":"Open Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"663ddaf7-784f-4baa-8f69-3ed0ef5cd685","savedPayload":{"position":{"x":15298.823311983959,"y":25050.998457959326},"targetPosition":{"x":15771.52653783795,"y":25218.00065188687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stages","id":"b555388f-db93-4db1-91be-7772550afa70"}}},{"type":"Layer","name":"Manage Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"9a4be770-082c-4d0f-a747-0b74d792e76f","savedPayload":{"position":{"x":15476.277795953174,"y":24812.240105588095},"targetPosition":{"x":15771.52653783795,"y":25218.00065188687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stages","id":"41953904-e48c-4176-bf0f-09d133bc444c"}}},{"type":"Layer","name":"Close Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"efb9d388-a679-49b2-b792-1b8258a489d6","savedPayload":{"position":{"x":15784.125039599678,"y":24724.90131904347},"targetPosition":{"x":15771.52653783795,"y":25218.00065188687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stages","id":"47b4553c-7f2e-438c-9f4b-9ba30e943a6c"}}}],"layerFolders":[],"id":"eea75e9a-a735-4db8-9eea-cf2c4e4119e3","savedPayload":{"position":{"x":15771.52653783795,"y":25218.00065188687},"targetPosition":{"x":16168.303357177294,"y":25522.64736240649},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Positions","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"bb0ea641-23a7-48d0-a70d-f3314722f129","savedPayload":{"position":{"x":15517.085211279895,"y":24978.036206455075},"targetPosition":{"x":15977.296572394282,"y":25060.75923245295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Positions","id":"6e49b57f-8c94-410f-985b-82c126155b11"}}},{"type":"Layer","name":"Position Base Asset","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"fa1cf76f-30a6-4cfd-ba4f-8511afca64b8","savedPayload":{"position":{"x":15592.85911518537,"y":24750.27204370447},"targetPosition":{"x":15977.296572394282,"y":25060.75923245295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Base Asset","id":"ae8fa9a5-95b6-4769-8ade-f9854e6855ba"}}},{"type":"Layer","name":"Position Quoted Asset","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"bf7d5c92-8894-4040-8d2f-3f5cdec443af","savedPayload":{"position":{"x":15786.287615627753,"y":24593.84817912013},"targetPosition":{"x":15977.296572394282,"y":25060.75923245295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Quoted Asset","id":"9e9b19ee-9c51-4586-b74d-d2880f13f71f"}}},{"type":"Layer","name":"Stop Loss","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"125c9155-a747-4ac4-9d9f-1b93a4ae8d17","savedPayload":{"position":{"x":16042.541437710524,"y":24564.41238111062},"targetPosition":{"x":15977.296572394282,"y":25060.75923245295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Stop Loss","id":"01491591-0462-453c-91e0-6da6f554a729"}}},{"type":"Layer","name":"Take Profit","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"3745d5cd-a2be-43ed-b5df-d05c328f8665","savedPayload":{"position":{"x":16280.917386265202,"y":24663.928419862754},"targetPosition":{"x":15977.296572394282,"y":25060.75923245295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Take Profit","id":"719dd8a6-58ab-41c6-9693-9b67c12232d2"}}}],"layerFolders":[],"id":"9854e8b2-d863-42f3-afd5-416d5e2c548e","savedPayload":{"position":{"x":15977.296572394282,"y":25060.75923245295},"targetPosition":{"x":16168.303357177294,"y":25522.64736240649},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6e31ae33-68d1-4dca-8b29-6e59a2a4448e","savedPayload":{"position":{"x":16168.303357177294,"y":25522.64736240649},"targetPosition":{"x":16663.0166511096,"y":25588.08600416838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8c851b59-3105-460c-bb4b-cb4944db1049","savedPayload":{"position":{"x":16663.0166511096,"y":25588.08600416838},"targetPosition":{"x":17157.9116821377,"y":25653.201834587282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"be53f7bc-6c26-4fd7-a0d0-96b965bbf655","savedPayload":{"position":{"x":17157.9116821377,"y":25653.201834587282},"targetPosition":{"x":17653.521538239824,"y":25718.280363218284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"13a2b4f9-2c05-49b2-b42c-32ffa71ae0b7"}}},"id":"43eeb152-b0b8-468d-84d1-7d03fd636387","savedPayload":{"position":{"x":18003.37277871924,"y":25463.81378514373},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"499eac86-6c40-4362-a36a-5f2002081866","savedPayload":{"position":{"x":18300.806237131383,"y":25502.971642809745},"targetPosition":{"x":18450.806237131383,"y":25243.164021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":585,"y":-155},"width":240,"height":111.125,"radius":0},"referenceParent":{"type":"Backtesting Session","name":"Lightning Strike","id":"ce648922-fef2-44e3-8d76-2bd7ab72a29f"}}}],"id":"885265c2-ebb1-4283-a617-34a88780276d","savedPayload":{"position":{"x":18450.806237131383,"y":25243.164021674413},"targetPosition":{"x":18600.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Testing Environment","name":"New Testing Environment","id":"5882d8a8-345b-4188-b1c1-797e9ff805d9"}}},{"type":"Dashboard","name":"Production Environment My Computer","project":"Superalgos","timeMachines":[{"type":"Time Machine","name":"Lightning Strike Live Trading Session My Computer","config":"{}","project":"Superalgos","timeScale":{"type":"Time Scale","name":"New Time Scale","config":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-10-06T17:09:32.085Z\",\n \"toDate\": \"2020-10-06T21:09:32.085Z\"\n}","project":"Superalgos","id":"708c5a9f-a995-4210-aaaf-0794782f0e9e","savedPayload":{"position":{"x":18003.37277871924,"y":24502.89901593443},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","config":"{\n \"autoMinScale\": true,\n \"autoMaxScale\": true,\n \"minValue\": 10419.75,\n \"maxValue\": 10844.37\n}","project":"Superalgos","id":"ee3f6af0-8649-489b-9168-b4f16d2f5a78","savedPayload":{"position":{"x":18011.02848924466,"y":24386.095444737657},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","config":"{\n \"value\": \"01-min\",\n \"autoMinScale\": false,\n \"autoMaxScale\": true,\n \"fromDate\": \"2020-10-05T09:53:58.939Z\",\n \"toDate\": \"2020-10-05T13:53:58.939Z\"\n}","project":"Superalgos","id":"480f9696-76df-4026-a435-7bf364c08056","savedPayload":{"position":{"x":18062.80023504401,"y":24281.112729565797},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"New Data Mine Products","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Candles Volumes","project":"Superalgos","layers":[{"type":"Layer","name":"Candles","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","id":"e3cbbcbe-c938-4669-b670-c317476e0a3b","savedPayload":{"position":{"x":16992.282280946285,"y":23856.49271176323},"targetPosition":{"x":17392.615945713467,"y":23857.108132968406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"b9c30464-73e5-4f5c-b422-9ba1a02b78ab"}}},{"type":"Layer","name":"Volumes","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"385a5f98-118a-43fd-b019-54e825d1f4ae","savedPayload":{"position":{"x":17192.242023030805,"y":23510.135246216414},"targetPosition":{"x":17392.615945713467,"y":23857.108132968406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"07c11481-7dbd-477d-8bf7-79212542a6aa"}}}],"layerFolders":[],"id":"6848a114-9979-41dd-8d95-3a899679ba08","savedPayload":{"position":{"x":17392.615945713467,"y":23857.108132968406},"targetPosition":{"x":17738.764681458488,"y":24056.665358937673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Resistances and Supports","project":"Superalgos","layers":[{"type":"Layer","name":"Resistances","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"0cf13cfa-2a37-4691-902c-513ab5780da8","savedPayload":{"position":{"x":17538.760168957182,"y":23310.0159698544},"targetPosition":{"x":17738.97910230742,"y":23657.072015580987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Resistances","id":"a1669770-1bbe-40f7-acb3-ded15272935f"}}},{"type":"Layer","name":"Supports","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"d9245f0b-54e8-44b1-94bd-56c7048eb5c1","savedPayload":{"position":{"x":17938.505496583897,"y":23310.043709247824},"targetPosition":{"x":17738.97910230742,"y":23657.072015580987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Supports","id":"64899503-b618-493a-ba94-bfad2051a611"}}}],"layerFolders":[],"id":"20bd60bb-917b-4a0f-acc5-b019d1c3bd81","savedPayload":{"position":{"x":17738.97910230742,"y":23657.072015580987},"targetPosition":{"x":17738.764681458488,"y":24056.665358937673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4cbbc012-c91e-4acd-a8d2-feb149e728a0","savedPayload":{"position":{"x":17738.764681458488,"y":24056.665358937673},"targetPosition":{"x":17963.331767523672,"y":24445.732145877373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":330,"radius":0},"referenceParent":{"type":"Data Mine Products","name":"Masters","id":"d37d8bf1-be3b-49ac-805b-0ddb3944e6a0"}}},"id":"bb7afb85-32ea-4471-8400-615a34fc126f","savedPayload":{"position":{"x":18150.806237131383,"y":24203.93353713308},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Trading Engine","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading Engine","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Episode","project":"Superalgos","layers":[{"type":"Layer","name":"Episode Counters","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"05da2270-0016-4d22-89d8-b77cd14008a9","savedPayload":{"position":{"x":12224.806237131383,"y":25700.664021674413},"targetPosition":{"x":12315.806237131383,"y":25752.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Counters","id":"dc6cc4ef-4bd7-4837-8442-919462314db3"}}},{"type":"Layer","name":"Episode Statistics","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"a4165460-e0a7-4a0d-b506-15e756dfac93","savedPayload":{"position":{"x":12219.806237131383,"y":25689.664021674413},"targetPosition":{"x":12315.806237131383,"y":25752.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Statistics","id":"776ed571-8321-47aa-8cfb-c8ebf565dace"}}},{"type":"Layer","name":"Episode Candle","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"371e0cd7-af57-4469-836d-45c4e6059760","savedPayload":{"position":{"x":12317.806237131383,"y":25717.664021674413},"targetPosition":{"x":12315.806237131383,"y":25752.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Candle","id":"ded93703-a48d-44be-9703-878c28f949cd"}}},{"type":"Layer","name":"Episode Balances","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"5ed81442-77cc-4101-b1ff-8c7cbac57d4f","savedPayload":{"position":{"x":12245.806237131383,"y":25698.664021674413},"targetPosition":{"x":12315.806237131383,"y":25752.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Balances","id":"e702f1dd-1c91-4d05-ac55-19db363f5f3a"}}},{"type":"Layer","name":"Distance To Event","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"5e046a6a-4f38-4b44-bae1-1aed6d4d3753","savedPayload":{"position":{"x":12313.806237131383,"y":25819.664021674413},"targetPosition":{"x":12315.806237131383,"y":25752.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Distance To Event","id":"b8abea53-8221-47bd-91a2-cdcdd2ad1027"}}},{"type":"Layer","name":"Episode Base Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"b78a78ec-dca3-499b-881a-d2e3a82bf116","savedPayload":{"position":{"x":12330.806237131383,"y":25734.664021674413},"targetPosition":{"x":12315.806237131383,"y":25752.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Base Asset","id":"18bcbd26-c237-4acb-96f4-d9c95d833a42"}}},{"type":"Layer","name":"Episode Quoted Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"bb95c2a9-6f82-4a2a-9105-17b8f6c3c51a","savedPayload":{"position":{"x":12364.806237131383,"y":25720.664021674413},"targetPosition":{"x":12315.806237131383,"y":25752.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Quoted Asset","id":"c444f4b5-fa67-4c21-afa8-1f998da7a2a2"}}},{"type":"Layer","name":"Current Episode","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"4ad5b6f0-f4a9-4aab-aedf-9175647498b0","savedPayload":{"position":{"x":12321.806237131383,"y":25708.664021674413},"targetPosition":{"x":12315.806237131383,"y":25752.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Episode","id":"057570bd-69d4-4f3c-b0d4-94ee32f61e65"}}}],"layerFolders":[],"id":"7216b7a3-1371-4f07-a395-74c547579ab4","savedPayload":{"position":{"x":12315.806237131383,"y":25752.664021674413},"targetPosition":{"x":12363.806237131383,"y":25731.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Strategy","project":"Superalgos","layers":[{"type":"Layer","name":"Current Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"d2c0a1c8-70ef-4f7b-835a-a99ac6a5837a","savedPayload":{"position":{"x":12210.806237131383,"y":25770.664021674413},"targetPosition":{"x":12305.806237131383,"y":25783.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Strategy","id":"88dd680c-a81b-48ae-96ba-838281abfa35"}}},{"type":"Layer","name":"Last Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"076af680-2114-480b-a979-f7eea4966d7b","savedPayload":{"position":{"x":12302.806237131383,"y":25739.664021674413},"targetPosition":{"x":12305.806237131383,"y":25783.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Strategy","id":"24af3ffc-6a52-4ee3-a30b-f068aa5b2062"}}}],"layerFolders":[],"id":"56112c60-50dd-4d19-89aa-1d46005f194f","savedPayload":{"position":{"x":12305.806237131383,"y":25783.664021674413},"targetPosition":{"x":12363.806237131383,"y":25731.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Current Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"bb93ebef-f7ee-42c2-93b8-fe46eba0874a","savedPayload":{"position":{"x":12424.806237131383,"y":25721.664021674413},"targetPosition":{"x":12427.806237131383,"y":25692.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Position","id":"25280962-e4e5-40df-9e42-9edfbad6f6d3"}}},{"type":"Layer","name":"Last Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"595e7228-5676-4f5c-82bf-baa43e9325ab","savedPayload":{"position":{"x":12488.806237131383,"y":25680.664021674413},"targetPosition":{"x":12427.806237131383,"y":25692.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Position","id":"7a95a249-132d-4e0f-9182-cc7af45cacea"}}}],"layerFolders":[],"id":"9f594c8a-87fe-4c4b-b550-493405fe0b2d","savedPayload":{"position":{"x":12427.806237131383,"y":25692.664021674413},"targetPosition":{"x":12363.806237131383,"y":25731.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Open Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"3ce44f39-8ac9-4984-ad9d-daa53ed3f707","savedPayload":{"position":{"x":12377.806237131383,"y":25588.664021674413},"targetPosition":{"x":12422.806237131383,"y":25658.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stage","id":"c9c4bca7-f918-4aa8-b538-ffe8aa31d5c2"}}},{"type":"Layer","name":"Close Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"a7d5f0aa-8259-4271-aa95-7b351aa9b9c0","savedPayload":{"position":{"x":12337.806237131383,"y":25588.664021674413},"targetPosition":{"x":12422.806237131383,"y":25658.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stage","id":"4201d7c0-43aa-4ac0-bd7e-ab26b688aa2d"}}},{"type":"Layer","name":"Trigger Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"9a9f6580-ab06-4005-9274-98f7e9a491e5","savedPayload":{"position":{"x":12387.806237131383,"y":25625.664021674413},"targetPosition":{"x":12422.806237131383,"y":25658.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stage","id":"4fe24ddc-973f-4a5d-bf8a-d77090486125"}}},{"type":"Layer","name":"Manage Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"f60905ad-b491-45ee-9768-8087df9aef78","savedPayload":{"position":{"x":12466.806237131383,"y":25757.664021674413},"targetPosition":{"x":12422.806237131383,"y":25658.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stage","id":"e2f3d69e-2f0a-4463-8e74-4f0768c4fb70"}}}],"layerFolders":[],"id":"5389c77c-63a7-4495-9cc5-cdc0c70b76e6","savedPayload":{"position":{"x":12422.806237131383,"y":25658.664021674413},"targetPosition":{"x":12363.806237131383,"y":25731.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"f602d8ef-b6a6-423f-a772-9a4b5d5b9c43","savedPayload":{"position":{"x":12422.806237131383,"y":25747.664021674413},"targetPosition":{"x":12437.806237131383,"y":25742.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"0e0b284a-5014-4ab0-ada0-4322c14a099e"}}},{"type":"Layer","name":"Market Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"0a0dd259-5704-46de-900f-5d1dc24af4f6","savedPayload":{"position":{"x":12488.806237131383,"y":25650.664021674413},"targetPosition":{"x":12437.806237131383,"y":25742.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"95b3db7a-9b62-4eab-a76b-4af8794da5a6"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"de6f83f6-a6d9-45c7-93fd-e2c72238040e","savedPayload":{"position":{"x":12410.806237131383,"y":25733.664021674413},"targetPosition":{"x":12437.806237131383,"y":25742.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"1c6eed42-23aa-4174-aade-be29222acb8c"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"ac0f1c2a-5eed-45ee-84da-3d24e455abd3","savedPayload":{"position":{"x":12379.806237131383,"y":25663.664021674413},"targetPosition":{"x":12437.806237131383,"y":25742.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"a2f44cd5-090d-42e5-9eb7-73e732310e85"}}},{"type":"Layer","name":"Last Market Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"89def699-c33f-4344-a045-babca1f545ee","savedPayload":{"position":{"x":12478.806237131383,"y":25752.664021674413},"targetPosition":{"x":12437.806237131383,"y":25742.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Market Order","id":"8c24d559-ba52-46fe-81b4-8a6bf50c74b6"}}},{"type":"Layer","name":"Last Limit Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"a7e04514-bf32-4021-822c-47af56c55a76","savedPayload":{"position":{"x":12504.806237131383,"y":25780.664021674413},"targetPosition":{"x":12437.806237131383,"y":25742.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Limit Order","id":"c451c035-5ece-451f-836f-b5334cb3f967"}}}],"layerFolders":[],"id":"a302255a-cf35-4801-ae3c-95cb47ae9613","savedPayload":{"position":{"x":12437.806237131383,"y":25742.664021674413},"targetPosition":{"x":12363.806237131383,"y":25731.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1857004e-2f12-4287-8847-173043d8d2ab","savedPayload":{"position":{"x":12363.806237131383,"y":25731.664021674413},"targetPosition":{"x":12380.806237131383,"y":25686.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"23ad1663-d4da-4ece-8964-30012894ae5b","savedPayload":{"position":{"x":12380.806237131383,"y":25686.664021674413},"targetPosition":{"x":12448.806237131383,"y":25597.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ddb3fafa-58f4-46c1-9b24-61efe3ec13a6","savedPayload":{"position":{"x":12448.806237131383,"y":25597.664021674413},"targetPosition":{"x":12446.806237131383,"y":25637.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":330,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"aa2b0766-a3d5-47e1-acd8-7345af564388"}}},"id":"788a0207-20ea-411c-862d-b1b13db4e09f","savedPayload":{"position":{"x":18261.64837946537,"y":24166.307699856272},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Trading System","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading System","project":"Superalgos","layers":[{"type":"Layer","name":"Trading System Errors","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"2a1db97f-553d-47ea-b452-c90ba9af9e79","savedPayload":{"position":{"x":12242.806237131383,"y":25582.664021674413},"targetPosition":{"x":12310.806237131383,"y":25627.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Errors","id":"ba606f99-2ae5-44dc-b7db-399e657830e1"}}},{"type":"Layer","name":"Trading System Highlights","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"3c1c9d45-c482-4374-92ad-c3c28bfb7679","savedPayload":{"position":{"x":12270.806237131383,"y":25723.664021674413},"targetPosition":{"x":12310.806237131383,"y":25627.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Highlights","id":"2d20d8ae-4afa-4e92-8de2-89e66e5efdee"}}},{"type":"Layer","name":"Trading System Values","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"a560c8af-91cd-4aea-ab9f-01ed60892abb","savedPayload":{"position":{"x":12340.806237131383,"y":25546.664021674413},"targetPosition":{"x":12310.806237131383,"y":25627.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Values","id":"f8a6219c-c7b4-410a-8aa4-1910583f51c8"}}},{"type":"Layer","name":"Trading System Status","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"40debb84-1e2e-452b-99ff-95ff3994fb29","savedPayload":{"position":{"x":12322.806237131383,"y":25605.664021674413},"targetPosition":{"x":12310.806237131383,"y":25627.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Status","id":"dcff6f56-7646-4505-aa93-6682a110f3f2"}}},{"type":"Layer","name":"Trading System Progress","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"5785c4fb-879d-4b89-aab8-9ec37d5f561b","savedPayload":{"position":{"x":12240.806237131383,"y":25559.664021674413},"targetPosition":{"x":12310.806237131383,"y":25627.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Progress","id":"0a9dff80-e462-4110-b988-11ce57bbbcd5"}}},{"type":"Layer","name":"Trading System Running","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"74d8c1f7-8dd5-4e2c-b3cf-7f7bcfe7143c","savedPayload":{"position":{"x":12342.806237131383,"y":25543.664021674413},"targetPosition":{"x":12310.806237131383,"y":25627.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Running","id":"c7e05ad0-7d4a-4ffb-9aee-191511f85ee7"}}},{"type":"Layer","name":"Trading System Announcements","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"4476fcb1-3898-440f-b69e-afba06be912a","savedPayload":{"position":{"x":12402.806237131383,"y":25585.664021674413},"targetPosition":{"x":12310.806237131383,"y":25627.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Announcements","id":"e4811789-fd94-49b0-9917-8d9d434f997d"}}},{"type":"Layer","name":"Trading System Warnings","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"43fe3418-9b3c-4cd9-b9a9-3994851e0b65","savedPayload":{"position":{"x":12310.806237131383,"y":25555.664021674413},"targetPosition":{"x":12310.806237131383,"y":25627.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Warnings","id":"029ff3a7-9c65-425f-855a-882df68fa05b"}}},{"type":"Layer","name":"Trading System Infos","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"de34ba07-61b5-4785-bcf5-ff5b81d63e48","savedPayload":{"position":{"x":12227.806237131383,"y":25559.664021674413},"targetPosition":{"x":12310.806237131383,"y":25627.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Infos","id":"0f47adaf-25a0-431f-b15b-0fbf44069b38"}}}],"layerFolders":[],"id":"36e02794-0943-4520-af39-2f274050610c","savedPayload":{"position":{"x":12310.806237131383,"y":25627.664021674413},"targetPosition":{"x":12365.806237131383,"y":25585.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1ccfa34c-ca21-4ac3-be74-30f85549bf5e","savedPayload":{"position":{"x":12365.806237131383,"y":25585.664021674413},"targetPosition":{"x":12339.806237131383,"y":25637.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c1c4bd7c-b755-461a-a5ed-b59804b4c280","savedPayload":{"position":{"x":12339.806237131383,"y":25637.664021674413},"targetPosition":{"x":12377.806237131383,"y":25540.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":330,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"aa2b0766-a3d5-47e1-acd8-7345af564388"}}},"id":"ed6507e7-437f-4740-a897-11dc4da4d20a","savedPayload":{"position":{"x":18378.45195066214,"y":24173.963410381693},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Objects","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Objects","project":"Superalgos","layers":[{"type":"Layer","name":"Episodes","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"76852fcc-d524-43b8-a0b1-8645c2fed91e","savedPayload":{"position":{"x":12710.806237131383,"y":25614.664021674413},"targetPosition":{"x":12687.806237131383,"y":25530.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episodes","id":"c6fd6067-4b57-4860-ae3b-5668e4444490"}}},{"type":"Layer","name":"Strategies","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"43b43957-23d5-401b-b3e0-391c430b72c9","savedPayload":{"position":{"x":12705.806237131383,"y":25579.664021674413},"targetPosition":{"x":12687.806237131383,"y":25530.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"60f88096-7343-42d1-afad-83fecd22fb44"}}}],"layerFolders":[{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"aaff7fb6-bd83-48f2-819a-a1dd674876a7","savedPayload":{"position":{"x":12579.806237131383,"y":25470.664021674413},"targetPosition":{"x":12649.806237131383,"y":25488.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"9f939086-c934-4924-8353-776707a7cf10"}}},{"type":"Layer","name":"Market Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"bec241f4-5a8f-4fe7-9620-76d92f64da9c","savedPayload":{"position":{"x":12705.806237131383,"y":25579.664021674413},"targetPosition":{"x":12649.806237131383,"y":25488.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"da5f279e-d387-43cf-80f4-fc114b9ac906"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","id":"2d03d083-7199-4bf2-8e8a-4c96f23a16a8","savedPayload":{"position":{"x":12735.806237131383,"y":25521.664021674413},"targetPosition":{"x":12649.806237131383,"y":25488.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"367646bb-839a-4071-8305-6d26a647585d"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","id":"cb5de20d-e440-4bdb-a074-c408740e9022","savedPayload":{"position":{"x":12631.806237131383,"y":25476.664021674413},"targetPosition":{"x":12649.806237131383,"y":25488.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"0b2fc73a-9635-40b2-98d8-0c79c69175a9"}}}],"layerFolders":[],"id":"a8409c29-905d-495f-bbca-3d0eef14f91c","savedPayload":{"position":{"x":12649.806237131383,"y":25488.664021674413},"targetPosition":{"x":12687.806237131383,"y":25530.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Trigger Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"04d1a0a8-1419-4fbd-9c28-eef6cfefd5d4","savedPayload":{"position":{"x":12584.806237131383,"y":25552.664021674413},"targetPosition":{"x":12680.806237131383,"y":25593.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stages","id":"7fe8c58f-9cad-47c9-ba4e-d66bff094dcf"}}},{"type":"Layer","name":"Open Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"74cda6e5-4fe2-41ef-a611-2c0374780ad5","savedPayload":{"position":{"x":12663.806237131383,"y":25503.664021674413},"targetPosition":{"x":12680.806237131383,"y":25593.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stages","id":"41f17745-1819-4681-8a2b-9bdda3cd67c4"}}},{"type":"Layer","name":"Manage Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"fb041378-9424-4709-a9ed-79426fcdfe68","savedPayload":{"position":{"x":12721.806237131383,"y":25661.664021674413},"targetPosition":{"x":12680.806237131383,"y":25593.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stages","id":"e89c8bfd-fac9-4aff-afc0-3a89c1dc2710"}}},{"type":"Layer","name":"Close Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"6c4ac373-c5ff-4bfd-8047-4caaba6b7788","savedPayload":{"position":{"x":12659.806237131383,"y":25585.664021674413},"targetPosition":{"x":12680.806237131383,"y":25593.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stages","id":"bc2c6503-e935-4ad7-a76a-89b062d41e91"}}}],"layerFolders":[],"id":"4b2ee5fd-d4f7-4a7c-bb6e-5e4c633b1b9f","savedPayload":{"position":{"x":12680.806237131383,"y":25593.664021674413},"targetPosition":{"x":12687.806237131383,"y":25530.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Positions","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"4f77d851-9e93-4e85-9cfb-ec2ab200d79b","savedPayload":{"position":{"x":12581.806237131383,"y":25650.664021674413},"targetPosition":{"x":12672.806237131383,"y":25618.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Positions","id":"3ed594a0-8452-4bd8-9eaa-37cd83a45b90"}}},{"type":"Layer","name":"Position Base Asset","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"0213c668-a6d8-4737-ae57-d59d62b8f715","savedPayload":{"position":{"x":12767.806237131383,"y":25594.664021674413},"targetPosition":{"x":12672.806237131383,"y":25618.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Base Asset","id":"88997c97-e77f-490e-9eb5-c7531beec132"}}},{"type":"Layer","name":"Position Quoted Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"f07986eb-010f-46cd-803d-dcac674adb80","savedPayload":{"position":{"x":12745.806237131383,"y":25673.664021674413},"targetPosition":{"x":12672.806237131383,"y":25618.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Quoted Asset","id":"b4772611-d5d0-4fbd-b689-d42de3c045d4"}}},{"type":"Layer","name":"Stop Loss","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"3f8f8fa3-2149-42d6-92e9-214354cfa186","savedPayload":{"position":{"x":12630.806237131383,"y":25581.664021674413},"targetPosition":{"x":12672.806237131383,"y":25618.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Stop Loss","id":"9b064960-3829-441f-b955-334fb8324a53"}}},{"type":"Layer","name":"Take Profit","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"65ec58e6-2c00-41d4-a145-e6b7e7178bf0","savedPayload":{"position":{"x":12743.806237131383,"y":25590.664021674413},"targetPosition":{"x":12672.806237131383,"y":25618.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Take Profit","id":"cbcc817b-4333-4c80-addc-e2a0ee0845c1"}}}],"layerFolders":[],"id":"66e5c011-9163-422d-863f-115135f832ad","savedPayload":{"position":{"x":12672.806237131383,"y":25618.664021674413},"targetPosition":{"x":12687.806237131383,"y":25530.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"91b8a8e8-823d-4746-967f-c8d85a1ad3ad","savedPayload":{"position":{"x":12687.806237131383,"y":25530.664021674413},"targetPosition":{"x":12591.806237131383,"y":25565.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dcaccce7-d98d-49b3-b3b6-e83495b688c3","savedPayload":{"position":{"x":12591.806237131383,"y":25565.664021674413},"targetPosition":{"x":12523.806237131383,"y":25633.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e328f755-80a6-4799-8f12-002a2ddb983d","savedPayload":{"position":{"x":12523.806237131383,"y":25633.664021674413},"targetPosition":{"x":12489.806237131383,"y":25562.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":330,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"aa2b0766-a3d5-47e1-acd8-7345af564388"}}},"id":"93708a53-ad8d-48e0-9728-b87ea96d1545","savedPayload":{"position":{"x":18483.434665834,"y":24225.735156181043},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cc1fcc1e-81de-4011-8e59-c37ebe32ecf7","savedPayload":{"position":{"x":18300.806237131383,"y":24463.741158268414},"targetPosition":{"x":18450.806237131383,"y":24723.548779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":585,"y":65},"width":240,"height":113.625,"radius":0},"referenceParent":{"type":"Live Trading Session","name":"Lightning Strike","id":"1ce123af-467f-4295-b317-dba8729faf25"}}}],"id":"abc16155-6614-4397-bf7e-ab4a0ff7c1a4","savedPayload":{"position":{"x":18450.806237131383,"y":24723.548779403747},"targetPosition":{"x":18600.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Production Environment","name":"New Production Environment","id":"65a40d20-837c-4652-8356-f8054b4e1346"}}}],"id":"84a1b1ba-4888-4eac-8762-7084f0ee5de7","savedPayload":{"position":{"x":18600.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"21d2ec55-9e56-4652-8e96-c7e451262c36","savedPayload":{"position":{"x":18900.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"c"}}},{"type":"Plugins","name":"New Plugins","project":"Superalgos","pluginProjects":[{"type":"Plugin Project","name":"Superalgos","config":"{ \n \"codeName\": \"Superalgos\"\n}","project":"Superalgos","pluginDataMines":{"type":"Plugin Data Mines","name":"New Plugin Data Mines","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Masters","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Masters","project":"Superalgos","id":"d5234bd2-ef4e-4856-a6a0-ce7659653a48","savedPayload":{"position":{"x":18879.35218735615,"y":18688.55301821844},"targetPosition":{"x":31820.67692045767,"y":18678.794324352373},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ecc1a524-de9b-4e73-8874-b99a7ea0402b","savedPayload":{"position":{"x":31820.67692045767,"y":18678.794324352373},"targetPosition":{"x":31320.502678827743,"y":18678.79704693609},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cbc3d9be-5e59-45d8-bb0f-4ec82763691d","savedPayload":{"position":{"x":31234.673182942548,"y":18370.4854210064},"targetPosition":{"x":31327.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"pluginTradingMines":{"type":"Plugin Trading Mines","name":"New Plugin Trading Mines","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Masters","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Masters","project":"Superalgos","id":"ad1ce785-858f-4cfc-ba68-108b5e0c54d9","savedPayload":{"position":{"x":24941.217404066585,"y":18714.893045797242},"targetPosition":{"x":31320.45102232534,"y":19544.930491916948},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8a64c00e-4f8c-49bf-b57d-4e2e388bae41","savedPayload":{"position":{"x":31320.45102232534,"y":19544.930491916948},"targetPosition":{"x":31070.415084976332,"y":19111.835158656926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8d881813-3ab9-4e8b-ab5a-48dedab2dd19","savedPayload":{"position":{"x":31570.083379567513,"y":18479.466800207203},"targetPosition":{"x":31327.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"pluginTradingSystems":{"type":"Plugin Trading Systems","name":"New Plugin Trading Systems","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Masters-Lightning-Strike","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Masters-Lightning-Strike","project":"Superalgos","id":"37ab4b0d-6bd8-46b6-9778-e193c32669a4","savedPayload":{"position":{"x":31050.365708673427,"y":31068.826468868458},"targetPosition":{"x":30320.47990890508,"y":19544.97425758733},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5fdcecee-8c8f-4e0f-b36b-81e9231970a6","savedPayload":{"position":{"x":30320.47990890508,"y":19544.97425758733},"targetPosition":{"x":30570.439042449398,"y":19111.851515318966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3569d452-c593-4e54-a356-7ff8c6b519f3","savedPayload":{"position":{"x":31570.083379567513,"y":18832.13795158269},"targetPosition":{"x":31327.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"pluginTradingEngines":{"type":"Plugin Trading Engines","name":"New Plugin Trading Engines","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Low-Frequency","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Low-Frequency","project":"Superalgos","id":"e117a2a4-09b3-4181-8455-e680de3bdeb3","savedPayload":{"position":{"x":30923.55093774257,"y":24967.049392142086},"targetPosition":{"x":29820.22642897682,"y":18678.80776835817},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e9270d67-4630-4ac9-91ca-1dec4fb5aa38","savedPayload":{"position":{"x":29820.22642897682,"y":18678.80776835817},"targetPosition":{"x":30320.32799443869,"y":18678.805890109317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"87a28762-63d0-45f7-bd39-9dea436d8244","savedPayload":{"position":{"x":31234.673182942548,"y":18941.11933078349},"targetPosition":{"x":31327.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c4e402d7-5228-408c-9d67-379d6ef40bae","savedPayload":{"position":{"x":31327.37828125503,"y":18655.802375894946},"targetPosition":{"x":31027.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bfb0b514-3b9f-4e9a-85ca-d0ca714b09f6","savedPayload":{"position":{"x":31027.37828125503,"y":18655.802375894946},"targetPosition":{"x":31027.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Design Space","name":"My Design Space","project":"Superalgos","spaceStyle":{"type":"Space Style","name":"My Space Style","config":" {\n \"backgroundColor\": \"UI_COLOR.BLACK\",\n \"node\": {\n \"fontSize\": 16,\n \"imageSize\": 60,\n \"type\": {\n \"fontColor\": \"UI_COLOR.WHITE\"\n },\n \"name\": {\n \"fontColor\": \"UI_COLOR.WHITE\"\n },\n \"menuItem\": {\n \"backgroundColor\": \"UI_COLOR.BLACK\",\n \"fontColor\": \"UI_COLOR.WHITE\",\n \"fontSize\": 14,\n \"imageSize\": 14\n }\n }\n }","project":"Superalgos","id":"fad0e429-f7a7-4b62-a2a5-2ead29b8f695","savedPayload":{"position":{"x":25236.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"spaceSettings":{"type":"Space Settings","name":"New Space Settings","config":"{\n \"node\": {\n \"distancePercentage\": 60,\n \"radiusPercentage\": 85,\n \"massPercentage\": 100,\n \"animationSteps\": 2, \n \"menuItem\": {\n \"widthPercentage\": 100,\n \"heightPercentage\": 60,\n \"radiusPercentage\": 90\n }\n },\n \"physics\": false\n}","project":"Superalgos","id":"05c9d6d5-24c4-4eec-9aca-9668d6486fdd","savedPayload":{"position":{"x":24636.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8485ce5-67f3-4476-b9e2-80994e49c318","savedPayload":{"position":{"x":24936.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":255,"y":588.3125}}}},{"type":"Superalgos Project","name":"New Superalgos Project","project":"Superalgos","projectDefinition":{"type":"Project Definition","name":"Superalgos","config":"{ \n \"codeName\": \"Superalgos\"\n}","project":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb","savedPayload":{"position":{"x":24603,"y":25001},"targetPosition":{"x":24303,"y":25001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"spaces":{"type":"Spaces","name":"New Spaces","project":"Superalgos","id":"4d0ee814-4e48-4688-9cc5-7ee03de5192b","savedPayload":{"position":{"x":24303,"y":25301},"targetPosition":{"x":24303,"y":25001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"mines":{"type":"Mines","name":"New Mines","project":"Superalgos","id":"b979e3a3-9316-4e5a-831b-c503b4b0e507","savedPayload":{"position":{"x":24003,"y":25001},"targetPosition":{"x":24303,"y":25001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"otherHierarchies":{"type":"Other Hierarchies","name":"New Other Hierarchies","project":"Superalgos","id":"0a1ff755-8e0b-4f62-976e-df76c8139c6f","savedPayload":{"position":{"x":24303,"y":24701},"targetPosition":{"x":24303,"y":25001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cf9f8b3b-77c6-43c6-b01f-95cf366a91f6","savedPayload":{"position":{"x":24303,"y":25001},"targetPosition":{"x":24303,"y":25001},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Tutorial","name":"Welcome to Superalgos!","config":"{\n \"image\": \"tutorial\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial - Welcome to Superalgos!\"\n }\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Nodes & Hierarchies","config":"{\n \"position\": \"\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Chrome or Chrome","config":"{\n \"image\": \"bullet-warning\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Use Chrome or Chrome!\"\n }\n}","project":"Superalgos","id":"3d0447b3-92d7-47c3-a8f9-9fd9cc0b48fd","savedPayload":{"position":{"x":19313.331788401934,"y":40156.68611981504},"targetPosition":{"x":19183.166666666668,"y":40426.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"That's Me","config":"{\n \"image\": \"tutorial\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - That's Me On the Right!\"\n }\n}","project":"Superalgos","id":"57f5e946-1289-4508-95f0-dfe5e95a7346","savedPayload":{"position":{"x":19417.716111407077,"y":40239.92983962814},"targetPosition":{"x":19183.166666666668,"y":40426.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"Welcome to Superalgos!","id":"6f36f540-8de9-4458-b2c7-875884121b87"}}},{"type":"Tutorial Step","name":"Expand That Node!","config":"{\n \"image\": \"expand\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Expand That Node!\"\n }\n}","project":"Superalgos","id":"dc75d95f-68d8-44a0-a1d2-d4a12a2fd43f","savedPayload":{"position":{"x":19475.645040321215,"y":40360.22049999887},"targetPosition":{"x":19183.166666666668,"y":40426.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"Welcome to Superalgos!","id":"6f36f540-8de9-4458-b2c7-875884121b87"}}},{"type":"Tutorial Step","name":"Let's Go for a Ride!","config":"{\n \"image\": \"network\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Go for a Ride!\"\n }\n}","project":"Superalgos","id":"43329093-256d-4bfa-84d1-3eb245287604","savedPayload":{"position":{"x":19475.645040321215,"y":40493.73306037265},"targetPosition":{"x":19183.166666666668,"y":40426.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Network","name":"My Network","id":"3c165071-7558-4708-9999-8ffe71d346b1"}}},{"type":"Tutorial Step","name":"Remote access","config":"{\n \"image\": \"network-node\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Remote Access!\"\n }\n}","project":"Superalgos","id":"f9360490-9b6b-4104-b938-5971406bdfe0","savedPayload":{"position":{"x":19417.716111407077,"y":40614.02372074338},"targetPosition":{"x":19183.166666666668,"y":40426.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Network Node","name":"My Computer","id":"e452cf65-2b2b-44f2-9e67-bdd9d3c008e4"}}},{"type":"Tutorial Step","name":"Accessing remotely?","config":"{\n \"image\": \"network-node\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Accessing Remotely?\"\n }\n}","project":"Superalgos","id":"872f6654-cd9b-4b8b-8b8c-b03cae14c1a8","savedPayload":{"position":{"x":19313.331788401934,"y":40697.26744055648},"targetPosition":{"x":19183.166666666668,"y":40426.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Network Node","name":"My Computer","id":"e452cf65-2b2b-44f2-9e67-bdd9d3c008e4"}}}],"tutorialTopics":[],"id":"892c8d8c-824e-4293-af86-bdb81464c7d6","savedPayload":{"position":{"x":19183.166666666668,"y":40426.97678018576},"targetPosition":{"x":18883.166666666668,"y":40426.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Start Data Mining","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Ready to Rock?","config":"{\n \"image\": \"data-tasks\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Ready to Rock?\"\n }\n}","project":"Superalgos","id":"d35ce1f2-4963-4add-8998-9bb8995a24e7","savedPayload":{"position":{"x":19372.462560776017,"y":40524.3037848322},"targetPosition":{"x":19095.29870102263,"y":40639.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Tasks","name":"New Data Tasks","id":"40af91d9-431c-4b7d-addc-aed37bc2f3fe"}}},{"type":"Tutorial Step","name":"Binance.com Or Binance.us?","config":"{\n \"image\": \"binance\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"workspaces\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Binance.com or Binance.us?\"\n }\n}","project":"Superalgos","id":"c1384619-0348-420c-ba81-8a79646cec4d","savedPayload":{"position":{"x":19395.29870102263,"y":40639.10881454172},"targetPosition":{"x":19095.29870102263,"y":40639.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Welcome Binanceus\"\n }\n}","project":"Superalgos","id":"cb5e31c7-7224-4fcd-bcef-df156cd79d6c","savedPayload":{"position":{"x":19372.462560776017,"y":40753.91384425125},"targetPosition":{"x":19095.29870102263,"y":40639.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"Welcome to Superalgos!","id":"6f36f540-8de9-4458-b2c7-875884121b87"}}},{"type":"Tutorial Step","name":"Let's Mine Some Data!","config":"{\n \"image\": \"run\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Mine Some Data!\"\n }\n}","project":"Superalgos","id":"37dc22e6-b981-472c-abd6-a61904b5c46e","savedPayload":{"position":{"x":19307.430735378595,"y":40851.24084889769},"targetPosition":{"x":19095.29870102263,"y":40639.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Tasks","name":"New Data Tasks","id":"40af91d9-431c-4b7d-addc-aed37bc2f3fe"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Welcome Start Data Mining Console\"\n }\n}","project":"Superalgos","id":"204754e6-6145-44fd-877f-6373b2c9caa1","savedPayload":{"position":{"x":19210.10373073216,"y":40916.27267429511},"targetPosition":{"x":19095.29870102263,"y":40639.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"How Are Things Going?","config":"{\n \"image\": \"sensor-bot-instance\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - How Are Things Going?\"\n }\n}","project":"Superalgos","id":"bc5ee6e3-62d6-481d-8eb9-5061e93fcf32","savedPayload":{"position":{"x":19095.29870102263,"y":40939.10881454172},"targetPosition":{"x":19095.29870102263,"y":40639.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","id":"d244c564-4e86-43c7-9796-dc3b6294ec8b"}}},{"type":"Tutorial Step","name":"Candles Volumes in Action","config":"{\n \"image\": \"indicator-bot-instance\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Candles Volumes in Action\"\n }\n}","project":"Superalgos","id":"c04422c9-b9b5-491d-9d69-7c12c5d48a46","savedPayload":{"position":{"x":18980.493671313106,"y":40916.27267429511},"targetPosition":{"x":19095.29870102263,"y":40639.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","id":"f0ef12ed-f0fd-4b88-8e15-27cf24265a5f"}}}],"tutorialTopics":[],"id":"acb0a041-37aa-49d3-b221-66ca76b7d874","savedPayload":{"position":{"x":19095.29870102263,"y":40639.10881454172},"targetPosition":{"x":18883.166666666668,"y":40426.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Control Basics","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Moving Around","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Click & Drag Baby!","config":"{\n \"image\": \"hand-drag\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Click & Drag Baby!\"\n }\n}","project":"Superalgos","id":"c01bc5ad-0d8a-4678-b415-32d08149af10","savedPayload":{"position":{"x":19199.52323527715,"y":41011.14294030139},"targetPosition":{"x":18901.166666666668,"y":40979.78440132109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Time to Take Control!","config":"{\n \"image\": \"key-ctrl\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Time to Take Control!\"\n }\n}","project":"Superalgos","id":"da5d7044-7add-4cec-8602-60cba9f5964f","savedPayload":{"position":{"x":19124.110114309886,"y":41180.52358322875},"targetPosition":{"x":18901.166666666668,"y":40979.78440132109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Spacetime Teleportation!","config":"{\n \"image\": \"mouse-right-click\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Spacetime Teleportation!\"\n }\n}","project":"Superalgos","id":"56422b6d-9194-426a-844b-bc305ae93799","savedPayload":{"position":{"x":18963.540173911995,"y":41273.22868154124},"targetPosition":{"x":18901.166666666668,"y":40979.78440132109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Warp-Speed Zooming!","config":"{\n \"image\": \"mouse-wheel-down\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Warp-Speed Zooming!\"\n }\n}","project":"Superalgos","id":"ab46d3df-1c4b-4520-a042-d022945134e7","savedPayload":{"position":{"x":18779.14567374393,"y":41253.848038613876},"targetPosition":{"x":18901.166666666668,"y":40979.78440132109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"595cc636-c692-401c-9d45-a954146f4679","savedPayload":{"position":{"x":19033.166666666668,"y":40986.78440132109},"targetPosition":{"x":18883.166666666668,"y":40726.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Tutorials & Help","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"A Bit About Tutorials","config":"{\n \"image\": \"tutorial\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - A Bit About Tutorials...\"\n }\n}","project":"Superalgos","id":"82087d62-2c6a-4336-b974-6ecf06d1485b","savedPayload":{"position":{"x":18883.166666666668,"y":41246.592022456425},"targetPosition":{"x":18733.166666666668,"y":40986.78440132109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"Welcome to Superalgos!","id":"6f36f540-8de9-4458-b2c7-875884121b87"}}},{"type":"Tutorial Step","name":"Need a Quick Reminder?","config":"{\n \"image\": \"key-left\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Need a Quick Reminder?\"\n }\n}","project":"Superalgos","id":"5d1d848b-4633-4b70-8cb0-01b527a99d23","savedPayload":{"position":{"x":18733.166666666668,"y":41286.78440132109},"targetPosition":{"x":18733.166666666668,"y":40986.78440132109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"Welcome to Superalgos!","id":"6f36f540-8de9-4458-b2c7-875884121b87"}}},{"type":"Tutorial Step","name":"Hungry For More Info?!","config":"{\n \"image\": \"help\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"workspaces\": \"Close\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Hungry For More Info?\"\n }\n}","project":"Superalgos","id":"530a357e-59e6-4c88-b5da-5500e8bed6a8","savedPayload":{"position":{"x":18583.166666666668,"y":41246.592022456425},"targetPosition":{"x":18733.166666666668,"y":40986.78440132109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Tasks","name":"New Data Tasks","id":"40af91d9-431c-4b7d-addc-aed37bc2f3fe"}}},{"type":"Tutorial Step","name":"Broke Something?","config":"{\n \"image\": \"workspace\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"workspaces\": \"Open\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Broke Something?\"\n }\n}","project":"Superalgos","id":"17168fe8-e9dc-466e-905b-8eea70ef26ca","savedPayload":{"position":{"x":18473.359045531335,"y":41136.78440132109},"targetPosition":{"x":18733.166666666668,"y":40986.78440132109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"More Workspaces?","config":"{\n \"image\": \"workspace\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"workspaces\": \"Close\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - More Workspaces?\"\n }\n}","project":"Superalgos","id":"fcafc190-5135-4cdb-ad7b-cd3b2ebea1e0","savedPayload":{"position":{"x":18433.166666666668,"y":40986.78440132109},"targetPosition":{"x":18733.166666666668,"y":40986.78440132109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"b230cbd7-658c-4a1c-b772-90462da2afaa","savedPayload":{"position":{"x":18733.166666666668,"y":40986.78440132109},"targetPosition":{"x":18883.166666666668,"y":40726.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"abde1c6f-1863-4752-9146-acda3dcfb987","savedPayload":{"position":{"x":18883.166666666668,"y":40726.97678018576},"targetPosition":{"x":18883.166666666668,"y":40426.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Explore Data Mining","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Back to Work!","config":"{\n \"image\": \"data-tasks\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Ok... Back to Work!\"\n }\n}","project":"Superalgos","id":"20adac13-77a2-4694-a064-0851ae86b20b","savedPayload":{"position":{"x":18770.118350897254,"y":40922.27381363423},"targetPosition":{"x":18671.034632310704,"y":40639.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Tasks","name":"New Data Tasks","id":"40af91d9-431c-4b7d-addc-aed37bc2f3fe"}}},{"type":"Tutorial Step","name":"The Magic of Data Mines","config":"{\n \"image\": \"data-mine-tasks\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Magic of Data Mines\"\n }\n}","project":"Superalgos","id":"18b58454-4ed5-4c3c-939b-d1f87742a7a1","savedPayload":{"position":{"x":18637.44528947971,"y":40937.2224775097},"targetPosition":{"x":18671.034632310704,"y":40639.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Mine Tasks","name":"Masters","id":"85224e5e-f3ee-4e8d-b9bd-e5901bd49b33"}}},{"type":"Tutorial Step","name":"The Core of Data Mining","config":"{\n \"image\": \"task\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - At the Core of Data Mining\"\n }\n}","project":"Superalgos","id":"22c05bc7-0d7b-42b7-9c5c-73376a7a9c97","savedPayload":{"position":{"x":18511.425009356102,"y":40893.12607431021},"targetPosition":{"x":18671.034632310704,"y":40639.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Task","name":"Exchange Raw Data","id":"a8f38508-1cac-4ab1-815f-d338fc813377"}}},{"type":"Tutorial Step","name":"Are We Up to Date?","config":"{\n \"image\": \"indicator-process-instance\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Are We Up to Date?\"\n }\n}","project":"Superalgos","id":"ad16ed9d-91fe-4f44-8c20-8c257b65cc9c","savedPayload":{"position":{"x":18417.017372542217,"y":40798.718437496325},"targetPosition":{"x":18671.034632310704,"y":40639.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Time to Stop!","config":"{\n \"image\": \"stop\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Time to Stop!\"\n }\n}","project":"Superalgos","id":"dc68fa92-dee8-4d89-8add-893084d24afa","savedPayload":{"position":{"x":18372.920969342733,"y":40672.69815737272},"targetPosition":{"x":18671.034632310704,"y":40639.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Task Manager","name":"Masters","id":"c193ecbb-c3e0-4fd5-94ed-bb6356d1d5ea"}}},{"type":"Tutorial Step","name":"Careful With Your Data","config":"{\n \"image\": \"dataset-definition\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Careful With Your Data!\"\n }\n}","project":"Superalgos","id":"e2d919b0-de13-418a-a859-c354ab00e098","savedPayload":{"position":{"x":18387.869633218193,"y":40540.02509595517},"targetPosition":{"x":18671.034632310704,"y":40639.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"07d273cd-95b0-4c7e-b81f-8c9c26041598","savedPayload":{"position":{"x":18671.034632310704,"y":40639.10881454172},"targetPosition":{"x":18883.166666666668,"y":40426.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Charting Space","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"The Viewport","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"The Other Dimension","config":"{\n \"image\": \"charting-space\",\n \"position\": \"Left\",\n \"slider\": \"toMiddle\",\n \"useReferenceParentTo\": \"Position at Node\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Bright Side\"\n }\n}","project":"Superalgos","id":"6a04a6a7-2c77-4fc0-9aab-2355183e9de5","savedPayload":{"position":{"x":18375.231782232568,"y":40899.41077179823},"targetPosition":{"x":18239.034632310704,"y":40632.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Charting Space","name":"New Charting Space","id":"21d2ec55-9e56-4652-8e96-c7e451262c36"}}},{"type":"Tutorial Step","name":"Break On Through","config":"{\n \"image\": \"full-board\",\n \"position\": \"Left\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Break On Through!\"\n }\n}","project":"Superalgos","id":"31192a2d-e45f-45ee-9f78-53aef9f1e4c2","savedPayload":{"position":{"x":18285.964971822774,"y":40928.41531672027},"targetPosition":{"x":18239.034632310704,"y":40632.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Navigating the White Room","config":"{\n \"image\": \"mouse-right-click\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"repositionAtTimeMachineNoZoomReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Navigating the White Room\"\n }\n}","project":"Superalgos","id":"8c9f537d-1b51-41b0-abb8-fdcaf8db5224","savedPayload":{"position":{"x":18192.104292798635,"y":40928.41531672027},"targetPosition":{"x":18239.034632310704,"y":40632.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}},{"type":"Tutorial Step","name":"Talkin Time Travel","config":"{\n \"image\": \"time-machine\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"repositionAtTimeMachineNoZoomReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Talkin' Time Travel\"\n }\n}","project":"Superalgos","id":"2f4e6515-64e4-40ab-b894-5cb2468cad2c","savedPayload":{"position":{"x":18102.83748238884,"y":40899.41077179823},"targetPosition":{"x":18239.034632310704,"y":40632.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}},{"type":"Tutorial Step","name":"Bending Time?","config":"{\n \"image\": \"time-machine\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Bending time?\"\n }\n}","project":"Superalgos","id":"88985962-8763-415e-a06e-362faaf83c3a","savedPayload":{"position":{"x":18026.90259795474,"y":40844.24084889769},"targetPosition":{"x":18239.034632310704,"y":40632.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Size Matters?","config":"{\n \"image\": \"time-machine\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Size Matters?\"\n }\n}","project":"Superalgos","id":"5dce35cc-5f3c-4f2d-b8f1-979ac03ddfa2","savedPayload":{"position":{"x":17971.732675054194,"y":40768.30596446359},"targetPosition":{"x":18239.034632310704,"y":40632.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Putting Things in Order","config":"{\n \"image\": \"hand-drag\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Putting Things in Order\"\n }\n}","project":"Superalgos","id":"9cded7dd-5236-4000-9b0f-d576fa185734","savedPayload":{"position":{"x":17942.728130132164,"y":40679.03915405379},"targetPosition":{"x":18239.034632310704,"y":40632.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Get In the Wormhole!","config":"{\n \"image\": \"mouse-wheel-up\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Get In the Wormhole!\"\n }\n}","project":"Superalgos","id":"ad3ff699-7830-478b-8b62-b3b0af7d0134","savedPayload":{"position":{"x":17942.728130132164,"y":40585.17847502966},"targetPosition":{"x":18239.034632310704,"y":40632.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Dashboard","name":"Production Environment My Computer","id":"abc16155-6614-4397-bf7e-ab4a0ff7c1a4"}}},{"type":"Tutorial Step","name":"The Elegant Way...","config":"{\n \"image\": \"mouse-pointer\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"keyPressedTimeMachineReferenceParent\": {\n \"shiftKey\": true,\n \"ctrlKey\": true,\n \"metaKey\": true,\n \"code\": \"ArrowRight\",\n \"key\": \"A\"\n },\n \"repositionAtTimeMachineNoZoomReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Elegant Way...\"\n }\n}","project":"Superalgos","id":"dcb0863d-fdce-4620-a41a-ebdf5fa15989","savedPayload":{"position":{"x":17971.732675054194,"y":40495.91166461986},"targetPosition":{"x":18239.034632310704,"y":40632.10881454172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}}],"tutorialTopics":[],"id":"37f74e1d-2e40-409e-8475-b3d990cd7211","savedPayload":{"position":{"x":18371.034632310704,"y":40639.10881454172},"targetPosition":{"x":18583.166666666668,"y":40426.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"The Charts","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Navigation & Scales","config":"{ \n \"title\": \" \",\n \"summary\": \"\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n }","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Moving in Wonderland","config":"{\n \"image\": \"mouse-left-click\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"keyPressedTimeMachineReferenceParent\": {\n \"shiftKey\": true,\n \"ctrlKey\": true,\n \"metaKey\": true,\n \"code\": \"ArrowRight\",\n \"key\": \"A\"\n },\n \"repositionAtTimeMachineReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Moving in Wonderland\"\n }\n}","project":"Superalgos","id":"6643c200-4d20-4e65-9fa6-93f60d7eb16b","savedPayload":{"position":{"x":18129.45056651058,"y":41014.291985931355},"targetPosition":{"x":18023.359045531335,"y":40576.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Welcome Charts Scales Auto Locked\"\n }\n}","project":"Superalgos","id":"23a3914b-29e2-40c9-9356-395699ce655c","savedPayload":{"position":{"x":18009.08447078421,"y":40876.63698194066},"targetPosition":{"x":18023.359045531335,"y":40576.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}},{"type":"Tutorial Step","name":"Unlocking Time!","config":"{\n \"image\": \"time-scale\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Unlocking Time!\"\n }\n}","project":"Superalgos","id":"365c119b-2ce9-47b9-826e-f942134d6bbc","savedPayload":{"position":{"x":17876.178462038497,"y":41002.22714860736},"targetPosition":{"x":18023.359045531335,"y":40576.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Welcome Charts Scales Unlock Time Scale\"\n }\n}","project":"Superalgos","id":"51b4c5ac-f874-4814-9bce-31a0fd7949ee","savedPayload":{"position":{"x":17849.341972659975,"y":40821.34956580086},"targetPosition":{"x":18023.359045531335,"y":40576.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Scaling Time!","config":"{\n \"image\": \"time-scale\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Scaling Time!\"\n }\n}","project":"Superalgos","id":"a277338e-20c4-4608-bed1-4aa09c40491d","savedPayload":{"position":{"x":17669.63515289708,"y":40855.148323985035},"targetPosition":{"x":18023.359045531335,"y":40576.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Playing With the Rate Scale!","config":"{\n \"image\": \"rate-scale\",\n \"position\": \"Left\",\n \"documentationURL\": \"\",\n \"slider\": \"toBottom\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Playing with the Rate Scale!\"\n }\n}","project":"Superalgos","id":"2650860c-ce1a-4a1c-af5c-29742a5ab23c","savedPayload":{"position":{"x":17744.848665626512,"y":40688.47551688386},"targetPosition":{"x":18023.359045531335,"y":40576.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Welcome Charts Scales Unlock Rate Scale\"\n }\n}","project":"Superalgos","id":"0ff92017-1558-4587-8619-78fe07025467","savedPayload":{"position":{"x":17575.396680373447,"y":40619.75199967264},"targetPosition":{"x":18023.359045531335,"y":40576.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"No Lock on Time Frames!","config":"{\n \"image\": \"time-frame-scale\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Time Frames Salad?\"\n }\n}","project":"Superalgos","id":"32d93242-2796-4ab5-b182-da48a5f3cdce","savedPayload":{"position":{"x":17728.780436352525,"y":40520.20140687763},"targetPosition":{"x":18023.359045531335,"y":40576.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Welcome Charts Scales Time Frame Scale\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"af446d58-735f-4f02-a22e-60afd853bd93","savedPayload":{"position":{"x":17623.38309363662,"y":40370.77484540843},"targetPosition":{"x":18023.359045531335,"y":40576.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Scales' Best-Kept Secrets","config":"{\n \"image\": \"balance\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Scales' Best-Kept Secrets\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"Scales\"\n }\n }\n}","project":"Superalgos","id":"79f7a1e7-b211-452c-b60f-61653fab957a","savedPayload":{"position":{"x":17806.238834099815,"y":40369.95307674113},"targetPosition":{"x":18023.359045531335,"y":40576.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"7d8a4998-6575-4261-b37a-14c44956c4c8","savedPayload":{"position":{"x":18023.359045531335,"y":40576.97678018576},"targetPosition":{"x":18283.166666666668,"y":40426.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Layers & Managers","config":"{ \n \"title\": \" \",\n \"summary\": \"\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n }","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Switching Gears","config":"{\n \"image\": \"layer-manager\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Switching Gears...\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"fdb608ad-eea0-42a7-abaa-adab5dfb7df5","savedPayload":{"position":{"x":17775.487413236537,"y":40445.972797604845},"targetPosition":{"x":18023.359045531335,"y":40276.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Welcome Charts Layer Managers Scroll\"\n }\n}","project":"Superalgos","id":"8b9a4e1e-dc3a-4f4e-87c5-579f7cc04f55","savedPayload":{"position":{"x":17726.709797663796,"y":40321.689460038615},"targetPosition":{"x":18023.359045531335,"y":40276.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Layers on Top of Layers","config":"{\n \"image\": \"layer\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Layers on Top of Layers\"\n }\n}","project":"Superalgos","id":"bf48b83f-67dc-4dc4-b6d1-23b94bc26b40","savedPayload":{"position":{"x":17736.687203795493,"y":40188.55022786249},"targetPosition":{"x":18023.359045531335,"y":40276.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Welcome Charts Layer On\"\n }\n}","project":"Superalgos","id":"9875e052-3270-49b1-8d63-7c1172fbeeae","savedPayload":{"position":{"x":17803.443483982388,"y":40072.924958854484},"targetPosition":{"x":18023.359045531335,"y":40276.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"The Hard Data","config":"{\n \"image\": \"plotter-panel\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Hard Data\"\n }\n}","project":"Superalgos","id":"4f20424d-85a0-4dc4-afea-b611107942a5","savedPayload":{"position":{"x":17913.756738221415,"y":39997.7146555925},"targetPosition":{"x":18023.359045531335,"y":40276.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Welcome Charts Layer Panels\"\n }\n}","project":"Superalgos","id":"d5ff12ca-f763-4291-846a-7dec3d9b1d4f","savedPayload":{"position":{"x":18045.778073607264,"y":39977.815641031404},"targetPosition":{"x":18023.359045531335,"y":40276.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"14ecf560-9e64-4af8-911e-317cc3cd397a","savedPayload":{"position":{"x":18023.359045531335,"y":40276.97678018576},"targetPosition":{"x":18283.166666666668,"y":40426.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"78e702e2-fad8-4ae4-8341-8deb43c6cab8","savedPayload":{"position":{"x":18283.166666666668,"y":40426.97678018576},"targetPosition":{"x":18583.166666666668,"y":40426.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Setup Overview","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Back in Time","config":"{\n \"image\": \"time-machine\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Back in Time\"\n }\n}","project":"Superalgos","id":"855e28cc-8651-4ad6-a8fa-bf792f170c57","savedPayload":{"position":{"x":17939.034632310704,"y":40207.844745829796},"targetPosition":{"x":18239.034632310704,"y":40207.844745829796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}},{"type":"Tutorial Step","name":"Visual Scripting on Steroids","config":"{\n \"image\": \"indicator-bot\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Visual Scripting on Steroids\"\n }\n}","project":"Superalgos","id":"2dfc697d-48b0-49bb-8760-3c3a76b56916","savedPayload":{"position":{"x":18026.90259795474,"y":39995.71271147383},"targetPosition":{"x":18239.034632310704,"y":40207.844745829796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Product Definition","name":"Resistances","id":"7a734501-a0fb-4305-803e-7e95d477c513"}}},{"type":"Tutorial Step","name":"Plotters Magic","config":"{\n \"image\": \"plotter\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Plotters Magic!\"\n }\n}","project":"Superalgos","id":"086416b2-3bf6-4e35-8e26-7e89dd75cf74","savedPayload":{"position":{"x":18239.034632310704,"y":39907.844745829796},"targetPosition":{"x":18239.034632310704,"y":40207.844745829796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Polygon","name":"Resistance Zone 5","id":"550e31bb-a95f-4fad-bfbb-b42aae7dc5d3"}}}],"tutorialTopics":[],"id":"2e9878b3-ebe5-48bb-8f97-2dfd8f6ac3e0","savedPayload":{"position":{"x":18371.034632310704,"y":40214.844745829796},"targetPosition":{"x":18583.166666666668,"y":40426.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"6d0ab467-3134-4ba8-b37c-b3a9f5ba7638","savedPayload":{"position":{"x":18583.166666666668,"y":40426.97678018576},"targetPosition":{"x":18883.166666666668,"y":40426.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Backtesting","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Network","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Let's Do Some Testing!","config":"{\n \"image\": \"testing-trading-tasks\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Do Some Testing!\"\n }\n}","project":"Superalgos","id":"db2ed6a0-ba47-4caa-b2f2-78172f44a002","savedPayload":{"position":{"x":18304.69452097539,"y":40553.48606146117},"targetPosition":{"x":18374.728130132164,"y":40261.77508534186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","id":"8117db0a-e418-4f56-8fe4-fda2ddac1cbb"}}},{"type":"Tutorial Step","name":"Aim High, Trade Big!","config":"{\n \"image\": \"network-node\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Aim High, Trade Big!\"\n }\n}","project":"Superalgos","id":"ff49ac75-5039-4f1f-9d05-826751b5e4e4","savedPayload":{"position":{"x":18198.39255444442,"y":40504.48018365435},"targetPosition":{"x":18374.728130132164,"y":40261.77508534186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Network Node","name":"My Computer","id":"e452cf65-2b2b-44f2-9e67-bdd9d3c008e4"}}},{"type":"Tutorial Step","name":"Machines Learn Too!","config":"{\n \"image\": \"learning-tasks\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Machines Learn Too!\"\n }\n}","project":"Superalgos","id":"9e657088-c8dc-40d4-b730-4d0fdc0e4f38","savedPayload":{"position":{"x":18118.936080825937,"y":40418.52465475665},"targetPosition":{"x":18374.728130132164,"y":40261.77508534186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Learning Tasks","name":"New Learning Tasks","id":"0818dfbe-61ea-40b8-8544-bee25d7f45be"}}},{"type":"Tutorial Step","name":"Civil Works Ahead!","config":"{\n \"image\": \"under-construction\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Civil Works Ahead!\"\n }\n}","project":"Superalgos","id":"7f2ff93e-9799-423a-923f-5a2382731241","savedPayload":{"position":{"x":18078.421627953623,"y":40308.70542485393},"targetPosition":{"x":18374.728130132164,"y":40261.77508534186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Enough Digressing!","config":"{\n \"image\": \"backtesting-session\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Enough Digressing!\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"57d77273-09c9-4800-acfd-148ebc9faf21","savedPayload":{"position":{"x":18083.01715401286,"y":40191.74147618509},"targetPosition":{"x":18374.728130132164,"y":40261.77508534186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Backtesting Session","name":"Lightning Strike","id":"ce648922-fef2-44e3-8d76-2bd7ab72a29f"}}},{"type":"Tutorial Step","name":"What? When? How?","config":"{\n \"image\": \"trading-parameters\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - What? When? How?\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"Trading Session Parameters\"\n }\n }\n}","project":"Superalgos","id":"0f48b2d4-48eb-4041-a9eb-4a257ca34fdd","savedPayload":{"position":{"x":18132.02303181968,"y":40085.43950965412},"targetPosition":{"x":18374.728130132164,"y":40261.77508534186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Ready. Set. Go!","config":"{\n \"image\": \"task\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Ready. Set. Go!\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"eca826de-b47a-4589-80bc-0fcf17b4af98","savedPayload":{"position":{"x":18217.97856071738,"y":40005.983036035635},"targetPosition":{"x":18374.728130132164,"y":40261.77508534186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Task","name":"Lightning Strike","id":"08222935-2499-4a3e-a927-4f5dfbc392df"}}}],"tutorialTopics":[],"id":"e3e4bbab-06a8-4ac2-945d-520d605c7c28","savedPayload":{"position":{"x":18374.728130132164,"y":40261.77508534186},"targetPosition":{"x":18671.034632310704,"y":40214.844745829796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"On the Charts","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Trading System & Orders","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Getting to the Fun Bits","config":"{\n \"image\": \"time-machine\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"repositionAtTimeMachineReferenceParent\": true,\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-08-31T23:40:00.000Z\",\n \"toDate\": \"2020-09-01T01:00:00.000Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 11400,\n \"maxValue\": 11800\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-min\"\n }\n }\n ],\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Getting to the Fun Bits!\"\n }\n}","project":"Superalgos","id":"c3854cd2-deb1-42ea-83ae-e2db25c94b8f","savedPayload":{"position":{"x":17813.752104123316,"y":40311.94955316444},"targetPosition":{"x":17977.143814627823,"y":40060.348382780816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}},{"type":"Tutorial Step","name":"What Is It We Are Testing?","config":"{\n \"image\": \"trading-system\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - What Is It We Are Testing?\"\n }\n}","project":"Superalgos","id":"f8027526-427e-4ab8-b1b8-2b3d1662d5d5","savedPayload":{"position":{"x":17697.069686678664,"y":40167.85876764441},"targetPosition":{"x":17977.143814627823,"y":40060.348382780816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Green Silver Bullets","config":"{\n \"image\": \"bullet-limit-buy-order\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-08-31T23:40:00.000Z\",\n \"toDate\": \"2020-09-01T01:00:00.000Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 11400,\n \"maxValue\": 11800\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-min\"\n }\n }\n ],\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Green Silver Bullets\"\n }\n}","project":"Superalgos","id":"c1622cba-b4f1-4bdd-adc5-d1f40045617f","savedPayload":{"position":{"x":17687.366066741102,"y":39982.70266925006},"targetPosition":{"x":17977.143814627823,"y":40060.348382780816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}},{"type":"Tutorial Step","name":"Sell It Quick!","config":"{\n \"image\": \"bullet-limit-sell-order\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Sell It Quick!\"\n }\n}","project":"Superalgos","id":"bc79cac7-40bc-4c9c-b33d-88757ebd89e0","savedPayload":{"position":{"x":17788.34769731287,"y":39827.204594343726},"targetPosition":{"x":17977.143814627823,"y":40060.348382780816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}}],"tutorialTopics":[],"id":"3b4175ca-1cc8-4945-bccc-2b9c895ebbfb","savedPayload":{"position":{"x":17977.143814627823,"y":40060.348382780816},"targetPosition":{"x":18276.732675054194,"y":40044.64759590793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Support","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Shall We Dig Deeper?","config":"{\n \"image\": \"layer-resistance\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-08-31T23:00:00.000Z\",\n \"toDate\": \"2020-09-01T02:00:00.000Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 11400,\n \"maxValue\": 11800\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-min\"\n }\n },\n {\n \"nodePath\": \"referenceParent.timelineCharts[0].layerManager\",\n \"properties\": {\n \"visibleLayers\": 3,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n }\n },\n {\n \"nodePath\": \"referenceParent.timelineCharts[0].layerManager.botLayers[1].layers[1]\",\n \"properties\": {\n \"status\": \"on\",\n \"showPanels\": false\n }\n }\n ],\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Shall We Dig Deeper?\"\n }\n}","project":"Superalgos","id":"c2c01aaa-8d57-41de-8eca-30de64007320","savedPayload":{"position":{"x":17813.752104123316,"y":39808.74721239719},"targetPosition":{"x":18113.340964549687,"y":39793.046425524306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}},{"type":"Tutorial Step","name":"Who's Keeping Score?","config":"{\n \"image\": \"layer-resistance\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Who's Keeping Score?\"\n }\n}","project":"Superalgos","id":"1b10ba0b-25e4-40e6-9298-fd0e060218c7","savedPayload":{"position":{"x":17846.039007293177,"y":39656.84927560244},"targetPosition":{"x":18113.340964549687,"y":39793.046425524306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"The Power of Data Mining","config":"{\n \"image\": \"layer-resistance\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Power of Data Mining\"\n }\n}","project":"Superalgos","id":"8019055c-dcbd-4f0c-a1be-715cf6512a09","savedPayload":{"position":{"x":17949.94925404518,"y":39541.44525514068},"targetPosition":{"x":18113.340964549687,"y":39793.046425524306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Find the Logic Challenge","config":"{\n \"image\": \"layer-resistance\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Find the Logic Challenge!\"\n }\n}","project":"Superalgos","id":"1b6dc587-016b-4c65-9f8e-3e3e59ddc9b7","savedPayload":{"position":{"x":18097.640177676803,"y":39493.45756509793},"targetPosition":{"x":18113.340964549687,"y":39793.046425524306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Here's How It Works","config":"{\n \"image\": \"layer-resistance\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Here's How it Works...\"\n }\n}","project":"Superalgos","id":"f9e682fd-3906-4dd4-ad44-9c4af0d8a632","savedPayload":{"position":{"x":18249.53811447155,"y":39525.744468267796},"targetPosition":{"x":18113.340964549687,"y":39793.046425524306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"dbb272f3-27d5-4938-96a4-e5ee1b87bff2","savedPayload":{"position":{"x":18113.340964549687,"y":39793.046425524306},"targetPosition":{"x":18276.732675054194,"y":40044.64759590793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"5e3deefe-2224-4b65-be4d-0b7ab311bd48","savedPayload":{"position":{"x":18403.732675054194,"y":40078.64759590793},"targetPosition":{"x":18671.034632310704,"y":40214.844745829796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Trading System","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Come Meet Someone","config":"{\n \"image\": \"execution-algorithm\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Come Meet Someone!\"\n }\n}","project":"Superalgos","id":"395d6137-6954-48d0-89d7-a41226d6c667","savedPayload":{"position":{"x":18103.24862196247,"y":39924.8420017004},"targetPosition":{"x":18402.83748238884,"y":39940.542788573286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Execution Algorithm","name":"Buy Orders","id":"e635ed9f-3c8c-45bf-8be0-e3836fa0844e"}}},{"type":"Tutorial Step","name":"Formulations","config":"{\n \"image\": \"formula\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Formulations...\"\n }\n}","project":"Superalgos","id":"f8c57877-6059-4c16-8dbe-18571d22d8ca","savedPayload":{"position":{"x":18151.236312005214,"y":39777.151078068775},"targetPosition":{"x":18402.83748238884,"y":39940.542788573286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Order Rate","name":"New Order Rate","id":"3ff96eb6-5965-4f82-98d4-cd23bf8d0369"}}},{"type":"Tutorial Step","name":"The Seller","config":"{\n \"image\": \"execution-algorithm\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Seller\"\n }\n}","project":"Superalgos","id":"29fe5e28-80f8-4ca0-902b-5b8de961aeca","savedPayload":{"position":{"x":18266.640332466977,"y":39673.240831316776},"targetPosition":{"x":18402.83748238884,"y":39940.542788573286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Execution Algorithm","name":"Race to Break Even","id":"0fe764ce-3312-4964-9841-b55500e3f80a"}}},{"type":"Tutorial Step","name":"Simplifying Complexity","config":"{\n \"image\": \"trading-system\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Simplifying Complexity\"\n }\n}","project":"Superalgos","id":"4b24efc4-d836-4a22-9791-8f34fed6f6d2","savedPayload":{"position":{"x":18418.538269261724,"y":39640.95392814691},"targetPosition":{"x":18402.83748238884,"y":39940.542788573286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Strategy","name":"My Trading Strategy","id":"711041eb-3055-4611-b64f-570363bae854"}}},{"type":"Tutorial Step","name":"Let's Take a Peek","config":"{\n \"image\": \"limit-sell-order\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Take a Peek...\"\n }\n}","project":"Superalgos","id":"66730e1d-6c7d-4af9-a053-b77d3c0c80a3","savedPayload":{"position":{"x":18566.22919289335,"y":39688.94161818966},"targetPosition":{"x":18402.83748238884,"y":39940.542788573286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Limit Sell Order","name":"Profit 0.6","id":"b80fe127-d306-4fc1-a3a8-95bf88de046f"}}}],"tutorialTopics":[],"id":"4a22546a-13ad-4d99-8309-9583c44d331a","savedPayload":{"position":{"x":18534.83748238884,"y":39947.542788573286},"targetPosition":{"x":18671.034632310704,"y":40214.844745829796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Trading Engine","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Find the Node Challenge","config":"{\n \"image\": \"trading-engine\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Find the Node Challenge\"\n }\n}","project":"Superalgos","id":"1da79160-ab19-4a67-ad10-383158a5330c","savedPayload":{"position":{"x":18344.3643491884,"y":39713.69289570072},"targetPosition":{"x":18590.964971822774,"y":39884.53824365125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Engine","name":"Low-Frequency","id":"eb20f622-71bf-4479-a574-d2320e1d4bd1"}}},{"type":"Tutorial Step","name":"Found It?","config":"{\n \"image\": \"copy-path\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Found It?\"\n }\n}","project":"Superalgos","id":"ff08fcfb-7c33-4d70-9260-f960f4e1dd12","savedPayload":{"position":{"x":18442.91250640347,"y":39623.61590370454},"targetPosition":{"x":18590.964971822774,"y":39884.53824365125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Entry Target Rate","name":"New Entry Target Rate","id":"71b3e7d9-80d0-422d-999e-99549f5ab59d"}}},{"type":"Tutorial Step","name":"The Coolest Trick!","config":"{\n \"image\": \"exit-target-rate\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"repositionAtTimeMachineReferenceParent\": true,\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-08-31T23:40:00.000Z\",\n \"toDate\": \"2020-09-01T01:00:00.000Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 11000,\n \"maxValue\": 11800\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-min\"\n }\n },\n {\n \"nodePath\": \"referenceParent.timelineCharts[1].layerManager\",\n \"properties\": {\n \"visibleLayers\": 3,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n }\n },\n {\n \"nodePath\": \"referenceParent.timelineCharts[1].layerManager.botLayers[0].layerFolders[0].layerFolders[2].layers[0]\",\n \"properties\": {\n \"status\": \"on\"\n }\n }\n ],\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Coolest Trick!\"\n }\n}","project":"Superalgos","id":"2cc2befe-1858-4c96-a45c-52e3dbfa7384","savedPayload":{"position":{"x":18570.78427013916,"y":39585.21778113732},"targetPosition":{"x":18590.964971822774,"y":39884.53824365125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Backtesting Session My Computer","id":"499eac86-6c40-4362-a36a-5f2002081866"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Welcome Backtesting Trading Engine Visualization 01\"\n }\n}","project":"Superalgos","id":"0276fff4-493c-42c8-8d06-267a23646783","savedPayload":{"position":{"x":18702.653069343356,"y":39606.10374709554},"targetPosition":{"x":18590.964971822774,"y":39884.53824365125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Exit Target Rate","name":"New Exit Target Rate","id":"bc637b55-04bd-4701-9683-78593832cb09"}}},{"type":"Tutorial Step","name":"Feedback Loops","config":"{\n \"image\": \"limit-buy-order\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Feedback Loops\"\n }\n}","project":"Superalgos","id":"f5c6cc94-ab96-4729-aa90-12c904c58066","savedPayload":{"position":{"x":18812.400671068975,"y":39682.13707987163},"targetPosition":{"x":18590.964971822774,"y":39884.53824365125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Rate","name":"New Rate","id":"1c848292-d64a-456f-b1b9-b9e4a387436e"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Welcome Backtesting Trading Engine Visualization 02\"\n }\n}","project":"Superalgos","id":"3169f747-4d89-463d-8307-aa7f7b4a4a62","savedPayload":{"position":{"x":18878.290216828253,"y":39798.25844542165},"targetPosition":{"x":18590.964971822774,"y":39884.53824365125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"9c34436a-f531-443a-bcd5-d69e352da251","savedPayload":{"position":{"x":18717.964971822774,"y":39918.53824365125},"targetPosition":{"x":18671.034632310704,"y":40214.844745829796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"9cf3ea6e-9edb-44ed-81ff-8a00886ce731","savedPayload":{"position":{"x":18671.034632310704,"y":40214.844745829796},"targetPosition":{"x":18883.166666666668,"y":40426.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Live Trading","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Set Up & Run","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Enough Chit Chat","config":"{\n \"image\": \"production-trading-tasks\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Enough Chit Chat!\"\n }\n}","project":"Superalgos","id":"8dfa9fdb-3591-4dbe-a865-0ef760ce9742","savedPayload":{"position":{"x":18441.623196169607,"y":39937.89683970326},"targetPosition":{"x":18733.166666666668,"y":39867.16915905043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Production Trading Tasks","name":"New Production Trading Tasks","id":"673caa5f-511d-4688-9305-e5f0f0f780cd"}}},{"type":"Tutorial Step","name":"Warning!","config":"{\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Disclaimer\"\n }\n}","project":"Superalgos","id":"1ad5babb-40d3-48f4-a784-5c2ea0e6b171","savedPayload":{"position":{"x":18433.506464911767,"y":39852.89458430331},"targetPosition":{"x":18733.166666666668,"y":39867.16915905043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Let's Start With 100 Bucks!","config":"{\n \"image\": \"session-quoted-asset\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Start With 100 Bucks!\"\n }\n}","project":"Superalgos","id":"04b09505-d781-4d1f-8686-57eb3a0cf95c","savedPayload":{"position":{"x":18449.66642105227,"y":39769.048770055204},"targetPosition":{"x":18733.166666666668,"y":39867.16915905043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Session Quoted Asset","name":"","id":"f6cd46c1-66df-422c-82d4-02ac8e37f689"}}},{"type":"Tutorial Step","name":"Check your spot balance!","config":"{\n \"image\": \"binance\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Check Your Spot Balance!\"\n }\n}","project":"Superalgos","id":"cde31bb3-92f1-4b5b-8d2f-5a5065d19bef","savedPayload":{"position":{"x":18488.793881051566,"y":39693.15208617907},"targetPosition":{"x":18733.166666666668,"y":39867.16915905043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Enjoy the Outdoors!","config":"{\n \"image\": \"crypto-ecosystem\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Enjoy the Outdoors!\"\n }\n}","project":"Superalgos","id":"ff963975-de14-44e0-a552-44b29644a938","savedPayload":{"position":{"x":18547.718970800484,"y":39631.35323062759},"targetPosition":{"x":18733.166666666668,"y":39867.16915905043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","id":"7217b56c-e854-4c06-8b8a-d5d3c05a153d"}}},{"type":"Tutorial Step","name":"Your Keys, Your Coins!","config":"{\n \"image\": \"exchange-account-key\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Your Keys, Your Coins!\"\n }\n}","project":"Superalgos","id":"a36187cc-415e-424b-8275-352f953552f8","savedPayload":{"position":{"x":18621.66792996857,"y":39588.658779145604},"targetPosition":{"x":18733.166666666668,"y":39867.16915905043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Exchange Account Key","name":"Key for Lighting Strike","id":"e85bbbd6-aca8-450f-9237-788062de5761"}}},{"type":"Tutorial Step","name":"Fire Up the Machine!","config":"{\n \"image\": \"data-tasks\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Fire Up the Machine!\"\n }\n}","project":"Superalgos","id":"87824465-1fda-4f6a-bb4f-31f6d7f77268","savedPayload":{"position":{"x":18704.64985367541,"y":39568.527582278504},"targetPosition":{"x":18733.166666666668,"y":39867.16915905043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Tasks","name":"New Data Tasks","id":"40af91d9-431c-4b7d-addc-aed37bc2f3fe"}}},{"type":"Tutorial Step","name":"Are We Ready Yet?","config":"{\n \"image\": \"indicator-process-instance\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Are We Ready Yet?\"\n }\n}","project":"Superalgos","id":"f05ce10a-6ccd-4910-9373-8f3d211fe390","savedPayload":{"position":{"x":18789.94203997479,"y":39572.59054987162},"targetPosition":{"x":18733.166666666668,"y":39867.16915905043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Daily","id":"c5395fbe-4b5a-4492-a7fb-e2d259905e27"}}},{"type":"Tutorial Step","name":"Let's Do this!","config":"{\n \"image\": \"live-trading-session\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Do This!\"\n }\n}","project":"Superalgos","id":"ba33c98c-dc22-408d-8206-c173344cdb24","savedPayload":{"position":{"x":18870.63462318489,"y":39600.51852445395},"targetPosition":{"x":18733.166666666668,"y":39867.16915905043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Task","name":"Lightning Strike","id":"c8492c4a-a7a7-4a80-a25a-a610377e6180"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Left\",\n \"positionAtReferenceParent\": true,\n \"slider\": \"toTop\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Welcome Live Trading Process Progress\"\n }\n}","project":"Superalgos","id":"bd2e54f6-f3ca-4bf7-a453-b2a2ce55e65c","savedPayload":{"position":{"x":18940.1903701113,"y":39650.0489476189},"targetPosition":{"x":18733.166666666668,"y":39867.16915905043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Process Instance","name":"Low Frequency Trading","id":"4d7e7fa0-afcb-4b2f-983b-ceacea91b29d"}}}],"tutorialTopics":[],"id":"8f866187-280e-4e87-b871-41dc645fd412","savedPayload":{"position":{"x":18733.166666666668,"y":39867.16915905043},"targetPosition":{"x":18883.166666666668,"y":40126.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Monitoring","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Check Your Console!","config":"{\n \"image\": \"trading-process-instance\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Check Your Console!\"\n }\n}","project":"Superalgos","id":"036556c5-b0bd-494a-bec2-bd7413506475","savedPayload":{"position":{"x":18756.166666666668,"y":39573.361537915094},"targetPosition":{"x":18906.166666666668,"y":39833.16915905043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Welcome Live Trading Console\"\n }\n}","project":"Superalgos","id":"2708d375-3245-455d-85d2-b164ab3ba86f","savedPayload":{"position":{"x":18906.166666666668,"y":39533.16915905043},"targetPosition":{"x":18906.166666666668,"y":39833.16915905043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Is It Working?","config":"{\n \"image\": \"binance\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Is It Working?\"\n }\n}","project":"Superalgos","id":"8f6913ec-257f-49ba-bdbb-dcd43e5fe727","savedPayload":{"position":{"x":19056.166666666668,"y":39573.361537915094},"targetPosition":{"x":18906.166666666668,"y":39833.16915905043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"changeNodeConfigWithEvalReferenceParent\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"(new Date((new Date()).valueOf() - 60000 * 120)).toISOString()\",\n \"toDate\": \"(new Date((new Date()).valueOf() + 60000 * 120)).toISOString()\"\n },\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Welcome Live Trading Binance Orders\"\n }\n}","project":"Superalgos","id":"9a3be7a3-9fe8-4d58-a84c-abd59c43e7f2","savedPayload":{"position":{"x":19165.974287802,"y":39683.16915905043},"targetPosition":{"x":18906.166666666668,"y":39833.16915905043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Scale","name":"New Time Scale","id":"708c5a9f-a995-4210-aaaf-0794782f0e9e"}}},{"type":"Tutorial Step","name":"Monitor the Fun Way","config":"{\n \"image\": \"bullet-limit-buy-order\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"repositionAtTimeMachineReferenceParent\": true,\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-min\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Monitoring the Fun Way!\"\n }\n}","project":"Superalgos","id":"d84be58b-a1c7-4504-89aa-f98efe132c30","savedPayload":{"position":{"x":19206.166666666668,"y":39833.16915905043},"targetPosition":{"x":18906.166666666668,"y":39833.16915905043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"Lightning Strike Live Trading Session My Computer","id":"cc1fcc1e-81de-4011-8e59-c37ebe32ecf7"}}}],"tutorialTopics":[],"id":"03e5e234-40eb-4fbe-8df3-95a40f1b34ea","savedPayload":{"position":{"x":19033.166666666668,"y":39867.16915905043},"targetPosition":{"x":18883.166666666668,"y":40126.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"8f829077-b2bd-4747-a01d-762f35b3a070","savedPayload":{"position":{"x":18883.166666666668,"y":40126.97678018576},"targetPosition":{"x":18883.166666666668,"y":40426.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"The End","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"What's Next?","config":"{\n \"image\": \"bullet-info\",\n \"position\": \"\",\n \"slider\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - What's Next?\"\n }\n}","project":"Superalgos","id":"06efb824-f003-4a3c-8323-549a6427d83e","savedPayload":{"position":{"x":18836.513222500424,"y":39935.952409718804},"targetPosition":{"x":18963.29870102263,"y":40207.844745829796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"What Else Is Cooking?","config":"{\n \"image\": \"ethereum\",\n \"position\": \"\",\n \"slider\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - What Else Is Cooking?\"\n }\n}","project":"Superalgos","id":"96d43586-d877-4499-92a5-e84882a38a47","savedPayload":{"position":{"x":18937.151978198333,"y":39908.986336402275},"targetPosition":{"x":18963.29870102263,"y":40207.844745829796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"A Chance to Give Back!","config":"{\n \"image\": \"superalgos\",\n \"position\": \"\",\n \"slider\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Your Chance to Give Back!\"\n }\n}","project":"Superalgos","id":"5a45f4f3-5ee8-4816-8873-3f4cffafe4f0","savedPayload":{"position":{"x":19040.94441455339,"y":39918.066997943075},"targetPosition":{"x":18963.29870102263,"y":40207.844745829796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Fork It Baby!","config":"{\n \"image\": \"github\",\n \"position\": \"\",\n \"slider\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Fork and Star on GitHub!\"\n }\n}","project":"Superalgos","id":"ecef6518-8ee6-4b8b-9a82-0f429eb21bf7","savedPayload":{"position":{"x":19135.371631927945,"y":39962.099132543095},"targetPosition":{"x":18963.29870102263,"y":40207.844745829796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Tweet It!","config":"{\n \"image\": \"twitter\",\n \"position\": \"\",\n \"slider\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Spread the Word on Twitter!\"\n }\n}","project":"Superalgos","id":"b32ff594-9dbb-40f5-81b6-127e162115fb","savedPayload":{"position":{"x":19209.04431430933,"y":40035.77181492448},"targetPosition":{"x":18963.29870102263,"y":40207.844745829796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Contacts","config":"{\n \"image\": \"telegram-bot\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Get In Touch!\"\n }\n}","project":"Superalgos","id":"6f46b0c2-1892-4273-a6f5-f85886ee5cf9","savedPayload":{"position":{"x":19253.076448909353,"y":40130.19903229904},"targetPosition":{"x":18963.29870102263,"y":40207.844745829796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Ready for More?","config":"{\n \"image\": \"tutorial\",\n \"position\": \"\",\n \"slider\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Ready for More Tutorials?\"\n }\n}","project":"Superalgos","id":"6ccf52bb-9a95-40e8-8f2c-35530f44114e","savedPayload":{"position":{"x":19262.157110450156,"y":40233.991468654094},"targetPosition":{"x":18963.29870102263,"y":40207.844745829796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"This Is The End","config":"{\n \"image\": \"close-stage-event\",\n \"position\": \"\",\n \"slider\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - My Only Friend, The End!\"\n }\n}","project":"Superalgos","id":"708b6ed8-28ac-41c8-bf4f-7c1cec6af6a3","savedPayload":{"position":{"x":19235.191037133627,"y":40334.630224352004},"targetPosition":{"x":18963.29870102263,"y":40207.844745829796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"Welcome to Superalgos!","id":"6f36f540-8de9-4458-b2c7-875884121b87"}}}],"tutorialTopics":[],"id":"fcea7b25-5a13-40e6-a92f-9c530b8a7476","savedPayload":{"position":{"x":19095.29870102263,"y":40214.844745829796},"targetPosition":{"x":18883.166666666668,"y":40426.97678018576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"6f36f540-8de9-4458-b2c7-875884121b87","savedPayload":{"position":{"x":18883.166666666668,"y":40426.97678018576},"targetPosition":{"x":18883.166666666668,"y":40426.97678018576},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isPlaying":true,"isRunning":false},"tutorial":{"status":"Done"}}},{"type":"Tutorial","name":"Developers Intro","config":"{\n \"image\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial - Intro for Developers\"\n }\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Architecture","config":"{\n \"image\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - System Architecture\"\n }\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Client","config":"{\n \"image\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - Client\"\n }\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Client","config":"{\n \"image\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - Client\"\n }\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Web Server","config":"{\n \"image\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Web Server\"\n }\n}","project":"Superalgos","id":"4c01144d-0021-4fda-b233-d2984a08be4d","savedPayload":{"position":{"x":24941.435098056183,"y":39378.00712690177},"targetPosition":{"x":25239.791666666664,"y":39409.36566588207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Web Sockets Server","config":"{\n \"image\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Web Sockets Server\"\n }\n}","project":"Superalgos","id":"3b772db2-8aee-4f6e-b4d2-3dbd9c3edc83","savedPayload":{"position":{"x":25016.848219023446,"y":39208.62648397441},"targetPosition":{"x":25239.791666666664,"y":39409.36566588207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Events Server","config":"{\n \"image\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Events Server\"\n }\n}","project":"Superalgos","id":"56f1a417-2b2a-4b82-9ede-11dc2658a4a6","savedPayload":{"position":{"x":25177.418159421337,"y":39115.921385661924},"targetPosition":{"x":25239.791666666664,"y":39409.36566588207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Task Manager Server","config":"{\n \"image\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Task Manager Server\"\n }\n}","project":"Superalgos","id":"e4892c24-71fd-4b41-a913-7e27abd5ff91","savedPayload":{"position":{"x":25361.812659589403,"y":39135.302028589285},"targetPosition":{"x":25239.791666666664,"y":39409.36566588207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"3ce65c39-db2b-4ae1-a091-81871192942c","savedPayload":{"position":{"x":25239.791666666664,"y":39409.36566588207},"targetPosition":{"x":25389.791666666664,"y":39669.1732870174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Task Server","config":"{\n \"image\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - Task Server\"\n }\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[],"id":"1efab353-979b-4b8c-a117-2f1206c16ae4","savedPayload":{"position":{"x":25689.791666666664,"y":39669.1732870174},"targetPosition":{"x":25389.791666666664,"y":39669.1732870174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"04f8ffd7-52eb-41fa-bd19-e0708060e427","savedPayload":{"position":{"x":25389.791666666664,"y":39669.1732870174},"targetPosition":{"x":25239.791666666664,"y":39928.980908152735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Frontend","config":"{\n \"image\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - Frontend\"\n }\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Canvas App","config":"{\n \"image\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - Canvas App\"\n }\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Canvas Animation","config":"{\n \"image\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Canvas Animation\"\n }\n}","project":"Superalgos","id":"4c215e8b-7a83-4586-bcb0-31ee3308a82a","savedPayload":{"position":{"x":25652.296702498083,"y":39913.56410390237},"targetPosition":{"x":25566.791666666664,"y":40148.487259098845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Charting Space","config":"{\n \"image\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Charting Space\"\n }\n}","project":"Superalgos","id":"e4fb4c74-d980-4c56-b87e-60696c078abe","savedPayload":{"position":{"x":25727.4885690883,"y":39956.9761483191},"targetPosition":{"x":25566.791666666664,"y":40148.487259098845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Design Space","config":"{\n \"image\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Design Space\"\n }\n}","project":"Superalgos","id":"602ed273-6058-4660-bdca-dbbed6863bd2","savedPayload":{"position":{"x":25783.298017612775,"y":40023.487259098845},"targetPosition":{"x":25566.791666666664,"y":40148.487259098845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Floating Space","config":"{\n \"image\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Floating Space\"\n }\n}","project":"Superalgos","id":"87fa3d5c-f9c2-4340-a171-eafbf5926fb8","savedPayload":{"position":{"x":25812.993604919717,"y":40105.07521468211},"targetPosition":{"x":25566.791666666664,"y":40148.487259098845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Side Space","config":"{\n \"image\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Side Space\"\n }\n}","project":"Superalgos","id":"5d2b9869-82e1-4d98-b213-0fd5906608c7","savedPayload":{"position":{"x":25812.993604919717,"y":40191.89930351558},"targetPosition":{"x":25566.791666666664,"y":40148.487259098845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Docs Space","config":"{\n \"image\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Docs Space\"\n }\n}","project":"Superalgos","id":"aaaee2ea-644e-4769-8848-ef2b2bc62841","savedPayload":{"position":{"x":25783.298017612775,"y":40273.487259098845},"targetPosition":{"x":25566.791666666664,"y":40148.487259098845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Tutorial Space","config":"{\n \"image\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Tutorial Space\"\n }\n}","project":"Superalgos","id":"782d10c5-de47-4927-b287-5cb630f305f9","savedPayload":{"position":{"x":25727.4885690883,"y":40339.99836987859},"targetPosition":{"x":25566.791666666664,"y":40148.487259098845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Panel Space","config":"{\n \"image\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Panel Space\"\n }\n}","project":"Superalgos","id":"54722f4b-8f86-4220-9e0f-5417297450a6","savedPayload":{"position":{"x":25652.296702498083,"y":40383.41041429532},"targetPosition":{"x":25566.791666666664,"y":40148.487259098845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"d284c632-42b2-47e6-b1f6-6c64029311a0","savedPayload":{"position":{"x":25689.791666666664,"y":40188.78852928807},"targetPosition":{"x":25389.791666666664,"y":40188.78852928807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Files Component","config":"{\n \"image\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - Files Component\"\n }\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[],"id":"719861ad-82fd-4c93-b510-86af1d666908","savedPayload":{"position":{"x":25239.791666666664,"y":40448.5961504234},"targetPosition":{"x":25389.791666666664,"y":40188.78852928807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"b2cfb2eb-be83-4075-bf26-932a75e83566","savedPayload":{"position":{"x":25389.791666666664,"y":40188.78852928807},"targetPosition":{"x":25239.791666666664,"y":39928.980908152735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"33eb3496-ba79-468a-a30a-9b3e4ba0f4c8","savedPayload":{"position":{"x":25239.791666666664,"y":39928.980908152735},"targetPosition":{"x":24939.791666666664,"y":39928.980908152735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Concusion","config":"{\n \"image\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"https://docs.superalgos.org/contributing-to-superalgos.html\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - Parting Thoughts...\"\n }\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[],"id":"bbc427d1-eec8-489b-bc23-d99281687741","savedPayload":{"position":{"x":24639.791666666664,"y":39928.980908152735},"targetPosition":{"x":24939.791666666664,"y":39928.980908152735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"6a03c441-823d-4147-aef3-d592f110dfd8","savedPayload":{"position":{"x":24937.791666666664,"y":40453.980908152735},"targetPosition":{"x":24937.791666666664,"y":40453.980908152735},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"}}},{"type":"Tutorial","name":"Install a New Market","config":"{\n \"image\": \"market\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial - Install a New Market\"\n }\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Add the Assets","config":"{\n \"image\": \"asset\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - Add the Assets\"\n }\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"exchange-assets\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Add the Assets 1\"\n }\n}","project":"Superalgos","id":"1b3b8d0e-3aa9-4aba-8b74-351647a3b5b5","savedPayload":{"position":{"x":31555.632034355964,"y":40268.44846100007},"targetPosition":{"x":31343.5,"y":40480.58049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"asset\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Add the Assets 2\"\n }\n}","project":"Superalgos","id":"05f7092a-2326-40e7-b618-f3be5523e670","savedPayload":{"position":{"x":31643.5,"y":40480.58049535604},"targetPosition":{"x":31343.5,"y":40480.58049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"asset\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Add the Assets 3\"\n }\n}","project":"Superalgos","id":"281274f1-a4ec-47a2-b97c-0c29aa71eed9","savedPayload":{"position":{"x":31555.632034355964,"y":40692.712529712},"targetPosition":{"x":31343.5,"y":40480.58049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"cd6f2f74-407e-46c9-b7de-95d9ab2cc82d","savedPayload":{"position":{"x":31335.5,"y":40458.58049535604},"targetPosition":{"x":31035.5,"y":40458.58049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Exchange Assets","name":"New Exchange Assets","id":"95d2c30f-215b-486e-8119-f4eac0279575"}}},{"type":"Tutorial Topic","name":"Set up the Market","config":"{\n \"image\": \"market\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - Set Up the Market\"\n }\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"market\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Set Up the Market 1\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"cae5ddd4-0c48-488d-86f7-38192c7fdbca","savedPayload":{"position":{"x":31483.85656861048,"y":40749.74665547167},"targetPosition":{"x":31185.5,"y":40718.38811649137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"asset\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Set Up the Market 2\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"References\",\n \"anchor\": \"How to Estabish and Remove References\"\n }\n }\n}","project":"Superalgos","id":"a7a049cb-72e0-4d76-9247-ee0d873e79c8","savedPayload":{"position":{"x":31408.443447643218,"y":40919.12729839903},"targetPosition":{"x":31185.5,"y":40718.38811649137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"asset\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Set Up the Market 3\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"9710d88d-c4ae-406b-9079-31bcf7395817","savedPayload":{"position":{"x":31247.873507245327,"y":41011.832396711514},"targetPosition":{"x":31185.5,"y":40718.38811649137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"market\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Set Up the Market 4\"\n }\n}","project":"Superalgos","id":"2d2ce361-6261-44b4-b7ff-466035934334","savedPayload":{"position":{"x":31063.47900707726,"y":40992.45175378415},"targetPosition":{"x":31185.5,"y":40718.38811649137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"4de3cd7d-f552-4f39-b4cd-e29269b64668","savedPayload":{"position":{"x":31185.5,"y":40718.38811649137},"targetPosition":{"x":31035.5,"y":40458.58049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Exchange Markets","name":"New Exchange Markets","id":"2fd80894-900e-44ac-a1a7-56c14124f7a1"}}},{"type":"Tutorial Topic","name":"Install the Market","config":"{\n \"image\": \"market\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - Install the Market\"\n }\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[],"id":"e003540b-91f4-41ce-8082-45122ddb55e7","savedPayload":{"position":{"x":30885.5,"y":40718.38811649137},"targetPosition":{"x":31035.5,"y":40458.58049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Network Verification","config":"{\n \"image\": \"network-node\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - Network Verification\"\n }\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"data-tasks\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Network Verification 1\"\n }\n}","project":"Superalgos","id":"4bca0860-329c-4fde-a11e-d404d0f23431","savedPayload":{"position":{"x":30567.164424312257,"y":40723.28559366852},"targetPosition":{"x":30743.5,"y":40480.58049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Tasks","name":"New Data Tasks","id":"40af91d9-431c-4b7d-addc-aed37bc2f3fe"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"testing-trading-tasks\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Network Verification 2\"\n }\n}","project":"Superalgos","id":"495e3d4c-87a8-4147-ad2a-06920da9d7a6","savedPayload":{"position":{"x":30458.183045111455,"y":40573.28559366852},"targetPosition":{"x":30743.5,"y":40480.58049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","id":"8117db0a-e418-4f56-8fe4-fda2ddac1cbb"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"production-trading-tasks\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Network Verification 3\"\n }\n}","project":"Superalgos","id":"43b85e55-3417-4b13-a7b6-7c5bc0fb691d","savedPayload":{"position":{"x":30458.183045111455,"y":40387.87539704355},"targetPosition":{"x":30743.5,"y":40480.58049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Production Trading Tasks","name":"New Production Trading Tasks","id":"673caa5f-511d-4688-9305-e5f0f0f780cd"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"data-storage\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Network Verification 4\"\n }\n}","project":"Superalgos","id":"f37edf40-24ba-42d0-9458-bf008c123659","savedPayload":{"position":{"x":30567.164424312257,"y":40237.87539704355},"targetPosition":{"x":30743.5,"y":40480.58049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Storage","name":"New Data Storage","id":"e2697759-6038-4943-b90c-5a68651ff9a8"}}}],"tutorialTopics":[],"id":"89c6f1e3-d4c8-48c0-aec1-9dda6e0b9797","savedPayload":{"position":{"x":30735.5,"y":40458.58049535604},"targetPosition":{"x":31035.5,"y":40458.58049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Network Node","name":"My Computer","id":"e452cf65-2b2b-44f2-9e67-bdd9d3c008e4"}}},{"type":"Tutorial Topic","name":"Charts Verification","config":"{\n \"image\": \"charting-space\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - Charts Verification\"\n }\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"charting-space\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Charts Verification 1\"\n }\n}","project":"Superalgos","id":"17eb1e8e-e9f4-4fe4-a8ea-2c0ea0804d87","savedPayload":{"position":{"x":30633.692378864667,"y":40070.772874220704},"targetPosition":{"x":30893.5,"y":40220.772874220704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"time-machine\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Charts Verification 2\"\n }\n}","project":"Superalgos","id":"a94fa42a-87c8-4874-ba45-ffa0ffd02f36","savedPayload":{"position":{"x":30893.5,"y":39920.772874220704},"targetPosition":{"x":30893.5,"y":40220.772874220704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"064a5be1-bb06-468b-8fad-d78d2c844ee1","savedPayload":{"position":{"x":30885.5,"y":40198.772874220704},"targetPosition":{"x":31035.5,"y":40458.58049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Charting Space","name":"New Charting Space","id":"21d2ec55-9e56-4652-8e96-c7e451262c36"}}},{"type":"Tutorial Topic","name":"The End","config":"{\n \"image\": \"tutorial\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - You Made It!\"\n }\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[],"id":"9b5e9927-860c-4b89-ac5d-d7f6fd86b18d","savedPayload":{"position":{"x":31185.5,"y":40198.772874220704},"targetPosition":{"x":31035.5,"y":40458.58049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"d86ff84f-15d3-4a2d-9674-114c5b526de5","savedPayload":{"position":{"x":31035.5,"y":40458.58049535604},"targetPosition":{"x":31035.5,"y":40458.58049535604},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"}}}]} \ No newline at end of file diff --git a/Projects/Superalgos/Plugins/Workspaces/Trading-System-Design-Tutorials.json b/Projects/Superalgos/Plugins/Workspaces/Trading-System-Design-Tutorials.json index e03b1bcab..40d7112fc 100644 --- a/Projects/Superalgos/Plugins/Workspaces/Trading-System-Design-Tutorials.json +++ b/Projects/Superalgos/Plugins/Workspaces/Trading-System-Design-Tutorials.json @@ -1 +1 @@ -{"type":"Workspace","name":"Trading System Design Tutorials","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[{"type":"Project Data Tasks","name":"Superalgos","project":"Superalgos","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","project":"Superalgos","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Exchange Raw Data","project":"Superalgos","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","config":"{ \n\"startDate\": \"2020-01-01\"\n}","project":"Superalgos","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"d0ff77d8-76de-4d50-840a-e50a55ad7d1b","savedPayload":{"position":{"x":23464.287287440642,"y":29377.997434862405},"targetPosition":{"x":23762.643856051123,"y":29409.355973842703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"b4e33f51-f9ff-4ef3-a9b7-ccb904163cae","savedPayload":{"position":{"x":23762.643856051123,"y":29409.355973842703},"targetPosition":{"x":24061.000424661604,"y":29440.714512823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"23ae53f9-b478-4eb4-96e7-12d07d7ae4f0","savedPayload":{"position":{"x":24061.000424661604,"y":29440.714512823},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Volumes","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"dcf3d790-5362-4a95-b977-82d0cf0e07f1","savedPayload":{"position":{"x":23646.16814072914,"y":28934.397538066118},"targetPosition":{"x":23913.47009798565,"y":29070.59468798798},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"775fadbd-5b55-41b2-81ac-454f5e52dca6","savedPayload":{"position":{"x":23750.078387481142,"y":28818.993517604355},"targetPosition":{"x":23913.47009798565,"y":29070.59468798798},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"fc478301-77ac-4396-bd3b-915b4c681fa0","savedPayload":{"position":{"x":23913.47009798565,"y":29070.59468798798},"targetPosition":{"x":24136.413545628868,"y":29271.33386989564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"30054a4b-7c93-4a3a-a6db-2e0d38507b2e","savedPayload":{"position":{"x":24136.413545628868,"y":29271.33386989564},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Bands","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","project":"Superalgos","id":"bf0f739f-98b7-4c73-ae06-8d3fe83147ce","savedPayload":{"position":{"x":24098.412828859568,"y":28617.882534106506},"targetPosition":{"x":24234.60997878143,"y":28885.184491363016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","project":"Superalgos","id":"cc5b20c4-9045-4c75-8a1b-33736d9ff799","savedPayload":{"position":{"x":24250.310765654314,"y":28585.595630936645},"targetPosition":{"x":24234.60997878143,"y":28885.184491363016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}}],"id":"39cbcfb5-c52b-4e76-a62e-b8fda67fb230","savedPayload":{"position":{"x":24234.60997878143,"y":28885.184491363016},"targetPosition":{"x":24296.98348602676,"y":29178.628771583157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9f531e59-08e8-4965-961c-b0e749fb7020","savedPayload":{"position":{"x":24296.98348602676,"y":29178.628771583157},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","project":"Superalgos","id":"24e7627a-4416-46da-933c-1bd67aedcfb1","savedPayload":{"position":{"x":24650.329318629632,"y":28627.639275039197},"targetPosition":{"x":24603.398979117563,"y":28923.945777217737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","project":"Superalgos","id":"5b56bdaa-2cc8-4d34-b5e0-3cb138641529","savedPayload":{"position":{"x":24792.195096432515,"y":28690.801988780648},"targetPosition":{"x":24603.398979117563,"y":28923.945777217737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"b775a7ab-7adc-4f56-95c1-13c8faa87c2c","savedPayload":{"position":{"x":24603.398979117563,"y":28923.945777217737},"targetPosition":{"x":24481.377986194824,"y":29198.009414510518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8964bc85-255b-4541-beb4-54f4a4968ae4","savedPayload":{"position":{"x":24481.377986194824,"y":29198.009414510518},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e7d4e64e-402a-49fc-9af4-a4b83957d1ad","savedPayload":{"position":{"x":24359.356993272086,"y":29472.073051803298},"targetPosition":{"x":24509.356993272086,"y":29731.88067293863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"da602e88-4614-4b8b-b69b-51a68cc8fed0","savedPayload":{"position":{"x":24509.356993272086,"y":29731.88067293863},"targetPosition":{"x":24659.356993272086,"y":29991.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}}],"id":"f4c30773-c357-4519-819c-abfacab1e71f","savedPayload":{"position":{"x":24659.356993272086,"y":29991.688294073963},"targetPosition":{"x":24809.356993272086,"y":30251.495915209296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"66990092-fbec-4b3b-867c-bbd466a136e1","savedPayload":{"position":{"x":24809.356993272086,"y":30251.495915209296},"targetPosition":{"x":24959.356993272086,"y":30511.30353634463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"b4fd96ac-f473-46de-9ab3-3e02802e0e14","savedPayload":{"position":{"x":24959.356993272086,"y":30511.30353634463},"targetPosition":{"x":25109.356993272086,"y":30771.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"ef4b033a-aeb2-4461-bc25-019a834c0b23"}}}],"id":"4df1cb4e-b9ca-4f62-bb5f-c7e262aaa22a","savedPayload":{"position":{"x":25109.356993272086,"y":30771.11115747996},"targetPosition":{"x":25259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningTasks":{"type":"Learning Tasks","name":"New Learning Tasks","project":"Superalgos","projectLearningTasks":[{"type":"Project Learning Tasks","name":"Superalgos","project":"Superalgos","exchangeLearningTasks":[{"type":"Exchange Learning Tasks","name":"Binance","project":"Superalgos","marketLearningTasks":[{"type":"Market Learning Tasks","name":"Binance BTC/USDT","project":"Superalgos","learningMineTasks":[],"id":"fc26350a-3770-4883-b111-07b79f8c92d4","savedPayload":{"position":{"x":25859.356993272086,"y":29991.688294073963},"targetPosition":{"x":25709.356993272086,"y":30251.495915209296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"f9deb4d8-e0fa-48f3-b4d4-77e4d903bb96","savedPayload":{"position":{"x":25709.356993272086,"y":30251.495915209296},"targetPosition":{"x":25559.356993272086,"y":30511.30353634463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"d3877408-57f5-42e3-b0a5-e68de018e280","savedPayload":{"position":{"x":25559.356993272086,"y":30511.30353634463},"targetPosition":{"x":25409.356993272086,"y":30771.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"ef4b033a-aeb2-4461-bc25-019a834c0b23"}}}],"id":"1b19735e-0041-438f-824b-00df4f8942dd","savedPayload":{"position":{"x":25409.356993272086,"y":30771.11115747996},"targetPosition":{"x":25259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"testingTradingTasks":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","project":"Superalgos","projectTradingTasks":[{"type":"Project Trading Tasks","name":"Superalgos","project":"Superalgos","exchangeTradingTasks":[{"type":"Exchange Trading Tasks","name":"Binance","project":"Superalgos","marketTradingTasks":[{"type":"Market Trading Tasks","name":"Binance BTC/USDT","project":"Superalgos","tradingMineTasks":[{"type":"Trading Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"BB Breakdown","project":"Superalgos","bot":{"type":"Trading Bot Instance","name":"Low Frequency","config":"{}","project":"Superalgos","processes":[{"type":"Trading Process Instance","name":"Low Frequency Trading","project":"Superalgos","session":{"type":"Backtesting Session","name":"BB Breakdown","config":"{\"folderName\":\"BB-Breakdown\"}","project":"Superalgos","tradingParameters":{"type":"Trading Parameters","name":"New Trading Parameters","project":"Superalgos","sessionBaseAsset":{"type":"Session Base Asset","name":"","config":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0\n}","project":"Superalgos","id":"7019abd7-77c3-4232-a6bc-5c2ed55f9c29","savedPayload":{"position":{"x":27924.632020960547,"y":29977.749320224066},"targetPosition":{"x":28176.233191344174,"y":30141.141030728573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sessionQuotedAsset":{"type":"Session Quoted Asset","name":"","config":"{\n\"initialBalance\": 0\n}","project":"Superalgos","id":"b088e5bb-cc85-4e2f-a613-44385fc46694","savedPayload":{"position":{"x":27987.43707402922,"y":29907.997242291483},"targetPosition":{"x":28176.233191344174,"y":30141.141030728573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","config":"{ \n\"initialDatetime\": \"2020-01-01\",\n\"finalDatetime\": \"2020-10-01\" \n}","project":"Superalgos","id":"b9e4098d-6bb5-4872-b642-ce72c27e9079","savedPayload":{"position":{"x":28068.722806480582,"y":29861.066902779414},"targetPosition":{"x":28176.233191344174,"y":30141.141030728573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","config":"{ \n\"label\": \"24-hs\"\n}","project":"Superalgos","id":"a96cf256-435d-4b47-b167-a16bf8491535","savedPayload":{"position":{"x":28160.53240447129,"y":29841.552170302202},"targetPosition":{"x":28176.233191344174,"y":30141.141030728573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","config":"{ \n\"marketOrderRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","project":"Superalgos","id":"3620c5ba-d614-4cc3-a99a-31afa7627d1b","savedPayload":{"position":{"x":28253.87890487493,"y":29851.363282841852},"targetPosition":{"x":28176.233191344174,"y":30141.141030728573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","config":"{ \n\"maker\": 0.1,\n\"taker\": 0.1\n}","project":"Superalgos","id":"2492d330-fc4e-48c8-83d2-2e1c5e8060b2","savedPayload":{"position":{"x":28339.62490184868,"y":29889.539860344947},"targetPosition":{"x":28176.233191344174,"y":30141.141030728573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"snapshots":{"type":"Snapshots","name":"New Snapshots","config":"{ \n\"strategy\": true,\n\"position\": true\n}","project":"Superalgos","id":"df5da1ba-de14-4c9c-9560-7907481ae573","savedPayload":{"position":{"x":28409.376979781264,"y":29952.34491341362},"targetPosition":{"x":28176.233191344174,"y":30141.141030728573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"heartbeats":{"type":"Heartbeats","name":"New Heartbeats","config":"{ \n\"date\": true,\n\"candleIndex\": false\n}","project":"Superalgos","id":"e1e1eb52-3740-4ede-bacd-a1432c876d5f","savedPayload":{"position":{"x":28456.307319293333,"y":30033.63064586498},"targetPosition":{"x":28176.233191344174,"y":30141.141030728573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedParameters":{"type":"User Defined Parameters","name":"New User Defined Parameters","config":"{ \n\"param1Name\": \"A text string value example\",\n\"param2Name\": 0\n}","project":"Superalgos","id":"9d08a985-5063-4fd6-a536-b8095c8dcea4","savedPayload":{"position":{"x":28475.822051770545,"y":30125.44024385569},"targetPosition":{"x":28176.233191344174,"y":30141.141030728573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7c6c0f4a-266b-49ce-8a85-619a55b5422c","savedPayload":{"position":{"x":28176.233191344174,"y":30141.141030728573},"targetPosition":{"x":28098.587477813417,"y":30430.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingSystemReference":{"type":"Trading System Reference","name":"BB Breakdown","project":"Superalgos","id":"9b3bdd4e-abb5-44e7-89a3-b3f81011818f","savedPayload":{"position":{"x":28358.39509894875,"y":30280.918778615294},"targetPosition":{"x":28098.587477813417,"y":30430.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading System","name":"BB Breakdown","id":"77e18ff3-e29b-4e35-ba66-e34af262d35d"}}},"tradingEngineReference":{"type":"Trading Engine Reference","name":"Low-Frequency","project":"Superalgos","id":"ff5cf669-326d-4727-8850-666b11c6593f","savedPayload":{"position":{"x":28388.365225700138,"y":30508.56449214605},"targetPosition":{"x":28098.587477813417,"y":30430.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading Engine","name":"Low-Frequency","id":"eb20f622-71bf-4479-a574-d2320e1d4bd1"}}},"id":"d23a592c-596c-475f-a6c4-00a63d05cf92","savedPayload":{"position":{"x":28098.587477813417,"y":30430.918778615294},"targetPosition":{"x":27838.779856678084,"y":30580.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"27b66580-076c-4fb9-bb6c-eadfa2ea6f39","savedPayload":{"position":{"x":27838.779856678084,"y":30580.918778615294},"targetPosition":{"x":27578.97223554275,"y":30730.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Trading","id":"a8c8d761-96e5-4a86-9285-6c3881d61442"}}}],"id":"1f9396f7-7776-4df2-b2b3-5b5a35b2bfeb","savedPayload":{"position":{"x":27578.97223554275,"y":30730.918778615294},"targetPosition":{"x":27319.16461440742,"y":30880.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9ebfff72-a410-43f1-92e8-5eaca032bd2c","savedPayload":{"position":{"x":27319.16461440742,"y":30880.918778615294},"targetPosition":{"x":27059.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"BB Breakdown 2","project":"Superalgos","bot":{"type":"Trading Bot Instance","name":"Low Frequency","config":"{}","project":"Superalgos","processes":[{"type":"Trading Process Instance","name":"Low Frequency Trading","project":"Superalgos","session":{"type":"Backtesting Session","name":"BB Breakdown 2","config":"{\"folderName\":\"BB-Breakdown-2---PRE-SETUP\"}","project":"Superalgos","tradingParameters":{"type":"Trading Parameters","name":"New Trading Parameters","project":"Superalgos","sessionBaseAsset":{"type":"Session Base Asset","name":"","config":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0\n}","project":"Superalgos","id":"7cc6eed5-0b04-4ae4-9d3f-dc5a6f0246de","savedPayload":{"position":{"x":28404.06601257302,"y":31253.684204658166},"targetPosition":{"x":28388.365225700138,"y":31553.273065084537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sessionQuotedAsset":{"type":"Session Quoted Asset","name":"","config":"{\n\"initialBalance\": 0\n}","project":"Superalgos","id":"59d3ad75-fcfc-450f-9116-e502518dd470","savedPayload":{"position":{"x":28495.87561056373,"y":31273.198937135377},"targetPosition":{"x":28388.365225700138,"y":31553.273065084537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","config":"{ \n\"initialDatetime\": \"2020-02-01\",\n\"finalDatetime\": \"2020-10-01\" \n}","project":"Superalgos","id":"6a305f12-f83d-4037-9e31-a4b9ccaac233","savedPayload":{"position":{"x":28577.16134301509,"y":31320.129276647447},"targetPosition":{"x":28388.365225700138,"y":31553.273065084537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","config":"{ \n\"label\": \"01-hs\"\n}","project":"Superalgos","id":"884b68b3-5108-4d4b-bdcc-5a88160b202c","savedPayload":{"position":{"x":28639.966396083764,"y":31389.88135458003},"targetPosition":{"x":28388.365225700138,"y":31553.273065084537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","config":"{ \n\"marketOrderRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","project":"Superalgos","id":"104fad1f-6313-425c-9eae-1b54df469c7a","savedPayload":{"position":{"x":28678.14297358686,"y":31475.62735155378},"targetPosition":{"x":28388.365225700138,"y":31553.273065084537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","config":"{ \n\"maker\": 0.1,\n\"taker\": 0.1\n}","project":"Superalgos","id":"0957b202-c79a-4af6-a27f-98a06b23a08b","savedPayload":{"position":{"x":28687.95408612651,"y":31568.97385195742},"targetPosition":{"x":28388.365225700138,"y":31553.273065084537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"snapshots":{"type":"Snapshots","name":"New Snapshots","config":"{ \n\"strategy\": true,\n\"position\": true\n}","project":"Superalgos","id":"fd76ecac-c7a7-48e8-adc6-9f276fcf4355","savedPayload":{"position":{"x":28668.439353649297,"y":31660.78344994813},"targetPosition":{"x":28388.365225700138,"y":31553.273065084537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"heartbeats":{"type":"Heartbeats","name":"New Heartbeats","config":"{ \n\"date\": true,\n\"candleIndex\": false\n}","project":"Superalgos","id":"0ca06636-e0ea-4822-86f1-a9dfa1897696","savedPayload":{"position":{"x":28621.509014137227,"y":31742.06918239949},"targetPosition":{"x":28388.365225700138,"y":31553.273065084537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedParameters":{"type":"User Defined Parameters","name":"New User Defined Parameters","config":"{ \n\"param1Name\": \"A text string value example\",\n\"param2Name\": 0\n}","project":"Superalgos","id":"4ff35791-4049-4902-a689-5e5a442e363c","savedPayload":{"position":{"x":28551.756936204645,"y":31804.874235468164},"targetPosition":{"x":28388.365225700138,"y":31553.273065084537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8f4b2297-8462-47d3-863a-d92b1d4a0b39","savedPayload":{"position":{"x":28388.365225700138,"y":31553.273065084537},"targetPosition":{"x":28098.587477813417,"y":31630.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingSystemReference":{"type":"Trading System Reference","name":"BB Breakdown 2","project":"Superalgos","id":"2cbca93e-434e-400f-9dbd-75524c7cda5f","savedPayload":{"position":{"x":28358.39509894875,"y":31780.918778615294},"targetPosition":{"x":28098.587477813417,"y":31630.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading System","name":"BB Breakdown 2","id":"08fef7d6-7de9-4bb2-ab3c-0df2fce3b6e4"}}},"tradingEngineReference":{"type":"Trading Engine Reference","name":"Low-Frequency","project":"Superalgos","id":"c1d3b7ec-64cf-445d-beb1-d18aab536838","savedPayload":{"position":{"x":28176.233191344174,"y":31920.696526502015},"targetPosition":{"x":28098.587477813417,"y":31630.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading Engine","name":"Low-Frequency","id":"eb20f622-71bf-4479-a574-d2320e1d4bd1"}}},"id":"21c1a266-ac7f-4eb1-8671-7e290d8b8a58","savedPayload":{"position":{"x":28098.587477813417,"y":31630.918778615294},"targetPosition":{"x":27838.779856678084,"y":31480.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d9f961e3-e5c9-43d7-8b24-8c016f27154e","savedPayload":{"position":{"x":27838.779856678084,"y":31480.918778615294},"targetPosition":{"x":27578.97223554275,"y":31330.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Trading","id":"a8c8d761-96e5-4a86-9285-6c3881d61442"}}}],"id":"a95b9f33-a097-462b-9d98-a5bed9197a37","savedPayload":{"position":{"x":27578.97223554275,"y":31330.918778615294},"targetPosition":{"x":27319.16461440742,"y":31180.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45c42479-b3cc-49bd-ac69-3ba2dea67d08","savedPayload":{"position":{"x":27319.16461440742,"y":31180.918778615294},"targetPosition":{"x":27059.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ed3bcaac-7e3a-4b76-90fd-1da7059c5fbf","savedPayload":{"position":{"x":27059.356993272086,"y":31030.918778615294},"targetPosition":{"x":26759.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7ec0ab5d-9e7a-44ac-9321-ac66ab3818e0","savedPayload":{"position":{"x":26759.356993272086,"y":31030.918778615294},"targetPosition":{"x":26459.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"a65da159-d6fe-48f8-b054-8f35e6bcef6a","savedPayload":{"position":{"x":26459.356993272086,"y":31030.918778615294},"targetPosition":{"x":26159.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"b0f32714-0ce1-4e46-b8fb-9e6759c26ced","savedPayload":{"position":{"x":26159.356993272086,"y":31030.918778615294},"targetPosition":{"x":25859.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"50015419-2943-49eb-8cef-540455e03f58","savedPayload":{"position":{"x":25859.356993272086,"y":31030.918778615294},"targetPosition":{"x":25559.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"ef4b033a-aeb2-4461-bc25-019a834c0b23"}}}],"id":"5882d8a8-345b-4188-b1c1-797e9ff805d9","savedPayload":{"position":{"x":25559.356993272086,"y":31030.918778615294},"targetPosition":{"x":25259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"productionTradingTasks":{"type":"Production Trading Tasks","name":"New Production Trading Tasks","project":"Superalgos","projectTradingTasks":[{"type":"Project Trading Tasks","name":"Superalgos","project":"Superalgos","exchangeTradingTasks":[{"type":"Exchange Trading Tasks","name":"Binance","project":"Superalgos","marketTradingTasks":[{"type":"Market Trading Tasks","name":"Binance BTC/USDT","project":"Superalgos","tradingMineTasks":[{"type":"Trading Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"BB Breakdown","project":"Superalgos","bot":{"type":"Trading Bot Instance","name":"Low Frequency","config":"{}","project":"Superalgos","processes":[{"type":"Trading Process Instance","name":"Low Frequency Trading","project":"Superalgos","session":{"type":"Live Trading Session","name":"BB Breakdown","config":"{\"folderName\":\"BB-Breakdown\"}","project":"Superalgos","tradingParameters":{"type":"Trading Parameters","name":"New Trading Parameters","project":"Superalgos","sessionBaseAsset":{"type":"Session Base Asset","name":"","config":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5\n}","project":"Superalgos","id":"152472ee-c75b-42df-898a-8535478aee5d","savedPayload":{"position":{"x":27212.526451663314,"y":33455.03953311575},"targetPosition":{"x":27049.134741158807,"y":33706.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sessionQuotedAsset":{"type":"Session Quoted Asset","name":"","config":"{\n\"initialBalance\": 0\n}","project":"Superalgos","id":"4cd497a6-452e-4fe3-884c-1c9b899fe37a","savedPayload":{"position":{"x":27282.278529595897,"y":33517.84458618442},"targetPosition":{"x":27049.134741158807,"y":33706.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","config":"{ \n\"initialDatetime\": \"2020-09-01\",\n\"finalDatetime\": \"2020-09-02\" \n}","project":"Superalgos","id":"6f52eb59-650d-4b31-9606-bd50bfe0ef61","savedPayload":{"position":{"x":27329.208869107966,"y":33599.13031863578},"targetPosition":{"x":27049.134741158807,"y":33706.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","config":"{ \n\"label\": \"01-hs\"\n}","project":"Superalgos","id":"61580102-fbf3-4b1f-934e-aacdfad1ac0e","savedPayload":{"position":{"x":27348.723601585178,"y":33690.93991662649},"targetPosition":{"x":27049.134741158807,"y":33706.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","config":"{ \n\"marketOrderRate\": 0.1,\n\"stopLoss\": 0.2,\n\"takeProfit\": 0.3\n}","project":"Superalgos","id":"178adf37-12b7-45ad-afb2-c613ec59555b","savedPayload":{"position":{"x":27338.912489045528,"y":33784.28641703013},"targetPosition":{"x":27049.134741158807,"y":33706.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","config":"{ \n\"maker\": 0.1,\n\"taker\": 0.1\n}","project":"Superalgos","id":"2c4a8496-05cf-46b2-b95a-04ae444f49d6","savedPayload":{"position":{"x":27300.735911542433,"y":33870.03241400389},"targetPosition":{"x":27049.134741158807,"y":33706.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"snapshots":{"type":"Snapshots","name":"New Snapshots","config":"{ \n\"strategy\": true,\n\"position\": true\n}","project":"Superalgos","id":"0d7f9593-41e8-4a8e-9b97-434e99be1f37","savedPayload":{"position":{"x":27237.93085847376,"y":33939.784491936465},"targetPosition":{"x":27049.134741158807,"y":33706.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"heartbeats":{"type":"Heartbeats","name":"New Heartbeats","config":"{ \n\"date\": true,\n\"candleIndex\": false\n}","project":"Superalgos","id":"9ae6cd9d-9bc2-4bfb-8316-5a9ebd3b8bfc","savedPayload":{"position":{"x":27156.6451260224,"y":33986.71483144854},"targetPosition":{"x":27049.134741158807,"y":33706.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedParameters":{"type":"User Defined Parameters","name":"New User Defined Parameters","config":"{ \n\"param1Name\": \"A text string value example\",\n\"param2Name\": 0\n}","project":"Superalgos","id":"410780dd-54f4-48be-b640-bd1ff903f9b9","savedPayload":{"position":{"x":27064.83552803169,"y":34006.22956392575},"targetPosition":{"x":27049.134741158807,"y":33706.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4aec4635-6478-4580-92f6-be900ffb679c","savedPayload":{"position":{"x":27049.134741158807,"y":33706.640703499375},"targetPosition":{"x":26759.356993272086,"y":33628.99498996862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingSystemReference":{"type":"Trading System Reference","name":"BB Breakdown","project":"Superalgos","id":"545fb7fd-f9b7-4c75-af31-3c19ebe1b064","savedPayload":{"position":{"x":26909.356993272086,"y":33888.80261110395},"targetPosition":{"x":26759.356993272086,"y":33628.99498996862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading System","name":"BB Breakdown","id":"77e18ff3-e29b-4e35-ba66-e34af262d35d"}}},"tradingEngineReference":{"type":"Trading Engine Reference","name":"Low-Frequency","project":"Superalgos","id":"2ae14446-f028-4097-853a-f7c879bd6e56","savedPayload":{"position":{"x":26681.71127974133,"y":33918.77273785534},"targetPosition":{"x":26759.356993272086,"y":33628.99498996862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading Engine","name":"Low-Frequency","id":"eb20f622-71bf-4479-a574-d2320e1d4bd1"}}},"id":"f1140773-85dc-4bd4-92d0-0b64ede59682","savedPayload":{"position":{"x":26759.356993272086,"y":33628.99498996862},"targetPosition":{"x":26609.356993272086,"y":33369.187368833285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4ba550b-5068-4c66-9002-b95814a9989d","savedPayload":{"position":{"x":26609.356993272086,"y":33369.187368833285},"targetPosition":{"x":26459.356993272086,"y":33109.37974769795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Trading","id":"a8c8d761-96e5-4a86-9285-6c3881d61442"}}}],"id":"96270465-9b1c-4d79-be3b-c162d704590e","savedPayload":{"position":{"x":26459.356993272086,"y":33109.37974769795},"targetPosition":{"x":26309.356993272086,"y":32849.57212656262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fed4026f-fbbf-4282-b506-360301f30c17","savedPayload":{"position":{"x":26309.356993272086,"y":32849.57212656262},"targetPosition":{"x":26159.356993272086,"y":32589.76450542729},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7947052b-08e7-4840-ba36-e0aa7af971fd","savedPayload":{"position":{"x":26159.356993272086,"y":32589.76450542729},"targetPosition":{"x":26009.356993272086,"y":32329.956884291958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d6727597-44b3-40c7-b856-26d404f59e87","savedPayload":{"position":{"x":26009.356993272086,"y":32329.956884291958},"targetPosition":{"x":25859.356993272086,"y":32070.149263156625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"e3d70f2e-b089-40fc-a888-fcb94c500d9f","savedPayload":{"position":{"x":25859.356993272086,"y":32070.149263156625},"targetPosition":{"x":25709.356993272086,"y":31810.341642021293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"819cdefc-b84b-450e-8082-992fabd5d081","savedPayload":{"position":{"x":25709.356993272086,"y":31810.341642021293},"targetPosition":{"x":25559.356993272086,"y":31550.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"34f4d603-5694-4996-8f6a-573c76ea6090","savedPayload":{"position":{"x":25559.356993272086,"y":31550.53402088596},"targetPosition":{"x":25409.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"ef4b033a-aeb2-4461-bc25-019a834c0b23"}}}],"id":"65a40d20-837c-4652-8356-f8054b4e1346","savedPayload":{"position":{"x":25409.356993272086,"y":31290.726399750627},"targetPosition":{"x":25259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"u"}}},"dataStorage":{"type":"Data Storage","name":"New Data Storage","project":"Superalgos","dataMinesData":{"type":"Data Mines Data","name":"New Data Mines Data","project":"Superalgos","projectDataProducts":[{"type":"Project Data Products","name":"Superalgos","project":"Superalgos","exchangeDataProducts":[{"type":"Exchange Data Products","name":"Binance","project":"Superalgos","marketDataProducts":[{"type":"Market Data Products","name":"Binance BTC/USDT","project":"Superalgos","dataProducts":[],"dataMineProducts":[{"type":"Data Mine Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Exchange Raw Data","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"","project":"Superalgos","id":"2265ee45-551f-4774-bc2b-e76e49ebccff","savedPayload":{"position":{"x":25093.002706802843,"y":31504.504147637348},"targetPosition":{"x":25189.002706802843,"y":31412.504147637348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"38dbb942-a15b-450b-a867-02a94030965f"}}},{"type":"Data Product","name":"Candles","project":"Superalgos","id":"550f9c80-f44e-4971-af93-52419f630069","savedPayload":{"position":{"x":25188.002706802843,"y":31402.504147637348},"targetPosition":{"x":25189.002706802843,"y":31412.504147637348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles","id":"2443883b-6959-42a3-ae3b-ef3102ffcdcc"}}},{"type":"Data Product","name":"Volumes","project":"Superalgos","id":"a72c2f0e-5203-44c8-9dce-072e5221eafd","savedPayload":{"position":{"x":25230.002706802843,"y":31349.504147637348},"targetPosition":{"x":25189.002706802843,"y":31412.504147637348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"3a43c6f3-bac0-404e-865f-822eb48c8660"}}}],"dataProductFolders":[],"id":"cb041225-4f55-4cd5-8eae-1dda5d06a8aa","savedPayload":{"position":{"x":25131.1800162457,"y":32984.40006451947},"targetPosition":{"x":24913.567704942016,"y":32777.89369181134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Products","name":"Candles Volumes","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Candles","project":"Superalgos","id":"2a290f06-5f0b-4f57-93d1-7579fa589aa0","savedPayload":{"position":{"x":25163.072777088713,"y":33300.99195376053},"targetPosition":{"x":24968.23836258966,"y":33072.87016408052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","project":"Superalgos","id":"c789572d-ff73-4664-b2a2-8b84a73dccb1","savedPayload":{"position":{"x":24868.096304819526,"y":33355.662611408174},"targetPosition":{"x":24968.23836258966,"y":33072.87016408052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}}],"dataProductFolders":[],"id":"9167735f-7bc4-41ee-bd54-ad01023d2ca8","savedPayload":{"position":{"x":24968.23836258966,"y":33072.87016408052},"targetPosition":{"x":24913.567704942016,"y":32777.89369181134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Products","name":"Bollinger Bands","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Bollinger Bands","project":"Superalgos","id":"a213e62e-cf80-46e7-8bcf-424d45b8e571","savedPayload":{"position":{"x":24807.95210461788,"y":33347.744477236236},"targetPosition":{"x":24784.414375899527,"y":33048.6692771163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","project":"Superalgos","id":"cdc4ac34-0ec2-4711-9c97-954e42c72d1b","savedPayload":{"position":{"x":24537.17651931292,"y":33218.59114819375},"targetPosition":{"x":24784.414375899527,"y":33048.6692771163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}}],"dataProductFolders":[],"id":"e209f637-e914-492b-98b7-d1aafdfc160d","savedPayload":{"position":{"x":24784.414375899527,"y":33048.6692771163},"targetPosition":{"x":24913.567704942016,"y":32777.89369181134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Products","name":"Bollinger Channels","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Bollinger Channels Objects","project":"Superalgos","id":"aef85abd-8069-4aed-8436-8e67203e5624","savedPayload":{"position":{"x":24610.764713477412,"y":33218.474778301366},"targetPosition":{"x":24649.922571143426,"y":32921.04131988922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Channels","project":"Superalgos","id":"2fdc23da-996c-4429-8beb-3d9db46e2510","savedPayload":{"position":{"x":24443.4161984353,"y":33138.65363119291},"targetPosition":{"x":24649.922571143426,"y":32921.04131988922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","project":"Superalgos","id":"cbf3145e-ab44-4b47-92a5-8d4a7f81802a","savedPayload":{"position":{"x":24354.94609887424,"y":32975.71197753686},"targetPosition":{"x":24649.922571143426,"y":32921.04131988922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","project":"Superalgos","id":"144f7f8b-36b1-4e46-b3a1-3ea6e178d452","savedPayload":{"position":{"x":24379.14698583847,"y":32791.887990846735},"targetPosition":{"x":24649.922571143426,"y":32921.04131988922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}}],"dataProductFolders":[],"id":"b06ade30-a646-45b6-817a-c2dc15edcc53","savedPayload":{"position":{"x":24649.922571143426,"y":32921.04131988922},"targetPosition":{"x":24913.567704942016,"y":32777.89369181134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0cda2799-71dd-4378-9239-4d9429f84a18","savedPayload":{"position":{"x":24913.567704942016,"y":32777.89369181134},"targetPosition":{"x":24952.72556260803,"y":32480.460233399197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}}],"id":"2067ec6a-b245-4d45-aa8f-ee93e7809578","savedPayload":{"position":{"x":24952.72556260803,"y":32480.460233399197},"targetPosition":{"x":24991.883420274044,"y":32183.026774987055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"c16f98b1-3d58-441b-8eaf-a35d0370ee22","savedPayload":{"position":{"x":24991.883420274044,"y":32183.026774987055},"targetPosition":{"x":25031.041277940058,"y":31885.593316574912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"3cc77f8b-5e54-4f69-acf9-e78d06b6b276","savedPayload":{"position":{"x":25031.041277940058,"y":31885.593316574912},"targetPosition":{"x":25070.19913560607,"y":31588.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"ef4b033a-aeb2-4461-bc25-019a834c0b23"}}}],"id":"32e7c122-fa5a-4d00-9d71-d54e890e32de","savedPayload":{"position":{"x":25070.19913560607,"y":31588.15985816277},"targetPosition":{"x":25109.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingMinesData":{"type":"Trading Mines Data","name":"New Trading Mines Data","project":"Superalgos","projectTradingProducts":[{"type":"Project Trading Products","name":"Superalgos","project":"Superalgos","exchangeTradingProducts":[{"type":"Exchange Trading Products","name":"Binance","project":"Superalgos","marketTradingProducts":[{"type":"Market Trading Products","name":"Binance BTC/USDT","project":"Superalgos","tradingSessionReferences":[{"type":"Trading Session Reference","name":"BB Breakdown Backtesting Session","project":"Superalgos","dataProducts":[],"tradingMineProducts":[{"type":"Trading Mine Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Low Frequency","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Trading Engine","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Episode","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episode Counters","project":"Superalgos","id":"cef828df-01c6-4407-9fa7-cf17fd49dc91","savedPayload":{"position":{"x":25132.356993272086,"y":31542.53402088596},"targetPosition":{"x":25089.356993272086,"y":31485.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Counters","id":"d81c6019-864e-42f5-94ba-2f249b865f85"}}},{"type":"Data Product","name":"Episode Statistics","project":"Superalgos","id":"2bc37bb8-7c27-4d1c-9599-cf0f34dc444e","savedPayload":{"position":{"x":25153.356993272086,"y":31509.53402088596},"targetPosition":{"x":25089.356993272086,"y":31485.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Statistics","id":"400c7f49-37da-41fb-b83d-879960aa74ff"}}},{"type":"Data Product","name":"Episode Candle","project":"Superalgos","id":"02deeacc-df97-426a-bf87-ff766baac6c1","savedPayload":{"position":{"x":25015.356993272086,"y":31575.53402088596},"targetPosition":{"x":25089.356993272086,"y":31485.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Candle","id":"b9a58113-cf27-4d57-9810-87a2cc158804"}}},{"type":"Data Product","name":"Episode Balances","project":"Superalgos","id":"11523798-0639-4837-bef6-1e501f2f4d3d","savedPayload":{"position":{"x":25179.356993272086,"y":31428.53402088596},"targetPosition":{"x":25089.356993272086,"y":31485.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Balances","id":"a9a53d82-133b-4417-b639-f9a56d338233"}}},{"type":"Data Product","name":"Distance To Event","project":"Superalgos","id":"d066d2a4-1082-4ab7-bcb5-8c09555e0489","savedPayload":{"position":{"x":25057.356993272086,"y":31580.53402088596},"targetPosition":{"x":25089.356993272086,"y":31485.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Distance To Event","id":"8ea88d6c-7d7f-4152-b781-ea108df52c63"}}},{"type":"Data Product","name":"Episode Base Asset","project":"Superalgos","id":"2d338ab2-1e4c-4afe-ab24-67d9f31b50fd","savedPayload":{"position":{"x":25121.356993272086,"y":31520.53402088596},"targetPosition":{"x":25089.356993272086,"y":31485.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Base Asset","id":"234969ff-eab1-4d59-b6fa-79433c9a20e9"}}},{"type":"Data Product","name":"Episode Quoted Asset","project":"Superalgos","id":"ee1dbbb3-cf97-4e92-a5b4-8700ae047a54","savedPayload":{"position":{"x":25007.356993272086,"y":31549.53402088596},"targetPosition":{"x":25089.356993272086,"y":31485.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Quoted Asset","id":"ae525e31-d6a8-47d2-9021-3f2ddb9615b0"}}},{"type":"Data Product","name":"Current Episode","project":"Superalgos","id":"d32a2b30-d8b8-4e06-ac41-82de8e22eb13","savedPayload":{"position":{"x":25076.356993272086,"y":31531.53402088596},"targetPosition":{"x":25089.356993272086,"y":31485.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Episode","id":"b8da0132-ba28-46ec-aa54-eb9eaac56ce7"}}}],"dataProductFolders":[],"id":"2b88d002-8f7a-436a-b0db-f2097db39400","savedPayload":{"position":{"x":25089.356993272086,"y":31485.53402088596},"targetPosition":{"x":25014.356993272086,"y":31560.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Strategy","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Strategy","project":"Superalgos","id":"75795607-4071-41da-8d46-da5152f424e8","savedPayload":{"position":{"x":25101.356993272086,"y":31694.53402088596},"targetPosition":{"x":25097.356993272086,"y":31630.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Strategy","id":"895d8a04-ef45-41a7-909a-ba31013ffb90"}}},{"type":"Data Product","name":"Last Strategy","project":"Superalgos","id":"15dbd93b-0d60-4eff-a793-15ed2e05dbbc","savedPayload":{"position":{"x":25083.356993272086,"y":31703.53402088596},"targetPosition":{"x":25097.356993272086,"y":31630.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Strategy","id":"0625f524-2b97-4b4d-8a90-590ffc62ecd3"}}}],"dataProductFolders":[],"id":"0c6ac11e-6092-4ff5-b122-e437d8e5bd75","savedPayload":{"position":{"x":25097.356993272086,"y":31630.53402088596},"targetPosition":{"x":25014.356993272086,"y":31560.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Position","project":"Superalgos","id":"75bb0a5f-3441-4f9a-9af9-d5665a001af1","savedPayload":{"position":{"x":24924.356993272086,"y":31488.53402088596},"targetPosition":{"x":24920.356993272086,"y":31518.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Position","id":"832ecada-8da3-4ba6-b6e9-be34dd5f7ce9"}}},{"type":"Data Product","name":"Last Position","project":"Superalgos","id":"451d1bfc-cc2f-49cd-a283-e0028e6612c7","savedPayload":{"position":{"x":24999.356993272086,"y":31479.53402088596},"targetPosition":{"x":24920.356993272086,"y":31518.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Position","id":"477cd6d5-862a-44d0-9313-786a4e63a602"}}},{"type":"Data Product","name":"Stop Loss","project":"Superalgos","id":"3625bc4a-bfc3-4de8-b0e3-3313fdbcf7e3","savedPayload":{"position":{"x":24861.356993272086,"y":31511.53402088596},"targetPosition":{"x":24920.356993272086,"y":31518.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Stop Loss","id":"a1c047bd-e95e-469a-aac9-3d45c4157440"}}},{"type":"Data Product","name":"Take Profit","project":"Superalgos","id":"8ae185fe-147e-4377-9e73-f9468376ca73","savedPayload":{"position":{"x":24962.356993272086,"y":31500.53402088596},"targetPosition":{"x":24920.356993272086,"y":31518.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Take Profit","id":"11513bf1-0f23-4d79-b760-83ccebc4e1c5"}}}],"dataProductFolders":[],"id":"c2d21601-2c89-42fa-b93c-02b4fac07a03","savedPayload":{"position":{"x":24920.356993272086,"y":31518.53402088596},"targetPosition":{"x":25014.356993272086,"y":31560.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Open Stage","project":"Superalgos","id":"5c8e399d-8a15-4dd0-aa03-196111661c4e","savedPayload":{"position":{"x":25034.356993272086,"y":31598.53402088596},"targetPosition":{"x":25065.356993272086,"y":31621.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stage","id":"73c3c041-ba2a-4798-a362-a453409b518a"}}},{"type":"Data Product","name":"Close Stage","project":"Superalgos","id":"c5e583ec-17b6-4b81-ba73-052db231b245","savedPayload":{"position":{"x":25086.356993272086,"y":31681.53402088596},"targetPosition":{"x":25065.356993272086,"y":31621.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stage","id":"2bb9bb41-1ff5-4f83-aa5b-bfc4c9f06a9a"}}},{"type":"Data Product","name":"Trigger Stage","project":"Superalgos","id":"9df61698-db66-4c28-86f4-a6f2b49482ae","savedPayload":{"position":{"x":25002.356993272086,"y":31715.53402088596},"targetPosition":{"x":25065.356993272086,"y":31621.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stage","id":"b6cff826-9056-4fbd-8eca-cbd6cceec962"}}},{"type":"Data Product","name":"Manage Stage","project":"Superalgos","id":"674f4993-3b21-42b0-8490-2e18896c65f8","savedPayload":{"position":{"x":24976.356993272086,"y":31603.53402088596},"targetPosition":{"x":25065.356993272086,"y":31621.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stage","id":"bd691611-e7a6-49a8-b07d-c15360b55e40"}}}],"dataProductFolders":[],"id":"c4860c3d-a0f0-4747-9174-c7fbbb29c096","savedPayload":{"position":{"x":25065.356993272086,"y":31621.53402088596},"targetPosition":{"x":25014.356993272086,"y":31560.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"ccc95dde-7998-4093-b688-8a537252309c","savedPayload":{"position":{"x":25077.356993272086,"y":31573.53402088596},"targetPosition":{"x":24992.356993272086,"y":31527.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"7c769317-2639-4460-8b88-9dc92f7b0585"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"7cd654af-5a5c-42f6-9b10-f246c3295ae0","savedPayload":{"position":{"x":25024.356993272086,"y":31618.53402088596},"targetPosition":{"x":24992.356993272086,"y":31527.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"9cc7645a-54fe-40d6-9896-9278167011fb"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"cbb0fe95-55e5-4909-b66d-612e6fb15f8e","savedPayload":{"position":{"x":25032.356993272086,"y":31588.53402088596},"targetPosition":{"x":24992.356993272086,"y":31527.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"4c827ee0-a29b-4b65-8438-03e2ea98b410"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"a2647cfd-00eb-40c8-8d75-73d63dac5a73","savedPayload":{"position":{"x":25032.356993272086,"y":31447.53402088596},"targetPosition":{"x":24992.356993272086,"y":31527.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2c753cd8-36d8-466c-bd80-1ebfa8e314dc"}}},{"type":"Data Product","name":"Last Market Order","project":"Superalgos","id":"5319405c-c588-4000-aacf-0250fec08afd","savedPayload":{"position":{"x":24946.356993272086,"y":31617.53402088596},"targetPosition":{"x":24992.356993272086,"y":31527.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Market Order","id":"6df1ac87-92d5-4788-b0bc-f3543b283ef0"}}},{"type":"Data Product","name":"Last Limit Order","project":"Superalgos","id":"366c345a-26a0-438d-b39e-e5270cd06c22","savedPayload":{"position":{"x":24908.356993272086,"y":31500.53402088596},"targetPosition":{"x":24992.356993272086,"y":31527.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Limit Order","id":"c24ec6a1-e937-4d20-93eb-4faf2a0becc3"}}}],"dataProductFolders":[],"id":"0848849f-ae3b-4f1d-b2e5-4f1eb3a28e9f","savedPayload":{"position":{"x":24992.356993272086,"y":31527.53402088596},"targetPosition":{"x":25014.356993272086,"y":31560.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"788e3972-6feb-40ae-8727-6ea6f9566f7b","savedPayload":{"position":{"x":25014.356993272086,"y":31560.53402088596},"targetPosition":{"x":25007.356993272086,"y":31552.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Trading System","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trading System Errors","project":"Superalgos","id":"222da1c1-666b-4c9d-b199-e3fe0b985ab7","savedPayload":{"position":{"x":25011.356993272086,"y":31451.53402088596},"targetPosition":{"x":25058.356993272086,"y":31543.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Errors","id":"1d9c570d-77c7-40ac-a61e-c5a57a411de8"}}},{"type":"Data Product","name":"Trading System Highlights","project":"Superalgos","id":"4801de44-7391-4927-b748-9a4e5817e0fd","savedPayload":{"position":{"x":24998.356993272086,"y":31493.53402088596},"targetPosition":{"x":25058.356993272086,"y":31543.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Highlights","id":"319f660a-78be-4cf4-8052-877837cad806"}}},{"type":"Data Product","name":"Trading System Values","project":"Superalgos","id":"a9bdf073-c8ca-4a54-884e-d5daaab27ecd","savedPayload":{"position":{"x":25146.356993272086,"y":31528.53402088596},"targetPosition":{"x":25058.356993272086,"y":31543.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Values","id":"c90c009b-588d-45d4-aff1-05e375181dfa"}}},{"type":"Data Product","name":"Trading System Status","project":"Superalgos","id":"f9624574-2c30-47c5-9602-78110959a8e8","savedPayload":{"position":{"x":25010.356993272086,"y":31577.53402088596},"targetPosition":{"x":25058.356993272086,"y":31543.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Status","id":"eed48c80-35c5-49fa-b12d-18e7280ffb8f"}}},{"type":"Data Product","name":"Trading System Progress","project":"Superalgos","id":"e31d3359-1ce1-47c9-abd4-b8c8b0a09b1b","savedPayload":{"position":{"x":25126.356993272086,"y":31641.53402088596},"targetPosition":{"x":25058.356993272086,"y":31543.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Progress","id":"04c8606b-5e59-4e7d-b3ac-387bfffcd300"}}},{"type":"Data Product","name":"Trading System Running","project":"Superalgos","id":"2291e334-3608-48e5-a93a-1c48cc08fb2e","savedPayload":{"position":{"x":25047.356993272086,"y":31604.53402088596},"targetPosition":{"x":25058.356993272086,"y":31543.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Running","id":"17236f59-6ef2-4cc3-913c-1ff6db052236"}}},{"type":"Data Product","name":"Trading System Announcements","project":"Superalgos","id":"911f973d-6f74-49fd-aec9-47c2b56c4a5a","savedPayload":{"position":{"x":25144.356993272086,"y":31557.53402088596},"targetPosition":{"x":25058.356993272086,"y":31543.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Announcements","id":"4a6f828a-9671-431e-8257-fc920943581e"}}},{"type":"Data Product","name":"Trading System Warnings","project":"Superalgos","id":"27a1feb4-ec9e-4f3a-aec7-508de46470d1","savedPayload":{"position":{"x":25094.356993272086,"y":31606.53402088596},"targetPosition":{"x":25058.356993272086,"y":31543.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Warnings","id":"34310596-466a-4e9a-a5a2-256b0fe3e339"}}},{"type":"Data Product","name":"Trading System Infos","project":"Superalgos","id":"e2ad1c02-06f9-4572-9e18-840969838be3","savedPayload":{"position":{"x":24975.356993272086,"y":31450.53402088596},"targetPosition":{"x":25058.356993272086,"y":31543.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Infos","id":"020ad519-0fc6-4f2f-9f26-b2c7de118fb8"}}}],"dataProductFolders":[],"id":"ee2232b9-87bb-4fdd-8a7e-3ccac18005b0","savedPayload":{"position":{"x":25058.356993272086,"y":31543.53402088596},"targetPosition":{"x":25007.356993272086,"y":31552.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Simulation Objects","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episodes","project":"Superalgos","id":"c5d430c4-b651-44fa-ac66-61b909c1a693","savedPayload":{"position":{"x":25094.356993272086,"y":31596.53402088596},"targetPosition":{"x":25027.356993272086,"y":31507.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episodes","id":"aeec080e-8caf-4976-8187-ba4e725b73b0"}}},{"type":"Data Product","name":"Strategies","project":"Superalgos","id":"7e14ad62-ecec-410b-9863-2fb923bcf0bc","savedPayload":{"position":{"x":24986.356993272086,"y":31410.53402088596},"targetPosition":{"x":25027.356993272086,"y":31507.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"21db6fce-8450-4b07-9015-d81a339fd030"}}}],"dataProductFolders":[{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"e83e89c2-f57e-47e5-96c7-5b5c660cdef0","savedPayload":{"position":{"x":24939.356993272086,"y":31331.53402088596},"targetPosition":{"x":25034.356993272086,"y":31413.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"db256083-9aa2-48e1-8fd6-3425a5085302"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"9c2155e6-b688-4f18-932d-ee9e70be5158","savedPayload":{"position":{"x":25015.356993272086,"y":31319.53402088596},"targetPosition":{"x":25034.356993272086,"y":31413.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"1958f79b-5c6c-4874-9154-98c314822ed7"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"7bfeecb1-c28a-455a-91f1-d88834d732b6","savedPayload":{"position":{"x":24996.356993272086,"y":31418.53402088596},"targetPosition":{"x":25034.356993272086,"y":31413.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"5deceb32-c7ab-4560-818a-0f0b9d6632fb"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"923f8e15-9a79-41d6-957c-42360847456d","savedPayload":{"position":{"x":25017.356993272086,"y":31510.53402088596},"targetPosition":{"x":25034.356993272086,"y":31413.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2a1d405b-2fbe-4ed4-a76a-d2c7be59d20e"}}}],"dataProductFolders":[],"id":"550ac4ad-c2a7-4b44-a100-bfed660b80ab","savedPayload":{"position":{"x":25034.356993272086,"y":31413.53402088596},"targetPosition":{"x":25027.356993272086,"y":31507.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trigger Stages","project":"Superalgos","id":"923d6695-c25d-42bd-aa9c-4fc793207e7c","savedPayload":{"position":{"x":25019.356993272086,"y":31443.53402088596},"targetPosition":{"x":25044.356993272086,"y":31501.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stages","id":"18cc2e79-7e57-418c-b635-6c68fc11d681"}}},{"type":"Data Product","name":"Open Stages","project":"Superalgos","id":"7947d593-883c-47c8-b7fa-f02296ba53ef","savedPayload":{"position":{"x":25138.356993272086,"y":31501.53402088596},"targetPosition":{"x":25044.356993272086,"y":31501.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stages","id":"d5938c00-0849-466d-ae14-4ea91b571678"}}},{"type":"Data Product","name":"Manage Stages","project":"Superalgos","id":"2ff568f3-d4bb-4ab8-b373-f98b98dcde72","savedPayload":{"position":{"x":25118.356993272086,"y":31417.53402088596},"targetPosition":{"x":25044.356993272086,"y":31501.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stages","id":"8fab86b3-db8d-4113-8418-1d256bd98cf2"}}},{"type":"Data Product","name":"Close Stages","project":"Superalgos","id":"b0af2801-1ab3-4492-8468-dea73b3602ff","savedPayload":{"position":{"x":25099.356993272086,"y":31529.53402088596},"targetPosition":{"x":25044.356993272086,"y":31501.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stages","id":"ba911e61-f951-48cd-b547-9a70aa211100"}}}],"dataProductFolders":[],"id":"12ee02ca-262e-47e5-bd7a-b859914c8af1","savedPayload":{"position":{"x":25044.356993272086,"y":31501.53402088596},"targetPosition":{"x":25027.356993272086,"y":31507.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Positions","project":"Superalgos","id":"14dba295-5795-4ed3-bdc5-ccf11a8028c5","savedPayload":{"position":{"x":25070.356993272086,"y":31626.53402088596},"targetPosition":{"x":25101.356993272086,"y":31582.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Positions","id":"1eabba24-cbd4-4cbf-95e0-c5135349d41d"}}},{"type":"Data Product","name":"Position Base Asset","project":"Superalgos","id":"19cabd46-a4dc-47a4-9a4a-bd5f264836d4","savedPayload":{"position":{"x":25030.356993272086,"y":31607.53402088596},"targetPosition":{"x":25101.356993272086,"y":31582.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Base Asset","id":"b371b039-f6c8-4f60-84cb-52f55c96c84d"}}},{"type":"Data Product","name":"Position Quoted Asset","project":"Superalgos","id":"09d9b2b3-afd2-4b7d-9553-b254d6c8738f","savedPayload":{"position":{"x":25036.356993272086,"y":31536.53402088596},"targetPosition":{"x":25101.356993272086,"y":31582.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Quoted Asset","id":"a376f02b-a5d2-4079-b5cd-ab7dc894b909"}}},{"type":"Data Product","name":"Stop Loss","project":"Superalgos","id":"f31415b0-baa4-44fb-a018-8e1a26f2dae0","savedPayload":{"position":{"x":25069.356993272086,"y":31499.53402088596},"targetPosition":{"x":25101.356993272086,"y":31582.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Stop Loss","id":"c18bdc82-216a-4b1d-8850-5c3c9dc2000b"}}},{"type":"Data Product","name":"Take Profit","project":"Superalgos","id":"140b3155-0cd9-4bde-b012-24f81bf97970","savedPayload":{"position":{"x":25050.356993272086,"y":31632.53402088596},"targetPosition":{"x":25101.356993272086,"y":31582.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Take Profit","id":"2542c7d0-fa26-4b52-a59a-a3630e52eb89"}}}],"dataProductFolders":[],"id":"87d13c7d-abe9-450e-bfbc-198877803791","savedPayload":{"position":{"x":25101.356993272086,"y":31582.53402088596},"targetPosition":{"x":25027.356993272086,"y":31507.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"db8f35bb-fe77-499d-b74b-3844d2b424c1","savedPayload":{"position":{"x":25027.356993272086,"y":31507.53402088596},"targetPosition":{"x":25007.356993272086,"y":31552.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3b10b71e-f87f-44d5-8eb3-d2e34cca6aa4","savedPayload":{"position":{"x":25007.356993272086,"y":31552.53402088596},"targetPosition":{"x":25026.356993272086,"y":31497.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"caa36a7c-69b6-4863-a313-003d5af2d126","savedPayload":{"position":{"x":25026.356993272086,"y":31497.53402088596},"targetPosition":{"x":25025.356993272086,"y":31470.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"4e65f031-039a-4d52-af79-fbcd1bd101c9","savedPayload":{"position":{"x":24509.356993272086,"y":32629.956884291958},"targetPosition":{"x":24509.356993272086,"y":32329.956884291958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"BB Breakdown","id":"d23a592c-596c-475f-a6c4-00a63d05cf92"}}},{"type":"Trading Session Reference","name":"BB Breakdown 2 Backtesting Session","project":"Superalgos","dataProducts":[],"tradingMineProducts":[{"type":"Trading Mine Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Low Frequency","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Trading Engine","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Episode","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episode Counters","project":"Superalgos","id":"60924390-790b-4bf7-adc7-b72bc77d9e16","savedPayload":{"position":{"x":24535.9107304977,"y":31390.35783203362},"targetPosition":{"x":24473.9107304977,"y":31396.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Counters","id":"d81c6019-864e-42f5-94ba-2f249b865f85"}}},{"type":"Data Product","name":"Episode Statistics","project":"Superalgos","id":"ed1de592-f7b9-4c25-8fbb-ee321dd66825","savedPayload":{"position":{"x":24530.9107304977,"y":31409.35783203362},"targetPosition":{"x":24473.9107304977,"y":31396.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Statistics","id":"400c7f49-37da-41fb-b83d-879960aa74ff"}}},{"type":"Data Product","name":"Episode Candle","project":"Superalgos","id":"9f1e1582-6d1e-44ac-8606-021c0d0ecbec","savedPayload":{"position":{"x":24412.9107304977,"y":31310.35783203362},"targetPosition":{"x":24473.9107304977,"y":31396.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Candle","id":"b9a58113-cf27-4d57-9810-87a2cc158804"}}},{"type":"Data Product","name":"Episode Balances","project":"Superalgos","id":"c7197474-250f-4f35-b56f-e9b8d5a90b94","savedPayload":{"position":{"x":24378.9107304977,"y":31469.35783203362},"targetPosition":{"x":24473.9107304977,"y":31396.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Balances","id":"a9a53d82-133b-4417-b639-f9a56d338233"}}},{"type":"Data Product","name":"Distance To Event","project":"Superalgos","id":"6e485425-6dfd-4c38-aa2d-28aca024dd1b","savedPayload":{"position":{"x":24393.9107304977,"y":31435.35783203362},"targetPosition":{"x":24473.9107304977,"y":31396.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Distance To Event","id":"8ea88d6c-7d7f-4152-b781-ea108df52c63"}}},{"type":"Data Product","name":"Episode Base Asset","project":"Superalgos","id":"73570334-f5cc-4b17-9e75-ac44e2f8fec1","savedPayload":{"position":{"x":24444.9107304977,"y":31393.35783203362},"targetPosition":{"x":24473.9107304977,"y":31396.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Base Asset","id":"234969ff-eab1-4d59-b6fa-79433c9a20e9"}}},{"type":"Data Product","name":"Episode Quoted Asset","project":"Superalgos","id":"ee9028a0-c321-4a22-82a0-7ed2527162eb","savedPayload":{"position":{"x":24530.9107304977,"y":31449.35783203362},"targetPosition":{"x":24473.9107304977,"y":31396.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Quoted Asset","id":"ae525e31-d6a8-47d2-9021-3f2ddb9615b0"}}},{"type":"Data Product","name":"Current Episode","project":"Superalgos","id":"eef16b61-006f-45f9-a77c-914ad21f9a43","savedPayload":{"position":{"x":24503.9107304977,"y":31339.35783203362},"targetPosition":{"x":24473.9107304977,"y":31396.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Episode","id":"b8da0132-ba28-46ec-aa54-eb9eaac56ce7"}}}],"dataProductFolders":[],"id":"41b043c1-d360-4894-8cd9-b4001529672c","savedPayload":{"position":{"x":24473.9107304977,"y":31396.35783203362},"targetPosition":{"x":24560.9107304977,"y":31349.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Strategy","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Strategy","project":"Superalgos","id":"23ba93fd-b3b7-432d-a50a-cafcb4cc293b","savedPayload":{"position":{"x":24626.9107304977,"y":31307.35783203362},"targetPosition":{"x":24570.9107304977,"y":31270.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Strategy","id":"895d8a04-ef45-41a7-909a-ba31013ffb90"}}},{"type":"Data Product","name":"Last Strategy","project":"Superalgos","id":"2c1c952c-525a-417f-8dff-33c31b9a625c","savedPayload":{"position":{"x":24640.9107304977,"y":31316.35783203362},"targetPosition":{"x":24570.9107304977,"y":31270.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Strategy","id":"0625f524-2b97-4b4d-8a90-590ffc62ecd3"}}}],"dataProductFolders":[],"id":"a6713bd3-457b-4820-bb01-33cfb42ffa03","savedPayload":{"position":{"x":24570.9107304977,"y":31270.35783203362},"targetPosition":{"x":24560.9107304977,"y":31349.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Position","project":"Superalgos","id":"78d634df-0591-48c7-96d2-d21b978937c3","savedPayload":{"position":{"x":24537.9107304977,"y":31435.35783203362},"targetPosition":{"x":24474.9107304977,"y":31373.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Position","id":"832ecada-8da3-4ba6-b6e9-be34dd5f7ce9"}}},{"type":"Data Product","name":"Last Position","project":"Superalgos","id":"ea278b46-43e2-4432-8e4e-6337a8a4add5","savedPayload":{"position":{"x":24553.9107304977,"y":31434.35783203362},"targetPosition":{"x":24474.9107304977,"y":31373.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Position","id":"477cd6d5-862a-44d0-9313-786a4e63a602"}}},{"type":"Data Product","name":"Stop Loss","project":"Superalgos","id":"5acabff8-8f1b-41c3-ab67-01c4126b23a2","savedPayload":{"position":{"x":24448.9107304977,"y":31400.35783203362},"targetPosition":{"x":24474.9107304977,"y":31373.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Stop Loss","id":"a1c047bd-e95e-469a-aac9-3d45c4157440"}}},{"type":"Data Product","name":"Take Profit","project":"Superalgos","id":"9fa7056e-9d71-48bb-9a6b-33a28c2dfd69","savedPayload":{"position":{"x":24396.9107304977,"y":31407.35783203362},"targetPosition":{"x":24474.9107304977,"y":31373.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Take Profit","id":"11513bf1-0f23-4d79-b760-83ccebc4e1c5"}}}],"dataProductFolders":[],"id":"de8dd87a-a89f-404d-a821-350a2114d6f4","savedPayload":{"position":{"x":24474.9107304977,"y":31373.35783203362},"targetPosition":{"x":24560.9107304977,"y":31349.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Open Stage","project":"Superalgos","id":"bf681252-1213-40e6-b0f0-ae24d37b7840","savedPayload":{"position":{"x":24472.9107304977,"y":31336.35783203362},"targetPosition":{"x":24558.9107304977,"y":31352.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stage","id":"73c3c041-ba2a-4798-a362-a453409b518a"}}},{"type":"Data Product","name":"Close Stage","project":"Superalgos","id":"e57e80d4-bfb4-45fa-ba46-8a8ddb6381ea","savedPayload":{"position":{"x":24491.9107304977,"y":31325.35783203362},"targetPosition":{"x":24558.9107304977,"y":31352.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stage","id":"2bb9bb41-1ff5-4f83-aa5b-bfc4c9f06a9a"}}},{"type":"Data Product","name":"Trigger Stage","project":"Superalgos","id":"a750a17b-6e62-446d-9d2a-7d2ae2c9fc39","savedPayload":{"position":{"x":24599.9107304977,"y":31393.35783203362},"targetPosition":{"x":24558.9107304977,"y":31352.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stage","id":"b6cff826-9056-4fbd-8eca-cbd6cceec962"}}},{"type":"Data Product","name":"Manage Stage","project":"Superalgos","id":"3c9cf74d-ab63-4391-ad0c-58fd7cb4101e","savedPayload":{"position":{"x":24650.9107304977,"y":31372.35783203362},"targetPosition":{"x":24558.9107304977,"y":31352.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stage","id":"bd691611-e7a6-49a8-b07d-c15360b55e40"}}}],"dataProductFolders":[],"id":"2daf737e-964c-4aa0-87da-68adca65d939","savedPayload":{"position":{"x":24558.9107304977,"y":31352.35783203362},"targetPosition":{"x":24560.9107304977,"y":31349.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"5b8ff9e4-9192-4c2f-8e25-18958434fc23","savedPayload":{"position":{"x":24685.9107304977,"y":31320.35783203362},"targetPosition":{"x":24600.9107304977,"y":31269.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"7c769317-2639-4460-8b88-9dc92f7b0585"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"66d9a06b-f084-403b-99cc-3109515feba0","savedPayload":{"position":{"x":24574.9107304977,"y":31177.35783203362},"targetPosition":{"x":24600.9107304977,"y":31269.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"9cc7645a-54fe-40d6-9896-9278167011fb"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"f071951e-4b95-4545-9cdc-7a53e38141bf","savedPayload":{"position":{"x":24631.9107304977,"y":31218.35783203362},"targetPosition":{"x":24600.9107304977,"y":31269.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"4c827ee0-a29b-4b65-8438-03e2ea98b410"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"0343abbc-865e-406a-92b2-e8099a15a083","savedPayload":{"position":{"x":24668.9107304977,"y":31347.35783203362},"targetPosition":{"x":24600.9107304977,"y":31269.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2c753cd8-36d8-466c-bd80-1ebfa8e314dc"}}},{"type":"Data Product","name":"Last Market Order","project":"Superalgos","id":"f00813c7-b43f-429c-b3c7-8333086cec29","savedPayload":{"position":{"x":24576.9107304977,"y":31235.35783203362},"targetPosition":{"x":24600.9107304977,"y":31269.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Market Order","id":"6df1ac87-92d5-4788-b0bc-f3543b283ef0"}}},{"type":"Data Product","name":"Last Limit Order","project":"Superalgos","id":"35d59b74-3b26-492a-a3c0-9c3baea8144a","savedPayload":{"position":{"x":24663.9107304977,"y":31177.35783203362},"targetPosition":{"x":24600.9107304977,"y":31269.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Limit Order","id":"c24ec6a1-e937-4d20-93eb-4faf2a0becc3"}}}],"dataProductFolders":[],"id":"e1db489f-4594-4067-8db7-b8f85162343e","savedPayload":{"position":{"x":24600.9107304977,"y":31269.35783203362},"targetPosition":{"x":24560.9107304977,"y":31349.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"67575ed1-4a61-4bb2-a590-f8ce293e0b38","savedPayload":{"position":{"x":24560.9107304977,"y":31349.35783203362},"targetPosition":{"x":24483.9107304977,"y":31348.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Trading System","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trading System Errors","project":"Superalgos","id":"94121dfb-1b89-4c82-b220-6f760b71b6c4","savedPayload":{"position":{"x":24571.9107304977,"y":31279.35783203362},"targetPosition":{"x":24519.9107304977,"y":31254.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Errors","id":"1d9c570d-77c7-40ac-a61e-c5a57a411de8"}}},{"type":"Data Product","name":"Trading System Highlights","project":"Superalgos","id":"46c81d1e-6ada-4a2e-b452-a14d30507268","savedPayload":{"position":{"x":24569.9107304977,"y":31225.35783203362},"targetPosition":{"x":24519.9107304977,"y":31254.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Highlights","id":"319f660a-78be-4cf4-8052-877837cad806"}}},{"type":"Data Product","name":"Trading System Values","project":"Superalgos","id":"f6e40bee-1acd-45da-9e63-4963b8cb7344","savedPayload":{"position":{"x":24540.9107304977,"y":31173.35783203362},"targetPosition":{"x":24519.9107304977,"y":31254.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Values","id":"c90c009b-588d-45d4-aff1-05e375181dfa"}}},{"type":"Data Product","name":"Trading System Status","project":"Superalgos","id":"de497510-ba9e-48f3-b77c-1c02a6ed091a","savedPayload":{"position":{"x":24522.9107304977,"y":31210.35783203362},"targetPosition":{"x":24519.9107304977,"y":31254.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Status","id":"eed48c80-35c5-49fa-b12d-18e7280ffb8f"}}},{"type":"Data Product","name":"Trading System Progress","project":"Superalgos","id":"14274541-0796-44be-96fd-4fba265a4044","savedPayload":{"position":{"x":24598.9107304977,"y":31292.35783203362},"targetPosition":{"x":24519.9107304977,"y":31254.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Progress","id":"04c8606b-5e59-4e7d-b3ac-387bfffcd300"}}},{"type":"Data Product","name":"Trading System Running","project":"Superalgos","id":"1cd43234-6db9-4f7a-beb3-6af28c18b332","savedPayload":{"position":{"x":24555.9107304977,"y":31216.35783203362},"targetPosition":{"x":24519.9107304977,"y":31254.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Running","id":"17236f59-6ef2-4cc3-913c-1ff6db052236"}}},{"type":"Data Product","name":"Trading System Announcements","project":"Superalgos","id":"84633784-93c1-470e-a0f8-a7beb8ce502c","savedPayload":{"position":{"x":24573.9107304977,"y":31197.35783203362},"targetPosition":{"x":24519.9107304977,"y":31254.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Announcements","id":"4a6f828a-9671-431e-8257-fc920943581e"}}},{"type":"Data Product","name":"Trading System Warnings","project":"Superalgos","id":"bdce3741-9a44-4034-86a3-f49d6fc524f1","savedPayload":{"position":{"x":24563.9107304977,"y":31282.35783203362},"targetPosition":{"x":24519.9107304977,"y":31254.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Warnings","id":"34310596-466a-4e9a-a5a2-256b0fe3e339"}}},{"type":"Data Product","name":"Trading System Infos","project":"Superalgos","id":"d8640483-263f-418e-bc7d-c1a49f8ca077","savedPayload":{"position":{"x":24422.9107304977,"y":31290.35783203362},"targetPosition":{"x":24519.9107304977,"y":31254.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Infos","id":"020ad519-0fc6-4f2f-9f26-b2c7de118fb8"}}}],"dataProductFolders":[],"id":"48ec4b78-72ff-4dc9-a9e2-199a074d2c8f","savedPayload":{"position":{"x":24519.9107304977,"y":31254.35783203362},"targetPosition":{"x":24483.9107304977,"y":31348.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Simulation Objects","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episodes","project":"Superalgos","id":"19d5459e-93b0-4c37-8a9e-6a0f4db7ea82","savedPayload":{"position":{"x":24456.9107304977,"y":31434.35783203362},"targetPosition":{"x":24548.9107304977,"y":31389.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episodes","id":"aeec080e-8caf-4976-8187-ba4e725b73b0"}}},{"type":"Data Product","name":"Strategies","project":"Superalgos","id":"f9391814-3a37-4ebe-be77-17eeeadebfc7","savedPayload":{"position":{"x":24563.9107304977,"y":31468.35783203362},"targetPosition":{"x":24548.9107304977,"y":31389.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"21db6fce-8450-4b07-9015-d81a339fd030"}}}],"dataProductFolders":[{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"9b7f1c09-af0e-4c08-ae4c-148ceab5a026","savedPayload":{"position":{"x":24644.9107304977,"y":31367.35783203362},"targetPosition":{"x":24545.9107304977,"y":31306.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"db256083-9aa2-48e1-8fd6-3425a5085302"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"3e1862e4-e429-419c-866b-5c02891f2234","savedPayload":{"position":{"x":24560.9107304977,"y":31246.35783203362},"targetPosition":{"x":24545.9107304977,"y":31306.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"1958f79b-5c6c-4874-9154-98c314822ed7"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"8b595cff-673d-4d21-ac1b-c1c6a7ea04d4","savedPayload":{"position":{"x":24600.9107304977,"y":31245.35783203362},"targetPosition":{"x":24545.9107304977,"y":31306.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"5deceb32-c7ab-4560-818a-0f0b9d6632fb"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"af34a526-4694-44f7-a678-748d101b6e61","savedPayload":{"position":{"x":24635.9107304977,"y":31319.35783203362},"targetPosition":{"x":24545.9107304977,"y":31306.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2a1d405b-2fbe-4ed4-a76a-d2c7be59d20e"}}}],"dataProductFolders":[],"id":"f173eb6b-b0bb-4afc-a5d7-7b63d1981d99","savedPayload":{"position":{"x":24545.9107304977,"y":31306.35783203362},"targetPosition":{"x":24548.9107304977,"y":31389.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trigger Stages","project":"Superalgos","id":"fe5ea980-791c-4962-979a-1c3f96663835","savedPayload":{"position":{"x":24429.9107304977,"y":31494.35783203362},"targetPosition":{"x":24468.9107304977,"y":31411.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stages","id":"18cc2e79-7e57-418c-b635-6c68fc11d681"}}},{"type":"Data Product","name":"Open Stages","project":"Superalgos","id":"7528e7c1-d7b6-4b3a-bfbd-7e05f5c2b4b0","savedPayload":{"position":{"x":24522.9107304977,"y":31471.35783203362},"targetPosition":{"x":24468.9107304977,"y":31411.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stages","id":"d5938c00-0849-466d-ae14-4ea91b571678"}}},{"type":"Data Product","name":"Manage Stages","project":"Superalgos","id":"e5b35205-1a83-4c9d-bbb6-1587b31d7fa2","savedPayload":{"position":{"x":24453.9107304977,"y":31395.35783203362},"targetPosition":{"x":24468.9107304977,"y":31411.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stages","id":"8fab86b3-db8d-4113-8418-1d256bd98cf2"}}},{"type":"Data Product","name":"Close Stages","project":"Superalgos","id":"305af32b-0136-4382-8cbb-f4def428274c","savedPayload":{"position":{"x":24465.9107304977,"y":31389.35783203362},"targetPosition":{"x":24468.9107304977,"y":31411.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stages","id":"ba911e61-f951-48cd-b547-9a70aa211100"}}}],"dataProductFolders":[],"id":"f5b8e9c6-4682-4c5e-a715-2f976cb51e75","savedPayload":{"position":{"x":24468.9107304977,"y":31411.35783203362},"targetPosition":{"x":24548.9107304977,"y":31389.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Positions","project":"Superalgos","id":"10971a05-a642-4759-a952-e114694a884e","savedPayload":{"position":{"x":24468.9107304977,"y":31396.35783203362},"targetPosition":{"x":24505.9107304977,"y":31317.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Positions","id":"1eabba24-cbd4-4cbf-95e0-c5135349d41d"}}},{"type":"Data Product","name":"Position Base Asset","project":"Superalgos","id":"28d64a66-6238-4780-a322-74bb988486d7","savedPayload":{"position":{"x":24473.9107304977,"y":31410.35783203362},"targetPosition":{"x":24505.9107304977,"y":31317.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Base Asset","id":"b371b039-f6c8-4f60-84cb-52f55c96c84d"}}},{"type":"Data Product","name":"Position Quoted Asset","project":"Superalgos","id":"76484f39-20e9-486e-a301-55626440c3a9","savedPayload":{"position":{"x":24444.9107304977,"y":31219.35783203362},"targetPosition":{"x":24505.9107304977,"y":31317.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Quoted Asset","id":"a376f02b-a5d2-4079-b5cd-ab7dc894b909"}}},{"type":"Data Product","name":"Stop Loss","project":"Superalgos","id":"4d412b84-013f-45fa-b684-6269167fd5e5","savedPayload":{"position":{"x":24470.9107304977,"y":31254.35783203362},"targetPosition":{"x":24505.9107304977,"y":31317.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Stop Loss","id":"c18bdc82-216a-4b1d-8850-5c3c9dc2000b"}}},{"type":"Data Product","name":"Take Profit","project":"Superalgos","id":"84c07d10-d91a-462a-b0db-62e6a3d99703","savedPayload":{"position":{"x":24510.9107304977,"y":31258.35783203362},"targetPosition":{"x":24505.9107304977,"y":31317.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Take Profit","id":"2542c7d0-fa26-4b52-a59a-a3630e52eb89"}}}],"dataProductFolders":[],"id":"93715d98-5ca9-49d4-8810-ffb68cfaa710","savedPayload":{"position":{"x":24505.9107304977,"y":31317.35783203362},"targetPosition":{"x":24548.9107304977,"y":31389.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"77996fc7-3c1f-4566-8e40-751629c19e72","savedPayload":{"position":{"x":24548.9107304977,"y":31389.35783203362},"targetPosition":{"x":24483.9107304977,"y":31348.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f90235f2-d154-4637-a430-a6db5487a989","savedPayload":{"position":{"x":23729.934129866087,"y":32779.956884291954},"targetPosition":{"x":23989.74175100142,"y":32629.956884291958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2c6c33b9-4e62-4961-b973-8a9c3019aa71","savedPayload":{"position":{"x":23989.74175100142,"y":32629.956884291958},"targetPosition":{"x":24249.549372136753,"y":32479.956884291958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"feb1df5a-d366-41ef-b0f6-7ac24974b038","savedPayload":{"position":{"x":24249.549372136753,"y":32479.956884291958},"targetPosition":{"x":24509.356993272086,"y":32329.956884291958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"BB Breakdown 2","id":"21c1a266-ac7f-4eb1-8671-7e290d8b8a58"}}}],"id":"0d87dee6-0963-4ba2-8d72-34cb019edaf3","savedPayload":{"position":{"x":24509.356993272086,"y":32329.956884291958},"targetPosition":{"x":24659.356993272086,"y":32070.149263156625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"4faee1ef-5442-487c-b3a7-367921db71b8","savedPayload":{"position":{"x":24659.356993272086,"y":32070.149263156625},"targetPosition":{"x":24809.356993272086,"y":31810.341642021293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"e2eb7597-7078-434a-82ea-b891a78a1fa2","savedPayload":{"position":{"x":24809.356993272086,"y":31810.341642021293},"targetPosition":{"x":24959.356993272086,"y":31550.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"ef4b033a-aeb2-4461-bc25-019a834c0b23"}}}],"id":"e4e268f3-a677-4f90-90a1-d87244e647e5","savedPayload":{"position":{"x":24959.356993272086,"y":31550.53402088596},"targetPosition":{"x":25109.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningMinesData":{"type":"Learning Mines Data","name":"New Learning Mines Data","project":"Superalgos","projectLearningProducts":[{"type":"Project Learning Products","name":"Superalgos","project":"Superalgos","exchangeLearningProducts":[{"type":"Exchange Learning Products","name":"Binance","project":"Superalgos","marketLearningProducts":[{"type":"Market Learning Products","name":"Binance BTC/USDT","project":"Superalgos","learningSessionReferences":[],"id":"741a0c93-123a-4867-ae9b-faff54c6f10d","savedPayload":{"position":{"x":24157.3329849226,"y":32021.240114561097},"targetPosition":{"x":24395.33898700997,"y":31838.61168585848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"1ccd9d67-528e-4bdb-9ffd-e359370392a3","savedPayload":{"position":{"x":24395.33898700997,"y":31838.61168585848},"targetPosition":{"x":24633.344989097342,"y":31655.98325715586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"bf458432-d892-4dfa-94c7-827c83be73d1","savedPayload":{"position":{"x":24633.344989097342,"y":31655.98325715586},"targetPosition":{"x":24871.350991184714,"y":31473.354828453244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"ef4b033a-aeb2-4461-bc25-019a834c0b23"}}}],"id":"2845a687-becc-4c3b-bc79-b2293ba876ba","savedPayload":{"position":{"x":24871.350991184714,"y":31473.354828453244},"targetPosition":{"x":25109.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e2697759-6038-4943-b90c-5a68651ff9a8","savedPayload":{"position":{"x":25109.356993272086,"y":31290.726399750627},"targetPosition":{"x":25259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"d"}}},"id":"e452cf65-2b2b-44f2-9e67-bdd9d3c008e4","savedPayload":{"position":{"x":25259.356993272086,"y":31030.918778615294},"targetPosition":{"x":24959.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"3c165071-7558-4708-9999-8ffe71d346b1","savedPayload":{"position":{"x":24959.356993272086,"y":31030.918778615294},"targetPosition":{"x":24959.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","project":"Superalgos","cryptoExchanges":[{"type":"Crypto Exchanges","name":"Tested","project":"Superalgos","exchanges":[{"type":"Crypto Exchange","name":"Binance","config":"{\n \"codeName\": \"binance\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"EUR\"} \n}","project":"Superalgos","assets":[{"type":"Asset","name":"Bitcoin","config":"{ \n\"codeName\": \"BTC\"\n}","project":"Superalgos","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa","savedPayload":{"position":{"x":19794.079365950267,"y":30512.325102172115},"targetPosition":{"x":19716.43365241951,"y":30802.102850058836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Tether","config":"{ \n\"codeName\": \"USDT\"\n}","project":"Superalgos","id":"f110bfa0-bd5b-469b-a940-4524c8688136","savedPayload":{"position":{"x":20006.21140030623,"y":30724.45713652808},"targetPosition":{"x":19716.43365241951,"y":30802.102850058836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"95d2c30f-215b-486e-8119-f4eac0279575","savedPayload":{"position":{"x":19716.43365241951,"y":30802.102850058836},"targetPosition":{"x":19504.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"E"}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","project":"Superalgos","markets":[{"type":"Market","name":"BTC/USDT","config":"{ \n\"codeName\": \"BTC/USDT\"\n}","project":"Superalgos","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","project":"Superalgos","id":"1017b30d-de1b-4212-991e-9fd0a5b6c814","savedPayload":{"position":{"x":20394.079365950267,"y":30936.589170884043},"targetPosition":{"x":20104.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","project":"Superalgos","id":"705c4a67-787a-48cd-a3dc-3a557438bf0b","savedPayload":{"position":{"x":20394.079365950267,"y":31091.880597945557},"targetPosition":{"x":20104.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"f110bfa0-bd5b-469b-a940-4524c8688136"}}},"id":"9a867bf0-a71d-445c-b99a-75b60bbdce09","savedPayload":{"position":{"x":20104.301618063546,"y":31014.2348844148},"targetPosition":{"x":19804.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2fd80894-900e-44ac-a1a7-56c14124f7a1","savedPayload":{"position":{"x":19804.301618063546,"y":31014.2348844148},"targetPosition":{"x":19504.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[{"type":"Exchange Account Asset","name":"Bitcoin","project":"Superalgos","id":"ba6f3d5c-b36b-49d9-947f-392068109169","savedPayload":{"position":{"x":20508.121182548915,"y":31438.498953126727},"targetPosition":{"x":20218.343434662194,"y":31516.144666657485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa"}}},{"type":"Exchange Account Asset","name":"Tether","project":"Superalgos","id":"c90be267-90f9-45ae-b225-0578adb4aad9","savedPayload":{"position":{"x":20430.475469018158,"y":31728.27670101345},"targetPosition":{"x":20218.343434662194,"y":31516.144666657485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"f110bfa0-bd5b-469b-a940-4524c8688136"}}}],"id":"8ac5c2a9-a238-48ae-ab43-0a0a95a37464","savedPayload":{"position":{"x":20218.343434662194,"y":31516.144666657485},"targetPosition":{"x":19928.565686775473,"y":31438.498953126727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"Key for Lighting Strike","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e85bbbd6-aca8-450f-9237-788062de5761","savedPayload":{"position":{"x":20083.857113836988,"y":32018.05444890017},"targetPosition":{"x":20006.21140030623,"y":31728.27670101345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"48925cc9-f3cd-4499-8466-1338fed28a0d","savedPayload":{"position":{"x":20006.21140030623,"y":31728.27670101345},"targetPosition":{"x":19928.565686775473,"y":31438.498953126727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"63794496-c94b-42f9-81cc-c588708617a6","savedPayload":{"position":{"x":19928.565686775473,"y":31438.498953126727},"targetPosition":{"x":19716.43365241951,"y":31226.366918770764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4b0c1ac5-515f-44a9-b9b9-e698a9c51eac","savedPayload":{"position":{"x":19716.43365241951,"y":31226.366918770764},"targetPosition":{"x":19504.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b","savedPayload":{"position":{"x":19504.301618063546,"y":31014.2348844148},"targetPosition":{"x":19204.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"tutorial":{"status":"Done"}}}],"id":"e3879d63-6f8f-41a3-8ac3-0349c4361722","savedPayload":{"position":{"x":19204.301618063546,"y":31014.2348844148},"targetPosition":{"x":18904.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Untested","project":"Superalgos","exchanges":[{"type":"Crypto Exchange","name":"ACX","config":"{ \n\"codeName\": \"acx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"ebcb522b-ae58-46d2-9d82-a9b0beec3976","savedPayload":{"position":{"x":17935.64382962515,"y":31014.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b2649588-27c6-442c-b179-f6d8817188b3","savedPayload":{"position":{"x":17954.64382962515,"y":31004.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9b2051d5-7ee7-4e94-8c8d-306674889339","savedPayload":{"position":{"x":17838.64382962515,"y":30896.23747069523},"targetPosition":{"x":17766.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"1d5461aa-d26c-4df5-b383-8c83e311b8ca","savedPayload":{"position":{"x":17643.64382962515,"y":30952.23747069523},"targetPosition":{"x":17698.64382962515,"y":30973.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c6372400-de52-4b63-97f3-f748aac9c63f","savedPayload":{"position":{"x":17698.64382962515,"y":30973.23747069523},"targetPosition":{"x":17766.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c948314e-2247-4234-b83d-cc2c1b152665","savedPayload":{"position":{"x":17766.64382962515,"y":30905.23747069523},"targetPosition":{"x":17837.64382962515,"y":30978.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04ccb742-ef1b-4138-b38d-a6b0d92f2f8e","savedPayload":{"position":{"x":17837.64382962515,"y":30978.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e9c21b2d-de21-43b5-8b48-51367a8c981c","savedPayload":{"position":{"x":19313.14497226101,"y":30565.583066825377},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"AOFEX","config":"{ \n\"codeName\": \"aofex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"623ef91b-04c0-4bd5-ac0d-b32c809be3ea","savedPayload":{"position":{"x":17973.64382962515,"y":30923.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"9d0b5855-59a6-4dda-9a4b-33d7a44d582e","savedPayload":{"position":{"x":17901.64382962515,"y":30994.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"e898e569-0dd3-4a22-baa5-caaace66d4ed","savedPayload":{"position":{"x":18062.64382962515,"y":30838.23747069523},"targetPosition":{"x":17982.64382962515,"y":30899.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"64a69d3d-15ff-41c3-a926-5ec93c932ab1","savedPayload":{"position":{"x":17822.64382962515,"y":31052.23747069523},"targetPosition":{"x":17893.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae2785c5-75a1-44fc-a71b-363d88cb5dac","savedPayload":{"position":{"x":17893.64382962515,"y":30981.23747069523},"targetPosition":{"x":17982.64382962515,"y":30899.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07ea69aa-7357-43b1-b548-a4c4fab70c55","savedPayload":{"position":{"x":17982.64382962515,"y":30899.23747069523},"targetPosition":{"x":17971.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2146b410-fc4e-452d-ae57-5d58c9a29706","savedPayload":{"position":{"x":17971.64382962515,"y":30962.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c2e9bb45-97c7-47e8-b13c-56946e673c53","savedPayload":{"position":{"x":19413.67778623216,"y":30647.89853748846},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bequant","config":"{ \n\"codeName\": \"bequant\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"b23c8adf-c880-48fd-b4af-4b4be86cf0e5","savedPayload":{"position":{"x":18059.64382962515,"y":31101.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"523bd94f-68f9-457e-91fd-806c1b95e98d","savedPayload":{"position":{"x":18006.64382962515,"y":31117.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9d914bb1-a68b-41ae-8666-0fcc755358c1","savedPayload":{"position":{"x":17859.64382962515,"y":30964.23747069523},"targetPosition":{"x":17936.64382962515,"y":31059.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"15d903b5-113c-465e-8120-7c46a9a85565","savedPayload":{"position":{"x":17976.64382962515,"y":31146.23747069523},"targetPosition":{"x":17943.64382962515,"y":31134.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2d1c0bc3-abe2-4340-91bf-2eef5b98a2f0","savedPayload":{"position":{"x":17943.64382962515,"y":31134.23747069523},"targetPosition":{"x":17936.64382962515,"y":31059.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a50d459-914c-4bfc-91e8-f15c383280eb","savedPayload":{"position":{"x":17936.64382962515,"y":31059.23747069523},"targetPosition":{"x":17931.64382962515,"y":31071.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b2f2b69f-3bef-4edc-9950-5261d9f36382","savedPayload":{"position":{"x":17931.64382962515,"y":31071.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e928d3e-a2c2-4341-aa2f-b753551c9479","savedPayload":{"position":{"x":19504.72140465123,"y":30740.600980501622},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bibox","config":"{ \n\"codeName\": \"bibox\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"13c1f22c-9a35-4d3f-b000-c96984fd6a2b","savedPayload":{"position":{"x":17995.64382962515,"y":31047.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3c6df49d-70c3-468a-bdd8-6768ce6d3a9d","savedPayload":{"position":{"x":17916.64382962515,"y":31018.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5a54ef39-8fba-4a5f-ac24-5f27e763e28f","savedPayload":{"position":{"x":18050.64382962515,"y":31174.23747069523},"targetPosition":{"x":17956.64382962515,"y":31128.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"08df1f45-dab0-463a-8758-359973f2620d","savedPayload":{"position":{"x":17899.64382962515,"y":31242.23747069523},"targetPosition":{"x":17959.64382962515,"y":31180.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"105b52c2-90ad-4fa1-b690-d8fab14209b4","savedPayload":{"position":{"x":17959.64382962515,"y":31180.23747069523},"targetPosition":{"x":17956.64382962515,"y":31128.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"68c1ef42-1b7b-4cc6-981f-80b20dabcd89","savedPayload":{"position":{"x":17956.64382962515,"y":31128.23747069523},"targetPosition":{"x":17907.64382962515,"y":31057.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fc35e5d0-ea61-42b6-979a-859f19c5ac6c","savedPayload":{"position":{"x":17907.64382962515,"y":31057.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e5f9ee4d-77a3-48ae-b354-b2f6a97d5e47","savedPayload":{"position":{"x":19585.208424334218,"y":30842.603544479174},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BigONE","config":"{ \n\"codeName\": \"bigone\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"3f289513-c1c8-457c-b65a-8cf62b5f5eb5","savedPayload":{"position":{"x":17778.64382962515,"y":31071.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8b365e73-1cee-496a-921f-121cb628a130","savedPayload":{"position":{"x":17798.64382962515,"y":31121.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"447a4f6f-cfa0-443e-9339-d7c1153ada31","savedPayload":{"position":{"x":17921.64382962515,"y":31046.23747069523},"targetPosition":{"x":17891.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0d234c53-c121-471e-bce1-a258c13cd148","savedPayload":{"position":{"x":17848.64382962515,"y":31175.23747069523},"targetPosition":{"x":17944.64382962515,"y":31086.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"816e1b6a-d790-4abd-9ae1-e203fa737af2","savedPayload":{"position":{"x":17944.64382962515,"y":31086.23747069523},"targetPosition":{"x":17891.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"561a57f7-8c22-4e50-840d-d983ed6bb864","savedPayload":{"position":{"x":17891.64382962515,"y":31102.23747069523},"targetPosition":{"x":17813.64382962515,"y":31064.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e243bd5d-ade7-46c8-876b-6ad8c6eb5e0a","savedPayload":{"position":{"x":17813.64382962515,"y":31064.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fb9ee540-bf12-4dda-bf87-cb6b58fce649","savedPayload":{"position":{"x":19654.195208565325,"y":30952.710342620318},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Binance Jersey","config":"{ \n\"codeName\": \"binanceje\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"0b979ea9-7a2d-4744-9517-2dfa632dfafc","savedPayload":{"position":{"x":17852.64382962515,"y":30989.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b9a4497d-20f1-4c61-9a79-444e0fe0ddf4","savedPayload":{"position":{"x":17924.64382962515,"y":30952.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1b24d8a4-ec70-4501-838c-7633f6f7288e","savedPayload":{"position":{"x":17882.64382962515,"y":31051.23747069523},"targetPosition":{"x":17942.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"627472e3-638f-4d68-a917-d0844d6a227b","savedPayload":{"position":{"x":17991.64382962515,"y":31190.23747069523},"targetPosition":{"x":17986.64382962515,"y":31110.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"b8ce75fb-93c9-4ca2-9b2b-9f8ed8af34f3","savedPayload":{"position":{"x":17986.64382962515,"y":31110.23747069523},"targetPosition":{"x":17942.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"08b226e4-14ee-4ad3-8d96-efe77cc38489","savedPayload":{"position":{"x":17942.64382962515,"y":31066.23747069523},"targetPosition":{"x":17949.64382962515,"y":31009.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2771eb11-bc72-4273-9e1b-9ac5410c6354","savedPayload":{"position":{"x":17949.64382962515,"y":31009.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2782350a-84a2-40ec-87c6-3c8043376a18","savedPayload":{"position":{"x":19710.872950374665,"y":31069.630473388454},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Binance US","config":"{ \n\"codeName\": \"binanceus\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"817ee1cf-b44c-4458-a9c4-a05a17ea0510","savedPayload":{"position":{"x":17943.64382962515,"y":30999.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c6694e9e-74dc-4c2e-9151-90f1d6631b45","savedPayload":{"position":{"x":17937.64382962515,"y":30989.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"00144904-5363-49eb-b445-8c8283d92b0d","savedPayload":{"position":{"x":17838.64382962515,"y":31193.23747069523},"targetPosition":{"x":17781.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2e71aa3c-03d4-4dbd-bc50-43b30f59e655","savedPayload":{"position":{"x":17783.64382962515,"y":31148.23747069523},"targetPosition":{"x":17703.64382962515,"y":31182.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"a4d0df32-c600-4421-b893-2a05f0442ed6","savedPayload":{"position":{"x":17703.64382962515,"y":31182.23747069523},"targetPosition":{"x":17781.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7a39543a-00e1-452b-8aba-36c2b240f9fc","savedPayload":{"position":{"x":17781.64382962515,"y":31156.23747069523},"targetPosition":{"x":17799.64382962515,"y":31119.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2543c4e5-8233-4348-b6dc-e47aed1ff381","savedPayload":{"position":{"x":17799.64382962515,"y":31119.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0b2b67d2-853b-470e-8b13-925956ad5621","savedPayload":{"position":{"x":19754.577155060477,"y":31191.993155151424},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"bitbank","config":"{ \n\"codeName\": \"bitbank\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"eb6b6842-9bf7-450e-baa3-7a87541a1cf6","savedPayload":{"position":{"x":17955.64382962515,"y":31107.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"6353ff56-759f-457d-81f3-fdb8ae5b3e83","savedPayload":{"position":{"x":17942.64382962515,"y":31183.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a2b297c7-f33b-48b9-98fa-d339c7b0ff67","savedPayload":{"position":{"x":17999.64382962515,"y":31016.23747069523},"targetPosition":{"x":17945.64382962515,"y":31116.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"9ce6c354-b294-4062-b763-421e5edb69de","savedPayload":{"position":{"x":17883.64382962515,"y":31186.23747069523},"targetPosition":{"x":17845.64382962515,"y":31202.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"547dbf6c-a292-46c0-a628-62856858121e","savedPayload":{"position":{"x":17845.64382962515,"y":31202.23747069523},"targetPosition":{"x":17945.64382962515,"y":31116.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"097055b3-37e5-4100-a24b-91e404fe49a6","savedPayload":{"position":{"x":17945.64382962515,"y":31116.23747069523},"targetPosition":{"x":17897.64382962515,"y":31142.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51aed4ce-0303-431e-a15f-e6f133f7a2cf","savedPayload":{"position":{"x":17897.64382962515,"y":31142.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c9a96a7-ed12-4b3e-bb51-306a8da131f5","savedPayload":{"position":{"x":19784.79543078195,"y":31318.363797342816},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitBay","config":"{ \n\"codeName\": \"bitbay\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"83b4e523-72a7-41ce-9363-fe0c799dcac1","savedPayload":{"position":{"x":17861.64382962515,"y":30965.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"966698f7-8a28-42d7-bb80-f7cd0601e44f","savedPayload":{"position":{"x":17823.64382962515,"y":31026.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"554829eb-3d40-4b95-a1cd-9de943763e2c","savedPayload":{"position":{"x":17914.64382962515,"y":30924.23747069523},"targetPosition":{"x":17876.64382962515,"y":30921.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2f534989-7ca7-4c3d-b14a-3b1071543c8c","savedPayload":{"position":{"x":17845.64382962515,"y":30853.23747069523},"targetPosition":{"x":17832.64382962515,"y":30821.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2f6b76b4-51d4-434f-8aa1-ed86b0e26bd2","savedPayload":{"position":{"x":17832.64382962515,"y":30821.23747069523},"targetPosition":{"x":17876.64382962515,"y":30921.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cbcc3ab6-9758-4273-99d2-9d05fdd392b5","savedPayload":{"position":{"x":17876.64382962515,"y":30921.23747069523},"targetPosition":{"x":17805.64382962515,"y":31015.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dada6c12-7c41-4ab8-9922-908233829f58","savedPayload":{"position":{"x":17805.64382962515,"y":31015.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8778eee5-97a2-4f9d-bd25-cd5a64ec6663","savedPayload":{"position":{"x":19801.173495885087,"y":31447.26081972472},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitfinex","config":"{ \n\"codeName\": \"bitfinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"33508b53-2769-4f3d-8c98-9fa37e5cbf5b","savedPayload":{"position":{"x":17888.64382962515,"y":31043.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4d4ad5a1-81a7-4f92-83db-99f57ce261bb","savedPayload":{"position":{"x":17975.64382962515,"y":30868.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"29d52baf-645c-4d8f-9631-ebd391b4c815","savedPayload":{"position":{"x":18034.64382962515,"y":31066.23747069523},"targetPosition":{"x":18037.64382962515,"y":31012.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d615c33d-c6cf-4572-ac32-8e9ddeb5bb52","savedPayload":{"position":{"x":18023.64382962515,"y":30916.23747069523},"targetPosition":{"x":18106.64382962515,"y":30982.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"0c189040-6318-483c-b6d7-982370a3298d","savedPayload":{"position":{"x":18106.64382962515,"y":30982.23747069523},"targetPosition":{"x":18037.64382962515,"y":31012.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd60de4a-d17c-4ba7-936a-cbf2305fe3bb","savedPayload":{"position":{"x":18037.64382962515,"y":31012.23747069523},"targetPosition":{"x":18039.64382962515,"y":30964.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d247f4f5-6f16-4a59-a4a5-6d1554b43562","savedPayload":{"position":{"x":18039.64382962515,"y":30964.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c076027-683d-4778-8a6a-e60984980fdf","savedPayload":{"position":{"x":19803.51933253116,"y":31577.173022561386},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitfinex","config":"{ \n\"codeName\": \"bitfinex2\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"8fc7f955-5c81-446c-bbeb-205988bf1fc0","savedPayload":{"position":{"x":17830.64382962515,"y":31051.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d5ba38e9-3282-4634-b922-16532c71f426","savedPayload":{"position":{"x":17819.64382962515,"y":31118.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1cebbed5-28f7-4ccd-afce-9e7634d90fb6","savedPayload":{"position":{"x":17892.64382962515,"y":30997.23747069523},"targetPosition":{"x":17855.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0d109aa9-c80c-4a64-96f0-1d8fda0a70a4","savedPayload":{"position":{"x":17888.64382962515,"y":30805.23747069523},"targetPosition":{"x":17942.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5459ab1e-a1ce-4dae-ae72-61c1f7f37ce0","savedPayload":{"position":{"x":17942.64382962515,"y":30905.23747069523},"targetPosition":{"x":17855.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a4615f7a-000d-4ff9-b5ac-109bc9a3a849","savedPayload":{"position":{"x":17855.64382962515,"y":30970.23747069523},"targetPosition":{"x":17919.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e10d303e-ea21-4625-bae1-c32ad7a44e8a","savedPayload":{"position":{"x":17919.64382962515,"y":31043.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f3114102-a73c-4086-9594-5888ef1ab4ec","savedPayload":{"position":{"x":19791.80543793031,"y":31706.577304054405},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitforex","config":"{ \n\"codeName\": \"bitforex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"698e5e38-ad73-4cb6-b7f6-2b69913faff9","savedPayload":{"position":{"x":17897.64382962515,"y":30956.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"f0142bd4-1b63-4d12-a4b7-e150d0da197f","savedPayload":{"position":{"x":18020.64382962515,"y":31021.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"7164fb28-405b-461a-a7d4-59d438ecf1ce","savedPayload":{"position":{"x":17821.64382962515,"y":30984.23747069523},"targetPosition":{"x":17901.64382962515,"y":30907.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"ce8a00c9-f090-4ec2-84ed-c6661f8bf7b0","savedPayload":{"position":{"x":17825.64382962515,"y":30965.23747069523},"targetPosition":{"x":17818.64382962515,"y":30913.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"579cd74b-98f6-4000-990b-25ae1456c94b","savedPayload":{"position":{"x":17818.64382962515,"y":30913.23747069523},"targetPosition":{"x":17901.64382962515,"y":30907.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"dbac6eef-25d2-4cda-86a6-59ce8a9a26bc","savedPayload":{"position":{"x":17901.64382962515,"y":30907.23747069523},"targetPosition":{"x":17909.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1da9dd3-22ec-4536-bb5a-4d0bb8a56b81","savedPayload":{"position":{"x":17909.64382962515,"y":30970.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"499a5a3b-7871-4c95-9b2e-d58d4d9e2392","savedPayload":{"position":{"x":19766.169146786622,"y":31833.956517318737},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"bitkk","config":"{ \n\"codeName\": \"bitkk\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"efbb916c-780b-447f-a4c2-df68570d4ee1","savedPayload":{"position":{"x":17931.64382962515,"y":30937.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0d829516-81d9-46a5-9861-7d94cc89455d","savedPayload":{"position":{"x":17951.64382962515,"y":30912.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"fc174aa3-c485-4b9b-ba19-444b0189ccb1","savedPayload":{"position":{"x":17788.64382962515,"y":30980.23747069523},"targetPosition":{"x":17834.64382962515,"y":30983.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"15921d8a-4b45-481c-9165-79969ed3fd27","savedPayload":{"position":{"x":17796.64382962515,"y":30936.23747069523},"targetPosition":{"x":17891.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"927d5c8a-85df-48bb-b097-c36abb76ca0e","savedPayload":{"position":{"x":17891.64382962515,"y":30922.23747069523},"targetPosition":{"x":17834.64382962515,"y":30983.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"43d218c2-e633-47d5-8dd8-60bc7f7c0b9e","savedPayload":{"position":{"x":17834.64382962515,"y":30983.23747069523},"targetPosition":{"x":17853.64382962515,"y":30925.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2d310d61-cbc7-4306-af02-be3888939545","savedPayload":{"position":{"x":17853.64382962515,"y":30925.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ded39740-3c93-4fda-bb9c-6ac75d2109f4","savedPayload":{"position":{"x":19726.911021174266,"y":31957.817257542785},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMart","config":"{ \n\"codeName\": \"bitmart\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"10374855-6b4a-460b-9c95-70072ac00315","savedPayload":{"position":{"x":17907.64382962515,"y":30901.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3aded60c-4061-48ff-ad33-212c965b5c43","savedPayload":{"position":{"x":17829.64382962515,"y":30925.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1789a3ca-d948-497d-8d1b-1eefd25d16a3","savedPayload":{"position":{"x":17886.64382962515,"y":30937.23747069523},"targetPosition":{"x":17895.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"038170bc-0ca7-4a92-8219-61b7bc8431b0","savedPayload":{"position":{"x":17893.64382962515,"y":31034.23747069523},"targetPosition":{"x":17835.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"55f79ede-ef02-405f-92bd-11902ab3cc7a","savedPayload":{"position":{"x":17835.64382962515,"y":30962.23747069523},"targetPosition":{"x":17895.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8185c660-4af3-4a62-bfa9-8922861101b5","savedPayload":{"position":{"x":17895.64382962515,"y":30988.23747069523},"targetPosition":{"x":17819.64382962515,"y":30909.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"546d48c3-df31-495c-b3b4-cb35109c5542","savedPayload":{"position":{"x":17819.64382962515,"y":30909.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c7ed52a7-895b-46f1-a745-35954d8bcfc6","savedPayload":{"position":{"x":19674.491326722004,"y":32076.707370794375},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMax","config":"{ \n\"codeName\": \"bitmax\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"8a042d0d-7a7a-4a76-889e-42d8642404f4","savedPayload":{"position":{"x":17944.64382962515,"y":31046.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0c4fcc48-51e6-4ff2-925f-405cda6d1122","savedPayload":{"position":{"x":17898.64382962515,"y":31024.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"ef9d5381-d9e3-47f5-9069-6fc14eda0fa3","savedPayload":{"position":{"x":17879.64382962515,"y":31096.23747069523},"targetPosition":{"x":17977.64382962515,"y":31041.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c66fe606-9705-45b0-a196-7ea3efb0221e","savedPayload":{"position":{"x":17982.64382962515,"y":31053.23747069523},"targetPosition":{"x":17943.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"80a5f68e-776a-44de-8797-d2eb806c306e","savedPayload":{"position":{"x":17943.64382962515,"y":31083.23747069523},"targetPosition":{"x":17977.64382962515,"y":31041.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"011fcf1c-1c94-4c36-a246-d6c400aa39dc","savedPayload":{"position":{"x":17977.64382962515,"y":31041.23747069523},"targetPosition":{"x":17942.64382962515,"y":31103.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4a87b8c5-e009-427f-afb7-21afe5594b59","savedPayload":{"position":{"x":17942.64382962515,"y":31103.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fc6a9048-ab8c-48f9-91ae-6c95c28714b0","savedPayload":{"position":{"x":19609.524636419505,"y":32189.2329791979},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMEX","config":"{ \n\"codeName\": \"bitmex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f7636e2b-354a-4217-894b-5e26eddc0c2a","savedPayload":{"position":{"x":17894.64382962515,"y":30934.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"6eb2ddd1-6d06-456c-b4e0-7df56ba182e6","savedPayload":{"position":{"x":17823.64382962515,"y":30834.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"b4a4b8fe-d923-4eb0-a066-171b83d1540d","savedPayload":{"position":{"x":17902.64382962515,"y":31064.23747069523},"targetPosition":{"x":17815.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"918ed585-ce46-4d51-a07a-9beee51f70eb","savedPayload":{"position":{"x":17711.64382962515,"y":31036.23747069523},"targetPosition":{"x":17805.64382962515,"y":31078.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"9efef4d8-5be3-4d17-a645-6edffd9535cf","savedPayload":{"position":{"x":17805.64382962515,"y":31078.23747069523},"targetPosition":{"x":17815.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6ad31a6e-f27b-45c3-9996-a41fb39aa154","savedPayload":{"position":{"x":17815.64382962515,"y":30988.23747069523},"targetPosition":{"x":17844.64382962515,"y":30896.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"82887393-cb1c-4b01-8581-4b3dabc86584","savedPayload":{"position":{"x":17844.64382962515,"y":30896.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1e2f1dd0-ebf1-4485-83d8-7723a9e3e714","savedPayload":{"position":{"x":19532.77262531095,"y":32294.07482287797},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bittrex","config":"{ \n\"codeName\": \"bittrex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"88d4ef94-f030-42df-9115-69d9611317b1","savedPayload":{"position":{"x":17839.64382962515,"y":31009.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"7fe8234d-9a39-4b28-bf98-43b4fdb57ee5","savedPayload":{"position":{"x":17878.64382962515,"y":31045.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5ba7fe13-1e0f-403a-8f4b-8e3968d2e5e2","savedPayload":{"position":{"x":17841.64382962515,"y":30890.23747069523},"targetPosition":{"x":17742.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e926fbb8-d2ac-4e3d-aa59-a0a828d202fd","savedPayload":{"position":{"x":17707.64382962515,"y":30983.23747069523},"targetPosition":{"x":17782.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"4fbe41e1-cb15-4bc2-a3de-681c5b22cc97","savedPayload":{"position":{"x":17782.64382962515,"y":31052.23747069523},"targetPosition":{"x":17742.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ab9fe180-1c07-44de-a0a1-863761ac52d6","savedPayload":{"position":{"x":17742.64382962515,"y":30961.23747069523},"targetPosition":{"x":17796.64382962515,"y":30903.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"584f29ca-9b3c-4b7f-a2b0-aab4180ecefd","savedPayload":{"position":{"x":17796.64382962515,"y":30903.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f598f002-8fc5-491f-888e-07d017ea83c6","savedPayload":{"position":{"x":19445.135140551556,"y":32390.003727075255},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bit-Z","config":"{ \n\"codeName\": \"bitz\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"0a22e02b-7d2e-4955-9cfc-ed7d95f0c9a0","savedPayload":{"position":{"x":17751.64382962515,"y":31083.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"298b45af-b73d-4cd5-848a-97de7b857569","savedPayload":{"position":{"x":17944.64382962515,"y":31083.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6ede807b-b1ab-42b5-bfd7-3b12a942447e","savedPayload":{"position":{"x":17871.64382962515,"y":31049.23747069523},"targetPosition":{"x":17772.64382962515,"y":31098.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"dc172858-3241-4487-950a-e5cae03ac376","savedPayload":{"position":{"x":17751.64382962515,"y":31081.23747069523},"targetPosition":{"x":17753.64382962515,"y":31028.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"19c07cee-1fdf-4e02-ac9f-d110b64ee033","savedPayload":{"position":{"x":17753.64382962515,"y":31028.23747069523},"targetPosition":{"x":17772.64382962515,"y":31098.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4ef5048-ac4c-410e-bd6d-3338e33ab108","savedPayload":{"position":{"x":17772.64382962515,"y":31098.23747069523},"targetPosition":{"x":17788.64382962515,"y":31134.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e7e96c41-c839-4eec-9bcf-1c60d60fa3f5","savedPayload":{"position":{"x":17788.64382962515,"y":31134.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6cc10926-fe41-43be-887b-fa8aba1c7377","savedPayload":{"position":{"x":19347.639651522415,"y":32475.89501309667},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BTC-Alpha","config":"{ \n\"codeName\": \"btcalpha\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"263e3b9c-8fdd-4376-b53b-87f32d0f5898","savedPayload":{"position":{"x":17904.64382962515,"y":30922.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"804603e1-3e0f-4219-a9b7-ee27810d4f07","savedPayload":{"position":{"x":17829.64382962515,"y":30977.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"83b25fff-e448-483f-9bee-cb85fa592c6e","savedPayload":{"position":{"x":17734.64382962515,"y":30862.23747069523},"targetPosition":{"x":17829.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"efcfa3ca-0f82-4eb7-9b04-ed5eb4e1c3cf","savedPayload":{"position":{"x":17799.64382962515,"y":30864.23747069523},"targetPosition":{"x":17837.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"9ca8d728-ee11-4905-9a3a-5ca4ed50f3df","savedPayload":{"position":{"x":17837.64382962515,"y":30919.23747069523},"targetPosition":{"x":17829.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2cfde277-afa6-4ad3-bb5b-8a32b89e2037","savedPayload":{"position":{"x":17829.64382962515,"y":30960.23747069523},"targetPosition":{"x":17903.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"297a0ea2-f6d7-47fd-9fb7-0d99d00a87d8","savedPayload":{"position":{"x":17903.64382962515,"y":30969.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"30e5485f-213b-435b-a670-07b76cfe5cae","savedPayload":{"position":{"x":19241.429203691412,"y":32550.741684144767},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BTC Markets","config":"{ \n\"codeName\": \"btcmarkets\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"fcb3b880-0852-4d93-8714-67373f9dca16","savedPayload":{"position":{"x":17911.64382962515,"y":31036.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"953d8eff-0b2e-4b07-8635-393fddae0c9d","savedPayload":{"position":{"x":18025.64382962515,"y":31127.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c08873f6-9120-4764-8b06-c8110468b423","savedPayload":{"position":{"x":17935.64382962515,"y":30927.23747069523},"targetPosition":{"x":18027.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"beaa2557-4976-4e53-8a24-7ea00fc3afd5","savedPayload":{"position":{"x":18054.64382962515,"y":30851.23747069523},"targetPosition":{"x":18125.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"445158a2-91b4-4ad8-8380-036cbba6ad7e","savedPayload":{"position":{"x":18125.64382962515,"y":30951.23747069523},"targetPosition":{"x":18027.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd00e08c-a26d-4b11-93a3-b0e8f35bec4b","savedPayload":{"position":{"x":18027.64382962515,"y":31003.23747069523},"targetPosition":{"x":18016.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"35cb55c1-ceb3-4093-98af-8a1c2411fe0f","savedPayload":{"position":{"x":18016.64382962515,"y":31075.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ac2fda42-95ca-404a-8dd2-72bff0ff5a0f","savedPayload":{"position":{"x":19127.749017450227,"y":32613.66623143447},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Buda","config":"{ \n\"codeName\": \"buda\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"27f3573d-e1f0-473f-9bfd-f9198e7240a0","savedPayload":{"position":{"x":17945.64382962515,"y":30937.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4ddc0981-4e45-42f3-ae11-f5b136b2bc3d","savedPayload":{"position":{"x":17783.64382962515,"y":31008.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5a325d59-e6a6-4f76-a311-5e67c5f5a8a2","savedPayload":{"position":{"x":17980.64382962515,"y":30843.23747069523},"targetPosition":{"x":17956.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"fb985ab9-7759-4780-a052-8ee9be0b712a","savedPayload":{"position":{"x":17907.64382962515,"y":30968.23747069523},"targetPosition":{"x":17958.64382962515,"y":30884.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fdf7665a-2974-467b-9280-4077a888733f","savedPayload":{"position":{"x":17958.64382962515,"y":30884.23747069523},"targetPosition":{"x":17956.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a3105cfc-f80e-4bcb-b399-6ea9c0f7edf0","savedPayload":{"position":{"x":17956.64382962515,"y":30936.23747069523},"targetPosition":{"x":17872.64382962515,"y":30941.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5d69a76f-e7bc-4538-950e-2e2353eccea3","savedPayload":{"position":{"x":17872.64382962515,"y":30941.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"90fe3d74-662e-4fac-aff3-f41990b61ccf","savedPayload":{"position":{"x":19007.931889043757,"y":32663.930922181273},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BW","config":"{ \n\"codeName\": \"bw\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"457616cd-25f9-4ad3-8c18-6331859dd42e","savedPayload":{"position":{"x":17890.64382962515,"y":31014.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8c1f9aa2-4253-4129-a533-e515644ddb38","savedPayload":{"position":{"x":17909.64382962515,"y":30970.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"24314a5b-85ca-4036-adc6-618120496f1d","savedPayload":{"position":{"x":17773.64382962515,"y":30945.23747069523},"targetPosition":{"x":17860.64382962515,"y":30865.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"f7c593f6-bd7a-41f7-a5e7-b2e1ea9a528f","savedPayload":{"position":{"x":17820.64382962515,"y":30885.23747069523},"targetPosition":{"x":17828.64382962515,"y":30802.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"60dfc799-f863-4895-8d17-568aa2303ef5","savedPayload":{"position":{"x":17828.64382962515,"y":30802.23747069523},"targetPosition":{"x":17860.64382962515,"y":30865.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"223e466d-d750-4e38-91ce-8a59c15242ba","savedPayload":{"position":{"x":17860.64382962515,"y":30865.23747069523},"targetPosition":{"x":17818.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cfff1310-5220-4978-9553-8514be141d14","savedPayload":{"position":{"x":17818.64382962515,"y":30919.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d72db90c-d572-4cbb-8348-e3cc485d8e86","savedPayload":{"position":{"x":18883.38256475272,"y":32700.94644884361},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bybit","config":"{ \n\"codeName\": \"bybit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"18fdf7c8-03c4-4f81-a88e-de97589765e1","savedPayload":{"position":{"x":17803.64382962515,"y":31059.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"a62b2603-ac6f-4b6e-9541-86daf32027b1","savedPayload":{"position":{"x":17847.64382962515,"y":31104.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"66ecff99-7102-4f4a-9ce8-4d55fb22dfbc","savedPayload":{"position":{"x":17851.64382962515,"y":31165.23747069523},"targetPosition":{"x":17916.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"625e127c-0ebb-4f57-af9f-9dfb57b262a1","savedPayload":{"position":{"x":18004.64382962515,"y":31091.23747069523},"targetPosition":{"x":18008.64382962515,"y":31027.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"8174bb53-66b8-4575-b206-74f9b6352a80","savedPayload":{"position":{"x":18008.64382962515,"y":31027.23747069523},"targetPosition":{"x":17916.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ee16357e-abde-4800-b089-f43f4b696a35","savedPayload":{"position":{"x":17916.64382962515,"y":31077.23747069523},"targetPosition":{"x":17944.64382962515,"y":31101.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c9e9473b-aff9-43c8-a6be-5cd30330bee2","savedPayload":{"position":{"x":17944.64382962515,"y":31101.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"516c3831-456b-4d17-b0a0-6a363ba2ddb2","savedPayload":{"position":{"x":18755.561271527895,"y":32724.27883821499},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"ByteTrade","config":"{ \n\"codeName\": \"bytetrade\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e7a1e531-5a9e-466e-b98d-672de39eed3a","savedPayload":{"position":{"x":18088.64382962515,"y":31024.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"edafaba7-fd82-4d9f-b3f7-5d1c01c56599","savedPayload":{"position":{"x":17941.64382962515,"y":30943.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"50fa78b8-3aea-4e43-adcf-1e31820bf97f","savedPayload":{"position":{"x":17886.64382962515,"y":31008.23747069523},"targetPosition":{"x":17858.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"b9c39b04-e86e-4ebb-9aba-39c375f2960c","savedPayload":{"position":{"x":17865.64382962515,"y":30941.23747069523},"targetPosition":{"x":17953.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5965d9cc-1d68-47a7-b838-e6dd81da6ea9","savedPayload":{"position":{"x":17953.64382962515,"y":31023.23747069523},"targetPosition":{"x":17858.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f51a08be-ee3f-4d3b-a75e-d783d63092a7","savedPayload":{"position":{"x":17858.64382962515,"y":30967.23747069523},"targetPosition":{"x":17898.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d395efd0-691b-4a68-a7f1-9bce95b2f687","savedPayload":{"position":{"x":17898.64382962515,"y":30965.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45e2306f-03e8-4d17-a73a-72c11dd14e78","savedPayload":{"position":{"x":18625.966597164217,"y":32733.65453936303},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CEX.IO","config":"{ \n\"codeName\": \"cex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9de19f0a-5824-4e42-af00-484b64421dc3","savedPayload":{"position":{"x":17890.64382962515,"y":31049.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"39db01bc-0cea-422f-b9e9-7d84e3f5446d","savedPayload":{"position":{"x":17918.64382962515,"y":31105.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"93833d3c-42c9-4e4d-bf0f-5b80a90d10c2","savedPayload":{"position":{"x":17978.64382962515,"y":31126.23747069523},"targetPosition":{"x":17953.64382962515,"y":31167.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"42863a52-30f4-4322-9c20-99a45d6dc3d6","savedPayload":{"position":{"x":17884.64382962515,"y":31149.23747069523},"targetPosition":{"x":17895.64382962515,"y":31148.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fcff471d-29be-4176-8ff8-12088361f9fc","savedPayload":{"position":{"x":17895.64382962515,"y":31148.23747069523},"targetPosition":{"x":17953.64382962515,"y":31167.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f7975a18-b3ab-49bc-ae45-eb02c99aff8c","savedPayload":{"position":{"x":17953.64382962515,"y":31167.23747069523},"targetPosition":{"x":17881.64382962515,"y":31096.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ec432123-43fe-4171-8c41-b797d3161edb","savedPayload":{"position":{"x":17881.64382962515,"y":31096.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"346bfc30-e32a-453a-bdc6-0ead48221581","savedPayload":{"position":{"x":18496.117920729066,"y":32728.96363076407},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Coinbase Prime","config":"{ \n\"codeName\": \"coinbaseprime\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"73cabd8d-9308-49ed-b544-44f785ee7d38","savedPayload":{"position":{"x":17867.64382962515,"y":30962.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"31bd1360-f0c5-4d70-876a-b152f7cedfd7","savedPayload":{"position":{"x":17960.64382962515,"y":30864.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9b75fcfa-fe75-48a8-9d28-2ff19c58c041","savedPayload":{"position":{"x":17792.64382962515,"y":30841.23747069523},"targetPosition":{"x":17809.64382962515,"y":30934.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c900b14a-c728-45af-90f8-29b3e5f29f46","savedPayload":{"position":{"x":17801.64382962515,"y":30986.23747069523},"targetPosition":{"x":17793.64382962515,"y":31006.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"eaf72df3-b66f-4b83-83f9-91e22ec0c300","savedPayload":{"position":{"x":17793.64382962515,"y":31006.23747069523},"targetPosition":{"x":17809.64382962515,"y":30934.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9da95675-2071-41bf-b5ac-4f2af602994f","savedPayload":{"position":{"x":17809.64382962515,"y":30934.23747069523},"targetPosition":{"x":17862.64382962515,"y":31021.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4fc49ad4-57cc-43b0-b14b-15f26af994aa","savedPayload":{"position":{"x":17862.64382962515,"y":31021.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a8281db-6ace-4186-8cfb-cd249c4af48b","savedPayload":{"position":{"x":18367.537599231866,"y":32710.26110903248},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Coinbase Pro","config":"{ \n\"codeName\": \"coinbasepro\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"a29d6e1a-a94e-4b6b-8741-e9af6e4762f4","savedPayload":{"position":{"x":17788.64382962515,"y":30897.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"10cd9004-0088-4bc0-8fe6-b937f1bb311b","savedPayload":{"position":{"x":17865.64382962515,"y":30918.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"004397e6-ae73-46a6-9ed7-b4ba1930f77b","savedPayload":{"position":{"x":17945.64382962515,"y":30899.23747069523},"targetPosition":{"x":17850.64382962515,"y":30889.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"a81a7021-2228-4386-a773-9ac80c9e723a","savedPayload":{"position":{"x":17738.64382962515,"y":30761.23747069523},"targetPosition":{"x":17792.64382962515,"y":30789.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"482d82f2-364e-483c-b51a-a3fbe8a91577","savedPayload":{"position":{"x":17792.64382962515,"y":30789.23747069523},"targetPosition":{"x":17850.64382962515,"y":30889.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d823ad8e-0452-40f0-bad9-c2cb3ad29a21","savedPayload":{"position":{"x":17850.64382962515,"y":30889.23747069523},"targetPosition":{"x":17772.64382962515,"y":30894.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0c965322-fdd2-4e67-aaf3-dfc4b9dffc59","savedPayload":{"position":{"x":17772.64382962515,"y":30894.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4242da4b-a67e-44d8-8a19-b1c2f078c94c","savedPayload":{"position":{"x":18241.733119380056,"y":32677.766244135688},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CoinEx","config":"{ \n\"codeName\": \"coinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"af78f796-60e5-4794-87b8-772c7bc74be1","savedPayload":{"position":{"x":18043.64382962515,"y":31069.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d351e6d9-36eb-4d0e-aca5-94429bbb23a3","savedPayload":{"position":{"x":18094.64382962515,"y":31090.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"438f74c6-15e0-4553-af2a-febd5290c269","savedPayload":{"position":{"x":17908.64382962515,"y":31088.23747069523},"targetPosition":{"x":17986.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"bfb22430-77c7-41a7-8083-771f7d7f3634","savedPayload":{"position":{"x":17927.64382962515,"y":30953.23747069523},"targetPosition":{"x":17947.64382962515,"y":30990.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"51daaa12-1c60-4cef-96d8-a445b4b32296","savedPayload":{"position":{"x":17947.64382962515,"y":30990.23747069523},"targetPosition":{"x":17986.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"726b8c33-9873-4be1-b9ef-d6b4483f23b1","savedPayload":{"position":{"x":17986.64382962515,"y":31075.23747069523},"targetPosition":{"x":17919.64382962515,"y":31016.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"30469514-b983-4f6f-9d74-6d6ceef25eb6","savedPayload":{"position":{"x":17919.64382962515,"y":31016.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"62ad0961-6bdf-4a4a-a340-610816742d0a","savedPayload":{"position":{"x":18120.179423675774,"y":32631.860008654276},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"COSS","config":"{ \n\"codeName\": \"coss\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e6315232-c6b1-4e25-aade-7bc7ba9ba6ac","savedPayload":{"position":{"x":17787.64382962515,"y":30984.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b1e8451f-09a2-47b0-add3-cf9c35c487bb","savedPayload":{"position":{"x":17829.64382962515,"y":31095.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d1c9b795-0434-4ce1-9cb7-cc61fac7396d","savedPayload":{"position":{"x":17950.64382962515,"y":31149.23747069523},"targetPosition":{"x":17882.64382962515,"y":31131.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"22be64f9-4b08-4ac3-ae89-6726743a7d5a","savedPayload":{"position":{"x":17890.64382962515,"y":31165.23747069523},"targetPosition":{"x":17956.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c7462500-ba74-4bf3-ad81-35fa232bede3","savedPayload":{"position":{"x":17956.64382962515,"y":31156.23747069523},"targetPosition":{"x":17882.64382962515,"y":31131.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5cd41ced-981a-4075-af43-3a0497eb0fcb","savedPayload":{"position":{"x":17882.64382962515,"y":31131.23747069523},"targetPosition":{"x":17856.64382962515,"y":31148.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b5937899-c6ee-4d7a-b259-1ee23d721f60","savedPayload":{"position":{"x":17856.64382962515,"y":31148.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"695029de-7f61-45bb-aa4c-c6d51e6369ed","savedPayload":{"position":{"x":18004.301618063546,"y":32573.08061122679},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CREX24","config":"{ \n\"codeName\": \"crex24\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c5e12f4a-fb26-40d3-9e70-751b55018e74","savedPayload":{"position":{"x":17910.64382962515,"y":31024.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"00cb629e-bad4-4c6e-8abb-499cad3992f4","savedPayload":{"position":{"x":17938.64382962515,"y":31054.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"4909d182-e0d5-49a9-8ad2-a553c8aaaf88","savedPayload":{"position":{"x":17912.64382962515,"y":31301.23747069523},"targetPosition":{"x":17920.64382962515,"y":31249.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"075eb2a2-299b-4a0f-9f6d-76c385521dc4","savedPayload":{"position":{"x":17800.64382962515,"y":31332.23747069523},"targetPosition":{"x":17883.64382962515,"y":31289.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"e062ef2e-b252-4a66-8f58-d9aa8031f526","savedPayload":{"position":{"x":17883.64382962515,"y":31289.23747069523},"targetPosition":{"x":17920.64382962515,"y":31249.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e75be98-f874-486d-b749-536e364934dc","savedPayload":{"position":{"x":17920.64382962515,"y":31249.23747069523},"targetPosition":{"x":17845.64382962515,"y":31164.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"052f73cd-7ed7-4537-8b01-840b5b892fea","savedPayload":{"position":{"x":17845.64382962515,"y":31164.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07a7ec7c-273e-4675-8d8d-21ab8514a1f0","savedPayload":{"position":{"x":17895.458263866083,"y":32502.117186545547},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Deribit","config":"{ \n\"codeName\": \"deribit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f0b2354b-89e3-4eca-b051-664a3b8283f6","savedPayload":{"position":{"x":17862.64382962515,"y":30844.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4ae1f824-82a8-4796-a2d5-3d2358d8089f","savedPayload":{"position":{"x":17912.64382962515,"y":31024.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2013fe7a-d52c-4c9d-ba53-d281d014a8fc","savedPayload":{"position":{"x":17873.64382962515,"y":30926.23747069523},"targetPosition":{"x":17855.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"706d5778-ed21-49bd-9277-1840ec52708d","savedPayload":{"position":{"x":17729.64382962515,"y":31033.23747069523},"targetPosition":{"x":17813.64382962515,"y":31053.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2e76bc02-6e10-4f14-9bf1-a11dc4268466","savedPayload":{"position":{"x":17813.64382962515,"y":31053.23747069523},"targetPosition":{"x":17855.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"89a3ccc7-20ab-4e2d-929b-52d9286179b7","savedPayload":{"position":{"x":17855.64382962515,"y":30967.23747069523},"targetPosition":{"x":17818.64382962515,"y":30920.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5c8219e3-4509-4b8b-941b-b88ac2c12237","savedPayload":{"position":{"x":17818.64382962515,"y":30920.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"21971815-4248-45df-8e04-20b9a5a83f06","savedPayload":{"position":{"x":17794.92544989493,"y":32419.801715882462},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"DigiFinex","config":"{ \n\"codeName\": \"digifinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e583c93e-9a44-4e0d-acb7-56d7e00a555a","savedPayload":{"position":{"x":17954.64382962515,"y":30992.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8917c7c0-b420-4d4f-a35a-c0fc6870f0de","savedPayload":{"position":{"x":18052.64382962515,"y":30972.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a00b5bb0-5ab9-42e2-91fe-b450c7eb66d2","savedPayload":{"position":{"x":18220.64382962515,"y":31090.23747069523},"targetPosition":{"x":18123.64382962515,"y":30998.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2aafc473-339b-4d23-9b74-06fa7574c293","savedPayload":{"position":{"x":18144.64382962515,"y":31123.23747069523},"targetPosition":{"x":18203.64382962515,"y":31084.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"99e9e136-1ac7-4400-a100-0a2d37f0882d","savedPayload":{"position":{"x":18203.64382962515,"y":31084.23747069523},"targetPosition":{"x":18123.64382962515,"y":30998.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b7cee21b-ddcb-4fd7-b610-43aabb2d1766","savedPayload":{"position":{"x":18123.64382962515,"y":30998.23747069523},"targetPosition":{"x":18032.64382962515,"y":30976.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08e84a25-4368-4ad6-939f-5a16cece62cc","savedPayload":{"position":{"x":18032.64382962515,"y":30976.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b7d56781-0c51-4ec1-95fd-bf4dc8c00352","savedPayload":{"position":{"x":17703.88183147586,"y":32327.0992728693},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"DSX","config":"{ \n\"codeName\": \"dsx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"d672ab56-cd32-4ff5-8fc5-3733262aeccb","savedPayload":{"position":{"x":17916.64382962515,"y":31106.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3731a7b5-ba9d-483e-bb41-abf3ae0232c6","savedPayload":{"position":{"x":17878.64382962515,"y":30946.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9ef7e0ac-dc27-4b47-a06e-0cb7e80ee3d7","savedPayload":{"position":{"x":18124.64382962515,"y":31136.23747069523},"targetPosition":{"x":18093.64382962515,"y":31072.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"77491a3c-3db7-446f-aa67-9b5a1a3be7b3","savedPayload":{"position":{"x":18109.64382962515,"y":31081.23747069523},"targetPosition":{"x":18188.64382962515,"y":31137.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"bd1bd0b7-4943-4aeb-bf90-d3192dcabbb1","savedPayload":{"position":{"x":18188.64382962515,"y":31137.23747069523},"targetPosition":{"x":18093.64382962515,"y":31072.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45747fef-f30e-4fae-b02d-5768ae7dbe68","savedPayload":{"position":{"x":18093.64382962515,"y":31072.23747069523},"targetPosition":{"x":18018.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa2e1c9b-428c-4bb0-9e75-ceb8c9043d4b","savedPayload":{"position":{"x":18018.64382962515,"y":31005.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4c543abc-7372-4701-bc58-107578d45c25","savedPayload":{"position":{"x":17623.394811792878,"y":32225.09670889175},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FCoin","config":"{ \n\"codeName\": \"fcoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"a97d578c-6d7f-403c-8294-18aacf14abd8","savedPayload":{"position":{"x":17893.64382962515,"y":30953.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"442c3834-482e-4928-9255-8ac859ae012e","savedPayload":{"position":{"x":17905.64382962515,"y":30896.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"79754959-1219-4c4d-be63-22766158beb5","savedPayload":{"position":{"x":18106.64382962515,"y":30976.23747069523},"targetPosition":{"x":18069.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"1c3ae096-5024-43c3-abca-24498254e363","savedPayload":{"position":{"x":18112.64382962515,"y":30919.23747069523},"targetPosition":{"x":18126.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"59db5bfd-e413-48a7-af63-237ad56adc82","savedPayload":{"position":{"x":18126.64382962515,"y":30965.23747069523},"targetPosition":{"x":18069.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"833c4e54-08f4-48ec-b90a-2767eb55f244","savedPayload":{"position":{"x":18069.64382962515,"y":31056.23747069523},"targetPosition":{"x":17996.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a8cf17b3-0ea7-4a14-8c76-f655344b58a3","savedPayload":{"position":{"x":17996.64382962515,"y":30970.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6ddedcbd-07cb-4928-91b3-348f47118391","savedPayload":{"position":{"x":17554.408027561767,"y":32114.989910750606},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FCoinJP","config":"{ \n\"codeName\": \"fcoinjp\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"4a8a9810-6df6-451a-ab26-22bd7e7be85a","savedPayload":{"position":{"x":17930.64382962515,"y":31129.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"138ab40c-18ca-4a11-9709-0baa040873e6","savedPayload":{"position":{"x":18007.64382962515,"y":31122.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"258cdf92-8ed0-4133-ae2a-b9f086f56a13","savedPayload":{"position":{"x":17897.64382962515,"y":30887.23747069523},"targetPosition":{"x":17903.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"537e8f0c-05ca-4403-bc96-da6c2f4678ae","savedPayload":{"position":{"x":17825.64382962515,"y":30842.23747069523},"targetPosition":{"x":17836.64382962515,"y":30926.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"62519e63-8f4e-4b72-a341-0a6eea01ac3f","savedPayload":{"position":{"x":17836.64382962515,"y":30926.23747069523},"targetPosition":{"x":17903.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4974cc1-f594-436b-8aa4-aff2733b8e3c","savedPayload":{"position":{"x":17903.64382962515,"y":30977.23747069523},"targetPosition":{"x":17873.64382962515,"y":31061.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d84b404f-75e2-4eb5-b34a-b45af8a57ca7","savedPayload":{"position":{"x":17873.64382962515,"y":31061.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"982627ea-df84-4ba9-9219-612fbe1e4276","savedPayload":{"position":{"x":17497.730285752426,"y":31998.069779982467},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FTX","config":"{ \n\"codeName\": \"ftx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"20c0a4f5-bdb9-46cc-af7e-2111964551e3","savedPayload":{"position":{"x":17886.64382962515,"y":30940.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"75c99a0b-d3c9-4073-9283-d33e539c36bb","savedPayload":{"position":{"x":17992.64382962515,"y":31061.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2e037470-549e-4aa8-bbe7-95cdeaef88ea","savedPayload":{"position":{"x":17964.64382962515,"y":31027.23747069523},"targetPosition":{"x":17970.64382962515,"y":31008.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"3b6f5b7b-9c61-4b71-b29a-ca1bc027e55f","savedPayload":{"position":{"x":17817.64382962515,"y":30943.23747069523},"targetPosition":{"x":17890.64382962515,"y":30978.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"a84010f0-04b5-4eab-a3a6-a5944b80a373","savedPayload":{"position":{"x":17890.64382962515,"y":30978.23747069523},"targetPosition":{"x":17970.64382962515,"y":31008.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5cdc51a3-6136-4e03-9e2c-26a752140d17","savedPayload":{"position":{"x":17970.64382962515,"y":31008.23747069523},"targetPosition":{"x":18010.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"55258a2b-3199-4070-beed-d34a8496870c","savedPayload":{"position":{"x":18010.64382962515,"y":30986.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0c0bcf5c-2774-423e-9fcf-c512b38dd06d","savedPayload":{"position":{"x":17454.026081066615,"y":31875.707098219504},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Gate.io","config":"{ \n\"codeName\": \"gateio\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"71a15089-9d40-4726-9a41-37d406064164","savedPayload":{"position":{"x":17930.64382962515,"y":30993.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c025e976-c2c6-49de-81ec-48e2f737b412","savedPayload":{"position":{"x":17925.64382962515,"y":31053.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"876f964a-e12d-4438-87fb-a84be22f86d1","savedPayload":{"position":{"x":17914.64382962515,"y":30833.23747069523},"targetPosition":{"x":17827.64382962515,"y":30882.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0c5d34c4-467f-4e98-bd39-1b2d9afb834e","savedPayload":{"position":{"x":17852.64382962515,"y":30831.23747069523},"targetPosition":{"x":17870.64382962515,"y":30847.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"89316d8c-893a-46ae-b147-948b4b8a5292","savedPayload":{"position":{"x":17870.64382962515,"y":30847.23747069523},"targetPosition":{"x":17827.64382962515,"y":30882.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a2a5de53-bd45-4904-8bae-0cf5ed66d2af","savedPayload":{"position":{"x":17827.64382962515,"y":30882.23747069523},"targetPosition":{"x":17800.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f6f4072d-8cf6-4e47-8b4e-a21cd553348a","savedPayload":{"position":{"x":17800.64382962515,"y":30936.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c4028289-4cdb-4da0-90e6-5f93328b8e03","savedPayload":{"position":{"x":17423.807805345143,"y":31749.336456028108},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Gemini","config":"{ \n\"codeName\": \"gemini\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9eb15872-8d15-4086-9920-46909eb5f9e7","savedPayload":{"position":{"x":17951.64382962515,"y":30901.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"a84dcf06-57c6-47d7-97a0-9f03f3af8b34","savedPayload":{"position":{"x":18045.64382962515,"y":30891.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5da1ba65-3839-4664-8105-2ccb11652767","savedPayload":{"position":{"x":18028.64382962515,"y":31112.23747069523},"targetPosition":{"x":17941.64382962515,"y":31044.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"337fe5e2-b9fd-40eb-9f42-44fc5057d981","savedPayload":{"position":{"x":17957.64382962515,"y":31129.23747069523},"targetPosition":{"x":17875.64382962515,"y":31086.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"17a3f4a3-8914-4995-afb0-7e8115791b17","savedPayload":{"position":{"x":17875.64382962515,"y":31086.23747069523},"targetPosition":{"x":17941.64382962515,"y":31044.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"32e4a3f1-40d8-421f-9634-7ab339858286","savedPayload":{"position":{"x":17941.64382962515,"y":31044.23747069523},"targetPosition":{"x":17877.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"365f6865-e707-415d-a168-b67c66ca9553","savedPayload":{"position":{"x":17877.64382962515,"y":30977.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"58bf8247-baef-4ea6-a483-7ed8f0ba5043","savedPayload":{"position":{"x":17407.429740242005,"y":31620.439433646203},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"HitBTC","config":"{ \n\"codeName\": \"hitbtc\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"1632c520-fa79-442f-b33b-430cb1356de6","savedPayload":{"position":{"x":17809.64382962515,"y":31086.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"576d1666-dbd3-4914-9fe2-fa05bdf72eea","savedPayload":{"position":{"x":17840.64382962515,"y":31148.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"41317aae-08ce-48cf-a47b-c2d2cc3920ec","savedPayload":{"position":{"x":18096.64382962515,"y":30975.23747069523},"targetPosition":{"x":18026.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"23d7e4ba-8432-4214-bd94-0db5046e39cd","savedPayload":{"position":{"x":18039.64382962515,"y":31075.23747069523},"targetPosition":{"x":17981.64382962515,"y":31126.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ab200349-5ba5-44d2-ad5c-fa826303cfcd","savedPayload":{"position":{"x":17981.64382962515,"y":31126.23747069523},"targetPosition":{"x":18026.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a5f24785-5b2c-429b-a2e4-07063e2de904","savedPayload":{"position":{"x":18026.64382962515,"y":31066.23747069523},"targetPosition":{"x":17972.64382962515,"y":31093.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13f275ca-06a6-4a72-8b4d-a9c079b9cef4","savedPayload":{"position":{"x":17972.64382962515,"y":31093.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8384fa0b-854c-4c23-846e-a5da0179a738","savedPayload":{"position":{"x":17405.083903595932,"y":31490.527230809537},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"HitBTC","config":"{ \n\"codeName\": \"hitbtc2\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9a29cb9e-ee8d-4315-8532-eef82224b84a","savedPayload":{"position":{"x":17838.64382962515,"y":30922.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"badd79e7-1e21-4dc3-bfa7-8dfb4a6c6267","savedPayload":{"position":{"x":17920.64382962515,"y":30944.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"ffdda0b7-af50-4010-84da-2bc0d562af2b","savedPayload":{"position":{"x":17887.64382962515,"y":30982.23747069523},"targetPosition":{"x":17836.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"24816eed-adf7-453e-9b38-42ea4758dbaa","savedPayload":{"position":{"x":18021.64382962515,"y":30979.23747069523},"targetPosition":{"x":17931.64382962515,"y":30923.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"1dd16858-5641-4454-88a3-e5d7446e12a3","savedPayload":{"position":{"x":17931.64382962515,"y":30923.23747069523},"targetPosition":{"x":17836.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"457d75ed-ad21-4ee5-b36b-88cdc444008e","savedPayload":{"position":{"x":17836.64382962515,"y":31023.23747069523},"targetPosition":{"x":17808.64382962515,"y":31039.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b29ded7e-e2d5-4c7f-89af-b0816c32c743","savedPayload":{"position":{"x":17808.64382962515,"y":31039.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"09c634c2-5aba-49c5-80bc-4fd4175e7f0c","savedPayload":{"position":{"x":17416.79779819678,"y":31361.12294931652},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Huobi Pro","config":"{ \n\"codeName\": \"huobipro\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"86caa38c-5bdf-40e4-b27b-8d8b64319575","savedPayload":{"position":{"x":18071.64382962515,"y":31171.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"001225af-c715-4566-9502-f8f0ac1c4531","savedPayload":{"position":{"x":18040.64382962515,"y":31019.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"b4bf5ccb-b529-4500-a192-d9c3a0613389","savedPayload":{"position":{"x":18129.64382962515,"y":31073.23747069523},"targetPosition":{"x":18033.64382962515,"y":31090.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2e58c6d1-cfa7-4dc7-a322-e9356596ea1e","savedPayload":{"position":{"x":17976.64382962515,"y":31132.23747069523},"targetPosition":{"x":17953.64382962515,"y":31093.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae04ddf4-ae3e-4bdc-9393-41acc38ef818","savedPayload":{"position":{"x":17953.64382962515,"y":31093.23747069523},"targetPosition":{"x":18033.64382962515,"y":31090.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2428e8ef-6a09-48fa-8ae4-ebfb28420be8","savedPayload":{"position":{"x":18033.64382962515,"y":31090.23747069523},"targetPosition":{"x":18085.64382962515,"y":31157.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"55c71c8b-f21f-4d16-ae93-e29362c39bf5","savedPayload":{"position":{"x":18085.64382962515,"y":31157.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"967c3914-a76d-4389-9c7e-9c258ae683bd","savedPayload":{"position":{"x":17442.43408934047,"y":31233.743736052187},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Huobi Russia","config":"{ \n\"codeName\": \"huobiru\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9b7b32d6-a42e-44bb-8065-5aa32b1e844b","savedPayload":{"position":{"x":17980.64382962515,"y":31034.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8d74201c-33cd-4e12-8920-b08d0ef97572","savedPayload":{"position":{"x":17992.64382962515,"y":31105.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c6e289d7-074b-4837-96e3-687988886fcc","savedPayload":{"position":{"x":18078.64382962515,"y":30954.23747069523},"targetPosition":{"x":18008.64382962515,"y":31029.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d72f81ba-6b41-414d-9cf0-d5f9c0c25403","savedPayload":{"position":{"x":18026.64382962515,"y":31021.23747069523},"targetPosition":{"x":18083.64382962515,"y":31117.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5354f66c-6e73-4fe5-80ca-2c25b761ef51","savedPayload":{"position":{"x":18083.64382962515,"y":31117.23747069523},"targetPosition":{"x":18008.64382962515,"y":31029.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"81f5adbb-054c-47f2-b019-52585f5d7417","savedPayload":{"position":{"x":18008.64382962515,"y":31029.23747069523},"targetPosition":{"x":18018.64382962515,"y":31009.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ecd8645b-4bb6-4641-a20f-cee51bf33f1a","savedPayload":{"position":{"x":18018.64382962515,"y":31009.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6f97bb5c-8d85-43ee-86a1-33e22cdfbb5e","savedPayload":{"position":{"x":17481.692214952825,"y":31109.882995828142},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"KKEX","config":"{ \n\"codeName\": \"kkex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"daa4e07a-1cd8-4d92-8004-2eabfaa62f77","savedPayload":{"position":{"x":17924.64382962515,"y":31038.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"cb64951f-d984-4f51-a751-166a316084f3","savedPayload":{"position":{"x":17945.64382962515,"y":31156.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6915bf12-9271-47e2-8b49-924ae9f5c65f","savedPayload":{"position":{"x":17958.64382962515,"y":31297.23747069523},"targetPosition":{"x":17875.64382962515,"y":31252.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"ff53381f-c6dd-4d17-a477-11396f60663f","savedPayload":{"position":{"x":17805.64382962515,"y":31141.23747069523},"targetPosition":{"x":17861.64382962515,"y":31223.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae05bfc4-6ac8-408c-a90b-263830b2a71e","savedPayload":{"position":{"x":17861.64382962515,"y":31223.23747069523},"targetPosition":{"x":17875.64382962515,"y":31252.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61c85f1a-a2a6-45c9-bb1e-3c76110f5d1e","savedPayload":{"position":{"x":17875.64382962515,"y":31252.23747069523},"targetPosition":{"x":17911.64382962515,"y":31154.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fafb114-37d2-4d04-9c42-83d04ff62fc7","savedPayload":{"position":{"x":17911.64382962515,"y":31154.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"16ae95ce-796f-4f2b-942c-f98dcbf9cf4b","savedPayload":{"position":{"x":17534.11190940509,"y":30990.99288257655},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Kraken","config":"{ \n\"codeName\": \"kraken\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"747af60f-c8b9-4377-aa6c-172d4137ea23","savedPayload":{"position":{"x":17854.64382962515,"y":31008.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c75f7d97-9dc2-4d3e-89eb-f8a3d5f16368","savedPayload":{"position":{"x":17916.64382962515,"y":30872.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"0093e946-03f4-4aec-942d-c76aed12ab1a","savedPayload":{"position":{"x":17780.64382962515,"y":31091.23747069523},"targetPosition":{"x":17836.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2a4235ac-e5ea-4484-bccd-f06c8a7275ec","savedPayload":{"position":{"x":17930.64382962515,"y":30869.23747069523},"targetPosition":{"x":17883.64382962515,"y":30953.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"737dec0a-23ab-4044-94ba-95c8bc50c0eb","savedPayload":{"position":{"x":17883.64382962515,"y":30953.23747069523},"targetPosition":{"x":17836.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"457b045e-dae5-4f53-a8b7-cab4757e5286","savedPayload":{"position":{"x":17836.64382962515,"y":31011.23747069523},"targetPosition":{"x":17926.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6eff12db-8e7c-402a-9e06-ae2618f506a0","savedPayload":{"position":{"x":17926.64382962515,"y":31005.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"644efe9c-597a-4ddf-9e28-b33fb3b62d3e","savedPayload":{"position":{"x":17599.078599707587,"y":30878.467274173025},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"KuCoin","config":"{ \n\"codeName\": \"kucoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"01ca3037-4ed3-499e-ad6b-e14ca1d4a51f","savedPayload":{"position":{"x":17919.64382962515,"y":30949.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8b3c4ce0-98b1-4d46-bd02-6cf44c3dd686","savedPayload":{"position":{"x":17998.64382962515,"y":30978.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d6c7c0ef-670d-4ed6-9246-6eb7d6bfc359","savedPayload":{"position":{"x":17927.64382962515,"y":30962.23747069523},"targetPosition":{"x":17953.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e8c2c454-b246-4f63-b51b-74d9cbb01ac2","savedPayload":{"position":{"x":17927.64382962515,"y":30924.23747069523},"targetPosition":{"x":17912.64382962515,"y":30869.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"d2bb2603-3b52-443c-8923-86fefafc0b14","savedPayload":{"position":{"x":17912.64382962515,"y":30869.23747069523},"targetPosition":{"x":17953.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fa83b0b9-1039-4406-907c-f809a5af40f5","savedPayload":{"position":{"x":17953.64382962515,"y":30954.23747069523},"targetPosition":{"x":17966.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"471161d3-201e-40c6-b433-49643cf7e43b","savedPayload":{"position":{"x":17966.64382962515,"y":30962.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d79bc720-68e1-4771-a66a-bcffa30639d3","savedPayload":{"position":{"x":17675.830610816145,"y":30773.625430492953},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"LBank","config":"{ \n\"codeName\": \"lbank\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"def3f9d0-f09e-4e09-8b6d-a4c322a4384b","savedPayload":{"position":{"x":17877.64382962515,"y":31024.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"53eac3c1-96d6-4cb1-b54d-f3f174eaf733","savedPayload":{"position":{"x":17764.64382962515,"y":31036.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c6c00704-1357-4426-910e-8134d6f87017","savedPayload":{"position":{"x":18030.64382962515,"y":31212.23747069523},"targetPosition":{"x":17951.64382962515,"y":31172.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"13990604-2192-4be1-b21b-53cf2bafc002","savedPayload":{"position":{"x":17893.64382962515,"y":31189.23747069523},"targetPosition":{"x":17964.64382962515,"y":31122.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ed2c483e-d412-406d-b6f3-cfb1112a3a05","savedPayload":{"position":{"x":17964.64382962515,"y":31122.23747069523},"targetPosition":{"x":17951.64382962515,"y":31172.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6033b63c-c7fe-4a5d-8cf6-82128e2cfb41","savedPayload":{"position":{"x":17951.64382962515,"y":31172.23747069523},"targetPosition":{"x":17891.64382962515,"y":31096.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20ece5c4-dbfa-4f4a-a9ee-8c8d9c38943b","savedPayload":{"position":{"x":17891.64382962515,"y":31096.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cb2558d6-dab0-4f35-b83f-7cfc161b3d4f","savedPayload":{"position":{"x":17763.468095575536,"y":30677.69652629567},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Mercado Bitcoin","config":"{ \n\"codeName\": \"mercado\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"83ab2c39-e844-496f-bebb-7b8607428902","savedPayload":{"position":{"x":17849.64382962515,"y":31081.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d69e722e-c71a-462a-8bbd-d3482d0eab21","savedPayload":{"position":{"x":17771.64382962515,"y":30887.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"18438709-83cf-49a3-96b8-888ab5adbcc5","savedPayload":{"position":{"x":17937.64382962515,"y":31080.23747069523},"targetPosition":{"x":17866.64382962515,"y":31013.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"6b9d4ed4-af81-462a-aace-fac0afd4687a","savedPayload":{"position":{"x":17787.64382962515,"y":30841.23747069523},"targetPosition":{"x":17873.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"802a4c53-8617-4257-95a5-45bfaa60ad0e","savedPayload":{"position":{"x":17873.64382962515,"y":30935.23747069523},"targetPosition":{"x":17866.64382962515,"y":31013.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"87936a4a-aac5-4aca-8f3e-2051611932c4","savedPayload":{"position":{"x":17866.64382962515,"y":31013.23747069523},"targetPosition":{"x":17829.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"48f3a793-bb97-447b-8f1a-1d6965219747","savedPayload":{"position":{"x":17829.64382962515,"y":30919.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5002072e-145c-4aeb-a611-3e0e4c60ee5d","savedPayload":{"position":{"x":17860.963584604677,"y":30591.805240274254},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKCoin","config":"{ \n\"codeName\": \"okcoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"1e4dd5c8-0545-4698-8695-c985880243a3","savedPayload":{"position":{"x":17921.64382962515,"y":31043.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0e188cae-9764-4963-a78b-e5d7ef272522","savedPayload":{"position":{"x":18005.64382962515,"y":30891.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6d82bfd7-b4e1-4f93-a0f8-18f62cee944e","savedPayload":{"position":{"x":18047.64382962515,"y":30877.23747069523},"targetPosition":{"x":17963.64382962515,"y":30898.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d815409c-1dd4-4e89-b844-5b96104509b4","savedPayload":{"position":{"x":17958.64382962515,"y":30988.23747069523},"targetPosition":{"x":17945.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"238b9d2c-e2c0-4a77-945e-8e28604c0a2d","savedPayload":{"position":{"x":17945.64382962515,"y":30961.23747069523},"targetPosition":{"x":17963.64382962515,"y":30898.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8416c29a-5d73-4b2a-9463-511f400deafb","savedPayload":{"position":{"x":17963.64382962515,"y":30898.23747069523},"targetPosition":{"x":18047.64382962515,"y":30885.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04abf32b-084e-4784-aa84-8c5612d3b7b9","savedPayload":{"position":{"x":18047.64382962515,"y":30885.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1f860b4b-2893-4a51-8649-19c47d494a37","savedPayload":{"position":{"x":17967.17403243568,"y":30516.958569226157},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKEX","config":"{ \n\"codeName\": \"okex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"7f618566-3d10-4c3c-90b2-7541a5146eeb","savedPayload":{"position":{"x":17770.64382962515,"y":31094.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"21205576-5d12-452c-814f-eb56182162ae","savedPayload":{"position":{"x":17794.64382962515,"y":31173.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"46456247-ae9c-41ea-8395-a5e4a78007d4","savedPayload":{"position":{"x":17724.64382962515,"y":31147.23747069523},"targetPosition":{"x":17795.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"706bf601-eaad-48bd-b0a7-8dad59066171","savedPayload":{"position":{"x":17715.64382962515,"y":31182.23747069523},"targetPosition":{"x":17706.64382962515,"y":31162.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"f9c7071c-2e5b-4c90-b482-dfc7ee001244","savedPayload":{"position":{"x":17706.64382962515,"y":31162.23747069523},"targetPosition":{"x":17795.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e87e1e10-3404-48b9-8629-5df92ffa1979","savedPayload":{"position":{"x":17795.64382962515,"y":31083.23747069523},"targetPosition":{"x":17789.64382962515,"y":31181.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08e8fd6a-6b23-4d65-8b8e-d966f845c07f","savedPayload":{"position":{"x":17789.64382962515,"y":31181.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"aa0edec0-8b27-4f94-abce-1e437ce5aba6","savedPayload":{"position":{"x":18080.854218676865,"y":30454.034021936455},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"RightBTC","config":"{ \n\"codeName\": \"rightbtc\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"ade372e9-5070-4fa9-843e-57732c4106c3","savedPayload":{"position":{"x":17999.64382962515,"y":30964.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b63d440e-4501-475c-b8a6-2b9a144e32a1","savedPayload":{"position":{"x":17984.64382962515,"y":30901.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"81d77477-4f2e-43c0-b284-dde54f91c37f","savedPayload":{"position":{"x":17864.64382962515,"y":31036.23747069523},"targetPosition":{"x":17861.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"9ce3cc34-1ba4-4155-96a5-c946b1bcc5ab","savedPayload":{"position":{"x":17819.64382962515,"y":31127.23747069523},"targetPosition":{"x":17810.64382962515,"y":31080.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c7df4af7-37c1-403d-ada1-b6a527821bdd","savedPayload":{"position":{"x":17810.64382962515,"y":31080.23747069523},"targetPosition":{"x":17861.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6de19501-5ce7-4944-b9dd-25b149acbb38","savedPayload":{"position":{"x":17861.64382962515,"y":31043.23747069523},"targetPosition":{"x":17946.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa87ace4-a976-401c-93f9-24a498261742","savedPayload":{"position":{"x":17946.64382962515,"y":30988.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c20cd9e1-52a0-4d17-b90c-e9d5b63315ce","savedPayload":{"position":{"x":18200.67134708334,"y":30403.76933118965},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"STEX","config":"{ \n\"codeName\": \"stex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f1d65161-4922-4a1e-ac98-df1a842347a7","savedPayload":{"position":{"x":17872.64382962515,"y":31001.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c313b2c6-6154-4a9a-b826-fd99cc500cd9","savedPayload":{"position":{"x":17888.64382962515,"y":31186.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d0a1259b-1c37-4d39-836e-3c434c3b3687","savedPayload":{"position":{"x":17778.64382962515,"y":31076.23747069523},"targetPosition":{"x":17858.64382962515,"y":31091.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"4a1e5627-459c-4dec-be13-c20d4a9ea58f","savedPayload":{"position":{"x":17841.64382962515,"y":31179.23747069523},"targetPosition":{"x":17795.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"6981eb0d-0f0e-4f8e-9781-4a03e22e93fd","savedPayload":{"position":{"x":17795.64382962515,"y":31105.23747069523},"targetPosition":{"x":17858.64382962515,"y":31091.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7704478a-9717-43a8-bd2e-88daa6f84bd0","savedPayload":{"position":{"x":17858.64382962515,"y":31091.23747069523},"targetPosition":{"x":17941.64382962515,"y":31173.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"262aad86-f430-49ea-a636-e8bd816a9636","savedPayload":{"position":{"x":17941.64382962515,"y":31173.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0ea23137-3c65-4de1-9772-6ac1b65196e8","savedPayload":{"position":{"x":18325.220671374373,"y":30366.753804527314},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TideBit","config":"{ \n\"codeName\": \"tidebit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c92318bd-8b2d-489b-b8e8-cf30fb63286e","savedPayload":{"position":{"x":17981.64382962515,"y":31021.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"83bca3ec-fc1c-435c-b5fe-b1cf92463fd1","savedPayload":{"position":{"x":18051.64382962515,"y":31072.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2f3ee9b2-cd41-458c-84da-edac3155028a","savedPayload":{"position":{"x":18075.64382962515,"y":31059.23747069523},"targetPosition":{"x":17987.64382962515,"y":31047.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"009ae4b6-adbc-4900-9fc0-f18936eeed9b","savedPayload":{"position":{"x":18030.64382962515,"y":31058.23747069523},"targetPosition":{"x":18009.64382962515,"y":31028.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"3ee88180-fe10-41df-8251-b1ed0a526e7a","savedPayload":{"position":{"x":18009.64382962515,"y":31028.23747069523},"targetPosition":{"x":17987.64382962515,"y":31047.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bb88e6e8-a99a-4c4e-9ca5-ffed49aa8b54","savedPayload":{"position":{"x":17987.64382962515,"y":31047.23747069523},"targetPosition":{"x":17925.64382962515,"y":31135.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13a4a95e-4333-4455-9f7c-90bc839d174a","savedPayload":{"position":{"x":17925.64382962515,"y":31135.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5563c310-701a-4c1e-8155-87c08c927ce3","savedPayload":{"position":{"x":18453.041964599197,"y":30343.421415155935},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TimeX","config":"{ \n\"codeName\": \"timex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"5c004b5f-eec4-414f-8d01-d9b3fddeee9e","savedPayload":{"position":{"x":17892.64382962515,"y":30973.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"59a33add-d0e9-4ae1-8a01-f1e0ed09cb61","savedPayload":{"position":{"x":17911.64382962515,"y":30878.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a4189ba1-d1d4-4ff8-91dd-a8696ca493e3","savedPayload":{"position":{"x":17953.64382962515,"y":30880.23747069523},"targetPosition":{"x":17924.64382962515,"y":30871.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"3d34eb9d-e7cb-42fe-8785-c327b2bbc529","savedPayload":{"position":{"x":17839.64382962515,"y":30875.23747069523},"targetPosition":{"x":17930.64382962515,"y":30877.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"773de01f-0999-4a59-91f0-642148cd58d0","savedPayload":{"position":{"x":17930.64382962515,"y":30877.23747069523},"targetPosition":{"x":17924.64382962515,"y":30871.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fe33a596-4f98-4843-a5b1-26e7e0fcf1c8","savedPayload":{"position":{"x":17924.64382962515,"y":30871.23747069523},"targetPosition":{"x":18018.64382962515,"y":30832.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d078b9a3-cdc6-458e-a511-dc4f5bef38ba","savedPayload":{"position":{"x":18018.64382962515,"y":30832.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"27d69fa7-b561-4986-8c0d-1b374e7e1bf1","savedPayload":{"position":{"x":18582.63663896287,"y":30334.045714007894},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TOP.Q","config":"{ \n\"codeName\": \"topq\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"eafef6a3-eed2-470e-a15c-aa4c10001cd2","savedPayload":{"position":{"x":17818.64382962515,"y":31115.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"2d5eb813-ceb6-40cd-8682-7205596bb8b5","savedPayload":{"position":{"x":17759.64382962515,"y":31188.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"61f7832c-c1f0-40bc-b1f2-ba947c58309d","savedPayload":{"position":{"x":17741.64382962515,"y":31288.23747069523},"targetPosition":{"x":17788.64382962515,"y":31228.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"63b973da-30a7-467a-b954-c57537aab18d","savedPayload":{"position":{"x":17677.64382962515,"y":31206.23747069523},"targetPosition":{"x":17756.64382962515,"y":31146.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"722dcf44-de3f-4d1a-8655-80561e1e4d55","savedPayload":{"position":{"x":17756.64382962515,"y":31146.23747069523},"targetPosition":{"x":17788.64382962515,"y":31228.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45d5e04a-4a53-4f32-b4c0-d882456cb263","savedPayload":{"position":{"x":17788.64382962515,"y":31228.23747069523},"targetPosition":{"x":17806.64382962515,"y":31163.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c66e8dfc-4847-4180-b82c-36458f9b405d","savedPayload":{"position":{"x":17806.64382962515,"y":31163.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8fdf13d8-e8d2-4ef4-8b34-f492a25d753a","savedPayload":{"position":{"x":18712.485315398026,"y":30338.736622606855},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Upbit","config":"{ \n\"codeName\": \"upbit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f456fec2-cee6-4f0c-b865-1188088879c9","savedPayload":{"position":{"x":17919.64382962515,"y":30973.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"947c1ca0-bff9-4372-b153-40054e29b705","savedPayload":{"position":{"x":17921.64382962515,"y":31014.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"34ffbe12-5a26-446a-8bf6-7395c0370ba2","savedPayload":{"position":{"x":17874.64382962515,"y":30900.23747069523},"targetPosition":{"x":17945.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"8f00f19d-74a8-48d8-b951-79f35e87b110","savedPayload":{"position":{"x":17906.64382962515,"y":30902.23747069523},"targetPosition":{"x":17896.64382962515,"y":30896.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"64e1bede-aabf-4831-83a6-fe1cea435613","savedPayload":{"position":{"x":17896.64382962515,"y":30896.23747069523},"targetPosition":{"x":17945.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7c80b956-f2ca-4a6f-a661-f17546288d3e","savedPayload":{"position":{"x":17945.64382962515,"y":30971.23747069523},"targetPosition":{"x":18027.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e3686b02-4ecc-4dcb-a311-b7ef542a3c37","savedPayload":{"position":{"x":18027.64382962515,"y":31048.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"74e57ecd-3394-42b4-b2c4-6f216f7e41db","savedPayload":{"position":{"x":18841.065636895226,"y":30357.439144338445},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"WhiteBit","config":"{ \n\"codeName\": \"whitebit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c16eae45-a568-4b2e-b064-4431bdf34c24","savedPayload":{"position":{"x":17767.64382962515,"y":30899.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"dfdf793f-4ba6-4215-a325-323c0f223553","savedPayload":{"position":{"x":17920.64382962515,"y":31004.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"fd749d13-dbac-493f-9af6-c521eddf909f","savedPayload":{"position":{"x":17815.64382962515,"y":30973.23747069523},"targetPosition":{"x":17720.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"79f7d2d0-77a5-4f38-ac68-fd11f18e5e6b","savedPayload":{"position":{"x":17761.64382962515,"y":31182.23747069523},"targetPosition":{"x":17680.64382962515,"y":31153.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fd0506f4-58b7-431e-bc9d-69bce63c3379","savedPayload":{"position":{"x":17680.64382962515,"y":31153.23747069523},"targetPosition":{"x":17720.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"47e8a4b1-9a6c-4555-a881-f7524183d72e","savedPayload":{"position":{"x":17720.64382962515,"y":31056.23747069523},"targetPosition":{"x":17817.64382962515,"y":31010.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7fa08b91-55ab-477d-a097-88ea7f25fb76","savedPayload":{"position":{"x":17817.64382962515,"y":31010.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"467ece1e-d1d0-4a11-ae7a-d0e22cd4eba5","savedPayload":{"position":{"x":18966.87011674703,"y":30389.934009235236},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"ZB","config":"{ \n\"codeName\": \"zb\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"db206cbd-a587-4e8e-acbe-6581ad3b5cc4","savedPayload":{"position":{"x":17855.64382962515,"y":31027.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"1dd658c5-7755-44b7-85f0-9bcd787762a0","savedPayload":{"position":{"x":17789.64382962515,"y":31044.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"0de82bbe-7909-4b65-b304-f59b41f618ae","savedPayload":{"position":{"x":17830.64382962515,"y":30696.23747069523},"targetPosition":{"x":17846.64382962515,"y":30793.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c89819d0-8880-4b36-a9b3-0b284d266e3b","savedPayload":{"position":{"x":17891.64382962515,"y":30748.23747069523},"targetPosition":{"x":17865.64382962515,"y":30772.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"7a55f503-17fa-45c4-880b-1a9a11a0a555","savedPayload":{"position":{"x":17865.64382962515,"y":30772.23747069523},"targetPosition":{"x":17846.64382962515,"y":30793.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e640fca2-8bab-45ff-9a47-8e7b9650c277","savedPayload":{"position":{"x":17846.64382962515,"y":30793.23747069523},"targetPosition":{"x":17909.64382962515,"y":30886.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"421a99cd-3d9a-46a5-8654-08d6336e75be","savedPayload":{"position":{"x":17909.64382962515,"y":30886.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07df07e8-39a8-4fbc-a0c8-150f20b6ac59","savedPayload":{"position":{"x":19088.423812451314,"y":30435.840244716648},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51f64e29-e3ab-4683-a5de-f397fbf94260","savedPayload":{"position":{"x":18604.301618063546,"y":31533.850126685462},"targetPosition":{"x":18904.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Testing Queue","project":"Superalgos","exchanges":[],"id":"895ce4b1-4890-4216-89ba-a012181d2546","savedPayload":{"position":{"x":18754.301618063546,"y":30754.427263279467},"targetPosition":{"x":18904.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"signalsProviders":[],"id":"7217b56c-e854-4c06-8b8a-d5d3c05a153d","savedPayload":{"position":{"x":18904.301618063546,"y":31014.2348844148},"targetPosition":{"x":18904.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Charting Space","name":"New Charting Space","project":"Superalgos","viewport":{"type":"Viewport","name":"New Viewport","config":"{\"zoom\":\"0.00\"}","project":"Superalgos","id":"01713f1d-91b8-44f9-9c5d-a0c12fd09037","savedPayload":{"position":{"x":19200.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"frame":{"position":{"x":-69.625,"y":499.375}}}},"projectDashboards":[{"type":"Project Dashboards","name":"Superalgos","project":"Superalgos","dashboards":[{"type":"Dashboard","name":"Testing Trading Tasks My Computer","project":"Superalgos","timeMachines":[{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","config":"{}","project":"Superalgos","timeScale":{"type":"Time Scale","name":"New Time Scale","config":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-04-14T12:19:32.669Z\",\n \"toDate\": \"2020-04-24T22:36:06.989Z\"\n}","project":"Superalgos","id":"873982d6-57e3-43dd-b8df-7d399f87403f","savedPayload":{"position":{"x":18080.156473662064,"y":25430.789858951222},"targetPosition":{"x":18040.99861599605,"y":25133.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","config":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 6309.911126811459,\n \"maxValue\": 7824.566413643572\n}","project":"Superalgos","id":"df1ab660-5875-4f64-800a-723b2217daac","savedPayload":{"position":{"x":17963.352902465293,"y":25423.1341484258},"targetPosition":{"x":18040.99861599605,"y":25133.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","config":"{\n \"value\": \"01-hs\"\n}","project":"Superalgos","id":"97d52739-b93b-48fd-884f-4a84bebc2c17","savedPayload":{"position":{"x":17858.370187293433,"y":25371.36240262645},"targetPosition":{"x":18040.99861599605,"y":25133.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Trading Engine","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading Engine","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Episode","project":"Superalgos","layers":[{"type":"Layer","name":"Episode Counters","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Episode Counters","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2b55f5e9-4baa-475c-8930-cef3bf74b21c","savedPayload":{"position":{"x":18822.806237131383,"y":25308.35640053908},"targetPosition":{"x":18759.806237131383,"y":25344.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Counters","id":"2a5783fe-af9a-443c-b4e7-32d8bdabff82"}}}],"id":"e963d9bf-58fe-48d6-93c7-1c16f3137318","savedPayload":{"position":{"x":18759.806237131383,"y":25344.35640053908},"targetPosition":{"x":18660.806237131383,"y":25258.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"1f19bd0a-29a9-4b6a-a019-c893bd140ec6","savedPayload":{"position":{"x":18576.806237131383,"y":25225.35640053908},"targetPosition":{"x":18660.806237131383,"y":25258.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"96ebb0e8-97c5-4c7f-8876-41ea2e5ed695","savedPayload":{"position":{"x":17132.172250170668,"y":26469.471485763548},"targetPosition":{"x":17041.960510319386,"y":26183.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Counters","id":"cef828df-01c6-4407-9fa7-cf17fd49dc91"}}},{"type":"Layer","name":"Episode Statistics","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Episode Statistics","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"efdb5e54-7eef-4001-adf2-6faa7a702cf8","savedPayload":{"position":{"x":18607.806237131383,"y":25470.35640053908},"targetPosition":{"x":18655.806237131383,"y":25424.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Statistics","id":"6ea43033-418d-4d87-b640-02010679aa8b"}}}],"id":"6b1fa1d8-48d0-456e-809c-da7d6a06e05e","savedPayload":{"position":{"x":18655.806237131383,"y":25424.35640053908},"targetPosition":{"x":18665.806237131383,"y":25338.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"4ef89e39-b996-444a-a201-b798d0622fff","savedPayload":{"position":{"x":18614.806237131383,"y":25343.35640053908},"targetPosition":{"x":18665.806237131383,"y":25338.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4332e252-6cd0-4e38-9102-c4d4fa85331b","savedPayload":{"position":{"x":17106.892394500817,"y":26476.24520267506},"targetPosition":{"x":17041.960510319386,"y":26183.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Statistics","id":"2bc37bb8-7c27-4d1c-9599-cf0f34dc444e"}}},{"type":"Layer","name":"Episode Candle","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e1f66283-a46a-4e3e-8a83-f13fdbe5b36b","savedPayload":{"position":{"x":18549.806237131383,"y":25279.35640053908},"targetPosition":{"x":18605.806237131383,"y":25285.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"29b56808-e65d-44c2-982c-465220c785e1","savedPayload":{"position":{"x":18530.806237131383,"y":25295.35640053908},"targetPosition":{"x":18605.806237131383,"y":25285.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2ac70641-f1f2-4170-a049-32f15813b27b","savedPayload":{"position":{"x":17081.1183679854,"y":26480.789858951222},"targetPosition":{"x":17041.960510319386,"y":26183.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Candle","id":"02deeacc-df97-426a-bf87-ff766baac6c1"}}},{"type":"Layer","name":"Episode Balances","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Current Balance","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"be671113-1656-48d6-bca5-cec560ff4617","savedPayload":{"position":{"x":18919.806237131383,"y":25249.35640053908},"targetPosition":{"x":18824.806237131383,"y":25155.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Current Balance","id":"cb03ef16-522f-4189-ab3a-b410bf1f4176"}}}],"id":"912d4472-98a1-46a3-b83b-82581d5252c0","savedPayload":{"position":{"x":18824.806237131383,"y":25155.35640053908},"targetPosition":{"x":18765.806237131383,"y":25230.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"40d1e624-35f5-4749-b340-5334b8c2b261","savedPayload":{"position":{"x":18790.806237131383,"y":25258.35640053908},"targetPosition":{"x":18765.806237131383,"y":25230.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3928af55-cad8-43eb-b4bf-a83ff1c6e230","savedPayload":{"position":{"x":17055.046326528987,"y":26483.070867013637},"targetPosition":{"x":17041.960510319386,"y":26183.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Balances","id":"11523798-0639-4837-bef6-1e501f2f4d3d"}}},{"type":"Layer","name":"Distance To Event","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"fb70f5d1-5fc0-4145-82be-8757343aab6c","savedPayload":{"position":{"x":18698.806237131383,"y":25289.35640053908},"targetPosition":{"x":18687.806237131383,"y":25206.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"4552c373-413e-4cda-a2f1-d4c12bf75cf8","savedPayload":{"position":{"x":18625.806237131383,"y":25191.35640053908},"targetPosition":{"x":18687.806237131383,"y":25206.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b0598540-d0f8-4001-9675-343625559278","savedPayload":{"position":{"x":17028.874694109785,"y":26483.070867013637},"targetPosition":{"x":17041.960510319386,"y":26183.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Distance To Event","id":"d066d2a4-1082-4ab7-bcb5-8c09555e0489"}}},{"type":"Layer","name":"Episode Base Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"62d9c845-75d3-4e29-9343-f0e6dd5b545b","savedPayload":{"position":{"x":18630.806237131383,"y":25265.35640053908},"targetPosition":{"x":18643.806237131383,"y":25284.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"17795ddc-fe57-4248-98f4-dae961ae5939","savedPayload":{"position":{"x":18618.806237131383,"y":25367.35640053908},"targetPosition":{"x":18643.806237131383,"y":25284.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d903cd31-8d92-44cc-b85d-c76cce1a93ca","savedPayload":{"position":{"x":17002.802652653372,"y":26480.789858951222},"targetPosition":{"x":17041.960510319386,"y":26183.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Base Asset","id":"2d338ab2-1e4c-4afe-ab24-67d9f31b50fd"}}},{"type":"Layer","name":"Episode Quoted Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"ea21e09e-cecf-4669-a256-f995e44a83ad","savedPayload":{"position":{"x":18578.806237131383,"y":25379.35640053908},"targetPosition":{"x":18625.806237131383,"y":25337.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"c741203d-0a31-48e4-84ae-b1d0387a55cc","savedPayload":{"position":{"x":18713.806237131383,"y":25329.35640053908},"targetPosition":{"x":18625.806237131383,"y":25337.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"053d2b56-4aeb-49f9-8cfe-43a1fe4d2f3c","savedPayload":{"position":{"x":16977.028626137955,"y":26476.24520267506},"targetPosition":{"x":17041.960510319386,"y":26183.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Quoted Asset","id":"ee1dbbb3-cf97-4e92-a5b4-8700ae047a54"}}},{"type":"Layer","name":"Current Episode","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"10575ce1-994f-4745-90ce-68facc5d1c81","savedPayload":{"position":{"x":18624.806237131383,"y":25208.35640053908},"targetPosition":{"x":18645.806237131383,"y":25295.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"564a313a-4466-4d88-90ec-b7a5febbac91","savedPayload":{"position":{"x":18698.806237131383,"y":25195.35640053908},"targetPosition":{"x":18645.806237131383,"y":25295.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"94742a3f-ed56-4e49-8863-a73835230dea","savedPayload":{"position":{"x":16951.748770468104,"y":26469.471485763548},"targetPosition":{"x":17041.960510319386,"y":26183.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Episode","id":"d32a2b30-d8b8-4e06-ac41-82de8e22eb13"}}}],"layerFolders":[],"id":"fd4a5712-635c-461b-9215-25c3015c670b","savedPayload":{"position":{"x":17041.960510319386,"y":26183.35640053908},"targetPosition":{"x":17041.960510319386,"y":25883.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Strategy","project":"Superalgos","layers":[{"type":"Layer","name":"Current Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"92e7536b-7f7b-42f3-a5ff-1f213fc99a4d","savedPayload":{"position":{"x":18546.806237131383,"y":25032.35640053908},"targetPosition":{"x":18633.806237131383,"y":25105.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"6b53d818-c887-4b49-97e1-f34f57ac5d96","savedPayload":{"position":{"x":18655.806237131383,"y":25159.35640053908},"targetPosition":{"x":18633.806237131383,"y":25105.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"041ce3d2-746d-4493-9822-8cf57215fdbe","savedPayload":{"position":{"x":16777.15548060986,"y":26420.3278814278},"targetPosition":{"x":16891.960510319386,"y":26143.164021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Strategy","id":"75795607-4071-41da-8d46-da5152f424e8"}}},{"type":"Layer","name":"Last Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"a53bab0e-f6cb-4277-bdef-063cd91448b5","savedPayload":{"position":{"x":18690.806237131383,"y":25023.35640053908},"targetPosition":{"x":18721.806237131383,"y":25103.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"954f3a9f-cee2-4bc5-b781-2c866dfd2d78","savedPayload":{"position":{"x":18635.806237131383,"y":25146.35640053908},"targetPosition":{"x":18721.806237131383,"y":25103.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"dda0cca4-da9c-48ad-9552-20ea2987e5cb","savedPayload":{"position":{"x":16709.33208161677,"y":26381.170023761784},"targetPosition":{"x":16891.960510319386,"y":26143.164021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Strategy","id":"15dbd93b-0d60-4eff-a793-15ed2e05dbbc"}}}],"layerFolders":[],"id":"e17a459a-a25f-493d-b876-dc93bd2a4bce","savedPayload":{"position":{"x":16891.960510319386,"y":26143.164021674413},"targetPosition":{"x":17041.960510319386,"y":25883.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Current Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"aae2d3c9-7d16-4874-b0e4-35817793d45d","savedPayload":{"position":{"x":18636.806237131383,"y":25382.35640053908},"targetPosition":{"x":18605.806237131383,"y":25381.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"7c5cf0a1-46c3-42e2-9ef3-51844729055f","savedPayload":{"position":{"x":18572.806237131383,"y":25351.35640053908},"targetPosition":{"x":18605.806237131383,"y":25381.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c91e2bb2-eeae-400d-8e93-35303751d61d","savedPayload":{"position":{"x":16564.54057788037,"y":26239.862773247205},"targetPosition":{"x":16782.152889184053,"y":26033.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Position","id":"75bb0a5f-3441-4f9a-9af9-d5665a001af1"}}},{"type":"Layer","name":"Last Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e081f7a0-00c6-41bc-b4b1-f4168dc73718","savedPayload":{"position":{"x":18590.806237131383,"y":25279.35640053908},"targetPosition":{"x":18686.806237131383,"y":25347.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"03bbf94e-94fd-4ba7-a3ed-f8f2f58aad51","savedPayload":{"position":{"x":18783.806237131383,"y":25446.35640053908},"targetPosition":{"x":18686.806237131383,"y":25347.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cbc80511-33f1-43dc-a314-ad5d19b74a56","savedPayload":{"position":{"x":16534.915032597448,"y":26203.27827161653},"targetPosition":{"x":16782.152889184053,"y":26033.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Position","id":"451d1bfc-cc2f-49cd-a283-e0028e6612c7"}}},{"type":"Layer","name":"Stop Loss","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"7ab4e64f-ca3e-454d-81c2-ab26695b62f4","savedPayload":{"position":{"x":18804.806237131383,"y":25322.35640053908},"targetPosition":{"x":18745.806237131383,"y":25383.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"050ad17e-26bb-436d-9ef9-c2c0d928ae35","savedPayload":{"position":{"x":18736.806237131383,"y":25479.35640053908},"targetPosition":{"x":18745.806237131383,"y":25383.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ff0a81f6-1437-4dd3-b4aa-33172f17a7f6","savedPayload":{"position":{"x":16511.377303879097,"y":26162.50972958157},"targetPosition":{"x":16782.152889184053,"y":26033.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Stop Loss","id":"3625bc4a-bfc3-4de8-b0e3-3313fdbcf7e3"}}},{"type":"Layer","name":"Take Profit","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"1caa9abb-7a56-4f0e-9af6-5e7b341694e2","savedPayload":{"position":{"x":18759.806237131383,"y":25316.35640053908},"targetPosition":{"x":18745.806237131383,"y":25363.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"49056ce9-d01a-4af9-991e-9f3c281c4b9f","savedPayload":{"position":{"x":18727.806237131383,"y":25421.35640053908},"targetPosition":{"x":18745.806237131383,"y":25363.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"59455f05-d4fd-433b-82ef-c4261fde96f9","savedPayload":{"position":{"x":16494.506968723595,"y":26118.561003950257},"targetPosition":{"x":16782.152889184053,"y":26033.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Take Profit","id":"8ae185fe-147e-4377-9e73-f9468376ca73"}}}],"layerFolders":[],"id":"0c709217-e30f-490b-a024-ff3357808ab5","savedPayload":{"position":{"x":16782.152889184053,"y":26033.35640053908},"targetPosition":{"x":17041.960510319386,"y":25883.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Open Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"c7eda879-c027-4fcb-b8c8-6f3b4d4b4963","savedPayload":{"position":{"x":18587.806237131383,"y":25174.35640053908},"targetPosition":{"x":18661.806237131383,"y":25146.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"89563bbf-795f-4343-8c04-63b055cdd5e3","savedPayload":{"position":{"x":18564.806237131383,"y":25128.35640053908},"targetPosition":{"x":18661.806237131383,"y":25146.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5948baf5-5065-4608-b898-835c064ca801","savedPayload":{"position":{"x":16450.249534200084,"y":25953.390009695853},"targetPosition":{"x":16741.960510319386,"y":25883.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stage","id":"5c8e399d-8a15-4dd0-aa03-196111661c4e"}}},{"type":"Layer","name":"Close Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"4f37e71c-d698-4cc2-a05c-dbae40784334","savedPayload":{"position":{"x":18593.806237131383,"y":25176.35640053908},"targetPosition":{"x":18593.806237131383,"y":25214.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"d9cd8381-2dd5-4e00-8f84-d07623848861","savedPayload":{"position":{"x":18634.806237131383,"y":25227.35640053908},"targetPosition":{"x":18593.806237131383,"y":25214.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7d7f257f-b91c-4e61-9b73-6e2b649b72a0","savedPayload":{"position":{"x":16442.885310199446,"y":25906.894129257435},"targetPosition":{"x":16741.960510319386,"y":25883.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stage","id":"c5e583ec-17b6-4b81-ba73-052db231b245"}}},{"type":"Layer","name":"Trigger Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"5f5f3956-8af5-4724-ab04-a61cd1ae13ea","savedPayload":{"position":{"x":18775.806237131383,"y":25225.35640053908},"targetPosition":{"x":18770.806237131383,"y":25252.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"19a7335b-caf9-479d-bcef-9f1d6541fbd9","savedPayload":{"position":{"x":18722.806237131383,"y":25320.35640053908},"targetPosition":{"x":18770.806237131383,"y":25252.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0ccb7c8d-5f78-44ca-b611-9fad4204f645","savedPayload":{"position":{"x":16442.885310199446,"y":25859.818671820725},"targetPosition":{"x":16741.960510319386,"y":25883.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stage","id":"9df61698-db66-4c28-86f4-a6f2b49482ae"}}},{"type":"Layer","name":"Manage Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"303f0bc3-17c1-4c1c-b484-29a5746d3d85","savedPayload":{"position":{"x":18672.806237131383,"y":25148.35640053908},"targetPosition":{"x":18656.806237131383,"y":25137.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"5560c980-5ebc-4e09-9090-f74baa9b9424","savedPayload":{"position":{"x":18718.806237131383,"y":25147.35640053908},"targetPosition":{"x":18656.806237131383,"y":25137.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"89c9c223-e5f4-482e-bbd8-d6b86d2828e3","savedPayload":{"position":{"x":16450.249534200084,"y":25813.322791382307},"targetPosition":{"x":16741.960510319386,"y":25883.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stage","id":"674f4993-3b21-42b0-8490-2e18896c65f8"}}}],"layerFolders":[],"id":"e16d5ae2-bd71-4fa5-ac75-2a5cb0bb4ff1","savedPayload":{"position":{"x":16741.960510319386,"y":25883.35640053908},"targetPosition":{"x":17041.960510319386,"y":25883.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"fcd929c9-55d7-478f-9183-358b28e2a595","savedPayload":{"position":{"x":18692.806237131383,"y":25325.35640053908},"targetPosition":{"x":18765.806237131383,"y":25401.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"034a21cb-1070-4787-bd0e-346865db7493","savedPayload":{"position":{"x":18748.806237131383,"y":25440.35640053908},"targetPosition":{"x":18765.806237131383,"y":25401.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"af5aa298-89dd-4663-9b1d-e06e0ebe3e52","savedPayload":{"position":{"x":16490.973918948035,"y":25661.14277791639},"targetPosition":{"x":16782.152889184053,"y":25733.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"ccc95dde-7998-4093-b688-8a537252309c"}}},{"type":"Layer","name":"Market Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"36ecb329-1e00-48cc-a63b-a1472be533fb","savedPayload":{"position":{"x":18602.806237131383,"y":25391.35640053908},"targetPosition":{"x":18590.806237131383,"y":25362.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"8850e817-2598-49bb-8555-96ebbaf8bcdc","savedPayload":{"position":{"x":18562.806237131383,"y":25305.35640053908},"targetPosition":{"x":18590.806237131383,"y":25362.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f987c938-c422-4321-9690-946ab62e1ddf","savedPayload":{"position":{"x":16500.890151620853,"y":25628.995141163512},"targetPosition":{"x":16782.152889184053,"y":25733.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"7cd654af-5a5c-42f6-9b10-f246c3295ae0"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"3b3c5dce-525e-4851-896d-25a3e001c404","savedPayload":{"position":{"x":18781.806237131383,"y":25342.35640053908},"targetPosition":{"x":18741.806237131383,"y":25272.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"07e1a6e7-089a-440b-aa28-3116e8f497db","savedPayload":{"position":{"x":18779.806237131383,"y":25183.35640053908},"targetPosition":{"x":18741.806237131383,"y":25272.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e1b708cb-0796-44ec-8bb8-c14ce897825b","savedPayload":{"position":{"x":16514.34342641097,"y":25598.159907799098},"targetPosition":{"x":16782.152889184053,"y":25733.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"cbb0fe95-55e5-4909-b66d-612e6fb15f8e"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"2259c355-28b9-4e5b-80f2-b98d433d8cf6","savedPayload":{"position":{"x":18571.806237131383,"y":25387.35640053908},"targetPosition":{"x":18607.806237131383,"y":25305.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"e3b48c99-6607-4713-85af-d8e2b521bdd7","savedPayload":{"position":{"x":18612.806237131383,"y":25219.35640053908},"targetPosition":{"x":18607.806237131383,"y":25305.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4ff41d46-3e06-40be-b38b-60757aca4e73","savedPayload":{"position":{"x":16531.16456058213,"y":25569.02484877372},"targetPosition":{"x":16782.152889184053,"y":25733.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"a2647cfd-00eb-40c8-8d75-73d63dac5a73"}}},{"type":"Layer","name":"Last Market Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"cd9e11bf-45ee-442f-bd95-6fd044020f96","savedPayload":{"position":{"x":18620.806237131383,"y":25174.35640053908},"targetPosition":{"x":18680.806237131383,"y":25228.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"1126d3ae-f16a-4f6e-b6a0-90c8c377c270","savedPayload":{"position":{"x":18663.806237131383,"y":25307.35640053908},"targetPosition":{"x":18680.806237131383,"y":25228.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b6fe9f96-7322-4103-9429-75b5fb47e9cc","savedPayload":{"position":{"x":16551.142018612274,"y":25541.956354359176},"targetPosition":{"x":16782.152889184053,"y":25733.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Market Order","id":"5319405c-c588-4000-aacf-0250fec08afd"}}},{"type":"Layer","name":"Last Limit Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"172ec632-3e59-4f74-8a0f-70aa11170cc7","savedPayload":{"position":{"x":18678.806237131383,"y":25452.35640053908},"targetPosition":{"x":18670.806237131383,"y":25383.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"6d283eaf-5384-4fe8-8f9a-de540c1e1ae9","savedPayload":{"position":{"x":18737.806237131383,"y":25387.35640053908},"targetPosition":{"x":18670.806237131383,"y":25383.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"27a405ef-c0b6-4e3e-9a0b-8e746db8d3db","savedPayload":{"position":{"x":16574.024572375492,"y":25517.294826578243},"targetPosition":{"x":16782.152889184053,"y":25733.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Limit Order","id":"366c345a-26a0-438d-b39e-e5270cd06c22"}}}],"layerFolders":[],"id":"993d0bef-d79a-45aa-8467-16c0bfe6d3d3","savedPayload":{"position":{"x":16782.152889184053,"y":25733.35640053908},"targetPosition":{"x":17041.960510319386,"y":25883.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e3eeb986-18f1-4b84-9b76-f02b2ec7fb8a","savedPayload":{"position":{"x":17041.960510319386,"y":25883.35640053908},"targetPosition":{"x":17301.76813145472,"y":25733.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f8946868-67a4-4c02-b42f-efe8d964960e","savedPayload":{"position":{"x":17301.76813145472,"y":25733.35640053908},"targetPosition":{"x":17561.57575259005,"y":25583.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5dc41e25-7705-4740-94a8-1e1d1da5e437","savedPayload":{"position":{"x":17561.57575259005,"y":25583.35640053908},"targetPosition":{"x":17821.383373725384,"y":25433.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"caa36a7c-69b6-4863-a313-003d5af2d126"}}},"id":"d7eb470f-0bd9-403f-945d-d29a2571b0ea","savedPayload":{"position":{"x":17781.190994860717,"y":25283.35640053908},"targetPosition":{"x":18040.99861599605,"y":25133.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Trading System","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading System","project":"Superalgos","layers":[{"type":"Layer","name":"Trading System Errors","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"a3be6132-d636-4371-8e72-c3b758202efd","savedPayload":{"position":{"x":19104.806237131383,"y":25137.35640053908},"targetPosition":{"x":19018.806237131383,"y":25067.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"4063bd7b-7bcd-47b2-a8ea-4728e901f965","savedPayload":{"position":{"x":19076.806237131383,"y":24969.35640053908},"targetPosition":{"x":19018.806237131383,"y":25067.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fb3bd045-a16d-4107-854f-d96c9fcafb88","savedPayload":{"position":{"x":19018.806237131383,"y":25067.35640053908},"targetPosition":{"x":19039.806237131383,"y":25102.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Errors","id":"222da1c1-666b-4c9d-b199-e3fe0b985ab7"}}},{"type":"Layer","name":"Trading System Highlights","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"280ba8bf-f856-44e1-a078-7c1f60059887","savedPayload":{"position":{"x":19195.806237131383,"y":25181.35640053908},"targetPosition":{"x":19121.806237131383,"y":25107.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"f0b564fc-fdfc-487c-bce5-735db4cfba47","savedPayload":{"position":{"x":19139.806237131383,"y":25053.35640053908},"targetPosition":{"x":19121.806237131383,"y":25107.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d2f56a6c-4633-4124-a276-89f298cfcc1a","savedPayload":{"position":{"x":19121.806237131383,"y":25107.35640053908},"targetPosition":{"x":19039.806237131383,"y":25102.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Highlights","id":"4801de44-7391-4927-b748-9a4e5817e0fd"}}},{"type":"Layer","name":"Trading System Values","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"15338c81-c705-4a91-98bc-820b21d29b2c","savedPayload":{"position":{"x":19084.806237131383,"y":25086.35640053908},"targetPosition":{"x":19118.806237131383,"y":25123.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"77e8ae7e-b903-44ce-a7e1-7736ead8a1f5","savedPayload":{"position":{"x":19057.806237131383,"y":25144.35640053908},"targetPosition":{"x":19118.806237131383,"y":25123.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"de0d2ef0-a704-48f2-afbd-c12f4024e4c4","savedPayload":{"position":{"x":19118.806237131383,"y":25123.35640053908},"targetPosition":{"x":19039.806237131383,"y":25102.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Values","id":"a9bdf073-c8ca-4a54-884e-d5daaab27ecd"}}},{"type":"Layer","name":"Trading System Status","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"ed68ac6f-ac78-4698-a67a-0189ed03ffda","savedPayload":{"position":{"x":18971.806237131383,"y":25223.35640053908},"targetPosition":{"x":19011.806237131383,"y":25191.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"56392813-19fc-40f2-baed-7bd973c6b325","savedPayload":{"position":{"x":19057.806237131383,"y":25256.35640053908},"targetPosition":{"x":19011.806237131383,"y":25191.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c02ea91d-876b-4267-8cfd-42189026c8c6","savedPayload":{"position":{"x":19011.806237131383,"y":25191.35640053908},"targetPosition":{"x":19039.806237131383,"y":25102.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Status","id":"f9624574-2c30-47c5-9602-78110959a8e8"}}},{"type":"Layer","name":"Trading System Progress","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"455fea0a-be5a-48a8-8902-5e18597f8ad0","savedPayload":{"position":{"x":19137.806237131383,"y":25107.35640053908},"targetPosition":{"x":19123.806237131383,"y":25022.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"d1eacd6a-bbef-41cd-9e7b-d5533c1323ba","savedPayload":{"position":{"x":19144.806237131383,"y":24978.35640053908},"targetPosition":{"x":19123.806237131383,"y":25022.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8694b566-c0fc-4ee0-a542-8365418b55d5","savedPayload":{"position":{"x":19123.806237131383,"y":25022.35640053908},"targetPosition":{"x":19039.806237131383,"y":25102.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Progress","id":"e31d3359-1ce1-47c9-abd4-b8c8b0a09b1b"}}},{"type":"Layer","name":"Trading System Running","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"71d41008-e3e8-4184-8499-159c5830ea80","savedPayload":{"position":{"x":19073.806237131383,"y":25098.35640053908},"targetPosition":{"x":19092.806237131383,"y":25078.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"4e31d85c-324b-4a3f-9548-ad50fb46c3ed","savedPayload":{"position":{"x":19079.806237131383,"y":25102.35640053908},"targetPosition":{"x":19092.806237131383,"y":25078.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0b5b579a-a2cd-415a-9cf5-41025863bdf9","savedPayload":{"position":{"x":19092.806237131383,"y":25078.35640053908},"targetPosition":{"x":19039.806237131383,"y":25102.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Running","id":"2291e334-3608-48e5-a93a-1c48cc08fb2e"}}},{"type":"Layer","name":"Trading System Announcements","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"723a3ebd-17e6-4da1-91e4-48f07367c744","savedPayload":{"position":{"x":18948.806237131383,"y":25186.35640053908},"targetPosition":{"x":19011.806237131383,"y":25178.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"af921170-182b-47f6-a4d4-2b00e5b8ffff","savedPayload":{"position":{"x":18940.806237131383,"y":25254.35640053908},"targetPosition":{"x":19011.806237131383,"y":25178.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"26eec0b0-2080-467e-8d86-9ecde152bca5","savedPayload":{"position":{"x":19011.806237131383,"y":25178.35640053908},"targetPosition":{"x":19039.806237131383,"y":25102.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Announcements","id":"911f973d-6f74-49fd-aec9-47c2b56c4a5a"}}},{"type":"Layer","name":"Trading System Warnings","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e596e327-1e17-49ea-8c24-6f9945c56007","savedPayload":{"position":{"x":18882.806237131383,"y":25067.35640053908},"targetPosition":{"x":18954.806237131383,"y":25025.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"d349e11f-c5a5-45c1-8220-51d852ee290e","savedPayload":{"position":{"x":18882.806237131383,"y":25020.35640053908},"targetPosition":{"x":18954.806237131383,"y":25025.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3bb0d7d8-49ad-4b1b-8bdf-df04cb24fc1f","savedPayload":{"position":{"x":18954.806237131383,"y":25025.35640053908},"targetPosition":{"x":19039.806237131383,"y":25102.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Warnings","id":"27a1feb4-ec9e-4f3a-aec7-508de46470d1"}}},{"type":"Layer","name":"Trading System Infos","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e85a7af5-dc3a-4146-94d5-0336fe4e1bf6","savedPayload":{"position":{"x":19122.806237131383,"y":25062.35640053908},"targetPosition":{"x":19042.806237131383,"y":25048.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"b9a4e27d-2ca1-4064-8430-1e4a2921f6d5","savedPayload":{"position":{"x":19110.806237131383,"y":25144.35640053908},"targetPosition":{"x":19042.806237131383,"y":25048.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7889b693-6dc3-4af5-be22-6bb38e0a2d5a","savedPayload":{"position":{"x":19042.806237131383,"y":25048.35640053908},"targetPosition":{"x":19039.806237131383,"y":25102.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Infos","id":"e2ad1c02-06f9-4572-9e18-840969838be3"}}}],"layerFolders":[],"id":"ee4f8578-a967-4b30-8fa0-6757d6cd603a","savedPayload":{"position":{"x":19039.806237131383,"y":25102.35640053908},"targetPosition":{"x":18945.806237131383,"y":25135.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f24a1c14-6ce4-4bd7-b8e5-45670c12ca58","savedPayload":{"position":{"x":18945.806237131383,"y":25135.35640053908},"targetPosition":{"x":18889.806237131383,"y":25071.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"574cf596-4546-4af9-a4c9-9440e0b61716","savedPayload":{"position":{"x":18889.806237131383,"y":25071.35640053908},"targetPosition":{"x":18843.806237131383,"y":25068.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"caa36a7c-69b6-4863-a313-003d5af2d126"}}},"id":"8c1c2c71-78e0-4592-9f6d-d5ddedab8267","savedPayload":{"position":{"x":17743.565157583907,"y":25172.514258205094},"targetPosition":{"x":18040.99861599605,"y":25133.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Simulation Objects","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Simulation Objects","project":"Superalgos","layers":[{"type":"Layer","name":"Episodes","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Episode Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f485eaeb-cdd9-41e4-acba-a4c2a8766fa3","savedPayload":{"position":{"x":18655.806237131383,"y":24886.35640053908},"targetPosition":{"x":18696.806237131383,"y":24871.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Object","id":"bcbb3368-ea4c-466b-8423-8f0517ad35da"}}},{"type":"Layer Panel","name":"Episode Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"8049cfb1-6d0b-49cc-8e99-3025617e386e","savedPayload":{"position":{"x":18656.806237131383,"y":24934.35640053908},"targetPosition":{"x":18696.806237131383,"y":24871.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Base Asset","id":"b18a5300-448b-4165-9b36-dc5ee37e58cd"}}},{"type":"Layer Panel","name":"Episode Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"af060621-8947-4779-bc18-940770541bb6","savedPayload":{"position":{"x":18740.806237131383,"y":24930.35640053908},"targetPosition":{"x":18696.806237131383,"y":24871.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Quoted Asset","id":"dbdd55de-9279-48ef-a0b1-e50024f284e9"}}}],"id":"ec108c59-bd39-4993-9373-9f673192bf77","savedPayload":{"position":{"x":18696.806237131383,"y":24871.35640053908},"targetPosition":{"x":18666.806237131383,"y":24968.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e85e82d6-be5d-45f1-af6f-b406816ee177","savedPayload":{"position":{"x":18566.806237131383,"y":24963.35640053908},"targetPosition":{"x":18651.806237131383,"y":24997.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"7237c558-a0e5-46c6-8cf5-ebc555e98efb"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1ed4707d-828c-4f1e-883a-d56fddcf556d","savedPayload":{"position":{"x":18668.806237131383,"y":25071.35640053908},"targetPosition":{"x":18651.806237131383,"y":24997.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"4958982a-b51a-40ef-8764-dd5451cf9837"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"7902f47d-0e77-4ef3-94be-f2ce9fbd87c5","savedPayload":{"position":{"x":18650.806237131383,"y":24906.35640053908},"targetPosition":{"x":18651.806237131383,"y":24997.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"86fefa5e-8de8-4d00-a632-e1827ce60030"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"9c3f7868-33fd-4528-ae22-66338da65b07","savedPayload":{"position":{"x":18687.806237131383,"y":25012.35640053908},"targetPosition":{"x":18651.806237131383,"y":24997.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"79a3b846-3b23-4c01-9aa1-cedcebb5ca03"}}}],"id":"b7abca68-e834-42a2-a3f3-e8584a3f7eb7","savedPayload":{"position":{"x":18651.806237131383,"y":24997.35640053908},"targetPosition":{"x":18666.806237131383,"y":24968.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8642bb1f-584a-4de5-b39d-50cb916a0830","savedPayload":{"position":{"x":16622.080003313833,"y":24972.77354641605},"targetPosition":{"x":16922.080003313833,"y":24972.77354641605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episodes","id":"c5d430c4-b651-44fa-ac66-61b909c1a693"}}},{"type":"Layer","name":"Strategies","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Strategy Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5c5a6ca5-2357-4d16-9088-84a73c30683c","savedPayload":{"position":{"x":18694.806237131383,"y":25079.35640053908},"targetPosition":{"x":18604.806237131383,"y":25016.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Strategy Object","id":"b256b76c-3834-4d62-aa56-f42cce9f47e9"}}}],"id":"792643d0-dec5-4aac-9458-839a27ddae6b","savedPayload":{"position":{"x":18604.806237131383,"y":25016.35640053908},"targetPosition":{"x":18640.806237131383,"y":25078.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"59bb7d48-ae83-4e1b-aee4-c11e887ee5b2","savedPayload":{"position":{"x":18656.806237131383,"y":25006.35640053908},"targetPosition":{"x":18617.806237131383,"y":25095.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"9ae59a68-71fd-4ec8-9a70-da743f33baee"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2f9173b8-3bfa-48b2-870e-7923131d5a41","savedPayload":{"position":{"x":18620.806237131383,"y":25045.35640053908},"targetPosition":{"x":18617.806237131383,"y":25095.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"504f327c-a08d-4c3d-8e77-850299cc30ed"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"deeee695-d9ae-4019-8a65-362dfa3ece68","savedPayload":{"position":{"x":18713.806237131383,"y":25014.35640053908},"targetPosition":{"x":18617.806237131383,"y":25095.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"f9500afd-e0f4-45d3-9647-45ec778554e8"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"9ea9270b-a7ab-44a2-aaa5-dffdf9895d7b","savedPayload":{"position":{"x":18587.806237131383,"y":25032.35640053908},"targetPosition":{"x":18617.806237131383,"y":25095.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"354102dd-fd58-4f84-8e90-0d891defa0c8"}}}],"id":"c906d295-4d0c-4e4f-89b9-357cc5ca1fea","savedPayload":{"position":{"x":18617.806237131383,"y":25095.35640053908},"targetPosition":{"x":18640.806237131383,"y":25078.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"efb096af-d433-4532-8eb1-fa90ae790287","savedPayload":{"position":{"x":16624.64654490169,"y":24933.615688750036},"targetPosition":{"x":16922.080003313833,"y":24972.77354641605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"7e14ad62-ecec-410b-9863-2fb923bcf0bc"}}}],"layerFolders":[{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Market Buy Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"fc6fe017-5c8b-4dab-8ff5-efa4e1d19208","savedPayload":{"position":{"x":18557.806237131383,"y":25052.35640053908},"targetPosition":{"x":18592.806237131383,"y":25141.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order","id":"12929733-5964-4948-877b-b1edda37162a"}}},{"type":"Layer Panel","name":"Market Buy Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"af107e36-e9b9-44fb-939e-5faf751491fa","savedPayload":{"position":{"x":18687.806237131383,"y":25043.35640053908},"targetPosition":{"x":18592.806237131383,"y":25141.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order Stats","id":"81a88e44-189c-44ec-9607-cb1e4de8baa1"}}},{"type":"Layer Panel","name":"Market Buy Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"9ce2a9e2-3eab-441e-a13b-9b5b8f0d03d5","savedPayload":{"position":{"x":18597.806237131383,"y":25129.35640053908},"targetPosition":{"x":18592.806237131383,"y":25141.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order Base Asset","id":"608a9068-7324-4f4c-8fdd-d9d8e42e26c6"}}},{"type":"Layer Panel","name":"Market Buy Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"d4e2f44a-8034-417c-8c74-160fa0a1c12a","savedPayload":{"position":{"x":18518.806237131383,"y":25240.35640053908},"targetPosition":{"x":18592.806237131383,"y":25141.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order Quoted Asset","id":"1a55af5e-821d-4421-80d2-2c543d25ea1a"}}}],"id":"bdba0a21-4d43-4297-a3e2-fbac04b68614","savedPayload":{"position":{"x":18592.806237131383,"y":25141.35640053908},"targetPosition":{"x":18580.806237131383,"y":25073.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"8850bfff-5f77-42b1-9931-5b9ec6839565","savedPayload":{"position":{"x":18562.806237131383,"y":25065.35640053908},"targetPosition":{"x":18630.806237131383,"y":25034.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"6217d021-ea5b-4b20-b093-758a2d2fb5d4"}}}],"id":"25cfaa29-2669-42d3-a311-75b2bc92b674","savedPayload":{"position":{"x":18630.806237131383,"y":25034.35640053908},"targetPosition":{"x":18580.806237131383,"y":25073.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cbdf795a-5968-49e8-97ee-7c24cc15c4c9","savedPayload":{"position":{"x":16332.405057934444,"y":24887.27474839293},"targetPosition":{"x":16632.302255427112,"y":24895.127832885293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"e83e89c2-f57e-47e5-96c7-5b5c660cdef0"}}},{"type":"Layer","name":"Market Sell Orders","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Market Sell Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"dc962a8f-3a07-4654-b03a-2ec5f626fdd1","savedPayload":{"position":{"x":18510.806237131383,"y":24872.35640053908},"targetPosition":{"x":18584.806237131383,"y":24945.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order","id":"a5856620-e9ce-4ee1-830c-5b5dc45e9139"}}},{"type":"Layer Panel","name":"Market Sell Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"cf00902f-93cb-4047-afbe-ad9169018e10","savedPayload":{"position":{"x":18594.806237131383,"y":24981.35640053908},"targetPosition":{"x":18584.806237131383,"y":24945.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order Stats","id":"fb23f6bb-8383-4276-8a77-5180e622653a"}}},{"type":"Layer Panel","name":"Market Sell Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"c983e763-b101-4886-a062-9c441aff5e79","savedPayload":{"position":{"x":18544.806237131383,"y":25019.35640053908},"targetPosition":{"x":18584.806237131383,"y":24945.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order Base Asset","id":"3e9e4e57-bd41-41f5-8d52-c92d3a707e80"}}},{"type":"Layer Panel","name":"Market Sell Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"48e3171d-73b8-4bd1-b934-54b306345513","savedPayload":{"position":{"x":18658.806237131383,"y":24851.35640053908},"targetPosition":{"x":18584.806237131383,"y":24945.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order Quoted Asset","id":"51d59c30-3a02-4d74-aa62-f1524ea544ee"}}}],"id":"cff65643-3313-43df-9719-f8e1907152e5","savedPayload":{"position":{"x":18584.806237131383,"y":24945.35640053908},"targetPosition":{"x":18675.806237131383,"y":24918.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"23fea1d3-2fad-4d5d-92ed-ae6884222264","savedPayload":{"position":{"x":18580.806237131383,"y":25017.35640053908},"targetPosition":{"x":18620.806237131383,"y":24921.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"5b8dcb5c-6b20-4edf-aae5-1c526cdca536"}}}],"id":"ffe85aef-cd93-41dd-86a0-994e0e39a83a","savedPayload":{"position":{"x":18620.806237131383,"y":24921.35640053908},"targetPosition":{"x":18675.806237131383,"y":24918.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9f57a18f-446f-480b-b064-1b85799df088","savedPayload":{"position":{"x":16337.325783157925,"y":24840.45717523765},"targetPosition":{"x":16632.302255427112,"y":24895.127832885293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"9c2155e6-b688-4f18-932d-ee9e70be5158"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Limit Buy Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"932aca19-3a50-4977-82af-9494a9beabc2","savedPayload":{"position":{"x":18539.806237131383,"y":24980.35640053908},"targetPosition":{"x":18476.806237131383,"y":25060.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order","id":"48ec80a7-6f68-4284-9bb5-f04ce3c1052b"}}},{"type":"Layer Panel","name":"Limit Buy Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"d4223fee-a517-430f-bbb8-535955388352","savedPayload":{"position":{"x":18512.806237131383,"y":25081.35640053908},"targetPosition":{"x":18476.806237131383,"y":25060.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order Stats","id":"90bd6690-de93-4158-a17f-728c28defc38"}}},{"type":"Layer Panel","name":"Limit Buy Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"39bfcd41-a2d6-4d88-8a1f-786c2494e88e","savedPayload":{"position":{"x":18467.806237131383,"y":25148.35640053908},"targetPosition":{"x":18476.806237131383,"y":25060.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order Base Asset","id":"8504b6e3-83c8-45ea-959a-41303f9d4274"}}},{"type":"Layer Panel","name":"Limit Buy Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5c147468-84e5-4d7b-8b11-1d7b56efed2c","savedPayload":{"position":{"x":18559.806237131383,"y":24988.35640053908},"targetPosition":{"x":18476.806237131383,"y":25060.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order Quoted Asset","id":"b60e7e48-8ae7-4701-848b-8faa9ba58c11"}}}],"id":"5a850ef2-aea2-4a48-958d-c9042275308a","savedPayload":{"position":{"x":18476.806237131383,"y":25060.35640053908},"targetPosition":{"x":18576.806237131383,"y":25071.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Status Open","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"0247d687-13d8-4d7a-9af1-6798efb10e68","savedPayload":{"position":{"x":18692.806237131383,"y":25134.35640053908},"targetPosition":{"x":18624.806237131383,"y":25138.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Open","id":"7be8ba85-07e7-4800-8988-ce76d2105b73"}}},{"type":"Layer Polygon","name":"Status Closed Cancel Event","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"24c56120-d6f4-4610-858b-1e258f530ede","savedPayload":{"position":{"x":18716.806237131383,"y":25060.35640053908},"targetPosition":{"x":18624.806237131383,"y":25138.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Cancel Event","id":"ab881143-5631-4b27-a97a-94138dbd370d"}}},{"type":"Layer Polygon","name":"Status Closed Filled","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"0936157b-3b86-4ac9-8fc4-093e5cac50a5","savedPayload":{"position":{"x":18717.806237131383,"y":25057.35640053908},"targetPosition":{"x":18624.806237131383,"y":25138.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Filled","id":"a54693cf-8ec1-469d-afb9-2a724e4f6af7"}}}],"id":"67578e4a-b2bd-449b-bfe2-165a819fc908","savedPayload":{"position":{"x":18624.806237131383,"y":25138.35640053908},"targetPosition":{"x":18576.806237131383,"y":25071.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d80e0e4d-05d2-414c-8f55-666d793a2e7e","savedPayload":{"position":{"x":16349.509808099458,"y":24794.98577511516},"targetPosition":{"x":16632.302255427112,"y":24895.127832885293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"7bfeecb1-c28a-455a-91f1-d88834d732b6"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Limit Sell Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"d0d6c0bc-a6bc-49ce-be38-082d35294e01","savedPayload":{"position":{"x":18573.806237131383,"y":25081.35640053908},"targetPosition":{"x":18623.806237131383,"y":25132.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order","id":"5d485d15-9919-42cc-9399-54c679d7085d"}}},{"type":"Layer Panel","name":"Limit Sell Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"21592e4f-4c29-4d9b-bd12-89e254ce1e04","savedPayload":{"position":{"x":18572.806237131383,"y":25138.35640053908},"targetPosition":{"x":18623.806237131383,"y":25132.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order Stats","id":"db2f6e9c-ce79-4465-a0dc-8ea02fac26b7"}}},{"type":"Layer Panel","name":"Limit Sell Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"aa151cd9-4ec0-4ce9-9be2-1e8f6a79fa61","savedPayload":{"position":{"x":18629.806237131383,"y":25038.35640053908},"targetPosition":{"x":18623.806237131383,"y":25132.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order Base Asset","id":"3e34000e-ad8c-4049-9eee-89e8ea362a0f"}}},{"type":"Layer Panel","name":"Limit Sell Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6455173e-3e6f-42d5-86a6-929b171188bf","savedPayload":{"position":{"x":18702.806237131383,"y":25077.35640053908},"targetPosition":{"x":18623.806237131383,"y":25132.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order Quoted Asset","id":"ae18b041-f16e-4d96-8a83-56845dddf64a"}}}],"id":"1f6548c6-325a-4efc-a0c7-ce91035091ee","savedPayload":{"position":{"x":18623.806237131383,"y":25132.35640053908},"targetPosition":{"x":18605.806237131383,"y":25080.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Status Open","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2de6feec-4bee-4004-9de7-2d772de52f54","savedPayload":{"position":{"x":18737.806237131383,"y":25156.35640053908},"targetPosition":{"x":18667.806237131383,"y":25144.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Open","id":"186d1b59-7d04-4b40-83c9-acc361b8a12a"}}},{"type":"Layer Polygon","name":"Status Closed Cancel Event","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"80e78841-c8c6-4b6c-98f3-2e01bcc7148d","savedPayload":{"position":{"x":18748.806237131383,"y":25112.35640053908},"targetPosition":{"x":18667.806237131383,"y":25144.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Cancel Event","id":"8e993263-dbfc-4d41-864a-9470e70d7e4f"}}},{"type":"Layer Polygon","name":"Status Closed Filled","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6792702e-bf0b-4ca1-a880-6dbb2d8b2267","savedPayload":{"position":{"x":18660.806237131383,"y":25217.35640053908},"targetPosition":{"x":18667.806237131383,"y":25144.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Filled","id":"bf0751d6-fdb2-4e66-a39c-2bd99252bd60"}}}],"id":"d03901c7-9b57-43f8-9959-2f16b33cd510","savedPayload":{"position":{"x":18667.806237131383,"y":25144.35640053908},"targetPosition":{"x":18605.806237131383,"y":25080.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a138bca1-817c-4ace-94f9-35b97d11d37c","savedPayload":{"position":{"x":16368.657121628523,"y":24751.98020480741},"targetPosition":{"x":16632.302255427112,"y":24895.127832885293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"923f8e15-9a79-41d6-957c-42360847456d"}}}],"layerFolders":[],"id":"75c312af-3483-4c87-81c8-3c695cd05d53","savedPayload":{"position":{"x":16632.302255427112,"y":24895.127832885293},"targetPosition":{"x":16922.080003313833,"y":24972.77354641605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Trigger Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Trigger Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"46a0d7d2-9b8b-4c3a-86e8-f81536dcacf6","savedPayload":{"position":{"x":18770.806237131383,"y":24968.35640053908},"targetPosition":{"x":18698.806237131383,"y":25001.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Trigger Stage Object","id":"c10b9b7b-04d8-460b-9dcc-2eaed24e17df"}}}],"id":"dae22ddb-f5a9-419a-9a1f-1e153b102cd1","savedPayload":{"position":{"x":18698.806237131383,"y":25001.35640053908},"targetPosition":{"x":18725.806237131383,"y":25031.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"206590c5-6972-4f70-b0cf-4de2b7f3669f","savedPayload":{"position":{"x":18704.806237131383,"y":25165.35640053908},"targetPosition":{"x":18768.806237131383,"y":25118.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"9e88f3a0-09ad-44fd-a84e-731228860e66"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f7b6d166-1386-4c1c-9aa3-a5c2547da231","savedPayload":{"position":{"x":18712.806237131383,"y":25048.35640053908},"targetPosition":{"x":18768.806237131383,"y":25118.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"e2e18af7-af5f-4634-b8a4-4fabd2ddd7a5"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5019557b-2234-433f-b008-946e5023e7e4","savedPayload":{"position":{"x":18854.806237131383,"y":25167.35640053908},"targetPosition":{"x":18768.806237131383,"y":25118.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"08d916aa-6d2d-497b-8738-9b0966e3901e"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"fc15defe-2a29-46ab-a731-f33f543c1fb7","savedPayload":{"position":{"x":18792.806237131383,"y":25097.35640053908},"targetPosition":{"x":18768.806237131383,"y":25118.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"70de0f73-5a2d-4a5a-a5f7-1863f192a14d"}}}],"id":"a7d1c48e-58f1-4d67-87a5-2bf2c7bdd9cb","savedPayload":{"position":{"x":18768.806237131383,"y":25118.35640053908},"targetPosition":{"x":18725.806237131383,"y":25031.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bf1f84d9-a016-456d-9b75-fa26daaac298","savedPayload":{"position":{"x":16454.155919651643,"y":24603.891942645303},"targetPosition":{"x":16709.94796895787,"y":24760.641512060087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stages","id":"923d6695-c25d-42bd-aa9c-4fc793207e7c"}}},{"type":"Layer","name":"Open Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Open Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5611b3c8-0c1f-4230-a564-2c4aeb0f97bd","savedPayload":{"position":{"x":18706.806237131383,"y":24924.35640053908},"targetPosition":{"x":18623.806237131383,"y":24981.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Open Stage Object","id":"be56e169-d089-4aea-a18a-c01cf16a3485"}}}],"id":"1dbeb8d7-88fb-4fb8-bbee-362ce0458b7c","savedPayload":{"position":{"x":18623.806237131383,"y":24981.35640053908},"targetPosition":{"x":18640.806237131383,"y":24979.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6019ccf1-bffb-4d3c-96be-cf07179ad05d","savedPayload":{"position":{"x":18591.806237131383,"y":24983.35640053908},"targetPosition":{"x":18565.806237131383,"y":24957.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"21db891e-4c47-4a5a-88a5-036297086138"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"68540b14-2c1d-47f7-a75d-b8c9a7ed5694","savedPayload":{"position":{"x":18530.806237131383,"y":24912.35640053908},"targetPosition":{"x":18565.806237131383,"y":24957.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"2a3d0d93-13d9-4a9e-8d32-c0aa5d7ab1e3"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"76359a2c-b5f5-4778-8fe7-ed48d57ac891","savedPayload":{"position":{"x":18528.806237131383,"y":24986.35640053908},"targetPosition":{"x":18565.806237131383,"y":24957.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"616f49d0-daaa-4b82-be0d-56504b402616"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5d6f9bac-ae70-461c-992d-7347bb40eb38","savedPayload":{"position":{"x":18548.806237131383,"y":25007.35640053908},"targetPosition":{"x":18565.806237131383,"y":24957.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"0fab39ff-8caf-45f8-8650-33d7a65fa6e1"}}}],"id":"1fa5145f-7881-4997-90b8-541fdfb69e92","savedPayload":{"position":{"x":18565.806237131383,"y":24957.35640053908},"targetPosition":{"x":18640.806237131383,"y":24979.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"48d5f700-f4a2-46db-9ac9-d7fa0ecb791e","savedPayload":{"position":{"x":16481.82617927786,"y":24565.80709756103},"targetPosition":{"x":16709.94796895787,"y":24760.641512060087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stages","id":"7947d593-883c-47c8-b7fa-f02296ba53ef"}}},{"type":"Layer","name":"Manage Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Manage Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"62918302-479a-41f2-b709-d23a29df9062","savedPayload":{"position":{"x":18415.806237131383,"y":24847.35640053908},"targetPosition":{"x":18492.806237131383,"y":24907.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Manage Stage Object","id":"3db5604f-cacf-4c87-b1ea-5aa364bf9f48"}}}],"id":"b4ecf58b-c16b-4240-ab75-cb1d25d81310","savedPayload":{"position":{"x":18492.806237131383,"y":24907.35640053908},"targetPosition":{"x":18591.806237131383,"y":24914.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"877f31c9-8762-43fe-ab77-c7c4fb530026","savedPayload":{"position":{"x":18591.806237131383,"y":24945.35640053908},"targetPosition":{"x":18495.806237131383,"y":24851.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"43435aed-68cb-4a56-88c4-2574d91f5b32"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"bab23253-c54a-4b9b-9495-21e4d99166c0","savedPayload":{"position":{"x":18547.806237131383,"y":24944.35640053908},"targetPosition":{"x":18495.806237131383,"y":24851.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"904be022-f1e2-475e-9115-88224353cfa2"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"62b238ab-30ef-492b-ad5b-6fbecece9502","savedPayload":{"position":{"x":18562.806237131383,"y":24823.35640053908},"targetPosition":{"x":18495.806237131383,"y":24851.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"4c74d4d8-d0a4-4581-bee7-36485d7a91a5"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f6f66fca-9fa4-4722-8635-cc78a063f996","savedPayload":{"position":{"x":18504.806237131383,"y":24826.35640053908},"targetPosition":{"x":18495.806237131383,"y":24851.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"9fc6d2c4-a67b-42e8-841b-7523f7ab4962"}}}],"id":"6556054e-fa91-478b-af23-37ea8e9228a7","savedPayload":{"position":{"x":18495.806237131383,"y":24851.35640053908},"targetPosition":{"x":18591.806237131383,"y":24914.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2b29baee-d4c5-47cd-b077-24f1a09bf767","savedPayload":{"position":{"x":16515.113554458814,"y":24532.51972238008},"targetPosition":{"x":16709.94796895787,"y":24760.641512060087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stages","id":"2ff568f3-d4bb-4ab8-b373-f98b98dcde72"}}},{"type":"Layer","name":"Close Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Close Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e7efe58f-05ed-4288-9ef5-88d34c854bca","savedPayload":{"position":{"x":18686.806237131383,"y":24892.35640053908},"targetPosition":{"x":18684.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Close Stage Object","id":"069885e7-351f-45dc-8423-113db65b9592"}}}],"id":"7c965a41-b615-4a1d-a16f-d52bfad4d56d","savedPayload":{"position":{"x":18684.806237131383,"y":24983.35640053908},"targetPosition":{"x":18716.806237131383,"y":25022.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1ddd60b4-2f0f-4b7a-b972-4ebec279be34","savedPayload":{"position":{"x":18559.806237131383,"y":25084.35640053908},"targetPosition":{"x":18651.806237131383,"y":25108.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"9463d512-21f5-48c1-8cd6-b14747b338cf"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f06ffc40-9ffb-4652-abf9-be8c1a76b0f9","savedPayload":{"position":{"x":18682.806237131383,"y":25143.35640053908},"targetPosition":{"x":18651.806237131383,"y":25108.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"c3249cad-9f26-4ff2-ab0d-968c66bb7f2d"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a07cdd6c-4abd-4455-b411-e8bcf3c42f66","savedPayload":{"position":{"x":18744.806237131383,"y":25154.35640053908},"targetPosition":{"x":18651.806237131383,"y":25108.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"dbd9d421-d90c-4ab8-a26b-c2254d7abec1"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"3a1515c0-452d-446e-a0f9-e359a8d89719","savedPayload":{"position":{"x":18697.806237131383,"y":25207.35640053908},"targetPosition":{"x":18651.806237131383,"y":25108.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"a5e40c24-183d-4896-97b0-f9f0f104c240"}}}],"id":"cc5d1005-05a4-4952-9aa8-66964fe7cd1a","savedPayload":{"position":{"x":18651.806237131383,"y":25108.35640053908},"targetPosition":{"x":18716.806237131383,"y":25022.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"eb33f95e-8563-45e4-bc53-9ff62bfb9668","savedPayload":{"position":{"x":16553.198399543086,"y":24504.84946275386},"targetPosition":{"x":16709.94796895787,"y":24760.641512060087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stages","id":"b0af2801-1ab3-4492-8468-dea73b3602ff"}}}],"layerFolders":[],"id":"748c307e-3bc1-4bf2-9b63-866b1a6022da","savedPayload":{"position":{"x":16709.94796895787,"y":24760.641512060087},"targetPosition":{"x":16922.080003313833,"y":24972.77354641605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Positions","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Position Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"d91e193b-c4cc-4e03-a2f6-4e0c157f20cd","savedPayload":{"position":{"x":18703.806237131383,"y":24991.35640053908},"targetPosition":{"x":18638.806237131383,"y":24922.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Object","id":"3d274e02-8896-4311-a0c8-9041b6507090"}}},{"type":"Layer Panel","name":"Position Combined Statistics","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"69c5a6dc-fef1-4d84-a2f0-9b783827c028","savedPayload":{"position":{"x":18694.806237131383,"y":24876.35640053908},"targetPosition":{"x":18638.806237131383,"y":24922.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Combined Statistics","id":"05d6bb3e-f975-471f-be1f-3215025ce6fe"}}}],"id":"bcddcb8c-ceb3-476f-8522-31a86c7e791e","savedPayload":{"position":{"x":18638.806237131383,"y":24922.35640053908},"targetPosition":{"x":18619.806237131383,"y":24984.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Entry Target Rate Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a73509d2-3698-4384-bcbc-da73ed4f75bf","savedPayload":{"position":{"x":18653.806237131383,"y":24919.35640053908},"targetPosition":{"x":18598.806237131383,"y":24997.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Entry Target Rate Line","id":"543ebae2-5624-49ad-a00f-df63335e92a9"}}},{"type":"Layer Polygon","name":"Exit Target Rate Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e9538585-2117-498b-b717-14d8822357ed","savedPayload":{"position":{"x":18564.806237131383,"y":24907.35640053908},"targetPosition":{"x":18598.806237131383,"y":24997.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Exit Target Rate Line","id":"b066c240-8552-4622-9597-77e812491910"}}}],"id":"f913ba18-546d-4096-ab90-aec6059e19f2","savedPayload":{"position":{"x":18598.806237131383,"y":24997.35640053908},"targetPosition":{"x":18619.806237131383,"y":24984.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"624f0608-d88b-43de-b7f2-417d4a4eba71","savedPayload":{"position":{"x":16694.434289783076,"y":24423.188177393997},"targetPosition":{"x":16844.434289783076,"y":24682.99579852933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Positions","id":"14dba295-5795-4ed3-bdc5-ccf11a8028c5"}}},{"type":"Layer","name":"Position Base Asset","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Position Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4fd57406-376b-4dd9-8051-d91a5d9e1f84","savedPayload":{"position":{"x":18655.806237131383,"y":25049.35640053908},"targetPosition":{"x":18613.806237131383,"y":25055.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Base Asset","id":"b4298480-8922-4c40-ac79-b4484f8558bd"}}}],"id":"7691a95e-22bb-4805-903c-c636d010022c","savedPayload":{"position":{"x":18613.806237131383,"y":25055.35640053908},"targetPosition":{"x":18702.806237131383,"y":25037.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Profit Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"718b758f-5851-46aa-b9cd-680174a595fe","savedPayload":{"position":{"x":18778.806237131383,"y":24943.35640053908},"targetPosition":{"x":18732.806237131383,"y":25032.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Profit Triangle","id":"2628b290-a09a-4807-8a45-7ff5a880d195"}}},{"type":"Layer Polygon","name":"Loss Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"64e80a44-6d8e-4137-a067-647e7a183b47","savedPayload":{"position":{"x":18821.806237131383,"y":24955.35640053908},"targetPosition":{"x":18732.806237131383,"y":25032.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Loss Triangle","id":"e37cfbb4-fe54-49ad-9525-29b0d77e082b"}}},{"type":"Layer Polygon","name":"Empty Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"3f98a268-6ef5-4934-bc74-6374a4ea8ed4","savedPayload":{"position":{"x":18793.806237131383,"y":24962.35640053908},"targetPosition":{"x":18732.806237131383,"y":25032.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Empty Triangle","id":"23c30ca5-95ec-47b2-a65f-01969b1a5a78"}}}],"id":"f5ffc9a8-3721-47cb-939b-24456a2db9cc","savedPayload":{"position":{"x":18732.806237131383,"y":25032.35640053908},"targetPosition":{"x":18702.806237131383,"y":25037.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a4b0ce5-50b7-4508-a75e-dc1f887ac85c","savedPayload":{"position":{"x":16729.62926007355,"y":24405.831938775944},"targetPosition":{"x":16844.434289783076,"y":24682.99579852933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Base Asset","id":"19cabd46-a4dc-47a4-9a4a-bd5f264836d4"}}},{"type":"Layer","name":"Position Quoted Asset","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Position Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6ef7618e-73e7-4f87-88a6-5e2c64d9ec6f","savedPayload":{"position":{"x":18761.806237131383,"y":24987.35640053908},"targetPosition":{"x":18756.806237131383,"y":24982.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Quoted Asset","id":"f15d0a31-30bd-49a6-8c45-1bcd1a9cc5a8"}}}],"id":"8c35b178-158c-47d9-aceb-4e3945b7212c","savedPayload":{"position":{"x":18756.806237131383,"y":24982.35640053908},"targetPosition":{"x":18673.806237131383,"y":25026.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Profit Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"8813d0f8-6249-46ba-b3da-4ac008acbb2f","savedPayload":{"position":{"x":18598.806237131383,"y":24941.35640053908},"targetPosition":{"x":18691.806237131383,"y":25013.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Profit Triangle","id":"9cf82ef4-557e-498e-b121-ff28235b3a25"}}},{"type":"Layer Polygon","name":"Loss Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"da45eca3-0951-4cfc-b6b9-56382a23e935","savedPayload":{"position":{"x":18701.806237131383,"y":25035.35640053908},"targetPosition":{"x":18691.806237131383,"y":25013.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Loss Triangle","id":"61faa796-9697-48b0-a582-613e1b351931"}}},{"type":"Layer Polygon","name":"Empty Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"255cd3ab-fa33-4655-b2c0-3b870fb980d4","savedPayload":{"position":{"x":18646.806237131383,"y":25010.35640053908},"targetPosition":{"x":18691.806237131383,"y":25013.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Empty Triangle","id":"58c807a3-8443-43d9-82e9-81c3d0545399"}}}],"id":"2b2a5829-a033-4dcf-b2c4-b53ec766196d","savedPayload":{"position":{"x":18691.806237131383,"y":25013.35640053908},"targetPosition":{"x":18673.806237131383,"y":25026.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f10a234d-8dcd-4c92-8a0a-6caa06e674bc","savedPayload":{"position":{"x":16766.78857625232,"y":24393.21805064261},"targetPosition":{"x":16844.434289783076,"y":24682.99579852933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Quoted Asset","id":"09d9b2b3-afd2-4b7d-9553-b254d6c8738f"}}},{"type":"Layer","name":"Stop Loss","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Stop Loss Panel","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"41a1f01e-b633-472e-8986-d32e5627c724","savedPayload":{"position":{"x":18812.806237131383,"y":24928.35640053908},"targetPosition":{"x":18764.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Stop Loss Panel","id":"1b6d3bd0-e594-4b09-9f1c-021177676d84"}}}],"id":"dda9247d-3fba-4c91-b10c-47cdff4ca195","savedPayload":{"position":{"x":18764.806237131383,"y":24983.35640053908},"targetPosition":{"x":18700.806237131383,"y":25045.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"9018968a-0d64-4861-ab5a-1f97dd79cd22","savedPayload":{"position":{"x":18703.806237131383,"y":25068.35640053908},"targetPosition":{"x":18703.806237131383,"y":25119.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"9d351f29-6a3e-4c2b-b008-ebe1414d2aa8"}}}],"id":"67b90b3d-bddc-4c50-b41d-91589edde2d7","savedPayload":{"position":{"x":18703.806237131383,"y":25119.35640053908},"targetPosition":{"x":18700.806237131383,"y":25045.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"72a8529a-1989-4ee7-b234-f02faed24749","savedPayload":{"position":{"x":16805.27643211706,"y":24385.562340117187},"targetPosition":{"x":16844.434289783076,"y":24682.99579852933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Stop Loss","id":"f31415b0-baa4-44fb-a018-8e1a26f2dae0"}}},{"type":"Layer","name":"Take Profit","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Take Profit Panel","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"d07695a6-614c-4949-a666-e939f1083d73","savedPayload":{"position":{"x":18653.806237131383,"y":25003.35640053908},"targetPosition":{"x":18685.806237131383,"y":25096.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Take Profit Panel","id":"33aa2293-7958-4cc3-bb41-fc97c17ccd67"}}}],"id":"9997f855-30db-4a0a-834d-2538af13f1e0","savedPayload":{"position":{"x":18685.806237131383,"y":25096.35640053908},"targetPosition":{"x":18724.806237131383,"y":25036.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1cdc582e-503d-425f-9030-93c15b35024e","savedPayload":{"position":{"x":18721.806237131383,"y":25138.35640053908},"targetPosition":{"x":18678.806237131383,"y":25067.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"a0b598d2-cdb6-4ce7-96c5-ef3317ae1768"}}}],"id":"434befd7-a9ca-49be-bf36-1b2bd78168fb","savedPayload":{"position":{"x":18678.806237131383,"y":25067.35640053908},"targetPosition":{"x":18724.806237131383,"y":25036.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d4aa399a-267a-4777-941c-0f43c022023e","savedPayload":{"position":{"x":16844.434289783076,"y":24382.99579852933},"targetPosition":{"x":16844.434289783076,"y":24682.99579852933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Take Profit","id":"140b3155-0cd9-4bde-b012-24f81bf97970"}}}],"layerFolders":[],"id":"ad52c931-87ba-49ef-928d-89d7629aa1f0","savedPayload":{"position":{"x":16844.434289783076,"y":24682.99579852933},"targetPosition":{"x":16922.080003313833,"y":24972.77354641605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e635d17b-38be-4025-b42e-71dff513a39e","savedPayload":{"position":{"x":16922.080003313833,"y":24972.77354641605},"targetPosition":{"x":17211.857751200554,"y":25050.419259946808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"633451c0-e0a7-46e6-a77b-6d14fff3910c","savedPayload":{"position":{"x":17211.857751200554,"y":25050.419259946808},"targetPosition":{"x":17501.635499087275,"y":25128.064973477565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9903ff31-3943-4cd0-b10e-7f7542826184","savedPayload":{"position":{"x":17501.635499087275,"y":25128.064973477565},"targetPosition":{"x":17791.413246973996,"y":25205.710687008323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"caa36a7c-69b6-4863-a313-003d5af2d126"}}},"id":"117743b6-bcbf-41b5-852f-1f60033ad3dc","savedPayload":{"position":{"x":17751.22086810933,"y":25055.710687008323},"targetPosition":{"x":18040.99861599605,"y":25133.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Masters Data","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Exchange Raw Data","project":"Superalgos","layers":[],"layerFolders":[],"id":"151a3047-d22c-4e22-b718-c2af7bcbb511","savedPayload":{"position":{"x":23535.34069136085,"y":33671.80414654502},"targetPosition":{"x":23822.986611821307,"y":33586.599543133845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Candles Volumes","project":"Superalgos","layers":[{"type":"Layer","name":"Candles","config":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Candle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"b1bf384e-0c54-4cec-9e74-2db2732aeff9","savedPayload":{"position":{"x":18876.806237131383,"y":25037.35640053908},"targetPosition":{"x":18880.806237131383,"y":24969.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Candle","id":"9336f4e6-d56b-4ed4-819d-0bb762ba1fdd"}}}],"id":"79f736e4-e3a5-4739-a686-07d892380a12","savedPayload":{"position":{"x":18880.806237131383,"y":24969.35640053908},"targetPosition":{"x":18850.806237131383,"y":24954.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"00cfa2ce-3b30-4cc6-9d74-ab22ef88ac83","savedPayload":{"position":{"x":18860.806237131383,"y":24923.35640053908},"targetPosition":{"x":18850.806237131383,"y":24954.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"010cfb42-eaac-4648-881b-45f8d4766a10","savedPayload":{"position":{"x":23246.74988427351,"y":33424.08397811839},"targetPosition":{"x":23540.194164493652,"y":33486.45748536372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"2a290f06-5f0b-4f57-93d1-7579fa589aa0"}}},{"type":"Layer","name":"Volumes","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Volume","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"619ae2b6-2d16-42a8-8dcd-c31b326a2895","savedPayload":{"position":{"x":18628.806237131383,"y":24839.35640053908},"targetPosition":{"x":18691.806237131383,"y":24790.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Volume","id":"42dbd098-4550-44a0-987f-54a28dd5f40b"}}}],"id":"a4b5a955-1b3b-40da-afca-e034fbc3da18","savedPayload":{"position":{"x":18691.806237131383,"y":24790.35640053908},"targetPosition":{"x":18763.806237131383,"y":24832.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"53d26507-97f5-447c-9952-8e8222bcfbfb","savedPayload":{"position":{"x":18775.806237131383,"y":24827.35640053908},"targetPosition":{"x":18763.806237131383,"y":24832.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bfc11466-a48f-47f8-8bae-fe8005ada1ab","savedPayload":{"position":{"x":23272.892207237142,"y":33350.26033544185},"targetPosition":{"x":23540.194164493652,"y":33486.45748536372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"c789572d-ff73-4664-b2a2-8b84a73dccb1"}}}],"layerFolders":[],"id":"bcb6af91-9135-4fb1-a994-56b6c9a9dbba","savedPayload":{"position":{"x":23540.194164493652,"y":33486.45748536372},"targetPosition":{"x":23822.986611821307,"y":33586.599543133845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Bollinger Bands","project":"Superalgos","layers":[{"type":"Layer","name":"Bollinger Bands","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Bollinger Band","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"7b75cb70-79f5-4a12-86e4-5b50206e6a6f","savedPayload":{"position":{"x":18863.806237131383,"y":24934.35640053908},"targetPosition":{"x":18896.806237131383,"y":24948.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Bollinger Band","id":"de7b7008-6f66-4d7d-96dd-1aa7b1ede335"}}}],"id":"3032b45a-93a8-4a51-a66f-ecbb793171dd","savedPayload":{"position":{"x":18896.806237131383,"y":24948.35640053908},"targetPosition":{"x":18952.806237131383,"y":24913.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"b399d296-9dbe-420b-9c25-49551e24af52","savedPayload":{"position":{"x":18998.806237131383,"y":24945.35640053908},"targetPosition":{"x":18952.806237131383,"y":24913.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8c7ca125-c595-416b-b994-94e6aca3751f","savedPayload":{"position":{"x":23452.325558836197,"y":33116.41823890402},"targetPosition":{"x":23653.064740743856,"y":33339.36168654724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"a213e62e-cf80-46e7-8bcf-424d45b8e571"}}},{"type":"Layer","name":"Percentage Bandwidth","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"%B Panel","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5c698621-56c2-4160-b44f-4b46299137ed","savedPayload":{"position":{"x":18910.806237131383,"y":25028.35640053908},"targetPosition":{"x":18922.806237131383,"y":24945.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"%B Panel","id":"36548f31-d96c-4c80-b923-dea5dd5b56c7"}}}],"id":"bf718775-9bb8-4e19-a925-17d98a5da325","savedPayload":{"position":{"x":18922.806237131383,"y":24945.35640053908},"targetPosition":{"x":18857.806237131383,"y":24910.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Area From 0 to 30","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"c50d5eaf-59bc-451b-8bb5-dcd312c07fb1","savedPayload":{"position":{"x":18794.806237131383,"y":24986.35640053908},"targetPosition":{"x":18786.806237131383,"y":24897.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Area From 0 to 30","id":"d76f185f-5219-4f0b-adb3-9a339b0468c6"}}},{"type":"Layer Polygon","name":"Area From 30 to 70","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6e829323-cdd7-4244-9fa3-9f45391128f6","savedPayload":{"position":{"x":18687.806237131383,"y":24829.35640053908},"targetPosition":{"x":18786.806237131383,"y":24897.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Area From 30 to 70","id":"1a7969dd-af18-4e44-b4c9-96dd2be57f7c"}}},{"type":"Layer Polygon","name":"Area From 70 to 100","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"723d07ef-01ac-488e-ae4f-e8fa89de3179","savedPayload":{"position":{"x":18772.806237131383,"y":24859.35640053908},"targetPosition":{"x":18786.806237131383,"y":24897.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Area From 70 to 100","id":"cb1bcd11-0fb0-4377-bff2-dee4630e0f3f"}}},{"type":"Layer Polygon","name":"Line 30","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2eeef5d7-ce61-44b9-8d5b-3536cfcad209","savedPayload":{"position":{"x":18707.806237131383,"y":24813.35640053908},"targetPosition":{"x":18786.806237131383,"y":24897.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Line 30","id":"857043cc-f467-44d2-89eb-2e73f35f638d"}}},{"type":"Layer Polygon","name":"Line 30","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"d55264eb-d393-4c81-ab58-051afdc72ce6","savedPayload":{"position":{"x":18713.806237131383,"y":24840.35640053908},"targetPosition":{"x":18786.806237131383,"y":24897.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Line 30","id":"984a1917-1d81-4142-a50f-269a18a07c9d"}}},{"type":"Layer Polygon","name":"Bandwidth","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"d052eaf3-7ca6-4e49-bc09-f83399d390a1","savedPayload":{"position":{"x":18777.806237131383,"y":24846.35640053908},"targetPosition":{"x":18786.806237131383,"y":24897.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Bandwidth","id":"0f7a4004-177c-4412-b0ef-2608f3c13da6"}}},{"type":"Layer Polygon","name":"Value","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e6d1a0b8-6229-43e7-8365-8a0fb52f9820","savedPayload":{"position":{"x":18819.806237131383,"y":24977.35640053908},"targetPosition":{"x":18786.806237131383,"y":24897.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Value","id":"4598a671-83b9-4460-9e65-175df73eba71"}}},{"type":"Layer Polygon","name":"Moving Average","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a36e69c2-8ea6-4678-87b1-72c0418359d9","savedPayload":{"position":{"x":18773.806237131383,"y":24894.35640053908},"targetPosition":{"x":18786.806237131383,"y":24897.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Moving Average","id":"69c19382-ed5b-48d1-9249-426a8e1e4e51"}}}],"id":"7cec5598-f9b6-4d75-a440-d61411283857","savedPayload":{"position":{"x":18786.806237131383,"y":24897.35640053908},"targetPosition":{"x":18857.806237131383,"y":24910.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2f461d24-881c-48f3-9773-489c8decd0b5","savedPayload":{"position":{"x":23516.867590821992,"y":33072.05972929073},"targetPosition":{"x":23653.064740743856,"y":33339.36168654724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"cdc4ac34-0ec2-4711-9c97-954e42c72d1b"}}}],"layerFolders":[],"id":"a2b43354-b0b0-4515-90c5-d6d52eb8a054","savedPayload":{"position":{"x":23653.064740743856,"y":33339.36168654724},"targetPosition":{"x":23822.986611821307,"y":33586.599543133845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Bollinger Channels","project":"Superalgos","layers":[{"type":"Layer","name":"Bollinger Channels Objects","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Bollinger Channels Objects","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"72e5d1a5-463c-4a37-a488-a951b05a0bd7","savedPayload":{"position":{"x":18688.806237131383,"y":24939.35640053908},"targetPosition":{"x":18628.806237131383,"y":25032.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Bollinger Channels Objects","id":"09c8f781-3e54-4bed-bd9a-83e8179fdd66"}}}],"id":"5ebc9819-33fc-439a-a3c2-b8a4be89e6a6","savedPayload":{"position":{"x":18628.806237131383,"y":25032.35640053908},"targetPosition":{"x":18728.806237131383,"y":24995.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"994ea0e7-b45b-49f7-a917-7fb609bd67e3","savedPayload":{"position":{"x":18774.806237131383,"y":24979.35640053908},"targetPosition":{"x":18759.806237131383,"y":24927.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"6e21446c-93e7-44ad-814d-3cd2fa8f8baf"}}}],"id":"3ac5327c-a6f2-41c9-baf2-19a8730909b0","savedPayload":{"position":{"x":18759.806237131383,"y":24927.35640053908},"targetPosition":{"x":18728.806237131383,"y":24995.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a57fdbcf-07ff-48c0-ac98-2ad5e1cceda0","savedPayload":{"position":{"x":23768.466189068342,"y":32993.25806542103},"targetPosition":{"x":23830.83969631367,"y":33286.70234564118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"aef85abd-8069-4aed-8436-8e67203e5624"}}},{"type":"Layer","name":"Bollinger Channels","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Bollinger Channels","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6abf1c77-c0a0-4163-8db1-de2f87fef52c","savedPayload":{"position":{"x":18772.806237131383,"y":24904.35640053908},"targetPosition":{"x":18825.806237131383,"y":24941.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Bollinger Channels","id":"abb4f289-c374-43e0-b8dc-d586d8e3328e"}}}],"id":"cd53a2b3-f485-4226-9d31-3c2fa5057ec3","savedPayload":{"position":{"x":18825.806237131383,"y":24941.35640053908},"targetPosition":{"x":18885.806237131383,"y":25006.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"07d5dd12-7def-444e-9f6f-892798c7abfb","savedPayload":{"position":{"x":18831.806237131383,"y":25084.35640053908},"targetPosition":{"x":18885.806237131383,"y":25006.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e5cc8e25-5df6-4f58-9e93-4bdef3d2cfe4","savedPayload":{"position":{"x":23815.138909440786,"y":32987.1134852148},"targetPosition":{"x":23830.83969631367,"y":33286.70234564118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"2fdc23da-996c-4429-8beb-3d9db46e2510"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Bollinger Sub Channels Objects","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"af640832-0e8e-4b5e-9b16-c839baba8755","savedPayload":{"position":{"x":18700.806237131383,"y":24988.35640053908},"targetPosition":{"x":18775.806237131383,"y":24920.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Bollinger Sub Channels Objects","id":"8ce4c7ca-3496-4df8-9d57-335d40cc77a0"}}}],"id":"2dbeb8bf-b5fc-4a78-96bd-27978e76bf7a","savedPayload":{"position":{"x":18775.806237131383,"y":24920.35640053908},"targetPosition":{"x":18803.806237131383,"y":24932.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"b283d87e-5aea-4f62-afd2-8802654bbd4e","savedPayload":{"position":{"x":18883.806237131383,"y":24892.35640053908},"targetPosition":{"x":18803.806237131383,"y":24932.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3f11264f-0722-49ef-8c48-e5ef0568828a","savedPayload":{"position":{"x":23862.198235293967,"y":32988.34577703069},"targetPosition":{"x":23830.83969631367,"y":33286.70234564118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"cbf3145e-ab44-4b47-92a5-8d4a7f81802a"}}},{"type":"Layer","name":"Bollinger Sub-Channels","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Bollinger Sub Channels","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"7e8b8d3b-194d-4f38-b6ad-2228f191bf48","savedPayload":{"position":{"x":18664.806237131383,"y":24897.35640053908},"targetPosition":{"x":18691.806237131383,"y":24829.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Bollinger Sub Channels","id":"1beae26c-7235-46ef-a732-1d0c9f18dda5"}}}],"id":"4590a39f-a796-4a22-bd9f-c051f3a5e3c6","savedPayload":{"position":{"x":18691.806237131383,"y":24829.35640053908},"targetPosition":{"x":18739.806237131383,"y":24926.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"d25d654d-3b9f-4216-aad7-d2af71b41e18","savedPayload":{"position":{"x":18818.806237131383,"y":24990.35640053908},"targetPosition":{"x":18739.806237131383,"y":24926.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"49a142bb-9716-4f73-bfa0-84b5691be2f6","savedPayload":{"position":{"x":23908.485409844427,"y":32996.924597754456},"targetPosition":{"x":23830.83969631367,"y":33286.70234564118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"144f7f8b-36b1-4e46-b3a1-3ea6e178d452"}}}],"layerFolders":[],"id":"9a30281e-6bed-407b-9543-d641a26f9f07","savedPayload":{"position":{"x":23830.83969631367,"y":33286.70234564118},"targetPosition":{"x":23822.986611821307,"y":33586.599543133845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fe94d8dd-5c3a-4ff2-a056-189c66e67cd5","savedPayload":{"position":{"x":17564.986611821307,"y":24768.099543133845},"targetPosition":{"x":17802.99261390868,"y":24950.727971836463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Data Mine Products","name":"Masters","id":"0cda2799-71dd-4378-9239-4d9429f84a18"}}},"id":"4a7a73cb-c872-4b01-9ace-d2d238fa283a","savedPayload":{"position":{"x":17802.99261390868,"y":24950.727971836463},"targetPosition":{"x":18040.99861599605,"y":25133.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d","savedPayload":{"position":{"x":18040.99861599605,"y":25133.35640053908},"targetPosition":{"x":18300.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":965,"y":45},"width":256,"height":115.125,"radius":0},"referenceParent":{"type":"Backtesting Session","name":"BB Breakdown","id":"d23a592c-596c-475f-a6c4-00a63d05cf92"}}},{"type":"Time Machine","name":"BB Breakdown 2 Backtesting Session My Computer Binance BTC/USDT","config":"{}","project":"Superalgos","timeScale":{"type":"Time Scale","name":"New Time Scale","config":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-23T05:14:21.951Z\",\n \"toDate\": \"2020-03-07T07:22:37.749Z\"\n}","project":"Superalgos","id":"166b7ab7-7197-4072-a567-689fc6a8c713","savedPayload":{"position":{"x":17802.99261390868,"y":25015.984829241697},"targetPosition":{"x":18040.99861599605,"y":24833.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","config":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7338.746621498382,\n \"maxValue\": 10023.101181498383\n}","project":"Superalgos","id":"11c1afc7-3bde-4f29-bbf1-e71ef3423424","savedPayload":{"position":{"x":17751.22086810933,"y":24911.002114069837},"targetPosition":{"x":18040.99861599605,"y":24833.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","config":"{\n \"value\": \"01-hs\"\n}","project":"Superalgos","id":"53d33605-e95e-4970-976a-cc681375b473","savedPayload":{"position":{"x":17743.565157583907,"y":24794.198542873066},"targetPosition":{"x":18040.99861599605,"y":24833.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Trading Engine","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading Engine","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Episode","project":"Superalgos","layers":[{"type":"Layer","name":"Episode Counters","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Episode Counters","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e2c4f84d-fdf2-41e6-b0c2-35a754681908","savedPayload":{"position":{"x":19174.677495559496,"y":25279.87739346182},"targetPosition":{"x":19261.677495559496,"y":25288.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Counters","id":"2a5783fe-af9a-443c-b4e7-32d8bdabff82"}}}],"id":"8ed85823-f0db-4b5a-aad6-06c955efd497","savedPayload":{"position":{"x":19261.677495559496,"y":25288.87739346182},"targetPosition":{"x":19216.677495559496,"y":25357.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"50b0fd8f-6518-4fde-9c6c-e09762d5ebcb","savedPayload":{"position":{"x":19277.677495559496,"y":25374.87739346182},"targetPosition":{"x":19216.677495559496,"y":25357.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4b4be87e-b271-44e3-826e-42d268f7ed06","savedPayload":{"position":{"x":19216.677495559496,"y":25357.87739346182},"targetPosition":{"x":19187.677495559496,"y":25317.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Counters","id":"60924390-790b-4bf7-adc7-b72bc77d9e16"}}},{"type":"Layer","name":"Episode Statistics","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Episode Statistics","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"cd2583ea-4675-4fd8-99e7-3e510ce90ca1","savedPayload":{"position":{"x":19234.677495559496,"y":25209.87739346182},"targetPosition":{"x":19219.677495559496,"y":25284.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Statistics","id":"6ea43033-418d-4d87-b640-02010679aa8b"}}}],"id":"f5e76081-b676-4c6b-80be-cf65c21a71b2","savedPayload":{"position":{"x":19219.677495559496,"y":25284.87739346182},"targetPosition":{"x":19230.677495559496,"y":25282.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"4026eb03-6d7a-4a04-9a47-711f82b170da","savedPayload":{"position":{"x":19191.677495559496,"y":25367.87739346182},"targetPosition":{"x":19230.677495559496,"y":25282.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d82f55de-9ba5-4d90-b6f7-3ebe8b7f73b7","savedPayload":{"position":{"x":19230.677495559496,"y":25282.87739346182},"targetPosition":{"x":19187.677495559496,"y":25317.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Statistics","id":"ed1de592-f7b9-4c25-8fbb-ee321dd66825"}}},{"type":"Layer","name":"Episode Candle","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"27c4c984-75ec-498d-b1f2-e40ba28ce727","savedPayload":{"position":{"x":19237.677495559496,"y":25436.87739346182},"targetPosition":{"x":19279.677495559496,"y":25356.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"f39d020b-2998-4394-96f9-347a5405482d","savedPayload":{"position":{"x":19201.677495559496,"y":25370.87739346182},"targetPosition":{"x":19279.677495559496,"y":25356.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"de96e5d7-5732-4eed-aa69-52633f18d30d","savedPayload":{"position":{"x":19279.677495559496,"y":25356.87739346182},"targetPosition":{"x":19187.677495559496,"y":25317.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Candle","id":"9f1e1582-6d1e-44ac-8606-021c0d0ecbec"}}},{"type":"Layer","name":"Episode Balances","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Current Balance","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ed692b8e-93b1-4f96-91b7-91d0ed422881","savedPayload":{"position":{"x":19137.677495559496,"y":25232.87739346182},"targetPosition":{"x":19154.677495559496,"y":25187.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Current Balance","id":"cb03ef16-522f-4189-ab3a-b410bf1f4176"}}}],"id":"14834017-1f51-406c-b2ea-535d602f8f63","savedPayload":{"position":{"x":19154.677495559496,"y":25187.87739346182},"targetPosition":{"x":19236.677495559496,"y":25273.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"9e7f3c7f-5d8b-4aa6-980b-a57588cf00e4","savedPayload":{"position":{"x":19165.677495559496,"y":25239.87739346182},"targetPosition":{"x":19236.677495559496,"y":25273.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ed6b974e-b785-4ae7-b1e7-6881e64d3bb2","savedPayload":{"position":{"x":19236.677495559496,"y":25273.87739346182},"targetPosition":{"x":19187.677495559496,"y":25317.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Balances","id":"c7197474-250f-4f35-b56f-e9b8d5a90b94"}}},{"type":"Layer","name":"Distance To Event","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"350fda9b-05eb-49eb-b9d1-7d77c890ca7c","savedPayload":{"position":{"x":19308.677495559496,"y":25178.87739346182},"targetPosition":{"x":19238.677495559496,"y":25241.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"578dbc23-328b-4a49-8e3e-c35631803cb9","savedPayload":{"position":{"x":19142.677495559496,"y":25244.87739346182},"targetPosition":{"x":19238.677495559496,"y":25241.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6192f499-c758-4ea8-a90e-05e3718217a6","savedPayload":{"position":{"x":19238.677495559496,"y":25241.87739346182},"targetPosition":{"x":19187.677495559496,"y":25317.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Distance To Event","id":"6e485425-6dfd-4c38-aa2d-28aca024dd1b"}}},{"type":"Layer","name":"Episode Base Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"2602ed98-d3c0-44ff-b267-697fafc6b748","savedPayload":{"position":{"x":19289.677495559496,"y":25261.87739346182},"targetPosition":{"x":19210.677495559496,"y":25279.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"553d3302-3572-45bf-acd0-29976bf1103e","savedPayload":{"position":{"x":19216.677495559496,"y":25199.87739346182},"targetPosition":{"x":19210.677495559496,"y":25279.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b88a37e7-0742-4502-a243-25aaa6b37901","savedPayload":{"position":{"x":19210.677495559496,"y":25279.87739346182},"targetPosition":{"x":19187.677495559496,"y":25317.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Base Asset","id":"73570334-f5cc-4b17-9e75-ac44e2f8fec1"}}},{"type":"Layer","name":"Episode Quoted Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"4993fc6f-fde2-4204-86f8-43fb7bf7a465","savedPayload":{"position":{"x":19234.677495559496,"y":25417.87739346182},"targetPosition":{"x":19187.677495559496,"y":25415.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"60ec3587-2c30-4645-8767-9adbd4c1d569","savedPayload":{"position":{"x":19246.677495559496,"y":25405.87739346182},"targetPosition":{"x":19187.677495559496,"y":25415.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"05cb5eda-2cb1-4df6-ae8b-19a119b73b9d","savedPayload":{"position":{"x":19187.677495559496,"y":25415.87739346182},"targetPosition":{"x":19187.677495559496,"y":25317.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Quoted Asset","id":"ee9028a0-c321-4a22-82a0-7ed2527162eb"}}},{"type":"Layer","name":"Current Episode","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e10b382a-9962-4ecd-8b42-2c34a7224f73","savedPayload":{"position":{"x":19092.677495559496,"y":25276.87739346182},"targetPosition":{"x":19187.677495559496,"y":25226.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"c14b51ec-4e23-4d2c-9f21-2d909f02b26a","savedPayload":{"position":{"x":19151.677495559496,"y":25206.87739346182},"targetPosition":{"x":19187.677495559496,"y":25226.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d630dae8-33c8-4b7f-886d-3f29bf705c0d","savedPayload":{"position":{"x":19187.677495559496,"y":25226.87739346182},"targetPosition":{"x":19187.677495559496,"y":25317.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Episode","id":"eef16b61-006f-45f9-a77c-914ad21f9a43"}}}],"layerFolders":[],"id":"4a9f488c-881c-4559-bfb3-4ffbcfb9a4a6","savedPayload":{"position":{"x":19187.677495559496,"y":25317.87739346182},"targetPosition":{"x":19149.677495559496,"y":25302.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Strategy","project":"Superalgos","layers":[{"type":"Layer","name":"Current Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"64db8f13-f023-4164-a632-dc2e00059ede","savedPayload":{"position":{"x":19251.677495559496,"y":25325.87739346182},"targetPosition":{"x":19214.677495559496,"y":25307.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"2c1ae811-af14-4240-a747-6421328cf133","savedPayload":{"position":{"x":19158.677495559496,"y":25400.87739346182},"targetPosition":{"x":19214.677495559496,"y":25307.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3d2a2cb8-aa00-4818-afe5-67dbdf8f3dae","savedPayload":{"position":{"x":19214.677495559496,"y":25307.87739346182},"targetPosition":{"x":19135.677495559496,"y":25239.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Strategy","id":"23ba93fd-b3b7-432d-a50a-cafcb4cc293b"}}},{"type":"Layer","name":"Last Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"afac7082-11c3-4761-bbfe-db4465a544d0","savedPayload":{"position":{"x":19217.677495559496,"y":25262.87739346182},"targetPosition":{"x":19121.677495559496,"y":25239.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"fce565a1-9c85-46b0-9a04-fcd18d3dd381","savedPayload":{"position":{"x":19103.677495559496,"y":25149.87739346182},"targetPosition":{"x":19121.677495559496,"y":25239.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fba615bd-8ec3-440b-9a7a-d10416bdfd9f","savedPayload":{"position":{"x":19121.677495559496,"y":25239.87739346182},"targetPosition":{"x":19135.677495559496,"y":25239.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Strategy","id":"2c1c952c-525a-417f-8dff-33c31b9a625c"}}}],"layerFolders":[],"id":"7d54395e-546e-4c0d-a0c6-3a278e9915bd","savedPayload":{"position":{"x":19135.677495559496,"y":25239.87739346182},"targetPosition":{"x":19149.677495559496,"y":25302.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Current Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"767fbd91-f2a5-4561-b3ce-c1fd81d189a2","savedPayload":{"position":{"x":19077.677495559496,"y":25336.87739346182},"targetPosition":{"x":19044.677495559496,"y":25333.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"63a4ae77-f501-4dc3-9ab3-ad4296db63eb","savedPayload":{"position":{"x":18959.677495559496,"y":25340.87739346182},"targetPosition":{"x":19044.677495559496,"y":25333.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9532b3f1-c679-4ad9-845f-5c88e7dfec42","savedPayload":{"position":{"x":19044.677495559496,"y":25333.87739346182},"targetPosition":{"x":19079.677495559496,"y":25366.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Position","id":"78d634df-0591-48c7-96d2-d21b978937c3"}}},{"type":"Layer","name":"Last Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"c2f4a12d-2536-412d-b887-2fedc42f313b","savedPayload":{"position":{"x":19173.677495559496,"y":25413.87739346182},"targetPosition":{"x":19147.677495559496,"y":25343.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"8e799eb5-508a-4788-9f03-687d59d1b3cf","savedPayload":{"position":{"x":19071.677495559496,"y":25352.87739346182},"targetPosition":{"x":19147.677495559496,"y":25343.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9859c4d1-6c23-4bc6-8c50-0031111d1c44","savedPayload":{"position":{"x":19147.677495559496,"y":25343.87739346182},"targetPosition":{"x":19079.677495559496,"y":25366.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Position","id":"ea278b46-43e2-4432-8e4e-6337a8a4add5"}}},{"type":"Layer","name":"Stop Loss","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"30520c57-3925-4fed-8061-53087662f9cb","savedPayload":{"position":{"x":18981.677495559496,"y":25300.87739346182},"targetPosition":{"x":19072.677495559496,"y":25358.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"c7764ab8-a1de-4858-846d-11aee6697b84","savedPayload":{"position":{"x":19087.677495559496,"y":25265.87739346182},"targetPosition":{"x":19072.677495559496,"y":25358.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a44fe367-efbd-49ae-b88a-4dfb80e37484","savedPayload":{"position":{"x":19072.677495559496,"y":25358.87739346182},"targetPosition":{"x":19079.677495559496,"y":25366.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Stop Loss","id":"5acabff8-8f1b-41c3-ab67-01c4126b23a2"}}},{"type":"Layer","name":"Take Profit","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"f6dbcff8-f4aa-4049-b4b9-b43c66d01d7f","savedPayload":{"position":{"x":19048.677495559496,"y":25512.87739346182},"targetPosition":{"x":19103.677495559496,"y":25417.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"8c043dc6-040b-4773-ae52-6d97c56611fd","savedPayload":{"position":{"x":19099.677495559496,"y":25335.87739346182},"targetPosition":{"x":19103.677495559496,"y":25417.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"102c96a9-cd15-4c9a-9e80-739ae484cde8","savedPayload":{"position":{"x":19103.677495559496,"y":25417.87739346182},"targetPosition":{"x":19079.677495559496,"y":25366.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Take Profit","id":"9fa7056e-9d71-48bb-9a6b-33a28c2dfd69"}}}],"layerFolders":[],"id":"3d5ecf7d-841e-458c-8f2e-730b994d78c4","savedPayload":{"position":{"x":19079.677495559496,"y":25366.87739346182},"targetPosition":{"x":19149.677495559496,"y":25302.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Open Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"144b9543-3665-49e6-a9ce-a221a53c166a","savedPayload":{"position":{"x":19222.677495559496,"y":25122.87739346182},"targetPosition":{"x":19187.677495559496,"y":25201.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"93b47d42-050c-4320-be2b-0cdd30892c61","savedPayload":{"position":{"x":19159.677495559496,"y":25109.87739346182},"targetPosition":{"x":19187.677495559496,"y":25201.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7624328f-73f1-4355-9189-afa2d4179538","savedPayload":{"position":{"x":19187.677495559496,"y":25201.87739346182},"targetPosition":{"x":19147.677495559496,"y":25209.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stage","id":"bf681252-1213-40e6-b0f0-ae24d37b7840"}}},{"type":"Layer","name":"Close Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"b52b16f8-437f-4098-8a6d-ac58715846de","savedPayload":{"position":{"x":19106.677495559496,"y":25164.87739346182},"targetPosition":{"x":19047.677495559496,"y":25177.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"b9fdd9ae-caca-465d-aca2-9d96f09185bf","savedPayload":{"position":{"x":18993.677495559496,"y":25165.87739346182},"targetPosition":{"x":19047.677495559496,"y":25177.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1b7f28b4-f6e2-49fd-ba25-abceeb17f967","savedPayload":{"position":{"x":19047.677495559496,"y":25177.87739346182},"targetPosition":{"x":19147.677495559496,"y":25209.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stage","id":"e57e80d4-bfb4-45fa-ba46-8a8ddb6381ea"}}},{"type":"Layer","name":"Trigger Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"ddaecbdc-5e3a-4664-b140-cf6de084b0a7","savedPayload":{"position":{"x":19163.677495559496,"y":25216.87739346182},"targetPosition":{"x":19171.677495559496,"y":25124.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"20987133-b173-4ceb-a51e-7a2a8f9b15f7","savedPayload":{"position":{"x":19146.677495559496,"y":25109.87739346182},"targetPosition":{"x":19171.677495559496,"y":25124.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a4f3c050-5348-4941-813b-08991cc308f4","savedPayload":{"position":{"x":19171.677495559496,"y":25124.87739346182},"targetPosition":{"x":19147.677495559496,"y":25209.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stage","id":"a750a17b-6e62-446d-9d2a-7d2ae2c9fc39"}}},{"type":"Layer","name":"Manage Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"f81a30fa-4743-42de-ae70-931ab62013bb","savedPayload":{"position":{"x":19044.677495559496,"y":25212.87739346182},"targetPosition":{"x":19139.677495559496,"y":25298.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"ec87226d-565b-4cb3-9fa8-8cdc4ed69766","savedPayload":{"position":{"x":19193.677495559496,"y":25318.87739346182},"targetPosition":{"x":19139.677495559496,"y":25298.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b0d42d0a-39df-4f0a-88ad-42fc886db9f5","savedPayload":{"position":{"x":19139.677495559496,"y":25298.87739346182},"targetPosition":{"x":19147.677495559496,"y":25209.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stage","id":"3c9cf74d-ab63-4391-ad0c-58fd7cb4101e"}}}],"layerFolders":[],"id":"27f79e36-a747-4810-93c0-33f67a3a5b13","savedPayload":{"position":{"x":19147.677495559496,"y":25209.87739346182},"targetPosition":{"x":19149.677495559496,"y":25302.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"14f08b33-7c16-48a8-ab7e-132157a52407","savedPayload":{"position":{"x":19253.677495559496,"y":25286.87739346182},"targetPosition":{"x":19162.677495559496,"y":25270.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"38cf2993-41dc-47f9-a07f-b9d5acef6256","savedPayload":{"position":{"x":19239.677495559496,"y":25183.87739346182},"targetPosition":{"x":19162.677495559496,"y":25270.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1ea411a7-5710-4696-a60e-cbb024cf23c8","savedPayload":{"position":{"x":19162.677495559496,"y":25270.87739346182},"targetPosition":{"x":19166.677495559496,"y":25290.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"5b8ff9e4-9192-4c2f-8e25-18958434fc23"}}},{"type":"Layer","name":"Market Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"f27d87c7-d9e7-4384-8712-4393816fea4a","savedPayload":{"position":{"x":19217.677495559496,"y":25255.87739346182},"targetPosition":{"x":19236.677495559496,"y":25298.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"ed267aa9-fdcc-4725-94e9-1e0c2396c0f9","savedPayload":{"position":{"x":19148.677495559496,"y":25237.87739346182},"targetPosition":{"x":19236.677495559496,"y":25298.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f162e09f-8a55-4930-85b9-aad57a581056","savedPayload":{"position":{"x":19236.677495559496,"y":25298.87739346182},"targetPosition":{"x":19166.677495559496,"y":25290.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"66d9a06b-f084-403b-99cc-3109515feba0"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"f1433111-89d0-4491-8df1-8ea2f7e935c5","savedPayload":{"position":{"x":19264.677495559496,"y":25125.87739346182},"targetPosition":{"x":19261.677495559496,"y":25202.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"977290b5-931e-4e68-aa29-4ad45d22963e","savedPayload":{"position":{"x":19257.677495559496,"y":25252.87739346182},"targetPosition":{"x":19261.677495559496,"y":25202.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e7995c4f-bd41-4224-8d11-7eb8c194e4ab","savedPayload":{"position":{"x":19261.677495559496,"y":25202.87739346182},"targetPosition":{"x":19166.677495559496,"y":25290.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"f071951e-4b95-4545-9cdc-7a53e38141bf"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"0da13a95-2c1e-4e64-89ac-674dec42172e","savedPayload":{"position":{"x":19077.677495559496,"y":25295.87739346182},"targetPosition":{"x":19130.677495559496,"y":25215.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"1b4a8b26-9c88-4504-91c1-9dc31186e7cf","savedPayload":{"position":{"x":19221.677495559496,"y":25281.87739346182},"targetPosition":{"x":19130.677495559496,"y":25215.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"67449367-67b3-40ae-9378-ff4d480a9947","savedPayload":{"position":{"x":19130.677495559496,"y":25215.87739346182},"targetPosition":{"x":19166.677495559496,"y":25290.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"0343abbc-865e-406a-92b2-e8099a15a083"}}},{"type":"Layer","name":"Last Market Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"9219802e-69dc-4783-8182-17a13beff803","savedPayload":{"position":{"x":19080.677495559496,"y":25170.87739346182},"targetPosition":{"x":19173.677495559496,"y":25252.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"6c8fca16-4862-452b-81c4-c15a653ecf60","savedPayload":{"position":{"x":19233.677495559496,"y":25172.87739346182},"targetPosition":{"x":19173.677495559496,"y":25252.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ab4e7675-8db3-497f-aef6-0235ec5e6b58","savedPayload":{"position":{"x":19173.677495559496,"y":25252.87739346182},"targetPosition":{"x":19166.677495559496,"y":25290.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Market Order","id":"f00813c7-b43f-429c-b3c7-8333086cec29"}}},{"type":"Layer","name":"Last Limit Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"c614cfb7-518f-4da6-a16c-1ceef85564ac","savedPayload":{"position":{"x":19167.677495559496,"y":25307.87739346182},"targetPosition":{"x":19132.677495559496,"y":25354.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"60ad16f2-95a5-44a4-ba70-1283c7db748a","savedPayload":{"position":{"x":19202.677495559496,"y":25400.87739346182},"targetPosition":{"x":19132.677495559496,"y":25354.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c6182d1e-4d7e-4bf1-a5c3-331152fe9598","savedPayload":{"position":{"x":19132.677495559496,"y":25354.87739346182},"targetPosition":{"x":19166.677495559496,"y":25290.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Limit Order","id":"35d59b74-3b26-492a-a3c0-9c3baea8144a"}}}],"layerFolders":[],"id":"3d32a957-8aac-440a-b164-3b8a6058a2bc","savedPayload":{"position":{"x":19166.677495559496,"y":25290.87739346182},"targetPosition":{"x":19149.677495559496,"y":25302.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4dbc2e0a-f682-42c1-83e5-abed779bdca1","savedPayload":{"position":{"x":19149.677495559496,"y":25302.87739346182},"targetPosition":{"x":19162.677495559496,"y":25341.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fd8fdcb9-912f-4981-834d-786b5b5ec46c","savedPayload":{"position":{"x":19162.677495559496,"y":25341.87739346182},"targetPosition":{"x":19180.677495559496,"y":25382.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5d34e663-58f2-40b5-a387-93760bc7e5ac","savedPayload":{"position":{"x":19180.677495559496,"y":25382.87739346182},"targetPosition":{"x":19197.677495559496,"y":25480.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"2c6c33b9-4e62-4961-b973-8a9c3019aa71"}}},"id":"ba54fdab-909b-4dd2-8ab4-92b3f721f751","savedPayload":{"position":{"x":17781.190994860717,"y":24683.35640053908},"targetPosition":{"x":18040.99861599605,"y":24833.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Trading System","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading System","project":"Superalgos","layers":[{"type":"Layer","name":"Trading System Errors","config":"{\n \"status\": \"on\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"727dc3a1-7dc2-4135-bd54-a2b864f4ce5f","savedPayload":{"position":{"x":19154.677495559496,"y":25428.87739346182},"targetPosition":{"x":19090.677495559496,"y":25497.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"86d35ca9-1f9d-42f4-9196-5f875e5f78bb","savedPayload":{"position":{"x":19035.677495559496,"y":25453.87739346182},"targetPosition":{"x":19090.677495559496,"y":25497.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"559704b2-0443-46d9-8ed8-7092ea1a4de7","savedPayload":{"position":{"x":19090.677495559496,"y":25497.87739346182},"targetPosition":{"x":19165.677495559496,"y":25582.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Errors","id":"94121dfb-1b89-4c82-b220-6f760b71b6c4"}}},{"type":"Layer","name":"Trading System Highlights","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"9b1b2bbd-1269-4e82-95cc-b8393470a01a","savedPayload":{"position":{"x":19185.677495559496,"y":25666.87739346182},"targetPosition":{"x":19245.677495559496,"y":25577.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"ed06ba7c-b082-4c43-a5f9-64fc43079079","savedPayload":{"position":{"x":19322.677495559496,"y":25612.87739346182},"targetPosition":{"x":19245.677495559496,"y":25577.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6d1c8db0-df25-4bed-920c-c0d87ca08c5e","savedPayload":{"position":{"x":19245.677495559496,"y":25577.87739346182},"targetPosition":{"x":19165.677495559496,"y":25582.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Highlights","id":"46c81d1e-6ada-4a2e-b452-a14d30507268"}}},{"type":"Layer","name":"Trading System Values","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"b2d6f1e4-38a8-407f-afa2-bd172ba7fe5b","savedPayload":{"position":{"x":19061.677495559496,"y":25567.87739346182},"targetPosition":{"x":19076.677495559496,"y":25650.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"55ba151d-d5b5-4cd9-af13-6781eb3b259b","savedPayload":{"position":{"x":19144.677495559496,"y":25603.87739346182},"targetPosition":{"x":19076.677495559496,"y":25650.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b17f6022-5b4f-414e-8ce6-5eee35344917","savedPayload":{"position":{"x":19076.677495559496,"y":25650.87739346182},"targetPosition":{"x":19165.677495559496,"y":25582.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Values","id":"f6e40bee-1acd-45da-9e63-4963b8cb7344"}}},{"type":"Layer","name":"Trading System Status","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"c4578efa-6836-4ca5-ab2c-aa905fc339d8","savedPayload":{"position":{"x":19326.677495559496,"y":25543.87739346182},"targetPosition":{"x":19263.677495559496,"y":25541.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"5d60233c-b9f8-42ce-b1f8-d15d4487dee1","savedPayload":{"position":{"x":19263.677495559496,"y":25507.87739346182},"targetPosition":{"x":19263.677495559496,"y":25541.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f1eb5e11-0beb-49ac-a98d-0ec4296f5cc6","savedPayload":{"position":{"x":19263.677495559496,"y":25541.87739346182},"targetPosition":{"x":19165.677495559496,"y":25582.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Status","id":"de497510-ba9e-48f3-b77c-1c02a6ed091a"}}},{"type":"Layer","name":"Trading System Progress","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"0a88b59a-b06c-4410-841a-e660de020a87","savedPayload":{"position":{"x":19265.677495559496,"y":25579.87739346182},"targetPosition":{"x":19177.677495559496,"y":25518.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"5990cfe0-311c-4e6b-947d-8e13e0837219","savedPayload":{"position":{"x":19269.677495559496,"y":25453.87739346182},"targetPosition":{"x":19177.677495559496,"y":25518.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ed1c26c8-20e1-4605-bccc-9ba0d8617882","savedPayload":{"position":{"x":19177.677495559496,"y":25518.87739346182},"targetPosition":{"x":19165.677495559496,"y":25582.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Progress","id":"14274541-0796-44be-96fd-4fba265a4044"}}},{"type":"Layer","name":"Trading System Running","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"7cb941e0-b16b-4241-865c-a0e9845e119e","savedPayload":{"position":{"x":19301.677495559496,"y":25526.87739346182},"targetPosition":{"x":19212.677495559496,"y":25575.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"0205c9e2-6642-4eb4-a128-063abc1d3f97","savedPayload":{"position":{"x":19196.677495559496,"y":25526.87739346182},"targetPosition":{"x":19212.677495559496,"y":25575.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"73ed154a-3200-408b-abc2-25b79f6614dc","savedPayload":{"position":{"x":19212.677495559496,"y":25575.87739346182},"targetPosition":{"x":19165.677495559496,"y":25582.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Running","id":"1cd43234-6db9-4f7a-beb3-6af28c18b332"}}},{"type":"Layer","name":"Trading System Announcements","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"42b9e505-a65d-4d8a-9169-35c38e208584","savedPayload":{"position":{"x":19223.677495559496,"y":25558.87739346182},"targetPosition":{"x":19221.677495559496,"y":25574.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"9fc6975d-a238-4dfe-a465-71b5fad20787","savedPayload":{"position":{"x":19295.677495559496,"y":25497.87739346182},"targetPosition":{"x":19221.677495559496,"y":25574.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2d7ed099-f9f2-4fb3-b03b-ad5bbe700ada","savedPayload":{"position":{"x":19221.677495559496,"y":25574.87739346182},"targetPosition":{"x":19165.677495559496,"y":25582.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Announcements","id":"84633784-93c1-470e-a0f8-a7beb8ce502c"}}},{"type":"Layer","name":"Trading System Warnings","config":"{\n \"status\": \"on\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"60936708-6fef-4112-a6af-8a2f4895665b","savedPayload":{"position":{"x":19176.677495559496,"y":25568.87739346182},"targetPosition":{"x":19232.677495559496,"y":25655.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"e2faa22e-9cba-4916-a70e-ea8d0ad32931","savedPayload":{"position":{"x":19203.677495559496,"y":25704.87739346182},"targetPosition":{"x":19232.677495559496,"y":25655.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"90f07755-e272-49b3-92c5-ee850af193c4","savedPayload":{"position":{"x":19232.677495559496,"y":25655.87739346182},"targetPosition":{"x":19165.677495559496,"y":25582.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Warnings","id":"bdce3741-9a44-4034-86a3-f49d6fc524f1"}}},{"type":"Layer","name":"Trading System Infos","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"0aff1c6d-3b4f-437c-adae-b8330124617c","savedPayload":{"position":{"x":19213.677495559496,"y":25546.87739346182},"targetPosition":{"x":19182.677495559496,"y":25572.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"ce9033fe-b6b3-45d9-8d57-6b35af2b95b3","savedPayload":{"position":{"x":19259.677495559496,"y":25632.87739346182},"targetPosition":{"x":19182.677495559496,"y":25572.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9b689d4e-f1b0-4c75-8cf9-30c24058aae2","savedPayload":{"position":{"x":19182.677495559496,"y":25572.87739346182},"targetPosition":{"x":19165.677495559496,"y":25582.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Infos","id":"d8640483-263f-418e-bc7d-c1a49f8ca077"}}}],"layerFolders":[],"id":"94a312de-0114-4b2c-9025-35de9465aabc","savedPayload":{"position":{"x":19165.677495559496,"y":25582.87739346182},"targetPosition":{"x":19249.677495559496,"y":25518.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"18221e34-ee7e-4fc2-bce8-436257fe6e2f","savedPayload":{"position":{"x":19249.677495559496,"y":25518.87739346182},"targetPosition":{"x":19199.677495559496,"y":25428.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d8c0ef7a-417c-4b6b-8cfb-6d305a978c0f","savedPayload":{"position":{"x":19199.677495559496,"y":25428.87739346182},"targetPosition":{"x":19205.677495559496,"y":25426.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"2c6c33b9-4e62-4961-b973-8a9c3019aa71"}}},"id":"6d862e7c-ea9c-4141-9fa1-1a62f104e34c","savedPayload":{"position":{"x":17858.370187293433,"y":24595.35039845171},"targetPosition":{"x":18040.99861599605,"y":24833.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Simulation Objects","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Simulation Objects","project":"Superalgos","layers":[{"type":"Layer","name":"Episodes","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Episode Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1de1ddb7-52f6-410e-8901-a73603e334ed","savedPayload":{"position":{"x":19248.677495559496,"y":25655.87739346182},"targetPosition":{"x":19321.677495559496,"y":25576.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Object","id":"bcbb3368-ea4c-466b-8423-8f0517ad35da"}}},{"type":"Layer Panel","name":"Episode Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"be26a1fa-9815-47d8-8672-eec48e71fec0","savedPayload":{"position":{"x":19416.677495559496,"y":25510.87739346182},"targetPosition":{"x":19321.677495559496,"y":25576.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Base Asset","id":"b18a5300-448b-4165-9b36-dc5ee37e58cd"}}},{"type":"Layer Panel","name":"Episode Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"76efbf6f-2034-4026-91ae-2753dcaf3740","savedPayload":{"position":{"x":19231.677495559496,"y":25644.87739346182},"targetPosition":{"x":19321.677495559496,"y":25576.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Quoted Asset","id":"dbdd55de-9279-48ef-a0b1-e50024f284e9"}}}],"id":"2db6b125-4ad3-49c4-b5dd-5177717e08f9","savedPayload":{"position":{"x":19321.677495559496,"y":25576.87739346182},"targetPosition":{"x":19267.677495559496,"y":25566.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"af62de0e-94fe-4365-9587-0d8dad1802d8","savedPayload":{"position":{"x":19261.677495559496,"y":25593.87739346182},"targetPosition":{"x":19208.677495559496,"y":25602.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"7237c558-a0e5-46c6-8cf5-ebc555e98efb"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a2c7db5c-f0e0-4ca2-97a3-cde6c648ae69","savedPayload":{"position":{"x":19208.677495559496,"y":25631.87739346182},"targetPosition":{"x":19208.677495559496,"y":25602.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"4958982a-b51a-40ef-8764-dd5451cf9837"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"349502ee-1207-4440-8a9c-f1a902ec6663","savedPayload":{"position":{"x":19302.677495559496,"y":25659.87739346182},"targetPosition":{"x":19208.677495559496,"y":25602.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"86fefa5e-8de8-4d00-a632-e1827ce60030"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"48a4d259-c522-4928-a6c0-a609d66ab4f1","savedPayload":{"position":{"x":19220.677495559496,"y":25548.87739346182},"targetPosition":{"x":19208.677495559496,"y":25602.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"79a3b846-3b23-4c01-9aa1-cedcebb5ca03"}}}],"id":"5a2c095d-9317-4931-baef-7ab9821ccc54","savedPayload":{"position":{"x":19208.677495559496,"y":25602.87739346182},"targetPosition":{"x":19267.677495559496,"y":25566.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"65b3542b-00fd-458a-adac-26eccb241467","savedPayload":{"position":{"x":19267.677495559496,"y":25566.87739346182},"targetPosition":{"x":19228.677495559496,"y":25638.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episodes","id":"19d5459e-93b0-4c37-8a9e-6a0f4db7ea82"}}},{"type":"Layer","name":"Strategies","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Strategy Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"89e15945-0816-4fc7-a948-5fdc3f9c46f8","savedPayload":{"position":{"x":19174.677495559496,"y":25714.87739346182},"targetPosition":{"x":19179.677495559496,"y":25615.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Strategy Object","id":"b256b76c-3834-4d62-aa56-f42cce9f47e9"}}}],"id":"2580d110-f6d0-42b0-a3c5-d9091216bff4","savedPayload":{"position":{"x":19179.677495559496,"y":25615.87739346182},"targetPosition":{"x":19236.677495559496,"y":25565.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"403101fc-e485-4363-8b0f-7f19f7d5b676","savedPayload":{"position":{"x":19227.677495559496,"y":25662.87739346182},"targetPosition":{"x":19308.677495559496,"y":25612.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"9ae59a68-71fd-4ec8-9a70-da743f33baee"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"b5f64cea-4700-4080-831a-fc949cc3edb6","savedPayload":{"position":{"x":19278.677495559496,"y":25562.87739346182},"targetPosition":{"x":19308.677495559496,"y":25612.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"504f327c-a08d-4c3d-8e77-850299cc30ed"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"3f3f5c60-9334-46a6-a1cc-a00decdf8c4c","savedPayload":{"position":{"x":19375.677495559496,"y":25581.87739346182},"targetPosition":{"x":19308.677495559496,"y":25612.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"f9500afd-e0f4-45d3-9647-45ec778554e8"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"553a6f42-5a5f-46c3-b2d2-e032e40ac9ba","savedPayload":{"position":{"x":19402.677495559496,"y":25520.87739346182},"targetPosition":{"x":19308.677495559496,"y":25612.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"354102dd-fd58-4f84-8e90-0d891defa0c8"}}}],"id":"22e42c11-2afe-41e6-a166-43b86fd2ea0a","savedPayload":{"position":{"x":19308.677495559496,"y":25612.87739346182},"targetPosition":{"x":19236.677495559496,"y":25565.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cef1fc30-0b07-48b8-8132-879d04e40571","savedPayload":{"position":{"x":19236.677495559496,"y":25565.87739346182},"targetPosition":{"x":19228.677495559496,"y":25638.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"f9391814-3a37-4ebe-be77-17eeeadebfc7"}}}],"layerFolders":[{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Market Buy Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"59714b0b-610e-4c9d-916c-e3b562098c75","savedPayload":{"position":{"x":19247.677495559496,"y":25719.87739346182},"targetPosition":{"x":19309.677495559496,"y":25634.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order","id":"12929733-5964-4948-877b-b1edda37162a"}}},{"type":"Layer Panel","name":"Market Buy Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"b3ff43d4-6ed9-497f-91bb-a01c09107b86","savedPayload":{"position":{"x":19268.677495559496,"y":25652.87739346182},"targetPosition":{"x":19309.677495559496,"y":25634.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order Stats","id":"81a88e44-189c-44ec-9607-cb1e4de8baa1"}}},{"type":"Layer Panel","name":"Market Buy Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2cbd1f79-692c-4c59-a773-db19214bb668","savedPayload":{"position":{"x":19321.677495559496,"y":25709.87739346182},"targetPosition":{"x":19309.677495559496,"y":25634.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order Base Asset","id":"608a9068-7324-4f4c-8fdd-d9d8e42e26c6"}}},{"type":"Layer Panel","name":"Market Buy Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"093ffa9d-39ca-4797-851e-8a63da3f8bbe","savedPayload":{"position":{"x":19397.677495559496,"y":25689.87739346182},"targetPosition":{"x":19309.677495559496,"y":25634.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order Quoted Asset","id":"1a55af5e-821d-4421-80d2-2c543d25ea1a"}}}],"id":"0c25a6b9-1382-42e3-b771-231ab5b16959","savedPayload":{"position":{"x":19309.677495559496,"y":25634.87739346182},"targetPosition":{"x":19407.677495559496,"y":25535.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"bfb69a6a-fad2-4653-980f-c1f70e68710f","savedPayload":{"position":{"x":19571.677495559496,"y":25478.87739346182},"targetPosition":{"x":19487.677495559496,"y":25445.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"6217d021-ea5b-4b20-b093-758a2d2fb5d4"}}}],"id":"be3d264f-2d25-4a04-93f4-32c54970b74c","savedPayload":{"position":{"x":19487.677495559496,"y":25445.87739346182},"targetPosition":{"x":19407.677495559496,"y":25535.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2e31e7bb-e043-4b23-ab0b-4c2cfec39366","savedPayload":{"position":{"x":19407.677495559496,"y":25535.87739346182},"targetPosition":{"x":19310.677495559496,"y":25558.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"9b7f1c09-af0e-4c08-ae4c-148ceab5a026"}}},{"type":"Layer","name":"Market Sell Orders","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Market Sell Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"707a52d3-8cdb-4a9a-b9d6-838a83f000f9","savedPayload":{"position":{"x":19107.677495559496,"y":25358.87739346182},"targetPosition":{"x":19202.677495559496,"y":25449.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order","id":"a5856620-e9ce-4ee1-830c-5b5dc45e9139"}}},{"type":"Layer Panel","name":"Market Sell Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"47506601-571b-44ba-a9bb-66c9ac09c789","savedPayload":{"position":{"x":19275.677495559496,"y":25390.87739346182},"targetPosition":{"x":19202.677495559496,"y":25449.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order Stats","id":"fb23f6bb-8383-4276-8a77-5180e622653a"}}},{"type":"Layer Panel","name":"Market Sell Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4c03c0f6-15d1-4448-a1de-84b8e8fa7038","savedPayload":{"position":{"x":19212.677495559496,"y":25464.87739346182},"targetPosition":{"x":19202.677495559496,"y":25449.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order Base Asset","id":"3e9e4e57-bd41-41f5-8d52-c92d3a707e80"}}},{"type":"Layer Panel","name":"Market Sell Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"b776a13e-928f-424d-bb39-82d89992fbf4","savedPayload":{"position":{"x":19180.677495559496,"y":25425.87739346182},"targetPosition":{"x":19202.677495559496,"y":25449.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order Quoted Asset","id":"51d59c30-3a02-4d74-aa62-f1524ea544ee"}}}],"id":"e70c9b38-7a7f-44c4-b286-7c2a2a18514e","savedPayload":{"position":{"x":19202.677495559496,"y":25449.87739346182},"targetPosition":{"x":19236.677495559496,"y":25517.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2bd67463-1a29-4393-a5f5-9271c46e17d6","savedPayload":{"position":{"x":19037.677495559496,"y":25605.87739346182},"targetPosition":{"x":19137.677495559496,"y":25568.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"5b8dcb5c-6b20-4edf-aae5-1c526cdca536"}}}],"id":"1e592b0b-c03b-40de-85d8-b131ea7d24d3","savedPayload":{"position":{"x":19137.677495559496,"y":25568.87739346182},"targetPosition":{"x":19236.677495559496,"y":25517.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4190bed3-e8ac-4e02-8ee9-4e5c9aa621b4","savedPayload":{"position":{"x":19236.677495559496,"y":25517.87739346182},"targetPosition":{"x":19310.677495559496,"y":25558.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"3e1862e4-e429-419c-866b-5c02891f2234"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Limit Buy Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"0b786458-e8cc-431e-96ff-2386ae0f7bb0","savedPayload":{"position":{"x":19223.677495559496,"y":25477.87739346182},"targetPosition":{"x":19323.677495559496,"y":25389.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order","id":"48ec80a7-6f68-4284-9bb5-f04ce3c1052b"}}},{"type":"Layer Panel","name":"Limit Buy Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2b6f7911-786c-4289-a561-81ebaec46f0f","savedPayload":{"position":{"x":19285.677495559496,"y":25483.87739346182},"targetPosition":{"x":19323.677495559496,"y":25389.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order Stats","id":"90bd6690-de93-4158-a17f-728c28defc38"}}},{"type":"Layer Panel","name":"Limit Buy Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"7c31389a-f313-43d8-80f3-18b002b2d437","savedPayload":{"position":{"x":19313.677495559496,"y":25432.87739346182},"targetPosition":{"x":19323.677495559496,"y":25389.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order Base Asset","id":"8504b6e3-83c8-45ea-959a-41303f9d4274"}}},{"type":"Layer Panel","name":"Limit Buy Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"edcfa348-0d21-4e9e-96f8-9771ee4df451","savedPayload":{"position":{"x":19233.677495559496,"y":25352.87739346182},"targetPosition":{"x":19323.677495559496,"y":25389.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order Quoted Asset","id":"b60e7e48-8ae7-4701-848b-8faa9ba58c11"}}}],"id":"3e58f1c2-2154-4b30-ac1d-853cd6cc756e","savedPayload":{"position":{"x":19323.677495559496,"y":25389.87739346182},"targetPosition":{"x":19271.677495559496,"y":25459.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Status Open","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5828b402-6e19-4934-b824-af844a22406f","savedPayload":{"position":{"x":19143.677495559496,"y":25464.87739346182},"targetPosition":{"x":19196.677495559496,"y":25413.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Open","id":"7be8ba85-07e7-4800-8988-ce76d2105b73"}}},{"type":"Layer Polygon","name":"Status Closed Cancel Event","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6149fb65-fc9d-46d2-9d67-70686a2526fb","savedPayload":{"position":{"x":19145.677495559496,"y":25315.87739346182},"targetPosition":{"x":19196.677495559496,"y":25413.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Cancel Event","id":"ab881143-5631-4b27-a97a-94138dbd370d"}}},{"type":"Layer Polygon","name":"Status Closed Filled","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"197888b0-ae34-4910-a50b-29e65b97196c","savedPayload":{"position":{"x":19150.677495559496,"y":25437.87739346182},"targetPosition":{"x":19196.677495559496,"y":25413.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Filled","id":"a54693cf-8ec1-469d-afb9-2a724e4f6af7"}}}],"id":"857bc9e6-0fa1-45d4-8363-59d9a199fcb0","savedPayload":{"position":{"x":19196.677495559496,"y":25413.87739346182},"targetPosition":{"x":19271.677495559496,"y":25459.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2ed3a3dd-85a3-4e98-a8cb-c9374feda568","savedPayload":{"position":{"x":19271.677495559496,"y":25459.87739346182},"targetPosition":{"x":19310.677495559496,"y":25558.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"8b595cff-673d-4d21-ac1b-c1c6a7ea04d4"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Limit Sell Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"46b86e42-e72c-4f3c-83d2-c1db16401df8","savedPayload":{"position":{"x":19330.677495559496,"y":25683.87739346182},"targetPosition":{"x":19403.677495559496,"y":25713.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order","id":"5d485d15-9919-42cc-9399-54c679d7085d"}}},{"type":"Layer Panel","name":"Limit Sell Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a1c07ec8-814b-4350-8e1e-33152f7e80d2","savedPayload":{"position":{"x":19430.677495559496,"y":25683.87739346182},"targetPosition":{"x":19403.677495559496,"y":25713.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order Stats","id":"db2f6e9c-ce79-4465-a0dc-8ea02fac26b7"}}},{"type":"Layer Panel","name":"Limit Sell Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"89a6038d-9810-4ed4-8d02-5a1995a17f16","savedPayload":{"position":{"x":19481.677495559496,"y":25694.87739346182},"targetPosition":{"x":19403.677495559496,"y":25713.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order Base Asset","id":"3e34000e-ad8c-4049-9eee-89e8ea362a0f"}}},{"type":"Layer Panel","name":"Limit Sell Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ffe9e83d-4c38-42ac-9ddb-35553da5d37f","savedPayload":{"position":{"x":19324.677495559496,"y":25621.87739346182},"targetPosition":{"x":19403.677495559496,"y":25713.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order Quoted Asset","id":"ae18b041-f16e-4d96-8a83-56845dddf64a"}}}],"id":"398186b3-6845-4bc6-95f7-145f923b8d56","savedPayload":{"position":{"x":19403.677495559496,"y":25713.87739346182},"targetPosition":{"x":19362.677495559496,"y":25648.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Status Open","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"eace9bbf-3b77-4787-bc98-6200ab7b60a8","savedPayload":{"position":{"x":19371.677495559496,"y":25775.87739346182},"targetPosition":{"x":19275.677495559496,"y":25713.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Open","id":"186d1b59-7d04-4b40-83c9-acc361b8a12a"}}},{"type":"Layer Polygon","name":"Status Closed Cancel Event","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"572aa25d-9769-4047-9354-353a16a1db24","savedPayload":{"position":{"x":19307.677495559496,"y":25728.87739346182},"targetPosition":{"x":19275.677495559496,"y":25713.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Cancel Event","id":"8e993263-dbfc-4d41-864a-9470e70d7e4f"}}},{"type":"Layer Polygon","name":"Status Closed Filled","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4c28a97f-5717-44c8-bb0e-2da50e19461c","savedPayload":{"position":{"x":19291.677495559496,"y":25759.87739346182},"targetPosition":{"x":19275.677495559496,"y":25713.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Filled","id":"bf0751d6-fdb2-4e66-a39c-2bd99252bd60"}}}],"id":"c3f10c99-2851-4212-92df-406aae4ef517","savedPayload":{"position":{"x":19275.677495559496,"y":25713.87739346182},"targetPosition":{"x":19362.677495559496,"y":25648.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9c1df338-42e9-4fcf-8420-5157770324ac","savedPayload":{"position":{"x":19362.677495559496,"y":25648.87739346182},"targetPosition":{"x":19310.677495559496,"y":25558.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"af34a526-4694-44f7-a678-748d101b6e61"}}}],"layerFolders":[],"id":"6f7a1a97-3c99-43f4-9133-2f628b683e0a","savedPayload":{"position":{"x":19310.677495559496,"y":25558.87739346182},"targetPosition":{"x":19228.677495559496,"y":25638.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Trigger Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Trigger Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"7ac674cf-335a-46fd-ae3d-7c9973975005","savedPayload":{"position":{"x":19048.677495559496,"y":25731.87739346182},"targetPosition":{"x":19127.677495559496,"y":25825.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Trigger Stage Object","id":"c10b9b7b-04d8-460b-9dcc-2eaed24e17df"}}}],"id":"dd85f421-7e8b-4da5-bd87-07e4b520846e","savedPayload":{"position":{"x":19127.677495559496,"y":25825.87739346182},"targetPosition":{"x":19148.677495559496,"y":25755.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"efeee831-f442-478f-b2d6-233faffa4490","savedPayload":{"position":{"x":19182.677495559496,"y":25802.87739346182},"targetPosition":{"x":19158.677495559496,"y":25767.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"9e88f3a0-09ad-44fd-a84e-731228860e66"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ec0cb3d9-f111-488c-91b9-051a9e409bcb","savedPayload":{"position":{"x":19166.677495559496,"y":25670.87739346182},"targetPosition":{"x":19158.677495559496,"y":25767.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"e2e18af7-af5f-4634-b8a4-4fabd2ddd7a5"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"74869855-c6a9-4d02-8980-9a4d04e0e6ad","savedPayload":{"position":{"x":19187.677495559496,"y":25719.87739346182},"targetPosition":{"x":19158.677495559496,"y":25767.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"08d916aa-6d2d-497b-8738-9b0966e3901e"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5c343966-b2b5-415e-921d-a40987ceb774","savedPayload":{"position":{"x":19129.677495559496,"y":25739.87739346182},"targetPosition":{"x":19158.677495559496,"y":25767.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"70de0f73-5a2d-4a5a-a5f7-1863f192a14d"}}}],"id":"7675f7b6-02f8-40b0-8446-1e50b0d9b50f","savedPayload":{"position":{"x":19158.677495559496,"y":25767.87739346182},"targetPosition":{"x":19148.677495559496,"y":25755.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f919999b-83fe-4105-bd0c-6e9645edbbdb","savedPayload":{"position":{"x":19148.677495559496,"y":25755.87739346182},"targetPosition":{"x":19140.677495559496,"y":25660.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stages","id":"fe5ea980-791c-4962-979a-1c3f96663835"}}},{"type":"Layer","name":"Open Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Open Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"73384ec6-f1a6-4205-aafc-7f68e78f8b61","savedPayload":{"position":{"x":19011.677495559496,"y":25706.87739346182},"targetPosition":{"x":19052.677495559496,"y":25632.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Open Stage Object","id":"be56e169-d089-4aea-a18a-c01cf16a3485"}}}],"id":"3ed235f2-d407-4b10-bb9b-18ba394971ba","savedPayload":{"position":{"x":19052.677495559496,"y":25632.87739346182},"targetPosition":{"x":19129.677495559496,"y":25693.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ad6a1d3c-ad09-4112-a538-2d2e016bfe86","savedPayload":{"position":{"x":19111.677495559496,"y":25619.87739346182},"targetPosition":{"x":19109.677495559496,"y":25705.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"21db891e-4c47-4a5a-88a5-036297086138"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"93f28e45-e6e0-48a4-973a-8573c4cf02a1","savedPayload":{"position":{"x":19019.677495559496,"y":25692.87739346182},"targetPosition":{"x":19109.677495559496,"y":25705.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"2a3d0d93-13d9-4a9e-8d32-c0aa5d7ab1e3"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"d33bce6f-4e24-4355-8c5f-3280b38ab074","savedPayload":{"position":{"x":19174.677495559496,"y":25677.87739346182},"targetPosition":{"x":19109.677495559496,"y":25705.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"616f49d0-daaa-4b82-be0d-56504b402616"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"bf276cf6-7ba3-4b81-8aac-5fdaa75fe14f","savedPayload":{"position":{"x":19057.677495559496,"y":25764.87739346182},"targetPosition":{"x":19109.677495559496,"y":25705.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"0fab39ff-8caf-45f8-8650-33d7a65fa6e1"}}}],"id":"7bb73bc1-52c2-4edb-8b0f-f40052fea4e8","savedPayload":{"position":{"x":19109.677495559496,"y":25705.87739346182},"targetPosition":{"x":19129.677495559496,"y":25693.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e75b49dc-02eb-440d-bfdb-fb300b454b33","savedPayload":{"position":{"x":19129.677495559496,"y":25693.87739346182},"targetPosition":{"x":19140.677495559496,"y":25660.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stages","id":"7528e7c1-d7b6-4b3a-bfbd-7e05f5c2b4b0"}}},{"type":"Layer","name":"Manage Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Manage Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a365fc4b-e120-443e-9612-9b7abc0f72dc","savedPayload":{"position":{"x":19250.677495559496,"y":25676.87739346182},"targetPosition":{"x":19151.677495559496,"y":25639.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Manage Stage Object","id":"3db5604f-cacf-4c87-b1ea-5aa364bf9f48"}}}],"id":"479f3c7a-ef61-4614-8ce8-c7f69ca796f7","savedPayload":{"position":{"x":19151.677495559496,"y":25639.87739346182},"targetPosition":{"x":19087.677495559496,"y":25577.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ee9bbbf2-7e20-4f67-9307-cd600aec059f","savedPayload":{"position":{"x":19117.677495559496,"y":25435.87739346182},"targetPosition":{"x":19105.677495559496,"y":25483.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"43435aed-68cb-4a56-88c4-2574d91f5b32"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"3e419d1c-8fec-437a-a830-c547199fc1d2","savedPayload":{"position":{"x":19128.677495559496,"y":25542.87739346182},"targetPosition":{"x":19105.677495559496,"y":25483.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"904be022-f1e2-475e-9115-88224353cfa2"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"cd8a0a3e-d210-4707-b27e-e2cb4c6baef9","savedPayload":{"position":{"x":19116.677495559496,"y":25477.87739346182},"targetPosition":{"x":19105.677495559496,"y":25483.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"4c74d4d8-d0a4-4581-bee7-36485d7a91a5"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"cac382e4-c4f9-455a-b147-080a59252b05","savedPayload":{"position":{"x":19013.677495559496,"y":25426.87739346182},"targetPosition":{"x":19105.677495559496,"y":25483.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"9fc6d2c4-a67b-42e8-841b-7523f7ab4962"}}}],"id":"9de0fce4-703e-4e18-91bb-16ddedf468af","savedPayload":{"position":{"x":19105.677495559496,"y":25483.87739346182},"targetPosition":{"x":19087.677495559496,"y":25577.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8584f8a2-e08f-405b-9c34-2b0409391045","savedPayload":{"position":{"x":19087.677495559496,"y":25577.87739346182},"targetPosition":{"x":19140.677495559496,"y":25660.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stages","id":"e5b35205-1a83-4c9d-bbb6-1587b31d7fa2"}}},{"type":"Layer","name":"Close Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Close Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"df699a0c-d287-468c-9774-aa53772bc13d","savedPayload":{"position":{"x":19148.677495559496,"y":25752.87739346182},"targetPosition":{"x":19159.677495559496,"y":25724.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Close Stage Object","id":"069885e7-351f-45dc-8423-113db65b9592"}}}],"id":"49b05eb9-4548-4cc6-b482-3e4ed5c05787","savedPayload":{"position":{"x":19159.677495559496,"y":25724.87739346182},"targetPosition":{"x":19196.677495559496,"y":25756.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"27ebd812-cf4b-4cc5-8a25-7a2011005fc8","savedPayload":{"position":{"x":19271.677495559496,"y":25729.87739346182},"targetPosition":{"x":19256.677495559496,"y":25656.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"9463d512-21f5-48c1-8cd6-b14747b338cf"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"8a1fbf61-cda7-4dd1-947b-7acbda91dac2","savedPayload":{"position":{"x":19271.677495559496,"y":25712.87739346182},"targetPosition":{"x":19256.677495559496,"y":25656.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"c3249cad-9f26-4ff2-ab0d-968c66bb7f2d"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ff665eb5-51c2-4cef-b841-c4a56a252886","savedPayload":{"position":{"x":19345.677495559496,"y":25690.87739346182},"targetPosition":{"x":19256.677495559496,"y":25656.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"dbd9d421-d90c-4ab8-a26b-c2254d7abec1"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4b178b44-db54-467c-b456-77750cc78069","savedPayload":{"position":{"x":19264.677495559496,"y":25632.87739346182},"targetPosition":{"x":19256.677495559496,"y":25656.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"a5e40c24-183d-4896-97b0-f9f0f104c240"}}}],"id":"3767bc5f-f16b-4709-becb-b86ee0f5a3fc","savedPayload":{"position":{"x":19256.677495559496,"y":25656.87739346182},"targetPosition":{"x":19196.677495559496,"y":25756.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"773ffba7-8329-4410-8721-7d8f2b639bf6","savedPayload":{"position":{"x":19196.677495559496,"y":25756.87739346182},"targetPosition":{"x":19140.677495559496,"y":25660.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stages","id":"305af32b-0136-4382-8cbb-f4def428274c"}}}],"layerFolders":[],"id":"74890a99-04dd-4eee-ad60-4f00214814b3","savedPayload":{"position":{"x":19140.677495559496,"y":25660.87739346182},"targetPosition":{"x":19228.677495559496,"y":25638.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Positions","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Position Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5c68fb39-d246-4ff7-9c9b-a3487c93b3f7","savedPayload":{"position":{"x":19468.677495559496,"y":25728.87739346182},"targetPosition":{"x":19376.677495559496,"y":25633.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Object","id":"3d274e02-8896-4311-a0c8-9041b6507090"}}},{"type":"Layer Panel","name":"Position Combined Statistics","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"44d486f8-408f-4f5b-b1f6-31da6c166cd7","savedPayload":{"position":{"x":19290.677495559496,"y":25575.87739346182},"targetPosition":{"x":19376.677495559496,"y":25633.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Combined Statistics","id":"05d6bb3e-f975-471f-be1f-3215025ce6fe"}}}],"id":"1feaf0d0-acf7-4ebf-9ce1-654ba961d3fe","savedPayload":{"position":{"x":19376.677495559496,"y":25633.87739346182},"targetPosition":{"x":19307.677495559496,"y":25583.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Entry Target Rate Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"12a796c9-5930-4c4d-a9cc-c8da6f15c7b7","savedPayload":{"position":{"x":19305.677495559496,"y":25627.87739346182},"targetPosition":{"x":19259.677495559496,"y":25558.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Entry Target Rate Line","id":"543ebae2-5624-49ad-a00f-df63335e92a9"}}},{"type":"Layer Polygon","name":"Exit Target Rate Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"692b4164-5315-44bf-b443-f6180a30db7d","savedPayload":{"position":{"x":19236.677495559496,"y":25520.87739346182},"targetPosition":{"x":19259.677495559496,"y":25558.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Exit Target Rate Line","id":"b066c240-8552-4622-9597-77e812491910"}}}],"id":"40077a20-c675-4dad-97cc-77a1ba1d4de8","savedPayload":{"position":{"x":19259.677495559496,"y":25558.87739346182},"targetPosition":{"x":19307.677495559496,"y":25583.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d0ad6169-0e34-419e-bc14-004a08eb976c","savedPayload":{"position":{"x":19307.677495559496,"y":25583.87739346182},"targetPosition":{"x":19217.677495559496,"y":25559.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Positions","id":"10971a05-a642-4759-a952-e114694a884e"}}},{"type":"Layer","name":"Position Base Asset","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Position Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"04b38cb6-44df-4d8c-9e07-031944496a72","savedPayload":{"position":{"x":19205.677495559496,"y":25475.87739346182},"targetPosition":{"x":19170.677495559496,"y":25551.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Base Asset","id":"b4298480-8922-4c40-ac79-b4484f8558bd"}}}],"id":"45cfe449-aa94-4919-b396-6b5e0a169709","savedPayload":{"position":{"x":19170.677495559496,"y":25551.87739346182},"targetPosition":{"x":19256.677495559496,"y":25563.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Profit Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"df211603-37f3-4a38-8b7b-ac19a4a2d442","savedPayload":{"position":{"x":19278.677495559496,"y":25590.87739346182},"targetPosition":{"x":19251.677495559496,"y":25568.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Profit Triangle","id":"2628b290-a09a-4807-8a45-7ff5a880d195"}}},{"type":"Layer Polygon","name":"Loss Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"7c469bf0-7af9-4d54-b9c0-91b66adf3bc8","savedPayload":{"position":{"x":19242.677495559496,"y":25557.87739346182},"targetPosition":{"x":19251.677495559496,"y":25568.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Loss Triangle","id":"e37cfbb4-fe54-49ad-9525-29b0d77e082b"}}},{"type":"Layer Polygon","name":"Empty Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"bf9ef267-8dd9-4e77-8265-895e3a653f20","savedPayload":{"position":{"x":19223.677495559496,"y":25600.87739346182},"targetPosition":{"x":19251.677495559496,"y":25568.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Empty Triangle","id":"23c30ca5-95ec-47b2-a65f-01969b1a5a78"}}}],"id":"6ee73ce4-b14c-4704-9ec9-8505d9838586","savedPayload":{"position":{"x":19251.677495559496,"y":25568.87739346182},"targetPosition":{"x":19256.677495559496,"y":25563.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0c632d79-10f0-43bd-8cc3-7debbda944d9","savedPayload":{"position":{"x":19256.677495559496,"y":25563.87739346182},"targetPosition":{"x":19217.677495559496,"y":25559.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Base Asset","id":"28d64a66-6238-4780-a322-74bb988486d7"}}},{"type":"Layer","name":"Position Quoted Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Position Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f6fa1675-cd7c-471a-8447-c7880ddd2701","savedPayload":{"position":{"x":19282.677495559496,"y":25643.87739346182},"targetPosition":{"x":19209.677495559496,"y":25648.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Quoted Asset","id":"f15d0a31-30bd-49a6-8c45-1bcd1a9cc5a8"}}}],"id":"df3be9af-1734-4dd9-8a63-cb44bb91d8bb","savedPayload":{"position":{"x":19209.677495559496,"y":25648.87739346182},"targetPosition":{"x":19183.677495559496,"y":25616.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Profit Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6ab6314f-42e1-498b-bcb1-34815ead7a95","savedPayload":{"position":{"x":19188.677495559496,"y":25516.87739346182},"targetPosition":{"x":19150.677495559496,"y":25575.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Profit Triangle","id":"9cf82ef4-557e-498e-b121-ff28235b3a25"}}},{"type":"Layer Polygon","name":"Loss Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1bff082d-4342-4324-9b50-eafe10fa2292","savedPayload":{"position":{"x":19068.677495559496,"y":25529.87739346182},"targetPosition":{"x":19150.677495559496,"y":25575.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Loss Triangle","id":"61faa796-9697-48b0-a582-613e1b351931"}}},{"type":"Layer Polygon","name":"Empty Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"d06a4280-0765-41ae-9abc-3bef979778b4","savedPayload":{"position":{"x":19236.677495559496,"y":25578.87739346182},"targetPosition":{"x":19150.677495559496,"y":25575.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Empty Triangle","id":"58c807a3-8443-43d9-82e9-81c3d0545399"}}}],"id":"edc7cefb-d906-4802-a0f4-62d9e1c06a8b","savedPayload":{"position":{"x":19150.677495559496,"y":25575.87739346182},"targetPosition":{"x":19183.677495559496,"y":25616.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4ae0d63d-0060-4cb9-8873-2ded394f6720","savedPayload":{"position":{"x":19183.677495559496,"y":25616.87739346182},"targetPosition":{"x":19217.677495559496,"y":25559.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Quoted Asset","id":"76484f39-20e9-486e-a301-55626440c3a9"}}},{"type":"Layer","name":"Stop Loss","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Stop Loss Panel","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"82ac0cec-db30-4ef7-ba48-8dd62be64505","savedPayload":{"position":{"x":19291.677495559496,"y":25482.87739346182},"targetPosition":{"x":19249.677495559496,"y":25528.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Stop Loss Panel","id":"1b6d3bd0-e594-4b09-9f1c-021177676d84"}}}],"id":"b015c196-9f6b-4c29-ac12-7f46edfe78ca","savedPayload":{"position":{"x":19249.677495559496,"y":25528.87739346182},"targetPosition":{"x":19193.677495559496,"y":25570.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f0b1f60b-94c3-40a9-bcba-606e9c1b985e","savedPayload":{"position":{"x":19227.677495559496,"y":25543.87739346182},"targetPosition":{"x":19136.677495559496,"y":25610.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"9d351f29-6a3e-4c2b-b008-ebe1414d2aa8"}}}],"id":"db3094ff-dc54-4c4c-a690-67a5d5daa79c","savedPayload":{"position":{"x":19136.677495559496,"y":25610.87739346182},"targetPosition":{"x":19193.677495559496,"y":25570.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1620f124-07e1-49a3-ae51-af0c54b95414","savedPayload":{"position":{"x":19193.677495559496,"y":25570.87739346182},"targetPosition":{"x":19217.677495559496,"y":25559.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Stop Loss","id":"4d412b84-013f-45fa-b684-6269167fd5e5"}}},{"type":"Layer","name":"Take Profit","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Take Profit Panel","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4f571f46-451b-452c-80a7-7a1785538c47","savedPayload":{"position":{"x":19226.677495559496,"y":25523.87739346182},"targetPosition":{"x":19164.677495559496,"y":25543.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Take Profit Panel","id":"33aa2293-7958-4cc3-bb41-fc97c17ccd67"}}}],"id":"06fc1648-349d-442b-89b6-fb2c0c6399bc","savedPayload":{"position":{"x":19164.677495559496,"y":25543.87739346182},"targetPosition":{"x":19259.677495559496,"y":25637.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a8aaaa2b-6082-40ae-b3a1-b207dec37e3b","savedPayload":{"position":{"x":19247.677495559496,"y":25597.87739346182},"targetPosition":{"x":19290.677495559496,"y":25599.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"a0b598d2-cdb6-4ce7-96c5-ef3317ae1768"}}}],"id":"beaa36ea-aa22-421d-85c4-7a5dba72d12f","savedPayload":{"position":{"x":19290.677495559496,"y":25599.87739346182},"targetPosition":{"x":19259.677495559496,"y":25637.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2312a302-2d84-4c37-bf68-a5f104b14c17","savedPayload":{"position":{"x":19259.677495559496,"y":25637.87739346182},"targetPosition":{"x":19217.677495559496,"y":25559.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Take Profit","id":"84c07d10-d91a-462a-b0db-62e6a3d99703"}}}],"layerFolders":[],"id":"7e6de8a0-1ab3-472b-8b41-f2414c28a3c5","savedPayload":{"position":{"x":19217.677495559496,"y":25559.87739346182},"targetPosition":{"x":19228.677495559496,"y":25638.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3e572713-69a8-4cec-afa1-7afa678b3be9","savedPayload":{"position":{"x":19228.677495559496,"y":25638.87739346182},"targetPosition":{"x":19144.677495559496,"y":25577.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"72cd06b2-d7b9-48f6-8ca1-29ee5524def8","savedPayload":{"position":{"x":19144.677495559496,"y":25577.87739346182},"targetPosition":{"x":19176.677495559496,"y":25616.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04edecb9-a2d5-4af5-bbb4-505146842715","savedPayload":{"position":{"x":19176.677495559496,"y":25616.87739346182},"targetPosition":{"x":19218.677495559496,"y":25541.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"2c6c33b9-4e62-4961-b973-8a9c3019aa71"}}},"id":"f564a96a-71b7-4a05-a050-48f1c529f8e9","savedPayload":{"position":{"x":17963.352902465293,"y":24543.57865265236},"targetPosition":{"x":18040.99861599605,"y":24833.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Masters Data","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Exchange Raw Data","project":"Superalgos","layers":[],"layerFolders":[],"id":"2d2260ff-f684-43a2-88d5-ce62054d5feb","savedPayload":{"position":{"x":25305.702020024393,"y":32752.48311100667},"targetPosition":{"x":25523.314331328078,"y":32958.989483714795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Candles Volumes","project":"Superalgos","layers":[{"type":"Layer","name":"Candles","config":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Candle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ffca0920-79a4-40c4-b0fc-fea4be2b99ba","savedPayload":{"position":{"x":19122.677495559496,"y":25750.87739346182},"targetPosition":{"x":19186.677495559496,"y":25717.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Candle","id":"9336f4e6-d56b-4ed4-819d-0bb762ba1fdd"}}}],"id":"3ede8ebf-1119-4ec0-8867-28bc37490a9a","savedPayload":{"position":{"x":19186.677495559496,"y":25717.87739346182},"targetPosition":{"x":19203.677495559496,"y":25643.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"7be93576-10b7-4f4b-960d-59ecb7793284","savedPayload":{"position":{"x":19214.677495559496,"y":25599.87739346182},"targetPosition":{"x":19203.677495559496,"y":25643.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"33cca277-b9ce-4ac2-b8a7-cfa4ed053dd9","savedPayload":{"position":{"x":25375.938575367953,"y":32378.696056557063},"targetPosition":{"x":25468.643673680435,"y":32664.013011445608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"2a290f06-5f0b-4f57-93d1-7579fa589aa0"}}},{"type":"Layer","name":"Volumes","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Volume","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"de1e3c25-904d-49a6-860a-ea099e0ac98c","savedPayload":{"position":{"x":19172.677495559496,"y":25562.87739346182},"targetPosition":{"x":19116.677495559496,"y":25555.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Volume","id":"42dbd098-4550-44a0-987f-54a28dd5f40b"}}}],"id":"bb4d2c77-3594-4ff2-8a8d-f82a54d74a98","savedPayload":{"position":{"x":19116.677495559496,"y":25555.87739346182},"targetPosition":{"x":19171.677495559496,"y":25569.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"004dbe62-3413-48c4-b7f8-189c0031b0d1","savedPayload":{"position":{"x":19200.677495559496,"y":25521.87739346182},"targetPosition":{"x":19171.677495559496,"y":25569.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"67a59d37-a97c-4b4c-b472-8465f4d3c0a9","savedPayload":{"position":{"x":25452.942886807552,"y":32364.424151019237},"targetPosition":{"x":25468.643673680435,"y":32664.013011445608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"c789572d-ff73-4664-b2a2-8b84a73dccb1"}}}],"layerFolders":[],"id":"a3a54b07-f764-4fe7-8d0d-340c5eb717c5","savedPayload":{"position":{"x":25468.643673680435,"y":32664.013011445608},"targetPosition":{"x":25523.314331328078,"y":32958.989483714795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Bollinger Bands","project":"Superalgos","layers":[{"type":"Layer","name":"Bollinger Bands","config":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Bollinger Band","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ba103b02-4ca6-4ff7-aa8e-869bf2bf745c","savedPayload":{"position":{"x":18986.677495559496,"y":25545.87739346182},"targetPosition":{"x":18992.677495559496,"y":25588.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Bollinger Band","id":"de7b7008-6f66-4d7d-96dd-1aa7b1ede335"}}}],"id":"93545ab0-5649-44b3-8a94-d3e5a1375848","savedPayload":{"position":{"x":18992.677495559496,"y":25588.87739346182},"targetPosition":{"x":19016.677495559496,"y":25522.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"7ae54a09-4241-44f1-97d5-6030dce59060","savedPayload":{"position":{"x":19002.677495559496,"y":25499.87739346182},"targetPosition":{"x":19016.677495559496,"y":25522.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"dd247e01-d594-45a0-8fd6-75a36d9dece8","savedPayload":{"position":{"x":25745.17275868305,"y":32402.896943521293},"targetPosition":{"x":25652.467660370567,"y":32688.21389840984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"a213e62e-cf80-46e7-8bcf-424d45b8e571"}}},{"type":"Layer","name":"Percentage Bandwidth","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"%B Panel","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"94cc3fdf-57c0-4a52-95ec-9fd94d160bdb","savedPayload":{"position":{"x":19092.677495559496,"y":25517.87739346182},"targetPosition":{"x":19098.677495559496,"y":25446.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"%B Panel","id":"36548f31-d96c-4c80-b923-dea5dd5b56c7"}}}],"id":"6ee23f7f-b60e-4fa9-a749-1b171fb851db","savedPayload":{"position":{"x":19098.677495559496,"y":25446.87739346182},"targetPosition":{"x":19088.677495559496,"y":25416.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Area From 0 to 30","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"354fee17-d33e-43ed-995c-e920673b9bf5","savedPayload":{"position":{"x":18974.677495559496,"y":25364.87739346182},"targetPosition":{"x":19003.677495559496,"y":25459.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Area From 0 to 30","id":"d76f185f-5219-4f0b-adb3-9a339b0468c6"}}},{"type":"Layer Polygon","name":"Area From 30 to 70","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"af71b75d-cf63-436f-ab7c-21d21256d186","savedPayload":{"position":{"x":18903.677495559496,"y":25537.87739346182},"targetPosition":{"x":19003.677495559496,"y":25459.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Area From 30 to 70","id":"1a7969dd-af18-4e44-b4c9-96dd2be57f7c"}}},{"type":"Layer Polygon","name":"Area From 70 to 100","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"23e78ecc-218d-485b-985a-abffbdf27595","savedPayload":{"position":{"x":19021.677495559496,"y":25546.87739346182},"targetPosition":{"x":19003.677495559496,"y":25459.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Area From 70 to 100","id":"cb1bcd11-0fb0-4377-bff2-dee4630e0f3f"}}},{"type":"Layer Polygon","name":"Line 30","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"91cdf75d-265e-4383-9612-b7417f78a7d4","savedPayload":{"position":{"x":18950.677495559496,"y":25534.87739346182},"targetPosition":{"x":19003.677495559496,"y":25459.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Line 30","id":"857043cc-f467-44d2-89eb-2e73f35f638d"}}},{"type":"Layer Polygon","name":"Line 30","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a1b6613d-a0e4-47ae-a556-d0570c1559b4","savedPayload":{"position":{"x":18980.677495559496,"y":25386.87739346182},"targetPosition":{"x":19003.677495559496,"y":25459.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Line 30","id":"984a1917-1d81-4142-a50f-269a18a07c9d"}}},{"type":"Layer Polygon","name":"Bandwidth","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1fc604ac-f96c-440a-a0a5-e1e704f7a44d","savedPayload":{"position":{"x":19007.677495559496,"y":25362.87739346182},"targetPosition":{"x":19003.677495559496,"y":25459.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Bandwidth","id":"0f7a4004-177c-4412-b0ef-2608f3c13da6"}}},{"type":"Layer Polygon","name":"Value","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1e71eb5e-70ec-4ec2-8b1d-e1a6b6390de4","savedPayload":{"position":{"x":18949.677495559496,"y":25492.87739346182},"targetPosition":{"x":19003.677495559496,"y":25459.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Value","id":"4598a671-83b9-4460-9e65-175df73eba71"}}},{"type":"Layer Polygon","name":"Moving Average","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e6938d2c-dbda-476d-82f6-1d71fea61cb2","savedPayload":{"position":{"x":19099.677495559496,"y":25448.87739346182},"targetPosition":{"x":19003.677495559496,"y":25459.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Moving Average","id":"69c19382-ed5b-48d1-9249-426a8e1e4e51"}}}],"id":"365316b4-a903-482d-8e23-cdde1e198528","savedPayload":{"position":{"x":19003.677495559496,"y":25459.87739346182},"targetPosition":{"x":19088.677495559496,"y":25416.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1e1920a7-3f7f-49ed-9074-38263ef52b8c","savedPayload":{"position":{"x":25815.859370875074,"y":32436.61272802621},"targetPosition":{"x":25652.467660370567,"y":32688.21389840984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"cdc4ac34-0ec2-4711-9c97-954e42c72d1b"}}}],"layerFolders":[],"id":"76ac1800-36aa-4b19-bc3b-881ff838b856","savedPayload":{"position":{"x":25652.467660370567,"y":32688.21389840984},"targetPosition":{"x":25523.314331328078,"y":32958.989483714795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Bollinger Channels","project":"Superalgos","layers":[{"type":"Layer","name":"Bollinger Channels Objects","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Bollinger Channels Objects","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6bdcb3ed-0a06-43e4-957e-42f6136ef320","savedPayload":{"position":{"x":19048.677495559496,"y":25598.87739346182},"targetPosition":{"x":19136.677495559496,"y":25542.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Bollinger Channels Objects","id":"09c8f781-3e54-4bed-bd9a-83e8179fdd66"}}}],"id":"cd3b17d8-e8f7-44d5-8c62-dde55ca042e3","savedPayload":{"position":{"x":19136.677495559496,"y":25542.87739346182},"targetPosition":{"x":19163.677495559496,"y":25530.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"56c13c2d-488e-4383-b576-3a13149cda07","savedPayload":{"position":{"x":19212.677495559496,"y":25361.87739346182},"targetPosition":{"x":19190.677495559496,"y":25435.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"6e21446c-93e7-44ad-814d-3cd2fa8f8baf"}}}],"id":"165c934f-e245-4c92-a6fb-14a34790a34c","savedPayload":{"position":{"x":19190.677495559496,"y":25435.87739346182},"targetPosition":{"x":19163.677495559496,"y":25530.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"01792b6e-fb77-4c0d-8a10-2b269d692b5e","savedPayload":{"position":{"x":26009.902912769885,"y":32615.102673729256},"targetPosition":{"x":25786.959465126667,"y":32815.841855636914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"aef85abd-8069-4aed-8436-8e67203e5624"}}},{"type":"Layer","name":"Bollinger Channels","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Bollinger Channels","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"abfb59b1-30cd-478a-9761-609fec54f1e4","savedPayload":{"position":{"x":18894.677495559496,"y":25466.87739346182},"targetPosition":{"x":18969.677495559496,"y":25468.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Bollinger Channels","id":"abb4f289-c374-43e0-b8dc-d586d8e3328e"}}}],"id":"9482556e-0e07-4a3a-9f2f-0cd77939769b","savedPayload":{"position":{"x":18969.677495559496,"y":25468.87739346182},"targetPosition":{"x":19038.677495559496,"y":25402.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"fd1a3ba4-b913-4bf6-ba9a-4a0e40493596","savedPayload":{"position":{"x":18980.677495559496,"y":25314.87739346182},"targetPosition":{"x":19038.677495559496,"y":25402.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9f76a3b5-821c-4bec-8ffc-1ba771b1bc4b","savedPayload":{"position":{"x":26038.560635510294,"y":32652.450145132407},"targetPosition":{"x":25786.959465126667,"y":32815.841855636914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"2fdc23da-996c-4429-8beb-3d9db46e2510"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Bollinger Sub Channels Objects","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"fa7b7887-2075-440e-8ced-38b31ab32964","savedPayload":{"position":{"x":18975.677495559496,"y":25649.87739346182},"targetPosition":{"x":19064.677495559496,"y":25566.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Bollinger Sub Channels Objects","id":"8ce4c7ca-3496-4df8-9d57-335d40cc77a0"}}}],"id":"ba3c27c3-ab2b-4db6-81df-9e4f5774e61b","savedPayload":{"position":{"x":19064.677495559496,"y":25566.87739346182},"targetPosition":{"x":19099.677495559496,"y":25502.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"0ecd3864-c6dd-4456-83ea-24670327f053","savedPayload":{"position":{"x":19022.677495559496,"y":25552.87739346182},"targetPosition":{"x":19099.677495559496,"y":25502.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6451eed5-112f-4e93-aa9e-1cf5cd5c316f","savedPayload":{"position":{"x":26061.023102419447,"y":32693.820862714176},"targetPosition":{"x":25786.959465126667,"y":32815.841855636914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"cbf3145e-ab44-4b47-92a5-8d4a7f81802a"}}},{"type":"Layer","name":"Bollinger Sub-Channels","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Bollinger Sub Channels","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"53c349b1-4df1-4489-9661-2c06cb66082e","savedPayload":{"position":{"x":19277.677495559496,"y":25552.87739346182},"targetPosition":{"x":19263.677495559496,"y":25488.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Bollinger Sub Channels","id":"1beae26c-7235-46ef-a732-1d0c9f18dda5"}}}],"id":"1bb0b45e-af25-42ff-b54d-9bc9f570a1db","savedPayload":{"position":{"x":19263.677495559496,"y":25488.87739346182},"targetPosition":{"x":19199.677495559496,"y":25486.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"78ded1e5-c8ee-4bb6-bc91-01cf8378534a","savedPayload":{"position":{"x":19182.677495559496,"y":25552.87739346182},"targetPosition":{"x":19199.677495559496,"y":25486.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7f8e0593-d3e4-453d-8514-78c0d60729b9","savedPayload":{"position":{"x":26076.737213013388,"y":32738.196142106157},"targetPosition":{"x":25786.959465126667,"y":32815.841855636914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"144f7f8b-36b1-4e46-b3a1-3ea6e178d452"}}}],"layerFolders":[],"id":"6e924429-c3ac-4eb6-9080-4f160ee81436","savedPayload":{"position":{"x":25786.959465126667,"y":32815.841855636914},"targetPosition":{"x":25523.314331328078,"y":32958.989483714795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6e0dd661-d863-4f99-94e0-2de7deea292b","savedPayload":{"position":{"x":18119.314331328078,"y":24238.489483714795},"targetPosition":{"x":18080.156473662064,"y":24535.922942126937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Data Mine Products","name":"Masters","id":"0cda2799-71dd-4378-9239-4d9429f84a18"}}},"id":"b95fbcc7-33f3-40f9-8cf8-7f020b74282a","savedPayload":{"position":{"x":18080.156473662064,"y":24535.922942126937},"targetPosition":{"x":18040.99861599605,"y":24833.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ac37953d-bcaa-48d6-b2de-02479fbbd6f0","savedPayload":{"position":{"x":18040.99861599605,"y":24833.35640053908},"targetPosition":{"x":18300.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":965,"y":-155},"width":256,"height":115.125,"radius":0},"referenceParent":{"type":"Backtesting Session","name":"BB Breakdown 2","id":"21c1a266-ac7f-4eb1-8671-7e290d8b8a58"}}}],"id":"3bab55bf-2b24-49bb-a982-f6e710b50381","savedPayload":{"position":{"x":18300.806237131383,"y":24983.35640053908},"targetPosition":{"x":18600.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","id":"5882d8a8-345b-4188-b1c1-797e9ff805d9"}}}],"id":"0cac30ea-5d81-4984-aaee-8c86cec26ec2","savedPayload":{"position":{"x":18600.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"ef4b033a-aeb2-4461-bc25-019a834c0b23"}}}],"id":"21d2ec55-9e56-4652-8e96-c7e451262c36","savedPayload":{"position":{"x":18900.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"c"}}},{"type":"Plugins","name":"New Plugins","project":"Superalgos","pluginProjects":[{"type":"Plugin Project","name":"Superalgos","config":"{ \n \"codeName\": \"Superalgos\"\n}","project":"Superalgos","pluginDataMines":{"type":"Plugin Data Mines","name":"New Plugin Data Mines","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Masters","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Masters","project":"Superalgos","id":"d5234bd2-ef4e-4856-a6a0-ce7659653a48","savedPayload":{"position":{"x":18879.35218735615,"y":18688.55301821844},"targetPosition":{"x":31820.67692045767,"y":18678.794324352373},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ecc1a524-de9b-4e73-8874-b99a7ea0402b","savedPayload":{"position":{"x":31820.67692045767,"y":18678.794324352373},"targetPosition":{"x":31320.502678827743,"y":18678.79704693609},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cbc3d9be-5e59-45d8-bb0f-4ec82763691d","savedPayload":{"position":{"x":31234.673182942548,"y":18370.4854210064},"targetPosition":{"x":31327.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"pluginTradingMines":{"type":"Plugin Trading Mines","name":"New Plugin Trading Mines","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Masters","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Masters","project":"Superalgos","id":"ad1ce785-858f-4cfc-ba68-108b5e0c54d9","savedPayload":{"position":{"x":24941.217404066585,"y":18714.893045797242},"targetPosition":{"x":31320.45102232534,"y":19544.930491916948},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8a64c00e-4f8c-49bf-b57d-4e2e388bae41","savedPayload":{"position":{"x":31320.45102232534,"y":19544.930491916948},"targetPosition":{"x":31070.415084976332,"y":19111.835158656926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8d881813-3ab9-4e8b-ab5a-48dedab2dd19","savedPayload":{"position":{"x":31570.083379567513,"y":18479.466800207203},"targetPosition":{"x":31327.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"pluginTradingSystems":{"type":"Plugin Trading Systems","name":"New Plugin Trading Systems","project":"Superalgos","pluginFiles":[],"id":"3569d452-c593-4e54-a356-7ff8c6b519f3","savedPayload":{"position":{"x":31570.083379567513,"y":18832.13795158269},"targetPosition":{"x":31327.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"pluginTradingEngines":{"type":"Plugin Trading Engines","name":"New Plugin Trading Engines","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Low-Frequency","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Low-Frequency","project":"Superalgos","id":"e117a2a4-09b3-4181-8455-e680de3bdeb3","savedPayload":{"position":{"x":30923.55093774257,"y":24967.049392142086},"targetPosition":{"x":31141.968084630065,"y":19226.436285672036},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e9270d67-4630-4ac9-91ca-1dec4fb5aa38","savedPayload":{"position":{"x":31141.968084630065,"y":19226.436285672036},"targetPosition":{"x":31234.673182942548,"y":18941.11933078349},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"87a28762-63d0-45f7-bd39-9dea436d8244","savedPayload":{"position":{"x":31234.673182942548,"y":18941.11933078349},"targetPosition":{"x":31327.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c4e402d7-5228-408c-9d67-379d6ef40bae","savedPayload":{"position":{"x":31327.37828125503,"y":18655.802375894946},"targetPosition":{"x":31027.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bfb0b514-3b9f-4e9a-85ca-d0ca714b09f6","savedPayload":{"position":{"x":31027.37828125503,"y":18655.802375894946},"targetPosition":{"x":31027.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Design Space","name":"My Design Space","project":"Superalgos","spaceStyle":{"type":"Space Style","name":"My Space Style","config":" {\n \"backgroundColor\": \"UI_COLOR.BLACK\",\n \"node\": {\n \"fontSize\": 16,\n \"imageSize\": 60,\n \"type\": {\n \"fontColor\": \"UI_COLOR.WHITE\"\n },\n \"name\": {\n \"fontColor\": \"UI_COLOR.WHITE\"\n },\n \"menuItem\": {\n \"backgroundColor\": \"UI_COLOR.BLACK\",\n \"fontColor\": \"UI_COLOR.WHITE\",\n \"fontSize\": 14,\n \"imageSize\": 14\n }\n }\n }","project":"Superalgos","id":"fad0e429-f7a7-4b62-a2a5-2ead29b8f695","savedPayload":{"position":{"x":25236.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"spaceSettings":{"type":"Space Settings","name":"New Space Settings","config":"{\n \"node\": {\n \"distancePercentage\": 60,\n \"radiusPercentage\": 85,\n \"massPercentage\": 100,\n \"animationSteps\": 2, \n \"menuItem\": {\n \"widthPercentage\": 100,\n \"heightPercentage\": 60,\n \"radiusPercentage\": 90\n }\n },\n \"physics\": false\n}","project":"Superalgos","id":"05c9d6d5-24c4-4eec-9aca-9668d6486fdd","savedPayload":{"position":{"x":24636.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8485ce5-67f3-4476-b9e2-80994e49c318","savedPayload":{"position":{"x":24936.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":255,"y":588.3125}}}},{"type":"Superalgos Project","name":"New Superalgos Project","project":"Superalgos","projectDefinition":{"type":"Project Definition","name":"Superalgos","config":"{ \n \"codeName\": \"Superalgos\"\n}","project":"Superalgos","id":"ef4b033a-aeb2-4461-bc25-019a834c0b23","savedPayload":{"position":{"x":24871,"y":24986},"targetPosition":{"x":24571,"y":24986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"spaces":{"type":"Spaces","name":"New Spaces","project":"Superalgos","id":"97eff31b-b4a4-485c-8910-0a88f522e60a","savedPayload":{"position":{"x":24571,"y":25286},"targetPosition":{"x":24571,"y":24986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"mines":{"type":"Mines","name":"New Mines","project":"Superalgos","id":"11fc631a-a015-4988-aff4-5a1bbe822649","savedPayload":{"position":{"x":24271,"y":24986},"targetPosition":{"x":24571,"y":24986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"otherHierarchies":{"type":"Other Hierarchies","name":"New Other Hierarchies","project":"Superalgos","id":"9cf63862-9273-4341-9e03-b98e2d20d6d3","savedPayload":{"position":{"x":24571,"y":24686},"targetPosition":{"x":24571,"y":24986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5f868d2c-1aed-4791-871e-592b36b91afe","savedPayload":{"position":{"x":24571,"y":24986},"targetPosition":{"x":24571,"y":24986},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Tutorial","name":"1. Intro to Trading Systems","config":"{\n \"subTitle\": \"Intro to Trading Systems\",\n \"summary\": \"\",\n \"gif\": \"\",\n \"image\": \"trading-system\",\n \"definition\": \"Trading systems are the heart and soul of systematic trading, as they concentrate the biggest chunk of trading intelligence.\",\n \"paragraph1\": \"The rest of the infrastructure built into Superalgos—data mining and visualization, the trading bot and trading engine, the visual strategy designer and debugger—all have significant equity in the intelligence pie, but it's fair to argue that were developed to support the design, testing, and deployment of trading systems!\",\n \"callOut\": \"This first tutorial explains how Superalgos views and handles a ->Trading System->. The rest of the tutorials in the series teach you how to build them!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Frame It Flexibly!","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Frame It Flexibly!\",\n \"gif\": \"\",\n \"image\": \"trading-system\",\n \"definition\": \"A ->Trading System-> governs trading strategies, and provides a flexible—but structured— framework to build them.\",\n \"paragraph1\": \"\",\n \"callOut\": \"Please, read this page to get up to speed with how trading systems work!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"There is no substitute for knowledge, so you will need to do some reading before I get your hands dirty with good ol' trading logic!\",\n \"important\": \"\",\n \"warning\": \"Skipping the reading may result in permanent neurological impairment. Your call!\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"https://docs.superalgos.org/suite-trading-systems.html\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Points To Take Home","config":"{\n \"subTitle\": \"Points to Take Home...\",\n \"gif\": \"\",\n \"image\": \"trading-system\",\n \"definition\": \"There are some key learnings in the previous reading: multiple strategies, single positions, and precedence.\",\n \"bulletListIntro\": \"Let's take some mental notes for what comes next:\",\n \"bulletArray\": [\n [\n \"Multiple strategies\",\n \"may coexist within a trading system—as many as you wish.\"\n ],\n [\n \"One active strategy\",\n \" with one open position at any given moment is allowed only.\"\n ],\n [\n \"Precedence\",\n \" is given by the order in which strategies are defined around the ->Trading System-> node. You may change the order, of course!\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"You are probably asking why? Do these rules sound arbitrary? They are, for good reason!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"89160f01-f0fe-4127-9ef1-ccf23bcfbe5b","savedPayload":{"position":{"x":19519,"y":44653.25},"targetPosition":{"x":19219,"y":44653.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"332ef29e-d676-4cc0-a4f5-d83670327002","savedPayload":{"position":{"x":19219,"y":44653.25},"targetPosition":{"x":18919,"y":44653.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"WHB Example","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"But... But... Why?","config":"{\n \"subTitle\": \"But... But... Why?\",\n \"gif\": \"\",\n \"image\": \"trading-system\",\n \"definition\": \"Why would I want to have multiple strategies within a trading system, when only one of them may trade at any point?\",\n \"paragraph1\": \"Before answering the burning question, let's take a look at a couple of examples. Take a look at the two strategies within the Weak-hands Buster (WHB v2) trading system! \",\n \"callOut\": \"Explore the definitions of the ->Trigger On Event-> on the ->Trigger Stage-> and see if you notice the difference between the two.\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"There's a hint in the name of each strategy!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"aa24806b-a88f-44e0-a19d-426e034058d5","savedPayload":{"position":{"x":19279.007055568993,"y":45074.76410481041},"targetPosition":{"x":19011.705098312483,"y":44938.56695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading System","name":"WHB v2","id":"975c2fc3-a8f5-43e9-900f-4a4f2430d128"}}},{"type":"Tutorial Step","name":"Steep Vs. Extreme","config":"{ \n \"subTitle\": \"Steep Vs. Extreme\",\n \"gif\": \"\",\n \"image\": \"condition\",\n \"definition\": \"Did you find the difference? Don't worry if you didn't! There are lots of conditions! I'll give you another hint!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Look again and notice that the first seven conditions of the ->Trigger On Event-> are the same on both strategies! The remaining conditions are different, though!\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"You may drag the ->Trigger On Event-> of a strategy and pin it closer to the event of the other strategy for easier comparison!\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n }","project":"Superalgos","id":"f7c47550-e805-4075-8ad6-dd7528610483","savedPayload":{"position":{"x":19104.410196624965,"y":45223.8839097771},"targetPosition":{"x":19011.705098312483,"y":44938.56695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"A Particular Case","config":"{ \n \"subTitle\": \"A Particular Case...\",\n \"gif\": \"\",\n \"image\": \"trading-strategy\",\n \"definition\": \"Both strategies are virtually the same in that they share the same base rules for triggering... with minor differences...\",\n \"paragraph1\": \"Beyond the seven conditions in common, the Steep strategy has one additional ->Condition-> while the Xtreme strategy has three. We won't analyze those differences one by one, although you may if you wish! Let's instead reveal the underlying concept behind the differences:\",\n \"callOut\": \"Within the market ->Situation-> defined by the first seven conditions, the Steep strategy deals with a certain type of price action—price falling on a steep curve—while the Xtreme strategy deals with price falling on an extremely steep curve!\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n }","project":"Superalgos","id":"5d7560ee-feb7-406c-8a3c-265518d27310","savedPayload":{"position":{"x":18875.50794839062,"y":45205.86891214506},"targetPosition":{"x":19011.705098312483,"y":44938.56695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Strategy","name":"Xtreme","id":"c6dfb2a4-3e3d-4a44-a9da-00251dae88a7"}}}],"tutorialTopics":[],"id":"2e6298c8-100f-4393-bfc7-c6cdb2bbec03","savedPayload":{"position":{"x":19011.705098312483,"y":44938.56695488855},"targetPosition":{"x":18919,"y":44653.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"BB Top Bounce Example","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Another Example?","config":"{ \n \"subTitle\": \"Another Example?\",\n \"gif\": \"\",\n \"image\": \"trading-system\",\n \"definition\": \"Let's take a look at another example! This is BB Top Bounce, a ->Trading System-> based on the bounce off the upper Bollinger Band trading idea.\",\n \"paragraph1\": \"\",\n \"callOut\": \"Expand the trading system node... Let's see what it may teach us!\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"I told you! You may have as many strategies as you wish under the same trading system! Well... there your are!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n }","project":"Superalgos","id":"06d2bbcb-9bbc-44a6-9aaa-b5b4d9f32ea5","savedPayload":{"position":{"x":18629.364562175448,"y":45125.89207786629},"targetPosition":{"x":18676.294901687517,"y":44829.58557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading System","name":"BB Top Bounce","id":"3313017d-fdce-481b-9679-fe8e4f67cd45"}}},{"type":"Tutorial Step","name":"At the Count of Three","config":"{ \n \"subTitle\": \"At The Count of Three!\",\n \"gif\": \"\",\n \"image\": \"condition\",\n \"definition\": \"BB Top Bounce features an interesting approach: it defines the trading idea with three simple conditions.\",\n \"paragraph1\": \"You are looking at the ->Trigger On Event-> of the first strategy. Notice the first three conditions defined...\",\n \"callOut\": \"Now go and look at the trigger on event of any of the other strategies... What do you see?\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"Eaxctly! All strategies feature the same first three conditions on the trigger on event. This shows that all strategies are based on the same trading idea. Now... how are they different?\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n }","project":"Superalgos","id":"36476e87-3d2e-4fa4-8c08-ff0928e726c7","savedPayload":{"position":{"x":18433.589803375035,"y":45005.921151375485},"targetPosition":{"x":18676.294901687517,"y":44829.58557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Condition","name":"Previous Breakup","id":"f0534c68-ab47-4370-b1fd-b3be4c1c262f"}}},{"type":"Tutorial Step","name":"Time Frame Analysis","config":"{ \n \"subTitle\": \"Time Frame Analysys\",\n \"gif\": \"\",\n \"image\": \"time-frame\",\n \"definition\": \"Each strategy specializes in specific market conditions by analyzing the state of the market on different time frames!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Take a look at the name of each strategy... 3H Down, 2H Down, 4H Up...\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"If you study the conditions that define the trigger on event, you will notice that 3H Down referes to the fact that the particular strategy is triggered when the 3-hour time frame is in a downwtrend.\",\n \"note\": \"Each of the strategies speciallizes on a certain time frame and trend!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n }","project":"Superalgos","id":"833b9d28-43d6-415a-a4da-d73a0b040c70","savedPayload":{"position":{"x":18379.988399508977,"y":44782.65523617568},"targetPosition":{"x":18676.294901687517,"y":44829.58557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Strategy","name":"S6 - 2H Up","id":"f1ca0dbb-65e8-4c60-84f0-89596e22e9be"}}}],"tutorialTopics":[],"id":"98cb5e4e-d977-4d81-99e4-c349f13c0cd8","savedPayload":{"position":{"x":18676.294901687517,"y":44829.58557568774},"targetPosition":{"x":18919,"y":44653.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Conclusions","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Unpacking Lessons...","config":"{ \n \"subTitle\": \"Unpacking These Lessons\",\n \"gif\": \"\",\n \"image\": \"trading-system\",\n \"definition\": \"We've covered two examples of trading systems featuring multiple strategies... what can we learn from them?\",\n \"paragraph1\": \"In the case of Weak-hands Buster, each strategy represents a particular case of the same trading idea. In the case of BB Top Bounce, each strategy specializes in specific market conditions.\",\n \"callOut\": \"In the next few steps, we will unpack the implications of using multiple strategies within the same trading system and—finally—answer the burning question: why would we want to use such a setup?\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n }","project":"Superalgos","id":"6b70202a-4cb2-40fc-a066-146469561aee","savedPayload":{"position":{"x":18402.231264394737,"y":44598.935417235},"targetPosition":{"x":18676.294901687517,"y":44476.91442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Granularity","config":"{ \n \"subTitle\": \"Granularity!\",\n \"gif\": \"\",\n \"image\": \"trading-system\",\n \"definition\": \"I mentioned the concept of granularity during the Welcome tutorial... remember?\",\n \"paragraph1\": \"Granularity is a device the helps in handling complexity. Instead of letting strategies grow into a complex web of rules and definitions, it is always preferable to split complex logic in pieces and deal with smaller units.\",\n \"callOut\": \"Splitting complex logic into multiple strategies helps in keeping strategies simple and understandable. It makes strategies easier to debug and to maintain!\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"Whenever you can, keep it simple!\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n }","project":"Superalgos","id":"b00bc7cc-ce47-4563-8c7d-3e3d9599020c","savedPayload":{"position":{"x":18377.938333077036,"y":44445.55588533196},"targetPosition":{"x":18676.294901687517,"y":44476.91442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Hyper Specialization!","config":"{ \n \"subTitle\": \"Hyper Specialization!\",\n \"gif\": \"\",\n \"image\": \"trading-system\",\n \"definition\": \"Specialization is a very interesting concept that may lead to designing more efficient trading systems!\",\n \"paragraph1\": \"It is a well-known fact that most strategies perform better on certain market conditions.\",\n \"callOut\": \"Like with BB Top Bounce, a single trading system may feature multiple strategies, each specializing in specific trends, volatility ranges, or any other market parameter.\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Instead of designing a strategy to evaluate a range of market conditions, keep them focused!\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n }","project":"Superalgos","id":"07133a71-e21f-4cac-9c23-47a2b3d68532","savedPayload":{"position":{"x":18433.589803375035,"y":44300.578848624515},"targetPosition":{"x":18676.294901687517,"y":44476.91442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Fine-grain Management","config":"{ \n \"subTitle\": \"Fine-Grain Management!\",\n \"gif\": \"\",\n \"image\": \"trading-system\",\n \"definition\": \"When complex trading logic is split into multiple strategies, you gain the opportunity to manage the resulting trades differently!\",\n \"paragraph1\": \"We haven't yet got into how strategies are defined, but you do know that Superalgos allows managing the take profit and stop loss targets...\",\n \"callOut\": \"Each strategy in a trading system may have its own logic for managing positions!\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"If you handle multiple variations of the same logic for example, to take a position, then you will likely need to handle multiple variations for managing the position. It is easier and cleaner to do both on separate strategies.\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n }","project":"Superalgos","id":"5ef392db-5784-4c0f-b797-cb758243aaae","savedPayload":{"position":{"x":18554.27390876478,"y":44202.85078701947},"targetPosition":{"x":18676.294901687517,"y":44476.91442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Going Long & Short","config":"{\n \"subTitle\": \"Going Long & Short\",\n \"gif\": \"\",\n \"image\": \"trading-system\",\n \"definition\": \"We covered the three main reasons why it's a good idea to split complex logic into more than one strategy...\",\n \"bulletListIntro\": \"We also covered a couple of examples of trading systems doing just that. There is another example that comes to mind:\",\n \"bulletArray\": [\n [\n \"Going long and short:\",\n \" designing a strategy that goes both long and short is probably not a good idea. Split the logic and build one strategy for going long and another for going short!\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Remember the KISS principle!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"2c9fd60b-60ab-495d-adb6-66c75e655ec2","savedPayload":{"position":{"x":18707.653440667815,"y":44178.55785570177},"targetPosition":{"x":18676.294901687517,"y":44476.91442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"fc843922-ed15-4e32-a334-8b6ebf3ad50c","savedPayload":{"position":{"x":18676.294901687517,"y":44476.91442431226},"targetPosition":{"x":18919,"y":44653.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"The End","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Ready for the next?","config":"{ \n \"subTitle\": \"Ready For The Next One?\",\n \"gif\": \"\",\n \"image\": \"tutorial\",\n \"definition\": \"Congratulations! You now know as much about trading systems as I do! Coming next, Defining a Trading Idea.\",\n \"paragraph1\": \"\",\n \"callOut\": \"The next tutorial in the series is about framing trading ideas into a formal hypothesis so that the trading idea may be tested. Testing a trading idea is the first step in the process of building a ->Trading Strategy->!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Click Next to finish this tutorial, and select Play in the next one when you are ready!\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"6fbc3be5-22cc-4e76-8b89-cf7516cfb193","savedPayload":{"position":{"x":19104.410196624965,"y":44082.6160902229},"targetPosition":{"x":19011.705098312483,"y":44367.93304511145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"2. Defining a Trading Idea","id":"04b42ede-fa1b-4962-bef2-b20126b5c0b7"}}}],"tutorialTopics":[],"id":"5693e204-dae0-401d-a611-12ccc7341c8a","savedPayload":{"position":{"x":19011.705098312483,"y":44367.93304511145},"targetPosition":{"x":18919,"y":44653.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"45fec5f4-819e-4c12-898e-8882543c1480","savedPayload":{"position":{"x":18894,"y":44174.75},"targetPosition":{"x":18894,"y":44174.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isPlaying":true,"isRunning":false},"tutorial":{"status":"Done"}}},{"type":"Trading System","name":"WHB v2","config":"{ \n\"codeName\": \"Sparta-WHB-BTC-USDT\"\n}","project":"Superalgos","tradingStrategies":[{"type":"Trading Strategy","name":"Steep","project":"Superalgos","triggerStage":{"type":"Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"Steep","project":"Superalgos","conditions":[{"type":"Condition","name":"3 Closes Below MA","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage && \nchart.at01hs.candle.previous.close < chart.at01hs.bollingerBand.previous.movingAverage && \nchart.at01hs.candle.previous.previous.close < chart.at01hs.bollingerBand.previous.previous.movingAverage","project":"Superalgos","id":"123b1af6-9639-4b6d-a4c3-7a8a9287169c","savedPayload":{"position":{"x":30941.32599744549,"y":30081.791422349677},"targetPosition":{"x":31088.570074962638,"y":30110.41277165616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"427da1e1-cc4a-4c78-88f6-c254d87cc88f","savedPayload":{"position":{"x":31088.570074962638,"y":30110.41277165616},"targetPosition":{"x":31383.058229996936,"y":30167.655470269125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Breakdown","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"1b9e755e-eefe-4b0d-addd-1e19b6a597b6","savedPayload":{"position":{"x":30997.332944680988,"y":29935.8883365596},"targetPosition":{"x":31125.908039786304,"y":30013.144047796108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"55bf7721-7fb2-42f0-8a3c-c2b97e278a29","savedPayload":{"position":{"x":31125.908039786304,"y":30013.144047796108},"targetPosition":{"x":31383.058229996936,"y":30167.655470269125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"e8db5fac-2f00-47fe-ac57-dc93ad15f2b5","savedPayload":{"position":{"x":31099.864054024507,"y":29817.93978761349},"targetPosition":{"x":31194.262112681983,"y":29934.511681832035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"11e00b31-e7eb-4fe9-b006-dcd640dbbd3b","savedPayload":{"position":{"x":31194.262112681983,"y":29934.511681832035},"targetPosition":{"x":31383.058229996936,"y":30167.655470269125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Deviation > 200","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 200","project":"Superalgos","id":"7671ca91-4b4c-40c5-b0c2-199169b013e8","savedPayload":{"position":{"x":31236.552560491215,"y":29742.17211124943},"targetPosition":{"x":31285.38778365979,"y":29883.99989758933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"dd938286-61b3-41e4-bfbb-db34971ffa47","savedPayload":{"position":{"x":31285.38778365979,"y":29883.99989758933},"targetPosition":{"x":31383.058229996936,"y":30167.655470269125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Candle Size < 750","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.max - chart.at01hs.candle.min < 750","project":"Superalgos","id":"19b7edeb-b180-429f-9adf-61bf47262033","savedPayload":{"position":{"x":31390.91181289371,"y":29717.72400744875},"targetPosition":{"x":31388.29395192812,"y":29867.70116172221},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8f94ab97-1574-4136-9404-b66dfc1e3b9f","savedPayload":{"position":{"x":31388.29395192812,"y":29867.70116172221},"targetPosition":{"x":31383.058229996936,"y":30167.655470269125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Deviation < 1000","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation < 1000","project":"Superalgos","id":"0aa38939-f2ef-4c2b-bfc1-a45bda2ac50e","savedPayload":{"position":{"x":31544.323807292323,"y":29747.544278345384},"targetPosition":{"x":31490.568614860527,"y":29887.581342319965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0b2efc27-4aa5-472c-bb7a-73fc3796cc0e","savedPayload":{"position":{"x":31490.568614860527,"y":29887.581342319965},"targetPosition":{"x":31383.058229996936,"y":30167.655470269125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Not Completly Oversold","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.percentageBandwidth.movingAverage >= 30 || \nchart.at03hs.percentageBandwidth.movingAverage >= 30 || \nchart.at04hs.percentageBandwidth.movingAverage >= 30 || \nchart.at06hs.percentageBandwidth.movingAverage >= 30 || \nchart.at08hs.percentageBandwidth.movingAverage >= 30","project":"Superalgos","id":"8f02c79c-1807-42ce-a9e8-e707ec73e9e4","savedPayload":{"position":{"x":31678.284793042665,"y":29828.036159168878},"targetPosition":{"x":31579.875938694087,"y":29941.242596202293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0ff24392-a128-4d59-8049-301e99ce941e","savedPayload":{"position":{"x":31579.875938694087,"y":29941.242596202293},"targetPosition":{"x":31383.058229996936,"y":30167.655470269125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Slope Not Extreme, or...","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope != \"Extreme\" || \n(chart.at01hs.bollingerSubChannel.period <= 6 && \nchart.at08hs.bollingerChannel.direction === \"Down\" && \nchart.at06hs.bollingerChannel.direction === \"Down\" && \nchart.at04hs.bollingerChannel.direction === \"Down\" && \nchart.at02hs.bollingerSubChannel.slope === (\"Extreme\" || \"Steep\"))","project":"Superalgos","id":"231acfc1-6010-4d84-822f-056d1f3f9dc8","savedPayload":{"position":{"x":31776.637098209663,"y":29949.491141158273},"targetPosition":{"x":31645.444142138753,"y":30022.212584195222},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"da235bf3-976c-4832-a565-98a6bb13236d","savedPayload":{"position":{"x":31645.444142138753,"y":30022.212584195222},"targetPosition":{"x":31383.058229996936,"y":30167.655470269125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c94fdd47-c451-4c27-ad56-82b346d60f87","savedPayload":{"position":{"x":31383.058229996936,"y":30167.655470269125},"targetPosition":{"x":31429.988569509005,"y":30463.961972447665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"f5bf32a8-54eb-42ef-bc75-86caf1fd16a2","savedPayload":{"position":{"x":31429.988569509005,"y":30463.961972447665},"targetPosition":{"x":31476.918909021075,"y":30760.268474626206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Close Above MA","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close > chart.at01hs.bollingerBand.movingAverage","project":"Superalgos","id":"bd638ed9-46fa-42d5-9dfd-5ff8921f83cd","savedPayload":{"position":{"x":32182.261211772045,"y":29789.448081376275},"targetPosition":{"x":32005.925636084303,"y":30032.153179688758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e5fbd2ee-9cef-4887-a270-8fb307dff36d","savedPayload":{"position":{"x":32005.925636084303,"y":30032.153179688758},"targetPosition":{"x":31829.59006039656,"y":30274.85827800124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"faabf32b-db1f-49d2-8a74-39e9f653867c","savedPayload":{"position":{"x":31829.59006039656,"y":30274.85827800124},"targetPosition":{"x":31653.254484708817,"y":30517.563376313723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"d33d5a40-93e6-4a51-9bf0-389702d7c57c","savedPayload":{"position":{"x":31653.254484708817,"y":30517.563376313723},"targetPosition":{"x":31476.918909021075,"y":30760.268474626206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"Steep","project":"Superalgos","conditions":[{"type":"Condition","name":"3 Closes Below MA","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage && \nchart.at01hs.candle.previous.close < chart.at01hs.bollingerBand.previous.movingAverage && \nchart.at01hs.candle.previous.previous.close < chart.at01hs.bollingerBand.previous.previous.movingAverage","project":"Superalgos","id":"b5967d93-adf2-4a9e-9f1f-8ddb83c11e89","savedPayload":{"position":{"x":32127.20669956265,"y":30220.11907847091},"targetPosition":{"x":32107.981770834485,"y":30368.881984181295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"946e10ee-70f9-4489-8ac9-c523116f997d","savedPayload":{"position":{"x":32107.981770834485,"y":30368.881984181295},"targetPosition":{"x":32069.531913378156,"y":30666.407795602066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Breakdown","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"35e54c04-f05e-4790-9431-da49c89895a4","savedPayload":{"position":{"x":32250.604526843737,"y":30254.445772288334},"targetPosition":{"x":32190.246989021878,"y":30391.766446726244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"299cc453-ffa7-4bcc-84be-fcf9187e0188","savedPayload":{"position":{"x":32190.246989021878,"y":30391.766446726244},"targetPosition":{"x":32069.531913378156,"y":30666.407795602066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"91d65f47-922b-4e28-874a-7ccb83389509","savedPayload":{"position":{"x":32359.332927862142,"y":30322.147179202144},"targetPosition":{"x":32262.732589700812,"y":30436.900718002118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"74da641c-243d-4e2c-86e7-b215d804796d","savedPayload":{"position":{"x":32262.732589700812,"y":30436.900718002118},"targetPosition":{"x":32069.531913378156,"y":30666.407795602066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Deviation > 200","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 200","project":"Superalgos","id":"8616a334-50d8-437a-9631-96e1b6611f77","savedPayload":{"position":{"x":32444.58337420005,"y":30417.738533859963},"targetPosition":{"x":32319.56622059275,"y":30500.628287773998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"98acfea3-5f57-4dd2-ad9b-f13643c04b3a","savedPayload":{"position":{"x":32319.56622059275,"y":30500.628287773998},"targetPosition":{"x":32069.531913378156,"y":30666.407795602066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Candle Size < 750","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.max - chart.at01hs.candle.min < 750","project":"Superalgos","id":"bc3a1d72-8424-40e4-bf3b-e9aec5365cfe","savedPayload":{"position":{"x":32499.449381699087,"y":30533.47559321108},"targetPosition":{"x":32356.143558925443,"y":30577.786327341408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4219ab16-929b-4489-80f8-2e2970e170dd","savedPayload":{"position":{"x":32356.143558925443,"y":30577.786327341408},"targetPosition":{"x":32069.531913378156,"y":30666.407795602066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Deviation < 1000","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation < 1000","project":"Superalgos","id":"7ef4294e-31a6-4a56-b4cc-ed4a3f205bb2","savedPayload":{"position":{"x":32519.4860327324,"y":30659.982029021663},"targetPosition":{"x":32369.501326280984,"y":30662.12395121513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7bacba88-87bc-491a-95fa-4024d49438f5","savedPayload":{"position":{"x":32369.501326280984,"y":30662.12395121513},"targetPosition":{"x":32069.531913378156,"y":30666.407795602066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Not Completly Oversold","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.percentageBandwidth.movingAverage >= 30 || \nchart.at03hs.percentageBandwidth.movingAverage >= 30 || \nchart.at04hs.percentageBandwidth.movingAverage >= 30 || \nchart.at06hs.percentageBandwidth.movingAverage >= 30 || \nchart.at08hs.percentageBandwidth.movingAverage >= 30","project":"Superalgos","id":"d717997d-c2f4-4332-abd3-cf4a0f25cb65","savedPayload":{"position":{"x":32503.070076995817,"y":30787.009042225087},"targetPosition":{"x":32358.55735578993,"y":30746.80862668408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"63558a06-3dab-46c6-b361-2d55aca38eea","savedPayload":{"position":{"x":32358.55735578993,"y":30746.80862668408},"targetPosition":{"x":32069.531913378156,"y":30666.407795602066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Slope Not Extreme, or...","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope != \"Extreme\" || \n(chart.at01hs.bollingerSubChannel.period <= 6 && \nchart.at08hs.bollingerChannel.direction === \"Down\" && \nchart.at06hs.bollingerChannel.direction === \"Down\" && \nchart.at04hs.bollingerChannel.direction === \"Down\" && \nchart.at02hs.bollingerSubChannel.slope === (\"Extreme\" || \"Steep\"))","project":"Superalgos","id":"e8563aee-5cd1-4953-a1c4-890a47ef8af3","savedPayload":{"position":{"x":32451.531437593665,"y":30904.265659670345},"targetPosition":{"x":32324.198262855163,"y":30824.97970498092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d900ad86-c048-45d3-9b26-dc8665b8aba8","savedPayload":{"position":{"x":32324.198262855163,"y":30824.97970498092},"targetPosition":{"x":32069.531913378156,"y":30666.407795602066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"8H Deviation","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at08hs.bollingerBand.deviation < 1575","project":"Superalgos","id":"84f24347-1102-48e1-9d13-b7ae0f043e5e","savedPayload":{"position":{"x":32369.04546857822,"y":31002.252447563977},"targetPosition":{"x":32269.207616844866,"y":30890.30423024334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"182deaef-3884-4ddd-b08b-2a554a130832","savedPayload":{"position":{"x":32269.207616844866,"y":30890.30423024334},"targetPosition":{"x":32069.531913378156,"y":30666.407795602066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Below Top Band","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.candle.open < \nchart.at24hs.bollingerBand.movingAverage + chart.at24hs.bollingerBand.deviation || \nchart.at24hs.candle.close < \nchart.at24hs.bollingerBand.movingAverage + chart.at24hs.bollingerBand.deviation","project":"Superalgos","id":"7ea70416-894f-4fae-ad62-db36e510519f","savedPayload":{"position":{"x":32262.294692596166,"y":31073.03109910071},"targetPosition":{"x":32198.04043285683,"y":30937.489997934495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"eb6577c9-7823-490c-9a25-81165b4d4f6b","savedPayload":{"position":{"x":32198.04043285683,"y":30937.489997934495},"targetPosition":{"x":32069.531913378156,"y":30666.407795602066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a8a86bab-322e-4f20-8f2d-74671e8d2b7e","savedPayload":{"position":{"x":32069.531913378156,"y":30666.407795602066},"targetPosition":{"x":31773.225411199615,"y":30713.338135114136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"97e60ce9-228e-459d-b2cc-2ba447266e22","savedPayload":{"position":{"x":31773.225411199615,"y":30713.338135114136},"targetPosition":{"x":31476.918909021075,"y":30760.268474626206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"166df39d-b70e-4061-9557-a6bb41a74bea","savedPayload":{"position":{"x":31476.918909021075,"y":30760.268474626206},"targetPosition":{"x":31300.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"openStage":{"type":"Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"My Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"4f34635c-d4e2-47c1-8c75-cd18d577fe33","savedPayload":{"position":{"x":31911.38648462019,"y":30100.436466542706},"targetPosition":{"x":31849.012977374863,"y":30393.880746762847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9f6351ce-0ca2-44f2-9e85-e9365265131b","savedPayload":{"position":{"x":31849.012977374863,"y":30393.880746762847},"targetPosition":{"x":31786.639470129536,"y":30687.325026982988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.episodeBaseAsset.balance.value","project":"Superalgos","id":"492cee3d-1709-41c5-bfd8-e700a3fdf3da","savedPayload":{"position":{"x":32357.273379906626,"y":30501.914830358022},"targetPosition":{"x":32071.95642501808,"y":30594.619928670505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"df940eb5-ea9b-485d-a03a-27491d496fc3","savedPayload":{"position":{"x":32071.95642501808,"y":30594.619928670505},"targetPosition":{"x":31786.639470129536,"y":30687.325026982988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"dbfab28a-d209-4896-96bb-05a26db8b73f","savedPayload":{"position":{"x":31786.639470129536,"y":30687.325026982988},"targetPosition":{"x":31585.900288221877,"y":30910.268474626206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Quick Entry","config":"{\n\"percentageOfAlgorithmSize\": 100\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"cc515fe8-2957-4ef9-aef8-e65512f6ebf0","savedPayload":{"position":{"x":33640.010249762876,"y":31346.883025343497},"targetPosition":{"x":33346.56596954273,"y":31284.50951809817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"be9e2b59-adac-4ec8-8b16-73c9c1367eff","savedPayload":{"position":{"x":33346.56596954273,"y":31284.50951809817},"targetPosition":{"x":33053.12168932259,"y":31222.136010852842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"95614ecb-8d7a-4a56-8ca8-3a51ec209f45","savedPayload":{"position":{"x":33053.12168932259,"y":31222.136010852842},"targetPosition":{"x":32759.67740910244,"y":31159.762503607515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"938d2ee7-fd7b-409a-8ba3-2e10898ecf2c","savedPayload":{"position":{"x":32759.67740910244,"y":31159.762503607515},"targetPosition":{"x":32466.2331288823,"y":31097.388996362188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c54cb995-2b02-426e-bfe3-dea00d502d56","savedPayload":{"position":{"x":32466.2331288823,"y":31097.388996362188},"targetPosition":{"x":32172.78884866216,"y":31035.01548911686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"f3ccceff-a347-4100-b429-0788d0035868","savedPayload":{"position":{"x":32172.78884866216,"y":31035.01548911686},"targetPosition":{"x":31879.34456844202,"y":30972.641981871533},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"381d75d8-f6de-4841-b6a3-fc3c01884438","savedPayload":{"position":{"x":31879.34456844202,"y":30972.641981871533},"targetPosition":{"x":31585.900288221877,"y":30910.268474626206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"262e5a8c-cb38-43be-840d-a41ee5f4665f","savedPayload":{"position":{"x":31585.900288221877,"y":30910.268474626206},"targetPosition":{"x":31300.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 1.03","project":"Superalgos","id":"098e918d-2dee-44f7-97bd-9d3a9ef0458a","savedPayload":{"position":{"x":32395.732296305378,"y":30770.192474852858},"targetPosition":{"x":32172.78884866216,"y":30970.931656760516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"shortcutKey":"q"}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Close Below 5%","code":"chart.at24hs.candlesProbability.begin > chart.at24hs.candlesProbability.begin","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < tradingEngine.current.position.entryTargetRate.value * 0.95","project":"Superalgos","id":"96683629-b453-49a5-a871-94a0deb2a017","savedPayload":{"position":{"x":34738.87798994971,"y":43183.406060803245},"targetPosition":{"x":34380.61474462071,"y":43300.072664363455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c48e62b6-cdf5-4ee0-9872-6487a99d1861","savedPayload":{"position":{"x":34380.61474462071,"y":43300.072664363455},"targetPosition":{"x":34023.20135802305,"y":43416.5910011551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e502afa9-3ac9-4d7c-9a1c-02a66181c75c","savedPayload":{"position":{"x":34023.20135802305,"y":43416.5910011551},"targetPosition":{"x":33658.8511044813,"y":43535.41403114637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"2ae990f4-51b6-47de-8cb4-3acd042c1218","savedPayload":{"position":{"x":32458.105803550705,"y":31063.636755073},"targetPosition":{"x":32172.78884866216,"y":30970.931656760516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"92bc3860-4ffb-44e8-bd90-15b05113b3d2","savedPayload":{"position":{"x":32172.78884866216,"y":30970.931656760516},"targetPosition":{"x":31879.34456844202,"y":31033.305164005844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P1: Trailing 5.25% Above MA","project":"Superalgos","formula":{"type":"Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 1.0525 < tradingEngine.current.position.stopLoss.value) \n{chart.at01hs.bollingerBand.movingAverage * 1.0525} \nelse {tradingEngine.current.position.stopLoss.value}","project":"Superalgos","id":"6f65573a-c2ac-476a-9ca1-738971e3ff78","savedPayload":{"position":{"x":32759.67740910244,"y":30846.18464226986},"targetPosition":{"x":32466.2331288823,"y":30908.55814951519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"e29bf8a5-014c-4868-b50a-c4b79b2b2eb3","savedPayload":{"position":{"x":32466.2331288823,"y":30908.55814951519},"targetPosition":{"x":32172.78884866216,"y":30970.931656760516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"89593e32-77e8-4216-a351-64c852d06784","savedPayload":{"position":{"x":31879.34456844202,"y":31033.305164005844},"targetPosition":{"x":31585.900288221877,"y":31095.67867125117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"P1: 60% of Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01hs.bollingerBand.movingAverage * 0.6","project":"Superalgos","id":"1766975c-17c8-477e-b2e5-cb6ff1c7ddd3","savedPayload":{"position":{"x":33343.86565106542,"y":45307.60128884687},"targetPosition":{"x":32976.06928320956,"y":45385.7953921233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"3H Oversold","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at03hs.percentageBandwidth.previous.movingAverage <= 10","project":"Superalgos","id":"c3f076df-8b01-4a9a-ad60-9bf53433e4bf","savedPayload":{"position":{"x":34922.38361042235,"y":44854.771221023795},"targetPosition":{"x":34555.12108103236,"y":44775.776371982196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"553fde3a-dcb6-41b2-89c8-ba278a2fd4e0","savedPayload":{"position":{"x":34555.12108103236,"y":44775.776371982196},"targetPosition":{"x":34187.87326322644,"y":44698.42153062817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fa198094-34dd-4f2e-8d57-002ca886ba71","savedPayload":{"position":{"x":34187.87326322644,"y":44698.42153062817},"targetPosition":{"x":33812.740518694955,"y":44618.41028537479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"3H Entering Oversold","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at03hs.percentageBandwidth.movingAverage <= 30","project":"Superalgos","id":"f1452048-936e-4c93-a615-66ed6b18bd11","savedPayload":{"position":{"x":34491.96274405311,"y":45484.925071428224},"targetPosition":{"x":34212.511978122035,"y":45234.76669181413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d85e95b6-4108-40d6-9ed0-a382f8d5015a","savedPayload":{"position":{"x":34212.511978122035,"y":45234.76669181413},"targetPosition":{"x":33932.13622520962,"y":44982.71705957985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"67baba53-16eb-4a64-b7ae-f8b2e999e710","savedPayload":{"position":{"x":33776.6876698653,"y":45717.93872881055},"targetPosition":{"x":33854.45425058783,"y":45350.67220878789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f3a53caf-c1d2-4786-869d-3e4ed1c9b71b","savedPayload":{"position":{"x":33854.45425058783,"y":45350.67220878789},"targetPosition":{"x":33932.13622520962,"y":44982.71705957985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"034c0358-0163-4448-9511-8e154f07226e","savedPayload":{"position":{"x":33932.13622520962,"y":44982.71705957985},"targetPosition":{"x":33812.740518694955,"y":44618.41028537479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"a2d912bb-6362-4505-91b6-8b726dd670c7","savedPayload":{"position":{"x":32859.72269493093,"y":45743.528334410745},"targetPosition":{"x":32976.06928320956,"y":45385.7953921233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"17a900a2-bcfd-4e3f-b115-baa06c2b077a","savedPayload":{"position":{"x":32976.06928320956,"y":45385.7953921233},"targetPosition":{"x":32692.390541932506,"y":45070.68548551787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P2: 85% MA - 4 Deviations","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 0.85 - \nchart.at01hs.bollingerBand.deviation * 4 > 1) \n{chart.at01hs.bollingerBand.movingAverage * 0.85 - \nchart.at01hs.bollingerBand.deviation * 4} \nelse {tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"77e53622-cb53-410d-892f-cd474b28c29e","savedPayload":{"position":{"x":33595.31596186612,"y":45586.81280353814},"targetPosition":{"x":33227.5835281625,"y":45665.11871160152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"8H Oversold","project":"Superalgos","conditions":[{"type":"Condition","name":"8H %B < 15","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at08hs.percentageBandwidth.previous.movingAverage <= 15","project":"Superalgos","id":"5fbde96a-6337-465e-8304-ca3def2b6410","savedPayload":{"position":{"x":34343.71649045767,"y":34043.06126553613},"targetPosition":{"x":34057.37838579785,"y":33940.02247976336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b855a2c5-d616-4379-a31a-5e187f36bfc4","savedPayload":{"position":{"x":34057.37838579785,"y":33940.02247976336},"targetPosition":{"x":33700.36246841534,"y":33803.173708126866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","project":"Superalgos","id":"9bff4bf4-56cd-46ea-adf1-273dbe6c8299","savedPayload":{"position":{"x":33973.36621048014,"y":34416.7658816998},"targetPosition":{"x":33855.874937264954,"y":34152.47856766467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3dbea2ad-06be-4a8e-ba8e-7718704e1dbe","savedPayload":{"position":{"x":33855.874937264954,"y":34152.47856766467},"targetPosition":{"x":33700.36246841534,"y":33803.173708126866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Channel Period > 5","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >= 5","project":"Superalgos","id":"f969b936-fd9a-45f2-bf59-4a18d691bc06","savedPayload":{"position":{"x":33395.037889495936,"y":34398.007091692125},"targetPosition":{"x":33498.89028765579,"y":34128.191077545634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a8ac6da5-2f72-4c53-953a-4135624d6230","savedPayload":{"position":{"x":33498.89028765579,"y":34128.191077545634},"targetPosition":{"x":33700.36246841534,"y":33803.173708126866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"15b3728c-3b03-4a2b-9e05-6b7f772e6bf3","savedPayload":{"position":{"x":33700.18209119567,"y":33803.480386605384},"targetPosition":{"x":33465.00778672871,"y":33274.874855587244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"24H Previous Up","project":"Superalgos","conditions":[{"type":"Condition","name":"8H %B < 40","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at08hs.percentageBandwidth.movingAverage <= 40","project":"Superalgos","id":"867dd327-29de-4b01-af95-8e18191a299a","savedPayload":{"position":{"x":33333.05973428013,"y":34383.58454446746},"targetPosition":{"x":33243.82933624715,"y":34108.64851270677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eef8d507-fcf6-4efa-9fcb-9e58ccc0af36","savedPayload":{"position":{"x":33243.82933624715,"y":34108.64851270677},"targetPosition":{"x":33125.04276404638,"y":33742.85366106205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":" chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","project":"Superalgos","id":"f2fa836d-23f0-47cb-ba81-550089468d9a","savedPayload":{"position":{"x":32917.6301297237,"y":34381.601860862604},"targetPosition":{"x":33007.01464514057,"y":34106.28884351111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f75a18be-7ac8-4276-89bd-b3ff8ea5c69f","savedPayload":{"position":{"x":33007.01464514057,"y":34106.28884351111},"targetPosition":{"x":33125.04276404638,"y":33742.85366106205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Channel Period > 3","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >= 3","project":"Superalgos","id":"5556b779-ef49-4a0b-ad26-1cdbfd6a01b8","savedPayload":{"position":{"x":32581.611927652786,"y":34137.79664866047},"targetPosition":{"x":32816.02170528682,"y":33967.41683841296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a8762e6c-04a8-49dc-a6e7-de73f24bb295","savedPayload":{"position":{"x":32816.02170528682,"y":33967.41683841296},"targetPosition":{"x":33125.04276404638,"y":33742.85366106205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Previous Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.direction === \"Up\"","project":"Superalgos","id":"42cf65fc-dc6a-4a45-9e14-1820db151b51","savedPayload":{"position":{"x":32449.228654213697,"y":33742.88825209724},"targetPosition":{"x":32738.1013867807,"y":33742.85826389762},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8137faa0-d59a-4eab-ad95-ca8d2250bbf6","savedPayload":{"position":{"x":32738.1013867807,"y":33742.85826389762},"targetPosition":{"x":33125.04276404638,"y":33742.85366106205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c688240e-5e54-456d-b219-16994f799907","savedPayload":{"position":{"x":33124.94636882617,"y":33742.969227553665},"targetPosition":{"x":33465.00778672871,"y":33274.874855587244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"6e59e30a-bd6e-45ad-afb9-f1bab0a759d9","savedPayload":{"position":{"x":33111.19089151636,"y":46022.78932642733},"targetPosition":{"x":33227.5835281625,"y":45665.11871160152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"62709ed5-832a-43e8-8f74-29a359af7127","savedPayload":{"position":{"x":33227.5835281625,"y":45665.11871160152},"targetPosition":{"x":32976.09248711737,"y":45385.82233038297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P3: 90% MA - 4 Deviations","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 0.9 - \nchart.at01hs.bollingerBand.deviation * 4 > 1) \n{chart.at01hs.bollingerBand.movingAverage * 0.9 - \nchart.at01hs.bollingerBand.deviation * 4} \nelse {tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"2d4907e5-54f3-4677-b191-15a85b95c64e","savedPayload":{"position":{"x":33846.81955667049,"y":45866.11858590809},"targetPosition":{"x":33478.99186356516,"y":45944.30620698363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"12H Previous Oversold","project":"Superalgos","conditions":[{"type":"Condition","name":"12H Previous %B < 15","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at12hs.percentageBandwidth.previous.movingAverage <= 15","project":"Superalgos","id":"7e9cefff-d831-4c3d-ba5a-42ef48397d0f","savedPayload":{"position":{"x":34795.80410051236,"y":34383.509070094646},"targetPosition":{"x":34526.309123571475,"y":34280.09068892164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d1d9d786-da85-4a7b-b5b5-3278dcdccfa8","savedPayload":{"position":{"x":34526.309123571475,"y":34280.09068892164},"targetPosition":{"x":34169.002979023666,"y":34143.010855109475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":" chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","project":"Superalgos","id":"512f3976-5707-426d-b6cf-63306b90b71a","savedPayload":{"position":{"x":34442.18627603836,"y":34756.58732132532},"targetPosition":{"x":34324.501259370685,"y":34492.23738314313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1e09d719-39f0-4e66-afe9-e46f816c0b8a","savedPayload":{"position":{"x":34324.501259370685,"y":34492.23738314313},"targetPosition":{"x":34169.002979023666,"y":34143.010855109475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Channel Period > 15","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >= 15","project":"Superalgos","id":"53159d45-d2aa-4faf-b9a8-b6643623a64b","savedPayload":{"position":{"x":33928.688656615435,"y":34770.10639705343},"targetPosition":{"x":34032.165449311164,"y":34500.02382991703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a3cf6274-a828-41f0-a293-8e79ecfe4e39","savedPayload":{"position":{"x":34032.165449311164,"y":34500.02382991703},"targetPosition":{"x":34169.002979023666,"y":34143.010855109475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7f47a98b-6d2e-40e4-8105-82a9fa301600","savedPayload":{"position":{"x":34168.54952503468,"y":34143.15516902314},"targetPosition":{"x":33933.26518479808,"y":33614.48891481997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"24H Previous Previous Up","project":"Superalgos","conditions":[{"type":"Condition","name":"24H %B MA < 70 || 12H %B MA < 40","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.movingAverage <= 70 || \nchart.at12hs.percentageBandwidth.movingAverage <= 40","project":"Superalgos","id":"52ec70e3-9089-4cba-beb3-c8310ab966b5","savedPayload":{"position":{"x":33803.95639019715,"y":34729.793324344035},"targetPosition":{"x":33714.83955732108,"y":34455.055258479304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9bb204df-4376-4a7d-996f-8e41d75f49c3","savedPayload":{"position":{"x":33714.83955732108,"y":34455.055258479304},"targetPosition":{"x":33593.91597300338,"y":34082.64917575815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Previous Previous Up","code":"chart.at24hs.candlesProbability.begin > chart.at24hs.candlesProbability.begin","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","project":"Superalgos","id":"a18dfaba-685b-4ac6-8435-211bb8d59f2b","savedPayload":{"position":{"x":33383.90675997831,"y":34729.74636883433},"targetPosition":{"x":33473.14054021963,"y":34454.780562322776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b9ddf58a-89b4-4fec-899a-ab905e97234a","savedPayload":{"position":{"x":33473.14054021963,"y":34454.780562322776},"targetPosition":{"x":33593.91597300338,"y":34082.64917575815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","project":"Superalgos","id":"1d3956c4-c13a-414f-86ce-49acc5557ebe","savedPayload":{"position":{"x":33043.683298094016,"y":34482.82361867606},"targetPosition":{"x":33277.49448884848,"y":34312.773263782045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ee9eaf68-0a23-45a3-8aaf-42b97ebf4584","savedPayload":{"position":{"x":33277.49448884848,"y":34312.773263782045},"targetPosition":{"x":33593.91597300338,"y":34082.64917575815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Channel Period > 5","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >= 5","project":"Superalgos","id":"4f684afd-4c77-42b0-8b2b-64994ab95e09","savedPayload":{"position":{"x":32913.268782662584,"y":34083.15345445898},"targetPosition":{"x":33203.00955030503,"y":34082.87579428281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5ca55797-a76b-4be7-921d-bdd84773a407","savedPayload":{"position":{"x":33203.00955030503,"y":34082.87579428281},"targetPosition":{"x":33593.91597300338,"y":34082.64917575815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"73890378-cc74-4c04-8e2b-e467429bcdb5","savedPayload":{"position":{"x":33593.18411199604,"y":34082.85632137883},"targetPosition":{"x":33933.26518479808,"y":33614.48891481997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"41a619aa-ca95-4184-a651-0fdfced33f96","savedPayload":{"position":{"x":33362.72917121497,"y":46302.077876456664},"targetPosition":{"x":33478.99186356516,"y":45944.30620698363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"c51fe1c0-ac69-4b35-913f-76e24ee4c4b2","savedPayload":{"position":{"x":33478.99186356516,"y":45944.30620698363},"targetPosition":{"x":33227.5835281625,"y":45665.11871160152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P4: MA - 3 Deviations","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - \nchart.at01hs.bollingerBand.deviation * 3 > 1) \n{chart.at01hs.bollingerBand.movingAverage - \nchart.at01hs.bollingerBand.deviation * 3} \nelse {tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"d1425de3-3c9f-4b1a-a3ad-b5b2a604f857","savedPayload":{"position":{"x":34098.3981759634,"y":46145.51649970157},"targetPosition":{"x":33730.52149260439,"y":46223.62142522518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"24H Previous Oversold","project":"Superalgos","conditions":[{"type":"Condition","name":"24H Previous %B < 20","code":"chart.at24hs.candlesProbability.begin > chart.at24hs.candlesProbability.begin","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.previous.movingAverage <= 20","project":"Superalgos","id":"1ff4ea62-15ff-4409-9e8c-0c5576958be6","savedPayload":{"position":{"x":35438.85778349233,"y":34368.52598426875},"targetPosition":{"x":35150.697137912044,"y":34383.479587424314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"13f09ae8-9b15-4e6a-be3c-d0745b7252a3","savedPayload":{"position":{"x":35150.697137912044,"y":34383.479587424314},"targetPosition":{"x":34766.018595837064,"y":34403.569664297844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":" chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","project":"Superalgos","id":"90d32cba-ec65-4a52-a96a-02e5436b790e","savedPayload":{"position":{"x":35329.56452801823,"y":34769.33685051033},"targetPosition":{"x":35086.826809331826,"y":34611.774176103485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5a58f7e1-75da-4e8f-a4c5-185a59e8c938","savedPayload":{"position":{"x":35086.826809331826,"y":34611.774176103485},"targetPosition":{"x":34766.018595837064,"y":34403.569664297844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Channel Period > 10","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >=10","project":"Superalgos","id":"fff48225-fa90-4ed5-aca8-4ae98a55e135","savedPayload":{"position":{"x":35006.211596601795,"y":35028.548240877484},"targetPosition":{"x":34902.39129465605,"y":34758.39220722437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e01c18f1-b9f7-4cc7-91be-6d18c3168f13","savedPayload":{"position":{"x":34902.39129465605,"y":34758.39220722437},"targetPosition":{"x":34766.018595837064,"y":34403.569664297844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H EMA 20 > 50 or Convergence","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.popularEMA.ema20 > chart.at01hs.popularEMA.ema50 || \n(chart.at01hs.popularEMA.ema50 - chart.at01hs.popularEMA.ema20 < \nchart.at01hs.popularEMA.previous.ema50 - chart.at01hs.popularEMA.previous.ema20 && \nchart.at01hs.popularEMA.previous.ema50 - chart.at01hs.popularEMA.previous.ema20 < chart.at01hs.popularEMA.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.ema20 && \nchart.at01hs.popularEMA.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.ema20 < \nchart.at01hs.popularEMA.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.ema20 && \nchart.at01hs.popularEMA.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.ema20 < \nchart.at01hs.popularEMA.previous.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.previous.ema20 && \nchart.at01hs.popularEMA.previous.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.previous.ema20 < \nchart.at01hs.popularEMA.previous.previous.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.previous.previous.ema20)\n","project":"Superalgos","id":"7ee960b5-be23-4649-92ca-fc4ea5adc99b","savedPayload":{"position":{"x":34618.50997753077,"y":35039.35595821752},"targetPosition":{"x":34668.034806124786,"y":34770.879083155814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4262c963-84df-44ba-ac06-7ecb331ba24d","savedPayload":{"position":{"x":34668.034806124786,"y":34770.879083155814},"targetPosition":{"x":34766.018595837064,"y":34403.569664297844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"186df69f-9a0d-49af-9394-0dbd05f18628","savedPayload":{"position":{"x":32523.1052310591,"y":34936.08368585874},"targetPosition":{"x":32464.44425282173,"y":34548.525999435704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"24H Previous Previous Up","project":"Superalgos","conditions":[{"type":"Condition","name":"24H Previous Previous Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","project":"Superalgos","id":"d08197af-2643-4f8c-83ac-8eb33a9ff474","savedPayload":{"position":{"x":34881.10628730355,"y":35002.3587014557},"targetPosition":{"x":34665.293835276454,"y":34807.98453818294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"750174f5-0953-4204-bb06-9f68030e9185","savedPayload":{"position":{"x":34665.293835276454,"y":34807.98453818294},"targetPosition":{"x":34341.87807865043,"y":34516.671242134544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","project":"Superalgos","id":"9d8a9727-239e-42db-952a-7c04e065ffca","savedPayload":{"position":{"x":34492.07789422037,"y":35223.54180533432},"targetPosition":{"x":34432.03784351028,"y":34940.91516130275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f42f3843-bf81-4782-b129-f06e98f354d8","savedPayload":{"position":{"x":34432.03784351028,"y":34940.91516130275},"targetPosition":{"x":34341.87807865043,"y":34516.671242134544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Channel Period > 5","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >=5","project":"Superalgos","id":"99b3c782-ecb4-43ca-9624-962220c38981","savedPayload":{"position":{"x":34047.51092189819,"y":35178.94058123221},"targetPosition":{"x":34164.8827595547,"y":34914.839951087575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0fdfb277-cfa0-4fc6-aee9-db2cc997b208","savedPayload":{"position":{"x":34164.8827595547,"y":34914.839951087575},"targetPosition":{"x":34341.87807865043,"y":34516.671242134544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H %B < 60 || 12H %B < 30","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.movingAverage <= 60 || \nchart.at12hs.percentageBandwidth.movingAverage <= 30","project":"Superalgos","id":"90331db7-a6e8-47a6-be28-4e679b728ce3","savedPayload":{"position":{"x":33718.42637668107,"y":34877.31851705635},"targetPosition":{"x":33968.66436427911,"y":34732.52878021475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ef2973eb-d707-41cc-b492-96dbf5215de1","savedPayload":{"position":{"x":33968.66436427911,"y":34732.52878021475},"targetPosition":{"x":34341.87807865043,"y":34516.671242134544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"91020a9c-998e-407c-94f1-774941d9033c","savedPayload":{"position":{"x":32234.42401766186,"y":34865.26689774926},"targetPosition":{"x":32464.44425282173,"y":34548.525999435704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"25% Target","project":"Superalgos","conditions":[{"type":"Condition","name":"25% Target","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close <= tradingEngine.current.position.entryTargetRate.value * 0.8","project":"Superalgos","id":"a8a904a9-cbf3-40cb-89ef-8066d65fe443","savedPayload":{"position":{"x":31468.97395445377,"y":34707.030262436165},"targetPosition":{"x":31661.100138028563,"y":34676.29961714636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b841c21b-789a-49bf-b959-f91613e089a8","savedPayload":{"position":{"x":31661.100138028563,"y":34676.29961714636},"targetPosition":{"x":32083.458924250892,"y":34609.14110348126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"66105054-6e57-4aec-ada2-14054981fd68","savedPayload":{"position":{"x":32078.076952036678,"y":34609.79700541204},"targetPosition":{"x":32464.44425282173,"y":34548.525999435704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"830013bf-e507-4960-9742-1a9b8ffdd16a","savedPayload":{"position":{"x":33614.34237142739,"y":46581.46235200472},"targetPosition":{"x":33730.52149260439,"y":46223.62142522518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"b30e4c2c-fe06-4217-af5a-5c728463388a","savedPayload":{"position":{"x":33730.52149260439,"y":46223.62142522518},"targetPosition":{"x":33478.99186356516,"y":45944.30620698363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P5: MA - 1.5 Deviations","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - \nchart.at01hs.bollingerBand.deviation * 1.5 > 1) \n{chart.at01hs.bollingerBand.movingAverage - \nchart.at01hs.bollingerBand.deviation * 1.5} \nelse {tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"b04ad21c-bd81-401e-8b70-c158ab668f66","savedPayload":{"position":{"x":34349.92707351712,"y":46424.94228386499},"targetPosition":{"x":33982.12778260721,"y":46503.02505246553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"24H Previous Oversold","project":"Superalgos","conditions":[{"type":"Condition","name":"24H Previous MA < 10","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.previous.movingAverage <= 10","project":"Superalgos","id":"7637580c-cda0-4056-ad4a-de67510050fa","savedPayload":{"position":{"x":35906.07235087816,"y":34707.73663005332},"targetPosition":{"x":35616.26402316763,"y":34722.7519323961},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ecaa9841-49d1-45da-8249-17e373c7d662","savedPayload":{"position":{"x":35616.26402316763,"y":34722.7519323961},"targetPosition":{"x":35234.62284750796,"y":34742.63823668889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","project":"Superalgos","id":"f6f6d914-5813-4389-b29e-6c7edc4927e0","savedPayload":{"position":{"x":35798.11721142213,"y":35108.46689059539},"targetPosition":{"x":35555.518077569206,"y":34950.95746370827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9fb9d04e-da7e-45a8-af44-e87d65e5650f","savedPayload":{"position":{"x":35555.518077569206,"y":34950.95746370827},"targetPosition":{"x":35234.62284750796,"y":34742.63823668889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Channel Period > 10","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >=10","project":"Superalgos","id":"a08871c1-b85d-4afc-9480-7eeca7598dd1","savedPayload":{"position":{"x":35475.533526060906,"y":35369.877232070416},"targetPosition":{"x":35371.70206322763,"y":35099.495184961954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1dcf89ef-e3e3-4d6e-bbfb-16ccdeeec348","savedPayload":{"position":{"x":35371.70206322763,"y":35099.495184961954},"targetPosition":{"x":35234.62284750796,"y":34742.63823668889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H EMA 20 > 50 or Convergence","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.popularEMA.ema20 > chart.at01hs.popularEMA.ema50 || (chart.at01hs.popularEMA.ema50 - chart.at01hs.popularEMA.ema20 < chart.at01hs.popularEMA.previous.ema50 - chart.at01hs.popularEMA.previous.ema20 && chart.at01hs.popularEMA.previous.ema50 - chart.at01hs.popularEMA.previous.ema20 < chart.at01hs.popularEMA.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.ema20 && chart.at01hs.popularEMA.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.ema20 < chart.at01hs.popularEMA.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.ema20 && chart.at01hs.popularEMA.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.ema20 < chart.at01hs.popularEMA.previous.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.previous.ema20 && chart.at01hs.popularEMA.previous.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.previous.ema20 < chart.at01hs.popularEMA.previous.previous.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.previous.previous.ema20)","project":"Superalgos","id":"5dc14b5f-4a07-413a-83ac-7c57eb96a8d3","savedPayload":{"position":{"x":35061.34220429458,"y":35391.844145127936},"targetPosition":{"x":35136.074311464334,"y":35111.80141936694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8a062525-23e1-48dc-83c1-c0cec0e30907","savedPayload":{"position":{"x":35136.074311464334,"y":35111.80141936694},"targetPosition":{"x":35234.62284750796,"y":34742.63823668889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f3086330-375a-4871-a7a8-f12b0543f1c3","savedPayload":{"position":{"x":33756.481012803495,"y":46885.621474164975},"targetPosition":{"x":33582.28757239752,"y":46544.22110866073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"24H Previous Previous Up","project":"Superalgos","conditions":[{"type":"Condition","name":"24H Previous Previous Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","project":"Superalgos","id":"aca8f925-5511-4d06-92bb-29b637072f66","savedPayload":{"position":{"x":35321.53799405785,"y":35329.26883653065},"targetPosition":{"x":35099.337780894326,"y":35129.119431934945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d0ff1bab-8072-4dab-97b8-69d3cb9d0d48","savedPayload":{"position":{"x":35099.337780894326,"y":35129.119431934945},"targetPosition":{"x":34810.36087141862,"y":34868.72848079784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H %B < 50 || 12H %B < 17.5","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.movingAverage <= 50 || \nchart.at12hs.percentageBandwidth.movingAverage <= 17.5","project":"Superalgos","id":"7673df58-3326-4d28-9005-47214b0f05c0","savedPayload":{"position":{"x":34949.78529694408,"y":35524.2744694647},"targetPosition":{"x":34889.49051228405,"y":35240.505391745406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5435a45d-891a-4456-8521-6587003fb171","savedPayload":{"position":{"x":34889.49051228405,"y":35240.505391745406},"targetPosition":{"x":34810.36087141862,"y":34868.72848079784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","project":"Superalgos","id":"4eadea14-f412-4849-b3f6-187e72b13bd8","savedPayload":{"position":{"x":34538.446687001146,"y":35480.725877918725},"targetPosition":{"x":34655.963101831025,"y":35216.207368805524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a94adefc-e6c3-4531-ab91-84d23096900a","savedPayload":{"position":{"x":34655.963101831025,"y":35216.207368805524},"targetPosition":{"x":34810.36087141862,"y":34868.72848079784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Channel Period > 5","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >=5","project":"Superalgos","id":"c69a88a9-be56-4dd6-88d9-c360b06fa501","savedPayload":{"position":{"x":34231.00541914165,"y":35204.1084378667},"targetPosition":{"x":34481.524843718136,"y":35059.062255157245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fe46196d-b481-4b9f-8908-43b5e7094d7f","savedPayload":{"position":{"x":34481.524843718136,"y":35059.062255157245},"targetPosition":{"x":34810.36087141862,"y":34868.72848079784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"80b47c3e-843a-43f5-8f74-5d2a437457fc","savedPayload":{"position":{"x":33464.06057725776,"y":46909.00306848872},"targetPosition":{"x":33582.28757239752,"y":46544.22110866073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"66% Target","project":"Superalgos","conditions":[{"type":"Condition","name":"66% Target","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close <= tradingEngine.current.position.entryTargetRate.value * 0.6","project":"Superalgos","id":"8a74b52a-5fc5-4ed0-85a3-4092e474081c","savedPayload":{"position":{"x":31626.08740422069,"y":35059.2731303153},"targetPosition":{"x":31818.03591196791,"y":35028.62532016897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f27c3841-bbe5-40a0-81e1-031db8512b53","savedPayload":{"position":{"x":31818.03591196791,"y":35028.62532016897},"targetPosition":{"x":32240.541212443826,"y":34961.49110452969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ff1379fd-2b18-4c17-b69b-5aed7bffc5c9","savedPayload":{"position":{"x":33240.70992859596,"y":46718.205224815145},"targetPosition":{"x":33582.28757239752,"y":46544.22110866073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"5e8f7f0f-0a93-4f9d-ac7c-da2b53d38919","savedPayload":{"position":{"x":33865.99048450286,"y":46860.80983700097},"targetPosition":{"x":33982.12778260721,"y":46503.02505246553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"ac38aa6f-c935-4bd3-90f5-69163e3f23ac","savedPayload":{"position":{"x":33982.12778260721,"y":46503.02505246553},"targetPosition":{"x":33730.52149260439,"y":46223.62142522518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P6: Lower Band","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"5a0e05fc-2b96-46dd-b913-fa10420404c0","savedPayload":{"position":{"x":34485.230108978336,"y":47061.76186402452},"targetPosition":{"x":34233.75171359939,"y":46782.464880138665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"9dc858f9-63b4-48a4-bcfc-5cee9a7219b4","savedPayload":{"position":{"x":34233.75171359939,"y":46782.464880138665},"targetPosition":{"x":33982.12778260721,"y":46503.02505246553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"116048c4-81d3-469d-842c-390bb32de8ce","savedPayload":{"position":{"x":31786.639470129536,"y":31318.62211889439},"targetPosition":{"x":31585.900288221877,"y":31095.67867125117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"7c129ba3-8e7d-422a-9e40-d3a362b2f251","savedPayload":{"position":{"x":31585.900288221877,"y":31095.67867125117},"targetPosition":{"x":31300.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"3d3dc6e9-d5c3-405d-bea2-ff0867368e87","savedPayload":{"position":{"x":32347.695683534817,"y":31304.982586213315},"targetPosition":{"x":32049.339114924336,"y":31336.341125193612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"93fa6d49-ec93-4df0-aa39-0e41982a794a","savedPayload":{"position":{"x":32049.339114924336,"y":31336.341125193612},"targetPosition":{"x":31750.982546313855,"y":31367.69966417391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value - tradingEngine.current.strategyOpenStage.stageQuotedAsset.feesPaid.value","project":"Superalgos","id":"6e98a177-0236-4e1c-8d32-7c67df342fac","savedPayload":{"position":{"x":32103.65369768934,"y":31853.109860798875},"targetPosition":{"x":31927.318122001598,"y":31610.404762486392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"85c5712b-61bc-4eaf-92a9-4fdacd110f85","savedPayload":{"position":{"x":31927.318122001598,"y":31610.404762486392},"targetPosition":{"x":31750.982546313855,"y":31367.69966417391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4cd64320-79e3-4a06-a892-02756d235dbe","savedPayload":{"position":{"x":31750.982546313855,"y":31367.69966417391},"targetPosition":{"x":31476.918909021075,"y":31245.67867125117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Quick Exit","config":"{\n\"percentageOfAlgorithmSize\": 100,\n\"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"142e80e8-6ef4-443c-91c2-96e0a2041523","savedPayload":{"position":{"x":31974.915568296467,"y":35237.07162975067},"targetPosition":{"x":31912.53566221539,"y":34941.80280142659},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2e4205ca-82db-4481-a5f9-8bd3d3619eac","savedPayload":{"position":{"x":31912.53566221539,"y":34941.80280142659},"targetPosition":{"x":31850.070901753486,"y":34646.434678903985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4067e6b8-f217-4094-a02f-4da7014704a1","savedPayload":{"position":{"x":31850.070901753486,"y":34646.434678903985},"targetPosition":{"x":31783.100593705563,"y":34329.47822661052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"092bc2da-ac37-407f-8e2f-6492ae11502c","savedPayload":{"position":{"x":31784.16231380583,"y":32246.100926238854},"targetPosition":{"x":31760.64340957061,"y":32022.333499780994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3b1d6016-48ec-4460-8200-30bc40049643","savedPayload":{"position":{"x":31760.64340957061,"y":32022.333499780994},"targetPosition":{"x":31737.12450533539,"y":31798.566073323134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"f46a0d35-2aea-47d3-96c9-ec3e063c5168","savedPayload":{"position":{"x":31737.12450533539,"y":31798.566073323134},"targetPosition":{"x":31713.605601100167,"y":31574.798646865274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13f97380-5bfb-4f7d-a690-ffefb67fdfb9","savedPayload":{"position":{"x":31508.277448001372,"y":31544.035239861652},"targetPosition":{"x":31476.918909021075,"y":31245.67867125117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"bdaf22d5-ad3a-43e4-8a9e-848b8f32eff4","savedPayload":{"position":{"x":31476.918909021075,"y":31245.67867125117},"targetPosition":{"x":31300.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a5f437d-1a17-4619-95e6-925b7686c87c","savedPayload":{"position":{"x":31300.583333333332,"y":31002.97357293869},"targetPosition":{"x":31000.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading Strategy","name":"Xtreme","project":"Superalgos","triggerStage":{"type":"Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"Xtreme","project":"Superalgos","conditions":[{"type":"Condition","name":"3 Closes Below MA","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage && \nchart.at01hs.candle.previous.close < chart.at01hs.bollingerBand.previous.movingAverage && \nchart.at01hs.candle.previous.previous.close < chart.at01hs.bollingerBand.previous.previous.movingAverage","project":"Superalgos","id":"afc33e4f-53e2-4106-83c3-9efa7e7bebc5","savedPayload":{"position":{"x":31064.397153800885,"y":31895.966461792745},"targetPosition":{"x":30915.6342480905,"y":31876.74153306458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0f055de8-0eb0-4a8c-aea8-0acc7480ac6c","savedPayload":{"position":{"x":30915.6342480905,"y":31876.74153306458},"targetPosition":{"x":30618.10843666973,"y":31838.291675608252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Breakdown","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"34bd2c52-c5aa-4e69-9b82-414008ee0b80","savedPayload":{"position":{"x":31030.07045998346,"y":32019.364289073834},"targetPosition":{"x":30892.74978554555,"y":31959.006751251974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4ccae6ab-5911-4e5b-aa69-57e157a5acf9","savedPayload":{"position":{"x":30892.74978554555,"y":31959.006751251974},"targetPosition":{"x":30618.10843666973,"y":31838.291675608252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"527f0ba5-4997-44c4-94d8-095c7b3d869e","savedPayload":{"position":{"x":30962.36905306965,"y":32128.09269009224},"targetPosition":{"x":30847.615514269677,"y":32031.49235193091},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bfed975b-1086-4648-b900-2c493bcd2278","savedPayload":{"position":{"x":30847.615514269677,"y":32031.49235193091},"targetPosition":{"x":30618.10843666973,"y":31838.291675608252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Deviation > 200","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 200","project":"Superalgos","id":"56266555-5754-48e1-be35-51840b451a61","savedPayload":{"position":{"x":30866.777698411835,"y":32213.343136430147},"targetPosition":{"x":30783.8879444978,"y":32088.325982822847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ca52539f-eab7-4867-80a9-4c03295df977","savedPayload":{"position":{"x":30783.8879444978,"y":32088.325982822847},"targetPosition":{"x":30618.10843666973,"y":31838.291675608252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Candle Size < 750","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.max - chart.at01hs.candle.min < 750","project":"Superalgos","id":"63b99ed2-4919-4262-aa74-ca9de1f83e0a","savedPayload":{"position":{"x":30751.040639060717,"y":32268.209143929183},"targetPosition":{"x":30706.729904930387,"y":32124.90332115554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"04132e51-a148-4e3b-a41a-d47deaa5113d","savedPayload":{"position":{"x":30706.729904930387,"y":32124.90332115554},"targetPosition":{"x":30618.10843666973,"y":31838.291675608252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Deviation < 1000","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation < 1000","project":"Superalgos","id":"5de63c96-ba0b-4329-8f5d-36414ecec5f3","savedPayload":{"position":{"x":30624.534203250132,"y":32288.245794962495},"targetPosition":{"x":30622.392281056666,"y":32138.26108851108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"206f98c9-6ebc-47bf-97f9-7a2369cf2a20","savedPayload":{"position":{"x":30622.392281056666,"y":32138.26108851108},"targetPosition":{"x":30618.10843666973,"y":31838.291675608252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Not Completly Oversold","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.percentageBandwidth.movingAverage >= 30 || \nchart.at03hs.percentageBandwidth.movingAverage >= 30 || \nchart.at04hs.percentageBandwidth.movingAverage >= 30 || \nchart.at06hs.percentageBandwidth.movingAverage >= 30 || \nchart.at08hs.percentageBandwidth.movingAverage >= 30","project":"Superalgos","id":"09a75c6c-1d70-4826-9926-b65c58db8ec9","savedPayload":{"position":{"x":30497.50719004671,"y":32271.829839225913},"targetPosition":{"x":30537.707605587715,"y":32127.317118020026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e5cc491c-ca57-4138-8c28-9b0f3aa706d7","savedPayload":{"position":{"x":30537.707605587715,"y":32127.317118020026},"targetPosition":{"x":30618.10843666973,"y":31838.291675608252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"if (chart.at01hs.bollingerSubChannel.slope != \"Extreme\") {true} else {if (chart.at01hs.bollingerSubChannel.period <=7) {true} else {false}}","project":"Superalgos","id":"67f3557c-8ecd-46bc-afbc-433af0bc47de","savedPayload":{"position":{"x":30380.25057260145,"y":32220.29119982376},"targetPosition":{"x":30459.536527290875,"y":32092.95802508526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f9dbefdb-09bf-4d90-964f-35b02cde3ce4","savedPayload":{"position":{"x":30459.536527290875,"y":32092.95802508526},"targetPosition":{"x":30618.10843666973,"y":31838.291675608252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H %B MA > 70","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.percentageBandwidth.movingAverage >= 70 || \nchart.at02hs.percentageBandwidth.previous.movingAverage >= 70 || \nchart.at02hs.percentageBandwidth.previous.previous.movingAverage >= 70 || \nchart.at02hs.percentageBandwidth.previous.previous.previous.movingAverage >= 70 || \nchart.at02hs.percentageBandwidth.previous.previous.previous.previous.movingAverage >= 70 || \nchart.at02hs.percentageBandwidth.previous.previous.previous.previous.previous.movingAverage >= 70","project":"Superalgos","id":"3e758bbf-798d-4350-b600-f66e65b79a94","savedPayload":{"position":{"x":30282.263784707815,"y":32137.805230808317},"targetPosition":{"x":30394.212002028453,"y":32037.967379074962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d4c531a6-e637-4fd8-a2b8-b8b248bf4a0a","savedPayload":{"position":{"x":30394.212002028453,"y":32037.967379074962},"targetPosition":{"x":30618.10843666973,"y":31838.291675608252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Deviation > 2000","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerBand.deviation > 2000","project":"Superalgos","id":"6dc8d475-f68f-4405-8418-5869e7ca3785","savedPayload":{"position":{"x":30211.485133171085,"y":32031.054454826262},"targetPosition":{"x":30347.0262343373,"y":31966.800195086926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"445f4ffc-bac0-44f2-9441-cf01424fd36e","savedPayload":{"position":{"x":30347.0262343373,"y":31966.800195086926},"targetPosition":{"x":30618.10843666973,"y":31838.291675608252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8a5bd03d-6958-4fd0-bd5d-84afb04a6bed","savedPayload":{"position":{"x":30618.10843666973,"y":31838.291675608252},"targetPosition":{"x":30571.17809715766,"y":31541.98517342971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"b21fbf4b-4ed3-4536-93f3-531ca2700817","savedPayload":{"position":{"x":30571.17809715766,"y":31541.98517342971},"targetPosition":{"x":30524.24775764559,"y":31245.67867125117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close > chart.at01hs.bollingerBand.movingAverage","project":"Superalgos","id":"3b591e8c-1739-4466-b9f3-87be08d0db90","savedPayload":{"position":{"x":29818.90545489462,"y":32216.499064501102},"targetPosition":{"x":29995.24103058236,"y":31973.79396618862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"20b59f4c-8ec5-4be8-9d06-f1b223045e83","savedPayload":{"position":{"x":29995.24103058236,"y":31973.79396618862},"targetPosition":{"x":30171.576606270104,"y":31731.088867876137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4b8da5dc-c9d7-4794-ba8a-ad3a737f82c6","savedPayload":{"position":{"x":30171.576606270104,"y":31731.088867876137},"targetPosition":{"x":30347.912181957847,"y":31488.383769563654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"4e265461-a65e-4f61-a123-f74d32a3d14f","savedPayload":{"position":{"x":30347.912181957847,"y":31488.383769563654},"targetPosition":{"x":30524.24775764559,"y":31245.67867125117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"Xtreme","project":"Superalgos","conditions":[{"type":"Condition","name":"3 Closes Below MA","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage && \nchart.at01hs.candle.previous.close < chart.at01hs.bollingerBand.previous.movingAverage && \nchart.at01hs.candle.previous.previous.close < chart.at01hs.bollingerBand.previous.previous.movingAverage","project":"Superalgos","id":"88151639-ba25-411f-ab3a-8e002e9948f2","savedPayload":{"position":{"x":29861.239244020406,"y":31783.999103543123},"targetPosition":{"x":29884.70441377644,"y":31635.84585245385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fc0bf247-86a1-4352-a85b-a0515a158629","savedPayload":{"position":{"x":29884.70441377644,"y":31635.84585245385},"targetPosition":{"x":29931.63475328851,"y":31339.53935027531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Breakdown","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"5ce80f14-1175-4cce-8f3f-cd05977d02e8","savedPayload":{"position":{"x":29727.339028405713,"y":31740.492286160075},"targetPosition":{"x":29795.437603366645,"y":31606.84130753182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"449a1458-781c-4214-9ddc-4e268891db36","savedPayload":{"position":{"x":29795.437603366645,"y":31606.84130753182},"targetPosition":{"x":29931.63475328851,"y":31339.53935027531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"660a8819-2e1b-46f9-b8ff-0f07b772ffb7","savedPayload":{"position":{"x":29613.436701754563,"y":31657.737401809256},"targetPosition":{"x":29719.502718932545,"y":31551.671384631274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b9a2cd43-d129-444e-9684-04ba93aa939e","savedPayload":{"position":{"x":29719.502718932545,"y":31551.671384631274},"targetPosition":{"x":29931.63475328851,"y":31339.53935027531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Deviation > 200","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 200","project":"Superalgos","id":"9d354242-8f6f-4dd4-8488-f453699caf51","savedPayload":{"position":{"x":29530.681817403743,"y":31543.835075158106},"targetPosition":{"x":29664.332796032,"y":31475.736500197174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2d429ceb-6816-4f9d-b211-4034080d39a3","savedPayload":{"position":{"x":29664.332796032,"y":31475.736500197174},"targetPosition":{"x":29931.63475328851,"y":31339.53935027531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Candle Size < 750","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.max - chart.at01hs.candle.min < 750","project":"Superalgos","id":"85a4f5bd-4255-4b8d-bb4e-62eddb053030","savedPayload":{"position":{"x":29487.175000020696,"y":31409.934859543413},"targetPosition":{"x":29635.328251109968,"y":31386.46968978738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0b3dba7b-79a2-425e-be41-0368ea2f005d","savedPayload":{"position":{"x":29635.328251109968,"y":31386.46968978738},"targetPosition":{"x":29931.63475328851,"y":31339.53935027531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Deviation < 1000","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation < 1000","project":"Superalgos","id":"89150469-6c19-4781-8c80-f3ac0728d734","savedPayload":{"position":{"x":29487.175000020696,"y":31269.143841007208},"targetPosition":{"x":29635.328251109968,"y":31292.60901076324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c27245cb-4562-4e8b-8cd2-171427de3d04","savedPayload":{"position":{"x":29635.328251109968,"y":31292.60901076324},"targetPosition":{"x":29931.63475328851,"y":31339.53935027531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Not Completly Oversold","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.percentageBandwidth.movingAverage >= 30 || \nchart.at03hs.percentageBandwidth.movingAverage >= 30 || \nchart.at04hs.percentageBandwidth.movingAverage >= 30 || \nchart.at06hs.percentageBandwidth.movingAverage >= 30 || \nchart.at08hs.percentageBandwidth.movingAverage >= 30","project":"Superalgos","id":"72d449b1-2eaf-449c-b4c2-7e54165620e4","savedPayload":{"position":{"x":29530.681817403743,"y":31135.243625392515},"targetPosition":{"x":29664.332796032,"y":31203.342200353447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"72c0840a-0162-4fb5-8fe0-1043a3500942","savedPayload":{"position":{"x":29664.332796032,"y":31203.342200353447},"targetPosition":{"x":29931.63475328851,"y":31339.53935027531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"if (chart.at01hs.bollingerSubChannel.slope != \"Extreme\") {true} else {if (chart.at01hs.bollingerSubChannel.period <=7) {true} else {false}}","project":"Superalgos","id":"fd550ee5-bb66-4475-9712-165aff7123a2","savedPayload":{"position":{"x":29613.436701754563,"y":31021.341298741365},"targetPosition":{"x":29719.502718932545,"y":31127.407315919347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"27abcda3-5917-4345-b070-f506dd03d511","savedPayload":{"position":{"x":29719.502718932545,"y":31127.407315919347},"targetPosition":{"x":29931.63475328851,"y":31339.53935027531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H %B MA > 70","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.percentageBandwidth.movingAverage >= 70 || \nchart.at02hs.percentageBandwidth.previous.movingAverage >= 70 || \nchart.at02hs.percentageBandwidth.previous.previous.movingAverage >= 70 || \nchart.at02hs.percentageBandwidth.previous.previous.previous.movingAverage >= 70 || \nchart.at02hs.percentageBandwidth.previous.previous.previous.previous.movingAverage >= 70 || \nchart.at02hs.percentageBandwidth.previous.previous.previous.previous.previous.movingAverage >= 70","project":"Superalgos","id":"ae35fa99-f82e-421d-9df7-695e52a2dbe3","savedPayload":{"position":{"x":29727.339028405713,"y":30938.586414390546},"targetPosition":{"x":29795.437603366645,"y":31072.2373930188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"055aec39-19b4-4001-8c7e-4e9d0b46a41d","savedPayload":{"position":{"x":29795.437603366645,"y":31072.2373930188},"targetPosition":{"x":29931.63475328851,"y":31339.53935027531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"935320b2-9c4b-4f95-a23b-eca780f9968e","savedPayload":{"position":{"x":29931.63475328851,"y":31339.53935027531},"targetPosition":{"x":30227.94125546705,"y":31292.60901076324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9473e9a0-df49-4111-aeb3-c3398a2cca06","savedPayload":{"position":{"x":30227.94125546705,"y":31292.60901076324},"targetPosition":{"x":30524.24775764559,"y":31245.67867125117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"7653910c-4637-4b93-909a-934356164e61","savedPayload":{"position":{"x":30524.24775764559,"y":31245.67867125117},"targetPosition":{"x":30700.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"openStage":{"type":"Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"My Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"20253ca8-c331-4d15-83dd-3615e5b3bd94","savedPayload":{"position":{"x":29853.493253701778,"y":31733.40522647004},"targetPosition":{"x":29900.273384135773,"y":31513.322016304934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2d8b919-87fd-4d37-86b7-7c1e7d6268ff","savedPayload":{"position":{"x":29900.273384135773,"y":31513.322016304934},"targetPosition":{"x":29947.05351456977,"y":31293.238806139827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.episodeBaseAsset.balance.value","project":"Superalgos","id":"a90e0c3d-a8f5-4cce-a763-2cc1a0d64502","savedPayload":{"position":{"x":29519.078082236952,"y":31432.296453608553},"targetPosition":{"x":29733.06579840336,"y":31362.76762987419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1f3a30b8-30b5-46e9-b8b7-1ceb4bf80aae","savedPayload":{"position":{"x":29733.06579840336,"y":31362.76762987419},"targetPosition":{"x":29947.05351456977,"y":31293.238806139827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"82010f4f-3614-4bdc-8c40-4d99e9e31312","savedPayload":{"position":{"x":30214.52719653713,"y":31318.62211889439},"targetPosition":{"x":30415.266378444787,"y":31095.67867125117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Quick Entry","config":"{\n\"percentageOfAlgorithmSize\": 100\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"1fe7e332-45dd-45c0-b106-63cdaea4bed4","savedPayload":{"position":{"x":28557.025429844765,"y":30798.570307369446},"targetPosition":{"x":28777.108640009872,"y":30845.35043780344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f2f65162-a972-4815-885c-a82298951d0b","savedPayload":{"position":{"x":28777.108640009872,"y":30845.35043780344},"targetPosition":{"x":28997.19185017498,"y":30892.130568237437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0662db35-3b83-4fad-be6c-aed4105f1804","savedPayload":{"position":{"x":28997.19185017498,"y":30892.130568237437},"targetPosition":{"x":29217.275060340085,"y":30938.910698671432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"8c738920-803e-4d81-81d7-f08f9d94d4b6","savedPayload":{"position":{"x":29217.275060340085,"y":30938.910698671432},"targetPosition":{"x":29437.358270505192,"y":30985.690829105428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4d78477-d485-45cc-ba6e-d97c76cf7dcc","savedPayload":{"position":{"x":29437.358270505192,"y":30985.690829105428},"targetPosition":{"x":29657.4414806703,"y":31032.470959539423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"8243f9c5-daa7-4793-9752-ade0c6dc895a","savedPayload":{"position":{"x":29657.4414806703,"y":31032.470959539423},"targetPosition":{"x":29877.524690835406,"y":31079.25108997342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"a2395358-86a8-43ae-8473-fd8bc36631b7","savedPayload":{"position":{"x":30121.822098224646,"y":31033.305164005844},"targetPosition":{"x":30415.266378444787,"y":31095.67867125117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"17b1363e-f9cb-4a68-bb06-666749e377e9","savedPayload":{"position":{"x":30415.266378444787,"y":31095.67867125117},"targetPosition":{"x":30700.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 1.03","project":"Superalgos","id":"2477d7a0-e2ef-4f98-8859-c9abdd65f330","savedPayload":{"position":{"x":29490.233894937886,"y":31092.030572768697},"targetPosition":{"x":29657.4414806703,"y":30941.476186337954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"shortcutKey":"q"}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Close Below 5%","code":"chart.at24hs.candlesProbability.begin > chart.at24hs.candlesProbability.begin","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < tradingEngine.current.position.entryTargetRate.value * 0.95","project":"Superalgos","id":"aa5d897c-69c4-4c32-a25d-76662d7e110f","savedPayload":{"position":{"x":27425.258194670652,"y":45535.24916029425},"targetPosition":{"x":27768.98203876626,"y":45423.54060934078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac91438d-54f6-4de5-bd93-2414037fd447","savedPayload":{"position":{"x":27768.98203876626,"y":45423.54060934078},"targetPosition":{"x":28112.91699616585,"y":45311.73498374794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ba1814d0-9aac-443f-8ce8-9f19e860b532","savedPayload":{"position":{"x":28112.91699616585,"y":45311.73498374794},"targetPosition":{"x":28466.58509111351,"y":45196.72245376765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"784ae520-1c92-4923-b9b1-b3da21840959","savedPayload":{"position":{"x":29443.45376450389,"y":30871.94736260359},"targetPosition":{"x":29657.4414806703,"y":30941.476186337954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"48832805-7cb3-4fe7-b465-5e20cb5393ce","savedPayload":{"position":{"x":29657.4414806703,"y":30941.476186337954},"targetPosition":{"x":29877.524690835406,"y":30894.696055903958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P1: Trailing 4% Above MA","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 1.04 < tradingEngine.current.position.stopLoss.value) \n{chart.at01hs.bollingerBand.movingAverage * 1.04} \nelse {tradingEngine.current.position.stopLoss.value}","project":"Superalgos","id":"1348c680-76ae-4766-bb6d-b8885b8b976c","savedPayload":{"position":{"x":29217.275060340085,"y":31035.036447205945},"targetPosition":{"x":29437.358270505192,"y":30988.25631677195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"b65434d1-738d-4df6-9b40-cb3674874299","savedPayload":{"position":{"x":29437.358270505192,"y":30988.25631677195},"targetPosition":{"x":29657.4414806703,"y":30941.476186337954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e0588afd-77c9-41e2-9ba3-6ad4661b299e","savedPayload":{"position":{"x":30121.822098224646,"y":30972.641981871533},"targetPosition":{"x":30415.266378444787,"y":30910.268474626206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"P 1","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01hs.bollingerBand.movingAverage * 0.6","project":"Superalgos","id":"da970219-d04e-4e81-b13f-11206c1ac444","savedPayload":{"position":{"x":29582.511411972617,"y":30443.971930270774},"targetPosition":{"x":29796.499128139025,"y":30513.500754005137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"3H Oversold","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at03hs.percentageBandwidth.previous.movingAverage <= 10","project":"Superalgos","id":"598ad9f2-1628-484a-8064-dc02a603a76a","savedPayload":{"position":{"x":27171.17284050179,"y":44277.38328629863},"targetPosition":{"x":27524.995399182353,"y":44352.26634811338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8d0ee4a2-12bc-4397-88eb-0336f5727cc5","savedPayload":{"position":{"x":27524.995399182353,"y":44352.26634811338},"targetPosition":{"x":27878.996731799434,"y":44427.09291578291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7aec6373-83e5-49e9-a929-24793f0edf63","savedPayload":{"position":{"x":27878.996731799434,"y":44427.09291578291},"targetPosition":{"x":28242.849271172472,"y":44503.757766532915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"3H Entering Oversold","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at03hs.percentageBandwidth.movingAverage <= 30","project":"Superalgos","id":"80b84359-b9be-4edb-959f-019c7db1a646","savedPayload":{"position":{"x":27589.78952965514,"y":43667.0371013618},"targetPosition":{"x":27858.75911868714,"y":43908.747866693826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b49b85e8-3e0f-4690-81aa-63bcc653bf61","savedPayload":{"position":{"x":27858.75911868714,"y":43908.747866693826},"targetPosition":{"x":28127.88465265492,"y":44150.628750116026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"ab06f5d1-3b5b-46bb-a11f-53bdfb934128","savedPayload":{"position":{"x":28276.691511032845,"y":43444.24416533789},"targetPosition":{"x":28202.34829695753,"y":43797.158454184915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c7e3d21c-8c14-4803-baf0-993d5ea14115","savedPayload":{"position":{"x":28202.34829695753,"y":43797.158454184915},"targetPosition":{"x":28127.88465265492,"y":44150.628750116026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"66e824e8-bcb1-4d2f-b0c0-71d69c21c21d","savedPayload":{"position":{"x":28127.88465265492,"y":44150.628750116026},"targetPosition":{"x":28242.849271172472,"y":44503.757766532915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"45d39511-6b07-4481-aae9-2db4bb322f55","savedPayload":{"position":{"x":29749.71899770503,"y":30293.41754384003},"targetPosition":{"x":29796.499128139025,"y":30513.500754005137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"af39b8d4-dff2-4b71-85b8-25f18c617aca","savedPayload":{"position":{"x":29796.499128139025,"y":30513.500754005137},"targetPosition":{"x":29947.05351456977,"y":30680.70833973755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P 2","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01hs.bollingerBand.movingAverage * 0.7","project":"Superalgos","id":"6e57c877-ec29-43b0-9003-6a4bc491437b","savedPayload":{"position":{"x":29425.861531543174,"y":30393.07329870672},"targetPosition":{"x":29645.94474170828,"y":30346.293168272725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"4H Previous %B < 15","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at04hs.percentageBandwidth.previous.movingAverage <= 15","project":"Superalgos","id":"70a8d00a-b4e5-4bf7-b778-5044173db6e0","savedPayload":{"position":{"x":29842.494712090225,"y":29527.538797068857},"targetPosition":{"x":29811.742467163425,"y":29693.463062720275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"02fdb9bc-e3fe-4133-9992-33c81371e710","savedPayload":{"position":{"x":29811.742467163425,"y":29693.463062720275},"targetPosition":{"x":29780.990222236625,"y":29859.387328371693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"74c4dbfb-5dee-4404-9eda-2f93ba6fc5b5","savedPayload":{"position":{"x":29780.990222236625,"y":29859.387328371693},"targetPosition":{"x":29750.237977309826,"y":30025.31159402311},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"4H %B < 50","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at04hs.percentageBandwidth.movingAverage <= 50","project":"Superalgos","id":"0ecf3b89-510e-41e2-bb99-fca45f1ecade","savedPayload":{"position":{"x":30059.459340926707,"y":29629.344487518472},"targetPosition":{"x":29967.55150376792,"y":29770.870145859262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a9031b3b-9d32-42c7-929d-7d83f7fa0fac","savedPayload":{"position":{"x":29967.55150376792,"y":29770.870145859262},"targetPosition":{"x":29875.643666609136,"y":29912.395804200052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"6131bc6f-dacb-4247-a4fc-d18f8d204491","savedPayload":{"position":{"x":30176.35836852271,"y":29759.174010537958},"targetPosition":{"x":30026.001017565923,"y":29835.784907369005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f96a644-8447-4406-94c9-d466e0d4d7f9","savedPayload":{"position":{"x":30026.001017565923,"y":29835.784907369005},"targetPosition":{"x":29875.643666609136,"y":29912.395804200052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9253d35a-1ff4-4889-aa4c-d2d9cc495879","savedPayload":{"position":{"x":29875.643666609136,"y":29912.395804200052},"targetPosition":{"x":29750.237977309826,"y":30025.31159402311},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"ca7f0fa8-4f3b-4090-bc50-ff76e84401f2","savedPayload":{"position":{"x":29750.237977309826,"y":30025.31159402311},"targetPosition":{"x":29645.94474170828,"y":30346.293168272725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"cbc568dd-3da9-4818-8501-6c7f48b2a42e","savedPayload":{"position":{"x":29645.94474170828,"y":30346.293168272725},"targetPosition":{"x":29796.499128139025,"y":30513.500754005137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P 3","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01hs.bollingerBand.movingAverage * 0.8","project":"Superalgos","id":"b20cc025-3f64-4362-bc52-a43fa66de135","savedPayload":{"position":{"x":29275.30714511243,"y":30225.865712974308},"targetPosition":{"x":29495.390355277537,"y":30179.085582540312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"6H Previous %B < 15","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at06hs.percentageBandwidth.previous.movingAverage <= 15","project":"Superalgos","id":"ad489932-52d2-423a-bb47-db08d9934027","savedPayload":{"position":{"x":30081.982566703093,"y":29741.212795334824},"targetPosition":{"x":29925.861033258447,"y":30029.045817936934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d0a8b6d2-862f-4dc8-894f-98a147328521","savedPayload":{"position":{"x":29925.861033258447,"y":30029.045817936934},"targetPosition":{"x":29769.67527949699,"y":30317.155355532508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51dea0e4-a5b0-419e-9077-f5d60ad8e4cd","savedPayload":{"position":{"x":29769.67527949699,"y":30317.155355532508},"targetPosition":{"x":29606.13408476544,"y":30619.98028667826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"5H %B < 50","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at06hs.percentageBandwidth.movingAverage <= 50","project":"Superalgos","id":"10317b11-632c-4cbf-ad84-7ec0b75f999e","savedPayload":{"position":{"x":30429.577575658364,"y":30068.331484953793},"targetPosition":{"x":30175.548048088913,"y":30274.259859247137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8beb8b51-1353-4670-b392-b4e6c9c2cdf0","savedPayload":{"position":{"x":30175.548048088913,"y":30274.259859247137},"targetPosition":{"x":29920.95164174731,"y":30480.453049550153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"d87940c6-f532-4acd-96da-06e846214122","savedPayload":{"position":{"x":30571.65515480618,"y":30548.15562724395},"targetPosition":{"x":30246.597381910175,"y":30514.316845561003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b2b584bd-42c3-4a54-94d1-afcc2e676afc","savedPayload":{"position":{"x":30246.597381910175,"y":30514.316845561003},"targetPosition":{"x":29920.95164174731,"y":30480.453049550153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0d104bb9-af75-4f6f-97b6-9d1bbad410b3","savedPayload":{"position":{"x":29920.95164174731,"y":30480.453049550153},"targetPosition":{"x":29606.13408476544,"y":30619.98028667826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"74fa819d-43c6-44b7-8ec4-64bd97c2ce29","savedPayload":{"position":{"x":29599.68359087908,"y":29858.1040082907},"targetPosition":{"x":29495.390355277537,"y":30179.085582540312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"d909c920-b2a7-457f-96a4-1841a61b0428","savedPayload":{"position":{"x":29495.390355277537,"y":30179.085582540312},"targetPosition":{"x":29645.94474170828,"y":30346.293168272725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P 4","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01hs.bollingerBand.movingAverage * 0.85","project":"Superalgos","id":"72e1f768-6908-4402-8935-41705cb7c2e1","savedPayload":{"position":{"x":29124.752758681687,"y":30058.658127241895},"targetPosition":{"x":29344.835968846794,"y":30011.8779968079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"8H %B 0< 15 && 1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at08hs.percentageBandwidth.previous.movingAverage <= 15 && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >= 5","project":"Superalgos","id":"72c3f3e2-037a-4840-a2ac-5f682a578c14","savedPayload":{"position":{"x":29904.726860125706,"y":29343.176844799473},"targetPosition":{"x":29748.593866705738,"y":29630.97528344272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a3c4a2c7-bb79-4d9d-9a6f-bd56fc231211","savedPayload":{"position":{"x":29748.593866705738,"y":29630.97528344272},"targetPosition":{"x":29592.41263300685,"y":29918.983048129903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ea20d7db-4468-457c-b65f-a52744fb6fc5","savedPayload":{"position":{"x":29592.41263300685,"y":29918.983048129903},"targetPosition":{"x":29428.719324074442,"y":30221.69004647084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"8H %B < 40 && 1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at08hs.percentageBandwidth.movingAverage <= 40 && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >= 3","project":"Superalgos","id":"6485a5b2-2959-4358-947e-98d0f3c88011","savedPayload":{"position":{"x":30251.99147291359,"y":29669.966622170956},"targetPosition":{"x":29997.960302769043,"y":29875.867095068304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d8553226-ae92-4b87-ae86-5b53607d3bd3","savedPayload":{"position":{"x":29997.960302769043,"y":29875.867095068304},"targetPosition":{"x":29743.47404168342,"y":30082.03833708503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Previous Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.direction === \"Up\"","project":"Superalgos","id":"d1a82d5f-7ff4-4c23-9147-a13f5199f21f","savedPayload":{"position":{"x":30389.794818813538,"y":29979.74338693027},"targetPosition":{"x":30066.895546697615,"y":30030.878691008325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c80b06ad-0f63-41c0-a485-0bc97313fd48","savedPayload":{"position":{"x":30066.895546697615,"y":30030.878691008325},"targetPosition":{"x":29743.47404168342,"y":30082.03833708503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5a234bc0-ff31-4650-878e-c21a11204d2a","savedPayload":{"position":{"x":29743.47404168342,"y":30082.03833708503},"targetPosition":{"x":29428.719324074442,"y":30221.69004647084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"248f0567-8e65-41c6-9580-71229332c7bb","savedPayload":{"position":{"x":29449.129204448338,"y":29690.896422558286},"targetPosition":{"x":29344.835968846794,"y":30011.8779968079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"d52d95cd-0d77-468c-a7f1-497c2476fe33","savedPayload":{"position":{"x":29344.835968846794,"y":30011.8779968079},"targetPosition":{"x":29495.390355277537,"y":30179.085582540312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P 5","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01hs.bollingerBand.movingAverage * 0.9","project":"Superalgos","id":"a39ae165-abd6-4725-ac6a-4edbef7200e4","savedPayload":{"position":{"x":28974.198372250943,"y":29891.450541509483},"targetPosition":{"x":29194.28158241605,"y":29844.670411075487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Complex","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at12hs.percentageBandwidth.previous.movingAverage <= 15 && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >= 15","project":"Superalgos","id":"0d7d916c-3334-4422-8998-28f78bcbaf78","savedPayload":{"position":{"x":29726.94240869815,"y":28944.840520656762},"targetPosition":{"x":29570.961871000105,"y":29232.457875860535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"60ecd582-0e23-4c8a-8077-7201d263cca2","savedPayload":{"position":{"x":29570.961871000105,"y":29232.457875860535},"targetPosition":{"x":29415.01546769645,"y":29520.15632128513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4d364cc4-cdb0-4fba-bc23-235dcb482a4e","savedPayload":{"position":{"x":29415.01546769645,"y":29520.15632128513},"targetPosition":{"x":29251.3198725836,"y":29823.25616301414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Complex","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"(chart.at24hs.percentageBandwidth.movingAverage <= 70 || chart.at12hs.percentageBandwidth.movingAverage <= 40 ) && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >=5","project":"Superalgos","id":"ddebbd89-cba4-4d06-8fe9-a13fcbd4ba18","savedPayload":{"position":{"x":30074.92744451414,"y":29271.426727796},"targetPosition":{"x":29820.434653081636,"y":29477.547922565675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2bf45ba3-ea96-40d1-a8eb-1f5b58eb97e3","savedPayload":{"position":{"x":29820.434653081636,"y":29477.547922565675},"targetPosition":{"x":29565.93347114677,"y":29683.782436348745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Prev Prev Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","project":"Superalgos","id":"877fda2b-35d0-45b5-9457-3f791f5ceeb0","savedPayload":{"position":{"x":30212.773823037573,"y":29581.301454504868},"targetPosition":{"x":29889.404632989263,"y":29632.643412417423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"658ac695-5997-4780-9d05-8ca8cdd9cd6a","savedPayload":{"position":{"x":29889.404632989263,"y":29632.643412417423},"targetPosition":{"x":29565.93347114677,"y":29683.782436348745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"11b94bab-c0d6-4b49-95c2-4a65f5794288","savedPayload":{"position":{"x":29565.93347114677,"y":29683.782436348745},"targetPosition":{"x":29251.3198725836,"y":29823.25616301414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"6b6a705b-b008-4784-8e06-a7ff7138725b","savedPayload":{"position":{"x":29298.574818017594,"y":29523.688836825873},"targetPosition":{"x":29194.28158241605,"y":29844.670411075487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"46eafddb-7478-432f-818f-0c458b59171b","savedPayload":{"position":{"x":29194.28158241605,"y":29844.670411075487},"targetPosition":{"x":29344.835968846794,"y":30011.8779968079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P 6","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation * 1.75","project":"Superalgos","id":"29d4e7bb-f154-44c4-825c-24719949e808","savedPayload":{"position":{"x":28823.6439858202,"y":29724.24295577707},"targetPosition":{"x":29043.727195985306,"y":29677.462825343075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.previous.movingAverage <= 30 && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >=10","project":"Superalgos","id":"d5ac2bb6-e328-40f7-bae6-26c46b85f9ea","savedPayload":{"position":{"x":29431.07154444797,"y":28491.735651527983},"targetPosition":{"x":29313.99033091612,"y":28797.279875552413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c57b02c1-e38e-4c24-8ca0-5d5790f8c475","savedPayload":{"position":{"x":29313.99033091612,"y":28797.279875552413},"targetPosition":{"x":29196.791951428673,"y":29103.35991517422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cbfd82c7-c57c-4d1e-9a95-b05ad5765eca","savedPayload":{"position":{"x":29196.791951428673,"y":29103.35991517422},"targetPosition":{"x":29074.023805063178,"y":29424.874917652014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"(chart.at24hs.percentageBandwidth.movingAverage <= 60 || chart.at12hs.percentageBandwidth.movingAverage <= 30 ) && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >=5","project":"Superalgos","id":"7af7ef05-50d0-4db9-ae3c-8aed6a9842cd","savedPayload":{"position":{"x":29897.104690155033,"y":28873.034975694154},"targetPosition":{"x":29643.060990043185,"y":29078.969739920467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b79e13b-e44f-41bb-9450-47881760fb81","savedPayload":{"position":{"x":29643.060990043185,"y":29078.969739920467},"targetPosition":{"x":29388.697562647645,"y":29285.152352690486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Prev Prev Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","project":"Superalgos","id":"8c6bbc80-2d99-434a-ad29-12505c118c41","savedPayload":{"position":{"x":30034.96089243337,"y":29182.893898435475},"targetPosition":{"x":29712.060130339258,"y":29234.052759577564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ce4d9250-7aee-432f-b0f7-a25a0d3739d1","savedPayload":{"position":{"x":29712.060130339258,"y":29234.052759577564},"targetPosition":{"x":29388.697562647645,"y":29285.152352690486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"defc1a9e-ccaa-424b-be17-0efc30e2c0a6","savedPayload":{"position":{"x":29388.697562647645,"y":29285.152352690486},"targetPosition":{"x":29074.023805063178,"y":29424.874917652014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9fb1dbd3-fed7-424c-add0-f6b7481dab05","savedPayload":{"position":{"x":29148.02043158685,"y":29356.48125109346},"targetPosition":{"x":29043.727195985306,"y":29677.462825343075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"8c0276f0-0551-4ce2-9287-0c9bfe22085a","savedPayload":{"position":{"x":29043.727195985306,"y":29677.462825343075},"targetPosition":{"x":29194.28158241605,"y":29844.670411075487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P 7","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation * 1.25","project":"Superalgos","id":"4e6d15ed-8c85-43cd-90e3-a73eeed22389","savedPayload":{"position":{"x":28673.089599389456,"y":29557.035370044658},"targetPosition":{"x":28893.172809554562,"y":29510.255239610662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.previous.movingAverage <= 30 && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >=10","project":"Superalgos","id":"c29560f8-3916-4e7b-bd05-ec4c5c70aaad","savedPayload":{"position":{"x":28714.32729387833,"y":28383.369305858643},"targetPosition":{"x":28565.803056171444,"y":28657.536772239215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"29cd95e8-e310-4279-8fc6-a886eaeb939d","savedPayload":{"position":{"x":28565.803056171444,"y":28657.536772239215},"targetPosition":{"x":28417.10225411398,"y":28932.22848708009},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7849fb9b-2762-47fa-bc35-690f40049780","savedPayload":{"position":{"x":28417.10225411398,"y":28932.22848708009},"targetPosition":{"x":28265.339563036276,"y":29213.780830079442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"(chart.at24hs.percentageBandwidth.movingAverage <= 50 || chart.at12hs.percentageBandwidth.movingAverage <= 17.5 ) && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >=5","project":"Superalgos","id":"f15eb65a-7dfa-4d09-b624-3a3d3e2b6420","savedPayload":{"position":{"x":29089.70761402402,"y":28758.12289930749},"targetPosition":{"x":28823.933816824774,"y":28920.944121066786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b4307590-5fe4-4997-a25c-3221fcaea5ea","savedPayload":{"position":{"x":28823.933816824774,"y":28920.944121066786},"targetPosition":{"x":28558.008704034855,"y":29084.05593025312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","project":"Superalgos","id":"98b65fea-6bb0-4a9a-8d31-3997e56c6c63","savedPayload":{"position":{"x":29174.180017029303,"y":28986.831302276583},"targetPosition":{"x":28866.155217157928,"y":29035.44132161218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7a79c0f2-514b-441a-ae08-5e1c1d815095","savedPayload":{"position":{"x":28866.155217157928,"y":29035.44132161218},"targetPosition":{"x":28558.008704034855,"y":29084.05593025312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e2165070-d0eb-428c-a168-dfacb74f0844","savedPayload":{"position":{"x":28558.008704034855,"y":29084.05593025312},"targetPosition":{"x":28265.339563036276,"y":29213.780830079442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"5ea9ce09-4324-4961-a5c0-9018bd9e8d36","savedPayload":{"position":{"x":28997.466045156107,"y":29189.27366536105},"targetPosition":{"x":28893.172809554562,"y":29510.255239610662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"64a62511-14f3-45ad-897b-543abba98920","savedPayload":{"position":{"x":28893.172809554562,"y":29510.255239610662},"targetPosition":{"x":29043.727195985306,"y":29677.462825343075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P 8","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"96ea6099-ad3a-4240-95d9-1486bb21c131","savedPayload":{"position":{"x":28592.064036693075,"y":29175.840068145837},"targetPosition":{"x":28742.61842312382,"y":29343.04765387825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"cd3e2a56-39ae-4a5e-8190-f2b65ba6f8e2","savedPayload":{"position":{"x":28742.61842312382,"y":29343.04765387825},"targetPosition":{"x":28893.172809554562,"y":29510.255239610662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1d7d8a99-1d8d-41e4-9544-61ae4667aa1a","savedPayload":{"position":{"x":30214.52719653713,"y":30687.325026982988},"targetPosition":{"x":30415.266378444787,"y":30910.268474626206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"fa22b9a6-5479-4409-b77a-b9a20b365f95","savedPayload":{"position":{"x":30415.266378444787,"y":30910.268474626206},"targetPosition":{"x":30700.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"00a8423d-4604-4d28-aa43-0fe8410c1a4e","savedPayload":{"position":{"x":29607.997388916414,"y":30578.43798924835},"targetPosition":{"x":29831.764815374274,"y":30554.919085013127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"62dec497-f190-41dc-b7a6-430ffb78fa3c","savedPayload":{"position":{"x":29831.764815374274,"y":30554.919085013127},"targetPosition":{"x":30055.532241832134,"y":30531.400180777906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value - tradingEngine.current.strategyOpenStage.stageQuotedAsset.feesPaid.value","project":"Superalgos","id":"8bbc979f-5425-49af-807b-38944be9b312","savedPayload":{"position":{"x":29791.02887830052,"y":30167.34253330918},"targetPosition":{"x":29923.280560066327,"y":30349.371357043543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e4a38608-0a48-4e4c-b291-36ee1a1b85c5","savedPayload":{"position":{"x":29923.280560066327,"y":30349.371357043543},"targetPosition":{"x":30055.532241832134,"y":30531.400180777906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7421d18f-87c9-4790-8e17-16642ba1efac","savedPayload":{"position":{"x":30250.18412035281,"y":30638.247481703467},"targetPosition":{"x":30524.24775764559,"y":30760.268474626206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Quick Exit","config":"{\n\"percentageOfAlgorithmSize\": 100,\n\"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"f9b6428b-706c-4762-b526-e65ce3a9eba1","savedPayload":{"position":{"x":29561.031882569547,"y":41448.99033134701},"targetPosition":{"x":29598.988239018396,"y":41807.96505657351},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7ce28ab2-846f-44e3-8d42-66e702d7cf6f","savedPayload":{"position":{"x":29598.988239018396,"y":41807.96505657351},"targetPosition":{"x":29637.528604467505,"y":42167.27857339248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"17c82be6-9c06-467f-8e89-bc76d7f3b0d8","savedPayload":{"position":{"x":29637.528604467505,"y":42167.27857339248},"targetPosition":{"x":29676.029624600913,"y":42536.65383108058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"acb7cd15-47a6-4b89-a991-02d53cbd5d88","savedPayload":{"position":{"x":30167.004352860833,"y":29727.846219638523},"targetPosition":{"x":30190.523257096054,"y":29951.613646096383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4f521b37-053e-45a1-9cc0-a2b54430a6f1","savedPayload":{"position":{"x":30190.523257096054,"y":29951.613646096383},"targetPosition":{"x":30214.042161331276,"y":30175.381072554243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"7bacad1e-a99b-4dee-ba33-4857babf5f60","savedPayload":{"position":{"x":30214.042161331276,"y":30175.381072554243},"targetPosition":{"x":30237.561065566497,"y":30399.148499012103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2fb3a68a-bccc-4f15-a093-81d7230e3534","savedPayload":{"position":{"x":30492.889218665292,"y":30461.911906015725},"targetPosition":{"x":30524.24775764559,"y":30760.268474626206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"b0b4389a-74f6-4807-af15-1b8c43c247cb","savedPayload":{"position":{"x":30524.24775764559,"y":30760.268474626206},"targetPosition":{"x":30700.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c6dfb2a4-3e3d-4a44-a9da-00251dae88a7","savedPayload":{"position":{"x":30700.583333333332,"y":31002.97357293869},"targetPosition":{"x":31000.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"975c2fc3-a8f5-43e9-900f-4a4f2430d128","savedPayload":{"position":{"x":31000.583333333332,"y":31002.97357293869},"targetPosition":{"x":31000.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"w"}}},{"type":"Trading System","name":"BB Top Bounce","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","tradingStrategies":[{"type":"Trading Strategy","name":"S1 - 3H Down","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"99948a6e-e866-4339-86ba-eac367226312","savedPayload":{"position":{"x":34014.34461109166,"y":30024.443431659598},"targetPosition":{"x":34306.05558721097,"y":30094.47704081637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f0534c68-ab47-4370-b1fd-b3be4c1c262f","savedPayload":{"position":{"x":34306.05558721097,"y":30094.47704081637},"targetPosition":{"x":34597.766563330275,"y":30164.510649973145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"d3bd1690-1f94-484b-ac3c-7be2c7be85ed","savedPayload":{"position":{"x":34112.3563667053,"y":29811.83949859766},"targetPosition":{"x":34355.06146501779,"y":29988.175074285402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2d7334d-cf52-44d9-a20e-5be201ca6799","savedPayload":{"position":{"x":34355.06146501779,"y":29988.175074285402},"targetPosition":{"x":34597.766563330275,"y":30164.510649973145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"d1fa707f-eb75-4b1c-8117-688b9b94e539","savedPayload":{"position":{"x":34284.2674245007,"y":29652.92655136069},"targetPosition":{"x":34441.01699391549,"y":29908.718600666918},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fb71bcfb-2a40-4e8a-b8e8-b492128350a0","savedPayload":{"position":{"x":34441.01699391549,"y":29908.718600666918},"targetPosition":{"x":34597.766563330275,"y":30164.510649973145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"8c8c5128-b88b-44a5-8e36-d5c61127404f","savedPayload":{"position":{"x":34503.90588430614,"y":29571.897645616064},"targetPosition":{"x":34550.83622381821,"y":29868.204147794604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"22246178-a8f9-4ec8-b55b-36cf7a24fbff","savedPayload":{"position":{"x":34550.83622381821,"y":29868.204147794604},"targetPosition":{"x":34597.766563330275,"y":30164.510649973145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Medium, Steep or Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerSubChannel.slope === \"Medium\" || chart.at03hs.bollingerSubChannel.slope === \"Steep\" || chart.at03hs.bollingerSubChannel.slope === \"Extreme\" ","project":"Superalgos","id":"bf8df41c-c62f-4cd6-840e-1dd538359c3b","savedPayload":{"position":{"x":34737.83378164382,"y":29581.08869773454},"targetPosition":{"x":34667.80017248705,"y":29872.799673853842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9dba774d-1afa-40dd-b5ec-8f4029824473","savedPayload":{"position":{"x":34667.80017248705,"y":29872.799673853842},"targetPosition":{"x":34597.766563330275,"y":30164.510649973145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Gentle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope === \"Gentle\"","project":"Superalgos","id":"c4428437-7308-46f3-884e-22d2aac8d1a0","savedPayload":{"position":{"x":34950.43771470576,"y":29679.10045334818},"targetPosition":{"x":34774.10213901802,"y":29921.805551660662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7766453d-73ca-46f7-a39c-00f4f11af05e","savedPayload":{"position":{"x":34774.10213901802,"y":29921.805551660662},"targetPosition":{"x":34597.766563330275,"y":30164.510649973145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"eac9b2d4-4364-4116-9d99-e92b8bbce5e7","savedPayload":{"position":{"x":35109.35066194273,"y":29851.011511143577},"targetPosition":{"x":34853.5586126365,"y":30007.76108055836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"40cb1853-f93e-4023-8d45-708376281bde","savedPayload":{"position":{"x":34853.5586126365,"y":30007.76108055836},"targetPosition":{"x":34597.766563330275,"y":30164.510649973145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8d558598-60b5-4104-9a84-1773b125c509","savedPayload":{"position":{"x":34597.766563330275,"y":30164.510649973145},"targetPosition":{"x":34644.69690284234,"y":30460.817152151685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"3afd4ef5-2175-48fa-844f-e4e4ed775b26","savedPayload":{"position":{"x":34644.69690284234,"y":30460.817152151685},"targetPosition":{"x":34691.62724235441,"y":30757.123654330226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","project":"Superalgos","id":"0fb11814-5ba2-4c23-86b0-e6f8c01363e6","savedPayload":{"position":{"x":35044.29839372989,"y":30271.713457705253},"targetPosition":{"x":34956.13060588602,"y":30393.066006861496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32415e55-51cb-44cf-a0d9-9de73b946da8","savedPayload":{"position":{"x":34956.13060588602,"y":30393.066006861496},"targetPosition":{"x":34867.96281804215,"y":30514.41855601774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"317dd29a-db32-4f10-bee0-325b7a7c816c","savedPayload":{"position":{"x":34867.96281804215,"y":30514.41855601774},"targetPosition":{"x":34779.79503019828,"y":30635.771105173983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"547d578f-4568-4b1f-965d-1d598b7b67bb","savedPayload":{"position":{"x":34779.79503019828,"y":30635.771105173983},"targetPosition":{"x":34691.62724235441,"y":30757.123654330226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"903651ac-50d3-44ea-aae2-0b6bbe43b989","savedPayload":{"position":{"x":37642.30746502504,"y":30077.84102306748},"targetPosition":{"x":37572.27385586827,"y":30369.551999186784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4c4c6084-bebe-46ce-a12f-68924568c81d","savedPayload":{"position":{"x":37572.27385586827,"y":30369.551999186784},"targetPosition":{"x":37502.240246711495,"y":30661.262975306086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"b16e3f56-5a3f-4af9-a9d1-ff3bbf9ca0b8","savedPayload":{"position":{"x":37854.91139808698,"y":30175.85277868112},"targetPosition":{"x":37678.57582239924,"y":30418.557876993604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c4e1f247-db57-4488-81e9-c7602562b8f3","savedPayload":{"position":{"x":37678.57582239924,"y":30418.557876993604},"targetPosition":{"x":37502.240246711495,"y":30661.262975306086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"34452811-c161-4b33-8335-bc996a8638ad","savedPayload":{"position":{"x":38013.82434532395,"y":30347.76383647652},"targetPosition":{"x":37758.03229601772,"y":30504.513405891303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"db35b110-1991-4e3d-a1bd-04b0d1bad669","savedPayload":{"position":{"x":37758.03229601772,"y":30504.513405891303},"targetPosition":{"x":37502.240246711495,"y":30661.262975306086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"8fcf0aed-cd6b-4df9-8ec4-4511fcde66d8","savedPayload":{"position":{"x":38094.85325106858,"y":30567.402296281947},"targetPosition":{"x":37798.54674889004,"y":30614.332635794017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48bd56ea-0d5a-404d-a887-061493bebbcf","savedPayload":{"position":{"x":37798.54674889004,"y":30614.332635794017},"targetPosition":{"x":37502.240246711495,"y":30661.262975306086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Medium, Steep or Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerSubChannel.slope === \"Medium\" || chart.at03hs.bollingerSubChannel.slope === \"Steep\" || chart.at03hs.bollingerSubChannel.slope === \"Extreme\" ","project":"Superalgos","id":"40b36ec9-ebf1-43fe-8003-f0d130b7cb36","savedPayload":{"position":{"x":38085.66219895011,"y":30801.330193619633},"targetPosition":{"x":37793.9512228308,"y":30731.29658446286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c90a754-52bd-47cf-a3b5-95ad037bbb62","savedPayload":{"position":{"x":37793.9512228308,"y":30731.29658446286},"targetPosition":{"x":37502.240246711495,"y":30661.262975306086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Gentle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope === \"Gentle\"","project":"Superalgos","id":"3f28257c-cc33-4c59-b40b-85bc88821f96","savedPayload":{"position":{"x":37987.65044333647,"y":31013.93412668157},"targetPosition":{"x":37744.94534502398,"y":30837.59855099383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fc2fb509-2854-4359-aa1e-b32a2174bd35","savedPayload":{"position":{"x":37744.94534502398,"y":30837.59855099383},"targetPosition":{"x":37502.240246711495,"y":30661.262975306086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"5226a3d7-c8f8-41bd-9b45-f6238576628f","savedPayload":{"position":{"x":37815.73938554107,"y":31172.84707391854},"targetPosition":{"x":37658.98981612628,"y":30917.055024612313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b38876e-bcad-4cec-90e2-c2e358723d29","savedPayload":{"position":{"x":37658.98981612628,"y":30917.055024612313},"targetPosition":{"x":37502.240246711495,"y":30661.262975306086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"46e2ecf6-82ae-435d-a3a0-d5e2903404fd","savedPayload":{"position":{"x":37502.240246711495,"y":30661.262975306086},"targetPosition":{"x":37205.93374453295,"y":30708.193314818156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"93418d2a-3047-4f80-aa59-0c6fdb35ad43","savedPayload":{"position":{"x":34987.93374453295,"y":30710.193314818156},"targetPosition":{"x":34691.62724235441,"y":30757.123654330226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"1055a2cc-e93a-4dd8-a992-f56553527ddd","savedPayload":{"position":{"x":34691.62724235441,"y":30757.123654330226},"targetPosition":{"x":34515.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"My Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"e0c6286e-4947-427a-aea3-a793fb1acf75","savedPayload":{"position":{"x":30660.074262288428,"y":26955.101379950684},"targetPosition":{"x":30589.672153528496,"y":27285.81247617225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fff26070-c80f-4e78-bb0f-71e16d943698","savedPayload":{"position":{"x":30589.672153528496,"y":27285.81247617225},"targetPosition":{"x":30503.801197896137,"y":27686.654444471693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.episodeBaseAsset.balance.value","project":"Superalgos","id":"f2dd66ad-27a6-4859-aeb9-bd7316555b99","savedPayload":{"position":{"x":31214.005524997876,"y":27456.12722250138},"targetPosition":{"x":30893.255042587676,"y":27560.238393491753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b5e86b74-5db2-4019-85c6-ea397d675f50","savedPayload":{"position":{"x":30893.255042587676,"y":27560.238393491753},"targetPosition":{"x":30503.801197896137,"y":27686.654444471693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f7416bc8-8652-4670-965b-9b1f1f3da0ad","savedPayload":{"position":{"x":37100.97821250904,"y":30329.651930508615},"targetPosition":{"x":37000.608621555206,"y":30441.123654330226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Quick Entry","config":"{\n\"percentageOfAlgorithmSize\": 100\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"0d3863ca-6912-4fea-8b35-0889324ea7f5","savedPayload":{"position":{"x":32585.518100478395,"y":28426.328643001223},"targetPosition":{"x":32255.774890456778,"y":28356.378726730196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5b5e9ad8-778b-42ae-aa7f-c303e129df7f","savedPayload":{"position":{"x":32255.774890456778,"y":28356.378726730196},"targetPosition":{"x":31926.252265504947,"y":28286.48842673435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1fbcc4bd-145e-43ac-8e1a-721435920b4a","savedPayload":{"position":{"x":31926.252265504947,"y":28286.48842673435},"targetPosition":{"x":31596.602925623316,"y":28216.586773394847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"8548a589-0711-4acc-aba9-6a77970c7b8f","savedPayload":{"position":{"x":31596.602925623316,"y":28216.586773394847},"targetPosition":{"x":31267.374075182648,"y":28146.799860983512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"70c7f73b-a1a6-467c-a0eb-a284133ac599","savedPayload":{"position":{"x":31267.374075182648,"y":28146.799860983512},"targetPosition":{"x":30937.4926764588,"y":28076.9136479518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"09d1d3b2-8917-4792-b2a4-4902156c05b2","savedPayload":{"position":{"x":30937.4926764588,"y":28076.9136479518},"targetPosition":{"x":30607.58702948344,"y":28007.064494229548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"fe61959d-43e7-4440-9932-9a09846e9b1b","savedPayload":{"position":{"x":37294.05290177535,"y":30503.497161575553},"targetPosition":{"x":37000.608621555206,"y":30441.123654330226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"e35699bc-1fe9-4cdc-b029-6361f0ce8592","savedPayload":{"position":{"x":34800.60862155521,"y":30907.123654330226},"targetPosition":{"x":34515.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Standard Run","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 1.03","project":"Superalgos","id":"853852d1-d2fa-4e32-a891-e98ca52a556e","savedPayload":{"position":{"x":37828.440629638724,"y":30765.047654556878},"targetPosition":{"x":37605.4971819955,"y":30965.786836464536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < tradingEngine.current.position.entryTargetRate.value * 0.97","project":"Superalgos","id":"3bdebe73-3546-43f3-b644-73ec62086c66","savedPayload":{"position":{"x":31708.4115705378,"y":28195.51920297809},"targetPosition":{"x":31547.7961936945,"y":28247.588420751177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"36615e86-2c8e-4182-ab3e-5c263c44fcb1","savedPayload":{"position":{"x":31547.7961936945,"y":28247.588420751177},"targetPosition":{"x":31380.11140496785,"y":28301.94906628679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6aae47da-70b4-4fd3-b2da-65a1d645b915","savedPayload":{"position":{"x":31380.11140496785,"y":28301.94906628679},"targetPosition":{"x":31173.31202825888,"y":28369.033314611406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"18261801-3d1b-4dfe-872c-019fff59db4d","savedPayload":{"position":{"x":37890.81413688405,"y":31058.49193477702},"targetPosition":{"x":37605.4971819955,"y":30965.786836464536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"fdeb890a-e7d8-4ef6-ab49-3a88aee6e82c","savedPayload":{"position":{"x":37605.4971819955,"y":30965.786836464536},"targetPosition":{"x":37312.05290177536,"y":31028.160343709864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 1.02 < tradingEngine.current.position.stopLoss.value) {chart.at01hs.bollingerBand.movingAverage * 1.02} else {tradingEngine.current.position.stopLoss.value}","project":"Superalgos","id":"0e9e87f6-4636-4f1f-8091-d1c3090ee345","savedPayload":{"position":{"x":38192.38574243579,"y":30841.03982197388},"targetPosition":{"x":37898.94146221565,"y":30903.41332921921},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"0464ed08-0432-4da6-b407-fbf1fbc65bd9","savedPayload":{"position":{"x":37898.94146221565,"y":30903.41332921921},"targetPosition":{"x":37605.4971819955,"y":30965.786836464536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a9042fd2-0f05-4208-91b7-81e00b6493fb","savedPayload":{"position":{"x":37312.05290177536,"y":31028.160343709864},"targetPosition":{"x":37018.60862155521,"y":31090.53385095519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"Initial","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 0.95","project":"Superalgos","id":"f191391f-f798-4819-b46b-8ae9538ff71f","savedPayload":{"position":{"x":37713.531265590675,"y":31474.0472389963},"targetPosition":{"x":37420.08698537053,"y":31536.420746241627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"1H EMA7 < entryTargetRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value","project":"Superalgos","id":"65b73feb-09e0-491d-99fd-30f331acac97","savedPayload":{"position":{"x":37359.42380323621,"y":32693.943216459},"targetPosition":{"x":37297.050295990884,"y":32400.49893623886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fa12e6f8-f9d6-4eb7-9e3b-1e0f17581548","savedPayload":{"position":{"x":37297.050295990884,"y":32400.49893623886},"targetPosition":{"x":37234.67678874556,"y":32107.054656018718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.current.position.positionCounters.periods.value > 2","project":"Superalgos","id":"2eff0ccd-bf54-4456-aff5-9f46cf1469ff","savedPayload":{"position":{"x":36788.789893459114,"y":32508.533019834034},"targetPosition":{"x":37011.733341102336,"y":32307.793837926376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a4af8e92-a505-48fd-8080-8a715cd856dc","savedPayload":{"position":{"x":37011.733341102336,"y":32307.793837926376},"targetPosition":{"x":37234.67678874556,"y":32107.054656018718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ef07d7e4-53c0-4746-a1a2-4b4856cba9df","savedPayload":{"position":{"x":37234.67678874556,"y":32107.054656018718},"targetPosition":{"x":37327.38188705804,"y":31821.737701130172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"2484f7be-38df-4139-94b4-d753e6d50eed","savedPayload":{"position":{"x":37327.38188705804,"y":31821.737701130172},"targetPosition":{"x":37420.08698537053,"y":31536.420746241627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"977b23fa-f70b-4ae6-8b8b-62ca894ca11c","savedPayload":{"position":{"x":37420.08698537053,"y":31536.420746241627},"targetPosition":{"x":37219.34780346287,"y":31313.47729859841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Manage: 3% Below ema7","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.97 < tradingEngine.current.position.entryTargetRate.value * 0.97) {chart.at01hs.base7EMA.ema7 * 0.97} else {tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"aadae3ad-5cf1-4417-baad-c6e8b0ab8f31","savedPayload":{"position":{"x":37843.76961492141,"y":31558.625011977187},"targetPosition":{"x":37620.82616727819,"y":31759.364193884845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"bfc7fa92-c54c-43e7-8a6d-f89572d1fee2","savedPayload":{"position":{"x":32848.11801781877,"y":29433.190048673023},"targetPosition":{"x":32489.13901744403,"y":29172.741205930462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5ea229bf-a68c-40f9-a6ac-8bae8171ecda","savedPayload":{"position":{"x":32489.13901744403,"y":29172.741205930462},"targetPosition":{"x":32130.09432522794,"y":28912.57394763465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"585c2f06-93d7-403f-ab70-0aab9c936f72","savedPayload":{"position":{"x":32130.09432522794,"y":28912.57394763465},"targetPosition":{"x":31770.837286568618,"y":28652.27817579852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"cddeb772-d0f7-4ba8-b303-b623746f3f6e","savedPayload":{"position":{"x":37821.56534918585,"y":31982.307641528063},"targetPosition":{"x":37620.82616727819,"y":31759.364193884845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"4862beb3-990c-43ba-a21b-93ce1227d060","savedPayload":{"position":{"x":30356.803144975464,"y":29977.027683667045},"targetPosition":{"x":30287.001926189878,"y":29647.09064034791},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dc6ade59-03df-4aa5-a892-5e225a38cb35","savedPayload":{"position":{"x":30287.001926189878,"y":29647.09064034791},"targetPosition":{"x":30216.717927469545,"y":29316.650521555188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"54428b89-eb5f-4844-9fec-b049f074b3c8","savedPayload":{"position":{"x":30008.53939563968,"y":29958.624221548424},"targetPosition":{"x":30112.642715874397,"y":29637.862210602863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"81b0626e-e4c7-40dc-ae8d-ec5603067461","savedPayload":{"position":{"x":30112.642715874397,"y":29637.862210602863},"targetPosition":{"x":30216.717927469545,"y":29316.650521555188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value * 0.99","project":"Superalgos","id":"05867691-257f-4795-b70f-180ef26713fd","savedPayload":{"position":{"x":29715.617432026134,"y":29769.06720866268},"targetPosition":{"x":29966.14502769772,"y":29543.011788486867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2d354bdf-7142-4921-aec4-60a295569584","savedPayload":{"position":{"x":29966.14502769772,"y":29543.011788486867},"targetPosition":{"x":30216.717927469545,"y":29316.650521555188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"74adc18a-fcb8-47ad-a447-1595f16cc7f6","savedPayload":{"position":{"x":29557.146819038135,"y":29458.239281448587},"targetPosition":{"x":29886.947078772697,"y":29387.47681273229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c760094-3830-48d3-a97c-a9dee27f3c7e","savedPayload":{"position":{"x":29886.947078772697,"y":29387.47681273229},"targetPosition":{"x":30216.717927469545,"y":29316.650521555188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"45a3f428-25a5-4cf2-a13f-08bf3bbc4972","savedPayload":{"position":{"x":29575.49984177845,"y":29110.12204522665},"targetPosition":{"x":29896.113230670315,"y":29213.246549897754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6106746d-8995-425e-8dd9-009894a5dd07","savedPayload":{"position":{"x":29896.113230670315,"y":29213.246549897754},"targetPosition":{"x":30216.717927469545,"y":29316.650521555188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"61a873ab-dc8f-4023-93cd-a861bd965858","savedPayload":{"position":{"x":30216.717927469545,"y":29316.650521555188},"targetPosition":{"x":30478.081833129254,"y":29080.62985154736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"aa98a93e-c928-4900-854a-97b3750182d2","savedPayload":{"position":{"x":37397.88271963497,"y":31960.103375792503},"targetPosition":{"x":37620.82616727819,"y":31759.364193884845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"83f85765-e13b-406a-bd56-7fd820eebc16"}}}],"announcements":[],"id":"e3b43a25-cbb0-4ebc-ac2f-148a56d7d934","savedPayload":{"position":{"x":37620.82616727819,"y":31759.364193884845},"targetPosition":{"x":37420.08698537053,"y":31536.420746241627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < tradingEngine.current.position.entryTargetRate.value * 0.97) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"e603a735-7a74-4654-b0bb-50bee2d1e307","savedPayload":{"position":{"x":38044.50879682907,"y":31781.568459620405},"targetPosition":{"x":37821.56534918585,"y":31982.307641528063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"12b3cadf-b8f9-4f43-8799-40c1509f8d07","savedPayload":{"position":{"x":33276.36316941772,"y":28857.469367335805},"targetPosition":{"x":32871.312357186885,"y":29037.561341070905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d45aa91c-a153-4311-8403-8e4492ffcc95","savedPayload":{"position":{"x":32871.312357186885,"y":29037.561341070905},"targetPosition":{"x":32466.11502117118,"y":29217.827200149855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"47191a8e-485b-4f11-be05-c1b6253da95e","savedPayload":{"position":{"x":33348.23434863162,"y":29310.338070119637},"targetPosition":{"x":32907.287094696025,"y":29264.074150155684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a6eff46-6a7b-4a29-81a4-93a751a056bf","savedPayload":{"position":{"x":32907.287094696025,"y":29264.074150155684},"targetPosition":{"x":32466.11502117118,"y":29217.827200149855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"e9cfe84c-e144-4e95-88ce-8bfdffd42f89","savedPayload":{"position":{"x":33183.78961291561,"y":29738.914073585504},"targetPosition":{"x":32825.05225077626,"y":29478.410978732412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9dfa9604-bc08-4df3-980d-2f8b06185031","savedPayload":{"position":{"x":32825.05225077626,"y":29478.410978732412},"targetPosition":{"x":32466.11502117118,"y":29217.827200149855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"8c332bfe-ab0c-4905-9440-86091b7040b1","savedPayload":{"position":{"x":32827.16675847116,"y":30027.801407002575},"targetPosition":{"x":32646.678138329895,"y":29622.87742858933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e358399e-001d-4d07-83e4-2bf9d65ed1bd","savedPayload":{"position":{"x":32646.678138329895,"y":29622.87742858933},"targetPosition":{"x":32466.11502117118,"y":29217.827200149855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div previous ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"51ec782d-f54f-46b5-b45a-9db5cf7a380e","savedPayload":{"position":{"x":32374.55744255693,"y":30099.522740027394},"targetPosition":{"x":32420.21871188943,"y":29658.7441522492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c64c6aff-2525-4e58-9e27-ac7a8b3dc8cb","savedPayload":{"position":{"x":32420.21871188943,"y":29658.7441522492},"targetPosition":{"x":32466.11502117118,"y":29217.827200149855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08f82342-86ce-4222-b954-968397dd2d33","savedPayload":{"position":{"x":32466.11502117118,"y":29217.827200149855},"targetPosition":{"x":32107.10431858636,"y":28957.278677572656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"170cad22-eef5-48c3-b5d9-fae484dab493","savedPayload":{"position":{"x":38022.304531093505,"y":32205.25108917128},"targetPosition":{"x":37821.56534918585,"y":31982.307641528063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"83f85765-e13b-406a-bd56-7fd820eebc16"}}},{"type":"Move To Phase Event","name":"Cancel Close","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"0320d330-7d8e-4577-8ea3-debcdf5c4971","savedPayload":{"position":{"x":30438.59607486645,"y":30472.179220273865},"targetPosition":{"x":30542.698894395682,"y":30151.358078490208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6611a627-dfaf-4248-8aaa-e27fb7ac7141","savedPayload":{"position":{"x":30542.698894395682,"y":30151.358078490208},"targetPosition":{"x":30646.3093096187,"y":29830.136785819006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"51f5f720-c0df-4209-a32f-80f67688004d","savedPayload":{"position":{"x":29987.259212930716,"y":29969.575628396386},"targetPosition":{"x":30316.465906869023,"y":29900.058060312607},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"62ebc71f-7dab-4090-9f0e-c557cbbf5045","savedPayload":{"position":{"x":30316.465906869023,"y":29900.058060312607},"targetPosition":{"x":30646.3093096187,"y":29830.136785819006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9cfa9122-1b64-4a37-877f-1c722493562a","savedPayload":{"position":{"x":30646.3093096187,"y":29830.136785819006},"targetPosition":{"x":30907.50581187509,"y":29593.980731702766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"73f3e391-cceb-4d27-932f-7b3c76d63b24","savedPayload":{"position":{"x":37598.621901542625,"y":32183.04682343572},"targetPosition":{"x":37821.56534918585,"y":31982.307641528063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"e3b43a25-cbb0-4ebc-ac2f-148a56d7d934"}}}],"announcements":[],"id":"913c2adb-a405-40e1-b661-300ec59c4ea0","savedPayload":{"position":{"x":37821.56534918585,"y":31982.307641528063},"targetPosition":{"x":37620.82616727819,"y":31759.364193884845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.8 < tradingEngine.current.position.entryTargetRate.value * 0.97) {chart.at01hs.base7EMA.ema7 * 0.8} else {tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"be65b94d-3942-43c3-96aa-354447d5d591","savedPayload":{"position":{"x":31163.038080304315,"y":28763.09242213212},"targetPosition":{"x":30728.598662820616,"y":28855.087452087282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Cancel Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"fb87ce68-53e9-4553-a0d4-c996920c9b7a","savedPayload":{"position":{"x":32723.176693428482,"y":30781.150517978276},"targetPosition":{"x":32364.583361990008,"y":30520.611601156663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1c9f9e96-a31d-42dc-a72f-ee8c25057426","savedPayload":{"position":{"x":32364.583361990008,"y":30520.611601156663},"targetPosition":{"x":32005.8214763321,"y":30259.98272123045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"2d8cbbda-0c6c-4f48-ab1a-4f3ee6cb46d1","savedPayload":{"position":{"x":31904.79503351319,"y":31120.06777220819},"targetPosition":{"x":31950.924122443583,"y":30679.179072055602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e4719fbb-2730-46bf-9593-75e9544d860c","savedPayload":{"position":{"x":31950.924122443583,"y":30679.179072055602},"targetPosition":{"x":32005.8214763321,"y":30259.98272123045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"60819e62-c36a-4cf6-86ea-09aa1046f1b7","savedPayload":{"position":{"x":32005.8214763321,"y":30259.98272123045},"targetPosition":{"x":31825.213568535517,"y":29854.67915149992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"297f0537-a281-46ab-89a4-9aab36495673","savedPayload":{"position":{"x":30819.53503532434,"y":29283.148889042415},"targetPosition":{"x":30728.598662820616,"y":28855.087452087282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"e3b43a25-cbb0-4ebc-ac2f-148a56d7d934"}}}],"announcements":[],"id":"83f85765-e13b-406a-bd56-7fd820eebc16","savedPayload":{"position":{"x":38022.304531093505,"y":32205.25108917128},"targetPosition":{"x":37821.56534918585,"y":31982.307641528063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cf907f3e-a01a-4ffb-9e3b-23ea0d8f34d1","savedPayload":{"position":{"x":37219.34780346287,"y":31313.47729859841},"targetPosition":{"x":37018.60862155521,"y":31090.53385095519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"3f7a5501-fa20-4b3b-b038-2297cb2fd04e","savedPayload":{"position":{"x":34800.60862155521,"y":31092.53385095519},"targetPosition":{"x":34515.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"b8a7ff2a-dc3b-43e0-9226-b8e6f532c476","savedPayload":{"position":{"x":37762.40401686815,"y":30835.837765917335},"targetPosition":{"x":37464.04744825767,"y":30867.196304897632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2bc75a78-2139-4752-82be-2f5a8a7928fd","savedPayload":{"position":{"x":37464.04744825767,"y":30867.196304897632},"targetPosition":{"x":37165.69087964718,"y":30898.55484387793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value","project":"Superalgos","id":"a56977af-ba08-4617-a417-4edb66c5ca2f","savedPayload":{"position":{"x":37518.36203102267,"y":31383.965040502895},"targetPosition":{"x":37342.026455334926,"y":31141.259942190412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"28601045-4302-4e44-9f9c-6f789094a474","savedPayload":{"position":{"x":37342.026455334926,"y":31141.259942190412},"targetPosition":{"x":37165.69087964718,"y":30898.55484387793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1a05ddeb-09bf-4284-bc2a-bfee83eee2c7","savedPayload":{"position":{"x":37165.69087964718,"y":30898.55484387793},"targetPosition":{"x":36891.62724235441,"y":30776.53385095519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Quick Exit","config":"{\n\"percentageOfAlgorithmSize\": 100,\n\"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"b862adde-91b6-4146-a860-7fe3c44f43d4","savedPayload":{"position":{"x":37111.13701521649,"y":32865.02983122857},"targetPosition":{"x":37079.77847623619,"y":32566.673262618082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9568610b-062b-4f5c-95b7-8ff55754334d","savedPayload":{"position":{"x":37079.77847623619,"y":32566.673262618082},"targetPosition":{"x":37048.419937255894,"y":32268.316694007597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"76be967f-7051-4fa8-9f3c-255c8cf12d77","savedPayload":{"position":{"x":37048.419937255894,"y":32268.316694007597},"targetPosition":{"x":37017.0613982756,"y":31969.960125397116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"3c2ba6d3-e215-4a9f-9b48-9c9340086dda","savedPayload":{"position":{"x":37017.0613982756,"y":31969.960125397116},"targetPosition":{"x":36985.7028592953,"y":31671.603556786635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"69200cc2-ab70-45f4-ae63-29cb1bd73d0a","savedPayload":{"position":{"x":36985.7028592953,"y":31671.603556786635},"targetPosition":{"x":36954.344320315,"y":31373.246988176154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"47778ccf-4a59-4ce1-93f2-110cdd8e900b","savedPayload":{"position":{"x":36954.344320315,"y":31373.246988176154},"targetPosition":{"x":36922.985781334704,"y":31074.890419565672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d6ffda9f-f303-48be-8de2-d6d68c3e76c8","savedPayload":{"position":{"x":36922.985781334704,"y":31074.890419565672},"targetPosition":{"x":36891.62724235441,"y":30776.53385095519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"3b34675d-60d7-44ef-9ef7-c434fe9ca560","savedPayload":{"position":{"x":34691.62724235441,"y":31242.53385095519},"targetPosition":{"x":34515.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"77e56192-a0b0-4786-afdb-8e59ba757ccf","savedPayload":{"position":{"x":34515.291666666664,"y":30999.82875264271},"targetPosition":{"x":34215.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading Strategy","name":"S3 - 2H Down","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"0c6d7b91-4bbf-4e27-850c-6348ffea4055","savedPayload":{"position":{"x":36941.73020320117,"y":30192.21005423667},"targetPosition":{"x":37118.065778888915,"y":30434.915152549154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9c8b0541-0125-4ed1-8bcb-2d8a539bcc85","savedPayload":{"position":{"x":37118.065778888915,"y":30434.915152549154},"targetPosition":{"x":37294.40135457666,"y":30677.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"b09863b6-7ea3-4929-8b3c-f99409fb1bf1","savedPayload":{"position":{"x":37108.991157951685,"y":30106.986341084546},"targetPosition":{"x":37201.69625626417,"y":30392.30329597309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"26835b4a-83a2-4209-84a0-e38c74ff993a","savedPayload":{"position":{"x":37201.69625626417,"y":30392.30329597309},"targetPosition":{"x":37294.40135457666,"y":30677.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"2fc1bc08-9def-4a37-abc3-dbac24a2c360","savedPayload":{"position":{"x":37294.40135457666,"y":30077.620250861637},"targetPosition":{"x":37294.40135457666,"y":30377.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1fa5642c-48f4-492b-81d3-5d752decd8af","savedPayload":{"position":{"x":37294.40135457666,"y":30377.620250861637},"targetPosition":{"x":37294.40135457666,"y":30677.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Down","code":"chart.at02hs.bollingerBand.direction === \"Up\"","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"07c23ae8-6440-4b6e-aabe-67afdba80c7c","savedPayload":{"position":{"x":37479.81155120163,"y":30106.986341084546},"targetPosition":{"x":37387.106452889144,"y":30392.30329597309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c14a9e3b-6d84-44c9-8273-1a37850087b4","savedPayload":{"position":{"x":37387.106452889144,"y":30392.30329597309},"targetPosition":{"x":37294.40135457666,"y":30677.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Up","code":"chart.at02hs.bollingerBand.direction === \"Up\"","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"57d558fd-ecfa-429a-9304-88f41b32b44c","savedPayload":{"position":{"x":37647.07250595214,"y":30192.21005423667},"targetPosition":{"x":37470.7369302644,"y":30434.915152549154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ab49ca45-333d-4ed9-99a1-a3ca632cbbb2","savedPayload":{"position":{"x":37470.7369302644,"y":30434.915152549154},"targetPosition":{"x":37294.40135457666,"y":30677.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H NOT Side","code":"chart.at04hs.bollingerSubChannel.slope === \"Side\"","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope != \"Side\"","project":"Superalgos","id":"261d9835-4d23-4b58-946d-b9324d920273","savedPayload":{"position":{"x":37779.81155120163,"y":30324.94909948615},"targetPosition":{"x":37537.106452889144,"y":30501.284675173894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4d450dc4-bfbb-4779-b070-cac385b809c7","savedPayload":{"position":{"x":37537.106452889144,"y":30501.284675173894},"targetPosition":{"x":37294.40135457666,"y":30677.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H RSI > 60","code":"chart.at24hs.rsi14.value < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.rsi14.value > 60","project":"Superalgos","id":"c0afd580-e4b8-4c7c-ac4c-7370e5a79a98","savedPayload":{"position":{"x":37865.035264353755,"y":30492.21005423667},"targetPosition":{"x":37579.71830946521,"y":30584.915152549154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"95207d90-4af8-4b5a-8321-0076e8b8929d","savedPayload":{"position":{"x":37579.71830946521,"y":30584.915152549154},"targetPosition":{"x":37294.40135457666,"y":30677.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"92ef2b33-6bd1-4ab7-91a4-ddb3e035ed08","savedPayload":{"position":{"x":37894.40135457666,"y":30677.620250861637},"targetPosition":{"x":37594.40135457666,"y":30677.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3ac7ebe1-3f6f-4e35-a8a2-f39aa509c849","savedPayload":{"position":{"x":37594.40135457666,"y":30677.620250861637},"targetPosition":{"x":37294.40135457666,"y":30677.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 3: 02H Down && 4H Side && 1H Medium, Steep or Extreme","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Down\" && chart.at12hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerSubChannel.slope === \"Side\" && (chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\")) {false} else {true}","project":"Superalgos","id":"6ef3aec8-78cb-4942-bcfd-ff860b2b7971","savedPayload":{"position":{"x":37865.035264353755,"y":30863.030447486602},"targetPosition":{"x":37579.71830946521,"y":30770.32534917412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5af02e84-f067-45ee-8d7e-44966254e430","savedPayload":{"position":{"x":37579.71830946521,"y":30770.32534917412},"targetPosition":{"x":37294.40135457666,"y":30677.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20017afc-2e99-4596-9a1d-41b8b8ee7999","savedPayload":{"position":{"x":37294.40135457666,"y":30677.620250861637},"targetPosition":{"x":37118.065778888915,"y":30920.32534917412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"e6080867-291e-4dc7-b00f-582656e25e80","savedPayload":{"position":{"x":37118.065778888915,"y":30920.32534917412},"targetPosition":{"x":36941.73020320117,"y":31163.030447486602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","project":"Superalgos","id":"890f22bb-d291-4fdd-b444-5afbea478f13","savedPayload":{"position":{"x":31414.3174286547,"y":28295.415640704618},"targetPosition":{"x":31088.537319585448,"y":28346.3096726738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ef921c85-8bd3-49cc-aeaa-2556181fec27","savedPayload":{"position":{"x":31088.537319585448,"y":28346.3096726738},"targetPosition":{"x":30762.5709795214,"y":28398.387854006236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d4217f36-b6e4-45dc-979d-5ad1e74d0b85","savedPayload":{"position":{"x":30762.5709795214,"y":28398.387854006236},"targetPosition":{"x":30400.520368511934,"y":28455.712099738113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"92cd971f-1315-425e-883c-4adefb12883e","savedPayload":{"position":{"x":37089.883454290444,"y":31139.56527773057},"targetPosition":{"x":36941.73020320117,"y":31163.030447486602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"f5611889-2d66-4b5a-84ca-1bd444e56cb0","savedPayload":{"position":{"x":31170.08607539528,"y":28527.038016519247},"targetPosition":{"x":30904.051511136568,"y":28721.061266532975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96fdbdfc-c7d9-4e54-972c-de01d3f58a76","savedPayload":{"position":{"x":30904.051511136568,"y":28721.061266532975},"targetPosition":{"x":30637.994358093514,"y":28914.762398661194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"ccd315a6-ae1c-4fcf-b6d4-deac89aef390","savedPayload":{"position":{"x":31262.48907735243,"y":28708.77258316442},"targetPosition":{"x":30950.997838714247,"y":28813.477755918284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"382fb23e-b4bc-4792-a492-328fa6201f6c","savedPayload":{"position":{"x":30950.997838714247,"y":28813.477755918284},"targetPosition":{"x":30637.994358093514,"y":28914.762398661194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"cbc7b7f8-b6f1-4752-9259-6372178089e4","savedPayload":{"position":{"x":31298.687545034096,"y":28915.160331027575},"targetPosition":{"x":30968.847711589355,"y":28915.570711517896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"74975af2-4802-47bc-8251-97981c77dc4a","savedPayload":{"position":{"x":30968.847711589355,"y":28915.570711517896},"targetPosition":{"x":30637.994358093514,"y":28914.762398661194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Down","code":"chart.at02hs.bollingerBand.direction === \"Up\"","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"b7bdf1ce-16a5-4fc0-a87b-f8815615ef99","savedPayload":{"position":{"x":31263.08438131275,"y":29115.90411641114},"targetPosition":{"x":30951.05218496165,"y":29017.098469734265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a1e09269-19e5-4dff-8aeb-66d8bf6bd96d","savedPayload":{"position":{"x":30951.05218496165,"y":29017.098469734265},"targetPosition":{"x":30637.994358093514,"y":28914.762398661194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Up","code":"chart.at02hs.bollingerBand.direction === \"Up\"","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"c516d181-ad48-49cd-a298-fddb6e91de94","savedPayload":{"position":{"x":31171.52957208873,"y":29302.956437265246},"targetPosition":{"x":30905.375264537026,"y":29109.78758536721},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d57a06c7-d40b-4488-93fe-f7441dd299c6","savedPayload":{"position":{"x":30905.375264537026,"y":29109.78758536721},"targetPosition":{"x":30637.994358093514,"y":28914.762398661194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H NOT Side","code":"chart.at04hs.bollingerSubChannel.slope === \"Side\"","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope != \"Side\"","project":"Superalgos","id":"9fabe671-7d14-43b5-ba69-831f4f2a066f","savedPayload":{"position":{"x":31026.16947841445,"y":29445.145002547026},"targetPosition":{"x":30831.55109461194,"y":29181.564929910513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"177c777c-ff05-4dc0-8b6b-d663b7329938","savedPayload":{"position":{"x":30831.55109461194,"y":29181.564929910513},"targetPosition":{"x":30637.994358093514,"y":28914.762398661194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H RSI > 60","code":"chart.at24hs.rsi14.value < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.rsi14.value > 60","project":"Superalgos","id":"e48e0eea-8553-4baa-ab82-de8e822619b3","savedPayload":{"position":{"x":30842.12087487519,"y":29538.89596896828},"targetPosition":{"x":30739.28350911039,"y":29226.871666737672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ee231079-650d-4046-8e5b-ad3a82e09efa","savedPayload":{"position":{"x":30739.28350911039,"y":29226.871666737672},"targetPosition":{"x":30637.994358093514,"y":28914.762398661194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"241ea7c4-ec8c-4f74-994f-27cdc3cc5084","savedPayload":{"position":{"x":30640.5405985436,"y":29573.97579321247},"targetPosition":{"x":30637.610420856836,"y":29245.27333622449},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b1bb2780-2f92-47da-9ea5-39d0397e7144","savedPayload":{"position":{"x":30637.610420856836,"y":29245.27333622449},"targetPosition":{"x":30637.994358093514,"y":28914.762398661194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 3: 02H Down && 4H Side && 1H Medium, Steep or Extreme","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Down\" && chart.at12hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerSubChannel.slope === \"Side\" && (chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\")) {false} else {true}","project":"Superalgos","id":"35f95b09-f037-43ba-96f9-fa9d7d677bea","savedPayload":{"position":{"x":30437.08340736183,"y":29539.07626458395},"targetPosition":{"x":30534.098685811034,"y":29225.435375311725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6d92e5f1-7164-4f38-9a56-07334aee23fd","savedPayload":{"position":{"x":30534.098685811034,"y":29225.435375311725},"targetPosition":{"x":30637.994358093514,"y":28914.762398661194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2f0018b8-a386-4eb2-8cf8-b61c00af7639","savedPayload":{"position":{"x":30637.994358093514,"y":28914.762398661194},"targetPosition":{"x":30341.576475936905,"y":28699.688984745393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"a937976d-4084-4184-a913-910b75ed6659","savedPayload":{"position":{"x":37184.43530151366,"y":31339.366023174345},"targetPosition":{"x":36941.73020320117,"y":31163.030447486602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"def5d0af-b5ee-43f9-9ea0-0b73cd37d82e","savedPayload":{"position":{"x":36941.73020320117,"y":31163.030447486602},"targetPosition":{"x":36645.42370102263,"y":31209.960786998672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"My Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"0b0e860d-f3c3-4372-9873-4a9dd4e9d100","savedPayload":{"position":{"x":27883.404137703503,"y":27020.980158767794},"targetPosition":{"x":27962.593635858742,"y":27228.341033963836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d340cdb1-a381-4206-a857-07ae5d92ad04","savedPayload":{"position":{"x":27962.593635858742,"y":27228.341033963836},"targetPosition":{"x":28120.887727664493,"y":27642.082447776105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.episodeBaseAsset.balance.value","project":"Superalgos","id":"f3292c7f-4273-4130-a41d-8d8d16133ff3","savedPayload":{"position":{"x":28538.25225147877,"y":27124.92435611169},"targetPosition":{"x":28399.301500681046,"y":27297.625137149545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"459ba766-3c86-4b1c-81ee-467a438ff57d","savedPayload":{"position":{"x":28399.301500681046,"y":27297.625137149545},"targetPosition":{"x":28120.887727664493,"y":27642.082447776105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4dcaba6c-a6cc-4893-858b-0c21fb1b3849","savedPayload":{"position":{"x":37062.520088492325,"y":31338.307543484094},"targetPosition":{"x":36912.72565827914,"y":31346.157936920536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Quick Entry","config":"{\n\"percentageOfAlgorithmSize\": 100\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"c9114021-830b-42a4-a360-4c2bbf1cbe60","savedPayload":{"position":{"x":31267.236296113108,"y":30841.158852651693},"targetPosition":{"x":31089.04250438432,"y":30566.63563771385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1cda8d70-96d1-4f9d-a532-047fc4a3179c","savedPayload":{"position":{"x":31089.04250438432,"y":30566.63563771385},"targetPosition":{"x":30910.13260274625,"y":30291.000940031132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"43a8d235-6498-4bf5-9a01-4ffe21dec3a1","savedPayload":{"position":{"x":30910.13260274625,"y":30291.000940031132},"targetPosition":{"x":30731.81429666208,"y":30014.30806968196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"d085a3ab-b86b-4fae-a802-e45d30212b12","savedPayload":{"position":{"x":30731.81429666208,"y":30014.30806968196},"targetPosition":{"x":30552.12214729171,"y":29738.005517680074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5f38bb78-6259-4ceb-a80e-9acd18e3daa2","savedPayload":{"position":{"x":30552.12214729171,"y":29738.005517680074},"targetPosition":{"x":30373.49788098172,"y":29463.179795115248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"e2222c7e-1bd3-4a7c-9774-48cd1cc16d3d","savedPayload":{"position":{"x":30373.49788098172,"y":29463.179795115248},"targetPosition":{"x":30192.65461372908,"y":29184.67193358906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"759388ff-86bc-41f0-9ec7-9964e904e630","savedPayload":{"position":{"x":36994.42151353139,"y":31471.95852211235},"targetPosition":{"x":36912.72565827914,"y":31346.157936920536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"69a1d5f7-b453-489d-bf1b-b25c2bdcaa48","savedPayload":{"position":{"x":36912.72565827914,"y":31346.157936920536},"targetPosition":{"x":36645.42370102263,"y":31209.960786998672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Slow Run","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 1.03","project":"Superalgos","id":"d86eeec2-43f3-453c-8d05-2ef2723a241b","savedPayload":{"position":{"x":30628.750458731716,"y":29444.22584982375},"targetPosition":{"x":30335.641900646377,"y":29593.364568646706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < tradingEngine.current.position.entryTargetRate.value * 0.97","project":"Superalgos","id":"f903c817-fc50-48ab-abd4-9b58953e95b7","savedPayload":{"position":{"x":31354.35293324729,"y":29004.36124045612},"targetPosition":{"x":31190.350033326875,"y":29012.728621250448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"abd14bc4-e08a-4804-a38d-379dc8869915","savedPayload":{"position":{"x":31190.350033326875,"y":29012.728621250448},"targetPosition":{"x":31012.159511378668,"y":29021.900387965332},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3e9ec975-1cfd-4629-86c2-01a2b7cee8fc","savedPayload":{"position":{"x":31012.159511378668,"y":29021.900387965332},"targetPosition":{"x":30798.162689666744,"y":29032.850857985562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"86e1e0cc-e723-4488-97cc-e5df9ff768b4","savedPayload":{"position":{"x":30318.592456730752,"y":29922.378034473746},"targetPosition":{"x":30335.641900646377,"y":29593.364568646706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"9bf160d5-af24-47b8-a457-59da431e3fe3","savedPayload":{"position":{"x":30335.985236418375,"y":29593.585798081505},"targetPosition":{"x":30000.263128435952,"y":29375.018041496223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 1.02 < tradingEngine.current.position.stopLoss.value) {chart.at01hs.bollingerBand.movingAverage * 1.02} else {tradingEngine.current.position.stopLoss.value}","project":"Superalgos","id":"c57b9aaa-edc1-4a24-a2f9-1eeb3eed3d5c","savedPayload":{"position":{"x":30887.882988813966,"y":29952.307069692128},"targetPosition":{"x":30611.66794025359,"y":29772.816802796347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"22d1ba82-cecd-4ebf-a9b0-c02a2dcc4385","savedPayload":{"position":{"x":30611.66794025359,"y":29772.816802796347},"targetPosition":{"x":30335.641900646377,"y":29593.364568646706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f41b282c-06b8-4a86-9c94-18173ce77526","savedPayload":{"position":{"x":36907.421436136305,"y":31558.958599507438},"targetPosition":{"x":36781.62085094449,"y":31477.262744255182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 0.95","project":"Superalgos","id":"db43ceff-373d-42f3-9109-71257f48d0bb","savedPayload":{"position":{"x":29963.419511023865,"y":30102.60700104823},"targetPosition":{"x":29687.293381288575,"y":29923.59921681066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"1H EMA7 < entryTargetRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value","project":"Superalgos","id":"b85e0a3d-dddf-4c06-8265-09a128565a72","savedPayload":{"position":{"x":31058.52588944567,"y":30833.786651167844},"targetPosition":{"x":30879.418189435026,"y":30557.66843219543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a8c6c9e7-c45b-4e14-8f6e-5bffa6f7b0f0","savedPayload":{"position":{"x":30879.418189435026,"y":30557.66843219543},"targetPosition":{"x":30700.063150956645,"y":30281.98509302498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.current.position.positionCounters.periods.value > 2","project":"Superalgos","id":"25f76ae7-93a2-47ab-be49-bf91a4ab8b37","savedPayload":{"position":{"x":30402.455539239483,"y":30868.73569754444},"targetPosition":{"x":30551.047002704865,"y":30575.35467935803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0f943c1c-645b-455a-a11d-e67435b5b68b","savedPayload":{"position":{"x":30551.047002704865,"y":30575.35467935803},"targetPosition":{"x":30700.063150956645,"y":30281.98509302498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"89136673-be89-4f40-82cf-78a32f735291","savedPayload":{"position":{"x":30700.063150956645,"y":30281.98509302498},"targetPosition":{"x":30681.660920309834,"y":29936.971426818083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"3b4bb3aa-6317-41b7-bb90-39e703fbc836","savedPayload":{"position":{"x":29394.027785704282,"y":30072.76493936967},"targetPosition":{"x":29687.293381288575,"y":29923.59921681066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"0d840032-5e32-4356-96af-434e6524664d","savedPayload":{"position":{"x":29687.293381288575,"y":29923.59921681066},"targetPosition":{"x":29708.07835823884,"y":29523.75334836753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Manage: 3% Below ema7","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.97 < tradingEngine.current.position.entryTargetRate.value * 0.97) {chart.at01hs.base7EMA.ema7 * 0.97} else {tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"214e21c2-bdab-4d05-91b2-02f327d177b8","savedPayload":{"position":{"x":29946.393108542863,"y":30430.799958743184},"targetPosition":{"x":29670.280630142137,"y":30251.783960346103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"401d2bc0-0193-42de-8a65-df43242eb516","savedPayload":{"position":{"x":28501.818840734773,"y":30459.073701008725},"targetPosition":{"x":28795.2904049326,"y":30308.68538983982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b023b429-024c-46eb-86f8-6e4e23be3b3c","savedPayload":{"position":{"x":28795.2904049326,"y":30308.68538983982},"targetPosition":{"x":29089.767308016446,"y":30158.016812615177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ee7cd341-d632-47d6-9ddf-4462e6961461","savedPayload":{"position":{"x":29089.767308016446,"y":30158.016812615177},"targetPosition":{"x":29397.421653947713,"y":30001.01592852205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"5c96f85d-f36d-496f-8c82-68bdbde4456f","savedPayload":{"position":{"x":29376.947507133722,"y":30401.02096048522},"targetPosition":{"x":29670.280630142137,"y":30251.783960346103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"241d29a5-2372-4c0b-9dd1-9c74e98d8593","savedPayload":{"position":{"x":29670.280630142137,"y":30251.783960346103},"targetPosition":{"x":29687.293381288575,"y":29923.59921681066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"54a1a04f-b59d-40d9-91d6-9716c0198983","savedPayload":{"position":{"x":29873.802401111498,"y":30824.136034971496},"targetPosition":{"x":29653.26417838019,"y":30579.922938459444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"23d9abaa-63cc-4aef-abaf-7b493213cd29","savedPayload":{"position":{"x":30246.65141582158,"y":31295.024756333136},"targetPosition":{"x":29969.773150566944,"y":31115.05454536248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"28be9fea-5e5c-4c99-b4a4-6c01a831d9ce","savedPayload":{"position":{"x":29969.773150566944,"y":31115.05454536248},"targetPosition":{"x":29694.625354176365,"y":30936.26681649351},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"c59f1c98-a4e9-40c1-8690-6543baa7a966","savedPayload":{"position":{"x":29992.316603955267,"y":31521.918904245278},"targetPosition":{"x":29842.909583427114,"y":31228.23200175602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c24d0f99-6491-40b3-94d9-49f91d354f3c","savedPayload":{"position":{"x":29842.909583427114,"y":31228.23200175602},"targetPosition":{"x":29694.625354176365,"y":30936.26681649351},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"d6b4d297-a5fa-4561-acb0-b8d3b891912e","savedPayload":{"position":{"x":29660.853960277716,"y":31594.960795931773},"targetPosition":{"x":29677.031205104722,"y":31265.17693260894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c3f66d39-dc88-4049-895a-378f492a7d35","savedPayload":{"position":{"x":29677.031205104722,"y":31265.17693260894},"targetPosition":{"x":29694.625354176365,"y":30936.26681649351},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"e9ac7090-a4d5-409d-9432-0d422f60e6e1","savedPayload":{"position":{"x":29335.298864916324,"y":31486.63353797164},"targetPosition":{"x":29515.12504217762,"y":31211.490554445976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a05e64ed-4262-42f1-b9dc-cc14f8b27c2d","savedPayload":{"position":{"x":29515.12504217762,"y":31211.490554445976},"targetPosition":{"x":29694.625354176365,"y":30936.26681649351},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div previous ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"cb158763-cb2f-494b-88ab-dafeb3825ca4","savedPayload":{"position":{"x":29108.662346425976,"y":31234.71321458},"targetPosition":{"x":29401.756647823844,"y":31085.83615624845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"386bbe6b-9082-47e7-b750-e0e9d16a7030","savedPayload":{"position":{"x":29401.756647823844,"y":31085.83615624845},"targetPosition":{"x":29694.625354176365,"y":30936.26681649351},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"32813be2-a6cd-4e5d-9a58-87eae5b3b5e9","savedPayload":{"position":{"x":29694.625354176365,"y":30936.26681649351},"targetPosition":{"x":29712.578097013517,"y":30591.046990362483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"264bdd5b-5246-4a3f-bd09-5c50baf57963","savedPayload":{"position":{"x":29687.127001026383,"y":30994.110277214997},"targetPosition":{"x":29653.26417838019,"y":30579.922938459444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"241d29a5-2372-4c0b-9dd1-9c74e98d8593"}}},{"type":"Move To Phase Event","name":"Cancel Close","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"308d9cf6-beba-4d14-9b90-bb11409e3835","savedPayload":{"position":{"x":28685.307493106106,"y":31070.38987175031},"targetPosition":{"x":28928.46656131198,"y":30851.330910451536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a787ffbe-ea25-41cb-a719-de115285eead","savedPayload":{"position":{"x":28928.46656131198,"y":30851.330910451536},"targetPosition":{"x":29172.212336936514,"y":30630.964646086664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d4b41076-5b23-498d-bc3e-1ccf277a1a43","savedPayload":{"position":{"x":29172.212336936514,"y":30630.964646086664},"targetPosition":{"x":29429.004617362232,"y":30399.743487852218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"7cb4214c-3e3e-4a70-ad14-6ae2a568f24c","savedPayload":{"position":{"x":29408.346875663025,"y":30799.857453568977},"targetPosition":{"x":29653.26417838019,"y":30579.922938459444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"241d29a5-2372-4c0b-9dd1-9c74e98d8593"}}}],"announcements":[],"id":"592ad0d7-d583-4827-8ae6-48f6ad25c1a3","savedPayload":{"position":{"x":29653.26417838019,"y":30579.922938459444},"targetPosition":{"x":29670.280630142137,"y":30251.783960346103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.8 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.8} else \n{tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"580ecace-0d6d-4632-ad8d-e6dc86df51c8","savedPayload":{"position":{"x":29899.364120937164,"y":31066.547004323686},"targetPosition":{"x":29623.511054874885,"y":30886.983540492874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Cancel Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"bf6a5ecf-f5c8-4d13-a15c-1b567422bee0","savedPayload":{"position":{"x":19029.764085880444,"y":26496.17139964985},"targetPosition":{"x":18863.366996299963,"y":26122.22514428357},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ca87de8b-af92-4d83-af59-7c71f17e1be4","savedPayload":{"position":{"x":18863.366996299963,"y":26122.22514428357},"targetPosition":{"x":18696.865053089474,"y":25748.069407462383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"d626af7e-c8bb-4e17-95e5-ba5abda158d8","savedPayload":{"position":{"x":18215.965566488427,"y":26410.63625659715},"targetPosition":{"x":18456.385995020508,"y":26079.431586512917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"98a76d2a-1ec4-413c-85b2-59865c6e1187","savedPayload":{"position":{"x":18456.385995020508,"y":26079.431586512917},"targetPosition":{"x":18696.865053089474,"y":25748.069407462383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9406f175-4d00-436d-ab9e-27081d36611b","savedPayload":{"position":{"x":18696.865053089474,"y":25748.069407462383},"targetPosition":{"x":18739.410533983973,"y":25340.537448332063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"aef3e320-bbaf-42e5-8083-21157428bfaf","savedPayload":{"position":{"x":29444.434095928715,"y":31163.215897061025},"targetPosition":{"x":29623.511054874885,"y":30886.983540492874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"241d29a5-2372-4c0b-9dd1-9c74e98d8593"}}}],"announcements":[],"id":"9b594083-3fb0-4dfa-ba4b-1b1ada8687fe","savedPayload":{"position":{"x":29623.511054874885,"y":30886.983540492874},"targetPosition":{"x":29653.26417838019,"y":30579.922938459444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"80d81cb5-6a3a-4eff-ad9f-5590450c7366","savedPayload":{"position":{"x":36773.77045750805,"y":31627.05717446837},"targetPosition":{"x":36781.62085094449,"y":31477.262744255182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"3ea826ac-fe6b-4b8c-a0dc-f830202e8306","savedPayload":{"position":{"x":36781.62085094449,"y":31477.262744255182},"targetPosition":{"x":36645.42370102263,"y":31209.960786998672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"b4e3481e-02c3-4b1a-b0fc-b45ea73bb669","savedPayload":{"position":{"x":30014.18102670089,"y":30031.86045648549},"targetPosition":{"x":29758.95720075127,"y":29824.500662033657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ba7855bc-df15-4472-bab3-6f7e54becbe2","savedPayload":{"position":{"x":29758.95720075127,"y":29824.500662033657},"targetPosition":{"x":29441.24507605964,"y":29566.366849256083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value","project":"Superalgos","id":"395f39ec-ec09-4bb6-9f12-e8ee9b7597a8","savedPayload":{"position":{"x":29326.14826859976,"y":30294.033295551068},"targetPosition":{"x":29377.49627452898,"y":29969.211619681766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b8c905c4-1526-48e8-9ad9-e946f7e5fcd8","savedPayload":{"position":{"x":29377.49627452898,"y":29969.211619681766},"targetPosition":{"x":29441.24507605964,"y":29566.366849256083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fab71da1-214c-48e3-af1c-07502a6faabb","savedPayload":{"position":{"x":36652.24855394236,"y":31646.304353151794},"targetPosition":{"x":36598.49336151056,"y":31506.267289177213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Quick Exit","config":"{\n\"percentageOfAlgorithmSize\": 100,\n\"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"e4c80caa-13c7-489e-a47c-294c01bd2703","savedPayload":{"position":{"x":26928.950308228996,"y":29470.989509943145},"targetPosition":{"x":26888.374522680926,"y":29278.809978069694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cbe12b3f-1a4a-4700-906f-fceb0606fcfe","savedPayload":{"position":{"x":26888.374522680926,"y":29278.809978069694},"targetPosition":{"x":26847.693191545106,"y":29085.95649903469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ddb0a9e7-a6eb-4607-968a-2f42ac3a8d60","savedPayload":{"position":{"x":26847.693191545106,"y":29085.95649903469},"targetPosition":{"x":26798.164770546806,"y":28851.42195851409},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"4018e1b8-c111-492f-b1c8-3b86633fb347","savedPayload":{"position":{"x":28446.92406850885,"y":30342.968105805696},"targetPosition":{"x":28653.961663737085,"y":30087.154074591956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9d2f1590-9146-49cd-9e1f-d6b5baeecf4b","savedPayload":{"position":{"x":28653.961663737085,"y":30087.154074591956},"targetPosition":{"x":28860.26723061133,"y":29832.209026900367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"4a3fc4cf-8739-472e-a5f0-93b022eed042","savedPayload":{"position":{"x":28860.26723061133,"y":29832.209026900367},"targetPosition":{"x":29117.101720726136,"y":29514.851190096342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"06f7907c-2767-4a2f-881d-46c6b8b207ce","savedPayload":{"position":{"x":36504.095302853086,"y":31622.839183395758},"targetPosition":{"x":36598.49336151056,"y":31506.267289177213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"b81728f5-c26c-47a9-b659-456150614134","savedPayload":{"position":{"x":36598.49336151056,"y":31506.267289177213},"targetPosition":{"x":36645.42370102263,"y":31209.960786998672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4af71378-a61f-4d1d-a1cd-6933897ef3bd","savedPayload":{"position":{"x":34427.42370102263,"y":31211.960786998672},"targetPosition":{"x":34215.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading Strategy","name":"S8 - 4H Up","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"0b8368d3-b1b1-413b-bbeb-95641a85b80f","savedPayload":{"position":{"x":35314.11259279449,"y":30466.261045287967},"targetPosition":{"x":35256.437806609996,"y":30912.549762419123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6034fcd2-8d4d-48b8-a392-18535fa70a53","savedPayload":{"position":{"x":35256.437806609996,"y":30912.549762419123},"targetPosition":{"x":35198.763020425504,"y":31358.83847955028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"5e94af5d-2be9-4ae9-ae44-2867f755a827","savedPayload":{"position":{"x":35560.90824735666,"y":30534.914432922815},"targetPosition":{"x":35379.83563389108,"y":30946.876456236547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f811cfed-9f3e-4211-84da-066b038d0b33","savedPayload":{"position":{"x":35379.83563389108,"y":30946.876456236547},"targetPosition":{"x":35198.763020425504,"y":31358.83847955028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"9d5052c6-8411-4f18-ace8-17f021dfd5e2","savedPayload":{"position":{"x":35778.36504939348,"y":30670.31724675044},"targetPosition":{"x":35488.56403490949,"y":31014.57786315036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d4f2d1aa-32fd-4345-8291-3da0a9bf3fc5","savedPayload":{"position":{"x":35488.56403490949,"y":31014.57786315036},"targetPosition":{"x":35198.763020425504,"y":31358.83847955028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"3347b5df-6552-43dd-8265-43bb7d87df98","savedPayload":{"position":{"x":35948.86594206929,"y":30861.499956066065},"targetPosition":{"x":35573.8144812474,"y":31110.169217808172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7a4b6d88-b433-435d-a683-6eb73780f27b","savedPayload":{"position":{"x":35573.8144812474,"y":31110.169217808172},"targetPosition":{"x":35198.763020425504,"y":31358.83847955028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"3bf685d6-ac1f-4bab-a7f1-8450ee657948","savedPayload":{"position":{"x":36058.59795706737,"y":31092.974074768295},"targetPosition":{"x":35628.68048874644,"y":31225.906277159287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"22eebcad-ee09-4e3b-897e-9495bb82784d","savedPayload":{"position":{"x":35628.68048874644,"y":31225.906277159287},"targetPosition":{"x":35198.763020425504,"y":31358.83847955028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Side or 1H Extreme or Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope === \"Side\" || (chart.at04hs.bollingerSubChannel.slope === \"Gentle\" && (chart.at01hs.bollingerSubChannel.slope === \"Extreme\" || chart.at01hs.bollingerSubChannel.slope === \"Side\"))","project":"Superalgos","id":"d5a69ea3-5ae1-4e4b-b858-8844f20f6369","savedPayload":{"position":{"x":36098.671259134,"y":31345.986946389472},"targetPosition":{"x":35648.71713977975,"y":31352.412712969875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"54ac9a91-76eb-4d28-9d75-bcad0008c481","savedPayload":{"position":{"x":35648.71713977975,"y":31352.412712969875},"targetPosition":{"x":35198.763020425504,"y":31358.83847955028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"e84f9d0b-15fc-4656-a2ed-392304b44df3","savedPayload":{"position":{"x":36065.839347660825,"y":31600.04097279632},"targetPosition":{"x":35632.301184043165,"y":31479.4397261733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"658b7720-b18e-42d0-9cb3-7f5c71928409","savedPayload":{"position":{"x":35632.301184043165,"y":31479.4397261733},"targetPosition":{"x":35198.763020425504,"y":31358.83847955028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 3: 02H Down && 4H Side && 1H Medium, Steep or Extreme","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Down\" && chart.at12hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerSubChannel.slope === \"Side\" && (chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\")) {false} else {true}","project":"Superalgos","id":"84b0abb3-cf34-491e-9436-4fdb07ee4977","savedPayload":{"position":{"x":35962.76206885653,"y":31834.554207686837},"targetPosition":{"x":35580.76254464102,"y":31596.696343618558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f39b86b4-5a2a-470c-8503-0ee11eab51f6","savedPayload":{"position":{"x":35580.76254464102,"y":31596.696343618558},"targetPosition":{"x":35198.763020425504,"y":31358.83847955028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 4: 02H Up && 02H Gentle && 3H Side","code":"chart.at02hs.percentageBandwidth.movingAverage > chart.at24hs.bollingerSubChannel.slope + chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Gentle\" && chart.at03hs.bollingerSubChannel.slope === \"Side\") {false} else {true}","project":"Superalgos","id":"3bde8f4f-c2e3-413b-8df1-37aeb20a85f9","savedPayload":{"position":{"x":35797.79013082563,"y":32030.5277834741},"targetPosition":{"x":35498.27657562557,"y":31694.68313151219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"04fd8c8d-8074-4932-b3e1-56357c7829ea","savedPayload":{"position":{"x":35498.27657562557,"y":31694.68313151219},"targetPosition":{"x":35198.763020425504,"y":31358.83847955028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 2: 02H, 03H, 04H, 06H, all Up && 2H Steep && 1H, 6H NOT Gentle","code":"chart.at24hs.bollingerChannel.direction + chart.at24hs.bollingerBand.slope > chart.at01hs.rsi14.value","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerSubChannel.direction === \"Up\" && chart.at03hs.bollingerSubChannel.direction === \"Up\" && chart.at04hs.bollingerSubChannel.direction === \"Up\" && chart.at06hs.bollingerSubChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Steep\" && chart.at01hs.bollingerSubChannel.slope != \"Gentle\" && chart.at06hs.bollingerSubChannel.slope != \"Gentle\") {false} else {true}","project":"Superalgos","id":"cf1a034f-093e-422f-ba6f-ec4c3ce091d2","savedPayload":{"position":{"x":35584.28857886153,"y":32172.08508654756},"targetPosition":{"x":35391.52579964352,"y":31765.46178304892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"69c8d1ca-52b4-4eed-a65b-7a8a870bb46d","savedPayload":{"position":{"x":35391.52579964352,"y":31765.46178304892},"targetPosition":{"x":35198.763020425504,"y":31358.83847955028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"64643171-239b-49ac-adc7-0124075eb96e","savedPayload":{"position":{"x":35198.763020425504,"y":31358.83847955028},"targetPosition":{"x":34754.303267157695,"y":31429.23398881838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9c8b28ef-af88-416c-9262-20efbf357408","savedPayload":{"position":{"x":34754.303267157695,"y":31429.23398881838},"targetPosition":{"x":34457.99676497915,"y":31476.16432833045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","project":"Superalgos","id":"09286632-34ad-4ea0-9f01-32bd89b20900","savedPayload":{"position":{"x":30519.77668544699,"y":29902.464765692268},"targetPosition":{"x":30266.652518669805,"y":29718.199237967332},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f75343e2-3c65-413b-85de-8e88a1f91e09","savedPayload":{"position":{"x":30266.652518669805,"y":29718.199237967332},"targetPosition":{"x":30012.543549092195,"y":29533.717903239143},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"68074fb6-7ca9-43a7-a83c-abcd0c55148c","savedPayload":{"position":{"x":30012.543549092195,"y":29533.717903239143},"targetPosition":{"x":29723.598269035574,"y":29324.737995775577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"07f812fb-602f-4713-871d-648faa64a6ce","savedPayload":{"position":{"x":34579.34931413539,"y":31564.332116174322},"targetPosition":{"x":34457.99676497915,"y":31476.16432833045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"07c87bc6-f04b-4a08-88c3-82df8036a971","savedPayload":{"position":{"x":37685.90004802164,"y":32330.28015614579},"targetPosition":{"x":37239.61133089048,"y":32272.605369961297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9a120c5b-3fda-4ff3-89af-621d53b2e075","savedPayload":{"position":{"x":37239.61133089048,"y":32272.605369961297},"targetPosition":{"x":36793.32261375932,"y":32214.930583776804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"d054b93f-3378-49e9-9e18-73373b1ec935","savedPayload":{"position":{"x":37617.24666038679,"y":32577.075810707967},"targetPosition":{"x":37205.284637073055,"y":32396.003197242386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cbc32f34-4189-4526-a323-9291e672495c","savedPayload":{"position":{"x":37205.284637073055,"y":32396.003197242386},"targetPosition":{"x":36793.32261375932,"y":32214.930583776804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"562f3238-94f0-41af-8d61-f9984bc8bd0b","savedPayload":{"position":{"x":37481.84384655917,"y":32794.53261274478},"targetPosition":{"x":37137.583230159245,"y":32504.73159826079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d5b4549d-92bd-4c3e-af81-884899aae8d9","savedPayload":{"position":{"x":37137.583230159245,"y":32504.73159826079},"targetPosition":{"x":36793.32261375932,"y":32214.930583776804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"ce7a4a64-743a-443d-a825-b02c25d4b55a","savedPayload":{"position":{"x":37290.661137243536,"y":32965.03350542059},"targetPosition":{"x":37041.99187550143,"y":32589.9820445987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4b992367-9f3a-4ce3-b389-2fc84c8cca16","savedPayload":{"position":{"x":37041.99187550143,"y":32589.9820445987},"targetPosition":{"x":36793.32261375932,"y":32214.930583776804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"a1c10e9c-19b9-4805-b441-ce3ec64b23a1","savedPayload":{"position":{"x":37059.187018541306,"y":33074.765520418674},"targetPosition":{"x":36926.254816150315,"y":32644.84805209774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f5f2b1bb-f847-4994-a1ab-5252c7c685c6","savedPayload":{"position":{"x":36926.254816150315,"y":32644.84805209774},"targetPosition":{"x":36793.32261375932,"y":32214.930583776804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Side or 1H Extreme or Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope === \"Side\" || (chart.at04hs.bollingerSubChannel.slope === \"Gentle\" && (chart.at01hs.bollingerSubChannel.slope === \"Extreme\" || chart.at01hs.bollingerSubChannel.slope === \"Side\"))","project":"Superalgos","id":"3d26867a-7ffc-4b17-a226-c2cf2d02a1ae","savedPayload":{"position":{"x":36806.17414692013,"y":33114.8388224853},"targetPosition":{"x":36799.748380339726,"y":32664.88470313105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a96f6aed-5ba0-458e-b073-a14a7030a4ce","savedPayload":{"position":{"x":36799.748380339726,"y":32664.88470313105},"targetPosition":{"x":36793.32261375932,"y":32214.930583776804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"f674d92e-8b5b-4a88-9c97-c0499fea9f41","savedPayload":{"position":{"x":36552.120120513275,"y":33082.006911012126},"targetPosition":{"x":36672.7213671363,"y":32648.468747394465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b0663ef7-ad0e-44eb-8448-87c92b066de1","savedPayload":{"position":{"x":36672.7213671363,"y":32648.468747394465},"targetPosition":{"x":36793.32261375932,"y":32214.930583776804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 3: 02H Down && 4H Side && 1H Medium, Steep or Extreme","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Down\" && chart.at12hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerSubChannel.slope === \"Side\" && (chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\")) {false} else {true}","project":"Superalgos","id":"6337812b-5df1-428e-9d36-f7935dde3ca7","savedPayload":{"position":{"x":36317.60688562277,"y":32978.92963220782},"targetPosition":{"x":36555.46474969105,"y":32596.930107992313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cda16118-0ec1-4313-bb27-be56055bb89a","savedPayload":{"position":{"x":36555.46474969105,"y":32596.930107992313},"targetPosition":{"x":36793.32261375932,"y":32214.930583776804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 4: 02H Up && 02H Gentle && 3H Side","code":"chart.at02hs.percentageBandwidth.movingAverage > chart.at24hs.bollingerSubChannel.slope + chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Gentle\" && chart.at03hs.bollingerSubChannel.slope === \"Side\") {false} else {true}","project":"Superalgos","id":"d467380e-37f7-4d69-8384-c766fa7511ef","savedPayload":{"position":{"x":36121.6333098355,"y":32813.957694176934},"targetPosition":{"x":36457.47796179741,"y":32514.44413897687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"90afdd8d-1565-42b1-abbb-e88eb2e359db","savedPayload":{"position":{"x":36457.47796179741,"y":32514.44413897687},"targetPosition":{"x":36793.32261375932,"y":32214.930583776804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 2: 02H, 03H, 04H, 06H, all Up && 2H Steep && 1H, 6H NOT Gentle","code":"chart.at24hs.bollingerChannel.direction + chart.at24hs.bollingerBand.slope > chart.at01hs.rsi14.value","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerSubChannel.direction === \"Up\" && chart.at03hs.bollingerSubChannel.direction === \"Up\" && chart.at04hs.bollingerSubChannel.direction === \"Up\" && chart.at06hs.bollingerSubChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Steep\" && chart.at01hs.bollingerSubChannel.slope != \"Gentle\" && chart.at06hs.bollingerSubChannel.slope != \"Gentle\") {false} else {true}","project":"Superalgos","id":"051149b3-b815-4eb2-952c-88317a972764","savedPayload":{"position":{"x":35980.076006762036,"y":32600.456142212824},"targetPosition":{"x":36386.69931026068,"y":32407.693362994814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac3a3676-3fc0-4eed-97c8-51fe93a65256","savedPayload":{"position":{"x":36386.69931026068,"y":32407.693362994814},"targetPosition":{"x":36793.32261375932,"y":32214.930583776804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3583b309-fa26-4e63-bfb2-055d5bad14b7","savedPayload":{"position":{"x":36793.32261375932,"y":32214.930583776804},"targetPosition":{"x":36722.92710449122,"y":31770.47083050899},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"e86cdca6-99e9-487f-b824-af95cf635d1f","savedPayload":{"position":{"x":34504.92710449122,"y":31772.47083050899},"targetPosition":{"x":34457.99676497915,"y":31476.16432833045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"fa8dc2de-7299-4e00-82a7-deb31393b442","savedPayload":{"position":{"x":34457.99676497915,"y":31476.16432833045},"targetPosition":{"x":34215.291666666664,"y":31299.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"My Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"e7d607dd-f2cf-441a-92a3-f4c77906e441","savedPayload":{"position":{"x":34664.00538898421,"y":31737.49322118952},"targetPosition":{"x":34566.19062891083,"y":31716.702052107747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8b5ce9d5-7f3a-4f8f-b859-dafed2c1ca15","savedPayload":{"position":{"x":34566.19062891083,"y":31716.702052107747},"targetPosition":{"x":34419.46848880076,"y":31685.515298485083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.episodeBaseAsset.balance.value","project":"Superalgos","id":"fdeba1ec-5b1a-4da6-b453-cbab79be9f77","savedPayload":{"position":{"x":34496.7227373945,"y":31923.27942755887},"targetPosition":{"x":34465.821037957,"y":31828.173775929357},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5844b9d1-3453-43e1-a6e9-a5693229f091","savedPayload":{"position":{"x":34465.821037957,"y":31828.173775929357},"targetPosition":{"x":34419.46848880076,"y":31685.515298485083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd9456f4-3829-4345-9f57-3a24a4713d8c","savedPayload":{"position":{"x":34419.46848880076,"y":31685.515298485083},"targetPosition":{"x":34307.99676497915,"y":31585.145707531254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Quick Entry","config":"{\n\"percentageOfAlgorithmSize\": 100\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"a8698e14-e989-4d7f-875a-58a5406336ce","savedPayload":{"position":{"x":28699.231836417894,"y":31524.680651006827},"targetPosition":{"x":28764.288268724085,"y":31218.265475067936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"886857cf-a060-4f90-b596-697e2daf6184","savedPayload":{"position":{"x":28764.288268724085,"y":31218.265475067936},"targetPosition":{"x":28829.21490751321,"y":30912.28680973251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0928e6d5-5b3c-4a7e-9633-5aa6fb46a459","savedPayload":{"position":{"x":28829.21490751321,"y":30912.28680973251},"targetPosition":{"x":28894.396474199075,"y":30605.92686994784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"758c7111-856e-459e-bc44-4395e5430752","savedPayload":{"position":{"x":28894.396474199075,"y":30605.92686994784},"targetPosition":{"x":28959.685507391063,"y":30299.032518289794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4dc48a16-7a46-421f-9583-8573686526ab","savedPayload":{"position":{"x":28959.685507391063,"y":30299.032518289794},"targetPosition":{"x":29024.86616672692,"y":29991.862833375402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"047b28d0-c4d4-4926-954d-af602e9e9915","savedPayload":{"position":{"x":29024.86616672692,"y":29991.862833375402},"targetPosition":{"x":29091.442334319483,"y":29675.738431033547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"25b80432-bad3-4069-9c87-e550f1480a1f","savedPayload":{"position":{"x":34276.81001135649,"y":31731.867847641326},"targetPosition":{"x":34307.99676497915,"y":31585.145707531254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"d991ee3c-6598-4e8c-9510-78528130856d","savedPayload":{"position":{"x":34307.99676497915,"y":31585.145707531254},"targetPosition":{"x":34215.291666666664,"y":31299.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Controlled Run","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 1.03","project":"Superalgos","id":"ca59d229-8ed9-4468-84f2-fa6d2c673209","savedPayload":{"position":{"x":29125.074936806996,"y":30294.05459653031},"targetPosition":{"x":28914.40791215452,"y":30059.701195664486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < tradingEngine.current.position.entryTargetRate.value * 0.97","project":"Superalgos","id":"98e5e81b-f937-43cc-b7aa-6e85e44f47da","savedPayload":{"position":{"x":29861.169051577643,"y":30862.590202003943},"targetPosition":{"x":29628.278092290093,"y":30652.78939872662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3cd19ef8-b808-45cf-b4a1-441b5995c7b8","savedPayload":{"position":{"x":29628.278092290093,"y":30652.78939872662},"targetPosition":{"x":29395.12779793478,"y":30442.63674335852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e33ab866-419b-4032-943e-2964584f8655","savedPayload":{"position":{"x":29395.12779793478,"y":30442.63674335852},"targetPosition":{"x":29147.417687690628,"y":30219.19630792363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"fa02c41e-d7f1-4f72-ad59-314b44addb3e","savedPayload":{"position":{"x":28816.632660242103,"y":30359.00543140719},"targetPosition":{"x":28914.40791215452,"y":30059.701195664486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"b9595e4d-8c34-418f-90a7-431394b8edb6","savedPayload":{"position":{"x":28914.37689436275,"y":30059.548499311546},"targetPosition":{"x":28833.300777138433,"y":29675.307889274816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 1.02 < tradingEngine.current.position.stopLoss.value) {chart.at01hs.bollingerBand.movingAverage * 1.02} else {tradingEngine.current.position.stopLoss.value}","project":"Superalgos","id":"6938be43-dc74-4576-8b0a-8b18bd34792e","savedPayload":{"position":{"x":29044.554243179915,"y":30674.489657728147},"targetPosition":{"x":28979.62707723044,"y":30367.6429916529},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"6cefcdbc-918c-4abe-99f9-5a99c391d79b","savedPayload":{"position":{"x":28979.62707723044,"y":30367.6429916529},"targetPosition":{"x":28914.40791215452,"y":30059.701195664486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"901eb16f-14dd-4fd2-81c1-b4713a1b34e0","savedPayload":{"position":{"x":36371.77332197684,"y":31729.867847641326},"targetPosition":{"x":36340.58656835418,"y":31583.145707531254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 0.95","project":"Superalgos","id":"0cceca6d-8f5f-4350-8b7f-ec6db32521c2","savedPayload":{"position":{"x":28309.97545882235,"y":30148.90630395778},"targetPosition":{"x":28244.429971352278,"y":29841.53006228115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"1H EMA7 < entryTargetRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value","project":"Superalgos","id":"1addcc51-a16b-4985-92f6-e76e87b7b318","savedPayload":{"position":{"x":28434.615356149046,"y":30970.42164374047},"targetPosition":{"x":28499.639128957802,"y":30663.219986645076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4e7b259b-db2b-4e52-a9db-c23dedf3f214","savedPayload":{"position":{"x":28499.639128957802,"y":30663.219986645076},"targetPosition":{"x":28564.6670804519,"y":30356.044984479202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.current.position.positionCounters.periods.value > 2","project":"Superalgos","id":"ca0cc08d-9284-42ab-87a7-6d955299c4b9","savedPayload":{"position":{"x":27968.01994480706,"y":30551.19330864895},"targetPosition":{"x":28266.189015572993,"y":30453.603522338046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"90b48244-0763-424b-8bc4-d2a93970e171","savedPayload":{"position":{"x":28266.189015572993,"y":30453.603522338046},"targetPosition":{"x":28564.6670804519,"y":30356.044984479202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8152e6ad-9c73-48d3-aa81-d2a046876913","savedPayload":{"position":{"x":28564.6670804519,"y":30356.044984479202},"targetPosition":{"x":28787.3703204693,"y":30108.0390676963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"6b25f9d9-b3bb-4426-9f19-460186077662","savedPayload":{"position":{"x":27945.753384660136,"y":29744.461280667543},"targetPosition":{"x":28244.429971352278,"y":29841.53006228115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"2c1f29b4-9e38-4e72-a32a-e1e48cc6af9e","savedPayload":{"position":{"x":28244.429971352278,"y":29841.53006228115},"targetPosition":{"x":28536.07259143591,"y":29578.55699625407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Manage: 3% Below ema7","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.97 < tradingEngine.current.position.entryTargetRate.value * 0.97) {chart.at01hs.base7EMA.ema7 * 0.97} else {tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"0199babe-dfd7-4f18-b9d7-3b73ade997fd","savedPayload":{"position":{"x":28221.45821724604,"y":30285.286168030354},"targetPosition":{"x":28011.287904495734,"y":30051.72762689482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"89e97633-9b3e-42ba-9cf6-bf29d6383a72","savedPayload":{"position":{"x":19567.6204725044,"y":24847.695610532777},"targetPosition":{"x":19407.989774178284,"y":24489.70243718777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"971da4c6-325b-4c78-a025-95dbd138bbc4","savedPayload":{"position":{"x":19407.989774178284,"y":24489.70243718777},"targetPosition":{"x":19248.044312735103,"y":24131.667973637137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2af1c651-e988-4ae0-92a3-d0918b8a1cfe","savedPayload":{"position":{"x":19248.044312735103,"y":24131.667973637137},"targetPosition":{"x":19087.864408727095,"y":23773.54986660534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"4e18019c-6173-4b68-b709-174bc220cd55","savedPayload":{"position":{"x":27835.563255439927,"y":30343.463709794632},"targetPosition":{"x":28011.287904495734,"y":30051.72762689482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"a8860a5a-66b5-41f0-8a6c-dac7bf971c9d","savedPayload":{"position":{"x":27252.45433151663,"y":29481.665825133765},"targetPosition":{"x":27553.82291992252,"y":29394.26702916772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"690aeb6d-75ec-45c9-b321-9d943d84df5f","savedPayload":{"position":{"x":27553.82291992252,"y":29394.26702916772},"targetPosition":{"x":27855.32495428326,"y":29306.516559064374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"d691ad30-4129-48d1-9b75-2b2337e409d2","savedPayload":{"position":{"x":27235.73278924803,"y":29203.46364196003},"targetPosition":{"x":27545.476677575087,"y":29255.023815422166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"30880b5e-f66a-4d5a-b112-14bcc8bb9ac9","savedPayload":{"position":{"x":27545.476677575087,"y":29255.023815422166},"targetPosition":{"x":27855.32495428326,"y":29306.516559064374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value * 0.99","project":"Superalgos","id":"8d66b5bd-521c-4d19-9fc0-baa4fb54ad84","savedPayload":{"position":{"x":27341.52934131509,"y":28945.079924225385},"targetPosition":{"x":27598.361055796973,"y":29125.766760485778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c4298d6d-c635-49fe-a517-0dc19531c919","savedPayload":{"position":{"x":27598.361055796973,"y":29125.766760485778},"targetPosition":{"x":27855.32495428326,"y":29306.516559064374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"67b51901-a5fe-4fad-aad4-fc4d756b09cc","savedPayload":{"position":{"x":27549.041305104092,"y":28758.247137159495},"targetPosition":{"x":27702.15661606371,"y":29032.31600496351},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b051770c-7c9c-4636-86c8-d3b419f9a8bd","savedPayload":{"position":{"x":27702.15661606371,"y":29032.31600496351},"targetPosition":{"x":27855.32495428326,"y":29306.516559064374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"8d54874e-6c21-434a-80fa-492bf2a9be2b","savedPayload":{"position":{"x":27817.025207317452,"y":28680.071629637838},"targetPosition":{"x":27836.24604174683,"y":28993.256069589363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9aa25c88-a620-42f1-b1e8-403c5c8718b1","savedPayload":{"position":{"x":27836.24604174683,"y":28993.256069589363},"targetPosition":{"x":27855.32495428326,"y":29306.516559064374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Down && NOT Side","code":"chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Down\" && chart.at01hs.bollingerSubChannel.slope != \"Side\"","project":"Superalgos","id":"e8c97495-8098-4209-a220-6c399baba0f3","savedPayload":{"position":{"x":28091.972378647533,"y":28725.99441771699},"targetPosition":{"x":27973.87809826914,"y":29016.184771982786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f39ad55a-1988-4ac8-9d5c-99054f951179","savedPayload":{"position":{"x":27973.87809826914,"y":29016.184771982786},"targetPosition":{"x":27855.32495428326,"y":29306.516559064374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"abaf1d9b-b5f9-4f8f-9a59-10936c3ea7b1","savedPayload":{"position":{"x":27855.32495428326,"y":29306.516559064374},"targetPosition":{"x":28078.311898080105,"y":29553.994069220047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"f9636b68-93f0-4100-8046-1d62eed73501","savedPayload":{"position":{"x":27800.91381731664,"y":29818.504845018462},"targetPosition":{"x":28011.287904495734,"y":30051.72762689482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"274cc7b8-9ab0-4f9a-9302-3357cfcac9da"}}}],"announcements":[],"id":"b1d129c5-5f5e-4b1a-a2d6-b79561d2a6ce","savedPayload":{"position":{"x":28011.287904495734,"y":30051.72762689482},"targetPosition":{"x":28244.327383233212,"y":29841.624072751772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"640cd6a8-a447-43ca-84f9-7dc5e6c8c826","savedPayload":{"position":{"x":27748.469185152302,"y":30555.06100729009},"targetPosition":{"x":27764.365157118584,"y":30240.890379724246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"9502bdd5-310a-4048-81ca-1eb0afe3c99d","savedPayload":{"position":{"x":27808.242398882314,"y":31130.462568097108},"targetPosition":{"x":27743.179205897453,"y":30823.551570209915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cb42b9eb-16cb-4bb4-af70-570fc4d1cd29","savedPayload":{"position":{"x":27743.179205897453,"y":30823.551570209915},"targetPosition":{"x":27678.029738943165,"y":30516.26457651712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"da7a29f2-93be-4ce8-aeb0-f286b5710891","savedPayload":{"position":{"x":27484.120318464677,"y":31113.456151984472},"targetPosition":{"x":27581.01097956444,"y":30815.043508702183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b4748a9d-7f41-4ce0-92ea-267488fd2e02","savedPayload":{"position":{"x":27581.01097956444,"y":30815.043508702183},"targetPosition":{"x":27678.029738943165,"y":30516.26457651712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"792355fa-6601-4a41-b673-b814127b3524","savedPayload":{"position":{"x":27211.56087517546,"y":30936.49664463255},"targetPosition":{"x":27444.66926523191,"y":30726.527901597467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4cd7afea-ce88-4111-b74e-dc48e34bcee5","savedPayload":{"position":{"x":27444.66926523191,"y":30726.527901597467},"targetPosition":{"x":27678.029738943165,"y":30516.26457651712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"835d94b1-7b62-43bc-bbda-34184c5a5410","savedPayload":{"position":{"x":27063.953428851266,"y":30647.04405326244},"targetPosition":{"x":27370.829069176936,"y":30581.74541888829},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"66c6c8dc-f8b2-4534-aeb1-5f7aea412564","savedPayload":{"position":{"x":27370.829069176936,"y":30581.74541888829},"targetPosition":{"x":27678.029738943165,"y":30516.26457651712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Down && NOT Side or Gentle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Down\" && chart.at01hs.bollingerSubChannel.slope != \"Side\" && chart.at01hs.bollingerSubChannel.slope != \"Gentle\"","project":"Superalgos","id":"4734e468-3fd1-4b7e-8361-66dea0f1d3c1","savedPayload":{"position":{"x":27080.788382816998,"y":30323.06530671747},"targetPosition":{"x":27379.233628166847,"y":30419.702945405792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b9f90ab7-e386-4fa3-a326-d99ce319edcd","savedPayload":{"position":{"x":27379.233628166847,"y":30419.702945405792},"targetPosition":{"x":27678.029738943165,"y":30516.26457651712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"26ef5972-8cc4-4b0d-92a4-b7da565b84b4","savedPayload":{"position":{"x":27678.029738943165,"y":30516.26457651712},"targetPosition":{"x":27925.700392324245,"y":30293.122270601358},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9be98459-d007-4f66-94ac-cc7b6c6ad81c","savedPayload":{"position":{"x":27466.79061071358,"y":30527.208502305875},"targetPosition":{"x":27764.365157118584,"y":30240.890379724246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"274cc7b8-9ab0-4f9a-9302-3357cfcac9da"}}},{"type":"Move To Phase Event","name":"Cancel Close","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","code":"chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"c959c1b6-aec3-4db7-a572-477f1ea2c132","savedPayload":{"position":{"x":26936.133864363976,"y":30368.97493748385},"targetPosition":{"x":27169.729670298097,"y":30159.142927247412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31460537-bb42-499a-9645-fca83618f4a5","savedPayload":{"position":{"x":27169.729670298097,"y":30159.142927247412},"targetPosition":{"x":27403.429033051816,"y":29949.432516611872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"b3e36006-93f4-4852-a7a7-d612a7e7ec27","savedPayload":{"position":{"x":26776.16084342068,"y":29916.812301721642},"targetPosition":{"x":27089.62693965511,"y":29933.086526194355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b8fe60bd-1dbd-458d-bdfd-1accfdab0b7c","savedPayload":{"position":{"x":27089.62693965511,"y":29933.086526194355},"targetPosition":{"x":27403.429033051816,"y":29949.432516611872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"6b79a9e3-796e-4db6-8a5c-0bc0bd875f45","savedPayload":{"position":{"x":26982.86212750645,"y":29483.463627338722},"targetPosition":{"x":27193.051257696487,"y":29716.357500443293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1d09d25e-54eb-4d39-bea6-44f8492a2d10","savedPayload":{"position":{"x":27193.051257696487,"y":29716.357500443293},"targetPosition":{"x":27403.429033051816,"y":29949.432516611872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f3ce7cba-7352-4634-a05d-07399ba679f2","savedPayload":{"position":{"x":27403.429033051816,"y":29949.432516611872},"targetPosition":{"x":27736.285866076516,"y":29966.90886181387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"23ebc628-449c-43d8-97a2-28c23bb4dda7","savedPayload":{"position":{"x":27450.4184835489,"y":30224.29815990272},"targetPosition":{"x":27764.365157118584,"y":30240.890379724246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"b1d129c5-5f5e-4b1a-a2d6-b79561d2a6ce"}}}],"announcements":[],"id":"0995a46a-7564-4e4a-bdf9-d1dd437c75c6","savedPayload":{"position":{"x":27764.365157118584,"y":30240.890379724246},"targetPosition":{"x":28011.287904495734,"y":30051.72762689482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.8 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.8} else \n{tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"12d58077-9b90-44f6-9d1d-5247aad7b0a4","savedPayload":{"position":{"x":27972.87565844104,"y":30651.315617935412},"targetPosition":{"x":27882.33804635429,"y":30219.949587869894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Cancel Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"af3238a0-9671-4ef7-90d8-802f9255d298","savedPayload":{"position":{"x":18806.25033773091,"y":25867.638087326006},"targetPosition":{"x":18560.668681005598,"y":25561.737307922194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2191cdaf-d396-458b-80e3-d67c69976c29","savedPayload":{"position":{"x":18560.668681005598,"y":25561.737307922194},"targetPosition":{"x":18318.47228588017,"y":25260.27732681641},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"fa54d65e-9ed1-42f1-bcfe-c774607c7ae3","savedPayload":{"position":{"x":18234.06947772808,"y":26041.670334390496},"targetPosition":{"x":18276.295352962195,"y":25651.092176588005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"de06b55c-392c-4032-b8a9-b1810881be63","savedPayload":{"position":{"x":18276.295352962195,"y":25651.092176588005},"targetPosition":{"x":18318.47228588017,"y":25260.27732681641},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Up || Side, Gentle or Medium","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Up\" || chart.at01hs.bollingerSubChannel.slope === \"Side\" || chart.at01hs.bollingerSubChannel.slope === \"Gentle\" || chart.at01hs.bollingerSubChannel.slope === \"Medium\"","project":"Superalgos","id":"4eca07e4-a6af-46c8-8099-fd4599755539","savedPayload":{"position":{"x":17706.63481557805,"y":25755.437515224272},"targetPosition":{"x":18012.53191626186,"y":25507.948589361826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a6ee99c3-005b-4b96-be05-579230e6af8b","savedPayload":{"position":{"x":18012.53191626186,"y":25507.948589361826},"targetPosition":{"x":18318.47228588017,"y":25260.27732681641},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fb58e58-feea-47c1-b7a6-0da4777ff32f","savedPayload":{"position":{"x":18318.47228588017,"y":25260.27732681641},"targetPosition":{"x":18368.52503271046,"y":24852.84992857802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"3ca96593-db50-40f0-a191-bfdffe79fdf8","savedPayload":{"position":{"x":27458.218831748916,"y":30309.969729022378},"targetPosition":{"x":27882.33804635429,"y":30219.949587869894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"b1d129c5-5f5e-4b1a-a2d6-b79561d2a6ce"}}}],"announcements":[],"id":"274cc7b8-9ab0-4f9a-9302-3357cfcac9da","savedPayload":{"position":{"x":27547.00895564981,"y":30432.25616085811},"targetPosition":{"x":27764.365157118584,"y":30240.890379724246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5969717f-fd1e-4579-a80b-5e66723412a9","savedPayload":{"position":{"x":36229.11484453257,"y":31683.515298485083},"targetPosition":{"x":36340.58656835418,"y":31583.145707531254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"455d4f49-eb65-49f8-a6d5-2bdd44e8bbac","savedPayload":{"position":{"x":34122.58656835418,"y":31585.145707531254},"targetPosition":{"x":34215.291666666664,"y":31299.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"27a608d6-178f-4b7e-adb3-6d516e255821","savedPayload":{"position":{"x":28543.632303935323,"y":26738.584429752416},"targetPosition":{"x":28374.69486560794,"y":26733.35717438071},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8ba5789-fde1-408f-9c16-5220cab0d132","savedPayload":{"position":{"x":28374.69486560794,"y":26733.35717438071},"targetPosition":{"x":27989.274477314983,"y":26722.866038138956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value","project":"Superalgos","id":"a84d1dbe-fb5a-4b4d-9135-7182197a7b43","savedPayload":{"position":{"x":28249.369095563787,"y":27201.145988507298},"targetPosition":{"x":28168.945420341995,"y":27053.56969241192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"df57e26e-cfa4-4b93-b2f1-cf099b22b8a8","savedPayload":{"position":{"x":28168.945420341995,"y":27053.56969241192},"targetPosition":{"x":27989.274477314983,"y":26722.866038138956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fa5dae3c-efab-4936-bbee-8a07d9593055","savedPayload":{"position":{"x":36129.57607189281,"y":31611.196146976843},"targetPosition":{"x":36190.58656835418,"y":31474.16432833045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Quick Exit","config":"{\n\"percentageOfAlgorithmSize\": 100,\n\"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"9d763bcb-8be6-41e4-875a-2c7842cc6909","savedPayload":{"position":{"x":27230.84924955325,"y":27930.01390528551},"targetPosition":{"x":27190.27346400518,"y":27737.834373412057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"88b2ba31-76a8-43ee-8c4b-3b6e1e187a82","savedPayload":{"position":{"x":27190.27346400518,"y":27737.834373412057},"targetPosition":{"x":27149.59213286936,"y":27544.980894377055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2b1f9c91-7bb6-40ad-a43a-c52b0287ed9e","savedPayload":{"position":{"x":27149.59213286936,"y":27544.980894377055},"targetPosition":{"x":27100.06371187106,"y":27310.446353856452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"a1de1b80-9a70-460b-8d8d-7a3846687b70","savedPayload":{"position":{"x":27116.130453508737,"y":29281.311640744694},"targetPosition":{"x":27427.8035370369,"y":29248.58181443382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ef6e7305-d840-4fa6-8aee-da60b33bef83","savedPayload":{"position":{"x":27427.8035370369,"y":29248.58181443382},"targetPosition":{"x":27739.92700499504,"y":29215.79329224555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"06078431-e8b2-4116-99fa-7362a18d6ebd","savedPayload":{"position":{"x":27739.92700499504,"y":29215.79329224555},"targetPosition":{"x":28142.542442050708,"y":29173.388420505726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"29750ebf-e23e-4d96-b8c3-02c5d5f1ade7","savedPayload":{"position":{"x":36041.408284048935,"y":31489.8435978206},"targetPosition":{"x":36190.58656835418,"y":31474.16432833045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"d40a7e65-760d-4c56-8aac-d17111607cf9","savedPayload":{"position":{"x":33972.58656835418,"y":31476.16432833045},"targetPosition":{"x":34215.291666666664,"y":31299.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a1b63f90-0ec5-4eb4-a51e-88852cc95049","savedPayload":{"position":{"x":34215.291666666664,"y":31299.82875264271},"targetPosition":{"x":34215.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading Strategy","name":"S4 - 8H Up","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"565db073-2544-4f1e-8ffd-450fb4e10feb","savedPayload":{"position":{"x":37250.92271198077,"y":31523.42269847025},"targetPosition":{"x":37002.211440214254,"y":31691.180569511474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1f26cf4a-76fc-4186-9b3b-9010f9f3da7c","savedPayload":{"position":{"x":37002.211440214254,"y":31691.180569511474},"targetPosition":{"x":36753.50016844774,"y":31858.938440552698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"f288ec4c-d242-4138-a291-4e97fcec4e8e","savedPayload":{"position":{"x":37335.677604213335,"y":31713.7853031929},"targetPosition":{"x":37044.58888633054,"y":31786.3618718728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eb5bf914-8163-453a-afa5-95f22ba39ead","savedPayload":{"position":{"x":37044.58888633054,"y":31786.3618718728},"targetPosition":{"x":36753.50016844774,"y":31858.938440552698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"0638ff08-302c-488f-8a8b-be0cd0454e49","savedPayload":{"position":{"x":37350.21330566871,"y":31921.655518513293},"targetPosition":{"x":37051.856737058224,"y":31890.296979532995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0c8e03c5-c1b2-4aaf-bddc-874c50cfbbba","savedPayload":{"position":{"x":37051.856737058224,"y":31890.296979532995},"targetPosition":{"x":36753.50016844774,"y":31858.938440552698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"8H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at08hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"77dbd8ad-81fc-4394-93d4-e84e931970f7","savedPayload":{"position":{"x":37292.776596227246,"y":32121.961128626146},"targetPosition":{"x":37023.13838233749,"y":31990.449784589422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78fae417-cc69-4a59-8edf-5d2e7102b50f","savedPayload":{"position":{"x":37023.13838233749,"y":31990.449784589422},"targetPosition":{"x":36753.50016844774,"y":31858.938440552698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"12H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at12hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"f513cfb2-d7b3-442b-8d72-8bedb02e7ddf","savedPayload":{"position":{"x":37170.29519072314,"y":32290.54232075589},"targetPosition":{"x":36961.89767958544,"y":32074.740380654293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4ab49bb6-b9d3-44a1-8fa5-6d5f7b9d3b3f","savedPayload":{"position":{"x":36961.89767958544,"y":32074.740380654293},"targetPosition":{"x":36753.50016844774,"y":31858.938440552698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"09bdc89a-fa30-46cc-9da0-aa16844e829b","savedPayload":{"position":{"x":36997.54215429322,"y":32407.06571513826},"targetPosition":{"x":36875.52116137048,"y":32133.00207784548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2aae14ee-14b3-4c94-9394-d64432517632","savedPayload":{"position":{"x":36875.52116137048,"y":32133.00207784548},"targetPosition":{"x":36753.50016844774,"y":31858.938440552698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H NOT Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope != \"Extreme\"","project":"Superalgos","id":"a2059ed1-a903-483c-a5b1-a44203fb670f","savedPayload":{"position":{"x":36795.354052694216,"y":32457.476870708593},"targetPosition":{"x":36774.42711057098,"y":32158.207655630646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2ca6efe4-43ac-45a1-ba84-5215d33f32a6","savedPayload":{"position":{"x":36774.42711057098,"y":32158.207655630646},"targetPosition":{"x":36753.50016844774,"y":31858.938440552698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Deviation > 40","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 25","project":"Superalgos","id":"3b0663ea-9168-4101-bd49-a4fa14473dc7","savedPayload":{"position":{"x":36588.117754957544,"y":32435.695458115686},"targetPosition":{"x":36670.80896170264,"y":32147.316949334192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6f3289e9-c257-4953-ae25-664416db52a7","savedPayload":{"position":{"x":36670.80896170264,"y":32147.316949334192},"targetPosition":{"x":36753.50016844774,"y":31858.938440552698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"977e6e41-dca1-4b42-9e82-3e2eeae3c220","savedPayload":{"position":{"x":36753.50016844774,"y":31858.938440552698},"targetPosition":{"x":36510.79507013525,"y":31682.602864864955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"260de0f8-58ff-477f-aadb-f61a4043e3a8","savedPayload":{"position":{"x":36510.79507013525,"y":31682.602864864955},"targetPosition":{"x":36268.08997182277,"y":31506.267289177213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","project":"Superalgos","id":"a2b6bf13-42e1-428f-9691-42be919fa8c1","savedPayload":{"position":{"x":28809.37411189384,"y":30633.131574105915},"targetPosition":{"x":28758.09325863394,"y":30302.579666245838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"05892d30-611b-4f6e-93ae-3f484b208fe5","savedPayload":{"position":{"x":28758.09325863394,"y":30302.579666245838},"targetPosition":{"x":28705.32489354033,"y":29973.082313140767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f6bb3530-fc04-47bb-b335-1f90463c6a04","savedPayload":{"position":{"x":28705.32489354033,"y":29973.082313140767},"targetPosition":{"x":28647.81960320618,"y":29607.68707189431},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"3046ad00-d3de-4458-80db-287144ff86fa","savedPayload":{"position":{"x":36291.5551415788,"y":31654.420540266485},"targetPosition":{"x":36268.08997182277,"y":31506.267289177213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"3847310d-3d70-43f6-85a1-8a62eec1d4d3","savedPayload":{"position":{"x":28535.442240077766,"y":30421.14510742385},"targetPosition":{"x":28361.88940335974,"y":30134.91487704176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"680fec1e-3d4c-4b3b-82a6-0f45a34f9776","savedPayload":{"position":{"x":28361.88940335974,"y":30134.91487704176},"targetPosition":{"x":28187.881942973643,"y":29850.24740452339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"ffbb6568-c112-46de-8097-fbf993a8232f","savedPayload":{"position":{"x":28291.618500304503,"y":30509.579240058054},"targetPosition":{"x":28240.315820176762,"y":30180.237125311513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f0830878-6dd9-4657-a0b5-906ff9296559","savedPayload":{"position":{"x":28240.315820176762,"y":30180.237125311513},"targetPosition":{"x":28187.881942973643,"y":29850.24740452339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"d7a8fc7d-57a2-4340-bb12-627c667324e6","savedPayload":{"position":{"x":28030.935794680052,"y":30499.376493431926},"targetPosition":{"x":28110.167854802203,"y":30174.569782806466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e841acd3-9785-49f5-be08-5aa63d3df039","savedPayload":{"position":{"x":28110.167854802203,"y":30174.569782806466},"targetPosition":{"x":28187.881942973643,"y":29850.24740452339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"8H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at08hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"60872ff6-a88d-4e3c-9069-4337d9e77653","savedPayload":{"position":{"x":27796.2025117495,"y":30391.20267807148},"targetPosition":{"x":27992.69074200863,"y":30119.74253920332},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"969eebbc-1e68-4dc7-bb42-5fd1e92648b3","savedPayload":{"position":{"x":27992.69074200863,"y":30119.74253920332},"targetPosition":{"x":28187.881942973643,"y":29850.24740452339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"12H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at12hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"e1f6e5b8-70b1-44b9-b127-099a28b39e5f","savedPayload":{"position":{"x":27617.745668180327,"y":30199.394879364663},"targetPosition":{"x":27903.02636055706,"y":30024.164382393945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1d87e62c-73ff-434b-ac60-e7afa7035b78","savedPayload":{"position":{"x":27903.02636055706,"y":30024.164382393945},"targetPosition":{"x":28187.881942973643,"y":29850.24740452339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"4dbcbf0e-b029-40db-9b3e-422ccb1d1642","savedPayload":{"position":{"x":27527.85954307872,"y":29953.851853944325},"targetPosition":{"x":27857.480803333707,"y":29902.34196364593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed71b78d-b409-451d-9e23-72fde4c6ac59","savedPayload":{"position":{"x":27857.480803333707,"y":29902.34196364593},"targetPosition":{"x":28187.881942973643,"y":29850.24740452339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Deviation > 40","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 25","project":"Superalgos","id":"ca95ffdd-a14f-4985-84b7-2a482eb8091d","savedPayload":{"position":{"x":27536.99734099116,"y":29693.89725591531},"targetPosition":{"x":27861.856068712474,"y":29771.757035592964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"80a35c8a-7650-442f-82de-b9acb0c09988","savedPayload":{"position":{"x":27861.856068712474,"y":29771.757035592964},"targetPosition":{"x":28187.881942973643,"y":29850.24740452339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"22a72082-528a-440b-8e3f-374d612c4d51","savedPayload":{"position":{"x":28187.881942973643,"y":29850.24740452339},"targetPosition":{"x":28405.55648184158,"y":29549.958349770044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"c9d98dc4-e354-4357-99c8-eaa829f874d7","savedPayload":{"position":{"x":36091.754396135024,"y":31748.972387489695},"targetPosition":{"x":36268.08997182277,"y":31506.267289177213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"0bf02e1f-d661-437b-85b0-b31e57707199","savedPayload":{"position":{"x":36268.08997182277,"y":31506.267289177213},"targetPosition":{"x":36221.1596323107,"y":31209.960786998672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"My Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"f8f5fc79-31b1-49c6-bdd9-2d72883b2364","savedPayload":{"position":{"x":28607.927468460777,"y":30172.197864218084},"targetPosition":{"x":28426.297139911647,"y":29891.544811075233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0dc0c256-7b9c-4e5c-bd09-c9d57ad86247","savedPayload":{"position":{"x":28426.297139911647,"y":29891.544811075233},"targetPosition":{"x":28203.466480660125,"y":29547.265437665657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.episodeBaseAsset.balance.value","project":"Superalgos","id":"fc05ff9a-1f89-477c-9b23-5050bb7416b3","savedPayload":{"position":{"x":27865.994960161013,"y":30210.24761358412},"targetPosition":{"x":28017.87608240663,"y":29911.708396199938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"afb3ab65-a8a8-4926-bd7a-a309e73c76b4","savedPayload":{"position":{"x":28017.87608240663,"y":29911.708396199938},"targetPosition":{"x":28203.466480660125,"y":29547.265437665657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"80228bad-3498-456e-bdc6-8f8eb5868134","savedPayload":{"position":{"x":36092.81287582528,"y":31627.05717446837},"targetPosition":{"x":36084.96248238884,"y":31477.262744255182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Quick Entry","config":"{\n\"percentageOfAlgorithmSize\": 100\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"251e2560-de9e-4446-a6ad-ecb5545a59ee","savedPayload":{"position":{"x":26224.81369174499,"y":30488.489891126737},"targetPosition":{"x":26505.136475846037,"y":30307.05306825343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f36b38fb-f877-45a3-a632-f20bd3f9c671","savedPayload":{"position":{"x":26505.136475846037,"y":30307.05306825343},"targetPosition":{"x":26785.099778717806,"y":30125.022780267085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"14d0b5a0-d880-4f3a-8eb9-3357b8bfc0b6","savedPayload":{"position":{"x":26785.099778717806,"y":30125.022780267085},"targetPosition":{"x":27065.28934074679,"y":29942.73813534285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"4c7accf9-edb5-403b-97cb-0ba11ba6c45c","savedPayload":{"position":{"x":27065.28934074679,"y":29942.73813534285},"targetPosition":{"x":27345.29333814085,"y":29760.58616749486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b44ca915-083c-4363-8172-c21805201845","savedPayload":{"position":{"x":27345.29333814085,"y":29760.58616749486},"targetPosition":{"x":27625.399419388432,"y":29578.6411308756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"4164d2ed-edce-40e4-b22e-2dd6c5ef036a","savedPayload":{"position":{"x":27625.399419388432,"y":29578.6411308756},"targetPosition":{"x":27906.588855769256,"y":29395.610331584467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"1670ca81-e7fa-4070-8534-0dd96fccc054","savedPayload":{"position":{"x":35959.161897197024,"y":31558.958599507438},"targetPosition":{"x":36084.96248238884,"y":31477.262744255182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"1b95c0aa-9a01-4f10-8534-9932d3d95d7c","savedPayload":{"position":{"x":36084.96248238884,"y":31477.262744255182},"targetPosition":{"x":36221.1596323107,"y":31209.960786998672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Slow Run","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 1.03","project":"Superalgos","id":"5d268024-2d96-4094-b50f-b0a3cbf1b4f0","savedPayload":{"position":{"x":27475.480946995845,"y":29873.278969638945},"targetPosition":{"x":27492.482760731822,"y":29538.74069209266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < tradingEngine.current.position.entryTargetRate.value * 0.97","project":"Superalgos","id":"2dbdfc22-50a8-4adc-94f0-92cdc036fe2f","savedPayload":{"position":{"x":28089.86793479299,"y":30573.253248944435},"targetPosition":{"x":28081.224403526096,"y":30405.5901733598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7104f775-64e7-4d98-b7d8-39f6ef3d3055","savedPayload":{"position":{"x":28081.224403526096,"y":30405.5901733598},"targetPosition":{"x":28072.16415173052,"y":30228.47365001391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"93c8c267-8c57-42eb-834c-1e5a22489094","savedPayload":{"position":{"x":28072.16415173052,"y":30228.47365001391},"targetPosition":{"x":28060.972172534286,"y":30011.948521485836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"f3c1082e-25bb-4e2e-9db4-7920c77050b6","savedPayload":{"position":{"x":27193.42607846853,"y":29690.00004242394},"targetPosition":{"x":27492.482760731822,"y":29538.74069209266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"968b9847-e19a-4d7a-9744-ccf0f098e40a","savedPayload":{"position":{"x":27492.482760731822,"y":29538.74069209266},"targetPosition":{"x":27712.387671498203,"y":29200.78711753364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 1.02 < tradingEngine.current.position.stopLoss.value) {chart.at01hs.bollingerBand.movingAverage * 1.02} else {tradingEngine.current.position.stopLoss.value}","project":"Superalgos","id":"53f5b5c3-ba67-453c-9c9f-4ce573a45cf7","savedPayload":{"position":{"x":27127.912703405476,"y":30100.178271251316},"targetPosition":{"x":27310.022519217717,"y":29819.639671039367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"9f500e15-05a0-49f2-acb6-22dc52e3a776","savedPayload":{"position":{"x":27310.022519217717,"y":29819.639671039367},"targetPosition":{"x":27492.43874968777,"y":29538.806781431063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"48f10387-f326-4021-ae7e-bf0c89f12f0e","savedPayload":{"position":{"x":35872.161819801935,"y":31471.95852211235},"targetPosition":{"x":35953.85767505419,"y":31346.157936920536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 0.95","project":"Superalgos","id":"be152b44-4a9c-4b16-9075-c727f4321c38","savedPayload":{"position":{"x":26976.44968098792,"y":29163.647057395647},"targetPosition":{"x":27158.301643132814,"y":28882.934157357806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"1H EMA7 < entryTargetRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value","project":"Superalgos","id":"ad245a3c-c7dc-490b-8680-1ff6b9ef33c1","savedPayload":{"position":{"x":27074.195835863193,"y":29901.814884894433},"targetPosition":{"x":27214.949316844682,"y":29810.363446661504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cdfff198-ce34-4a75-b7f9-ed8dee0ccc70","savedPayload":{"position":{"x":27214.949316844682,"y":29810.363446661504},"targetPosition":{"x":27371.48731652443,"y":29713.814685261183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.current.position.positionCounters.periods.value > 2","project":"Superalgos","id":"0633fc97-d2d0-405b-bed4-d390d30bb43c","savedPayload":{"position":{"x":27054.862647818118,"y":29559.844937101625},"targetPosition":{"x":27205.631922364144,"y":29635.463803370352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8bb34027-c362-4abc-b722-e5b844113302","savedPayload":{"position":{"x":27205.631922364144,"y":29635.463803370352},"targetPosition":{"x":27371.48731652443,"y":29713.814685261183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3ee8f724-793b-444f-a773-de0d2d113be6","savedPayload":{"position":{"x":27371.48731652443,"y":29713.814685261183},"targetPosition":{"x":27587.56132038788,"y":29701.924252494697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"113a609b-5d12-46d3-a15e-0f23f3d0b70f","savedPayload":{"position":{"x":27006.854172853746,"y":28584.79385705758},"targetPosition":{"x":27158.301643132814,"y":28882.934157357806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"e256ad15-0e95-442a-8675-b24d7fe36118","savedPayload":{"position":{"x":27158.301643132814,"y":28882.934157357806},"targetPosition":{"x":27561.126870445787,"y":28903.741640753018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Manage: 3% Below ema7","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.97 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.97} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"d2f712ac-98dc-41dc-b29e-260334b7cd69","savedPayload":{"position":{"x":26806.526165318504,"y":29199.860146358988},"targetPosition":{"x":26824.900950198196,"y":28865.726736929544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"629a5ecb-7ade-4453-89bb-1d1c5d5f96d9","savedPayload":{"position":{"x":15905.559889530748,"y":25200.809149782486},"targetPosition":{"x":15759.31975011624,"y":24889.059024174232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c9b1b192-1698-44a7-a0f5-20d21088f280","savedPayload":{"position":{"x":15759.31975011624,"y":24889.059024174232},"targetPosition":{"x":15617.175506791995,"y":24570.197450148815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0402e263-ac5c-4546-be68-8f33fdbf8666","savedPayload":{"position":{"x":15617.175506791995,"y":24570.197450148815},"targetPosition":{"x":15474.373594711426,"y":24247.02970849377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"1fc1bb7a-a52b-4ce2-b17b-95194de42c8a","savedPayload":{"position":{"x":26467.238478120456,"y":28945.449395091346},"targetPosition":{"x":26824.900950198196,"y":28865.726736929544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"a0b6604b-8744-468d-8eb8-37266a7790bb","savedPayload":{"position":{"x":26701.52667180533,"y":27839.687641126133},"targetPosition":{"x":26981.75779943666,"y":28022.392274623322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7a6659c-b0db-4966-875f-4f3c22448e5f","savedPayload":{"position":{"x":26981.75779943666,"y":28022.392274623322},"targetPosition":{"x":27262.299140053936,"y":28204.788038165956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"bba2d293-88c4-492f-94af-1b9619f740fd","savedPayload":{"position":{"x":26958.649955826924,"y":27608.094572306873},"targetPosition":{"x":27110.386089353135,"y":27906.47600911284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"20aebaee-eb59-4c3f-8c59-39349e032515","savedPayload":{"position":{"x":27110.386089353135,"y":27906.47600911284},"targetPosition":{"x":27262.299140053936,"y":28204.788038165956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value * 0.99","project":"Superalgos","id":"8419c8f8-b2b3-4d98-99e8-2506e40bdb02","savedPayload":{"position":{"x":27296.65091685469,"y":27536.047758623594},"targetPosition":{"x":27279.429647719586,"y":27870.452853650684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0d40d31a-b3d2-4213-9ec0-16dfad84800c","savedPayload":{"position":{"x":27279.429647719586,"y":27870.452853650684},"targetPosition":{"x":27262.299140053936,"y":28204.788038165956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"1f20f276-1067-413d-9855-d5a8c3bf4dd5","savedPayload":{"position":{"x":27625.67938426883,"y":27642.833602628983},"targetPosition":{"x":27444.019097607794,"y":27923.85731245124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5a699f92-494e-4078-b641-1c9c57ffc366","savedPayload":{"position":{"x":27444.019097607794,"y":27923.85731245124},"targetPosition":{"x":27262.299140053936,"y":28204.788038165956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"8522cf28-0d47-4049-a2d0-f859792cc083","savedPayload":{"position":{"x":27857.00766795425,"y":27899.76282612721},"targetPosition":{"x":27559.759830685027,"y":28052.3766582792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0c5c7d7b-590f-4902-b44d-8609741d2b0c","savedPayload":{"position":{"x":27559.759830685027,"y":28052.3766582792},"targetPosition":{"x":27262.299140053936,"y":28204.788038165956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa9bda47-780e-48ec-97bf-52f713be6d1c","savedPayload":{"position":{"x":27262.299140053936,"y":28204.788038165956},"targetPosition":{"x":27244.555251596103,"y":28553.7551017426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0905efc2-d8c9-4b8b-b09f-de915fca26e4","savedPayload":{"position":{"x":26841.148321913766,"y":28531.446148457064},"targetPosition":{"x":26824.900950198196,"y":28865.726736929544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"dc4b92b2-3855-4cc7-84f5-20cc259c1634"}}}],"announcements":[],"id":"e6304ea5-e683-49c1-8e84-e2bc119565fa","savedPayload":{"position":{"x":26824.900950198196,"y":28865.726736929544},"targetPosition":{"x":27158.525475189537,"y":28882.946295957678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"73870f3c-4fc8-464c-be6a-f5e397ee044e","savedPayload":{"position":{"x":26248.03233758868,"y":29048.621288451424},"targetPosition":{"x":26496.4968921357,"y":28824.195125046732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"bc212a30-b2e9-435c-84a8-e505019c0570","savedPayload":{"position":{"x":26028.353993351095,"y":29198.927585204947},"targetPosition":{"x":26208.767372794104,"y":28919.074663244268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"19c71956-4d1e-4355-826e-5bc25d09fdc3","savedPayload":{"position":{"x":26208.767372794104,"y":28919.074663244268},"targetPosition":{"x":26393.104355894535,"y":28638.121604493295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"31e8935e-497f-47eb-9466-900faced609c","savedPayload":{"position":{"x":25796.716773218177,"y":28941.583887464818},"targetPosition":{"x":26092.874603300577,"y":28790.32403178882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"506df2ab-b891-4709-84e6-b773c8743abf","savedPayload":{"position":{"x":26092.874603300577,"y":28790.32403178882},"targetPosition":{"x":26393.104355894535,"y":28638.121604493295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"c1e44382-1537-453b-9f6c-52ef913228aa","savedPayload":{"position":{"x":25724.77479391031,"y":28603.415020562912},"targetPosition":{"x":26056.900961390682,"y":28621.143581060627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"928db494-0024-4ed4-a407-84087efb0704","savedPayload":{"position":{"x":26056.900961390682,"y":28621.143581060627},"targetPosition":{"x":26393.104355894535,"y":28638.121604493295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"8bae0609-ccff-480d-b382-b56f22ec8dc4","savedPayload":{"position":{"x":25831.72975198625,"y":28274.166713508945},"targetPosition":{"x":26110.420005121778,"y":28456.446141295695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"98ac2a8f-4541-46de-8e01-f9709d6b195f","savedPayload":{"position":{"x":26110.420005121778,"y":28456.446141295695},"targetPosition":{"x":26393.104355894535,"y":28638.121604493295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div previous ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"a5a3a569-6a05-4fd0-8c15-22d5e5d1b148","savedPayload":{"position":{"x":26088.90809861319,"y":28042.503617409915},"targetPosition":{"x":26239.081121089148,"y":28340.563300837835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2adc3c50-f284-4fb1-9f79-b077a54b5046","savedPayload":{"position":{"x":26239.081121089148,"y":28340.563300837835},"targetPosition":{"x":26393.104355894535,"y":28638.121604493295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c91df057-7904-431b-b997-8fbb2afada1f","savedPayload":{"position":{"x":26393.104355894535,"y":28638.121604493295},"targetPosition":{"x":26742.412820854453,"y":28656.168550955437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"8196d5fe-af67-4302-84d1-f95279fb2075","savedPayload":{"position":{"x":26069.18570353877,"y":28841.530533700978},"targetPosition":{"x":26496.4968921357,"y":28824.195125046732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"dc4b92b2-3855-4cc7-84f5-20cc259c1634"}}},{"type":"Move To Phase Event","name":"Cancel Close","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"60d1211f-6279-4c80-abe5-e727a70aea22","savedPayload":{"position":{"x":25807.81630491511,"y":28176.935630633474},"targetPosition":{"x":26124.823384703996,"y":28279.31120861342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6659d86a-2e52-48b2-bcc4-5f5b43b3907e","savedPayload":{"position":{"x":26124.823384703996,"y":28279.31120861342},"targetPosition":{"x":26443.505244366876,"y":28383.333566245587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"5ce2e13e-4b4f-424b-b4ee-1741c013690b","savedPayload":{"position":{"x":26302.94257617406,"y":27729.37589046664},"targetPosition":{"x":26373.78128491369,"y":28056.170727584373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38aa2600-90dc-4c6b-be17-a08ee9c829b3","savedPayload":{"position":{"x":26373.78128491369,"y":28056.170727584373},"targetPosition":{"x":26443.505244366876,"y":28383.333566245587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fd092801-0b6b-4f09-bbb3-b16fe1144ae3","savedPayload":{"position":{"x":26443.505244366876,"y":28383.333566245587},"targetPosition":{"x":26677.891049279853,"y":28643.904594388354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"4b4f5de5-723c-4d6e-b26e-50ee87671f48","savedPayload":{"position":{"x":26272.867042315393,"y":28575.16112899709},"targetPosition":{"x":26496.4968921357,"y":28824.195125046732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"e6304ea5-e683-49c1-8e84-e2bc119565fa"}}}],"announcements":[],"id":"ad2a51aa-b179-457e-9704-5c9b1a8db72e","savedPayload":{"position":{"x":26496.4968921357,"y":28824.195125046732},"targetPosition":{"x":26824.900950198196,"y":28865.726736929544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.8 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.8} else \n{tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"d29e9a58-79bb-445f-b51a-e5b86937aa8c","savedPayload":{"position":{"x":26318.095607049818,"y":29177.268994210433},"targetPosition":{"x":26558.044634162423,"y":28806.381178237985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Cancel Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"59efd870-0af2-4d5c-a78c-281b71f00497","savedPayload":{"position":{"x":19463.035973888967,"y":27429.52738207017},"targetPosition":{"x":19296.638884308486,"y":27055.581126703888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31c9eb9e-6567-4866-b3de-cf7ac4fa0126","savedPayload":{"position":{"x":19296.638884308486,"y":27055.581126703888},"targetPosition":{"x":19130.136941097997,"y":26681.4253898827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"0dd58774-bae1-48f4-bb2a-ff3af03d885b","savedPayload":{"position":{"x":18649.23745449695,"y":27343.99223901747},"targetPosition":{"x":18889.65788302903,"y":27012.787568933236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8894b26-93ec-450a-9cbf-2462e442a7bc","savedPayload":{"position":{"x":18889.65788302903,"y":27012.787568933236},"targetPosition":{"x":19130.136941097997,"y":26681.4253898827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1141841-95d0-4c98-b77e-16eb893e6b19","savedPayload":{"position":{"x":19130.136941097997,"y":26681.4253898827},"targetPosition":{"x":19172.682421992497,"y":26273.89343075238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"5a854197-4f85-4f31-bf5e-c9acff5a60cc","savedPayload":{"position":{"x":26191.609018402596,"y":28569.316216322608},"targetPosition":{"x":26558.044634162423,"y":28806.381178237985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"e6304ea5-e683-49c1-8e84-e2bc119565fa"}}}],"announcements":[],"id":"dc4b92b2-3855-4cc7-84f5-20cc259c1634","savedPayload":{"position":{"x":26185.755791523698,"y":28798.31681169135},"targetPosition":{"x":26496.4968921357,"y":28824.195125046732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6b48bcff-79c4-4705-82ac-3666914c8628","savedPayload":{"position":{"x":35804.063244841,"y":31338.307543484094},"targetPosition":{"x":35953.85767505419,"y":31346.157936920536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"657399d3-c55b-46b6-8ef6-bf1ed183c48f","savedPayload":{"position":{"x":35953.85767505419,"y":31346.157936920536},"targetPosition":{"x":36221.1596323107,"y":31209.960786998672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"c6b77baa-76fc-47b1-b051-2f3ff3406f57","savedPayload":{"position":{"x":27049.725706437093,"y":29208.31610012851},"targetPosition":{"x":27259.993364448204,"y":28949.199604844944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c377d2d0-923e-48bc-8d52-dabd2aa3cddd","savedPayload":{"position":{"x":27259.993364448204,"y":28949.199604844944},"targetPosition":{"x":27518.84362604557,"y":28631.076500627263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value","project":"Superalgos","id":"1a506022-94a8-4002-a4e9-fb5be6bb08f7","savedPayload":{"position":{"x":26784.75060476659,"y":28514.861545888067},"targetPosition":{"x":27115.108440631466,"y":28567.02125805054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a763470c-36d8-4f0a-bf43-d4bf56fdc8f2","savedPayload":{"position":{"x":27115.108440631466,"y":28567.02125805054},"targetPosition":{"x":27518.84362604557,"y":28631.076500627263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"acf03a63-b313-4815-8b9e-f0076133d831","savedPayload":{"position":{"x":35784.816066157575,"y":31216.7856399184},"targetPosition":{"x":35924.85313013216,"y":31163.030447486602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Quick Exit","config":"{\n\"percentageOfAlgorithmSize\": 100,\n\"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"0dea584c-fc00-490a-9ed3-a9ea73f8fa82","savedPayload":{"position":{"x":28500.84924955325,"y":28087.26390528551},"targetPosition":{"x":28460.27346400518,"y":27895.084373412057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f38d1558-0d76-4dbb-8376-23fad6c5b7b0","savedPayload":{"position":{"x":28460.27346400518,"y":27895.084373412057},"targetPosition":{"x":28419.59213286936,"y":27702.230894377055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c4f496ed-74ae-4538-b71d-062ec523fb02","savedPayload":{"position":{"x":28419.59213286936,"y":27702.230894377055},"targetPosition":{"x":28370.06371187106,"y":27467.696353856452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"1b0a6e1c-0fe1-4852-9830-5827fd04f468","savedPayload":{"position":{"x":26732.903828952658,"y":27625.28744419892},"targetPosition":{"x":26992.81690643062,"y":27835.592763632987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fa11a0a2-17b9-43be-a734-a5643da1dbb1","savedPayload":{"position":{"x":26992.81690643062,"y":27835.592763632987},"targetPosition":{"x":27252.13830183545,"y":28045.397716781292},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"8313a81f-a159-437e-b0a6-516dd5cfd3c8","savedPayload":{"position":{"x":27252.13830183545,"y":28045.397716781292},"targetPosition":{"x":27570.16699506435,"y":28302.793921554556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e8a01f89-65e9-4758-a6b4-b5fad0ef7297","savedPayload":{"position":{"x":35808.28123591361,"y":31068.632388829126},"targetPosition":{"x":35924.85313013216,"y":31163.030447486602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"80f7f0a4-4572-4bea-b440-b5bd1fec32c1","savedPayload":{"position":{"x":35924.85313013216,"y":31163.030447486602},"targetPosition":{"x":36221.1596323107,"y":31209.960786998672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b27aa9de-ced9-4e53-941c-499bab212f80","savedPayload":{"position":{"x":34003.1596323107,"y":31211.960786998672},"targetPosition":{"x":34215.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading Strategy","name":"S6 - 2H Up","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"873a72fd-cc23-4965-ae29-5b2b70d85cb9","savedPayload":{"position":{"x":36969.351645590534,"y":32075.37572334243},"targetPosition":{"x":36521.816792674814,"y":32028.337914871987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"087962b5-2546-4472-b71c-b161f0013b1c","savedPayload":{"position":{"x":36521.816792674814,"y":32028.337914871987},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"c72459a6-49d5-4021-b6e3-4a8c374b6b4b","savedPayload":{"position":{"x":36914.50432360657,"y":32303.831260992312},"targetPosition":{"x":36494.39313168283,"y":32142.56568369693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48333f2b-d8c7-4a92-bf5d-b8c9a8de4196","savedPayload":{"position":{"x":36494.39313168283,"y":32142.56568369693},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"8488937e-9b92-4562-b89c-a4d6c6dd8ee2","savedPayload":{"position":{"x":36802.397234696546,"y":32510.306833464772},"targetPosition":{"x":36438.33958722782,"y":32245.80346993316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ec9b3ba8-d6a4-4cb0-8679-a8daa868e549","savedPayload":{"position":{"x":36438.33958722782,"y":32245.80346993316},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"02H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"ade6a251-d161-467d-8e94-45cfdadf536b","savedPayload":{"position":{"x":36640.67029170395,"y":32680.73147171282},"targetPosition":{"x":36357.47611573152,"y":32331.015789057183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7499f60b-762e-4b37-a66d-2872755620c4","savedPayload":{"position":{"x":36357.47611573152,"y":32331.015789057183},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"04H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"3beea11e-ff4a-4e39-97d0-97563dacfb09","savedPayload":{"position":{"x":36440.34491852732,"y":32803.491018279885},"targetPosition":{"x":36257.31342914321,"y":32392.395562340716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e0650fa-cd1b-4770-81b2-06d677c73510","savedPayload":{"position":{"x":36257.31342914321,"y":32392.395562340716},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"01H Med, Steep o Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","project":"Superalgos","id":"276b36c3-c0ca-45d6-a659-c40dac406f46","savedPayload":{"position":{"x":36215.072958295306,"y":32870.219612937166},"targetPosition":{"x":36144.6774490272,"y":32425.759859669357},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"904385e8-8b04-4c0c-9961-98b10184e976","savedPayload":{"position":{"x":36144.6774490272,"y":32425.759859669357},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"a49fbb15-05db-4a21-b59b-662a6d84c999","savedPayload":{"position":{"x":35980.20632281821,"y":32876.36981223299},"targetPosition":{"x":36027.24413128865,"y":32428.834959317268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"89591bf6-dabe-4ba6-b2d8-4580a2c75b0a","savedPayload":{"position":{"x":36027.24413128865,"y":32428.834959317268},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Side or Medium","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\" || chart.at02hs.bollingerSubChannel.slope === \"Medium\"","project":"Superalgos","id":"bb0016e9-0b74-4595-b450-209487362f00","savedPayload":{"position":{"x":35751.75078516832,"y":32821.52249024902},"targetPosition":{"x":35913.016362463706,"y":32401.411298325285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad9f8e37-16b5-4245-9492-0192ef168849","savedPayload":{"position":{"x":35913.016362463706,"y":32401.411298325285},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"1e3c7245-5582-4af5-9527-5dddf151b976","savedPayload":{"position":{"x":35545.275212695866,"y":32709.415401338996},"targetPosition":{"x":35809.77857622748,"y":32345.35775387027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"440d6ea0-2ee2-408a-a556-18d4c53dda17","savedPayload":{"position":{"x":35809.77857622748,"y":32345.35775387027},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 4: 02H Up && 02H Gentle && 3H Side","code":"chart.at02hs.percentageBandwidth.movingAverage > chart.at24hs.bollingerSubChannel.slope + chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Gentle\" && chart.at03hs.bollingerSubChannel.slope === \"Side\") {false} else {true}","project":"Superalgos","id":"d4189ed6-4d0f-45ea-b1ae-dbdb8f2e0e2c","savedPayload":{"position":{"x":35374.85057444782,"y":32547.688458346398},"targetPosition":{"x":35724.566257103455,"y":32264.49428237397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"01875e5f-f718-4047-baa4-c91930dd6c86","savedPayload":{"position":{"x":35724.566257103455,"y":32264.49428237397},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H NOT Steep","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope != \"Steep\"","project":"Superalgos","id":"350d4a04-700f-4f33-960e-d267e00cec51","savedPayload":{"position":{"x":35252.09102788076,"y":32347.363085169764},"targetPosition":{"x":35663.186483819925,"y":32164.331595785654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bda747f3-188e-4ed0-82bf-b600a9a9c3f5","savedPayload":{"position":{"x":35663.186483819925,"y":32164.331595785654},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7ec2e400-1608-44b5-8ae4-ac4f815e76f5","savedPayload":{"position":{"x":36074.281939759094,"y":31981.300106401544},"targetPosition":{"x":36003.88643049099,"y":31536.84035313373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0499e109-2786-4159-b79a-c6c24ebac150","savedPayload":{"position":{"x":36003.88643049099,"y":31536.84035313373},"targetPosition":{"x":35956.95609097892,"y":31240.53385095519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","project":"Superalgos","id":"3ed33d07-ff92-4ecc-81cd-8d9318f5a3a2","savedPayload":{"position":{"x":27191.12296133197,"y":29716.243609176352},"targetPosition":{"x":27377.738829669343,"y":29458.71379958673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"40eeff59-ef6d-456b-9662-2590ba1f90b8","savedPayload":{"position":{"x":27377.738829669343,"y":29458.71379958673},"targetPosition":{"x":27561.920451623086,"y":29202.46758500435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"208d89cb-60a9-461f-a8d2-a9d185ca3c5a","savedPayload":{"position":{"x":27561.920451623086,"y":29202.46758500435},"targetPosition":{"x":27773.480418607145,"y":28913.14498634928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"77ac2dcd-e4a4-4a8f-8c71-d8a30fa7a508","savedPayload":{"position":{"x":35868.78830313505,"y":31361.886400111434},"targetPosition":{"x":35956.95609097892,"y":31240.53385095519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"0c4f8301-8084-4276-a901-5e8137867ea0","savedPayload":{"position":{"x":27086.907194471303,"y":29731.848056892108},"targetPosition":{"x":27136.186896957664,"y":29260.61912076745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c407af9c-fe4a-4d5a-9446-25fc7284ee5c","savedPayload":{"position":{"x":27136.186896957664,"y":29260.61912076745},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"6f84e4e1-1174-4eea-b92a-fdb64cdded61","savedPayload":{"position":{"x":26845.918895478728,"y":29674.537247104832},"targetPosition":{"x":27015.630716665,"y":29232.105434877696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"56b51e70-1cfd-403a-809d-ee19347ca315","savedPayload":{"position":{"x":27015.630716665,"y":29232.105434877696},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"f3b540af-68c9-4345-9826-faf0d9e6e04c","savedPayload":{"position":{"x":26628.62692066829,"y":29555.92262433069},"targetPosition":{"x":26907.1042263863,"y":29172.56413883521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f4cdcc47-9a5d-4999-9c11-8fd1c19a5424","savedPayload":{"position":{"x":26907.1042263863,"y":29172.56413883521},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"02H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"0f3ff1d1-ff82-42da-a526-aff486cbc0bb","savedPayload":{"position":{"x":26449.32682291438,"y":29385.73679848163},"targetPosition":{"x":26817.501574532795,"y":29087.407089369903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0835043e-d8e1-424e-a530-1def860228eb","savedPayload":{"position":{"x":26817.501574532795,"y":29087.407089369903},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"04H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"54f8e8ae-578f-461d-9ed2-9f352395dd19","savedPayload":{"position":{"x":26319.746148423903,"y":29174.751321281765},"targetPosition":{"x":26752.567672130415,"y":28982.055216679604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"feb6ba85-a9c1-40af-9e6b-00bd4ef1480b","savedPayload":{"position":{"x":26752.567672130415,"y":28982.055216679604},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"01H Med, Steep o Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","project":"Superalgos","id":"949100cd-882b-4c11-b010-dbbfd5fff6f5","savedPayload":{"position":{"x":26249.186023148588,"y":28937.760308931167},"targetPosition":{"x":26717.284346085053,"y":28863.46020015207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d3f463af-4e6d-493b-bc8f-e4c66ffc8567","savedPayload":{"position":{"x":26717.284346085053,"y":28863.46020015207},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"b6856a8d-7a24-4a5f-a449-de2d32fe63be","savedPayload":{"position":{"x":26242.81071916784,"y":28690.725431010862},"targetPosition":{"x":26714.317404483096,"y":28740.081788845826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"37a6e660-f28f-4bd2-99ea-3c2f46d2a36c","savedPayload":{"position":{"x":26714.317404483096,"y":28740.081788845826},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Side or Medium","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\" || chart.at02hs.bollingerSubChannel.slope === \"Medium\"","project":"Superalgos","id":"08d54285-d07e-4cec-8f13-a2f268a569a2","savedPayload":{"position":{"x":26300.684954876546,"y":28450.323577901094},"targetPosition":{"x":26743.1035762783,"y":28619.805790008024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e0208159-e2c5-4fa4-8658-714af9cc91bd","savedPayload":{"position":{"x":26743.1035762783,"y":28619.805790008024},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"36e3a366-1402-4953-8283-9a4131d304b2","savedPayload":{"position":{"x":26418.450565413492,"y":28233.020461592205},"targetPosition":{"x":26802.211538255524,"y":28511.384876368975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d4dc8ef4-ba98-4843-9ef5-16a649541da1","savedPayload":{"position":{"x":26802.211538255524,"y":28511.384876368975},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 4: 02H Up && 02H Gentle && 3H Side","code":"chart.at02hs.percentageBandwidth.movingAverage > chart.at24hs.bollingerSubChannel.slope + chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Gentle\" && chart.at03hs.bollingerSubChannel.slope === \"Side\") {false} else {true}","project":"Superalgos","id":"f24fcdcf-8844-4f08-a9f2-3b56471a6dde","savedPayload":{"position":{"x":26588.694084927174,"y":28053.188560777176},"targetPosition":{"x":26887.11975734347,"y":28421.247395206883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2f6a17d7-7a2e-4aa2-b120-d22cb0898194","savedPayload":{"position":{"x":26887.11975734347,"y":28421.247395206883},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H NOT Steep","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope != \"Steep\"","project":"Superalgos","id":"5e74fc74-6684-4675-ba35-4ce3fee27b2a","savedPayload":{"position":{"x":26799.37424013185,"y":27924.023657047102},"targetPosition":{"x":26992.402595936335,"y":28356.65803435196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cc3b8326-99cd-431c-8b27-c85322f6413f","savedPayload":{"position":{"x":26992.402595936335,"y":28356.65803435196},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e5d2fd0e-f202-44e7-bf4c-32d3a203528e","savedPayload":{"position":{"x":27185.531679057593,"y":28789.21376031469},"targetPosition":{"x":27653.698233435276,"y":28714.73585027655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"08776dac-4836-413b-ad45-fdfa781b031c","savedPayload":{"position":{"x":35660.64958880038,"y":31287.46419046726},"targetPosition":{"x":35956.95609097892,"y":31240.53385095519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"5724bd17-a57c-4ec4-9389-170c4255a2d5","savedPayload":{"position":{"x":35956.95609097892,"y":31240.53385095519},"targetPosition":{"x":36133.291666666664,"y":30997.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"My Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"a71b344d-8e76-4a30-9e8f-bcec9a1dde5f","savedPayload":{"position":{"x":27366.05287739506,"y":29283.577378516522},"targetPosition":{"x":27432.11136876051,"y":28973.676098327298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5bc478bd-5433-458e-aae2-fd9926628d7c","savedPayload":{"position":{"x":27432.11136876051,"y":28973.676098327298},"targetPosition":{"x":27517.379780218238,"y":28575.359040835086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.episodeBaseAsset.balance.value","project":"Superalgos","id":"68e2c2b7-d7e0-45e1-8a3e-a8244aad2661","savedPayload":{"position":{"x":26831.744242266795,"y":28798.204323818994},"targetPosition":{"x":27131.66661288605,"y":28700.697023173343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c49d20d7-1771-4c3e-af23-7a28193d3241","savedPayload":{"position":{"x":27131.66661288605,"y":28700.697023173343},"targetPosition":{"x":27517.379780218238,"y":28575.359040835086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"664dc863-9fc1-48ab-bd68-a34297f47da8","savedPayload":{"position":{"x":35747.605120824286,"y":31202.005574776802},"targetPosition":{"x":35847.974711778115,"y":31090.53385095519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Quick Entry","config":"{\n\"percentageOfAlgorithmSize\": 100\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"30d7a26c-2936-49a6-b98d-4438ce18bc90","savedPayload":{"position":{"x":25557.833970556716,"y":27881.17700773019},"targetPosition":{"x":25866.60094761101,"y":27946.600509743002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e991cc1d-9eee-41c5-82e3-4839b8efc76a","savedPayload":{"position":{"x":25866.60094761101,"y":27946.600509743002},"targetPosition":{"x":26175.58920980207,"y":28012.053065601387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"eb5f0809-efce-4847-9222-338f44ff79f8","savedPayload":{"position":{"x":26175.58920980207,"y":28012.053065601387},"targetPosition":{"x":26484.62772761929,"y":28077.4965385252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"be27c682-b993-408f-827b-e407c80bb3ef","savedPayload":{"position":{"x":26484.62772761929,"y":28077.4965385252},"targetPosition":{"x":26793.516800737674,"y":28142.881981467945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"17db69f2-c7ad-47ec-ad5e-1fff5d2d431e","savedPayload":{"position":{"x":26793.516800737674,"y":28142.881981467945},"targetPosition":{"x":27102.60601375657,"y":28208.22785389881},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"87120599-bb06-4e3d-879a-bb234393d074","savedPayload":{"position":{"x":27102.60601375657,"y":28208.22785389881},"targetPosition":{"x":27420.189129001606,"y":28275.134309466885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"7472854b-e09a-414c-b02a-36cf74c318d2","savedPayload":{"position":{"x":35701.25257166805,"y":31059.347097332527},"targetPosition":{"x":35847.974711778115,"y":31090.53385095519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"bd075559-4607-490b-bcd6-efdc54a5010a","savedPayload":{"position":{"x":35847.974711778115,"y":31090.53385095519},"targetPosition":{"x":36133.291666666664,"y":30997.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"New Manage Stage","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 1.03","project":"Superalgos","id":"7fdf974e-fda6-4d8c-89b9-27d07cf1d1dc","savedPayload":{"position":{"x":26799.265743562526,"y":28309.623815175553},"targetPosition":{"x":27034.386276528814,"y":28097.401331862027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < tradingEngine.current.position.entryTargetRate.value * 0.97","project":"Superalgos","id":"c2a3eae6-8f54-4697-83b5-a4250a61e707","savedPayload":{"position":{"x":26547.086185442487,"y":28892.1580344932},"targetPosition":{"x":26696.624182113846,"y":28843.370582867596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"008bcd0e-5d78-4d73-846c-404ba758c324","savedPayload":{"position":{"x":26696.624182113846,"y":28843.370582867596},"targetPosition":{"x":26867.047142507075,"y":28787.65886324944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"509f7658-04d9-4bfc-9834-a6a40839c6bb","savedPayload":{"position":{"x":26867.047142507075,"y":28787.65886324944},"targetPosition":{"x":27066.405283349402,"y":28722.511566283458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"b6412415-9393-4222-84c0-3010a793e7b3","savedPayload":{"position":{"x":26733.142549575216,"y":27998.621659097662},"targetPosition":{"x":27034.386276528814,"y":28097.401331862027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"1b7b1c18-8632-40da-91c1-ca78dc524027","savedPayload":{"position":{"x":27034.386276528814,"y":28097.401331862027},"targetPosition":{"x":27419.951996781874,"y":28015.86203334524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 1.02 < tradingEngine.current.position.stopLoss.value) {chart.at01hs.bollingerBand.movingAverage * 1.02} else {tradingEngine.current.position.stopLoss.value}","project":"Superalgos","id":"a32cdd1e-19ce-4bcc-b7c9-52a9e9466dbf","savedPayload":{"position":{"x":26414.76119920261,"y":28228.780429674436},"targetPosition":{"x":26724.658907174922,"y":28163.136235075326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"291bbfda-c1d5-49f6-966b-3f7704ffbda8","savedPayload":{"position":{"x":26724.658907174922,"y":28163.136235075326},"targetPosition":{"x":27034.386276528814,"y":28097.401331862027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bbb0aab4-c6e3-47f8-b737-9e6fcafcfba1","savedPayload":{"position":{"x":35701.25257166805,"y":30936.31040795289},"targetPosition":{"x":35847.974711778115,"y":30905.123654330226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 0.95","project":"Superalgos","id":"f65bed6b-e9c5-48aa-ae59-a8beb0c8fdcc","savedPayload":{"position":{"x":26952.704147472698,"y":27327.068946922795},"targetPosition":{"x":27254.368114363282,"y":27423.4387791013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"1H EMA7 < entryTargetRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value","project":"Superalgos","id":"a9133dde-603b-4e92-9278-fd6e3e8e8889","savedPayload":{"position":{"x":26586.412508962363,"y":27681.68879929502},"targetPosition":{"x":26741.1300197691,"y":27714.100794910577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5d40017f-c899-4a2e-9425-fef134a4f4ca","savedPayload":{"position":{"x":26741.1300197691,"y":27714.100794910577},"targetPosition":{"x":26921.561745283954,"y":27760.13052179364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.current.position.positionCounters.periods.value > 2","project":"Superalgos","id":"b74b392c-ddfc-4021-9dfe-c3d385d4dba6","savedPayload":{"position":{"x":26806.5797480703,"y":27436.524339736898},"targetPosition":{"x":26855.72255347063,"y":27586.848473351987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"052730c4-33a8-4ee9-80c6-3fb61118d2bf","savedPayload":{"position":{"x":26855.72255347063,"y":27586.848473351987},"targetPosition":{"x":26921.561745283954,"y":27760.13052179364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d75acbba-54eb-4a90-b76e-8649c08cbec0","savedPayload":{"position":{"x":26921.561745283954,"y":27760.13052179364},"targetPosition":{"x":27077.345235898825,"y":27899.36180329896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"c2f90327-7f61-4d94-84f9-fcd82b5aa44d","savedPayload":{"position":{"x":27189.66866618138,"y":27113.5490051409},"targetPosition":{"x":27254.368114363282,"y":27423.4387791013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"48071c89-de62-467f-a472-10557ba6277f","savedPayload":{"position":{"x":27254.368114363282,"y":27423.4387791013},"targetPosition":{"x":27518.062020137797,"y":27715.896282526744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Manage: 3% Below ema7","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.97 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.97} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"34d1cb14-5351-42d4-8827-b2b0aa013b99","savedPayload":{"position":{"x":26807.09674076735,"y":27400.603304659817},"targetPosition":{"x":27042.388961217304,"y":27188.465791753944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"6f6150fc-3a6a-4686-a350-ff141bc83623","savedPayload":{"position":{"x":14784.053958482124,"y":25069.067305926896},"targetPosition":{"x":14637.813819067615,"y":24757.31718031864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3ef9a345-0c46-428c-94f3-80decc872e23","savedPayload":{"position":{"x":14637.813819067615,"y":24757.31718031864},"targetPosition":{"x":14495.66957574337,"y":24438.455606293224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d34694ed-b6c6-4fca-ae8d-95e3f30a4888","savedPayload":{"position":{"x":14495.66957574337,"y":24438.455606293224},"targetPosition":{"x":14352.8676636628,"y":24115.28786463818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0be8dfdf-f4ff-4616-b788-c04b3c64eb1b","savedPayload":{"position":{"x":26901.71990179922,"y":27024.15277115845},"targetPosition":{"x":27042.388961217304,"y":27188.465791753944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"45b5b7a2-8cc1-47f8-99c5-8042c7925a89","savedPayload":{"position":{"x":27658.025002805498,"y":26426.085377108873},"targetPosition":{"x":27723.56989887507,"y":26735.456650919034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9bb86da8-d8fa-4b5c-b6a5-952327938371","savedPayload":{"position":{"x":27723.56989887507,"y":26735.456650919034},"targetPosition":{"x":27789.15471152965,"y":27045.25274928249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"05f551c5-32a7-4986-8753-5ac0bd0d4acc","savedPayload":{"position":{"x":27984.616542289543,"y":26443.133902054753},"targetPosition":{"x":27886.95621955133,"y":26743.96066903473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9ba9b517-a809-4b01-848f-5bb31ab1f92c","savedPayload":{"position":{"x":27886.95621955133,"y":26743.96066903473},"targetPosition":{"x":27789.15471152965,"y":27045.25274928249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value * 0.99","project":"Superalgos","id":"c7001aa3-f176-40e4-a6d7-2744966363cd","savedPayload":{"position":{"x":28259.227163223004,"y":26621.283089584525},"targetPosition":{"x":28024.291391877065,"y":26833.10787628452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"094200d6-3761-4dd0-8073-083d14bbeb71","savedPayload":{"position":{"x":28024.291391877065,"y":26833.10787628452},"targetPosition":{"x":27789.15471152965,"y":27045.25274928249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"aaee1ab9-d92b-4f01-afc1-654347d9511a","savedPayload":{"position":{"x":28407.924367825308,"y":26912.750504775722},"targetPosition":{"x":28098.696790438462,"y":26978.890307231173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9143d8e3-b435-49f2-907e-a874e794d32a","savedPayload":{"position":{"x":28098.696790438462,"y":26978.890307231173},"targetPosition":{"x":27789.15471152965,"y":27045.25274928249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"9e27b341-5396-4a81-b483-13c9e497f3c4","savedPayload":{"position":{"x":28390.80364005569,"y":27238.838363839088},"targetPosition":{"x":28090.14902776395,"y":27142.022560978214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"77518efa-2184-4602-8f5a-f3e106c6845c","savedPayload":{"position":{"x":28090.14902776395,"y":27142.022560978214},"targetPosition":{"x":27789.15471152965,"y":27045.25274928249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9d8fbd63-29f2-41f9-85f1-92643ff12c6d","savedPayload":{"position":{"x":27789.15471152965,"y":27045.25274928249},"targetPosition":{"x":27540.59184881964,"y":27269.737387375048},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"a92424e5-ab90-424c-85cc-b8697bcb6009","savedPayload":{"position":{"x":27277.88526191553,"y":26976.52819796292},"targetPosition":{"x":27042.388961217304,"y":27188.465791753944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"8aff2c3b-ecf9-4df8-84ea-ffd6ba9c9612"}}}],"announcements":[],"id":"58effb7e-0927-4c47-8745-58895dead2ea","savedPayload":{"position":{"x":27042.388961217304,"y":27188.465791753944},"targetPosition":{"x":27254.196720956894,"y":27423.250609095536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"49b3a850-8a9e-41c7-8b5f-e5f3a21ce83d","savedPayload":{"position":{"x":26497.508319854816,"y":26919.743468851586},"targetPosition":{"x":26813.41806607467,"y":26936.396016420636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"c6bc7845-b742-4bd0-a28e-f76bafd9ae16","savedPayload":{"position":{"x":31453.226323361007,"y":25215.258417524892},"targetPosition":{"x":31462.162939478927,"y":25569.916512643897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0dea846d-7054-4651-9c26-e34941dd4128","savedPayload":{"position":{"x":31462.162939478927,"y":25569.916512643897},"targetPosition":{"x":31471.265604665605,"y":25924.673587525336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"9ef393ca-8c24-4089-a87e-8ce151f2b828","savedPayload":{"position":{"x":31725.70257649751,"y":25262.06062721915},"targetPosition":{"x":31598.5193552653,"y":25593.24491133385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6be2982e-d239-488c-aa26-68e9b2a7af09","savedPayload":{"position":{"x":31598.5193552653,"y":25593.24491133385},"targetPosition":{"x":31471.265604665605,"y":25924.673587525336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"69018aba-59d9-4f07-a2d5-d93c75981c93","savedPayload":{"position":{"x":31959.976711177063,"y":25409.851846470818},"targetPosition":{"x":31715.767373381706,"y":25667.1500898203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6ce688b0-0234-4ad1-8afa-540325306d5c","savedPayload":{"position":{"x":31715.767373381706,"y":25667.1500898203},"targetPosition":{"x":31471.265604665605,"y":25924.673587525336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"b882f3e8-28e5-49f8-90a1-c27ac4723c90","savedPayload":{"position":{"x":32119.863560570913,"y":25635.84017379446},"targetPosition":{"x":31795.724431882918,"y":25780.13258139456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d21fc9d4-bec7-4df6-9083-203e877f30de","savedPayload":{"position":{"x":31795.724431882918,"y":25780.13258139456},"targetPosition":{"x":31471.265604665605,"y":25924.673587525336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"2d8c394e-6772-4d45-a052-a5c04202637c","savedPayload":{"position":{"x":32180.94951857139,"y":25905.955517029506},"targetPosition":{"x":31826.22036398195,"y":25915.273245835204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"577a9703-74fb-4ea1-9e6d-1a6083c6ac29","savedPayload":{"position":{"x":31826.22036398195,"y":25915.273245835204},"targetPosition":{"x":31471.265604665605,"y":25924.673587525336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14 > chart.at01hs.base7EMA.previous.previous.ema21 - chart.at01hs.base7EMA.previous.previous.ema14","project":"Superalgos","id":"af2fed7e-8530-49cb-8d8c-818c0dfd3865","savedPayload":{"position":{"x":32134.06519033824,"y":26178.34746016506},"targetPosition":{"x":31802.77317185179,"y":26051.43779053491},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8b902eb1-aaaf-41e5-abab-95f7673e1ff5","savedPayload":{"position":{"x":31802.77317185179,"y":26051.43779053491},"targetPosition":{"x":31471.265604665605,"y":25924.673587525336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2 previous ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7 > chart.at01hs.base7EMA.previous.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.previous.ema7","project":"Superalgos","id":"2a5efff2-2a04-4585-813e-e3ac2ffb8b95","savedPayload":{"position":{"x":31986.51303887656,"y":26412.48674522622},"targetPosition":{"x":31728.883964673718,"y":26168.510294319094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"081cec88-c2c1-49f8-88c1-760fc50e7f91","savedPayload":{"position":{"x":31728.883964673718,"y":26168.510294319094},"targetPosition":{"x":31471.265604665605,"y":25924.673587525336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7abbde01-e871-4b28-973e-51ca5f3f1c4d","savedPayload":{"position":{"x":31471.265604665605,"y":25924.673587525336},"targetPosition":{"x":31136.857003796606,"y":26073.74504896134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"276723b8-0d32-49d8-b9b3-bd29368160f7","savedPayload":{"position":{"x":26681.250386294912,"y":26760.768118645},"targetPosition":{"x":26813.41806607467,"y":26936.396016420636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"8aff2c3b-ecf9-4df8-84ea-ffd6ba9c9612"}}},{"type":"Move To Phase Event","name":"Cancel Close","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"16b5e57d-57f9-401a-9134-4dd112797d48","savedPayload":{"position":{"x":31900.431671067643,"y":26457.001353980566},"targetPosition":{"x":31576.330480092503,"y":26601.042576950604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f2bb1dbc-702a-413a-9421-9ac5309fe6f0","savedPayload":{"position":{"x":31576.330480092503,"y":26601.042576950604},"targetPosition":{"x":31252.153265805107,"y":26745.17244006823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"f73c271b-afa2-45ee-91d4-6aee3b3a8be9","savedPayload":{"position":{"x":31914.623577701415,"y":26999.186410527094},"targetPosition":{"x":31583.455308704193,"y":26872.189703330594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"feaca6ce-0573-401a-909a-4e25687ce708","savedPayload":{"position":{"x":31583.455308704193,"y":26872.189703330594},"targetPosition":{"x":31252.153265805107,"y":26745.17244006823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2 prev.ema7 div 2 prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7 > chart.at01hs.base7EMA.previous.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.previous.ema7","project":"Superalgos","id":"a9c93bde-d56d-42e9-a447-b29a02885149","savedPayload":{"position":{"x":31541.18395690678,"y":27392.918610118708},"targetPosition":{"x":31396.647076390393,"y":27069.072814541374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"72e2d105-feba-47a0-8eaf-6c83296a3863","savedPayload":{"position":{"x":31396.647076390393,"y":27069.072814541374},"targetPosition":{"x":31252.153265805107,"y":26745.17244006823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ab94fcaf-55b6-4be2-a44a-b399dda60644","savedPayload":{"position":{"x":31252.153265805107,"y":26745.17244006823},"targetPosition":{"x":30910.1383941139,"y":26614.037899048395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"07ca2734-a819-49f7-99f7-f19f58e5ffba","savedPayload":{"position":{"x":26830.59932597279,"y":26619.397312943503},"targetPosition":{"x":26813.41806607467,"y":26936.396016420636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"58effb7e-0927-4c47-8745-58895dead2ea"}}}],"announcements":[],"id":"e1d12230-902a-46bf-bb48-1fafbd162e1e","savedPayload":{"position":{"x":26813.41806607467,"y":26936.396016420636},"targetPosition":{"x":27042.388961217304,"y":27188.465791753944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.8 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.8} else \n{tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"b53c2ea8-9341-416a-bef3-0b7fb86530d5","savedPayload":{"position":{"x":26440.394592951645,"y":27097.010344635586},"targetPosition":{"x":26872.911548913045,"y":27006.19736763503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Cancel Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"de39a349-8739-4e13-ba9d-91acedf7c835","savedPayload":{"position":{"x":18341.530042840343,"y":27297.78553821458},"targetPosition":{"x":18175.13295325986,"y":26923.839282848297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b8a44bb5-4965-4d76-8a55-6f0274d84b0c","savedPayload":{"position":{"x":18175.13295325986,"y":26923.839282848297},"targetPosition":{"x":18008.631010049372,"y":26549.68354602711},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"4529e123-22d2-40a3-a751-9069e69fa624","savedPayload":{"position":{"x":17527.731523448325,"y":27212.25039516188},"targetPosition":{"x":17768.151951980406,"y":26881.045725077645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c94daca3-f53c-42b6-970c-586d9b605b04","savedPayload":{"position":{"x":17768.151951980406,"y":26881.045725077645},"targetPosition":{"x":18008.631010049372,"y":26549.68354602711},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0a283745-7a51-45ab-b781-538c6e1f6a8a","savedPayload":{"position":{"x":18008.631010049372,"y":26549.68354602711},"targetPosition":{"x":18051.17649094387,"y":26142.15158689679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"be4359e1-bbfa-404c-b1ab-e073d8b4b173","savedPayload":{"position":{"x":26783.493706164132,"y":26582.953049770163},"targetPosition":{"x":26872.911548913045,"y":27006.19736763503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"58effb7e-0927-4c47-8745-58895dead2ea"}}}],"announcements":[],"id":"8aff2c3b-ecf9-4df8-84ea-ffd6ba9c9612","savedPayload":{"position":{"x":26582.153893650237,"y":26685.615767170835},"targetPosition":{"x":26813.41806607467,"y":26936.396016420636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c97bbced-498a-49dd-847a-a52170294ea9","savedPayload":{"position":{"x":35747.605120824286,"y":30793.651930508615},"targetPosition":{"x":35847.974711778115,"y":30905.123654330226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"f9453ecf-918d-4816-a43e-216a4af33d75","savedPayload":{"position":{"x":35847.974711778115,"y":30905.123654330226},"targetPosition":{"x":36133.291666666664,"y":30997.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"1e5d1117-4259-439f-aa97-5ad6987f5b35","savedPayload":{"position":{"x":26951.535516064185,"y":27579.53959425909},"targetPosition":{"x":27265.203493407662,"y":27546.9080959875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"555c2937-bb8c-4e4f-8efb-1f74b41add4d","savedPayload":{"position":{"x":27265.203493407662,"y":27546.9080959875},"targetPosition":{"x":27670.74288855006,"y":27505.099256602218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value","project":"Superalgos","id":"d227d443-eed5-4c57-adbf-65a8d31b9c3f","savedPayload":{"position":{"x":27247.220536923047,"y":26921.708114943343},"targetPosition":{"x":27432.517662971164,"y":27177.133609266668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94937102-d124-4024-af99-1577576890ac","savedPayload":{"position":{"x":27432.517662971164,"y":27177.133609266668},"targetPosition":{"x":27670.74288855006,"y":27505.099256602218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"81cd8c47-9c13-4bdd-ab07-9c1348056ad3","savedPayload":{"position":{"x":35819.92427233253,"y":30694.113157868855},"targetPosition":{"x":35956.95609097892,"y":30755.123654330226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Quick Exit","config":"{\n\"percentageOfAlgorithmSize\": 100,\n\"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"ca77ac04-3397-4da0-9908-21dd15e0d527","savedPayload":{"position":{"x":28753.84924955325,"y":27883.26390528551},"targetPosition":{"x":28713.27346400518,"y":27691.084373412057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1b473e40-9a22-4299-943b-19fedb465b85","savedPayload":{"position":{"x":28713.27346400518,"y":27691.084373412057},"targetPosition":{"x":28672.59213286936,"y":27498.230894377055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"234da5ed-12c9-44e8-9e76-8e8e148ef107","savedPayload":{"position":{"x":28672.59213286936,"y":27498.230894377055},"targetPosition":{"x":28623.06371187106,"y":27263.696353856452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"c5524985-3594-49e6-8aa6-f9c8d25e9b10","savedPayload":{"position":{"x":27818.15818264909,"y":26287.975093254136},"targetPosition":{"x":27851.07555537851,"y":26602.180464650388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"02335883-dc89-4b10-ada2-1d4a849161b8","savedPayload":{"position":{"x":27851.07555537851,"y":26602.180464650388},"targetPosition":{"x":27883.998432397704,"y":26916.152932168472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"9da04e66-35a4-4332-96db-d2bfffd18118","savedPayload":{"position":{"x":27883.998432397704,"y":26916.152932168472},"targetPosition":{"x":27926.32435853008,"y":27319.46788953682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"19cddff0-8db1-42fe-9969-d8262cc85c25","savedPayload":{"position":{"x":35941.27682148878,"y":30605.945370024983},"targetPosition":{"x":35956.95609097892,"y":30755.123654330226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"e5956042-1714-4ea3-8e87-52b3d0a2d2b8","savedPayload":{"position":{"x":35956.95609097892,"y":30755.123654330226},"targetPosition":{"x":36133.291666666664,"y":30997.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f1ca0dbb-65e8-4c60-84f0-89596e22e9be","savedPayload":{"position":{"x":33915.291666666664,"y":30999.82875264271},"targetPosition":{"x":34215.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading Strategy","name":"S7 - 3H Down","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"b7ef7546-2729-499d-88db-7c958392fb0e","savedPayload":{"position":{"x":35907.697720839125,"y":31815.459797956803},"targetPosition":{"x":35739.9398497979,"y":31566.74852619029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"40201dbd-8fbe-41aa-acd3-c0cea3fff9de","savedPayload":{"position":{"x":35739.9398497979,"y":31566.74852619029},"targetPosition":{"x":35572.18197875667,"y":31318.03725442378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"6dc11e45-63d6-4246-9a9a-294a45931b14","savedPayload":{"position":{"x":35717.33511611647,"y":31900.214690189376},"targetPosition":{"x":35644.75854743657,"y":31609.125972306578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2dbb8f61-68b4-4835-a6f7-6d7c0c2248ee","savedPayload":{"position":{"x":35644.75854743657,"y":31609.125972306578},"targetPosition":{"x":35572.18197875667,"y":31318.03725442378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"391ae861-6932-4481-bc4f-15a284dafe80","savedPayload":{"position":{"x":35509.464900796076,"y":31914.750391644742},"targetPosition":{"x":35540.82343977637,"y":31616.39382303426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"52613d30-4103-4272-b871-e3785881dcd8","savedPayload":{"position":{"x":35540.82343977637,"y":31616.39382303426},"targetPosition":{"x":35572.18197875667,"y":31318.03725442378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"7bf0cb68-72c5-4df6-891e-ee3b08bdc439","savedPayload":{"position":{"x":35309.15929068323,"y":31857.31368220328},"targetPosition":{"x":35440.67063471995,"y":31587.67546831353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5bab5664-c7aa-4e60-aecd-30db721958b0","savedPayload":{"position":{"x":35440.67063471995,"y":31587.67546831353},"targetPosition":{"x":35572.18197875667,"y":31318.03725442378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"3d771526-7fc9-4c67-b4b4-50e2df038870","savedPayload":{"position":{"x":35140.57809855348,"y":31734.83227669918},"targetPosition":{"x":35356.38003865507,"y":31526.43476556148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1298f042-2f23-4fc7-8359-5bdd3f7e7da1","savedPayload":{"position":{"x":35356.38003865507,"y":31526.43476556148},"targetPosition":{"x":35572.18197875667,"y":31318.03725442378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Side or Gentle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerSubChannel.slope === \"Side\" || chart.at06hs.bollingerSubChannel.slope === \"Gentle\"","project":"Superalgos","id":"9e520195-93e0-4d66-b312-eb2c90921b3c","savedPayload":{"position":{"x":35024.0547041711,"y":31562.079240269257},"targetPosition":{"x":35298.11834146389,"y":31440.05824734652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"16707f87-40dc-44ae-a7f8-2df9dc07d53c","savedPayload":{"position":{"x":35298.11834146389,"y":31440.05824734652},"targetPosition":{"x":35572.18197875667,"y":31318.03725442378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Side","code":"chart.at02hs.bollingerSubChannel.slope > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\"","project":"Superalgos","id":"8143bcc8-af0f-45ef-bbde-1f67fa30b819","savedPayload":{"position":{"x":34973.643548600776,"y":31359.891138670257},"targetPosition":{"x":35272.91276367872,"y":31338.96419654702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0f2efdf7-69dc-4d15-9bf4-6f714894d100","savedPayload":{"position":{"x":35272.91276367872,"y":31338.96419654702},"targetPosition":{"x":35572.18197875667,"y":31318.03725442378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"10f38b80-2f33-4ad0-b849-019b27b36921","savedPayload":{"position":{"x":34995.424961193676,"y":31152.654840933577},"targetPosition":{"x":35283.80346997517,"y":31235.34604767868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"080177f0-9708-4e76-b021-f4857ee42930","savedPayload":{"position":{"x":35283.80346997517,"y":31235.34604767868},"targetPosition":{"x":35572.18197875667,"y":31318.03725442378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5dd3ebf8-bbcd-4978-8d28-0f4ecfe80ba4","savedPayload":{"position":{"x":35572.18197875667,"y":31318.03725442378},"targetPosition":{"x":35748.517554444414,"y":31075.332156111297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"b4791836-6c85-4279-b75c-ba308154012c","savedPayload":{"position":{"x":35748.517554444414,"y":31075.332156111297},"targetPosition":{"x":35924.85313013216,"y":30832.627057798814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","project":"Superalgos","id":"81a9ee22-bb7d-4a2b-b3ca-7df88b5cfcd1","savedPayload":{"position":{"x":29263.191030219037,"y":25950.325479768275},"targetPosition":{"x":29264.76406063867,"y":26269.61090777797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78d25152-3354-4e6c-8118-e621e2eab4e0","savedPayload":{"position":{"x":29264.76406063867,"y":26269.61090777797},"targetPosition":{"x":29277.049263218465,"y":26605.631084912486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1067e774-8e02-44c0-a86a-43c62a2e1a69","savedPayload":{"position":{"x":29277.049263218465,"y":26605.631084912486},"targetPosition":{"x":29277.335721066844,"y":26964.71444993079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"26a5deff-364b-4f52-b2f2-24eb39f8a9aa","savedPayload":{"position":{"x":35776.699879042884,"y":30856.092227554847},"targetPosition":{"x":35924.85313013216,"y":30832.627057798814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"7ca3641e-2701-4ae6-aebf-419045fa3ef7","savedPayload":{"position":{"x":34942.020389974154,"y":30815.471648505776},"targetPosition":{"x":35190.73166174067,"y":30647.713777464553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"50506cba-6ce7-47ee-a28f-50cae0a62f61","savedPayload":{"position":{"x":35190.73166174067,"y":30647.713777464553},"targetPosition":{"x":35439.44293350718,"y":30479.95590642333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"b0bf87ab-9049-4c24-918b-b7bc805db2a8","savedPayload":{"position":{"x":34857.26549774159,"y":30625.109043783126},"targetPosition":{"x":35148.354215624386,"y":30552.532475103228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"56da2b2c-74c3-4328-b75c-4990aef44ca0","savedPayload":{"position":{"x":35148.354215624386,"y":30552.532475103228},"targetPosition":{"x":35439.44293350718,"y":30479.95590642333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"0ed3b727-9493-4064-8404-d2d48e9213ad","savedPayload":{"position":{"x":34842.729796286214,"y":30417.238828462734},"targetPosition":{"x":35141.0863648967,"y":30448.59736744303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f6f8fad9-0588-4d7c-81a8-5738f0d6c7e6","savedPayload":{"position":{"x":35141.0863648967,"y":30448.59736744303},"targetPosition":{"x":35439.44293350718,"y":30479.95590642333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"5fe7a35e-a56c-4ad4-854d-5b13ca036669","savedPayload":{"position":{"x":34900.16650572768,"y":30216.93321834988},"targetPosition":{"x":35169.80471961743,"y":30348.444562386605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1b64fa95-a27a-4e68-9ae1-fa8358e23f41","savedPayload":{"position":{"x":35169.80471961743,"y":30348.444562386605},"targetPosition":{"x":35439.44293350718,"y":30479.95590642333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"23e2569a-2867-4ebe-aa2b-21254ab0c096","savedPayload":{"position":{"x":35022.64791123178,"y":30048.35202622014},"targetPosition":{"x":35231.04542236948,"y":30264.153966321734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f6a6ace-3508-4a78-953a-a9944f9b9077","savedPayload":{"position":{"x":35231.04542236948,"y":30264.153966321734},"targetPosition":{"x":35439.44293350718,"y":30479.95590642333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Side or Gentle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerSubChannel.slope === \"Side\" || chart.at06hs.bollingerSubChannel.slope === \"Gentle\"","project":"Superalgos","id":"565a511b-5264-4cfd-ad94-c8b316f5e19c","savedPayload":{"position":{"x":35195.4009476617,"y":29931.82863183777},"targetPosition":{"x":35317.42194058444,"y":30205.89226913055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5e3a86fa-9e96-47ef-b87b-3324c9edf8a3","savedPayload":{"position":{"x":35317.42194058444,"y":30205.89226913055},"targetPosition":{"x":35439.44293350718,"y":30479.95590642333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Side","code":"chart.at02hs.bollingerSubChannel.slope > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\"","project":"Superalgos","id":"ef7ba943-87cb-4149-8ab2-a562a34fa524","savedPayload":{"position":{"x":35397.58904926071,"y":29881.417476267434},"targetPosition":{"x":35418.515991383945,"y":30180.68669134538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e624d8a7-586a-4198-a528-b6ee474245dd","savedPayload":{"position":{"x":35418.515991383945,"y":30180.68669134538},"targetPosition":{"x":35439.44293350718,"y":30479.95590642333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"9992327b-1059-4396-8766-514b6384a81b","savedPayload":{"position":{"x":35604.82534699738,"y":29903.19888886034},"targetPosition":{"x":35522.13414025228,"y":30191.577397641835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0701df03-b97b-4d03-89a7-a9fb764d1d21","savedPayload":{"position":{"x":35522.13414025228,"y":30191.577397641835},"targetPosition":{"x":35439.44293350718,"y":30479.95590642333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b72964a4-f423-4930-a40d-ced67854d28e","savedPayload":{"position":{"x":35439.44293350718,"y":30479.95590642333},"targetPosition":{"x":35682.14803181967,"y":30656.29148211107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"51e2b55b-66ca-45c9-9cfd-ec82ac5ce3d6","savedPayload":{"position":{"x":35682.14803181967,"y":30656.29148211107},"targetPosition":{"x":35924.85313013216,"y":30832.627057798814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"adc2c73c-702f-46ce-90ad-dbbc7f75ad3d","savedPayload":{"position":{"x":35924.85313013216,"y":30832.627057798814},"targetPosition":{"x":36221.1596323107,"y":30785.696718286745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"My Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"61dd007d-fb60-4d69-9873-e38ecc1c542b","savedPayload":{"position":{"x":26954.4612342476,"y":27797.465945206037},"targetPosition":{"x":27232.249322005937,"y":27617.145957993904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2d95e2e3-ccf3-42a4-a5be-38a235d1256b","savedPayload":{"position":{"x":27232.249322005937,"y":27617.145957993904},"targetPosition":{"x":27575.645466755315,"y":27395.124940815433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.episodeBaseAsset.balance.value","project":"Superalgos","id":"21ee0d72-fc9c-40b9-93fc-3dee8beedc3a","savedPayload":{"position":{"x":26917.385536592123,"y":27059.733301825763},"targetPosition":{"x":27212.229030840383,"y":27209.954665631943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c55293c-d34d-4093-b1a2-81e64345c73b","savedPayload":{"position":{"x":27212.229030840383,"y":27209.954665631943},"targetPosition":{"x":27575.645466755315,"y":27395.124940815433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"08a3f81a-a5a3-4a15-ad14-d3d09724eba9","savedPayload":{"position":{"x":35804.063244841,"y":30657.349961801323},"targetPosition":{"x":35953.85767505419,"y":30649.49956836488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Quick Entry","config":"{\n\"percentageOfAlgorithmSize\": 100\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"76aeb4a5-1c22-4021-b61f-d1660b598a9a","savedPayload":{"position":{"x":31176.403846796253,"y":25336.269965876054},"targetPosition":{"x":30810.972409175498,"y":25476.467115831903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"13c54ad9-7dac-405f-b5fe-44ba813378d5","savedPayload":{"position":{"x":30810.972409175498,"y":25476.467115831903},"targetPosition":{"x":30445.13293870145,"y":25616.831261436026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"34587555-32f1-4241-b607-476f22c689a6","savedPayload":{"position":{"x":30445.13293870145,"y":25616.831261436026},"targetPosition":{"x":30079.319849588763,"y":25757.23287385561},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"a658e05d-abc9-4c5b-ad1b-0897f752cae0","savedPayload":{"position":{"x":30079.319849588763,"y":25757.23287385561},"targetPosition":{"x":29708.54861784794,"y":25899.634261963685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"simulatedExchangeEvents":{"type":"Simulated Exchange Events","name":"New Simulated Exchange Events","project":"Superalgos","simulatedPartialFill":{"type":"Simulated Partial Fill","name":"New Simulated Partial Fill","config":"{ \n\"fillProbability\": 1\n}","project":"Superalgos","id":"44d1a29f-42db-4582-93eb-057c5efab1f2","savedPayload":{"position":{"x":30463.036340071973,"y":26071.176046577108},"targetPosition":{"x":30071.239020751127,"y":26061.01028968422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"simulatedActualRate":{"type":"Simulated Actual Rate","name":"New Simulated Actual Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"91ca08cc-ec90-4256-bab1-f6a9b08fc236","savedPayload":{"position":{"x":30787.02617391212,"y":26379.476491639078},"targetPosition":{"x":30429.31543763473,"y":26220.325772993652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7de9fa13-47c9-475e-9ae1-02c4c4066ab8","savedPayload":{"position":{"x":30429.31543763473,"y":26220.325772993652},"targetPosition":{"x":30071.239020751127,"y":26061.01028968422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"simulatedFeesPaid":{"type":"Simulated Fees Paid","name":"New Simulated Fees Paid","config":"{ \n\n}","project":"Superalgos","id":"9ba0d597-9964-4808-ba4f-c2b9f3ee2fa0","savedPayload":{"position":{"x":30341.01921824852,"y":26345.197047767208},"targetPosition":{"x":30071.239020751127,"y":26061.01028968422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5079aedd-ae1e-43e7-a7bf-ffda4fc60ac9","savedPayload":{"position":{"x":30071.239020751127,"y":26061.01028968422},"targetPosition":{"x":29708.54861784794,"y":25899.634261963685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4678c054-97e1-45b2-be5c-1d4015e291a2","savedPayload":{"position":{"x":27363.405615274343,"y":26544.46692868584},"targetPosition":{"x":27544.591636298504,"y":26822.279081712833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"819609ef-c126-4b0b-a4c2-9daeb4d52216","savedPayload":{"position":{"x":27544.591636298504,"y":26822.279081712833},"targetPosition":{"x":27726.051900550214,"y":27101.386613620416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"720b7cb2-8cc4-406a-97cd-d800c913643f","savedPayload":{"position":{"x":35872.161819801935,"y":30523.698983173068},"targetPosition":{"x":35953.85767505419,"y":30649.49956836488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"2b443716-eb30-43b5-9457-7263233daaed","savedPayload":{"position":{"x":35953.85767505419,"y":30649.49956836488},"targetPosition":{"x":36221.1596323107,"y":30785.696718286745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"New Manage Stage","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 1.03","project":"Superalgos","id":"d0a0de89-d79f-4fa5-885c-a680ff10cfeb","savedPayload":{"position":{"x":27250.156837576338,"y":26675.028202881753},"targetPosition":{"x":27581.018312648295,"y":26691.19051769981},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < tradingEngine.current.position.entryTargetRate.value * 0.97","project":"Superalgos","id":"cbda2339-230a-4211-a1c9-29a32fee1181","savedPayload":{"position":{"x":26633.57534691976,"y":26919.098580224883},"targetPosition":{"x":26782.832467801523,"y":26994.935145367635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bf0650d2-b7a2-4f05-94e3-80ccda90ffc5","savedPayload":{"position":{"x":26782.832467801523,"y":26994.935145367635},"targetPosition":{"x":26940.19858923711,"y":27074.1354035248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"df3531c9-6540-4671-be17-4ce0cfda2120","savedPayload":{"position":{"x":26940.19858923711,"y":27074.1354035248},"targetPosition":{"x":27132.31933827815,"y":27171.020738102787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"6de908df-521a-434c-b9e4-e81e0c84181b","savedPayload":{"position":{"x":27431.436315350355,"y":26395.57768259196},"targetPosition":{"x":27581.018312648295,"y":26691.19051769981},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"68255a1b-6136-4d16-b89a-40d0bca2587b","savedPayload":{"position":{"x":27581.018312648295,"y":26691.19051769981},"targetPosition":{"x":27917.784749408285,"y":26909.751362006406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 1.02 < tradingEngine.current.position.stopLoss.value) {chart.at01hs.bollingerBand.movingAverage * 1.02} else {tradingEngine.current.position.stopLoss.value}","project":"Superalgos","id":"cf80ef88-969d-40f5-bc36-ccee6f8518bf","savedPayload":{"position":{"x":27025.878195669367,"y":26331.123736315414},"targetPosition":{"x":27303.228972754463,"y":26511.09544029578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"6fac6741-1d2a-4364-ba55-6d0082d4e33b","savedPayload":{"position":{"x":27303.228972754463,"y":26511.09544029578},"targetPosition":{"x":27581.018312648295,"y":26691.19051769981},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"995255a7-571c-4219-bb24-a1dda890ba60","savedPayload":{"position":{"x":35959.161897197024,"y":30436.69890577798},"targetPosition":{"x":36084.96248238884,"y":30518.394761030235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 0.95","project":"Superalgos","id":"728b5268-b977-412e-a7f9-fdc5eeca238a","savedPayload":{"position":{"x":27954.916477446754,"y":26179.157131716216},"targetPosition":{"x":28232.60297818197,"y":26358.93025412847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"1H EMA7 < entryTargetRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value","project":"Superalgos","id":"f035c3b1-3b9f-4d14-89a4-7f483fa0ea49","savedPayload":{"position":{"x":27223.260064960938,"y":26275.05746760463},"targetPosition":{"x":27313.961774374322,"y":26414.445652541348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b6f406c-022e-46b7-aabd-a99398140b10","savedPayload":{"position":{"x":27313.961774374322,"y":26414.445652541348},"targetPosition":{"x":27410.240062845653,"y":26572.20960652378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.current.position.positionCounters.periods.value > 2","project":"Superalgos","id":"4de45b46-85e5-4755-9caa-360c50ca061d","savedPayload":{"position":{"x":27562.61527506408,"y":26256.803866124683},"targetPosition":{"x":27488.13907856434,"y":26404.827575720745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5a408907-8527-49d0-9172-60c026feb553","savedPayload":{"position":{"x":27488.13907856434,"y":26404.827575720745},"targetPosition":{"x":27410.240062845653,"y":26572.20960652378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"86be8810-719f-4235-b92f-1e3d9a100391","savedPayload":{"position":{"x":27410.240062845653,"y":26572.20960652378},"targetPosition":{"x":27422.10962772474,"y":26786.869432305393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"1073d54b-c72a-4a7f-9353-1060186d29c2","savedPayload":{"position":{"x":28527.496565370766,"y":26209.121599895494},"targetPosition":{"x":28232.60297818197,"y":26358.93025412847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"91f7e76b-6171-4c75-b70c-bfc33543b9c3","savedPayload":{"position":{"x":28232.60297818197,"y":26358.93025412847},"targetPosition":{"x":28211.941467792476,"y":26759.607395000632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Manage: 3% Below ema7","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.97 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.97} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"712dcccd-fca1-4d1b-bf00-497375a831ec","savedPayload":{"position":{"x":27919.263647509517,"y":26011.430195370725},"targetPosition":{"x":28249.661342343345,"y":26028.698522912906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"8facdd27-7830-4433-b373-c259545e9d3f","savedPayload":{"position":{"x":14335.802027035403,"y":24696.547745833843},"targetPosition":{"x":14189.561887620894,"y":24384.79762022559},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7b658c8-0903-46b3-867a-c01eaca10bb1","savedPayload":{"position":{"x":14189.561887620894,"y":24384.79762022559},"targetPosition":{"x":14047.417644296649,"y":24065.93604620017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"97de140f-ae6e-435a-8be7-c4d87e38bd83","savedPayload":{"position":{"x":14047.417644296649,"y":24065.93604620017},"targetPosition":{"x":13904.61573221608,"y":23742.768304545127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"c137f50a-c8a7-4275-8ae4-80fa7fedd38c","savedPayload":{"position":{"x":28167.520160340675,"y":25687.851040623398},"targetPosition":{"x":28249.661342343345,"y":26028.698522912906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"908a2ee2-d913-46d1-80f5-e7109c803e65","savedPayload":{"position":{"x":29265.827138677025,"y":25909.711818415635},"targetPosition":{"x":29085.240980700488,"y":26186.897520645063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a9ab42d-9b24-461f-95cd-39ab13a54bc3","savedPayload":{"position":{"x":29085.240980700488,"y":26186.897520645063},"targetPosition":{"x":28904.868379284024,"y":26464.4248405494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"d4179fb4-9949-4d82-ae45-8d8be2001ce8","savedPayload":{"position":{"x":29494.94801371316,"y":26164.093956938777},"targetPosition":{"x":29199.910638476365,"y":26314.15585813381},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"efab2947-1540-4e8f-a1d9-50289a9b3c7f","savedPayload":{"position":{"x":29199.910638476365,"y":26314.15585813381},"targetPosition":{"x":28904.868379284024,"y":26464.4248405494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value * 0.99","project":"Superalgos","id":"8fbb58cd-53d0-4e19-8f50-590090df0f58","savedPayload":{"position":{"x":29566.17544824077,"y":26498.343202607124},"targetPosition":{"x":29235.528265351964,"y":26481.34103467965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"adec7d7c-258f-4222-a6d6-734f6962d5d9","savedPayload":{"position":{"x":29235.528265351964,"y":26481.34103467965},"targetPosition":{"x":28904.868379284024,"y":26464.4248405494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"b6a70772-8397-41ac-9268-5ad1cd9b0b80","savedPayload":{"position":{"x":29460.428471403306,"y":26823.69435723527},"targetPosition":{"x":29182.62208487584,"y":26644.10918947152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e1ffbeec-66bc-4d38-984b-2aff6740101f","savedPayload":{"position":{"x":29182.62208487584,"y":26644.10918947152},"targetPosition":{"x":28904.868379284024,"y":26464.4248405494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"ff907f99-713a-41f7-8b23-721699b74966","savedPayload":{"position":{"x":29206.3840864269,"y":27052.499672437778},"targetPosition":{"x":29055.502825945732,"y":26758.53504502566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"65511340-ee54-484b-8cb6-f2d95dec9bdd","savedPayload":{"position":{"x":29055.502825945732,"y":26758.53504502566},"targetPosition":{"x":28904.868379284024,"y":26464.4248405494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"94b2fbbc-3d32-473c-8008-231664970f09","savedPayload":{"position":{"x":28904.868379284024,"y":26464.4248405494},"targetPosition":{"x":28558.70498062652,"y":26446.680969487046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"02434c11-1d6d-4f15-9577-237b5daba9ea","savedPayload":{"position":{"x":28580.16364861861,"y":26045.61597974188},"targetPosition":{"x":28249.661342343345,"y":26028.698522912906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"cac36b94-3568-446e-a2d2-9d860bd8ad0f"}}}],"announcements":[],"id":"74e77f0f-2945-48ac-ab1f-47a65feb84ec","savedPayload":{"position":{"x":28249.661342343345,"y":26028.698522912906},"targetPosition":{"x":28232.59743399996,"y":26359.016526885047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"db68ae8b-4414-43f9-b275-c97b3a6a80c6","savedPayload":{"position":{"x":28069.804461278403,"y":25455.98171215319},"targetPosition":{"x":28291.573983589376,"y":25701.60401407811},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"2ccb9d00-d677-44b6-8b92-edbcaf349d29","savedPayload":{"position":{"x":27763.91832029156,"y":25161.369084696074},"targetPosition":{"x":28042.579546379246,"y":25344.834482461578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d5649c96-59d6-4f0e-a259-063e7355eb48","savedPayload":{"position":{"x":28042.579546379246,"y":25344.834482461578},"targetPosition":{"x":28325.848797452072,"y":25518.458718559552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"2689f28d-6ca9-4e82-8327-eae9956a751a","savedPayload":{"position":{"x":28018.988694707994,"y":24932.583172967068},"targetPosition":{"x":28170.373478209913,"y":25230.541641646203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b19aacc4-d892-41dc-a487-870ca6e13ce2","savedPayload":{"position":{"x":28170.373478209913,"y":25230.541641646203},"targetPosition":{"x":28325.848797452072,"y":25518.458718559552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"9e40ebf6-fd42-43da-b390-30926b085b8f","savedPayload":{"position":{"x":28353.138577836526,"y":24861.17494835073},"targetPosition":{"x":28337.421337090742,"y":25194.709485726096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2b8766b-b4da-40c7-8d88-76f3969065aa","savedPayload":{"position":{"x":28337.421337090742,"y":25194.709485726096},"targetPosition":{"x":28325.848797452072,"y":25518.458718559552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"cae32279-d999-4c13-8eb6-cad3063c74d4","savedPayload":{"position":{"x":28678.858007776977,"y":24966.863845050902},"targetPosition":{"x":28500.34185901159,"y":25247.551186065546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"04ac8528-0696-413b-a739-7825670c0234","savedPayload":{"position":{"x":28500.34185901159,"y":25247.551186065546},"targetPosition":{"x":28325.848797452072,"y":25518.458718559552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div previous ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"6a80e7f5-300b-417d-9f9d-49803b8f51f8","savedPayload":{"position":{"x":28908.166061952317,"y":25221.394869921052},"targetPosition":{"x":28615.135400499326,"y":25374.93033378041},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e23fa3d-13f0-45fe-990f-d268e58ff1cf","savedPayload":{"position":{"x":28615.135400499326,"y":25374.93033378041},"targetPosition":{"x":28325.848797452072,"y":25518.458718559552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"38fc838f-01a5-4a33-a35f-e185f52c295e","savedPayload":{"position":{"x":28325.848797452072,"y":25518.458718559552},"targetPosition":{"x":28308.243193364393,"y":25864.113391223967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0c86ae11-a07f-4c31-a33c-05debf70c23c","savedPayload":{"position":{"x":28275.200122284987,"y":25277.4913185818},"targetPosition":{"x":28291.573983589376,"y":25701.60401407811},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"cac36b94-3568-446e-a2d2-9d860bd8ad0f"}}},{"type":"Move To Phase Event","name":"Cancel Close","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"301720b6-e436-4134-be19-0bd0892f624d","savedPayload":{"position":{"x":29295.231758398484,"y":24832.756567961776},"targetPosition":{"x":29194.088482731295,"y":25146.903117774178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2e8c0fcc-d597-40f7-b07f-16214f744b0e","savedPayload":{"position":{"x":29194.088482731295,"y":25146.903117774178},"targetPosition":{"x":29091.952947589234,"y":25461.82780008192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"b7683607-6589-414b-b6de-5aa132d6baef","savedPayload":{"position":{"x":29737.855279705356,"y":25325.099683694498},"targetPosition":{"x":29415.137494992465,"y":25393.441710116167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e247b889-3abc-469b-b26d-fc11a08bf9c8","savedPayload":{"position":{"x":29415.137494992465,"y":25393.441710116167},"targetPosition":{"x":29091.952947589234,"y":25461.82780008192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"605adda8-a968-4819-af76-2ee257f07e66","savedPayload":{"position":{"x":29091.952947589234,"y":25461.82780008192},"targetPosition":{"x":28834.23549245255,"y":25693.79855799827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"cc9492df-3289-4d6a-b152-bad2fc656730","savedPayload":{"position":{"x":28537.79182457756,"y":25480.496507034826},"targetPosition":{"x":28291.573983589376,"y":25701.60401407811},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"74e77f0f-2945-48ac-ab1f-47a65feb84ec"}}}],"announcements":[],"id":"7fc97392-92a0-48cc-a5d3-799b1c2b8c35","savedPayload":{"position":{"x":28291.573983589376,"y":25701.60401407811},"targetPosition":{"x":28249.661342343345,"y":26028.698522912906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.8 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.8} else \n{tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"895b6803-0996-41a6-9a13-93f488d7aee4","savedPayload":{"position":{"x":27915.36529991382,"y":25553.977687218132},"targetPosition":{"x":28289.410681218473,"y":25797.28204518927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Cancel Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"df898928-7078-4e61-a616-169789552b36","savedPayload":{"position":{"x":28707.540636840233,"y":24562.01448091567},"targetPosition":{"x":28690.366021412166,"y":24890.930074550743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c02edb77-0d76-4656-8d2f-068eaddabff7","savedPayload":{"position":{"x":28690.366021412166,"y":24890.930074550743},"targetPosition":{"x":28673.91155447921,"y":25220.433470128417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"3bdea448-de7a-4188-b9ec-350dbf88470a","savedPayload":{"position":{"x":29263.72744993955,"y":24920.458608905938},"targetPosition":{"x":28968.779473067876,"y":25070.33934296266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fbc8a359-f853-44a6-831d-a2078edeebe6","savedPayload":{"position":{"x":28968.779473067876,"y":25070.33934296266},"targetPosition":{"x":28673.91155447921,"y":25220.433470128417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f4664806-47a1-41be-956e-079599c0df49","savedPayload":{"position":{"x":28673.91155447921,"y":25220.433470128417},"targetPosition":{"x":28484.50655210695,"y":25511.164597350114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"b75aa4bc-9257-4444-98ca-afe6377b914a","savedPayload":{"position":{"x":28528.263005905388,"y":25428.859670972648},"targetPosition":{"x":28289.410681218473,"y":25797.28204518927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"74e77f0f-2945-48ac-ab1f-47a65feb84ec"}}}],"announcements":[],"id":"cac36b94-3568-446e-a2d2-9d860bd8ad0f","savedPayload":{"position":{"x":28317.074533717685,"y":25394.720907202704},"targetPosition":{"x":28291.573983589376,"y":25701.60401407811},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7ce8f923-1393-45ac-97d6-742e2cff6627","savedPayload":{"position":{"x":36092.81287582528,"y":30368.600330817048},"targetPosition":{"x":36084.96248238884,"y":30518.394761030235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"0d03ff5b-3162-49a3-ae12-a0e5929de4dd","savedPayload":{"position":{"x":36084.96248238884,"y":30518.394761030235},"targetPosition":{"x":36221.1596323107,"y":30785.696718286745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"e4075c8b-e9ed-4efb-95ff-c57a05dde303","savedPayload":{"position":{"x":27906.098284516334,"y":26249.866400783445},"targetPosition":{"x":28162.580646898557,"y":26458.336872407657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7a43f11-926e-4a95-8b50-0e6bf1c33fb3","savedPayload":{"position":{"x":28162.580646898557,"y":26458.336872407657},"targetPosition":{"x":28480.5625419607,"y":26716.395559791687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value","project":"Superalgos","id":"d0134650-3b3d-4e82-9334-efd985669763","savedPayload":{"position":{"x":28596.175478550562,"y":25986.609911740343},"targetPosition":{"x":28544.54566315259,"y":26313.39653327981},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5bfa6266-b3b9-4b3d-9113-5ce83bd5181b","savedPayload":{"position":{"x":28544.54566315259,"y":26313.39653327981},"targetPosition":{"x":28480.5625419607,"y":26716.395559791687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f94814fd-11e1-49fb-a3d9-f8c9dc7e476b","savedPayload":{"position":{"x":36214.33477939097,"y":30349.353152133623},"targetPosition":{"x":36268.08997182277,"y":30489.390216108204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Quick Exit","config":"{\n\"percentageOfAlgorithmSize\": 100,\n\"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"c81b34d0-6411-4e30-9a5f-b29938767724","savedPayload":{"position":{"x":29011.84924955325,"y":28098.26390528551},"targetPosition":{"x":28971.27346400518,"y":27906.084373412057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"30a97f96-5681-426e-84e3-c56d4677b797","savedPayload":{"position":{"x":28971.27346400518,"y":27906.084373412057},"targetPosition":{"x":28930.59213286936,"y":27713.230894377055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d73f3a51-5c99-453e-81a7-77123488aae8","savedPayload":{"position":{"x":28930.59213286936,"y":27713.230894377055},"targetPosition":{"x":28881.06371187106,"y":27478.696353856452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"7d7ac782-a44c-4983-a83d-85c3bc7f446e","savedPayload":{"position":{"x":29479.418890495537,"y":25937.57224736933},"targetPosition":{"x":29271.20349227128,"y":26194.66821724797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a2a2f97-c305-41ad-b66a-5757cb93b188","savedPayload":{"position":{"x":29271.20349227128,"y":26194.66821724797},"targetPosition":{"x":29063.63227598084,"y":26451.045933509115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"6f41faa3-1005-4c80-b40f-adbb7b65b836","savedPayload":{"position":{"x":29063.63227598084,"y":26451.045933509115},"targetPosition":{"x":28806.596480966924,"y":26768.546161057966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"940b3fe2-8055-4eb5-8a5a-192a319891af","savedPayload":{"position":{"x":36362.48803048024,"y":30372.81832188966},"targetPosition":{"x":36268.08997182277,"y":30489.390216108204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"b72c5b1c-499f-4f2e-9044-aa6caaaef7ee","savedPayload":{"position":{"x":36268.08997182277,"y":30489.390216108204},"targetPosition":{"x":36221.1596323107,"y":30785.696718286745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fc6676b7-944d-459c-bc06-592b3ae2fd1b","savedPayload":{"position":{"x":34003.1596323107,"y":30787.696718286745},"targetPosition":{"x":34215.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading Strategy","name":"S2 - 6H Down","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"301d8e64-bde8-4eee-a0cf-b9c57bcb3050","savedPayload":{"position":{"x":35457.90634568354,"y":31198.77580821771},"targetPosition":{"x":35527.939954840316,"y":30907.064832098407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a869bb21-75b5-4621-9760-840cf4896844","savedPayload":{"position":{"x":35527.939954840316,"y":30907.064832098407},"targetPosition":{"x":35597.97356399709,"y":30615.353855979105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"b3c4a94f-4986-4e55-ba28-f6456a67bd64","savedPayload":{"position":{"x":35245.302412621604,"y":31100.76405260407},"targetPosition":{"x":35421.63798830935,"y":30858.058954291588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7b405bfe-294d-48a8-b1ff-d0c4f4b328d1","savedPayload":{"position":{"x":35421.63798830935,"y":30858.058954291588},"targetPosition":{"x":35597.97356399709,"y":30615.353855979105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"f4b66e81-3e26-4a04-9687-140ab33bd887","savedPayload":{"position":{"x":35086.38946538464,"y":30928.852994808673},"targetPosition":{"x":35342.18151469086,"y":30772.10342539389},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4d1c7a66-dd4a-45f9-956d-6cb68b64920b","savedPayload":{"position":{"x":35342.18151469086,"y":30772.10342539389},"targetPosition":{"x":35597.97356399709,"y":30615.353855979105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"975153b0-b609-4975-b5d6-26f7bfe675e8","savedPayload":{"position":{"x":35005.36055964,"y":30709.214535003244},"targetPosition":{"x":35301.667061818545,"y":30662.284195491175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ecc5139a-825f-4c91-8e92-f3719460c66b","savedPayload":{"position":{"x":35301.667061818545,"y":30662.284195491175},"targetPosition":{"x":35597.97356399709,"y":30615.353855979105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Steep","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope === \"Steep\"","project":"Superalgos","id":"a838971e-d8bd-4ded-a418-453b8981ff9e","savedPayload":{"position":{"x":35014.55161175848,"y":30475.28663766556},"targetPosition":{"x":35306.26258787778,"y":30545.32024682233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3694b7de-4040-4f51-a025-3d482ad6c127","savedPayload":{"position":{"x":35306.26258787778,"y":30545.32024682233},"targetPosition":{"x":35597.97356399709,"y":30615.353855979105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H NOT Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerSubChannel.slope != \"Side\"","project":"Superalgos","id":"fc7ab7ee-a96c-4d9a-ae8e-618cd3ee0769","savedPayload":{"position":{"x":35112.56336737212,"y":30262.68270460362},"targetPosition":{"x":35355.2684656846,"y":30439.018280291362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7f681b33-bfa1-46b5-9483-545d3f62791b","savedPayload":{"position":{"x":35355.2684656846,"y":30439.018280291362},"targetPosition":{"x":35597.97356399709,"y":30615.353855979105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"d6572b86-2aaa-4223-9e6a-0206d8890778","savedPayload":{"position":{"x":35284.474425167515,"y":30103.769757366652},"targetPosition":{"x":35441.2239945823,"y":30359.56180667288},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08da37fa-d3c5-49d9-8679-5b80bdff68dd","savedPayload":{"position":{"x":35441.2239945823,"y":30359.56180667288},"targetPosition":{"x":35597.97356399709,"y":30615.353855979105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"680af7d1-9436-426c-b371-0c51ca813093","savedPayload":{"position":{"x":35597.97356399709,"y":30615.353855979105},"targetPosition":{"x":35894.280066175634,"y":30568.423516467035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"ab2764bc-e2c0-40d8-930f-bd3047f39596","savedPayload":{"position":{"x":35894.280066175634,"y":30568.423516467035},"targetPosition":{"x":36190.58656835418,"y":30521.493176954966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","project":"Superalgos","id":"29130ffe-4d84-411a-90d4-3ee5a6008c21","savedPayload":{"position":{"x":29929.75814734162,"y":24095.592195707926},"targetPosition":{"x":29824.584661753048,"y":24793.90204810937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e6a32c76-eda6-4982-8a3e-220c29218ba2","savedPayload":{"position":{"x":29824.584661753048,"y":24793.90204810937},"targetPosition":{"x":29719.49025858462,"y":25492.258102611122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b31b4647-b5e2-42e5-a1e9-fa0ffafeffc8","savedPayload":{"position":{"x":29719.49025858462,"y":25492.258102611122},"targetPosition":{"x":29614.353374494633,"y":26192.17030634475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"707c998d-da1c-45c1-84de-75ac9a0898b9","savedPayload":{"position":{"x":35947.88147004169,"y":30345.157601267223},"targetPosition":{"x":36190.58656835418,"y":30521.493176954966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"5840e471-a97e-4662-8938-5f1eb21091f0","savedPayload":{"position":{"x":27717.301622767678,"y":26334.481588004048},"targetPosition":{"x":28025.801735582445,"y":26406.228544483936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"447e0866-7372-4a42-b5b1-cd05e0efe728","savedPayload":{"position":{"x":28025.801735582445,"y":26406.228544483936},"targetPosition":{"x":28334.846689820693,"y":26479.878264274026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"0a447725-e6ac-45ea-bb2c-5f3b968dfc06","savedPayload":{"position":{"x":27824.39802773934,"y":26107.708373562695},"targetPosition":{"x":28079.7044253936,"y":26294.277653937497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9540f515-0603-4cda-bbbd-84d7d104a8e1","savedPayload":{"position":{"x":28079.7044253936,"y":26294.277653937497},"targetPosition":{"x":28334.846689820693,"y":26479.878264274026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"ad089114-2332-4b0b-b079-4070e1baa4c5","savedPayload":{"position":{"x":28001.002320354102,"y":25938.699666684413},"targetPosition":{"x":28166.99017082398,"y":26208.564967348262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7f2c2ddf-c19f-4f32-bda3-b4a3b7e7fb90","savedPayload":{"position":{"x":28166.99017082398,"y":26208.564967348262},"targetPosition":{"x":28334.846689820693,"y":26479.878264274026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"48b35276-b129-486a-a517-ca3656ff9a53","savedPayload":{"position":{"x":28234.190614796466,"y":25854.383117039397},"targetPosition":{"x":28283.136917897114,"y":26166.882632248627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"179fce4e-890b-4a07-9289-57620f55da9e","savedPayload":{"position":{"x":28283.136917897114,"y":26166.882632248627},"targetPosition":{"x":28334.846689820693,"y":26479.878264274026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Steep","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope === \"Steep\"","project":"Superalgos","id":"45c706e6-6a7c-4b5a-b713-2b87ac0b6550","savedPayload":{"position":{"x":28486.269610739055,"y":25867.380685213313},"targetPosition":{"x":28410.46411174992,"y":26172.536383864397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad485330-bf10-49e7-beaa-d57e0f8564b3","savedPayload":{"position":{"x":28410.46411174992,"y":26172.536383864397},"targetPosition":{"x":28334.846689820693,"y":26479.878264274026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H NOT Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerSubChannel.slope != \"Side\"","project":"Superalgos","id":"a360bbf1-b177-4298-80a8-06b6062dc779","savedPayload":{"position":{"x":28705.03828798836,"y":25966.144280577828},"targetPosition":{"x":28521.161531812584,"y":26222.50508968378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8134986-b19a-4715-bb59-dd6bc7c774a8","savedPayload":{"position":{"x":28521.161531812584,"y":26222.50508968378},"targetPosition":{"x":28334.846689820693,"y":26479.878264274026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"685b785a-4196-4b0a-84c1-0c7ed54e6162","savedPayload":{"position":{"x":28874.103214484825,"y":26146.233900393076},"targetPosition":{"x":28606.38987398745,"y":26313.54340397053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"747a6cc6-2122-4f62-ab40-bdcfbb8ae702","savedPayload":{"position":{"x":28606.38987398745,"y":26313.54340397053},"targetPosition":{"x":28334.846689820693,"y":26479.878264274026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e9bc25c6-7eca-42cd-a2c2-dbc196d8929a","savedPayload":{"position":{"x":28334.846689820693,"y":26479.878264274026},"targetPosition":{"x":28391.894666650962,"y":26833.86442334945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"88e734b7-e242-4b34-aeca-bb71905973ab","savedPayload":{"position":{"x":36143.65622884211,"y":30225.186674776425},"targetPosition":{"x":36190.58656835418,"y":30521.493176954966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"73a50844-7c64-4816-a04d-db5da604663b","savedPayload":{"position":{"x":36190.58656835418,"y":30521.493176954966},"targetPosition":{"x":36433.291666666664,"y":30697.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"My Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"7d19cadf-d686-403d-b5c5-c4c8600035e4","savedPayload":{"position":{"x":27823.346249651582,"y":26546.680041402084},"targetPosition":{"x":28133.462519398272,"y":26612.770755124962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5dc9b14b-e534-4328-9789-22d49b2c6626","savedPayload":{"position":{"x":28133.462519398272,"y":26612.770755124962},"targetPosition":{"x":28531.618501984663,"y":26697.977457836598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.episodeBaseAsset.balance.value","project":"Superalgos","id":"9bc8b451-2bcc-4092-b469-d99fe46040ae","savedPayload":{"position":{"x":28308.375025281763,"y":26011.290909935495},"targetPosition":{"x":28406.42268543775,"y":26312.571797558085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e557768-9288-4e09-bf67-db8d850df130","savedPayload":{"position":{"x":28406.42268543775,"y":26312.571797558085},"targetPosition":{"x":28531.618501984663,"y":26697.977457836598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7dadecbd-1931-448f-a23d-9a96140d75ca","savedPayload":{"position":{"x":36211.11484453257,"y":29848.142206800334},"targetPosition":{"x":36322.58656835418,"y":29948.511797754163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Quick Entry","config":"{\n\"percentageOfAlgorithmSize\": 100\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"14697473-8454-4fb1-bf28-fa12d6640666","savedPayload":{"position":{"x":29227.77663081793,"y":24735.788690159847},"targetPosition":{"x":29161.91498699858,"y":25045.06043531283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"98626788-dd20-4fb6-8b43-9b97014a212e","savedPayload":{"position":{"x":29161.91498699858,"y":25045.06043531283},"targetPosition":{"x":29096.007378262333,"y":25354.338048645273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b4e76cbe-b430-4f1b-86cd-1e8259a48477","savedPayload":{"position":{"x":29096.007378262333,"y":25354.338048645273},"targetPosition":{"x":29030.09520930903,"y":25663.48976025039},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"5fa41d57-267e-451c-b495-4ac721ddfa18","savedPayload":{"position":{"x":29030.09520930903,"y":25663.48976025039},"targetPosition":{"x":28964.783620262904,"y":25972.840524149615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4c9ad616-de53-4332-8569-ad2d7eb4f941","savedPayload":{"position":{"x":28964.783620262904,"y":25972.840524149615},"targetPosition":{"x":28899.039867310654,"y":26282.577123847972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"4d3552fa-b634-4bc8-a975-e136b47e44a2","savedPayload":{"position":{"x":28899.039867310654,"y":26282.577123847972},"targetPosition":{"x":28831.913255435786,"y":26600.548271741114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"ffe64902-21d9-4c5e-b6aa-97ce752cce91","savedPayload":{"position":{"x":36353.77332197684,"y":29801.78965764409},"targetPosition":{"x":36322.58656835418,"y":29948.511797754163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"63eb6592-10e0-4c3c-ac03-8789e6b52068","savedPayload":{"position":{"x":36340.58656835418,"y":30412.511797754163},"targetPosition":{"x":36433.291666666664,"y":30697.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Custom","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 1.03","project":"Superalgos","id":"c42eec50-421c-4220-942c-4bdd4128e9dd","savedPayload":{"position":{"x":36200.51056858084,"y":29602.679789670663},"targetPosition":{"x":36401.249750488496,"y":29825.62323731388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < tradingEngine.current.position.entryTargetRate.value * 0.97","project":"Superalgos","id":"a2f4b43b-c498-4687-ab3d-c5c7d7ad4d02","savedPayload":{"position":{"x":28210.45451301232,"y":25747.045656145805},"targetPosition":{"x":28259.58763868236,"y":25898.037881218544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"35795d1b-8c7a-4957-9e22-1400e32d1e14","savedPayload":{"position":{"x":28259.58763868236,"y":25898.037881218544},"targetPosition":{"x":28315.177489351867,"y":26067.455300671194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8ea589b2-e7e3-4907-90a8-bd4667a70196","savedPayload":{"position":{"x":28315.177489351867,"y":26067.455300671194},"targetPosition":{"x":28380.40171899753,"y":26266.98547659318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"a68ec84d-450e-42ed-b4c7-28db86f31e57","savedPayload":{"position":{"x":36493.95484880098,"y":29540.306282425336},"targetPosition":{"x":36401.249750488496,"y":29825.62323731388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"bd85fac3-f2ab-47b8-8077-344343ebfc93","savedPayload":{"position":{"x":36401.249750488496,"y":29825.62323731388},"targetPosition":{"x":36463.62325773382,"y":30119.067517534022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 1.02 < tradingEngine.current.position.stopLoss.value) {chart.at01hs.bollingerBand.movingAverage * 1.02} else {tradingEngine.current.position.stopLoss.value}","project":"Superalgos","id":"e9425ea8-46fc-4bbd-96af-107b45fcde20","savedPayload":{"position":{"x":36276.50273599784,"y":29238.7346768736},"targetPosition":{"x":36338.87624324317,"y":29532.17895709374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"787093b5-b60f-4002-ae4e-7dcf26bc651c","savedPayload":{"position":{"x":36338.87624324317,"y":29532.17895709374},"targetPosition":{"x":36401.249750488496,"y":29825.62323731388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1a3ca90-96ad-4bc3-84f0-0ead961f4ab3","savedPayload":{"position":{"x":36463.62325773382,"y":30119.067517534022},"targetPosition":{"x":36525.99676497915,"y":30412.511797754163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 0.95","project":"Superalgos","id":"98c748f4-5126-4a47-a88b-8af381ce5b37","savedPayload":{"position":{"x":36909.51015302027,"y":29717.589153718705},"targetPosition":{"x":36971.883660265594,"y":30011.033433938846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"1H EMA7 < entryTargetRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value","project":"Superalgos","id":"37f8d23d-8e82-4d78-8799-338d352c0bd7","savedPayload":{"position":{"x":29057.393308629576,"y":25688.71449056764},"targetPosition":{"x":29023.99513574823,"y":25844.81490998611},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7641aab3-419e-431c-b7de-f961309f3d88","savedPayload":{"position":{"x":29023.99513574823,"y":25844.81490998611},"targetPosition":{"x":28978.67173136167,"y":26024.985404561994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.current.position.positionCounters.periods.value > 2","project":"Superalgos","id":"640b3bdc-3649-4846-b67a-1ed5a8ba52d5","savedPayload":{"position":{"x":29303.399548393936,"y":25909.8910131691},"targetPosition":{"x":29152.477566638718,"y":25959.585648886925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6855f9f0-a1a5-4613-b77a-b9d7226ec1f7","savedPayload":{"position":{"x":29152.477566638718,"y":25959.585648886925},"targetPosition":{"x":28978.67173136167,"y":26024.985404561994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8dc235c5-6c20-4d93-8703-275564f7e648","savedPayload":{"position":{"x":28978.67173136167,"y":26024.985404561994},"targetPosition":{"x":28839.257672444433,"y":26181.18864147793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"19f17341-ac03-4e07-9f8d-d3e4ef023fc2","savedPayload":{"position":{"x":37257.20061515414,"y":30103.73853225133},"targetPosition":{"x":36971.883660265594,"y":30011.033433938846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"7f92f80d-0924-4d54-ae68-6505d8f0421a","savedPayload":{"position":{"x":36971.883660265594,"y":30011.033433938846},"targetPosition":{"x":36748.94021262237,"y":30211.772615846505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Manage: 3% Below ema7","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.97 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.97} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"af90c747-4790-43c5-afe1-37a605571cae","savedPayload":{"position":{"x":36994.08792600116,"y":29587.35080438797},"targetPosition":{"x":37194.827107908815,"y":29810.294252031188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"64b16855-36d6-49b4-afde-9bc43b6bdd53","savedPayload":{"position":{"x":15411.427405661598,"y":25474.517861382687},"targetPosition":{"x":15265.187266247089,"y":25162.767735774432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a06e989b-e442-43e3-b915-7aa76348e064","savedPayload":{"position":{"x":15265.187266247089,"y":25162.767735774432},"targetPosition":{"x":15123.043022922844,"y":24843.906161749015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ac15c2d4-9d65-464a-b3e6-2d28edca7308","savedPayload":{"position":{"x":15123.043022922844,"y":24843.906161749015},"targetPosition":{"x":14980.241110842275,"y":24520.73842009397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"c81de819-5717-459a-9b89-f046c6768803","savedPayload":{"position":{"x":37417.77055555204,"y":29609.55507012353},"targetPosition":{"x":37194.827107908815,"y":29810.294252031188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"bff4cb02-f3ad-4c61-9f94-cc3e2b43121c","savedPayload":{"position":{"x":30685.397989775593,"y":26838.6180368247},"targetPosition":{"x":30375.32070549611,"y":26904.220305874333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a9f77d3c-1868-4535-8117-e56d388ba5ad","savedPayload":{"position":{"x":30375.32070549611,"y":26904.220305874333},"targetPosition":{"x":30064.735801886374,"y":26969.86890377776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"42345fb4-0626-4b42-90c1-bb9f214e17d4","savedPayload":{"position":{"x":30668.325798478487,"y":27165.743100789077},"targetPosition":{"x":30366.812428798898,"y":27067.89401138069},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a4bfbfb1-543e-4db0-9f39-dd6631e660eb","savedPayload":{"position":{"x":30366.812428798898,"y":27067.89401138069},"targetPosition":{"x":30064.735801886374,"y":26969.86890377776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value * 0.99","project":"Superalgos","id":"67342cd6-6678-401c-94e1-e0b0eda2263e","savedPayload":{"position":{"x":30489.860141530648,"y":27440.873452312488},"targetPosition":{"x":30277.493555746565,"y":27205.49311599559},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6fcc3279-0e65-424f-81b5-0ed032a461ca","savedPayload":{"position":{"x":30277.493555746565,"y":27205.49311599559},"targetPosition":{"x":30064.735801886374,"y":26969.86890377776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"47ca70bc-782c-445f-834e-921f0840eb7e","savedPayload":{"position":{"x":30197.90828637094,"y":27589.861183220557},"targetPosition":{"x":30131.454060195894,"y":27280.062111101353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"13eaacfa-d129-401a-8648-93d7954f94ac","savedPayload":{"position":{"x":30131.454060195894,"y":27280.062111101353},"targetPosition":{"x":30064.735801886374,"y":26969.86890377776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"6674b07b-d9ed-4a96-88b2-6743cd6e0852","savedPayload":{"position":{"x":29871.361983104893,"y":27572.722325012102},"targetPosition":{"x":29968.080252229825,"y":27271.507707137673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9163a9de-74b0-42f7-8ee0-85b93dee00fc","savedPayload":{"position":{"x":29968.080252229825,"y":27271.507707137673},"targetPosition":{"x":30064.735801886374,"y":26969.86890377776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"46f92b3d-10dd-484d-895b-c0d547424c3a","savedPayload":{"position":{"x":30064.735801886374,"y":26969.86890377776},"targetPosition":{"x":29839.833470154765,"y":26721.090544731458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"571d2fea-5e0b-49f3-877a-5b9b41516bfe","savedPayload":{"position":{"x":37395.566289816474,"y":30033.237699674406},"targetPosition":{"x":37194.827107908815,"y":29810.294252031188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"5639cfff-e0f1-417b-8034-adb661ded0cd"}}}],"announcements":[],"id":"75e54a0b-1af9-49d2-ab9b-461d72a731fe","savedPayload":{"position":{"x":37194.827107908815,"y":29810.294252031188},"targetPosition":{"x":36971.883660265594,"y":30011.033433938846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"3f9df9ef-2267-4a33-b2b8-fddce1f7f4d7","savedPayload":{"position":{"x":37433.47134242492,"y":29309.96620969716},"targetPosition":{"x":37417.77055555204,"y":29609.55507012353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"bb9431b0-04e2-49ad-8a1e-8336a5a90ba6","savedPayload":{"position":{"x":32023.403963187324,"y":26349.177120855493},"targetPosition":{"x":31907.894390142355,"y":26683.84567234382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fff74a7d-6205-4d97-b32a-c31c2879e228","savedPayload":{"position":{"x":31907.894390142355,"y":26683.84567234382},"targetPosition":{"x":31792.740978340917,"y":27018.886636027608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"c2308750-4fa3-45bc-8ce3-b834db3e5a75","savedPayload":{"position":{"x":32262.865163850664,"y":26488.677262211473},"targetPosition":{"x":32027.998581354113,"y":26753.58535817053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"37f1894e-e911-46df-b97d-92ad8716bbb7","savedPayload":{"position":{"x":32027.998581354113,"y":26753.58535817053},"targetPosition":{"x":31792.740978340917,"y":27018.886636027608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"c815953e-7501-4c0f-bf44-b2054f27204b","savedPayload":{"position":{"x":32430.066087027975,"y":26709.069781650396},"targetPosition":{"x":32111.666993260842,"y":26863.85372760884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0abbc8b9-69b3-4051-a077-8cae2eb456e5","savedPayload":{"position":{"x":32111.666993260842,"y":26863.85372760884},"targetPosition":{"x":31792.740978340917,"y":27018.886636027608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"b1db73ae-ddb7-452c-bc67-aebce55c0071","savedPayload":{"position":{"x":32500.184859498237,"y":26976.573652298997},"targetPosition":{"x":32146.740346535415,"y":26997.668869820714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1c0d7a06-b7f3-443d-9088-177134b13b83","savedPayload":{"position":{"x":32146.740346535415,"y":26997.668869820714},"targetPosition":{"x":31792.740978340917,"y":27018.886636027608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"12d82500-383b-445d-995d-7b589c84635a","savedPayload":{"position":{"x":32462.68040868568,"y":27249.86600403618},"targetPosition":{"x":32127.96691871545,"y":27134.37815581975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ea51ecbf-d848-46a7-a88d-82ec88f8480a","savedPayload":{"position":{"x":32127.96691871545,"y":27134.37815581975},"targetPosition":{"x":31792.740978340917,"y":27018.886636027608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14 > chart.at01hs.base7EMA.previous.previous.ema21 - chart.at01hs.base7EMA.previous.previous.ema14","project":"Superalgos","id":"c48ea949-7b3e-4c17-bff5-19d6e459d626","savedPayload":{"position":{"x":32323.19348627884,"y":27488.724105193913},"targetPosition":{"x":32058.222945332695,"y":27253.72625045506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7d987b62-66de-4d68-be64-91c124266174","savedPayload":{"position":{"x":32058.222945332695,"y":27253.72625045506},"targetPosition":{"x":31792.740978340917,"y":27018.886636027608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2 previous ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7 > chart.at01hs.base7EMA.previous.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.previous.ema7","project":"Superalgos","id":"6e81b8d8-148d-4a5a-8307-40c1dbccabb2","savedPayload":{"position":{"x":32103.18929085291,"y":27655.73318119689},"targetPosition":{"x":31948.04782618265,"y":27337.291294678864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"229f0b94-9e9a-45b5-87fe-8bf1427c1cb6","savedPayload":{"position":{"x":31948.04782618265,"y":27337.291294678864},"targetPosition":{"x":31792.740978340917,"y":27018.886636027608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0e734dca-7ea8-4eaf-9379-48ccf8dff51e","savedPayload":{"position":{"x":31792.740978340917,"y":27018.886636027608},"targetPosition":{"x":31427.450481887347,"y":27040.96466112342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"43f6f964-e44c-4b9e-9c6e-f5f10afb891d","savedPayload":{"position":{"x":37640.71400319526,"y":29408.81588821587},"targetPosition":{"x":37417.77055555204,"y":29609.55507012353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"5639cfff-e0f1-417b-8034-adb661ded0cd"}}},{"type":"Move To Phase Event","name":"Cancel Close","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"427ca47c-7233-4e51-8070-0dd82e493d47","savedPayload":{"position":{"x":32301.86335063581,"y":27597.77562278088},"targetPosition":{"x":31948.431795502394,"y":27618.76025620688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8b99cc7a-c8fd-4e57-9f24-c2576f6bab18","savedPayload":{"position":{"x":31948.431795502394,"y":27618.76025620688},"targetPosition":{"x":31594.691326773514,"y":27639.60908904879},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"2217cfc4-1cdd-43b0-86ef-9957ff84c8f1","savedPayload":{"position":{"x":32124.70934326367,"y":28109.414503776585},"targetPosition":{"x":31859.85776712803,"y":27874.63574979469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6918bca4-9fcd-44a4-9ad5-d4718158d064","savedPayload":{"position":{"x":31859.85776712803,"y":27874.63574979469},"targetPosition":{"x":31594.691326773514,"y":27639.60908904879},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2 prev.ema7 div 2 prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7 > chart.at01hs.base7EMA.previous.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.previous.ema7","project":"Superalgos","id":"9afbcaee-9dcd-4b18-89a9-9124eea8c900","savedPayload":{"position":{"x":31637.556778006554,"y":28346.46566595007},"targetPosition":{"x":31616.172511061377,"y":27993.143095037136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"91b01ae0-97af-48c7-adf3-1bb767e27f36","savedPayload":{"position":{"x":31616.172511061377,"y":27993.143095037136},"targetPosition":{"x":31594.691326773514,"y":27639.60908904879},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8f15adc5-8719-4f96-8560-127f7eaa0a97","savedPayload":{"position":{"x":31594.691326773514,"y":27639.60908904879},"targetPosition":{"x":31320.933543468745,"y":27396.918667465558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"b15ba6fb-7ae0-4c8f-b8ac-b76c5945dcb5","savedPayload":{"position":{"x":37717.35941597841,"y":29625.255856996413},"targetPosition":{"x":37417.77055555204,"y":29609.55507012353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"75e54a0b-1af9-49d2-ab9b-461d72a731fe"}}}],"announcements":[],"id":"eb74a012-ed21-4ce6-8f2e-8f2ebaea9188","savedPayload":{"position":{"x":37417.77055555204,"y":29609.55507012353},"targetPosition":{"x":37194.827107908815,"y":29810.294252031188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.8 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.8} else \n{tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"25d46d39-ae12-4dd8-a136-48f75b7236c1","savedPayload":{"position":{"x":37578.34049594993,"y":29115.37160799573},"targetPosition":{"x":37640.71400319526,"y":29408.81588821587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Cancel Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"f4da55cf-3df3-40ed-8d05-a914a6697fae","savedPayload":{"position":{"x":18968.903490019817,"y":27703.23609367037},"targetPosition":{"x":18802.506400439335,"y":27329.28983830409},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2c64d2c0-288c-45ae-a359-5d3f44bb4c5e","savedPayload":{"position":{"x":18802.506400439335,"y":27329.28983830409},"targetPosition":{"x":18636.004457228846,"y":26955.1341014829},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"b4571357-f64e-432a-8d80-37f1dfd89e82","savedPayload":{"position":{"x":18155.1049706278,"y":27617.70095061767},"targetPosition":{"x":18395.52539915988,"y":27286.496280533436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96c5c204-c93f-494c-8691-30566d39db06","savedPayload":{"position":{"x":18395.52539915988,"y":27286.496280533436},"targetPosition":{"x":18636.004457228846,"y":26955.1341014829},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2849e6ed-91c0-4e63-a4a3-2ba4d4517008","savedPayload":{"position":{"x":18636.004457228846,"y":26955.1341014829},"targetPosition":{"x":18678.549938123346,"y":26547.60214235258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9c2aa1f4-5ba6-4dc8-9f99-db133558f0e8","savedPayload":{"position":{"x":37934.1582834154,"y":29346.442380970544},"targetPosition":{"x":37640.71400319526,"y":29408.81588821587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"75e54a0b-1af9-49d2-ab9b-461d72a731fe"}}}],"announcements":[],"id":"5639cfff-e0f1-417b-8034-adb661ded0cd","savedPayload":{"position":{"x":37640.71400319526,"y":29408.81588821587},"targetPosition":{"x":37417.77055555204,"y":29609.55507012353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6cb50b3d-6bf3-422f-8d2a-d0103ea02607","savedPayload":{"position":{"x":36748.94021262237,"y":30211.772615846505},"targetPosition":{"x":36525.99676497915,"y":30412.511797754163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"42765ad5-284e-4966-a367-76593b53bcf7","savedPayload":{"position":{"x":36525.99676497915,"y":30412.511797754163},"targetPosition":{"x":36433.291666666664,"y":30697.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"110d0178-0090-4921-92dc-837bb31c3ba1","savedPayload":{"position":{"x":29529.25758251593,"y":26131.051468093545},"targetPosition":{"x":29561.956964512523,"y":26446.343361975574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3a9db813-8c6c-49a1-ae12-8125f8efc292","savedPayload":{"position":{"x":29561.956964512523,"y":26446.343361975574},"targetPosition":{"x":29603.7428723056,"y":26851.473333371112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value","project":"Superalgos","id":"379418a8-84aa-481c-8f23-48801ca405d8","savedPayload":{"position":{"x":30188.0147599188,"y":26427.276910181565},"targetPosition":{"x":29931.825113704683,"y":26613.296474974413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ef89e246-f225-4883-ae89-3f61dc1320f1","savedPayload":{"position":{"x":29931.825113704683,"y":26613.296474974413},"targetPosition":{"x":29603.7428723056,"y":26851.473333371112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5f697ad9-68be-4204-b5ad-67cded03abbb","savedPayload":{"position":{"x":36737.00726144052,"y":30384.461358308574},"targetPosition":{"x":36675.99676497915,"y":30521.493176954966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Quick Exit","config":"{\n\"percentageOfAlgorithmSize\": 100,\n\"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"4bcae971-5718-4028-a10e-3f170704030b","savedPayload":{"position":{"x":31765.85605573067,"y":26900.757149548626},"targetPosition":{"x":31451.503660135502,"y":26933.51633883763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2221a782-74ed-4536-a40c-e54fd95fc345","savedPayload":{"position":{"x":31451.503660135502,"y":26933.51633883763},"targetPosition":{"x":31136.799078531352,"y":26966.605382231006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e30e9de3-190a-4536-9dcf-0a12e09e0f0e","savedPayload":{"position":{"x":31136.799078531352,"y":26966.605382231006},"targetPosition":{"x":30821.97217929334,"y":26999.42208029286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"b57f49ac-744d-4af2-9a8f-d92483ed0d0d","savedPayload":{"position":{"x":30821.97217929334,"y":26999.42208029286},"targetPosition":{"x":30507.433204761444,"y":27032.345782833574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5aff6295-2b72-4e26-9017-741fb9303efb","savedPayload":{"position":{"x":30507.433204761444,"y":27032.345782833574},"targetPosition":{"x":30193.027967400943,"y":27065.269648466136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"202469d9-139c-431c-98f0-3d5d48ce972b","savedPayload":{"position":{"x":30193.027967400943,"y":27065.269648466136},"targetPosition":{"x":29789.556690432975,"y":27107.564393121887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2d3db895-56de-4b0d-b252-c70d818787cc","savedPayload":{"position":{"x":36825.17504928439,"y":30505.813907464817},"targetPosition":{"x":36675.99676497915,"y":30521.493176954966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"71e66e43-11c0-4f53-afc5-3787eafc4744","savedPayload":{"position":{"x":36675.99676497915,"y":30521.493176954966},"targetPosition":{"x":36433.291666666664,"y":30697.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2faf1715-7b6a-4188-ac5e-c67502e18fcc","savedPayload":{"position":{"x":34215.291666666664,"y":30699.82875264271},"targetPosition":{"x":34215.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading Strategy","name":"S5 - 4H Up","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"1bb17736-cc12-4b60-9807-632aeb2d3636","savedPayload":{"position":{"x":33397.66062135256,"y":30474.234806815166},"targetPosition":{"x":33646.371893119074,"y":30306.476935773942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2e2487a-d30a-4d70-9d70-f188409059a9","savedPayload":{"position":{"x":33646.371893119074,"y":30306.476935773942},"targetPosition":{"x":33895.08316488559,"y":30138.71906473272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"21123f61-dc48-4915-b609-c3eab53b8fec","savedPayload":{"position":{"x":33312.90572911999,"y":30283.872202092516},"targetPosition":{"x":33603.99444700279,"y":30211.295633412617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"daefe7ea-f409-406c-891a-28c3001ab5c0","savedPayload":{"position":{"x":33603.99444700279,"y":30211.295633412617},"targetPosition":{"x":33895.08316488559,"y":30138.71906473272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"6897670f-f952-4d83-8a95-bc82ad1d07fa","savedPayload":{"position":{"x":33298.37002766462,"y":30076.001986772124},"targetPosition":{"x":33596.726596275104,"y":30107.36052575242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b6890e81-16b4-4cd2-b1ed-0c02d51dae4b","savedPayload":{"position":{"x":33596.726596275104,"y":30107.36052575242},"targetPosition":{"x":33895.08316488559,"y":30138.71906473272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"c02c6beb-0de4-4a7c-a768-7332501d45b1","savedPayload":{"position":{"x":33355.80673710608,"y":29875.69637665927},"targetPosition":{"x":33625.444950995836,"y":30007.207720695995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3e59df4d-42a2-41e9-93ff-6d85b65d9bc2","savedPayload":{"position":{"x":33625.444950995836,"y":30007.207720695995},"targetPosition":{"x":33895.08316488559,"y":30138.71906473272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"02H Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\"","project":"Superalgos","id":"3257e894-69d2-4f5f-93eb-13ba4d62c5e0","savedPayload":{"position":{"x":33478.28814261019,"y":29707.115184529528},"targetPosition":{"x":33686.68565374789,"y":29922.917124631123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bd3ee521-2846-411f-a740-de3480e90421","savedPayload":{"position":{"x":33686.68565374789,"y":29922.917124631123},"targetPosition":{"x":33895.08316488559,"y":30138.71906473272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerSubChannel.slope === \"Gentle\"","project":"Superalgos","id":"3cef9be4-e642-4af5-b845-d63592ea22e9","savedPayload":{"position":{"x":33651.041179040105,"y":29590.59179014716},"targetPosition":{"x":33773.06217196285,"y":29864.65542743994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a23ee119-f4f5-4fe6-9013-27055d634051","savedPayload":{"position":{"x":33773.06217196285,"y":29864.65542743994},"targetPosition":{"x":33895.08316488559,"y":30138.71906473272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H NOT Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope != \"Side\"","project":"Superalgos","id":"7fa69f52-edfe-42b6-bda3-40e9ad7af808","savedPayload":{"position":{"x":33853.22928063911,"y":29540.180634576824},"targetPosition":{"x":33874.15622276235,"y":29839.44984965477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"50495c21-1a7b-4c38-9c6c-4cec9fb5a0f1","savedPayload":{"position":{"x":33874.15622276235,"y":29839.44984965477},"targetPosition":{"x":33895.08316488559,"y":30138.71906473272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"0770176a-5af8-479d-8a7e-7bafaf04cb05","savedPayload":{"position":{"x":34060.465578375784,"y":29561.96204716973},"targetPosition":{"x":33977.77437163069,"y":29850.340555951225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0538f837-fbba-4e7c-b1db-8a574559d584","savedPayload":{"position":{"x":33977.77437163069,"y":29850.340555951225},"targetPosition":{"x":33895.08316488559,"y":30138.71906473272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b2dd0458-53e0-4d8c-8f46-bb45946cdb65","savedPayload":{"position":{"x":33895.08316488559,"y":30138.71906473272},"targetPosition":{"x":34137.788263198076,"y":30315.05464042046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"642f8610-4b1d-4178-8bae-12abf00b7812","savedPayload":{"position":{"x":34137.788263198076,"y":30315.05464042046},"targetPosition":{"x":34380.49336151056,"y":30491.390216108204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","project":"Superalgos","id":"9d2e77ef-dc06-4357-8739-44065c83f8cb","savedPayload":{"position":{"x":30284.870532822708,"y":24486.693008103277},"targetPosition":{"x":30114.089233097067,"y":25124.002306371178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"65d4f331-e81f-44d4-834b-9e786d9d2a36","savedPayload":{"position":{"x":30114.089233097067,"y":25124.002306371178},"targetPosition":{"x":29943.226018568057,"y":25761.37960753494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9753c7d0-7d95-4464-8331-a7d4bac71a9b","savedPayload":{"position":{"x":29943.226018568057,"y":25761.37960753494},"targetPosition":{"x":29771.984403418064,"y":26400.114291021076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"99db5a57-b7b5-44d2-b046-c5784a51bffc","savedPayload":{"position":{"x":34357.02819175453,"y":30343.236965018932},"targetPosition":{"x":34380.49336151056,"y":30491.390216108204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"190f6e85-1f6e-4088-a156-a82e3b0e72cb","savedPayload":{"position":{"x":30090.774546211884,"y":26038.821308519073},"targetPosition":{"x":30147.839593335477,"y":26364.347053817124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"07da9742-43f4-4bfb-8720-3272474740d1","savedPayload":{"position":{"x":30147.839593335477,"y":26364.347053817124},"targetPosition":{"x":30205.19288829226,"y":26690.31329078506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"56b61beb-3df4-4577-b39e-90c3c3fc7075","savedPayload":{"position":{"x":30320.38547922099,"y":26038.581961545453},"targetPosition":{"x":30262.805282806352,"y":26364.226173402785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"34460859-dffb-4fba-93b2-fe143c3a25de","savedPayload":{"position":{"x":30262.805282806352,"y":26364.226173402785},"targetPosition":{"x":30205.19288829226,"y":26690.31329078506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"16a3f794-7209-437c-a272-c1f945374af2","savedPayload":{"position":{"x":30536.515875966965,"y":26117.071519038203},"targetPosition":{"x":30371.005155014456,"y":26403.465122929847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"28a397a8-b5f1-44fd-afe2-3e366e7e938d","savedPayload":{"position":{"x":30371.005155014456,"y":26403.465122929847},"targetPosition":{"x":30205.19288829226,"y":26690.31329078506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"e6fa32e6-37a4-40ae-a68d-8d046eed13b6","savedPayload":{"position":{"x":30712.66912636248,"y":26264.89990734899},"targetPosition":{"x":30459.155615858406,"y":26477.432210756844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ba113199-ed6c-4b10-8312-4d938c7e8c39","savedPayload":{"position":{"x":30459.155615858406,"y":26477.432210756844},"targetPosition":{"x":30205.19288829226,"y":26690.31329078506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"02H Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\"","project":"Superalgos","id":"b76599cd-7312-4aac-9dee-8e21dac4b1c6","savedPayload":{"position":{"x":30827.66413046462,"y":26464.09940576245},"targetPosition":{"x":30516.68342829796,"y":26577.08782664367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d274dddf-c518-4602-9e20-001b6b348fde","savedPayload":{"position":{"x":30516.68342829796,"y":26577.08782664367},"targetPosition":{"x":30205.19288829226,"y":26690.31329078506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Gentle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerSubChannel.slope === \"Gentle\"","project":"Superalgos","id":"ef31d5cf-d980-494c-a6af-1970b0e5e172","savedPayload":{"position":{"x":30867.553738338807,"y":26690.30765351784},"targetPosition":{"x":30536.615120425296,"y":26690.247056499647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1e6adf92-f58a-4ebd-a125-f9b61d51ec59","savedPayload":{"position":{"x":30536.615120425296,"y":26690.247056499647},"targetPosition":{"x":30205.19288829226,"y":26690.31329078506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H NOT Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope != \"Side\"","project":"Superalgos","id":"d6005505-7c26-4f5c-b94e-3c2a9e812f5c","savedPayload":{"position":{"x":30827.569746538582,"y":26916.60536481462},"targetPosition":{"x":30516.557563281174,"y":26803.48790071808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dac090bd-5be4-4193-b40b-3ce250f62d91","savedPayload":{"position":{"x":30516.557563281174,"y":26803.48790071808},"targetPosition":{"x":30205.19288829226,"y":26690.31329078506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"6198450f-adf9-4208-a125-e47b101f9b41","savedPayload":{"position":{"x":30712.457540158517,"y":27115.924174807195},"targetPosition":{"x":30458.916404160118,"y":26903.28840470694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b1f55195-9a70-49fa-8025-51cdf0acdbeb","savedPayload":{"position":{"x":30458.916404160118,"y":26903.28840470694},"targetPosition":{"x":30205.19288829226,"y":26690.31329078506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"196d7981-9230-4a94-b8c2-39ff25a22bb9","savedPayload":{"position":{"x":30205.19288829226,"y":26690.31329078506},"targetPosition":{"x":29886.80761807601,"y":26873.952197836297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"1c30f570-4f8e-47cf-95c1-dd1f4244a77a","savedPayload":{"position":{"x":34556.828937198305,"y":30248.68511779572},"targetPosition":{"x":34380.49336151056,"y":30491.390216108204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"999bf574-a88b-467f-a107-7e0770e6bd53","savedPayload":{"position":{"x":34380.49336151056,"y":30491.390216108204},"targetPosition":{"x":34427.42370102263,"y":30787.696718286745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"My Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"8a81a2c0-357d-4c2d-a549-9051d7b2c6d0","savedPayload":{"position":{"x":29310.74429185348,"y":26135.925231485533},"targetPosition":{"x":29490.72213214349,"y":26413.63343525451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"530d589f-dc6b-42f7-b3b5-6adda880314a","savedPayload":{"position":{"x":29490.72213214349,"y":26413.63343525451},"targetPosition":{"x":29713.25810661907,"y":26757.497431823882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.episodeBaseAsset.balance.value","project":"Superalgos","id":"9e38415c-2e9d-49a8-aaaa-e76aa0532ed4","savedPayload":{"position":{"x":30048.04546530098,"y":26099.601809184736},"targetPosition":{"x":29898.80713430288,"y":26393.007908437554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dcdc1f5f-1691-4432-9e2e-3f8ad4c19314","savedPayload":{"position":{"x":29898.80713430288,"y":26393.007908437554},"targetPosition":{"x":29713.25810661907,"y":26757.497431823882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7a57f4d9-ac42-4871-85b1-a300b42d7a0c","savedPayload":{"position":{"x":36773.77045750805,"y":30368.600330817048},"targetPosition":{"x":36781.62085094449,"y":30518.394761030235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Quick Entry","config":"{\n\"percentageOfAlgorithmSize\": 100\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"aaea728c-75f9-46c1-8b15-99fa2990866a","savedPayload":{"position":{"x":31672.313230303967,"y":25824.146656659716},"targetPosition":{"x":31395.129677715006,"y":26004.146450725842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9992f0c6-f7e5-4ff5-bf21-bf809695e653","savedPayload":{"position":{"x":31395.129677715006,"y":26004.146450725842},"targetPosition":{"x":31117.86541023836,"y":26184.472636147766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bf813257-1aca-4ba8-a5e4-5d372d740caa","savedPayload":{"position":{"x":31117.86541023836,"y":26184.472636147766},"targetPosition":{"x":30840.944486738517,"y":26364.783007690872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"417a8b49-cb3b-4b7d-b6de-6a382302e09f","savedPayload":{"position":{"x":30840.944486738517,"y":26364.783007690872},"targetPosition":{"x":30563.358313810364,"y":26545.076976885663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e575de70-9ec4-4936-9265-7cee85ef0b30","savedPayload":{"position":{"x":30563.358313810364,"y":26545.076976885663},"targetPosition":{"x":30285.880868034466,"y":26725.688458404235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"d6c6a08b-6faa-466b-bc6c-b911bf033682","savedPayload":{"position":{"x":30285.880868034466,"y":26725.688458404235},"targetPosition":{"x":30006.985261483213,"y":26907.595409330774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"8738b563-176d-44fa-acfa-ad74956f3ecf","savedPayload":{"position":{"x":36907.421436136305,"y":30436.69890577798},"targetPosition":{"x":36781.62085094449,"y":30518.394761030235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"5c1cac76-fb50-4a6c-b6ef-86226587fa0e","savedPayload":{"position":{"x":34563.62085094449,"y":30520.394761030235},"targetPosition":{"x":34427.42370102263,"y":30787.696718286745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Controlled Run","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Stop","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 1.03","project":"Superalgos","id":"e0d94103-a97c-4960-b1aa-f7e1fcb656ca","savedPayload":{"position":{"x":30435.373187627898,"y":26433.442626884113},"targetPosition":{"x":30418.41142340035,"y":26764.553926388086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < tradingEngine.current.position.entryTargetRate.value * 0.97","project":"Superalgos","id":"19778aea-457a-4483-8934-4a7e7786a933","savedPayload":{"position":{"x":30192.141148108312,"y":25816.3812063929},"targetPosition":{"x":30116.25156975211,"y":25966.088252169007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3634294e-b331-44ba-b019-2143f4e7e317","savedPayload":{"position":{"x":30116.25156975211,"y":25966.088252169007},"targetPosition":{"x":30036.62178155317,"y":26122.485076258527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7975987f-1e42-47e5-b668-8ec6776ec85a","savedPayload":{"position":{"x":30036.62178155317,"y":26122.485076258527},"targetPosition":{"x":29938.985570641154,"y":26314.618145328524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"918cf3df-b5a6-4fa0-84b0-e2648e8e8ca8","savedPayload":{"position":{"x":30714.62037213189,"y":26614.76387331054},"targetPosition":{"x":30418.41142340035,"y":26764.553926388086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"dca1bf8c-cda0-42e4-90c2-14448f3cffb2","savedPayload":{"position":{"x":30418.41142340035,"y":26764.553926388086},"targetPosition":{"x":30199.64927921225,"y":27100.670306965054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 1.02 < tradingEngine.current.position.stopLoss.value) {chart.at01hs.bollingerBand.movingAverage * 1.02} else {tradingEngine.current.position.stopLoss.value}","project":"Superalgos","id":"928d3add-1690-4dfd-b2f8-455668fc742c","savedPayload":{"position":{"x":30779.54358001164,"y":26208.830100989988},"targetPosition":{"x":30599.410157852384,"y":26486.00436041432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"51924a8f-f6b0-41f0-9fb5-8cd97d8d6531","savedPayload":{"position":{"x":30599.410157852384,"y":26486.00436041432},"targetPosition":{"x":30418.501785111286,"y":26764.416499694402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6ba3063d-c882-44d2-a7c4-9915a220b17e","savedPayload":{"position":{"x":36994.42151353139,"y":30523.698983173068},"targetPosition":{"x":36912.72565827914,"y":30649.49956836488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 0.95","project":"Superalgos","id":"7c916535-3cd3-4b28-b671-06455eccdbc4","savedPayload":{"position":{"x":31110.452898142852,"y":27155.635931631317},"targetPosition":{"x":30816.156970159704,"y":27307.074013652535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"1H EMA7 < entryTargetRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value","project":"Superalgos","id":"452bd440-4b3f-4abc-a8d3-dbac108494ff","savedPayload":{"position":{"x":30832.919346028706,"y":26406.006248490805},"targetPosition":{"x":30693.757977412337,"y":26495.8816439992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"35ecc05e-c241-4661-aef7-cf9cd3a0718f","savedPayload":{"position":{"x":30693.757977412337,"y":26495.8816439992},"targetPosition":{"x":30536.05771442775,"y":26591.95487646544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.current.position.positionCounters.periods.value > 2","project":"Superalgos","id":"947fbe1d-2d73-413c-a66a-afc1d9fd5ea8","savedPayload":{"position":{"x":30850.32800473556,"y":26744.761999904855},"targetPosition":{"x":30702.80290933868,"y":26670.283962529254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"73661d44-6a9d-4841-8f45-7240649a5d6d","savedPayload":{"position":{"x":30702.80290933868,"y":26670.283962529254},"targetPosition":{"x":30536.05771442775,"y":26591.95487646544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1c59dd62-57a7-4ef6-9197-7b6fd102a06b","savedPayload":{"position":{"x":30536.05771442775,"y":26591.95487646544},"targetPosition":{"x":30321.1446263178,"y":26603.64229688271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"541feb51-68a3-4326-bd16-c7a91ec68cd2","savedPayload":{"position":{"x":31093.151675226647,"y":27488.23306520426},"targetPosition":{"x":30816.156970159704,"y":27307.074013652535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"ba7462a2-9b77-4628-8be8-0700e49ed2a8","savedPayload":{"position":{"x":30816.156970159704,"y":27307.074013652535},"targetPosition":{"x":30415.258702478946,"y":27286.338727852977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Manage: 3% Below ema7","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.97 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.97} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"f0ba9068-9fd8-46c1-89c6-c51c2127fad3","savedPayload":{"position":{"x":31163.841965768093,"y":26993.23270304936},"targetPosition":{"x":31146.366116487683,"y":27324.06513727981},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"3d7e602e-ca81-4d0f-808c-0b6987a224d4","savedPayload":{"position":{"x":20240.240828671245,"y":24894.970963939057},"targetPosition":{"x":20080.61013034513,"y":24536.97779059405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3cf490f8-fb04-4a14-aab8-1215009b40bd","savedPayload":{"position":{"x":20080.61013034513,"y":24536.97779059405},"targetPosition":{"x":19920.664668901947,"y":24178.943327043417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"399b9981-c283-4140-8600-904bd8fae636","savedPayload":{"position":{"x":19920.664668901947,"y":24178.943327043417},"targetPosition":{"x":19760.48476489394,"y":23820.82522001162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"19a0d710-315f-43b8-b1f0-8aca0f21d63e","savedPayload":{"position":{"x":31478.37453400236,"y":27441.36631811087},"targetPosition":{"x":31146.366116487683,"y":27324.06513727981},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"6407cb18-e862-47c7-8c3d-2ac857597595","savedPayload":{"position":{"x":31226.909930003072,"y":28406.443672684218},"targetPosition":{"x":30936.555608360475,"y":28247.435458324624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3218784f-7ac6-4f71-89ca-c13de6fb1e08","savedPayload":{"position":{"x":30936.555608360475,"y":28247.435458324624},"targetPosition":{"x":30645.757815348807,"y":28088.24450004683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"31096ee3-5cb2-437c-911c-b8dac600eeda","savedPayload":{"position":{"x":31031.356076465352,"y":28627.09839294401},"targetPosition":{"x":30838.71675092652,"y":28357.883178535238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4a59f893-ce98-40a8-a456-14758c0e3b72","savedPayload":{"position":{"x":30838.71675092652,"y":28357.883178535238},"targetPosition":{"x":30645.757815348807,"y":28088.24450004683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value * 0.99","project":"Superalgos","id":"39e213d0-6871-4fcc-8ba7-6485b15b8010","savedPayload":{"position":{"x":30759.564070389417,"y":28741.012509371096},"targetPosition":{"x":30702.752965354215,"y":28414.877956701952},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a2c15f0e-3edb-4849-862a-dce24f143be6","savedPayload":{"position":{"x":30702.752965354215,"y":28414.877956701952},"targetPosition":{"x":30645.757815348807,"y":28088.24450004683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"5d4916ab-3a59-42cd-ad42-2c9be833bb36","savedPayload":{"position":{"x":30465.959939454922,"y":28725.773313486556},"targetPosition":{"x":30555.874885328834,"y":28407.249699258085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e90a9e18-c05e-4c34-8931-f934311d8be4","savedPayload":{"position":{"x":30555.874885328834,"y":28407.249699258085},"targetPosition":{"x":30645.757815348807,"y":28088.24450004683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"1578e195-a319-4748-8204-f90d816fc4ae","savedPayload":{"position":{"x":30207.702766443697,"y":28584.46208332645},"targetPosition":{"x":30426.661562725058,"y":28336.528022427614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b48541a5-46c2-4e7e-a072-07d94c1b2ac9","savedPayload":{"position":{"x":30426.661562725058,"y":28336.528022427614},"targetPosition":{"x":30645.757815348807,"y":28088.24450004683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Down && NOT Side","code":"chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Down\" && chart.at01hs.bollingerSubChannel.slope != \"Side\"","project":"Superalgos","id":"fb1f280f-632e-4097-b5da-dfdbacd169c3","savedPayload":{"position":{"x":30036.596332527653,"y":28345.086254141854},"targetPosition":{"x":30341.04138357284,"y":28216.794512212662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0000df02-7c31-423f-a377-ee7a54e745b1","savedPayload":{"position":{"x":30341.04138357284,"y":28216.794512212662},"targetPosition":{"x":30645.757815348807,"y":28088.24450004683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a9ea4174-771b-4b50-8376-05494437d912","savedPayload":{"position":{"x":30645.757815348807,"y":28088.24450004683},"targetPosition":{"x":30663.071229504196,"y":27741.673446254666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"730610f1-2311-4486-8905-37c9c001d766","savedPayload":{"position":{"x":31129.517746292884,"y":27655.067383273177},"targetPosition":{"x":31146.366116487683,"y":27324.06513727981},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"1a7c350c-eb3a-4d8a-af57-68aabda6fea7"}}}],"announcements":[],"id":"f631120e-4f0f-41f4-85b3-74778c8060c0","savedPayload":{"position":{"x":31146.366116487683,"y":27324.06513727981},"targetPosition":{"x":30816.165184490193,"y":27307.074492723572},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"e0cee676-0034-4512-9ed3-b4f61df739bf","savedPayload":{"position":{"x":31722.180456538073,"y":27094.50405030886},"targetPosition":{"x":31476.27485905688,"y":27316.42073098317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"2cd48b45-e3f4-4a76-8bf7-19470c990e1e","savedPayload":{"position":{"x":32160.954339536656,"y":27396.09762061706},"targetPosition":{"x":31926.962483285257,"y":27629.93166704668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"17193755-5b37-4ee7-82ca-a14db05dbd30","savedPayload":{"position":{"x":31926.962483285257,"y":27629.93166704668},"targetPosition":{"x":31692.741517544404,"y":27864.123009587405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"b8cb24ca-a2ce-4ae6-b5d9-63471af0095f","savedPayload":{"position":{"x":32332.4083458319,"y":27692.987548804726},"targetPosition":{"x":32012.762928838238,"y":27778.48423873228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4facbae1-8244-47d9-bf81-2ebf58477c34","savedPayload":{"position":{"x":32012.762928838238,"y":27778.48423873228},"targetPosition":{"x":31692.741517544404,"y":27864.123009587405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"4e3f128a-a12a-444d-b706-c54a910da68b","savedPayload":{"position":{"x":32332.48179869735,"y":28035.13069726801},"targetPosition":{"x":32012.807700154226,"y":27949.64561731559},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2460f9b-c5ab-4502-9b39-38159b55534b","savedPayload":{"position":{"x":32012.807700154226,"y":27949.64561731559},"targetPosition":{"x":31692.741517544404,"y":27864.123009587405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"2a370595-33f8-4cf8-af80-e7871edcf8fa","savedPayload":{"position":{"x":32161.285578487958,"y":28331.9706917453},"targetPosition":{"x":31927.169050693803,"y":28098.14142320938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"133e251e-2ac5-4ebd-8f4c-73eb8c8ba7e1","savedPayload":{"position":{"x":31927.169050693803,"y":28098.14142320938},"targetPosition":{"x":31692.741517544404,"y":27864.123009587405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Down && NOT Side or Gentle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Down\" && chart.at01hs.bollingerSubChannel.slope != \"Side\" && chart.at01hs.bollingerSubChannel.slope != \"Gentle\"","project":"Superalgos","id":"55435ac8-859e-4665-842c-f6603923589e","savedPayload":{"position":{"x":31864.69748740887,"y":28503.481654427414},"targetPosition":{"x":31778.833314432442,"y":28183.922962779805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ee4dad2e-77dd-4f45-9847-c3c2e563d015","savedPayload":{"position":{"x":31778.833314432442,"y":28183.922962779805},"targetPosition":{"x":31692.741517544404,"y":27864.123009587405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"42bd767a-7a9e-40dc-9973-ad6e2411e769","savedPayload":{"position":{"x":31692.741517544404,"y":27864.123009587405},"targetPosition":{"x":31356.85335669772,"y":27774.542463166923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"f9f58805-ee92-40ac-be13-6d242a6a476f","savedPayload":{"position":{"x":31894.924270482217,"y":27286.697977487514},"targetPosition":{"x":31476.27485905688,"y":27316.42073098317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"1a7c350c-eb3a-4d8a-af57-68aabda6fea7"}}},{"type":"Move To Phase Event","name":"Cancel Close","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","code":"chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"32c1fa99-99b6-4bdd-ad3d-fcb3858413fe","savedPayload":{"position":{"x":32003.47029723571,"y":28547.18591236195},"targetPosition":{"x":31683.640947019667,"y":28461.087164626275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8f146719-384b-4e16-a0b3-c7501eeca1dd","savedPayload":{"position":{"x":31683.640947019667,"y":28461.087164626275},"targetPosition":{"x":31364.0886272388,"y":28375.221605560444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"b1d2c06e-3c41-474c-b241-62639db26336","savedPayload":{"position":{"x":31694.996222339665,"y":28948.65527382773},"targetPosition":{"x":31529.500458955496,"y":28661.925480665785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"655cd860-35be-4db4-8786-758133ade2f8","savedPayload":{"position":{"x":31529.500458955496,"y":28661.925480665785},"targetPosition":{"x":31364.0886272388,"y":28375.221605560444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"7b14d5ba-d792-4d0e-9c33-aae6abc015dd","savedPayload":{"position":{"x":31193.617501011395,"y":29014.74657093681},"targetPosition":{"x":31278.705259789735,"y":28694.929232194343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"41486047-0d08-4227-8d03-3e844c75a3ea","savedPayload":{"position":{"x":31278.705259789735,"y":28694.929232194343},"targetPosition":{"x":31364.0886272388,"y":28375.221605560444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"78031caf-041a-4f69-aea1-f9666aef959d","savedPayload":{"position":{"x":31364.0886272388,"y":28375.221605560444},"targetPosition":{"x":31190.77113086993,"y":28074.5398616331},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"ad7504d5-49ec-4fed-bc74-44f5f398def7","savedPayload":{"position":{"x":31697.852032028648,"y":27563.048140143997},"targetPosition":{"x":31476.27485905688,"y":27316.42073098317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"f631120e-4f0f-41f4-85b3-74778c8060c0"}}}],"announcements":[],"id":"bee5a88b-489f-48ce-be58-4531f815462a","savedPayload":{"position":{"x":31476.27485905688,"y":27316.42073098317},"targetPosition":{"x":31146.366116487683,"y":27324.06513727981},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.8 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.8} else \n{tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"6e3648cc-0d59-428a-acc2-afcf2a6e86c4","savedPayload":{"position":{"x":31965.765365082087,"y":27067.683451402198},"targetPosition":{"x":31785.136221255707,"y":27345.321644004936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Cancel Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"d68720e4-049f-46b9-b412-f0378573a413","savedPayload":{"position":{"x":19478.870693897756,"y":25914.913440732285},"targetPosition":{"x":19233.289037172442,"y":25609.012661328474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"609ce0eb-a9ec-495a-9f99-cd5adeaa5824","savedPayload":{"position":{"x":19233.289037172442,"y":25609.012661328474},"targetPosition":{"x":18991.092642047013,"y":25307.55268022269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"49efa579-e07f-432e-ab03-458909afe80a","savedPayload":{"position":{"x":18906.689833894925,"y":26088.945687796775},"targetPosition":{"x":18948.91570912904,"y":25698.367529994284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"70e024f2-8dc4-443b-b7d0-8d979bd7879a","savedPayload":{"position":{"x":18948.91570912904,"y":25698.367529994284},"targetPosition":{"x":18991.092642047013,"y":25307.55268022269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Up || Side, Gentle or Medium","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Up\" || chart.at01hs.bollingerSubChannel.slope === \"Side\" || chart.at01hs.bollingerSubChannel.slope === \"Gentle\" || chart.at01hs.bollingerSubChannel.slope === \"Medium\"","project":"Superalgos","id":"199cc33c-0e13-4de9-910a-c9d356e9d0d6","savedPayload":{"position":{"x":18379.255171744895,"y":25802.71286863055},"targetPosition":{"x":18685.152272428706,"y":25555.223942768105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3621eed7-d3f5-4350-8e53-6eb76377b10a","savedPayload":{"position":{"x":18685.152272428706,"y":25555.223942768105},"targetPosition":{"x":18991.092642047013,"y":25307.55268022269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dede1ba7-70c6-417a-a54a-14177afbd413","savedPayload":{"position":{"x":18991.092642047013,"y":25307.55268022269},"targetPosition":{"x":19041.145388877303,"y":24900.1252819843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"76a5126e-7d21-4160-b25a-08631b6d519a","savedPayload":{"position":{"x":32063.065574665678,"y":27525.504609599462},"targetPosition":{"x":31785.136221255707,"y":27345.321644004936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"f631120e-4f0f-41f4-85b3-74778c8060c0"}}}],"announcements":[],"id":"1a7c350c-eb3a-4d8a-af57-68aabda6fea7","savedPayload":{"position":{"x":31785.136221255707,"y":27345.321644004936},"targetPosition":{"x":31476.27485905688,"y":27316.42073098317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a3dd2636-1b11-4d0a-8a32-945e790a97e5","savedPayload":{"position":{"x":37062.520088492325,"y":30657.349961801323},"targetPosition":{"x":36912.72565827914,"y":30649.49956836488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"6af83cfb-a8f9-4313-8013-495ed37ee6f5","savedPayload":{"position":{"x":34694.72565827914,"y":30651.49956836488},"targetPosition":{"x":34427.42370102263,"y":30787.696718286745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"39714970-7a27-412a-93ee-86e793262cc2","savedPayload":{"position":{"x":30859.05061931829,"y":27088.766071439997},"targetPosition":{"x":30650.734631299514,"y":27345.16371960425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"587f4120-6e47-4a59-ae01-edee731eb2fe","savedPayload":{"position":{"x":30650.734631299514,"y":27345.16371960425},"targetPosition":{"x":30392.367040420577,"y":27663.17834875628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value","project":"Superalgos","id":"366084ff-7027-403c-a20a-40d9308cd3ed","savedPayload":{"position":{"x":31122.575818368736,"y":27778.94754607285},"targetPosition":{"x":30795.51316618894,"y":27727.11568542081},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e9bb0180-bce1-440e-9e5e-5d6ddf63e163","savedPayload":{"position":{"x":30795.51316618894,"y":27727.11568542081},"targetPosition":{"x":30392.367040420577,"y":27663.17834875628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2fb1e698-028f-43a5-a380-024e4607f5dc","savedPayload":{"position":{"x":37081.767267175754,"y":30778.87186536702},"targetPosition":{"x":36941.73020320117,"y":30832.627057798814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Quick Exit","config":"{\n\"percentageOfAlgorithmSize\": 100,\n\"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"9cf7ec1d-7cec-4b00-8938-2724ab31308f","savedPayload":{"position":{"x":29099.682582886584,"y":28243.411996100782},"targetPosition":{"x":29059.106797338514,"y":28051.23246422733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ee800c76-ec26-4156-9e65-c8a8ba09b00a","savedPayload":{"position":{"x":29059.106797338514,"y":28051.23246422733},"targetPosition":{"x":29018.425466202694,"y":27858.37898519233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d2660921-d3f8-4b4a-b5cd-d982f6863fdf","savedPayload":{"position":{"x":29018.425466202694,"y":27858.37898519233},"targetPosition":{"x":28968.897045204394,"y":27623.844444671726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"19b0ab5e-f2ca-47f9-98fe-b43917714700","savedPayload":{"position":{"x":31171.82917240986,"y":28662.58598331229},"targetPosition":{"x":30914.888169734288,"y":28454.56183304584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3b0ef4ee-e948-43aa-a2f6-db556880d6df","savedPayload":{"position":{"x":30914.888169734288,"y":28454.56183304584},"targetPosition":{"x":30657.8106193906,"y":28246.444237643365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"490a2173-4a73-4822-a292-c45afc643262","savedPayload":{"position":{"x":30657.8106193906,"y":28246.444237643365},"targetPosition":{"x":30340.456811626922,"y":27989.558152378777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"525d3607-b2b2-4345-af7c-fdde1b649060","savedPayload":{"position":{"x":37058.30209741972,"y":30927.02511645629},"targetPosition":{"x":36941.73020320117,"y":30832.627057798814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"0d1db0bb-2e8d-4289-93cd-b2a5e2d6b77c","savedPayload":{"position":{"x":34723.73020320117,"y":30834.627057798814},"targetPosition":{"x":34427.42370102263,"y":30787.696718286745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f1787887-41aa-41d4-80c5-34db452cd148","savedPayload":{"position":{"x":34427.42370102263,"y":30787.696718286745},"targetPosition":{"x":34215.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3313017d-fdce-481b-9679-fe8e4f67cd45","savedPayload":{"position":{"x":34215.291666666664,"y":30999.82875264271},"targetPosition":{"x":34215.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Tutorial","name":"3. Testing a Trading Idea - The Trigger Stage","config":"{\n \"subTitle\": \"Testing a Trading Idea\",\n \"summary\": \"\",\n \"gif\": \"\",\n \"image\": \"trading-strategy\",\n \"definition\": \"We got to the point where we can finally put the theory in practice, so let's get on with it!\",\n \"paragraph1\": \"In the second tutorial in the series we covered how to properly define a trading idea so that it is testable. We also went on a field trip and came back with a proper formalized hypothesis to test.\",\n \"callOut\": \"In this tutorial, we will test the hypothesis!\",\n \"paragraph2\": \"\",\n \"note\": \"I highly recommend you do the first and second tutorials in the series before doing this one! The story is carried from one to the next!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Introduction","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Topics to Cover","config":"{\n \"subTitle\": \"The Pipeline\",\n \"gif\": \"\",\n \"image\": \"dataset-definition\",\n \"definition\": \"We will cover several topics! Let's make a quick list to use as a guide along the way!\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": [\n [\n \"The ->Trigger Stage->\",\n \"with it's three events: ->Trigger On Event->, ->Trigger Off Event->, and ->Take Position Event->.\"\n ],\n [\n \"Basic definitions\",\n \"including what is a ->Situation->, a ->Condition->, and a ->Formula->.\"\n ],\n [\n \"Syntax,\",\n \"or how to write conditions and formulas.\"\n ],\n [\n \"Indicator properties\",\n \"and how to use them.\"\n ],\n [\n \"Open, Manage, and Close Stages\",\n \"basics.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Have you read about these topics? No worries... you will!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"8708f037-10b5-4f48-bd0b-65b8f04176c2","savedPayload":{"position":{"x":31409.80502970953,"y":43893.33614024661},"targetPosition":{"x":31295,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Ready to Mine?","config":"{\n \"subTitle\": \"Do You Have The Data?\",\n \"gif\": \"\",\n \"image\": \"data-tasks\",\n \"definition\": \"If you didn't do the second tutorial in the series, chances are you are missing the data you need to do this one!\",\n \"paragraph1\": \"\",\n \"callOut\": \"If you did the second tutorial, you can skip the data mining! If you didn't, then proceed!\",\n \"paragraph2\": \"\",\n \"note\": \"The sensor bot will run on the BTC/USDT market (Binance) from January 1st, 2020.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"If you have data on this market but on a different time range, this may affect your data! Read the sensor bot documentation to learn how! \",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"https://docs.superalgos.org/suite-hierarchy-network.html#sensor-bot-instance\"\n}","project":"Superalgos","id":"c600b7b2-417f-4dc7-96bb-4e3cb1628681","savedPayload":{"position":{"x":31507.132034355964,"y":43958.367965644036},"targetPosition":{"x":31295,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Tasks","name":"New Data Tasks","id":"4df1cb4e-b9ca-4f62-bb5f-c7e262aaa22a"}}},{"type":"Tutorial Step","name":"Let's Mine Some Data","config":"{\n \"subTitle\": \"Let's Mine Some Data!\",\n \"gif\": \"\",\n \"image\": \"run\",\n \"definition\": \"Now that you understand the implications of running this data mining operation, let's get on with it!\",\n \"paragraph1\": \"\",\n \"callOut\": \"If you didn't do the second tutorial in the series, select Run All Project Data Tasks on the ->Data Tasks-> node menu!\",\n \"paragraph2\": \"\",\n \"note\": \"If you are doing this tutorial after doing other tutorials, chances are you may already have part of the data required, which may make things faster! Either way, no need to wait for the data mining to get to the present time... you may keep going with the tutorial!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"eb4114cf-d600-47d0-aeb0-9bc070947b60","savedPayload":{"position":{"x":31572.163859753386,"y":44055.694970290475},"targetPosition":{"x":31295,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Let's Start with the Basics!","config":"{\n \"subTitle\": \"Let's Start With the Basics!\",\n \"gif\": \"\",\n \"image\": \"trading-strategy\",\n \"definition\": \"You define trading strategies following the Superalgos Protocol! \",\n \"paragraph1\": \"\",\n \"callOut\": \"Please, read this page about trading strategies. It is the base of everything we will be discussing!\",\n \"paragraph2\": \"\",\n \"note\": \"The last paragraph in the page states that the framework is flexible enough to accept definitions that bend the rigid interpretation of what a position is. In this tutorial, we will focus on a typical by-the-book definition of a strategy, that is, the case for which the framework is optimized. We will cover other cases in other tutorials! \",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"https://docs.superalgos.org/suite-strategies.html\"\n}","project":"Superalgos","id":"946c39fb-6fec-4a0e-bc36-f0051dc3bdf0","savedPayload":{"position":{"x":31595,"y":44170.5},"targetPosition":{"x":31295,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"3. Testing a Trading Idea - The Trigger Stage","id":"8837ff70-a40f-444c-b8f9-272d1642eece"}}},{"type":"Tutorial Step","name":"New Trading System","config":"{\n \"subTitle\": \"Trading Systems\",\n \"gif\": \"\",\n \"image\": \"trading-system\",\n \"definition\": \"New trading systems are created from the Superalgos Project hierarchy, in particular, from the Other Hierarchies node.\",\n \"paragraph1\": \"But... you know what? We'll use one I created already!\",\n \"callOut\": \"Feel free to add a trading system if you wish, but delete it afterwards, as we are not going to use it!\",\n \"paragraph2\": \"\",\n \"note\": \"I set up a trading system while you weren't watching so that I can reference existing nodes and take you to specific places while we move along this tutorial! Merely for technical reasons, if you must know!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"d669ea29-58e8-4f60-af56-f51357383f37","savedPayload":{"position":{"x":31572.163859753386,"y":44285.305029709525},"targetPosition":{"x":31295,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Other Hierarchies","name":"New Other Hierarchies","id":"9cf63862-9273-4341-9e03-b98e2d20d6d3"}}},{"type":"Tutorial Step","name":"Right Out of the Box","config":"{ \n \"subTitle\": \"Right Out of the Box!\",\n \"gif\": \"\",\n \"image\": \"trading-system\",\n \"definition\": \"This is the trading system we will use, virtually as it comes right out of the box!\",\n \"paragraph1\": \"All I've done with it is organize the hierarchy the way I like it, and give it a name: BB Breakdown.\",\n \"callOut\": \"Expand the hierarchy and look around! Notice the Downtrends strategy... Expand each of the nodes corresponding to the four stages, one by one, and take a good look inside!\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"The nodes you see within each of these stages make up the definitions of a strategy...\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n }","project":"Superalgos","id":"34a8ef77-1165-4d88-8123-68d2a910f73a","savedPayload":{"position":{"x":31507.132034355964,"y":44382.632034355964},"targetPosition":{"x":31295,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading System","name":"BB Breakdown","id":"77e18ff3-e29b-4e35-ba66-e34af262d35d"}}},{"type":"Tutorial Step","name":"Why Downtrends?","config":"{ \n \"subTitle\": \"Why Downtrends?\",\n \"gif\": \"\",\n \"image\": \"help\",\n \"definition\": \"If you paid attention to the first tutorial in the series on trading systems, you must know the answer to the above question!\",\n \"paragraph1\": \"In the second tutorial in the series, we came up with two similar hypotheses: one involves trading during uptrends and the second, in downtrends.\",\n \"callOut\": \"Those are two distinct ideas and should be treated as different strategies because they will handle similar logic, but not the same!\",\n \"paragraph2\": \"\",\n \"note\": \"We'll focus in the Downtrend strategy first, because I feel it's the most promising one!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n }","project":"Superalgos","id":"7df7b308-0864-4f30-a0dd-789e29ca7f97","savedPayload":{"position":{"x":31409.80502970953,"y":44447.66385975339},"targetPosition":{"x":31295,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"e6168b2b-ab19-4bb1-9f34-162e247050c3","savedPayload":{"position":{"x":31295,"y":44170.5},"targetPosition":{"x":30995,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Basic Theory","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Trigger Stage & Events","config":"{ \n \"subTitle\": \"Trigger Stage Events\",\n \"gif\": \"\",\n \"image\": \"trigger-stage\",\n \"definition\": \"In a way, strategies are defined as a collection of events. The events that trigger a ->Trading Strategy-> are the first to consider!\",\n \"bulletListIntro\": \"In the next few steps, we will define the...\",\n \"bulletArray\": \n [\n [\"->Trigger On Event->\", \"\"], \n [\"->Trigger Off Event->\", \"\"], \n [\"->Take Position Event->\", \"\"] \n ],\n \"paragraph1\": \"\",\n \"callOut\": \"If you haven't yet, please read this page to get up to speed with these concepts!\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"https://docs.superalgos.org/suite-strategies-trigger.html\" \n }","project":"Superalgos","id":"b6d6e97d-1840-44b4-b441-a1df71941771","savedPayload":{"position":{"x":31501.883757869506,"y":44204.67497694584},"targetPosition":{"x":31237.705098312483,"y":44346.83557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trigger Stage","name":"New Trigger Stage","id":"4c4e692c-1507-46b8-882a-84bb88358894"}}},{"type":"Tutorial Step","name":"Trigger On Event","config":"{\n \"subTitle\": \"Trigger On Event\",\n \"gif\": \"\",\n \"image\": \"trigger-on-event\",\n \"definition\": \"The ->Trigger On Event-> defines the market ->Situation-> in which the strategy shall be triggered.\",\n \"bulletListIntro\": \"Let's refresh the basic concepts! The triggering of a strategy has two main implications:\",\n \"bulletArray\": [\n [\n \"The strategy is selected among other strategies in the trading system and is assigned the capital available for the trading session.\",\n \"This is important because we'll eventually have two strategies in the trading system!\"\n ],\n [\n \"Once a strategy is triggered, the trading bot starts evaluating the ->Take Position Event-> and the ->Trigger Off Event->. \",\n \"When any of those two validate true, the strategy exits the ->Trigger Stage->!\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"10420261-70b2-4470-bb20-5fb5c179ce2e","savedPayload":{"position":{"x":31537.403018274876,"y":44333.37612658259},"targetPosition":{"x":31237.705098312483,"y":44346.83557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trigger On Event","name":"New Trigger On Event","id":"240b7158-8790-4e15-90b6-f828da55a240"}}},{"type":"Tutorial Step","name":"Situations, conditions, formulas.","config":"{ \n \"subTitle\": \"Situations, Conditions, and Formulas in Superalgos\",\n \"gif\": \"\",\n \"image\": \"situation\",\n \"definition\": \"Before we get to write definitions for the trigger on event, you need to get the basic education on these fundamental topics!\",\n \"paragraph1\": \"\",\n \"callOut\": \"If you haven't yet, please read this page outlining the concepts of situations, conditions, and formulas. These are the key concepts that make up most definitions in a strategy!\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"Don't worry about the syntax in the examples. We will get to that soon! If you are not a developer, focus on the simple examples.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"https://docs.superalgos.org/suite-situations-conditions-formulas.html\" \n }","project":"Superalgos","id":"345de160-f06f-4e81-a054-fd66b6c1f8ab","savedPayload":{"position":{"x":31513.563430077917,"y":44464.743085183916},"targetPosition":{"x":31237.705098312483,"y":44346.83557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"3. Testing a Trading Idea - The Trigger Stage","id":"8837ff70-a40f-444c-b8f9-272d1642eece"}}},{"type":"Tutorial Step","name":"Remember the context?","config":"{\n \"subTitle\": \"Remember the Context?\",\n \"gif\": \"\",\n \"image\": \"layer-trends\",\n \"definition\": \"Now that you understand what conditions and situations are, let's pose a question: how do we define the ->Trigger On Event->?\",\n \"paragraph1\": \"Because the trigger on event determines which strategy is selected to trade, the definition of the context of our hypothesis should be the main thing to consider!\",\n \"callOut\": \"The strategy should trade when there is a downtrend in the 24H time frame.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Our job is to write a set of conditions that mathematically describe the market situation of a downtrend in the 24H chart!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"b3ebcc5e-2400-444f-a549-e62f92a6706b","savedPayload":{"position":{"x":31435.086716094396,"y":44572.75701548882},"targetPosition":{"x":31237.705098312483,"y":44346.83557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"3. Testing a Trading Idea - The Trigger Stage","id":"8837ff70-a40f-444c-b8f9-272d1642eece"}}},{"type":"Tutorial Step","name":"Let's Study the Syntax!","config":"{\n \"subTitle\": \"Let's Study the Syntax!\",\n \"gif\": \"\",\n \"image\": \"text\",\n \"definition\": \"The syntax to write conditions and formulas follows a few basic rules that will soon seem obvious!\",\n \"paragraph1\": \"It may take some time to master the syntax, particularly if you are not a technical person, but experience shows that Superalgos users get used to it while building their first strategy!\",\n \"callOut\": \"Please, read this page carefully!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Don't worry if it seems hard to grasp... We'll practice a lot along with this tutorial series!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"https://docs.superalgos.org/suite-syntax-overview.html\"\n}","project":"Superalgos","id":"56c9d65d-7484-4510-b1b4-c91e7b249f84","savedPayload":{"position":{"x":31317.516151982487,"y":44636.0244338965},"targetPosition":{"x":31237.705098312483,"y":44346.83557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"3. Testing a Trading Idea - The Trigger Stage","id":"8837ff70-a40f-444c-b8f9-272d1642eece"}}},{"type":"Tutorial Step","name":"Reinforce the learning!","config":"{\n \"subTitle\": \"Reinforce The Learning!\",\n \"gif\": \"\",\n \"image\": \"learning-bot\",\n \"definition\": \"Let's do a quick recap on the matter of the syntax! I'll push this until you learn it!\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": [\n [\n \"FIRST:\",\n \"The time frame! (i.e.: chart.at24hs)\"\n ],\n [\n \"SECOND:\",\n \"Each segment of the instruction is separated by dots! (i.e.: like.this)\"\n ],\n [\n \"THIRD:\",\n \"Product name and property name are determined by the indicator you are using. No need to memorize them, as you may copy and paste them from the docs when you need them!\"\n ],\n [\n \"FOURTH:\",\n \"Compound words in the product and property name are written altogether, with the first word in lowercase and the rest of the words capitalized! (i.e.: forExampleLikeThis)\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-01-07T21:14:07.990Z\",\n \"toDate\": \"2020-06-25T01:24:11.213Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 2664.909057770561,\n \"maxValue\": 12262.874806146527\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"24-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"2cb581c3-da20-4979-8d87-eab5d44e4134","savedPayload":{"position":{"x":31184.13802987289,"y":44642.01445226733},"targetPosition":{"x":31237.705098312483,"y":44346.83557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}}],"tutorialTopics":[],"id":"8241ebfb-d7c1-4aba-802d-689f0818945a","savedPayload":{"position":{"x":31237.705098312483,"y":44346.83557568774},"targetPosition":{"x":30995,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Trigger On Event","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Are We Up to Date?","config":"{\n \"subTitle\": \"Are We Up to Date?\",\n \"gif\": \"\",\n \"image\": \"indicator-process-instance\",\n \"definition\": \"By now, all processes should be at 100%. We need the data to be ready so that we can go and do some work on the charts!\",\n \"paragraph1\": \"\",\n \"callOut\": \"If you are mining data because you didn't do it in the previous tutorial, look around and see if all processes are at 100%. If all of them are, then stop the data mining!\",\n \"paragraph2\": \"\",\n \"note\": \"Wait until all processes reach the 100% mark before continuing!\",\n \"tip\": \"Let's go to the charts!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"257d6f09-7340-4604-824c-7465beb6f875","savedPayload":{"position":{"x":31582.875564829897,"y":44565.87977226002},"targetPosition":{"x":31134.057647468726,"y":44598.475432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","id":"dcf3d790-5362-4a95-b977-82d0cf0e07f1"}}},{"type":"Tutorial Step","name":"Time to Work the Charts","config":"{\n \"subTitle\": \"Time to Work the Charts!\",\n \"gif\": \"\",\n \"image\": \"trigger-on-event\",\n \"definition\": \"We are going to do some work on the charts, placing the focus on the ->Trigger On Event->!\",\n \"paragraph1\": \"Bear in mind that the trigger on event on each strategy within a trading system is what determines which of the strategies is going to trade in the current context. In our case, we'll eventually have at least two strategies, and we want each of them to specialize on different trends.\",\n \"callOut\": \"The first concern is with determining the trend! How to we go about this?\",\n \"paragraph2\": \"We'll work on something around the Bollinger Bands, as you may imagine!\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"repositionAtTimeMachineReferenceParent\": true,\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-01-07T21:14:07.990Z\",\n \"toDate\": \"2020-06-25T01:24:11.213Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 2664.909057770561,\n \"maxValue\": 12262.874806146527\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"24-hs\"\n }\n }\n ]\n}\n","project":"Superalgos","id":"635e076e-46c0-4693-acdd-65086a4a036f","savedPayload":{"position":{"x":31577.63438388797,"y":44674.236100938986},"targetPosition":{"x":31134.057647468726,"y":44598.475432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"How to Determine the Trend","config":"{\n \"subTitle\": \"Determining the Trend\",\n \"gif\": \"\",\n \"image\": \"layer-trends\",\n \"definition\": \"There are probably as many ways to determine a trend as traders inhabit planet Earth! It's a matter of style and mostly subjective!\",\n \"paragraph1\": \"We'll take an arbitrary and rather simple approach based on the 20-periods moving average (MA) built in the Bollinger Bands.\",\n \"callOut\": \"Go to the Masters ->Layer Manager-> and turn on the Bollinger Channels Objects ->Layer->!\",\n \"paragraph2\": \"\",\n \"note\": \"This indicator derives the direction of the MA and draws a green channel when the MA is going Up and a red channel when it's going Down.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-01-07T21:14:07.990Z\",\n \"toDate\": \"2020-06-25T01:24:11.213Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 2664.909057770561,\n \"maxValue\": 12262.874806146527\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"24-hs\"\n }\n }\n ]\n}\n","project":"Superalgos","id":"e47d7ed3-743a-4bcf-90b7-59351dc1f2a7","savedPayload":{"position":{"x":31546.61413536119,"y":44778.18949493738},"targetPosition":{"x":31134.057647468726,"y":44598.475432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"Is that good enough?","config":"{\n \"subTitle\": \"Is That Good Enough?\",\n \"gif\": \"\",\n \"image\": \"help\",\n \"definition\": \"This seems to work well for the reversals of February 25th and April 1st, right?\",\n \"paragraph1\": \"\",\n \"callOut\": \"Pan the chart to the right and check the period between May 24th and July 16th!\",\n \"paragraph2\": \"The market is clearly moving sideways in a narrowing range, and the indicator switches back and forth between Up and Down directions erratically. \",\n \"note\": \"\",\n \"tip\": \"This is not the ultimate solution to determine the trend!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}\n","project":"Superalgos","id":"cdab5660-d883-4f44-9641-32ee40db029a","savedPayload":{"position":{"x":31491.617603339917,"y":44871.69856085123},"targetPosition":{"x":31134.057647468726,"y":44598.475432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"An extra dimension","config":"{\n \"subTitle\": \"An Extra Dimension!\",\n \"gif\": \"\",\n \"image\": \"layer-trends\",\n \"definition\": \"Let's try an indicator that brings an additional dimension to the information we are getting from this one!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Turn off the Bollinger Channels Objects layer! Now turn on the Bollinger SubChannels Objects layer!\",\n \"paragraph2\": \"There's still a lot of back and forth with the Up and Down directions... but!\",\n \"note\": \"\",\n \"tip\": \"Slide the mouse pointer over the chart and look at the Slope property in the plotter panel of the indicator! Switch it on in case it's off!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}\n","project":"Superalgos","id":"f6dcd56e-2117-459b-a601-6c969c593f34","savedPayload":{"position":{"x":31415.840986360967,"y":44949.328891661266},"targetPosition":{"x":31134.057647468726,"y":44598.475432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Bollinger Subchannels","config":"{\n \"subTitle\": \"Bollinger Subchannels\",\n \"gif\": \"\",\n \"image\": \"layer-trends\",\n \"definition\": \"The slope provides an indication of how steep the MA curve is... that is, how pronounced is the decline or ascent of the MA!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Read the description of the indicator in the documentation. Then scroll down and get to the Bollinger SubChannels Products & Properties section.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"The kind of information you find on this page is available for every indicator shipping with the system.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"https://docs.superalgos.org/community-indicator-bollinger-channels.html#bollinger-sub-channels\"\n}\n","project":"Superalgos","id":"66a4691d-5183-40ef-9746-83886b1e77bc","savedPayload":{"position":{"x":31323.688145966364,"y":45006.568894715565},"targetPosition":{"x":31134.057647468726,"y":44598.475432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Products & Properties","config":"{\n \"subTitle\": \"Products & Properties\",\n \"gif\": \"\",\n \"image\": \"record-property\",\n \"definition\": \"This section of the documentation of each indicator features the information you need to use the indicator in conditions and formulas!\",\n \"bulletListIntro\": \"The bollingerSubChannel product features three different properties:\",\n \"bulletArray\": [\n [\n \"direction:\",\n \"Up, Down\"\n ],\n [\n \"period:\",\n \"1 to n.\"\n ],\n [\n \"slope:\",\n \"Side, Gentle, Medium, Steep, Extreme.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"Read this section carefully so that we can go back to the charts and decide how we are going to use the slope property!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"https://docs.superalgos.org/community-indicator-bollinger-channels.html#bollinger-subchannels\"\n}","project":"Superalgos","id":"207a547f-6849-4535-9e87-afdf0f24b2c1","savedPayload":{"position":{"x":31220.514670277895,"y":45040.091989095556},"targetPosition":{"x":31134.057647468726,"y":44598.475432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Let's check those slopes","config":"{\n \"subTitle\": \"Let's Check Those Slopes\",\n \"gif\": \"\",\n \"image\": \"layer-trends\",\n \"definition\": \"We will use the slope property of the Bollinger Subchannels indicator to confirm that a trend is a trend!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Slide the pointer of the mouse over different subchannels and notice their reported slope in the plotter panel.\",\n \"paragraph2\": \"Notice that when the market is trending, the subchannel slope is almost never Side. And that's to be expected, as the Side slope represents the shallower slope possible in the MA. On the other hand, the periods on which the market is ranging, although the direction may go back and forth between Up and Down, the slope is mostly Side.\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}\n","project":"Superalgos","id":"12305e0a-0d43-42af-9580-862cf820f1ba","savedPayload":{"position":{"x":31112.316626682248,"y":45047.94993440736},"targetPosition":{"x":31134.057647468726,"y":44598.475432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"We have our conditions!","config":"{\n \"subTitle\": \"We Have Our Conditions!\",\n \"gif\": \"\",\n \"image\": \"condition\",\n \"definition\": \"It seems like we have finally come up with a way to define a downtrend... let's set it up as two conditions!\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": [\n [\n \"Condition 1:\",\n \"The direction property of the bollingerSubChannel product is Down in the 24H chart. Put in proper syntax:

chart.at24hs.bollingerSubChannel.direction === 'Down'

\"\n ],\n [\n \"Condition 2:\",\n \"The slope property of the bollingerSubChannel product is not Side in the 24H chart. Put in proper syntax:

chart.at24hs.bollingerSubChannel.slope != 'Side'\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"79748a52-ebfd-4b64-87f5-4a9ba3224acb","savedPayload":{"position":{"x":31005.382092189317,"y":45029.68605543194},"targetPosition":{"x":31134.057647468726,"y":44598.475432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Set Up the First Condition!","config":"{\n \"subTitle\": \"Set Up the First Condition!\",\n \"gif\": \"\",\n \"image\": \"javascript-code\",\n \"definition\": \"I brought you to the definition of the ->Trigger On Event-> so that you may set up the first condition!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Paste the condition on the ->Javascript Code-> node!\",\n \"paragraph2\": \"Follow the structure of nodes under the ->Situation-> and get to the ->Javascript Code-> node under the ->Condition-> node. Click Edit on the menu, select and delete the placeholder text, and paste the below condition:

chart.at24hs.bollingerSubChannel.direction === 'Down'

Label the condition node 24H Down to have a quick reference of what the condition is about.\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"b297a2a4-f5b7-4c5f-ab09-f9383a423500","savedPayload":{"position":{"x":30905.92571325261,"y":44986.36178242884},"targetPosition":{"x":31134.057647468726,"y":44598.475432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Situation","name":"New Situation","id":"8c7701f2-de6f-4875-b999-870ffaa84edf"}}},{"type":"Tutorial Step","name":"Second Condition!","config":"{\n \"subTitle\": \"Now the Second Condition!\",\n \"gif\": \"\",\n \"image\": \"javascript-code\",\n \"definition\": \"Select Add Condition on the situation's menu and paste the code in the ->Javascript Code-> node!\",\n \"paragraph1\": \"chart.at24hs.bollingerSubChannel.slope != 'Side'\",\n \"callOut\": \"Label the condition node 24H Not Side and label the situation as Downtrend to keep things tidy!\",\n \"paragraph2\": \"\",\n \"note\": \"We could have chosen to write the two conditions in one by using the && operator. After all, we want the ->Trigger On Event-> to validate true when both conditions are true, right? I'll tell you why that is not a good idea in the next step!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"c092e9e3-d402-477a-8d33-3f29dcf5756a","savedPayload":{"position":{"x":30819.727533106703,"y":44920.49496466767},"targetPosition":{"x":31134.057647468726,"y":44598.475432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Situation","name":"New Situation","id":"8c7701f2-de6f-4875-b999-870ffaa84edf"}}},{"type":"Tutorial Step","name":"Never Forget Granularity!!","config":"{\n \"subTitle\": \"Never Forget Granularity!\",\n \"gif\": \"\",\n \"image\": \"situation\",\n \"definition\": \"Superalgos strives to keep things simple, and so should you, as it is the best way to handle mounting complexity!\",\n \"bulletListIntro\": \"Conditions should be as granular as possible because:\",\n \"bulletArray\": [\n [\n \"It makes it easier to debug the syntax:\",\n \"when you pile up logic in a single condition, it's hard to find bugs you may have introduced.\"\n ],\n [\n \"It makes it easier to debug the strategy:\",\n \"if you keep logic segregated in different conditions, you will then be able to see precisely what part of the logic validates true or false.\"\n ],\n [\n \"It makes the strategy easier to maintain and upgrade:\",\n \"granular conditions make everything easier to undertand and follow.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"442cdc18-86f6-415b-82ec-42a368dd63b0","savedPayload":{"position":{"x":30751.797076664043,"y":44835.91354218058},"targetPosition":{"x":31134.057647468726,"y":44598.475432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"3ce8ac42-40ff-4212-a980-119d5b59fa9e","savedPayload":{"position":{"x":31134.057647468726,"y":44598.475432332816},"targetPosition":{"x":30995,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Trigger Off Event","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Trigger Off Event","config":"{\n \"subTitle\": \"Trigger Off Event\",\n \"gif\": \"\",\n \"image\": \"trigger-off-event\",\n \"definition\": \"Now that we have defined when the strategy should be triggered on, let's consider when the idea should be invalidated.\",\n \"bulletListIntro\": \"Well... this is a bit of a no-brainer right? We don't want to trade with this strategy when there is no downtrend. So, we'll reverse the logic of the trigger on event!\",\n \"bulletArray\": [\n [\n \"Condition 1:\",\n \"chart.at24hs.bollingerSubChannel.direction === 'Up'\"\n ],\n [\n \"Condition 2:\",\n \"chart.at24hs.bollingerSubChannel.slope === 'Side'\"\n ]\n ],\n \"paragraph1\": \"We should trigger off the stategy when either of these conditions validate true. How?\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"b944a859-f3e0-4592-84eb-b694b6132fc8","savedPayload":{"position":{"x":31078.63047737526,"y":44698.522053201035},"targetPosition":{"x":30902.294901687517,"y":44455.81695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"The Workings of Situations","config":"{\n \"subTitle\": \"The Workings of Situations\",\n \"gif\": \"\",\n \"image\": \"situation\",\n \"definition\": \"This is a key concept that you must understand so that you may organize logic in the proper manner!\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": [\n [\n \"A situation validates true when all conditions within validate true.\",\n \"Think of this as if conditions within a situation were bound by the && (and) operator. If all of them are true at the same time, then the situation is true as well.\"\n ],\n [\n \"An event validates true when either of the situations within validates true.\",\n \"It is as if situations within an event were bound by the || (or) operator! If any of the situations is true at a certain point in time, then the event is triggered!\"\n ]\n ],\n \"paragraph1\": \"Can you figure out how to set up this definition?\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"7f860e7c-adcb-4009-b633-77596a0485fe","savedPayload":{"position":{"x":30902.294901687517,"y":44755.81695488855},"targetPosition":{"x":30902.294901687517,"y":44455.81695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Separate Situations","config":"{\n \"subTitle\": \"Separate Situations!\",\n \"gif\": \"\",\n \"image\": \"situation\",\n \"definition\": \"Think of it in this way: we have identified two different market situations that would invalidate this idea!\",\n \"paragraph1\": \"We will set up each of the conditions in separate situations!\",\n \"callOut\": \"Set up the first condition in the existing situation, and the second condition in a new situation!\",\n \"paragraph2\": \"Condition 1:
chart.at24hs.bollingerSubChannel.direction === 'Up'
Condition 2:
chart.at24hs.bollingerSubChannel.slope === 'Side'\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"9e6536bd-bec8-4f0c-83ac-2cbe0702699e","savedPayload":{"position":{"x":30725.959325999775,"y":44698.522053201035},"targetPosition":{"x":30902.294901687517,"y":44455.81695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Situation","name":"New Situation","id":"407c539f-6072-4df4-a17f-e22448518709"}}},{"type":"Tutorial Step","name":"Keep the Definitions Tidy!","config":"{\n \"subTitle\": \"Keep the Definitions Tidy!\",\n \"gif\": \"\",\n \"image\": \"situation-name\",\n \"definition\": \"Try to keep up with the good practice of giving relevant names or labels to the nodes holding definitions!\",\n \"paragraph1\": \"Consider that the strategy will grow in complexity as we advance! It's good to be able to identify conditions and situations without checking the code!\",\n \"callOut\": \" You'll also be able to identify which situation triggered the event directly from the charts!\",\n \"paragraph2\": \"\",\n \"note\": \"You may label the first situation and the first condition with the same name, 24H Up, and the second with the following: 24H Side.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"f7d3e5cc-a2c9-403c-9473-7c84e02d7c0c","savedPayload":{"position":{"x":30616.977946798972,"y":44548.522053201035},"targetPosition":{"x":30902.294901687517,"y":44455.81695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"7997c970-8efb-425f-a445-f514f9f12f51","savedPayload":{"position":{"x":30902.294901687517,"y":44455.81695488855},"targetPosition":{"x":30995,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"First Backtest","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"First Backtest","config":"{\n \"subTitle\": \"First Backtest!\",\n \"gif\": \"\",\n \"image\": \"backtesting-session\",\n \"definition\": \"Now that we have these basic definitions in place, we may do a first backtest.\",\n \"paragraph1\": \"We are not ready to the test the idea as we've only defined the trigger on and trigger off events. We just want to make sure we got the definitions right.\",\n \"callOut\": \"Although the strategy will eventually include logic relating to the 1H chart, the current definitions involve the 24H chart only.\",\n \"paragraph2\": \"We are going to run a backtesting session between January 1st and October 1st, 2020, on the 24H time frame. Take a look at the ->Time Range-> and ->Time Frame-> parameters and make sure they match the above!\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"0fccff0e-b3fa-4abd-8dc1-6086cf26ee25","savedPayload":{"position":{"x":30770,"y":44862.97879586443},"targetPosition":{"x":30630.942352531274,"y":44435.003363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Parameters","name":"New Trading Parameters","id":"7c6c0f4a-266b-49ce-8a85-619a55b5422c"}}},{"type":"Tutorial Step","name":"About Backtesting","config":"{\n \"subTitle\": \"A Bit About Backtesting!\",\n \"gif\": \"\",\n \"image\": \"backtesting-session\",\n \"definition\": \"Before we get to run this first backtest, I need to acknowledge something of great importance!\",\n \"paragraph1\": \"Backtesting is a science in and of itself! There are entire books written on backtesting alone. It is a deep and complex subject mainly because humans designing and testing strategies are prone to introducing biases that may lead to overfitting, that is, adjusting the rules of the trading system to fit the data set in the quest to get good backtesting results. Superalgos offers tools to flexibly handle the data set to avoid spoiling it, like the time range parameter that allows splitting the data set as required, or setting up and running multiple sessions in parallel. That said, we are not going to cover the topic in this tutorial! The current focus is on creating the definitions of a trading idea, not backtesting per se.\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"237739cf-cfff-4267-90f5-eb58f82ee68c","savedPayload":{"position":{"x":30630.942352531274,"y":44885.003363531614},"targetPosition":{"x":30630.942352531274,"y":44435.003363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Ready. Set. Go!","config":"{\n \"subTitle\": \"Let's Do This!\",\n \"gif\": \"\",\n \"image\": \"task\",\n \"definition\": \"This is going to be quick as we are testing a few months on the 24H time frame.\",\n \"paragraph1\": \"Remember that running a trading task is similar to running a data task. The difference is that after running the task you also need to run the trading session.\",\n \"callOut\": \"Select Run on the ->Task-> menu and then select Run on the ->Backtesting Session-> menu.\",\n \"paragraph2\": \"\",\n \"note\": \"When the progress notice of the ->Trading Process Instance-> get's to the 100% mark, stop the task and click Next.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"a4fefe8e-1f1c-420c-9509-babf544f0cc0","savedPayload":{"position":{"x":30491.884705062548,"y":44862.97879586443},"targetPosition":{"x":30630.942352531274,"y":44435.003363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Task","name":"BB Breakdown","id":"9ebfff72-a410-43f1-92e8-5eaca032bd2c"}}},{"type":"Tutorial Step","name":"Let's see what we've got","config":"{\n \"subTitle\": \"Let's See What We've Got!\",\n \"gif\": \"\",\n \"image\": \"trigger-stage\",\n \"definition\": \"We are going to go through the simulation and see if the definition we came up with has the expected results!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Go to the Simulation Objects layer manager and turn on the Strategies and Trigger Stages layers.\",\n \"paragraph2\": \"\",\n \"note\": \"Do you see the two instances of strategies triggered between February 26th and April 2nd? Now, pan the charts to the right... You should see another two triggered between September 3rd - 23rd! The following step features a video of what you should see on the screen, just to make sure we're on the same page!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-01-07T02:53:26.819Z\",\n \"toDate\": \"2020-05-15T07:57:59.035Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 1833.616800519183,\n \"maxValue\": 12890.473342648293\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"24-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"a93abd07-805d-40c6-8e7b-5aac43da7696","savedPayload":{"position":{"x":30366.43898899966,"y":44799.06101100034},"targetPosition":{"x":30630.942352531274,"y":44435.003363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"trading-systems-trigger-stage-test\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\"\n}","project":"Superalgos","id":"1e6025b6-7313-4ef6-a0bb-bb4432fb6ba2","savedPayload":{"position":{"x":30266.884705062548,"y":44699.50672706323},"targetPosition":{"x":30630.942352531274,"y":44435.003363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Can't See What Was Expected?","config":"{\n \"subTitle\": \"Can't See What's Expected?\",\n \"gif\": \"\",\n \"image\": \"bullet-error\",\n \"definition\": \"If you can't see what I showed in the video, chances are you skipped one or more of my previous instructions!\",\n \"bulletListIntro\": \"I will cover some troubleshooting tactics later on, but for the time being, the solution is to go back in the tutorial and make sure you did everything I told you to do!\",\n \"bulletArray\": [\n [\n \"Did you turn on the right layers?\",\n \"\"\n ],\n [\n \"Did you run the backtest?\",\n \"\"\n ],\n [\n \"Did you set up the definitions as instructed?\",\n \"\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Go backwards in the tutorial, step by step, and make sure you didn't skip any steps!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"9e75924c-3a5d-4d3b-8805-566fc161157d","savedPayload":{"position":{"x":30202.966920198454,"y":44574.06101100034},"targetPosition":{"x":30630.942352531274,"y":44435.003363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Visual Verification","config":"{ \n \"subTitle\": \"Visual Verification\",\n \"gif\": \"\",\n \"image\": \"bot-data-dependencies\",\n \"definition\": \"Let's do a quick visual check on the simulation to understand if the strategy was triggered on and off as expected!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Make sure the Bollinger SubChannels Object layer is on along with the layer's panel!\",\n \"paragraph2\": \"Place the mouse pointer on the Feb 25th candle. This is the first candle that closed with the MA going down. You can tell by the red color of the subchannel, and also looking at the direction property in the panel. However, the slope on this candle is Side, and that is the reason why the strategy wasn't triggered on the 25th. Remember, the conditions are that the direction should be Down and the slope should be different than Side.\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n }","project":"Superalgos","id":"4647fbcc-f59b-49b4-b9a7-82dfb62d0025","savedPayload":{"position":{"x":30180.942352531274,"y":44435.003363531614},"targetPosition":{"x":30630.942352531274,"y":44435.003363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Look at the 26th!","config":"{ \n \"subTitle\": \"Look at the 26th!\",\n \"gif\": \"\",\n \"image\": \"bot-data-dependencies\",\n \"definition\": \"Let's shift the mouse pointer to the next candle, on February 26th!\",\n \"paragraph1\": \"\",\n \"callOut\": \"On the 26th the direction is Down and the slope is Gentle. Both conditions are met, so the strategy is triggered as soon as the candle closes.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"Remember, each candle is evaluated only after it has closed! Every property of every product of every indicator refers to closed candles! This is crucial information, in particular when you are working with multiple time frames. I'll expand on this later on, but keep it in mind at all times!\",\n \"warning\": \"\", \n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"75f1f3c3-d398-4f40-8980-2cb18d2f0b6c","savedPayload":{"position":{"x":30202.966920198454,"y":44295.94571606289},"targetPosition":{"x":30630.942352531274,"y":44435.003363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Keep Looking!","config":"{ \n \"subTitle\": \"Keep Looking!\",\n \"gif\": \"\",\n \"image\": \"bot-data-dependencies\",\n \"definition\": \"This visual check helps you mentally connect the dots of what you see on a simulation with the definitions you produce!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Take a few more minutes to explore the trigger off event of the strategy, as well as the rest of the triggers ocurring over the period tested.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Take a moment to internalize the fact that events are triggered only once all the conditions in a given situation are met, and that conditions are evaluated over closed candles only!\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n }","project":"Superalgos","id":"563cfef0-bb23-40e8-ab4d-3aa537527496","savedPayload":{"position":{"x":30266.884705062548,"y":44170.5},"targetPosition":{"x":30630.942352531274,"y":44435.003363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"5f6200c9-6c71-4d2d-996f-6aa3bdc52850","savedPayload":{"position":{"x":30630.942352531274,"y":44435.003363531614},"targetPosition":{"x":30995,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Troubleshooting","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Right\",\n \"slider\": \"\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Troubleshooting 101","config":"{\n \"subTitle\": \"Troubleshooting 101\",\n \"gif\": \"\",\n \"image\": \"bullet-error\",\n \"definition\": \"Whenever you are working on and testing definitions in a trading system, you should be in troubleshooting mode!\",\n \"paragraph1\": \"There are so many things involved in running a trading session that errors may occur for a wide assortment of reasons. The trading bot evaluates the definitions in the trading system and applies them by evaluating the data sets referenced in the definitions. \",\n \"callOut\": \"Errors in the data or the definitions are common.\",\n \"paragraph2\": \"It's not likely that a data set is calculated with errors. However, if you haven't calculated the data set by running the corresponding data task, you will get errors!\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"93a8c2c5-a654-435d-99af-6791ba33a3b9","savedPayload":{"position":{"x":30405.942352531274,"y":44598.475432332816},"targetPosition":{"x":30545,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"3. Testing a Trading Idea - The Trigger Stage","id":"8837ff70-a40f-444c-b8f9-272d1642eece"}}},{"type":"Tutorial Step","name":"Let's hunt for errors!","config":"{\n \"subTitle\": \"Let's Hunt For Errors!\",\n \"gif\": \"\",\n \"image\": \"bullet-error\",\n \"definition\": \"Even when you are getting the results you expect, you may still have errors lurking around!\",\n \"paragraph1\": \"Some errors may be innocuous, and some may have hard-to-notice consequences.\",\n \"callOut\": \"Go to the Trading System layer manager and turn on the Trading System Errors layer!\",\n \"paragraph2\": \"Pan the charts to the left until you get to the first days of January. Do you see the error bullets at the bottom?\",\n \"note\": \"Feel free to turn off some layers if needed.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"944c7392-8076-4281-a296-d18086ee5bba","savedPayload":{"position":{"x":30280.496636468386,"y":44534.557647468726},"targetPosition":{"x":30545,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Errors & Time","config":"{\n \"subTitle\": \"Errors & Time\",\n \"gif\": \"\",\n \"image\": \"bullet-error\",\n \"definition\": \"Errors are always tied to a specific point in time, that is, to a specific candle!\",\n \"paragraph1\": \"When the ->Trading Bot-> runs a trading session, it applies the definitions in the trading system candle by candle, one at a time. The bot doesn't know what lies ahead... it only knows the current candle, that is, the candle that is being evaluated.\",\n \"callOut\": \"When an error occurs, it is handled by the trading bot, and the error is saved with the timestamp of the candle where it happened. This is how you get to know exactly what errors happened when.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2019-12-12T01:58:31.663Z\",\n \"toDate\": \"2020-02-13T14:12:58.135Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 1698.3271209158247,\n \"maxValue\": 12755.183663044934\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"24-hs\"\n }\n }\n ]\n}\n","project":"Superalgos","id":"035d235c-51a1-4aec-92b3-6b226fdfc919","savedPayload":{"position":{"x":30180.942352531274,"y":44435.003363531614},"targetPosition":{"x":30545,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"Errors & Trading System Nodes","config":"{\n \"subTitle\": \"Errors & Nodes\",\n \"gif\": \"\",\n \"image\": \"bullet-error\",\n \"definition\": \"When errors happen due to definitions in the trading system, that is where you will find the corresponding error messages!\",\n \"paragraph1\": \"The Trading System Errors layer interacts with the design space so that you may track and find error messages. Messages are tied to the node responsible for producing the error!\",\n \"callOut\": \"Place the mouse pointer over one of the error bullets in the charting space and use the design space map to find the source of the red circle.\",\n \"paragraph2\": \"\",\n \"note\": \"The video next shows what I found!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2019-12-12T01:58:31.663Z\",\n \"toDate\": \"2020-02-13T14:12:58.135Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": -269.5227642239497,\n \"maxValue\": 10787.33377790516\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"24-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"5ed69b67-cfbd-4ffe-af7e-703b0c1ffde6","savedPayload":{"position":{"x":30117.02456766718,"y":44309.557647468726},"targetPosition":{"x":30545,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"trading-systems-tracking-errors\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"d16c61e4-cf0c-48b9-a7c3-1af015e0fd76","savedPayload":{"position":{"x":30095,"y":44170.5},"targetPosition":{"x":30545,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Condition","name":"New Condition","id":"ce77acd7-8c75-4fa3-ba25-349b1bf81445"}}},{"type":"Tutorial Step","name":"Deciphering error messages","config":"{\n \"subTitle\": \"Deciphering Errors\",\n \"gif\": \"\",\n \"image\": \"bullet-error\",\n \"definition\": \"Can not read property 'direction' of undefined. What is that all about?\",\n \"bulletListIntro\": \"This is the proper procedure to unpack an error message and understand what it is about:\",\n \"bulletArray\": [\n [\n \"You know when the error happened.\",\n \"Keep that in mind, as the error is solely related to the candle where it happened!\"\n ],\n [\n \"You know which node caused the error.\",\n \"It is likely the definition in the node that caused the error, either due to the code in the associated Javascript Node (if it's a condition), the formula (if it's a ->Formula-> node), or the node's configuration.\"\n ],\n [\n \"You know the error message.\",\n \"Read it carefully and make the connection with the two previous clues!\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"9c08e69d-883a-48b7-9085-6df716a2d8e3","savedPayload":{"position":{"x":30117.02456766718,"y":44031.442352531274},"targetPosition":{"x":30545,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Let's unpack the error","config":"{\n \"subTitle\": \"Let's Unpack This Error\",\n \"gif\": \"\",\n \"image\": \"bullet-error\",\n \"definition\": \"The error is associated with one of our conditions, so we must check the Javascript Code we used!\",\n \"paragraph1\": \"This is the code in our condition:
chart.at24hs.bollingerSubChannel.direction === 'Down'\",\n \"callOut\": \"The error says that the direction property of an object that is 'undefined' cannot be read. \",\n \"paragraph2\": \"The object the error refers to is the bollingerSubChannel product. That object is 'undefined'. Why? There is one last piece to fit in the puzzle: the error happens at the beginning of the data set. Do you see the problem?\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"2a146203-e297-4e2a-b573-c6c4409a083d","savedPayload":{"position":{"x":30180.942352531274,"y":43905.996636468386},"targetPosition":{"x":30545,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Counting Candles","config":"{\n \"subTitle\": \"Counting Candles!\",\n \"gif\": \"\",\n \"image\": \"layer-candles\",\n \"definition\": \"Take a good look at the first few candles in the data set. Do you see anything unusual?\",\n \"paragraph1\": \"\",\n \"callOut\": \"The Bollinger SubChannels does not exist for the first 19 candles! Hence, the object is undefined!\",\n \"paragraph2\": \"The indicator derives from the Bollinger Bands, and the bands require at least 20 periods of historic data to be calculated. That is why it's undefined for 19 candles.\",\n \"note\": \"\",\n \"tip\": \"If we want to test a certain time range, we must make sure that all indicators we use in our trading system are calculated for the full range!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"84e552c1-eddf-45d5-a27b-740fe0ed05bf","savedPayload":{"position":{"x":30280.496636468386,"y":43806.442352531274},"targetPosition":{"x":30545,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Lesson Learned","config":"{\n \"subTitle\": \"Lesson Learned?\",\n \"gif\": \"\",\n \"image\": \"learning-bot\",\n \"definition\": \"At this moment, the error doesn't affect us, because the first 19 days of the data set correspond to an uptrend! However, ...\",\n \"paragraph1\": \"... it would affect us if we were working with uptrends!\",\n \"callOut\": \"The troubleshooting process we just went through may come naturally to you if you are a developer. If you are not, you must become familiar with it, because you will certainly need to use it.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Trading automation requires many pieces of information to fit together like in a Swiss watch. You will make errors building strats. Deal with 'em!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"0bea90df-c3db-4a85-96c5-e15b256dd448","savedPayload":{"position":{"x":30405.942352531274,"y":43742.524567667184},"targetPosition":{"x":30545,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Condition","name":"New Condition","id":"ce77acd7-8c75-4fa3-ba25-349b1bf81445"}}}],"tutorialTopics":[],"id":"6a0017ea-05d3-430f-85b0-e74c5d67ad80","savedPayload":{"position":{"x":30545,"y":44170.5},"targetPosition":{"x":30995,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Highlights & Values","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Right\",\n \"slider\": \"\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Highlights & Values","config":"{\n \"subTitle\": \"Highlights and Values\",\n \"gif\": \"\",\n \"image\": \"nodes-highlights\",\n \"definition\": \"Let's move on to a brighter topic! I'll show you how to verify the validation of conditions with the highlights and values layers.\",\n \"paragraph1\": \"Go to the Trading System layer manager and turn on the Trading System Highlights and the Trading System Values layers... \",\n \"callOut\": \"Now slide the mouse pointer over the candle where the strategy is triggered on!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Use this resource when things are not going as you'd expect! This is how you find out why an event is not triggering when you think it should!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-01-18T06:43:46.498Z\",\n \"toDate\": \"2020-05-07T00:37:02.961Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": -6118.370128536157,\n \"maxValue\": 12223.62805207098\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"24-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"376014f7-32c5-4a00-97f7-254e9e54dffa","savedPayload":{"position":{"x":30488.116242130494,"y":44136.32502305416},"targetPosition":{"x":30752.294901687517,"y":43994.16442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"A not on event's evaluation","config":"{\n \"subTitle\": \"A Note on Event-Evaluation\",\n \"gif\": \"\",\n \"image\": \"nodes-highlights\",\n \"definition\": \"Did you notice that once the trigger stage is active, the conditions of the trigger on event are no longer evaluated?\",\n \"paragraph1\": \"The opposite goes for the trigger off event conditions: they are not evaluated before the stage is active. See for yourself!\",\n \"callOut\": \"The trading bot follows the protocol that governs trading systems and only evaluates the events that are required at any moment in time! \",\n \"paragraph2\": \"It's logical, right? The bot aims to be as efficient as possible and does only what needs to be done!\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"5ad96e8c-e001-4089-b322-edaca2f56e72","savedPayload":{"position":{"x":30452.596981725124,"y":44007.62387341741},"targetPosition":{"x":30752.294901687517,"y":43994.16442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Land of Confusion","config":"{\n \"subTitle\": \"The Land of Confusion\",\n \"gif\": \"\",\n \"image\": \"nodes-highlights\",\n \"definition\": \"Indeed, it is logical that the trading bot evaluates only the definitions that make sense evaluating at any point in time!\",\n \"paragraph1\": \"However, this is sometimes a source of confusion! Let's set up a hypothetical scenario!\",\n \"callOut\": \"Turn off the Strategies and the Trigger Stages layers in the Simulation Objects layer manager!\",\n \"paragraph2\": \"Now slide the pointer over the candles around March 1st! Imagine that you are trying to verify your conditions, but for some reason, they show values and highlights for some candles, but not for others! Something is wrong with Superalgos! Not really, right?\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"de24dbf3-425f-41e5-9b7e-1faba46938b1","savedPayload":{"position":{"x":30476.436569922083,"y":43876.256914816084},"targetPosition":{"x":30752.294901687517,"y":43994.16442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Condition","name":"New Condition","id":"ce77acd7-8c75-4fa3-ba25-349b1bf81445"}}},{"type":"Tutorial Step","name":"The Time Frame Mystery","config":"{\n \"subTitle\": \"The Time Frame Mystery\",\n \"gif\": \"\",\n \"image\": \"time-frames-filter\",\n \"definition\": \"Let's pull one more trick! Switch the time frame to 12 hs and slide the pointer over the charts!\",\n \"paragraph1\": \"OMG! I broke Superalgos! Nothing works anymore!\",\n \"callOut\": \"Trading sessions create simulations for the time frame configured in the ->Time Frame-> parameter!\",\n \"paragraph2\": \"If you set your chart to a different time frame, you won't be able to see the simulation! In fact, you may find another simulation that you ran on that time frame at some other point in time! Indeed, Superalgos stores simulations for each time frame separately, even when they originate from the same trading session!\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"09a5d746-1b0c-4039-abc2-b4c49c23aa10","savedPayload":{"position":{"x":30554.913283905604,"y":43768.24298451118},"targetPosition":{"x":30752.294901687517,"y":43994.16442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"What Am I Missing?","config":"{\n \"subTitle\": \"What Am I Missing?\",\n \"gif\": \"\",\n \"image\": \"help\",\n \"definition\": \"That, my friend, is the right question to ask! It's not... What is wrong? But... What am I missing?!\",\n \"paragraph1\": \"As I said earlier, many pieces of information need to fall in the right place for things to make sense in a complex world, and algorithmic trading is complex!\",\n \"callOut\": \"To succeed at building strategies, you must develop the intuition to ask yourself that question whenever things are not going your way!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"But don't be disheartened! I'll show you all the tricks I know so that you master algo-trading!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"642ab886-e0b8-4ca0-9a30-92133077509f","savedPayload":{"position":{"x":30672.483848017513,"y":43704.9755661035},"targetPosition":{"x":30752.294901687517,"y":43994.16442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Free as A Bird","config":"{\n \"subTitle\": \"Free as a Bird\",\n \"gif\": \"\",\n \"image\": \"twitter\",\n \"definition\": \"Superalgos puts little or no constraints on what you may or may not do... You are free and encouraged to innovate!\",\n \"paragraph1\": \"Superalgos is not a little toy to play and build dumb bots with. It's a powerful and flexible arsenal to conquer trading! But flexibility comes at a cost!\",\n \"callOut\": \"Learn to handle the weapon to harness its power!\",\n \"paragraph2\": \"\",\n \"note\": \"Take a minute to reflect on the following: what do you think your odds of success at algorithmic trading would be without such a powerful tool in your hands? It's worth learning it!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"a2322e58-9850-438f-866d-bdb279510a9b","savedPayload":{"position":{"x":30805.86197012711,"y":43698.98554773267},"targetPosition":{"x":30752.294901687517,"y":43994.16442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"f5004448-a134-4d97-94b1-d9c7061839c8","savedPayload":{"position":{"x":30752.294901687517,"y":43994.16442431226},"targetPosition":{"x":30995,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Take Position Event","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Take Position Event","config":"{\n \"subTitle\": \"Take Position Event\",\n \"gif\": \"\",\n \"image\": \"take-position-event\",\n \"definition\": \"Let's move on and start working on the definition of the ->Take Position Event->!\",\n \"paragraph1\": \"A quick refresher about the hypothesis we came up with during the previous tutorial: In the context of a downtrend in the daily chart, a breakdown of the Bollinger Bands in the 1H chart may predict an acceleration of the downtrend. A breakdown means a candle closing below the lower band, so, let's find out how a close of a candle is described in Superalgos.\",\n \"callOut\": \"This is the page documenting the Candles Volumes indicator. Scroll down to the Products & Properties > Candles section and read!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"https://docs.superalgos.org/community-indicator-candles.html\"\n}","project":"Superalgos","id":"4552e5b4-a370-44b1-a186-77b8fcb5a330","savedPayload":{"position":{"x":30405.942352531274,"y":43742.524567667184},"targetPosition":{"x":30855.942352531274,"y":43742.524567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Candle Properties","config":"{\n \"subTitle\": \"Candle Properties\",\n \"gif\": \"\",\n \"image\": \"layer-candles\",\n \"definition\": \"We have direct access to the properties of candles, and the value of the close is available at the close property.\",\n \"bulletListIntro\": \"This makes accessing the close value of the candle quite straightforward:\",\n \"bulletArray\": [\n [\n \"Declare the time frame:\",\n \"
chart.at01hs.\"\n ],\n [\n \"Followed by product and property:\",\n \"
candle.close\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"That was the easy bit! Let's tackle the Bollinger Bands bit!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"https://docs.superalgos.org/community-indicator-candles.html#products--properties\"\n}","project":"Superalgos","id":"10e27ae2-33eb-48dd-b049-ce03213aec7b","savedPayload":{"position":{"x":30427.966920198454,"y":43603.46692019846},"targetPosition":{"x":30855.942352531274,"y":43742.524567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"A close below the bands?","config":"{\n \"subTitle\": \"A Close Below the Bands?\",\n \"gif\": \"\",\n \"image\": \"layer-bands\",\n \"definition\": \"How do we describe a candle closing below the lower band? Let's see how the lower band is described!\",\n \"paragraph1\": \"The description of the Bollinger Bands explains that the upper and lower bands are located two standard deviations above and below the moving average (MA) respectively. We know the MA, as is offered in the movingAverage property. The standard deviation is offered in the standardDeviation property.\",\n \"callOut\": \"The lower band is located two standard deviations below the MA. Then the lower band equals the MA minus the standard deviation times two.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"https://docs.superalgos.org/community-indicator-bollinger-bands.html\"\n}","project":"Superalgos","id":"74ae5aab-fc80-4870-936f-fd372db326c3","savedPayload":{"position":{"x":30491.884705062548,"y":43478.02120413557},"targetPosition":{"x":30855.942352531274,"y":43742.524567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"One More Detail!","config":"{\n \"subTitle\": \"One More Detail!\",\n \"gif\": \"\",\n \"image\": \"layer-bands\",\n \"definition\": \"Look at the BB properties again! Two standard deviations is the deviation property!\",\n \"paragraph1\": \"So, the lower band is the MA minus the deviation!\",\n \"callOut\": \"Can you write the condition with this information? Open a text editor and try it!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"The close of the candle in the 1H chart is lesser than the moving average minus the deviation!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"https://docs.superalgos.org/community-indicator-bollinger-bands.html\"\n}","project":"Superalgos","id":"398887fc-ac12-4f5a-bfc1-7325b3c09741","savedPayload":{"position":{"x":30591.43898899966,"y":43378.46692019846},"targetPosition":{"x":30855.942352531274,"y":43742.524567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Let's break it down!","config":"{\n \"subTitle\": \"Let's Break It Down!\",\n \"gif\": \"\",\n \"image\": \"condition\",\n \"definition\": \"We will go through the statement step and step and put it into proper syntax!\",\n \"bulletArray\": [\n [\n \"Remember, time goes first: in the 1H chart!\",\n \"
chart.at01hs.\"\n ],\n [\n \"The close of the candle:\",\n \"
candle.close\"\n ],\n [\n \"Is lesser than:\",\n \"
<\"\n ],\n [\n \"The moving average minus the deviation, and remember you need to define a time frame for every statement:\",\n \"
chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"https://docs.superalgos.org/community-indicator-bollinger-bands.html\"\n}","project":"Superalgos","id":"337bd881-e4f7-4ed5-8a67-4eb23bcac91d","savedPayload":{"position":{"x":30716.884705062548,"y":43314.54913533437},"targetPosition":{"x":30855.942352531274,"y":43742.524567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Let's Define It!","config":"{\n \"subTitle\": \"Let's Define It!\",\n \"gif\": \"\",\n \"image\": \"javascript-code\",\n \"definition\": \"We are ready to set up the condition under the ->Take Position Event->! Let's do it!\",\n \"paragraph1\": \"The complete statement:
chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation\",\n \"callOut\": \"Copy and paste the statement in the Javascript Code node!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Remember to give the condition a descriptive name, for example, 1H Breakdown.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"c9274f69-b077-4684-847b-139e2f700569","savedPayload":{"position":{"x":30855.942352531274,"y":43292.524567667184},"targetPosition":{"x":30855.942352531274,"y":43742.524567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Javascript Code","name":"New Javascript Code","id":"6a481f5e-92a5-48e7-bb67-819ace78a1d3"}}},{"type":"Tutorial Step","name":"Second Close","config":"{\n \"subTitle\": \"The Second Close\",\n \"gif\": \"\",\n \"image\": \"condition\",\n \"definition\": \"When we came up with the trading idea, we noticed that a single breakdown in the 1H chart would produce bad entries...\",\n \"paragraph1\": \"We decided that a first breakdown would be our signal, and that a second consecutive breakdown would be our confirmation.\",\n \"callOut\": \"Let's refresh the concepts that will help us describe that situation! We are back on the Syntax Overview page. Please, read the section about the Previous Property!\",\n \"paragraph2\": \"Can you write a second condition to finish the definition of the take position event?\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"https://docs.superalgos.org/suite-syntax-overview.html#previous-property\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"28b5d31f-5f63-436a-8586-cd782c73ffec","savedPayload":{"position":{"x":30995,"y":43314.54913533437},"targetPosition":{"x":30855.942352531274,"y":43742.524567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Close of the previous candle","config":"{\n \"subTitle\": \"The Previous Close\",\n \"gif\": \"\",\n \"image\": \"javascript-code\",\n \"definition\": \"Two consecutive closes means that the current and the previous candle close below the lower band!\",\n \"paragraph1\": \"To describe the close of the previous candle, we need to use the previous property to modify each property of each indicator used on both sides of the statement:
chart.at01hs.candle.previous.close < chart.at01hs.bollingerBand.
previous.movingAverage - chart.at01hs.bollingerBand.
previous.deviation
\",\n \"callOut\": \"\",\n \"paragraph2\": \"Create a new condition under the same situation and use the code above! Before you do that, notice that I introduced a couple of breaks in the statements after bollingerBand. just to have them fit the screen. You must remove them so that they don't cause trouble!\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"https://docs.superalgos.org/suite-syntax-overview.html#previous-property\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"2f2a9146-c277-4dcb-937e-86cd3f106ca4","savedPayload":{"position":{"x":31120.445716062888,"y":43378.46692019846},"targetPosition":{"x":30855.942352531274,"y":43742.524567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Situation","name":"New Situation","id":"b28076cb-8cb9-473f-a86d-885400471fb7"}}},{"type":"Tutorial Step","name":"The previous property","config":"{\n \"subTitle\": \"The Previous Property\",\n \"gif\": \"\",\n \"image\": \"record-property\",\n \"definition\": \"I mentioned we would use the previous property to modify each property on both sides of the statement...\",\n \"paragraph1\": \"I just wanted to clarify that such use is not mandatory! You may use the previous property on the statements of your choice. In our case, we need to compare the close of the candle, with the difference of the moving average and the deviation of the same candle! That is why we apply it to all statements!\",\n \"callOut\": \"\",\n \"paragraph2\": \"But you may, for instance, want to compare the close of the current candle to the close of the previous candle! In such a case, you may build a statement as follows:

chart.at01hs.candle.close > chart.at01hs.candle.previous.close\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"66827be1-b3c6-4395-9f14-ec9393578cff","savedPayload":{"position":{"x":31220,"y":43478.02120413557},"targetPosition":{"x":30855.942352531274,"y":43742.524567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"8e18c04c-5f9f-4945-a088-82c1ac3d62fc","savedPayload":{"position":{"x":30855.942352531274,"y":43742.524567667184},"targetPosition":{"x":30995,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Second Backtest","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Second Backtest","config":"{\n \"subTitle\": \"Second Backtest!\",\n \"gif\": \"\",\n \"image\": \"backtesting-session\",\n \"definition\": \"Now that we have implemented statements involving the 1H chart, we need to revise our testing parameters!\",\n \"bulletListIntro\": \"Make the following changes in these parameters:\",\n \"bulletArray\": [\n [\n \"->Time Range->:\",\n \"change the initialDateTime to 2020-02-01, so that we avoid the errors during the first 19 days of January.\"\n ],\n [\n \"->Time Frame->:\",\n \"change the label to 01-hs to adapt to the current definitions.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"We are not addressing the rest of the parameters yet, as we haven't defined the ->Open Stage->, the one dealing with execution.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"5cccebe3-fa27-403d-9da8-1f605b23580e","savedPayload":{"position":{"x":28265,"y":43945.52120413557},"targetPosition":{"x":28629.057647468726,"y":44210.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Parameters","name":"New Trading Parameters","id":"7c6c0f4a-266b-49ce-8a85-619a55b5422c"}}},{"type":"Tutorial Step","name":"Ready. Set. Go!","config":"{\n \"subTitle\": \"Let's Do This!\",\n \"gif\": \"\",\n \"image\": \"task\",\n \"definition\": \"This is going to take a bit longer than the first backtest, as we are now testing on the 1H time frame.\",\n \"paragraph1\": \"\",\n \"callOut\": \"If your trading task is still running, select Run on the ->Backtesting Session-> menu. If not, select Run on the ->Task-> menu first.\",\n \"paragraph2\": \"\",\n \"note\": \"When the progress notice of the ->Trading Process Instance-> get's to the 100% mark, stop the task and click Next.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"570fde1a-0aee-490b-926f-b7efbb5c33e0","savedPayload":{"position":{"x":28364.554283937112,"y":43845.96692019846},"targetPosition":{"x":28629.057647468726,"y":44210.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Task","name":"BB Breakdown","id":"9ebfff72-a410-43f1-92e8-5eaca032bd2c"}}},{"type":"Tutorial Step","name":"Let's Get On The Same Page","config":"{\n \"subTitle\": \"Let's Get On The Same Page\",\n \"gif\": \"\",\n \"image\": \"bot-data-dependencies\",\n \"definition\": \"I just brought you to the one hour chart! Before discussing what we see here, let's take a minute to organize your chart.\",\n \"bulletListIntro\": \"That way I can make sure you see the same things I see!\",\n \"bulletArray\": [\n [\n \"Masters Data Layer Manager:\",\n \"Turn everything off but the Candles and the Bollinger Bands layers.\"\n ],\n [\n \"Simulation Objects Layer Manager:\",\n \"Turn everything off but the Strategies and Trigger Stages layers.\"\n ],\n [\n \"Trading System Layer Manager:\",\n \"Turn everything off but the Trading System Errors, Highlights, and Values layers.\"\n ],\n [\n \"Trading Engine Layer Manager:\",\n \"Turn everything off.\"\n ]\n ],\n \"paragraph1\": \"The next video shows what I see... and what you should!\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-22T09:34:04.884Z\",\n \"toDate\": \"2020-03-04T05:29:24.459Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 5930.4053921082395,\n \"maxValue\": 11147.684874592047\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"3f4766eb-a0f9-4290-ad15-8094e7fa45b3","savedPayload":{"position":{"x":28490,"y":43782.04913533437},"targetPosition":{"x":28629.057647468726,"y":44210.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"trading-systems-second-backtest\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-22T09:34:04.884Z\",\n \"toDate\": \"2020-03-04T05:29:24.459Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 5930.4053921082395,\n \"maxValue\": 11147.684874592047\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"9f507f76-21c2-4ba1-a96f-aeb43d5b4a14","savedPayload":{"position":{"x":28629.057647468726,"y":43760.024567667184},"targetPosition":{"x":28629.057647468726,"y":44210.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"What do we have here","config":"{\n \"subTitle\": \"What Do We Have Here?\",\n \"gif\": \"\",\n \"image\": \"help\",\n \"definition\": \"In our first backtest, the strategy triggered after the daily Feb 26th candle closes. That shouldn't change on this one!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Take a look! The strategy is triggered as soon as the last hourly candle of Feb 26th closes!\",\n \"paragraph2\": \"Of course, the triggering has nothing to do with the hourly candle closing, but with the daily candle (that closes at the same time) validating both trigger on conditions as true. It doesn't matter what chart you are looking at or in what time frame the trading session runs. The trading bot validates each statement on the defined time frame.\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-25T00:31:47.041Z\",\n \"toDate\": \"2020-03-01T08:17:11.926Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7520.980383896502,\n \"maxValue\": 9657.978059921868\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"52e2ae87-94d9-490c-8acb-770bf9c95e0d","savedPayload":{"position":{"x":28768.115294937452,"y":43782.04913533437},"targetPosition":{"x":28629.057647468726,"y":44210.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"Take Position Event","config":"{\n \"subTitle\": \"Take Position Event\",\n \"gif\": \"\",\n \"image\": \"take-position-event\",\n \"definition\": \"Let's do a quick check on the take position event and then address the elephant in the room: we have errors!\",\n \"paragraph1\": \"We mentioned earlier that when either the take position event or the trigger of event validates true, the trigger stage closes. \",\n \"callOut\": \"Well, we can see the ->Trigger Stage-> closing on Feb 28th, at 9 hs... right after two consecutive hourly closes below the lower band! So far so good!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"But we have errors immediately after that! Can you figure out what's going on?\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-26T16:16:31.587Z\",\n \"toDate\": \"2020-03-01T02:02:23.513Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7702.589530112673,\n \"maxValue\": 9412.187670932966\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"5bbc0cbb-aa7c-4f52-9adc-3feb7a05b47f","savedPayload":{"position":{"x":28893.56101100034,"y":43845.96692019846},"targetPosition":{"x":28629.057647468726,"y":44210.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"Find The Error Chanllege","config":"{\n \"subTitle\": \"Find The Error Challenge\",\n \"gif\": \"\",\n \"image\": \"bullet-error\",\n \"definition\": \"Did you find the error? What? You haven't looked? I just split the screen so that you may do your thing!\",\n \"paragraph1\": \"\",\n \"callOut\": \"The Trading System Errors layer is on! Go ahead and track the error on the ->Trading System->!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Remember... You just need to point to the error at the bottom of the chart, find the red circle on the design space, read the error message, and interpret it! Good luck!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-26T16:16:31.587Z\",\n \"toDate\": \"2020-03-01T02:02:23.513Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7398.322897708615,\n \"maxValue\": 9107.921038528908\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"90ba5868-8416-41d4-a338-2a8efdbb31c5","savedPayload":{"position":{"x":28993.115294937452,"y":43945.52120413557},"targetPosition":{"x":28629.057647468726,"y":44210.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"Target Rate Error","config":"{\n \"subTitle\": \"Target Rate Error\",\n \"gif\": \"\",\n \"image\": \"bullet-error\",\n \"definition\": \"Did you find the error? You must have tracked it deep into the ->Open Stage->, on the formula of the ->Target Rate-> definition!\",\n \"paragraph1\": \"Let me explain what this is about.\",\n \"callOut\": \"When the ->Take Position Event-> validates true, the ->Trigger Stage-> is closed, and both the ->Open Stage-> and the ->Manage Stage-> are opened!\",\n \"paragraph2\": \"We are getting an error on the first node of the open stage the trading bot evaluates. That is, if we fix that error, more errors will pop up when the trading bot attempts to evaluate the rest of the nodes that are also undefined.\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"3d793d4a-4206-4392-bdc5-a7bdc687a209","savedPayload":{"position":{"x":29057.033079801546,"y":44070.96692019846},"targetPosition":{"x":28629.057647468726,"y":44210.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Strategy","name":"Downtrends","id":"cb75e487-ba89-4f0a-859a-7b9e820f42b9"}}},{"type":"Tutorial Step","name":"Radical Workaround","config":"{\n \"subTitle\": \"Radical Workaround\",\n \"gif\": \"\",\n \"image\": \"bullet-error\",\n \"definition\": \"The definitions in the open, close, and manage stages are the subject of the next tutorial in the series!\",\n \"paragraph1\": \"To complete the overview of the ->Trigger Stage-> we want to be able to see how the ->Take Position Event-> works on the rest of the time range tested. We are going to go for a radical workaround!\",\n \"callOut\": \"Delete the open, close, and manage stages! Use the Delete button on the menu!\",\n \"paragraph2\": \"This way, when the take position event validates true and the trading bot attempts to read the definitions of the open stage, it will understand that the rest of the strategy is not defined, and will close the strategy.\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"f53b1db6-f4a7-4dd8-87b3-2c5634446760","savedPayload":{"position":{"x":29079.057647468726,"y":44210.024567667184},"targetPosition":{"x":28629.057647468726,"y":44210.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Strategy","name":"Downtrends","id":"cb75e487-ba89-4f0a-859a-7b9e820f42b9"}}}],"tutorialTopics":[],"id":"1158a2f3-168c-4997-a141-2e508bcbf1e7","savedPayload":{"position":{"x":31134.057647468726,"y":43742.524567667184},"targetPosition":{"x":30995,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Third Backtest","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Ready. Set. Go!","config":"{\n \"subTitle\": \"Let's Test Again!\",\n \"gif\": \"\",\n \"image\": \"task\",\n \"definition\": \"After you delete the open, close, and manage stages, you are ready to run a new backtest with the same parameters used earlier.\",\n \"paragraph1\": \"\",\n \"callOut\": \"Let's do it! Run the task and session!\",\n \"paragraph2\": \"\",\n \"note\": \"When you run multiple backtests on the same time frame, the earlier data is replaced. That is, a trading session stores one data set for each time frame. If you want to keep—and be able to access—different versions of the tests you should use different trading sessions, and even better, different trading systems so that you may keep the matching definitions as well!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"1da026f4-9fe9-47fa-88cd-c27a2fe6d4eb","savedPayload":{"position":{"x":31207.835420521784,"y":43482.1666728306},"targetPosition":{"x":31359.057647468726,"y":43905.996636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Task","name":"BB Breakdown","id":"9ebfff72-a410-43f1-92e8-5eaca032bd2c"}}},{"type":"Tutorial Step","name":"Are Errors Gone?","config":"{\n \"subTitle\": \"Are Errors Gone?\",\n \"gif\": \"\",\n \"image\": \"trading-strategy\",\n \"definition\": \"Ok! As expected, we can see that the strategy closes after the trigger stage closes! The video in the next step shows what I see!\",\n \"paragraph1\": \"Let's unpack what happens after the trigger stage closes!\",\n \"callOut\": \"Can you see the strategy triggering five times in a row starting on Feb 28th, at 9 hs?\",\n \"paragraph2\": \"This happens because as soon as the strategy closes, the bot goes back to evaluating the ->Trigger On Event->! That is what it usually does after a position is closed... look for more trading opportunities! This behavior is part of the normal functioning of the system, and a consequence of not defining the open, close, and manage stages.\",\n \"note\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-25T00:31:47.041Z\",\n \"toDate\": \"2020-03-01T08:17:11.926Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7520.980383896502,\n \"maxValue\": 9657.978059921868\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"4271ab5a-cb36-494f-80a7-7ffbf45781ed","savedPayload":{"position":{"x":31333.36768258048,"y":43456.730539701624},"targetPosition":{"x":31359.057647468726,"y":43905.996636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"trading-systems-third-backtest\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-25T00:31:47.041Z\",\n \"toDate\": \"2020-03-01T08:17:11.926Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7520.980383896502,\n \"maxValue\": 9657.978059921868\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"a6ad423b-a20b-489d-aa40-1604a8774bd4","savedPayload":{"position":{"x":31460.98119281032,"y":43467.691273844335},"targetPosition":{"x":31359.057647468726,"y":43905.996636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"Let's Take a Closer Look!","config":"{\n \"subTitle\": \"Let's Take a Closer Look!\",\n \"gif\": \"\",\n \"image\": \"bot-data-dependencies\",\n \"definition\": \"We're going to take a few minutes to unpack everything we see on the chart so that you may fully understand how this works!\",\n \"bulletListIntro\": \"The fact that the strategy is triggering and closing five times in a row in five consecutive candles must mean the following:\",\n \"bulletArray\": [\n [\n \"The ->Trigger On Event-> validates true on each of these candles.\",\n \"\"\n ],\n [\n \"The ->Take Position Event-> also validates true on each of these candles!\",\n \"\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"tip\": \"This also means that the strategy is triggering and taking the position on the same candle! Let's go and verify if all this is true!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-26T08:12:10.084Z\",\n \"toDate\": \"2020-03-01T14:24:29.992Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7442.53664272983,\n \"maxValue\": 9579.534318755197\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"acca862b-e3e9-4a9b-8cac-b0be36758c1d","savedPayload":{"position":{"x":31580.337463559248,"y":43514.16090176449},"targetPosition":{"x":31359.057647468726,"y":43905.996636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"Trigger On Conditions","config":"{\n \"subTitle\": \"Trigger On Conditions!\",\n \"gif\": \"\",\n \"image\": \"bot-data-dependencies\",\n \"definition\": \"Trigger on conditions require the subchannel direction to be Down and the slope to not be Side at the current 24H candle!\",\n \"paragraph1\": \"We are looking at 1H candles between 9 and 14 hs, on Feb 28th. Those are the candles on which the strategy is triggering and taking the position. Check for yourself! \",\n \"callOut\": \"What is the current daily candle? Think of what you learned earlier about evaluating closed candles!\",\n \"paragraph2\": \"The current daily candle is the one that closed last: the Feb 27th candle, because the Feb 28th candle hasn't closed yet! Go to the 24H chart and confirm that the subchannel is Down and not Side on Feb 27th!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"3aef02c1-52ac-4533-91f5-dd2b91cf2c2f","savedPayload":{"position":{"x":31681.76695961026,"y":43592.3747305735},"targetPosition":{"x":31359.057647468726,"y":43905.996636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Take Position Conditions","config":"{\n \"subTitle\": \"Take Position Conditions!\",\n \"gif\": \"\",\n \"image\": \"bot-data-dependencies\",\n \"definition\": \"The take position conditions require that two consecutive 1H candles close below the lower Bollinger Band!\",\n \"paragraph1\": \"That is quite easy to check! We've got the first close of the trigger stage at 9hs, after the 7hs and 8hs candles closed below the lower band. So, far, so good!\",\n \"callOut\": \"We have four more consecutive hourly closes below the lower band! On each of them, the condition of two consecutive closes below the lower band is true! Now that we understand what we see on this chart, let's discuss what this means for our trading idea!\",\n \"paragraph2\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"750ed01f-bdef-4d8f-8951-60e492306406","savedPayload":{"position":{"x":31757.052466417743,"y":43695.996341016835},"targetPosition":{"x":31359.057647468726,"y":43905.996636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"A little speculation game","config":"{\n \"subTitle\": \"A Little Speculation Game\",\n \"gif\": \"\",\n \"image\": \"help\",\n \"definition\": \"Let's do a quick mental exercise! Consider the point of the first take position event, that is, the 8hs candle, closing at 9 hs.\",\n \"paragraph1\": \"Discard the chain of strategies that follow, as those are a by-product of not defining the rest of the stages!\",\n \"callOut\": \"Go to the Masters Data layer panel and turn on the plotter panel of the Candles layer in case it isn't!\",\n \"paragraph2\": \"Now place the pointer of the mouse on the 8hs candle. As you can see on the panel, that candle closed at 8702 USDT. That would be our take position rate, give or take slippage. Now go to the 12hs candle. The min value for that candle is 8445 USDT. After that short-term low, the market goes in an uptrend (in the 1H time frame).\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"5bec89ea-a05c-47af-b720-7c03de6fc61b","savedPayload":{"position":{"x":31800.0947999603,"y":43816.6309264778},"targetPosition":{"x":31359.057647468726,"y":43905.996636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"trading-systems-candles-panel\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\"\n}","project":"Superalgos","id":"ba79e93f-8d17-4081-a778-f11da2ded898","savedPayload":{"position":{"x":31807.406926356936,"y":43944.50539028386},"targetPosition":{"x":31359.057647468726,"y":43905.996636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Not so great right?","config":"{\n \"subTitle\": \"Not So Great Right?\",\n \"gif\": \"\",\n \"image\": \"hit-fail\",\n \"definition\": \"That first entry doesn't look great if you ask me! Let's carry on with the same speculation game on the second potential entry!\",\n \"paragraph1\": \"This is the next instance of the trigger stage after the time range we analyzed earlier.\",\n \"callOut\": \"Looks a lot more promising, right? It's the prelude to the March 12th crash, and there are good entries ahead of it!\",\n \"paragraph2\": \"The first is at the close of the 15hs candle on March 8th. The second, at the close of the 8hs candle on March 12th. This is exactly what we were expecting from the analysis we did in the second tutorial.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-03-03T22:49:58.065Z\",\n \"toDate\": \"2020-03-17T15:15:11.639Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 3407.7807082413956,\n \"maxValue\": 10182.424596999368\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"7360afc7-bfd6-41fc-a2a9-e009dffcd8f8","savedPayload":{"position":{"x":31778.39646061388,"y":44069.26010387617},"targetPosition":{"x":31359.057647468726,"y":43905.996636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"Trigger Stage","config":"{\n \"subTitle\": \"Let's Wrap It Up!\",\n \"gif\": \"\",\n \"image\": \"trigger-stage\",\n \"definition\": \"We've covered the basics and many of the nuances of the ->Trigger Stage->, but the trading idea is not tested yet!\",\n \"paragraph1\": \"This little speculation game we just played is just that... a game! To complete the test of the trading idea, we'll have to dive deep into the rest of the stages!\",\n \"callOut\": \"And that is the subject of the next tutorial!\",\n \"paragraph2\": \"\",\n \"tip\": \"If you are ready to keep going, click Next to close this tutorial and select Play on the one to the right!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"8a216a0e-a8e6-47ce-bbac-74c5d59c826f","savedPayload":{"position":{"x":31715.41365813375,"y":44180.788182304335},"targetPosition":{"x":31359.057647468726,"y":43905.996636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"4. Testing a Trading Idea - The Other Stages","id":"56a4f43f-c512-42a5-9c31-a2b590b689ef"}}}],"tutorialTopics":[],"id":"d3548344-3a79-4a16-abeb-589e373199b8","savedPayload":{"position":{"x":31359.057647468726,"y":43905.996636468386},"targetPosition":{"x":30995,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"8837ff70-a40f-444c-b8f9-272d1642eece","savedPayload":{"position":{"x":30995,"y":44170.5},"targetPosition":{"x":30995,"y":44170.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"}}},{"type":"Trading System","name":"BB Breakdown","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","tradingStrategies":[{"type":"Trading Strategy","name":"Downtrends","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type your code","project":"Superalgos","id":"49f9e01b-b76d-43b4-b05a-8ed05a82c9d9","savedPayload":{"position":{"x":37724.61421763948,"y":29567.818892973355},"targetPosition":{"x":37771.544557151545,"y":29864.125395151896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ce77acd7-8c75-4fa3-ba25-349b1bf81445","savedPayload":{"position":{"x":37771.544557151545,"y":29864.125395151896},"targetPosition":{"x":37818.47489666361,"y":30160.431897330436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8c7701f2-de6f-4875-b999-870ffaa84edf","savedPayload":{"position":{"x":37818.47489666361,"y":30160.431897330436},"targetPosition":{"x":37865.40523617568,"y":30456.738399508977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"240b7158-8790-4e15-90b6-f828da55a240","savedPayload":{"position":{"x":37865.40523617568,"y":30456.738399508977},"targetPosition":{"x":37912.33557568774,"y":30753.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type your code","project":"Superalgos","id":"72df12aa-a098-44ae-8eaf-cf1393b1ac93","savedPayload":{"position":{"x":38617.67787843871,"y":29782.224508437586},"targetPosition":{"x":38441.34230275097,"y":30024.92960675007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"43f5e676-0cec-4c55-bcc0-c5b67d29b7fc","savedPayload":{"position":{"x":38441.34230275097,"y":30024.92960675007},"targetPosition":{"x":38265.00672706323,"y":30267.63470506255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"407c539f-6072-4df4-a17f-e22448518709","savedPayload":{"position":{"x":38265.00672706323,"y":30267.63470506255},"targetPosition":{"x":38088.671151375485,"y":30510.339803375035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"885eccea-a420-4062-9474-f315af3a4614","savedPayload":{"position":{"x":38088.671151375485,"y":30510.339803375035},"targetPosition":{"x":37912.33557568774,"y":30753.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type your code","project":"Superalgos","id":"6a481f5e-92a5-48e7-bb67-819ace78a1d3","savedPayload":{"position":{"x":39097.56158440192,"y":30565.32354363924},"targetPosition":{"x":38801.255082223375,"y":30612.25388315131},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"911697ab-a7f8-48e9-9e53-bef9131f37d6","savedPayload":{"position":{"x":38801.255082223375,"y":30612.25388315131},"targetPosition":{"x":38504.94858004483,"y":30659.184222663378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b28076cb-8cb9-473f-a86d-885400471fb7","savedPayload":{"position":{"x":38504.94858004483,"y":30659.184222663378},"targetPosition":{"x":38208.64207786629,"y":30706.114562175448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"94c3e04a-3bd1-4226-8942-77f3acc19b8c","savedPayload":{"position":{"x":38208.64207786629,"y":30706.114562175448},"targetPosition":{"x":37912.33557568774,"y":30753.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"4c4e692c-1507-46b8-882a-84bb88358894","savedPayload":{"position":{"x":37912.33557568774,"y":30753.044901687517},"targetPosition":{"x":37736,"y":30995.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"40970278-13b4-4602-8127-6dd7b4999fac","savedPayload":{"position":{"x":42479.10390818544,"y":30054.109034653917},"targetPosition":{"x":42571.809006497926,"y":30339.425989542462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48a0d21e-ab2e-4c44-b226-24086a8c3db1","savedPayload":{"position":{"x":42571.809006497926,"y":30339.425989542462},"targetPosition":{"x":42664.51410481041,"y":30624.742944431007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"5e64aa3e-afce-478e-9e6f-18fd798efdd1","savedPayload":{"position":{"x":42936.90840465414,"y":30090.139029917988},"targetPosition":{"x":42800.711254732276,"y":30357.440987174497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f1b097cd-5d34-4bcf-9690-7ab3d9a053de","savedPayload":{"position":{"x":42800.711254732276,"y":30357.440987174497},"targetPosition":{"x":42664.51410481041,"y":30624.742944431007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"45b11e6e-3222-4f7b-ba87-97389c7d1e18","savedPayload":{"position":{"x":43235.14801458751,"y":30439.332747806042},"targetPosition":{"x":42949.83105969896,"y":30532.037846118525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c43b73ba-36b3-465b-950b-6a67962fefcf","savedPayload":{"position":{"x":42949.83105969896,"y":30532.037846118525},"targetPosition":{"x":42664.51410481041,"y":30624.742944431007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a91b9a01-2ba8-4875-b44e-49f7f8de1e09","savedPayload":{"position":{"x":42664.51410481041,"y":30624.742944431007},"targetPosition":{"x":42528.31695488855,"y":30892.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[],"id":"66a499dc-691b-4b0f-965d-ee06b50c1fd4","savedPayload":{"position":{"x":42813.6339097771,"y":30799.339803375035},"targetPosition":{"x":42528.31695488855,"y":30892.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStageEvent":{"type":"Close Stage Event","name":"New Close Stage Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type you code","project":"Superalgos","id":"54c3e9ab-42c1-42b0-86b0-fcf20366d753","savedPayload":{"position":{"x":43597.52478391459,"y":31436.83350137497},"targetPosition":{"x":43330.22282665808,"y":31300.636351453108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a76dfbd9-e4b6-493e-b71c-178e63ae4cc9","savedPayload":{"position":{"x":43330.22282665808,"y":31300.636351453108},"targetPosition":{"x":43062.92086940157,"y":31164.439201531244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b03761e5-d628-49ef-8bfc-37d2c51b44d8","savedPayload":{"position":{"x":43062.92086940157,"y":31164.439201531244},"targetPosition":{"x":42795.61891214506,"y":31028.24205160938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"583b93d6-1c6e-4b1b-a521-0257dc1bebd2","savedPayload":{"position":{"x":42795.61891214506,"y":31028.24205160938},"targetPosition":{"x":42528.31695488855,"y":30892.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"445c1aa9-c01e-4b62-ab24-4e85e4b0b672","savedPayload":{"position":{"x":38021.31695488855,"y":30903.044901687517},"targetPosition":{"x":37736,"y":30995.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"New Manage Stage","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"7fbae7ef-3b76-4c8b-bddf-c481d3b0bb12","savedPayload":{"position":{"x":43408.64979554898,"y":30890.3345765765},"targetPosition":{"x":43115.20551532884,"y":30952.708083821828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"18a3a18a-fb61-4237-86da-1fde3e7c5347","savedPayload":{"position":{"x":43115.20551532884,"y":30952.708083821828},"targetPosition":{"x":42821.761235108694,"y":31015.081591067155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b0bdea9c-cc98-49e2-b7a4-54e1ed7d9645","savedPayload":{"position":{"x":42821.761235108694,"y":31015.081591067155},"targetPosition":{"x":42528.31695488855,"y":31077.455098312483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"29ccd4c2-12a2-4d87-b328-663e078e322d","savedPayload":{"position":{"x":43130.534500611524,"y":31746.285441242137},"targetPosition":{"x":42929.795318703866,"y":31523.34199359892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"4db98320-0d9e-4a54-8a98-c1ea54875ea7","savedPayload":{"position":{"x":42929.795318703866,"y":31523.34199359892},"targetPosition":{"x":42729.05613679621,"y":31300.3985459557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04a8a8cd-b49e-4253-afee-ab153cfff278","savedPayload":{"position":{"x":42729.05613679621,"y":31300.3985459557},"targetPosition":{"x":42528.31695488855,"y":31077.455098312483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"4c6b0f7e-a3ce-4553-a85a-cadce929b489","savedPayload":{"position":{"x":38021.31695488855,"y":31088.455098312483},"targetPosition":{"x":37736,"y":30995.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"7edf107f-1cd2-4b8e-8731-326c994963d7","savedPayload":{"position":{"x":43201.05227449126,"y":30921.714286449067},"targetPosition":{"x":42958.34717617877,"y":31098.04986213681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"46938174-6810-44ad-ad9d-aef66616a8eb","savedPayload":{"position":{"x":42958.34717617877,"y":31098.04986213681},"targetPosition":{"x":42715.64207786629,"y":31274.385437824552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"8dc95dd0-1194-4dc0-a070-ac59a7b7e404","savedPayload":{"position":{"x":43308.255082223375,"y":31368.24611684869},"targetPosition":{"x":43011.94858004483,"y":31321.315777336622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8850c7f-791d-4037-86b3-7c4acfb90206","savedPayload":{"position":{"x":43011.94858004483,"y":31321.315777336622},"targetPosition":{"x":42715.64207786629,"y":31274.385437824552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"297b876e-cd51-47fa-9673-b8e1a18d94bc","savedPayload":{"position":{"x":43068.31322924177,"y":31759.795634449518},"targetPosition":{"x":42891.97765355403,"y":31517.090536137035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4aeccd0b-fa72-4a57-b9ed-710d65dc6db6","savedPayload":{"position":{"x":42891.97765355403,"y":31517.090536137035},"targetPosition":{"x":42715.64207786629,"y":31274.385437824552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45a3140e-b92f-4a15-87e8-cc6c0e76a311","savedPayload":{"position":{"x":42715.64207786629,"y":31274.385437824552},"targetPosition":{"x":42419.33557568774,"y":31227.455098312483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","name":"New Close Execution","project":"Superalgos","executionAlgorithms":[],"id":"af9c2d8a-367d-4b2a-9477-5da0ba80fc2d","savedPayload":{"position":{"x":42595.671151375485,"y":31470.160196624965},"targetPosition":{"x":42419.33557568774,"y":31227.455098312483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStageEvent":{"type":"Close Stage Event","name":"New Close Stage Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type you code","project":"Superalgos","id":"1feffa62-1bb9-45c8-bddd-5851d215861a","savedPayload":{"position":{"x":42231.61421763948,"y":32412.681107026645},"targetPosition":{"x":42278.544557151545,"y":32116.374604848104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3578e6db-9af2-4b12-8e76-de1afe9cec9c","savedPayload":{"position":{"x":42278.544557151545,"y":32116.374604848104},"targetPosition":{"x":42325.47489666361,"y":31820.068102669564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8fde4b1f-d61f-4191-aa80-bd4620777324","savedPayload":{"position":{"x":42325.47489666361,"y":31820.068102669564},"targetPosition":{"x":42372.40523617568,"y":31523.761600491023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"cc8d7e95-9fb1-4aae-bbe8-93a875cf8d23","savedPayload":{"position":{"x":42372.40523617568,"y":31523.761600491023},"targetPosition":{"x":42419.33557568774,"y":31227.455098312483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"3e9d7cbf-d5cb-4e72-ad41-c1b2c42846c4","savedPayload":{"position":{"x":37912.33557568774,"y":31238.455098312483},"targetPosition":{"x":37736,"y":30995.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cb75e487-ba89-4f0a-859a-7b9e820f42b9","savedPayload":{"position":{"x":37736,"y":30995.75},"targetPosition":{"x":37436,"y":30995.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"dynamicIndicators":{"type":"Dynamic Indicators","name":"New Dynamic Indicators","project":"Superalgos","indicatorFunctions":[{"type":"Indicator Function","name":"New Indicator Function","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"7f85a267-bb1f-4dca-90da-3eda4f65104c","savedPayload":{"position":{"x":36536,"y":30995.75},"targetPosition":{"x":36836,"y":30995.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"22bbc7ed-b0ea-4d05-9ea0-cf3e689edbcb","savedPayload":{"position":{"x":36836,"y":30995.75},"targetPosition":{"x":37136,"y":30995.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"35a67df1-5cb1-4d70-bdca-0309727a6a82","savedPayload":{"position":{"x":37136,"y":30995.75},"targetPosition":{"x":37436,"y":30995.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"77e18ff3-e29b-4e35-ba66-e34af262d35d","savedPayload":{"position":{"x":37436,"y":30995.75},"targetPosition":{"x":37436,"y":30995.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Tutorial","name":"2. Defining a Trading Idea","config":"{\n \"subTitle\": \"Defining a Trading Idea\",\n \"summary\": \"\",\n \"gif\": \"\",\n \"image\": \"trading-strategy\",\n \"definition\": \"Before you may build a ->Trading Strategy->, you first need to come up with a clear and testable trading idea.\",\n \"paragraph1\": \"A trading idea is a precursor to a trading strategy. While a complete strategy entails the rules for taking, managing and exiting a position, a trading idea is concerned with the first of those issues only.\",\n \"callOut\": \"Testing a trading idea before committing to building a complete strategy is the logical approach because managing and exiting failed entries is not what you should be aiming for!\",\n \"paragraph2\": \"This tutorial explains how to properly formulate a trading idea that may later be tested.\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Introduction","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Before We Start!","config":"{\n \"subTitle\": \"Before we start...\",\n \"gif\": \"\",\n \"image\": \"bullet-warning\",\n \"definition\": \"Let me give you the heads up on a few matters you should consider before we start!\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": [\n [\n \"Take any trading-related information for what it's worth!\",\n \"When I share trading concepts, take them with a grain of salt! I'm just a tutorial, not your financial advisor! I'm here to teach you Superalgos, not to tell you how to trade! If you are not a trader, you may pick up something of value, but always make sure you do your own research!\"\n ],\n [\n \"This tutorial is aimed at a wide audience!\",\n \"I'll take it easy and lay out concepts so that everyone may understand them. If you are a seasoned trader you may feel some explanations are too basic. In that case, feel free to skip this tutorial and go to the next one in the series.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"351aec66-3084-4a6b-85b3-3069c187be6e","savedPayload":{"position":{"x":25466.132034355964,"y":43958.617965644036},"targetPosition":{"x":25254,"y":44170.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"2. Defining a Trading Idea","id":"04b42ede-fa1b-4962-bef2-b20126b5c0b7"}}},{"type":"Tutorial Step","name":"Ready to Mine?","config":"{\n \"subTitle\": \"Ready to Mine?\",\n \"gif\": \"\",\n \"image\": \"data-tasks\",\n \"definition\": \"We'll mine some data to analyze a few events over the charts. We'll use the same data to test the trading idea in the next tutorial!\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"The sensor bot will run on the BTC/USDT market (Binance) from January 1st, 2020, along with the following indicators from the Masters data mine: Candles Volumes, Bollinger Bands, and Bollinger Channels.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"If you have data on this market/exchange but on a different time range, this may affect your data! Read the sensor bot documentation to learn how! If the data you have is not important, feel free to keep going!\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"https://docs.superalgos.org/suite-hierarchy-network.html#sensor-bot-instance\"\n}","project":"Superalgos","id":"b46f7ac6-8c6d-4998-b16d-d2a37399acf3","savedPayload":{"position":{"x":25554,"y":44170.75},"targetPosition":{"x":25254,"y":44170.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Tasks","name":"New Data Tasks","id":"4df1cb4e-b9ca-4f62-bb5f-c7e262aaa22a"}}},{"type":"Tutorial Step","name":"Let's Mine Some Data","config":"{\n \"subTitle\": \"Let's Mine Some Data!\",\n \"gif\": \"\",\n \"image\": \"run\",\n \"definition\": \"Now that you understand the implications of running this data mining operation, let's get on with it!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Select Run All Project Data Tasks on the ->Data Tasks-> node menu!\",\n \"paragraph2\": \"\",\n \"note\": \"If you are doing this tutorial after doing other tutorials, chances are you may already have part of the data required, which may make things faster! Either way, no need to wait for the data mining to get to the present time... you may keep going with the tutorial!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"af2b6eba-7652-44c2-af55-92794977ac27","savedPayload":{"position":{"x":25466.132034355964,"y":44382.882034355964},"targetPosition":{"x":25254,"y":44170.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"7d3da47b-a1bd-4298-afe5-adcc8118238d","savedPayload":{"position":{"x":25254,"y":44170.75},"targetPosition":{"x":24954,"y":44170.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"A Proper Hypothesis","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"A Proper Hypothesis","config":"{\n \"subTitle\": \"Why Test Trading Ideas?\",\n \"gif\": \"\",\n \"image\": \"help\",\n \"definition\": \"Setting up, testing, and deploying a trading strategy requires time and effort. We test trading ideas to avoid wasting resources.\",\n \"bulletListIntro\": \"To test a trading idea, we need to formalize it into a hypothesis that:\",\n \"bulletArray\": [\n [\n \"proposes a trading process,\",\n \"\"\n ],\n [\n \"selects the appropriate context;\",\n \"\"\n ],\n [\n \"defines the main entry rules;\",\n \"\"\n ],\n [\n \"predicts a specific outcome;\",\n \"\"\n ],\n [\n \"offers a specific testing mechanism.\",\n \"\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"Let's expand on each of these topics so that we can set clear goals for defining a trading idea.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"db40d8b5-5561-4338-b919-45a5fac513b9","savedPayload":{"position":{"x":25345.780298432423,"y":44479.6046836069},"targetPosition":{"x":25046.705098312483,"y":44456.06695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"The trading process","config":"{\n \"subTitle\": \"The Trading Process\",\n \"gif\": \"\",\n \"image\": \"trading-system\",\n \"definition\": \"The first dimension we should define is what type of strategy the hypothesis is aimed at.\",\n \"paragraph1\": \"A simple rule-of-thumb is determining if it is a scalping, day-trading, swing trading, or position trading strategy.\",\n \"callOut\": \"This definition provides a notion of the expected holding period, that is, the average time range expected for each position to be open.\",\n \"paragraph2\": \"The value of such a definition is that it provides a guideline as to what time frames to analyze to determine the existence of trends.\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"3b842b15-46c8-45d3-86b5-c79f6adf3350","savedPayload":{"position":{"x":25314.007055568993,"y":44592.26410481041},"targetPosition":{"x":25046.705098312483,"y":44456.06695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"The appropriate context","config":"{\n \"subTitle\": \"The Appropriate Context\",\n \"gif\": \"\",\n \"image\": \"layer-trends\",\n \"definition\": \"The second important dimension to define is the general context that the hypothesis is aimed at.\",\n \"paragraph1\": \"Few—if any—technical analysis-based strategies perform consistently on undefined market situations.\",\n \"callOut\": \"The minimum required definition is as to whether the hypothesis targets downtrends, uptrends, or sideways markets.\",\n \"paragraph2\": \"The usual resource is a multi-time frame analysis based on one or more indicators that determine what the existing trend is at different time frames, and any other factors that may be of importance to the specific strategy, for example, volume or volatility.\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"cfa743d8-fde6-42b4-b0e4-f5c9ed33772d","savedPayload":{"position":{"x":25241.539512811538,"y":44684.18874456856},"targetPosition":{"x":25046.705098312483,"y":44456.06695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"The Entry Rules","config":"{\n \"subTitle\": \"The Entry Rules\",\n \"gif\": \"\",\n \"image\": \"take-position-event\",\n \"definition\": \"The third aspect to be defined are the rules for triggering the strategy and taking a position.\",\n \"paragraph1\": \"Many times, the rules to trigger the strategy derive from the analysis of the context. For example, you wish the strategy to be active when a specific trend is detected by some specific method.\",\n \"callOut\": \"The rules to take a position are usually referred to as the signal and the signal confirmation.\",\n \"paragraph2\": \"Those rules are the description of the specific event that determines when to enter a position. For example, the crossover of two specific lines, or a certain value on a specific indicator.\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"3574ba38-e686-4547-9011-376e61001b6c","savedPayload":{"position":{"x":25139.410196624965,"y":44741.3839097771},"targetPosition":{"x":25046.705098312483,"y":44456.06695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"The Prediction","config":"{\n \"subTitle\": \"The Prediction\",\n \"gif\": \"\",\n \"image\": \"hit-ratio\",\n \"definition\": \"The fourth aspect to consider is what we expect from this idea, and this is highly dependent on the type of strategy.\",\n \"paragraph1\": \"For example, for a swing strategy, taking a position twice per month with a 50% hit ratio may be acceptable, but not for a scalping strategy. \",\n \"callOut\": \"Defining what we expect from the strategy in terms of trading frequency and hit ratio helps to determine if the strategy is worth pursuing or not.\",\n \"paragraph2\": \"If the tests show that the idea doesn't produce as many trades or as many good entries as is desirable, you may want to come up with a new idea.\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"c36c4d14-c370-40b3-af0a-f42f7577592d","savedPayload":{"position":{"x":25023.167369594128,"y":44755.142155008485},"targetPosition":{"x":25046.705098312483,"y":44456.06695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"The Testing Mechanism","config":"{\n \"subTitle\": \"The Testing Mechanism\",\n \"gif\": \"\",\n \"image\": \"backtesting-session\",\n \"definition\": \"The final concern is defining how the idea is to be tested. This too is dependent on the type of strategy!\",\n \"paragraph1\": \"The focus of the trading idea is the entry point, not the management of the trade or the exit. However...\",\n \"callOut\": \"How do we measure if the entry points are good or bad? What period do we use for testing? \",\n \"paragraph2\": \"The first question leads us to acknowledge that we may need to define some arbitrary stop loss and take profit targets so that we can determine if the resulting entry points are likely to be hits or fails. We will deal with the second question in the next tutorial. \",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"17893dc9-ca55-415c-8f3b-48f1fd29753c","savedPayload":{"position":{"x":24910.50794839062,"y":44723.36891214506},"targetPosition":{"x":25046.705098312483,"y":44456.06695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Let's go on a field trip!","config":"{\n \"subTitle\": \"Let's Go On a Field Trip!\",\n \"gif\": \"\",\n \"image\": \"tutorial\",\n \"definition\": \"The rest of this tutorial is about putting into practice what we just discussed!\",\n \"paragraph1\": \"\",\n \"callOut\": \"We'll take a deep dive into the charts, learn a thing or two about a specific indicator, and try to come up with a proper trading idea that we can test in the next tutorial!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"Buckle up! I foresee a few sharp turns ahead!\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-04-14T12:19:32.669Z\",\n \"toDate\": \"2020-04-24T22:36:06.989Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 6309.911126811459,\n \"maxValue\": 7824.566413643572\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"2e5cb71a-19b0-40ac-8d14-0a91e0c4bcaf","savedPayload":{"position":{"x":24818.583308632475,"y":44650.901369387604},"targetPosition":{"x":25046.705098312483,"y":44456.06695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}}],"tutorialTopics":[],"id":"f7cbd006-02cf-47d0-9ae3-ae9f2afe145d","savedPayload":{"position":{"x":25046.705098312483,"y":44456.06695488855},"targetPosition":{"x":24954,"y":44170.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"The Bollinger Bands","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Are We Up to Date?","config":"{\n \"subTitle\": \"Are We Up to Date?\",\n \"gif\": \"\",\n \"image\": \"indicator-process-instance\",\n \"definition\": \"By now, all processes should be at 100%. We need the data to be ready so that we can go and do some work on the charts!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Look around and see if all processes are at 100%. If all of them are, then stop the data mining!\",\n \"paragraph2\": \"\",\n \"note\": \"Wait until all processes reach the 100% mark before continuing!\",\n \"tip\": \"In the next step we are going to the charts to check the Bollinger Bands so that we can discuss the trading idea we will test!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"1c27f36c-4997-42ab-af57-5cee92bad7eb","savedPayload":{"position":{"x":24711.294901687517,"y":44647.08557568774},"targetPosition":{"x":24711.294901687517,"y":44347.08557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","id":"dcf3d790-5362-4a95-b977-82d0cf0e07f1"}}},{"type":"Tutorial Step","name":"BB On the Charts","config":"{ \n \"subTitle\": \"BB On the Charts!\",\n \"gif\": \"\",\n \"image\": \"layer-bands\",\n \"definition\": \"Let's take a look at the Bollinger Bands! If it's not on already, find the Bollinger Bands layer in the Masters layer manager.\",\n \"paragraph1\": \"The indicator features a 20-period moving average in the center. It features a line on top located two standard deviations above the moving average. We call this line the upper band. And it also features a line two standard deviations below the moving average. We call this one the lower band. Together, they are the Bollinger Bands.\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"Notice how the price ranges sideways bouncing off the upper and the lower bands. Sometimes it may go out of the boundaries of the bands, either higher or lower, but most of the time it stays within the range of the bands.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"repositionAtTimeMachineReferenceParent\": true,\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-04-14T12:19:32.669Z\",\n \"toDate\": \"2020-04-24T22:36:06.989Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 6309.911126811459,\n \"maxValue\": 7824.566413643572\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ]\n }","project":"Superalgos","id":"4fab6f3e-16ae-413b-a71d-ab48444dd003","savedPayload":{"position":{"x":24534.959325999775,"y":44589.79067400023},"targetPosition":{"x":24711.294901687517,"y":44347.08557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"Bollinger Bands Rules","config":"{\n \"subTitle\": \"Bollinger Bands Rules\",\n \"gif\": \"\",\n \"image\": \"layer-bands\",\n \"definition\": \"Now that you've seen the bands on the charts, let's go through the rules that teach us how to interpret and use them!\",\n \"paragraph1\": \"If you are not familiar with this indicator, it's definitely worth spending a few minutes reading these rules directly from the horse's mouth!\",\n \"callOut\": \"Please, read what John Bollinger has to say about how to interpret this popular indicator!\",\n \"paragraph2\": \"\",\n \"note\": \"Rules 6 to 8 are of particular significance to what we will be attempting later on!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"https://www.bollingerbands.com/bollinger-band-rules\"\n}","project":"Superalgos","id":"069499fd-b719-4683-a946-9619f023b2e5","savedPayload":{"position":{"x":24425.977946798972,"y":44439.79067400023},"targetPosition":{"x":24711.294901687517,"y":44347.08557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"2. Defining a Trading Idea","id":"04b42ede-fa1b-4962-bef2-b20126b5c0b7"}}},{"type":"Tutorial Step","name":"Can You Think of Any Ideas?","config":"{\n \"subTitle\": \"Can You Think of Any Ideas?\",\n \"gif\": \"\",\n \"image\": \"help\",\n \"definition\": \"You've seen the Bollinger Bands and you know how to read them... Can you think of a trading idea to build a strategy with?\",\n \"paragraph1\": \"\",\n \"callOut\": \"Take a few minutes roaming around this chart and see if you can come up with something!\",\n \"paragraph2\": \"\",\n \"note\": \"Indicators are usually built by analysts and traders to mathematically describe trading ideas.\",\n \"tip\": \"The idea we will discuss next has to do with breakouts! But that is just one of the four or five popular ideas using this indicator!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"00bb1905-3b00-4248-b878-4fe442b47fb6","savedPayload":{"position":{"x":24425.977946798972,"y":44254.380477375256},"targetPosition":{"x":24711.294901687517,"y":44347.08557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"2. Defining a Trading Idea","id":"04b42ede-fa1b-4962-bef2-b20126b5c0b7"}}}],"tutorialTopics":[],"id":"ccbefd73-cc4c-4b2b-b0a6-a67fa60d6aca","savedPayload":{"position":{"x":24711.294901687517,"y":44347.08557568774},"targetPosition":{"x":24954,"y":44170.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"The Hypothesis","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Breakdown of the Bollinger Bands","config":"{\n \"subTitle\": \"Breakdown of the BBs\",\n \"gif\": \"\",\n \"image\": \"layer-candles\",\n \"definition\": \"Weak-hands Buster is based on the idea that a breakdown of the BB may predict a deepening of a downtrend and some reversals.\",\n \"bulletListIntro\": \"I just brought you to April 10th, 2020 to check a case of a breakdown of the bands. See what happens at the following candles:\",\n \"bulletArray\": [\n [\n \"04 hs:\",\n \"A candle closes below the lower band at 7.176 USDT.\"\n ],\n [\n \"05 hs:\",\n \"A second candle closes below the band at 7.140 USDT.\"\n ],\n [\n \"06 hs:\",\n \"A more serious drop follows, accentuating the price action seen earlier.\"\n ],\n [\n \"16 hs:\",\n \"Ten hours after the first breakdown, the lowest hourly close of the day marks 6.766 USDT, more than 6% below.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-04-07T01:31:26.975Z\",\n \"toDate\": \"2020-04-13T11:17:37.885Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 6131.048212858161,\n \"maxValue\": 8085.442131351208\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"3342d779-e03d-4a99-8acb-647f1feb2f7f","savedPayload":{"position":{"x":24468.589803375035,"y":44170.75},"targetPosition":{"x":24711.294901687517,"y":43994.41442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"What else is going on?","config":"{\n \"subTitle\": \"What Else is Going On?\",\n \"gif\": \"\",\n \"image\": \"layer-candles\",\n \"definition\": \"We just took note of what happened after this breakdown of the bands on the 1H chart... What else is going on with the market?\",\n \"paragraph1\": \"\",\n \"callOut\": \"Take a look at the price action a few candles earlier!\",\n \"paragraph2\": \"\",\n \"note\": \"There were two breakdowns previous to the one we checked, one on April 9th at 12 hs, and before that, another one on April 7th at 21 hs. Both breakdowns were significant, in the sense that the candles closed way lower than the lower band. However, in both cases price bounced back into the bands.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"da588154-be72-4f58-8b04-59a5ac624a5e","savedPayload":{"position":{"x":24425.977946798972,"y":44087.119522624744},"targetPosition":{"x":24711.294901687517,"y":43994.41442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"2. Defining a Trading Idea","id":"04b42ede-fa1b-4962-bef2-b20126b5c0b7"}}},{"type":"Tutorial Step","name":"Let's Zoom Out!","config":"{\n \"subTitle\": \"Let's Zoom Out!\",\n \"gif\": \"\",\n \"image\": \"time-frame\",\n \"definition\": \"We've got an idea of what's going on in the 1H time frame. Let's zoom out a bit and take a look at the intermediate-term.\",\n \"bulletListIntro\": \"I just brought you to the 4H chart, on the same dates. Notice the following:\",\n \"bulletArray\": [\n [\n \"Breakdown:\",\n \"The breakdown we saw in the 1H chart is evident in the 4H chart too.\"\n ],\n [\n \"Immediate past:\",\n \"Before the breakdown on April 10th, the market had been ranging for a while.\"\n ],\n [\n \"Before that:\",\n \"The market was trending upwards—that is, the intermediate-term was in an uptrend.\"\n ],\n [\n \"Downtrend:\",\n \"The breakdown on April 10th marked the start of a downtrend in the intermediate-term.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-03-28T18:35:48.693Z\",\n \"toDate\": \"2020-04-22T13:10:06.621Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 5661.7840056393015,\n \"maxValue\": 8476.11124826929\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"04-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"50fee74d-bbe2-40d8-90dc-2d282f1d848a","savedPayload":{"position":{"x":24411.294901687517,"y":43994.41442431226},"targetPosition":{"x":24711.294901687517,"y":43994.41442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"The bigger picture...","config":"{\n \"subTitle\": \"The Big Picture!\",\n \"gif\": \"\",\n \"image\": \"time-frame\",\n \"definition\": \"The 4H chart showed a clear shift in the trend after the breakdown, but... what about the long-term? Let's check the daily chart!\",\n \"bulletListIntro\": \"Find the April 10th candle and take a minute to think of what it meant—in the big picture—what we just analyzed in the lower time frames. This is what I see:\",\n \"bulletArray\": [\n [\n \"The walk:\",\n \"The ranging period we saw from the 7th until the 10th of April was in fact a little walk on the daily upper band. By the BB rules, this means that price is relatively high in this time frame.\"\n ],\n [\n \"Pullback:\",\n \"The breakdown in the lower time frames marked the pullback from the daily upper band.\"\n ],\n [\n \"Continuation:\",\n \"The price action in the larger time frame ended up being a normal pullback and continuation, barely crossing the moving average.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-01-30T23:07:21.393Z\",\n \"toDate\": \"2020-06-19T22:35:44.079Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 2941.135605373651,\n \"maxValue\": 11344.671722630914\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"24-hs\"\n }\n }\n ]\n}\n","project":"Superalgos","id":"ac63e9b7-1f3a-44c5-80f8-18b68acc8de2","savedPayload":{"position":{"x":24425.977946798972,"y":43901.70932599977},"targetPosition":{"x":24711.294901687517,"y":43994.41442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"What can we learn from this","config":"{ \n \"subTitle\": \"What Do We Make of This?\",\n \"gif\": \"\",\n \"image\": \"help\",\n \"definition\": \"We can't arrive at universal conclusions by analyzing a single case, but we can propose a hypothesis to test!\",\n \"paragraph1\": \"At this point, a reasonable hypothesis would be:\",\n \"callOut\": \"In the context of an uptrend in the daily chart, a breakdown of the Bollinger Bands in the 1H chart may predict a reversal in the intermediate trend.\",\n \"paragraph2\": \"\",\n \"note\": \"Let's save this hypothesis for later and look into one other case!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n }","project":"Superalgos","id":"be3bf26f-0ecb-4543-876a-ad84b0233e5c","savedPayload":{"position":{"x":24468.589803375035,"y":43818.078848624515},"targetPosition":{"x":24711.294901687517,"y":43994.41442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"2. Defining a Trading Idea","id":"04b42ede-fa1b-4962-bef2-b20126b5c0b7"}}},{"type":"Tutorial Step","name":"Look to Your Left","config":"{ \n \"subTitle\": \"Look to Your Left!\",\n \"gif\": \"\",\n \"image\": \"layer-candles\",\n \"definition\": \"Does the price action to your left ring a bell? Do you recognize this major market crash?\",\n \"paragraph1\": \"\",\n \"callOut\": \"You're looking at the March 12-13th, 2020 ~50% pandemic market crash! Spend a few minutes analyzing the daily chart!\",\n \"paragraph2\": \"In short, we can see that the market was in a downtrend since February 25th—if we take the turning south of the moving average and the breakdown of the bands as an indication of the beginning of the trend.\",\n \"note\": \"\",\n \"tip\": \"Take a look at the lower time frames too!\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n }","project":"Superalgos","id":"bb9dbd74-fbc1-4a0b-a9fa-8e1b997a3149","savedPayload":{"position":{"x":24534.959325999775,"y":43751.70932599977},"targetPosition":{"x":24711.294901687517,"y":43994.41442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"2. Defining a Trading Idea","id":"04b42ede-fa1b-4962-bef2-b20126b5c0b7"}}},{"type":"Tutorial Step","name":"Wouldn't it be nice?","config":"{ \n \"subTitle\": \"Wouldn't It Be Nice?\",\n \"gif\": \"\",\n \"image\": \"layer-candles\",\n \"definition\": \"How cool would it be to be able to predict the continuation of a downturn once the trend is already established?\",\n \"paragraph1\": \"Predicting the reversal of a well-established trend is a very tricky task. The analysis we just did for April 10th is a good example: while the breakdown in the 1H and 4H time frames marked a trend reversal in the intermediate-term, the long-term trend remained intact.\",\n \"callOut\": \"A safer approach to trading is predicting the continuation of a trend that is already established!

Remember Rule 8? Closes outside the Bollinger Bands are initially continuation signals!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n }","project":"Superalgos","id":"1dca59d2-81c1-4adf-8c35-7e83c237269e","savedPayload":{"position":{"x":24618.589803375035,"y":43709.09746942371},"targetPosition":{"x":24711.294901687517,"y":43994.41442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"2. Defining a Trading Idea","id":"04b42ede-fa1b-4962-bef2-b20126b5c0b7"}}},{"type":"Tutorial Step","name":"March 7th to March 12th","config":"{\n \"subTitle\": \"March 7th to March 12th\",\n \"gif\": \"\",\n \"image\": \"layer-bands\",\n \"definition\": \"Back in the 1H time frame, let's take a look at what happened between these dates in the context of a daily downtrend.\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": [\n [\n \"March 7th, 17 hs:\",\n \"A breakdown after a two-day-long volatility squeeze triggers a downtrend.\"\n ],\n [\n \"March 8th, 15 hs:\",\n \"Further breakdowns accelerate the downturn.\"\n ],\n [\n \"March 12th, 07 hs:\",\n \"Five hours before the biggest market crash in recent history, a series of breakdowns trigger a new downturn after three days of ranging price action.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"Do you see the pattern? Can you formulate a hypothesis that we can test?\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-03-05T19:30:13.608Z\",\n \"toDate\": \"2020-03-15T19:06:28.624Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 5017.7769429637,\n \"maxValue\": 10572.155269570161\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"9e8b0a9d-4b09-4876-8afb-ffeb6b8e733c","savedPayload":{"position":{"x":24711.294901687517,"y":43694.41442431226},"targetPosition":{"x":24711.294901687517,"y":43994.41442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"We've got Two Hypotheses!","config":"{\n \"subTitle\": \"We've got Two Hypotheses!\",\n \"gif\": \"\",\n \"image\": \"nodes-highlights\",\n \"definition\": \"Let's recover our previous hypothesis and come up with a new one for the most recent observations!\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": [\n [\n \"Hypothesis 1:\",\n \"In the context of an uptrend in the daily chart, a breakdown of the Bollinger Bands in the 1H chart may predict a reversal in the intermediate trend.\"\n ],\n [\n \"Hypothesis 2:\",\n \"In the context of a downtrend in the daily chart, a breakdown of the Bollinger Bands in the 1H chart may predict an acceleration of the downtrend.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"We may think of these two as the core of two different trading ideas! But that is not all, right?\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"e3a596eb-d975-47b8-adac-b349fc66700d","savedPayload":{"position":{"x":24804,"y":43709.09746942371},"targetPosition":{"x":24711.294901687517,"y":43994.41442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"2. Defining a Trading Idea","id":"04b42ede-fa1b-4962-bef2-b20126b5c0b7"}}}],"tutorialTopics":[],"id":"d9219afa-abdf-4f17-b16c-f71a5dbb6f8a","savedPayload":{"position":{"x":24711.294901687517,"y":43994.41442431226},"targetPosition":{"x":24954,"y":44170.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Formalization","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"What's Missing?","config":"{\n \"subTitle\": \"What Is Missing?\",\n \"gif\": \"\",\n \"image\": \"help\",\n \"definition\": \"What we've got is a vague definition of the context and the entry point rules! We still need to formalize our hypothesis!\",\n \"bulletListIntro\": \"Remember, our trading idea should:\",\n \"bulletArray\": [\n [\n \"propose a trading process,\",\n \"\"\n ],\n [\n \"select the appropriate context;\",\n \"\"\n ],\n [\n \"define the main entry rules;\",\n \"\"\n ],\n [\n \"predict a specific outcome;\",\n \"\"\n ],\n [\n \"offer a specific testing mechanism!\",\n \"\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"Let's proceed with fulfilling those requirements!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}\n","project":"Superalgos","id":"4dea3b2a-20e6-4e61-8e61-b131e376ac51","savedPayload":{"position":{"x":24829.866639164266,"y":43678.11425041539},"targetPosition":{"x":25046.705098312483,"y":43885.43304511145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"First Two","config":"{\n \"subTitle\": \"Let's Define the First Two!\",\n \"gif\": \"\",\n \"image\": \"layer-trends\",\n \"definition\": \"Let's advance with the definition of the trading process and the context in which these ideas should operate.\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": [\n [\n \"Trading process:\",\n \"Since we rely on trends in the 24H charts, this will be a swing strategy, with positions open—potentially—for several days.\"\n ],\n [\n \"Context: \",\n \"The first hypothesis is for uptrends in the 24H chart. The second, for downtrends and likely for ranging markets as well. We will leave the definition as of how the trends are to be determined for later on, once you become familiar with the tools available in Superalgos.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"The goal of the idea is to accumulate bitcoin selling BTC to rebuy at a cheaper price.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"b63663a7-472b-41b6-a70c-d048a4ae74c7","savedPayload":{"position":{"x":24941.29265108808,"y":43604.56258391953},"targetPosition":{"x":25046.705098312483,"y":43885.43304511145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Entry Rules","config":"{\n \"subTitle\": \"Entry Rules\",\n \"gif\": \"\",\n \"image\": \"trigger-on-event\",\n \"definition\": \"The main entry rules were the focus of the analysis we did on the charts, but let's add a couple more considerations.\",\n \"paragraph1\": \"We found that a breakdown in the 1H chart may predict an intermediate-term reversal when on a daily uptrend, and—when on a daily downtrend—an acceleration of the downturn. However, we also noticed several breakdowns that didn't produce either. This means that we should take a breakdown as a signal, not as a confirmation in and of itself.\",\n \"callOut\": \"Our confirmation is a second consecutive breakdown in the 1H chart!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"ccc330e8-ddc9-4975-a413-246701e39741","savedPayload":{"position":{"x":25073.596890983514,"y":43586.64075691288},"targetPosition":{"x":25046.705098312483,"y":43885.43304511145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Predictin & Testing","config":"{\n \"subTitle\": \"Predictions and Testing\",\n \"gif\": \"\",\n \"image\": \"user-defined-statistic\",\n \"definition\": \"It's not like we're trying to divine the future and will get graded on our accuracy! The prediction is more like an expectation!\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": [\n [\n \"Prediction:\",\n \"We expect either of these ideas to trade at least twice per month, with a 50% hit ratio.\"\n ],\n [\n \"Testing:\",\n \"For uptrends, we will set these targets: stop loss at 3% and take profit at 5%. For downtrends we should be more optimistic as the strategy aims to capture big market moves: we will set a 3% stop loss and 10% take profit targets.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"Remember! This doesn't mean that is how we would manage the positions! It's just to evaluate the entry points!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"d4d4922f-aefc-48b4-8c48-89ff166aefc5","savedPayload":{"position":{"x":25200.574881534256,"y":43627.898407030894},"targetPosition":{"x":25046.705098312483,"y":43885.43304511145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Et Voila","config":"{\n \"subTitle\": \"Et Voilà!\",\n \"gif\": \"\",\n \"image\": \"nodes-highlights\",\n \"definition\": \"That's it! We finally have a proper hypothesis that we can test to decide if the idea is worth pursuing or not!\",\n \"paragraph1\": \"\",\n \"callOut\": \"We'll take it from there in the next tutorial!\",\n \"paragraph2\": \"\",\n \"note\": \"In the next tutorial in the series, we will dive into how Superalgos guides you through the process of setting up the trading idea to be tested on historical data. We'll learn about the syntax to write conditions and formulas, about how to use indicators from within strategies, and whatever else we may need along the way!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"ad39f524-6982-4fb0-848a-c58f31a47e50","savedPayload":{"position":{"x":25297.077074428875,"y":43720.16395067582},"targetPosition":{"x":25046.705098312483,"y":43885.43304511145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Readu for the next?","config":"{ \n \"subTitle\": \"Ready For The Next One?\",\n \"gif\": \"\",\n \"image\": \"tutorial\",\n \"definition\": \"The tutorial to the right is the next in the series about designing trading systems. Shall we keep going?\",\n \"paragraph1\": \"\",\n \"callOut\": \"The next tutorial in the series is about implementing the ideas we just came up with on a ->Trading System-> so that they may be tested.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Click Next to finish this tutorial, and select Play in the next one when you are ready!\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"76fc961e-afa1-438d-88ab-92fcb2776147","savedPayload":{"position":{"x":25343.990026842865,"y":43845.163065366156},"targetPosition":{"x":25046.705098312483,"y":43885.43304511145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"3. Testing a Trading Idea - The Trigger Stage","id":"8837ff70-a40f-444c-b8f9-272d1642eece"}}}],"tutorialTopics":[],"id":"a1ddae80-1ebb-4557-8ed2-e9cdf0a6fb1d","savedPayload":{"position":{"x":25046.705098312483,"y":43885.43304511145},"targetPosition":{"x":24954,"y":44170.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"04b42ede-fa1b-4962-bef2-b20126b5c0b7","savedPayload":{"position":{"x":24954,"y":44170.75},"targetPosition":{"x":24954,"y":44170.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"}}},{"type":"Tutorial","name":"4. Testing a Trading Idea - The Other Stages","config":"{\n \"subTitle\": \"The Other Stages\",\n \"summary\": \"\",\n \"gif\": \"\",\n \"image\": \"trading-strategy\",\n \"definition\": \"We are a few steps away from being able to fully test the first trading idea! You need to learn a thing or two first!\",\n \"paragraph1\": \"In the third tutorial in the series, we covered the definitions and nuances of the ->Trigger Stage->.\",\n \"callOut\": \"In this tutorial, we will complete the basic definitions of the rest of the stages so that we may finally test our hypothesis!\",\n \"paragraph2\": \"\",\n \"note\": \"I highly recommend you do the first three tutorials in the series before doing this one! The story is carried from one to the next!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Initial Targets","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Open Stage","config":"{\n \"subTitle\": \"Taking a Position\",\n \"gif\": \"\",\n \"image\": \"open-stage\",\n \"definition\": \"As soon as the ->Take Position Event-> validates true, both the open stage and the manage stage become active.\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": [\n [\n \"The ->Open Stage->\",\n \"is activated to deal with order execution in entering the position.\"\n ],\n [\n \"The ->Manage Stage->\",\n \"is activated to monitor stop loss and take profit targets. It is possible that targets are hit even before actually executing the orders to take the position, and that is the reason why the stage must be activated immediately.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Read these first few paragraphs about the open stage!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"https://docs.superalgos.org/suite-strategies-open-targets.html\"\n}","project":"Superalgos","id":"cbfd783e-b5a6-4bc2-9ca9-5254a4824aa8","savedPayload":{"position":{"x":37262.6920489294,"y":43745.57618215828},"targetPosition":{"x":37155,"y":44182.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Initial Targets","config":"{\n \"subTitle\": \"Initial Targets\",\n \"gif\": \"\",\n \"image\": \"initial-targets\",\n \"definition\": \"I just brought you to the ->Initial Targets-> node in the open stage. Before we start, let's make a quick note for clarity's sake!\",\n \"paragraph1\": \"\",\n \"callOut\": \"You're not in the trading system you set up during the previous tutorial! It's a new one!\",\n \"paragraph2\": \"\",\n \"note\": \"I set up a new trading system and named it BB Breakdown 2 so that I have better control of your experience during this tutorial. Notice that I recreated the stages you deleted in the previous tutorials. All I had to do was select Add Missing Stages on the trading strategy menu!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"43a34bc9-d240-4e90-b257-9b342e7f5a6b","savedPayload":{"position":{"x":37364.1254274197,"y":43784.044788456056},"targetPosition":{"x":37155,"y":44182.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Initial Targets","name":"New Initial Targets","id":"22b563b5-472f-4eb4-84de-0a071f2b9a25"}}},{"type":"Tutorial Step","name":"Look around!","config":"{\n \"subTitle\": \"Look Around!\",\n \"gif\": \"\",\n \"image\": \"initial-targets\",\n \"definition\": \"Take a look at the nodes under ->Initial Targets->. Do you have an intuition as to what they may be about?\",\n \"bulletListIntro\": \"These are the first few basic definitions required:\",\n \"bulletArray\": [\n [\n \"->Target Rate->\",\n \"is a reference rate. Think of it as a ball-park rate at which you wish to enter the position. There is a lot more depth to this concept, but the simplification serves us well at this point.\"\n ],\n [\n \"The ->Target Size In Base Asset->\",\n \"and it's brother node, target size in quoted asset, is the definition of the maximum size the position should achieve.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"The final rates and size is determined later on, in the definitions of the ->Execution Algorithm->.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"5134b5f7-e003-4069-951e-b0116e13943b","savedPayload":{"position":{"x":37453.40519620836,"y":43845.670163323004},"targetPosition":{"x":37155,"y":44182.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Target Rate","config":"{\n \"subTitle\": \"The Target Rate\",\n \"gif\": \"\",\n \"image\": \"target-rate\",\n \"definition\": \"As I said earlier, the ->Target Rate-> is a concept that entails some depth, but we'll keep it simple for the time being!\",\n \"paragraph1\": \"The target rate serves several purposes. At this point, we'll place the focus on one of them:\",\n \"callOut\": \"We will use the target rate as a reference rate.\",\n \"paragraph2\": \"Later on, we will set up a market order to enter the position. However, market orders—by definition—do not specify a rate, as they are filled at the current market price. The system will use the reference rate we define to mark the take position rate in simulations, and will use it as a starting point for internal calculations too. \",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"346f8ae6-adfd-40b3-ba41-671774a58ce8","savedPayload":{"position":{"x":37525.342739652144,"y":43926.87086397098},"targetPosition":{"x":37155,"y":44182.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Target Rate","name":"New Target Rate","id":"70b22c9f-5e23-480a-8418-0e7dedc3ca90"}}},{"type":"Tutorial Step","name":"How do we go about it?","config":"{\n \"subTitle\": \"How Do We Go About It?\",\n \"gif\": \"\",\n \"image\": \"target-rate\",\n \"definition\": \"Remember we are taking the position at the close of the 1H candle, whenever the take position event validates true.\",\n \"paragraph1\": \"\",\n \"callOut\": \"What would be a reasonable rate, then?\",\n \"paragraph2\": \"Well... a good choice would be the rate at the close of the candle, right? Our target rate formula would then be:

chart.at01hs.candle.close\",\n \"note\": \"\",\n \"tip\": \"Go ahead and edit the formula with the above syntax!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"3107501c-b41c-434c-ba44-f264fb0e86bd","savedPayload":{"position":{"x":37575.757309208435,"y":44022.92780083086},"targetPosition":{"x":37155,"y":44182.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Formula","name":"New Formula","id":"0bae61e3-861b-42f9-abaa-85da233005eb"}}},{"type":"Tutorial Step","name":"Target Size","config":"{\n \"subTitle\": \"The Target Size\",\n \"gif\": \"\",\n \"image\": \"target-size-in-base-asset\",\n \"definition\": \"I mentioned earlier that—like when setting up a manual order at the exchange—you may define the size in either of the assets!\",\n \"paragraph1\": \"What I didn't mention is that you can't have two definitions! To avoid ambiguities, only one is allowed!\",\n \"callOut\": \"We will define the size in the base asset, so delete the ->Target Size In Quoted Asset-> node!\",\n \"paragraph2\": \"We will keep this one simple too. For the time being, we will use the whole balance available to the session. \",\n \"note\": \"\",\n \"tip\": \"How do we do that? You'll see!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"2b48e7e9-4f45-4e5d-8590-7801a8969903","savedPayload":{"position":{"x":37601.718993344126,"y":44128.25849388511},"targetPosition":{"x":37155,"y":44182.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","id":"d623a61e-83e7-401f-a26f-f48618f20d2f"}}},{"type":"Tutorial Step","name":"The whole balance?","config":"{\n \"subTitle\": \"The Whole Balance?\",\n \"gif\": \"\",\n \"image\": \"balance\",\n \"definition\": \"We haven't discussed position size so far, as the intention of the testing of the trading idea is measuring hit ratio only.\",\n \"paragraph1\": \"For the same reason, we are not going to get into further considerations at this point. We'll save a few thoughts in that regard for when we define the execution algorithm and orders.

I just brought you to the definition of the ->Trading Parameters-> of the trading session so that you may check how the initialBalance is defined! \",\n \"callOut\": \"Check the ->Session Base Asset-> and the ->Session Quoted Asset-> configuration!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"818c2ffd-001e-45d0-98aa-9dc6aaa5c0cd","savedPayload":{"position":{"x":37601.718993344126,"y":44236.74150611489},"targetPosition":{"x":37155,"y":44182.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Parameters","name":"New Trading Parameters","id":"8f4b2297-8462-47d3-863a-d92b1d4a0b39"}}},{"type":"Tutorial Step","name":"Initial Balance vs Balance","config":"{\n \"subTitle\": \"Initial Balance vs. Balance\",\n \"gif\": \"\",\n \"image\": \"balance\",\n \"definition\": \"As you can see, the initialBalance is defined in the ->Session Base Asset->. This is just a matter of choice!\",\n \"paragraph1\": \"We defined it in the base asset because it makes sense for our trading idea, which intends to sell some bitcoin we hold to rebuy it at a cheaper price.\",\n \"callOut\": \"But we can't use the value of the initialBalance for our target size! Can you see why?\",\n \"paragraph2\": \"The target size we define is valid for each position the strategy will take. If it was the initialBalance and we lost some bitcoin in the first position, we would get an error in the second position, as—by then—we wouldn't have that much bitcoin any more!\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"7186dd16-77df-4523-b4b4-789aea46114e","savedPayload":{"position":{"x":37575.757309208435,"y":44342.07219916914},"targetPosition":{"x":37155,"y":44182.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"It's the balance!","config":"{\n \"subTitle\": \"It's The Balance!\",\n \"gif\": \"\",\n \"image\": \"balance\",\n \"definition\": \"What we need is the ->Balance->! What balance? Take a minute and see if you can finish tying up the loose ends of the reasoning!\",\n \"paragraph1\": \"We defined the initialBalance in the base asset and will define the target size in the base asset...\",\n \"callOut\": \"We need the current balance of the base asset! Can you find the node in the ->Trading Engine-> that holds precisely that value?\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"->Current-> (we need the balance at the moment of evaluation!) > ->Episode-> (because it's the balance kept for the whole session) > ... what else?\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"0ebf48d2-ece8-44a6-8959-d10f48a585b5","savedPayload":{"position":{"x":37525.342739652144,"y":44438.12913602902},"targetPosition":{"x":37155,"y":44182.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Engine","name":"Low-Frequency","id":"eb20f622-71bf-4479-a574-d2320e1d4bd1"}}},{"type":"Tutorial Step","name":"There It Is!","config":"{\n \"subTitle\": \"There It Is!\",\n \"gif\": \"\",\n \"image\": \"balance\",\n \"definition\": \"I hope you found it on your own, but don't worry if you didn't! We'll go through the whole reasoning once again!\",\n \"bulletListIntro\": \"The goal is that you learn how to find the data you need in the confines of the ->Trading Engine->, which is structured logically... Make sure you read the tooltips!\",\n \"bulletArray\": [\n [\n \"->Current->\",\n \"because we need the balance at the moment of evaluation!\"\n ],\n [\n \"->Episode->\",\n \"because is the running balance kept along the whole trading session!\"\n ],\n [\n \"->Episode Base Asset->\",\n \"because it's consistent with the rest of our definitions!\"\n ],\n [\n \"->Balance->\",\n \"because it's what we wanted!\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"0c1f83f7-efb7-403b-8daa-91c003223390","savedPayload":{"position":{"x":37453.40519620836,"y":44519.329836676996},"targetPosition":{"x":37155,"y":44182.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Balance","name":"Base Asset","id":"72f6a6b6-f35b-4d80-b8ad-4a4ed55f2387"}}},{"type":"Tutorial Step","name":"Copy the node's path","config":"{\n \"subTitle\": \"Copy The Node's Path!\",\n \"gif\": \"\",\n \"image\": \"copy-path\",\n \"definition\": \"Do you remember how to extract the address of the node so that we may reference it from our formula?\",\n \"paragraph1\": \"\",\n \"callOut\": \"Open the node's menu and click on the Copy Node Path button!\",\n \"paragraph2\": \"The following string should end up in your clipboard:
tradingEngine.current.episode.
episodeBaseAsset.balance.value
\",\n \"note\": \"I introduced a line break so that the string fits the tutorial. Make sure the line is not broken in your formula as it would be an invalid path!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"4df291dd-90d3-46ec-967d-1c4878964454","savedPayload":{"position":{"x":37364.1254274197,"y":44580.955211543944},"targetPosition":{"x":37155,"y":44182.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Circling Back!","config":"{\n \"subTitle\": \"Circling Back!\",\n \"gif\": \"\",\n \"image\": \"formula\",\n \"definition\": \"Awesome! We have the path of the appropriate ->Balance-> node and we now may use it in our formula!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Paste the string you copied in the formula of the ->Target Size In Base Asset-> node! That's it!\",\n \"paragraph2\": \"\",\n \"note\": \"Notice that using the balance for the target size is an arbitrary decision! We could have used anything else! A percentage of the balance, a fixed number, a percentage of the initial balance... anything! Or, actually, whatever makes sense for your strategy!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"3509f3b2-e886-47d9-b7e6-2dcdca9125b9","savedPayload":{"position":{"x":37262.6920489294,"y":44619.42381784172},"targetPosition":{"x":37155,"y":44182.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Formula","name":"New Formula","id":"964f5306-f46f-4ba7-a367-fd24ac10a112"}}}],"tutorialTopics":[],"id":"ebe7e53c-0654-496f-b295-bf259ef4d24d","savedPayload":{"position":{"x":37155,"y":44182.5},"targetPosition":{"x":36705,"y":44182.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Execution","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Time to talk execution","config":"{\n \"subTitle\": \"Time to Talk Execution!\",\n \"gif\": \"\",\n \"image\": \"open-execution\",\n \"definition\": \"We finished the definition of the rate and size targets. Let's define how we are going to take the position in terms of execution!\",\n \"paragraph1\": \"\",\n \"callOut\": \"We are in the ->Open Execution-> section of the open stage! Go exploring the ->Execution Algorithm-> and the ->Market Sell Order-> I created!\",\n \"paragraph2\": \"\",\n \"note\": \"I created the execution algo and the market order ahead of time so that I can reference them easily and take you to the right nodes during the tutorial. Both are in a freshly-created state, right as they'd be had you created them right now!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"e5b09d5a-cfc6-41cb-b814-d144b356c53b","savedPayload":{"position":{"x":33699.8755648299,"y":45238.62977226002},"targetPosition":{"x":33251.057647468726,"y":45271.225432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Open Execution","name":"New Open Execution","id":"cdce969d-baf7-42d7-a89c-58937a31acc3"}}},{"type":"Tutorial Step","name":"Let's do some reading","config":"{\n \"subTitle\": \"Let's Do Some Reading!\",\n \"gif\": \"\",\n \"image\": \"open-execution\",\n \"definition\": \"Read these first few paragraphs about the ->Open Execution-> so that we may then start working on the definitions.\",\n \"paragraph1\": \"\",\n \"callOut\": \"The point to take home is that Superalgos proposes granular definitions of orders set up within execution algorithms, which in turn are built into strategies, as the way to program both simple and complex execution logic.\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"We'll do some more reading before we bring all this down to Earth!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"https://docs.superalgos.org/suite-strategies-open-execution.html\"\n}","project":"Superalgos","id":"155f2e47-ad69-4322-bb57-d71761560a81","savedPayload":{"position":{"x":33694.63438388797,"y":45346.986100938986},"targetPosition":{"x":33251.057647468726,"y":45271.225432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Execution algorithm","config":"{\n \"subTitle\": \"Execution Algorithm\",\n \"gif\": \"\",\n \"image\": \"execution-algorithm\",\n \"definition\": \"Take a look at this section about the ->Execution Algorithm->! Click the learn more... link and read the Configuration section too!\",\n \"paragraph1\": \"For our test—and for most simple strategies—one execution algorithm is all we need.\",\n \"callOut\": \"Once you finish reading, take a look at the configuration of the algorithm!\",\n \"paragraph2\": \"Notice that the algo is assigned—by default—100% of the stage's size.\",\n \"note\": \"\",\n \"tip\": \"This is the first instance in which the target size we defined earlier comes into the scene!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"https://docs.superalgos.org/suite-strategies-open-execution.html#execution-algorithm\"\n}","project":"Superalgos","id":"bf5e1b35-9389-4c78-8a3b-f9cede4f17d2","savedPayload":{"position":{"x":33663.61413536119,"y":45450.93949493738},"targetPosition":{"x":33251.057647468726,"y":45271.225432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Market Orders","config":"{ \n \"subTitle\": \"Market Sell Orders\",\n \"gif\": \"\",\n \"image\": \"market-sell-order\",\n \"definition\": \"We'll use a single execution algorithm handling 100% of the size we defined earlier! Time to learn a bit about orders!\",\n \"paragraph1\": \"There is quite a bit of depth on the matter of how orders work! We'll get into the details on a tutorial focusing on the nuances of order execution. But for the time being, we'll keep it simple:\",\n \"callOut\": \"A market sell order is an instruction sent to the exchange to sell the base asset, for immediate execution at current market prices.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Check the configuration of the sell order!\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n }","project":"Superalgos","id":"89b306a5-da66-4a43-b90f-01138a38d29a","savedPayload":{"position":{"x":33608.61760333992,"y":45544.44856085123},"targetPosition":{"x":33251.057647468726,"y":45271.225432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Market Sell Order","name":"New Market Sell Order","id":"29a57a7b-5f26-4e92-a6c6-60133af828c1"}}},{"type":"Tutorial Step","name":"100% of 100%","config":"{ \n \"subTitle\": \"100% of 100% = ?\",\n \"gif\": \"\",\n \"image\": \"market-sell-order\",\n \"definition\": \"As you can see, the percentageOfAlgorithmSize is also 100% by default, and that is what we'll use for the test.\",\n \"paragraph1\": \"That is, we'll set up a single order to enter the position. The order will handle 100% of what is assigned to the algorithm, which in turn handles 100% of what is assigned to the stage. And we assigned the stage 100% of the balance! In other words, we'll place one market sell order with the size of the ->Balance-> to enter each position.\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"I told you we'd keep it simple! This is the simplest possible order execution arrangement and, as you can see, you just need to create the algo and the order, and use the default settings!\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n }","project":"Superalgos","id":"936504f7-c999-4e42-a800-0cfca2022a83","savedPayload":{"position":{"x":33532.84098636097,"y":45622.078891661266},"targetPosition":{"x":33251.057647468726,"y":45271.225432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Create Order Event","config":"{ \n \"subTitle\": \"Create Order Event\",\n \"gif\": \"\",\n \"image\": \"create-order-event\",\n \"definition\": \"This event is self-explanatory and works like the rest of the events you're already familiar with, with situations and conditions.\",\n \"paragraph1\": \"Although the decision to take a position is made at the ->Trigger Stage->, the ->Create Order Event-> offers granular control over each order, so that you may decide the precise moment or market situation in which to place it.\",\n \"callOut\": \"In our case, we'll place the order immediately after the ->Take Position Event-> is triggered, so go ahead and type true on the JavaScript Code node of the one condition created by default with the order. This makes the condition return true as soon as it's evaluated.\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n }","project":"Superalgos","id":"4e45f1a2-5aa9-4446-af61-c820bb61d2d3","savedPayload":{"position":{"x":33440.688145966364,"y":45679.318894715565},"targetPosition":{"x":33251.057647468726,"y":45271.225432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Create Order Event","name":"New Create Order Event","id":"3e26be06-9e44-49c8-bcd1-b1b10d6b9032"}}},{"type":"Tutorial Step","name":"Simulated exchange events","config":"{ \n \"subTitle\": \"Simulated Exchange Events\",\n \"gif\": \"\",\n \"image\": \"simulated-exchange-events\",\n \"definition\": \"This section of the definitions offers another example of granular control at the level of the order, in this case affecting how orders are simulated!\",\n \"paragraph1\": \"These definitions—if used—override the ->Slippage-> and ->Fee Structure-> ->Trading Parameters-> at the level of the trading session, which affect all orders equally. Notice there is a node that may even define how to simulate the filling of orders! If there is no definition of how to simulate the individual order, the session-level parameters remain relevant.\",\n \"callOut\": \"For the time being, we are not going to use these granular-level simulation parameters, so go ahead and delete the simulated exchange events node!\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n }","project":"Superalgos","id":"83c52b5c-c65d-4858-af67-16f23d82d82c","savedPayload":{"position":{"x":33337.514670277895,"y":45712.841989095556},"targetPosition":{"x":33251.057647468726,"y":45271.225432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Market Sell Order","name":"New Market Sell Order","id":"29a57a7b-5f26-4e92-a6c6-60133af828c1"}}},{"type":"Tutorial Step","name":"Close stage event","config":"{ \n \"subTitle\": \"Close Stage Event\",\n \"gif\": \"\",\n \"image\": \"close-stage-event\",\n \"definition\": \"We are not going to use the ->Close Stage Event-> either, so go ahead and delete it too!\",\n \"paragraph1\": \"The open stage closes automatically once the target size is filled, or when the stop loss or take profit targets are hit. The former is what we expect to happen in our case, as we are using a single market order to take the position, and it is placed as soon as the take position event is triggered. It is safe to assume that the order will get filled immediately.\",\n \"callOut\": \"The close stage event offers—again—an additional level of control! For example, when the position is taken with multiple orders, you may want to stop placing orders under certain circumstances.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n }","project":"Superalgos","id":"cfd98cb7-eb9f-4ed9-8c6c-3bafff36ba44","savedPayload":{"position":{"x":33229.316626682245,"y":45720.69993440736},"targetPosition":{"x":33251.057647468726,"y":45271.225432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Open Stage","name":"New Open Stage","id":"f31f4f8e-200f-415c-a327-1fcc08280f97"}}},{"type":"Tutorial Step","name":"Back to the order","config":"{ \n \"subTitle\": \"Back to the Order\",\n \"gif\": \"\",\n \"image\": \"market-order\",\n \"definition\": \"There's one more thing we need to take care of before we move on to the definitions in the manage stage!\",\n \"paragraph1\": \"The ->Trading Bot-> keeps track of each order at all times and saves the corresponding information in a specific structure of nodes in the ->Trading Engine->.\",\n \"callOut\": \"Expand the Market Sell Order #1 node and take a look inside.\",\n \"paragraph2\": \"\",\n \"note\": \"Because each order has a life of it's own, the bot stores information about each order in separate structures of nodes, one per order.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n }","project":"Superalgos","id":"aa3013b5-fc5d-4e06-963e-32bf2b015378","savedPayload":{"position":{"x":33122.38209218931,"y":45702.43605543194},"targetPosition":{"x":33251.057647468726,"y":45271.225432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}},{"type":"Tutorial Step","name":"Here's the thing...","config":"{ \n \"subTitle\": \"Here's The Thing!\",\n \"gif\": \"\",\n \"image\": \"market-order\",\n \"definition\": \"The system doesn't know which arrangement of execution algorithms and orders you are going to create!\",\n \"paragraph1\": \"For that reason, it doesn't know what kind of data structure you will need at the trading engine to keep track of all your orders!\",\n \"callOut\": \"For the time being, there is a manual process that is required to tell Superalgos what orders you need to keep track of, and where the information should be stored! And that is what we need to do next!\",\n \"paragraph2\": \"Don't worry, it's no big deal! As it's often the case, it takes longer to explain than to do it!\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n }","project":"Superalgos","id":"e0702849-f504-41e6-a95d-75ed39a3c1a1","savedPayload":{"position":{"x":33022.92571325261,"y":45659.11178242884},"targetPosition":{"x":33251.057647468726,"y":45271.225432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"It's all about references","config":"{ \n \"subTitle\": \"It's All About References!\",\n \"gif\": \"\",\n \"image\": \"market-order\",\n \"definition\": \"Do you know what references are and how to establish them? If not, read this page in the docs!\",\n \"paragraph1\": \"References are a crucial concept in Superalgos, as they relate information across nodes and hierarchies!\",\n \"callOut\": \"You must establish a reference from the ->Market Sell Order-> node in the trading system to this Market Sell Order #1 ->Market Order-> node in the trading engine hierarchy! Go ahead! Do it!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"I'll give you a couple of tips on the next step if you are not sure how to go about this!\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"https://docs.superalgos.org/suite-references.html\",\n \"positionAtReferenceParent\": true\n }","project":"Superalgos","id":"1a577022-6df7-409e-aedd-80fb6ee1c3dd","savedPayload":{"position":{"x":32936.72753310671,"y":45593.24496466767},"targetPosition":{"x":33251.057647468726,"y":45271.225432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}},{"type":"Tutorial Step","name":"Tricks of the trade","config":"{\n \"subTitle\": \"The Tricks of the Trade\",\n \"gif\": \"\",\n \"image\": \"mouse-pointer\",\n \"definition\": \"Establishing a reference is kid's play! The only 'challenge' here is that the node to be referenced is far away from the originator.\",\n \"bulletListIntro\": \"These UI tricks may make your life easier:\",\n \"bulletArray\": [\n [\n \"Use the design space map\",\n \"as many times as required to find your way from node to node.\"\n ],\n [\n \"Pin the node\",\n \"you are going to move across the design space, so that you may drop it at any point to check the design space map for directions.\"\n ],\n [\n \"Use Ctrl / Command + arrow keys\",\n \"to drag the node across the screen after clicking on it with the mouse. Keep keys pressed and the node flies!\"\n ],\n [\n \"Remove the pin\",\n \"once the reference is established so that the node goes back to its place.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"21571682-9f27-4060-8584-86d364b530f3","savedPayload":{"position":{"x":32868.79707666404,"y":45508.66354218058},"targetPosition":{"x":33251.057647468726,"y":45271.225432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"16cbbf63-86eb-467e-892d-c6ba3545f7ca","savedPayload":{"position":{"x":36985.57041083643,"y":44534.324167110615},"targetPosition":{"x":36705,"y":44182.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Manage Stage","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Position Management","config":"{\n \"subTitle\": \"Position Management\",\n \"gif\": \"\",\n \"image\": \"manage-stage\",\n \"definition\": \"We finished the definitions required to take a position and we are ready to define the initial stop loss and take profit targets!\",\n \"bulletListIntro\": \"Let's remember what we had decided our targets would be while developing the idea.\",\n \"bulletArray\": [\n [\n \"For downtrends:\",\n \"we will set 3% stop loss and 10% take profit targets.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"Collapse the open stage node as we are not going to touch it for a while.

Now expand the ->Manage Stage-> node and take a look inside!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"d195a554-00f4-4124-b5ed-72dca5d392f0","savedPayload":{"position":{"x":32794.98016100172,"y":45555.288216447334},"targetPosition":{"x":32747.942352531274,"y":45107.753363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Manage Stage","name":"New Manage Stage","id":"b5b4f055-28ab-4d73-b81b-23f70b8a9b2d"}}},{"type":"Tutorial Step","name":"Phase 1","config":"{ \n \"subTitle\": \"Phase 1\",\n \"gif\": \"\",\n \"image\": \"phase-0\",\n \"definition\": \"There is enormous depth to the concept of managing positions and Superalgos offers robust and flexible tools for that matter!\",\n \"paragraph1\": \"However, we don't need to get into the details at this point, as—for the sake of our test—all we need to do is set up initial targets.\",\n \"callOut\": \"Initial targets are set on Phase #1\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Later on, you will learn that you may manage your positions in phases, each with its formulas and events to switch back and forth to other phases.\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n }","project":"Superalgos","id":"9d4e2108-5d21-4295-ad3f-dd9b49122f2c","savedPayload":{"position":{"x":32564.910863147164,"y":45518.84881947078},"targetPosition":{"x":32747.942352531274,"y":45107.753363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Managed Stop Loss","config":"{\n \"subTitle\": \"Managed Stop Loss\",\n \"gif\": \"\",\n \"image\": \"stop-loss\",\n \"definition\": \"Let's prepare the syntax to use for the Phase #1 formula of the ->Managed Stop Loss->!\",\n \"paragraph1\": \"We want to set a stop loss target 3% above the rate at which we entered the position. How do we do that?\",\n \"callOut\": \"Go to the ->Trading Engine-> and try to find the node that holds the information of the rate at which the position is entered.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Remember the logic to navigate the data structure! First, determine the context in which the information exists!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"40063d1b-f797-452b-8a9b-f5d0f69c4824","savedPayload":{"position":{"x":32383.884705062548,"y":45372.25672706323},"targetPosition":{"x":32747.942352531274,"y":45107.753363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","id":"26a0240a-ab1b-4276-a9f9-ab1d6a7f788a"}}},{"type":"Tutorial Step","name":"Entry Target Rate","config":"{\n \"subTitle\": \"Entry Target Rate\",\n \"gif\": \"\",\n \"image\": \"entry-target-rate\",\n \"definition\": \"We are in the ->Current-> > ->Position-> section of the ->Trading Engine-> and, to your left, the ->Entry Target Rate-> node!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Copy the node path from the menu!\",\n \"paragraph2\": \"Now, let's add 3% to the node's value:

tradingEngine.current.
position.entryTargetRate.value * 1.03\",\n \"note\": \"\",\n \"tip\": \"Go ahead and use the above for the Phase #1 stop loss formula! Remember I introduced a break in the line that you must remove!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"6d948eb3-7ed6-4111-a636-278b5007c086","savedPayload":{"position":{"x":32300.40749961555,"y":45154.79117200206},"targetPosition":{"x":32747.942352531274,"y":45107.753363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Entry Target Rate","name":"New Entry Target Rate","id":"71b3e7d9-80d0-422d-999e-99549f5ab59d"}}},{"type":"Tutorial Step","name":"Managed Take Profit","config":"{\n \"subTitle\": \"Managed Take Profit\",\n \"gif\": \"\",\n \"image\": \"managed-take-profit\",\n \"definition\": \"Now that we have a formula for a fixed stop loss target, it shouldn't be hard to come up with the formula for the take profit target!\",\n \"paragraph1\": \"We just need to subtract 10% to the entry target rate node's value:

tradingEngine.current.
position.entryTargetRate.value * 0.9\",\n \"callOut\": \"Use the above for the Phase #1 take profit formula!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"We are done with the manage stage!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"93ca00df-b029-4db9-b5e0-aa62fd073819","savedPayload":{"position":{"x":32336.846896592102,"y":44924.7218741475},"targetPosition":{"x":32747.942352531274,"y":45107.753363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Managed Take Profit","name":"New Managed Take Profit","id":"3ea4ea70-17fc-4cf2-999d-0054a6a28b87"}}}],"tutorialTopics":[],"id":"49edb667-7a9d-46ff-ad9f-d002d2c843ad","savedPayload":{"position":{"x":36604.865579719655,"y":44621.21756048182},"targetPosition":{"x":36705,"y":44182.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Close Stage","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Closing a Position","config":"{\n \"subTitle\": \"Closing a Position\",\n \"gif\": \"\",\n \"image\": \"close-stage\",\n \"definition\": \"Let's do some quick reading about the ->Close Stage->! Take a look at this page!\",\n \"paragraph1\": \"The close stage features similar workings as the open stage, provides the same level of flexibility to define execution, and requires the same kind of definitions.\",\n \"callOut\": \"Take a few minutes to think about how to close this position. Think about what our target rate and target size should be.\",\n \"paragraph2\": \"\",\n \"note\": \"Also, think about what type of order we should use!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"https://docs.superalgos.org/suite-strategies-close.html\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"de52fc54-219f-409e-b3de-7def3a231295","savedPayload":{"position":{"x":32751.36954041203,"y":45486.26153151733},"targetPosition":{"x":32706.56400944391,"y":45038.4976826029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Close Stage","name":"New Close Stage","id":"d6a475a0-48ef-40a2-b748-9682956eb87a"}}},{"type":"Tutorial Step","name":"Initial Targets","config":"{\n \"subTitle\": \"Initial Targets\",\n \"gif\": \"\",\n \"image\": \"initial-targets\",\n \"definition\": \"For the target rate, we can use the same principle as earlier: chart.at01hs.candle.close Use it for the formula!\",\n \"bulletListIntro\": \"For the target size, we should consider the following:\",\n \"bulletArray\": [\n [\n \"\",\n \"We wish to use all the USDT we obtained upon entering the position.\"\n ],\n [\n \"\",\n \"The exchange charges fees by subtracting from the asset we obtain on any given transaction.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"Consider the above and pay a visit to the ->Trading Engine->. Find the nodes that store the information we need and try to come up with a formula for the target size!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"f3c10e4a-e46c-49e9-97e6-8c937ea68991","savedPayload":{"position":{"x":32595.52318048328,"y":45474.58246140599},"targetPosition":{"x":32706.56400944391,"y":45038.4976826029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Target Rate","name":"New Target Rate","id":"20d38486-504d-4354-b11c-9179f5163511"}}},{"type":"Tutorial Step","name":"Target size","config":"{\n \"subTitle\": \"How to Find Stuff\",\n \"gif\": \"\",\n \"image\": \"trading-engine\",\n \"definition\": \"Let me walk you through the reasoning to find the required information on the ->Trading Engine->\",\n \"bulletListIntro\": \"We are in the Current > Strategy Open Stage > Stage Quoted Asset section. This is why:\",\n \"bulletArray\": [\n [\n \"->Current->\",\n \": because it's all about the current position.\"\n ],\n [\n \"->Strategy Open Stage->\",\n \": because the transaction to enter the position happened during this stage. We want to know how much USDT we got!\"\n ],\n [\n \"->Stage Quoted Asset->\",\n \": because we sold the base asset and obtained the quoted asset, and it's the quoted asset we want to get rid of during the close stage! The question is how much of it!\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"Any ideas for the formula?\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"5e8ec57a-721a-4041-93e8-2cb188b8eb13","savedPayload":{"position":{"x":32453.069983315283,"y":45410.3051310451},"targetPosition":{"x":32706.56400944391,"y":45038.4976826029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Stage Quoted Asset","name":"New Stage Quoted Asset","id":"48381545-119a-422d-b6ea-5868072f8cf4"}}},{"type":"Tutorial Step","name":"And the winner is...","config":"{\n \"subTitle\": \"And the Winner Is...\",\n \"gif\": \"\",\n \"image\": \"target-size\",\n \"definition\": \"The answer is ->Size Filled-> minus ->Fees Paid->! I'll explain why none of the other nodes fit the bill!\",\n \"bulletArray\": [\n [\n \"->Target Size->:\",\n \"no, because this is just the target we defined!\"\n ],\n [\n \"->Size Placed->:\",\n \"closer, but no, because the order won't necessarily fill for the exact amount placed, due to decimal roundings or other reasons!\"\n ],\n [\n \"->Size Filled->:\",\n \"yes! But remember the exchange takes its cut too, so you must subtract the fees! \"\n ]\n ],\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Can you produce the correct syntax for the formula? Remember you can copy the paths of the nodes holding the data we need!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"cf3b572a-d45c-449e-abc7-a89df9d06ab1","savedPayload":{"position":{"x":32341.191906871776,"y":45301.182335108555},"targetPosition":{"x":32706.56400944391,"y":45038.4976826029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Target Size in Quoted Asset","config":"{\n \"subTitle\": \"Target Size in Quoted Asset\",\n \"gif\": \"\",\n \"image\": \"target-size-in-quoted-asset\",\n \"definition\": \"I didn't mention this earlier: we will define the target size in the quoted asset, not the base asset as we did for the open stage!\",\n \"paragraph1\": \"It's natural we do so, as that is the asset we now have!\",\n \"callOut\": \"Delete the ->Target Size In Base Asset-> node!\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"Copying paths, I built this for the target size formula... Use it, making sure you don't introduce line breaks on the nodes' paths!

tradingEngine.current.strategyOpenStage.
stageQuotedAsset.sizeFilled.value -
tradingEngine.current.strategyOpenStage.
stageQuotedAsset.feesPaid.value\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"f189a7ab-488a-49e9-b700-4fc2e1e0e19d","savedPayload":{"position":{"x":32273.383098316404,"y":45160.37589326726},"targetPosition":{"x":32706.56400944391,"y":45038.4976826029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","id":"fc87b998-1c00-4ba9-9b92-50ac0b0e0dd5"}}},{"type":"Tutorial Step","name":"Market Buy Order","config":"{\n \"subTitle\": \"Market Buy Order\",\n \"gif\": \"\",\n \"image\": \"market-buy-order\",\n \"definition\": \"Just like for the open stage, I created the execution algorithm and the market buy order...\",\n \"bulletListIntro\": \"Let's take care of a couple of things before we move on:\",\n \"bulletArray\": [\n [\n \"Delete the ->Simulated Exchange Events-> node!\",\n \"We are not going to use it for the time being...\"\n ],\n [\n \"Enter true in the JavaScript Code node\",\n \"of the ->Create Order Event-> condition.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Now you have to create the reference from the ->Market Buy Order-> node to the ->Market Order-> in the trading engine. I will show you which one in the next step!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"d4bb9da3-ccd1-4a35-80d7-fc53f0a618b0","savedPayload":{"position":{"x":32257.82230071238,"y":45004.86914048901},"targetPosition":{"x":32706.56400944391,"y":45038.4976826029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Market Buy Order","name":"New Market Buy Order","id":"39cfc0ee-887a-4925-a296-0256a200482a"}}},{"type":"Tutorial Step","name":"This is it!","config":"{\n \"subTitle\": \"This is it!\",\n \"gif\": \"\",\n \"image\": \"market-order\",\n \"definition\": \"This is the node you have to create the reference to: Market Buy Order #1.\",\n \"bulletListIntro\": \"Remember the tricks for the trip!\",\n \"bulletArray\": [\n [\n \"Use the design space map\",\n \"as many times as required to find your way from node to node.\"\n ],\n [\n \"Pin the node\",\n \"you are going to move across the design space, so that you may drop it at any point to check the design space map for directions.\"\n ],\n [\n \"Use Ctrl / Command + arrow keys\",\n \"to drag the node across the screen after clicking on it with the mouse. Keep keys pressed and the node flies!\"\n ],\n [\n \"Remove the pin\",\n \"once the reference is established so that the node goes back to its place.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"05b53511-848c-42f8-8a7f-89448e3446c0","savedPayload":{"position":{"x":32296.386375903658,"y":44853.418486194125},"targetPosition":{"x":32706.56400944391,"y":45038.4976826029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}},{"type":"Tutorial Step","name":"We're almost done!","config":"{\n \"subTitle\": \"We're almost done!\",\n \"gif\": \"\",\n \"image\": \"close-stage-event\",\n \"definition\": \"We're virtually ready to run a new backtest, this time, with complete definitions in all stages!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Before we do that, let's delete the Close Stage Event as we are not going to use it either!\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"That's it! It wasn't hard at all right? This basic set up is OK for testing simple trading ideas. In the next few tutorials, we're going to go through more elaborate management and execution setups!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"abf4f8de-6f76-4276-87b4-c780b2c2fb25","savedPayload":{"position":{"x":32384.42392727704,"y":44724.29111446417},"targetPosition":{"x":32706.56400944391,"y":45038.4976826029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Close Stage","name":"New Close Stage","id":"d6a475a0-48ef-40a2-b748-9682956eb87a"}}}],"tutorialTopics":[],"id":"f4188b3b-86fb-4a11-9e65-c4861cece1c2","savedPayload":{"position":{"x":36299.564009443915,"y":44377.7476826029},"targetPosition":{"x":36705,"y":44182.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"First Backtest","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"First Backtest","config":"{\n \"subTitle\": \"First Backtest!\",\n \"gif\": \"\",\n \"image\": \"backtesting-session\",\n \"definition\": \"Now that we have the basic definitions in all stages, we may do a first backtest!\",\n \"paragraph1\": \"We'll be using the same parameters we ended up with at the end of the previous tutorial. Feel free to go and check!\",\n \"callOut\": \"Start the task for BB Breakdown 2 and start the corresponding backtesting session too!\",\n \"paragraph2\": \"\",\n \"note\": \"I'm assuming you have the data we mined during the previous tutorial! If you don't this is unlikely to work! \",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"7e4bef9d-2beb-456b-bf2d-f18e43c5a7be","savedPayload":{"position":{"x":32371.025035246486,"y":44947.8582774755},"targetPosition":{"x":32706.56400944391,"y":44648.0023173971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Task","name":"BB Breakdown 2","id":"45c42479-b3cc-49bd-ac69-3ba2dea67d08"}}},{"type":"Tutorial Step","name":"Ready to Rock?","config":"{\n \"subTitle\": \"Ready to Rock?\",\n \"gif\": \"\",\n \"image\": \"trading-strategy\",\n \"definition\": \"We are on a new chart! Let's set it up so that we may see the results of the backtest!\",\n \"bulletListIntro\": \"Make sure the following layers are turned on in each of the layer managers:\",\n \"bulletArray\": [\n [\n \"Masters Data:\",\n \"Candles and Bollinger Bands.\"\n ],\n [\n \"Simulation Objects:\",\n \"Strategies, Market Buy Orders, Market Sell Orders, Position Base Asset, Stop Loss, and Take Profit.\"\n ],\n [\n \"Trading System:\",\n \"Trading System Errors and Trading System Warnings.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"The next step shows what you should see!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"repositionAtTimeMachineReferenceParent\": true,\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-23T05:14:21.951Z\",\n \"toDate\": \"2020-03-07T07:22:37.749Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7338.746621498382,\n \"maxValue\": 10023.101181498383\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"729a18c6-c4e3-4122-8f93-ef3fde80b418","savedPayload":{"position":{"x":32281.816510805147,"y":44796.62789527692},"targetPosition":{"x":32706.56400944391,"y":44648.0023173971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown 2 Backtesting Session My Computer Binance BTC/USDT","id":"ac37953d-bcaa-48d6-b2de-02479fbbd6f0"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"trading-systems-position\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-23T05:14:21.951Z\",\n \"toDate\": \"2020-03-07T07:22:37.749Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7338.746621498382,\n \"maxValue\": 10023.101181498383\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"019dbcfc-22a2-4a6b-ab43-c9d922895daa","savedPayload":{"position":{"x":32257.271942685893,"y":44622.77061614036},"targetPosition":{"x":32706.56400944391,"y":44648.0023173971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown 2 Backtesting Session My Computer Binance BTC/USDT","id":"ac37953d-bcaa-48d6-b2de-02479fbbd6f0"}}},{"type":"Tutorial Step","name":"The first position","config":"{\n \"subTitle\": \"The First Position\",\n \"gif\": \"\",\n \"image\": \"layer\",\n \"definition\": \"Remember the Feb 28th case we analyzed in the previous tutorial? This is it! This is the position we got from the rules defined!\",\n \"paragraph1\": \"Take a moment to study what the simulation object layers show!\",\n \"callOut\": \"Let's turn on a few more Simulation Object layers: Trigger, Open, Manage, and Close Stages!\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"We can now see the four stages in action. Take a minute to read and interpret the graphics. Try to follow the timeline implicit in the drawings of the stages. See when and why each stage opens and closes...\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-23T05:14:21.951Z\",\n \"toDate\": \"2020-03-07T07:22:37.749Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7338.746621498382,\n \"maxValue\": 10023.101181498383\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"a37db7cc-eff0-4242-9159-73e0c4d3bd59","savedPayload":{"position":{"x":32301.128018887823,"y":44452.7546347942},"targetPosition":{"x":32706.56400944391,"y":44648.0023173971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown 2 Backtesting Session My Computer Binance BTC/USDT","id":"ac37953d-bcaa-48d6-b2de-02479fbbd6f0"}}},{"type":"Tutorial Step","name":"Chronology of a Position","config":"{\n \"subTitle\": \"Chronology of a Position\",\n \"gif\": \"\",\n \"image\": \"position\",\n \"definition\": \"Let's take a few minutes to dissect this position, looking particularly into what makes each stage tick...\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": [\n [\n \"->Trigger Stage->:\",\n \"Opens on Feb 17th at 0 hs because the 24H Bollinger SubChannel turned Down and not Side. Go check if that is the case! The stage closes on Feb 28th at 9 hs, after the second breakdown triggers the take position event.\"\n ],\n [\n \"->Open Stage->:\",\n \"Opens when the trigger stage closes, and closes one hour later (!?) after the market sell order is placed.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"One hour later? Yes! Remember we are running the simulation on the 1H time frame! We'll discuss this matter in depth later on!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"b967e1bd-b0bd-4057-aa4c-59417861251d","savedPayload":{"position":{"x":32406.70804936551,"y":44312.46334319968},"targetPosition":{"x":32706.56400944391,"y":44648.0023173971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Manage and Close","config":"{\n \"subTitle\": \"Manage and Close\",\n \"gif\": \"\",\n \"image\": \"position\",\n \"definition\": \"Those were the trigger and open stages. Let's look into the manage and close stages!\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": [\n [\n \"->Manage Stage->:\",\n \"Opens together with the open stage, and remains open while the price bounces around below the stop loss and above the take position target. When the 22 hs candle on Mar 2nd tags the stop loss target, the manage stage closes.\"\n ],\n [\n \"->Close Stage->:\",\n \"Opens after the tagging of the stop loss, and closes one hour later (!?) after placing the market buy order!\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"The one hour later mystery again... Take a minute to reflect on this behavior.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"07b6f26a-215f-4a9e-9133-202f540e385c","savedPayload":{"position":{"x":32557.938431564085,"y":44223.25481875833},"targetPosition":{"x":32706.56400944391,"y":44648.0023173971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Why the time frame matters","config":"{\n \"subTitle\": \"Time Frame Matters!\",\n \"gif\": \"\",\n \"image\": \"time-frame\",\n \"definition\": \"The ->Time Frame-> of the trading session determines how often the trading bot does what it does!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Read this page about the time frame carefully! \",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"In one of the next tutorials, I'll teach you a trick to overcome this one negative aspect of running backtesting sessions on a time frame different than live sessions.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"https://docs.superalgos.org/suite-parameters.html#time-frame\"\n}","project":"Superalgos","id":"dbbf0275-5567-4af3-92cd-c2429561a352","savedPayload":{"position":{"x":32731.795710700648,"y":44198.71025063908},"targetPosition":{"x":32706.56400944391,"y":44648.0023173971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"26a22bf4-d775-442f-852e-91655eb63750","savedPayload":{"position":{"x":36299.564009443915,"y":43987.2523173971},"targetPosition":{"x":36705,"y":44182.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Warnings","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Right\",\n \"slider\": \"\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Warning!","config":"{\n \"subTitle\": \"Warning!\",\n \"gif\": \"\",\n \"image\": \"bullet-warning\",\n \"definition\": \"I see a warning sign with a number 3 below it, on Feb 28th at the 9 hs candle. We should take a look and see what it is about!\",\n \"paragraph1\": \"The number 3 means there are 3 warnings at the same time. In case you forgot, this is what you need to do:\",\n \"callOut\": \"Pull the slider up to the middle of the screen or higher and put the pointer of the mouse on the tiny warning sign or the candle in which the warning happens. \",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Now go and track the warnings in the design space using the map feature to find them!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"c217bac2-6248-4652-97a0-20129402ff83","savedPayload":{"position":{"x":32568.22362138645,"y":44329.15463903105},"targetPosition":{"x":33011.865579719655,"y":44404.53243951818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"4. Testing a Trading Idea - The Other Stages","id":"56a4f43f-c512-42a5-9c31-a2b590b689ef"}}},{"type":"Tutorial Step","name":"Confusing?","config":"{\n \"subTitle\": \"Confusing?\",\n \"gif\": \"\",\n \"image\": \"bullet-warning\",\n \"definition\": \"I'm sure that was a bit confusing! There are more than three nodes with messages, and messages are hard to relate to one another!\",\n \"paragraph1\": \"But don't worry! I'll help you figure this out!\",\n \"callOut\": \"First of all, remember that warnings are not errors!\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"paragraph2\": \"\",\n \"note\": \"We don't need to worry about warnings! Warnings are created every time the trading bot has to make adjustments to information that would otherwise not be obvious. It's kind of a verbose mode that the bot uses to leave a trace of its actions.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"e603b921-c766-4758-bffb-37b2874f7c7b","savedPayload":{"position":{"x":32630.83969006693,"y":44165.11800508628},"targetPosition":{"x":33011.865579719655,"y":44404.53243951818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"4. Testing a Trading Idea - The Other Stages","id":"56a4f43f-c512-42a5-9c31-a2b590b689ef"}}},{"type":"Tutorial Step","name":"Three messages","config":"{\n \"subTitle\": \"Three Warnings?\",\n \"gif\": \"\",\n \"image\": \"bullet-warning\",\n \"definition\": \"Each warning may be displayed in more than one node when the action taken by the trading bot affects multiple nodes.\",\n \"paragraph1\": \"In other words, warnings are displayed in affected nodes, which may be many for any given warning. We'll work with a few examples in a minute!\",\n \"callOut\": \"In fact, let's look into each warning, one by one!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"We're going to take a little detour to explore warnings further. They are a great tool to understand what the trading bot does and how!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-23T09:41:15.612Z\",\n \"toDate\": \"2020-03-07T11:49:31.410Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 6636.325938588502,\n \"maxValue\": 9320.680498588503\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"75c2452d-a367-4fe9-94ce-57d955341cbc","savedPayload":{"position":{"x":32751.463496438744,"y":44037.530048486515},"targetPosition":{"x":33011.865579719655,"y":44404.53243951818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown 2 Backtesting Session My Computer Binance BTC/USDT","id":"ac37953d-bcaa-48d6-b2de-02479fbbd6f0"}}},{"type":"Tutorial Step","name":"Slippage","config":"{\n \"subTitle\": \"Slippage\",\n \"gif\": \"\",\n \"image\": \"slippage\",\n \"definition\": \"We are inside the Market Sell Order #1 structure of nodes we referenced from the market sell order in the trading system.\",\n \"paragraph1\": \"This is the structure of nodes that keeps track of all the variables associated with that order, remember?\",\n \"callOut\": \"Check the warning in the ->Rate-> node!\",\n \"paragraph2\": \"\",\n \"note\": \"The slippage configured as a parameter of the trading session was subtracted from the order rate. This resulted in a lower actual rate. All good! The same message appears on the ->Slippage-> parameter of the trading session... check it out!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"320021da-345a-4f6a-84d7-bf78dc772b82","savedPayload":{"position":{"x":32911.73115943931,"y":43965.81487903636},"targetPosition":{"x":33011.865579719655,"y":44404.53243951818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Rate","name":"New Rate","id":"d1d02b18-2e2a-4646-8b0d-f7144bcdd945"}}},{"type":"Tutorial Step","name":"Actual Size","config":"{\n \"subTitle\": \"Actual Size\",\n \"gif\": \"\",\n \"image\": \"actual-size\",\n \"definition\": \"What happens if the actual rate of the order is different than the rate established as a target? Recalculation time!\",\n \"paragraph1\": \"When the trading bot adjusts a variable in an order, there's a ripple effect of further adjustments.\",\n \"callOut\": \"Check the warning in the Actual Size node!\",\n \"paragraph2\": \"\",\n \"note\": \"For the open stage, we defined the target size in the base asset. However, the system must keep track of variables in both assets! Because the order rate was adjusted, the size of the order in the quoted asset must be adjusted too! \",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"4f1ed1a3-c81e-4356-ba35-53a245bc7619","savedPayload":{"position":{"x":33087.24338020679,"y":43960.89048118498},"targetPosition":{"x":33011.865579719655,"y":44404.53243951818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Actual Size","name":"New Actual Size","id":"cad488ae-7e5d-4600-a796-22708671364c"}}},{"type":"Tutorial Step","name":"Size Placed","config":"{\n \"subTitle\": \"Size Placed\",\n \"gif\": \"\",\n \"image\": \"size-placed\",\n \"definition\": \"This is the ->Stage Quoted Asset-> bit of the ->Strategy Open Stage->. If the actual size changes, what happens with the ->Size Placed->?\",\n \"paragraph1\": \"\",\n \"callOut\": \"Check the warning in the Size Placed node!\",\n \"paragraph2\": \"\",\n \"note\": \"In the context of either the open stage or the close stage, size placed is a variable that accumulates the total size placed during the stage, so it must be adjusted to!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"fdb60c02-93ad-4085-ba69-3a407185718d","savedPayload":{"position":{"x":33251.280014151554,"y":44023.50654986545},"targetPosition":{"x":33011.865579719655,"y":44404.53243951818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Size Placed","name":"New Size Placed","id":"364ee3d9-3cdc-433c-8716-1d3b6bddd980"}}},{"type":"Tutorial Step","name":"Order Management","config":"{\n \"subTitle\": \"Order Management\",\n \"gif\": \"\",\n \"image\": \"trading-bot-instance\",\n \"definition\": \"Most warnings happen when the trading bot is handling orders, syncing with the exchange, or simulating the synchronization.\",\n \"paragraph1\": \"Those operations feature great depth and some intricacy, which we'll cover in future tutorials. In this one, we're just scratching the surface!\",\n \"callOut\": \"If you wish to get to the bone on this matter, you should read this whole Order Management section of the Documentation.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"You don't need to read it now, but feel free to dive into it if so you wish! We'll get back to these pages later on!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"https://docs.superalgos.org/suite-low-frequency-order-management.html\"\n}","project":"Superalgos","id":"1a1b24bc-d727-4a58-9c84-5b345f57b80b","savedPayload":{"position":{"x":33378.86797075132,"y":44144.13035623727},"targetPosition":{"x":33011.865579719655,"y":44404.53243951818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"8cc7e6bf-05d2-4835-866d-b05e45bcf20d","savedPayload":{"position":{"x":36604.865579719655,"y":43743.78243951818},"targetPosition":{"x":36705,"y":44182.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Analysis","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Right\",\n \"slider\": \"\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Back to the Position","config":"{\n \"subTitle\": \"Back to the Position!\",\n \"gif\": \"\",\n \"image\": \"fails\",\n \"definition\": \"Back to this first trade, we discussed how stages work and mentioned that the price tagged the stop loss target.\",\n \"paragraph1\": \"\",\n \"callOut\": \"That means that this first position is a fail!\",\n \"paragraph2\": \"To be fair, the trade went in our favor up to about 3%, but we didn't take profit and let it slip through our fingers. The entry wasn't awful and it may make sense once we start thinking about position management.\",\n \"note\": \"\",\n \"tip\": \"Let's take a little tour along the period tested and make a quick assessment of the rest of the positions taken!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-23T05:14:21.951Z\",\n \"toDate\": \"2020-03-07T07:22:37.749Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7338.746621498382,\n \"maxValue\": 10023.101181498383\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"4e263eb0-05c1-4427-ad3c-ee1502796b47","savedPayload":{"position":{"x":33134.04341376502,"y":44123.100172929015},"targetPosition":{"x":33392.57041083643,"y":44491.425832889385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown 2 Backtesting Session My Computer Binance BTC/USDT","id":"ac37953d-bcaa-48d6-b2de-02479fbbd6f0"}}},{"type":"Tutorial Step","name":"The Key Moment","config":"{\n \"subTitle\": \"The Key Moment\",\n \"gif\": \"\",\n \"image\": \"hits\",\n \"definition\": \"This is the key moment in the period tested. March 2020 saw a clear downtrend that ended with a huge market crash!\",\n \"paragraph1\": \"The good news is that, as we'd seen in the previous tutorial, two good entries anticipated the crash, with the very simple rules we defined. If you ask me, this looks promising, but judge for yourself!\",\n \"callOut\": \"Take some time to fiddle with these positions! Start thinking about how you may manage these trades.\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Once you're done feasting your eyes, we'll take a quick look at the rest of the period tested!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-03-07T06:26:14.440Z\",\n \"toDate\": \"2020-03-17T07:41:42.414Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 3517.5641163470173,\n \"maxValue\": 10197.097255086215\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ]\n}","project":"Superalgos","id":"54ac6433-5543-4c74-965d-2bc866450b63","savedPayload":{"position":{"x":33248.2849035877,"y":44065.18447825802},"targetPosition":{"x":33392.57041083643,"y":44491.425832889385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown 2 Backtesting Session My Computer Binance BTC/USDT","id":"ac37953d-bcaa-48d6-b2de-02479fbbd6f0"}}},{"type":"Tutorial Step","name":"March 18th","config":"{\n \"subTitle\": \"March 18th\",\n \"gif\": \"\",\n \"image\": \"fails\",\n \"definition\": \"This position is a new fail, happening on March 18th, just a few days after one of the major market-crashes in recent history.\",\n \"paragraph1\": \"What can we say about this entry?\",\n \"callOut\": \"Go to the 24H time frame and take a look at the overall context!\",\n \"paragraph2\": \"What I see is a situation of extreme volatility amid a historic pandemic-induced global economic crash. \",\n \"note\": \"\",\n \"tip\": \"Maybe we shouldn't be trading in such conditions?! It certainly seems risky!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-03-16T10:48:16.025Z\",\n \"toDate\": \"2020-03-20T15:14:43.622Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 2683.3549743813956,\n \"maxValue\": 7813.236424933101\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\"value\":\"01-hs\"}\n }\n ]\n}","project":"Superalgos","id":"0f188ec2-d346-4500-afd5-b2082dfe6ff5","savedPayload":{"position":{"x":33374.21554710872,"y":44041.800323184325},"targetPosition":{"x":33392.57041083643,"y":44491.425832889385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown 2 Backtesting Session My Computer Binance BTC/USDT","id":"ac37953d-bcaa-48d6-b2de-02479fbbd6f0"}}},{"type":"Tutorial Step","name":"March 28th - April 1st","config":"{\n \"subTitle\": \"March 28th - April 1st\",\n \"gif\": \"\",\n \"image\": \"fails\",\n \"definition\": \"We've got two more fails by the end of March and the beginning of April. What can we say about these?\",\n \"paragraph1\": \"The first position on the 28th seems like a decent entry, despite not reaching the 10% target. It did stay in profit for a while, and got to about 7% on March 30th at 0 hs. The second position is a clear fail!\",\n \"callOut\": \"Go check the context in the 24H time frame! What do you think?\",\n \"paragraph2\": \"\",\n \"note\": \"To me, it looks like a reasonable context to go short, but what do I know?!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-03-26T04:54:48.391Z\",\n \"toDate\": \"2020-04-05T14:50:34.042Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 3574.539591198196,\n \"maxValue\": 8704.421041749902\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\"value\":\"01-hs\"}\n }\n ]\n}","project":"Superalgos","id":"a4c481cd-cf18-4f3d-84fb-a19f870e8a41","savedPayload":{"position":{"x":33501.633192528374,"y":44054.84215288106},"targetPosition":{"x":33392.57041083643,"y":44491.425832889385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown 2 Backtesting Session My Computer Binance BTC/USDT","id":"ac37953d-bcaa-48d6-b2de-02479fbbd6f0"}}},{"type":"Tutorial Step","name":"Sep 5th - Sep 14th","config":"{\n \"subTitle\": \"Sep 5th - Sep 14th\",\n \"gif\": \"\",\n \"image\": \"fails\",\n \"definition\": \"These are the last few trades in the period tested, and all three of them are clear fails.\",\n \"paragraph1\": \"\",\n \"callOut\": \"Time to check the context in the 24H time frame!\",\n \"paragraph2\": \"\",\n \"note\": \"To me, it looks unclear whether the context is suitable for a swing short or not!\",\n \"tip\": \"So, what do we make of this first test? Let's compare the results with the hypothesis' predictions.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-09-03T08:05:29.984Z\",\n \"toDate\": \"2020-09-21T07:58:10.468Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7462.332482061471,\n \"maxValue\": 12592.213932613176\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\"value\":\"01-hs\"}\n }\n ]\n}","project":"Superalgos","id":"621c7ebf-e7a4-4b97-9a0b-34ed5bc25a4c","savedPayload":{"position":{"x":33620.21521999669,"y":44103.253395868946},"targetPosition":{"x":33392.57041083643,"y":44491.425832889385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown 2 Backtesting Session My Computer Binance BTC/USDT","id":"ac37953d-bcaa-48d6-b2de-02479fbbd6f0"}}},{"type":"Tutorial Step","name":"Predictions","config":"{\n \"subTitle\": \"The Prediction Game\",\n \"gif\": \"\",\n \"image\": \"hit-ratio\",\n \"definition\": \"We expect the idea to trade at least twice per month, with a 50% hit ratio. That was our prediction! How did we do?\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": [\n [\n \"Trading frequency:\",\n \"There were less than two months' worth of downtrends in the tested period and a total of 9 trades. In terms of trading frequency, the idea passed the test.\"\n ],\n [\n \"Hit ratio:\",\n \"We've got 9 trades in total, with 2 hits and 7 fails, strictly speaking. That's a 22% hit ratio. In strict terms, the idea failed the test.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"Is there room for nuance in our analysis? Should we look past the hard numbers?\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"41b3245a-82fa-48d5-a2b4-ef290ace6dce","savedPayload":{"position":{"x":33720.35481888265,"y":44183.11206115386},"targetPosition":{"x":33392.57041083643,"y":44491.425832889385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Is there room for nuance?","config":"{\n \"subTitle\": \"Is There Room For Nuance?\",\n \"gif\": \"\",\n \"image\": \"space-style\",\n \"definition\": \"Should the testing of a trading idea output black or white results? That's a good question... one that only you may answer!\",\n \"bulletArray\": [\n [\n \"Is your testing criteria rock-solid?\",\n \"If you trust the testing criteria and are confident the prediction must be fulfilled for the idea to be worth it, then you should probably stick to the hard numbers.\"\n ],\n [\n \"Is your testing criteria more like a guideline or first assessment?\",\n \"In our case, I may openly confess that the testing criteria proposed is rather arbitrary, and doesn't hold water if questioned. I chose simple criteria to make a point and facilitate the explanations, but I wouldn't defend it in a court of my peers! If you use testing criteria as a first assessment only, then there should probably be room for more nuanced analysis.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"54960210-aba7-4767-8bf8-0ee413bbc3e8","savedPayload":{"position":{"x":33793.93927443764,"y":44287.948474612174},"targetPosition":{"x":33392.57041083643,"y":44491.425832889385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"What is the nuance?","config":"{\n \"subTitle\": \"What is the Nuance?\",\n \"gif\": \"\",\n \"image\": \"space-style\",\n \"definition\": \"Let's attempt a more nuanced analysis using the elements observed during our tour of the tested period.\",\n \"bulletArray\": [\n [\n \"Potential hits:\",\n \"Two out of the seven fails could have been hits, or at least breakeven trades had we managed the trade and exited earlier, either via a trailing stop loss, partial profit-taking, or any other suitable risk-management strategy.\"\n ],\n [\n \"Halt trading:\",\n \"One of the fails was likely to be avoidable had we incorporated a basic volatility envelope in the take position event conditions.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"That would leave us with 4 fails, maybe one break-even, and 3 hits with a potential for 100% profit. Does that nuance work for you?\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"3e3d6a09-da1e-4f8a-ba1d-66ac5b27ba90","savedPayload":{"position":{"x":33835.007211696204,"y":44409.26941351167},"targetPosition":{"x":33392.57041083643,"y":44491.425832889385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"What's next?","config":"{\n \"subTitle\": \"What's Next?\",\n \"gif\": \"\",\n \"image\": \"tutorial\",\n \"definition\": \"In the next tutorial, we'll keep working on this idea, incorporating a few more fundamental considerations left out until now.\",\n \"paragraph1\": \"We are also going to test the idea in a more favorable environment, that is, a real bear market, so that we may better evaluate it's potential.\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"At this point, you have covered the very basics of building and testing strategies. While more tutorials will become available eventually, nothing stops you from pushing the envelope and keep learning on your own! The documentation is your friend, and covers the workings of Superalgos at a depth that tutorials can't reach!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"bcf62044-6646-4eb0-ba2f-b6b659aa14e3","savedPayload":{"position":{"x":33840.231550622084,"y":44537.24617690611},"targetPosition":{"x":33392.57041083643,"y":44491.425832889385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"In the mean time!","config":"{\n \"subTitle\": \"In The Mean Time!\",\n \"gif\": \"\",\n \"image\": \"scripts-library\",\n \"definition\": \"If you are willing to keep going on your own, mastering building strategies requires some reading and a lot of practice!\",\n \"bulletListIntro\": \"Continue your education by reading the following sections of the documentation:\",\n \"bulletArray\": [ \n [\n \"The nuances of stages of trading strategies.\",\n \"\"\n ],\n [\n \"The whole trading engine section.\",\n \"\"\n ],\n [\n \"The whole section on the trading bot.\",\n \"\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"tip\": \"You may keep developing what we started on this series, or go your own way and start implementing your own idea! Good luck, and see you on the next tutorial!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"e16d9fa7-856d-4c38-b8e7-0e694f98d951","savedPayload":{"position":{"x":33809.18904634583,"y":44661.510848532394},"targetPosition":{"x":33392.57041083643,"y":44491.425832889385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"4. Testing a Trading Idea - The Other Stages","id":"56a4f43f-c512-42a5-9c31-a2b590b689ef"}}}],"tutorialTopics":[],"id":"0ff2fd12-d1cf-47dc-a25d-aea891370ee0","savedPayload":{"position":{"x":36985.57041083643,"y":43830.675832889385},"targetPosition":{"x":36705,"y":44182.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"56a4f43f-c512-42a5-9c31-a2b590b689ef","savedPayload":{"position":{"x":36705,"y":44182.5},"targetPosition":{"x":36705,"y":44182.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"}}},{"type":"Trading System","name":"BB Breakdown 2","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","tradingStrategies":[{"type":"Trading Strategy","name":"Downtrends","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"Downtrend","project":"Superalgos","conditions":[{"type":"Condition","name":"24H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.direction === 'Down'","project":"Superalgos","id":"f35f904d-f6d0-4ef8-b0a9-c57ced9094c5","savedPayload":{"position":{"x":41024.43291081813,"y":29590.304622744876},"targetPosition":{"x":41146.45390374087,"y":29864.368260037656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6f15f910-423a-41d9-afd9-0d913d3d8ea0","savedPayload":{"position":{"x":41146.45390374087,"y":29864.368260037656},"targetPosition":{"x":41268.47489666361,"y":30138.431897330436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Not Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope != 'Side'","project":"Superalgos","id":"a4c22a70-a6d0-4045-9feb-b979b57b4ea7","savedPayload":{"position":{"x":41331.191974624206,"y":29541.718760109474},"targetPosition":{"x":41299.83343564391,"y":29840.075328719955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c41d7264-3256-45f0-8d52-f5c867c9394b","savedPayload":{"position":{"x":41299.83343564391,"y":29840.075328719955},"targetPosition":{"x":41268.47489666361,"y":30138.431897330436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6eab6415-52e8-401c-93ea-e4e50b11489b","savedPayload":{"position":{"x":41268.47489666361,"y":30138.431897330436},"targetPosition":{"x":41315.40523617568,"y":30434.738399508977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"34ebc2f8-0321-49e2-8959-7660bdbb024f","savedPayload":{"position":{"x":41315.40523617568,"y":30434.738399508977},"targetPosition":{"x":41362.33557568774,"y":30731.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"24H Up","project":"Superalgos","conditions":[{"type":"Condition","name":"24H Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.direction === 'Up'","project":"Superalgos","id":"702c8003-6971-463d-95a7-96687903f5cb","savedPayload":{"position":{"x":41861.20230596626,"y":29648.117419527556},"targetPosition":{"x":41753.69192110267,"y":29928.191547476716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4682b49e-2036-4562-9ebb-ee9564c94f85","savedPayload":{"position":{"x":41753.69192110267,"y":29928.191547476716},"targetPosition":{"x":41646.18153623908,"y":30208.265675425875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"288bac73-a6f1-42c7-9afd-21138f8d862c","savedPayload":{"position":{"x":41646.18153623908,"y":30208.265675425875},"targetPosition":{"x":41538.671151375485,"y":30488.339803375035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"24H Side","project":"Superalgos","conditions":[{"type":"Condition","name":"24H Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope === 'Side'","project":"Superalgos","id":"15fd1f5e-5f94-4ac7-beeb-9edefb72ac31","savedPayload":{"position":{"x":42238.102516686755,"y":29921.951451430177},"targetPosition":{"x":42004.958728249665,"y":30110.74756874513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"731ccc64-d435-426a-b18f-244def934448","savedPayload":{"position":{"x":42004.958728249665,"y":30110.74756874513},"targetPosition":{"x":41771.814939812575,"y":30299.543686060082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"931bf435-a0cd-4794-91cf-66cef085b570","savedPayload":{"position":{"x":41771.814939812575,"y":30299.543686060082},"targetPosition":{"x":41538.671151375485,"y":30488.339803375035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"c6157f49-5b54-4621-8594-59764cb3db0a","savedPayload":{"position":{"x":41538.671151375485,"y":30488.339803375035},"targetPosition":{"x":41362.33557568774,"y":30731.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"Entry","project":"Superalgos","conditions":[{"type":"Condition","name":"1H Breakdown","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"421ea2b5-ca7a-4528-a3b1-2e8695095db6","savedPayload":{"position":{"x":42503.0758546304,"y":30393.1422368179},"targetPosition":{"x":42229.012217337615,"y":30515.16322974064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0bd018a0-8a32-4410-b195-c18eaabcf23d","savedPayload":{"position":{"x":42229.012217337615,"y":30515.16322974064},"targetPosition":{"x":41954.94858004483,"y":30637.184222663378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Previous Breakdown","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close < chart.at01hs.bollingerBand.previous.movingAverage - chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"0959388c-887f-4d17-b771-67c961fa1389","savedPayload":{"position":{"x":42551.6617172658,"y":30699.901300623973},"targetPosition":{"x":42253.305148655316,"y":30668.542761643675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9c96f683-a3fd-4422-b378-ac0737e7fb77","savedPayload":{"position":{"x":42253.305148655316,"y":30668.542761643675},"targetPosition":{"x":41954.94858004483,"y":30637.184222663378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"11d94ad0-4493-4a46-a881-9b0942c9882c","savedPayload":{"position":{"x":41954.94858004483,"y":30637.184222663378},"targetPosition":{"x":41658.64207786629,"y":30684.114562175448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"17c1e427-af3b-4b52-8ea4-7338b7dd2c0c","savedPayload":{"position":{"x":41658.64207786629,"y":30684.114562175448},"targetPosition":{"x":41362.33557568774,"y":30731.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"0f202dd0-60c9-467e-abf3-cde37e611cbf","savedPayload":{"position":{"x":41362.33557568774,"y":30731.044901687517},"targetPosition":{"x":41186,"y":30973.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"0bae61e3-861b-42f9-abaa-85da233005eb","savedPayload":{"position":{"x":41422.10390818544,"y":30043.109034653917},"targetPosition":{"x":41514.809006497926,"y":30328.425989542462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"70b22c9f-5e23-480a-8418-0e7dedc3ca90","savedPayload":{"position":{"x":41514.809006497926,"y":30328.425989542462},"targetPosition":{"x":41607.51410481041,"y":30613.742944431007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"964f5306-f46f-4ba7-a367-fd24ac10a112","savedPayload":{"position":{"x":41879.90840465414,"y":30079.139029917988},"targetPosition":{"x":41743.711254732276,"y":30346.440987174497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d623a61e-83e7-401f-a26f-f48618f20d2f","savedPayload":{"position":{"x":41743.711254732276,"y":30346.440987174497},"targetPosition":{"x":41607.51410481041,"y":30613.742944431007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"cca8b0d9-9fe2-43d7-af72-7f6fbdb5dcf0","savedPayload":{"position":{"x":42178.14801458751,"y":30428.332747806042},"targetPosition":{"x":41892.83105969896,"y":30521.037846118525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e163b18-730b-497f-99e9-5415c2e42aa8","savedPayload":{"position":{"x":41892.83105969896,"y":30521.037846118525},"targetPosition":{"x":41607.51410481041,"y":30613.742944431007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"22b563b5-472f-4eb4-84de-0a071f2b9a25","savedPayload":{"position":{"x":41607.51410481041,"y":30613.742944431007},"targetPosition":{"x":41471.31695488855,"y":30881.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"New Market Sell Order","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type you code","project":"Superalgos","id":"7dd19ce4-74fa-4634-bd3e-906f44ea5f5a","savedPayload":{"position":{"x":43130.22454718483,"y":29711.155816177197},"targetPosition":{"x":42929.48536527717,"y":29934.099263820415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e9207f0e-052c-4567-993d-127bc2b56ba7","savedPayload":{"position":{"x":42929.48536527717,"y":29934.099263820415},"targetPosition":{"x":42728.74618336951,"y":30157.042711463633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a0839bfa-724c-44c3-943f-6ce958ee6cf0","savedPayload":{"position":{"x":42728.74618336951,"y":30157.042711463633},"targetPosition":{"x":42528.007001461854,"y":30379.98615910685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"3e26be06-9e44-49c8-bcd1-b1b10d6b9032","savedPayload":{"position":{"x":42528.007001461854,"y":30379.98615910685},"targetPosition":{"x":42327.267819554196,"y":30602.92960675007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"simulatedExchangeEvents":{"type":"Simulated Exchange Events","name":"New Simulated Exchange Events","project":"Superalgos","simulatedPartialFill":{"type":"Simulated Partial Fill","name":"New Simulated Partial Fill","config":"{ \n\"fillProbability\": 1\n}","project":"Superalgos","id":"aa5a86bf-7a8e-42ac-94a8-7eaaf9fb3560","savedPayload":{"position":{"x":42872.31327015797,"y":30501.91140349089},"targetPosition":{"x":42620.71209977434,"y":30665.303113995396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"simulatedActualRate":{"type":"Simulated Actual Rate","name":"New Simulated Actual Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"00fa5057-2627-4202-80cb-21f43ef92654","savedPayload":{"position":{"x":43207.60066021463,"y":30790.05012848605},"targetPosition":{"x":42914.156379994485,"y":30727.676621240724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c043c112-78eb-4c74-ba88-9e925ccfaaa0","savedPayload":{"position":{"x":42914.156379994485,"y":30727.676621240724},"targetPosition":{"x":42620.71209977434,"y":30665.303113995396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"simulatedFeesPaid":{"type":"Simulated Fees Paid","name":"New Simulated Fees Paid","config":"{ \n\"percentage\": 0.1\n}","project":"Superalgos","id":"d255505e-771e-4b10-8056-3ceccd9366a9","savedPayload":{"position":{"x":42784.10381027885,"y":30916.904284379023},"targetPosition":{"x":42620.71209977434,"y":30665.303113995396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"33087166-b118-4e52-ba48-6c4c03733c49","savedPayload":{"position":{"x":42620.71209977434,"y":30665.303113995396},"targetPosition":{"x":42327.267819554196,"y":30602.92960675007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"29a57a7b-5f26-4e92-a6c6-60133af828c1","savedPayload":{"position":{"x":42327.267819554196,"y":30602.92960675007},"targetPosition":{"x":42041.95086466565,"y":30695.63470506255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"2db6e124-8de6-4be8-a27f-0feec4870b3f","savedPayload":{"position":{"x":42041.95086466565,"y":30695.63470506255},"targetPosition":{"x":41756.6339097771,"y":30788.339803375035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cdce969d-baf7-42d7-a89c-58937a31acc3","savedPayload":{"position":{"x":41756.6339097771,"y":30788.339803375035},"targetPosition":{"x":41471.31695488855,"y":30881.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStageEvent":{"type":"Close Stage Event","name":"New Close Stage Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type you code","project":"Superalgos","id":"a0cfc71f-70a9-43a9-ad46-2b13331f895f","savedPayload":{"position":{"x":42540.52478391459,"y":31425.83350137497},"targetPosition":{"x":42273.22282665808,"y":31289.636351453108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d67fd80a-3613-4f5b-89b6-e08603ef6f29","savedPayload":{"position":{"x":42273.22282665808,"y":31289.636351453108},"targetPosition":{"x":42005.92086940157,"y":31153.439201531244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"75df1fae-dfa7-40f9-a62c-f62dff2a5f91","savedPayload":{"position":{"x":42005.92086940157,"y":31153.439201531244},"targetPosition":{"x":41738.61891214506,"y":31017.24205160938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"eb25888f-abd5-42d2-8a35-8eef8fec0bb4","savedPayload":{"position":{"x":41738.61891214506,"y":31017.24205160938},"targetPosition":{"x":41471.31695488855,"y":30881.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"f31f4f8e-200f-415c-a327-1fcc08280f97","savedPayload":{"position":{"x":41471.31695488855,"y":30881.044901687517},"targetPosition":{"x":41186,"y":30973.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"New Manage Stage","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"ce63cf63-b90b-4b90-a1ee-a76eaab4c04a","savedPayload":{"position":{"x":42351.64979554898,"y":30879.3345765765},"targetPosition":{"x":42058.20551532884,"y":30941.708083821828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"14b20d6c-b40f-4452-aef3-44a5ebefe543","savedPayload":{"position":{"x":42058.20551532884,"y":30941.708083821828},"targetPosition":{"x":41764.761235108694,"y":31004.081591067155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"26a0240a-ab1b-4276-a9f9-ab1d6a7f788a","savedPayload":{"position":{"x":41764.761235108694,"y":31004.081591067155},"targetPosition":{"x":41471.31695488855,"y":31066.455098312483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"3fddba16-ef54-418c-962e-5bb5e14e4cc6","savedPayload":{"position":{"x":42073.534500611524,"y":31735.285441242137},"targetPosition":{"x":41872.795318703866,"y":31512.34199359892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"1b591f51-56e1-41c3-b9d2-26790642ce94","savedPayload":{"position":{"x":41872.795318703866,"y":31512.34199359892},"targetPosition":{"x":41672.05613679621,"y":31289.3985459557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3ea4ea70-17fc-4cf2-999d-0054a6a28b87","savedPayload":{"position":{"x":41672.05613679621,"y":31289.3985459557},"targetPosition":{"x":41471.31695488855,"y":31066.455098312483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"b5b4f055-28ab-4d73-b81b-23f70b8a9b2d","savedPayload":{"position":{"x":41471.31695488855,"y":31066.455098312483},"targetPosition":{"x":41186,"y":30973.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"1771d727-e2ba-4d1e-ace4-81a32ee6826e","savedPayload":{"position":{"x":42144.05227449126,"y":30910.714286449067},"targetPosition":{"x":41901.34717617877,"y":31087.04986213681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"20d38486-504d-4354-b11c-9179f5163511","savedPayload":{"position":{"x":41901.34717617877,"y":31087.04986213681},"targetPosition":{"x":41658.64207786629,"y":31263.385437824552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"c7b8900c-91f6-4223-bc46-1e6a17db862a","savedPayload":{"position":{"x":42251.255082223375,"y":31357.24611684869},"targetPosition":{"x":41954.94858004483,"y":31310.315777336622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"74baddfc-9413-4f32-89a7-ab6170744471","savedPayload":{"position":{"x":41954.94858004483,"y":31310.315777336622},"targetPosition":{"x":41658.64207786629,"y":31263.385437824552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"b762f5c3-cf19-4bcd-b881-01ccbf15a2c1","savedPayload":{"position":{"x":42011.31322924177,"y":31748.795634449518},"targetPosition":{"x":41834.97765355403,"y":31506.090536137035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fc87b998-1c00-4ba9-9b92-50ac0b0e0dd5","savedPayload":{"position":{"x":41834.97765355403,"y":31506.090536137035},"targetPosition":{"x":41658.64207786629,"y":31263.385437824552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f857d377-51f7-4140-8eec-93665ce6aa79","savedPayload":{"position":{"x":41658.64207786629,"y":31263.385437824552},"targetPosition":{"x":41362.33557568774,"y":31216.455098312483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","name":"New Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"New Market Buy Order","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type you code","project":"Superalgos","id":"fbfc4a88-9576-4a94-9c29-306b71943cc9","savedPayload":{"position":{"x":42987.596851922106,"y":32432.654364940885},"targetPosition":{"x":42713.53321462932,"y":32310.633372018146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e90e9ded-9d92-499d-bb85-31c1a596cb10","savedPayload":{"position":{"x":42713.53321462932,"y":32310.633372018146},"targetPosition":{"x":42439.46957733654,"y":32188.612379095408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"377b5d3f-d4cc-4a7c-8160-29df5d06d10f","savedPayload":{"position":{"x":42439.46957733654,"y":32188.612379095408},"targetPosition":{"x":42165.405940043755,"y":32066.59138617267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"00941dbb-93a7-433f-a1b4-26bad9b3ef44","savedPayload":{"position":{"x":42165.405940043755,"y":32066.59138617267},"targetPosition":{"x":41891.34230275097,"y":31944.57039324993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"simulatedExchangeEvents":{"type":"Simulated Exchange Events","name":"New Simulated Exchange Events","project":"Superalgos","simulatedPartialFill":{"type":"Simulated Partial Fill","name":"New Simulated Partial Fill","config":"{ \n\"fillProbability\": 1\n}","project":"Superalgos","id":"b898afaf-aeaf-498a-82c3-ad0396d2307c","savedPayload":{"position":{"x":42155.84463016836,"y":32431.723079175365},"targetPosition":{"x":41922.70084173127,"y":32242.926961860412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"simulatedActualRate":{"type":"Simulated Actual Rate","name":"New Simulated Actual Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"c88724a9-4931-44af-abdc-6c7fb7ecc2b7","savedPayload":{"position":{"x":41985.41791969186,"y":32839.64009908138},"targetPosition":{"x":41954.059380711566,"y":32541.283530470893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a085b339-6177-4129-b9af-aca3699ffc63","savedPayload":{"position":{"x":41954.059380711566,"y":32541.283530470893},"targetPosition":{"x":41922.70084173127,"y":32242.926961860412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"simulatedFeesPaid":{"type":"Simulated Fees Paid","name":"New Simulated Fees Paid","config":"{ \n\"percentage\": 0.1\n}","project":"Superalgos","id":"bad60868-c630-43fd-a4d6-59ddf9d91c62","savedPayload":{"position":{"x":41733.904724416316,"y":32476.070750297502},"targetPosition":{"x":41922.70084173127,"y":32242.926961860412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6760aa1c-515f-47fa-a544-2fdca1043674","savedPayload":{"position":{"x":41922.70084173127,"y":32242.926961860412},"targetPosition":{"x":41891.34230275097,"y":31944.57039324993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"39cfc0ee-887a-4925-a296-0256a200482a","savedPayload":{"position":{"x":41891.34230275097,"y":31944.57039324993},"targetPosition":{"x":41715.00672706323,"y":31701.86529493745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"1e701170-cf83-4761-8278-88911bf26c73","savedPayload":{"position":{"x":41715.00672706323,"y":31701.86529493745},"targetPosition":{"x":41538.671151375485,"y":31459.160196624965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dc10b5c6-951e-47c9-99a4-3925d45799b1","savedPayload":{"position":{"x":41538.671151375485,"y":31459.160196624965},"targetPosition":{"x":41362.33557568774,"y":31216.455098312483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStageEvent":{"type":"Close Stage Event","name":"New Close Stage Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type you code","project":"Superalgos","id":"10681b1b-568e-4363-8dfc-17c2703206de","savedPayload":{"position":{"x":41174.61421763948,"y":32401.681107026645},"targetPosition":{"x":41221.544557151545,"y":32105.374604848104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7518df47-c4a9-4697-a5c9-5e67f2ce017a","savedPayload":{"position":{"x":41221.544557151545,"y":32105.374604848104},"targetPosition":{"x":41268.47489666361,"y":31809.068102669564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6689645d-315c-47bd-8546-b81ba84502ac","savedPayload":{"position":{"x":41268.47489666361,"y":31809.068102669564},"targetPosition":{"x":41315.40523617568,"y":31512.761600491023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"e07760aa-bc55-4dcd-8c30-e3706b9f0249","savedPayload":{"position":{"x":41315.40523617568,"y":31512.761600491023},"targetPosition":{"x":41362.33557568774,"y":31216.455098312483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"d6a475a0-48ef-40a2-b748-9682956eb87a","savedPayload":{"position":{"x":41362.33557568774,"y":31216.455098312483},"targetPosition":{"x":41186,"y":30973.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61127242-5fd3-4de5-a762-b35a56c94b6c","savedPayload":{"position":{"x":41186,"y":30973.75},"targetPosition":{"x":40886,"y":30973.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"dynamicIndicators":{"type":"Dynamic Indicators","name":"New Dynamic Indicators","project":"Superalgos","indicatorFunctions":[{"type":"Indicator Function","name":"New Indicator Function","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"03f86a86-7cef-4500-b783-35ab06225f08","savedPayload":{"position":{"x":39986,"y":30973.75},"targetPosition":{"x":40286,"y":30973.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a8a4971-d2d8-4c7b-b79f-951020f181ad","savedPayload":{"position":{"x":40286,"y":30973.75},"targetPosition":{"x":40586,"y":30973.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"da17537f-97f5-4677-a094-9399dbd89c04","savedPayload":{"position":{"x":40586,"y":30973.75},"targetPosition":{"x":40886,"y":30973.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"08fef7d6-7de9-4bb2-ab3c-0df2fce3b6e4","savedPayload":{"position":{"x":40886,"y":30973.75},"targetPosition":{"x":40886,"y":30973.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}]} \ No newline at end of file +{"type":"Workspace","name":"Trading System Design Tutorials","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[{"type":"Project Data Tasks","name":"Superalgos","project":"Superalgos","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","project":"Superalgos","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Exchange Raw Data","project":"Superalgos","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","config":"{ \n\"startDate\": \"2020-01-01\"\n}","project":"Superalgos","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"d0ff77d8-76de-4d50-840a-e50a55ad7d1b","savedPayload":{"position":{"x":23464.287287440642,"y":29377.997434862405},"targetPosition":{"x":23762.643856051123,"y":29409.355973842703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"b4e33f51-f9ff-4ef3-a9b7-ccb904163cae","savedPayload":{"position":{"x":23762.643856051123,"y":29409.355973842703},"targetPosition":{"x":24061.000424661604,"y":29440.714512823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"23ae53f9-b478-4eb4-96e7-12d07d7ae4f0","savedPayload":{"position":{"x":24061.000424661604,"y":29440.714512823},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Volumes","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"dcf3d790-5362-4a95-b977-82d0cf0e07f1","savedPayload":{"position":{"x":23646.16814072914,"y":28934.397538066118},"targetPosition":{"x":23913.47009798565,"y":29070.59468798798},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"775fadbd-5b55-41b2-81ac-454f5e52dca6","savedPayload":{"position":{"x":23750.078387481142,"y":28818.993517604355},"targetPosition":{"x":23913.47009798565,"y":29070.59468798798},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"fc478301-77ac-4396-bd3b-915b4c681fa0","savedPayload":{"position":{"x":23913.47009798565,"y":29070.59468798798},"targetPosition":{"x":24136.413545628868,"y":29271.33386989564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"30054a4b-7c93-4a3a-a6db-2e0d38507b2e","savedPayload":{"position":{"x":24136.413545628868,"y":29271.33386989564},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Bands","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","project":"Superalgos","id":"bf0f739f-98b7-4c73-ae06-8d3fe83147ce","savedPayload":{"position":{"x":24098.412828859568,"y":28617.882534106506},"targetPosition":{"x":24234.60997878143,"y":28885.184491363016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","project":"Superalgos","id":"cc5b20c4-9045-4c75-8a1b-33736d9ff799","savedPayload":{"position":{"x":24250.310765654314,"y":28585.595630936645},"targetPosition":{"x":24234.60997878143,"y":28885.184491363016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}}],"id":"39cbcfb5-c52b-4e76-a62e-b8fda67fb230","savedPayload":{"position":{"x":24234.60997878143,"y":28885.184491363016},"targetPosition":{"x":24296.98348602676,"y":29178.628771583157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9f531e59-08e8-4965-961c-b0e749fb7020","savedPayload":{"position":{"x":24296.98348602676,"y":29178.628771583157},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","project":"Superalgos","id":"24e7627a-4416-46da-933c-1bd67aedcfb1","savedPayload":{"position":{"x":24650.329318629632,"y":28627.639275039197},"targetPosition":{"x":24603.398979117563,"y":28923.945777217737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","project":"Superalgos","id":"5b56bdaa-2cc8-4d34-b5e0-3cb138641529","savedPayload":{"position":{"x":24792.195096432515,"y":28690.801988780648},"targetPosition":{"x":24603.398979117563,"y":28923.945777217737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"b775a7ab-7adc-4f56-95c1-13c8faa87c2c","savedPayload":{"position":{"x":24603.398979117563,"y":28923.945777217737},"targetPosition":{"x":24481.377986194824,"y":29198.009414510518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8964bc85-255b-4541-beb4-54f4a4968ae4","savedPayload":{"position":{"x":24481.377986194824,"y":29198.009414510518},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e7d4e64e-402a-49fc-9af4-a4b83957d1ad","savedPayload":{"position":{"x":24359.356993272086,"y":29472.073051803298},"targetPosition":{"x":24509.356993272086,"y":29731.88067293863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"da602e88-4614-4b8b-b69b-51a68cc8fed0","savedPayload":{"position":{"x":24509.356993272086,"y":29731.88067293863},"targetPosition":{"x":24659.356993272086,"y":29991.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}}],"id":"f4c30773-c357-4519-819c-abfacab1e71f","savedPayload":{"position":{"x":24659.356993272086,"y":29991.688294073963},"targetPosition":{"x":24809.356993272086,"y":30251.495915209296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"66990092-fbec-4b3b-867c-bbd466a136e1","savedPayload":{"position":{"x":24809.356993272086,"y":30251.495915209296},"targetPosition":{"x":24959.356993272086,"y":30511.30353634463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"b4fd96ac-f473-46de-9ab3-3e02802e0e14","savedPayload":{"position":{"x":24959.356993272086,"y":30511.30353634463},"targetPosition":{"x":25109.356993272086,"y":30771.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"ef4b033a-aeb2-4461-bc25-019a834c0b23"}}}],"id":"4df1cb4e-b9ca-4f62-bb5f-c7e262aaa22a","savedPayload":{"position":{"x":25109.356993272086,"y":30771.11115747996},"targetPosition":{"x":25259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningTasks":{"type":"Learning Tasks","name":"New Learning Tasks","project":"Superalgos","projectLearningTasks":[{"type":"Project Learning Tasks","name":"Superalgos","project":"Superalgos","exchangeLearningTasks":[{"type":"Exchange Learning Tasks","name":"Binance","project":"Superalgos","marketLearningTasks":[{"type":"Market Learning Tasks","name":"Binance BTC/USDT","project":"Superalgos","learningMineTasks":[],"id":"fc26350a-3770-4883-b111-07b79f8c92d4","savedPayload":{"position":{"x":25859.356993272086,"y":29991.688294073963},"targetPosition":{"x":25709.356993272086,"y":30251.495915209296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"f9deb4d8-e0fa-48f3-b4d4-77e4d903bb96","savedPayload":{"position":{"x":25709.356993272086,"y":30251.495915209296},"targetPosition":{"x":25559.356993272086,"y":30511.30353634463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"d3877408-57f5-42e3-b0a5-e68de018e280","savedPayload":{"position":{"x":25559.356993272086,"y":30511.30353634463},"targetPosition":{"x":25409.356993272086,"y":30771.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"ef4b033a-aeb2-4461-bc25-019a834c0b23"}}}],"id":"1b19735e-0041-438f-824b-00df4f8942dd","savedPayload":{"position":{"x":25409.356993272086,"y":30771.11115747996},"targetPosition":{"x":25259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"testingTradingTasks":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","project":"Superalgos","projectTradingTasks":[{"type":"Project Trading Tasks","name":"Superalgos","project":"Superalgos","exchangeTradingTasks":[{"type":"Exchange Trading Tasks","name":"Binance","project":"Superalgos","marketTradingTasks":[{"type":"Market Trading Tasks","name":"Binance BTC/USDT","project":"Superalgos","tradingMineTasks":[{"type":"Trading Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"BB Breakdown","project":"Superalgos","bot":{"type":"Trading Bot Instance","name":"Low Frequency","config":"{}","project":"Superalgos","processes":[{"type":"Trading Process Instance","name":"Low Frequency Trading","project":"Superalgos","session":{"type":"Backtesting Session","name":"BB Breakdown","config":"{\"folderName\":\"BB-Breakdown\"}","project":"Superalgos","tradingParameters":{"type":"Trading Parameters","name":"New Trading Parameters","project":"Superalgos","sessionBaseAsset":{"type":"Session Base Asset","name":"","config":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0\n}","project":"Superalgos","id":"7019abd7-77c3-4232-a6bc-5c2ed55f9c29","savedPayload":{"position":{"x":27924.632020960547,"y":29977.749320224066},"targetPosition":{"x":28176.233191344174,"y":30141.141030728573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sessionQuotedAsset":{"type":"Session Quoted Asset","name":"","config":"{\n\"initialBalance\": 0\n}","project":"Superalgos","id":"b088e5bb-cc85-4e2f-a613-44385fc46694","savedPayload":{"position":{"x":27987.43707402922,"y":29907.997242291483},"targetPosition":{"x":28176.233191344174,"y":30141.141030728573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","config":"{ \n\"initialDatetime\": \"2020-01-01\",\n\"finalDatetime\": \"2020-10-01\" \n}","project":"Superalgos","id":"b9e4098d-6bb5-4872-b642-ce72c27e9079","savedPayload":{"position":{"x":28068.722806480582,"y":29861.066902779414},"targetPosition":{"x":28176.233191344174,"y":30141.141030728573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","config":"{ \n\"label\": \"24-hs\"\n}","project":"Superalgos","id":"a96cf256-435d-4b47-b167-a16bf8491535","savedPayload":{"position":{"x":28160.53240447129,"y":29841.552170302202},"targetPosition":{"x":28176.233191344174,"y":30141.141030728573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","config":"{ \n\"marketOrderRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","project":"Superalgos","id":"3620c5ba-d614-4cc3-a99a-31afa7627d1b","savedPayload":{"position":{"x":28253.87890487493,"y":29851.363282841852},"targetPosition":{"x":28176.233191344174,"y":30141.141030728573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","config":"{ \n\"maker\": 0.1,\n\"taker\": 0.1\n}","project":"Superalgos","id":"2492d330-fc4e-48c8-83d2-2e1c5e8060b2","savedPayload":{"position":{"x":28339.62490184868,"y":29889.539860344947},"targetPosition":{"x":28176.233191344174,"y":30141.141030728573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"snapshots":{"type":"Snapshots","name":"New Snapshots","config":"{ \n\"strategy\": true,\n\"position\": true\n}","project":"Superalgos","id":"df5da1ba-de14-4c9c-9560-7907481ae573","savedPayload":{"position":{"x":28409.376979781264,"y":29952.34491341362},"targetPosition":{"x":28176.233191344174,"y":30141.141030728573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"heartbeats":{"type":"Heartbeats","name":"New Heartbeats","config":"{ \n\"date\": true,\n\"candleIndex\": false\n}","project":"Superalgos","id":"e1e1eb52-3740-4ede-bacd-a1432c876d5f","savedPayload":{"position":{"x":28456.307319293333,"y":30033.63064586498},"targetPosition":{"x":28176.233191344174,"y":30141.141030728573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedParameters":{"type":"User Defined Parameters","name":"New User Defined Parameters","config":"{ \n\"param1Name\": \"A text string value example\",\n\"param2Name\": 0\n}","project":"Superalgos","id":"9d08a985-5063-4fd6-a536-b8095c8dcea4","savedPayload":{"position":{"x":28475.822051770545,"y":30125.44024385569},"targetPosition":{"x":28176.233191344174,"y":30141.141030728573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7c6c0f4a-266b-49ce-8a85-619a55b5422c","savedPayload":{"position":{"x":28176.233191344174,"y":30141.141030728573},"targetPosition":{"x":28098.587477813417,"y":30430.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingSystemReference":{"type":"Trading System Reference","name":"BB Breakdown","project":"Superalgos","id":"9b3bdd4e-abb5-44e7-89a3-b3f81011818f","savedPayload":{"position":{"x":28358.39509894875,"y":30280.918778615294},"targetPosition":{"x":28098.587477813417,"y":30430.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading System","name":"BB Breakdown","id":"77e18ff3-e29b-4e35-ba66-e34af262d35d"}}},"tradingEngineReference":{"type":"Trading Engine Reference","name":"Low-Frequency","project":"Superalgos","id":"ff5cf669-326d-4727-8850-666b11c6593f","savedPayload":{"position":{"x":28388.365225700138,"y":30508.56449214605},"targetPosition":{"x":28098.587477813417,"y":30430.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading Engine","name":"Low-Frequency","id":"eb20f622-71bf-4479-a574-d2320e1d4bd1"}}},"id":"d23a592c-596c-475f-a6c4-00a63d05cf92","savedPayload":{"position":{"x":28098.587477813417,"y":30430.918778615294},"targetPosition":{"x":27838.779856678084,"y":30580.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"27b66580-076c-4fb9-bb6c-eadfa2ea6f39","savedPayload":{"position":{"x":27838.779856678084,"y":30580.918778615294},"targetPosition":{"x":27578.97223554275,"y":30730.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Trading","id":"a8c8d761-96e5-4a86-9285-6c3881d61442"}}}],"id":"1f9396f7-7776-4df2-b2b3-5b5a35b2bfeb","savedPayload":{"position":{"x":27578.97223554275,"y":30730.918778615294},"targetPosition":{"x":27319.16461440742,"y":30880.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9ebfff72-a410-43f1-92e8-5eaca032bd2c","savedPayload":{"position":{"x":27319.16461440742,"y":30880.918778615294},"targetPosition":{"x":27059.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"BB Breakdown 2","project":"Superalgos","bot":{"type":"Trading Bot Instance","name":"Low Frequency","config":"{}","project":"Superalgos","processes":[{"type":"Trading Process Instance","name":"Low Frequency Trading","project":"Superalgos","session":{"type":"Backtesting Session","name":"BB Breakdown 2","config":"{\"folderName\":\"BB-Breakdown-2---PRE-SETUP\"}","project":"Superalgos","tradingParameters":{"type":"Trading Parameters","name":"New Trading Parameters","project":"Superalgos","sessionBaseAsset":{"type":"Session Base Asset","name":"","config":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0\n}","project":"Superalgos","id":"7cc6eed5-0b04-4ae4-9d3f-dc5a6f0246de","savedPayload":{"position":{"x":28404.06601257302,"y":31253.684204658166},"targetPosition":{"x":28388.365225700138,"y":31553.273065084537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sessionQuotedAsset":{"type":"Session Quoted Asset","name":"","config":"{\n\"initialBalance\": 0\n}","project":"Superalgos","id":"59d3ad75-fcfc-450f-9116-e502518dd470","savedPayload":{"position":{"x":28495.87561056373,"y":31273.198937135377},"targetPosition":{"x":28388.365225700138,"y":31553.273065084537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","config":"{ \n\"initialDatetime\": \"2020-02-01\",\n\"finalDatetime\": \"2020-10-01\" \n}","project":"Superalgos","id":"6a305f12-f83d-4037-9e31-a4b9ccaac233","savedPayload":{"position":{"x":28577.16134301509,"y":31320.129276647447},"targetPosition":{"x":28388.365225700138,"y":31553.273065084537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","config":"{ \n\"label\": \"01-hs\"\n}","project":"Superalgos","id":"884b68b3-5108-4d4b-bdcc-5a88160b202c","savedPayload":{"position":{"x":28639.966396083764,"y":31389.88135458003},"targetPosition":{"x":28388.365225700138,"y":31553.273065084537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","config":"{ \n\"marketOrderRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","project":"Superalgos","id":"104fad1f-6313-425c-9eae-1b54df469c7a","savedPayload":{"position":{"x":28678.14297358686,"y":31475.62735155378},"targetPosition":{"x":28388.365225700138,"y":31553.273065084537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","config":"{ \n\"maker\": 0.1,\n\"taker\": 0.1\n}","project":"Superalgos","id":"0957b202-c79a-4af6-a27f-98a06b23a08b","savedPayload":{"position":{"x":28687.95408612651,"y":31568.97385195742},"targetPosition":{"x":28388.365225700138,"y":31553.273065084537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"snapshots":{"type":"Snapshots","name":"New Snapshots","config":"{ \n\"strategy\": true,\n\"position\": true\n}","project":"Superalgos","id":"fd76ecac-c7a7-48e8-adc6-9f276fcf4355","savedPayload":{"position":{"x":28668.439353649297,"y":31660.78344994813},"targetPosition":{"x":28388.365225700138,"y":31553.273065084537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"heartbeats":{"type":"Heartbeats","name":"New Heartbeats","config":"{ \n\"date\": true,\n\"candleIndex\": false\n}","project":"Superalgos","id":"0ca06636-e0ea-4822-86f1-a9dfa1897696","savedPayload":{"position":{"x":28621.509014137227,"y":31742.06918239949},"targetPosition":{"x":28388.365225700138,"y":31553.273065084537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedParameters":{"type":"User Defined Parameters","name":"New User Defined Parameters","config":"{ \n\"param1Name\": \"A text string value example\",\n\"param2Name\": 0\n}","project":"Superalgos","id":"4ff35791-4049-4902-a689-5e5a442e363c","savedPayload":{"position":{"x":28551.756936204645,"y":31804.874235468164},"targetPosition":{"x":28388.365225700138,"y":31553.273065084537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8f4b2297-8462-47d3-863a-d92b1d4a0b39","savedPayload":{"position":{"x":28388.365225700138,"y":31553.273065084537},"targetPosition":{"x":28098.587477813417,"y":31630.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingSystemReference":{"type":"Trading System Reference","name":"BB Breakdown 2","project":"Superalgos","id":"2cbca93e-434e-400f-9dbd-75524c7cda5f","savedPayload":{"position":{"x":28358.39509894875,"y":31780.918778615294},"targetPosition":{"x":28098.587477813417,"y":31630.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading System","name":"BB Breakdown 2","id":"08fef7d6-7de9-4bb2-ab3c-0df2fce3b6e4"}}},"tradingEngineReference":{"type":"Trading Engine Reference","name":"Low-Frequency","project":"Superalgos","id":"c1d3b7ec-64cf-445d-beb1-d18aab536838","savedPayload":{"position":{"x":28176.233191344174,"y":31920.696526502015},"targetPosition":{"x":28098.587477813417,"y":31630.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading Engine","name":"Low-Frequency","id":"eb20f622-71bf-4479-a574-d2320e1d4bd1"}}},"id":"21c1a266-ac7f-4eb1-8671-7e290d8b8a58","savedPayload":{"position":{"x":28098.587477813417,"y":31630.918778615294},"targetPosition":{"x":27838.779856678084,"y":31480.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d9f961e3-e5c9-43d7-8b24-8c016f27154e","savedPayload":{"position":{"x":27838.779856678084,"y":31480.918778615294},"targetPosition":{"x":27578.97223554275,"y":31330.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Trading","id":"a8c8d761-96e5-4a86-9285-6c3881d61442"}}}],"id":"a95b9f33-a097-462b-9d98-a5bed9197a37","savedPayload":{"position":{"x":27578.97223554275,"y":31330.918778615294},"targetPosition":{"x":27319.16461440742,"y":31180.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45c42479-b3cc-49bd-ac69-3ba2dea67d08","savedPayload":{"position":{"x":27319.16461440742,"y":31180.918778615294},"targetPosition":{"x":27059.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ed3bcaac-7e3a-4b76-90fd-1da7059c5fbf","savedPayload":{"position":{"x":27059.356993272086,"y":31030.918778615294},"targetPosition":{"x":26759.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7ec0ab5d-9e7a-44ac-9321-ac66ab3818e0","savedPayload":{"position":{"x":26759.356993272086,"y":31030.918778615294},"targetPosition":{"x":26459.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"a65da159-d6fe-48f8-b054-8f35e6bcef6a","savedPayload":{"position":{"x":26459.356993272086,"y":31030.918778615294},"targetPosition":{"x":26159.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"b0f32714-0ce1-4e46-b8fb-9e6759c26ced","savedPayload":{"position":{"x":26159.356993272086,"y":31030.918778615294},"targetPosition":{"x":25859.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"50015419-2943-49eb-8cef-540455e03f58","savedPayload":{"position":{"x":25859.356993272086,"y":31030.918778615294},"targetPosition":{"x":25559.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"ef4b033a-aeb2-4461-bc25-019a834c0b23"}}}],"id":"5882d8a8-345b-4188-b1c1-797e9ff805d9","savedPayload":{"position":{"x":25559.356993272086,"y":31030.918778615294},"targetPosition":{"x":25259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"productionTradingTasks":{"type":"Production Trading Tasks","name":"New Production Trading Tasks","project":"Superalgos","projectTradingTasks":[{"type":"Project Trading Tasks","name":"Superalgos","project":"Superalgos","exchangeTradingTasks":[{"type":"Exchange Trading Tasks","name":"Binance","project":"Superalgos","marketTradingTasks":[{"type":"Market Trading Tasks","name":"Binance BTC/USDT","project":"Superalgos","tradingMineTasks":[{"type":"Trading Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"BB Breakdown","project":"Superalgos","bot":{"type":"Trading Bot Instance","name":"Low Frequency","config":"{}","project":"Superalgos","processes":[{"type":"Trading Process Instance","name":"Low Frequency Trading","project":"Superalgos","session":{"type":"Live Trading Session","name":"BB Breakdown","config":"{\"folderName\":\"BB-Breakdown\"}","project":"Superalgos","tradingParameters":{"type":"Trading Parameters","name":"New Trading Parameters","project":"Superalgos","sessionBaseAsset":{"type":"Session Base Asset","name":"","config":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5\n}","project":"Superalgos","id":"152472ee-c75b-42df-898a-8535478aee5d","savedPayload":{"position":{"x":27212.526451663314,"y":33455.03953311575},"targetPosition":{"x":27049.134741158807,"y":33706.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sessionQuotedAsset":{"type":"Session Quoted Asset","name":"","config":"{\n\"initialBalance\": 0\n}","project":"Superalgos","id":"4cd497a6-452e-4fe3-884c-1c9b899fe37a","savedPayload":{"position":{"x":27282.278529595897,"y":33517.84458618442},"targetPosition":{"x":27049.134741158807,"y":33706.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","config":"{ \n\"initialDatetime\": \"2020-09-01\",\n\"finalDatetime\": \"2020-09-02\" \n}","project":"Superalgos","id":"6f52eb59-650d-4b31-9606-bd50bfe0ef61","savedPayload":{"position":{"x":27329.208869107966,"y":33599.13031863578},"targetPosition":{"x":27049.134741158807,"y":33706.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","config":"{ \n\"label\": \"01-hs\"\n}","project":"Superalgos","id":"61580102-fbf3-4b1f-934e-aacdfad1ac0e","savedPayload":{"position":{"x":27348.723601585178,"y":33690.93991662649},"targetPosition":{"x":27049.134741158807,"y":33706.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","config":"{ \n\"marketOrderRate\": 0.1,\n\"stopLoss\": 0.2,\n\"takeProfit\": 0.3\n}","project":"Superalgos","id":"178adf37-12b7-45ad-afb2-c613ec59555b","savedPayload":{"position":{"x":27338.912489045528,"y":33784.28641703013},"targetPosition":{"x":27049.134741158807,"y":33706.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","config":"{ \n\"maker\": 0.1,\n\"taker\": 0.1\n}","project":"Superalgos","id":"2c4a8496-05cf-46b2-b95a-04ae444f49d6","savedPayload":{"position":{"x":27300.735911542433,"y":33870.03241400389},"targetPosition":{"x":27049.134741158807,"y":33706.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"snapshots":{"type":"Snapshots","name":"New Snapshots","config":"{ \n\"strategy\": true,\n\"position\": true\n}","project":"Superalgos","id":"0d7f9593-41e8-4a8e-9b97-434e99be1f37","savedPayload":{"position":{"x":27237.93085847376,"y":33939.784491936465},"targetPosition":{"x":27049.134741158807,"y":33706.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"heartbeats":{"type":"Heartbeats","name":"New Heartbeats","config":"{ \n\"date\": true,\n\"candleIndex\": false\n}","project":"Superalgos","id":"9ae6cd9d-9bc2-4bfb-8316-5a9ebd3b8bfc","savedPayload":{"position":{"x":27156.6451260224,"y":33986.71483144854},"targetPosition":{"x":27049.134741158807,"y":33706.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedParameters":{"type":"User Defined Parameters","name":"New User Defined Parameters","config":"{ \n\"param1Name\": \"A text string value example\",\n\"param2Name\": 0\n}","project":"Superalgos","id":"410780dd-54f4-48be-b640-bd1ff903f9b9","savedPayload":{"position":{"x":27064.83552803169,"y":34006.22956392575},"targetPosition":{"x":27049.134741158807,"y":33706.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4aec4635-6478-4580-92f6-be900ffb679c","savedPayload":{"position":{"x":27049.134741158807,"y":33706.640703499375},"targetPosition":{"x":26759.356993272086,"y":33628.99498996862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingSystemReference":{"type":"Trading System Reference","name":"BB Breakdown","project":"Superalgos","id":"545fb7fd-f9b7-4c75-af31-3c19ebe1b064","savedPayload":{"position":{"x":26909.356993272086,"y":33888.80261110395},"targetPosition":{"x":26759.356993272086,"y":33628.99498996862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading System","name":"BB Breakdown","id":"77e18ff3-e29b-4e35-ba66-e34af262d35d"}}},"tradingEngineReference":{"type":"Trading Engine Reference","name":"Low-Frequency","project":"Superalgos","id":"2ae14446-f028-4097-853a-f7c879bd6e56","savedPayload":{"position":{"x":26681.71127974133,"y":33918.77273785534},"targetPosition":{"x":26759.356993272086,"y":33628.99498996862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading Engine","name":"Low-Frequency","id":"eb20f622-71bf-4479-a574-d2320e1d4bd1"}}},"id":"f1140773-85dc-4bd4-92d0-0b64ede59682","savedPayload":{"position":{"x":26759.356993272086,"y":33628.99498996862},"targetPosition":{"x":26609.356993272086,"y":33369.187368833285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4ba550b-5068-4c66-9002-b95814a9989d","savedPayload":{"position":{"x":26609.356993272086,"y":33369.187368833285},"targetPosition":{"x":26459.356993272086,"y":33109.37974769795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Trading","id":"a8c8d761-96e5-4a86-9285-6c3881d61442"}}}],"id":"96270465-9b1c-4d79-be3b-c162d704590e","savedPayload":{"position":{"x":26459.356993272086,"y":33109.37974769795},"targetPosition":{"x":26309.356993272086,"y":32849.57212656262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fed4026f-fbbf-4282-b506-360301f30c17","savedPayload":{"position":{"x":26309.356993272086,"y":32849.57212656262},"targetPosition":{"x":26159.356993272086,"y":32589.76450542729},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7947052b-08e7-4840-ba36-e0aa7af971fd","savedPayload":{"position":{"x":26159.356993272086,"y":32589.76450542729},"targetPosition":{"x":26009.356993272086,"y":32329.956884291958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d6727597-44b3-40c7-b856-26d404f59e87","savedPayload":{"position":{"x":26009.356993272086,"y":32329.956884291958},"targetPosition":{"x":25859.356993272086,"y":32070.149263156625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"e3d70f2e-b089-40fc-a888-fcb94c500d9f","savedPayload":{"position":{"x":25859.356993272086,"y":32070.149263156625},"targetPosition":{"x":25709.356993272086,"y":31810.341642021293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"819cdefc-b84b-450e-8082-992fabd5d081","savedPayload":{"position":{"x":25709.356993272086,"y":31810.341642021293},"targetPosition":{"x":25559.356993272086,"y":31550.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"34f4d603-5694-4996-8f6a-573c76ea6090","savedPayload":{"position":{"x":25559.356993272086,"y":31550.53402088596},"targetPosition":{"x":25409.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"ef4b033a-aeb2-4461-bc25-019a834c0b23"}}}],"id":"65a40d20-837c-4652-8356-f8054b4e1346","savedPayload":{"position":{"x":25409.356993272086,"y":31290.726399750627},"targetPosition":{"x":25259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"u"}}},"dataStorage":{"type":"Data Storage","name":"New Data Storage","project":"Superalgos","dataMinesData":{"type":"Data Mines Data","name":"New Data Mines Data","project":"Superalgos","projectDataProducts":[{"type":"Project Data Products","name":"Superalgos","project":"Superalgos","exchangeDataProducts":[{"type":"Exchange Data Products","name":"Binance","project":"Superalgos","marketDataProducts":[{"type":"Market Data Products","name":"Binance BTC/USDT","project":"Superalgos","dataProducts":[],"dataMineProducts":[{"type":"Data Mine Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Exchange Raw Data","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"","project":"Superalgos","id":"2265ee45-551f-4774-bc2b-e76e49ebccff","savedPayload":{"position":{"x":25093.002706802843,"y":31504.504147637348},"targetPosition":{"x":25189.002706802843,"y":31412.504147637348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"38dbb942-a15b-450b-a867-02a94030965f"}}},{"type":"Data Product","name":"Candles","project":"Superalgos","id":"550f9c80-f44e-4971-af93-52419f630069","savedPayload":{"position":{"x":25188.002706802843,"y":31402.504147637348},"targetPosition":{"x":25189.002706802843,"y":31412.504147637348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles","id":"2443883b-6959-42a3-ae3b-ef3102ffcdcc"}}},{"type":"Data Product","name":"Volumes","project":"Superalgos","id":"a72c2f0e-5203-44c8-9dce-072e5221eafd","savedPayload":{"position":{"x":25230.002706802843,"y":31349.504147637348},"targetPosition":{"x":25189.002706802843,"y":31412.504147637348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"3a43c6f3-bac0-404e-865f-822eb48c8660"}}}],"dataProductFolders":[],"id":"cb041225-4f55-4cd5-8eae-1dda5d06a8aa","savedPayload":{"position":{"x":25131.1800162457,"y":32984.40006451947},"targetPosition":{"x":24913.567704942016,"y":32777.89369181134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Products","name":"Candles Volumes","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Candles","project":"Superalgos","id":"2a290f06-5f0b-4f57-93d1-7579fa589aa0","savedPayload":{"position":{"x":25163.072777088713,"y":33300.99195376053},"targetPosition":{"x":24968.23836258966,"y":33072.87016408052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","project":"Superalgos","id":"c789572d-ff73-4664-b2a2-8b84a73dccb1","savedPayload":{"position":{"x":24868.096304819526,"y":33355.662611408174},"targetPosition":{"x":24968.23836258966,"y":33072.87016408052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}}],"dataProductFolders":[],"id":"9167735f-7bc4-41ee-bd54-ad01023d2ca8","savedPayload":{"position":{"x":24968.23836258966,"y":33072.87016408052},"targetPosition":{"x":24913.567704942016,"y":32777.89369181134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Products","name":"Bollinger Bands","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Bollinger Bands","project":"Superalgos","id":"a213e62e-cf80-46e7-8bcf-424d45b8e571","savedPayload":{"position":{"x":24807.95210461788,"y":33347.744477236236},"targetPosition":{"x":24784.414375899527,"y":33048.6692771163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","project":"Superalgos","id":"cdc4ac34-0ec2-4711-9c97-954e42c72d1b","savedPayload":{"position":{"x":24537.17651931292,"y":33218.59114819375},"targetPosition":{"x":24784.414375899527,"y":33048.6692771163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}}],"dataProductFolders":[],"id":"e209f637-e914-492b-98b7-d1aafdfc160d","savedPayload":{"position":{"x":24784.414375899527,"y":33048.6692771163},"targetPosition":{"x":24913.567704942016,"y":32777.89369181134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Products","name":"Bollinger Channels","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Bollinger Channels Objects","project":"Superalgos","id":"aef85abd-8069-4aed-8436-8e67203e5624","savedPayload":{"position":{"x":24610.764713477412,"y":33218.474778301366},"targetPosition":{"x":24649.922571143426,"y":32921.04131988922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Channels","project":"Superalgos","id":"2fdc23da-996c-4429-8beb-3d9db46e2510","savedPayload":{"position":{"x":24443.4161984353,"y":33138.65363119291},"targetPosition":{"x":24649.922571143426,"y":32921.04131988922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","project":"Superalgos","id":"cbf3145e-ab44-4b47-92a5-8d4a7f81802a","savedPayload":{"position":{"x":24354.94609887424,"y":32975.71197753686},"targetPosition":{"x":24649.922571143426,"y":32921.04131988922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","project":"Superalgos","id":"144f7f8b-36b1-4e46-b3a1-3ea6e178d452","savedPayload":{"position":{"x":24379.14698583847,"y":32791.887990846735},"targetPosition":{"x":24649.922571143426,"y":32921.04131988922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}}],"dataProductFolders":[],"id":"b06ade30-a646-45b6-817a-c2dc15edcc53","savedPayload":{"position":{"x":24649.922571143426,"y":32921.04131988922},"targetPosition":{"x":24913.567704942016,"y":32777.89369181134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0cda2799-71dd-4378-9239-4d9429f84a18","savedPayload":{"position":{"x":24913.567704942016,"y":32777.89369181134},"targetPosition":{"x":24952.72556260803,"y":32480.460233399197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}}],"id":"2067ec6a-b245-4d45-aa8f-ee93e7809578","savedPayload":{"position":{"x":24952.72556260803,"y":32480.460233399197},"targetPosition":{"x":24991.883420274044,"y":32183.026774987055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"c16f98b1-3d58-441b-8eaf-a35d0370ee22","savedPayload":{"position":{"x":24991.883420274044,"y":32183.026774987055},"targetPosition":{"x":25031.041277940058,"y":31885.593316574912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"3cc77f8b-5e54-4f69-acf9-e78d06b6b276","savedPayload":{"position":{"x":25031.041277940058,"y":31885.593316574912},"targetPosition":{"x":25070.19913560607,"y":31588.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"ef4b033a-aeb2-4461-bc25-019a834c0b23"}}}],"id":"32e7c122-fa5a-4d00-9d71-d54e890e32de","savedPayload":{"position":{"x":25070.19913560607,"y":31588.15985816277},"targetPosition":{"x":25109.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingMinesData":{"type":"Trading Mines Data","name":"New Trading Mines Data","project":"Superalgos","projectTradingProducts":[{"type":"Project Trading Products","name":"Superalgos","project":"Superalgos","exchangeTradingProducts":[{"type":"Exchange Trading Products","name":"Binance","project":"Superalgos","marketTradingProducts":[{"type":"Market Trading Products","name":"Binance BTC/USDT","project":"Superalgos","tradingSessionReferences":[{"type":"Trading Session Reference","name":"BB Breakdown Backtesting Session","project":"Superalgos","dataProducts":[],"tradingMineProducts":[{"type":"Trading Mine Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Low Frequency","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Trading Engine","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Episode","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episode Counters","project":"Superalgos","id":"cef828df-01c6-4407-9fa7-cf17fd49dc91","savedPayload":{"position":{"x":25132.356993272086,"y":31542.53402088596},"targetPosition":{"x":25089.356993272086,"y":31485.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Counters","id":"d81c6019-864e-42f5-94ba-2f249b865f85"}}},{"type":"Data Product","name":"Episode Statistics","project":"Superalgos","id":"2bc37bb8-7c27-4d1c-9599-cf0f34dc444e","savedPayload":{"position":{"x":25153.356993272086,"y":31509.53402088596},"targetPosition":{"x":25089.356993272086,"y":31485.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Statistics","id":"400c7f49-37da-41fb-b83d-879960aa74ff"}}},{"type":"Data Product","name":"Episode Candle","project":"Superalgos","id":"02deeacc-df97-426a-bf87-ff766baac6c1","savedPayload":{"position":{"x":25015.356993272086,"y":31575.53402088596},"targetPosition":{"x":25089.356993272086,"y":31485.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Candle","id":"b9a58113-cf27-4d57-9810-87a2cc158804"}}},{"type":"Data Product","name":"Episode Balances","project":"Superalgos","id":"11523798-0639-4837-bef6-1e501f2f4d3d","savedPayload":{"position":{"x":25179.356993272086,"y":31428.53402088596},"targetPosition":{"x":25089.356993272086,"y":31485.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Balances","id":"a9a53d82-133b-4417-b639-f9a56d338233"}}},{"type":"Data Product","name":"Distance To Event","project":"Superalgos","id":"d066d2a4-1082-4ab7-bcb5-8c09555e0489","savedPayload":{"position":{"x":25057.356993272086,"y":31580.53402088596},"targetPosition":{"x":25089.356993272086,"y":31485.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Distance To Event","id":"8ea88d6c-7d7f-4152-b781-ea108df52c63"}}},{"type":"Data Product","name":"Episode Base Asset","project":"Superalgos","id":"2d338ab2-1e4c-4afe-ab24-67d9f31b50fd","savedPayload":{"position":{"x":25121.356993272086,"y":31520.53402088596},"targetPosition":{"x":25089.356993272086,"y":31485.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Base Asset","id":"234969ff-eab1-4d59-b6fa-79433c9a20e9"}}},{"type":"Data Product","name":"Episode Quoted Asset","project":"Superalgos","id":"ee1dbbb3-cf97-4e92-a5b4-8700ae047a54","savedPayload":{"position":{"x":25007.356993272086,"y":31549.53402088596},"targetPosition":{"x":25089.356993272086,"y":31485.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Quoted Asset","id":"ae525e31-d6a8-47d2-9021-3f2ddb9615b0"}}},{"type":"Data Product","name":"Current Episode","project":"Superalgos","id":"d32a2b30-d8b8-4e06-ac41-82de8e22eb13","savedPayload":{"position":{"x":25076.356993272086,"y":31531.53402088596},"targetPosition":{"x":25089.356993272086,"y":31485.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Episode","id":"b8da0132-ba28-46ec-aa54-eb9eaac56ce7"}}}],"dataProductFolders":[],"id":"2b88d002-8f7a-436a-b0db-f2097db39400","savedPayload":{"position":{"x":25089.356993272086,"y":31485.53402088596},"targetPosition":{"x":25014.356993272086,"y":31560.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Strategy","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Strategy","project":"Superalgos","id":"75795607-4071-41da-8d46-da5152f424e8","savedPayload":{"position":{"x":25101.356993272086,"y":31694.53402088596},"targetPosition":{"x":25097.356993272086,"y":31630.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Strategy","id":"895d8a04-ef45-41a7-909a-ba31013ffb90"}}},{"type":"Data Product","name":"Last Strategy","project":"Superalgos","id":"15dbd93b-0d60-4eff-a793-15ed2e05dbbc","savedPayload":{"position":{"x":25083.356993272086,"y":31703.53402088596},"targetPosition":{"x":25097.356993272086,"y":31630.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Strategy","id":"0625f524-2b97-4b4d-8a90-590ffc62ecd3"}}}],"dataProductFolders":[],"id":"0c6ac11e-6092-4ff5-b122-e437d8e5bd75","savedPayload":{"position":{"x":25097.356993272086,"y":31630.53402088596},"targetPosition":{"x":25014.356993272086,"y":31560.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Position","project":"Superalgos","id":"75bb0a5f-3441-4f9a-9af9-d5665a001af1","savedPayload":{"position":{"x":24924.356993272086,"y":31488.53402088596},"targetPosition":{"x":24920.356993272086,"y":31518.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Position","id":"832ecada-8da3-4ba6-b6e9-be34dd5f7ce9"}}},{"type":"Data Product","name":"Last Position","project":"Superalgos","id":"451d1bfc-cc2f-49cd-a283-e0028e6612c7","savedPayload":{"position":{"x":24999.356993272086,"y":31479.53402088596},"targetPosition":{"x":24920.356993272086,"y":31518.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Position","id":"477cd6d5-862a-44d0-9313-786a4e63a602"}}},{"type":"Data Product","name":"Stop Loss","project":"Superalgos","id":"3625bc4a-bfc3-4de8-b0e3-3313fdbcf7e3","savedPayload":{"position":{"x":24861.356993272086,"y":31511.53402088596},"targetPosition":{"x":24920.356993272086,"y":31518.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Stop Loss","id":"a1c047bd-e95e-469a-aac9-3d45c4157440"}}},{"type":"Data Product","name":"Take Profit","project":"Superalgos","id":"8ae185fe-147e-4377-9e73-f9468376ca73","savedPayload":{"position":{"x":24962.356993272086,"y":31500.53402088596},"targetPosition":{"x":24920.356993272086,"y":31518.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Take Profit","id":"11513bf1-0f23-4d79-b760-83ccebc4e1c5"}}}],"dataProductFolders":[],"id":"c2d21601-2c89-42fa-b93c-02b4fac07a03","savedPayload":{"position":{"x":24920.356993272086,"y":31518.53402088596},"targetPosition":{"x":25014.356993272086,"y":31560.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Open Stage","project":"Superalgos","id":"5c8e399d-8a15-4dd0-aa03-196111661c4e","savedPayload":{"position":{"x":25034.356993272086,"y":31598.53402088596},"targetPosition":{"x":25065.356993272086,"y":31621.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stage","id":"73c3c041-ba2a-4798-a362-a453409b518a"}}},{"type":"Data Product","name":"Close Stage","project":"Superalgos","id":"c5e583ec-17b6-4b81-ba73-052db231b245","savedPayload":{"position":{"x":25086.356993272086,"y":31681.53402088596},"targetPosition":{"x":25065.356993272086,"y":31621.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stage","id":"2bb9bb41-1ff5-4f83-aa5b-bfc4c9f06a9a"}}},{"type":"Data Product","name":"Trigger Stage","project":"Superalgos","id":"9df61698-db66-4c28-86f4-a6f2b49482ae","savedPayload":{"position":{"x":25002.356993272086,"y":31715.53402088596},"targetPosition":{"x":25065.356993272086,"y":31621.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stage","id":"b6cff826-9056-4fbd-8eca-cbd6cceec962"}}},{"type":"Data Product","name":"Manage Stage","project":"Superalgos","id":"674f4993-3b21-42b0-8490-2e18896c65f8","savedPayload":{"position":{"x":24976.356993272086,"y":31603.53402088596},"targetPosition":{"x":25065.356993272086,"y":31621.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stage","id":"bd691611-e7a6-49a8-b07d-c15360b55e40"}}}],"dataProductFolders":[],"id":"c4860c3d-a0f0-4747-9174-c7fbbb29c096","savedPayload":{"position":{"x":25065.356993272086,"y":31621.53402088596},"targetPosition":{"x":25014.356993272086,"y":31560.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"ccc95dde-7998-4093-b688-8a537252309c","savedPayload":{"position":{"x":25077.356993272086,"y":31573.53402088596},"targetPosition":{"x":24992.356993272086,"y":31527.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"7c769317-2639-4460-8b88-9dc92f7b0585"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"7cd654af-5a5c-42f6-9b10-f246c3295ae0","savedPayload":{"position":{"x":25024.356993272086,"y":31618.53402088596},"targetPosition":{"x":24992.356993272086,"y":31527.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"9cc7645a-54fe-40d6-9896-9278167011fb"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"cbb0fe95-55e5-4909-b66d-612e6fb15f8e","savedPayload":{"position":{"x":25032.356993272086,"y":31588.53402088596},"targetPosition":{"x":24992.356993272086,"y":31527.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"4c827ee0-a29b-4b65-8438-03e2ea98b410"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"a2647cfd-00eb-40c8-8d75-73d63dac5a73","savedPayload":{"position":{"x":25032.356993272086,"y":31447.53402088596},"targetPosition":{"x":24992.356993272086,"y":31527.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2c753cd8-36d8-466c-bd80-1ebfa8e314dc"}}},{"type":"Data Product","name":"Last Market Order","project":"Superalgos","id":"5319405c-c588-4000-aacf-0250fec08afd","savedPayload":{"position":{"x":24946.356993272086,"y":31617.53402088596},"targetPosition":{"x":24992.356993272086,"y":31527.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Market Order","id":"6df1ac87-92d5-4788-b0bc-f3543b283ef0"}}},{"type":"Data Product","name":"Last Limit Order","project":"Superalgos","id":"366c345a-26a0-438d-b39e-e5270cd06c22","savedPayload":{"position":{"x":24908.356993272086,"y":31500.53402088596},"targetPosition":{"x":24992.356993272086,"y":31527.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Limit Order","id":"c24ec6a1-e937-4d20-93eb-4faf2a0becc3"}}}],"dataProductFolders":[],"id":"0848849f-ae3b-4f1d-b2e5-4f1eb3a28e9f","savedPayload":{"position":{"x":24992.356993272086,"y":31527.53402088596},"targetPosition":{"x":25014.356993272086,"y":31560.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"788e3972-6feb-40ae-8727-6ea6f9566f7b","savedPayload":{"position":{"x":25014.356993272086,"y":31560.53402088596},"targetPosition":{"x":25007.356993272086,"y":31552.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Trading System","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trading System Errors","project":"Superalgos","id":"222da1c1-666b-4c9d-b199-e3fe0b985ab7","savedPayload":{"position":{"x":25011.356993272086,"y":31451.53402088596},"targetPosition":{"x":25058.356993272086,"y":31543.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Errors","id":"1d9c570d-77c7-40ac-a61e-c5a57a411de8"}}},{"type":"Data Product","name":"Trading System Highlights","project":"Superalgos","id":"4801de44-7391-4927-b748-9a4e5817e0fd","savedPayload":{"position":{"x":24998.356993272086,"y":31493.53402088596},"targetPosition":{"x":25058.356993272086,"y":31543.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Highlights","id":"319f660a-78be-4cf4-8052-877837cad806"}}},{"type":"Data Product","name":"Trading System Values","project":"Superalgos","id":"a9bdf073-c8ca-4a54-884e-d5daaab27ecd","savedPayload":{"position":{"x":25146.356993272086,"y":31528.53402088596},"targetPosition":{"x":25058.356993272086,"y":31543.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Values","id":"c90c009b-588d-45d4-aff1-05e375181dfa"}}},{"type":"Data Product","name":"Trading System Status","project":"Superalgos","id":"f9624574-2c30-47c5-9602-78110959a8e8","savedPayload":{"position":{"x":25010.356993272086,"y":31577.53402088596},"targetPosition":{"x":25058.356993272086,"y":31543.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Status","id":"eed48c80-35c5-49fa-b12d-18e7280ffb8f"}}},{"type":"Data Product","name":"Trading System Progress","project":"Superalgos","id":"e31d3359-1ce1-47c9-abd4-b8c8b0a09b1b","savedPayload":{"position":{"x":25126.356993272086,"y":31641.53402088596},"targetPosition":{"x":25058.356993272086,"y":31543.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Progress","id":"04c8606b-5e59-4e7d-b3ac-387bfffcd300"}}},{"type":"Data Product","name":"Trading System Running","project":"Superalgos","id":"2291e334-3608-48e5-a93a-1c48cc08fb2e","savedPayload":{"position":{"x":25047.356993272086,"y":31604.53402088596},"targetPosition":{"x":25058.356993272086,"y":31543.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Running","id":"17236f59-6ef2-4cc3-913c-1ff6db052236"}}},{"type":"Data Product","name":"Trading System Announcements","project":"Superalgos","id":"911f973d-6f74-49fd-aec9-47c2b56c4a5a","savedPayload":{"position":{"x":25144.356993272086,"y":31557.53402088596},"targetPosition":{"x":25058.356993272086,"y":31543.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Announcements","id":"4a6f828a-9671-431e-8257-fc920943581e"}}},{"type":"Data Product","name":"Trading System Warnings","project":"Superalgos","id":"27a1feb4-ec9e-4f3a-aec7-508de46470d1","savedPayload":{"position":{"x":25094.356993272086,"y":31606.53402088596},"targetPosition":{"x":25058.356993272086,"y":31543.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Warnings","id":"34310596-466a-4e9a-a5a2-256b0fe3e339"}}},{"type":"Data Product","name":"Trading System Infos","project":"Superalgos","id":"e2ad1c02-06f9-4572-9e18-840969838be3","savedPayload":{"position":{"x":24975.356993272086,"y":31450.53402088596},"targetPosition":{"x":25058.356993272086,"y":31543.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Infos","id":"020ad519-0fc6-4f2f-9f26-b2c7de118fb8"}}}],"dataProductFolders":[],"id":"ee2232b9-87bb-4fdd-8a7e-3ccac18005b0","savedPayload":{"position":{"x":25058.356993272086,"y":31543.53402088596},"targetPosition":{"x":25007.356993272086,"y":31552.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Simulation Objects","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episodes","project":"Superalgos","id":"c5d430c4-b651-44fa-ac66-61b909c1a693","savedPayload":{"position":{"x":25094.356993272086,"y":31596.53402088596},"targetPosition":{"x":25027.356993272086,"y":31507.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episodes","id":"aeec080e-8caf-4976-8187-ba4e725b73b0"}}},{"type":"Data Product","name":"Strategies","project":"Superalgos","id":"7e14ad62-ecec-410b-9863-2fb923bcf0bc","savedPayload":{"position":{"x":24986.356993272086,"y":31410.53402088596},"targetPosition":{"x":25027.356993272086,"y":31507.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"21db6fce-8450-4b07-9015-d81a339fd030"}}}],"dataProductFolders":[{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"e83e89c2-f57e-47e5-96c7-5b5c660cdef0","savedPayload":{"position":{"x":24939.356993272086,"y":31331.53402088596},"targetPosition":{"x":25034.356993272086,"y":31413.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"db256083-9aa2-48e1-8fd6-3425a5085302"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"9c2155e6-b688-4f18-932d-ee9e70be5158","savedPayload":{"position":{"x":25015.356993272086,"y":31319.53402088596},"targetPosition":{"x":25034.356993272086,"y":31413.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"1958f79b-5c6c-4874-9154-98c314822ed7"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"7bfeecb1-c28a-455a-91f1-d88834d732b6","savedPayload":{"position":{"x":24996.356993272086,"y":31418.53402088596},"targetPosition":{"x":25034.356993272086,"y":31413.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"5deceb32-c7ab-4560-818a-0f0b9d6632fb"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"923f8e15-9a79-41d6-957c-42360847456d","savedPayload":{"position":{"x":25017.356993272086,"y":31510.53402088596},"targetPosition":{"x":25034.356993272086,"y":31413.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2a1d405b-2fbe-4ed4-a76a-d2c7be59d20e"}}}],"dataProductFolders":[],"id":"550ac4ad-c2a7-4b44-a100-bfed660b80ab","savedPayload":{"position":{"x":25034.356993272086,"y":31413.53402088596},"targetPosition":{"x":25027.356993272086,"y":31507.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trigger Stages","project":"Superalgos","id":"923d6695-c25d-42bd-aa9c-4fc793207e7c","savedPayload":{"position":{"x":25019.356993272086,"y":31443.53402088596},"targetPosition":{"x":25044.356993272086,"y":31501.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stages","id":"18cc2e79-7e57-418c-b635-6c68fc11d681"}}},{"type":"Data Product","name":"Open Stages","project":"Superalgos","id":"7947d593-883c-47c8-b7fa-f02296ba53ef","savedPayload":{"position":{"x":25138.356993272086,"y":31501.53402088596},"targetPosition":{"x":25044.356993272086,"y":31501.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stages","id":"d5938c00-0849-466d-ae14-4ea91b571678"}}},{"type":"Data Product","name":"Manage Stages","project":"Superalgos","id":"2ff568f3-d4bb-4ab8-b373-f98b98dcde72","savedPayload":{"position":{"x":25118.356993272086,"y":31417.53402088596},"targetPosition":{"x":25044.356993272086,"y":31501.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stages","id":"8fab86b3-db8d-4113-8418-1d256bd98cf2"}}},{"type":"Data Product","name":"Close Stages","project":"Superalgos","id":"b0af2801-1ab3-4492-8468-dea73b3602ff","savedPayload":{"position":{"x":25099.356993272086,"y":31529.53402088596},"targetPosition":{"x":25044.356993272086,"y":31501.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stages","id":"ba911e61-f951-48cd-b547-9a70aa211100"}}}],"dataProductFolders":[],"id":"12ee02ca-262e-47e5-bd7a-b859914c8af1","savedPayload":{"position":{"x":25044.356993272086,"y":31501.53402088596},"targetPosition":{"x":25027.356993272086,"y":31507.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Positions","project":"Superalgos","id":"14dba295-5795-4ed3-bdc5-ccf11a8028c5","savedPayload":{"position":{"x":25070.356993272086,"y":31626.53402088596},"targetPosition":{"x":25101.356993272086,"y":31582.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Positions","id":"1eabba24-cbd4-4cbf-95e0-c5135349d41d"}}},{"type":"Data Product","name":"Position Base Asset","project":"Superalgos","id":"19cabd46-a4dc-47a4-9a4a-bd5f264836d4","savedPayload":{"position":{"x":25030.356993272086,"y":31607.53402088596},"targetPosition":{"x":25101.356993272086,"y":31582.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Base Asset","id":"b371b039-f6c8-4f60-84cb-52f55c96c84d"}}},{"type":"Data Product","name":"Position Quoted Asset","project":"Superalgos","id":"09d9b2b3-afd2-4b7d-9553-b254d6c8738f","savedPayload":{"position":{"x":25036.356993272086,"y":31536.53402088596},"targetPosition":{"x":25101.356993272086,"y":31582.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Quoted Asset","id":"a376f02b-a5d2-4079-b5cd-ab7dc894b909"}}},{"type":"Data Product","name":"Stop Loss","project":"Superalgos","id":"f31415b0-baa4-44fb-a018-8e1a26f2dae0","savedPayload":{"position":{"x":25069.356993272086,"y":31499.53402088596},"targetPosition":{"x":25101.356993272086,"y":31582.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Stop Loss","id":"c18bdc82-216a-4b1d-8850-5c3c9dc2000b"}}},{"type":"Data Product","name":"Take Profit","project":"Superalgos","id":"140b3155-0cd9-4bde-b012-24f81bf97970","savedPayload":{"position":{"x":25050.356993272086,"y":31632.53402088596},"targetPosition":{"x":25101.356993272086,"y":31582.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Take Profit","id":"2542c7d0-fa26-4b52-a59a-a3630e52eb89"}}}],"dataProductFolders":[],"id":"87d13c7d-abe9-450e-bfbc-198877803791","savedPayload":{"position":{"x":25101.356993272086,"y":31582.53402088596},"targetPosition":{"x":25027.356993272086,"y":31507.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"db8f35bb-fe77-499d-b74b-3844d2b424c1","savedPayload":{"position":{"x":25027.356993272086,"y":31507.53402088596},"targetPosition":{"x":25007.356993272086,"y":31552.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3b10b71e-f87f-44d5-8eb3-d2e34cca6aa4","savedPayload":{"position":{"x":25007.356993272086,"y":31552.53402088596},"targetPosition":{"x":25026.356993272086,"y":31497.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"caa36a7c-69b6-4863-a313-003d5af2d126","savedPayload":{"position":{"x":25026.356993272086,"y":31497.53402088596},"targetPosition":{"x":25025.356993272086,"y":31470.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"4e65f031-039a-4d52-af79-fbcd1bd101c9","savedPayload":{"position":{"x":24509.356993272086,"y":32629.956884291958},"targetPosition":{"x":24509.356993272086,"y":32329.956884291958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"BB Breakdown","id":"d23a592c-596c-475f-a6c4-00a63d05cf92"}}},{"type":"Trading Session Reference","name":"BB Breakdown 2 Backtesting Session","project":"Superalgos","dataProducts":[],"tradingMineProducts":[{"type":"Trading Mine Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Low Frequency","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Trading Engine","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Episode","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episode Counters","project":"Superalgos","id":"60924390-790b-4bf7-adc7-b72bc77d9e16","savedPayload":{"position":{"x":24535.9107304977,"y":31390.35783203362},"targetPosition":{"x":24473.9107304977,"y":31396.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Counters","id":"d81c6019-864e-42f5-94ba-2f249b865f85"}}},{"type":"Data Product","name":"Episode Statistics","project":"Superalgos","id":"ed1de592-f7b9-4c25-8fbb-ee321dd66825","savedPayload":{"position":{"x":24530.9107304977,"y":31409.35783203362},"targetPosition":{"x":24473.9107304977,"y":31396.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Statistics","id":"400c7f49-37da-41fb-b83d-879960aa74ff"}}},{"type":"Data Product","name":"Episode Candle","project":"Superalgos","id":"9f1e1582-6d1e-44ac-8606-021c0d0ecbec","savedPayload":{"position":{"x":24412.9107304977,"y":31310.35783203362},"targetPosition":{"x":24473.9107304977,"y":31396.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Candle","id":"b9a58113-cf27-4d57-9810-87a2cc158804"}}},{"type":"Data Product","name":"Episode Balances","project":"Superalgos","id":"c7197474-250f-4f35-b56f-e9b8d5a90b94","savedPayload":{"position":{"x":24378.9107304977,"y":31469.35783203362},"targetPosition":{"x":24473.9107304977,"y":31396.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Balances","id":"a9a53d82-133b-4417-b639-f9a56d338233"}}},{"type":"Data Product","name":"Distance To Event","project":"Superalgos","id":"6e485425-6dfd-4c38-aa2d-28aca024dd1b","savedPayload":{"position":{"x":24393.9107304977,"y":31435.35783203362},"targetPosition":{"x":24473.9107304977,"y":31396.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Distance To Event","id":"8ea88d6c-7d7f-4152-b781-ea108df52c63"}}},{"type":"Data Product","name":"Episode Base Asset","project":"Superalgos","id":"73570334-f5cc-4b17-9e75-ac44e2f8fec1","savedPayload":{"position":{"x":24444.9107304977,"y":31393.35783203362},"targetPosition":{"x":24473.9107304977,"y":31396.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Base Asset","id":"234969ff-eab1-4d59-b6fa-79433c9a20e9"}}},{"type":"Data Product","name":"Episode Quoted Asset","project":"Superalgos","id":"ee9028a0-c321-4a22-82a0-7ed2527162eb","savedPayload":{"position":{"x":24530.9107304977,"y":31449.35783203362},"targetPosition":{"x":24473.9107304977,"y":31396.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Quoted Asset","id":"ae525e31-d6a8-47d2-9021-3f2ddb9615b0"}}},{"type":"Data Product","name":"Current Episode","project":"Superalgos","id":"eef16b61-006f-45f9-a77c-914ad21f9a43","savedPayload":{"position":{"x":24503.9107304977,"y":31339.35783203362},"targetPosition":{"x":24473.9107304977,"y":31396.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Episode","id":"b8da0132-ba28-46ec-aa54-eb9eaac56ce7"}}}],"dataProductFolders":[],"id":"41b043c1-d360-4894-8cd9-b4001529672c","savedPayload":{"position":{"x":24473.9107304977,"y":31396.35783203362},"targetPosition":{"x":24560.9107304977,"y":31349.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Strategy","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Strategy","project":"Superalgos","id":"23ba93fd-b3b7-432d-a50a-cafcb4cc293b","savedPayload":{"position":{"x":24626.9107304977,"y":31307.35783203362},"targetPosition":{"x":24570.9107304977,"y":31270.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Strategy","id":"895d8a04-ef45-41a7-909a-ba31013ffb90"}}},{"type":"Data Product","name":"Last Strategy","project":"Superalgos","id":"2c1c952c-525a-417f-8dff-33c31b9a625c","savedPayload":{"position":{"x":24640.9107304977,"y":31316.35783203362},"targetPosition":{"x":24570.9107304977,"y":31270.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Strategy","id":"0625f524-2b97-4b4d-8a90-590ffc62ecd3"}}}],"dataProductFolders":[],"id":"a6713bd3-457b-4820-bb01-33cfb42ffa03","savedPayload":{"position":{"x":24570.9107304977,"y":31270.35783203362},"targetPosition":{"x":24560.9107304977,"y":31349.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Position","project":"Superalgos","id":"78d634df-0591-48c7-96d2-d21b978937c3","savedPayload":{"position":{"x":24537.9107304977,"y":31435.35783203362},"targetPosition":{"x":24474.9107304977,"y":31373.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Position","id":"832ecada-8da3-4ba6-b6e9-be34dd5f7ce9"}}},{"type":"Data Product","name":"Last Position","project":"Superalgos","id":"ea278b46-43e2-4432-8e4e-6337a8a4add5","savedPayload":{"position":{"x":24553.9107304977,"y":31434.35783203362},"targetPosition":{"x":24474.9107304977,"y":31373.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Position","id":"477cd6d5-862a-44d0-9313-786a4e63a602"}}},{"type":"Data Product","name":"Stop Loss","project":"Superalgos","id":"5acabff8-8f1b-41c3-ab67-01c4126b23a2","savedPayload":{"position":{"x":24448.9107304977,"y":31400.35783203362},"targetPosition":{"x":24474.9107304977,"y":31373.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Stop Loss","id":"a1c047bd-e95e-469a-aac9-3d45c4157440"}}},{"type":"Data Product","name":"Take Profit","project":"Superalgos","id":"9fa7056e-9d71-48bb-9a6b-33a28c2dfd69","savedPayload":{"position":{"x":24396.9107304977,"y":31407.35783203362},"targetPosition":{"x":24474.9107304977,"y":31373.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Take Profit","id":"11513bf1-0f23-4d79-b760-83ccebc4e1c5"}}}],"dataProductFolders":[],"id":"de8dd87a-a89f-404d-a821-350a2114d6f4","savedPayload":{"position":{"x":24474.9107304977,"y":31373.35783203362},"targetPosition":{"x":24560.9107304977,"y":31349.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Open Stage","project":"Superalgos","id":"bf681252-1213-40e6-b0f0-ae24d37b7840","savedPayload":{"position":{"x":24472.9107304977,"y":31336.35783203362},"targetPosition":{"x":24558.9107304977,"y":31352.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stage","id":"73c3c041-ba2a-4798-a362-a453409b518a"}}},{"type":"Data Product","name":"Close Stage","project":"Superalgos","id":"e57e80d4-bfb4-45fa-ba46-8a8ddb6381ea","savedPayload":{"position":{"x":24491.9107304977,"y":31325.35783203362},"targetPosition":{"x":24558.9107304977,"y":31352.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stage","id":"2bb9bb41-1ff5-4f83-aa5b-bfc4c9f06a9a"}}},{"type":"Data Product","name":"Trigger Stage","project":"Superalgos","id":"a750a17b-6e62-446d-9d2a-7d2ae2c9fc39","savedPayload":{"position":{"x":24599.9107304977,"y":31393.35783203362},"targetPosition":{"x":24558.9107304977,"y":31352.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stage","id":"b6cff826-9056-4fbd-8eca-cbd6cceec962"}}},{"type":"Data Product","name":"Manage Stage","project":"Superalgos","id":"3c9cf74d-ab63-4391-ad0c-58fd7cb4101e","savedPayload":{"position":{"x":24650.9107304977,"y":31372.35783203362},"targetPosition":{"x":24558.9107304977,"y":31352.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stage","id":"bd691611-e7a6-49a8-b07d-c15360b55e40"}}}],"dataProductFolders":[],"id":"2daf737e-964c-4aa0-87da-68adca65d939","savedPayload":{"position":{"x":24558.9107304977,"y":31352.35783203362},"targetPosition":{"x":24560.9107304977,"y":31349.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"5b8ff9e4-9192-4c2f-8e25-18958434fc23","savedPayload":{"position":{"x":24685.9107304977,"y":31320.35783203362},"targetPosition":{"x":24600.9107304977,"y":31269.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"7c769317-2639-4460-8b88-9dc92f7b0585"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"66d9a06b-f084-403b-99cc-3109515feba0","savedPayload":{"position":{"x":24574.9107304977,"y":31177.35783203362},"targetPosition":{"x":24600.9107304977,"y":31269.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"9cc7645a-54fe-40d6-9896-9278167011fb"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"f071951e-4b95-4545-9cdc-7a53e38141bf","savedPayload":{"position":{"x":24631.9107304977,"y":31218.35783203362},"targetPosition":{"x":24600.9107304977,"y":31269.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"4c827ee0-a29b-4b65-8438-03e2ea98b410"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"0343abbc-865e-406a-92b2-e8099a15a083","savedPayload":{"position":{"x":24668.9107304977,"y":31347.35783203362},"targetPosition":{"x":24600.9107304977,"y":31269.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2c753cd8-36d8-466c-bd80-1ebfa8e314dc"}}},{"type":"Data Product","name":"Last Market Order","project":"Superalgos","id":"f00813c7-b43f-429c-b3c7-8333086cec29","savedPayload":{"position":{"x":24576.9107304977,"y":31235.35783203362},"targetPosition":{"x":24600.9107304977,"y":31269.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Market Order","id":"6df1ac87-92d5-4788-b0bc-f3543b283ef0"}}},{"type":"Data Product","name":"Last Limit Order","project":"Superalgos","id":"35d59b74-3b26-492a-a3c0-9c3baea8144a","savedPayload":{"position":{"x":24663.9107304977,"y":31177.35783203362},"targetPosition":{"x":24600.9107304977,"y":31269.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Limit Order","id":"c24ec6a1-e937-4d20-93eb-4faf2a0becc3"}}}],"dataProductFolders":[],"id":"e1db489f-4594-4067-8db7-b8f85162343e","savedPayload":{"position":{"x":24600.9107304977,"y":31269.35783203362},"targetPosition":{"x":24560.9107304977,"y":31349.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"67575ed1-4a61-4bb2-a590-f8ce293e0b38","savedPayload":{"position":{"x":24560.9107304977,"y":31349.35783203362},"targetPosition":{"x":24483.9107304977,"y":31348.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Trading System","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trading System Errors","project":"Superalgos","id":"94121dfb-1b89-4c82-b220-6f760b71b6c4","savedPayload":{"position":{"x":24571.9107304977,"y":31279.35783203362},"targetPosition":{"x":24519.9107304977,"y":31254.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Errors","id":"1d9c570d-77c7-40ac-a61e-c5a57a411de8"}}},{"type":"Data Product","name":"Trading System Highlights","project":"Superalgos","id":"46c81d1e-6ada-4a2e-b452-a14d30507268","savedPayload":{"position":{"x":24569.9107304977,"y":31225.35783203362},"targetPosition":{"x":24519.9107304977,"y":31254.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Highlights","id":"319f660a-78be-4cf4-8052-877837cad806"}}},{"type":"Data Product","name":"Trading System Values","project":"Superalgos","id":"f6e40bee-1acd-45da-9e63-4963b8cb7344","savedPayload":{"position":{"x":24540.9107304977,"y":31173.35783203362},"targetPosition":{"x":24519.9107304977,"y":31254.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Values","id":"c90c009b-588d-45d4-aff1-05e375181dfa"}}},{"type":"Data Product","name":"Trading System Status","project":"Superalgos","id":"de497510-ba9e-48f3-b77c-1c02a6ed091a","savedPayload":{"position":{"x":24522.9107304977,"y":31210.35783203362},"targetPosition":{"x":24519.9107304977,"y":31254.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Status","id":"eed48c80-35c5-49fa-b12d-18e7280ffb8f"}}},{"type":"Data Product","name":"Trading System Progress","project":"Superalgos","id":"14274541-0796-44be-96fd-4fba265a4044","savedPayload":{"position":{"x":24598.9107304977,"y":31292.35783203362},"targetPosition":{"x":24519.9107304977,"y":31254.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Progress","id":"04c8606b-5e59-4e7d-b3ac-387bfffcd300"}}},{"type":"Data Product","name":"Trading System Running","project":"Superalgos","id":"1cd43234-6db9-4f7a-beb3-6af28c18b332","savedPayload":{"position":{"x":24555.9107304977,"y":31216.35783203362},"targetPosition":{"x":24519.9107304977,"y":31254.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Running","id":"17236f59-6ef2-4cc3-913c-1ff6db052236"}}},{"type":"Data Product","name":"Trading System Announcements","project":"Superalgos","id":"84633784-93c1-470e-a0f8-a7beb8ce502c","savedPayload":{"position":{"x":24573.9107304977,"y":31197.35783203362},"targetPosition":{"x":24519.9107304977,"y":31254.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Announcements","id":"4a6f828a-9671-431e-8257-fc920943581e"}}},{"type":"Data Product","name":"Trading System Warnings","project":"Superalgos","id":"bdce3741-9a44-4034-86a3-f49d6fc524f1","savedPayload":{"position":{"x":24563.9107304977,"y":31282.35783203362},"targetPosition":{"x":24519.9107304977,"y":31254.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Warnings","id":"34310596-466a-4e9a-a5a2-256b0fe3e339"}}},{"type":"Data Product","name":"Trading System Infos","project":"Superalgos","id":"d8640483-263f-418e-bc7d-c1a49f8ca077","savedPayload":{"position":{"x":24422.9107304977,"y":31290.35783203362},"targetPosition":{"x":24519.9107304977,"y":31254.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Infos","id":"020ad519-0fc6-4f2f-9f26-b2c7de118fb8"}}}],"dataProductFolders":[],"id":"48ec4b78-72ff-4dc9-a9e2-199a074d2c8f","savedPayload":{"position":{"x":24519.9107304977,"y":31254.35783203362},"targetPosition":{"x":24483.9107304977,"y":31348.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Simulation Objects","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episodes","project":"Superalgos","id":"19d5459e-93b0-4c37-8a9e-6a0f4db7ea82","savedPayload":{"position":{"x":24456.9107304977,"y":31434.35783203362},"targetPosition":{"x":24548.9107304977,"y":31389.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episodes","id":"aeec080e-8caf-4976-8187-ba4e725b73b0"}}},{"type":"Data Product","name":"Strategies","project":"Superalgos","id":"f9391814-3a37-4ebe-be77-17eeeadebfc7","savedPayload":{"position":{"x":24563.9107304977,"y":31468.35783203362},"targetPosition":{"x":24548.9107304977,"y":31389.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"21db6fce-8450-4b07-9015-d81a339fd030"}}}],"dataProductFolders":[{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"9b7f1c09-af0e-4c08-ae4c-148ceab5a026","savedPayload":{"position":{"x":24644.9107304977,"y":31367.35783203362},"targetPosition":{"x":24545.9107304977,"y":31306.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"db256083-9aa2-48e1-8fd6-3425a5085302"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"3e1862e4-e429-419c-866b-5c02891f2234","savedPayload":{"position":{"x":24560.9107304977,"y":31246.35783203362},"targetPosition":{"x":24545.9107304977,"y":31306.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"1958f79b-5c6c-4874-9154-98c314822ed7"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"8b595cff-673d-4d21-ac1b-c1c6a7ea04d4","savedPayload":{"position":{"x":24600.9107304977,"y":31245.35783203362},"targetPosition":{"x":24545.9107304977,"y":31306.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"5deceb32-c7ab-4560-818a-0f0b9d6632fb"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"af34a526-4694-44f7-a678-748d101b6e61","savedPayload":{"position":{"x":24635.9107304977,"y":31319.35783203362},"targetPosition":{"x":24545.9107304977,"y":31306.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2a1d405b-2fbe-4ed4-a76a-d2c7be59d20e"}}}],"dataProductFolders":[],"id":"f173eb6b-b0bb-4afc-a5d7-7b63d1981d99","savedPayload":{"position":{"x":24545.9107304977,"y":31306.35783203362},"targetPosition":{"x":24548.9107304977,"y":31389.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trigger Stages","project":"Superalgos","id":"fe5ea980-791c-4962-979a-1c3f96663835","savedPayload":{"position":{"x":24429.9107304977,"y":31494.35783203362},"targetPosition":{"x":24468.9107304977,"y":31411.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stages","id":"18cc2e79-7e57-418c-b635-6c68fc11d681"}}},{"type":"Data Product","name":"Open Stages","project":"Superalgos","id":"7528e7c1-d7b6-4b3a-bfbd-7e05f5c2b4b0","savedPayload":{"position":{"x":24522.9107304977,"y":31471.35783203362},"targetPosition":{"x":24468.9107304977,"y":31411.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stages","id":"d5938c00-0849-466d-ae14-4ea91b571678"}}},{"type":"Data Product","name":"Manage Stages","project":"Superalgos","id":"e5b35205-1a83-4c9d-bbb6-1587b31d7fa2","savedPayload":{"position":{"x":24453.9107304977,"y":31395.35783203362},"targetPosition":{"x":24468.9107304977,"y":31411.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stages","id":"8fab86b3-db8d-4113-8418-1d256bd98cf2"}}},{"type":"Data Product","name":"Close Stages","project":"Superalgos","id":"305af32b-0136-4382-8cbb-f4def428274c","savedPayload":{"position":{"x":24465.9107304977,"y":31389.35783203362},"targetPosition":{"x":24468.9107304977,"y":31411.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stages","id":"ba911e61-f951-48cd-b547-9a70aa211100"}}}],"dataProductFolders":[],"id":"f5b8e9c6-4682-4c5e-a715-2f976cb51e75","savedPayload":{"position":{"x":24468.9107304977,"y":31411.35783203362},"targetPosition":{"x":24548.9107304977,"y":31389.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Positions","project":"Superalgos","id":"10971a05-a642-4759-a952-e114694a884e","savedPayload":{"position":{"x":24468.9107304977,"y":31396.35783203362},"targetPosition":{"x":24505.9107304977,"y":31317.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Positions","id":"1eabba24-cbd4-4cbf-95e0-c5135349d41d"}}},{"type":"Data Product","name":"Position Base Asset","project":"Superalgos","id":"28d64a66-6238-4780-a322-74bb988486d7","savedPayload":{"position":{"x":24473.9107304977,"y":31410.35783203362},"targetPosition":{"x":24505.9107304977,"y":31317.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Base Asset","id":"b371b039-f6c8-4f60-84cb-52f55c96c84d"}}},{"type":"Data Product","name":"Position Quoted Asset","project":"Superalgos","id":"76484f39-20e9-486e-a301-55626440c3a9","savedPayload":{"position":{"x":24444.9107304977,"y":31219.35783203362},"targetPosition":{"x":24505.9107304977,"y":31317.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Quoted Asset","id":"a376f02b-a5d2-4079-b5cd-ab7dc894b909"}}},{"type":"Data Product","name":"Stop Loss","project":"Superalgos","id":"4d412b84-013f-45fa-b684-6269167fd5e5","savedPayload":{"position":{"x":24470.9107304977,"y":31254.35783203362},"targetPosition":{"x":24505.9107304977,"y":31317.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Stop Loss","id":"c18bdc82-216a-4b1d-8850-5c3c9dc2000b"}}},{"type":"Data Product","name":"Take Profit","project":"Superalgos","id":"84c07d10-d91a-462a-b0db-62e6a3d99703","savedPayload":{"position":{"x":24510.9107304977,"y":31258.35783203362},"targetPosition":{"x":24505.9107304977,"y":31317.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Take Profit","id":"2542c7d0-fa26-4b52-a59a-a3630e52eb89"}}}],"dataProductFolders":[],"id":"93715d98-5ca9-49d4-8810-ffb68cfaa710","savedPayload":{"position":{"x":24505.9107304977,"y":31317.35783203362},"targetPosition":{"x":24548.9107304977,"y":31389.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"77996fc7-3c1f-4566-8e40-751629c19e72","savedPayload":{"position":{"x":24548.9107304977,"y":31389.35783203362},"targetPosition":{"x":24483.9107304977,"y":31348.35783203362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f90235f2-d154-4637-a430-a6db5487a989","savedPayload":{"position":{"x":23729.934129866087,"y":32779.956884291954},"targetPosition":{"x":23989.74175100142,"y":32629.956884291958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2c6c33b9-4e62-4961-b973-8a9c3019aa71","savedPayload":{"position":{"x":23989.74175100142,"y":32629.956884291958},"targetPosition":{"x":24249.549372136753,"y":32479.956884291958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"feb1df5a-d366-41ef-b0f6-7ac24974b038","savedPayload":{"position":{"x":24249.549372136753,"y":32479.956884291958},"targetPosition":{"x":24509.356993272086,"y":32329.956884291958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"BB Breakdown 2","id":"21c1a266-ac7f-4eb1-8671-7e290d8b8a58"}}}],"id":"0d87dee6-0963-4ba2-8d72-34cb019edaf3","savedPayload":{"position":{"x":24509.356993272086,"y":32329.956884291958},"targetPosition":{"x":24659.356993272086,"y":32070.149263156625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"4faee1ef-5442-487c-b3a7-367921db71b8","savedPayload":{"position":{"x":24659.356993272086,"y":32070.149263156625},"targetPosition":{"x":24809.356993272086,"y":31810.341642021293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"e2eb7597-7078-434a-82ea-b891a78a1fa2","savedPayload":{"position":{"x":24809.356993272086,"y":31810.341642021293},"targetPosition":{"x":24959.356993272086,"y":31550.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"ef4b033a-aeb2-4461-bc25-019a834c0b23"}}}],"id":"e4e268f3-a677-4f90-90a1-d87244e647e5","savedPayload":{"position":{"x":24959.356993272086,"y":31550.53402088596},"targetPosition":{"x":25109.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningMinesData":{"type":"Learning Mines Data","name":"New Learning Mines Data","project":"Superalgos","projectLearningProducts":[{"type":"Project Learning Products","name":"Superalgos","project":"Superalgos","exchangeLearningProducts":[{"type":"Exchange Learning Products","name":"Binance","project":"Superalgos","marketLearningProducts":[{"type":"Market Learning Products","name":"Binance BTC/USDT","project":"Superalgos","learningSessionReferences":[],"id":"741a0c93-123a-4867-ae9b-faff54c6f10d","savedPayload":{"position":{"x":24157.3329849226,"y":32021.240114561097},"targetPosition":{"x":24395.33898700997,"y":31838.61168585848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"1ccd9d67-528e-4bdb-9ffd-e359370392a3","savedPayload":{"position":{"x":24395.33898700997,"y":31838.61168585848},"targetPosition":{"x":24633.344989097342,"y":31655.98325715586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"bf458432-d892-4dfa-94c7-827c83be73d1","savedPayload":{"position":{"x":24633.344989097342,"y":31655.98325715586},"targetPosition":{"x":24871.350991184714,"y":31473.354828453244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"ef4b033a-aeb2-4461-bc25-019a834c0b23"}}}],"id":"2845a687-becc-4c3b-bc79-b2293ba876ba","savedPayload":{"position":{"x":24871.350991184714,"y":31473.354828453244},"targetPosition":{"x":25109.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e2697759-6038-4943-b90c-5a68651ff9a8","savedPayload":{"position":{"x":25109.356993272086,"y":31290.726399750627},"targetPosition":{"x":25259.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"d"}}},"id":"e452cf65-2b2b-44f2-9e67-bdd9d3c008e4","savedPayload":{"position":{"x":25259.356993272086,"y":31030.918778615294},"targetPosition":{"x":24959.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"3c165071-7558-4708-9999-8ffe71d346b1","savedPayload":{"position":{"x":24959.356993272086,"y":31030.918778615294},"targetPosition":{"x":24959.356993272086,"y":31030.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","project":"Superalgos","cryptoExchanges":[{"type":"Crypto Exchanges","name":"Tested","project":"Superalgos","exchanges":[{"type":"Crypto Exchange","name":"Binance","config":"{\n \"codeName\": \"binance\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"EUR\"} \n}","project":"Superalgos","assets":[{"type":"Asset","name":"Bitcoin","config":"{ \n\"codeName\": \"BTC\"\n}","project":"Superalgos","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa","savedPayload":{"position":{"x":19794.079365950267,"y":30512.325102172115},"targetPosition":{"x":19716.43365241951,"y":30802.102850058836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Tether","config":"{ \n\"codeName\": \"USDT\"\n}","project":"Superalgos","id":"f110bfa0-bd5b-469b-a940-4524c8688136","savedPayload":{"position":{"x":20006.21140030623,"y":30724.45713652808},"targetPosition":{"x":19716.43365241951,"y":30802.102850058836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"95d2c30f-215b-486e-8119-f4eac0279575","savedPayload":{"position":{"x":19716.43365241951,"y":30802.102850058836},"targetPosition":{"x":19504.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"E"}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","project":"Superalgos","markets":[{"type":"Market","name":"BTC/USDT","config":"{ \n\"codeName\": \"BTC/USDT\"\n}","project":"Superalgos","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","project":"Superalgos","id":"1017b30d-de1b-4212-991e-9fd0a5b6c814","savedPayload":{"position":{"x":20394.079365950267,"y":30936.589170884043},"targetPosition":{"x":20104.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","project":"Superalgos","id":"705c4a67-787a-48cd-a3dc-3a557438bf0b","savedPayload":{"position":{"x":20394.079365950267,"y":31091.880597945557},"targetPosition":{"x":20104.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"f110bfa0-bd5b-469b-a940-4524c8688136"}}},"id":"9a867bf0-a71d-445c-b99a-75b60bbdce09","savedPayload":{"position":{"x":20104.301618063546,"y":31014.2348844148},"targetPosition":{"x":19804.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2fd80894-900e-44ac-a1a7-56c14124f7a1","savedPayload":{"position":{"x":19804.301618063546,"y":31014.2348844148},"targetPosition":{"x":19504.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[{"type":"Exchange Account Asset","name":"Bitcoin","project":"Superalgos","id":"ba6f3d5c-b36b-49d9-947f-392068109169","savedPayload":{"position":{"x":20508.121182548915,"y":31438.498953126727},"targetPosition":{"x":20218.343434662194,"y":31516.144666657485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa"}}},{"type":"Exchange Account Asset","name":"Tether","project":"Superalgos","id":"c90be267-90f9-45ae-b225-0578adb4aad9","savedPayload":{"position":{"x":20430.475469018158,"y":31728.27670101345},"targetPosition":{"x":20218.343434662194,"y":31516.144666657485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"f110bfa0-bd5b-469b-a940-4524c8688136"}}}],"id":"8ac5c2a9-a238-48ae-ab43-0a0a95a37464","savedPayload":{"position":{"x":20218.343434662194,"y":31516.144666657485},"targetPosition":{"x":19928.565686775473,"y":31438.498953126727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"Key for Lighting Strike","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e85bbbd6-aca8-450f-9237-788062de5761","savedPayload":{"position":{"x":20083.857113836988,"y":32018.05444890017},"targetPosition":{"x":20006.21140030623,"y":31728.27670101345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"48925cc9-f3cd-4499-8466-1338fed28a0d","savedPayload":{"position":{"x":20006.21140030623,"y":31728.27670101345},"targetPosition":{"x":19928.565686775473,"y":31438.498953126727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"63794496-c94b-42f9-81cc-c588708617a6","savedPayload":{"position":{"x":19928.565686775473,"y":31438.498953126727},"targetPosition":{"x":19716.43365241951,"y":31226.366918770764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4b0c1ac5-515f-44a9-b9b9-e698a9c51eac","savedPayload":{"position":{"x":19716.43365241951,"y":31226.366918770764},"targetPosition":{"x":19504.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b","savedPayload":{"position":{"x":19504.301618063546,"y":31014.2348844148},"targetPosition":{"x":19204.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"tutorial":{"status":"Done"}}}],"id":"e3879d63-6f8f-41a3-8ac3-0349c4361722","savedPayload":{"position":{"x":19204.301618063546,"y":31014.2348844148},"targetPosition":{"x":18904.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Untested","project":"Superalgos","exchanges":[{"type":"Crypto Exchange","name":"ACX","config":"{ \n\"codeName\": \"acx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"ebcb522b-ae58-46d2-9d82-a9b0beec3976","savedPayload":{"position":{"x":17935.64382962515,"y":31014.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b2649588-27c6-442c-b179-f6d8817188b3","savedPayload":{"position":{"x":17954.64382962515,"y":31004.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9b2051d5-7ee7-4e94-8c8d-306674889339","savedPayload":{"position":{"x":17838.64382962515,"y":30896.23747069523},"targetPosition":{"x":17766.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"1d5461aa-d26c-4df5-b383-8c83e311b8ca","savedPayload":{"position":{"x":17643.64382962515,"y":30952.23747069523},"targetPosition":{"x":17698.64382962515,"y":30973.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c6372400-de52-4b63-97f3-f748aac9c63f","savedPayload":{"position":{"x":17698.64382962515,"y":30973.23747069523},"targetPosition":{"x":17766.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c948314e-2247-4234-b83d-cc2c1b152665","savedPayload":{"position":{"x":17766.64382962515,"y":30905.23747069523},"targetPosition":{"x":17837.64382962515,"y":30978.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04ccb742-ef1b-4138-b38d-a6b0d92f2f8e","savedPayload":{"position":{"x":17837.64382962515,"y":30978.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e9c21b2d-de21-43b5-8b48-51367a8c981c","savedPayload":{"position":{"x":19313.14497226101,"y":30565.583066825377},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"AOFEX","config":"{ \n\"codeName\": \"aofex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"623ef91b-04c0-4bd5-ac0d-b32c809be3ea","savedPayload":{"position":{"x":17973.64382962515,"y":30923.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"9d0b5855-59a6-4dda-9a4b-33d7a44d582e","savedPayload":{"position":{"x":17901.64382962515,"y":30994.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"e898e569-0dd3-4a22-baa5-caaace66d4ed","savedPayload":{"position":{"x":18062.64382962515,"y":30838.23747069523},"targetPosition":{"x":17982.64382962515,"y":30899.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"64a69d3d-15ff-41c3-a926-5ec93c932ab1","savedPayload":{"position":{"x":17822.64382962515,"y":31052.23747069523},"targetPosition":{"x":17893.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae2785c5-75a1-44fc-a71b-363d88cb5dac","savedPayload":{"position":{"x":17893.64382962515,"y":30981.23747069523},"targetPosition":{"x":17982.64382962515,"y":30899.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07ea69aa-7357-43b1-b548-a4c4fab70c55","savedPayload":{"position":{"x":17982.64382962515,"y":30899.23747069523},"targetPosition":{"x":17971.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2146b410-fc4e-452d-ae57-5d58c9a29706","savedPayload":{"position":{"x":17971.64382962515,"y":30962.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c2e9bb45-97c7-47e8-b13c-56946e673c53","savedPayload":{"position":{"x":19413.67778623216,"y":30647.89853748846},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bequant","config":"{ \n\"codeName\": \"bequant\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"b23c8adf-c880-48fd-b4af-4b4be86cf0e5","savedPayload":{"position":{"x":18059.64382962515,"y":31101.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"523bd94f-68f9-457e-91fd-806c1b95e98d","savedPayload":{"position":{"x":18006.64382962515,"y":31117.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9d914bb1-a68b-41ae-8666-0fcc755358c1","savedPayload":{"position":{"x":17859.64382962515,"y":30964.23747069523},"targetPosition":{"x":17936.64382962515,"y":31059.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"15d903b5-113c-465e-8120-7c46a9a85565","savedPayload":{"position":{"x":17976.64382962515,"y":31146.23747069523},"targetPosition":{"x":17943.64382962515,"y":31134.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2d1c0bc3-abe2-4340-91bf-2eef5b98a2f0","savedPayload":{"position":{"x":17943.64382962515,"y":31134.23747069523},"targetPosition":{"x":17936.64382962515,"y":31059.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a50d459-914c-4bfc-91e8-f15c383280eb","savedPayload":{"position":{"x":17936.64382962515,"y":31059.23747069523},"targetPosition":{"x":17931.64382962515,"y":31071.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b2f2b69f-3bef-4edc-9950-5261d9f36382","savedPayload":{"position":{"x":17931.64382962515,"y":31071.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e928d3e-a2c2-4341-aa2f-b753551c9479","savedPayload":{"position":{"x":19504.72140465123,"y":30740.600980501622},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bibox","config":"{ \n\"codeName\": \"bibox\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"13c1f22c-9a35-4d3f-b000-c96984fd6a2b","savedPayload":{"position":{"x":17995.64382962515,"y":31047.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3c6df49d-70c3-468a-bdd8-6768ce6d3a9d","savedPayload":{"position":{"x":17916.64382962515,"y":31018.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5a54ef39-8fba-4a5f-ac24-5f27e763e28f","savedPayload":{"position":{"x":18050.64382962515,"y":31174.23747069523},"targetPosition":{"x":17956.64382962515,"y":31128.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"08df1f45-dab0-463a-8758-359973f2620d","savedPayload":{"position":{"x":17899.64382962515,"y":31242.23747069523},"targetPosition":{"x":17959.64382962515,"y":31180.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"105b52c2-90ad-4fa1-b690-d8fab14209b4","savedPayload":{"position":{"x":17959.64382962515,"y":31180.23747069523},"targetPosition":{"x":17956.64382962515,"y":31128.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"68c1ef42-1b7b-4cc6-981f-80b20dabcd89","savedPayload":{"position":{"x":17956.64382962515,"y":31128.23747069523},"targetPosition":{"x":17907.64382962515,"y":31057.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fc35e5d0-ea61-42b6-979a-859f19c5ac6c","savedPayload":{"position":{"x":17907.64382962515,"y":31057.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e5f9ee4d-77a3-48ae-b354-b2f6a97d5e47","savedPayload":{"position":{"x":19585.208424334218,"y":30842.603544479174},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BigONE","config":"{ \n\"codeName\": \"bigone\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"3f289513-c1c8-457c-b65a-8cf62b5f5eb5","savedPayload":{"position":{"x":17778.64382962515,"y":31071.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8b365e73-1cee-496a-921f-121cb628a130","savedPayload":{"position":{"x":17798.64382962515,"y":31121.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"447a4f6f-cfa0-443e-9339-d7c1153ada31","savedPayload":{"position":{"x":17921.64382962515,"y":31046.23747069523},"targetPosition":{"x":17891.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0d234c53-c121-471e-bce1-a258c13cd148","savedPayload":{"position":{"x":17848.64382962515,"y":31175.23747069523},"targetPosition":{"x":17944.64382962515,"y":31086.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"816e1b6a-d790-4abd-9ae1-e203fa737af2","savedPayload":{"position":{"x":17944.64382962515,"y":31086.23747069523},"targetPosition":{"x":17891.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"561a57f7-8c22-4e50-840d-d983ed6bb864","savedPayload":{"position":{"x":17891.64382962515,"y":31102.23747069523},"targetPosition":{"x":17813.64382962515,"y":31064.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e243bd5d-ade7-46c8-876b-6ad8c6eb5e0a","savedPayload":{"position":{"x":17813.64382962515,"y":31064.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fb9ee540-bf12-4dda-bf87-cb6b58fce649","savedPayload":{"position":{"x":19654.195208565325,"y":30952.710342620318},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Binance Jersey","config":"{ \n\"codeName\": \"binanceje\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"0b979ea9-7a2d-4744-9517-2dfa632dfafc","savedPayload":{"position":{"x":17852.64382962515,"y":30989.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b9a4497d-20f1-4c61-9a79-444e0fe0ddf4","savedPayload":{"position":{"x":17924.64382962515,"y":30952.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1b24d8a4-ec70-4501-838c-7633f6f7288e","savedPayload":{"position":{"x":17882.64382962515,"y":31051.23747069523},"targetPosition":{"x":17942.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"627472e3-638f-4d68-a917-d0844d6a227b","savedPayload":{"position":{"x":17991.64382962515,"y":31190.23747069523},"targetPosition":{"x":17986.64382962515,"y":31110.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"b8ce75fb-93c9-4ca2-9b2b-9f8ed8af34f3","savedPayload":{"position":{"x":17986.64382962515,"y":31110.23747069523},"targetPosition":{"x":17942.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"08b226e4-14ee-4ad3-8d96-efe77cc38489","savedPayload":{"position":{"x":17942.64382962515,"y":31066.23747069523},"targetPosition":{"x":17949.64382962515,"y":31009.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2771eb11-bc72-4273-9e1b-9ac5410c6354","savedPayload":{"position":{"x":17949.64382962515,"y":31009.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2782350a-84a2-40ec-87c6-3c8043376a18","savedPayload":{"position":{"x":19710.872950374665,"y":31069.630473388454},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Binance US","config":"{ \n\"codeName\": \"binanceus\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"817ee1cf-b44c-4458-a9c4-a05a17ea0510","savedPayload":{"position":{"x":17943.64382962515,"y":30999.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c6694e9e-74dc-4c2e-9151-90f1d6631b45","savedPayload":{"position":{"x":17937.64382962515,"y":30989.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"00144904-5363-49eb-b445-8c8283d92b0d","savedPayload":{"position":{"x":17838.64382962515,"y":31193.23747069523},"targetPosition":{"x":17781.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2e71aa3c-03d4-4dbd-bc50-43b30f59e655","savedPayload":{"position":{"x":17783.64382962515,"y":31148.23747069523},"targetPosition":{"x":17703.64382962515,"y":31182.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"a4d0df32-c600-4421-b893-2a05f0442ed6","savedPayload":{"position":{"x":17703.64382962515,"y":31182.23747069523},"targetPosition":{"x":17781.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7a39543a-00e1-452b-8aba-36c2b240f9fc","savedPayload":{"position":{"x":17781.64382962515,"y":31156.23747069523},"targetPosition":{"x":17799.64382962515,"y":31119.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2543c4e5-8233-4348-b6dc-e47aed1ff381","savedPayload":{"position":{"x":17799.64382962515,"y":31119.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0b2b67d2-853b-470e-8b13-925956ad5621","savedPayload":{"position":{"x":19754.577155060477,"y":31191.993155151424},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"bitbank","config":"{ \n\"codeName\": \"bitbank\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"eb6b6842-9bf7-450e-baa3-7a87541a1cf6","savedPayload":{"position":{"x":17955.64382962515,"y":31107.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"6353ff56-759f-457d-81f3-fdb8ae5b3e83","savedPayload":{"position":{"x":17942.64382962515,"y":31183.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a2b297c7-f33b-48b9-98fa-d339c7b0ff67","savedPayload":{"position":{"x":17999.64382962515,"y":31016.23747069523},"targetPosition":{"x":17945.64382962515,"y":31116.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"9ce6c354-b294-4062-b763-421e5edb69de","savedPayload":{"position":{"x":17883.64382962515,"y":31186.23747069523},"targetPosition":{"x":17845.64382962515,"y":31202.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"547dbf6c-a292-46c0-a628-62856858121e","savedPayload":{"position":{"x":17845.64382962515,"y":31202.23747069523},"targetPosition":{"x":17945.64382962515,"y":31116.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"097055b3-37e5-4100-a24b-91e404fe49a6","savedPayload":{"position":{"x":17945.64382962515,"y":31116.23747069523},"targetPosition":{"x":17897.64382962515,"y":31142.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51aed4ce-0303-431e-a15f-e6f133f7a2cf","savedPayload":{"position":{"x":17897.64382962515,"y":31142.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c9a96a7-ed12-4b3e-bb51-306a8da131f5","savedPayload":{"position":{"x":19784.79543078195,"y":31318.363797342816},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitBay","config":"{ \n\"codeName\": \"bitbay\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"83b4e523-72a7-41ce-9363-fe0c799dcac1","savedPayload":{"position":{"x":17861.64382962515,"y":30965.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"966698f7-8a28-42d7-bb80-f7cd0601e44f","savedPayload":{"position":{"x":17823.64382962515,"y":31026.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"554829eb-3d40-4b95-a1cd-9de943763e2c","savedPayload":{"position":{"x":17914.64382962515,"y":30924.23747069523},"targetPosition":{"x":17876.64382962515,"y":30921.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2f534989-7ca7-4c3d-b14a-3b1071543c8c","savedPayload":{"position":{"x":17845.64382962515,"y":30853.23747069523},"targetPosition":{"x":17832.64382962515,"y":30821.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2f6b76b4-51d4-434f-8aa1-ed86b0e26bd2","savedPayload":{"position":{"x":17832.64382962515,"y":30821.23747069523},"targetPosition":{"x":17876.64382962515,"y":30921.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cbcc3ab6-9758-4273-99d2-9d05fdd392b5","savedPayload":{"position":{"x":17876.64382962515,"y":30921.23747069523},"targetPosition":{"x":17805.64382962515,"y":31015.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dada6c12-7c41-4ab8-9922-908233829f58","savedPayload":{"position":{"x":17805.64382962515,"y":31015.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8778eee5-97a2-4f9d-bd25-cd5a64ec6663","savedPayload":{"position":{"x":19801.173495885087,"y":31447.26081972472},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitfinex","config":"{ \n\"codeName\": \"bitfinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"33508b53-2769-4f3d-8c98-9fa37e5cbf5b","savedPayload":{"position":{"x":17888.64382962515,"y":31043.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4d4ad5a1-81a7-4f92-83db-99f57ce261bb","savedPayload":{"position":{"x":17975.64382962515,"y":30868.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"29d52baf-645c-4d8f-9631-ebd391b4c815","savedPayload":{"position":{"x":18034.64382962515,"y":31066.23747069523},"targetPosition":{"x":18037.64382962515,"y":31012.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d615c33d-c6cf-4572-ac32-8e9ddeb5bb52","savedPayload":{"position":{"x":18023.64382962515,"y":30916.23747069523},"targetPosition":{"x":18106.64382962515,"y":30982.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"0c189040-6318-483c-b6d7-982370a3298d","savedPayload":{"position":{"x":18106.64382962515,"y":30982.23747069523},"targetPosition":{"x":18037.64382962515,"y":31012.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd60de4a-d17c-4ba7-936a-cbf2305fe3bb","savedPayload":{"position":{"x":18037.64382962515,"y":31012.23747069523},"targetPosition":{"x":18039.64382962515,"y":30964.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d247f4f5-6f16-4a59-a4a5-6d1554b43562","savedPayload":{"position":{"x":18039.64382962515,"y":30964.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c076027-683d-4778-8a6a-e60984980fdf","savedPayload":{"position":{"x":19803.51933253116,"y":31577.173022561386},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitfinex","config":"{ \n\"codeName\": \"bitfinex2\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"8fc7f955-5c81-446c-bbeb-205988bf1fc0","savedPayload":{"position":{"x":17830.64382962515,"y":31051.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d5ba38e9-3282-4634-b922-16532c71f426","savedPayload":{"position":{"x":17819.64382962515,"y":31118.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1cebbed5-28f7-4ccd-afce-9e7634d90fb6","savedPayload":{"position":{"x":17892.64382962515,"y":30997.23747069523},"targetPosition":{"x":17855.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0d109aa9-c80c-4a64-96f0-1d8fda0a70a4","savedPayload":{"position":{"x":17888.64382962515,"y":30805.23747069523},"targetPosition":{"x":17942.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5459ab1e-a1ce-4dae-ae72-61c1f7f37ce0","savedPayload":{"position":{"x":17942.64382962515,"y":30905.23747069523},"targetPosition":{"x":17855.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a4615f7a-000d-4ff9-b5ac-109bc9a3a849","savedPayload":{"position":{"x":17855.64382962515,"y":30970.23747069523},"targetPosition":{"x":17919.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e10d303e-ea21-4625-bae1-c32ad7a44e8a","savedPayload":{"position":{"x":17919.64382962515,"y":31043.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f3114102-a73c-4086-9594-5888ef1ab4ec","savedPayload":{"position":{"x":19791.80543793031,"y":31706.577304054405},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitforex","config":"{ \n\"codeName\": \"bitforex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"698e5e38-ad73-4cb6-b7f6-2b69913faff9","savedPayload":{"position":{"x":17897.64382962515,"y":30956.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"f0142bd4-1b63-4d12-a4b7-e150d0da197f","savedPayload":{"position":{"x":18020.64382962515,"y":31021.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"7164fb28-405b-461a-a7d4-59d438ecf1ce","savedPayload":{"position":{"x":17821.64382962515,"y":30984.23747069523},"targetPosition":{"x":17901.64382962515,"y":30907.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"ce8a00c9-f090-4ec2-84ed-c6661f8bf7b0","savedPayload":{"position":{"x":17825.64382962515,"y":30965.23747069523},"targetPosition":{"x":17818.64382962515,"y":30913.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"579cd74b-98f6-4000-990b-25ae1456c94b","savedPayload":{"position":{"x":17818.64382962515,"y":30913.23747069523},"targetPosition":{"x":17901.64382962515,"y":30907.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"dbac6eef-25d2-4cda-86a6-59ce8a9a26bc","savedPayload":{"position":{"x":17901.64382962515,"y":30907.23747069523},"targetPosition":{"x":17909.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1da9dd3-22ec-4536-bb5a-4d0bb8a56b81","savedPayload":{"position":{"x":17909.64382962515,"y":30970.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"499a5a3b-7871-4c95-9b2e-d58d4d9e2392","savedPayload":{"position":{"x":19766.169146786622,"y":31833.956517318737},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"bitkk","config":"{ \n\"codeName\": \"bitkk\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"efbb916c-780b-447f-a4c2-df68570d4ee1","savedPayload":{"position":{"x":17931.64382962515,"y":30937.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0d829516-81d9-46a5-9861-7d94cc89455d","savedPayload":{"position":{"x":17951.64382962515,"y":30912.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"fc174aa3-c485-4b9b-ba19-444b0189ccb1","savedPayload":{"position":{"x":17788.64382962515,"y":30980.23747069523},"targetPosition":{"x":17834.64382962515,"y":30983.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"15921d8a-4b45-481c-9165-79969ed3fd27","savedPayload":{"position":{"x":17796.64382962515,"y":30936.23747069523},"targetPosition":{"x":17891.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"927d5c8a-85df-48bb-b097-c36abb76ca0e","savedPayload":{"position":{"x":17891.64382962515,"y":30922.23747069523},"targetPosition":{"x":17834.64382962515,"y":30983.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"43d218c2-e633-47d5-8dd8-60bc7f7c0b9e","savedPayload":{"position":{"x":17834.64382962515,"y":30983.23747069523},"targetPosition":{"x":17853.64382962515,"y":30925.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2d310d61-cbc7-4306-af02-be3888939545","savedPayload":{"position":{"x":17853.64382962515,"y":30925.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ded39740-3c93-4fda-bb9c-6ac75d2109f4","savedPayload":{"position":{"x":19726.911021174266,"y":31957.817257542785},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMart","config":"{ \n\"codeName\": \"bitmart\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"10374855-6b4a-460b-9c95-70072ac00315","savedPayload":{"position":{"x":17907.64382962515,"y":30901.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3aded60c-4061-48ff-ad33-212c965b5c43","savedPayload":{"position":{"x":17829.64382962515,"y":30925.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1789a3ca-d948-497d-8d1b-1eefd25d16a3","savedPayload":{"position":{"x":17886.64382962515,"y":30937.23747069523},"targetPosition":{"x":17895.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"038170bc-0ca7-4a92-8219-61b7bc8431b0","savedPayload":{"position":{"x":17893.64382962515,"y":31034.23747069523},"targetPosition":{"x":17835.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"55f79ede-ef02-405f-92bd-11902ab3cc7a","savedPayload":{"position":{"x":17835.64382962515,"y":30962.23747069523},"targetPosition":{"x":17895.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8185c660-4af3-4a62-bfa9-8922861101b5","savedPayload":{"position":{"x":17895.64382962515,"y":30988.23747069523},"targetPosition":{"x":17819.64382962515,"y":30909.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"546d48c3-df31-495c-b3b4-cb35109c5542","savedPayload":{"position":{"x":17819.64382962515,"y":30909.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c7ed52a7-895b-46f1-a745-35954d8bcfc6","savedPayload":{"position":{"x":19674.491326722004,"y":32076.707370794375},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMax","config":"{ \n\"codeName\": \"bitmax\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"8a042d0d-7a7a-4a76-889e-42d8642404f4","savedPayload":{"position":{"x":17944.64382962515,"y":31046.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0c4fcc48-51e6-4ff2-925f-405cda6d1122","savedPayload":{"position":{"x":17898.64382962515,"y":31024.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"ef9d5381-d9e3-47f5-9069-6fc14eda0fa3","savedPayload":{"position":{"x":17879.64382962515,"y":31096.23747069523},"targetPosition":{"x":17977.64382962515,"y":31041.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c66fe606-9705-45b0-a196-7ea3efb0221e","savedPayload":{"position":{"x":17982.64382962515,"y":31053.23747069523},"targetPosition":{"x":17943.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"80a5f68e-776a-44de-8797-d2eb806c306e","savedPayload":{"position":{"x":17943.64382962515,"y":31083.23747069523},"targetPosition":{"x":17977.64382962515,"y":31041.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"011fcf1c-1c94-4c36-a246-d6c400aa39dc","savedPayload":{"position":{"x":17977.64382962515,"y":31041.23747069523},"targetPosition":{"x":17942.64382962515,"y":31103.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4a87b8c5-e009-427f-afb7-21afe5594b59","savedPayload":{"position":{"x":17942.64382962515,"y":31103.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fc6a9048-ab8c-48f9-91ae-6c95c28714b0","savedPayload":{"position":{"x":19609.524636419505,"y":32189.2329791979},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMEX","config":"{ \n\"codeName\": \"bitmex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f7636e2b-354a-4217-894b-5e26eddc0c2a","savedPayload":{"position":{"x":17894.64382962515,"y":30934.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"6eb2ddd1-6d06-456c-b4e0-7df56ba182e6","savedPayload":{"position":{"x":17823.64382962515,"y":30834.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"b4a4b8fe-d923-4eb0-a066-171b83d1540d","savedPayload":{"position":{"x":17902.64382962515,"y":31064.23747069523},"targetPosition":{"x":17815.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"918ed585-ce46-4d51-a07a-9beee51f70eb","savedPayload":{"position":{"x":17711.64382962515,"y":31036.23747069523},"targetPosition":{"x":17805.64382962515,"y":31078.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"9efef4d8-5be3-4d17-a645-6edffd9535cf","savedPayload":{"position":{"x":17805.64382962515,"y":31078.23747069523},"targetPosition":{"x":17815.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6ad31a6e-f27b-45c3-9996-a41fb39aa154","savedPayload":{"position":{"x":17815.64382962515,"y":30988.23747069523},"targetPosition":{"x":17844.64382962515,"y":30896.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"82887393-cb1c-4b01-8581-4b3dabc86584","savedPayload":{"position":{"x":17844.64382962515,"y":30896.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1e2f1dd0-ebf1-4485-83d8-7723a9e3e714","savedPayload":{"position":{"x":19532.77262531095,"y":32294.07482287797},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bittrex","config":"{ \n\"codeName\": \"bittrex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"88d4ef94-f030-42df-9115-69d9611317b1","savedPayload":{"position":{"x":17839.64382962515,"y":31009.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"7fe8234d-9a39-4b28-bf98-43b4fdb57ee5","savedPayload":{"position":{"x":17878.64382962515,"y":31045.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5ba7fe13-1e0f-403a-8f4b-8e3968d2e5e2","savedPayload":{"position":{"x":17841.64382962515,"y":30890.23747069523},"targetPosition":{"x":17742.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e926fbb8-d2ac-4e3d-aa59-a0a828d202fd","savedPayload":{"position":{"x":17707.64382962515,"y":30983.23747069523},"targetPosition":{"x":17782.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"4fbe41e1-cb15-4bc2-a3de-681c5b22cc97","savedPayload":{"position":{"x":17782.64382962515,"y":31052.23747069523},"targetPosition":{"x":17742.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ab9fe180-1c07-44de-a0a1-863761ac52d6","savedPayload":{"position":{"x":17742.64382962515,"y":30961.23747069523},"targetPosition":{"x":17796.64382962515,"y":30903.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"584f29ca-9b3c-4b7f-a2b0-aab4180ecefd","savedPayload":{"position":{"x":17796.64382962515,"y":30903.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f598f002-8fc5-491f-888e-07d017ea83c6","savedPayload":{"position":{"x":19445.135140551556,"y":32390.003727075255},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bit-Z","config":"{ \n\"codeName\": \"bitz\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"0a22e02b-7d2e-4955-9cfc-ed7d95f0c9a0","savedPayload":{"position":{"x":17751.64382962515,"y":31083.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"298b45af-b73d-4cd5-848a-97de7b857569","savedPayload":{"position":{"x":17944.64382962515,"y":31083.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6ede807b-b1ab-42b5-bfd7-3b12a942447e","savedPayload":{"position":{"x":17871.64382962515,"y":31049.23747069523},"targetPosition":{"x":17772.64382962515,"y":31098.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"dc172858-3241-4487-950a-e5cae03ac376","savedPayload":{"position":{"x":17751.64382962515,"y":31081.23747069523},"targetPosition":{"x":17753.64382962515,"y":31028.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"19c07cee-1fdf-4e02-ac9f-d110b64ee033","savedPayload":{"position":{"x":17753.64382962515,"y":31028.23747069523},"targetPosition":{"x":17772.64382962515,"y":31098.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4ef5048-ac4c-410e-bd6d-3338e33ab108","savedPayload":{"position":{"x":17772.64382962515,"y":31098.23747069523},"targetPosition":{"x":17788.64382962515,"y":31134.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e7e96c41-c839-4eec-9bcf-1c60d60fa3f5","savedPayload":{"position":{"x":17788.64382962515,"y":31134.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6cc10926-fe41-43be-887b-fa8aba1c7377","savedPayload":{"position":{"x":19347.639651522415,"y":32475.89501309667},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BTC-Alpha","config":"{ \n\"codeName\": \"btcalpha\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"263e3b9c-8fdd-4376-b53b-87f32d0f5898","savedPayload":{"position":{"x":17904.64382962515,"y":30922.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"804603e1-3e0f-4219-a9b7-ee27810d4f07","savedPayload":{"position":{"x":17829.64382962515,"y":30977.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"83b25fff-e448-483f-9bee-cb85fa592c6e","savedPayload":{"position":{"x":17734.64382962515,"y":30862.23747069523},"targetPosition":{"x":17829.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"efcfa3ca-0f82-4eb7-9b04-ed5eb4e1c3cf","savedPayload":{"position":{"x":17799.64382962515,"y":30864.23747069523},"targetPosition":{"x":17837.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"9ca8d728-ee11-4905-9a3a-5ca4ed50f3df","savedPayload":{"position":{"x":17837.64382962515,"y":30919.23747069523},"targetPosition":{"x":17829.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2cfde277-afa6-4ad3-bb5b-8a32b89e2037","savedPayload":{"position":{"x":17829.64382962515,"y":30960.23747069523},"targetPosition":{"x":17903.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"297a0ea2-f6d7-47fd-9fb7-0d99d00a87d8","savedPayload":{"position":{"x":17903.64382962515,"y":30969.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"30e5485f-213b-435b-a670-07b76cfe5cae","savedPayload":{"position":{"x":19241.429203691412,"y":32550.741684144767},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BTC Markets","config":"{ \n\"codeName\": \"btcmarkets\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"fcb3b880-0852-4d93-8714-67373f9dca16","savedPayload":{"position":{"x":17911.64382962515,"y":31036.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"953d8eff-0b2e-4b07-8635-393fddae0c9d","savedPayload":{"position":{"x":18025.64382962515,"y":31127.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c08873f6-9120-4764-8b06-c8110468b423","savedPayload":{"position":{"x":17935.64382962515,"y":30927.23747069523},"targetPosition":{"x":18027.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"beaa2557-4976-4e53-8a24-7ea00fc3afd5","savedPayload":{"position":{"x":18054.64382962515,"y":30851.23747069523},"targetPosition":{"x":18125.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"445158a2-91b4-4ad8-8380-036cbba6ad7e","savedPayload":{"position":{"x":18125.64382962515,"y":30951.23747069523},"targetPosition":{"x":18027.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd00e08c-a26d-4b11-93a3-b0e8f35bec4b","savedPayload":{"position":{"x":18027.64382962515,"y":31003.23747069523},"targetPosition":{"x":18016.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"35cb55c1-ceb3-4093-98af-8a1c2411fe0f","savedPayload":{"position":{"x":18016.64382962515,"y":31075.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ac2fda42-95ca-404a-8dd2-72bff0ff5a0f","savedPayload":{"position":{"x":19127.749017450227,"y":32613.66623143447},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Buda","config":"{ \n\"codeName\": \"buda\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"27f3573d-e1f0-473f-9bfd-f9198e7240a0","savedPayload":{"position":{"x":17945.64382962515,"y":30937.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4ddc0981-4e45-42f3-ae11-f5b136b2bc3d","savedPayload":{"position":{"x":17783.64382962515,"y":31008.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5a325d59-e6a6-4f76-a311-5e67c5f5a8a2","savedPayload":{"position":{"x":17980.64382962515,"y":30843.23747069523},"targetPosition":{"x":17956.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"fb985ab9-7759-4780-a052-8ee9be0b712a","savedPayload":{"position":{"x":17907.64382962515,"y":30968.23747069523},"targetPosition":{"x":17958.64382962515,"y":30884.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fdf7665a-2974-467b-9280-4077a888733f","savedPayload":{"position":{"x":17958.64382962515,"y":30884.23747069523},"targetPosition":{"x":17956.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a3105cfc-f80e-4bcb-b399-6ea9c0f7edf0","savedPayload":{"position":{"x":17956.64382962515,"y":30936.23747069523},"targetPosition":{"x":17872.64382962515,"y":30941.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5d69a76f-e7bc-4538-950e-2e2353eccea3","savedPayload":{"position":{"x":17872.64382962515,"y":30941.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"90fe3d74-662e-4fac-aff3-f41990b61ccf","savedPayload":{"position":{"x":19007.931889043757,"y":32663.930922181273},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BW","config":"{ \n\"codeName\": \"bw\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"457616cd-25f9-4ad3-8c18-6331859dd42e","savedPayload":{"position":{"x":17890.64382962515,"y":31014.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8c1f9aa2-4253-4129-a533-e515644ddb38","savedPayload":{"position":{"x":17909.64382962515,"y":30970.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"24314a5b-85ca-4036-adc6-618120496f1d","savedPayload":{"position":{"x":17773.64382962515,"y":30945.23747069523},"targetPosition":{"x":17860.64382962515,"y":30865.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"f7c593f6-bd7a-41f7-a5e7-b2e1ea9a528f","savedPayload":{"position":{"x":17820.64382962515,"y":30885.23747069523},"targetPosition":{"x":17828.64382962515,"y":30802.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"60dfc799-f863-4895-8d17-568aa2303ef5","savedPayload":{"position":{"x":17828.64382962515,"y":30802.23747069523},"targetPosition":{"x":17860.64382962515,"y":30865.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"223e466d-d750-4e38-91ce-8a59c15242ba","savedPayload":{"position":{"x":17860.64382962515,"y":30865.23747069523},"targetPosition":{"x":17818.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cfff1310-5220-4978-9553-8514be141d14","savedPayload":{"position":{"x":17818.64382962515,"y":30919.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d72db90c-d572-4cbb-8348-e3cc485d8e86","savedPayload":{"position":{"x":18883.38256475272,"y":32700.94644884361},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bybit","config":"{ \n\"codeName\": \"bybit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"18fdf7c8-03c4-4f81-a88e-de97589765e1","savedPayload":{"position":{"x":17803.64382962515,"y":31059.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"a62b2603-ac6f-4b6e-9541-86daf32027b1","savedPayload":{"position":{"x":17847.64382962515,"y":31104.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"66ecff99-7102-4f4a-9ce8-4d55fb22dfbc","savedPayload":{"position":{"x":17851.64382962515,"y":31165.23747069523},"targetPosition":{"x":17916.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"625e127c-0ebb-4f57-af9f-9dfb57b262a1","savedPayload":{"position":{"x":18004.64382962515,"y":31091.23747069523},"targetPosition":{"x":18008.64382962515,"y":31027.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"8174bb53-66b8-4575-b206-74f9b6352a80","savedPayload":{"position":{"x":18008.64382962515,"y":31027.23747069523},"targetPosition":{"x":17916.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ee16357e-abde-4800-b089-f43f4b696a35","savedPayload":{"position":{"x":17916.64382962515,"y":31077.23747069523},"targetPosition":{"x":17944.64382962515,"y":31101.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c9e9473b-aff9-43c8-a6be-5cd30330bee2","savedPayload":{"position":{"x":17944.64382962515,"y":31101.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"516c3831-456b-4d17-b0a0-6a363ba2ddb2","savedPayload":{"position":{"x":18755.561271527895,"y":32724.27883821499},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"ByteTrade","config":"{ \n\"codeName\": \"bytetrade\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e7a1e531-5a9e-466e-b98d-672de39eed3a","savedPayload":{"position":{"x":18088.64382962515,"y":31024.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"edafaba7-fd82-4d9f-b3f7-5d1c01c56599","savedPayload":{"position":{"x":17941.64382962515,"y":30943.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"50fa78b8-3aea-4e43-adcf-1e31820bf97f","savedPayload":{"position":{"x":17886.64382962515,"y":31008.23747069523},"targetPosition":{"x":17858.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"b9c39b04-e86e-4ebb-9aba-39c375f2960c","savedPayload":{"position":{"x":17865.64382962515,"y":30941.23747069523},"targetPosition":{"x":17953.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5965d9cc-1d68-47a7-b838-e6dd81da6ea9","savedPayload":{"position":{"x":17953.64382962515,"y":31023.23747069523},"targetPosition":{"x":17858.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f51a08be-ee3f-4d3b-a75e-d783d63092a7","savedPayload":{"position":{"x":17858.64382962515,"y":30967.23747069523},"targetPosition":{"x":17898.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d395efd0-691b-4a68-a7f1-9bce95b2f687","savedPayload":{"position":{"x":17898.64382962515,"y":30965.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45e2306f-03e8-4d17-a73a-72c11dd14e78","savedPayload":{"position":{"x":18625.966597164217,"y":32733.65453936303},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CEX.IO","config":"{ \n\"codeName\": \"cex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9de19f0a-5824-4e42-af00-484b64421dc3","savedPayload":{"position":{"x":17890.64382962515,"y":31049.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"39db01bc-0cea-422f-b9e9-7d84e3f5446d","savedPayload":{"position":{"x":17918.64382962515,"y":31105.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"93833d3c-42c9-4e4d-bf0f-5b80a90d10c2","savedPayload":{"position":{"x":17978.64382962515,"y":31126.23747069523},"targetPosition":{"x":17953.64382962515,"y":31167.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"42863a52-30f4-4322-9c20-99a45d6dc3d6","savedPayload":{"position":{"x":17884.64382962515,"y":31149.23747069523},"targetPosition":{"x":17895.64382962515,"y":31148.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fcff471d-29be-4176-8ff8-12088361f9fc","savedPayload":{"position":{"x":17895.64382962515,"y":31148.23747069523},"targetPosition":{"x":17953.64382962515,"y":31167.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f7975a18-b3ab-49bc-ae45-eb02c99aff8c","savedPayload":{"position":{"x":17953.64382962515,"y":31167.23747069523},"targetPosition":{"x":17881.64382962515,"y":31096.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ec432123-43fe-4171-8c41-b797d3161edb","savedPayload":{"position":{"x":17881.64382962515,"y":31096.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"346bfc30-e32a-453a-bdc6-0ead48221581","savedPayload":{"position":{"x":18496.117920729066,"y":32728.96363076407},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Coinbase Prime","config":"{ \n\"codeName\": \"coinbaseprime\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"73cabd8d-9308-49ed-b544-44f785ee7d38","savedPayload":{"position":{"x":17867.64382962515,"y":30962.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"31bd1360-f0c5-4d70-876a-b152f7cedfd7","savedPayload":{"position":{"x":17960.64382962515,"y":30864.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9b75fcfa-fe75-48a8-9d28-2ff19c58c041","savedPayload":{"position":{"x":17792.64382962515,"y":30841.23747069523},"targetPosition":{"x":17809.64382962515,"y":30934.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c900b14a-c728-45af-90f8-29b3e5f29f46","savedPayload":{"position":{"x":17801.64382962515,"y":30986.23747069523},"targetPosition":{"x":17793.64382962515,"y":31006.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"eaf72df3-b66f-4b83-83f9-91e22ec0c300","savedPayload":{"position":{"x":17793.64382962515,"y":31006.23747069523},"targetPosition":{"x":17809.64382962515,"y":30934.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9da95675-2071-41bf-b5ac-4f2af602994f","savedPayload":{"position":{"x":17809.64382962515,"y":30934.23747069523},"targetPosition":{"x":17862.64382962515,"y":31021.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4fc49ad4-57cc-43b0-b14b-15f26af994aa","savedPayload":{"position":{"x":17862.64382962515,"y":31021.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a8281db-6ace-4186-8cfb-cd249c4af48b","savedPayload":{"position":{"x":18367.537599231866,"y":32710.26110903248},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Coinbase Pro","config":"{ \n\"codeName\": \"coinbasepro\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"a29d6e1a-a94e-4b6b-8741-e9af6e4762f4","savedPayload":{"position":{"x":17788.64382962515,"y":30897.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"10cd9004-0088-4bc0-8fe6-b937f1bb311b","savedPayload":{"position":{"x":17865.64382962515,"y":30918.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"004397e6-ae73-46a6-9ed7-b4ba1930f77b","savedPayload":{"position":{"x":17945.64382962515,"y":30899.23747069523},"targetPosition":{"x":17850.64382962515,"y":30889.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"a81a7021-2228-4386-a773-9ac80c9e723a","savedPayload":{"position":{"x":17738.64382962515,"y":30761.23747069523},"targetPosition":{"x":17792.64382962515,"y":30789.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"482d82f2-364e-483c-b51a-a3fbe8a91577","savedPayload":{"position":{"x":17792.64382962515,"y":30789.23747069523},"targetPosition":{"x":17850.64382962515,"y":30889.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d823ad8e-0452-40f0-bad9-c2cb3ad29a21","savedPayload":{"position":{"x":17850.64382962515,"y":30889.23747069523},"targetPosition":{"x":17772.64382962515,"y":30894.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0c965322-fdd2-4e67-aaf3-dfc4b9dffc59","savedPayload":{"position":{"x":17772.64382962515,"y":30894.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4242da4b-a67e-44d8-8a19-b1c2f078c94c","savedPayload":{"position":{"x":18241.733119380056,"y":32677.766244135688},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CoinEx","config":"{ \n\"codeName\": \"coinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"af78f796-60e5-4794-87b8-772c7bc74be1","savedPayload":{"position":{"x":18043.64382962515,"y":31069.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d351e6d9-36eb-4d0e-aca5-94429bbb23a3","savedPayload":{"position":{"x":18094.64382962515,"y":31090.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"438f74c6-15e0-4553-af2a-febd5290c269","savedPayload":{"position":{"x":17908.64382962515,"y":31088.23747069523},"targetPosition":{"x":17986.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"bfb22430-77c7-41a7-8083-771f7d7f3634","savedPayload":{"position":{"x":17927.64382962515,"y":30953.23747069523},"targetPosition":{"x":17947.64382962515,"y":30990.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"51daaa12-1c60-4cef-96d8-a445b4b32296","savedPayload":{"position":{"x":17947.64382962515,"y":30990.23747069523},"targetPosition":{"x":17986.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"726b8c33-9873-4be1-b9ef-d6b4483f23b1","savedPayload":{"position":{"x":17986.64382962515,"y":31075.23747069523},"targetPosition":{"x":17919.64382962515,"y":31016.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"30469514-b983-4f6f-9d74-6d6ceef25eb6","savedPayload":{"position":{"x":17919.64382962515,"y":31016.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"62ad0961-6bdf-4a4a-a340-610816742d0a","savedPayload":{"position":{"x":18120.179423675774,"y":32631.860008654276},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"COSS","config":"{ \n\"codeName\": \"coss\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e6315232-c6b1-4e25-aade-7bc7ba9ba6ac","savedPayload":{"position":{"x":17787.64382962515,"y":30984.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b1e8451f-09a2-47b0-add3-cf9c35c487bb","savedPayload":{"position":{"x":17829.64382962515,"y":31095.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d1c9b795-0434-4ce1-9cb7-cc61fac7396d","savedPayload":{"position":{"x":17950.64382962515,"y":31149.23747069523},"targetPosition":{"x":17882.64382962515,"y":31131.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"22be64f9-4b08-4ac3-ae89-6726743a7d5a","savedPayload":{"position":{"x":17890.64382962515,"y":31165.23747069523},"targetPosition":{"x":17956.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c7462500-ba74-4bf3-ad81-35fa232bede3","savedPayload":{"position":{"x":17956.64382962515,"y":31156.23747069523},"targetPosition":{"x":17882.64382962515,"y":31131.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5cd41ced-981a-4075-af43-3a0497eb0fcb","savedPayload":{"position":{"x":17882.64382962515,"y":31131.23747069523},"targetPosition":{"x":17856.64382962515,"y":31148.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b5937899-c6ee-4d7a-b259-1ee23d721f60","savedPayload":{"position":{"x":17856.64382962515,"y":31148.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"695029de-7f61-45bb-aa4c-c6d51e6369ed","savedPayload":{"position":{"x":18004.301618063546,"y":32573.08061122679},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CREX24","config":"{ \n\"codeName\": \"crex24\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c5e12f4a-fb26-40d3-9e70-751b55018e74","savedPayload":{"position":{"x":17910.64382962515,"y":31024.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"00cb629e-bad4-4c6e-8abb-499cad3992f4","savedPayload":{"position":{"x":17938.64382962515,"y":31054.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"4909d182-e0d5-49a9-8ad2-a553c8aaaf88","savedPayload":{"position":{"x":17912.64382962515,"y":31301.23747069523},"targetPosition":{"x":17920.64382962515,"y":31249.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"075eb2a2-299b-4a0f-9f6d-76c385521dc4","savedPayload":{"position":{"x":17800.64382962515,"y":31332.23747069523},"targetPosition":{"x":17883.64382962515,"y":31289.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"e062ef2e-b252-4a66-8f58-d9aa8031f526","savedPayload":{"position":{"x":17883.64382962515,"y":31289.23747069523},"targetPosition":{"x":17920.64382962515,"y":31249.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e75be98-f874-486d-b749-536e364934dc","savedPayload":{"position":{"x":17920.64382962515,"y":31249.23747069523},"targetPosition":{"x":17845.64382962515,"y":31164.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"052f73cd-7ed7-4537-8b01-840b5b892fea","savedPayload":{"position":{"x":17845.64382962515,"y":31164.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07a7ec7c-273e-4675-8d8d-21ab8514a1f0","savedPayload":{"position":{"x":17895.458263866083,"y":32502.117186545547},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Deribit","config":"{ \n\"codeName\": \"deribit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f0b2354b-89e3-4eca-b051-664a3b8283f6","savedPayload":{"position":{"x":17862.64382962515,"y":30844.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4ae1f824-82a8-4796-a2d5-3d2358d8089f","savedPayload":{"position":{"x":17912.64382962515,"y":31024.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2013fe7a-d52c-4c9d-ba53-d281d014a8fc","savedPayload":{"position":{"x":17873.64382962515,"y":30926.23747069523},"targetPosition":{"x":17855.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"706d5778-ed21-49bd-9277-1840ec52708d","savedPayload":{"position":{"x":17729.64382962515,"y":31033.23747069523},"targetPosition":{"x":17813.64382962515,"y":31053.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2e76bc02-6e10-4f14-9bf1-a11dc4268466","savedPayload":{"position":{"x":17813.64382962515,"y":31053.23747069523},"targetPosition":{"x":17855.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"89a3ccc7-20ab-4e2d-929b-52d9286179b7","savedPayload":{"position":{"x":17855.64382962515,"y":30967.23747069523},"targetPosition":{"x":17818.64382962515,"y":30920.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5c8219e3-4509-4b8b-941b-b88ac2c12237","savedPayload":{"position":{"x":17818.64382962515,"y":30920.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"21971815-4248-45df-8e04-20b9a5a83f06","savedPayload":{"position":{"x":17794.92544989493,"y":32419.801715882462},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"DigiFinex","config":"{ \n\"codeName\": \"digifinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e583c93e-9a44-4e0d-acb7-56d7e00a555a","savedPayload":{"position":{"x":17954.64382962515,"y":30992.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8917c7c0-b420-4d4f-a35a-c0fc6870f0de","savedPayload":{"position":{"x":18052.64382962515,"y":30972.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a00b5bb0-5ab9-42e2-91fe-b450c7eb66d2","savedPayload":{"position":{"x":18220.64382962515,"y":31090.23747069523},"targetPosition":{"x":18123.64382962515,"y":30998.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2aafc473-339b-4d23-9b74-06fa7574c293","savedPayload":{"position":{"x":18144.64382962515,"y":31123.23747069523},"targetPosition":{"x":18203.64382962515,"y":31084.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"99e9e136-1ac7-4400-a100-0a2d37f0882d","savedPayload":{"position":{"x":18203.64382962515,"y":31084.23747069523},"targetPosition":{"x":18123.64382962515,"y":30998.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b7cee21b-ddcb-4fd7-b610-43aabb2d1766","savedPayload":{"position":{"x":18123.64382962515,"y":30998.23747069523},"targetPosition":{"x":18032.64382962515,"y":30976.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08e84a25-4368-4ad6-939f-5a16cece62cc","savedPayload":{"position":{"x":18032.64382962515,"y":30976.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b7d56781-0c51-4ec1-95fd-bf4dc8c00352","savedPayload":{"position":{"x":17703.88183147586,"y":32327.0992728693},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"DSX","config":"{ \n\"codeName\": \"dsx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"d672ab56-cd32-4ff5-8fc5-3733262aeccb","savedPayload":{"position":{"x":17916.64382962515,"y":31106.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3731a7b5-ba9d-483e-bb41-abf3ae0232c6","savedPayload":{"position":{"x":17878.64382962515,"y":30946.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9ef7e0ac-dc27-4b47-a06e-0cb7e80ee3d7","savedPayload":{"position":{"x":18124.64382962515,"y":31136.23747069523},"targetPosition":{"x":18093.64382962515,"y":31072.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"77491a3c-3db7-446f-aa67-9b5a1a3be7b3","savedPayload":{"position":{"x":18109.64382962515,"y":31081.23747069523},"targetPosition":{"x":18188.64382962515,"y":31137.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"bd1bd0b7-4943-4aeb-bf90-d3192dcabbb1","savedPayload":{"position":{"x":18188.64382962515,"y":31137.23747069523},"targetPosition":{"x":18093.64382962515,"y":31072.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45747fef-f30e-4fae-b02d-5768ae7dbe68","savedPayload":{"position":{"x":18093.64382962515,"y":31072.23747069523},"targetPosition":{"x":18018.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa2e1c9b-428c-4bb0-9e75-ceb8c9043d4b","savedPayload":{"position":{"x":18018.64382962515,"y":31005.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4c543abc-7372-4701-bc58-107578d45c25","savedPayload":{"position":{"x":17623.394811792878,"y":32225.09670889175},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FCoin","config":"{ \n\"codeName\": \"fcoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"a97d578c-6d7f-403c-8294-18aacf14abd8","savedPayload":{"position":{"x":17893.64382962515,"y":30953.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"442c3834-482e-4928-9255-8ac859ae012e","savedPayload":{"position":{"x":17905.64382962515,"y":30896.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"79754959-1219-4c4d-be63-22766158beb5","savedPayload":{"position":{"x":18106.64382962515,"y":30976.23747069523},"targetPosition":{"x":18069.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"1c3ae096-5024-43c3-abca-24498254e363","savedPayload":{"position":{"x":18112.64382962515,"y":30919.23747069523},"targetPosition":{"x":18126.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"59db5bfd-e413-48a7-af63-237ad56adc82","savedPayload":{"position":{"x":18126.64382962515,"y":30965.23747069523},"targetPosition":{"x":18069.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"833c4e54-08f4-48ec-b90a-2767eb55f244","savedPayload":{"position":{"x":18069.64382962515,"y":31056.23747069523},"targetPosition":{"x":17996.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a8cf17b3-0ea7-4a14-8c76-f655344b58a3","savedPayload":{"position":{"x":17996.64382962515,"y":30970.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6ddedcbd-07cb-4928-91b3-348f47118391","savedPayload":{"position":{"x":17554.408027561767,"y":32114.989910750606},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FCoinJP","config":"{ \n\"codeName\": \"fcoinjp\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"4a8a9810-6df6-451a-ab26-22bd7e7be85a","savedPayload":{"position":{"x":17930.64382962515,"y":31129.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"138ab40c-18ca-4a11-9709-0baa040873e6","savedPayload":{"position":{"x":18007.64382962515,"y":31122.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"258cdf92-8ed0-4133-ae2a-b9f086f56a13","savedPayload":{"position":{"x":17897.64382962515,"y":30887.23747069523},"targetPosition":{"x":17903.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"537e8f0c-05ca-4403-bc96-da6c2f4678ae","savedPayload":{"position":{"x":17825.64382962515,"y":30842.23747069523},"targetPosition":{"x":17836.64382962515,"y":30926.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"62519e63-8f4e-4b72-a341-0a6eea01ac3f","savedPayload":{"position":{"x":17836.64382962515,"y":30926.23747069523},"targetPosition":{"x":17903.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4974cc1-f594-436b-8aa4-aff2733b8e3c","savedPayload":{"position":{"x":17903.64382962515,"y":30977.23747069523},"targetPosition":{"x":17873.64382962515,"y":31061.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d84b404f-75e2-4eb5-b34a-b45af8a57ca7","savedPayload":{"position":{"x":17873.64382962515,"y":31061.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"982627ea-df84-4ba9-9219-612fbe1e4276","savedPayload":{"position":{"x":17497.730285752426,"y":31998.069779982467},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FTX","config":"{ \n\"codeName\": \"ftx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"20c0a4f5-bdb9-46cc-af7e-2111964551e3","savedPayload":{"position":{"x":17886.64382962515,"y":30940.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"75c99a0b-d3c9-4073-9283-d33e539c36bb","savedPayload":{"position":{"x":17992.64382962515,"y":31061.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2e037470-549e-4aa8-bbe7-95cdeaef88ea","savedPayload":{"position":{"x":17964.64382962515,"y":31027.23747069523},"targetPosition":{"x":17970.64382962515,"y":31008.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"3b6f5b7b-9c61-4b71-b29a-ca1bc027e55f","savedPayload":{"position":{"x":17817.64382962515,"y":30943.23747069523},"targetPosition":{"x":17890.64382962515,"y":30978.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"a84010f0-04b5-4eab-a3a6-a5944b80a373","savedPayload":{"position":{"x":17890.64382962515,"y":30978.23747069523},"targetPosition":{"x":17970.64382962515,"y":31008.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5cdc51a3-6136-4e03-9e2c-26a752140d17","savedPayload":{"position":{"x":17970.64382962515,"y":31008.23747069523},"targetPosition":{"x":18010.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"55258a2b-3199-4070-beed-d34a8496870c","savedPayload":{"position":{"x":18010.64382962515,"y":30986.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0c0bcf5c-2774-423e-9fcf-c512b38dd06d","savedPayload":{"position":{"x":17454.026081066615,"y":31875.707098219504},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Gate.io","config":"{ \n\"codeName\": \"gateio\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"71a15089-9d40-4726-9a41-37d406064164","savedPayload":{"position":{"x":17930.64382962515,"y":30993.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c025e976-c2c6-49de-81ec-48e2f737b412","savedPayload":{"position":{"x":17925.64382962515,"y":31053.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"876f964a-e12d-4438-87fb-a84be22f86d1","savedPayload":{"position":{"x":17914.64382962515,"y":30833.23747069523},"targetPosition":{"x":17827.64382962515,"y":30882.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0c5d34c4-467f-4e98-bd39-1b2d9afb834e","savedPayload":{"position":{"x":17852.64382962515,"y":30831.23747069523},"targetPosition":{"x":17870.64382962515,"y":30847.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"89316d8c-893a-46ae-b147-948b4b8a5292","savedPayload":{"position":{"x":17870.64382962515,"y":30847.23747069523},"targetPosition":{"x":17827.64382962515,"y":30882.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a2a5de53-bd45-4904-8bae-0cf5ed66d2af","savedPayload":{"position":{"x":17827.64382962515,"y":30882.23747069523},"targetPosition":{"x":17800.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f6f4072d-8cf6-4e47-8b4e-a21cd553348a","savedPayload":{"position":{"x":17800.64382962515,"y":30936.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c4028289-4cdb-4da0-90e6-5f93328b8e03","savedPayload":{"position":{"x":17423.807805345143,"y":31749.336456028108},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Gemini","config":"{ \n\"codeName\": \"gemini\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9eb15872-8d15-4086-9920-46909eb5f9e7","savedPayload":{"position":{"x":17951.64382962515,"y":30901.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"a84dcf06-57c6-47d7-97a0-9f03f3af8b34","savedPayload":{"position":{"x":18045.64382962515,"y":30891.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5da1ba65-3839-4664-8105-2ccb11652767","savedPayload":{"position":{"x":18028.64382962515,"y":31112.23747069523},"targetPosition":{"x":17941.64382962515,"y":31044.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"337fe5e2-b9fd-40eb-9f42-44fc5057d981","savedPayload":{"position":{"x":17957.64382962515,"y":31129.23747069523},"targetPosition":{"x":17875.64382962515,"y":31086.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"17a3f4a3-8914-4995-afb0-7e8115791b17","savedPayload":{"position":{"x":17875.64382962515,"y":31086.23747069523},"targetPosition":{"x":17941.64382962515,"y":31044.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"32e4a3f1-40d8-421f-9634-7ab339858286","savedPayload":{"position":{"x":17941.64382962515,"y":31044.23747069523},"targetPosition":{"x":17877.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"365f6865-e707-415d-a168-b67c66ca9553","savedPayload":{"position":{"x":17877.64382962515,"y":30977.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"58bf8247-baef-4ea6-a483-7ed8f0ba5043","savedPayload":{"position":{"x":17407.429740242005,"y":31620.439433646203},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"HitBTC","config":"{ \n\"codeName\": \"hitbtc\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"1632c520-fa79-442f-b33b-430cb1356de6","savedPayload":{"position":{"x":17809.64382962515,"y":31086.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"576d1666-dbd3-4914-9fe2-fa05bdf72eea","savedPayload":{"position":{"x":17840.64382962515,"y":31148.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"41317aae-08ce-48cf-a47b-c2d2cc3920ec","savedPayload":{"position":{"x":18096.64382962515,"y":30975.23747069523},"targetPosition":{"x":18026.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"23d7e4ba-8432-4214-bd94-0db5046e39cd","savedPayload":{"position":{"x":18039.64382962515,"y":31075.23747069523},"targetPosition":{"x":17981.64382962515,"y":31126.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ab200349-5ba5-44d2-ad5c-fa826303cfcd","savedPayload":{"position":{"x":17981.64382962515,"y":31126.23747069523},"targetPosition":{"x":18026.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a5f24785-5b2c-429b-a2e4-07063e2de904","savedPayload":{"position":{"x":18026.64382962515,"y":31066.23747069523},"targetPosition":{"x":17972.64382962515,"y":31093.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13f275ca-06a6-4a72-8b4d-a9c079b9cef4","savedPayload":{"position":{"x":17972.64382962515,"y":31093.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8384fa0b-854c-4c23-846e-a5da0179a738","savedPayload":{"position":{"x":17405.083903595932,"y":31490.527230809537},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"HitBTC","config":"{ \n\"codeName\": \"hitbtc2\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9a29cb9e-ee8d-4315-8532-eef82224b84a","savedPayload":{"position":{"x":17838.64382962515,"y":30922.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"badd79e7-1e21-4dc3-bfa7-8dfb4a6c6267","savedPayload":{"position":{"x":17920.64382962515,"y":30944.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"ffdda0b7-af50-4010-84da-2bc0d562af2b","savedPayload":{"position":{"x":17887.64382962515,"y":30982.23747069523},"targetPosition":{"x":17836.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"24816eed-adf7-453e-9b38-42ea4758dbaa","savedPayload":{"position":{"x":18021.64382962515,"y":30979.23747069523},"targetPosition":{"x":17931.64382962515,"y":30923.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"1dd16858-5641-4454-88a3-e5d7446e12a3","savedPayload":{"position":{"x":17931.64382962515,"y":30923.23747069523},"targetPosition":{"x":17836.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"457d75ed-ad21-4ee5-b36b-88cdc444008e","savedPayload":{"position":{"x":17836.64382962515,"y":31023.23747069523},"targetPosition":{"x":17808.64382962515,"y":31039.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b29ded7e-e2d5-4c7f-89af-b0816c32c743","savedPayload":{"position":{"x":17808.64382962515,"y":31039.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"09c634c2-5aba-49c5-80bc-4fd4175e7f0c","savedPayload":{"position":{"x":17416.79779819678,"y":31361.12294931652},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Huobi Pro","config":"{ \n\"codeName\": \"huobipro\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"86caa38c-5bdf-40e4-b27b-8d8b64319575","savedPayload":{"position":{"x":18071.64382962515,"y":31171.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"001225af-c715-4566-9502-f8f0ac1c4531","savedPayload":{"position":{"x":18040.64382962515,"y":31019.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"b4bf5ccb-b529-4500-a192-d9c3a0613389","savedPayload":{"position":{"x":18129.64382962515,"y":31073.23747069523},"targetPosition":{"x":18033.64382962515,"y":31090.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2e58c6d1-cfa7-4dc7-a322-e9356596ea1e","savedPayload":{"position":{"x":17976.64382962515,"y":31132.23747069523},"targetPosition":{"x":17953.64382962515,"y":31093.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae04ddf4-ae3e-4bdc-9393-41acc38ef818","savedPayload":{"position":{"x":17953.64382962515,"y":31093.23747069523},"targetPosition":{"x":18033.64382962515,"y":31090.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2428e8ef-6a09-48fa-8ae4-ebfb28420be8","savedPayload":{"position":{"x":18033.64382962515,"y":31090.23747069523},"targetPosition":{"x":18085.64382962515,"y":31157.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"55c71c8b-f21f-4d16-ae93-e29362c39bf5","savedPayload":{"position":{"x":18085.64382962515,"y":31157.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"967c3914-a76d-4389-9c7e-9c258ae683bd","savedPayload":{"position":{"x":17442.43408934047,"y":31233.743736052187},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Huobi Russia","config":"{ \n\"codeName\": \"huobiru\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9b7b32d6-a42e-44bb-8065-5aa32b1e844b","savedPayload":{"position":{"x":17980.64382962515,"y":31034.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8d74201c-33cd-4e12-8920-b08d0ef97572","savedPayload":{"position":{"x":17992.64382962515,"y":31105.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c6e289d7-074b-4837-96e3-687988886fcc","savedPayload":{"position":{"x":18078.64382962515,"y":30954.23747069523},"targetPosition":{"x":18008.64382962515,"y":31029.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d72f81ba-6b41-414d-9cf0-d5f9c0c25403","savedPayload":{"position":{"x":18026.64382962515,"y":31021.23747069523},"targetPosition":{"x":18083.64382962515,"y":31117.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5354f66c-6e73-4fe5-80ca-2c25b761ef51","savedPayload":{"position":{"x":18083.64382962515,"y":31117.23747069523},"targetPosition":{"x":18008.64382962515,"y":31029.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"81f5adbb-054c-47f2-b019-52585f5d7417","savedPayload":{"position":{"x":18008.64382962515,"y":31029.23747069523},"targetPosition":{"x":18018.64382962515,"y":31009.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ecd8645b-4bb6-4641-a20f-cee51bf33f1a","savedPayload":{"position":{"x":18018.64382962515,"y":31009.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6f97bb5c-8d85-43ee-86a1-33e22cdfbb5e","savedPayload":{"position":{"x":17481.692214952825,"y":31109.882995828142},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"KKEX","config":"{ \n\"codeName\": \"kkex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"daa4e07a-1cd8-4d92-8004-2eabfaa62f77","savedPayload":{"position":{"x":17924.64382962515,"y":31038.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"cb64951f-d984-4f51-a751-166a316084f3","savedPayload":{"position":{"x":17945.64382962515,"y":31156.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6915bf12-9271-47e2-8b49-924ae9f5c65f","savedPayload":{"position":{"x":17958.64382962515,"y":31297.23747069523},"targetPosition":{"x":17875.64382962515,"y":31252.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"ff53381f-c6dd-4d17-a477-11396f60663f","savedPayload":{"position":{"x":17805.64382962515,"y":31141.23747069523},"targetPosition":{"x":17861.64382962515,"y":31223.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae05bfc4-6ac8-408c-a90b-263830b2a71e","savedPayload":{"position":{"x":17861.64382962515,"y":31223.23747069523},"targetPosition":{"x":17875.64382962515,"y":31252.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61c85f1a-a2a6-45c9-bb1e-3c76110f5d1e","savedPayload":{"position":{"x":17875.64382962515,"y":31252.23747069523},"targetPosition":{"x":17911.64382962515,"y":31154.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fafb114-37d2-4d04-9c42-83d04ff62fc7","savedPayload":{"position":{"x":17911.64382962515,"y":31154.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"16ae95ce-796f-4f2b-942c-f98dcbf9cf4b","savedPayload":{"position":{"x":17534.11190940509,"y":30990.99288257655},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Kraken","config":"{ \n\"codeName\": \"kraken\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"747af60f-c8b9-4377-aa6c-172d4137ea23","savedPayload":{"position":{"x":17854.64382962515,"y":31008.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c75f7d97-9dc2-4d3e-89eb-f8a3d5f16368","savedPayload":{"position":{"x":17916.64382962515,"y":30872.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"0093e946-03f4-4aec-942d-c76aed12ab1a","savedPayload":{"position":{"x":17780.64382962515,"y":31091.23747069523},"targetPosition":{"x":17836.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2a4235ac-e5ea-4484-bccd-f06c8a7275ec","savedPayload":{"position":{"x":17930.64382962515,"y":30869.23747069523},"targetPosition":{"x":17883.64382962515,"y":30953.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"737dec0a-23ab-4044-94ba-95c8bc50c0eb","savedPayload":{"position":{"x":17883.64382962515,"y":30953.23747069523},"targetPosition":{"x":17836.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"457b045e-dae5-4f53-a8b7-cab4757e5286","savedPayload":{"position":{"x":17836.64382962515,"y":31011.23747069523},"targetPosition":{"x":17926.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6eff12db-8e7c-402a-9e06-ae2618f506a0","savedPayload":{"position":{"x":17926.64382962515,"y":31005.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"644efe9c-597a-4ddf-9e28-b33fb3b62d3e","savedPayload":{"position":{"x":17599.078599707587,"y":30878.467274173025},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"KuCoin","config":"{ \n\"codeName\": \"kucoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"01ca3037-4ed3-499e-ad6b-e14ca1d4a51f","savedPayload":{"position":{"x":17919.64382962515,"y":30949.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8b3c4ce0-98b1-4d46-bd02-6cf44c3dd686","savedPayload":{"position":{"x":17998.64382962515,"y":30978.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d6c7c0ef-670d-4ed6-9246-6eb7d6bfc359","savedPayload":{"position":{"x":17927.64382962515,"y":30962.23747069523},"targetPosition":{"x":17953.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e8c2c454-b246-4f63-b51b-74d9cbb01ac2","savedPayload":{"position":{"x":17927.64382962515,"y":30924.23747069523},"targetPosition":{"x":17912.64382962515,"y":30869.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"d2bb2603-3b52-443c-8923-86fefafc0b14","savedPayload":{"position":{"x":17912.64382962515,"y":30869.23747069523},"targetPosition":{"x":17953.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fa83b0b9-1039-4406-907c-f809a5af40f5","savedPayload":{"position":{"x":17953.64382962515,"y":30954.23747069523},"targetPosition":{"x":17966.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"471161d3-201e-40c6-b433-49643cf7e43b","savedPayload":{"position":{"x":17966.64382962515,"y":30962.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d79bc720-68e1-4771-a66a-bcffa30639d3","savedPayload":{"position":{"x":17675.830610816145,"y":30773.625430492953},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"LBank","config":"{ \n\"codeName\": \"lbank\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"def3f9d0-f09e-4e09-8b6d-a4c322a4384b","savedPayload":{"position":{"x":17877.64382962515,"y":31024.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"53eac3c1-96d6-4cb1-b54d-f3f174eaf733","savedPayload":{"position":{"x":17764.64382962515,"y":31036.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c6c00704-1357-4426-910e-8134d6f87017","savedPayload":{"position":{"x":18030.64382962515,"y":31212.23747069523},"targetPosition":{"x":17951.64382962515,"y":31172.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"13990604-2192-4be1-b21b-53cf2bafc002","savedPayload":{"position":{"x":17893.64382962515,"y":31189.23747069523},"targetPosition":{"x":17964.64382962515,"y":31122.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ed2c483e-d412-406d-b6f3-cfb1112a3a05","savedPayload":{"position":{"x":17964.64382962515,"y":31122.23747069523},"targetPosition":{"x":17951.64382962515,"y":31172.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6033b63c-c7fe-4a5d-8cf6-82128e2cfb41","savedPayload":{"position":{"x":17951.64382962515,"y":31172.23747069523},"targetPosition":{"x":17891.64382962515,"y":31096.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20ece5c4-dbfa-4f4a-a9ee-8c8d9c38943b","savedPayload":{"position":{"x":17891.64382962515,"y":31096.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cb2558d6-dab0-4f35-b83f-7cfc161b3d4f","savedPayload":{"position":{"x":17763.468095575536,"y":30677.69652629567},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Mercado Bitcoin","config":"{ \n\"codeName\": \"mercado\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"83ab2c39-e844-496f-bebb-7b8607428902","savedPayload":{"position":{"x":17849.64382962515,"y":31081.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d69e722e-c71a-462a-8bbd-d3482d0eab21","savedPayload":{"position":{"x":17771.64382962515,"y":30887.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"18438709-83cf-49a3-96b8-888ab5adbcc5","savedPayload":{"position":{"x":17937.64382962515,"y":31080.23747069523},"targetPosition":{"x":17866.64382962515,"y":31013.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"6b9d4ed4-af81-462a-aace-fac0afd4687a","savedPayload":{"position":{"x":17787.64382962515,"y":30841.23747069523},"targetPosition":{"x":17873.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"802a4c53-8617-4257-95a5-45bfaa60ad0e","savedPayload":{"position":{"x":17873.64382962515,"y":30935.23747069523},"targetPosition":{"x":17866.64382962515,"y":31013.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"87936a4a-aac5-4aca-8f3e-2051611932c4","savedPayload":{"position":{"x":17866.64382962515,"y":31013.23747069523},"targetPosition":{"x":17829.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"48f3a793-bb97-447b-8f1a-1d6965219747","savedPayload":{"position":{"x":17829.64382962515,"y":30919.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5002072e-145c-4aeb-a611-3e0e4c60ee5d","savedPayload":{"position":{"x":17860.963584604677,"y":30591.805240274254},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKCoin","config":"{ \n\"codeName\": \"okcoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"1e4dd5c8-0545-4698-8695-c985880243a3","savedPayload":{"position":{"x":17921.64382962515,"y":31043.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0e188cae-9764-4963-a78b-e5d7ef272522","savedPayload":{"position":{"x":18005.64382962515,"y":30891.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6d82bfd7-b4e1-4f93-a0f8-18f62cee944e","savedPayload":{"position":{"x":18047.64382962515,"y":30877.23747069523},"targetPosition":{"x":17963.64382962515,"y":30898.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d815409c-1dd4-4e89-b844-5b96104509b4","savedPayload":{"position":{"x":17958.64382962515,"y":30988.23747069523},"targetPosition":{"x":17945.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"238b9d2c-e2c0-4a77-945e-8e28604c0a2d","savedPayload":{"position":{"x":17945.64382962515,"y":30961.23747069523},"targetPosition":{"x":17963.64382962515,"y":30898.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8416c29a-5d73-4b2a-9463-511f400deafb","savedPayload":{"position":{"x":17963.64382962515,"y":30898.23747069523},"targetPosition":{"x":18047.64382962515,"y":30885.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04abf32b-084e-4784-aa84-8c5612d3b7b9","savedPayload":{"position":{"x":18047.64382962515,"y":30885.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1f860b4b-2893-4a51-8649-19c47d494a37","savedPayload":{"position":{"x":17967.17403243568,"y":30516.958569226157},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKEX","config":"{ \n\"codeName\": \"okex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"7f618566-3d10-4c3c-90b2-7541a5146eeb","savedPayload":{"position":{"x":17770.64382962515,"y":31094.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"21205576-5d12-452c-814f-eb56182162ae","savedPayload":{"position":{"x":17794.64382962515,"y":31173.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"46456247-ae9c-41ea-8395-a5e4a78007d4","savedPayload":{"position":{"x":17724.64382962515,"y":31147.23747069523},"targetPosition":{"x":17795.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"706bf601-eaad-48bd-b0a7-8dad59066171","savedPayload":{"position":{"x":17715.64382962515,"y":31182.23747069523},"targetPosition":{"x":17706.64382962515,"y":31162.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"f9c7071c-2e5b-4c90-b482-dfc7ee001244","savedPayload":{"position":{"x":17706.64382962515,"y":31162.23747069523},"targetPosition":{"x":17795.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e87e1e10-3404-48b9-8629-5df92ffa1979","savedPayload":{"position":{"x":17795.64382962515,"y":31083.23747069523},"targetPosition":{"x":17789.64382962515,"y":31181.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08e8fd6a-6b23-4d65-8b8e-d966f845c07f","savedPayload":{"position":{"x":17789.64382962515,"y":31181.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"aa0edec0-8b27-4f94-abce-1e437ce5aba6","savedPayload":{"position":{"x":18080.854218676865,"y":30454.034021936455},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"RightBTC","config":"{ \n\"codeName\": \"rightbtc\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"ade372e9-5070-4fa9-843e-57732c4106c3","savedPayload":{"position":{"x":17999.64382962515,"y":30964.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b63d440e-4501-475c-b8a6-2b9a144e32a1","savedPayload":{"position":{"x":17984.64382962515,"y":30901.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"81d77477-4f2e-43c0-b284-dde54f91c37f","savedPayload":{"position":{"x":17864.64382962515,"y":31036.23747069523},"targetPosition":{"x":17861.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"9ce3cc34-1ba4-4155-96a5-c946b1bcc5ab","savedPayload":{"position":{"x":17819.64382962515,"y":31127.23747069523},"targetPosition":{"x":17810.64382962515,"y":31080.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c7df4af7-37c1-403d-ada1-b6a527821bdd","savedPayload":{"position":{"x":17810.64382962515,"y":31080.23747069523},"targetPosition":{"x":17861.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6de19501-5ce7-4944-b9dd-25b149acbb38","savedPayload":{"position":{"x":17861.64382962515,"y":31043.23747069523},"targetPosition":{"x":17946.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa87ace4-a976-401c-93f9-24a498261742","savedPayload":{"position":{"x":17946.64382962515,"y":30988.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c20cd9e1-52a0-4d17-b90c-e9d5b63315ce","savedPayload":{"position":{"x":18200.67134708334,"y":30403.76933118965},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"STEX","config":"{ \n\"codeName\": \"stex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f1d65161-4922-4a1e-ac98-df1a842347a7","savedPayload":{"position":{"x":17872.64382962515,"y":31001.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c313b2c6-6154-4a9a-b826-fd99cc500cd9","savedPayload":{"position":{"x":17888.64382962515,"y":31186.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d0a1259b-1c37-4d39-836e-3c434c3b3687","savedPayload":{"position":{"x":17778.64382962515,"y":31076.23747069523},"targetPosition":{"x":17858.64382962515,"y":31091.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"4a1e5627-459c-4dec-be13-c20d4a9ea58f","savedPayload":{"position":{"x":17841.64382962515,"y":31179.23747069523},"targetPosition":{"x":17795.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"6981eb0d-0f0e-4f8e-9781-4a03e22e93fd","savedPayload":{"position":{"x":17795.64382962515,"y":31105.23747069523},"targetPosition":{"x":17858.64382962515,"y":31091.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7704478a-9717-43a8-bd2e-88daa6f84bd0","savedPayload":{"position":{"x":17858.64382962515,"y":31091.23747069523},"targetPosition":{"x":17941.64382962515,"y":31173.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"262aad86-f430-49ea-a636-e8bd816a9636","savedPayload":{"position":{"x":17941.64382962515,"y":31173.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0ea23137-3c65-4de1-9772-6ac1b65196e8","savedPayload":{"position":{"x":18325.220671374373,"y":30366.753804527314},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TideBit","config":"{ \n\"codeName\": \"tidebit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c92318bd-8b2d-489b-b8e8-cf30fb63286e","savedPayload":{"position":{"x":17981.64382962515,"y":31021.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"83bca3ec-fc1c-435c-b5fe-b1cf92463fd1","savedPayload":{"position":{"x":18051.64382962515,"y":31072.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2f3ee9b2-cd41-458c-84da-edac3155028a","savedPayload":{"position":{"x":18075.64382962515,"y":31059.23747069523},"targetPosition":{"x":17987.64382962515,"y":31047.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"009ae4b6-adbc-4900-9fc0-f18936eeed9b","savedPayload":{"position":{"x":18030.64382962515,"y":31058.23747069523},"targetPosition":{"x":18009.64382962515,"y":31028.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"3ee88180-fe10-41df-8251-b1ed0a526e7a","savedPayload":{"position":{"x":18009.64382962515,"y":31028.23747069523},"targetPosition":{"x":17987.64382962515,"y":31047.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bb88e6e8-a99a-4c4e-9ca5-ffed49aa8b54","savedPayload":{"position":{"x":17987.64382962515,"y":31047.23747069523},"targetPosition":{"x":17925.64382962515,"y":31135.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13a4a95e-4333-4455-9f7c-90bc839d174a","savedPayload":{"position":{"x":17925.64382962515,"y":31135.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5563c310-701a-4c1e-8155-87c08c927ce3","savedPayload":{"position":{"x":18453.041964599197,"y":30343.421415155935},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TimeX","config":"{ \n\"codeName\": \"timex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"5c004b5f-eec4-414f-8d01-d9b3fddeee9e","savedPayload":{"position":{"x":17892.64382962515,"y":30973.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"59a33add-d0e9-4ae1-8a01-f1e0ed09cb61","savedPayload":{"position":{"x":17911.64382962515,"y":30878.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a4189ba1-d1d4-4ff8-91dd-a8696ca493e3","savedPayload":{"position":{"x":17953.64382962515,"y":30880.23747069523},"targetPosition":{"x":17924.64382962515,"y":30871.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"3d34eb9d-e7cb-42fe-8785-c327b2bbc529","savedPayload":{"position":{"x":17839.64382962515,"y":30875.23747069523},"targetPosition":{"x":17930.64382962515,"y":30877.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"773de01f-0999-4a59-91f0-642148cd58d0","savedPayload":{"position":{"x":17930.64382962515,"y":30877.23747069523},"targetPosition":{"x":17924.64382962515,"y":30871.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fe33a596-4f98-4843-a5b1-26e7e0fcf1c8","savedPayload":{"position":{"x":17924.64382962515,"y":30871.23747069523},"targetPosition":{"x":18018.64382962515,"y":30832.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d078b9a3-cdc6-458e-a511-dc4f5bef38ba","savedPayload":{"position":{"x":18018.64382962515,"y":30832.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"27d69fa7-b561-4986-8c0d-1b374e7e1bf1","savedPayload":{"position":{"x":18582.63663896287,"y":30334.045714007894},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TOP.Q","config":"{ \n\"codeName\": \"topq\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"eafef6a3-eed2-470e-a15c-aa4c10001cd2","savedPayload":{"position":{"x":17818.64382962515,"y":31115.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"2d5eb813-ceb6-40cd-8682-7205596bb8b5","savedPayload":{"position":{"x":17759.64382962515,"y":31188.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"61f7832c-c1f0-40bc-b1f2-ba947c58309d","savedPayload":{"position":{"x":17741.64382962515,"y":31288.23747069523},"targetPosition":{"x":17788.64382962515,"y":31228.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"63b973da-30a7-467a-b954-c57537aab18d","savedPayload":{"position":{"x":17677.64382962515,"y":31206.23747069523},"targetPosition":{"x":17756.64382962515,"y":31146.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"722dcf44-de3f-4d1a-8655-80561e1e4d55","savedPayload":{"position":{"x":17756.64382962515,"y":31146.23747069523},"targetPosition":{"x":17788.64382962515,"y":31228.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45d5e04a-4a53-4f32-b4c0-d882456cb263","savedPayload":{"position":{"x":17788.64382962515,"y":31228.23747069523},"targetPosition":{"x":17806.64382962515,"y":31163.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c66e8dfc-4847-4180-b82c-36458f9b405d","savedPayload":{"position":{"x":17806.64382962515,"y":31163.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8fdf13d8-e8d2-4ef4-8b34-f492a25d753a","savedPayload":{"position":{"x":18712.485315398026,"y":30338.736622606855},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Upbit","config":"{ \n\"codeName\": \"upbit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f456fec2-cee6-4f0c-b865-1188088879c9","savedPayload":{"position":{"x":17919.64382962515,"y":30973.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"947c1ca0-bff9-4372-b153-40054e29b705","savedPayload":{"position":{"x":17921.64382962515,"y":31014.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"34ffbe12-5a26-446a-8bf6-7395c0370ba2","savedPayload":{"position":{"x":17874.64382962515,"y":30900.23747069523},"targetPosition":{"x":17945.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"8f00f19d-74a8-48d8-b951-79f35e87b110","savedPayload":{"position":{"x":17906.64382962515,"y":30902.23747069523},"targetPosition":{"x":17896.64382962515,"y":30896.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"64e1bede-aabf-4831-83a6-fe1cea435613","savedPayload":{"position":{"x":17896.64382962515,"y":30896.23747069523},"targetPosition":{"x":17945.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7c80b956-f2ca-4a6f-a661-f17546288d3e","savedPayload":{"position":{"x":17945.64382962515,"y":30971.23747069523},"targetPosition":{"x":18027.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e3686b02-4ecc-4dcb-a311-b7ef542a3c37","savedPayload":{"position":{"x":18027.64382962515,"y":31048.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"74e57ecd-3394-42b4-b2c4-6f216f7e41db","savedPayload":{"position":{"x":18841.065636895226,"y":30357.439144338445},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"WhiteBit","config":"{ \n\"codeName\": \"whitebit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c16eae45-a568-4b2e-b064-4431bdf34c24","savedPayload":{"position":{"x":17767.64382962515,"y":30899.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"dfdf793f-4ba6-4215-a325-323c0f223553","savedPayload":{"position":{"x":17920.64382962515,"y":31004.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"fd749d13-dbac-493f-9af6-c521eddf909f","savedPayload":{"position":{"x":17815.64382962515,"y":30973.23747069523},"targetPosition":{"x":17720.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"79f7d2d0-77a5-4f38-ac68-fd11f18e5e6b","savedPayload":{"position":{"x":17761.64382962515,"y":31182.23747069523},"targetPosition":{"x":17680.64382962515,"y":31153.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fd0506f4-58b7-431e-bc9d-69bce63c3379","savedPayload":{"position":{"x":17680.64382962515,"y":31153.23747069523},"targetPosition":{"x":17720.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"47e8a4b1-9a6c-4555-a881-f7524183d72e","savedPayload":{"position":{"x":17720.64382962515,"y":31056.23747069523},"targetPosition":{"x":17817.64382962515,"y":31010.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7fa08b91-55ab-477d-a097-88ea7f25fb76","savedPayload":{"position":{"x":17817.64382962515,"y":31010.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"467ece1e-d1d0-4a11-ae7a-d0e22cd4eba5","savedPayload":{"position":{"x":18966.87011674703,"y":30389.934009235236},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"ZB","config":"{ \n\"codeName\": \"zb\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"db206cbd-a587-4e8e-acbe-6581ad3b5cc4","savedPayload":{"position":{"x":17855.64382962515,"y":31027.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"1dd658c5-7755-44b7-85f0-9bcd787762a0","savedPayload":{"position":{"x":17789.64382962515,"y":31044.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"0de82bbe-7909-4b65-b304-f59b41f618ae","savedPayload":{"position":{"x":17830.64382962515,"y":30696.23747069523},"targetPosition":{"x":17846.64382962515,"y":30793.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c89819d0-8880-4b36-a9b3-0b284d266e3b","savedPayload":{"position":{"x":17891.64382962515,"y":30748.23747069523},"targetPosition":{"x":17865.64382962515,"y":30772.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"7a55f503-17fa-45c4-880b-1a9a11a0a555","savedPayload":{"position":{"x":17865.64382962515,"y":30772.23747069523},"targetPosition":{"x":17846.64382962515,"y":30793.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e640fca2-8bab-45ff-9a47-8e7b9650c277","savedPayload":{"position":{"x":17846.64382962515,"y":30793.23747069523},"targetPosition":{"x":17909.64382962515,"y":30886.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"421a99cd-3d9a-46a5-8654-08d6336e75be","savedPayload":{"position":{"x":17909.64382962515,"y":30886.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07df07e8-39a8-4fbc-a0c8-150f20b6ac59","savedPayload":{"position":{"x":19088.423812451314,"y":30435.840244716648},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51f64e29-e3ab-4683-a5de-f397fbf94260","savedPayload":{"position":{"x":18604.301618063546,"y":31533.850126685462},"targetPosition":{"x":18904.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Testing Queue","project":"Superalgos","exchanges":[],"id":"895ce4b1-4890-4216-89ba-a012181d2546","savedPayload":{"position":{"x":18754.301618063546,"y":30754.427263279467},"targetPosition":{"x":18904.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"signalsProviders":[],"id":"7217b56c-e854-4c06-8b8a-d5d3c05a153d","savedPayload":{"position":{"x":18904.301618063546,"y":31014.2348844148},"targetPosition":{"x":18904.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Charting Space","name":"New Charting Space","project":"Superalgos","viewport":{"type":"Viewport","name":"New Viewport","config":"{\"zoom\":\"0.00\"}","project":"Superalgos","id":"01713f1d-91b8-44f9-9c5d-a0c12fd09037","savedPayload":{"position":{"x":19200.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"frame":{"position":{"x":-69.625,"y":499.375}}}},"projectDashboards":[{"type":"Project Dashboards","name":"Superalgos","project":"Superalgos","dashboards":[{"type":"Dashboard","name":"Testing Trading Tasks My Computer","project":"Superalgos","timeMachines":[{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","config":"{}","project":"Superalgos","timeScale":{"type":"Time Scale","name":"New Time Scale","config":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-04-14T12:19:32.669Z\",\n \"toDate\": \"2020-04-24T22:36:06.989Z\"\n}","project":"Superalgos","id":"873982d6-57e3-43dd-b8df-7d399f87403f","savedPayload":{"position":{"x":18080.156473662064,"y":25430.789858951222},"targetPosition":{"x":18040.99861599605,"y":25133.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","config":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 6309.911126811459,\n \"maxValue\": 7824.566413643572\n}","project":"Superalgos","id":"df1ab660-5875-4f64-800a-723b2217daac","savedPayload":{"position":{"x":17963.352902465293,"y":25423.1341484258},"targetPosition":{"x":18040.99861599605,"y":25133.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","config":"{\n \"value\": \"01-hs\"\n}","project":"Superalgos","id":"97d52739-b93b-48fd-884f-4a84bebc2c17","savedPayload":{"position":{"x":17858.370187293433,"y":25371.36240262645},"targetPosition":{"x":18040.99861599605,"y":25133.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Trading Engine","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading Engine","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Episode","project":"Superalgos","layers":[{"type":"Layer","name":"Episode Counters","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Episode Counters","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2b55f5e9-4baa-475c-8930-cef3bf74b21c","savedPayload":{"position":{"x":18822.806237131383,"y":25308.35640053908},"targetPosition":{"x":18759.806237131383,"y":25344.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Counters","id":"2a5783fe-af9a-443c-b4e7-32d8bdabff82"}}}],"id":"e963d9bf-58fe-48d6-93c7-1c16f3137318","savedPayload":{"position":{"x":18759.806237131383,"y":25344.35640053908},"targetPosition":{"x":18660.806237131383,"y":25258.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"1f19bd0a-29a9-4b6a-a019-c893bd140ec6","savedPayload":{"position":{"x":18576.806237131383,"y":25225.35640053908},"targetPosition":{"x":18660.806237131383,"y":25258.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"96ebb0e8-97c5-4c7f-8876-41ea2e5ed695","savedPayload":{"position":{"x":17132.172250170668,"y":26469.471485763548},"targetPosition":{"x":17041.960510319386,"y":26183.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Counters","id":"cef828df-01c6-4407-9fa7-cf17fd49dc91"}}},{"type":"Layer","name":"Episode Statistics","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Episode Statistics","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"efdb5e54-7eef-4001-adf2-6faa7a702cf8","savedPayload":{"position":{"x":18607.806237131383,"y":25470.35640053908},"targetPosition":{"x":18655.806237131383,"y":25424.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Statistics","id":"6ea43033-418d-4d87-b640-02010679aa8b"}}}],"id":"6b1fa1d8-48d0-456e-809c-da7d6a06e05e","savedPayload":{"position":{"x":18655.806237131383,"y":25424.35640053908},"targetPosition":{"x":18665.806237131383,"y":25338.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"4ef89e39-b996-444a-a201-b798d0622fff","savedPayload":{"position":{"x":18614.806237131383,"y":25343.35640053908},"targetPosition":{"x":18665.806237131383,"y":25338.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4332e252-6cd0-4e38-9102-c4d4fa85331b","savedPayload":{"position":{"x":17106.892394500817,"y":26476.24520267506},"targetPosition":{"x":17041.960510319386,"y":26183.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Statistics","id":"2bc37bb8-7c27-4d1c-9599-cf0f34dc444e"}}},{"type":"Layer","name":"Episode Candle","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e1f66283-a46a-4e3e-8a83-f13fdbe5b36b","savedPayload":{"position":{"x":18549.806237131383,"y":25279.35640053908},"targetPosition":{"x":18605.806237131383,"y":25285.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"29b56808-e65d-44c2-982c-465220c785e1","savedPayload":{"position":{"x":18530.806237131383,"y":25295.35640053908},"targetPosition":{"x":18605.806237131383,"y":25285.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2ac70641-f1f2-4170-a049-32f15813b27b","savedPayload":{"position":{"x":17081.1183679854,"y":26480.789858951222},"targetPosition":{"x":17041.960510319386,"y":26183.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Candle","id":"02deeacc-df97-426a-bf87-ff766baac6c1"}}},{"type":"Layer","name":"Episode Balances","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Current Balance","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"be671113-1656-48d6-bca5-cec560ff4617","savedPayload":{"position":{"x":18919.806237131383,"y":25249.35640053908},"targetPosition":{"x":18824.806237131383,"y":25155.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Current Balance","id":"cb03ef16-522f-4189-ab3a-b410bf1f4176"}}}],"id":"912d4472-98a1-46a3-b83b-82581d5252c0","savedPayload":{"position":{"x":18824.806237131383,"y":25155.35640053908},"targetPosition":{"x":18765.806237131383,"y":25230.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"40d1e624-35f5-4749-b340-5334b8c2b261","savedPayload":{"position":{"x":18790.806237131383,"y":25258.35640053908},"targetPosition":{"x":18765.806237131383,"y":25230.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3928af55-cad8-43eb-b4bf-a83ff1c6e230","savedPayload":{"position":{"x":17055.046326528987,"y":26483.070867013637},"targetPosition":{"x":17041.960510319386,"y":26183.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Balances","id":"11523798-0639-4837-bef6-1e501f2f4d3d"}}},{"type":"Layer","name":"Distance To Event","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"fb70f5d1-5fc0-4145-82be-8757343aab6c","savedPayload":{"position":{"x":18698.806237131383,"y":25289.35640053908},"targetPosition":{"x":18687.806237131383,"y":25206.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"4552c373-413e-4cda-a2f1-d4c12bf75cf8","savedPayload":{"position":{"x":18625.806237131383,"y":25191.35640053908},"targetPosition":{"x":18687.806237131383,"y":25206.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b0598540-d0f8-4001-9675-343625559278","savedPayload":{"position":{"x":17028.874694109785,"y":26483.070867013637},"targetPosition":{"x":17041.960510319386,"y":26183.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Distance To Event","id":"d066d2a4-1082-4ab7-bcb5-8c09555e0489"}}},{"type":"Layer","name":"Episode Base Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"62d9c845-75d3-4e29-9343-f0e6dd5b545b","savedPayload":{"position":{"x":18630.806237131383,"y":25265.35640053908},"targetPosition":{"x":18643.806237131383,"y":25284.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"17795ddc-fe57-4248-98f4-dae961ae5939","savedPayload":{"position":{"x":18618.806237131383,"y":25367.35640053908},"targetPosition":{"x":18643.806237131383,"y":25284.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d903cd31-8d92-44cc-b85d-c76cce1a93ca","savedPayload":{"position":{"x":17002.802652653372,"y":26480.789858951222},"targetPosition":{"x":17041.960510319386,"y":26183.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Base Asset","id":"2d338ab2-1e4c-4afe-ab24-67d9f31b50fd"}}},{"type":"Layer","name":"Episode Quoted Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"ea21e09e-cecf-4669-a256-f995e44a83ad","savedPayload":{"position":{"x":18578.806237131383,"y":25379.35640053908},"targetPosition":{"x":18625.806237131383,"y":25337.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"c741203d-0a31-48e4-84ae-b1d0387a55cc","savedPayload":{"position":{"x":18713.806237131383,"y":25329.35640053908},"targetPosition":{"x":18625.806237131383,"y":25337.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"053d2b56-4aeb-49f9-8cfe-43a1fe4d2f3c","savedPayload":{"position":{"x":16977.028626137955,"y":26476.24520267506},"targetPosition":{"x":17041.960510319386,"y":26183.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Quoted Asset","id":"ee1dbbb3-cf97-4e92-a5b4-8700ae047a54"}}},{"type":"Layer","name":"Current Episode","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"10575ce1-994f-4745-90ce-68facc5d1c81","savedPayload":{"position":{"x":18624.806237131383,"y":25208.35640053908},"targetPosition":{"x":18645.806237131383,"y":25295.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"564a313a-4466-4d88-90ec-b7a5febbac91","savedPayload":{"position":{"x":18698.806237131383,"y":25195.35640053908},"targetPosition":{"x":18645.806237131383,"y":25295.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"94742a3f-ed56-4e49-8863-a73835230dea","savedPayload":{"position":{"x":16951.748770468104,"y":26469.471485763548},"targetPosition":{"x":17041.960510319386,"y":26183.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Episode","id":"d32a2b30-d8b8-4e06-ac41-82de8e22eb13"}}}],"layerFolders":[],"id":"fd4a5712-635c-461b-9215-25c3015c670b","savedPayload":{"position":{"x":17041.960510319386,"y":26183.35640053908},"targetPosition":{"x":17041.960510319386,"y":25883.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Strategy","project":"Superalgos","layers":[{"type":"Layer","name":"Current Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"92e7536b-7f7b-42f3-a5ff-1f213fc99a4d","savedPayload":{"position":{"x":18546.806237131383,"y":25032.35640053908},"targetPosition":{"x":18633.806237131383,"y":25105.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"6b53d818-c887-4b49-97e1-f34f57ac5d96","savedPayload":{"position":{"x":18655.806237131383,"y":25159.35640053908},"targetPosition":{"x":18633.806237131383,"y":25105.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"041ce3d2-746d-4493-9822-8cf57215fdbe","savedPayload":{"position":{"x":16777.15548060986,"y":26420.3278814278},"targetPosition":{"x":16891.960510319386,"y":26143.164021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Strategy","id":"75795607-4071-41da-8d46-da5152f424e8"}}},{"type":"Layer","name":"Last Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"a53bab0e-f6cb-4277-bdef-063cd91448b5","savedPayload":{"position":{"x":18690.806237131383,"y":25023.35640053908},"targetPosition":{"x":18721.806237131383,"y":25103.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"954f3a9f-cee2-4bc5-b781-2c866dfd2d78","savedPayload":{"position":{"x":18635.806237131383,"y":25146.35640053908},"targetPosition":{"x":18721.806237131383,"y":25103.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"dda0cca4-da9c-48ad-9552-20ea2987e5cb","savedPayload":{"position":{"x":16709.33208161677,"y":26381.170023761784},"targetPosition":{"x":16891.960510319386,"y":26143.164021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Strategy","id":"15dbd93b-0d60-4eff-a793-15ed2e05dbbc"}}}],"layerFolders":[],"id":"e17a459a-a25f-493d-b876-dc93bd2a4bce","savedPayload":{"position":{"x":16891.960510319386,"y":26143.164021674413},"targetPosition":{"x":17041.960510319386,"y":25883.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Current Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"aae2d3c9-7d16-4874-b0e4-35817793d45d","savedPayload":{"position":{"x":18636.806237131383,"y":25382.35640053908},"targetPosition":{"x":18605.806237131383,"y":25381.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"7c5cf0a1-46c3-42e2-9ef3-51844729055f","savedPayload":{"position":{"x":18572.806237131383,"y":25351.35640053908},"targetPosition":{"x":18605.806237131383,"y":25381.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c91e2bb2-eeae-400d-8e93-35303751d61d","savedPayload":{"position":{"x":16564.54057788037,"y":26239.862773247205},"targetPosition":{"x":16782.152889184053,"y":26033.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Position","id":"75bb0a5f-3441-4f9a-9af9-d5665a001af1"}}},{"type":"Layer","name":"Last Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e081f7a0-00c6-41bc-b4b1-f4168dc73718","savedPayload":{"position":{"x":18590.806237131383,"y":25279.35640053908},"targetPosition":{"x":18686.806237131383,"y":25347.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"03bbf94e-94fd-4ba7-a3ed-f8f2f58aad51","savedPayload":{"position":{"x":18783.806237131383,"y":25446.35640053908},"targetPosition":{"x":18686.806237131383,"y":25347.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cbc80511-33f1-43dc-a314-ad5d19b74a56","savedPayload":{"position":{"x":16534.915032597448,"y":26203.27827161653},"targetPosition":{"x":16782.152889184053,"y":26033.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Position","id":"451d1bfc-cc2f-49cd-a283-e0028e6612c7"}}},{"type":"Layer","name":"Stop Loss","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"7ab4e64f-ca3e-454d-81c2-ab26695b62f4","savedPayload":{"position":{"x":18804.806237131383,"y":25322.35640053908},"targetPosition":{"x":18745.806237131383,"y":25383.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"050ad17e-26bb-436d-9ef9-c2c0d928ae35","savedPayload":{"position":{"x":18736.806237131383,"y":25479.35640053908},"targetPosition":{"x":18745.806237131383,"y":25383.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ff0a81f6-1437-4dd3-b4aa-33172f17a7f6","savedPayload":{"position":{"x":16511.377303879097,"y":26162.50972958157},"targetPosition":{"x":16782.152889184053,"y":26033.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Stop Loss","id":"3625bc4a-bfc3-4de8-b0e3-3313fdbcf7e3"}}},{"type":"Layer","name":"Take Profit","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"1caa9abb-7a56-4f0e-9af6-5e7b341694e2","savedPayload":{"position":{"x":18759.806237131383,"y":25316.35640053908},"targetPosition":{"x":18745.806237131383,"y":25363.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"49056ce9-d01a-4af9-991e-9f3c281c4b9f","savedPayload":{"position":{"x":18727.806237131383,"y":25421.35640053908},"targetPosition":{"x":18745.806237131383,"y":25363.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"59455f05-d4fd-433b-82ef-c4261fde96f9","savedPayload":{"position":{"x":16494.506968723595,"y":26118.561003950257},"targetPosition":{"x":16782.152889184053,"y":26033.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Take Profit","id":"8ae185fe-147e-4377-9e73-f9468376ca73"}}}],"layerFolders":[],"id":"0c709217-e30f-490b-a024-ff3357808ab5","savedPayload":{"position":{"x":16782.152889184053,"y":26033.35640053908},"targetPosition":{"x":17041.960510319386,"y":25883.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Open Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"c7eda879-c027-4fcb-b8c8-6f3b4d4b4963","savedPayload":{"position":{"x":18587.806237131383,"y":25174.35640053908},"targetPosition":{"x":18661.806237131383,"y":25146.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"89563bbf-795f-4343-8c04-63b055cdd5e3","savedPayload":{"position":{"x":18564.806237131383,"y":25128.35640053908},"targetPosition":{"x":18661.806237131383,"y":25146.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5948baf5-5065-4608-b898-835c064ca801","savedPayload":{"position":{"x":16450.249534200084,"y":25953.390009695853},"targetPosition":{"x":16741.960510319386,"y":25883.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stage","id":"5c8e399d-8a15-4dd0-aa03-196111661c4e"}}},{"type":"Layer","name":"Close Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"4f37e71c-d698-4cc2-a05c-dbae40784334","savedPayload":{"position":{"x":18593.806237131383,"y":25176.35640053908},"targetPosition":{"x":18593.806237131383,"y":25214.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"d9cd8381-2dd5-4e00-8f84-d07623848861","savedPayload":{"position":{"x":18634.806237131383,"y":25227.35640053908},"targetPosition":{"x":18593.806237131383,"y":25214.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7d7f257f-b91c-4e61-9b73-6e2b649b72a0","savedPayload":{"position":{"x":16442.885310199446,"y":25906.894129257435},"targetPosition":{"x":16741.960510319386,"y":25883.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stage","id":"c5e583ec-17b6-4b81-ba73-052db231b245"}}},{"type":"Layer","name":"Trigger Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"5f5f3956-8af5-4724-ab04-a61cd1ae13ea","savedPayload":{"position":{"x":18775.806237131383,"y":25225.35640053908},"targetPosition":{"x":18770.806237131383,"y":25252.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"19a7335b-caf9-479d-bcef-9f1d6541fbd9","savedPayload":{"position":{"x":18722.806237131383,"y":25320.35640053908},"targetPosition":{"x":18770.806237131383,"y":25252.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0ccb7c8d-5f78-44ca-b611-9fad4204f645","savedPayload":{"position":{"x":16442.885310199446,"y":25859.818671820725},"targetPosition":{"x":16741.960510319386,"y":25883.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stage","id":"9df61698-db66-4c28-86f4-a6f2b49482ae"}}},{"type":"Layer","name":"Manage Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"303f0bc3-17c1-4c1c-b484-29a5746d3d85","savedPayload":{"position":{"x":18672.806237131383,"y":25148.35640053908},"targetPosition":{"x":18656.806237131383,"y":25137.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"5560c980-5ebc-4e09-9090-f74baa9b9424","savedPayload":{"position":{"x":18718.806237131383,"y":25147.35640053908},"targetPosition":{"x":18656.806237131383,"y":25137.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"89c9c223-e5f4-482e-bbd8-d6b86d2828e3","savedPayload":{"position":{"x":16450.249534200084,"y":25813.322791382307},"targetPosition":{"x":16741.960510319386,"y":25883.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stage","id":"674f4993-3b21-42b0-8490-2e18896c65f8"}}}],"layerFolders":[],"id":"e16d5ae2-bd71-4fa5-ac75-2a5cb0bb4ff1","savedPayload":{"position":{"x":16741.960510319386,"y":25883.35640053908},"targetPosition":{"x":17041.960510319386,"y":25883.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"fcd929c9-55d7-478f-9183-358b28e2a595","savedPayload":{"position":{"x":18692.806237131383,"y":25325.35640053908},"targetPosition":{"x":18765.806237131383,"y":25401.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"034a21cb-1070-4787-bd0e-346865db7493","savedPayload":{"position":{"x":18748.806237131383,"y":25440.35640053908},"targetPosition":{"x":18765.806237131383,"y":25401.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"af5aa298-89dd-4663-9b1d-e06e0ebe3e52","savedPayload":{"position":{"x":16490.973918948035,"y":25661.14277791639},"targetPosition":{"x":16782.152889184053,"y":25733.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"ccc95dde-7998-4093-b688-8a537252309c"}}},{"type":"Layer","name":"Market Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"36ecb329-1e00-48cc-a63b-a1472be533fb","savedPayload":{"position":{"x":18602.806237131383,"y":25391.35640053908},"targetPosition":{"x":18590.806237131383,"y":25362.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"8850e817-2598-49bb-8555-96ebbaf8bcdc","savedPayload":{"position":{"x":18562.806237131383,"y":25305.35640053908},"targetPosition":{"x":18590.806237131383,"y":25362.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f987c938-c422-4321-9690-946ab62e1ddf","savedPayload":{"position":{"x":16500.890151620853,"y":25628.995141163512},"targetPosition":{"x":16782.152889184053,"y":25733.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"7cd654af-5a5c-42f6-9b10-f246c3295ae0"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"3b3c5dce-525e-4851-896d-25a3e001c404","savedPayload":{"position":{"x":18781.806237131383,"y":25342.35640053908},"targetPosition":{"x":18741.806237131383,"y":25272.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"07e1a6e7-089a-440b-aa28-3116e8f497db","savedPayload":{"position":{"x":18779.806237131383,"y":25183.35640053908},"targetPosition":{"x":18741.806237131383,"y":25272.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e1b708cb-0796-44ec-8bb8-c14ce897825b","savedPayload":{"position":{"x":16514.34342641097,"y":25598.159907799098},"targetPosition":{"x":16782.152889184053,"y":25733.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"cbb0fe95-55e5-4909-b66d-612e6fb15f8e"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"2259c355-28b9-4e5b-80f2-b98d433d8cf6","savedPayload":{"position":{"x":18571.806237131383,"y":25387.35640053908},"targetPosition":{"x":18607.806237131383,"y":25305.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"e3b48c99-6607-4713-85af-d8e2b521bdd7","savedPayload":{"position":{"x":18612.806237131383,"y":25219.35640053908},"targetPosition":{"x":18607.806237131383,"y":25305.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4ff41d46-3e06-40be-b38b-60757aca4e73","savedPayload":{"position":{"x":16531.16456058213,"y":25569.02484877372},"targetPosition":{"x":16782.152889184053,"y":25733.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"a2647cfd-00eb-40c8-8d75-73d63dac5a73"}}},{"type":"Layer","name":"Last Market Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"cd9e11bf-45ee-442f-bd95-6fd044020f96","savedPayload":{"position":{"x":18620.806237131383,"y":25174.35640053908},"targetPosition":{"x":18680.806237131383,"y":25228.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"1126d3ae-f16a-4f6e-b6a0-90c8c377c270","savedPayload":{"position":{"x":18663.806237131383,"y":25307.35640053908},"targetPosition":{"x":18680.806237131383,"y":25228.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b6fe9f96-7322-4103-9429-75b5fb47e9cc","savedPayload":{"position":{"x":16551.142018612274,"y":25541.956354359176},"targetPosition":{"x":16782.152889184053,"y":25733.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Market Order","id":"5319405c-c588-4000-aacf-0250fec08afd"}}},{"type":"Layer","name":"Last Limit Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"172ec632-3e59-4f74-8a0f-70aa11170cc7","savedPayload":{"position":{"x":18678.806237131383,"y":25452.35640053908},"targetPosition":{"x":18670.806237131383,"y":25383.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"6d283eaf-5384-4fe8-8f9a-de540c1e1ae9","savedPayload":{"position":{"x":18737.806237131383,"y":25387.35640053908},"targetPosition":{"x":18670.806237131383,"y":25383.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"27a405ef-c0b6-4e3e-9a0b-8e746db8d3db","savedPayload":{"position":{"x":16574.024572375492,"y":25517.294826578243},"targetPosition":{"x":16782.152889184053,"y":25733.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Limit Order","id":"366c345a-26a0-438d-b39e-e5270cd06c22"}}}],"layerFolders":[],"id":"993d0bef-d79a-45aa-8467-16c0bfe6d3d3","savedPayload":{"position":{"x":16782.152889184053,"y":25733.35640053908},"targetPosition":{"x":17041.960510319386,"y":25883.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e3eeb986-18f1-4b84-9b76-f02b2ec7fb8a","savedPayload":{"position":{"x":17041.960510319386,"y":25883.35640053908},"targetPosition":{"x":17301.76813145472,"y":25733.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f8946868-67a4-4c02-b42f-efe8d964960e","savedPayload":{"position":{"x":17301.76813145472,"y":25733.35640053908},"targetPosition":{"x":17561.57575259005,"y":25583.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5dc41e25-7705-4740-94a8-1e1d1da5e437","savedPayload":{"position":{"x":17561.57575259005,"y":25583.35640053908},"targetPosition":{"x":17821.383373725384,"y":25433.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"caa36a7c-69b6-4863-a313-003d5af2d126"}}},"id":"d7eb470f-0bd9-403f-945d-d29a2571b0ea","savedPayload":{"position":{"x":17781.190994860717,"y":25283.35640053908},"targetPosition":{"x":18040.99861599605,"y":25133.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Trading System","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading System","project":"Superalgos","layers":[{"type":"Layer","name":"Trading System Errors","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"a3be6132-d636-4371-8e72-c3b758202efd","savedPayload":{"position":{"x":19104.806237131383,"y":25137.35640053908},"targetPosition":{"x":19018.806237131383,"y":25067.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"4063bd7b-7bcd-47b2-a8ea-4728e901f965","savedPayload":{"position":{"x":19076.806237131383,"y":24969.35640053908},"targetPosition":{"x":19018.806237131383,"y":25067.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fb3bd045-a16d-4107-854f-d96c9fcafb88","savedPayload":{"position":{"x":19018.806237131383,"y":25067.35640053908},"targetPosition":{"x":19039.806237131383,"y":25102.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Errors","id":"222da1c1-666b-4c9d-b199-e3fe0b985ab7"}}},{"type":"Layer","name":"Trading System Highlights","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"280ba8bf-f856-44e1-a078-7c1f60059887","savedPayload":{"position":{"x":19195.806237131383,"y":25181.35640053908},"targetPosition":{"x":19121.806237131383,"y":25107.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"f0b564fc-fdfc-487c-bce5-735db4cfba47","savedPayload":{"position":{"x":19139.806237131383,"y":25053.35640053908},"targetPosition":{"x":19121.806237131383,"y":25107.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d2f56a6c-4633-4124-a276-89f298cfcc1a","savedPayload":{"position":{"x":19121.806237131383,"y":25107.35640053908},"targetPosition":{"x":19039.806237131383,"y":25102.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Highlights","id":"4801de44-7391-4927-b748-9a4e5817e0fd"}}},{"type":"Layer","name":"Trading System Values","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"15338c81-c705-4a91-98bc-820b21d29b2c","savedPayload":{"position":{"x":19084.806237131383,"y":25086.35640053908},"targetPosition":{"x":19118.806237131383,"y":25123.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"77e8ae7e-b903-44ce-a7e1-7736ead8a1f5","savedPayload":{"position":{"x":19057.806237131383,"y":25144.35640053908},"targetPosition":{"x":19118.806237131383,"y":25123.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"de0d2ef0-a704-48f2-afbd-c12f4024e4c4","savedPayload":{"position":{"x":19118.806237131383,"y":25123.35640053908},"targetPosition":{"x":19039.806237131383,"y":25102.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Values","id":"a9bdf073-c8ca-4a54-884e-d5daaab27ecd"}}},{"type":"Layer","name":"Trading System Status","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"ed68ac6f-ac78-4698-a67a-0189ed03ffda","savedPayload":{"position":{"x":18971.806237131383,"y":25223.35640053908},"targetPosition":{"x":19011.806237131383,"y":25191.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"56392813-19fc-40f2-baed-7bd973c6b325","savedPayload":{"position":{"x":19057.806237131383,"y":25256.35640053908},"targetPosition":{"x":19011.806237131383,"y":25191.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c02ea91d-876b-4267-8cfd-42189026c8c6","savedPayload":{"position":{"x":19011.806237131383,"y":25191.35640053908},"targetPosition":{"x":19039.806237131383,"y":25102.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Status","id":"f9624574-2c30-47c5-9602-78110959a8e8"}}},{"type":"Layer","name":"Trading System Progress","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"455fea0a-be5a-48a8-8902-5e18597f8ad0","savedPayload":{"position":{"x":19137.806237131383,"y":25107.35640053908},"targetPosition":{"x":19123.806237131383,"y":25022.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"d1eacd6a-bbef-41cd-9e7b-d5533c1323ba","savedPayload":{"position":{"x":19144.806237131383,"y":24978.35640053908},"targetPosition":{"x":19123.806237131383,"y":25022.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8694b566-c0fc-4ee0-a542-8365418b55d5","savedPayload":{"position":{"x":19123.806237131383,"y":25022.35640053908},"targetPosition":{"x":19039.806237131383,"y":25102.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Progress","id":"e31d3359-1ce1-47c9-abd4-b8c8b0a09b1b"}}},{"type":"Layer","name":"Trading System Running","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"71d41008-e3e8-4184-8499-159c5830ea80","savedPayload":{"position":{"x":19073.806237131383,"y":25098.35640053908},"targetPosition":{"x":19092.806237131383,"y":25078.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"4e31d85c-324b-4a3f-9548-ad50fb46c3ed","savedPayload":{"position":{"x":19079.806237131383,"y":25102.35640053908},"targetPosition":{"x":19092.806237131383,"y":25078.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0b5b579a-a2cd-415a-9cf5-41025863bdf9","savedPayload":{"position":{"x":19092.806237131383,"y":25078.35640053908},"targetPosition":{"x":19039.806237131383,"y":25102.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Running","id":"2291e334-3608-48e5-a93a-1c48cc08fb2e"}}},{"type":"Layer","name":"Trading System Announcements","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"723a3ebd-17e6-4da1-91e4-48f07367c744","savedPayload":{"position":{"x":18948.806237131383,"y":25186.35640053908},"targetPosition":{"x":19011.806237131383,"y":25178.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"af921170-182b-47f6-a4d4-2b00e5b8ffff","savedPayload":{"position":{"x":18940.806237131383,"y":25254.35640053908},"targetPosition":{"x":19011.806237131383,"y":25178.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"26eec0b0-2080-467e-8d86-9ecde152bca5","savedPayload":{"position":{"x":19011.806237131383,"y":25178.35640053908},"targetPosition":{"x":19039.806237131383,"y":25102.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Announcements","id":"911f973d-6f74-49fd-aec9-47c2b56c4a5a"}}},{"type":"Layer","name":"Trading System Warnings","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e596e327-1e17-49ea-8c24-6f9945c56007","savedPayload":{"position":{"x":18882.806237131383,"y":25067.35640053908},"targetPosition":{"x":18954.806237131383,"y":25025.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"d349e11f-c5a5-45c1-8220-51d852ee290e","savedPayload":{"position":{"x":18882.806237131383,"y":25020.35640053908},"targetPosition":{"x":18954.806237131383,"y":25025.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3bb0d7d8-49ad-4b1b-8bdf-df04cb24fc1f","savedPayload":{"position":{"x":18954.806237131383,"y":25025.35640053908},"targetPosition":{"x":19039.806237131383,"y":25102.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Warnings","id":"27a1feb4-ec9e-4f3a-aec7-508de46470d1"}}},{"type":"Layer","name":"Trading System Infos","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e85a7af5-dc3a-4146-94d5-0336fe4e1bf6","savedPayload":{"position":{"x":19122.806237131383,"y":25062.35640053908},"targetPosition":{"x":19042.806237131383,"y":25048.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"b9a4e27d-2ca1-4064-8430-1e4a2921f6d5","savedPayload":{"position":{"x":19110.806237131383,"y":25144.35640053908},"targetPosition":{"x":19042.806237131383,"y":25048.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7889b693-6dc3-4af5-be22-6bb38e0a2d5a","savedPayload":{"position":{"x":19042.806237131383,"y":25048.35640053908},"targetPosition":{"x":19039.806237131383,"y":25102.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Infos","id":"e2ad1c02-06f9-4572-9e18-840969838be3"}}}],"layerFolders":[],"id":"ee4f8578-a967-4b30-8fa0-6757d6cd603a","savedPayload":{"position":{"x":19039.806237131383,"y":25102.35640053908},"targetPosition":{"x":18945.806237131383,"y":25135.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f24a1c14-6ce4-4bd7-b8e5-45670c12ca58","savedPayload":{"position":{"x":18945.806237131383,"y":25135.35640053908},"targetPosition":{"x":18889.806237131383,"y":25071.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"574cf596-4546-4af9-a4c9-9440e0b61716","savedPayload":{"position":{"x":18889.806237131383,"y":25071.35640053908},"targetPosition":{"x":18843.806237131383,"y":25068.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"caa36a7c-69b6-4863-a313-003d5af2d126"}}},"id":"8c1c2c71-78e0-4592-9f6d-d5ddedab8267","savedPayload":{"position":{"x":17743.565157583907,"y":25172.514258205094},"targetPosition":{"x":18040.99861599605,"y":25133.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Simulation Objects","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Simulation Objects","project":"Superalgos","layers":[{"type":"Layer","name":"Episodes","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Episode Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f485eaeb-cdd9-41e4-acba-a4c2a8766fa3","savedPayload":{"position":{"x":18655.806237131383,"y":24886.35640053908},"targetPosition":{"x":18696.806237131383,"y":24871.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Object","id":"bcbb3368-ea4c-466b-8423-8f0517ad35da"}}},{"type":"Layer Panel","name":"Episode Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"8049cfb1-6d0b-49cc-8e99-3025617e386e","savedPayload":{"position":{"x":18656.806237131383,"y":24934.35640053908},"targetPosition":{"x":18696.806237131383,"y":24871.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Base Asset","id":"b18a5300-448b-4165-9b36-dc5ee37e58cd"}}},{"type":"Layer Panel","name":"Episode Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"af060621-8947-4779-bc18-940770541bb6","savedPayload":{"position":{"x":18740.806237131383,"y":24930.35640053908},"targetPosition":{"x":18696.806237131383,"y":24871.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Quoted Asset","id":"dbdd55de-9279-48ef-a0b1-e50024f284e9"}}}],"id":"ec108c59-bd39-4993-9373-9f673192bf77","savedPayload":{"position":{"x":18696.806237131383,"y":24871.35640053908},"targetPosition":{"x":18666.806237131383,"y":24968.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e85e82d6-be5d-45f1-af6f-b406816ee177","savedPayload":{"position":{"x":18566.806237131383,"y":24963.35640053908},"targetPosition":{"x":18651.806237131383,"y":24997.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"7237c558-a0e5-46c6-8cf5-ebc555e98efb"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1ed4707d-828c-4f1e-883a-d56fddcf556d","savedPayload":{"position":{"x":18668.806237131383,"y":25071.35640053908},"targetPosition":{"x":18651.806237131383,"y":24997.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"4958982a-b51a-40ef-8764-dd5451cf9837"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"7902f47d-0e77-4ef3-94be-f2ce9fbd87c5","savedPayload":{"position":{"x":18650.806237131383,"y":24906.35640053908},"targetPosition":{"x":18651.806237131383,"y":24997.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"86fefa5e-8de8-4d00-a632-e1827ce60030"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"9c3f7868-33fd-4528-ae22-66338da65b07","savedPayload":{"position":{"x":18687.806237131383,"y":25012.35640053908},"targetPosition":{"x":18651.806237131383,"y":24997.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"79a3b846-3b23-4c01-9aa1-cedcebb5ca03"}}}],"id":"b7abca68-e834-42a2-a3f3-e8584a3f7eb7","savedPayload":{"position":{"x":18651.806237131383,"y":24997.35640053908},"targetPosition":{"x":18666.806237131383,"y":24968.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8642bb1f-584a-4de5-b39d-50cb916a0830","savedPayload":{"position":{"x":16622.080003313833,"y":24972.77354641605},"targetPosition":{"x":16922.080003313833,"y":24972.77354641605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episodes","id":"c5d430c4-b651-44fa-ac66-61b909c1a693"}}},{"type":"Layer","name":"Strategies","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Strategy Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5c5a6ca5-2357-4d16-9088-84a73c30683c","savedPayload":{"position":{"x":18694.806237131383,"y":25079.35640053908},"targetPosition":{"x":18604.806237131383,"y":25016.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Strategy Object","id":"b256b76c-3834-4d62-aa56-f42cce9f47e9"}}}],"id":"792643d0-dec5-4aac-9458-839a27ddae6b","savedPayload":{"position":{"x":18604.806237131383,"y":25016.35640053908},"targetPosition":{"x":18640.806237131383,"y":25078.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"59bb7d48-ae83-4e1b-aee4-c11e887ee5b2","savedPayload":{"position":{"x":18656.806237131383,"y":25006.35640053908},"targetPosition":{"x":18617.806237131383,"y":25095.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"9ae59a68-71fd-4ec8-9a70-da743f33baee"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2f9173b8-3bfa-48b2-870e-7923131d5a41","savedPayload":{"position":{"x":18620.806237131383,"y":25045.35640053908},"targetPosition":{"x":18617.806237131383,"y":25095.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"504f327c-a08d-4c3d-8e77-850299cc30ed"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"deeee695-d9ae-4019-8a65-362dfa3ece68","savedPayload":{"position":{"x":18713.806237131383,"y":25014.35640053908},"targetPosition":{"x":18617.806237131383,"y":25095.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"f9500afd-e0f4-45d3-9647-45ec778554e8"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"9ea9270b-a7ab-44a2-aaa5-dffdf9895d7b","savedPayload":{"position":{"x":18587.806237131383,"y":25032.35640053908},"targetPosition":{"x":18617.806237131383,"y":25095.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"354102dd-fd58-4f84-8e90-0d891defa0c8"}}}],"id":"c906d295-4d0c-4e4f-89b9-357cc5ca1fea","savedPayload":{"position":{"x":18617.806237131383,"y":25095.35640053908},"targetPosition":{"x":18640.806237131383,"y":25078.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"efb096af-d433-4532-8eb1-fa90ae790287","savedPayload":{"position":{"x":16624.64654490169,"y":24933.615688750036},"targetPosition":{"x":16922.080003313833,"y":24972.77354641605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"7e14ad62-ecec-410b-9863-2fb923bcf0bc"}}}],"layerFolders":[{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Market Buy Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"fc6fe017-5c8b-4dab-8ff5-efa4e1d19208","savedPayload":{"position":{"x":18557.806237131383,"y":25052.35640053908},"targetPosition":{"x":18592.806237131383,"y":25141.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order","id":"12929733-5964-4948-877b-b1edda37162a"}}},{"type":"Layer Panel","name":"Market Buy Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"af107e36-e9b9-44fb-939e-5faf751491fa","savedPayload":{"position":{"x":18687.806237131383,"y":25043.35640053908},"targetPosition":{"x":18592.806237131383,"y":25141.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order Stats","id":"81a88e44-189c-44ec-9607-cb1e4de8baa1"}}},{"type":"Layer Panel","name":"Market Buy Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"9ce2a9e2-3eab-441e-a13b-9b5b8f0d03d5","savedPayload":{"position":{"x":18597.806237131383,"y":25129.35640053908},"targetPosition":{"x":18592.806237131383,"y":25141.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order Base Asset","id":"608a9068-7324-4f4c-8fdd-d9d8e42e26c6"}}},{"type":"Layer Panel","name":"Market Buy Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"d4e2f44a-8034-417c-8c74-160fa0a1c12a","savedPayload":{"position":{"x":18518.806237131383,"y":25240.35640053908},"targetPosition":{"x":18592.806237131383,"y":25141.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order Quoted Asset","id":"1a55af5e-821d-4421-80d2-2c543d25ea1a"}}}],"id":"bdba0a21-4d43-4297-a3e2-fbac04b68614","savedPayload":{"position":{"x":18592.806237131383,"y":25141.35640053908},"targetPosition":{"x":18580.806237131383,"y":25073.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"8850bfff-5f77-42b1-9931-5b9ec6839565","savedPayload":{"position":{"x":18562.806237131383,"y":25065.35640053908},"targetPosition":{"x":18630.806237131383,"y":25034.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"6217d021-ea5b-4b20-b093-758a2d2fb5d4"}}}],"id":"25cfaa29-2669-42d3-a311-75b2bc92b674","savedPayload":{"position":{"x":18630.806237131383,"y":25034.35640053908},"targetPosition":{"x":18580.806237131383,"y":25073.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cbdf795a-5968-49e8-97ee-7c24cc15c4c9","savedPayload":{"position":{"x":16332.405057934444,"y":24887.27474839293},"targetPosition":{"x":16632.302255427112,"y":24895.127832885293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"e83e89c2-f57e-47e5-96c7-5b5c660cdef0"}}},{"type":"Layer","name":"Market Sell Orders","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Market Sell Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"dc962a8f-3a07-4654-b03a-2ec5f626fdd1","savedPayload":{"position":{"x":18510.806237131383,"y":24872.35640053908},"targetPosition":{"x":18584.806237131383,"y":24945.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order","id":"a5856620-e9ce-4ee1-830c-5b5dc45e9139"}}},{"type":"Layer Panel","name":"Market Sell Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"cf00902f-93cb-4047-afbe-ad9169018e10","savedPayload":{"position":{"x":18594.806237131383,"y":24981.35640053908},"targetPosition":{"x":18584.806237131383,"y":24945.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order Stats","id":"fb23f6bb-8383-4276-8a77-5180e622653a"}}},{"type":"Layer Panel","name":"Market Sell Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"c983e763-b101-4886-a062-9c441aff5e79","savedPayload":{"position":{"x":18544.806237131383,"y":25019.35640053908},"targetPosition":{"x":18584.806237131383,"y":24945.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order Base Asset","id":"3e9e4e57-bd41-41f5-8d52-c92d3a707e80"}}},{"type":"Layer Panel","name":"Market Sell Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"48e3171d-73b8-4bd1-b934-54b306345513","savedPayload":{"position":{"x":18658.806237131383,"y":24851.35640053908},"targetPosition":{"x":18584.806237131383,"y":24945.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order Quoted Asset","id":"51d59c30-3a02-4d74-aa62-f1524ea544ee"}}}],"id":"cff65643-3313-43df-9719-f8e1907152e5","savedPayload":{"position":{"x":18584.806237131383,"y":24945.35640053908},"targetPosition":{"x":18675.806237131383,"y":24918.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"23fea1d3-2fad-4d5d-92ed-ae6884222264","savedPayload":{"position":{"x":18580.806237131383,"y":25017.35640053908},"targetPosition":{"x":18620.806237131383,"y":24921.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"5b8dcb5c-6b20-4edf-aae5-1c526cdca536"}}}],"id":"ffe85aef-cd93-41dd-86a0-994e0e39a83a","savedPayload":{"position":{"x":18620.806237131383,"y":24921.35640053908},"targetPosition":{"x":18675.806237131383,"y":24918.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9f57a18f-446f-480b-b064-1b85799df088","savedPayload":{"position":{"x":16337.325783157925,"y":24840.45717523765},"targetPosition":{"x":16632.302255427112,"y":24895.127832885293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"9c2155e6-b688-4f18-932d-ee9e70be5158"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Limit Buy Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"932aca19-3a50-4977-82af-9494a9beabc2","savedPayload":{"position":{"x":18539.806237131383,"y":24980.35640053908},"targetPosition":{"x":18476.806237131383,"y":25060.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order","id":"48ec80a7-6f68-4284-9bb5-f04ce3c1052b"}}},{"type":"Layer Panel","name":"Limit Buy Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"d4223fee-a517-430f-bbb8-535955388352","savedPayload":{"position":{"x":18512.806237131383,"y":25081.35640053908},"targetPosition":{"x":18476.806237131383,"y":25060.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order Stats","id":"90bd6690-de93-4158-a17f-728c28defc38"}}},{"type":"Layer Panel","name":"Limit Buy Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"39bfcd41-a2d6-4d88-8a1f-786c2494e88e","savedPayload":{"position":{"x":18467.806237131383,"y":25148.35640053908},"targetPosition":{"x":18476.806237131383,"y":25060.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order Base Asset","id":"8504b6e3-83c8-45ea-959a-41303f9d4274"}}},{"type":"Layer Panel","name":"Limit Buy Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5c147468-84e5-4d7b-8b11-1d7b56efed2c","savedPayload":{"position":{"x":18559.806237131383,"y":24988.35640053908},"targetPosition":{"x":18476.806237131383,"y":25060.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order Quoted Asset","id":"b60e7e48-8ae7-4701-848b-8faa9ba58c11"}}}],"id":"5a850ef2-aea2-4a48-958d-c9042275308a","savedPayload":{"position":{"x":18476.806237131383,"y":25060.35640053908},"targetPosition":{"x":18576.806237131383,"y":25071.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Status Open","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"0247d687-13d8-4d7a-9af1-6798efb10e68","savedPayload":{"position":{"x":18692.806237131383,"y":25134.35640053908},"targetPosition":{"x":18624.806237131383,"y":25138.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Open","id":"7be8ba85-07e7-4800-8988-ce76d2105b73"}}},{"type":"Layer Polygon","name":"Status Closed Cancel Event","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"24c56120-d6f4-4610-858b-1e258f530ede","savedPayload":{"position":{"x":18716.806237131383,"y":25060.35640053908},"targetPosition":{"x":18624.806237131383,"y":25138.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Cancel Event","id":"ab881143-5631-4b27-a97a-94138dbd370d"}}},{"type":"Layer Polygon","name":"Status Closed Filled","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"0936157b-3b86-4ac9-8fc4-093e5cac50a5","savedPayload":{"position":{"x":18717.806237131383,"y":25057.35640053908},"targetPosition":{"x":18624.806237131383,"y":25138.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Filled","id":"a54693cf-8ec1-469d-afb9-2a724e4f6af7"}}}],"id":"67578e4a-b2bd-449b-bfe2-165a819fc908","savedPayload":{"position":{"x":18624.806237131383,"y":25138.35640053908},"targetPosition":{"x":18576.806237131383,"y":25071.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d80e0e4d-05d2-414c-8f55-666d793a2e7e","savedPayload":{"position":{"x":16349.509808099458,"y":24794.98577511516},"targetPosition":{"x":16632.302255427112,"y":24895.127832885293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"7bfeecb1-c28a-455a-91f1-d88834d732b6"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Limit Sell Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"d0d6c0bc-a6bc-49ce-be38-082d35294e01","savedPayload":{"position":{"x":18573.806237131383,"y":25081.35640053908},"targetPosition":{"x":18623.806237131383,"y":25132.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order","id":"5d485d15-9919-42cc-9399-54c679d7085d"}}},{"type":"Layer Panel","name":"Limit Sell Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"21592e4f-4c29-4d9b-bd12-89e254ce1e04","savedPayload":{"position":{"x":18572.806237131383,"y":25138.35640053908},"targetPosition":{"x":18623.806237131383,"y":25132.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order Stats","id":"db2f6e9c-ce79-4465-a0dc-8ea02fac26b7"}}},{"type":"Layer Panel","name":"Limit Sell Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"aa151cd9-4ec0-4ce9-9be2-1e8f6a79fa61","savedPayload":{"position":{"x":18629.806237131383,"y":25038.35640053908},"targetPosition":{"x":18623.806237131383,"y":25132.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order Base Asset","id":"3e34000e-ad8c-4049-9eee-89e8ea362a0f"}}},{"type":"Layer Panel","name":"Limit Sell Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6455173e-3e6f-42d5-86a6-929b171188bf","savedPayload":{"position":{"x":18702.806237131383,"y":25077.35640053908},"targetPosition":{"x":18623.806237131383,"y":25132.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order Quoted Asset","id":"ae18b041-f16e-4d96-8a83-56845dddf64a"}}}],"id":"1f6548c6-325a-4efc-a0c7-ce91035091ee","savedPayload":{"position":{"x":18623.806237131383,"y":25132.35640053908},"targetPosition":{"x":18605.806237131383,"y":25080.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Status Open","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2de6feec-4bee-4004-9de7-2d772de52f54","savedPayload":{"position":{"x":18737.806237131383,"y":25156.35640053908},"targetPosition":{"x":18667.806237131383,"y":25144.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Open","id":"186d1b59-7d04-4b40-83c9-acc361b8a12a"}}},{"type":"Layer Polygon","name":"Status Closed Cancel Event","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"80e78841-c8c6-4b6c-98f3-2e01bcc7148d","savedPayload":{"position":{"x":18748.806237131383,"y":25112.35640053908},"targetPosition":{"x":18667.806237131383,"y":25144.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Cancel Event","id":"8e993263-dbfc-4d41-864a-9470e70d7e4f"}}},{"type":"Layer Polygon","name":"Status Closed Filled","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6792702e-bf0b-4ca1-a880-6dbb2d8b2267","savedPayload":{"position":{"x":18660.806237131383,"y":25217.35640053908},"targetPosition":{"x":18667.806237131383,"y":25144.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Filled","id":"bf0751d6-fdb2-4e66-a39c-2bd99252bd60"}}}],"id":"d03901c7-9b57-43f8-9959-2f16b33cd510","savedPayload":{"position":{"x":18667.806237131383,"y":25144.35640053908},"targetPosition":{"x":18605.806237131383,"y":25080.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a138bca1-817c-4ace-94f9-35b97d11d37c","savedPayload":{"position":{"x":16368.657121628523,"y":24751.98020480741},"targetPosition":{"x":16632.302255427112,"y":24895.127832885293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"923f8e15-9a79-41d6-957c-42360847456d"}}}],"layerFolders":[],"id":"75c312af-3483-4c87-81c8-3c695cd05d53","savedPayload":{"position":{"x":16632.302255427112,"y":24895.127832885293},"targetPosition":{"x":16922.080003313833,"y":24972.77354641605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Trigger Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Trigger Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"46a0d7d2-9b8b-4c3a-86e8-f81536dcacf6","savedPayload":{"position":{"x":18770.806237131383,"y":24968.35640053908},"targetPosition":{"x":18698.806237131383,"y":25001.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Trigger Stage Object","id":"c10b9b7b-04d8-460b-9dcc-2eaed24e17df"}}}],"id":"dae22ddb-f5a9-419a-9a1f-1e153b102cd1","savedPayload":{"position":{"x":18698.806237131383,"y":25001.35640053908},"targetPosition":{"x":18725.806237131383,"y":25031.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"206590c5-6972-4f70-b0cf-4de2b7f3669f","savedPayload":{"position":{"x":18704.806237131383,"y":25165.35640053908},"targetPosition":{"x":18768.806237131383,"y":25118.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"9e88f3a0-09ad-44fd-a84e-731228860e66"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f7b6d166-1386-4c1c-9aa3-a5c2547da231","savedPayload":{"position":{"x":18712.806237131383,"y":25048.35640053908},"targetPosition":{"x":18768.806237131383,"y":25118.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"e2e18af7-af5f-4634-b8a4-4fabd2ddd7a5"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5019557b-2234-433f-b008-946e5023e7e4","savedPayload":{"position":{"x":18854.806237131383,"y":25167.35640053908},"targetPosition":{"x":18768.806237131383,"y":25118.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"08d916aa-6d2d-497b-8738-9b0966e3901e"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"fc15defe-2a29-46ab-a731-f33f543c1fb7","savedPayload":{"position":{"x":18792.806237131383,"y":25097.35640053908},"targetPosition":{"x":18768.806237131383,"y":25118.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"70de0f73-5a2d-4a5a-a5f7-1863f192a14d"}}}],"id":"a7d1c48e-58f1-4d67-87a5-2bf2c7bdd9cb","savedPayload":{"position":{"x":18768.806237131383,"y":25118.35640053908},"targetPosition":{"x":18725.806237131383,"y":25031.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bf1f84d9-a016-456d-9b75-fa26daaac298","savedPayload":{"position":{"x":16454.155919651643,"y":24603.891942645303},"targetPosition":{"x":16709.94796895787,"y":24760.641512060087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stages","id":"923d6695-c25d-42bd-aa9c-4fc793207e7c"}}},{"type":"Layer","name":"Open Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Open Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5611b3c8-0c1f-4230-a564-2c4aeb0f97bd","savedPayload":{"position":{"x":18706.806237131383,"y":24924.35640053908},"targetPosition":{"x":18623.806237131383,"y":24981.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Open Stage Object","id":"be56e169-d089-4aea-a18a-c01cf16a3485"}}}],"id":"1dbeb8d7-88fb-4fb8-bbee-362ce0458b7c","savedPayload":{"position":{"x":18623.806237131383,"y":24981.35640053908},"targetPosition":{"x":18640.806237131383,"y":24979.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6019ccf1-bffb-4d3c-96be-cf07179ad05d","savedPayload":{"position":{"x":18591.806237131383,"y":24983.35640053908},"targetPosition":{"x":18565.806237131383,"y":24957.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"21db891e-4c47-4a5a-88a5-036297086138"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"68540b14-2c1d-47f7-a75d-b8c9a7ed5694","savedPayload":{"position":{"x":18530.806237131383,"y":24912.35640053908},"targetPosition":{"x":18565.806237131383,"y":24957.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"2a3d0d93-13d9-4a9e-8d32-c0aa5d7ab1e3"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"76359a2c-b5f5-4778-8fe7-ed48d57ac891","savedPayload":{"position":{"x":18528.806237131383,"y":24986.35640053908},"targetPosition":{"x":18565.806237131383,"y":24957.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"616f49d0-daaa-4b82-be0d-56504b402616"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5d6f9bac-ae70-461c-992d-7347bb40eb38","savedPayload":{"position":{"x":18548.806237131383,"y":25007.35640053908},"targetPosition":{"x":18565.806237131383,"y":24957.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"0fab39ff-8caf-45f8-8650-33d7a65fa6e1"}}}],"id":"1fa5145f-7881-4997-90b8-541fdfb69e92","savedPayload":{"position":{"x":18565.806237131383,"y":24957.35640053908},"targetPosition":{"x":18640.806237131383,"y":24979.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"48d5f700-f4a2-46db-9ac9-d7fa0ecb791e","savedPayload":{"position":{"x":16481.82617927786,"y":24565.80709756103},"targetPosition":{"x":16709.94796895787,"y":24760.641512060087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stages","id":"7947d593-883c-47c8-b7fa-f02296ba53ef"}}},{"type":"Layer","name":"Manage Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Manage Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"62918302-479a-41f2-b709-d23a29df9062","savedPayload":{"position":{"x":18415.806237131383,"y":24847.35640053908},"targetPosition":{"x":18492.806237131383,"y":24907.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Manage Stage Object","id":"3db5604f-cacf-4c87-b1ea-5aa364bf9f48"}}}],"id":"b4ecf58b-c16b-4240-ab75-cb1d25d81310","savedPayload":{"position":{"x":18492.806237131383,"y":24907.35640053908},"targetPosition":{"x":18591.806237131383,"y":24914.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"877f31c9-8762-43fe-ab77-c7c4fb530026","savedPayload":{"position":{"x":18591.806237131383,"y":24945.35640053908},"targetPosition":{"x":18495.806237131383,"y":24851.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"43435aed-68cb-4a56-88c4-2574d91f5b32"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"bab23253-c54a-4b9b-9495-21e4d99166c0","savedPayload":{"position":{"x":18547.806237131383,"y":24944.35640053908},"targetPosition":{"x":18495.806237131383,"y":24851.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"904be022-f1e2-475e-9115-88224353cfa2"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"62b238ab-30ef-492b-ad5b-6fbecece9502","savedPayload":{"position":{"x":18562.806237131383,"y":24823.35640053908},"targetPosition":{"x":18495.806237131383,"y":24851.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"4c74d4d8-d0a4-4581-bee7-36485d7a91a5"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f6f66fca-9fa4-4722-8635-cc78a063f996","savedPayload":{"position":{"x":18504.806237131383,"y":24826.35640053908},"targetPosition":{"x":18495.806237131383,"y":24851.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"9fc6d2c4-a67b-42e8-841b-7523f7ab4962"}}}],"id":"6556054e-fa91-478b-af23-37ea8e9228a7","savedPayload":{"position":{"x":18495.806237131383,"y":24851.35640053908},"targetPosition":{"x":18591.806237131383,"y":24914.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2b29baee-d4c5-47cd-b077-24f1a09bf767","savedPayload":{"position":{"x":16515.113554458814,"y":24532.51972238008},"targetPosition":{"x":16709.94796895787,"y":24760.641512060087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stages","id":"2ff568f3-d4bb-4ab8-b373-f98b98dcde72"}}},{"type":"Layer","name":"Close Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Close Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e7efe58f-05ed-4288-9ef5-88d34c854bca","savedPayload":{"position":{"x":18686.806237131383,"y":24892.35640053908},"targetPosition":{"x":18684.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Close Stage Object","id":"069885e7-351f-45dc-8423-113db65b9592"}}}],"id":"7c965a41-b615-4a1d-a16f-d52bfad4d56d","savedPayload":{"position":{"x":18684.806237131383,"y":24983.35640053908},"targetPosition":{"x":18716.806237131383,"y":25022.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1ddd60b4-2f0f-4b7a-b972-4ebec279be34","savedPayload":{"position":{"x":18559.806237131383,"y":25084.35640053908},"targetPosition":{"x":18651.806237131383,"y":25108.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"9463d512-21f5-48c1-8cd6-b14747b338cf"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f06ffc40-9ffb-4652-abf9-be8c1a76b0f9","savedPayload":{"position":{"x":18682.806237131383,"y":25143.35640053908},"targetPosition":{"x":18651.806237131383,"y":25108.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"c3249cad-9f26-4ff2-ab0d-968c66bb7f2d"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a07cdd6c-4abd-4455-b411-e8bcf3c42f66","savedPayload":{"position":{"x":18744.806237131383,"y":25154.35640053908},"targetPosition":{"x":18651.806237131383,"y":25108.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"dbd9d421-d90c-4ab8-a26b-c2254d7abec1"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"3a1515c0-452d-446e-a0f9-e359a8d89719","savedPayload":{"position":{"x":18697.806237131383,"y":25207.35640053908},"targetPosition":{"x":18651.806237131383,"y":25108.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"a5e40c24-183d-4896-97b0-f9f0f104c240"}}}],"id":"cc5d1005-05a4-4952-9aa8-66964fe7cd1a","savedPayload":{"position":{"x":18651.806237131383,"y":25108.35640053908},"targetPosition":{"x":18716.806237131383,"y":25022.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"eb33f95e-8563-45e4-bc53-9ff62bfb9668","savedPayload":{"position":{"x":16553.198399543086,"y":24504.84946275386},"targetPosition":{"x":16709.94796895787,"y":24760.641512060087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stages","id":"b0af2801-1ab3-4492-8468-dea73b3602ff"}}}],"layerFolders":[],"id":"748c307e-3bc1-4bf2-9b63-866b1a6022da","savedPayload":{"position":{"x":16709.94796895787,"y":24760.641512060087},"targetPosition":{"x":16922.080003313833,"y":24972.77354641605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Positions","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Position Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"d91e193b-c4cc-4e03-a2f6-4e0c157f20cd","savedPayload":{"position":{"x":18703.806237131383,"y":24991.35640053908},"targetPosition":{"x":18638.806237131383,"y":24922.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Object","id":"3d274e02-8896-4311-a0c8-9041b6507090"}}},{"type":"Layer Panel","name":"Position Combined Statistics","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"69c5a6dc-fef1-4d84-a2f0-9b783827c028","savedPayload":{"position":{"x":18694.806237131383,"y":24876.35640053908},"targetPosition":{"x":18638.806237131383,"y":24922.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Combined Statistics","id":"05d6bb3e-f975-471f-be1f-3215025ce6fe"}}}],"id":"bcddcb8c-ceb3-476f-8522-31a86c7e791e","savedPayload":{"position":{"x":18638.806237131383,"y":24922.35640053908},"targetPosition":{"x":18619.806237131383,"y":24984.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Entry Target Rate Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a73509d2-3698-4384-bcbc-da73ed4f75bf","savedPayload":{"position":{"x":18653.806237131383,"y":24919.35640053908},"targetPosition":{"x":18598.806237131383,"y":24997.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Entry Target Rate Line","id":"543ebae2-5624-49ad-a00f-df63335e92a9"}}},{"type":"Layer Polygon","name":"Exit Target Rate Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e9538585-2117-498b-b717-14d8822357ed","savedPayload":{"position":{"x":18564.806237131383,"y":24907.35640053908},"targetPosition":{"x":18598.806237131383,"y":24997.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Exit Target Rate Line","id":"b066c240-8552-4622-9597-77e812491910"}}}],"id":"f913ba18-546d-4096-ab90-aec6059e19f2","savedPayload":{"position":{"x":18598.806237131383,"y":24997.35640053908},"targetPosition":{"x":18619.806237131383,"y":24984.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"624f0608-d88b-43de-b7f2-417d4a4eba71","savedPayload":{"position":{"x":16694.434289783076,"y":24423.188177393997},"targetPosition":{"x":16844.434289783076,"y":24682.99579852933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Positions","id":"14dba295-5795-4ed3-bdc5-ccf11a8028c5"}}},{"type":"Layer","name":"Position Base Asset","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Position Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4fd57406-376b-4dd9-8051-d91a5d9e1f84","savedPayload":{"position":{"x":18655.806237131383,"y":25049.35640053908},"targetPosition":{"x":18613.806237131383,"y":25055.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Base Asset","id":"b4298480-8922-4c40-ac79-b4484f8558bd"}}}],"id":"7691a95e-22bb-4805-903c-c636d010022c","savedPayload":{"position":{"x":18613.806237131383,"y":25055.35640053908},"targetPosition":{"x":18702.806237131383,"y":25037.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Profit Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"718b758f-5851-46aa-b9cd-680174a595fe","savedPayload":{"position":{"x":18778.806237131383,"y":24943.35640053908},"targetPosition":{"x":18732.806237131383,"y":25032.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Profit Triangle","id":"2628b290-a09a-4807-8a45-7ff5a880d195"}}},{"type":"Layer Polygon","name":"Loss Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"64e80a44-6d8e-4137-a067-647e7a183b47","savedPayload":{"position":{"x":18821.806237131383,"y":24955.35640053908},"targetPosition":{"x":18732.806237131383,"y":25032.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Loss Triangle","id":"e37cfbb4-fe54-49ad-9525-29b0d77e082b"}}},{"type":"Layer Polygon","name":"Empty Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"3f98a268-6ef5-4934-bc74-6374a4ea8ed4","savedPayload":{"position":{"x":18793.806237131383,"y":24962.35640053908},"targetPosition":{"x":18732.806237131383,"y":25032.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Empty Triangle","id":"23c30ca5-95ec-47b2-a65f-01969b1a5a78"}}}],"id":"f5ffc9a8-3721-47cb-939b-24456a2db9cc","savedPayload":{"position":{"x":18732.806237131383,"y":25032.35640053908},"targetPosition":{"x":18702.806237131383,"y":25037.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a4b0ce5-50b7-4508-a75e-dc1f887ac85c","savedPayload":{"position":{"x":16729.62926007355,"y":24405.831938775944},"targetPosition":{"x":16844.434289783076,"y":24682.99579852933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Base Asset","id":"19cabd46-a4dc-47a4-9a4a-bd5f264836d4"}}},{"type":"Layer","name":"Position Quoted Asset","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Position Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6ef7618e-73e7-4f87-88a6-5e2c64d9ec6f","savedPayload":{"position":{"x":18761.806237131383,"y":24987.35640053908},"targetPosition":{"x":18756.806237131383,"y":24982.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Quoted Asset","id":"f15d0a31-30bd-49a6-8c45-1bcd1a9cc5a8"}}}],"id":"8c35b178-158c-47d9-aceb-4e3945b7212c","savedPayload":{"position":{"x":18756.806237131383,"y":24982.35640053908},"targetPosition":{"x":18673.806237131383,"y":25026.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Profit Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"8813d0f8-6249-46ba-b3da-4ac008acbb2f","savedPayload":{"position":{"x":18598.806237131383,"y":24941.35640053908},"targetPosition":{"x":18691.806237131383,"y":25013.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Profit Triangle","id":"9cf82ef4-557e-498e-b121-ff28235b3a25"}}},{"type":"Layer Polygon","name":"Loss Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"da45eca3-0951-4cfc-b6b9-56382a23e935","savedPayload":{"position":{"x":18701.806237131383,"y":25035.35640053908},"targetPosition":{"x":18691.806237131383,"y":25013.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Loss Triangle","id":"61faa796-9697-48b0-a582-613e1b351931"}}},{"type":"Layer Polygon","name":"Empty Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"255cd3ab-fa33-4655-b2c0-3b870fb980d4","savedPayload":{"position":{"x":18646.806237131383,"y":25010.35640053908},"targetPosition":{"x":18691.806237131383,"y":25013.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Empty Triangle","id":"58c807a3-8443-43d9-82e9-81c3d0545399"}}}],"id":"2b2a5829-a033-4dcf-b2c4-b53ec766196d","savedPayload":{"position":{"x":18691.806237131383,"y":25013.35640053908},"targetPosition":{"x":18673.806237131383,"y":25026.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f10a234d-8dcd-4c92-8a0a-6caa06e674bc","savedPayload":{"position":{"x":16766.78857625232,"y":24393.21805064261},"targetPosition":{"x":16844.434289783076,"y":24682.99579852933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Quoted Asset","id":"09d9b2b3-afd2-4b7d-9553-b254d6c8738f"}}},{"type":"Layer","name":"Stop Loss","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Stop Loss Panel","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"41a1f01e-b633-472e-8986-d32e5627c724","savedPayload":{"position":{"x":18812.806237131383,"y":24928.35640053908},"targetPosition":{"x":18764.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Stop Loss Panel","id":"1b6d3bd0-e594-4b09-9f1c-021177676d84"}}}],"id":"dda9247d-3fba-4c91-b10c-47cdff4ca195","savedPayload":{"position":{"x":18764.806237131383,"y":24983.35640053908},"targetPosition":{"x":18700.806237131383,"y":25045.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"9018968a-0d64-4861-ab5a-1f97dd79cd22","savedPayload":{"position":{"x":18703.806237131383,"y":25068.35640053908},"targetPosition":{"x":18703.806237131383,"y":25119.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"9d351f29-6a3e-4c2b-b008-ebe1414d2aa8"}}}],"id":"67b90b3d-bddc-4c50-b41d-91589edde2d7","savedPayload":{"position":{"x":18703.806237131383,"y":25119.35640053908},"targetPosition":{"x":18700.806237131383,"y":25045.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"72a8529a-1989-4ee7-b234-f02faed24749","savedPayload":{"position":{"x":16805.27643211706,"y":24385.562340117187},"targetPosition":{"x":16844.434289783076,"y":24682.99579852933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Stop Loss","id":"f31415b0-baa4-44fb-a018-8e1a26f2dae0"}}},{"type":"Layer","name":"Take Profit","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Take Profit Panel","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"d07695a6-614c-4949-a666-e939f1083d73","savedPayload":{"position":{"x":18653.806237131383,"y":25003.35640053908},"targetPosition":{"x":18685.806237131383,"y":25096.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Take Profit Panel","id":"33aa2293-7958-4cc3-bb41-fc97c17ccd67"}}}],"id":"9997f855-30db-4a0a-834d-2538af13f1e0","savedPayload":{"position":{"x":18685.806237131383,"y":25096.35640053908},"targetPosition":{"x":18724.806237131383,"y":25036.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1cdc582e-503d-425f-9030-93c15b35024e","savedPayload":{"position":{"x":18721.806237131383,"y":25138.35640053908},"targetPosition":{"x":18678.806237131383,"y":25067.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"a0b598d2-cdb6-4ce7-96c5-ef3317ae1768"}}}],"id":"434befd7-a9ca-49be-bf36-1b2bd78168fb","savedPayload":{"position":{"x":18678.806237131383,"y":25067.35640053908},"targetPosition":{"x":18724.806237131383,"y":25036.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d4aa399a-267a-4777-941c-0f43c022023e","savedPayload":{"position":{"x":16844.434289783076,"y":24382.99579852933},"targetPosition":{"x":16844.434289783076,"y":24682.99579852933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Take Profit","id":"140b3155-0cd9-4bde-b012-24f81bf97970"}}}],"layerFolders":[],"id":"ad52c931-87ba-49ef-928d-89d7629aa1f0","savedPayload":{"position":{"x":16844.434289783076,"y":24682.99579852933},"targetPosition":{"x":16922.080003313833,"y":24972.77354641605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e635d17b-38be-4025-b42e-71dff513a39e","savedPayload":{"position":{"x":16922.080003313833,"y":24972.77354641605},"targetPosition":{"x":17211.857751200554,"y":25050.419259946808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"633451c0-e0a7-46e6-a77b-6d14fff3910c","savedPayload":{"position":{"x":17211.857751200554,"y":25050.419259946808},"targetPosition":{"x":17501.635499087275,"y":25128.064973477565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9903ff31-3943-4cd0-b10e-7f7542826184","savedPayload":{"position":{"x":17501.635499087275,"y":25128.064973477565},"targetPosition":{"x":17791.413246973996,"y":25205.710687008323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"caa36a7c-69b6-4863-a313-003d5af2d126"}}},"id":"117743b6-bcbf-41b5-852f-1f60033ad3dc","savedPayload":{"position":{"x":17751.22086810933,"y":25055.710687008323},"targetPosition":{"x":18040.99861599605,"y":25133.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Masters Data","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Exchange Raw Data","project":"Superalgos","layers":[],"layerFolders":[],"id":"151a3047-d22c-4e22-b718-c2af7bcbb511","savedPayload":{"position":{"x":23535.34069136085,"y":33671.80414654502},"targetPosition":{"x":23822.986611821307,"y":33586.599543133845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Candles Volumes","project":"Superalgos","layers":[{"type":"Layer","name":"Candles","config":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Candle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"b1bf384e-0c54-4cec-9e74-2db2732aeff9","savedPayload":{"position":{"x":18876.806237131383,"y":25037.35640053908},"targetPosition":{"x":18880.806237131383,"y":24969.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Candle","id":"9336f4e6-d56b-4ed4-819d-0bb762ba1fdd"}}}],"id":"79f736e4-e3a5-4739-a686-07d892380a12","savedPayload":{"position":{"x":18880.806237131383,"y":24969.35640053908},"targetPosition":{"x":18850.806237131383,"y":24954.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"00cfa2ce-3b30-4cc6-9d74-ab22ef88ac83","savedPayload":{"position":{"x":18860.806237131383,"y":24923.35640053908},"targetPosition":{"x":18850.806237131383,"y":24954.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"010cfb42-eaac-4648-881b-45f8d4766a10","savedPayload":{"position":{"x":23246.74988427351,"y":33424.08397811839},"targetPosition":{"x":23540.194164493652,"y":33486.45748536372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"2a290f06-5f0b-4f57-93d1-7579fa589aa0"}}},{"type":"Layer","name":"Volumes","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Volume","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"619ae2b6-2d16-42a8-8dcd-c31b326a2895","savedPayload":{"position":{"x":18628.806237131383,"y":24839.35640053908},"targetPosition":{"x":18691.806237131383,"y":24790.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Volume","id":"42dbd098-4550-44a0-987f-54a28dd5f40b"}}}],"id":"a4b5a955-1b3b-40da-afca-e034fbc3da18","savedPayload":{"position":{"x":18691.806237131383,"y":24790.35640053908},"targetPosition":{"x":18763.806237131383,"y":24832.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"53d26507-97f5-447c-9952-8e8222bcfbfb","savedPayload":{"position":{"x":18775.806237131383,"y":24827.35640053908},"targetPosition":{"x":18763.806237131383,"y":24832.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bfc11466-a48f-47f8-8bae-fe8005ada1ab","savedPayload":{"position":{"x":23272.892207237142,"y":33350.26033544185},"targetPosition":{"x":23540.194164493652,"y":33486.45748536372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"c789572d-ff73-4664-b2a2-8b84a73dccb1"}}}],"layerFolders":[],"id":"bcb6af91-9135-4fb1-a994-56b6c9a9dbba","savedPayload":{"position":{"x":23540.194164493652,"y":33486.45748536372},"targetPosition":{"x":23822.986611821307,"y":33586.599543133845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Bollinger Bands","project":"Superalgos","layers":[{"type":"Layer","name":"Bollinger Bands","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Bollinger Band","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"7b75cb70-79f5-4a12-86e4-5b50206e6a6f","savedPayload":{"position":{"x":18863.806237131383,"y":24934.35640053908},"targetPosition":{"x":18896.806237131383,"y":24948.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Bollinger Band","id":"de7b7008-6f66-4d7d-96dd-1aa7b1ede335"}}}],"id":"3032b45a-93a8-4a51-a66f-ecbb793171dd","savedPayload":{"position":{"x":18896.806237131383,"y":24948.35640053908},"targetPosition":{"x":18952.806237131383,"y":24913.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"b399d296-9dbe-420b-9c25-49551e24af52","savedPayload":{"position":{"x":18998.806237131383,"y":24945.35640053908},"targetPosition":{"x":18952.806237131383,"y":24913.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8c7ca125-c595-416b-b994-94e6aca3751f","savedPayload":{"position":{"x":23452.325558836197,"y":33116.41823890402},"targetPosition":{"x":23653.064740743856,"y":33339.36168654724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"a213e62e-cf80-46e7-8bcf-424d45b8e571"}}},{"type":"Layer","name":"Percentage Bandwidth","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"%B Panel","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5c698621-56c2-4160-b44f-4b46299137ed","savedPayload":{"position":{"x":18910.806237131383,"y":25028.35640053908},"targetPosition":{"x":18922.806237131383,"y":24945.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"%B Panel","id":"36548f31-d96c-4c80-b923-dea5dd5b56c7"}}}],"id":"bf718775-9bb8-4e19-a925-17d98a5da325","savedPayload":{"position":{"x":18922.806237131383,"y":24945.35640053908},"targetPosition":{"x":18857.806237131383,"y":24910.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Area From 0 to 30","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"c50d5eaf-59bc-451b-8bb5-dcd312c07fb1","savedPayload":{"position":{"x":18794.806237131383,"y":24986.35640053908},"targetPosition":{"x":18786.806237131383,"y":24897.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Area From 0 to 30","id":"d76f185f-5219-4f0b-adb3-9a339b0468c6"}}},{"type":"Layer Polygon","name":"Area From 30 to 70","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6e829323-cdd7-4244-9fa3-9f45391128f6","savedPayload":{"position":{"x":18687.806237131383,"y":24829.35640053908},"targetPosition":{"x":18786.806237131383,"y":24897.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Area From 30 to 70","id":"1a7969dd-af18-4e44-b4c9-96dd2be57f7c"}}},{"type":"Layer Polygon","name":"Area From 70 to 100","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"723d07ef-01ac-488e-ae4f-e8fa89de3179","savedPayload":{"position":{"x":18772.806237131383,"y":24859.35640053908},"targetPosition":{"x":18786.806237131383,"y":24897.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Area From 70 to 100","id":"cb1bcd11-0fb0-4377-bff2-dee4630e0f3f"}}},{"type":"Layer Polygon","name":"Line 30","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2eeef5d7-ce61-44b9-8d5b-3536cfcad209","savedPayload":{"position":{"x":18707.806237131383,"y":24813.35640053908},"targetPosition":{"x":18786.806237131383,"y":24897.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Line 30","id":"857043cc-f467-44d2-89eb-2e73f35f638d"}}},{"type":"Layer Polygon","name":"Line 30","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"d55264eb-d393-4c81-ab58-051afdc72ce6","savedPayload":{"position":{"x":18713.806237131383,"y":24840.35640053908},"targetPosition":{"x":18786.806237131383,"y":24897.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Line 30","id":"984a1917-1d81-4142-a50f-269a18a07c9d"}}},{"type":"Layer Polygon","name":"Bandwidth","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"d052eaf3-7ca6-4e49-bc09-f83399d390a1","savedPayload":{"position":{"x":18777.806237131383,"y":24846.35640053908},"targetPosition":{"x":18786.806237131383,"y":24897.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Bandwidth","id":"0f7a4004-177c-4412-b0ef-2608f3c13da6"}}},{"type":"Layer Polygon","name":"Value","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e6d1a0b8-6229-43e7-8365-8a0fb52f9820","savedPayload":{"position":{"x":18819.806237131383,"y":24977.35640053908},"targetPosition":{"x":18786.806237131383,"y":24897.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Value","id":"4598a671-83b9-4460-9e65-175df73eba71"}}},{"type":"Layer Polygon","name":"Moving Average","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a36e69c2-8ea6-4678-87b1-72c0418359d9","savedPayload":{"position":{"x":18773.806237131383,"y":24894.35640053908},"targetPosition":{"x":18786.806237131383,"y":24897.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Moving Average","id":"69c19382-ed5b-48d1-9249-426a8e1e4e51"}}}],"id":"7cec5598-f9b6-4d75-a440-d61411283857","savedPayload":{"position":{"x":18786.806237131383,"y":24897.35640053908},"targetPosition":{"x":18857.806237131383,"y":24910.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2f461d24-881c-48f3-9773-489c8decd0b5","savedPayload":{"position":{"x":23516.867590821992,"y":33072.05972929073},"targetPosition":{"x":23653.064740743856,"y":33339.36168654724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"cdc4ac34-0ec2-4711-9c97-954e42c72d1b"}}}],"layerFolders":[],"id":"a2b43354-b0b0-4515-90c5-d6d52eb8a054","savedPayload":{"position":{"x":23653.064740743856,"y":33339.36168654724},"targetPosition":{"x":23822.986611821307,"y":33586.599543133845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Bollinger Channels","project":"Superalgos","layers":[{"type":"Layer","name":"Bollinger Channels Objects","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Bollinger Channels Objects","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"72e5d1a5-463c-4a37-a488-a951b05a0bd7","savedPayload":{"position":{"x":18688.806237131383,"y":24939.35640053908},"targetPosition":{"x":18628.806237131383,"y":25032.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Bollinger Channels Objects","id":"09c8f781-3e54-4bed-bd9a-83e8179fdd66"}}}],"id":"5ebc9819-33fc-439a-a3c2-b8a4be89e6a6","savedPayload":{"position":{"x":18628.806237131383,"y":25032.35640053908},"targetPosition":{"x":18728.806237131383,"y":24995.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"994ea0e7-b45b-49f7-a917-7fb609bd67e3","savedPayload":{"position":{"x":18774.806237131383,"y":24979.35640053908},"targetPosition":{"x":18759.806237131383,"y":24927.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"6e21446c-93e7-44ad-814d-3cd2fa8f8baf"}}}],"id":"3ac5327c-a6f2-41c9-baf2-19a8730909b0","savedPayload":{"position":{"x":18759.806237131383,"y":24927.35640053908},"targetPosition":{"x":18728.806237131383,"y":24995.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a57fdbcf-07ff-48c0-ac98-2ad5e1cceda0","savedPayload":{"position":{"x":23768.466189068342,"y":32993.25806542103},"targetPosition":{"x":23830.83969631367,"y":33286.70234564118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"aef85abd-8069-4aed-8436-8e67203e5624"}}},{"type":"Layer","name":"Bollinger Channels","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Bollinger Channels","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6abf1c77-c0a0-4163-8db1-de2f87fef52c","savedPayload":{"position":{"x":18772.806237131383,"y":24904.35640053908},"targetPosition":{"x":18825.806237131383,"y":24941.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Bollinger Channels","id":"abb4f289-c374-43e0-b8dc-d586d8e3328e"}}}],"id":"cd53a2b3-f485-4226-9d31-3c2fa5057ec3","savedPayload":{"position":{"x":18825.806237131383,"y":24941.35640053908},"targetPosition":{"x":18885.806237131383,"y":25006.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"07d5dd12-7def-444e-9f6f-892798c7abfb","savedPayload":{"position":{"x":18831.806237131383,"y":25084.35640053908},"targetPosition":{"x":18885.806237131383,"y":25006.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e5cc8e25-5df6-4f58-9e93-4bdef3d2cfe4","savedPayload":{"position":{"x":23815.138909440786,"y":32987.1134852148},"targetPosition":{"x":23830.83969631367,"y":33286.70234564118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"2fdc23da-996c-4429-8beb-3d9db46e2510"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Bollinger Sub Channels Objects","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"af640832-0e8e-4b5e-9b16-c839baba8755","savedPayload":{"position":{"x":18700.806237131383,"y":24988.35640053908},"targetPosition":{"x":18775.806237131383,"y":24920.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Bollinger Sub Channels Objects","id":"8ce4c7ca-3496-4df8-9d57-335d40cc77a0"}}}],"id":"2dbeb8bf-b5fc-4a78-96bd-27978e76bf7a","savedPayload":{"position":{"x":18775.806237131383,"y":24920.35640053908},"targetPosition":{"x":18803.806237131383,"y":24932.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"b283d87e-5aea-4f62-afd2-8802654bbd4e","savedPayload":{"position":{"x":18883.806237131383,"y":24892.35640053908},"targetPosition":{"x":18803.806237131383,"y":24932.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3f11264f-0722-49ef-8c48-e5ef0568828a","savedPayload":{"position":{"x":23862.198235293967,"y":32988.34577703069},"targetPosition":{"x":23830.83969631367,"y":33286.70234564118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"cbf3145e-ab44-4b47-92a5-8d4a7f81802a"}}},{"type":"Layer","name":"Bollinger Sub-Channels","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Bollinger Sub Channels","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"7e8b8d3b-194d-4f38-b6ad-2228f191bf48","savedPayload":{"position":{"x":18664.806237131383,"y":24897.35640053908},"targetPosition":{"x":18691.806237131383,"y":24829.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Bollinger Sub Channels","id":"1beae26c-7235-46ef-a732-1d0c9f18dda5"}}}],"id":"4590a39f-a796-4a22-bd9f-c051f3a5e3c6","savedPayload":{"position":{"x":18691.806237131383,"y":24829.35640053908},"targetPosition":{"x":18739.806237131383,"y":24926.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"d25d654d-3b9f-4216-aad7-d2af71b41e18","savedPayload":{"position":{"x":18818.806237131383,"y":24990.35640053908},"targetPosition":{"x":18739.806237131383,"y":24926.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"49a142bb-9716-4f73-bfa0-84b5691be2f6","savedPayload":{"position":{"x":23908.485409844427,"y":32996.924597754456},"targetPosition":{"x":23830.83969631367,"y":33286.70234564118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"144f7f8b-36b1-4e46-b3a1-3ea6e178d452"}}}],"layerFolders":[],"id":"9a30281e-6bed-407b-9543-d641a26f9f07","savedPayload":{"position":{"x":23830.83969631367,"y":33286.70234564118},"targetPosition":{"x":23822.986611821307,"y":33586.599543133845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fe94d8dd-5c3a-4ff2-a056-189c66e67cd5","savedPayload":{"position":{"x":17564.986611821307,"y":24768.099543133845},"targetPosition":{"x":17802.99261390868,"y":24950.727971836463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Data Mine Products","name":"Masters","id":"0cda2799-71dd-4378-9239-4d9429f84a18"}}},"id":"4a7a73cb-c872-4b01-9ace-d2d238fa283a","savedPayload":{"position":{"x":17802.99261390868,"y":24950.727971836463},"targetPosition":{"x":18040.99861599605,"y":25133.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d","savedPayload":{"position":{"x":18040.99861599605,"y":25133.35640053908},"targetPosition":{"x":18300.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":965,"y":45},"width":256,"height":115.125,"radius":0},"referenceParent":{"type":"Backtesting Session","name":"BB Breakdown","id":"d23a592c-596c-475f-a6c4-00a63d05cf92"}}},{"type":"Time Machine","name":"BB Breakdown 2 Backtesting Session My Computer Binance BTC/USDT","config":"{}","project":"Superalgos","timeScale":{"type":"Time Scale","name":"New Time Scale","config":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-23T05:14:21.951Z\",\n \"toDate\": \"2020-03-07T07:22:37.749Z\"\n}","project":"Superalgos","id":"166b7ab7-7197-4072-a567-689fc6a8c713","savedPayload":{"position":{"x":17802.99261390868,"y":25015.984829241697},"targetPosition":{"x":18040.99861599605,"y":24833.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","config":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7338.746621498382,\n \"maxValue\": 10023.101181498383\n}","project":"Superalgos","id":"11c1afc7-3bde-4f29-bbf1-e71ef3423424","savedPayload":{"position":{"x":17751.22086810933,"y":24911.002114069837},"targetPosition":{"x":18040.99861599605,"y":24833.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","config":"{\n \"value\": \"01-hs\"\n}","project":"Superalgos","id":"53d33605-e95e-4970-976a-cc681375b473","savedPayload":{"position":{"x":17743.565157583907,"y":24794.198542873066},"targetPosition":{"x":18040.99861599605,"y":24833.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Trading Engine","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading Engine","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Episode","project":"Superalgos","layers":[{"type":"Layer","name":"Episode Counters","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Episode Counters","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e2c4f84d-fdf2-41e6-b0c2-35a754681908","savedPayload":{"position":{"x":19174.677495559496,"y":25279.87739346182},"targetPosition":{"x":19261.677495559496,"y":25288.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Counters","id":"2a5783fe-af9a-443c-b4e7-32d8bdabff82"}}}],"id":"8ed85823-f0db-4b5a-aad6-06c955efd497","savedPayload":{"position":{"x":19261.677495559496,"y":25288.87739346182},"targetPosition":{"x":19216.677495559496,"y":25357.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"50b0fd8f-6518-4fde-9c6c-e09762d5ebcb","savedPayload":{"position":{"x":19277.677495559496,"y":25374.87739346182},"targetPosition":{"x":19216.677495559496,"y":25357.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4b4be87e-b271-44e3-826e-42d268f7ed06","savedPayload":{"position":{"x":19216.677495559496,"y":25357.87739346182},"targetPosition":{"x":19187.677495559496,"y":25317.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Counters","id":"60924390-790b-4bf7-adc7-b72bc77d9e16"}}},{"type":"Layer","name":"Episode Statistics","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Episode Statistics","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"cd2583ea-4675-4fd8-99e7-3e510ce90ca1","savedPayload":{"position":{"x":19234.677495559496,"y":25209.87739346182},"targetPosition":{"x":19219.677495559496,"y":25284.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Statistics","id":"6ea43033-418d-4d87-b640-02010679aa8b"}}}],"id":"f5e76081-b676-4c6b-80be-cf65c21a71b2","savedPayload":{"position":{"x":19219.677495559496,"y":25284.87739346182},"targetPosition":{"x":19230.677495559496,"y":25282.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"4026eb03-6d7a-4a04-9a47-711f82b170da","savedPayload":{"position":{"x":19191.677495559496,"y":25367.87739346182},"targetPosition":{"x":19230.677495559496,"y":25282.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d82f55de-9ba5-4d90-b6f7-3ebe8b7f73b7","savedPayload":{"position":{"x":19230.677495559496,"y":25282.87739346182},"targetPosition":{"x":19187.677495559496,"y":25317.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Statistics","id":"ed1de592-f7b9-4c25-8fbb-ee321dd66825"}}},{"type":"Layer","name":"Episode Candle","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"27c4c984-75ec-498d-b1f2-e40ba28ce727","savedPayload":{"position":{"x":19237.677495559496,"y":25436.87739346182},"targetPosition":{"x":19279.677495559496,"y":25356.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"f39d020b-2998-4394-96f9-347a5405482d","savedPayload":{"position":{"x":19201.677495559496,"y":25370.87739346182},"targetPosition":{"x":19279.677495559496,"y":25356.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"de96e5d7-5732-4eed-aa69-52633f18d30d","savedPayload":{"position":{"x":19279.677495559496,"y":25356.87739346182},"targetPosition":{"x":19187.677495559496,"y":25317.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Candle","id":"9f1e1582-6d1e-44ac-8606-021c0d0ecbec"}}},{"type":"Layer","name":"Episode Balances","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Current Balance","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ed692b8e-93b1-4f96-91b7-91d0ed422881","savedPayload":{"position":{"x":19137.677495559496,"y":25232.87739346182},"targetPosition":{"x":19154.677495559496,"y":25187.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Current Balance","id":"cb03ef16-522f-4189-ab3a-b410bf1f4176"}}}],"id":"14834017-1f51-406c-b2ea-535d602f8f63","savedPayload":{"position":{"x":19154.677495559496,"y":25187.87739346182},"targetPosition":{"x":19236.677495559496,"y":25273.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"9e7f3c7f-5d8b-4aa6-980b-a57588cf00e4","savedPayload":{"position":{"x":19165.677495559496,"y":25239.87739346182},"targetPosition":{"x":19236.677495559496,"y":25273.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ed6b974e-b785-4ae7-b1e7-6881e64d3bb2","savedPayload":{"position":{"x":19236.677495559496,"y":25273.87739346182},"targetPosition":{"x":19187.677495559496,"y":25317.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Balances","id":"c7197474-250f-4f35-b56f-e9b8d5a90b94"}}},{"type":"Layer","name":"Distance To Event","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"350fda9b-05eb-49eb-b9d1-7d77c890ca7c","savedPayload":{"position":{"x":19308.677495559496,"y":25178.87739346182},"targetPosition":{"x":19238.677495559496,"y":25241.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"578dbc23-328b-4a49-8e3e-c35631803cb9","savedPayload":{"position":{"x":19142.677495559496,"y":25244.87739346182},"targetPosition":{"x":19238.677495559496,"y":25241.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6192f499-c758-4ea8-a90e-05e3718217a6","savedPayload":{"position":{"x":19238.677495559496,"y":25241.87739346182},"targetPosition":{"x":19187.677495559496,"y":25317.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Distance To Event","id":"6e485425-6dfd-4c38-aa2d-28aca024dd1b"}}},{"type":"Layer","name":"Episode Base Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"2602ed98-d3c0-44ff-b267-697fafc6b748","savedPayload":{"position":{"x":19289.677495559496,"y":25261.87739346182},"targetPosition":{"x":19210.677495559496,"y":25279.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"553d3302-3572-45bf-acd0-29976bf1103e","savedPayload":{"position":{"x":19216.677495559496,"y":25199.87739346182},"targetPosition":{"x":19210.677495559496,"y":25279.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b88a37e7-0742-4502-a243-25aaa6b37901","savedPayload":{"position":{"x":19210.677495559496,"y":25279.87739346182},"targetPosition":{"x":19187.677495559496,"y":25317.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Base Asset","id":"73570334-f5cc-4b17-9e75-ac44e2f8fec1"}}},{"type":"Layer","name":"Episode Quoted Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"4993fc6f-fde2-4204-86f8-43fb7bf7a465","savedPayload":{"position":{"x":19234.677495559496,"y":25417.87739346182},"targetPosition":{"x":19187.677495559496,"y":25415.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"60ec3587-2c30-4645-8767-9adbd4c1d569","savedPayload":{"position":{"x":19246.677495559496,"y":25405.87739346182},"targetPosition":{"x":19187.677495559496,"y":25415.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"05cb5eda-2cb1-4df6-ae8b-19a119b73b9d","savedPayload":{"position":{"x":19187.677495559496,"y":25415.87739346182},"targetPosition":{"x":19187.677495559496,"y":25317.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Quoted Asset","id":"ee9028a0-c321-4a22-82a0-7ed2527162eb"}}},{"type":"Layer","name":"Current Episode","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e10b382a-9962-4ecd-8b42-2c34a7224f73","savedPayload":{"position":{"x":19092.677495559496,"y":25276.87739346182},"targetPosition":{"x":19187.677495559496,"y":25226.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"c14b51ec-4e23-4d2c-9f21-2d909f02b26a","savedPayload":{"position":{"x":19151.677495559496,"y":25206.87739346182},"targetPosition":{"x":19187.677495559496,"y":25226.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d630dae8-33c8-4b7f-886d-3f29bf705c0d","savedPayload":{"position":{"x":19187.677495559496,"y":25226.87739346182},"targetPosition":{"x":19187.677495559496,"y":25317.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Episode","id":"eef16b61-006f-45f9-a77c-914ad21f9a43"}}}],"layerFolders":[],"id":"4a9f488c-881c-4559-bfb3-4ffbcfb9a4a6","savedPayload":{"position":{"x":19187.677495559496,"y":25317.87739346182},"targetPosition":{"x":19149.677495559496,"y":25302.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Strategy","project":"Superalgos","layers":[{"type":"Layer","name":"Current Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"64db8f13-f023-4164-a632-dc2e00059ede","savedPayload":{"position":{"x":19251.677495559496,"y":25325.87739346182},"targetPosition":{"x":19214.677495559496,"y":25307.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"2c1ae811-af14-4240-a747-6421328cf133","savedPayload":{"position":{"x":19158.677495559496,"y":25400.87739346182},"targetPosition":{"x":19214.677495559496,"y":25307.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3d2a2cb8-aa00-4818-afe5-67dbdf8f3dae","savedPayload":{"position":{"x":19214.677495559496,"y":25307.87739346182},"targetPosition":{"x":19135.677495559496,"y":25239.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Strategy","id":"23ba93fd-b3b7-432d-a50a-cafcb4cc293b"}}},{"type":"Layer","name":"Last Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"afac7082-11c3-4761-bbfe-db4465a544d0","savedPayload":{"position":{"x":19217.677495559496,"y":25262.87739346182},"targetPosition":{"x":19121.677495559496,"y":25239.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"fce565a1-9c85-46b0-9a04-fcd18d3dd381","savedPayload":{"position":{"x":19103.677495559496,"y":25149.87739346182},"targetPosition":{"x":19121.677495559496,"y":25239.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fba615bd-8ec3-440b-9a7a-d10416bdfd9f","savedPayload":{"position":{"x":19121.677495559496,"y":25239.87739346182},"targetPosition":{"x":19135.677495559496,"y":25239.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Strategy","id":"2c1c952c-525a-417f-8dff-33c31b9a625c"}}}],"layerFolders":[],"id":"7d54395e-546e-4c0d-a0c6-3a278e9915bd","savedPayload":{"position":{"x":19135.677495559496,"y":25239.87739346182},"targetPosition":{"x":19149.677495559496,"y":25302.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Current Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"767fbd91-f2a5-4561-b3ce-c1fd81d189a2","savedPayload":{"position":{"x":19077.677495559496,"y":25336.87739346182},"targetPosition":{"x":19044.677495559496,"y":25333.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"63a4ae77-f501-4dc3-9ab3-ad4296db63eb","savedPayload":{"position":{"x":18959.677495559496,"y":25340.87739346182},"targetPosition":{"x":19044.677495559496,"y":25333.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9532b3f1-c679-4ad9-845f-5c88e7dfec42","savedPayload":{"position":{"x":19044.677495559496,"y":25333.87739346182},"targetPosition":{"x":19079.677495559496,"y":25366.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Position","id":"78d634df-0591-48c7-96d2-d21b978937c3"}}},{"type":"Layer","name":"Last Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"c2f4a12d-2536-412d-b887-2fedc42f313b","savedPayload":{"position":{"x":19173.677495559496,"y":25413.87739346182},"targetPosition":{"x":19147.677495559496,"y":25343.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"8e799eb5-508a-4788-9f03-687d59d1b3cf","savedPayload":{"position":{"x":19071.677495559496,"y":25352.87739346182},"targetPosition":{"x":19147.677495559496,"y":25343.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9859c4d1-6c23-4bc6-8c50-0031111d1c44","savedPayload":{"position":{"x":19147.677495559496,"y":25343.87739346182},"targetPosition":{"x":19079.677495559496,"y":25366.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Position","id":"ea278b46-43e2-4432-8e4e-6337a8a4add5"}}},{"type":"Layer","name":"Stop Loss","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"30520c57-3925-4fed-8061-53087662f9cb","savedPayload":{"position":{"x":18981.677495559496,"y":25300.87739346182},"targetPosition":{"x":19072.677495559496,"y":25358.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"c7764ab8-a1de-4858-846d-11aee6697b84","savedPayload":{"position":{"x":19087.677495559496,"y":25265.87739346182},"targetPosition":{"x":19072.677495559496,"y":25358.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a44fe367-efbd-49ae-b88a-4dfb80e37484","savedPayload":{"position":{"x":19072.677495559496,"y":25358.87739346182},"targetPosition":{"x":19079.677495559496,"y":25366.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Stop Loss","id":"5acabff8-8f1b-41c3-ab67-01c4126b23a2"}}},{"type":"Layer","name":"Take Profit","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"f6dbcff8-f4aa-4049-b4b9-b43c66d01d7f","savedPayload":{"position":{"x":19048.677495559496,"y":25512.87739346182},"targetPosition":{"x":19103.677495559496,"y":25417.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"8c043dc6-040b-4773-ae52-6d97c56611fd","savedPayload":{"position":{"x":19099.677495559496,"y":25335.87739346182},"targetPosition":{"x":19103.677495559496,"y":25417.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"102c96a9-cd15-4c9a-9e80-739ae484cde8","savedPayload":{"position":{"x":19103.677495559496,"y":25417.87739346182},"targetPosition":{"x":19079.677495559496,"y":25366.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Take Profit","id":"9fa7056e-9d71-48bb-9a6b-33a28c2dfd69"}}}],"layerFolders":[],"id":"3d5ecf7d-841e-458c-8f2e-730b994d78c4","savedPayload":{"position":{"x":19079.677495559496,"y":25366.87739346182},"targetPosition":{"x":19149.677495559496,"y":25302.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Open Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"144b9543-3665-49e6-a9ce-a221a53c166a","savedPayload":{"position":{"x":19222.677495559496,"y":25122.87739346182},"targetPosition":{"x":19187.677495559496,"y":25201.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"93b47d42-050c-4320-be2b-0cdd30892c61","savedPayload":{"position":{"x":19159.677495559496,"y":25109.87739346182},"targetPosition":{"x":19187.677495559496,"y":25201.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7624328f-73f1-4355-9189-afa2d4179538","savedPayload":{"position":{"x":19187.677495559496,"y":25201.87739346182},"targetPosition":{"x":19147.677495559496,"y":25209.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stage","id":"bf681252-1213-40e6-b0f0-ae24d37b7840"}}},{"type":"Layer","name":"Close Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"b52b16f8-437f-4098-8a6d-ac58715846de","savedPayload":{"position":{"x":19106.677495559496,"y":25164.87739346182},"targetPosition":{"x":19047.677495559496,"y":25177.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"b9fdd9ae-caca-465d-aca2-9d96f09185bf","savedPayload":{"position":{"x":18993.677495559496,"y":25165.87739346182},"targetPosition":{"x":19047.677495559496,"y":25177.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1b7f28b4-f6e2-49fd-ba25-abceeb17f967","savedPayload":{"position":{"x":19047.677495559496,"y":25177.87739346182},"targetPosition":{"x":19147.677495559496,"y":25209.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stage","id":"e57e80d4-bfb4-45fa-ba46-8a8ddb6381ea"}}},{"type":"Layer","name":"Trigger Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"ddaecbdc-5e3a-4664-b140-cf6de084b0a7","savedPayload":{"position":{"x":19163.677495559496,"y":25216.87739346182},"targetPosition":{"x":19171.677495559496,"y":25124.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"20987133-b173-4ceb-a51e-7a2a8f9b15f7","savedPayload":{"position":{"x":19146.677495559496,"y":25109.87739346182},"targetPosition":{"x":19171.677495559496,"y":25124.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a4f3c050-5348-4941-813b-08991cc308f4","savedPayload":{"position":{"x":19171.677495559496,"y":25124.87739346182},"targetPosition":{"x":19147.677495559496,"y":25209.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stage","id":"a750a17b-6e62-446d-9d2a-7d2ae2c9fc39"}}},{"type":"Layer","name":"Manage Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"f81a30fa-4743-42de-ae70-931ab62013bb","savedPayload":{"position":{"x":19044.677495559496,"y":25212.87739346182},"targetPosition":{"x":19139.677495559496,"y":25298.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"ec87226d-565b-4cb3-9fa8-8cdc4ed69766","savedPayload":{"position":{"x":19193.677495559496,"y":25318.87739346182},"targetPosition":{"x":19139.677495559496,"y":25298.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b0d42d0a-39df-4f0a-88ad-42fc886db9f5","savedPayload":{"position":{"x":19139.677495559496,"y":25298.87739346182},"targetPosition":{"x":19147.677495559496,"y":25209.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stage","id":"3c9cf74d-ab63-4391-ad0c-58fd7cb4101e"}}}],"layerFolders":[],"id":"27f79e36-a747-4810-93c0-33f67a3a5b13","savedPayload":{"position":{"x":19147.677495559496,"y":25209.87739346182},"targetPosition":{"x":19149.677495559496,"y":25302.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"14f08b33-7c16-48a8-ab7e-132157a52407","savedPayload":{"position":{"x":19253.677495559496,"y":25286.87739346182},"targetPosition":{"x":19162.677495559496,"y":25270.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"38cf2993-41dc-47f9-a07f-b9d5acef6256","savedPayload":{"position":{"x":19239.677495559496,"y":25183.87739346182},"targetPosition":{"x":19162.677495559496,"y":25270.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1ea411a7-5710-4696-a60e-cbb024cf23c8","savedPayload":{"position":{"x":19162.677495559496,"y":25270.87739346182},"targetPosition":{"x":19166.677495559496,"y":25290.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"5b8ff9e4-9192-4c2f-8e25-18958434fc23"}}},{"type":"Layer","name":"Market Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"f27d87c7-d9e7-4384-8712-4393816fea4a","savedPayload":{"position":{"x":19217.677495559496,"y":25255.87739346182},"targetPosition":{"x":19236.677495559496,"y":25298.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"ed267aa9-fdcc-4725-94e9-1e0c2396c0f9","savedPayload":{"position":{"x":19148.677495559496,"y":25237.87739346182},"targetPosition":{"x":19236.677495559496,"y":25298.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f162e09f-8a55-4930-85b9-aad57a581056","savedPayload":{"position":{"x":19236.677495559496,"y":25298.87739346182},"targetPosition":{"x":19166.677495559496,"y":25290.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"66d9a06b-f084-403b-99cc-3109515feba0"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"f1433111-89d0-4491-8df1-8ea2f7e935c5","savedPayload":{"position":{"x":19264.677495559496,"y":25125.87739346182},"targetPosition":{"x":19261.677495559496,"y":25202.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"977290b5-931e-4e68-aa29-4ad45d22963e","savedPayload":{"position":{"x":19257.677495559496,"y":25252.87739346182},"targetPosition":{"x":19261.677495559496,"y":25202.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e7995c4f-bd41-4224-8d11-7eb8c194e4ab","savedPayload":{"position":{"x":19261.677495559496,"y":25202.87739346182},"targetPosition":{"x":19166.677495559496,"y":25290.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"f071951e-4b95-4545-9cdc-7a53e38141bf"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"0da13a95-2c1e-4e64-89ac-674dec42172e","savedPayload":{"position":{"x":19077.677495559496,"y":25295.87739346182},"targetPosition":{"x":19130.677495559496,"y":25215.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"1b4a8b26-9c88-4504-91c1-9dc31186e7cf","savedPayload":{"position":{"x":19221.677495559496,"y":25281.87739346182},"targetPosition":{"x":19130.677495559496,"y":25215.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"67449367-67b3-40ae-9378-ff4d480a9947","savedPayload":{"position":{"x":19130.677495559496,"y":25215.87739346182},"targetPosition":{"x":19166.677495559496,"y":25290.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"0343abbc-865e-406a-92b2-e8099a15a083"}}},{"type":"Layer","name":"Last Market Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"9219802e-69dc-4783-8182-17a13beff803","savedPayload":{"position":{"x":19080.677495559496,"y":25170.87739346182},"targetPosition":{"x":19173.677495559496,"y":25252.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"6c8fca16-4862-452b-81c4-c15a653ecf60","savedPayload":{"position":{"x":19233.677495559496,"y":25172.87739346182},"targetPosition":{"x":19173.677495559496,"y":25252.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ab4e7675-8db3-497f-aef6-0235ec5e6b58","savedPayload":{"position":{"x":19173.677495559496,"y":25252.87739346182},"targetPosition":{"x":19166.677495559496,"y":25290.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Market Order","id":"f00813c7-b43f-429c-b3c7-8333086cec29"}}},{"type":"Layer","name":"Last Limit Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"c614cfb7-518f-4da6-a16c-1ceef85564ac","savedPayload":{"position":{"x":19167.677495559496,"y":25307.87739346182},"targetPosition":{"x":19132.677495559496,"y":25354.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"60ad16f2-95a5-44a4-ba70-1283c7db748a","savedPayload":{"position":{"x":19202.677495559496,"y":25400.87739346182},"targetPosition":{"x":19132.677495559496,"y":25354.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c6182d1e-4d7e-4bf1-a5c3-331152fe9598","savedPayload":{"position":{"x":19132.677495559496,"y":25354.87739346182},"targetPosition":{"x":19166.677495559496,"y":25290.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Limit Order","id":"35d59b74-3b26-492a-a3c0-9c3baea8144a"}}}],"layerFolders":[],"id":"3d32a957-8aac-440a-b164-3b8a6058a2bc","savedPayload":{"position":{"x":19166.677495559496,"y":25290.87739346182},"targetPosition":{"x":19149.677495559496,"y":25302.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4dbc2e0a-f682-42c1-83e5-abed779bdca1","savedPayload":{"position":{"x":19149.677495559496,"y":25302.87739346182},"targetPosition":{"x":19162.677495559496,"y":25341.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fd8fdcb9-912f-4981-834d-786b5b5ec46c","savedPayload":{"position":{"x":19162.677495559496,"y":25341.87739346182},"targetPosition":{"x":19180.677495559496,"y":25382.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5d34e663-58f2-40b5-a387-93760bc7e5ac","savedPayload":{"position":{"x":19180.677495559496,"y":25382.87739346182},"targetPosition":{"x":19197.677495559496,"y":25480.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"2c6c33b9-4e62-4961-b973-8a9c3019aa71"}}},"id":"ba54fdab-909b-4dd2-8ab4-92b3f721f751","savedPayload":{"position":{"x":17781.190994860717,"y":24683.35640053908},"targetPosition":{"x":18040.99861599605,"y":24833.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Trading System","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading System","project":"Superalgos","layers":[{"type":"Layer","name":"Trading System Errors","config":"{\n \"status\": \"on\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"727dc3a1-7dc2-4135-bd54-a2b864f4ce5f","savedPayload":{"position":{"x":19154.677495559496,"y":25428.87739346182},"targetPosition":{"x":19090.677495559496,"y":25497.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"86d35ca9-1f9d-42f4-9196-5f875e5f78bb","savedPayload":{"position":{"x":19035.677495559496,"y":25453.87739346182},"targetPosition":{"x":19090.677495559496,"y":25497.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"559704b2-0443-46d9-8ed8-7092ea1a4de7","savedPayload":{"position":{"x":19090.677495559496,"y":25497.87739346182},"targetPosition":{"x":19165.677495559496,"y":25582.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Errors","id":"94121dfb-1b89-4c82-b220-6f760b71b6c4"}}},{"type":"Layer","name":"Trading System Highlights","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"9b1b2bbd-1269-4e82-95cc-b8393470a01a","savedPayload":{"position":{"x":19185.677495559496,"y":25666.87739346182},"targetPosition":{"x":19245.677495559496,"y":25577.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"ed06ba7c-b082-4c43-a5f9-64fc43079079","savedPayload":{"position":{"x":19322.677495559496,"y":25612.87739346182},"targetPosition":{"x":19245.677495559496,"y":25577.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6d1c8db0-df25-4bed-920c-c0d87ca08c5e","savedPayload":{"position":{"x":19245.677495559496,"y":25577.87739346182},"targetPosition":{"x":19165.677495559496,"y":25582.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Highlights","id":"46c81d1e-6ada-4a2e-b452-a14d30507268"}}},{"type":"Layer","name":"Trading System Values","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"b2d6f1e4-38a8-407f-afa2-bd172ba7fe5b","savedPayload":{"position":{"x":19061.677495559496,"y":25567.87739346182},"targetPosition":{"x":19076.677495559496,"y":25650.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"55ba151d-d5b5-4cd9-af13-6781eb3b259b","savedPayload":{"position":{"x":19144.677495559496,"y":25603.87739346182},"targetPosition":{"x":19076.677495559496,"y":25650.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b17f6022-5b4f-414e-8ce6-5eee35344917","savedPayload":{"position":{"x":19076.677495559496,"y":25650.87739346182},"targetPosition":{"x":19165.677495559496,"y":25582.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Values","id":"f6e40bee-1acd-45da-9e63-4963b8cb7344"}}},{"type":"Layer","name":"Trading System Status","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"c4578efa-6836-4ca5-ab2c-aa905fc339d8","savedPayload":{"position":{"x":19326.677495559496,"y":25543.87739346182},"targetPosition":{"x":19263.677495559496,"y":25541.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"5d60233c-b9f8-42ce-b1f8-d15d4487dee1","savedPayload":{"position":{"x":19263.677495559496,"y":25507.87739346182},"targetPosition":{"x":19263.677495559496,"y":25541.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f1eb5e11-0beb-49ac-a98d-0ec4296f5cc6","savedPayload":{"position":{"x":19263.677495559496,"y":25541.87739346182},"targetPosition":{"x":19165.677495559496,"y":25582.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Status","id":"de497510-ba9e-48f3-b77c-1c02a6ed091a"}}},{"type":"Layer","name":"Trading System Progress","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"0a88b59a-b06c-4410-841a-e660de020a87","savedPayload":{"position":{"x":19265.677495559496,"y":25579.87739346182},"targetPosition":{"x":19177.677495559496,"y":25518.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"5990cfe0-311c-4e6b-947d-8e13e0837219","savedPayload":{"position":{"x":19269.677495559496,"y":25453.87739346182},"targetPosition":{"x":19177.677495559496,"y":25518.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ed1c26c8-20e1-4605-bccc-9ba0d8617882","savedPayload":{"position":{"x":19177.677495559496,"y":25518.87739346182},"targetPosition":{"x":19165.677495559496,"y":25582.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Progress","id":"14274541-0796-44be-96fd-4fba265a4044"}}},{"type":"Layer","name":"Trading System Running","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"7cb941e0-b16b-4241-865c-a0e9845e119e","savedPayload":{"position":{"x":19301.677495559496,"y":25526.87739346182},"targetPosition":{"x":19212.677495559496,"y":25575.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"0205c9e2-6642-4eb4-a128-063abc1d3f97","savedPayload":{"position":{"x":19196.677495559496,"y":25526.87739346182},"targetPosition":{"x":19212.677495559496,"y":25575.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"73ed154a-3200-408b-abc2-25b79f6614dc","savedPayload":{"position":{"x":19212.677495559496,"y":25575.87739346182},"targetPosition":{"x":19165.677495559496,"y":25582.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Running","id":"1cd43234-6db9-4f7a-beb3-6af28c18b332"}}},{"type":"Layer","name":"Trading System Announcements","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"42b9e505-a65d-4d8a-9169-35c38e208584","savedPayload":{"position":{"x":19223.677495559496,"y":25558.87739346182},"targetPosition":{"x":19221.677495559496,"y":25574.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"9fc6975d-a238-4dfe-a465-71b5fad20787","savedPayload":{"position":{"x":19295.677495559496,"y":25497.87739346182},"targetPosition":{"x":19221.677495559496,"y":25574.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2d7ed099-f9f2-4fb3-b03b-ad5bbe700ada","savedPayload":{"position":{"x":19221.677495559496,"y":25574.87739346182},"targetPosition":{"x":19165.677495559496,"y":25582.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Announcements","id":"84633784-93c1-470e-a0f8-a7beb8ce502c"}}},{"type":"Layer","name":"Trading System Warnings","config":"{\n \"status\": \"on\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"60936708-6fef-4112-a6af-8a2f4895665b","savedPayload":{"position":{"x":19176.677495559496,"y":25568.87739346182},"targetPosition":{"x":19232.677495559496,"y":25655.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"e2faa22e-9cba-4916-a70e-ea8d0ad32931","savedPayload":{"position":{"x":19203.677495559496,"y":25704.87739346182},"targetPosition":{"x":19232.677495559496,"y":25655.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"90f07755-e272-49b3-92c5-ee850af193c4","savedPayload":{"position":{"x":19232.677495559496,"y":25655.87739346182},"targetPosition":{"x":19165.677495559496,"y":25582.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Warnings","id":"bdce3741-9a44-4034-86a3-f49d6fc524f1"}}},{"type":"Layer","name":"Trading System Infos","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"0aff1c6d-3b4f-437c-adae-b8330124617c","savedPayload":{"position":{"x":19213.677495559496,"y":25546.87739346182},"targetPosition":{"x":19182.677495559496,"y":25572.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"ce9033fe-b6b3-45d9-8d57-6b35af2b95b3","savedPayload":{"position":{"x":19259.677495559496,"y":25632.87739346182},"targetPosition":{"x":19182.677495559496,"y":25572.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9b689d4e-f1b0-4c75-8cf9-30c24058aae2","savedPayload":{"position":{"x":19182.677495559496,"y":25572.87739346182},"targetPosition":{"x":19165.677495559496,"y":25582.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Infos","id":"d8640483-263f-418e-bc7d-c1a49f8ca077"}}}],"layerFolders":[],"id":"94a312de-0114-4b2c-9025-35de9465aabc","savedPayload":{"position":{"x":19165.677495559496,"y":25582.87739346182},"targetPosition":{"x":19249.677495559496,"y":25518.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"18221e34-ee7e-4fc2-bce8-436257fe6e2f","savedPayload":{"position":{"x":19249.677495559496,"y":25518.87739346182},"targetPosition":{"x":19199.677495559496,"y":25428.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d8c0ef7a-417c-4b6b-8cfb-6d305a978c0f","savedPayload":{"position":{"x":19199.677495559496,"y":25428.87739346182},"targetPosition":{"x":19205.677495559496,"y":25426.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"2c6c33b9-4e62-4961-b973-8a9c3019aa71"}}},"id":"6d862e7c-ea9c-4141-9fa1-1a62f104e34c","savedPayload":{"position":{"x":17858.370187293433,"y":24595.35039845171},"targetPosition":{"x":18040.99861599605,"y":24833.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Simulation Objects","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Simulation Objects","project":"Superalgos","layers":[{"type":"Layer","name":"Episodes","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Episode Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1de1ddb7-52f6-410e-8901-a73603e334ed","savedPayload":{"position":{"x":19248.677495559496,"y":25655.87739346182},"targetPosition":{"x":19321.677495559496,"y":25576.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Object","id":"bcbb3368-ea4c-466b-8423-8f0517ad35da"}}},{"type":"Layer Panel","name":"Episode Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"be26a1fa-9815-47d8-8672-eec48e71fec0","savedPayload":{"position":{"x":19416.677495559496,"y":25510.87739346182},"targetPosition":{"x":19321.677495559496,"y":25576.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Base Asset","id":"b18a5300-448b-4165-9b36-dc5ee37e58cd"}}},{"type":"Layer Panel","name":"Episode Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"76efbf6f-2034-4026-91ae-2753dcaf3740","savedPayload":{"position":{"x":19231.677495559496,"y":25644.87739346182},"targetPosition":{"x":19321.677495559496,"y":25576.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Quoted Asset","id":"dbdd55de-9279-48ef-a0b1-e50024f284e9"}}}],"id":"2db6b125-4ad3-49c4-b5dd-5177717e08f9","savedPayload":{"position":{"x":19321.677495559496,"y":25576.87739346182},"targetPosition":{"x":19267.677495559496,"y":25566.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"af62de0e-94fe-4365-9587-0d8dad1802d8","savedPayload":{"position":{"x":19261.677495559496,"y":25593.87739346182},"targetPosition":{"x":19208.677495559496,"y":25602.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"7237c558-a0e5-46c6-8cf5-ebc555e98efb"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a2c7db5c-f0e0-4ca2-97a3-cde6c648ae69","savedPayload":{"position":{"x":19208.677495559496,"y":25631.87739346182},"targetPosition":{"x":19208.677495559496,"y":25602.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"4958982a-b51a-40ef-8764-dd5451cf9837"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"349502ee-1207-4440-8a9c-f1a902ec6663","savedPayload":{"position":{"x":19302.677495559496,"y":25659.87739346182},"targetPosition":{"x":19208.677495559496,"y":25602.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"86fefa5e-8de8-4d00-a632-e1827ce60030"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"48a4d259-c522-4928-a6c0-a609d66ab4f1","savedPayload":{"position":{"x":19220.677495559496,"y":25548.87739346182},"targetPosition":{"x":19208.677495559496,"y":25602.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"79a3b846-3b23-4c01-9aa1-cedcebb5ca03"}}}],"id":"5a2c095d-9317-4931-baef-7ab9821ccc54","savedPayload":{"position":{"x":19208.677495559496,"y":25602.87739346182},"targetPosition":{"x":19267.677495559496,"y":25566.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"65b3542b-00fd-458a-adac-26eccb241467","savedPayload":{"position":{"x":19267.677495559496,"y":25566.87739346182},"targetPosition":{"x":19228.677495559496,"y":25638.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episodes","id":"19d5459e-93b0-4c37-8a9e-6a0f4db7ea82"}}},{"type":"Layer","name":"Strategies","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Strategy Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"89e15945-0816-4fc7-a948-5fdc3f9c46f8","savedPayload":{"position":{"x":19174.677495559496,"y":25714.87739346182},"targetPosition":{"x":19179.677495559496,"y":25615.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Strategy Object","id":"b256b76c-3834-4d62-aa56-f42cce9f47e9"}}}],"id":"2580d110-f6d0-42b0-a3c5-d9091216bff4","savedPayload":{"position":{"x":19179.677495559496,"y":25615.87739346182},"targetPosition":{"x":19236.677495559496,"y":25565.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"403101fc-e485-4363-8b0f-7f19f7d5b676","savedPayload":{"position":{"x":19227.677495559496,"y":25662.87739346182},"targetPosition":{"x":19308.677495559496,"y":25612.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"9ae59a68-71fd-4ec8-9a70-da743f33baee"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"b5f64cea-4700-4080-831a-fc949cc3edb6","savedPayload":{"position":{"x":19278.677495559496,"y":25562.87739346182},"targetPosition":{"x":19308.677495559496,"y":25612.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"504f327c-a08d-4c3d-8e77-850299cc30ed"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"3f3f5c60-9334-46a6-a1cc-a00decdf8c4c","savedPayload":{"position":{"x":19375.677495559496,"y":25581.87739346182},"targetPosition":{"x":19308.677495559496,"y":25612.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"f9500afd-e0f4-45d3-9647-45ec778554e8"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"553a6f42-5a5f-46c3-b2d2-e032e40ac9ba","savedPayload":{"position":{"x":19402.677495559496,"y":25520.87739346182},"targetPosition":{"x":19308.677495559496,"y":25612.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"354102dd-fd58-4f84-8e90-0d891defa0c8"}}}],"id":"22e42c11-2afe-41e6-a166-43b86fd2ea0a","savedPayload":{"position":{"x":19308.677495559496,"y":25612.87739346182},"targetPosition":{"x":19236.677495559496,"y":25565.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cef1fc30-0b07-48b8-8132-879d04e40571","savedPayload":{"position":{"x":19236.677495559496,"y":25565.87739346182},"targetPosition":{"x":19228.677495559496,"y":25638.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"f9391814-3a37-4ebe-be77-17eeeadebfc7"}}}],"layerFolders":[{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Market Buy Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"59714b0b-610e-4c9d-916c-e3b562098c75","savedPayload":{"position":{"x":19247.677495559496,"y":25719.87739346182},"targetPosition":{"x":19309.677495559496,"y":25634.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order","id":"12929733-5964-4948-877b-b1edda37162a"}}},{"type":"Layer Panel","name":"Market Buy Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"b3ff43d4-6ed9-497f-91bb-a01c09107b86","savedPayload":{"position":{"x":19268.677495559496,"y":25652.87739346182},"targetPosition":{"x":19309.677495559496,"y":25634.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order Stats","id":"81a88e44-189c-44ec-9607-cb1e4de8baa1"}}},{"type":"Layer Panel","name":"Market Buy Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2cbd1f79-692c-4c59-a773-db19214bb668","savedPayload":{"position":{"x":19321.677495559496,"y":25709.87739346182},"targetPosition":{"x":19309.677495559496,"y":25634.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order Base Asset","id":"608a9068-7324-4f4c-8fdd-d9d8e42e26c6"}}},{"type":"Layer Panel","name":"Market Buy Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"093ffa9d-39ca-4797-851e-8a63da3f8bbe","savedPayload":{"position":{"x":19397.677495559496,"y":25689.87739346182},"targetPosition":{"x":19309.677495559496,"y":25634.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order Quoted Asset","id":"1a55af5e-821d-4421-80d2-2c543d25ea1a"}}}],"id":"0c25a6b9-1382-42e3-b771-231ab5b16959","savedPayload":{"position":{"x":19309.677495559496,"y":25634.87739346182},"targetPosition":{"x":19407.677495559496,"y":25535.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"bfb69a6a-fad2-4653-980f-c1f70e68710f","savedPayload":{"position":{"x":19571.677495559496,"y":25478.87739346182},"targetPosition":{"x":19487.677495559496,"y":25445.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"6217d021-ea5b-4b20-b093-758a2d2fb5d4"}}}],"id":"be3d264f-2d25-4a04-93f4-32c54970b74c","savedPayload":{"position":{"x":19487.677495559496,"y":25445.87739346182},"targetPosition":{"x":19407.677495559496,"y":25535.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2e31e7bb-e043-4b23-ab0b-4c2cfec39366","savedPayload":{"position":{"x":19407.677495559496,"y":25535.87739346182},"targetPosition":{"x":19310.677495559496,"y":25558.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"9b7f1c09-af0e-4c08-ae4c-148ceab5a026"}}},{"type":"Layer","name":"Market Sell Orders","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Market Sell Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"707a52d3-8cdb-4a9a-b9d6-838a83f000f9","savedPayload":{"position":{"x":19107.677495559496,"y":25358.87739346182},"targetPosition":{"x":19202.677495559496,"y":25449.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order","id":"a5856620-e9ce-4ee1-830c-5b5dc45e9139"}}},{"type":"Layer Panel","name":"Market Sell Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"47506601-571b-44ba-a9bb-66c9ac09c789","savedPayload":{"position":{"x":19275.677495559496,"y":25390.87739346182},"targetPosition":{"x":19202.677495559496,"y":25449.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order Stats","id":"fb23f6bb-8383-4276-8a77-5180e622653a"}}},{"type":"Layer Panel","name":"Market Sell Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4c03c0f6-15d1-4448-a1de-84b8e8fa7038","savedPayload":{"position":{"x":19212.677495559496,"y":25464.87739346182},"targetPosition":{"x":19202.677495559496,"y":25449.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order Base Asset","id":"3e9e4e57-bd41-41f5-8d52-c92d3a707e80"}}},{"type":"Layer Panel","name":"Market Sell Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"b776a13e-928f-424d-bb39-82d89992fbf4","savedPayload":{"position":{"x":19180.677495559496,"y":25425.87739346182},"targetPosition":{"x":19202.677495559496,"y":25449.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order Quoted Asset","id":"51d59c30-3a02-4d74-aa62-f1524ea544ee"}}}],"id":"e70c9b38-7a7f-44c4-b286-7c2a2a18514e","savedPayload":{"position":{"x":19202.677495559496,"y":25449.87739346182},"targetPosition":{"x":19236.677495559496,"y":25517.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2bd67463-1a29-4393-a5f5-9271c46e17d6","savedPayload":{"position":{"x":19037.677495559496,"y":25605.87739346182},"targetPosition":{"x":19137.677495559496,"y":25568.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"5b8dcb5c-6b20-4edf-aae5-1c526cdca536"}}}],"id":"1e592b0b-c03b-40de-85d8-b131ea7d24d3","savedPayload":{"position":{"x":19137.677495559496,"y":25568.87739346182},"targetPosition":{"x":19236.677495559496,"y":25517.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4190bed3-e8ac-4e02-8ee9-4e5c9aa621b4","savedPayload":{"position":{"x":19236.677495559496,"y":25517.87739346182},"targetPosition":{"x":19310.677495559496,"y":25558.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"3e1862e4-e429-419c-866b-5c02891f2234"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Limit Buy Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"0b786458-e8cc-431e-96ff-2386ae0f7bb0","savedPayload":{"position":{"x":19223.677495559496,"y":25477.87739346182},"targetPosition":{"x":19323.677495559496,"y":25389.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order","id":"48ec80a7-6f68-4284-9bb5-f04ce3c1052b"}}},{"type":"Layer Panel","name":"Limit Buy Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2b6f7911-786c-4289-a561-81ebaec46f0f","savedPayload":{"position":{"x":19285.677495559496,"y":25483.87739346182},"targetPosition":{"x":19323.677495559496,"y":25389.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order Stats","id":"90bd6690-de93-4158-a17f-728c28defc38"}}},{"type":"Layer Panel","name":"Limit Buy Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"7c31389a-f313-43d8-80f3-18b002b2d437","savedPayload":{"position":{"x":19313.677495559496,"y":25432.87739346182},"targetPosition":{"x":19323.677495559496,"y":25389.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order Base Asset","id":"8504b6e3-83c8-45ea-959a-41303f9d4274"}}},{"type":"Layer Panel","name":"Limit Buy Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"edcfa348-0d21-4e9e-96f8-9771ee4df451","savedPayload":{"position":{"x":19233.677495559496,"y":25352.87739346182},"targetPosition":{"x":19323.677495559496,"y":25389.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order Quoted Asset","id":"b60e7e48-8ae7-4701-848b-8faa9ba58c11"}}}],"id":"3e58f1c2-2154-4b30-ac1d-853cd6cc756e","savedPayload":{"position":{"x":19323.677495559496,"y":25389.87739346182},"targetPosition":{"x":19271.677495559496,"y":25459.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Status Open","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5828b402-6e19-4934-b824-af844a22406f","savedPayload":{"position":{"x":19143.677495559496,"y":25464.87739346182},"targetPosition":{"x":19196.677495559496,"y":25413.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Open","id":"7be8ba85-07e7-4800-8988-ce76d2105b73"}}},{"type":"Layer Polygon","name":"Status Closed Cancel Event","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6149fb65-fc9d-46d2-9d67-70686a2526fb","savedPayload":{"position":{"x":19145.677495559496,"y":25315.87739346182},"targetPosition":{"x":19196.677495559496,"y":25413.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Cancel Event","id":"ab881143-5631-4b27-a97a-94138dbd370d"}}},{"type":"Layer Polygon","name":"Status Closed Filled","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"197888b0-ae34-4910-a50b-29e65b97196c","savedPayload":{"position":{"x":19150.677495559496,"y":25437.87739346182},"targetPosition":{"x":19196.677495559496,"y":25413.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Filled","id":"a54693cf-8ec1-469d-afb9-2a724e4f6af7"}}}],"id":"857bc9e6-0fa1-45d4-8363-59d9a199fcb0","savedPayload":{"position":{"x":19196.677495559496,"y":25413.87739346182},"targetPosition":{"x":19271.677495559496,"y":25459.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2ed3a3dd-85a3-4e98-a8cb-c9374feda568","savedPayload":{"position":{"x":19271.677495559496,"y":25459.87739346182},"targetPosition":{"x":19310.677495559496,"y":25558.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"8b595cff-673d-4d21-ac1b-c1c6a7ea04d4"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Limit Sell Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"46b86e42-e72c-4f3c-83d2-c1db16401df8","savedPayload":{"position":{"x":19330.677495559496,"y":25683.87739346182},"targetPosition":{"x":19403.677495559496,"y":25713.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order","id":"5d485d15-9919-42cc-9399-54c679d7085d"}}},{"type":"Layer Panel","name":"Limit Sell Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a1c07ec8-814b-4350-8e1e-33152f7e80d2","savedPayload":{"position":{"x":19430.677495559496,"y":25683.87739346182},"targetPosition":{"x":19403.677495559496,"y":25713.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order Stats","id":"db2f6e9c-ce79-4465-a0dc-8ea02fac26b7"}}},{"type":"Layer Panel","name":"Limit Sell Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"89a6038d-9810-4ed4-8d02-5a1995a17f16","savedPayload":{"position":{"x":19481.677495559496,"y":25694.87739346182},"targetPosition":{"x":19403.677495559496,"y":25713.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order Base Asset","id":"3e34000e-ad8c-4049-9eee-89e8ea362a0f"}}},{"type":"Layer Panel","name":"Limit Sell Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ffe9e83d-4c38-42ac-9ddb-35553da5d37f","savedPayload":{"position":{"x":19324.677495559496,"y":25621.87739346182},"targetPosition":{"x":19403.677495559496,"y":25713.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order Quoted Asset","id":"ae18b041-f16e-4d96-8a83-56845dddf64a"}}}],"id":"398186b3-6845-4bc6-95f7-145f923b8d56","savedPayload":{"position":{"x":19403.677495559496,"y":25713.87739346182},"targetPosition":{"x":19362.677495559496,"y":25648.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Status Open","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"eace9bbf-3b77-4787-bc98-6200ab7b60a8","savedPayload":{"position":{"x":19371.677495559496,"y":25775.87739346182},"targetPosition":{"x":19275.677495559496,"y":25713.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Open","id":"186d1b59-7d04-4b40-83c9-acc361b8a12a"}}},{"type":"Layer Polygon","name":"Status Closed Cancel Event","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"572aa25d-9769-4047-9354-353a16a1db24","savedPayload":{"position":{"x":19307.677495559496,"y":25728.87739346182},"targetPosition":{"x":19275.677495559496,"y":25713.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Cancel Event","id":"8e993263-dbfc-4d41-864a-9470e70d7e4f"}}},{"type":"Layer Polygon","name":"Status Closed Filled","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4c28a97f-5717-44c8-bb0e-2da50e19461c","savedPayload":{"position":{"x":19291.677495559496,"y":25759.87739346182},"targetPosition":{"x":19275.677495559496,"y":25713.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Filled","id":"bf0751d6-fdb2-4e66-a39c-2bd99252bd60"}}}],"id":"c3f10c99-2851-4212-92df-406aae4ef517","savedPayload":{"position":{"x":19275.677495559496,"y":25713.87739346182},"targetPosition":{"x":19362.677495559496,"y":25648.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9c1df338-42e9-4fcf-8420-5157770324ac","savedPayload":{"position":{"x":19362.677495559496,"y":25648.87739346182},"targetPosition":{"x":19310.677495559496,"y":25558.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"af34a526-4694-44f7-a678-748d101b6e61"}}}],"layerFolders":[],"id":"6f7a1a97-3c99-43f4-9133-2f628b683e0a","savedPayload":{"position":{"x":19310.677495559496,"y":25558.87739346182},"targetPosition":{"x":19228.677495559496,"y":25638.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Trigger Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Trigger Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"7ac674cf-335a-46fd-ae3d-7c9973975005","savedPayload":{"position":{"x":19048.677495559496,"y":25731.87739346182},"targetPosition":{"x":19127.677495559496,"y":25825.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Trigger Stage Object","id":"c10b9b7b-04d8-460b-9dcc-2eaed24e17df"}}}],"id":"dd85f421-7e8b-4da5-bd87-07e4b520846e","savedPayload":{"position":{"x":19127.677495559496,"y":25825.87739346182},"targetPosition":{"x":19148.677495559496,"y":25755.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"efeee831-f442-478f-b2d6-233faffa4490","savedPayload":{"position":{"x":19182.677495559496,"y":25802.87739346182},"targetPosition":{"x":19158.677495559496,"y":25767.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"9e88f3a0-09ad-44fd-a84e-731228860e66"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ec0cb3d9-f111-488c-91b9-051a9e409bcb","savedPayload":{"position":{"x":19166.677495559496,"y":25670.87739346182},"targetPosition":{"x":19158.677495559496,"y":25767.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"e2e18af7-af5f-4634-b8a4-4fabd2ddd7a5"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"74869855-c6a9-4d02-8980-9a4d04e0e6ad","savedPayload":{"position":{"x":19187.677495559496,"y":25719.87739346182},"targetPosition":{"x":19158.677495559496,"y":25767.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"08d916aa-6d2d-497b-8738-9b0966e3901e"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5c343966-b2b5-415e-921d-a40987ceb774","savedPayload":{"position":{"x":19129.677495559496,"y":25739.87739346182},"targetPosition":{"x":19158.677495559496,"y":25767.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"70de0f73-5a2d-4a5a-a5f7-1863f192a14d"}}}],"id":"7675f7b6-02f8-40b0-8446-1e50b0d9b50f","savedPayload":{"position":{"x":19158.677495559496,"y":25767.87739346182},"targetPosition":{"x":19148.677495559496,"y":25755.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f919999b-83fe-4105-bd0c-6e9645edbbdb","savedPayload":{"position":{"x":19148.677495559496,"y":25755.87739346182},"targetPosition":{"x":19140.677495559496,"y":25660.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stages","id":"fe5ea980-791c-4962-979a-1c3f96663835"}}},{"type":"Layer","name":"Open Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Open Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"73384ec6-f1a6-4205-aafc-7f68e78f8b61","savedPayload":{"position":{"x":19011.677495559496,"y":25706.87739346182},"targetPosition":{"x":19052.677495559496,"y":25632.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Open Stage Object","id":"be56e169-d089-4aea-a18a-c01cf16a3485"}}}],"id":"3ed235f2-d407-4b10-bb9b-18ba394971ba","savedPayload":{"position":{"x":19052.677495559496,"y":25632.87739346182},"targetPosition":{"x":19129.677495559496,"y":25693.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ad6a1d3c-ad09-4112-a538-2d2e016bfe86","savedPayload":{"position":{"x":19111.677495559496,"y":25619.87739346182},"targetPosition":{"x":19109.677495559496,"y":25705.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"21db891e-4c47-4a5a-88a5-036297086138"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"93f28e45-e6e0-48a4-973a-8573c4cf02a1","savedPayload":{"position":{"x":19019.677495559496,"y":25692.87739346182},"targetPosition":{"x":19109.677495559496,"y":25705.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"2a3d0d93-13d9-4a9e-8d32-c0aa5d7ab1e3"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"d33bce6f-4e24-4355-8c5f-3280b38ab074","savedPayload":{"position":{"x":19174.677495559496,"y":25677.87739346182},"targetPosition":{"x":19109.677495559496,"y":25705.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"616f49d0-daaa-4b82-be0d-56504b402616"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"bf276cf6-7ba3-4b81-8aac-5fdaa75fe14f","savedPayload":{"position":{"x":19057.677495559496,"y":25764.87739346182},"targetPosition":{"x":19109.677495559496,"y":25705.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"0fab39ff-8caf-45f8-8650-33d7a65fa6e1"}}}],"id":"7bb73bc1-52c2-4edb-8b0f-f40052fea4e8","savedPayload":{"position":{"x":19109.677495559496,"y":25705.87739346182},"targetPosition":{"x":19129.677495559496,"y":25693.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e75b49dc-02eb-440d-bfdb-fb300b454b33","savedPayload":{"position":{"x":19129.677495559496,"y":25693.87739346182},"targetPosition":{"x":19140.677495559496,"y":25660.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stages","id":"7528e7c1-d7b6-4b3a-bfbd-7e05f5c2b4b0"}}},{"type":"Layer","name":"Manage Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Manage Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a365fc4b-e120-443e-9612-9b7abc0f72dc","savedPayload":{"position":{"x":19250.677495559496,"y":25676.87739346182},"targetPosition":{"x":19151.677495559496,"y":25639.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Manage Stage Object","id":"3db5604f-cacf-4c87-b1ea-5aa364bf9f48"}}}],"id":"479f3c7a-ef61-4614-8ce8-c7f69ca796f7","savedPayload":{"position":{"x":19151.677495559496,"y":25639.87739346182},"targetPosition":{"x":19087.677495559496,"y":25577.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ee9bbbf2-7e20-4f67-9307-cd600aec059f","savedPayload":{"position":{"x":19117.677495559496,"y":25435.87739346182},"targetPosition":{"x":19105.677495559496,"y":25483.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"43435aed-68cb-4a56-88c4-2574d91f5b32"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"3e419d1c-8fec-437a-a830-c547199fc1d2","savedPayload":{"position":{"x":19128.677495559496,"y":25542.87739346182},"targetPosition":{"x":19105.677495559496,"y":25483.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"904be022-f1e2-475e-9115-88224353cfa2"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"cd8a0a3e-d210-4707-b27e-e2cb4c6baef9","savedPayload":{"position":{"x":19116.677495559496,"y":25477.87739346182},"targetPosition":{"x":19105.677495559496,"y":25483.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"4c74d4d8-d0a4-4581-bee7-36485d7a91a5"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"cac382e4-c4f9-455a-b147-080a59252b05","savedPayload":{"position":{"x":19013.677495559496,"y":25426.87739346182},"targetPosition":{"x":19105.677495559496,"y":25483.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"9fc6d2c4-a67b-42e8-841b-7523f7ab4962"}}}],"id":"9de0fce4-703e-4e18-91bb-16ddedf468af","savedPayload":{"position":{"x":19105.677495559496,"y":25483.87739346182},"targetPosition":{"x":19087.677495559496,"y":25577.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8584f8a2-e08f-405b-9c34-2b0409391045","savedPayload":{"position":{"x":19087.677495559496,"y":25577.87739346182},"targetPosition":{"x":19140.677495559496,"y":25660.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stages","id":"e5b35205-1a83-4c9d-bbb6-1587b31d7fa2"}}},{"type":"Layer","name":"Close Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Close Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"df699a0c-d287-468c-9774-aa53772bc13d","savedPayload":{"position":{"x":19148.677495559496,"y":25752.87739346182},"targetPosition":{"x":19159.677495559496,"y":25724.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Close Stage Object","id":"069885e7-351f-45dc-8423-113db65b9592"}}}],"id":"49b05eb9-4548-4cc6-b482-3e4ed5c05787","savedPayload":{"position":{"x":19159.677495559496,"y":25724.87739346182},"targetPosition":{"x":19196.677495559496,"y":25756.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"27ebd812-cf4b-4cc5-8a25-7a2011005fc8","savedPayload":{"position":{"x":19271.677495559496,"y":25729.87739346182},"targetPosition":{"x":19256.677495559496,"y":25656.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"9463d512-21f5-48c1-8cd6-b14747b338cf"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"8a1fbf61-cda7-4dd1-947b-7acbda91dac2","savedPayload":{"position":{"x":19271.677495559496,"y":25712.87739346182},"targetPosition":{"x":19256.677495559496,"y":25656.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"c3249cad-9f26-4ff2-ab0d-968c66bb7f2d"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ff665eb5-51c2-4cef-b841-c4a56a252886","savedPayload":{"position":{"x":19345.677495559496,"y":25690.87739346182},"targetPosition":{"x":19256.677495559496,"y":25656.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"dbd9d421-d90c-4ab8-a26b-c2254d7abec1"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4b178b44-db54-467c-b456-77750cc78069","savedPayload":{"position":{"x":19264.677495559496,"y":25632.87739346182},"targetPosition":{"x":19256.677495559496,"y":25656.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"a5e40c24-183d-4896-97b0-f9f0f104c240"}}}],"id":"3767bc5f-f16b-4709-becb-b86ee0f5a3fc","savedPayload":{"position":{"x":19256.677495559496,"y":25656.87739346182},"targetPosition":{"x":19196.677495559496,"y":25756.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"773ffba7-8329-4410-8721-7d8f2b639bf6","savedPayload":{"position":{"x":19196.677495559496,"y":25756.87739346182},"targetPosition":{"x":19140.677495559496,"y":25660.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stages","id":"305af32b-0136-4382-8cbb-f4def428274c"}}}],"layerFolders":[],"id":"74890a99-04dd-4eee-ad60-4f00214814b3","savedPayload":{"position":{"x":19140.677495559496,"y":25660.87739346182},"targetPosition":{"x":19228.677495559496,"y":25638.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Positions","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Position Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5c68fb39-d246-4ff7-9c9b-a3487c93b3f7","savedPayload":{"position":{"x":19468.677495559496,"y":25728.87739346182},"targetPosition":{"x":19376.677495559496,"y":25633.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Object","id":"3d274e02-8896-4311-a0c8-9041b6507090"}}},{"type":"Layer Panel","name":"Position Combined Statistics","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"44d486f8-408f-4f5b-b1f6-31da6c166cd7","savedPayload":{"position":{"x":19290.677495559496,"y":25575.87739346182},"targetPosition":{"x":19376.677495559496,"y":25633.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Combined Statistics","id":"05d6bb3e-f975-471f-be1f-3215025ce6fe"}}}],"id":"1feaf0d0-acf7-4ebf-9ce1-654ba961d3fe","savedPayload":{"position":{"x":19376.677495559496,"y":25633.87739346182},"targetPosition":{"x":19307.677495559496,"y":25583.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Entry Target Rate Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"12a796c9-5930-4c4d-a9cc-c8da6f15c7b7","savedPayload":{"position":{"x":19305.677495559496,"y":25627.87739346182},"targetPosition":{"x":19259.677495559496,"y":25558.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Entry Target Rate Line","id":"543ebae2-5624-49ad-a00f-df63335e92a9"}}},{"type":"Layer Polygon","name":"Exit Target Rate Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"692b4164-5315-44bf-b443-f6180a30db7d","savedPayload":{"position":{"x":19236.677495559496,"y":25520.87739346182},"targetPosition":{"x":19259.677495559496,"y":25558.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Exit Target Rate Line","id":"b066c240-8552-4622-9597-77e812491910"}}}],"id":"40077a20-c675-4dad-97cc-77a1ba1d4de8","savedPayload":{"position":{"x":19259.677495559496,"y":25558.87739346182},"targetPosition":{"x":19307.677495559496,"y":25583.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d0ad6169-0e34-419e-bc14-004a08eb976c","savedPayload":{"position":{"x":19307.677495559496,"y":25583.87739346182},"targetPosition":{"x":19217.677495559496,"y":25559.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Positions","id":"10971a05-a642-4759-a952-e114694a884e"}}},{"type":"Layer","name":"Position Base Asset","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Position Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"04b38cb6-44df-4d8c-9e07-031944496a72","savedPayload":{"position":{"x":19205.677495559496,"y":25475.87739346182},"targetPosition":{"x":19170.677495559496,"y":25551.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Base Asset","id":"b4298480-8922-4c40-ac79-b4484f8558bd"}}}],"id":"45cfe449-aa94-4919-b396-6b5e0a169709","savedPayload":{"position":{"x":19170.677495559496,"y":25551.87739346182},"targetPosition":{"x":19256.677495559496,"y":25563.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Profit Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"df211603-37f3-4a38-8b7b-ac19a4a2d442","savedPayload":{"position":{"x":19278.677495559496,"y":25590.87739346182},"targetPosition":{"x":19251.677495559496,"y":25568.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Profit Triangle","id":"2628b290-a09a-4807-8a45-7ff5a880d195"}}},{"type":"Layer Polygon","name":"Loss Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"7c469bf0-7af9-4d54-b9c0-91b66adf3bc8","savedPayload":{"position":{"x":19242.677495559496,"y":25557.87739346182},"targetPosition":{"x":19251.677495559496,"y":25568.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Loss Triangle","id":"e37cfbb4-fe54-49ad-9525-29b0d77e082b"}}},{"type":"Layer Polygon","name":"Empty Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"bf9ef267-8dd9-4e77-8265-895e3a653f20","savedPayload":{"position":{"x":19223.677495559496,"y":25600.87739346182},"targetPosition":{"x":19251.677495559496,"y":25568.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Empty Triangle","id":"23c30ca5-95ec-47b2-a65f-01969b1a5a78"}}}],"id":"6ee73ce4-b14c-4704-9ec9-8505d9838586","savedPayload":{"position":{"x":19251.677495559496,"y":25568.87739346182},"targetPosition":{"x":19256.677495559496,"y":25563.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0c632d79-10f0-43bd-8cc3-7debbda944d9","savedPayload":{"position":{"x":19256.677495559496,"y":25563.87739346182},"targetPosition":{"x":19217.677495559496,"y":25559.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Base Asset","id":"28d64a66-6238-4780-a322-74bb988486d7"}}},{"type":"Layer","name":"Position Quoted Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Position Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f6fa1675-cd7c-471a-8447-c7880ddd2701","savedPayload":{"position":{"x":19282.677495559496,"y":25643.87739346182},"targetPosition":{"x":19209.677495559496,"y":25648.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Quoted Asset","id":"f15d0a31-30bd-49a6-8c45-1bcd1a9cc5a8"}}}],"id":"df3be9af-1734-4dd9-8a63-cb44bb91d8bb","savedPayload":{"position":{"x":19209.677495559496,"y":25648.87739346182},"targetPosition":{"x":19183.677495559496,"y":25616.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Profit Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6ab6314f-42e1-498b-bcb1-34815ead7a95","savedPayload":{"position":{"x":19188.677495559496,"y":25516.87739346182},"targetPosition":{"x":19150.677495559496,"y":25575.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Profit Triangle","id":"9cf82ef4-557e-498e-b121-ff28235b3a25"}}},{"type":"Layer Polygon","name":"Loss Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1bff082d-4342-4324-9b50-eafe10fa2292","savedPayload":{"position":{"x":19068.677495559496,"y":25529.87739346182},"targetPosition":{"x":19150.677495559496,"y":25575.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Loss Triangle","id":"61faa796-9697-48b0-a582-613e1b351931"}}},{"type":"Layer Polygon","name":"Empty Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"d06a4280-0765-41ae-9abc-3bef979778b4","savedPayload":{"position":{"x":19236.677495559496,"y":25578.87739346182},"targetPosition":{"x":19150.677495559496,"y":25575.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Empty Triangle","id":"58c807a3-8443-43d9-82e9-81c3d0545399"}}}],"id":"edc7cefb-d906-4802-a0f4-62d9e1c06a8b","savedPayload":{"position":{"x":19150.677495559496,"y":25575.87739346182},"targetPosition":{"x":19183.677495559496,"y":25616.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4ae0d63d-0060-4cb9-8873-2ded394f6720","savedPayload":{"position":{"x":19183.677495559496,"y":25616.87739346182},"targetPosition":{"x":19217.677495559496,"y":25559.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Quoted Asset","id":"76484f39-20e9-486e-a301-55626440c3a9"}}},{"type":"Layer","name":"Stop Loss","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Stop Loss Panel","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"82ac0cec-db30-4ef7-ba48-8dd62be64505","savedPayload":{"position":{"x":19291.677495559496,"y":25482.87739346182},"targetPosition":{"x":19249.677495559496,"y":25528.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Stop Loss Panel","id":"1b6d3bd0-e594-4b09-9f1c-021177676d84"}}}],"id":"b015c196-9f6b-4c29-ac12-7f46edfe78ca","savedPayload":{"position":{"x":19249.677495559496,"y":25528.87739346182},"targetPosition":{"x":19193.677495559496,"y":25570.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f0b1f60b-94c3-40a9-bcba-606e9c1b985e","savedPayload":{"position":{"x":19227.677495559496,"y":25543.87739346182},"targetPosition":{"x":19136.677495559496,"y":25610.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"9d351f29-6a3e-4c2b-b008-ebe1414d2aa8"}}}],"id":"db3094ff-dc54-4c4c-a690-67a5d5daa79c","savedPayload":{"position":{"x":19136.677495559496,"y":25610.87739346182},"targetPosition":{"x":19193.677495559496,"y":25570.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1620f124-07e1-49a3-ae51-af0c54b95414","savedPayload":{"position":{"x":19193.677495559496,"y":25570.87739346182},"targetPosition":{"x":19217.677495559496,"y":25559.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Stop Loss","id":"4d412b84-013f-45fa-b684-6269167fd5e5"}}},{"type":"Layer","name":"Take Profit","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Take Profit Panel","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4f571f46-451b-452c-80a7-7a1785538c47","savedPayload":{"position":{"x":19226.677495559496,"y":25523.87739346182},"targetPosition":{"x":19164.677495559496,"y":25543.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Take Profit Panel","id":"33aa2293-7958-4cc3-bb41-fc97c17ccd67"}}}],"id":"06fc1648-349d-442b-89b6-fb2c0c6399bc","savedPayload":{"position":{"x":19164.677495559496,"y":25543.87739346182},"targetPosition":{"x":19259.677495559496,"y":25637.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a8aaaa2b-6082-40ae-b3a1-b207dec37e3b","savedPayload":{"position":{"x":19247.677495559496,"y":25597.87739346182},"targetPosition":{"x":19290.677495559496,"y":25599.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"a0b598d2-cdb6-4ce7-96c5-ef3317ae1768"}}}],"id":"beaa36ea-aa22-421d-85c4-7a5dba72d12f","savedPayload":{"position":{"x":19290.677495559496,"y":25599.87739346182},"targetPosition":{"x":19259.677495559496,"y":25637.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2312a302-2d84-4c37-bf68-a5f104b14c17","savedPayload":{"position":{"x":19259.677495559496,"y":25637.87739346182},"targetPosition":{"x":19217.677495559496,"y":25559.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Take Profit","id":"84c07d10-d91a-462a-b0db-62e6a3d99703"}}}],"layerFolders":[],"id":"7e6de8a0-1ab3-472b-8b41-f2414c28a3c5","savedPayload":{"position":{"x":19217.677495559496,"y":25559.87739346182},"targetPosition":{"x":19228.677495559496,"y":25638.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3e572713-69a8-4cec-afa1-7afa678b3be9","savedPayload":{"position":{"x":19228.677495559496,"y":25638.87739346182},"targetPosition":{"x":19144.677495559496,"y":25577.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"72cd06b2-d7b9-48f6-8ca1-29ee5524def8","savedPayload":{"position":{"x":19144.677495559496,"y":25577.87739346182},"targetPosition":{"x":19176.677495559496,"y":25616.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04edecb9-a2d5-4af5-bbb4-505146842715","savedPayload":{"position":{"x":19176.677495559496,"y":25616.87739346182},"targetPosition":{"x":19218.677495559496,"y":25541.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"2c6c33b9-4e62-4961-b973-8a9c3019aa71"}}},"id":"f564a96a-71b7-4a05-a050-48f1c529f8e9","savedPayload":{"position":{"x":17963.352902465293,"y":24543.57865265236},"targetPosition":{"x":18040.99861599605,"y":24833.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Masters Data","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Exchange Raw Data","project":"Superalgos","layers":[],"layerFolders":[],"id":"2d2260ff-f684-43a2-88d5-ce62054d5feb","savedPayload":{"position":{"x":25305.702020024393,"y":32752.48311100667},"targetPosition":{"x":25523.314331328078,"y":32958.989483714795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Candles Volumes","project":"Superalgos","layers":[{"type":"Layer","name":"Candles","config":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Candle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ffca0920-79a4-40c4-b0fc-fea4be2b99ba","savedPayload":{"position":{"x":19122.677495559496,"y":25750.87739346182},"targetPosition":{"x":19186.677495559496,"y":25717.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Candle","id":"9336f4e6-d56b-4ed4-819d-0bb762ba1fdd"}}}],"id":"3ede8ebf-1119-4ec0-8867-28bc37490a9a","savedPayload":{"position":{"x":19186.677495559496,"y":25717.87739346182},"targetPosition":{"x":19203.677495559496,"y":25643.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"7be93576-10b7-4f4b-960d-59ecb7793284","savedPayload":{"position":{"x":19214.677495559496,"y":25599.87739346182},"targetPosition":{"x":19203.677495559496,"y":25643.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"33cca277-b9ce-4ac2-b8a7-cfa4ed053dd9","savedPayload":{"position":{"x":25375.938575367953,"y":32378.696056557063},"targetPosition":{"x":25468.643673680435,"y":32664.013011445608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"2a290f06-5f0b-4f57-93d1-7579fa589aa0"}}},{"type":"Layer","name":"Volumes","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Volume","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"de1e3c25-904d-49a6-860a-ea099e0ac98c","savedPayload":{"position":{"x":19172.677495559496,"y":25562.87739346182},"targetPosition":{"x":19116.677495559496,"y":25555.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Volume","id":"42dbd098-4550-44a0-987f-54a28dd5f40b"}}}],"id":"bb4d2c77-3594-4ff2-8a8d-f82a54d74a98","savedPayload":{"position":{"x":19116.677495559496,"y":25555.87739346182},"targetPosition":{"x":19171.677495559496,"y":25569.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"004dbe62-3413-48c4-b7f8-189c0031b0d1","savedPayload":{"position":{"x":19200.677495559496,"y":25521.87739346182},"targetPosition":{"x":19171.677495559496,"y":25569.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"67a59d37-a97c-4b4c-b472-8465f4d3c0a9","savedPayload":{"position":{"x":25452.942886807552,"y":32364.424151019237},"targetPosition":{"x":25468.643673680435,"y":32664.013011445608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"c789572d-ff73-4664-b2a2-8b84a73dccb1"}}}],"layerFolders":[],"id":"a3a54b07-f764-4fe7-8d0d-340c5eb717c5","savedPayload":{"position":{"x":25468.643673680435,"y":32664.013011445608},"targetPosition":{"x":25523.314331328078,"y":32958.989483714795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Bollinger Bands","project":"Superalgos","layers":[{"type":"Layer","name":"Bollinger Bands","config":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Bollinger Band","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ba103b02-4ca6-4ff7-aa8e-869bf2bf745c","savedPayload":{"position":{"x":18986.677495559496,"y":25545.87739346182},"targetPosition":{"x":18992.677495559496,"y":25588.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Bollinger Band","id":"de7b7008-6f66-4d7d-96dd-1aa7b1ede335"}}}],"id":"93545ab0-5649-44b3-8a94-d3e5a1375848","savedPayload":{"position":{"x":18992.677495559496,"y":25588.87739346182},"targetPosition":{"x":19016.677495559496,"y":25522.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"7ae54a09-4241-44f1-97d5-6030dce59060","savedPayload":{"position":{"x":19002.677495559496,"y":25499.87739346182},"targetPosition":{"x":19016.677495559496,"y":25522.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"dd247e01-d594-45a0-8fd6-75a36d9dece8","savedPayload":{"position":{"x":25745.17275868305,"y":32402.896943521293},"targetPosition":{"x":25652.467660370567,"y":32688.21389840984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"a213e62e-cf80-46e7-8bcf-424d45b8e571"}}},{"type":"Layer","name":"Percentage Bandwidth","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"%B Panel","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"94cc3fdf-57c0-4a52-95ec-9fd94d160bdb","savedPayload":{"position":{"x":19092.677495559496,"y":25517.87739346182},"targetPosition":{"x":19098.677495559496,"y":25446.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"%B Panel","id":"36548f31-d96c-4c80-b923-dea5dd5b56c7"}}}],"id":"6ee23f7f-b60e-4fa9-a749-1b171fb851db","savedPayload":{"position":{"x":19098.677495559496,"y":25446.87739346182},"targetPosition":{"x":19088.677495559496,"y":25416.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Area From 0 to 30","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"354fee17-d33e-43ed-995c-e920673b9bf5","savedPayload":{"position":{"x":18974.677495559496,"y":25364.87739346182},"targetPosition":{"x":19003.677495559496,"y":25459.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Area From 0 to 30","id":"d76f185f-5219-4f0b-adb3-9a339b0468c6"}}},{"type":"Layer Polygon","name":"Area From 30 to 70","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"af71b75d-cf63-436f-ab7c-21d21256d186","savedPayload":{"position":{"x":18903.677495559496,"y":25537.87739346182},"targetPosition":{"x":19003.677495559496,"y":25459.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Area From 30 to 70","id":"1a7969dd-af18-4e44-b4c9-96dd2be57f7c"}}},{"type":"Layer Polygon","name":"Area From 70 to 100","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"23e78ecc-218d-485b-985a-abffbdf27595","savedPayload":{"position":{"x":19021.677495559496,"y":25546.87739346182},"targetPosition":{"x":19003.677495559496,"y":25459.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Area From 70 to 100","id":"cb1bcd11-0fb0-4377-bff2-dee4630e0f3f"}}},{"type":"Layer Polygon","name":"Line 30","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"91cdf75d-265e-4383-9612-b7417f78a7d4","savedPayload":{"position":{"x":18950.677495559496,"y":25534.87739346182},"targetPosition":{"x":19003.677495559496,"y":25459.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Line 30","id":"857043cc-f467-44d2-89eb-2e73f35f638d"}}},{"type":"Layer Polygon","name":"Line 30","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a1b6613d-a0e4-47ae-a556-d0570c1559b4","savedPayload":{"position":{"x":18980.677495559496,"y":25386.87739346182},"targetPosition":{"x":19003.677495559496,"y":25459.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Line 30","id":"984a1917-1d81-4142-a50f-269a18a07c9d"}}},{"type":"Layer Polygon","name":"Bandwidth","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1fc604ac-f96c-440a-a0a5-e1e704f7a44d","savedPayload":{"position":{"x":19007.677495559496,"y":25362.87739346182},"targetPosition":{"x":19003.677495559496,"y":25459.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Bandwidth","id":"0f7a4004-177c-4412-b0ef-2608f3c13da6"}}},{"type":"Layer Polygon","name":"Value","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1e71eb5e-70ec-4ec2-8b1d-e1a6b6390de4","savedPayload":{"position":{"x":18949.677495559496,"y":25492.87739346182},"targetPosition":{"x":19003.677495559496,"y":25459.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Value","id":"4598a671-83b9-4460-9e65-175df73eba71"}}},{"type":"Layer Polygon","name":"Moving Average","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e6938d2c-dbda-476d-82f6-1d71fea61cb2","savedPayload":{"position":{"x":19099.677495559496,"y":25448.87739346182},"targetPosition":{"x":19003.677495559496,"y":25459.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Moving Average","id":"69c19382-ed5b-48d1-9249-426a8e1e4e51"}}}],"id":"365316b4-a903-482d-8e23-cdde1e198528","savedPayload":{"position":{"x":19003.677495559496,"y":25459.87739346182},"targetPosition":{"x":19088.677495559496,"y":25416.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1e1920a7-3f7f-49ed-9074-38263ef52b8c","savedPayload":{"position":{"x":25815.859370875074,"y":32436.61272802621},"targetPosition":{"x":25652.467660370567,"y":32688.21389840984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"cdc4ac34-0ec2-4711-9c97-954e42c72d1b"}}}],"layerFolders":[],"id":"76ac1800-36aa-4b19-bc3b-881ff838b856","savedPayload":{"position":{"x":25652.467660370567,"y":32688.21389840984},"targetPosition":{"x":25523.314331328078,"y":32958.989483714795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Bollinger Channels","project":"Superalgos","layers":[{"type":"Layer","name":"Bollinger Channels Objects","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Bollinger Channels Objects","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6bdcb3ed-0a06-43e4-957e-42f6136ef320","savedPayload":{"position":{"x":19048.677495559496,"y":25598.87739346182},"targetPosition":{"x":19136.677495559496,"y":25542.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Bollinger Channels Objects","id":"09c8f781-3e54-4bed-bd9a-83e8179fdd66"}}}],"id":"cd3b17d8-e8f7-44d5-8c62-dde55ca042e3","savedPayload":{"position":{"x":19136.677495559496,"y":25542.87739346182},"targetPosition":{"x":19163.677495559496,"y":25530.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"56c13c2d-488e-4383-b576-3a13149cda07","savedPayload":{"position":{"x":19212.677495559496,"y":25361.87739346182},"targetPosition":{"x":19190.677495559496,"y":25435.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"6e21446c-93e7-44ad-814d-3cd2fa8f8baf"}}}],"id":"165c934f-e245-4c92-a6fb-14a34790a34c","savedPayload":{"position":{"x":19190.677495559496,"y":25435.87739346182},"targetPosition":{"x":19163.677495559496,"y":25530.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"01792b6e-fb77-4c0d-8a10-2b269d692b5e","savedPayload":{"position":{"x":26009.902912769885,"y":32615.102673729256},"targetPosition":{"x":25786.959465126667,"y":32815.841855636914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"aef85abd-8069-4aed-8436-8e67203e5624"}}},{"type":"Layer","name":"Bollinger Channels","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Bollinger Channels","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"abfb59b1-30cd-478a-9761-609fec54f1e4","savedPayload":{"position":{"x":18894.677495559496,"y":25466.87739346182},"targetPosition":{"x":18969.677495559496,"y":25468.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Bollinger Channels","id":"abb4f289-c374-43e0-b8dc-d586d8e3328e"}}}],"id":"9482556e-0e07-4a3a-9f2f-0cd77939769b","savedPayload":{"position":{"x":18969.677495559496,"y":25468.87739346182},"targetPosition":{"x":19038.677495559496,"y":25402.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"fd1a3ba4-b913-4bf6-ba9a-4a0e40493596","savedPayload":{"position":{"x":18980.677495559496,"y":25314.87739346182},"targetPosition":{"x":19038.677495559496,"y":25402.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9f76a3b5-821c-4bec-8ffc-1ba771b1bc4b","savedPayload":{"position":{"x":26038.560635510294,"y":32652.450145132407},"targetPosition":{"x":25786.959465126667,"y":32815.841855636914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"2fdc23da-996c-4429-8beb-3d9db46e2510"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Bollinger Sub Channels Objects","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"fa7b7887-2075-440e-8ced-38b31ab32964","savedPayload":{"position":{"x":18975.677495559496,"y":25649.87739346182},"targetPosition":{"x":19064.677495559496,"y":25566.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Bollinger Sub Channels Objects","id":"8ce4c7ca-3496-4df8-9d57-335d40cc77a0"}}}],"id":"ba3c27c3-ab2b-4db6-81df-9e4f5774e61b","savedPayload":{"position":{"x":19064.677495559496,"y":25566.87739346182},"targetPosition":{"x":19099.677495559496,"y":25502.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"0ecd3864-c6dd-4456-83ea-24670327f053","savedPayload":{"position":{"x":19022.677495559496,"y":25552.87739346182},"targetPosition":{"x":19099.677495559496,"y":25502.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6451eed5-112f-4e93-aa9e-1cf5cd5c316f","savedPayload":{"position":{"x":26061.023102419447,"y":32693.820862714176},"targetPosition":{"x":25786.959465126667,"y":32815.841855636914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"cbf3145e-ab44-4b47-92a5-8d4a7f81802a"}}},{"type":"Layer","name":"Bollinger Sub-Channels","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Bollinger Sub Channels","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"53c349b1-4df1-4489-9661-2c06cb66082e","savedPayload":{"position":{"x":19277.677495559496,"y":25552.87739346182},"targetPosition":{"x":19263.677495559496,"y":25488.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Bollinger Sub Channels","id":"1beae26c-7235-46ef-a732-1d0c9f18dda5"}}}],"id":"1bb0b45e-af25-42ff-b54d-9bc9f570a1db","savedPayload":{"position":{"x":19263.677495559496,"y":25488.87739346182},"targetPosition":{"x":19199.677495559496,"y":25486.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"78ded1e5-c8ee-4bb6-bc91-01cf8378534a","savedPayload":{"position":{"x":19182.677495559496,"y":25552.87739346182},"targetPosition":{"x":19199.677495559496,"y":25486.87739346182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7f8e0593-d3e4-453d-8514-78c0d60729b9","savedPayload":{"position":{"x":26076.737213013388,"y":32738.196142106157},"targetPosition":{"x":25786.959465126667,"y":32815.841855636914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"144f7f8b-36b1-4e46-b3a1-3ea6e178d452"}}}],"layerFolders":[],"id":"6e924429-c3ac-4eb6-9080-4f160ee81436","savedPayload":{"position":{"x":25786.959465126667,"y":32815.841855636914},"targetPosition":{"x":25523.314331328078,"y":32958.989483714795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6e0dd661-d863-4f99-94e0-2de7deea292b","savedPayload":{"position":{"x":18119.314331328078,"y":24238.489483714795},"targetPosition":{"x":18080.156473662064,"y":24535.922942126937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Data Mine Products","name":"Masters","id":"0cda2799-71dd-4378-9239-4d9429f84a18"}}},"id":"b95fbcc7-33f3-40f9-8cf8-7f020b74282a","savedPayload":{"position":{"x":18080.156473662064,"y":24535.922942126937},"targetPosition":{"x":18040.99861599605,"y":24833.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ac37953d-bcaa-48d6-b2de-02479fbbd6f0","savedPayload":{"position":{"x":18040.99861599605,"y":24833.35640053908},"targetPosition":{"x":18300.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":965,"y":-155},"width":256,"height":115.125,"radius":0},"referenceParent":{"type":"Backtesting Session","name":"BB Breakdown 2","id":"21c1a266-ac7f-4eb1-8671-7e290d8b8a58"}}}],"id":"3bab55bf-2b24-49bb-a982-f6e710b50381","savedPayload":{"position":{"x":18300.806237131383,"y":24983.35640053908},"targetPosition":{"x":18600.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","id":"5882d8a8-345b-4188-b1c1-797e9ff805d9"}}}],"id":"0cac30ea-5d81-4984-aaee-8c86cec26ec2","savedPayload":{"position":{"x":18600.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"ef4b033a-aeb2-4461-bc25-019a834c0b23"}}}],"id":"21d2ec55-9e56-4652-8e96-c7e451262c36","savedPayload":{"position":{"x":18900.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"c"}}},{"type":"Plugins","name":"New Plugins","project":"Superalgos","pluginProjects":[{"type":"Plugin Project","name":"Superalgos","config":"{ \n \"codeName\": \"Superalgos\"\n}","project":"Superalgos","pluginDataMines":{"type":"Plugin Data Mines","name":"New Plugin Data Mines","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Masters","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Masters","project":"Superalgos","id":"d5234bd2-ef4e-4856-a6a0-ce7659653a48","savedPayload":{"position":{"x":18879.35218735615,"y":18688.55301821844},"targetPosition":{"x":31820.67692045767,"y":18678.794324352373},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ecc1a524-de9b-4e73-8874-b99a7ea0402b","savedPayload":{"position":{"x":31820.67692045767,"y":18678.794324352373},"targetPosition":{"x":31320.502678827743,"y":18678.79704693609},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cbc3d9be-5e59-45d8-bb0f-4ec82763691d","savedPayload":{"position":{"x":31234.673182942548,"y":18370.4854210064},"targetPosition":{"x":31327.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"pluginTradingMines":{"type":"Plugin Trading Mines","name":"New Plugin Trading Mines","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Masters","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Masters","project":"Superalgos","id":"ad1ce785-858f-4cfc-ba68-108b5e0c54d9","savedPayload":{"position":{"x":24941.217404066585,"y":18714.893045797242},"targetPosition":{"x":31320.45102232534,"y":19544.930491916948},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8a64c00e-4f8c-49bf-b57d-4e2e388bae41","savedPayload":{"position":{"x":31320.45102232534,"y":19544.930491916948},"targetPosition":{"x":31070.415084976332,"y":19111.835158656926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8d881813-3ab9-4e8b-ab5a-48dedab2dd19","savedPayload":{"position":{"x":31570.083379567513,"y":18479.466800207203},"targetPosition":{"x":31327.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"pluginTradingSystems":{"type":"Plugin Trading Systems","name":"New Plugin Trading Systems","project":"Superalgos","pluginFiles":[],"id":"3569d452-c593-4e54-a356-7ff8c6b519f3","savedPayload":{"position":{"x":31570.083379567513,"y":18832.13795158269},"targetPosition":{"x":31327.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"pluginTradingEngines":{"type":"Plugin Trading Engines","name":"New Plugin Trading Engines","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Low-Frequency","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Low-Frequency","project":"Superalgos","id":"e117a2a4-09b3-4181-8455-e680de3bdeb3","savedPayload":{"position":{"x":30923.55093774257,"y":24967.049392142086},"targetPosition":{"x":31141.968084630065,"y":19226.436285672036},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e9270d67-4630-4ac9-91ca-1dec4fb5aa38","savedPayload":{"position":{"x":31141.968084630065,"y":19226.436285672036},"targetPosition":{"x":31234.673182942548,"y":18941.11933078349},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"87a28762-63d0-45f7-bd39-9dea436d8244","savedPayload":{"position":{"x":31234.673182942548,"y":18941.11933078349},"targetPosition":{"x":31327.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c4e402d7-5228-408c-9d67-379d6ef40bae","savedPayload":{"position":{"x":31327.37828125503,"y":18655.802375894946},"targetPosition":{"x":31027.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bfb0b514-3b9f-4e9a-85ca-d0ca714b09f6","savedPayload":{"position":{"x":31027.37828125503,"y":18655.802375894946},"targetPosition":{"x":31027.37828125503,"y":18655.802375894946},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Design Space","name":"My Design Space","project":"Superalgos","spaceStyle":{"type":"Space Style","name":"My Space Style","config":" {\n \"backgroundColor\": \"UI_COLOR.BLACK\",\n \"node\": {\n \"fontSize\": 16,\n \"imageSize\": 60,\n \"type\": {\n \"fontColor\": \"UI_COLOR.WHITE\"\n },\n \"name\": {\n \"fontColor\": \"UI_COLOR.WHITE\"\n },\n \"menuItem\": {\n \"backgroundColor\": \"UI_COLOR.BLACK\",\n \"fontColor\": \"UI_COLOR.WHITE\",\n \"fontSize\": 14,\n \"imageSize\": 14\n }\n }\n }","project":"Superalgos","id":"fad0e429-f7a7-4b62-a2a5-2ead29b8f695","savedPayload":{"position":{"x":25236.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"spaceSettings":{"type":"Space Settings","name":"New Space Settings","config":"{\n \"node\": {\n \"distancePercentage\": 60,\n \"radiusPercentage\": 85,\n \"massPercentage\": 100,\n \"animationSteps\": 2, \n \"menuItem\": {\n \"widthPercentage\": 100,\n \"heightPercentage\": 60,\n \"radiusPercentage\": 90\n }\n },\n \"physics\": false\n}","project":"Superalgos","id":"05c9d6d5-24c4-4eec-9aca-9668d6486fdd","savedPayload":{"position":{"x":24636.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8485ce5-67f3-4476-b9e2-80994e49c318","savedPayload":{"position":{"x":24936.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":255,"y":588.3125}}}},{"type":"Superalgos Project","name":"New Superalgos Project","project":"Superalgos","projectDefinition":{"type":"Project Definition","name":"Superalgos","config":"{ \n \"codeName\": \"Superalgos\"\n}","project":"Superalgos","id":"ef4b033a-aeb2-4461-bc25-019a834c0b23","savedPayload":{"position":{"x":24871,"y":24986},"targetPosition":{"x":24571,"y":24986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"spaces":{"type":"Spaces","name":"New Spaces","project":"Superalgos","id":"97eff31b-b4a4-485c-8910-0a88f522e60a","savedPayload":{"position":{"x":24571,"y":25286},"targetPosition":{"x":24571,"y":24986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"mines":{"type":"Mines","name":"New Mines","project":"Superalgos","id":"11fc631a-a015-4988-aff4-5a1bbe822649","savedPayload":{"position":{"x":24271,"y":24986},"targetPosition":{"x":24571,"y":24986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"otherHierarchies":{"type":"Other Hierarchies","name":"New Other Hierarchies","project":"Superalgos","id":"9cf63862-9273-4341-9e03-b98e2d20d6d3","savedPayload":{"position":{"x":24571,"y":24686},"targetPosition":{"x":24571,"y":24986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5f868d2c-1aed-4791-871e-592b36b91afe","savedPayload":{"position":{"x":24571,"y":24986},"targetPosition":{"x":24571,"y":24986},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading System","name":"WHB v2","config":"{ \n\"codeName\": \"Sparta-WHB-BTC-USDT\"\n}","project":"Superalgos","tradingStrategies":[{"type":"Trading Strategy","name":"Steep","project":"Superalgos","triggerStage":{"type":"Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"Steep","project":"Superalgos","conditions":[{"type":"Condition","name":"3 Closes Below MA","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage && \nchart.at01hs.candle.previous.close < chart.at01hs.bollingerBand.previous.movingAverage && \nchart.at01hs.candle.previous.previous.close < chart.at01hs.bollingerBand.previous.previous.movingAverage","project":"Superalgos","id":"123b1af6-9639-4b6d-a4c3-7a8a9287169c","savedPayload":{"position":{"x":30941.32599744549,"y":30081.791422349677},"targetPosition":{"x":31088.570074962638,"y":30110.41277165616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"427da1e1-cc4a-4c78-88f6-c254d87cc88f","savedPayload":{"position":{"x":31088.570074962638,"y":30110.41277165616},"targetPosition":{"x":31383.058229996936,"y":30167.655470269125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Breakdown","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"1b9e755e-eefe-4b0d-addd-1e19b6a597b6","savedPayload":{"position":{"x":30997.332944680988,"y":29935.8883365596},"targetPosition":{"x":31125.908039786304,"y":30013.144047796108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"55bf7721-7fb2-42f0-8a3c-c2b97e278a29","savedPayload":{"position":{"x":31125.908039786304,"y":30013.144047796108},"targetPosition":{"x":31383.058229996936,"y":30167.655470269125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"e8db5fac-2f00-47fe-ac57-dc93ad15f2b5","savedPayload":{"position":{"x":31099.864054024507,"y":29817.93978761349},"targetPosition":{"x":31194.262112681983,"y":29934.511681832035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"11e00b31-e7eb-4fe9-b006-dcd640dbbd3b","savedPayload":{"position":{"x":31194.262112681983,"y":29934.511681832035},"targetPosition":{"x":31383.058229996936,"y":30167.655470269125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Deviation > 200","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 200","project":"Superalgos","id":"7671ca91-4b4c-40c5-b0c2-199169b013e8","savedPayload":{"position":{"x":31236.552560491215,"y":29742.17211124943},"targetPosition":{"x":31285.38778365979,"y":29883.99989758933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"dd938286-61b3-41e4-bfbb-db34971ffa47","savedPayload":{"position":{"x":31285.38778365979,"y":29883.99989758933},"targetPosition":{"x":31383.058229996936,"y":30167.655470269125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Candle Size < 750","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.max - chart.at01hs.candle.min < 750","project":"Superalgos","id":"19b7edeb-b180-429f-9adf-61bf47262033","savedPayload":{"position":{"x":31390.91181289371,"y":29717.72400744875},"targetPosition":{"x":31388.29395192812,"y":29867.70116172221},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8f94ab97-1574-4136-9404-b66dfc1e3b9f","savedPayload":{"position":{"x":31388.29395192812,"y":29867.70116172221},"targetPosition":{"x":31383.058229996936,"y":30167.655470269125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Deviation < 1000","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation < 1000","project":"Superalgos","id":"0aa38939-f2ef-4c2b-bfc1-a45bda2ac50e","savedPayload":{"position":{"x":31544.323807292323,"y":29747.544278345384},"targetPosition":{"x":31490.568614860527,"y":29887.581342319965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0b2efc27-4aa5-472c-bb7a-73fc3796cc0e","savedPayload":{"position":{"x":31490.568614860527,"y":29887.581342319965},"targetPosition":{"x":31383.058229996936,"y":30167.655470269125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Not Completly Oversold","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.percentageBandwidth.movingAverage >= 30 || \nchart.at03hs.percentageBandwidth.movingAverage >= 30 || \nchart.at04hs.percentageBandwidth.movingAverage >= 30 || \nchart.at06hs.percentageBandwidth.movingAverage >= 30 || \nchart.at08hs.percentageBandwidth.movingAverage >= 30","project":"Superalgos","id":"8f02c79c-1807-42ce-a9e8-e707ec73e9e4","savedPayload":{"position":{"x":31678.284793042665,"y":29828.036159168878},"targetPosition":{"x":31579.875938694087,"y":29941.242596202293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0ff24392-a128-4d59-8049-301e99ce941e","savedPayload":{"position":{"x":31579.875938694087,"y":29941.242596202293},"targetPosition":{"x":31383.058229996936,"y":30167.655470269125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Slope Not Extreme, or...","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope != \"Extreme\" || \n(chart.at01hs.bollingerSubChannel.period <= 6 && \nchart.at08hs.bollingerChannel.direction === \"Down\" && \nchart.at06hs.bollingerChannel.direction === \"Down\" && \nchart.at04hs.bollingerChannel.direction === \"Down\" && \nchart.at02hs.bollingerSubChannel.slope === (\"Extreme\" || \"Steep\"))","project":"Superalgos","id":"231acfc1-6010-4d84-822f-056d1f3f9dc8","savedPayload":{"position":{"x":31776.637098209663,"y":29949.491141158273},"targetPosition":{"x":31645.444142138753,"y":30022.212584195222},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"da235bf3-976c-4832-a565-98a6bb13236d","savedPayload":{"position":{"x":31645.444142138753,"y":30022.212584195222},"targetPosition":{"x":31383.058229996936,"y":30167.655470269125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c94fdd47-c451-4c27-ad56-82b346d60f87","savedPayload":{"position":{"x":31383.058229996936,"y":30167.655470269125},"targetPosition":{"x":31429.988569509005,"y":30463.961972447665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"f5bf32a8-54eb-42ef-bc75-86caf1fd16a2","savedPayload":{"position":{"x":31429.988569509005,"y":30463.961972447665},"targetPosition":{"x":31476.918909021075,"y":30760.268474626206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Close Above MA","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close > chart.at01hs.bollingerBand.movingAverage","project":"Superalgos","id":"bd638ed9-46fa-42d5-9dfd-5ff8921f83cd","savedPayload":{"position":{"x":32182.261211772045,"y":29789.448081376275},"targetPosition":{"x":32005.925636084303,"y":30032.153179688758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e5fbd2ee-9cef-4887-a270-8fb307dff36d","savedPayload":{"position":{"x":32005.925636084303,"y":30032.153179688758},"targetPosition":{"x":31829.59006039656,"y":30274.85827800124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"faabf32b-db1f-49d2-8a74-39e9f653867c","savedPayload":{"position":{"x":31829.59006039656,"y":30274.85827800124},"targetPosition":{"x":31653.254484708817,"y":30517.563376313723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"d33d5a40-93e6-4a51-9bf0-389702d7c57c","savedPayload":{"position":{"x":31653.254484708817,"y":30517.563376313723},"targetPosition":{"x":31476.918909021075,"y":30760.268474626206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"Steep","project":"Superalgos","conditions":[{"type":"Condition","name":"3 Closes Below MA","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage && \nchart.at01hs.candle.previous.close < chart.at01hs.bollingerBand.previous.movingAverage && \nchart.at01hs.candle.previous.previous.close < chart.at01hs.bollingerBand.previous.previous.movingAverage","project":"Superalgos","id":"b5967d93-adf2-4a9e-9f1f-8ddb83c11e89","savedPayload":{"position":{"x":32127.20669956265,"y":30220.11907847091},"targetPosition":{"x":32107.981770834485,"y":30368.881984181295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"946e10ee-70f9-4489-8ac9-c523116f997d","savedPayload":{"position":{"x":32107.981770834485,"y":30368.881984181295},"targetPosition":{"x":32069.531913378156,"y":30666.407795602066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Breakdown","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"35e54c04-f05e-4790-9431-da49c89895a4","savedPayload":{"position":{"x":32250.604526843737,"y":30254.445772288334},"targetPosition":{"x":32190.246989021878,"y":30391.766446726244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"299cc453-ffa7-4bcc-84be-fcf9187e0188","savedPayload":{"position":{"x":32190.246989021878,"y":30391.766446726244},"targetPosition":{"x":32069.531913378156,"y":30666.407795602066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"91d65f47-922b-4e28-874a-7ccb83389509","savedPayload":{"position":{"x":32359.332927862142,"y":30322.147179202144},"targetPosition":{"x":32262.732589700812,"y":30436.900718002118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"74da641c-243d-4e2c-86e7-b215d804796d","savedPayload":{"position":{"x":32262.732589700812,"y":30436.900718002118},"targetPosition":{"x":32069.531913378156,"y":30666.407795602066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Deviation > 200","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 200","project":"Superalgos","id":"8616a334-50d8-437a-9631-96e1b6611f77","savedPayload":{"position":{"x":32444.58337420005,"y":30417.738533859963},"targetPosition":{"x":32319.56622059275,"y":30500.628287773998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"98acfea3-5f57-4dd2-ad9b-f13643c04b3a","savedPayload":{"position":{"x":32319.56622059275,"y":30500.628287773998},"targetPosition":{"x":32069.531913378156,"y":30666.407795602066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Candle Size < 750","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.max - chart.at01hs.candle.min < 750","project":"Superalgos","id":"bc3a1d72-8424-40e4-bf3b-e9aec5365cfe","savedPayload":{"position":{"x":32499.449381699087,"y":30533.47559321108},"targetPosition":{"x":32356.143558925443,"y":30577.786327341408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4219ab16-929b-4489-80f8-2e2970e170dd","savedPayload":{"position":{"x":32356.143558925443,"y":30577.786327341408},"targetPosition":{"x":32069.531913378156,"y":30666.407795602066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Deviation < 1000","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation < 1000","project":"Superalgos","id":"7ef4294e-31a6-4a56-b4cc-ed4a3f205bb2","savedPayload":{"position":{"x":32519.4860327324,"y":30659.982029021663},"targetPosition":{"x":32369.501326280984,"y":30662.12395121513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7bacba88-87bc-491a-95fa-4024d49438f5","savedPayload":{"position":{"x":32369.501326280984,"y":30662.12395121513},"targetPosition":{"x":32069.531913378156,"y":30666.407795602066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Not Completly Oversold","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.percentageBandwidth.movingAverage >= 30 || \nchart.at03hs.percentageBandwidth.movingAverage >= 30 || \nchart.at04hs.percentageBandwidth.movingAverage >= 30 || \nchart.at06hs.percentageBandwidth.movingAverage >= 30 || \nchart.at08hs.percentageBandwidth.movingAverage >= 30","project":"Superalgos","id":"d717997d-c2f4-4332-abd3-cf4a0f25cb65","savedPayload":{"position":{"x":32503.070076995817,"y":30787.009042225087},"targetPosition":{"x":32358.55735578993,"y":30746.80862668408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"63558a06-3dab-46c6-b361-2d55aca38eea","savedPayload":{"position":{"x":32358.55735578993,"y":30746.80862668408},"targetPosition":{"x":32069.531913378156,"y":30666.407795602066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Slope Not Extreme, or...","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope != \"Extreme\" || \n(chart.at01hs.bollingerSubChannel.period <= 6 && \nchart.at08hs.bollingerChannel.direction === \"Down\" && \nchart.at06hs.bollingerChannel.direction === \"Down\" && \nchart.at04hs.bollingerChannel.direction === \"Down\" && \nchart.at02hs.bollingerSubChannel.slope === (\"Extreme\" || \"Steep\"))","project":"Superalgos","id":"e8563aee-5cd1-4953-a1c4-890a47ef8af3","savedPayload":{"position":{"x":32451.531437593665,"y":30904.265659670345},"targetPosition":{"x":32324.198262855163,"y":30824.97970498092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d900ad86-c048-45d3-9b26-dc8665b8aba8","savedPayload":{"position":{"x":32324.198262855163,"y":30824.97970498092},"targetPosition":{"x":32069.531913378156,"y":30666.407795602066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"8H Deviation","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at08hs.bollingerBand.deviation < 1575","project":"Superalgos","id":"84f24347-1102-48e1-9d13-b7ae0f043e5e","savedPayload":{"position":{"x":32369.04546857822,"y":31002.252447563977},"targetPosition":{"x":32269.207616844866,"y":30890.30423024334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"182deaef-3884-4ddd-b08b-2a554a130832","savedPayload":{"position":{"x":32269.207616844866,"y":30890.30423024334},"targetPosition":{"x":32069.531913378156,"y":30666.407795602066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Below Top Band","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.candle.open < \nchart.at24hs.bollingerBand.movingAverage + chart.at24hs.bollingerBand.deviation || \nchart.at24hs.candle.close < \nchart.at24hs.bollingerBand.movingAverage + chart.at24hs.bollingerBand.deviation","project":"Superalgos","id":"7ea70416-894f-4fae-ad62-db36e510519f","savedPayload":{"position":{"x":32262.294692596166,"y":31073.03109910071},"targetPosition":{"x":32198.04043285683,"y":30937.489997934495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"eb6577c9-7823-490c-9a25-81165b4d4f6b","savedPayload":{"position":{"x":32198.04043285683,"y":30937.489997934495},"targetPosition":{"x":32069.531913378156,"y":30666.407795602066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a8a86bab-322e-4f20-8f2d-74671e8d2b7e","savedPayload":{"position":{"x":32069.531913378156,"y":30666.407795602066},"targetPosition":{"x":31773.225411199615,"y":30713.338135114136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"97e60ce9-228e-459d-b2cc-2ba447266e22","savedPayload":{"position":{"x":31773.225411199615,"y":30713.338135114136},"targetPosition":{"x":31476.918909021075,"y":30760.268474626206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"166df39d-b70e-4061-9557-a6bb41a74bea","savedPayload":{"position":{"x":31476.918909021075,"y":30760.268474626206},"targetPosition":{"x":31300.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"openStage":{"type":"Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"My Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"4f34635c-d4e2-47c1-8c75-cd18d577fe33","savedPayload":{"position":{"x":31911.38648462019,"y":30100.436466542706},"targetPosition":{"x":31849.012977374863,"y":30393.880746762847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9f6351ce-0ca2-44f2-9e85-e9365265131b","savedPayload":{"position":{"x":31849.012977374863,"y":30393.880746762847},"targetPosition":{"x":31786.639470129536,"y":30687.325026982988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.episodeBaseAsset.balance.value","project":"Superalgos","id":"492cee3d-1709-41c5-bfd8-e700a3fdf3da","savedPayload":{"position":{"x":32357.273379906626,"y":30501.914830358022},"targetPosition":{"x":32071.95642501808,"y":30594.619928670505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"df940eb5-ea9b-485d-a03a-27491d496fc3","savedPayload":{"position":{"x":32071.95642501808,"y":30594.619928670505},"targetPosition":{"x":31786.639470129536,"y":30687.325026982988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"dbfab28a-d209-4896-96bb-05a26db8b73f","savedPayload":{"position":{"x":31786.639470129536,"y":30687.325026982988},"targetPosition":{"x":31585.900288221877,"y":30910.268474626206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Quick Entry","config":"{\n\"percentageOfAlgorithmSize\": 100\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"cc515fe8-2957-4ef9-aef8-e65512f6ebf0","savedPayload":{"position":{"x":33640.010249762876,"y":31346.883025343497},"targetPosition":{"x":33346.56596954273,"y":31284.50951809817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"be9e2b59-adac-4ec8-8b16-73c9c1367eff","savedPayload":{"position":{"x":33346.56596954273,"y":31284.50951809817},"targetPosition":{"x":33053.12168932259,"y":31222.136010852842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"95614ecb-8d7a-4a56-8ca8-3a51ec209f45","savedPayload":{"position":{"x":33053.12168932259,"y":31222.136010852842},"targetPosition":{"x":32759.67740910244,"y":31159.762503607515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"938d2ee7-fd7b-409a-8ba3-2e10898ecf2c","savedPayload":{"position":{"x":32759.67740910244,"y":31159.762503607515},"targetPosition":{"x":32466.2331288823,"y":31097.388996362188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c54cb995-2b02-426e-bfe3-dea00d502d56","savedPayload":{"position":{"x":32466.2331288823,"y":31097.388996362188},"targetPosition":{"x":32172.78884866216,"y":31035.01548911686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"f3ccceff-a347-4100-b429-0788d0035868","savedPayload":{"position":{"x":32172.78884866216,"y":31035.01548911686},"targetPosition":{"x":31879.34456844202,"y":30972.641981871533},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"381d75d8-f6de-4841-b6a3-fc3c01884438","savedPayload":{"position":{"x":31879.34456844202,"y":30972.641981871533},"targetPosition":{"x":31585.900288221877,"y":30910.268474626206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"262e5a8c-cb38-43be-840d-a41ee5f4665f","savedPayload":{"position":{"x":31585.900288221877,"y":30910.268474626206},"targetPosition":{"x":31300.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 1.03","project":"Superalgos","id":"098e918d-2dee-44f7-97bd-9d3a9ef0458a","savedPayload":{"position":{"x":32395.732296305378,"y":30770.192474852858},"targetPosition":{"x":32172.78884866216,"y":30970.931656760516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"shortcutKey":"q"}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Close Below 5%","code":"chart.at24hs.candlesProbability.begin > chart.at24hs.candlesProbability.begin","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < tradingEngine.current.position.entryTargetRate.value * 0.95","project":"Superalgos","id":"96683629-b453-49a5-a871-94a0deb2a017","savedPayload":{"position":{"x":34738.87798994971,"y":43183.406060803245},"targetPosition":{"x":34380.61474462071,"y":43300.072664363455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c48e62b6-cdf5-4ee0-9872-6487a99d1861","savedPayload":{"position":{"x":34380.61474462071,"y":43300.072664363455},"targetPosition":{"x":34023.20135802305,"y":43416.5910011551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e502afa9-3ac9-4d7c-9a1c-02a66181c75c","savedPayload":{"position":{"x":34023.20135802305,"y":43416.5910011551},"targetPosition":{"x":33658.8511044813,"y":43535.41403114637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"2ae990f4-51b6-47de-8cb4-3acd042c1218","savedPayload":{"position":{"x":32458.105803550705,"y":31063.636755073},"targetPosition":{"x":32172.78884866216,"y":30970.931656760516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"92bc3860-4ffb-44e8-bd90-15b05113b3d2","savedPayload":{"position":{"x":32172.78884866216,"y":30970.931656760516},"targetPosition":{"x":31879.34456844202,"y":31033.305164005844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P1: Trailing 5.25% Above MA","project":"Superalgos","formula":{"type":"Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 1.0525 < tradingEngine.current.position.stopLoss.value) \n{chart.at01hs.bollingerBand.movingAverage * 1.0525} \nelse {tradingEngine.current.position.stopLoss.value}","project":"Superalgos","id":"6f65573a-c2ac-476a-9ca1-738971e3ff78","savedPayload":{"position":{"x":32759.67740910244,"y":30846.18464226986},"targetPosition":{"x":32466.2331288823,"y":30908.55814951519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"e29bf8a5-014c-4868-b50a-c4b79b2b2eb3","savedPayload":{"position":{"x":32466.2331288823,"y":30908.55814951519},"targetPosition":{"x":32172.78884866216,"y":30970.931656760516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"89593e32-77e8-4216-a351-64c852d06784","savedPayload":{"position":{"x":31879.34456844202,"y":31033.305164005844},"targetPosition":{"x":31585.900288221877,"y":31095.67867125117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"P1: 60% of Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01hs.bollingerBand.movingAverage * 0.6","project":"Superalgos","id":"1766975c-17c8-477e-b2e5-cb6ff1c7ddd3","savedPayload":{"position":{"x":33343.86565106542,"y":45307.60128884687},"targetPosition":{"x":32976.06928320956,"y":45385.7953921233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"3H Oversold","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at03hs.percentageBandwidth.previous.movingAverage <= 10","project":"Superalgos","id":"c3f076df-8b01-4a9a-ad60-9bf53433e4bf","savedPayload":{"position":{"x":34922.38361042235,"y":44854.771221023795},"targetPosition":{"x":34555.12108103236,"y":44775.776371982196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"553fde3a-dcb6-41b2-89c8-ba278a2fd4e0","savedPayload":{"position":{"x":34555.12108103236,"y":44775.776371982196},"targetPosition":{"x":34187.87326322644,"y":44698.42153062817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fa198094-34dd-4f2e-8d57-002ca886ba71","savedPayload":{"position":{"x":34187.87326322644,"y":44698.42153062817},"targetPosition":{"x":33812.740518694955,"y":44618.41028537479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"3H Entering Oversold","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at03hs.percentageBandwidth.movingAverage <= 30","project":"Superalgos","id":"f1452048-936e-4c93-a615-66ed6b18bd11","savedPayload":{"position":{"x":34491.96274405311,"y":45484.925071428224},"targetPosition":{"x":34212.511978122035,"y":45234.76669181413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d85e95b6-4108-40d6-9ed0-a382f8d5015a","savedPayload":{"position":{"x":34212.511978122035,"y":45234.76669181413},"targetPosition":{"x":33932.13622520962,"y":44982.71705957985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"67baba53-16eb-4a64-b7ae-f8b2e999e710","savedPayload":{"position":{"x":33776.6876698653,"y":45717.93872881055},"targetPosition":{"x":33854.45425058783,"y":45350.67220878789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f3a53caf-c1d2-4786-869d-3e4ed1c9b71b","savedPayload":{"position":{"x":33854.45425058783,"y":45350.67220878789},"targetPosition":{"x":33932.13622520962,"y":44982.71705957985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"034c0358-0163-4448-9511-8e154f07226e","savedPayload":{"position":{"x":33932.13622520962,"y":44982.71705957985},"targetPosition":{"x":33812.740518694955,"y":44618.41028537479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"a2d912bb-6362-4505-91b6-8b726dd670c7","savedPayload":{"position":{"x":32859.72269493093,"y":45743.528334410745},"targetPosition":{"x":32976.06928320956,"y":45385.7953921233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"17a900a2-bcfd-4e3f-b115-baa06c2b077a","savedPayload":{"position":{"x":32976.06928320956,"y":45385.7953921233},"targetPosition":{"x":32692.390541932506,"y":45070.68548551787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P2: 85% MA - 4 Deviations","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 0.85 - \nchart.at01hs.bollingerBand.deviation * 4 > 1) \n{chart.at01hs.bollingerBand.movingAverage * 0.85 - \nchart.at01hs.bollingerBand.deviation * 4} \nelse {tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"77e53622-cb53-410d-892f-cd474b28c29e","savedPayload":{"position":{"x":33595.31596186612,"y":45586.81280353814},"targetPosition":{"x":33227.5835281625,"y":45665.11871160152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"8H Oversold","project":"Superalgos","conditions":[{"type":"Condition","name":"8H %B < 15","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at08hs.percentageBandwidth.previous.movingAverage <= 15","project":"Superalgos","id":"5fbde96a-6337-465e-8304-ca3def2b6410","savedPayload":{"position":{"x":34343.71649045767,"y":34043.06126553613},"targetPosition":{"x":34057.37838579785,"y":33940.02247976336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b855a2c5-d616-4379-a31a-5e187f36bfc4","savedPayload":{"position":{"x":34057.37838579785,"y":33940.02247976336},"targetPosition":{"x":33700.36246841534,"y":33803.173708126866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","project":"Superalgos","id":"9bff4bf4-56cd-46ea-adf1-273dbe6c8299","savedPayload":{"position":{"x":33973.36621048014,"y":34416.7658816998},"targetPosition":{"x":33855.874937264954,"y":34152.47856766467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3dbea2ad-06be-4a8e-ba8e-7718704e1dbe","savedPayload":{"position":{"x":33855.874937264954,"y":34152.47856766467},"targetPosition":{"x":33700.36246841534,"y":33803.173708126866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Channel Period > 5","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >= 5","project":"Superalgos","id":"f969b936-fd9a-45f2-bf59-4a18d691bc06","savedPayload":{"position":{"x":33395.037889495936,"y":34398.007091692125},"targetPosition":{"x":33498.89028765579,"y":34128.191077545634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a8ac6da5-2f72-4c53-953a-4135624d6230","savedPayload":{"position":{"x":33498.89028765579,"y":34128.191077545634},"targetPosition":{"x":33700.36246841534,"y":33803.173708126866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"15b3728c-3b03-4a2b-9e05-6b7f772e6bf3","savedPayload":{"position":{"x":33700.18209119567,"y":33803.480386605384},"targetPosition":{"x":33465.00778672871,"y":33274.874855587244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"24H Previous Up","project":"Superalgos","conditions":[{"type":"Condition","name":"8H %B < 40","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at08hs.percentageBandwidth.movingAverage <= 40","project":"Superalgos","id":"867dd327-29de-4b01-af95-8e18191a299a","savedPayload":{"position":{"x":33333.05973428013,"y":34383.58454446746},"targetPosition":{"x":33243.82933624715,"y":34108.64851270677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eef8d507-fcf6-4efa-9fcb-9e58ccc0af36","savedPayload":{"position":{"x":33243.82933624715,"y":34108.64851270677},"targetPosition":{"x":33125.04276404638,"y":33742.85366106205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":" chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","project":"Superalgos","id":"f2fa836d-23f0-47cb-ba81-550089468d9a","savedPayload":{"position":{"x":32917.6301297237,"y":34381.601860862604},"targetPosition":{"x":33007.01464514057,"y":34106.28884351111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f75a18be-7ac8-4276-89bd-b3ff8ea5c69f","savedPayload":{"position":{"x":33007.01464514057,"y":34106.28884351111},"targetPosition":{"x":33125.04276404638,"y":33742.85366106205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Channel Period > 3","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >= 3","project":"Superalgos","id":"5556b779-ef49-4a0b-ad26-1cdbfd6a01b8","savedPayload":{"position":{"x":32581.611927652786,"y":34137.79664866047},"targetPosition":{"x":32816.02170528682,"y":33967.41683841296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a8762e6c-04a8-49dc-a6e7-de73f24bb295","savedPayload":{"position":{"x":32816.02170528682,"y":33967.41683841296},"targetPosition":{"x":33125.04276404638,"y":33742.85366106205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Previous Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.direction === \"Up\"","project":"Superalgos","id":"42cf65fc-dc6a-4a45-9e14-1820db151b51","savedPayload":{"position":{"x":32449.228654213697,"y":33742.88825209724},"targetPosition":{"x":32738.1013867807,"y":33742.85826389762},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8137faa0-d59a-4eab-ad95-ca8d2250bbf6","savedPayload":{"position":{"x":32738.1013867807,"y":33742.85826389762},"targetPosition":{"x":33125.04276404638,"y":33742.85366106205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c688240e-5e54-456d-b219-16994f799907","savedPayload":{"position":{"x":33124.94636882617,"y":33742.969227553665},"targetPosition":{"x":33465.00778672871,"y":33274.874855587244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"6e59e30a-bd6e-45ad-afb9-f1bab0a759d9","savedPayload":{"position":{"x":33111.19089151636,"y":46022.78932642733},"targetPosition":{"x":33227.5835281625,"y":45665.11871160152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"62709ed5-832a-43e8-8f74-29a359af7127","savedPayload":{"position":{"x":33227.5835281625,"y":45665.11871160152},"targetPosition":{"x":32976.09248711737,"y":45385.82233038297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P3: 90% MA - 4 Deviations","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 0.9 - \nchart.at01hs.bollingerBand.deviation * 4 > 1) \n{chart.at01hs.bollingerBand.movingAverage * 0.9 - \nchart.at01hs.bollingerBand.deviation * 4} \nelse {tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"2d4907e5-54f3-4677-b191-15a85b95c64e","savedPayload":{"position":{"x":33846.81955667049,"y":45866.11858590809},"targetPosition":{"x":33478.99186356516,"y":45944.30620698363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"12H Previous Oversold","project":"Superalgos","conditions":[{"type":"Condition","name":"12H Previous %B < 15","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at12hs.percentageBandwidth.previous.movingAverage <= 15","project":"Superalgos","id":"7e9cefff-d831-4c3d-ba5a-42ef48397d0f","savedPayload":{"position":{"x":34795.80410051236,"y":34383.509070094646},"targetPosition":{"x":34526.309123571475,"y":34280.09068892164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d1d9d786-da85-4a7b-b5b5-3278dcdccfa8","savedPayload":{"position":{"x":34526.309123571475,"y":34280.09068892164},"targetPosition":{"x":34169.002979023666,"y":34143.010855109475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":" chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","project":"Superalgos","id":"512f3976-5707-426d-b6cf-63306b90b71a","savedPayload":{"position":{"x":34442.18627603836,"y":34756.58732132532},"targetPosition":{"x":34324.501259370685,"y":34492.23738314313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1e09d719-39f0-4e66-afe9-e46f816c0b8a","savedPayload":{"position":{"x":34324.501259370685,"y":34492.23738314313},"targetPosition":{"x":34169.002979023666,"y":34143.010855109475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Channel Period > 15","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >= 15","project":"Superalgos","id":"53159d45-d2aa-4faf-b9a8-b6643623a64b","savedPayload":{"position":{"x":33928.688656615435,"y":34770.10639705343},"targetPosition":{"x":34032.165449311164,"y":34500.02382991703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a3cf6274-a828-41f0-a293-8e79ecfe4e39","savedPayload":{"position":{"x":34032.165449311164,"y":34500.02382991703},"targetPosition":{"x":34169.002979023666,"y":34143.010855109475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7f47a98b-6d2e-40e4-8105-82a9fa301600","savedPayload":{"position":{"x":34168.54952503468,"y":34143.15516902314},"targetPosition":{"x":33933.26518479808,"y":33614.48891481997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"24H Previous Previous Up","project":"Superalgos","conditions":[{"type":"Condition","name":"24H %B MA < 70 || 12H %B MA < 40","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.movingAverage <= 70 || \nchart.at12hs.percentageBandwidth.movingAverage <= 40","project":"Superalgos","id":"52ec70e3-9089-4cba-beb3-c8310ab966b5","savedPayload":{"position":{"x":33803.95639019715,"y":34729.793324344035},"targetPosition":{"x":33714.83955732108,"y":34455.055258479304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9bb204df-4376-4a7d-996f-8e41d75f49c3","savedPayload":{"position":{"x":33714.83955732108,"y":34455.055258479304},"targetPosition":{"x":33593.91597300338,"y":34082.64917575815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Previous Previous Up","code":"chart.at24hs.candlesProbability.begin > chart.at24hs.candlesProbability.begin","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","project":"Superalgos","id":"a18dfaba-685b-4ac6-8435-211bb8d59f2b","savedPayload":{"position":{"x":33383.90675997831,"y":34729.74636883433},"targetPosition":{"x":33473.14054021963,"y":34454.780562322776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b9ddf58a-89b4-4fec-899a-ab905e97234a","savedPayload":{"position":{"x":33473.14054021963,"y":34454.780562322776},"targetPosition":{"x":33593.91597300338,"y":34082.64917575815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","project":"Superalgos","id":"1d3956c4-c13a-414f-86ce-49acc5557ebe","savedPayload":{"position":{"x":33043.683298094016,"y":34482.82361867606},"targetPosition":{"x":33277.49448884848,"y":34312.773263782045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ee9eaf68-0a23-45a3-8aaf-42b97ebf4584","savedPayload":{"position":{"x":33277.49448884848,"y":34312.773263782045},"targetPosition":{"x":33593.91597300338,"y":34082.64917575815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Channel Period > 5","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >= 5","project":"Superalgos","id":"4f684afd-4c77-42b0-8b2b-64994ab95e09","savedPayload":{"position":{"x":32913.268782662584,"y":34083.15345445898},"targetPosition":{"x":33203.00955030503,"y":34082.87579428281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5ca55797-a76b-4be7-921d-bdd84773a407","savedPayload":{"position":{"x":33203.00955030503,"y":34082.87579428281},"targetPosition":{"x":33593.91597300338,"y":34082.64917575815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"73890378-cc74-4c04-8e2b-e467429bcdb5","savedPayload":{"position":{"x":33593.18411199604,"y":34082.85632137883},"targetPosition":{"x":33933.26518479808,"y":33614.48891481997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"41a619aa-ca95-4184-a651-0fdfced33f96","savedPayload":{"position":{"x":33362.72917121497,"y":46302.077876456664},"targetPosition":{"x":33478.99186356516,"y":45944.30620698363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"c51fe1c0-ac69-4b35-913f-76e24ee4c4b2","savedPayload":{"position":{"x":33478.99186356516,"y":45944.30620698363},"targetPosition":{"x":33227.5835281625,"y":45665.11871160152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P4: MA - 3 Deviations","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - \nchart.at01hs.bollingerBand.deviation * 3 > 1) \n{chart.at01hs.bollingerBand.movingAverage - \nchart.at01hs.bollingerBand.deviation * 3} \nelse {tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"d1425de3-3c9f-4b1a-a3ad-b5b2a604f857","savedPayload":{"position":{"x":34098.3981759634,"y":46145.51649970157},"targetPosition":{"x":33730.52149260439,"y":46223.62142522518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"24H Previous Oversold","project":"Superalgos","conditions":[{"type":"Condition","name":"24H Previous %B < 20","code":"chart.at24hs.candlesProbability.begin > chart.at24hs.candlesProbability.begin","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.previous.movingAverage <= 20","project":"Superalgos","id":"1ff4ea62-15ff-4409-9e8c-0c5576958be6","savedPayload":{"position":{"x":35438.85778349233,"y":34368.52598426875},"targetPosition":{"x":35150.697137912044,"y":34383.479587424314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"13f09ae8-9b15-4e6a-be3c-d0745b7252a3","savedPayload":{"position":{"x":35150.697137912044,"y":34383.479587424314},"targetPosition":{"x":34766.018595837064,"y":34403.569664297844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":" chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","project":"Superalgos","id":"90d32cba-ec65-4a52-a96a-02e5436b790e","savedPayload":{"position":{"x":35329.56452801823,"y":34769.33685051033},"targetPosition":{"x":35086.826809331826,"y":34611.774176103485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5a58f7e1-75da-4e8f-a4c5-185a59e8c938","savedPayload":{"position":{"x":35086.826809331826,"y":34611.774176103485},"targetPosition":{"x":34766.018595837064,"y":34403.569664297844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Channel Period > 10","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >=10","project":"Superalgos","id":"fff48225-fa90-4ed5-aca8-4ae98a55e135","savedPayload":{"position":{"x":35006.211596601795,"y":35028.548240877484},"targetPosition":{"x":34902.39129465605,"y":34758.39220722437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e01c18f1-b9f7-4cc7-91be-6d18c3168f13","savedPayload":{"position":{"x":34902.39129465605,"y":34758.39220722437},"targetPosition":{"x":34766.018595837064,"y":34403.569664297844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H EMA 20 > 50 or Convergence","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.popularEMA.ema20 > chart.at01hs.popularEMA.ema50 || \n(chart.at01hs.popularEMA.ema50 - chart.at01hs.popularEMA.ema20 < \nchart.at01hs.popularEMA.previous.ema50 - chart.at01hs.popularEMA.previous.ema20 && \nchart.at01hs.popularEMA.previous.ema50 - chart.at01hs.popularEMA.previous.ema20 < chart.at01hs.popularEMA.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.ema20 && \nchart.at01hs.popularEMA.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.ema20 < \nchart.at01hs.popularEMA.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.ema20 && \nchart.at01hs.popularEMA.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.ema20 < \nchart.at01hs.popularEMA.previous.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.previous.ema20 && \nchart.at01hs.popularEMA.previous.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.previous.ema20 < \nchart.at01hs.popularEMA.previous.previous.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.previous.previous.ema20)\n","project":"Superalgos","id":"7ee960b5-be23-4649-92ca-fc4ea5adc99b","savedPayload":{"position":{"x":34618.50997753077,"y":35039.35595821752},"targetPosition":{"x":34668.034806124786,"y":34770.879083155814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4262c963-84df-44ba-ac06-7ecb331ba24d","savedPayload":{"position":{"x":34668.034806124786,"y":34770.879083155814},"targetPosition":{"x":34766.018595837064,"y":34403.569664297844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"186df69f-9a0d-49af-9394-0dbd05f18628","savedPayload":{"position":{"x":32523.1052310591,"y":34936.08368585874},"targetPosition":{"x":32464.44425282173,"y":34548.525999435704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"24H Previous Previous Up","project":"Superalgos","conditions":[{"type":"Condition","name":"24H Previous Previous Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","project":"Superalgos","id":"d08197af-2643-4f8c-83ac-8eb33a9ff474","savedPayload":{"position":{"x":34881.10628730355,"y":35002.3587014557},"targetPosition":{"x":34665.293835276454,"y":34807.98453818294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"750174f5-0953-4204-bb06-9f68030e9185","savedPayload":{"position":{"x":34665.293835276454,"y":34807.98453818294},"targetPosition":{"x":34341.87807865043,"y":34516.671242134544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","project":"Superalgos","id":"9d8a9727-239e-42db-952a-7c04e065ffca","savedPayload":{"position":{"x":34492.07789422037,"y":35223.54180533432},"targetPosition":{"x":34432.03784351028,"y":34940.91516130275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f42f3843-bf81-4782-b129-f06e98f354d8","savedPayload":{"position":{"x":34432.03784351028,"y":34940.91516130275},"targetPosition":{"x":34341.87807865043,"y":34516.671242134544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Channel Period > 5","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >=5","project":"Superalgos","id":"99b3c782-ecb4-43ca-9624-962220c38981","savedPayload":{"position":{"x":34047.51092189819,"y":35178.94058123221},"targetPosition":{"x":34164.8827595547,"y":34914.839951087575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0fdfb277-cfa0-4fc6-aee9-db2cc997b208","savedPayload":{"position":{"x":34164.8827595547,"y":34914.839951087575},"targetPosition":{"x":34341.87807865043,"y":34516.671242134544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H %B < 60 || 12H %B < 30","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.movingAverage <= 60 || \nchart.at12hs.percentageBandwidth.movingAverage <= 30","project":"Superalgos","id":"90331db7-a6e8-47a6-be28-4e679b728ce3","savedPayload":{"position":{"x":33718.42637668107,"y":34877.31851705635},"targetPosition":{"x":33968.66436427911,"y":34732.52878021475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ef2973eb-d707-41cc-b492-96dbf5215de1","savedPayload":{"position":{"x":33968.66436427911,"y":34732.52878021475},"targetPosition":{"x":34341.87807865043,"y":34516.671242134544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"91020a9c-998e-407c-94f1-774941d9033c","savedPayload":{"position":{"x":32234.42401766186,"y":34865.26689774926},"targetPosition":{"x":32464.44425282173,"y":34548.525999435704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"25% Target","project":"Superalgos","conditions":[{"type":"Condition","name":"25% Target","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close <= tradingEngine.current.position.entryTargetRate.value * 0.8","project":"Superalgos","id":"a8a904a9-cbf3-40cb-89ef-8066d65fe443","savedPayload":{"position":{"x":31468.97395445377,"y":34707.030262436165},"targetPosition":{"x":31661.100138028563,"y":34676.29961714636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b841c21b-789a-49bf-b959-f91613e089a8","savedPayload":{"position":{"x":31661.100138028563,"y":34676.29961714636},"targetPosition":{"x":32083.458924250892,"y":34609.14110348126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"66105054-6e57-4aec-ada2-14054981fd68","savedPayload":{"position":{"x":32078.076952036678,"y":34609.79700541204},"targetPosition":{"x":32464.44425282173,"y":34548.525999435704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"830013bf-e507-4960-9742-1a9b8ffdd16a","savedPayload":{"position":{"x":33614.34237142739,"y":46581.46235200472},"targetPosition":{"x":33730.52149260439,"y":46223.62142522518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"b30e4c2c-fe06-4217-af5a-5c728463388a","savedPayload":{"position":{"x":33730.52149260439,"y":46223.62142522518},"targetPosition":{"x":33478.99186356516,"y":45944.30620698363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P5: MA - 1.5 Deviations","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - \nchart.at01hs.bollingerBand.deviation * 1.5 > 1) \n{chart.at01hs.bollingerBand.movingAverage - \nchart.at01hs.bollingerBand.deviation * 1.5} \nelse {tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"b04ad21c-bd81-401e-8b70-c158ab668f66","savedPayload":{"position":{"x":34349.92707351712,"y":46424.94228386499},"targetPosition":{"x":33982.12778260721,"y":46503.02505246553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"24H Previous Oversold","project":"Superalgos","conditions":[{"type":"Condition","name":"24H Previous MA < 10","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.previous.movingAverage <= 10","project":"Superalgos","id":"7637580c-cda0-4056-ad4a-de67510050fa","savedPayload":{"position":{"x":35906.07235087816,"y":34707.73663005332},"targetPosition":{"x":35616.26402316763,"y":34722.7519323961},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ecaa9841-49d1-45da-8249-17e373c7d662","savedPayload":{"position":{"x":35616.26402316763,"y":34722.7519323961},"targetPosition":{"x":35234.62284750796,"y":34742.63823668889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","project":"Superalgos","id":"f6f6d914-5813-4389-b29e-6c7edc4927e0","savedPayload":{"position":{"x":35798.11721142213,"y":35108.46689059539},"targetPosition":{"x":35555.518077569206,"y":34950.95746370827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9fb9d04e-da7e-45a8-af44-e87d65e5650f","savedPayload":{"position":{"x":35555.518077569206,"y":34950.95746370827},"targetPosition":{"x":35234.62284750796,"y":34742.63823668889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Channel Period > 10","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >=10","project":"Superalgos","id":"a08871c1-b85d-4afc-9480-7eeca7598dd1","savedPayload":{"position":{"x":35475.533526060906,"y":35369.877232070416},"targetPosition":{"x":35371.70206322763,"y":35099.495184961954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1dcf89ef-e3e3-4d6e-bbfb-16ccdeeec348","savedPayload":{"position":{"x":35371.70206322763,"y":35099.495184961954},"targetPosition":{"x":35234.62284750796,"y":34742.63823668889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H EMA 20 > 50 or Convergence","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.popularEMA.ema20 > chart.at01hs.popularEMA.ema50 || (chart.at01hs.popularEMA.ema50 - chart.at01hs.popularEMA.ema20 < chart.at01hs.popularEMA.previous.ema50 - chart.at01hs.popularEMA.previous.ema20 && chart.at01hs.popularEMA.previous.ema50 - chart.at01hs.popularEMA.previous.ema20 < chart.at01hs.popularEMA.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.ema20 && chart.at01hs.popularEMA.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.ema20 < chart.at01hs.popularEMA.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.ema20 && chart.at01hs.popularEMA.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.ema20 < chart.at01hs.popularEMA.previous.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.previous.ema20 && chart.at01hs.popularEMA.previous.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.previous.ema20 < chart.at01hs.popularEMA.previous.previous.previous.previous.previous.ema50 - chart.at01hs.popularEMA.previous.previous.previous.previous.previous.ema20)","project":"Superalgos","id":"5dc14b5f-4a07-413a-83ac-7c57eb96a8d3","savedPayload":{"position":{"x":35061.34220429458,"y":35391.844145127936},"targetPosition":{"x":35136.074311464334,"y":35111.80141936694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8a062525-23e1-48dc-83c1-c0cec0e30907","savedPayload":{"position":{"x":35136.074311464334,"y":35111.80141936694},"targetPosition":{"x":35234.62284750796,"y":34742.63823668889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f3086330-375a-4871-a7a8-f12b0543f1c3","savedPayload":{"position":{"x":33756.481012803495,"y":46885.621474164975},"targetPosition":{"x":33582.28757239752,"y":46544.22110866073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"24H Previous Previous Up","project":"Superalgos","conditions":[{"type":"Condition","name":"24H Previous Previous Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","project":"Superalgos","id":"aca8f925-5511-4d06-92bb-29b637072f66","savedPayload":{"position":{"x":35321.53799405785,"y":35329.26883653065},"targetPosition":{"x":35099.337780894326,"y":35129.119431934945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d0ff1bab-8072-4dab-97b8-69d3cb9d0d48","savedPayload":{"position":{"x":35099.337780894326,"y":35129.119431934945},"targetPosition":{"x":34810.36087141862,"y":34868.72848079784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H %B < 50 || 12H %B < 17.5","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.movingAverage <= 50 || \nchart.at12hs.percentageBandwidth.movingAverage <= 17.5","project":"Superalgos","id":"7673df58-3326-4d28-9005-47214b0f05c0","savedPayload":{"position":{"x":34949.78529694408,"y":35524.2744694647},"targetPosition":{"x":34889.49051228405,"y":35240.505391745406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5435a45d-891a-4456-8521-6587003fb171","savedPayload":{"position":{"x":34889.49051228405,"y":35240.505391745406},"targetPosition":{"x":34810.36087141862,"y":34868.72848079784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","project":"Superalgos","id":"4eadea14-f412-4849-b3f6-187e72b13bd8","savedPayload":{"position":{"x":34538.446687001146,"y":35480.725877918725},"targetPosition":{"x":34655.963101831025,"y":35216.207368805524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a94adefc-e6c3-4531-ab91-84d23096900a","savedPayload":{"position":{"x":34655.963101831025,"y":35216.207368805524},"targetPosition":{"x":34810.36087141862,"y":34868.72848079784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Channel Period > 5","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.period >=5","project":"Superalgos","id":"c69a88a9-be56-4dd6-88d9-c360b06fa501","savedPayload":{"position":{"x":34231.00541914165,"y":35204.1084378667},"targetPosition":{"x":34481.524843718136,"y":35059.062255157245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fe46196d-b481-4b9f-8908-43b5e7094d7f","savedPayload":{"position":{"x":34481.524843718136,"y":35059.062255157245},"targetPosition":{"x":34810.36087141862,"y":34868.72848079784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"80b47c3e-843a-43f5-8f74-5d2a437457fc","savedPayload":{"position":{"x":33464.06057725776,"y":46909.00306848872},"targetPosition":{"x":33582.28757239752,"y":46544.22110866073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"66% Target","project":"Superalgos","conditions":[{"type":"Condition","name":"66% Target","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close <= tradingEngine.current.position.entryTargetRate.value * 0.6","project":"Superalgos","id":"8a74b52a-5fc5-4ed0-85a3-4092e474081c","savedPayload":{"position":{"x":31626.08740422069,"y":35059.2731303153},"targetPosition":{"x":31818.03591196791,"y":35028.62532016897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f27c3841-bbe5-40a0-81e1-031db8512b53","savedPayload":{"position":{"x":31818.03591196791,"y":35028.62532016897},"targetPosition":{"x":32240.541212443826,"y":34961.49110452969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ff1379fd-2b18-4c17-b69b-5aed7bffc5c9","savedPayload":{"position":{"x":33240.70992859596,"y":46718.205224815145},"targetPosition":{"x":33582.28757239752,"y":46544.22110866073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"5e8f7f0f-0a93-4f9d-ac7c-da2b53d38919","savedPayload":{"position":{"x":33865.99048450286,"y":46860.80983700097},"targetPosition":{"x":33982.12778260721,"y":46503.02505246553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"ac38aa6f-c935-4bd3-90f5-69163e3f23ac","savedPayload":{"position":{"x":33982.12778260721,"y":46503.02505246553},"targetPosition":{"x":33730.52149260439,"y":46223.62142522518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P6: Lower Band","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"5a0e05fc-2b96-46dd-b913-fa10420404c0","savedPayload":{"position":{"x":34485.230108978336,"y":47061.76186402452},"targetPosition":{"x":34233.75171359939,"y":46782.464880138665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"9dc858f9-63b4-48a4-bcfc-5cee9a7219b4","savedPayload":{"position":{"x":34233.75171359939,"y":46782.464880138665},"targetPosition":{"x":33982.12778260721,"y":46503.02505246553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"116048c4-81d3-469d-842c-390bb32de8ce","savedPayload":{"position":{"x":31786.639470129536,"y":31318.62211889439},"targetPosition":{"x":31585.900288221877,"y":31095.67867125117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"7c129ba3-8e7d-422a-9e40-d3a362b2f251","savedPayload":{"position":{"x":31585.900288221877,"y":31095.67867125117},"targetPosition":{"x":31300.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"3d3dc6e9-d5c3-405d-bea2-ff0867368e87","savedPayload":{"position":{"x":32347.695683534817,"y":31304.982586213315},"targetPosition":{"x":32049.339114924336,"y":31336.341125193612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"93fa6d49-ec93-4df0-aa39-0e41982a794a","savedPayload":{"position":{"x":32049.339114924336,"y":31336.341125193612},"targetPosition":{"x":31750.982546313855,"y":31367.69966417391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value - tradingEngine.current.strategyOpenStage.stageQuotedAsset.feesPaid.value","project":"Superalgos","id":"6e98a177-0236-4e1c-8d32-7c67df342fac","savedPayload":{"position":{"x":32103.65369768934,"y":31853.109860798875},"targetPosition":{"x":31927.318122001598,"y":31610.404762486392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"85c5712b-61bc-4eaf-92a9-4fdacd110f85","savedPayload":{"position":{"x":31927.318122001598,"y":31610.404762486392},"targetPosition":{"x":31750.982546313855,"y":31367.69966417391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4cd64320-79e3-4a06-a892-02756d235dbe","savedPayload":{"position":{"x":31750.982546313855,"y":31367.69966417391},"targetPosition":{"x":31476.918909021075,"y":31245.67867125117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Quick Exit","config":"{\n\"percentageOfAlgorithmSize\": 100,\n\"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"142e80e8-6ef4-443c-91c2-96e0a2041523","savedPayload":{"position":{"x":31974.915568296467,"y":35237.07162975067},"targetPosition":{"x":31912.53566221539,"y":34941.80280142659},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2e4205ca-82db-4481-a5f9-8bd3d3619eac","savedPayload":{"position":{"x":31912.53566221539,"y":34941.80280142659},"targetPosition":{"x":31850.070901753486,"y":34646.434678903985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4067e6b8-f217-4094-a02f-4da7014704a1","savedPayload":{"position":{"x":31850.070901753486,"y":34646.434678903985},"targetPosition":{"x":31783.100593705563,"y":34329.47822661052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"092bc2da-ac37-407f-8e2f-6492ae11502c","savedPayload":{"position":{"x":31784.16231380583,"y":32246.100926238854},"targetPosition":{"x":31760.64340957061,"y":32022.333499780994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3b1d6016-48ec-4460-8200-30bc40049643","savedPayload":{"position":{"x":31760.64340957061,"y":32022.333499780994},"targetPosition":{"x":31737.12450533539,"y":31798.566073323134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"f46a0d35-2aea-47d3-96c9-ec3e063c5168","savedPayload":{"position":{"x":31737.12450533539,"y":31798.566073323134},"targetPosition":{"x":31713.605601100167,"y":31574.798646865274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13f97380-5bfb-4f7d-a690-ffefb67fdfb9","savedPayload":{"position":{"x":31508.277448001372,"y":31544.035239861652},"targetPosition":{"x":31476.918909021075,"y":31245.67867125117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"bdaf22d5-ad3a-43e4-8a9e-848b8f32eff4","savedPayload":{"position":{"x":31476.918909021075,"y":31245.67867125117},"targetPosition":{"x":31300.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a5f437d-1a17-4619-95e6-925b7686c87c","savedPayload":{"position":{"x":31300.583333333332,"y":31002.97357293869},"targetPosition":{"x":31000.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading Strategy","name":"Xtreme","project":"Superalgos","triggerStage":{"type":"Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"Xtreme","project":"Superalgos","conditions":[{"type":"Condition","name":"3 Closes Below MA","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage && \nchart.at01hs.candle.previous.close < chart.at01hs.bollingerBand.previous.movingAverage && \nchart.at01hs.candle.previous.previous.close < chart.at01hs.bollingerBand.previous.previous.movingAverage","project":"Superalgos","id":"afc33e4f-53e2-4106-83c3-9efa7e7bebc5","savedPayload":{"position":{"x":31064.397153800885,"y":31895.966461792745},"targetPosition":{"x":30915.6342480905,"y":31876.74153306458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0f055de8-0eb0-4a8c-aea8-0acc7480ac6c","savedPayload":{"position":{"x":30915.6342480905,"y":31876.74153306458},"targetPosition":{"x":30618.10843666973,"y":31838.291675608252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Breakdown","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"34bd2c52-c5aa-4e69-9b82-414008ee0b80","savedPayload":{"position":{"x":31030.07045998346,"y":32019.364289073834},"targetPosition":{"x":30892.74978554555,"y":31959.006751251974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4ccae6ab-5911-4e5b-aa69-57e157a5acf9","savedPayload":{"position":{"x":30892.74978554555,"y":31959.006751251974},"targetPosition":{"x":30618.10843666973,"y":31838.291675608252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"527f0ba5-4997-44c4-94d8-095c7b3d869e","savedPayload":{"position":{"x":30962.36905306965,"y":32128.09269009224},"targetPosition":{"x":30847.615514269677,"y":32031.49235193091},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bfed975b-1086-4648-b900-2c493bcd2278","savedPayload":{"position":{"x":30847.615514269677,"y":32031.49235193091},"targetPosition":{"x":30618.10843666973,"y":31838.291675608252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Deviation > 200","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 200","project":"Superalgos","id":"56266555-5754-48e1-be35-51840b451a61","savedPayload":{"position":{"x":30866.777698411835,"y":32213.343136430147},"targetPosition":{"x":30783.8879444978,"y":32088.325982822847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ca52539f-eab7-4867-80a9-4c03295df977","savedPayload":{"position":{"x":30783.8879444978,"y":32088.325982822847},"targetPosition":{"x":30618.10843666973,"y":31838.291675608252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Candle Size < 750","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.max - chart.at01hs.candle.min < 750","project":"Superalgos","id":"63b99ed2-4919-4262-aa74-ca9de1f83e0a","savedPayload":{"position":{"x":30751.040639060717,"y":32268.209143929183},"targetPosition":{"x":30706.729904930387,"y":32124.90332115554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"04132e51-a148-4e3b-a41a-d47deaa5113d","savedPayload":{"position":{"x":30706.729904930387,"y":32124.90332115554},"targetPosition":{"x":30618.10843666973,"y":31838.291675608252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Deviation < 1000","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation < 1000","project":"Superalgos","id":"5de63c96-ba0b-4329-8f5d-36414ecec5f3","savedPayload":{"position":{"x":30624.534203250132,"y":32288.245794962495},"targetPosition":{"x":30622.392281056666,"y":32138.26108851108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"206f98c9-6ebc-47bf-97f9-7a2369cf2a20","savedPayload":{"position":{"x":30622.392281056666,"y":32138.26108851108},"targetPosition":{"x":30618.10843666973,"y":31838.291675608252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Not Completly Oversold","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.percentageBandwidth.movingAverage >= 30 || \nchart.at03hs.percentageBandwidth.movingAverage >= 30 || \nchart.at04hs.percentageBandwidth.movingAverage >= 30 || \nchart.at06hs.percentageBandwidth.movingAverage >= 30 || \nchart.at08hs.percentageBandwidth.movingAverage >= 30","project":"Superalgos","id":"09a75c6c-1d70-4826-9926-b65c58db8ec9","savedPayload":{"position":{"x":30497.50719004671,"y":32271.829839225913},"targetPosition":{"x":30537.707605587715,"y":32127.317118020026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e5cc491c-ca57-4138-8c28-9b0f3aa706d7","savedPayload":{"position":{"x":30537.707605587715,"y":32127.317118020026},"targetPosition":{"x":30618.10843666973,"y":31838.291675608252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"if (chart.at01hs.bollingerSubChannel.slope != \"Extreme\") {true} else {if (chart.at01hs.bollingerSubChannel.period <=7) {true} else {false}}","project":"Superalgos","id":"67f3557c-8ecd-46bc-afbc-433af0bc47de","savedPayload":{"position":{"x":30380.25057260145,"y":32220.29119982376},"targetPosition":{"x":30459.536527290875,"y":32092.95802508526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f9dbefdb-09bf-4d90-964f-35b02cde3ce4","savedPayload":{"position":{"x":30459.536527290875,"y":32092.95802508526},"targetPosition":{"x":30618.10843666973,"y":31838.291675608252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H %B MA > 70","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.percentageBandwidth.movingAverage >= 70 || \nchart.at02hs.percentageBandwidth.previous.movingAverage >= 70 || \nchart.at02hs.percentageBandwidth.previous.previous.movingAverage >= 70 || \nchart.at02hs.percentageBandwidth.previous.previous.previous.movingAverage >= 70 || \nchart.at02hs.percentageBandwidth.previous.previous.previous.previous.movingAverage >= 70 || \nchart.at02hs.percentageBandwidth.previous.previous.previous.previous.previous.movingAverage >= 70","project":"Superalgos","id":"3e758bbf-798d-4350-b600-f66e65b79a94","savedPayload":{"position":{"x":30282.263784707815,"y":32137.805230808317},"targetPosition":{"x":30394.212002028453,"y":32037.967379074962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d4c531a6-e637-4fd8-a2b8-b8b248bf4a0a","savedPayload":{"position":{"x":30394.212002028453,"y":32037.967379074962},"targetPosition":{"x":30618.10843666973,"y":31838.291675608252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Deviation > 2000","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerBand.deviation > 2000","project":"Superalgos","id":"6dc8d475-f68f-4405-8418-5869e7ca3785","savedPayload":{"position":{"x":30211.485133171085,"y":32031.054454826262},"targetPosition":{"x":30347.0262343373,"y":31966.800195086926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"445f4ffc-bac0-44f2-9441-cf01424fd36e","savedPayload":{"position":{"x":30347.0262343373,"y":31966.800195086926},"targetPosition":{"x":30618.10843666973,"y":31838.291675608252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8a5bd03d-6958-4fd0-bd5d-84afb04a6bed","savedPayload":{"position":{"x":30618.10843666973,"y":31838.291675608252},"targetPosition":{"x":30571.17809715766,"y":31541.98517342971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"b21fbf4b-4ed3-4536-93f3-531ca2700817","savedPayload":{"position":{"x":30571.17809715766,"y":31541.98517342971},"targetPosition":{"x":30524.24775764559,"y":31245.67867125117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close > chart.at01hs.bollingerBand.movingAverage","project":"Superalgos","id":"3b591e8c-1739-4466-b9f3-87be08d0db90","savedPayload":{"position":{"x":29818.90545489462,"y":32216.499064501102},"targetPosition":{"x":29995.24103058236,"y":31973.79396618862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"20b59f4c-8ec5-4be8-9d06-f1b223045e83","savedPayload":{"position":{"x":29995.24103058236,"y":31973.79396618862},"targetPosition":{"x":30171.576606270104,"y":31731.088867876137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4b8da5dc-c9d7-4794-ba8a-ad3a737f82c6","savedPayload":{"position":{"x":30171.576606270104,"y":31731.088867876137},"targetPosition":{"x":30347.912181957847,"y":31488.383769563654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"4e265461-a65e-4f61-a123-f74d32a3d14f","savedPayload":{"position":{"x":30347.912181957847,"y":31488.383769563654},"targetPosition":{"x":30524.24775764559,"y":31245.67867125117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"Xtreme","project":"Superalgos","conditions":[{"type":"Condition","name":"3 Closes Below MA","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage && \nchart.at01hs.candle.previous.close < chart.at01hs.bollingerBand.previous.movingAverage && \nchart.at01hs.candle.previous.previous.close < chart.at01hs.bollingerBand.previous.previous.movingAverage","project":"Superalgos","id":"88151639-ba25-411f-ab3a-8e002e9948f2","savedPayload":{"position":{"x":29861.239244020406,"y":31783.999103543123},"targetPosition":{"x":29884.70441377644,"y":31635.84585245385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fc0bf247-86a1-4352-a85b-a0515a158629","savedPayload":{"position":{"x":29884.70441377644,"y":31635.84585245385},"targetPosition":{"x":29931.63475328851,"y":31339.53935027531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Breakdown","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"5ce80f14-1175-4cce-8f3f-cd05977d02e8","savedPayload":{"position":{"x":29727.339028405713,"y":31740.492286160075},"targetPosition":{"x":29795.437603366645,"y":31606.84130753182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"449a1458-781c-4214-9ddc-4e268891db36","savedPayload":{"position":{"x":29795.437603366645,"y":31606.84130753182},"targetPosition":{"x":29931.63475328851,"y":31339.53935027531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"660a8819-2e1b-46f9-b8ff-0f07b772ffb7","savedPayload":{"position":{"x":29613.436701754563,"y":31657.737401809256},"targetPosition":{"x":29719.502718932545,"y":31551.671384631274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b9a2cd43-d129-444e-9684-04ba93aa939e","savedPayload":{"position":{"x":29719.502718932545,"y":31551.671384631274},"targetPosition":{"x":29931.63475328851,"y":31339.53935027531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Deviation > 200","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 200","project":"Superalgos","id":"9d354242-8f6f-4dd4-8488-f453699caf51","savedPayload":{"position":{"x":29530.681817403743,"y":31543.835075158106},"targetPosition":{"x":29664.332796032,"y":31475.736500197174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2d429ceb-6816-4f9d-b211-4034080d39a3","savedPayload":{"position":{"x":29664.332796032,"y":31475.736500197174},"targetPosition":{"x":29931.63475328851,"y":31339.53935027531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Candle Size < 750","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.max - chart.at01hs.candle.min < 750","project":"Superalgos","id":"85a4f5bd-4255-4b8d-bb4e-62eddb053030","savedPayload":{"position":{"x":29487.175000020696,"y":31409.934859543413},"targetPosition":{"x":29635.328251109968,"y":31386.46968978738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0b3dba7b-79a2-425e-be41-0368ea2f005d","savedPayload":{"position":{"x":29635.328251109968,"y":31386.46968978738},"targetPosition":{"x":29931.63475328851,"y":31339.53935027531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Deviation < 1000","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation < 1000","project":"Superalgos","id":"89150469-6c19-4781-8c80-f3ac0728d734","savedPayload":{"position":{"x":29487.175000020696,"y":31269.143841007208},"targetPosition":{"x":29635.328251109968,"y":31292.60901076324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c27245cb-4562-4e8b-8cd2-171427de3d04","savedPayload":{"position":{"x":29635.328251109968,"y":31292.60901076324},"targetPosition":{"x":29931.63475328851,"y":31339.53935027531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Not Completly Oversold","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.percentageBandwidth.movingAverage >= 30 || \nchart.at03hs.percentageBandwidth.movingAverage >= 30 || \nchart.at04hs.percentageBandwidth.movingAverage >= 30 || \nchart.at06hs.percentageBandwidth.movingAverage >= 30 || \nchart.at08hs.percentageBandwidth.movingAverage >= 30","project":"Superalgos","id":"72d449b1-2eaf-449c-b4c2-7e54165620e4","savedPayload":{"position":{"x":29530.681817403743,"y":31135.243625392515},"targetPosition":{"x":29664.332796032,"y":31203.342200353447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"72c0840a-0162-4fb5-8fe0-1043a3500942","savedPayload":{"position":{"x":29664.332796032,"y":31203.342200353447},"targetPosition":{"x":29931.63475328851,"y":31339.53935027531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"if (chart.at01hs.bollingerSubChannel.slope != \"Extreme\") {true} else {if (chart.at01hs.bollingerSubChannel.period <=7) {true} else {false}}","project":"Superalgos","id":"fd550ee5-bb66-4475-9712-165aff7123a2","savedPayload":{"position":{"x":29613.436701754563,"y":31021.341298741365},"targetPosition":{"x":29719.502718932545,"y":31127.407315919347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"27abcda3-5917-4345-b070-f506dd03d511","savedPayload":{"position":{"x":29719.502718932545,"y":31127.407315919347},"targetPosition":{"x":29931.63475328851,"y":31339.53935027531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H %B MA > 70","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.percentageBandwidth.movingAverage >= 70 || \nchart.at02hs.percentageBandwidth.previous.movingAverage >= 70 || \nchart.at02hs.percentageBandwidth.previous.previous.movingAverage >= 70 || \nchart.at02hs.percentageBandwidth.previous.previous.previous.movingAverage >= 70 || \nchart.at02hs.percentageBandwidth.previous.previous.previous.previous.movingAverage >= 70 || \nchart.at02hs.percentageBandwidth.previous.previous.previous.previous.previous.movingAverage >= 70","project":"Superalgos","id":"ae35fa99-f82e-421d-9df7-695e52a2dbe3","savedPayload":{"position":{"x":29727.339028405713,"y":30938.586414390546},"targetPosition":{"x":29795.437603366645,"y":31072.2373930188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"055aec39-19b4-4001-8c7e-4e9d0b46a41d","savedPayload":{"position":{"x":29795.437603366645,"y":31072.2373930188},"targetPosition":{"x":29931.63475328851,"y":31339.53935027531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"935320b2-9c4b-4f95-a23b-eca780f9968e","savedPayload":{"position":{"x":29931.63475328851,"y":31339.53935027531},"targetPosition":{"x":30227.94125546705,"y":31292.60901076324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9473e9a0-df49-4111-aeb3-c3398a2cca06","savedPayload":{"position":{"x":30227.94125546705,"y":31292.60901076324},"targetPosition":{"x":30524.24775764559,"y":31245.67867125117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"7653910c-4637-4b93-909a-934356164e61","savedPayload":{"position":{"x":30524.24775764559,"y":31245.67867125117},"targetPosition":{"x":30700.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"openStage":{"type":"Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"My Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"20253ca8-c331-4d15-83dd-3615e5b3bd94","savedPayload":{"position":{"x":29853.493253701778,"y":31733.40522647004},"targetPosition":{"x":29900.273384135773,"y":31513.322016304934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2d8b919-87fd-4d37-86b7-7c1e7d6268ff","savedPayload":{"position":{"x":29900.273384135773,"y":31513.322016304934},"targetPosition":{"x":29947.05351456977,"y":31293.238806139827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.episodeBaseAsset.balance.value","project":"Superalgos","id":"a90e0c3d-a8f5-4cce-a763-2cc1a0d64502","savedPayload":{"position":{"x":29519.078082236952,"y":31432.296453608553},"targetPosition":{"x":29733.06579840336,"y":31362.76762987419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1f3a30b8-30b5-46e9-b8b7-1ceb4bf80aae","savedPayload":{"position":{"x":29733.06579840336,"y":31362.76762987419},"targetPosition":{"x":29947.05351456977,"y":31293.238806139827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"82010f4f-3614-4bdc-8c40-4d99e9e31312","savedPayload":{"position":{"x":30214.52719653713,"y":31318.62211889439},"targetPosition":{"x":30415.266378444787,"y":31095.67867125117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Quick Entry","config":"{\n\"percentageOfAlgorithmSize\": 100\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"1fe7e332-45dd-45c0-b106-63cdaea4bed4","savedPayload":{"position":{"x":28557.025429844765,"y":30798.570307369446},"targetPosition":{"x":28777.108640009872,"y":30845.35043780344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f2f65162-a972-4815-885c-a82298951d0b","savedPayload":{"position":{"x":28777.108640009872,"y":30845.35043780344},"targetPosition":{"x":28997.19185017498,"y":30892.130568237437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0662db35-3b83-4fad-be6c-aed4105f1804","savedPayload":{"position":{"x":28997.19185017498,"y":30892.130568237437},"targetPosition":{"x":29217.275060340085,"y":30938.910698671432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"8c738920-803e-4d81-81d7-f08f9d94d4b6","savedPayload":{"position":{"x":29217.275060340085,"y":30938.910698671432},"targetPosition":{"x":29437.358270505192,"y":30985.690829105428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4d78477-d485-45cc-ba6e-d97c76cf7dcc","savedPayload":{"position":{"x":29437.358270505192,"y":30985.690829105428},"targetPosition":{"x":29657.4414806703,"y":31032.470959539423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"8243f9c5-daa7-4793-9752-ade0c6dc895a","savedPayload":{"position":{"x":29657.4414806703,"y":31032.470959539423},"targetPosition":{"x":29877.524690835406,"y":31079.25108997342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"a2395358-86a8-43ae-8473-fd8bc36631b7","savedPayload":{"position":{"x":30121.822098224646,"y":31033.305164005844},"targetPosition":{"x":30415.266378444787,"y":31095.67867125117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"17b1363e-f9cb-4a68-bb06-666749e377e9","savedPayload":{"position":{"x":30415.266378444787,"y":31095.67867125117},"targetPosition":{"x":30700.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 1.03","project":"Superalgos","id":"2477d7a0-e2ef-4f98-8859-c9abdd65f330","savedPayload":{"position":{"x":29490.233894937886,"y":31092.030572768697},"targetPosition":{"x":29657.4414806703,"y":30941.476186337954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"shortcutKey":"q"}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Close Below 5%","code":"chart.at24hs.candlesProbability.begin > chart.at24hs.candlesProbability.begin","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < tradingEngine.current.position.entryTargetRate.value * 0.95","project":"Superalgos","id":"aa5d897c-69c4-4c32-a25d-76662d7e110f","savedPayload":{"position":{"x":27425.258194670652,"y":45535.24916029425},"targetPosition":{"x":27768.98203876626,"y":45423.54060934078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac91438d-54f6-4de5-bd93-2414037fd447","savedPayload":{"position":{"x":27768.98203876626,"y":45423.54060934078},"targetPosition":{"x":28112.91699616585,"y":45311.73498374794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ba1814d0-9aac-443f-8ce8-9f19e860b532","savedPayload":{"position":{"x":28112.91699616585,"y":45311.73498374794},"targetPosition":{"x":28466.58509111351,"y":45196.72245376765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"784ae520-1c92-4923-b9b1-b3da21840959","savedPayload":{"position":{"x":29443.45376450389,"y":30871.94736260359},"targetPosition":{"x":29657.4414806703,"y":30941.476186337954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"48832805-7cb3-4fe7-b465-5e20cb5393ce","savedPayload":{"position":{"x":29657.4414806703,"y":30941.476186337954},"targetPosition":{"x":29877.524690835406,"y":30894.696055903958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P1: Trailing 4% Above MA","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 1.04 < tradingEngine.current.position.stopLoss.value) \n{chart.at01hs.bollingerBand.movingAverage * 1.04} \nelse {tradingEngine.current.position.stopLoss.value}","project":"Superalgos","id":"1348c680-76ae-4766-bb6d-b8885b8b976c","savedPayload":{"position":{"x":29217.275060340085,"y":31035.036447205945},"targetPosition":{"x":29437.358270505192,"y":30988.25631677195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"b65434d1-738d-4df6-9b40-cb3674874299","savedPayload":{"position":{"x":29437.358270505192,"y":30988.25631677195},"targetPosition":{"x":29657.4414806703,"y":30941.476186337954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e0588afd-77c9-41e2-9ba3-6ad4661b299e","savedPayload":{"position":{"x":30121.822098224646,"y":30972.641981871533},"targetPosition":{"x":30415.266378444787,"y":30910.268474626206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"P 1","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01hs.bollingerBand.movingAverage * 0.6","project":"Superalgos","id":"da970219-d04e-4e81-b13f-11206c1ac444","savedPayload":{"position":{"x":29582.511411972617,"y":30443.971930270774},"targetPosition":{"x":29796.499128139025,"y":30513.500754005137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"3H Oversold","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at03hs.percentageBandwidth.previous.movingAverage <= 10","project":"Superalgos","id":"598ad9f2-1628-484a-8064-dc02a603a76a","savedPayload":{"position":{"x":27171.17284050179,"y":44277.38328629863},"targetPosition":{"x":27524.995399182353,"y":44352.26634811338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8d0ee4a2-12bc-4397-88eb-0336f5727cc5","savedPayload":{"position":{"x":27524.995399182353,"y":44352.26634811338},"targetPosition":{"x":27878.996731799434,"y":44427.09291578291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7aec6373-83e5-49e9-a929-24793f0edf63","savedPayload":{"position":{"x":27878.996731799434,"y":44427.09291578291},"targetPosition":{"x":28242.849271172472,"y":44503.757766532915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"3H Entering Oversold","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at03hs.percentageBandwidth.movingAverage <= 30","project":"Superalgos","id":"80b84359-b9be-4edb-959f-019c7db1a646","savedPayload":{"position":{"x":27589.78952965514,"y":43667.0371013618},"targetPosition":{"x":27858.75911868714,"y":43908.747866693826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b49b85e8-3e0f-4690-81aa-63bcc653bf61","savedPayload":{"position":{"x":27858.75911868714,"y":43908.747866693826},"targetPosition":{"x":28127.88465265492,"y":44150.628750116026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"ab06f5d1-3b5b-46bb-a11f-53bdfb934128","savedPayload":{"position":{"x":28276.691511032845,"y":43444.24416533789},"targetPosition":{"x":28202.34829695753,"y":43797.158454184915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c7e3d21c-8c14-4803-baf0-993d5ea14115","savedPayload":{"position":{"x":28202.34829695753,"y":43797.158454184915},"targetPosition":{"x":28127.88465265492,"y":44150.628750116026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"66e824e8-bcb1-4d2f-b0c0-71d69c21c21d","savedPayload":{"position":{"x":28127.88465265492,"y":44150.628750116026},"targetPosition":{"x":28242.849271172472,"y":44503.757766532915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"45d39511-6b07-4481-aae9-2db4bb322f55","savedPayload":{"position":{"x":29749.71899770503,"y":30293.41754384003},"targetPosition":{"x":29796.499128139025,"y":30513.500754005137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"af39b8d4-dff2-4b71-85b8-25f18c617aca","savedPayload":{"position":{"x":29796.499128139025,"y":30513.500754005137},"targetPosition":{"x":29947.05351456977,"y":30680.70833973755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P 2","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01hs.bollingerBand.movingAverage * 0.7","project":"Superalgos","id":"6e57c877-ec29-43b0-9003-6a4bc491437b","savedPayload":{"position":{"x":29425.861531543174,"y":30393.07329870672},"targetPosition":{"x":29645.94474170828,"y":30346.293168272725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"4H Previous %B < 15","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at04hs.percentageBandwidth.previous.movingAverage <= 15","project":"Superalgos","id":"70a8d00a-b4e5-4bf7-b778-5044173db6e0","savedPayload":{"position":{"x":29842.494712090225,"y":29527.538797068857},"targetPosition":{"x":29811.742467163425,"y":29693.463062720275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"02fdb9bc-e3fe-4133-9992-33c81371e710","savedPayload":{"position":{"x":29811.742467163425,"y":29693.463062720275},"targetPosition":{"x":29780.990222236625,"y":29859.387328371693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"74c4dbfb-5dee-4404-9eda-2f93ba6fc5b5","savedPayload":{"position":{"x":29780.990222236625,"y":29859.387328371693},"targetPosition":{"x":29750.237977309826,"y":30025.31159402311},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"4H %B < 50","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at04hs.percentageBandwidth.movingAverage <= 50","project":"Superalgos","id":"0ecf3b89-510e-41e2-bb99-fca45f1ecade","savedPayload":{"position":{"x":30059.459340926707,"y":29629.344487518472},"targetPosition":{"x":29967.55150376792,"y":29770.870145859262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a9031b3b-9d32-42c7-929d-7d83f7fa0fac","savedPayload":{"position":{"x":29967.55150376792,"y":29770.870145859262},"targetPosition":{"x":29875.643666609136,"y":29912.395804200052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"6131bc6f-dacb-4247-a4fc-d18f8d204491","savedPayload":{"position":{"x":30176.35836852271,"y":29759.174010537958},"targetPosition":{"x":30026.001017565923,"y":29835.784907369005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f96a644-8447-4406-94c9-d466e0d4d7f9","savedPayload":{"position":{"x":30026.001017565923,"y":29835.784907369005},"targetPosition":{"x":29875.643666609136,"y":29912.395804200052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9253d35a-1ff4-4889-aa4c-d2d9cc495879","savedPayload":{"position":{"x":29875.643666609136,"y":29912.395804200052},"targetPosition":{"x":29750.237977309826,"y":30025.31159402311},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"ca7f0fa8-4f3b-4090-bc50-ff76e84401f2","savedPayload":{"position":{"x":29750.237977309826,"y":30025.31159402311},"targetPosition":{"x":29645.94474170828,"y":30346.293168272725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"cbc568dd-3da9-4818-8501-6c7f48b2a42e","savedPayload":{"position":{"x":29645.94474170828,"y":30346.293168272725},"targetPosition":{"x":29796.499128139025,"y":30513.500754005137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P 3","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01hs.bollingerBand.movingAverage * 0.8","project":"Superalgos","id":"b20cc025-3f64-4362-bc52-a43fa66de135","savedPayload":{"position":{"x":29275.30714511243,"y":30225.865712974308},"targetPosition":{"x":29495.390355277537,"y":30179.085582540312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"6H Previous %B < 15","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at06hs.percentageBandwidth.previous.movingAverage <= 15","project":"Superalgos","id":"ad489932-52d2-423a-bb47-db08d9934027","savedPayload":{"position":{"x":30081.982566703093,"y":29741.212795334824},"targetPosition":{"x":29925.861033258447,"y":30029.045817936934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d0a8b6d2-862f-4dc8-894f-98a147328521","savedPayload":{"position":{"x":29925.861033258447,"y":30029.045817936934},"targetPosition":{"x":29769.67527949699,"y":30317.155355532508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51dea0e4-a5b0-419e-9077-f5d60ad8e4cd","savedPayload":{"position":{"x":29769.67527949699,"y":30317.155355532508},"targetPosition":{"x":29606.13408476544,"y":30619.98028667826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"5H %B < 50","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at06hs.percentageBandwidth.movingAverage <= 50","project":"Superalgos","id":"10317b11-632c-4cbf-ad84-7ec0b75f999e","savedPayload":{"position":{"x":30429.577575658364,"y":30068.331484953793},"targetPosition":{"x":30175.548048088913,"y":30274.259859247137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8beb8b51-1353-4670-b392-b4e6c9c2cdf0","savedPayload":{"position":{"x":30175.548048088913,"y":30274.259859247137},"targetPosition":{"x":29920.95164174731,"y":30480.453049550153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"d87940c6-f532-4acd-96da-06e846214122","savedPayload":{"position":{"x":30571.65515480618,"y":30548.15562724395},"targetPosition":{"x":30246.597381910175,"y":30514.316845561003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b2b584bd-42c3-4a54-94d1-afcc2e676afc","savedPayload":{"position":{"x":30246.597381910175,"y":30514.316845561003},"targetPosition":{"x":29920.95164174731,"y":30480.453049550153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0d104bb9-af75-4f6f-97b6-9d1bbad410b3","savedPayload":{"position":{"x":29920.95164174731,"y":30480.453049550153},"targetPosition":{"x":29606.13408476544,"y":30619.98028667826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"74fa819d-43c6-44b7-8ec4-64bd97c2ce29","savedPayload":{"position":{"x":29599.68359087908,"y":29858.1040082907},"targetPosition":{"x":29495.390355277537,"y":30179.085582540312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"d909c920-b2a7-457f-96a4-1841a61b0428","savedPayload":{"position":{"x":29495.390355277537,"y":30179.085582540312},"targetPosition":{"x":29645.94474170828,"y":30346.293168272725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P 4","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01hs.bollingerBand.movingAverage * 0.85","project":"Superalgos","id":"72e1f768-6908-4402-8935-41705cb7c2e1","savedPayload":{"position":{"x":29124.752758681687,"y":30058.658127241895},"targetPosition":{"x":29344.835968846794,"y":30011.8779968079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"8H %B 0< 15 && 1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at08hs.percentageBandwidth.previous.movingAverage <= 15 && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >= 5","project":"Superalgos","id":"72c3f3e2-037a-4840-a2ac-5f682a578c14","savedPayload":{"position":{"x":29904.726860125706,"y":29343.176844799473},"targetPosition":{"x":29748.593866705738,"y":29630.97528344272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a3c4a2c7-bb79-4d9d-9a6f-bd56fc231211","savedPayload":{"position":{"x":29748.593866705738,"y":29630.97528344272},"targetPosition":{"x":29592.41263300685,"y":29918.983048129903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ea20d7db-4468-457c-b65f-a52744fb6fc5","savedPayload":{"position":{"x":29592.41263300685,"y":29918.983048129903},"targetPosition":{"x":29428.719324074442,"y":30221.69004647084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"8H %B < 40 && 1H Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at08hs.percentageBandwidth.movingAverage <= 40 && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >= 3","project":"Superalgos","id":"6485a5b2-2959-4358-947e-98d0f3c88011","savedPayload":{"position":{"x":30251.99147291359,"y":29669.966622170956},"targetPosition":{"x":29997.960302769043,"y":29875.867095068304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d8553226-ae92-4b87-ae86-5b53607d3bd3","savedPayload":{"position":{"x":29997.960302769043,"y":29875.867095068304},"targetPosition":{"x":29743.47404168342,"y":30082.03833708503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Previous Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.direction === \"Up\"","project":"Superalgos","id":"d1a82d5f-7ff4-4c23-9147-a13f5199f21f","savedPayload":{"position":{"x":30389.794818813538,"y":29979.74338693027},"targetPosition":{"x":30066.895546697615,"y":30030.878691008325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c80b06ad-0f63-41c0-a485-0bc97313fd48","savedPayload":{"position":{"x":30066.895546697615,"y":30030.878691008325},"targetPosition":{"x":29743.47404168342,"y":30082.03833708503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5a234bc0-ff31-4650-878e-c21a11204d2a","savedPayload":{"position":{"x":29743.47404168342,"y":30082.03833708503},"targetPosition":{"x":29428.719324074442,"y":30221.69004647084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"248f0567-8e65-41c6-9580-71229332c7bb","savedPayload":{"position":{"x":29449.129204448338,"y":29690.896422558286},"targetPosition":{"x":29344.835968846794,"y":30011.8779968079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"d52d95cd-0d77-468c-a7f1-497c2476fe33","savedPayload":{"position":{"x":29344.835968846794,"y":30011.8779968079},"targetPosition":{"x":29495.390355277537,"y":30179.085582540312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P 5","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01hs.bollingerBand.movingAverage * 0.9","project":"Superalgos","id":"a39ae165-abd6-4725-ac6a-4edbef7200e4","savedPayload":{"position":{"x":28974.198372250943,"y":29891.450541509483},"targetPosition":{"x":29194.28158241605,"y":29844.670411075487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Complex","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at12hs.percentageBandwidth.previous.movingAverage <= 15 && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >= 15","project":"Superalgos","id":"0d7d916c-3334-4422-8998-28f78bcbaf78","savedPayload":{"position":{"x":29726.94240869815,"y":28944.840520656762},"targetPosition":{"x":29570.961871000105,"y":29232.457875860535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"60ecd582-0e23-4c8a-8077-7201d263cca2","savedPayload":{"position":{"x":29570.961871000105,"y":29232.457875860535},"targetPosition":{"x":29415.01546769645,"y":29520.15632128513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4d364cc4-cdb0-4fba-bc23-235dcb482a4e","savedPayload":{"position":{"x":29415.01546769645,"y":29520.15632128513},"targetPosition":{"x":29251.3198725836,"y":29823.25616301414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Complex","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"(chart.at24hs.percentageBandwidth.movingAverage <= 70 || chart.at12hs.percentageBandwidth.movingAverage <= 40 ) && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >=5","project":"Superalgos","id":"ddebbd89-cba4-4d06-8fe9-a13fcbd4ba18","savedPayload":{"position":{"x":30074.92744451414,"y":29271.426727796},"targetPosition":{"x":29820.434653081636,"y":29477.547922565675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2bf45ba3-ea96-40d1-a8eb-1f5b58eb97e3","savedPayload":{"position":{"x":29820.434653081636,"y":29477.547922565675},"targetPosition":{"x":29565.93347114677,"y":29683.782436348745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Prev Prev Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","project":"Superalgos","id":"877fda2b-35d0-45b5-9457-3f791f5ceeb0","savedPayload":{"position":{"x":30212.773823037573,"y":29581.301454504868},"targetPosition":{"x":29889.404632989263,"y":29632.643412417423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"658ac695-5997-4780-9d05-8ca8cdd9cd6a","savedPayload":{"position":{"x":29889.404632989263,"y":29632.643412417423},"targetPosition":{"x":29565.93347114677,"y":29683.782436348745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"11b94bab-c0d6-4b49-95c2-4a65f5794288","savedPayload":{"position":{"x":29565.93347114677,"y":29683.782436348745},"targetPosition":{"x":29251.3198725836,"y":29823.25616301414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"6b6a705b-b008-4784-8e06-a7ff7138725b","savedPayload":{"position":{"x":29298.574818017594,"y":29523.688836825873},"targetPosition":{"x":29194.28158241605,"y":29844.670411075487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"46eafddb-7478-432f-818f-0c458b59171b","savedPayload":{"position":{"x":29194.28158241605,"y":29844.670411075487},"targetPosition":{"x":29344.835968846794,"y":30011.8779968079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P 6","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation * 1.75","project":"Superalgos","id":"29d4e7bb-f154-44c4-825c-24719949e808","savedPayload":{"position":{"x":28823.6439858202,"y":29724.24295577707},"targetPosition":{"x":29043.727195985306,"y":29677.462825343075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.previous.movingAverage <= 30 && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >=10","project":"Superalgos","id":"d5ac2bb6-e328-40f7-bae6-26c46b85f9ea","savedPayload":{"position":{"x":29431.07154444797,"y":28491.735651527983},"targetPosition":{"x":29313.99033091612,"y":28797.279875552413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c57b02c1-e38e-4c24-8ca0-5d5790f8c475","savedPayload":{"position":{"x":29313.99033091612,"y":28797.279875552413},"targetPosition":{"x":29196.791951428673,"y":29103.35991517422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cbfd82c7-c57c-4d1e-9a95-b05ad5765eca","savedPayload":{"position":{"x":29196.791951428673,"y":29103.35991517422},"targetPosition":{"x":29074.023805063178,"y":29424.874917652014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"(chart.at24hs.percentageBandwidth.movingAverage <= 60 || chart.at12hs.percentageBandwidth.movingAverage <= 30 ) && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >=5","project":"Superalgos","id":"7af7ef05-50d0-4db9-ae3c-8aed6a9842cd","savedPayload":{"position":{"x":29897.104690155033,"y":28873.034975694154},"targetPosition":{"x":29643.060990043185,"y":29078.969739920467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b79e13b-e44f-41bb-9450-47881760fb81","savedPayload":{"position":{"x":29643.060990043185,"y":29078.969739920467},"targetPosition":{"x":29388.697562647645,"y":29285.152352690486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Prev Prev Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","project":"Superalgos","id":"8c6bbc80-2d99-434a-ad29-12505c118c41","savedPayload":{"position":{"x":30034.96089243337,"y":29182.893898435475},"targetPosition":{"x":29712.060130339258,"y":29234.052759577564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ce4d9250-7aee-432f-b0f7-a25a0d3739d1","savedPayload":{"position":{"x":29712.060130339258,"y":29234.052759577564},"targetPosition":{"x":29388.697562647645,"y":29285.152352690486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"defc1a9e-ccaa-424b-be17-0efc30e2c0a6","savedPayload":{"position":{"x":29388.697562647645,"y":29285.152352690486},"targetPosition":{"x":29074.023805063178,"y":29424.874917652014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9fb1dbd3-fed7-424c-add0-f6b7481dab05","savedPayload":{"position":{"x":29148.02043158685,"y":29356.48125109346},"targetPosition":{"x":29043.727195985306,"y":29677.462825343075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"8c0276f0-0551-4ce2-9287-0c9bfe22085a","savedPayload":{"position":{"x":29043.727195985306,"y":29677.462825343075},"targetPosition":{"x":29194.28158241605,"y":29844.670411075487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P 7","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation * 1.25","project":"Superalgos","id":"4e6d15ed-8c85-43cd-90e3-a73eeed22389","savedPayload":{"position":{"x":28673.089599389456,"y":29557.035370044658},"targetPosition":{"x":28893.172809554562,"y":29510.255239610662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.percentageBandwidth.previous.movingAverage <= 30 && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >=10","project":"Superalgos","id":"c29560f8-3916-4e7b-bd05-ec4c5c70aaad","savedPayload":{"position":{"x":28714.32729387833,"y":28383.369305858643},"targetPosition":{"x":28565.803056171444,"y":28657.536772239215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"29cd95e8-e310-4279-8fc6-a886eaeb939d","savedPayload":{"position":{"x":28565.803056171444,"y":28657.536772239215},"targetPosition":{"x":28417.10225411398,"y":28932.22848708009},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7849fb9b-2762-47fa-bc35-690f40049780","savedPayload":{"position":{"x":28417.10225411398,"y":28932.22848708009},"targetPosition":{"x":28265.339563036276,"y":29213.780830079442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"(chart.at24hs.percentageBandwidth.movingAverage <= 50 || chart.at12hs.percentageBandwidth.movingAverage <= 17.5 ) && chart.at01hs.bollingerSubChannel.slope === \"Extreme\" && chart.at01hs.bollingerSubChannel.period >=5","project":"Superalgos","id":"f15eb65a-7dfa-4d09-b624-3a3d3e2b6420","savedPayload":{"position":{"x":29089.70761402402,"y":28758.12289930749},"targetPosition":{"x":28823.933816824774,"y":28920.944121066786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b4307590-5fe4-4997-a25c-3221fcaea5ea","savedPayload":{"position":{"x":28823.933816824774,"y":28920.944121066786},"targetPosition":{"x":28558.008704034855,"y":29084.05593025312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","project":"Superalgos","id":"98b65fea-6bb0-4a9a-8d31-3997e56c6c63","savedPayload":{"position":{"x":29174.180017029303,"y":28986.831302276583},"targetPosition":{"x":28866.155217157928,"y":29035.44132161218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7a79c0f2-514b-441a-ae08-5e1c1d815095","savedPayload":{"position":{"x":28866.155217157928,"y":29035.44132161218},"targetPosition":{"x":28558.008704034855,"y":29084.05593025312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e2165070-d0eb-428c-a168-dfacb74f0844","savedPayload":{"position":{"x":28558.008704034855,"y":29084.05593025312},"targetPosition":{"x":28265.339563036276,"y":29213.780830079442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"5ea9ce09-4324-4961-a5c0-9018bd9e8d36","savedPayload":{"position":{"x":28997.466045156107,"y":29189.27366536105},"targetPosition":{"x":28893.172809554562,"y":29510.255239610662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"64a62511-14f3-45ad-897b-543abba98920","savedPayload":{"position":{"x":28893.172809554562,"y":29510.255239610662},"targetPosition":{"x":29043.727195985306,"y":29677.462825343075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"P 8","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"96ea6099-ad3a-4240-95d9-1486bb21c131","savedPayload":{"position":{"x":28592.064036693075,"y":29175.840068145837},"targetPosition":{"x":28742.61842312382,"y":29343.04765387825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"cd3e2a56-39ae-4a5e-8190-f2b65ba6f8e2","savedPayload":{"position":{"x":28742.61842312382,"y":29343.04765387825},"targetPosition":{"x":28893.172809554562,"y":29510.255239610662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1d7d8a99-1d8d-41e4-9544-61ae4667aa1a","savedPayload":{"position":{"x":30214.52719653713,"y":30687.325026982988},"targetPosition":{"x":30415.266378444787,"y":30910.268474626206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"fa22b9a6-5479-4409-b77a-b9a20b365f95","savedPayload":{"position":{"x":30415.266378444787,"y":30910.268474626206},"targetPosition":{"x":30700.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"00a8423d-4604-4d28-aa43-0fe8410c1a4e","savedPayload":{"position":{"x":29607.997388916414,"y":30578.43798924835},"targetPosition":{"x":29831.764815374274,"y":30554.919085013127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"62dec497-f190-41dc-b7a6-430ffb78fa3c","savedPayload":{"position":{"x":29831.764815374274,"y":30554.919085013127},"targetPosition":{"x":30055.532241832134,"y":30531.400180777906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value - tradingEngine.current.strategyOpenStage.stageQuotedAsset.feesPaid.value","project":"Superalgos","id":"8bbc979f-5425-49af-807b-38944be9b312","savedPayload":{"position":{"x":29791.02887830052,"y":30167.34253330918},"targetPosition":{"x":29923.280560066327,"y":30349.371357043543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e4a38608-0a48-4e4c-b291-36ee1a1b85c5","savedPayload":{"position":{"x":29923.280560066327,"y":30349.371357043543},"targetPosition":{"x":30055.532241832134,"y":30531.400180777906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7421d18f-87c9-4790-8e17-16642ba1efac","savedPayload":{"position":{"x":30250.18412035281,"y":30638.247481703467},"targetPosition":{"x":30524.24775764559,"y":30760.268474626206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Quick Exit","config":"{\n\"percentageOfAlgorithmSize\": 100,\n\"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"f9b6428b-706c-4762-b526-e65ce3a9eba1","savedPayload":{"position":{"x":29561.031882569547,"y":41448.99033134701},"targetPosition":{"x":29598.988239018396,"y":41807.96505657351},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7ce28ab2-846f-44e3-8d42-66e702d7cf6f","savedPayload":{"position":{"x":29598.988239018396,"y":41807.96505657351},"targetPosition":{"x":29637.528604467505,"y":42167.27857339248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"17c82be6-9c06-467f-8e89-bc76d7f3b0d8","savedPayload":{"position":{"x":29637.528604467505,"y":42167.27857339248},"targetPosition":{"x":29676.029624600913,"y":42536.65383108058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"acb7cd15-47a6-4b89-a991-02d53cbd5d88","savedPayload":{"position":{"x":30167.004352860833,"y":29727.846219638523},"targetPosition":{"x":30190.523257096054,"y":29951.613646096383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4f521b37-053e-45a1-9cc0-a2b54430a6f1","savedPayload":{"position":{"x":30190.523257096054,"y":29951.613646096383},"targetPosition":{"x":30214.042161331276,"y":30175.381072554243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"7bacad1e-a99b-4dee-ba33-4857babf5f60","savedPayload":{"position":{"x":30214.042161331276,"y":30175.381072554243},"targetPosition":{"x":30237.561065566497,"y":30399.148499012103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2fb3a68a-bccc-4f15-a093-81d7230e3534","savedPayload":{"position":{"x":30492.889218665292,"y":30461.911906015725},"targetPosition":{"x":30524.24775764559,"y":30760.268474626206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"b0b4389a-74f6-4807-af15-1b8c43c247cb","savedPayload":{"position":{"x":30524.24775764559,"y":30760.268474626206},"targetPosition":{"x":30700.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c6dfb2a4-3e3d-4a44-a9da-00251dae88a7","savedPayload":{"position":{"x":30700.583333333332,"y":31002.97357293869},"targetPosition":{"x":31000.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"975c2fc3-a8f5-43e9-900f-4a4f2430d128","savedPayload":{"position":{"x":31000.583333333332,"y":31002.97357293869},"targetPosition":{"x":31000.583333333332,"y":31002.97357293869},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"w"}}},{"type":"Trading System","name":"BB Top Bounce","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","tradingStrategies":[{"type":"Trading Strategy","name":"S1 - 3H Down","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"99948a6e-e866-4339-86ba-eac367226312","savedPayload":{"position":{"x":34014.34461109166,"y":30024.443431659598},"targetPosition":{"x":34306.05558721097,"y":30094.47704081637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f0534c68-ab47-4370-b1fd-b3be4c1c262f","savedPayload":{"position":{"x":34306.05558721097,"y":30094.47704081637},"targetPosition":{"x":34597.766563330275,"y":30164.510649973145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"d3bd1690-1f94-484b-ac3c-7be2c7be85ed","savedPayload":{"position":{"x":34112.3563667053,"y":29811.83949859766},"targetPosition":{"x":34355.06146501779,"y":29988.175074285402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2d7334d-cf52-44d9-a20e-5be201ca6799","savedPayload":{"position":{"x":34355.06146501779,"y":29988.175074285402},"targetPosition":{"x":34597.766563330275,"y":30164.510649973145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"d1fa707f-eb75-4b1c-8117-688b9b94e539","savedPayload":{"position":{"x":34284.2674245007,"y":29652.92655136069},"targetPosition":{"x":34441.01699391549,"y":29908.718600666918},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fb71bcfb-2a40-4e8a-b8e8-b492128350a0","savedPayload":{"position":{"x":34441.01699391549,"y":29908.718600666918},"targetPosition":{"x":34597.766563330275,"y":30164.510649973145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"8c8c5128-b88b-44a5-8e36-d5c61127404f","savedPayload":{"position":{"x":34503.90588430614,"y":29571.897645616064},"targetPosition":{"x":34550.83622381821,"y":29868.204147794604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"22246178-a8f9-4ec8-b55b-36cf7a24fbff","savedPayload":{"position":{"x":34550.83622381821,"y":29868.204147794604},"targetPosition":{"x":34597.766563330275,"y":30164.510649973145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Medium, Steep or Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerSubChannel.slope === \"Medium\" || chart.at03hs.bollingerSubChannel.slope === \"Steep\" || chart.at03hs.bollingerSubChannel.slope === \"Extreme\" ","project":"Superalgos","id":"bf8df41c-c62f-4cd6-840e-1dd538359c3b","savedPayload":{"position":{"x":34737.83378164382,"y":29581.08869773454},"targetPosition":{"x":34667.80017248705,"y":29872.799673853842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9dba774d-1afa-40dd-b5ec-8f4029824473","savedPayload":{"position":{"x":34667.80017248705,"y":29872.799673853842},"targetPosition":{"x":34597.766563330275,"y":30164.510649973145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Gentle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope === \"Gentle\"","project":"Superalgos","id":"c4428437-7308-46f3-884e-22d2aac8d1a0","savedPayload":{"position":{"x":34950.43771470576,"y":29679.10045334818},"targetPosition":{"x":34774.10213901802,"y":29921.805551660662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7766453d-73ca-46f7-a39c-00f4f11af05e","savedPayload":{"position":{"x":34774.10213901802,"y":29921.805551660662},"targetPosition":{"x":34597.766563330275,"y":30164.510649973145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"eac9b2d4-4364-4116-9d99-e92b8bbce5e7","savedPayload":{"position":{"x":35109.35066194273,"y":29851.011511143577},"targetPosition":{"x":34853.5586126365,"y":30007.76108055836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"40cb1853-f93e-4023-8d45-708376281bde","savedPayload":{"position":{"x":34853.5586126365,"y":30007.76108055836},"targetPosition":{"x":34597.766563330275,"y":30164.510649973145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8d558598-60b5-4104-9a84-1773b125c509","savedPayload":{"position":{"x":34597.766563330275,"y":30164.510649973145},"targetPosition":{"x":34644.69690284234,"y":30460.817152151685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"3afd4ef5-2175-48fa-844f-e4e4ed775b26","savedPayload":{"position":{"x":34644.69690284234,"y":30460.817152151685},"targetPosition":{"x":34691.62724235441,"y":30757.123654330226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","project":"Superalgos","id":"0fb11814-5ba2-4c23-86b0-e6f8c01363e6","savedPayload":{"position":{"x":35044.29839372989,"y":30271.713457705253},"targetPosition":{"x":34956.13060588602,"y":30393.066006861496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32415e55-51cb-44cf-a0d9-9de73b946da8","savedPayload":{"position":{"x":34956.13060588602,"y":30393.066006861496},"targetPosition":{"x":34867.96281804215,"y":30514.41855601774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"317dd29a-db32-4f10-bee0-325b7a7c816c","savedPayload":{"position":{"x":34867.96281804215,"y":30514.41855601774},"targetPosition":{"x":34779.79503019828,"y":30635.771105173983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"547d578f-4568-4b1f-965d-1d598b7b67bb","savedPayload":{"position":{"x":34779.79503019828,"y":30635.771105173983},"targetPosition":{"x":34691.62724235441,"y":30757.123654330226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"903651ac-50d3-44ea-aae2-0b6bbe43b989","savedPayload":{"position":{"x":37642.30746502504,"y":30077.84102306748},"targetPosition":{"x":37572.27385586827,"y":30369.551999186784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4c4c6084-bebe-46ce-a12f-68924568c81d","savedPayload":{"position":{"x":37572.27385586827,"y":30369.551999186784},"targetPosition":{"x":37502.240246711495,"y":30661.262975306086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"b16e3f56-5a3f-4af9-a9d1-ff3bbf9ca0b8","savedPayload":{"position":{"x":37854.91139808698,"y":30175.85277868112},"targetPosition":{"x":37678.57582239924,"y":30418.557876993604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c4e1f247-db57-4488-81e9-c7602562b8f3","savedPayload":{"position":{"x":37678.57582239924,"y":30418.557876993604},"targetPosition":{"x":37502.240246711495,"y":30661.262975306086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"34452811-c161-4b33-8335-bc996a8638ad","savedPayload":{"position":{"x":38013.82434532395,"y":30347.76383647652},"targetPosition":{"x":37758.03229601772,"y":30504.513405891303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"db35b110-1991-4e3d-a1bd-04b0d1bad669","savedPayload":{"position":{"x":37758.03229601772,"y":30504.513405891303},"targetPosition":{"x":37502.240246711495,"y":30661.262975306086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"8fcf0aed-cd6b-4df9-8ec4-4511fcde66d8","savedPayload":{"position":{"x":38094.85325106858,"y":30567.402296281947},"targetPosition":{"x":37798.54674889004,"y":30614.332635794017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48bd56ea-0d5a-404d-a887-061493bebbcf","savedPayload":{"position":{"x":37798.54674889004,"y":30614.332635794017},"targetPosition":{"x":37502.240246711495,"y":30661.262975306086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Medium, Steep or Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerSubChannel.slope === \"Medium\" || chart.at03hs.bollingerSubChannel.slope === \"Steep\" || chart.at03hs.bollingerSubChannel.slope === \"Extreme\" ","project":"Superalgos","id":"40b36ec9-ebf1-43fe-8003-f0d130b7cb36","savedPayload":{"position":{"x":38085.66219895011,"y":30801.330193619633},"targetPosition":{"x":37793.9512228308,"y":30731.29658446286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c90a754-52bd-47cf-a3b5-95ad037bbb62","savedPayload":{"position":{"x":37793.9512228308,"y":30731.29658446286},"targetPosition":{"x":37502.240246711495,"y":30661.262975306086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Gentle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope === \"Gentle\"","project":"Superalgos","id":"3f28257c-cc33-4c59-b40b-85bc88821f96","savedPayload":{"position":{"x":37987.65044333647,"y":31013.93412668157},"targetPosition":{"x":37744.94534502398,"y":30837.59855099383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fc2fb509-2854-4359-aa1e-b32a2174bd35","savedPayload":{"position":{"x":37744.94534502398,"y":30837.59855099383},"targetPosition":{"x":37502.240246711495,"y":30661.262975306086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"5226a3d7-c8f8-41bd-9b45-f6238576628f","savedPayload":{"position":{"x":37815.73938554107,"y":31172.84707391854},"targetPosition":{"x":37658.98981612628,"y":30917.055024612313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b38876e-bcad-4cec-90e2-c2e358723d29","savedPayload":{"position":{"x":37658.98981612628,"y":30917.055024612313},"targetPosition":{"x":37502.240246711495,"y":30661.262975306086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"46e2ecf6-82ae-435d-a3a0-d5e2903404fd","savedPayload":{"position":{"x":37502.240246711495,"y":30661.262975306086},"targetPosition":{"x":37205.93374453295,"y":30708.193314818156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"93418d2a-3047-4f80-aa59-0c6fdb35ad43","savedPayload":{"position":{"x":34987.93374453295,"y":30710.193314818156},"targetPosition":{"x":34691.62724235441,"y":30757.123654330226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"1055a2cc-e93a-4dd8-a992-f56553527ddd","savedPayload":{"position":{"x":34691.62724235441,"y":30757.123654330226},"targetPosition":{"x":34515.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"My Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"e0c6286e-4947-427a-aea3-a793fb1acf75","savedPayload":{"position":{"x":30660.074262288428,"y":26955.101379950684},"targetPosition":{"x":30589.672153528496,"y":27285.81247617225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fff26070-c80f-4e78-bb0f-71e16d943698","savedPayload":{"position":{"x":30589.672153528496,"y":27285.81247617225},"targetPosition":{"x":30503.801197896137,"y":27686.654444471693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.episodeBaseAsset.balance.value","project":"Superalgos","id":"f2dd66ad-27a6-4859-aeb9-bd7316555b99","savedPayload":{"position":{"x":31214.005524997876,"y":27456.12722250138},"targetPosition":{"x":30893.255042587676,"y":27560.238393491753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b5e86b74-5db2-4019-85c6-ea397d675f50","savedPayload":{"position":{"x":30893.255042587676,"y":27560.238393491753},"targetPosition":{"x":30503.801197896137,"y":27686.654444471693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f7416bc8-8652-4670-965b-9b1f1f3da0ad","savedPayload":{"position":{"x":37100.97821250904,"y":30329.651930508615},"targetPosition":{"x":37000.608621555206,"y":30441.123654330226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Quick Entry","config":"{\n\"percentageOfAlgorithmSize\": 100\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"0d3863ca-6912-4fea-8b35-0889324ea7f5","savedPayload":{"position":{"x":32585.518100478395,"y":28426.328643001223},"targetPosition":{"x":32255.774890456778,"y":28356.378726730196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5b5e9ad8-778b-42ae-aa7f-c303e129df7f","savedPayload":{"position":{"x":32255.774890456778,"y":28356.378726730196},"targetPosition":{"x":31926.252265504947,"y":28286.48842673435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1fbcc4bd-145e-43ac-8e1a-721435920b4a","savedPayload":{"position":{"x":31926.252265504947,"y":28286.48842673435},"targetPosition":{"x":31596.602925623316,"y":28216.586773394847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"8548a589-0711-4acc-aba9-6a77970c7b8f","savedPayload":{"position":{"x":31596.602925623316,"y":28216.586773394847},"targetPosition":{"x":31267.374075182648,"y":28146.799860983512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"70c7f73b-a1a6-467c-a0eb-a284133ac599","savedPayload":{"position":{"x":31267.374075182648,"y":28146.799860983512},"targetPosition":{"x":30937.4926764588,"y":28076.9136479518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"09d1d3b2-8917-4792-b2a4-4902156c05b2","savedPayload":{"position":{"x":30937.4926764588,"y":28076.9136479518},"targetPosition":{"x":30607.58702948344,"y":28007.064494229548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"fe61959d-43e7-4440-9932-9a09846e9b1b","savedPayload":{"position":{"x":37294.05290177535,"y":30503.497161575553},"targetPosition":{"x":37000.608621555206,"y":30441.123654330226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"e35699bc-1fe9-4cdc-b029-6361f0ce8592","savedPayload":{"position":{"x":34800.60862155521,"y":30907.123654330226},"targetPosition":{"x":34515.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Standard Run","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 1.03","project":"Superalgos","id":"853852d1-d2fa-4e32-a891-e98ca52a556e","savedPayload":{"position":{"x":37828.440629638724,"y":30765.047654556878},"targetPosition":{"x":37605.4971819955,"y":30965.786836464536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < tradingEngine.current.position.entryTargetRate.value * 0.97","project":"Superalgos","id":"3bdebe73-3546-43f3-b644-73ec62086c66","savedPayload":{"position":{"x":31708.4115705378,"y":28195.51920297809},"targetPosition":{"x":31547.7961936945,"y":28247.588420751177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"36615e86-2c8e-4182-ab3e-5c263c44fcb1","savedPayload":{"position":{"x":31547.7961936945,"y":28247.588420751177},"targetPosition":{"x":31380.11140496785,"y":28301.94906628679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6aae47da-70b4-4fd3-b2da-65a1d645b915","savedPayload":{"position":{"x":31380.11140496785,"y":28301.94906628679},"targetPosition":{"x":31173.31202825888,"y":28369.033314611406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"18261801-3d1b-4dfe-872c-019fff59db4d","savedPayload":{"position":{"x":37890.81413688405,"y":31058.49193477702},"targetPosition":{"x":37605.4971819955,"y":30965.786836464536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"fdeb890a-e7d8-4ef6-ab49-3a88aee6e82c","savedPayload":{"position":{"x":37605.4971819955,"y":30965.786836464536},"targetPosition":{"x":37312.05290177536,"y":31028.160343709864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 1.02 < tradingEngine.current.position.stopLoss.value) {chart.at01hs.bollingerBand.movingAverage * 1.02} else {tradingEngine.current.position.stopLoss.value}","project":"Superalgos","id":"0e9e87f6-4636-4f1f-8091-d1c3090ee345","savedPayload":{"position":{"x":38192.38574243579,"y":30841.03982197388},"targetPosition":{"x":37898.94146221565,"y":30903.41332921921},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"0464ed08-0432-4da6-b407-fbf1fbc65bd9","savedPayload":{"position":{"x":37898.94146221565,"y":30903.41332921921},"targetPosition":{"x":37605.4971819955,"y":30965.786836464536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a9042fd2-0f05-4208-91b7-81e00b6493fb","savedPayload":{"position":{"x":37312.05290177536,"y":31028.160343709864},"targetPosition":{"x":37018.60862155521,"y":31090.53385095519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"Initial","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 0.95","project":"Superalgos","id":"f191391f-f798-4819-b46b-8ae9538ff71f","savedPayload":{"position":{"x":37713.531265590675,"y":31474.0472389963},"targetPosition":{"x":37420.08698537053,"y":31536.420746241627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"1H EMA7 < entryTargetRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value","project":"Superalgos","id":"65b73feb-09e0-491d-99fd-30f331acac97","savedPayload":{"position":{"x":37359.42380323621,"y":32693.943216459},"targetPosition":{"x":37297.050295990884,"y":32400.49893623886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fa12e6f8-f9d6-4eb7-9e3b-1e0f17581548","savedPayload":{"position":{"x":37297.050295990884,"y":32400.49893623886},"targetPosition":{"x":37234.67678874556,"y":32107.054656018718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.current.position.positionCounters.periods.value > 2","project":"Superalgos","id":"2eff0ccd-bf54-4456-aff5-9f46cf1469ff","savedPayload":{"position":{"x":36788.789893459114,"y":32508.533019834034},"targetPosition":{"x":37011.733341102336,"y":32307.793837926376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a4af8e92-a505-48fd-8080-8a715cd856dc","savedPayload":{"position":{"x":37011.733341102336,"y":32307.793837926376},"targetPosition":{"x":37234.67678874556,"y":32107.054656018718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ef07d7e4-53c0-4746-a1a2-4b4856cba9df","savedPayload":{"position":{"x":37234.67678874556,"y":32107.054656018718},"targetPosition":{"x":37327.38188705804,"y":31821.737701130172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"2484f7be-38df-4139-94b4-d753e6d50eed","savedPayload":{"position":{"x":37327.38188705804,"y":31821.737701130172},"targetPosition":{"x":37420.08698537053,"y":31536.420746241627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"977b23fa-f70b-4ae6-8b8b-62ca894ca11c","savedPayload":{"position":{"x":37420.08698537053,"y":31536.420746241627},"targetPosition":{"x":37219.34780346287,"y":31313.47729859841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Manage: 3% Below ema7","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.97 < tradingEngine.current.position.entryTargetRate.value * 0.97) {chart.at01hs.base7EMA.ema7 * 0.97} else {tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"aadae3ad-5cf1-4417-baad-c6e8b0ab8f31","savedPayload":{"position":{"x":37843.76961492141,"y":31558.625011977187},"targetPosition":{"x":37620.82616727819,"y":31759.364193884845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"bfc7fa92-c54c-43e7-8a6d-f89572d1fee2","savedPayload":{"position":{"x":32848.11801781877,"y":29433.190048673023},"targetPosition":{"x":32489.13901744403,"y":29172.741205930462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5ea229bf-a68c-40f9-a6ac-8bae8171ecda","savedPayload":{"position":{"x":32489.13901744403,"y":29172.741205930462},"targetPosition":{"x":32130.09432522794,"y":28912.57394763465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"585c2f06-93d7-403f-ab70-0aab9c936f72","savedPayload":{"position":{"x":32130.09432522794,"y":28912.57394763465},"targetPosition":{"x":31770.837286568618,"y":28652.27817579852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"cddeb772-d0f7-4ba8-b303-b623746f3f6e","savedPayload":{"position":{"x":37821.56534918585,"y":31982.307641528063},"targetPosition":{"x":37620.82616727819,"y":31759.364193884845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"4862beb3-990c-43ba-a21b-93ce1227d060","savedPayload":{"position":{"x":30356.803144975464,"y":29977.027683667045},"targetPosition":{"x":30287.001926189878,"y":29647.09064034791},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dc6ade59-03df-4aa5-a892-5e225a38cb35","savedPayload":{"position":{"x":30287.001926189878,"y":29647.09064034791},"targetPosition":{"x":30216.717927469545,"y":29316.650521555188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"54428b89-eb5f-4844-9fec-b049f074b3c8","savedPayload":{"position":{"x":30008.53939563968,"y":29958.624221548424},"targetPosition":{"x":30112.642715874397,"y":29637.862210602863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"81b0626e-e4c7-40dc-ae8d-ec5603067461","savedPayload":{"position":{"x":30112.642715874397,"y":29637.862210602863},"targetPosition":{"x":30216.717927469545,"y":29316.650521555188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value * 0.99","project":"Superalgos","id":"05867691-257f-4795-b70f-180ef26713fd","savedPayload":{"position":{"x":29715.617432026134,"y":29769.06720866268},"targetPosition":{"x":29966.14502769772,"y":29543.011788486867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2d354bdf-7142-4921-aec4-60a295569584","savedPayload":{"position":{"x":29966.14502769772,"y":29543.011788486867},"targetPosition":{"x":30216.717927469545,"y":29316.650521555188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"74adc18a-fcb8-47ad-a447-1595f16cc7f6","savedPayload":{"position":{"x":29557.146819038135,"y":29458.239281448587},"targetPosition":{"x":29886.947078772697,"y":29387.47681273229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c760094-3830-48d3-a97c-a9dee27f3c7e","savedPayload":{"position":{"x":29886.947078772697,"y":29387.47681273229},"targetPosition":{"x":30216.717927469545,"y":29316.650521555188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"45a3f428-25a5-4cf2-a13f-08bf3bbc4972","savedPayload":{"position":{"x":29575.49984177845,"y":29110.12204522665},"targetPosition":{"x":29896.113230670315,"y":29213.246549897754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6106746d-8995-425e-8dd9-009894a5dd07","savedPayload":{"position":{"x":29896.113230670315,"y":29213.246549897754},"targetPosition":{"x":30216.717927469545,"y":29316.650521555188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"61a873ab-dc8f-4023-93cd-a861bd965858","savedPayload":{"position":{"x":30216.717927469545,"y":29316.650521555188},"targetPosition":{"x":30478.081833129254,"y":29080.62985154736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"aa98a93e-c928-4900-854a-97b3750182d2","savedPayload":{"position":{"x":37397.88271963497,"y":31960.103375792503},"targetPosition":{"x":37620.82616727819,"y":31759.364193884845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"83f85765-e13b-406a-bd56-7fd820eebc16"}}}],"announcements":[],"id":"e3b43a25-cbb0-4ebc-ac2f-148a56d7d934","savedPayload":{"position":{"x":37620.82616727819,"y":31759.364193884845},"targetPosition":{"x":37420.08698537053,"y":31536.420746241627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < tradingEngine.current.position.entryTargetRate.value * 0.97) {chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else {tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"e603a735-7a74-4654-b0bb-50bee2d1e307","savedPayload":{"position":{"x":38044.50879682907,"y":31781.568459620405},"targetPosition":{"x":37821.56534918585,"y":31982.307641528063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"12b3cadf-b8f9-4f43-8799-40c1509f8d07","savedPayload":{"position":{"x":33276.36316941772,"y":28857.469367335805},"targetPosition":{"x":32871.312357186885,"y":29037.561341070905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d45aa91c-a153-4311-8403-8e4492ffcc95","savedPayload":{"position":{"x":32871.312357186885,"y":29037.561341070905},"targetPosition":{"x":32466.11502117118,"y":29217.827200149855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"47191a8e-485b-4f11-be05-c1b6253da95e","savedPayload":{"position":{"x":33348.23434863162,"y":29310.338070119637},"targetPosition":{"x":32907.287094696025,"y":29264.074150155684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a6eff46-6a7b-4a29-81a4-93a751a056bf","savedPayload":{"position":{"x":32907.287094696025,"y":29264.074150155684},"targetPosition":{"x":32466.11502117118,"y":29217.827200149855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"e9cfe84c-e144-4e95-88ce-8bfdffd42f89","savedPayload":{"position":{"x":33183.78961291561,"y":29738.914073585504},"targetPosition":{"x":32825.05225077626,"y":29478.410978732412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9dfa9604-bc08-4df3-980d-2f8b06185031","savedPayload":{"position":{"x":32825.05225077626,"y":29478.410978732412},"targetPosition":{"x":32466.11502117118,"y":29217.827200149855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"8c332bfe-ab0c-4905-9440-86091b7040b1","savedPayload":{"position":{"x":32827.16675847116,"y":30027.801407002575},"targetPosition":{"x":32646.678138329895,"y":29622.87742858933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e358399e-001d-4d07-83e4-2bf9d65ed1bd","savedPayload":{"position":{"x":32646.678138329895,"y":29622.87742858933},"targetPosition":{"x":32466.11502117118,"y":29217.827200149855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div previous ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"51ec782d-f54f-46b5-b45a-9db5cf7a380e","savedPayload":{"position":{"x":32374.55744255693,"y":30099.522740027394},"targetPosition":{"x":32420.21871188943,"y":29658.7441522492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c64c6aff-2525-4e58-9e27-ac7a8b3dc8cb","savedPayload":{"position":{"x":32420.21871188943,"y":29658.7441522492},"targetPosition":{"x":32466.11502117118,"y":29217.827200149855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08f82342-86ce-4222-b954-968397dd2d33","savedPayload":{"position":{"x":32466.11502117118,"y":29217.827200149855},"targetPosition":{"x":32107.10431858636,"y":28957.278677572656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"170cad22-eef5-48c3-b5d9-fae484dab493","savedPayload":{"position":{"x":38022.304531093505,"y":32205.25108917128},"targetPosition":{"x":37821.56534918585,"y":31982.307641528063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"83f85765-e13b-406a-bd56-7fd820eebc16"}}},{"type":"Move To Phase Event","name":"Cancel Close","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"0320d330-7d8e-4577-8ea3-debcdf5c4971","savedPayload":{"position":{"x":30438.59607486645,"y":30472.179220273865},"targetPosition":{"x":30542.698894395682,"y":30151.358078490208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6611a627-dfaf-4248-8aaa-e27fb7ac7141","savedPayload":{"position":{"x":30542.698894395682,"y":30151.358078490208},"targetPosition":{"x":30646.3093096187,"y":29830.136785819006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"51f5f720-c0df-4209-a32f-80f67688004d","savedPayload":{"position":{"x":29987.259212930716,"y":29969.575628396386},"targetPosition":{"x":30316.465906869023,"y":29900.058060312607},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"62ebc71f-7dab-4090-9f0e-c557cbbf5045","savedPayload":{"position":{"x":30316.465906869023,"y":29900.058060312607},"targetPosition":{"x":30646.3093096187,"y":29830.136785819006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9cfa9122-1b64-4a37-877f-1c722493562a","savedPayload":{"position":{"x":30646.3093096187,"y":29830.136785819006},"targetPosition":{"x":30907.50581187509,"y":29593.980731702766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"73f3e391-cceb-4d27-932f-7b3c76d63b24","savedPayload":{"position":{"x":37598.621901542625,"y":32183.04682343572},"targetPosition":{"x":37821.56534918585,"y":31982.307641528063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"e3b43a25-cbb0-4ebc-ac2f-148a56d7d934"}}}],"announcements":[],"id":"913c2adb-a405-40e1-b661-300ec59c4ea0","savedPayload":{"position":{"x":37821.56534918585,"y":31982.307641528063},"targetPosition":{"x":37620.82616727819,"y":31759.364193884845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.8 < tradingEngine.current.position.entryTargetRate.value * 0.97) {chart.at01hs.base7EMA.ema7 * 0.8} else {tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"be65b94d-3942-43c3-96aa-354447d5d591","savedPayload":{"position":{"x":31163.038080304315,"y":28763.09242213212},"targetPosition":{"x":30728.598662820616,"y":28855.087452087282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Cancel Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"fb87ce68-53e9-4553-a0d4-c996920c9b7a","savedPayload":{"position":{"x":32723.176693428482,"y":30781.150517978276},"targetPosition":{"x":32364.583361990008,"y":30520.611601156663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1c9f9e96-a31d-42dc-a72f-ee8c25057426","savedPayload":{"position":{"x":32364.583361990008,"y":30520.611601156663},"targetPosition":{"x":32005.8214763321,"y":30259.98272123045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"2d8cbbda-0c6c-4f48-ab1a-4f3ee6cb46d1","savedPayload":{"position":{"x":31904.79503351319,"y":31120.06777220819},"targetPosition":{"x":31950.924122443583,"y":30679.179072055602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e4719fbb-2730-46bf-9593-75e9544d860c","savedPayload":{"position":{"x":31950.924122443583,"y":30679.179072055602},"targetPosition":{"x":32005.8214763321,"y":30259.98272123045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"60819e62-c36a-4cf6-86ea-09aa1046f1b7","savedPayload":{"position":{"x":32005.8214763321,"y":30259.98272123045},"targetPosition":{"x":31825.213568535517,"y":29854.67915149992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"297f0537-a281-46ab-89a4-9aab36495673","savedPayload":{"position":{"x":30819.53503532434,"y":29283.148889042415},"targetPosition":{"x":30728.598662820616,"y":28855.087452087282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"e3b43a25-cbb0-4ebc-ac2f-148a56d7d934"}}}],"announcements":[],"id":"83f85765-e13b-406a-bd56-7fd820eebc16","savedPayload":{"position":{"x":38022.304531093505,"y":32205.25108917128},"targetPosition":{"x":37821.56534918585,"y":31982.307641528063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cf907f3e-a01a-4ffb-9e3b-23ea0d8f34d1","savedPayload":{"position":{"x":37219.34780346287,"y":31313.47729859841},"targetPosition":{"x":37018.60862155521,"y":31090.53385095519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"3f7a5501-fa20-4b3b-b038-2297cb2fd04e","savedPayload":{"position":{"x":34800.60862155521,"y":31092.53385095519},"targetPosition":{"x":34515.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"b8a7ff2a-dc3b-43e0-9226-b8e6f532c476","savedPayload":{"position":{"x":37762.40401686815,"y":30835.837765917335},"targetPosition":{"x":37464.04744825767,"y":30867.196304897632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2bc75a78-2139-4752-82be-2f5a8a7928fd","savedPayload":{"position":{"x":37464.04744825767,"y":30867.196304897632},"targetPosition":{"x":37165.69087964718,"y":30898.55484387793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value","project":"Superalgos","id":"a56977af-ba08-4617-a417-4edb66c5ca2f","savedPayload":{"position":{"x":37518.36203102267,"y":31383.965040502895},"targetPosition":{"x":37342.026455334926,"y":31141.259942190412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"28601045-4302-4e44-9f9c-6f789094a474","savedPayload":{"position":{"x":37342.026455334926,"y":31141.259942190412},"targetPosition":{"x":37165.69087964718,"y":30898.55484387793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1a05ddeb-09bf-4284-bc2a-bfee83eee2c7","savedPayload":{"position":{"x":37165.69087964718,"y":30898.55484387793},"targetPosition":{"x":36891.62724235441,"y":30776.53385095519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Quick Exit","config":"{\n\"percentageOfAlgorithmSize\": 100,\n\"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"b862adde-91b6-4146-a860-7fe3c44f43d4","savedPayload":{"position":{"x":37111.13701521649,"y":32865.02983122857},"targetPosition":{"x":37079.77847623619,"y":32566.673262618082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9568610b-062b-4f5c-95b7-8ff55754334d","savedPayload":{"position":{"x":37079.77847623619,"y":32566.673262618082},"targetPosition":{"x":37048.419937255894,"y":32268.316694007597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"76be967f-7051-4fa8-9f3c-255c8cf12d77","savedPayload":{"position":{"x":37048.419937255894,"y":32268.316694007597},"targetPosition":{"x":37017.0613982756,"y":31969.960125397116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"3c2ba6d3-e215-4a9f-9b48-9c9340086dda","savedPayload":{"position":{"x":37017.0613982756,"y":31969.960125397116},"targetPosition":{"x":36985.7028592953,"y":31671.603556786635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"69200cc2-ab70-45f4-ae63-29cb1bd73d0a","savedPayload":{"position":{"x":36985.7028592953,"y":31671.603556786635},"targetPosition":{"x":36954.344320315,"y":31373.246988176154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"47778ccf-4a59-4ce1-93f2-110cdd8e900b","savedPayload":{"position":{"x":36954.344320315,"y":31373.246988176154},"targetPosition":{"x":36922.985781334704,"y":31074.890419565672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d6ffda9f-f303-48be-8de2-d6d68c3e76c8","savedPayload":{"position":{"x":36922.985781334704,"y":31074.890419565672},"targetPosition":{"x":36891.62724235441,"y":30776.53385095519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"3b34675d-60d7-44ef-9ef7-c434fe9ca560","savedPayload":{"position":{"x":34691.62724235441,"y":31242.53385095519},"targetPosition":{"x":34515.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"77e56192-a0b0-4786-afdb-8e59ba757ccf","savedPayload":{"position":{"x":34515.291666666664,"y":30999.82875264271},"targetPosition":{"x":34215.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading Strategy","name":"S3 - 2H Down","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"0c6d7b91-4bbf-4e27-850c-6348ffea4055","savedPayload":{"position":{"x":36941.73020320117,"y":30192.21005423667},"targetPosition":{"x":37118.065778888915,"y":30434.915152549154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9c8b0541-0125-4ed1-8bcb-2d8a539bcc85","savedPayload":{"position":{"x":37118.065778888915,"y":30434.915152549154},"targetPosition":{"x":37294.40135457666,"y":30677.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"b09863b6-7ea3-4929-8b3c-f99409fb1bf1","savedPayload":{"position":{"x":37108.991157951685,"y":30106.986341084546},"targetPosition":{"x":37201.69625626417,"y":30392.30329597309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"26835b4a-83a2-4209-84a0-e38c74ff993a","savedPayload":{"position":{"x":37201.69625626417,"y":30392.30329597309},"targetPosition":{"x":37294.40135457666,"y":30677.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"2fc1bc08-9def-4a37-abc3-dbac24a2c360","savedPayload":{"position":{"x":37294.40135457666,"y":30077.620250861637},"targetPosition":{"x":37294.40135457666,"y":30377.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1fa5642c-48f4-492b-81d3-5d752decd8af","savedPayload":{"position":{"x":37294.40135457666,"y":30377.620250861637},"targetPosition":{"x":37294.40135457666,"y":30677.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Down","code":"chart.at02hs.bollingerBand.direction === \"Up\"","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"07c23ae8-6440-4b6e-aabe-67afdba80c7c","savedPayload":{"position":{"x":37479.81155120163,"y":30106.986341084546},"targetPosition":{"x":37387.106452889144,"y":30392.30329597309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c14a9e3b-6d84-44c9-8273-1a37850087b4","savedPayload":{"position":{"x":37387.106452889144,"y":30392.30329597309},"targetPosition":{"x":37294.40135457666,"y":30677.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Up","code":"chart.at02hs.bollingerBand.direction === \"Up\"","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"57d558fd-ecfa-429a-9304-88f41b32b44c","savedPayload":{"position":{"x":37647.07250595214,"y":30192.21005423667},"targetPosition":{"x":37470.7369302644,"y":30434.915152549154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ab49ca45-333d-4ed9-99a1-a3ca632cbbb2","savedPayload":{"position":{"x":37470.7369302644,"y":30434.915152549154},"targetPosition":{"x":37294.40135457666,"y":30677.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H NOT Side","code":"chart.at04hs.bollingerSubChannel.slope === \"Side\"","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope != \"Side\"","project":"Superalgos","id":"261d9835-4d23-4b58-946d-b9324d920273","savedPayload":{"position":{"x":37779.81155120163,"y":30324.94909948615},"targetPosition":{"x":37537.106452889144,"y":30501.284675173894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4d450dc4-bfbb-4779-b070-cac385b809c7","savedPayload":{"position":{"x":37537.106452889144,"y":30501.284675173894},"targetPosition":{"x":37294.40135457666,"y":30677.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H RSI > 60","code":"chart.at24hs.rsi14.value < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.rsi14.value > 60","project":"Superalgos","id":"c0afd580-e4b8-4c7c-ac4c-7370e5a79a98","savedPayload":{"position":{"x":37865.035264353755,"y":30492.21005423667},"targetPosition":{"x":37579.71830946521,"y":30584.915152549154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"95207d90-4af8-4b5a-8321-0076e8b8929d","savedPayload":{"position":{"x":37579.71830946521,"y":30584.915152549154},"targetPosition":{"x":37294.40135457666,"y":30677.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"92ef2b33-6bd1-4ab7-91a4-ddb3e035ed08","savedPayload":{"position":{"x":37894.40135457666,"y":30677.620250861637},"targetPosition":{"x":37594.40135457666,"y":30677.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3ac7ebe1-3f6f-4e35-a8a2-f39aa509c849","savedPayload":{"position":{"x":37594.40135457666,"y":30677.620250861637},"targetPosition":{"x":37294.40135457666,"y":30677.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 3: 02H Down && 4H Side && 1H Medium, Steep or Extreme","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Down\" && chart.at12hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerSubChannel.slope === \"Side\" && (chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\")) {false} else {true}","project":"Superalgos","id":"6ef3aec8-78cb-4942-bcfd-ff860b2b7971","savedPayload":{"position":{"x":37865.035264353755,"y":30863.030447486602},"targetPosition":{"x":37579.71830946521,"y":30770.32534917412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5af02e84-f067-45ee-8d7e-44966254e430","savedPayload":{"position":{"x":37579.71830946521,"y":30770.32534917412},"targetPosition":{"x":37294.40135457666,"y":30677.620250861637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20017afc-2e99-4596-9a1d-41b8b8ee7999","savedPayload":{"position":{"x":37294.40135457666,"y":30677.620250861637},"targetPosition":{"x":37118.065778888915,"y":30920.32534917412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"e6080867-291e-4dc7-b00f-582656e25e80","savedPayload":{"position":{"x":37118.065778888915,"y":30920.32534917412},"targetPosition":{"x":36941.73020320117,"y":31163.030447486602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","project":"Superalgos","id":"890f22bb-d291-4fdd-b444-5afbea478f13","savedPayload":{"position":{"x":31414.3174286547,"y":28295.415640704618},"targetPosition":{"x":31088.537319585448,"y":28346.3096726738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ef921c85-8bd3-49cc-aeaa-2556181fec27","savedPayload":{"position":{"x":31088.537319585448,"y":28346.3096726738},"targetPosition":{"x":30762.5709795214,"y":28398.387854006236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d4217f36-b6e4-45dc-979d-5ad1e74d0b85","savedPayload":{"position":{"x":30762.5709795214,"y":28398.387854006236},"targetPosition":{"x":30400.520368511934,"y":28455.712099738113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"92cd971f-1315-425e-883c-4adefb12883e","savedPayload":{"position":{"x":37089.883454290444,"y":31139.56527773057},"targetPosition":{"x":36941.73020320117,"y":31163.030447486602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"f5611889-2d66-4b5a-84ca-1bd444e56cb0","savedPayload":{"position":{"x":31170.08607539528,"y":28527.038016519247},"targetPosition":{"x":30904.051511136568,"y":28721.061266532975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96fdbdfc-c7d9-4e54-972c-de01d3f58a76","savedPayload":{"position":{"x":30904.051511136568,"y":28721.061266532975},"targetPosition":{"x":30637.994358093514,"y":28914.762398661194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"ccd315a6-ae1c-4fcf-b6d4-deac89aef390","savedPayload":{"position":{"x":31262.48907735243,"y":28708.77258316442},"targetPosition":{"x":30950.997838714247,"y":28813.477755918284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"382fb23e-b4bc-4792-a492-328fa6201f6c","savedPayload":{"position":{"x":30950.997838714247,"y":28813.477755918284},"targetPosition":{"x":30637.994358093514,"y":28914.762398661194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"cbc7b7f8-b6f1-4752-9259-6372178089e4","savedPayload":{"position":{"x":31298.687545034096,"y":28915.160331027575},"targetPosition":{"x":30968.847711589355,"y":28915.570711517896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"74975af2-4802-47bc-8251-97981c77dc4a","savedPayload":{"position":{"x":30968.847711589355,"y":28915.570711517896},"targetPosition":{"x":30637.994358093514,"y":28914.762398661194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Down","code":"chart.at02hs.bollingerBand.direction === \"Up\"","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"b7bdf1ce-16a5-4fc0-a87b-f8815615ef99","savedPayload":{"position":{"x":31263.08438131275,"y":29115.90411641114},"targetPosition":{"x":30951.05218496165,"y":29017.098469734265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a1e09269-19e5-4dff-8aeb-66d8bf6bd96d","savedPayload":{"position":{"x":30951.05218496165,"y":29017.098469734265},"targetPosition":{"x":30637.994358093514,"y":28914.762398661194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Up","code":"chart.at02hs.bollingerBand.direction === \"Up\"","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"c516d181-ad48-49cd-a298-fddb6e91de94","savedPayload":{"position":{"x":31171.52957208873,"y":29302.956437265246},"targetPosition":{"x":30905.375264537026,"y":29109.78758536721},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d57a06c7-d40b-4488-93fe-f7441dd299c6","savedPayload":{"position":{"x":30905.375264537026,"y":29109.78758536721},"targetPosition":{"x":30637.994358093514,"y":28914.762398661194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H NOT Side","code":"chart.at04hs.bollingerSubChannel.slope === \"Side\"","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope != \"Side\"","project":"Superalgos","id":"9fabe671-7d14-43b5-ba69-831f4f2a066f","savedPayload":{"position":{"x":31026.16947841445,"y":29445.145002547026},"targetPosition":{"x":30831.55109461194,"y":29181.564929910513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"177c777c-ff05-4dc0-8b6b-d663b7329938","savedPayload":{"position":{"x":30831.55109461194,"y":29181.564929910513},"targetPosition":{"x":30637.994358093514,"y":28914.762398661194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H RSI > 60","code":"chart.at24hs.rsi14.value < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.rsi14.value > 60","project":"Superalgos","id":"e48e0eea-8553-4baa-ab82-de8e822619b3","savedPayload":{"position":{"x":30842.12087487519,"y":29538.89596896828},"targetPosition":{"x":30739.28350911039,"y":29226.871666737672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ee231079-650d-4046-8e5b-ad3a82e09efa","savedPayload":{"position":{"x":30739.28350911039,"y":29226.871666737672},"targetPosition":{"x":30637.994358093514,"y":28914.762398661194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"241ea7c4-ec8c-4f74-994f-27cdc3cc5084","savedPayload":{"position":{"x":30640.5405985436,"y":29573.97579321247},"targetPosition":{"x":30637.610420856836,"y":29245.27333622449},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b1bb2780-2f92-47da-9ea5-39d0397e7144","savedPayload":{"position":{"x":30637.610420856836,"y":29245.27333622449},"targetPosition":{"x":30637.994358093514,"y":28914.762398661194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 3: 02H Down && 4H Side && 1H Medium, Steep or Extreme","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Down\" && chart.at12hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerSubChannel.slope === \"Side\" && (chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\")) {false} else {true}","project":"Superalgos","id":"35f95b09-f037-43ba-96f9-fa9d7d677bea","savedPayload":{"position":{"x":30437.08340736183,"y":29539.07626458395},"targetPosition":{"x":30534.098685811034,"y":29225.435375311725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6d92e5f1-7164-4f38-9a56-07334aee23fd","savedPayload":{"position":{"x":30534.098685811034,"y":29225.435375311725},"targetPosition":{"x":30637.994358093514,"y":28914.762398661194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2f0018b8-a386-4eb2-8cf8-b61c00af7639","savedPayload":{"position":{"x":30637.994358093514,"y":28914.762398661194},"targetPosition":{"x":30341.576475936905,"y":28699.688984745393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"a937976d-4084-4184-a913-910b75ed6659","savedPayload":{"position":{"x":37184.43530151366,"y":31339.366023174345},"targetPosition":{"x":36941.73020320117,"y":31163.030447486602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"def5d0af-b5ee-43f9-9ea0-0b73cd37d82e","savedPayload":{"position":{"x":36941.73020320117,"y":31163.030447486602},"targetPosition":{"x":36645.42370102263,"y":31209.960786998672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"My Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"0b0e860d-f3c3-4372-9873-4a9dd4e9d100","savedPayload":{"position":{"x":27883.404137703503,"y":27020.980158767794},"targetPosition":{"x":27962.593635858742,"y":27228.341033963836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d340cdb1-a381-4206-a857-07ae5d92ad04","savedPayload":{"position":{"x":27962.593635858742,"y":27228.341033963836},"targetPosition":{"x":28120.887727664493,"y":27642.082447776105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.episodeBaseAsset.balance.value","project":"Superalgos","id":"f3292c7f-4273-4130-a41d-8d8d16133ff3","savedPayload":{"position":{"x":28538.25225147877,"y":27124.92435611169},"targetPosition":{"x":28399.301500681046,"y":27297.625137149545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"459ba766-3c86-4b1c-81ee-467a438ff57d","savedPayload":{"position":{"x":28399.301500681046,"y":27297.625137149545},"targetPosition":{"x":28120.887727664493,"y":27642.082447776105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4dcaba6c-a6cc-4893-858b-0c21fb1b3849","savedPayload":{"position":{"x":37062.520088492325,"y":31338.307543484094},"targetPosition":{"x":36912.72565827914,"y":31346.157936920536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Quick Entry","config":"{\n\"percentageOfAlgorithmSize\": 100\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"c9114021-830b-42a4-a360-4c2bbf1cbe60","savedPayload":{"position":{"x":31267.236296113108,"y":30841.158852651693},"targetPosition":{"x":31089.04250438432,"y":30566.63563771385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1cda8d70-96d1-4f9d-a532-047fc4a3179c","savedPayload":{"position":{"x":31089.04250438432,"y":30566.63563771385},"targetPosition":{"x":30910.13260274625,"y":30291.000940031132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"43a8d235-6498-4bf5-9a01-4ffe21dec3a1","savedPayload":{"position":{"x":30910.13260274625,"y":30291.000940031132},"targetPosition":{"x":30731.81429666208,"y":30014.30806968196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"d085a3ab-b86b-4fae-a802-e45d30212b12","savedPayload":{"position":{"x":30731.81429666208,"y":30014.30806968196},"targetPosition":{"x":30552.12214729171,"y":29738.005517680074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5f38bb78-6259-4ceb-a80e-9acd18e3daa2","savedPayload":{"position":{"x":30552.12214729171,"y":29738.005517680074},"targetPosition":{"x":30373.49788098172,"y":29463.179795115248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"e2222c7e-1bd3-4a7c-9774-48cd1cc16d3d","savedPayload":{"position":{"x":30373.49788098172,"y":29463.179795115248},"targetPosition":{"x":30192.65461372908,"y":29184.67193358906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"759388ff-86bc-41f0-9ec7-9964e904e630","savedPayload":{"position":{"x":36994.42151353139,"y":31471.95852211235},"targetPosition":{"x":36912.72565827914,"y":31346.157936920536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"69a1d5f7-b453-489d-bf1b-b25c2bdcaa48","savedPayload":{"position":{"x":36912.72565827914,"y":31346.157936920536},"targetPosition":{"x":36645.42370102263,"y":31209.960786998672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Slow Run","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 1.03","project":"Superalgos","id":"d86eeec2-43f3-453c-8d05-2ef2723a241b","savedPayload":{"position":{"x":30628.750458731716,"y":29444.22584982375},"targetPosition":{"x":30335.641900646377,"y":29593.364568646706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < tradingEngine.current.position.entryTargetRate.value * 0.97","project":"Superalgos","id":"f903c817-fc50-48ab-abd4-9b58953e95b7","savedPayload":{"position":{"x":31354.35293324729,"y":29004.36124045612},"targetPosition":{"x":31190.350033326875,"y":29012.728621250448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"abd14bc4-e08a-4804-a38d-379dc8869915","savedPayload":{"position":{"x":31190.350033326875,"y":29012.728621250448},"targetPosition":{"x":31012.159511378668,"y":29021.900387965332},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3e9ec975-1cfd-4629-86c2-01a2b7cee8fc","savedPayload":{"position":{"x":31012.159511378668,"y":29021.900387965332},"targetPosition":{"x":30798.162689666744,"y":29032.850857985562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"86e1e0cc-e723-4488-97cc-e5df9ff768b4","savedPayload":{"position":{"x":30318.592456730752,"y":29922.378034473746},"targetPosition":{"x":30335.641900646377,"y":29593.364568646706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"9bf160d5-af24-47b8-a457-59da431e3fe3","savedPayload":{"position":{"x":30335.985236418375,"y":29593.585798081505},"targetPosition":{"x":30000.263128435952,"y":29375.018041496223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 1.02 < tradingEngine.current.position.stopLoss.value) {chart.at01hs.bollingerBand.movingAverage * 1.02} else {tradingEngine.current.position.stopLoss.value}","project":"Superalgos","id":"c57b9aaa-edc1-4a24-a2f9-1eeb3eed3d5c","savedPayload":{"position":{"x":30887.882988813966,"y":29952.307069692128},"targetPosition":{"x":30611.66794025359,"y":29772.816802796347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"22d1ba82-cecd-4ebf-a9b0-c02a2dcc4385","savedPayload":{"position":{"x":30611.66794025359,"y":29772.816802796347},"targetPosition":{"x":30335.641900646377,"y":29593.364568646706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f41b282c-06b8-4a86-9c94-18173ce77526","savedPayload":{"position":{"x":36907.421436136305,"y":31558.958599507438},"targetPosition":{"x":36781.62085094449,"y":31477.262744255182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 0.95","project":"Superalgos","id":"db43ceff-373d-42f3-9109-71257f48d0bb","savedPayload":{"position":{"x":29963.419511023865,"y":30102.60700104823},"targetPosition":{"x":29687.293381288575,"y":29923.59921681066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"1H EMA7 < entryTargetRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value","project":"Superalgos","id":"b85e0a3d-dddf-4c06-8265-09a128565a72","savedPayload":{"position":{"x":31058.52588944567,"y":30833.786651167844},"targetPosition":{"x":30879.418189435026,"y":30557.66843219543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a8c6c9e7-c45b-4e14-8f6e-5bffa6f7b0f0","savedPayload":{"position":{"x":30879.418189435026,"y":30557.66843219543},"targetPosition":{"x":30700.063150956645,"y":30281.98509302498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.current.position.positionCounters.periods.value > 2","project":"Superalgos","id":"25f76ae7-93a2-47ab-be49-bf91a4ab8b37","savedPayload":{"position":{"x":30402.455539239483,"y":30868.73569754444},"targetPosition":{"x":30551.047002704865,"y":30575.35467935803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0f943c1c-645b-455a-a11d-e67435b5b68b","savedPayload":{"position":{"x":30551.047002704865,"y":30575.35467935803},"targetPosition":{"x":30700.063150956645,"y":30281.98509302498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"89136673-be89-4f40-82cf-78a32f735291","savedPayload":{"position":{"x":30700.063150956645,"y":30281.98509302498},"targetPosition":{"x":30681.660920309834,"y":29936.971426818083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"3b4bb3aa-6317-41b7-bb90-39e703fbc836","savedPayload":{"position":{"x":29394.027785704282,"y":30072.76493936967},"targetPosition":{"x":29687.293381288575,"y":29923.59921681066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"0d840032-5e32-4356-96af-434e6524664d","savedPayload":{"position":{"x":29687.293381288575,"y":29923.59921681066},"targetPosition":{"x":29708.07835823884,"y":29523.75334836753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Manage: 3% Below ema7","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.97 < tradingEngine.current.position.entryTargetRate.value * 0.97) {chart.at01hs.base7EMA.ema7 * 0.97} else {tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"214e21c2-bdab-4d05-91b2-02f327d177b8","savedPayload":{"position":{"x":29946.393108542863,"y":30430.799958743184},"targetPosition":{"x":29670.280630142137,"y":30251.783960346103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"401d2bc0-0193-42de-8a65-df43242eb516","savedPayload":{"position":{"x":28501.818840734773,"y":30459.073701008725},"targetPosition":{"x":28795.2904049326,"y":30308.68538983982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b023b429-024c-46eb-86f8-6e4e23be3b3c","savedPayload":{"position":{"x":28795.2904049326,"y":30308.68538983982},"targetPosition":{"x":29089.767308016446,"y":30158.016812615177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ee7cd341-d632-47d6-9ddf-4462e6961461","savedPayload":{"position":{"x":29089.767308016446,"y":30158.016812615177},"targetPosition":{"x":29397.421653947713,"y":30001.01592852205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"5c96f85d-f36d-496f-8c82-68bdbde4456f","savedPayload":{"position":{"x":29376.947507133722,"y":30401.02096048522},"targetPosition":{"x":29670.280630142137,"y":30251.783960346103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"241d29a5-2372-4c0b-9dd1-9c74e98d8593","savedPayload":{"position":{"x":29670.280630142137,"y":30251.783960346103},"targetPosition":{"x":29687.293381288575,"y":29923.59921681066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"54a1a04f-b59d-40d9-91d6-9716c0198983","savedPayload":{"position":{"x":29873.802401111498,"y":30824.136034971496},"targetPosition":{"x":29653.26417838019,"y":30579.922938459444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"23d9abaa-63cc-4aef-abaf-7b493213cd29","savedPayload":{"position":{"x":30246.65141582158,"y":31295.024756333136},"targetPosition":{"x":29969.773150566944,"y":31115.05454536248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"28be9fea-5e5c-4c99-b4a4-6c01a831d9ce","savedPayload":{"position":{"x":29969.773150566944,"y":31115.05454536248},"targetPosition":{"x":29694.625354176365,"y":30936.26681649351},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"c59f1c98-a4e9-40c1-8690-6543baa7a966","savedPayload":{"position":{"x":29992.316603955267,"y":31521.918904245278},"targetPosition":{"x":29842.909583427114,"y":31228.23200175602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c24d0f99-6491-40b3-94d9-49f91d354f3c","savedPayload":{"position":{"x":29842.909583427114,"y":31228.23200175602},"targetPosition":{"x":29694.625354176365,"y":30936.26681649351},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"d6b4d297-a5fa-4561-acb0-b8d3b891912e","savedPayload":{"position":{"x":29660.853960277716,"y":31594.960795931773},"targetPosition":{"x":29677.031205104722,"y":31265.17693260894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c3f66d39-dc88-4049-895a-378f492a7d35","savedPayload":{"position":{"x":29677.031205104722,"y":31265.17693260894},"targetPosition":{"x":29694.625354176365,"y":30936.26681649351},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"e9ac7090-a4d5-409d-9432-0d422f60e6e1","savedPayload":{"position":{"x":29335.298864916324,"y":31486.63353797164},"targetPosition":{"x":29515.12504217762,"y":31211.490554445976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a05e64ed-4262-42f1-b9dc-cc14f8b27c2d","savedPayload":{"position":{"x":29515.12504217762,"y":31211.490554445976},"targetPosition":{"x":29694.625354176365,"y":30936.26681649351},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div previous ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"cb158763-cb2f-494b-88ab-dafeb3825ca4","savedPayload":{"position":{"x":29108.662346425976,"y":31234.71321458},"targetPosition":{"x":29401.756647823844,"y":31085.83615624845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"386bbe6b-9082-47e7-b750-e0e9d16a7030","savedPayload":{"position":{"x":29401.756647823844,"y":31085.83615624845},"targetPosition":{"x":29694.625354176365,"y":30936.26681649351},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"32813be2-a6cd-4e5d-9a58-87eae5b3b5e9","savedPayload":{"position":{"x":29694.625354176365,"y":30936.26681649351},"targetPosition":{"x":29712.578097013517,"y":30591.046990362483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"264bdd5b-5246-4a3f-bd09-5c50baf57963","savedPayload":{"position":{"x":29687.127001026383,"y":30994.110277214997},"targetPosition":{"x":29653.26417838019,"y":30579.922938459444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"241d29a5-2372-4c0b-9dd1-9c74e98d8593"}}},{"type":"Move To Phase Event","name":"Cancel Close","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"308d9cf6-beba-4d14-9b90-bb11409e3835","savedPayload":{"position":{"x":28685.307493106106,"y":31070.38987175031},"targetPosition":{"x":28928.46656131198,"y":30851.330910451536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a787ffbe-ea25-41cb-a719-de115285eead","savedPayload":{"position":{"x":28928.46656131198,"y":30851.330910451536},"targetPosition":{"x":29172.212336936514,"y":30630.964646086664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d4b41076-5b23-498d-bc3e-1ccf277a1a43","savedPayload":{"position":{"x":29172.212336936514,"y":30630.964646086664},"targetPosition":{"x":29429.004617362232,"y":30399.743487852218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"7cb4214c-3e3e-4a70-ad14-6ae2a568f24c","savedPayload":{"position":{"x":29408.346875663025,"y":30799.857453568977},"targetPosition":{"x":29653.26417838019,"y":30579.922938459444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"241d29a5-2372-4c0b-9dd1-9c74e98d8593"}}}],"announcements":[],"id":"592ad0d7-d583-4827-8ae6-48f6ad25c1a3","savedPayload":{"position":{"x":29653.26417838019,"y":30579.922938459444},"targetPosition":{"x":29670.280630142137,"y":30251.783960346103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.8 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.8} else \n{tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"580ecace-0d6d-4632-ad8d-e6dc86df51c8","savedPayload":{"position":{"x":29899.364120937164,"y":31066.547004323686},"targetPosition":{"x":29623.511054874885,"y":30886.983540492874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Cancel Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"bf6a5ecf-f5c8-4d13-a15c-1b567422bee0","savedPayload":{"position":{"x":19029.764085880444,"y":26496.17139964985},"targetPosition":{"x":18863.366996299963,"y":26122.22514428357},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ca87de8b-af92-4d83-af59-7c71f17e1be4","savedPayload":{"position":{"x":18863.366996299963,"y":26122.22514428357},"targetPosition":{"x":18696.865053089474,"y":25748.069407462383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"d626af7e-c8bb-4e17-95e5-ba5abda158d8","savedPayload":{"position":{"x":18215.965566488427,"y":26410.63625659715},"targetPosition":{"x":18456.385995020508,"y":26079.431586512917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"98a76d2a-1ec4-413c-85b2-59865c6e1187","savedPayload":{"position":{"x":18456.385995020508,"y":26079.431586512917},"targetPosition":{"x":18696.865053089474,"y":25748.069407462383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9406f175-4d00-436d-ab9e-27081d36611b","savedPayload":{"position":{"x":18696.865053089474,"y":25748.069407462383},"targetPosition":{"x":18739.410533983973,"y":25340.537448332063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"aef3e320-bbaf-42e5-8083-21157428bfaf","savedPayload":{"position":{"x":29444.434095928715,"y":31163.215897061025},"targetPosition":{"x":29623.511054874885,"y":30886.983540492874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"241d29a5-2372-4c0b-9dd1-9c74e98d8593"}}}],"announcements":[],"id":"9b594083-3fb0-4dfa-ba4b-1b1ada8687fe","savedPayload":{"position":{"x":29623.511054874885,"y":30886.983540492874},"targetPosition":{"x":29653.26417838019,"y":30579.922938459444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"80d81cb5-6a3a-4eff-ad9f-5590450c7366","savedPayload":{"position":{"x":36773.77045750805,"y":31627.05717446837},"targetPosition":{"x":36781.62085094449,"y":31477.262744255182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"3ea826ac-fe6b-4b8c-a0dc-f830202e8306","savedPayload":{"position":{"x":36781.62085094449,"y":31477.262744255182},"targetPosition":{"x":36645.42370102263,"y":31209.960786998672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"b4e3481e-02c3-4b1a-b0fc-b45ea73bb669","savedPayload":{"position":{"x":30014.18102670089,"y":30031.86045648549},"targetPosition":{"x":29758.95720075127,"y":29824.500662033657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ba7855bc-df15-4472-bab3-6f7e54becbe2","savedPayload":{"position":{"x":29758.95720075127,"y":29824.500662033657},"targetPosition":{"x":29441.24507605964,"y":29566.366849256083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value","project":"Superalgos","id":"395f39ec-ec09-4bb6-9f12-e8ee9b7597a8","savedPayload":{"position":{"x":29326.14826859976,"y":30294.033295551068},"targetPosition":{"x":29377.49627452898,"y":29969.211619681766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b8c905c4-1526-48e8-9ad9-e946f7e5fcd8","savedPayload":{"position":{"x":29377.49627452898,"y":29969.211619681766},"targetPosition":{"x":29441.24507605964,"y":29566.366849256083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fab71da1-214c-48e3-af1c-07502a6faabb","savedPayload":{"position":{"x":36652.24855394236,"y":31646.304353151794},"targetPosition":{"x":36598.49336151056,"y":31506.267289177213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Quick Exit","config":"{\n\"percentageOfAlgorithmSize\": 100,\n\"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"e4c80caa-13c7-489e-a47c-294c01bd2703","savedPayload":{"position":{"x":26928.950308228996,"y":29470.989509943145},"targetPosition":{"x":26888.374522680926,"y":29278.809978069694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cbe12b3f-1a4a-4700-906f-fceb0606fcfe","savedPayload":{"position":{"x":26888.374522680926,"y":29278.809978069694},"targetPosition":{"x":26847.693191545106,"y":29085.95649903469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ddb0a9e7-a6eb-4607-968a-2f42ac3a8d60","savedPayload":{"position":{"x":26847.693191545106,"y":29085.95649903469},"targetPosition":{"x":26798.164770546806,"y":28851.42195851409},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"4018e1b8-c111-492f-b1c8-3b86633fb347","savedPayload":{"position":{"x":28446.92406850885,"y":30342.968105805696},"targetPosition":{"x":28653.961663737085,"y":30087.154074591956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9d2f1590-9146-49cd-9e1f-d6b5baeecf4b","savedPayload":{"position":{"x":28653.961663737085,"y":30087.154074591956},"targetPosition":{"x":28860.26723061133,"y":29832.209026900367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"4a3fc4cf-8739-472e-a5f0-93b022eed042","savedPayload":{"position":{"x":28860.26723061133,"y":29832.209026900367},"targetPosition":{"x":29117.101720726136,"y":29514.851190096342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"06f7907c-2767-4a2f-881d-46c6b8b207ce","savedPayload":{"position":{"x":36504.095302853086,"y":31622.839183395758},"targetPosition":{"x":36598.49336151056,"y":31506.267289177213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"b81728f5-c26c-47a9-b659-456150614134","savedPayload":{"position":{"x":36598.49336151056,"y":31506.267289177213},"targetPosition":{"x":36645.42370102263,"y":31209.960786998672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4af71378-a61f-4d1d-a1cd-6933897ef3bd","savedPayload":{"position":{"x":34427.42370102263,"y":31211.960786998672},"targetPosition":{"x":34215.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading Strategy","name":"S8 - 4H Up","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"0b8368d3-b1b1-413b-bbeb-95641a85b80f","savedPayload":{"position":{"x":35314.11259279449,"y":30466.261045287967},"targetPosition":{"x":35256.437806609996,"y":30912.549762419123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6034fcd2-8d4d-48b8-a392-18535fa70a53","savedPayload":{"position":{"x":35256.437806609996,"y":30912.549762419123},"targetPosition":{"x":35198.763020425504,"y":31358.83847955028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"5e94af5d-2be9-4ae9-ae44-2867f755a827","savedPayload":{"position":{"x":35560.90824735666,"y":30534.914432922815},"targetPosition":{"x":35379.83563389108,"y":30946.876456236547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f811cfed-9f3e-4211-84da-066b038d0b33","savedPayload":{"position":{"x":35379.83563389108,"y":30946.876456236547},"targetPosition":{"x":35198.763020425504,"y":31358.83847955028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"9d5052c6-8411-4f18-ace8-17f021dfd5e2","savedPayload":{"position":{"x":35778.36504939348,"y":30670.31724675044},"targetPosition":{"x":35488.56403490949,"y":31014.57786315036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d4f2d1aa-32fd-4345-8291-3da0a9bf3fc5","savedPayload":{"position":{"x":35488.56403490949,"y":31014.57786315036},"targetPosition":{"x":35198.763020425504,"y":31358.83847955028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"3347b5df-6552-43dd-8265-43bb7d87df98","savedPayload":{"position":{"x":35948.86594206929,"y":30861.499956066065},"targetPosition":{"x":35573.8144812474,"y":31110.169217808172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7a4b6d88-b433-435d-a683-6eb73780f27b","savedPayload":{"position":{"x":35573.8144812474,"y":31110.169217808172},"targetPosition":{"x":35198.763020425504,"y":31358.83847955028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"3bf685d6-ac1f-4bab-a7f1-8450ee657948","savedPayload":{"position":{"x":36058.59795706737,"y":31092.974074768295},"targetPosition":{"x":35628.68048874644,"y":31225.906277159287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"22eebcad-ee09-4e3b-897e-9495bb82784d","savedPayload":{"position":{"x":35628.68048874644,"y":31225.906277159287},"targetPosition":{"x":35198.763020425504,"y":31358.83847955028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Side or 1H Extreme or Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope === \"Side\" || (chart.at04hs.bollingerSubChannel.slope === \"Gentle\" && (chart.at01hs.bollingerSubChannel.slope === \"Extreme\" || chart.at01hs.bollingerSubChannel.slope === \"Side\"))","project":"Superalgos","id":"d5a69ea3-5ae1-4e4b-b858-8844f20f6369","savedPayload":{"position":{"x":36098.671259134,"y":31345.986946389472},"targetPosition":{"x":35648.71713977975,"y":31352.412712969875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"54ac9a91-76eb-4d28-9d75-bcad0008c481","savedPayload":{"position":{"x":35648.71713977975,"y":31352.412712969875},"targetPosition":{"x":35198.763020425504,"y":31358.83847955028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"e84f9d0b-15fc-4656-a2ed-392304b44df3","savedPayload":{"position":{"x":36065.839347660825,"y":31600.04097279632},"targetPosition":{"x":35632.301184043165,"y":31479.4397261733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"658b7720-b18e-42d0-9cb3-7f5c71928409","savedPayload":{"position":{"x":35632.301184043165,"y":31479.4397261733},"targetPosition":{"x":35198.763020425504,"y":31358.83847955028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 3: 02H Down && 4H Side && 1H Medium, Steep or Extreme","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Down\" && chart.at12hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerSubChannel.slope === \"Side\" && (chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\")) {false} else {true}","project":"Superalgos","id":"84b0abb3-cf34-491e-9436-4fdb07ee4977","savedPayload":{"position":{"x":35962.76206885653,"y":31834.554207686837},"targetPosition":{"x":35580.76254464102,"y":31596.696343618558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f39b86b4-5a2a-470c-8503-0ee11eab51f6","savedPayload":{"position":{"x":35580.76254464102,"y":31596.696343618558},"targetPosition":{"x":35198.763020425504,"y":31358.83847955028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 4: 02H Up && 02H Gentle && 3H Side","code":"chart.at02hs.percentageBandwidth.movingAverage > chart.at24hs.bollingerSubChannel.slope + chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Gentle\" && chart.at03hs.bollingerSubChannel.slope === \"Side\") {false} else {true}","project":"Superalgos","id":"3bde8f4f-c2e3-413b-8df1-37aeb20a85f9","savedPayload":{"position":{"x":35797.79013082563,"y":32030.5277834741},"targetPosition":{"x":35498.27657562557,"y":31694.68313151219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"04fd8c8d-8074-4932-b3e1-56357c7829ea","savedPayload":{"position":{"x":35498.27657562557,"y":31694.68313151219},"targetPosition":{"x":35198.763020425504,"y":31358.83847955028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 2: 02H, 03H, 04H, 06H, all Up && 2H Steep && 1H, 6H NOT Gentle","code":"chart.at24hs.bollingerChannel.direction + chart.at24hs.bollingerBand.slope > chart.at01hs.rsi14.value","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerSubChannel.direction === \"Up\" && chart.at03hs.bollingerSubChannel.direction === \"Up\" && chart.at04hs.bollingerSubChannel.direction === \"Up\" && chart.at06hs.bollingerSubChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Steep\" && chart.at01hs.bollingerSubChannel.slope != \"Gentle\" && chart.at06hs.bollingerSubChannel.slope != \"Gentle\") {false} else {true}","project":"Superalgos","id":"cf1a034f-093e-422f-ba6f-ec4c3ce091d2","savedPayload":{"position":{"x":35584.28857886153,"y":32172.08508654756},"targetPosition":{"x":35391.52579964352,"y":31765.46178304892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"69c8d1ca-52b4-4eed-a65b-7a8a870bb46d","savedPayload":{"position":{"x":35391.52579964352,"y":31765.46178304892},"targetPosition":{"x":35198.763020425504,"y":31358.83847955028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"64643171-239b-49ac-adc7-0124075eb96e","savedPayload":{"position":{"x":35198.763020425504,"y":31358.83847955028},"targetPosition":{"x":34754.303267157695,"y":31429.23398881838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9c8b28ef-af88-416c-9262-20efbf357408","savedPayload":{"position":{"x":34754.303267157695,"y":31429.23398881838},"targetPosition":{"x":34457.99676497915,"y":31476.16432833045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","project":"Superalgos","id":"09286632-34ad-4ea0-9f01-32bd89b20900","savedPayload":{"position":{"x":30519.77668544699,"y":29902.464765692268},"targetPosition":{"x":30266.652518669805,"y":29718.199237967332},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f75343e2-3c65-413b-85de-8e88a1f91e09","savedPayload":{"position":{"x":30266.652518669805,"y":29718.199237967332},"targetPosition":{"x":30012.543549092195,"y":29533.717903239143},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"68074fb6-7ca9-43a7-a83c-abcd0c55148c","savedPayload":{"position":{"x":30012.543549092195,"y":29533.717903239143},"targetPosition":{"x":29723.598269035574,"y":29324.737995775577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"07f812fb-602f-4713-871d-648faa64a6ce","savedPayload":{"position":{"x":34579.34931413539,"y":31564.332116174322},"targetPosition":{"x":34457.99676497915,"y":31476.16432833045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"07c87bc6-f04b-4a08-88c3-82df8036a971","savedPayload":{"position":{"x":37685.90004802164,"y":32330.28015614579},"targetPosition":{"x":37239.61133089048,"y":32272.605369961297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9a120c5b-3fda-4ff3-89af-621d53b2e075","savedPayload":{"position":{"x":37239.61133089048,"y":32272.605369961297},"targetPosition":{"x":36793.32261375932,"y":32214.930583776804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"d054b93f-3378-49e9-9e18-73373b1ec935","savedPayload":{"position":{"x":37617.24666038679,"y":32577.075810707967},"targetPosition":{"x":37205.284637073055,"y":32396.003197242386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cbc32f34-4189-4526-a323-9291e672495c","savedPayload":{"position":{"x":37205.284637073055,"y":32396.003197242386},"targetPosition":{"x":36793.32261375932,"y":32214.930583776804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"562f3238-94f0-41af-8d61-f9984bc8bd0b","savedPayload":{"position":{"x":37481.84384655917,"y":32794.53261274478},"targetPosition":{"x":37137.583230159245,"y":32504.73159826079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d5b4549d-92bd-4c3e-af81-884899aae8d9","savedPayload":{"position":{"x":37137.583230159245,"y":32504.73159826079},"targetPosition":{"x":36793.32261375932,"y":32214.930583776804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"ce7a4a64-743a-443d-a825-b02c25d4b55a","savedPayload":{"position":{"x":37290.661137243536,"y":32965.03350542059},"targetPosition":{"x":37041.99187550143,"y":32589.9820445987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4b992367-9f3a-4ce3-b389-2fc84c8cca16","savedPayload":{"position":{"x":37041.99187550143,"y":32589.9820445987},"targetPosition":{"x":36793.32261375932,"y":32214.930583776804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"a1c10e9c-19b9-4805-b441-ce3ec64b23a1","savedPayload":{"position":{"x":37059.187018541306,"y":33074.765520418674},"targetPosition":{"x":36926.254816150315,"y":32644.84805209774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f5f2b1bb-f847-4994-a1ab-5252c7c685c6","savedPayload":{"position":{"x":36926.254816150315,"y":32644.84805209774},"targetPosition":{"x":36793.32261375932,"y":32214.930583776804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Side or 1H Extreme or Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope === \"Side\" || (chart.at04hs.bollingerSubChannel.slope === \"Gentle\" && (chart.at01hs.bollingerSubChannel.slope === \"Extreme\" || chart.at01hs.bollingerSubChannel.slope === \"Side\"))","project":"Superalgos","id":"3d26867a-7ffc-4b17-a226-c2cf2d02a1ae","savedPayload":{"position":{"x":36806.17414692013,"y":33114.8388224853},"targetPosition":{"x":36799.748380339726,"y":32664.88470313105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a96f6aed-5ba0-458e-b073-a14a7030a4ce","savedPayload":{"position":{"x":36799.748380339726,"y":32664.88470313105},"targetPosition":{"x":36793.32261375932,"y":32214.930583776804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"f674d92e-8b5b-4a88-9c97-c0499fea9f41","savedPayload":{"position":{"x":36552.120120513275,"y":33082.006911012126},"targetPosition":{"x":36672.7213671363,"y":32648.468747394465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b0663ef7-ad0e-44eb-8448-87c92b066de1","savedPayload":{"position":{"x":36672.7213671363,"y":32648.468747394465},"targetPosition":{"x":36793.32261375932,"y":32214.930583776804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 3: 02H Down && 4H Side && 1H Medium, Steep or Extreme","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Down\" && chart.at12hs.bollingerChannel.direction === \"Down\" && chart.at04hs.bollingerSubChannel.slope === \"Side\" && (chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\")) {false} else {true}","project":"Superalgos","id":"6337812b-5df1-428e-9d36-f7935dde3ca7","savedPayload":{"position":{"x":36317.60688562277,"y":32978.92963220782},"targetPosition":{"x":36555.46474969105,"y":32596.930107992313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cda16118-0ec1-4313-bb27-be56055bb89a","savedPayload":{"position":{"x":36555.46474969105,"y":32596.930107992313},"targetPosition":{"x":36793.32261375932,"y":32214.930583776804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 4: 02H Up && 02H Gentle && 3H Side","code":"chart.at02hs.percentageBandwidth.movingAverage > chart.at24hs.bollingerSubChannel.slope + chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Gentle\" && chart.at03hs.bollingerSubChannel.slope === \"Side\") {false} else {true}","project":"Superalgos","id":"d467380e-37f7-4d69-8384-c766fa7511ef","savedPayload":{"position":{"x":36121.6333098355,"y":32813.957694176934},"targetPosition":{"x":36457.47796179741,"y":32514.44413897687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"90afdd8d-1565-42b1-abbb-e88eb2e359db","savedPayload":{"position":{"x":36457.47796179741,"y":32514.44413897687},"targetPosition":{"x":36793.32261375932,"y":32214.930583776804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 2: 02H, 03H, 04H, 06H, all Up && 2H Steep && 1H, 6H NOT Gentle","code":"chart.at24hs.bollingerChannel.direction + chart.at24hs.bollingerBand.slope > chart.at01hs.rsi14.value","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerSubChannel.direction === \"Up\" && chart.at03hs.bollingerSubChannel.direction === \"Up\" && chart.at04hs.bollingerSubChannel.direction === \"Up\" && chart.at06hs.bollingerSubChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Steep\" && chart.at01hs.bollingerSubChannel.slope != \"Gentle\" && chart.at06hs.bollingerSubChannel.slope != \"Gentle\") {false} else {true}","project":"Superalgos","id":"051149b3-b815-4eb2-952c-88317a972764","savedPayload":{"position":{"x":35980.076006762036,"y":32600.456142212824},"targetPosition":{"x":36386.69931026068,"y":32407.693362994814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac3a3676-3fc0-4eed-97c8-51fe93a65256","savedPayload":{"position":{"x":36386.69931026068,"y":32407.693362994814},"targetPosition":{"x":36793.32261375932,"y":32214.930583776804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3583b309-fa26-4e63-bfb2-055d5bad14b7","savedPayload":{"position":{"x":36793.32261375932,"y":32214.930583776804},"targetPosition":{"x":36722.92710449122,"y":31770.47083050899},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"e86cdca6-99e9-487f-b824-af95cf635d1f","savedPayload":{"position":{"x":34504.92710449122,"y":31772.47083050899},"targetPosition":{"x":34457.99676497915,"y":31476.16432833045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"fa8dc2de-7299-4e00-82a7-deb31393b442","savedPayload":{"position":{"x":34457.99676497915,"y":31476.16432833045},"targetPosition":{"x":34215.291666666664,"y":31299.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"My Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"e7d607dd-f2cf-441a-92a3-f4c77906e441","savedPayload":{"position":{"x":34664.00538898421,"y":31737.49322118952},"targetPosition":{"x":34566.19062891083,"y":31716.702052107747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8b5ce9d5-7f3a-4f8f-b859-dafed2c1ca15","savedPayload":{"position":{"x":34566.19062891083,"y":31716.702052107747},"targetPosition":{"x":34419.46848880076,"y":31685.515298485083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.episodeBaseAsset.balance.value","project":"Superalgos","id":"fdeba1ec-5b1a-4da6-b453-cbab79be9f77","savedPayload":{"position":{"x":34496.7227373945,"y":31923.27942755887},"targetPosition":{"x":34465.821037957,"y":31828.173775929357},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5844b9d1-3453-43e1-a6e9-a5693229f091","savedPayload":{"position":{"x":34465.821037957,"y":31828.173775929357},"targetPosition":{"x":34419.46848880076,"y":31685.515298485083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd9456f4-3829-4345-9f57-3a24a4713d8c","savedPayload":{"position":{"x":34419.46848880076,"y":31685.515298485083},"targetPosition":{"x":34307.99676497915,"y":31585.145707531254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Quick Entry","config":"{\n\"percentageOfAlgorithmSize\": 100\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"a8698e14-e989-4d7f-875a-58a5406336ce","savedPayload":{"position":{"x":28699.231836417894,"y":31524.680651006827},"targetPosition":{"x":28764.288268724085,"y":31218.265475067936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"886857cf-a060-4f90-b596-697e2daf6184","savedPayload":{"position":{"x":28764.288268724085,"y":31218.265475067936},"targetPosition":{"x":28829.21490751321,"y":30912.28680973251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0928e6d5-5b3c-4a7e-9633-5aa6fb46a459","savedPayload":{"position":{"x":28829.21490751321,"y":30912.28680973251},"targetPosition":{"x":28894.396474199075,"y":30605.92686994784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"758c7111-856e-459e-bc44-4395e5430752","savedPayload":{"position":{"x":28894.396474199075,"y":30605.92686994784},"targetPosition":{"x":28959.685507391063,"y":30299.032518289794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4dc48a16-7a46-421f-9583-8573686526ab","savedPayload":{"position":{"x":28959.685507391063,"y":30299.032518289794},"targetPosition":{"x":29024.86616672692,"y":29991.862833375402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"047b28d0-c4d4-4926-954d-af602e9e9915","savedPayload":{"position":{"x":29024.86616672692,"y":29991.862833375402},"targetPosition":{"x":29091.442334319483,"y":29675.738431033547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"25b80432-bad3-4069-9c87-e550f1480a1f","savedPayload":{"position":{"x":34276.81001135649,"y":31731.867847641326},"targetPosition":{"x":34307.99676497915,"y":31585.145707531254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"d991ee3c-6598-4e8c-9510-78528130856d","savedPayload":{"position":{"x":34307.99676497915,"y":31585.145707531254},"targetPosition":{"x":34215.291666666664,"y":31299.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Controlled Run","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 1.03","project":"Superalgos","id":"ca59d229-8ed9-4468-84f2-fa6d2c673209","savedPayload":{"position":{"x":29125.074936806996,"y":30294.05459653031},"targetPosition":{"x":28914.40791215452,"y":30059.701195664486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < tradingEngine.current.position.entryTargetRate.value * 0.97","project":"Superalgos","id":"98e5e81b-f937-43cc-b7aa-6e85e44f47da","savedPayload":{"position":{"x":29861.169051577643,"y":30862.590202003943},"targetPosition":{"x":29628.278092290093,"y":30652.78939872662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3cd19ef8-b808-45cf-b4a1-441b5995c7b8","savedPayload":{"position":{"x":29628.278092290093,"y":30652.78939872662},"targetPosition":{"x":29395.12779793478,"y":30442.63674335852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e33ab866-419b-4032-943e-2964584f8655","savedPayload":{"position":{"x":29395.12779793478,"y":30442.63674335852},"targetPosition":{"x":29147.417687690628,"y":30219.19630792363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"fa02c41e-d7f1-4f72-ad59-314b44addb3e","savedPayload":{"position":{"x":28816.632660242103,"y":30359.00543140719},"targetPosition":{"x":28914.40791215452,"y":30059.701195664486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"b9595e4d-8c34-418f-90a7-431394b8edb6","savedPayload":{"position":{"x":28914.37689436275,"y":30059.548499311546},"targetPosition":{"x":28833.300777138433,"y":29675.307889274816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 1.02 < tradingEngine.current.position.stopLoss.value) {chart.at01hs.bollingerBand.movingAverage * 1.02} else {tradingEngine.current.position.stopLoss.value}","project":"Superalgos","id":"6938be43-dc74-4576-8b0a-8b18bd34792e","savedPayload":{"position":{"x":29044.554243179915,"y":30674.489657728147},"targetPosition":{"x":28979.62707723044,"y":30367.6429916529},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"6cefcdbc-918c-4abe-99f9-5a99c391d79b","savedPayload":{"position":{"x":28979.62707723044,"y":30367.6429916529},"targetPosition":{"x":28914.40791215452,"y":30059.701195664486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"901eb16f-14dd-4fd2-81c1-b4713a1b34e0","savedPayload":{"position":{"x":36371.77332197684,"y":31729.867847641326},"targetPosition":{"x":36340.58656835418,"y":31583.145707531254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 0.95","project":"Superalgos","id":"0cceca6d-8f5f-4350-8b7f-ec6db32521c2","savedPayload":{"position":{"x":28309.97545882235,"y":30148.90630395778},"targetPosition":{"x":28244.429971352278,"y":29841.53006228115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"1H EMA7 < entryTargetRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value","project":"Superalgos","id":"1addcc51-a16b-4985-92f6-e76e87b7b318","savedPayload":{"position":{"x":28434.615356149046,"y":30970.42164374047},"targetPosition":{"x":28499.639128957802,"y":30663.219986645076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4e7b259b-db2b-4e52-a9db-c23dedf3f214","savedPayload":{"position":{"x":28499.639128957802,"y":30663.219986645076},"targetPosition":{"x":28564.6670804519,"y":30356.044984479202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.current.position.positionCounters.periods.value > 2","project":"Superalgos","id":"ca0cc08d-9284-42ab-87a7-6d955299c4b9","savedPayload":{"position":{"x":27968.01994480706,"y":30551.19330864895},"targetPosition":{"x":28266.189015572993,"y":30453.603522338046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"90b48244-0763-424b-8bc4-d2a93970e171","savedPayload":{"position":{"x":28266.189015572993,"y":30453.603522338046},"targetPosition":{"x":28564.6670804519,"y":30356.044984479202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8152e6ad-9c73-48d3-aa81-d2a046876913","savedPayload":{"position":{"x":28564.6670804519,"y":30356.044984479202},"targetPosition":{"x":28787.3703204693,"y":30108.0390676963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"6b25f9d9-b3bb-4426-9f19-460186077662","savedPayload":{"position":{"x":27945.753384660136,"y":29744.461280667543},"targetPosition":{"x":28244.429971352278,"y":29841.53006228115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"2c1f29b4-9e38-4e72-a32a-e1e48cc6af9e","savedPayload":{"position":{"x":28244.429971352278,"y":29841.53006228115},"targetPosition":{"x":28536.07259143591,"y":29578.55699625407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Manage: 3% Below ema7","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.97 < tradingEngine.current.position.entryTargetRate.value * 0.97) {chart.at01hs.base7EMA.ema7 * 0.97} else {tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"0199babe-dfd7-4f18-b9d7-3b73ade997fd","savedPayload":{"position":{"x":28221.45821724604,"y":30285.286168030354},"targetPosition":{"x":28011.287904495734,"y":30051.72762689482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"89e97633-9b3e-42ba-9cf6-bf29d6383a72","savedPayload":{"position":{"x":19567.6204725044,"y":24847.695610532777},"targetPosition":{"x":19407.989774178284,"y":24489.70243718777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"971da4c6-325b-4c78-a025-95dbd138bbc4","savedPayload":{"position":{"x":19407.989774178284,"y":24489.70243718777},"targetPosition":{"x":19248.044312735103,"y":24131.667973637137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2af1c651-e988-4ae0-92a3-d0918b8a1cfe","savedPayload":{"position":{"x":19248.044312735103,"y":24131.667973637137},"targetPosition":{"x":19087.864408727095,"y":23773.54986660534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"4e18019c-6173-4b68-b709-174bc220cd55","savedPayload":{"position":{"x":27835.563255439927,"y":30343.463709794632},"targetPosition":{"x":28011.287904495734,"y":30051.72762689482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"a8860a5a-66b5-41f0-8a6c-dac7bf971c9d","savedPayload":{"position":{"x":27252.45433151663,"y":29481.665825133765},"targetPosition":{"x":27553.82291992252,"y":29394.26702916772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"690aeb6d-75ec-45c9-b321-9d943d84df5f","savedPayload":{"position":{"x":27553.82291992252,"y":29394.26702916772},"targetPosition":{"x":27855.32495428326,"y":29306.516559064374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"d691ad30-4129-48d1-9b75-2b2337e409d2","savedPayload":{"position":{"x":27235.73278924803,"y":29203.46364196003},"targetPosition":{"x":27545.476677575087,"y":29255.023815422166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"30880b5e-f66a-4d5a-b112-14bcc8bb9ac9","savedPayload":{"position":{"x":27545.476677575087,"y":29255.023815422166},"targetPosition":{"x":27855.32495428326,"y":29306.516559064374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value * 0.99","project":"Superalgos","id":"8d66b5bd-521c-4d19-9fc0-baa4fb54ad84","savedPayload":{"position":{"x":27341.52934131509,"y":28945.079924225385},"targetPosition":{"x":27598.361055796973,"y":29125.766760485778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c4298d6d-c635-49fe-a517-0dc19531c919","savedPayload":{"position":{"x":27598.361055796973,"y":29125.766760485778},"targetPosition":{"x":27855.32495428326,"y":29306.516559064374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"67b51901-a5fe-4fad-aad4-fc4d756b09cc","savedPayload":{"position":{"x":27549.041305104092,"y":28758.247137159495},"targetPosition":{"x":27702.15661606371,"y":29032.31600496351},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b051770c-7c9c-4636-86c8-d3b419f9a8bd","savedPayload":{"position":{"x":27702.15661606371,"y":29032.31600496351},"targetPosition":{"x":27855.32495428326,"y":29306.516559064374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"8d54874e-6c21-434a-80fa-492bf2a9be2b","savedPayload":{"position":{"x":27817.025207317452,"y":28680.071629637838},"targetPosition":{"x":27836.24604174683,"y":28993.256069589363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9aa25c88-a620-42f1-b1e8-403c5c8718b1","savedPayload":{"position":{"x":27836.24604174683,"y":28993.256069589363},"targetPosition":{"x":27855.32495428326,"y":29306.516559064374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Down && NOT Side","code":"chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Down\" && chart.at01hs.bollingerSubChannel.slope != \"Side\"","project":"Superalgos","id":"e8c97495-8098-4209-a220-6c399baba0f3","savedPayload":{"position":{"x":28091.972378647533,"y":28725.99441771699},"targetPosition":{"x":27973.87809826914,"y":29016.184771982786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f39ad55a-1988-4ac8-9d5c-99054f951179","savedPayload":{"position":{"x":27973.87809826914,"y":29016.184771982786},"targetPosition":{"x":27855.32495428326,"y":29306.516559064374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"abaf1d9b-b5f9-4f8f-9a59-10936c3ea7b1","savedPayload":{"position":{"x":27855.32495428326,"y":29306.516559064374},"targetPosition":{"x":28078.311898080105,"y":29553.994069220047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"f9636b68-93f0-4100-8046-1d62eed73501","savedPayload":{"position":{"x":27800.91381731664,"y":29818.504845018462},"targetPosition":{"x":28011.287904495734,"y":30051.72762689482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"274cc7b8-9ab0-4f9a-9302-3357cfcac9da"}}}],"announcements":[],"id":"b1d129c5-5f5e-4b1a-a2d6-b79561d2a6ce","savedPayload":{"position":{"x":28011.287904495734,"y":30051.72762689482},"targetPosition":{"x":28244.327383233212,"y":29841.624072751772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"640cd6a8-a447-43ca-84f9-7dc5e6c8c826","savedPayload":{"position":{"x":27748.469185152302,"y":30555.06100729009},"targetPosition":{"x":27764.365157118584,"y":30240.890379724246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"9502bdd5-310a-4048-81ca-1eb0afe3c99d","savedPayload":{"position":{"x":27808.242398882314,"y":31130.462568097108},"targetPosition":{"x":27743.179205897453,"y":30823.551570209915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cb42b9eb-16cb-4bb4-af70-570fc4d1cd29","savedPayload":{"position":{"x":27743.179205897453,"y":30823.551570209915},"targetPosition":{"x":27678.029738943165,"y":30516.26457651712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"da7a29f2-93be-4ce8-aeb0-f286b5710891","savedPayload":{"position":{"x":27484.120318464677,"y":31113.456151984472},"targetPosition":{"x":27581.01097956444,"y":30815.043508702183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b4748a9d-7f41-4ce0-92ea-267488fd2e02","savedPayload":{"position":{"x":27581.01097956444,"y":30815.043508702183},"targetPosition":{"x":27678.029738943165,"y":30516.26457651712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"792355fa-6601-4a41-b673-b814127b3524","savedPayload":{"position":{"x":27211.56087517546,"y":30936.49664463255},"targetPosition":{"x":27444.66926523191,"y":30726.527901597467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4cd7afea-ce88-4111-b74e-dc48e34bcee5","savedPayload":{"position":{"x":27444.66926523191,"y":30726.527901597467},"targetPosition":{"x":27678.029738943165,"y":30516.26457651712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"835d94b1-7b62-43bc-bbda-34184c5a5410","savedPayload":{"position":{"x":27063.953428851266,"y":30647.04405326244},"targetPosition":{"x":27370.829069176936,"y":30581.74541888829},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"66c6c8dc-f8b2-4534-aeb1-5f7aea412564","savedPayload":{"position":{"x":27370.829069176936,"y":30581.74541888829},"targetPosition":{"x":27678.029738943165,"y":30516.26457651712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Down && NOT Side or Gentle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Down\" && chart.at01hs.bollingerSubChannel.slope != \"Side\" && chart.at01hs.bollingerSubChannel.slope != \"Gentle\"","project":"Superalgos","id":"4734e468-3fd1-4b7e-8361-66dea0f1d3c1","savedPayload":{"position":{"x":27080.788382816998,"y":30323.06530671747},"targetPosition":{"x":27379.233628166847,"y":30419.702945405792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b9f90ab7-e386-4fa3-a326-d99ce319edcd","savedPayload":{"position":{"x":27379.233628166847,"y":30419.702945405792},"targetPosition":{"x":27678.029738943165,"y":30516.26457651712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"26ef5972-8cc4-4b0d-92a4-b7da565b84b4","savedPayload":{"position":{"x":27678.029738943165,"y":30516.26457651712},"targetPosition":{"x":27925.700392324245,"y":30293.122270601358},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9be98459-d007-4f66-94ac-cc7b6c6ad81c","savedPayload":{"position":{"x":27466.79061071358,"y":30527.208502305875},"targetPosition":{"x":27764.365157118584,"y":30240.890379724246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"274cc7b8-9ab0-4f9a-9302-3357cfcac9da"}}},{"type":"Move To Phase Event","name":"Cancel Close","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","code":"chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"c959c1b6-aec3-4db7-a572-477f1ea2c132","savedPayload":{"position":{"x":26936.133864363976,"y":30368.97493748385},"targetPosition":{"x":27169.729670298097,"y":30159.142927247412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31460537-bb42-499a-9645-fca83618f4a5","savedPayload":{"position":{"x":27169.729670298097,"y":30159.142927247412},"targetPosition":{"x":27403.429033051816,"y":29949.432516611872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"b3e36006-93f4-4852-a7a7-d612a7e7ec27","savedPayload":{"position":{"x":26776.16084342068,"y":29916.812301721642},"targetPosition":{"x":27089.62693965511,"y":29933.086526194355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b8fe60bd-1dbd-458d-bdfd-1accfdab0b7c","savedPayload":{"position":{"x":27089.62693965511,"y":29933.086526194355},"targetPosition":{"x":27403.429033051816,"y":29949.432516611872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"6b79a9e3-796e-4db6-8a5c-0bc0bd875f45","savedPayload":{"position":{"x":26982.86212750645,"y":29483.463627338722},"targetPosition":{"x":27193.051257696487,"y":29716.357500443293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1d09d25e-54eb-4d39-bea6-44f8492a2d10","savedPayload":{"position":{"x":27193.051257696487,"y":29716.357500443293},"targetPosition":{"x":27403.429033051816,"y":29949.432516611872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f3ce7cba-7352-4634-a05d-07399ba679f2","savedPayload":{"position":{"x":27403.429033051816,"y":29949.432516611872},"targetPosition":{"x":27736.285866076516,"y":29966.90886181387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"23ebc628-449c-43d8-97a2-28c23bb4dda7","savedPayload":{"position":{"x":27450.4184835489,"y":30224.29815990272},"targetPosition":{"x":27764.365157118584,"y":30240.890379724246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"b1d129c5-5f5e-4b1a-a2d6-b79561d2a6ce"}}}],"announcements":[],"id":"0995a46a-7564-4e4a-bdf9-d1dd437c75c6","savedPayload":{"position":{"x":27764.365157118584,"y":30240.890379724246},"targetPosition":{"x":28011.287904495734,"y":30051.72762689482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.8 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.8} else \n{tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"12d58077-9b90-44f6-9d1d-5247aad7b0a4","savedPayload":{"position":{"x":27972.87565844104,"y":30651.315617935412},"targetPosition":{"x":27882.33804635429,"y":30219.949587869894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Cancel Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"af3238a0-9671-4ef7-90d8-802f9255d298","savedPayload":{"position":{"x":18806.25033773091,"y":25867.638087326006},"targetPosition":{"x":18560.668681005598,"y":25561.737307922194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2191cdaf-d396-458b-80e3-d67c69976c29","savedPayload":{"position":{"x":18560.668681005598,"y":25561.737307922194},"targetPosition":{"x":18318.47228588017,"y":25260.27732681641},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"fa54d65e-9ed1-42f1-bcfe-c774607c7ae3","savedPayload":{"position":{"x":18234.06947772808,"y":26041.670334390496},"targetPosition":{"x":18276.295352962195,"y":25651.092176588005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"de06b55c-392c-4032-b8a9-b1810881be63","savedPayload":{"position":{"x":18276.295352962195,"y":25651.092176588005},"targetPosition":{"x":18318.47228588017,"y":25260.27732681641},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Up || Side, Gentle or Medium","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Up\" || chart.at01hs.bollingerSubChannel.slope === \"Side\" || chart.at01hs.bollingerSubChannel.slope === \"Gentle\" || chart.at01hs.bollingerSubChannel.slope === \"Medium\"","project":"Superalgos","id":"4eca07e4-a6af-46c8-8099-fd4599755539","savedPayload":{"position":{"x":17706.63481557805,"y":25755.437515224272},"targetPosition":{"x":18012.53191626186,"y":25507.948589361826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a6ee99c3-005b-4b96-be05-579230e6af8b","savedPayload":{"position":{"x":18012.53191626186,"y":25507.948589361826},"targetPosition":{"x":18318.47228588017,"y":25260.27732681641},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fb58e58-feea-47c1-b7a6-0da4777ff32f","savedPayload":{"position":{"x":18318.47228588017,"y":25260.27732681641},"targetPosition":{"x":18368.52503271046,"y":24852.84992857802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"3ca96593-db50-40f0-a191-bfdffe79fdf8","savedPayload":{"position":{"x":27458.218831748916,"y":30309.969729022378},"targetPosition":{"x":27882.33804635429,"y":30219.949587869894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"b1d129c5-5f5e-4b1a-a2d6-b79561d2a6ce"}}}],"announcements":[],"id":"274cc7b8-9ab0-4f9a-9302-3357cfcac9da","savedPayload":{"position":{"x":27547.00895564981,"y":30432.25616085811},"targetPosition":{"x":27764.365157118584,"y":30240.890379724246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5969717f-fd1e-4579-a80b-5e66723412a9","savedPayload":{"position":{"x":36229.11484453257,"y":31683.515298485083},"targetPosition":{"x":36340.58656835418,"y":31583.145707531254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"455d4f49-eb65-49f8-a6d5-2bdd44e8bbac","savedPayload":{"position":{"x":34122.58656835418,"y":31585.145707531254},"targetPosition":{"x":34215.291666666664,"y":31299.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"27a608d6-178f-4b7e-adb3-6d516e255821","savedPayload":{"position":{"x":28543.632303935323,"y":26738.584429752416},"targetPosition":{"x":28374.69486560794,"y":26733.35717438071},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8ba5789-fde1-408f-9c16-5220cab0d132","savedPayload":{"position":{"x":28374.69486560794,"y":26733.35717438071},"targetPosition":{"x":27989.274477314983,"y":26722.866038138956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value","project":"Superalgos","id":"a84d1dbe-fb5a-4b4d-9135-7182197a7b43","savedPayload":{"position":{"x":28249.369095563787,"y":27201.145988507298},"targetPosition":{"x":28168.945420341995,"y":27053.56969241192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"df57e26e-cfa4-4b93-b2f1-cf099b22b8a8","savedPayload":{"position":{"x":28168.945420341995,"y":27053.56969241192},"targetPosition":{"x":27989.274477314983,"y":26722.866038138956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fa5dae3c-efab-4936-bbee-8a07d9593055","savedPayload":{"position":{"x":36129.57607189281,"y":31611.196146976843},"targetPosition":{"x":36190.58656835418,"y":31474.16432833045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Quick Exit","config":"{\n\"percentageOfAlgorithmSize\": 100,\n\"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"9d763bcb-8be6-41e4-875a-2c7842cc6909","savedPayload":{"position":{"x":27230.84924955325,"y":27930.01390528551},"targetPosition":{"x":27190.27346400518,"y":27737.834373412057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"88b2ba31-76a8-43ee-8c4b-3b6e1e187a82","savedPayload":{"position":{"x":27190.27346400518,"y":27737.834373412057},"targetPosition":{"x":27149.59213286936,"y":27544.980894377055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2b1f9c91-7bb6-40ad-a43a-c52b0287ed9e","savedPayload":{"position":{"x":27149.59213286936,"y":27544.980894377055},"targetPosition":{"x":27100.06371187106,"y":27310.446353856452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"a1de1b80-9a70-460b-8d8d-7a3846687b70","savedPayload":{"position":{"x":27116.130453508737,"y":29281.311640744694},"targetPosition":{"x":27427.8035370369,"y":29248.58181443382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ef6e7305-d840-4fa6-8aee-da60b33bef83","savedPayload":{"position":{"x":27427.8035370369,"y":29248.58181443382},"targetPosition":{"x":27739.92700499504,"y":29215.79329224555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"06078431-e8b2-4116-99fa-7362a18d6ebd","savedPayload":{"position":{"x":27739.92700499504,"y":29215.79329224555},"targetPosition":{"x":28142.542442050708,"y":29173.388420505726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"29750ebf-e23e-4d96-b8c3-02c5d5f1ade7","savedPayload":{"position":{"x":36041.408284048935,"y":31489.8435978206},"targetPosition":{"x":36190.58656835418,"y":31474.16432833045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"d40a7e65-760d-4c56-8aac-d17111607cf9","savedPayload":{"position":{"x":33972.58656835418,"y":31476.16432833045},"targetPosition":{"x":34215.291666666664,"y":31299.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a1b63f90-0ec5-4eb4-a51e-88852cc95049","savedPayload":{"position":{"x":34215.291666666664,"y":31299.82875264271},"targetPosition":{"x":34215.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading Strategy","name":"S4 - 8H Up","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"565db073-2544-4f1e-8ffd-450fb4e10feb","savedPayload":{"position":{"x":37250.92271198077,"y":31523.42269847025},"targetPosition":{"x":37002.211440214254,"y":31691.180569511474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1f26cf4a-76fc-4186-9b3b-9010f9f3da7c","savedPayload":{"position":{"x":37002.211440214254,"y":31691.180569511474},"targetPosition":{"x":36753.50016844774,"y":31858.938440552698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"f288ec4c-d242-4138-a291-4e97fcec4e8e","savedPayload":{"position":{"x":37335.677604213335,"y":31713.7853031929},"targetPosition":{"x":37044.58888633054,"y":31786.3618718728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eb5bf914-8163-453a-afa5-95f22ba39ead","savedPayload":{"position":{"x":37044.58888633054,"y":31786.3618718728},"targetPosition":{"x":36753.50016844774,"y":31858.938440552698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"0638ff08-302c-488f-8a8b-be0cd0454e49","savedPayload":{"position":{"x":37350.21330566871,"y":31921.655518513293},"targetPosition":{"x":37051.856737058224,"y":31890.296979532995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0c8e03c5-c1b2-4aaf-bddc-874c50cfbbba","savedPayload":{"position":{"x":37051.856737058224,"y":31890.296979532995},"targetPosition":{"x":36753.50016844774,"y":31858.938440552698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"8H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at08hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"77dbd8ad-81fc-4394-93d4-e84e931970f7","savedPayload":{"position":{"x":37292.776596227246,"y":32121.961128626146},"targetPosition":{"x":37023.13838233749,"y":31990.449784589422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78fae417-cc69-4a59-8edf-5d2e7102b50f","savedPayload":{"position":{"x":37023.13838233749,"y":31990.449784589422},"targetPosition":{"x":36753.50016844774,"y":31858.938440552698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"12H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at12hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"f513cfb2-d7b3-442b-8d72-8bedb02e7ddf","savedPayload":{"position":{"x":37170.29519072314,"y":32290.54232075589},"targetPosition":{"x":36961.89767958544,"y":32074.740380654293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4ab49bb6-b9d3-44a1-8fa5-6d5f7b9d3b3f","savedPayload":{"position":{"x":36961.89767958544,"y":32074.740380654293},"targetPosition":{"x":36753.50016844774,"y":31858.938440552698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"09bdc89a-fa30-46cc-9da0-aa16844e829b","savedPayload":{"position":{"x":36997.54215429322,"y":32407.06571513826},"targetPosition":{"x":36875.52116137048,"y":32133.00207784548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2aae14ee-14b3-4c94-9394-d64432517632","savedPayload":{"position":{"x":36875.52116137048,"y":32133.00207784548},"targetPosition":{"x":36753.50016844774,"y":31858.938440552698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H NOT Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope != \"Extreme\"","project":"Superalgos","id":"a2059ed1-a903-483c-a5b1-a44203fb670f","savedPayload":{"position":{"x":36795.354052694216,"y":32457.476870708593},"targetPosition":{"x":36774.42711057098,"y":32158.207655630646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2ca6efe4-43ac-45a1-ba84-5215d33f32a6","savedPayload":{"position":{"x":36774.42711057098,"y":32158.207655630646},"targetPosition":{"x":36753.50016844774,"y":31858.938440552698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Deviation > 40","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 25","project":"Superalgos","id":"3b0663ea-9168-4101-bd49-a4fa14473dc7","savedPayload":{"position":{"x":36588.117754957544,"y":32435.695458115686},"targetPosition":{"x":36670.80896170264,"y":32147.316949334192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6f3289e9-c257-4953-ae25-664416db52a7","savedPayload":{"position":{"x":36670.80896170264,"y":32147.316949334192},"targetPosition":{"x":36753.50016844774,"y":31858.938440552698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"977e6e41-dca1-4b42-9e82-3e2eeae3c220","savedPayload":{"position":{"x":36753.50016844774,"y":31858.938440552698},"targetPosition":{"x":36510.79507013525,"y":31682.602864864955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"260de0f8-58ff-477f-aadb-f61a4043e3a8","savedPayload":{"position":{"x":36510.79507013525,"y":31682.602864864955},"targetPosition":{"x":36268.08997182277,"y":31506.267289177213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","project":"Superalgos","id":"a2b6bf13-42e1-428f-9691-42be919fa8c1","savedPayload":{"position":{"x":28809.37411189384,"y":30633.131574105915},"targetPosition":{"x":28758.09325863394,"y":30302.579666245838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"05892d30-611b-4f6e-93ae-3f484b208fe5","savedPayload":{"position":{"x":28758.09325863394,"y":30302.579666245838},"targetPosition":{"x":28705.32489354033,"y":29973.082313140767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f6bb3530-fc04-47bb-b335-1f90463c6a04","savedPayload":{"position":{"x":28705.32489354033,"y":29973.082313140767},"targetPosition":{"x":28647.81960320618,"y":29607.68707189431},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"3046ad00-d3de-4458-80db-287144ff86fa","savedPayload":{"position":{"x":36291.5551415788,"y":31654.420540266485},"targetPosition":{"x":36268.08997182277,"y":31506.267289177213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"3847310d-3d70-43f6-85a1-8a62eec1d4d3","savedPayload":{"position":{"x":28535.442240077766,"y":30421.14510742385},"targetPosition":{"x":28361.88940335974,"y":30134.91487704176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"680fec1e-3d4c-4b3b-82a6-0f45a34f9776","savedPayload":{"position":{"x":28361.88940335974,"y":30134.91487704176},"targetPosition":{"x":28187.881942973643,"y":29850.24740452339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"ffbb6568-c112-46de-8097-fbf993a8232f","savedPayload":{"position":{"x":28291.618500304503,"y":30509.579240058054},"targetPosition":{"x":28240.315820176762,"y":30180.237125311513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f0830878-6dd9-4657-a0b5-906ff9296559","savedPayload":{"position":{"x":28240.315820176762,"y":30180.237125311513},"targetPosition":{"x":28187.881942973643,"y":29850.24740452339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"d7a8fc7d-57a2-4340-bb12-627c667324e6","savedPayload":{"position":{"x":28030.935794680052,"y":30499.376493431926},"targetPosition":{"x":28110.167854802203,"y":30174.569782806466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e841acd3-9785-49f5-be08-5aa63d3df039","savedPayload":{"position":{"x":28110.167854802203,"y":30174.569782806466},"targetPosition":{"x":28187.881942973643,"y":29850.24740452339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"8H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at08hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"60872ff6-a88d-4e3c-9069-4337d9e77653","savedPayload":{"position":{"x":27796.2025117495,"y":30391.20267807148},"targetPosition":{"x":27992.69074200863,"y":30119.74253920332},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"969eebbc-1e68-4dc7-bb42-5fd1e92648b3","savedPayload":{"position":{"x":27992.69074200863,"y":30119.74253920332},"targetPosition":{"x":28187.881942973643,"y":29850.24740452339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"12H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at12hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"e1f6e5b8-70b1-44b9-b127-099a28b39e5f","savedPayload":{"position":{"x":27617.745668180327,"y":30199.394879364663},"targetPosition":{"x":27903.02636055706,"y":30024.164382393945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1d87e62c-73ff-434b-ac60-e7afa7035b78","savedPayload":{"position":{"x":27903.02636055706,"y":30024.164382393945},"targetPosition":{"x":28187.881942973643,"y":29850.24740452339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"4dbcbf0e-b029-40db-9b3e-422ccb1d1642","savedPayload":{"position":{"x":27527.85954307872,"y":29953.851853944325},"targetPosition":{"x":27857.480803333707,"y":29902.34196364593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed71b78d-b409-451d-9e23-72fde4c6ac59","savedPayload":{"position":{"x":27857.480803333707,"y":29902.34196364593},"targetPosition":{"x":28187.881942973643,"y":29850.24740452339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Deviation > 40","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 25","project":"Superalgos","id":"ca95ffdd-a14f-4985-84b7-2a482eb8091d","savedPayload":{"position":{"x":27536.99734099116,"y":29693.89725591531},"targetPosition":{"x":27861.856068712474,"y":29771.757035592964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"80a35c8a-7650-442f-82de-b9acb0c09988","savedPayload":{"position":{"x":27861.856068712474,"y":29771.757035592964},"targetPosition":{"x":28187.881942973643,"y":29850.24740452339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"22a72082-528a-440b-8e3f-374d612c4d51","savedPayload":{"position":{"x":28187.881942973643,"y":29850.24740452339},"targetPosition":{"x":28405.55648184158,"y":29549.958349770044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"c9d98dc4-e354-4357-99c8-eaa829f874d7","savedPayload":{"position":{"x":36091.754396135024,"y":31748.972387489695},"targetPosition":{"x":36268.08997182277,"y":31506.267289177213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"0bf02e1f-d661-437b-85b0-b31e57707199","savedPayload":{"position":{"x":36268.08997182277,"y":31506.267289177213},"targetPosition":{"x":36221.1596323107,"y":31209.960786998672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"My Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"f8f5fc79-31b1-49c6-bdd9-2d72883b2364","savedPayload":{"position":{"x":28607.927468460777,"y":30172.197864218084},"targetPosition":{"x":28426.297139911647,"y":29891.544811075233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0dc0c256-7b9c-4e5c-bd09-c9d57ad86247","savedPayload":{"position":{"x":28426.297139911647,"y":29891.544811075233},"targetPosition":{"x":28203.466480660125,"y":29547.265437665657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.episodeBaseAsset.balance.value","project":"Superalgos","id":"fc05ff9a-1f89-477c-9b23-5050bb7416b3","savedPayload":{"position":{"x":27865.994960161013,"y":30210.24761358412},"targetPosition":{"x":28017.87608240663,"y":29911.708396199938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"afb3ab65-a8a8-4926-bd7a-a309e73c76b4","savedPayload":{"position":{"x":28017.87608240663,"y":29911.708396199938},"targetPosition":{"x":28203.466480660125,"y":29547.265437665657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"80228bad-3498-456e-bdc6-8f8eb5868134","savedPayload":{"position":{"x":36092.81287582528,"y":31627.05717446837},"targetPosition":{"x":36084.96248238884,"y":31477.262744255182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Quick Entry","config":"{\n\"percentageOfAlgorithmSize\": 100\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"251e2560-de9e-4446-a6ad-ecb5545a59ee","savedPayload":{"position":{"x":26224.81369174499,"y":30488.489891126737},"targetPosition":{"x":26505.136475846037,"y":30307.05306825343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f36b38fb-f877-45a3-a632-f20bd3f9c671","savedPayload":{"position":{"x":26505.136475846037,"y":30307.05306825343},"targetPosition":{"x":26785.099778717806,"y":30125.022780267085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"14d0b5a0-d880-4f3a-8eb9-3357b8bfc0b6","savedPayload":{"position":{"x":26785.099778717806,"y":30125.022780267085},"targetPosition":{"x":27065.28934074679,"y":29942.73813534285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"4c7accf9-edb5-403b-97cb-0ba11ba6c45c","savedPayload":{"position":{"x":27065.28934074679,"y":29942.73813534285},"targetPosition":{"x":27345.29333814085,"y":29760.58616749486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b44ca915-083c-4363-8172-c21805201845","savedPayload":{"position":{"x":27345.29333814085,"y":29760.58616749486},"targetPosition":{"x":27625.399419388432,"y":29578.6411308756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"4164d2ed-edce-40e4-b22e-2dd6c5ef036a","savedPayload":{"position":{"x":27625.399419388432,"y":29578.6411308756},"targetPosition":{"x":27906.588855769256,"y":29395.610331584467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"1670ca81-e7fa-4070-8534-0dd96fccc054","savedPayload":{"position":{"x":35959.161897197024,"y":31558.958599507438},"targetPosition":{"x":36084.96248238884,"y":31477.262744255182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"1b95c0aa-9a01-4f10-8534-9932d3d95d7c","savedPayload":{"position":{"x":36084.96248238884,"y":31477.262744255182},"targetPosition":{"x":36221.1596323107,"y":31209.960786998672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Slow Run","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 1.03","project":"Superalgos","id":"5d268024-2d96-4094-b50f-b0a3cbf1b4f0","savedPayload":{"position":{"x":27475.480946995845,"y":29873.278969638945},"targetPosition":{"x":27492.482760731822,"y":29538.74069209266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < tradingEngine.current.position.entryTargetRate.value * 0.97","project":"Superalgos","id":"2dbdfc22-50a8-4adc-94f0-92cdc036fe2f","savedPayload":{"position":{"x":28089.86793479299,"y":30573.253248944435},"targetPosition":{"x":28081.224403526096,"y":30405.5901733598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7104f775-64e7-4d98-b7d8-39f6ef3d3055","savedPayload":{"position":{"x":28081.224403526096,"y":30405.5901733598},"targetPosition":{"x":28072.16415173052,"y":30228.47365001391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"93c8c267-8c57-42eb-834c-1e5a22489094","savedPayload":{"position":{"x":28072.16415173052,"y":30228.47365001391},"targetPosition":{"x":28060.972172534286,"y":30011.948521485836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"f3c1082e-25bb-4e2e-9db4-7920c77050b6","savedPayload":{"position":{"x":27193.42607846853,"y":29690.00004242394},"targetPosition":{"x":27492.482760731822,"y":29538.74069209266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"968b9847-e19a-4d7a-9744-ccf0f098e40a","savedPayload":{"position":{"x":27492.482760731822,"y":29538.74069209266},"targetPosition":{"x":27712.387671498203,"y":29200.78711753364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 1.02 < tradingEngine.current.position.stopLoss.value) {chart.at01hs.bollingerBand.movingAverage * 1.02} else {tradingEngine.current.position.stopLoss.value}","project":"Superalgos","id":"53f5b5c3-ba67-453c-9c9f-4ce573a45cf7","savedPayload":{"position":{"x":27127.912703405476,"y":30100.178271251316},"targetPosition":{"x":27310.022519217717,"y":29819.639671039367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"9f500e15-05a0-49f2-acb6-22dc52e3a776","savedPayload":{"position":{"x":27310.022519217717,"y":29819.639671039367},"targetPosition":{"x":27492.43874968777,"y":29538.806781431063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"48f10387-f326-4021-ae7e-bf0c89f12f0e","savedPayload":{"position":{"x":35872.161819801935,"y":31471.95852211235},"targetPosition":{"x":35953.85767505419,"y":31346.157936920536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 0.95","project":"Superalgos","id":"be152b44-4a9c-4b16-9075-c727f4321c38","savedPayload":{"position":{"x":26976.44968098792,"y":29163.647057395647},"targetPosition":{"x":27158.301643132814,"y":28882.934157357806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"1H EMA7 < entryTargetRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value","project":"Superalgos","id":"ad245a3c-c7dc-490b-8680-1ff6b9ef33c1","savedPayload":{"position":{"x":27074.195835863193,"y":29901.814884894433},"targetPosition":{"x":27214.949316844682,"y":29810.363446661504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cdfff198-ce34-4a75-b7f9-ed8dee0ccc70","savedPayload":{"position":{"x":27214.949316844682,"y":29810.363446661504},"targetPosition":{"x":27371.48731652443,"y":29713.814685261183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.current.position.positionCounters.periods.value > 2","project":"Superalgos","id":"0633fc97-d2d0-405b-bed4-d390d30bb43c","savedPayload":{"position":{"x":27054.862647818118,"y":29559.844937101625},"targetPosition":{"x":27205.631922364144,"y":29635.463803370352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8bb34027-c362-4abc-b722-e5b844113302","savedPayload":{"position":{"x":27205.631922364144,"y":29635.463803370352},"targetPosition":{"x":27371.48731652443,"y":29713.814685261183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3ee8f724-793b-444f-a773-de0d2d113be6","savedPayload":{"position":{"x":27371.48731652443,"y":29713.814685261183},"targetPosition":{"x":27587.56132038788,"y":29701.924252494697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"113a609b-5d12-46d3-a15e-0f23f3d0b70f","savedPayload":{"position":{"x":27006.854172853746,"y":28584.79385705758},"targetPosition":{"x":27158.301643132814,"y":28882.934157357806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"e256ad15-0e95-442a-8675-b24d7fe36118","savedPayload":{"position":{"x":27158.301643132814,"y":28882.934157357806},"targetPosition":{"x":27561.126870445787,"y":28903.741640753018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Manage: 3% Below ema7","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.97 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.97} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"d2f712ac-98dc-41dc-b29e-260334b7cd69","savedPayload":{"position":{"x":26806.526165318504,"y":29199.860146358988},"targetPosition":{"x":26824.900950198196,"y":28865.726736929544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"629a5ecb-7ade-4453-89bb-1d1c5d5f96d9","savedPayload":{"position":{"x":15905.559889530748,"y":25200.809149782486},"targetPosition":{"x":15759.31975011624,"y":24889.059024174232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c9b1b192-1698-44a7-a0f5-20d21088f280","savedPayload":{"position":{"x":15759.31975011624,"y":24889.059024174232},"targetPosition":{"x":15617.175506791995,"y":24570.197450148815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0402e263-ac5c-4546-be68-8f33fdbf8666","savedPayload":{"position":{"x":15617.175506791995,"y":24570.197450148815},"targetPosition":{"x":15474.373594711426,"y":24247.02970849377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"1fc1bb7a-a52b-4ce2-b17b-95194de42c8a","savedPayload":{"position":{"x":26467.238478120456,"y":28945.449395091346},"targetPosition":{"x":26824.900950198196,"y":28865.726736929544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"a0b6604b-8744-468d-8eb8-37266a7790bb","savedPayload":{"position":{"x":26701.52667180533,"y":27839.687641126133},"targetPosition":{"x":26981.75779943666,"y":28022.392274623322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7a6659c-b0db-4966-875f-4f3c22448e5f","savedPayload":{"position":{"x":26981.75779943666,"y":28022.392274623322},"targetPosition":{"x":27262.299140053936,"y":28204.788038165956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"bba2d293-88c4-492f-94af-1b9619f740fd","savedPayload":{"position":{"x":26958.649955826924,"y":27608.094572306873},"targetPosition":{"x":27110.386089353135,"y":27906.47600911284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"20aebaee-eb59-4c3f-8c59-39349e032515","savedPayload":{"position":{"x":27110.386089353135,"y":27906.47600911284},"targetPosition":{"x":27262.299140053936,"y":28204.788038165956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value * 0.99","project":"Superalgos","id":"8419c8f8-b2b3-4d98-99e8-2506e40bdb02","savedPayload":{"position":{"x":27296.65091685469,"y":27536.047758623594},"targetPosition":{"x":27279.429647719586,"y":27870.452853650684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0d40d31a-b3d2-4213-9ec0-16dfad84800c","savedPayload":{"position":{"x":27279.429647719586,"y":27870.452853650684},"targetPosition":{"x":27262.299140053936,"y":28204.788038165956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"1f20f276-1067-413d-9855-d5a8c3bf4dd5","savedPayload":{"position":{"x":27625.67938426883,"y":27642.833602628983},"targetPosition":{"x":27444.019097607794,"y":27923.85731245124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5a699f92-494e-4078-b641-1c9c57ffc366","savedPayload":{"position":{"x":27444.019097607794,"y":27923.85731245124},"targetPosition":{"x":27262.299140053936,"y":28204.788038165956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"8522cf28-0d47-4049-a2d0-f859792cc083","savedPayload":{"position":{"x":27857.00766795425,"y":27899.76282612721},"targetPosition":{"x":27559.759830685027,"y":28052.3766582792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0c5c7d7b-590f-4902-b44d-8609741d2b0c","savedPayload":{"position":{"x":27559.759830685027,"y":28052.3766582792},"targetPosition":{"x":27262.299140053936,"y":28204.788038165956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa9bda47-780e-48ec-97bf-52f713be6d1c","savedPayload":{"position":{"x":27262.299140053936,"y":28204.788038165956},"targetPosition":{"x":27244.555251596103,"y":28553.7551017426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0905efc2-d8c9-4b8b-b09f-de915fca26e4","savedPayload":{"position":{"x":26841.148321913766,"y":28531.446148457064},"targetPosition":{"x":26824.900950198196,"y":28865.726736929544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"dc4b92b2-3855-4cc7-84f5-20cc259c1634"}}}],"announcements":[],"id":"e6304ea5-e683-49c1-8e84-e2bc119565fa","savedPayload":{"position":{"x":26824.900950198196,"y":28865.726736929544},"targetPosition":{"x":27158.525475189537,"y":28882.946295957678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"73870f3c-4fc8-464c-be6a-f5e397ee044e","savedPayload":{"position":{"x":26248.03233758868,"y":29048.621288451424},"targetPosition":{"x":26496.4968921357,"y":28824.195125046732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"bc212a30-b2e9-435c-84a8-e505019c0570","savedPayload":{"position":{"x":26028.353993351095,"y":29198.927585204947},"targetPosition":{"x":26208.767372794104,"y":28919.074663244268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"19c71956-4d1e-4355-826e-5bc25d09fdc3","savedPayload":{"position":{"x":26208.767372794104,"y":28919.074663244268},"targetPosition":{"x":26393.104355894535,"y":28638.121604493295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"31e8935e-497f-47eb-9466-900faced609c","savedPayload":{"position":{"x":25796.716773218177,"y":28941.583887464818},"targetPosition":{"x":26092.874603300577,"y":28790.32403178882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"506df2ab-b891-4709-84e6-b773c8743abf","savedPayload":{"position":{"x":26092.874603300577,"y":28790.32403178882},"targetPosition":{"x":26393.104355894535,"y":28638.121604493295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"c1e44382-1537-453b-9f6c-52ef913228aa","savedPayload":{"position":{"x":25724.77479391031,"y":28603.415020562912},"targetPosition":{"x":26056.900961390682,"y":28621.143581060627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"928db494-0024-4ed4-a407-84087efb0704","savedPayload":{"position":{"x":26056.900961390682,"y":28621.143581060627},"targetPosition":{"x":26393.104355894535,"y":28638.121604493295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"8bae0609-ccff-480d-b382-b56f22ec8dc4","savedPayload":{"position":{"x":25831.72975198625,"y":28274.166713508945},"targetPosition":{"x":26110.420005121778,"y":28456.446141295695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"98ac2a8f-4541-46de-8e01-f9709d6b195f","savedPayload":{"position":{"x":26110.420005121778,"y":28456.446141295695},"targetPosition":{"x":26393.104355894535,"y":28638.121604493295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div previous ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"a5a3a569-6a05-4fd0-8c15-22d5e5d1b148","savedPayload":{"position":{"x":26088.90809861319,"y":28042.503617409915},"targetPosition":{"x":26239.081121089148,"y":28340.563300837835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2adc3c50-f284-4fb1-9f79-b077a54b5046","savedPayload":{"position":{"x":26239.081121089148,"y":28340.563300837835},"targetPosition":{"x":26393.104355894535,"y":28638.121604493295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c91df057-7904-431b-b997-8fbb2afada1f","savedPayload":{"position":{"x":26393.104355894535,"y":28638.121604493295},"targetPosition":{"x":26742.412820854453,"y":28656.168550955437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"8196d5fe-af67-4302-84d1-f95279fb2075","savedPayload":{"position":{"x":26069.18570353877,"y":28841.530533700978},"targetPosition":{"x":26496.4968921357,"y":28824.195125046732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"dc4b92b2-3855-4cc7-84f5-20cc259c1634"}}},{"type":"Move To Phase Event","name":"Cancel Close","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"60d1211f-6279-4c80-abe5-e727a70aea22","savedPayload":{"position":{"x":25807.81630491511,"y":28176.935630633474},"targetPosition":{"x":26124.823384703996,"y":28279.31120861342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6659d86a-2e52-48b2-bcc4-5f5b43b3907e","savedPayload":{"position":{"x":26124.823384703996,"y":28279.31120861342},"targetPosition":{"x":26443.505244366876,"y":28383.333566245587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"5ce2e13e-4b4f-424b-b4ee-1741c013690b","savedPayload":{"position":{"x":26302.94257617406,"y":27729.37589046664},"targetPosition":{"x":26373.78128491369,"y":28056.170727584373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38aa2600-90dc-4c6b-be17-a08ee9c829b3","savedPayload":{"position":{"x":26373.78128491369,"y":28056.170727584373},"targetPosition":{"x":26443.505244366876,"y":28383.333566245587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fd092801-0b6b-4f09-bbb3-b16fe1144ae3","savedPayload":{"position":{"x":26443.505244366876,"y":28383.333566245587},"targetPosition":{"x":26677.891049279853,"y":28643.904594388354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"4b4f5de5-723c-4d6e-b26e-50ee87671f48","savedPayload":{"position":{"x":26272.867042315393,"y":28575.16112899709},"targetPosition":{"x":26496.4968921357,"y":28824.195125046732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"e6304ea5-e683-49c1-8e84-e2bc119565fa"}}}],"announcements":[],"id":"ad2a51aa-b179-457e-9704-5c9b1a8db72e","savedPayload":{"position":{"x":26496.4968921357,"y":28824.195125046732},"targetPosition":{"x":26824.900950198196,"y":28865.726736929544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.8 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.8} else \n{tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"d29e9a58-79bb-445f-b51a-e5b86937aa8c","savedPayload":{"position":{"x":26318.095607049818,"y":29177.268994210433},"targetPosition":{"x":26558.044634162423,"y":28806.381178237985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Cancel Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"59efd870-0af2-4d5c-a78c-281b71f00497","savedPayload":{"position":{"x":19463.035973888967,"y":27429.52738207017},"targetPosition":{"x":19296.638884308486,"y":27055.581126703888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31c9eb9e-6567-4866-b3de-cf7ac4fa0126","savedPayload":{"position":{"x":19296.638884308486,"y":27055.581126703888},"targetPosition":{"x":19130.136941097997,"y":26681.4253898827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"0dd58774-bae1-48f4-bb2a-ff3af03d885b","savedPayload":{"position":{"x":18649.23745449695,"y":27343.99223901747},"targetPosition":{"x":18889.65788302903,"y":27012.787568933236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8894b26-93ec-450a-9cbf-2462e442a7bc","savedPayload":{"position":{"x":18889.65788302903,"y":27012.787568933236},"targetPosition":{"x":19130.136941097997,"y":26681.4253898827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1141841-95d0-4c98-b77e-16eb893e6b19","savedPayload":{"position":{"x":19130.136941097997,"y":26681.4253898827},"targetPosition":{"x":19172.682421992497,"y":26273.89343075238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"5a854197-4f85-4f31-bf5e-c9acff5a60cc","savedPayload":{"position":{"x":26191.609018402596,"y":28569.316216322608},"targetPosition":{"x":26558.044634162423,"y":28806.381178237985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"e6304ea5-e683-49c1-8e84-e2bc119565fa"}}}],"announcements":[],"id":"dc4b92b2-3855-4cc7-84f5-20cc259c1634","savedPayload":{"position":{"x":26185.755791523698,"y":28798.31681169135},"targetPosition":{"x":26496.4968921357,"y":28824.195125046732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6b48bcff-79c4-4705-82ac-3666914c8628","savedPayload":{"position":{"x":35804.063244841,"y":31338.307543484094},"targetPosition":{"x":35953.85767505419,"y":31346.157936920536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"657399d3-c55b-46b6-8ef6-bf1ed183c48f","savedPayload":{"position":{"x":35953.85767505419,"y":31346.157936920536},"targetPosition":{"x":36221.1596323107,"y":31209.960786998672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"c6b77baa-76fc-47b1-b051-2f3ff3406f57","savedPayload":{"position":{"x":27049.725706437093,"y":29208.31610012851},"targetPosition":{"x":27259.993364448204,"y":28949.199604844944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c377d2d0-923e-48bc-8d52-dabd2aa3cddd","savedPayload":{"position":{"x":27259.993364448204,"y":28949.199604844944},"targetPosition":{"x":27518.84362604557,"y":28631.076500627263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value","project":"Superalgos","id":"1a506022-94a8-4002-a4e9-fb5be6bb08f7","savedPayload":{"position":{"x":26784.75060476659,"y":28514.861545888067},"targetPosition":{"x":27115.108440631466,"y":28567.02125805054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a763470c-36d8-4f0a-bf43-d4bf56fdc8f2","savedPayload":{"position":{"x":27115.108440631466,"y":28567.02125805054},"targetPosition":{"x":27518.84362604557,"y":28631.076500627263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"acf03a63-b313-4815-8b9e-f0076133d831","savedPayload":{"position":{"x":35784.816066157575,"y":31216.7856399184},"targetPosition":{"x":35924.85313013216,"y":31163.030447486602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Quick Exit","config":"{\n\"percentageOfAlgorithmSize\": 100,\n\"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"0dea584c-fc00-490a-9ed3-a9ea73f8fa82","savedPayload":{"position":{"x":28500.84924955325,"y":28087.26390528551},"targetPosition":{"x":28460.27346400518,"y":27895.084373412057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f38d1558-0d76-4dbb-8376-23fad6c5b7b0","savedPayload":{"position":{"x":28460.27346400518,"y":27895.084373412057},"targetPosition":{"x":28419.59213286936,"y":27702.230894377055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c4f496ed-74ae-4538-b71d-062ec523fb02","savedPayload":{"position":{"x":28419.59213286936,"y":27702.230894377055},"targetPosition":{"x":28370.06371187106,"y":27467.696353856452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"1b0a6e1c-0fe1-4852-9830-5827fd04f468","savedPayload":{"position":{"x":26732.903828952658,"y":27625.28744419892},"targetPosition":{"x":26992.81690643062,"y":27835.592763632987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fa11a0a2-17b9-43be-a734-a5643da1dbb1","savedPayload":{"position":{"x":26992.81690643062,"y":27835.592763632987},"targetPosition":{"x":27252.13830183545,"y":28045.397716781292},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"8313a81f-a159-437e-b0a6-516dd5cfd3c8","savedPayload":{"position":{"x":27252.13830183545,"y":28045.397716781292},"targetPosition":{"x":27570.16699506435,"y":28302.793921554556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e8a01f89-65e9-4758-a6b4-b5fad0ef7297","savedPayload":{"position":{"x":35808.28123591361,"y":31068.632388829126},"targetPosition":{"x":35924.85313013216,"y":31163.030447486602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"80f7f0a4-4572-4bea-b440-b5bd1fec32c1","savedPayload":{"position":{"x":35924.85313013216,"y":31163.030447486602},"targetPosition":{"x":36221.1596323107,"y":31209.960786998672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b27aa9de-ced9-4e53-941c-499bab212f80","savedPayload":{"position":{"x":34003.1596323107,"y":31211.960786998672},"targetPosition":{"x":34215.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading Strategy","name":"S6 - 2H Up","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"873a72fd-cc23-4965-ae29-5b2b70d85cb9","savedPayload":{"position":{"x":36969.351645590534,"y":32075.37572334243},"targetPosition":{"x":36521.816792674814,"y":32028.337914871987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"087962b5-2546-4472-b71c-b161f0013b1c","savedPayload":{"position":{"x":36521.816792674814,"y":32028.337914871987},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"c72459a6-49d5-4021-b6e3-4a8c374b6b4b","savedPayload":{"position":{"x":36914.50432360657,"y":32303.831260992312},"targetPosition":{"x":36494.39313168283,"y":32142.56568369693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48333f2b-d8c7-4a92-bf5d-b8c9a8de4196","savedPayload":{"position":{"x":36494.39313168283,"y":32142.56568369693},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"8488937e-9b92-4562-b89c-a4d6c6dd8ee2","savedPayload":{"position":{"x":36802.397234696546,"y":32510.306833464772},"targetPosition":{"x":36438.33958722782,"y":32245.80346993316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ec9b3ba8-d6a4-4cb0-8679-a8daa868e549","savedPayload":{"position":{"x":36438.33958722782,"y":32245.80346993316},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"02H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"ade6a251-d161-467d-8e94-45cfdadf536b","savedPayload":{"position":{"x":36640.67029170395,"y":32680.73147171282},"targetPosition":{"x":36357.47611573152,"y":32331.015789057183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7499f60b-762e-4b37-a66d-2872755620c4","savedPayload":{"position":{"x":36357.47611573152,"y":32331.015789057183},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"04H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"3beea11e-ff4a-4e39-97d0-97563dacfb09","savedPayload":{"position":{"x":36440.34491852732,"y":32803.491018279885},"targetPosition":{"x":36257.31342914321,"y":32392.395562340716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e0650fa-cd1b-4770-81b2-06d677c73510","savedPayload":{"position":{"x":36257.31342914321,"y":32392.395562340716},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"01H Med, Steep o Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","project":"Superalgos","id":"276b36c3-c0ca-45d6-a659-c40dac406f46","savedPayload":{"position":{"x":36215.072958295306,"y":32870.219612937166},"targetPosition":{"x":36144.6774490272,"y":32425.759859669357},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"904385e8-8b04-4c0c-9961-98b10184e976","savedPayload":{"position":{"x":36144.6774490272,"y":32425.759859669357},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"a49fbb15-05db-4a21-b59b-662a6d84c999","savedPayload":{"position":{"x":35980.20632281821,"y":32876.36981223299},"targetPosition":{"x":36027.24413128865,"y":32428.834959317268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"89591bf6-dabe-4ba6-b2d8-4580a2c75b0a","savedPayload":{"position":{"x":36027.24413128865,"y":32428.834959317268},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Side or Medium","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\" || chart.at02hs.bollingerSubChannel.slope === \"Medium\"","project":"Superalgos","id":"bb0016e9-0b74-4595-b450-209487362f00","savedPayload":{"position":{"x":35751.75078516832,"y":32821.52249024902},"targetPosition":{"x":35913.016362463706,"y":32401.411298325285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad9f8e37-16b5-4245-9492-0192ef168849","savedPayload":{"position":{"x":35913.016362463706,"y":32401.411298325285},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"1e3c7245-5582-4af5-9527-5dddf151b976","savedPayload":{"position":{"x":35545.275212695866,"y":32709.415401338996},"targetPosition":{"x":35809.77857622748,"y":32345.35775387027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"440d6ea0-2ee2-408a-a556-18d4c53dda17","savedPayload":{"position":{"x":35809.77857622748,"y":32345.35775387027},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 4: 02H Up && 02H Gentle && 3H Side","code":"chart.at02hs.percentageBandwidth.movingAverage > chart.at24hs.bollingerSubChannel.slope + chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Gentle\" && chart.at03hs.bollingerSubChannel.slope === \"Side\") {false} else {true}","project":"Superalgos","id":"d4189ed6-4d0f-45ea-b1ae-dbdb8f2e0e2c","savedPayload":{"position":{"x":35374.85057444782,"y":32547.688458346398},"targetPosition":{"x":35724.566257103455,"y":32264.49428237397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"01875e5f-f718-4047-baa4-c91930dd6c86","savedPayload":{"position":{"x":35724.566257103455,"y":32264.49428237397},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H NOT Steep","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope != \"Steep\"","project":"Superalgos","id":"350d4a04-700f-4f33-960e-d267e00cec51","savedPayload":{"position":{"x":35252.09102788076,"y":32347.363085169764},"targetPosition":{"x":35663.186483819925,"y":32164.331595785654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bda747f3-188e-4ed0-82bf-b600a9a9c3f5","savedPayload":{"position":{"x":35663.186483819925,"y":32164.331595785654},"targetPosition":{"x":36074.281939759094,"y":31981.300106401544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7ec2e400-1608-44b5-8ae4-ac4f815e76f5","savedPayload":{"position":{"x":36074.281939759094,"y":31981.300106401544},"targetPosition":{"x":36003.88643049099,"y":31536.84035313373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0499e109-2786-4159-b79a-c6c24ebac150","savedPayload":{"position":{"x":36003.88643049099,"y":31536.84035313373},"targetPosition":{"x":35956.95609097892,"y":31240.53385095519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","project":"Superalgos","id":"3ed33d07-ff92-4ecc-81cd-8d9318f5a3a2","savedPayload":{"position":{"x":27191.12296133197,"y":29716.243609176352},"targetPosition":{"x":27377.738829669343,"y":29458.71379958673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"40eeff59-ef6d-456b-9662-2590ba1f90b8","savedPayload":{"position":{"x":27377.738829669343,"y":29458.71379958673},"targetPosition":{"x":27561.920451623086,"y":29202.46758500435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"208d89cb-60a9-461f-a8d2-a9d185ca3c5a","savedPayload":{"position":{"x":27561.920451623086,"y":29202.46758500435},"targetPosition":{"x":27773.480418607145,"y":28913.14498634928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"77ac2dcd-e4a4-4a8f-8c71-d8a30fa7a508","savedPayload":{"position":{"x":35868.78830313505,"y":31361.886400111434},"targetPosition":{"x":35956.95609097892,"y":31240.53385095519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"0c4f8301-8084-4276-a901-5e8137867ea0","savedPayload":{"position":{"x":27086.907194471303,"y":29731.848056892108},"targetPosition":{"x":27136.186896957664,"y":29260.61912076745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c407af9c-fe4a-4d5a-9446-25fc7284ee5c","savedPayload":{"position":{"x":27136.186896957664,"y":29260.61912076745},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"6f84e4e1-1174-4eea-b92a-fdb64cdded61","savedPayload":{"position":{"x":26845.918895478728,"y":29674.537247104832},"targetPosition":{"x":27015.630716665,"y":29232.105434877696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"56b51e70-1cfd-403a-809d-ee19347ca315","savedPayload":{"position":{"x":27015.630716665,"y":29232.105434877696},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"f3b540af-68c9-4345-9826-faf0d9e6e04c","savedPayload":{"position":{"x":26628.62692066829,"y":29555.92262433069},"targetPosition":{"x":26907.1042263863,"y":29172.56413883521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f4cdcc47-9a5d-4999-9c11-8fd1c19a5424","savedPayload":{"position":{"x":26907.1042263863,"y":29172.56413883521},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"02H Up","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Up\"","project":"Superalgos","id":"0f3ff1d1-ff82-42da-a526-aff486cbc0bb","savedPayload":{"position":{"x":26449.32682291438,"y":29385.73679848163},"targetPosition":{"x":26817.501574532795,"y":29087.407089369903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0835043e-d8e1-424e-a530-1def860228eb","savedPayload":{"position":{"x":26817.501574532795,"y":29087.407089369903},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"04H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"54f8e8ae-578f-461d-9ed2-9f352395dd19","savedPayload":{"position":{"x":26319.746148423903,"y":29174.751321281765},"targetPosition":{"x":26752.567672130415,"y":28982.055216679604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"feb6ba85-a9c1-40af-9e6b-00bd4ef1480b","savedPayload":{"position":{"x":26752.567672130415,"y":28982.055216679604},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"01H Med, Steep o Extreme","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.slope === \"Medium\" || chart.at01hs.bollingerSubChannel.slope === \"Steep\" || chart.at01hs.bollingerSubChannel.slope === \"Extreme\"","project":"Superalgos","id":"949100cd-882b-4c11-b010-dbbfd5fff6f5","savedPayload":{"position":{"x":26249.186023148588,"y":28937.760308931167},"targetPosition":{"x":26717.284346085053,"y":28863.46020015207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d3f463af-4e6d-493b-bc8f-e4c66ffc8567","savedPayload":{"position":{"x":26717.284346085053,"y":28863.46020015207},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"b6856a8d-7a24-4a5f-a449-de2d32fe63be","savedPayload":{"position":{"x":26242.81071916784,"y":28690.725431010862},"targetPosition":{"x":26714.317404483096,"y":28740.081788845826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"37a6e660-f28f-4bd2-99ea-3c2f46d2a36c","savedPayload":{"position":{"x":26714.317404483096,"y":28740.081788845826},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Side or Medium","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\" || chart.at02hs.bollingerSubChannel.slope === \"Medium\"","project":"Superalgos","id":"08d54285-d07e-4cec-8f13-a2f268a569a2","savedPayload":{"position":{"x":26300.684954876546,"y":28450.323577901094},"targetPosition":{"x":26743.1035762783,"y":28619.805790008024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e0208159-e2c5-4fa4-8658-714af9cc91bd","savedPayload":{"position":{"x":26743.1035762783,"y":28619.805790008024},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"36e3a366-1402-4953-8283-9a4131d304b2","savedPayload":{"position":{"x":26418.450565413492,"y":28233.020461592205},"targetPosition":{"x":26802.211538255524,"y":28511.384876368975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d4dc8ef4-ba98-4843-9ef5-16a649541da1","savedPayload":{"position":{"x":26802.211538255524,"y":28511.384876368975},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 4: 02H Up && 02H Gentle && 3H Side","code":"chart.at02hs.percentageBandwidth.movingAverage > chart.at24hs.bollingerSubChannel.slope + chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at02hs.bollingerChannel.direction === \"Up\" && chart.at02hs.bollingerSubChannel.slope === \"Gentle\" && chart.at03hs.bollingerSubChannel.slope === \"Side\") {false} else {true}","project":"Superalgos","id":"f24fcdcf-8844-4f08-a9f2-3b56471a6dde","savedPayload":{"position":{"x":26588.694084927174,"y":28053.188560777176},"targetPosition":{"x":26887.11975734347,"y":28421.247395206883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2f6a17d7-7a2e-4aa2-b120-d22cb0898194","savedPayload":{"position":{"x":26887.11975734347,"y":28421.247395206883},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H NOT Steep","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope != \"Steep\"","project":"Superalgos","id":"5e74fc74-6684-4675-ba35-4ce3fee27b2a","savedPayload":{"position":{"x":26799.37424013185,"y":27924.023657047102},"targetPosition":{"x":26992.402595936335,"y":28356.65803435196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cc3b8326-99cd-431c-8b27-c85322f6413f","savedPayload":{"position":{"x":26992.402595936335,"y":28356.65803435196},"targetPosition":{"x":27185.531679057593,"y":28789.21376031469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e5d2fd0e-f202-44e7-bf4c-32d3a203528e","savedPayload":{"position":{"x":27185.531679057593,"y":28789.21376031469},"targetPosition":{"x":27653.698233435276,"y":28714.73585027655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"08776dac-4836-413b-ad45-fdfa781b031c","savedPayload":{"position":{"x":35660.64958880038,"y":31287.46419046726},"targetPosition":{"x":35956.95609097892,"y":31240.53385095519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"5724bd17-a57c-4ec4-9389-170c4255a2d5","savedPayload":{"position":{"x":35956.95609097892,"y":31240.53385095519},"targetPosition":{"x":36133.291666666664,"y":30997.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"My Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"a71b344d-8e76-4a30-9e8f-bcec9a1dde5f","savedPayload":{"position":{"x":27366.05287739506,"y":29283.577378516522},"targetPosition":{"x":27432.11136876051,"y":28973.676098327298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5bc478bd-5433-458e-aae2-fd9926628d7c","savedPayload":{"position":{"x":27432.11136876051,"y":28973.676098327298},"targetPosition":{"x":27517.379780218238,"y":28575.359040835086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.episodeBaseAsset.balance.value","project":"Superalgos","id":"68e2c2b7-d7e0-45e1-8a3e-a8244aad2661","savedPayload":{"position":{"x":26831.744242266795,"y":28798.204323818994},"targetPosition":{"x":27131.66661288605,"y":28700.697023173343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c49d20d7-1771-4c3e-af23-7a28193d3241","savedPayload":{"position":{"x":27131.66661288605,"y":28700.697023173343},"targetPosition":{"x":27517.379780218238,"y":28575.359040835086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"664dc863-9fc1-48ab-bd68-a34297f47da8","savedPayload":{"position":{"x":35747.605120824286,"y":31202.005574776802},"targetPosition":{"x":35847.974711778115,"y":31090.53385095519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Quick Entry","config":"{\n\"percentageOfAlgorithmSize\": 100\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"30d7a26c-2936-49a6-b98d-4438ce18bc90","savedPayload":{"position":{"x":25557.833970556716,"y":27881.17700773019},"targetPosition":{"x":25866.60094761101,"y":27946.600509743002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e991cc1d-9eee-41c5-82e3-4839b8efc76a","savedPayload":{"position":{"x":25866.60094761101,"y":27946.600509743002},"targetPosition":{"x":26175.58920980207,"y":28012.053065601387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"eb5f0809-efce-4847-9222-338f44ff79f8","savedPayload":{"position":{"x":26175.58920980207,"y":28012.053065601387},"targetPosition":{"x":26484.62772761929,"y":28077.4965385252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"be27c682-b993-408f-827b-e407c80bb3ef","savedPayload":{"position":{"x":26484.62772761929,"y":28077.4965385252},"targetPosition":{"x":26793.516800737674,"y":28142.881981467945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"17db69f2-c7ad-47ec-ad5e-1fff5d2d431e","savedPayload":{"position":{"x":26793.516800737674,"y":28142.881981467945},"targetPosition":{"x":27102.60601375657,"y":28208.22785389881},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"87120599-bb06-4e3d-879a-bb234393d074","savedPayload":{"position":{"x":27102.60601375657,"y":28208.22785389881},"targetPosition":{"x":27420.189129001606,"y":28275.134309466885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"7472854b-e09a-414c-b02a-36cf74c318d2","savedPayload":{"position":{"x":35701.25257166805,"y":31059.347097332527},"targetPosition":{"x":35847.974711778115,"y":31090.53385095519},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"bd075559-4607-490b-bcd6-efdc54a5010a","savedPayload":{"position":{"x":35847.974711778115,"y":31090.53385095519},"targetPosition":{"x":36133.291666666664,"y":30997.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"New Manage Stage","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 1.03","project":"Superalgos","id":"7fdf974e-fda6-4d8c-89b9-27d07cf1d1dc","savedPayload":{"position":{"x":26799.265743562526,"y":28309.623815175553},"targetPosition":{"x":27034.386276528814,"y":28097.401331862027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < tradingEngine.current.position.entryTargetRate.value * 0.97","project":"Superalgos","id":"c2a3eae6-8f54-4697-83b5-a4250a61e707","savedPayload":{"position":{"x":26547.086185442487,"y":28892.1580344932},"targetPosition":{"x":26696.624182113846,"y":28843.370582867596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"008bcd0e-5d78-4d73-846c-404ba758c324","savedPayload":{"position":{"x":26696.624182113846,"y":28843.370582867596},"targetPosition":{"x":26867.047142507075,"y":28787.65886324944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"509f7658-04d9-4bfc-9834-a6a40839c6bb","savedPayload":{"position":{"x":26867.047142507075,"y":28787.65886324944},"targetPosition":{"x":27066.405283349402,"y":28722.511566283458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"b6412415-9393-4222-84c0-3010a793e7b3","savedPayload":{"position":{"x":26733.142549575216,"y":27998.621659097662},"targetPosition":{"x":27034.386276528814,"y":28097.401331862027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"1b7b1c18-8632-40da-91c1-ca78dc524027","savedPayload":{"position":{"x":27034.386276528814,"y":28097.401331862027},"targetPosition":{"x":27419.951996781874,"y":28015.86203334524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 1.02 < tradingEngine.current.position.stopLoss.value) {chart.at01hs.bollingerBand.movingAverage * 1.02} else {tradingEngine.current.position.stopLoss.value}","project":"Superalgos","id":"a32cdd1e-19ce-4bcc-b7c9-52a9e9466dbf","savedPayload":{"position":{"x":26414.76119920261,"y":28228.780429674436},"targetPosition":{"x":26724.658907174922,"y":28163.136235075326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"291bbfda-c1d5-49f6-966b-3f7704ffbda8","savedPayload":{"position":{"x":26724.658907174922,"y":28163.136235075326},"targetPosition":{"x":27034.386276528814,"y":28097.401331862027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bbb0aab4-c6e3-47f8-b737-9e6fcafcfba1","savedPayload":{"position":{"x":35701.25257166805,"y":30936.31040795289},"targetPosition":{"x":35847.974711778115,"y":30905.123654330226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 0.95","project":"Superalgos","id":"f65bed6b-e9c5-48aa-ae59-a8beb0c8fdcc","savedPayload":{"position":{"x":26952.704147472698,"y":27327.068946922795},"targetPosition":{"x":27254.368114363282,"y":27423.4387791013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"1H EMA7 < entryTargetRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value","project":"Superalgos","id":"a9133dde-603b-4e92-9278-fd6e3e8e8889","savedPayload":{"position":{"x":26586.412508962363,"y":27681.68879929502},"targetPosition":{"x":26741.1300197691,"y":27714.100794910577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5d40017f-c899-4a2e-9425-fef134a4f4ca","savedPayload":{"position":{"x":26741.1300197691,"y":27714.100794910577},"targetPosition":{"x":26921.561745283954,"y":27760.13052179364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.current.position.positionCounters.periods.value > 2","project":"Superalgos","id":"b74b392c-ddfc-4021-9dfe-c3d385d4dba6","savedPayload":{"position":{"x":26806.5797480703,"y":27436.524339736898},"targetPosition":{"x":26855.72255347063,"y":27586.848473351987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"052730c4-33a8-4ee9-80c6-3fb61118d2bf","savedPayload":{"position":{"x":26855.72255347063,"y":27586.848473351987},"targetPosition":{"x":26921.561745283954,"y":27760.13052179364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d75acbba-54eb-4a90-b76e-8649c08cbec0","savedPayload":{"position":{"x":26921.561745283954,"y":27760.13052179364},"targetPosition":{"x":27077.345235898825,"y":27899.36180329896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"c2f90327-7f61-4d94-84f9-fcd82b5aa44d","savedPayload":{"position":{"x":27189.66866618138,"y":27113.5490051409},"targetPosition":{"x":27254.368114363282,"y":27423.4387791013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"48071c89-de62-467f-a472-10557ba6277f","savedPayload":{"position":{"x":27254.368114363282,"y":27423.4387791013},"targetPosition":{"x":27518.062020137797,"y":27715.896282526744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Manage: 3% Below ema7","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.97 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.97} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"34d1cb14-5351-42d4-8827-b2b0aa013b99","savedPayload":{"position":{"x":26807.09674076735,"y":27400.603304659817},"targetPosition":{"x":27042.388961217304,"y":27188.465791753944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"6f6150fc-3a6a-4686-a350-ff141bc83623","savedPayload":{"position":{"x":14784.053958482124,"y":25069.067305926896},"targetPosition":{"x":14637.813819067615,"y":24757.31718031864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3ef9a345-0c46-428c-94f3-80decc872e23","savedPayload":{"position":{"x":14637.813819067615,"y":24757.31718031864},"targetPosition":{"x":14495.66957574337,"y":24438.455606293224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d34694ed-b6c6-4fca-ae8d-95e3f30a4888","savedPayload":{"position":{"x":14495.66957574337,"y":24438.455606293224},"targetPosition":{"x":14352.8676636628,"y":24115.28786463818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0be8dfdf-f4ff-4616-b788-c04b3c64eb1b","savedPayload":{"position":{"x":26901.71990179922,"y":27024.15277115845},"targetPosition":{"x":27042.388961217304,"y":27188.465791753944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"45b5b7a2-8cc1-47f8-99c5-8042c7925a89","savedPayload":{"position":{"x":27658.025002805498,"y":26426.085377108873},"targetPosition":{"x":27723.56989887507,"y":26735.456650919034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9bb86da8-d8fa-4b5c-b6a5-952327938371","savedPayload":{"position":{"x":27723.56989887507,"y":26735.456650919034},"targetPosition":{"x":27789.15471152965,"y":27045.25274928249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"05f551c5-32a7-4986-8753-5ac0bd0d4acc","savedPayload":{"position":{"x":27984.616542289543,"y":26443.133902054753},"targetPosition":{"x":27886.95621955133,"y":26743.96066903473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9ba9b517-a809-4b01-848f-5bb31ab1f92c","savedPayload":{"position":{"x":27886.95621955133,"y":26743.96066903473},"targetPosition":{"x":27789.15471152965,"y":27045.25274928249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value * 0.99","project":"Superalgos","id":"c7001aa3-f176-40e4-a6d7-2744966363cd","savedPayload":{"position":{"x":28259.227163223004,"y":26621.283089584525},"targetPosition":{"x":28024.291391877065,"y":26833.10787628452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"094200d6-3761-4dd0-8073-083d14bbeb71","savedPayload":{"position":{"x":28024.291391877065,"y":26833.10787628452},"targetPosition":{"x":27789.15471152965,"y":27045.25274928249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"aaee1ab9-d92b-4f01-afc1-654347d9511a","savedPayload":{"position":{"x":28407.924367825308,"y":26912.750504775722},"targetPosition":{"x":28098.696790438462,"y":26978.890307231173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9143d8e3-b435-49f2-907e-a874e794d32a","savedPayload":{"position":{"x":28098.696790438462,"y":26978.890307231173},"targetPosition":{"x":27789.15471152965,"y":27045.25274928249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"9e27b341-5396-4a81-b483-13c9e497f3c4","savedPayload":{"position":{"x":28390.80364005569,"y":27238.838363839088},"targetPosition":{"x":28090.14902776395,"y":27142.022560978214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"77518efa-2184-4602-8f5a-f3e106c6845c","savedPayload":{"position":{"x":28090.14902776395,"y":27142.022560978214},"targetPosition":{"x":27789.15471152965,"y":27045.25274928249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9d8fbd63-29f2-41f9-85f1-92643ff12c6d","savedPayload":{"position":{"x":27789.15471152965,"y":27045.25274928249},"targetPosition":{"x":27540.59184881964,"y":27269.737387375048},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"a92424e5-ab90-424c-85cc-b8697bcb6009","savedPayload":{"position":{"x":27277.88526191553,"y":26976.52819796292},"targetPosition":{"x":27042.388961217304,"y":27188.465791753944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"8aff2c3b-ecf9-4df8-84ea-ffd6ba9c9612"}}}],"announcements":[],"id":"58effb7e-0927-4c47-8745-58895dead2ea","savedPayload":{"position":{"x":27042.388961217304,"y":27188.465791753944},"targetPosition":{"x":27254.196720956894,"y":27423.250609095536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"49b3a850-8a9e-41c7-8b5f-e5f3a21ce83d","savedPayload":{"position":{"x":26497.508319854816,"y":26919.743468851586},"targetPosition":{"x":26813.41806607467,"y":26936.396016420636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"c6bc7845-b742-4bd0-a28e-f76bafd9ae16","savedPayload":{"position":{"x":31453.226323361007,"y":25215.258417524892},"targetPosition":{"x":31462.162939478927,"y":25569.916512643897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0dea846d-7054-4651-9c26-e34941dd4128","savedPayload":{"position":{"x":31462.162939478927,"y":25569.916512643897},"targetPosition":{"x":31471.265604665605,"y":25924.673587525336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"9ef393ca-8c24-4089-a87e-8ce151f2b828","savedPayload":{"position":{"x":31725.70257649751,"y":25262.06062721915},"targetPosition":{"x":31598.5193552653,"y":25593.24491133385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6be2982e-d239-488c-aa26-68e9b2a7af09","savedPayload":{"position":{"x":31598.5193552653,"y":25593.24491133385},"targetPosition":{"x":31471.265604665605,"y":25924.673587525336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"69018aba-59d9-4f07-a2d5-d93c75981c93","savedPayload":{"position":{"x":31959.976711177063,"y":25409.851846470818},"targetPosition":{"x":31715.767373381706,"y":25667.1500898203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6ce688b0-0234-4ad1-8afa-540325306d5c","savedPayload":{"position":{"x":31715.767373381706,"y":25667.1500898203},"targetPosition":{"x":31471.265604665605,"y":25924.673587525336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"b882f3e8-28e5-49f8-90a1-c27ac4723c90","savedPayload":{"position":{"x":32119.863560570913,"y":25635.84017379446},"targetPosition":{"x":31795.724431882918,"y":25780.13258139456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d21fc9d4-bec7-4df6-9083-203e877f30de","savedPayload":{"position":{"x":31795.724431882918,"y":25780.13258139456},"targetPosition":{"x":31471.265604665605,"y":25924.673587525336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"2d8c394e-6772-4d45-a052-a5c04202637c","savedPayload":{"position":{"x":32180.94951857139,"y":25905.955517029506},"targetPosition":{"x":31826.22036398195,"y":25915.273245835204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"577a9703-74fb-4ea1-9e6d-1a6083c6ac29","savedPayload":{"position":{"x":31826.22036398195,"y":25915.273245835204},"targetPosition":{"x":31471.265604665605,"y":25924.673587525336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14 > chart.at01hs.base7EMA.previous.previous.ema21 - chart.at01hs.base7EMA.previous.previous.ema14","project":"Superalgos","id":"af2fed7e-8530-49cb-8d8c-818c0dfd3865","savedPayload":{"position":{"x":32134.06519033824,"y":26178.34746016506},"targetPosition":{"x":31802.77317185179,"y":26051.43779053491},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8b902eb1-aaaf-41e5-abab-95f7673e1ff5","savedPayload":{"position":{"x":31802.77317185179,"y":26051.43779053491},"targetPosition":{"x":31471.265604665605,"y":25924.673587525336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2 previous ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7 > chart.at01hs.base7EMA.previous.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.previous.ema7","project":"Superalgos","id":"2a5efff2-2a04-4585-813e-e3ac2ffb8b95","savedPayload":{"position":{"x":31986.51303887656,"y":26412.48674522622},"targetPosition":{"x":31728.883964673718,"y":26168.510294319094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"081cec88-c2c1-49f8-88c1-760fc50e7f91","savedPayload":{"position":{"x":31728.883964673718,"y":26168.510294319094},"targetPosition":{"x":31471.265604665605,"y":25924.673587525336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7abbde01-e871-4b28-973e-51ca5f3f1c4d","savedPayload":{"position":{"x":31471.265604665605,"y":25924.673587525336},"targetPosition":{"x":31136.857003796606,"y":26073.74504896134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"276723b8-0d32-49d8-b9b3-bd29368160f7","savedPayload":{"position":{"x":26681.250386294912,"y":26760.768118645},"targetPosition":{"x":26813.41806607467,"y":26936.396016420636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"8aff2c3b-ecf9-4df8-84ea-ffd6ba9c9612"}}},{"type":"Move To Phase Event","name":"Cancel Close","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"16b5e57d-57f9-401a-9134-4dd112797d48","savedPayload":{"position":{"x":31900.431671067643,"y":26457.001353980566},"targetPosition":{"x":31576.330480092503,"y":26601.042576950604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f2bb1dbc-702a-413a-9421-9ac5309fe6f0","savedPayload":{"position":{"x":31576.330480092503,"y":26601.042576950604},"targetPosition":{"x":31252.153265805107,"y":26745.17244006823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"f73c271b-afa2-45ee-91d4-6aee3b3a8be9","savedPayload":{"position":{"x":31914.623577701415,"y":26999.186410527094},"targetPosition":{"x":31583.455308704193,"y":26872.189703330594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"feaca6ce-0573-401a-909a-4e25687ce708","savedPayload":{"position":{"x":31583.455308704193,"y":26872.189703330594},"targetPosition":{"x":31252.153265805107,"y":26745.17244006823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2 prev.ema7 div 2 prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7 > chart.at01hs.base7EMA.previous.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.previous.ema7","project":"Superalgos","id":"a9c93bde-d56d-42e9-a447-b29a02885149","savedPayload":{"position":{"x":31541.18395690678,"y":27392.918610118708},"targetPosition":{"x":31396.647076390393,"y":27069.072814541374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"72e2d105-feba-47a0-8eaf-6c83296a3863","savedPayload":{"position":{"x":31396.647076390393,"y":27069.072814541374},"targetPosition":{"x":31252.153265805107,"y":26745.17244006823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ab94fcaf-55b6-4be2-a44a-b399dda60644","savedPayload":{"position":{"x":31252.153265805107,"y":26745.17244006823},"targetPosition":{"x":30910.1383941139,"y":26614.037899048395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"07ca2734-a819-49f7-99f7-f19f58e5ffba","savedPayload":{"position":{"x":26830.59932597279,"y":26619.397312943503},"targetPosition":{"x":26813.41806607467,"y":26936.396016420636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"58effb7e-0927-4c47-8745-58895dead2ea"}}}],"announcements":[],"id":"e1d12230-902a-46bf-bb48-1fafbd162e1e","savedPayload":{"position":{"x":26813.41806607467,"y":26936.396016420636},"targetPosition":{"x":27042.388961217304,"y":27188.465791753944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.8 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.8} else \n{tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"b53c2ea8-9341-416a-bef3-0b7fb86530d5","savedPayload":{"position":{"x":26440.394592951645,"y":27097.010344635586},"targetPosition":{"x":26872.911548913045,"y":27006.19736763503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Cancel Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"de39a349-8739-4e13-ba9d-91acedf7c835","savedPayload":{"position":{"x":18341.530042840343,"y":27297.78553821458},"targetPosition":{"x":18175.13295325986,"y":26923.839282848297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b8a44bb5-4965-4d76-8a55-6f0274d84b0c","savedPayload":{"position":{"x":18175.13295325986,"y":26923.839282848297},"targetPosition":{"x":18008.631010049372,"y":26549.68354602711},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"4529e123-22d2-40a3-a751-9069e69fa624","savedPayload":{"position":{"x":17527.731523448325,"y":27212.25039516188},"targetPosition":{"x":17768.151951980406,"y":26881.045725077645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c94daca3-f53c-42b6-970c-586d9b605b04","savedPayload":{"position":{"x":17768.151951980406,"y":26881.045725077645},"targetPosition":{"x":18008.631010049372,"y":26549.68354602711},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0a283745-7a51-45ab-b781-538c6e1f6a8a","savedPayload":{"position":{"x":18008.631010049372,"y":26549.68354602711},"targetPosition":{"x":18051.17649094387,"y":26142.15158689679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"be4359e1-bbfa-404c-b1ab-e073d8b4b173","savedPayload":{"position":{"x":26783.493706164132,"y":26582.953049770163},"targetPosition":{"x":26872.911548913045,"y":27006.19736763503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"58effb7e-0927-4c47-8745-58895dead2ea"}}}],"announcements":[],"id":"8aff2c3b-ecf9-4df8-84ea-ffd6ba9c9612","savedPayload":{"position":{"x":26582.153893650237,"y":26685.615767170835},"targetPosition":{"x":26813.41806607467,"y":26936.396016420636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c97bbced-498a-49dd-847a-a52170294ea9","savedPayload":{"position":{"x":35747.605120824286,"y":30793.651930508615},"targetPosition":{"x":35847.974711778115,"y":30905.123654330226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"f9453ecf-918d-4816-a43e-216a4af33d75","savedPayload":{"position":{"x":35847.974711778115,"y":30905.123654330226},"targetPosition":{"x":36133.291666666664,"y":30997.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"1e5d1117-4259-439f-aa97-5ad6987f5b35","savedPayload":{"position":{"x":26951.535516064185,"y":27579.53959425909},"targetPosition":{"x":27265.203493407662,"y":27546.9080959875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"555c2937-bb8c-4e4f-8efb-1f74b41add4d","savedPayload":{"position":{"x":27265.203493407662,"y":27546.9080959875},"targetPosition":{"x":27670.74288855006,"y":27505.099256602218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value","project":"Superalgos","id":"d227d443-eed5-4c57-adbf-65a8d31b9c3f","savedPayload":{"position":{"x":27247.220536923047,"y":26921.708114943343},"targetPosition":{"x":27432.517662971164,"y":27177.133609266668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94937102-d124-4024-af99-1577576890ac","savedPayload":{"position":{"x":27432.517662971164,"y":27177.133609266668},"targetPosition":{"x":27670.74288855006,"y":27505.099256602218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"81cd8c47-9c13-4bdd-ab07-9c1348056ad3","savedPayload":{"position":{"x":35819.92427233253,"y":30694.113157868855},"targetPosition":{"x":35956.95609097892,"y":30755.123654330226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Quick Exit","config":"{\n\"percentageOfAlgorithmSize\": 100,\n\"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"ca77ac04-3397-4da0-9908-21dd15e0d527","savedPayload":{"position":{"x":28753.84924955325,"y":27883.26390528551},"targetPosition":{"x":28713.27346400518,"y":27691.084373412057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1b473e40-9a22-4299-943b-19fedb465b85","savedPayload":{"position":{"x":28713.27346400518,"y":27691.084373412057},"targetPosition":{"x":28672.59213286936,"y":27498.230894377055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"234da5ed-12c9-44e8-9e76-8e8e148ef107","savedPayload":{"position":{"x":28672.59213286936,"y":27498.230894377055},"targetPosition":{"x":28623.06371187106,"y":27263.696353856452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"c5524985-3594-49e6-8aa6-f9c8d25e9b10","savedPayload":{"position":{"x":27818.15818264909,"y":26287.975093254136},"targetPosition":{"x":27851.07555537851,"y":26602.180464650388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"02335883-dc89-4b10-ada2-1d4a849161b8","savedPayload":{"position":{"x":27851.07555537851,"y":26602.180464650388},"targetPosition":{"x":27883.998432397704,"y":26916.152932168472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"9da04e66-35a4-4332-96db-d2bfffd18118","savedPayload":{"position":{"x":27883.998432397704,"y":26916.152932168472},"targetPosition":{"x":27926.32435853008,"y":27319.46788953682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"19cddff0-8db1-42fe-9969-d8262cc85c25","savedPayload":{"position":{"x":35941.27682148878,"y":30605.945370024983},"targetPosition":{"x":35956.95609097892,"y":30755.123654330226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"e5956042-1714-4ea3-8e87-52b3d0a2d2b8","savedPayload":{"position":{"x":35956.95609097892,"y":30755.123654330226},"targetPosition":{"x":36133.291666666664,"y":30997.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f1ca0dbb-65e8-4c60-84f0-89596e22e9be","savedPayload":{"position":{"x":33915.291666666664,"y":30999.82875264271},"targetPosition":{"x":34215.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading Strategy","name":"S7 - 3H Down","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"b7ef7546-2729-499d-88db-7c958392fb0e","savedPayload":{"position":{"x":35907.697720839125,"y":31815.459797956803},"targetPosition":{"x":35739.9398497979,"y":31566.74852619029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"40201dbd-8fbe-41aa-acd3-c0cea3fff9de","savedPayload":{"position":{"x":35739.9398497979,"y":31566.74852619029},"targetPosition":{"x":35572.18197875667,"y":31318.03725442378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"6dc11e45-63d6-4246-9a9a-294a45931b14","savedPayload":{"position":{"x":35717.33511611647,"y":31900.214690189376},"targetPosition":{"x":35644.75854743657,"y":31609.125972306578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2dbb8f61-68b4-4835-a6f7-6d7c0c2248ee","savedPayload":{"position":{"x":35644.75854743657,"y":31609.125972306578},"targetPosition":{"x":35572.18197875667,"y":31318.03725442378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"391ae861-6932-4481-bc4f-15a284dafe80","savedPayload":{"position":{"x":35509.464900796076,"y":31914.750391644742},"targetPosition":{"x":35540.82343977637,"y":31616.39382303426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"52613d30-4103-4272-b871-e3785881dcd8","savedPayload":{"position":{"x":35540.82343977637,"y":31616.39382303426},"targetPosition":{"x":35572.18197875667,"y":31318.03725442378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"7bf0cb68-72c5-4df6-891e-ee3b08bdc439","savedPayload":{"position":{"x":35309.15929068323,"y":31857.31368220328},"targetPosition":{"x":35440.67063471995,"y":31587.67546831353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5bab5664-c7aa-4e60-aecd-30db721958b0","savedPayload":{"position":{"x":35440.67063471995,"y":31587.67546831353},"targetPosition":{"x":35572.18197875667,"y":31318.03725442378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"3d771526-7fc9-4c67-b4b4-50e2df038870","savedPayload":{"position":{"x":35140.57809855348,"y":31734.83227669918},"targetPosition":{"x":35356.38003865507,"y":31526.43476556148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1298f042-2f23-4fc7-8359-5bdd3f7e7da1","savedPayload":{"position":{"x":35356.38003865507,"y":31526.43476556148},"targetPosition":{"x":35572.18197875667,"y":31318.03725442378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Side or Gentle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerSubChannel.slope === \"Side\" || chart.at06hs.bollingerSubChannel.slope === \"Gentle\"","project":"Superalgos","id":"9e520195-93e0-4d66-b312-eb2c90921b3c","savedPayload":{"position":{"x":35024.0547041711,"y":31562.079240269257},"targetPosition":{"x":35298.11834146389,"y":31440.05824734652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"16707f87-40dc-44ae-a7f8-2df9dc07d53c","savedPayload":{"position":{"x":35298.11834146389,"y":31440.05824734652},"targetPosition":{"x":35572.18197875667,"y":31318.03725442378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Side","code":"chart.at02hs.bollingerSubChannel.slope > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\"","project":"Superalgos","id":"8143bcc8-af0f-45ef-bbde-1f67fa30b819","savedPayload":{"position":{"x":34973.643548600776,"y":31359.891138670257},"targetPosition":{"x":35272.91276367872,"y":31338.96419654702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0f2efdf7-69dc-4d15-9bf4-6f714894d100","savedPayload":{"position":{"x":35272.91276367872,"y":31338.96419654702},"targetPosition":{"x":35572.18197875667,"y":31318.03725442378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"10f38b80-2f33-4ad0-b849-019b27b36921","savedPayload":{"position":{"x":34995.424961193676,"y":31152.654840933577},"targetPosition":{"x":35283.80346997517,"y":31235.34604767868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"080177f0-9708-4e76-b021-f4857ee42930","savedPayload":{"position":{"x":35283.80346997517,"y":31235.34604767868},"targetPosition":{"x":35572.18197875667,"y":31318.03725442378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5dd3ebf8-bbcd-4978-8d28-0f4ecfe80ba4","savedPayload":{"position":{"x":35572.18197875667,"y":31318.03725442378},"targetPosition":{"x":35748.517554444414,"y":31075.332156111297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"b4791836-6c85-4279-b75c-ba308154012c","savedPayload":{"position":{"x":35748.517554444414,"y":31075.332156111297},"targetPosition":{"x":35924.85313013216,"y":30832.627057798814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","project":"Superalgos","id":"81a9ee22-bb7d-4a2b-b3ca-7df88b5cfcd1","savedPayload":{"position":{"x":29263.191030219037,"y":25950.325479768275},"targetPosition":{"x":29264.76406063867,"y":26269.61090777797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78d25152-3354-4e6c-8118-e621e2eab4e0","savedPayload":{"position":{"x":29264.76406063867,"y":26269.61090777797},"targetPosition":{"x":29277.049263218465,"y":26605.631084912486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1067e774-8e02-44c0-a86a-43c62a2e1a69","savedPayload":{"position":{"x":29277.049263218465,"y":26605.631084912486},"targetPosition":{"x":29277.335721066844,"y":26964.71444993079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"26a5deff-364b-4f52-b2f2-24eb39f8a9aa","savedPayload":{"position":{"x":35776.699879042884,"y":30856.092227554847},"targetPosition":{"x":35924.85313013216,"y":30832.627057798814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"7ca3641e-2701-4ae6-aebf-419045fa3ef7","savedPayload":{"position":{"x":34942.020389974154,"y":30815.471648505776},"targetPosition":{"x":35190.73166174067,"y":30647.713777464553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"50506cba-6ce7-47ee-a28f-50cae0a62f61","savedPayload":{"position":{"x":35190.73166174067,"y":30647.713777464553},"targetPosition":{"x":35439.44293350718,"y":30479.95590642333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"b0bf87ab-9049-4c24-918b-b7bc805db2a8","savedPayload":{"position":{"x":34857.26549774159,"y":30625.109043783126},"targetPosition":{"x":35148.354215624386,"y":30552.532475103228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"56da2b2c-74c3-4328-b75c-4990aef44ca0","savedPayload":{"position":{"x":35148.354215624386,"y":30552.532475103228},"targetPosition":{"x":35439.44293350718,"y":30479.95590642333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"0ed3b727-9493-4064-8404-d2d48e9213ad","savedPayload":{"position":{"x":34842.729796286214,"y":30417.238828462734},"targetPosition":{"x":35141.0863648967,"y":30448.59736744303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f6f8fad9-0588-4d7c-81a8-5738f0d6c7e6","savedPayload":{"position":{"x":35141.0863648967,"y":30448.59736744303},"targetPosition":{"x":35439.44293350718,"y":30479.95590642333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"5fe7a35e-a56c-4ad4-854d-5b13ca036669","savedPayload":{"position":{"x":34900.16650572768,"y":30216.93321834988},"targetPosition":{"x":35169.80471961743,"y":30348.444562386605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1b64fa95-a27a-4e68-9ae1-fa8358e23f41","savedPayload":{"position":{"x":35169.80471961743,"y":30348.444562386605},"targetPosition":{"x":35439.44293350718,"y":30479.95590642333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"23e2569a-2867-4ebe-aa2b-21254ab0c096","savedPayload":{"position":{"x":35022.64791123178,"y":30048.35202622014},"targetPosition":{"x":35231.04542236948,"y":30264.153966321734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f6a6ace-3508-4a78-953a-a9944f9b9077","savedPayload":{"position":{"x":35231.04542236948,"y":30264.153966321734},"targetPosition":{"x":35439.44293350718,"y":30479.95590642333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Side or Gentle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerSubChannel.slope === \"Side\" || chart.at06hs.bollingerSubChannel.slope === \"Gentle\"","project":"Superalgos","id":"565a511b-5264-4cfd-ad94-c8b316f5e19c","savedPayload":{"position":{"x":35195.4009476617,"y":29931.82863183777},"targetPosition":{"x":35317.42194058444,"y":30205.89226913055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5e3a86fa-9e96-47ef-b87b-3324c9edf8a3","savedPayload":{"position":{"x":35317.42194058444,"y":30205.89226913055},"targetPosition":{"x":35439.44293350718,"y":30479.95590642333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2H Side","code":"chart.at02hs.bollingerSubChannel.slope > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\"","project":"Superalgos","id":"ef7ba943-87cb-4149-8ab2-a562a34fa524","savedPayload":{"position":{"x":35397.58904926071,"y":29881.417476267434},"targetPosition":{"x":35418.515991383945,"y":30180.68669134538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e624d8a7-586a-4198-a528-b6ee474245dd","savedPayload":{"position":{"x":35418.515991383945,"y":30180.68669134538},"targetPosition":{"x":35439.44293350718,"y":30479.95590642333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"9992327b-1059-4396-8766-514b6384a81b","savedPayload":{"position":{"x":35604.82534699738,"y":29903.19888886034},"targetPosition":{"x":35522.13414025228,"y":30191.577397641835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0701df03-b97b-4d03-89a7-a9fb764d1d21","savedPayload":{"position":{"x":35522.13414025228,"y":30191.577397641835},"targetPosition":{"x":35439.44293350718,"y":30479.95590642333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b72964a4-f423-4930-a40d-ced67854d28e","savedPayload":{"position":{"x":35439.44293350718,"y":30479.95590642333},"targetPosition":{"x":35682.14803181967,"y":30656.29148211107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"51e2b55b-66ca-45c9-9cfd-ec82ac5ce3d6","savedPayload":{"position":{"x":35682.14803181967,"y":30656.29148211107},"targetPosition":{"x":35924.85313013216,"y":30832.627057798814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"adc2c73c-702f-46ce-90ad-dbbc7f75ad3d","savedPayload":{"position":{"x":35924.85313013216,"y":30832.627057798814},"targetPosition":{"x":36221.1596323107,"y":30785.696718286745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"My Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"61dd007d-fb60-4d69-9873-e38ecc1c542b","savedPayload":{"position":{"x":26954.4612342476,"y":27797.465945206037},"targetPosition":{"x":27232.249322005937,"y":27617.145957993904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2d95e2e3-ccf3-42a4-a5be-38a235d1256b","savedPayload":{"position":{"x":27232.249322005937,"y":27617.145957993904},"targetPosition":{"x":27575.645466755315,"y":27395.124940815433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.episodeBaseAsset.balance.value","project":"Superalgos","id":"21ee0d72-fc9c-40b9-93fc-3dee8beedc3a","savedPayload":{"position":{"x":26917.385536592123,"y":27059.733301825763},"targetPosition":{"x":27212.229030840383,"y":27209.954665631943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c55293c-d34d-4093-b1a2-81e64345c73b","savedPayload":{"position":{"x":27212.229030840383,"y":27209.954665631943},"targetPosition":{"x":27575.645466755315,"y":27395.124940815433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"08a3f81a-a5a3-4a15-ad14-d3d09724eba9","savedPayload":{"position":{"x":35804.063244841,"y":30657.349961801323},"targetPosition":{"x":35953.85767505419,"y":30649.49956836488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Quick Entry","config":"{\n\"percentageOfAlgorithmSize\": 100\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"76aeb4a5-1c22-4021-b61f-d1660b598a9a","savedPayload":{"position":{"x":31176.403846796253,"y":25336.269965876054},"targetPosition":{"x":30810.972409175498,"y":25476.467115831903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"13c54ad9-7dac-405f-b5fe-44ba813378d5","savedPayload":{"position":{"x":30810.972409175498,"y":25476.467115831903},"targetPosition":{"x":30445.13293870145,"y":25616.831261436026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"34587555-32f1-4241-b607-476f22c689a6","savedPayload":{"position":{"x":30445.13293870145,"y":25616.831261436026},"targetPosition":{"x":30079.319849588763,"y":25757.23287385561},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"a658e05d-abc9-4c5b-ad1b-0897f752cae0","savedPayload":{"position":{"x":30079.319849588763,"y":25757.23287385561},"targetPosition":{"x":29708.54861784794,"y":25899.634261963685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"simulatedExchangeEvents":{"type":"Simulated Exchange Events","name":"New Simulated Exchange Events","project":"Superalgos","simulatedPartialFill":{"type":"Simulated Partial Fill","name":"New Simulated Partial Fill","config":"{ \n\"fillProbability\": 1\n}","project":"Superalgos","id":"44d1a29f-42db-4582-93eb-057c5efab1f2","savedPayload":{"position":{"x":30463.036340071973,"y":26071.176046577108},"targetPosition":{"x":30071.239020751127,"y":26061.01028968422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"simulatedActualRate":{"type":"Simulated Actual Rate","name":"New Simulated Actual Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"91ca08cc-ec90-4256-bab1-f6a9b08fc236","savedPayload":{"position":{"x":30787.02617391212,"y":26379.476491639078},"targetPosition":{"x":30429.31543763473,"y":26220.325772993652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7de9fa13-47c9-475e-9ae1-02c4c4066ab8","savedPayload":{"position":{"x":30429.31543763473,"y":26220.325772993652},"targetPosition":{"x":30071.239020751127,"y":26061.01028968422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"simulatedFeesPaid":{"type":"Simulated Fees Paid","name":"New Simulated Fees Paid","config":"{ \n\n}","project":"Superalgos","id":"9ba0d597-9964-4808-ba4f-c2b9f3ee2fa0","savedPayload":{"position":{"x":30341.01921824852,"y":26345.197047767208},"targetPosition":{"x":30071.239020751127,"y":26061.01028968422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5079aedd-ae1e-43e7-a7bf-ffda4fc60ac9","savedPayload":{"position":{"x":30071.239020751127,"y":26061.01028968422},"targetPosition":{"x":29708.54861784794,"y":25899.634261963685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4678c054-97e1-45b2-be5c-1d4015e291a2","savedPayload":{"position":{"x":27363.405615274343,"y":26544.46692868584},"targetPosition":{"x":27544.591636298504,"y":26822.279081712833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"819609ef-c126-4b0b-a4c2-9daeb4d52216","savedPayload":{"position":{"x":27544.591636298504,"y":26822.279081712833},"targetPosition":{"x":27726.051900550214,"y":27101.386613620416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"720b7cb2-8cc4-406a-97cd-d800c913643f","savedPayload":{"position":{"x":35872.161819801935,"y":30523.698983173068},"targetPosition":{"x":35953.85767505419,"y":30649.49956836488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"2b443716-eb30-43b5-9457-7263233daaed","savedPayload":{"position":{"x":35953.85767505419,"y":30649.49956836488},"targetPosition":{"x":36221.1596323107,"y":30785.696718286745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"New Manage Stage","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 1.03","project":"Superalgos","id":"d0a0de89-d79f-4fa5-885c-a680ff10cfeb","savedPayload":{"position":{"x":27250.156837576338,"y":26675.028202881753},"targetPosition":{"x":27581.018312648295,"y":26691.19051769981},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < tradingEngine.current.position.entryTargetRate.value * 0.97","project":"Superalgos","id":"cbda2339-230a-4211-a1c9-29a32fee1181","savedPayload":{"position":{"x":26633.57534691976,"y":26919.098580224883},"targetPosition":{"x":26782.832467801523,"y":26994.935145367635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bf0650d2-b7a2-4f05-94e3-80ccda90ffc5","savedPayload":{"position":{"x":26782.832467801523,"y":26994.935145367635},"targetPosition":{"x":26940.19858923711,"y":27074.1354035248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"df3531c9-6540-4671-be17-4ce0cfda2120","savedPayload":{"position":{"x":26940.19858923711,"y":27074.1354035248},"targetPosition":{"x":27132.31933827815,"y":27171.020738102787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"6de908df-521a-434c-b9e4-e81e0c84181b","savedPayload":{"position":{"x":27431.436315350355,"y":26395.57768259196},"targetPosition":{"x":27581.018312648295,"y":26691.19051769981},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"68255a1b-6136-4d16-b89a-40d0bca2587b","savedPayload":{"position":{"x":27581.018312648295,"y":26691.19051769981},"targetPosition":{"x":27917.784749408285,"y":26909.751362006406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 1.02 < tradingEngine.current.position.stopLoss.value) {chart.at01hs.bollingerBand.movingAverage * 1.02} else {tradingEngine.current.position.stopLoss.value}","project":"Superalgos","id":"cf80ef88-969d-40f5-bc36-ccee6f8518bf","savedPayload":{"position":{"x":27025.878195669367,"y":26331.123736315414},"targetPosition":{"x":27303.228972754463,"y":26511.09544029578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"6fac6741-1d2a-4364-ba55-6d0082d4e33b","savedPayload":{"position":{"x":27303.228972754463,"y":26511.09544029578},"targetPosition":{"x":27581.018312648295,"y":26691.19051769981},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"995255a7-571c-4219-bb24-a1dda890ba60","savedPayload":{"position":{"x":35959.161897197024,"y":30436.69890577798},"targetPosition":{"x":36084.96248238884,"y":30518.394761030235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 0.95","project":"Superalgos","id":"728b5268-b977-412e-a7f9-fdc5eeca238a","savedPayload":{"position":{"x":27954.916477446754,"y":26179.157131716216},"targetPosition":{"x":28232.60297818197,"y":26358.93025412847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"1H EMA7 < entryTargetRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value","project":"Superalgos","id":"f035c3b1-3b9f-4d14-89a4-7f483fa0ea49","savedPayload":{"position":{"x":27223.260064960938,"y":26275.05746760463},"targetPosition":{"x":27313.961774374322,"y":26414.445652541348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b6f406c-022e-46b7-aabd-a99398140b10","savedPayload":{"position":{"x":27313.961774374322,"y":26414.445652541348},"targetPosition":{"x":27410.240062845653,"y":26572.20960652378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.current.position.positionCounters.periods.value > 2","project":"Superalgos","id":"4de45b46-85e5-4755-9caa-360c50ca061d","savedPayload":{"position":{"x":27562.61527506408,"y":26256.803866124683},"targetPosition":{"x":27488.13907856434,"y":26404.827575720745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5a408907-8527-49d0-9172-60c026feb553","savedPayload":{"position":{"x":27488.13907856434,"y":26404.827575720745},"targetPosition":{"x":27410.240062845653,"y":26572.20960652378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"86be8810-719f-4235-b92f-1e3d9a100391","savedPayload":{"position":{"x":27410.240062845653,"y":26572.20960652378},"targetPosition":{"x":27422.10962772474,"y":26786.869432305393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"1073d54b-c72a-4a7f-9353-1060186d29c2","savedPayload":{"position":{"x":28527.496565370766,"y":26209.121599895494},"targetPosition":{"x":28232.60297818197,"y":26358.93025412847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"91f7e76b-6171-4c75-b70c-bfc33543b9c3","savedPayload":{"position":{"x":28232.60297818197,"y":26358.93025412847},"targetPosition":{"x":28211.941467792476,"y":26759.607395000632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Manage: 3% Below ema7","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.97 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.97} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"712dcccd-fca1-4d1b-bf00-497375a831ec","savedPayload":{"position":{"x":27919.263647509517,"y":26011.430195370725},"targetPosition":{"x":28249.661342343345,"y":26028.698522912906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"8facdd27-7830-4433-b373-c259545e9d3f","savedPayload":{"position":{"x":14335.802027035403,"y":24696.547745833843},"targetPosition":{"x":14189.561887620894,"y":24384.79762022559},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7b658c8-0903-46b3-867a-c01eaca10bb1","savedPayload":{"position":{"x":14189.561887620894,"y":24384.79762022559},"targetPosition":{"x":14047.417644296649,"y":24065.93604620017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"97de140f-ae6e-435a-8be7-c4d87e38bd83","savedPayload":{"position":{"x":14047.417644296649,"y":24065.93604620017},"targetPosition":{"x":13904.61573221608,"y":23742.768304545127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"c137f50a-c8a7-4275-8ae4-80fa7fedd38c","savedPayload":{"position":{"x":28167.520160340675,"y":25687.851040623398},"targetPosition":{"x":28249.661342343345,"y":26028.698522912906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"908a2ee2-d913-46d1-80f5-e7109c803e65","savedPayload":{"position":{"x":29265.827138677025,"y":25909.711818415635},"targetPosition":{"x":29085.240980700488,"y":26186.897520645063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a9ab42d-9b24-461f-95cd-39ab13a54bc3","savedPayload":{"position":{"x":29085.240980700488,"y":26186.897520645063},"targetPosition":{"x":28904.868379284024,"y":26464.4248405494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"d4179fb4-9949-4d82-ae45-8d8be2001ce8","savedPayload":{"position":{"x":29494.94801371316,"y":26164.093956938777},"targetPosition":{"x":29199.910638476365,"y":26314.15585813381},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"efab2947-1540-4e8f-a1d9-50289a9b3c7f","savedPayload":{"position":{"x":29199.910638476365,"y":26314.15585813381},"targetPosition":{"x":28904.868379284024,"y":26464.4248405494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value * 0.99","project":"Superalgos","id":"8fbb58cd-53d0-4e19-8f50-590090df0f58","savedPayload":{"position":{"x":29566.17544824077,"y":26498.343202607124},"targetPosition":{"x":29235.528265351964,"y":26481.34103467965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"adec7d7c-258f-4222-a6d6-734f6962d5d9","savedPayload":{"position":{"x":29235.528265351964,"y":26481.34103467965},"targetPosition":{"x":28904.868379284024,"y":26464.4248405494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"b6a70772-8397-41ac-9268-5ad1cd9b0b80","savedPayload":{"position":{"x":29460.428471403306,"y":26823.69435723527},"targetPosition":{"x":29182.62208487584,"y":26644.10918947152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e1ffbeec-66bc-4d38-984b-2aff6740101f","savedPayload":{"position":{"x":29182.62208487584,"y":26644.10918947152},"targetPosition":{"x":28904.868379284024,"y":26464.4248405494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"ff907f99-713a-41f7-8b23-721699b74966","savedPayload":{"position":{"x":29206.3840864269,"y":27052.499672437778},"targetPosition":{"x":29055.502825945732,"y":26758.53504502566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"65511340-ee54-484b-8cb6-f2d95dec9bdd","savedPayload":{"position":{"x":29055.502825945732,"y":26758.53504502566},"targetPosition":{"x":28904.868379284024,"y":26464.4248405494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"94b2fbbc-3d32-473c-8008-231664970f09","savedPayload":{"position":{"x":28904.868379284024,"y":26464.4248405494},"targetPosition":{"x":28558.70498062652,"y":26446.680969487046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"02434c11-1d6d-4f15-9577-237b5daba9ea","savedPayload":{"position":{"x":28580.16364861861,"y":26045.61597974188},"targetPosition":{"x":28249.661342343345,"y":26028.698522912906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"cac36b94-3568-446e-a2d2-9d860bd8ad0f"}}}],"announcements":[],"id":"74e77f0f-2945-48ac-ab1f-47a65feb84ec","savedPayload":{"position":{"x":28249.661342343345,"y":26028.698522912906},"targetPosition":{"x":28232.59743399996,"y":26359.016526885047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"db68ae8b-4414-43f9-b275-c97b3a6a80c6","savedPayload":{"position":{"x":28069.804461278403,"y":25455.98171215319},"targetPosition":{"x":28291.573983589376,"y":25701.60401407811},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"2ccb9d00-d677-44b6-8b92-edbcaf349d29","savedPayload":{"position":{"x":27763.91832029156,"y":25161.369084696074},"targetPosition":{"x":28042.579546379246,"y":25344.834482461578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d5649c96-59d6-4f0e-a259-063e7355eb48","savedPayload":{"position":{"x":28042.579546379246,"y":25344.834482461578},"targetPosition":{"x":28325.848797452072,"y":25518.458718559552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"2689f28d-6ca9-4e82-8327-eae9956a751a","savedPayload":{"position":{"x":28018.988694707994,"y":24932.583172967068},"targetPosition":{"x":28170.373478209913,"y":25230.541641646203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b19aacc4-d892-41dc-a487-870ca6e13ce2","savedPayload":{"position":{"x":28170.373478209913,"y":25230.541641646203},"targetPosition":{"x":28325.848797452072,"y":25518.458718559552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"9e40ebf6-fd42-43da-b390-30926b085b8f","savedPayload":{"position":{"x":28353.138577836526,"y":24861.17494835073},"targetPosition":{"x":28337.421337090742,"y":25194.709485726096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2b8766b-b4da-40c7-8d88-76f3969065aa","savedPayload":{"position":{"x":28337.421337090742,"y":25194.709485726096},"targetPosition":{"x":28325.848797452072,"y":25518.458718559552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"cae32279-d999-4c13-8eb6-cad3063c74d4","savedPayload":{"position":{"x":28678.858007776977,"y":24966.863845050902},"targetPosition":{"x":28500.34185901159,"y":25247.551186065546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"04ac8528-0696-413b-a739-7825670c0234","savedPayload":{"position":{"x":28500.34185901159,"y":25247.551186065546},"targetPosition":{"x":28325.848797452072,"y":25518.458718559552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div previous ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"6a80e7f5-300b-417d-9f9d-49803b8f51f8","savedPayload":{"position":{"x":28908.166061952317,"y":25221.394869921052},"targetPosition":{"x":28615.135400499326,"y":25374.93033378041},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e23fa3d-13f0-45fe-990f-d268e58ff1cf","savedPayload":{"position":{"x":28615.135400499326,"y":25374.93033378041},"targetPosition":{"x":28325.848797452072,"y":25518.458718559552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"38fc838f-01a5-4a33-a35f-e185f52c295e","savedPayload":{"position":{"x":28325.848797452072,"y":25518.458718559552},"targetPosition":{"x":28308.243193364393,"y":25864.113391223967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0c86ae11-a07f-4c31-a33c-05debf70c23c","savedPayload":{"position":{"x":28275.200122284987,"y":25277.4913185818},"targetPosition":{"x":28291.573983589376,"y":25701.60401407811},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"cac36b94-3568-446e-a2d2-9d860bd8ad0f"}}},{"type":"Move To Phase Event","name":"Cancel Close","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"301720b6-e436-4134-be19-0bd0892f624d","savedPayload":{"position":{"x":29295.231758398484,"y":24832.756567961776},"targetPosition":{"x":29194.088482731295,"y":25146.903117774178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2e8c0fcc-d597-40f7-b07f-16214f744b0e","savedPayload":{"position":{"x":29194.088482731295,"y":25146.903117774178},"targetPosition":{"x":29091.952947589234,"y":25461.82780008192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"b7683607-6589-414b-b6de-5aa132d6baef","savedPayload":{"position":{"x":29737.855279705356,"y":25325.099683694498},"targetPosition":{"x":29415.137494992465,"y":25393.441710116167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e247b889-3abc-469b-b26d-fc11a08bf9c8","savedPayload":{"position":{"x":29415.137494992465,"y":25393.441710116167},"targetPosition":{"x":29091.952947589234,"y":25461.82780008192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"605adda8-a968-4819-af76-2ee257f07e66","savedPayload":{"position":{"x":29091.952947589234,"y":25461.82780008192},"targetPosition":{"x":28834.23549245255,"y":25693.79855799827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"cc9492df-3289-4d6a-b152-bad2fc656730","savedPayload":{"position":{"x":28537.79182457756,"y":25480.496507034826},"targetPosition":{"x":28291.573983589376,"y":25701.60401407811},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"74e77f0f-2945-48ac-ab1f-47a65feb84ec"}}}],"announcements":[],"id":"7fc97392-92a0-48cc-a5d3-799b1c2b8c35","savedPayload":{"position":{"x":28291.573983589376,"y":25701.60401407811},"targetPosition":{"x":28249.661342343345,"y":26028.698522912906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.8 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.8} else \n{tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"895b6803-0996-41a6-9a13-93f488d7aee4","savedPayload":{"position":{"x":27915.36529991382,"y":25553.977687218132},"targetPosition":{"x":28289.410681218473,"y":25797.28204518927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Cancel Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"df898928-7078-4e61-a616-169789552b36","savedPayload":{"position":{"x":28707.540636840233,"y":24562.01448091567},"targetPosition":{"x":28690.366021412166,"y":24890.930074550743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c02edb77-0d76-4656-8d2f-068eaddabff7","savedPayload":{"position":{"x":28690.366021412166,"y":24890.930074550743},"targetPosition":{"x":28673.91155447921,"y":25220.433470128417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"3bdea448-de7a-4188-b9ec-350dbf88470a","savedPayload":{"position":{"x":29263.72744993955,"y":24920.458608905938},"targetPosition":{"x":28968.779473067876,"y":25070.33934296266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fbc8a359-f853-44a6-831d-a2078edeebe6","savedPayload":{"position":{"x":28968.779473067876,"y":25070.33934296266},"targetPosition":{"x":28673.91155447921,"y":25220.433470128417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f4664806-47a1-41be-956e-079599c0df49","savedPayload":{"position":{"x":28673.91155447921,"y":25220.433470128417},"targetPosition":{"x":28484.50655210695,"y":25511.164597350114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"b75aa4bc-9257-4444-98ca-afe6377b914a","savedPayload":{"position":{"x":28528.263005905388,"y":25428.859670972648},"targetPosition":{"x":28289.410681218473,"y":25797.28204518927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"74e77f0f-2945-48ac-ab1f-47a65feb84ec"}}}],"announcements":[],"id":"cac36b94-3568-446e-a2d2-9d860bd8ad0f","savedPayload":{"position":{"x":28317.074533717685,"y":25394.720907202704},"targetPosition":{"x":28291.573983589376,"y":25701.60401407811},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7ce8f923-1393-45ac-97d6-742e2cff6627","savedPayload":{"position":{"x":36092.81287582528,"y":30368.600330817048},"targetPosition":{"x":36084.96248238884,"y":30518.394761030235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"0d03ff5b-3162-49a3-ae12-a0e5929de4dd","savedPayload":{"position":{"x":36084.96248238884,"y":30518.394761030235},"targetPosition":{"x":36221.1596323107,"y":30785.696718286745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"e4075c8b-e9ed-4efb-95ff-c57a05dde303","savedPayload":{"position":{"x":27906.098284516334,"y":26249.866400783445},"targetPosition":{"x":28162.580646898557,"y":26458.336872407657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7a43f11-926e-4a95-8b50-0e6bf1c33fb3","savedPayload":{"position":{"x":28162.580646898557,"y":26458.336872407657},"targetPosition":{"x":28480.5625419607,"y":26716.395559791687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value","project":"Superalgos","id":"d0134650-3b3d-4e82-9334-efd985669763","savedPayload":{"position":{"x":28596.175478550562,"y":25986.609911740343},"targetPosition":{"x":28544.54566315259,"y":26313.39653327981},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5bfa6266-b3b9-4b3d-9113-5ce83bd5181b","savedPayload":{"position":{"x":28544.54566315259,"y":26313.39653327981},"targetPosition":{"x":28480.5625419607,"y":26716.395559791687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f94814fd-11e1-49fb-a3d9-f8c9dc7e476b","savedPayload":{"position":{"x":36214.33477939097,"y":30349.353152133623},"targetPosition":{"x":36268.08997182277,"y":30489.390216108204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Quick Exit","config":"{\n\"percentageOfAlgorithmSize\": 100,\n\"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"c81b34d0-6411-4e30-9a5f-b29938767724","savedPayload":{"position":{"x":29011.84924955325,"y":28098.26390528551},"targetPosition":{"x":28971.27346400518,"y":27906.084373412057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"30a97f96-5681-426e-84e3-c56d4677b797","savedPayload":{"position":{"x":28971.27346400518,"y":27906.084373412057},"targetPosition":{"x":28930.59213286936,"y":27713.230894377055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d73f3a51-5c99-453e-81a7-77123488aae8","savedPayload":{"position":{"x":28930.59213286936,"y":27713.230894377055},"targetPosition":{"x":28881.06371187106,"y":27478.696353856452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"7d7ac782-a44c-4983-a83d-85c3bc7f446e","savedPayload":{"position":{"x":29479.418890495537,"y":25937.57224736933},"targetPosition":{"x":29271.20349227128,"y":26194.66821724797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a2a2f97-c305-41ad-b66a-5757cb93b188","savedPayload":{"position":{"x":29271.20349227128,"y":26194.66821724797},"targetPosition":{"x":29063.63227598084,"y":26451.045933509115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"6f41faa3-1005-4c80-b40f-adbb7b65b836","savedPayload":{"position":{"x":29063.63227598084,"y":26451.045933509115},"targetPosition":{"x":28806.596480966924,"y":26768.546161057966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"940b3fe2-8055-4eb5-8a5a-192a319891af","savedPayload":{"position":{"x":36362.48803048024,"y":30372.81832188966},"targetPosition":{"x":36268.08997182277,"y":30489.390216108204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"b72c5b1c-499f-4f2e-9044-aa6caaaef7ee","savedPayload":{"position":{"x":36268.08997182277,"y":30489.390216108204},"targetPosition":{"x":36221.1596323107,"y":30785.696718286745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fc6676b7-944d-459c-bc06-592b3ae2fd1b","savedPayload":{"position":{"x":34003.1596323107,"y":30787.696718286745},"targetPosition":{"x":34215.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading Strategy","name":"S2 - 6H Down","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"301d8e64-bde8-4eee-a0cf-b9c57bcb3050","savedPayload":{"position":{"x":35457.90634568354,"y":31198.77580821771},"targetPosition":{"x":35527.939954840316,"y":30907.064832098407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a869bb21-75b5-4621-9760-840cf4896844","savedPayload":{"position":{"x":35527.939954840316,"y":30907.064832098407},"targetPosition":{"x":35597.97356399709,"y":30615.353855979105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"b3c4a94f-4986-4e55-ba28-f6456a67bd64","savedPayload":{"position":{"x":35245.302412621604,"y":31100.76405260407},"targetPosition":{"x":35421.63798830935,"y":30858.058954291588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7b405bfe-294d-48a8-b1ff-d0c4f4b328d1","savedPayload":{"position":{"x":35421.63798830935,"y":30858.058954291588},"targetPosition":{"x":35597.97356399709,"y":30615.353855979105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"f4b66e81-3e26-4a04-9687-140ab33bd887","savedPayload":{"position":{"x":35086.38946538464,"y":30928.852994808673},"targetPosition":{"x":35342.18151469086,"y":30772.10342539389},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4d1c7a66-dd4a-45f9-956d-6cb68b64920b","savedPayload":{"position":{"x":35342.18151469086,"y":30772.10342539389},"targetPosition":{"x":35597.97356399709,"y":30615.353855979105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"975153b0-b609-4975-b5d6-26f7bfe675e8","savedPayload":{"position":{"x":35005.36055964,"y":30709.214535003244},"targetPosition":{"x":35301.667061818545,"y":30662.284195491175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ecc5139a-825f-4c91-8e92-f3719460c66b","savedPayload":{"position":{"x":35301.667061818545,"y":30662.284195491175},"targetPosition":{"x":35597.97356399709,"y":30615.353855979105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Steep","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope === \"Steep\"","project":"Superalgos","id":"a838971e-d8bd-4ded-a418-453b8981ff9e","savedPayload":{"position":{"x":35014.55161175848,"y":30475.28663766556},"targetPosition":{"x":35306.26258787778,"y":30545.32024682233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3694b7de-4040-4f51-a025-3d482ad6c127","savedPayload":{"position":{"x":35306.26258787778,"y":30545.32024682233},"targetPosition":{"x":35597.97356399709,"y":30615.353855979105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H NOT Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerSubChannel.slope != \"Side\"","project":"Superalgos","id":"fc7ab7ee-a96c-4d9a-ae8e-618cd3ee0769","savedPayload":{"position":{"x":35112.56336737212,"y":30262.68270460362},"targetPosition":{"x":35355.2684656846,"y":30439.018280291362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7f681b33-bfa1-46b5-9483-545d3f62791b","savedPayload":{"position":{"x":35355.2684656846,"y":30439.018280291362},"targetPosition":{"x":35597.97356399709,"y":30615.353855979105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"d6572b86-2aaa-4223-9e6a-0206d8890778","savedPayload":{"position":{"x":35284.474425167515,"y":30103.769757366652},"targetPosition":{"x":35441.2239945823,"y":30359.56180667288},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08da37fa-d3c5-49d9-8679-5b80bdff68dd","savedPayload":{"position":{"x":35441.2239945823,"y":30359.56180667288},"targetPosition":{"x":35597.97356399709,"y":30615.353855979105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"680af7d1-9436-426c-b371-0c51ca813093","savedPayload":{"position":{"x":35597.97356399709,"y":30615.353855979105},"targetPosition":{"x":35894.280066175634,"y":30568.423516467035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"ab2764bc-e2c0-40d8-930f-bd3047f39596","savedPayload":{"position":{"x":35894.280066175634,"y":30568.423516467035},"targetPosition":{"x":36190.58656835418,"y":30521.493176954966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","project":"Superalgos","id":"29130ffe-4d84-411a-90d4-3ee5a6008c21","savedPayload":{"position":{"x":29929.75814734162,"y":24095.592195707926},"targetPosition":{"x":29824.584661753048,"y":24793.90204810937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e6a32c76-eda6-4982-8a3e-220c29218ba2","savedPayload":{"position":{"x":29824.584661753048,"y":24793.90204810937},"targetPosition":{"x":29719.49025858462,"y":25492.258102611122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b31b4647-b5e2-42e5-a1e9-fa0ffafeffc8","savedPayload":{"position":{"x":29719.49025858462,"y":25492.258102611122},"targetPosition":{"x":29614.353374494633,"y":26192.17030634475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"707c998d-da1c-45c1-84de-75ac9a0898b9","savedPayload":{"position":{"x":35947.88147004169,"y":30345.157601267223},"targetPosition":{"x":36190.58656835418,"y":30521.493176954966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"5840e471-a97e-4662-8938-5f1eb21091f0","savedPayload":{"position":{"x":27717.301622767678,"y":26334.481588004048},"targetPosition":{"x":28025.801735582445,"y":26406.228544483936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"447e0866-7372-4a42-b5b1-cd05e0efe728","savedPayload":{"position":{"x":28025.801735582445,"y":26406.228544483936},"targetPosition":{"x":28334.846689820693,"y":26479.878264274026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"0a447725-e6ac-45ea-bb2c-5f3b968dfc06","savedPayload":{"position":{"x":27824.39802773934,"y":26107.708373562695},"targetPosition":{"x":28079.7044253936,"y":26294.277653937497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9540f515-0603-4cda-bbbd-84d7d104a8e1","savedPayload":{"position":{"x":28079.7044253936,"y":26294.277653937497},"targetPosition":{"x":28334.846689820693,"y":26479.878264274026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"ad089114-2332-4b0b-b079-4070e1baa4c5","savedPayload":{"position":{"x":28001.002320354102,"y":25938.699666684413},"targetPosition":{"x":28166.99017082398,"y":26208.564967348262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7f2c2ddf-c19f-4f32-bda3-b4a3b7e7fb90","savedPayload":{"position":{"x":28166.99017082398,"y":26208.564967348262},"targetPosition":{"x":28334.846689820693,"y":26479.878264274026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"48b35276-b129-486a-a517-ca3656ff9a53","savedPayload":{"position":{"x":28234.190614796466,"y":25854.383117039397},"targetPosition":{"x":28283.136917897114,"y":26166.882632248627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"179fce4e-890b-4a07-9289-57620f55da9e","savedPayload":{"position":{"x":28283.136917897114,"y":26166.882632248627},"targetPosition":{"x":28334.846689820693,"y":26479.878264274026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"4H Steep","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at04hs.bollingerSubChannel.slope === \"Steep\"","project":"Superalgos","id":"45c706e6-6a7c-4b5a-b713-2b87ac0b6550","savedPayload":{"position":{"x":28486.269610739055,"y":25867.380685213313},"targetPosition":{"x":28410.46411174992,"y":26172.536383864397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad485330-bf10-49e7-beaa-d57e0f8564b3","savedPayload":{"position":{"x":28410.46411174992,"y":26172.536383864397},"targetPosition":{"x":28334.846689820693,"y":26479.878264274026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"6H NOT Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at06hs.bollingerSubChannel.slope != \"Side\"","project":"Superalgos","id":"a360bbf1-b177-4298-80a8-06b6062dc779","savedPayload":{"position":{"x":28705.03828798836,"y":25966.144280577828},"targetPosition":{"x":28521.161531812584,"y":26222.50508968378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8134986-b19a-4715-bb59-dd6bc7c774a8","savedPayload":{"position":{"x":28521.161531812584,"y":26222.50508968378},"targetPosition":{"x":28334.846689820693,"y":26479.878264274026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"685b785a-4196-4b0a-84c1-0c7ed54e6162","savedPayload":{"position":{"x":28874.103214484825,"y":26146.233900393076},"targetPosition":{"x":28606.38987398745,"y":26313.54340397053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"747a6cc6-2122-4f62-ab40-bdcfbb8ae702","savedPayload":{"position":{"x":28606.38987398745,"y":26313.54340397053},"targetPosition":{"x":28334.846689820693,"y":26479.878264274026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e9bc25c6-7eca-42cd-a2c2-dbc196d8929a","savedPayload":{"position":{"x":28334.846689820693,"y":26479.878264274026},"targetPosition":{"x":28391.894666650962,"y":26833.86442334945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"88e734b7-e242-4b34-aeca-bb71905973ab","savedPayload":{"position":{"x":36143.65622884211,"y":30225.186674776425},"targetPosition":{"x":36190.58656835418,"y":30521.493176954966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"73a50844-7c64-4816-a04d-db5da604663b","savedPayload":{"position":{"x":36190.58656835418,"y":30521.493176954966},"targetPosition":{"x":36433.291666666664,"y":30697.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"My Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"7d19cadf-d686-403d-b5c5-c4c8600035e4","savedPayload":{"position":{"x":27823.346249651582,"y":26546.680041402084},"targetPosition":{"x":28133.462519398272,"y":26612.770755124962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5dc9b14b-e534-4328-9789-22d49b2c6626","savedPayload":{"position":{"x":28133.462519398272,"y":26612.770755124962},"targetPosition":{"x":28531.618501984663,"y":26697.977457836598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.episodeBaseAsset.balance.value","project":"Superalgos","id":"9bc8b451-2bcc-4092-b469-d99fe46040ae","savedPayload":{"position":{"x":28308.375025281763,"y":26011.290909935495},"targetPosition":{"x":28406.42268543775,"y":26312.571797558085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e557768-9288-4e09-bf67-db8d850df130","savedPayload":{"position":{"x":28406.42268543775,"y":26312.571797558085},"targetPosition":{"x":28531.618501984663,"y":26697.977457836598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7dadecbd-1931-448f-a23d-9a96140d75ca","savedPayload":{"position":{"x":36211.11484453257,"y":29848.142206800334},"targetPosition":{"x":36322.58656835418,"y":29948.511797754163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Quick Entry","config":"{\n\"percentageOfAlgorithmSize\": 100\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"14697473-8454-4fb1-bf28-fa12d6640666","savedPayload":{"position":{"x":29227.77663081793,"y":24735.788690159847},"targetPosition":{"x":29161.91498699858,"y":25045.06043531283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"98626788-dd20-4fb6-8b43-9b97014a212e","savedPayload":{"position":{"x":29161.91498699858,"y":25045.06043531283},"targetPosition":{"x":29096.007378262333,"y":25354.338048645273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b4e76cbe-b430-4f1b-86cd-1e8259a48477","savedPayload":{"position":{"x":29096.007378262333,"y":25354.338048645273},"targetPosition":{"x":29030.09520930903,"y":25663.48976025039},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"5fa41d57-267e-451c-b495-4ac721ddfa18","savedPayload":{"position":{"x":29030.09520930903,"y":25663.48976025039},"targetPosition":{"x":28964.783620262904,"y":25972.840524149615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4c9ad616-de53-4332-8569-ad2d7eb4f941","savedPayload":{"position":{"x":28964.783620262904,"y":25972.840524149615},"targetPosition":{"x":28899.039867310654,"y":26282.577123847972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"4d3552fa-b634-4bc8-a975-e136b47e44a2","savedPayload":{"position":{"x":28899.039867310654,"y":26282.577123847972},"targetPosition":{"x":28831.913255435786,"y":26600.548271741114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"ffe64902-21d9-4c5e-b6aa-97ce752cce91","savedPayload":{"position":{"x":36353.77332197684,"y":29801.78965764409},"targetPosition":{"x":36322.58656835418,"y":29948.511797754163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"63eb6592-10e0-4c3c-ac03-8789e6b52068","savedPayload":{"position":{"x":36340.58656835418,"y":30412.511797754163},"targetPosition":{"x":36433.291666666664,"y":30697.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Custom","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 1.03","project":"Superalgos","id":"c42eec50-421c-4220-942c-4bdd4128e9dd","savedPayload":{"position":{"x":36200.51056858084,"y":29602.679789670663},"targetPosition":{"x":36401.249750488496,"y":29825.62323731388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < tradingEngine.current.position.entryTargetRate.value * 0.97","project":"Superalgos","id":"a2f4b43b-c498-4687-ab3d-c5c7d7ad4d02","savedPayload":{"position":{"x":28210.45451301232,"y":25747.045656145805},"targetPosition":{"x":28259.58763868236,"y":25898.037881218544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"35795d1b-8c7a-4957-9e22-1400e32d1e14","savedPayload":{"position":{"x":28259.58763868236,"y":25898.037881218544},"targetPosition":{"x":28315.177489351867,"y":26067.455300671194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8ea589b2-e7e3-4907-90a8-bd4667a70196","savedPayload":{"position":{"x":28315.177489351867,"y":26067.455300671194},"targetPosition":{"x":28380.40171899753,"y":26266.98547659318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"a68ec84d-450e-42ed-b4c7-28db86f31e57","savedPayload":{"position":{"x":36493.95484880098,"y":29540.306282425336},"targetPosition":{"x":36401.249750488496,"y":29825.62323731388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"bd85fac3-f2ab-47b8-8077-344343ebfc93","savedPayload":{"position":{"x":36401.249750488496,"y":29825.62323731388},"targetPosition":{"x":36463.62325773382,"y":30119.067517534022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 1.02 < tradingEngine.current.position.stopLoss.value) {chart.at01hs.bollingerBand.movingAverage * 1.02} else {tradingEngine.current.position.stopLoss.value}","project":"Superalgos","id":"e9425ea8-46fc-4bbd-96af-107b45fcde20","savedPayload":{"position":{"x":36276.50273599784,"y":29238.7346768736},"targetPosition":{"x":36338.87624324317,"y":29532.17895709374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"787093b5-b60f-4002-ae4e-7dcf26bc651c","savedPayload":{"position":{"x":36338.87624324317,"y":29532.17895709374},"targetPosition":{"x":36401.249750488496,"y":29825.62323731388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1a3ca90-96ad-4bc3-84f0-0ead961f4ab3","savedPayload":{"position":{"x":36463.62325773382,"y":30119.067517534022},"targetPosition":{"x":36525.99676497915,"y":30412.511797754163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 0.95","project":"Superalgos","id":"98c748f4-5126-4a47-a88b-8af381ce5b37","savedPayload":{"position":{"x":36909.51015302027,"y":29717.589153718705},"targetPosition":{"x":36971.883660265594,"y":30011.033433938846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"1H EMA7 < entryTargetRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value","project":"Superalgos","id":"37f8d23d-8e82-4d78-8799-338d352c0bd7","savedPayload":{"position":{"x":29057.393308629576,"y":25688.71449056764},"targetPosition":{"x":29023.99513574823,"y":25844.81490998611},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7641aab3-419e-431c-b7de-f961309f3d88","savedPayload":{"position":{"x":29023.99513574823,"y":25844.81490998611},"targetPosition":{"x":28978.67173136167,"y":26024.985404561994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.current.position.positionCounters.periods.value > 2","project":"Superalgos","id":"640b3bdc-3649-4846-b67a-1ed5a8ba52d5","savedPayload":{"position":{"x":29303.399548393936,"y":25909.8910131691},"targetPosition":{"x":29152.477566638718,"y":25959.585648886925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6855f9f0-a1a5-4613-b77a-b9d7226ec1f7","savedPayload":{"position":{"x":29152.477566638718,"y":25959.585648886925},"targetPosition":{"x":28978.67173136167,"y":26024.985404561994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8dc235c5-6c20-4d93-8703-275564f7e648","savedPayload":{"position":{"x":28978.67173136167,"y":26024.985404561994},"targetPosition":{"x":28839.257672444433,"y":26181.18864147793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"19f17341-ac03-4e07-9f8d-d3e4ef023fc2","savedPayload":{"position":{"x":37257.20061515414,"y":30103.73853225133},"targetPosition":{"x":36971.883660265594,"y":30011.033433938846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"7f92f80d-0924-4d54-ae68-6505d8f0421a","savedPayload":{"position":{"x":36971.883660265594,"y":30011.033433938846},"targetPosition":{"x":36748.94021262237,"y":30211.772615846505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Manage: 3% Below ema7","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.97 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.97} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"af90c747-4790-43c5-afe1-37a605571cae","savedPayload":{"position":{"x":36994.08792600116,"y":29587.35080438797},"targetPosition":{"x":37194.827107908815,"y":29810.294252031188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"64b16855-36d6-49b4-afde-9bc43b6bdd53","savedPayload":{"position":{"x":15411.427405661598,"y":25474.517861382687},"targetPosition":{"x":15265.187266247089,"y":25162.767735774432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a06e989b-e442-43e3-b915-7aa76348e064","savedPayload":{"position":{"x":15265.187266247089,"y":25162.767735774432},"targetPosition":{"x":15123.043022922844,"y":24843.906161749015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ac15c2d4-9d65-464a-b3e6-2d28edca7308","savedPayload":{"position":{"x":15123.043022922844,"y":24843.906161749015},"targetPosition":{"x":14980.241110842275,"y":24520.73842009397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"c81de819-5717-459a-9b89-f046c6768803","savedPayload":{"position":{"x":37417.77055555204,"y":29609.55507012353},"targetPosition":{"x":37194.827107908815,"y":29810.294252031188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"bff4cb02-f3ad-4c61-9f94-cc3e2b43121c","savedPayload":{"position":{"x":30685.397989775593,"y":26838.6180368247},"targetPosition":{"x":30375.32070549611,"y":26904.220305874333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a9f77d3c-1868-4535-8117-e56d388ba5ad","savedPayload":{"position":{"x":30375.32070549611,"y":26904.220305874333},"targetPosition":{"x":30064.735801886374,"y":26969.86890377776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"42345fb4-0626-4b42-90c1-bb9f214e17d4","savedPayload":{"position":{"x":30668.325798478487,"y":27165.743100789077},"targetPosition":{"x":30366.812428798898,"y":27067.89401138069},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a4bfbfb1-543e-4db0-9f39-dd6631e660eb","savedPayload":{"position":{"x":30366.812428798898,"y":27067.89401138069},"targetPosition":{"x":30064.735801886374,"y":26969.86890377776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value * 0.99","project":"Superalgos","id":"67342cd6-6678-401c-94e1-e0b0eda2263e","savedPayload":{"position":{"x":30489.860141530648,"y":27440.873452312488},"targetPosition":{"x":30277.493555746565,"y":27205.49311599559},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6fcc3279-0e65-424f-81b5-0ed032a461ca","savedPayload":{"position":{"x":30277.493555746565,"y":27205.49311599559},"targetPosition":{"x":30064.735801886374,"y":26969.86890377776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"47ca70bc-782c-445f-834e-921f0840eb7e","savedPayload":{"position":{"x":30197.90828637094,"y":27589.861183220557},"targetPosition":{"x":30131.454060195894,"y":27280.062111101353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"13eaacfa-d129-401a-8648-93d7954f94ac","savedPayload":{"position":{"x":30131.454060195894,"y":27280.062111101353},"targetPosition":{"x":30064.735801886374,"y":26969.86890377776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"6674b07b-d9ed-4a96-88b2-6743cd6e0852","savedPayload":{"position":{"x":29871.361983104893,"y":27572.722325012102},"targetPosition":{"x":29968.080252229825,"y":27271.507707137673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9163a9de-74b0-42f7-8ee0-85b93dee00fc","savedPayload":{"position":{"x":29968.080252229825,"y":27271.507707137673},"targetPosition":{"x":30064.735801886374,"y":26969.86890377776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"46f92b3d-10dd-484d-895b-c0d547424c3a","savedPayload":{"position":{"x":30064.735801886374,"y":26969.86890377776},"targetPosition":{"x":29839.833470154765,"y":26721.090544731458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"571d2fea-5e0b-49f3-877a-5b9b41516bfe","savedPayload":{"position":{"x":37395.566289816474,"y":30033.237699674406},"targetPosition":{"x":37194.827107908815,"y":29810.294252031188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"5639cfff-e0f1-417b-8034-adb661ded0cd"}}}],"announcements":[],"id":"75e54a0b-1af9-49d2-ab9b-461d72a731fe","savedPayload":{"position":{"x":37194.827107908815,"y":29810.294252031188},"targetPosition":{"x":36971.883660265594,"y":30011.033433938846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"3f9df9ef-2267-4a33-b2b8-fddce1f7f4d7","savedPayload":{"position":{"x":37433.47134242492,"y":29309.96620969716},"targetPosition":{"x":37417.77055555204,"y":29609.55507012353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"bb9431b0-04e2-49ad-8a1e-8336a5a90ba6","savedPayload":{"position":{"x":32023.403963187324,"y":26349.177120855493},"targetPosition":{"x":31907.894390142355,"y":26683.84567234382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fff74a7d-6205-4d97-b32a-c31c2879e228","savedPayload":{"position":{"x":31907.894390142355,"y":26683.84567234382},"targetPosition":{"x":31792.740978340917,"y":27018.886636027608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"c2308750-4fa3-45bc-8ce3-b834db3e5a75","savedPayload":{"position":{"x":32262.865163850664,"y":26488.677262211473},"targetPosition":{"x":32027.998581354113,"y":26753.58535817053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"37f1894e-e911-46df-b97d-92ad8716bbb7","savedPayload":{"position":{"x":32027.998581354113,"y":26753.58535817053},"targetPosition":{"x":31792.740978340917,"y":27018.886636027608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"c815953e-7501-4c0f-bf44-b2054f27204b","savedPayload":{"position":{"x":32430.066087027975,"y":26709.069781650396},"targetPosition":{"x":32111.666993260842,"y":26863.85372760884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0abbc8b9-69b3-4051-a077-8cae2eb456e5","savedPayload":{"position":{"x":32111.666993260842,"y":26863.85372760884},"targetPosition":{"x":31792.740978340917,"y":27018.886636027608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"b1db73ae-ddb7-452c-bc67-aebce55c0071","savedPayload":{"position":{"x":32500.184859498237,"y":26976.573652298997},"targetPosition":{"x":32146.740346535415,"y":26997.668869820714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1c0d7a06-b7f3-443d-9088-177134b13b83","savedPayload":{"position":{"x":32146.740346535415,"y":26997.668869820714},"targetPosition":{"x":31792.740978340917,"y":27018.886636027608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"12d82500-383b-445d-995d-7b589c84635a","savedPayload":{"position":{"x":32462.68040868568,"y":27249.86600403618},"targetPosition":{"x":32127.96691871545,"y":27134.37815581975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ea51ecbf-d848-46a7-a88d-82ec88f8480a","savedPayload":{"position":{"x":32127.96691871545,"y":27134.37815581975},"targetPosition":{"x":31792.740978340917,"y":27018.886636027608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"previous ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14 > chart.at01hs.base7EMA.previous.previous.ema21 - chart.at01hs.base7EMA.previous.previous.ema14","project":"Superalgos","id":"c48ea949-7b3e-4c17-bff5-19d6e459d626","savedPayload":{"position":{"x":32323.19348627884,"y":27488.724105193913},"targetPosition":{"x":32058.222945332695,"y":27253.72625045506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7d987b62-66de-4d68-be64-91c124266174","savedPayload":{"position":{"x":32058.222945332695,"y":27253.72625045506},"targetPosition":{"x":31792.740978340917,"y":27018.886636027608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2 previous ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7 > chart.at01hs.base7EMA.previous.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.previous.ema7","project":"Superalgos","id":"6e81b8d8-148d-4a5a-8307-40c1dbccabb2","savedPayload":{"position":{"x":32103.18929085291,"y":27655.73318119689},"targetPosition":{"x":31948.04782618265,"y":27337.291294678864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"229f0b94-9e9a-45b5-87fe-8bf1427c1cb6","savedPayload":{"position":{"x":31948.04782618265,"y":27337.291294678864},"targetPosition":{"x":31792.740978340917,"y":27018.886636027608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0e734dca-7ea8-4eaf-9379-48ccf8dff51e","savedPayload":{"position":{"x":31792.740978340917,"y":27018.886636027608},"targetPosition":{"x":31427.450481887347,"y":27040.96466112342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"43f6f964-e44c-4b9e-9c6e-f5f10afb891d","savedPayload":{"position":{"x":37640.71400319526,"y":29408.81588821587},"targetPosition":{"x":37417.77055555204,"y":29609.55507012353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"5639cfff-e0f1-417b-8034-adb661ded0cd"}}},{"type":"Move To Phase Event","name":"Cancel Close","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"427ca47c-7233-4e51-8070-0dd82e493d47","savedPayload":{"position":{"x":32301.86335063581,"y":27597.77562278088},"targetPosition":{"x":31948.431795502394,"y":27618.76025620688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8b99cc7a-c8fd-4e57-9f24-c2576f6bab18","savedPayload":{"position":{"x":31948.431795502394,"y":27618.76025620688},"targetPosition":{"x":31594.691326773514,"y":27639.60908904879},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"2217cfc4-1cdd-43b0-86ef-9957ff84c8f1","savedPayload":{"position":{"x":32124.70934326367,"y":28109.414503776585},"targetPosition":{"x":31859.85776712803,"y":27874.63574979469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6918bca4-9fcd-44a4-9ad5-d4718158d064","savedPayload":{"position":{"x":31859.85776712803,"y":27874.63574979469},"targetPosition":{"x":31594.691326773514,"y":27639.60908904879},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"2 prev.ema7 div 2 prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7 > chart.at01hs.base7EMA.previous.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.previous.ema7","project":"Superalgos","id":"9afbcaee-9dcd-4b18-89a9-9124eea8c900","savedPayload":{"position":{"x":31637.556778006554,"y":28346.46566595007},"targetPosition":{"x":31616.172511061377,"y":27993.143095037136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"91b01ae0-97af-48c7-adf3-1bb767e27f36","savedPayload":{"position":{"x":31616.172511061377,"y":27993.143095037136},"targetPosition":{"x":31594.691326773514,"y":27639.60908904879},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8f15adc5-8719-4f96-8560-127f7eaa0a97","savedPayload":{"position":{"x":31594.691326773514,"y":27639.60908904879},"targetPosition":{"x":31320.933543468745,"y":27396.918667465558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"b15ba6fb-7ae0-4c8f-b8ac-b76c5945dcb5","savedPayload":{"position":{"x":37717.35941597841,"y":29625.255856996413},"targetPosition":{"x":37417.77055555204,"y":29609.55507012353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"75e54a0b-1af9-49d2-ab9b-461d72a731fe"}}}],"announcements":[],"id":"eb74a012-ed21-4ce6-8f2e-8f2ebaea9188","savedPayload":{"position":{"x":37417.77055555204,"y":29609.55507012353},"targetPosition":{"x":37194.827107908815,"y":29810.294252031188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.8 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.8} else \n{tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"25d46d39-ae12-4dd8-a136-48f75b7236c1","savedPayload":{"position":{"x":37578.34049594993,"y":29115.37160799573},"targetPosition":{"x":37640.71400319526,"y":29408.81588821587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Cancel Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"f4da55cf-3df3-40ed-8d05-a914a6697fae","savedPayload":{"position":{"x":18968.903490019817,"y":27703.23609367037},"targetPosition":{"x":18802.506400439335,"y":27329.28983830409},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2c64d2c0-288c-45ae-a359-5d3f44bb4c5e","savedPayload":{"position":{"x":18802.506400439335,"y":27329.28983830409},"targetPosition":{"x":18636.004457228846,"y":26955.1341014829},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"b4571357-f64e-432a-8d80-37f1dfd89e82","savedPayload":{"position":{"x":18155.1049706278,"y":27617.70095061767},"targetPosition":{"x":18395.52539915988,"y":27286.496280533436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96c5c204-c93f-494c-8691-30566d39db06","savedPayload":{"position":{"x":18395.52539915988,"y":27286.496280533436},"targetPosition":{"x":18636.004457228846,"y":26955.1341014829},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2849e6ed-91c0-4e63-a4a3-2ba4d4517008","savedPayload":{"position":{"x":18636.004457228846,"y":26955.1341014829},"targetPosition":{"x":18678.549938123346,"y":26547.60214235258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9c2aa1f4-5ba6-4dc8-9f99-db133558f0e8","savedPayload":{"position":{"x":37934.1582834154,"y":29346.442380970544},"targetPosition":{"x":37640.71400319526,"y":29408.81588821587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"75e54a0b-1af9-49d2-ab9b-461d72a731fe"}}}],"announcements":[],"id":"5639cfff-e0f1-417b-8034-adb661ded0cd","savedPayload":{"position":{"x":37640.71400319526,"y":29408.81588821587},"targetPosition":{"x":37417.77055555204,"y":29609.55507012353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6cb50b3d-6bf3-422f-8d2a-d0103ea02607","savedPayload":{"position":{"x":36748.94021262237,"y":30211.772615846505},"targetPosition":{"x":36525.99676497915,"y":30412.511797754163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"42765ad5-284e-4966-a367-76593b53bcf7","savedPayload":{"position":{"x":36525.99676497915,"y":30412.511797754163},"targetPosition":{"x":36433.291666666664,"y":30697.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"110d0178-0090-4921-92dc-837bb31c3ba1","savedPayload":{"position":{"x":29529.25758251593,"y":26131.051468093545},"targetPosition":{"x":29561.956964512523,"y":26446.343361975574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3a9db813-8c6c-49a1-ae12-8125f8efc292","savedPayload":{"position":{"x":29561.956964512523,"y":26446.343361975574},"targetPosition":{"x":29603.7428723056,"y":26851.473333371112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value","project":"Superalgos","id":"379418a8-84aa-481c-8f23-48801ca405d8","savedPayload":{"position":{"x":30188.0147599188,"y":26427.276910181565},"targetPosition":{"x":29931.825113704683,"y":26613.296474974413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ef89e246-f225-4883-ae89-3f61dc1320f1","savedPayload":{"position":{"x":29931.825113704683,"y":26613.296474974413},"targetPosition":{"x":29603.7428723056,"y":26851.473333371112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5f697ad9-68be-4204-b5ad-67cded03abbb","savedPayload":{"position":{"x":36737.00726144052,"y":30384.461358308574},"targetPosition":{"x":36675.99676497915,"y":30521.493176954966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Quick Exit","config":"{\n\"percentageOfAlgorithmSize\": 100,\n\"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"4bcae971-5718-4028-a10e-3f170704030b","savedPayload":{"position":{"x":31765.85605573067,"y":26900.757149548626},"targetPosition":{"x":31451.503660135502,"y":26933.51633883763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2221a782-74ed-4536-a40c-e54fd95fc345","savedPayload":{"position":{"x":31451.503660135502,"y":26933.51633883763},"targetPosition":{"x":31136.799078531352,"y":26966.605382231006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e30e9de3-190a-4536-9dcf-0a12e09e0f0e","savedPayload":{"position":{"x":31136.799078531352,"y":26966.605382231006},"targetPosition":{"x":30821.97217929334,"y":26999.42208029286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"b57f49ac-744d-4af2-9a8f-d92483ed0d0d","savedPayload":{"position":{"x":30821.97217929334,"y":26999.42208029286},"targetPosition":{"x":30507.433204761444,"y":27032.345782833574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5aff6295-2b72-4e26-9017-741fb9303efb","savedPayload":{"position":{"x":30507.433204761444,"y":27032.345782833574},"targetPosition":{"x":30193.027967400943,"y":27065.269648466136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"202469d9-139c-431c-98f0-3d5d48ce972b","savedPayload":{"position":{"x":30193.027967400943,"y":27065.269648466136},"targetPosition":{"x":29789.556690432975,"y":27107.564393121887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2d3db895-56de-4b0d-b252-c70d818787cc","savedPayload":{"position":{"x":36825.17504928439,"y":30505.813907464817},"targetPosition":{"x":36675.99676497915,"y":30521.493176954966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"71e66e43-11c0-4f53-afc5-3787eafc4744","savedPayload":{"position":{"x":36675.99676497915,"y":30521.493176954966},"targetPosition":{"x":36433.291666666664,"y":30697.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2faf1715-7b6a-4188-ac5e-c67502e18fcc","savedPayload":{"position":{"x":34215.291666666664,"y":30699.82875264271},"targetPosition":{"x":34215.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading Strategy","name":"S5 - 4H Up","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"1bb17736-cc12-4b60-9807-632aeb2d3636","savedPayload":{"position":{"x":33397.66062135256,"y":30474.234806815166},"targetPosition":{"x":33646.371893119074,"y":30306.476935773942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2e2487a-d30a-4d70-9d70-f188409059a9","savedPayload":{"position":{"x":33646.371893119074,"y":30306.476935773942},"targetPosition":{"x":33895.08316488559,"y":30138.71906473272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"21123f61-dc48-4915-b609-c3eab53b8fec","savedPayload":{"position":{"x":33312.90572911999,"y":30283.872202092516},"targetPosition":{"x":33603.99444700279,"y":30211.295633412617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"daefe7ea-f409-406c-891a-28c3001ab5c0","savedPayload":{"position":{"x":33603.99444700279,"y":30211.295633412617},"targetPosition":{"x":33895.08316488559,"y":30138.71906473272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"6897670f-f952-4d83-8a95-bc82ad1d07fa","savedPayload":{"position":{"x":33298.37002766462,"y":30076.001986772124},"targetPosition":{"x":33596.726596275104,"y":30107.36052575242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b6890e81-16b4-4cd2-b1ed-0c02d51dae4b","savedPayload":{"position":{"x":33596.726596275104,"y":30107.36052575242},"targetPosition":{"x":33895.08316488559,"y":30138.71906473272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"c02c6beb-0de4-4a7c-a768-7332501d45b1","savedPayload":{"position":{"x":33355.80673710608,"y":29875.69637665927},"targetPosition":{"x":33625.444950995836,"y":30007.207720695995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3e59df4d-42a2-41e9-93ff-6d85b65d9bc2","savedPayload":{"position":{"x":33625.444950995836,"y":30007.207720695995},"targetPosition":{"x":33895.08316488559,"y":30138.71906473272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"02H Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\"","project":"Superalgos","id":"3257e894-69d2-4f5f-93eb-13ba4d62c5e0","savedPayload":{"position":{"x":33478.28814261019,"y":29707.115184529528},"targetPosition":{"x":33686.68565374789,"y":29922.917124631123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bd3ee521-2846-411f-a740-de3480e90421","savedPayload":{"position":{"x":33686.68565374789,"y":29922.917124631123},"targetPosition":{"x":33895.08316488559,"y":30138.71906473272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerSubChannel.slope === \"Gentle\"","project":"Superalgos","id":"3cef9be4-e642-4af5-b845-d63592ea22e9","savedPayload":{"position":{"x":33651.041179040105,"y":29590.59179014716},"targetPosition":{"x":33773.06217196285,"y":29864.65542743994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a23ee119-f4f5-4fe6-9013-27055d634051","savedPayload":{"position":{"x":33773.06217196285,"y":29864.65542743994},"targetPosition":{"x":33895.08316488559,"y":30138.71906473272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H NOT Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope != \"Side\"","project":"Superalgos","id":"7fa69f52-edfe-42b6-bda3-40e9ad7af808","savedPayload":{"position":{"x":33853.22928063911,"y":29540.180634576824},"targetPosition":{"x":33874.15622276235,"y":29839.44984965477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"50495c21-1a7b-4c38-9c6c-4cec9fb5a0f1","savedPayload":{"position":{"x":33874.15622276235,"y":29839.44984965477},"targetPosition":{"x":33895.08316488559,"y":30138.71906473272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"0770176a-5af8-479d-8a7e-7bafaf04cb05","savedPayload":{"position":{"x":34060.465578375784,"y":29561.96204716973},"targetPosition":{"x":33977.77437163069,"y":29850.340555951225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0538f837-fbba-4e7c-b1db-8a574559d584","savedPayload":{"position":{"x":33977.77437163069,"y":29850.340555951225},"targetPosition":{"x":33895.08316488559,"y":30138.71906473272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b2dd0458-53e0-4d8c-8f46-bb45946cdb65","savedPayload":{"position":{"x":33895.08316488559,"y":30138.71906473272},"targetPosition":{"x":34137.788263198076,"y":30315.05464042046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"642f8610-4b1d-4178-8bae-12abf00b7812","savedPayload":{"position":{"x":34137.788263198076,"y":30315.05464042046},"targetPosition":{"x":34380.49336151056,"y":30491.390216108204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close< chart.at01hs.bollingerBand.movingAverage","project":"Superalgos","id":"9d2e77ef-dc06-4357-8739-44065c83f8cb","savedPayload":{"position":{"x":30284.870532822708,"y":24486.693008103277},"targetPosition":{"x":30114.089233097067,"y":25124.002306371178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"65d4f331-e81f-44d4-834b-9e786d9d2a36","savedPayload":{"position":{"x":30114.089233097067,"y":25124.002306371178},"targetPosition":{"x":29943.226018568057,"y":25761.37960753494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9753c7d0-7d95-4464-8331-a7d4bac71a9b","savedPayload":{"position":{"x":29943.226018568057,"y":25761.37960753494},"targetPosition":{"x":29771.984403418064,"y":26400.114291021076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"99db5a57-b7b5-44d2-b046-c5784a51bffc","savedPayload":{"position":{"x":34357.02819175453,"y":30343.236965018932},"targetPosition":{"x":34380.49336151056,"y":30491.390216108204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Previous Breakup","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"190f6e85-1f6e-4088-a156-a82e3b0e72cb","savedPayload":{"position":{"x":30090.774546211884,"y":26038.821308519073},"targetPosition":{"x":30147.839593335477,"y":26364.347053817124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"07da9742-43f4-4bfb-8720-3272474740d1","savedPayload":{"position":{"x":30147.839593335477,"y":26364.347053817124},"targetPosition":{"x":30205.19288829226,"y":26690.31329078506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Close In","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"56b61beb-3df4-4577-b39e-90c3c3fc7075","savedPayload":{"position":{"x":30320.38547922099,"y":26038.581961545453},"targetPosition":{"x":30262.805282806352,"y":26364.226173402785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"34460859-dffb-4fba-93b2-fe143c3a25de","savedPayload":{"position":{"x":30262.805282806352,"y":26364.226173402785},"targetPosition":{"x":30205.19288829226,"y":26690.31329078506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Current Red Candle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.candle.open","project":"Superalgos","id":"16a3f794-7209-437c-a272-c1f945374af2","savedPayload":{"position":{"x":30536.515875966965,"y":26117.071519038203},"targetPosition":{"x":30371.005155014456,"y":26403.465122929847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"28a397a8-b5f1-44fd-afe2-3e366e7e938d","savedPayload":{"position":{"x":30371.005155014456,"y":26403.465122929847},"targetPosition":{"x":30205.19288829226,"y":26690.31329078506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Down","code":"chart.at03hs.bollingerChannel.direction * chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Down\"","project":"Superalgos","id":"e6fa32e6-37a4-40ae-a68d-8d046eed13b6","savedPayload":{"position":{"x":30712.66912636248,"y":26264.89990734899},"targetPosition":{"x":30459.155615858406,"y":26477.432210756844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ba113199-ed6c-4b10-8312-4d938c7e8c39","savedPayload":{"position":{"x":30459.155615858406,"y":26477.432210756844},"targetPosition":{"x":30205.19288829226,"y":26690.31329078506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"02H Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at02hs.bollingerSubChannel.slope === \"Side\"","project":"Superalgos","id":"b76599cd-7312-4aac-9dee-8e21dac4b1c6","savedPayload":{"position":{"x":30827.66413046462,"y":26464.09940576245},"targetPosition":{"x":30516.68342829796,"y":26577.08782664367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d274dddf-c518-4602-9e20-001b6b348fde","savedPayload":{"position":{"x":30516.68342829796,"y":26577.08782664367},"targetPosition":{"x":30205.19288829226,"y":26690.31329078506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"3H Gentle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at03hs.bollingerSubChannel.slope === \"Gentle\"","project":"Superalgos","id":"ef31d5cf-d980-494c-a6af-1970b0e5e172","savedPayload":{"position":{"x":30867.553738338807,"y":26690.30765351784},"targetPosition":{"x":30536.615120425296,"y":26690.247056499647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1e6adf92-f58a-4ebd-a125-f9b61d51ec59","savedPayload":{"position":{"x":30536.615120425296,"y":26690.247056499647},"targetPosition":{"x":30205.19288829226,"y":26690.31329078506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H NOT Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope != \"Side\"","project":"Superalgos","id":"d6005505-7c26-4f5c-b94e-3c2a9e812f5c","savedPayload":{"position":{"x":30827.569746538582,"y":26916.60536481462},"targetPosition":{"x":30516.557563281174,"y":26803.48790071808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dac090bd-5be4-4193-b40b-3ce250f62d91","savedPayload":{"position":{"x":30516.557563281174,"y":26803.48790071808},"targetPosition":{"x":30205.19288829226,"y":26690.31329078506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"Filter 1: 08H Deviation > 200 < 1500","code":"chart.at24hs.bollingerBand.deviation < chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"if (chart.at08hs.bollingerBand.deviation < 200 || chart.at08hs.bollingerBand.deviation > 1500) {false} else {true}","project":"Superalgos","id":"6198450f-adf9-4208-a125-e47b101f9b41","savedPayload":{"position":{"x":30712.457540158517,"y":27115.924174807195},"targetPosition":{"x":30458.916404160118,"y":26903.28840470694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b1f55195-9a70-49fa-8025-51cdf0acdbeb","savedPayload":{"position":{"x":30458.916404160118,"y":26903.28840470694},"targetPosition":{"x":30205.19288829226,"y":26690.31329078506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"196d7981-9230-4a94-b8c2-39ff25a22bb9","savedPayload":{"position":{"x":30205.19288829226,"y":26690.31329078506},"targetPosition":{"x":29886.80761807601,"y":26873.952197836297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"1c30f570-4f8e-47cf-95c1-dd1f4244a77a","savedPayload":{"position":{"x":34556.828937198305,"y":30248.68511779572},"targetPosition":{"x":34380.49336151056,"y":30491.390216108204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"999bf574-a88b-467f-a107-7e0770e6bd53","savedPayload":{"position":{"x":34380.49336151056,"y":30491.390216108204},"targetPosition":{"x":34427.42370102263,"y":30787.696718286745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"My Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"8a81a2c0-357d-4c2d-a549-9051d7b2c6d0","savedPayload":{"position":{"x":29310.74429185348,"y":26135.925231485533},"targetPosition":{"x":29490.72213214349,"y":26413.63343525451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"530d589f-dc6b-42f7-b3b5-6adda880314a","savedPayload":{"position":{"x":29490.72213214349,"y":26413.63343525451},"targetPosition":{"x":29713.25810661907,"y":26757.497431823882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.episodeBaseAsset.balance.value","project":"Superalgos","id":"9e38415c-2e9d-49a8-aaaa-e76aa0532ed4","savedPayload":{"position":{"x":30048.04546530098,"y":26099.601809184736},"targetPosition":{"x":29898.80713430288,"y":26393.007908437554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dcdc1f5f-1691-4432-9e2e-3f8ad4c19314","savedPayload":{"position":{"x":29898.80713430288,"y":26393.007908437554},"targetPosition":{"x":29713.25810661907,"y":26757.497431823882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7a57f4d9-ac42-4871-85b1-a300b42d7a0c","savedPayload":{"position":{"x":36773.77045750805,"y":30368.600330817048},"targetPosition":{"x":36781.62085094449,"y":30518.394761030235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Quick Entry","config":"{\n\"percentageOfAlgorithmSize\": 100\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"aaea728c-75f9-46c1-8b15-99fa2990866a","savedPayload":{"position":{"x":31672.313230303967,"y":25824.146656659716},"targetPosition":{"x":31395.129677715006,"y":26004.146450725842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9992f0c6-f7e5-4ff5-bf21-bf809695e653","savedPayload":{"position":{"x":31395.129677715006,"y":26004.146450725842},"targetPosition":{"x":31117.86541023836,"y":26184.472636147766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bf813257-1aca-4ba8-a5e4-5d372d740caa","savedPayload":{"position":{"x":31117.86541023836,"y":26184.472636147766},"targetPosition":{"x":30840.944486738517,"y":26364.783007690872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"417a8b49-cb3b-4b7d-b6de-6a382302e09f","savedPayload":{"position":{"x":30840.944486738517,"y":26364.783007690872},"targetPosition":{"x":30563.358313810364,"y":26545.076976885663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e575de70-9ec4-4936-9265-7cee85ef0b30","savedPayload":{"position":{"x":30563.358313810364,"y":26545.076976885663},"targetPosition":{"x":30285.880868034466,"y":26725.688458404235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"d6c6a08b-6faa-466b-bc6c-b911bf033682","savedPayload":{"position":{"x":30285.880868034466,"y":26725.688458404235},"targetPosition":{"x":30006.985261483213,"y":26907.595409330774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"8738b563-176d-44fa-acfa-ad74956f3ecf","savedPayload":{"position":{"x":36907.421436136305,"y":30436.69890577798},"targetPosition":{"x":36781.62085094449,"y":30518.394761030235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"5c1cac76-fb50-4a6c-b6ef-86226587fa0e","savedPayload":{"position":{"x":34563.62085094449,"y":30520.394761030235},"targetPosition":{"x":34427.42370102263,"y":30787.696718286745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"Controlled Run","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Stop","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 1.03","project":"Superalgos","id":"e0d94103-a97c-4960-b1aa-f7e1fcb656ca","savedPayload":{"position":{"x":30435.373187627898,"y":26433.442626884113},"targetPosition":{"x":30418.41142340035,"y":26764.553926388086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.close < tradingEngine.current.position.entryTargetRate.value * 0.97","project":"Superalgos","id":"19778aea-457a-4483-8934-4a7e7786a933","savedPayload":{"position":{"x":30192.141148108312,"y":25816.3812063929},"targetPosition":{"x":30116.25156975211,"y":25966.088252169007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3634294e-b331-44ba-b019-2143f4e7e317","savedPayload":{"position":{"x":30116.25156975211,"y":25966.088252169007},"targetPosition":{"x":30036.62178155317,"y":26122.485076258527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7975987f-1e42-47e5-b668-8ec6776ec85a","savedPayload":{"position":{"x":30036.62178155317,"y":26122.485076258527},"targetPosition":{"x":29938.985570641154,"y":26314.618145328524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"918cf3df-b5a6-4fa0-84b0-e2648e8e8ca8","savedPayload":{"position":{"x":30714.62037213189,"y":26614.76387331054},"targetPosition":{"x":30418.41142340035,"y":26764.553926388086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"dca1bf8c-cda0-42e4-90c2-14448f3cffb2","savedPayload":{"position":{"x":30418.41142340035,"y":26764.553926388086},"targetPosition":{"x":30199.64927921225,"y":27100.670306965054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage * 1.02 < tradingEngine.current.position.stopLoss.value) {chart.at01hs.bollingerBand.movingAverage * 1.02} else {tradingEngine.current.position.stopLoss.value}","project":"Superalgos","id":"928d3add-1690-4dfd-b2f8-455668fc742c","savedPayload":{"position":{"x":30779.54358001164,"y":26208.830100989988},"targetPosition":{"x":30599.410157852384,"y":26486.00436041432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"51924a8f-f6b0-41f0-9fb5-8cd97d8d6531","savedPayload":{"position":{"x":30599.410157852384,"y":26486.00436041432},"targetPosition":{"x":30418.501785111286,"y":26764.416499694402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6ba3063d-c882-44d2-a7c4-9915a220b17e","savedPayload":{"position":{"x":36994.42151353139,"y":30523.698983173068},"targetPosition":{"x":36912.72565827914,"y":30649.49956836488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.position.entryTargetRate.value * 0.95","project":"Superalgos","id":"7c916535-3cd3-4b28-b671-06455eccdbc4","savedPayload":{"position":{"x":31110.452898142852,"y":27155.635931631317},"targetPosition":{"x":30816.156970159704,"y":27307.074013652535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"1H EMA7 < entryTargetRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value","project":"Superalgos","id":"452bd440-4b3f-4abc-a8d3-dbac108494ff","savedPayload":{"position":{"x":30832.919346028706,"y":26406.006248490805},"targetPosition":{"x":30693.757977412337,"y":26495.8816439992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"35ecc05e-c241-4661-aef7-cf9cd3a0718f","savedPayload":{"position":{"x":30693.757977412337,"y":26495.8816439992},"targetPosition":{"x":30536.05771442775,"y":26591.95487646544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"positionPeriods > 2","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.current.position.positionCounters.periods.value > 2","project":"Superalgos","id":"947fbe1d-2d73-413c-a66a-afc1d9fd5ea8","savedPayload":{"position":{"x":30850.32800473556,"y":26744.761999904855},"targetPosition":{"x":30702.80290933868,"y":26670.283962529254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"73661d44-6a9d-4841-8f45-7240649a5d6d","savedPayload":{"position":{"x":30702.80290933868,"y":26670.283962529254},"targetPosition":{"x":30536.05771442775,"y":26591.95487646544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1c59dd62-57a7-4ef6-9197-7b6fd102a06b","savedPayload":{"position":{"x":30536.05771442775,"y":26591.95487646544},"targetPosition":{"x":30321.1446263178,"y":26603.64229688271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"541feb51-68a3-4326-bd16-c7a91ec68cd2","savedPayload":{"position":{"x":31093.151675226647,"y":27488.23306520426},"targetPosition":{"x":30816.156970159704,"y":27307.074013652535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[],"announcements":[],"id":"ba7462a2-9b77-4628-8be8-0700e49ed2a8","savedPayload":{"position":{"x":30816.156970159704,"y":27307.074013652535},"targetPosition":{"x":30415.258702478946,"y":27286.338727852977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Manage: 3% Below ema7","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.97 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.97} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"f0ba9068-9fd8-46c1-89c6-c51c2127fad3","savedPayload":{"position":{"x":31163.841965768093,"y":26993.23270304936},"targetPosition":{"x":31146.366116487683,"y":27324.06513727981},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","name":"New Next Phase Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"3d7e602e-ca81-4d0f-808c-0b6987a224d4","savedPayload":{"position":{"x":20240.240828671245,"y":24894.970963939057},"targetPosition":{"x":20080.61013034513,"y":24536.97779059405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3cf490f8-fb04-4a14-aab8-1215009b40bd","savedPayload":{"position":{"x":20080.61013034513,"y":24536.97779059405},"targetPosition":{"x":19920.664668901947,"y":24178.943327043417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"399b9981-c283-4140-8600-904bd8fae636","savedPayload":{"position":{"x":19920.664668901947,"y":24178.943327043417},"targetPosition":{"x":19760.48476489394,"y":23820.82522001162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"19a0d710-315f-43b8-b1f0-8aca0f21d63e","savedPayload":{"position":{"x":31478.37453400236,"y":27441.36631811087},"targetPosition":{"x":31146.366116487683,"y":27324.06513727981},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"6407cb18-e862-47c7-8c3d-2ac857597595","savedPayload":{"position":{"x":31226.909930003072,"y":28406.443672684218},"targetPosition":{"x":30936.555608360475,"y":28247.435458324624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3218784f-7ac6-4f71-89ca-c13de6fb1e08","savedPayload":{"position":{"x":30936.555608360475,"y":28247.435458324624},"targetPosition":{"x":30645.757815348807,"y":28088.24450004683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"31096ee3-5cb2-437c-911c-b8dac600eeda","savedPayload":{"position":{"x":31031.356076465352,"y":28627.09839294401},"targetPosition":{"x":30838.71675092652,"y":28357.883178535238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4a59f893-ce98-40a8-a456-14758c0e3b72","savedPayload":{"position":{"x":30838.71675092652,"y":28357.883178535238},"targetPosition":{"x":30645.757815348807,"y":28088.24450004683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < positionRate","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < tradingEngine.current.position.entryTargetRate.value * 0.99","project":"Superalgos","id":"39e213d0-6871-4fcc-8ba7-6485b15b8010","savedPayload":{"position":{"x":30759.564070389417,"y":28741.012509371096},"targetPosition":{"x":30702.752965354215,"y":28414.877956701952},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a2c15f0e-3edb-4849-862a-dce24f143be6","savedPayload":{"position":{"x":30702.752965354215,"y":28414.877956701952},"targetPosition":{"x":30645.757815348807,"y":28088.24450004683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"5d4916ab-3a59-42cd-ad42-2c9be833bb36","savedPayload":{"position":{"x":30465.959939454922,"y":28725.773313486556},"targetPosition":{"x":30555.874885328834,"y":28407.249699258085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e90a9e18-c05e-4c34-8931-f934311d8be4","savedPayload":{"position":{"x":30555.874885328834,"y":28407.249699258085},"targetPosition":{"x":30645.757815348807,"y":28088.24450004683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"1578e195-a319-4748-8204-f90d816fc4ae","savedPayload":{"position":{"x":30207.702766443697,"y":28584.46208332645},"targetPosition":{"x":30426.661562725058,"y":28336.528022427614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b48541a5-46c2-4e7e-a072-07d94c1b2ac9","savedPayload":{"position":{"x":30426.661562725058,"y":28336.528022427614},"targetPosition":{"x":30645.757815348807,"y":28088.24450004683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Down && NOT Side","code":"chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Down\" && chart.at01hs.bollingerSubChannel.slope != \"Side\"","project":"Superalgos","id":"fb1f280f-632e-4097-b5da-dfdbacd169c3","savedPayload":{"position":{"x":30036.596332527653,"y":28345.086254141854},"targetPosition":{"x":30341.04138357284,"y":28216.794512212662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0000df02-7c31-423f-a377-ee7a54e745b1","savedPayload":{"position":{"x":30341.04138357284,"y":28216.794512212662},"targetPosition":{"x":30645.757815348807,"y":28088.24450004683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a9ea4174-771b-4b50-8376-05494437d912","savedPayload":{"position":{"x":30645.757815348807,"y":28088.24450004683},"targetPosition":{"x":30663.071229504196,"y":27741.673446254666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"730610f1-2311-4486-8905-37c9c001d766","savedPayload":{"position":{"x":31129.517746292884,"y":27655.067383273177},"targetPosition":{"x":31146.366116487683,"y":27324.06513727981},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"1a7c350c-eb3a-4d8a-af57-68aabda6fea7"}}}],"announcements":[],"id":"f631120e-4f0f-41f4-85b3-74778c8060c0","savedPayload":{"position":{"x":31146.366116487683,"y":27324.06513727981},"targetPosition":{"x":30816.165184490193,"y":27307.074492723572},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Close: BB Lower Band","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.standardDeviation * 2} else \n{tradingEngine.current.position.entryTargetRate.value * 0.97}","project":"Superalgos","id":"e0cee676-0034-4512-9ed3-b4f61df739bf","savedPayload":{"position":{"x":31722.180456538073,"y":27094.50405030886},"targetPosition":{"x":31476.27485905688,"y":27316.42073098317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Move to Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"2cd48b45-e3f4-4a76-8bf7-19470c990e1e","savedPayload":{"position":{"x":32160.954339536656,"y":27396.09762061706},"targetPosition":{"x":31926.962483285257,"y":27629.93166704668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"17193755-5b37-4ee7-82ca-a14db05dbd30","savedPayload":{"position":{"x":31926.962483285257,"y":27629.93166704668},"targetPosition":{"x":31692.741517544404,"y":27864.123009587405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 div ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema21 - chart.at01hs.base7EMA.ema14 > chart.at01hs.base7EMA.previous.ema21 - chart.at01hs.base7EMA.previous.ema14","project":"Superalgos","id":"b8cb24ca-a2ce-4ae6-b5d9-63471af0095f","savedPayload":{"position":{"x":32332.4083458319,"y":27692.987548804726},"targetPosition":{"x":32012.762928838238,"y":27778.48423873228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4facbae1-8244-47d9-bf81-2ebf58477c34","savedPayload":{"position":{"x":32012.762928838238,"y":27778.48423873228},"targetPosition":{"x":31692.741517544404,"y":27864.123009587405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"4e3f128a-a12a-444d-b706-c54a910da68b","savedPayload":{"position":{"x":32332.48179869735,"y":28035.13069726801},"targetPosition":{"x":32012.807700154226,"y":27949.64561731559},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2460f9b-c5ab-4502-9b39-38159b55534b","savedPayload":{"position":{"x":32012.807700154226,"y":27949.64561731559},"targetPosition":{"x":31692.741517544404,"y":27864.123009587405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema14 < ema21","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 < chart.at01hs.base7EMA.ema21 ","project":"Superalgos","id":"2a370595-33f8-4cf8-af80-e7871edcf8fa","savedPayload":{"position":{"x":32161.285578487958,"y":28331.9706917453},"targetPosition":{"x":31927.169050693803,"y":28098.14142320938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"133e251e-2ac5-4ebd-8f4c-73eb8c8ba7e1","savedPayload":{"position":{"x":31927.169050693803,"y":28098.14142320938},"targetPosition":{"x":31692.741517544404,"y":27864.123009587405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Down && NOT Side or Gentle","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Down\" && chart.at01hs.bollingerSubChannel.slope != \"Side\" && chart.at01hs.bollingerSubChannel.slope != \"Gentle\"","project":"Superalgos","id":"55435ac8-859e-4665-842c-f6603923589e","savedPayload":{"position":{"x":31864.69748740887,"y":28503.481654427414},"targetPosition":{"x":31778.833314432442,"y":28183.922962779805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ee4dad2e-77dd-4f45-9847-c3c2e563d015","savedPayload":{"position":{"x":31778.833314432442,"y":28183.922962779805},"targetPosition":{"x":31692.741517544404,"y":27864.123009587405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"42bd767a-7a9e-40dc-9973-ad6e2411e769","savedPayload":{"position":{"x":31692.741517544404,"y":27864.123009587405},"targetPosition":{"x":31356.85335669772,"y":27774.542463166923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"f9f58805-ee92-40ac-be13-6d242a6a476f","savedPayload":{"position":{"x":31894.924270482217,"y":27286.697977487514},"targetPosition":{"x":31476.27485905688,"y":27316.42073098317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Run","id":"1a7c350c-eb3a-4d8a-af57-68aabda6fea7"}}},{"type":"Move To Phase Event","name":"Cancel Close","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 div ema14","code":"chart.atAnyTimeFrame.externalSignal.timestamp > chart.atAnyTimeFrame.externalSignal.timestamp","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 > chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"32c1fa99-99b6-4bdd-ad3d-fcb3858413fe","savedPayload":{"position":{"x":32003.47029723571,"y":28547.18591236195},"targetPosition":{"x":31683.640947019667,"y":28461.087164626275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8f146719-384b-4e16-a0b3-c7501eeca1dd","savedPayload":{"position":{"x":31683.640947019667,"y":28461.087164626275},"targetPosition":{"x":31364.0886272388,"y":28375.221605560444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 div prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 > chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"b1d2c06e-3c41-474c-b241-62639db26336","savedPayload":{"position":{"x":31694.996222339665,"y":28948.65527382773},"targetPosition":{"x":31529.500458955496,"y":28661.925480665785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"655cd860-35be-4db4-8786-758133ade2f8","savedPayload":{"position":{"x":31529.500458955496,"y":28661.925480665785},"targetPosition":{"x":31364.0886272388,"y":28375.221605560444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"ema7 < ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.ema14","project":"Superalgos","id":"7b14d5ba-d792-4d0e-9c33-aae6abc015dd","savedPayload":{"position":{"x":31193.617501011395,"y":29014.74657093681},"targetPosition":{"x":31278.705259789735,"y":28694.929232194343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"41486047-0d08-4227-8d03-3e844c75a3ea","savedPayload":{"position":{"x":31278.705259789735,"y":28694.929232194343},"targetPosition":{"x":31364.0886272388,"y":28375.221605560444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"78031caf-041a-4f69-aea1-f9666aef959d","savedPayload":{"position":{"x":31364.0886272388,"y":28375.221605560444},"targetPosition":{"x":31190.77113086993,"y":28074.5398616331},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"ad7504d5-49ec-4fed-bc74-44f5f398def7","savedPayload":{"position":{"x":31697.852032028648,"y":27563.048140143997},"targetPosition":{"x":31476.27485905688,"y":27316.42073098317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"f631120e-4f0f-41f4-85b3-74778c8060c0"}}}],"announcements":[],"id":"bee5a88b-489f-48ce-be58-4531f815462a","savedPayload":{"position":{"x":31476.27485905688,"y":27316.42073098317},"targetPosition":{"x":31146.366116487683,"y":27324.06513727981},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Phase","name":"Run","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"if (chart.at01hs.base7EMA.ema7 * 0.8 < \ntradingEngine.current.position.entryTargetRate.value * 0.97) \n{chart.at01hs.base7EMA.ema7 * 0.8} else \n{tradingEngine.current.position.takeProfit.value}","project":"Superalgos","id":"6e3648cc-0d59-428a-acc2-afcf2a6e86c4","savedPayload":{"position":{"x":31965.765365082087,"y":27067.683451402198},"targetPosition":{"x":31785.136221255707,"y":27345.321644004936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[{"type":"Move To Phase Event","name":"Cancel Run","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"ema7 conv ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.ema14 - chart.at01hs.base7EMA.ema7 < chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7","project":"Superalgos","id":"d68720e4-049f-46b9-b412-f0378573a413","savedPayload":{"position":{"x":19478.870693897756,"y":25914.913440732285},"targetPosition":{"x":19233.289037172442,"y":25609.012661328474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"609ce0eb-a9ec-495a-9f99-cd5adeaa5824","savedPayload":{"position":{"x":19233.289037172442,"y":25609.012661328474},"targetPosition":{"x":18991.092642047013,"y":25307.55268022269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"prev.ema7 conv prev.ema14","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.base7EMA.previous.ema14 - chart.at01hs.base7EMA.previous.ema7 < chart.at01hs.base7EMA.previous.previous.ema14 - chart.at01hs.base7EMA.previous.previous.ema7","project":"Superalgos","id":"49efa579-e07f-432e-ab03-458909afe80a","savedPayload":{"position":{"x":18906.689833894925,"y":26088.945687796775},"targetPosition":{"x":18948.91570912904,"y":25698.367529994284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"70e024f2-8dc4-443b-b7d0-8d979bd7879a","savedPayload":{"position":{"x":18948.91570912904,"y":25698.367529994284},"targetPosition":{"x":18991.092642047013,"y":25307.55268022269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Up || Side, Gentle or Medium","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerSubChannel.direction === \"Up\" || chart.at01hs.bollingerSubChannel.slope === \"Side\" || chart.at01hs.bollingerSubChannel.slope === \"Gentle\" || chart.at01hs.bollingerSubChannel.slope === \"Medium\"","project":"Superalgos","id":"199cc33c-0e13-4de9-910a-c9d356e9d0d6","savedPayload":{"position":{"x":18379.255171744895,"y":25802.71286863055},"targetPosition":{"x":18685.152272428706,"y":25555.223942768105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3621eed7-d3f5-4350-8e53-6eb76377b10a","savedPayload":{"position":{"x":18685.152272428706,"y":25555.223942768105},"targetPosition":{"x":18991.092642047013,"y":25307.55268022269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dede1ba7-70c6-417a-a54a-14177afbd413","savedPayload":{"position":{"x":18991.092642047013,"y":25307.55268022269},"targetPosition":{"x":19041.145388877303,"y":24900.1252819843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"76a5126e-7d21-4160-b25a-08631b6d519a","savedPayload":{"position":{"x":32063.065574665678,"y":27525.504609599462},"targetPosition":{"x":31785.136221255707,"y":27345.321644004936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Phase","name":"Manage: 3% Below ema7","id":"f631120e-4f0f-41f4-85b3-74778c8060c0"}}}],"announcements":[],"id":"1a7c350c-eb3a-4d8a-af57-68aabda6fea7","savedPayload":{"position":{"x":31785.136221255707,"y":27345.321644004936},"targetPosition":{"x":31476.27485905688,"y":27316.42073098317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a3dd2636-1b11-4d0a-8a32-945e790a97e5","savedPayload":{"position":{"x":37062.520088492325,"y":30657.349961801323},"targetPosition":{"x":36912.72565827914,"y":30649.49956836488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"6af83cfb-a8f9-4313-8013-495ed37ee6f5","savedPayload":{"position":{"x":34694.72565827914,"y":30651.49956836488},"targetPosition":{"x":34427.42370102263,"y":30787.696718286745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.episode.candle.close.value","project":"Superalgos","id":"39714970-7a27-412a-93ee-86e793262cc2","savedPayload":{"position":{"x":30859.05061931829,"y":27088.766071439997},"targetPosition":{"x":30650.734631299514,"y":27345.16371960425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"587f4120-6e47-4a59-ae01-edee731eb2fe","savedPayload":{"position":{"x":30650.734631299514,"y":27345.16371960425},"targetPosition":{"x":30392.367040420577,"y":27663.17834875628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value","project":"Superalgos","id":"366084ff-7027-403c-a20a-40d9308cd3ed","savedPayload":{"position":{"x":31122.575818368736,"y":27778.94754607285},"targetPosition":{"x":30795.51316618894,"y":27727.11568542081},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e9bb0180-bce1-440e-9e5e-5d6ddf63e163","savedPayload":{"position":{"x":30795.51316618894,"y":27727.11568542081},"targetPosition":{"x":30392.367040420577,"y":27663.17834875628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2fb1e698-028f-43a5-a380-024e4607f5dc","savedPayload":{"position":{"x":37081.767267175754,"y":30778.87186536702},"targetPosition":{"x":36941.73020320117,"y":30832.627057798814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Quick Exit","config":"{\n\"percentageOfAlgorithmSize\": 100,\n\"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"9cf7ec1d-7cec-4b00-8938-2724ab31308f","savedPayload":{"position":{"x":29099.682582886584,"y":28243.411996100782},"targetPosition":{"x":29059.106797338514,"y":28051.23246422733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ee800c76-ec26-4156-9e65-c8a8ba09b00a","savedPayload":{"position":{"x":29059.106797338514,"y":28051.23246422733},"targetPosition":{"x":29018.425466202694,"y":27858.37898519233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d2660921-d3f8-4b4a-b5cd-d982f6863fdf","savedPayload":{"position":{"x":29018.425466202694,"y":27858.37898519233},"targetPosition":{"x":28968.897045204394,"y":27623.844444671726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"19b0ab5e-f2ca-47f9-98fe-b43917714700","savedPayload":{"position":{"x":31171.82917240986,"y":28662.58598331229},"targetPosition":{"x":30914.888169734288,"y":28454.56183304584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3b0ef4ee-e948-43aa-a2f6-db556880d6df","savedPayload":{"position":{"x":30914.888169734288,"y":28454.56183304584},"targetPosition":{"x":30657.8106193906,"y":28246.444237643365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"490a2173-4a73-4822-a292-c45afc643262","savedPayload":{"position":{"x":30657.8106193906,"y":28246.444237643365},"targetPosition":{"x":30340.456811626922,"y":27989.558152378777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"525d3607-b2b2-4345-af7c-fdde1b649060","savedPayload":{"position":{"x":37058.30209741972,"y":30927.02511645629},"targetPosition":{"x":36941.73020320117,"y":30832.627057798814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"0d1db0bb-2e8d-4289-93cd-b2a5e2d6b77c","savedPayload":{"position":{"x":34723.73020320117,"y":30834.627057798814},"targetPosition":{"x":34427.42370102263,"y":30787.696718286745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f1787887-41aa-41d4-80c5-34db452cd148","savedPayload":{"position":{"x":34427.42370102263,"y":30787.696718286745},"targetPosition":{"x":34215.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3313017d-fdce-481b-9679-fe8e4f67cd45","savedPayload":{"position":{"x":34215.291666666664,"y":30999.82875264271},"targetPosition":{"x":34215.291666666664,"y":30999.82875264271},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading System","name":"BB Breakdown","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","tradingStrategies":[{"type":"Trading Strategy","name":"Downtrends","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type your code","project":"Superalgos","id":"49f9e01b-b76d-43b4-b05a-8ed05a82c9d9","savedPayload":{"position":{"x":37724.61421763948,"y":29567.818892973355},"targetPosition":{"x":37771.544557151545,"y":29864.125395151896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ce77acd7-8c75-4fa3-ba25-349b1bf81445","savedPayload":{"position":{"x":37771.544557151545,"y":29864.125395151896},"targetPosition":{"x":37818.47489666361,"y":30160.431897330436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8c7701f2-de6f-4875-b999-870ffaa84edf","savedPayload":{"position":{"x":37818.47489666361,"y":30160.431897330436},"targetPosition":{"x":37865.40523617568,"y":30456.738399508977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"240b7158-8790-4e15-90b6-f828da55a240","savedPayload":{"position":{"x":37865.40523617568,"y":30456.738399508977},"targetPosition":{"x":37912.33557568774,"y":30753.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type your code","project":"Superalgos","id":"72df12aa-a098-44ae-8eaf-cf1393b1ac93","savedPayload":{"position":{"x":38617.67787843871,"y":29782.224508437586},"targetPosition":{"x":38441.34230275097,"y":30024.92960675007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"43f5e676-0cec-4c55-bcc0-c5b67d29b7fc","savedPayload":{"position":{"x":38441.34230275097,"y":30024.92960675007},"targetPosition":{"x":38265.00672706323,"y":30267.63470506255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"407c539f-6072-4df4-a17f-e22448518709","savedPayload":{"position":{"x":38265.00672706323,"y":30267.63470506255},"targetPosition":{"x":38088.671151375485,"y":30510.339803375035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"885eccea-a420-4062-9474-f315af3a4614","savedPayload":{"position":{"x":38088.671151375485,"y":30510.339803375035},"targetPosition":{"x":37912.33557568774,"y":30753.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type your code","project":"Superalgos","id":"6a481f5e-92a5-48e7-bb67-819ace78a1d3","savedPayload":{"position":{"x":39097.56158440192,"y":30565.32354363924},"targetPosition":{"x":38801.255082223375,"y":30612.25388315131},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"911697ab-a7f8-48e9-9e53-bef9131f37d6","savedPayload":{"position":{"x":38801.255082223375,"y":30612.25388315131},"targetPosition":{"x":38504.94858004483,"y":30659.184222663378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b28076cb-8cb9-473f-a86d-885400471fb7","savedPayload":{"position":{"x":38504.94858004483,"y":30659.184222663378},"targetPosition":{"x":38208.64207786629,"y":30706.114562175448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"94c3e04a-3bd1-4226-8942-77f3acc19b8c","savedPayload":{"position":{"x":38208.64207786629,"y":30706.114562175448},"targetPosition":{"x":37912.33557568774,"y":30753.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"4c4e692c-1507-46b8-882a-84bb88358894","savedPayload":{"position":{"x":37912.33557568774,"y":30753.044901687517},"targetPosition":{"x":37736,"y":30995.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"40970278-13b4-4602-8127-6dd7b4999fac","savedPayload":{"position":{"x":42479.10390818544,"y":30054.109034653917},"targetPosition":{"x":42571.809006497926,"y":30339.425989542462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48a0d21e-ab2e-4c44-b226-24086a8c3db1","savedPayload":{"position":{"x":42571.809006497926,"y":30339.425989542462},"targetPosition":{"x":42664.51410481041,"y":30624.742944431007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"5e64aa3e-afce-478e-9e6f-18fd798efdd1","savedPayload":{"position":{"x":42936.90840465414,"y":30090.139029917988},"targetPosition":{"x":42800.711254732276,"y":30357.440987174497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f1b097cd-5d34-4bcf-9690-7ab3d9a053de","savedPayload":{"position":{"x":42800.711254732276,"y":30357.440987174497},"targetPosition":{"x":42664.51410481041,"y":30624.742944431007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"45b11e6e-3222-4f7b-ba87-97389c7d1e18","savedPayload":{"position":{"x":43235.14801458751,"y":30439.332747806042},"targetPosition":{"x":42949.83105969896,"y":30532.037846118525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c43b73ba-36b3-465b-950b-6a67962fefcf","savedPayload":{"position":{"x":42949.83105969896,"y":30532.037846118525},"targetPosition":{"x":42664.51410481041,"y":30624.742944431007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a91b9a01-2ba8-4875-b44e-49f7f8de1e09","savedPayload":{"position":{"x":42664.51410481041,"y":30624.742944431007},"targetPosition":{"x":42528.31695488855,"y":30892.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[],"id":"66a499dc-691b-4b0f-965d-ee06b50c1fd4","savedPayload":{"position":{"x":42813.6339097771,"y":30799.339803375035},"targetPosition":{"x":42528.31695488855,"y":30892.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStageEvent":{"type":"Close Stage Event","name":"New Close Stage Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type you code","project":"Superalgos","id":"54c3e9ab-42c1-42b0-86b0-fcf20366d753","savedPayload":{"position":{"x":43597.52478391459,"y":31436.83350137497},"targetPosition":{"x":43330.22282665808,"y":31300.636351453108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a76dfbd9-e4b6-493e-b71c-178e63ae4cc9","savedPayload":{"position":{"x":43330.22282665808,"y":31300.636351453108},"targetPosition":{"x":43062.92086940157,"y":31164.439201531244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b03761e5-d628-49ef-8bfc-37d2c51b44d8","savedPayload":{"position":{"x":43062.92086940157,"y":31164.439201531244},"targetPosition":{"x":42795.61891214506,"y":31028.24205160938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"583b93d6-1c6e-4b1b-a521-0257dc1bebd2","savedPayload":{"position":{"x":42795.61891214506,"y":31028.24205160938},"targetPosition":{"x":42528.31695488855,"y":30892.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"445c1aa9-c01e-4b62-ab24-4e85e4b0b672","savedPayload":{"position":{"x":38021.31695488855,"y":30903.044901687517},"targetPosition":{"x":37736,"y":30995.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"New Manage Stage","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"7fbae7ef-3b76-4c8b-bddf-c481d3b0bb12","savedPayload":{"position":{"x":43408.64979554898,"y":30890.3345765765},"targetPosition":{"x":43115.20551532884,"y":30952.708083821828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"18a3a18a-fb61-4237-86da-1fde3e7c5347","savedPayload":{"position":{"x":43115.20551532884,"y":30952.708083821828},"targetPosition":{"x":42821.761235108694,"y":31015.081591067155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b0bdea9c-cc98-49e2-b7a4-54e1ed7d9645","savedPayload":{"position":{"x":42821.761235108694,"y":31015.081591067155},"targetPosition":{"x":42528.31695488855,"y":31077.455098312483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"29ccd4c2-12a2-4d87-b328-663e078e322d","savedPayload":{"position":{"x":43130.534500611524,"y":31746.285441242137},"targetPosition":{"x":42929.795318703866,"y":31523.34199359892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"4db98320-0d9e-4a54-8a98-c1ea54875ea7","savedPayload":{"position":{"x":42929.795318703866,"y":31523.34199359892},"targetPosition":{"x":42729.05613679621,"y":31300.3985459557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04a8a8cd-b49e-4253-afee-ab153cfff278","savedPayload":{"position":{"x":42729.05613679621,"y":31300.3985459557},"targetPosition":{"x":42528.31695488855,"y":31077.455098312483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"4c6b0f7e-a3ce-4553-a85a-cadce929b489","savedPayload":{"position":{"x":38021.31695488855,"y":31088.455098312483},"targetPosition":{"x":37736,"y":30995.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"7edf107f-1cd2-4b8e-8731-326c994963d7","savedPayload":{"position":{"x":43201.05227449126,"y":30921.714286449067},"targetPosition":{"x":42958.34717617877,"y":31098.04986213681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"46938174-6810-44ad-ad9d-aef66616a8eb","savedPayload":{"position":{"x":42958.34717617877,"y":31098.04986213681},"targetPosition":{"x":42715.64207786629,"y":31274.385437824552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"8dc95dd0-1194-4dc0-a070-ac59a7b7e404","savedPayload":{"position":{"x":43308.255082223375,"y":31368.24611684869},"targetPosition":{"x":43011.94858004483,"y":31321.315777336622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8850c7f-791d-4037-86b3-7c4acfb90206","savedPayload":{"position":{"x":43011.94858004483,"y":31321.315777336622},"targetPosition":{"x":42715.64207786629,"y":31274.385437824552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"297b876e-cd51-47fa-9673-b8e1a18d94bc","savedPayload":{"position":{"x":43068.31322924177,"y":31759.795634449518},"targetPosition":{"x":42891.97765355403,"y":31517.090536137035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4aeccd0b-fa72-4a57-b9ed-710d65dc6db6","savedPayload":{"position":{"x":42891.97765355403,"y":31517.090536137035},"targetPosition":{"x":42715.64207786629,"y":31274.385437824552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45a3140e-b92f-4a15-87e8-cc6c0e76a311","savedPayload":{"position":{"x":42715.64207786629,"y":31274.385437824552},"targetPosition":{"x":42419.33557568774,"y":31227.455098312483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","name":"New Close Execution","project":"Superalgos","executionAlgorithms":[],"id":"af9c2d8a-367d-4b2a-9477-5da0ba80fc2d","savedPayload":{"position":{"x":42595.671151375485,"y":31470.160196624965},"targetPosition":{"x":42419.33557568774,"y":31227.455098312483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStageEvent":{"type":"Close Stage Event","name":"New Close Stage Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type you code","project":"Superalgos","id":"1feffa62-1bb9-45c8-bddd-5851d215861a","savedPayload":{"position":{"x":42231.61421763948,"y":32412.681107026645},"targetPosition":{"x":42278.544557151545,"y":32116.374604848104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3578e6db-9af2-4b12-8e76-de1afe9cec9c","savedPayload":{"position":{"x":42278.544557151545,"y":32116.374604848104},"targetPosition":{"x":42325.47489666361,"y":31820.068102669564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8fde4b1f-d61f-4191-aa80-bd4620777324","savedPayload":{"position":{"x":42325.47489666361,"y":31820.068102669564},"targetPosition":{"x":42372.40523617568,"y":31523.761600491023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"cc8d7e95-9fb1-4aae-bbe8-93a875cf8d23","savedPayload":{"position":{"x":42372.40523617568,"y":31523.761600491023},"targetPosition":{"x":42419.33557568774,"y":31227.455098312483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"3e9d7cbf-d5cb-4e72-ad41-c1b2c42846c4","savedPayload":{"position":{"x":37912.33557568774,"y":31238.455098312483},"targetPosition":{"x":37736,"y":30995.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cb75e487-ba89-4f0a-859a-7b9e820f42b9","savedPayload":{"position":{"x":37736,"y":30995.75},"targetPosition":{"x":37436,"y":30995.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"dynamicIndicators":{"type":"Dynamic Indicators","name":"New Dynamic Indicators","project":"Superalgos","indicatorFunctions":[{"type":"Indicator Function","name":"New Indicator Function","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"7f85a267-bb1f-4dca-90da-3eda4f65104c","savedPayload":{"position":{"x":36536,"y":30995.75},"targetPosition":{"x":36836,"y":30995.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"22bbc7ed-b0ea-4d05-9ea0-cf3e689edbcb","savedPayload":{"position":{"x":36836,"y":30995.75},"targetPosition":{"x":37136,"y":30995.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"35a67df1-5cb1-4d70-bdca-0309727a6a82","savedPayload":{"position":{"x":37136,"y":30995.75},"targetPosition":{"x":37436,"y":30995.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"77e18ff3-e29b-4e35-ba66-e34af262d35d","savedPayload":{"position":{"x":37436,"y":30995.75},"targetPosition":{"x":37436,"y":30995.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading System","name":"BB Breakdown 2","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","tradingStrategies":[{"type":"Trading Strategy","name":"Downtrends","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"Downtrend","project":"Superalgos","conditions":[{"type":"Condition","name":"24H Down","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.direction === 'Down'","project":"Superalgos","id":"f35f904d-f6d0-4ef8-b0a9-c57ced9094c5","savedPayload":{"position":{"x":41024.43291081813,"y":29590.304622744876},"targetPosition":{"x":41146.45390374087,"y":29864.368260037656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6f15f910-423a-41d9-afd9-0d913d3d8ea0","savedPayload":{"position":{"x":41146.45390374087,"y":29864.368260037656},"targetPosition":{"x":41268.47489666361,"y":30138.431897330436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"24H Not Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope != 'Side'","project":"Superalgos","id":"a4c22a70-a6d0-4045-9feb-b979b57b4ea7","savedPayload":{"position":{"x":41331.191974624206,"y":29541.718760109474},"targetPosition":{"x":41299.83343564391,"y":29840.075328719955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c41d7264-3256-45f0-8d52-f5c867c9394b","savedPayload":{"position":{"x":41299.83343564391,"y":29840.075328719955},"targetPosition":{"x":41268.47489666361,"y":30138.431897330436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6eab6415-52e8-401c-93ea-e4e50b11489b","savedPayload":{"position":{"x":41268.47489666361,"y":30138.431897330436},"targetPosition":{"x":41315.40523617568,"y":30434.738399508977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"34ebc2f8-0321-49e2-8959-7660bdbb024f","savedPayload":{"position":{"x":41315.40523617568,"y":30434.738399508977},"targetPosition":{"x":41362.33557568774,"y":30731.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"24H Up","project":"Superalgos","conditions":[{"type":"Condition","name":"24H Up","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.direction === 'Up'","project":"Superalgos","id":"702c8003-6971-463d-95a7-96687903f5cb","savedPayload":{"position":{"x":41861.20230596626,"y":29648.117419527556},"targetPosition":{"x":41753.69192110267,"y":29928.191547476716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4682b49e-2036-4562-9ebb-ee9564c94f85","savedPayload":{"position":{"x":41753.69192110267,"y":29928.191547476716},"targetPosition":{"x":41646.18153623908,"y":30208.265675425875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"288bac73-a6f1-42c7-9afd-21138f8d862c","savedPayload":{"position":{"x":41646.18153623908,"y":30208.265675425875},"targetPosition":{"x":41538.671151375485,"y":30488.339803375035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Situation","name":"24H Side","project":"Superalgos","conditions":[{"type":"Condition","name":"24H Side","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at24hs.bollingerSubChannel.slope === 'Side'","project":"Superalgos","id":"15fd1f5e-5f94-4ac7-beeb-9edefb72ac31","savedPayload":{"position":{"x":42238.102516686755,"y":29921.951451430177},"targetPosition":{"x":42004.958728249665,"y":30110.74756874513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"731ccc64-d435-426a-b18f-244def934448","savedPayload":{"position":{"x":42004.958728249665,"y":30110.74756874513},"targetPosition":{"x":41771.814939812575,"y":30299.543686060082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"931bf435-a0cd-4794-91cf-66cef085b570","savedPayload":{"position":{"x":41771.814939812575,"y":30299.543686060082},"targetPosition":{"x":41538.671151375485,"y":30488.339803375035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"c6157f49-5b54-4621-8594-59764cb3db0a","savedPayload":{"position":{"x":41538.671151375485,"y":30488.339803375035},"targetPosition":{"x":41362.33557568774,"y":30731.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"Entry","project":"Superalgos","conditions":[{"type":"Condition","name":"1H Breakdown","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","project":"Superalgos","id":"421ea2b5-ca7a-4528-a3b1-2e8695095db6","savedPayload":{"position":{"x":42503.0758546304,"y":30393.1422368179},"targetPosition":{"x":42229.012217337615,"y":30515.16322974064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0bd018a0-8a32-4410-b195-c18eaabcf23d","savedPayload":{"position":{"x":42229.012217337615,"y":30515.16322974064},"targetPosition":{"x":41954.94858004483,"y":30637.184222663378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"1H Previous Breakdown","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.candle.previous.close < chart.at01hs.bollingerBand.previous.movingAverage - chart.at01hs.bollingerBand.previous.deviation","project":"Superalgos","id":"0959388c-887f-4d17-b771-67c961fa1389","savedPayload":{"position":{"x":42551.6617172658,"y":30699.901300623973},"targetPosition":{"x":42253.305148655316,"y":30668.542761643675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9c96f683-a3fd-4422-b378-ac0737e7fb77","savedPayload":{"position":{"x":42253.305148655316,"y":30668.542761643675},"targetPosition":{"x":41954.94858004483,"y":30637.184222663378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"11d94ad0-4493-4a46-a881-9b0942c9882c","savedPayload":{"position":{"x":41954.94858004483,"y":30637.184222663378},"targetPosition":{"x":41658.64207786629,"y":30684.114562175448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"17c1e427-af3b-4b52-8ea4-7338b7dd2c0c","savedPayload":{"position":{"x":41658.64207786629,"y":30684.114562175448},"targetPosition":{"x":41362.33557568774,"y":30731.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"0f202dd0-60c9-467e-abf3-cde37e611cbf","savedPayload":{"position":{"x":41362.33557568774,"y":30731.044901687517},"targetPosition":{"x":41186,"y":30973.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"0bae61e3-861b-42f9-abaa-85da233005eb","savedPayload":{"position":{"x":41422.10390818544,"y":30043.109034653917},"targetPosition":{"x":41514.809006497926,"y":30328.425989542462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"70b22c9f-5e23-480a-8418-0e7dedc3ca90","savedPayload":{"position":{"x":41514.809006497926,"y":30328.425989542462},"targetPosition":{"x":41607.51410481041,"y":30613.742944431007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"964f5306-f46f-4ba7-a367-fd24ac10a112","savedPayload":{"position":{"x":41879.90840465414,"y":30079.139029917988},"targetPosition":{"x":41743.711254732276,"y":30346.440987174497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d623a61e-83e7-401f-a26f-f48618f20d2f","savedPayload":{"position":{"x":41743.711254732276,"y":30346.440987174497},"targetPosition":{"x":41607.51410481041,"y":30613.742944431007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"cca8b0d9-9fe2-43d7-af72-7f6fbdb5dcf0","savedPayload":{"position":{"x":42178.14801458751,"y":30428.332747806042},"targetPosition":{"x":41892.83105969896,"y":30521.037846118525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e163b18-730b-497f-99e9-5415c2e42aa8","savedPayload":{"position":{"x":41892.83105969896,"y":30521.037846118525},"targetPosition":{"x":41607.51410481041,"y":30613.742944431007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"22b563b5-472f-4eb4-84de-0a071f2b9a25","savedPayload":{"position":{"x":41607.51410481041,"y":30613.742944431007},"targetPosition":{"x":41471.31695488855,"y":30881.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"New Market Sell Order","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type you code","project":"Superalgos","id":"7dd19ce4-74fa-4634-bd3e-906f44ea5f5a","savedPayload":{"position":{"x":43130.22454718483,"y":29711.155816177197},"targetPosition":{"x":42929.48536527717,"y":29934.099263820415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e9207f0e-052c-4567-993d-127bc2b56ba7","savedPayload":{"position":{"x":42929.48536527717,"y":29934.099263820415},"targetPosition":{"x":42728.74618336951,"y":30157.042711463633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a0839bfa-724c-44c3-943f-6ce958ee6cf0","savedPayload":{"position":{"x":42728.74618336951,"y":30157.042711463633},"targetPosition":{"x":42528.007001461854,"y":30379.98615910685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"3e26be06-9e44-49c8-bcd1-b1b10d6b9032","savedPayload":{"position":{"x":42528.007001461854,"y":30379.98615910685},"targetPosition":{"x":42327.267819554196,"y":30602.92960675007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"simulatedExchangeEvents":{"type":"Simulated Exchange Events","name":"New Simulated Exchange Events","project":"Superalgos","simulatedPartialFill":{"type":"Simulated Partial Fill","name":"New Simulated Partial Fill","config":"{ \n\"fillProbability\": 1\n}","project":"Superalgos","id":"aa5a86bf-7a8e-42ac-94a8-7eaaf9fb3560","savedPayload":{"position":{"x":42872.31327015797,"y":30501.91140349089},"targetPosition":{"x":42620.71209977434,"y":30665.303113995396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"simulatedActualRate":{"type":"Simulated Actual Rate","name":"New Simulated Actual Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"00fa5057-2627-4202-80cb-21f43ef92654","savedPayload":{"position":{"x":43207.60066021463,"y":30790.05012848605},"targetPosition":{"x":42914.156379994485,"y":30727.676621240724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c043c112-78eb-4c74-ba88-9e925ccfaaa0","savedPayload":{"position":{"x":42914.156379994485,"y":30727.676621240724},"targetPosition":{"x":42620.71209977434,"y":30665.303113995396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"simulatedFeesPaid":{"type":"Simulated Fees Paid","name":"New Simulated Fees Paid","config":"{ \n\"percentage\": 0.1\n}","project":"Superalgos","id":"d255505e-771e-4b10-8056-3ceccd9366a9","savedPayload":{"position":{"x":42784.10381027885,"y":30916.904284379023},"targetPosition":{"x":42620.71209977434,"y":30665.303113995396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"33087166-b118-4e52-ba48-6c4c03733c49","savedPayload":{"position":{"x":42620.71209977434,"y":30665.303113995396},"targetPosition":{"x":42327.267819554196,"y":30602.92960675007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"29a57a7b-5f26-4e92-a6c6-60133af828c1","savedPayload":{"position":{"x":42327.267819554196,"y":30602.92960675007},"targetPosition":{"x":42041.95086466565,"y":30695.63470506255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"2db6e124-8de6-4be8-a27f-0feec4870b3f","savedPayload":{"position":{"x":42041.95086466565,"y":30695.63470506255},"targetPosition":{"x":41756.6339097771,"y":30788.339803375035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cdce969d-baf7-42d7-a89c-58937a31acc3","savedPayload":{"position":{"x":41756.6339097771,"y":30788.339803375035},"targetPosition":{"x":41471.31695488855,"y":30881.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStageEvent":{"type":"Close Stage Event","name":"New Close Stage Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type you code","project":"Superalgos","id":"a0cfc71f-70a9-43a9-ad46-2b13331f895f","savedPayload":{"position":{"x":42540.52478391459,"y":31425.83350137497},"targetPosition":{"x":42273.22282665808,"y":31289.636351453108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d67fd80a-3613-4f5b-89b6-e08603ef6f29","savedPayload":{"position":{"x":42273.22282665808,"y":31289.636351453108},"targetPosition":{"x":42005.92086940157,"y":31153.439201531244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"75df1fae-dfa7-40f9-a62c-f62dff2a5f91","savedPayload":{"position":{"x":42005.92086940157,"y":31153.439201531244},"targetPosition":{"x":41738.61891214506,"y":31017.24205160938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"eb25888f-abd5-42d2-8a35-8eef8fec0bb4","savedPayload":{"position":{"x":41738.61891214506,"y":31017.24205160938},"targetPosition":{"x":41471.31695488855,"y":30881.044901687517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"f31f4f8e-200f-415c-a327-1fcc08280f97","savedPayload":{"position":{"x":41471.31695488855,"y":30881.044901687517},"targetPosition":{"x":41186,"y":30973.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"New Manage Stage","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"ce63cf63-b90b-4b90-a1ee-a76eaab4c04a","savedPayload":{"position":{"x":42351.64979554898,"y":30879.3345765765},"targetPosition":{"x":42058.20551532884,"y":30941.708083821828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"14b20d6c-b40f-4452-aef3-44a5ebefe543","savedPayload":{"position":{"x":42058.20551532884,"y":30941.708083821828},"targetPosition":{"x":41764.761235108694,"y":31004.081591067155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"26a0240a-ab1b-4276-a9f9-ab1d6a7f788a","savedPayload":{"position":{"x":41764.761235108694,"y":31004.081591067155},"targetPosition":{"x":41471.31695488855,"y":31066.455098312483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"3fddba16-ef54-418c-962e-5bb5e14e4cc6","savedPayload":{"position":{"x":42073.534500611524,"y":31735.285441242137},"targetPosition":{"x":41872.795318703866,"y":31512.34199359892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"1b591f51-56e1-41c3-b9d2-26790642ce94","savedPayload":{"position":{"x":41872.795318703866,"y":31512.34199359892},"targetPosition":{"x":41672.05613679621,"y":31289.3985459557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3ea4ea70-17fc-4cf2-999d-0054a6a28b87","savedPayload":{"position":{"x":41672.05613679621,"y":31289.3985459557},"targetPosition":{"x":41471.31695488855,"y":31066.455098312483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"b5b4f055-28ab-4d73-b81b-23f70b8a9b2d","savedPayload":{"position":{"x":41471.31695488855,"y":31066.455098312483},"targetPosition":{"x":41186,"y":30973.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"1771d727-e2ba-4d1e-ace4-81a32ee6826e","savedPayload":{"position":{"x":42144.05227449126,"y":30910.714286449067},"targetPosition":{"x":41901.34717617877,"y":31087.04986213681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"20d38486-504d-4354-b11c-9179f5163511","savedPayload":{"position":{"x":41901.34717617877,"y":31087.04986213681},"targetPosition":{"x":41658.64207786629,"y":31263.385437824552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"c7b8900c-91f6-4223-bc46-1e6a17db862a","savedPayload":{"position":{"x":42251.255082223375,"y":31357.24611684869},"targetPosition":{"x":41954.94858004483,"y":31310.315777336622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"74baddfc-9413-4f32-89a7-ab6170744471","savedPayload":{"position":{"x":41954.94858004483,"y":31310.315777336622},"targetPosition":{"x":41658.64207786629,"y":31263.385437824552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"b762f5c3-cf19-4bcd-b881-01ccbf15a2c1","savedPayload":{"position":{"x":42011.31322924177,"y":31748.795634449518},"targetPosition":{"x":41834.97765355403,"y":31506.090536137035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fc87b998-1c00-4ba9-9b92-50ac0b0e0dd5","savedPayload":{"position":{"x":41834.97765355403,"y":31506.090536137035},"targetPosition":{"x":41658.64207786629,"y":31263.385437824552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f857d377-51f7-4140-8eec-93665ce6aa79","savedPayload":{"position":{"x":41658.64207786629,"y":31263.385437824552},"targetPosition":{"x":41362.33557568774,"y":31216.455098312483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","name":"New Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"New Market Buy Order","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type you code","project":"Superalgos","id":"fbfc4a88-9576-4a94-9c29-306b71943cc9","savedPayload":{"position":{"x":42987.596851922106,"y":32432.654364940885},"targetPosition":{"x":42713.53321462932,"y":32310.633372018146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e90e9ded-9d92-499d-bb85-31c1a596cb10","savedPayload":{"position":{"x":42713.53321462932,"y":32310.633372018146},"targetPosition":{"x":42439.46957733654,"y":32188.612379095408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"377b5d3f-d4cc-4a7c-8160-29df5d06d10f","savedPayload":{"position":{"x":42439.46957733654,"y":32188.612379095408},"targetPosition":{"x":42165.405940043755,"y":32066.59138617267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"00941dbb-93a7-433f-a1b4-26bad9b3ef44","savedPayload":{"position":{"x":42165.405940043755,"y":32066.59138617267},"targetPosition":{"x":41891.34230275097,"y":31944.57039324993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"simulatedExchangeEvents":{"type":"Simulated Exchange Events","name":"New Simulated Exchange Events","project":"Superalgos","simulatedPartialFill":{"type":"Simulated Partial Fill","name":"New Simulated Partial Fill","config":"{ \n\"fillProbability\": 1\n}","project":"Superalgos","id":"b898afaf-aeaf-498a-82c3-ad0396d2307c","savedPayload":{"position":{"x":42155.84463016836,"y":32431.723079175365},"targetPosition":{"x":41922.70084173127,"y":32242.926961860412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"simulatedActualRate":{"type":"Simulated Actual Rate","name":"New Simulated Actual Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"c88724a9-4931-44af-abdc-6c7fb7ecc2b7","savedPayload":{"position":{"x":41985.41791969186,"y":32839.64009908138},"targetPosition":{"x":41954.059380711566,"y":32541.283530470893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a085b339-6177-4129-b9af-aca3699ffc63","savedPayload":{"position":{"x":41954.059380711566,"y":32541.283530470893},"targetPosition":{"x":41922.70084173127,"y":32242.926961860412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"simulatedFeesPaid":{"type":"Simulated Fees Paid","name":"New Simulated Fees Paid","config":"{ \n\"percentage\": 0.1\n}","project":"Superalgos","id":"bad60868-c630-43fd-a4d6-59ddf9d91c62","savedPayload":{"position":{"x":41733.904724416316,"y":32476.070750297502},"targetPosition":{"x":41922.70084173127,"y":32242.926961860412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6760aa1c-515f-47fa-a544-2fdca1043674","savedPayload":{"position":{"x":41922.70084173127,"y":32242.926961860412},"targetPosition":{"x":41891.34230275097,"y":31944.57039324993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"39cfc0ee-887a-4925-a296-0256a200482a","savedPayload":{"position":{"x":41891.34230275097,"y":31944.57039324993},"targetPosition":{"x":41715.00672706323,"y":31701.86529493745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"1e701170-cf83-4761-8278-88911bf26c73","savedPayload":{"position":{"x":41715.00672706323,"y":31701.86529493745},"targetPosition":{"x":41538.671151375485,"y":31459.160196624965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dc10b5c6-951e-47c9-99a4-3925d45799b1","savedPayload":{"position":{"x":41538.671151375485,"y":31459.160196624965},"targetPosition":{"x":41362.33557568774,"y":31216.455098312483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStageEvent":{"type":"Close Stage Event","name":"New Close Stage Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type you code","project":"Superalgos","id":"10681b1b-568e-4363-8dfc-17c2703206de","savedPayload":{"position":{"x":41174.61421763948,"y":32401.681107026645},"targetPosition":{"x":41221.544557151545,"y":32105.374604848104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7518df47-c4a9-4697-a5c9-5e67f2ce017a","savedPayload":{"position":{"x":41221.544557151545,"y":32105.374604848104},"targetPosition":{"x":41268.47489666361,"y":31809.068102669564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6689645d-315c-47bd-8546-b81ba84502ac","savedPayload":{"position":{"x":41268.47489666361,"y":31809.068102669564},"targetPosition":{"x":41315.40523617568,"y":31512.761600491023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"e07760aa-bc55-4dcd-8c30-e3706b9f0249","savedPayload":{"position":{"x":41315.40523617568,"y":31512.761600491023},"targetPosition":{"x":41362.33557568774,"y":31216.455098312483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"d6a475a0-48ef-40a2-b748-9682956eb87a","savedPayload":{"position":{"x":41362.33557568774,"y":31216.455098312483},"targetPosition":{"x":41186,"y":30973.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61127242-5fd3-4de5-a762-b35a56c94b6c","savedPayload":{"position":{"x":41186,"y":30973.75},"targetPosition":{"x":40886,"y":30973.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"dynamicIndicators":{"type":"Dynamic Indicators","name":"New Dynamic Indicators","project":"Superalgos","indicatorFunctions":[{"type":"Indicator Function","name":"New Indicator Function","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"03f86a86-7cef-4500-b783-35ab06225f08","savedPayload":{"position":{"x":39986,"y":30973.75},"targetPosition":{"x":40286,"y":30973.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a8a4971-d2d8-4c7b-b79f-951020f181ad","savedPayload":{"position":{"x":40286,"y":30973.75},"targetPosition":{"x":40586,"y":30973.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"da17537f-97f5-4677-a094-9399dbd89c04","savedPayload":{"position":{"x":40586,"y":30973.75},"targetPosition":{"x":40886,"y":30973.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"08fef7d6-7de9-4bb2-ab3c-0df2fce3b6e4","savedPayload":{"position":{"x":40886,"y":30973.75},"targetPosition":{"x":40886,"y":30973.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Tutorial","name":"1. Intro to Trading Systems","config":"{\n \"image\": \"trading-system\",\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial - Intro to Trading Systems\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Frame It Flexibly!","config":"{\n \"image\": \"trading-system\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - Frame It Flexibly!\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"Trading System Hierarchy\"\n }\n }\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Points To Take Home","config":"{\n \"image\": \"trading-system\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Points to Take Home...\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"89160f01-f0fe-4127-9ef1-ccf23bcfbe5b","savedPayload":{"position":{"x":19497,"y":44214.25},"targetPosition":{"x":19197,"y":44214.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"332ef29e-d676-4cc0-a4f5-d83670327002","savedPayload":{"position":{"x":19197,"y":44214.25},"targetPosition":{"x":18897,"y":44214.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"WHB Example","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"But... But... Why?","config":"{\n \"image\": \"trading-system\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - But... But... Why?\"\n }\n}","project":"Superalgos","id":"aa24806b-a88f-44e0-a19d-426e034058d5","savedPayload":{"position":{"x":19257.007055568993,"y":44635.76410481041},"targetPosition":{"x":18989.705098312483,"y":44499.56695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading System","name":"WHB v2","id":"975c2fc3-a8f5-43e9-900f-4a4f2430d128"}}},{"type":"Tutorial Step","name":"Steep Vs. Extreme","config":"{\n \"image\": \"condition\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Steep Vs. Extreme\"\n }\n}","project":"Superalgos","id":"f7c47550-e805-4075-8ad6-dd7528610483","savedPayload":{"position":{"x":19082.410196624965,"y":44784.8839097771},"targetPosition":{"x":18989.705098312483,"y":44499.56695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"A Particular Case","config":"{\n \"image\": \"trading-strategy\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - A Particular Case...\"\n }\n}","project":"Superalgos","id":"5d7560ee-feb7-406c-8a3c-265518d27310","savedPayload":{"position":{"x":18853.50794839062,"y":44766.86891214506},"targetPosition":{"x":18989.705098312483,"y":44499.56695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Strategy","name":"Xtreme","id":"c6dfb2a4-3e3d-4a44-a9da-00251dae88a7"}}}],"tutorialTopics":[],"id":"2e6298c8-100f-4393-bfc7-c6cdb2bbec03","savedPayload":{"position":{"x":18989.705098312483,"y":44499.56695488855},"targetPosition":{"x":18897,"y":44214.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"BB Top Bounce Example","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Another Example?","config":"{\n \"image\": \"trading-system\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Another Example?\"\n }\n}","project":"Superalgos","id":"06d2bbcb-9bbc-44a6-9aaa-b5b4d9f32ea5","savedPayload":{"position":{"x":18607.364562175448,"y":44686.89207786629},"targetPosition":{"x":18654.294901687517,"y":44390.58557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading System","name":"BB Top Bounce","id":"3313017d-fdce-481b-9679-fe8e4f67cd45"}}},{"type":"Tutorial Step","name":"At the Count of Three","config":"{\n \"image\": \"condition\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - At The Count of Three!\"\n }\n}","project":"Superalgos","id":"36476e87-3d2e-4fa4-8c08-ff0928e726c7","savedPayload":{"position":{"x":18411.589803375035,"y":44566.921151375485},"targetPosition":{"x":18654.294901687517,"y":44390.58557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Condition","name":"Previous Breakup","id":"f0534c68-ab47-4370-b1fd-b3be4c1c262f"}}},{"type":"Tutorial Step","name":"Time Frame Analysis","config":"{\n \"image\": \"time-frame\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Time Frame Analysys\"\n }\n}","project":"Superalgos","id":"833b9d28-43d6-415a-a4da-d73a0b040c70","savedPayload":{"position":{"x":18357.988399508977,"y":44343.65523617568},"targetPosition":{"x":18654.294901687517,"y":44390.58557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Strategy","name":"S6 - 2H Up","id":"f1ca0dbb-65e8-4c60-84f0-89596e22e9be"}}}],"tutorialTopics":[],"id":"98cb5e4e-d977-4d81-99e4-c349f13c0cd8","savedPayload":{"position":{"x":18654.294901687517,"y":44390.58557568774},"targetPosition":{"x":18897,"y":44214.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Conclusions","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Unpacking Lessons...","config":"{\n \"image\": \"trading-system\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Unpacking These Lessons\"\n }\n}","project":"Superalgos","id":"6b70202a-4cb2-40fc-a066-146469561aee","savedPayload":{"position":{"x":18380.231264394737,"y":44159.935417235},"targetPosition":{"x":18654.294901687517,"y":44037.91442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Granularity","config":"{\n \"image\": \"trading-system\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Granularity!\"\n }\n}","project":"Superalgos","id":"b00bc7cc-ce47-4563-8c7d-3e3d9599020c","savedPayload":{"position":{"x":18355.938333077036,"y":44006.55588533196},"targetPosition":{"x":18654.294901687517,"y":44037.91442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Hyper Specialization!","config":"{\n \"image\": \"trading-system\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Hyper Specialization!\"\n }\n}","project":"Superalgos","id":"07133a71-e21f-4cac-9c23-47a2b3d68532","savedPayload":{"position":{"x":18411.589803375035,"y":43861.578848624515},"targetPosition":{"x":18654.294901687517,"y":44037.91442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Fine-grain Management","config":"{\n \"image\": \"trading-system\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Fine-Grain Management!\"\n }\n}","project":"Superalgos","id":"5ef392db-5784-4c0f-b797-cb758243aaae","savedPayload":{"position":{"x":18532.27390876478,"y":43763.85078701947},"targetPosition":{"x":18654.294901687517,"y":44037.91442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Going Long & Short","config":"{\n \"image\": \"trading-system\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Going Long & Short\"\n }\n}","project":"Superalgos","id":"2c9fd60b-60ab-495d-adb6-66c75e655ec2","savedPayload":{"position":{"x":18685.653440667815,"y":43739.55785570177},"targetPosition":{"x":18654.294901687517,"y":44037.91442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"fc843922-ed15-4e32-a334-8b6ebf3ad50c","savedPayload":{"position":{"x":18654.294901687517,"y":44037.91442431226},"targetPosition":{"x":18897,"y":44214.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"The End","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Ready for the next?","config":"{\n \"image\": \"tutorial\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Ready For The Next One?\"\n }\n}","project":"Superalgos","id":"6fbc3be5-22cc-4e76-8b89-cf7516cfb193","savedPayload":{"position":{"x":19082.410196624965,"y":43643.6160902229},"targetPosition":{"x":18989.705098312483,"y":43928.93304511145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"2. Defining a Trading Idea","id":"04b42ede-fa1b-4962-bef2-b20126b5c0b7"}}}],"tutorialTopics":[],"id":"5693e204-dae0-401d-a611-12ccc7341c8a","savedPayload":{"position":{"x":18989.705098312483,"y":43928.93304511145},"targetPosition":{"x":18897,"y":44214.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"45fec5f4-819e-4c12-898e-8882543c1480","savedPayload":{"position":{"x":18897,"y":44214.25},"targetPosition":{"x":18897,"y":44214.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isPlaying":true,"isRunning":false},"tutorial":{"status":"Done"}}},{"type":"Tutorial","name":"2. Defining a Trading Idea","config":"{\n \"image\": \"trading-strategy\",\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial - Defining a Trading Idea\"\n }\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Introduction","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Before We Start!","config":"{\n \"image\": \"bullet-warning\",\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Before we start...\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"351aec66-3084-4a6b-85b3-3069c187be6e","savedPayload":{"position":{"x":25456.132034355964,"y":43991.117965644036},"targetPosition":{"x":25244,"y":44203.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"2. Defining a Trading Idea","id":"04b42ede-fa1b-4962-bef2-b20126b5c0b7"}}},{"type":"Tutorial Step","name":"Ready to Mine?","config":"{\n \"image\": \"data-tasks\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Ready to Mine..?\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Node\",\n \"type\": \"Sensor Bot Instance\"\n }\n }\n}","project":"Superalgos","id":"b46f7ac6-8c6d-4998-b16d-d2a37399acf3","savedPayload":{"position":{"x":25544,"y":44203.25},"targetPosition":{"x":25244,"y":44203.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Tasks","name":"New Data Tasks","id":"4df1cb4e-b9ca-4f62-bb5f-c7e262aaa22a"}}},{"type":"Tutorial Step","name":"Let's Mine Some Data","config":"{\n \"image\": \"run\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Mine Some Data..!\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"af2b6eba-7652-44c2-af55-92794977ac27","savedPayload":{"position":{"x":25456.132034355964,"y":44415.382034355964},"targetPosition":{"x":25244,"y":44203.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"7d3da47b-a1bd-4298-afe5-adcc8118238d","savedPayload":{"position":{"x":25244,"y":44203.25},"targetPosition":{"x":24944,"y":44203.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"A Proper Hypothesis","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"A Proper Hypothesis","config":"{\n \"image\": \"help\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Why Test Trading Ideas..?\"\n }\n}","project":"Superalgos","id":"db40d8b5-5561-4338-b919-45a5fac513b9","savedPayload":{"position":{"x":25335.780298432423,"y":44512.1046836069},"targetPosition":{"x":25036.705098312483,"y":44488.56695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"The trading process","config":"{\n \"image\": \"trading-system\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Trading Process\"\n }\n}","project":"Superalgos","id":"3b842b15-46c8-45d3-86b5-c79f6adf3350","savedPayload":{"position":{"x":25304.007055568993,"y":44624.76410481041},"targetPosition":{"x":25036.705098312483,"y":44488.56695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"The appropriate context","config":"{\n \"image\": \"layer-trends\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Appropriate Context\"\n }\n}","project":"Superalgos","id":"cfa743d8-fde6-42b4-b0e4-f5c9ed33772d","savedPayload":{"position":{"x":25231.539512811538,"y":44716.68874456856},"targetPosition":{"x":25036.705098312483,"y":44488.56695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"The Entry Rules","config":"{\n \"image\": \"take-position-event\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Entry Rules\"\n }\n}","project":"Superalgos","id":"3574ba38-e686-4547-9011-376e61001b6c","savedPayload":{"position":{"x":25129.410196624965,"y":44773.8839097771},"targetPosition":{"x":25036.705098312483,"y":44488.56695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"The Prediction","config":"{\n \"image\": \"hit-ratio\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Prediction\"\n }\n}","project":"Superalgos","id":"c36c4d14-c370-40b3-af0a-f42f7577592d","savedPayload":{"position":{"x":25013.167369594128,"y":44787.642155008485},"targetPosition":{"x":25036.705098312483,"y":44488.56695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"The Testing Mechanism","config":"{\n \"image\": \"backtesting-session\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Testing Mechanism\"\n }\n}","project":"Superalgos","id":"17893dc9-ca55-415c-8f3b-48f1fd29753c","savedPayload":{"position":{"x":24900.50794839062,"y":44755.86891214506},"targetPosition":{"x":25036.705098312483,"y":44488.56695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Let's go on a field trip!","config":"{\n \"image\": \"tutorial\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-04-14T12:19:32.669Z\",\n \"toDate\": \"2020-04-24T22:36:06.989Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 6309.911126811459,\n \"maxValue\": 7824.566413643572\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Go On a Field Trip!\"\n }\n}","project":"Superalgos","id":"2e5cb71a-19b0-40ac-8d14-0a91e0c4bcaf","savedPayload":{"position":{"x":24808.583308632475,"y":44683.401369387604},"targetPosition":{"x":25036.705098312483,"y":44488.56695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}}],"tutorialTopics":[],"id":"f7cbd006-02cf-47d0-9ae3-ae9f2afe145d","savedPayload":{"position":{"x":25036.705098312483,"y":44488.56695488855},"targetPosition":{"x":24944,"y":44203.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"The Bollinger Bands","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Are We Up to Date?","config":"{\n \"image\": \"indicator-process-instance\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Are We Up to Date..?\"\n }\n}","project":"Superalgos","id":"1c27f36c-4997-42ab-af57-5cee92bad7eb","savedPayload":{"position":{"x":24701.294901687517,"y":44679.58557568774},"targetPosition":{"x":24701.294901687517,"y":44379.58557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","id":"dcf3d790-5362-4a95-b977-82d0cf0e07f1"}}},{"type":"Tutorial Step","name":"BB On the Charts","config":"{\n \"image\": \"layer-bands\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"repositionAtTimeMachineReferenceParent\": true,\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-04-14T12:19:32.669Z\",\n \"toDate\": \"2020-04-24T22:36:06.989Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 6309.911126811459,\n \"maxValue\": 7824.566413643572\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - BB On the Charts!\"\n }\n}","project":"Superalgos","id":"4fab6f3e-16ae-413b-a71d-ab48444dd003","savedPayload":{"position":{"x":24524.959325999775,"y":44622.29067400023},"targetPosition":{"x":24701.294901687517,"y":44379.58557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"Bollinger Bands Rules","config":"{\n \"image\": \"layer-bands\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Bollinger Bands Rules\"\n }\n}","project":"Superalgos","id":"069499fd-b719-4683-a946-9619f023b2e5","savedPayload":{"position":{"x":24415.977946798972,"y":44472.29067400023},"targetPosition":{"x":24701.294901687517,"y":44379.58557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"2. Defining a Trading Idea","id":"04b42ede-fa1b-4962-bef2-b20126b5c0b7"}}},{"type":"Tutorial Step","name":"Can You Think of Any Ideas?","config":"{\n \"image\": \"help\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Can You Think of Any Ideas?\"\n }\n}","project":"Superalgos","id":"00bb1905-3b00-4248-b878-4fe442b47fb6","savedPayload":{"position":{"x":24415.977946798972,"y":44286.880477375256},"targetPosition":{"x":24701.294901687517,"y":44379.58557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"2. Defining a Trading Idea","id":"04b42ede-fa1b-4962-bef2-b20126b5c0b7"}}}],"tutorialTopics":[],"id":"ccbefd73-cc4c-4b2b-b0a6-a67fa60d6aca","savedPayload":{"position":{"x":24701.294901687517,"y":44379.58557568774},"targetPosition":{"x":24944,"y":44203.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"The Hypothesis","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Breakdown of the Bollinger Bands","config":"{\n \"image\": \"layer-candles\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-04-07T01:31:26.975Z\",\n \"toDate\": \"2020-04-13T11:17:37.885Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 6131.048212858161,\n \"maxValue\": 8085.442131351208\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Breakdown of the BBs\"\n }\n}","project":"Superalgos","id":"3342d779-e03d-4a99-8acb-647f1feb2f7f","savedPayload":{"position":{"x":24458.589803375035,"y":44203.25},"targetPosition":{"x":24701.294901687517,"y":44026.91442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"What else is going on?","config":"{\n \"image\": \"layer-candles\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - What Else is Going On?\"\n }\n}","project":"Superalgos","id":"da588154-be72-4f58-8b04-59a5ac624a5e","savedPayload":{"position":{"x":24415.977946798972,"y":44119.619522624744},"targetPosition":{"x":24701.294901687517,"y":44026.91442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"2. Defining a Trading Idea","id":"04b42ede-fa1b-4962-bef2-b20126b5c0b7"}}},{"type":"Tutorial Step","name":"Let's Zoom Out!","config":"{\n \"image\": \"time-frame\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-03-28T18:35:48.693Z\",\n \"toDate\": \"2020-04-22T13:10:06.621Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 5661.7840056393015,\n \"maxValue\": 8476.11124826929\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"04-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Zoom Out!\"\n }\n}","project":"Superalgos","id":"50fee74d-bbe2-40d8-90dc-2d282f1d848a","savedPayload":{"position":{"x":24401.294901687517,"y":44026.91442431226},"targetPosition":{"x":24701.294901687517,"y":44026.91442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"The bigger picture...","config":"{\n \"image\": \"time-frame\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-01-30T23:07:21.393Z\",\n \"toDate\": \"2020-06-19T22:35:44.079Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 2941.135605373651,\n \"maxValue\": 11344.671722630914\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"24-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Big Picture!\"\n }\n}","project":"Superalgos","id":"ac63e9b7-1f3a-44c5-80f8-18b68acc8de2","savedPayload":{"position":{"x":24415.977946798972,"y":43934.20932599977},"targetPosition":{"x":24701.294901687517,"y":44026.91442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"What can we learn from this","config":"{\n \"image\": \"help\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - What Do We Make of This?\"\n }\n}","project":"Superalgos","id":"be3bf26f-0ecb-4543-876a-ad84b0233e5c","savedPayload":{"position":{"x":24458.589803375035,"y":43850.578848624515},"targetPosition":{"x":24701.294901687517,"y":44026.91442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"2. Defining a Trading Idea","id":"04b42ede-fa1b-4962-bef2-b20126b5c0b7"}}},{"type":"Tutorial Step","name":"Look to Your Left","config":"{\n \"image\": \"layer-candles\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Look to Your Left!\"\n }\n}","project":"Superalgos","id":"bb9dbd74-fbc1-4a0b-a9fa-8e1b997a3149","savedPayload":{"position":{"x":24524.959325999775,"y":43784.20932599977},"targetPosition":{"x":24701.294901687517,"y":44026.91442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"2. Defining a Trading Idea","id":"04b42ede-fa1b-4962-bef2-b20126b5c0b7"}}},{"type":"Tutorial Step","name":"Wouldn't it be nice?","config":"{\n \"image\": \"layer-candles\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Wouldn't It Be Nice?\"\n }\n}","project":"Superalgos","id":"1dca59d2-81c1-4adf-8c35-7e83c237269e","savedPayload":{"position":{"x":24608.589803375035,"y":43741.59746942371},"targetPosition":{"x":24701.294901687517,"y":44026.91442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"2. Defining a Trading Idea","id":"04b42ede-fa1b-4962-bef2-b20126b5c0b7"}}},{"type":"Tutorial Step","name":"March 7th to March 12th","config":"{\n \"image\": \"layer-bands\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-03-05T19:30:13.608Z\",\n \"toDate\": \"2020-03-15T19:06:28.624Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 5017.7769429637,\n \"maxValue\": 10572.155269570161\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - March 7th to March 12th\"\n }\n}","project":"Superalgos","id":"9e8b0a9d-4b09-4876-8afb-ffeb6b8e733c","savedPayload":{"position":{"x":24701.294901687517,"y":43726.91442431226},"targetPosition":{"x":24701.294901687517,"y":44026.91442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"We've got Two Hypotheses!","config":"{\n \"image\": \"nodes-highlights\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - We've got Two Hypotheses!\"\n }\n}","project":"Superalgos","id":"e3a596eb-d975-47b8-adac-b349fc66700d","savedPayload":{"position":{"x":24794,"y":43741.59746942371},"targetPosition":{"x":24701.294901687517,"y":44026.91442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"2. Defining a Trading Idea","id":"04b42ede-fa1b-4962-bef2-b20126b5c0b7"}}}],"tutorialTopics":[],"id":"d9219afa-abdf-4f17-b16c-f71a5dbb6f8a","savedPayload":{"position":{"x":24701.294901687517,"y":44026.91442431226},"targetPosition":{"x":24944,"y":44203.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Formalization","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"What's Missing?","config":"{\n \"image\": \"help\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - What Is Missing?\"\n }\n}","project":"Superalgos","id":"4dea3b2a-20e6-4e61-8e61-b131e376ac51","savedPayload":{"position":{"x":24819.866639164266,"y":43710.61425041539},"targetPosition":{"x":25036.705098312483,"y":43917.93304511145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"First Two","config":"{\n \"image\": \"layer-trends\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Define the First Two!\"\n }\n}","project":"Superalgos","id":"b63663a7-472b-41b6-a70c-d048a4ae74c7","savedPayload":{"position":{"x":24931.29265108808,"y":43637.06258391953},"targetPosition":{"x":25036.705098312483,"y":43917.93304511145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Entry Rules","config":"{\n \"image\": \"trigger-on-event\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Entry Rules\"\n }\n}","project":"Superalgos","id":"ccc330e8-ddc9-4975-a413-246701e39741","savedPayload":{"position":{"x":25063.596890983514,"y":43619.14075691288},"targetPosition":{"x":25036.705098312483,"y":43917.93304511145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Predictin & Testing","config":"{\n \"image\": \"user-defined-statistic\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Predictions and Testing\"\n }\n}","project":"Superalgos","id":"d4d4922f-aefc-48b4-8c48-89ff166aefc5","savedPayload":{"position":{"x":25190.574881534256,"y":43660.398407030894},"targetPosition":{"x":25036.705098312483,"y":43917.93304511145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Et Voila","config":"{\n \"image\": \"nodes-highlights\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Et Voilà..!\"\n }\n}","project":"Superalgos","id":"ad39f524-6982-4fb0-848a-c58f31a47e50","savedPayload":{"position":{"x":25287.077074428875,"y":43752.66395067582},"targetPosition":{"x":25036.705098312483,"y":43917.93304511145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Readu for the next?","config":"{\n \"image\": \"tutorial\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Ready For The Next One..?\"\n }\n}","project":"Superalgos","id":"76fc961e-afa1-438d-88ab-92fcb2776147","savedPayload":{"position":{"x":25333.990026842865,"y":43877.663065366156},"targetPosition":{"x":25036.705098312483,"y":43917.93304511145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"3. Testing a Trading Idea - The Trigger Stage","id":"8837ff70-a40f-444c-b8f9-272d1642eece"}}}],"tutorialTopics":[],"id":"a1ddae80-1ebb-4557-8ed2-e9cdf0a6fb1d","savedPayload":{"position":{"x":25036.705098312483,"y":43917.93304511145},"targetPosition":{"x":24944,"y":44203.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"04b42ede-fa1b-4962-bef2-b20126b5c0b7","savedPayload":{"position":{"x":24944,"y":44203.25},"targetPosition":{"x":24944,"y":44203.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"}}},{"type":"Tutorial","name":"3. Testing a Trading Idea - The Trigger Stage","config":"{\n \"image\": \"trading-strategy\",\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial - Testing a Trading Idea\"\n }\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Introduction","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Topics to Cover","config":"{\n \"image\": \"dataset-definition\",\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Pipeline\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"8708f037-10b5-4f48-bd0b-65b8f04176c2","savedPayload":{"position":{"x":31399.80502970953,"y":43962.83614024661},"targetPosition":{"x":31285,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Do you have the data?","config":"{\n \"image\": \"data-tasks\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Do You Have The Data?\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Node\",\n \"type\": \"Sensor Bot Instance\"\n }\n }\n}","project":"Superalgos","id":"c600b7b2-417f-4dc7-96bb-4e3cb1628681","savedPayload":{"position":{"x":31497.132034355964,"y":44027.867965644036},"targetPosition":{"x":31285,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Tasks","name":"New Data Tasks","id":"4df1cb4e-b9ca-4f62-bb5f-c7e262aaa22a"}}},{"type":"Tutorial Step","name":"Let's Mine Some Data","config":"{\n \"image\": \"run\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Mine Some Data...\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"eb4114cf-d600-47d0-aeb0-9bc070947b60","savedPayload":{"position":{"x":31562.163859753386,"y":44125.194970290475},"targetPosition":{"x":31285,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Let's Start with the Basics!","config":"{\n \"image\": \"trading-strategy\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Start With the Basics!\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"Trading Strategies\"\n }\n }\n}","project":"Superalgos","id":"946c39fb-6fec-4a0e-bc36-f0051dc3bdf0","savedPayload":{"position":{"x":31585,"y":44240},"targetPosition":{"x":31285,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"3. Testing a Trading Idea - The Trigger Stage","id":"8837ff70-a40f-444c-b8f9-272d1642eece"}}},{"type":"Tutorial Step","name":"New Trading System","config":"{\n \"image\": \"trading-system\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trading Systems\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"d669ea29-58e8-4f60-af56-f51357383f37","savedPayload":{"position":{"x":31562.163859753386,"y":44354.805029709525},"targetPosition":{"x":31285,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Other Hierarchies","name":"New Other Hierarchies","id":"9cf63862-9273-4341-9e03-b98e2d20d6d3"}}},{"type":"Tutorial Step","name":"Right Out of the Box","config":"{\n \"image\": \"trading-system\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Right Out of the Box!\"\n }\n}","project":"Superalgos","id":"34a8ef77-1165-4d88-8123-68d2a910f73a","savedPayload":{"position":{"x":31497.132034355964,"y":44452.132034355964},"targetPosition":{"x":31285,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading System","name":"BB Breakdown","id":"77e18ff3-e29b-4e35-ba66-e34af262d35d"}}},{"type":"Tutorial Step","name":"Why Downtrends?","config":"{\n \"image\": \"help\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Why Downtrends?\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"7df7b308-0864-4f30-a0dd-789e29ca7f97","savedPayload":{"position":{"x":31399.80502970953,"y":44517.16385975339},"targetPosition":{"x":31285,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"e6168b2b-ab19-4bb1-9f34-162e247050c3","savedPayload":{"position":{"x":31285,"y":44240},"targetPosition":{"x":30985,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Basic Theory","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Trigger Stage & Events","config":"{\n \"image\": \"trigger-stage\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trigger Stage Events\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"The Trigger Stage\"\n }\n }\n}","project":"Superalgos","id":"b6d6e97d-1840-44b4-b441-a1df71941771","savedPayload":{"position":{"x":31491.883757869506,"y":44274.17497694584},"targetPosition":{"x":31227.705098312483,"y":44416.33557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trigger Stage","name":"New Trigger Stage","id":"4c4e692c-1507-46b8-882a-84bb88358894"}}},{"type":"Tutorial Step","name":"Trigger On Event","config":"{\n \"image\": \"trigger-on-event\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trigger On Event\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"10420261-70b2-4470-bb20-5fb5c179ce2e","savedPayload":{"position":{"x":31527.403018274876,"y":44402.87612658259},"targetPosition":{"x":31227.705098312483,"y":44416.33557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trigger On Event","name":"New Trigger On Event","id":"240b7158-8790-4e15-90b6-f828da55a240"}}},{"type":"Tutorial Step","name":"Situations, conditions, formulas.","config":"{\n \"image\": \"situation\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Situations, Conditions, and Formulas in Superalgos\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"Situations, Conditions, and Formulas\"\n }\n }\n}","project":"Superalgos","id":"345de160-f06f-4e81-a054-fd66b6c1f8ab","savedPayload":{"position":{"x":31503.563430077917,"y":44534.243085183916},"targetPosition":{"x":31227.705098312483,"y":44416.33557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"3. Testing a Trading Idea - The Trigger Stage","id":"8837ff70-a40f-444c-b8f9-272d1642eece"}}},{"type":"Tutorial Step","name":"Remember the context?","config":"{\n \"image\": \"layer-trends\",\n \"position\": \"Left\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Remember the Context?\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"b3ebcc5e-2400-444f-a549-e62f92a6706b","savedPayload":{"position":{"x":31425.086716094396,"y":44642.25701548882},"targetPosition":{"x":31227.705098312483,"y":44416.33557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"3. Testing a Trading Idea - The Trigger Stage","id":"8837ff70-a40f-444c-b8f9-272d1642eece"}}},{"type":"Tutorial Step","name":"Let's Study the Syntax!","config":"{\n \"image\": \"text\",\n \"position\": \"Left\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Study the Syntax!\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"Syntax Overview\"\n }\n }\n}","project":"Superalgos","id":"56c9d65d-7484-4510-b1b4-c91e7b249f84","savedPayload":{"position":{"x":31307.516151982487,"y":44705.5244338965},"targetPosition":{"x":31227.705098312483,"y":44416.33557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"3. Testing a Trading Idea - The Trigger Stage","id":"8837ff70-a40f-444c-b8f9-272d1642eece"}}},{"type":"Tutorial Step","name":"Reinforce the learning!","config":"{\n \"image\": \"learning-bot\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-01-07T21:14:07.990Z\",\n \"toDate\": \"2020-06-25T01:24:11.213Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 2664.909057770561,\n \"maxValue\": 12262.874806146527\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"24-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Reinforce The Learning!\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"2cb581c3-da20-4979-8d87-eab5d44e4134","savedPayload":{"position":{"x":31174.13802987289,"y":44711.51445226733},"targetPosition":{"x":31227.705098312483,"y":44416.33557568774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}}],"tutorialTopics":[],"id":"8241ebfb-d7c1-4aba-802d-689f0818945a","savedPayload":{"position":{"x":31227.705098312483,"y":44416.33557568774},"targetPosition":{"x":30985,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Trigger On Event","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"We Need Data","config":"{\n \"image\": \"indicator-process-instance\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - We Need Data\"\n }\n}","project":"Superalgos","id":"257d6f09-7340-4604-824c-7465beb6f875","savedPayload":{"position":{"x":31572.875564829897,"y":44635.37977226002},"targetPosition":{"x":31124.057647468726,"y":44667.975432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","id":"dcf3d790-5362-4a95-b977-82d0cf0e07f1"}}},{"type":"Tutorial Step","name":"Time to Work the Charts","config":"{\n \"image\": \"trigger-on-event\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"repositionAtTimeMachineReferenceParent\": true,\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-01-07T21:14:07.990Z\",\n \"toDate\": \"2020-06-25T01:24:11.213Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 2664.909057770561,\n \"maxValue\": 12262.874806146527\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"24-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Time to Work the Charts!\"\n }\n}","project":"Superalgos","id":"635e076e-46c0-4693-acdd-65086a4a036f","savedPayload":{"position":{"x":31567.63438388797,"y":44743.736100938986},"targetPosition":{"x":31124.057647468726,"y":44667.975432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"How to Determine the Trend","config":"{\n \"image\": \"layer-trends\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-01-07T21:14:07.990Z\",\n \"toDate\": \"2020-06-25T01:24:11.213Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 2664.909057770561,\n \"maxValue\": 12262.874806146527\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"24-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Determining the Trend\"\n }\n}","project":"Superalgos","id":"e47d7ed3-743a-4bcf-90b7-59351dc1f2a7","savedPayload":{"position":{"x":31536.61413536119,"y":44847.68949493738},"targetPosition":{"x":31124.057647468726,"y":44667.975432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"Is that good enough?","config":"{\n \"image\": \"help\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Is That Good Enough?\"\n }\n}","project":"Superalgos","id":"cdab5660-d883-4f44-9641-32ee40db029a","savedPayload":{"position":{"x":31481.617603339917,"y":44941.19856085123},"targetPosition":{"x":31124.057647468726,"y":44667.975432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"An extra dimension","config":"{\n \"image\": \"layer-trends\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - An Extra Dimension!\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"f6dcd56e-2117-459b-a601-6c969c593f34","savedPayload":{"position":{"x":31405.840986360967,"y":45018.828891661266},"targetPosition":{"x":31124.057647468726,"y":44667.975432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Bollinger Subchannels","config":"{\n \"image\": \"layer-trends\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Bollinger Subchannels\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"Bollinger Channels\",\n \"anchor\": \"Bollinger Sub-Channels\"\n }\n }\n}","project":"Superalgos","id":"66a4691d-5183-40ef-9746-83886b1e77bc","savedPayload":{"position":{"x":31313.688145966364,"y":45076.068894715565},"targetPosition":{"x":31124.057647468726,"y":44667.975432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Products & Properties","config":"{\n \"image\": \"record-property\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Products & Properties\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"Bollinger Channels\",\n \"anchor\": \"Bollinger Sub-Channels 2\"\n }\n }\n}","project":"Superalgos","id":"207a547f-6849-4535-9e87-afdf0f24b2c1","savedPayload":{"position":{"x":31210.514670277895,"y":45109.591989095556},"targetPosition":{"x":31124.057647468726,"y":44667.975432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Let's check those slopes","config":"{\n \"image\": \"layer-trends\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Check Those Slopes\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"12305e0a-0d43-42af-9580-862cf820f1ba","savedPayload":{"position":{"x":31102.316626682248,"y":45117.44993440736},"targetPosition":{"x":31124.057647468726,"y":44667.975432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"We have our conditions!","config":"{\n \"image\": \"condition\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - We Have Our Conditions!\"\n }\n}","project":"Superalgos","id":"79748a52-ebfd-4b64-87f5-4a9ba3224acb","savedPayload":{"position":{"x":30995.382092189317,"y":45099.18605543194},"targetPosition":{"x":31124.057647468726,"y":44667.975432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Set Up the First Condition!","config":"{\n \"image\": \"javascript-code\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Set Up the First Condition!\"\n }\n}","project":"Superalgos","id":"b297a2a4-f5b7-4c5f-ab09-f9383a423500","savedPayload":{"position":{"x":30895.92571325261,"y":45055.86178242884},"targetPosition":{"x":31124.057647468726,"y":44667.975432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Situation","name":"New Situation","id":"8c7701f2-de6f-4875-b999-870ffaa84edf"}}},{"type":"Tutorial Step","name":"Second Condition!","config":"{\n \"image\": \"javascript-code\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Now the Second Condition!\"\n }\n}","project":"Superalgos","id":"c092e9e3-d402-477a-8d33-3f29dcf5756a","savedPayload":{"position":{"x":30809.727533106703,"y":44989.99496466767},"targetPosition":{"x":31124.057647468726,"y":44667.975432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Situation","name":"New Situation","id":"8c7701f2-de6f-4875-b999-870ffaa84edf"}}},{"type":"Tutorial Step","name":"Never Forget Granularity!!","config":"{\n \"image\": \"situation\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Never Forget Granularity!\"\n }\n}","project":"Superalgos","id":"442cdc18-86f6-415b-82ec-42a368dd63b0","savedPayload":{"position":{"x":30741.797076664043,"y":44905.41354218058},"targetPosition":{"x":31124.057647468726,"y":44667.975432332816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"3ce8ac42-40ff-4212-a980-119d5b59fa9e","savedPayload":{"position":{"x":31124.057647468726,"y":44667.975432332816},"targetPosition":{"x":30985,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Trigger Off Event","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Trigger Off Event","config":"{\n \"image\": \"trigger-off-event\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trigger Off Event\"\n }\n}","project":"Superalgos","id":"b944a859-f3e0-4592-84eb-b694b6132fc8","savedPayload":{"position":{"x":31068.63047737526,"y":44768.022053201035},"targetPosition":{"x":30892.294901687517,"y":44525.31695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"The Workings of Situations","config":"{\n \"image\": \"situation\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Workings of Situations\"\n }\n}","project":"Superalgos","id":"7f860e7c-adcb-4009-b633-77596a0485fe","savedPayload":{"position":{"x":30892.294901687517,"y":44825.31695488855},"targetPosition":{"x":30892.294901687517,"y":44525.31695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Separate Situations","config":"{\n \"image\": \"situation\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Separate Situations!\"\n }\n}","project":"Superalgos","id":"9e6536bd-bec8-4f0c-83ac-2cbe0702699e","savedPayload":{"position":{"x":30715.959325999775,"y":44768.022053201035},"targetPosition":{"x":30892.294901687517,"y":44525.31695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Situation","name":"New Situation","id":"407c539f-6072-4df4-a17f-e22448518709"}}},{"type":"Tutorial Step","name":"Keep the Definitions Tidy!","config":"{\n \"image\": \"situation-name\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Keep the Definitions Tidy!\"\n }\n}","project":"Superalgos","id":"f7d3e5cc-a2c9-403c-9473-7c84e02d7c0c","savedPayload":{"position":{"x":30606.977946798972,"y":44618.022053201035},"targetPosition":{"x":30892.294901687517,"y":44525.31695488855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"7997c970-8efb-425f-a445-f514f9f12f51","savedPayload":{"position":{"x":30892.294901687517,"y":44525.31695488855},"targetPosition":{"x":30985,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"First Backtest","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"First Backtest","config":"{\n \"image\": \"backtesting-session\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - First Backtest...\"\n }\n}","project":"Superalgos","id":"0fccff0e-b3fa-4abd-8dc1-6086cf26ee25","savedPayload":{"position":{"x":30760,"y":44932.47879586443},"targetPosition":{"x":30620.942352531274,"y":44504.503363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Parameters","name":"New Trading Parameters","id":"7c6c0f4a-266b-49ce-8a85-619a55b5422c"}}},{"type":"Tutorial Step","name":"About Backtesting","config":"{\n \"image\": \"backtesting-session\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - A Bit About Backtesting!\"\n }\n}","project":"Superalgos","id":"237739cf-cfff-4267-90f5-eb58f82ee68c","savedPayload":{"position":{"x":30620.942352531274,"y":44954.503363531614},"targetPosition":{"x":30620.942352531274,"y":44504.503363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Ready. Set. Go!","config":"{\n \"image\": \"task\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Do This...\"\n }\n}","project":"Superalgos","id":"a4fefe8e-1f1c-420c-9509-babf544f0cc0","savedPayload":{"position":{"x":30481.884705062548,"y":44932.47879586443},"targetPosition":{"x":30620.942352531274,"y":44504.503363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Task","name":"BB Breakdown","id":"9ebfff72-a410-43f1-92e8-5eaca032bd2c"}}},{"type":"Tutorial Step","name":"Let's see what we've got","config":"{\n \"image\": \"trigger-stage\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-01-07T02:53:26.819Z\",\n \"toDate\": \"2020-05-15T07:57:59.035Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 1833.616800519183,\n \"maxValue\": 12890.473342648293\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"24-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's See What We've Got!\"\n }\n}","project":"Superalgos","id":"a93abd07-805d-40c6-8e7b-5aac43da7696","savedPayload":{"position":{"x":30356.43898899966,"y":44868.56101100034},"targetPosition":{"x":30620.942352531274,"y":44504.503363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trading Systems Trigger Stage Test\"\n }\n}","project":"Superalgos","id":"1e6025b6-7313-4ef6-a0bb-bb4432fb6ba2","savedPayload":{"position":{"x":30256.884705062548,"y":44769.00672706323},"targetPosition":{"x":30620.942352531274,"y":44504.503363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Can't See What Was Expected?","config":"{\n \"image\": \"bullet-error\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Can't See What's Expected?\"\n }\n}","project":"Superalgos","id":"9e75924c-3a5d-4d3b-8805-566fc161157d","savedPayload":{"position":{"x":30192.966920198454,"y":44643.56101100034},"targetPosition":{"x":30620.942352531274,"y":44504.503363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Visual Verification","config":"{\n \"image\": \"bot-data-dependencies\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Visual Verification\"\n }\n}","project":"Superalgos","id":"4647fbcc-f59b-49b4-b9a7-82dfb62d0025","savedPayload":{"position":{"x":30170.942352531274,"y":44504.503363531614},"targetPosition":{"x":30620.942352531274,"y":44504.503363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Look at the 26th!","config":"{\n \"image\": \"bot-data-dependencies\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Look at the 26th!\"\n }\n}","project":"Superalgos","id":"75f1f3c3-d398-4f40-8980-2cb18d2f0b6c","savedPayload":{"position":{"x":30192.966920198454,"y":44365.44571606289},"targetPosition":{"x":30620.942352531274,"y":44504.503363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Keep Looking!","config":"{\n \"image\": \"bot-data-dependencies\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Keep Looking!\"\n }\n}","project":"Superalgos","id":"563cfef0-bb23-40e8-ab4d-3aa537527496","savedPayload":{"position":{"x":30256.884705062548,"y":44240},"targetPosition":{"x":30620.942352531274,"y":44504.503363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"5f6200c9-6c71-4d2d-996f-6aa3bdc52850","savedPayload":{"position":{"x":30620.942352531274,"y":44504.503363531614},"targetPosition":{"x":30985,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Troubleshooting","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Right\",\n \"slider\": \"\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Troubleshooting 101","config":"{\n \"image\": \"bullet-error\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Troubleshooting 101\"\n }\n}","project":"Superalgos","id":"93a8c2c5-a654-435d-99af-6791ba33a3b9","savedPayload":{"position":{"x":30395.942352531274,"y":44667.975432332816},"targetPosition":{"x":30535,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"3. Testing a Trading Idea - The Trigger Stage","id":"8837ff70-a40f-444c-b8f9-272d1642eece"}}},{"type":"Tutorial Step","name":"Let's hunt for errors!","config":"{\n \"image\": \"bullet-error\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Hunt For Errors!\"\n }\n}","project":"Superalgos","id":"944c7392-8076-4281-a296-d18086ee5bba","savedPayload":{"position":{"x":30270.496636468386,"y":44604.057647468726},"targetPosition":{"x":30535,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Errors & Time","config":"{\n \"image\": \"bullet-error\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2019-12-12T01:58:31.663Z\",\n \"toDate\": \"2020-02-13T14:12:58.135Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 1698.3271209158247,\n \"maxValue\": 12755.183663044934\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"24-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Errors & Time\"\n }\n}","project":"Superalgos","id":"035d235c-51a1-4aec-92b3-6b226fdfc919","savedPayload":{"position":{"x":30170.942352531274,"y":44504.503363531614},"targetPosition":{"x":30535,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"Errors & Trading System Nodes","config":"{\n \"image\": \"bullet-error\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2019-12-12T01:58:31.663Z\",\n \"toDate\": \"2020-02-13T14:12:58.135Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": -269.5227642239497,\n \"maxValue\": 10787.33377790516\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"24-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Errors & Nodes\"\n }\n}","project":"Superalgos","id":"5ed69b67-cfbd-4ffe-af7e-703b0c1ffde6","savedPayload":{"position":{"x":30107.02456766718,"y":44379.057647468726},"targetPosition":{"x":30535,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trading Systems Tracking Errors\"\n }\n}","project":"Superalgos","id":"d16c61e4-cf0c-48b9-a7c3-1af015e0fd76","savedPayload":{"position":{"x":30085,"y":44240},"targetPosition":{"x":30535,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Condition","name":"New Condition","id":"ce77acd7-8c75-4fa3-ba25-349b1bf81445"}}},{"type":"Tutorial Step","name":"Deciphering error messages","config":"{\n \"image\": \"bullet-error\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Deciphering Errors\"\n }\n}","project":"Superalgos","id":"9c08e69d-883a-48b7-9085-6df716a2d8e3","savedPayload":{"position":{"x":30107.02456766718,"y":44100.942352531274},"targetPosition":{"x":30535,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Let's unpack the error","config":"{\n \"image\": \"bullet-error\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Unpack This Error\"\n }\n}","project":"Superalgos","id":"2a146203-e297-4e2a-b573-c6c4409a083d","savedPayload":{"position":{"x":30170.942352531274,"y":43975.496636468386},"targetPosition":{"x":30535,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Counting Candles","config":"{\n \"image\": \"layer-candles\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Counting Candles!\"\n }\n}","project":"Superalgos","id":"84e552c1-eddf-45d5-a27b-740fe0ed05bf","savedPayload":{"position":{"x":30270.496636468386,"y":43875.942352531274},"targetPosition":{"x":30535,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Lesson Learned","config":"{\n \"image\": \"learning-bot\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Lesson Learned?\"\n }\n}","project":"Superalgos","id":"0bea90df-c3db-4a85-96c5-e15b256dd448","savedPayload":{"position":{"x":30395.942352531274,"y":43812.024567667184},"targetPosition":{"x":30535,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Condition","name":"New Condition","id":"ce77acd7-8c75-4fa3-ba25-349b1bf81445"}}}],"tutorialTopics":[],"id":"6a0017ea-05d3-430f-85b0-e74c5d67ad80","savedPayload":{"position":{"x":30535,"y":44240},"targetPosition":{"x":30985,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Highlights & Values","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Right\",\n \"slider\": \"\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Highlights & Values","config":"{\n \"image\": \"nodes-highlights\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-01-18T06:43:46.498Z\",\n \"toDate\": \"2020-05-07T00:37:02.961Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": -6118.370128536157,\n \"maxValue\": 12223.62805207098\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"24-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Highlights and Values\"\n }\n}","project":"Superalgos","id":"376014f7-32c5-4a00-97f7-254e9e54dffa","savedPayload":{"position":{"x":30478.116242130494,"y":44205.82502305416},"targetPosition":{"x":30742.294901687517,"y":44063.66442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"A not on event's evaluation","config":"{\n \"image\": \"nodes-highlights\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - A Note on Event-Evaluation\"\n }\n}","project":"Superalgos","id":"5ad96e8c-e001-4089-b322-edaca2f56e72","savedPayload":{"position":{"x":30442.596981725124,"y":44077.12387341741},"targetPosition":{"x":30742.294901687517,"y":44063.66442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Land of Confusion","config":"{\n \"image\": \"nodes-highlights\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Land of Confusion\"\n }\n}","project":"Superalgos","id":"de24dbf3-425f-41e5-9b7e-1faba46938b1","savedPayload":{"position":{"x":30466.436569922083,"y":43945.756914816084},"targetPosition":{"x":30742.294901687517,"y":44063.66442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Condition","name":"New Condition","id":"ce77acd7-8c75-4fa3-ba25-349b1bf81445"}}},{"type":"Tutorial Step","name":"The Time Frame Mystery","config":"{\n \"image\": \"time-frames-filter\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Time Frame Mystery\"\n }\n}","project":"Superalgos","id":"09a5d746-1b0c-4039-abc2-b4c49c23aa10","savedPayload":{"position":{"x":30544.913283905604,"y":43837.74298451118},"targetPosition":{"x":30742.294901687517,"y":44063.66442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"What Am I Missing?","config":"{\n \"image\": \"help\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - What Am I Missing?\"\n }\n}","project":"Superalgos","id":"642ab886-e0b8-4ca0-9a30-92133077509f","savedPayload":{"position":{"x":30662.483848017513,"y":43774.4755661035},"targetPosition":{"x":30742.294901687517,"y":44063.66442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Free as A Bird","config":"{\n \"image\": \"twitter\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Free as a Bird\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"a2322e58-9850-438f-866d-bdb279510a9b","savedPayload":{"position":{"x":30795.86197012711,"y":43768.48554773267},"targetPosition":{"x":30742.294901687517,"y":44063.66442431226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"f5004448-a134-4d97-94b1-d9c7061839c8","savedPayload":{"position":{"x":30742.294901687517,"y":44063.66442431226},"targetPosition":{"x":30985,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Take Position Event","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Take Position Event","config":"{\n \"image\": \"take-position-event\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Take Position Event...\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"Candles Volumes\"\n }\n }\n}","project":"Superalgos","id":"4552e5b4-a370-44b1-a186-77b8fcb5a330","savedPayload":{"position":{"x":30395.942352531274,"y":43812.024567667184},"targetPosition":{"x":30845.942352531274,"y":43812.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Candle Properties","config":"{\n \"image\": \"layer-candles\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Candle Properties\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"Candles Volumes\",\n \"anchor\": \"Products & Properties\"\n }\n }\n}","project":"Superalgos","id":"10e27ae2-33eb-48dd-b049-ce03213aec7b","savedPayload":{"position":{"x":30417.966920198454,"y":43672.96692019846},"targetPosition":{"x":30845.942352531274,"y":43812.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"A close below the bands?","config":"{\n \"image\": \"layer-bands\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - A Close Below the Bands?\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"Bollinger Bands (BB - %B)\"\n }\n }\n}","project":"Superalgos","id":"74ae5aab-fc80-4870-936f-fd372db326c3","savedPayload":{"position":{"x":30481.884705062548,"y":43547.52120413557},"targetPosition":{"x":30845.942352531274,"y":43812.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"One More Detail!","config":"{\n \"image\": \"layer-bands\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - One More Detail!\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"Bollinger Bands (BB - %B)\",\n \"anchor\": \"Products & Properties\"\n }\n }\n}","project":"Superalgos","id":"398887fc-ac12-4f5a-bfc1-7325b3c09741","savedPayload":{"position":{"x":30581.43898899966,"y":43447.96692019846},"targetPosition":{"x":30845.942352531274,"y":43812.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Let's break it down!","config":"{\n \"image\": \"condition\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Break It Down!\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"Bollinger Bands (BB - %B)\",\n \"anchor\": \"Products & Properties\"\n }\n }\n}","project":"Superalgos","id":"337bd881-e4f7-4ed5-8a67-4eb23bcac91d","savedPayload":{"position":{"x":30706.884705062548,"y":43384.04913533437},"targetPosition":{"x":30845.942352531274,"y":43812.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Let's Define It!","config":"{\n \"image\": \"javascript-code\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Define It!\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"c9274f69-b077-4684-847b-139e2f700569","savedPayload":{"position":{"x":30845.942352531274,"y":43362.024567667184},"targetPosition":{"x":30845.942352531274,"y":43812.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Javascript Code","name":"New Javascript Code","id":"6a481f5e-92a5-48e7-bb67-819ace78a1d3"}}},{"type":"Tutorial Step","name":"Second Close","config":"{\n \"image\": \"condition\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Second Close\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"Syntax Overview\",\n \"anchor\": \"Previous Property\"\n }\n }\n}","project":"Superalgos","id":"28b5d31f-5f63-436a-8586-cd782c73ffec","savedPayload":{"position":{"x":30985,"y":43384.04913533437},"targetPosition":{"x":30845.942352531274,"y":43812.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Close of the previous candle","config":"{\n \"image\": \"javascript-code\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Previous Close\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"Syntax Overview\",\n \"anchor\": \"Previous Property\"\n }\n }\n}","project":"Superalgos","id":"2f2a9146-c277-4dcb-937e-86cd3f106ca4","savedPayload":{"position":{"x":31110.445716062888,"y":43447.96692019846},"targetPosition":{"x":30845.942352531274,"y":43812.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Situation","name":"New Situation","id":"b28076cb-8cb9-473f-a86d-885400471fb7"}}},{"type":"Tutorial Step","name":"The previous property","config":"{\n \"image\": \"record-property\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Previous Property\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"66827be1-b3c6-4395-9f14-ec9393578cff","savedPayload":{"position":{"x":31210,"y":43547.52120413557},"targetPosition":{"x":30845.942352531274,"y":43812.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"8e18c04c-5f9f-4945-a088-82c1ac3d62fc","savedPayload":{"position":{"x":30845.942352531274,"y":43812.024567667184},"targetPosition":{"x":30985,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Second Backtest","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Second Backtest","config":"{\n \"image\": \"backtesting-session\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Second Backtest!\"\n }\n}","project":"Superalgos","id":"5cccebe3-fa27-403d-9da8-1f605b23580e","savedPayload":{"position":{"x":30760,"y":43547.52120413557},"targetPosition":{"x":31124.057647468726,"y":43812.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Parameters","name":"New Trading Parameters","id":"7c6c0f4a-266b-49ce-8a85-619a55b5422c"}}},{"type":"Tutorial Step","name":"Ready. Set. Go!","config":"{\n \"image\": \"task\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Do It!\"\n }\n}","project":"Superalgos","id":"570fde1a-0aee-490b-926f-b7efbb5c33e0","savedPayload":{"position":{"x":30859.554283937112,"y":43447.96692019846},"targetPosition":{"x":31124.057647468726,"y":43812.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Task","name":"BB Breakdown","id":"9ebfff72-a410-43f1-92e8-5eaca032bd2c"}}},{"type":"Tutorial Step","name":"Let's Get On The Same Page","config":"{\n \"image\": \"bot-data-dependencies\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-22T09:34:04.884Z\",\n \"toDate\": \"2020-03-04T05:29:24.459Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 5930.4053921082395,\n \"maxValue\": 11147.684874592047\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Get On The Same Page\"\n }\n}","project":"Superalgos","id":"3f4766eb-a0f9-4290-ad15-8094e7fa45b3","savedPayload":{"position":{"x":30985,"y":43384.04913533437},"targetPosition":{"x":31124.057647468726,"y":43812.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-22T09:34:04.884Z\",\n \"toDate\": \"2020-03-04T05:29:24.459Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 5930.4053921082395,\n \"maxValue\": 11147.684874592047\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trading Systems Second Backtest\"\n }\n}","project":"Superalgos","id":"9f507f76-21c2-4ba1-a96f-aeb43d5b4a14","savedPayload":{"position":{"x":31124.057647468726,"y":43362.024567667184},"targetPosition":{"x":31124.057647468726,"y":43812.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"What do we have here","config":"{\n \"image\": \"help\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-25T00:31:47.041Z\",\n \"toDate\": \"2020-03-01T08:17:11.926Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7520.980383896502,\n \"maxValue\": 9657.978059921868\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - What Do We Have Here?\"\n }\n}","project":"Superalgos","id":"52e2ae87-94d9-490c-8acb-770bf9c95e0d","savedPayload":{"position":{"x":31263.115294937452,"y":43384.04913533437},"targetPosition":{"x":31124.057647468726,"y":43812.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"Take Position Event","config":"{\n \"image\": \"take-position-event\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-26T16:16:31.587Z\",\n \"toDate\": \"2020-03-01T02:02:23.513Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7702.589530112673,\n \"maxValue\": 9412.187670932966\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Take Position Event\"\n }\n}","project":"Superalgos","id":"5bbc0cbb-aa7c-4f52-9adc-3feb7a05b47f","savedPayload":{"position":{"x":31388.56101100034,"y":43447.96692019846},"targetPosition":{"x":31124.057647468726,"y":43812.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"Find The Error Chanllege","config":"{\n \"image\": \"bullet-error\",\n \"position\": \"Left\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-26T16:16:31.587Z\",\n \"toDate\": \"2020-03-01T02:02:23.513Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7398.322897708615,\n \"maxValue\": 9107.921038528908\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Find The Error Challenge\"\n }\n}","project":"Superalgos","id":"90ba5868-8416-41d4-a338-2a8efdbb31c5","savedPayload":{"position":{"x":31488.115294937452,"y":43547.52120413557},"targetPosition":{"x":31124.057647468726,"y":43812.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"Target Rate Error","config":"{\n \"image\": \"bullet-error\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Target Rate Error\"\n }\n}","project":"Superalgos","id":"3d793d4a-4206-4392-bdc5-a7bdc687a209","savedPayload":{"position":{"x":31552.033079801546,"y":43672.96692019846},"targetPosition":{"x":31124.057647468726,"y":43812.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Strategy","name":"Downtrends","id":"cb75e487-ba89-4f0a-859a-7b9e820f42b9"}}},{"type":"Tutorial Step","name":"Radical Workaround","config":"{\n \"image\": \"bullet-error\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Radical Workaround\"\n }\n}","project":"Superalgos","id":"f53b1db6-f4a7-4dd8-87b3-2c5634446760","savedPayload":{"position":{"x":31574.057647468726,"y":43812.024567667184},"targetPosition":{"x":31124.057647468726,"y":43812.024567667184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Strategy","name":"Downtrends","id":"cb75e487-ba89-4f0a-859a-7b9e820f42b9"}}}],"tutorialTopics":[],"id":"1158a2f3-168c-4997-a141-2e508bcbf1e7","savedPayload":{"position":{"x":31124.057647468726,"y":43812.024567667184},"targetPosition":{"x":30985,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Third Backtest","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Ready. Set. Go!","config":"{\n \"image\": \"task\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Test Again!\"\n }\n}","project":"Superalgos","id":"1da026f4-9fe9-47fa-88cd-c27a2fe6d4eb","savedPayload":{"position":{"x":31197.835420521784,"y":43551.6666728306},"targetPosition":{"x":31349.057647468726,"y":43975.496636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Task","name":"BB Breakdown","id":"9ebfff72-a410-43f1-92e8-5eaca032bd2c"}}},{"type":"Tutorial Step","name":"Are Errors Gone?","config":"{\n \"image\": \"trading-strategy\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-25T00:31:47.041Z\",\n \"toDate\": \"2020-03-01T08:17:11.926Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7520.980383896502,\n \"maxValue\": 9657.978059921868\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Are Errors Gone?\"\n }\n}","project":"Superalgos","id":"4271ab5a-cb36-494f-80a7-7ffbf45781ed","savedPayload":{"position":{"x":31323.36768258048,"y":43526.230539701624},"targetPosition":{"x":31349.057647468726,"y":43975.496636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-25T00:31:47.041Z\",\n \"toDate\": \"2020-03-01T08:17:11.926Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7520.980383896502,\n \"maxValue\": 9657.978059921868\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trading Systems Third Backtest\"\n }\n}","project":"Superalgos","id":"a6ad423b-a20b-489d-aa40-1604a8774bd4","savedPayload":{"position":{"x":31450.98119281032,"y":43537.191273844335},"targetPosition":{"x":31349.057647468726,"y":43975.496636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"Let's Take a Closer Look!","config":"{\n \"image\": \"bot-data-dependencies\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-26T08:12:10.084Z\",\n \"toDate\": \"2020-03-01T14:24:29.992Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7442.53664272983,\n \"maxValue\": 9579.534318755197\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Take a Closer Look!\"\n }\n}","project":"Superalgos","id":"acca862b-e3e9-4a9b-8cac-b0be36758c1d","savedPayload":{"position":{"x":31570.337463559248,"y":43583.66090176449},"targetPosition":{"x":31349.057647468726,"y":43975.496636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"Trigger On Conditions","config":"{\n \"image\": \"bot-data-dependencies\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trigger On Conditions!\"\n }\n}","project":"Superalgos","id":"3aef02c1-52ac-4533-91f5-dd2b91cf2c2f","savedPayload":{"position":{"x":31671.76695961026,"y":43661.8747305735},"targetPosition":{"x":31349.057647468726,"y":43975.496636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Take Position Conditions","config":"{\n \"image\": \"bot-data-dependencies\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Take Position Conditions!\"\n }\n}","project":"Superalgos","id":"750ed01f-bdef-4d8f-8951-60e492306406","savedPayload":{"position":{"x":31747.052466417743,"y":43765.496341016835},"targetPosition":{"x":31349.057647468726,"y":43975.496636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"A little speculation game","config":"{\n \"image\": \"help\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - A Little Speculation Game\"\n }\n}","project":"Superalgos","id":"5bec89ea-a05c-47af-b720-7c03de6fc61b","savedPayload":{"position":{"x":31790.0947999603,"y":43886.1309264778},"targetPosition":{"x":31349.057647468726,"y":43975.496636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trading Systems Candles Panel\"\n }\n}","project":"Superalgos","id":"ba79e93f-8d17-4081-a778-f11da2ded898","savedPayload":{"position":{"x":31797.406926356936,"y":44014.00539028386},"targetPosition":{"x":31349.057647468726,"y":43975.496636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Not so great right?","config":"{\n \"image\": \"hit-fail\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-03-03T22:49:58.065Z\",\n \"toDate\": \"2020-03-17T15:15:11.639Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 3407.7807082413956,\n \"maxValue\": 10182.424596999368\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Not So Great Right?\"\n }\n}","project":"Superalgos","id":"7360afc7-bfd6-41fc-a2a9-e009dffcd8f8","savedPayload":{"position":{"x":31768.39646061388,"y":44138.76010387617},"targetPosition":{"x":31349.057647468726,"y":43975.496636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown Backtesting Session My Computer Binance BTC/USDT","id":"f1f509dd-91bd-41dd-a1b9-b556a4d8d07d"}}},{"type":"Tutorial Step","name":"Trigger Stage","config":"{\n \"image\": \"trigger-stage\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Wrap It Up!\"\n }\n}","project":"Superalgos","id":"8a216a0e-a8e6-47ce-bbac-74c5d59c826f","savedPayload":{"position":{"x":31705.41365813375,"y":44250.288182304335},"targetPosition":{"x":31349.057647468726,"y":43975.496636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"4. Testing a Trading Idea - The Other Stages","id":"56a4f43f-c512-42a5-9c31-a2b590b689ef"}}}],"tutorialTopics":[],"id":"d3548344-3a79-4a16-abeb-589e373199b8","savedPayload":{"position":{"x":31349.057647468726,"y":43975.496636468386},"targetPosition":{"x":30985,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"8837ff70-a40f-444c-b8f9-272d1642eece","savedPayload":{"position":{"x":30985,"y":44240},"targetPosition":{"x":30985,"y":44240},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"}}},{"type":"Tutorial","name":"4. Testing a Trading Idea - The Other Stages","config":"{\n \"image\": \"trading-strategy\",\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial - The Other Stages\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Initial Targets","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Taking a Position","config":"{\n \"image\": \"open-stage\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Taking a Position\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"Open Stage Initial Targets\"\n }\n }\n}","project":"Superalgos","id":"cbfd783e-b5a6-4bc2-9ca9-5254a4824aa8","savedPayload":{"position":{"x":37240.6920489294,"y":43816.076182158286},"targetPosition":{"x":37133,"y":44253.00000000001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Initial Targets","config":"{\n \"image\": \"initial-targets\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Initial Targets....\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"43a34bc9-d240-4e90-b257-9b342e7f5a6b","savedPayload":{"position":{"x":37342.1254274197,"y":43854.54478845606},"targetPosition":{"x":37133,"y":44253.00000000001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Initial Targets","name":"New Initial Targets","id":"22b563b5-472f-4eb4-84de-0a071f2b9a25"}}},{"type":"Tutorial Step","name":"Look around!","config":"{\n \"image\": \"initial-targets\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Look Around!\"\n }\n}","project":"Superalgos","id":"5134b5f7-e003-4069-951e-b0116e13943b","savedPayload":{"position":{"x":37431.40519620836,"y":43916.17016332301},"targetPosition":{"x":37133,"y":44253.00000000001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Target Rate","config":"{\n \"image\": \"target-rate\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Target Rate\"\n }\n}","project":"Superalgos","id":"346f8ae6-adfd-40b3-ba41-671774a58ce8","savedPayload":{"position":{"x":37503.342739652144,"y":43997.37086397099},"targetPosition":{"x":37133,"y":44253.00000000001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Target Rate","name":"New Target Rate","id":"70b22c9f-5e23-480a-8418-0e7dedc3ca90"}}},{"type":"Tutorial Step","name":"How do we go about it?","config":"{\n \"image\": \"target-rate\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - How Do We Go About It?\"\n }\n}","project":"Superalgos","id":"3107501c-b41c-434c-ba44-f264fb0e86bd","savedPayload":{"position":{"x":37553.757309208435,"y":44093.42780083087},"targetPosition":{"x":37133,"y":44253.00000000001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Formula","name":"New Formula","id":"0bae61e3-861b-42f9-abaa-85da233005eb"}}},{"type":"Tutorial Step","name":"Target Size","config":"{\n \"image\": \"target-size-in-base-asset\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Target Size\"\n }\n}","project":"Superalgos","id":"2b48e7e9-4f45-4e5d-8590-7801a8969903","savedPayload":{"position":{"x":37579.718993344126,"y":44198.758493885114},"targetPosition":{"x":37133,"y":44253.00000000001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","id":"d623a61e-83e7-401f-a26f-f48618f20d2f"}}},{"type":"Tutorial Step","name":"The whole balance?","config":"{\n \"image\": \"balance\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Whole Balance?\"\n }\n}","project":"Superalgos","id":"818c2ffd-001e-45d0-98aa-9dc6aaa5c0cd","savedPayload":{"position":{"x":37579.718993344126,"y":44307.2415061149},"targetPosition":{"x":37133,"y":44253.00000000001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Parameters","name":"New Trading Parameters","id":"8f4b2297-8462-47d3-863a-d92b1d4a0b39"}}},{"type":"Tutorial Step","name":"Initial Balance vs Balance","config":"{\n \"image\": \"balance\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Initial Balance vs. Balance\"\n }\n}","project":"Superalgos","id":"7186dd16-77df-4523-b4b4-789aea46114e","savedPayload":{"position":{"x":37553.757309208435,"y":44412.572199169146},"targetPosition":{"x":37133,"y":44253.00000000001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"It's the balance!","config":"{\n \"image\": \"balance\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - It's The Balance!\"\n }\n}","project":"Superalgos","id":"0ebf48d2-ece8-44a6-8959-d10f48a585b5","savedPayload":{"position":{"x":37503.342739652144,"y":44508.62913602903},"targetPosition":{"x":37133,"y":44253.00000000001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Trading Engine","name":"Low-Frequency","id":"eb20f622-71bf-4479-a574-d2320e1d4bd1"}}},{"type":"Tutorial Step","name":"There It Is!","config":"{\n \"image\": \"balance\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - There It Is!\"\n }\n}","project":"Superalgos","id":"0c1f83f7-efb7-403b-8daa-91c003223390","savedPayload":{"position":{"x":37431.40519620836,"y":44589.829836677},"targetPosition":{"x":37133,"y":44253.00000000001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Balance","name":"Base Asset","id":"72f6a6b6-f35b-4d80-b8ad-4a4ed55f2387"}}},{"type":"Tutorial Step","name":"Copy the node's path","config":"{\n \"image\": \"copy-path\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Copy The Node's Path!\"\n }\n}","project":"Superalgos","id":"4df291dd-90d3-46ec-967d-1c4878964454","savedPayload":{"position":{"x":37342.1254274197,"y":44651.45521154395},"targetPosition":{"x":37133,"y":44253.00000000001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Circling Back!","config":"{\n \"image\": \"formula\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Circling Back!\"\n }\n}","project":"Superalgos","id":"3509f3b2-e886-47d9-b7e6-2dcdca9125b9","savedPayload":{"position":{"x":37240.6920489294,"y":44689.92381784173},"targetPosition":{"x":37133,"y":44253.00000000001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Formula","name":"New Formula","id":"964f5306-f46f-4ba7-a367-fd24ac10a112"}}}],"tutorialTopics":[],"id":"ebe7e53c-0654-496f-b295-bf259ef4d24d","savedPayload":{"position":{"x":37133,"y":44253.00000000001},"targetPosition":{"x":36683,"y":44253.00000000001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Execution","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Time to talk execution","config":"{\n \"image\": \"open-execution\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Time to Talk Execution!\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"e5b09d5a-cfc6-41cb-b814-d144b356c53b","savedPayload":{"position":{"x":37372.31610131397,"y":44416.60365676162},"targetPosition":{"x":36963.57041083643,"y":44604.82416711062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Open Execution","name":"New Open Execution","id":"cdce969d-baf7-42d7-a89c-58937a31acc3"}}},{"type":"Tutorial Step","name":"Let's do some reading","config":"{\n \"image\": \"open-execution\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Do Some Reading!\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"Open Stage Execution\"\n }\n }\n}","project":"Superalgos","id":"155f2e47-ad69-4322-bb57-d71761560a81","savedPayload":{"position":{"x":37405.48281088047,"y":44519.89224915681},"targetPosition":{"x":36963.57041083643,"y":44604.82416711062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Execution algorithm","config":"{\n \"image\": \"execution-algorithm\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Execution Algorithm\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"Open Stage Execution\",\n \"anchor\": \"Execution Algorithm\"\n }\n }\n}","project":"Superalgos","id":"bf5e1b35-9389-4c78-8a3b-f9cede4f17d2","savedPayload":{"position":{"x":37412.967178042636,"y":44628.116775908515},"targetPosition":{"x":36963.57041083643,"y":44604.82416711062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Market Orders","config":"{\n \"image\": \"market-sell-order\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Market Sell Orders\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"89b306a5-da66-4a43-b90f-01138a38d29a","savedPayload":{"position":{"x":37394.33423858556,"y":44734.98762090208},"targetPosition":{"x":36963.57041083643,"y":44604.82416711062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Market Sell Order","name":"New Market Sell Order","id":"29a57a7b-5f26-4e92-a6c6-60133af828c1"}}},{"type":"Tutorial Step","name":"100% of 100%","config":"{\n \"image\": \"market-sell-order\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - 100% of 100% = ?\"\n }\n}","project":"Superalgos","id":"936504f7-c999-4e42-a800-0cfca2022a83","savedPayload":{"position":{"x":37350.66687122251,"y":44834.29383908618},"targetPosition":{"x":36963.57041083643,"y":44604.82416711062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Create Order Event","config":"{\n \"image\": \"create-order-event\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Create Order Event\"\n }\n}","project":"Superalgos","id":"4e45f1a2-5aa9-4446-af61-c820bb61d2d3","savedPayload":{"position":{"x":37284.5028646202,"y":44920.26411402339},"targetPosition":{"x":36963.57041083643,"y":44604.82416711062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Create Order Event","name":"New Create Order Event","id":"3e26be06-9e44-49c8-bcd1-b1b10d6b9032"}}},{"type":"Tutorial Step","name":"Simulated exchange events","config":"{\n \"image\": \"simulated-exchange-events\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Simulated Exchange Events\"\n }\n}","project":"Superalgos","id":"83c52b5c-c65d-4858-af67-16f23d82d82c","savedPayload":{"position":{"x":37199.687430345984,"y":44987.90216582358},"targetPosition":{"x":36963.57041083643,"y":44604.82416711062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Market Sell Order","name":"New Market Sell Order","id":"29a57a7b-5f26-4e92-a6c6-60133af828c1"}}},{"type":"Tutorial Step","name":"Close stage event","config":"{\n \"image\": \"close-stage-event\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Close Stage Event\"\n }\n}","project":"Superalgos","id":"cfd98cb7-eb9f-4ed9-8c6c-3bafff36ba44","savedPayload":{"position":{"x":37101.14973314832,"y":45033.27711677044},"targetPosition":{"x":36963.57041083643,"y":44604.82416711062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Open Stage","name":"New Open Stage","id":"f31f4f8e-200f-415c-a327-1fcc08280f97"}}},{"type":"Tutorial Step","name":"Back to the order","config":"{\n \"image\": \"market-order\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Back to the Order\"\n }\n}","project":"Superalgos","id":"aa3013b5-fc5d-4e06-963e-32bf2b015378","savedPayload":{"position":{"x":36994.61642581838,"y":45053.75193964619},"targetPosition":{"x":36963.57041083643,"y":44604.82416711062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}},{"type":"Tutorial Step","name":"Here's the thing...","config":"{\n \"image\": \"market-order\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Here's The Thing!\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"e0702849-f504-41e6-a95d-75ed39a3c1a1","savedPayload":{"position":{"x":36886.278836945356,"y":45048.13671216821},"targetPosition":{"x":36963.57041083643,"y":44604.82416711062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"It's all about references","config":"{\n \"image\": \"market-order\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - It's All About References!\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"References\"\n }\n }\n}","project":"Superalgos","id":"1a577022-6df7-409e-aedd-80fb6ee1c3dd","savedPayload":{"position":{"x":36782.43315340344,"y":45016.757770947035},"targetPosition":{"x":36963.57041083643,"y":44604.82416711062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Market Order","name":"Market Sell Order #1","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}},{"type":"Tutorial Step","name":"Tricks of the trade","config":"{\n \"image\": \"mouse-pointer\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Tricks of the Trade\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"21571682-9f27-4060-8584-86d364b530f3","savedPayload":{"position":{"x":36689.11450885639,"y":44961.43874598861},"targetPosition":{"x":36963.57041083643,"y":44604.82416711062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"16cbbf63-86eb-467e-892d-c6ba3545f7ca","savedPayload":{"position":{"x":36963.57041083643,"y":44604.82416711062},"targetPosition":{"x":36683,"y":44253.00000000001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Manage Stage","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Position Management","config":"{\n \"image\": \"manage-stage\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Position Management\"\n }\n}","project":"Superalgos","id":"d195a554-00f4-4124-b5ed-72dca5d392f0","savedPayload":{"position":{"x":36912.73892204308,"y":44997.79529247874},"targetPosition":{"x":36582.865579719655,"y":44691.717560481826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Manage Stage","name":"New Manage Stage","id":"b5b4f055-28ab-4d73-b81b-23f70b8a9b2d"}}},{"type":"Tutorial Step","name":"Phase 1","config":"{\n \"image\": \"phase-0\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Phase 1\"\n }\n}","project":"Superalgos","id":"9d4e2108-5d21-4295-ad3f-dd9b49122f2c","savedPayload":{"position":{"x":36715.50540820456,"y":45121.725323085586},"targetPosition":{"x":36582.865579719655,"y":44691.717560481826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Managed Stop Loss","config":"{\n \"image\": \"stop-loss\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Managed Stop Loss\"\n }\n}","project":"Superalgos","id":"40063d1b-f797-452b-8a9b-f5d0f69c4824","savedPayload":{"position":{"x":36482.73115943931,"y":45130.435120963644},"targetPosition":{"x":36582.865579719655,"y":44691.717560481826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","id":"26a0240a-ab1b-4276-a9f9-ab1d6a7f788a"}}},{"type":"Tutorial Step","name":"Entry Target Rate","config":"{\n \"image\": \"entry-target-rate\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Entry Target Rate\"\n }\n}","project":"Superalgos","id":"6d948eb3-7ed6-4111-a636-278b5007c086","savedPayload":{"position":{"x":36276.78784772274,"y":45021.59090280525},"targetPosition":{"x":36582.865579719655,"y":44691.717560481826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Entry Target Rate","name":"New Entry Target Rate","id":"71b3e7d9-80d0-422d-999e-99549f5ab59d"}}},{"type":"Tutorial Step","name":"Managed Take Profit","config":"{\n \"image\": \"managed-take-profit\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Managed Take Profit\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"93ca00df-b029-4db9-b5e0-aa62fd073819","savedPayload":{"position":{"x":36152.857817115895,"y":44824.35738896673},"targetPosition":{"x":36582.865579719655,"y":44691.717560481826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Managed Take Profit","name":"New Managed Take Profit","id":"3ea4ea70-17fc-4cf2-999d-0054a6a28b87"}}}],"tutorialTopics":[],"id":"49edb667-7a9d-46ff-ad9f-d002d2c843ad","savedPayload":{"position":{"x":36582.865579719655,"y":44691.717560481826},"targetPosition":{"x":36683,"y":44253.00000000001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Close Stage","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Closing a Position","config":"{\n \"image\": \"close-stage\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Closing a Position\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"The Close Stage\"\n }\n }\n}","project":"Superalgos","id":"de52fc54-219f-409e-b3de-7def3a231295","savedPayload":{"position":{"x":36322.36954041203,"y":44896.01153151734},"targetPosition":{"x":36277.564009443915,"y":44448.24768260291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Close Stage","name":"New Close Stage","id":"d6a475a0-48ef-40a2-b748-9682956eb87a"}}},{"type":"Tutorial Step","name":"Initial Targets","config":"{\n \"image\": \"initial-targets\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Initial Targets\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"f3c10e4a-e46c-49e9-97e6-8c937ea68991","savedPayload":{"position":{"x":36166.52318048328,"y":44884.332461406},"targetPosition":{"x":36277.564009443915,"y":44448.24768260291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Target Rate","name":"New Target Rate","id":"20d38486-504d-4354-b11c-9179f5163511"}}},{"type":"Tutorial Step","name":"Target size","config":"{\n \"image\": \"trading-engine\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - How to Find Stuff\"\n }\n}","project":"Superalgos","id":"5e8ec57a-721a-4041-93e8-2cb188b8eb13","savedPayload":{"position":{"x":36024.06998331528,"y":44820.055131045105},"targetPosition":{"x":36277.564009443915,"y":44448.24768260291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Stage Quoted Asset","name":"New Stage Quoted Asset","id":"48381545-119a-422d-b6ea-5868072f8cf4"}}},{"type":"Tutorial Step","name":"And the winner is...","config":"{\n \"image\": \"target-size\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - And the Winner Is...\"\n }\n}","project":"Superalgos","id":"cf3b572a-d45c-449e-abc7-a89df9d06ab1","savedPayload":{"position":{"x":35912.191906871776,"y":44710.93233510856},"targetPosition":{"x":36277.564009443915,"y":44448.24768260291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Target Size in Quoted Asset","config":"{\n \"image\": \"target-size-in-quoted-asset\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Target Size in Quoted Asset\"\n }\n}","project":"Superalgos","id":"f189a7ab-488a-49e9-b700-4fc2e1e0e19d","savedPayload":{"position":{"x":35844.38309831641,"y":44570.125893267264},"targetPosition":{"x":36277.564009443915,"y":44448.24768260291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","id":"fc87b998-1c00-4ba9-9b92-50ac0b0e0dd5"}}},{"type":"Tutorial Step","name":"Market Buy Order","config":"{\n \"image\": \"market-buy-order\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Market Buy Order\"\n }\n}","project":"Superalgos","id":"d4bb9da3-ccd1-4a35-80d7-fc53f0a618b0","savedPayload":{"position":{"x":35828.82230071238,"y":44414.61914048902},"targetPosition":{"x":36277.564009443915,"y":44448.24768260291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Market Buy Order","name":"New Market Buy Order","id":"39cfc0ee-887a-4925-a296-0256a200482a"}}},{"type":"Tutorial Step","name":"This is it!","config":"{\n \"image\": \"market-order\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - This is it!\"\n }\n}","project":"Superalgos","id":"05b53511-848c-42f8-8a7f-89448e3446c0","savedPayload":{"position":{"x":35867.38637590366,"y":44263.16848619413},"targetPosition":{"x":36277.564009443915,"y":44448.24768260291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Market Order","name":"Market Buy Order #1","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}},{"type":"Tutorial Step","name":"We're almost done!","config":"{\n \"image\": \"close-stage-event\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - We're almost done!\"\n }\n}","project":"Superalgos","id":"abf4f8de-6f76-4276-87b4-c780b2c2fb25","savedPayload":{"position":{"x":35955.42392727704,"y":44134.04111446418},"targetPosition":{"x":36277.564009443915,"y":44448.24768260291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Close Stage","name":"New Close Stage","id":"d6a475a0-48ef-40a2-b748-9682956eb87a"}}}],"tutorialTopics":[],"id":"f4188b3b-86fb-4a11-9e65-c4861cece1c2","savedPayload":{"position":{"x":36277.564009443915,"y":44448.24768260291},"targetPosition":{"x":36683,"y":44253.00000000001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"First Backtest","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"First Backtest","config":"{\n \"image\": \"backtesting-session\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - First Backtest!\"\n }\n}","project":"Superalgos","id":"7e4bef9d-2beb-456b-bf2d-f18e43c5a7be","savedPayload":{"position":{"x":35942.025035246494,"y":44357.608277475505},"targetPosition":{"x":36277.564009443915,"y":44057.752317397106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Task","name":"BB Breakdown 2","id":"45c42479-b3cc-49bd-ac69-3ba2dea67d08"}}},{"type":"Tutorial Step","name":"Ready to Rock?","config":"{\n \"image\": \"trading-strategy\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"repositionAtTimeMachineReferenceParent\": true,\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-23T05:14:21.951Z\",\n \"toDate\": \"2020-03-07T07:22:37.749Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7338.746621498382,\n \"maxValue\": 10023.101181498383\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Ready to Rock....?\"\n }\n}","project":"Superalgos","id":"729a18c6-c4e3-4122-8f93-ef3fde80b418","savedPayload":{"position":{"x":35852.81651080515,"y":44206.37789527693},"targetPosition":{"x":36277.564009443915,"y":44057.752317397106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown 2 Backtesting Session My Computer Binance BTC/USDT","id":"ac37953d-bcaa-48d6-b2de-02479fbbd6f0"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-23T05:14:21.951Z\",\n \"toDate\": \"2020-03-07T07:22:37.749Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7338.746621498382,\n \"maxValue\": 10023.101181498383\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trading Systems Position\"\n }\n}","project":"Superalgos","id":"019dbcfc-22a2-4a6b-ab43-c9d922895daa","savedPayload":{"position":{"x":35828.2719426859,"y":44032.52061614037},"targetPosition":{"x":36277.564009443915,"y":44057.752317397106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown 2 Backtesting Session My Computer Binance BTC/USDT","id":"ac37953d-bcaa-48d6-b2de-02479fbbd6f0"}}},{"type":"Tutorial Step","name":"The first position","config":"{\n \"image\": \"layer\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-23T05:14:21.951Z\",\n \"toDate\": \"2020-03-07T07:22:37.749Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7338.746621498382,\n \"maxValue\": 10023.101181498383\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The First Position\"\n }\n}","project":"Superalgos","id":"a37db7cc-eff0-4242-9159-73e0c4d3bd59","savedPayload":{"position":{"x":35872.12801888783,"y":43862.504634794204},"targetPosition":{"x":36277.564009443915,"y":44057.752317397106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown 2 Backtesting Session My Computer Binance BTC/USDT","id":"ac37953d-bcaa-48d6-b2de-02479fbbd6f0"}}},{"type":"Tutorial Step","name":"Chronology of a Position","config":"{\n \"image\": \"position\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Chronology of a Position\"\n }\n}","project":"Superalgos","id":"b967e1bd-b0bd-4057-aa4c-59417861251d","savedPayload":{"position":{"x":35977.708049365516,"y":43722.213343199684},"targetPosition":{"x":36277.564009443915,"y":44057.752317397106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Manage and Close","config":"{\n \"image\": \"position\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Manage and Close\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"07b6f26a-215f-4a9e-9133-202f540e385c","savedPayload":{"position":{"x":36128.93843156409,"y":43633.00481875834},"targetPosition":{"x":36277.564009443915,"y":44057.752317397106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Why the time frame matters","config":"{\n \"image\": \"time-frame\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Time Frame Matters!\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Node\",\n \"type\": \"Time Frame\"\n }\n }\n}","project":"Superalgos","id":"dbbf0275-5567-4af3-92cd-c2429561a352","savedPayload":{"position":{"x":36302.79571070065,"y":43608.46025063909},"targetPosition":{"x":36277.564009443915,"y":44057.752317397106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"26a22bf4-d775-442f-852e-91655eb63750","savedPayload":{"position":{"x":36277.564009443915,"y":44057.752317397106},"targetPosition":{"x":36683,"y":44253.00000000001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Warnings","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Right\",\n \"slider\": \"\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Warning!","config":"{\n \"image\": \"bullet-warning\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Warning!\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"c217bac2-6248-4652-97a0-20129402ff83","savedPayload":{"position":{"x":36139.22362138645,"y":43738.904639031054},"targetPosition":{"x":36582.865579719655,"y":43814.28243951819},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"4. Testing a Trading Idea - The Other Stages","id":"56a4f43f-c512-42a5-9c31-a2b590b689ef"}}},{"type":"Tutorial Step","name":"Confusing?","config":"{\n \"image\": \"bullet-warning\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Confusing?\"\n }\n}","project":"Superalgos","id":"e603b921-c766-4758-bffb-37b2874f7c7b","savedPayload":{"position":{"x":36201.839690066925,"y":43574.86800508629},"targetPosition":{"x":36582.865579719655,"y":43814.28243951819},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"4. Testing a Trading Idea - The Other Stages","id":"56a4f43f-c512-42a5-9c31-a2b590b689ef"}}},{"type":"Tutorial Step","name":"Three messages","config":"{\n \"image\": \"bullet-warning\",\n \"position\": \"Right\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-23T09:41:15.612Z\",\n \"toDate\": \"2020-03-07T11:49:31.410Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 6636.325938588502,\n \"maxValue\": 9320.680498588503\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Three Warnings?\"\n }\n}","project":"Superalgos","id":"75c2452d-a367-4fe9-94ce-57d955341cbc","savedPayload":{"position":{"x":36322.463496438744,"y":43447.28004848652},"targetPosition":{"x":36582.865579719655,"y":43814.28243951819},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown 2 Backtesting Session My Computer Binance BTC/USDT","id":"ac37953d-bcaa-48d6-b2de-02479fbbd6f0"}}},{"type":"Tutorial Step","name":"Slippage","config":"{\n \"image\": \"slippage\",\n \"position\": \"Left\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Slippage\"\n }\n}","project":"Superalgos","id":"320021da-345a-4f6a-84d7-bf78dc772b82","savedPayload":{"position":{"x":36482.73115943931,"y":43375.56487903637},"targetPosition":{"x":36582.865579719655,"y":43814.28243951819},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Rate","name":"New Rate","id":"d1d02b18-2e2a-4646-8b0d-f7144bcdd945"}}},{"type":"Tutorial Step","name":"Actual Size","config":"{\n \"image\": \"actual-size\",\n \"position\": \"Left\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Actual Size\"\n }\n}","project":"Superalgos","id":"4f1ed1a3-c81e-4356-ba35-53a245bc7619","savedPayload":{"position":{"x":36658.24338020679,"y":43370.640481184986},"targetPosition":{"x":36582.865579719655,"y":43814.28243951819},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Actual Size","name":"New Actual Size","id":"cad488ae-7e5d-4600-a796-22708671364c"}}},{"type":"Tutorial Step","name":"Size Placed","config":"{\n \"image\": \"size-placed\",\n \"position\": \"Left\",\n \"slider\": \"toMiddle\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Size Placed\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"fdb60c02-93ad-4085-ba69-3a407185718d","savedPayload":{"position":{"x":36822.280014151554,"y":43433.25654986546},"targetPosition":{"x":36582.865579719655,"y":43814.28243951819},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Size Placed","name":"New Size Placed","id":"364ee3d9-3cdc-433c-8716-1d3b6bddd980"}}},{"type":"Tutorial Step","name":"Order Management","config":"{\n \"image\": \"trading-bot-instance\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Order Management\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"Overview of the Management Issue\"\n }\n }\n}","project":"Superalgos","id":"1a1b24bc-d727-4a58-9c84-5b345f57b80b","savedPayload":{"position":{"x":36949.86797075132,"y":43553.88035623728},"targetPosition":{"x":36582.865579719655,"y":43814.28243951819},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"8cc7e6bf-05d2-4835-866d-b05e45bcf20d","savedPayload":{"position":{"x":36582.865579719655,"y":43814.28243951819},"targetPosition":{"x":36683,"y":44253.00000000001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Analysis","config":"{ \n\"title\": \"\",\n \"summary\": \"\",\n \"position\": \"Right\",\n \"slider\": \"\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\" \n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Back to the Position","config":"{\n \"image\": \"fails\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-02-23T05:14:21.951Z\",\n \"toDate\": \"2020-03-07T07:22:37.749Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7338.746621498382,\n \"maxValue\": 10023.101181498383\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Back to the Position!\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"4e263eb0-05c1-4427-ad3c-ee1502796b47","savedPayload":{"position":{"x":36705.04341376502,"y":43532.85017292902},"targetPosition":{"x":36963.57041083643,"y":43901.17583288939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown 2 Backtesting Session My Computer Binance BTC/USDT","id":"ac37953d-bcaa-48d6-b2de-02479fbbd6f0"}}},{"type":"Tutorial Step","name":"The Key Moment","config":"{\n \"image\": \"hits\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-03-07T06:26:14.440Z\",\n \"toDate\": \"2020-03-17T07:41:42.414Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 3517.5641163470173,\n \"maxValue\": 10197.097255086215\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Key Moment\"\n }\n}","project":"Superalgos","id":"54ac6433-5543-4c74-965d-2bc866450b63","savedPayload":{"position":{"x":36819.2849035877,"y":43474.93447825803},"targetPosition":{"x":36963.57041083643,"y":43901.17583288939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown 2 Backtesting Session My Computer Binance BTC/USDT","id":"ac37953d-bcaa-48d6-b2de-02479fbbd6f0"}}},{"type":"Tutorial Step","name":"March 18th","config":"{\n \"image\": \"fails\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-03-16T10:48:16.025Z\",\n \"toDate\": \"2020-03-20T15:14:43.622Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 2683.3549743813956,\n \"maxValue\": 7813.236424933101\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - March 18th\"\n }\n}","project":"Superalgos","id":"0f188ec2-d346-4500-afd5-b2082dfe6ff5","savedPayload":{"position":{"x":36945.21554710872,"y":43451.55032318433},"targetPosition":{"x":36963.57041083643,"y":43901.17583288939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown 2 Backtesting Session My Computer Binance BTC/USDT","id":"ac37953d-bcaa-48d6-b2de-02479fbbd6f0"}}},{"type":"Tutorial Step","name":"March 28th - April 1st","config":"{\n \"image\": \"fails\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-03-26T04:54:48.391Z\",\n \"toDate\": \"2020-04-05T14:50:34.042Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 3574.539591198196,\n \"maxValue\": 8704.421041749902\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - March 28th - April 1st\"\n }\n}","project":"Superalgos","id":"a4c481cd-cf18-4f3d-84fb-a19f870e8a41","savedPayload":{"position":{"x":37072.633192528374,"y":43464.592152881065},"targetPosition":{"x":36963.57041083643,"y":43901.17583288939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown 2 Backtesting Session My Computer Binance BTC/USDT","id":"ac37953d-bcaa-48d6-b2de-02479fbbd6f0"}}},{"type":"Tutorial Step","name":"Sep 5th - Sep 14th","config":"{\n \"image\": \"fails\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"batchConfigChangesReferenceParent\": [\n {\n \"nodePath\": \"referenceParent.timeScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-09-03T08:05:29.984Z\",\n \"toDate\": \"2020-09-21T07:58:10.468Z\"\n }\n },\n {\n \"nodePath\": \"referenceParent.rateScale\",\n \"properties\": {\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 7462.332482061471,\n \"maxValue\": 12592.213932613176\n }\n },\n {\n \"nodePath\": \"referenceParent.timeFrameScale\",\n \"properties\": {\n \"value\": \"01-hs\"\n }\n }\n ],\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Sep 5th - Sep 14th\"\n }\n}","project":"Superalgos","id":"621c7ebf-e7a4-4b97-9a0b-34ed5bc25a4c","savedPayload":{"position":{"x":37191.21521999669,"y":43513.00339586895},"targetPosition":{"x":36963.57041083643,"y":43901.17583288939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Time Machine","name":"BB Breakdown 2 Backtesting Session My Computer Binance BTC/USDT","id":"ac37953d-bcaa-48d6-b2de-02479fbbd6f0"}}},{"type":"Tutorial Step","name":"Predictions","config":"{\n \"image\": \"hit-ratio\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Prediction Game\"\n }\n}","project":"Superalgos","id":"41b3245a-82fa-48d5-a2b4-ef290ace6dce","savedPayload":{"position":{"x":37291.35481888265,"y":43592.862061153864},"targetPosition":{"x":36963.57041083643,"y":43901.17583288939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Is there room for nuance?","config":"{\n \"image\": \"space-style\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Is There Room For Nuance?\"\n }\n}","project":"Superalgos","id":"54960210-aba7-4767-8bf8-0ee413bbc3e8","savedPayload":{"position":{"x":37364.93927443764,"y":43697.69847461218},"targetPosition":{"x":36963.57041083643,"y":43901.17583288939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"What is the nuance?","config":"{\n \"image\": \"space-style\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - What is the Nuance?\"\n }\n}","project":"Superalgos","id":"3e3d6a09-da1e-4f8a-ba1d-66ac5b27ba90","savedPayload":{"position":{"x":37406.007211696204,"y":43819.019413511676},"targetPosition":{"x":36963.57041083643,"y":43901.17583288939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"What's next?","config":"{\n \"image\": \"tutorial\",\n \"position\": \"\",\n \"slider\": \"\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - What's Next....?\"\n }\n}","project":"Superalgos","id":"bcf62044-6646-4eb0-ba2f-b6b659aa14e3","savedPayload":{"position":{"x":37411.231550622084,"y":43946.99617690612},"targetPosition":{"x":36963.57041083643,"y":43901.17583288939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"In the mean time!","config":"{\n \"image\": \"scripts-library\",\n \"position\": \"\",\n \"slider\": \"\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - In The Mean Time!\"\n }\n}","project":"Superalgos","id":"e16d9fa7-856d-4c38-b8e7-0e694f98d951","savedPayload":{"position":{"x":37380.18904634583,"y":44071.2608485324},"targetPosition":{"x":36963.57041083643,"y":43901.17583288939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Tutorial","name":"4. Testing a Trading Idea - The Other Stages","id":"56a4f43f-c512-42a5-9c31-a2b590b689ef"}}}],"tutorialTopics":[],"id":"0ff2fd12-d1cf-47dc-a25d-aea891370ee0","savedPayload":{"position":{"x":36963.57041083643,"y":43901.17583288939},"targetPosition":{"x":36683,"y":44253.00000000001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"56a4f43f-c512-42a5-9c31-a2b590b689ef","savedPayload":{"position":{"x":36683,"y":44253.00000000001},"targetPosition":{"x":36683,"y":44253.00000000001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"}}}]} \ No newline at end of file diff --git a/Projects/Superalgos/Plugins/Workspaces/Weak-Hands-Buster v2.json b/Projects/Superalgos/Plugins/Workspaces/Weak-Hands-Buster v2.json index 86d0b1a75..a11f76a4d 100644 --- a/Projects/Superalgos/Plugins/Workspaces/Weak-Hands-Buster v2.json +++ b/Projects/Superalgos/Plugins/Workspaces/Weak-Hands-Buster v2.json @@ -1 +1 @@ -{"type":"Workspace","name":"Weak-hands Buster v2","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[{"type":"Project Data Tasks","name":"Superalgos","project":"Superalgos","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","project":"Superalgos","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Sparta","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Sparta","project":"Superalgos","tasks":[{"type":"Task","name":"EMA","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"EMA","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Exponential Moving Average (EMA) Multi-Period-Market","project":"Superalgos","id":"9adffd60-8756-44f0-9290-692711f43349","savedPayload":{"position":{"x":23320.126508730755,"y":29392.688294073963},"targetPosition":{"x":23620.126508730755,"y":29392.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Exponential Moving Average (EMA) Multi-Period-Daily","project":"Superalgos","id":"559fc728-018a-4e8e-a5fa-1e37958e4f6c","savedPayload":{"position":{"x":23470.126508730755,"y":29132.88067293863},"targetPosition":{"x":23620.126508730755,"y":29392.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"82a8c05f-a6f6-4728-8271-7b327c2b72ee","savedPayload":{"position":{"x":23620.126508730755,"y":29392.688294073963},"targetPosition":{"x":23879.934129866087,"y":29542.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8ae4fc50-8c1f-4e45-9ffd-fad368816b9a","savedPayload":{"position":{"x":23879.934129866087,"y":29542.688294073963},"targetPosition":{"x":24139.74175100142,"y":29692.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51b49b9d-cb97-4d98-ad8f-9f691320bac2","savedPayload":{"position":{"x":24139.74175100142,"y":29692.688294073963},"targetPosition":{"x":24399.549372136753,"y":29842.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"63728769-73e4-474e-8aa3-0d82bedca08e","savedPayload":{"position":{"x":24399.549372136753,"y":29842.688294073963},"targetPosition":{"x":24659.356993272086,"y":29992.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Sparta","id":"9cfffc48-486a-48cb-b641-98c82e314d3a"}}},{"type":"Data Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Exchange Raw Data","project":"Superalgos","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","config":"{ \n\"startDate\": \"2020-01-01\"\n}","project":"Superalgos","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"149bc037-9762-4737-b1b8-945b5ccee230","savedPayload":{"position":{"x":23931.241698334637,"y":28863.681567010735},"targetPosition":{"x":24173.94679664712,"y":29040.017142698478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"507bc325-1cbd-40f4-85eb-cfe77b78000e","savedPayload":{"position":{"x":24173.94679664712,"y":29040.017142698478},"targetPosition":{"x":24416.651894959603,"y":29216.35271838622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7c28a4a4-86da-43be-9e89-d01b202f27eb","savedPayload":{"position":{"x":24416.651894959603,"y":29216.35271838622},"targetPosition":{"x":24659.356993272086,"y":29392.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Volumes","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"ab6608d2-a876-42ca-afee-6ea8e996b720","savedPayload":{"position":{"x":24251.003349003902,"y":28621.315202389214},"targetPosition":{"x":24473.94679664712,"y":28822.054384296873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"6eebde17-ba9a-4ba6-9ef8-862762a9951a","savedPayload":{"position":{"x":24536.320303892448,"y":28528.61010407673},"targetPosition":{"x":24473.94679664712,"y":28822.054384296873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"3e3e037f-722b-46ed-b355-09a4116c2959","savedPayload":{"position":{"x":24473.94679664712,"y":28822.054384296873},"targetPosition":{"x":24566.651894959603,"y":29107.371339185418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f351c034-5a40-4831-aaaf-b92b97694e24","savedPayload":{"position":{"x":24566.651894959603,"y":29107.371339185418},"targetPosition":{"x":24659.356993272086,"y":29392.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Bands","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","project":"Superalgos","id":"9edfd024-2a02-4809-89cf-c79b52a4adf9","savedPayload":{"position":{"x":24782.393682651724,"y":28528.61010407673},"targetPosition":{"x":24844.76718989705,"y":28822.054384296873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","project":"Superalgos","id":"bc6520ae-f5e7-4d43-882d-f032dfe725ff","savedPayload":{"position":{"x":25067.71063754027,"y":28621.315202389214},"targetPosition":{"x":24844.76718989705,"y":28822.054384296873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}}],"id":"f5669135-8f3d-4ada-aef6-a503f831f612","savedPayload":{"position":{"x":24844.76718989705,"y":28822.054384296873},"targetPosition":{"x":24752.06209158457,"y":29107.371339185418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"db37b827-4200-4cfa-b973-9ad2c5d5c587","savedPayload":{"position":{"x":24752.06209158457,"y":29107.371339185418},"targetPosition":{"x":24659.356993272086,"y":29392.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","project":"Superalgos","id":"e09e4195-bf40-4b14-b603-51872fdb7156","savedPayload":{"position":{"x":25266.78818281979,"y":28765.953505405698},"targetPosition":{"x":25144.76718989705,"y":29040.017142698478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","project":"Superalgos","id":"40de2dfa-6faf-4dc3-b21e-8cf8e4a274f4","savedPayload":{"position":{"x":25443.123758507532,"y":29008.65860371818},"targetPosition":{"x":25144.76718989705,"y":29040.017142698478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"d890cbea-6399-4b88-ab5c-df5f9704817b","savedPayload":{"position":{"x":25144.76718989705,"y":29040.017142698478},"targetPosition":{"x":24902.06209158457,"y":29216.35271838622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"039dc305-4627-406e-8f40-ee2527cd4b99","savedPayload":{"position":{"x":24902.06209158457,"y":29216.35271838622},"targetPosition":{"x":24659.356993272086,"y":29392.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cbf6546f-5c9f-476d-ae9d-cfdc4a27cd58","savedPayload":{"position":{"x":24659.356993272086,"y":29392.688294073963},"targetPosition":{"x":24659.356993272086,"y":29692.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c43a111f-2783-490f-8570-3fd38f6fa76c","savedPayload":{"position":{"x":24659.356993272086,"y":29692.688294073963},"targetPosition":{"x":24659.356993272086,"y":29992.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}}],"id":"e83ad2a7-9bd0-41d1-aa76-4c889e76e482","savedPayload":{"position":{"x":24659.356993272086,"y":29992.688294073963},"targetPosition":{"x":24809.356993272086,"y":30252.495915209296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"af949a76-a6f4-4ec6-869e-f240480eea81","savedPayload":{"position":{"x":24809.356993272086,"y":30252.495915209296},"targetPosition":{"x":24959.356993272086,"y":30512.30353634463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"9ad0524d-ba18-4b45-b636-ffc088dd7c4c","savedPayload":{"position":{"x":24959.356993272086,"y":30512.30353634463},"targetPosition":{"x":25109.356993272086,"y":30772.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"d7975b33-3654-4e37-8255-90dbf51c3789"}}}],"id":"4df1cb4e-b9ca-4f62-bb5f-c7e262aaa22a","savedPayload":{"position":{"x":25109.356993272086,"y":30772.11115747996},"targetPosition":{"x":25259.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningTasks":{"type":"Learning Tasks","name":"New Learning Tasks","project":"Superalgos","projectLearningTasks":[{"type":"Project Learning Tasks","name":"Superalgos","project":"Superalgos","exchangeLearningTasks":[],"id":"3d879f9e-3f82-48f4-8186-ccc906099a1f","savedPayload":{"position":{"x":25559.356993272086,"y":30512.30353634463},"targetPosition":{"x":25409.356993272086,"y":30772.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"d7975b33-3654-4e37-8255-90dbf51c3789"}}}],"id":"2cd8cc1a-d9a0-4297-878f-b704894e968a","savedPayload":{"position":{"x":25409.356993272086,"y":30772.11115747996},"targetPosition":{"x":25259.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"testingTradingTasks":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","project":"Superalgos","projectTradingTasks":[{"type":"Project Trading Tasks","name":"Superalgos","project":"Superalgos","exchangeTradingTasks":[{"type":"Exchange Trading Tasks","name":"Binance","project":"Superalgos","marketTradingTasks":[{"type":"Market Trading Tasks","name":"Binance BTC/USDT","project":"Superalgos","tradingMineTasks":[{"type":"Trading Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"WHB v2","project":"Superalgos","bot":{"type":"Trading Bot Instance","name":"Low Frequency","config":"{}","project":"Superalgos","processes":[{"type":"Trading Process Instance","name":"Low Frequency Trading","project":"Superalgos","session":{"type":"Backtesting Session","name":"WHB v2","config":"{\"folderName\":\"WHB-v2\"}","project":"Superalgos","tradingParameters":{"type":"Trading Parameters","name":"New Parameters","project":"Superalgos","sessionBaseAsset":{"type":"Session Base Asset","name":"","config":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0\n}","project":"Superalgos","id":"fa7ece1b-0925-444a-808e-0175da02b228","savedPayload":{"position":{"x":28335.291877706186,"y":30552.48478700282},"targetPosition":{"x":28471.48902762805,"y":30819.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sessionQuotedAsset":{"type":"Session Quoted Asset","name":"","config":"{\n\"initialBalance\": 0\n}","project":"Superalgos","id":"00b998af-5c29-48c8-8826-d4e63c18540e","savedPayload":{"position":{"x":28424.55868811598,"y":30523.48024208079},"targetPosition":{"x":28471.48902762805,"y":30819.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","config":"{ \n\"initialDatetime\": \"2020-01-01\",\n\"finalDatetime\": \"2020-07-01\" \n}","project":"Superalgos","id":"6e3026a7-d451-4231-bb5a-eff95464b280","savedPayload":{"position":{"x":28518.41936714012,"y":30523.48024208079},"targetPosition":{"x":28471.48902762805,"y":30819.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","config":"{ \n\"label\": \"01-hs\"\n}","project":"Superalgos","id":"9f69f044-6d39-4c9a-88a3-5dc634e28bca","savedPayload":{"position":{"x":28607.686177549913,"y":30552.48478700282},"targetPosition":{"x":28471.48902762805,"y":30819.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","config":"{ \n\"marketOrderRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","project":"Superalgos","id":"be861734-9d9c-479c-b89d-6f39067b42af","savedPayload":{"position":{"x":28683.621061984013,"y":30607.654709903367},"targetPosition":{"x":28471.48902762805,"y":30819.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","config":"{ \n\"maker\": 0.1,\n\"taker\": 0.1\n}","project":"Superalgos","id":"2af98d0e-47b3-4714-a24a-8f4b6e856a17","savedPayload":{"position":{"x":28738.79098488456,"y":30683.589594337467},"targetPosition":{"x":28471.48902762805,"y":30819.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"snapshots":{"type":"Snapshots","name":"New Snapshots","config":"{ \n\"strategy\": true,\n\"position\": true\n}","project":"Superalgos","id":"227439e1-61ea-48fc-a41c-891af977b8ab","savedPayload":{"position":{"x":28767.79552980659,"y":30772.85640474726},"targetPosition":{"x":28471.48902762805,"y":30819.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"heartbeats":{"type":"Heartbeats","name":"New Heartbeats","config":"{ \n\"date\": true,\n\"candleIndex\": false\n}","project":"Superalgos","id":"2884bf0f-cd27-492f-a014-b41bc6b616e3","savedPayload":{"position":{"x":28767.79552980659,"y":30866.7170837714},"targetPosition":{"x":28471.48902762805,"y":30819.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedParameters":{"type":"User Defined Parameters","name":"New User Defined Parameters","config":"{ \n\"param1Name\": \"A text string value example\",\n\"param2Name\": 0\n}","project":"Superalgos","id":"9fe3c9a4-2961-402a-93d6-9659772d4954","savedPayload":{"position":{"x":28738.79098488456,"y":30955.983894181194},"targetPosition":{"x":28471.48902762805,"y":30819.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"caa614ed-c80e-4d7c-82f6-22dd05cc047c","savedPayload":{"position":{"x":28471.48902762805,"y":30819.78674425933},"targetPosition":{"x":28259.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingSystemReference":{"type":"Trading System Reference","name":"WHB v2","project":"Superalgos","id":"3843eabf-52dc-4dae-aa28-d9187a009aab","savedPayload":{"position":{"x":28559.356993272086,"y":31031.918778615294},"targetPosition":{"x":28259.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading System","name":"WHB v2","id":"975c2fc3-a8f5-43e9-900f-4a4f2430d128"}}},"tradingEngineReference":{"type":"Trading Engine Reference","name":"Low-Frequency","project":"Superalgos","id":"0c3253e9-355e-47f1-85ae-881bd64ed0d5","savedPayload":{"position":{"x":28471.48902762805,"y":31244.050812971258},"targetPosition":{"x":28259.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading Engine","name":"Low-Frequency","id":"eb20f622-71bf-4479-a574-d2320e1d4bd1"}}},"id":"1ff8cd88-dcd9-4528-b406-05647ddd8c9c","savedPayload":{"position":{"x":28259.356993272086,"y":31031.918778615294},"targetPosition":{"x":27959.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cf364276-eeae-4d16-b90c-3da9aecacfa0","savedPayload":{"position":{"x":27959.356993272086,"y":31031.918778615294},"targetPosition":{"x":27659.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Trading","id":"a8c8d761-96e5-4a86-9285-6c3881d61442"}}}],"id":"f55d9c28-8196-4b23-a840-769fbec83000","savedPayload":{"position":{"x":27659.356993272086,"y":31031.918778615294},"targetPosition":{"x":27359.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f3dccd9e-6130-40aa-b794-fca344df4a99","savedPayload":{"position":{"x":27359.356993272086,"y":31031.918778615294},"targetPosition":{"x":27059.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c1604baa-e824-4b58-b252-922a9fc879cf","savedPayload":{"position":{"x":27059.356993272086,"y":31031.918778615294},"targetPosition":{"x":26759.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2ef6bd4b-57a2-46d9-be37-5c16e315f4a3","savedPayload":{"position":{"x":26759.356993272086,"y":31031.918778615294},"targetPosition":{"x":26459.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"85153016-33c7-484d-9f10-2fc313f19051","savedPayload":{"position":{"x":26459.356993272086,"y":31031.918778615294},"targetPosition":{"x":26159.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"ba36975c-08d6-458d-b7c0-eb4684a85b5d","savedPayload":{"position":{"x":26159.356993272086,"y":31031.918778615294},"targetPosition":{"x":25859.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"0238badb-17b4-467a-ba99-ebb9659aea1e","savedPayload":{"position":{"x":25859.356993272086,"y":31031.918778615294},"targetPosition":{"x":25559.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"d7975b33-3654-4e37-8255-90dbf51c3789"}}}],"id":"5882d8a8-345b-4188-b1c1-797e9ff805d9","savedPayload":{"position":{"x":25559.356993272086,"y":31031.918778615294},"targetPosition":{"x":25259.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"productionTradingTasks":{"type":"Production Trading Tasks","name":"New Production Trading Tasks","project":"Superalgos","projectTradingTasks":[{"type":"Project Trading Tasks","name":"Superalgos","project":"Superalgos","exchangeTradingTasks":[{"type":"Exchange Trading Tasks","name":"Binance","project":"Superalgos","marketTradingTasks":[{"type":"Market Trading Tasks","name":"Binance BTC/USDT","project":"Superalgos","tradingMineTasks":[{"type":"Trading Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"WHB v2","project":"Superalgos","bot":{"type":"Trading Bot Instance","name":"Low Frequency","config":"{}","project":"Superalgos","processes":[{"type":"Trading Process Instance","name":"Low Frequency Trading","project":"Superalgos","session":{"type":"Live Trading Session","name":"WHB v2","config":"{\"folderName\":\"WHB-v2\"}","project":"Superalgos","tradingParameters":{"type":"Trading Parameters","name":"New Parameters","project":"Superalgos","sessionBaseAsset":{"type":"Session Base Asset","name":"","config":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0\n}","project":"Superalgos","id":"785c152d-03f4-4c42-8107-2a4481dc1c77","savedPayload":{"position":{"x":27212.526451663314,"y":33456.03953311575},"targetPosition":{"x":27049.134741158807,"y":33707.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sessionQuotedAsset":{"type":"Session Quoted Asset","name":"","config":"{\n\"initialBalance\": 0\n}","project":"Superalgos","id":"b9daac05-6265-40e9-b5e7-eeabbf7f2144","savedPayload":{"position":{"x":27282.278529595897,"y":33518.84458618442},"targetPosition":{"x":27049.134741158807,"y":33707.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","config":"{ \n\"initialDatetime\": \"2020-01-01\",\n\"finalDatetime\": \"2020-07-01\" \n}","project":"Superalgos","id":"b5971ea3-aa3b-4691-8bf1-5c5f6ba3950c","savedPayload":{"position":{"x":27329.208869107966,"y":33600.13031863578},"targetPosition":{"x":27049.134741158807,"y":33707.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","config":"{ \n\"label\": \"01-hs\"\n}","project":"Superalgos","id":"00a93153-88b7-4c62-82e3-ca96e9e56025","savedPayload":{"position":{"x":27348.723601585178,"y":33691.93991662649},"targetPosition":{"x":27049.134741158807,"y":33707.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","config":"{ \n\"marketOrderRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","project":"Superalgos","id":"0047f446-0cfc-42f5-8a57-a7599f97ea1a","savedPayload":{"position":{"x":27338.912489045528,"y":33785.28641703013},"targetPosition":{"x":27049.134741158807,"y":33707.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","config":"{ \n\"maker\": 0.1,\n\"taker\": 0.1\n}","project":"Superalgos","id":"f137906d-664b-4a00-8814-00dabcc8b386","savedPayload":{"position":{"x":27300.735911542433,"y":33871.03241400389},"targetPosition":{"x":27049.134741158807,"y":33707.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"snapshots":{"type":"Snapshots","name":"New Snapshots","config":"{ \n\"strategy\": true,\n\"position\": true\n}","project":"Superalgos","id":"5173568a-1f7f-461e-aa3b-006193997bac","savedPayload":{"position":{"x":27237.93085847376,"y":33940.784491936465},"targetPosition":{"x":27049.134741158807,"y":33707.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"heartbeats":{"type":"Heartbeats","name":"New Heartbeats","config":"{ \n\"date\": true,\n\"candleIndex\": false\n}","project":"Superalgos","id":"85f19b17-a752-4f20-a740-14883258f9bc","savedPayload":{"position":{"x":27156.6451260224,"y":33987.71483144854},"targetPosition":{"x":27049.134741158807,"y":33707.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedParameters":{"type":"User Defined Parameters","name":"New User Defined Parameters","config":"{ \n\"param1Name\": \"A text string value example\",\n\"param2Name\": 0\n}","project":"Superalgos","id":"3c15c609-1a9c-4712-a7eb-1aad80fcd20b","savedPayload":{"position":{"x":27064.83552803169,"y":34007.22956392575},"targetPosition":{"x":27049.134741158807,"y":33707.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8bf92d7-9037-4ddd-9a93-0963005465c4","savedPayload":{"position":{"x":27049.134741158807,"y":33707.640703499375},"targetPosition":{"x":26759.356993272086,"y":33629.99498996862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingSystemReference":{"type":"Trading System Reference","name":"WHB v2","project":"Superalgos","id":"52a08de1-1413-4a74-ab6b-5e50dd862b33","savedPayload":{"position":{"x":26909.356993272086,"y":33889.80261110395},"targetPosition":{"x":26759.356993272086,"y":33629.99498996862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading System","name":"WHB v2","id":"975c2fc3-a8f5-43e9-900f-4a4f2430d128"}}},"tradingEngineReference":{"type":"Trading Engine Reference","name":"Low-Frequency","project":"Superalgos","id":"25ecae9f-e4e3-4c35-9a75-ff9e7b5f5b5b","savedPayload":{"position":{"x":26681.71127974133,"y":33919.77273785534},"targetPosition":{"x":26759.356993272086,"y":33629.99498996862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading Engine","name":"Low-Frequency","id":"eb20f622-71bf-4479-a574-d2320e1d4bd1"}}},"id":"934095e8-4a1c-4baf-828f-7818f73c4219","savedPayload":{"position":{"x":26759.356993272086,"y":33629.99498996862},"targetPosition":{"x":26609.356993272086,"y":33370.187368833285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5ce11ebc-6b00-40a7-b78b-650650dc561c","savedPayload":{"position":{"x":26609.356993272086,"y":33370.187368833285},"targetPosition":{"x":26459.356993272086,"y":33110.37974769795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Trading","id":"a8c8d761-96e5-4a86-9285-6c3881d61442"}}}],"id":"b648768f-57f7-49c9-89a6-c5c6f9d88fc2","savedPayload":{"position":{"x":26459.356993272086,"y":33110.37974769795},"targetPosition":{"x":26309.356993272086,"y":32850.57212656262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"edfaadd0-892d-49b6-8353-c4864f4446d2","savedPayload":{"position":{"x":26309.356993272086,"y":32850.57212656262},"targetPosition":{"x":26159.356993272086,"y":32590.76450542729},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"18684d79-f3d4-4164-9926-aefa1fb42218","savedPayload":{"position":{"x":26159.356993272086,"y":32590.76450542729},"targetPosition":{"x":26009.356993272086,"y":32330.956884291958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a2e9d816-e6c9-4783-b6dd-42997c660372","savedPayload":{"position":{"x":26009.356993272086,"y":32330.956884291958},"targetPosition":{"x":25859.356993272086,"y":32071.149263156625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"eaa22575-ca9c-4851-bc7f-3bf05161e58a","savedPayload":{"position":{"x":25859.356993272086,"y":32071.149263156625},"targetPosition":{"x":25709.356993272086,"y":31811.341642021293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"d539c0ac-aaeb-4c44-9dba-ac26df819a8d","savedPayload":{"position":{"x":25709.356993272086,"y":31811.341642021293},"targetPosition":{"x":25559.356993272086,"y":31551.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"c2c8af36-7934-4fcb-9bfd-070d8f88a9e2","savedPayload":{"position":{"x":25559.356993272086,"y":31551.53402088596},"targetPosition":{"x":25409.356993272086,"y":31291.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"d7975b33-3654-4e37-8255-90dbf51c3789"}}}],"id":"65a40d20-837c-4652-8356-f8054b4e1346","savedPayload":{"position":{"x":25409.356993272086,"y":31291.726399750627},"targetPosition":{"x":25259.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"u"}}},"dataStorage":{"type":"Data Storage","name":"New Data Storage","project":"Superalgos","dataMinesData":{"type":"Data Mines Data","name":"New Data Mines Data","project":"Superalgos","projectDataProducts":[{"type":"Project Data Products","name":"Superalgos","project":"Superalgos","exchangeDataProducts":[{"type":"Exchange Data Products","name":"Binance","project":"Superalgos","marketDataProducts":[{"type":"Market Data Products","name":"Binance BTC/USDT","project":"Superalgos","dataProducts":[],"dataMineProducts":[{"type":"Data Mine Products","name":"Sparta","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"EMA","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Popular EMAs","project":"Superalgos","id":"8b3b410e-0728-457a-a2ac-640f8839592c","savedPayload":{"position":{"x":25167.107482388743,"y":32073.261177035343},"targetPosition":{"x":25238.107482388743,"y":32103.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base5 EMAs","project":"Superalgos","id":"c0043adc-1516-45f9-8044-71dac10926b4","savedPayload":{"position":{"x":25233.107482388743,"y":32087.261177035343},"targetPosition":{"x":25238.107482388743,"y":32103.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base5 EMAs","id":"9a37881e-7d9a-4279-95b2-8743de82eec5"}}},{"type":"Data Product","name":"Base6 EMAs","project":"Superalgos","id":"6ad6f193-f293-474a-892d-452ee224e923","savedPayload":{"position":{"x":25264.107482388743,"y":32033.261177035343},"targetPosition":{"x":25238.107482388743,"y":32103.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base6 EMAs","id":"e4267570-575b-4e59-9667-cb78aaae052c"}}},{"type":"Data Product","name":"Base7 EMAs","project":"Superalgos","id":"45eea564-7729-421c-b871-acda5a5ae81e","savedPayload":{"position":{"x":25227.107482388743,"y":32037.261177035343},"targetPosition":{"x":25238.107482388743,"y":32103.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","project":"Superalgos","id":"fe10ecb5-0593-4c6b-9fd0-1729976ce713","savedPayload":{"position":{"x":25331.107482388743,"y":32167.261177035343},"targetPosition":{"x":25238.107482388743,"y":32103.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"Base12 EMAs","project":"Superalgos","id":"3457daa7-4c0c-4c71-abe8-176e9fb806ae","savedPayload":{"position":{"x":25226.107482388743,"y":32018.261177035343},"targetPosition":{"x":25238.107482388743,"y":32103.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base12 EMAs","id":"43d6f23d-d206-47e9-95d4-6bef34377014"}}},{"type":"Data Product","name":"Base30 EMAs","project":"Superalgos","id":"4bca4b0e-6942-4322-90a3-3a976614d591","savedPayload":{"position":{"x":25150.107482388743,"y":32055.261177035343},"targetPosition":{"x":25238.107482388743,"y":32103.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base30 EMAs","id":"4394346c-7c25-478f-9be7-04f071dc673c"}}}],"dataProductFolders":[],"id":"39b86066-ae70-4cde-9fd6-b463addf0e77","savedPayload":{"position":{"x":25182.335622027087,"y":33035.78795290597},"targetPosition":{"x":25067.53059231756,"y":32758.624093152583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cc85c8b7-657d-4589-8373-ac3ff5cf3c6a","savedPayload":{"position":{"x":25067.53059231756,"y":32758.624093152583},"targetPosition":{"x":24952.72556260803,"y":32481.460233399197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Sparta","id":"9cfffc48-486a-48cb-b641-98c82e314d3a"}}},{"type":"Data Mine Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Exchange Raw Data","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trades","project":"Superalgos","id":"b5217c9e-0fc7-4714-839a-6639437f21ad","savedPayload":{"position":{"x":25318.107482388743,"y":32489.261177035343},"targetPosition":{"x":25383.107482388743,"y":32422.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"38dbb942-a15b-450b-a867-02a94030965f"}}},{"type":"Data Product","name":"Candles","project":"Superalgos","id":"18490446-c8fe-4061-8a9e-c4f2b8c67677","savedPayload":{"position":{"x":25405.107482388743,"y":32460.261177035343},"targetPosition":{"x":25383.107482388743,"y":32422.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles","id":"2443883b-6959-42a3-ae3b-ef3102ffcdcc"}}},{"type":"Data Product","name":"Volumes","project":"Superalgos","id":"475838db-033e-4bf5-9c06-5a649d8b6e4d","savedPayload":{"position":{"x":25310.107482388743,"y":32443.261177035343},"targetPosition":{"x":25383.107482388743,"y":32422.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"3a43c6f3-bac0-404e-865f-822eb48c8660"}}}],"dataProductFolders":[],"id":"f6344699-6b56-4863-97ba-b3ab72e9cdd8","savedPayload":{"position":{"x":24855.30173731659,"y":33007.11215594703},"targetPosition":{"x":24770.097133905412,"y":32719.46623548657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Products","name":"Candles Volumes","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Candles","project":"Superalgos","id":"70d84756-8e7a-4dfc-8aae-abf8affc802f","savedPayload":{"position":{"x":25355.107482388743,"y":32462.261177035343},"targetPosition":{"x":25332.107482388743,"y":32368.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","project":"Superalgos","id":"5a47df0f-0524-401a-b5f4-f292eda68238","savedPayload":{"position":{"x":25424.107482388743,"y":32339.261177035343},"targetPosition":{"x":25332.107482388743,"y":32368.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}}],"dataProductFolders":[],"id":"ce53c027-2bdd-48b6-a42c-43bd762d723d","savedPayload":{"position":{"x":24669.95507613528,"y":33002.25868281422},"targetPosition":{"x":24770.097133905412,"y":32719.46623548657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Products","name":"Bollinger Bands","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Bollinger Bands","project":"Superalgos","id":"d50dcdf4-6251-4c59-9a04-d5dedadd86f7","savedPayload":{"position":{"x":25219.107482388743,"y":32404.261177035343},"targetPosition":{"x":25265.107482388743,"y":32318.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","project":"Superalgos","id":"1e029c1d-85c8-4d3d-90d8-388bf135d110","savedPayload":{"position":{"x":25223.107482388743,"y":32332.261177035343},"targetPosition":{"x":25265.107482388743,"y":32318.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}}],"dataProductFolders":[],"id":"41f6cc17-d2ef-4a8e-a30b-c0dbcf515d25","savedPayload":{"position":{"x":24522.859277318807,"y":32889.388106564016},"targetPosition":{"x":24770.097133905412,"y":32719.46623548657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Products","name":"Bollinger Channels","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Bollinger Channels Objects","project":"Superalgos","id":"aba646d5-9b32-48d6-abc3-e9fa8405b279","savedPayload":{"position":{"x":25310.107482388743,"y":32485.261177035343},"targetPosition":{"x":25232.107482388743,"y":32396.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Channels","project":"Superalgos","id":"241723cd-ae4d-4990-88f8-29bfad2e14ed","savedPayload":{"position":{"x":25236.107482388743,"y":32474.261177035343},"targetPosition":{"x":25232.107482388743,"y":32396.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","project":"Superalgos","id":"e171424f-d37d-46d5-aada-1d66ccb0961f","savedPayload":{"position":{"x":25243.107482388743,"y":32328.261177035343},"targetPosition":{"x":25232.107482388743,"y":32396.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","project":"Superalgos","id":"f8686b62-8ca9-4b30-9c27-9844c109d987","savedPayload":{"position":{"x":25232.107482388743,"y":32338.261177035343},"targetPosition":{"x":25232.107482388743,"y":32396.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}}],"dataProductFolders":[],"id":"8c843479-10c3-4ac3-8566-42574738e89c","savedPayload":{"position":{"x":24470.199936412744,"y":32711.613150994206},"targetPosition":{"x":24770.097133905412,"y":32719.46623548657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f527bdd3-f5bc-4248-a35f-ac7e591c3aec","savedPayload":{"position":{"x":24770.097133905412,"y":32719.46623548657},"targetPosition":{"x":24952.72556260803,"y":32481.460233399197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}}],"id":"449f1f87-399d-4ec2-9af2-beb92609dc27","savedPayload":{"position":{"x":24952.72556260803,"y":32481.460233399197},"targetPosition":{"x":24991.883420274044,"y":32184.026774987055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"9bc0aea4-0596-449c-91bd-4fb4cb672aa8","savedPayload":{"position":{"x":24991.883420274044,"y":32184.026774987055},"targetPosition":{"x":25031.041277940058,"y":31886.593316574912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"e3989fd2-c544-4ff7-966f-526c5be476d5","savedPayload":{"position":{"x":25031.041277940058,"y":31886.593316574912},"targetPosition":{"x":25070.19913560607,"y":31589.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"d7975b33-3654-4e37-8255-90dbf51c3789"}}}],"id":"32e7c122-fa5a-4d00-9d71-d54e890e32de","savedPayload":{"position":{"x":25070.19913560607,"y":31589.15985816277},"targetPosition":{"x":25109.356993272086,"y":31291.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingMinesData":{"type":"Trading Mines Data","name":"New Trading Mines Data","project":"Superalgos","projectTradingProducts":[{"type":"Project Trading Products","name":"Superalgos","project":"Superalgos","exchangeTradingProducts":[{"type":"Exchange Trading Products","name":"Binance","project":"Superalgos","marketTradingProducts":[{"type":"Market Trading Products","name":"Binance BTC/USDT","project":"Superalgos","tradingSessionReferences":[{"type":"Trading Session Reference","name":"WHB v2 Backtesting Session","project":"Superalgos","dataProducts":[],"tradingMineProducts":[{"type":"Trading Mine Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Low Frequency","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Trading Engine","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Episode","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episode Counters","project":"Superalgos","id":"dd0c8cb9-af86-43fc-a22e-2b1b408787d9","savedPayload":{"position":{"x":24545.764999673167,"y":31889.791233913154},"targetPosition":{"x":24456.764999673167,"y":31890.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Counters","id":"d81c6019-864e-42f5-94ba-2f249b865f85"}}},{"type":"Data Product","name":"Episode Statistics","project":"Superalgos","id":"5c98f3e9-72a7-4742-9315-50d6e4aaa452","savedPayload":{"position":{"x":24412.764999673167,"y":31904.791233913154},"targetPosition":{"x":24456.764999673167,"y":31890.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Statistics","id":"400c7f49-37da-41fb-b83d-879960aa74ff"}}},{"type":"Data Product","name":"Episode Candle","project":"Superalgos","id":"b626d6f0-f929-457e-910b-dfb83c666deb","savedPayload":{"position":{"x":24505.764999673167,"y":31790.791233913154},"targetPosition":{"x":24456.764999673167,"y":31890.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Candle","id":"b9a58113-cf27-4d57-9810-87a2cc158804"}}},{"type":"Data Product","name":"Episode Balances","project":"Superalgos","id":"3d2dee0f-a7df-463f-befe-5f6231ab7830","savedPayload":{"position":{"x":24474.764999673167,"y":31886.791233913154},"targetPosition":{"x":24456.764999673167,"y":31890.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Balances","id":"a9a53d82-133b-4417-b639-f9a56d338233"}}},{"type":"Data Product","name":"Distance To Event","project":"Superalgos","id":"5699dc43-eb9a-4e42-aece-e9567924cac2","savedPayload":{"position":{"x":24522.764999673167,"y":31822.791233913154},"targetPosition":{"x":24456.764999673167,"y":31890.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Distance To Event","id":"8ea88d6c-7d7f-4152-b781-ea108df52c63"}}},{"type":"Data Product","name":"Episode Base Asset","project":"Superalgos","id":"7647e8ee-0ab7-41af-b153-099a334a362d","savedPayload":{"position":{"x":24399.764999673167,"y":31952.791233913154},"targetPosition":{"x":24456.764999673167,"y":31890.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Base Asset","id":"234969ff-eab1-4d59-b6fa-79433c9a20e9"}}},{"type":"Data Product","name":"Episode Quoted Asset","project":"Superalgos","id":"00bf7f7c-9002-4923-8010-7125327f9128","savedPayload":{"position":{"x":24544.764999673167,"y":31842.791233913154},"targetPosition":{"x":24456.764999673167,"y":31890.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Quoted Asset","id":"ae525e31-d6a8-47d2-9021-3f2ddb9615b0"}}},{"type":"Data Product","name":"Current Episode","project":"Superalgos","id":"54b85d80-295a-4540-b726-f6f7cd17c6c9","savedPayload":{"position":{"x":24534.764999673167,"y":31943.791233913154},"targetPosition":{"x":24456.764999673167,"y":31890.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Episode","id":"b8da0132-ba28-46ec-aa54-eb9eaac56ce7"}}}],"dataProductFolders":[],"id":"135f87c8-2206-4e9f-b93a-d9c764a69f23","savedPayload":{"position":{"x":24456.764999673167,"y":31890.791233913154},"targetPosition":{"x":24403.764999673167,"y":31951.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Strategy","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Strategy","project":"Superalgos","id":"68fdae81-0371-428f-8495-a0fe100cbba8","savedPayload":{"position":{"x":24399.764999673167,"y":31934.791233913154},"targetPosition":{"x":24308.764999673167,"y":31852.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Strategy","id":"895d8a04-ef45-41a7-909a-ba31013ffb90"}}},{"type":"Data Product","name":"Last Strategy","project":"Superalgos","id":"51693a6b-7d84-4f20-bdee-1211f9bae6f9","savedPayload":{"position":{"x":24275.764999673167,"y":31806.791233913154},"targetPosition":{"x":24308.764999673167,"y":31852.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Strategy","id":"0625f524-2b97-4b4d-8a90-590ffc62ecd3"}}}],"dataProductFolders":[],"id":"ffbfa6f7-5ca0-41c2-85e8-e9a3305ce12f","savedPayload":{"position":{"x":24308.764999673167,"y":31852.791233913154},"targetPosition":{"x":24403.764999673167,"y":31951.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Position","project":"Superalgos","id":"80cb8779-8e2b-4c33-bd43-c696dbc4e5f6","savedPayload":{"position":{"x":24370.764999673167,"y":31918.791233913154},"targetPosition":{"x":24425.764999673167,"y":31989.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Position","id":"832ecada-8da3-4ba6-b6e9-be34dd5f7ce9"}}},{"type":"Data Product","name":"Last Position","project":"Superalgos","id":"cd54c5f3-13f4-4e71-b233-b649d4878ab6","savedPayload":{"position":{"x":24338.764999673167,"y":32025.791233913154},"targetPosition":{"x":24425.764999673167,"y":31989.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Position","id":"477cd6d5-862a-44d0-9313-786a4e63a602"}}}],"dataProductFolders":[],"id":"3004c779-23c1-4f87-aedc-744dd6edb204","savedPayload":{"position":{"x":24425.764999673167,"y":31989.791233913154},"targetPosition":{"x":24403.764999673167,"y":31951.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Open Stage","project":"Superalgos","id":"7466e39e-eced-4ca3-9d56-a0d1548b91c6","savedPayload":{"position":{"x":24434.764999673167,"y":32001.791233913154},"targetPosition":{"x":24467.764999673167,"y":31974.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stage","id":"73c3c041-ba2a-4798-a362-a453409b518a"}}},{"type":"Data Product","name":"Close Stage","project":"Superalgos","id":"bea0a14e-e504-4e9e-a346-439180b6ad31","savedPayload":{"position":{"x":24533.764999673167,"y":31915.791233913154},"targetPosition":{"x":24467.764999673167,"y":31974.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stage","id":"2bb9bb41-1ff5-4f83-aa5b-bfc4c9f06a9a"}}},{"type":"Data Product","name":"Trigger Stage","project":"Superalgos","id":"06ef8c46-5cc3-4890-9a44-8fd57b8e9ca3","savedPayload":{"position":{"x":24492.764999673167,"y":31874.791233913154},"targetPosition":{"x":24467.764999673167,"y":31974.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stage","id":"b6cff826-9056-4fbd-8eca-cbd6cceec962"}}},{"type":"Data Product","name":"Manage Stage","project":"Superalgos","id":"9df7d784-5665-4fa1-9d85-ee74845267aa","savedPayload":{"position":{"x":24452.764999673167,"y":32013.791233913154},"targetPosition":{"x":24467.764999673167,"y":31974.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stage","id":"bd691611-e7a6-49a8-b07d-c15360b55e40"}}}],"dataProductFolders":[],"id":"4767afd5-931b-4604-a5c6-d1f7c306096e","savedPayload":{"position":{"x":24467.764999673167,"y":31974.791233913154},"targetPosition":{"x":24403.764999673167,"y":31951.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"4bc0034d-935a-4193-89cf-b18c65b0905a","savedPayload":{"position":{"x":24416.764999673167,"y":32103.791233913154},"targetPosition":{"x":24357.764999673167,"y":32037.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"7c769317-2639-4460-8b88-9dc92f7b0585"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"ffada7e3-6897-4d94-b119-eef67c178678","savedPayload":{"position":{"x":24370.764999673167,"y":32015.791233913154},"targetPosition":{"x":24357.764999673167,"y":32037.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"9cc7645a-54fe-40d6-9896-9278167011fb"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"e195d10c-7b9f-4428-910e-11be05f66345","savedPayload":{"position":{"x":24432.764999673167,"y":31969.791233913154},"targetPosition":{"x":24357.764999673167,"y":32037.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"4c827ee0-a29b-4b65-8438-03e2ea98b410"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"c396625e-9a71-4edd-a954-ea2c884538f5","savedPayload":{"position":{"x":24376.764999673167,"y":31956.791233913154},"targetPosition":{"x":24357.764999673167,"y":32037.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2c753cd8-36d8-466c-bd80-1ebfa8e314dc"}}},{"type":"Data Product","name":"Last Market Order","project":"Superalgos","id":"d15cc7d7-3e92-4f92-9bbe-e0a3ba499740","savedPayload":{"position":{"x":24393.764999673167,"y":31955.791233913154},"targetPosition":{"x":24357.764999673167,"y":32037.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Market Order","id":"6df1ac87-92d5-4788-b0bc-f3543b283ef0"}}},{"type":"Data Product","name":"Last Limit Order","project":"Superalgos","id":"507be75d-cd3c-4767-b159-328469e5c6e8","savedPayload":{"position":{"x":24338.764999673167,"y":31994.791233913154},"targetPosition":{"x":24357.764999673167,"y":32037.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Limit Order","id":"c24ec6a1-e937-4d20-93eb-4faf2a0becc3"}}}],"dataProductFolders":[],"id":"7ca1fb0a-67c1-41c3-945e-7b343d938c37","savedPayload":{"position":{"x":24357.764999673167,"y":32037.791233913154},"targetPosition":{"x":24403.764999673167,"y":31951.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b702fdec-9278-4b8a-9a5e-2a3fe6bc8d5b","savedPayload":{"position":{"x":24403.764999673167,"y":31951.791233913154},"targetPosition":{"x":24494.764999673167,"y":31938.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Trading System","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trading System Errors","project":"Superalgos","id":"8cb33c4c-4561-4e2e-a145-19bb87fa9b61","savedPayload":{"position":{"x":24402.764999673167,"y":31928.791233913154},"targetPosition":{"x":24431.764999673167,"y":31858.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Errors","id":"1d9c570d-77c7-40ac-a61e-c5a57a411de8"}}},{"type":"Data Product","name":"Trading System Highlights","project":"Superalgos","id":"3521e920-c9b3-493b-9690-58101c475dad","savedPayload":{"position":{"x":24453.764999673167,"y":31924.791233913154},"targetPosition":{"x":24431.764999673167,"y":31858.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Highlights","id":"319f660a-78be-4cf4-8052-877837cad806"}}},{"type":"Data Product","name":"Trading System Values","project":"Superalgos","id":"084d12bb-30ec-4a0f-a356-a58817d4e266","savedPayload":{"position":{"x":24376.764999673167,"y":31825.791233913154},"targetPosition":{"x":24431.764999673167,"y":31858.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Values","id":"c90c009b-588d-45d4-aff1-05e375181dfa"}}},{"type":"Data Product","name":"Trading System Status","project":"Superalgos","id":"12e328ff-6658-4ca1-be6d-a93c8fc5c42e","savedPayload":{"position":{"x":24424.764999673167,"y":31900.791233913154},"targetPosition":{"x":24431.764999673167,"y":31858.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Status","id":"eed48c80-35c5-49fa-b12d-18e7280ffb8f"}}},{"type":"Data Product","name":"Trading System Progress","project":"Superalgos","id":"d35b7442-5911-4456-bc9e-c451e21d4a30","savedPayload":{"position":{"x":24460.764999673167,"y":31841.791233913154},"targetPosition":{"x":24431.764999673167,"y":31858.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Progress","id":"04c8606b-5e59-4e7d-b3ac-387bfffcd300"}}},{"type":"Data Product","name":"Trading System Running","project":"Superalgos","id":"65c269c0-2793-483c-ad8e-5c107a56b951","savedPayload":{"position":{"x":24426.764999673167,"y":31765.791233913154},"targetPosition":{"x":24431.764999673167,"y":31858.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Running","id":"17236f59-6ef2-4cc3-913c-1ff6db052236"}}},{"type":"Data Product","name":"Trading System Announcements","project":"Superalgos","id":"56631448-2669-47f1-bbc9-7dda628f433e","savedPayload":{"position":{"x":24511.764999673167,"y":31829.791233913154},"targetPosition":{"x":24431.764999673167,"y":31858.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Announcements","id":"4a6f828a-9671-431e-8257-fc920943581e"}}},{"type":"Data Product","name":"Trading System Warnings","project":"Superalgos","id":"c7c4ece9-6d52-4e9a-800e-11c22955c178","savedPayload":{"position":{"x":24381.764999673167,"y":31838.791233913154},"targetPosition":{"x":24431.764999673167,"y":31858.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Warnings","id":"34310596-466a-4e9a-a5a2-256b0fe3e339"}}},{"type":"Data Product","name":"Trading System Infos","project":"Superalgos","id":"f937c3f3-305c-4abc-aa12-0f2015e8f5fa","savedPayload":{"position":{"x":24401.764999673167,"y":31841.791233913154},"targetPosition":{"x":24431.764999673167,"y":31858.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Infos","id":"020ad519-0fc6-4f2f-9f26-b2c7de118fb8"}}}],"dataProductFolders":[],"id":"922f6ae2-8a20-492c-9c18-811e6a871c6f","savedPayload":{"position":{"x":24431.764999673167,"y":31858.791233913154},"targetPosition":{"x":24494.764999673167,"y":31938.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Simulation Objects","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episodes","project":"Superalgos","id":"b4881fc1-e88b-4be3-805d-ab98c4ccbb0b","savedPayload":{"position":{"x":24585.764999673167,"y":32073.791233913154},"targetPosition":{"x":24486.764999673167,"y":31983.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episodes","id":"aeec080e-8caf-4976-8187-ba4e725b73b0"}}},{"type":"Data Product","name":"Strategies","project":"Superalgos","id":"7201adfb-d461-46b7-af3a-a45fabe24835","savedPayload":{"position":{"x":24502.764999673167,"y":31922.791233913154},"targetPosition":{"x":24486.764999673167,"y":31983.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"21db6fce-8450-4b07-9015-d81a339fd030"}}}],"dataProductFolders":[{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"c92a34c6-c74b-48ad-a57d-9fb78e3e642c","savedPayload":{"position":{"x":24484.764999673167,"y":32029.791233913154},"targetPosition":{"x":24397.764999673167,"y":32053.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"db256083-9aa2-48e1-8fd6-3425a5085302"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"442e4f1d-e420-43cf-94c8-08282408f555","savedPayload":{"position":{"x":24439.764999673167,"y":32058.791233913154},"targetPosition":{"x":24397.764999673167,"y":32053.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"1958f79b-5c6c-4874-9154-98c314822ed7"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"5beb71e3-23fd-4e79-b7fd-46da219b1112","savedPayload":{"position":{"x":24488.764999673167,"y":32004.791233913154},"targetPosition":{"x":24397.764999673167,"y":32053.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"5deceb32-c7ab-4560-818a-0f0b9d6632fb"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"1d6f14f5-c7fe-4b42-8a1b-5859e6e5a592","savedPayload":{"position":{"x":24354.764999673167,"y":32024.791233913154},"targetPosition":{"x":24397.764999673167,"y":32053.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2a1d405b-2fbe-4ed4-a76a-d2c7be59d20e"}}}],"dataProductFolders":[],"id":"10897f51-b5dd-4f76-8ab3-ac77df8a6976","savedPayload":{"position":{"x":24397.764999673167,"y":32053.791233913154},"targetPosition":{"x":24486.764999673167,"y":31983.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trigger Stages","project":"Superalgos","id":"7f256746-a20a-4856-af57-18f91e02fdaf","savedPayload":{"position":{"x":24531.764999673167,"y":31964.791233913154},"targetPosition":{"x":24539.764999673167,"y":31960.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stages","id":"18cc2e79-7e57-418c-b635-6c68fc11d681"}}},{"type":"Data Product","name":"Open Stages","project":"Superalgos","id":"c9b06e1b-2816-4770-b4d2-951b354fa688","savedPayload":{"position":{"x":24585.764999673167,"y":31937.791233913154},"targetPosition":{"x":24539.764999673167,"y":31960.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stages","id":"d5938c00-0849-466d-ae14-4ea91b571678"}}},{"type":"Data Product","name":"Manage Stages","project":"Superalgos","id":"59770c0b-e50d-46d3-b62f-7ea080fcbeb2","savedPayload":{"position":{"x":24589.764999673167,"y":31981.791233913154},"targetPosition":{"x":24539.764999673167,"y":31960.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stages","id":"8fab86b3-db8d-4113-8418-1d256bd98cf2"}}},{"type":"Data Product","name":"Close Stages","project":"Superalgos","id":"56915d54-1528-46bf-ad3f-361ca441abc0","savedPayload":{"position":{"x":24533.764999673167,"y":31994.791233913154},"targetPosition":{"x":24539.764999673167,"y":31960.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stages","id":"ba911e61-f951-48cd-b547-9a70aa211100"}}}],"dataProductFolders":[],"id":"768c6ff6-a03d-43d0-9a13-f7037e9352f3","savedPayload":{"position":{"x":24539.764999673167,"y":31960.791233913154},"targetPosition":{"x":24486.764999673167,"y":31983.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Positions","project":"Superalgos","id":"112221cf-8147-484f-a9aa-d86c2402d1b4","savedPayload":{"position":{"x":24610.764999673167,"y":31941.791233913154},"targetPosition":{"x":24537.764999673167,"y":31987.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Positions","id":"1eabba24-cbd4-4cbf-95e0-c5135349d41d"}}},{"type":"Data Product","name":"Position Base Asset","project":"Superalgos","id":"b92609ac-310d-482c-a96f-8e90d4c43d72","savedPayload":{"position":{"x":24567.764999673167,"y":31971.791233913154},"targetPosition":{"x":24537.764999673167,"y":31987.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Base Asset","id":"b371b039-f6c8-4f60-84cb-52f55c96c84d"}}},{"type":"Data Product","name":"Position Quoted Asset","project":"Superalgos","id":"1e037875-a2ee-44c3-8d8e-861f39f9d8a7","savedPayload":{"position":{"x":24623.764999673167,"y":32014.791233913154},"targetPosition":{"x":24537.764999673167,"y":31987.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Quoted Asset","id":"a376f02b-a5d2-4079-b5cd-ab7dc894b909"}}},{"type":"Data Product","name":"Stop Loss","project":"Superalgos","id":"7f2737da-5aef-4dbf-b86c-80132bcb3289","savedPayload":{"position":{"x":24623.764999673167,"y":31912.791233913154},"targetPosition":{"x":24537.764999673167,"y":31987.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Stop Loss","id":"c18bdc82-216a-4b1d-8850-5c3c9dc2000b"}}},{"type":"Data Product","name":"Take Profit","project":"Superalgos","id":"4d5fcd48-f3df-43c9-818e-70057086a961","savedPayload":{"position":{"x":24565.764999673167,"y":31918.791233913154},"targetPosition":{"x":24537.764999673167,"y":31987.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Take Profit","id":"2542c7d0-fa26-4b52-a59a-a3630e52eb89"}}}],"dataProductFolders":[],"id":"053b9219-8b8e-4b7e-a7c0-3132f44b2bc9","savedPayload":{"position":{"x":24537.764999673167,"y":31987.791233913154},"targetPosition":{"x":24486.764999673167,"y":31983.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0fac6eab-3a4a-4e40-aa19-ab019941ba92","savedPayload":{"position":{"x":24486.764999673167,"y":31983.791233913154},"targetPosition":{"x":24494.764999673167,"y":31938.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6f5b7da1-419c-4728-b650-6bcf0abe0381","savedPayload":{"position":{"x":24494.764999673167,"y":31938.791233913154},"targetPosition":{"x":24526.764999673167,"y":31974.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7d983ca2-8566-436b-ab21-445564aba4b3","savedPayload":{"position":{"x":24526.764999673167,"y":31974.791233913154},"targetPosition":{"x":24611.764999673167,"y":32060.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"cfccd77b-3680-4e30-ba08-0bf8c906f739","savedPayload":{"position":{"x":24611.764999673167,"y":32060.791233913154},"targetPosition":{"x":24541.764999673167,"y":32023.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"WHB v2","id":"1ff8cd88-dcd9-4528-b406-05647ddd8c9c"}}},{"type":"Trading Session Reference","name":"WHB v2 Live Trading Session","project":"Superalgos","dataProducts":[],"tradingMineProducts":[{"type":"Trading Mine Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Low Frequency","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Trading Engine","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Episode","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episode Counters","project":"Superalgos","id":"4d1ea2bf-5a1d-4b37-9719-007e28b81184","savedPayload":{"position":{"x":24409.764999673167,"y":31976.791233913154},"targetPosition":{"x":24432.764999673167,"y":32016.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Counters","id":"d81c6019-864e-42f5-94ba-2f249b865f85"}}},{"type":"Data Product","name":"Episode Statistics","project":"Superalgos","id":"2c4ef698-66da-4079-90ec-9fdf5ce41be7","savedPayload":{"position":{"x":24487.764999673167,"y":32105.791233913154},"targetPosition":{"x":24432.764999673167,"y":32016.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Statistics","id":"400c7f49-37da-41fb-b83d-879960aa74ff"}}},{"type":"Data Product","name":"Episode Candle","project":"Superalgos","id":"5ee16bd3-cb60-4b92-ab67-d56dfbdd8671","savedPayload":{"position":{"x":24343.764999673167,"y":31948.791233913154},"targetPosition":{"x":24432.764999673167,"y":32016.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Candle","id":"b9a58113-cf27-4d57-9810-87a2cc158804"}}},{"type":"Data Product","name":"Episode Balances","project":"Superalgos","id":"660caa52-ba9a-4829-9143-3ca16f2590aa","savedPayload":{"position":{"x":24426.764999673167,"y":32092.791233913154},"targetPosition":{"x":24432.764999673167,"y":32016.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Balances","id":"a9a53d82-133b-4417-b639-f9a56d338233"}}},{"type":"Data Product","name":"Distance To Event","project":"Superalgos","id":"382ccb5c-e0c3-4e34-97b9-599cf5d6792d","savedPayload":{"position":{"x":24506.764999673167,"y":31976.791233913154},"targetPosition":{"x":24432.764999673167,"y":32016.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Distance To Event","id":"8ea88d6c-7d7f-4152-b781-ea108df52c63"}}},{"type":"Data Product","name":"Episode Base Asset","project":"Superalgos","id":"42d86745-d971-4328-a908-91bf6d19a019","savedPayload":{"position":{"x":24442.764999673167,"y":32078.791233913154},"targetPosition":{"x":24432.764999673167,"y":32016.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Base Asset","id":"234969ff-eab1-4d59-b6fa-79433c9a20e9"}}},{"type":"Data Product","name":"Episode Quoted Asset","project":"Superalgos","id":"7dbf878d-588f-422e-acd2-03968abaf5f0","savedPayload":{"position":{"x":24413.764999673167,"y":32015.791233913154},"targetPosition":{"x":24432.764999673167,"y":32016.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Quoted Asset","id":"ae525e31-d6a8-47d2-9021-3f2ddb9615b0"}}},{"type":"Data Product","name":"Current Episode","project":"Superalgos","id":"d678dfa8-544b-456f-b3f0-715579440aa2","savedPayload":{"position":{"x":24344.764999673167,"y":32016.791233913154},"targetPosition":{"x":24432.764999673167,"y":32016.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Episode","id":"b8da0132-ba28-46ec-aa54-eb9eaac56ce7"}}}],"dataProductFolders":[],"id":"bc8ed9e2-3910-497b-b29e-dc88db8ab671","savedPayload":{"position":{"x":24432.764999673167,"y":32016.791233913154},"targetPosition":{"x":24463.764999673167,"y":31921.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Strategy","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Strategy","project":"Superalgos","id":"07b721a0-55e0-4e7a-b0e2-a91e8c76de4f","savedPayload":{"position":{"x":24501.764999673167,"y":32012.791233913154},"targetPosition":{"x":24470.764999673167,"y":31977.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Strategy","id":"895d8a04-ef45-41a7-909a-ba31013ffb90"}}},{"type":"Data Product","name":"Last Strategy","project":"Superalgos","id":"15f34c1a-b30d-4dd1-96e0-8a2646de3635","savedPayload":{"position":{"x":24372.764999673167,"y":31969.791233913154},"targetPosition":{"x":24470.764999673167,"y":31977.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Strategy","id":"0625f524-2b97-4b4d-8a90-590ffc62ecd3"}}}],"dataProductFolders":[],"id":"3c5ab12d-c6cf-4b36-baec-a83284745381","savedPayload":{"position":{"x":24470.764999673167,"y":31977.791233913154},"targetPosition":{"x":24463.764999673167,"y":31921.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Position","project":"Superalgos","id":"ab53428d-89a3-4b1f-84b1-d5bd1d957f02","savedPayload":{"position":{"x":24535.764999673167,"y":31861.791233913154},"targetPosition":{"x":24478.764999673167,"y":31938.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Position","id":"832ecada-8da3-4ba6-b6e9-be34dd5f7ce9"}}},{"type":"Data Product","name":"Last Position","project":"Superalgos","id":"5909ca07-e00c-4669-9cd3-17eb83796f31","savedPayload":{"position":{"x":24504.764999673167,"y":31859.791233913154},"targetPosition":{"x":24478.764999673167,"y":31938.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Position","id":"477cd6d5-862a-44d0-9313-786a4e63a602"}}}],"dataProductFolders":[],"id":"73850961-f70a-4995-a51e-6f35382f1294","savedPayload":{"position":{"x":24478.764999673167,"y":31938.791233913154},"targetPosition":{"x":24463.764999673167,"y":31921.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Open Stage","project":"Superalgos","id":"68803338-3e70-443f-90fd-8b36f5378f31","savedPayload":{"position":{"x":24476.764999673167,"y":31940.791233913154},"targetPosition":{"x":24509.764999673167,"y":31910.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stage","id":"73c3c041-ba2a-4798-a362-a453409b518a"}}},{"type":"Data Product","name":"Close Stage","project":"Superalgos","id":"2d2dd9df-d00a-4d69-9b29-66e19d0238fe","savedPayload":{"position":{"x":24533.764999673167,"y":32005.791233913154},"targetPosition":{"x":24509.764999673167,"y":31910.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stage","id":"2bb9bb41-1ff5-4f83-aa5b-bfc4c9f06a9a"}}},{"type":"Data Product","name":"Trigger Stage","project":"Superalgos","id":"7a71d0ce-5592-4b70-b30c-9676b67feb47","savedPayload":{"position":{"x":24425.764999673167,"y":31989.791233913154},"targetPosition":{"x":24509.764999673167,"y":31910.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stage","id":"b6cff826-9056-4fbd-8eca-cbd6cceec962"}}},{"type":"Data Product","name":"Manage Stage","project":"Superalgos","id":"5b233b81-aa5f-4222-9772-5c8810cb683a","savedPayload":{"position":{"x":24590.764999673167,"y":31958.791233913154},"targetPosition":{"x":24509.764999673167,"y":31910.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stage","id":"bd691611-e7a6-49a8-b07d-c15360b55e40"}}}],"dataProductFolders":[],"id":"f7fff058-7a27-462e-8c28-56c7df8d17db","savedPayload":{"position":{"x":24509.764999673167,"y":31910.791233913154},"targetPosition":{"x":24463.764999673167,"y":31921.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"0487769a-1b78-45ce-8750-6cb55c0785f4","savedPayload":{"position":{"x":24556.764999673167,"y":32014.791233913154},"targetPosition":{"x":24561.764999673167,"y":32004.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"7c769317-2639-4460-8b88-9dc92f7b0585"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"6e666549-9e9f-42d3-b543-fc0ce961cc64","savedPayload":{"position":{"x":24630.764999673167,"y":32083.791233913154},"targetPosition":{"x":24561.764999673167,"y":32004.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"9cc7645a-54fe-40d6-9896-9278167011fb"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"a596b5e6-666d-4da0-bd2f-2b65292b8d87","savedPayload":{"position":{"x":24562.764999673167,"y":31982.791233913154},"targetPosition":{"x":24561.764999673167,"y":32004.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"4c827ee0-a29b-4b65-8438-03e2ea98b410"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"528f2741-eda9-4dd4-b731-8110336c0a34","savedPayload":{"position":{"x":24638.764999673167,"y":32045.791233913154},"targetPosition":{"x":24561.764999673167,"y":32004.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2c753cd8-36d8-466c-bd80-1ebfa8e314dc"}}},{"type":"Data Product","name":"Last Market Order","project":"Superalgos","id":"0d7a0263-dc84-4b4a-a6cc-ad6c3f9824fe","savedPayload":{"position":{"x":24658.764999673167,"y":32070.791233913154},"targetPosition":{"x":24561.764999673167,"y":32004.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Market Order","id":"6df1ac87-92d5-4788-b0bc-f3543b283ef0"}}},{"type":"Data Product","name":"Last Limit Order","project":"Superalgos","id":"51e9b95a-96c1-4cf4-a188-9669c73c7e8e","savedPayload":{"position":{"x":24567.764999673167,"y":32043.791233913154},"targetPosition":{"x":24561.764999673167,"y":32004.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Limit Order","id":"c24ec6a1-e937-4d20-93eb-4faf2a0becc3"}}}],"dataProductFolders":[],"id":"0dbd65bc-9ab3-40f3-b972-4b6c6c304d1d","savedPayload":{"position":{"x":24561.764999673167,"y":32004.791233913154},"targetPosition":{"x":24463.764999673167,"y":31921.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1facfef6-da1b-40a6-ba07-bbec4ef2f246","savedPayload":{"position":{"x":24463.764999673167,"y":31921.791233913154},"targetPosition":{"x":24510.764999673167,"y":31836.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Trading System","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trading System Errors","project":"Superalgos","id":"1c539f66-a512-4cd9-b974-622b95e2cca9","savedPayload":{"position":{"x":24410.764999673167,"y":31818.791233913154},"targetPosition":{"x":24450.764999673167,"y":31819.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Errors","id":"1d9c570d-77c7-40ac-a61e-c5a57a411de8"}}},{"type":"Data Product","name":"Trading System Highlights","project":"Superalgos","id":"409e6575-034e-4d3d-99e5-0495ba229622","savedPayload":{"position":{"x":24472.764999673167,"y":31741.791233913154},"targetPosition":{"x":24450.764999673167,"y":31819.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Highlights","id":"319f660a-78be-4cf4-8052-877837cad806"}}},{"type":"Data Product","name":"Trading System Values","project":"Superalgos","id":"55245047-2d2d-4a04-97f9-d413d82375a9","savedPayload":{"position":{"x":24436.764999673167,"y":31887.791233913154},"targetPosition":{"x":24450.764999673167,"y":31819.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Values","id":"c90c009b-588d-45d4-aff1-05e375181dfa"}}},{"type":"Data Product","name":"Trading System Status","project":"Superalgos","id":"9f9ea8fa-0769-44b9-a4f1-86f2c3a22195","savedPayload":{"position":{"x":24405.764999673167,"y":31906.791233913154},"targetPosition":{"x":24450.764999673167,"y":31819.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Status","id":"eed48c80-35c5-49fa-b12d-18e7280ffb8f"}}},{"type":"Data Product","name":"Trading System Progress","project":"Superalgos","id":"d2e7ed86-a88f-484b-ab5f-d6212cb7045f","savedPayload":{"position":{"x":24470.764999673167,"y":31768.791233913154},"targetPosition":{"x":24450.764999673167,"y":31819.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Progress","id":"04c8606b-5e59-4e7d-b3ac-387bfffcd300"}}},{"type":"Data Product","name":"Trading System Running","project":"Superalgos","id":"0a0b3b0e-cac0-42a3-8825-637b2b78afad","savedPayload":{"position":{"x":24468.764999673167,"y":31892.791233913154},"targetPosition":{"x":24450.764999673167,"y":31819.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Running","id":"17236f59-6ef2-4cc3-913c-1ff6db052236"}}},{"type":"Data Product","name":"Trading System Announcements","project":"Superalgos","id":"b79dfe54-361e-44f2-87ce-5e012bba3bcd","savedPayload":{"position":{"x":24498.764999673167,"y":31860.791233913154},"targetPosition":{"x":24450.764999673167,"y":31819.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Announcements","id":"4a6f828a-9671-431e-8257-fc920943581e"}}},{"type":"Data Product","name":"Trading System Warnings","project":"Superalgos","id":"29681b5e-16e2-4bc0-816e-537b271c0ea5","savedPayload":{"position":{"x":24480.764999673167,"y":31749.791233913154},"targetPosition":{"x":24450.764999673167,"y":31819.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Warnings","id":"34310596-466a-4e9a-a5a2-256b0fe3e339"}}},{"type":"Data Product","name":"Trading System Infos","project":"Superalgos","id":"3da52870-d76c-4e37-9247-9eecfdbb64ec","savedPayload":{"position":{"x":24549.764999673167,"y":31897.791233913154},"targetPosition":{"x":24450.764999673167,"y":31819.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Infos","id":"020ad519-0fc6-4f2f-9f26-b2c7de118fb8"}}}],"dataProductFolders":[],"id":"62beef62-7bc7-4980-b2f5-050542e09597","savedPayload":{"position":{"x":24450.764999673167,"y":31819.791233913154},"targetPosition":{"x":24510.764999673167,"y":31836.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Simulation Objects","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episodes","project":"Superalgos","id":"802ebea8-becf-45e5-b761-078cad3acd74","savedPayload":{"position":{"x":24514.764999673167,"y":31915.791233913154},"targetPosition":{"x":24591.764999673167,"y":31818.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episodes","id":"aeec080e-8caf-4976-8187-ba4e725b73b0"}}},{"type":"Data Product","name":"Strategies","project":"Superalgos","id":"601cbf34-9a33-4066-9709-b23c6c34b17d","savedPayload":{"position":{"x":24567.764999673167,"y":31753.791233913154},"targetPosition":{"x":24591.764999673167,"y":31818.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"21db6fce-8450-4b07-9015-d81a339fd030"}}}],"dataProductFolders":[{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"e1516339-ebcb-4840-a23d-cebd855911b6","savedPayload":{"position":{"x":24486.764999673167,"y":31834.791233913154},"targetPosition":{"x":24557.764999673167,"y":31783.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"db256083-9aa2-48e1-8fd6-3425a5085302"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"57a0d52c-d2a3-4fd3-907c-66fd51cecdc6","savedPayload":{"position":{"x":24489.764999673167,"y":31812.791233913154},"targetPosition":{"x":24557.764999673167,"y":31783.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"1958f79b-5c6c-4874-9154-98c314822ed7"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"b67b6a65-5bd1-4b58-aa65-a8b840c54d9b","savedPayload":{"position":{"x":24560.764999673167,"y":31806.791233913154},"targetPosition":{"x":24557.764999673167,"y":31783.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"5deceb32-c7ab-4560-818a-0f0b9d6632fb"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"c27b0f50-fdad-4b69-a99e-2708806066aa","savedPayload":{"position":{"x":24486.764999673167,"y":31686.791233913154},"targetPosition":{"x":24557.764999673167,"y":31783.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2a1d405b-2fbe-4ed4-a76a-d2c7be59d20e"}}}],"dataProductFolders":[],"id":"6b55d39b-b602-4d0f-9d73-253e4fbe60ee","savedPayload":{"position":{"x":24557.764999673167,"y":31783.791233913154},"targetPosition":{"x":24591.764999673167,"y":31818.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trigger Stages","project":"Superalgos","id":"bc3d588e-823d-4461-b550-b8ec912c4c8f","savedPayload":{"position":{"x":24557.764999673167,"y":31774.791233913154},"targetPosition":{"x":24533.764999673167,"y":31850.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stages","id":"18cc2e79-7e57-418c-b635-6c68fc11d681"}}},{"type":"Data Product","name":"Open Stages","project":"Superalgos","id":"edb07104-591d-453b-b7fe-bd3854ff8a36","savedPayload":{"position":{"x":24568.764999673167,"y":31780.791233913154},"targetPosition":{"x":24533.764999673167,"y":31850.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stages","id":"d5938c00-0849-466d-ae14-4ea91b571678"}}},{"type":"Data Product","name":"Manage Stages","project":"Superalgos","id":"9b884f77-297b-4618-ac4b-b995570284b6","savedPayload":{"position":{"x":24528.764999673167,"y":31769.791233913154},"targetPosition":{"x":24533.764999673167,"y":31850.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stages","id":"8fab86b3-db8d-4113-8418-1d256bd98cf2"}}},{"type":"Data Product","name":"Close Stages","project":"Superalgos","id":"c07cc0bb-c49e-42d1-a5ba-f5fa9882fbab","savedPayload":{"position":{"x":24524.764999673167,"y":31824.791233913154},"targetPosition":{"x":24533.764999673167,"y":31850.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stages","id":"ba911e61-f951-48cd-b547-9a70aa211100"}}}],"dataProductFolders":[],"id":"9d38f1ab-49ec-461c-9eb1-7f7bb7529baf","savedPayload":{"position":{"x":24533.764999673167,"y":31850.791233913154},"targetPosition":{"x":24591.764999673167,"y":31818.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Positions","project":"Superalgos","id":"0e3c5d47-28d9-4cd3-ad72-1bdb054550a8","savedPayload":{"position":{"x":24517.764999673167,"y":31779.791233913154},"targetPosition":{"x":24560.764999673167,"y":31812.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Positions","id":"1eabba24-cbd4-4cbf-95e0-c5135349d41d"}}},{"type":"Data Product","name":"Position Base Asset","project":"Superalgos","id":"47ffaf48-d92f-4da8-afb3-7787c5ba597e","savedPayload":{"position":{"x":24477.764999673167,"y":31879.791233913154},"targetPosition":{"x":24560.764999673167,"y":31812.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Base Asset","id":"b371b039-f6c8-4f60-84cb-52f55c96c84d"}}},{"type":"Data Product","name":"Position Quoted Asset","project":"Superalgos","id":"59eb8fe6-5429-4d2d-8971-47580c5816b8","savedPayload":{"position":{"x":24462.764999673167,"y":31901.791233913154},"targetPosition":{"x":24560.764999673167,"y":31812.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Quoted Asset","id":"a376f02b-a5d2-4079-b5cd-ab7dc894b909"}}},{"type":"Data Product","name":"Stop Loss","project":"Superalgos","id":"13a4d476-b8bb-4bb3-9a97-1c2a7b5c6188","savedPayload":{"position":{"x":24656.764999673167,"y":31845.791233913154},"targetPosition":{"x":24560.764999673167,"y":31812.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Stop Loss","id":"c18bdc82-216a-4b1d-8850-5c3c9dc2000b"}}},{"type":"Data Product","name":"Take Profit","project":"Superalgos","id":"1af2f188-5506-47ff-859b-08e8f1c56754","savedPayload":{"position":{"x":24460.764999673167,"y":31717.791233913154},"targetPosition":{"x":24560.764999673167,"y":31812.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Take Profit","id":"2542c7d0-fa26-4b52-a59a-a3630e52eb89"}}}],"dataProductFolders":[],"id":"23dd1804-2a69-4a66-9c55-9b7a5333c263","savedPayload":{"position":{"x":24560.764999673167,"y":31812.791233913154},"targetPosition":{"x":24591.764999673167,"y":31818.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"224dd8a4-9dda-4294-8287-bb108a560eae","savedPayload":{"position":{"x":24591.764999673167,"y":31818.791233913154},"targetPosition":{"x":24510.764999673167,"y":31836.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"893b0c86-043f-404c-b4d7-c77d74c6002c","savedPayload":{"position":{"x":24510.764999673167,"y":31836.791233913154},"targetPosition":{"x":24523.764999673167,"y":31920.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ffdfebe3-50db-41b5-8077-7a7d0d008865","savedPayload":{"position":{"x":24523.764999673167,"y":31920.791233913154},"targetPosition":{"x":24482.764999673167,"y":32011.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"8e57ee10-b239-4a92-81b4-44315e3cfd03","savedPayload":{"position":{"x":24482.764999673167,"y":32011.791233913154},"targetPosition":{"x":24541.764999673167,"y":32023.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Live Trading Session","name":"WHB v2","id":"934095e8-4a1c-4baf-828f-7818f73c4219"}}}],"id":"d04c2806-8d2d-4de2-8d10-b05a87a91b65","savedPayload":{"position":{"x":24509.356993272086,"y":32330.956884291958},"targetPosition":{"x":24659.356993272086,"y":32071.149263156625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"f601d2a7-fada-477f-9b63-3ef7ed42d44a","savedPayload":{"position":{"x":24659.356993272086,"y":32071.149263156625},"targetPosition":{"x":24809.356993272086,"y":31811.341642021293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"a73073a9-0ae6-4e5a-aebc-59d56728d8a2","savedPayload":{"position":{"x":24809.356993272086,"y":31811.341642021293},"targetPosition":{"x":24959.356993272086,"y":31551.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"d7975b33-3654-4e37-8255-90dbf51c3789"}}}],"id":"e4e268f3-a677-4f90-90a1-d87244e647e5","savedPayload":{"position":{"x":24959.356993272086,"y":31551.53402088596},"targetPosition":{"x":25109.356993272086,"y":31291.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningMinesData":{"type":"Learning Mines Data","name":"New Learning Mines Data","project":"Superalgos","projectLearningProducts":[{"type":"Project Learning Products","name":"Superalgos","project":"Superalgos","exchangeLearningProducts":[],"id":"c935fdbb-ec18-4702-b593-b0163967eca1","savedPayload":{"position":{"x":24633.344989097342,"y":31656.98325715586},"targetPosition":{"x":24871.350991184714,"y":31474.354828453244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"d7975b33-3654-4e37-8255-90dbf51c3789"}}}],"id":"6f1d049c-18b7-4c73-9c2e-f65068679719","savedPayload":{"position":{"x":24871.350991184714,"y":31474.354828453244},"targetPosition":{"x":25109.356993272086,"y":31291.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e2697759-6038-4943-b90c-5a68651ff9a8","savedPayload":{"position":{"x":25109.356993272086,"y":31291.726399750627},"targetPosition":{"x":25259.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"d"}}},"id":"e452cf65-2b2b-44f2-9e67-bdd9d3c008e4","savedPayload":{"position":{"x":25259.356993272086,"y":31031.918778615294},"targetPosition":{"x":24959.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"3c165071-7558-4708-9999-8ffe71d346b1","savedPayload":{"position":{"x":24959.356993272086,"y":31031.918778615294},"targetPosition":{"x":24959.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","project":"Superalgos","cryptoExchanges":[{"type":"Crypto Exchanges","name":"Tested","project":"Superalgos","exchanges":[{"type":"Crypto Exchange","name":"Binance","config":"{\n \"codeName\": \"binance\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"EUR\"} \n}","project":"Superalgos","assets":[{"type":"Asset","name":"Bitcoin","config":"{ \n\"codeName\": \"BTC\"\n}","project":"Superalgos","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa","savedPayload":{"position":{"x":19794.079365950267,"y":30512.325102172115},"targetPosition":{"x":19716.43365241951,"y":30802.102850058836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Tether","config":"{ \n\"codeName\": \"USDT\"\n}","project":"Superalgos","id":"f110bfa0-bd5b-469b-a940-4524c8688136","savedPayload":{"position":{"x":20006.21140030623,"y":30724.45713652808},"targetPosition":{"x":19716.43365241951,"y":30802.102850058836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"95d2c30f-215b-486e-8119-f4eac0279575","savedPayload":{"position":{"x":19716.43365241951,"y":30802.102850058836},"targetPosition":{"x":19504.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"E"}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","project":"Superalgos","markets":[{"type":"Market","name":"BTC/USDT","config":"{ \n\"codeName\": \"BTC/USDT\"\n}","project":"Superalgos","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","project":"Superalgos","id":"1017b30d-de1b-4212-991e-9fd0a5b6c814","savedPayload":{"position":{"x":20394.079365950267,"y":30936.589170884043},"targetPosition":{"x":20104.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","project":"Superalgos","id":"705c4a67-787a-48cd-a3dc-3a557438bf0b","savedPayload":{"position":{"x":20394.079365950267,"y":31091.880597945557},"targetPosition":{"x":20104.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"f110bfa0-bd5b-469b-a940-4524c8688136"}}},"id":"9a867bf0-a71d-445c-b99a-75b60bbdce09","savedPayload":{"position":{"x":20104.301618063546,"y":31014.2348844148},"targetPosition":{"x":19804.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2fd80894-900e-44ac-a1a7-56c14124f7a1","savedPayload":{"position":{"x":19804.301618063546,"y":31014.2348844148},"targetPosition":{"x":19504.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[{"type":"Exchange Account Asset","name":"Bitcoin","project":"Superalgos","id":"ba6f3d5c-b36b-49d9-947f-392068109169","savedPayload":{"position":{"x":20508.121182548915,"y":31438.498953126727},"targetPosition":{"x":20218.343434662194,"y":31516.144666657485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa"}}},{"type":"Exchange Account Asset","name":"Tether","project":"Superalgos","id":"c90be267-90f9-45ae-b225-0578adb4aad9","savedPayload":{"position":{"x":20430.475469018158,"y":31728.27670101345},"targetPosition":{"x":20218.343434662194,"y":31516.144666657485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"f110bfa0-bd5b-469b-a940-4524c8688136"}}}],"id":"8ac5c2a9-a238-48ae-ab43-0a0a95a37464","savedPayload":{"position":{"x":20218.343434662194,"y":31516.144666657485},"targetPosition":{"x":19928.565686775473,"y":31438.498953126727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"Key for Lighting Strike","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e85bbbd6-aca8-450f-9237-788062de5761","savedPayload":{"position":{"x":20083.857113836988,"y":32018.05444890017},"targetPosition":{"x":20006.21140030623,"y":31728.27670101345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"48925cc9-f3cd-4499-8466-1338fed28a0d","savedPayload":{"position":{"x":20006.21140030623,"y":31728.27670101345},"targetPosition":{"x":19928.565686775473,"y":31438.498953126727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"63794496-c94b-42f9-81cc-c588708617a6","savedPayload":{"position":{"x":19928.565686775473,"y":31438.498953126727},"targetPosition":{"x":19716.43365241951,"y":31226.366918770764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4b0c1ac5-515f-44a9-b9b9-e698a9c51eac","savedPayload":{"position":{"x":19716.43365241951,"y":31226.366918770764},"targetPosition":{"x":19504.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b","savedPayload":{"position":{"x":19504.301618063546,"y":31014.2348844148},"targetPosition":{"x":19204.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"tutorial":{"status":"Done"}}}],"id":"e3879d63-6f8f-41a3-8ac3-0349c4361722","savedPayload":{"position":{"x":19204.301618063546,"y":31014.2348844148},"targetPosition":{"x":18904.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Untested","project":"Superalgos","exchanges":[{"type":"Crypto Exchange","name":"ACX","config":"{ \n\"codeName\": \"acx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"ebcb522b-ae58-46d2-9d82-a9b0beec3976","savedPayload":{"position":{"x":17935.64382962515,"y":31014.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b2649588-27c6-442c-b179-f6d8817188b3","savedPayload":{"position":{"x":17954.64382962515,"y":31004.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9b2051d5-7ee7-4e94-8c8d-306674889339","savedPayload":{"position":{"x":17838.64382962515,"y":30896.23747069523},"targetPosition":{"x":17766.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"1d5461aa-d26c-4df5-b383-8c83e311b8ca","savedPayload":{"position":{"x":17643.64382962515,"y":30952.23747069523},"targetPosition":{"x":17698.64382962515,"y":30973.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c6372400-de52-4b63-97f3-f748aac9c63f","savedPayload":{"position":{"x":17698.64382962515,"y":30973.23747069523},"targetPosition":{"x":17766.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c948314e-2247-4234-b83d-cc2c1b152665","savedPayload":{"position":{"x":17766.64382962515,"y":30905.23747069523},"targetPosition":{"x":17837.64382962515,"y":30978.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04ccb742-ef1b-4138-b38d-a6b0d92f2f8e","savedPayload":{"position":{"x":17837.64382962515,"y":30978.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e9c21b2d-de21-43b5-8b48-51367a8c981c","savedPayload":{"position":{"x":19313.14497226101,"y":30565.583066825377},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"AOFEX","config":"{ \n\"codeName\": \"aofex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"623ef91b-04c0-4bd5-ac0d-b32c809be3ea","savedPayload":{"position":{"x":17973.64382962515,"y":30923.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"9d0b5855-59a6-4dda-9a4b-33d7a44d582e","savedPayload":{"position":{"x":17901.64382962515,"y":30994.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"e898e569-0dd3-4a22-baa5-caaace66d4ed","savedPayload":{"position":{"x":18062.64382962515,"y":30838.23747069523},"targetPosition":{"x":17982.64382962515,"y":30899.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"64a69d3d-15ff-41c3-a926-5ec93c932ab1","savedPayload":{"position":{"x":17822.64382962515,"y":31052.23747069523},"targetPosition":{"x":17893.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae2785c5-75a1-44fc-a71b-363d88cb5dac","savedPayload":{"position":{"x":17893.64382962515,"y":30981.23747069523},"targetPosition":{"x":17982.64382962515,"y":30899.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07ea69aa-7357-43b1-b548-a4c4fab70c55","savedPayload":{"position":{"x":17982.64382962515,"y":30899.23747069523},"targetPosition":{"x":17971.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2146b410-fc4e-452d-ae57-5d58c9a29706","savedPayload":{"position":{"x":17971.64382962515,"y":30962.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c2e9bb45-97c7-47e8-b13c-56946e673c53","savedPayload":{"position":{"x":19413.67778623216,"y":30647.89853748846},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bequant","config":"{ \n\"codeName\": \"bequant\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"b23c8adf-c880-48fd-b4af-4b4be86cf0e5","savedPayload":{"position":{"x":18059.64382962515,"y":31101.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"523bd94f-68f9-457e-91fd-806c1b95e98d","savedPayload":{"position":{"x":18006.64382962515,"y":31117.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9d914bb1-a68b-41ae-8666-0fcc755358c1","savedPayload":{"position":{"x":17859.64382962515,"y":30964.23747069523},"targetPosition":{"x":17936.64382962515,"y":31059.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"15d903b5-113c-465e-8120-7c46a9a85565","savedPayload":{"position":{"x":17976.64382962515,"y":31146.23747069523},"targetPosition":{"x":17943.64382962515,"y":31134.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2d1c0bc3-abe2-4340-91bf-2eef5b98a2f0","savedPayload":{"position":{"x":17943.64382962515,"y":31134.23747069523},"targetPosition":{"x":17936.64382962515,"y":31059.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a50d459-914c-4bfc-91e8-f15c383280eb","savedPayload":{"position":{"x":17936.64382962515,"y":31059.23747069523},"targetPosition":{"x":17931.64382962515,"y":31071.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b2f2b69f-3bef-4edc-9950-5261d9f36382","savedPayload":{"position":{"x":17931.64382962515,"y":31071.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e928d3e-a2c2-4341-aa2f-b753551c9479","savedPayload":{"position":{"x":19504.72140465123,"y":30740.600980501622},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bibox","config":"{ \n\"codeName\": \"bibox\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"13c1f22c-9a35-4d3f-b000-c96984fd6a2b","savedPayload":{"position":{"x":17995.64382962515,"y":31047.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3c6df49d-70c3-468a-bdd8-6768ce6d3a9d","savedPayload":{"position":{"x":17916.64382962515,"y":31018.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5a54ef39-8fba-4a5f-ac24-5f27e763e28f","savedPayload":{"position":{"x":18050.64382962515,"y":31174.23747069523},"targetPosition":{"x":17956.64382962515,"y":31128.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"08df1f45-dab0-463a-8758-359973f2620d","savedPayload":{"position":{"x":17899.64382962515,"y":31242.23747069523},"targetPosition":{"x":17959.64382962515,"y":31180.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"105b52c2-90ad-4fa1-b690-d8fab14209b4","savedPayload":{"position":{"x":17959.64382962515,"y":31180.23747069523},"targetPosition":{"x":17956.64382962515,"y":31128.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"68c1ef42-1b7b-4cc6-981f-80b20dabcd89","savedPayload":{"position":{"x":17956.64382962515,"y":31128.23747069523},"targetPosition":{"x":17907.64382962515,"y":31057.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fc35e5d0-ea61-42b6-979a-859f19c5ac6c","savedPayload":{"position":{"x":17907.64382962515,"y":31057.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e5f9ee4d-77a3-48ae-b354-b2f6a97d5e47","savedPayload":{"position":{"x":19585.208424334218,"y":30842.603544479174},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BigONE","config":"{ \n\"codeName\": \"bigone\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"3f289513-c1c8-457c-b65a-8cf62b5f5eb5","savedPayload":{"position":{"x":17778.64382962515,"y":31071.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8b365e73-1cee-496a-921f-121cb628a130","savedPayload":{"position":{"x":17798.64382962515,"y":31121.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"447a4f6f-cfa0-443e-9339-d7c1153ada31","savedPayload":{"position":{"x":17921.64382962515,"y":31046.23747069523},"targetPosition":{"x":17891.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0d234c53-c121-471e-bce1-a258c13cd148","savedPayload":{"position":{"x":17848.64382962515,"y":31175.23747069523},"targetPosition":{"x":17944.64382962515,"y":31086.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"816e1b6a-d790-4abd-9ae1-e203fa737af2","savedPayload":{"position":{"x":17944.64382962515,"y":31086.23747069523},"targetPosition":{"x":17891.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"561a57f7-8c22-4e50-840d-d983ed6bb864","savedPayload":{"position":{"x":17891.64382962515,"y":31102.23747069523},"targetPosition":{"x":17813.64382962515,"y":31064.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e243bd5d-ade7-46c8-876b-6ad8c6eb5e0a","savedPayload":{"position":{"x":17813.64382962515,"y":31064.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fb9ee540-bf12-4dda-bf87-cb6b58fce649","savedPayload":{"position":{"x":19654.195208565325,"y":30952.710342620318},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Binance Jersey","config":"{ \n\"codeName\": \"binanceje\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"0b979ea9-7a2d-4744-9517-2dfa632dfafc","savedPayload":{"position":{"x":17852.64382962515,"y":30989.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b9a4497d-20f1-4c61-9a79-444e0fe0ddf4","savedPayload":{"position":{"x":17924.64382962515,"y":30952.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1b24d8a4-ec70-4501-838c-7633f6f7288e","savedPayload":{"position":{"x":17882.64382962515,"y":31051.23747069523},"targetPosition":{"x":17942.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"627472e3-638f-4d68-a917-d0844d6a227b","savedPayload":{"position":{"x":17991.64382962515,"y":31190.23747069523},"targetPosition":{"x":17986.64382962515,"y":31110.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"b8ce75fb-93c9-4ca2-9b2b-9f8ed8af34f3","savedPayload":{"position":{"x":17986.64382962515,"y":31110.23747069523},"targetPosition":{"x":17942.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"08b226e4-14ee-4ad3-8d96-efe77cc38489","savedPayload":{"position":{"x":17942.64382962515,"y":31066.23747069523},"targetPosition":{"x":17949.64382962515,"y":31009.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2771eb11-bc72-4273-9e1b-9ac5410c6354","savedPayload":{"position":{"x":17949.64382962515,"y":31009.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2782350a-84a2-40ec-87c6-3c8043376a18","savedPayload":{"position":{"x":19710.872950374665,"y":31069.630473388454},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Binance US","config":"{ \n\"codeName\": \"binanceus\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"817ee1cf-b44c-4458-a9c4-a05a17ea0510","savedPayload":{"position":{"x":17943.64382962515,"y":30999.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c6694e9e-74dc-4c2e-9151-90f1d6631b45","savedPayload":{"position":{"x":17937.64382962515,"y":30989.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"00144904-5363-49eb-b445-8c8283d92b0d","savedPayload":{"position":{"x":17838.64382962515,"y":31193.23747069523},"targetPosition":{"x":17781.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2e71aa3c-03d4-4dbd-bc50-43b30f59e655","savedPayload":{"position":{"x":17783.64382962515,"y":31148.23747069523},"targetPosition":{"x":17703.64382962515,"y":31182.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"a4d0df32-c600-4421-b893-2a05f0442ed6","savedPayload":{"position":{"x":17703.64382962515,"y":31182.23747069523},"targetPosition":{"x":17781.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7a39543a-00e1-452b-8aba-36c2b240f9fc","savedPayload":{"position":{"x":17781.64382962515,"y":31156.23747069523},"targetPosition":{"x":17799.64382962515,"y":31119.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2543c4e5-8233-4348-b6dc-e47aed1ff381","savedPayload":{"position":{"x":17799.64382962515,"y":31119.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0b2b67d2-853b-470e-8b13-925956ad5621","savedPayload":{"position":{"x":19754.577155060477,"y":31191.993155151424},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"bitbank","config":"{ \n\"codeName\": \"bitbank\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"eb6b6842-9bf7-450e-baa3-7a87541a1cf6","savedPayload":{"position":{"x":17955.64382962515,"y":31107.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"6353ff56-759f-457d-81f3-fdb8ae5b3e83","savedPayload":{"position":{"x":17942.64382962515,"y":31183.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a2b297c7-f33b-48b9-98fa-d339c7b0ff67","savedPayload":{"position":{"x":17999.64382962515,"y":31016.23747069523},"targetPosition":{"x":17945.64382962515,"y":31116.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"9ce6c354-b294-4062-b763-421e5edb69de","savedPayload":{"position":{"x":17883.64382962515,"y":31186.23747069523},"targetPosition":{"x":17845.64382962515,"y":31202.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"547dbf6c-a292-46c0-a628-62856858121e","savedPayload":{"position":{"x":17845.64382962515,"y":31202.23747069523},"targetPosition":{"x":17945.64382962515,"y":31116.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"097055b3-37e5-4100-a24b-91e404fe49a6","savedPayload":{"position":{"x":17945.64382962515,"y":31116.23747069523},"targetPosition":{"x":17897.64382962515,"y":31142.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51aed4ce-0303-431e-a15f-e6f133f7a2cf","savedPayload":{"position":{"x":17897.64382962515,"y":31142.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c9a96a7-ed12-4b3e-bb51-306a8da131f5","savedPayload":{"position":{"x":19784.79543078195,"y":31318.363797342816},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitBay","config":"{ \n\"codeName\": \"bitbay\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"83b4e523-72a7-41ce-9363-fe0c799dcac1","savedPayload":{"position":{"x":17861.64382962515,"y":30965.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"966698f7-8a28-42d7-bb80-f7cd0601e44f","savedPayload":{"position":{"x":17823.64382962515,"y":31026.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"554829eb-3d40-4b95-a1cd-9de943763e2c","savedPayload":{"position":{"x":17914.64382962515,"y":30924.23747069523},"targetPosition":{"x":17876.64382962515,"y":30921.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2f534989-7ca7-4c3d-b14a-3b1071543c8c","savedPayload":{"position":{"x":17845.64382962515,"y":30853.23747069523},"targetPosition":{"x":17832.64382962515,"y":30821.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2f6b76b4-51d4-434f-8aa1-ed86b0e26bd2","savedPayload":{"position":{"x":17832.64382962515,"y":30821.23747069523},"targetPosition":{"x":17876.64382962515,"y":30921.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cbcc3ab6-9758-4273-99d2-9d05fdd392b5","savedPayload":{"position":{"x":17876.64382962515,"y":30921.23747069523},"targetPosition":{"x":17805.64382962515,"y":31015.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dada6c12-7c41-4ab8-9922-908233829f58","savedPayload":{"position":{"x":17805.64382962515,"y":31015.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8778eee5-97a2-4f9d-bd25-cd5a64ec6663","savedPayload":{"position":{"x":19801.173495885087,"y":31447.26081972472},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitfinex","config":"{ \n\"codeName\": \"bitfinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"33508b53-2769-4f3d-8c98-9fa37e5cbf5b","savedPayload":{"position":{"x":17888.64382962515,"y":31043.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4d4ad5a1-81a7-4f92-83db-99f57ce261bb","savedPayload":{"position":{"x":17975.64382962515,"y":30868.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"29d52baf-645c-4d8f-9631-ebd391b4c815","savedPayload":{"position":{"x":18034.64382962515,"y":31066.23747069523},"targetPosition":{"x":18037.64382962515,"y":31012.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d615c33d-c6cf-4572-ac32-8e9ddeb5bb52","savedPayload":{"position":{"x":18023.64382962515,"y":30916.23747069523},"targetPosition":{"x":18106.64382962515,"y":30982.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"0c189040-6318-483c-b6d7-982370a3298d","savedPayload":{"position":{"x":18106.64382962515,"y":30982.23747069523},"targetPosition":{"x":18037.64382962515,"y":31012.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd60de4a-d17c-4ba7-936a-cbf2305fe3bb","savedPayload":{"position":{"x":18037.64382962515,"y":31012.23747069523},"targetPosition":{"x":18039.64382962515,"y":30964.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d247f4f5-6f16-4a59-a4a5-6d1554b43562","savedPayload":{"position":{"x":18039.64382962515,"y":30964.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c076027-683d-4778-8a6a-e60984980fdf","savedPayload":{"position":{"x":19803.51933253116,"y":31577.173022561386},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitfinex","config":"{ \n\"codeName\": \"bitfinex2\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"8fc7f955-5c81-446c-bbeb-205988bf1fc0","savedPayload":{"position":{"x":17830.64382962515,"y":31051.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d5ba38e9-3282-4634-b922-16532c71f426","savedPayload":{"position":{"x":17819.64382962515,"y":31118.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1cebbed5-28f7-4ccd-afce-9e7634d90fb6","savedPayload":{"position":{"x":17892.64382962515,"y":30997.23747069523},"targetPosition":{"x":17855.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0d109aa9-c80c-4a64-96f0-1d8fda0a70a4","savedPayload":{"position":{"x":17888.64382962515,"y":30805.23747069523},"targetPosition":{"x":17942.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5459ab1e-a1ce-4dae-ae72-61c1f7f37ce0","savedPayload":{"position":{"x":17942.64382962515,"y":30905.23747069523},"targetPosition":{"x":17855.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a4615f7a-000d-4ff9-b5ac-109bc9a3a849","savedPayload":{"position":{"x":17855.64382962515,"y":30970.23747069523},"targetPosition":{"x":17919.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e10d303e-ea21-4625-bae1-c32ad7a44e8a","savedPayload":{"position":{"x":17919.64382962515,"y":31043.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f3114102-a73c-4086-9594-5888ef1ab4ec","savedPayload":{"position":{"x":19791.80543793031,"y":31706.577304054405},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitforex","config":"{ \n\"codeName\": \"bitforex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"698e5e38-ad73-4cb6-b7f6-2b69913faff9","savedPayload":{"position":{"x":17897.64382962515,"y":30956.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"f0142bd4-1b63-4d12-a4b7-e150d0da197f","savedPayload":{"position":{"x":18020.64382962515,"y":31021.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"7164fb28-405b-461a-a7d4-59d438ecf1ce","savedPayload":{"position":{"x":17821.64382962515,"y":30984.23747069523},"targetPosition":{"x":17901.64382962515,"y":30907.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"ce8a00c9-f090-4ec2-84ed-c6661f8bf7b0","savedPayload":{"position":{"x":17825.64382962515,"y":30965.23747069523},"targetPosition":{"x":17818.64382962515,"y":30913.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"579cd74b-98f6-4000-990b-25ae1456c94b","savedPayload":{"position":{"x":17818.64382962515,"y":30913.23747069523},"targetPosition":{"x":17901.64382962515,"y":30907.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"dbac6eef-25d2-4cda-86a6-59ce8a9a26bc","savedPayload":{"position":{"x":17901.64382962515,"y":30907.23747069523},"targetPosition":{"x":17909.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1da9dd3-22ec-4536-bb5a-4d0bb8a56b81","savedPayload":{"position":{"x":17909.64382962515,"y":30970.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"499a5a3b-7871-4c95-9b2e-d58d4d9e2392","savedPayload":{"position":{"x":19766.169146786622,"y":31833.956517318737},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"bitkk","config":"{ \n\"codeName\": \"bitkk\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"efbb916c-780b-447f-a4c2-df68570d4ee1","savedPayload":{"position":{"x":17931.64382962515,"y":30937.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0d829516-81d9-46a5-9861-7d94cc89455d","savedPayload":{"position":{"x":17951.64382962515,"y":30912.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"fc174aa3-c485-4b9b-ba19-444b0189ccb1","savedPayload":{"position":{"x":17788.64382962515,"y":30980.23747069523},"targetPosition":{"x":17834.64382962515,"y":30983.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"15921d8a-4b45-481c-9165-79969ed3fd27","savedPayload":{"position":{"x":17796.64382962515,"y":30936.23747069523},"targetPosition":{"x":17891.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"927d5c8a-85df-48bb-b097-c36abb76ca0e","savedPayload":{"position":{"x":17891.64382962515,"y":30922.23747069523},"targetPosition":{"x":17834.64382962515,"y":30983.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"43d218c2-e633-47d5-8dd8-60bc7f7c0b9e","savedPayload":{"position":{"x":17834.64382962515,"y":30983.23747069523},"targetPosition":{"x":17853.64382962515,"y":30925.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2d310d61-cbc7-4306-af02-be3888939545","savedPayload":{"position":{"x":17853.64382962515,"y":30925.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ded39740-3c93-4fda-bb9c-6ac75d2109f4","savedPayload":{"position":{"x":19726.911021174266,"y":31957.817257542785},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMart","config":"{ \n\"codeName\": \"bitmart\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"10374855-6b4a-460b-9c95-70072ac00315","savedPayload":{"position":{"x":17907.64382962515,"y":30901.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3aded60c-4061-48ff-ad33-212c965b5c43","savedPayload":{"position":{"x":17829.64382962515,"y":30925.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1789a3ca-d948-497d-8d1b-1eefd25d16a3","savedPayload":{"position":{"x":17886.64382962515,"y":30937.23747069523},"targetPosition":{"x":17895.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"038170bc-0ca7-4a92-8219-61b7bc8431b0","savedPayload":{"position":{"x":17893.64382962515,"y":31034.23747069523},"targetPosition":{"x":17835.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"55f79ede-ef02-405f-92bd-11902ab3cc7a","savedPayload":{"position":{"x":17835.64382962515,"y":30962.23747069523},"targetPosition":{"x":17895.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8185c660-4af3-4a62-bfa9-8922861101b5","savedPayload":{"position":{"x":17895.64382962515,"y":30988.23747069523},"targetPosition":{"x":17819.64382962515,"y":30909.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"546d48c3-df31-495c-b3b4-cb35109c5542","savedPayload":{"position":{"x":17819.64382962515,"y":30909.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c7ed52a7-895b-46f1-a745-35954d8bcfc6","savedPayload":{"position":{"x":19674.491326722004,"y":32076.707370794375},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMax","config":"{ \n\"codeName\": \"bitmax\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"8a042d0d-7a7a-4a76-889e-42d8642404f4","savedPayload":{"position":{"x":17944.64382962515,"y":31046.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0c4fcc48-51e6-4ff2-925f-405cda6d1122","savedPayload":{"position":{"x":17898.64382962515,"y":31024.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"ef9d5381-d9e3-47f5-9069-6fc14eda0fa3","savedPayload":{"position":{"x":17879.64382962515,"y":31096.23747069523},"targetPosition":{"x":17977.64382962515,"y":31041.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c66fe606-9705-45b0-a196-7ea3efb0221e","savedPayload":{"position":{"x":17982.64382962515,"y":31053.23747069523},"targetPosition":{"x":17943.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"80a5f68e-776a-44de-8797-d2eb806c306e","savedPayload":{"position":{"x":17943.64382962515,"y":31083.23747069523},"targetPosition":{"x":17977.64382962515,"y":31041.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"011fcf1c-1c94-4c36-a246-d6c400aa39dc","savedPayload":{"position":{"x":17977.64382962515,"y":31041.23747069523},"targetPosition":{"x":17942.64382962515,"y":31103.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4a87b8c5-e009-427f-afb7-21afe5594b59","savedPayload":{"position":{"x":17942.64382962515,"y":31103.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fc6a9048-ab8c-48f9-91ae-6c95c28714b0","savedPayload":{"position":{"x":19609.524636419505,"y":32189.2329791979},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMEX","config":"{ \n\"codeName\": \"bitmex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f7636e2b-354a-4217-894b-5e26eddc0c2a","savedPayload":{"position":{"x":17894.64382962515,"y":30934.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"6eb2ddd1-6d06-456c-b4e0-7df56ba182e6","savedPayload":{"position":{"x":17823.64382962515,"y":30834.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"b4a4b8fe-d923-4eb0-a066-171b83d1540d","savedPayload":{"position":{"x":17902.64382962515,"y":31064.23747069523},"targetPosition":{"x":17815.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"918ed585-ce46-4d51-a07a-9beee51f70eb","savedPayload":{"position":{"x":17711.64382962515,"y":31036.23747069523},"targetPosition":{"x":17805.64382962515,"y":31078.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"9efef4d8-5be3-4d17-a645-6edffd9535cf","savedPayload":{"position":{"x":17805.64382962515,"y":31078.23747069523},"targetPosition":{"x":17815.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6ad31a6e-f27b-45c3-9996-a41fb39aa154","savedPayload":{"position":{"x":17815.64382962515,"y":30988.23747069523},"targetPosition":{"x":17844.64382962515,"y":30896.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"82887393-cb1c-4b01-8581-4b3dabc86584","savedPayload":{"position":{"x":17844.64382962515,"y":30896.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1e2f1dd0-ebf1-4485-83d8-7723a9e3e714","savedPayload":{"position":{"x":19532.77262531095,"y":32294.07482287797},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bittrex","config":"{ \n\"codeName\": \"bittrex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"88d4ef94-f030-42df-9115-69d9611317b1","savedPayload":{"position":{"x":17839.64382962515,"y":31009.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"7fe8234d-9a39-4b28-bf98-43b4fdb57ee5","savedPayload":{"position":{"x":17878.64382962515,"y":31045.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5ba7fe13-1e0f-403a-8f4b-8e3968d2e5e2","savedPayload":{"position":{"x":17841.64382962515,"y":30890.23747069523},"targetPosition":{"x":17742.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e926fbb8-d2ac-4e3d-aa59-a0a828d202fd","savedPayload":{"position":{"x":17707.64382962515,"y":30983.23747069523},"targetPosition":{"x":17782.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"4fbe41e1-cb15-4bc2-a3de-681c5b22cc97","savedPayload":{"position":{"x":17782.64382962515,"y":31052.23747069523},"targetPosition":{"x":17742.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ab9fe180-1c07-44de-a0a1-863761ac52d6","savedPayload":{"position":{"x":17742.64382962515,"y":30961.23747069523},"targetPosition":{"x":17796.64382962515,"y":30903.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"584f29ca-9b3c-4b7f-a2b0-aab4180ecefd","savedPayload":{"position":{"x":17796.64382962515,"y":30903.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f598f002-8fc5-491f-888e-07d017ea83c6","savedPayload":{"position":{"x":19445.135140551556,"y":32390.003727075255},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bit-Z","config":"{ \n\"codeName\": \"bitz\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"0a22e02b-7d2e-4955-9cfc-ed7d95f0c9a0","savedPayload":{"position":{"x":17751.64382962515,"y":31083.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"298b45af-b73d-4cd5-848a-97de7b857569","savedPayload":{"position":{"x":17944.64382962515,"y":31083.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6ede807b-b1ab-42b5-bfd7-3b12a942447e","savedPayload":{"position":{"x":17871.64382962515,"y":31049.23747069523},"targetPosition":{"x":17772.64382962515,"y":31098.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"dc172858-3241-4487-950a-e5cae03ac376","savedPayload":{"position":{"x":17751.64382962515,"y":31081.23747069523},"targetPosition":{"x":17753.64382962515,"y":31028.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"19c07cee-1fdf-4e02-ac9f-d110b64ee033","savedPayload":{"position":{"x":17753.64382962515,"y":31028.23747069523},"targetPosition":{"x":17772.64382962515,"y":31098.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4ef5048-ac4c-410e-bd6d-3338e33ab108","savedPayload":{"position":{"x":17772.64382962515,"y":31098.23747069523},"targetPosition":{"x":17788.64382962515,"y":31134.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e7e96c41-c839-4eec-9bcf-1c60d60fa3f5","savedPayload":{"position":{"x":17788.64382962515,"y":31134.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6cc10926-fe41-43be-887b-fa8aba1c7377","savedPayload":{"position":{"x":19347.639651522415,"y":32475.89501309667},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BTC-Alpha","config":"{ \n\"codeName\": \"btcalpha\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"263e3b9c-8fdd-4376-b53b-87f32d0f5898","savedPayload":{"position":{"x":17904.64382962515,"y":30922.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"804603e1-3e0f-4219-a9b7-ee27810d4f07","savedPayload":{"position":{"x":17829.64382962515,"y":30977.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"83b25fff-e448-483f-9bee-cb85fa592c6e","savedPayload":{"position":{"x":17734.64382962515,"y":30862.23747069523},"targetPosition":{"x":17829.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"efcfa3ca-0f82-4eb7-9b04-ed5eb4e1c3cf","savedPayload":{"position":{"x":17799.64382962515,"y":30864.23747069523},"targetPosition":{"x":17837.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"9ca8d728-ee11-4905-9a3a-5ca4ed50f3df","savedPayload":{"position":{"x":17837.64382962515,"y":30919.23747069523},"targetPosition":{"x":17829.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2cfde277-afa6-4ad3-bb5b-8a32b89e2037","savedPayload":{"position":{"x":17829.64382962515,"y":30960.23747069523},"targetPosition":{"x":17903.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"297a0ea2-f6d7-47fd-9fb7-0d99d00a87d8","savedPayload":{"position":{"x":17903.64382962515,"y":30969.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"30e5485f-213b-435b-a670-07b76cfe5cae","savedPayload":{"position":{"x":19241.429203691412,"y":32550.741684144767},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BTC Markets","config":"{ \n\"codeName\": \"btcmarkets\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"fcb3b880-0852-4d93-8714-67373f9dca16","savedPayload":{"position":{"x":17911.64382962515,"y":31036.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"953d8eff-0b2e-4b07-8635-393fddae0c9d","savedPayload":{"position":{"x":18025.64382962515,"y":31127.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c08873f6-9120-4764-8b06-c8110468b423","savedPayload":{"position":{"x":17935.64382962515,"y":30927.23747069523},"targetPosition":{"x":18027.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"beaa2557-4976-4e53-8a24-7ea00fc3afd5","savedPayload":{"position":{"x":18054.64382962515,"y":30851.23747069523},"targetPosition":{"x":18125.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"445158a2-91b4-4ad8-8380-036cbba6ad7e","savedPayload":{"position":{"x":18125.64382962515,"y":30951.23747069523},"targetPosition":{"x":18027.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd00e08c-a26d-4b11-93a3-b0e8f35bec4b","savedPayload":{"position":{"x":18027.64382962515,"y":31003.23747069523},"targetPosition":{"x":18016.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"35cb55c1-ceb3-4093-98af-8a1c2411fe0f","savedPayload":{"position":{"x":18016.64382962515,"y":31075.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ac2fda42-95ca-404a-8dd2-72bff0ff5a0f","savedPayload":{"position":{"x":19127.749017450227,"y":32613.66623143447},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Buda","config":"{ \n\"codeName\": \"buda\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"27f3573d-e1f0-473f-9bfd-f9198e7240a0","savedPayload":{"position":{"x":17945.64382962515,"y":30937.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4ddc0981-4e45-42f3-ae11-f5b136b2bc3d","savedPayload":{"position":{"x":17783.64382962515,"y":31008.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5a325d59-e6a6-4f76-a311-5e67c5f5a8a2","savedPayload":{"position":{"x":17980.64382962515,"y":30843.23747069523},"targetPosition":{"x":17956.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"fb985ab9-7759-4780-a052-8ee9be0b712a","savedPayload":{"position":{"x":17907.64382962515,"y":30968.23747069523},"targetPosition":{"x":17958.64382962515,"y":30884.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fdf7665a-2974-467b-9280-4077a888733f","savedPayload":{"position":{"x":17958.64382962515,"y":30884.23747069523},"targetPosition":{"x":17956.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a3105cfc-f80e-4bcb-b399-6ea9c0f7edf0","savedPayload":{"position":{"x":17956.64382962515,"y":30936.23747069523},"targetPosition":{"x":17872.64382962515,"y":30941.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5d69a76f-e7bc-4538-950e-2e2353eccea3","savedPayload":{"position":{"x":17872.64382962515,"y":30941.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"90fe3d74-662e-4fac-aff3-f41990b61ccf","savedPayload":{"position":{"x":19007.931889043757,"y":32663.930922181273},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BW","config":"{ \n\"codeName\": \"bw\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"457616cd-25f9-4ad3-8c18-6331859dd42e","savedPayload":{"position":{"x":17890.64382962515,"y":31014.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8c1f9aa2-4253-4129-a533-e515644ddb38","savedPayload":{"position":{"x":17909.64382962515,"y":30970.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"24314a5b-85ca-4036-adc6-618120496f1d","savedPayload":{"position":{"x":17773.64382962515,"y":30945.23747069523},"targetPosition":{"x":17860.64382962515,"y":30865.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"f7c593f6-bd7a-41f7-a5e7-b2e1ea9a528f","savedPayload":{"position":{"x":17820.64382962515,"y":30885.23747069523},"targetPosition":{"x":17828.64382962515,"y":30802.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"60dfc799-f863-4895-8d17-568aa2303ef5","savedPayload":{"position":{"x":17828.64382962515,"y":30802.23747069523},"targetPosition":{"x":17860.64382962515,"y":30865.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"223e466d-d750-4e38-91ce-8a59c15242ba","savedPayload":{"position":{"x":17860.64382962515,"y":30865.23747069523},"targetPosition":{"x":17818.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cfff1310-5220-4978-9553-8514be141d14","savedPayload":{"position":{"x":17818.64382962515,"y":30919.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d72db90c-d572-4cbb-8348-e3cc485d8e86","savedPayload":{"position":{"x":18883.38256475272,"y":32700.94644884361},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bybit","config":"{ \n\"codeName\": \"bybit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"18fdf7c8-03c4-4f81-a88e-de97589765e1","savedPayload":{"position":{"x":17803.64382962515,"y":31059.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"a62b2603-ac6f-4b6e-9541-86daf32027b1","savedPayload":{"position":{"x":17847.64382962515,"y":31104.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"66ecff99-7102-4f4a-9ce8-4d55fb22dfbc","savedPayload":{"position":{"x":17851.64382962515,"y":31165.23747069523},"targetPosition":{"x":17916.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"625e127c-0ebb-4f57-af9f-9dfb57b262a1","savedPayload":{"position":{"x":18004.64382962515,"y":31091.23747069523},"targetPosition":{"x":18008.64382962515,"y":31027.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"8174bb53-66b8-4575-b206-74f9b6352a80","savedPayload":{"position":{"x":18008.64382962515,"y":31027.23747069523},"targetPosition":{"x":17916.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ee16357e-abde-4800-b089-f43f4b696a35","savedPayload":{"position":{"x":17916.64382962515,"y":31077.23747069523},"targetPosition":{"x":17944.64382962515,"y":31101.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c9e9473b-aff9-43c8-a6be-5cd30330bee2","savedPayload":{"position":{"x":17944.64382962515,"y":31101.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"516c3831-456b-4d17-b0a0-6a363ba2ddb2","savedPayload":{"position":{"x":18755.561271527895,"y":32724.27883821499},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"ByteTrade","config":"{ \n\"codeName\": \"bytetrade\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e7a1e531-5a9e-466e-b98d-672de39eed3a","savedPayload":{"position":{"x":18088.64382962515,"y":31024.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"edafaba7-fd82-4d9f-b3f7-5d1c01c56599","savedPayload":{"position":{"x":17941.64382962515,"y":30943.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"50fa78b8-3aea-4e43-adcf-1e31820bf97f","savedPayload":{"position":{"x":17886.64382962515,"y":31008.23747069523},"targetPosition":{"x":17858.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"b9c39b04-e86e-4ebb-9aba-39c375f2960c","savedPayload":{"position":{"x":17865.64382962515,"y":30941.23747069523},"targetPosition":{"x":17953.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5965d9cc-1d68-47a7-b838-e6dd81da6ea9","savedPayload":{"position":{"x":17953.64382962515,"y":31023.23747069523},"targetPosition":{"x":17858.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f51a08be-ee3f-4d3b-a75e-d783d63092a7","savedPayload":{"position":{"x":17858.64382962515,"y":30967.23747069523},"targetPosition":{"x":17898.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d395efd0-691b-4a68-a7f1-9bce95b2f687","savedPayload":{"position":{"x":17898.64382962515,"y":30965.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45e2306f-03e8-4d17-a73a-72c11dd14e78","savedPayload":{"position":{"x":18625.966597164217,"y":32733.65453936303},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CEX.IO","config":"{ \n\"codeName\": \"cex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9de19f0a-5824-4e42-af00-484b64421dc3","savedPayload":{"position":{"x":17890.64382962515,"y":31049.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"39db01bc-0cea-422f-b9e9-7d84e3f5446d","savedPayload":{"position":{"x":17918.64382962515,"y":31105.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"93833d3c-42c9-4e4d-bf0f-5b80a90d10c2","savedPayload":{"position":{"x":17978.64382962515,"y":31126.23747069523},"targetPosition":{"x":17953.64382962515,"y":31167.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"42863a52-30f4-4322-9c20-99a45d6dc3d6","savedPayload":{"position":{"x":17884.64382962515,"y":31149.23747069523},"targetPosition":{"x":17895.64382962515,"y":31148.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fcff471d-29be-4176-8ff8-12088361f9fc","savedPayload":{"position":{"x":17895.64382962515,"y":31148.23747069523},"targetPosition":{"x":17953.64382962515,"y":31167.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f7975a18-b3ab-49bc-ae45-eb02c99aff8c","savedPayload":{"position":{"x":17953.64382962515,"y":31167.23747069523},"targetPosition":{"x":17881.64382962515,"y":31096.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ec432123-43fe-4171-8c41-b797d3161edb","savedPayload":{"position":{"x":17881.64382962515,"y":31096.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"346bfc30-e32a-453a-bdc6-0ead48221581","savedPayload":{"position":{"x":18496.117920729066,"y":32728.96363076407},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Coinbase Prime","config":"{ \n\"codeName\": \"coinbaseprime\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"73cabd8d-9308-49ed-b544-44f785ee7d38","savedPayload":{"position":{"x":17867.64382962515,"y":30962.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"31bd1360-f0c5-4d70-876a-b152f7cedfd7","savedPayload":{"position":{"x":17960.64382962515,"y":30864.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9b75fcfa-fe75-48a8-9d28-2ff19c58c041","savedPayload":{"position":{"x":17792.64382962515,"y":30841.23747069523},"targetPosition":{"x":17809.64382962515,"y":30934.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c900b14a-c728-45af-90f8-29b3e5f29f46","savedPayload":{"position":{"x":17801.64382962515,"y":30986.23747069523},"targetPosition":{"x":17793.64382962515,"y":31006.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"eaf72df3-b66f-4b83-83f9-91e22ec0c300","savedPayload":{"position":{"x":17793.64382962515,"y":31006.23747069523},"targetPosition":{"x":17809.64382962515,"y":30934.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9da95675-2071-41bf-b5ac-4f2af602994f","savedPayload":{"position":{"x":17809.64382962515,"y":30934.23747069523},"targetPosition":{"x":17862.64382962515,"y":31021.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4fc49ad4-57cc-43b0-b14b-15f26af994aa","savedPayload":{"position":{"x":17862.64382962515,"y":31021.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a8281db-6ace-4186-8cfb-cd249c4af48b","savedPayload":{"position":{"x":18367.537599231866,"y":32710.26110903248},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Coinbase Pro","config":"{ \n\"codeName\": \"coinbasepro\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"a29d6e1a-a94e-4b6b-8741-e9af6e4762f4","savedPayload":{"position":{"x":17788.64382962515,"y":30897.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"10cd9004-0088-4bc0-8fe6-b937f1bb311b","savedPayload":{"position":{"x":17865.64382962515,"y":30918.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"004397e6-ae73-46a6-9ed7-b4ba1930f77b","savedPayload":{"position":{"x":17945.64382962515,"y":30899.23747069523},"targetPosition":{"x":17850.64382962515,"y":30889.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"a81a7021-2228-4386-a773-9ac80c9e723a","savedPayload":{"position":{"x":17738.64382962515,"y":30761.23747069523},"targetPosition":{"x":17792.64382962515,"y":30789.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"482d82f2-364e-483c-b51a-a3fbe8a91577","savedPayload":{"position":{"x":17792.64382962515,"y":30789.23747069523},"targetPosition":{"x":17850.64382962515,"y":30889.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d823ad8e-0452-40f0-bad9-c2cb3ad29a21","savedPayload":{"position":{"x":17850.64382962515,"y":30889.23747069523},"targetPosition":{"x":17772.64382962515,"y":30894.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0c965322-fdd2-4e67-aaf3-dfc4b9dffc59","savedPayload":{"position":{"x":17772.64382962515,"y":30894.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4242da4b-a67e-44d8-8a19-b1c2f078c94c","savedPayload":{"position":{"x":18241.733119380056,"y":32677.766244135688},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CoinEx","config":"{ \n\"codeName\": \"coinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"af78f796-60e5-4794-87b8-772c7bc74be1","savedPayload":{"position":{"x":18043.64382962515,"y":31069.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d351e6d9-36eb-4d0e-aca5-94429bbb23a3","savedPayload":{"position":{"x":18094.64382962515,"y":31090.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"438f74c6-15e0-4553-af2a-febd5290c269","savedPayload":{"position":{"x":17908.64382962515,"y":31088.23747069523},"targetPosition":{"x":17986.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"bfb22430-77c7-41a7-8083-771f7d7f3634","savedPayload":{"position":{"x":17927.64382962515,"y":30953.23747069523},"targetPosition":{"x":17947.64382962515,"y":30990.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"51daaa12-1c60-4cef-96d8-a445b4b32296","savedPayload":{"position":{"x":17947.64382962515,"y":30990.23747069523},"targetPosition":{"x":17986.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"726b8c33-9873-4be1-b9ef-d6b4483f23b1","savedPayload":{"position":{"x":17986.64382962515,"y":31075.23747069523},"targetPosition":{"x":17919.64382962515,"y":31016.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"30469514-b983-4f6f-9d74-6d6ceef25eb6","savedPayload":{"position":{"x":17919.64382962515,"y":31016.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"62ad0961-6bdf-4a4a-a340-610816742d0a","savedPayload":{"position":{"x":18120.179423675774,"y":32631.860008654276},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"COSS","config":"{ \n\"codeName\": \"coss\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e6315232-c6b1-4e25-aade-7bc7ba9ba6ac","savedPayload":{"position":{"x":17787.64382962515,"y":30984.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b1e8451f-09a2-47b0-add3-cf9c35c487bb","savedPayload":{"position":{"x":17829.64382962515,"y":31095.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d1c9b795-0434-4ce1-9cb7-cc61fac7396d","savedPayload":{"position":{"x":17950.64382962515,"y":31149.23747069523},"targetPosition":{"x":17882.64382962515,"y":31131.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"22be64f9-4b08-4ac3-ae89-6726743a7d5a","savedPayload":{"position":{"x":17890.64382962515,"y":31165.23747069523},"targetPosition":{"x":17956.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c7462500-ba74-4bf3-ad81-35fa232bede3","savedPayload":{"position":{"x":17956.64382962515,"y":31156.23747069523},"targetPosition":{"x":17882.64382962515,"y":31131.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5cd41ced-981a-4075-af43-3a0497eb0fcb","savedPayload":{"position":{"x":17882.64382962515,"y":31131.23747069523},"targetPosition":{"x":17856.64382962515,"y":31148.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b5937899-c6ee-4d7a-b259-1ee23d721f60","savedPayload":{"position":{"x":17856.64382962515,"y":31148.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"695029de-7f61-45bb-aa4c-c6d51e6369ed","savedPayload":{"position":{"x":18004.301618063546,"y":32573.08061122679},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CREX24","config":"{ \n\"codeName\": \"crex24\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c5e12f4a-fb26-40d3-9e70-751b55018e74","savedPayload":{"position":{"x":17910.64382962515,"y":31024.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"00cb629e-bad4-4c6e-8abb-499cad3992f4","savedPayload":{"position":{"x":17938.64382962515,"y":31054.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"4909d182-e0d5-49a9-8ad2-a553c8aaaf88","savedPayload":{"position":{"x":17912.64382962515,"y":31301.23747069523},"targetPosition":{"x":17920.64382962515,"y":31249.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"075eb2a2-299b-4a0f-9f6d-76c385521dc4","savedPayload":{"position":{"x":17800.64382962515,"y":31332.23747069523},"targetPosition":{"x":17883.64382962515,"y":31289.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"e062ef2e-b252-4a66-8f58-d9aa8031f526","savedPayload":{"position":{"x":17883.64382962515,"y":31289.23747069523},"targetPosition":{"x":17920.64382962515,"y":31249.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e75be98-f874-486d-b749-536e364934dc","savedPayload":{"position":{"x":17920.64382962515,"y":31249.23747069523},"targetPosition":{"x":17845.64382962515,"y":31164.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"052f73cd-7ed7-4537-8b01-840b5b892fea","savedPayload":{"position":{"x":17845.64382962515,"y":31164.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07a7ec7c-273e-4675-8d8d-21ab8514a1f0","savedPayload":{"position":{"x":17895.458263866083,"y":32502.117186545547},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Deribit","config":"{ \n\"codeName\": \"deribit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f0b2354b-89e3-4eca-b051-664a3b8283f6","savedPayload":{"position":{"x":17862.64382962515,"y":30844.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4ae1f824-82a8-4796-a2d5-3d2358d8089f","savedPayload":{"position":{"x":17912.64382962515,"y":31024.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2013fe7a-d52c-4c9d-ba53-d281d014a8fc","savedPayload":{"position":{"x":17873.64382962515,"y":30926.23747069523},"targetPosition":{"x":17855.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"706d5778-ed21-49bd-9277-1840ec52708d","savedPayload":{"position":{"x":17729.64382962515,"y":31033.23747069523},"targetPosition":{"x":17813.64382962515,"y":31053.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2e76bc02-6e10-4f14-9bf1-a11dc4268466","savedPayload":{"position":{"x":17813.64382962515,"y":31053.23747069523},"targetPosition":{"x":17855.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"89a3ccc7-20ab-4e2d-929b-52d9286179b7","savedPayload":{"position":{"x":17855.64382962515,"y":30967.23747069523},"targetPosition":{"x":17818.64382962515,"y":30920.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5c8219e3-4509-4b8b-941b-b88ac2c12237","savedPayload":{"position":{"x":17818.64382962515,"y":30920.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"21971815-4248-45df-8e04-20b9a5a83f06","savedPayload":{"position":{"x":17794.92544989493,"y":32419.801715882462},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"DigiFinex","config":"{ \n\"codeName\": \"digifinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e583c93e-9a44-4e0d-acb7-56d7e00a555a","savedPayload":{"position":{"x":17954.64382962515,"y":30992.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8917c7c0-b420-4d4f-a35a-c0fc6870f0de","savedPayload":{"position":{"x":18052.64382962515,"y":30972.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a00b5bb0-5ab9-42e2-91fe-b450c7eb66d2","savedPayload":{"position":{"x":18220.64382962515,"y":31090.23747069523},"targetPosition":{"x":18123.64382962515,"y":30998.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2aafc473-339b-4d23-9b74-06fa7574c293","savedPayload":{"position":{"x":18144.64382962515,"y":31123.23747069523},"targetPosition":{"x":18203.64382962515,"y":31084.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"99e9e136-1ac7-4400-a100-0a2d37f0882d","savedPayload":{"position":{"x":18203.64382962515,"y":31084.23747069523},"targetPosition":{"x":18123.64382962515,"y":30998.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b7cee21b-ddcb-4fd7-b610-43aabb2d1766","savedPayload":{"position":{"x":18123.64382962515,"y":30998.23747069523},"targetPosition":{"x":18032.64382962515,"y":30976.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08e84a25-4368-4ad6-939f-5a16cece62cc","savedPayload":{"position":{"x":18032.64382962515,"y":30976.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b7d56781-0c51-4ec1-95fd-bf4dc8c00352","savedPayload":{"position":{"x":17703.88183147586,"y":32327.0992728693},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"DSX","config":"{ \n\"codeName\": \"dsx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"d672ab56-cd32-4ff5-8fc5-3733262aeccb","savedPayload":{"position":{"x":17916.64382962515,"y":31106.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3731a7b5-ba9d-483e-bb41-abf3ae0232c6","savedPayload":{"position":{"x":17878.64382962515,"y":30946.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9ef7e0ac-dc27-4b47-a06e-0cb7e80ee3d7","savedPayload":{"position":{"x":18124.64382962515,"y":31136.23747069523},"targetPosition":{"x":18093.64382962515,"y":31072.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"77491a3c-3db7-446f-aa67-9b5a1a3be7b3","savedPayload":{"position":{"x":18109.64382962515,"y":31081.23747069523},"targetPosition":{"x":18188.64382962515,"y":31137.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"bd1bd0b7-4943-4aeb-bf90-d3192dcabbb1","savedPayload":{"position":{"x":18188.64382962515,"y":31137.23747069523},"targetPosition":{"x":18093.64382962515,"y":31072.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45747fef-f30e-4fae-b02d-5768ae7dbe68","savedPayload":{"position":{"x":18093.64382962515,"y":31072.23747069523},"targetPosition":{"x":18018.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa2e1c9b-428c-4bb0-9e75-ceb8c9043d4b","savedPayload":{"position":{"x":18018.64382962515,"y":31005.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4c543abc-7372-4701-bc58-107578d45c25","savedPayload":{"position":{"x":17623.394811792878,"y":32225.09670889175},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FCoin","config":"{ \n\"codeName\": \"fcoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"a97d578c-6d7f-403c-8294-18aacf14abd8","savedPayload":{"position":{"x":17893.64382962515,"y":30953.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"442c3834-482e-4928-9255-8ac859ae012e","savedPayload":{"position":{"x":17905.64382962515,"y":30896.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"79754959-1219-4c4d-be63-22766158beb5","savedPayload":{"position":{"x":18106.64382962515,"y":30976.23747069523},"targetPosition":{"x":18069.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"1c3ae096-5024-43c3-abca-24498254e363","savedPayload":{"position":{"x":18112.64382962515,"y":30919.23747069523},"targetPosition":{"x":18126.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"59db5bfd-e413-48a7-af63-237ad56adc82","savedPayload":{"position":{"x":18126.64382962515,"y":30965.23747069523},"targetPosition":{"x":18069.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"833c4e54-08f4-48ec-b90a-2767eb55f244","savedPayload":{"position":{"x":18069.64382962515,"y":31056.23747069523},"targetPosition":{"x":17996.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a8cf17b3-0ea7-4a14-8c76-f655344b58a3","savedPayload":{"position":{"x":17996.64382962515,"y":30970.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6ddedcbd-07cb-4928-91b3-348f47118391","savedPayload":{"position":{"x":17554.408027561767,"y":32114.989910750606},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FCoinJP","config":"{ \n\"codeName\": \"fcoinjp\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"4a8a9810-6df6-451a-ab26-22bd7e7be85a","savedPayload":{"position":{"x":17930.64382962515,"y":31129.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"138ab40c-18ca-4a11-9709-0baa040873e6","savedPayload":{"position":{"x":18007.64382962515,"y":31122.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"258cdf92-8ed0-4133-ae2a-b9f086f56a13","savedPayload":{"position":{"x":17897.64382962515,"y":30887.23747069523},"targetPosition":{"x":17903.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"537e8f0c-05ca-4403-bc96-da6c2f4678ae","savedPayload":{"position":{"x":17825.64382962515,"y":30842.23747069523},"targetPosition":{"x":17836.64382962515,"y":30926.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"62519e63-8f4e-4b72-a341-0a6eea01ac3f","savedPayload":{"position":{"x":17836.64382962515,"y":30926.23747069523},"targetPosition":{"x":17903.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4974cc1-f594-436b-8aa4-aff2733b8e3c","savedPayload":{"position":{"x":17903.64382962515,"y":30977.23747069523},"targetPosition":{"x":17873.64382962515,"y":31061.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d84b404f-75e2-4eb5-b34a-b45af8a57ca7","savedPayload":{"position":{"x":17873.64382962515,"y":31061.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"982627ea-df84-4ba9-9219-612fbe1e4276","savedPayload":{"position":{"x":17497.730285752426,"y":31998.069779982467},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FTX","config":"{ \n\"codeName\": \"ftx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"20c0a4f5-bdb9-46cc-af7e-2111964551e3","savedPayload":{"position":{"x":17886.64382962515,"y":30940.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"75c99a0b-d3c9-4073-9283-d33e539c36bb","savedPayload":{"position":{"x":17992.64382962515,"y":31061.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2e037470-549e-4aa8-bbe7-95cdeaef88ea","savedPayload":{"position":{"x":17964.64382962515,"y":31027.23747069523},"targetPosition":{"x":17970.64382962515,"y":31008.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"3b6f5b7b-9c61-4b71-b29a-ca1bc027e55f","savedPayload":{"position":{"x":17817.64382962515,"y":30943.23747069523},"targetPosition":{"x":17890.64382962515,"y":30978.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"a84010f0-04b5-4eab-a3a6-a5944b80a373","savedPayload":{"position":{"x":17890.64382962515,"y":30978.23747069523},"targetPosition":{"x":17970.64382962515,"y":31008.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5cdc51a3-6136-4e03-9e2c-26a752140d17","savedPayload":{"position":{"x":17970.64382962515,"y":31008.23747069523},"targetPosition":{"x":18010.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"55258a2b-3199-4070-beed-d34a8496870c","savedPayload":{"position":{"x":18010.64382962515,"y":30986.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0c0bcf5c-2774-423e-9fcf-c512b38dd06d","savedPayload":{"position":{"x":17454.026081066615,"y":31875.707098219504},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Gate.io","config":"{ \n\"codeName\": \"gateio\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"71a15089-9d40-4726-9a41-37d406064164","savedPayload":{"position":{"x":17930.64382962515,"y":30993.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c025e976-c2c6-49de-81ec-48e2f737b412","savedPayload":{"position":{"x":17925.64382962515,"y":31053.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"876f964a-e12d-4438-87fb-a84be22f86d1","savedPayload":{"position":{"x":17914.64382962515,"y":30833.23747069523},"targetPosition":{"x":17827.64382962515,"y":30882.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0c5d34c4-467f-4e98-bd39-1b2d9afb834e","savedPayload":{"position":{"x":17852.64382962515,"y":30831.23747069523},"targetPosition":{"x":17870.64382962515,"y":30847.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"89316d8c-893a-46ae-b147-948b4b8a5292","savedPayload":{"position":{"x":17870.64382962515,"y":30847.23747069523},"targetPosition":{"x":17827.64382962515,"y":30882.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a2a5de53-bd45-4904-8bae-0cf5ed66d2af","savedPayload":{"position":{"x":17827.64382962515,"y":30882.23747069523},"targetPosition":{"x":17800.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f6f4072d-8cf6-4e47-8b4e-a21cd553348a","savedPayload":{"position":{"x":17800.64382962515,"y":30936.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c4028289-4cdb-4da0-90e6-5f93328b8e03","savedPayload":{"position":{"x":17423.807805345143,"y":31749.336456028108},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Gemini","config":"{ \n\"codeName\": \"gemini\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9eb15872-8d15-4086-9920-46909eb5f9e7","savedPayload":{"position":{"x":17951.64382962515,"y":30901.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"a84dcf06-57c6-47d7-97a0-9f03f3af8b34","savedPayload":{"position":{"x":18045.64382962515,"y":30891.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5da1ba65-3839-4664-8105-2ccb11652767","savedPayload":{"position":{"x":18028.64382962515,"y":31112.23747069523},"targetPosition":{"x":17941.64382962515,"y":31044.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"337fe5e2-b9fd-40eb-9f42-44fc5057d981","savedPayload":{"position":{"x":17957.64382962515,"y":31129.23747069523},"targetPosition":{"x":17875.64382962515,"y":31086.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"17a3f4a3-8914-4995-afb0-7e8115791b17","savedPayload":{"position":{"x":17875.64382962515,"y":31086.23747069523},"targetPosition":{"x":17941.64382962515,"y":31044.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"32e4a3f1-40d8-421f-9634-7ab339858286","savedPayload":{"position":{"x":17941.64382962515,"y":31044.23747069523},"targetPosition":{"x":17877.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"365f6865-e707-415d-a168-b67c66ca9553","savedPayload":{"position":{"x":17877.64382962515,"y":30977.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"58bf8247-baef-4ea6-a483-7ed8f0ba5043","savedPayload":{"position":{"x":17407.429740242005,"y":31620.439433646203},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"HitBTC","config":"{ \n\"codeName\": \"hitbtc\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"1632c520-fa79-442f-b33b-430cb1356de6","savedPayload":{"position":{"x":17809.64382962515,"y":31086.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"576d1666-dbd3-4914-9fe2-fa05bdf72eea","savedPayload":{"position":{"x":17840.64382962515,"y":31148.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"41317aae-08ce-48cf-a47b-c2d2cc3920ec","savedPayload":{"position":{"x":18096.64382962515,"y":30975.23747069523},"targetPosition":{"x":18026.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"23d7e4ba-8432-4214-bd94-0db5046e39cd","savedPayload":{"position":{"x":18039.64382962515,"y":31075.23747069523},"targetPosition":{"x":17981.64382962515,"y":31126.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ab200349-5ba5-44d2-ad5c-fa826303cfcd","savedPayload":{"position":{"x":17981.64382962515,"y":31126.23747069523},"targetPosition":{"x":18026.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a5f24785-5b2c-429b-a2e4-07063e2de904","savedPayload":{"position":{"x":18026.64382962515,"y":31066.23747069523},"targetPosition":{"x":17972.64382962515,"y":31093.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13f275ca-06a6-4a72-8b4d-a9c079b9cef4","savedPayload":{"position":{"x":17972.64382962515,"y":31093.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8384fa0b-854c-4c23-846e-a5da0179a738","savedPayload":{"position":{"x":17405.083903595932,"y":31490.527230809537},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"HitBTC","config":"{ \n\"codeName\": \"hitbtc2\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9a29cb9e-ee8d-4315-8532-eef82224b84a","savedPayload":{"position":{"x":17838.64382962515,"y":30922.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"badd79e7-1e21-4dc3-bfa7-8dfb4a6c6267","savedPayload":{"position":{"x":17920.64382962515,"y":30944.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"ffdda0b7-af50-4010-84da-2bc0d562af2b","savedPayload":{"position":{"x":17887.64382962515,"y":30982.23747069523},"targetPosition":{"x":17836.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"24816eed-adf7-453e-9b38-42ea4758dbaa","savedPayload":{"position":{"x":18021.64382962515,"y":30979.23747069523},"targetPosition":{"x":17931.64382962515,"y":30923.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"1dd16858-5641-4454-88a3-e5d7446e12a3","savedPayload":{"position":{"x":17931.64382962515,"y":30923.23747069523},"targetPosition":{"x":17836.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"457d75ed-ad21-4ee5-b36b-88cdc444008e","savedPayload":{"position":{"x":17836.64382962515,"y":31023.23747069523},"targetPosition":{"x":17808.64382962515,"y":31039.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b29ded7e-e2d5-4c7f-89af-b0816c32c743","savedPayload":{"position":{"x":17808.64382962515,"y":31039.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"09c634c2-5aba-49c5-80bc-4fd4175e7f0c","savedPayload":{"position":{"x":17416.79779819678,"y":31361.12294931652},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Huobi Pro","config":"{ \n\"codeName\": \"huobipro\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"86caa38c-5bdf-40e4-b27b-8d8b64319575","savedPayload":{"position":{"x":18071.64382962515,"y":31171.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"001225af-c715-4566-9502-f8f0ac1c4531","savedPayload":{"position":{"x":18040.64382962515,"y":31019.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"b4bf5ccb-b529-4500-a192-d9c3a0613389","savedPayload":{"position":{"x":18129.64382962515,"y":31073.23747069523},"targetPosition":{"x":18033.64382962515,"y":31090.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2e58c6d1-cfa7-4dc7-a322-e9356596ea1e","savedPayload":{"position":{"x":17976.64382962515,"y":31132.23747069523},"targetPosition":{"x":17953.64382962515,"y":31093.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae04ddf4-ae3e-4bdc-9393-41acc38ef818","savedPayload":{"position":{"x":17953.64382962515,"y":31093.23747069523},"targetPosition":{"x":18033.64382962515,"y":31090.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2428e8ef-6a09-48fa-8ae4-ebfb28420be8","savedPayload":{"position":{"x":18033.64382962515,"y":31090.23747069523},"targetPosition":{"x":18085.64382962515,"y":31157.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"55c71c8b-f21f-4d16-ae93-e29362c39bf5","savedPayload":{"position":{"x":18085.64382962515,"y":31157.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"967c3914-a76d-4389-9c7e-9c258ae683bd","savedPayload":{"position":{"x":17442.43408934047,"y":31233.743736052187},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Huobi Russia","config":"{ \n\"codeName\": \"huobiru\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9b7b32d6-a42e-44bb-8065-5aa32b1e844b","savedPayload":{"position":{"x":17980.64382962515,"y":31034.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8d74201c-33cd-4e12-8920-b08d0ef97572","savedPayload":{"position":{"x":17992.64382962515,"y":31105.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c6e289d7-074b-4837-96e3-687988886fcc","savedPayload":{"position":{"x":18078.64382962515,"y":30954.23747069523},"targetPosition":{"x":18008.64382962515,"y":31029.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d72f81ba-6b41-414d-9cf0-d5f9c0c25403","savedPayload":{"position":{"x":18026.64382962515,"y":31021.23747069523},"targetPosition":{"x":18083.64382962515,"y":31117.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5354f66c-6e73-4fe5-80ca-2c25b761ef51","savedPayload":{"position":{"x":18083.64382962515,"y":31117.23747069523},"targetPosition":{"x":18008.64382962515,"y":31029.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"81f5adbb-054c-47f2-b019-52585f5d7417","savedPayload":{"position":{"x":18008.64382962515,"y":31029.23747069523},"targetPosition":{"x":18018.64382962515,"y":31009.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ecd8645b-4bb6-4641-a20f-cee51bf33f1a","savedPayload":{"position":{"x":18018.64382962515,"y":31009.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6f97bb5c-8d85-43ee-86a1-33e22cdfbb5e","savedPayload":{"position":{"x":17481.692214952825,"y":31109.882995828142},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"KKEX","config":"{ \n\"codeName\": \"kkex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"daa4e07a-1cd8-4d92-8004-2eabfaa62f77","savedPayload":{"position":{"x":17924.64382962515,"y":31038.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"cb64951f-d984-4f51-a751-166a316084f3","savedPayload":{"position":{"x":17945.64382962515,"y":31156.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6915bf12-9271-47e2-8b49-924ae9f5c65f","savedPayload":{"position":{"x":17958.64382962515,"y":31297.23747069523},"targetPosition":{"x":17875.64382962515,"y":31252.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"ff53381f-c6dd-4d17-a477-11396f60663f","savedPayload":{"position":{"x":17805.64382962515,"y":31141.23747069523},"targetPosition":{"x":17861.64382962515,"y":31223.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae05bfc4-6ac8-408c-a90b-263830b2a71e","savedPayload":{"position":{"x":17861.64382962515,"y":31223.23747069523},"targetPosition":{"x":17875.64382962515,"y":31252.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61c85f1a-a2a6-45c9-bb1e-3c76110f5d1e","savedPayload":{"position":{"x":17875.64382962515,"y":31252.23747069523},"targetPosition":{"x":17911.64382962515,"y":31154.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fafb114-37d2-4d04-9c42-83d04ff62fc7","savedPayload":{"position":{"x":17911.64382962515,"y":31154.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"16ae95ce-796f-4f2b-942c-f98dcbf9cf4b","savedPayload":{"position":{"x":17534.11190940509,"y":30990.99288257655},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Kraken","config":"{ \n\"codeName\": \"kraken\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"747af60f-c8b9-4377-aa6c-172d4137ea23","savedPayload":{"position":{"x":17854.64382962515,"y":31008.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c75f7d97-9dc2-4d3e-89eb-f8a3d5f16368","savedPayload":{"position":{"x":17916.64382962515,"y":30872.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"0093e946-03f4-4aec-942d-c76aed12ab1a","savedPayload":{"position":{"x":17780.64382962515,"y":31091.23747069523},"targetPosition":{"x":17836.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2a4235ac-e5ea-4484-bccd-f06c8a7275ec","savedPayload":{"position":{"x":17930.64382962515,"y":30869.23747069523},"targetPosition":{"x":17883.64382962515,"y":30953.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"737dec0a-23ab-4044-94ba-95c8bc50c0eb","savedPayload":{"position":{"x":17883.64382962515,"y":30953.23747069523},"targetPosition":{"x":17836.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"457b045e-dae5-4f53-a8b7-cab4757e5286","savedPayload":{"position":{"x":17836.64382962515,"y":31011.23747069523},"targetPosition":{"x":17926.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6eff12db-8e7c-402a-9e06-ae2618f506a0","savedPayload":{"position":{"x":17926.64382962515,"y":31005.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"644efe9c-597a-4ddf-9e28-b33fb3b62d3e","savedPayload":{"position":{"x":17599.078599707587,"y":30878.467274173025},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"KuCoin","config":"{ \n\"codeName\": \"kucoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"01ca3037-4ed3-499e-ad6b-e14ca1d4a51f","savedPayload":{"position":{"x":17919.64382962515,"y":30949.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8b3c4ce0-98b1-4d46-bd02-6cf44c3dd686","savedPayload":{"position":{"x":17998.64382962515,"y":30978.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d6c7c0ef-670d-4ed6-9246-6eb7d6bfc359","savedPayload":{"position":{"x":17927.64382962515,"y":30962.23747069523},"targetPosition":{"x":17953.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e8c2c454-b246-4f63-b51b-74d9cbb01ac2","savedPayload":{"position":{"x":17927.64382962515,"y":30924.23747069523},"targetPosition":{"x":17912.64382962515,"y":30869.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"d2bb2603-3b52-443c-8923-86fefafc0b14","savedPayload":{"position":{"x":17912.64382962515,"y":30869.23747069523},"targetPosition":{"x":17953.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fa83b0b9-1039-4406-907c-f809a5af40f5","savedPayload":{"position":{"x":17953.64382962515,"y":30954.23747069523},"targetPosition":{"x":17966.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"471161d3-201e-40c6-b433-49643cf7e43b","savedPayload":{"position":{"x":17966.64382962515,"y":30962.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d79bc720-68e1-4771-a66a-bcffa30639d3","savedPayload":{"position":{"x":17675.830610816145,"y":30773.625430492953},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"LBank","config":"{ \n\"codeName\": \"lbank\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"def3f9d0-f09e-4e09-8b6d-a4c322a4384b","savedPayload":{"position":{"x":17877.64382962515,"y":31024.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"53eac3c1-96d6-4cb1-b54d-f3f174eaf733","savedPayload":{"position":{"x":17764.64382962515,"y":31036.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c6c00704-1357-4426-910e-8134d6f87017","savedPayload":{"position":{"x":18030.64382962515,"y":31212.23747069523},"targetPosition":{"x":17951.64382962515,"y":31172.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"13990604-2192-4be1-b21b-53cf2bafc002","savedPayload":{"position":{"x":17893.64382962515,"y":31189.23747069523},"targetPosition":{"x":17964.64382962515,"y":31122.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ed2c483e-d412-406d-b6f3-cfb1112a3a05","savedPayload":{"position":{"x":17964.64382962515,"y":31122.23747069523},"targetPosition":{"x":17951.64382962515,"y":31172.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6033b63c-c7fe-4a5d-8cf6-82128e2cfb41","savedPayload":{"position":{"x":17951.64382962515,"y":31172.23747069523},"targetPosition":{"x":17891.64382962515,"y":31096.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20ece5c4-dbfa-4f4a-a9ee-8c8d9c38943b","savedPayload":{"position":{"x":17891.64382962515,"y":31096.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cb2558d6-dab0-4f35-b83f-7cfc161b3d4f","savedPayload":{"position":{"x":17763.468095575536,"y":30677.69652629567},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Mercado Bitcoin","config":"{ \n\"codeName\": \"mercado\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"83ab2c39-e844-496f-bebb-7b8607428902","savedPayload":{"position":{"x":17849.64382962515,"y":31081.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d69e722e-c71a-462a-8bbd-d3482d0eab21","savedPayload":{"position":{"x":17771.64382962515,"y":30887.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"18438709-83cf-49a3-96b8-888ab5adbcc5","savedPayload":{"position":{"x":17937.64382962515,"y":31080.23747069523},"targetPosition":{"x":17866.64382962515,"y":31013.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"6b9d4ed4-af81-462a-aace-fac0afd4687a","savedPayload":{"position":{"x":17787.64382962515,"y":30841.23747069523},"targetPosition":{"x":17873.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"802a4c53-8617-4257-95a5-45bfaa60ad0e","savedPayload":{"position":{"x":17873.64382962515,"y":30935.23747069523},"targetPosition":{"x":17866.64382962515,"y":31013.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"87936a4a-aac5-4aca-8f3e-2051611932c4","savedPayload":{"position":{"x":17866.64382962515,"y":31013.23747069523},"targetPosition":{"x":17829.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"48f3a793-bb97-447b-8f1a-1d6965219747","savedPayload":{"position":{"x":17829.64382962515,"y":30919.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5002072e-145c-4aeb-a611-3e0e4c60ee5d","savedPayload":{"position":{"x":17860.963584604677,"y":30591.805240274254},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKCoin","config":"{ \n\"codeName\": \"okcoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"1e4dd5c8-0545-4698-8695-c985880243a3","savedPayload":{"position":{"x":17921.64382962515,"y":31043.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0e188cae-9764-4963-a78b-e5d7ef272522","savedPayload":{"position":{"x":18005.64382962515,"y":30891.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6d82bfd7-b4e1-4f93-a0f8-18f62cee944e","savedPayload":{"position":{"x":18047.64382962515,"y":30877.23747069523},"targetPosition":{"x":17963.64382962515,"y":30898.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d815409c-1dd4-4e89-b844-5b96104509b4","savedPayload":{"position":{"x":17958.64382962515,"y":30988.23747069523},"targetPosition":{"x":17945.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"238b9d2c-e2c0-4a77-945e-8e28604c0a2d","savedPayload":{"position":{"x":17945.64382962515,"y":30961.23747069523},"targetPosition":{"x":17963.64382962515,"y":30898.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8416c29a-5d73-4b2a-9463-511f400deafb","savedPayload":{"position":{"x":17963.64382962515,"y":30898.23747069523},"targetPosition":{"x":18047.64382962515,"y":30885.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04abf32b-084e-4784-aa84-8c5612d3b7b9","savedPayload":{"position":{"x":18047.64382962515,"y":30885.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1f860b4b-2893-4a51-8649-19c47d494a37","savedPayload":{"position":{"x":17967.17403243568,"y":30516.958569226157},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKEX","config":"{ \n\"codeName\": \"okex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"7f618566-3d10-4c3c-90b2-7541a5146eeb","savedPayload":{"position":{"x":17770.64382962515,"y":31094.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"21205576-5d12-452c-814f-eb56182162ae","savedPayload":{"position":{"x":17794.64382962515,"y":31173.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"46456247-ae9c-41ea-8395-a5e4a78007d4","savedPayload":{"position":{"x":17724.64382962515,"y":31147.23747069523},"targetPosition":{"x":17795.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"706bf601-eaad-48bd-b0a7-8dad59066171","savedPayload":{"position":{"x":17715.64382962515,"y":31182.23747069523},"targetPosition":{"x":17706.64382962515,"y":31162.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"f9c7071c-2e5b-4c90-b482-dfc7ee001244","savedPayload":{"position":{"x":17706.64382962515,"y":31162.23747069523},"targetPosition":{"x":17795.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e87e1e10-3404-48b9-8629-5df92ffa1979","savedPayload":{"position":{"x":17795.64382962515,"y":31083.23747069523},"targetPosition":{"x":17789.64382962515,"y":31181.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08e8fd6a-6b23-4d65-8b8e-d966f845c07f","savedPayload":{"position":{"x":17789.64382962515,"y":31181.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"aa0edec0-8b27-4f94-abce-1e437ce5aba6","savedPayload":{"position":{"x":18080.854218676865,"y":30454.034021936455},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"RightBTC","config":"{ \n\"codeName\": \"rightbtc\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"ade372e9-5070-4fa9-843e-57732c4106c3","savedPayload":{"position":{"x":17999.64382962515,"y":30964.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b63d440e-4501-475c-b8a6-2b9a144e32a1","savedPayload":{"position":{"x":17984.64382962515,"y":30901.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"81d77477-4f2e-43c0-b284-dde54f91c37f","savedPayload":{"position":{"x":17864.64382962515,"y":31036.23747069523},"targetPosition":{"x":17861.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"9ce3cc34-1ba4-4155-96a5-c946b1bcc5ab","savedPayload":{"position":{"x":17819.64382962515,"y":31127.23747069523},"targetPosition":{"x":17810.64382962515,"y":31080.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c7df4af7-37c1-403d-ada1-b6a527821bdd","savedPayload":{"position":{"x":17810.64382962515,"y":31080.23747069523},"targetPosition":{"x":17861.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6de19501-5ce7-4944-b9dd-25b149acbb38","savedPayload":{"position":{"x":17861.64382962515,"y":31043.23747069523},"targetPosition":{"x":17946.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa87ace4-a976-401c-93f9-24a498261742","savedPayload":{"position":{"x":17946.64382962515,"y":30988.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c20cd9e1-52a0-4d17-b90c-e9d5b63315ce","savedPayload":{"position":{"x":18200.67134708334,"y":30403.76933118965},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"STEX","config":"{ \n\"codeName\": \"stex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f1d65161-4922-4a1e-ac98-df1a842347a7","savedPayload":{"position":{"x":17872.64382962515,"y":31001.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c313b2c6-6154-4a9a-b826-fd99cc500cd9","savedPayload":{"position":{"x":17888.64382962515,"y":31186.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d0a1259b-1c37-4d39-836e-3c434c3b3687","savedPayload":{"position":{"x":17778.64382962515,"y":31076.23747069523},"targetPosition":{"x":17858.64382962515,"y":31091.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"4a1e5627-459c-4dec-be13-c20d4a9ea58f","savedPayload":{"position":{"x":17841.64382962515,"y":31179.23747069523},"targetPosition":{"x":17795.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"6981eb0d-0f0e-4f8e-9781-4a03e22e93fd","savedPayload":{"position":{"x":17795.64382962515,"y":31105.23747069523},"targetPosition":{"x":17858.64382962515,"y":31091.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7704478a-9717-43a8-bd2e-88daa6f84bd0","savedPayload":{"position":{"x":17858.64382962515,"y":31091.23747069523},"targetPosition":{"x":17941.64382962515,"y":31173.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"262aad86-f430-49ea-a636-e8bd816a9636","savedPayload":{"position":{"x":17941.64382962515,"y":31173.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0ea23137-3c65-4de1-9772-6ac1b65196e8","savedPayload":{"position":{"x":18325.220671374373,"y":30366.753804527314},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TideBit","config":"{ \n\"codeName\": \"tidebit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c92318bd-8b2d-489b-b8e8-cf30fb63286e","savedPayload":{"position":{"x":17981.64382962515,"y":31021.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"83bca3ec-fc1c-435c-b5fe-b1cf92463fd1","savedPayload":{"position":{"x":18051.64382962515,"y":31072.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2f3ee9b2-cd41-458c-84da-edac3155028a","savedPayload":{"position":{"x":18075.64382962515,"y":31059.23747069523},"targetPosition":{"x":17987.64382962515,"y":31047.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"009ae4b6-adbc-4900-9fc0-f18936eeed9b","savedPayload":{"position":{"x":18030.64382962515,"y":31058.23747069523},"targetPosition":{"x":18009.64382962515,"y":31028.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"3ee88180-fe10-41df-8251-b1ed0a526e7a","savedPayload":{"position":{"x":18009.64382962515,"y":31028.23747069523},"targetPosition":{"x":17987.64382962515,"y":31047.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bb88e6e8-a99a-4c4e-9ca5-ffed49aa8b54","savedPayload":{"position":{"x":17987.64382962515,"y":31047.23747069523},"targetPosition":{"x":17925.64382962515,"y":31135.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13a4a95e-4333-4455-9f7c-90bc839d174a","savedPayload":{"position":{"x":17925.64382962515,"y":31135.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5563c310-701a-4c1e-8155-87c08c927ce3","savedPayload":{"position":{"x":18453.041964599197,"y":30343.421415155935},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TimeX","config":"{ \n\"codeName\": \"timex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"5c004b5f-eec4-414f-8d01-d9b3fddeee9e","savedPayload":{"position":{"x":17892.64382962515,"y":30973.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"59a33add-d0e9-4ae1-8a01-f1e0ed09cb61","savedPayload":{"position":{"x":17911.64382962515,"y":30878.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a4189ba1-d1d4-4ff8-91dd-a8696ca493e3","savedPayload":{"position":{"x":17953.64382962515,"y":30880.23747069523},"targetPosition":{"x":17924.64382962515,"y":30871.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"3d34eb9d-e7cb-42fe-8785-c327b2bbc529","savedPayload":{"position":{"x":17839.64382962515,"y":30875.23747069523},"targetPosition":{"x":17930.64382962515,"y":30877.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"773de01f-0999-4a59-91f0-642148cd58d0","savedPayload":{"position":{"x":17930.64382962515,"y":30877.23747069523},"targetPosition":{"x":17924.64382962515,"y":30871.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fe33a596-4f98-4843-a5b1-26e7e0fcf1c8","savedPayload":{"position":{"x":17924.64382962515,"y":30871.23747069523},"targetPosition":{"x":18018.64382962515,"y":30832.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d078b9a3-cdc6-458e-a511-dc4f5bef38ba","savedPayload":{"position":{"x":18018.64382962515,"y":30832.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"27d69fa7-b561-4986-8c0d-1b374e7e1bf1","savedPayload":{"position":{"x":18582.63663896287,"y":30334.045714007894},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TOP.Q","config":"{ \n\"codeName\": \"topq\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"eafef6a3-eed2-470e-a15c-aa4c10001cd2","savedPayload":{"position":{"x":17818.64382962515,"y":31115.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"2d5eb813-ceb6-40cd-8682-7205596bb8b5","savedPayload":{"position":{"x":17759.64382962515,"y":31188.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"61f7832c-c1f0-40bc-b1f2-ba947c58309d","savedPayload":{"position":{"x":17741.64382962515,"y":31288.23747069523},"targetPosition":{"x":17788.64382962515,"y":31228.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"63b973da-30a7-467a-b954-c57537aab18d","savedPayload":{"position":{"x":17677.64382962515,"y":31206.23747069523},"targetPosition":{"x":17756.64382962515,"y":31146.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"722dcf44-de3f-4d1a-8655-80561e1e4d55","savedPayload":{"position":{"x":17756.64382962515,"y":31146.23747069523},"targetPosition":{"x":17788.64382962515,"y":31228.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45d5e04a-4a53-4f32-b4c0-d882456cb263","savedPayload":{"position":{"x":17788.64382962515,"y":31228.23747069523},"targetPosition":{"x":17806.64382962515,"y":31163.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c66e8dfc-4847-4180-b82c-36458f9b405d","savedPayload":{"position":{"x":17806.64382962515,"y":31163.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8fdf13d8-e8d2-4ef4-8b34-f492a25d753a","savedPayload":{"position":{"x":18712.485315398026,"y":30338.736622606855},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Upbit","config":"{ \n\"codeName\": \"upbit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f456fec2-cee6-4f0c-b865-1188088879c9","savedPayload":{"position":{"x":17919.64382962515,"y":30973.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"947c1ca0-bff9-4372-b153-40054e29b705","savedPayload":{"position":{"x":17921.64382962515,"y":31014.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"34ffbe12-5a26-446a-8bf6-7395c0370ba2","savedPayload":{"position":{"x":17874.64382962515,"y":30900.23747069523},"targetPosition":{"x":17945.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"8f00f19d-74a8-48d8-b951-79f35e87b110","savedPayload":{"position":{"x":17906.64382962515,"y":30902.23747069523},"targetPosition":{"x":17896.64382962515,"y":30896.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"64e1bede-aabf-4831-83a6-fe1cea435613","savedPayload":{"position":{"x":17896.64382962515,"y":30896.23747069523},"targetPosition":{"x":17945.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7c80b956-f2ca-4a6f-a661-f17546288d3e","savedPayload":{"position":{"x":17945.64382962515,"y":30971.23747069523},"targetPosition":{"x":18027.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e3686b02-4ecc-4dcb-a311-b7ef542a3c37","savedPayload":{"position":{"x":18027.64382962515,"y":31048.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"74e57ecd-3394-42b4-b2c4-6f216f7e41db","savedPayload":{"position":{"x":18841.065636895226,"y":30357.439144338445},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"WhiteBit","config":"{ \n\"codeName\": \"whitebit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c16eae45-a568-4b2e-b064-4431bdf34c24","savedPayload":{"position":{"x":17767.64382962515,"y":30899.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"dfdf793f-4ba6-4215-a325-323c0f223553","savedPayload":{"position":{"x":17920.64382962515,"y":31004.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"fd749d13-dbac-493f-9af6-c521eddf909f","savedPayload":{"position":{"x":17815.64382962515,"y":30973.23747069523},"targetPosition":{"x":17720.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"79f7d2d0-77a5-4f38-ac68-fd11f18e5e6b","savedPayload":{"position":{"x":17761.64382962515,"y":31182.23747069523},"targetPosition":{"x":17680.64382962515,"y":31153.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fd0506f4-58b7-431e-bc9d-69bce63c3379","savedPayload":{"position":{"x":17680.64382962515,"y":31153.23747069523},"targetPosition":{"x":17720.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"47e8a4b1-9a6c-4555-a881-f7524183d72e","savedPayload":{"position":{"x":17720.64382962515,"y":31056.23747069523},"targetPosition":{"x":17817.64382962515,"y":31010.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7fa08b91-55ab-477d-a097-88ea7f25fb76","savedPayload":{"position":{"x":17817.64382962515,"y":31010.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"467ece1e-d1d0-4a11-ae7a-d0e22cd4eba5","savedPayload":{"position":{"x":18966.87011674703,"y":30389.934009235236},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"ZB","config":"{ \n\"codeName\": \"zb\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"db206cbd-a587-4e8e-acbe-6581ad3b5cc4","savedPayload":{"position":{"x":17855.64382962515,"y":31027.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"1dd658c5-7755-44b7-85f0-9bcd787762a0","savedPayload":{"position":{"x":17789.64382962515,"y":31044.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"0de82bbe-7909-4b65-b304-f59b41f618ae","savedPayload":{"position":{"x":17830.64382962515,"y":30696.23747069523},"targetPosition":{"x":17846.64382962515,"y":30793.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c89819d0-8880-4b36-a9b3-0b284d266e3b","savedPayload":{"position":{"x":17891.64382962515,"y":30748.23747069523},"targetPosition":{"x":17865.64382962515,"y":30772.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"7a55f503-17fa-45c4-880b-1a9a11a0a555","savedPayload":{"position":{"x":17865.64382962515,"y":30772.23747069523},"targetPosition":{"x":17846.64382962515,"y":30793.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e640fca2-8bab-45ff-9a47-8e7b9650c277","savedPayload":{"position":{"x":17846.64382962515,"y":30793.23747069523},"targetPosition":{"x":17909.64382962515,"y":30886.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"421a99cd-3d9a-46a5-8654-08d6336e75be","savedPayload":{"position":{"x":17909.64382962515,"y":30886.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07df07e8-39a8-4fbc-a0c8-150f20b6ac59","savedPayload":{"position":{"x":19088.423812451314,"y":30435.840244716648},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51f64e29-e3ab-4683-a5de-f397fbf94260","savedPayload":{"position":{"x":18604.301618063546,"y":31533.850126685462},"targetPosition":{"x":18904.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Testing Queue","project":"Superalgos","exchanges":[],"id":"895ce4b1-4890-4216-89ba-a012181d2546","savedPayload":{"position":{"x":18754.301618063546,"y":30754.427263279467},"targetPosition":{"x":18904.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"signalsProviders":[],"id":"7217b56c-e854-4c06-8b8a-d5d3c05a153d","savedPayload":{"position":{"x":18904.301618063546,"y":31014.2348844148},"targetPosition":{"x":18904.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Charting Space","name":"New Charting Space","project":"Superalgos","viewport":{"type":"Viewport","name":"New Viewport","config":"{\"zoom\":\"1.40\"}","project":"Superalgos","id":"01713f1d-91b8-44f9-9c5d-a0c12fd09037","savedPayload":{"position":{"x":19200.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"frame":{"position":{"x":0,"y":40}}}},"projectDashboards":[{"type":"Project Dashboards","name":"Superalgos","project":"Superalgos","dashboards":[{"type":"Dashboard","name":"Testing Environment My Computer","project":"Superalgos","timeMachines":[{"type":"Time Machine","name":"WHB v2 Backtesting Session My Computer","config":"{}","project":"Superalgos","timeScale":{"type":"Time Scale","name":"New Time Scale","config":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-03-04T12:15:03.517Z\",\n \"toDate\": \"2020-03-16T22:08:40.266Z\"\n}","project":"Superalgos","id":"5192eaa2-8ea0-46b1-870f-b9429a00e993","savedPayload":{"position":{"x":18493.642520037345,"y":25732.78497574544},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","config":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 2976.596840823151,\n \"maxValue\": 11824.968140823152\n}","project":"Superalgos","id":"6e48a952-39da-466f-813d-b27da5599ea0","savedPayload":{"position":{"x":18403.412280129083,"y":25784.87942904552},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","config":"{\"value\":\"01-hs\"}","project":"Superalgos","id":"b26b5d49-6ee6-46c0-98d3-9940b99d2f40","savedPayload":{"position":{"x":18300.806237131383,"y":25802.971642809745},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Trading Engine","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading Engine","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Episode","project":"Superalgos","layers":[{"type":"Layer","name":"Episode Counters","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"fa813608-2b0a-48b2-910b-7ddaac756e16","savedPayload":{"position":{"x":18388.806237131383,"y":24893.048779403747},"targetPosition":{"x":18339.806237131383,"y":24930.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Counters","id":"dd0c8cb9-af86-43fc-a22e-2b1b408787d9"}}},{"type":"Layer","name":"Episode Statistics","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"b5af64e4-f6b0-43fb-9505-16f90deb554d","savedPayload":{"position":{"x":18320.806237131383,"y":24927.048779403747},"targetPosition":{"x":18339.806237131383,"y":24930.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Statistics","id":"5c98f3e9-72a7-4742-9315-50d6e4aaa452"}}},{"type":"Layer","name":"Episode Candle","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"6266fd8e-a5f5-4cfa-b8ba-ab722fce5235","savedPayload":{"position":{"x":18418.806237131383,"y":24984.048779403747},"targetPosition":{"x":18339.806237131383,"y":24930.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Candle","id":"b626d6f0-f929-457e-910b-dfb83c666deb"}}},{"type":"Layer","name":"Episode Balances","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"8bf67d64-0c44-4dbe-aa36-54f2cfcac9a7","savedPayload":{"position":{"x":18334.806237131383,"y":25014.048779403747},"targetPosition":{"x":18339.806237131383,"y":24930.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Balances","id":"3d2dee0f-a7df-463f-befe-5f6231ab7830"}}},{"type":"Layer","name":"Distance To Event","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"edb413d2-a9d3-4789-84c3-73d931d54a7c","savedPayload":{"position":{"x":18293.806237131383,"y":24964.048779403747},"targetPosition":{"x":18339.806237131383,"y":24930.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Distance To Event","id":"5699dc43-eb9a-4e42-aece-e9567924cac2"}}},{"type":"Layer","name":"Episode Base Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"40eb24d7-de06-40de-a366-b6282ce71c2b","savedPayload":{"position":{"x":18414.806237131383,"y":24919.048779403747},"targetPosition":{"x":18339.806237131383,"y":24930.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Base Asset","id":"7647e8ee-0ab7-41af-b153-099a334a362d"}}},{"type":"Layer","name":"Episode Quoted Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"42ff6f2d-3fe6-45eb-9030-4293c24226c4","savedPayload":{"position":{"x":18273.806237131383,"y":24942.048779403747},"targetPosition":{"x":18339.806237131383,"y":24930.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Quoted Asset","id":"00bf7f7c-9002-4923-8010-7125327f9128"}}},{"type":"Layer","name":"Current Episode","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"ab1ce152-2274-4b30-8d7d-7a965cafbf31","savedPayload":{"position":{"x":18343.806237131383,"y":24922.048779403747},"targetPosition":{"x":18339.806237131383,"y":24930.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Episode","id":"54b85d80-295a-4540-b726-f6f7cd17c6c9"}}}],"layerFolders":[],"id":"fe0d7201-2146-4833-ae77-cfadb7270673","savedPayload":{"position":{"x":18339.806237131383,"y":24930.048779403747},"targetPosition":{"x":18343.806237131383,"y":24999.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Strategy","project":"Superalgos","layers":[{"type":"Layer","name":"Current Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"d169d6ef-5565-426c-b8d7-147ed9c36e6e","savedPayload":{"position":{"x":18418.806237131383,"y":24823.048779403747},"targetPosition":{"x":18399.806237131383,"y":24919.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Strategy","id":"68fdae81-0371-428f-8495-a0fe100cbba8"}}},{"type":"Layer","name":"Last Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"0afe1dde-aa14-4bd5-aad6-8940d0f368ce","savedPayload":{"position":{"x":18329.806237131383,"y":24872.048779403747},"targetPosition":{"x":18399.806237131383,"y":24919.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Strategy","id":"51693a6b-7d84-4f20-bdee-1211f9bae6f9"}}}],"layerFolders":[],"id":"403e5d9f-65ec-40b8-ab0a-b0d63388815a","savedPayload":{"position":{"x":18399.806237131383,"y":24919.048779403747},"targetPosition":{"x":18343.806237131383,"y":24999.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Current Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"f1ad300d-2644-4c81-936c-fbf395c1a6bb","savedPayload":{"position":{"x":18339.806237131383,"y":25122.048779403747},"targetPosition":{"x":18409.806237131383,"y":25096.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Position","id":"80cb8779-8e2b-4c33-bd43-c696dbc4e5f6"}}},{"type":"Layer","name":"Last Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"61fe281f-e795-4e5d-bc56-ea4ccfdb0e81","savedPayload":{"position":{"x":18410.806237131383,"y":25145.048779403747},"targetPosition":{"x":18409.806237131383,"y":25096.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Position","id":"cd54c5f3-13f4-4e71-b233-b649d4878ab6"}}}],"layerFolders":[],"id":"707f45cd-f2fa-4685-ae9a-f247195f1c2b","savedPayload":{"position":{"x":18409.806237131383,"y":25096.048779403747},"targetPosition":{"x":18343.806237131383,"y":24999.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Open Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"c16346d4-a027-4afd-b3de-d04c98278ce2","savedPayload":{"position":{"x":18331.806237131383,"y":25090.048779403747},"targetPosition":{"x":18401.806237131383,"y":25022.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stage","id":"7466e39e-eced-4ca3-9d56-a0d1548b91c6"}}},{"type":"Layer","name":"Close Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"079ed389-1381-4147-8d81-7c51c34bf23b","savedPayload":{"position":{"x":18382.806237131383,"y":24966.048779403747},"targetPosition":{"x":18401.806237131383,"y":25022.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stage","id":"bea0a14e-e504-4e9e-a346-439180b6ad31"}}},{"type":"Layer","name":"Trigger Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"37c1f78a-2773-42b8-a0e5-04e6fa014eda","savedPayload":{"position":{"x":18332.806237131383,"y":25047.048779403747},"targetPosition":{"x":18401.806237131383,"y":25022.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stage","id":"06ef8c46-5cc3-4890-9a44-8fd57b8e9ca3"}}},{"type":"Layer","name":"Manage Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"7ae2aa13-6f81-4be9-b3fa-4bf46194fa91","savedPayload":{"position":{"x":18420.806237131383,"y":25043.048779403747},"targetPosition":{"x":18401.806237131383,"y":25022.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stage","id":"9df7d784-5665-4fa1-9d85-ee74845267aa"}}}],"layerFolders":[],"id":"dce48197-8109-41cc-9e8d-43c49ecd8d98","savedPayload":{"position":{"x":18401.806237131383,"y":25022.048779403747},"targetPosition":{"x":18343.806237131383,"y":24999.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"fe9cc276-d299-412e-b321-afc86593f929","savedPayload":{"position":{"x":18275.806237131383,"y":24908.048779403747},"targetPosition":{"x":18255.806237131383,"y":25000.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"4bc0034d-935a-4193-89cf-b18c65b0905a"}}},{"type":"Layer","name":"Market Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"82636cd6-117e-4b83-85e7-6ee5ddd0d644","savedPayload":{"position":{"x":18302.806237131383,"y":24908.048779403747},"targetPosition":{"x":18255.806237131383,"y":25000.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"ffada7e3-6897-4d94-b119-eef67c178678"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"0e389a87-dfef-44f9-812d-1dd1f5cfbf43","savedPayload":{"position":{"x":18294.806237131383,"y":24958.048779403747},"targetPosition":{"x":18255.806237131383,"y":25000.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"e195d10c-7b9f-4428-910e-11be05f66345"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"64ba9c66-3f86-4577-ad49-75eaab68c0ba","savedPayload":{"position":{"x":18175.806237131383,"y":24919.048779403747},"targetPosition":{"x":18255.806237131383,"y":25000.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"c396625e-9a71-4edd-a954-ea2c884538f5"}}},{"type":"Layer","name":"Last Market Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"dd350949-fa54-430f-b5b0-2a9167bae8f0","savedPayload":{"position":{"x":18160.806237131383,"y":25028.048779403747},"targetPosition":{"x":18255.806237131383,"y":25000.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Market Order","id":"d15cc7d7-3e92-4f92-9bbe-e0a3ba499740"}}},{"type":"Layer","name":"Last Limit Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"3157319b-7ae4-4ea6-99fb-e8bc2b7c0b24","savedPayload":{"position":{"x":18195.806237131383,"y":24950.048779403747},"targetPosition":{"x":18255.806237131383,"y":25000.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Limit Order","id":"507be75d-cd3c-4767-b159-328469e5c6e8"}}}],"layerFolders":[],"id":"4c246238-98c7-414d-b25b-aa82c3cbe143","savedPayload":{"position":{"x":18255.806237131383,"y":25000.048779403747},"targetPosition":{"x":18343.806237131383,"y":24999.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"340fd3f6-a9c9-47b0-b4be-078b7d806800","savedPayload":{"position":{"x":18343.806237131383,"y":24999.048779403747},"targetPosition":{"x":18420.806237131383,"y":24978.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d4903f86-8eee-42b2-b3db-230029802ccb","savedPayload":{"position":{"x":18420.806237131383,"y":24978.048779403747},"targetPosition":{"x":18498.806237131383,"y":25042.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ced831dc-8bda-42ef-97f1-d6d75cf0e68a","savedPayload":{"position":{"x":18498.806237131383,"y":25042.048779403747},"targetPosition":{"x":18580.806237131383,"y":25008.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"7d983ca2-8566-436b-ab21-445564aba4b3"}}},"id":"e771e170-f11f-4f7d-9cb4-112bafb9c1f4","savedPayload":{"position":{"x":18198.200194133682,"y":25784.87942904552},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Trading System","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading System","project":"Superalgos","layers":[{"type":"Layer","name":"Trading System Errors","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"30b49f64-f53b-406a-ba61-aad55cd084e3","savedPayload":{"position":{"x":18610.806237131383,"y":25081.048779403747},"targetPosition":{"x":18629.806237131383,"y":25073.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Errors","id":"8cb33c4c-4561-4e2e-a145-19bb87fa9b61"}}},{"type":"Layer","name":"Trading System Highlights","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"37f95213-23f6-473b-ab56-944a60f0d3ee","savedPayload":{"position":{"x":18554.806237131383,"y":25121.048779403747},"targetPosition":{"x":18629.806237131383,"y":25073.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Highlights","id":"3521e920-c9b3-493b-9690-58101c475dad"}}},{"type":"Layer","name":"Trading System Values","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"f4119e12-f225-46f4-be06-b56509bbf00f","savedPayload":{"position":{"x":18565.806237131383,"y":24987.048779403747},"targetPosition":{"x":18629.806237131383,"y":25073.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Values","id":"084d12bb-30ec-4a0f-a356-a58817d4e266"}}},{"type":"Layer","name":"Trading System Status","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"de0d7560-5dc3-4d72-b95f-e26d686ebd64","savedPayload":{"position":{"x":18609.806237131383,"y":25023.048779403747},"targetPosition":{"x":18629.806237131383,"y":25073.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Status","id":"12e328ff-6658-4ca1-be6d-a93c8fc5c42e"}}},{"type":"Layer","name":"Trading System Progress","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"6e83e3f7-36f3-4d40-a6d9-2800f339aa51","savedPayload":{"position":{"x":18717.806237131383,"y":25054.048779403747},"targetPosition":{"x":18629.806237131383,"y":25073.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Progress","id":"d35b7442-5911-4456-bc9e-c451e21d4a30"}}},{"type":"Layer","name":"Trading System Running","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"7d2b6f17-ecc9-493d-9b0a-41904bb3b852","savedPayload":{"position":{"x":18642.806237131383,"y":24980.048779403747},"targetPosition":{"x":18629.806237131383,"y":25073.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Running","id":"65c269c0-2793-483c-ad8e-5c107a56b951"}}},{"type":"Layer","name":"Trading System Announcements","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"3568bbb7-41a3-4805-80b3-b344dc8bd80c","savedPayload":{"position":{"x":18576.806237131383,"y":25060.048779403747},"targetPosition":{"x":18629.806237131383,"y":25073.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Announcements","id":"56631448-2669-47f1-bbc9-7dda628f433e"}}},{"type":"Layer","name":"Trading System Warnings","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"0a880071-8042-4cef-95fb-47fdd99737ce","savedPayload":{"position":{"x":18555.806237131383,"y":25075.048779403747},"targetPosition":{"x":18629.806237131383,"y":25073.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Warnings","id":"c7c4ece9-6d52-4e9a-800e-11c22955c178"}}},{"type":"Layer","name":"Trading System Infos","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"53b788b5-a4b1-4179-9e5c-f43adf1e83d5","savedPayload":{"position":{"x":18667.806237131383,"y":25063.048779403747},"targetPosition":{"x":18629.806237131383,"y":25073.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Infos","id":"f937c3f3-305c-4abc-aa12-0f2015e8f5fa"}}}],"layerFolders":[],"id":"0d7e6572-550e-425e-a408-9cd4a6d2de07","savedPayload":{"position":{"x":18629.806237131383,"y":25073.048779403747},"targetPosition":{"x":18613.806237131383,"y":25170.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"91960320-2dcb-458a-83dd-dce4a019a209","savedPayload":{"position":{"x":18613.806237131383,"y":25170.048779403747},"targetPosition":{"x":18543.806237131383,"y":25079.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"34799cb4-7d89-4f96-8e56-807ff9ed0148","savedPayload":{"position":{"x":18543.806237131383,"y":25079.048779403747},"targetPosition":{"x":18483.806237131383,"y":24982.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":190,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"7d983ca2-8566-436b-ab21-445564aba4b3"}}},"id":"4c457781-9247-442d-875c-1a476cf66bfe","savedPayload":{"position":{"x":18107.96995422542,"y":25732.78497574544},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Simulation Objects","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Simulation Objects","project":"Superalgos","layers":[{"type":"Layer","name":"Episodes","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"f65f3741-038e-4748-81d9-3bf0f5c92388","savedPayload":{"position":{"x":18266.806237131383,"y":24888.048779403747},"targetPosition":{"x":18295.806237131383,"y":24988.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episodes","id":"b4881fc1-e88b-4be3-805d-ab98c4ccbb0b"}}},{"type":"Layer","name":"Strategies","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"a570f5c9-baf9-4acb-8305-651a78689b92","savedPayload":{"position":{"x":18350.806237131383,"y":25056.048779403747},"targetPosition":{"x":18295.806237131383,"y":24988.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"7201adfb-d461-46b7-af3a-a45fabe24835"}}}],"layerFolders":[{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"8ef28bbb-7daf-4e89-996f-8125cf4464f7","savedPayload":{"position":{"x":18186.806237131383,"y":25027.048779403747},"targetPosition":{"x":18246.806237131383,"y":25064.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"c92a34c6-c74b-48ad-a57d-9fb78e3e642c"}}},{"type":"Layer","name":"Market Sell Orders","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"74ce175e-697a-459b-87c7-1dd7a9773312","savedPayload":{"position":{"x":18182.806237131383,"y":25078.048779403747},"targetPosition":{"x":18246.806237131383,"y":25064.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"442e4f1d-e420-43cf-94c8-08282408f555"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"e4fac985-c39e-4765-9eb4-f7eac5eb0ad3","savedPayload":{"position":{"x":18188.806237131383,"y":25025.048779403747},"targetPosition":{"x":18246.806237131383,"y":25064.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"5beb71e3-23fd-4e79-b7fd-46da219b1112"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"0356dd2e-b704-4be0-8794-ca197cc18bd1","savedPayload":{"position":{"x":18153.806237131383,"y":25051.048779403747},"targetPosition":{"x":18246.806237131383,"y":25064.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"1d6f14f5-c7fe-4b42-8a1b-5859e6e5a592"}}}],"layerFolders":[],"id":"2b4a8143-844b-46be-beec-0328c5feeeb0","savedPayload":{"position":{"x":18246.806237131383,"y":25064.048779403747},"targetPosition":{"x":18295.806237131383,"y":24988.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Trigger Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"f3324490-0585-4cc1-8ca6-82cbba329286","savedPayload":{"position":{"x":18145.806237131383,"y":24998.048779403747},"targetPosition":{"x":18218.806237131383,"y":25086.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stages","id":"7f256746-a20a-4856-af57-18f91e02fdaf"}}},{"type":"Layer","name":"Open Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"68057302-b007-4c11-937c-f3666e549d06","savedPayload":{"position":{"x":18241.806237131383,"y":24987.048779403747},"targetPosition":{"x":18218.806237131383,"y":25086.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stages","id":"c9b06e1b-2816-4770-b4d2-951b354fa688"}}},{"type":"Layer","name":"Manage Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"ed7d05b5-e17f-4d1b-8877-3771f1ff1f2b","savedPayload":{"position":{"x":18292.806237131383,"y":25043.048779403747},"targetPosition":{"x":18218.806237131383,"y":25086.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stages","id":"59770c0b-e50d-46d3-b62f-7ea080fcbeb2"}}},{"type":"Layer","name":"Close Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"5f05ebbd-0849-429e-95a0-870672f781ef","savedPayload":{"position":{"x":18123.806237131383,"y":25182.048779403747},"targetPosition":{"x":18218.806237131383,"y":25086.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stages","id":"56915d54-1528-46bf-ad3f-361ca441abc0"}}}],"layerFolders":[],"id":"272eae40-8975-4ffa-984d-9cb015a86913","savedPayload":{"position":{"x":18218.806237131383,"y":25086.048779403747},"targetPosition":{"x":18295.806237131383,"y":24988.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Positions","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"3f5758b3-7ae1-49eb-87d9-51965408b246","savedPayload":{"position":{"x":18205.806237131383,"y":25024.048779403747},"targetPosition":{"x":18224.806237131383,"y":25056.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Positions","id":"112221cf-8147-484f-a9aa-d86c2402d1b4"}}},{"type":"Layer","name":"Position Base Asset","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"2093a6be-57ea-4aea-b1d8-7a5504acf8d0","savedPayload":{"position":{"x":18307.806237131383,"y":25078.048779403747},"targetPosition":{"x":18224.806237131383,"y":25056.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Base Asset","id":"b92609ac-310d-482c-a96f-8e90d4c43d72"}}},{"type":"Layer","name":"Position Quoted Asset","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"94e1588e-0c27-4ac2-8b25-cbe4c568b94c","savedPayload":{"position":{"x":18210.806237131383,"y":25124.048779403747},"targetPosition":{"x":18224.806237131383,"y":25056.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Quoted Asset","id":"1e037875-a2ee-44c3-8d8e-861f39f9d8a7"}}},{"type":"Layer","name":"Stop Loss","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"e8b96393-0706-4444-a88e-189490c8720f","savedPayload":{"position":{"x":18229.806237131383,"y":24984.048779403747},"targetPosition":{"x":18224.806237131383,"y":25056.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Stop Loss","id":"7f2737da-5aef-4dbf-b86c-80132bcb3289"}}},{"type":"Layer","name":"Take Profit","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"1b15b0df-dfbd-4701-a4cf-4a0ad7e51847","savedPayload":{"position":{"x":18148.806237131383,"y":25020.048779403747},"targetPosition":{"x":18224.806237131383,"y":25056.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Take Profit","id":"4d5fcd48-f3df-43c9-818e-70057086a961"}}}],"layerFolders":[],"id":"e2b2ad32-3780-436f-ba33-ec49827eb7c9","savedPayload":{"position":{"x":18224.806237131383,"y":25056.048779403747},"targetPosition":{"x":18295.806237131383,"y":24988.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6de64ba0-66f9-4268-bcc5-da53f800f9cf","savedPayload":{"position":{"x":18295.806237131383,"y":24988.048779403747},"targetPosition":{"x":18391.806237131383,"y":25063.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b605e608-0de4-4b90-a4c5-6fe037da273d","savedPayload":{"position":{"x":18391.806237131383,"y":25063.048779403747},"targetPosition":{"x":18482.806237131383,"y":25151.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c83690b2-8551-43b6-b0a6-ca9366c441e9","savedPayload":{"position":{"x":18482.806237131383,"y":25151.048779403747},"targetPosition":{"x":18508.806237131383,"y":25052.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":190,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"7d983ca2-8566-436b-ab21-445564aba4b3"}}},"id":"45ae1a95-dea4-4d47-a7ce-6c8d8f13dd14","savedPayload":{"position":{"x":18040.99861599605,"y":25652.971642809745},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Sparta","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Sparta","config":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"EMA","project":"Superalgos","layers":[{"type":"Layer","name":"Popular EMAs","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"6443b8e7-7124-465e-9ffb-eca387bfc0c5","savedPayload":{"position":{"x":17121.876898635554,"y":25747.678793059764},"targetPosition":{"x":17401.479259420394,"y":25638.947381574653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"8b3b410e-0728-457a-a2ac-640f8839592c"}}},{"type":"Layer","name":"Base7 EMAs","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"1d52126c-9162-4a08-910b-a8648c9c4d30","savedPayload":{"position":{"x":17106.03693351673,"y":25691.041834874733},"targetPosition":{"x":17401.479259420394,"y":25638.947381574653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"45eea564-7729-421c-b871-acda5a5ae81e"}}},{"type":"Layer","name":"Base11 EMAs","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"03f74f67-0ffa-475c-ad79-f78f25fd8841","savedPayload":{"position":{"x":17101.55065129642,"y":25632.402916064286},"targetPosition":{"x":17401.479259420394,"y":25638.947381574653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"fe10ecb5-0593-4c6b-9fd0-1729976ce713"}}}],"layerFolders":[],"id":"fdc7f2ac-b6e5-4c2a-873e-708794c567d8","savedPayload":{"position":{"x":17401.479259420394,"y":25638.947381574653},"targetPosition":{"x":17696.921585324057,"y":25586.852928274573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bb26a76c-f706-496d-bbaa-81475ad0aa60","savedPayload":{"position":{"x":17696.921585324057,"y":25586.852928274573},"targetPosition":{"x":17992.36391122772,"y":25534.758474974493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":190,"radius":0},"referenceParent":{"type":"Data Mine Products","name":"Sparta","id":"cc85c8b7-657d-4589-8373-ac3ff5cf3c6a"}}},"id":"d449ea7e-cc93-438c-bdc2-84f06c670890","savedPayload":{"position":{"x":18005.36391122772,"y":25555.066096109826},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Masters","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Exchange Raw Data","project":"Superalgos","layers":[],"layerFolders":[],"id":"e341f133-88b2-4dcc-9a82-addc8d68ea45","savedPayload":{"position":{"x":17481.11964522246,"y":25586.872626211953},"targetPosition":{"x":17696.921585324057,"y":25378.475115074252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Candles Volumes","project":"Superalgos","layers":[{"type":"Layer","name":"Candles","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","id":"22555671-02c7-4be3-bed8-e808e015ddb7","savedPayload":{"position":{"x":17110.752028739,"y":25500.39855818575},"targetPosition":{"x":17399.841164701586,"y":25420.227045362273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"70d84756-8e7a-4dfc-8aae-abf8affc802f"}}},{"type":"Layer","name":"Volumes","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"88622f71-4be1-425c-ba9d-8ec10bd3fa74","savedPayload":{"position":{"x":17099.852587782334,"y":25422.845006011787},"targetPosition":{"x":17399.841164701586,"y":25420.227045362273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"5a47df0f-0524-401a-b5f4-f292eda68238"}}}],"layerFolders":[],"id":"40d6fb03-d3b4-4a3e-8293-21d256246e96","savedPayload":{"position":{"x":17399.841164701586,"y":25420.227045362273},"targetPosition":{"x":17696.921585324057,"y":25378.475115074252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Bollinger Bands","project":"Superalgos","layers":[{"type":"Layer","name":"Bollinger Bands","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"c7224f35-eb60-41ba-9cef-14891b7549c1","savedPayload":{"position":{"x":17151.03565069186,"y":25132.571431860644},"targetPosition":{"x":17432.03730746638,"y":25237.633646238486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"d50dcdf4-6251-4c59-9a04-d5dedadd86f7"}}},{"type":"Layer","name":"Percentage Bandwidth","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"3403e533-bccb-4d6a-9c8c-7e7dae15893f","savedPayload":{"position":{"x":17187.802651959486,"y":25063.422759525205},"targetPosition":{"x":17432.03730746638,"y":25237.633646238486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"1e029c1d-85c8-4d3d-90d8-388bf135d110"}}}],"layerFolders":[],"id":"b9834ac2-04d9-4978-9f7e-1513df5a91a7","savedPayload":{"position":{"x":17432.03730746638,"y":25237.633646238486},"targetPosition":{"x":17696.921585324057,"y":25378.475115074252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Bollinger Channels","project":"Superalgos","layers":[{"type":"Layer","name":"Bollinger Channels Objects","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"4ed08f32-cb20-433b-b1b4-9506f7f9fa55","savedPayload":{"position":{"x":17374.586775204003,"y":24877.349526168186},"targetPosition":{"x":17565.410241287333,"y":25108.836901184502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"aba646d5-9b32-48d6-abc3-e9fa8405b279"}}},{"type":"Layer","name":"Bollinger Channels","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"b72da299-ad7b-40ef-b28d-5e06b55d38b4","savedPayload":{"position":{"x":17413.14873239912,"y":24850.348153052044},"targetPosition":{"x":17565.410241287333,"y":25108.836901184502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"241723cd-ae4d-4990-88f8-29bfad2e14ed"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"43940d4c-5b47-4eed-afb8-c83dea0a2e86","savedPayload":{"position":{"x":17455.459873270043,"y":24829.711630789894},"targetPosition":{"x":17565.410241287333,"y":25108.836901184502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"e171424f-d37d-46d5-aada-1d66ccb0961f"}}},{"type":"Layer","name":"Bollinger Sub-Channels","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"44bfe72d-d563-4d7d-94f6-32b251ea8519","savedPayload":{"position":{"x":17500.4783571059,"y":24815.94809904852},"targetPosition":{"x":17565.410241287333,"y":25108.836901184502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"f8686b62-8ca9-4b30-9c27-9844c109d987"}}}],"layerFolders":[],"id":"e9f0e366-b340-487a-b7f9-40f37e7994da","savedPayload":{"position":{"x":17565.410241287333,"y":25108.836901184502},"targetPosition":{"x":17696.921585324057,"y":25378.475115074252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a2cae263-03ad-4322-b867-14cbb3a3653a","savedPayload":{"position":{"x":17696.921585324057,"y":25378.475115074252},"targetPosition":{"x":17992.36391122772,"y":25430.569568374332},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":600,"y":80},"width":150,"height":190,"radius":0},"referenceParent":{"type":"Data Mine Products","name":"Masters","id":"f527bdd3-f5bc-4248-a35f-ac7e591c3aec"}}},"id":"bcdf169d-6297-4f61-b125-2aacefdc4f18","savedPayload":{"position":{"x":18005.36391122772,"y":25450.877189509665},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c36f98d3-5b61-4f02-bad5-c97fbe968d5c","savedPayload":{"position":{"x":18300.806237131383,"y":25502.971642809745},"targetPosition":{"x":18450.806237131383,"y":25243.164021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":0},"width":240,"height":112.375,"radius":0},"referenceParent":{"type":"Backtesting Session","name":"WHB v2","id":"1ff8cd88-dcd9-4528-b406-05647ddd8c9c"}}}],"id":"97979c42-ea93-4e10-8af1-20a6658b6d57","savedPayload":{"position":{"x":18450.806237131383,"y":25243.164021674413},"targetPosition":{"x":18600.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","id":"5882d8a8-345b-4188-b1c1-797e9ff805d9"}}},{"type":"Dashboard","name":"Production Environment My Computer","project":"Superalgos","timeMachines":[{"type":"Time Machine","name":"WHB v2 Live Trading Session My Computer","config":"{}","project":"Superalgos","timeScale":{"type":"Time Scale","name":"New Time Scale","config":"{\n \"autoMinScale\": true,\n \"autoMaxScale\": true,\n \"fromDate\": \"2020-01-01T00:00:00.000Z\",\n \"toDate\": \"2020-10-09T23:59:59.999Z\"\n}","project":"Superalgos","id":"9e3b6145-28ed-4709-9e82-9eba74e55c19","savedPayload":{"position":{"x":18005.36391122772,"y":24515.835611568495},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","config":"{\n \"autoMinScale\": true,\n \"autoMaxScale\": true,\n \"minValue\": 3744.3087,\n \"maxValue\": 12592.68\n}","project":"Superalgos","id":"e2887721-8e49-482a-8bfe-d1c0d84c5b1e","savedPayload":{"position":{"x":18005.36391122772,"y":24411.646704968334},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","config":"{ \n\"value\": \"24-hs\"\n}","project":"Superalgos","id":"c06978cc-97da-4321-bcec-1be366f04b3e","savedPayload":{"position":{"x":18040.99861599605,"y":24313.741158268414},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Trading Engine","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading Engine","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Episode","project":"Superalgos","layers":[{"type":"Layer","name":"Episode Counters","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"f1f95b78-c2c3-4271-bcb6-91b79825858e","savedPayload":{"position":{"x":18489.806237131383,"y":25104.664021674413},"targetPosition":{"x":18582.806237131383,"y":25120.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Counters","id":"4d1ea2bf-5a1d-4b37-9719-007e28b81184"}}},{"type":"Layer","name":"Episode Statistics","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"ae5b3b26-2687-4b2a-828f-e6275553ef2f","savedPayload":{"position":{"x":18487.806237131383,"y":25075.664021674413},"targetPosition":{"x":18582.806237131383,"y":25120.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Statistics","id":"2c4ef698-66da-4079-90ec-9fdf5ce41be7"}}},{"type":"Layer","name":"Episode Candle","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"fc1bc47c-3e1a-4b5a-ba84-8882868e400a","savedPayload":{"position":{"x":18531.806237131383,"y":25149.664021674413},"targetPosition":{"x":18582.806237131383,"y":25120.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Candle","id":"5ee16bd3-cb60-4b92-ab67-d56dfbdd8671"}}},{"type":"Layer","name":"Episode Balances","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"caa2849f-552d-4762-97eb-ed66670e71b5","savedPayload":{"position":{"x":18667.806237131383,"y":25056.664021674413},"targetPosition":{"x":18582.806237131383,"y":25120.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Balances","id":"660caa52-ba9a-4829-9143-3ca16f2590aa"}}},{"type":"Layer","name":"Distance To Event","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"57949a00-f277-4a9b-b480-8c4d7749eea6","savedPayload":{"position":{"x":18638.806237131383,"y":25163.664021674413},"targetPosition":{"x":18582.806237131383,"y":25120.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Distance To Event","id":"382ccb5c-e0c3-4e34-97b9-599cf5d6792d"}}},{"type":"Layer","name":"Episode Base Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"a5dc3f74-ae54-491f-8761-dd1ff593d7e1","savedPayload":{"position":{"x":18678.806237131383,"y":25218.664021674413},"targetPosition":{"x":18582.806237131383,"y":25120.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Base Asset","id":"42d86745-d971-4328-a908-91bf6d19a019"}}},{"type":"Layer","name":"Episode Quoted Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"e904ccb9-94fe-4d2a-80b9-aef73a46b84a","savedPayload":{"position":{"x":18613.806237131383,"y":25157.664021674413},"targetPosition":{"x":18582.806237131383,"y":25120.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Quoted Asset","id":"7dbf878d-588f-422e-acd2-03968abaf5f0"}}},{"type":"Layer","name":"Current Episode","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"6fa6eec1-da47-451c-96ff-24de0a07a68f","savedPayload":{"position":{"x":18664.806237131383,"y":25161.664021674413},"targetPosition":{"x":18582.806237131383,"y":25120.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Episode","id":"d678dfa8-544b-456f-b3f0-715579440aa2"}}}],"layerFolders":[],"id":"c37d2dd1-f13a-466a-a217-ec8ae805f8d2","savedPayload":{"position":{"x":18582.806237131383,"y":25120.664021674413},"targetPosition":{"x":18608.806237131383,"y":25064.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Strategy","project":"Superalgos","layers":[{"type":"Layer","name":"Current Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"938325be-e1cd-42ec-9d48-4b7284833347","savedPayload":{"position":{"x":18655.806237131383,"y":25008.664021674413},"targetPosition":{"x":18700.806237131383,"y":25021.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Strategy","id":"07b721a0-55e0-4e7a-b0e2-a91e8c76de4f"}}},{"type":"Layer","name":"Last Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"b82d691f-9709-42c6-a6f4-c0b7d83a1839","savedPayload":{"position":{"x":18624.806237131383,"y":24921.664021674413},"targetPosition":{"x":18700.806237131383,"y":25021.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Strategy","id":"15f34c1a-b30d-4dd1-96e0-8a2646de3635"}}}],"layerFolders":[],"id":"d27b2ba3-8ab6-45c8-a50d-7bdd2e39a1b2","savedPayload":{"position":{"x":18700.806237131383,"y":25021.664021674413},"targetPosition":{"x":18608.806237131383,"y":25064.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Current Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"635f4c80-d3ae-4382-a6fa-656e1c25aab6","savedPayload":{"position":{"x":18617.806237131383,"y":25225.664021674413},"targetPosition":{"x":18671.806237131383,"y":25146.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Position","id":"ab53428d-89a3-4b1f-84b1-d5bd1d957f02"}}},{"type":"Layer","name":"Last Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"ee8464c4-513c-4248-aa78-19d91d6e2789","savedPayload":{"position":{"x":18661.806237131383,"y":25087.664021674413},"targetPosition":{"x":18671.806237131383,"y":25146.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Position","id":"5909ca07-e00c-4669-9cd3-17eb83796f31"}}}],"layerFolders":[],"id":"44bb52f1-bcc7-4f05-8c2f-48d675deb366","savedPayload":{"position":{"x":18671.806237131383,"y":25146.664021674413},"targetPosition":{"x":18608.806237131383,"y":25064.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Open Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"c3243adf-912b-47da-9404-39811daf5efa","savedPayload":{"position":{"x":18540.806237131383,"y":25065.664021674413},"targetPosition":{"x":18523.806237131383,"y":25078.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stage","id":"68803338-3e70-443f-90fd-8b36f5378f31"}}},{"type":"Layer","name":"Close Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"8e74ff15-a7d9-433c-9252-2b41664138a9","savedPayload":{"position":{"x":18478.806237131383,"y":25125.664021674413},"targetPosition":{"x":18523.806237131383,"y":25078.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stage","id":"2d2dd9df-d00a-4d69-9b29-66e19d0238fe"}}},{"type":"Layer","name":"Trigger Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"f093b5a0-e006-4fc8-a1a4-526ddabe03a6","savedPayload":{"position":{"x":18508.806237131383,"y":25014.664021674413},"targetPosition":{"x":18523.806237131383,"y":25078.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stage","id":"7a71d0ce-5592-4b70-b30c-9676b67feb47"}}},{"type":"Layer","name":"Manage Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"417dbc47-0de8-4b43-9807-6321269b1bad","savedPayload":{"position":{"x":18442.806237131383,"y":25000.664021674413},"targetPosition":{"x":18523.806237131383,"y":25078.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stage","id":"5b233b81-aa5f-4222-9772-5c8810cb683a"}}}],"layerFolders":[],"id":"2d472757-6f85-45c7-bf7f-459d3d87bbfa","savedPayload":{"position":{"x":18523.806237131383,"y":25078.664021674413},"targetPosition":{"x":18608.806237131383,"y":25064.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"9b2d6215-dc66-47f1-bafe-233d262f0b26","savedPayload":{"position":{"x":18443.806237131383,"y":25204.664021674413},"targetPosition":{"x":18529.806237131383,"y":25107.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"0487769a-1b78-45ce-8750-6cb55c0785f4"}}},{"type":"Layer","name":"Market Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"185c3169-d930-4413-a912-6e2d20088562","savedPayload":{"position":{"x":18497.806237131383,"y":25030.664021674413},"targetPosition":{"x":18529.806237131383,"y":25107.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"6e666549-9e9f-42d3-b543-fc0ce961cc64"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"b6d40f2a-3f43-4aaa-bfc3-0a3e28278961","savedPayload":{"position":{"x":18600.806237131383,"y":25113.664021674413},"targetPosition":{"x":18529.806237131383,"y":25107.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"a596b5e6-666d-4da0-bd2f-2b65292b8d87"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"064d574e-fa92-43d3-a182-3f426dd2c3c1","savedPayload":{"position":{"x":18552.806237131383,"y":25072.664021674413},"targetPosition":{"x":18529.806237131383,"y":25107.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"528f2741-eda9-4dd4-b731-8110336c0a34"}}},{"type":"Layer","name":"Last Market Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"8ba82947-b00d-438a-b384-1786af913e30","savedPayload":{"position":{"x":18583.806237131383,"y":25147.664021674413},"targetPosition":{"x":18529.806237131383,"y":25107.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Market Order","id":"0d7a0263-dc84-4b4a-a6cc-ad6c3f9824fe"}}},{"type":"Layer","name":"Last Limit Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"f1ece4d3-1d8c-432c-a5d3-78b0d437ad68","savedPayload":{"position":{"x":18461.806237131383,"y":25062.664021674413},"targetPosition":{"x":18529.806237131383,"y":25107.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Limit Order","id":"51e9b95a-96c1-4cf4-a188-9669c73c7e8e"}}}],"layerFolders":[],"id":"2355f3c7-a7a4-44c9-aab7-23c6fa62113e","savedPayload":{"position":{"x":18529.806237131383,"y":25107.664021674413},"targetPosition":{"x":18608.806237131383,"y":25064.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ec0a181b-98eb-4e8e-8638-e2ab1c0d1d36","savedPayload":{"position":{"x":18608.806237131383,"y":25064.664021674413},"targetPosition":{"x":18607.806237131383,"y":25033.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fe8004ba-62be-44b0-9eb7-b9f1f8563e09","savedPayload":{"position":{"x":18607.806237131383,"y":25033.664021674413},"targetPosition":{"x":18567.806237131383,"y":25132.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"89ae209b-5e81-4414-8754-eb734a59b417","savedPayload":{"position":{"x":18567.806237131383,"y":25132.664021674413},"targetPosition":{"x":18635.806237131383,"y":25151.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":190,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"ffdfebe3-50db-41b5-8077-7a7d0d008865"}}},"id":"3664debe-440e-4226-bb00-d56d2d97daff","savedPayload":{"position":{"x":18107.96995422542,"y":24233.92782533272},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Trading System","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading System","project":"Superalgos","layers":[{"type":"Layer","name":"Trading System Errors","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"2a3273c5-d373-480f-8e58-5f0479049a89","savedPayload":{"position":{"x":18668.806237131383,"y":24983.664021674413},"targetPosition":{"x":18686.806237131383,"y":24992.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Errors","id":"1c539f66-a512-4cd9-b974-622b95e2cca9"}}},{"type":"Layer","name":"Trading System Highlights","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"cc124ad2-8e2e-4caa-b324-42f74494c7cf","savedPayload":{"position":{"x":18650.806237131383,"y":25042.664021674413},"targetPosition":{"x":18686.806237131383,"y":24992.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Highlights","id":"409e6575-034e-4d3d-99e5-0495ba229622"}}},{"type":"Layer","name":"Trading System Values","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"7f291996-c831-4fd6-9e32-bd939e6618a2","savedPayload":{"position":{"x":18619.806237131383,"y":24915.664021674413},"targetPosition":{"x":18686.806237131383,"y":24992.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Values","id":"55245047-2d2d-4a04-97f9-d413d82375a9"}}},{"type":"Layer","name":"Trading System Status","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"52322cb7-4fb2-4b11-9372-f834de6e41e7","savedPayload":{"position":{"x":18592.806237131383,"y":25075.664021674413},"targetPosition":{"x":18686.806237131383,"y":24992.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Status","id":"9f9ea8fa-0769-44b9-a4f1-86f2c3a22195"}}},{"type":"Layer","name":"Trading System Progress","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"71473cf3-6f27-498c-bbb6-7dcce412502d","savedPayload":{"position":{"x":18776.806237131383,"y":25016.664021674413},"targetPosition":{"x":18686.806237131383,"y":24992.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Progress","id":"d2e7ed86-a88f-484b-ab5f-d6212cb7045f"}}},{"type":"Layer","name":"Trading System Running","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"032120ab-1bbe-46cf-8986-24b3e2869aa9","savedPayload":{"position":{"x":18640.806237131383,"y":25031.664021674413},"targetPosition":{"x":18686.806237131383,"y":24992.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Running","id":"0a0b3b0e-cac0-42a3-8825-637b2b78afad"}}},{"type":"Layer","name":"Trading System Announcements","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"742f34cd-23ff-4b8d-b070-b28e19f7e821","savedPayload":{"position":{"x":18676.806237131383,"y":24935.664021674413},"targetPosition":{"x":18686.806237131383,"y":24992.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Announcements","id":"b79dfe54-361e-44f2-87ce-5e012bba3bcd"}}},{"type":"Layer","name":"Trading System Warnings","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"e575fb48-fd1d-479c-aa3b-baa983463ae5","savedPayload":{"position":{"x":18667.806237131383,"y":24975.664021674413},"targetPosition":{"x":18686.806237131383,"y":24992.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Warnings","id":"29681b5e-16e2-4bc0-816e-537b271c0ea5"}}},{"type":"Layer","name":"Trading System Infos","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"c1132f1c-eb35-4e60-b855-576f9393a008","savedPayload":{"position":{"x":18643.806237131383,"y":24982.664021674413},"targetPosition":{"x":18686.806237131383,"y":24992.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Infos","id":"3da52870-d76c-4e37-9247-9eecfdbb64ec"}}}],"layerFolders":[],"id":"3c36ab4e-20df-4ed1-ba62-3c1af51f24a9","savedPayload":{"position":{"x":18686.806237131383,"y":24992.664021674413},"targetPosition":{"x":18742.806237131383,"y":24970.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9be3a6b8-f673-4ff7-8978-732494fdd1de","savedPayload":{"position":{"x":18742.806237131383,"y":24970.664021674413},"targetPosition":{"x":18664.806237131383,"y":24999.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fe7408ef-04ca-4b85-bcde-4bb82f7c974f","savedPayload":{"position":{"x":18664.806237131383,"y":24999.664021674413},"targetPosition":{"x":18685.806237131383,"y":25045.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":190,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"ffdfebe3-50db-41b5-8077-7a7d0d008865"}}},"id":"00ae8c42-9686-470d-8167-178b41cc06ec","savedPayload":{"position":{"x":18198.200194133682,"y":24181.83337203264},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Simulation Objects","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Simulation Objects","project":"Superalgos","layers":[{"type":"Layer","name":"Episodes","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"66623184-4f58-4be2-ae6a-ab12eddf30a2","savedPayload":{"position":{"x":18698.806237131383,"y":25227.664021674413},"targetPosition":{"x":18636.806237131383,"y":25271.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episodes","id":"802ebea8-becf-45e5-b761-078cad3acd74"}}},{"type":"Layer","name":"Strategies","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"6bd41ea0-15bb-40d0-a977-f85aebd8f172","savedPayload":{"position":{"x":18707.806237131383,"y":25370.664021674413},"targetPosition":{"x":18636.806237131383,"y":25271.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"601cbf34-9a33-4066-9709-b23c6c34b17d"}}}],"layerFolders":[{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"ca0a428f-b7e6-41ab-b4b4-cff6c14e6693","savedPayload":{"position":{"x":18642.806237131383,"y":25183.664021674413},"targetPosition":{"x":18680.806237131383,"y":25244.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"e1516339-ebcb-4840-a23d-cebd855911b6"}}},{"type":"Layer","name":"Market Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"e20857f3-6fe7-472f-ac3e-888b7e28fc4d","savedPayload":{"position":{"x":18716.806237131383,"y":25164.664021674413},"targetPosition":{"x":18680.806237131383,"y":25244.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"57a0d52c-d2a3-4fd3-907c-66fd51cecdc6"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"88646088-3689-4547-b974-0d0d0d56b2b6","savedPayload":{"position":{"x":18689.806237131383,"y":25285.664021674413},"targetPosition":{"x":18680.806237131383,"y":25244.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"b67b6a65-5bd1-4b58-aa65-a8b840c54d9b"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"40bed7b6-261e-4527-8e6a-51f99c69b576","savedPayload":{"position":{"x":18592.806237131383,"y":25144.664021674413},"targetPosition":{"x":18680.806237131383,"y":25244.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"c27b0f50-fdad-4b69-a99e-2708806066aa"}}}],"layerFolders":[],"id":"94d0f42e-b7c8-4831-914b-1fae457e4046","savedPayload":{"position":{"x":18680.806237131383,"y":25244.664021674413},"targetPosition":{"x":18636.806237131383,"y":25271.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Trigger Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"dc2dab26-6c18-4995-b0b4-93b85624ab06","savedPayload":{"position":{"x":18488.806237131383,"y":25179.664021674413},"targetPosition":{"x":18573.806237131383,"y":25217.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stages","id":"bc3d588e-823d-4461-b550-b8ec912c4c8f"}}},{"type":"Layer","name":"Open Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"4dfc372b-4de6-4aec-b29f-99e5410d001e","savedPayload":{"position":{"x":18520.806237131383,"y":25131.664021674413},"targetPosition":{"x":18573.806237131383,"y":25217.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stages","id":"edb07104-591d-453b-b7fe-bd3854ff8a36"}}},{"type":"Layer","name":"Manage Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"af792d27-879d-4a3c-a83b-bf2e79376ee3","savedPayload":{"position":{"x":18669.806237131383,"y":25191.664021674413},"targetPosition":{"x":18573.806237131383,"y":25217.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stages","id":"9b884f77-297b-4618-ac4b-b995570284b6"}}},{"type":"Layer","name":"Close Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"bf4d6a12-d08d-4e8c-9591-31317c974358","savedPayload":{"position":{"x":18530.806237131383,"y":25228.664021674413},"targetPosition":{"x":18573.806237131383,"y":25217.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stages","id":"c07cc0bb-c49e-42d1-a5ba-f5fa9882fbab"}}}],"layerFolders":[],"id":"bf12f50e-de09-4563-8253-01c39ac87962","savedPayload":{"position":{"x":18573.806237131383,"y":25217.664021674413},"targetPosition":{"x":18636.806237131383,"y":25271.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Positions","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"841f1809-e887-47c9-bec3-9e339a8a175d","savedPayload":{"position":{"x":18652.806237131383,"y":25151.664021674413},"targetPosition":{"x":18562.806237131383,"y":25223.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Positions","id":"0e3c5d47-28d9-4cd3-ad72-1bdb054550a8"}}},{"type":"Layer","name":"Position Base Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"50c17ba9-287e-4c3f-9a46-1f7d6ad15633","savedPayload":{"position":{"x":18504.806237131383,"y":25276.664021674413},"targetPosition":{"x":18562.806237131383,"y":25223.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Base Asset","id":"47ffaf48-d92f-4da8-afb3-7787c5ba597e"}}},{"type":"Layer","name":"Position Quoted Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"9659c4bd-ce07-469d-9d2d-2675ca6e81b5","savedPayload":{"position":{"x":18513.806237131383,"y":25220.664021674413},"targetPosition":{"x":18562.806237131383,"y":25223.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Quoted Asset","id":"59eb8fe6-5429-4d2d-8971-47580c5816b8"}}},{"type":"Layer","name":"Stop Loss","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"9e506a39-2fc1-4ac0-b5d4-7bf76a73d0f9","savedPayload":{"position":{"x":18549.806237131383,"y":25175.664021674413},"targetPosition":{"x":18562.806237131383,"y":25223.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Stop Loss","id":"13a4d476-b8bb-4bb3-9a97-1c2a7b5c6188"}}},{"type":"Layer","name":"Take Profit","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"e13f9336-7bdc-4459-aca9-dc5d9747a69c","savedPayload":{"position":{"x":18562.806237131383,"y":25163.664021674413},"targetPosition":{"x":18562.806237131383,"y":25223.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Take Profit","id":"1af2f188-5506-47ff-859b-08e8f1c56754"}}}],"layerFolders":[],"id":"c42efa3e-8cef-458f-82dd-30ddc130a306","savedPayload":{"position":{"x":18562.806237131383,"y":25223.664021674413},"targetPosition":{"x":18636.806237131383,"y":25271.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b27076de-7c3a-43f6-be80-88d0792c245e","savedPayload":{"position":{"x":18636.806237131383,"y":25271.664021674413},"targetPosition":{"x":18703.806237131383,"y":25271.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"79584687-bd14-42e6-856e-8708b13d1951","savedPayload":{"position":{"x":18703.806237131383,"y":25271.664021674413},"targetPosition":{"x":18665.806237131383,"y":25212.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a74f69c4-085d-465f-973f-34fbe4da72d4","savedPayload":{"position":{"x":18665.806237131383,"y":25212.664021674413},"targetPosition":{"x":18566.806237131383,"y":25123.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":600,"y":80},"width":150,"height":190,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"ffdfebe3-50db-41b5-8077-7a7d0d008865"}}},"id":"73f3b68a-98c7-4c1b-9ddc-82dccb1e8ab7","savedPayload":{"position":{"x":18300.806237131383,"y":24163.741158268414},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Sparta","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Sparta","config":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"EMA","project":"Superalgos","layers":[{"type":"Layer","name":"Popular EMAs","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"55b6fec0-3624-475f-9e9a-2bcb1e4e8df2","savedPayload":{"position":{"x":18774.261381981458,"y":23399.816967556097},"targetPosition":{"x":18728.624366124484,"y":23696.325420696427},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"8b3b410e-0728-457a-a2ac-640f8839592c"}}},{"type":"Layer","name":"Base7 EMAs","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"5336c2ad-aa2d-4a96-a589-b1b4bd1b4ab8","savedPayload":{"position":{"x":18831.230409122185,"y":23414.417634460653},"targetPosition":{"x":18728.624366124484,"y":23696.325420696427},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"45eea564-7729-421c-b871-acda5a5ae81e"}}},{"type":"Layer","name":"Base11 EMAs","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"b112b862-311b-4638-9c1f-04c014581a54","savedPayload":{"position":{"x":18884.25634357264,"y":23439.85185949454},"targetPosition":{"x":18728.624366124484,"y":23696.325420696427},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"fe10ecb5-0593-4c6b-9fd0-1729976ce713"}}}],"layerFolders":[],"id":"612cf965-a657-4def-ada8-89f938d1c00d","savedPayload":{"position":{"x":18728.624366124484,"y":23696.325420696427},"targetPosition":{"x":18626.018323126784,"y":23978.2332069322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b57ed65d-02a6-460f-a6df-dd76e41646a8","savedPayload":{"position":{"x":18626.018323126784,"y":23978.2332069322},"targetPosition":{"x":18523.412280129083,"y":24260.140993167974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0},"referenceParent":{"type":"Data Mine Products","name":"Sparta","id":"cc85c8b7-657d-4589-8373-ac3ff5cf3c6a"}}},"id":"61e1c989-2f17-4d3d-9327-232b3a5f3bd8","savedPayload":{"position":{"x":18403.412280129083,"y":24181.83337203264},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Masters","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Exchange Raw Data","project":"Superalgos","layers":[],"layerFolders":[],"id":"bbd0630d-361d-4f6e-ac32-f3797740891a","savedPayload":{"position":{"x":18733.90223426341,"y":23791.333395649563},"targetPosition":{"x":18806.478802943308,"y":24082.42211353236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Candles Volumes","project":"Superalgos","layers":[{"type":"Layer","name":"Candles","config":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","project":"Superalgos","id":"e154fbee-086a-496b-ad92-9b7586c80604","savedPayload":{"position":{"x":18993.974782184414,"y":23513.82266504889},"targetPosition":{"x":18918.86078096808,"y":23804.266957162323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"70d84756-8e7a-4dfc-8aae-abf8affc802f"}}},{"type":"Layer","name":"Volumes","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"fcab2754-0ea7-4077-a384-f2078642641c","savedPayload":{"position":{"x":19066.58784899912,"y":23543.160248380354},"targetPosition":{"x":18918.86078096808,"y":23804.266957162323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"5a47df0f-0524-401a-b5f4-f292eda68238"}}}],"layerFolders":[],"id":"e39078b8-8050-47b3-bed2-3c4002a1032b","savedPayload":{"position":{"x":18918.86078096808,"y":23804.266957162323},"targetPosition":{"x":18806.478802943308,"y":24082.42211353236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Bollinger Bands","project":"Superalgos","layers":[{"type":"Layer","name":"Bollinger Bands","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"e0f8dd99-047e-488a-bb10-2781d91aad82","savedPayload":{"position":{"x":19292.380606806553,"y":23732.62286817907},"targetPosition":{"x":19060.893231790236,"y":23923.4463342624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"d50dcdf4-6251-4c59-9a04-d5dedadd86f7"}}},{"type":"Layer","name":"Percentage Bandwidth","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"6b54bcb1-0672-448c-9efa-af5bd47ed9da","savedPayload":{"position":{"x":19333.8816130532,"y":23799.03836146553},"targetPosition":{"x":19060.893231790236,"y":23923.4463342624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"1e029c1d-85c8-4d3d-90d8-388bf135d110"}}}],"layerFolders":[],"id":"8f5122b2-7b52-4b7f-9464-9fbd1b8085cc","savedPayload":{"position":{"x":19060.893231790236,"y":23923.4463342624},"targetPosition":{"x":18806.478802943308,"y":24082.42211353236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Bollinger Channels","project":"Superalgos","layers":[{"type":"Layer","name":"Bollinger Channels Objects","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"000ec7dc-1137-48fe-baa6-bfdc3cc6d1d2","savedPayload":{"position":{"x":19401.633698482423,"y":24053.834773897397},"targetPosition":{"x":19105.748018021255,"y":24103.3490556556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"aba646d5-9b32-48d6-abc3-e9fa8405b279"}}},{"type":"Layer","name":"Bollinger Channels","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"ae13c978-a98c-45d4-939b-c0302c93b95f","savedPayload":{"position":{"x":19405.736594940507,"y":24100.731095006086},"targetPosition":{"x":19105.748018021255,"y":24103.3490556556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"241723cd-ae4d-4990-88f8-29bfad2e14ed"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"40bc0669-59ed-47b3-85fa-56ec06d17793","savedPayload":{"position":{"x":19402.45277702983,"y":24147.691878994483},"targetPosition":{"x":19105.748018021255,"y":24103.3490556556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"e171424f-d37d-46d5-aada-1d66ccb0961f"}}},{"type":"Layer","name":"Bollinger Sub-Channels","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"170ad2e1-ae15-46d1-b630-9c508171f250","savedPayload":{"position":{"x":19391.863103245723,"y":24193.56079550688},"targetPosition":{"x":19105.748018021255,"y":24103.3490556556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"f8686b62-8ca9-4b30-9c27-9844c109d987"}}}],"layerFolders":[],"id":"ded0c3aa-12ff-4b98-b612-33e8b13ad0b9","savedPayload":{"position":{"x":19105.748018021255,"y":24103.3490556556},"targetPosition":{"x":18806.478802943308,"y":24082.42211353236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"723329d0-b912-46fa-b7d9-60bc634a1b91","savedPayload":{"position":{"x":18806.478802943308,"y":24082.42211353236},"targetPosition":{"x":18613.642520037345,"y":24312.235446468054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":190,"radius":0},"referenceParent":{"type":"Data Mine Products","name":"Masters","id":"f527bdd3-f5bc-4248-a35f-ac7e591c3aec"}}},"id":"808378d4-842e-48e9-8684-78400dfd8e66","savedPayload":{"position":{"x":18493.642520037345,"y":24233.92782533272},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"09b9e440-eb36-4c7b-90bb-01ff86676d62","savedPayload":{"position":{"x":18300.806237131383,"y":24463.741158268414},"targetPosition":{"x":18450.806237131383,"y":24723.548779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":224.75},"width":240,"height":112.375,"radius":0},"referenceParent":{"type":"Live Trading Session","name":"WHB v2","id":"934095e8-4a1c-4baf-828f-7818f73c4219"}}}],"id":"b7e04999-97b0-400a-bd6b-63d9ef43a028","savedPayload":{"position":{"x":18450.806237131383,"y":24723.548779403747},"targetPosition":{"x":18600.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Production Trading Tasks","name":"New Production Trading Tasks","id":"65a40d20-837c-4652-8356-f8054b4e1346"}}}],"id":"b8ef2456-7197-46fa-81fa-de0f299eb9a4","savedPayload":{"position":{"x":18600.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"d7975b33-3654-4e37-8255-90dbf51c3789"}}}],"id":"21d2ec55-9e56-4652-8e96-c7e451262c36","savedPayload":{"position":{"x":18900.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"c"}}},{"type":"Plugins","name":"New Plugins","project":"Superalgos","pluginProjects":[{"type":"Plugin Project","name":"Superalgos","config":"{ \n \"codeName\": \"Superalgos\"\n}","project":"Superalgos","pluginDataMines":{"type":"Plugin Data Mines","name":"New Plugin Data Mines","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Masters","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Masters","project":"Superalgos","id":"d5234bd2-ef4e-4856-a6a0-ce7659653a48","savedPayload":{"position":{"x":18879.35218735615,"y":18688.55301821844},"targetPosition":{"x":31380.185902390363,"y":18528.802375894946},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ecc1a524-de9b-4e73-8874-b99a7ea0402b","savedPayload":{"position":{"x":30804.72973529933,"y":18192.746239098742},"targetPosition":{"x":31027.673182942548,"y":18393.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plugin File","name":"Sparta","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Sparta","project":"Superalgos","id":"2ccc5e2f-816d-411a-98dd-19f384c4fb56","savedPayload":{"position":{"x":12827.993523525696,"y":18705.802375894946},"targetPosition":{"x":31380.185902390363,"y":18828.802375894946},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6cd79166-dec1-46e5-a54d-ce3ee5d877c2","savedPayload":{"position":{"x":31090.046690187875,"y":18100.04114078626},"targetPosition":{"x":31027.673182942548,"y":18393.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cbc3d9be-5e59-45d8-bb0f-4ec82763691d","savedPayload":{"position":{"x":31027.673182942548,"y":18393.4854210064},"targetPosition":{"x":31120.37828125503,"y":18678.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"pluginTradingMines":{"type":"Plugin Trading Mines","name":"New Plugin Trading Mines","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Masters","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Masters","project":"Superalgos","id":"ad1ce785-858f-4cfc-ba68-108b5e0c54d9","savedPayload":{"position":{"x":24941.217404066585,"y":18714.893045797242},"targetPosition":{"x":31120.37828125503,"y":19198.41761816561},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8a64c00e-4f8c-49bf-b57d-4e2e388bae41","savedPayload":{"position":{"x":31120.37828125503,"y":19198.41761816561},"targetPosition":{"x":30970.37828125503,"y":18938.60999703028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8d881813-3ab9-4e8b-ab5a-48dedab2dd19","savedPayload":{"position":{"x":31363.083379567513,"y":18502.466800207203},"targetPosition":{"x":31120.37828125503,"y":18678.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"pluginTradingSystems":{"type":"Plugin Trading Systems","name":"New Plugin Trading Systems","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Sparta-WHB-BTC-USDT","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Sparta-WHB-BTC-USDT","project":"Superalgos","id":"0d138b32-51ae-48ab-b92a-6dffaa441290","savedPayload":{"position":{"x":30945.763038984365,"y":30950.85999703028},"targetPosition":{"x":30520.37828125503,"y":19198.41761816561},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8cc06746-0b0f-4bc0-bd34-22ed46a24a8a","savedPayload":{"position":{"x":31605.788477879996,"y":19031.47352727043},"targetPosition":{"x":31363.083379567513,"y":18855.13795158269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3569d452-c593-4e54-a356-7ff8c6b519f3","savedPayload":{"position":{"x":31363.083379567513,"y":18855.13795158269},"targetPosition":{"x":31120.37828125503,"y":18678.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"pluginTradingEngines":{"type":"Plugin Trading Engines","name":"New Plugin Trading Engines","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Low-Frequency","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Low-Frequency","project":"Superalgos","id":"e117a2a4-09b3-4181-8455-e680de3bdeb3","savedPayload":{"position":{"x":30923.55093774257,"y":24967.049392142086},"targetPosition":{"x":29820.22642897682,"y":18678.80776835817},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e9270d67-4630-4ac9-91ca-1dec4fb5aa38","savedPayload":{"position":{"x":29820.22642897682,"y":18678.80776835817},"targetPosition":{"x":30320.32799443869,"y":18678.805890109317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"87a28762-63d0-45f7-bd39-9dea436d8244","savedPayload":{"position":{"x":31027.673182942548,"y":18964.11933078349},"targetPosition":{"x":31120.37828125503,"y":18678.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5436943e-3045-4e0d-807e-1be272afaf7f","savedPayload":{"position":{"x":31120.37828125503,"y":18678.802375894946},"targetPosition":{"x":30820.37828125503,"y":18678.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bfb0b514-3b9f-4e9a-85ca-d0ca714b09f6","savedPayload":{"position":{"x":30820.37828125503,"y":18678.802375894946},"targetPosition":{"x":30820.37828125503,"y":18678.802375894946},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Design Space","name":"My Design Space","project":"Superalgos","spaceStyle":{"type":"Space Style","name":"My Space Style","config":" {\n \"backgroundColor\": \"UI_COLOR.BLACK\",\n \"node\": {\n \"fontSize\": 16,\n \"imageSize\": 60,\n \"type\": {\n \"fontColor\": \"UI_COLOR.WHITE\"\n },\n \"name\": {\n \"fontColor\": \"UI_COLOR.WHITE\"\n },\n \"menuItem\": {\n \"backgroundColor\": \"UI_COLOR.BLACK\",\n \"fontColor\": \"UI_COLOR.WHITE\",\n \"fontSize\": 14,\n \"imageSize\": 14\n }\n }\n }","project":"Superalgos","id":"fad0e429-f7a7-4b62-a2a5-2ead29b8f695","savedPayload":{"position":{"x":25236.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"spaceSettings":{"type":"Space Settings","name":"New Space Settings","config":"{\n \"node\": {\n \"distancePercentage\": 60,\n \"radiusPercentage\": 85,\n \"massPercentage\": 100,\n \"menuItem\": {\n \"widthPercentage\": 100,\n \"heightPercentage\": 60,\n \"radiusPercentage\": 90\n }\n },\n \"physics\": false\n}","project":"Superalgos","id":"05c9d6d5-24c4-4eec-9aca-9668d6486fdd","savedPayload":{"position":{"x":24636.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8485ce5-67f3-4476-b9e2-80994e49c318","savedPayload":{"position":{"x":24936.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":255,"y":588.3125}}}},{"type":"Superalgos Project","name":"New Superalgos Project","project":"Superalgos","projectDefinition":{"type":"Project Definition","name":"Superalgos","config":"{ \n \"codeName\": \"Superalgos\"\n}","project":"Superalgos","id":"d7975b33-3654-4e37-8255-90dbf51c3789","savedPayload":{"position":{"x":24726.791666666664,"y":24993.594484167515},"targetPosition":{"x":24426.791666666664,"y":24993.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"spaces":{"type":"Spaces","name":"New Spaces","project":"Superalgos","id":"da1661f6-808c-402d-aaa1-0aa3b7052979","savedPayload":{"position":{"x":24426.791666666664,"y":25293.594484167515},"targetPosition":{"x":24426.791666666664,"y":24993.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"mines":{"type":"Mines","name":"New Mines","project":"Superalgos","id":"c37ef894-7662-4327-879c-23a7d05c707a","savedPayload":{"position":{"x":24126.791666666664,"y":24993.594484167515},"targetPosition":{"x":24426.791666666664,"y":24993.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"otherHierarchies":{"type":"Other Hierarchies","name":"New Other Hierarchies","project":"Superalgos","id":"90ef906a-a979-4ca3-abad-d6bccaf03dbb","savedPayload":{"position":{"x":24426.791666666664,"y":24693.594484167515},"targetPosition":{"x":24426.791666666664,"y":24993.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0539e0b4-2d9b-467d-88be-36d45d778823","savedPayload":{"position":{"x":24426.791666666664,"y":24993.594484167515},"targetPosition":{"x":24426.791666666664,"y":24993.594484167515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Tutorial","name":"Trading Bot Layers","config":"{\n \"title\": \"Trading Bot Layers\",\n \"summary\": \"Hi! I'm going to show you everything about the layers of the trading bot... the ones featured on charts associated with trading sessions!\",\n \"subTitle\": \"\",\n \"gif\": \"\",\n \"image\": \"trading-bot\",\n \"definition\": \"Let's get on with it! The ->Trading Bot-> outputs dozens of products, and they're all featured in three separate layer managers:\",\n \"bulletArray\": [\n [\n \"Trading Engine\",\n \" features layers that turn on and off the reporting of values of nodes in the ->Trading Engine-> hierarchy.\"\n ],\n [\n \"Trading System\",\n \" features layers that turn on and off multiple types of reports at the level of the ->Trading System->.\"\n ],\n [\n \"Simulation Objects\",\n \" features layers that affect the rendering of visual information over the charts.\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Getting Ready","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Load a Fresh Workspace","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Load a Fresh Workspace!\",\n \"gif\": \"\",\n \"image\": \"workspace\",\n \"definition\": \"But before we go any further, let's make sure we are starting with a fresh workspace!\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"Workspaces with the prefix Plugin \\u2192 comes with the software. The rest are yours. When you open a plugin workspace a copy of it is made for you. Plugins allways remain unchanged.\",\n \"tip\": \"\",\n \"important\": \"This tutorial requires starting with a fresh Plugin \\u2192 Weak-hands Buster v2 workspace. So, unless you loaded the plugin workspace right before starting, please select it from the workspace panel on the right and come back to me after the workspace loads—just click Resume on my menu!\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"workspaces\": \"Open\"\n}","project":"Superalgos","id":"08f9486c-22f5-4b5c-b41f-d8481b9f9d5a","savedPayload":{"position":{"x":19340.95678840193,"y":44290.30382379679},"targetPosition":{"x":19210.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Workspace","name":"My Default Workspace","id":"1c4772fb-d989-4f06-9335-81e4fc4b8009"}}},{"type":"Tutorial Step","name":"Freeze! Don't Move!","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Feeze! Don't Move!\",\n \"gif\": \"\",\n \"image\": \"stop-loss\",\n \"definition\": \"I've got something to tell you before we move on, but I'm struggling to find the right words... I just wouldn't want to come across as a control freak!\",\n \"paragraph1\": \"It's not like you may break something or anything... nothing to fear at all... it's just that... I rely on the fresh state of the workspace to predict what you will see when I take you places. I may comment on what you will experience along the journey, and use my predictions to make the tour juicier and interesting! So...\",\n \"callOut\": \"Don't fool around too much unless I tell you to! I mean, you may look around, but don't make a mess! Fine! Do what you want! If you ever feel I lost you, just start over with a fresh workspace!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"workspaces\": \"Close\"\n}","project":"Superalgos","id":"1789569c-20a3-4536-934e-15b6f731b851","savedPayload":{"position":{"x":19445.341111407073,"y":44373.54754360989},"targetPosition":{"x":19210.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Ready to Mine?","config":"{\n \"subTitle\": \"Ready to Mine?\",\n \"gif\": \"\",\n \"image\": \"data-tasks\",\n \"definition\": \"We'll do some data mining so that we may then run a quick ->Backtesting Session-> and explore the resulting simulation...\",\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"The sensor bot will run on the BTC/USDT market (Binance) from January 1st, 2020, along with the indicators required by the Weak-hands Buster ->Trading System->.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"If you have data on this market/exchange but on a different time range, this may affect your data! Read the sensor bot documentation to learn how! If the data you have is not important, feel free to keep going!\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"https://docs.superalgos.org/suite-hierarchy-network.html#sensor-bot-instance\"\n}","project":"Superalgos","id":"01079470-3a5c-40fe-9695-d6087b0623fe","savedPayload":{"position":{"x":19503.27004032121,"y":44493.838203980624},"targetPosition":{"x":19210.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Tasks","name":"New Data Tasks","id":"4df1cb4e-b9ca-4f62-bb5f-c7e262aaa22a"}}},{"type":"Tutorial Step","name":"Let's Mine Some Data!","config":"{\n \"subTitle\": \"Let's Mine Some Data!\",\n \"gif\": \"\",\n \"image\": \"run\",\n \"definition\": \"Now that you understand the implications of running this data mining operation, let's get on with it!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Select Run All Exchange Data Tasks on the data mining node menu!\",\n \"paragraph2\": \"\",\n \"note\": \"If you are doing this tutorial after doing the Getting Started tutorial, chances are you may already have part of the data required, which may make things faster!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"6b0d345c-5981-4459-9967-7ca89739a5ab","savedPayload":{"position":{"x":19503.27004032121,"y":44627.35076435441},"targetPosition":{"x":19210.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Tasks","name":"New Data Tasks","id":"4df1cb4e-b9ca-4f62-bb5f-c7e262aaa22a"}}},{"type":"Tutorial Step","name":"Are We Up to Date?","config":"{\n \"subTitle\": \"Are We Up to Date?\",\n \"gif\": \"\",\n \"image\": \"indicator-process-instance\",\n \"definition\": \"Now we have to wait a bit! When all processes reach the 100% mark, we may proceed!\",\n \"paragraph1\": \"As you probably know, the time required to mine data depends on many things. If you already have some of this data from previous activities, it may be faster!\",\n \"callOut\": \"Monitor the processes for all indicators in the Sparta and Masters data mines. When all of them reach 100%, then stop the data mining operation and click Next to continue.\",\n \"paragraph2\": \"\",\n \"tip\": \"Bollinger Channels will likely be last!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"01767aee-8930-4d29-9b55-74d13dd01f2f","savedPayload":{"position":{"x":19445.341111407073,"y":44747.64142472514},"targetPosition":{"x":19210.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Indicator Process Instance","name":"Exponential Moving Average (EMA) Multi-Period-Market","id":"9adffd60-8756-44f0-9290-692711f43349"}}},{"type":"Tutorial Step","name":"Ready. Set. Go!","config":"{\n \"subTitle\": \"Ready. Set. Go!\",\n \"gif\": \"\",\n \"image\": \"task\",\n \"definition\": \"Let's do some backtesting! This should be rather quick, as we are testing six months' worth of historic data on daily files.\",\n \"paragraph1\": \"Running a trading task is quite similar to running a data mining task. The difference lies in that—after running the task—you also need to run the trading session.\",\n \"callOut\": \"Select Run on the ->Task-> menu and then select Run on the ->Backtesting Session-> menu.\",\n \"paragraph2\": \"\",\n \"note\": \"When the ->Backtesting Session-> informs it has finished, then stop the task and click Next to continue.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\" \n}","project":"Superalgos","id":"2046f4aa-a9b4-419e-9681-107f6b0002c0","savedPayload":{"position":{"x":19340.95678840193,"y":44830.88514453824},"targetPosition":{"x":19210.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Task","name":"WHB v2","id":"f3dccd9e-6130-40aa-b794-fca344df4a99"}}}],"tutorialTopics":[],"id":"45e0a80c-a3ce-4e81-8e5c-3d97b226e9fc","savedPayload":{"position":{"x":19210.791666666664,"y":44560.594484167515},"targetPosition":{"x":18910.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Trading Engine Layers","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Trading Engine Layers\",\n \"gif\": \"\",\n \"image\": \"trading-engine\",\n \"definition\": \"You are familiar with the concept of the ->Trading Engine->, right? I will teach you which layers affect which sections of the hierarchy so that you may access the info!\",\n \"paragraph1\": \"I'm assuming you've done the Welcome tutorial... Remember when you split the screen in half? You slid the mouse pointer over the candles on the chart, and for each candle, you could see the value of certain nodes in the trading engine hierarchy, right?\",\n \"callOut\": \"Well, that's what it's all about! When you turn a certain layer on, you turn on the visualization of values for a certain section of the hierarchy.\",\n \"paragraph2\": \"Let's take a closer look!\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"1, 2, 3, Counting!","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"1, 2, 3, Counting!\",\n \"gif\": \"\",\n \"image\": \"episode-counters\",\n \"definition\": \"Let's test the first ->Layer-> in the Trading Engine ->Layer Manager->: ->Episode Counters->.\",\n \"paragraph1\": \"\",\n \"callOut\": \"Turn the layer on and slide your mouse pointer over the chart, from the far left to the far right-hand side of your screen!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"See what happens with the various counters on the hierarchy below... that is, ->Periods->, ->Strategies->, ->Positions->, and so on! You should see something similar to what I show in the video on the next step...\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"cb3abe07-2fcf-4708-b585-6c0bc4cefa01","savedPayload":{"position":{"x":19170.599287801997,"y":45010.594484167515},"targetPosition":{"x":18910.791666666664,"y":44860.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Periods","name":"New Periods","id":"6c6579c8-fb13-41f6-a25b-1833d2963640"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"trading-bot-layers-episode-counters-01\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\"\n}","project":"Superalgos","id":"ce4aa155-0772-428c-8ed0-b051275c1ec1","savedPayload":{"position":{"x":19060.791666666664,"y":45120.40210530285},"targetPosition":{"x":18910.791666666664,"y":44860.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"How About the Rest?","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"How About the Rest?\",\n \"gif\": \"\",\n \"image\": \"episode\",\n \"definition\": \"Now, why don't the nodes further to the left show their values too? Say, ->Exit Type->, ->Status->, ->End Rate->, ->Begin Rate->, and so on?\",\n \"paragraph1\": \"Let's change that!\",\n \"callOut\": \"Scroll the Trading Engine layer manager until you find the Current Episode layer. Turn it on!\",\n \"paragraph2\": \"Now slide your mouse pointer again... et voilà!\",\n \"note\": \"\",\n \"tip\": \"By turning layers on and off, you turn on and off system's ability to report the values on different sections of the ->Trading Engine-> hierarchy!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"c47f1a67-50bb-4e4b-8449-112eacdb9b8c","savedPayload":{"position":{"x":18910.791666666664,"y":45160.594484167515},"targetPosition":{"x":18910.791666666664,"y":44860.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Periods","name":"New Periods","id":"6c6579c8-fb13-41f6-a25b-1833d2963640"}}},{"type":"Tutorial Step","name":"Et Voilà","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Et Voilà!\",\n \"gif\": \"\",\n \"image\": \"current\",\n \"definition\": \"So, we turned on the Episode Counters and the Current Episode layers... let's take a look at the hierarchy...\",\n \"paragraph1\": \"\",\n \"callOut\": \"Track your way up the hierarchy to discover what exactly we were looking at all this time...\",\n \"paragraph2\": \"Right! In the beginning ->Periods->, ->Strategies->, and ->Positions-> where showing their values because they are under the ->Episode Counters-> node of the hierachy... the one we turned on first!

If you follow the hierarchy upstream, you will find the ->Episode-> node, and if you keep going further upstream, you'll find the ->Current-> node. Exactly! Current Episode!.\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true\n}","project":"Superalgos","id":"6531b015-26b7-4438-8226-021b5837421a","savedPayload":{"position":{"x":18760.791666666664,"y":45120.40210530285},"targetPosition":{"x":18910.791666666664,"y":44860.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Periods","name":"New Periods","id":"6c6579c8-fb13-41f6-a25b-1833d2963640"}}},{"type":"Tutorial Step","name":"Compartmentalize It!","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Compartmentalize It!\",\n \"gif\": \"\",\n \"image\": \"bot-layers\",\n \"definition\": \"The reason why the access to values in the hierarchy is compartmentalized in layers is that layers correspond to data products output by the bot.\",\n \"paragraph1\": \"Compartmentalization of definitions—and information in general—is a theme in and of itself throughout the system, as it is one of the mechanisms by which complexity is successfully administered.\",\n \"callOut\": \"When you need to use this feature to track values on the trading engine hierarchy, you may choose to turn on multiple layers at once... even all of them if you wish! Just keep in mind that the more layers you turn on, the more files de UI reads, thus the more load you put on your hardware!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"96a53e4e-812f-4da5-b6de-66b70a1c078c","savedPayload":{"position":{"x":18650.98404553133,"y":45010.594484167515},"targetPosition":{"x":18910.791666666664,"y":44860.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"a9b75728-f884-4ab7-aa1e-d4967d90bd5f","savedPayload":{"position":{"x":18910.791666666664,"y":44860.594484167515},"targetPosition":{"x":18910.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Objects Layers","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"The Elefant in the Room","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Elefant? What Elefant?\",\n \"gif\": \"\",\n \"image\": \"strategy\",\n \"definition\": \"Will someone please acknowledge the elefant in the room? Why did those counters point to one or two strategies and one position?\",\n \"paragraph1\": \"\",\n \"callOut\": \"Go to the Simulation Objects layer manager and turn on the ->Strategies-> layer.\",\n \"paragraph2\": \"What's that? It's a strategy! We are in a simulation! The Strategies layer marks the span of time on which a strategy is active. Notice the ->Plotter Panel-> that drifted to the corner when you turned the layer on. Now, point your mouse to the span of time between the strategy brakets and see what happens... \",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"09cf3c10-29bb-4399-99b1-61c996747fa0","savedPayload":{"position":{"x":18510.657246386323,"y":44999.312044649334},"targetPosition":{"x":18610.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Making Sense of Objects","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Making Sense of Objects\",\n \"gif\": \"\",\n \"image\": \"layer\",\n \"definition\": \"The layers in the Simulation Objects layer manager feature visual representations of the data that makes up simulations.\",\n \"paragraph1\": \"In other words, each of these layers render graphics over the charts that help us visualize—therefore, better understand—what happens during a trading session.\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"Each layer may feature plotter panels which usually display the hard data associated with the concept represented by the particular layer.\",\n \"tip\": \"Notice how the data in the panel becomes visible only when the pointer of the mouse lies within the candles engulfed by the object.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Center\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"3eea3278-bcdc-4f1d-a7da-876c5df9a6ac","savedPayload":{"position":{"x":18415.543984063763,"y":44966.0304747236},"targetPosition":{"x":18610.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"What About the Position?","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"What About the Position?\",\n \"gif\": \"\",\n \"image\": \"position\",\n \"definition\": \"As you very clearly pointed, the episode counters showed a strategy, but also a position... what about that?\",\n \"paragraph1\": \"\",\n \"callOut\": \"Scroll down the Simulation Objects layer manager and turn on the ->Position Base Asset-> layer!\",\n \"paragraph2\": \"Nice! A green triangle means that the position was a hit! It would be red otherwise!\",\n \"note\": \"The horizontal side of the triangle marks the ->Entry Target Rate->. The vertical side marks the datetime the position was closed. The vertex away from the horizontal side is the ->Exit Target Rate->.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"409e67f2-6944-49bd-b858-53aed2adaaff","savedPayload":{"position":{"x":18330.221255830234,"y":44912.41865127813},"targetPosition":{"x":18610.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"The Beauty of the Triangle","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"The Beauty of the Triangle\",\n \"gif\": \"\",\n \"image\": \"bullet-warning\",\n \"definition\": \"I'm sure you would agree that the triangle is a quick visual clue to grasp how the trade went in a glimpse!\",\n \"paragraph1\": \"That's one of the core ideas behind these visualization features: quick and effective communication. \",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"The second core idea is that—by being able to see what went on with the session—it is easier to spot the weaknesses in your strategies, and how you may be able to improve them!\",\n \"tip\": \"On a side note, notice that the data displayed on panels is the same data available on the ->Trading Engine-> hierarchy.\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"24c76654-4411-4d28-8bde-2c0391f92798","savedPayload":{"position":{"x":18258.96749955605,"y":44841.164895003945},"targetPosition":{"x":18610.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Why 3 Position Layers?","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Why 3 Position Layers?\",\n \"gif\": \"\",\n \"image\": \"position\",\n \"definition\": \"Did you notice there are three different layers about positions? ->Position->, ->Position Base Asset->, and ->Position Quoted Asset->!\",\n \"paragraph1\": \"I'll give you the short version: \",\n \"callOut\": \"The system keeps the accounts relative to both the base asset and the quoted asset. It also keeps a consolidated account of both assets (hence, position). What set of accounts is relevant to you depends on how the strategy is designed!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"Reading this documentation page is a must to fully understand this concept.\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"https://docs.superalgos.org/suite-trading-engine-base-asset-and-quoted-asset.html\"\n}","project":"Superalgos","id":"649427a8-47a4-4fab-9a31-25fd10916df8","savedPayload":{"position":{"x":18205.355676110576,"y":44755.84216677042},"targetPosition":{"x":18610.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Remember Flexibility!","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Remember Flexibility!\",\n \"gif\": \"\",\n \"image\": \"nodes-highlights\",\n \"definition\": \"A corollary to the previous step is that not everything will make sense to you!\",\n \"bulletListIntro\": \"Superalgos is designed and built with flexibility in mind. Different users, different approaches to trading, different strategies, they all have different needs!\",\n \"paragraph1\": \"\",\n \"callOut\": \"The system doesn't know what your intent is. It provides a set of tools that you need to use wisely for them to make sense!\",\n \"paragraph2\": \"\",\n \"tip\": \"Learn to pay attention to the information that is relevant to you and discard what is not!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"7bb9d6d3-908b-4857-ab22-6eeeead27a41","savedPayload":{"position":{"x":18172.074106184842,"y":44660.72890444786},"targetPosition":{"x":18610.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Phased Management","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Phased Management\",\n \"gif\": \"\",\n \"image\": \"phase\",\n \"definition\": \"The ->Manage Stage-> enables the management of your stop loss and take profit targets in phases. Let's see how that looks in simulations...\",\n \"paragraph1\": \"\",\n \"callOut\": \"Find the Stop Loss and the Take Profit layers and turn them on!\",\n \"paragraph2\": \"It's probably self-explanatory, right? The ->Phase-> icon marks the switching of phases, thus, of the ->Formula-> used to determine each target.\",\n \"note\": \"\",\n \"tip\": \"This is a fantastic feature when designing strategies, as you can literally see what the formula does, and how phases change!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"80d0e95d-deef-42fa-917f-d9d60786d9cb","savedPayload":{"position":{"x":18160.791666666664,"y":44560.594484167515},"targetPosition":{"x":18610.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Orders in Order","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Orders in Order\",\n \"gif\": \"\",\n \"image\": \"bullet-market-sell-order\",\n \"definition\": \"You're familiar with the visualization of limit orders from the Welcome tutorial. It's time for market orders to shine!\",\n \"paragraph1\": \"Weak-hands Buster V.2—born with earlier versions of the system—uses single market orders to get in and out of positions. Let's see how those look over the charts...\",\n \"callOut\": \"Find the Market Buy Orders and Market Sell Orders layers and turn them on!\",\n \"paragraph2\": \"\",\n \"note\": \"Like with limit orders, a red bullet means a sell order, and a green bullet means a buy order. \",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"ab979e22-46f6-438f-bc1c-9fc5667c62b2","savedPayload":{"position":{"x":18172.074106184842,"y":44460.46006388717},"targetPosition":{"x":18610.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Stages & Time","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Stages & Time\",\n \"gif\": \"\",\n \"image\": \"close-stage-event\",\n \"definition\": \"Layers corresponding to stages, that is, ->Trigger Stage->, ->Open Stage->, ->Close Stage->, and ->Manage Stage-> are markers of spans of time.\",\n \"paragraph1\": \"That is, they signal the span of time on which each stage was open.\",\n \"callOut\": \"Try them out! Find the layers of the different stages and turn them on!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Feel free to turn off a few of the layers you have on at the moment, for clarity!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"822c4fd3-770e-4579-b8d8-5bba5c11f739","savedPayload":{"position":{"x":18205.355676110576,"y":44365.346801564614},"targetPosition":{"x":18610.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Episode X","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Episode X\",\n \"gif\": \"\",\n \"image\": \"episode\",\n \"definition\": \"There's one layer left... ->Episode->!. It marks the duration of the episode and features several plotter panels...\",\n \"paragraph1\": \"\",\n \"callOut\": \"Turn the Episode layer on!\",\n \"paragraph2\": \"In this case, the episode is six months long, so all you will see is a line at the bottom of the screen, and the episode icon on both sides, signaling the episode is longer than the period represented on screen.\",\n \"note\": \"As usual, the plotter panels feature information that explained on the ->Trading Engine-> section of the documentation.\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"55c98dad-a864-45d4-80d9-5284ca252240","savedPayload":{"position":{"x":18258.96749955605,"y":44280.024073331086},"targetPosition":{"x":18610.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Understanding Objects Data","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Understanding Objects Data\",\n \"gif\": \"\",\n \"image\": \"bullet-warning\",\n \"definition\": \"The data available in Simulation Objects represent the state of affairs at the moment the object is closed, or at the current time if it hasn't closed yet!\",\n \"paragraph1\": \"In contrast, the layers in the Trading Engine and Trading System layer managers represent the value of nodes at the candle signaled by the mouse pointer.\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"tip\": \"\",\n \"important\": \"This is a fundamental difference that you must understand, as otherwise, you may misinterpret the information presented by Simulation Objects. I will explain the most important implications in the next few steps!\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"8b3db214-d507-46f4-be2e-61e5f9a1272e","savedPayload":{"position":{"x":18330.221255830234,"y":44208.7703170569},"targetPosition":{"x":18610.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Daily Files vs. Market Files","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Daily Files vs. Market Files\",\n \"gif\": \"\",\n \"image\": \"dataset-definition\",\n \"definition\": \"Superalgos processes time frames below one hour in Daily Files, meaning that the data corresponding to one day is stored in one file.\",\n \"paragraph1\": \"In contrast, data for timeframes of one hour and above are stored in Market Files, meaning that data corresponding to the whole market is stored in one file.\",\n \"callOut\": \"\",\n \"paragraph2\": \"As a result, when working in time frames below one hour, events that span multiple days generate multiple objects: one per day!\",\n \"tip\": \"\",\n \"important\": \"This means that, when working in low time frames, you may run into multiple objects per concept or event, each showing the data corresponding to the close of the day!\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"b246456c-f85a-479b-ac70-e0752e5b5261","savedPayload":{"position":{"x":18415.543984063763,"y":44155.15849361143},"targetPosition":{"x":18610.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Bring Me Back To Earth!","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Bring Me Back To Earth!\",\n \"gif\": \"\",\n \"image\": \"take-position-event\",\n \"definition\": \"I know! This all sounds too abstract! Let me lay out a few examples!\",\n \"bulletListIntro\": \"When working in sub-hour time frames and a concept or event—for example, a position—spans multiple days:\",\n \"bulletArray\": [\n [\n \"You may see multiple triangles!\",\n \"One triangle is drawn at the close of each day, and one last triangle is drawn at the close of the position, or—in case the position hasn't closed yet— at the current datetime.\"\n ],\n [\n \"Statistics and metrics are fragmented too!\",\n \"For example, ROI, Profit Loss, and the evaluation of the position as a hit or a fail are determined daily!\"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"5fc87b22-bd7d-427e-b797-9f0fc1ba274b","savedPayload":{"position":{"x":18510.657246386323,"y":44121.8769236857},"targetPosition":{"x":18610.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"16b109a8-0005-4d43-8db1-4f0c6312a085","savedPayload":{"position":{"x":18610.791666666664,"y":44560.594484167515},"targetPosition":{"x":18910.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Trading System Layers","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Trading System Layers\",\n \"gif\": \"\",\n \"image\": \"trading-system\",\n \"definition\": \"The last layer manager is about the ->Trading System-> that features the trading rules for the simulation!\",\n \"paragraph1\": \"These layers work similar to those in the Trading Engine layer manager: they show information on the design space, not on the charts. The difference is that these show stuff on the trading system hierarchy!\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"These layers are particularly useful when designing, testing, and debugging strategies! Just wait and see!\",\n \"tip\": \"Before continuing, turn some Simulation Objects layers off to avoid cluttering up the screen!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Trading System Errors!","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Trading System Errors!\",\n \"gif\": \"\",\n \"image\": \"bullet-error\",\n \"definition\": \"When writing conditions and formulas, you may make mistakes. Remember conditions must evaluate to true or false and formulas to a number? \",\n \"paragraph1\": \"Well, if they don't, you will get an error! Turning on this layer when you're going back and forth crafting and testing a strategy is a must!\",\n \"callOut\": \"There are no errors in this trading system, but I just planted a fake one so that you may see how they are reported! Look at the ->Formula-> on the left!\",\n \"paragraph2\": \"Now, what if the section of the hierarchy was collapsed? Would you still be able to see error messages?
Let's run a quick test! Collapse the ->Initial Targets-> node!\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"setErrorMessageReferenceParent\": \"This is formula has a fake error!\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"99e8ab2e-b689-4187-ab47-6acee91093b2","savedPayload":{"position":{"x":18633.62780691328,"y":44145.78945445799},"targetPosition":{"x":18910.791666666664,"y":44260.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Formula","name":"New Formula","id":"492cee3d-1709-41c5-bfd8-e700a3fdf3da"}}},{"type":"Tutorial Step","name":"Trading System Highlights","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Trading System Highlights!\",\n \"gif\": \"\",\n \"image\": \"bullet-info\",\n \"definition\": \"Whenever something relevant happens with any given node in the trading system hierarchy, the node is highlighted!\",\n \"paragraph1\": \"\",\n \"callOut\": \"Turn the Trading System Highlights layer on, slide your mouse over the chart left of the position, and check these conditions and situations! Now place the mouse pointer over the candle where the strategy is triggered... (08 Mar 2020 at 01 hs)...\",\n \"paragraph2\": \"\",\n \"note\": \"Conditions are highlighted when they validate true; situations, when all conditions validate true; stages and phases, when they become active, and so on!\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"8d16861d-5cd6-4f31-97a3-95e152266cd8","savedPayload":{"position":{"x":18698.6596323107,"y":44048.46244981155},"targetPosition":{"x":18910.791666666664,"y":44260.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Condition","name":"Slope Not Extreme, or...","id":"da235bf3-976c-4832-a565-98a6bb13236d"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"gif\": \"trading-bot-layers-trading-system-highlights\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\"\n}","project":"Superalgos","id":"8e34aa88-c0fc-4268-9638-a72c96104b9a","savedPayload":{"position":{"x":18795.98663695714,"y":43983.430624414126},"targetPosition":{"x":18910.791666666664,"y":44260.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Quick Refresher On Stages","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Quick Refresher on Stages!\",\n \"gif\": \"\",\n \"image\": \"trigger-stage\",\n \"definition\": \"Notice that not all nodes are evaluated all the time! Only those in the active stage are!\",\n \"paragraph1\": \"This is a quick refresher on strategy stages! If you haven't read the docs on trading systems and strategies, then find the time and do it!\",\n \"callOut\": \"Notice how these conditions are not highlighted for the candles within the position.\",\n \"paragraph2\": \"This is because you are looking at the ->Trigger Stage-> definitions. These definitions are evaluated until a ->Strategy-> is triggered. Once triggered, the ->Open Stage-> kicks in, and so on!\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Left\",\n \"slider\": \"toMiddle\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"https://docs.superalgos.org/suite-strategies.html\"\n}","project":"Superalgos","id":"89f8b883-47f4-4fc0-828a-d2ffeff56737","savedPayload":{"position":{"x":18910.791666666664,"y":43960.594484167515},"targetPosition":{"x":18910.791666666664,"y":44260.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Trading System Values!","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Trading System Values!\",\n \"gif\": \"\",\n \"image\": \"formula\",\n \"definition\": \"The Trading System Values layers works like the layers on the Trading Engine layer manager showing the values of nodes...\",\n \"paragraph1\": \"\",\n \"callOut\": \"Turn the Trading System Values layer on, slide your mouse over the chart and check the stop formulas!\",\n \"paragraph2\": \"\",\n \"note\": \"The common theme among these layers is that they provide on-the-fly information about each node, for each candle!\",\n \"tip\": \"Is it fair to say that our ->Trading Bot-> is 100% acccountable?\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"a49327ef-0daf-494a-9b76-6d53c914da16","savedPayload":{"position":{"x":19025.596696376193,"y":43983.430624414126},"targetPosition":{"x":18910.791666666664,"y":44260.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Formula","id":"6f65573a-c2ac-476a-9ca1-738971e3ff78"}}},{"type":"Tutorial Step","name":"The Rest of the Crew","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"The Rest of the Crew!\",\n \"gif\": \"\",\n \"image\": \"bot-layers\",\n \"definition\": \"The rest of the layers are virtually self-explanatory once you understand the standard workings... so, I'll be brief!\",\n \"bulletArray\": [\n [\n \"Status,\",\n \"for nodes which have one! \"\n ],\n [\n \"Progress,\",\n \"for nodes that may feature an indication of progress!\"\n ],\n [\n \"Running,\",\n \"for nodes that are evaluated at certain points in time!\"\n ],\n [\n \"Announcements,\",\n \"for announcements set up at the trading system, currently broadcasted over Telegram!\"\n ],\n [\n \"Warnings,\",\n \"when something unusual happens but is not considered an error!\"\n ],\n [\n \"System Info,\",\n \"may be displayed on many nodes, sort of like a verbose mode. \"\n ]\n ],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"7aa8f881-788d-423d-9f42-70ace943023a","savedPayload":{"position":{"x":19122.923701022628,"y":44048.46244981155},"targetPosition":{"x":18910.791666666664,"y":44260.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Time To Go Out and Play!","config":"{\n \"title\": \"\",\n \"summary\": \"\",\n \"subTitle\": \"Time To Go Out and Play!\",\n \"gif\": \"\",\n \"image\": \"play\",\n \"definition\": \"That's all folks! We've covered it all! Now it's time to go out and play! Have fun!\",\n \"paragraph1\": \"Take some time to explore these layers, paying special attention to those you feel will be of the most use.\",\n \"callOut\": \"Remember, the Trading Bot Layers are a fundamental tool when designing, testing, and debugging strategies!

See you next time!\",\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"Drop by the documentation for more info!\",\n \"important\": \"\",\n \"warning\": \"\",\n \"position\": \"\",\n \"slider\": \"toMiddle\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","id":"dcf1ae5f-f200-4201-ab28-c921417ab7f2","savedPayload":{"position":{"x":19187.95552642005,"y":44145.78945445799},"targetPosition":{"x":18910.791666666664,"y":44260.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"c57458f7-5c9d-41b7-aea1-6c5aff4ef791","savedPayload":{"position":{"x":18910.791666666664,"y":44260.594484167515},"targetPosition":{"x":18910.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"f96b383c-4916-4864-868b-b2b5cf9c5033","savedPayload":{"position":{"x":18910.791666666664,"y":44560.594484167515},"targetPosition":{"x":18910.791666666664,"y":44560.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isPlaying":true,"isRunning":false},"tutorial":{"status":"Done"}}}]} \ No newline at end of file +{"type":"Workspace","name":"Weak-hands Buster v2","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[{"type":"Project Data Tasks","name":"Superalgos","project":"Superalgos","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","project":"Superalgos","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Sparta","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Sparta","project":"Superalgos","tasks":[{"type":"Task","name":"EMA","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"EMA","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Exponential Moving Average (EMA) Multi-Period-Market","project":"Superalgos","id":"9adffd60-8756-44f0-9290-692711f43349","savedPayload":{"position":{"x":23320.126508730755,"y":29392.688294073963},"targetPosition":{"x":23620.126508730755,"y":29392.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Exponential Moving Average (EMA) Multi-Period-Daily","project":"Superalgos","id":"559fc728-018a-4e8e-a5fa-1e37958e4f6c","savedPayload":{"position":{"x":23470.126508730755,"y":29132.88067293863},"targetPosition":{"x":23620.126508730755,"y":29392.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"82a8c05f-a6f6-4728-8271-7b327c2b72ee","savedPayload":{"position":{"x":23620.126508730755,"y":29392.688294073963},"targetPosition":{"x":23879.934129866087,"y":29542.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8ae4fc50-8c1f-4e45-9ffd-fad368816b9a","savedPayload":{"position":{"x":23879.934129866087,"y":29542.688294073963},"targetPosition":{"x":24139.74175100142,"y":29692.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51b49b9d-cb97-4d98-ad8f-9f691320bac2","savedPayload":{"position":{"x":24139.74175100142,"y":29692.688294073963},"targetPosition":{"x":24399.549372136753,"y":29842.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"63728769-73e4-474e-8aa3-0d82bedca08e","savedPayload":{"position":{"x":24399.549372136753,"y":29842.688294073963},"targetPosition":{"x":24659.356993272086,"y":29992.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Sparta","id":"9cfffc48-486a-48cb-b641-98c82e314d3a"}}},{"type":"Data Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Exchange Raw Data","project":"Superalgos","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","config":"{ \n\"startDate\": \"2020-01-01\"\n}","project":"Superalgos","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"149bc037-9762-4737-b1b8-945b5ccee230","savedPayload":{"position":{"x":23931.241698334637,"y":28863.681567010735},"targetPosition":{"x":24173.94679664712,"y":29040.017142698478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"507bc325-1cbd-40f4-85eb-cfe77b78000e","savedPayload":{"position":{"x":24173.94679664712,"y":29040.017142698478},"targetPosition":{"x":24416.651894959603,"y":29216.35271838622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7c28a4a4-86da-43be-9e89-d01b202f27eb","savedPayload":{"position":{"x":24416.651894959603,"y":29216.35271838622},"targetPosition":{"x":24659.356993272086,"y":29392.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Volumes","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"ab6608d2-a876-42ca-afee-6ea8e996b720","savedPayload":{"position":{"x":24251.003349003902,"y":28621.315202389214},"targetPosition":{"x":24473.94679664712,"y":28822.054384296873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"6eebde17-ba9a-4ba6-9ef8-862762a9951a","savedPayload":{"position":{"x":24536.320303892448,"y":28528.61010407673},"targetPosition":{"x":24473.94679664712,"y":28822.054384296873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"3e3e037f-722b-46ed-b355-09a4116c2959","savedPayload":{"position":{"x":24473.94679664712,"y":28822.054384296873},"targetPosition":{"x":24566.651894959603,"y":29107.371339185418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f351c034-5a40-4831-aaaf-b92b97694e24","savedPayload":{"position":{"x":24566.651894959603,"y":29107.371339185418},"targetPosition":{"x":24659.356993272086,"y":29392.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Bands","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","project":"Superalgos","id":"9edfd024-2a02-4809-89cf-c79b52a4adf9","savedPayload":{"position":{"x":24782.393682651724,"y":28528.61010407673},"targetPosition":{"x":24844.76718989705,"y":28822.054384296873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","project":"Superalgos","id":"bc6520ae-f5e7-4d43-882d-f032dfe725ff","savedPayload":{"position":{"x":25067.71063754027,"y":28621.315202389214},"targetPosition":{"x":24844.76718989705,"y":28822.054384296873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}}],"id":"f5669135-8f3d-4ada-aef6-a503f831f612","savedPayload":{"position":{"x":24844.76718989705,"y":28822.054384296873},"targetPosition":{"x":24752.06209158457,"y":29107.371339185418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"db37b827-4200-4cfa-b973-9ad2c5d5c587","savedPayload":{"position":{"x":24752.06209158457,"y":29107.371339185418},"targetPosition":{"x":24659.356993272086,"y":29392.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","project":"Superalgos","id":"e09e4195-bf40-4b14-b603-51872fdb7156","savedPayload":{"position":{"x":25266.78818281979,"y":28765.953505405698},"targetPosition":{"x":25144.76718989705,"y":29040.017142698478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","project":"Superalgos","id":"40de2dfa-6faf-4dc3-b21e-8cf8e4a274f4","savedPayload":{"position":{"x":25443.123758507532,"y":29008.65860371818},"targetPosition":{"x":25144.76718989705,"y":29040.017142698478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"d890cbea-6399-4b88-ab5c-df5f9704817b","savedPayload":{"position":{"x":25144.76718989705,"y":29040.017142698478},"targetPosition":{"x":24902.06209158457,"y":29216.35271838622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"039dc305-4627-406e-8f40-ee2527cd4b99","savedPayload":{"position":{"x":24902.06209158457,"y":29216.35271838622},"targetPosition":{"x":24659.356993272086,"y":29392.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cbf6546f-5c9f-476d-ae9d-cfdc4a27cd58","savedPayload":{"position":{"x":24659.356993272086,"y":29392.688294073963},"targetPosition":{"x":24659.356993272086,"y":29692.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c43a111f-2783-490f-8570-3fd38f6fa76c","savedPayload":{"position":{"x":24659.356993272086,"y":29692.688294073963},"targetPosition":{"x":24659.356993272086,"y":29992.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}}],"id":"e83ad2a7-9bd0-41d1-aa76-4c889e76e482","savedPayload":{"position":{"x":24659.356993272086,"y":29992.688294073963},"targetPosition":{"x":24809.356993272086,"y":30252.495915209296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"af949a76-a6f4-4ec6-869e-f240480eea81","savedPayload":{"position":{"x":24809.356993272086,"y":30252.495915209296},"targetPosition":{"x":24959.356993272086,"y":30512.30353634463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"9ad0524d-ba18-4b45-b636-ffc088dd7c4c","savedPayload":{"position":{"x":24959.356993272086,"y":30512.30353634463},"targetPosition":{"x":25109.356993272086,"y":30772.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"d7975b33-3654-4e37-8255-90dbf51c3789"}}}],"id":"4df1cb4e-b9ca-4f62-bb5f-c7e262aaa22a","savedPayload":{"position":{"x":25109.356993272086,"y":30772.11115747996},"targetPosition":{"x":25259.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningTasks":{"type":"Learning Tasks","name":"New Learning Tasks","project":"Superalgos","projectLearningTasks":[{"type":"Project Learning Tasks","name":"Superalgos","project":"Superalgos","exchangeLearningTasks":[],"id":"3d879f9e-3f82-48f4-8186-ccc906099a1f","savedPayload":{"position":{"x":25559.356993272086,"y":30512.30353634463},"targetPosition":{"x":25409.356993272086,"y":30772.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"d7975b33-3654-4e37-8255-90dbf51c3789"}}}],"id":"2cd8cc1a-d9a0-4297-878f-b704894e968a","savedPayload":{"position":{"x":25409.356993272086,"y":30772.11115747996},"targetPosition":{"x":25259.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"testingTradingTasks":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","project":"Superalgos","projectTradingTasks":[{"type":"Project Trading Tasks","name":"Superalgos","project":"Superalgos","exchangeTradingTasks":[{"type":"Exchange Trading Tasks","name":"Binance","project":"Superalgos","marketTradingTasks":[{"type":"Market Trading Tasks","name":"Binance BTC/USDT","project":"Superalgos","tradingMineTasks":[{"type":"Trading Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"WHB v2","project":"Superalgos","bot":{"type":"Trading Bot Instance","name":"Low Frequency","config":"{}","project":"Superalgos","processes":[{"type":"Trading Process Instance","name":"Low Frequency Trading","project":"Superalgos","session":{"type":"Backtesting Session","name":"WHB v2","config":"{\"folderName\":\"WHB-v2\"}","project":"Superalgos","tradingParameters":{"type":"Trading Parameters","name":"New Parameters","project":"Superalgos","sessionBaseAsset":{"type":"Session Base Asset","name":"","config":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0\n}","project":"Superalgos","id":"fa7ece1b-0925-444a-808e-0175da02b228","savedPayload":{"position":{"x":28335.291877706186,"y":30552.48478700282},"targetPosition":{"x":28471.48902762805,"y":30819.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sessionQuotedAsset":{"type":"Session Quoted Asset","name":"","config":"{\n\"initialBalance\": 0\n}","project":"Superalgos","id":"00b998af-5c29-48c8-8826-d4e63c18540e","savedPayload":{"position":{"x":28424.55868811598,"y":30523.48024208079},"targetPosition":{"x":28471.48902762805,"y":30819.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","config":"{ \n\"initialDatetime\": \"2020-01-01\",\n\"finalDatetime\": \"2020-07-01\" \n}","project":"Superalgos","id":"6e3026a7-d451-4231-bb5a-eff95464b280","savedPayload":{"position":{"x":28518.41936714012,"y":30523.48024208079},"targetPosition":{"x":28471.48902762805,"y":30819.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","config":"{ \n\"label\": \"01-hs\"\n}","project":"Superalgos","id":"9f69f044-6d39-4c9a-88a3-5dc634e28bca","savedPayload":{"position":{"x":28607.686177549913,"y":30552.48478700282},"targetPosition":{"x":28471.48902762805,"y":30819.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","config":"{ \n\"marketOrderRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","project":"Superalgos","id":"be861734-9d9c-479c-b89d-6f39067b42af","savedPayload":{"position":{"x":28683.621061984013,"y":30607.654709903367},"targetPosition":{"x":28471.48902762805,"y":30819.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","config":"{ \n\"maker\": 0.1,\n\"taker\": 0.1\n}","project":"Superalgos","id":"2af98d0e-47b3-4714-a24a-8f4b6e856a17","savedPayload":{"position":{"x":28738.79098488456,"y":30683.589594337467},"targetPosition":{"x":28471.48902762805,"y":30819.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"snapshots":{"type":"Snapshots","name":"New Snapshots","config":"{ \n\"strategy\": true,\n\"position\": true\n}","project":"Superalgos","id":"227439e1-61ea-48fc-a41c-891af977b8ab","savedPayload":{"position":{"x":28767.79552980659,"y":30772.85640474726},"targetPosition":{"x":28471.48902762805,"y":30819.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"heartbeats":{"type":"Heartbeats","name":"New Heartbeats","config":"{ \n\"date\": true,\n\"candleIndex\": false\n}","project":"Superalgos","id":"2884bf0f-cd27-492f-a014-b41bc6b616e3","savedPayload":{"position":{"x":28767.79552980659,"y":30866.7170837714},"targetPosition":{"x":28471.48902762805,"y":30819.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedParameters":{"type":"User Defined Parameters","name":"New User Defined Parameters","config":"{ \n\"param1Name\": \"A text string value example\",\n\"param2Name\": 0\n}","project":"Superalgos","id":"9fe3c9a4-2961-402a-93d6-9659772d4954","savedPayload":{"position":{"x":28738.79098488456,"y":30955.983894181194},"targetPosition":{"x":28471.48902762805,"y":30819.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"caa614ed-c80e-4d7c-82f6-22dd05cc047c","savedPayload":{"position":{"x":28471.48902762805,"y":30819.78674425933},"targetPosition":{"x":28259.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingSystemReference":{"type":"Trading System Reference","name":"WHB v2","project":"Superalgos","id":"3843eabf-52dc-4dae-aa28-d9187a009aab","savedPayload":{"position":{"x":28559.356993272086,"y":31031.918778615294},"targetPosition":{"x":28259.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading System","name":"WHB v2","id":"975c2fc3-a8f5-43e9-900f-4a4f2430d128"}}},"tradingEngineReference":{"type":"Trading Engine Reference","name":"Low-Frequency","project":"Superalgos","id":"0c3253e9-355e-47f1-85ae-881bd64ed0d5","savedPayload":{"position":{"x":28471.48902762805,"y":31244.050812971258},"targetPosition":{"x":28259.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading Engine","name":"Low-Frequency","id":"eb20f622-71bf-4479-a574-d2320e1d4bd1"}}},"id":"1ff8cd88-dcd9-4528-b406-05647ddd8c9c","savedPayload":{"position":{"x":28259.356993272086,"y":31031.918778615294},"targetPosition":{"x":27959.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cf364276-eeae-4d16-b90c-3da9aecacfa0","savedPayload":{"position":{"x":27959.356993272086,"y":31031.918778615294},"targetPosition":{"x":27659.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Trading","id":"a8c8d761-96e5-4a86-9285-6c3881d61442"}}}],"id":"f55d9c28-8196-4b23-a840-769fbec83000","savedPayload":{"position":{"x":27659.356993272086,"y":31031.918778615294},"targetPosition":{"x":27359.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f3dccd9e-6130-40aa-b794-fca344df4a99","savedPayload":{"position":{"x":27359.356993272086,"y":31031.918778615294},"targetPosition":{"x":27059.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c1604baa-e824-4b58-b252-922a9fc879cf","savedPayload":{"position":{"x":27059.356993272086,"y":31031.918778615294},"targetPosition":{"x":26759.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2ef6bd4b-57a2-46d9-be37-5c16e315f4a3","savedPayload":{"position":{"x":26759.356993272086,"y":31031.918778615294},"targetPosition":{"x":26459.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"85153016-33c7-484d-9f10-2fc313f19051","savedPayload":{"position":{"x":26459.356993272086,"y":31031.918778615294},"targetPosition":{"x":26159.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"ba36975c-08d6-458d-b7c0-eb4684a85b5d","savedPayload":{"position":{"x":26159.356993272086,"y":31031.918778615294},"targetPosition":{"x":25859.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"0238badb-17b4-467a-ba99-ebb9659aea1e","savedPayload":{"position":{"x":25859.356993272086,"y":31031.918778615294},"targetPosition":{"x":25559.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"d7975b33-3654-4e37-8255-90dbf51c3789"}}}],"id":"5882d8a8-345b-4188-b1c1-797e9ff805d9","savedPayload":{"position":{"x":25559.356993272086,"y":31031.918778615294},"targetPosition":{"x":25259.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"productionTradingTasks":{"type":"Production Trading Tasks","name":"New Production Trading Tasks","project":"Superalgos","projectTradingTasks":[{"type":"Project Trading Tasks","name":"Superalgos","project":"Superalgos","exchangeTradingTasks":[{"type":"Exchange Trading Tasks","name":"Binance","project":"Superalgos","marketTradingTasks":[{"type":"Market Trading Tasks","name":"Binance BTC/USDT","project":"Superalgos","tradingMineTasks":[{"type":"Trading Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"WHB v2","project":"Superalgos","bot":{"type":"Trading Bot Instance","name":"Low Frequency","config":"{}","project":"Superalgos","processes":[{"type":"Trading Process Instance","name":"Low Frequency Trading","project":"Superalgos","session":{"type":"Live Trading Session","name":"WHB v2","config":"{\"folderName\":\"WHB-v2\"}","project":"Superalgos","tradingParameters":{"type":"Trading Parameters","name":"New Parameters","project":"Superalgos","sessionBaseAsset":{"type":"Session Base Asset","name":"","config":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0\n}","project":"Superalgos","id":"785c152d-03f4-4c42-8107-2a4481dc1c77","savedPayload":{"position":{"x":27212.526451663314,"y":33456.03953311575},"targetPosition":{"x":27049.134741158807,"y":33707.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sessionQuotedAsset":{"type":"Session Quoted Asset","name":"","config":"{\n\"initialBalance\": 0\n}","project":"Superalgos","id":"b9daac05-6265-40e9-b5e7-eeabbf7f2144","savedPayload":{"position":{"x":27282.278529595897,"y":33518.84458618442},"targetPosition":{"x":27049.134741158807,"y":33707.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","config":"{ \n\"initialDatetime\": \"2020-01-01\",\n\"finalDatetime\": \"2020-07-01\" \n}","project":"Superalgos","id":"b5971ea3-aa3b-4691-8bf1-5c5f6ba3950c","savedPayload":{"position":{"x":27329.208869107966,"y":33600.13031863578},"targetPosition":{"x":27049.134741158807,"y":33707.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","config":"{ \n\"label\": \"01-hs\"\n}","project":"Superalgos","id":"00a93153-88b7-4c62-82e3-ca96e9e56025","savedPayload":{"position":{"x":27348.723601585178,"y":33691.93991662649},"targetPosition":{"x":27049.134741158807,"y":33707.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","config":"{ \n\"marketOrderRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","project":"Superalgos","id":"0047f446-0cfc-42f5-8a57-a7599f97ea1a","savedPayload":{"position":{"x":27338.912489045528,"y":33785.28641703013},"targetPosition":{"x":27049.134741158807,"y":33707.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","config":"{ \n\"maker\": 0.1,\n\"taker\": 0.1\n}","project":"Superalgos","id":"f137906d-664b-4a00-8814-00dabcc8b386","savedPayload":{"position":{"x":27300.735911542433,"y":33871.03241400389},"targetPosition":{"x":27049.134741158807,"y":33707.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"snapshots":{"type":"Snapshots","name":"New Snapshots","config":"{ \n\"strategy\": true,\n\"position\": true\n}","project":"Superalgos","id":"5173568a-1f7f-461e-aa3b-006193997bac","savedPayload":{"position":{"x":27237.93085847376,"y":33940.784491936465},"targetPosition":{"x":27049.134741158807,"y":33707.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"heartbeats":{"type":"Heartbeats","name":"New Heartbeats","config":"{ \n\"date\": true,\n\"candleIndex\": false\n}","project":"Superalgos","id":"85f19b17-a752-4f20-a740-14883258f9bc","savedPayload":{"position":{"x":27156.6451260224,"y":33987.71483144854},"targetPosition":{"x":27049.134741158807,"y":33707.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedParameters":{"type":"User Defined Parameters","name":"New User Defined Parameters","config":"{ \n\"param1Name\": \"A text string value example\",\n\"param2Name\": 0\n}","project":"Superalgos","id":"3c15c609-1a9c-4712-a7eb-1aad80fcd20b","savedPayload":{"position":{"x":27064.83552803169,"y":34007.22956392575},"targetPosition":{"x":27049.134741158807,"y":33707.640703499375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8bf92d7-9037-4ddd-9a93-0963005465c4","savedPayload":{"position":{"x":27049.134741158807,"y":33707.640703499375},"targetPosition":{"x":26759.356993272086,"y":33629.99498996862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingSystemReference":{"type":"Trading System Reference","name":"WHB v2","project":"Superalgos","id":"52a08de1-1413-4a74-ab6b-5e50dd862b33","savedPayload":{"position":{"x":26909.356993272086,"y":33889.80261110395},"targetPosition":{"x":26759.356993272086,"y":33629.99498996862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading System","name":"WHB v2","id":"975c2fc3-a8f5-43e9-900f-4a4f2430d128"}}},"tradingEngineReference":{"type":"Trading Engine Reference","name":"Low-Frequency","project":"Superalgos","id":"25ecae9f-e4e3-4c35-9a75-ff9e7b5f5b5b","savedPayload":{"position":{"x":26681.71127974133,"y":33919.77273785534},"targetPosition":{"x":26759.356993272086,"y":33629.99498996862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading Engine","name":"Low-Frequency","id":"eb20f622-71bf-4479-a574-d2320e1d4bd1"}}},"id":"934095e8-4a1c-4baf-828f-7818f73c4219","savedPayload":{"position":{"x":26759.356993272086,"y":33629.99498996862},"targetPosition":{"x":26609.356993272086,"y":33370.187368833285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5ce11ebc-6b00-40a7-b78b-650650dc561c","savedPayload":{"position":{"x":26609.356993272086,"y":33370.187368833285},"targetPosition":{"x":26459.356993272086,"y":33110.37974769795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Trading","id":"a8c8d761-96e5-4a86-9285-6c3881d61442"}}}],"id":"b648768f-57f7-49c9-89a6-c5c6f9d88fc2","savedPayload":{"position":{"x":26459.356993272086,"y":33110.37974769795},"targetPosition":{"x":26309.356993272086,"y":32850.57212656262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"edfaadd0-892d-49b6-8353-c4864f4446d2","savedPayload":{"position":{"x":26309.356993272086,"y":32850.57212656262},"targetPosition":{"x":26159.356993272086,"y":32590.76450542729},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"18684d79-f3d4-4164-9926-aefa1fb42218","savedPayload":{"position":{"x":26159.356993272086,"y":32590.76450542729},"targetPosition":{"x":26009.356993272086,"y":32330.956884291958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a2e9d816-e6c9-4783-b6dd-42997c660372","savedPayload":{"position":{"x":26009.356993272086,"y":32330.956884291958},"targetPosition":{"x":25859.356993272086,"y":32071.149263156625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"eaa22575-ca9c-4851-bc7f-3bf05161e58a","savedPayload":{"position":{"x":25859.356993272086,"y":32071.149263156625},"targetPosition":{"x":25709.356993272086,"y":31811.341642021293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"d539c0ac-aaeb-4c44-9dba-ac26df819a8d","savedPayload":{"position":{"x":25709.356993272086,"y":31811.341642021293},"targetPosition":{"x":25559.356993272086,"y":31551.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"c2c8af36-7934-4fcb-9bfd-070d8f88a9e2","savedPayload":{"position":{"x":25559.356993272086,"y":31551.53402088596},"targetPosition":{"x":25409.356993272086,"y":31291.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"d7975b33-3654-4e37-8255-90dbf51c3789"}}}],"id":"65a40d20-837c-4652-8356-f8054b4e1346","savedPayload":{"position":{"x":25409.356993272086,"y":31291.726399750627},"targetPosition":{"x":25259.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"u"}}},"dataStorage":{"type":"Data Storage","name":"New Data Storage","project":"Superalgos","dataMinesData":{"type":"Data Mines Data","name":"New Data Mines Data","project":"Superalgos","projectDataProducts":[{"type":"Project Data Products","name":"Superalgos","project":"Superalgos","exchangeDataProducts":[{"type":"Exchange Data Products","name":"Binance","project":"Superalgos","marketDataProducts":[{"type":"Market Data Products","name":"Binance BTC/USDT","project":"Superalgos","dataProducts":[],"dataMineProducts":[{"type":"Data Mine Products","name":"Sparta","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"EMA","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Popular EMAs","project":"Superalgos","id":"8b3b410e-0728-457a-a2ac-640f8839592c","savedPayload":{"position":{"x":25167.107482388743,"y":32073.261177035343},"targetPosition":{"x":25238.107482388743,"y":32103.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base5 EMAs","project":"Superalgos","id":"c0043adc-1516-45f9-8044-71dac10926b4","savedPayload":{"position":{"x":25233.107482388743,"y":32087.261177035343},"targetPosition":{"x":25238.107482388743,"y":32103.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base5 EMAs","id":"9a37881e-7d9a-4279-95b2-8743de82eec5"}}},{"type":"Data Product","name":"Base6 EMAs","project":"Superalgos","id":"6ad6f193-f293-474a-892d-452ee224e923","savedPayload":{"position":{"x":25264.107482388743,"y":32033.261177035343},"targetPosition":{"x":25238.107482388743,"y":32103.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base6 EMAs","id":"e4267570-575b-4e59-9667-cb78aaae052c"}}},{"type":"Data Product","name":"Base7 EMAs","project":"Superalgos","id":"45eea564-7729-421c-b871-acda5a5ae81e","savedPayload":{"position":{"x":25227.107482388743,"y":32037.261177035343},"targetPosition":{"x":25238.107482388743,"y":32103.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","project":"Superalgos","id":"fe10ecb5-0593-4c6b-9fd0-1729976ce713","savedPayload":{"position":{"x":25331.107482388743,"y":32167.261177035343},"targetPosition":{"x":25238.107482388743,"y":32103.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"Base12 EMAs","project":"Superalgos","id":"3457daa7-4c0c-4c71-abe8-176e9fb806ae","savedPayload":{"position":{"x":25226.107482388743,"y":32018.261177035343},"targetPosition":{"x":25238.107482388743,"y":32103.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base12 EMAs","id":"43d6f23d-d206-47e9-95d4-6bef34377014"}}},{"type":"Data Product","name":"Base30 EMAs","project":"Superalgos","id":"4bca4b0e-6942-4322-90a3-3a976614d591","savedPayload":{"position":{"x":25150.107482388743,"y":32055.261177035343},"targetPosition":{"x":25238.107482388743,"y":32103.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base30 EMAs","id":"4394346c-7c25-478f-9be7-04f071dc673c"}}}],"dataProductFolders":[],"id":"39b86066-ae70-4cde-9fd6-b463addf0e77","savedPayload":{"position":{"x":25182.335622027087,"y":33035.78795290597},"targetPosition":{"x":25067.53059231756,"y":32758.624093152583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cc85c8b7-657d-4589-8373-ac3ff5cf3c6a","savedPayload":{"position":{"x":25067.53059231756,"y":32758.624093152583},"targetPosition":{"x":24952.72556260803,"y":32481.460233399197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Sparta","id":"9cfffc48-486a-48cb-b641-98c82e314d3a"}}},{"type":"Data Mine Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Exchange Raw Data","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"","project":"Superalgos","id":"b5217c9e-0fc7-4714-839a-6639437f21ad","savedPayload":{"position":{"x":25318.107482388743,"y":32489.261177035343},"targetPosition":{"x":25383.107482388743,"y":32422.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"38dbb942-a15b-450b-a867-02a94030965f"}}},{"type":"Data Product","name":"Candles","project":"Superalgos","id":"18490446-c8fe-4061-8a9e-c4f2b8c67677","savedPayload":{"position":{"x":25405.107482388743,"y":32460.261177035343},"targetPosition":{"x":25383.107482388743,"y":32422.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles","id":"2443883b-6959-42a3-ae3b-ef3102ffcdcc"}}},{"type":"Data Product","name":"Volumes","project":"Superalgos","id":"475838db-033e-4bf5-9c06-5a649d8b6e4d","savedPayload":{"position":{"x":25310.107482388743,"y":32443.261177035343},"targetPosition":{"x":25383.107482388743,"y":32422.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"3a43c6f3-bac0-404e-865f-822eb48c8660"}}}],"dataProductFolders":[],"id":"f6344699-6b56-4863-97ba-b3ab72e9cdd8","savedPayload":{"position":{"x":24855.30173731659,"y":33007.11215594703},"targetPosition":{"x":24770.097133905412,"y":32719.46623548657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Products","name":"Candles Volumes","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Candles","project":"Superalgos","id":"70d84756-8e7a-4dfc-8aae-abf8affc802f","savedPayload":{"position":{"x":25355.107482388743,"y":32462.261177035343},"targetPosition":{"x":25332.107482388743,"y":32368.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","project":"Superalgos","id":"5a47df0f-0524-401a-b5f4-f292eda68238","savedPayload":{"position":{"x":25424.107482388743,"y":32339.261177035343},"targetPosition":{"x":25332.107482388743,"y":32368.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}}],"dataProductFolders":[],"id":"ce53c027-2bdd-48b6-a42c-43bd762d723d","savedPayload":{"position":{"x":24669.95507613528,"y":33002.25868281422},"targetPosition":{"x":24770.097133905412,"y":32719.46623548657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Products","name":"Bollinger Bands","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Bollinger Bands","project":"Superalgos","id":"d50dcdf4-6251-4c59-9a04-d5dedadd86f7","savedPayload":{"position":{"x":25219.107482388743,"y":32404.261177035343},"targetPosition":{"x":25265.107482388743,"y":32318.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","project":"Superalgos","id":"1e029c1d-85c8-4d3d-90d8-388bf135d110","savedPayload":{"position":{"x":25223.107482388743,"y":32332.261177035343},"targetPosition":{"x":25265.107482388743,"y":32318.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}}],"dataProductFolders":[],"id":"41f6cc17-d2ef-4a8e-a30b-c0dbcf515d25","savedPayload":{"position":{"x":24522.859277318807,"y":32889.388106564016},"targetPosition":{"x":24770.097133905412,"y":32719.46623548657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Products","name":"Bollinger Channels","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Bollinger Channels Objects","project":"Superalgos","id":"aba646d5-9b32-48d6-abc3-e9fa8405b279","savedPayload":{"position":{"x":25310.107482388743,"y":32485.261177035343},"targetPosition":{"x":25232.107482388743,"y":32396.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Channels","project":"Superalgos","id":"241723cd-ae4d-4990-88f8-29bfad2e14ed","savedPayload":{"position":{"x":25236.107482388743,"y":32474.261177035343},"targetPosition":{"x":25232.107482388743,"y":32396.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","project":"Superalgos","id":"e171424f-d37d-46d5-aada-1d66ccb0961f","savedPayload":{"position":{"x":25243.107482388743,"y":32328.261177035343},"targetPosition":{"x":25232.107482388743,"y":32396.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","project":"Superalgos","id":"f8686b62-8ca9-4b30-9c27-9844c109d987","savedPayload":{"position":{"x":25232.107482388743,"y":32338.261177035343},"targetPosition":{"x":25232.107482388743,"y":32396.261177035343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}}],"dataProductFolders":[],"id":"8c843479-10c3-4ac3-8566-42574738e89c","savedPayload":{"position":{"x":24470.199936412744,"y":32711.613150994206},"targetPosition":{"x":24770.097133905412,"y":32719.46623548657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f527bdd3-f5bc-4248-a35f-ac7e591c3aec","savedPayload":{"position":{"x":24770.097133905412,"y":32719.46623548657},"targetPosition":{"x":24952.72556260803,"y":32481.460233399197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}}],"id":"449f1f87-399d-4ec2-9af2-beb92609dc27","savedPayload":{"position":{"x":24952.72556260803,"y":32481.460233399197},"targetPosition":{"x":24991.883420274044,"y":32184.026774987055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"9bc0aea4-0596-449c-91bd-4fb4cb672aa8","savedPayload":{"position":{"x":24991.883420274044,"y":32184.026774987055},"targetPosition":{"x":25031.041277940058,"y":31886.593316574912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"e3989fd2-c544-4ff7-966f-526c5be476d5","savedPayload":{"position":{"x":25031.041277940058,"y":31886.593316574912},"targetPosition":{"x":25070.19913560607,"y":31589.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"d7975b33-3654-4e37-8255-90dbf51c3789"}}}],"id":"32e7c122-fa5a-4d00-9d71-d54e890e32de","savedPayload":{"position":{"x":25070.19913560607,"y":31589.15985816277},"targetPosition":{"x":25109.356993272086,"y":31291.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingMinesData":{"type":"Trading Mines Data","name":"New Trading Mines Data","project":"Superalgos","projectTradingProducts":[{"type":"Project Trading Products","name":"Superalgos","project":"Superalgos","exchangeTradingProducts":[{"type":"Exchange Trading Products","name":"Binance","project":"Superalgos","marketTradingProducts":[{"type":"Market Trading Products","name":"Binance BTC/USDT","project":"Superalgos","tradingSessionReferences":[{"type":"Trading Session Reference","name":"WHB v2 Backtesting Session","project":"Superalgos","dataProducts":[],"tradingMineProducts":[{"type":"Trading Mine Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Low Frequency","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Trading Engine","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Episode","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episode Counters","project":"Superalgos","id":"dd0c8cb9-af86-43fc-a22e-2b1b408787d9","savedPayload":{"position":{"x":24545.764999673167,"y":31889.791233913154},"targetPosition":{"x":24456.764999673167,"y":31890.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Counters","id":"d81c6019-864e-42f5-94ba-2f249b865f85"}}},{"type":"Data Product","name":"Episode Statistics","project":"Superalgos","id":"5c98f3e9-72a7-4742-9315-50d6e4aaa452","savedPayload":{"position":{"x":24412.764999673167,"y":31904.791233913154},"targetPosition":{"x":24456.764999673167,"y":31890.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Statistics","id":"400c7f49-37da-41fb-b83d-879960aa74ff"}}},{"type":"Data Product","name":"Episode Candle","project":"Superalgos","id":"b626d6f0-f929-457e-910b-dfb83c666deb","savedPayload":{"position":{"x":24505.764999673167,"y":31790.791233913154},"targetPosition":{"x":24456.764999673167,"y":31890.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Candle","id":"b9a58113-cf27-4d57-9810-87a2cc158804"}}},{"type":"Data Product","name":"Episode Balances","project":"Superalgos","id":"3d2dee0f-a7df-463f-befe-5f6231ab7830","savedPayload":{"position":{"x":24474.764999673167,"y":31886.791233913154},"targetPosition":{"x":24456.764999673167,"y":31890.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Balances","id":"a9a53d82-133b-4417-b639-f9a56d338233"}}},{"type":"Data Product","name":"Distance To Event","project":"Superalgos","id":"5699dc43-eb9a-4e42-aece-e9567924cac2","savedPayload":{"position":{"x":24522.764999673167,"y":31822.791233913154},"targetPosition":{"x":24456.764999673167,"y":31890.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Distance To Event","id":"8ea88d6c-7d7f-4152-b781-ea108df52c63"}}},{"type":"Data Product","name":"Episode Base Asset","project":"Superalgos","id":"7647e8ee-0ab7-41af-b153-099a334a362d","savedPayload":{"position":{"x":24399.764999673167,"y":31952.791233913154},"targetPosition":{"x":24456.764999673167,"y":31890.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Base Asset","id":"234969ff-eab1-4d59-b6fa-79433c9a20e9"}}},{"type":"Data Product","name":"Episode Quoted Asset","project":"Superalgos","id":"00bf7f7c-9002-4923-8010-7125327f9128","savedPayload":{"position":{"x":24544.764999673167,"y":31842.791233913154},"targetPosition":{"x":24456.764999673167,"y":31890.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Quoted Asset","id":"ae525e31-d6a8-47d2-9021-3f2ddb9615b0"}}},{"type":"Data Product","name":"Current Episode","project":"Superalgos","id":"54b85d80-295a-4540-b726-f6f7cd17c6c9","savedPayload":{"position":{"x":24534.764999673167,"y":31943.791233913154},"targetPosition":{"x":24456.764999673167,"y":31890.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Episode","id":"b8da0132-ba28-46ec-aa54-eb9eaac56ce7"}}}],"dataProductFolders":[],"id":"135f87c8-2206-4e9f-b93a-d9c764a69f23","savedPayload":{"position":{"x":24456.764999673167,"y":31890.791233913154},"targetPosition":{"x":24403.764999673167,"y":31951.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Strategy","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Strategy","project":"Superalgos","id":"68fdae81-0371-428f-8495-a0fe100cbba8","savedPayload":{"position":{"x":24399.764999673167,"y":31934.791233913154},"targetPosition":{"x":24308.764999673167,"y":31852.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Strategy","id":"895d8a04-ef45-41a7-909a-ba31013ffb90"}}},{"type":"Data Product","name":"Last Strategy","project":"Superalgos","id":"51693a6b-7d84-4f20-bdee-1211f9bae6f9","savedPayload":{"position":{"x":24275.764999673167,"y":31806.791233913154},"targetPosition":{"x":24308.764999673167,"y":31852.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Strategy","id":"0625f524-2b97-4b4d-8a90-590ffc62ecd3"}}}],"dataProductFolders":[],"id":"ffbfa6f7-5ca0-41c2-85e8-e9a3305ce12f","savedPayload":{"position":{"x":24308.764999673167,"y":31852.791233913154},"targetPosition":{"x":24403.764999673167,"y":31951.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Position","project":"Superalgos","id":"80cb8779-8e2b-4c33-bd43-c696dbc4e5f6","savedPayload":{"position":{"x":24370.764999673167,"y":31918.791233913154},"targetPosition":{"x":24425.764999673167,"y":31989.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Position","id":"832ecada-8da3-4ba6-b6e9-be34dd5f7ce9"}}},{"type":"Data Product","name":"Last Position","project":"Superalgos","id":"cd54c5f3-13f4-4e71-b233-b649d4878ab6","savedPayload":{"position":{"x":24338.764999673167,"y":32025.791233913154},"targetPosition":{"x":24425.764999673167,"y":31989.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Position","id":"477cd6d5-862a-44d0-9313-786a4e63a602"}}}],"dataProductFolders":[],"id":"3004c779-23c1-4f87-aedc-744dd6edb204","savedPayload":{"position":{"x":24425.764999673167,"y":31989.791233913154},"targetPosition":{"x":24403.764999673167,"y":31951.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Open Stage","project":"Superalgos","id":"7466e39e-eced-4ca3-9d56-a0d1548b91c6","savedPayload":{"position":{"x":24434.764999673167,"y":32001.791233913154},"targetPosition":{"x":24467.764999673167,"y":31974.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stage","id":"73c3c041-ba2a-4798-a362-a453409b518a"}}},{"type":"Data Product","name":"Close Stage","project":"Superalgos","id":"bea0a14e-e504-4e9e-a346-439180b6ad31","savedPayload":{"position":{"x":24533.764999673167,"y":31915.791233913154},"targetPosition":{"x":24467.764999673167,"y":31974.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stage","id":"2bb9bb41-1ff5-4f83-aa5b-bfc4c9f06a9a"}}},{"type":"Data Product","name":"Trigger Stage","project":"Superalgos","id":"06ef8c46-5cc3-4890-9a44-8fd57b8e9ca3","savedPayload":{"position":{"x":24492.764999673167,"y":31874.791233913154},"targetPosition":{"x":24467.764999673167,"y":31974.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stage","id":"b6cff826-9056-4fbd-8eca-cbd6cceec962"}}},{"type":"Data Product","name":"Manage Stage","project":"Superalgos","id":"9df7d784-5665-4fa1-9d85-ee74845267aa","savedPayload":{"position":{"x":24452.764999673167,"y":32013.791233913154},"targetPosition":{"x":24467.764999673167,"y":31974.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stage","id":"bd691611-e7a6-49a8-b07d-c15360b55e40"}}}],"dataProductFolders":[],"id":"4767afd5-931b-4604-a5c6-d1f7c306096e","savedPayload":{"position":{"x":24467.764999673167,"y":31974.791233913154},"targetPosition":{"x":24403.764999673167,"y":31951.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"4bc0034d-935a-4193-89cf-b18c65b0905a","savedPayload":{"position":{"x":24416.764999673167,"y":32103.791233913154},"targetPosition":{"x":24357.764999673167,"y":32037.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"7c769317-2639-4460-8b88-9dc92f7b0585"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"ffada7e3-6897-4d94-b119-eef67c178678","savedPayload":{"position":{"x":24370.764999673167,"y":32015.791233913154},"targetPosition":{"x":24357.764999673167,"y":32037.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"9cc7645a-54fe-40d6-9896-9278167011fb"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"e195d10c-7b9f-4428-910e-11be05f66345","savedPayload":{"position":{"x":24432.764999673167,"y":31969.791233913154},"targetPosition":{"x":24357.764999673167,"y":32037.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"4c827ee0-a29b-4b65-8438-03e2ea98b410"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"c396625e-9a71-4edd-a954-ea2c884538f5","savedPayload":{"position":{"x":24376.764999673167,"y":31956.791233913154},"targetPosition":{"x":24357.764999673167,"y":32037.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2c753cd8-36d8-466c-bd80-1ebfa8e314dc"}}},{"type":"Data Product","name":"Last Market Order","project":"Superalgos","id":"d15cc7d7-3e92-4f92-9bbe-e0a3ba499740","savedPayload":{"position":{"x":24393.764999673167,"y":31955.791233913154},"targetPosition":{"x":24357.764999673167,"y":32037.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Market Order","id":"6df1ac87-92d5-4788-b0bc-f3543b283ef0"}}},{"type":"Data Product","name":"Last Limit Order","project":"Superalgos","id":"507be75d-cd3c-4767-b159-328469e5c6e8","savedPayload":{"position":{"x":24338.764999673167,"y":31994.791233913154},"targetPosition":{"x":24357.764999673167,"y":32037.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Limit Order","id":"c24ec6a1-e937-4d20-93eb-4faf2a0becc3"}}}],"dataProductFolders":[],"id":"7ca1fb0a-67c1-41c3-945e-7b343d938c37","savedPayload":{"position":{"x":24357.764999673167,"y":32037.791233913154},"targetPosition":{"x":24403.764999673167,"y":31951.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b702fdec-9278-4b8a-9a5e-2a3fe6bc8d5b","savedPayload":{"position":{"x":24403.764999673167,"y":31951.791233913154},"targetPosition":{"x":24494.764999673167,"y":31938.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Trading System","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trading System Errors","project":"Superalgos","id":"8cb33c4c-4561-4e2e-a145-19bb87fa9b61","savedPayload":{"position":{"x":24402.764999673167,"y":31928.791233913154},"targetPosition":{"x":24431.764999673167,"y":31858.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Errors","id":"1d9c570d-77c7-40ac-a61e-c5a57a411de8"}}},{"type":"Data Product","name":"Trading System Highlights","project":"Superalgos","id":"3521e920-c9b3-493b-9690-58101c475dad","savedPayload":{"position":{"x":24453.764999673167,"y":31924.791233913154},"targetPosition":{"x":24431.764999673167,"y":31858.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Highlights","id":"319f660a-78be-4cf4-8052-877837cad806"}}},{"type":"Data Product","name":"Trading System Values","project":"Superalgos","id":"084d12bb-30ec-4a0f-a356-a58817d4e266","savedPayload":{"position":{"x":24376.764999673167,"y":31825.791233913154},"targetPosition":{"x":24431.764999673167,"y":31858.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Values","id":"c90c009b-588d-45d4-aff1-05e375181dfa"}}},{"type":"Data Product","name":"Trading System Status","project":"Superalgos","id":"12e328ff-6658-4ca1-be6d-a93c8fc5c42e","savedPayload":{"position":{"x":24424.764999673167,"y":31900.791233913154},"targetPosition":{"x":24431.764999673167,"y":31858.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Status","id":"eed48c80-35c5-49fa-b12d-18e7280ffb8f"}}},{"type":"Data Product","name":"Trading System Progress","project":"Superalgos","id":"d35b7442-5911-4456-bc9e-c451e21d4a30","savedPayload":{"position":{"x":24460.764999673167,"y":31841.791233913154},"targetPosition":{"x":24431.764999673167,"y":31858.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Progress","id":"04c8606b-5e59-4e7d-b3ac-387bfffcd300"}}},{"type":"Data Product","name":"Trading System Running","project":"Superalgos","id":"65c269c0-2793-483c-ad8e-5c107a56b951","savedPayload":{"position":{"x":24426.764999673167,"y":31765.791233913154},"targetPosition":{"x":24431.764999673167,"y":31858.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Running","id":"17236f59-6ef2-4cc3-913c-1ff6db052236"}}},{"type":"Data Product","name":"Trading System Announcements","project":"Superalgos","id":"56631448-2669-47f1-bbc9-7dda628f433e","savedPayload":{"position":{"x":24511.764999673167,"y":31829.791233913154},"targetPosition":{"x":24431.764999673167,"y":31858.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Announcements","id":"4a6f828a-9671-431e-8257-fc920943581e"}}},{"type":"Data Product","name":"Trading System Warnings","project":"Superalgos","id":"c7c4ece9-6d52-4e9a-800e-11c22955c178","savedPayload":{"position":{"x":24381.764999673167,"y":31838.791233913154},"targetPosition":{"x":24431.764999673167,"y":31858.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Warnings","id":"34310596-466a-4e9a-a5a2-256b0fe3e339"}}},{"type":"Data Product","name":"Trading System Infos","project":"Superalgos","id":"f937c3f3-305c-4abc-aa12-0f2015e8f5fa","savedPayload":{"position":{"x":24401.764999673167,"y":31841.791233913154},"targetPosition":{"x":24431.764999673167,"y":31858.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Infos","id":"020ad519-0fc6-4f2f-9f26-b2c7de118fb8"}}}],"dataProductFolders":[],"id":"922f6ae2-8a20-492c-9c18-811e6a871c6f","savedPayload":{"position":{"x":24431.764999673167,"y":31858.791233913154},"targetPosition":{"x":24494.764999673167,"y":31938.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Simulation Objects","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episodes","project":"Superalgos","id":"b4881fc1-e88b-4be3-805d-ab98c4ccbb0b","savedPayload":{"position":{"x":24585.764999673167,"y":32073.791233913154},"targetPosition":{"x":24486.764999673167,"y":31983.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episodes","id":"aeec080e-8caf-4976-8187-ba4e725b73b0"}}},{"type":"Data Product","name":"Strategies","project":"Superalgos","id":"7201adfb-d461-46b7-af3a-a45fabe24835","savedPayload":{"position":{"x":24502.764999673167,"y":31922.791233913154},"targetPosition":{"x":24486.764999673167,"y":31983.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"21db6fce-8450-4b07-9015-d81a339fd030"}}}],"dataProductFolders":[{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"c92a34c6-c74b-48ad-a57d-9fb78e3e642c","savedPayload":{"position":{"x":24484.764999673167,"y":32029.791233913154},"targetPosition":{"x":24397.764999673167,"y":32053.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"db256083-9aa2-48e1-8fd6-3425a5085302"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"442e4f1d-e420-43cf-94c8-08282408f555","savedPayload":{"position":{"x":24439.764999673167,"y":32058.791233913154},"targetPosition":{"x":24397.764999673167,"y":32053.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"1958f79b-5c6c-4874-9154-98c314822ed7"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"5beb71e3-23fd-4e79-b7fd-46da219b1112","savedPayload":{"position":{"x":24488.764999673167,"y":32004.791233913154},"targetPosition":{"x":24397.764999673167,"y":32053.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"5deceb32-c7ab-4560-818a-0f0b9d6632fb"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"1d6f14f5-c7fe-4b42-8a1b-5859e6e5a592","savedPayload":{"position":{"x":24354.764999673167,"y":32024.791233913154},"targetPosition":{"x":24397.764999673167,"y":32053.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2a1d405b-2fbe-4ed4-a76a-d2c7be59d20e"}}}],"dataProductFolders":[],"id":"10897f51-b5dd-4f76-8ab3-ac77df8a6976","savedPayload":{"position":{"x":24397.764999673167,"y":32053.791233913154},"targetPosition":{"x":24486.764999673167,"y":31983.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trigger Stages","project":"Superalgos","id":"7f256746-a20a-4856-af57-18f91e02fdaf","savedPayload":{"position":{"x":24531.764999673167,"y":31964.791233913154},"targetPosition":{"x":24539.764999673167,"y":31960.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stages","id":"18cc2e79-7e57-418c-b635-6c68fc11d681"}}},{"type":"Data Product","name":"Open Stages","project":"Superalgos","id":"c9b06e1b-2816-4770-b4d2-951b354fa688","savedPayload":{"position":{"x":24585.764999673167,"y":31937.791233913154},"targetPosition":{"x":24539.764999673167,"y":31960.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stages","id":"d5938c00-0849-466d-ae14-4ea91b571678"}}},{"type":"Data Product","name":"Manage Stages","project":"Superalgos","id":"59770c0b-e50d-46d3-b62f-7ea080fcbeb2","savedPayload":{"position":{"x":24589.764999673167,"y":31981.791233913154},"targetPosition":{"x":24539.764999673167,"y":31960.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stages","id":"8fab86b3-db8d-4113-8418-1d256bd98cf2"}}},{"type":"Data Product","name":"Close Stages","project":"Superalgos","id":"56915d54-1528-46bf-ad3f-361ca441abc0","savedPayload":{"position":{"x":24533.764999673167,"y":31994.791233913154},"targetPosition":{"x":24539.764999673167,"y":31960.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stages","id":"ba911e61-f951-48cd-b547-9a70aa211100"}}}],"dataProductFolders":[],"id":"768c6ff6-a03d-43d0-9a13-f7037e9352f3","savedPayload":{"position":{"x":24539.764999673167,"y":31960.791233913154},"targetPosition":{"x":24486.764999673167,"y":31983.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Positions","project":"Superalgos","id":"112221cf-8147-484f-a9aa-d86c2402d1b4","savedPayload":{"position":{"x":24610.764999673167,"y":31941.791233913154},"targetPosition":{"x":24537.764999673167,"y":31987.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Positions","id":"1eabba24-cbd4-4cbf-95e0-c5135349d41d"}}},{"type":"Data Product","name":"Position Base Asset","project":"Superalgos","id":"b92609ac-310d-482c-a96f-8e90d4c43d72","savedPayload":{"position":{"x":24567.764999673167,"y":31971.791233913154},"targetPosition":{"x":24537.764999673167,"y":31987.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Base Asset","id":"b371b039-f6c8-4f60-84cb-52f55c96c84d"}}},{"type":"Data Product","name":"Position Quoted Asset","project":"Superalgos","id":"1e037875-a2ee-44c3-8d8e-861f39f9d8a7","savedPayload":{"position":{"x":24623.764999673167,"y":32014.791233913154},"targetPosition":{"x":24537.764999673167,"y":31987.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Quoted Asset","id":"a376f02b-a5d2-4079-b5cd-ab7dc894b909"}}},{"type":"Data Product","name":"Stop Loss","project":"Superalgos","id":"7f2737da-5aef-4dbf-b86c-80132bcb3289","savedPayload":{"position":{"x":24623.764999673167,"y":31912.791233913154},"targetPosition":{"x":24537.764999673167,"y":31987.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Stop Loss","id":"c18bdc82-216a-4b1d-8850-5c3c9dc2000b"}}},{"type":"Data Product","name":"Take Profit","project":"Superalgos","id":"4d5fcd48-f3df-43c9-818e-70057086a961","savedPayload":{"position":{"x":24565.764999673167,"y":31918.791233913154},"targetPosition":{"x":24537.764999673167,"y":31987.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Take Profit","id":"2542c7d0-fa26-4b52-a59a-a3630e52eb89"}}}],"dataProductFolders":[],"id":"053b9219-8b8e-4b7e-a7c0-3132f44b2bc9","savedPayload":{"position":{"x":24537.764999673167,"y":31987.791233913154},"targetPosition":{"x":24486.764999673167,"y":31983.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0fac6eab-3a4a-4e40-aa19-ab019941ba92","savedPayload":{"position":{"x":24486.764999673167,"y":31983.791233913154},"targetPosition":{"x":24494.764999673167,"y":31938.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6f5b7da1-419c-4728-b650-6bcf0abe0381","savedPayload":{"position":{"x":24494.764999673167,"y":31938.791233913154},"targetPosition":{"x":24526.764999673167,"y":31974.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7d983ca2-8566-436b-ab21-445564aba4b3","savedPayload":{"position":{"x":24526.764999673167,"y":31974.791233913154},"targetPosition":{"x":24611.764999673167,"y":32060.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"cfccd77b-3680-4e30-ba08-0bf8c906f739","savedPayload":{"position":{"x":24611.764999673167,"y":32060.791233913154},"targetPosition":{"x":24541.764999673167,"y":32023.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"WHB v2","id":"1ff8cd88-dcd9-4528-b406-05647ddd8c9c"}}},{"type":"Trading Session Reference","name":"WHB v2 Live Trading Session","project":"Superalgos","dataProducts":[],"tradingMineProducts":[{"type":"Trading Mine Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Low Frequency","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Trading Engine","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Episode","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episode Counters","project":"Superalgos","id":"4d1ea2bf-5a1d-4b37-9719-007e28b81184","savedPayload":{"position":{"x":24409.764999673167,"y":31976.791233913154},"targetPosition":{"x":24432.764999673167,"y":32016.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Counters","id":"d81c6019-864e-42f5-94ba-2f249b865f85"}}},{"type":"Data Product","name":"Episode Statistics","project":"Superalgos","id":"2c4ef698-66da-4079-90ec-9fdf5ce41be7","savedPayload":{"position":{"x":24487.764999673167,"y":32105.791233913154},"targetPosition":{"x":24432.764999673167,"y":32016.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Statistics","id":"400c7f49-37da-41fb-b83d-879960aa74ff"}}},{"type":"Data Product","name":"Episode Candle","project":"Superalgos","id":"5ee16bd3-cb60-4b92-ab67-d56dfbdd8671","savedPayload":{"position":{"x":24343.764999673167,"y":31948.791233913154},"targetPosition":{"x":24432.764999673167,"y":32016.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Candle","id":"b9a58113-cf27-4d57-9810-87a2cc158804"}}},{"type":"Data Product","name":"Episode Balances","project":"Superalgos","id":"660caa52-ba9a-4829-9143-3ca16f2590aa","savedPayload":{"position":{"x":24426.764999673167,"y":32092.791233913154},"targetPosition":{"x":24432.764999673167,"y":32016.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Balances","id":"a9a53d82-133b-4417-b639-f9a56d338233"}}},{"type":"Data Product","name":"Distance To Event","project":"Superalgos","id":"382ccb5c-e0c3-4e34-97b9-599cf5d6792d","savedPayload":{"position":{"x":24506.764999673167,"y":31976.791233913154},"targetPosition":{"x":24432.764999673167,"y":32016.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Distance To Event","id":"8ea88d6c-7d7f-4152-b781-ea108df52c63"}}},{"type":"Data Product","name":"Episode Base Asset","project":"Superalgos","id":"42d86745-d971-4328-a908-91bf6d19a019","savedPayload":{"position":{"x":24442.764999673167,"y":32078.791233913154},"targetPosition":{"x":24432.764999673167,"y":32016.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Base Asset","id":"234969ff-eab1-4d59-b6fa-79433c9a20e9"}}},{"type":"Data Product","name":"Episode Quoted Asset","project":"Superalgos","id":"7dbf878d-588f-422e-acd2-03968abaf5f0","savedPayload":{"position":{"x":24413.764999673167,"y":32015.791233913154},"targetPosition":{"x":24432.764999673167,"y":32016.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Quoted Asset","id":"ae525e31-d6a8-47d2-9021-3f2ddb9615b0"}}},{"type":"Data Product","name":"Current Episode","project":"Superalgos","id":"d678dfa8-544b-456f-b3f0-715579440aa2","savedPayload":{"position":{"x":24344.764999673167,"y":32016.791233913154},"targetPosition":{"x":24432.764999673167,"y":32016.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Episode","id":"b8da0132-ba28-46ec-aa54-eb9eaac56ce7"}}}],"dataProductFolders":[],"id":"bc8ed9e2-3910-497b-b29e-dc88db8ab671","savedPayload":{"position":{"x":24432.764999673167,"y":32016.791233913154},"targetPosition":{"x":24463.764999673167,"y":31921.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Strategy","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Strategy","project":"Superalgos","id":"07b721a0-55e0-4e7a-b0e2-a91e8c76de4f","savedPayload":{"position":{"x":24501.764999673167,"y":32012.791233913154},"targetPosition":{"x":24470.764999673167,"y":31977.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Strategy","id":"895d8a04-ef45-41a7-909a-ba31013ffb90"}}},{"type":"Data Product","name":"Last Strategy","project":"Superalgos","id":"15f34c1a-b30d-4dd1-96e0-8a2646de3635","savedPayload":{"position":{"x":24372.764999673167,"y":31969.791233913154},"targetPosition":{"x":24470.764999673167,"y":31977.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Strategy","id":"0625f524-2b97-4b4d-8a90-590ffc62ecd3"}}}],"dataProductFolders":[],"id":"3c5ab12d-c6cf-4b36-baec-a83284745381","savedPayload":{"position":{"x":24470.764999673167,"y":31977.791233913154},"targetPosition":{"x":24463.764999673167,"y":31921.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Position","project":"Superalgos","id":"ab53428d-89a3-4b1f-84b1-d5bd1d957f02","savedPayload":{"position":{"x":24535.764999673167,"y":31861.791233913154},"targetPosition":{"x":24478.764999673167,"y":31938.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Position","id":"832ecada-8da3-4ba6-b6e9-be34dd5f7ce9"}}},{"type":"Data Product","name":"Last Position","project":"Superalgos","id":"5909ca07-e00c-4669-9cd3-17eb83796f31","savedPayload":{"position":{"x":24504.764999673167,"y":31859.791233913154},"targetPosition":{"x":24478.764999673167,"y":31938.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Position","id":"477cd6d5-862a-44d0-9313-786a4e63a602"}}}],"dataProductFolders":[],"id":"73850961-f70a-4995-a51e-6f35382f1294","savedPayload":{"position":{"x":24478.764999673167,"y":31938.791233913154},"targetPosition":{"x":24463.764999673167,"y":31921.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Open Stage","project":"Superalgos","id":"68803338-3e70-443f-90fd-8b36f5378f31","savedPayload":{"position":{"x":24476.764999673167,"y":31940.791233913154},"targetPosition":{"x":24509.764999673167,"y":31910.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stage","id":"73c3c041-ba2a-4798-a362-a453409b518a"}}},{"type":"Data Product","name":"Close Stage","project":"Superalgos","id":"2d2dd9df-d00a-4d69-9b29-66e19d0238fe","savedPayload":{"position":{"x":24533.764999673167,"y":32005.791233913154},"targetPosition":{"x":24509.764999673167,"y":31910.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stage","id":"2bb9bb41-1ff5-4f83-aa5b-bfc4c9f06a9a"}}},{"type":"Data Product","name":"Trigger Stage","project":"Superalgos","id":"7a71d0ce-5592-4b70-b30c-9676b67feb47","savedPayload":{"position":{"x":24425.764999673167,"y":31989.791233913154},"targetPosition":{"x":24509.764999673167,"y":31910.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stage","id":"b6cff826-9056-4fbd-8eca-cbd6cceec962"}}},{"type":"Data Product","name":"Manage Stage","project":"Superalgos","id":"5b233b81-aa5f-4222-9772-5c8810cb683a","savedPayload":{"position":{"x":24590.764999673167,"y":31958.791233913154},"targetPosition":{"x":24509.764999673167,"y":31910.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stage","id":"bd691611-e7a6-49a8-b07d-c15360b55e40"}}}],"dataProductFolders":[],"id":"f7fff058-7a27-462e-8c28-56c7df8d17db","savedPayload":{"position":{"x":24509.764999673167,"y":31910.791233913154},"targetPosition":{"x":24463.764999673167,"y":31921.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"0487769a-1b78-45ce-8750-6cb55c0785f4","savedPayload":{"position":{"x":24556.764999673167,"y":32014.791233913154},"targetPosition":{"x":24561.764999673167,"y":32004.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"7c769317-2639-4460-8b88-9dc92f7b0585"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"6e666549-9e9f-42d3-b543-fc0ce961cc64","savedPayload":{"position":{"x":24630.764999673167,"y":32083.791233913154},"targetPosition":{"x":24561.764999673167,"y":32004.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"9cc7645a-54fe-40d6-9896-9278167011fb"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"a596b5e6-666d-4da0-bd2f-2b65292b8d87","savedPayload":{"position":{"x":24562.764999673167,"y":31982.791233913154},"targetPosition":{"x":24561.764999673167,"y":32004.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"4c827ee0-a29b-4b65-8438-03e2ea98b410"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"528f2741-eda9-4dd4-b731-8110336c0a34","savedPayload":{"position":{"x":24638.764999673167,"y":32045.791233913154},"targetPosition":{"x":24561.764999673167,"y":32004.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2c753cd8-36d8-466c-bd80-1ebfa8e314dc"}}},{"type":"Data Product","name":"Last Market Order","project":"Superalgos","id":"0d7a0263-dc84-4b4a-a6cc-ad6c3f9824fe","savedPayload":{"position":{"x":24658.764999673167,"y":32070.791233913154},"targetPosition":{"x":24561.764999673167,"y":32004.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Market Order","id":"6df1ac87-92d5-4788-b0bc-f3543b283ef0"}}},{"type":"Data Product","name":"Last Limit Order","project":"Superalgos","id":"51e9b95a-96c1-4cf4-a188-9669c73c7e8e","savedPayload":{"position":{"x":24567.764999673167,"y":32043.791233913154},"targetPosition":{"x":24561.764999673167,"y":32004.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Limit Order","id":"c24ec6a1-e937-4d20-93eb-4faf2a0becc3"}}}],"dataProductFolders":[],"id":"0dbd65bc-9ab3-40f3-b972-4b6c6c304d1d","savedPayload":{"position":{"x":24561.764999673167,"y":32004.791233913154},"targetPosition":{"x":24463.764999673167,"y":31921.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1facfef6-da1b-40a6-ba07-bbec4ef2f246","savedPayload":{"position":{"x":24463.764999673167,"y":31921.791233913154},"targetPosition":{"x":24510.764999673167,"y":31836.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Trading System","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trading System Errors","project":"Superalgos","id":"1c539f66-a512-4cd9-b974-622b95e2cca9","savedPayload":{"position":{"x":24410.764999673167,"y":31818.791233913154},"targetPosition":{"x":24450.764999673167,"y":31819.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Errors","id":"1d9c570d-77c7-40ac-a61e-c5a57a411de8"}}},{"type":"Data Product","name":"Trading System Highlights","project":"Superalgos","id":"409e6575-034e-4d3d-99e5-0495ba229622","savedPayload":{"position":{"x":24472.764999673167,"y":31741.791233913154},"targetPosition":{"x":24450.764999673167,"y":31819.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Highlights","id":"319f660a-78be-4cf4-8052-877837cad806"}}},{"type":"Data Product","name":"Trading System Values","project":"Superalgos","id":"55245047-2d2d-4a04-97f9-d413d82375a9","savedPayload":{"position":{"x":24436.764999673167,"y":31887.791233913154},"targetPosition":{"x":24450.764999673167,"y":31819.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Values","id":"c90c009b-588d-45d4-aff1-05e375181dfa"}}},{"type":"Data Product","name":"Trading System Status","project":"Superalgos","id":"9f9ea8fa-0769-44b9-a4f1-86f2c3a22195","savedPayload":{"position":{"x":24405.764999673167,"y":31906.791233913154},"targetPosition":{"x":24450.764999673167,"y":31819.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Status","id":"eed48c80-35c5-49fa-b12d-18e7280ffb8f"}}},{"type":"Data Product","name":"Trading System Progress","project":"Superalgos","id":"d2e7ed86-a88f-484b-ab5f-d6212cb7045f","savedPayload":{"position":{"x":24470.764999673167,"y":31768.791233913154},"targetPosition":{"x":24450.764999673167,"y":31819.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Progress","id":"04c8606b-5e59-4e7d-b3ac-387bfffcd300"}}},{"type":"Data Product","name":"Trading System Running","project":"Superalgos","id":"0a0b3b0e-cac0-42a3-8825-637b2b78afad","savedPayload":{"position":{"x":24468.764999673167,"y":31892.791233913154},"targetPosition":{"x":24450.764999673167,"y":31819.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Running","id":"17236f59-6ef2-4cc3-913c-1ff6db052236"}}},{"type":"Data Product","name":"Trading System Announcements","project":"Superalgos","id":"b79dfe54-361e-44f2-87ce-5e012bba3bcd","savedPayload":{"position":{"x":24498.764999673167,"y":31860.791233913154},"targetPosition":{"x":24450.764999673167,"y":31819.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Announcements","id":"4a6f828a-9671-431e-8257-fc920943581e"}}},{"type":"Data Product","name":"Trading System Warnings","project":"Superalgos","id":"29681b5e-16e2-4bc0-816e-537b271c0ea5","savedPayload":{"position":{"x":24480.764999673167,"y":31749.791233913154},"targetPosition":{"x":24450.764999673167,"y":31819.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Warnings","id":"34310596-466a-4e9a-a5a2-256b0fe3e339"}}},{"type":"Data Product","name":"Trading System Infos","project":"Superalgos","id":"3da52870-d76c-4e37-9247-9eecfdbb64ec","savedPayload":{"position":{"x":24549.764999673167,"y":31897.791233913154},"targetPosition":{"x":24450.764999673167,"y":31819.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Infos","id":"020ad519-0fc6-4f2f-9f26-b2c7de118fb8"}}}],"dataProductFolders":[],"id":"62beef62-7bc7-4980-b2f5-050542e09597","savedPayload":{"position":{"x":24450.764999673167,"y":31819.791233913154},"targetPosition":{"x":24510.764999673167,"y":31836.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Simulation Objects","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episodes","project":"Superalgos","id":"802ebea8-becf-45e5-b761-078cad3acd74","savedPayload":{"position":{"x":24514.764999673167,"y":31915.791233913154},"targetPosition":{"x":24591.764999673167,"y":31818.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episodes","id":"aeec080e-8caf-4976-8187-ba4e725b73b0"}}},{"type":"Data Product","name":"Strategies","project":"Superalgos","id":"601cbf34-9a33-4066-9709-b23c6c34b17d","savedPayload":{"position":{"x":24567.764999673167,"y":31753.791233913154},"targetPosition":{"x":24591.764999673167,"y":31818.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"21db6fce-8450-4b07-9015-d81a339fd030"}}}],"dataProductFolders":[{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"e1516339-ebcb-4840-a23d-cebd855911b6","savedPayload":{"position":{"x":24486.764999673167,"y":31834.791233913154},"targetPosition":{"x":24557.764999673167,"y":31783.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"db256083-9aa2-48e1-8fd6-3425a5085302"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"57a0d52c-d2a3-4fd3-907c-66fd51cecdc6","savedPayload":{"position":{"x":24489.764999673167,"y":31812.791233913154},"targetPosition":{"x":24557.764999673167,"y":31783.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"1958f79b-5c6c-4874-9154-98c314822ed7"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"b67b6a65-5bd1-4b58-aa65-a8b840c54d9b","savedPayload":{"position":{"x":24560.764999673167,"y":31806.791233913154},"targetPosition":{"x":24557.764999673167,"y":31783.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"5deceb32-c7ab-4560-818a-0f0b9d6632fb"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"c27b0f50-fdad-4b69-a99e-2708806066aa","savedPayload":{"position":{"x":24486.764999673167,"y":31686.791233913154},"targetPosition":{"x":24557.764999673167,"y":31783.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2a1d405b-2fbe-4ed4-a76a-d2c7be59d20e"}}}],"dataProductFolders":[],"id":"6b55d39b-b602-4d0f-9d73-253e4fbe60ee","savedPayload":{"position":{"x":24557.764999673167,"y":31783.791233913154},"targetPosition":{"x":24591.764999673167,"y":31818.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trigger Stages","project":"Superalgos","id":"bc3d588e-823d-4461-b550-b8ec912c4c8f","savedPayload":{"position":{"x":24557.764999673167,"y":31774.791233913154},"targetPosition":{"x":24533.764999673167,"y":31850.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stages","id":"18cc2e79-7e57-418c-b635-6c68fc11d681"}}},{"type":"Data Product","name":"Open Stages","project":"Superalgos","id":"edb07104-591d-453b-b7fe-bd3854ff8a36","savedPayload":{"position":{"x":24568.764999673167,"y":31780.791233913154},"targetPosition":{"x":24533.764999673167,"y":31850.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stages","id":"d5938c00-0849-466d-ae14-4ea91b571678"}}},{"type":"Data Product","name":"Manage Stages","project":"Superalgos","id":"9b884f77-297b-4618-ac4b-b995570284b6","savedPayload":{"position":{"x":24528.764999673167,"y":31769.791233913154},"targetPosition":{"x":24533.764999673167,"y":31850.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stages","id":"8fab86b3-db8d-4113-8418-1d256bd98cf2"}}},{"type":"Data Product","name":"Close Stages","project":"Superalgos","id":"c07cc0bb-c49e-42d1-a5ba-f5fa9882fbab","savedPayload":{"position":{"x":24524.764999673167,"y":31824.791233913154},"targetPosition":{"x":24533.764999673167,"y":31850.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stages","id":"ba911e61-f951-48cd-b547-9a70aa211100"}}}],"dataProductFolders":[],"id":"9d38f1ab-49ec-461c-9eb1-7f7bb7529baf","savedPayload":{"position":{"x":24533.764999673167,"y":31850.791233913154},"targetPosition":{"x":24591.764999673167,"y":31818.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Positions","project":"Superalgos","id":"0e3c5d47-28d9-4cd3-ad72-1bdb054550a8","savedPayload":{"position":{"x":24517.764999673167,"y":31779.791233913154},"targetPosition":{"x":24560.764999673167,"y":31812.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Positions","id":"1eabba24-cbd4-4cbf-95e0-c5135349d41d"}}},{"type":"Data Product","name":"Position Base Asset","project":"Superalgos","id":"47ffaf48-d92f-4da8-afb3-7787c5ba597e","savedPayload":{"position":{"x":24477.764999673167,"y":31879.791233913154},"targetPosition":{"x":24560.764999673167,"y":31812.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Base Asset","id":"b371b039-f6c8-4f60-84cb-52f55c96c84d"}}},{"type":"Data Product","name":"Position Quoted Asset","project":"Superalgos","id":"59eb8fe6-5429-4d2d-8971-47580c5816b8","savedPayload":{"position":{"x":24462.764999673167,"y":31901.791233913154},"targetPosition":{"x":24560.764999673167,"y":31812.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Quoted Asset","id":"a376f02b-a5d2-4079-b5cd-ab7dc894b909"}}},{"type":"Data Product","name":"Stop Loss","project":"Superalgos","id":"13a4d476-b8bb-4bb3-9a97-1c2a7b5c6188","savedPayload":{"position":{"x":24656.764999673167,"y":31845.791233913154},"targetPosition":{"x":24560.764999673167,"y":31812.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Stop Loss","id":"c18bdc82-216a-4b1d-8850-5c3c9dc2000b"}}},{"type":"Data Product","name":"Take Profit","project":"Superalgos","id":"1af2f188-5506-47ff-859b-08e8f1c56754","savedPayload":{"position":{"x":24460.764999673167,"y":31717.791233913154},"targetPosition":{"x":24560.764999673167,"y":31812.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Take Profit","id":"2542c7d0-fa26-4b52-a59a-a3630e52eb89"}}}],"dataProductFolders":[],"id":"23dd1804-2a69-4a66-9c55-9b7a5333c263","savedPayload":{"position":{"x":24560.764999673167,"y":31812.791233913154},"targetPosition":{"x":24591.764999673167,"y":31818.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"224dd8a4-9dda-4294-8287-bb108a560eae","savedPayload":{"position":{"x":24591.764999673167,"y":31818.791233913154},"targetPosition":{"x":24510.764999673167,"y":31836.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"893b0c86-043f-404c-b4d7-c77d74c6002c","savedPayload":{"position":{"x":24510.764999673167,"y":31836.791233913154},"targetPosition":{"x":24523.764999673167,"y":31920.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ffdfebe3-50db-41b5-8077-7a7d0d008865","savedPayload":{"position":{"x":24523.764999673167,"y":31920.791233913154},"targetPosition":{"x":24482.764999673167,"y":32011.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"8e57ee10-b239-4a92-81b4-44315e3cfd03","savedPayload":{"position":{"x":24482.764999673167,"y":32011.791233913154},"targetPosition":{"x":24541.764999673167,"y":32023.791233913154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Live Trading Session","name":"WHB v2","id":"934095e8-4a1c-4baf-828f-7818f73c4219"}}}],"id":"d04c2806-8d2d-4de2-8d10-b05a87a91b65","savedPayload":{"position":{"x":24509.356993272086,"y":32330.956884291958},"targetPosition":{"x":24659.356993272086,"y":32071.149263156625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"f601d2a7-fada-477f-9b63-3ef7ed42d44a","savedPayload":{"position":{"x":24659.356993272086,"y":32071.149263156625},"targetPosition":{"x":24809.356993272086,"y":31811.341642021293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"a73073a9-0ae6-4e5a-aebc-59d56728d8a2","savedPayload":{"position":{"x":24809.356993272086,"y":31811.341642021293},"targetPosition":{"x":24959.356993272086,"y":31551.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"d7975b33-3654-4e37-8255-90dbf51c3789"}}}],"id":"e4e268f3-a677-4f90-90a1-d87244e647e5","savedPayload":{"position":{"x":24959.356993272086,"y":31551.53402088596},"targetPosition":{"x":25109.356993272086,"y":31291.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningMinesData":{"type":"Learning Mines Data","name":"New Learning Mines Data","project":"Superalgos","projectLearningProducts":[{"type":"Project Learning Products","name":"Superalgos","project":"Superalgos","exchangeLearningProducts":[],"id":"c935fdbb-ec18-4702-b593-b0163967eca1","savedPayload":{"position":{"x":24633.344989097342,"y":31656.98325715586},"targetPosition":{"x":24871.350991184714,"y":31474.354828453244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"d7975b33-3654-4e37-8255-90dbf51c3789"}}}],"id":"6f1d049c-18b7-4c73-9c2e-f65068679719","savedPayload":{"position":{"x":24871.350991184714,"y":31474.354828453244},"targetPosition":{"x":25109.356993272086,"y":31291.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e2697759-6038-4943-b90c-5a68651ff9a8","savedPayload":{"position":{"x":25109.356993272086,"y":31291.726399750627},"targetPosition":{"x":25259.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"d"}}},"id":"e452cf65-2b2b-44f2-9e67-bdd9d3c008e4","savedPayload":{"position":{"x":25259.356993272086,"y":31031.918778615294},"targetPosition":{"x":24959.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"3c165071-7558-4708-9999-8ffe71d346b1","savedPayload":{"position":{"x":24959.356993272086,"y":31031.918778615294},"targetPosition":{"x":24959.356993272086,"y":31031.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","project":"Superalgos","cryptoExchanges":[{"type":"Crypto Exchanges","name":"Tested","project":"Superalgos","exchanges":[{"type":"Crypto Exchange","name":"Binance","config":"{\n \"codeName\": \"binance\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"EUR\"} \n}","project":"Superalgos","assets":[{"type":"Asset","name":"Bitcoin","config":"{ \n\"codeName\": \"BTC\"\n}","project":"Superalgos","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa","savedPayload":{"position":{"x":19794.079365950267,"y":30512.325102172115},"targetPosition":{"x":19716.43365241951,"y":30802.102850058836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Tether","config":"{ \n\"codeName\": \"USDT\"\n}","project":"Superalgos","id":"f110bfa0-bd5b-469b-a940-4524c8688136","savedPayload":{"position":{"x":20006.21140030623,"y":30724.45713652808},"targetPosition":{"x":19716.43365241951,"y":30802.102850058836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"95d2c30f-215b-486e-8119-f4eac0279575","savedPayload":{"position":{"x":19716.43365241951,"y":30802.102850058836},"targetPosition":{"x":19504.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"E"}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","project":"Superalgos","markets":[{"type":"Market","name":"BTC/USDT","config":"{ \n\"codeName\": \"BTC/USDT\"\n}","project":"Superalgos","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","project":"Superalgos","id":"1017b30d-de1b-4212-991e-9fd0a5b6c814","savedPayload":{"position":{"x":20394.079365950267,"y":30936.589170884043},"targetPosition":{"x":20104.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","project":"Superalgos","id":"705c4a67-787a-48cd-a3dc-3a557438bf0b","savedPayload":{"position":{"x":20394.079365950267,"y":31091.880597945557},"targetPosition":{"x":20104.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"f110bfa0-bd5b-469b-a940-4524c8688136"}}},"id":"9a867bf0-a71d-445c-b99a-75b60bbdce09","savedPayload":{"position":{"x":20104.301618063546,"y":31014.2348844148},"targetPosition":{"x":19804.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2fd80894-900e-44ac-a1a7-56c14124f7a1","savedPayload":{"position":{"x":19804.301618063546,"y":31014.2348844148},"targetPosition":{"x":19504.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[{"type":"Exchange Account Asset","name":"Bitcoin","project":"Superalgos","id":"ba6f3d5c-b36b-49d9-947f-392068109169","savedPayload":{"position":{"x":20508.121182548915,"y":31438.498953126727},"targetPosition":{"x":20218.343434662194,"y":31516.144666657485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa"}}},{"type":"Exchange Account Asset","name":"Tether","project":"Superalgos","id":"c90be267-90f9-45ae-b225-0578adb4aad9","savedPayload":{"position":{"x":20430.475469018158,"y":31728.27670101345},"targetPosition":{"x":20218.343434662194,"y":31516.144666657485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"f110bfa0-bd5b-469b-a940-4524c8688136"}}}],"id":"8ac5c2a9-a238-48ae-ab43-0a0a95a37464","savedPayload":{"position":{"x":20218.343434662194,"y":31516.144666657485},"targetPosition":{"x":19928.565686775473,"y":31438.498953126727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"Key for Lighting Strike","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e85bbbd6-aca8-450f-9237-788062de5761","savedPayload":{"position":{"x":20083.857113836988,"y":32018.05444890017},"targetPosition":{"x":20006.21140030623,"y":31728.27670101345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"48925cc9-f3cd-4499-8466-1338fed28a0d","savedPayload":{"position":{"x":20006.21140030623,"y":31728.27670101345},"targetPosition":{"x":19928.565686775473,"y":31438.498953126727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"63794496-c94b-42f9-81cc-c588708617a6","savedPayload":{"position":{"x":19928.565686775473,"y":31438.498953126727},"targetPosition":{"x":19716.43365241951,"y":31226.366918770764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4b0c1ac5-515f-44a9-b9b9-e698a9c51eac","savedPayload":{"position":{"x":19716.43365241951,"y":31226.366918770764},"targetPosition":{"x":19504.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b","savedPayload":{"position":{"x":19504.301618063546,"y":31014.2348844148},"targetPosition":{"x":19204.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"tutorial":{"status":"Done"}}}],"id":"e3879d63-6f8f-41a3-8ac3-0349c4361722","savedPayload":{"position":{"x":19204.301618063546,"y":31014.2348844148},"targetPosition":{"x":18904.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Untested","project":"Superalgos","exchanges":[{"type":"Crypto Exchange","name":"ACX","config":"{ \n\"codeName\": \"acx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"ebcb522b-ae58-46d2-9d82-a9b0beec3976","savedPayload":{"position":{"x":17935.64382962515,"y":31014.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b2649588-27c6-442c-b179-f6d8817188b3","savedPayload":{"position":{"x":17954.64382962515,"y":31004.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9b2051d5-7ee7-4e94-8c8d-306674889339","savedPayload":{"position":{"x":17838.64382962515,"y":30896.23747069523},"targetPosition":{"x":17766.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"1d5461aa-d26c-4df5-b383-8c83e311b8ca","savedPayload":{"position":{"x":17643.64382962515,"y":30952.23747069523},"targetPosition":{"x":17698.64382962515,"y":30973.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c6372400-de52-4b63-97f3-f748aac9c63f","savedPayload":{"position":{"x":17698.64382962515,"y":30973.23747069523},"targetPosition":{"x":17766.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c948314e-2247-4234-b83d-cc2c1b152665","savedPayload":{"position":{"x":17766.64382962515,"y":30905.23747069523},"targetPosition":{"x":17837.64382962515,"y":30978.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04ccb742-ef1b-4138-b38d-a6b0d92f2f8e","savedPayload":{"position":{"x":17837.64382962515,"y":30978.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e9c21b2d-de21-43b5-8b48-51367a8c981c","savedPayload":{"position":{"x":19313.14497226101,"y":30565.583066825377},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"AOFEX","config":"{ \n\"codeName\": \"aofex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"623ef91b-04c0-4bd5-ac0d-b32c809be3ea","savedPayload":{"position":{"x":17973.64382962515,"y":30923.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"9d0b5855-59a6-4dda-9a4b-33d7a44d582e","savedPayload":{"position":{"x":17901.64382962515,"y":30994.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"e898e569-0dd3-4a22-baa5-caaace66d4ed","savedPayload":{"position":{"x":18062.64382962515,"y":30838.23747069523},"targetPosition":{"x":17982.64382962515,"y":30899.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"64a69d3d-15ff-41c3-a926-5ec93c932ab1","savedPayload":{"position":{"x":17822.64382962515,"y":31052.23747069523},"targetPosition":{"x":17893.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae2785c5-75a1-44fc-a71b-363d88cb5dac","savedPayload":{"position":{"x":17893.64382962515,"y":30981.23747069523},"targetPosition":{"x":17982.64382962515,"y":30899.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07ea69aa-7357-43b1-b548-a4c4fab70c55","savedPayload":{"position":{"x":17982.64382962515,"y":30899.23747069523},"targetPosition":{"x":17971.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2146b410-fc4e-452d-ae57-5d58c9a29706","savedPayload":{"position":{"x":17971.64382962515,"y":30962.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c2e9bb45-97c7-47e8-b13c-56946e673c53","savedPayload":{"position":{"x":19413.67778623216,"y":30647.89853748846},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bequant","config":"{ \n\"codeName\": \"bequant\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"b23c8adf-c880-48fd-b4af-4b4be86cf0e5","savedPayload":{"position":{"x":18059.64382962515,"y":31101.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"523bd94f-68f9-457e-91fd-806c1b95e98d","savedPayload":{"position":{"x":18006.64382962515,"y":31117.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9d914bb1-a68b-41ae-8666-0fcc755358c1","savedPayload":{"position":{"x":17859.64382962515,"y":30964.23747069523},"targetPosition":{"x":17936.64382962515,"y":31059.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"15d903b5-113c-465e-8120-7c46a9a85565","savedPayload":{"position":{"x":17976.64382962515,"y":31146.23747069523},"targetPosition":{"x":17943.64382962515,"y":31134.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2d1c0bc3-abe2-4340-91bf-2eef5b98a2f0","savedPayload":{"position":{"x":17943.64382962515,"y":31134.23747069523},"targetPosition":{"x":17936.64382962515,"y":31059.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a50d459-914c-4bfc-91e8-f15c383280eb","savedPayload":{"position":{"x":17936.64382962515,"y":31059.23747069523},"targetPosition":{"x":17931.64382962515,"y":31071.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b2f2b69f-3bef-4edc-9950-5261d9f36382","savedPayload":{"position":{"x":17931.64382962515,"y":31071.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e928d3e-a2c2-4341-aa2f-b753551c9479","savedPayload":{"position":{"x":19504.72140465123,"y":30740.600980501622},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bibox","config":"{ \n\"codeName\": \"bibox\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"13c1f22c-9a35-4d3f-b000-c96984fd6a2b","savedPayload":{"position":{"x":17995.64382962515,"y":31047.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3c6df49d-70c3-468a-bdd8-6768ce6d3a9d","savedPayload":{"position":{"x":17916.64382962515,"y":31018.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5a54ef39-8fba-4a5f-ac24-5f27e763e28f","savedPayload":{"position":{"x":18050.64382962515,"y":31174.23747069523},"targetPosition":{"x":17956.64382962515,"y":31128.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"08df1f45-dab0-463a-8758-359973f2620d","savedPayload":{"position":{"x":17899.64382962515,"y":31242.23747069523},"targetPosition":{"x":17959.64382962515,"y":31180.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"105b52c2-90ad-4fa1-b690-d8fab14209b4","savedPayload":{"position":{"x":17959.64382962515,"y":31180.23747069523},"targetPosition":{"x":17956.64382962515,"y":31128.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"68c1ef42-1b7b-4cc6-981f-80b20dabcd89","savedPayload":{"position":{"x":17956.64382962515,"y":31128.23747069523},"targetPosition":{"x":17907.64382962515,"y":31057.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fc35e5d0-ea61-42b6-979a-859f19c5ac6c","savedPayload":{"position":{"x":17907.64382962515,"y":31057.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e5f9ee4d-77a3-48ae-b354-b2f6a97d5e47","savedPayload":{"position":{"x":19585.208424334218,"y":30842.603544479174},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BigONE","config":"{ \n\"codeName\": \"bigone\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"3f289513-c1c8-457c-b65a-8cf62b5f5eb5","savedPayload":{"position":{"x":17778.64382962515,"y":31071.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8b365e73-1cee-496a-921f-121cb628a130","savedPayload":{"position":{"x":17798.64382962515,"y":31121.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"447a4f6f-cfa0-443e-9339-d7c1153ada31","savedPayload":{"position":{"x":17921.64382962515,"y":31046.23747069523},"targetPosition":{"x":17891.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0d234c53-c121-471e-bce1-a258c13cd148","savedPayload":{"position":{"x":17848.64382962515,"y":31175.23747069523},"targetPosition":{"x":17944.64382962515,"y":31086.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"816e1b6a-d790-4abd-9ae1-e203fa737af2","savedPayload":{"position":{"x":17944.64382962515,"y":31086.23747069523},"targetPosition":{"x":17891.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"561a57f7-8c22-4e50-840d-d983ed6bb864","savedPayload":{"position":{"x":17891.64382962515,"y":31102.23747069523},"targetPosition":{"x":17813.64382962515,"y":31064.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e243bd5d-ade7-46c8-876b-6ad8c6eb5e0a","savedPayload":{"position":{"x":17813.64382962515,"y":31064.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fb9ee540-bf12-4dda-bf87-cb6b58fce649","savedPayload":{"position":{"x":19654.195208565325,"y":30952.710342620318},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Binance Jersey","config":"{ \n\"codeName\": \"binanceje\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"0b979ea9-7a2d-4744-9517-2dfa632dfafc","savedPayload":{"position":{"x":17852.64382962515,"y":30989.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b9a4497d-20f1-4c61-9a79-444e0fe0ddf4","savedPayload":{"position":{"x":17924.64382962515,"y":30952.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1b24d8a4-ec70-4501-838c-7633f6f7288e","savedPayload":{"position":{"x":17882.64382962515,"y":31051.23747069523},"targetPosition":{"x":17942.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"627472e3-638f-4d68-a917-d0844d6a227b","savedPayload":{"position":{"x":17991.64382962515,"y":31190.23747069523},"targetPosition":{"x":17986.64382962515,"y":31110.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"b8ce75fb-93c9-4ca2-9b2b-9f8ed8af34f3","savedPayload":{"position":{"x":17986.64382962515,"y":31110.23747069523},"targetPosition":{"x":17942.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"08b226e4-14ee-4ad3-8d96-efe77cc38489","savedPayload":{"position":{"x":17942.64382962515,"y":31066.23747069523},"targetPosition":{"x":17949.64382962515,"y":31009.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2771eb11-bc72-4273-9e1b-9ac5410c6354","savedPayload":{"position":{"x":17949.64382962515,"y":31009.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2782350a-84a2-40ec-87c6-3c8043376a18","savedPayload":{"position":{"x":19710.872950374665,"y":31069.630473388454},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Binance US","config":"{ \n\"codeName\": \"binanceus\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"817ee1cf-b44c-4458-a9c4-a05a17ea0510","savedPayload":{"position":{"x":17943.64382962515,"y":30999.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c6694e9e-74dc-4c2e-9151-90f1d6631b45","savedPayload":{"position":{"x":17937.64382962515,"y":30989.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"00144904-5363-49eb-b445-8c8283d92b0d","savedPayload":{"position":{"x":17838.64382962515,"y":31193.23747069523},"targetPosition":{"x":17781.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2e71aa3c-03d4-4dbd-bc50-43b30f59e655","savedPayload":{"position":{"x":17783.64382962515,"y":31148.23747069523},"targetPosition":{"x":17703.64382962515,"y":31182.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"a4d0df32-c600-4421-b893-2a05f0442ed6","savedPayload":{"position":{"x":17703.64382962515,"y":31182.23747069523},"targetPosition":{"x":17781.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7a39543a-00e1-452b-8aba-36c2b240f9fc","savedPayload":{"position":{"x":17781.64382962515,"y":31156.23747069523},"targetPosition":{"x":17799.64382962515,"y":31119.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2543c4e5-8233-4348-b6dc-e47aed1ff381","savedPayload":{"position":{"x":17799.64382962515,"y":31119.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0b2b67d2-853b-470e-8b13-925956ad5621","savedPayload":{"position":{"x":19754.577155060477,"y":31191.993155151424},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"bitbank","config":"{ \n\"codeName\": \"bitbank\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"eb6b6842-9bf7-450e-baa3-7a87541a1cf6","savedPayload":{"position":{"x":17955.64382962515,"y":31107.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"6353ff56-759f-457d-81f3-fdb8ae5b3e83","savedPayload":{"position":{"x":17942.64382962515,"y":31183.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a2b297c7-f33b-48b9-98fa-d339c7b0ff67","savedPayload":{"position":{"x":17999.64382962515,"y":31016.23747069523},"targetPosition":{"x":17945.64382962515,"y":31116.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"9ce6c354-b294-4062-b763-421e5edb69de","savedPayload":{"position":{"x":17883.64382962515,"y":31186.23747069523},"targetPosition":{"x":17845.64382962515,"y":31202.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"547dbf6c-a292-46c0-a628-62856858121e","savedPayload":{"position":{"x":17845.64382962515,"y":31202.23747069523},"targetPosition":{"x":17945.64382962515,"y":31116.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"097055b3-37e5-4100-a24b-91e404fe49a6","savedPayload":{"position":{"x":17945.64382962515,"y":31116.23747069523},"targetPosition":{"x":17897.64382962515,"y":31142.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51aed4ce-0303-431e-a15f-e6f133f7a2cf","savedPayload":{"position":{"x":17897.64382962515,"y":31142.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c9a96a7-ed12-4b3e-bb51-306a8da131f5","savedPayload":{"position":{"x":19784.79543078195,"y":31318.363797342816},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitBay","config":"{ \n\"codeName\": \"bitbay\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"83b4e523-72a7-41ce-9363-fe0c799dcac1","savedPayload":{"position":{"x":17861.64382962515,"y":30965.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"966698f7-8a28-42d7-bb80-f7cd0601e44f","savedPayload":{"position":{"x":17823.64382962515,"y":31026.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"554829eb-3d40-4b95-a1cd-9de943763e2c","savedPayload":{"position":{"x":17914.64382962515,"y":30924.23747069523},"targetPosition":{"x":17876.64382962515,"y":30921.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2f534989-7ca7-4c3d-b14a-3b1071543c8c","savedPayload":{"position":{"x":17845.64382962515,"y":30853.23747069523},"targetPosition":{"x":17832.64382962515,"y":30821.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2f6b76b4-51d4-434f-8aa1-ed86b0e26bd2","savedPayload":{"position":{"x":17832.64382962515,"y":30821.23747069523},"targetPosition":{"x":17876.64382962515,"y":30921.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cbcc3ab6-9758-4273-99d2-9d05fdd392b5","savedPayload":{"position":{"x":17876.64382962515,"y":30921.23747069523},"targetPosition":{"x":17805.64382962515,"y":31015.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dada6c12-7c41-4ab8-9922-908233829f58","savedPayload":{"position":{"x":17805.64382962515,"y":31015.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8778eee5-97a2-4f9d-bd25-cd5a64ec6663","savedPayload":{"position":{"x":19801.173495885087,"y":31447.26081972472},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitfinex","config":"{ \n\"codeName\": \"bitfinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"33508b53-2769-4f3d-8c98-9fa37e5cbf5b","savedPayload":{"position":{"x":17888.64382962515,"y":31043.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4d4ad5a1-81a7-4f92-83db-99f57ce261bb","savedPayload":{"position":{"x":17975.64382962515,"y":30868.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"29d52baf-645c-4d8f-9631-ebd391b4c815","savedPayload":{"position":{"x":18034.64382962515,"y":31066.23747069523},"targetPosition":{"x":18037.64382962515,"y":31012.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d615c33d-c6cf-4572-ac32-8e9ddeb5bb52","savedPayload":{"position":{"x":18023.64382962515,"y":30916.23747069523},"targetPosition":{"x":18106.64382962515,"y":30982.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"0c189040-6318-483c-b6d7-982370a3298d","savedPayload":{"position":{"x":18106.64382962515,"y":30982.23747069523},"targetPosition":{"x":18037.64382962515,"y":31012.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd60de4a-d17c-4ba7-936a-cbf2305fe3bb","savedPayload":{"position":{"x":18037.64382962515,"y":31012.23747069523},"targetPosition":{"x":18039.64382962515,"y":30964.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d247f4f5-6f16-4a59-a4a5-6d1554b43562","savedPayload":{"position":{"x":18039.64382962515,"y":30964.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c076027-683d-4778-8a6a-e60984980fdf","savedPayload":{"position":{"x":19803.51933253116,"y":31577.173022561386},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitfinex","config":"{ \n\"codeName\": \"bitfinex2\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"8fc7f955-5c81-446c-bbeb-205988bf1fc0","savedPayload":{"position":{"x":17830.64382962515,"y":31051.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d5ba38e9-3282-4634-b922-16532c71f426","savedPayload":{"position":{"x":17819.64382962515,"y":31118.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1cebbed5-28f7-4ccd-afce-9e7634d90fb6","savedPayload":{"position":{"x":17892.64382962515,"y":30997.23747069523},"targetPosition":{"x":17855.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0d109aa9-c80c-4a64-96f0-1d8fda0a70a4","savedPayload":{"position":{"x":17888.64382962515,"y":30805.23747069523},"targetPosition":{"x":17942.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5459ab1e-a1ce-4dae-ae72-61c1f7f37ce0","savedPayload":{"position":{"x":17942.64382962515,"y":30905.23747069523},"targetPosition":{"x":17855.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a4615f7a-000d-4ff9-b5ac-109bc9a3a849","savedPayload":{"position":{"x":17855.64382962515,"y":30970.23747069523},"targetPosition":{"x":17919.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e10d303e-ea21-4625-bae1-c32ad7a44e8a","savedPayload":{"position":{"x":17919.64382962515,"y":31043.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f3114102-a73c-4086-9594-5888ef1ab4ec","savedPayload":{"position":{"x":19791.80543793031,"y":31706.577304054405},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitforex","config":"{ \n\"codeName\": \"bitforex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"698e5e38-ad73-4cb6-b7f6-2b69913faff9","savedPayload":{"position":{"x":17897.64382962515,"y":30956.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"f0142bd4-1b63-4d12-a4b7-e150d0da197f","savedPayload":{"position":{"x":18020.64382962515,"y":31021.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"7164fb28-405b-461a-a7d4-59d438ecf1ce","savedPayload":{"position":{"x":17821.64382962515,"y":30984.23747069523},"targetPosition":{"x":17901.64382962515,"y":30907.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"ce8a00c9-f090-4ec2-84ed-c6661f8bf7b0","savedPayload":{"position":{"x":17825.64382962515,"y":30965.23747069523},"targetPosition":{"x":17818.64382962515,"y":30913.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"579cd74b-98f6-4000-990b-25ae1456c94b","savedPayload":{"position":{"x":17818.64382962515,"y":30913.23747069523},"targetPosition":{"x":17901.64382962515,"y":30907.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"dbac6eef-25d2-4cda-86a6-59ce8a9a26bc","savedPayload":{"position":{"x":17901.64382962515,"y":30907.23747069523},"targetPosition":{"x":17909.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1da9dd3-22ec-4536-bb5a-4d0bb8a56b81","savedPayload":{"position":{"x":17909.64382962515,"y":30970.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"499a5a3b-7871-4c95-9b2e-d58d4d9e2392","savedPayload":{"position":{"x":19766.169146786622,"y":31833.956517318737},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"bitkk","config":"{ \n\"codeName\": \"bitkk\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"efbb916c-780b-447f-a4c2-df68570d4ee1","savedPayload":{"position":{"x":17931.64382962515,"y":30937.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0d829516-81d9-46a5-9861-7d94cc89455d","savedPayload":{"position":{"x":17951.64382962515,"y":30912.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"fc174aa3-c485-4b9b-ba19-444b0189ccb1","savedPayload":{"position":{"x":17788.64382962515,"y":30980.23747069523},"targetPosition":{"x":17834.64382962515,"y":30983.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"15921d8a-4b45-481c-9165-79969ed3fd27","savedPayload":{"position":{"x":17796.64382962515,"y":30936.23747069523},"targetPosition":{"x":17891.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"927d5c8a-85df-48bb-b097-c36abb76ca0e","savedPayload":{"position":{"x":17891.64382962515,"y":30922.23747069523},"targetPosition":{"x":17834.64382962515,"y":30983.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"43d218c2-e633-47d5-8dd8-60bc7f7c0b9e","savedPayload":{"position":{"x":17834.64382962515,"y":30983.23747069523},"targetPosition":{"x":17853.64382962515,"y":30925.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2d310d61-cbc7-4306-af02-be3888939545","savedPayload":{"position":{"x":17853.64382962515,"y":30925.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ded39740-3c93-4fda-bb9c-6ac75d2109f4","savedPayload":{"position":{"x":19726.911021174266,"y":31957.817257542785},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMart","config":"{ \n\"codeName\": \"bitmart\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"10374855-6b4a-460b-9c95-70072ac00315","savedPayload":{"position":{"x":17907.64382962515,"y":30901.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3aded60c-4061-48ff-ad33-212c965b5c43","savedPayload":{"position":{"x":17829.64382962515,"y":30925.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1789a3ca-d948-497d-8d1b-1eefd25d16a3","savedPayload":{"position":{"x":17886.64382962515,"y":30937.23747069523},"targetPosition":{"x":17895.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"038170bc-0ca7-4a92-8219-61b7bc8431b0","savedPayload":{"position":{"x":17893.64382962515,"y":31034.23747069523},"targetPosition":{"x":17835.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"55f79ede-ef02-405f-92bd-11902ab3cc7a","savedPayload":{"position":{"x":17835.64382962515,"y":30962.23747069523},"targetPosition":{"x":17895.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8185c660-4af3-4a62-bfa9-8922861101b5","savedPayload":{"position":{"x":17895.64382962515,"y":30988.23747069523},"targetPosition":{"x":17819.64382962515,"y":30909.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"546d48c3-df31-495c-b3b4-cb35109c5542","savedPayload":{"position":{"x":17819.64382962515,"y":30909.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c7ed52a7-895b-46f1-a745-35954d8bcfc6","savedPayload":{"position":{"x":19674.491326722004,"y":32076.707370794375},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMax","config":"{ \n\"codeName\": \"bitmax\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"8a042d0d-7a7a-4a76-889e-42d8642404f4","savedPayload":{"position":{"x":17944.64382962515,"y":31046.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0c4fcc48-51e6-4ff2-925f-405cda6d1122","savedPayload":{"position":{"x":17898.64382962515,"y":31024.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"ef9d5381-d9e3-47f5-9069-6fc14eda0fa3","savedPayload":{"position":{"x":17879.64382962515,"y":31096.23747069523},"targetPosition":{"x":17977.64382962515,"y":31041.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c66fe606-9705-45b0-a196-7ea3efb0221e","savedPayload":{"position":{"x":17982.64382962515,"y":31053.23747069523},"targetPosition":{"x":17943.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"80a5f68e-776a-44de-8797-d2eb806c306e","savedPayload":{"position":{"x":17943.64382962515,"y":31083.23747069523},"targetPosition":{"x":17977.64382962515,"y":31041.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"011fcf1c-1c94-4c36-a246-d6c400aa39dc","savedPayload":{"position":{"x":17977.64382962515,"y":31041.23747069523},"targetPosition":{"x":17942.64382962515,"y":31103.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4a87b8c5-e009-427f-afb7-21afe5594b59","savedPayload":{"position":{"x":17942.64382962515,"y":31103.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fc6a9048-ab8c-48f9-91ae-6c95c28714b0","savedPayload":{"position":{"x":19609.524636419505,"y":32189.2329791979},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMEX","config":"{ \n\"codeName\": \"bitmex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f7636e2b-354a-4217-894b-5e26eddc0c2a","savedPayload":{"position":{"x":17894.64382962515,"y":30934.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"6eb2ddd1-6d06-456c-b4e0-7df56ba182e6","savedPayload":{"position":{"x":17823.64382962515,"y":30834.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"b4a4b8fe-d923-4eb0-a066-171b83d1540d","savedPayload":{"position":{"x":17902.64382962515,"y":31064.23747069523},"targetPosition":{"x":17815.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"918ed585-ce46-4d51-a07a-9beee51f70eb","savedPayload":{"position":{"x":17711.64382962515,"y":31036.23747069523},"targetPosition":{"x":17805.64382962515,"y":31078.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"9efef4d8-5be3-4d17-a645-6edffd9535cf","savedPayload":{"position":{"x":17805.64382962515,"y":31078.23747069523},"targetPosition":{"x":17815.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6ad31a6e-f27b-45c3-9996-a41fb39aa154","savedPayload":{"position":{"x":17815.64382962515,"y":30988.23747069523},"targetPosition":{"x":17844.64382962515,"y":30896.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"82887393-cb1c-4b01-8581-4b3dabc86584","savedPayload":{"position":{"x":17844.64382962515,"y":30896.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1e2f1dd0-ebf1-4485-83d8-7723a9e3e714","savedPayload":{"position":{"x":19532.77262531095,"y":32294.07482287797},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bittrex","config":"{ \n\"codeName\": \"bittrex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"88d4ef94-f030-42df-9115-69d9611317b1","savedPayload":{"position":{"x":17839.64382962515,"y":31009.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"7fe8234d-9a39-4b28-bf98-43b4fdb57ee5","savedPayload":{"position":{"x":17878.64382962515,"y":31045.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5ba7fe13-1e0f-403a-8f4b-8e3968d2e5e2","savedPayload":{"position":{"x":17841.64382962515,"y":30890.23747069523},"targetPosition":{"x":17742.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e926fbb8-d2ac-4e3d-aa59-a0a828d202fd","savedPayload":{"position":{"x":17707.64382962515,"y":30983.23747069523},"targetPosition":{"x":17782.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"4fbe41e1-cb15-4bc2-a3de-681c5b22cc97","savedPayload":{"position":{"x":17782.64382962515,"y":31052.23747069523},"targetPosition":{"x":17742.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ab9fe180-1c07-44de-a0a1-863761ac52d6","savedPayload":{"position":{"x":17742.64382962515,"y":30961.23747069523},"targetPosition":{"x":17796.64382962515,"y":30903.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"584f29ca-9b3c-4b7f-a2b0-aab4180ecefd","savedPayload":{"position":{"x":17796.64382962515,"y":30903.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f598f002-8fc5-491f-888e-07d017ea83c6","savedPayload":{"position":{"x":19445.135140551556,"y":32390.003727075255},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bit-Z","config":"{ \n\"codeName\": \"bitz\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"0a22e02b-7d2e-4955-9cfc-ed7d95f0c9a0","savedPayload":{"position":{"x":17751.64382962515,"y":31083.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"298b45af-b73d-4cd5-848a-97de7b857569","savedPayload":{"position":{"x":17944.64382962515,"y":31083.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6ede807b-b1ab-42b5-bfd7-3b12a942447e","savedPayload":{"position":{"x":17871.64382962515,"y":31049.23747069523},"targetPosition":{"x":17772.64382962515,"y":31098.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"dc172858-3241-4487-950a-e5cae03ac376","savedPayload":{"position":{"x":17751.64382962515,"y":31081.23747069523},"targetPosition":{"x":17753.64382962515,"y":31028.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"19c07cee-1fdf-4e02-ac9f-d110b64ee033","savedPayload":{"position":{"x":17753.64382962515,"y":31028.23747069523},"targetPosition":{"x":17772.64382962515,"y":31098.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4ef5048-ac4c-410e-bd6d-3338e33ab108","savedPayload":{"position":{"x":17772.64382962515,"y":31098.23747069523},"targetPosition":{"x":17788.64382962515,"y":31134.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e7e96c41-c839-4eec-9bcf-1c60d60fa3f5","savedPayload":{"position":{"x":17788.64382962515,"y":31134.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6cc10926-fe41-43be-887b-fa8aba1c7377","savedPayload":{"position":{"x":19347.639651522415,"y":32475.89501309667},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BTC-Alpha","config":"{ \n\"codeName\": \"btcalpha\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"263e3b9c-8fdd-4376-b53b-87f32d0f5898","savedPayload":{"position":{"x":17904.64382962515,"y":30922.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"804603e1-3e0f-4219-a9b7-ee27810d4f07","savedPayload":{"position":{"x":17829.64382962515,"y":30977.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"83b25fff-e448-483f-9bee-cb85fa592c6e","savedPayload":{"position":{"x":17734.64382962515,"y":30862.23747069523},"targetPosition":{"x":17829.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"efcfa3ca-0f82-4eb7-9b04-ed5eb4e1c3cf","savedPayload":{"position":{"x":17799.64382962515,"y":30864.23747069523},"targetPosition":{"x":17837.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"9ca8d728-ee11-4905-9a3a-5ca4ed50f3df","savedPayload":{"position":{"x":17837.64382962515,"y":30919.23747069523},"targetPosition":{"x":17829.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2cfde277-afa6-4ad3-bb5b-8a32b89e2037","savedPayload":{"position":{"x":17829.64382962515,"y":30960.23747069523},"targetPosition":{"x":17903.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"297a0ea2-f6d7-47fd-9fb7-0d99d00a87d8","savedPayload":{"position":{"x":17903.64382962515,"y":30969.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"30e5485f-213b-435b-a670-07b76cfe5cae","savedPayload":{"position":{"x":19241.429203691412,"y":32550.741684144767},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BTC Markets","config":"{ \n\"codeName\": \"btcmarkets\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"fcb3b880-0852-4d93-8714-67373f9dca16","savedPayload":{"position":{"x":17911.64382962515,"y":31036.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"953d8eff-0b2e-4b07-8635-393fddae0c9d","savedPayload":{"position":{"x":18025.64382962515,"y":31127.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c08873f6-9120-4764-8b06-c8110468b423","savedPayload":{"position":{"x":17935.64382962515,"y":30927.23747069523},"targetPosition":{"x":18027.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"beaa2557-4976-4e53-8a24-7ea00fc3afd5","savedPayload":{"position":{"x":18054.64382962515,"y":30851.23747069523},"targetPosition":{"x":18125.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"445158a2-91b4-4ad8-8380-036cbba6ad7e","savedPayload":{"position":{"x":18125.64382962515,"y":30951.23747069523},"targetPosition":{"x":18027.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd00e08c-a26d-4b11-93a3-b0e8f35bec4b","savedPayload":{"position":{"x":18027.64382962515,"y":31003.23747069523},"targetPosition":{"x":18016.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"35cb55c1-ceb3-4093-98af-8a1c2411fe0f","savedPayload":{"position":{"x":18016.64382962515,"y":31075.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ac2fda42-95ca-404a-8dd2-72bff0ff5a0f","savedPayload":{"position":{"x":19127.749017450227,"y":32613.66623143447},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Buda","config":"{ \n\"codeName\": \"buda\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"27f3573d-e1f0-473f-9bfd-f9198e7240a0","savedPayload":{"position":{"x":17945.64382962515,"y":30937.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4ddc0981-4e45-42f3-ae11-f5b136b2bc3d","savedPayload":{"position":{"x":17783.64382962515,"y":31008.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5a325d59-e6a6-4f76-a311-5e67c5f5a8a2","savedPayload":{"position":{"x":17980.64382962515,"y":30843.23747069523},"targetPosition":{"x":17956.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"fb985ab9-7759-4780-a052-8ee9be0b712a","savedPayload":{"position":{"x":17907.64382962515,"y":30968.23747069523},"targetPosition":{"x":17958.64382962515,"y":30884.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fdf7665a-2974-467b-9280-4077a888733f","savedPayload":{"position":{"x":17958.64382962515,"y":30884.23747069523},"targetPosition":{"x":17956.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a3105cfc-f80e-4bcb-b399-6ea9c0f7edf0","savedPayload":{"position":{"x":17956.64382962515,"y":30936.23747069523},"targetPosition":{"x":17872.64382962515,"y":30941.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5d69a76f-e7bc-4538-950e-2e2353eccea3","savedPayload":{"position":{"x":17872.64382962515,"y":30941.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"90fe3d74-662e-4fac-aff3-f41990b61ccf","savedPayload":{"position":{"x":19007.931889043757,"y":32663.930922181273},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BW","config":"{ \n\"codeName\": \"bw\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"457616cd-25f9-4ad3-8c18-6331859dd42e","savedPayload":{"position":{"x":17890.64382962515,"y":31014.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8c1f9aa2-4253-4129-a533-e515644ddb38","savedPayload":{"position":{"x":17909.64382962515,"y":30970.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"24314a5b-85ca-4036-adc6-618120496f1d","savedPayload":{"position":{"x":17773.64382962515,"y":30945.23747069523},"targetPosition":{"x":17860.64382962515,"y":30865.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"f7c593f6-bd7a-41f7-a5e7-b2e1ea9a528f","savedPayload":{"position":{"x":17820.64382962515,"y":30885.23747069523},"targetPosition":{"x":17828.64382962515,"y":30802.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"60dfc799-f863-4895-8d17-568aa2303ef5","savedPayload":{"position":{"x":17828.64382962515,"y":30802.23747069523},"targetPosition":{"x":17860.64382962515,"y":30865.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"223e466d-d750-4e38-91ce-8a59c15242ba","savedPayload":{"position":{"x":17860.64382962515,"y":30865.23747069523},"targetPosition":{"x":17818.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cfff1310-5220-4978-9553-8514be141d14","savedPayload":{"position":{"x":17818.64382962515,"y":30919.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d72db90c-d572-4cbb-8348-e3cc485d8e86","savedPayload":{"position":{"x":18883.38256475272,"y":32700.94644884361},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bybit","config":"{ \n\"codeName\": \"bybit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"18fdf7c8-03c4-4f81-a88e-de97589765e1","savedPayload":{"position":{"x":17803.64382962515,"y":31059.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"a62b2603-ac6f-4b6e-9541-86daf32027b1","savedPayload":{"position":{"x":17847.64382962515,"y":31104.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"66ecff99-7102-4f4a-9ce8-4d55fb22dfbc","savedPayload":{"position":{"x":17851.64382962515,"y":31165.23747069523},"targetPosition":{"x":17916.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"625e127c-0ebb-4f57-af9f-9dfb57b262a1","savedPayload":{"position":{"x":18004.64382962515,"y":31091.23747069523},"targetPosition":{"x":18008.64382962515,"y":31027.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"8174bb53-66b8-4575-b206-74f9b6352a80","savedPayload":{"position":{"x":18008.64382962515,"y":31027.23747069523},"targetPosition":{"x":17916.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ee16357e-abde-4800-b089-f43f4b696a35","savedPayload":{"position":{"x":17916.64382962515,"y":31077.23747069523},"targetPosition":{"x":17944.64382962515,"y":31101.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c9e9473b-aff9-43c8-a6be-5cd30330bee2","savedPayload":{"position":{"x":17944.64382962515,"y":31101.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"516c3831-456b-4d17-b0a0-6a363ba2ddb2","savedPayload":{"position":{"x":18755.561271527895,"y":32724.27883821499},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"ByteTrade","config":"{ \n\"codeName\": \"bytetrade\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e7a1e531-5a9e-466e-b98d-672de39eed3a","savedPayload":{"position":{"x":18088.64382962515,"y":31024.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"edafaba7-fd82-4d9f-b3f7-5d1c01c56599","savedPayload":{"position":{"x":17941.64382962515,"y":30943.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"50fa78b8-3aea-4e43-adcf-1e31820bf97f","savedPayload":{"position":{"x":17886.64382962515,"y":31008.23747069523},"targetPosition":{"x":17858.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"b9c39b04-e86e-4ebb-9aba-39c375f2960c","savedPayload":{"position":{"x":17865.64382962515,"y":30941.23747069523},"targetPosition":{"x":17953.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5965d9cc-1d68-47a7-b838-e6dd81da6ea9","savedPayload":{"position":{"x":17953.64382962515,"y":31023.23747069523},"targetPosition":{"x":17858.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f51a08be-ee3f-4d3b-a75e-d783d63092a7","savedPayload":{"position":{"x":17858.64382962515,"y":30967.23747069523},"targetPosition":{"x":17898.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d395efd0-691b-4a68-a7f1-9bce95b2f687","savedPayload":{"position":{"x":17898.64382962515,"y":30965.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45e2306f-03e8-4d17-a73a-72c11dd14e78","savedPayload":{"position":{"x":18625.966597164217,"y":32733.65453936303},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CEX.IO","config":"{ \n\"codeName\": \"cex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9de19f0a-5824-4e42-af00-484b64421dc3","savedPayload":{"position":{"x":17890.64382962515,"y":31049.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"39db01bc-0cea-422f-b9e9-7d84e3f5446d","savedPayload":{"position":{"x":17918.64382962515,"y":31105.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"93833d3c-42c9-4e4d-bf0f-5b80a90d10c2","savedPayload":{"position":{"x":17978.64382962515,"y":31126.23747069523},"targetPosition":{"x":17953.64382962515,"y":31167.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"42863a52-30f4-4322-9c20-99a45d6dc3d6","savedPayload":{"position":{"x":17884.64382962515,"y":31149.23747069523},"targetPosition":{"x":17895.64382962515,"y":31148.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fcff471d-29be-4176-8ff8-12088361f9fc","savedPayload":{"position":{"x":17895.64382962515,"y":31148.23747069523},"targetPosition":{"x":17953.64382962515,"y":31167.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f7975a18-b3ab-49bc-ae45-eb02c99aff8c","savedPayload":{"position":{"x":17953.64382962515,"y":31167.23747069523},"targetPosition":{"x":17881.64382962515,"y":31096.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ec432123-43fe-4171-8c41-b797d3161edb","savedPayload":{"position":{"x":17881.64382962515,"y":31096.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"346bfc30-e32a-453a-bdc6-0ead48221581","savedPayload":{"position":{"x":18496.117920729066,"y":32728.96363076407},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Coinbase Prime","config":"{ \n\"codeName\": \"coinbaseprime\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"73cabd8d-9308-49ed-b544-44f785ee7d38","savedPayload":{"position":{"x":17867.64382962515,"y":30962.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"31bd1360-f0c5-4d70-876a-b152f7cedfd7","savedPayload":{"position":{"x":17960.64382962515,"y":30864.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9b75fcfa-fe75-48a8-9d28-2ff19c58c041","savedPayload":{"position":{"x":17792.64382962515,"y":30841.23747069523},"targetPosition":{"x":17809.64382962515,"y":30934.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c900b14a-c728-45af-90f8-29b3e5f29f46","savedPayload":{"position":{"x":17801.64382962515,"y":30986.23747069523},"targetPosition":{"x":17793.64382962515,"y":31006.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"eaf72df3-b66f-4b83-83f9-91e22ec0c300","savedPayload":{"position":{"x":17793.64382962515,"y":31006.23747069523},"targetPosition":{"x":17809.64382962515,"y":30934.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9da95675-2071-41bf-b5ac-4f2af602994f","savedPayload":{"position":{"x":17809.64382962515,"y":30934.23747069523},"targetPosition":{"x":17862.64382962515,"y":31021.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4fc49ad4-57cc-43b0-b14b-15f26af994aa","savedPayload":{"position":{"x":17862.64382962515,"y":31021.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a8281db-6ace-4186-8cfb-cd249c4af48b","savedPayload":{"position":{"x":18367.537599231866,"y":32710.26110903248},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Coinbase Pro","config":"{ \n\"codeName\": \"coinbasepro\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"a29d6e1a-a94e-4b6b-8741-e9af6e4762f4","savedPayload":{"position":{"x":17788.64382962515,"y":30897.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"10cd9004-0088-4bc0-8fe6-b937f1bb311b","savedPayload":{"position":{"x":17865.64382962515,"y":30918.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"004397e6-ae73-46a6-9ed7-b4ba1930f77b","savedPayload":{"position":{"x":17945.64382962515,"y":30899.23747069523},"targetPosition":{"x":17850.64382962515,"y":30889.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"a81a7021-2228-4386-a773-9ac80c9e723a","savedPayload":{"position":{"x":17738.64382962515,"y":30761.23747069523},"targetPosition":{"x":17792.64382962515,"y":30789.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"482d82f2-364e-483c-b51a-a3fbe8a91577","savedPayload":{"position":{"x":17792.64382962515,"y":30789.23747069523},"targetPosition":{"x":17850.64382962515,"y":30889.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d823ad8e-0452-40f0-bad9-c2cb3ad29a21","savedPayload":{"position":{"x":17850.64382962515,"y":30889.23747069523},"targetPosition":{"x":17772.64382962515,"y":30894.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0c965322-fdd2-4e67-aaf3-dfc4b9dffc59","savedPayload":{"position":{"x":17772.64382962515,"y":30894.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4242da4b-a67e-44d8-8a19-b1c2f078c94c","savedPayload":{"position":{"x":18241.733119380056,"y":32677.766244135688},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CoinEx","config":"{ \n\"codeName\": \"coinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"af78f796-60e5-4794-87b8-772c7bc74be1","savedPayload":{"position":{"x":18043.64382962515,"y":31069.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d351e6d9-36eb-4d0e-aca5-94429bbb23a3","savedPayload":{"position":{"x":18094.64382962515,"y":31090.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"438f74c6-15e0-4553-af2a-febd5290c269","savedPayload":{"position":{"x":17908.64382962515,"y":31088.23747069523},"targetPosition":{"x":17986.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"bfb22430-77c7-41a7-8083-771f7d7f3634","savedPayload":{"position":{"x":17927.64382962515,"y":30953.23747069523},"targetPosition":{"x":17947.64382962515,"y":30990.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"51daaa12-1c60-4cef-96d8-a445b4b32296","savedPayload":{"position":{"x":17947.64382962515,"y":30990.23747069523},"targetPosition":{"x":17986.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"726b8c33-9873-4be1-b9ef-d6b4483f23b1","savedPayload":{"position":{"x":17986.64382962515,"y":31075.23747069523},"targetPosition":{"x":17919.64382962515,"y":31016.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"30469514-b983-4f6f-9d74-6d6ceef25eb6","savedPayload":{"position":{"x":17919.64382962515,"y":31016.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"62ad0961-6bdf-4a4a-a340-610816742d0a","savedPayload":{"position":{"x":18120.179423675774,"y":32631.860008654276},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"COSS","config":"{ \n\"codeName\": \"coss\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e6315232-c6b1-4e25-aade-7bc7ba9ba6ac","savedPayload":{"position":{"x":17787.64382962515,"y":30984.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b1e8451f-09a2-47b0-add3-cf9c35c487bb","savedPayload":{"position":{"x":17829.64382962515,"y":31095.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d1c9b795-0434-4ce1-9cb7-cc61fac7396d","savedPayload":{"position":{"x":17950.64382962515,"y":31149.23747069523},"targetPosition":{"x":17882.64382962515,"y":31131.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"22be64f9-4b08-4ac3-ae89-6726743a7d5a","savedPayload":{"position":{"x":17890.64382962515,"y":31165.23747069523},"targetPosition":{"x":17956.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c7462500-ba74-4bf3-ad81-35fa232bede3","savedPayload":{"position":{"x":17956.64382962515,"y":31156.23747069523},"targetPosition":{"x":17882.64382962515,"y":31131.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5cd41ced-981a-4075-af43-3a0497eb0fcb","savedPayload":{"position":{"x":17882.64382962515,"y":31131.23747069523},"targetPosition":{"x":17856.64382962515,"y":31148.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b5937899-c6ee-4d7a-b259-1ee23d721f60","savedPayload":{"position":{"x":17856.64382962515,"y":31148.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"695029de-7f61-45bb-aa4c-c6d51e6369ed","savedPayload":{"position":{"x":18004.301618063546,"y":32573.08061122679},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CREX24","config":"{ \n\"codeName\": \"crex24\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c5e12f4a-fb26-40d3-9e70-751b55018e74","savedPayload":{"position":{"x":17910.64382962515,"y":31024.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"00cb629e-bad4-4c6e-8abb-499cad3992f4","savedPayload":{"position":{"x":17938.64382962515,"y":31054.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"4909d182-e0d5-49a9-8ad2-a553c8aaaf88","savedPayload":{"position":{"x":17912.64382962515,"y":31301.23747069523},"targetPosition":{"x":17920.64382962515,"y":31249.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"075eb2a2-299b-4a0f-9f6d-76c385521dc4","savedPayload":{"position":{"x":17800.64382962515,"y":31332.23747069523},"targetPosition":{"x":17883.64382962515,"y":31289.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"e062ef2e-b252-4a66-8f58-d9aa8031f526","savedPayload":{"position":{"x":17883.64382962515,"y":31289.23747069523},"targetPosition":{"x":17920.64382962515,"y":31249.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e75be98-f874-486d-b749-536e364934dc","savedPayload":{"position":{"x":17920.64382962515,"y":31249.23747069523},"targetPosition":{"x":17845.64382962515,"y":31164.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"052f73cd-7ed7-4537-8b01-840b5b892fea","savedPayload":{"position":{"x":17845.64382962515,"y":31164.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07a7ec7c-273e-4675-8d8d-21ab8514a1f0","savedPayload":{"position":{"x":17895.458263866083,"y":32502.117186545547},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Deribit","config":"{ \n\"codeName\": \"deribit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f0b2354b-89e3-4eca-b051-664a3b8283f6","savedPayload":{"position":{"x":17862.64382962515,"y":30844.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4ae1f824-82a8-4796-a2d5-3d2358d8089f","savedPayload":{"position":{"x":17912.64382962515,"y":31024.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2013fe7a-d52c-4c9d-ba53-d281d014a8fc","savedPayload":{"position":{"x":17873.64382962515,"y":30926.23747069523},"targetPosition":{"x":17855.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"706d5778-ed21-49bd-9277-1840ec52708d","savedPayload":{"position":{"x":17729.64382962515,"y":31033.23747069523},"targetPosition":{"x":17813.64382962515,"y":31053.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2e76bc02-6e10-4f14-9bf1-a11dc4268466","savedPayload":{"position":{"x":17813.64382962515,"y":31053.23747069523},"targetPosition":{"x":17855.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"89a3ccc7-20ab-4e2d-929b-52d9286179b7","savedPayload":{"position":{"x":17855.64382962515,"y":30967.23747069523},"targetPosition":{"x":17818.64382962515,"y":30920.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5c8219e3-4509-4b8b-941b-b88ac2c12237","savedPayload":{"position":{"x":17818.64382962515,"y":30920.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"21971815-4248-45df-8e04-20b9a5a83f06","savedPayload":{"position":{"x":17794.92544989493,"y":32419.801715882462},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"DigiFinex","config":"{ \n\"codeName\": \"digifinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e583c93e-9a44-4e0d-acb7-56d7e00a555a","savedPayload":{"position":{"x":17954.64382962515,"y":30992.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8917c7c0-b420-4d4f-a35a-c0fc6870f0de","savedPayload":{"position":{"x":18052.64382962515,"y":30972.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a00b5bb0-5ab9-42e2-91fe-b450c7eb66d2","savedPayload":{"position":{"x":18220.64382962515,"y":31090.23747069523},"targetPosition":{"x":18123.64382962515,"y":30998.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2aafc473-339b-4d23-9b74-06fa7574c293","savedPayload":{"position":{"x":18144.64382962515,"y":31123.23747069523},"targetPosition":{"x":18203.64382962515,"y":31084.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"99e9e136-1ac7-4400-a100-0a2d37f0882d","savedPayload":{"position":{"x":18203.64382962515,"y":31084.23747069523},"targetPosition":{"x":18123.64382962515,"y":30998.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b7cee21b-ddcb-4fd7-b610-43aabb2d1766","savedPayload":{"position":{"x":18123.64382962515,"y":30998.23747069523},"targetPosition":{"x":18032.64382962515,"y":30976.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08e84a25-4368-4ad6-939f-5a16cece62cc","savedPayload":{"position":{"x":18032.64382962515,"y":30976.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b7d56781-0c51-4ec1-95fd-bf4dc8c00352","savedPayload":{"position":{"x":17703.88183147586,"y":32327.0992728693},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"DSX","config":"{ \n\"codeName\": \"dsx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"d672ab56-cd32-4ff5-8fc5-3733262aeccb","savedPayload":{"position":{"x":17916.64382962515,"y":31106.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3731a7b5-ba9d-483e-bb41-abf3ae0232c6","savedPayload":{"position":{"x":17878.64382962515,"y":30946.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9ef7e0ac-dc27-4b47-a06e-0cb7e80ee3d7","savedPayload":{"position":{"x":18124.64382962515,"y":31136.23747069523},"targetPosition":{"x":18093.64382962515,"y":31072.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"77491a3c-3db7-446f-aa67-9b5a1a3be7b3","savedPayload":{"position":{"x":18109.64382962515,"y":31081.23747069523},"targetPosition":{"x":18188.64382962515,"y":31137.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"bd1bd0b7-4943-4aeb-bf90-d3192dcabbb1","savedPayload":{"position":{"x":18188.64382962515,"y":31137.23747069523},"targetPosition":{"x":18093.64382962515,"y":31072.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45747fef-f30e-4fae-b02d-5768ae7dbe68","savedPayload":{"position":{"x":18093.64382962515,"y":31072.23747069523},"targetPosition":{"x":18018.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa2e1c9b-428c-4bb0-9e75-ceb8c9043d4b","savedPayload":{"position":{"x":18018.64382962515,"y":31005.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4c543abc-7372-4701-bc58-107578d45c25","savedPayload":{"position":{"x":17623.394811792878,"y":32225.09670889175},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FCoin","config":"{ \n\"codeName\": \"fcoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"a97d578c-6d7f-403c-8294-18aacf14abd8","savedPayload":{"position":{"x":17893.64382962515,"y":30953.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"442c3834-482e-4928-9255-8ac859ae012e","savedPayload":{"position":{"x":17905.64382962515,"y":30896.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"79754959-1219-4c4d-be63-22766158beb5","savedPayload":{"position":{"x":18106.64382962515,"y":30976.23747069523},"targetPosition":{"x":18069.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"1c3ae096-5024-43c3-abca-24498254e363","savedPayload":{"position":{"x":18112.64382962515,"y":30919.23747069523},"targetPosition":{"x":18126.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"59db5bfd-e413-48a7-af63-237ad56adc82","savedPayload":{"position":{"x":18126.64382962515,"y":30965.23747069523},"targetPosition":{"x":18069.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"833c4e54-08f4-48ec-b90a-2767eb55f244","savedPayload":{"position":{"x":18069.64382962515,"y":31056.23747069523},"targetPosition":{"x":17996.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a8cf17b3-0ea7-4a14-8c76-f655344b58a3","savedPayload":{"position":{"x":17996.64382962515,"y":30970.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6ddedcbd-07cb-4928-91b3-348f47118391","savedPayload":{"position":{"x":17554.408027561767,"y":32114.989910750606},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FCoinJP","config":"{ \n\"codeName\": \"fcoinjp\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"4a8a9810-6df6-451a-ab26-22bd7e7be85a","savedPayload":{"position":{"x":17930.64382962515,"y":31129.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"138ab40c-18ca-4a11-9709-0baa040873e6","savedPayload":{"position":{"x":18007.64382962515,"y":31122.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"258cdf92-8ed0-4133-ae2a-b9f086f56a13","savedPayload":{"position":{"x":17897.64382962515,"y":30887.23747069523},"targetPosition":{"x":17903.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"537e8f0c-05ca-4403-bc96-da6c2f4678ae","savedPayload":{"position":{"x":17825.64382962515,"y":30842.23747069523},"targetPosition":{"x":17836.64382962515,"y":30926.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"62519e63-8f4e-4b72-a341-0a6eea01ac3f","savedPayload":{"position":{"x":17836.64382962515,"y":30926.23747069523},"targetPosition":{"x":17903.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4974cc1-f594-436b-8aa4-aff2733b8e3c","savedPayload":{"position":{"x":17903.64382962515,"y":30977.23747069523},"targetPosition":{"x":17873.64382962515,"y":31061.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d84b404f-75e2-4eb5-b34a-b45af8a57ca7","savedPayload":{"position":{"x":17873.64382962515,"y":31061.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"982627ea-df84-4ba9-9219-612fbe1e4276","savedPayload":{"position":{"x":17497.730285752426,"y":31998.069779982467},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FTX","config":"{ \n\"codeName\": \"ftx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"20c0a4f5-bdb9-46cc-af7e-2111964551e3","savedPayload":{"position":{"x":17886.64382962515,"y":30940.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"75c99a0b-d3c9-4073-9283-d33e539c36bb","savedPayload":{"position":{"x":17992.64382962515,"y":31061.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2e037470-549e-4aa8-bbe7-95cdeaef88ea","savedPayload":{"position":{"x":17964.64382962515,"y":31027.23747069523},"targetPosition":{"x":17970.64382962515,"y":31008.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"3b6f5b7b-9c61-4b71-b29a-ca1bc027e55f","savedPayload":{"position":{"x":17817.64382962515,"y":30943.23747069523},"targetPosition":{"x":17890.64382962515,"y":30978.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"a84010f0-04b5-4eab-a3a6-a5944b80a373","savedPayload":{"position":{"x":17890.64382962515,"y":30978.23747069523},"targetPosition":{"x":17970.64382962515,"y":31008.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5cdc51a3-6136-4e03-9e2c-26a752140d17","savedPayload":{"position":{"x":17970.64382962515,"y":31008.23747069523},"targetPosition":{"x":18010.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"55258a2b-3199-4070-beed-d34a8496870c","savedPayload":{"position":{"x":18010.64382962515,"y":30986.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0c0bcf5c-2774-423e-9fcf-c512b38dd06d","savedPayload":{"position":{"x":17454.026081066615,"y":31875.707098219504},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Gate.io","config":"{ \n\"codeName\": \"gateio\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"71a15089-9d40-4726-9a41-37d406064164","savedPayload":{"position":{"x":17930.64382962515,"y":30993.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c025e976-c2c6-49de-81ec-48e2f737b412","savedPayload":{"position":{"x":17925.64382962515,"y":31053.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"876f964a-e12d-4438-87fb-a84be22f86d1","savedPayload":{"position":{"x":17914.64382962515,"y":30833.23747069523},"targetPosition":{"x":17827.64382962515,"y":30882.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0c5d34c4-467f-4e98-bd39-1b2d9afb834e","savedPayload":{"position":{"x":17852.64382962515,"y":30831.23747069523},"targetPosition":{"x":17870.64382962515,"y":30847.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"89316d8c-893a-46ae-b147-948b4b8a5292","savedPayload":{"position":{"x":17870.64382962515,"y":30847.23747069523},"targetPosition":{"x":17827.64382962515,"y":30882.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a2a5de53-bd45-4904-8bae-0cf5ed66d2af","savedPayload":{"position":{"x":17827.64382962515,"y":30882.23747069523},"targetPosition":{"x":17800.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f6f4072d-8cf6-4e47-8b4e-a21cd553348a","savedPayload":{"position":{"x":17800.64382962515,"y":30936.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c4028289-4cdb-4da0-90e6-5f93328b8e03","savedPayload":{"position":{"x":17423.807805345143,"y":31749.336456028108},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Gemini","config":"{ \n\"codeName\": \"gemini\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9eb15872-8d15-4086-9920-46909eb5f9e7","savedPayload":{"position":{"x":17951.64382962515,"y":30901.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"a84dcf06-57c6-47d7-97a0-9f03f3af8b34","savedPayload":{"position":{"x":18045.64382962515,"y":30891.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5da1ba65-3839-4664-8105-2ccb11652767","savedPayload":{"position":{"x":18028.64382962515,"y":31112.23747069523},"targetPosition":{"x":17941.64382962515,"y":31044.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"337fe5e2-b9fd-40eb-9f42-44fc5057d981","savedPayload":{"position":{"x":17957.64382962515,"y":31129.23747069523},"targetPosition":{"x":17875.64382962515,"y":31086.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"17a3f4a3-8914-4995-afb0-7e8115791b17","savedPayload":{"position":{"x":17875.64382962515,"y":31086.23747069523},"targetPosition":{"x":17941.64382962515,"y":31044.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"32e4a3f1-40d8-421f-9634-7ab339858286","savedPayload":{"position":{"x":17941.64382962515,"y":31044.23747069523},"targetPosition":{"x":17877.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"365f6865-e707-415d-a168-b67c66ca9553","savedPayload":{"position":{"x":17877.64382962515,"y":30977.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"58bf8247-baef-4ea6-a483-7ed8f0ba5043","savedPayload":{"position":{"x":17407.429740242005,"y":31620.439433646203},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"HitBTC","config":"{ \n\"codeName\": \"hitbtc\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"1632c520-fa79-442f-b33b-430cb1356de6","savedPayload":{"position":{"x":17809.64382962515,"y":31086.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"576d1666-dbd3-4914-9fe2-fa05bdf72eea","savedPayload":{"position":{"x":17840.64382962515,"y":31148.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"41317aae-08ce-48cf-a47b-c2d2cc3920ec","savedPayload":{"position":{"x":18096.64382962515,"y":30975.23747069523},"targetPosition":{"x":18026.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"23d7e4ba-8432-4214-bd94-0db5046e39cd","savedPayload":{"position":{"x":18039.64382962515,"y":31075.23747069523},"targetPosition":{"x":17981.64382962515,"y":31126.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ab200349-5ba5-44d2-ad5c-fa826303cfcd","savedPayload":{"position":{"x":17981.64382962515,"y":31126.23747069523},"targetPosition":{"x":18026.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a5f24785-5b2c-429b-a2e4-07063e2de904","savedPayload":{"position":{"x":18026.64382962515,"y":31066.23747069523},"targetPosition":{"x":17972.64382962515,"y":31093.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13f275ca-06a6-4a72-8b4d-a9c079b9cef4","savedPayload":{"position":{"x":17972.64382962515,"y":31093.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8384fa0b-854c-4c23-846e-a5da0179a738","savedPayload":{"position":{"x":17405.083903595932,"y":31490.527230809537},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"HitBTC","config":"{ \n\"codeName\": \"hitbtc2\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9a29cb9e-ee8d-4315-8532-eef82224b84a","savedPayload":{"position":{"x":17838.64382962515,"y":30922.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"badd79e7-1e21-4dc3-bfa7-8dfb4a6c6267","savedPayload":{"position":{"x":17920.64382962515,"y":30944.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"ffdda0b7-af50-4010-84da-2bc0d562af2b","savedPayload":{"position":{"x":17887.64382962515,"y":30982.23747069523},"targetPosition":{"x":17836.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"24816eed-adf7-453e-9b38-42ea4758dbaa","savedPayload":{"position":{"x":18021.64382962515,"y":30979.23747069523},"targetPosition":{"x":17931.64382962515,"y":30923.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"1dd16858-5641-4454-88a3-e5d7446e12a3","savedPayload":{"position":{"x":17931.64382962515,"y":30923.23747069523},"targetPosition":{"x":17836.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"457d75ed-ad21-4ee5-b36b-88cdc444008e","savedPayload":{"position":{"x":17836.64382962515,"y":31023.23747069523},"targetPosition":{"x":17808.64382962515,"y":31039.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b29ded7e-e2d5-4c7f-89af-b0816c32c743","savedPayload":{"position":{"x":17808.64382962515,"y":31039.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"09c634c2-5aba-49c5-80bc-4fd4175e7f0c","savedPayload":{"position":{"x":17416.79779819678,"y":31361.12294931652},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Huobi Pro","config":"{ \n\"codeName\": \"huobipro\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"86caa38c-5bdf-40e4-b27b-8d8b64319575","savedPayload":{"position":{"x":18071.64382962515,"y":31171.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"001225af-c715-4566-9502-f8f0ac1c4531","savedPayload":{"position":{"x":18040.64382962515,"y":31019.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"b4bf5ccb-b529-4500-a192-d9c3a0613389","savedPayload":{"position":{"x":18129.64382962515,"y":31073.23747069523},"targetPosition":{"x":18033.64382962515,"y":31090.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2e58c6d1-cfa7-4dc7-a322-e9356596ea1e","savedPayload":{"position":{"x":17976.64382962515,"y":31132.23747069523},"targetPosition":{"x":17953.64382962515,"y":31093.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae04ddf4-ae3e-4bdc-9393-41acc38ef818","savedPayload":{"position":{"x":17953.64382962515,"y":31093.23747069523},"targetPosition":{"x":18033.64382962515,"y":31090.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2428e8ef-6a09-48fa-8ae4-ebfb28420be8","savedPayload":{"position":{"x":18033.64382962515,"y":31090.23747069523},"targetPosition":{"x":18085.64382962515,"y":31157.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"55c71c8b-f21f-4d16-ae93-e29362c39bf5","savedPayload":{"position":{"x":18085.64382962515,"y":31157.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"967c3914-a76d-4389-9c7e-9c258ae683bd","savedPayload":{"position":{"x":17442.43408934047,"y":31233.743736052187},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Huobi Russia","config":"{ \n\"codeName\": \"huobiru\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9b7b32d6-a42e-44bb-8065-5aa32b1e844b","savedPayload":{"position":{"x":17980.64382962515,"y":31034.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8d74201c-33cd-4e12-8920-b08d0ef97572","savedPayload":{"position":{"x":17992.64382962515,"y":31105.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c6e289d7-074b-4837-96e3-687988886fcc","savedPayload":{"position":{"x":18078.64382962515,"y":30954.23747069523},"targetPosition":{"x":18008.64382962515,"y":31029.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d72f81ba-6b41-414d-9cf0-d5f9c0c25403","savedPayload":{"position":{"x":18026.64382962515,"y":31021.23747069523},"targetPosition":{"x":18083.64382962515,"y":31117.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5354f66c-6e73-4fe5-80ca-2c25b761ef51","savedPayload":{"position":{"x":18083.64382962515,"y":31117.23747069523},"targetPosition":{"x":18008.64382962515,"y":31029.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"81f5adbb-054c-47f2-b019-52585f5d7417","savedPayload":{"position":{"x":18008.64382962515,"y":31029.23747069523},"targetPosition":{"x":18018.64382962515,"y":31009.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ecd8645b-4bb6-4641-a20f-cee51bf33f1a","savedPayload":{"position":{"x":18018.64382962515,"y":31009.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6f97bb5c-8d85-43ee-86a1-33e22cdfbb5e","savedPayload":{"position":{"x":17481.692214952825,"y":31109.882995828142},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"KKEX","config":"{ \n\"codeName\": \"kkex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"daa4e07a-1cd8-4d92-8004-2eabfaa62f77","savedPayload":{"position":{"x":17924.64382962515,"y":31038.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"cb64951f-d984-4f51-a751-166a316084f3","savedPayload":{"position":{"x":17945.64382962515,"y":31156.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6915bf12-9271-47e2-8b49-924ae9f5c65f","savedPayload":{"position":{"x":17958.64382962515,"y":31297.23747069523},"targetPosition":{"x":17875.64382962515,"y":31252.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"ff53381f-c6dd-4d17-a477-11396f60663f","savedPayload":{"position":{"x":17805.64382962515,"y":31141.23747069523},"targetPosition":{"x":17861.64382962515,"y":31223.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae05bfc4-6ac8-408c-a90b-263830b2a71e","savedPayload":{"position":{"x":17861.64382962515,"y":31223.23747069523},"targetPosition":{"x":17875.64382962515,"y":31252.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61c85f1a-a2a6-45c9-bb1e-3c76110f5d1e","savedPayload":{"position":{"x":17875.64382962515,"y":31252.23747069523},"targetPosition":{"x":17911.64382962515,"y":31154.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fafb114-37d2-4d04-9c42-83d04ff62fc7","savedPayload":{"position":{"x":17911.64382962515,"y":31154.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"16ae95ce-796f-4f2b-942c-f98dcbf9cf4b","savedPayload":{"position":{"x":17534.11190940509,"y":30990.99288257655},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Kraken","config":"{ \n\"codeName\": \"kraken\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"747af60f-c8b9-4377-aa6c-172d4137ea23","savedPayload":{"position":{"x":17854.64382962515,"y":31008.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c75f7d97-9dc2-4d3e-89eb-f8a3d5f16368","savedPayload":{"position":{"x":17916.64382962515,"y":30872.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"0093e946-03f4-4aec-942d-c76aed12ab1a","savedPayload":{"position":{"x":17780.64382962515,"y":31091.23747069523},"targetPosition":{"x":17836.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2a4235ac-e5ea-4484-bccd-f06c8a7275ec","savedPayload":{"position":{"x":17930.64382962515,"y":30869.23747069523},"targetPosition":{"x":17883.64382962515,"y":30953.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"737dec0a-23ab-4044-94ba-95c8bc50c0eb","savedPayload":{"position":{"x":17883.64382962515,"y":30953.23747069523},"targetPosition":{"x":17836.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"457b045e-dae5-4f53-a8b7-cab4757e5286","savedPayload":{"position":{"x":17836.64382962515,"y":31011.23747069523},"targetPosition":{"x":17926.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6eff12db-8e7c-402a-9e06-ae2618f506a0","savedPayload":{"position":{"x":17926.64382962515,"y":31005.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"644efe9c-597a-4ddf-9e28-b33fb3b62d3e","savedPayload":{"position":{"x":17599.078599707587,"y":30878.467274173025},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"KuCoin","config":"{ \n\"codeName\": \"kucoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"01ca3037-4ed3-499e-ad6b-e14ca1d4a51f","savedPayload":{"position":{"x":17919.64382962515,"y":30949.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8b3c4ce0-98b1-4d46-bd02-6cf44c3dd686","savedPayload":{"position":{"x":17998.64382962515,"y":30978.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d6c7c0ef-670d-4ed6-9246-6eb7d6bfc359","savedPayload":{"position":{"x":17927.64382962515,"y":30962.23747069523},"targetPosition":{"x":17953.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e8c2c454-b246-4f63-b51b-74d9cbb01ac2","savedPayload":{"position":{"x":17927.64382962515,"y":30924.23747069523},"targetPosition":{"x":17912.64382962515,"y":30869.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"d2bb2603-3b52-443c-8923-86fefafc0b14","savedPayload":{"position":{"x":17912.64382962515,"y":30869.23747069523},"targetPosition":{"x":17953.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fa83b0b9-1039-4406-907c-f809a5af40f5","savedPayload":{"position":{"x":17953.64382962515,"y":30954.23747069523},"targetPosition":{"x":17966.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"471161d3-201e-40c6-b433-49643cf7e43b","savedPayload":{"position":{"x":17966.64382962515,"y":30962.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d79bc720-68e1-4771-a66a-bcffa30639d3","savedPayload":{"position":{"x":17675.830610816145,"y":30773.625430492953},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"LBank","config":"{ \n\"codeName\": \"lbank\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"def3f9d0-f09e-4e09-8b6d-a4c322a4384b","savedPayload":{"position":{"x":17877.64382962515,"y":31024.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"53eac3c1-96d6-4cb1-b54d-f3f174eaf733","savedPayload":{"position":{"x":17764.64382962515,"y":31036.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c6c00704-1357-4426-910e-8134d6f87017","savedPayload":{"position":{"x":18030.64382962515,"y":31212.23747069523},"targetPosition":{"x":17951.64382962515,"y":31172.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"13990604-2192-4be1-b21b-53cf2bafc002","savedPayload":{"position":{"x":17893.64382962515,"y":31189.23747069523},"targetPosition":{"x":17964.64382962515,"y":31122.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ed2c483e-d412-406d-b6f3-cfb1112a3a05","savedPayload":{"position":{"x":17964.64382962515,"y":31122.23747069523},"targetPosition":{"x":17951.64382962515,"y":31172.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6033b63c-c7fe-4a5d-8cf6-82128e2cfb41","savedPayload":{"position":{"x":17951.64382962515,"y":31172.23747069523},"targetPosition":{"x":17891.64382962515,"y":31096.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20ece5c4-dbfa-4f4a-a9ee-8c8d9c38943b","savedPayload":{"position":{"x":17891.64382962515,"y":31096.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cb2558d6-dab0-4f35-b83f-7cfc161b3d4f","savedPayload":{"position":{"x":17763.468095575536,"y":30677.69652629567},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Mercado Bitcoin","config":"{ \n\"codeName\": \"mercado\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"83ab2c39-e844-496f-bebb-7b8607428902","savedPayload":{"position":{"x":17849.64382962515,"y":31081.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d69e722e-c71a-462a-8bbd-d3482d0eab21","savedPayload":{"position":{"x":17771.64382962515,"y":30887.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"18438709-83cf-49a3-96b8-888ab5adbcc5","savedPayload":{"position":{"x":17937.64382962515,"y":31080.23747069523},"targetPosition":{"x":17866.64382962515,"y":31013.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"6b9d4ed4-af81-462a-aace-fac0afd4687a","savedPayload":{"position":{"x":17787.64382962515,"y":30841.23747069523},"targetPosition":{"x":17873.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"802a4c53-8617-4257-95a5-45bfaa60ad0e","savedPayload":{"position":{"x":17873.64382962515,"y":30935.23747069523},"targetPosition":{"x":17866.64382962515,"y":31013.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"87936a4a-aac5-4aca-8f3e-2051611932c4","savedPayload":{"position":{"x":17866.64382962515,"y":31013.23747069523},"targetPosition":{"x":17829.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"48f3a793-bb97-447b-8f1a-1d6965219747","savedPayload":{"position":{"x":17829.64382962515,"y":30919.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5002072e-145c-4aeb-a611-3e0e4c60ee5d","savedPayload":{"position":{"x":17860.963584604677,"y":30591.805240274254},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKCoin","config":"{ \n\"codeName\": \"okcoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"1e4dd5c8-0545-4698-8695-c985880243a3","savedPayload":{"position":{"x":17921.64382962515,"y":31043.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0e188cae-9764-4963-a78b-e5d7ef272522","savedPayload":{"position":{"x":18005.64382962515,"y":30891.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6d82bfd7-b4e1-4f93-a0f8-18f62cee944e","savedPayload":{"position":{"x":18047.64382962515,"y":30877.23747069523},"targetPosition":{"x":17963.64382962515,"y":30898.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d815409c-1dd4-4e89-b844-5b96104509b4","savedPayload":{"position":{"x":17958.64382962515,"y":30988.23747069523},"targetPosition":{"x":17945.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"238b9d2c-e2c0-4a77-945e-8e28604c0a2d","savedPayload":{"position":{"x":17945.64382962515,"y":30961.23747069523},"targetPosition":{"x":17963.64382962515,"y":30898.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8416c29a-5d73-4b2a-9463-511f400deafb","savedPayload":{"position":{"x":17963.64382962515,"y":30898.23747069523},"targetPosition":{"x":18047.64382962515,"y":30885.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04abf32b-084e-4784-aa84-8c5612d3b7b9","savedPayload":{"position":{"x":18047.64382962515,"y":30885.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1f860b4b-2893-4a51-8649-19c47d494a37","savedPayload":{"position":{"x":17967.17403243568,"y":30516.958569226157},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKEX","config":"{ \n\"codeName\": \"okex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"7f618566-3d10-4c3c-90b2-7541a5146eeb","savedPayload":{"position":{"x":17770.64382962515,"y":31094.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"21205576-5d12-452c-814f-eb56182162ae","savedPayload":{"position":{"x":17794.64382962515,"y":31173.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"46456247-ae9c-41ea-8395-a5e4a78007d4","savedPayload":{"position":{"x":17724.64382962515,"y":31147.23747069523},"targetPosition":{"x":17795.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"706bf601-eaad-48bd-b0a7-8dad59066171","savedPayload":{"position":{"x":17715.64382962515,"y":31182.23747069523},"targetPosition":{"x":17706.64382962515,"y":31162.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"f9c7071c-2e5b-4c90-b482-dfc7ee001244","savedPayload":{"position":{"x":17706.64382962515,"y":31162.23747069523},"targetPosition":{"x":17795.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e87e1e10-3404-48b9-8629-5df92ffa1979","savedPayload":{"position":{"x":17795.64382962515,"y":31083.23747069523},"targetPosition":{"x":17789.64382962515,"y":31181.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08e8fd6a-6b23-4d65-8b8e-d966f845c07f","savedPayload":{"position":{"x":17789.64382962515,"y":31181.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"aa0edec0-8b27-4f94-abce-1e437ce5aba6","savedPayload":{"position":{"x":18080.854218676865,"y":30454.034021936455},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"RightBTC","config":"{ \n\"codeName\": \"rightbtc\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"ade372e9-5070-4fa9-843e-57732c4106c3","savedPayload":{"position":{"x":17999.64382962515,"y":30964.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b63d440e-4501-475c-b8a6-2b9a144e32a1","savedPayload":{"position":{"x":17984.64382962515,"y":30901.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"81d77477-4f2e-43c0-b284-dde54f91c37f","savedPayload":{"position":{"x":17864.64382962515,"y":31036.23747069523},"targetPosition":{"x":17861.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"9ce3cc34-1ba4-4155-96a5-c946b1bcc5ab","savedPayload":{"position":{"x":17819.64382962515,"y":31127.23747069523},"targetPosition":{"x":17810.64382962515,"y":31080.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c7df4af7-37c1-403d-ada1-b6a527821bdd","savedPayload":{"position":{"x":17810.64382962515,"y":31080.23747069523},"targetPosition":{"x":17861.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6de19501-5ce7-4944-b9dd-25b149acbb38","savedPayload":{"position":{"x":17861.64382962515,"y":31043.23747069523},"targetPosition":{"x":17946.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa87ace4-a976-401c-93f9-24a498261742","savedPayload":{"position":{"x":17946.64382962515,"y":30988.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c20cd9e1-52a0-4d17-b90c-e9d5b63315ce","savedPayload":{"position":{"x":18200.67134708334,"y":30403.76933118965},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"STEX","config":"{ \n\"codeName\": \"stex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f1d65161-4922-4a1e-ac98-df1a842347a7","savedPayload":{"position":{"x":17872.64382962515,"y":31001.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c313b2c6-6154-4a9a-b826-fd99cc500cd9","savedPayload":{"position":{"x":17888.64382962515,"y":31186.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d0a1259b-1c37-4d39-836e-3c434c3b3687","savedPayload":{"position":{"x":17778.64382962515,"y":31076.23747069523},"targetPosition":{"x":17858.64382962515,"y":31091.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"4a1e5627-459c-4dec-be13-c20d4a9ea58f","savedPayload":{"position":{"x":17841.64382962515,"y":31179.23747069523},"targetPosition":{"x":17795.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"6981eb0d-0f0e-4f8e-9781-4a03e22e93fd","savedPayload":{"position":{"x":17795.64382962515,"y":31105.23747069523},"targetPosition":{"x":17858.64382962515,"y":31091.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7704478a-9717-43a8-bd2e-88daa6f84bd0","savedPayload":{"position":{"x":17858.64382962515,"y":31091.23747069523},"targetPosition":{"x":17941.64382962515,"y":31173.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"262aad86-f430-49ea-a636-e8bd816a9636","savedPayload":{"position":{"x":17941.64382962515,"y":31173.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0ea23137-3c65-4de1-9772-6ac1b65196e8","savedPayload":{"position":{"x":18325.220671374373,"y":30366.753804527314},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TideBit","config":"{ \n\"codeName\": \"tidebit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c92318bd-8b2d-489b-b8e8-cf30fb63286e","savedPayload":{"position":{"x":17981.64382962515,"y":31021.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"83bca3ec-fc1c-435c-b5fe-b1cf92463fd1","savedPayload":{"position":{"x":18051.64382962515,"y":31072.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2f3ee9b2-cd41-458c-84da-edac3155028a","savedPayload":{"position":{"x":18075.64382962515,"y":31059.23747069523},"targetPosition":{"x":17987.64382962515,"y":31047.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"009ae4b6-adbc-4900-9fc0-f18936eeed9b","savedPayload":{"position":{"x":18030.64382962515,"y":31058.23747069523},"targetPosition":{"x":18009.64382962515,"y":31028.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"3ee88180-fe10-41df-8251-b1ed0a526e7a","savedPayload":{"position":{"x":18009.64382962515,"y":31028.23747069523},"targetPosition":{"x":17987.64382962515,"y":31047.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bb88e6e8-a99a-4c4e-9ca5-ffed49aa8b54","savedPayload":{"position":{"x":17987.64382962515,"y":31047.23747069523},"targetPosition":{"x":17925.64382962515,"y":31135.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13a4a95e-4333-4455-9f7c-90bc839d174a","savedPayload":{"position":{"x":17925.64382962515,"y":31135.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5563c310-701a-4c1e-8155-87c08c927ce3","savedPayload":{"position":{"x":18453.041964599197,"y":30343.421415155935},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TimeX","config":"{ \n\"codeName\": \"timex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"5c004b5f-eec4-414f-8d01-d9b3fddeee9e","savedPayload":{"position":{"x":17892.64382962515,"y":30973.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"59a33add-d0e9-4ae1-8a01-f1e0ed09cb61","savedPayload":{"position":{"x":17911.64382962515,"y":30878.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a4189ba1-d1d4-4ff8-91dd-a8696ca493e3","savedPayload":{"position":{"x":17953.64382962515,"y":30880.23747069523},"targetPosition":{"x":17924.64382962515,"y":30871.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"3d34eb9d-e7cb-42fe-8785-c327b2bbc529","savedPayload":{"position":{"x":17839.64382962515,"y":30875.23747069523},"targetPosition":{"x":17930.64382962515,"y":30877.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"773de01f-0999-4a59-91f0-642148cd58d0","savedPayload":{"position":{"x":17930.64382962515,"y":30877.23747069523},"targetPosition":{"x":17924.64382962515,"y":30871.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fe33a596-4f98-4843-a5b1-26e7e0fcf1c8","savedPayload":{"position":{"x":17924.64382962515,"y":30871.23747069523},"targetPosition":{"x":18018.64382962515,"y":30832.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d078b9a3-cdc6-458e-a511-dc4f5bef38ba","savedPayload":{"position":{"x":18018.64382962515,"y":30832.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"27d69fa7-b561-4986-8c0d-1b374e7e1bf1","savedPayload":{"position":{"x":18582.63663896287,"y":30334.045714007894},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TOP.Q","config":"{ \n\"codeName\": \"topq\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"eafef6a3-eed2-470e-a15c-aa4c10001cd2","savedPayload":{"position":{"x":17818.64382962515,"y":31115.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"2d5eb813-ceb6-40cd-8682-7205596bb8b5","savedPayload":{"position":{"x":17759.64382962515,"y":31188.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"61f7832c-c1f0-40bc-b1f2-ba947c58309d","savedPayload":{"position":{"x":17741.64382962515,"y":31288.23747069523},"targetPosition":{"x":17788.64382962515,"y":31228.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"63b973da-30a7-467a-b954-c57537aab18d","savedPayload":{"position":{"x":17677.64382962515,"y":31206.23747069523},"targetPosition":{"x":17756.64382962515,"y":31146.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"722dcf44-de3f-4d1a-8655-80561e1e4d55","savedPayload":{"position":{"x":17756.64382962515,"y":31146.23747069523},"targetPosition":{"x":17788.64382962515,"y":31228.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45d5e04a-4a53-4f32-b4c0-d882456cb263","savedPayload":{"position":{"x":17788.64382962515,"y":31228.23747069523},"targetPosition":{"x":17806.64382962515,"y":31163.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c66e8dfc-4847-4180-b82c-36458f9b405d","savedPayload":{"position":{"x":17806.64382962515,"y":31163.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8fdf13d8-e8d2-4ef4-8b34-f492a25d753a","savedPayload":{"position":{"x":18712.485315398026,"y":30338.736622606855},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Upbit","config":"{ \n\"codeName\": \"upbit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f456fec2-cee6-4f0c-b865-1188088879c9","savedPayload":{"position":{"x":17919.64382962515,"y":30973.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"947c1ca0-bff9-4372-b153-40054e29b705","savedPayload":{"position":{"x":17921.64382962515,"y":31014.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"34ffbe12-5a26-446a-8bf6-7395c0370ba2","savedPayload":{"position":{"x":17874.64382962515,"y":30900.23747069523},"targetPosition":{"x":17945.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"8f00f19d-74a8-48d8-b951-79f35e87b110","savedPayload":{"position":{"x":17906.64382962515,"y":30902.23747069523},"targetPosition":{"x":17896.64382962515,"y":30896.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"64e1bede-aabf-4831-83a6-fe1cea435613","savedPayload":{"position":{"x":17896.64382962515,"y":30896.23747069523},"targetPosition":{"x":17945.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7c80b956-f2ca-4a6f-a661-f17546288d3e","savedPayload":{"position":{"x":17945.64382962515,"y":30971.23747069523},"targetPosition":{"x":18027.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e3686b02-4ecc-4dcb-a311-b7ef542a3c37","savedPayload":{"position":{"x":18027.64382962515,"y":31048.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"74e57ecd-3394-42b4-b2c4-6f216f7e41db","savedPayload":{"position":{"x":18841.065636895226,"y":30357.439144338445},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"WhiteBit","config":"{ \n\"codeName\": \"whitebit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c16eae45-a568-4b2e-b064-4431bdf34c24","savedPayload":{"position":{"x":17767.64382962515,"y":30899.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"dfdf793f-4ba6-4215-a325-323c0f223553","savedPayload":{"position":{"x":17920.64382962515,"y":31004.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"fd749d13-dbac-493f-9af6-c521eddf909f","savedPayload":{"position":{"x":17815.64382962515,"y":30973.23747069523},"targetPosition":{"x":17720.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"79f7d2d0-77a5-4f38-ac68-fd11f18e5e6b","savedPayload":{"position":{"x":17761.64382962515,"y":31182.23747069523},"targetPosition":{"x":17680.64382962515,"y":31153.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fd0506f4-58b7-431e-bc9d-69bce63c3379","savedPayload":{"position":{"x":17680.64382962515,"y":31153.23747069523},"targetPosition":{"x":17720.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"47e8a4b1-9a6c-4555-a881-f7524183d72e","savedPayload":{"position":{"x":17720.64382962515,"y":31056.23747069523},"targetPosition":{"x":17817.64382962515,"y":31010.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7fa08b91-55ab-477d-a097-88ea7f25fb76","savedPayload":{"position":{"x":17817.64382962515,"y":31010.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"467ece1e-d1d0-4a11-ae7a-d0e22cd4eba5","savedPayload":{"position":{"x":18966.87011674703,"y":30389.934009235236},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"ZB","config":"{ \n\"codeName\": \"zb\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"db206cbd-a587-4e8e-acbe-6581ad3b5cc4","savedPayload":{"position":{"x":17855.64382962515,"y":31027.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"1dd658c5-7755-44b7-85f0-9bcd787762a0","savedPayload":{"position":{"x":17789.64382962515,"y":31044.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"0de82bbe-7909-4b65-b304-f59b41f618ae","savedPayload":{"position":{"x":17830.64382962515,"y":30696.23747069523},"targetPosition":{"x":17846.64382962515,"y":30793.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c89819d0-8880-4b36-a9b3-0b284d266e3b","savedPayload":{"position":{"x":17891.64382962515,"y":30748.23747069523},"targetPosition":{"x":17865.64382962515,"y":30772.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"7a55f503-17fa-45c4-880b-1a9a11a0a555","savedPayload":{"position":{"x":17865.64382962515,"y":30772.23747069523},"targetPosition":{"x":17846.64382962515,"y":30793.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e640fca2-8bab-45ff-9a47-8e7b9650c277","savedPayload":{"position":{"x":17846.64382962515,"y":30793.23747069523},"targetPosition":{"x":17909.64382962515,"y":30886.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"421a99cd-3d9a-46a5-8654-08d6336e75be","savedPayload":{"position":{"x":17909.64382962515,"y":30886.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07df07e8-39a8-4fbc-a0c8-150f20b6ac59","savedPayload":{"position":{"x":19088.423812451314,"y":30435.840244716648},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51f64e29-e3ab-4683-a5de-f397fbf94260","savedPayload":{"position":{"x":18604.301618063546,"y":31533.850126685462},"targetPosition":{"x":18904.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Testing Queue","project":"Superalgos","exchanges":[],"id":"895ce4b1-4890-4216-89ba-a012181d2546","savedPayload":{"position":{"x":18754.301618063546,"y":30754.427263279467},"targetPosition":{"x":18904.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"signalsProviders":[],"id":"7217b56c-e854-4c06-8b8a-d5d3c05a153d","savedPayload":{"position":{"x":18904.301618063546,"y":31014.2348844148},"targetPosition":{"x":18904.301618063546,"y":31014.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Charting Space","name":"New Charting Space","project":"Superalgos","viewport":{"type":"Viewport","name":"New Viewport","config":"{\"zoom\":\"1.40\"}","project":"Superalgos","id":"01713f1d-91b8-44f9-9c5d-a0c12fd09037","savedPayload":{"position":{"x":19200.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"frame":{"position":{"x":0,"y":40}}}},"projectDashboards":[{"type":"Project Dashboards","name":"Superalgos","project":"Superalgos","dashboards":[{"type":"Dashboard","name":"Testing Environment My Computer","project":"Superalgos","timeMachines":[{"type":"Time Machine","name":"WHB v2 Backtesting Session My Computer","config":"{}","project":"Superalgos","timeScale":{"type":"Time Scale","name":"New Time Scale","config":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2020-03-04T12:15:03.517Z\",\n \"toDate\": \"2020-03-16T22:08:40.266Z\"\n}","project":"Superalgos","id":"5192eaa2-8ea0-46b1-870f-b9429a00e993","savedPayload":{"position":{"x":18493.642520037345,"y":25732.78497574544},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","config":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 2976.596840823151,\n \"maxValue\": 11824.968140823152\n}","project":"Superalgos","id":"6e48a952-39da-466f-813d-b27da5599ea0","savedPayload":{"position":{"x":18403.412280129083,"y":25784.87942904552},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","config":"{\"value\":\"01-hs\"}","project":"Superalgos","id":"b26b5d49-6ee6-46c0-98d3-9940b99d2f40","savedPayload":{"position":{"x":18300.806237131383,"y":25802.971642809745},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Trading Engine","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading Engine","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Episode","project":"Superalgos","layers":[{"type":"Layer","name":"Episode Counters","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"fa813608-2b0a-48b2-910b-7ddaac756e16","savedPayload":{"position":{"x":18388.806237131383,"y":24893.048779403747},"targetPosition":{"x":18339.806237131383,"y":24930.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Counters","id":"dd0c8cb9-af86-43fc-a22e-2b1b408787d9"}}},{"type":"Layer","name":"Episode Statistics","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"b5af64e4-f6b0-43fb-9505-16f90deb554d","savedPayload":{"position":{"x":18320.806237131383,"y":24927.048779403747},"targetPosition":{"x":18339.806237131383,"y":24930.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Statistics","id":"5c98f3e9-72a7-4742-9315-50d6e4aaa452"}}},{"type":"Layer","name":"Episode Candle","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"6266fd8e-a5f5-4cfa-b8ba-ab722fce5235","savedPayload":{"position":{"x":18418.806237131383,"y":24984.048779403747},"targetPosition":{"x":18339.806237131383,"y":24930.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Candle","id":"b626d6f0-f929-457e-910b-dfb83c666deb"}}},{"type":"Layer","name":"Episode Balances","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"8bf67d64-0c44-4dbe-aa36-54f2cfcac9a7","savedPayload":{"position":{"x":18334.806237131383,"y":25014.048779403747},"targetPosition":{"x":18339.806237131383,"y":24930.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Balances","id":"3d2dee0f-a7df-463f-befe-5f6231ab7830"}}},{"type":"Layer","name":"Distance To Event","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"edb413d2-a9d3-4789-84c3-73d931d54a7c","savedPayload":{"position":{"x":18293.806237131383,"y":24964.048779403747},"targetPosition":{"x":18339.806237131383,"y":24930.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Distance To Event","id":"5699dc43-eb9a-4e42-aece-e9567924cac2"}}},{"type":"Layer","name":"Episode Base Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"40eb24d7-de06-40de-a366-b6282ce71c2b","savedPayload":{"position":{"x":18414.806237131383,"y":24919.048779403747},"targetPosition":{"x":18339.806237131383,"y":24930.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Base Asset","id":"7647e8ee-0ab7-41af-b153-099a334a362d"}}},{"type":"Layer","name":"Episode Quoted Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"42ff6f2d-3fe6-45eb-9030-4293c24226c4","savedPayload":{"position":{"x":18273.806237131383,"y":24942.048779403747},"targetPosition":{"x":18339.806237131383,"y":24930.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Quoted Asset","id":"00bf7f7c-9002-4923-8010-7125327f9128"}}},{"type":"Layer","name":"Current Episode","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"ab1ce152-2274-4b30-8d7d-7a965cafbf31","savedPayload":{"position":{"x":18343.806237131383,"y":24922.048779403747},"targetPosition":{"x":18339.806237131383,"y":24930.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Episode","id":"54b85d80-295a-4540-b726-f6f7cd17c6c9"}}}],"layerFolders":[],"id":"fe0d7201-2146-4833-ae77-cfadb7270673","savedPayload":{"position":{"x":18339.806237131383,"y":24930.048779403747},"targetPosition":{"x":18343.806237131383,"y":24999.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Strategy","project":"Superalgos","layers":[{"type":"Layer","name":"Current Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"d169d6ef-5565-426c-b8d7-147ed9c36e6e","savedPayload":{"position":{"x":18418.806237131383,"y":24823.048779403747},"targetPosition":{"x":18399.806237131383,"y":24919.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Strategy","id":"68fdae81-0371-428f-8495-a0fe100cbba8"}}},{"type":"Layer","name":"Last Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"0afe1dde-aa14-4bd5-aad6-8940d0f368ce","savedPayload":{"position":{"x":18329.806237131383,"y":24872.048779403747},"targetPosition":{"x":18399.806237131383,"y":24919.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Strategy","id":"51693a6b-7d84-4f20-bdee-1211f9bae6f9"}}}],"layerFolders":[],"id":"403e5d9f-65ec-40b8-ab0a-b0d63388815a","savedPayload":{"position":{"x":18399.806237131383,"y":24919.048779403747},"targetPosition":{"x":18343.806237131383,"y":24999.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Current Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"f1ad300d-2644-4c81-936c-fbf395c1a6bb","savedPayload":{"position":{"x":18339.806237131383,"y":25122.048779403747},"targetPosition":{"x":18409.806237131383,"y":25096.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Position","id":"80cb8779-8e2b-4c33-bd43-c696dbc4e5f6"}}},{"type":"Layer","name":"Last Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"61fe281f-e795-4e5d-bc56-ea4ccfdb0e81","savedPayload":{"position":{"x":18410.806237131383,"y":25145.048779403747},"targetPosition":{"x":18409.806237131383,"y":25096.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Position","id":"cd54c5f3-13f4-4e71-b233-b649d4878ab6"}}}],"layerFolders":[],"id":"707f45cd-f2fa-4685-ae9a-f247195f1c2b","savedPayload":{"position":{"x":18409.806237131383,"y":25096.048779403747},"targetPosition":{"x":18343.806237131383,"y":24999.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Open Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"c16346d4-a027-4afd-b3de-d04c98278ce2","savedPayload":{"position":{"x":18331.806237131383,"y":25090.048779403747},"targetPosition":{"x":18401.806237131383,"y":25022.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stage","id":"7466e39e-eced-4ca3-9d56-a0d1548b91c6"}}},{"type":"Layer","name":"Close Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"079ed389-1381-4147-8d81-7c51c34bf23b","savedPayload":{"position":{"x":18382.806237131383,"y":24966.048779403747},"targetPosition":{"x":18401.806237131383,"y":25022.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stage","id":"bea0a14e-e504-4e9e-a346-439180b6ad31"}}},{"type":"Layer","name":"Trigger Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"37c1f78a-2773-42b8-a0e5-04e6fa014eda","savedPayload":{"position":{"x":18332.806237131383,"y":25047.048779403747},"targetPosition":{"x":18401.806237131383,"y":25022.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stage","id":"06ef8c46-5cc3-4890-9a44-8fd57b8e9ca3"}}},{"type":"Layer","name":"Manage Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"7ae2aa13-6f81-4be9-b3fa-4bf46194fa91","savedPayload":{"position":{"x":18420.806237131383,"y":25043.048779403747},"targetPosition":{"x":18401.806237131383,"y":25022.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stage","id":"9df7d784-5665-4fa1-9d85-ee74845267aa"}}}],"layerFolders":[],"id":"dce48197-8109-41cc-9e8d-43c49ecd8d98","savedPayload":{"position":{"x":18401.806237131383,"y":25022.048779403747},"targetPosition":{"x":18343.806237131383,"y":24999.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"fe9cc276-d299-412e-b321-afc86593f929","savedPayload":{"position":{"x":18275.806237131383,"y":24908.048779403747},"targetPosition":{"x":18255.806237131383,"y":25000.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"4bc0034d-935a-4193-89cf-b18c65b0905a"}}},{"type":"Layer","name":"Market Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"82636cd6-117e-4b83-85e7-6ee5ddd0d644","savedPayload":{"position":{"x":18302.806237131383,"y":24908.048779403747},"targetPosition":{"x":18255.806237131383,"y":25000.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"ffada7e3-6897-4d94-b119-eef67c178678"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"0e389a87-dfef-44f9-812d-1dd1f5cfbf43","savedPayload":{"position":{"x":18294.806237131383,"y":24958.048779403747},"targetPosition":{"x":18255.806237131383,"y":25000.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"e195d10c-7b9f-4428-910e-11be05f66345"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"64ba9c66-3f86-4577-ad49-75eaab68c0ba","savedPayload":{"position":{"x":18175.806237131383,"y":24919.048779403747},"targetPosition":{"x":18255.806237131383,"y":25000.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"c396625e-9a71-4edd-a954-ea2c884538f5"}}},{"type":"Layer","name":"Last Market Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"dd350949-fa54-430f-b5b0-2a9167bae8f0","savedPayload":{"position":{"x":18160.806237131383,"y":25028.048779403747},"targetPosition":{"x":18255.806237131383,"y":25000.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Market Order","id":"d15cc7d7-3e92-4f92-9bbe-e0a3ba499740"}}},{"type":"Layer","name":"Last Limit Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"3157319b-7ae4-4ea6-99fb-e8bc2b7c0b24","savedPayload":{"position":{"x":18195.806237131383,"y":24950.048779403747},"targetPosition":{"x":18255.806237131383,"y":25000.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Limit Order","id":"507be75d-cd3c-4767-b159-328469e5c6e8"}}}],"layerFolders":[],"id":"4c246238-98c7-414d-b25b-aa82c3cbe143","savedPayload":{"position":{"x":18255.806237131383,"y":25000.048779403747},"targetPosition":{"x":18343.806237131383,"y":24999.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"340fd3f6-a9c9-47b0-b4be-078b7d806800","savedPayload":{"position":{"x":18343.806237131383,"y":24999.048779403747},"targetPosition":{"x":18420.806237131383,"y":24978.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d4903f86-8eee-42b2-b3db-230029802ccb","savedPayload":{"position":{"x":18420.806237131383,"y":24978.048779403747},"targetPosition":{"x":18498.806237131383,"y":25042.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ced831dc-8bda-42ef-97f1-d6d75cf0e68a","savedPayload":{"position":{"x":18498.806237131383,"y":25042.048779403747},"targetPosition":{"x":18580.806237131383,"y":25008.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"7d983ca2-8566-436b-ab21-445564aba4b3"}}},"id":"e771e170-f11f-4f7d-9cb4-112bafb9c1f4","savedPayload":{"position":{"x":18198.200194133682,"y":25784.87942904552},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Trading System","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading System","project":"Superalgos","layers":[{"type":"Layer","name":"Trading System Errors","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"30b49f64-f53b-406a-ba61-aad55cd084e3","savedPayload":{"position":{"x":18610.806237131383,"y":25081.048779403747},"targetPosition":{"x":18629.806237131383,"y":25073.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Errors","id":"8cb33c4c-4561-4e2e-a145-19bb87fa9b61"}}},{"type":"Layer","name":"Trading System Highlights","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"37f95213-23f6-473b-ab56-944a60f0d3ee","savedPayload":{"position":{"x":18554.806237131383,"y":25121.048779403747},"targetPosition":{"x":18629.806237131383,"y":25073.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Highlights","id":"3521e920-c9b3-493b-9690-58101c475dad"}}},{"type":"Layer","name":"Trading System Values","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"f4119e12-f225-46f4-be06-b56509bbf00f","savedPayload":{"position":{"x":18565.806237131383,"y":24987.048779403747},"targetPosition":{"x":18629.806237131383,"y":25073.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Values","id":"084d12bb-30ec-4a0f-a356-a58817d4e266"}}},{"type":"Layer","name":"Trading System Status","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"de0d7560-5dc3-4d72-b95f-e26d686ebd64","savedPayload":{"position":{"x":18609.806237131383,"y":25023.048779403747},"targetPosition":{"x":18629.806237131383,"y":25073.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Status","id":"12e328ff-6658-4ca1-be6d-a93c8fc5c42e"}}},{"type":"Layer","name":"Trading System Progress","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"6e83e3f7-36f3-4d40-a6d9-2800f339aa51","savedPayload":{"position":{"x":18717.806237131383,"y":25054.048779403747},"targetPosition":{"x":18629.806237131383,"y":25073.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Progress","id":"d35b7442-5911-4456-bc9e-c451e21d4a30"}}},{"type":"Layer","name":"Trading System Running","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"7d2b6f17-ecc9-493d-9b0a-41904bb3b852","savedPayload":{"position":{"x":18642.806237131383,"y":24980.048779403747},"targetPosition":{"x":18629.806237131383,"y":25073.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Running","id":"65c269c0-2793-483c-ad8e-5c107a56b951"}}},{"type":"Layer","name":"Trading System Announcements","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"3568bbb7-41a3-4805-80b3-b344dc8bd80c","savedPayload":{"position":{"x":18576.806237131383,"y":25060.048779403747},"targetPosition":{"x":18629.806237131383,"y":25073.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Announcements","id":"56631448-2669-47f1-bbc9-7dda628f433e"}}},{"type":"Layer","name":"Trading System Warnings","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"0a880071-8042-4cef-95fb-47fdd99737ce","savedPayload":{"position":{"x":18555.806237131383,"y":25075.048779403747},"targetPosition":{"x":18629.806237131383,"y":25073.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Warnings","id":"c7c4ece9-6d52-4e9a-800e-11c22955c178"}}},{"type":"Layer","name":"Trading System Infos","config":"{\n \"status\": \"off\"\n}","project":"Superalgos","id":"53b788b5-a4b1-4179-9e5c-f43adf1e83d5","savedPayload":{"position":{"x":18667.806237131383,"y":25063.048779403747},"targetPosition":{"x":18629.806237131383,"y":25073.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Infos","id":"f937c3f3-305c-4abc-aa12-0f2015e8f5fa"}}}],"layerFolders":[],"id":"0d7e6572-550e-425e-a408-9cd4a6d2de07","savedPayload":{"position":{"x":18629.806237131383,"y":25073.048779403747},"targetPosition":{"x":18613.806237131383,"y":25170.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"91960320-2dcb-458a-83dd-dce4a019a209","savedPayload":{"position":{"x":18613.806237131383,"y":25170.048779403747},"targetPosition":{"x":18543.806237131383,"y":25079.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"34799cb4-7d89-4f96-8e56-807ff9ed0148","savedPayload":{"position":{"x":18543.806237131383,"y":25079.048779403747},"targetPosition":{"x":18483.806237131383,"y":24982.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":190,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"7d983ca2-8566-436b-ab21-445564aba4b3"}}},"id":"4c457781-9247-442d-875c-1a476cf66bfe","savedPayload":{"position":{"x":18107.96995422542,"y":25732.78497574544},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Simulation Objects","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Simulation Objects","project":"Superalgos","layers":[{"type":"Layer","name":"Episodes","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"f65f3741-038e-4748-81d9-3bf0f5c92388","savedPayload":{"position":{"x":18266.806237131383,"y":24888.048779403747},"targetPosition":{"x":18295.806237131383,"y":24988.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episodes","id":"b4881fc1-e88b-4be3-805d-ab98c4ccbb0b"}}},{"type":"Layer","name":"Strategies","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"a570f5c9-baf9-4acb-8305-651a78689b92","savedPayload":{"position":{"x":18350.806237131383,"y":25056.048779403747},"targetPosition":{"x":18295.806237131383,"y":24988.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"7201adfb-d461-46b7-af3a-a45fabe24835"}}}],"layerFolders":[{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"8ef28bbb-7daf-4e89-996f-8125cf4464f7","savedPayload":{"position":{"x":18186.806237131383,"y":25027.048779403747},"targetPosition":{"x":18246.806237131383,"y":25064.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"c92a34c6-c74b-48ad-a57d-9fb78e3e642c"}}},{"type":"Layer","name":"Market Sell Orders","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"74ce175e-697a-459b-87c7-1dd7a9773312","savedPayload":{"position":{"x":18182.806237131383,"y":25078.048779403747},"targetPosition":{"x":18246.806237131383,"y":25064.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"442e4f1d-e420-43cf-94c8-08282408f555"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"e4fac985-c39e-4765-9eb4-f7eac5eb0ad3","savedPayload":{"position":{"x":18188.806237131383,"y":25025.048779403747},"targetPosition":{"x":18246.806237131383,"y":25064.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"5beb71e3-23fd-4e79-b7fd-46da219b1112"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"0356dd2e-b704-4be0-8794-ca197cc18bd1","savedPayload":{"position":{"x":18153.806237131383,"y":25051.048779403747},"targetPosition":{"x":18246.806237131383,"y":25064.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"1d6f14f5-c7fe-4b42-8a1b-5859e6e5a592"}}}],"layerFolders":[],"id":"2b4a8143-844b-46be-beec-0328c5feeeb0","savedPayload":{"position":{"x":18246.806237131383,"y":25064.048779403747},"targetPosition":{"x":18295.806237131383,"y":24988.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Trigger Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"f3324490-0585-4cc1-8ca6-82cbba329286","savedPayload":{"position":{"x":18145.806237131383,"y":24998.048779403747},"targetPosition":{"x":18218.806237131383,"y":25086.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stages","id":"7f256746-a20a-4856-af57-18f91e02fdaf"}}},{"type":"Layer","name":"Open Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"68057302-b007-4c11-937c-f3666e549d06","savedPayload":{"position":{"x":18241.806237131383,"y":24987.048779403747},"targetPosition":{"x":18218.806237131383,"y":25086.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stages","id":"c9b06e1b-2816-4770-b4d2-951b354fa688"}}},{"type":"Layer","name":"Manage Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"ed7d05b5-e17f-4d1b-8877-3771f1ff1f2b","savedPayload":{"position":{"x":18292.806237131383,"y":25043.048779403747},"targetPosition":{"x":18218.806237131383,"y":25086.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stages","id":"59770c0b-e50d-46d3-b62f-7ea080fcbeb2"}}},{"type":"Layer","name":"Close Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"5f05ebbd-0849-429e-95a0-870672f781ef","savedPayload":{"position":{"x":18123.806237131383,"y":25182.048779403747},"targetPosition":{"x":18218.806237131383,"y":25086.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stages","id":"56915d54-1528-46bf-ad3f-361ca441abc0"}}}],"layerFolders":[],"id":"272eae40-8975-4ffa-984d-9cb015a86913","savedPayload":{"position":{"x":18218.806237131383,"y":25086.048779403747},"targetPosition":{"x":18295.806237131383,"y":24988.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Positions","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"3f5758b3-7ae1-49eb-87d9-51965408b246","savedPayload":{"position":{"x":18205.806237131383,"y":25024.048779403747},"targetPosition":{"x":18224.806237131383,"y":25056.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Positions","id":"112221cf-8147-484f-a9aa-d86c2402d1b4"}}},{"type":"Layer","name":"Position Base Asset","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","id":"2093a6be-57ea-4aea-b1d8-7a5504acf8d0","savedPayload":{"position":{"x":18307.806237131383,"y":25078.048779403747},"targetPosition":{"x":18224.806237131383,"y":25056.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Base Asset","id":"b92609ac-310d-482c-a96f-8e90d4c43d72"}}},{"type":"Layer","name":"Position Quoted Asset","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"94e1588e-0c27-4ac2-8b25-cbe4c568b94c","savedPayload":{"position":{"x":18210.806237131383,"y":25124.048779403747},"targetPosition":{"x":18224.806237131383,"y":25056.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Quoted Asset","id":"1e037875-a2ee-44c3-8d8e-861f39f9d8a7"}}},{"type":"Layer","name":"Stop Loss","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"e8b96393-0706-4444-a88e-189490c8720f","savedPayload":{"position":{"x":18229.806237131383,"y":24984.048779403747},"targetPosition":{"x":18224.806237131383,"y":25056.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Stop Loss","id":"7f2737da-5aef-4dbf-b86c-80132bcb3289"}}},{"type":"Layer","name":"Take Profit","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","id":"1b15b0df-dfbd-4701-a4cf-4a0ad7e51847","savedPayload":{"position":{"x":18148.806237131383,"y":25020.048779403747},"targetPosition":{"x":18224.806237131383,"y":25056.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Take Profit","id":"4d5fcd48-f3df-43c9-818e-70057086a961"}}}],"layerFolders":[],"id":"e2b2ad32-3780-436f-ba33-ec49827eb7c9","savedPayload":{"position":{"x":18224.806237131383,"y":25056.048779403747},"targetPosition":{"x":18295.806237131383,"y":24988.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6de64ba0-66f9-4268-bcc5-da53f800f9cf","savedPayload":{"position":{"x":18295.806237131383,"y":24988.048779403747},"targetPosition":{"x":18391.806237131383,"y":25063.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b605e608-0de4-4b90-a4c5-6fe037da273d","savedPayload":{"position":{"x":18391.806237131383,"y":25063.048779403747},"targetPosition":{"x":18482.806237131383,"y":25151.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c83690b2-8551-43b6-b0a6-ca9366c441e9","savedPayload":{"position":{"x":18482.806237131383,"y":25151.048779403747},"targetPosition":{"x":18508.806237131383,"y":25052.048779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":190,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"7d983ca2-8566-436b-ab21-445564aba4b3"}}},"id":"45ae1a95-dea4-4d47-a7ce-6c8d8f13dd14","savedPayload":{"position":{"x":18040.99861599605,"y":25652.971642809745},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Sparta","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Sparta","config":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"EMA","project":"Superalgos","layers":[{"type":"Layer","name":"Popular EMAs","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"6443b8e7-7124-465e-9ffb-eca387bfc0c5","savedPayload":{"position":{"x":17121.876898635554,"y":25747.678793059764},"targetPosition":{"x":17401.479259420394,"y":25638.947381574653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"8b3b410e-0728-457a-a2ac-640f8839592c"}}},{"type":"Layer","name":"Base7 EMAs","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"1d52126c-9162-4a08-910b-a8648c9c4d30","savedPayload":{"position":{"x":17106.03693351673,"y":25691.041834874733},"targetPosition":{"x":17401.479259420394,"y":25638.947381574653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"45eea564-7729-421c-b871-acda5a5ae81e"}}},{"type":"Layer","name":"Base11 EMAs","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"03f74f67-0ffa-475c-ad79-f78f25fd8841","savedPayload":{"position":{"x":17101.55065129642,"y":25632.402916064286},"targetPosition":{"x":17401.479259420394,"y":25638.947381574653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"fe10ecb5-0593-4c6b-9fd0-1729976ce713"}}}],"layerFolders":[],"id":"fdc7f2ac-b6e5-4c2a-873e-708794c567d8","savedPayload":{"position":{"x":17401.479259420394,"y":25638.947381574653},"targetPosition":{"x":17696.921585324057,"y":25586.852928274573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bb26a76c-f706-496d-bbaa-81475ad0aa60","savedPayload":{"position":{"x":17696.921585324057,"y":25586.852928274573},"targetPosition":{"x":17992.36391122772,"y":25534.758474974493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":190,"radius":0},"referenceParent":{"type":"Data Mine Products","name":"Sparta","id":"cc85c8b7-657d-4589-8373-ac3ff5cf3c6a"}}},"id":"d449ea7e-cc93-438c-bdc2-84f06c670890","savedPayload":{"position":{"x":18005.36391122772,"y":25555.066096109826},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Masters","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Exchange Raw Data","project":"Superalgos","layers":[],"layerFolders":[],"id":"e341f133-88b2-4dcc-9a82-addc8d68ea45","savedPayload":{"position":{"x":17481.11964522246,"y":25586.872626211953},"targetPosition":{"x":17696.921585324057,"y":25378.475115074252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Candles Volumes","project":"Superalgos","layers":[{"type":"Layer","name":"Candles","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","id":"22555671-02c7-4be3-bed8-e808e015ddb7","savedPayload":{"position":{"x":17110.752028739,"y":25500.39855818575},"targetPosition":{"x":17399.841164701586,"y":25420.227045362273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"70d84756-8e7a-4dfc-8aae-abf8affc802f"}}},{"type":"Layer","name":"Volumes","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"88622f71-4be1-425c-ba9d-8ec10bd3fa74","savedPayload":{"position":{"x":17099.852587782334,"y":25422.845006011787},"targetPosition":{"x":17399.841164701586,"y":25420.227045362273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"5a47df0f-0524-401a-b5f4-f292eda68238"}}}],"layerFolders":[],"id":"40d6fb03-d3b4-4a3e-8293-21d256246e96","savedPayload":{"position":{"x":17399.841164701586,"y":25420.227045362273},"targetPosition":{"x":17696.921585324057,"y":25378.475115074252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Bollinger Bands","project":"Superalgos","layers":[{"type":"Layer","name":"Bollinger Bands","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"c7224f35-eb60-41ba-9cef-14891b7549c1","savedPayload":{"position":{"x":17151.03565069186,"y":25132.571431860644},"targetPosition":{"x":17432.03730746638,"y":25237.633646238486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"d50dcdf4-6251-4c59-9a04-d5dedadd86f7"}}},{"type":"Layer","name":"Percentage Bandwidth","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"3403e533-bccb-4d6a-9c8c-7e7dae15893f","savedPayload":{"position":{"x":17187.802651959486,"y":25063.422759525205},"targetPosition":{"x":17432.03730746638,"y":25237.633646238486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"1e029c1d-85c8-4d3d-90d8-388bf135d110"}}}],"layerFolders":[],"id":"b9834ac2-04d9-4978-9f7e-1513df5a91a7","savedPayload":{"position":{"x":17432.03730746638,"y":25237.633646238486},"targetPosition":{"x":17696.921585324057,"y":25378.475115074252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Bollinger Channels","project":"Superalgos","layers":[{"type":"Layer","name":"Bollinger Channels Objects","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"4ed08f32-cb20-433b-b1b4-9506f7f9fa55","savedPayload":{"position":{"x":17374.586775204003,"y":24877.349526168186},"targetPosition":{"x":17565.410241287333,"y":25108.836901184502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"aba646d5-9b32-48d6-abc3-e9fa8405b279"}}},{"type":"Layer","name":"Bollinger Channels","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"b72da299-ad7b-40ef-b28d-5e06b55d38b4","savedPayload":{"position":{"x":17413.14873239912,"y":24850.348153052044},"targetPosition":{"x":17565.410241287333,"y":25108.836901184502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"241723cd-ae4d-4990-88f8-29bfad2e14ed"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"43940d4c-5b47-4eed-afb8-c83dea0a2e86","savedPayload":{"position":{"x":17455.459873270043,"y":24829.711630789894},"targetPosition":{"x":17565.410241287333,"y":25108.836901184502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"e171424f-d37d-46d5-aada-1d66ccb0961f"}}},{"type":"Layer","name":"Bollinger Sub-Channels","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"44bfe72d-d563-4d7d-94f6-32b251ea8519","savedPayload":{"position":{"x":17500.4783571059,"y":24815.94809904852},"targetPosition":{"x":17565.410241287333,"y":25108.836901184502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"f8686b62-8ca9-4b30-9c27-9844c109d987"}}}],"layerFolders":[],"id":"e9f0e366-b340-487a-b7f9-40f37e7994da","savedPayload":{"position":{"x":17565.410241287333,"y":25108.836901184502},"targetPosition":{"x":17696.921585324057,"y":25378.475115074252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a2cae263-03ad-4322-b867-14cbb3a3653a","savedPayload":{"position":{"x":17696.921585324057,"y":25378.475115074252},"targetPosition":{"x":17992.36391122772,"y":25430.569568374332},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":600,"y":80},"width":150,"height":190,"radius":0},"referenceParent":{"type":"Data Mine Products","name":"Masters","id":"f527bdd3-f5bc-4248-a35f-ac7e591c3aec"}}},"id":"bcdf169d-6297-4f61-b125-2aacefdc4f18","savedPayload":{"position":{"x":18005.36391122772,"y":25450.877189509665},"targetPosition":{"x":18300.806237131383,"y":25502.971642809745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c36f98d3-5b61-4f02-bad5-c97fbe968d5c","savedPayload":{"position":{"x":18300.806237131383,"y":25502.971642809745},"targetPosition":{"x":18450.806237131383,"y":25243.164021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":0},"width":240,"height":112.375,"radius":0},"referenceParent":{"type":"Backtesting Session","name":"WHB v2","id":"1ff8cd88-dcd9-4528-b406-05647ddd8c9c"}}}],"id":"97979c42-ea93-4e10-8af1-20a6658b6d57","savedPayload":{"position":{"x":18450.806237131383,"y":25243.164021674413},"targetPosition":{"x":18600.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","id":"5882d8a8-345b-4188-b1c1-797e9ff805d9"}}},{"type":"Dashboard","name":"Production Environment My Computer","project":"Superalgos","timeMachines":[{"type":"Time Machine","name":"WHB v2 Live Trading Session My Computer","config":"{}","project":"Superalgos","timeScale":{"type":"Time Scale","name":"New Time Scale","config":"{\n \"autoMinScale\": true,\n \"autoMaxScale\": true,\n \"fromDate\": \"2020-01-01T00:00:00.000Z\",\n \"toDate\": \"2020-10-09T23:59:59.999Z\"\n}","project":"Superalgos","id":"9e3b6145-28ed-4709-9e82-9eba74e55c19","savedPayload":{"position":{"x":18005.36391122772,"y":24515.835611568495},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","config":"{\n \"autoMinScale\": true,\n \"autoMaxScale\": true,\n \"minValue\": 3744.3087,\n \"maxValue\": 12592.68\n}","project":"Superalgos","id":"e2887721-8e49-482a-8bfe-d1c0d84c5b1e","savedPayload":{"position":{"x":18005.36391122772,"y":24411.646704968334},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","config":"{ \n\"value\": \"24-hs\"\n}","project":"Superalgos","id":"c06978cc-97da-4321-bcec-1be366f04b3e","savedPayload":{"position":{"x":18040.99861599605,"y":24313.741158268414},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Trading Engine","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading Engine","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Episode","project":"Superalgos","layers":[{"type":"Layer","name":"Episode Counters","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"f1f95b78-c2c3-4271-bcb6-91b79825858e","savedPayload":{"position":{"x":18489.806237131383,"y":25104.664021674413},"targetPosition":{"x":18582.806237131383,"y":25120.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Counters","id":"4d1ea2bf-5a1d-4b37-9719-007e28b81184"}}},{"type":"Layer","name":"Episode Statistics","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"ae5b3b26-2687-4b2a-828f-e6275553ef2f","savedPayload":{"position":{"x":18487.806237131383,"y":25075.664021674413},"targetPosition":{"x":18582.806237131383,"y":25120.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Statistics","id":"2c4ef698-66da-4079-90ec-9fdf5ce41be7"}}},{"type":"Layer","name":"Episode Candle","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"fc1bc47c-3e1a-4b5a-ba84-8882868e400a","savedPayload":{"position":{"x":18531.806237131383,"y":25149.664021674413},"targetPosition":{"x":18582.806237131383,"y":25120.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Candle","id":"5ee16bd3-cb60-4b92-ab67-d56dfbdd8671"}}},{"type":"Layer","name":"Episode Balances","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"caa2849f-552d-4762-97eb-ed66670e71b5","savedPayload":{"position":{"x":18667.806237131383,"y":25056.664021674413},"targetPosition":{"x":18582.806237131383,"y":25120.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Balances","id":"660caa52-ba9a-4829-9143-3ca16f2590aa"}}},{"type":"Layer","name":"Distance To Event","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"57949a00-f277-4a9b-b480-8c4d7749eea6","savedPayload":{"position":{"x":18638.806237131383,"y":25163.664021674413},"targetPosition":{"x":18582.806237131383,"y":25120.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Distance To Event","id":"382ccb5c-e0c3-4e34-97b9-599cf5d6792d"}}},{"type":"Layer","name":"Episode Base Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"a5dc3f74-ae54-491f-8761-dd1ff593d7e1","savedPayload":{"position":{"x":18678.806237131383,"y":25218.664021674413},"targetPosition":{"x":18582.806237131383,"y":25120.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Base Asset","id":"42d86745-d971-4328-a908-91bf6d19a019"}}},{"type":"Layer","name":"Episode Quoted Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"e904ccb9-94fe-4d2a-80b9-aef73a46b84a","savedPayload":{"position":{"x":18613.806237131383,"y":25157.664021674413},"targetPosition":{"x":18582.806237131383,"y":25120.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Quoted Asset","id":"7dbf878d-588f-422e-acd2-03968abaf5f0"}}},{"type":"Layer","name":"Current Episode","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"6fa6eec1-da47-451c-96ff-24de0a07a68f","savedPayload":{"position":{"x":18664.806237131383,"y":25161.664021674413},"targetPosition":{"x":18582.806237131383,"y":25120.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Episode","id":"d678dfa8-544b-456f-b3f0-715579440aa2"}}}],"layerFolders":[],"id":"c37d2dd1-f13a-466a-a217-ec8ae805f8d2","savedPayload":{"position":{"x":18582.806237131383,"y":25120.664021674413},"targetPosition":{"x":18608.806237131383,"y":25064.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Strategy","project":"Superalgos","layers":[{"type":"Layer","name":"Current Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"938325be-e1cd-42ec-9d48-4b7284833347","savedPayload":{"position":{"x":18655.806237131383,"y":25008.664021674413},"targetPosition":{"x":18700.806237131383,"y":25021.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Strategy","id":"07b721a0-55e0-4e7a-b0e2-a91e8c76de4f"}}},{"type":"Layer","name":"Last Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"b82d691f-9709-42c6-a6f4-c0b7d83a1839","savedPayload":{"position":{"x":18624.806237131383,"y":24921.664021674413},"targetPosition":{"x":18700.806237131383,"y":25021.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Strategy","id":"15f34c1a-b30d-4dd1-96e0-8a2646de3635"}}}],"layerFolders":[],"id":"d27b2ba3-8ab6-45c8-a50d-7bdd2e39a1b2","savedPayload":{"position":{"x":18700.806237131383,"y":25021.664021674413},"targetPosition":{"x":18608.806237131383,"y":25064.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Current Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"635f4c80-d3ae-4382-a6fa-656e1c25aab6","savedPayload":{"position":{"x":18617.806237131383,"y":25225.664021674413},"targetPosition":{"x":18671.806237131383,"y":25146.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Position","id":"ab53428d-89a3-4b1f-84b1-d5bd1d957f02"}}},{"type":"Layer","name":"Last Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"ee8464c4-513c-4248-aa78-19d91d6e2789","savedPayload":{"position":{"x":18661.806237131383,"y":25087.664021674413},"targetPosition":{"x":18671.806237131383,"y":25146.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Position","id":"5909ca07-e00c-4669-9cd3-17eb83796f31"}}}],"layerFolders":[],"id":"44bb52f1-bcc7-4f05-8c2f-48d675deb366","savedPayload":{"position":{"x":18671.806237131383,"y":25146.664021674413},"targetPosition":{"x":18608.806237131383,"y":25064.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Open Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"c3243adf-912b-47da-9404-39811daf5efa","savedPayload":{"position":{"x":18540.806237131383,"y":25065.664021674413},"targetPosition":{"x":18523.806237131383,"y":25078.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stage","id":"68803338-3e70-443f-90fd-8b36f5378f31"}}},{"type":"Layer","name":"Close Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"8e74ff15-a7d9-433c-9252-2b41664138a9","savedPayload":{"position":{"x":18478.806237131383,"y":25125.664021674413},"targetPosition":{"x":18523.806237131383,"y":25078.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stage","id":"2d2dd9df-d00a-4d69-9b29-66e19d0238fe"}}},{"type":"Layer","name":"Trigger Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"f093b5a0-e006-4fc8-a1a4-526ddabe03a6","savedPayload":{"position":{"x":18508.806237131383,"y":25014.664021674413},"targetPosition":{"x":18523.806237131383,"y":25078.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stage","id":"7a71d0ce-5592-4b70-b30c-9676b67feb47"}}},{"type":"Layer","name":"Manage Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"417dbc47-0de8-4b43-9807-6321269b1bad","savedPayload":{"position":{"x":18442.806237131383,"y":25000.664021674413},"targetPosition":{"x":18523.806237131383,"y":25078.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stage","id":"5b233b81-aa5f-4222-9772-5c8810cb683a"}}}],"layerFolders":[],"id":"2d472757-6f85-45c7-bf7f-459d3d87bbfa","savedPayload":{"position":{"x":18523.806237131383,"y":25078.664021674413},"targetPosition":{"x":18608.806237131383,"y":25064.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"9b2d6215-dc66-47f1-bafe-233d262f0b26","savedPayload":{"position":{"x":18443.806237131383,"y":25204.664021674413},"targetPosition":{"x":18529.806237131383,"y":25107.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"0487769a-1b78-45ce-8750-6cb55c0785f4"}}},{"type":"Layer","name":"Market Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"185c3169-d930-4413-a912-6e2d20088562","savedPayload":{"position":{"x":18497.806237131383,"y":25030.664021674413},"targetPosition":{"x":18529.806237131383,"y":25107.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"6e666549-9e9f-42d3-b543-fc0ce961cc64"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"b6d40f2a-3f43-4aaa-bfc3-0a3e28278961","savedPayload":{"position":{"x":18600.806237131383,"y":25113.664021674413},"targetPosition":{"x":18529.806237131383,"y":25107.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"a596b5e6-666d-4da0-bd2f-2b65292b8d87"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"064d574e-fa92-43d3-a182-3f426dd2c3c1","savedPayload":{"position":{"x":18552.806237131383,"y":25072.664021674413},"targetPosition":{"x":18529.806237131383,"y":25107.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"528f2741-eda9-4dd4-b731-8110336c0a34"}}},{"type":"Layer","name":"Last Market Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"8ba82947-b00d-438a-b384-1786af913e30","savedPayload":{"position":{"x":18583.806237131383,"y":25147.664021674413},"targetPosition":{"x":18529.806237131383,"y":25107.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Market Order","id":"0d7a0263-dc84-4b4a-a6cc-ad6c3f9824fe"}}},{"type":"Layer","name":"Last Limit Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"f1ece4d3-1d8c-432c-a5d3-78b0d437ad68","savedPayload":{"position":{"x":18461.806237131383,"y":25062.664021674413},"targetPosition":{"x":18529.806237131383,"y":25107.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Limit Order","id":"51e9b95a-96c1-4cf4-a188-9669c73c7e8e"}}}],"layerFolders":[],"id":"2355f3c7-a7a4-44c9-aab7-23c6fa62113e","savedPayload":{"position":{"x":18529.806237131383,"y":25107.664021674413},"targetPosition":{"x":18608.806237131383,"y":25064.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ec0a181b-98eb-4e8e-8638-e2ab1c0d1d36","savedPayload":{"position":{"x":18608.806237131383,"y":25064.664021674413},"targetPosition":{"x":18607.806237131383,"y":25033.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fe8004ba-62be-44b0-9eb7-b9f1f8563e09","savedPayload":{"position":{"x":18607.806237131383,"y":25033.664021674413},"targetPosition":{"x":18567.806237131383,"y":25132.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"89ae209b-5e81-4414-8754-eb734a59b417","savedPayload":{"position":{"x":18567.806237131383,"y":25132.664021674413},"targetPosition":{"x":18635.806237131383,"y":25151.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":190,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"ffdfebe3-50db-41b5-8077-7a7d0d008865"}}},"id":"3664debe-440e-4226-bb00-d56d2d97daff","savedPayload":{"position":{"x":18107.96995422542,"y":24233.92782533272},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Trading System","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading System","project":"Superalgos","layers":[{"type":"Layer","name":"Trading System Errors","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"2a3273c5-d373-480f-8e58-5f0479049a89","savedPayload":{"position":{"x":18668.806237131383,"y":24983.664021674413},"targetPosition":{"x":18686.806237131383,"y":24992.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Errors","id":"1c539f66-a512-4cd9-b974-622b95e2cca9"}}},{"type":"Layer","name":"Trading System Highlights","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"cc124ad2-8e2e-4caa-b324-42f74494c7cf","savedPayload":{"position":{"x":18650.806237131383,"y":25042.664021674413},"targetPosition":{"x":18686.806237131383,"y":24992.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Highlights","id":"409e6575-034e-4d3d-99e5-0495ba229622"}}},{"type":"Layer","name":"Trading System Values","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"7f291996-c831-4fd6-9e32-bd939e6618a2","savedPayload":{"position":{"x":18619.806237131383,"y":24915.664021674413},"targetPosition":{"x":18686.806237131383,"y":24992.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Values","id":"55245047-2d2d-4a04-97f9-d413d82375a9"}}},{"type":"Layer","name":"Trading System Status","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"52322cb7-4fb2-4b11-9372-f834de6e41e7","savedPayload":{"position":{"x":18592.806237131383,"y":25075.664021674413},"targetPosition":{"x":18686.806237131383,"y":24992.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Status","id":"9f9ea8fa-0769-44b9-a4f1-86f2c3a22195"}}},{"type":"Layer","name":"Trading System Progress","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"71473cf3-6f27-498c-bbb6-7dcce412502d","savedPayload":{"position":{"x":18776.806237131383,"y":25016.664021674413},"targetPosition":{"x":18686.806237131383,"y":24992.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Progress","id":"d2e7ed86-a88f-484b-ab5f-d6212cb7045f"}}},{"type":"Layer","name":"Trading System Running","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"032120ab-1bbe-46cf-8986-24b3e2869aa9","savedPayload":{"position":{"x":18640.806237131383,"y":25031.664021674413},"targetPosition":{"x":18686.806237131383,"y":24992.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Running","id":"0a0b3b0e-cac0-42a3-8825-637b2b78afad"}}},{"type":"Layer","name":"Trading System Announcements","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"742f34cd-23ff-4b8d-b070-b28e19f7e821","savedPayload":{"position":{"x":18676.806237131383,"y":24935.664021674413},"targetPosition":{"x":18686.806237131383,"y":24992.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Announcements","id":"b79dfe54-361e-44f2-87ce-5e012bba3bcd"}}},{"type":"Layer","name":"Trading System Warnings","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"e575fb48-fd1d-479c-aa3b-baa983463ae5","savedPayload":{"position":{"x":18667.806237131383,"y":24975.664021674413},"targetPosition":{"x":18686.806237131383,"y":24992.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Warnings","id":"29681b5e-16e2-4bc0-816e-537b271c0ea5"}}},{"type":"Layer","name":"Trading System Infos","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"c1132f1c-eb35-4e60-b855-576f9393a008","savedPayload":{"position":{"x":18643.806237131383,"y":24982.664021674413},"targetPosition":{"x":18686.806237131383,"y":24992.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Infos","id":"3da52870-d76c-4e37-9247-9eecfdbb64ec"}}}],"layerFolders":[],"id":"3c36ab4e-20df-4ed1-ba62-3c1af51f24a9","savedPayload":{"position":{"x":18686.806237131383,"y":24992.664021674413},"targetPosition":{"x":18742.806237131383,"y":24970.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9be3a6b8-f673-4ff7-8978-732494fdd1de","savedPayload":{"position":{"x":18742.806237131383,"y":24970.664021674413},"targetPosition":{"x":18664.806237131383,"y":24999.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fe7408ef-04ca-4b85-bcde-4bb82f7c974f","savedPayload":{"position":{"x":18664.806237131383,"y":24999.664021674413},"targetPosition":{"x":18685.806237131383,"y":25045.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":450,"y":80},"width":150,"height":190,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"ffdfebe3-50db-41b5-8077-7a7d0d008865"}}},"id":"00ae8c42-9686-470d-8167-178b41cc06ec","savedPayload":{"position":{"x":18198.200194133682,"y":24181.83337203264},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Simulation Objects","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Simulation Objects","project":"Superalgos","layers":[{"type":"Layer","name":"Episodes","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"66623184-4f58-4be2-ae6a-ab12eddf30a2","savedPayload":{"position":{"x":18698.806237131383,"y":25227.664021674413},"targetPosition":{"x":18636.806237131383,"y":25271.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episodes","id":"802ebea8-becf-45e5-b761-078cad3acd74"}}},{"type":"Layer","name":"Strategies","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"6bd41ea0-15bb-40d0-a977-f85aebd8f172","savedPayload":{"position":{"x":18707.806237131383,"y":25370.664021674413},"targetPosition":{"x":18636.806237131383,"y":25271.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"601cbf34-9a33-4066-9709-b23c6c34b17d"}}}],"layerFolders":[{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"ca0a428f-b7e6-41ab-b4b4-cff6c14e6693","savedPayload":{"position":{"x":18642.806237131383,"y":25183.664021674413},"targetPosition":{"x":18680.806237131383,"y":25244.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"e1516339-ebcb-4840-a23d-cebd855911b6"}}},{"type":"Layer","name":"Market Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"e20857f3-6fe7-472f-ac3e-888b7e28fc4d","savedPayload":{"position":{"x":18716.806237131383,"y":25164.664021674413},"targetPosition":{"x":18680.806237131383,"y":25244.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"57a0d52c-d2a3-4fd3-907c-66fd51cecdc6"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"88646088-3689-4547-b974-0d0d0d56b2b6","savedPayload":{"position":{"x":18689.806237131383,"y":25285.664021674413},"targetPosition":{"x":18680.806237131383,"y":25244.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"b67b6a65-5bd1-4b58-aa65-a8b840c54d9b"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"40bed7b6-261e-4527-8e6a-51f99c69b576","savedPayload":{"position":{"x":18592.806237131383,"y":25144.664021674413},"targetPosition":{"x":18680.806237131383,"y":25244.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"c27b0f50-fdad-4b69-a99e-2708806066aa"}}}],"layerFolders":[],"id":"94d0f42e-b7c8-4831-914b-1fae457e4046","savedPayload":{"position":{"x":18680.806237131383,"y":25244.664021674413},"targetPosition":{"x":18636.806237131383,"y":25271.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Trigger Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"dc2dab26-6c18-4995-b0b4-93b85624ab06","savedPayload":{"position":{"x":18488.806237131383,"y":25179.664021674413},"targetPosition":{"x":18573.806237131383,"y":25217.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stages","id":"bc3d588e-823d-4461-b550-b8ec912c4c8f"}}},{"type":"Layer","name":"Open Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"4dfc372b-4de6-4aec-b29f-99e5410d001e","savedPayload":{"position":{"x":18520.806237131383,"y":25131.664021674413},"targetPosition":{"x":18573.806237131383,"y":25217.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stages","id":"edb07104-591d-453b-b7fe-bd3854ff8a36"}}},{"type":"Layer","name":"Manage Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"af792d27-879d-4a3c-a83b-bf2e79376ee3","savedPayload":{"position":{"x":18669.806237131383,"y":25191.664021674413},"targetPosition":{"x":18573.806237131383,"y":25217.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stages","id":"9b884f77-297b-4618-ac4b-b995570284b6"}}},{"type":"Layer","name":"Close Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"bf4d6a12-d08d-4e8c-9591-31317c974358","savedPayload":{"position":{"x":18530.806237131383,"y":25228.664021674413},"targetPosition":{"x":18573.806237131383,"y":25217.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stages","id":"c07cc0bb-c49e-42d1-a5ba-f5fa9882fbab"}}}],"layerFolders":[],"id":"bf12f50e-de09-4563-8253-01c39ac87962","savedPayload":{"position":{"x":18573.806237131383,"y":25217.664021674413},"targetPosition":{"x":18636.806237131383,"y":25271.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Positions","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"841f1809-e887-47c9-bec3-9e339a8a175d","savedPayload":{"position":{"x":18652.806237131383,"y":25151.664021674413},"targetPosition":{"x":18562.806237131383,"y":25223.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Positions","id":"0e3c5d47-28d9-4cd3-ad72-1bdb054550a8"}}},{"type":"Layer","name":"Position Base Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"50c17ba9-287e-4c3f-9a46-1f7d6ad15633","savedPayload":{"position":{"x":18504.806237131383,"y":25276.664021674413},"targetPosition":{"x":18562.806237131383,"y":25223.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Base Asset","id":"47ffaf48-d92f-4da8-afb3-7787c5ba597e"}}},{"type":"Layer","name":"Position Quoted Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"9659c4bd-ce07-469d-9d2d-2675ca6e81b5","savedPayload":{"position":{"x":18513.806237131383,"y":25220.664021674413},"targetPosition":{"x":18562.806237131383,"y":25223.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Quoted Asset","id":"59eb8fe6-5429-4d2d-8971-47580c5816b8"}}},{"type":"Layer","name":"Stop Loss","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"9e506a39-2fc1-4ac0-b5d4-7bf76a73d0f9","savedPayload":{"position":{"x":18549.806237131383,"y":25175.664021674413},"targetPosition":{"x":18562.806237131383,"y":25223.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Stop Loss","id":"13a4d476-b8bb-4bb3-9a97-1c2a7b5c6188"}}},{"type":"Layer","name":"Take Profit","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"e13f9336-7bdc-4459-aca9-dc5d9747a69c","savedPayload":{"position":{"x":18562.806237131383,"y":25163.664021674413},"targetPosition":{"x":18562.806237131383,"y":25223.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Take Profit","id":"1af2f188-5506-47ff-859b-08e8f1c56754"}}}],"layerFolders":[],"id":"c42efa3e-8cef-458f-82dd-30ddc130a306","savedPayload":{"position":{"x":18562.806237131383,"y":25223.664021674413},"targetPosition":{"x":18636.806237131383,"y":25271.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b27076de-7c3a-43f6-be80-88d0792c245e","savedPayload":{"position":{"x":18636.806237131383,"y":25271.664021674413},"targetPosition":{"x":18703.806237131383,"y":25271.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"79584687-bd14-42e6-856e-8708b13d1951","savedPayload":{"position":{"x":18703.806237131383,"y":25271.664021674413},"targetPosition":{"x":18665.806237131383,"y":25212.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a74f69c4-085d-465f-973f-34fbe4da72d4","savedPayload":{"position":{"x":18665.806237131383,"y":25212.664021674413},"targetPosition":{"x":18566.806237131383,"y":25123.664021674413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":600,"y":80},"width":150,"height":190,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"ffdfebe3-50db-41b5-8077-7a7d0d008865"}}},"id":"73f3b68a-98c7-4c1b-9ddc-82dccb1e8ab7","savedPayload":{"position":{"x":18300.806237131383,"y":24163.741158268414},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Sparta","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Sparta","config":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"EMA","project":"Superalgos","layers":[{"type":"Layer","name":"Popular EMAs","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"55b6fec0-3624-475f-9e9a-2bcb1e4e8df2","savedPayload":{"position":{"x":18774.261381981458,"y":23399.816967556097},"targetPosition":{"x":18728.624366124484,"y":23696.325420696427},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"8b3b410e-0728-457a-a2ac-640f8839592c"}}},{"type":"Layer","name":"Base7 EMAs","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"5336c2ad-aa2d-4a96-a589-b1b4bd1b4ab8","savedPayload":{"position":{"x":18831.230409122185,"y":23414.417634460653},"targetPosition":{"x":18728.624366124484,"y":23696.325420696427},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"45eea564-7729-421c-b871-acda5a5ae81e"}}},{"type":"Layer","name":"Base11 EMAs","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"b112b862-311b-4638-9c1f-04c014581a54","savedPayload":{"position":{"x":18884.25634357264,"y":23439.85185949454},"targetPosition":{"x":18728.624366124484,"y":23696.325420696427},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"fe10ecb5-0593-4c6b-9fd0-1729976ce713"}}}],"layerFolders":[],"id":"612cf965-a657-4def-ada8-89f938d1c00d","savedPayload":{"position":{"x":18728.624366124484,"y":23696.325420696427},"targetPosition":{"x":18626.018323126784,"y":23978.2332069322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b57ed65d-02a6-460f-a6df-dd76e41646a8","savedPayload":{"position":{"x":18626.018323126784,"y":23978.2332069322},"targetPosition":{"x":18523.412280129083,"y":24260.140993167974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0},"referenceParent":{"type":"Data Mine Products","name":"Sparta","id":"cc85c8b7-657d-4589-8373-ac3ff5cf3c6a"}}},"id":"61e1c989-2f17-4d3d-9327-232b3a5f3bd8","savedPayload":{"position":{"x":18403.412280129083,"y":24181.83337203264},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Masters","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Exchange Raw Data","project":"Superalgos","layers":[],"layerFolders":[],"id":"bbd0630d-361d-4f6e-ac32-f3797740891a","savedPayload":{"position":{"x":18733.90223426341,"y":23791.333395649563},"targetPosition":{"x":18806.478802943308,"y":24082.42211353236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Candles Volumes","project":"Superalgos","layers":[{"type":"Layer","name":"Candles","config":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","project":"Superalgos","id":"e154fbee-086a-496b-ad92-9b7586c80604","savedPayload":{"position":{"x":18993.974782184414,"y":23513.82266504889},"targetPosition":{"x":18918.86078096808,"y":23804.266957162323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"70d84756-8e7a-4dfc-8aae-abf8affc802f"}}},{"type":"Layer","name":"Volumes","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"fcab2754-0ea7-4077-a384-f2078642641c","savedPayload":{"position":{"x":19066.58784899912,"y":23543.160248380354},"targetPosition":{"x":18918.86078096808,"y":23804.266957162323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"5a47df0f-0524-401a-b5f4-f292eda68238"}}}],"layerFolders":[],"id":"e39078b8-8050-47b3-bed2-3c4002a1032b","savedPayload":{"position":{"x":18918.86078096808,"y":23804.266957162323},"targetPosition":{"x":18806.478802943308,"y":24082.42211353236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Bollinger Bands","project":"Superalgos","layers":[{"type":"Layer","name":"Bollinger Bands","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"e0f8dd99-047e-488a-bb10-2781d91aad82","savedPayload":{"position":{"x":19292.380606806553,"y":23732.62286817907},"targetPosition":{"x":19060.893231790236,"y":23923.4463342624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"d50dcdf4-6251-4c59-9a04-d5dedadd86f7"}}},{"type":"Layer","name":"Percentage Bandwidth","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"6b54bcb1-0672-448c-9efa-af5bd47ed9da","savedPayload":{"position":{"x":19333.8816130532,"y":23799.03836146553},"targetPosition":{"x":19060.893231790236,"y":23923.4463342624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"1e029c1d-85c8-4d3d-90d8-388bf135d110"}}}],"layerFolders":[],"id":"8f5122b2-7b52-4b7f-9464-9fbd1b8085cc","savedPayload":{"position":{"x":19060.893231790236,"y":23923.4463342624},"targetPosition":{"x":18806.478802943308,"y":24082.42211353236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Bollinger Channels","project":"Superalgos","layers":[{"type":"Layer","name":"Bollinger Channels Objects","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"000ec7dc-1137-48fe-baa6-bfdc3cc6d1d2","savedPayload":{"position":{"x":19401.633698482423,"y":24053.834773897397},"targetPosition":{"x":19105.748018021255,"y":24103.3490556556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"aba646d5-9b32-48d6-abc3-e9fa8405b279"}}},{"type":"Layer","name":"Bollinger Channels","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"ae13c978-a98c-45d4-939b-c0302c93b95f","savedPayload":{"position":{"x":19405.736594940507,"y":24100.731095006086},"targetPosition":{"x":19105.748018021255,"y":24103.3490556556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels","id":"241723cd-ae4d-4990-88f8-29bfad2e14ed"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"40bc0669-59ed-47b3-85fa-56ec06d17793","savedPayload":{"position":{"x":19402.45277702983,"y":24147.691878994483},"targetPosition":{"x":19105.748018021255,"y":24103.3490556556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"e171424f-d37d-46d5-aada-1d66ccb0961f"}}},{"type":"Layer","name":"Bollinger Sub-Channels","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","id":"170ad2e1-ae15-46d1-b630-9c508171f250","savedPayload":{"position":{"x":19391.863103245723,"y":24193.56079550688},"targetPosition":{"x":19105.748018021255,"y":24103.3490556556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels","id":"f8686b62-8ca9-4b30-9c27-9844c109d987"}}}],"layerFolders":[],"id":"ded0c3aa-12ff-4b98-b612-33e8b13ad0b9","savedPayload":{"position":{"x":19105.748018021255,"y":24103.3490556556},"targetPosition":{"x":18806.478802943308,"y":24082.42211353236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"723329d0-b912-46fa-b7d9-60bc634a1b91","savedPayload":{"position":{"x":18806.478802943308,"y":24082.42211353236},"targetPosition":{"x":18613.642520037345,"y":24312.235446468054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":190,"radius":0},"referenceParent":{"type":"Data Mine Products","name":"Masters","id":"f527bdd3-f5bc-4248-a35f-ac7e591c3aec"}}},"id":"808378d4-842e-48e9-8684-78400dfd8e66","savedPayload":{"position":{"x":18493.642520037345,"y":24233.92782533272},"targetPosition":{"x":18300.806237131383,"y":24463.741158268414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"09b9e440-eb36-4c7b-90bb-01ff86676d62","savedPayload":{"position":{"x":18300.806237131383,"y":24463.741158268414},"targetPosition":{"x":18450.806237131383,"y":24723.548779403747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":224.75},"width":240,"height":112.375,"radius":0},"referenceParent":{"type":"Live Trading Session","name":"WHB v2","id":"934095e8-4a1c-4baf-828f-7818f73c4219"}}}],"id":"b7e04999-97b0-400a-bd6b-63d9ef43a028","savedPayload":{"position":{"x":18450.806237131383,"y":24723.548779403747},"targetPosition":{"x":18600.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Production Trading Tasks","name":"New Production Trading Tasks","id":"65a40d20-837c-4652-8356-f8054b4e1346"}}}],"id":"b8ef2456-7197-46fa-81fa-de0f299eb9a4","savedPayload":{"position":{"x":18600.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"d7975b33-3654-4e37-8255-90dbf51c3789"}}}],"id":"21d2ec55-9e56-4652-8e96-c7e451262c36","savedPayload":{"position":{"x":18900.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"c"}}},{"type":"Plugins","name":"New Plugins","project":"Superalgos","pluginProjects":[{"type":"Plugin Project","name":"Superalgos","config":"{ \n \"codeName\": \"Superalgos\"\n}","project":"Superalgos","pluginDataMines":{"type":"Plugin Data Mines","name":"New Plugin Data Mines","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Masters","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Masters","project":"Superalgos","id":"d5234bd2-ef4e-4856-a6a0-ce7659653a48","savedPayload":{"position":{"x":18879.35218735615,"y":18688.55301821844},"targetPosition":{"x":31380.185902390363,"y":18528.802375894946},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ecc1a524-de9b-4e73-8874-b99a7ea0402b","savedPayload":{"position":{"x":30804.72973529933,"y":18192.746239098742},"targetPosition":{"x":31027.673182942548,"y":18393.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plugin File","name":"Sparta","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Sparta","project":"Superalgos","id":"2ccc5e2f-816d-411a-98dd-19f384c4fb56","savedPayload":{"position":{"x":12827.993523525696,"y":18705.802375894946},"targetPosition":{"x":31380.185902390363,"y":18828.802375894946},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6cd79166-dec1-46e5-a54d-ce3ee5d877c2","savedPayload":{"position":{"x":31090.046690187875,"y":18100.04114078626},"targetPosition":{"x":31027.673182942548,"y":18393.4854210064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cbc3d9be-5e59-45d8-bb0f-4ec82763691d","savedPayload":{"position":{"x":31027.673182942548,"y":18393.4854210064},"targetPosition":{"x":31120.37828125503,"y":18678.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"pluginTradingMines":{"type":"Plugin Trading Mines","name":"New Plugin Trading Mines","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Masters","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Masters","project":"Superalgos","id":"ad1ce785-858f-4cfc-ba68-108b5e0c54d9","savedPayload":{"position":{"x":24941.217404066585,"y":18714.893045797242},"targetPosition":{"x":31120.37828125503,"y":19198.41761816561},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8a64c00e-4f8c-49bf-b57d-4e2e388bae41","savedPayload":{"position":{"x":31120.37828125503,"y":19198.41761816561},"targetPosition":{"x":30970.37828125503,"y":18938.60999703028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8d881813-3ab9-4e8b-ab5a-48dedab2dd19","savedPayload":{"position":{"x":31363.083379567513,"y":18502.466800207203},"targetPosition":{"x":31120.37828125503,"y":18678.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"pluginTradingSystems":{"type":"Plugin Trading Systems","name":"New Plugin Trading Systems","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Sparta-WHB-BTC-USDT","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Sparta-WHB-BTC-USDT","project":"Superalgos","id":"0d138b32-51ae-48ab-b92a-6dffaa441290","savedPayload":{"position":{"x":30945.763038984365,"y":30950.85999703028},"targetPosition":{"x":30520.37828125503,"y":19198.41761816561},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8cc06746-0b0f-4bc0-bd34-22ed46a24a8a","savedPayload":{"position":{"x":31605.788477879996,"y":19031.47352727043},"targetPosition":{"x":31363.083379567513,"y":18855.13795158269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3569d452-c593-4e54-a356-7ff8c6b519f3","savedPayload":{"position":{"x":31363.083379567513,"y":18855.13795158269},"targetPosition":{"x":31120.37828125503,"y":18678.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"pluginTradingEngines":{"type":"Plugin Trading Engines","name":"New Plugin Trading Engines","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Low-Frequency","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Low-Frequency","project":"Superalgos","id":"e117a2a4-09b3-4181-8455-e680de3bdeb3","savedPayload":{"position":{"x":30923.55093774257,"y":24967.049392142086},"targetPosition":{"x":29820.22642897682,"y":18678.80776835817},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e9270d67-4630-4ac9-91ca-1dec4fb5aa38","savedPayload":{"position":{"x":29820.22642897682,"y":18678.80776835817},"targetPosition":{"x":30320.32799443869,"y":18678.805890109317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"87a28762-63d0-45f7-bd39-9dea436d8244","savedPayload":{"position":{"x":31027.673182942548,"y":18964.11933078349},"targetPosition":{"x":31120.37828125503,"y":18678.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5436943e-3045-4e0d-807e-1be272afaf7f","savedPayload":{"position":{"x":31120.37828125503,"y":18678.802375894946},"targetPosition":{"x":30820.37828125503,"y":18678.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bfb0b514-3b9f-4e9a-85ca-d0ca714b09f6","savedPayload":{"position":{"x":30820.37828125503,"y":18678.802375894946},"targetPosition":{"x":30820.37828125503,"y":18678.802375894946},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Design Space","name":"My Design Space","project":"Superalgos","spaceStyle":{"type":"Space Style","name":"My Space Style","config":" {\n \"backgroundColor\": \"UI_COLOR.BLACK\",\n \"node\": {\n \"fontSize\": 16,\n \"imageSize\": 60,\n \"type\": {\n \"fontColor\": \"UI_COLOR.WHITE\"\n },\n \"name\": {\n \"fontColor\": \"UI_COLOR.WHITE\"\n },\n \"menuItem\": {\n \"backgroundColor\": \"UI_COLOR.BLACK\",\n \"fontColor\": \"UI_COLOR.WHITE\",\n \"fontSize\": 14,\n \"imageSize\": 14\n }\n }\n }","project":"Superalgos","id":"fad0e429-f7a7-4b62-a2a5-2ead29b8f695","savedPayload":{"position":{"x":25236.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"spaceSettings":{"type":"Space Settings","name":"New Space Settings","config":"{\n \"node\": {\n \"distancePercentage\": 60,\n \"radiusPercentage\": 85,\n \"massPercentage\": 100,\n \"menuItem\": {\n \"widthPercentage\": 100,\n \"heightPercentage\": 60,\n \"radiusPercentage\": 90\n }\n },\n \"physics\": false\n}","project":"Superalgos","id":"05c9d6d5-24c4-4eec-9aca-9668d6486fdd","savedPayload":{"position":{"x":24636.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8485ce5-67f3-4476-b9e2-80994e49c318","savedPayload":{"position":{"x":24936.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":255,"y":588.3125}}}},{"type":"Superalgos Project","name":"New Superalgos Project","project":"Superalgos","projectDefinition":{"type":"Project Definition","name":"Superalgos","config":"{ \n \"codeName\": \"Superalgos\"\n}","project":"Superalgos","id":"d7975b33-3654-4e37-8255-90dbf51c3789","savedPayload":{"position":{"x":24726.791666666664,"y":24993.594484167515},"targetPosition":{"x":24426.791666666664,"y":24993.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"spaces":{"type":"Spaces","name":"New Spaces","project":"Superalgos","id":"da1661f6-808c-402d-aaa1-0aa3b7052979","savedPayload":{"position":{"x":24426.791666666664,"y":25293.594484167515},"targetPosition":{"x":24426.791666666664,"y":24993.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"mines":{"type":"Mines","name":"New Mines","project":"Superalgos","id":"c37ef894-7662-4327-879c-23a7d05c707a","savedPayload":{"position":{"x":24126.791666666664,"y":24993.594484167515},"targetPosition":{"x":24426.791666666664,"y":24993.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"otherHierarchies":{"type":"Other Hierarchies","name":"New Other Hierarchies","project":"Superalgos","id":"90ef906a-a979-4ca3-abad-d6bccaf03dbb","savedPayload":{"position":{"x":24426.791666666664,"y":24693.594484167515},"targetPosition":{"x":24426.791666666664,"y":24993.594484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0539e0b4-2d9b-467d-88be-36d45d778823","savedPayload":{"position":{"x":24426.791666666664,"y":24993.594484167515},"targetPosition":{"x":24426.791666666664,"y":24993.594484167515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Tutorial","name":"Trading Bot Layers","config":"{\n \"image\": \"trading-bot\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial - Trading Bot Layers\"\n }\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Getting Ready","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Load a Fresh Workspace","config":"{\n \"image\": \"workspace\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"workspaces\": \"Open\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Load a Fresh Workspace!\"\n }\n}","project":"Superalgos","id":"08f9486c-22f5-4b5c-b41f-d8481b9f9d5a","savedPayload":{"position":{"x":19328.95678840193,"y":44302.80382379679},"targetPosition":{"x":19198.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Workspace","name":"My Default Workspace","id":"1c4772fb-d989-4f06-9335-81e4fc4b8009"}}},{"type":"Tutorial Step","name":"Freeze! Don't Move!","config":"{\n \"image\": \"stop-loss\",\n \"position\": \"\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"workspaces\": \"Close\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Feeze! Don't Move!\"\n }\n}","project":"Superalgos","id":"1789569c-20a3-4536-934e-15b6f731b851","savedPayload":{"position":{"x":19433.341111407073,"y":44386.04754360989},"targetPosition":{"x":19198.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Ready to Mine?","config":"{\n \"image\": \"data-tasks\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"https://docs.superalgos.org/suite-hierarchy-network.html#sensor-bot-instance\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Ready to Mine.....?\"\n }\n}","project":"Superalgos","id":"01079470-3a5c-40fe-9695-d6087b0623fe","savedPayload":{"position":{"x":19491.27004032121,"y":44506.338203980624},"targetPosition":{"x":19198.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Tasks","name":"New Data Tasks","id":"4df1cb4e-b9ca-4f62-bb5f-c7e262aaa22a"}}},{"type":"Tutorial Step","name":"Let's Mine Some Data!","config":"{\n \"image\": \"run\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Let's Mine Some Data.....!\"\n }\n}","project":"Superalgos","id":"6b0d345c-5981-4459-9967-7ca89739a5ab","savedPayload":{"position":{"x":19491.27004032121,"y":44639.85076435441},"targetPosition":{"x":19198.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Tasks","name":"New Data Tasks","id":"4df1cb4e-b9ca-4f62-bb5f-c7e262aaa22a"}}},{"type":"Tutorial Step","name":"Are We Up to Date?","config":"{\n \"image\": \"indicator-process-instance\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Are We Up to Date.....?\"\n }\n}","project":"Superalgos","id":"01767aee-8930-4d29-9b55-74d13dd01f2f","savedPayload":{"position":{"x":19433.341111407073,"y":44760.14142472514},"targetPosition":{"x":19198.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Indicator Process Instance","name":"Exponential Moving Average (EMA) Multi-Period-Market","id":"9adffd60-8756-44f0-9290-692711f43349"}}},{"type":"Tutorial Step","name":"Ready. Set. Go!","config":"{\n \"image\": \"task\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Ready. Set. Go.....!\"\n }\n}","project":"Superalgos","id":"2046f4aa-a9b4-419e-9681-107f6b0002c0","savedPayload":{"position":{"x":19328.95678840193,"y":44843.38514453824},"targetPosition":{"x":19198.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Task","name":"WHB v2","id":"f3dccd9e-6130-40aa-b794-fca344df4a99"}}}],"tutorialTopics":[],"id":"45e0a80c-a3ce-4e81-8e5c-3d97b226e9fc","savedPayload":{"position":{"x":19198.791666666664,"y":44573.094484167515},"targetPosition":{"x":18898.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Trading Engine Layers","config":"{\n \"image\": \"trading-engine\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - Trading Engine Layers\"\n }\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"1, 2, 3, Counting!","config":"{\n \"image\": \"episode-counters\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - 1, 2, 3, Counting!\"\n }\n}","project":"Superalgos","id":"cb3abe07-2fcf-4708-b585-6c0bc4cefa01","savedPayload":{"position":{"x":19158.599287801997,"y":45023.094484167515},"targetPosition":{"x":18898.791666666664,"y":44873.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Periods","name":"New Periods","id":"6c6579c8-fb13-41f6-a25b-1833d2963640"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trading Bot Layers Episode Counters 01\"\n }\n}","project":"Superalgos","id":"ce4aa155-0772-428c-8ed0-b051275c1ec1","savedPayload":{"position":{"x":19048.791666666664,"y":45132.90210530285},"targetPosition":{"x":18898.791666666664,"y":44873.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"How About the Rest?","config":"{\n \"image\": \"episode\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - How About the Rest?\"\n }\n}","project":"Superalgos","id":"c47f1a67-50bb-4e4b-8449-112eacdb9b8c","savedPayload":{"position":{"x":18898.791666666664,"y":45173.094484167515},"targetPosition":{"x":18898.791666666664,"y":44873.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Periods","name":"New Periods","id":"6c6579c8-fb13-41f6-a25b-1833d2963640"}}},{"type":"Tutorial Step","name":"Et Voilà","config":"{\n \"image\": \"current\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Et Voilà!\"\n }\n}","project":"Superalgos","id":"6531b015-26b7-4438-8226-021b5837421a","savedPayload":{"position":{"x":18748.791666666664,"y":45132.90210530285},"targetPosition":{"x":18898.791666666664,"y":44873.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Periods","name":"New Periods","id":"6c6579c8-fb13-41f6-a25b-1833d2963640"}}},{"type":"Tutorial Step","name":"Compartmentalize It!","config":"{\n \"image\": \"bot-layers\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Compartmentalize It!\"\n }\n}","project":"Superalgos","id":"96a53e4e-812f-4da5-b6de-66b70a1c078c","savedPayload":{"position":{"x":18638.98404553133,"y":45023.094484167515},"targetPosition":{"x":18898.791666666664,"y":44873.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"a9b75728-f884-4ab7-aa1e-d4967d90bd5f","savedPayload":{"position":{"x":18898.791666666664,"y":44873.094484167515},"targetPosition":{"x":18898.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Objects Layers","config":"{\n \"position\": \"Left\",\n \"pressButton\": \"Next\",\n \"documentationURL\": \"\"\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"The Elefant in the Room","config":"{\n \"image\": \"strategy\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Elefant? What Elefant?\"\n }\n}","project":"Superalgos","id":"09cf3c10-29bb-4399-99b1-61c996747fa0","savedPayload":{"position":{"x":18498.657246386323,"y":45011.812044649334},"targetPosition":{"x":18598.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Making Sense of Objects","config":"{\n \"image\": \"layer\",\n \"position\": \"Center\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Making Sense of Objects\"\n }\n}","project":"Superalgos","id":"3eea3278-bcdc-4f1d-a7da-876c5df9a6ac","savedPayload":{"position":{"x":18403.543984063763,"y":44978.5304747236},"targetPosition":{"x":18598.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"What About the Position?","config":"{\n \"image\": \"position\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - What About the Position?\"\n }\n}","project":"Superalgos","id":"409e67f2-6944-49bd-b858-53aed2adaaff","savedPayload":{"position":{"x":18318.221255830234,"y":44924.91865127813},"targetPosition":{"x":18598.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"The Beauty of the Triangle","config":"{\n \"image\": \"bullet-warning\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Beauty of the Triangle\"\n }\n}","project":"Superalgos","id":"24c76654-4411-4d28-8bde-2c0391f92798","savedPayload":{"position":{"x":18246.96749955605,"y":44853.664895003945},"targetPosition":{"x":18598.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Why 3 Position Layers?","config":"{\n \"image\": \"position\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"https://docs.superalgos.org/suite-trading-engine-base-asset-and-quoted-asset.html\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Why 3 Position Layers?\"\n }\n}","project":"Superalgos","id":"649427a8-47a4-4fab-9a31-25fd10916df8","savedPayload":{"position":{"x":18193.355676110576,"y":44768.34216677042},"targetPosition":{"x":18598.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Remember Flexibility!","config":"{\n \"image\": \"nodes-highlights\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Remember Flexibility!\"\n }\n}","project":"Superalgos","id":"7bb9d6d3-908b-4857-ab22-6eeeead27a41","savedPayload":{"position":{"x":18160.074106184842,"y":44673.22890444786},"targetPosition":{"x":18598.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Phased Management","config":"{\n \"image\": \"phase\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Phased Management\"\n }\n}","project":"Superalgos","id":"80d0e95d-deef-42fa-917f-d9d60786d9cb","savedPayload":{"position":{"x":18148.791666666664,"y":44573.094484167515},"targetPosition":{"x":18598.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Orders in Order","config":"{\n \"image\": \"bullet-market-sell-order\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Orders in Order\"\n }\n}","project":"Superalgos","id":"ab979e22-46f6-438f-bc1c-9fc5667c62b2","savedPayload":{"position":{"x":18160.074106184842,"y":44472.96006388717},"targetPosition":{"x":18598.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Stages & Time","config":"{\n \"image\": \"close-stage-event\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Stages & Time\"\n }\n}","project":"Superalgos","id":"822c4fd3-770e-4579-b8d8-5bba5c11f739","savedPayload":{"position":{"x":18193.355676110576,"y":44377.846801564614},"targetPosition":{"x":18598.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Episode X","config":"{\n \"image\": \"episode\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Episode X\"\n }\n}","project":"Superalgos","id":"55c98dad-a864-45d4-80d9-5284ca252240","savedPayload":{"position":{"x":18246.96749955605,"y":44292.524073331086},"targetPosition":{"x":18598.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Understanding Objects Data","config":"{\n \"image\": \"bullet-warning\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Understanding Objects Data\"\n }\n}","project":"Superalgos","id":"8b3db214-d507-46f4-be2e-61e5f9a1272e","savedPayload":{"position":{"x":18318.221255830234,"y":44221.2703170569},"targetPosition":{"x":18598.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Daily Files vs. Market Files","config":"{\n \"image\": \"dataset-definition\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Daily Files vs. Market Files\"\n }\n}","project":"Superalgos","id":"b246456c-f85a-479b-ac70-e0752e5b5261","savedPayload":{"position":{"x":18403.543984063763,"y":44167.65849361143},"targetPosition":{"x":18598.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Bring Me Back To Earth!","config":"{\n \"image\": \"take-position-event\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Bring Me Back To Earth!\"\n }\n}","project":"Superalgos","id":"5fc87b22-bd7d-427e-b797-9f0fc1ba274b","savedPayload":{"position":{"x":18498.657246386323,"y":44134.3769236857},"targetPosition":{"x":18598.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"16b109a8-0005-4d43-8db1-4f0c6312a085","savedPayload":{"position":{"x":18598.791666666664,"y":44573.094484167515},"targetPosition":{"x":18898.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Trading System Layers","config":"{\n \"image\": \"trading-system\",\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - Trading System Layers\"\n }\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Trading System Errors!","config":"{\n \"image\": \"bullet-error\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"setErrorMessageReferenceParent\": \"This is formula has a fake error!\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trading System Errors!\"\n }\n}","project":"Superalgos","id":"99e8ab2e-b689-4187-ab47-6acee91093b2","savedPayload":{"position":{"x":18621.62780691328,"y":44158.28945445799},"targetPosition":{"x":18898.791666666664,"y":44273.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Formula","name":"New Formula","id":"492cee3d-1709-41c5-bfd8-e700a3fdf3da"}}},{"type":"Tutorial Step","name":"Trading System Highlights","config":"{\n \"image\": \"bullet-info\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trading System Highlights!\"\n }\n}","project":"Superalgos","id":"8d16861d-5cd6-4f31-97a3-95e152266cd8","savedPayload":{"position":{"x":18686.6596323107,"y":44060.96244981155},"targetPosition":{"x":18898.791666666664,"y":44273.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Condition","name":"Slope Not Extreme, or...","id":"da235bf3-976c-4832-a565-98a6bb13236d"}}},{"type":"Tutorial Step","name":"GIF","config":"{\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trading Bot Layers Trading System Highlights\"\n }\n}","project":"Superalgos","id":"8e34aa88-c0fc-4268-9638-a72c96104b9a","savedPayload":{"position":{"x":18783.98663695714,"y":43995.930624414126},"targetPosition":{"x":18898.791666666664,"y":44273.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Quick Refresher On Stages","config":"{\n \"image\": \"trigger-stage\",\n \"position\": \"Left\",\n \"slider\": \"toMiddle\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"https://docs.superalgos.org/suite-strategies.html\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Quick Refresher on Stages!\"\n }\n}","project":"Superalgos","id":"89f8b883-47f4-4fc0-828a-d2ffeff56737","savedPayload":{"position":{"x":18898.791666666664,"y":43973.094484167515},"targetPosition":{"x":18898.791666666664,"y":44273.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Trading System Values!","config":"{\n \"image\": \"formula\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trading System Values!\"\n }\n}","project":"Superalgos","id":"a49327ef-0daf-494a-9b76-6d53c914da16","savedPayload":{"position":{"x":19013.596696376193,"y":43995.930624414126},"targetPosition":{"x":18898.791666666664,"y":44273.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Formula","id":"6f65573a-c2ac-476a-9ca1-738971e3ff78"}}},{"type":"Tutorial Step","name":"The Rest of the Crew","config":"{\n \"image\": \"bot-layers\",\n \"position\": \"Right\",\n \"slider\": \"toMiddle\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Rest of the Crew!\"\n }\n}","project":"Superalgos","id":"7aa8f881-788d-423d-9f42-70ace943023a","savedPayload":{"position":{"x":19110.923701022628,"y":44060.96244981155},"targetPosition":{"x":18898.791666666664,"y":44273.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"Time To Go Out and Play!","config":"{\n \"image\": \"play\",\n \"position\": \"\",\n \"slider\": \"toMiddle\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Time To Go Out and Play!\"\n }\n}","project":"Superalgos","id":"dcf1ae5f-f200-4201-ab28-c921417ab7f2","savedPayload":{"position":{"x":19175.95552642005,"y":44158.28945445799},"targetPosition":{"x":18898.791666666664,"y":44273.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"c57458f7-5c9d-41b7-aea1-6c5aff4ef791","savedPayload":{"position":{"x":18898.791666666664,"y":44273.094484167515},"targetPosition":{"x":18898.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"f96b383c-4916-4864-868b-b2b5cf9c5033","savedPayload":{"position":{"x":18898.791666666664,"y":44573.094484167515},"targetPosition":{"x":18898.791666666664,"y":44573.094484167515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"}}}]} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/AppSchema.json b/Projects/Superalgos/Schemas/AppSchema.json index 0f41a8935..0da6d4565 100644 --- a/Projects/Superalgos/Schemas/AppSchema.json +++ b/Projects/Superalgos/Schemas/AppSchema.json @@ -24,7 +24,7 @@ "isPinned": true, "positionLocked": true, "icon": "superalgos", - "properties": [ + "childrenNodesProperties": [ { "name": "projectDefinition", "type": "node", @@ -192,6 +192,12 @@ "relatedUiObject": "Plugins", "actionFunction": "payload.executeAction" }, + { + "action": "Add UI Object", + "label": "Add APIs", + "relatedUiObject": "APIs", + "actionFunction": "payload.executeAction" + }, { "action": "Delete UI Object", "askConfirmation": true, @@ -249,11 +255,11 @@ }, { "type": "Plotter Module", - "properties": [ + "childrenNodesProperties": [ { - "name": "javascriptCode", + "name": "plotterModuleJavascriptCode", "type": "node", - "childType": "Javascript Code" + "childType": "Plotter Module Javascript Code" }, { "name": "shapes", @@ -347,10 +353,10 @@ { "action": "Add UI Object", "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "javascriptCode", + "propertyToCheckFor": "plotterModuleJavascriptCode", "actionFunction": "payload.executeAction", "label": "Add Javascript Code", - "relatedUiObject": "Javascript Code" + "relatedUiObject": "Plotter Module Javascript Code" }, { "action": "Add UI Object", @@ -383,7 +389,7 @@ "config": true }, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plotter->" }, "propertyNameAtParent": "modules" @@ -403,7 +409,7 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plotter Module->" }, "icon": "expand", @@ -424,7 +430,7 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plotter Module->" }, "icon": "expand", @@ -445,7 +451,7 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plotter Module->" }, "icon": "expand", @@ -466,7 +472,7 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plotter Module->" }, "icon": "expand", @@ -487,7 +493,7 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plotter Module->" }, "icon": "expand", @@ -508,7 +514,7 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plotter Module->" }, "icon": "expand", @@ -529,7 +535,7 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plotter Module->" }, "icon": "expand", @@ -550,7 +556,7 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plotter Module->" }, "icon": "expand", @@ -571,7 +577,7 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plotter Module->" }, "icon": "expand", @@ -592,7 +598,7 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plotter Module->" }, "icon": "expand", @@ -602,10 +608,10 @@ "type": "Shapes", "level": 4, "propertyNameAtParent": "shapes", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plotter Module->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "chartPoints", "type": "array", @@ -672,7 +678,7 @@ "type": "Plotter Panel", "level": 4, "propertyNameAtParent": "panels", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plotter Module->" }, "initialValues": { @@ -681,11 +687,11 @@ "editors": { "config": true }, - "properties": [ + "childrenNodesProperties": [ { - "name": "javascriptCode", + "name": "plotterPanelJavascriptCode", "type": "node", - "childType": "Javascript Code" + "childType": "Plotter Panel Javascript Code" }, { "name": "panelData", @@ -705,10 +711,10 @@ { "action": "Add UI Object", "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "javascriptCode", + "propertyToCheckFor": "plotterPanelJavascriptCode", "actionFunction": "payload.executeAction", - "label": "Add Code", - "relatedUiObject": "Javascript Code" + "label": "Add Javascript Code", + "relatedUiObject": "Plotter Panel Javascript Code" }, { "action": "Add UI Object", @@ -735,13 +741,13 @@ "editors": { "config": true }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plotter Panel->" }, "initialValues": { "config": "{\n \"valueDecimals\": 2\n}" }, - "properties": [ + "childrenNodesProperties": [ { "name": "dataFormula", "type": "node", @@ -801,7 +807,7 @@ "initialValues": { "code": "// Type you code" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Panel Data->" }, "menuItems": [ @@ -834,8 +840,8 @@ "initialValues": { "code": "// Type you code" }, - "chainAttachesTo": { - "compatibleTypes": "->Condition->Procedure Initialization->Procedure Loop->Plotter Module->Plotter Panel->Master Script->" + "attachingRules": { + "compatibleTypes": "->Condition->" }, "menuItems": [ { @@ -857,14 +863,116 @@ ], "addLeftIcons": true }, + { + "type": "Procedure Javascript Code", + "level": 4, + "propertyNameAtParent": "procedureJavascriptCode", + "editors": { + "code": true + }, + "initialValues": { + "code": "// Type you code" + }, + "attachingRules": { + "compatibleTypes": "->Procedure Initialization->Procedure Loop->" + }, + "menuItems": [ + { + "action": "Edit", + "actionFunction": "uiObject.codeEditor.activate", + "label": "Edit", + "iconPathOn": "bitcoin", + "iconPathOff": "bitcoin" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.executeAction", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete" + } + ], + "addLeftIcons": true, + "icon": "bitcoin" + }, + { + "type": "Plotter Module Javascript Code", + "level": 4, + "propertyNameAtParent": "plotterModuleJavascriptCode", + "editors": { + "code": true + }, + "initialValues": { + "code": "// Type you code" + }, + "attachingRules": { + "compatibleTypes": "->Plotter Module->" + }, + "menuItems": [ + { + "action": "Edit", + "actionFunction": "uiObject.codeEditor.activate", + "label": "Edit", + "iconPathOn": "bitcoin", + "iconPathOff": "bitcoin" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.executeAction", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete" + } + ], + "addLeftIcons": true, + "icon": "bitcoin" + }, + { + "type": "Plotter Panel Javascript Code", + "level": 4, + "propertyNameAtParent": "plotterPanelJavascriptCode", + "editors": { + "code": true + }, + "initialValues": { + "code": "// Type you code" + }, + "attachingRules": { + "compatibleTypes": "->Plotter Panel->" + }, + "menuItems": [ + { + "action": "Edit", + "actionFunction": "uiObject.codeEditor.activate", + "label": "Edit", + "iconPathOn": "bitcoin", + "iconPathOff": "bitcoin" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.executeAction", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete" + } + ], + "addLeftIcons": true, + "icon": "bitcoin" + }, { "type": "Chart Points", "level": 4, "propertyNameAtParent": "chartPoints", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Shapes->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "points", "type": "array", @@ -895,10 +1003,10 @@ "type": "Point", "level": 4, "propertyNameAtParent": "points", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Chart Points->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "pointFormula", "type": "node", @@ -931,7 +1039,7 @@ "type": "Point Formula", "level": 4, "propertyNameAtParent": "pointFormula", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Point->" }, "editors": { @@ -964,7 +1072,7 @@ "type": "Image", "level": 3, "propertyNameAtParent": "images", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Shapes->" }, "editors": { @@ -1007,7 +1115,7 @@ "iconPathOff": "delete" } ], - "properties": [ + "childrenNodesProperties": [ { "name": "imageCondition", "type": "node", @@ -1027,7 +1135,7 @@ "type": "Image Condition", "level": 4, "propertyNameAtParent": "imageCondition", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Image->" }, "editors": { @@ -1036,7 +1144,7 @@ "initialValues": { "code": "" }, - "properties": [], + "childrenNodesProperties": [], "menuItems": [ { "action": "Edit", @@ -1061,11 +1169,11 @@ "type": "Image Position", "level": 4, "propertyNameAtParent": "imagePosition", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Image->" }, - "properties": [], - "referenceAttachesTo": { + "childrenNodesProperties": [], + "referencingRules": { "compatibleTypes": "->Point->" }, "editors": { @@ -1101,7 +1209,7 @@ "type": "Text", "level": 3, "propertyNameAtParent": "texts", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Shapes->" }, "menuItems": [ @@ -1147,7 +1255,7 @@ "iconPathOff": "delete" } ], - "properties": [ + "childrenNodesProperties": [ { "name": "textCondition", "type": "node", @@ -1179,7 +1287,7 @@ "type": "Text Style", "level": 4, "propertyNameAtParent": "textStyle", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Text->Panel Data->" }, "editors": { @@ -1212,7 +1320,7 @@ "type": "Text Condition", "level": 4, "propertyNameAtParent": "textCondition", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Text->" }, "editors": { @@ -1221,7 +1329,7 @@ "initialValues": { "code": "" }, - "properties": [], + "childrenNodesProperties": [], "menuItems": [ { "action": "Edit", @@ -1246,11 +1354,11 @@ "type": "Text Position", "level": 4, "propertyNameAtParent": "textPosition", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Text->" }, - "properties": [], - "referenceAttachesTo": { + "childrenNodesProperties": [], + "referencingRules": { "compatibleTypes": "->Point->" }, "editors": { @@ -1286,7 +1394,7 @@ "type": "Text Formula", "level": 4, "propertyNameAtParent": "textFormula", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Text->" }, "editors": { @@ -1319,10 +1427,10 @@ "type": "Polygon", "level": 3, "propertyNameAtParent": "polygons", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Shapes->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "polygonCondition", "type": "node", @@ -1395,7 +1503,7 @@ "type": "Polygon Condition", "level": 4, "propertyNameAtParent": "polygonCondition", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Polygon->" }, "editors": { @@ -1404,7 +1512,7 @@ "initialValues": { "code": "" }, - "properties": [], + "childrenNodesProperties": [], "menuItems": [ { "action": "Edit", @@ -1429,10 +1537,10 @@ "type": "Polygon Body", "level": 4, "propertyNameAtParent": "polygonBody", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Polygon->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "style", "type": "node", @@ -1476,10 +1584,10 @@ "type": "Polygon Border", "level": 4, "propertyNameAtParent": "polygonBorder", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Polygon->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "style", "type": "node", @@ -1523,7 +1631,7 @@ "type": "Style Condition", "level": 4, "propertyNameAtParent": "styleConditions", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Polygon Body->Polygon Border->" }, "editors": { @@ -1532,7 +1640,7 @@ "initialValues": { "code": "" }, - "properties": [ + "childrenNodesProperties": [ { "name": "style", "type": "node", @@ -1572,7 +1680,7 @@ "type": "Style", "level": 4, "propertyNameAtParent": "style", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Style Condition->Polygon Body->Polygon Border->" }, "editors": { @@ -1606,10 +1714,10 @@ "level": 4, "propertyNameAtParent": "polygonVertexes", "isReferenceChildren": true, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Point->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Polygon->" }, "title": [ @@ -1657,10 +1765,10 @@ ], "addLeftIcons": true, "level": 1, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Take Position Event->Trigger On Event->Trigger Off Event->Next Phase Event->Move To Phase Event->Create Order Event->Cancel Order Event->Close Stage Event->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "conditions", "type": "array", @@ -1719,10 +1827,10 @@ "condition": true }, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Situation->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "javascriptCode", "type": "node", @@ -1770,7 +1878,7 @@ "initialValues": { "config": "{ \n \"codeName\": \"\"\n}" }, - "properties": [ + "childrenNodesProperties": [ { "name": "scriptsLibrary", "type": "node", @@ -1802,10 +1910,10 @@ "isTitleAllwaysVisible": false, "addLeftIcons": true, "level": 1, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Super Scripts->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "masterScripts", "type": "array", @@ -1845,10 +1953,10 @@ "isTitleAllwaysVisible": true, "addLeftIcons": true, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Scripts Library->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "templateScripts", "type": "array", @@ -1903,10 +2011,10 @@ "isTitleAllwaysVisible": true, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Master Script->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "templateStructure", "type": "node", @@ -1944,10 +2052,10 @@ "isTitleAllwaysVisible": false, "addLeftIcons": true, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Template Script->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "taskManagers", "type": "node", @@ -1987,13 +2095,13 @@ "isTitleAllwaysVisible": false, "addLeftIcons": true, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Template Script->" }, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Dashboard->Data Mines Data->Trading Mines Data->Data Tasks->Testing Trading Tasks->Production Trading Tasks->" }, - "properties": [] + "childrenNodesProperties": [] }, { "type": "Super Action", @@ -2022,13 +2130,79 @@ "isTitleAllwaysVisible": true, "addLeftIcons": true, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Super Actions->Market->" }, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Master Script->" }, - "properties": [] + "childrenNodesProperties": [] + }, + { + "type": "APIs", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Github API", + "relatedUiObject": "Github API", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.executeAction" + } + ], + "isHierarchyHead": true, + "addLeftIcons": true, + "level": 0, + "childrenNodesProperties": [ + { + "name": "githubAPI", + "type": "node", + "childType": "Github API" + } + ], + "icon": "bitcoin" + }, + { + "type": "Github API", + "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "dontShowAtFullscreen": true, + "actionFunction": "uiObject.configEditor.activate" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.executeAction" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{ \n\"username\": \"\", \n\"token\": \"\"\n}" + }, + "addLeftIcons": true, + "level": 1, + "attachingRules": { + "compatibleTypes": "->APIs->" + }, + "propertyNameAtParent": "githubAPI", + "icon": "bitcoin" }, { "type": "Network", @@ -2052,7 +2226,7 @@ "isHierarchyHead": true, "addLeftIcons": true, "level": 0, - "properties": [ + "childrenNodesProperties": [ { "name": "networkNodes", "type": "array", @@ -2130,10 +2304,10 @@ "isTitleAllwaysVisible": true, "addLeftIcons": true, "level": 1, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Network->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "dataTasks", "type": "node", @@ -2208,10 +2382,10 @@ ], "addLeftIcons": true, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Data Mine Tasks->Trading Mine Tasks->Learning Mine Tasks->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "tasks", "type": "array", @@ -2304,10 +2478,10 @@ "isTitleAllwaysVisible": true, "addLeftIcons": true, "level": 0, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Task Manager->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "bot", "type": "node", @@ -2371,10 +2545,10 @@ "config": "{}" }, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Task->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "processes", "type": "array", @@ -2419,10 +2593,10 @@ "config": "{}" }, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Task->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "processes", "type": "array", @@ -2452,13 +2626,13 @@ ], "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Process Definition->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Sensor Bot Instance->" }, - "properties": [], + "childrenNodesProperties": [], "propertyNameAtParent": "processes" }, { @@ -2481,13 +2655,13 @@ ], "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Process Definition->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Indicator Bot Instance->" }, - "properties": [], + "childrenNodesProperties": [], "propertyNameAtParent": "processes" }, { @@ -2550,13 +2724,13 @@ ], "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Process Definition->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Bot Instance->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "session", "type": "node", @@ -2622,13 +2796,13 @@ ], "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Process Definition->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Bot Instance->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "session", "type": "node", @@ -2711,10 +2885,10 @@ "config": true }, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Process Instance->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "tradingParameters", "type": "node", @@ -2763,7 +2937,7 @@ "isHierarchyHead": true, "addLeftIcons": true, "level": 0, - "properties": [ + "childrenNodesProperties": [ { "name": "current", "type": "node", @@ -2805,11 +2979,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading System->" }, "propertyNameAtParent": "dynamicIndicators", - "properties": [ + "childrenNodesProperties": [ { "name": "indicatorFunctions", "type": "array", @@ -2854,11 +3028,11 @@ }, "addLeftIcons": true, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Dynamic Indicators->" }, "propertyNameAtParent": "indicatorFunctions", - "properties": [ + "childrenNodesProperties": [ { "name": "formula", "type": "node", @@ -2888,11 +3062,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Current->" }, "propertyNameAtParent": "episode", - "properties": [ + "childrenNodesProperties": [ { "name": "serialNumber", "type": "node", @@ -3024,11 +3198,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode->" }, "propertyNameAtParent": "episodeCounters", - "properties": [ + "childrenNodesProperties": [ { "name": "periods", "type": "node", @@ -3102,11 +3276,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Position->" }, "propertyNameAtParent": "positionCounters", - "properties": [ + "childrenNodesProperties": [ { "name": "periods", "type": "node", @@ -3150,11 +3324,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Strategy->" }, "propertyNameAtParent": "strategyCounters", - "properties": [ + "childrenNodesProperties": [ { "name": "periods", "type": "node", @@ -3198,11 +3372,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market Order->Limit Order->" }, "propertyNameAtParent": "orderCounters", - "properties": [ + "childrenNodesProperties": [ { "name": "periods", "type": "node", @@ -3266,7 +3440,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode Counters->" }, "propertyNameAtParent": "positions" @@ -3320,7 +3494,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode Counters->" }, "propertyNameAtParent": "strategies" @@ -3374,7 +3548,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode Counters->" }, "propertyNameAtParent": "orders" @@ -3428,7 +3602,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode Counters->Episode Base Asset->Episode Quoted Asset->" }, "propertyNameAtParent": "fails" @@ -3482,7 +3656,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode Counters->Episode Base Asset->Episode Quoted Asset->" }, "propertyNameAtParent": "hits" @@ -3536,7 +3710,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode Counters->Position Counters->Strategy Counters->Order Counters->" }, "propertyNameAtParent": "periods" @@ -3590,7 +3764,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode Counters->Position Counters->Strategy Counters->" }, "propertyNameAtParent": "userDefinedCounters" @@ -3622,11 +3796,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode->" }, "propertyNameAtParent": "episodeStatistics", - "properties": [ + "childrenNodesProperties": [ { "name": "profitLoss", "type": "node", @@ -3720,11 +3894,11 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Position->" }, "propertyNameAtParent": "stopLoss", - "properties": [ + "childrenNodesProperties": [ { "name": "begin", "type": "node", @@ -3818,11 +3992,11 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Position->" }, "propertyNameAtParent": "stopLoss", - "properties": [ + "childrenNodesProperties": [ { "name": "begin", "type": "node", @@ -3910,7 +4084,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Stop Loss->Take Profit->" }, "propertyNameAtParent": "initialValue" @@ -3964,7 +4138,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Stop Loss->Take Profit->" }, "propertyNameAtParent": "finalValue" @@ -4018,7 +4192,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Stop Loss->" }, "propertyNameAtParent": "stopLossPhase" @@ -4072,7 +4246,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Take Profit->" }, "propertyNameAtParent": "takeProfitPhase" @@ -4126,7 +4300,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Take Profit->" }, "propertyNameAtParent": "takeProfitPosition" @@ -4180,7 +4354,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Stop Loss->" }, "propertyNameAtParent": "stopLossPosition" @@ -4212,11 +4386,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Position->" }, "propertyNameAtParent": "positionStatistics", - "properties": [ + "childrenNodesProperties": [ { "name": "profitLoss", "type": "node", @@ -4270,11 +4444,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Strategy Open Stage->Strategy Close Stage->" }, "propertyNameAtParent": "stageBaseAsset", - "properties": [ + "childrenNodesProperties": [ { "name": "targetSize", "type": "node", @@ -4322,11 +4496,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Strategy Open Stage->Strategy Close Stage->" }, "propertyNameAtParent": "stageQuotedAsset", - "properties": [ + "childrenNodesProperties": [ { "name": "targetSize", "type": "node", @@ -4374,11 +4548,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode->" }, "propertyNameAtParent": "episodeBaseAsset", - "properties": [ + "childrenNodesProperties": [ { "name": "balance", "type": "node", @@ -4462,11 +4636,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode->" }, "propertyNameAtParent": "episodeQuotedAsset", - "properties": [ + "childrenNodesProperties": [ { "name": "balance", "type": "node", @@ -4550,11 +4724,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Position->" }, "propertyNameAtParent": "positionBaseAsset", - "properties": [ + "childrenNodesProperties": [ { "name": "beginBalance", "type": "node", @@ -4620,11 +4794,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Position->" }, "propertyNameAtParent": "positionQuotedAsset", - "properties": [ + "childrenNodesProperties": [ { "name": "beginBalance", "type": "node", @@ -4696,11 +4870,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market Order->Limit Order->" }, "propertyNameAtParent": "orderStatistics", - "properties": [ + "childrenNodesProperties": [ { "name": "percentageFilled", "type": "node", @@ -4748,11 +4922,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market Order->Limit Order->" }, "propertyNameAtParent": "orderBaseAsset", - "properties": [ + "childrenNodesProperties": [ { "name": "actualSize", "type": "node", @@ -4812,11 +4986,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market Order->Limit Order->" }, "propertyNameAtParent": "orderQuotedAsset", - "properties": [ + "childrenNodesProperties": [ { "name": "actualSize", "type": "node", @@ -4912,11 +5086,11 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode Statistics->Position Statistics->" }, "propertyNameAtParent": "userDefinedStatistics", - "properties": [ + "childrenNodesProperties": [ { "name": "formula", "type": "node", @@ -4974,7 +5148,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode Statistics->Position Statistics->Position Base Asset->Position Quoted Asset->Episode Base Asset->Episode Quoted Asset->" }, "propertyNameAtParent": "profitLoss" @@ -5028,7 +5202,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode Base Asset->Episode Quoted Asset->" }, "propertyNameAtParent": "hitRatio" @@ -5082,7 +5256,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode Statistics->Position Statistics->Order Statistics->" }, "propertyNameAtParent": "days" @@ -5136,7 +5310,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Order Base Asset->Order Quoted Asset->Stage Base Asset->Stage Quoted Asset->" }, "propertyNameAtParent": "sizeFilled" @@ -5190,7 +5364,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Order Statistics->" }, "propertyNameAtParent": "percentageFilled" @@ -5244,7 +5418,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Order Statistics->" }, "propertyNameAtParent": "actualRate" @@ -5298,7 +5472,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Order Base Asset->Order Quoted Asset->Stage Base Asset->Stage Quoted Asset->" }, "propertyNameAtParent": "feesPaid" @@ -5352,7 +5526,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode Statistics->Position Statistics->Position Base Asset->Position Quoted Asset->Episode Base Asset->Episode Quoted Asset->" }, "propertyNameAtParent": "ROI" @@ -5406,7 +5580,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode Statistics->Episode Base Asset->Episode Quoted Asset->" }, "propertyNameAtParent": "annualizedRateOfReturn" @@ -5460,7 +5634,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode Statistics->Position Statistics->Position Base Asset->Position Quoted Asset->Episode Base Asset->Episode Quoted Asset->" }, "propertyNameAtParent": "hitFail" @@ -5486,11 +5660,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Engine->" }, "propertyNameAtParent": "current", - "properties": [ + "childrenNodesProperties": [ { "name": "episode", "type": "node", @@ -5584,7 +5758,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode->" }, "propertyNameAtParent": "balance" @@ -5638,7 +5812,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode Base Asset->Episode Quoted Asset->" }, "propertyNameAtParent": "beginBalance" @@ -5692,7 +5866,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode Base Asset->Episode Quoted Asset->" }, "propertyNameAtParent": "endBalance" @@ -5718,11 +5892,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode->" }, "propertyNameAtParent": "distanceToEvent", - "properties": [ + "childrenNodesProperties": [ { "name": "triggerOn", "type": "node", @@ -5828,7 +6002,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Distance To Event->" }, "propertyNameAtParent": "triggerOn" @@ -5882,7 +6056,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Distance To Event->" }, "propertyNameAtParent": "triggerOff" @@ -5936,7 +6110,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Distance To Event->" }, "propertyNameAtParent": "takePosition" @@ -5990,7 +6164,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Distance To Event->" }, "propertyNameAtParent": "closePosition" @@ -6044,7 +6218,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Distance To Event->" }, "propertyNameAtParent": "nextPhase" @@ -6098,7 +6272,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Distance To Event->" }, "propertyNameAtParent": "moveToPhase" @@ -6152,7 +6326,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Distance To Event->" }, "propertyNameAtParent": "createOrder" @@ -6206,7 +6380,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Distance To Event->" }, "propertyNameAtParent": "cancelOrder" @@ -6260,7 +6434,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Distance To Event->" }, "propertyNameAtParent": "closeOrder" @@ -6286,11 +6460,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Current->" }, "propertyNameAtParent": "strategyTriggerStage", - "properties": [ + "childrenNodesProperties": [ { "name": "begin", "type": "node", @@ -6350,11 +6524,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Current->" }, "propertyNameAtParent": "strategyManageStage", - "properties": [ + "childrenNodesProperties": [ { "name": "begin", "type": "node", @@ -6414,11 +6588,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Current->" }, "propertyNameAtParent": "strategyOpenStage", - "properties": [ + "childrenNodesProperties": [ { "name": "begin", "type": "node", @@ -6496,11 +6670,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Current->" }, "propertyNameAtParent": "strategyCloseStage", - "properties": [ + "childrenNodesProperties": [ { "name": "begin", "type": "node", @@ -6578,11 +6752,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Current->Last->" }, "propertyNameAtParent": "strategy", - "properties": [ + "childrenNodesProperties": [ { "name": "serialNumber", "type": "node", @@ -6706,7 +6880,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Strategy->" }, "propertyNameAtParent": "strategyName" @@ -6760,7 +6934,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Strategy->Candle->" }, "propertyNameAtParent": "index" @@ -6814,7 +6988,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode->Strategy->Position->Market Order->Limit Order->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->" }, "propertyNameAtParent": "status" @@ -6868,7 +7042,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Strategy->Position->" }, "propertyNameAtParent": "situationName" @@ -6922,7 +7096,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market Order->Limit Order->" }, "propertyNameAtParent": "algorithmName" @@ -6976,7 +7150,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market Order->Limit Order->" }, "propertyNameAtParent": "orderName" @@ -7030,7 +7204,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode->Strategy->Position->Market Order->Limit Order->" }, "propertyNameAtParent": "serialNumber" @@ -7084,7 +7258,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode->Strategy->Position->Market Order->Limit Order->" }, "propertyNameAtParent": "identifier" @@ -7138,7 +7312,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market Order->Limit Order->" }, "propertyNameAtParent": "exchangeId" @@ -7192,7 +7366,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market Order->Limit Order->" }, "propertyNameAtParent": "lock" @@ -7246,7 +7420,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode->Strategy->Position->Candle->Cycle->Market Order->Limit Order->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->Stop Loss->Take Profit->" }, "propertyNameAtParent": "begin" @@ -7300,7 +7474,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode->Strategy->Position->Candle->Cycle->Market Order->Limit Order->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->Stop Loss->Take Profit->" }, "propertyNameAtParent": "end" @@ -7354,7 +7528,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Cycle->" }, "propertyNameAtParent": "lastBegin" @@ -7408,7 +7582,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Cycle->" }, "propertyNameAtParent": "lastEnd" @@ -7449,7 +7623,7 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Candle->" }, "propertyNameAtParent": "open" @@ -7490,7 +7664,7 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Candle->" }, "propertyNameAtParent": "close" @@ -7531,7 +7705,7 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Candle->" }, "propertyNameAtParent": "min" @@ -7572,7 +7746,7 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Candle->" }, "propertyNameAtParent": "max" @@ -7626,7 +7800,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode->Strategy->Position->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->" }, "propertyNameAtParent": "beginRate" @@ -7680,7 +7854,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode->Strategy->Position->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->" }, "propertyNameAtParent": "endRate" @@ -7706,11 +7880,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Current->Last->" }, "propertyNameAtParent": "position", - "properties": [ + "childrenNodesProperties": [ { "name": "serialNumber", "type": "node", @@ -7864,7 +8038,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market Order->Limit Order->" }, "propertyNameAtParent": "rate" @@ -7918,7 +8092,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Position->" }, "propertyNameAtParent": "entryTargetRate" @@ -7972,7 +8146,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Position->" }, "propertyNameAtParent": "exitTargetRate" @@ -8026,7 +8200,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Strategy Open Stage->Strategy Close Stage->" }, "propertyNameAtParent": "stageDefinedIn" @@ -8080,7 +8254,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Order Base Asset->Order Quoted Asset->" }, "propertyNameAtParent": "size" @@ -8134,7 +8308,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Order Base Asset->Order Quoted Asset->" }, "propertyNameAtParent": "actualSize" @@ -8188,7 +8362,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Order Base Asset->Order Quoted Asset->" }, "propertyNameAtParent": "amountReceived" @@ -8242,7 +8416,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Order Base Asset->Order Quoted Asset->" }, "propertyNameAtParent": "feesToBePaid" @@ -8296,7 +8470,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Position Base Asset->Position Quoted Asset->" }, "propertyNameAtParent": "entryTargetSize" @@ -8350,7 +8524,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Position Base Asset->Position Quoted Asset->" }, "propertyNameAtParent": "exitTargetSize" @@ -8404,7 +8578,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Stage Base Asset->Stage Quoted Asset->" }, "propertyNameAtParent": "sizePlaced" @@ -8458,7 +8632,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Stage Base Asset->Stage Quoted Asset->" }, "propertyNameAtParent": "targetSize" @@ -8512,7 +8686,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode->Strategy->->Position->Market Order->Limit Order->Strategy Trigger Stage->Strategy Open Stage->Strategy Manage Stage->Strategy Close Stage->" }, "propertyNameAtParent": "exitType" @@ -8566,7 +8740,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode->" }, "propertyNameAtParent": "processDate" @@ -8620,7 +8794,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode->" }, "propertyNameAtParent": "headOfTheMarket" @@ -8646,11 +8820,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Engine->" }, "propertyNameAtParent": "last", - "properties": [ + "childrenNodesProperties": [ { "name": "position", "type": "node", @@ -8698,11 +8872,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode->" }, "propertyNameAtParent": "candle", - "properties": [ + "childrenNodesProperties": [ { "name": "begin", "type": "node", @@ -8789,11 +8963,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Episode->" }, "propertyNameAtParent": "cycle", - "properties": [ + "childrenNodesProperties": [ { "name": "begin", "type": "node", @@ -8867,11 +9041,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Engine->" }, "propertyNameAtParent": "exchangeOrders", - "properties": [ + "childrenNodesProperties": [ { "name": "marketBuyOrders", "type": "node", @@ -8919,11 +9093,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Exchange Orders->" }, "propertyNameAtParent": "marketBuyOrders", - "properties": [ + "childrenNodesProperties": [ { "name": "marketOrders", "type": "array", @@ -8953,11 +9127,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market Buy Orders->Market Sell Orders->Last->" }, "propertyNameAtParent": "marketOrders", - "properties": [ + "childrenNodesProperties": [ { "name": "serialNumber", "type": "node", @@ -9077,11 +9251,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Exchange Orders->" }, "propertyNameAtParent": "marketSellOrders", - "properties": [ + "childrenNodesProperties": [ { "name": "marketOrders", "type": "array", @@ -9111,11 +9285,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Exchange Orders->" }, "propertyNameAtParent": "limitBuyOrders", - "properties": [ + "childrenNodesProperties": [ { "name": "limitOrders", "type": "array", @@ -9145,11 +9319,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Exchange Orders->" }, "propertyNameAtParent": "limitSellOrders", - "properties": [ + "childrenNodesProperties": [ { "name": "limitOrders", "type": "array", @@ -9179,11 +9353,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Limit Buy Orders->Limit Sell Orders->Last->" }, "propertyNameAtParent": "limitOrders", - "properties": [ + "childrenNodesProperties": [ { "name": "serialNumber", "type": "node", @@ -9303,10 +9477,10 @@ ], "addLeftIcons": true, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Backtesting Session->Live Trading Session->Paper Trading Session->Forward Testing Session->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "sessionBaseAsset", "type": "node", @@ -9385,10 +9559,10 @@ ], "addLeftIcons": true, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Learning Session->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "learningAlgorithm", "type": "node", @@ -9428,10 +9602,10 @@ ], "addLeftIcons": true, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Backtesting Session->Live Trading Session->Paper Trading Session->Forward Testing Session->" }, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Trading System->" }, "propertyNameAtParent": "tradingSystemReference" @@ -9454,10 +9628,10 @@ ], "addLeftIcons": true, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Backtesting Session->Live Trading Session->Paper Trading Session->Forward Testing Session->" }, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Trading Engine->" }, "propertyNameAtParent": "tradingEngineReference" @@ -9491,10 +9665,10 @@ "config": true }, "level": 3, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Exchange Account Asset->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Parameters->" }, "alternativeIcons": "Use Reference Grandparent", @@ -9532,10 +9706,10 @@ "config": true }, "level": 3, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Exchange Account Asset->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Parameters->" }, "alternativeIcons": "Use Reference Grandparent", @@ -9560,10 +9734,10 @@ "isTitleAllwaysVisible": true, "addLeftIcons": true, "level": 3, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Asset->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market->" }, "alternativeIcons": "Use Reference Parent", @@ -9588,10 +9762,10 @@ "isTitleAllwaysVisible": true, "addLeftIcons": true, "level": 3, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Asset->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market->" }, "alternativeIcons": "Use Reference Parent", @@ -9628,7 +9802,7 @@ "config": true }, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Parameters->" }, "propertyNameAtParent": "timeRange" @@ -9661,7 +9835,7 @@ "config": true }, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Parameters->" }, "propertyNameAtParent": "timeFrame" @@ -9694,7 +9868,7 @@ "config": true }, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Parameters->" }, "propertyNameAtParent": "slippage" @@ -9727,7 +9901,7 @@ "config": true }, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Parameters->" }, "propertyNameAtParent": "feeStructure" @@ -9760,7 +9934,7 @@ "config": true }, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Parameters->" }, "propertyNameAtParent": "snapshots" @@ -9793,7 +9967,7 @@ "config": true }, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Parameters->Learning Parameters->" }, "propertyNameAtParent": "heartbeats" @@ -9826,7 +10000,7 @@ "config": true }, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Learning Parameters->" }, "propertyNameAtParent": "learningAlgorithm" @@ -9859,7 +10033,7 @@ "config": true }, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Parameters->Learning Parameters->" }, "propertyNameAtParent": "userDefinedParameters" @@ -9892,7 +10066,7 @@ "config": true }, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Indicator Bot Instance->" }, "propertyNameAtParent": "timeFramesFilter" @@ -9965,13 +10139,13 @@ "config": true }, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Trading System->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Process Instance->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "tradingParameters", "type": "node", @@ -10066,13 +10240,13 @@ "config": true }, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Trading System->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Process Instance->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "tradingParameters", "type": "node", @@ -10117,10 +10291,10 @@ ], "addLeftIcons": true, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Task->" }, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Exchange Account Key->" }, "propertyNameAtParent": "keyReference" @@ -10193,13 +10367,13 @@ "config": "{ \n\"folderName\": \"Your-Session-Folder-Name\"\n}" }, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Trading System->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Process Instance->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "tradingParameters", "type": "node", @@ -10294,13 +10468,13 @@ "config": "{ \n\"folderName\": \"Your-Session-Folder-Name\"\n}" }, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Trading System->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Learning Process Instance->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "learningParameters", "type": "node", @@ -10363,10 +10537,10 @@ "config": "{ \n\"startDate\": \"2020-01-01\"\n}" }, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Task->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "processes", "type": "array", @@ -10420,10 +10594,10 @@ "config": "{}" }, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Task->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "processes", "type": "array", @@ -10487,7 +10661,7 @@ "initialValues": { "config": "{ \n\"codeName\": \"Type a name with no spaces or dashes\"\n}" }, - "properties": [ + "childrenNodesProperties": [ { "name": "sensorBots", "type": "array", @@ -10548,7 +10722,7 @@ "initialValues": { "config": "{ \n\"codeName\": \"Type a name with no spaces or dashes\"\n}" }, - "properties": [ + "childrenNodesProperties": [ { "name": "tradingBots", "type": "array", @@ -10604,7 +10778,7 @@ "initialValues": { "config": "{ \n\"codeName\": \"Type a name with no spaces or dashes\"\n}" }, - "properties": [ + "childrenNodesProperties": [ { "name": "learningBots", "type": "array", @@ -10659,10 +10833,10 @@ "config": "{ \n \"codeName\": \"\"\n}" }, "level": 1, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Data Mine->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "processes", "type": "array", @@ -10714,10 +10888,10 @@ "config": "{ \n \"codeName\": \"Multi-Period-Market|Daily\", \n \"normalWaitTime\": 0, \n \"retryWaitTime\": 10000, \n \"framework\": { \n \"name\": \"Multi-Period-Market|Daily\" \n }\n}" }, "level": 1, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Sensor Bot->Indicator Bot->Trading Bot->Learning Bot->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "processOutput", "type": "node", @@ -10787,10 +10961,10 @@ ], "addLeftIcons": true, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Process Definition->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "outputDatasets", "type": "array", @@ -10848,10 +11022,10 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Process Definition->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "statusDependencies", "type": "array", @@ -10907,10 +11081,10 @@ "Use Reference Parent Parent" ], "level": 3, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Status Report->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Process Dependencies->" }, "propertyNameAtParent": "statusDependencies" @@ -10930,7 +11104,7 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Process Definition->" }, "propertyNameAtParent": "statusReport" @@ -10955,10 +11129,10 @@ ], "addLeftIcons": true, "level": 3, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Execution Finished Event->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Process Definition->Trading Process Instance->Learning Process Instance->" }, "propertyNameAtParent": "executionStartedEvent" @@ -10978,7 +11152,7 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Process Definition->" }, "propertyNameAtParent": "executionFinishedEvent" @@ -11010,10 +11184,10 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Process Output->Output Dataset Folder->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "outputDatasets", "type": "array", @@ -11056,10 +11230,10 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Bot->Learning Bot->Product Definition Folder->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "products", "type": "array", @@ -11125,13 +11299,13 @@ "config": "{ \n \"codeName\": \"Product-Name\", \n \"singularVariableName\": \"productName\", \n \"pluralVariableName\": \"productNames\"\n}" }, "level": 3, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Plotter Module->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Sensor Bot->Indicator Bot->Trading Bot->Learning Bot->Product Definition Folder->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "datasets", "type": "array", @@ -11187,7 +11361,7 @@ "config": "{ \n\"configuration\": \"Get the appropriate configuration from the documentation\"\n}" }, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Product Definition->" }, "propertyNameAtParent": "datasets" @@ -11234,10 +11408,10 @@ "config": "{ \n \"codeName\": \"\"\n}" }, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Data Mine->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "processes", "type": "array", @@ -11273,10 +11447,10 @@ ], "addLeftIcons": true, "level": 3, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Dataset Definition->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Process Output->Output Dataset Folder->" }, "propertyNameAtParent": "outputDatasets" @@ -11301,10 +11475,10 @@ ], "addLeftIcons": true, "level": 3, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Dataset Definition->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Process Dependencies->" }, "propertyNameAtParent": "dataDependencies" @@ -11330,10 +11504,10 @@ ], "addLeftIcons": true, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Product Definition->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "properties", "type": "array", @@ -11357,9 +11531,9 @@ { "action": "Add UI Object", "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "formula", + "propertyToCheckFor": "recordFormula", "label": "Add Formula", - "relatedUiObject": "Formula", + "relatedUiObject": "Record Formula", "actionFunction": "payload.executeAction" }, { @@ -11381,14 +11555,14 @@ "config": true }, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Record Definition->" }, - "properties": [ + "childrenNodesProperties": [ { - "name": "formula", + "name": "recordFormula", "type": "node", - "childType": "Formula" + "childType": "Record Formula" } ], "propertyNameAtParent": "properties" @@ -11422,11 +11596,46 @@ "code": "// Type your formula" }, "level": 4, - "chainAttachesTo": { - "compatibleTypes": "->Target Size In Base Asset->Target Size In Quoted Asset->Target Rate->Phase->Record Property->Simulated Actual Rate->Situation->Indicator Function->" + "attachingRules": { + "compatibleTypes": "->Target Size In Base Asset->Target Size In Quoted Asset->Target Rate->Phase->Simulated Actual Rate->Situation->Indicator Function->" }, "propertyNameAtParent": "formula" }, + { + "type": "Record Formula", + "menuItems": [ + { + "action": "Edit", + "label": "Edit", + "iconPathOn": "javascript-code", + "iconPathOff": "javascript-code", + "dontShowAtFullscreen": true, + "actionFunction": "uiObject.formulaEditor.activate" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "editors": { + "formula": true + }, + "initialValues": { + "code": "// Type your formula" + }, + "level": 4, + "attachingRules": { + "compatibleTypes": "->Record Property->" + }, + "propertyNameAtParent": "recordFormula", + "icon": "bitcoin" + }, { "type": "Announcement Formula", "menuItems": [ @@ -11456,7 +11665,7 @@ "code": "// Type your formula" }, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Announcement->" }, "propertyNameAtParent": "announcementFormula" @@ -11492,10 +11701,10 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Product Definition->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "initialization", "type": "node", @@ -11517,9 +11726,9 @@ { "action": "Add UI Object", "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "javascriptCode", + "propertyToCheckFor": "procedureJavascriptCode", "label": "Add Code", - "relatedUiObject": "Javascript Code", + "relatedUiObject": "Procedure Javascript Code", "actionFunction": "payload.executeAction" }, { @@ -11534,14 +11743,14 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Calculations Procedure->Data Building Procedure->" }, - "properties": [ + "childrenNodesProperties": [ { - "name": "javascriptCode", + "name": "procedureJavascriptCode", "type": "node", - "childType": "Javascript Code", + "childType": "Procedure Javascript Code", "autoAdd": true } ], @@ -11553,9 +11762,9 @@ { "action": "Add UI Object", "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "javascriptCode", + "propertyToCheckFor": "procedureJavascriptCode", "label": "Add Code", - "relatedUiObject": "Javascript Code", + "relatedUiObject": "Procedure Javascript Code", "actionFunction": "payload.executeAction" }, { @@ -11570,14 +11779,14 @@ ], "addLeftIcons": true, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Calculations Procedure->Data Building Procedure->" }, - "properties": [ + "childrenNodesProperties": [ { - "name": "javascriptCode", + "name": "procedureJavascriptCode", "type": "node", - "childType": "Javascript Code", + "childType": "Procedure Javascript Code", "autoAdd": true } ], @@ -11614,10 +11823,10 @@ ], "addLeftIcons": true, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Product Definition->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "loop", "type": "node", @@ -11681,10 +11890,10 @@ "config": "{ \n \"codeName\": \"\"\n}" }, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Mine->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "processes", "type": "array", @@ -11754,10 +11963,10 @@ "config": "{ \n \"codeName\": \"\"\n}" }, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Learning Mine->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "processes", "type": "array", @@ -11815,10 +12024,10 @@ "config": "{ \n \"codeName\": \"\"\n}" }, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Data Mine->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "modules", "type": "array", @@ -11871,7 +12080,7 @@ "initialValues": { "config": "{ \n \"codeName\": \"\"\n}" }, - "properties": [ + "childrenNodesProperties": [ { "name": "tradingStrategies", "type": "array", @@ -11908,10 +12117,10 @@ "isTitleAllwaysVisible": true, "addLeftIcons": true, "level": 1, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading System->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "triggerStage", "type": "node", @@ -11966,10 +12175,10 @@ ], "addLeftIcons": true, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Strategy->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "triggerOn", "type": "node", @@ -12023,10 +12232,10 @@ ], "addLeftIcons": true, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trigger Stage->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "situations", "type": "array", @@ -12068,10 +12277,10 @@ ], "addLeftIcons": true, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trigger Stage->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "situations", "type": "array", @@ -12113,10 +12322,10 @@ ], "addLeftIcons": true, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trigger Stage->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "situations", "type": "array", @@ -12158,10 +12367,10 @@ ], "addLeftIcons": true, "level": 1, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Strategy->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "initialTargets", "type": "node", @@ -12215,10 +12424,10 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Open Stage->Close Stage->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "situations", "type": "array", @@ -12254,10 +12463,10 @@ ], "addLeftIcons": true, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Open Stage->Close Stage->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "targetRate", "type": "node", @@ -12300,10 +12509,10 @@ ], "addLeftIcons": true, "level": 1, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Manage Stage->Initial Definition->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "phases", "type": "array", @@ -12357,10 +12566,10 @@ "addLeftIcons": true, "level": 1, "chainedToSameType": true, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Managed Stop->Managed Take Profit->Phase->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "formula", "type": "node", @@ -12412,10 +12621,10 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Phase->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "situations", "type": "array", @@ -12432,7 +12641,6 @@ }, { "type": "Move To Phase Event", - "docURL": "", "menuItems": [ { "action": "Add UI Object", @@ -12458,13 +12666,13 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Phase->" }, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Phase->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "situations", "type": "array", @@ -12500,10 +12708,10 @@ ], "addLeftIcons": true, "level": 1, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Manage Stage->Initial Definition->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "phases", "type": "array", @@ -12536,10 +12744,10 @@ ], "addLeftIcons": true, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Initial Targets->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "formula", "type": "node", @@ -12572,10 +12780,10 @@ ], "addLeftIcons": true, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Initial Targets->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "formula", "type": "node", @@ -12608,10 +12816,10 @@ ], "addLeftIcons": true, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Initial Targets->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "formula", "type": "node", @@ -12644,10 +12852,10 @@ ], "addLeftIcons": true, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Limit Buy Order->Limit Sell Order->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "formula", "type": "node", @@ -12678,11 +12886,11 @@ ], "addLeftIcons": true, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Open Stage->" }, "propertyNameAtParent": "openExecution", - "properties": [ + "childrenNodesProperties": [ { "name": "executionAlgorithms", "type": "array", @@ -12742,11 +12950,11 @@ }, "addLeftIcons": true, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Open Execution->Close Execution->" }, "propertyNameAtParent": "executionAlgorithms", - "properties": [ + "childrenNodesProperties": [ { "name": "marketBuyOrders", "type": "array", @@ -12813,14 +13021,14 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Execution Algorithm->" }, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Market Order->" }, "propertyNameAtParent": "marketBuyOrders", - "properties": [ + "childrenNodesProperties": [ { "name": "createOrderEvent", "type": "node", @@ -12879,14 +13087,14 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Execution Algorithm->" }, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Market Order->" }, "propertyNameAtParent": "marketSellOrders", - "properties": [ + "childrenNodesProperties": [ { "name": "createOrderEvent", "type": "node", @@ -12961,14 +13169,14 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Execution Algorithm->" }, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Limit Order->" }, "propertyNameAtParent": "limitBuyOrders", - "properties": [ + "childrenNodesProperties": [ { "name": "orderRate", "type": "node", @@ -13054,14 +13262,14 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Execution Algorithm->" }, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Limit Order->" }, "propertyNameAtParent": "limitSellOrders", - "properties": [ + "childrenNodesProperties": [ { "name": "orderRate", "type": "node", @@ -13114,10 +13322,10 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market Buy Order->Market Sell Order->Limit Buy Order->Limit Sell Order->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "situations", "type": "array", @@ -13159,10 +13367,10 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market Buy Order->Market Sell Order->Limit Buy Order->Limit Sell Order->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "situations", "type": "array", @@ -13216,10 +13424,10 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market Buy Order->Market Sell Order->Limit Buy Order->Limit Sell Order->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "simulatedPartialFill", "type": "node", @@ -13269,7 +13477,7 @@ }, "addLeftIcons": true, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Simulated Exchange Events->" }, "propertyNameAtParent": "simulatedPartialFill" @@ -13297,10 +13505,10 @@ ], "addLeftIcons": true, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Simulated Exchange Events->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "formula", "type": "node", @@ -13338,7 +13546,7 @@ }, "addLeftIcons": true, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Simulated Exchange Events->" }, "propertyNameAtParent": "simulatedFeesPaid" @@ -13370,10 +13578,10 @@ ], "addLeftIcons": true, "level": 1, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Strategy->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "managedStopLoss", "type": "node", @@ -13421,10 +13629,10 @@ ], "addLeftIcons": true, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Strategy->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "initialTargets", "type": "node", @@ -13472,11 +13680,11 @@ ], "addLeftIcons": true, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Close Stage->" }, "propertyNameAtParent": "closeExecution", - "properties": [ + "childrenNodesProperties": [ { "name": "executionAlgorithms", "type": "array", @@ -13505,10 +13713,10 @@ ], "addLeftIcons": true, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Backtesting Session->Live Trading Session->Paper Trading Session->Forward Testing Session->Learning Session->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "bots", "type": "array", @@ -13546,10 +13754,10 @@ }, "addLeftIcons": true, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Social Bots->" }, - "properties": [], + "childrenNodesProperties": [], "propertyNameAtParent": "bots" }, { @@ -13596,10 +13804,10 @@ }, "addLeftIcons": true, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trigger On Event->Trigger Off Event->Take Position Event->Next Phase Event->Move To Phase Event->Phase->Trigger Stage->Open Stage->Manage Stage->Close Stage->Create Order Event->Cancel Order Event->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "announcementFormula", "type": "node", @@ -13643,7 +13851,7 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Announcement->" }, "propertyNameAtParent": "announcementCondition" @@ -13667,7 +13875,7 @@ "isHierarchyHead": true, "addLeftIcons": true, "level": 0, - "properties": [ + "childrenNodesProperties": [ { "name": "cryptoExchanges", "type": "array", @@ -13703,10 +13911,10 @@ "isTitleAllwaysVisible": false, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Crypto Ecosystem->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "superActions", "type": "array", @@ -13735,11 +13943,11 @@ ], "addLeftIcons": true, "level": 1, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Crypto Ecosystem->" }, "propertyNameAtParent": "signalsProviders", - "properties": [ + "childrenNodesProperties": [ { "name": "signalsProviders", "type": "array", @@ -13780,7 +13988,7 @@ ], "addLeftIcons": true, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Signals Providers->" }, "editors": { @@ -13790,7 +13998,7 @@ "config": "{ \n\"webhookURL\": \"Webhook/New-Message/Trading-View/Binance/BTC-USDT\",\n\"testMessage\": \"\" \n}" }, "propertyNameAtParent": "signalsProviders", - "properties": [] + "childrenNodesProperties": [] }, { "type": "Crypto Exchanges", @@ -13823,11 +14031,11 @@ "isTitleAllwaysVisible": true, "addLeftIcons": true, "level": 1, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Crypto Ecosystem->" }, "propertyNameAtParent": "cryptoExchanges", - "properties": [ + "childrenNodesProperties": [ { "name": "exchanges", "type": "array", @@ -13889,11 +14097,11 @@ "initialValues": { "config": "{ \n\"codeName\": \"Type the name of the exchange\"\n}" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Crypto Exchanges->" }, "propertyNameAtParent": "exchanges", - "properties": [ + "childrenNodesProperties": [ { "name": "exchangeAssets", "type": "node", @@ -13999,11 +14207,11 @@ }, "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Crypto Exchange->" }, "propertyNameAtParent": "exchangeAssets", - "properties": [ + "childrenNodesProperties": [ { "name": "assets", "type": "array", @@ -14040,7 +14248,7 @@ "initialValues": { "config": "{ \n\"codeName\": \"Type the code name of the asset\"\n}" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Exchange Assets->" }, "propertyNameAtParent": "assets", @@ -14141,11 +14349,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Crypto Exchange->" }, "propertyNameAtParent": "exchangeMarkets", - "properties": [ + "childrenNodesProperties": [ { "name": "markets", "type": "array", @@ -14207,7 +14415,7 @@ "actionFunction": "payload.executeAction" } ], - "properties": [ + "childrenNodesProperties": [ { "name": "baseAsset", "type": "node", @@ -14230,7 +14438,7 @@ "initialValues": { "config": "{ \n\"codeName\": \"Type the name of the market\"\n}" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Exchange Markets->" }, "propertyNameAtParent": "markets" @@ -14256,11 +14464,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Crypto Exchange->" }, "propertyNameAtParent": "exchangeAccounts", - "properties": [ + "childrenNodesProperties": [ { "name": "userAccounts", "type": "array", @@ -14301,11 +14509,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Exchange Accounts->" }, "propertyNameAtParent": "userAccounts", - "properties": [ + "childrenNodesProperties": [ { "name": "userAssets", "type": "node", @@ -14342,11 +14550,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->User Account->" }, "propertyNameAtParent": "userAssets", - "properties": [ + "childrenNodesProperties": [ { "name": "assets", "type": "array", @@ -14376,11 +14584,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->User Account->" }, "propertyNameAtParent": "userKeys", - "properties": [ + "childrenNodesProperties": [ { "name": "keys", "type": "array", @@ -14406,10 +14614,10 @@ "isTitleAllwaysVisible": true, "addLeftIcons": true, "level": 4, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Asset->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->User Assets->" }, "title": [ @@ -14448,7 +14656,7 @@ "config": true }, "level": 4, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->User Keys->" }, "propertyNameAtParent": "keys", @@ -14486,7 +14694,7 @@ "isHierarchyHead": true, "addLeftIcons": true, "level": 0, - "properties": [ + "childrenNodesProperties": [ { "name": "spaceStyle", "type": "node", @@ -14505,14 +14713,14 @@ "type": "Space Style", "level": 4, "propertyNameAtParent": "spaceStyle", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Charting Space->Design Space->" }, "editors": { "config": true }, "initialValues": { - "config": "{ \n\"backgroundColor\": \"UI_COLOR.BLACK\"\n}" + "config": "{\"backgroundColor\":\"UI_COLOR.BLACK\",\"node\":{\"fontSize\":16,\"imageSize\":60,\"type\":{\"fontColor\":\"UI_COLOR.WHITE\"},\"name\":{\"fontColor\":\"UI_COLOR.WHITE\"},\"menuItem\":{\"backgroundColor\":\"UI_COLOR.BLACK\",\"fontColor\":\"UI_COLOR.WHITE\",\"fontSize\":14,\"imageSize\":14}}}" }, "menuItems": [ { @@ -14538,14 +14746,14 @@ "type": "Space Settings", "level": 4, "propertyNameAtParent": "spaceSettings", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Charting Space->Design Space->" }, "editors": { "config": true }, "initialValues": { - "config": "{ \n\"distanceBetweenNodes\": 500\n}" + "config": "{\"node\":{\"distancePercentage\":60,\"radiusPercentage\":85,\"massPercentage\":100,\"animationSteps\":2,\"menuItem\":{\"widthPercentage\":100,\"heightPercentage\":60,\"radiusPercentage\":90}},\"physics\":false}" }, "menuItems": [ { @@ -14622,7 +14830,7 @@ "isHierarchyHead": true, "addLeftIcons": true, "level": 0, - "properties": [ + "childrenNodesProperties": [ { "name": "viewport", "type": "node", @@ -14644,7 +14852,7 @@ { "name": "projectDashboards", "type": "array", - "childType": "Project Dashboards" + "childType": "Project Dashboards" } ] }, @@ -14682,11 +14890,11 @@ "alternativeIcons": "Use Reference Parent Parent", "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Project Definition->" }, "propertyNameAtParent": "projectDashboards", - "properties": [ + "childrenNodesProperties": [ { "name": "dashboards", "type": "array", @@ -14725,14 +14933,14 @@ ], "addLeftIcons": true, "level": 1, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Testing Trading Tasks->Production Trading Tasks->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Project Dashboards->" }, "propertyNameAtParent": "dashboards", - "properties": [ + "childrenNodesProperties": [ { "name": "timeMachines", "type": "array", @@ -14800,14 +15008,14 @@ }, "level": 1, "isTitleAllwaysVisible": true, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Backtesting Session->Paper Trading Session->Forward Testing Session->Live Trading Session->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Dashboard->Template Structure->" }, "propertyNameAtParent": "timeMachines", - "properties": [ + "childrenNodesProperties": [ { "name": "timeScale", "type": "node", @@ -14854,7 +15062,7 @@ "config": true }, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Charting Space->" }, "propertyNameAtParent": "viewport" @@ -14888,7 +15096,7 @@ "config": true }, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Time Machine->" }, "propertyNameAtParent": "timeScale" @@ -14922,7 +15130,7 @@ "config": true }, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Time Machine->Timeline Chart->" }, "propertyNameAtParent": "rateScale" @@ -14956,7 +15164,7 @@ "config": true }, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Time Machine->Timeline Chart->" }, "propertyNameAtParent": "timeFrameScale" @@ -15001,14 +15209,14 @@ "addLeftIcons": true, "level": 2, "isTitleAllwaysVisible": true, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Market->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Time Machine->" }, "propertyNameAtParent": "timelineCharts", - "properties": [ + "childrenNodesProperties": [ { "name": "rateScale", "type": "node", @@ -15080,14 +15288,14 @@ "config": "{ \n\"visibleLayers\": 5\n}" }, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Timeline Chart->" }, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Data Mine Products->Trading Mine Products->Learning Mine Products->" }, "propertyNameAtParent": "layerManager", - "properties": [ + "childrenNodesProperties": [ { "name": "layers", "type": "array", @@ -15141,14 +15349,14 @@ "title": [ "Use Reference Parent" ], - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Data Product->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Layer Manager->Bot Layers->Layer Folder->" }, "propertyNameAtParent": "layers", - "properties": [ + "childrenNodesProperties": [ { "name": "layerPanels", "type": "node", @@ -15188,11 +15396,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Layer->" }, "propertyNameAtParent": "layerPanels", - "properties": [ + "childrenNodesProperties": [ { "name": "layerPanels", "type": "array", @@ -15233,14 +15441,14 @@ }, "addLeftIcons": true, "level": 3, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Plotter Panel->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Layer Panels->" }, "propertyNameAtParent": "layerPanels", - "properties": [], + "childrenNodesProperties": [], "icon": "under-construction" }, { @@ -15270,11 +15478,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Layer->" }, "propertyNameAtParent": "layerPolygons", - "properties": [ + "childrenNodesProperties": [ { "name": "layerPolygons", "type": "array", @@ -15315,14 +15523,14 @@ }, "addLeftIcons": true, "level": 3, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Polygon->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Layer Polygons->" }, "propertyNameAtParent": "layerPolygons", - "properties": [], + "childrenNodesProperties": [], "icon": "under-construction" }, { @@ -15352,11 +15560,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Layer Manager->" }, "propertyNameAtParent": "botLayers", - "properties": [ + "childrenNodesProperties": [ { "name": "layers", "type": "array", @@ -15398,11 +15606,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Layer Folder->Bot Layers->" }, "propertyNameAtParent": "layerFolders", - "properties": [ + "childrenNodesProperties": [ { "name": "layers", "type": "array", @@ -15456,11 +15664,11 @@ ], "addLeftIcons": true, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Network Node->" }, "propertyNameAtParent": "dataStorage", - "properties": [ + "childrenNodesProperties": [ { "name": "dataMinesData", "type": "node", @@ -15531,10 +15739,10 @@ ], "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Data Mine->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market Data Tasks->" }, "alternativeIcons": "Use Reference Parent", @@ -15543,7 +15751,7 @@ ], "isTitleAllwaysVisible": true, "propertyNameAtParent": "dataMineTasks", - "properties": [ + "childrenNodesProperties": [ { "name": "taskManagers", "type": "array", @@ -15602,10 +15810,10 @@ ], "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Trading Mine->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market Trading Tasks->" }, "alternativeIcons": "Use Reference Parent", @@ -15614,7 +15822,7 @@ ], "isTitleAllwaysVisible": true, "propertyNameAtParent": "tradingMineTasks", - "properties": [ + "childrenNodesProperties": [ { "name": "taskManagers", "type": "array", @@ -15673,10 +15881,10 @@ ], "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Learning Mine->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market Learning Tasks->" }, "alternativeIcons": "Use Reference Parent", @@ -15685,7 +15893,7 @@ ], "isTitleAllwaysVisible": true, "propertyNameAtParent": "learningMineTasks", - "properties": [ + "childrenNodesProperties": [ { "name": "taskManagers", "type": "array", @@ -15744,10 +15952,10 @@ ], "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Market->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Exchange Data Tasks->" }, "alternativeIcons": "Use Reference Parent", @@ -15757,7 +15965,7 @@ ], "isTitleAllwaysVisible": true, "propertyNameAtParent": "marketDataTasks", - "properties": [ + "childrenNodesProperties": [ { "name": "dataMineTasks", "type": "array", @@ -15816,10 +16024,10 @@ ], "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Market->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Exchange Trading Tasks->" }, "alternativeIcons": "Use Reference Parent", @@ -15829,7 +16037,7 @@ ], "isTitleAllwaysVisible": true, "propertyNameAtParent": "marketTradingTasks", - "properties": [ + "childrenNodesProperties": [ { "name": "tradingMineTasks", "type": "array", @@ -15888,10 +16096,10 @@ ], "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Market->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Exchange Learning Tasks->" }, "alternativeIcons": "Use Reference Parent", @@ -15901,7 +16109,7 @@ ], "isTitleAllwaysVisible": true, "propertyNameAtParent": "marketLearningTasks", - "properties": [ + "childrenNodesProperties": [ { "name": "learningMineTasks", "type": "array", @@ -15960,10 +16168,10 @@ ], "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Crypto Exchange->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Project Data Tasks->" }, "alternativeIcons": "Use Reference Parent", @@ -15972,7 +16180,7 @@ ], "isTitleAllwaysVisible": true, "propertyNameAtParent": "exchangeDataTasks", - "properties": [ + "childrenNodesProperties": [ { "name": "marketDataTasks", "type": "array", @@ -16031,10 +16239,10 @@ ], "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Crypto Exchange->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Project Trading Tasks->" }, "alternativeIcons": "Use Reference Parent", @@ -16043,7 +16251,7 @@ ], "isTitleAllwaysVisible": true, "propertyNameAtParent": "exchangeTradingTasks", - "properties": [ + "childrenNodesProperties": [ { "name": "marketTradingTasks", "type": "array", @@ -16102,10 +16310,10 @@ ], "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Crypto Exchange->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Project Learning Tasks->" }, "alternativeIcons": "Use Reference Parent", @@ -16114,7 +16322,7 @@ ], "isTitleAllwaysVisible": true, "propertyNameAtParent": "exchangeLearningTasks", - "properties": [ + "childrenNodesProperties": [ { "name": "marketLearningTasks", "type": "array", @@ -16177,14 +16385,14 @@ "alternativeIcons": "Use Reference Parent Parent", "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Project Definition->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Data Tasks->" }, "propertyNameAtParent": "projectDataTasks", - "properties": [ + "childrenNodesProperties": [ { "name": "exchangeDataTasks", "type": "array", @@ -16244,11 +16452,11 @@ ], "addLeftIcons": true, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Network Node->" }, "propertyNameAtParent": "dataTasks", - "properties": [ + "childrenNodesProperties": [ { "name": "projectDataTasks", "type": "array", @@ -16311,14 +16519,14 @@ "alternativeIcons": "Use Reference Parent Parent", "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Project Definition->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Learning Tasks->" }, "propertyNameAtParent": "projectLearningTasks", - "properties": [ + "childrenNodesProperties": [ { "name": "exchangeLearningTasks", "type": "array", @@ -16378,11 +16586,11 @@ ], "addLeftIcons": true, "level": 2, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Network Node->" }, "propertyNameAtParent": "learningTasks", - "properties": [ + "childrenNodesProperties": [ { "name": "projectLearningTasks", "type": "array", @@ -16445,14 +16653,14 @@ "alternativeIcons": "Use Reference Parent Parent", "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Project Definition->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Testing Trading Tasks->Production Trading Tasks->" }, "propertyNameAtParent": "projectTradingTasks", - "properties": [ + "childrenNodesProperties": [ { "name": "exchangeTradingTasks", "type": "array", @@ -16512,11 +16720,11 @@ ], "addLeftIcons": true, "level": 0, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Network Node->" }, "propertyNameAtParent": "testingTradingTasks", - "properties": [ + "childrenNodesProperties": [ { "name": "projectTradingTasks", "type": "array", @@ -16575,11 +16783,11 @@ ], "addLeftIcons": true, "level": 0, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Network Node->" }, "propertyNameAtParent": "productionTradingTasks", - "properties": [ + "childrenNodesProperties": [ { "name": "projectTradingTasks", "type": "array", @@ -16623,14 +16831,14 @@ "isTitleAllwaysVisible": true, "addLeftIcons": true, "level": 3, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Crypto Exchange->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Project Data Products->" }, "propertyNameAtParent": "exchangeDataProducts", - "properties": [ + "childrenNodesProperties": [ { "name": "marketDataProducts", "type": "array", @@ -16668,11 +16876,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Data Storage->" }, "propertyNameAtParent": "dataMinesData", - "properties": [ + "childrenNodesProperties": [ { "name": "projectDataProducts", "type": "array", @@ -16714,21 +16922,21 @@ "alternativeIcons": "Use Reference Parent Parent", "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Project Definition->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Data Mines Data->" }, "propertyNameAtParent": "projectDataProducts", - "properties": [ + "childrenNodesProperties": [ { "name": "exchangeDataProducts", "type": "array", "childType": "Exchange Data Products" } ], - "icon":"bitcoin" + "icon": "bitcoin" }, { "type": "Project Trading Products", @@ -16764,21 +16972,21 @@ "alternativeIcons": "Use Reference Parent Parent", "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Project Definition->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Mines Data->" }, "propertyNameAtParent": "projectTradingProducts", - "properties": [ + "childrenNodesProperties": [ { "name": "exchangeTradingProducts", "type": "array", "childType": "Exchange Trading Products" } ], - "icon":"bitcoin" + "icon": "bitcoin" }, { "type": "Project Learning Products", @@ -16814,21 +17022,21 @@ "alternativeIcons": "Use Reference Parent Parent", "addLeftIcons": true, "level": 2, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Project Definition->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Learning Mines Data->" }, "propertyNameAtParent": "projectLearningProducts", - "properties": [ + "childrenNodesProperties": [ { "name": "exchangeLearningProducts", "type": "array", "childType": "Exchange Learning Products" } ], - "icon":"bitcoin" + "icon": "bitcoin" }, { "type": "Exchange Trading Products", @@ -16865,14 +17073,14 @@ "isTitleAllwaysVisible": true, "addLeftIcons": true, "level": 3, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Crypto Exchange->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Project Trading Products->" }, "propertyNameAtParent": "exchangeTradingProducts", - "properties": [ + "childrenNodesProperties": [ { "name": "marketTradingProducts", "type": "array", @@ -16916,14 +17124,14 @@ "isTitleAllwaysVisible": true, "addLeftIcons": true, "level": 3, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Crypto Exchange->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Project Learning Products->" }, "propertyNameAtParent": "exchangeLearningProducts", - "properties": [ + "childrenNodesProperties": [ { "name": "marketLearningProducts", "type": "array", @@ -16962,11 +17170,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Data Storage->" }, "propertyNameAtParent": "tradingMinesData", - "properties": [ + "childrenNodesProperties": [ { "name": "projectTradingProducts", "type": "array", @@ -17004,11 +17212,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Data Storage->" }, "propertyNameAtParent": "learningMinesData", - "properties": [ + "childrenNodesProperties": [ { "name": "projectLearningProducts", "type": "array", @@ -17059,14 +17267,14 @@ "addLeftIcons": true, "level": 3, "alternativeIcons": "Use Reference Parent", - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Backtesting Session->Paper Trading Session->Forward Testing Session->Live Trading Session->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market Trading Products->" }, "propertyNameAtParent": "tradingSessionReferences", - "properties": [ + "childrenNodesProperties": [ { "name": "dataProducts", "type": "array", @@ -17124,14 +17332,14 @@ "addLeftIcons": true, "level": 3, "alternativeIcons": "Use Reference Parent", - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Learning Session->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market Learning Products->" }, "propertyNameAtParent": "learningSessionReferences", - "properties": [ + "childrenNodesProperties": [ { "name": "dataProducts", "type": "array", @@ -17187,14 +17395,14 @@ "Use Reference Parent Parent Parent", "Use Reference Parent" ], - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Market->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Exchange Data Products->" }, "propertyNameAtParent": "marketDataProducts", - "properties": [ + "childrenNodesProperties": [ { "name": "dataProducts", "type": "array", @@ -17244,14 +17452,14 @@ "Use Reference Parent Parent Parent", "Use Reference Parent" ], - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Market->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Exchange Trading Products->" }, "propertyNameAtParent": "marketTradingProducts", - "properties": [ + "childrenNodesProperties": [ { "name": "tradingSessionReferences", "type": "array", @@ -17294,14 +17502,14 @@ "Use Reference Parent Parent Parent", "Use Reference Parent" ], - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Market->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Exchange Learning Products->" }, "propertyNameAtParent": "marketLearningProducts", - "properties": [ + "childrenNodesProperties": [ { "name": "learningSessionReferences", "type": "array", @@ -17328,14 +17536,14 @@ "title": [ "Use Reference Parent" ], - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Product Definition->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market Data Products->Data Product Folder->Bot Products->Trading Session Reference->" }, "propertyNameAtParent": "dataProducts", - "properties": [] + "childrenNodesProperties": [] }, { "type": "Data Mine Products", @@ -17371,14 +17579,14 @@ "title": [ "Use Reference Parent" ], - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Data Mine->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Market Data Products->" }, "propertyNameAtParent": "dataMineProducts", - "properties": [ + "childrenNodesProperties": [ { "name": "botProducts", "type": "array", @@ -17421,14 +17629,14 @@ "title": [ "Use Reference Parent" ], - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Trading Mine->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Trading Session Reference->" }, "propertyNameAtParent": "tradingMineProducts", - "properties": [ + "childrenNodesProperties": [ { "name": "botProducts", "type": "array", @@ -17471,14 +17679,14 @@ "title": [ "Use Reference Parent" ], - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Learning Mine->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Learning Session Reference->" }, "propertyNameAtParent": "learningMineProducts", - "properties": [ + "childrenNodesProperties": [ { "name": "botProducts", "type": "array", @@ -17514,11 +17722,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Data Mine Products->Trading Mine Products->Learning Mine Products->" }, "propertyNameAtParent": "botProducts", - "properties": [ + "childrenNodesProperties": [ { "name": "dataProducts", "type": "array", @@ -17560,11 +17768,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Data Product Folder->Bot Products->" }, "propertyNameAtParent": "dataProductFolders", - "properties": [ + "childrenNodesProperties": [ { "name": "dataProducts", "type": "array", @@ -17605,7 +17813,7 @@ "addLeftIcons": true, "level": 0, "propertyNameAtParent": "plugins", - "properties": [ + "childrenNodesProperties": [ { "name": "pluginProjects", "type": "array", @@ -17649,10 +17857,10 @@ "addLeftIcons": true, "level": 1, "propertyNameAtParent": "pluginProjects", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plugins->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "pluginDataMines", "type": "node", @@ -17726,10 +17934,10 @@ "addLeftIcons": true, "level": 1, "propertyNameAtParent": "pluginDataMines", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plugin Project->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "pluginFiles", "type": "array", @@ -17763,10 +17971,10 @@ "addLeftIcons": true, "level": 1, "propertyNameAtParent": "pluginTradingMines", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plugin Project->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "pluginFiles", "type": "array", @@ -17800,10 +18008,10 @@ "addLeftIcons": true, "level": 1, "propertyNameAtParent": "pluginTradingSystems", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plugin Project->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "pluginFiles", "type": "array", @@ -17837,10 +18045,10 @@ "addLeftIcons": true, "level": 1, "propertyNameAtParent": "pluginTradingEngines", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plugin Project->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "pluginFiles", "type": "array", @@ -17874,10 +18082,10 @@ "addLeftIcons": true, "level": 1, "propertyNameAtParent": "pluginSuperScripts", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plugin Project->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "pluginFiles", "type": "array", @@ -17911,10 +18119,10 @@ "addLeftIcons": true, "level": 1, "propertyNameAtParent": "pluginTutorials", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plugin Project->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "pluginFiles", "type": "array", @@ -17947,10 +18155,10 @@ "addLeftIcons": true, "level": 2, "propertyNameAtParent": "pluginFiles", - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Plugin Tutorials->Plugin Super Scripts->Plugin Trading Engines->Plugin Trading Systems->Plugin Trading Mines->Plugin Data Mines->" }, - "properties": [ + "childrenNodesProperties": [ { "name": "pluginFilePosition", "type": "node", @@ -17978,7 +18186,7 @@ "addLeftIcons": true, "level": 3, "propertyNameAtParent": "pluginFilePosition", - "properties": [] + "childrenNodesProperties": [] }, { "type": "Tutorial", @@ -18046,7 +18254,7 @@ "addLeftIcons": true, "level": 0, "propertyNameAtParent": "tutorials", - "properties": [ + "childrenNodesProperties": [ { "name": "tutorialSteps", "type": "array", @@ -18113,17 +18321,17 @@ "initialValues": { "config": "{ \n\"title\": \"\",\n \"summary\": \"\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": \n[\n [\"\", \"\"], \n[\"\", \"\"], \n[\"\", \"\"] \n],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}" }, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->*Any Node*->", "incompatibleTypes": "->Tutorial->Tutorial Topic->Tutorial Step->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Tutorial->Tutorial Topic->" }, "addLeftIcons": true, "level": 1, "propertyNameAtParent": "tutorialTopics", - "properties": [ + "childrenNodesProperties": [ { "name": "tutorialSteps", "type": "array", @@ -18178,17 +18386,17 @@ "initialValues": { "config": "{ \n \"subTitle\": \"\",\n \"gif\": \"\",\n \"image\": \"\",\n \"definition\": \"\",\n \"bulletListIntro\": \"\",\n \"bulletArray\": \n[\n [\"\", \"\"], \n[\"\", \"\"], \n[\"\", \"\"] \n],\n \"paragraph1\": \"\",\n \"callOut\": \"\",\n \"externalLink\": [\"\", \"\"],\n \"paragraph2\": \"\",\n \"note\": \"\",\n \"tip\": \"\",\n \"important\": \"\",\n \"warning\": \"\", \n \"position\": \"\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"documentationURL\": \"\" \n}" }, - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->*Any Node*->", "incompatibleTypes": "->Tutorial Topic->Tutorial Step->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Tutorial->Tutorial Topic->" }, "addLeftIcons": true, "level": 2, "propertyNameAtParent": "tutorialSteps", - "properties": [] + "childrenNodesProperties": [] }, { "type": "Data Mine Data Dependencies", @@ -18224,14 +18432,14 @@ "title": [ "Use Reference Parent" ], - "referenceAttachesTo": { + "referencingRules": { "compatibleTypes": "->Data Mine->" }, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Process Dependencies->" }, "propertyNameAtParent": "dataMineDataDependencies", - "properties": [ + "childrenNodesProperties": [ { "name": "botDataDependencies", "type": "array", @@ -18267,11 +18475,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Data Mine Data Dependencies->" }, "propertyNameAtParent": "botDataDependencies", - "properties": [ + "childrenNodesProperties": [ { "name": "dataDependencies", "type": "array", @@ -18313,11 +18521,11 @@ ], "addLeftIcons": true, "level": 3, - "chainAttachesTo": { + "attachingRules": { "compatibleTypes": "->Data Dependency Folder->Bot Data Dependencies->" }, "propertyNameAtParent": "dataDependencyFolders", - "properties": [ + "childrenNodesProperties": [ { "name": "dataDependencies", "type": "array", diff --git a/Projects/Superalgos/Schemas/ConceptSchema.json b/Projects/Superalgos/Schemas/ConceptSchema.json deleted file mode 100644 index efeeaa440..000000000 --- a/Projects/Superalgos/Schemas/ConceptSchema.json +++ /dev/null @@ -1,8 +0,0 @@ -[ - { - "type": "Concept 1", - "definition": "This is concept 1 definition" - } -] - - diff --git a/Projects/Superalgos/Schemas/DocSchema.json b/Projects/Superalgos/Schemas/DocSchema.json deleted file mode 100644 index 67631b397..000000000 --- a/Projects/Superalgos/Schemas/DocSchema.json +++ /dev/null @@ -1 +0,0 @@ -[{"type":"Plotter Module","definition":"A plotter module is a device within a plotter that contains the definitions to create the visualization for a product definition.","content":["\r","\r","A single plotter may have several modules. Different modules may be used to plot each product of the bot, or as best suits the expected use-pattern.\r","\r","[![Plotter-Module-01](https://user-images.githubusercontent.com/13994516/71016077-eab41180-20f4-11ea-87e7-7262ff10a1ab.gif)](https://user-images.githubusercontent.com/13994516/71016077-eab41180-20f4-11ea-87e7-7262ff10a1ab.gif)\r","\r","{% include important.html content=\"For a bot to use a plotter, the corresponding product definition must establish a reference with the plotter module built to interpret the dataset.\" %}\r","\r","[![Plotter-Module-02-Product-Link](https://user-images.githubusercontent.com/13994516/71016079-eab41180-20f4-11ea-8afb-96321f9c68d8.gif)](https://user-images.githubusercontent.com/13994516/71016079-eab41180-20f4-11ea-8afb-96321f9c68d8.gif)\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a plotter module, select *Add Plotter Module* on the plotter node menu.\r","\r"],"configuring":["\r","\r","Select *Configure Plotter Module* on the menu to access the configuration.\r","\r","```json\r","{\r"," \"codeName\": \"Module Name\",\r"," \"isLegacy\": true,\r"," \"icon\": \"histogram\"\r","}\r","```\r","\r","* ```codeName``` is the name used in the code to refer to the module.\r","\r","* ```isLegacy``` is ```true``` for plotters modules developed entirely in JavaScript, and is ```false``` or doesn't show in the configuration for plotters built with the tools featured in the data mine hierarchy.\r","\r","* ```icon``` is the name of the image that illustrates the corresponding layer in the Layers Panel. In case the banner is not specified, the *default banner* is used. Current possible values are:\r","\r","\r","| Value | Image|\r","| :---: | :---: |\r","| ```default``` | ![Default-Banner](https://user-images.githubusercontent.com/13994516/70896073-5bbdd100-1ff0-11ea-84e3-5bd90475976f.png) |\r","| ```histogram``` | ![Histogram-Banner](https://user-images.githubusercontent.com/13994516/70896074-5bbdd100-1ff0-11ea-8dad-ccc6cfe64beb.png) |\r","| ```band``` | ![Bands-Banner](https://user-images.githubusercontent.com/13994516/70896072-5bbdd100-1ff0-11ea-8626-61c36bd22a3c.png) |\r","| ```moving-average``` | ![Moving-Average-Banner](https://user-images.githubusercontent.com/13994516/70896075-5bbdd100-1ff0-11ea-9909-dae33e57f65f.png) |\r","| ```oscillator``` | ![Oscillator-Banner](https://user-images.githubusercontent.com/13994516/70896076-5c566780-1ff0-11ea-8a5b-20077257c560.png) |\r","| ```trend``` | ![trends-banner](https://user-images.githubusercontent.com/13994516/70989177-744aeb80-20c3-11ea-88f5-d10473fa79b9.png) |\r","\r","Custom images may be added too. To do that:\r","\r","1. name the image in the following format: ```image-name.png```;\r","\r","1. place images in the ```WebServer\\Images\\Icons``` folder;\r","\r","1. in the configuration of the module, use the name as is (e.g.: ```\"icon\": \"image-name\"```)\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Nodes Values"},{"type":"Nodes Highlights"},{"type":"Nodes Errors"},{"type":"Nodes Warnings"},{"type":"Nodes Infos"},{"type":"Nodes Status"},{"type":"Nodes Progress"},{"type":"Nodes Running"},{"type":"Nodes Announcements"},{"type":"Record Values"},{"type":"Shapes","definition":"The shapes node contains definitions of polygons and styles to be rendered on a per-period basis over the charts.","content":["\r","\r","A plotter recursively renders graphics for each period or candle. This means that a definition of what shapes need to be drawn for a single period is required. The plotter does the same thing for every period or candle that is visible on the screen at any point in time, for any time frame, as long as the corresponding data is available.\r","\r","[![Shapes-01-show-off](https://user-images.githubusercontent.com/13994516/71016080-eab41180-20f4-11ea-84c6-a514b87d568f.gif)](https://user-images.githubusercontent.com/13994516/71016080-eab41180-20f4-11ea-84c6-a514b87d568f.gif)\r","\r","In general terms, the process of defining what is going to be rendered on the screen consist of the following four steps:\r","\r"," 1. Identifying points defined by ```[x,y]``` coordinates\r"," 2. Defining polygons\r"," 3. Defining default styles\r"," 4. Defining conditional styles\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a shapes node, select *Add Shapes* on the plotter module menu.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Plotter Panel","definition":"A plotter panel usually shows numerical representations of data over the charts on a small window or panel. The plotter panel node features definitions to make that possible.","content":["\r","\r","Beyond the graphic representation of data over the charts, plotters may also feature a *data panel*, that is, a numerical representation of the data showing the exact figures corresponding to the column or period that is in focus (the point of the charts where the mouse pointer is at any point).\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a plotter panel, select *Add Plotter Panel* on the plotter module node menu.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Panel Data","definition":"A panel data node represents a data field to be plotted on the plotter panel.","content":["\r","\r","The system renders a panel featuring a centered, single-column vertical arrangement of data, with a label and a data field right below it. The label of each data field on the panel is given—by default—by the label set for each panel data node.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a panel data node, select *Add Panel Data* on the plotter panel menu.\r","\r"],"configuring":["\r","\r","Select *Configure Panel Data* on the menu to access the configuration.\r","\r","```json\r","{\r"," \"valueDecimals\": 2\r","}\r","```\r","\r","* ```valueDecimals``` sets the number of decimals to be shown on the corresponding data field.\r","\r","To override the default manner in which the data is assembled on the panel, the following properties may be included and defined:\r","\r","```json\r","{\r"," \"labelText\": \"The Label\",\r"," \"labelPosition\": 15,\r"," \"valuePosition\": 20,\r"," \"valueDecimals\": 2\r","}\r","```\r","\r","* ```labelPosition``` and ```valuePosition``` represent the vertical distance of the corresponding fields to the top margin of the panel.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Data Formula","definition":"A data formula is a device used to assign a value to the panel data, usually in the form of the name of the corresponding record property.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a data formula, select *Add Data Formula* on the plotter panel menu.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Javascript Code","definition":"The JavaScript code node may hold any snippet of valid JavaScript.","content":["\r","\r","In the case of the master script, the JavaScript Code node features the code required to run each template script and handle the operations beyond the scope of individual template scripts.\r","\r","In the case of a template script, the JavaScript Code node features the code that deals with the specific scope of the template script only.\r","\r"],"folderName":"super_scripts","adding":["\r","\r","To add a JavaScript code node, select *Add JavaScript Code* on the master script or the template script node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Chart Points","definition":"A chart points groups definitions of coordinate points used to define polygons.","content":["\r","\r","The definition of a point consists of the name of the point and the corresponding values for the ```x``` and ```y``` coordinates. To create such definitions, point and point formulas are used.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a chart points node, select *Add Chart Points* on the shapes menu.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Point","definition":"A point is a definition of an [x,y] coordinate. The value [x] usually represents a datetime. The value [y] may refer to a price or some other concept.","content":["\r","\r","These coordinate points are used to define polygons. Values for ```[x,y]```coordinates are entered with a point formula.\r","\r","{% include tip.html content=\"Each point should be given a significant name so that it is easier to identify them at the time of establishing references with polygon vertices.\" %}\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a point, select *Add Point* on the chart points node menu.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Point Formula","definition":"A point formula is a node used to input the [x,y] coordinates of a point.","content":["\r","\r","To represent some form of variation of the price or a price derivative over time, a typical point formula consists of the following two coordinates: ```x = datetime``` and ```y = rate```.\r","\r","For example:\r","\r","**Point *SMA 20 Begin***\r","```js\r","x = record.begin\r","y = record.previous.sma20\r","```\r","\r","The example above shows the definition of the first of two points necessary to draw the segment of the 20-periods SMA curve for any particular period or candle. In this case, ```x = record.begin``` is the starting datetime of the period and ```y = record.previous.sma20``` is the rate of the 20-periods SMA of the previous period.\r","\r","{% include note.html content=\"The above variables are constructed with information originating at the product definition that references the corresponding plotter module.\" %}\r","\r","To complete the line segment corresponding to a single period, the closing datetime of the period and the closing rate for the 20-periods SMA are required:\r","\r","**Point *SMA 20 End***\r","```js\r","x = record.end\r","y = record.sma20\r","```\r","\r","The above system works very well for plotting all sorts of information over the candles, on the charts.\r","\r","An oscillator like RSI too needs the definition of the starting and ending datetime of the period as the value for the *x-axis*. However, the value for *axis y* fits a different scale.\r","\r","Anyway, the points definition is just as straight forward, for example:\r","\r","**Point *RSI Begin***\r","```js\r","x = record.begin\r","y = record.previous.value\r","```\r","\r","**Point *RSI End***\r","```js\r","x = record.end\r","y = record.value\r","```\r","\r","Points do not necessarily need to refer to values on the dataset produced by the corresponding data product. For example, absolute values for the *y-axis* may be used to describe fixed graphical elements, for instance, a horizontal line, or a box.\r","\r","**Point *Begin 20***\r","```js\r","x = record.begin\r","y = 20\r","```\r","\r","**Point *End 20***\r","```js\r","x = record.end\r","y = 20\r","```\r","\r","**Point *Begin 30***\r","```js\r","x = record.begin\r","y = 30\r","```\r","\r","**Point *End 30***\r","```js\r","x = record.end\r","y = 30\r","```\r","\r","The above four points are used to paint the background of the 20 to 30 value range of the RSI chart. The first two points are also used to draw the dotted line signaling the 20-value mark, and the last two are used for the dotted line indicating the 30-value mark.\r","\r","{% include note.html content=\"The reason from separating the definition of points from the definition of polygons is that any point may be used by one or more polygons.\" %}\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a point formula, select *Add Point Formula* on the point node menu.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Image","definition":"The image node allows overlaying an image over the charts, controlling its position, size, and when it shall be rendered.","content":["\r","\r","The foremost requirement for images is that they are in the ```png``` format, 24 bits, with transparency, a low case extension, and are square.\r","\r","If you envision contributing your indicator so that the community may use it, then please follow the guidelines in the [contribute icons](contributing-icons.html#technical-requirements) page, in particular, the Technical Requirements.\r","\r","Images must the stored in the following path: ```\\Client\\WebServer\\Images\\Icons\\style-01```\r","\r","{% include note.html content=\"See the configuration for further details.\" %}\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. \r","\r"],"configuring":["\r","\r","Select *Configure* on the menu to access the configuration.\r","\r","```json\r","{ \r"," \"codeName\": \"imagename\", \r"," \"size\": 15\r","}\r","```\r","\r","* ```codeName``` is the name of the image, without the ```.png``` extension.\r","\r","* ```size``` is the size at which the image shall be rendered, in pixels. \r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Image Condition","definition":"An image condition is a rule that allows establishing when an image shall be rendered and when not.","content":["\r","\r","The node is optional. When the node is not present in the definition of the image or when the condition validates ```true```, the image is rendered on screen. When the condition validates ```false``` the image is not rendered. As such, the node allows dynamically switching the rendering of the corresponding image on and off .\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Image Position","definition":"The image position node is a reference to a point defined in the chart points, and serves to determine the position in which the image shall be placed.","content":["\r","\r","The image position node works similarly to the polygon vertex in the sense that it must establish a reference with a point in the charts point to acquire a defined coordinate that determines where the image shall be placed.\r","\r","{% include note.html content=\"See the configuration for further details.\" %}\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. \r","\r"],"configuring":["\r","\r","Select *Configure* on the menu to access the configuration.\r","\r","```json\r","{ \r"," \"offsetX\": 0,\r"," \"offsetY\": 10\r","}\r","```\r","\r","* ```offsetX``` is an offset in the X axis, in pixels, applied to displace the image in relation to the coordinate point defined by the reference of the node. Negative values displace the image to the left and positive values to the right.\r","\r","* ```offsetY``` is an offset in the Y axis. Negative values displace the image downwards and positive values displace the image upwards.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Text","definition":"The text node allows overlaying text on the charts, controlling its position, size, appearance, and when it shall be rendered.","content":["\r","\r","The node's offspring control the different aspects of how, where, and when text shall be rendered over the charts.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Text Style","definition":"The text style is a definition of color, opacity, and font size that determines the appearance of the text to be rendered over the charts.","content":["\r","\r","{% include note.html content=\"See the configuration for further details.\" %}\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. \r","\r"],"configuring":["\r","\r","Select *Configure* on the menu to access the configuration.\r","\r","```json\r","{\r"," \"paletteColor\": \"UI_COLOR.GREY\",\r"," \"opacity\": 0.5,\r"," \"fontSize\": 10\r","}\r","```\r","\r","* ```paletteColor``` is one of the predefined colors available, as described in the configuration of the *Style* node.\r","\r","* ```opacity``` is probably self-explanatory, and may range from 0 for a fully transparent object to 1 for a solid object.\r","\r","* ```fontSize``` is self explanatory too; values above zero produce the expected results.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Text Condition","definition":"A text condition is a rule that allows establishing when text shall be rendered and when not.","content":["\r","\r","The node is optional. When the node is not present in the definition of the text node or when the condition validates ```true```, the text is rendered on screen. When the condition validates ```false```, text is not rendered. As such, the node allows dynamically switching the rendering of the corresponding text on and off .\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Text Position","definition":"The text position node is a reference to a point defined in the chart points, and serves to determine the position in which text shall be rendered.","content":["\r","\r","The text position node works similarly to the image position node in the sense that it must establish a reference with a point in the charts point to acquire a defined coordinate that determines where the text shall be placed.\r","\r","{% include note.html content=\"See the configuration for further details.\" %}\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. \r","\r"],"configuring":["\r","\r","Select *Configure* on the menu to access the configuration.\r","\r","```json\r","{ \r"," \"offsetX\": 0,\r"," \"offsetY\": 10\r","}\r","```\r","\r","* ```offsetX``` is an offset in the X axis, in pixels, applied to displace the text in relation to the coordinate point defined by the reference of the node. Negative values displace the text to the left and positive values to the right.\r","\r","* ```offsetY``` is an offset in the Y axis. Negative values displace the text downwards and positive values displace the image upwards.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Text Formula","definition":"The text formula determines the content that shall be rendered over the charts.","content":["\r","\r","The text formula may use any of the variables available to the plotter, and may produce either a numeric or a text string result.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Polygon","definition":"A polygon features definitions that makeup shapes and their styles.","content":["\r","\r","Polygons are defined by two or more vertices, which map points in a charts point. The graphic representation of polygons originates in styles applied to either or both polygon bodies and polygon borders. \r","\r","{% include note.html content=\"The order in which polygons are ordered around the parent shapes node determines the order in which they are drawn on the screen. In cases on which polygons intersect, those drawn last are drawn on top of those drawn first.\" %}\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a polygon, select *Add Polygon* on the shapes node menu.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Polygon Condition","definition":"A polygon condition is a rule that allows establishing when a polygon shall be rendered and when not.","content":["\r","\r","The node is optional. When the node is not present in the definition of the polygon or when the condition validates ```true```, the polygon is rendered on screen. When the condition validates ```false``` the polygon is not rendered. As such, the node allows dynamically switching the rendering of the corresponding polygon on and off.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a polygon condition, select *Add Polygon Condition* on a polygon node menu.\r","\r"],"configuring":["\r","\r","Select *Edit Condition* on the menu to access the configuration.\r","\r","Polygon conditions work pretty much like conditions used on trading systems. The main difference is that the variables available are solely those provided by the bot product definition that reference the corresponding plotter module.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Polygon Body","definition":"A polygon body is the fill of a shape made out of at least three vertices.","content":["\r","\r","A polygon body needs at least three vertices to be defined. A body serves to create a *fill* for the outlines of any sort of polygon, either closed or open, by giving it a style.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a polygon body, select *Add Polygon Body* on the polygon node menu.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Polygon Border","definition":"A polygon border is a shape defined by at least two vertices used to draw lines or to apply a style to the stroke of a closed shape.","content":["\r","\r","A polygon border needs at least two vertices to be defined. A border serves to create a *stroke* for the outlines of any sort of polygon, either closed or open, by giving it a style.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a polygon border, select *Add Polygon Border* on the polygon node menu.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Style Condition","definition":"A style condition is a rule that allows applying an alternative style in cases where the rule validates true.","content":["\r","\r","Style conditions offer a way to introduce additional intelligence on the visual representation of data by using styles that respond to certain conditions.\r","\r","For example, the *Percentage Bandwidth* plotter module assigns a different color to the Moving Average line when it's going up or down.\r","\r","To do that, a style condition features it's own style so that, when the condition validates true, the new style is applied.\r","\r","Style conditions me be created in a sequence so that the style may continue changing upon the validation of a series of style conditions. The system evaluates all style conditions in a sequential order determined by their position in the rotational symmetry around the parent node. Each condition that is met may modify or add up to the resulting style that is rendered on screen. That is, the final style is the result of the sequential application of the styles defined for each condition that is met, on top of the default style.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a style condition, select *Add Style Condition* on a polygon border or polygon body node menu.\r","\r"],"configuring":["\r","\r","Select *Edit Condition* on the menu to access the configuration.\r","\r","Style conditions work pretty much like conditions used on trading systems. The main difference is that the variables available are solely those provided by the bot product definition that reference the corresponding plotter module.\r","\r","To continue the example of the Percentage Bandwidth plotter, the following is the condition that determines the newly added styles:\r","\r","```js\r","record.previous.movingAverage > record.movingAverage\r","```\r","\r","As hinted earlier, when the condition is met, the default style is modified by a second style that may be created on the menu of the style condition node.\r","\r","The definition of secondary styles is slightly different from that of the default style, as—in such cases—the ```atMousePosition``` property may no longer be defined:\r","\r","```js\r","{\r"," \"opacity\": 0.55,\r"," \"lineWidth\": 1,\r"," \"lineDash\": [0,0],\r"," \"paletteColor\": \"UI_COLOR.RED\"\r","}\r","```\r","\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Style","definition":"A style is a definition of color and opacity in case of a polygon body, and color, opacity and line thickness in case of polygon borders.","content":["\r","\r","A style applied to a polygon body or a polygon border node acts as the default style. Styles including colors, opacity, line width, and more, are defined in the node's configuration.\r","\r","{% include note.html content=\"See the configuration for further details.\" %}\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a style, select *Add Style* on a polygon border or polygon body node menu.\r","\r"],"configuring":["\r","\r","Select *Configure Style* on the menu to access the configuration.\r","\r","A typical definition for a polygon *body style* looks like this:\r","\r","```json\r","{\r"," \"default\": {\r"," \"opacity\": 0.2,\r"," \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\r"," },\r"," \"atMousePosition\": {\r"," \"opacity\": 0.3,\r"," \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\r"," }\r","}\r","```\r","\r","A typical definition for a polygon *border style* has a couple more properties:\r","\r","```json\r","{\r"," \"default\": {\r"," \"opacity\": 0.2,\r"," \"lineWidth\": 1,\r"," \"lineDash\": [0,0],\r"," \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\r"," },\r"," \"atMousePosition\": {\r"," \"opacity\": 0.3,\r"," \"lineWidth\": 2,\r"," \"lineDash\": [0,0],\r"," \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\r"," }\r","}\r","```\r","\r","The first section of the definition refers, as explicitly stated, to the default state of the style.\r","\r","The second section refers to the style assigned to the column or period on which the mouse pointer is located. This is very useful for highlighting the specific zone of interest as the user browses the charts.\r","\r","* ```opacity``` is probably self-explanatory: it may range from ```0``` for a fully transparent object to ```1``` for a solid object.\r","\r","* ```paletteColor``` sets the color for the *fill* or *stroke* in cases of polygon bodies and polygon borders respectively. Use the variable ```UI_COLOR``` followed by a ```.``` and any of the properties in the following list for a selection of currently available colors:\r","\r","| Variable Value | RGB Value | Color Sample |\r","| :--- | :---: | :------------------- |\r","| ```DARK``` | 48, 48, 54 |   |\r","| ```LIGHT``` | 234, 226, 222 |   |\r","| ```GREY``` | 150, 150, 150 |   |\r","| ```LIGHT_GREY``` | 247, 247, 247 |   |\r","| ```WHITE``` | 255, 255, 255 |   |\r","| ```BLACK``` | 0, 0, 0 |   |\r","| ```GOLDEN_ORANGE``` | 240, 162, 2 |   |\r","| ```RUSTED_RED``` | 204, 88, 53 |   |\r","| ```GREEN``` | 188, 214, 67 |   |\r","| ```RED``` | 223, 70, 60 |   |\r","| ```PATINATED_TURQUOISE``` | 27, 153, 139 |   |\r","| ```TITANIUM_YELLOW``` | 244, 228, 9 |   |\r","| ```MANGANESE_PURPLE``` | 91,80, 122 |   |\r","| ```TURQUOISE``` | 74, 207, 217 |   |\r","| ```DARK_TURQUOISE``` | 2, 149, 170 |   |\r","\r","* ```lineWidth``` is the width of the border line, which should be greater than 0.\r","\r","* ```lineDash``` is used to turn the border into a dashed-line; the first value corresponds to the length of the dash while the second value defines the length of the space.\r","\r","{% include note.html content=\"When using dashed lines, bear in mind that the drawing from one column or period is independent of the next. Big values for dashes and spaces may not work well for lines that span several columns.\" %}\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Polygon Vertex","definition":"A polygon vertex is a reference to a point defined in the chart points, constituting a specific coordinate to be used as a vertex of a shape.","content":["\r","\r","Vertices are the main element defining polygons. Once created, each vertex must establish a reference to the corresponding point in the charts point.\r","\r","[![Vertex-01-add-and-link](https://user-images.githubusercontent.com/13994516/71016081-eb4ca800-20f4-11ea-8fee-4d38ecfb0596.gif)](https://user-images.githubusercontent.com/13994516/71016081-eb4ca800-20f4-11ea-8fee-4d38ecfb0596.gif)\r","\r","Drawing curves requires two vertices. Painting areas, such as the background of a chart, likely requires four vertices. Note that vertices are not capable of featuring a style. Instead, styles are applied to polygon borders and polygon bodies.\r","\r","{% include important.html content=\"Bear in mind that the order in which vertices in a polygon are arranged around the parent polygon node when their *rotational symmetry* property is selected, is the order in which the plotter computes the points. This means that points need to be in the correct order, for example, when drawing a box. Imagine drawing a box on a piece of paper without lifting the pencil... that is how the plotter does it.\" %}\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a polygon vertex, select *Add Polygon Vertex* on the polygon node menu.\r","\r","{% include tip.html content=\"Remember that a vertex must establish a reference to a point in the charts point to be properly defined\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Workspace"},{"type":"Situation","definition":"A situation refers to a specific state of the market in which a certain event should take place, as defined by any number of conditions.","content":["\r","\r","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.\r","\r","A situation gets validated when all conditions under it are true. \r","\r","An event may have more than one situation attached to it. In such a case, when any of the situations gets validated, the event gets triggered. 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.\r","\r"],"folderName":"trading_system","starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"adding":["\r","\r","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.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Condition","definition":"Conditions are rules within a situation. When all conditions under a situation validate true, then the situation gets validated as well, and the associated event is triggered.","content":["\r","\r","Therefore, conditions are used to mathematically describe what needs to happen with the market for a certain action to be taken.\r","\r","**For example:**\r","\r","**Situation 1**\r","\r","* Condition A: ```chart.at01hs.candle.close > chart.at01hs.bollingerBand.MovingAverage``` → This means that the latest candle at the 1 hour chart closed above the Bollinger Bands moving average.\r","\r","* Condition B: ```chart.at01hs.candle.previous.max > chart.at01hs.bollingerBand.previous.MovingAverage``` → This means that the maximum value of the candle before the last one, was higher than the Bollinger Bands moving average.\r"," \r","In the example above, conditions A and B are comparison statements that may evaluate either _true_ or _false_. In the case both would evaluate _true_ then Situation 1 would be true as well.\r","\r","{% include note.html content=\"To learn how to write conditions, start with the Syntax Overview.\" %}\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add a condition, select *Add Condition* on the corresponding situation node menu. A condition with its JavaScript code node is added.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Super Scripts","definition":"The super scripts hierarchy holds definitions of scripts used to automate certain aspects of the administration and maintenance of the workspace, such as installing and deleting markets.","content":["\r","\r","The super scripts hierarchy may be used by developers who wish to create their own scripts for automating the deployment or manitenance of all sorts of structures of nodes across any of the hierarchies in the design space.\r","\r","Regular users will find little to do with this hierarchy, even though they may use it indirectly, for instance, when installing or uninstalling markets.\r","\r","{% include important.html content=\"Changes made to super scripts shipping with the system may not be saved at the workspace level. If you wish to modify those hierarchies and use them in such modified versions, you need to clone them and modify the clone instead. To do this successfully, you need to learn more about [backups](suite-backups.html) and [clones](suite-clones.html).\" %}\r","\r"],"folderName":"super_scripts","adding":["\r","\r","To add a super scripts hierarchy, select *Add Super Scripts* on the workspace node menu. \r","\r"],"configuring":["\r","\r","Select *Configure Super Scripts* on the menu to access the configuration.\r","\r","```\r","{ \r","\"codeName\": \"Masters\"\r","}\r","```\r","\r","* ```codeName``` is the name of the hierarchy as is used in the system's code.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Scripts Library","definition":"A script library is a collection of related scripts.","content":["\r","\r","The script library node plays an organizational role, grouping masters scripts according to the criteria of the developer.\r","\r"],"folderName":"super_scripts","adding":["\r","\r","To add a scripts library, select *Add Scripts Library* on the super scripts node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Master Script","definition":"A master script contains the definitions of any number of template scripts along with the master JavaScript code providing the logic to implement them.","content":["\r","\r","In general terms, master scripts serve to atomize the complexity of the task at hand by subdividing the task into any number of specific scopes, handled by individual template scripts. The master script controls the execution of template scripts and solves issues beyond their scope.\r","\r","The current implementation of the Masters super scripts hierarchy features two master scripts you may use as examples. The Setup Market master script deals with all the steps required to install a new market, while the Delete Market Dependencies master script deals with uninstalling markets.\r","\r"],"folderName":"super_scripts","adding":["\r","\r","To add a master script, select *Add Master Script* on the scripts library node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Template Script","definition":"The template script node holds the definitions concerned with the scope of a particular structure of nodes.","content":["\r","\r","As such, a template script features all the components required to deal with such scope only.\r","\r","In the particular Masters super script implementation, each template script in the Setup Markets master script features a structure of nodes to be created in a specific location, and the associated JavaScript code deals with implementing such structure of nodes and establishing the corresponding references.\r","\r"],"folderName":"super_scripts","adding":["\r","\r","To add a template script, select *Add Template Script* on the scripts master script node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Template Structure","definition":"The template structure holds the structure of nodes with all its configurations and properties, exactly as it should be implemented.","content":["\r","\r","Properties include the physical arrangement of nodes, references and so on. \r","\r","{% include note.html content=\"The actual structure of nodes contained in the template usually originates as a clone of an existing structure of nodes.\" %}\r","\r"],"folderName":"super_scripts","adding":["\r","\r","To add a tempalte strucutre, select *Add Teemplate Structure* on the template script node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Template Target","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"super_scripts","adding":["\r","\r","To add a template target, select *Add Template Target* on the template script node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Super Action"},{"type":"Network","definition":"The network hierarchy provides the control functions for running data-mining and trading operations. Because operations may be run either on a single machine or distributed over a network of machines, it also contains definitions regarding the physical location in which nodes live or function.","content":["\r","\r","The network hierarchy defines where in the network you run each of the bots you choose to run, and where the data they output is stored. \r","\r","You will use the network hierarchy for the following purposes:\r","\r","* To control your data mining operation—that is, tasks running sensor and indicator bots. Data mining tasks process data that may be consumed by others; for example, so that your trading systems may count with quality information.\r","\r","* To control your testing environment—that is, trading sessions including backtesting and paper trading sessions.\r","\r","* To control your production environment—that is, forward testing, and live trading sessions.\r","\r","* To manage the storage of the data produced by the bots you run as outputs. This includes administering the physical locations on which the data products produced by bots reside.\r","\r","{% include note.html content=\"These processes may run together on a single machine, or may be distributed across a network of machines, or what we call a [trading farm](suite-fundamental-trading-farms-concepts.html). \" %}\r","\r","{% include warning.html content=\"At this stage, the system does not implement any form of security measures, therefore, Superalgos is to be run in the context of a restricted Local Area Network only, unless you implement your own network security.\" %}\r","\r"],"folderName":"network","adding":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Network Node","definition":"A network node represents a machine running Superalgos, on which processes run and data is stored.","content":["\r","\r","By default, processes are set up to run locally in a network node representing your local machine. However, the system is prepared to run distributed on a network of nodes, or what we call a trading farm.\r","\r","You may create unlimited network nodes and map them with different machines on a network. Each machine in the network runs an instance of the Superalgos client, and you may control the whole network operation from a single machine, or—in general—from any machine in the network running the Superalgos frontend. To learn more about distributed setups, check the [trading farms](suite-fundamental-trading-farms-concepts.html) pages.\r","\r","The easiest and fastest way to set up a network node is using the *Install Market* function available on markets defined in the Crypto Ecosystem hierarchy, under the exchange markets node. This function adds data mining tasks for all sensor and indicator bots shipping with the system, backtesting and live trading tasks for trading systems shipping with the system, including the data storage definitions for both, and also creates the corresponding dashboards and charts in the Charting Space hierarchy. You may learn more about this function in the [how to install a new market](suite-how-to-install-a-new-market.html) page.\r","\r","If you need finer control over the operation you wish to deploy on the network, then you may use the individual functions available under each section of the hierarchy under the network node.\r","\r"],"folderName":"network","adding":["\r","\r","To add a network node, select *Add Network Node* on the *Superalgos Network* node menu. A network node is added along with the basic structure of nodes to set up a node.\r","\r"],"configuring":["\r","\r","Select *Configure Network Node* on the menu to access the configuration.\r","\r","```json\r","{ \r","\"host\": \"0.0.0.0\", \r","\"webPort\": \"34247\", \r","\"webSocketsPort\": \"8080\"\r","}\r","```\r","\r","* ```host``` is the machine or hardware represented by the network node, which must be identified by its IP address.\r","\r","* ```webPort``` is the port used by the Web Server, at this stage ```34247```.\r","\r","* ```webSocketsPort``` is the port used by the system to communicate over the local area network, by default set at ```8080```.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Task Manager","definition":"A task manager is a device used to organize and control any number of tasks, which, in turn, control bot instances. You use a task manager to start or stop several tasks at the same time.","content":["\r","\r","Task managers are used both in the context of data mining and trading operations, to facilitate the organization of tasks. \r","\r","For example, you may set up a task manager to handle tasks related to a particular set of indicators used with a certain strategy. Or, for example, to organize multiple backtesting sessions.\r","\r","{% include tip.html content=\"The key aspect of a task manager is that it allows starting and stopping all tasks at once.\" %}\r","\r"],"folderName":"network","adding":["\r","\r","To add a task manager, select *Add Task Manager* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","Select *Run All Tasks* or *Stop All Tasks* on the menu to start and stop all tasks respectively.\r","\r"]},{"type":"Task","definition":"A task is the device used to control bot instances, that is, to start and stop bots, including sensors, indicators and the trading bot.","content":["\r","\r","Each task controls a single bot. A bot instance running on its own task is independent from other bots at the operating system level, thus, may not be affected by errors ocurring on those other bots.\r","\r"],"folderName":"network","adding":["\r","\r","To add a task, select *Add Task* on the task manager node menu.\r","\r","{% include tip.html content=\"Instead of adding nodes, configuring them, and setting references one by one, you may want to clone an existing, fully functional task with all its offspring.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","Select *Run* on the menu to start a task. When a task is started, the process instance of the bot instance attached to the task is started. Also, a visual indication that both the task and the process instance are running appear surrounding the corresponding nodes, in the form of a progress ring.\r","\r","To stop a task, select *Stop* on the menu.\r","\r"]},{"type":"Trading Bot Instance","definition":"A trading bot instance is a reference to the trading bot as defined in the Masters data mine. The instance of the bot runs the defined processes and generates the defined data products.","content":["\r","\r","{{site.data.concepts.trading_bot}}\r","\r","The trading bot instance holds no definitions as to what the bot does. Instead, its process instance references the process definition in the Masters data mine. That is how the indicator bot instance obtains the information of what it needs to do once it is run.\r","\r"],"folderName":"network","adding":["\r","\r","To add a trading bot instance, select *Add Trading Bot Instance* on the task node menu. When a trading bot instance is added, it is created with one trading process instance, and a market reference.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","You do not start or stop a trading bot instance directly. Instead, you start or stop the corresponding task.\r","\r"]},{"type":"Sensor Process Instance","definition":"A sensor process instance is a reference to the process definition of a sensor bot, as defined in a data mine.","content":["\r","\r","For example, in the case of an instance of the Masters data mine Exchange Raw Data sensor bot, the bot process instance references the *Historic OHLCVs* process definition. Once the reference is established, the sensor process instance adopts the name of the process definition it references.\r","\r"],"folderName":"network","adding":["\r","\r","To add a sensor process instance, select *Add Sensor Process Instance* on the sensor bot instance node menu.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","You do not start or stop a sensor process instance directly. Instead, you start or stop the corresponding task.\r","\r"]},{"type":"Indicator Process Instance","definition":"An indicator process instance is a reference to the process definition of an indicator bot, as defined in a data mine.","content":["\r","\r","Indicator bot instances usually require two indicator process instances. One of them references the indicator's *multi-period-market* process definition and the second references the *multi-period-daily* process definition.\r","\r","Once the reference is established, the indicator process instance adopts the name of the process definition it references.\r","\r"],"folderName":"network","adding":["\r","\r","To add an indicator process instance, select *Add Indicator Process Instance* on the indicator bot instance node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","You do not start or stop an indicator process instance directly. Instead, you start or stop the corresponding task.\r","\r"]},{"type":"Trading Process Instance","definition":"A trading process instance is a reference to the process definition of the trading bot, as defined in the Masters data mine.","content":["\r","\r","The trading process instance must reference the *Multi-Period* process definition of the Jason trading bot in the Masters data mine.\r","\r"],"folderName":"network","adding":["\r","\r","To add a trading process instance, select *Add Trading Process Instance* on the trading bot instance node menu. When a trading process instance is added, it is created with a market reference.\r","\r","{% include note.html content=\"After adding a trading process instance node, make sure you establish the reference to the *Multi-Period* process definition of the Jason trading bot in the Masters data mine.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","You do not start or stop a trading process instance directly. Instead, you start or stop the corresponding task.\r","\r"]},{"type":"Backtesting Session","definition":"A backtesting session is a trading mode by which the trading bot instance reads historic market data in a user-defined datetime range, applies the rules defined in the associated trading system, and generates a trading simulation.","content":["\r","\r","A backtesting session node must reference a trading system to gain access to the trading logic to be applied during the session. Other considerations framing the session come from the set of parameters attached to it.\r","\r"],"folderName":"network","adding":["\r","\r","To add a backtesting session, select *Add Backtesting Session* on the trading process instance node menu. When a session is added, it is created with the full set of parameters.\r","\r","{% include note.html content=\"After adding a session node, make sure you establish a reference to the trading system you want it to work with.\" %}\r","\r"],"configuring":["\r","\r","Select *Configure Session* on the menu to access the configuration.\r","\r","```json\r","{\r","\"folderName\": \"Session-Name\"\r","}\r","```\r","\r","* ```folderName``` allows you to set a significant name to the folder in which the data products—and logs—generated by the session are stored. If left blank, the system names the folders with the session id. This may be handy when you intend to consult the raw data generated by the session, as, otherwise, the folder would be hard to identify.\r","\r"],"starting":["\r","\r","Before you start a backtesting session, the corresponding task needs to be running, as it is the task that puts the trading bot instance to run. Once the trading bot instance is running, select *Run* on the menu to start the session.\r","\r","After a few seconds, a literal indication of the progress of the calculations appears below the session node, displaying the date that is currently being processed. Once the calculation is finished, the session stops and the date below the session node dissapears.\r","\r","To stop a backtesting session, select *Stop* on the menu.\r","\r"]},{"type":"Trading Engine","definition":"The trading engine hierarchy is the data structure used by the trading bot to keep runtime information highly accessible and exposed to others.","content":["\r","\r","You will use this hierarchy for two main purposes:\r","\r","* **To let your trading systems access the information processed by the trading bot.** This allows strategies to keep track of and react to current and past events—including those involving the exchange, such as orders placed or filled—as the bot is running.\r","\r","* **To keep track of the actions of the trading bot via the design space visual environment and panels over the charts.** By analyzing runtime information, you may gain a detailed understanding of what happens, when, and why, throughout a trading session.\r","\r","The hierarchy exposes—literally—all the information processed by the trading bot, providing a comprehensive feedback loop to trading systems and analysis capabilities to users.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","{% include tip.html content=\"There may be more than one trading engine in a workspace. Cloning the default trading engine is the best way to start a new one.\" %}\r","\r","To add the {{ title | downcase }} node from scratch, select *Add Trading Engine* on the workspace node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Dynamic Indicators","definition":"","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Indicator Function","definition":"","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Episode","definition":"Episode is the object that handles the information corresponding to the whole run of the trading bot—beginning to end—between the specified initial datetime and final datetime, in the time range parameter of the trading session.","content":["\r","\r","In other words, episode is the context framed between the datetimes that make up the whole trading session, as per the session's configuration. As such, an episode keeps track of—and accumulates—the results of all positions entered throughout a complete run of a trading session.\r","\r","In this section of the hierarchy, you have access to:\r","\r","* **[running balances and overall performance metrics](suite-trading-engine-accounts-and-metrics.html)** denominated in both the base and quoted assets;\r","\r","* **[counters](suite-trading-engine-counters.html)**, such as the number of positions taken, orders placed, hits, fails, and so on;\r","\r","* **[statistics](suite-trading-engine-statistics.html)**, such as performance metrics consolidating both assets, number of days in the episode, or user-defined statistics;\r","\r","* **[the distance to certain events](suite-trading-engine-distance-to-event.html)**, such as the number of candles to the last take position event, or the last create order event;\r","\r","* **[rates describing each candle](suite-trading-engine-candle.html)** in the episode, such as the open, close, min and max rates;\r","\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Episode Counters","definition":"The episode counters node features counters of instances of objects that come to exist during the duration of the episode.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Position Counters","definition":"The position counters node features counters of instances of objects that come to exist during the duration of the position.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Strategy Counters","definition":"The strategy counters node features counters of instances of objects that come to exist while the strategy is open.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Order Counters","definition":"The order counters node features counters of instances of objects that come to exist while the order is open.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Positions","definition":"Positions counts the number of times positions have been opened, in the context of the parent node.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Strategies","definition":"Strategies counts the number of times strategies have been triggered-on, in the context of the parent node.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Orders","definition":"Orders counts the number of times orders have been placed, in the context of the parent node.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Fails","definition":"Fails counts the number of positions that closed with a negative profit loss, in the context of the parent node.","content":["\r","\r","{% include note.html content=\"The workings of the fail counts are analogous to the workings of the hits counts, reversing the sign. That is, when profit loss is negative, it is counted as a fail. Please refer to the definition of *hits* for the details.\" %}\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Hits","definition":"Hits counts the number of positions that closed with a positive profit loss, in the context of the parent node.","content":["\r","\r","In the context of the quoted asset or the base asset, *hits* are calculated relative to the asset in question. That is, if the base asset profit loss is positive, then a hit is counted for the base asset.\r","\r","However, when the context of the asset is not specified—such as under the statistics node—then *hits* are calculated in a consolidated manner, converting the respective balances to perform the calculations. \r","\r","{% include note.html content=\"The consolidated calculations are explained thoroughly in the profit loss node.\" %}\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Periods","definition":"Periods counts the number of candles that have been evaluated, in the context of the parent node.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"User Defined Counter","definition":"","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Episode Statistics","definition":"Episode statistics keeps track of several metrics in the context of the episode.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Stop Loss","definition":"Stop loss is the current stop loss target, as defined in the manage stage of the corresponding strategy.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Take Profit","definition":"Take profit is the current take profit target, as defined in the manage stage of the corresponding strategy.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Stop Loss Phase","definition":"Stop loss phase is the numeric value of the phase that is currently open, and thus, defining the value of the stop loss.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Take Profit Phase","definition":"Take profit phase is the numeric value of the phase that is currently open, and thus, defining the value of the take profit.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Take Profit Position","definition":"Take profit position indicates if the take profit target is above or below the position rate.","content":["\r","\r","Possible values are ```Above``` and ```Below```.\r","\r","The implications of setting the take profit target above or below the position rate are explained on the trading system section of the documentation, in particular while describing the [initial target rate definition](suite-strategies-open-targets.html#target-rate).\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Stop Loss Position","definition":"Stop Loss position indicates if the stop loss target is above or below the position rate.","content":["\r","\r","Possible values are ```Above``` and ```Below```.\r","\r","The implications of setting the stop loss target above or below the position rate are explained on the trading system section of the documentation, in particular while describing the [initial target rate definition](suite-strategies-open-targets.html#target-rate).\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Position Statistics","definition":"Position statistics keeps track of several metrics in the context of the position.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Stage Base Asset","definition":"The stage base asset node keeps track of the evolution of variables related to the base asset throughout the stage.","content":["\r","\r","{% include note.html content=\"Learn more about how accounts for the base asset and the quoted asset are kept in the [base asset and quoted asset](suite-trading-engine-base-asset-and-quoted-asset.html) page on the trading engine section of the documentation.\" %}\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Stage Quoted Asset","definition":"The stage quoted asset node keeps track of the evolution of variables related to the quoted asset throughout the stage.","content":["\r","\r","{% include note.html content=\"Learn more about how accounts for the base asset and the quoted asset are kept in the [base asset and quoted asset](suite-trading-engine-base-asset-and-quoted-asset.html) page on the trading engine section of the documentation.\" %}\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Episode Base Asset","definition":"The episode base asset node keeps track of the evolution of variables and metrics denominated in the base asset, throughout the episode.","content":["\r","\r","{% include note.html content=\"Learn more about how accounts for the base asset and the quoted asset are kept in the [base asset and quoted asset](suite-trading-engine-base-asset-and-quoted-asset.html) page on the trading engine section of the documentation.\" %}\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Episode Quoted Asset","definition":"The episode quoted asset node keeps track of the evolution of variables and metrics denominated in the quoted asset, throughout the episode.","content":["\r","\r","{% include note.html content=\"Learn more about how accounts for the base asset and the quoted asset are kept in the [base asset and quoted asset](suite-trading-engine-base-asset-and-quoted-asset.html) page on the trading engine section of the documentation.\" %}\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Position Base Asset","definition":"The position base asset node keeps track of the evolution of variables related to the base asset throughout the position.","content":["\r","\r","{% include note.html content=\"Learn more about how accounts for the base asset and the quoted asset are kept in the [base asset and quoted asset](suite-trading-engine-base-asset-and-quoted-asset.html) page on the trading engine section of the documentation.\" %}\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Position Quoted Asset","definition":"The position quoted asset node keeps track of the evolution of variables related to the quoted asset throughout the position.","content":["\r","\r","{% include note.html content=\"Learn more about how accounts for the base asset and the quoted asset are kept in the [base asset and quoted asset](suite-trading-engine-base-asset-and-quoted-asset.html) page on the trading engine section of the documentation.\" %}\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Order Statistics","definition":"Order statistics keeps track of several metrics in the context of the order.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Order Base Asset","definition":"The order base asset node keeps track of the evolution of certain properties of orders, denominated in the base asset.","content":["\r","\r","{% include note.html content=\"Learn more about how accounts for the base asset and the quoted asset are kept in the [base asset and quoted asset](suite-trading-engine-base-asset-and-quoted-asset.html) page on the trading engine section of the documentation.\" %}\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Order Quoted Asset","definition":"The order quoted asset node keeps track of the evolution of certain properties of orders, denominated in the quoted asset.","content":["\r","\r","{% include note.html content=\"Learn more about how accounts for the base asset and the quoted asset are kept in the [base asset and quoted asset](suite-trading-engine-base-asset-and-quoted-asset.html) page on the trading engine section of the documentation.\" %}\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"User Defined Statistic","definition":"A user defined statistic allows users to create custom metrics by defining the corresponding calculation in a formula, in the context of the parent node.","content":["\r","\r","The current contexts in which custom statistics may be defined are episodes, positions, and orders.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Profit Loss","definition":"Profit loss is the difference between the balance at the end and the balance at the beginning of a certain period, given by the context.","content":["\r","\r","In the context of the base asset or the quoted asset, the calculation is done by subtracting the balances in the corresponding assets, using the variable appropriate to the larger context (i.e.: episode, position, etc.).\r","\r","*In general terms:*\r","\r","* ```base asset profit loss = base asset end balance - base asset begin balance```\r","\r","* ```quoted asset profit loss = quoted asset end balance - quoted asset begin balance```\r","\r","*In the case of the episode base asset and episode quoted asset:*\r","\r","```\r","tradingEngine.current.episode.episodeBaseAsset.profitLoss.value =\r"," tradingEngine.current.episode.episodeBaseAsset.balance.value -\r"," sessionParameters.sessionBaseAsset.config.initialBalance\r"," \r","tradingEngine.current.episode.episodeQuotedAsset.profitLoss.value =\r"," tradingEngine.current.episode.episodeQuotedAsset.balance.value -\r"," sessionParameters.sessionQuotedAsset.config.initialBalance\r","```\r","\r","*In the case of the position base asset and position quoted asset:*\r","\r","```\r","tradingEngine.current.position.positionBaseAsset.profitLoss.value =\r"," tradingEngine.current.episode.episodeBaseAsset.balance.value -\r"," tradingEngine.current.position.positionBaseAsset.beginBalance\r"," \r","tradingEngine.current.position.positionQuotedAsset.profitLoss.value =\r"," tradingEngine.current.episode.episodeQuotedAsset.balance.value -\r"," tradingEngine.current.position.positionQuotedAsset.beginBalance\r","```\r","\r","In the context of the episode statistics or the position statistics, the calculation is done consolidating the profits of both assets. \r","\r","{% include note.html content=\"When the context does not refer to either of the assets in particular, then both assets are taken into account in the calculation.\" %}\r","\r","*In the context of the episode statistics:*\r","\r","```\r","tradingEngine.current.episode.episodeStatistics.profitLoss.value =\r"," tradingEngine.current.episode.episodeBaseAsset.profitLoss.value * \r"," tradingEngine.current.episode.candle.close.value +\r"," tradingEngine.current.episode.episodeQuotedAsset.profitLoss.value\r","```\r","\r","*In the context of the position statistics:*\r","\r","```\r","tradingEngine.current.position.positionStatistics.profitLoss.value =\r"," tradingEngine.current.episode.episodeBaseAsset.profitLoss.value * \r"," tradingEngine.current.position.endRate.value +\r"," tradingEngine.current.episode.episodeQuotedAsset.profitLoss.value\r","```\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Hit Ratio","definition":"Hit ratio is the percentage of positions that closed with a positive profit loss, in the context of the parent node.","content":["\r","\r","Hit ratio results from multiplying the number of hits by 100 and dividing it by the number of positions: ```hit ratio = hits * 100 / positions```.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Days","definition":"Days counts the number of days through which the trading bot has cycled since the object represented by the parent node was open.","content":["\r","\r","In the context of an episode, it counts the number of days in the episode.\r","\r","In the context of a position, it counts the number of days a position has been open.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Size Filled","definition":"Size filled is the amount of the order that has been filled at the exchange.","content":["\r","\r","In the context of a strategy stage, the size filled refers to the sum of the size filled for all orders placed on the corresponding stage.\r","\r","In the context of an order, it refers to the size filled for the particular order.\r","\r","Upon each execution of the trading bot, the system asks the exchange about the status of the orders placed, and the exchange reports back with the size filled and the actual rate at which orders are filled.\r","\r","In liquid markets, market orders should usually fill immediately. However, limit orders may fill incrementally. Size filled keeps track of how much of the size placed has been filled on every execution.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Percentage Filled","definition":"Percentage filled represents the portion of the order that has been filled, expressed as a percentage.","content":["\r","\r","*The formula:*\r","\r","```percentage filled = size filled * 100 / size```\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Actual Rate","definition":"Actual rate is the number reported by the exchange as the rate at which an order was filled.","content":["\r","\r","When the system consults the status of open orders with the exchange, the exchange responds with the size filled and the actual rate for the particular order. In case an order is filled incrementally, the value is updated accordingly. \r","\r","The system uses the actual rate to update the calculation of balances, which are otherwise calculated with the original rate, by default.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Fees Paid","definition":"Fees paid is the amount paid in fees.","content":["\r","\r","The exchange does not explicitly indicate how much has been paid in fees for a given transaction. Instead, when Superalgos verifies if an order has been filled or not, the exchange reports the size filled and the actual rate only.\r","\r","{% include callout.html type=\"success\" content=\"Exchange fees are *estimated* using the *fee structure* parameter set for the trading session. It is, therefore, important to set the correct values for that parameter.\" %}\r","\r","Exchanges deduct fees from the asset you are receiving. For instance, if you are selling BTC in the BTC-USDT market, then you are receiving USDT, and the exchange will deduct the fees directly from the amount of USDT you are receiving.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"ROI","definition":"ROI is a ratio that compares the profit loss with the cost of the investment, expressed as a percentage."},{"type":"Annualized Rate Of Return","definition":"Annualized rate of return is the equivalent ROI scaled to one year.","content":["\r","\r","In other words, it is the equivalent annual return received over a given period.\r","\r","*The formula:*\r","\r","```annualized rate of return = (((investment + profits) / investments) ^ (365 / days)) - 1```\r","\r","In the context of the episode base asset and episode quoted asset, the calculation is done relative to the corresponding assets, and the overall context.\r","\r","*The formulas:*\r","\r","```\r","tradingEngine.current.episode.episodeBaseAsset.annualizedRateOfReturn.value = \r","((( tradingEngine.current.episode.episodeBaseAsset.beginBalance.value +\r","tradingEngine.current.episode.episodeBaseAsset.profitLoss.value ) / \r","tradingEngine.current.episode.episodeBaseAsset.beginBalance.value) ^\r","(365 / tradingEngine.current.episode.episodeStatistics.days.value)) - 1\r","\r","tradingEngine.current.episode.episodeQuotedAsset.annualizedRateOfReturn.value = \r","((( tradingEngine.current.episode.episodeQuotedAsset.beginBalance.value +\r","tradingEngine.current.episode.episodeQuotedAsset.profitLoss.value ) / \r","tradingEngine.current.episode.episodeQuotedAsset.beginBalance.value) ^\r","(365 / tradingEngine.current.episode.episodeStatistics.days.value)) - 1\r","```\r","\r","*The JavaScript code:*\r","\r","```js\r","tradingEngine.current.episode.episodeBaseAsset.annualizedRateOfReturn.value = \r","Math.pow(\r"," ( tradingEngine.current.episode.episodeBaseAsset.beginBalance.value +\r"," tradingEngine.current.episode.episodeBaseAsset.profitLoss.value ) / \r"," tradingEngine.current.episode.episodeBaseAsset.beginBalance.value\r"," , \r"," (365 / tradingEngine.current.episode.episodeStatistics.days.value)\r"," ) - 1\r","\r","tradingEngine.current.episode.episodeQuotedAsset.annualizedRateOfReturn.value = \r","Math.pow(\r"," ( tradingEngine.current.episode.episodeQuotedAsset.beginBalance.value +\r"," tradingEngine.current.episode.episodeQuotedAsset.profitLoss.value ) / \r"," tradingEngine.current.episode.episodeQuotedAsset.beginBalance.value\r"," , \r"," (365 / tradingEngine.current.episode.episodeStatistics.days.value)\r"," ) - 1\r","```\r","\r","In the context of the episode statistics, the calculation is done using the consolidated balance, as explained in the profit loss definition. \r","\r","{% include note.html content=\"When the context does not refer to either of the assets in particular, then both asset balances are consolidated, and denominated in the quoted asset.\" %}\r","\r","*The JavaScript code:*\r","\r","```js\r","tradingEngine.current.episode.episodeStatistics.annualizedRateOfReturn.value =\r","Math.pow(\r"," (\r"," tradingEngine.current.episode.episodeBaseAsset.beginBalance.value * \r"," tradingEngine.current.episode.beginRate.value +\r"," tradingEngine.current.episode.episodeQuotedAsset.beginBalance.value +\r"," tradingEngine.current.episode.episodeBaseAsset.profitLoss.value +\r"," tradingEngine.current.episode.episodeQuotedAsset.profitLoss.value\r"," ) / \r"," (\r"," tradingEngine.current.episode.episodeBaseAsset.beginBalance.value * \r"," tradingEngine.current.episode.beginRate.value +\r"," tradingEngine.current.episode.episodeQuotedAsset.beginBalance.value \r"," ) \r"," , \r"," (\r"," 365 / tradingEngine.current.episode.episodeStatistics.days.value\r"," ) \r"," ) - 1\r","```\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Hit Fail","definition":"Hit fail states whether a transaction is successful or not, hit meaning it is successful and fail meaning it is not.","content":["\r","\r","Superalgos marks positions and even entire episodes as hits or fails, by evaluating profit loss for the corresponding context. If profit loss is positive, then the position or episode is a hit. If profit loss is negative, it is a fail.\r","\r","{% include note.html content=\"Please refer to the definition of *hits* for the details.\" %}\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Current","definition":"The current object refers to the context in which instances of several other objects exist—like episode, strategy, position, strategy stages, and so on—in particular, the instances that are open at the time of evaluation, hence the adjective current.","content":["\r","\r","Conceptually, current is used as an adjective applied to different concepts, such as the current episode, the current strategy, the current position, or the current strategy stage, to indicate the instance that is passing at the moment.\r","\r","The generation of offspring nodes under the current section of the hierarchy keeps track of information within the scope of the embodied concept: episode, strategy, position, and so on. \r","\r","In other words, the episode, strategy and position nodes within the current section of the hierarchy feature information relative to the instances of the episode, strategy, and position that are currently passing, at any point in time.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the current node, select *Add Missing Items* on the trading engine node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Balance","definition":"Balance is the running balance, that is, the amount of the asset that exists at any point in time.","content":["\r","\r","The balance of an asset changes every time an order involving the asset is filled. When the trading bot consults the exchange to find out the status of each order placed, the exchange answers with the size filled and actual rate for the order. That is the information used to calculate balances.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Begin Balance","definition":"Begin balance is the balance at the datetime of the begin property of the parent node or concept.","content":["\r","\r","In the context of an episode, it is the balance at the datetime the episode started.\r","\r","In the context of a position, it is the balance at the datetime the position started.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"End Balance","definition":"End balance is the balance at the datetime of the end property of the parent node or concept.","content":["\r","\r","In the context of an episode, it is the balance at the datetime the episode ended.\r","\r","In the context of a position, it is the balance at the datetime the position was closed.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Distance To Event","definition":"Distance to event features counters indicating how many periods (candles) have passed since the last occurrence of certain events, in the context of the episode.","content":["\r","\r","The information may be used from within strategies, for example, to leave a cool-down period in-between positions, to separate orders in specific intervals, or to achieve any particular logic that may require counting how much time has passed since the last time a specific event was triggered.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Trigger On","definition":"Counts the periods since the last time a strategy was triggered on.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Trigger Off","definition":"Counts the periods since the last time a strategy was triggered off.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Take Position","definition":"Counts the periods since the last time a position was taken.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Close Position","definition":"Counts the periods since the last time a position was closed.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Next Phase","definition":"Counts the periods since the last time a next phase event was triggered.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Move To Phase","definition":"Counts the periods since the last time a move to phase event was triggered.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Create Order","definition":"Counts the periods since the last time an order was created.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Cancel Order","definition":"Counts the periods since the last time an order was canceled.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Close Order","definition":"Counts the periods since the last time an order was closed.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Strategy Trigger Stage","definition":"Strategy trigger stage is the section of the data structure that keeps track of information specific to the scope of the trigger stage during the period the stage is open.","content":["\r","\r","The trigger stage is active from the instant the trigger-on event is triggered until either the trigger-off event or the take position event gets triggered. Therefore, this section of the data structure features information spaning those periods only.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Strategy Manage Stage","definition":"Strategy manage stage is the section of the data structure that keeps track of information specific to the scope of the manage stage during the period the stage is open.","content":["\r","\r","The manage stage is active from the instant the take position event is triggered until the instant either the stop or take profit targets are hit.\r","\r","Therefore, this section of the data structure features information spaning those periods only.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Strategy Open Stage","definition":"Strategy open stage is the section of the data structure that keeps track of information specific to the scope of the open stage during the period the stage is open.","content":["\r","\r","The open stage is open from the instant the take position event gets triggered, and starts closing from the instant one of the following things happen:\r","\r","* the target size is filled, \r","\r","* the close stage event is triggered, \r","\r","* the take profit or stop loss targets are hit. \r","\r","Therefore, this section of the data structure features information spaning those periods only.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Strategy Close Stage","definition":"Strategy close stage is the section of the data structure that keeps track of information specific to the scope of the close stage during the period the stage is open.","content":["\r","\r","The close stage is active from the instant either the stop loss or take profit targets are hit until the instant the target size is filled or the close stage event is triggered.\r","\r","Therefore, this section of the data structure features information spaning those periods only.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Strategy","definition":"The strategy section of the trading engine keeps track of information relating to the trading strategies that are triggered-on, during the time they remain open.","content":["\r","\r","The strategy node is available both in the current context and the last context, that is, you may retrieve information of the strategy that was last triggered or the one currently open.\r","\r","A strategy is open from the instant it is triggered-on until the instant it is triggered-off. Therefore, this section of the data structure features information spaning those periods only.\r","\r","This section provides all the basic details about the strategy, which is particularly useful when the trading system features multiple strategies. It also provides information about the context, that is, what is going on with the market at the time strategies are triggered-on and off.\r","\r","Most interestingly, the strategy section provides information such as which situation was responsible for triggering the strategy. This may be particularly useful in complex strategies in which the trigger on event may be defined by multiple situations.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Strategy Name","definition":"Strategy name features the name of the strategy that is currently open.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Index","definition":"Index is the position of the parent object in the corresponding data collection, as determined by the context.","content":["\r","\r","In the context of a candle, *index* is the position of the current candle in the array of candles within the larger context, for example, an episode.\r","\r","Trading systems may feature more than one strategy. In the context of a strategy, *index* is the position of the strategy within the trading system. \r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Status","definition":"Status refers to the state of the object represented by the parent node at the moment of evaluation.","content":["\r","\r","There are three possible status:\r","\r","* ```Not Open```: the object is not open at the current candle.\r","\r","* ```Open```: the object is open at the current candle.\r","\r","* ```Closed```: the object closes at the current candle.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Situation Name","definition":"Situation name features the name of the situation that triggered a certain event, which is dependent on the context.","content":["\r","\r","In the context of a strategy, it is the name of the situation that triggered-on the strategy.\r","\r","In the context of a position, it's the name of the situation that triggered the take position event.\r","\r","In the context of an order, it's the situation that triggered the create order event.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Algorithm Name","definition":"Algorithm name is the name of the execution algorithm that opened the order, as specified in the trading system.","content":["\r","\r","Assigning names to execution algorithms in the definition of the trading system makes tracking the execution of orders easier.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Order Name","definition":"Order name is the name of the order as specified in the trading system.","content":["\r","\r","Assigning names to orders in the definition of the trading system makes tracking the execution of orders easier.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Serial Number","definition":"Serial number is a sequential number assigned to the object represented by the parent node at the moment it is opened.","content":["\r","\r","Serial numbers start at 1 and increment by 1 with each intance of the object that is opened.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Identifier","definition":"Identifier is a unique alphanumeric string by which the object represented by the parent node may be unequivocally identified.","content":["\r","\r","The property is what would be used to access a specific known record.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Exchange Id","definition":"Exchange ID is a unique identifier the exchange assigns to the order, so that it may be unequivocally identified.","content":["\r","\r","By default, it is the rate at the close of the last candle at the moment the order is placed. All market orders have the default rate value.\r","\r","In the case of limit orders, it is the rate as specified by the formula under the order rate node. If no such definition exists, then limit orders use the default value as well.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Lock","definition":"Lock is an internal mechanism that blocks the data structure of the order at the trading engine when the definition of the order at the trading system disallows spawning multiple orders.","content":["\r","\r","Possible values for lock are ```open``` and ```closed```.\r","\r","The moment an order is closed, the system checks the ```spawnMultipleOrders``` parameter at the order's configuration in the trading system. If the value is ```false```, the system sets the lock to ```closed``` so that the data structure may not be used again during the same position.\r","\r","At the moment of opening an order, the system checks the ```spawnMultipleOrders``` parameter at the order's configuration in the trading system. If the value is ```false```, the system checks the value of the lock. If the value is ```open```, then it may create the order; if it is ```closed``` then the order may not be created.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Begin","definition":"Begin is the datetime at the moment the object represented by the parent node began to exist.","content":["\r","\r","In the context of a candle, it is the datetime of the open of the candle as provided by the exchange.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"End","definition":"End is the datetime on which the object represented by the parent node ceased to exist. In case the object has not been closed yet, it is the datetime at the moment of evaluation.","content":["\r","\r","In the context of a candle, it is the datetime of the close of the candle as provided by the exchange.\r","\r","In every other context, the datetime is given by the datetime of the moment of evaluation. When evaluating a point in time in which the object remains open, *end* stores the datetime of that moment, because the object existed until that point in time when the value was last being updated. Once the object is closed, the end value is not modified again.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Open","definition":"Open is the rate at the datetime of the begin property, as provided by the exchange. That is, the rate at the open of the candle.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Close","definition":"Close is the rate at the datetime of the end property, as provided by the exchange. That is, the rate at the close of the candle.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Min","definition":"Min is the minimum rate registered by the exchange during the period between the datetimes of the begin and end properties, as provided by the exchange.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Max","definition":"Max is the maximum rate registered by the exchange during the period between the datetimes of the begin and end properties, as provided by the exchange.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Begin Rate","definition":"Begin rate is the close rate of the candle corresponding to the datetime of the begin property.","content":["\r","\r","In the context of a strategy, it is the close rate of the last closed candle at the moment the strategy was triggered.\r","\r","In the context of a position, it is the close rate of the last closed candle at the moment the take position event was triggered.\r","\r","In the context of an episode, it is the close rate of the last closed candle at the moment the episode starts.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"End Rate","definition":"End rate is the close rate of the candle corresponding to the datetime of the end property.","content":["\r","\r","In the context of a strategy, it is the close rate of the last closed candle at the moment the strategy is triggered-off.\r","\r","In the context of a position, it is the close rate of the last closed candle at the moment the close stage is closed.\r","\r","In the context of an episode, it is the close rate of the last closed candle at the moment the episode ends.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Position","definition":"Position is the section of the data structure that keeps track of information within the scope of each position, and during the time a position is open.","content":["\r","\r","The position node is available both in the current context and the last context, that is, you may retrieve information of the position that was last opened or the one currently open.\r","\r","A position is open from the instant the take position event is triggered until the instant the close stage is closed. Therefore, this section of the data structure features information spaning those periods only.\r","\r","In this section of the hierarchy, you have access to:\r","\r","* **[balances and position performance metrics](suite-trading-engine-accounts-and-metrics.html)** denominated in both the base and quoted assets;\r","\r","* **[counters](suite-trading-engine-counters.html)**, such as the number of periods the position has been open;\r","\r","* **[statistics](suite-trading-engine-statistics.html)**, such as performance metrics consolidating both assets, or user-defined statistics;\r","\r","* **[the distance to certain events](suite-trading-engine-distance-to-event.html)**, such as the number of candles to the last take position event, or the last create order event;\r","\r","* **[rates describing each candle](suite-trading-engine-candle.html)** in the episode, such as the open, close, min and max rates;\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Rate","definition":"Rate is the rate at which the order is placed.","content":["\r","\r","By default, it is the rate at the close of the last candle at the moment the order is placed. All market orders have the default rate value.\r","\r","In the case of limit orders, it is the rate as specified by the formula under the order rate node. If no such definition exists, then limit orders use the default value as well.\r","\r","The rate is used by the system for all internal calculations affecting the accounts kept in both assets.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Entry Target Rate","definition":"Entry target rate is the target rate set on the initial targets definition, in the open stage of the strategy.","content":["\r","\r","Refresh this concepts by reading about the [initial target definitions](suite-strategies-open-targets.html) at the trading system.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Exit Target Rate","definition":"Exit target rate is the target rate set on the initial targets definition, in the close stage of the strategy.","content":["\r","\r","Refresh this concepts by reading about the [initial target definitions](suite-strategies-open-targets.html) at the trading system.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Stage Defined In"},{"type":"Size","definition":"Size is the size set for the order through a combination of formulas and configurations defined in the trading system, and is the value passed on to the exchange as the size of the order.","content":["\r","\r","The system provides a flexible and robust infrastructure to control execution. The size of a single order results from the combination of multiple settings.\r","\r","* **The target size in base asset or target size in quoted asset**: The formulas under these nodes define the absolute maximum size allowed for the position. The implications of using one or the other are explained under the initial targets node in the open stage.\r","\r","* **The configuration of the execution algorithm**: The parameter ```percentageOfStageTargetSize``` determines what fraction of the target size the algorithm will attempt to execute.\r","\r","* **The configuration of the order**: The parameter ```percentageOfAlgorithmSize``` determines what fraction of the size handled by the algorithm the order shall be constrained to.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Entry Target Size","definition":"Entry target size is the target size set on the initial targets definition, in the open stage of the strategy.","content":["\r","\r","Refer to the explanations on the entry target size for some relevant context.\r","\r","Refresh this concepts by reading about the [initial target definitions](suite-strategies-open-targets.html) at the trading system.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Exit Target Size","definition":"Exit target size is the target size set on the initial targets definition, in the close stage of the strategy.","content":["\r","\r","Both entry and exit target sizes may be defined either denominated in the base asset or the quoted asset. Nevertheless, the sytem keeps track of target sizes in both assets. If the target is defined denominated in the base asset, then the target for the quoted asset is calculated using the current rate, and viceversa.\r","\r","Refresh this concepts by reading about the [initial target definitions](suite-strategies-open-targets.html) at the trading system.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Size Placed","definition":"Size placed is the size of the order placed at the exchange.","content":["\r","\r","In the context of a strategy stage, the size placed refers to the sum of the sizes placed for all orders placed on the corresponding stage.\r","\r","In the context of an order, it refers to the size placed for the particular order.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Target Size","definition":"Target size is the target set on the initial targets definition which, in the context of a strategy stage, acts as a limit.","content":["\r","\r","Both the close and open stages may have multiple execution algorithms, each with multiple orders defined. In this context, the target size acts as a limit, as it is defined by the user as the maximum size allowed for any given position.\r","\r","Before placing an order, the system makes sure that the size limit embodied in the target size would not be breached by opening a new order.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Exit Type","definition":"Exit type refers to the reason why the object is closed.","content":["\r","```No Exit``` is the default value until a new value is assigned before the object is closed. Other possible values vary with the context.\r","\r","In the context of the episode object:\r","\r","* ```Last Candle Reached```: the object was closed because the last candle was reached.\r","\r","In the context of the strategy object:\r","\r","* ```Position Closed```: the position was closed.\r","\r","In the context of the position object:\r","\r","* ```Take Profit```: the take profit target was hit.\r","\r","* ```Stop Loss```: the stop loss target was hit.\r","\r","In the context of an order:\r","\r","* ```Closing Stage```: the current stage started closing because the Close Stage is opening.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Process Date"},{"type":"Head Of The Market"},{"type":"Last","definition":"The last object stores instances of position and strategy objects, in particular the instances that were last open at the time of evaluation, hence the adjective last.","content":["\r","\r","Conceptually, last is used as an adjective applied to these concepts, such as the last position or the last strategy, providing the context on which those concepts exist.\r","\r","The *last* context exists so that you may easily access information about the strategy that was last triggered or the position that was last opened. \r","\r","This is valuable information, both for users and trading systems alike.\r","\r","* As a user, you will value being able to visually follow what happened with the last position after it closed, or the last strategy after it triggered off, and at the same time see what is going on with the current position or the current strategy.\r","\r","* From within a trading system, your strategies may make decisions factoring in what happened with the last position or strategy. For example, you may want to affect the size of the next position depending on the result of the last one.\r","\r","If you can code, you may actually access any object that was open in the past at any point in time, and not just the last one.\r","\r","\r","\r","\r","\r","\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Candle","definition":"The candle structure of nodes stores the properties that make up each candle in the episode, including open and close datetime, and the rates for open, min, max, and close.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Cycle","definition":"The trading bot performs its duties in regards to exchange orders and accounts in two consecutive cycles for each candle.","content":["\r","\r","In the first cycle, it checks the status of orders at the exchange, synchronizes the accounts, and verifies if conditions to place new orders are met.\r","\r","In the second cycle, it creates the orders at the exchange, provided conditions where met on the previous cycle.\r","\r","The two possible values for the cycle node are ```First``` and ```Second```.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","Select *Configure* on the menu to access the configuration.\r","\r","```json\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","```\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Exchange Orders","definition":"Exchange orders is the section of the data structure that keeps track of orders of all types.","content":["\r","\r","The function of this section of the trading engine is to provide the data structure to hold the information of orders as they are open and closed. \r","\r","Orders are organized by type, such as market orders and limit orders, and also by the type of transaction, such as buy or sell orders.\r","\r","Each section of the hierarchy must have the definition of as many orders of each type as the trading system is capable of placing concurrently. For example, if the execution algorithm may place up to three limit buy orders to open a position, then three limit orders must exist under the limit buy orders section of the hierarchy. Each order defined in the trading system must reference the data structure of a matching type of order in the trading engine.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Market Buy Orders","definition":"Market buy orders is the section of the data structure that keeps track of this specific type of order.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Market Order","definition":"Market order is the section of the data structure that keeps track of the properties of a specific market order, as defined in the trading system.","content":["\r","\r","Each market order defined in the trading system must reference the data structure of a market order in the trading engine.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Market Sell Orders","definition":"Market sell orders is the section of the data structure that keeps track of this specific type of order.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Limit Buy Orders","definition":"Limit buy orders is the section of the data structure that keeps track of this specific type of order.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Limit Sell Orders","definition":"Limit sell orders is the section of the data structure that keeps track of this specific type of order.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Limit Order","definition":"Limit order is the section of the data structure that keeps track of the properties of a specific limit order, as defined in the trading system.","content":["\r","\r","Each limit order defined in the trading system must reference the data structure of a limit order in the trading engine.\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Trading Parameters","definition":"Parameters are properties of trading sessions, defined by users, to determine their behavior and improve the quality of simulations.","content":["\r","\r","The behavior of parameters may vary depending on the type of session.\r","\r","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 to account for different possible scenarios.\r","\r"],"folderName":"network","starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"adding":["\r","\r","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.\r","\r","If you already have a parameters node but are missing some of the parameters, then select *Add Missing Params* on the menu.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Trading System Reference","definition":"A trading engine reference determines which trading system shall be evaluated by the trading bot to run the trading session.","content":["\r","\r","In other words, the trading system reference lets the process instance know which trading rules to process for the given session.\r","\r"],"folderName":"network","adding":["\r","\r","To add a trading ensystemgine reference, select *Add Missing Children* on the trading session node menu.\r","\r","{% include note.html content=\"After adding a trading system reference node, make sure you establish the reference to the corresponding trading system hierarchy.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Trading Engine Reference","definition":"A trading engine reference determines which trading engine the trading bot shall use to structure the data it processes while running the trading session.","content":["\r","\r","In other words, the trading engine reference lets the process instance know which data structure to use to store information related to the trading session. This means that a workspace may have more than one trading engine.\r","\r"],"folderName":"network","adding":["\r","\r","To add a trading engine reference, select *Add Missing Children* on the trading session node menu.\r","\r","{% include note.html content=\"After adding a trading engine reference node, make sure you establish the reference to the corresponding trading engine hierarchy.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Session Base Asset","definition":"The base asset is the asset whose price is determined by the market. It is usually the first asset in the pair, as listed by the exchange.","adding":["\r","\r","To add a parameter that may be missing, select *Add Missing Params* on the parameters node menu. \r","\r","{% include note.html content=\"After adding a base asset node, make sure you establish a reference to the asset in a specific market of a specific exchange in the Crypto Ecosystem hierarchy.\" %}\r","\r"],"folderName":"network","configuring":["\r","\r","Select *Configure Base Asset* on the menu to access the configuration.\r","\r","```json\r","{\r","\"initialBalance\": 0.001,\r","\"minimumBalance\": 0.0001,\r","\"maximumBalance\": 0.1\r","}\r","```\r","\r","* ```initialBalance``` is the amount of capital you wish to allocate to the trading system.\r","\r","* ```minimumBalance``` is the threshold of accummulated losses that switches off the session; when your overall balance (balanceAssetA + balanceAssetB) drops to this value, all trading stops; think of the ```minimumBalance``` as a general safety switch.\r","\r","* ```maximumBalance``` is a similar concept as with the ```minimumBalance``` but on the high side of the ```initialBalance```.\r","\r","\r"]},{"type":"Session Quoted Asset","definition":"The quoted asset is the asset on which the price of the base asset is denominated in the market. It is usually the second asset in the pair, as listed by the exchange.","content":["\r","\r","The parameter allows defining an initial balance of the corresponding asset, which may be used for trading with the corresponding trading system and trading session. Please see the configuration.\r","\r"],"folderName":"network","starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"adding":["\r","\r","To add a parameter that may be missing, select *Add Missing Params* on the parameters node menu. \r","\r","{% include note.html content=\"After adding a quoted asset node, make sure you establish a reference to the second asset in the same market of the same exchange as the reference established with the base asset.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Market Base Asset","definition":"The market base asset is the asset in the pair used to provide a quote—a price—for the quoted asset, as listed at the exchange.","content":["\r","\r","A market base asset must reference an asset defined under the exchange assets node.\r","\r"],"folderName":"crypto_ecosystem","adding":["\r","\r","To add a market base asset, select *Add Market Base Asset* on the market node menu. \r","\r","{% include note.html content=\"Remember to establish a reference with an asset defined under the exchange assets node.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Market Quoted Asset","definition":"The market quoted asset is the asset in the pair for which a quote is given, denominated in the base asset, as listed at the exchange.","content":["\r","\r","A market quoted asset must reference an asset defined under the exchange assets node.\r","\r"],"folderName":"crypto_ecosystem","adding":["\r","\r","To add a market quoted asset, select *Add Market Quoted Asset* on the market node menu. \r","\r","{% include note.html content=\"Remember to establish a reference with an asset defined under the exchange assets node.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Time Range","definition":"The time range parameter determines the period of time on which the trading session is run.","content":["\r","\r","The parameter offers precise control over the duration, starting and ending points of the session. Several options are available, and there are differences in how backtesting and the rest of the types of trading sessions function in this regard. \r","\r","Check the configuration to learn more.\r","\r"],"folderName":"network","starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"adding":["\r","\r","To add a parameter that may be missing, select *Add Missing Params* on the parameters node menu. \r","\r"],"configuring":["\r","\r","Select *Configure Time Range* on the menu to access the configuration. The configuration varies slightly depending on the type of session you are running.\r","\r","{{include.configuring}}# On Backtesting Sessions\r","\r","```json\r","{\r","\"initialDatetime\": \"2019-09-01T00:00:00.000Z\",\r","\"finalDatetime\": \"2019-09-25T00:00:00.000Z\"\r","}\r","```\r","\r","* ```initialDatetime``` is the datetime the session starts at.\r","\r","* ```finalDatetime``` is the datetime the session finishes at. If you don't set a *finalDatetime*, the session runs until the date data is available.\r","\r","{{include.configuring}}# On Paper Trading, Forward Testing and Live Trading Sessions\r","\r","```json\r","{\r","\"initialDatetime\": \"2019-09-01T00:00:00.000Z\",\r","\"finalDatetime\": \"2019-09-25T00:00:00.000Z\",\r","\"allowStartingFromThePast\": false\r","}\r","```\r","\r","* ```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.\r","\r","By default, paper trading, forward testing and live trading sessions start at the datetime the session is run, that is, the present time. Such a behavior is in accordance with the most common use case, by which a user starting a new live trading session usually wishes the session to start at that moment.\r","\r","However, users have requested to be allowed to start live sessions in the past. Such a feature may be useful, for example, to take an opportunity that was just missed for whatever reason, including technical ones.\r","\r","* ```initialDatetime```, in combination with the ```allowStartingFromThePast``` parameter, is a hack to allow a live session to start from a date in the past. If there is a valid ```initialDatetime``` and ```allowStartingFromThePast``` is ```true```, then the live session effectively starts from the specified date in the past. If ```allowStartingFromThePast``` is ```false``` the ```initialDatetime``` is ignored and the session starts from the present time.\r","\r","* ```allowStartingFromThePast``` may be ```true``` or ```false```.\r","\r","{% include warning.html content=\"In the case of forward testing and live trading sessions, starting from the past may involve placing orders at the exchange while evaluating past events. That is, if conditions to take a position and place orders validate true for candles in the past, the position is taken and orders are placed.\" %}\r","\r"]},{"type":"Time Frame","definition":"The time frame determines the collection of candles to be analyzed during a backtesting session, and the frequency with which the trading bot runs on paper trading, forward testing, and live trading sessions.","content":["\r","\r","In the context of backtesting sessions, what time frame you decide to run the session depends on the trading system being tested. If the trading system makes 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.\r","\r","In other words, in backtesting sessions, you should match the time frame to the smallest period on which the trading system makes decisions.\r","\r","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. Remember that stop and take profit orders are not placed at the exchange after the take position event, that is, once you enter the position. Instead, the trading bot checks the current price upon each execution cycle and determines whether targets have been hit or not. If targets are hit, only then orders are placed. That is why running live trading sessions at the ```01-min``` time frame is recommended. Learn more about the [management](suite-strategies-manage.html) of take profit and stop loss targets.\r","\r","If for whatever reason you don't need to minimize the potential for slippage when hitting stop or take profit targets, you may choose whatever time frame you like, taking into account the explanations below.\r","\r","{{include.heading}}## Why the Time Frame Matters\r","\r","{% include callout.html type=\"success\" content=\"Running trading sessions of any given trading system on different time frames may produce different results. This is because the behavior of a trading session may vary depending on how well the time frame on which the session is run matches the logic of the strategy.\" %}\r","\r","This is why:\r","\r","The trading bot evaluates closed candles only. At any given point in time, the current candle in each time frame is the candle that closed last.\r","\r","*For example:*\r","\r","Let's say it's ```2020-06-11T11:39:30:00.000Z```, that is, 11 hours, 39 minutes and 30 seconds of June 11th, 2020.\r","\r","* The current 1-minute candle is the one which closed at 11:38:59.999.\r","* The current 5-minute candle is the one which closed at 11:34:59.999.\r","* The current 30-minute candle is the one which closed at 11:29:59.999.\r","* The current 1-hour candle is the one which closed at 10:59:59.999.\r","* The current 2-hour candle is the one which closed at 09:59:59.999.\r","* The current 6-hour candle is the one which closed at 05:59:59.999.\r","* The current 24-hour candle is the one which closed at 23:59:59.999 of June 10th!\r","\r","... and so on.\r","\r","Let's say the trading system implements conditions that evaluate 30-minute and 1-hour candles.\r","\r","If a session is run at the 30-minutes time frame, all 30-minutes candles are evaluated. Also, all 1-hour candles are evaluated twice.\r","\r","However, if the session is run at the 1-hour time frame, only one out of two 30-minute candles are evaluated.\r","\r","And if the session is run at the 2-hour time frame, only one out of four 30-minute candles and one out of two 1-hour candles are evaluated.\r","\r","This means that running the session (for this particular trading system) at the 30-minute time frame has higher probabilities of conditions evaluating 30-minute candles to be ```true``` during the session.\r","\r","{% include callout.html type=\"success\" content=\"In other words, when running the session on time frames higher than the time frame on which decisions are made, chances are the bot will eventually skip candles on which conditions would have evaluated true, potentially skipping trading opportunities.\" %}\r","\r","The above is true for all types of trading sessions.\r","\r","{{include.heading}}## Backtesting Vs. Live Sessions\r","\r","In a backtesting session, the collection of candles evaluated is determined by the time frame selected to better simulate what would happen if the live trading session was run in the same time frame.\r","\r","\r"],"folderName":"network","starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"adding":["\r","\r","To add a parameter that may be missing, select *Add Missing Params* on the parameters node menu. \r","\r"],"configuring":["\r","\r","Select *Configure Time Frame* on the menu to access the configuration.\r","\r","```js\r","{\r","\"value\": \"01-min\"\r","}\r","```\r","\r","* ```value``` is the setting for the time frame. You may use any of the values below.\r","\r","Available options at the sub-hour level are:\r","\r","```json\r","01-min\r","02-min\r","03-min\r","04-min\r","05-min\r","10-min\r","15-min\r","20-min\r","30-min\r","45-min\r","```\r","\r","Available options at larger time frames are:\r","\r","```json\r","01-hs\r","02-hs\r","03-hs\r","04-hs\r","06-hs\r","08-hs\r","12-hs\r","24-hs\r","```\r","\r"]},{"type":"Slippage","definition":"The slippage is an assumption on the difference between the simulated rate and the actual fill rate of an order, most relevant in the context of backtesting and paper-trading sessions. The parameter is a tool to make simulations more realistic.","content":["\r","\r","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.\r","\r","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.\r","\r"],"folderName":"network","starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"adding":["\r","\r","To add a parameter that may be missing, select *Add Missing Params* on the parameters node menu. \r","\r"],"configuring":["\r","\r","Select *Configure Slippage* on the menu to access the configuration.\r","\r","```json\r","{\r","\"marketOrderRate\": 0.1,\r","\"stopLoss\": 0.2,\r","\"takeProfit\": 0.3\r","}\r","```\r","\r","* ```marketOrderRate``` is the slippage value to be applied to the rate of the take position order, expressed as a percentage (*i.e.:* 0.1 means 0.1%).\r","\r","* ```stopLoss``` is the slippage value to be applied to the rate of the stop order, expressed as a percentage (*i.e.:* 0.2 means 0.2%).\r","\r","* ```takeProfit``` is the slippage value to be applied to the rate of the take profit order, expressed as a percentage (*i.e.:* 0.3 means 0.3%).\r","\r","The number you enter is applied as a percentage of the price of the order and added or subtracted from the price depending on the circumstances, always working against you. For instance, ```\"marketOrderRate\": 0.1``` means the position will be set at a price 0.1% higher or lower depending on which of the assets in the pair is your base asset. \r","\r","{% 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.\"%}\r","\r"]},{"type":"Fee Structure","definition":"The fee structure is a parameter fundamental to the calculation of fees, both in testing and live trading sessions.","content":["\r","\r","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.\r","\r","Exchanges don't usually report the amount charged in fees on each transaction, thus, the system calculates fees and subtract them from balances. Learn more about the handling of [fees](suite-trading-engine-order-specific.html#fees-paid).\r","\r","{% include important.html content=\"The accuracy of the internal account-keeping depends on this parameter. Make sure you obtain the correct fee structure from the exchange corresponding to the tier of your account.\" %}\r","\r","To illustrate how fees affect your bottom line, take a look at the image below.\r","\r","[![Trading-Simulation-Fees-Fails](https://user-images.githubusercontent.com/13994516/63636432-8d8cdf80-c66f-11e9-86a3-480d157d8126.gif)](https://user-images.githubusercontent.com/13994516/63636432-8d8cdf80-c66f-11e9-86a3-480d157d8126.gif)\r","\r","The trade hits the take profit target above the Position Rate level, however, due to fees, the trade has a negative 0.32% ROI.\r","\r"],"folderName":"network","starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"adding":["\r","\r","To add a parameter that may be missing, select *Add Missing Params* on the parameters node menu. \r","\r"],"configuring":["\r","\r","Select *Configure Fee Structure* on the menu to access the configuration.\r","\r","```json\r","{\r","\"maker\": 0.15,\r","\"taker\": 0.25\r","}\r","```\r","\r","* ```maker``` is the setting for the fee the exchange charges when an order adds liquidity to the market, such as with limit orders.\r","\r","* ```taker``` is the setting for the fee the exchange charges when an order takes liquidity from the market, such as with market or instant orders.\r","\r","{% include note.html content=\"Check the fees structure in your exchange, carefully looking into the tier you fall in to feed accurate assumptions to your backtesting and paper trading sessions.\" %}\r","\r","{% include note.html content=\"If the fee structure parameter is left empty or detached both from your session and your trading system, fees are not computed during simulations.\" %}\r","\r","{% 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.\" %}\r","\r"]},{"type":"Snapshots","definition":"Snapshots are CSV files output by the trading bot listing every trade in a backtesting session. The snapshots parameter determines whether snapshots shall be produced, and how.","content":["\r","\r","Learn more about [snapshots](suite-snapshots.html) and check the configuration file to control if and how snapshots are produced.\r","\r"],"folderName":"network","adding":["\r","\r","To add a parameter that may be missing, select *Add Missing Params* on the parameters node menu. \r","\r"],"configuring":["\r","\r","Select *Configure Slippage* on the menu to access the configuration.\r","\r","```json\r","{ \r"," \"strategy\": true,\r"," \"position\": true\r","}\r","```\r","\r","* ```strategy``` determines whether to take a snapshot at the trigger on event or not; possible values are ```true``` or ```false```.\r","\r","* ```position``` determines whether to take a snapshot at the take position event or not; possible values are ```true``` or ```false```.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Heartbeats","definition":"During a trading session, the client communicates with the front end via heartbeats to inform the frontend about the status of the session. The parameter controls what information is made available to the user through the frontend.","content":["\r","\r","This parameter affects how you see the progress of the trading session below the trading bot instance node on the design space.\r","\r"],"folderName":"network","adding":["\r","\r","To add a parameter that may be missing, select *Add Missing Params* on the parameters node menu. \r","\r"],"configuring":["\r","\r","Select *Configure Slippage* on the menu to access the configuration.\r","\r","```json\r","{ \r"," \"date\": true,\r"," \"candleIndex\": false\r","}\r","```\r","\r","* ```date``` determines whether the date is shown in the progress notice below the trading process instance node; possible values are ```true``` or ```false```.\r","\r","* ```candleIndex``` determines whether the index of the candle is shown in the progress notice below the trading process instance node; possible values are ```true``` or ```false```.\r","\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"User Defined Parameters","definition":"Users may define parameters to be used within the trading system during the trading session.","content":["\r","\r","Parameters defined in the configuration file of these node become available to trading systems using the following path: ```sessionParameters.userDefinedParameters.config.parameterName```.\r","\r","These parameters may be useful, for example, when you wish to use a *constant* multiple times across several nodes in the definition of a strategy. Instead of feeding a constant value to all formulas involved, you may feed the parameter instead. This gives you the added benefit of being able to change the value of such a constant in a single point.\r","\r"],"folderName":"network","adding":["\r","\r","To add a parameter that may be missing, select *Add Missing Params* on the parameters node menu. \r","\r"],"configuring":["\r","\r","Select *Configure Slippage* on the menu to access the configuration.\r","\r","```json\r","{ \r"," \"param1Name\": \"A text string value example\",\r"," \"param2Name\": 0\r","}\r","```\r","\r","* ```param1Name``` is an example of a name. You may change the names of the parameters as required. Values including text strings go between quotation marks, while numeric values, without. You may define as many parameters as you wish; simply separate them with a comma to keep a valid JSON format for the configuration file.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Time Frames Filter","definition":"The time frame filters node allows control over which time frames are to be calculated by each indicator bot instance running on the data mining operation.","content":["\r","\r","Limiting the number of time frames calculated by any given indicator to the few that may be required by a particular trading system has a significant positive impact on performance: it reduces the load on the CPU, the memory requirements, and the requirements of storage space, in proportion with the time frames you remove.\r","\r","When a time frames filter is set up, a ```Time.Frames.json``` file is created by the indicator process in the corresponding output folder. This file is read by others—such as the charting system—to get the information regarding which time frames are available and which are not, to avoid reporting errors.\r","\r","{% include important.html content=\"Before applying a time frames filter or changing the configuration, that is, changing which time frames are produced and which are not, it is highly recommended to delete the data corresponding to the affected indicator, to avoid inconsistencies in the data that may later cause confusion.\" %}\r","\r","{% include note.html content=\"When no time frames filter is defined, the bot processes all time frames by default.\" %}\r","\r"],"folderName":"network","starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"adding":["\r","\r","To add the {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. \r","\r"],"configuring":["\r","\r","Select *Configure* on the menu to access the configuration.\r","\r","```json\r","{ \r","\"dailyTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\r","\"marketTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\"]\r","}\r","```\r","\r","* ```dailyTimeFrames``` features the time frames corresponding to the *daily files* type of data structure; in practical terms, the time frames below one hour.\r","\r","* ```marketTimeFrames``` features the time frames corresponding to the *market files* type of data structure; in practical terms, the time frames of one hour and above.\r","\r","{% include tip.html content=\"Remove the time frames you are not interested in, making sure the JSON file is still valid.\" %}\r","\r"]},{"type":"Paper Trading Session","definition":"A paper trading session is a trading mode by which the trading bot instance reads a live market data feed, applies the rules defined in the associated trading system, and generates a trading simulation.","content":["\r","\r","A paper trading session node must reference a trading system to gain access to the trading logic to be applied during the session. Other considerations framing the session come from the set of parameters attached to it.\r","\r"],"folderName":"network","adding":["\r","\r","To add a paper trading session, select *Add Paper Trading Session* on the trading process instance node menu. When a session is added, it is created with the full set of parameters.\r","\r","{% include note.html content=\"After adding a session node, make sure you establish a reference to the trading system you want it to work with.\" %}\r","\r"],"configuring":["\r","\r","Select *Configure Session* on the menu to access the configuration.\r","\r","```json\r","{\r","\"folderName\": \"Session-Name\"\r","}\r","```\r","\r","* ```folderName``` allows you to set a significant name to the folder in which the data products—and logs—generated by the session are stored. If left blank, the system names the folders with the session id. This may be handy when you intend to consult the raw data generated by the session, as, otherwise, the folder would be hard to identify.\r","\r"],"starting":["\r","\r","Before you start a paper trading session, the corresponding task needs to be running, as it is the task that puts the trading bot instance to run. Once the trading bot instance is running, select *Run* on the menu to start the session.\r","\r","To stop a backtesting session, select *Stop* on the menu.\r","\r"]},{"type":"Forward Testing Session","definition":"A forward testing session is a trading mode by which the trading bot instance performs live trading with a user-defined fraction of the available capital.","content":["\r","\r","A forward testing session node must reference a trading system to gain access to the trading logic to be applied during the session. Other considerations framing the session come from the set of parameters attached to it.\r","\r","{% include important.html content=\"Running a live session requires the setup of a key reference at the market reference. It also requires a live data feed, meaning that the corresponding sensor bot, along with all indicators used by the referenced trading system, must be up and running. Finally, a live session also requires at least 48 hours of historic market data. Bear in mind that the trading system may require even more historic market data to properly analyze the market.\" %}\r","\r"],"folderName":"network","adding":["\r","\r","To add a forward testing session, select *Add Forward Testing Session* on the trading process instance node menu. When a session is added, it is created with the full set of parameters.\r","\r","{% include note.html content=\"After adding a session node, make sure you establish a reference to the trading system you want it to work with.\" %}\r","\r"],"configuring":["\r","\r","Select *Configure Session* on the menu to access the configuration.\r","\r","```json\r","{ \r","\"folderName\": \"Session-Name\",\r","\"balancePercentage\": 1\r","}\r","```\r","\r","* ```folderName``` allows you to set a significant name to the folder in which the data products—and logs—generated by the session are stored. If left blank, the system names the folders with the session id. This may be handy when you intend to consult the raw data generated by the session, as, otherwise, the folder would be hard to identify.\r","\r","* ```balancePercentage``` is a number defining the percentage of the initialBalance specified in the base aset configuration that will be used for trading. For instance, ```\"balancePercentage\": 1``` means that 1% of your balance will be made available. Just like the ```initialBalance``` is scaled down, the ```minimumBalance``` and ```maximumBalance``` are also scaled down accordingly (see base asset).\r","\r","Let's draw a quick example:\r","\r","Your base asset is USDT and your initialBalance is USDT 10,000.\r","\r","If you set up your forward-testing session with \"balancePercentage\": \"1\", then USDT 10,000 * 1% = USDT 100. This is the balance that will be available to your forward-testing session.\r","\r","{% include important.html content=\"You need to take this into account at the time of defining your positionSize formula. If the formula is a constant, you may easily run out of balance, as only a fraction of the balance will be available for the strategy to use. It may be a good idea to set up your positionSize as a function of your available balance instead.\" %}\r","\r"],"starting":["\r","\r","Before you start a forward testing session, the corresponding task needs to be running, as it is the task that puts the trading bot instance to run. Once the trading bot instance is running, select *Run* on the menu to start the session.\r","\r","To stop a backtesting session, select *Stop* on the menu.\r","\r"]},{"type":"Key Reference","definition":"The key reference is a reference to an exchange account key as defined in a specific user account, in a specific exchange, on the Crypto Ecosystem hierarchy.","content":["\r","\r","Usually, exchanges require autentication via your exchange account key for monetary transactions only. However, some exchanges may require autentication in other contexts as well, for instance, to retrieve information above a certain quota, or to retrieve raw trades data instead of OHLCV data.\r","\r","For those reasons, exchange key references are available both in the context of data mining and trading operations, and are always attached to the corresponding task.\r","\r","Forward testing and live trading sessions always require setting up key references, as that is the kind of scenario in which the user must validate with the exchange.\r","\r","In all cases, the key reference node must reference a valid exchange account key from an account with the exchange, as defined in the Crypto Ecosystem hierarchy.\r","\r","{% include important.html content=\"Most exchanges do not allow the same exchange account key to be used with multiple processes querying the exchange API. This means that if you are trading with multiple trading systems or multiple sessions on the same exchange, each session requires different exchange account keys.\" %}\r","\r"],"folderName":"network","adding":["\r","\r","To add a key reference, select *Add Key Reference* on the task node menu.\r","\r","{% include note.html content=\"Remember to establish a reference with a valid exchange account key after creating the key reference.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Live Trading Session","definition":"A live trading session is a trading mode by which the trading bot instance reads a live market data feed, applies the rules as defined in the associated trading system, places the corresponding orders at the associated exchange, and stores the defined data products.","content":["\r","\r","A live trading session node must reference a trading system to gain access to the trading logic to be applied during the session. Other considerations framing the session come from the set of parameters attached to it.\r","\r","{% include important.html content=\"Running a live session requires the setup of a key reference at the market reference. It also requires a live data feed, meaning that the corresponding sensor bot, along with all indicators used by the referenced trading system, must be up and running. Finally, a live session also requires at least 48 hours of historic market data. Bear in mind that the trading system may require even more historic market data to properly analyze the market.\" %}\r","\r"],"folderName":"network","adding":["\r","\r","To add a live trading session, select *Add Live Trading Session* on the trading process instance node menu. When a session is added, it is created with the full set of parameters.\r","\r","{% include note.html content=\"After adding a session node, make sure you establish a reference to the trading system you want it to work with.\" %}\r","\r"],"configuring":["\r","\r","Select *Configure Session* on the menu to access the configuration.\r","\r","```json\r","{\r","\"folderName\": \"Session-Name\"\r","}\r","```\r","\r","* ```folderName``` allows you to set a significant name to the folder in which the data products—and logs—generated by the session are stored. If left blank, the system names the folders with the session id. This may be handy when you intend to consult the raw data generated by the session, as, otherwise, the folder would be hard to identify.\r","\r"],"starting":["\r","\r","Before you start a live trading session, the corresponding task needs to be running, as it is the task that puts the trading bot instance to run. Once the trading bot instance is running, select *Run* on the menu to start the session.\r","\r","To stop a backtesting session, select *Stop* on the menu.\r","\r"]},{"type":"Sensor Bot Instance","definition":"A sensor bot instance is a reference to a sensor bot as defined in a data mine. The instance of the bot runs the defined processes and generates the defined data products.","content":["\r","\r","{{site.data.concepts.sensor_bot}}\r","\r","The sensor bot instance holds no definitions as to what the bot does. Instead, its process instance references a process definition in the corresponding data mine. That is how the sensor bot instance obtains the information regarding what it needs to do once it is run.\r","\r"],"folderName":"network","adding":["\r","\r","To add a sensor bot instance, select *Add Sensor Bot Instance* on the task node menu.\r","\r"],"configuring":["\r","\r","Select *Configure Sensor Bot Instance* on the menu to access the configuration.\r","\r","```json\r"," {\r"," \"startDate\": \"2020-01-01\"\r"," }\r","```\r","\r","* ```startDate``` is the *desired starting date* of the data product the sensor bot instance builds, in the ```YYYY-MM-DD``` format. The sensor bot instance queries its data source for data starting on the configured ```startDate```.\r","\r"," * The actual date in which the dataset starts depends on external factors: A. The market may start at a later date. B. The exchange may limit how far in the past data may be retrieved. In both cases, the sensor bot automatically discovers the date closest to the *desired starting date* that is possible to start with, and proceeds accordingly.\r","\r"," * In the case the ```startDate``` is changed after the sensor bot has started building a data product, either for an earlier or later date, the sensor re-evaluates the feasibility of starting at the new date. The actual date may or may not change; regardless, the sensor bot discards the existing data product and starts over from the newly discovered date. In other words, if the ```startDate``` is changed, the sensor bot starts over.\r"," \r"," * Notice that the above starts a chain reaction among all indicator bots that have a data dependency with the sensor bot's output dataset. Also, if the actual date ends up changing, all indicators that determine the starting date of the market by looking at the date discovered by the sensor bot have to discard their existing data products and start over from the new date.\r","\r","\r"],"starting":["\r","\r","You do not start or stop a sensor bot instance directly. Instead, you start or stop the corresponding task.\r","\r"]},{"type":"Indicator Bot Instance","definition":"An indicator bot instance is a reference to an indicator bot as defined in a data mine. The instance of the bot runs the defined processes and generates the defined data products.","content":["\r","\r","{{site.data.concepts.indicator_bot}}\r","\r","The indicator bot instance holds no definitions as to what the bot does. Instead, its processes instances reference the process definitions in the corresponding data mine. That is how the indicator bot instance obtains the information of what it needs to do once it is run.\r","\r"],"folderName":"network","adding":["\r","\r","To add an indicator bot instance, select *Add Indicator Bot Instance* on the task node menu.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","You do not start or stop an indicator bot instance directly. Instead, you start or stop the corresponding task.\r","\r"]},{"type":"Data Mine","definition":"A data mine is a hierarchy that contains definitions of bots, including the trading bot, sensors, indicators, and even plotters. These definitions make up the actual programs of such bots—the source code.","content":["\r","\r","In a way, data mines are catalogs of bots that anyone may create. This hierarchy provides all the tools required to create sensors, indicators, and plotters, with minimal coding required.\r","\r","Because the hierarchy provides definitions, it does not intervene in the execution of bots. Instead, the definitions in data mines are instantiated from the network hierarchy by bot instances. Bot instances and process instances are the ones running the code according to the definitions in the corresponding data mine.\r","\r","{% include important.html content=\"Changes made to data mines shipping with the system may not be saved at the workspace level. If you wish to modify those hierarchies and use them in such modified versions, you need to clone them and modify the clone instead. To do this successfully, you need to learn more about [backups](suite-backups.html) and [clones](suite-clones.html).\" %}\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a data mine, select *Add Data Mine* on the workspace node menu.\r","\r"],"configuring":["\r","\r","Select *Configure Data Mine* on the menu to access the configuration.\r","\r","```json\r","{\r","\"codeName\": \"Supermine\"\r","}\r","```\r","\r","* ```codeName``` is the name of the data mine as used within the code of the system.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Trading Mine"},{"type":"Sensor Bot","definition":"A sensor bot is an algorithm that extracts raw data from external sources (i.e.: exchanges, Twitter, etc.) and stores it in a dataset that other bots may consume.","content":["\r","\r","The sensor bot node holds all definitions required for a sensor bot to function. Definitions are split between the definition of processes and products. A sensor's processes is an algorithm that obtains data from a third pary and produces an output for other bots to consume. Part of that output is the data products the bot creates.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a sensor bot, select *Add Sensor Bot* on the data mine node menu. A sensor bot is created along with the basic structure of nodes required to define it.\r","\r"],"configuring":["\r","\r","Select *Configure Bot* on the menu to access the configuration.\r","\r","```json\r","{\r","\"codeName\": \"Super\",\r","\"repo\": \"Super-Sensor-Bot\"\r","}\r","```\r","\r","* ```codeName``` is the name of the bot as used within the code of the system.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Process Definition","definition":"The process definition node groups all definitions required for a process to function. The Multi-Period-Market Process deals with time frames of one hour and above. The Multi-Period-Daily Process deals with time frames of 45 minutes and below.","content":["\r","\r","As hinted above, most bots—in particular indicators—have two different processes. The reason is that different data structures need to be handled in different manners. The Multi-Period-Daily process handles *daily files*, while the Multi-Period-Market process handles *market files*.\r","\r","The Multi-Period-Market process deals with time frames of one hour and above. Because these time frames produce relatively small numbers of records, the process builds one single file per time frame spanning the whole market history—hence the name Multi-Period-*Market*.\r","\r","On the other hand, the Multi-Period-Daily process deals with time frames below one hour. These time frames produce huge numbers of records, therefore, the corresponding data must be fragmented in multiple files. The Multi-Period-Daily process builds one file per day for each time frame—hence the name Multi-Period-*Daily*.\r","\r","{% include note.html content=\"The way in which datasets are structured by each of the processes is determined by the corresponding dataset definitions.\" %}\r","\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a process definition, select *Add Process Definition* on the bot's menu. A process definition node is created along with the basic structure of nodes comprising the definition.\r","\r"],"configuring":["\r","\r","Select *Configure Process* on the menu to access the configuration.\r","\r","**Multi-Period-Market:**\r","\r","```json\r"," {\r"," \"codeName\": \"Multi-Period-Market\",\r"," \"normalWaitTime\": 0,\r"," \"retryWaitTime\": 10000,\r"," \"framework\": {\r"," \"name\": \"Multi-Period-Market\"\r"," }\r"," }\r","```\r","\r","**Multi-Period-Daily:**\r","\r","```json\r"," {\r"," \"codeName\": \"Multi-Period-Daily\",\r"," \"normalWaitTime\": 0,\r"," \"retryWaitTime\": 10000,\r"," \"framework\": {\r"," \"name\": \"Multi-Period-Daily\"\r"," }\r"," }\r","```\r","\r","* ```codeName``` is the name of the process as used within the code of the system.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Process Output","definition":"The process output groups the definitions of which datasets are impacted by the process, that is, which datasets the process builds or takes a part in building.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a process output node, select *Add Missing Items* on the process definition node menu. Items that may be missing are created along with the basic structure of nodes required to define them.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Process Dependencies","definition":"Process dependencies are references to various data structures on which the process depends to function.","content":["\r","\r","While processes run autonomously, most processes participate in a value-adding chain by which a process produces a data product that other processes may consume as an input to be processed further. This means that bots—while autonomous in their particular jobs—do depend both on other bots and on the data other bots produce.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a process dependencies node, select *Add Missing Items* on the process definition node menu. Items that may be missing are created along with the basic structure of nodes required to define them.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Status Dependency","definition":"Status dependencies are references to a status report that define which process the process establishing the reference depends on.","content":["\r","\r","The reference is established to acquire the information relative to what the target process is doing. For example, by reading a status report a process may learn when was the last time the referenced process ran, and what was the last file processed.\r","\r","The status report referenced may belong to the same process— which is called a self-reference. In such a case, the process is learning what it did the last time it ran. Also, the status report referenced may belong to another process—another bot. In that case, the dependency may be of the Market Starting Point or Market Ending Point types.\r","\r","* **Self Reference** is mandatory, as a process needs to read its own status report every time it wakes up.\r","\r","* **Market Starting Point** is a status dependency existing on Multi-Period-Daily processes so that the process establishing the reference learns the datetime of the start of the market. Usually, the reference is established with the sensor's Historic-OHLCVs process status report. Multi-Period-Market processes do not have this type of status dependency as the date of the start of the market is implied in their dataset (a single file with all market data).\r","\r","* **Market Ending Point** is a status dependency existing both in Multi-Period-Market and Multi-Period-Daily processes so that the process establishing the reference knows the datetime of the end of the market.\r","\r","[![Indicators-Process-Dependencies-01](https://user-images.githubusercontent.com/13994516/68991956-dfa36280-0864-11ea-87ec-f0e4e3b7bf0f.gif)](https://user-images.githubusercontent.com/13994516/68991956-dfa36280-0864-11ea-87ec-f0e4e3b7bf0f.gif)\r","\r","The image above shows a case of a self-reference status dependency as well as a market ending point status dependency.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a status dependency, select *Add Status Dependency* on the process dependencies node menu.\r","\r","{% include tip.html content=\"Remember that a status dependency must be configured, and must establish a reference to the appropriate status report.\" %}\r","\r"],"configuring":["\r","\r","Select *Configure Status Dependency* on the menu to access the configuration.\r","\r","```json\r","{ \r","\"mainUtility\": \"Self Reference|Market Starting Point|Market Ending Point\"\r","}\r","```\r","\r","* ```mainUtility``` determines the type of status dependency, with possible values being ```Self Reference```, ```Market Starting Point```, or ```Market Ending Point```.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Status Report","definition":"Status reports serve as temporal annotations that bots read every time they run to know what was done in the previous cycle and what the state of affairs is at present. Status reports are dynamic, and they change constantly, with updates after every cycle of the associated process.","content":["\r","\r","Bots do not run continuously. Instead, they run in cycles. A cycle usually lasts until there is no more data to process, and once they finish, they shut down until the next cycle is due. A status report is a file every bot writes at the end of each cycle with information about the last run, including the datetime of the run and the last record processed.\r","\r","A status report may be consumed by the same bot producing it, or by other bots.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a status report, select *Add Missing Items* on the process definition node menu. Items that may be missing are created along with the basic structure of nodes required to define them.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Execution Started Event","definition":"The execution started event is the event that triggers the execution of a process. It usually references the execution finished event of another process on which the process depends on.","content":["\r","\r","These references determine when a process is due for another run. By listening to the execution finished event of the process it depends on, it may wake up just in time to process the new batch of data the dependency has just delivered.\r","\r","Bots form a sort of multi-branched execution sequence with an indeterminate number of dependencies. Every time the bot further down the tree of dependencies finishes a cycle, it triggers the execution of multiple bots listening to its execution finished event.\r","\r","In the context of a trading process instance running a trading session on the network hierarchy, the execution started event may be used to force the trading process to run only after the last indicator bot dependency finishes its job. This guarantees that all dependencies are up to date and that the trading bot will evaluate the information corresponding to the same candles for all indicators used by the trading system.\r","\r","Not setting up this event on a trading session may result in eventual data inconsistencies, as—in theory—the trading bot may run with some indicators up to date and some slightly delayed.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add an execution started event, select *Add Missing Items* on the process definition node menu. Items that may be missing are created along with the basic structure of nodes required to define them.\r","\r","{% include tip.html content=\"Remember that an execution started event must establish a reference to the appropriate execution finished event.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Execution Finished Event","definition":"The execution finished event is the event that processes trigger once they have finished an execution cycle. The event is broadcasted to whoever wants to listen, so that other bots may know when the process has finished its execution cycle.","content":["\r","\r","The execution finished event is responsible for triggering the execution of every process that depends on the data a bot produces. If bot Alice depends on bot Bob, Alice listens to the execution finished event of Bob so that it may start a new execution cycle as soon as Bob finishes its cycle. Alice listens to Bob's execution finished event by establishing a reference from its execution started event.\r","\r","[![Indicators-Process-Execution-Started-Finished-Events-01](https://user-images.githubusercontent.com/13994516/68993254-39605880-0876-11ea-9ee7-9f49976bd2dc.gif)](https://user-images.githubusercontent.com/13994516/68993254-39605880-0876-11ea-9ee7-9f49976bd2dc.gif)\r","\r","The image above shows a reference established from the execution started event of a process to the execution finished event of another process.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add an execution finished event, select *Add Missing Items* on the process definition node menu. Items that may be missing are created along with the basic structure of nodes required to define them.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Output Dataset Folder","definition":"An output dataset folder is an organizational device used to create arrangements of output datasets, particularly useful when the bot has many products.","content":["\r","\r","In cases in which a single bot has many different products, output dataset folders may help organize the outputs referencing each product, making their management easier. Folders may be nested like folders in the file system.\r","\r","The use of output dataset folders is optional, as product definitions may also exist outside of folders.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. \r","\r"],"configuring":["\r","\r","Select *Configure* on the menu to access the configuration.\r","\r","```json\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","```\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Product Definition Folder","definition":"A product definition folder is an organizational device used to create arrangements of product definitions, particularly useful when the bot has many products.","content":["\r","\r","In cases in which a single bot has many different products, product definitions folders may help organize those products, making their management easier. Folders may be nested like folders in the file system.\r","\r","The use of product definition folders is optional, as product definitions may also exist outside of folders.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Product Definition","definition":"The product definition node holds all definitions that make up a product, including how the product is calculated and the datasets the product is comprised of.","content":["\r","\r","A bot may feature multiple products, thus, there may be multiple product definitions. Three main aspects need to be defined in terms of products: the characteristics of the dataset, the composition of each record, and the way records are calculated.\r","\r","{% include note.html content=\"A product definition usually references a plotter module, which provides a graphic representation of the underlying dataset\" %}\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a product definition, select *Add Product Definition* on the bot's node menu. A product definition is created along with the basic structure of nodes required to make up a product.\r","\r"],"configuring":["\r","\r","Select *Configure Product* on the menu to access the configuration.\r","\r","```json\r","{\r"," \"codeName\": \"Product-Name\",\r"," \"singularVariableName\": \"productName\",\r"," \"pluralVariableName\": \"productNames\"\r","}\r","```\r","\r","* ```codeName``` is the name of the product as it is used within the bot's code.\r","\r","* ```singularVariableName``` is the singular form of the name of the variable representing the product, as is used on strategies (*i.e.:* ```bollingerChannel.direction```, where *bollingerChannel* is the name of the product as defined in its configuration and *direction* is the name of the property.\r","\r","* ```pluralVariableName``` is the plural form of the variable.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Dataset Definition","definition":"A dataset definition contains a configuration file that defines many aspects of the dataset. There are two types of dataset definitions: Multi-Period-Market and Multi-Period-Daily.","content":["\r","\r","A good part of what makes datasets easy to consume by other bots is the fact that they are standardized in terms of their structure. It is that structure that is specified in the dataset definitions.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a dataset definition, select *Add Dataset Definition* on the bot's node menu.\r","\r"],"configuring":["\r","\r","Select *Configure Definition* on the menu to access the configuration.\r","\r","**Multi-Period-Market:**\r","\r","```json\r","{\r"," \"codeName\": \"Multi-Period-Market\",\r"," \"type\": \"Market Files\",\r"," \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\r"," \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\r"," \"fileName\": \"Data.json\",\r"," \"timeFrames\": {\r"," \"filePath\": \"\",\r"," \"fileName\": \"\"\r"," }\r","}\r","```\r","\r","**Multi-Period-Daily:**\r","\r","```json\r","{\r"," \"codeName\": \"Multi-Period-Daily\",\r"," \"type\": \"Daily Files\",\r"," \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\r"," \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\",\r"," \"fileName\": \"Data.json\",\r"," \"dataRange\": {\r"," \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\r"," \"fileName\": \"Data.Range.json\"\r"," },\r"," \"timeFrames\": {\r"," \"filePath\": \"\",\r"," \"fileName\": \"\"\r"," }\r","}\r","```\r","\r","\r","* ```codeName``` is the name of the dataset as used within the code.\r","\r","* ```type``` refers to the type of dataset; possible values are ```Market Files``` and ```Daily Files```.\r","\r","* ```validTimeFrames``` refers to the time frames handled by the dataset.\r","\r","* ```filePath``` sets the path on which files are stored; the proper name of the data mine, the bot and the product need to be entered.\r","\r","* ```fileName``` sets the name of the files that constitute the dataset.\r","\r","* ```timeFrames``` sets the name and path of the file indicating which time frames shall be filtered when the users sets a time frames filter.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Indicator Bot","definition":"An indicator bot is an algorithm that processes information that other bots have generated, and produces elaborate datasets for others to consume.","content":["\r","\r","The indicator bot node holds all definitions required for an indicator bot to function. Definitions are split between the definition of processes and products. Processes are algorithms that go through an input dataset, perform certain calculations, and produce an output. Products are the outcome of the work produced by these algorithms, in the form of ellaborate data sets.\r","\r","Most of the behavior expected from an indicator bot is defined by the structure of nodes in the hierarchy and the references among the nodes within these definitions. As such, you do not need to code any of the functions that make up the infrastructure functionality. Dependencies, outputs, data structures, execution sequences, and several other problems are handled by the definitions embodied in the structure of nodes that make up an indicator, and are configured in the visual environment of the design space. Coding is limited to the actual calculation and data building procedures.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add an indicator bot, select *Add Indicator Bot* on the data mine node menu. An indicator bot is created along with the basic structure of nodes required to define it.\r","\r"],"configuring":["\r","\r","Select *Configure Bot* on the menu to access the configuration.\r","\r","```json\r","{\r","\"codeName\": \"Superbot\"\r","}\r","```\r","\r","* ```codeName``` is the name of the bot as used within the code of the system.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Output Dataset","definition":"The output dataset is a reference to a dataset definition. By establishing such reference, the process acquires the definitions as of how the dataset is to be constructed.","content":["\r","\r","There are other effects of establishing a reference from the output dataset to a product dataset definition. Upon execution, every time a process finishes a processing cycle, it triggers an event that may be consumed by other entities. This event indicates that the datasets impacted by the process have been updated.\r","\r","An example of other entities that may be listening to such events is that of plotters. Plotters read datasets and create graphical representations of this data over the charts. Charts are constantly updating the information in the form of candles and indicators in realtime, synchronized with the data being extracted from the exchange by the sensor bot. That kind of automatism is possible thanks to the events that processes trigger every time an execution cycle is finished, signaling to everyone listening that new data is available on each of the impacted datasets.\r","\r","[![Indicators-Process-Output-01](https://user-images.githubusercontent.com/13994516/68976798-f01cf400-07f6-11ea-9ffb-198b5853a220.gif)](https://user-images.githubusercontent.com/13994516/68976798-f01cf400-07f6-11ea-9ffb-198b5853a220.gif)\r","\r","The image above shows the typical references from output datasets to datasets definitions.\r","\r","{% include note.html content=\"An output dataset must reference a dataset definition.\" %}\r","\r"],"folderName":"data_mine","adding":["\r","\r","Output datasets may be added in bulk, for all defined products, or one by one.\r","\r","To add a single {{ title | downcase }} node, select *Add {{ title }}* on the process output menu. \r","\r","{% include tip.html content=\"Remember that an output dataset must reference a valid dataset definition. Make sure you establish the reference after creating the output dataset.\" %}\r","\r","If you have defined multiple products, each with their dataset definitions, and wish to create all corresponding output datasets in bulk, select *Add All Output Datasets\" on the process output menu. The system maps the product definition folder structure with output dataset folders, creates all required output datasets, and establishes the references with the corresponding dataset definitions, with a single click of the button.\r","\r","{% include note.html content=\"Make sure each product has properly defined dataset definitions before creating output datasets in bulk. You may always delete the output datasets and re-create them at will.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Data Dependency","definition":"Data dependencies are references established with dataset definitions of other bots, determining which datasets the process establishing the reference uses as input.","content":["\r","\r","Most bots consume data other bots have produced. Because bots need the data as input for their calculations, processes establish a data dependency with the dataset definitions of other bots. The reference provides the process with all the information needed to decode the dataset, enabling it to perform the required calculations.\r","\r","[![Indicators-Process-Dependencies-02](https://user-images.githubusercontent.com/13994516/68993034-7840df00-0873-11ea-804d-d24e88ce25f7.gif)](https://user-images.githubusercontent.com/13994516/68993034-7840df00-0873-11ea-804d-d24e88ce25f7.gif)\r","\r","The image above shows data dependencies in one bot referencing dataset definitions of another bot.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a single data dependency, select *Add Data Dependency* on the process dependencies, bot data dependencies, or data dependency folder node menus.\r","\r","{% include tip.html content=\"Remember that a data dependency must establish a reference to the appropriate dataset definition. When adding data dependencies manually, you also need to manually establish the reference.\" %}\r","\r","In cases in which multiple data dependencies must be established, you may use the option to create data dependencies in bulk:\r","\r","* The *Add All Data Dependencies* option on the data mine data dependencies node menu adds a bot data dependency for each bot in the data mine, and a data dependency for each dataset definition or each product of each bot. You may use this option after manually adding a data mine data dependencies node and manually establishing the reference with the desired data mine, or after adding all data mine data dependencies, by which the references with data mines are established automatically.\r","\r","It is unlikely that a bot requires numerous data dependencies, thus, the most common scenario is setting up individual data dependencies and establishing references manually. However, if your bot requires multiple data dependencies, the bulk features may be quite useful, as you may create all data dependencies for any given data mine, and simply delete those that are not required.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Record Definition","definition":"The record definition is where indicators define how many properties, what properties and in which order those properties will be made available in each record.","content":["\r","\r","Bots store data in the form of arrays of records, in a minimized plain text file and the standard JSON format, although not as objects with named properties, but as arrays.\r","\r","{% include image-ext.html file='https://user-images.githubusercontent.com/13994516/68998023-303eae00-08ad-11ea-9baa-ddea801c7d6d.png' url='yes' max-width='100' caption='Typical dataset file showing records as arrays.' %}\r","\r","The choice of plain text for storage of large volumes of information has benefits in terms of not requiring any sophisticated technology to store and serve the data (*i.e.:* no database is required).\r","\r","Best practice indicates that there needs to be a balance between the amount of data that is stored and calculations that may be performed at runtime.\r","\r","Storing objects with named properties in the JSON format would be inappropriate as labels would repeat over and over, creating a ridiculous amount of unnecessary information. However, storing arrays in the JSON standard facilitates the handling of files in the context of JavaScript and Node.JS.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a record definition node, select *Add Record Definition* on the product definition node menu. A record definition node is created along with the first record property.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Record Property","definition":"A record property is a piece of information that may be stored as part of the dataset or made available as a calculated property.","content":["\r","\r","Records may have as many properties as required. \r","\r","{% include important.html content=\"The order in which record properties are defined around the parent record definition node is the order in which they are stored in the actual record.\" %}\r","\r","{% include tip.html content=\"The first two records are usually the *begin* and *end* records, featuring the corresponding datetimes that indicate when the record starts and ends.\" %}\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a record property, select *Add Record Property* on the bot's node menu.\r","\r"],"configuring":["\r","\r","Select *Configure Property* on the menu to access the configuration.\r","\r","```js\r","{\r"," \"codeName\": \"record-name\",\r"," \"isString\": false,\r"," \"isCalculated\": true\r","}\r","```\r","\r","* ```codeName``` is the name of the record as it is used in the bot's code. \r","\r","* ```isString``` determines if the field is a text string or if, in turn, is a numeric field. Dates are stored in the *epoch* format, which is numeric. The reason why this configuration is important is that fields that are strings need to be stored between \"double quotes\".\r","\r","* ```isCalculated``` determines if the field is stored in the dataset or if, instead, is calculated at a later stage. A value *true* means that the record is not stored. In the case ```isCaculated``` is not defined in the configuration, it is assumed to be false.\r","\r","[![Indicators-Record-Definitions-01](https://user-images.githubusercontent.com/13994516/69139160-3ce72000-0ac0-11ea-9566-a259c9ea6194.gif)](https://user-images.githubusercontent.com/13994516/69139160-3ce72000-0ac0-11ea-9566-a259c9ea6194.gif)\r","\r","The image above shows a record definition with four record properties.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Formula","definition":"A formula is a mathematical expression intended to determine a numerical value to be applied dynamically to a certain property.","content":["\r","\r","In the context of the trading engine, formulas are used to create user defined statistics.\r","\r","Formulas may use indicators and object properties made available by the trading engine. They must evaluate to a number.\r","\r","{% include note.html content=\"To learn how to write formulas, see [syntax overview](suite-syntax-overview.html).\" %}\r","\r"],"folderName":"trading_engine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Announcement Formula"},{"type":"Calculations Procedure","definition":"The calculations procedure processes information to be fed to calculated properties. Calculated properties are not stored in the data set; instead, they are calculated in real-time as the data is consumed by others.","content":["\r","\r","Bots store data in the minimized array format as a strategy to build the lightest possible datasets. For the same reason, a bot may choose not to store easily calculable information.\r","\r","For example, imagine an indicator that stores buy and sell volumes... does it *need* to store the total volume? Given that it is so easy to calculate, the answer is *probably* not. It is up to the developer to decide, but it is certainly not required.\r","\r","{% include note.html content=\"The calculations procedure is used to calculate properties that the developer chooses not to store in the dataset.\" %}\r","\r","{% include note.html content=\"To fully understand the role of the calculations procedure, please refer to the [data mining workflow](suite-data-mining-workflow.html) page.\" %}\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a calculations procedure, select *Add Missing Items* on the product definition node menu. Items that may be missing are created along with the basic structure of nodes required to define them.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Procedure Initialization","definition":"The procedure initialization is used to initialize variables used by the procedure loop.","content":["\r","\r","This is an example of a procedure loop code snippet, in particular, the code that initializes the array used in the calculation of the Popular SMAs product of the Simple Moving Average (SMA) indicator.\r","\r","```js\r","/* Initialization Code. */\r","variable.last200 = []\r","```\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a procedure initialization, select *Add Procedure Initialization* on the corresponding procedure node menu. A procedure initialization node is created along with the corresponding JavaScript node.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Procedure Loop","definition":"The procedure loop holds the JavaScript code that reads an input, processes the information, and generates an output recursively.","content":["\r","\r","{% include note.html content=\"Please refer to the [coding references](suite-coding-the-indicator-logic.html) page to learn how to code the indicator's logic.\" %}\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a procedure loop, select *Add Procedure loop* on the corresponding procedure node menu. A procedure loop node is created along with the corresponding JavaScript node.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Data Building Procedure","definition":"The data building procedure processes information to be fed to properties that are stored in the output dataset.","content":["\r","\r","This procedure holds the core logic of the bot, as it features the code that performs the calculations required to produce the new data set. The code is split between a procedure initialization and a procedure loop.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a data buildings procedure, select *Add Missing Items* on the product definition node menu. Items that may be missing are created along with the basic structure of nodes required to define them.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Trading Bot","definition":"Based on datasets exposed as products by other bots (counting sensors, indicators and even other trading bots), a trading bot applies the trading logic defined on a trading system to, on one side, generate a complete trading simulation (outputting datasets that include trades, the action of strategies, validation of conditions, etc.), and on the other side, manage the execution of orders when on a forward testing or live trading session.","content":["\r","\r","Trading bots are complex pieces of software. The system does not yet encourage the creation of further trading bots, as it is not currently possible to create them with minimal coding. However, developers are free to clone the existing trading bot and improve it as they see fit.\r","\r"],"folderName":"data_mine","adding":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Plotter","definition":"A plotter is a device used to produce a graphic representation of datasets generated by bots.","content":["\r","\r","Plotters usually have a one-to-one relationship with bots, as they are often created as a customized solution. However, in practice, there is no constraint to creating any number of plotters for a single bot or a single plotter for multiple bots.\r","\r","The overall workflow of a plotter, while reading a dataset, consists in:\r","\r","* Applying a set of rules to identify certain data points;\r","\r","* Use those points to form lines and polygons;\r","\r","* Apply graphical styles to those lines and polygons.\r","\r","Those actions are performed recursively for each record, and the graphics are plotted on the charts in real-time as data is processed.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a plotter, select *Add Plotter* on the data mine node menu. An indicator bot is created along with the basic structure of nodes required to define it.\r","\r"],"configuring":["\r","\r","Select *Configure Plotter* on the menu to access the configuration.\r","\r","```json\r","{\r"," \"codeName\": \"Plotter-Name\"\r","}\r","```\r","\r","* ```codeName``` is the name of the plotter as it is used within the bot's code.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Trading System","definition":"A trading system is a framework handling the low-level logic that serves to structure the processes and methods used to implement and deploy trading strategies.","content":["\r","\r","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 operating on the same market and sharing the same initial capital allocation.\r","\r","You use a trading system to define strategies following the Superalgos Protocol, splitting strategies into four stages: trigger, open, manage, and close.\r","\r","The concept of describing strategies in stages is fundamental to the methodical aspect of the trading system, as it provides a framework to run every strategy with the same framework, which contributes to developing scalable trading systems that may grow to any number of strategies.\r","\r","When a trading system features more than one strategy, the first strategy has precedence over the second, the second over the third, and so on. This means that strategies are evaluated in a sequence. When a given strategy is triggered-on, the remaining strategies in the queue are no longer evaluated until the strategy triggers off. In other words, when multiple strategies are deployed within a single trading system, only one strategy may trade at any given moment, and precedence is given by the order around the trading system node.\r","\r","As a corollary to the above, if you wish strategies to operate in different markets, or you wish strategies to be able to take positions simultaneously, then you must set up those strategies in different trading systems.\r","\r","{% include important.html content=\"Changes made to trading systems shipping with Superalgos may not be saved at the workspace level. If you wish to modify those hierarchies and use them in such modified versions, you need to clone them and modify the clone instead.\" %}\r","\r"],"folderName":"trading_system","starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"adding":["\r","\r","To add a trading system, select *Add Trading System* on the workspace node menu. \r","\r","{% include tip.html content=\"You may work with as many trading systems as you wish\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Trading Strategy","definition":"A trading strategy is a set of actions occurring in stages, designed to achieve a specific goal within a broader plan, via taking and managing positions.","content":["\r","\r","The definition of a strategy may be analyzed in three sections:\r","\r","{% include callout.html type=\"success\" content=\"A strategy is a set of actions occurring in stages\" %}\r","\r","Strategies are defined in the following stages:\r","\r","* Trigger Stage\r","* Open Stage\r","* Manage Stage\r","* Close Stage\r","\r","These stages are played in a sequence: once a strategy is *triggered* it looks to *open* a position; once a position is open, it is time to *manage* it as the trade develops; and once a stop or take profit target is hit, it is time to *close* the position.\r","\r","While stages are played in a sequence, upon execution there are overlaps. That is, a stage doesn't need to be closed for the next stage to be opened. The framework sets a clear separation of the concepts embodied in each stage to facilitate the process of defining and developing a trading system. But the truth is that, both at the conceptual level and during execution, the lines between stages are rather blurry.\r","\r","{% include callout.html type=\"success\" content=\"designed to achieve a specific goal within a broader plan\" %}\r","\r","Your investment plan or trading career may have any number of goals *(e.g.: accumulating a certain asset, diversifying on a basket of coins, annual profit targets, etc.)*. If you attempt to achieve more than one goal with a single strategy, you will sooner or later run into problems. It may be doable, but the strategy would certainly be more complex than is necessary or desirable. In any case, the logical thing to do is to analyze each goal separately so that you may design (at least) one clear, straightforward strategy for each goal.\r","\r","One of the edges granted by trading automation is the capacity to develop and deploy an unlimited number of strategies. At the same time, Superalgos allows the administration of complexity by breaking down and structuring concepts in small units: a trading system contains strategies, which contain stages, which contain specific definitions. \r","\r","Understanding that keeping things simple is important will help you develop a robust and extensible arsenal of bots. Simplicity is the key to sustainability.\r","\r","In other words, the infrastructure provided by Superalgos enables the hyperspecialization of strategies. Do not aim to trade in all sorts of market situations with the same strategy. Instead, develop a strategy for each market situation you wish to trade.\r","\r","{% include callout.html type=\"success\" content=\"via taking and managing positions\" %}\r","\r","The definition of strategy points to the concept of a *position*. A position is a process that exchanges the base asset for the quoted asset and that—after some time, as the position develops and targets are hit—exchanges back the quoted asset for the base asset. \r","\r","The framework implemented in the Superalgos Protocol is optimized to work with such a concept.\r","\r","However, Superalgos is flexible enough to allow you to override this hard interpretation of the concept of *a position*. For example, you may design market-making strategies, a strategy to balance portfolios, or develop all sorts of ideas that don't necessarily fit in that part of the definition.\r","\r"],"folderName":"trading_system","starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"adding":["\r","\r","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.\r","\r","{% include tip.html content=\"You may work with as many strategies as you wish. \" %}\r","\r","{% include important.html content=\"Strategies within the same trading system work in the same market, have the same base asset, and —most importantly—share the same capital. This means that only one strategy in the trading system may be triggered at any one point and that no other strategy in the trading system may be triggered until the first one is triggered off. If you wish to have more than one strategy trading at the same time, then those strategies must be put in separate trading systems. \" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Trigger Stage","definition":"The trigger stage deals with monitoring the market in search of trading opportunities with the corresponding strategy.","content":["\r","\r","A trading system may have multiple strategies designed for the same market.\r","\r","An important aspect of trading systems is that they are allocated a certain amount of capital (see the base asset parameter of the trading session). As a consequence, strategies within a trading system share a certain capital allocation. \r","\r","The logic behind the concept of the trigger stage assumes that different strategies within a trading system may be specialized for trading in different market situations. The trigger stage in each strategy is, therefore, the mechanism by which any particular strategy within the trading system may be selected to trade, given any particular market situation.\r","\r","The triggering-on of a strategy effectively blocks the selection of any other strategy in the trading system and reserves the whole capital allocation for the one strategy selected, until the strategy is triggered-off.\r","\r","Therefore, if certain strategies are meant to trade under the same market situations and open trades concurrently, then those strategies should be deployed in separate trading systems.\r","\r","Once a strategy is triggered, the strategy may decide—or not—to take a position. If a position is taken, then the rest of the stages eventually become active.\r","\r","However, the strategy may also be triggered off without taking a position. When a strategy is triggered off, the trading system goes back to monitoring the trigger-on definitions for all strategies, and capital is released to be used by whatever strategy is triggered-on next.\r","\r"],"folderName":"trading_system","starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"adding":["\r","\r","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.\r","\r","{% include note.html content=\"Only one trigger stage may exist in each strategy.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Trigger On Event","definition":"The trigger-on event defines the set of rules that need to be met for the corresponding strategy to be triggered on. A strategy that is triggered may use all the capital available to the trading system, and prevents other strategies in the system from triggering.","content":["\r","\r","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.\r","\r","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.\r","\r"],"folderName":"trading_system","starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"adding":["\r","\r","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.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Trigger Off Event","definition":"The trigger-off event defines the situation in which the corresponding strategy shall be triggered-off. A strategy that is triggered-off releases the capital in reserve and makes it available to other strategies in the trading system.","content":["\r","\r","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.\r","\r","Once a strategy is triggered-on, only two possible scenarios may follow. Either the take position event is triggered, thus, taking a position, or the trigger-off event is triggered first.\r","\r","In the first scenario, the strategy remains *on* until the position is closed. As the position is closed, the strategy is triggered-off. In the second scenario, the strategy is triggered-off immediately.\r","\r"],"folderName":"trading_system","starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"adding":["\r","\r","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.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Take Position Event","definition":"The take position event defines the situation that needs to be met to take a position.","content":["\r","\r","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.\r","\r","Therefore, the take position event is defined with its own set of situations and conditions.\r","\r","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 runtime evaluation of the trading system shifts from the trigger stage to the open stage. \r","\r"],"folderName":"trading_system","starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"adding":["\r","\r","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.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Open Stage","definition":"The open stage deals with the definitions that make up the logic to enter a position, including the target rate and size, and order execution.","content":["\r","\r","The open stage comes into play once the take position event is triggered. \r","Conceptually, the open stage deals with the details concerning how the position shall be opened once the decision to take a position has been made. That is, the open stage does not participate in the process of deciding whether a position should be open or not.\r","\r","To take a position, several definitions are required. In particular, those concerning targets, such as the rate and size of the position, and the logic of the execution strategy, that is, how many of which orders shall be placed at the exchange—and when—to enter the position.\r","\r","The open stage closes as soon as one of the following events happen:\r","\r","* the target size gets filled,\r","\r","* the close stage event is triggered,\r","\r","* the take profit or stop loss targets are hit.\r","\r"],"folderName":"trading_system","starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"adding":["\r","\r","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.\r","\r","{% include note.html content=\"Only one open stage may exist in each strategy.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Close Stage Event","definition":"The close stage event defines the set of rules that need to be met for the corresponding stage to be closed.","content":["\r","\r","Both the open and close stages are closed once the target size is filled. \r","\r","However, Superalgos allows an extra level of control so that the user may choose to close either stage given specific market situations. Such is the intent of the close stage event.\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Initial Targets","definition":"The initial targets node holds the most basic definitions about the position to be taken: the target rate and the target size.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Managed Stop Loss","definition":"The managed stop loss node features the definition of the phases that make up the management of the stop loss target as the position develops.","content":["\r","\r","A stop loss target is a crucial element of a trading strategy, as it is the device in charge of preserving capital. Used wisely, the management of the stop loss may also play the role of protecting unrealized profits. \r","\r","The system for managing the stop loss provided by Superalgos is highly flexible. It may start as simple as a constant value at a certain rate, but may switch to a trailing stop as soon as the price moves away from the target rate by a certain percentage, or when a certain market situation arises.\r","\r","In fact, the formula may change as many times as required, as you may set up unlimited phases, and switch back and forth as required using predefined events to make the switch.\r","\r","{% include note.html content=\"The above example of a constant stop loss followed by a trailing stop is merely an example of a typical setup. The formulas you use to determine the rate of the target on each phase may be anything you choose, thus, you may achieve whatever behavior you imagine and can describe mathematically.\" %}\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add a stop node, select *Add Missing Items* on the manage stage 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.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Phase","definition":"The management of take profit and stop loss targets is done in phases. Phase 1 sets the initial targets, either for the managed stop loss or the managed take profit, and becomes active as soon as the first order is placed. Subsequent phases allows switching to different formulas given certain market situations.","content":["\r","\r","The default management of phases is sequential, meaning that phase 2 comes after phase 1, phase 3 comes after phase 2, and so on. \r","\r","To switch from one phase to the next phase in the sequence, the next phase event is used. When the situation described in the next phase event validates ```true```, the switch occurs and the next phase becomes the active phase.\r","\r","However, management does not need to happen sequentially. By using the move to phase event instead of the next phase event, the system may activate any other phase and not just the one next in the sequence.\r","\r","Both events may be used at the same time, and whichever event is triggered first takes precedence.\r","\r","{% include note.html content=\"Notice that stop loss and take profit phases are independent and defined separately from each other, each below the corresponding managed stop loss and managed take profit nodes.\" %}\r","\r","{% include note.html content=\"The value of the target set for a phase is expressed by a formula. Learn more about [formulas](suite-situations-conditions-formulas.html) and how to write them.\" %}\r","\r","{% include tip.html content=\"This explanation about phase 1 may be extended to any other phase, as they all work similarly, and it applies both for managed stop loss phases and managed take profit phases.\" %}\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add a new phase, select *Add Phase* on the stop or take-profit node menu. A new phase is added along with the basic structure of nodes required to define each of them and their events.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Next Phase Event","definition":"The next phase event determines when there should be a switch of phases to the next phase in a predefined sequence.","content":["\r","\r","The management of a position is —by default—done in sequential phases, each phase with its formula. To move from one phase to the next, a situation you define must be validated. \r","\r","When that happens, the next phase event is triggered, the current phase is abandoned, and the next phase is activated. From that instant on, the system evaluates the formula corresponding to the next phase.\r","\r","The sequence of phases may be as long as the number of phases you choose to add and define. There may be unlimited numbers of phases.\r","\r","{% include note.html content=\"Events are triggered by situations, which are defined by conditions. Both are explained in the situations, conditions, and formulas page.\" %}\r","\r","{% include tip.html content=\"To set up a next phase event, add the node and define the situation that should trigger the event.\" %}\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add a next phase event, select *Add Next Phase Event* on the corresponding phase node menu. The event is added along with the basic structure of nodes to define it.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Move To Phase Event","definition":"The move to phase event determines when there should be a switch of phases from the current phase to an arbitrary phase determined by a reference.","content":["\r","\r","While phases are defined in a sequence and you may choose to manage the position by shifting from one phase to the next in the sequence, the move to phase event offers an alternative.\r","\r","With the move to phase event, you may arbitrarily decide which will be the next phase. To do that, you must establish a reference from the move to phase event, to the phase that should be activated once the event is triggered.\r","\r","Any number of move-to-phase events may be set up for each and every phase, allowing complete flexibility on how the position is managed. This feature allows setting up versatile position-management algorithms that may switch to different formulas back and forth, or in any configuration imaginable.\r","\r","{% include note.html content=\"A move-to-phase event must reference a phase node. When the situation in the move-to-phase event evaluates ```true``` the management shifts to the referenced phase.\" %}\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add a move-to-phase event, select *Add Move to Phase Event* on the corresponding phase node menu. The event is added along with the basic structure of nodes to define it.\r","\r","{% include note.html content=\"Remember to establish a reference with the phase you wish to activate once the situation associated with the event validates true.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Managed Take Profit","definition":"The managed take profit node features the definition of the phases that make up the management of the take profit target as the position develops.","content":["\r","\r","A take profit target bears an important role in your strategy, as it plays a crucial role in determining the risk/reward ratio of the trading opportunity that materialized, and upon which your strategy acted to take a position.\r","\r","The foremost goal of trading is to increase your capital, and how you set your initial take profit target and manage it afterward determines how much you may increase your capital given a favorable price action.\r","\r","{% include note.html content=\"The system provides the same functionality for managing the take profit target as explained for the managed stop loss target, so please make sure you go through that section too. \" %}\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add a take profit node, select *Add Missing Items* on the manage stage 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.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Target Size In Base Asset","definition":"Target size in base asset is used to define the size of the position, denominating it in the base asset.","content":["\r","\r","The system supports defining the size of the position in either asset involved in the market: the base asset, or the quoted asset, as per the exchange listing of the market. \r","\r","The target size may be defined in one of the two assets only, to avoid inconsistencies. \r","\r","The target size is the maximum size the position may achieve. That is, the definition of the target size is used as a cap for the total size of orders that may be placed during the open stage.\r","\r","If you prefer to define the size of the position denominated in the base asset, then use this node and delete the target size in quoted asset node.\r","\r","{% include important.html content=\"Only one target size definition may exist at a time.\" %}\r","\r","Even though the definition of the target size is denominated in one of the two assets in the market, the system keeps track of accounts for both assets. That is, performance metrics such as profit loss, ROI, hit ratio, or the annualized rate of return are calculated both based on the base asset and the quoted asset. In fact, metrics are also calculated in a consolidated manner, taking into account both assets at the same time. \r","\r","All of this information is made available for multiple contexts, for instance, for each position or the whole episode, through the data structure of the trading engine.\r","\r","When tracking the results of your trading operation, make sure you refer to the set of accounts that make sense for your trading system. This will all become clearer once you read about the trading engine and the layer managers available on the charts.\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Target Size In Quoted Asset","definition":"Target size in quoted asset is used to define the size of the position, denominating it in the quoted asset.","content":["\r","\r","If you prefer to define the size of the position denominated in the quoted asset, then use this node and delete the target size in base asset node.\r","\r","{% include important.html content=\"Make sure you read the definition of the target size in base asset node to get the proper context for this definition.\" %}\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Target Rate","definition":"The target rate is a reference rate that, in combination with the placement of managed stop loss and managed take profit targets, is used to determine whether the targets have been hit.","content":["\r","\r","The system needs to determine when the managed stop loss and managed take profit targets have been hit. To do this, the system observes how the user places the targets in relation to the target rate.\r","\r","*For example:*\r","\r","If the phase 1 managed stop loss target is placed below the target rate and the phase 1 managed take profit target above it, the system assumes that:\r","\r","* the stop loss target is hit when the current rate is equal to or smaller than the managed stop loss value;\r","\r","* the stop loss target is hit when the current rate is equal to or greater than the managed take profit value;\r","\r","The reversed example is true, as well.\r","\r","This is how the system uses the target rate internally.\r","\r","Additionally, defining a target rate at the level of the stage may be of use so that you may retrieve the value from formulas while setting the rate of limit orders.\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Order Rate","definition":"The order rate node defines the rate of limit orders.","content":["\r","\r","Because the purpose of limit orders is to have control over the rate at which the order is executed, the definition of the order rate is required for all limit orders.\r","\r","{% include note.html content=\"Please, read about [limit orders](suite-strategies-open-execution.html#limit-buy-order) to complement the information in this definition.\" %}\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Open Execution","definition":"The open execution node groups all execution algorithms involved in the process of opening a position.","content":["\r","\r","One of the crucial elements that make up trading intelligence is the capacity to control every aspect of order execution, as the execution itself entails strategic elements that directly affect performance. \r","\r","Superalgos' trading engine is designed as a generic infrastructure that allows building execution logic from the ground up, with as much simplicity or complexity as may be required.\r","\r","The trading system splits the definitions of the execution logic by trading strategy. That is, each strategy in a trading system may have its execution logic. \r","\r","The next layer of control comes in the form of execution algorithms. Each strategy may have as many algorithms as required, and each algorithm may have as many instructions as required.\r","\r","This model allows the granular control of orders with which you may build algorithms that may interact with other algorithms, and so on.\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Execution Algorithm","definition":"An execution algorithm is a set of instructions used to place and manage orders at the exchange.","content":["\r","\r","Any given strategy may have simple or very complex execution requirements. To deal with complexity, Superalgos allows users to set up as many execution algorithms as required.\r","\r","Then, the logic in each algorithm may remain simple, while the combined work of multiple algorithms may deal with the required complexity.\r","\r","Each algorithm may be assigned a fraction of the target size (see the configuration section), thus, the extent of each algorithm's involvement in the execution is defined by this parameter.\r","\r","An execution algorithm is a set of instructions in the sense that the orders defined in each algorithm are themselves the instructions. That is, an execution algorithm is a set of predefined orders which may be created or canceled given specific market situations.\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","To configure the {{ title | downcase }} node, select *Configure* on the menu. \r","\r","```json\r","{\r"," \"percentageOfStageTargetSize\": 100 \r","}\r","```\r","\r","* ```percentageOfStageTargetSize``` is the definition of how much of the target size of the whole stage will be handled by the one specific execution algorithm, expressed as a percentage of the total target size. Posible values are real numbers between ```0``` and ```100```, including the extremes. If you set the value to ```0```, the algorithm will not be executed.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Market Buy Order","definition":"A market buy order is an instruction sent to the exchange to buy the base asset, for immediate execution at current market prices.","content":["\r","\r","Traders usually use market orders when the priority is the certainty of execution over the rate of execution. Depending on the size of the order and the liquidity of the particular market/exchange, market orders may experience more or less slippage.\r","\r","###### Market Orders' Rate\r","\r","Users have no control over the rate at which a market order is filled. The exchange fills the order with available bids/asks at the time of execution.\r","\r","{% include tip.html content=\"The information below this banner is valid for all types of orders.\" %}\r","\r","###### Order Size\r","\r","As explained in the definition of the execution algorithm, each algorithm is allocated a percentage of the target size defined under the initial targets node.\r","\r","*The simplified logic for non-coders:*\r","\r","```algorithmSize = targetSize * percentageOfStageTargetSize / 100```\r","\r","*The actual code:*\r","\r","```js\r","let algorithmSizeInBaseAsset = tradingEngineStage.stageBaseAsset.targetSize.value * executionAlgorithm.config.percentageOfStageTargetSize / 100\r","\r","let algorithmSizeInQuotedAsset = tradingEngineStage.stageQuotedAsset.targetSize.value * executionAlgorithm.config.percentageOfStageTargetSize / 100\r","```\r","\r","Similarly, the size of an order is defined as a percentage of the size that the particular algorithm is allowed to execute *(see the configuration)*. \r","\r","*The simplified logic for non-coders:*\r","\r","```orderSize = algorithmSize * percentageOfAlgorithmSize / 100```\r","\r","*The actual code:*\r","\r","```js\r","tradingEngineOrder.orderBaseAsset.size.value = algorithmSizeInBaseAsset * tradingSystemOrder.config.percentageOfAlgorithmSize / 100\r","```\r","\r","Because each execution algorithm may define multiple orders, the typical scenario is that all orders defined within an algorithm add up to 100% of the size allocated to the algorithm. \r","\r","However, it is up to the user how to manage this setting, as different hacks may be found to achieve different behaviors.\r","\r","{% include callout.html type=\"success\" content=\"If orders defined add up to more than 100% of the size allocated to the algorithm, the trading engine does not enforce a cap.\" %}\r","\r","Pretty much like the user may decide to define the size of orders within an algorithm above or below the 100% mark, the same is true when defining multiple algorithms. In other words, the user may choose to set up algorithms whose combined sizes amount to more or less than 100%.\r","\r","In cases in which the combined sizes amount to less than 100%, the target size would be partially filled at best. On the other hand, in cases in which the combined sizes amount to more than 100%, then the orders and/or algorithms would compete with each other.\r","\r","{% include callout.html type=\"success\" content=\"The one validation the trading engine does is to enforce the target size defined under the initial targets node. The target size is treated as a hard cap, so that no position may ever be sized larger than the target.\" %}\r","\r","If the order size as defined would cause the target size to be breached, then the order size is lowered to match the hard cap.\r","\r","*The simplified logic for non-coders:*\r","\r","```js\r","if ( targetSize + sizePlaced > targetSize )\r"," { orderSize = targetSize - sizePlaced }\r","```\r","\r","*The actual code:*\r","\r","```js\r","if (\r"," tradingEngineOrder.orderBaseAsset.size.value + tradingEngineStage.stageBaseAsset.sizePlaced.value >\r"," tradingEngineStage.stageBaseAsset.targetSize.value\r"," ) {\r"," tradingEngineOrder.orderBaseAsset.size.value = tradingEngineStage.stageBaseAsset.targetSize.value - tradingEngineStage.stageBaseAsset.sizePlaced.value\r"," }\r","```\r","\r","{% include note.html content=\"See the order's configuration to learn how to set up the order size.\" %}\r","\r","###### Placing and Filling of Orders\r","\r","The trading engine keeps track of the amounts placed and the amounts filled based on the feedback obtained from the exchange, and makes the information available in the size placed and size filled nodes. The nodes are present in multiple contexts, such as the particular stage (open and close) or the particular order type, and are denominated both in the base asset and quoted asset. You may learn more about how to track the size placed and size filled on the trading engine pages.\r","\r","###### Closing of Orders\r","\r","Orders may be closed upon the occurrence of the following two events:\r","\r","* The exchange reports the order was filled. In such a case, the trading engine closes the order.\r","\r","* The cancel order event is triggered. This is an event the user may configure with the typical set up of situations and conditions.\r","\r","###### Spawning Multiple Orders\r","\r","All of the available types of orders may be configured so that multiple orders may be spawned, one after the other, through the same order definition.\r","\r","This allows, for example, setting an order for 1% of the size allocated to the algorithm, and have the trading engine spawn one order per execution cycle until the 100% mark is reached. Such a feature may allow many more hacks and is yet another tool that—combined with the rest—enables a great deal of control over orders execution.\r","\r","A new instance of an order may be spawned only under the following context:\r","\r","* The previous instance of the order is closed. That is, two instances of the same order may not exist at the same time.\r","\r","* The size filled at the level of the execution algorithm is within the limit established in the algorithm's configuration.\r","\r","* The size filled at the level of the stage must be within the target size defined under the initial targets node.\r","\r","{% include note.html content=\"See the order's configuration to learn how to configure the parameter affecting this behavior.\" %}\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","To configure the {{ title | downcase }} node, select *Configure* on the menu. \r","\r","```json\r","{\r"," \"percentageOfAlgorithmSize\": 100, \r"," \"spawnMultipleOrders\": false \r","}\r","```\r","\r","* ```percentageOfAlgorithmSize``` is the definition of how much of the size handled by the algorithm shall be allocated to this particular order. Posible values are real numbers between ```0``` and ```100```, including the extremes. If you set the value to ```0```, the order will not be executed.\r","\r","* ```spawnMultipleOrders``` is the parameter that indicates whether additional spawned orders are allowed (```true```) or not (```false```).\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Market Sell Order","definition":"A market sell order is an instruction sent to the exchange to sell the base asset, for immediate execution at current market prices.","content":["\r","\r","{% include tip.html content=\"Please read the definition of [market buy order](suite-strategies-open.html#market-buy-order) for relevant information about how orders in general—and market orders in particular—work. \" %}\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","To configure the {{ title | downcase }} node, select *Configure* on the menu. \r","\r","```json\r","{\r"," \"percentageOfAlgorithmSize\": 100, \r"," \"spawnMultipleOrders\": false \r","}\r","```\r","\r","* ```percentageOfAlgorithmSize``` is the definition of how much of the size handled by the algorithm shall be allocated to this particular order. Posible values are real numbers between ```0``` and ```100```, including the extremes. If you set the value to ```0```, the order will not be executed.\r","\r","* ```spawnMultipleOrders``` is the parameter that indicates whether additional spawned orders are allowed (```true```) or not (```false```).\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Limit Buy Order","definition":"A limit buy order is an instruction sent to the exchange to buy the base asset, for execution at a specific rate or better.","content":["\r","\r","Traders usually use limit orders when the priority is the rate of execution over the certainty of execution. Limit orders are much more efficient than market orders in terms of rate, particularly for larger sizes which—when executed as market orders—may suffer considerable slippage filled as fast as possible with the order book of the particular instant.\r","\r","Also, many exchanges regard limit orders as market makers, that is, orders that bring liquidity to the market, and, therefore, may charge relatively better fees.\r","\r","###### Limit Orders' Rate\r","\r","Superalgos users must define the rate at wish they wish the order to be filled. The exchange is responsible for not filling the order unless it can match it with bids/asks at the rate set by the user, or at a better rate.\r","\r","Small discrepancies between the actual rate and the order rate are to be expected, as not all exchanges handle decimals and other conversions involving, for example, fees, in the same manner.\r","\r","{% include note.html content=\"Limit orders must define a rate using the appropriate child node, otherwise, the target rate defined as an initial target is used. If no rate is defined at all, the system stops with an error upon execution. The configuration of the order deals with the size. \" %}\r","\r","{% include tip.html content=\"Please read the definition of [market buy order](suite-strategies-open.html#market-buy-order) for relevant information about how orders in general work, in particular, the section about Order Size, Filling of Orders, Closing of Orders, and Spawning Multiple Orders. \" %}\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","To configure the {{ title | downcase }} node, select *Configure* on the menu. \r","\r","```json\r","{\r"," \"percentageOfAlgorithmSize\": 100, \r"," \"spawnMultipleOrders\": false \r","}\r","```\r","\r","* ```percentageOfAlgorithmSize``` is the definition of how much of the size handled by the algorithm shall be allocated to this particular order. Posible values are real numbers between ```0``` and ```100```, including the extremes. If you set the value to ```0```, the order will not be executed.\r","\r","* ```spawnMultipleOrders``` is the parameter that indicates whether additional spawned orders are allowed (```true```) or not (```false```).\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Limit Sell Order","definition":"A limit sell order is an instruction sent to the exchange to sell the base asset, for execution at a specific rate or better.","content":["\r","\r","{% include tip.html content=\"Please read the definition of [limit buy order](suite-strategies-open.html#limit-buy-order) for relevant information about how limit orders work. Also, please read the definition of [market buy order](suite-strategies-open.html#market-buy-order) for relevant information about how orders in general work, in particular, the section about Order Size, Filling of Orders, Closing of Orders, and Spawning Multiple Orders. \" %}\r","\r","\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","To configure the {{ title | downcase }} node, select *Configure* on the menu. \r","\r","```json\r","{\r"," \"percentageOfAlgorithmSize\": 100, \r"," \"spawnMultipleOrders\": false \r","}\r","```\r","\r","* ```percentageOfAlgorithmSize``` is the definition of how much of the size handled by the algorithm shall be allocated to this particular order. Posible values are real numbers between ```0``` and ```100```, including the extremes. If you set the value to ```0```, the order will not be executed.\r","\r","* ```spawnMultipleOrders``` is the parameter that indicates whether additional spawned orders are allowed (```true```) or not (```false```).\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Create Order Event","definition":"The create order event controls the placement of orders.","content":["\r","\r","Even though the decision to take a position may have been made, the user may still decide to exert additional control over the placement of orders. Such is the intent of the create order event.\r","\r","An order defined in an execution algorithm will be executed only if the event evaluates ```true```.\r","\r","If you wish orders to be placed as defined immediately after the take position event has been triggered, the use the statement ```true``` your only create order event condition.\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Cancel Order Event","definition":"The cancel order event makes cancelling limit orders possible.","content":["\r","\r","The cancel order event defines the market situations in which a limit order shall be canceled. When the event is triggered, the order is closed, even when the order may have been partially filled. In such a case, the size filled remains as is, and all accounts are computed accordingly, with the partial fill.\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Simulated Exchange Events","definition":"The simulated exchange event node allows to override the parameters set at the level of the trading session on a per order basis to determine how each order shall be simulated.","content":["\r","\r","The offspring nodes under simulated exchange events allow setting order-specific parameters for the size filled, actual rate, and fees paid, so that each order may be simulated in a specific manner.\r","\r","If either of the offspring nodes is not present or is undefined, then the parameters configured at the level of the trading session are factored in by default.\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Simulated Partial Fill","definition":"The simulated partial fill parameter allows simulating the partial fill of orders.","content":["\r","\r","Upon each execution, the simulation verifies if the current candle intersects the rate set for the order. If it does, it uses the value in this parameter as a factor to determine and keep track of what percentage of the order is filled.\r","\r","The same process repeats for each subsequent candle, until the order is filled.\r","\r","When the parameter is not present or undefined, the simulation assumes the order is filled as soon as the rate is hit.\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","To configure the {{ title | downcase }} node, select *Configure* on the menu. \r","\r","```json\r","{ \r"," \"fillProbability\": 1\r","}\r","```\r","\r","* ```fillProbability``` indicates the probability of an order getting filled upon each tag of the price. Values may range from ```0``` to ```1```. The value ```0``` indicates that there are 0% chances of the order getting filled. With such a setting, the order will never get filled in the simulation. The value ```1``` indicates that there is a 100% probability of the order getting filled. With such a setting, the order is filled upon the first tag of the price. A value of ```0.5``` indicates a 50% probability, thus, it takes two tags of the price for the order to fill completely with such a setting.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Simulated Actual Rate","definition":"The simulated actual rate node allows setting a specific rate value for the simulation of each order, overriding the slippage parameter of the trading session.","content":["\r","\r","The slippage parameter of the trading session allows setting a blanket slippage for all orders in the trading system. The simulated actual rate node allows control on a per-order basis, so each order may be simulated with a specific rate. \r","\r","{% include note.html content=\"If the node is not present or the parameter is undefined, the slippage parameter set up for the trading session is used.\" %}\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Simulated Fees Paid","definition":"The simulated fees paid node allows setting a specific fee for the simulation of each order, overriding the fee structure parameter of the trading session.","content":["\r","\r","The fee structure parameter of the trading session allows setting a blanket fee structure (maker and taker) for all orders in the trading system. The simulated fees paid node allows control on a per-order basis, so each order may be simulated with a specific fee. \r","\r","{% include note.html content=\"If the node is not present or the parameter is undefined, the fee structure parameter set up for the trading session is used.\" %}\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add Missing Items* on the parent node menu. \r","\r"],"configuring":["\r","\r","To configure the {{ title | downcase }} node, select *Configure* on the menu. \r","\r","```json\r","{ \r","\"percentage\": 0.1\r","}\r","```\r","\r","* ```percentage``` is the percentage to be applied to calculate the fees for the specific order.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Manage Stage","definition":"The manage stage deals with the setting and management of stop loss and take profit targets, both to protect your capital and to increase the efficiency of your trading system.","content":["\r","\r","The first and foremost rule of trading is to preserve capital and its main goal is to increase it.\r","\r","Conceptually, a position is not an instantaneous event, but an event which has an opening, a period of maturation, and a closing. The management of the position happens throughout the process.\r","\r","The concept of managing the position refers to the fact that the formulas that determine the take profit and stop loss targets may change as the position develops. A typical situation in which you may want to change your original take profit and stop loss formulas is when the position seems to be developing well in your favor.\r","\r","It may be in your best interest to manage the stop loss, moving the target in the direction that would help protect unrealized profits. It may also be in your interest to move the take profit target to extract a larger profit than originally expected. Or you may wish to set up a mechanism that closes the trade as soon as a certain market situation materializes.\r","\r","The management of take profit and stop loss is done independently of each other, in phases. Therefore, each concept has its own set of management phases.\r","\r","Each phase has its formula to describe the corresponding target. Users may define situations in which the current phase shall be abandoned and a different phase—with its formula—shall be implemented. \r","\r","Keep in mind that the position is in constant development, so there may be as many phases as you deem appropriate for your particular strategy.\r","\r","The idea of managing targets in phases derives from the notion that big market moves tend to provide clues as to what may come up next. For instance, rallies may accelerate as more traders join the move. Recognizable patterns may emerge. Signs of exhaustion may be identified.\r","\r","All of these considerations may feed the dynamic analysis performed in each phase as the position develops.\r","\r","Upon execution, the system verifies if the current candle has tagged either of the targets. If—or when—it does, the close stage kicks in and closing execution begins.\r","\r","{% include callout.html type=\"success\" content=\"It is crucial to understand that Superalgos does not place orders to close a position until the stop loss or take profit targets are hit. That is, stop loss and take profit are not orders sitting at the exchange waiting to be filled at a certain rate. Instead, Superalgos keeps track of targets internally, and places the orders at the exchange during the execution cycle in which it detects either of the targets has been hit.\" %}\r","\r","This behavior has advantages and disadvantages, but it was designed as is because the former outweigh the latter.\r","\r","By not placing stop or take profit orders at the exchange, Superalgos keeps your targets—and the underlying strategy—secret. This guarantees that such a crucial piece of information may not be used against you by the exchange itself or any third party that may have access to privileged information.\r","\r","On the other hand, not placing a stop order in advance may occasionally cause relatively more slippage, for instance, in cases of massive flash market moves. \r","\r","That said, the default behavior of the system may be hacked to avoid the eventual risk of excessive slippage: set your stop loss and take profit targets tighter than intended.\r","\r"],"folderName":"trading_system","starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"adding":["\r","\r","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.\r","\r","{% include note.html content=\"Only one manage stage may exist in each strategy.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Close Stage","definition":"The close stage deals with the definitions that make up the logic to close a position, including the target rate and size, and order execution.","content":["\r","\r","The close stage is opened when either the stop loss or take profit targets are hit. \r","\r","In a way, the close stage is virtually a mirror of the open stage, as the same definitions are required to close a position. There are a few logical differences, though.\r","\r","For example, in the open stage, you probably defined the target size as a function of the capital allocated to the trading system. In the close stage, you will likely want to define the target size as a function of the size filled, that is, the amount of the orders placed that was filled during the open stage.\r","\r"],"folderName":"trading_system","adding":["\r","\r","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.\r","\r","{% include note.html content=\"Only one close stage may exist in each strategy.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Close Execution","definition":"The close execution node groups all execution algorithms involved in the process of closing a position.","content":["\r","\r","The close execution section of the close stage works similarly to the open execution in the open stage. Please refer to the explanations of the open stage for the details.\r","\r"],"folderName":"trading_system","adding":["\r","\r","To add a close execution node, select *Add Close Execution* on the open stage node menu.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Social Bots"},{"type":"Telegram Bot"},{"type":"Announcement"},{"type":"Announcement Condition"},{"type":"Crypto Ecosystem","definition":"The crypto ecosystem is a hierarchy that contains definitions about third-parties, including exchanges and their markets, as well as accounts of users with those third parties.","content":["\r","\r","There is only one crypto ecosystem hierarchy. You will use it to define which exchanges and which markets you wish to work with, as well as the details of your accounts with those exchanges. \r","\r"],"folderName":"crypto_ecosystem","adding":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Super Actions"},{"type":"Signals Providers"},{"type":"Signals Provider"},{"type":"Crypto Exchanges","definition":"The crypto exchanges node groups definitions of the different exchanges the user may interact with.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"crypto_ecosystem","adding":["\r","\r","To add a crypto exchanges node, select *Add Crypto Exchanges* on the crypto ecosystem node menu. \r","\r","{% include note.html content=\"Only one crypto exchanges node may exist on the hierarchy.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Crypto Exchange","definition":"A crypto exchange node holds the definitions of assets and markets in a specific exchange.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"crypto_ecosystem","adding":["\r","\r","To add a crypto exchange, select *Add Crypto Exchange* on the crypto exchanges node menu. The crypto exchange node is created along with the rest of the basic structure of nodes required to define assets, markets and user accounts.\r","\r"],"configuring":["\r","\r","Select *Configure Crypto Exchange* on the menu to access the configuration.\r","\r","```json\r","{\r"," \"codeName\": \"binance\",\r"," \"API\": [\r"," {\r"," \"method\": \"fetchTrades\",\r"," \"fetchType\": \"by Id\",\r"," \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\r"," \"firstId\": \"f\"\r"," }\r"," ]\r","}\r","```\r","\r","* ```codeName``` is the name of the exchange as handled in the code of the system. \r","\r","* ```API``` holds a series of definitions used only in the case in which the sensor bot fetches trades (using the Historic-Trades process) instead of the OHLCV process that fetches one-minute candles and is the current default. In such a case, finding the right set of parameters to work with a specific exchange may be challenging, nd involves understanding how the exchanges API and the CCXT Library API work. In other words, there is no hard rule as of what each of the values should be. Determining each of this values requires exploring the exchange's API documentation, as well as the documentation of the CCXT Library.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Exchange Assets","definition":"The exchange assets node groups the definitions of assets.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"crypto_ecosystem","adding":["\r","\r","To add an exchange assets node, select *Add Exchange Assets* on the crypto exchanges node menu. The exchange assets node is created along with a first asset.\r","\r","{% include note.html content=\"Only one exchange assets node may exist on each exchange.\" %}\r","\r"],"configuring":["\r","\r","Select *Configure Exchange Assets* on the menu to access the configuration.\r","\r","```json\r","{ \r","\"addMissingAssets\": { \"quotedAsset\": \"BTC\"} \r","}\r","```\r","\r","* ```addMissingAssets``` acts as a filter to determine which assets of a (potentially long) list of assets listed at the exchange will be added when the *Add Missing Assets* option in the menu is used. Because many exchanges do not offer a list of assets, the system fetches assets from actual markets (pairs) listed at the exchange. You may add missing assets filtered by the ```quotedAsset``` or by the ```baseAsset```. For example, the above configuration would add all assets listed in markets in which BTC is the quoted asset.\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Asset","definition":"An asset node is the definition of an asset listed at the corresponding exchange.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"crypto_ecosystem","adding":["\r","\r","To add an asset, select *Add Asset* on the exchange assets node menu. \r","\r","To add assets in bulk, select *Add Missing Assets* on the exchange assets node menu. Beware that the exchange may handle hundreds of assets. Before using this option you may want to implement a filter using the exchange assets configuration.\r","\r","{% include /crypto_ecosystem/exchange-assets.md heading=\"\" icon=\"no\" adding=\"\" configuring=\"#####\" starting=\"\" content=\"no\" definition=\"no\" table=\"\" more=\"yes\"%}\r","\r"],"configuring":["\r","\r","Select *Configure Asset* on the menu to access the configuration.\r","\r","```json\r","{ \r","\"codeName\": \"BTC\"\r","}\r","```\r","\r","* ```codeName``` is the ticker of the asset as listed by the exchange (*i.e.:* BTC, BTH, ETH, LTC, BNB, USDT, USD, etc.)\r","\r","{% include note.html content=\"When a configured asset is within the system's icon catalog, the standard asset icon is replaced with the logotype of the corresponding asset.\" %}\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Exchange Markets","definition":"The exchange markets node groups the definitions of markets.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"crypto_ecosystem","adding":["\r","\r","To add an exchange markets node, select *Add Exchange Markets* on the crypto exchange node menu. The exchange markets node is created along with the basic structure of nodes to define the first market.\r","\r","{% include note.html content=\"Only one exchange assets node may exist on each exchange.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Market","definition":"A market is the definition of a pair of assets (i.e.: BTC-USDT) listed as a market in the corresponding exchange.","content":["\r","\r","{% include important.html content=\"Only markets that are effectively listed on the exchange may be configured and used with the system. Check with the exchange and make sure you understand what tickers they are using, which is the base asset and which the quoted asset on the listed markets.\" %}\r","\r"],"folderName":"crypto_ecosystem","adding":["\r","\r","To add a market, select *Add Market* on the exchange markets node menu. The market node is created along with the basic structure of nodes used to define the market. This option does not generate the super actions required to install and uninstall markets.\r","\r","To add markets in bulk, select *Add Missing Markets* on the exchange markets node menu. This option adds all markets listed at the exchange that may result from the combination of assets listed under the exchange assets node, along with the required super actions to intall those markets.\r","\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Exchange Accounts","definition":"The exchange accounts node groups the different accounts the user may have with the corresponding exchange.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"crypto_ecosystem","adding":["\r","\r","To add an exchange accounts node, select *Add Exchange Account* on the crypto exchange node menu. The exchange account node is created along with the basic structure of nodes used to define keys and user assets with the exchange.\r","\r","{% include note.html content=\"Only one exchange accounts node may exist on each exchange.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"User Account","definition":"A user account represents a single account with the corresponding exchange, holding the definitions of user assets, including keys and balances.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"crypto_ecosystem","adding":["\r","\r","To add a user account, select *Add User Account* on the exchange accounts node menu. The user account node is created along with the basic structure of nodes used to define keys and user assets with the exchange.\r","\r","{% include tip.html content=\"You may add and administer as many user accounts as you wish.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"User Assets","definition":"The user assets node groups the assets the user has at the exchange.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"crypto_ecosystem","adding":["\r","\r","To add user assets node, select *Add User Assets* on the user account node menu. The user assets node is created along with the first exchange account asset.\r","\r","{% include note.html content=\"Only one user assets node may exist under a user account.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"User Keys","definition":"The user keys node groups the various exchange account keys the user may have under the corresponding account with the exchange.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"crypto_ecosystem","adding":["\r","\r","To add user keys node, select *Add User Keys* on the user account node menu. The user keys node is created along with the first exchange account key.\r","\r","{% include note.html content=\"Only one user keys node may exist under a user account.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Exchange Account Asset","definition":"The exchange account asset represents a single asset the user has at the exchange.","content":["\r","\r","The exchange account asset is a reference to an asset defined under the exchange assets node.\r","\r"],"folderName":"crypto_ecosystem","adding":["\r","\r","To add an exchange account asset node, select *Add Asset* on the user assets node menu. \r","\r","{% include note.html content=\"Remember to establish a reference with an asset defined under the exchange assets node.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Exchange Account Key","definition":"The exchange account key holds the definition of the key name and secret provided by the corresponding exchange to access the user account via the exchange API.","content":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"folderName":"crypto_ecosystem","adding":["\r","\r","To add an exchange account key, select *Add Key* on the user keys node menu.\r","\r"],"configuring":["\r","\r","Select *Configure Key* on the menu to access the configuration.\r","\r","```json\r","{ \r","\"codeName\": \"Paste your exchange API name or label here\",\r","\"secret\": \"Paste your exchange API secret key here.\"\r","}\r","```\r","\r","* ```codeName``` is the name or label of your key, as supplied by the exchange.\r","\r","* ```secret``` is the *secret key* as supplied by the exchange.\r","\r","{% include warning.html content=\"To keep your exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing.\" %}\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Charting Space","definition":"The charting space is the hierarchy that governs the configuration of the charts, and the bidimensional space on which charts are drawn.","content":["\r","\r","Think of the charting space as a huge drawing board. You may have lots of information plotted on different parts of the space and use a viewport to look into that space.\r","\r","There is only one charting space hierarchy, thus all charts are configured here. As is common throughout the system, different concepts and elements of the charts such as scales, data layers and so on, are represented by nodes in the hierarchy. The system allows great flexibility on how to visualize information over the charts by adding, configuring, and arranging these nodes.\r","\r"],"folderName":"charting_space","adding":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"charts":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Dashboard","definition":"A dashboard is a collection of time machines, each containing any number of charts.","content":["\r","\r","The concept of the dashboard allows having multiple charts configured all at once, so that you may consult different exchanges, different markets, different time frames, or different technical studies on demand, simply by moving around and zooming in or out. You may put charts side by side, or even superimpose them to study market flows, search for arbitrage opportunities, or simply keep them in sight when you analyze particular market situations.\r","\r","At the moment, the functionality of a dashboard is trivial: grouping time machines. However, in the future, it will offer various features to enhance the user experience.\r","\r"],"folderName":"charting_space","adding":["\r","\r","To add a dashboard, select *Add Dashboard* on the Charting Space node menu.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"charts":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Time Machine","definition":"A time machine synchronizes multiple timeline charts over the same timeline. Timeline charts within a time machine may have different rate scales or time frame scales, but their time scale will always match.","content":["\r","\r","Think of a time machine as an aide that helps you keep any number of pieces of information synchronized on the same time scale. Every data structure that you set up within the same time machine, will always be synchronized in time. Put in other words, the open and closing datetime of each dataset will always be aligned on the vertical axis.\r","\r","On the other hand, when you arrange charts on different time machines, they are completely independent of one another.\r","\r"],"folderName":"charting_space","adding":["\r","\r","To add a time machine, select *Add Time Machine* on the Dashboard node menu.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"charts":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Viewport","definition":"The viewport is a window through which you may look into the charting space.","content":["\r","\r","The viewport offers an opening into the visual environment in which you may see, analyze and go over every piece of data involved in the process of trading cryptocurrencies:\r","\r","* Live and historic market data;\r","* Data crunched in the form of indicators;\r","* The specific effects of the rules you will program into your strategies, and how strategies behave during testing and live trading sessions.\r","\r","At this point, the system supports one viewport only. In the future, different viewports may give you direct access to different parts of the charting space.\r","\r","{% include note.html content=\"The information that is out of focus, that is, out of the viewport, is not read nor rendered graphically, thus, does not consume resources.\" %}\r","\r"],"folderName":"charting_space","adding":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"charts":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Time Scale","definition":"The time scale controls the scale of the horizontal axis, that is, the timeline of the corresponding time machine, and of all of the timeline charts within it.","content":["\r","\r","{% if include.heading == \"more\" %}##{% else %}{{include.heading}}{% endif %}### Scale Minimum and Maximum Values\r","\r","A time scale has a minimum and a maximum value. The minimum value is the value at the left border of the chart. The maximum, is the value at the right border of the chart.\r","\r","In technical terms, the minimum and maximum scale values are constantly changing as, whenever you pan across the charts, you are directly affecting the minimum and maximum scale values. That said, the actual scale doesn't change when panning across a chart.\r","\r","{% if include.heading == \"more\" %}##{% else %}{{include.heading}}{% endif %}### Automatic Scale\r","\r","The system features an automatic adjustment of the scale, which is turned on by default in our shared workspaces. The scale may be automatic in its minimum value, in its maximum value, or both. \r","\r","When the scale is automatic in the minimum value, the scale is adjusted so that the chart shows all data from the beginning of the market. Panning the charts under such setting has the effect of compressing and decompressing the data against the left border of the chart.\r","\r","When the scale is automatic in the maximum value, the scale is adjusted so that the chart shows all data until the end of the market. In such case, panning the charts has the effect of compressing and decompressing the data against the right border of the chart.\r","\r","When the scale is automatic in both the minimum and maximum value, the scale is adjusted so that the chart shows the whole market. In such case, when you click and drag to pan the charts, the settings turns back to manual on both ends of the chart.\r","\r","{% include note.html content=\"Having the time scale set to automatic by default helps finding the data as soon as it starts being processed the first time you run the Masters bot instances.\" %}\r","\r","{% if include.heading == \"more\" %}##{% else %}{{include.heading}}{% endif %}### Manual Scale\r","\r","The scale features a manual mode. When in manual mode the scale does not change, even if the minimum and maximum values change while panning through a chart. This is the natural state of the time scale. \r","\r"],"folderName":"charting_space","adding":["\r","\r","To add a time scale, select *Add Time Scale* on the time machine node menu.\r","\r"],"configuring":["\r","\r","Select *Configure Rate Scale* on the menu to access the configuration.\r","\r","```json\r","{\r"," \"fromDate\": \"2019-05-02T20:07:50.872Z\",\r"," \"toDate\": \"2019-05-22T20:28:21.515Z\",\r"," \"autoMinScale\": false,\r"," \"autoMaxScale\": false\r","}\r","```\r","\r","* ```minValue``` is a date in the Epoch time format that represents the value of the scale at the left border of the chart.\r","\r","* ```maxValue``` is a date in the Epoch time format that represents the value of the scale at the right border of the chart.\r","\r","* ```autoMinScale``` sets the mode of the scale for the minimum value; ```true``` sets the value to automatic, ```false``` sets the value to manual. \r","\r","* ```autoMaxScale``` sets the mode of the scale for the maximum value; ```true``` sets the value to automatic, ```false``` sets the value to manual. \r","\r","{% include note.html content=\"The ```minValue``` and ```maxValue``` may be entered via the design space and the charts. Both input methods are synchronized and the resulting values are stored in the node.\" %}\r","\r"],"charts":["\r","\r","{{include.charts}}# Automatic Scale\r","\r","**1. To change the automatic scale settings**, place the mouse pointer over the corresponding time box, press the Shift key and slowly scroll the wheel of the mouse. The action cycles through different possible scale automation settings. Notice a tiny green triangle to the sides of the time scale icon. \r","\r","* A triangle pointing right means that the maximum value of the scale is automatic. \r","\r","* A triangle pointing left means that the minimum value of the scale is automatic.\r","\r","* Both triangles present at the same time means that both minimum and maximum values are automatic.\r","\r","* No triangle means that both minimum and maximum values are in manual mode.\r","\r","{% include image.html file='interface/time-scale-00.gif' url='yes' max-width='100' caption='Pay attention to the effects of the different setting for the automatic and manual time scales.' %}\r","\r","{{include.charts}}# Manual Scale\r","\r","**2. To adjust the scale**, make sure either or both minimum and maximum values are in manual mode. Place the mouse pointer over the time box and scroll the wheel of the mouse. The scale will increase or decrease accordingly, depending on which values are set to manual.\r","\r","{% include image.html file='interface/time-scale-01.gif' url='yes' max-width='100' caption='When the scale is set to manual, scrolling the mouse wheel on top of the time scale box changes the scale.' %}\r","\r","Notice that, while changing the scale, a number is displayed replacing the actual datetime. This is a reference value of the scale, that may serve for comparison purposes, with scales in other charts.\r","\r","{% include note.html content=\"This action has no effect when both minimum and maximum values are set to automatic mode.\" %}\r","\r"]},{"type":"Rate Scale","definition":"The rate scale controls the scale of the vertical axis, that is, the scale of the quoted asset, either of the time machine or of the timeline chart, depending on where the node is located.","content":["\r","\r","Rate scales may exist both at the level of a time machine and at the level of a timeline chart, each affecting the corresponding concept.\r","\r","When set at the level of the time machine, the scale settings affect all charts within the time machine. When set at the level of the timeline chart, the settings override the rate scale at the time machine level. This allows having multiple charts on the same time machine, each with a different rate scale.\r","\r","{% if include.heading == \"more\" %}##{% else %}{{include.heading}}{% endif %}### Scale Minimum and Maximum Values\r","\r","A rate scale has a minimum and a maximum value. The minimum value is the value at bottom of the chart. The maximum, is the value at the top of the chart.\r","\r","In technical terms, the minimum and maximum scale values are constantly changing as, whenever you pan across the charts, you are directly affecting the minimum and maximum scale values. That said, the actual scale may change dynamically or not, depending on the scale-automation settings.\r","\r","{% if include.heading == \"more\" %}##{% else %}{{include.heading}}{% endif %}### Automatic Scale\r","\r","The system features an automatic adjustment of the scale, which is turned on by default in our shared workspaces. The scale may be automatic in its minimum value, in its maximum value, or both. \r","\r","When the scale is automatic in the minimum value, the scale is adjusted so that no piece of information in the span of the chart ever remains below the bottom of the chart. As a result, the lowest data point aligns with the bottom of the chart.\r","\r","When the scale is automatic in the maximum value, the scale is adjusted so that no piece of information in the span of the chart ever remains above the top of the chart. As a result, the highest data point aligns with the top of the chart.\r","\r","The scale may be automated on either, or both minimum and maximum values at the same time. In the later case, no data point in the span of the chart ever remains out of the visible area of the chart, as the lowest data point aligns with the bottom of the chart and the highest aligns with the top.\r","\r","{% if include.heading == \"more\" %}##{% else %}{{include.heading}}{% endif %}### Manual Scale\r","\r","The system also features a manual mode. When in manual mode the scale does not change, even if the minimum and maximum values change while panning across a chart. This design feature allows comparing different periods using the same scale, which may be valuable in many cases. \r","\r","{% if include.heading == \"more\" %}##{% else %}{{include.heading}}{% endif %}### Scale Offset\r","\r","The offset is a feature of the rate scale by which the scale may be shifted upwards or downwards. As a result, charts aligned on the vertical axis—synchronized in datetime by a shared time machine—may be put one above the other. In technical terms, what happens is that the scale is shifted upwards or downwards.\r","\r"],"folderName":"charting_space","adding":["\r","\r","To add a rate scale, select *Add Rate Scale* on the time machine or the timeline chart node menu.\r","\r"],"configuring":["\r","\r","Select *Configure Rate Scale* on the menu to access the configuration.\r","\r","```json\r","{\r"," \"minValue\": 388.60416666666424,\r"," \"maxValue\": 9715.104166666664,\r"," \"autoMinScale\": true,\r"," \"autoMaxScale\": true\r","}\r","```\r","\r","* ```minValue``` is a numerical value that represents the value of the scale at the bottom of the chart.\r","\r","* ```maxValue``` is a numerical value that represents the value of the scale at the top of the chart.\r","\r","* ```autoMinScale``` sets the mode of the scale for the minimum value; ```true``` sets the value to automatic, ```false``` sets the value to manual. \r","\r","* ```autoMaxScale``` sets the mode of the scale for the maximum value; ```true``` sets the value to automatic, ```false``` sets the value to manual. \r","\r","{% include note.html content=\"The ```minValue``` and ```maxValue``` may be entered via the design space and the charts. Both input methods are synchronized and the resulting values are stored in the node.\" %}\r","\r"],"charts":["\r","\r","{{include.charts}}# Automatic Scale\r","\r","**1. To change the automatic scale settings**, place the mouse pointer over the corresponding time machine or timeline chart rate box, press the Shift key and slowly scroll the wheel of the mouse. The action cycles through different possible scale automation settings. Notice a tiny green triangle below and/or above the rate scale icon. \r","\r","* A triangle pointing up means that the maximum value of the scale is automatic. \r","\r","* A triangle pointing down means that the minimum value of the scale is automatic.\r","\r","* Both triangles present at the same time means that both minimum and maximum values are automatic.\r","\r","* No triangle means that both minimum and maximum values are in manual mode.\r","\r","{% include image.html file='interface/rate-scale-00.gif' url='yes' max-width='100' caption='Pay attention to the effects of the different setting for the automatic and manual time scales.' %}\r","\r","{{include.charts}}# Manual Scale\r","\r","**2. To adjust the scale**, make sure either or both minimum and maximum values are in manual mode. Place the mouse pointer over the corresponding time machine or timeline chart rate box and scroll the wheel of the mouse. The scale will increase or decrease accordingly, depending on which values are set to manual.\r","\r","{% include image.html file='interface/rate-scale-01.gif' url='yes' max-width='100' caption='When the scale is set to manual, scrolling the mouse wheel on top of the rate scale box changes the scale.' %}\r","\r","Notice that, while changing the scale, a number is displayed replacing the actual rate. This is a reference value of the scale, that may serve for comparison purposes, with scales in other charts.\r","\r","{% include note.html content=\"This action has no effect when both minimum and maximum values are set to automatic mode.\" %}\r","\r","{{include.charts}}# Scale Offset\r","\r","**3. To shift or offset a timeline chart on the vertical axis**, place the mouse pointer on the rate box, left-click and drag upwards or downwards, as desired. The timeline chart will shift in the specified direction while the remaining charts stay in the same position.\r","\r","{% include image.html file='interface/rate-scale-02.gif' url='yes' max-width='100' caption='To control the offset between timeline charts, right-click on the rate box and drag upwards or downwards.' %}\r","\r","{% include note.html content=\"Setting an offset in a timeline chart only makes sense in the context of a time machine with multiple charts. That is, if you are browsing a single chart, an offset behaves the same as moving the single chart up or down.\" %}\r","\r","\r"]},{"type":"Time Frame Scale","definition":"The time frame scale controls the time frame setting, that is, the period represented by each candle, either of the time machine or of the timeline chart, depending on where the node is located.","content":["\r","\r","When the time frame scale is set at the level of the time machine, the scale setting affects all charts within the time machine. When set at the level of the timeline chart, the setting overrides the time frame scale at the time machine level. This allows comparing charts in different time frames, but still synchronized at the datetime level.\r","\r"],"folderName":"charting_space","adding":["\r","\r","To add a time frame scale, select *Add Time Frame Scale* on the time machine or the timeline chart node menu.\r","\r"],"configuring":["\r","\r","Select *Configure Frame Scale* on the menu to access the configuration.\r","\r","```json\r","{\r"," \"value\":\"06-hs\"\r","}\r","```\r","\r","* ```value``` can be any of the time frames supported by the system:\r","\r"," * ```01-min```, ```02-min```, ```03-min```, ```04-min```, ```05-min```, ```10-min```, ```15-min```, ```20-min```, ```30-min```, ```40-min```, and ```45-min```.\r","\r"," * ```01-hs```, ```02-hs```, ```03-hs```, ```04-hs```, ```06-hs```, ```08-hs```, ```12-hs```, and ```24-hs```.\r","\r"," {% include note.html content=\"The values entered via the design space and the charts are synchronized and stored in the node.\" %}\r","\r"],"charts":["\r","\r","**1. To set a time frame value**, place the mouse pointer over the corresponding time machine or timeline chart time frame box and scroll the mouse wheel.\r","\r","{% include image.html file='interface/time-frame-scale-00.gif' url='yes' max-width='100' caption='To set a time frame, scroll the wheel of the mouse over the time frame scale box.' %}\r","\r"]},{"type":"Timeline Chart","definition":"The timeline chart represents a chart within a time machine, which may have independent rate and time frame scales, as well as particular layers.","content":["\r","\r","In other words, a timeline chart—often referred simply as *chart*—is a set of information to be displayed over a timeline. The information may include candles—the main and foremost resource—as well as any other indicator, study or—in general—data products that may be available.\r","\r","You may add as many charts as you wish. Charts within the same time machine are synchronized in the y-axis, that is, in the datetime dimension. Charts in different time machines are independent of each other concerning the datetime. In either case, you may also add rate scales and time frame scales at the timeline charts level.\r","\r","The information that each timeline chart makes available on the screen is given by the layers set up in the corresponding layer manager.\r","\r"],"folderName":"charting_space","adding":["\r","\r","To add a timeline chart, select *Add Timeline Chart* on the preferred time machine node menu.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"charts":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Layer Manager","definition":"The layer manager determines which layers will be visible on the corresponding timeline chart.","content":["\r","\r","In other words, you use the layer manager node to configure which data products you wish to be made available for visualization purposes on the charts, in particular, on a specific timeline chart to which the layer manager node is attached to.\r","\r"],"folderName":"charting_space","adding":["\r","\r","To add a layer manager, select *Add Layer Manager* on the preferred timeline chart node menu.\r","\r"],"configuring":["\r","Select *Configure Layer Manager* in the menu to access the configuration.\r","\r","```json\r","{\r"," \"visibleLayers\": 3,\r"," \"panelLocation\": {\r"," \"upOrDown\": \"up\",\r"," \"leftOrRight\": \"left\"\r"," },\r"," \"label2FontSize\": 12\r","}\r","```\r","\r","* ```visibleLayers``` keeps track of how many layers the managers is rolled to, that is, how many layers it is displaying.\r","\r","* ```panelLocation``` keeps track of the position of the panel relative to the four screen corners.\r","\r","* ```label2FontSize``` allows adjusting the font size of the second-order label of each layer, displaying the name of the exchange and market.\r","\r"],"charts":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Layer","definition":"A layer represents a reference to a data product in the data storage node of the network hierarchy. Conceptually, it means that a certain data product, which exists in a certain location on the network, holds the data to be rendered on the charts.","content":["\r","\r","To set up a layer, you need to establish a reference with the data product of your choice.\r","\r"],"folderName":"charting_space","adding":["\r","\r","To add a layer, select *Add Layer* on the layer manager node menu. \r","\r","{% include note.html content=\"After adding a layer node, make sure you establish a reference to the corresponding data product in the data storage node of the network hierarchy.\" %}\r","\r"],"configuring":["\r","\r","Select *Configure Layer* on the menu to access the configuration.\r","\r","```json\r","{\r"," \"status\":\"on\", \r"," \"showPanels\":true\r","}\r","```\r","\r","* ```status``` may be *on* or *off* and refers to the layer being visible or not on the charts.\r","\r","* ```showPanels``` may be *true* or *false*; *true* shows the plotter panel that may be associated with the data product as per the plotter module definitions; *false* makes panels invisible.\r","\r"],"charts":["\r","\r","To turn layers on and off, simply click on the layer in the corresponding products panel.\r","\r","To turn on and off a layer panel, click the panel button on the bottom-left corner of the layer.\r","\r"]},{"type":"Bot Layers"},{"type":"Layer Folder"},{"type":"Data Storage","definition":"The data storage node holds the definitions as to what data is stored in the corresponding network node.","content":["\r","\r","Bot instances running on the data mining and trading sections of a network node produce data products that need to be stored somewhere, specifically. The data storage node and its chain of offspring determine which data is to be stored where; that is, in what network node.\r","\r","Like with the data mining section and the sections referring to trading operations (testing and production environments), the data storage section is too organized by exchange, market, and data or trading mines. See the [sorting of tasks](suite-sorting-of-tasks.html) page for the details.\r","\r","The storage of data is split between [data mines data](suite-data-mines-data.html) and [trading mines data](suite-trading-mines-data.html). This is to facilitate the management of data storage definitions in [trading farms](suite-fundamental-trading-farms-concepts.html), on which data mining operations may be separate from trading operations.\r","\r","The data stored on each node of the network may be accessed by others, including the charting system, to visualize information via plotters defined in data mines, by trading systems to make trading decisions, and even by third-party systems. The information regarding trading mine data is explained in length in the [trading engine](suite-trading-engine.html) section of the documentation.\r","\r","The setup of data storage definitions is done automatically when the [install market](suite-how-to-install-a-new-market.html) function under the exchange markets node of the Crypto Ecosystem hierarchy is used. However, when data mining or trading tasks are created manually, the data storage definitions must be created manually as well, using the tools available in each of the data structures below this node.\r","\r","{% include node-deletion-warning.html %}\r","\r"],"folderName":"network","adding":["\r","\r","To add a data storage, select *Add Data Storage* on the network node menu. \r","\r","{% include note.html content=\"Only one data storage node may exist on each network node.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Data Mine Tasks","definition":"The data mine tasks node is an organizational device that groups tasks corresponding to the referenced data mine.","content":["\r","\r","The data mine tasks node must reference the definition of a data mine. The node may spawn tasks for each bot in the data mine.\r","\r"],"folderName":"network","adding":["\r","\r","To add a {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. This action adds the node but does not establish a reference with any data mine.\r","\r","The smarter use of the node involves using the *Add Missing Data Mine Tasks* option on the parent node menu. This action creates a data mine tasks node for each data mine in the workspace, establishing a reference with the corresponding data mines. This is the first step in the direction of quickly setting up tasks for each bot in a given data mine.\r","\r","{% include note.html content=\"See the task node definition and the *Adding a Task Node* section for all the details.\" %}\r","\r"],"configuring":["\r","\r","Select *Configure* on the menu to access the configuration.\r","\r","```json\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","```\r","\r"],"starting":["\r","\r","Select *Run All Task Managers* or *Stop All Task Managers* on the menu to start and stop all tasks under this node.\r","\r"]},{"type":"Trading Mine Tasks","definition":"The trading mine tasks node is an organizational device that groups tasks corresponding to the referenced trading mine.","content":["\r","\r","The market trading tasks node must reference the definition of a data mine. The node may spawn tasks for each bot in the data mine.\r","\r"],"folderName":"network","adding":["\r","\r","To add a {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. This action adds the node but does not establish a reference with any data mine.\r","\r","The smarter use of the node involves using the *Add Missing market trading tasks* option on the parent node menu. This action creates a market trading tasks node for each data mine in the workspace, establishing a reference with the corresponding data mines. This is the first step in the direction of quickly setting up tasks for each bot in a given data mine.\r","\r","{% include note.html content=\"See the task node definition and the *Adding a Task Node* section for all the details.\" %}\r","\r"],"configuring":["\r","\r","Select *Configure* on the menu to access the configuration.\r","\r","```json\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","```\r","\r"],"starting":["\r","\r","Select *Run All Task Managers* or *Stop All Task Managers* on the menu to start and stop all tasks under this node.\r","\r"]},{"type":"Market Data Tasks","definition":"A market data tasks node groups data mining tasks operating in a specific market.","content":["\r","\r","The market data tasks node must reference a market defined in the Crypto Ecosystem hierarchy.\r","\r","This node may spawn individual data products or may deploy data products in bulk organized by data mine and by bots. See the data products node for the details.\r","\r"],"folderName":"network","adding":["\r","\r","To add a market data tasks node, select *Add Market Data* on the parent node menu. \r","\r","{% include note.html content=\"Remember to establish a reference with a market defined in the Crypto Ecosystem hierarchy after adding the node.\" %}\r","\r","You may also add market data tasks nodes in bulk for all markets that may have been previously defined in the Crypto Ecosystem hierarchy. To do that, select *Add Missing Markets* on the parent node menu. A market data tasks node is created for each defined market, each with the corresponding reference.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","Select *Run All Data Mine Tasks* or *Stop All Data Mine Tasks* on the menu to start and stop all tasks under this node.\r","\r"]},{"type":"Market Trading Tasks","definition":"A market trading tasks node groups trading tasks operating in a specific market.","content":["\r","\r","The market trading tasks node must reference a market defined in the Crypto Ecosystem hierarchy.\r","\r","This node may spawn individual data products or may deploy data products in bulk organized by data mine and by bots. See the data products node for the details.\r","\r"],"folderName":"network","adding":["\r","\r","To add a market trading tasks node, select *Add Market Data* on the parent node menu. \r","\r","{% include note.html content=\"Remember to establish a reference with a market defined in the Crypto Ecosystem hierarchy after adding the node.\" %}\r","\r","You may also add market trading tasks nodes in bulk for all markets that may have been previously defined in the Crypto Ecosystem hierarchy. To do that, select *Add Missing Markets* on the parent node menu. A market trading tasks node is created for each defined market, each with the corresponding reference.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","Select *Run All Trading Mine Tasks* or *Stop All Trading Mine Tasks* on the menu to start and stop all tasks under this node.\r","\r"]},{"type":"Exchange Data Tasks","definition":"The exchange data tasks node organizes data mining tasks by exchange. That is, each exchange installed in the system has an exchange data tasks node grouping all market data tasks corresponding to the said exchange.","content":["\r","\r","The exchange data tasks node must reference the exchange of choice. This reference constraints the rest of the definitions to the context of the said exchange.\r","\r","When representing an exchange featured in the system's icons library, the standard exchange data tasks icon is replaced by the exchange's logo.\r","\r"],"folderName":"network","adding":["\r","\r","To add a specific {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. \r","\r","{% include note.html content=\"Remember to establish a reference to the desired exchange in the Crypto Ecosystem hierarchy.\" %}\r","\r","You may also add exchange data tasks node in bulk for all exchanges that may have been previously defined in the Crypto Ecosystem hierarchy. To do that, select *Add Missing Exchanges* on the parent node menu. An exchange data tasks node is created for each defined exchange, each with the corresponding reference.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","Select *Run All Market Data Tasks* or *Stop All Market Data Tasks* on the menu to start and stop all tasks under this node.\r","\r"]},{"type":"Exchange Trading Tasks","definition":"The exchange trading tasks node organizes trading tasks by exchange. That is, each exchange installed in the system has an exchange trading tasks node grouping all market trading tasks corresponding to the said exchange.","content":["\r","\r","The exchange trading tasks node must reference the exchange of choice. This reference constraints the rest of the definitions to the context of the said exchange.\r","\r","When representing an exchange featured in the system's icons library, the standard exchange trading tasks icon is replaced by the exchange's logo.\r","\r"],"folderName":"network","adding":["\r","\r","To add a specific {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. \r","\r","{% include note.html content=\"Remember to establish a reference to the desired exchange in the Crypto Ecosystem hierarchy.\" %}\r","\r","You may also add exchange trading tasks node in bulk for all exchanges that may have been previously defined in the Crypto Ecosystem hierarchy. To do that, select *Add Missing Exchanges* on the parent node menu. An exchange trading tasks node is created for each defined exchange, each with the corresponding reference.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","Select *Run All Market Trading Tasks* or *Stop All Market Trading Tasks* on the menu to start and stop all tasks under this node.\r","\r"]},{"type":"Data Tasks","definition":"Data mining is the activity of processing data. You need to process data to feed charts, and so that your trading systems may make decisions based on quality information.","content":["\r","\r","Having access to quality information is a crucial element of trading. For that reason, Superalgos strives to give users full control over how, where, and when data is processed. You will use this section of the network hierarchy to exert that control.\r","\r","Data mining is done through tasks running instances of sensor and indicator bots. The data structure under this node allows organizing the data mining operation by exchange, market, and data mine.\r","\r","The setup of the data mining operation may be done using the *Install Market* function of the market you wish to install as defined in the Crypto Ecosystem hierarchy under the exchange markets node. Learn more about this function on the [how to install a new market](suite-how-to-install-a-new-market.html) page.\r","\r","You may also set up data mining tasks by using the different functions in this section of the hierarchy, starting with the options in the menu of this node. This route offers finer control over what tasks you set up, and how. \r","\r","{% include node-deletion-warning.html %}\r","\r"],"folderName":"network","adding":["\r","\r","To add a {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Testing Trading Tasks","definition":"The testing environment node organizes trading sessions involving testing of trading systems.","content":["\r","\r","Thorough and comprehensive testing of strategies is at the core of successful trading. Superalgos strives to put you in control of the testing process providing you with flexible tools to fit your criteria.\r","\r","Depending on how you use the system, how many markets and exchanges you work with, the number of trading systems you use, or the way you choose to test your strategies, you may find yourself with a large number of testing sessions. As explained in the [sorting of tasks](suite-sorting-of-tasks.html) page, the testing environment helps you organize large numbers of tasks sorting them by exchange, market, and trading mine.\r","\r","Superalgos handles two types of simulated tests: backtesting and paper trading. Backtesting involves testing over historic data, while paper trading is about testing on a live data stream, but without placing orders at the exchange.\r","\r","Trading sessions are controlled by a number of parameters that determine how the session is run. The built-in parameters provide great control and flexibility as to how to handle data sets and how to produce the resulting simulations.\r","\r","{% include note.html content=\"Please, read on and study the workings of the chain of nodes under the testing environment node. The investment of time is well worth it, as you will learn how to make the most out of the strategy-testing features built-in Superalgos.\" %}\r","\r","{% include node-deletion-warning.html %}\r","\r"],"folderName":"network","adding":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Production Trading Tasks","definition":"The production environment node organizes trading sessions involving live trading.","content":["\r","\r","Superalgos aims to provide a flexible and robust trading bots deployment toolbox.\r","\r","With Superalgos, you may deploy as many trading bots as you wish and have them running on a single computer or in as many machines as you wish, in a [trading farm](suite-fundamental-trading-farms-concepts.html) type of setup. To help with the management of large numbers of live trading sessions, the system helps you with [sorting tasks](suite-sorting-of-tasks.html) by exchange, market, and trading mine.\r","\r","The production environment works pretty much in the same way as the testing environment, save for two important differences:\r","\r","* The production environment runs forward testing and live trading sessions, instead of backtesting and paper trading sessions.\r","\r","* These two types of sessions involve monetary transactions at the exchange, thus require the set up of a key reference to authenticate your account with the exchange.\r","\r","{% include note.html content=\"If you are familiar with the testing environment, there isn't much more to learn to understand the production environment. If you are not familiar with either, please refer to the [tesing environment](suite-testing-evironment.html) page for the details.\" %}\r","\r","{% include node-deletion-warning.html %}\r","\r"],"folderName":"network","adding":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Exchange Data Products","definition":"The exchange data products node organizes data mines data by exchange. That is, each exchange installed in the system has an exchange data products node grouping all market data products nodes corresponding to the said exchange.","content":["\r","\r","The exchange data products node must reference the exchange of choice. This reference constraints the rest of the definitions to the context of the said exchange.\r","\r","When representing an exchange featured in the system's icons library, the standard exchange data tasks icon is replaced by the exchange's logo.\r","\r"],"folderName":"network","adding":["\r","\r","To add a specific {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. \r","\r","{% include note.html content=\"Remember to establish a reference to the desired exchange in the Crypto Ecosystem hierarchy.\" %}\r","\r","You may also add exchange data products nodes in bulk for all exchanges that may have been previously defined in the Crypto Ecosystem hierarchy. To do that, select *Add Missing Exchanges* on the parent node menu. An exchange data products node is created for each defined exchange, each with the corresponding reference.\r","\r","\r"],"configuring":["\r","\r","Select *Configure* on the menu to access the configuration.\r","\r","```json\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","```\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Data Mines Data","definition":"Session independent data refers to data generated by sensors and indicators, not related to trading sessions.","content":["\r","\r","As explained in the [sorting of tasks](suite-sorting-of-tasks.html) page, data mines data is sorted by exchange, market, and the corresponding data mine, sensor or indicator bot, and bot product. That is, most of the nodes in this section of the hierarchy play an organizational role.\r","\r","Many of them require references to the nodes that delimit the context for which the data is applicable. For example, the market data products node must reference one of the installed markets, in particular, the market on which the data mining operation is run. These references help other entities understand the context to which the data belongs to.\r","\r","Whenever you create data mining tasks manually from within the Network hierarchy (as opposed to using the [install market](suite-how-to-install-a-new-market.html) function under the exchange markets node of the Crypto Ecosystem hierarchy), you need to create the proper definitions for the storage of data mines data.\r","\r"],"folderName":"network","adding":["\r","\r","To add a session-independent data node, select *Add Session-independent Data* on the network node menu. \r","\r","{% include note.html content=\"Only one session-independent data node may exist on each data storage node.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Exchange Trading Products","definition":"The exchange trading products node organizes trading mines data by exchange. That is, each exchange installed in the system has an exchange trading products node grouping all session references corresponding to the said exchange.","content":["\r","\r","The exchange trading products node must reference the exchange of choice. This reference constraints the rest of the definitions to the context of the said exchange.\r","\r","When representing an exchange featured in the system's icons library, the standard exchange trading products icon is replaced by the exchange's logo.\r","\r"],"folderName":"network","adding":["\r","\r","To add a specific {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. \r","\r","{% include note.html content=\"Remember to establish a reference to the desired exchange in the Crypto Ecosystem hierarchy.\" %}\r","\r","You may also add exchange trading products nodes in bulk for all exchanges that may have been previously defined in the Crypto Ecosystem hierarchy. To do that, select *Add Missing Exchanges* on the trading mines data node menu. An exchange trading products node is created for each defined exchange, each with the corresponding reference.\r","\r","\r"],"configuring":["\r","\r","Select *Configure* on the menu to access the configuration.\r","\r","```json\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","```\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Trading Mines Data","definition":"Session-based data refers to data that is generated as a consequence of running a trading session, that is, data the trading bot instance generates while running backtesting, paper trading, forward testing, or live trading sessions.","content":["\r","\r","As explained in the [sorting of tasks](suite-sorting-of-tasks.html) page, trading mines data is sorted by exchange, market, the corresponding trading session, and the corresponding trading mine, trading bot, and bot product. That is, most of the nodes in this section of the hierarchy play an organizational role.\r","\r","Many of them require references to the nodes that delimit the context for which the data is applicable. For example, the exchange trading products node must reference one of the installed exchanges, in particular, the exchange on which the trading operation is run. These references help other entities understand the context to which the data belongs to.\r","\r","Whenever you create trading tasks manually from within the Network hierarchy (as opposed to using the [install market](suite-how-to-install-a-new-market.html) function under the exchange markets node of the Crypto Ecosystem hierarchy), you need to create the proper definitions for the storage of trading mines data.\r","\r"],"folderName":"network","adding":["\r","\r","To add a session-based data node, select *Add Session-based Data* on the network node menu. \r","\r","{% include note.html content=\"Only one session-based data node may exist on each data storage node.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Trading Session Reference","definition":"A session reference establishes which session is the one which shall store data in the current location.","content":["\r","\r","A such, the session reference node must establish a reference with a trading session. Also, its offspring nodes determine precisely which data products are stored.\r","\r"],"folderName":"network","adding":["\r","\r","To add a session reference node, select *Add Trading Session Reference* on the network node menu. \r","\r","{% include note.html content=\"Remember to establish a reference with a trading session after adding the node.\" %}\r","\r","You may also add session reference nodes in bulk for all sessions defined in the same network that are not yet defined. To do that, select *Add Missing Sessions* on the exchange trading products node menu. A session reference node is created for each defined trading session in the node, each with the corresponding reference.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Market Data Products","definition":"A market data products node represents the group of data products generated in a specific market.","content":["\r","\r","The market data products node must reference a market defined in the Crypto Ecosystem hierarchy.\r","\r","This node may spawn individual data products or may deploy data products in bulk organized by data mine and by bots. See the data products node for the details.\r","\r"],"folderName":"network","adding":["\r","\r","To add a market data products node, select *Add Market Data* on the parent node menu. \r","\r","{% include note.html content=\"Remember to establish a reference with a market defined in the Crypto Ecosystem hierarchy after adding the node.\" %}\r","\r","You may also add market data products nodes in bulk for all markets that may have been previously defined in the Crypto Ecosystem hierarchy. To do that, select *Add Missing Markets* on the parent node menu. A market data products node is created for each defined market, each with the corresponding reference.\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Market Trading Products","definition":"A market trading products node features the group of data products generated by the referenced session in a specific market.","content":["\r","\r","The market trading products node must reference a market defined in the Crypto Ecosystem hierarchy.\r","\r","This node may spawn individual data products or may deploy data products in bulk organized by trading mine and by trading bots. See the data products node for the details.\r","\r"],"folderName":"network","adding":["\r","\r","To add a market trading products node, select *Add Market Trading Data* on the parent node menu. \r","\r","{% include note.html content=\"Remember to establish a reference with a market defined in the Crypto Ecosystem hierarchy after adding the node.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Data Product","definition":"A data product represents the collection of datasets generated by the instance of a bot as defined in the corresponding data mine or trading mine.","content":["\r","\r","Data products exist in the context of trading mines data and data mines data nodes. In the first case, a data product is the collection of datasets generated by an instance of a trading bot as defined in a trading mine, running a trading session. In the latter case, it is the collection of datasets generated by either a sensor bot or an indicator bot instance, as defined in a data mine, and running a data mining task.\r","\r","A data product node must reference a product definition in the corresponding bot.\r","\r","{% include important.html content=\"Data products may only be stored on the same network node on which the task—data mining or trading—runs.\" %}\r","\r"],"folderName":"network","adding":["\r","\r","To add a single data product, select *Add Data Product* on the market trading products, market data products, bot products, or data products folder node menus. \r","\r","{% include note.html content=\"Remember to establish a reference with a product definition of the corresponding bot in the corresponding data or trading mine.\" %}\r","\r","In cases in which multiple data products must be added, you may use the option to create data products in bulk.\r","\r","Select the *Add All Data Products* option on the data or trading mine products node menu. This adds a bot products node for each bot in the data or trading mine, and a data product for each product definition of each bot. \r","\r","You may use this option after manually adding a data or trading mine products node and manually establishing the reference with the desired data mine, or after adding all data or trading mine data products, by which the references with data or trading mines are established automatically.\r","\r","{% include tip.html content=\"If adding data products in bulk results in adding data products that are not required, you may easily delete those.\" %}\r","\r"],"configuring":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Data Mine Products","definition":"Data mine products are references established with data mines to facilitate establishing data product references with multiple products in the given data mine.","content":["\r","\r","The node may be used as an organizational device, simply to arrange bot products. However, the smart use of the node involves automating the deployment of multiple data products.\r","\r","The use of the {{ title | downcase }} node is optional, as data products may also exist outside of {{ title | downcase }} nodes.\r","\r"],"folderName":"network","adding":["\r","\r","To add a {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. This action adds the node but does not establish a reference with any data mine. \r","\r","The smarter use of the node involves using the *Add All Data Mine Products* option on the parent node menu. This action creates a data mine products node for each data mine in the workspace, establishing a reference with the corresponding data mines. This is the first step in the direction of quickly setting up multiple data products when needed.\r","\r","{% include note.html content=\"See the data product node definition and the *Adding a Data Product Node* section for all the details.\" %}\r","\r"],"configuring":["\r","\r","Select *Configure* on the menu to access the configuration.\r","\r","```json\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","```\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Trading Mine Products","definition":"Trading mine products are references established with trading mines to facilitate establishing data product references with multiple products in the given mine.","content":["\r","\r","At this point, Superalgos ships with a single trading mine, featuring a single *low frequency* trading bot. However, developers may create their own trading bots or fork the existing one. \r","\r","The node may be used as an organizational device, simply to arrange bot products. However, the smart use of the node involves automating the deployment of multiple data products.\r","\r","The use of the {{ title | downcase }} node is optional, as data products may also exist outside of {{ title | downcase }} nodes.\r","\r"],"folderName":"network","adding":["\r","\r","To add a {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. This action adds the node but does not establish a reference with any trading mine. \r","\r","The smarter use of the node involves using the *Add All Trading Mine Products* option on the parent node menu. This action creates a trading mine products node for each trading mine in the workspace, establishing a reference with the corresponding trading mines. This is the first step in the direction of quickly setting up multiple data products when needed.\r","\r","{% include note.html content=\"See the data product node definition and the *Adding a Data Product Node* section for all the details.\" %}\r","\r"],"configuring":["\r","\r","Select *Configure* on the menu to access the configuration.\r","\r","```json\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","```\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Bot Products","definition":"A bot products node is an organizational device used to arrange data products corresponding to a specific bot.","content":["\r","\r","The device exists as an offspring of a data or trading mine products node, and does not require a reference to a bot in the given data or trading mine. \r","\r","The use of the {{ title | downcase }} node is optional, as data products may also exist outside of {{ title | downcase }}.\r","\r"],"folderName":"network","adding":["\r","\r","To add a {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu.\r","\r","The bot products node may also be created automatically. When created using the *Add All Data Products* option on the data mine products node, the node inherits the label of the corresponding bot in the corresponding data mine. \r","\r","{% include note.html content=\"See the data product node definition and the *Adding a Data Product Node* section for all the details.\" %}\r","\r"],"configuring":["\r","\r","Select *Configure* on the menu to access the configuration.\r","\r","```json\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","```\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Data Product Folder","definition":"A data product folder node is an organizational device used to map the arrangement of product definition folders as may exist in the bot definition of the corresponding data or trading mine.","content":["\r","\r","The use of the {{ title | downcase }} node is optional, as data products may also exist outside of {{ title | downcase }}s.\r","\r"],"folderName":"network","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. \r","\r"],"configuring":["\r","\r","Select *Configure* on the menu to access the configuration.\r","\r","```json\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","```\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Tutorial"},{"type":"Tutorial Topic"},{"type":"Tutorial Step"},{"type":"Data Mine Data Dependencies","definition":"Data mine data dependencies are references established with entire data mines to facilitate establishing data dependencies with multiple datasets in the given data mine.","content":["\r","\r","The node may be used as an organizational device, simply to arrange bot data dependencies. However, the smart use of the node involves automating the deployment of multiple data dependencies and their references.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add a {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. This action adds the node but does not establish a reference with any data mine. \r","\r","The smarter use of the node involves using the *Add All Data Mine Dependencies* option on the parent node menu. This action creates a data mine data dependencies node for each data mine in the workspace, establishing a reference with the corresponding data mines. This is the first step in the direction of quickly setting up multiple data dependencies when needed.\r","\r","{% include note.html content=\"See the data dependency node definition and the *Adding a Data Dependecy Node* section for all the details.\" %}\r","\r"],"configuring":["\r","\r","Select *Configure* on the menu to access the configuration.\r","\r","```json\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","```\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Bot Data Dependencies","definition":"A bot data dependencies node is an organizational device used to arrange data dependencies corresponding to a specific bot.","content":["\r","\r","The device exists as an offspring of a data mine data dependencies node, and does not require a reference to a bot in the given data mine. \r","\r"],"folderName":"data_mine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu. When adding a bot data dependency in this manner, the node does not inherit any particular label. In fact, it may even host data dependencies pointing to other data mines.\r","\r","The bot data dependencies node may also be created automatically. When created using the *Add All Data Dependencies* option on the data mine data dependencies node, the node inherits the label of the corresponding bot in the corresponding data mine. \r","\r","{% include note.html content=\"See the data dependency node definition and the *Adding a Data Dependecy Node* section for all the details.\" %}\r","\r"],"configuring":["\r","\r","Select *Configure* on the menu to access the configuration.\r","\r","```json\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","```\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]},{"type":"Data Dependency Folder","definition":"A data dependency folder node is an organizational device used to map the arrangement of product definition folders of a given bot.","content":["\r","\r","The use of product data dependency folders is optional, as data dependencies may also exist outside of folders.\r","\r"],"folderName":"data_mine","adding":["\r","\r","To add the {{ title | downcase }} node, select *Add {{ title }}* on the parent node menu.\r","\r","The {{ title | downcase }} node may be added automatically when using the *Add All Data Dependencies* option on the data mine data dependencies node menu.\r","\r"],"configuring":["\r","\r","Select *Configure* on the menu to access the configuration.\r","\r","```json\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","```\r","\r"],"starting":["\r","\r","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r","\r"]}] \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Books/first-steps-tutorials.json b/Projects/Superalgos/Schemas/Docs-Books/first-steps-tutorials.json new file mode 100644 index 000000000..9a659bef2 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Books/first-steps-tutorials.json @@ -0,0 +1,19 @@ +{ + "type": "First Steps Tutorials", + "definition": { + "text": "This Book will help you find the right tutorials for you to do when you just arrive to Superalgos. The order of the Tutorials listed is the one you should follow.", + "updated": 1610014928439 + }, + "paragraphs": [ + { + "style": "Text", + "text": "You can explore the content of these tutorials by reading this book, or even better, locate the tutorials in the workspace where they are defined and DO the tutorial there. There is a big difference between reading the content and doing the tutorial, since in the last case the tutorial will positionn you at the right places withing the Desing Space and the Charting Space so as to facilitate your understanding.", + "updated": 1610015175932 + }, + { + "style": "Chapter", + "text": "I->Superalgos->Tutorial->Test Tut", + "updated": 1610016446699 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Books/the-docs-explained.json b/Projects/Superalgos/Schemas/Docs-Books/the-docs-explained.json new file mode 100644 index 000000000..3b7cb2507 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Books/the-docs-explained.json @@ -0,0 +1,36 @@ +{ + "type": "The Docs Explained", + "definition": { + "text": "This book will walk you through everything you need to know about the Docs.", + "updated": 1609762580891 + }, + "paragraphs": [ + { + "style": "Chapter", + "text": "I->Superalgos->Topic->Docs Basics->Read Chapter I to learn the basics concepts. They are the foundation that will let you understand the commands and styles explained later in this book.", + "updated": 1609763076399 + }, + { + "style": "Chapter", + "text": "II->Superalgos->Topic->Docs Commands->The Docs include a powerful command line interface that allows you to quickly fire commands from the search box. Dive into Chapter II to learn the details of each available command.", + "updated": 1609763122458 + }, + { + "style": "Chapter", + "text": "III->Superalgos->Topic->Docs Commands Errors" + }, + { + "style": "Chapter", + "text": "IV->Superalgos->Topic->Docs Commands Messages", + "updated": 1609783744261 + }, + { + "style": "Chapter", + "text": "V->Superalgos->Topic->Docs Paragraph Styles" + }, + { + "style": "Chapter", + "text": "VI->Superalgos->Topic->Docs Context Menu Actions" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Books/user-manual.json b/Projects/Superalgos/Schemas/Docs-Books/user-manual.json new file mode 100644 index 000000000..02cb7f670 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Books/user-manual.json @@ -0,0 +1,55 @@ +{ + "type": "User Manual", + "definition": { + "text": "The User Manual covers Superalgos from A to Z, starting with a comprehensive conceptual introduction. The book covers functionality and features, along with the description of each hierarchy. It is organized for continuous reading and will take you from the starter to the advanced Superalgos user level.", + "updated": 1610309402992 + }, + "paragraphs": [ + { + "style": "Chapter", + "text": "I->Superalgos->Topic->Introduction->Superalgos is a comprehensive platform integrating all the crucial elements that make up trading intelligence. This chapter offers a conceptual introduction explaining some of the main design principles and the fundamental concepts behind their implementation.", + "updated": 1610309549631 + }, + { + "style": "Chapter", + "text": "II->Superalgos->Topic->Design Space->The Design Space is the place where all hierarchies live, that is, where you have access to all data structures. This is where you create and control what Superalgos does, and how.", + "updated": 1610309709908 + }, + { + "style": "Chapter", + "text": "III->Superalgos->Topic->Network->The Network hierarchy organizes the infrastructure to run bots and store data. It is the hierarchy you will use the most to operate the system.", + "updated": 1610309740906 + }, + { + "style": "Chapter", + "text": "IV->Superalgos->Topic->Charting Space->Because data visualization is a key contributor to trading intelligence, Superalgos features a built-in charting system. Discover the ins and outs of how to configure charts to suit your particular needs.", + "updated": 1610310194544 + }, + { + "style": "Chapter", + "text": "V->Superalgos->Topic->Trading Systems->Trading systems are a robust implementation of a professional trading framework. They are flexible enough to support virtually any kind of trading logic, and still, they are structured enough to allow building strategies without coding. That said, if you can code, you are King.", + "updated": 1610310549419 + }, + { + "style": "Chapter", + "text": "VI->Superalgos->Topic->Trading Logic->While the framework proposed by trading systems and trading strategies carry a fair bit of trading logic in and of themselves, it is how you define market situations along with the instructions passed to the Trading Bot that determine how strategies work.", + "updated": 1610310832197 + }, + { + "style": "Text", + "text": "Work in Progress" + }, + { + "style": "Text", + "text": "Work in Progress" + }, + { + "style": "Text", + "text": "Work in Progress" + }, + { + "style": "Text", + "text": "Work in Progress" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/backup-entity.json b/Projects/Superalgos/Schemas/Docs-Concepts/backup-entity.json new file mode 100644 index 000000000..fb1139bf6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/backup-entity.json @@ -0,0 +1,13 @@ +{ + "type": "Backup Entity", + "definition": { + "text": "Downloads a JSON file with the entity, which may be to whole Workspace or a node, including references concerning the particular node and its offspring. Use this feature to save your entire workspace or any particular structure of nodes within your workspace so that you may later restore the information, including all references, should you need to. For your reference, the file downloaded is named Backup followed by the name of the entity you are backing up.", + "updated": 1610032969934 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/clone-entity.json b/Projects/Superalgos/Schemas/Docs-Concepts/clone-entity.json new file mode 100644 index 000000000..ae22491f1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/clone-entity.json @@ -0,0 +1,13 @@ +{ + "type": "Clone Entity", + "definition": { + "text": "Downloads a JSON file containing information similar to a backup. The main difference is that the feature is built to facilitate the production of identical copies of any particular structure of nodes, or a complete hierarchy. Use this feature to accelerate your work process when you need to replicate nodes, for example, to create multiple testing sessions. The file downloaded is named Clone followed by the name of the node you are cloning.", + "updated": 1610033087190 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/collapse-structure-of-nodes.json b/Projects/Superalgos/Schemas/Docs-Concepts/collapse-structure-of-nodes.json new file mode 100644 index 000000000..e8a3facea --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/collapse-structure-of-nodes.json @@ -0,0 +1,13 @@ +{ + "type": "Collapse Structure of Nodes", + "definition": { + "text": "Clicking the minus button collapses the structure, hiding offspring nodes. This also has the effect of releasing CPU resources as the system stops calculating their position and status. In general, it is good practice to keep hierarchies closed when not being actively worked on.", + "updated": 1610029022595 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/delete-entity.json b/Projects/Superalgos/Schemas/Docs-Concepts/delete-entity.json new file mode 100644 index 000000000..9c8f5ca65 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/delete-entity.json @@ -0,0 +1,13 @@ +{ + "type": "Delete Entity", + "definition": { + "text": "Deletes the node and all its offspring. A confirmation in the form of an additional click is required.", + "updated": 1610033272508 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/delink-node.json b/Projects/Superalgos/Schemas/Docs-Concepts/delink-node.json new file mode 100644 index 000000000..4093eb469 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/delink-node.json @@ -0,0 +1,13 @@ +{ + "type": "Delink Node", + "definition": { + "text": "Removes the reference that may have existed between the node and a second node.", + "updated": 1610032584574 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/detach-node.json b/Projects/Superalgos/Schemas/Docs-Concepts/detach-node.json new file mode 100644 index 000000000..eb4d1f25d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/detach-node.json @@ -0,0 +1,13 @@ +{ + "type": "Detach Node", + "definition": { + "text": "Breaks the parent-offspring relationship that keeps the node attached to its parent. Once detached, the node is no longer computed as part of the hierarchy it was attached to. ", + "updated": 1610032559190 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/expand-structure-of-nodes.json b/Projects/Superalgos/Schemas/Docs-Concepts/expand-structure-of-nodes.json new file mode 100644 index 000000000..257534de8 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/expand-structure-of-nodes.json @@ -0,0 +1,13 @@ +{ + "type": "Expand Structure of Nodes", + "definition": { + "text": "Clicking the plus button expands the structure of offspring nodes.", + "updated": 1610029039731 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/freeze-structure-of-nodes.json b/Projects/Superalgos/Schemas/Docs-Concepts/freeze-structure-of-nodes.json new file mode 100644 index 000000000..63c2eba58 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/freeze-structure-of-nodes.json @@ -0,0 +1,13 @@ +{ + "type": "Freeze Structure of Nodes", + "definition": { + "text": "Clicking the freeze option freezes the node’s chain connections with its parent and offspring. Connecting lines turn blue. If you freeze the head node of a hierarchy, then the whole hierarchy is frozen. Freezing node structures is effective only when nodes are loose, that is, when they are not affected by angle or distance settings and are unpinned. In such cases, freezing releases CPU resources, as the system stops calculating node’s positions and status.", + "updated": 1610028881634 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/pinned-node.json b/Projects/Superalgos/Schemas/Docs-Concepts/pinned-node.json new file mode 100644 index 000000000..be29389b6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/pinned-node.json @@ -0,0 +1,13 @@ +{ + "type": "Pinned Node", + "definition": { + "text": "The node is pinned to the workspace on a specific [x, y] coordinate. This status overrides any other setting affecting the node’s mobility. Only direct user action by clicking and dragging may move a pinned node.", + "updated": 1610028840309 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/project.json b/Projects/Superalgos/Schemas/Docs-Concepts/project.json new file mode 100644 index 000000000..f454c865a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/project.json @@ -0,0 +1,23 @@ +{ + "type": "Project", + "definition": { + "text": "Superalgos is a platform that integrates different projects with the goal of automating operation acrross any of them, and extracting valuable information from their own blockchains in order to use them in trading strategies.", + "updated": 1609144195229 + }, + "paragraphs": [ + { + "style": "Text", + "text": "The first project is Superalgos itselft, witch provides a lowest level infraestructure that any other integrated project can freely reuse. On the pipeline we have these projects waiting to be integrated soon:", + "updated": 1609144390540 + }, + { + "style": "Table", + "text": "| # | Project |\n| 1 | Superalgos |\n| 2 | Ethereum |", + "updated": 1609144471691 + }, + { + "style": "Text", + "text": "Once integrated, each project will provide even more infraestructure which can later be used by other projects to be integrated after that. For example, once Ethereum is fully integrated, it will enable DeFi projects to be integrated on top of it." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/remove-angle-to-parent-node.json b/Projects/Superalgos/Schemas/Docs-Concepts/remove-angle-to-parent-node.json new file mode 100644 index 000000000..0183fec51 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/remove-angle-to-parent-node.json @@ -0,0 +1,13 @@ +{ + "type": "Remove Angle to Parent Node", + "definition": { + "text": "The rotational symmetry is disabled and the node may take any position. The connection line with its parent is yellow.", + "updated": 1610029243797 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/remove-distance-to-parent-node.json b/Projects/Superalgos/Schemas/Docs-Concepts/remove-distance-to-parent-node.json new file mode 100644 index 000000000..0565808ec --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/remove-distance-to-parent-node.json @@ -0,0 +1,13 @@ +{ + "type": "Remove Distance to Parent Node", + "definition": { + "text": "The distance setting is dissabled and the node may assume any distance to its parent.", + "updated": 1610030359012 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/reusable-snippets.json b/Projects/Superalgos/Schemas/Docs-Concepts/reusable-snippets.json new file mode 100644 index 000000000..d0f9b82a3 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/reusable-snippets.json @@ -0,0 +1,73 @@ +{ + "type": "Reusable Snippets", + "definition": { + "text": "This page lists snippets of text required in multiple pages. Keeping snippets in a central location makes maintenance easier and avoids duplicating content. Each snippet is arranged under a block featuring the same name as the title displayed before the snippet. To use these snippets, include the corresponding block on the destination page.", + "updated": 1610121599173 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Note for Hierarchy Tables", + "updated": 1610049150289 + }, + { + "style": "Block", + "text": "Note for Hierarchy Tables" + }, + { + "style": "Note", + "text": "This page discusses the top-level information about the section of the hierarchy represented in the below table. Click on any of the nodes to get the details, including particulars on their configuration, when applicable.", + "updated": 1610124674614 + }, + { + "style": "Block", + "text": "Dummy", + "updated": 1610121260808 + }, + { + "style": "Title", + "text": "Important for Live Sessions" + }, + { + "style": "Block", + "text": "Important for Live Sessions" + }, + { + "style": "Important", + "text": "Running a live session requires the setup of a key reference at the Task. It also requires a live data feed, meaning that the corresponding Sensor Bot Instance, along with all indicators used by the referenced Trading System, must be up and running. Finally, a live session also requires at least 48 hours of historic market data. Bear in mind that the Trading System may require even more historic market data to properly analyze the market depending on the indicators used.", + "updated": 1610106222219 + }, + { + "style": "Block", + "text": "Dummy" + }, + { + "style": "Title", + "text": "Deleting Node Warning", + "updated": 1610122599631 + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Block", + "text": "Deleting Node Warning", + "updated": 1610122587231 + }, + { + "style": "Warning", + "text": "Deleting this node causes market install and uninstall scripts to stop working, even if the node is recreated after being deleted.", + "updated": 1610122503324 + }, + { + "style": "Block", + "text": "Dummy", + "updated": 1610122641114 + }, + { + "style": "Text", + "text": "Next snippet" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/set-angle-to-parent-node-to-180-degrees.json b/Projects/Superalgos/Schemas/Docs-Concepts/set-angle-to-parent-node-to-180-degrees.json new file mode 100644 index 000000000..03420be7a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/set-angle-to-parent-node-to-180-degrees.json @@ -0,0 +1,13 @@ +{ + "type": "Set Angle to Parent Node to 180 Degrees", + "definition": { + "text": "The slot of the symmetry around its parent node is limited to 180 degrees, and the connection line remains orange.", + "updated": 1610029297748 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/set-angle-to-parent-node-to-360-degrees.json b/Projects/Superalgos/Schemas/Docs-Concepts/set-angle-to-parent-node-to-360-degrees.json new file mode 100644 index 000000000..a59fcb2ad --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/set-angle-to-parent-node-to-360-degrees.json @@ -0,0 +1,13 @@ +{ + "type": "Set Angle to Parent Node to 360 Degrees", + "definition": { + "text": "The node is locked to a rotational symmetry around its parent node, with sibling nodes using the same setting. The symmetry spans 360 degrees, and the connection line with the parent node turns orange.", + "updated": 1610029275167 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/set-angle-to-parent-node-to-45-degrees.json b/Projects/Superalgos/Schemas/Docs-Concepts/set-angle-to-parent-node-to-45-degrees.json new file mode 100644 index 000000000..e597e2287 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/set-angle-to-parent-node-to-45-degrees.json @@ -0,0 +1,13 @@ +{ + "type": "Set Angle to Parent Node to 45 Degrees", + "definition": { + "text": "The slot of the symmetry around its parent node is limited to 45 degrees, and the connection line remains orange.", + "updated": 1610029335201 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/set-angle-to-parent-node-to-90-degrees.json b/Projects/Superalgos/Schemas/Docs-Concepts/set-angle-to-parent-node-to-90-degrees.json new file mode 100644 index 000000000..6c4f6c68f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/set-angle-to-parent-node-to-90-degrees.json @@ -0,0 +1,13 @@ +{ + "type": "Set Angle to Parent Node to 90 Degrees", + "definition": { + "text": "The slot of the symmetry around its parent node is limited to 90 degrees, and the connection line remains orange.", + "updated": 1610029316994 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/set-distance-to-parent-node-to-one-and-a-half.json b/Projects/Superalgos/Schemas/Docs-Concepts/set-distance-to-parent-node-to-one-and-a-half.json new file mode 100644 index 000000000..437d0f6d8 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/set-distance-to-parent-node-to-one-and-a-half.json @@ -0,0 +1,13 @@ +{ + "type": "Set Distance to Parent Node to One and a Half", + "definition": { + "text": "The node is locked to 1.5X of the distance.", + "updated": 1610031576818 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/set-distance-to-parent-node-to-one-fourth.json b/Projects/Superalgos/Schemas/Docs-Concepts/set-distance-to-parent-node-to-one-fourth.json new file mode 100644 index 000000000..a3c98780c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/set-distance-to-parent-node-to-one-fourth.json @@ -0,0 +1,13 @@ +{ + "type": "Set Distance to Parent Node to One Fourth", + "definition": { + "text": "The node is locked to 0.25X of the distance.", + "updated": 1610031661104 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/set-distance-to-parent-node-to-one-half.json b/Projects/Superalgos/Schemas/Docs-Concepts/set-distance-to-parent-node-to-one-half.json new file mode 100644 index 000000000..37b4cf296 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/set-distance-to-parent-node-to-one-half.json @@ -0,0 +1,13 @@ +{ + "type": "Set Distance to Parent Node to One Half", + "definition": { + "text": "The node is locked to 0.5X of the distance.", + "updated": 1610031645722 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/set-distance-to-parent-node-to-one.json b/Projects/Superalgos/Schemas/Docs-Concepts/set-distance-to-parent-node-to-one.json new file mode 100644 index 000000000..f6e3e0e20 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/set-distance-to-parent-node-to-one.json @@ -0,0 +1,13 @@ +{ + "type": "Set Distance to Parent Node to One", + "definition": { + "text": "The node is locked to 1X of the distance.", + "updated": 1610031606000 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/set-distance-to-parent-node-to-two.json b/Projects/Superalgos/Schemas/Docs-Concepts/set-distance-to-parent-node-to-two.json new file mode 100644 index 000000000..6eac22809 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/set-distance-to-parent-node-to-two.json @@ -0,0 +1,13 @@ +{ + "type": "Set Distance to Parent Node to Two", + "definition": { + "text": "The node is locked to 2X of the distance.", + "updated": 1610031531374 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/set-node-arrangement-to-concave.json b/Projects/Superalgos/Schemas/Docs-Concepts/set-node-arrangement-to-concave.json new file mode 100644 index 000000000..e81034dc3 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/set-node-arrangement-to-concave.json @@ -0,0 +1,13 @@ +{ + "type": "Set Node Arrangement to Concave", + "definition": { + "text": "The node adopts a slot on a circumsference around its parent node. In the icon’s graphic, the orange dot represents the parent node, and the blue dots represent the node adopting the specific arrangement style.", + "updated": 1610032139983 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/set-node-arrangement-to-convex.json b/Projects/Superalgos/Schemas/Docs-Concepts/set-node-arrangement-to-convex.json new file mode 100644 index 000000000..dd0d32efd --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/set-node-arrangement-to-convex.json @@ -0,0 +1,13 @@ +{ + "type": "Set Node Arrangement to Convex", + "definition": { + "text": "The node adopts a slot on a convex curve away from its parent node .", + "updated": 1610032159403 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/set-node-arrangement-to-horizontal-bottom.json b/Projects/Superalgos/Schemas/Docs-Concepts/set-node-arrangement-to-horizontal-bottom.json new file mode 100644 index 000000000..a4690776e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/set-node-arrangement-to-horizontal-bottom.json @@ -0,0 +1,13 @@ +{ + "type": "Set Node Arrangement to Horizontal Bottom", + "definition": { + "text": "The node adopts a slot on a horizontal line below its parent node.\n", + "updated": 1610032261906 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/set-node-arrangement-to-horizontal-top.json b/Projects/Superalgos/Schemas/Docs-Concepts/set-node-arrangement-to-horizontal-top.json new file mode 100644 index 000000000..229d012ad --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/set-node-arrangement-to-horizontal-top.json @@ -0,0 +1,13 @@ +{ + "type": "Set Node Arrangement to Horizontal Top", + "definition": { + "text": "The node adopts a slot on a vertical line below its parent node.", + "updated": 1610032277727 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/set-node-arrangement-to-vertical-left.json b/Projects/Superalgos/Schemas/Docs-Concepts/set-node-arrangement-to-vertical-left.json new file mode 100644 index 000000000..bd6ac8fc0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/set-node-arrangement-to-vertical-left.json @@ -0,0 +1,13 @@ +{ + "type": "Set Node Arrangement to Vertical Left", + "definition": { + "text": "The node adopts a slot on a vertical line to the left of its parent node.", + "updated": 1610032236738 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/set-node-arrangement-to-vertical-right.json b/Projects/Superalgos/Schemas/Docs-Concepts/set-node-arrangement-to-vertical-right.json new file mode 100644 index 000000000..795ba4f4d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/set-node-arrangement-to-vertical-right.json @@ -0,0 +1,13 @@ +{ + "type": "Set Node Arrangement to Vertical Right", + "definition": { + "text": "The node adopts a slot on a vertical line to the right of its parent node.", + "updated": 1610032182644 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/share-entity.json b/Projects/Superalgos/Schemas/Docs-Concepts/share-entity.json new file mode 100644 index 000000000..a5db1773d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/share-entity.json @@ -0,0 +1,13 @@ +{ + "type": "Share Entity", + "definition": { + "text": "Downloads a JSON file containing information similar to a backup. The only difference is that no personal information is included. This is particularly important so that you do not share sensitive information accidentally, such as your API keys. Always use this function when you intend to share work. Do not share your backups. The file downloaded is named Share followed by the name of the entity you are sharing.", + "updated": 1610033141189 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/unfreeze-structure-of-nodes.json b/Projects/Superalgos/Schemas/Docs-Concepts/unfreeze-structure-of-nodes.json new file mode 100644 index 000000000..af428beac --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/unfreeze-structure-of-nodes.json @@ -0,0 +1,13 @@ +{ + "type": "Unfreeze Structure of Nodes", + "definition": { + "text": "Clicking the unfreeze option unfreezes connections. If you click the option to unfreeze a node and the node does not change its status, it may be because a higher node in the hierarchy is still frozen.", + "updated": 1610028960421 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/unpinned-node.json b/Projects/Superalgos/Schemas/Docs-Concepts/unpinned-node.json new file mode 100644 index 000000000..14b00e132 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/unpinned-node.json @@ -0,0 +1,13 @@ +{ + "type": "Unpinned Node", + "definition": { + "text": "When a node is unpinned, it is free to be affected by other settings, or find its place floating on the workspace.", + "updated": 1610028858735 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/actual-rate.json b/Projects/Superalgos/Schemas/Docs-Nodes/actual-rate.json new file mode 100644 index 000000000..1585ec74b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/actual-rate.json @@ -0,0 +1,40 @@ +{ + "type": "Actual Rate", + "definition": { + "text": "Actual rate is the number reported by the exchange as the rate at which an order was filled." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "When the system consults the status of open orders with the exchange, the exchange responds with the size filled and the actual rate for the particular order. In case an order is filled incrementally, the value is updated accordingly." + }, + { + "style": "Text", + "text": "The system uses the actual rate to update the calculation of balances, which are otherwise calculated with the original rate, by default." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Serial Number Configuration", + "updated": 1609873971454 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/actual-size.json b/Projects/Superalgos/Schemas/Docs-Nodes/actual-size.json new file mode 100644 index 000000000..ac895e06a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/actual-size.json @@ -0,0 +1,37 @@ +{ + "type": "Actual Size", + "definition": { + "text": "The Actual Size is the size reported by the exchange during synchronization, or the size resulting from the simulation of the synchronization with the exchange in the case of simulations.", + "updated": 1609927441472 + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Actual Size Configuration", + "updated": 1609927221799 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/algorithm-name.json b/Projects/Superalgos/Schemas/Docs-Nodes/algorithm-name.json new file mode 100644 index 000000000..2cf58565f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/algorithm-name.json @@ -0,0 +1,36 @@ +{ + "type": "Algorithm Name", + "definition": { + "text": "Algorithm name is the name of the execution algorithm that opened the order, as specified in the trading system." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Assigning names to execution algorithms in the definition of the trading system makes tracking the execution of orders easier." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Algorithm Name Configuration", + "updated": 1609927179541 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/amount-received.json b/Projects/Superalgos/Schemas/Docs-Nodes/amount-received.json new file mode 100644 index 000000000..c55ee8739 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/amount-received.json @@ -0,0 +1,36 @@ +{ + "type": "Amount Received", + "definition": { + "text": "Left click and Edit to enter edit mode and change this text." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Amount Received Configuration", + "updated": 1609927543933 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/announcement-condition.json b/Projects/Superalgos/Schemas/Docs-Nodes/announcement-condition.json new file mode 100644 index 000000000..d82693db7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/announcement-condition.json @@ -0,0 +1,3 @@ +{ + "type": "Announcement Condition" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/announcement-formula.json b/Projects/Superalgos/Schemas/Docs-Nodes/announcement-formula.json new file mode 100644 index 000000000..e5495239f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/announcement-formula.json @@ -0,0 +1,3 @@ +{ + "type": "Announcement Formula" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/announcement.json b/Projects/Superalgos/Schemas/Docs-Nodes/announcement.json new file mode 100644 index 000000000..2ff7dc99e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/announcement.json @@ -0,0 +1,12 @@ +{ + "type": "Announcement", + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ], + "definition": { + "text": "Right click to edit this text and replace it with a definition / summary for this page. ESC to exit edit mode." + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/annualized-rate-of-return.json b/Projects/Superalgos/Schemas/Docs-Nodes/annualized-rate-of-return.json new file mode 100644 index 000000000..9509a0cf1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/annualized-rate-of-return.json @@ -0,0 +1,84 @@ +{ + "type": "Annualized Rate Of Return", + "definition": { + "text": "Annualized rate of return is the equivalent ROI scaled to one year." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In other words, it is the equivalent annual return received over a given period." + }, + { + "style": "Text", + "text": "The formula:" + }, + { + "style": "Javascript", + "text": "annualized rate of return = \n(((investment + profits) / investments) ^ (365 / days)) - 1", + "updated": 1609925146643 + }, + { + "style": "Text", + "text": "In the context of the episode base asset and episode quoted asset, the calculation is done relative to the corresponding assets, and the overall context." + }, + { + "style": "Text", + "text": "The formulas:" + }, + { + "style": "Javascript", + "text": "tradingEngine.current.episode.episodeBaseAsset.annualizedRateOfReturn.value = \n((( tradingEngine.current.episode.episodeBaseAsset.beginBalance.value +\ntradingEngine.current.episode.episodeBaseAsset.profitLoss.value ) / \ntradingEngine.current.episode.episodeBaseAsset.beginBalance.value) ^\n(365 / tradingEngine.current.episode.episodeStatistics.days.value)) - 1\n\ntradingEngine.current.episode.episodeQuotedAsset.annualizedRateOfReturn.value = \n((( tradingEngine.current.episode.episodeQuotedAsset.beginBalance.value +\ntradingEngine.current.episode.episodeQuotedAsset.profitLoss.value ) / \ntradingEngine.current.episode.episodeQuotedAsset.beginBalance.value) ^\n(365 / tradingEngine.current.episode.episodeStatistics.days.value)) - 1", + "updated": 1609925166406 + }, + { + "style": "Text", + "text": "The JavaScript code:" + }, + { + "style": "Javascript", + "text": "tradingEngine.current.episode.episodeBaseAsset.annualizedRateOfReturn.value = \nMath.pow(\n ( tradingEngine.current.episode.episodeBaseAsset.beginBalance.value +\n tradingEngine.current.episode.episodeBaseAsset.profitLoss.value ) / \n tradingEngine.current.episode.episodeBaseAsset.beginBalance.value\n , \n (365 / tradingEngine.current.episode.episodeStatistics.days.value)\n ) - 1\n\ntradingEngine.current.episode.episodeQuotedAsset.annualizedRateOfReturn.value = \nMath.pow(\n ( tradingEngine.current.episode.episodeQuotedAsset.beginBalance.value +\n tradingEngine.current.episode.episodeQuotedAsset.profitLoss.value ) / \n tradingEngine.current.episode.episodeQuotedAsset.beginBalance.value\n , \n (365 / tradingEngine.current.episode.episodeStatistics.days.value)\n ) - 1", + "updated": 1609925205928 + }, + { + "style": "Text", + "text": "In the context of the episode statistics, the calculation is done using the consolidated balance, as explained in the profit loss definition." + }, + { + "style": "Note", + "text": "When the context does not refer to either of the assets in particular, then both asset balances are consolidated, and denominated in the quoted asset." + }, + { + "style": "Text", + "text": "The JavaScript code:" + }, + { + "style": "Javascript", + "text": "tradingEngine.current.episode.episodeStatistics.annualizedRateOfReturn.value =\nMath.pow(\n (\n tradingEngine.current.episode.episodeBaseAsset.beginBalance.value * \n tradingEngine.current.episode.beginRate.value +\n tradingEngine.current.episode.episodeQuotedAsset.beginBalance.value +\n tradingEngine.current.episode.episodeBaseAsset.profitLoss.value +\n tradingEngine.current.episode.episodeQuotedAsset.profitLoss.value\n ) / \n (\n tradingEngine.current.episode.episodeBaseAsset.beginBalance.value * \n tradingEngine.current.episode.beginRate.value +\n tradingEngine.current.episode.episodeQuotedAsset.beginBalance.value \n ) \n , \n (\n 365 / tradingEngine.current.episode.episodeStatistics.days.value\n ) \n ) - 1", + "updated": 1609925262959 + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Annualized Rate Of Return Configuration", + "updated": 1609925322383 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/asset.json b/Projects/Superalgos/Schemas/Docs-Nodes/asset.json new file mode 100644 index 000000000..930d1a11f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/asset.json @@ -0,0 +1,47 @@ +{ + "type": "Asset", + "definition": { + "text": "An asset node is the definition of an asset in Superalgos.", + "updated": 1609771995506 + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content", + "updated": 1609772067590 + }, + { + "style": "Text", + "text": "Assets defined under the Exchange Assets node may then be used to define markets, or to define holdings denominated in these assets under the User Assets node.", + "updated": 1609772147353 + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609772157097 + }, + { + "style": "Title", + "text": "" + }, + { + "style": "Title", + "text": "Asset Configuration", + "updated": 1609772023763 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609772168896 + }, + { + "style": "List", + "text": "codeName is the ticker of the asset as listed by the exchange (i.e. BTC, BTH, ETH, LTC, BNB, USDT, USD, etc.)", + "updated": 1609772199109 + }, + { + "style": "Note", + "text": "When a configured asset is within the system's icon catalog, the standard asset icon is replaced with the logotype of the corresponding asset." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/backtesting-session.json b/Projects/Superalgos/Schemas/Docs-Nodes/backtesting-session.json new file mode 100644 index 000000000..d7a67e4e7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/backtesting-session.json @@ -0,0 +1,59 @@ +{ + "type": "Backtesting Session", + "definition": { + "text": "A backtesting session is a trading mode by which the trading bot instance reads historic market data in a user-defined datetime range, applies the rules defined in the associated trading system, and generates a trading simulation." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "A backtesting session node must reference a trading system to gain access to the trading logic to be applied during the session. Other considerations framing the session come from the set of parameters attached to it." + }, + { + "style": "Block", + "text": "Running" + }, + { + "style": "Title", + "text": "Running a Backtesting Session", + "updated": 1609669025756 + }, + { + "style": "Text", + "text": "Before you start a backtesting session, the corresponding task needs to be running, as it is the task that puts the trading bot instance to run. Once the trading bot instance is running, select Run on the menu to start the session." + }, + { + "style": "Text", + "text": "After a few seconds, a literal indication of the progress of the calculations appears below the session node, displaying the date that is currently being processed. Once the calculation is finished, the session stops and the date below the session node dissapears." + }, + { + "style": "Text", + "text": "To stop a backtesting session, select Stop on the menu." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Backtesting Session Configuration" + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609668965860 + }, + { + "style": "List", + "text": "folderName allows you to set a significant name to the folder in which the data products—and logs—generated by the session are stored. If left blank, the system names the folders with the session id. This may be handy when you intend to consult the raw data generated by the session, as, otherwise, the folder would be hard to identify.", + "updated": 1609668975474 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/balance.json b/Projects/Superalgos/Schemas/Docs-Nodes/balance.json new file mode 100644 index 000000000..1c3dcee01 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/balance.json @@ -0,0 +1,36 @@ +{ + "type": "Balance", + "definition": { + "text": "Balance is the running balance, that is, the amount of the asset that exists at any point in time." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The balance of an asset changes every time an order involving the asset is filled. When the trading bot consults the exchange to find out the status of each order placed, the exchange answers with the size filled and actual rate for the order. That is the information used to calculate balances." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Balance Configuration", + "updated": 1609880398764 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/begin-balance.json b/Projects/Superalgos/Schemas/Docs-Nodes/begin-balance.json new file mode 100644 index 000000000..d61c1456f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/begin-balance.json @@ -0,0 +1,40 @@ +{ + "type": "Begin Balance", + "definition": { + "text": "Begin balance is the balance at the datetime of the begin property of the parent node or concept." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In the context of an episode, it is the balance at the datetime the episode started." + }, + { + "style": "Text", + "text": "In the context of a position, it is the balance at the datetime the position started." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Begin Balance Configuration", + "updated": 1609880426219 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/begin-rate.json b/Projects/Superalgos/Schemas/Docs-Nodes/begin-rate.json new file mode 100644 index 000000000..433506511 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/begin-rate.json @@ -0,0 +1,44 @@ +{ + "type": "Begin Rate", + "definition": { + "text": "Begin rate is the close rate of the candle corresponding to the datetime of the begin property." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In the context of a strategy, it is the close rate of the last closed candle at the moment the strategy was triggered." + }, + { + "style": "Text", + "text": "In the context of a position, it is the close rate of the last closed candle at the moment the take position event was triggered." + }, + { + "style": "Text", + "text": "In the context of an episode, it is the close rate of the last closed candle at the moment the episode starts." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Begin Rate Configuration", + "updated": 1609880087472 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/begin.json b/Projects/Superalgos/Schemas/Docs-Nodes/begin.json new file mode 100644 index 000000000..04ed22154 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/begin.json @@ -0,0 +1,36 @@ +{ + "type": "Begin", + "definition": { + "text": "Begin is the datetime at the moment the object represented by the parent node began to exist." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In the context of a candle, it is the datetime of the open of the candle as provided by the exchange." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Begin Configuration", + "updated": 1609880063550 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/bot-data-dependencies.json b/Projects/Superalgos/Schemas/Docs-Nodes/bot-data-dependencies.json new file mode 100644 index 000000000..8eb53e958 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/bot-data-dependencies.json @@ -0,0 +1,28 @@ +{ + "type": "Bot Data Dependencies", + "definition": { + "text": "A bot data dependencies node is an organizational device used to arrange data dependencies corresponding to a specific bot." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The device exists as an offspring of a data mine data dependencies node, and does not require a reference to a bot in the given data mine." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Configuring Bot Data Dependencies" + }, + { + "style": "Text", + "text": "Select Configure on the menu to access the configuration." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/bot-layers.json b/Projects/Superalgos/Schemas/Docs-Nodes/bot-layers.json new file mode 100644 index 000000000..567c632b7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/bot-layers.json @@ -0,0 +1,14 @@ +{ + "type": "Bot Layers", + "paragraphs": [ + { + "style": "Text", + "text": "The node is created automatically when installing new markets.", + "updated": 1609784576182 + } + ], + "definition": { + "text": "The Bot Layers node is an organizational device used to group layers originating on a specific bot.", + "updated": 1609784614091 + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/bot-products.json b/Projects/Superalgos/Schemas/Docs-Nodes/bot-products.json new file mode 100644 index 000000000..528ff09a2 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/bot-products.json @@ -0,0 +1,20 @@ +{ + "type": "Bot Products", + "definition": { + "text": "A bot products node is an organizational device used to arrange data products corresponding to a specific bot." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The device exists as an offspring of a data or trading mine products node, and does not require a reference to a bot in the given data or trading mine." + }, + { + "style": "Text", + "text": "The use of the bot products node is optional, as data products may also exist outside of bot products." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/calculations-procedure.json b/Projects/Superalgos/Schemas/Docs-Nodes/calculations-procedure.json new file mode 100644 index 000000000..674f5ff1b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/calculations-procedure.json @@ -0,0 +1,28 @@ +{ + "type": "Calculations Procedure", + "definition": { + "text": "The calculations procedure processes information to be fed to calculated properties. Calculated properties are not stored in the data set; instead, they are calculated in real-time as the data is consumed by others." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Bots store data in the minimized array format as a strategy to build the lightest possible datasets. For the same reason, a bot may choose not to store easily calculable information." + }, + { + "style": "Text", + "text": "For example, imagine an indicator that stores buy and sell volumes... does it need to store the total volume? Given that it is so easy to calculate, the answer is probably not. It is up to the developer to decide, but it is certainly not required." + }, + { + "style": "Note", + "text": "The calculations procedure is used to calculate properties that the developer chooses not to store in the dataset." + }, + { + "style": "Note", + "text": "To fully understand the role of the calculations procedure, please refer to the data mining workflow page." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/cancel-order-event.json b/Projects/Superalgos/Schemas/Docs-Nodes/cancel-order-event.json new file mode 100644 index 000000000..a0694ff05 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/cancel-order-event.json @@ -0,0 +1,16 @@ +{ + "type": "Cancel Order Event", + "definition": { + "text": "The cancel order event makes cancelling limit orders possible." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The cancel order event defines the market situations in which a limit order shall be canceled. When the event is triggered, the order is closed, even when the order may have been partially filled. In such a case, the size filled remains as is, and all accounts are computed accordingly, with the partial fill." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/cancel-order.json b/Projects/Superalgos/Schemas/Docs-Nodes/cancel-order.json new file mode 100644 index 000000000..cf1c4c69e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/cancel-order.json @@ -0,0 +1,29 @@ +{ + "type": "Cancel Order", + "definition": { + "text": "Counts the periods since the last time an order was canceled." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Cancel Order Configuration", + "updated": 1609925777606 + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/candle.json b/Projects/Superalgos/Schemas/Docs-Nodes/candle.json new file mode 100644 index 000000000..f3d56b12b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/candle.json @@ -0,0 +1,16 @@ +{ + "type": "Candle", + "definition": { + "text": "The candle structure of nodes stores the properties that make up each candle in the episode, including open and close datetime, and the rates for open, min, max, and close." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/chart-points.json b/Projects/Superalgos/Schemas/Docs-Nodes/chart-points.json new file mode 100644 index 000000000..af471b893 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/chart-points.json @@ -0,0 +1,16 @@ +{ + "type": "Chart Points", + "definition": { + "text": "A chart points groups definitions of coordinate points used to define polygons." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The definition of a point consists of the name of the point and the corresponding values for the x and y coordinates. To create such definitions, point and point formulas are used." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/charting-space.json b/Projects/Superalgos/Schemas/Docs-Nodes/charting-space.json new file mode 100644 index 000000000..fd1e77cc1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/charting-space.json @@ -0,0 +1,20 @@ +{ + "type": "Charting Space", + "definition": { + "text": "The charting space is the hierarchy that governs the configuration of the charts, and the bidimensional space on which charts are drawn." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Think of the charting space as a huge drawing board. You may have lots of information plotted on different parts of the space and use a viewport to look into that space." + }, + { + "style": "Text", + "text": "There is only one charting space hierarchy, thus all charts are configured here. As is common throughout the system, different concepts and elements of the charts such as scales, data layers and so on, are represented by nodes in the hierarchy. The system allows great flexibility on how to visualize information over the charts by adding, configuring, and arranging these nodes." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/close-execution.json b/Projects/Superalgos/Schemas/Docs-Nodes/close-execution.json new file mode 100644 index 000000000..26b8382f8 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/close-execution.json @@ -0,0 +1,16 @@ +{ + "type": "Close Execution", + "definition": { + "text": "The close execution node groups all execution algorithms involved in the process of closing a position." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The close execution section of the close stage works similarly to the open execution in the open stage. Please refer to the explanations of the open stage for the details." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/close-order.json b/Projects/Superalgos/Schemas/Docs-Nodes/close-order.json new file mode 100644 index 000000000..8ebd527ed --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/close-order.json @@ -0,0 +1,36 @@ +{ + "type": "Close Order", + "definition": { + "text": "Counts the periods since the last time an order was closed." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Close Order Configuration", + "updated": 1609925804187 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/close-position.json b/Projects/Superalgos/Schemas/Docs-Nodes/close-position.json new file mode 100644 index 000000000..70fb81ecf --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/close-position.json @@ -0,0 +1,29 @@ +{ + "type": "Close Position", + "definition": { + "text": "Counts the periods since the last time a position was closed." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Close Position Configuration", + "updated": 1609925688167 + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/close-stage-event.json b/Projects/Superalgos/Schemas/Docs-Nodes/close-stage-event.json new file mode 100644 index 000000000..000ebfe42 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/close-stage-event.json @@ -0,0 +1,20 @@ +{ + "type": "Close Stage Event", + "definition": { + "text": "The close stage event defines the set of rules that need to be met for the corresponding stage to be closed." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Both the open and close stages are closed once the target size is filled." + }, + { + "style": "Text", + "text": "However, Superalgos allows an extra level of control so that the user may choose to close either stage given specific market situations. Such is the intent of the close stage event." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/close-stage.json b/Projects/Superalgos/Schemas/Docs-Nodes/close-stage.json new file mode 100644 index 000000000..55c58849c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/close-stage.json @@ -0,0 +1,24 @@ +{ + "type": "Close Stage", + "definition": { + "text": "The close stage deals with the definitions that make up the logic to close a position, including the target rate and size, and order execution." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The close stage is opened when either the stop loss or take profit targets are hit." + }, + { + "style": "Text", + "text": "In a way, the close stage is virtually a mirror of the open stage, as the same definitions are required to close a position. There are a few logical differences, though." + }, + { + "style": "Text", + "text": "For example, in the open stage, you probably defined the target size as a function of the capital allocated to the trading system. In the close stage, you will likely want to define the target size as a function of the size filled, that is, the amount of the orders placed that was filled during the open stage." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/close.json b/Projects/Superalgos/Schemas/Docs-Nodes/close.json new file mode 100644 index 000000000..022dfccce --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/close.json @@ -0,0 +1,16 @@ +{ + "type": "Close", + "definition": { + "text": "Close is the rate at the datetime of the end property, as provided by the exchange. That is, the rate at the close of the candle." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/condition.json b/Projects/Superalgos/Schemas/Docs-Nodes/condition.json new file mode 100644 index 000000000..a411b809c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/condition.json @@ -0,0 +1,51 @@ +{ + "type": "Condition", + "definition": { + "text": "Conditions are rules within a situation. When all conditions under a situation validate true, then the situation gets validated as well, and the associated event is triggered." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Therefore, conditions are used to mathematically describe what needs to happen with the market for a certain action to be taken." + }, + { + "style": "Text", + "text": "For example:" + }, + { + "style": "Subtitle", + "text": "Situation 1" + }, + { + "style": "List", + "text": "Condition A: chart.at01hs.candle.close > chart.at01hs.bollingerBand.MovingAverage", + "updated": 1610211782596 + }, + { + "style": "Note", + "text": "This means that the latest candle at the 1 hour chart closed above the Bollinger Bands moving average." + }, + { + "style": "List", + "text": "Condition B: chart.at01hs.candle.previous.max > chart.at01hs.bollingerBand.previous.MovingAverage", + "updated": 1610211804682 + }, + { + "style": "Note", + "text": "This means that the maximum value of the candle before the last one, was higher than the Bollinger Bands moving average." + }, + { + "style": "Text", + "text": "In the example above, conditions A and B are comparison statements that may evaluate either true or false. In the case both would evaluate true then Situation 1 would be true as well.", + "updated": 1609595293131 + }, + { + "style": "Note", + "text": "To learn how to write conditions, start with the Syntax Overview." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/create-order-event.json b/Projects/Superalgos/Schemas/Docs-Nodes/create-order-event.json new file mode 100644 index 000000000..1f5a518af --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/create-order-event.json @@ -0,0 +1,24 @@ +{ + "type": "Create Order Event", + "definition": { + "text": "The create order event controls the placement of orders." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Even though the decision to take a position may have been made, the user may still decide to exert additional control over the placement of orders. Such is the intent of the create order event." + }, + { + "style": "Text", + "text": "An order defined in an execution algorithm will be executed only if the event evaluates true." + }, + { + "style": "Text", + "text": "If you wish orders to be placed as defined immediately after the take position event has been triggered, the use the statement true your only create order event condition." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/create-order.json b/Projects/Superalgos/Schemas/Docs-Nodes/create-order.json new file mode 100644 index 000000000..d21c49078 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/create-order.json @@ -0,0 +1,29 @@ +{ + "type": "Create Order", + "definition": { + "text": "Counts the periods since the last time an order was created." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Create Order Configuration", + "updated": 1609925746618 + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/crypto-ecosystem.json b/Projects/Superalgos/Schemas/Docs-Nodes/crypto-ecosystem.json new file mode 100644 index 000000000..1a35d68a8 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/crypto-ecosystem.json @@ -0,0 +1,16 @@ +{ + "type": "Crypto Ecosystem", + "definition": { + "text": "The crypto ecosystem is a hierarchy that contains definitions about third-parties, including exchanges and their markets, as well as accounts of users with those third parties." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "There is only one crypto ecosystem hierarchy. You will use it to define which exchanges and which markets you wish to work with, as well as the details of your accounts with those exchanges." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/crypto-exchange.json b/Projects/Superalgos/Schemas/Docs-Nodes/crypto-exchange.json new file mode 100644 index 000000000..0824a262c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/crypto-exchange.json @@ -0,0 +1,30 @@ +{ + "type": "Crypto Exchange", + "definition": { + "text": "A crypto exchange node holds the definitions of assets and markets in a specific exchange." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Crypto Exchange Configuration", + "updated": 1609771676751 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609771684679 + }, + { + "style": "List", + "text": "codeName is the name of the exchange as handled in the code of the system." + }, + { + "style": "List", + "text": "API holds a series of definitions used only in the case in which the sensor bot fetches trades (using the Historic-Trades process) instead of the OHLCV process that fetches one-minute candles and is the current default. In such a case, finding the right set of parameters to work with a specific exchange may be challenging, nd involves understanding how the exchanges API and the CCXT Library API work. In other words, there is no hard rule as of what each of the values should be. Determining each of this values requires exploring the exchange's API documentation, as well as the documentation of the CCXT Library." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/crypto-exchanges.json b/Projects/Superalgos/Schemas/Docs-Nodes/crypto-exchanges.json new file mode 100644 index 000000000..a3f380abc --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/crypto-exchanges.json @@ -0,0 +1,32 @@ +{ + "type": "Crypto Exchanges", + "definition": { + "text": "The crypto exchanges node groups definitions of the different exchanges the user may interact with." + }, + "paragraphs": [ + { + "style": "Text", + "text": "The default workspace features several nodes of this type, each with a purpose:", + "updated": 1609771412437 + }, + { + "style": "List", + "text": "Tested: features Crypto Exchange nodes of exchanges that have been thoroughly tested.", + "updated": 1609771181080 + }, + { + "style": "List", + "text": "Untested: features a collection of Crypto Exchange nodes of untested exchanges that comply with the set of API requirements of the CCXT library that Superalgos needs to function.", + "updated": 1609771650992 + }, + { + "style": "List", + "text": "Testing Queue: you may use this node to deploy Crypto Exchange nodes while testing them.", + "updated": 1609771442675 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/current.json b/Projects/Superalgos/Schemas/Docs-Nodes/current.json new file mode 100644 index 000000000..db351f5ed --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/current.json @@ -0,0 +1,24 @@ +{ + "type": "Current", + "definition": { + "text": "The current object refers to the context in which instances of several other objects exist—like episode, strategy, position, strategy stages, and so on—in particular, the instances that are open at the time of evaluation, hence the adjective current." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Conceptually, current is used as an adjective applied to different concepts, such as the current episode, the current strategy, the current position, or the current strategy stage, to indicate the instance that is passing at the moment." + }, + { + "style": "Text", + "text": "The generation of offspring nodes under the current section of the hierarchy keeps track of information within the scope of the embodied concept: episode, strategy, position, and so on." + }, + { + "style": "Text", + "text": "In other words, the episode, strategy and position nodes within the current section of the hierarchy feature information relative to the instances of the episode, strategy, and position that are currently passing, at any point in time." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/cycle.json b/Projects/Superalgos/Schemas/Docs-Nodes/cycle.json new file mode 100644 index 000000000..16edaf1cc --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/cycle.json @@ -0,0 +1,24 @@ +{ + "type": "Cycle", + "definition": { + "text": "The trading bot performs its duties in regards to exchange orders and accounts in two consecutive cycles for each candle." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In the first cycle, it checks the status of orders at the exchange, synchronizes the accounts, and verifies if conditions to place new orders are met." + }, + { + "style": "Text", + "text": "In the second cycle, it creates the orders at the exchange, provided conditions where met on the previous cycle." + }, + { + "style": "Text", + "text": "The two possible values for the cycle node are First and Second." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/dashboard.json b/Projects/Superalgos/Schemas/Docs-Nodes/dashboard.json new file mode 100644 index 000000000..28e7a25d3 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/dashboard.json @@ -0,0 +1,20 @@ +{ + "type": "Dashboard", + "definition": { + "text": "A dashboard is a collection of time machines, each containing any number of charts." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The concept of the dashboard allows having multiple charts configured all at once, so that you may consult different exchanges, different markets, different time frames, or different technical studies on demand, simply by moving around and zooming in or out. You may put charts side by side, or even superimpose them to study market flows, search for arbitrage opportunities, or simply keep them in sight when you analyze particular market situations." + }, + { + "style": "Text", + "text": "At the moment, the functionality of a dashboard is trivial: grouping time machines. However, in the future, it will offer various features to enhance the user experience." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/data-building-procedure.json b/Projects/Superalgos/Schemas/Docs-Nodes/data-building-procedure.json new file mode 100644 index 000000000..3ea0b3ccc --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/data-building-procedure.json @@ -0,0 +1,16 @@ +{ + "type": "Data Building Procedure", + "definition": { + "text": "The data building procedure processes information to be fed to properties that are stored in the output dataset." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "This procedure holds the core logic of the bot, as it features the code that performs the calculations required to produce the new data set. The code is split between a procedure initialization and a procedure loop." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/data-dependency-folder.json b/Projects/Superalgos/Schemas/Docs-Nodes/data-dependency-folder.json new file mode 100644 index 000000000..11b37da98 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/data-dependency-folder.json @@ -0,0 +1,28 @@ +{ + "type": "Data Dependency Folder", + "definition": { + "text": "A data dependency folder node is an organizational device used to map the arrangement of product definition folders of a given bot." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The use of product data dependency folders is optional, as data dependencies may also exist outside of folders." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Configuring Data Dependency Folder" + }, + { + "style": "Text", + "text": "Select Configure on the menu to access the configuration." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/data-dependency.json b/Projects/Superalgos/Schemas/Docs-Nodes/data-dependency.json new file mode 100644 index 000000000..a5679f677 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/data-dependency.json @@ -0,0 +1,16 @@ +{ + "type": "Data Dependency", + "definition": { + "text": "Data dependencies are references established with dataset definitions of other bots, determining which datasets the process establishing the reference uses as input." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Most bots consume data other bots have produced. Because bots need the data as input for their calculations, processes establish a data dependency with the dataset definitions of other bots. The reference provides the process with all the information needed to decode the dataset, enabling it to perform the required calculations." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/data-formula.json b/Projects/Superalgos/Schemas/Docs-Nodes/data-formula.json new file mode 100644 index 000000000..ca0aa5f62 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/data-formula.json @@ -0,0 +1,12 @@ +{ + "type": "Data Formula", + "definition": { + "text": "A data formula is a device used to assign a value to the panel data, usually in the form of the name of the corresponding record property." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/data-mine-data-dependencies.json b/Projects/Superalgos/Schemas/Docs-Nodes/data-mine-data-dependencies.json new file mode 100644 index 000000000..6da09af9f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/data-mine-data-dependencies.json @@ -0,0 +1,28 @@ +{ + "type": "Data Mine Data Dependencies", + "definition": { + "text": "Data mine data dependencies are references established with entire data mines to facilitate establishing data dependencies with multiple datasets in the given data mine." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The node may be used as an organizational device, simply to arrange bot data dependencies. However, the smart use of the node involves automating the deployment of multiple data dependencies and their references." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Configuring Data Mine Data Dependencies" + }, + { + "style": "Text", + "text": "Select Configure on the menu to access the configuration." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/data-mine-products.json b/Projects/Superalgos/Schemas/Docs-Nodes/data-mine-products.json new file mode 100644 index 000000000..3c3b83099 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/data-mine-products.json @@ -0,0 +1,20 @@ +{ + "type": "Data Mine Products", + "definition": { + "text": "Data mine products are references established with data mines to facilitate establishing data product references with multiple products in the given data mine." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The node may be used as an organizational device, simply to arrange bot products. However, the smart use of the node involves automating the deployment of multiple data products." + }, + { + "style": "Text", + "text": "The use of the data mine products node is optional, as data products may also exist outside of data mine products nodes." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/data-mine-tasks.json b/Projects/Superalgos/Schemas/Docs-Nodes/data-mine-tasks.json new file mode 100644 index 000000000..009ef02ea --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/data-mine-tasks.json @@ -0,0 +1,24 @@ +{ + "type": "Data Mine Tasks", + "definition": { + "text": "The data mine tasks node is an organizational device that groups tasks corresponding to the referenced data mine." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The data mine tasks node must reference the definition of a data mine. The node may spawn tasks for each bot in the data mine." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Block", + "text": "Running" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/data-mine.json b/Projects/Superalgos/Schemas/Docs-Nodes/data-mine.json new file mode 100644 index 000000000..c65b13e11 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/data-mine.json @@ -0,0 +1,38 @@ +{ + "type": "Data Mine", + "definition": { + "text": "A data mine is a hierarchy that contains definitions of sensor and indicators bots, and their plotters. These definitions make up the actual programs of such bots—the source code." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In a way, data mines are catalogs of bots that anyone may create. This hierarchy provides all the tools required to create sensors, indicators, and plotters, with minimal coding required." + }, + { + "style": "Text", + "text": "Because the hierarchy provides definitions, it does not intervene in the execution of bots. Instead, the definitions in data mines are instantiated from the network hierarchy by bot instances. Bot instances and process instances are the ones running the code according to the definitions in the corresponding data mine." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Data Mine Configuration", + "updated": 1609789108763 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609789116514 + }, + { + "style": "List", + "text": "codeName is the name of the data mine as used within the code of the system." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/data-mines-data.json b/Projects/Superalgos/Schemas/Docs-Nodes/data-mines-data.json new file mode 100644 index 000000000..64041ca0f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/data-mines-data.json @@ -0,0 +1,24 @@ +{ + "type": "Data Mines Data", + "definition": { + "text": "Session independent data refers to data generated by sensors and indicators, not related to trading sessions." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "As explained in the sorting of tasks page, data mines data is sorted by exchange, market, and the corresponding data mine, sensor or indicator bot, and bot product. That is, most of the nodes in this section of the hierarchy play an organizational role." + }, + { + "style": "Text", + "text": "Many of them require references to the nodes that delimit the context for which the data is applicable. For example, the market data products node must reference one of the installed markets, in particular, the market on which the data mining operation is run. These references help other entities understand the context to which the data belongs to." + }, + { + "style": "Text", + "text": "Whenever you create data mining tasks manually from within the Network hierarchy (as opposed to using the install market function under the exchange markets node of the Crypto Ecosystem hierarchy" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/data-product-folder.json b/Projects/Superalgos/Schemas/Docs-Nodes/data-product-folder.json new file mode 100644 index 000000000..13c64445b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/data-product-folder.json @@ -0,0 +1,16 @@ +{ + "type": "Data Product Folder", + "definition": { + "text": "A data product folder node is an organizational device used to map the arrangement of product definition folders as may exist in the bot definition of the corresponding data or trading mine." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The use of the data product folder node is optional, as data products may also exist outside of data product folders." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/data-product.json b/Projects/Superalgos/Schemas/Docs-Nodes/data-product.json new file mode 100644 index 000000000..f4b1296df --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/data-product.json @@ -0,0 +1,24 @@ +{ + "type": "Data Product", + "definition": { + "text": "A data product represents the collection of datasets generated by the instance of a bot as defined in the corresponding data mine or trading mine." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Data products exist in the context of trading mines data and data mines data nodes. In the first case, a data product is the collection of datasets generated by an instance of a trading bot as defined in a trading mine, running a trading session. In the latter case, it is the collection of datasets generated by either a sensor bot or an indicator bot instance, as defined in a data mine, and running a data mining task." + }, + { + "style": "Text", + "text": "A data product node must reference a product definition in the corresponding bot." + }, + { + "style": "Important", + "text": "Data products may only be stored on the same network node on which the task—data mining or trading—runs." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/data-storage.json b/Projects/Superalgos/Schemas/Docs-Nodes/data-storage.json new file mode 100644 index 000000000..be0b3a98b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/data-storage.json @@ -0,0 +1,39 @@ +{ + "type": "Data Storage", + "definition": { + "text": "The data storage node holds the definitions as to what data is stored in the corresponding network node." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Bot instances running on the data mining and trading sections of a network node produce data products that need to be stored somewhere, specifically. The data storage node and its chain of offspring determine which data is to be stored where; that is, in what network node." + }, + { + "style": "Text", + "text": "Like with the data mining section and the sections referring to trading operations (testing and production environments), the data storage section is too organized by exchange, market, and data or trading mines. See the sorting of tasks page for the details." + }, + { + "style": "Callout", + "text": "The storage of data is split between Data Mines Data and Trading Mines Data. This is to facilitate the management of data storage definitions in trading farms, on which data mining operations may be separate from trading operations.", + "updated": 1610122343175 + }, + { + "style": "Text", + "text": "The data stored on each node of the network may be accessed by others, including the Charting Space, to visualize information via plotters defined in data mines, by trading systems to make trading decisions, and even by third-party systems. The information regarding trading mine data is explained in length in the trading engine section of the documentation.", + "updated": 1610122379029 + }, + { + "style": "Text", + "text": "The setup of data storage definitions is done automatically when the install market function under the exchange markets node of the Crypto Ecosystem hierarchy is used. However, when data mining or trading tasks are created manually, the data storage definitions must be created manually as well, using the tools available in each of the data structures below this node." + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Deleting Node Warning", + "updated": 1610122776605 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/data-tasks.json b/Projects/Superalgos/Schemas/Docs-Nodes/data-tasks.json new file mode 100644 index 000000000..cc9aa83bb --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/data-tasks.json @@ -0,0 +1,33 @@ +{ + "type": "Data Tasks", + "paragraphs": [ + { + "style": "Text", + "text": "Having access to quality information is a crucial element of trading. For that reason, Superalgos strives to give users full control over how, where, and when data is processed. You will use this section of the network hierarchy to exert that control.", + "updated": 1609613582225 + }, + { + "style": "Text", + "text": "Data mining is done through tasks running instances of sensor and indicator bots. The data structure under this node allows organizing the data mining operation by project, exchange, market, and data mine.", + "updated": 1609618336656 + }, + { + "style": "Text", + "text": "The setup of the data mining operation may be done using the Install Market function of the market you wish to install as defined in the Crypto Ecosystem hierarchy under the exchange markets node.", + "updated": 1609618361260 + }, + { + "style": "Text", + "text": "You may also set up data mining tasks by using the different functions in this section of the hierarchy, starting with the options in the menu of this node. This route offers finer control over what tasks you set up, and how." + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Deleting Node Warning", + "updated": 1610122758940 + } + ], + "definition": { + "text": "Data tasks referes to data-mining, that is, the activity of processing data. You need to process data to feed charts, and so that your trading systems may make decisions based on quality information.", + "updated": 1609618235002 + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/dataset-definition.json b/Projects/Superalgos/Schemas/Docs-Nodes/dataset-definition.json new file mode 100644 index 000000000..658687b59 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/dataset-definition.json @@ -0,0 +1,55 @@ +{ + "type": "Dataset Definition", + "definition": { + "text": "A data set is a collection of files stored in the designated location, as per the definitions on the referenced data product in the corresponding data mine." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "A good part of what makes datasets easy to consume by other bots is the fact that they are standardized in terms of their structure. It is that structure that is specified in the dataset definitions." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Dataset Definition Configuration", + "updated": 1609788319432 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609788325479 + }, + { + "style": "List", + "text": "codeName is the name of the dataset as used within the code." + }, + { + "style": "List", + "text": "type refers to the type of dataset; possible values are market files and daily files.", + "updated": 1609788409763 + }, + { + "style": "List", + "text": "validTimeFrames refers to the time frames handled by the dataset." + }, + { + "style": "List", + "text": "filePath sets the path on which files are stored; the proper name of the data mine, the bot and the product need to be entered." + }, + { + "style": "List", + "text": "fileName sets the name of the files that constitute the dataset." + }, + { + "style": "List", + "text": "timeFrames sets the name and path of the file indicating which time frames shall be filtered when the users sets a time frames filter." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/days.json b/Projects/Superalgos/Schemas/Docs-Nodes/days.json new file mode 100644 index 000000000..ceba8d49f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/days.json @@ -0,0 +1,40 @@ +{ + "type": "Days", + "definition": { + "text": "Days counts the number of days through which the trading bot has cycled since the object represented by the parent node was open." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In the context of an episode, it counts the number of days in the episode." + }, + { + "style": "Text", + "text": "In the context of a position, it counts the number of days a position has been open." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Days Configuration", + "updated": 1609925075455 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/design-space.json b/Projects/Superalgos/Schemas/Docs-Nodes/design-space.json new file mode 100644 index 000000000..c360f5e70 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/design-space.json @@ -0,0 +1,17 @@ +{ + "type": "Design Space", + "definition": { + "text": "The Design Space is the visual environment that hosts all system and user definitions. In practical terms, it is the black space below the slider that splits the screen horizontally, separating the Design Space in the bottom from the Charting Space on top. As a hierarchy, it features nodes that enable user-control over certain aspects of the look, feel, and behavior of the space.", + "updated": 1609861711688 + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Think of the design space as your desktop, or the control room of the system." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/distance-to-event.json b/Projects/Superalgos/Schemas/Docs-Nodes/distance-to-event.json new file mode 100644 index 000000000..05c47afb0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/distance-to-event.json @@ -0,0 +1,16 @@ +{ + "type": "Distance To Event", + "definition": { + "text": "Distance to event features counters indicating how many periods (candles) have passed since the last occurrence of certain events, in the context of the episode." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The information may be used from within strategies, for example, to leave a cool-down period in-between positions, to separate orders in specific intervals, or to achieve any particular logic that may require counting how much time has passed since the last time a specific event was triggered." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/dynamic-indicators.json b/Projects/Superalgos/Schemas/Docs-Nodes/dynamic-indicators.json new file mode 100644 index 000000000..c42de245f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/dynamic-indicators.json @@ -0,0 +1,7 @@ +{ + "type": "Dynamic Indicators", + "definition": { + "text": "" + }, + "paragraphs": [] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/end-balance.json b/Projects/Superalgos/Schemas/Docs-Nodes/end-balance.json new file mode 100644 index 000000000..2285f07b1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/end-balance.json @@ -0,0 +1,40 @@ +{ + "type": "End Balance", + "definition": { + "text": "End balance is the balance at the datetime of the end property of the parent node or concept." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In the context of an episode, it is the balance at the datetime the episode ended." + }, + { + "style": "Text", + "text": "In the context of a position, it is the balance at the datetime the position was closed." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "End Balance Configuration", + "updated": 1609880443250 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/end-rate.json b/Projects/Superalgos/Schemas/Docs-Nodes/end-rate.json new file mode 100644 index 000000000..1d3adfa09 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/end-rate.json @@ -0,0 +1,44 @@ +{ + "type": "End Rate", + "definition": { + "text": "End rate is the close rate of the candle corresponding to the datetime of the end property." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In the context of a strategy, it is the close rate of the last closed candle at the moment the strategy is triggered-off." + }, + { + "style": "Text", + "text": "In the context of a position, it is the close rate of the last closed candle at the moment the close stage is closed." + }, + { + "style": "Text", + "text": "In the context of an episode, it is the close rate of the last closed candle at the moment the episode ends." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "End Rate Configuration", + "updated": 1609880099707 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/end.json b/Projects/Superalgos/Schemas/Docs-Nodes/end.json new file mode 100644 index 000000000..de4c0043e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/end.json @@ -0,0 +1,40 @@ +{ + "type": "End", + "definition": { + "text": "End is the datetime on which the object represented by the parent node ceased to exist. In case the object has not been closed yet, it is the datetime at the moment of evaluation." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In the context of a candle, it is the datetime of the close of the candle as provided by the exchange." + }, + { + "style": "Text", + "text": "In every other context, the datetime is given by the datetime of the moment of evaluation. When evaluating a point in time in which the object remains open, end stores the datetime of that moment, because the object existed until that point in time when the value was last being updated. Once the object is closed, the end value is not modified again." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "End Configuration", + "updated": 1609880073775 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/entry-target-rate.json b/Projects/Superalgos/Schemas/Docs-Nodes/entry-target-rate.json new file mode 100644 index 000000000..33bfdbda0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/entry-target-rate.json @@ -0,0 +1,36 @@ +{ + "type": "Entry Target Rate", + "definition": { + "text": "Entry target rate is the target rate set on the initial targets definition, in the open stage of the strategy." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Refresh this concepts by reading about the initial target definitions at the trading system." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Entry Target Rate Configuration", + "updated": 1609926431796 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/entry-target-size.json b/Projects/Superalgos/Schemas/Docs-Nodes/entry-target-size.json new file mode 100644 index 000000000..bc007ff25 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/entry-target-size.json @@ -0,0 +1,40 @@ +{ + "type": "Entry Target Size", + "definition": { + "text": "Entry target size is the target size set on the initial targets definition, in the open stage of the strategy." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Refer to the explanations on the entry target size for some relevant context." + }, + { + "style": "Text", + "text": "Refresh this concepts by reading about the initial target definitions at the trading system." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Entry Target Size Configuration", + "updated": 1609926552641 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/episode-base-asset.json b/Projects/Superalgos/Schemas/Docs-Nodes/episode-base-asset.json new file mode 100644 index 000000000..26a00b95d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/episode-base-asset.json @@ -0,0 +1,16 @@ +{ + "type": "Episode Base Asset", + "definition": { + "text": "The episode base asset node keeps track of the evolution of variables and metrics denominated in the base asset, throughout the episode." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Note", + "text": "Learn more about how accounts for the base asset and the quoted asset are kept in the base asset and quoted asset page on the trading engine section of the documentation." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/episode-counters.json b/Projects/Superalgos/Schemas/Docs-Nodes/episode-counters.json new file mode 100644 index 000000000..c4a2bbc2b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/episode-counters.json @@ -0,0 +1,16 @@ +{ + "type": "Episode Counters", + "definition": { + "text": "The episode counters node features counters of instances of objects that come to exist during the duration of the episode." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/episode-quoted-asset.json b/Projects/Superalgos/Schemas/Docs-Nodes/episode-quoted-asset.json new file mode 100644 index 000000000..4b5f435f6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/episode-quoted-asset.json @@ -0,0 +1,16 @@ +{ + "type": "Episode Quoted Asset", + "definition": { + "text": "The episode quoted asset node keeps track of the evolution of variables and metrics denominated in the quoted asset, throughout the episode." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Note", + "text": "Learn more about how accounts for the base asset and the quoted asset are kept in the base asset and quoted asset page on the trading engine section of the documentation." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/episode-statistics.json b/Projects/Superalgos/Schemas/Docs-Nodes/episode-statistics.json new file mode 100644 index 000000000..28fc180a4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/episode-statistics.json @@ -0,0 +1,16 @@ +{ + "type": "Episode Statistics", + "definition": { + "text": "Episode statistics keeps track of several metrics in the context of the episode." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/episode.json b/Projects/Superalgos/Schemas/Docs-Nodes/episode.json new file mode 100644 index 000000000..1bb01d5ac --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/episode.json @@ -0,0 +1,40 @@ +{ + "type": "Episode", + "definition": { + "text": "Episode is the object that handles the information corresponding to the whole run of the trading bot—beginning to end—between the specified initial datetime and final datetime, in the time range parameter of the trading session." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In other words, episode is the context framed between the datetimes that make up the whole trading session, as per the session's configuration. As such, an episode keeps track of—and accumulates—the results of all positions entered throughout a complete run of a trading session." + }, + { + "style": "Text", + "text": "In this section of the hierarchy, you have access to:" + }, + { + "style": "List", + "text": " running balances and overall performance metrics denominated in both the base and quoted assets;" + }, + { + "style": "List", + "text": "counters, such as the number of positions taken, orders placed, hits, fails, and so on;" + }, + { + "style": "List", + "text": "statistics, such as performance metrics consolidating both assets, number of days in the episode, or user-defined statistics;" + }, + { + "style": "List", + "text": "the distance to certain events, such as the number of candles to the last take position event, or the last create order event;" + }, + { + "style": "List", + "text": "rates describing each candle in the episode, such as the open, close, min and max rates;" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/exchange-account-asset.json b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-account-asset.json new file mode 100644 index 000000000..ab138c46b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-account-asset.json @@ -0,0 +1,16 @@ +{ + "type": "Exchange Account Asset", + "definition": { + "text": "The exchange account asset represents a single asset the user has at the exchange." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The exchange account asset is a reference to an asset defined under the exchange assets node." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/exchange-account-key.json b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-account-key.json new file mode 100644 index 000000000..13dd5a994 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-account-key.json @@ -0,0 +1,44 @@ +{ + "type": "Exchange Account Key", + "definition": { + "text": "The exchange account key holds the definition of the key name and secret provided by the corresponding exchange to access the user account via the exchange API." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Configuring Exchange Account Key" + }, + { + "style": "Text", + "text": "Select Configure Key on the menu to access the configuration." + }, + { + "style": "Text", + "text": "{" + }, + { + "style": "Text", + "text": "\"codeName\": \"Paste your exchange API name or label here\"," + }, + { + "style": "Text", + "text": "\"secret\": \"Paste your exchange API secret key here.\"" + }, + { + "style": "Text", + "text": "}" + }, + { + "style": "List", + "text": "codeName is the name or label of your key, as supplied by the exchange." + }, + { + "style": "Warning", + "text": "To keep your exchange keys safe, never share data structures you may download from the system, as downloads contain all information in the data structure, including personal information such as exchange keys. Use the share option on the menu instead. The share option strips sensitive information and outputs a file that is safe for sharing." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/exchange-accounts.json b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-accounts.json new file mode 100644 index 000000000..36fbc9851 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-accounts.json @@ -0,0 +1,17 @@ +{ + "type": "Exchange Accounts", + "definition": { + "text": "The exchange accounts node groups the different accounts the user may have with the corresponding exchange." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content", + "updated": 1609777103880 + }, + { + "style": "Text", + "text": "This section of the Crypto Ecosystem hierarchy deals with concepts related to the user." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/exchange-assets.json b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-assets.json new file mode 100644 index 000000000..b362513cd --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-assets.json @@ -0,0 +1,27 @@ +{ + "type": "Exchange Assets", + "definition": { + "text": "The exchange assets node groups the definitions of assets that may be used to define markets under the Exchange Markets node.", + "updated": 1609771958983 + }, + "paragraphs": [ + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Exchange Assets Configuration", + "updated": 1609771814727 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609771820241 + }, + { + "style": "List", + "text": " addMissingAssets acts as a filter to determine which assets of a (potentially long) list of assets listed at the exchange will be added when the Add Missing Assets* option in the menu is used. Because many exchanges do not offer a list of assets, the system fetches assets from actual markets (pairs) listed at the exchange. You may add missing assets filtered by the quotedAsset or by the baseAsset. For example, the above configuration would add all assets listed in markets in which BTC is the quoted asset." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/exchange-data-products.json b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-data-products.json new file mode 100644 index 000000000..ff74998e6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-data-products.json @@ -0,0 +1,20 @@ +{ + "type": "Exchange Data Products", + "definition": { + "text": "The exchange data products node organizes data mines data by exchange. That is, each exchange installed in the system has an exchange data products node grouping all market data products nodes corresponding to the said exchange." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The exchange data products node must reference the exchange of choice. This reference constraints the rest of the definitions to the context of the said exchange." + }, + { + "style": "Text", + "text": "When representing an exchange featured in the system's icons library, the standard exchange data tasks icon is replaced by the exchange's logo." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/exchange-data-tasks.json b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-data-tasks.json new file mode 100644 index 000000000..29380a04a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-data-tasks.json @@ -0,0 +1,24 @@ +{ + "type": "Exchange Data Tasks", + "definition": { + "text": "The exchange data tasks node organizes data mining tasks by exchange. That is, each exchange installed in the system has an exchange data tasks node grouping all market data tasks corresponding to the said exchange." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The exchange data tasks node must reference the exchange of choice. This reference constraints the rest of the definitions to the context of the said exchange." + }, + { + "style": "Text", + "text": "When representing an exchange featured in the system's icons library, the standard exchange data tasks icon is replaced by the exchange's logo." + }, + { + "style": "Block", + "text": "Running" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/exchange-id.json b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-id.json new file mode 100644 index 000000000..0b59e6fee --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-id.json @@ -0,0 +1,37 @@ +{ + "type": "Exchange Id", + "definition": { + "text": "Exchange ID is a unique identifier the exchange assigns to the order, so that it may be unequivocally identified." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "By default, it is the rate at the close of the last candle at the moment the order is placed. All market orders have the default rate value." + }, + { + "style": "Text", + "text": "In the case of limit orders, it is the rate as specified by the formula under the order rate node. If no such definition exists, then limit orders use the default value as well." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Exchange Id Configuration", + "updated": 1609927118754 + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/exchange-learning-products.json b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-learning-products.json new file mode 100644 index 000000000..739e24dbd --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-learning-products.json @@ -0,0 +1,3 @@ +{ + "type": "Exchange Learning Products" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/exchange-learning-tasks.json b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-learning-tasks.json new file mode 100644 index 000000000..43a39357f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-learning-tasks.json @@ -0,0 +1,3 @@ +{ + "type": "Exchange Learning Tasks" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/exchange-markets.json b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-markets.json new file mode 100644 index 000000000..d093ec3b3 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-markets.json @@ -0,0 +1,13 @@ +{ + "type": "Exchange Markets", + "definition": { + "text": "The exchange markets node groups the definitions of markets." + }, + "paragraphs": [ + { + "style": "Text", + "text": "There is no limit as of how many markets may be defined.", + "updated": 1609772386734 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/exchange-orders.json b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-orders.json new file mode 100644 index 000000000..2ab0089a3 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-orders.json @@ -0,0 +1,24 @@ +{ + "type": "Exchange Orders", + "definition": { + "text": "Exchange orders is the section of the data structure that keeps track of orders of all types." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The function of this section of the trading engine is to provide the data structure to hold the information of orders as they are open and closed." + }, + { + "style": "Text", + "text": "Orders are organized by type, such as market orders and limit orders, and also by the type of transaction, such as buy or sell orders." + }, + { + "style": "Text", + "text": "Each section of the hierarchy must have the definition of as many orders of each type as the trading system is capable of placing concurrently. For example, if the execution algorithm may place up to three limit buy orders to open a position, then three limit orders must exist under the limit buy orders section of the hierarchy. Each order defined in the trading system must reference the data structure of a matching type of order in the trading engine." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/exchange-trading-products.json b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-trading-products.json new file mode 100644 index 000000000..cf2cad6a8 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-trading-products.json @@ -0,0 +1,20 @@ +{ + "type": "Exchange Trading Products", + "definition": { + "text": "The exchange trading products node organizes trading mines data by exchange. That is, each exchange installed in the system has an exchange trading products node grouping all session references corresponding to the said exchange." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The exchange trading products node must reference the exchange of choice. This reference constraints the rest of the definitions to the context of the said exchange." + }, + { + "style": "Text", + "text": "When representing an exchange featured in the system's icons library, the standard exchange trading products icon is replaced by the exchange's logo." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/exchange-trading-tasks.json b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-trading-tasks.json new file mode 100644 index 000000000..a194913df --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/exchange-trading-tasks.json @@ -0,0 +1,24 @@ +{ + "type": "Exchange Trading Tasks", + "definition": { + "text": "The exchange trading tasks node organizes trading tasks by exchange. That is, each exchange installed in the system has an exchange trading tasks node grouping all market trading tasks corresponding to the said exchange." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The exchange trading tasks node must reference the exchange of choice. This reference constraints the rest of the definitions to the context of the said exchange." + }, + { + "style": "Text", + "text": "When representing an exchange featured in the system's icons library, the standard exchange trading tasks icon is replaced by the exchange's logo." + }, + { + "style": "Block", + "text": "Running" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/execution-algorithm.json b/Projects/Superalgos/Schemas/Docs-Nodes/execution-algorithm.json new file mode 100644 index 000000000..358b77c15 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/execution-algorithm.json @@ -0,0 +1,56 @@ +{ + "type": "Execution Algorithm", + "definition": { + "text": "An execution algorithm is a set of instructions used to place and manage orders at the exchange." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Any given strategy may have simple or very complex execution requirements. To deal with complexity, Superalgos allows users to set up as many execution algorithms as required." + }, + { + "style": "Text", + "text": "Then, the logic in each algorithm may remain simple, while the combined work of multiple algorithms may deal with the required complexity." + }, + { + "style": "Text", + "text": "Each algorithm may be assigned a fraction of the target size (see the configuration section), thus, the extent of each algorithm's involvement in the execution is defined by this parameter." + }, + { + "style": "Text", + "text": "An execution algorithm is a set of instructions in the sense that the orders defined in each algorithm are themselves the instructions. That is, an execution algorithm is a set of predefined orders which may be created or canceled given specific market situations." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Configuring Execution Algorithm" + }, + { + "style": "Text", + "text": "To configure the execution algorithm node, select Configure on the menu." + }, + { + "style": "Text", + "text": "{" + }, + { + "style": "Text", + "text": " \"percentageOfStageTargetSize\": 100" + }, + { + "style": "Text", + "text": "}" + }, + { + "style": "List", + "text": "percentageOfStageTargetSize is the definition of how much of the target size of the whole stage will be handled by the one specific execution algorithm, expressed as a percentage of the total target size. Posible values are real numbers between 0 and 100, including the extremes. If you set the value to 0, the algorithm will not be executed." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/execution-finished-event.json b/Projects/Superalgos/Schemas/Docs-Nodes/execution-finished-event.json new file mode 100644 index 000000000..2cc8e4fc6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/execution-finished-event.json @@ -0,0 +1,16 @@ +{ + "type": "Execution Finished Event", + "definition": { + "text": "The execution finished event is the event that processes trigger once they have finished an execution cycle. The event is broadcasted to whoever wants to listen, so that other bots may know when the process has finished its execution cycle." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The execution finished event is responsible for triggering the execution of every process that depends on the data a bot produces. If bot Alice depends on bot Bob, Alice listens to the execution finished event of Bob so that it may start a new execution cycle as soon as Bob finishes its cycle. Alice listens to Bob's execution finished event by establishing a reference from its execution started event." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/execution-started-event.json b/Projects/Superalgos/Schemas/Docs-Nodes/execution-started-event.json new file mode 100644 index 000000000..0a02b92ec --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/execution-started-event.json @@ -0,0 +1,28 @@ +{ + "type": "Execution Started Event", + "definition": { + "text": "The execution started event is the event that triggers the execution of a process. It usually references the execution finished event of another process on which the process depends on." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "These references determine when a process is due for another run. By listening to the execution finished event of the process it depends on, it may wake up just in time to process the new batch of data the dependency has just delivered." + }, + { + "style": "Text", + "text": "Bots form a sort of multi-branched execution sequence with an indeterminate number of dependencies. Every time the bot further down the tree of dependencies finishes a cycle, it triggers the execution of multiple bots listening to its execution finished event." + }, + { + "style": "Text", + "text": "In the context of a trading process instance running a trading session on the network hierarchy, the execution started event may be used to force the trading process to run only after the last indicator bot dependency finishes its job. This guarantees that all dependencies are up to date and that the trading bot will evaluate the information corresponding to the same candles for all indicators used by the trading system." + }, + { + "style": "Text", + "text": "Not setting up this event on a trading session may result in eventual data inconsistencies, as—in theory—the trading bot may run with some indicators up to date and some slightly delayed." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/exit-target-rate.json b/Projects/Superalgos/Schemas/Docs-Nodes/exit-target-rate.json new file mode 100644 index 000000000..fefb4d8f2 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/exit-target-rate.json @@ -0,0 +1,36 @@ +{ + "type": "Exit Target Rate", + "definition": { + "text": "Exit target rate is the target rate set on the initial targets definition, in the close stage of the strategy." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Refresh this concepts by reading about the initial target definitions at the trading system." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Exit Target Rate Configuration", + "updated": 1609926444715 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/exit-target-size.json b/Projects/Superalgos/Schemas/Docs-Nodes/exit-target-size.json new file mode 100644 index 000000000..1846dcfcf --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/exit-target-size.json @@ -0,0 +1,40 @@ +{ + "type": "Exit Target Size", + "definition": { + "text": "Exit target size is the target size set on the initial targets definition, in the close stage of the strategy." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Both entry and exit target sizes may be defined either denominated in the base asset or the quoted asset. Nevertheless, the sytem keeps track of target sizes in both assets. If the target is defined denominated in the base asset, then the target for the quoted asset is calculated using the current rate, and viceversa." + }, + { + "style": "Text", + "text": "Refresh this concepts by reading about the initial target definitions at the trading system." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Entry Target Rate Configuration", + "updated": 1609926567204 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/exit-type.json b/Projects/Superalgos/Schemas/Docs-Nodes/exit-type.json new file mode 100644 index 000000000..40c1fc60d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/exit-type.json @@ -0,0 +1,60 @@ +{ + "type": "Exit Type", + "definition": { + "text": "Exit type refers to the reason why the object is closed." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "No Exit is the default value until a new value is assigned before the object is closed. Other possible values vary with the context." + }, + { + "style": "Text", + "text": "In the context of the episode object:" + }, + { + "style": "List", + "text": "Last Candle Reached: the object was closed because the last candle was reached." + }, + { + "style": "List", + "text": "Position Closed: the position was closed." + }, + { + "style": "List", + "text": "Take Profit: the take profit target was hit." + }, + { + "style": "List", + "text": "Stop Loss: the stop loss target was hit." + }, + { + "style": "List", + "text": "Closing Stage: the current stage started closing because the Close Stage is opening." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Exit Type Configuration", + "updated": 1609880198732 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/fails.json b/Projects/Superalgos/Schemas/Docs-Nodes/fails.json new file mode 100644 index 000000000..d69800fc1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/fails.json @@ -0,0 +1,36 @@ +{ + "type": "Fails", + "definition": { + "text": "Fails counts the number of positions that closed with a negative profit loss, in the context of the parent node." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Note", + "text": "The workings of the fail counts are analogous to the workings of the hits counts, reversing the sign. That is, when profit loss is negative, it is counted as a fail. Please refer to the definition of hits for the details." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Fails Configuration", + "updated": 1609880467917 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/fee-structure.json b/Projects/Superalgos/Schemas/Docs-Nodes/fee-structure.json new file mode 100644 index 000000000..ba2ef8354 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/fee-structure.json @@ -0,0 +1,54 @@ +{ + "type": "Fee Structure", + "definition": { + "text": "The fee structure is a parameter fundamental to the calculation of fees, both in testing and live trading sessions." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "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." + }, + { + "style": "Text", + "text": "Exchanges don't usually report the amount charged in fees on each transaction, thus, the system calculates fees and subtract them from balances. Learn more about the handling of fees." + }, + { + "style": "Important", + "text": "The accuracy of the internal account-keeping depends on this parameter. Make sure you obtain the correct fee structure from the exchange corresponding to the tier of your account." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1610120917432 + }, + { + "style": "Title", + "text": "Fee Structure Configuration" + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609676653644 + }, + { + "style": "List", + "text": "maker is the setting for the fee the exchange charges when an order adds liquidity to the market, such as with limit orders." + }, + { + "style": "List", + "text": "taker is the setting for the fee the exchange charges when an order takes liquidity from the market, such as with market or instant orders." + }, + { + "style": "Note", + "text": "If the fee structure parameter is left empty or detached both from your session and your trading system, fees are not computed during simulations." + }, + { + "style": "Important", + "text": "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." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/fees-paid.json b/Projects/Superalgos/Schemas/Docs-Nodes/fees-paid.json new file mode 100644 index 000000000..3683d40d4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/fees-paid.json @@ -0,0 +1,44 @@ +{ + "type": "Fees Paid", + "definition": { + "text": "Fees paid is the amount paid in fees." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The exchange does not explicitly indicate how much has been paid in fees for a given transaction. Instead, when Superalgos verifies if an order has been filled or not, the exchange reports the size filled and the actual rate only." + }, + { + "style": "Success", + "text": "Exchange fees are estimated using the fee structure parameter set for the trading session. It is, therefore, important to set the correct values for that parameter." + }, + { + "style": "Text", + "text": "Exchanges deduct fees from the asset you are receiving. For instance, if you are selling BTC in the BTC-USDT market, then you are receiving USDT, and the exchange will deduct the fees directly from the amount of USDT you are receiving." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Fees Paid Configuration", + "updated": 1609926807448 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/fees-to-be-paid.json b/Projects/Superalgos/Schemas/Docs-Nodes/fees-to-be-paid.json new file mode 100644 index 000000000..19601b5f5 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/fees-to-be-paid.json @@ -0,0 +1,38 @@ +{ + "type": "Fees To Be Paid", + "definition": { + "text": "Fees To Be Paid is the amount of fees that would be paid in the case the order filled entirely.", + "updated": 1609927953008 + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "It's a value handled at some point internally, but with minor significance to the user.", + "updated": 1609927981434 + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Fees To Be Paid Configuration", + "updated": 1609927726292 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/final-value.json b/Projects/Superalgos/Schemas/Docs-Nodes/final-value.json new file mode 100644 index 000000000..614024e44 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/final-value.json @@ -0,0 +1,36 @@ +{ + "type": "Final Value", + "definition": { + "text": "Left click and Edit to enter edit mode and change this text." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Serial Number Configuration", + "updated": 1609873971454 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/formula.json b/Projects/Superalgos/Schemas/Docs-Nodes/formula.json new file mode 100644 index 000000000..5dec09929 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/formula.json @@ -0,0 +1,88 @@ +{ + "type": "Formula", + "definition": { + "text": "A formula is a mathematical expression intended to determine a numerical value to be applied dynamically to a certain property." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In the context of a Trading System, formulas are used to determine the values for several properties, such as the Target Rate, Target Size, Managed Stop Loss, Managed Take Profit, and so on.", + "updated": 1610211948110 + }, + { + "style": "Text", + "text": "Formulas may use indicators and Trading Engine properties. The main difference between writing a Formula and writing a Condition is that while conditions must evaluate to true or false, formulas must evaluate to a number.", + "updated": 1610211971367 + }, + { + "style": "Block", + "text": "Examples" + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Subtitle", + "text": "A simple math example", + "updated": 1609346397254 + }, + { + "style": "Text", + "text": "This simple formula may be used to define an initial take profit target 3% above the rate at which the position was taken." + }, + { + "style": "Json", + "text": "tradingEngine.current.position.entryTargetRate.value * 1.03" + }, + { + "style": "Note", + "text": "You may use any variable made available by the trading engine, as explained on the accessing runtime data page." + }, + { + "style": "Subtitle", + "text": "A simple JavaScript example", + "updated": 1609346401859 + }, + { + "style": "Text", + "text": "A bit of very basic JavaScript, introducing conditional statements, allows more intelligence. For example, in this case, we ask if the proposed formula results in a number greater than the current stop loss value; if it does, then the proposed formula is used; if not, then the current stop loss value is left as is." + }, + { + "style": "Text", + "text": "This is—basically—a trailing stop loss 2% below the Bollinger Bands moving average that may go higher if the moving average goes up, but it may never come down—thanks to the use of the IF ELSE clause.", + "updated": 1609346444051 + }, + { + "style": "Javascript", + "text": "if (chart.at01hs.bollingerBand.movingAverage * 0.98 > \ntradingEngine.current.position.stopLoss.value)\n{chart.at01hs.bollingerBand.movingAverage * 0.98}\nelse\n{tradingEngine.current.position.stopLoss.value}\n", + "updated": 1609346601773 + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Subtitle", + "text": "For developers", + "updated": 1609346635457 + }, + { + "style": "Text", + "text": "To build more complex logic within a formula, create a function that implements the logic and returns a numerical value, and then call the function:" + }, + { + "style": "Javascript", + "text": "function orderRate() {\nconst ORDER_STEP_NUMBER = 1 // Secuential step number, starting with 1 from the closest to the price.\nconst BUY_SELL_SIGN = -1 // 1 for buy orders, -1 for sell orders.\nconst STEP_SEPARATION = 0.15 // % of separation of stair steps between them.\nconst BASE_FACTOR = 0.2 // % above or below bollinger band without bias.\nconst BIAS_FACTOR = 0.3 // % to move the whole stair of orders up or down depending on the bias.\nconst BAND_RATE = chart.at01min.bollingerBand.lowerBand // Upper Bollinger Band for sell orders, and Lower for buy orders.\nlet inbalance = tradingEngine.current.episode.episodeBaseAsset.beginBalance.value - tradingEngine.current.episode.episodeBaseAsset.balance.value\nlet BIAS_SIGN\nif (inbalance === 0) {\nBIAS_SIGN = 0\n}\nif (inbalance < 0) {\nBIAS_SIGN = + 1\n}\nif (inbalance > 0) {\nBIAS_SIGN = - 1\n}\nlet rate = BAND_RATE + BUY_SELL_SIGN BAND_RATE (BASE_FACTOR + ORDER_STEP_NUMBER STEP_SEPARATION + BIAS_SIGN BIAS_FACTOR) / 100\nreturn rate\n}\norderRate()", + "updated": 1609346807464 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/forward-testing-session.json b/Projects/Superalgos/Schemas/Docs-Nodes/forward-testing-session.json new file mode 100644 index 000000000..13c7f7f64 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/forward-testing-session.json @@ -0,0 +1,85 @@ +{ + "type": "Forward Testing Session", + "definition": { + "text": "A forward testing session is a trading mode by which the trading bot instance performs live trading with a user-defined fraction of the available capital." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "A forward testing session node must reference a trading system to gain access to the trading logic to be applied during the session. Other considerations framing the session come from the set of parameters attached to it." + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Important for Live Sessions", + "updated": 1610106317263 + }, + { + "style": "Block", + "text": "Running" + }, + { + "style": "Title", + "text": "Running Forward Testing Session" + }, + { + "style": "Text", + "text": "Before you start a forward testing session, the corresponding task needs to be running, as it is the task that puts the trading bot instance to run. Once the trading bot instance is running, select Run on the menu to start the session." + }, + { + "style": "Text", + "text": "To stop a backtesting session, select Stop on the menu." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609674120399 + }, + { + "style": "Title", + "text": "Forward Testing Session Configuration", + "updated": 1609674133114 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609674160126 + }, + { + "style": "List", + "text": "folderName allows you to set a significant name to the folder in which the data products—and logs—generated by the session are stored. If left blank, the system names the folders with the session id. This may be handy when you intend to consult the raw data generated by the session, as, otherwise, the folder would be hard to identify.", + "updated": 1609674163788 + }, + { + "style": "List", + "text": "balancePercentage is a number defining the percentage of the initialBalance (as specified in the Session Base Asset and/or Session Quoted Asset configuration) that will be used for trading. For instance, balancePercentage set to 1 means that 1% of your balance will be made available. Just like the initialBalance is scaled down, the minimumBalance and maximumBalance are also scaled down accordingly (see base asset).", + "updated": 1609674550102 + }, + { + "style": "Text", + "text": "Let's put this in numbers, for clarity. Let's say your Session Quoted Asset is USDT and your initialBalance is USDT 10,000.", + "updated": 1609674600781 + }, + { + "style": "Text", + "text": "If you set up your forward-testing session with balancePercentage set to 1, then:", + "updated": 1609674267939 + }, + { + "style": "Javascript", + "text": "USDT 10,000 * 1% = USDT 100", + "updated": 1609674387594 + }, + { + "style": "Text", + "text": "This is the balance that will be available to your forward-testing session." + }, + { + "style": "Important", + "text": "You need to take this into account at the time of defining your positionSize formula. If the formula is a constant, you may easily run out of balance, as only a fraction of the balance will be available for the strategy to use. It may be a good idea to set up your positionSize as a function of your available balance instead." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/head-of-the-market.json b/Projects/Superalgos/Schemas/Docs-Nodes/head-of-the-market.json new file mode 100644 index 000000000..aab2bf12b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/head-of-the-market.json @@ -0,0 +1,35 @@ +{ + "type": "Head Of The Market", + "definition": { + "text": "Left click and Edit to enter edit mode and change this text." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Head Of The Market Configuration" + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/heartbeats.json b/Projects/Superalgos/Schemas/Docs-Nodes/heartbeats.json new file mode 100644 index 000000000..5a50f5f44 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/heartbeats.json @@ -0,0 +1,38 @@ +{ + "type": "Heartbeats", + "definition": { + "text": "During a trading session, the backend communicates with the frontend via heartbeats to inform the frontend about the status of the session. The parameter controls what information is made available to the user through the frontend." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "This parameter affects how you see the progress of the trading session below the trading bot instance node on the design space." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Heartbeats Configuration", + "updated": 1609676752786 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609676758182 + }, + { + "style": "List", + "text": "date determines whether the date is shown in the progress notice below the trading process instance node; possible values are true or false." + }, + { + "style": "List", + "text": "candleIndex determines whether the index of the candle is shown in the progress notice below the trading process instance node; possible values are true or false." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/hit-fail.json b/Projects/Superalgos/Schemas/Docs-Nodes/hit-fail.json new file mode 100644 index 000000000..25799be6a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/hit-fail.json @@ -0,0 +1,40 @@ +{ + "type": "Hit Fail", + "definition": { + "text": "Hit fail states whether a transaction is successful or not, hit meaning it is successful and fail meaning it is not." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Superalgos marks positions and even entire episodes as hits or fails, by evaluating profit loss for the corresponding context. If profit loss is positive, then the position or episode is a hit. If profit loss is negative, it is a fail." + }, + { + "style": "Note", + "text": "Please refer to the definition of hits for the details." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Hit Fail Configuration", + "updated": 1609880962570 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/hit-ratio.json b/Projects/Superalgos/Schemas/Docs-Nodes/hit-ratio.json new file mode 100644 index 000000000..12839d4e6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/hit-ratio.json @@ -0,0 +1,36 @@ +{ + "type": "Hit Ratio", + "definition": { + "text": "Hit ratio is the percentage of positions that closed with a positive profit loss, in the context of the parent node." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Hit ratio results from multiplying the number of hits by 100 and dividing it by the number of positions: hit ratio = hits * 100 / positions." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Hit Ratio Configuration", + "updated": 1609880479389 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/hits.json b/Projects/Superalgos/Schemas/Docs-Nodes/hits.json new file mode 100644 index 000000000..9b50edeec --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/hits.json @@ -0,0 +1,44 @@ +{ + "type": "Hits", + "definition": { + "text": "Hits counts the number of positions that closed with a positive profit loss, in the context of the parent node." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In the context of the quoted asset or the base asset, hits are calculated relative to the asset in question. That is, if the base asset profit loss is positive, then a hit is counted for the base asset." + }, + { + "style": "Text", + "text": "However, when the context of the asset is not specified—such as under the statistics node—then hits are calculated in a consolidated manner, converting the respective balances to perform the calculations." + }, + { + "style": "Note", + "text": "The consolidated calculations are explained thoroughly in the profit loss node." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Hits Configuration", + "updated": 1609880458158 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/identifier.json b/Projects/Superalgos/Schemas/Docs-Nodes/identifier.json new file mode 100644 index 000000000..b8e72d6b0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/identifier.json @@ -0,0 +1,36 @@ +{ + "type": "Identifier", + "definition": { + "text": "Identifier is a unique alphanumeric string by which the object represented by the parent node may be unequivocally identified." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The property is what would be used to access a specific known record." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Identifier Configuration", + "updated": 1609880046865 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/image-condition.json b/Projects/Superalgos/Schemas/Docs-Nodes/image-condition.json new file mode 100644 index 000000000..c0d1036f0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/image-condition.json @@ -0,0 +1,16 @@ +{ + "type": "Image Condition", + "definition": { + "text": "An image condition is a rule that allows establishing when an image shall be rendered and when not." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The node is optional. When the node is not present in the definition of the image or when the condition validates true, the image is rendered on screen. When the condition validates false the image is not rendered. As such, the node allows dynamically switching the rendering of the corresponding image on and off ." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/image-position.json b/Projects/Superalgos/Schemas/Docs-Nodes/image-position.json new file mode 100644 index 000000000..2084d68ab --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/image-position.json @@ -0,0 +1,56 @@ +{ + "type": "Image Position", + "definition": { + "text": "The image position node is a reference to a point defined in the chart points, and serves to determine the position in which the image shall be placed." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The image position node works similarly to the polygon vertex in the sense that it must establish a reference with a point in the charts point to acquire a defined coordinate that determines where the image shall be placed." + }, + { + "style": "Note", + "text": "See the configuration for further details." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Configuring Image Position" + }, + { + "style": "Text", + "text": "Select Configure on the menu to access the configuration." + }, + { + "style": "Text", + "text": "{" + }, + { + "style": "Text", + "text": " \"offsetX\": 0," + }, + { + "style": "Text", + "text": " \"offsetY\": 10" + }, + { + "style": "Text", + "text": "}" + }, + { + "style": "List", + "text": "offsetX is an offset in the X axis, in pixels, applied to displace the image in relation to the coordinate point defined by the reference of the node. Negative values displace the image to the left and positive values to the right." + }, + { + "style": "List", + "text": "offsetY is an offset in the Y axis. Negative values displace the image downwards and positive values displace the image upwards." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/image.json b/Projects/Superalgos/Schemas/Docs-Nodes/image.json new file mode 100644 index 000000000..0044b7392 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/image.json @@ -0,0 +1,64 @@ +{ + "type": "Image", + "definition": { + "text": "The image node allows overlaying an image over the charts, controlling its position, size, and when it shall be rendered." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The foremost requirement for images is that they are in the png format, 24 bits, with transparency, a low case extension, and are square." + }, + { + "style": "Text", + "text": "If you envision contributing your indicator so that the community may use it, then please follow the guidelines in the contribute icons page, in particular, the Technical Requirements." + }, + { + "style": "Text", + "text": "Images must the stored in the following path: \\BackendServers\\WebServer\\Images\\Icons\\style-01" + }, + { + "style": "Note", + "text": "See the configuration for further details." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Configuring Image" + }, + { + "style": "Text", + "text": "Select Configure on the menu to access the configuration." + }, + { + "style": "Text", + "text": "{" + }, + { + "style": "Text", + "text": " \"codeName\": \"imagename\"," + }, + { + "style": "Text", + "text": " \"size\": 15" + }, + { + "style": "Text", + "text": "}" + }, + { + "style": "List", + "text": "codeName is the name of the image, without the .png extension." + }, + { + "style": "List", + "text": "size is the size at which the image shall be rendered, in pixels." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/index.json b/Projects/Superalgos/Schemas/Docs-Nodes/index.json new file mode 100644 index 000000000..ab97f2789 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/index.json @@ -0,0 +1,40 @@ +{ + "type": "Index", + "definition": { + "text": "Index is the position of the parent object in the corresponding data collection, as determined by the context." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In the context of a candle, index is the position of the current candle in the array of candles within the larger context, for example, an episode." + }, + { + "style": "Text", + "text": "Trading systems may feature more than one strategy. In the context of a strategy, index is the position of the strategy within the trading system." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Index Configuration", + "updated": 1609925929056 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/indicator-bot-instance.json b/Projects/Superalgos/Schemas/Docs-Nodes/indicator-bot-instance.json new file mode 100644 index 000000000..6592e2506 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/indicator-bot-instance.json @@ -0,0 +1,30 @@ +{ + "type": "Indicator Bot Instance", + "definition": { + "text": "An indicator bot instance is a reference to an Indicator Bot as defined in a data mine. The instance of the bot runs the defined processes and generates the defined data products.", + "updated": 1609617888057 + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Text", + "text": "The indicator bot instance holds no definitions as to what the bot does. Instead, its processes instances reference the process definitions in the corresponding Data Mine. That is how the indicator bot instance obtains the information of what it needs to do once it is run.", + "updated": 1609617815818 + }, + { + "style": "Block", + "text": "Running" + }, + { + "style": "Note", + "text": "You do not start or stop an indicator bot instance directly. Instead, you start or stop the corresponding task." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/indicator-bot.json b/Projects/Superalgos/Schemas/Docs-Nodes/indicator-bot.json new file mode 100644 index 000000000..e3261b328 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/indicator-bot.json @@ -0,0 +1,38 @@ +{ + "type": "Indicator Bot", + "definition": { + "text": "An indicator bot is an algorithm that processes information that other bots have generated, and produces elaborate datasets for others to consume." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The indicator bot node holds all definitions required for an indicator bot to function. Definitions are split between the definition of processes and products. Processes are algorithms that go through an input dataset, perform certain calculations, and produce an output. Products are the outcome of the work produced by these algorithms, in the form of ellaborate data sets." + }, + { + "style": "Text", + "text": "Most of the behavior expected from an indicator bot is defined by the structure of nodes in the hierarchy and the references among the nodes within these definitions. As such, you do not need to code any of the functions that make up the infrastructure functionality. Dependencies, outputs, data structures, execution sequences, and several other problems are handled by the definitions embodied in the structure of nodes that make up an indicator, and are configured in the visual environment of the design space. Coding is limited to the actual calculation and data building procedures." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Indicator Bot Configuration", + "updated": 1609789150912 + }, + { + "style": "Text", + "text": "Properties", + "updated": 1609789156452 + }, + { + "style": "List", + "text": "codeName is the name of the bot as used within the code of the system." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/indicator-function.json b/Projects/Superalgos/Schemas/Docs-Nodes/indicator-function.json new file mode 100644 index 000000000..409f88762 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/indicator-function.json @@ -0,0 +1,7 @@ +{ + "type": "Indicator Function", + "definition": { + "text": "" + }, + "paragraphs": [] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/indicator-process-instance.json b/Projects/Superalgos/Schemas/Docs-Nodes/indicator-process-instance.json new file mode 100644 index 000000000..8f2df39d8 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/indicator-process-instance.json @@ -0,0 +1,32 @@ +{ + "type": "Indicator Process Instance", + "definition": { + "text": "An indicator process instance is a reference to the process definition of an indicator bot, as defined in a data mine." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Indicator bot instances usually require two indicator process instances. One of them references the indicator's multi-period-market process definition and the second references the multi-period-daily process definition." + }, + { + "style": "Text", + "text": "Once the reference is established, the indicator process instance adopts the name of the process definition it references." + }, + { + "style": "Block", + "text": "Running" + }, + { + "style": "Title", + "text": "Running Indicator Process Instance" + }, + { + "style": "Text", + "text": "You do not start or stop an indicator process instance directly. Instead, you start or stop the corresponding task." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/initial-targets.json b/Projects/Superalgos/Schemas/Docs-Nodes/initial-targets.json new file mode 100644 index 000000000..f7967667a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/initial-targets.json @@ -0,0 +1,13 @@ +{ + "type": "Initial Targets", + "definition": { + "text": "The initial targets node holds the most basic definitions about the position to be taken: the target rate and the target size." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Both definitions are required.", + "updated": 1609595544643 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/initial-value.json b/Projects/Superalgos/Schemas/Docs-Nodes/initial-value.json new file mode 100644 index 000000000..4e05b2eaf --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/initial-value.json @@ -0,0 +1,29 @@ +{ + "type": "Initial Value", + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Serial Number Configuration", + "updated": 1609873971454 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/javascript-code.json b/Projects/Superalgos/Schemas/Docs-Nodes/javascript-code.json new file mode 100644 index 000000000..7fc0bd214 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/javascript-code.json @@ -0,0 +1,20 @@ +{ + "type": "Javascript Code", + "definition": { + "text": "The JavaScript code node may hold any snippet of valid JavaScript." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The system allows developers great flexibility as all valid JavaScript code is allowed." + }, + { + "style": "Important", + "text": "Until a robust JavaScript editor is implemented on the UI, it is recommended to write code on an external editor and paste it in the UI code bubble to ensure consistency." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/key-reference.json b/Projects/Superalgos/Schemas/Docs-Nodes/key-reference.json new file mode 100644 index 000000000..7fc98a72f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/key-reference.json @@ -0,0 +1,32 @@ +{ + "type": "Key Reference", + "definition": { + "text": "The key reference is a reference to an exchange account key as defined in a specific user account, in a specific exchange, on the Crypto Ecosystem hierarchy." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Usually, exchanges require autentication via your exchange account key for monetary transactions only. However, some exchanges may require autentication in other contexts as well, for instance, to retrieve information above a certain quota, or to retrieve raw trades data instead of OHLCV data." + }, + { + "style": "Text", + "text": "For those reasons, exchange key references are available both in the context of data mining and trading operations, and are always attached to the corresponding task." + }, + { + "style": "Text", + "text": "Forward testing and live trading sessions always require setting up key references, as that is the kind of scenario in which the user must validate with the exchange." + }, + { + "style": "Text", + "text": "In all cases, the key reference node must reference a valid exchange account key from an account with the exchange, as defined in the Crypto Ecosystem hierarchy." + }, + { + "style": "Important", + "text": "Most exchanges do not allow the same exchange account key to be used with multiple processes querying the exchange API. This means that if you are trading with multiple trading systems or multiple sessions on the same exchange, each session requires different exchange account keys." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/last-begin.json b/Projects/Superalgos/Schemas/Docs-Nodes/last-begin.json new file mode 100644 index 000000000..71c0eaca5 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/last-begin.json @@ -0,0 +1,36 @@ +{ + "type": "Last Begin", + "definition": { + "text": "Left click and Edit to enter edit mode and change this text." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Serial Number Configuration", + "updated": 1609873971454 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/last-end.json b/Projects/Superalgos/Schemas/Docs-Nodes/last-end.json new file mode 100644 index 000000000..1426a446e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/last-end.json @@ -0,0 +1,36 @@ +{ + "type": "Last End", + "definition": { + "text": "Left click and Edit to enter edit mode and change this text." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Serial Number Configuration", + "updated": 1609873971454 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/last.json b/Projects/Superalgos/Schemas/Docs-Nodes/last.json new file mode 100644 index 000000000..6a1c9a8fa --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/last.json @@ -0,0 +1,32 @@ +{ + "type": "Last", + "definition": { + "text": "The last object stores instances of position and strategy objects, in particular the instances that were last open at the time of evaluation, hence the adjective last." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Conceptually, last is used as an adjective applied to these concepts, such as the last position or the last strategy, providing the context on which those concepts exist." + }, + { + "style": "Text", + "text": "The last context exists so that you may easily access information about the strategy that was last triggered or the position that was last opened." + }, + { + "style": "Text", + "text": "This is valuable information, both for users and trading systems alike." + }, + { + "style": "List", + "text": "As a user, you will value being able to visually follow what happened with the last position after it closed, or the last strategy after it triggered off, and at the same time see what is going on with the current position or the current strategy." + }, + { + "style": "List", + "text": "From within a trading system, your strategies may make decisions factoring in what happened with the last position or strategy. For example, you may want to affect the size of the next position depending on the result of the last one." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/layer-folder.json b/Projects/Superalgos/Schemas/Docs-Nodes/layer-folder.json new file mode 100644 index 000000000..5ae10291b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/layer-folder.json @@ -0,0 +1,18 @@ +{ + "type": "Layer Folder", + "paragraphs": [ + { + "style": "Text", + "text": " ", + "updated": 1609784713559 + }, + { + "style": "Text", + "text": "The node is created automatically when installing new markets." + } + ], + "definition": { + "text": "The Layer Folder node is a device used to facilitate the organization of layers, particularly when a single bot produces many of them.", + "updated": 1609784707718 + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/layer-manager.json b/Projects/Superalgos/Schemas/Docs-Nodes/layer-manager.json new file mode 100644 index 000000000..ee20738d8 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/layer-manager.json @@ -0,0 +1,46 @@ +{ + "type": "Layer Manager", + "definition": { + "text": "The layer manager determines which layers will be visible on the corresponding timeline chart." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In other words, you use the layers manager node to configure which data products you wish to be made available for visualization purposes on the charts, in particular, on a specific timeline chart to which the layers manager node is attached to." + }, + { + "style": "Note", + "text": "The Layer Manager node usually references a Trading Mine Products or Data Mine Products node in the Data Storage section of the Network Node." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Layer Manager Configuration", + "updated": 1609784094455 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609784101355 + }, + { + "style": "List", + "text": "visibleLayers keeps track of how many layers the managers is rolled to, that is, how many layers it is displaying." + }, + { + "style": "List", + "text": "panelLocation keeps track of the position of the panel relative to the four screen corners." + }, + { + "style": "List", + "text": "labelTwoFontSize allows adjusting the font size of the second-order label of each layer, displaying the name of the exchange and market." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/layer-panel.json b/Projects/Superalgos/Schemas/Docs-Nodes/layer-panel.json new file mode 100644 index 000000000..285a22b04 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/layer-panel.json @@ -0,0 +1,3 @@ +{ + "type": "Layer Panel" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/layer-panels.json b/Projects/Superalgos/Schemas/Docs-Nodes/layer-panels.json new file mode 100644 index 000000000..36994e12c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/layer-panels.json @@ -0,0 +1,12 @@ +{ + "type": "Layer Panels", + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ], + "definition": { + "text": "Right click to edit this text and replace it with a definition / summary for this page. ESC to exit edit mode." + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/layer-polygon.json b/Projects/Superalgos/Schemas/Docs-Nodes/layer-polygon.json new file mode 100644 index 000000000..8bd92e246 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/layer-polygon.json @@ -0,0 +1,3 @@ +{ + "type": "Layer Polygon" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/layer-polygons.json b/Projects/Superalgos/Schemas/Docs-Nodes/layer-polygons.json new file mode 100644 index 000000000..14098f839 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/layer-polygons.json @@ -0,0 +1,3 @@ +{ + "type": "Layer Polygons" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/layer.json b/Projects/Superalgos/Schemas/Docs-Nodes/layer.json new file mode 100644 index 000000000..7c316ca53 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/layer.json @@ -0,0 +1,56 @@ +{ + "type": "Layer", + "definition": { + "text": "A layer represents a reference to a data product in the data storage node of the network hierarchy. Conceptually, it means that a certain data product, which exists in a certain location on the network, holds the data to be rendered on the charts." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "To set up a layer, you need to establish a reference with the data product of your choice." + }, + { + "style": "Block", + "text": "Charts" + }, + { + "style": "Title", + "text": "Layer at the Charts" + }, + { + "style": "Text", + "text": "To turn layers on and off, simply click on the layer in the corresponding products panel." + }, + { + "style": "Text", + "text": "To turn on and off a layer panel, click the panel button on the bottom-left corner of the layer." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609784753729 + }, + { + "style": "Title", + "text": "Layer Configuration", + "updated": 1609784767118 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609784779223 + }, + { + "style": "List", + "text": "status may be on or off* and refers to the layer being visible or not on the charts.", + "updated": 1609784804308 + }, + { + "style": "List", + "text": "showPanels may be true or false; true shows the plotter panel that may be associated with the data product as per the plotter module definitions; false* makes panels invisible." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/learning-algorithm.json b/Projects/Superalgos/Schemas/Docs-Nodes/learning-algorithm.json new file mode 100644 index 000000000..79c843398 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/learning-algorithm.json @@ -0,0 +1,3 @@ +{ + "type": "Learning Algorithm" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/learning-bot-instance.json b/Projects/Superalgos/Schemas/Docs-Nodes/learning-bot-instance.json new file mode 100644 index 000000000..1e7f31e39 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/learning-bot-instance.json @@ -0,0 +1,3 @@ +{ + "type": "Learning Bot Instance" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/learning-bot.json b/Projects/Superalgos/Schemas/Docs-Nodes/learning-bot.json new file mode 100644 index 000000000..19c6f65f1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/learning-bot.json @@ -0,0 +1,3 @@ +{ + "type": "Learning Bot" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/learning-mine-products.json b/Projects/Superalgos/Schemas/Docs-Nodes/learning-mine-products.json new file mode 100644 index 000000000..10a03f268 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/learning-mine-products.json @@ -0,0 +1,3 @@ +{ + "type": "Learning Mine Products" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/learning-mine-tasks.json b/Projects/Superalgos/Schemas/Docs-Nodes/learning-mine-tasks.json new file mode 100644 index 000000000..ecb24d2f1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/learning-mine-tasks.json @@ -0,0 +1,3 @@ +{ + "type": "Learning Mine Tasks" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/learning-mine.json b/Projects/Superalgos/Schemas/Docs-Nodes/learning-mine.json new file mode 100644 index 000000000..2526be52d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/learning-mine.json @@ -0,0 +1,12 @@ +{ + "type": "Learning Mine", + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ], + "definition": { + "text": "Right click to edit this text and replace it with a definition / summary for this page. ESC to exit edit mode." + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/learning-mines-data.json b/Projects/Superalgos/Schemas/Docs-Nodes/learning-mines-data.json new file mode 100644 index 000000000..602b95217 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/learning-mines-data.json @@ -0,0 +1,14 @@ +{ + "type": "Learning Mines Data", + "paragraphs": [ + { + "style": "Important", + "text": "The infrastructure for Machine Learning algorithms is currently being implemented.", + "updated": 1609668116148 + } + ], + "definition": { + "text": "Learning Mines Data is the section of the Data Storage that—once implemented—will hold the Data Products produced by Learning Bots.", + "updated": 1609668090547 + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/learning-parameters.json b/Projects/Superalgos/Schemas/Docs-Nodes/learning-parameters.json new file mode 100644 index 000000000..d98408a46 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/learning-parameters.json @@ -0,0 +1,3 @@ +{ + "type": "Learning Parameters" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/learning-process-instance.json b/Projects/Superalgos/Schemas/Docs-Nodes/learning-process-instance.json new file mode 100644 index 000000000..fe4466ef7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/learning-process-instance.json @@ -0,0 +1,3 @@ +{ + "type": "Learning Process Instance" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/learning-session-reference.json b/Projects/Superalgos/Schemas/Docs-Nodes/learning-session-reference.json new file mode 100644 index 000000000..a37493646 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/learning-session-reference.json @@ -0,0 +1,3 @@ +{ + "type": "Learning Session Reference" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/learning-session.json b/Projects/Superalgos/Schemas/Docs-Nodes/learning-session.json new file mode 100644 index 000000000..a9218b47c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/learning-session.json @@ -0,0 +1,3 @@ +{ + "type": "Learning Session" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/learning-tasks.json b/Projects/Superalgos/Schemas/Docs-Nodes/learning-tasks.json new file mode 100644 index 000000000..98a1b28fd --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/learning-tasks.json @@ -0,0 +1,14 @@ +{ + "type": "Learning Tasks", + "paragraphs": [ + { + "style": "Important", + "text": "The infrastructure for Machine Learning algorithms is currently being implemented.", + "updated": 1609666442120 + } + ], + "definition": { + "text": "Learning tasks—once implemented—will control Learning Bots running a reinforcement learning algorithm.", + "updated": 1609666371163 + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/limit-buy-order.json b/Projects/Superalgos/Schemas/Docs-Nodes/limit-buy-order.json new file mode 100644 index 000000000..3f09e01af --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/limit-buy-order.json @@ -0,0 +1,64 @@ +{ + "type": "Limit Buy Order", + "definition": { + "text": "A limit buy order is an instruction sent to the exchange to buy the base asset, for execution at a specific rate or better." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Traders usually use limit orders when the priority is the rate of execution over the certainty of execution. Limit orders are much more efficient than market orders in terms of rate, particularly for larger sizes which—when executed as market orders—may suffer considerable slippage filled as fast as possible with the order book of the particular instant." + }, + { + "style": "Text", + "text": "Also, many exchanges regard limit orders as market makers, that is, orders that bring liquidity to the market, and, therefore, may charge relatively better fees." + }, + { + "style": "Title", + "text": "Limit Order Rate", + "updated": 1609608564902 + }, + { + "style": "Text", + "text": "Superalgos users must define the rate at wish they wish the order to be filled. The exchange is responsible for not filling the order unless it can match it with bids/asks at the rate set by the user, or at a better rate." + }, + { + "style": "Text", + "text": "Small discrepancies between the actual rate and the order rate are to be expected, as not all exchanges handle decimals and other conversions involving, for example, fees, in the same manner." + }, + { + "style": "Note", + "text": "Limit orders must define a rate using the appropriate child node, otherwise, the target rate defined as an initial target is used. If no rate is defined at all, the system stops with an error upon execution. The configuration of the order deals with the size. " + }, + { + "style": "Success", + "text": "Please read the definition of Market Buy Order for relevant information about how orders in general work, in particular, the sections about Order Size, Filling, Closing, and Spawning Multiple Orders.", + "updated": 1609608913403 + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Limit Buy Order Configuration", + "updated": 1609608503478 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609608513384 + }, + { + "style": "List", + "text": "percentageOfAlgorithmSize is the definition of how much of the size handled by the algorithm shall be allocated to this particular order. Posible values are real numbers between 0 and 100, including the extremes. If you set the value to 0, the order will not be executed." + }, + { + "style": "List", + "text": "spawnMultipleOrders is the parameter that indicates whether additional spawned orders are allowed (true) or not (false)." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/limit-buy-orders.json b/Projects/Superalgos/Schemas/Docs-Nodes/limit-buy-orders.json new file mode 100644 index 000000000..38453d581 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/limit-buy-orders.json @@ -0,0 +1,12 @@ +{ + "type": "Limit Buy Orders", + "definition": { + "text": "Limit buy orders is the section of the data structure that keeps track of this specific type of order." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/limit-order.json b/Projects/Superalgos/Schemas/Docs-Nodes/limit-order.json new file mode 100644 index 000000000..8625fa8f4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/limit-order.json @@ -0,0 +1,16 @@ +{ + "type": "Limit Order", + "definition": { + "text": "Limit order is the section of the data structure that keeps track of the properties of a specific limit order, as defined in the trading system." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Each limit order defined in the trading system must reference the data structure of a limit order in the trading engine." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/limit-sell-order.json b/Projects/Superalgos/Schemas/Docs-Nodes/limit-sell-order.json new file mode 100644 index 000000000..7aaec8b2d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/limit-sell-order.json @@ -0,0 +1,39 @@ +{ + "type": "Limit Sell Order", + "definition": { + "text": "A limit sell order is an instruction sent to the exchange to sell the base asset, for execution at a specific rate or better." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Success", + "text": "Please read the definition of Limit Buy Order for relevant information about how limit orders work. Also, please read the definition of Market Buy Order for relevant information about how orders in general work, in particular, the section about Size, Filling, Closing, and Spawning Multiple Orders.", + "updated": 1609608882268 + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1610188212039 + }, + { + "style": "Title", + "text": "Limit Sell Order Configuration" + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609608623308 + }, + { + "style": "List", + "text": "percentageOfAlgorithmSize is the definition of how much of the size handled by the algorithm shall be allocated to this particular order. Posible values are real numbers between 0 and 100, including the extremes. If you set the value to 0, the order will not be executed." + }, + { + "style": "List", + "text": "spawnMultipleOrders is the parameter that indicates whether additional spawned orders are allowed (true) or not (false)." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/limit-sell-orders.json b/Projects/Superalgos/Schemas/Docs-Nodes/limit-sell-orders.json new file mode 100644 index 000000000..db01f1860 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/limit-sell-orders.json @@ -0,0 +1,12 @@ +{ + "type": "Limit Sell Orders", + "definition": { + "text": "Limit sell orders is the section of the data structure that keeps track of this specific type of order." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/live-trading-session.json b/Projects/Superalgos/Schemas/Docs-Nodes/live-trading-session.json new file mode 100644 index 000000000..4bf4b4fb1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/live-trading-session.json @@ -0,0 +1,57 @@ +{ + "type": "Live Trading Session", + "definition": { + "text": "A live trading session is a trading mode by which the trading bot instance reads a live market data feed, applies the rules as defined in the associated trading system, places the corresponding orders at the associated exchange, and stores the defined data products." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "A live trading session node must reference a trading system to gain access to the trading logic to be applied during the session. Other considerations framing the session come from the set of parameters attached to it." + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Important for Live Sessions", + "updated": 1610106381144 + }, + { + "style": "Block", + "text": "Running" + }, + { + "style": "Title", + "text": "Running Live Trading Session" + }, + { + "style": "Text", + "text": "Before you start a live trading session, the corresponding task needs to be running, as it is the task that puts the trading bot instance to run. Once the trading bot instance is running, select Run on the menu to start the session." + }, + { + "style": "Text", + "text": "To stop a backtesting session, select Stop on the menu." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609673992204 + }, + { + "style": "Title", + "text": "Live Trading Session Configuration", + "updated": 1609674010854 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609674018276 + }, + { + "style": "List", + "text": "folderName allows you to set a significant name to the folder in which the data products—and logs—generated by the session are stored. If left blank, the system names the folders with the session id. This may be handy when you intend to consult the raw data generated by the session, as, otherwise, the folder would be hard to identify.", + "updated": 1609674032582 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/lock.json b/Projects/Superalgos/Schemas/Docs-Nodes/lock.json new file mode 100644 index 000000000..d0747505c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/lock.json @@ -0,0 +1,44 @@ +{ + "type": "Lock", + "definition": { + "text": "Lock is an internal mechanism that blocks the data structure of the order at the trading engine when the definition of the order at the trading system disallows spawning multiple orders." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Possible values for lock are open and closed." + }, + { + "style": "Text", + "text": "The moment an order is closed, the system checks the spawnMultipleOrders parameter at the order's configuration in the trading system. If the value is false, the system sets the lock to closed so that the data structure may not be used again during the same position." + }, + { + "style": "Text", + "text": "At the moment of opening an order, the system checks the spawnMultipleOrders parameter at the order's configuration in the trading system. If the value is false, the system checks the value of the lock. If the value is open, then it may create the order; if it is closed then the order may not be created." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Lock Configuration", + "updated": 1609927200185 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/manage-stage.json b/Projects/Superalgos/Schemas/Docs-Nodes/manage-stage.json new file mode 100644 index 000000000..6d483c564 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/manage-stage.json @@ -0,0 +1,74 @@ +{ + "type": "Manage Stage", + "definition": { + "text": "The manage stage deals with the setting and management of stop loss and take profit targets, both to protect your capital and to increase the efficiency of your trading system." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The first and foremost rule of trading is to preserve capital and its main goal is to increase it." + }, + { + "style": "Text", + "text": "Conceptually, a position is not an instantaneous event, but an event which has an opening, a period of maturation, and a closing. The management of the position happens throughout the process." + }, + { + "style": "Text", + "text": "The concept of managing the position refers to the fact that the formulas that determine the take profit and stop loss targets may change as the position develops. A typical situation in which you may want to change your original take profit and stop loss formulas is when the position seems to be developing well in your favor." + }, + { + "style": "Text", + "text": "It may be in your best interest to manage the stop loss, moving the target in the direction that would help protect unrealized profits. It may also be in your interest to move the take profit target to extract a larger profit than originally expected. Or you may wish to set up a mechanism that closes the trade as soon as a certain market situation materializes." + }, + { + "style": "Text", + "text": "The management of take profit and stop loss is done independently of each other, in phases. Therefore, each concept has its own set of management phases." + }, + { + "style": "Text", + "text": "Each phase has its formula to describe the corresponding target. Users may define situations in which the current phase shall be abandoned and a different phase—with its formula—shall be implemented." + }, + { + "style": "Text", + "text": "Keep in mind that the position is in constant development, so there may be as many phases as you deem appropriate for your particular strategy." + }, + { + "style": "Text", + "text": "The idea of managing targets in phases derives from the notion that big market moves tend to provide clues as to what may come up next. For instance, rallies may accelerate as more traders join the move. Recognizable patterns may emerge. Signs of exhaustion may be identified." + }, + { + "style": "Text", + "text": "All of these considerations may feed the dynamic analysis performed in each phase as the position develops." + }, + { + "style": "Text", + "text": "Upon execution, the system verifies if the current candle has tagged either of the targets. If—or when—it does, the close stage kicks in and closing execution begins." + }, + { + "style": "Callout", + "text": "It is crucial to understand that Superalgos does not place orders to close a position until the stop loss or take profit targets are hit. That is, stop loss and take profit are not orders sitting at the exchange waiting to be filled at a certain rate. Instead, Superalgos keeps track of targets internally, and places the orders at the exchange during the execution cycle in which it detects either of the targets has been hit." + }, + { + "style": "Text", + "text": "This behavior has advantages and disadvantages, but it was designed as is because the former outweigh the latter.", + "updated": 1609609696864 + }, + { + "style": "Text", + "text": "By not placing stop or take profit orders at the exchange, Superalgos keeps your targets—and the underlying strategy—secret. This guarantees that such a crucial piece of information may not be used against you by the exchange itself or any third party that may have access to privileged information." + }, + { + "style": "Text", + "text": "On the other hand, not placing a stop order in advance may occasionally cause relatively more slippage, for instance, in cases of massive flash market moves." + }, + { + "style": "Success", + "text": "That said, the default behavior of the system may be hacked to avoid the eventual risk of excessive slippage: set your stop loss and take profit targets tighter and place limit orders to close the position.", + "updated": 1609609264299 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/managed-stop-loss.json b/Projects/Superalgos/Schemas/Docs-Nodes/managed-stop-loss.json new file mode 100644 index 000000000..c30bb3dee --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/managed-stop-loss.json @@ -0,0 +1,28 @@ +{ + "type": "Managed Stop Loss", + "definition": { + "text": "The managed stop loss node features the definition of the phases that make up the management of the stop loss target as the position develops." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "A stop loss target is a crucial element of a trading strategy, as it is the device in charge of preserving capital. Used wisely, the management of the stop loss may also play the role of protecting unrealized profits." + }, + { + "style": "Text", + "text": "The system for managing the stop loss provided by Superalgos is highly flexible. It may start as simple as a constant value at a certain rate, but may switch to a trailing stop as soon as the price moves away from the target rate by a certain percentage, or when a certain market situation arises." + }, + { + "style": "Text", + "text": "In fact, the formula may change as many times as required, as you may set up unlimited phases, and switch back and forth as required using predefined events to make the switch." + }, + { + "style": "Note", + "text": "The above example of a constant stop loss followed by a trailing stop is merely an example of a typical setup. The formulas you use to determine the rate of the target on each phase may be anything you choose, thus, you may achieve whatever behavior you imagine and can describe mathematically." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/managed-take-profit.json b/Projects/Superalgos/Schemas/Docs-Nodes/managed-take-profit.json new file mode 100644 index 000000000..b0ae4b0f8 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/managed-take-profit.json @@ -0,0 +1,24 @@ +{ + "type": "Managed Take Profit", + "definition": { + "text": "The managed take profit node features the definition of the phases that make up the management of the take profit target as the position develops." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "A take profit target bears an important role in your strategy, as it plays a crucial role in determining the risk/reward ratio of the trading opportunity that materialized, and upon which your strategy acted to take a position." + }, + { + "style": "Text", + "text": "The foremost goal of trading is to increase your capital, and how you set your initial take profit target and manage it afterward determines how much you may increase your capital given a favorable price action." + }, + { + "style": "Note", + "text": "The system provides the same functionality for managing the take profit target as explained for the managed stop loss target, so please make sure you go through that section too. " + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/market-base-asset.json b/Projects/Superalgos/Schemas/Docs-Nodes/market-base-asset.json new file mode 100644 index 000000000..2665ca7e8 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/market-base-asset.json @@ -0,0 +1,16 @@ +{ + "type": "Market Base Asset", + "definition": { + "text": "The market base asset is the asset in the pair used to provide a quote—a price—for the quoted asset, as listed at the exchange." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "A market base asset must reference an asset defined under the exchange assets node." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/market-buy-order.json b/Projects/Superalgos/Schemas/Docs-Nodes/market-buy-order.json new file mode 100644 index 000000000..600a3c2c5 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/market-buy-order.json @@ -0,0 +1,202 @@ +{ + "type": "Market Buy Order", + "definition": { + "text": "A market buy order is an instruction sent to the exchange to buy the base asset, for immediate execution at current market prices." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Traders usually use market orders when the priority is the certainty of execution over the rate of execution. Depending on the size of the order and the liquidity of the particular market/exchange, market orders may experience more or less slippage." + }, + { + "style": "Title", + "text": "Market Orders' Rate", + "updated": 1609604792445 + }, + { + "style": "Text", + "text": "Users have no control over the rate at which a market order is filled. The exchange fills the order with available bids/asks at the time of execution." + }, + { + "style": "Success", + "text": "The information below this banner is valid for all types of orders.", + "updated": 1609604814108 + }, + { + "style": "Title", + "text": "Order Size", + "updated": 1609604828662 + }, + { + "style": "Text", + "text": "As explained in the definition of the execution algorithm, each algorithm is allocated a percentage of the target size defined under the initial targets node." + }, + { + "style": "Text", + "text": "The simplified logic for non-coders:" + }, + { + "style": "Javascript", + "text": "algorithmSize = targetSize * percentageOfStageTargetSize / 100" + }, + { + "style": "Text", + "text": "The actual code:" + }, + { + "style": "Javascript", + "text": "let algorithmSizeInBaseAsset = \ntradingEngineStage.stageBaseAsset.targetSize.value * \nexecutionAlgorithm.config.percentageOfStageTargetSize / 100\n\nlet algorithmSizeInQuotedAsset = \ntradingEngineStage.stageQuotedAsset.targetSize.value * \nexecutionAlgorithm.config.percentageOfStageTargetSize / 100", + "updated": 1609604914758 + }, + { + "style": "Text", + "text": "Similarly, the size of an order is defined as a percentage of the size that the particular algorithm is allowed to execute (see the configuration)." + }, + { + "style": "Text", + "text": "The simplified logic for non-coders:" + }, + { + "style": "Javascript", + "text": "orderSize = algorithmSize * percentageOfAlgorithmSize / 100" + }, + { + "style": "Text", + "text": "The actual code:" + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderBaseAsset.size.value = \nalgorithmSizeInBaseAsset * \ntradingSystemOrder.config.percentageOfAlgorithmSize / 100", + "updated": 1609605026488 + }, + { + "style": "Text", + "text": "Because each execution algorithm may define multiple orders, the typical scenario is that all orders defined within an algorithm add up to 100% of the size allocated to the algorithm." + }, + { + "style": "Text", + "text": "However, it is up to the user how to manage this setting, as different hacks may be found to achieve different behaviors." + }, + { + "style": "Callout", + "text": "If orders defined add up to more than 100% of the size allocated to the algorithm, the trading engine does not enforce a cap." + }, + { + "style": "Text", + "text": "Pretty much like the user may decide to define the size of orders within an algorithm above or below the 100% mark, the same is true when defining multiple algorithms. In other words, the user may choose to set up algorithms whose combined sizes amount to more or less than 100%." + }, + { + "style": "Text", + "text": "In cases in which the combined sizes amount to less than 100%, the target size would be partially filled at best. On the other hand, in cases in which the combined sizes amount to more than 100%, then the orders and/or algorithms would compete with each other." + }, + { + "style": "Callout", + "text": "The one validation the trading engine does is to enforce the target size defined under the initial targets node. The target size is treated as a hard cap, so that no position may ever be sized larger than the target." + }, + { + "style": "Text", + "text": "If the order size as defined would cause the target size to be breached, then the order size is lowered to match the hard cap." + }, + { + "style": "Text", + "text": "The simplified logic for non-coders:" + }, + { + "style": "Javascript", + "text": "if ( targetSize + sizePlaced > targetSize )\n{ orderSize = targetSize - sizePlaced }", + "updated": 1609605299313 + }, + { + "style": "Text", + "text": "The actual code:" + }, + { + "style": "Javascript", + "text": "if (\n tradingEngineOrder.orderBaseAsset.size.value + \n tradingEngineStage.stageBaseAsset.sizePlaced.value >\n tradingEngineStage.stageBaseAsset.targetSize.value\n) {\n tradingEngineOrder.orderBaseAsset.size.value = \n tradingEngineStage.stageBaseAsset.targetSize.value - \n tradingEngineStage.stageBaseAsset.sizePlaced.value\n}", + "updated": 1609605319814 + }, + { + "style": "Note", + "text": "See the order's configuration to learn how to set up the order size." + }, + { + "style": "Title", + "text": "Placing and Filling of Orders", + "updated": 1609605682783 + }, + { + "style": "Text", + "text": "The trading engine keeps track of the amounts placed and the amounts filled based on the feedback obtained from the exchange, and makes the information available in the size placed and size filled nodes. The nodes are present in multiple contexts, such as the particular stage (open and close) or the particular order type, and are denominated both in the base asset and quoted asset. You may learn more about how to track the size placed and size filled on the trading engine pages." + }, + { + "style": "Title", + "text": "Closing of Orders", + "updated": 1609605695838 + }, + { + "style": "Text", + "text": "Orders may be closed upon the occurrence of the following two events:" + }, + { + "style": "List", + "text": "The exchange reports the order was filled. In such a case, the trading engine closes the order." + }, + { + "style": "List", + "text": "The cancel order event is triggered. This is an event the user may configure with the typical set up of situations and conditions." + }, + { + "style": "Text", + "text": "All of the available types of orders may be configured so that multiple orders may be spawned, one after the other, through the same order definition." + }, + { + "style": "Text", + "text": "This allows, for example, setting an order for 1% of the size allocated to the algorithm, and have the trading engine spawn one order per execution cycle until the 100% mark is reached. Such a feature may allow many more hacks and is yet another tool that—combined with the rest—enables a great deal of control over orders execution." + }, + { + "style": "Text", + "text": "A new instance of an order may be spawned only under the following context:" + }, + { + "style": "List", + "text": "The previous instance of the order is closed. That is, two instances of the same order may not exist at the same time." + }, + { + "style": "List", + "text": "The size filled at the level of the execution algorithm is within the limit established in the algorithm's configuration." + }, + { + "style": "List", + "text": "The size filled at the level of the stage must be within the target size defined under the initial targets node." + }, + { + "style": "Note", + "text": "See the order’s configuration to learn how to configure the parameter affecting this behavior." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Market Buy Order Configuration", + "updated": 1609605867112 + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "List", + "text": "percentageOfAlgorithmSize is the definition of how much of the size handled by the algorithm shall be allocated to this particular order. Posible values are real numbers between 0 and 100, including the extremes. If you set the value to 0, the order will not be executed." + }, + { + "style": "List", + "text": "spawnMultipleOrders is the parameter that indicates whether additional spawned orders are allowed (true) or not (false)." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/market-buy-orders.json b/Projects/Superalgos/Schemas/Docs-Nodes/market-buy-orders.json new file mode 100644 index 000000000..ae8eb8f41 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/market-buy-orders.json @@ -0,0 +1,12 @@ +{ + "type": "Market Buy Orders", + "definition": { + "text": "Market buy orders is the section of the data structure that keeps track of this specific type of order." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/market-data-products.json b/Projects/Superalgos/Schemas/Docs-Nodes/market-data-products.json new file mode 100644 index 000000000..b925c91e2 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/market-data-products.json @@ -0,0 +1,20 @@ +{ + "type": "Market Data Products", + "definition": { + "text": "A market data products node represents the group of data products generated in a specific market." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The market data products node must reference a market defined in the Crypto Ecosystem hierarchy." + }, + { + "style": "Text", + "text": "This node may spawn individual data products or may deploy data products in bulk organized by data mine and by bots. See the data products node for the details." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/market-data-tasks.json b/Projects/Superalgos/Schemas/Docs-Nodes/market-data-tasks.json new file mode 100644 index 000000000..2e6b4bd7e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/market-data-tasks.json @@ -0,0 +1,24 @@ +{ + "type": "Market Data Tasks", + "definition": { + "text": "A market data tasks node groups data mining tasks operating in a specific market." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The market data tasks node must reference a market defined in the Crypto Ecosystem hierarchy." + }, + { + "style": "Text", + "text": "This node may spawn individual data products or may deploy data products in bulk organized by data mine and by bots. See the data products node for the details." + }, + { + "style": "Block", + "text": "Running" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/market-learning-products.json b/Projects/Superalgos/Schemas/Docs-Nodes/market-learning-products.json new file mode 100644 index 000000000..e93184f28 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/market-learning-products.json @@ -0,0 +1,3 @@ +{ + "type": "Market Learning Products" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/market-learning-tasks.json b/Projects/Superalgos/Schemas/Docs-Nodes/market-learning-tasks.json new file mode 100644 index 000000000..4e2cf26eb --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/market-learning-tasks.json @@ -0,0 +1,3 @@ +{ + "type": "Market Learning Tasks" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/market-order.json b/Projects/Superalgos/Schemas/Docs-Nodes/market-order.json new file mode 100644 index 000000000..181ab6951 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/market-order.json @@ -0,0 +1,16 @@ +{ + "type": "Market Order", + "definition": { + "text": "Market order is the section of the data structure that keeps track of the properties of a specific market order, as defined in the trading system." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Each market order defined in the trading system must reference the data structure of a market order in the trading engine." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/market-quoted-asset.json b/Projects/Superalgos/Schemas/Docs-Nodes/market-quoted-asset.json new file mode 100644 index 000000000..b5b4f792d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/market-quoted-asset.json @@ -0,0 +1,16 @@ +{ + "type": "Market Quoted Asset", + "definition": { + "text": "The market quoted asset is the asset in the pair for which a quote is given, denominated in the base asset, as listed at the exchange." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "A market quoted asset must reference an asset defined under the exchange assets node." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/market-sell-order.json b/Projects/Superalgos/Schemas/Docs-Nodes/market-sell-order.json new file mode 100644 index 000000000..f4891b48c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/market-sell-order.json @@ -0,0 +1,39 @@ +{ + "type": "Market Sell Order", + "definition": { + "text": "A market sell order is an instruction sent to the exchange to sell the base asset, for immediate execution at current market prices." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Success", + "text": "Please read the definition of Market Buy Order for relevant information about how orders in general—and market orders in particular—work.", + "updated": 1609608966819 + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Market Sell Order Configuration", + "updated": 1609608299620 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609608307181 + }, + { + "style": "List", + "text": "percentageOfAlgorithmSize is the definition of how much of the size handled by the algorithm shall be allocated to this particular order. Posible values are real numbers between 0 and 100, including the extremes. If you set the value to 0, the order will not be executed." + }, + { + "style": "List", + "text": "spawnMultipleOrders is the parameter that indicates whether additional spawned orders are allowed (true) or not (false)." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/market-sell-orders.json b/Projects/Superalgos/Schemas/Docs-Nodes/market-sell-orders.json new file mode 100644 index 000000000..7060b35f3 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/market-sell-orders.json @@ -0,0 +1,12 @@ +{ + "type": "Market Sell Orders", + "definition": { + "text": "Market sell orders is the section of the data structure that keeps track of this specific type of order." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/market-trading-products.json b/Projects/Superalgos/Schemas/Docs-Nodes/market-trading-products.json new file mode 100644 index 000000000..abb9d701b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/market-trading-products.json @@ -0,0 +1,20 @@ +{ + "type": "Market Trading Products", + "definition": { + "text": "A market trading products node features the group of data products generated by the referenced session in a specific market." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The market trading products node must reference a market defined in the Crypto Ecosystem hierarchy." + }, + { + "style": "Text", + "text": "This node may spawn individual data products or may deploy data products in bulk organized by trading mine and by trading bots. See the data products node for the details." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/market-trading-tasks.json b/Projects/Superalgos/Schemas/Docs-Nodes/market-trading-tasks.json new file mode 100644 index 000000000..916d0079f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/market-trading-tasks.json @@ -0,0 +1,24 @@ +{ + "type": "Market Trading Tasks", + "definition": { + "text": "A market trading tasks node groups trading tasks operating in a specific market." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The market trading tasks node must reference a market defined in the Crypto Ecosystem hierarchy." + }, + { + "style": "Text", + "text": "This node may spawn individual data products or may deploy data products in bulk organized by data mine and by bots. See the data products node for the details." + }, + { + "style": "Block", + "text": "Running" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/market.json b/Projects/Superalgos/Schemas/Docs-Nodes/market.json new file mode 100644 index 000000000..b6067aaab --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/market.json @@ -0,0 +1,26 @@ +{ + "type": "Market", + "definition": { + "text": "A market is the definition of a pair of assets (i.e.: BTC-USDT) listed as a market in the corresponding exchange." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Important", + "text": "Only markets that are effectively listed on the exchange may be configured and used with the system. Check with the exchange and make sure you understand what tickers they are using, which is the base asset and which the quoted asset on the listed markets." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609772445354 + }, + { + "style": "Title", + "text": "Market Configuration", + "updated": 1609772469334 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/master-script.json b/Projects/Superalgos/Schemas/Docs-Nodes/master-script.json new file mode 100644 index 000000000..81007dedf --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/master-script.json @@ -0,0 +1,20 @@ +{ + "type": "Master Script", + "definition": { + "text": "A master script contains the definitions of any number of template scripts along with the master JavaScript code providing the logic to implement them." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In general terms, master scripts serve to atomize the complexity of the task at hand by subdividing the task into any number of specific scopes, handled by individual template scripts. The master script controls the execution of template scripts and solves issues beyond their scope." + }, + { + "style": "Text", + "text": "The current implementation of the Masters super scripts hierarchy features two master scripts you may use as examples. The Setup Market master script deals with all the steps required to install a new market, while the Delete Market Dependencies master script deals with uninstalling markets." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/max.json b/Projects/Superalgos/Schemas/Docs-Nodes/max.json new file mode 100644 index 000000000..91d7f2ddd --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/max.json @@ -0,0 +1,16 @@ +{ + "type": "Max", + "definition": { + "text": "Max is the maximum rate registered by the exchange during the period between the datetimes of the begin and end properties, as provided by the exchange." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/min.json b/Projects/Superalgos/Schemas/Docs-Nodes/min.json new file mode 100644 index 000000000..e13fe0869 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/min.json @@ -0,0 +1,16 @@ +{ + "type": "Min", + "definition": { + "text": "Min is the minimum rate registered by the exchange during the period between the datetimes of the begin and end properties, as provided by the exchange." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/mines.json b/Projects/Superalgos/Schemas/Docs-Nodes/mines.json new file mode 100644 index 000000000..1ac9cff4d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/mines.json @@ -0,0 +1,18 @@ +{ + "type": "Mines", + "definition": { + "text": "Mines refers to the different types of mines for which definitions exist in the form of hierarchies. At this stage, the node may spawn Data Mine, Trading Mine, and Learning Mine hierarchies." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content", + "updated": 1609702311223 + }, + { + "style": "Success", + "text": "Use the menu to spawn new hierarchies.", + "updated": 1609702365986 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/move-to-phase-event.json b/Projects/Superalgos/Schemas/Docs-Nodes/move-to-phase-event.json new file mode 100644 index 000000000..55939b6a4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/move-to-phase-event.json @@ -0,0 +1,28 @@ +{ + "type": "Move To Phase Event", + "definition": { + "text": "The move to phase event determines when there should be a switch of phases from the current phase to an arbitrary phase determined by a reference." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "While phases are defined in a sequence and you may choose to manage the position by shifting from one phase to the next in the sequence, the move to phase event offers an alternative." + }, + { + "style": "Text", + "text": "With the move to phase event, you may arbitrarily decide which will be the next phase. To do that, you must establish a reference from the move to phase event, to the phase that should be activated once the event is triggered." + }, + { + "style": "Text", + "text": "Any number of move-to-phase events may be set up for each and every phase, allowing complete flexibility on how the position is managed. This feature allows setting up versatile position-management algorithms that may switch to different formulas back and forth, or in any configuration imaginable." + }, + { + "style": "Note", + "text": "A move-to-phase event must reference a phase node. When the situation in the move-to-phase event evaluates true the management shifts to the referenced phase." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/move-to-phase.json b/Projects/Superalgos/Schemas/Docs-Nodes/move-to-phase.json new file mode 100644 index 000000000..510f12ff6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/move-to-phase.json @@ -0,0 +1,36 @@ +{ + "type": "Move To Phase", + "definition": { + "text": "Counts the periods since the last time a move to phase event was triggered." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Serial Number Configuration", + "updated": 1609873971454 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/network-node.json b/Projects/Superalgos/Schemas/Docs-Nodes/network-node.json new file mode 100644 index 000000000..ff19e9034 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/network-node.json @@ -0,0 +1,59 @@ +{ + "type": "Network Node", + "definition": { + "text": "A network node represents a machine running Superalgos, on which processes run and data is stored." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "By default, processes are set up to run locally in a network node representing your local machine. However, the system is prepared to run distributed on a network of nodes, or what we call a trading farm." + }, + { + "style": "Text", + "text": "You may create unlimited network nodes and map them with different machines on a network. Each computer in the network runs an instance of the Superalgos backend, and you may control the whole network operation from a single machine, or—in general—from any machine in the network running the Superalgos frontend. To learn more about distributed setups, check the trading farms pages.", + "updated": 1609249489127 + }, + { + "style": "Text", + "text": "The easiest and fastest way to set up a network node is using the Install Market function available on markets defined in the Crypto Ecosystem hierarchy, under the exchange markets node. This function adds data mining tasks for all sensor and indicator bots shipping with the system, backtesting and live trading tasks for trading systems shipping with the system, including the data storage definitions for both, and also creates the corresponding dashboards and charts in the Charting Space hierarchy. You may learn more about this function in the how to install a new market page." + }, + { + "style": "Text", + "text": "If you need finer control over the operation you wish to deploy on the network, then you may use the individual functions available under each section of the hierarchy under the network node." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Network Node Configuration", + "updated": 1609594117302 + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "Text", + "text": "" + }, + { + "style": "List", + "text": "host is the machine or hardware represented by the network node. The default parameter is localhost, but if you intend to access the backend services of this node from a remote computer, then you must change localhost for the IP Address of the machine on which the node is running, for example, to 147.0.0.1." + }, + { + "style": "List", + "text": "webPort is the port used by the Web Server, at this stage 34248.", + "updated": 1609247881896 + }, + { + "style": "List", + "text": "webSocketsPort is the port used by the system to communicate over the local area network, by default set at 18041." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/network.json b/Projects/Superalgos/Schemas/Docs-Nodes/network.json new file mode 100644 index 000000000..7b92bd95b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/network.json @@ -0,0 +1,40 @@ +{ + "type": "Network", + "definition": { + "text": "The network hierarchy provides the control functions for running data-mining and trading operations. Because operations may be run either on a single machine or distributed over a network of machines, it also contains definitions regarding the physical location in which nodes live or function." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The network hierarchy defines where in the network you run each of the bots you choose to run, and where the data they output is stored." + }, + { + "style": "Text", + "text": "You will use the network hierarchy for the following purposes:" + }, + { + "style": "List", + "text": "To control your data mining operation—that is, tasks running sensor and indicator bots. Data mining tasks process data that may be consumed by others; for example, so that your trading systems may count with quality information." + }, + { + "style": "List", + "text": "To control your testing environment—that is, trading sessions including backtesting and paper trading sessions." + }, + { + "style": "List", + "text": "To control your production environment—that is, forward testing, and live trading sessions." + }, + { + "style": "List", + "text": "To manage the storage of the data produced by the bots you run as outputs. This includes administering the physical locations on which the data products produced by bots reside." + }, + { + "style": "Warning", + "text": "At this stage, the system does not implement any form of security measures, therefore, Superalgos is to be run in the context of a restricted Local Area Network only, unless you implement your own network security." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/next-phase-event.json b/Projects/Superalgos/Schemas/Docs-Nodes/next-phase-event.json new file mode 100644 index 000000000..0692ba6ea --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/next-phase-event.json @@ -0,0 +1,33 @@ +{ + "type": "Next Phase Event", + "definition": { + "text": "The next phase event determines when there should be a switch of phases to the next phase in a predefined sequence." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The management of a position is —by default—done in sequential phases, each phase with its formula. To move from one phase to the next, a situation you define must be validated." + }, + { + "style": "Text", + "text": "When that happens, the next phase event is triggered, the current phase is abandoned, and the next phase is activated. From that instant on, the system evaluates the formula corresponding to the next phase." + }, + { + "style": "Text", + "text": "The sequence of phases may be as long as the number of phases you choose to add and define. There may be unlimited numbers of phases." + }, + { + "style": "Note", + "text": "Events are triggered by situations, which are defined by conditions. Both are explained in the situations, conditions, and formulas page." + }, + { + "style": "Success", + "text": "To set up a next phase event, add the node and define the situation that should trigger the event.", + "updated": 1609610098815 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/next-phase.json b/Projects/Superalgos/Schemas/Docs-Nodes/next-phase.json new file mode 100644 index 000000000..188c32ef0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/next-phase.json @@ -0,0 +1,36 @@ +{ + "type": "Next Phase", + "definition": { + "text": "Counts the periods since the last time a next phase event was triggered." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Next Phase Configuration", + "updated": 1609925715635 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/nodes-announcements.json b/Projects/Superalgos/Schemas/Docs-Nodes/nodes-announcements.json new file mode 100644 index 000000000..a19319231 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/nodes-announcements.json @@ -0,0 +1,12 @@ +{ + "type": "Nodes Announcements", + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ], + "definition": { + "text": "Right click to edit this text and replace it with a definition / summary for this page. ESC to exit edit mode." + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/nodes-errors.json b/Projects/Superalgos/Schemas/Docs-Nodes/nodes-errors.json new file mode 100644 index 000000000..2fe73e6b6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/nodes-errors.json @@ -0,0 +1,3 @@ +{ + "type": "Nodes Errors" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/nodes-highlights.json b/Projects/Superalgos/Schemas/Docs-Nodes/nodes-highlights.json new file mode 100644 index 000000000..444b35a67 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/nodes-highlights.json @@ -0,0 +1,12 @@ +{ + "type": "Nodes Highlights", + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ], + "definition": { + "text": "Right click to edit this text and replace it with a definition / summary for this page. ESC to exit edit mode." + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/nodes-infos.json b/Projects/Superalgos/Schemas/Docs-Nodes/nodes-infos.json new file mode 100644 index 000000000..4189d15f5 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/nodes-infos.json @@ -0,0 +1,3 @@ +{ + "type": "Nodes Infos" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/nodes-progress.json b/Projects/Superalgos/Schemas/Docs-Nodes/nodes-progress.json new file mode 100644 index 000000000..b3dcfcd10 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/nodes-progress.json @@ -0,0 +1,3 @@ +{ + "type": "Nodes Progress" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/nodes-running.json b/Projects/Superalgos/Schemas/Docs-Nodes/nodes-running.json new file mode 100644 index 000000000..02a6ba9a9 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/nodes-running.json @@ -0,0 +1,3 @@ +{ + "type": "Nodes Running" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/nodes-status.json b/Projects/Superalgos/Schemas/Docs-Nodes/nodes-status.json new file mode 100644 index 000000000..3387d298b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/nodes-status.json @@ -0,0 +1,3 @@ +{ + "type": "Nodes Status" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/nodes-values.json b/Projects/Superalgos/Schemas/Docs-Nodes/nodes-values.json new file mode 100644 index 000000000..caf39c1b7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/nodes-values.json @@ -0,0 +1,3 @@ +{ + "type": "Nodes Values" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/nodes-warnings.json b/Projects/Superalgos/Schemas/Docs-Nodes/nodes-warnings.json new file mode 100644 index 000000000..f273937ca --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/nodes-warnings.json @@ -0,0 +1,3 @@ +{ + "type": "Nodes Warnings" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/open-execution.json b/Projects/Superalgos/Schemas/Docs-Nodes/open-execution.json new file mode 100644 index 000000000..ee7d8f157 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/open-execution.json @@ -0,0 +1,32 @@ +{ + "type": "Open Execution", + "definition": { + "text": "The open execution node groups all execution algorithms involved in the process of opening a position." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "One of the crucial elements that make up trading intelligence is the capacity to control every aspect of order execution, as the execution itself entails strategic elements that directly affect performance." + }, + { + "style": "Text", + "text": "Superalgos' trading engine is designed as a generic infrastructure that allows building execution logic from the ground up, with as much simplicity or complexity as may be required." + }, + { + "style": "Text", + "text": "The trading system splits the definitions of the execution logic by trading strategy. That is, each strategy in a trading system may have its execution logic." + }, + { + "style": "Text", + "text": "The next layer of control comes in the form of execution algorithms. Each strategy may have as many algorithms as required, and each algorithm may have as many instructions as required." + }, + { + "style": "Text", + "text": "This model allows the granular control of orders with which you may build algorithms that may interact with other algorithms, and so on." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/open-stage.json b/Projects/Superalgos/Schemas/Docs-Nodes/open-stage.json new file mode 100644 index 000000000..04e0032d5 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/open-stage.json @@ -0,0 +1,40 @@ +{ + "type": "Open Stage", + "definition": { + "text": "The open stage deals with the definitions that make up the logic to enter a position, including the target rate and size, and order execution." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The open stage comes into play once the take position event is triggered." + }, + { + "style": "Text", + "text": "Conceptually, the open stage deals with the details concerning how the position shall be opened once the decision to take a position has been made. That is, the open stage does not participate in the process of deciding whether a position should be open or not." + }, + { + "style": "Text", + "text": "To take a position, several definitions are required. In particular, those concerning targets, such as the rate and size of the position, and the logic of the execution strategy, that is, how many of which orders shall be placed at the exchange—and when—to enter the position." + }, + { + "style": "Text", + "text": "The open stage closes as soon as one of the following events happen:" + }, + { + "style": "List", + "text": "the target size gets filled," + }, + { + "style": "List", + "text": "the close stage event is triggered," + }, + { + "style": "List", + "text": "the take profit or stop loss targets are hit." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/open.json b/Projects/Superalgos/Schemas/Docs-Nodes/open.json new file mode 100644 index 000000000..cb3f76a21 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/open.json @@ -0,0 +1,16 @@ +{ + "type": "Open", + "definition": { + "text": "Open is the rate at the datetime of the begin property, as provided by the exchange. That is, the rate at the open of the candle." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/order-base-asset.json b/Projects/Superalgos/Schemas/Docs-Nodes/order-base-asset.json new file mode 100644 index 000000000..5600c5b0e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/order-base-asset.json @@ -0,0 +1,16 @@ +{ + "type": "Order Base Asset", + "definition": { + "text": "The order base asset node keeps track of the evolution of certain properties of orders, denominated in the base asset." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Note", + "text": "Learn more about how accounts for the base asset and the quoted asset are kept in the base asset and quoted asset page on the trading engine section of the documentation." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/order-counters.json b/Projects/Superalgos/Schemas/Docs-Nodes/order-counters.json new file mode 100644 index 000000000..79183a147 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/order-counters.json @@ -0,0 +1,12 @@ +{ + "type": "Order Counters", + "definition": { + "text": "The order counters node features counters of instances of objects that come to exist while the order is open." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/order-name.json b/Projects/Superalgos/Schemas/Docs-Nodes/order-name.json new file mode 100644 index 000000000..d3c8107e0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/order-name.json @@ -0,0 +1,36 @@ +{ + "type": "Order Name", + "definition": { + "text": "Order name is the name of the order as specified in the trading system." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Assigning names to orders in the definition of the trading system makes tracking the execution of orders easier." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Order Name Configuration", + "updated": 1609927166835 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/order-quoted-asset.json b/Projects/Superalgos/Schemas/Docs-Nodes/order-quoted-asset.json new file mode 100644 index 000000000..35c1ed5de --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/order-quoted-asset.json @@ -0,0 +1,16 @@ +{ + "type": "Order Quoted Asset", + "definition": { + "text": "The order quoted asset node keeps track of the evolution of certain properties of orders, denominated in the quoted asset." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Note", + "text": "Learn more about how accounts for the base asset and the quoted asset are kept in the base asset and quoted asset page on the trading engine section of the documentation." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/order-rate.json b/Projects/Superalgos/Schemas/Docs-Nodes/order-rate.json new file mode 100644 index 000000000..06e0ce04e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/order-rate.json @@ -0,0 +1,40 @@ +{ + "type": "Order Rate", + "definition": { + "text": "The order rate node defines the rate of limit orders." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Because the purpose of limit orders is to have control over the rate at which the order is executed, the definition of the order rate is required for all limit orders." + }, + { + "style": "Note", + "text": "Please, read about limit orders to complement the information in this definition." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Serial Number Configuration", + "updated": 1609873971454 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/order-statistics.json b/Projects/Superalgos/Schemas/Docs-Nodes/order-statistics.json new file mode 100644 index 000000000..f1467f111 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/order-statistics.json @@ -0,0 +1,12 @@ +{ + "type": "Order Statistics", + "definition": { + "text": "Order statistics keeps track of several metrics in the context of the order." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/orders.json b/Projects/Superalgos/Schemas/Docs-Nodes/orders.json new file mode 100644 index 000000000..fa5c20ebf --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/orders.json @@ -0,0 +1,36 @@ +{ + "type": "Orders", + "definition": { + "text": "Orders counts the number of times orders have been placed, in the context of the parent node." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Orders Configuration", + "updated": 1609924970845 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/other-hierarchies.json b/Projects/Superalgos/Schemas/Docs-Nodes/other-hierarchies.json new file mode 100644 index 000000000..9eeb28491 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/other-hierarchies.json @@ -0,0 +1,18 @@ +{ + "type": "Other Hierarchies", + "definition": { + "text": "Other hierarchies refers to hierarchies other than those defining spaces and mines. At this stage, the node may spawn Trading System, Network, Super Scripts, Trading Engine, and Tutorial hierarchies." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content", + "updated": 1609702185140 + }, + { + "style": "Success", + "text": "Use the menu to spawn new hierarchies.", + "updated": 1609702252606 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/output-dataset-folder.json b/Projects/Superalgos/Schemas/Docs-Nodes/output-dataset-folder.json new file mode 100644 index 000000000..649214731 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/output-dataset-folder.json @@ -0,0 +1,32 @@ +{ + "type": "Output Dataset Folder", + "definition": { + "text": "An output dataset folder is an organizational device used to create arrangements of output datasets, particularly useful when the bot has many products." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In cases in which a single bot has many different products, output dataset folders may help organize the outputs referencing each product, making their management easier. Folders may be nested like folders in the file system." + }, + { + "style": "Text", + "text": "The use of output dataset folders is optional, as product definitions may also exist outside of folders." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Configuring Output Dataset Folder" + }, + { + "style": "Text", + "text": "Select Configure on the menu to access the configuration." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/output-dataset.json b/Projects/Superalgos/Schemas/Docs-Nodes/output-dataset.json new file mode 100644 index 000000000..46359880f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/output-dataset.json @@ -0,0 +1,24 @@ +{ + "type": "Output Dataset", + "definition": { + "text": "The output dataset is a reference to a dataset definition. By establishing such reference, the process acquires the definitions as of how the dataset is to be constructed." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "There are other effects of establishing a reference from the output dataset to a product dataset definition. Upon execution, every time a process finishes a processing cycle, it triggers an event that may be consumed by other entities. This event indicates that the datasets impacted by the process have been updated." + }, + { + "style": "Text", + "text": "An example of other entities that may be listening to such events is that of plotters. Plotters read datasets and create graphical representations of this data over the charts. Charts are constantly updating the information in the form of candles and indicators in realtime, synchronized with the data being extracted from the exchange by the sensor bot. That kind of automatism is possible thanks to the events that processes trigger every time an execution cycle is finished, signaling to everyone listening that new data is available on each of the impacted datasets." + }, + { + "style": "Note", + "text": "An output dataset must reference a dataset definition." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/panel-data.json b/Projects/Superalgos/Schemas/Docs-Nodes/panel-data.json new file mode 100644 index 000000000..995624c21 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/panel-data.json @@ -0,0 +1,38 @@ +{ + "type": "Panel Data", + "definition": { + "text": "A panel data node represents a data field to be plotted on the plotter panel." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The system renders a panel featuring a centered, single-column vertical arrangement of data, with a label and a data field right below it. The label of each data field on the panel is given—by default—by the label set for each panel data node." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Panel Data Configuration", + "updated": 1609860920089 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609860933462 + }, + { + "style": "List", + "text": "valueDecimals sets the number of decimals to be shown on the corresponding data field." + }, + { + "style": "List", + "text": "labelPosition and valuePosition represent the vertical distance of the corresponding fields to the top margin of the panel." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/paper-trading-session.json b/Projects/Superalgos/Schemas/Docs-Nodes/paper-trading-session.json new file mode 100644 index 000000000..5b7a37098 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/paper-trading-session.json @@ -0,0 +1,51 @@ +{ + "type": "Paper Trading Session", + "definition": { + "text": "A paper trading session is a trading mode by which the trading bot instance reads a live market data feed, applies the rules defined in the associated trading system, and generates a trading simulation." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "A paper trading session node must reference a trading system to gain access to the trading logic to be applied during the session. Other considerations framing the session come from the set of parameters attached to it." + }, + { + "style": "Block", + "text": "Running" + }, + { + "style": "Title", + "text": "Running Paper Trading Session" + }, + { + "style": "Text", + "text": "Before you start a paper trading session, the corresponding task needs to be running, as it is the task that puts the trading bot instance to run. Once the trading bot instance is running, select Run on the menu to start the session." + }, + { + "style": "Text", + "text": "To stop a backtesting session, select Stop on the menu." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609669160713 + }, + { + "style": "Title", + "text": "Paper Trading Session Configuration", + "updated": 1609669178233 + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "Text", + "text": "folderName allows you to set a significant name to the folder in which the data products—and logs—generated by the session are stored. If left blank, the system names the folders with the session id. This may be handy when you intend to consult the raw data generated by the session, as, otherwise, the folder would be hard to identify.", + "updated": 1609669193350 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/percentage-filled.json b/Projects/Superalgos/Schemas/Docs-Nodes/percentage-filled.json new file mode 100644 index 000000000..81ef7a301 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/percentage-filled.json @@ -0,0 +1,40 @@ +{ + "type": "Percentage Filled", + "definition": { + "text": "Percentage filled represents the portion of the order that has been filled, expressed as a percentage." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The formula:" + }, + { + "style": "Javascript", + "text": "percentage filled = size filled * 100 / size" + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Percentage Filled Configuration", + "updated": 1609928046299 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/periods.json b/Projects/Superalgos/Schemas/Docs-Nodes/periods.json new file mode 100644 index 000000000..a4802f100 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/periods.json @@ -0,0 +1,36 @@ +{ + "type": "Periods", + "definition": { + "text": "Periods counts the number of candles that have been evaluated, in the context of the parent node." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Periods Configuration", + "updated": 1609924882493 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/phase.json b/Projects/Superalgos/Schemas/Docs-Nodes/phase.json new file mode 100644 index 000000000..8aa6dc7be --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/phase.json @@ -0,0 +1,69 @@ +{ + "type": "Phase", + "definition": { + "text": "The management of take profit and stop loss targets is done in phases, each with their own formula that determines the target. ", + "updated": 1610205977723 + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Phase 1 sets the initial targets, either for the Managed Stop Loss or the Managed Take Profit, and becomes active as soon as the Take Position Event validates true. Subsequent phases allows switching to different formulas given certain market situations.", + "updated": 1610206033350 + }, + { + "style": "Text", + "text": "The default management of phases is sequential, meaning that phase 2 comes after phase 1, phase 3 comes after phase 2, and so on." + }, + { + "style": "Text", + "text": "To switch from one phase to the next phase in the sequence, the Next Phase event is used. When the Situation described in the next phase event validates true, the switch occurs and the next phase becomes the active phase.", + "updated": 1610206075265 + }, + { + "style": "Text", + "text": "However, management does not need to happen sequentially. By using the Move To Phase Event instead of the Next Phase Event, the system may activate any other phase and not just the one next in the sequence.", + "updated": 1610206113858 + }, + { + "style": "Text", + "text": "Both events may be used at the same time, and whichever event is triggered first takes precedence." + }, + { + "style": "Note", + "text": "Notice that stop loss and take profit phases are independent and defined separately from each other, each below the corresponding managed stop loss and managed take profit nodes." + }, + { + "style": "Note", + "text": "The value of the target set for a phase is expressed by a formula. Learn more about formulas and how to write them." + }, + { + "style": "Success", + "text": "This explanation about phase 1 may be extended to any other phase, as they all work similarly, and it applies both for managed stop loss phases and managed take profit phases.", + "updated": 1609609940697 + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Serial Number Configuration", + "updated": 1609873971454 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/plotter-module.json b/Projects/Superalgos/Schemas/Docs-Nodes/plotter-module.json new file mode 100644 index 000000000..b426ebe24 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/plotter-module.json @@ -0,0 +1,72 @@ +{ + "type": "Plotter Module", + "definition": { + "text": "A plotter module is a device within a plotter that contains the definitions to create the visualization for a product definition." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "A single plotter may have several modules. Different modules may be used to plot each product of the bot, or as best suits the expected use-pattern." + }, + { + "style": "Important", + "text": "For a bot to use a plotter, the corresponding Product Definition must establish a reference with the plotter module built to interpret the dataset.", + "updated": 1609790272500 + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609790308422 + }, + { + "style": "Title", + "text": "Plotter Module Configuration" + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609790324389 + }, + { + "style": "List", + "text": "codeName is the name used in the code to refer to the module." + }, + { + "style": "List", + "text": "isLegacy is true for plotters modules developed entirely in JavaScript, and is false or doesn't show in the configuration for plotters built with the tools featured in the data mine hierarchy." + }, + { + "style": "List", + "text": "icon is the name of the image that illustrates the corresponding layer in the Layers Panel. In case the icon is not specified, the default idon is used. Possible values are...", + "updated": 1609852182210 + }, + { + "style": "Javascript", + "text": "layer-moving-averages\nlayer-bands\nlayer-candles\nlayer-histogram\nlayer-oscilator\nlayer-resistance\nlayer-support\nlayer-trends\nlayer-volume", + "updated": 1609852285167 + }, + { + "style": "Text", + "text": "Custom images may be added too. To do that:" + }, + { + "style": "Text", + "text": "1. Name the image in the following format: image-name.png;", + "updated": 1609852305205 + }, + { + "style": "Text", + "text": "2. Place images in the WebServer\\Images\\Icons folder;", + "updated": 1609852315978 + }, + { + "style": "Text", + "text": "3. In the configuration of the module, use the name as is (e.g.: \"icon\": \"image-name\")", + "updated": 1609852322876 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/plotter-panel.json b/Projects/Superalgos/Schemas/Docs-Nodes/plotter-panel.json new file mode 100644 index 000000000..44ed30d2e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/plotter-panel.json @@ -0,0 +1,26 @@ +{ + "type": "Plotter Panel", + "definition": { + "text": "A plotter panel usually shows numerical representations of data over the charts on a small window or panel. The plotter panel node features definitions to make that possible." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Beyond the graphic representation of data over the charts, plotters may also feature a data panel, that is, a numerical representation of the data showing the exact figures corresponding to the column or period that is in focus (the point of the charts where the mouse pointer is at any point)." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609932499869 + }, + { + "style": "Title", + "text": "Plotter Panel Configuration", + "updated": 1609932508408 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/plotter.json b/Projects/Superalgos/Schemas/Docs-Nodes/plotter.json new file mode 100644 index 000000000..9fca57ca6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/plotter.json @@ -0,0 +1,50 @@ +{ + "type": "Plotter", + "definition": { + "text": "A plotter is a device used to produce a graphic representation of datasets generated by bots." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Plotters usually have a one-to-one relationship with bots, as they are often created as a customized solution. However, in practice, there is no constraint to creating any number of plotters for a single bot or a single plotter for multiple bots." + }, + { + "style": "Text", + "text": "The overall workflow of a plotter, while reading a dataset, consists in:" + }, + { + "style": "List", + "text": "Applying a set of rules to identify certain data points;" + }, + { + "style": "List", + "text": "Use those points to form lines and polygons;" + }, + { + "style": "List", + "text": "Apply graphical styles to those lines and polygons." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Plotter Configuration", + "updated": 1609790186907 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609790191953 + }, + { + "style": "List", + "text": "codeName is the name of the plotter as it is used within the bot's code." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/plugin-data-mines.json b/Projects/Superalgos/Schemas/Docs-Nodes/plugin-data-mines.json new file mode 100644 index 000000000..9ec51f033 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/plugin-data-mines.json @@ -0,0 +1,12 @@ +{ + "type": "Plugin Data Mines", + "definition": { + "text": "The plugin data mines node features the definitions of data mines to be included as plugins in the current workspace." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Configuring" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/plugin-file-position.json b/Projects/Superalgos/Schemas/Docs-Nodes/plugin-file-position.json new file mode 100644 index 000000000..ffd6bb918 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/plugin-file-position.json @@ -0,0 +1,20 @@ +{ + "type": "Plugin File Position", + "definition": { + "text": "The position of the plugin file position node determines the position in the workspace on which the plugin hierarchy is placed." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "To define where the hierarchy defined in a plugin file is positioned in the workspace, move the plugin file position node to the desired position in the workspace, and pin the node. Then, collapse the plugin file node so that the plugin file position node is no longer visible." + }, + { + "style": "Block", + "text": "Configuring" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/plugin-file.json b/Projects/Superalgos/Schemas/Docs-Nodes/plugin-file.json new file mode 100644 index 000000000..151b27bcf --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/plugin-file.json @@ -0,0 +1,45 @@ +{ + "type": "Plugin File", + "definition": { + "text": "A plugin file is the JSON file that constitutes the plugin. In the context of the plugins hierarchy, a plugin is the definition of a hierarchy." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Plugin files distributed with the system are stored in the corresponding folders on the following path:", + "updated": 1609869641569 + }, + { + "style": "Json", + "text": "\\Projects\\[ProjectName]\\Plugins\\", + "updated": 1609869650031 + }, + { + "style": "Text", + "text": "To create a plugin and make it available to the system you need to:" + }, + { + "style": "List", + "text": "Take a backup of the hierarchy.", + "updated": 1609869665918 + }, + { + "style": "List", + "text": "Place it in the proper folder of the path.", + "updated": 1609869675048 + }, + { + "style": "Important", + "text": "Hierarchies included in the workspace as plugins are not saved at the workspace level. As such, changes made in those hierarchies do not persist. If you wish to modify a plugin and keep working with the modified version in the future, you must either clone or backup the plugin and work on the resulting copy instead.", + "updated": 1609869687063 + }, + { + "style": "Block", + "text": "Configuring" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/plugin-project.json b/Projects/Superalgos/Schemas/Docs-Nodes/plugin-project.json new file mode 100644 index 000000000..bb13cbaab --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/plugin-project.json @@ -0,0 +1,27 @@ +{ + "type": "Plugin Project", + "definition": { + "text": "In the context of a multi-project platform, the plugin project node represents the project to which the defined plugins correspond to." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Plugin Project Configuration", + "updated": 1609869540204 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609869554268 + }, + { + "style": "List", + "text": "codeName is the name of the Project, as implemented in the code.", + "updated": 1609869592120 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/plugin-super-scripts.json b/Projects/Superalgos/Schemas/Docs-Nodes/plugin-super-scripts.json new file mode 100644 index 000000000..01105e911 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/plugin-super-scripts.json @@ -0,0 +1,20 @@ +{ + "type": "Plugin Super Scripts", + "definition": { + "text": "The plugin super scripts node features the definitions of super scripts to be included as plugins in the current workspace." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Configuring Plugin Super Scripts" + }, + { + "style": "Text", + "text": "Select Configure on the menu to access the configuration." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/plugin-trading-engines.json b/Projects/Superalgos/Schemas/Docs-Nodes/plugin-trading-engines.json new file mode 100644 index 000000000..f7f1a44ba --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/plugin-trading-engines.json @@ -0,0 +1,12 @@ +{ + "type": "Plugin Trading Engines", + "definition": { + "text": "The plugin data mines node features the definitions of data mines to be included as plugins in the current workspace." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/plugin-trading-mines.json b/Projects/Superalgos/Schemas/Docs-Nodes/plugin-trading-mines.json new file mode 100644 index 000000000..a2d53ae32 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/plugin-trading-mines.json @@ -0,0 +1,12 @@ +{ + "type": "Plugin Trading Mines", + "definition": { + "text": "The plugin trading mines node features the definitions of trading mines to be included as plugins in the current workspace." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/plugin-trading-systems.json b/Projects/Superalgos/Schemas/Docs-Nodes/plugin-trading-systems.json new file mode 100644 index 000000000..ce0fbb4e0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/plugin-trading-systems.json @@ -0,0 +1,12 @@ +{ + "type": "Plugin Trading Systems", + "definition": { + "text": "The plugin data mines node features the definitions of data mines to be included as plugins in the current workspace." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/plugin-tutorials.json b/Projects/Superalgos/Schemas/Docs-Nodes/plugin-tutorials.json new file mode 100644 index 000000000..3027ac6f7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/plugin-tutorials.json @@ -0,0 +1,28 @@ +{ + "type": "Plugin Tutorials", + "definition": { + "text": "The plugin tutorials node features the definitions of tutorials to be included as plugins in the current workspace." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Important", + "text": "Tutorials included in the workspace as plugins do not keep track of users' progress, thus, may not return to the last step using the Resume button on the menu." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Configuring Plugin Tutorials" + }, + { + "style": "Text", + "text": "Select Configure on the menu to access the configuration." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/plugins.json b/Projects/Superalgos/Schemas/Docs-Nodes/plugins.json new file mode 100644 index 000000000..4d16cb8dd --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/plugins.json @@ -0,0 +1,21 @@ +{ + "type": "Plugins", + "definition": { + "text": "The plugins hierarchy defines which plugins are to be included in the current workspace. In the context of this hierarchy, plugins are JSON files featuring the description of a hierarchy such as a data mine, trading mine, trading engine, or trading system." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In the context of a community-driven project, a plugin is a device that serves to distribute community-generated intelligence. The project distributes several plugins contributed by the community." + }, + { + "style": "Important", + "text": "Hierarchies included in the workspace as plugins are not saved at the workspace level. As such, changes made in those hierarchies do not persist. If you wish to modify a plugin and keep working with the modified version in the future, you must either clone or backup the plugin and work on the resulting copy instead.", + "updated": 1609866745275 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/point-formula.json b/Projects/Superalgos/Schemas/Docs-Nodes/point-formula.json new file mode 100644 index 000000000..19af0f90e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/point-formula.json @@ -0,0 +1,129 @@ +{ + "type": "Point Formula", + "definition": { + "text": "A point formula is a node used to input the [x,y] coordinates of a point." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "To represent some form of variation of the price or a price derivative over time, a typical point formula consists of the following two coordinates: x = datetime and y = rate." + }, + { + "style": "Title", + "text": "For example", + "updated": 1609852495437 + }, + { + "style": "Subtitle", + "text": "Point SMA 20 Begin " + }, + { + "style": "Javascript", + "text": "x = record.begin\ny = record.previous.sma20", + "updated": 1609852623919 + }, + { + "style": "Text", + "text": "The example above shows the definition of the first of two points necessary to draw the segment of the 20-periods SMA curve for any particular period or candle. In this case, x = record.begin is the starting datetime of the period and y = record.previous.sma20 is the rate of the 20-periods SMA of the previous period." + }, + { + "style": "Note", + "text": "The above variables are constructed with information originating at the product definition that references the corresponding plotter module." + }, + { + "style": "Text", + "text": "To complete the line segment corresponding to a single period, the closing datetime of the period and the closing rate for the 20-periods SMA are required:" + }, + { + "style": "Subtitle", + "text": "Point SMA 20 End " + }, + { + "style": "Javascript", + "text": "x = record.end\ny = record.sma20", + "updated": 1609852823376 + }, + { + "style": "Text", + "text": "The above system works very well for plotting all sorts of information over the candles, on the charts." + }, + { + "style": "Text", + "text": "An oscillator like RSI too needs the definition of the starting and ending datetime of the period as the value for the x-axis. However, the value for axis y fits a different scale." + }, + { + "style": "Text", + "text": "Anyway, the points definition is just as straight forward, for example:" + }, + { + "style": "Subtitle", + "text": "Point RSI Begin " + }, + { + "style": "Javascript", + "text": "x = record.begin\ny = record.previous.value", + "updated": 1609852852377 + }, + { + "style": "Subtitle", + "text": "Point RSI End " + }, + { + "style": "Javascript", + "text": "x = record.end\ny = record.value\n", + "updated": 1609853081776 + }, + { + "style": "Text", + "text": "Points do not necessarily need to refer to values on the dataset produced by the corresponding data product. For example, absolute values for the y-axis may be used to describe fixed graphical elements, for instance, a horizontal line, or a box." + }, + { + "style": "Subtitle", + "text": "Point Begin 20 " + }, + { + "style": "Javascript", + "text": "x = record.begin\ny = 20", + "updated": 1609852867401 + }, + { + "style": "Subtitle", + "text": "Point End 20 " + }, + { + "style": "Javascript", + "text": "x = record.end\ny = 20", + "updated": 1609852965567 + }, + { + "style": "Subtitle", + "text": "Point Begin 30 " + }, + { + "style": "Javascript", + "text": "x = record.begin\ny = 30\n", + "updated": 1609853018216 + }, + { + "style": "Subtitle", + "text": "Point End 30 " + }, + { + "style": "Javascript", + "text": "x = record.end\ny = 30\n", + "updated": 1609853034626 + }, + { + "style": "Text", + "text": "The above four points are used to paint the background of the 20 to 30 value range of the RSI chart. The first two points are also used to draw the dotted line signaling the 20-value mark, and the last two are used for the dotted line indicating the 30-value mark." + }, + { + "style": "Note", + "text": "The reason from separating the definition of points from the definition of polygons is that any point may be used by one or more polygons." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/point.json b/Projects/Superalgos/Schemas/Docs-Nodes/point.json new file mode 100644 index 000000000..286b85936 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/point.json @@ -0,0 +1,21 @@ +{ + "type": "Point", + "definition": { + "text": "A point is a definition of an [x,y] coordinate. The value [x] usually represents a datetime. The value [y] may refer to a price or some other concept." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "These coordinate points are used to define polygons. Values for [x,y]coordinates are entered with a point formula." + }, + { + "style": "Success", + "text": "Give points a significant name so that it is easier to identify them at the time of establishing references with polygon vertices.", + "updated": 1609852471920 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/polygon-body.json b/Projects/Superalgos/Schemas/Docs-Nodes/polygon-body.json new file mode 100644 index 000000000..6ea5367dc --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/polygon-body.json @@ -0,0 +1,16 @@ +{ + "type": "Polygon Body", + "definition": { + "text": "A polygon body is the fill of a shape made out of at least three vertices." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "A polygon body needs at least three vertices to be defined. A body serves to create a fill for the outlines of any sort of polygon, either closed or open, by giving it a style." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/polygon-border.json b/Projects/Superalgos/Schemas/Docs-Nodes/polygon-border.json new file mode 100644 index 000000000..50d96cadf --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/polygon-border.json @@ -0,0 +1,16 @@ +{ + "type": "Polygon Border", + "definition": { + "text": "A polygon border is a shape defined by at least two vertices used to draw lines or to apply a style to the stroke of a closed shape." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "A polygon border needs at least two vertices to be defined. A border serves to create a stroke for the outlines of any sort of polygon, either closed or open, by giving it a style." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/polygon-condition.json b/Projects/Superalgos/Schemas/Docs-Nodes/polygon-condition.json new file mode 100644 index 000000000..776ebf1e9 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/polygon-condition.json @@ -0,0 +1,30 @@ +{ + "type": "Polygon Condition", + "definition": { + "text": "A polygon condition is a rule that allows establishing when a polygon shall be rendered and when not." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The node is optional. When the node is not present in the definition of the polygon or when the condition validates true, the polygon is rendered on screen. When the condition validates false the polygon is not rendered. As such, the node allows dynamically switching the rendering of the corresponding polygon on and off." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Polygon Condition Configuration", + "updated": 1609853769074 + }, + { + "style": "Text", + "text": "Polygon Conditions work pretty much like conditions used on trading systems. The main difference is that the variables available are solely those provided by the bot product definition that reference the corresponding plotter module.", + "updated": 1609853810664 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/polygon-vertex.json b/Projects/Superalgos/Schemas/Docs-Nodes/polygon-vertex.json new file mode 100644 index 000000000..97086efa3 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/polygon-vertex.json @@ -0,0 +1,24 @@ +{ + "type": "Polygon Vertex", + "definition": { + "text": "A polygon vertex is a reference to a point defined in the chart points, constituting a specific coordinate to be used as a vertex of a shape." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Vertices are the main element defining polygons. Once created, each vertex must establish a reference to the corresponding point in the charts point." + }, + { + "style": "Text", + "text": "Drawing curves requires two vertices. Painting areas, such as the background of a chart, likely requires four vertices. Note that vertices are not capable of featuring a style. Instead, styles are applied to polygon borders and polygon bodies." + }, + { + "style": "Important", + "text": "Bear in mind that the order in which vertices in a polygon are arranged around the parent polygon node when their rotational symmetry property is selected, is the order in which the plotter computes the points. This means that points need to be in the correct order, for example, when drawing a box. Imagine drawing a box on a piece of paper without lifting the pencil... that is how the plotter does it." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/polygon.json b/Projects/Superalgos/Schemas/Docs-Nodes/polygon.json new file mode 100644 index 000000000..fcde87f1b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/polygon.json @@ -0,0 +1,20 @@ +{ + "type": "Polygon", + "definition": { + "text": "A polygon features definitions that makeup shapes and their styles." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Polygons are defined by two or more vertices, which map points in a charts point. The graphic representation of polygons originates in styles applied to either or both polygon bodies and polygon borders." + }, + { + "style": "Note", + "text": "The order in which polygons are ordered around the parent shapes node determines the order in which they are drawn on the screen. In cases on which polygons intersect, those drawn last are drawn on top of those drawn first." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/position-base-asset.json b/Projects/Superalgos/Schemas/Docs-Nodes/position-base-asset.json new file mode 100644 index 000000000..234c99ce4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/position-base-asset.json @@ -0,0 +1,16 @@ +{ + "type": "Position Base Asset", + "definition": { + "text": "The position base asset node keeps track of the evolution of variables related to the base asset throughout the position." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Note", + "text": "Learn more about how accounts for the base asset and the quoted asset are kept in the base asset and quoted asset page on the trading engine section of the documentation." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/position-counters.json b/Projects/Superalgos/Schemas/Docs-Nodes/position-counters.json new file mode 100644 index 000000000..663e83d49 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/position-counters.json @@ -0,0 +1,12 @@ +{ + "type": "Position Counters", + "definition": { + "text": "The position counters node features counters of instances of objects that come to exist during the duration of the position." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/position-quoted-asset.json b/Projects/Superalgos/Schemas/Docs-Nodes/position-quoted-asset.json new file mode 100644 index 000000000..ac9bd6001 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/position-quoted-asset.json @@ -0,0 +1,16 @@ +{ + "type": "Position Quoted Asset", + "definition": { + "text": "The position quoted asset node keeps track of the evolution of variables related to the quoted asset throughout the position." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Note", + "text": "Learn more about how accounts for the base asset and the quoted asset are kept in the base asset and quoted asset page on the trading engine section of the documentation." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/position-statistics.json b/Projects/Superalgos/Schemas/Docs-Nodes/position-statistics.json new file mode 100644 index 000000000..2b285e449 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/position-statistics.json @@ -0,0 +1,12 @@ +{ + "type": "Position Statistics", + "definition": { + "text": "Position statistics keeps track of several metrics in the context of the position." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/position.json b/Projects/Superalgos/Schemas/Docs-Nodes/position.json new file mode 100644 index 000000000..63d55519d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/position.json @@ -0,0 +1,44 @@ +{ + "type": "Position", + "definition": { + "text": "Position is the section of the data structure that keeps track of information within the scope of each position, and during the time a position is open." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The position node is available both in the current context and the last context, that is, you may retrieve information of the position that was last opened or the one currently open." + }, + { + "style": "Text", + "text": "A position is open from the instant the take position event is triggered until the instant the close stage is closed. Therefore, this section of the data structure features information spaning those periods only." + }, + { + "style": "Text", + "text": "In this section of the hierarchy, you have access to:" + }, + { + "style": "List", + "text": " balances and position performance metrics denominated in both the base and quoted assets;" + }, + { + "style": "List", + "text": "counters, such as the number of periods the position has been open;" + }, + { + "style": "List", + "text": "statistics, such as performance metrics consolidating both assets, or user-defined statistics;" + }, + { + "style": "List", + "text": "the distance to certain events, such as the number of candles to the last take position event, or the last create order event;" + }, + { + "style": "List", + "text": "rates describing each candle in the episode, such as the open, close, min and max rates;" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/positions.json b/Projects/Superalgos/Schemas/Docs-Nodes/positions.json new file mode 100644 index 000000000..29364f599 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/positions.json @@ -0,0 +1,36 @@ +{ + "type": "Positions", + "definition": { + "text": "Positions counts the number of times positions have been opened, in the context of the parent node." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Positions Configuration", + "updated": 1609924961700 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/procedure-initialization.json b/Projects/Superalgos/Schemas/Docs-Nodes/procedure-initialization.json new file mode 100644 index 000000000..df4c77f34 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/procedure-initialization.json @@ -0,0 +1,21 @@ +{ + "type": "Procedure Initialization", + "definition": { + "text": "The procedure initialization is used to initialize variables used by the procedure loop." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "This is an example of a procedure loop code snippet, in particular, the code that initializes the array used in the calculation of the Popular SMAs product of the Simple Moving Average (SMA) indicator." + }, + { + "style": "Javascript", + "text": "/ Initialization Code. /\nvariable.last200 = []", + "updated": 1609789338326 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/procedure-javascript-code.json b/Projects/Superalgos/Schemas/Docs-Nodes/procedure-javascript-code.json new file mode 100644 index 000000000..1c76c451b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/procedure-javascript-code.json @@ -0,0 +1,19 @@ +{ + "type": "Procedure Javascript Code", + "definition": { + "text": "The Procedure JavaScript code node may hold any snippet of valid JavaScript.", + "updated": 1609789511058 + }, + "paragraphs": [ + { + "style": "Text", + "text": "The system allows developers great flexibility as all valid JavaScript code is allowed.", + "updated": 1609789473533 + }, + { + "style": "Important", + "text": "Until a robust JavaScript editor is implemented on the UI, it is recommended to write code on an external editor and paste it in the UI code bubble to ensure consistency.", + "updated": 1609789526505 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/procedure-loop.json b/Projects/Superalgos/Schemas/Docs-Nodes/procedure-loop.json new file mode 100644 index 000000000..7c7c5cd3f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/procedure-loop.json @@ -0,0 +1,12 @@ +{ + "type": "Procedure Loop", + "definition": { + "text": "The procedure loop holds the JavaScript code that reads an input, processes the information, and generates an output recursively." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/process-date.json b/Projects/Superalgos/Schemas/Docs-Nodes/process-date.json new file mode 100644 index 000000000..dd03c88c7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/process-date.json @@ -0,0 +1,32 @@ +{ + "type": "Process Date", + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609880259634 + }, + { + "style": "Title", + "text": "Process Date Configuration", + "updated": 1609880272567 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609880279024 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609880294189 + } + ], + "definition": { + "text": "Right click to edit this text and replace it with a definition / summary for this page. ESC to exit edit mode." + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/process-definition.json b/Projects/Superalgos/Schemas/Docs-Nodes/process-definition.json new file mode 100644 index 000000000..2f0417bfa --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/process-definition.json @@ -0,0 +1,46 @@ +{ + "type": "Process Definition", + "definition": { + "text": "The process definition node groups all definitions required for a process to function. The Multi-Period-Market Process deals with time frames of one hour and above. The Multi-Period-Daily Process deals with time frames of 45 minutes and below." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "As hinted above, most bots—in particular indicators—have two different processes. The reason is that different data structures need to be handled in different manners. The Multi-Period-Daily process handles daily files, while the Multi-Period-Market process handles market files." + }, + { + "style": "Text", + "text": "The Multi-Period-Market process deals with time frames of one hour and above. Because these time frames produce relatively small numbers of records, the process builds one single file per time frame spanning the whole market history—hence the name Multi-Period-Market." + }, + { + "style": "Text", + "text": "On the other hand, the Multi-Period-Daily process deals with time frames below one hour. These time frames produce huge numbers of records, therefore, the corresponding data must be fragmented in multiple files. The Multi-Period-Daily process builds one file per day for each time frame—hence the name Multi-Period-Daily." + }, + { + "style": "Note", + "text": "The way in which datasets are structured by each of the processes is determined by the corresponding dataset definitions." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Process Definition Configuration", + "updated": 1609786986097 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609787034890 + }, + { + "style": "List", + "text": "codeName is the name of the process as used within the code of the system." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/process-dependencies.json b/Projects/Superalgos/Schemas/Docs-Nodes/process-dependencies.json new file mode 100644 index 000000000..50a01e0a4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/process-dependencies.json @@ -0,0 +1,16 @@ +{ + "type": "Process Dependencies", + "definition": { + "text": "Process dependencies are references to various data structures on which the process depends to function." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "While processes run autonomously, most processes participate in a value-adding chain by which a process produces a data product that other processes may consume as an input to be processed further. This means that bots—while autonomous in their particular jobs—do depend both on other bots and on the data other bots produce." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/process-output.json b/Projects/Superalgos/Schemas/Docs-Nodes/process-output.json new file mode 100644 index 000000000..f0ddf12aa --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/process-output.json @@ -0,0 +1,12 @@ +{ + "type": "Process Output", + "definition": { + "text": "The process output groups the definitions of which datasets are impacted by the process, that is, which datasets the process builds or takes a part in building." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/product-definition-folder.json b/Projects/Superalgos/Schemas/Docs-Nodes/product-definition-folder.json new file mode 100644 index 000000000..b2049e8ab --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/product-definition-folder.json @@ -0,0 +1,20 @@ +{ + "type": "Product Definition Folder", + "definition": { + "text": "A product definition folder is an organizational device used to create arrangements of product definitions, particularly useful when the bot has many products." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In cases in which a single bot has many different products, product definitions folders may help organize those products, making their management easier. Folders may be nested like folders in the file system." + }, + { + "style": "Text", + "text": "The use of product definition folders is optional, as product definitions may also exist outside of folders." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/product-definition.json b/Projects/Superalgos/Schemas/Docs-Nodes/product-definition.json new file mode 100644 index 000000000..dbd818783 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/product-definition.json @@ -0,0 +1,42 @@ +{ + "type": "Product Definition", + "definition": { + "text": "The product definition node holds all definitions that make up a product, including how the product is calculated and the datasets the product is comprised of." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "A bot may feature multiple products, thus, there may be multiple product definitions. Three main aspects need to be defined in terms of products: the characteristics of the dataset, the composition of each record, and the way records are calculated." + }, + { + "style": "Note", + "text": "A product definition usually references a plotter module, which provides a graphic representation of the underlying dataset" + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Product Definition Configuration", + "updated": 1609788267834 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609788279998 + }, + { + "style": "List", + "text": "codeName is the name of the product as it is used within the bot's code." + }, + { + "style": "List", + "text": "pluralVariableName is the plural form of the variable." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/production-trading-tasks.json b/Projects/Superalgos/Schemas/Docs-Nodes/production-trading-tasks.json new file mode 100644 index 000000000..e8c61a4d1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/production-trading-tasks.json @@ -0,0 +1,45 @@ +{ + "type": "Production Trading Tasks", + "paragraphs": [ + { + "style": "Block", + "text": "Content", + "updated": 1610106726574 + }, + { + "style": "Text", + "text": "Superalgos aims to provide a flexible and robust trading bots deployment toolbox." + }, + { + "style": "Text", + "text": "With Superalgos, you may deploy as many trading bots as you wish and have them running on a single computer or in as many machines as you wish, in a Trading Farm type of setup. To help with the management of large numbers of live trading sessions, the system helps you with sorting tasks by exchange, market, and trading mine.", + "updated": 1609666769136 + }, + { + "style": "Text", + "text": "The production environment works pretty much in the same way as the testing environment, save for two important differences:" + }, + { + "style": "List", + "text": "The production environment runs forward testing and live trading sessions, instead of backtesting and paper trading sessions." + }, + { + "style": "List", + "text": "These two types of sessions involve monetary transactions at the exchange, thus require the set up of a key reference to authenticate your account with the exchange." + }, + { + "style": "Note", + "text": "If you are familiar with Testing Trading Tasks, there isn’t much more to learn to understand Production Trading Tasks. If you are not familiar with either, please refer to the Testing Trading Tasks Section page for the details.", + "updated": 1610111338574 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Deleting Node Warning", + "updated": 1610122740064 + } + ], + "definition": { + "text": "The Production Trading Tasks node organizes trading sessions involving live trading.", + "updated": 1609666696048 + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/profit-loss.json b/Projects/Superalgos/Schemas/Docs-Nodes/profit-loss.json new file mode 100644 index 000000000..80f21bb3d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/profit-loss.json @@ -0,0 +1,102 @@ +{ + "type": "Profit Loss", + "definition": { + "text": "Profit loss is the difference between the balance at the end and the balance at the beginning of a certain period, given by the context." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In the context of the base asset or the quoted asset, the calculation is done by subtracting the balances in the corresponding assets, using the variable appropriate to the larger context (i.e.: episode, position, etc.)." + }, + { + "style": "Text", + "text": "In general terms:" + }, + { + "style": "Javascript", + "text": "base asset profit loss = base asset end balance - base asset begin balance" + }, + { + "style": "Javascript", + "text": "quoted asset profit loss = quoted asset end balance - quoted asset begin balance" + }, + { + "style": "Text", + "text": "In the case of the Episode Base Asset and Episode Quoted Asset:", + "updated": 1609880629828 + }, + { + "style": "Javascript", + "text": "tradingEngine.current.episode.episodeBaseAsset.profitLoss.value =\n tradingEngine.current.episode.episodeBaseAsset.balance.value -\n sessionParameters.sessionBaseAsset.config.initialBalance\n \ntradingEngine.current.episode.episodeQuotedAsset.profitLoss.value =\n tradingEngine.current.episode.episodeQuotedAsset.balance.value -\n sessionParameters.sessionQuotedAsset.config.initialBalance", + "updated": 1609880593226 + }, + { + "style": "Text", + "text": " " + }, + { + "style": "Text", + "text": "In the case of the Position Base Asset and Position Quoted Asset:", + "updated": 1609880656759 + }, + { + "style": "Javascript", + "text": "tradingEngine.current.position.positionBaseAsset.profitLoss.value =\n tradingEngine.current.episode.episodeBaseAsset.balance.value -\n tradingEngine.current.position.positionBaseAsset.beginBalance\n \ntradingEngine.current.position.positionQuotedAsset.profitLoss.value =\n tradingEngine.current.episode.episodeQuotedAsset.balance.value -\n tradingEngine.current.position.positionQuotedAsset.beginBalance", + "updated": 1609880668611 + }, + { + "style": "Text", + "text": " " + }, + { + "style": "Text", + "text": "In the context of the episode statistics or the position statistics, the calculation is done consolidating the profits of both assets." + }, + { + "style": "Note", + "text": "When the context does not refer to either of the assets in particular, then both assets are taken into account in the calculation." + }, + { + "style": "Text", + "text": "In the context of the episode statistics:" + }, + { + "style": "Javascript", + "text": "tradingEngine.current.episode.episodeStatistics.profitLoss.value =\n tradingEngine.current.episode.episodeBaseAsset.profitLoss.value * \n tradingEngine.current.episode.candle.close.value +\n tradingEngine.current.episode.episodeQuotedAsset.profitLoss.value", + "updated": 1609880717964 + }, + { + "style": "Text", + "text": "In the context of the position statistics:" + }, + { + "style": "Javascript", + "text": "tradingEngine.current.position.positionStatistics.profitLoss.value =\n tradingEngine.current.episode.episodeBaseAsset.profitLoss.value * \n tradingEngine.current.position.endRate.value +\n tradingEngine.current.episode.episodeQuotedAsset.profitLoss.value", + "updated": 1609880790493 + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609880799536 + }, + { + "style": "Title", + "text": "Profit Loss Configuration", + "updated": 1609880814504 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609880843742 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609880851919 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/project-dashboards.json b/Projects/Superalgos/Schemas/Docs-Nodes/project-dashboards.json new file mode 100644 index 000000000..4cdd69f2b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/project-dashboards.json @@ -0,0 +1,13 @@ +{ + "type": "Project Dashboards", + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ], + "definition": { + "text": "The Project Dashboards node groups dashboards by project, acting as an organizational device.", + "updated": 1610135408616 + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/project-data-products.json b/Projects/Superalgos/Schemas/Docs-Nodes/project-data-products.json new file mode 100644 index 000000000..a9ed4370f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/project-data-products.json @@ -0,0 +1,14 @@ +{ + "type": "Project Data Products", + "paragraphs": [ + { + "style": "Note", + "text": "Superalgos organizes the data structures in the Network by Project to ensure scalability.", + "updated": 1609667425394 + } + ], + "definition": { + "text": "The Project Data Products node is an organizational device grouping all Bot Products corresponding to the same Project.", + "updated": 1609667851639 + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/project-data-tasks.json b/Projects/Superalgos/Schemas/Docs-Nodes/project-data-tasks.json new file mode 100644 index 000000000..702fd89ec --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/project-data-tasks.json @@ -0,0 +1,14 @@ +{ + "type": "Project Data Tasks", + "paragraphs": [ + { + "style": "Note", + "text": "Superalgos organizes the data structures in the Network by Project to ensure scalability.", + "updated": 1609667592082 + } + ], + "definition": { + "text": "The Project Data Tasks node is an organizational device grouping all Data Tasks corresponding to the same Project.", + "updated": 1609667834901 + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/project-definition.json b/Projects/Superalgos/Schemas/Docs-Nodes/project-definition.json new file mode 100644 index 000000000..74af96e13 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/project-definition.json @@ -0,0 +1,12 @@ +{ + "type": "Project Definition", + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ], + "definition": { + "text": "Right click to edit this text and replace it with a definition / summary for this page. ESC to exit edit mode." + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/project-learning-products.json b/Projects/Superalgos/Schemas/Docs-Nodes/project-learning-products.json new file mode 100644 index 000000000..8d67a6314 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/project-learning-products.json @@ -0,0 +1,14 @@ +{ + "type": "Project Learning Products", + "paragraphs": [ + { + "style": "Note", + "text": "Superalgos organizes the data structures in the Network by Project to ensure scalability.", + "updated": 1609667577916 + } + ], + "definition": { + "text": "The Project Learning Products node is an organizational device grouping all Learning Products corresponding to the same Project.", + "updated": 1609668175533 + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/project-learning-tasks.json b/Projects/Superalgos/Schemas/Docs-Nodes/project-learning-tasks.json new file mode 100644 index 000000000..f9bb5ae67 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/project-learning-tasks.json @@ -0,0 +1,14 @@ +{ + "type": "Project Learning Tasks", + "paragraphs": [ + { + "style": "Important", + "text": "The infrastructure for Machine Learning algorithms is currently being implemented.", + "updated": 1609666515089 + } + ], + "definition": { + "text": "The Project Learning Tasks node is an organizational device grouping all Learning Tasks corresponding to the same Project.", + "updated": 1609667823768 + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/project-trading-products.json b/Projects/Superalgos/Schemas/Docs-Nodes/project-trading-products.json new file mode 100644 index 000000000..9c1990ac9 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/project-trading-products.json @@ -0,0 +1,14 @@ +{ + "type": "Project Trading Products", + "paragraphs": [ + { + "style": "Note", + "text": "Superalgos organizes the data structures in the Network by Project to ensure scalability.", + "updated": 1609667560990 + } + ], + "definition": { + "text": "The Project Trading Products node is an organizational device grouping all Bot Products corresponding to the same project.", + "updated": 1609668000292 + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/project-trading-tasks.json b/Projects/Superalgos/Schemas/Docs-Nodes/project-trading-tasks.json new file mode 100644 index 000000000..577fd79ac --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/project-trading-tasks.json @@ -0,0 +1,18 @@ +{ + "type": "Project Trading Tasks", + "paragraphs": [ + { + "style": "Block", + "text": "Content", + "updated": 1610099516571 + }, + { + "style": "Note", + "text": "Superalgos organizes the data structures in the Network by Project to ensure scalability." + } + ], + "definition": { + "text": "The Project Trading Tasks node is an organizational device grouping all Trading Tasks corresponding to the same Project.", + "updated": 1609667811768 + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/rate-scale.json b/Projects/Superalgos/Schemas/Docs-Nodes/rate-scale.json new file mode 100644 index 000000000..c0e1c0206 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/rate-scale.json @@ -0,0 +1,173 @@ +{ + "type": "Rate Scale", + "definition": { + "text": "The rate scale controls the scale of the vertical axis, that is, the scale of the quoted asset, either of the time machine or of the timeline chart, depending on where the node is located." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Rate scales may exist both at the level of a time machine and at the level of a timeline chart, each affecting the corresponding concept." + }, + { + "style": "Text", + "text": "When set at the level of the time machine, the scale settings affect all charts within the time machine. When set at the level of the timeline chart, the settings override the rate scale at the time machine level. ", + "updated": 1610136729523 + }, + { + "style": "Success", + "text": "This allows having multiple charts on the same time machine, each with a different rate scale. This is the way to set up indicators the are designed for a scale different than that of the rate of the assets in the market. For example, the RSI and Percentage Bandwidth indicators oscillate between 0 and 100.", + "updated": 1610136956037 + }, + { + "style": "Title", + "text": "Scale Minimum and Maximum Values" + }, + { + "style": "Text", + "text": "A rate scale has a minimum and a maximum value. The minimum value is the value at bottom of the chart. The maximum, is the value at the top of the chart." + }, + { + "style": "Text", + "text": "In technical terms, the minimum and maximum scale values are constantly changing as, whenever you pan across the charts, you are directly affecting the minimum and maximum scale values. That said, the actual scale may change dynamically or not, depending on the scale-automation settings." + }, + { + "style": "Title", + "text": "Automatic Scale" + }, + { + "style": "Text", + "text": "The system features an automatic adjustment of the scale, which is turned on by default in our shared workspaces. The scale may be automatic in its minimum value, in its maximum value, or both." + }, + { + "style": "Text", + "text": "When the scale is automatic in the minimum value, the scale is adjusted so that no piece of information in the span of the chart ever remains below the bottom of the chart. As a result, the lowest data point aligns with the bottom of the chart." + }, + { + "style": "Text", + "text": "When the scale is automatic in the maximum value, the scale is adjusted so that no piece of information in the span of the chart ever remains above the top of the chart. As a result, the highest data point aligns with the top of the chart." + }, + { + "style": "Text", + "text": "The scale may be automated on either, or both minimum and maximum values at the same time. In the later case, no data point in the span of the chart ever remains out of the visible area of the chart, as the lowest data point aligns with the bottom of the chart and the highest aligns with the top." + }, + { + "style": "Title", + "text": "Manual Scale" + }, + { + "style": "Text", + "text": "The system also features a manual mode. When in manual mode the scale does not change, even if the minimum and maximum values change while panning across a chart. This design feature allows comparing different periods using the same scale, which may be valuable in many cases." + }, + { + "style": "Title", + "text": "Scale Offset" + }, + { + "style": "Text", + "text": "The offset is a feature of the rate scale by which the scale may be shifted upwards or downwards. As a result, charts aligned on the vertical axis—synchronized in datetime by a shared time machine—may be put one above the other. In technical terms, what happens is that the scale is shifted upwards or downwards." + }, + { + "style": "Title", + "text": "Rate Scale at the Charts" + }, + { + "style": "Subtitle", + "text": "Automatic Scale", + "updated": 1609783271471 + }, + { + "style": "Text", + "text": "To change the automatic scale settings, place the mouse pointer over the corresponding time machine or timeline chart rate box, press the Shift key and slowly scroll the wheel of the mouse. The action cycles through different possible scale automation settings. Notice a tiny green triangle below and/or above the rate scale icon.", + "updated": 1609783256953 + }, + { + "style": "List", + "text": "A triangle pointing up means that the maximum value of the scale is automatic." + }, + { + "style": "List", + "text": "A triangle pointing down means that the minimum value of the scale is automatic." + }, + { + "style": "List", + "text": "Both triangles present at the same time means that both minimum and maximum values are automatic." + }, + { + "style": "List", + "text": "No triangle means that both minimum and maximum values are in manual mode." + }, + { + "style": "Subtitle", + "text": "Manual Scale", + "updated": 1609783276345 + }, + { + "style": "Text", + "text": "2. To adjust the scale, make sure either or both minimum and maximum values are in manual mode. Place the mouse pointer over the corresponding time machine or timeline chart rate box and scroll the wheel of the mouse. The scale will increase or decrease accordingly, depending on which values are set to manual." + }, + { + "style": "Text", + "text": "{% include image.html file='interface/rate-scale-01.gif' url='yes' max-width='100' caption='When the scale is set to manual, scrolling the mouse wheel on top of the rate scale box changes the scale.' %}" + }, + { + "style": "Text", + "text": "Notice that, while changing the scale, a number is displayed replacing the actual rate. This is a reference value of the scale, that may serve for comparison purposes, with scales in other charts." + }, + { + "style": "Note", + "text": "This action has no effect when both minimum and maximum values are set to automatic mode." + }, + { + "style": "Subtitle", + "text": "Scale Offset", + "updated": 1609783281780 + }, + { + "style": "Text", + "text": "3. To shift or offset a timeline chart on the vertical axis, place the mouse pointer on the rate box, left-click and drag upwards or downwards, as desired. The timeline chart will shift in the specified direction while the remaining charts stay in the same position." + }, + { + "style": "Text", + "text": "{% include image.html file='interface/rate-scale-02.gif' url='yes' max-width='100' caption='To control the offset between timeline charts, right-click on the rate box and drag upwards or downwards.' %}" + }, + { + "style": "Note", + "text": "Setting an offset in a timeline chart only makes sense in the context of a time machine with multiple charts. That is, if you are browsing a single chart, an offset behaves the same as moving the single chart up or down." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609783339189 + }, + { + "style": "Title", + "text": "Rate Scale Configuration", + "updated": 1609783329574 + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "List", + "text": "minValue is a numerical value that represents the value of the scale at the bottom of the chart.", + "updated": 1609783389883 + }, + { + "style": "List", + "text": "maxValue is a numerical value that represents the value of the scale at the top of the chart." + }, + { + "style": "List", + "text": "autoMinScale sets the mode of the scale for the minimum value; true sets the value to automatic, false sets the value to manual." + }, + { + "style": "List", + "text": "autoMaxScale sets the mode of the scale for the maximum value; true sets the value to automatic, false sets the value to manual." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/rate.json b/Projects/Superalgos/Schemas/Docs-Nodes/rate.json new file mode 100644 index 000000000..7a056148a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/rate.json @@ -0,0 +1,41 @@ +{ + "type": "Rate", + "definition": { + "text": "Rate is the rate at which the order is placed." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "By default, it is the rate at the close of the last candle at the moment the order is placed. All market orders have the default rate value." + }, + { + "style": "Text", + "text": "In the case of limit orders, it is the rate as specified by the formula under the order rate node. If no such definition exists, then limit orders use the default value as well." + }, + { + "style": "Text", + "text": "The rate is used by the system for all internal calculations affecting the accounts kept in both assets." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Rate Configuration", + "updated": 1609927144593 + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/record-definition.json b/Projects/Superalgos/Schemas/Docs-Nodes/record-definition.json new file mode 100644 index 000000000..997119933 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/record-definition.json @@ -0,0 +1,28 @@ +{ + "type": "Record Definition", + "definition": { + "text": "The record definition is where indicators define how many properties, what properties and in which order those properties will be made available in each record." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Bots store data in the form of arrays of records, in a minimized plain text file and the standard JSON format, although not as objects with named properties, but as arrays." + }, + { + "style": "Text", + "text": "The choice of plain text for storage of large volumes of information has benefits in terms of not requiring any sophisticated technology to store and serve the data (i.e.: no database is required)." + }, + { + "style": "Text", + "text": "Best practice indicates that there needs to be a balance between the amount of data that is stored and calculations that may be performed at runtime." + }, + { + "style": "Text", + "text": "Storing objects with named properties in the JSON format would be inappropriate as labels would repeat over and over, creating a ridiculous amount of unnecessary information. However, storing arrays in the JSON standard facilitates the handling of files in the context of JavaScript and Node.JS." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/record-formula.json b/Projects/Superalgos/Schemas/Docs-Nodes/record-formula.json new file mode 100644 index 000000000..77bdd496a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/record-formula.json @@ -0,0 +1,28 @@ +{ + "type": "Record Formula", + "definition": { + "text": "In the context of a record definition, formulas are used to assign a value to the property, usually in the form of a variable declared in the calculation or data building procedures.", + "updated": 1609788711861 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Formulas may use both the record and the variable objects made available by the calculations procedure and the data building procedure (see procedure loop).", + "updated": 1609788725463 + }, + { + "style": "Text", + "text": "A formula may act in slightly different ways depending on the isCaculated attribute in the record property configuration:" + }, + { + "style": "List", + "text": "When a property is calculated, the formula assigns to the property a value that is calculated in the Calculations Procedure. Even if the property is not stored in the dataset, it is made available as a calculated property to other bots that may have the dataset as input.", + "updated": 1609788822393 + }, + { + "style": "List", + "text": "When a property is not calculated or the attribute is not defined in the configuration, the formula is applied in the Data Building Procedure.", + "updated": 1609788849508 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/record-property.json b/Projects/Superalgos/Schemas/Docs-Nodes/record-property.json new file mode 100644 index 000000000..ef62b7236 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/record-property.json @@ -0,0 +1,51 @@ +{ + "type": "Record Property", + "definition": { + "text": "A record property is a piece of information that may be stored as part of the dataset or made available as a calculated property." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Records may have as many properties as required." + }, + { + "style": "Important", + "text": "The order in which record properties are defined around the parent record definition node is the order in which they are stored in the actual record." + }, + { + "style": "Success", + "text": "The first two records are usually the begin and end records, featuring the corresponding datetimes that indicate when the record starts and ends.", + "updated": 1609788556871 + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Record Property Configuration", + "updated": 1609788569963 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609788577195 + }, + { + "style": "List", + "text": "codeName is the name of the record as it is used in the bot's code." + }, + { + "style": "List", + "text": "isString determines if the field is a text string or if, in turn, is a numeric field. Dates are stored in the epoch format, which is numeric. The reason why this configuration is important is that fields that are strings need to be stored between “double quotes”." + }, + { + "style": "List", + "text": " isCalculated determines if the field is stored in the dataset or if, instead, is calculated at a later stage. A value true* means that the record is not stored. In the case isCaculated is not defined in the configuration, it is assumed to be false." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/record-values.json b/Projects/Superalgos/Schemas/Docs-Nodes/record-values.json new file mode 100644 index 000000000..8e973722b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/record-values.json @@ -0,0 +1,12 @@ +{ + "type": "Record Values", + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ], + "definition": { + "text": "Right click to edit this text and replace it with a definition / summary for this page. ESC to exit edit mode." + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/roi.json b/Projects/Superalgos/Schemas/Docs-Nodes/roi.json new file mode 100644 index 000000000..710b5f514 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/roi.json @@ -0,0 +1,32 @@ +{ + "type": "ROI", + "definition": { + "text": "ROI is a ratio that compares the profit loss with the cost of the investment, expressed as a percentage." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609880899578 + }, + { + "style": "Title", + "text": "ROI Configuration", + "updated": 1609880909911 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609880921940 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609880928583 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/scripts-library.json b/Projects/Superalgos/Schemas/Docs-Nodes/scripts-library.json new file mode 100644 index 000000000..03d8bdb02 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/scripts-library.json @@ -0,0 +1,16 @@ +{ + "type": "Scripts Library", + "definition": { + "text": "A script library is a collection of related scripts." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The script library node plays an organizational role, grouping masters scripts according to the criteria of the developer." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/sensor-bot-instance.json b/Projects/Superalgos/Schemas/Docs-Nodes/sensor-bot-instance.json new file mode 100644 index 000000000..547e2b933 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/sensor-bot-instance.json @@ -0,0 +1,53 @@ +{ + "type": "Sensor Bot Instance", + "definition": { + "text": "A sensor bot instance is a reference to a Sensor Bot as defined in a data mine. The instance of the bot runs the defined processes and generates the defined data products.", + "updated": 1609617856257 + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The sensor bot instance holds no definitions as to what the bot does. Instead, its process instance references a process definition in the corresponding data mine. That is how the sensor bot instance obtains the information regarding what it needs to do once it is run." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Sensor Bot Instance Configuration", + "updated": 1609613944104 + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "List", + "text": "startDate is the desired starting date of the data product the sensor bot instance builds, in the YYYY-MM-DD format. The sensor bot instance queries its data source for data starting on the configured startDate.", + "updated": 1609614002529 + }, + { + "style": "Text", + "text": " The actual date in which the dataset starts depends on external factors: A. The market may start at a later date. B. The exchange may limit how far in the past data may be retrieved. In both cases, the sensor bot automatically discovers the date closest to the desired starting date* that is possible to start with, and proceeds accordingly." + }, + { + "style": "Text", + "text": "In the case the startDate is changed after the sensor bot has started building a data product, either for an earlier or later date, the sensor re-evaluates the feasibility of starting at the new date. The actual date may or may not change; regardless, the sensor bot discards the existing data product and starts over from the newly discovered date. In other words, if the startDate is changed, the sensor bot starts over.", + "updated": 1609614011955 + }, + { + "style": "Note", + "text": "Notice that the above starts a chain reaction among all indicator bots that have a data dependency with the sensor bot's output dataset. Also, if the actual date ends up changing, all indicators that determine the starting date of the market by looking at the date discovered by the sensor bot have to discard their existing data products and start over from the new date.", + "updated": 1609614020847 + }, + { + "style": "Note", + "text": "You do not start or stop a sensor bot instance directly. Instead, you start or stop the corresponding task." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/sensor-bot.json b/Projects/Superalgos/Schemas/Docs-Nodes/sensor-bot.json new file mode 100644 index 000000000..5328bd5e7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/sensor-bot.json @@ -0,0 +1,34 @@ +{ + "type": "Sensor Bot", + "definition": { + "text": "A sensor bot is an algorithm that extracts raw data from external sources (i.e.: exchanges, Twitter, etc.) and stores it in a dataset that other bots may consume." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The sensor bot node holds all definitions required for a sensor bot to function. Definitions are split between the definition of processes and products. A sensor's processes is an algorithm that obtains data from a third pary and produces an output for other bots to consume. Part of that output is the data products the bot creates." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Sensor Bot Configuration", + "updated": 1609790137912 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609790143486 + }, + { + "style": "List", + "text": "codeName is the name of the bot as used within the code of the system." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/sensor-process-instance.json b/Projects/Superalgos/Schemas/Docs-Nodes/sensor-process-instance.json new file mode 100644 index 000000000..b6408b421 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/sensor-process-instance.json @@ -0,0 +1,24 @@ +{ + "type": "Sensor Process Instance", + "definition": { + "text": "A sensor process instance is a reference to the process definition of a sensor bot, as defined in a data mine." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "For example, in the case of an instance of the Masters data mine Exchange Raw Data sensor bot, the bot process instance references the Historic OHLCVs process definition. Once the reference is established, the sensor process instance adopts the name of the process definition it references." + }, + { + "style": "Block", + "text": "Running" + }, + { + "style": "Note", + "text": "You do not start or stop a sensor process instance directly. Instead, you start or stop the corresponding task." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/serial-number.json b/Projects/Superalgos/Schemas/Docs-Nodes/serial-number.json new file mode 100644 index 000000000..d3c0c42fe --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/serial-number.json @@ -0,0 +1,36 @@ +{ + "type": "Serial Number", + "definition": { + "text": "Serial number is a sequential number assigned to the object represented by the parent node at the moment it is opened." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Serial numbers start at 1 and increment by 1 with each intance of the object that is opened." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609873831169 + }, + { + "style": "Title", + "text": "Serial Number Configuration", + "updated": 1609873971454 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873980538 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609875415147 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/session-base-asset.json b/Projects/Superalgos/Schemas/Docs-Nodes/session-base-asset.json new file mode 100644 index 000000000..ab1df0c03 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/session-base-asset.json @@ -0,0 +1,42 @@ +{ + "type": "Session Base Asset", + "definition": { + "text": "The base asset is the asset whose price is determined by the market. It is usually the first asset in the pair, as listed by the exchange." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Among other things, the parameter allows defining an initial balance of the corresponding asset, which may be used for trading with the corresponding trading system and trading session. Please see the configuration." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Session Base Asset Configuration", + "updated": 1609674870532 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609674879122 + }, + { + "style": "List", + "text": "initialBalance is the amount of capital you wish to allocate to the trading system." + }, + { + "style": "List", + "text": "minimumBalance is the threshold of accummulated losses that switches off the session; when your overall balance (balanceAssetA + balanceAssetB) drops to this value, all trading stops; think of the minimumBalance as a general safety switch." + }, + { + "style": "List", + "text": "maximumBalance is a similar concept as with the minimumBalance but on the high side of the initialBalance." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/session-quoted-asset.json b/Projects/Superalgos/Schemas/Docs-Nodes/session-quoted-asset.json new file mode 100644 index 000000000..b7469863e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/session-quoted-asset.json @@ -0,0 +1,43 @@ +{ + "type": "Session Quoted Asset", + "definition": { + "text": "The quoted asset is the asset on which the price of the base asset is denominated in the market. It is usually the second asset in the pair, as listed by the exchange." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The parameter allows defining an initial balance for the corresponding asset, which may be used for trading with the corresponding trading system and trading session.", + "updated": 1610120612671 + }, + { + "style": "Note", + "text": "Notice that the initial balance may be defined on either or both assets in the market.", + "updated": 1610120649770 + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1610120575504 + }, + { + "style": "Title", + "text": "Session Quoted Asset Configuration" + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "List", + "text": "initialBalance is the amount of capital you wish to allocate to the trading system." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/shapes.json b/Projects/Superalgos/Schemas/Docs-Nodes/shapes.json new file mode 100644 index 000000000..968fa52eb --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/shapes.json @@ -0,0 +1,36 @@ +{ + "type": "Shapes", + "definition": { + "text": "The shapes node contains definitions of polygons and styles to be rendered on a per-period basis over the charts." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "A plotter recursively renders graphics for each period or candle. This means that a definition of what shapes need to be drawn for a single period is required. The plotter does the same thing for every period or candle that is visible on the screen at any point in time, for any time frame, as long as the corresponding data is available." + }, + { + "style": "Text", + "text": "In general terms, the process of defining what is going to be rendered on the screen consist of the following four steps:" + }, + { + "style": "Text", + "text": " 1. Identifying points defined by [x,y] coordinates" + }, + { + "style": "Text", + "text": " 2. Defining polygons" + }, + { + "style": "Text", + "text": " 3. Defining default styles" + }, + { + "style": "Text", + "text": " 4. Defining conditional styles" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/signals-provider.json b/Projects/Superalgos/Schemas/Docs-Nodes/signals-provider.json new file mode 100644 index 000000000..3910d80e9 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/signals-provider.json @@ -0,0 +1,3 @@ +{ + "type": "Signals Provider" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/signals-providers.json b/Projects/Superalgos/Schemas/Docs-Nodes/signals-providers.json new file mode 100644 index 000000000..017192c24 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/signals-providers.json @@ -0,0 +1,3 @@ +{ + "type": "Signals Providers" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/simulated-actual-rate.json b/Projects/Superalgos/Schemas/Docs-Nodes/simulated-actual-rate.json new file mode 100644 index 000000000..f3b0469c0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/simulated-actual-rate.json @@ -0,0 +1,20 @@ +{ + "type": "Simulated Actual Rate", + "definition": { + "text": "The simulated actual rate node allows setting a specific rate value for the simulation of each order, overriding the slippage parameter of the trading session." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The slippage parameter of the trading session allows setting a blanket slippage for all orders in the trading system. The simulated actual rate node allows control on a per-order basis, so each order may be simulated with a specific rate." + }, + { + "style": "Note", + "text": "If the node is not present or the parameter is undefined, the slippage parameter set up for the trading session is used." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/simulated-exchange-events.json b/Projects/Superalgos/Schemas/Docs-Nodes/simulated-exchange-events.json new file mode 100644 index 000000000..75d30141f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/simulated-exchange-events.json @@ -0,0 +1,20 @@ +{ + "type": "Simulated Exchange Events", + "definition": { + "text": "The simulated exchange event node allows to override the parameters set at the level of the trading session on a per order basis to determine how each order shall be simulated." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The offspring nodes under simulated exchange events allow setting order-specific parameters for the size filled, actual rate, and fees paid, so that each order may be simulated in a specific manner." + }, + { + "style": "Text", + "text": "If either of the offspring nodes is not present or is undefined, then the parameters configured at the level of the trading session are factored in by default." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/simulated-fees-paid.json b/Projects/Superalgos/Schemas/Docs-Nodes/simulated-fees-paid.json new file mode 100644 index 000000000..ecc1912e9 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/simulated-fees-paid.json @@ -0,0 +1,38 @@ +{ + "type": "Simulated Fees Paid", + "definition": { + "text": "The simulated fees paid node allows setting a specific fee for the simulation of each order, overriding the fee structure parameter of the trading session." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The fee structure parameter of the trading session allows setting a blanket fee structure (maker and taker) for all orders in the trading system. The simulated fees paid node allows control on a per-order basis, so each order may be simulated with a specific fee." + }, + { + "style": "Note", + "text": "If the node is not present or the parameter is undefined, the fee structure parameter set up for the trading session is used." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Simulated Fees Paid Configuration", + "updated": 1609607768058 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609607777687 + }, + { + "style": "List", + "text": "percentage is the percentage to be applied to calculate the fees for the specific order." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/simulated-partial-fill.json b/Projects/Superalgos/Schemas/Docs-Nodes/simulated-partial-fill.json new file mode 100644 index 000000000..85471ae6e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/simulated-partial-fill.json @@ -0,0 +1,42 @@ +{ + "type": "Simulated Partial Fill", + "definition": { + "text": "The simulated partial fill parameter allows simulating the partial fill of orders." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Upon each execution, the simulation verifies if the current candle intersects the rate set for the order. If it does, it uses the value in this parameter as a factor to determine and keep track of what percentage of the order is filled." + }, + { + "style": "Text", + "text": "The same process repeats for each subsequent candle, until the order is filled." + }, + { + "style": "Text", + "text": "When the parameter is not present or undefined, the simulation assumes the order is filled as soon as the rate is hit." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Simulated Partial Fill Configuration", + "updated": 1609607669992 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609607682304 + }, + { + "style": "List", + "text": "fillProbability indicates the probability of an order getting filled upon each tag of the price. Values may range from 0 to 1. The value 0 indicates that there are 0% chances of the order getting filled. With such a setting, the order will never get filled in the simulation. The value 1 indicates that there is a 100% probability of the order getting filled. With such a setting, the order is filled upon the first tag of the price. A value of 0.5 indicates a 50% probability, thus, it takes two tags of the price for the order to fill completely with such a setting." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/situation-name.json b/Projects/Superalgos/Schemas/Docs-Nodes/situation-name.json new file mode 100644 index 000000000..919cc103b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/situation-name.json @@ -0,0 +1,41 @@ +{ + "type": "Situation Name", + "definition": { + "text": "Situation name features the name of the situation that triggered a certain event, which is dependent on the context." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In the context of a strategy, it is the name of the situation that triggered-on the strategy." + }, + { + "style": "Text", + "text": "In the context of a position, it's the name of the situation that triggered the take position event." + }, + { + "style": "Text", + "text": "In the context of an order, it's the situation that triggered the create order event." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Situation Name Configuration", + "updated": 1609926290356 + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/situation.json b/Projects/Superalgos/Schemas/Docs-Nodes/situation.json new file mode 100644 index 000000000..19f5a032e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/situation.json @@ -0,0 +1,24 @@ +{ + "type": "Situation", + "definition": { + "text": "A situation refers to a specific state of the market in which a certain event should take place, as defined by any number of conditions." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "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." + }, + { + "style": "Text", + "text": "A situation gets validated when all conditions under it are true." + }, + { + "style": "Text", + "text": "An event may have more than one situation attached to it. In such a case, when any of the situations gets validated, the event gets triggered. 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." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/size-filled.json b/Projects/Superalgos/Schemas/Docs-Nodes/size-filled.json new file mode 100644 index 000000000..f819b575f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/size-filled.json @@ -0,0 +1,45 @@ +{ + "type": "Size Filled", + "definition": { + "text": "Size filled is the amount of the order that has been filled at the exchange." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In the context of a strategy stage, the size filled refers to the sum of the size filled for all orders placed on the corresponding stage." + }, + { + "style": "Text", + "text": "In the context of an order, it refers to the size filled for the particular order." + }, + { + "style": "Text", + "text": "Upon each execution of the trading bot, the system asks the exchange about the status of the orders placed, and the exchange reports back with the size filled and the actual rate at which orders are filled." + }, + { + "style": "Text", + "text": "In liquid markets, market orders should usually fill immediately. However, limit orders may fill incrementally. Size filled keeps track of how much of the size placed has been filled on every execution." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Size Filled Configuration", + "updated": 1609926785857 + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/size-placed.json b/Projects/Superalgos/Schemas/Docs-Nodes/size-placed.json new file mode 100644 index 000000000..8c468cb17 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/size-placed.json @@ -0,0 +1,37 @@ +{ + "type": "Size Placed", + "definition": { + "text": "Size placed is the size of the order placed at the exchange." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In the context of a strategy stage, the size placed refers to the sum of the sizes placed for all orders placed on the corresponding stage." + }, + { + "style": "Text", + "text": "In the context of an order, it refers to the size placed for the particular order." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Size Placed Configuration", + "updated": 1609926749496 + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/size.json b/Projects/Superalgos/Schemas/Docs-Nodes/size.json new file mode 100644 index 000000000..3c2b6f5e4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/size.json @@ -0,0 +1,46 @@ +{ + "type": "Size", + "definition": { + "text": "Size is the size set for the order through a combination of formulas and configurations defined in the trading system, and is the value passed on to the exchange as the size of the order." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The system provides a flexible and robust infrastructure to control execution. The size of a single order results from the combination of multiple settings." + }, + { + "style": "List", + "text": "The target size in base asset or target size in quoted asset: The formulas under these nodes define the absolute maximum size allowed for the position. The implications of using one or the other are explained under the initial targets node in the open stage." + }, + { + "style": "List", + "text": "The configuration of the execution algorithm: The parameter percentageOfStageTargetSize determines what fraction of the target size the algorithm will attempt to execute." + }, + { + "style": "List", + "text": "The configuration of the order: The parameter percentageOfAlgorithmSize determines what fraction of the size handled by the algorithm the order shall be constrained to." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609927497028 + }, + { + "style": "Title", + "text": "Size Configuration", + "updated": 1609927506777 + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/slippage.json b/Projects/Superalgos/Schemas/Docs-Nodes/slippage.json new file mode 100644 index 000000000..3d2ddff6b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/slippage.json @@ -0,0 +1,49 @@ +{ + "type": "Slippage", + "definition": { + "text": "The slippage is an assumption on the difference between the simulated rate and the actual fill rate of a market order, most relevant in the context of backtesting and paper-trading sessions. The parameter is a tool to make simulations more realistic." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "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 the live trading simulation until the actual order fill values are obtained from the exchange." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Slippage Configuration", + "updated": 1609676424004 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609676430132 + }, + { + "style": "List", + "text": "positionRate is the slippage value applied to the rate of all market orders throughout the position, expressed as a percentage (for example, 0.1 means 0.1%).", + "updated": 1609676495674 + }, + { + "style": "List", + "text": "stopLoss is the slippage value applied to the stop loss target defined by the formulas of each stop loss phase in the manage stage of the trading system, expressed as a percentage (for example, 0.2 means 0.2%). The slippage value is applied to the value resulting from the corresponding stop loss formula, and the actual stop loss target is the resulting number. For example, if the stop loss formula results in 1000 and the stopLoss slippage value is 0.2, then the resulting stop loss target is 1000 ± 1000 0.2 / 100. Read below for an explanation on when the slippage is added or subtracted.", + "updated": 1609676508652 + }, + { + "style": "List", + "text": "takeProfit works similarly as the stopLoss setting, but affecting the take profit target instead of the stop loss target." + }, + { + "style": "Note", + "text": "If the slippage parameter is left empty or detached both from your session and your trading system, slippage is not computed during simulations.", + "updated": 1609676526540 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/snapshots.json b/Projects/Superalgos/Schemas/Docs-Nodes/snapshots.json new file mode 100644 index 000000000..4e78fdc8a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/snapshots.json @@ -0,0 +1,38 @@ +{ + "type": "Snapshots", + "definition": { + "text": "Snapshots are CSV files output by the trading bot listing every trade in a backtesting session. The snapshots parameter determines whether snapshots shall be produced, and how." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Learn more about snapshots and check the configuration file to control if and how snapshots are produced." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Snapshots Configuration", + "updated": 1609676701303 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609676706067 + }, + { + "style": "List", + "text": "strategy determines whether to take a snapshot at the trigger on event or not; possible values are true or false." + }, + { + "style": "List", + "text": "position determines whether to take a snapshot at the take position event or not; possible values are true or false." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/social-bots.json b/Projects/Superalgos/Schemas/Docs-Nodes/social-bots.json new file mode 100644 index 000000000..e9d16292a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/social-bots.json @@ -0,0 +1,3 @@ +{ + "type": "Social Bots" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/space-settings.json b/Projects/Superalgos/Schemas/Docs-Nodes/space-settings.json new file mode 100644 index 000000000..163254323 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/space-settings.json @@ -0,0 +1,60 @@ +{ + "type": "Space Settings", + "definition": { + "text": "The space settings node features controls over the phisics, proportions, and positioning of icons representing node, and their menus." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Space Settings Configuration", + "updated": 1609863913978 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609863924784 + }, + { + "style": "List", + "text": "node refers to every node in the design space." + }, + { + "style": "List", + "text": "radiusPercentage is the radius of the circular nodes' menu applied as a percentage of an arbitrary default radius.", + "updated": 1609863960583 + }, + { + "style": "List", + "text": "massPercentage is the refernce mass of nodes that affect the attraction and repulsion of the environment's pysics whe the physics setting is set to true.", + "updated": 1609863964761 + }, + { + "style": "List", + "text": "menuItem refers to the items on the right-hand side of nodes' menus.", + "updated": 1609863969621 + }, + { + "style": "List", + "text": "widthPercentage is the reference width of an item applied as a percentage of an arbitrary default width.", + "updated": 1609863995477 + }, + { + "style": "List", + "text": "heightPercentage is the reference height of an item applied as a percentage of an arbitrary default height.", + "updated": 1609863990453 + }, + { + "style": "List", + "text": "radiusPercentage is the reference radious of the circular matrix that governs the distribution of items in the circular menu. Larger numbers cause items to spread appart while smaller numbers makes items lie closer to each other.", + "updated": 1609863985113 + }, + { + "style": "List", + "text": "physics determines wether the environment is static (false) or dynamic (true). When physics is set to true, nodes in the design space are affected by th gravitational pull and repulsion of other nodes." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/space-style.json b/Projects/Superalgos/Schemas/Docs-Nodes/space-style.json new file mode 100644 index 000000000..44019d404 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/space-style.json @@ -0,0 +1,66 @@ +{ + "type": "Space Style", + "definition": { + "text": "The space style node features controls over the look and feel of the space, in particular, of background colors and font sizes." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Space Style Configuration", + "updated": 1609861783834 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609862712741 + }, + { + "style": "List", + "text": "backgroundColor refers to the background of the design space (see table below)." + }, + { + "style": "List", + "text": "node refers to all nodes in the design space." + }, + { + "style": "List", + "text": "imageSize refers to the size of icons representing nodes.", + "updated": 1609862764823 + }, + { + "style": "List", + "text": "type refers to the type of node, as indicated by the string of text below each node." + }, + { + "style": "List", + "text": "name refers to the name or label of the node, as indicated above the node." + }, + { + "style": "List", + "text": "menuItem refers to items on the right-hand side of the menu." + }, + { + "style": "List", + "text": "fontSize refers to the size of the font of the string of text.", + "updated": 1609862776218 + }, + { + "style": "List", + "text": "imageSize refers to the size of the icon illustrating the menu item.", + "updated": 1609862786614 + }, + { + "style": "Text", + "text": "Available colors:" + }, + { + "style": "Table", + "text": "| Variable Value | RGB Value | Color Sample |\n| DARK | 48, 48, 54 | RGB(48, 48, 54) |\n| LIGHT | 234, 226, 222 | RGB(234, 226, 222) |\n| GREY | 150, 150, 150 | RGB(150, 150, 150) |\n| LIGHT_GREY | 247, 247, 247 | RGB(247, 247, 247) |\n| WHITE | 255, 255, 255 | RGB(255, 255, 255) |\n| BLACK | 0, 0, 0 | RGB(0, 0, 0) |\n| GOLDEN_ORANGE | 240, 162, 2 | RGB(240, 162, 2) |\n| RUSTED_RED | 204, 88, 53 | RGB(204, 88, 53) |\n| GREEN | 188, 214, 67 | RGB(188, 214, 67) |\n| RED | 223, 70, 60 | RGB(223, 70, 60) |\n| PATINATED_TURQUOISE | 27, 153, 139 | RGB(27, 153, 139) |\n| TITANIUM_YELLOW | 244, 228, 9 | RGB(244, 228, 9) |\n| MANGANESE_PURPLE | 91,80, 122 | RGB(91,80, 122) |\n| TURQUOISE | 74, 207, 217 | RGB(74, 207, 217) |\n| DARK_TURQUOISE | 2, 149, 170 | RGB(2, 149, 170) |", + "updated": 1609863757224 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/spaces.json b/Projects/Superalgos/Schemas/Docs-Nodes/spaces.json new file mode 100644 index 000000000..6a68f5c1a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/spaces.json @@ -0,0 +1,18 @@ +{ + "type": "Spaces", + "definition": { + "text": "Spaces refers to the different types of spaces for which definitions exist in the form of hierarchies. At this stage, the node may spawn the Design Space and the Charting Space hierarchies." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content", + "updated": 1609703808212 + }, + { + "style": "Success", + "text": "Use the menu to spawn new hierarchies.", + "updated": 1609702462116 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/stage-base-asset.json b/Projects/Superalgos/Schemas/Docs-Nodes/stage-base-asset.json new file mode 100644 index 000000000..f00444606 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/stage-base-asset.json @@ -0,0 +1,16 @@ +{ + "type": "Stage Base Asset", + "definition": { + "text": "The stage base asset node keeps track of the evolution of variables related to the base asset throughout the stage." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Note", + "text": "Learn more about how accounts for the base asset and the quoted asset are kept in the base asset and quoted asset page on the trading engine section of the documentation." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/stage-defined-in.json b/Projects/Superalgos/Schemas/Docs-Nodes/stage-defined-in.json new file mode 100644 index 000000000..be4dcfa14 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/stage-defined-in.json @@ -0,0 +1,29 @@ +{ + "type": "Stage Defined In", + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Stage Defined In Configuration", + "updated": 1609926706081 + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value." + } + ], + "definition": { + "text": "Right click to edit this text and replace it with a definition / summary for this page. ESC to exit edit mode." + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/stage-quoted-asset.json b/Projects/Superalgos/Schemas/Docs-Nodes/stage-quoted-asset.json new file mode 100644 index 000000000..4190cd514 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/stage-quoted-asset.json @@ -0,0 +1,16 @@ +{ + "type": "Stage Quoted Asset", + "definition": { + "text": "The stage quoted asset node keeps track of the evolution of variables related to the quoted asset throughout the stage." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Note", + "text": "Learn more about how accounts for the base asset and the quoted asset are kept in the base asset and quoted asset page on the trading engine section of the documentation." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/status-dependency.json b/Projects/Superalgos/Schemas/Docs-Nodes/status-dependency.json new file mode 100644 index 000000000..d3f50b7fd --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/status-dependency.json @@ -0,0 +1,58 @@ +{ + "type": "Status Dependency", + "definition": { + "text": "Status dependencies are references to a status report that define which process the process establishing the reference depends on." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The reference is established to acquire the information relative to what the target process is doing. For example, by reading a status report a process may learn when was the last time the referenced process ran, and what was the last file processed." + }, + { + "style": "Text", + "text": "The status report referenced may belong to the same process— which is called a self-reference. In such a case, the process is learning what it did the last time it ran. Also, the status report referenced may belong to another process—another bot. In that case, the dependency may be of the Market Starting Point or Market Ending Point types. ", + "updated": 1609787389239 + }, + { + "style": "List", + "text": "Self Reference is mandatory, as a process needs to read its own status report every time it wakes up." + }, + { + "style": "List", + "text": "The market starting point is a status dependency existing on Multi-Period-Daily processes so that the process establishing the reference learns the datetime of the start of the market. Usually, the reference is established with the sensor's Historic-OHLCVs process status report. Multi-Period-Market processes do not have this type of status dependency as the date of the start of the market is implied in their dataset (a single file with all market data).", + "updated": 1609787724948 + }, + { + "style": "List", + "text": "The market ending point is a status dependency existing both in Multi-Period-Market and Multi-Period-Daily processes so that the process establishing the reference knows the datetime of the end of the market.", + "updated": 1609787745299 + }, + { + "style": "Text", + "text": "The image above shows a case of a self-reference status dependency as well as a market ending point status dependency." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Status Dependency Configuration", + "updated": 1609787775907 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609787781306 + }, + { + "style": "List", + "text": "mainUtility determines the type of status dependency, with possible values being Self Reference, MMarket Starting Point, or MMarket Ending Point.", + "updated": 1609787859239 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/status-report.json b/Projects/Superalgos/Schemas/Docs-Nodes/status-report.json new file mode 100644 index 000000000..83300ca9e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/status-report.json @@ -0,0 +1,21 @@ +{ + "type": "Status Report", + "definition": { + "text": "\nA status report serves as a temporal annotation that bots read every time they run to know what was done in the previous cycle and what the state of affairs is at present. They are dynamic and change constantly, with updates after every cycle of the associated process.", + "updated": 1609788111201 + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Bots do not run continuously. Instead, they run in cycles. A cycle usually lasts until there is no more data to process, and once they finish, they shut down until the next cycle is due. A status report is a file every bot writes at the end of each cycle with information about the last run, including the datetime of the run and the last record processed." + }, + { + "style": "Text", + "text": "A status report may be consumed by the same bot producing it, or by other bots." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/status.json b/Projects/Superalgos/Schemas/Docs-Nodes/status.json new file mode 100644 index 000000000..8b0926bce --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/status.json @@ -0,0 +1,48 @@ +{ + "type": "Status", + "definition": { + "text": "Status refers to the state of the object represented by the parent node at the moment of evaluation." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "There are three possible status:" + }, + { + "style": "List", + "text": "Not Open: the object is not open at the current candle." + }, + { + "style": "List", + "text": "Open: the object is open at the current candle." + }, + { + "style": "List", + "text": "Closed: the object closes at the current candle." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609880131905 + }, + { + "style": "Title", + "text": "Status Configuration", + "updated": 1609880144610 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609880158050 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609880181465 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/stop-loss-phase.json b/Projects/Superalgos/Schemas/Docs-Nodes/stop-loss-phase.json new file mode 100644 index 000000000..2f778b771 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/stop-loss-phase.json @@ -0,0 +1,7 @@ +{ + "type": "Stop Loss Phase", + "definition": { + "text": "Stop loss phase is the numeric value of the phase that is currently open, and thus, defining the value of the stop loss." + }, + "paragraphs": [] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/stop-loss-position.json b/Projects/Superalgos/Schemas/Docs-Nodes/stop-loss-position.json new file mode 100644 index 000000000..7da13d578 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/stop-loss-position.json @@ -0,0 +1,20 @@ +{ + "type": "Stop Loss Position", + "definition": { + "text": "Stop Loss position indicates if the stop loss target is above or below the position rate." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Possible values are Above and Below." + }, + { + "style": "Text", + "text": "The implications of setting the stop loss target above or below the position rate are explained on the trading system section of the documentation, in particular while describing the initial target rate definition." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/stop-loss.json b/Projects/Superalgos/Schemas/Docs-Nodes/stop-loss.json new file mode 100644 index 000000000..ea3fba712 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/stop-loss.json @@ -0,0 +1,29 @@ +{ + "type": "Stop Loss", + "definition": { + "text": "Stop loss is the current stop loss target, as defined in the manage stage of the corresponding strategy." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Stop Loss Configuration", + "updated": 1609926459751 + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/strategies.json b/Projects/Superalgos/Schemas/Docs-Nodes/strategies.json new file mode 100644 index 000000000..2e6c94cb5 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/strategies.json @@ -0,0 +1,32 @@ +{ + "type": "Strategies", + "definition": { + "text": "Strategies counts the number of times strategies have been triggered-on, in the context of the parent node." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609924900877 + }, + { + "style": "Title", + "text": "Strategies Configuration", + "updated": 1609924917986 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609924925185 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609924939749 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/strategy-close-stage.json b/Projects/Superalgos/Schemas/Docs-Nodes/strategy-close-stage.json new file mode 100644 index 000000000..2a9c9b046 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/strategy-close-stage.json @@ -0,0 +1,20 @@ +{ + "type": "Strategy Close Stage", + "definition": { + "text": "Strategy close stage is the section of the data structure that keeps track of information specific to the scope of the close stage during the period the stage is open." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The close stage is active from the instant either the stop loss or take profit targets are hit until the instant the target size is filled or the close stage event is triggered." + }, + { + "style": "Text", + "text": "Therefore, this section of the data structure features information spaning those periods only." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/strategy-counters.json b/Projects/Superalgos/Schemas/Docs-Nodes/strategy-counters.json new file mode 100644 index 000000000..cf92c5ba7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/strategy-counters.json @@ -0,0 +1,12 @@ +{ + "type": "Strategy Counters", + "definition": { + "text": "The strategy counters node features counters of instances of objects that come to exist while the strategy is open." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/strategy-manage-stage.json b/Projects/Superalgos/Schemas/Docs-Nodes/strategy-manage-stage.json new file mode 100644 index 000000000..953a49181 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/strategy-manage-stage.json @@ -0,0 +1,20 @@ +{ + "type": "Strategy Manage Stage", + "definition": { + "text": "Strategy manage stage is the section of the data structure that keeps track of information specific to the scope of the manage stage during the period the stage is open." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The manage stage is active from the instant the take position event is triggered until the instant either the stop or take profit targets are hit." + }, + { + "style": "Text", + "text": "Therefore, this section of the data structure features information spaning those periods only." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/strategy-name.json b/Projects/Superalgos/Schemas/Docs-Nodes/strategy-name.json new file mode 100644 index 000000000..032968907 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/strategy-name.json @@ -0,0 +1,29 @@ +{ + "type": "Strategy Name", + "definition": { + "text": "Strategy name features the name of the strategy that is currently open." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Strategy Name Configuration", + "updated": 1609926323309 + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/strategy-open-stage.json b/Projects/Superalgos/Schemas/Docs-Nodes/strategy-open-stage.json new file mode 100644 index 000000000..445b5810e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/strategy-open-stage.json @@ -0,0 +1,28 @@ +{ + "type": "Strategy Open Stage", + "definition": { + "text": "Strategy open stage is the section of the data structure that keeps track of information specific to the scope of the open stage during the period the stage is open." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The open stage is open from the instant the take position event gets triggered, and starts closing from the instant one of the following things happen:" + }, + { + "style": "List", + "text": "the target size is filled," + }, + { + "style": "List", + "text": "the close stage event is triggered," + }, + { + "style": "List", + "text": "the take profit or stop loss targets are hit." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/strategy-trigger-stage.json b/Projects/Superalgos/Schemas/Docs-Nodes/strategy-trigger-stage.json new file mode 100644 index 000000000..b6d229d1d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/strategy-trigger-stage.json @@ -0,0 +1,16 @@ +{ + "type": "Strategy Trigger Stage", + "definition": { + "text": "Strategy trigger stage is the section of the data structure that keeps track of information specific to the scope of the trigger stage during the period the stage is open." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The trigger stage is active from the instant the trigger-on event is triggered until either the trigger-off event or the take position event gets triggered. Therefore, this section of the data structure features information spaning those periods only." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/strategy.json b/Projects/Superalgos/Schemas/Docs-Nodes/strategy.json new file mode 100644 index 000000000..6a4ed685e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/strategy.json @@ -0,0 +1,28 @@ +{ + "type": "Strategy", + "definition": { + "text": "The strategy section of the trading engine keeps track of information relating to the trading strategies that are triggered-on, during the time they remain open." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The strategy node is available both in the current context and the last context, that is, you may retrieve information of the strategy that was last triggered or the one currently open." + }, + { + "style": "Text", + "text": "A strategy is open from the instant it is triggered-on until the instant it is triggered-off. Therefore, this section of the data structure features information spaning those periods only." + }, + { + "style": "Text", + "text": "This section provides all the basic details about the strategy, which is particularly useful when the trading system features multiple strategies. It also provides information about the context, that is, what is going on with the market at the time strategies are triggered-on and off." + }, + { + "style": "Text", + "text": "Most interestingly, the strategy section provides information such as which situation was responsible for triggering the strategy. This may be particularly useful in complex strategies in which the trigger on event may be defined by multiple situations." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/style-condition.json b/Projects/Superalgos/Schemas/Docs-Nodes/style-condition.json new file mode 100644 index 000000000..fb3d14385 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/style-condition.json @@ -0,0 +1,62 @@ +{ + "type": "Style Condition", + "definition": { + "text": "A style condition is a rule that allows applying an alternative style in cases where the rule validates true." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Style conditions offer a way to introduce additional intelligence on the visual representation of data by using styles that respond to certain conditions." + }, + { + "style": "Text", + "text": "For example, the Percentage Bandwidth plotter module assigns a different color to the Moving Average line when it's going up or down." + }, + { + "style": "Text", + "text": "To do that, a style condition features it's own style so that, when the condition validates true, the new style is applied." + }, + { + "style": "Text", + "text": "Style conditions me be created in a sequence so that the style may continue changing upon the validation of a series of style conditions. The system evaluates all style conditions in a sequential order determined by their position in the rotational symmetry around the parent node. Each condition that is met may modify or add up to the resulting style that is rendered on screen. That is, the final style is the result of the sequential application of the styles defined for each condition that is met, on top of the default style." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Style Condition Configuration", + "updated": 1609860654525 + }, + { + "style": "Text", + "text": "Style conditions work pretty much like conditions used on trading systems. The main difference is that the variables available are solely those provided by the bot product definition that reference the corresponding plotter module." + }, + { + "style": "Text", + "text": "To continue the example of the Percentage Bandwidth plotter, the following is the condition that determines the newly added styles:" + }, + { + "style": "Javascript", + "text": "record.previous.movingAverage > record.movingAverage" + }, + { + "style": "Text", + "text": "As hinted earlier, when the condition is met, the default style is modified by a second style that may be created on the menu of the style condition node." + }, + { + "style": "Text", + "text": "The definition of secondary styles is slightly different from that of the default style, as—in such cases—the atMousePosition property may no longer be defined:" + }, + { + "style": "Json", + "text": "{\n \"opacity\": 0.55,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n}", + "updated": 1609860800267 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/style.json b/Projects/Superalgos/Schemas/Docs-Nodes/style.json new file mode 100644 index 000000000..3b7dda402 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/style.json @@ -0,0 +1,83 @@ +{ + "type": "Style", + "definition": { + "text": "A style is a definition of color and opacity in case of a polygon body, and color, opacity and line thickness in case of polygon borders." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "A style applied to a polygon body or a polygon border node acts as the default style. Styles including colors, opacity, line width, and more, are defined in the node's configuration." + }, + { + "style": "Note", + "text": "See the configuration for further details." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Style Configuration", + "updated": 1609854042226 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609854059581 + }, + { + "style": "Text", + "text": "A typical definition for a polygon body style looks like this:" + }, + { + "style": "Json", + "text": "{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n }\n}", + "updated": 1609854100248 + }, + { + "style": "Text", + "text": "A typical definition for a polygon border style has a couple more properties:" + }, + { + "style": "Json", + "text": "{\n \"default\": {\n \"opacity\": 0.2,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", + "updated": 1609854144329 + }, + { + "style": "Text", + "text": "The first section of the definition refers, as explicitly stated, to the default state of the style." + }, + { + "style": "Text", + "text": "The second section refers to the style assigned to the column or period on which the mouse pointer is located. This is very useful for highlighting the specific zone of interest as the user browses the charts." + }, + { + "style": "List", + "text": "opacity is probably self-explanatory. It may range from 0 for a fully transparent object to 1 for a solid object.", + "updated": 1609854205298 + }, + { + "style": "List", + "text": "paletteColor sets the color for the fill or stroke in cases of polygon bodies and polygon borders respectively. Use the variable UI_COLOR followed by a dot and any of the properties in the following list for a selection of currently available colors.", + "updated": 1609854289128 + }, + { + "style": "Table", + "text": "| Variable Value | RGB Value | Color Sample |\n| DARK | 48, 48, 54 | RGB(48, 48, 54) |\n| LIGHT | 234, 226, 222 | RGB(234, 226, 222) |\n| GREY | 150, 150, 150 | RGB(150, 150, 150) |\n| LIGHT_GREY | 247, 247, 247 | RGB(247, 247, 247) |\n| WHITE | 255, 255, 255 | RGB(255, 255, 255) |\n| BLACK | 0, 0, 0 | RGB(0, 0, 0) |\n| GOLDEN_ORANGE | 240, 162, 2 | RGB(240, 162, 2) |\n| RUSTED_RED | 204, 88, 53 | RGB(204, 88, 53) |\n| GREEN | 188, 214, 67 | RGB(188, 214, 67) |\n| RED | 223, 70, 60 | RGB(223, 70, 60) |\n| PATINATED_TURQUOISE | 27, 153, 139 | RGB(27, 153, 139) |\n| TITANIUM_YELLOW | 244, 228, 9 | RGB(244, 228, 9) |\n| MANGANESE_PURPLE | 91,80, 122 | RGB(91,80, 122) |\n| TURQUOISE | 74, 207, 217 | RGB(74, 207, 217) |\n| DARK_TURQUOISE | 2, 149, 170 | RGB(2, 149, 170) |", + "updated": 1609854356242 + }, + { + "style": "List", + "text": "lineWidth is the width of the border line, which should be greater than 0." + }, + { + "style": "List", + "text": "lineDash is used to turn the border into a dashed-line; the first value corresponds to the length of the dash while the second value defines the length of the space." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/super-action.json b/Projects/Superalgos/Schemas/Docs-Nodes/super-action.json new file mode 100644 index 000000000..248c0eedd --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/super-action.json @@ -0,0 +1,3 @@ +{ + "type": "Super Action" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/super-actions.json b/Projects/Superalgos/Schemas/Docs-Nodes/super-actions.json new file mode 100644 index 000000000..008c912cf --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/super-actions.json @@ -0,0 +1,3 @@ +{ + "type": "Super Actions" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/super-scripts.json b/Projects/Superalgos/Schemas/Docs-Nodes/super-scripts.json new file mode 100644 index 000000000..3ab4a2538 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/super-scripts.json @@ -0,0 +1,38 @@ +{ + "type": "Super Scripts", + "definition": { + "text": "The super scripts hierarchy holds definitions of scripts used to automate certain aspects of the administration and maintenance of the workspace, such as installing and deleting markets." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The super scripts hierarchy may be used by developers who wish to create their own scripts for automating the deployment or manitenance of all sorts of structures of nodes across any of the hierarchies in the design space." + }, + { + "style": "Text", + "text": "Regular users will find little to do with this hierarchy, even though they may use it indirectly, for instance, when installing or uninstalling markets." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Super Scripts Configuration", + "updated": 1609873496526 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609873505709 + }, + { + "style": "List", + "text": "codeName is the name of the hierarchy as is used in the system's code." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/superalgos-project.json b/Projects/Superalgos/Schemas/Docs-Nodes/superalgos-project.json new file mode 100644 index 000000000..a2c3bb7d4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/superalgos-project.json @@ -0,0 +1,20 @@ +{ + "type": "Superalgos Project", + "definition": { + "text": "The Superalgos Project hierarchy governs the assets that relate to Superalgos. In its current state, it serves the purpose of spawning hierarchies." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Superalgos is a multi-project platform meaning that other crypto-projects may be integrated. It is in this context that project-specific hierarchies exist." + }, + { + "style": "Text", + "text": "A crypto-project integration means that Superalgos users will able to connect to blockchain nodes from within Superalgos, exposing the blockchain data to the rest of the Superalgos infrastructure. Users will be able to mine the node's data, build indicators, use them from within trading systems, and visualize blockchain information on the charts—among other things." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/take-position-event.json b/Projects/Superalgos/Schemas/Docs-Nodes/take-position-event.json new file mode 100644 index 000000000..a7783d719 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/take-position-event.json @@ -0,0 +1,24 @@ +{ + "type": "Take Position Event", + "definition": { + "text": "The take position event defines the situation that needs to be met to take a position." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "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." + }, + { + "style": "Text", + "text": "Therefore, the take position event is defined with its own set of situations and conditions." + }, + { + "style": "Text", + "text": "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 runtime evaluation of the trading system shifts from the trigger stage to the open stage." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/take-position.json b/Projects/Superalgos/Schemas/Docs-Nodes/take-position.json new file mode 100644 index 000000000..285f6a080 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/take-position.json @@ -0,0 +1,29 @@ +{ + "type": "Take Position", + "definition": { + "text": "Counts the periods since the last time a position was taken." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Take Position Configuration", + "updated": 1609925662076 + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/take-profit-phase.json b/Projects/Superalgos/Schemas/Docs-Nodes/take-profit-phase.json new file mode 100644 index 000000000..4ead8af83 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/take-profit-phase.json @@ -0,0 +1,7 @@ +{ + "type": "Take Profit Phase", + "definition": { + "text": "Take profit phase is the numeric value of the phase that is currently open, and thus, defining the value of the take profit." + }, + "paragraphs": [] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/take-profit-position.json b/Projects/Superalgos/Schemas/Docs-Nodes/take-profit-position.json new file mode 100644 index 000000000..f07b8300d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/take-profit-position.json @@ -0,0 +1,20 @@ +{ + "type": "Take Profit Position", + "definition": { + "text": "Take profit position indicates if the take profit target is above or below the position rate." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Possible values are Above and Below." + }, + { + "style": "Text", + "text": "The implications of setting the take profit target above or below the position rate are explained on the trading system section of the documentation, in particular while describing the initial target rate definition." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/take-profit.json b/Projects/Superalgos/Schemas/Docs-Nodes/take-profit.json new file mode 100644 index 000000000..4f19f4b22 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/take-profit.json @@ -0,0 +1,29 @@ +{ + "type": "Take Profit", + "definition": { + "text": "Take profit is the current take profit target, as defined in the manage stage of the corresponding strategy." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Take Profit Configuration", + "updated": 1609926487662 + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/target-rate.json b/Projects/Superalgos/Schemas/Docs-Nodes/target-rate.json new file mode 100644 index 000000000..7e5b27591 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/target-rate.json @@ -0,0 +1,146 @@ +{ + "type": "Target Rate", + "definition": { + "text": "The target rate is a reference rate that may affect simulations and that, in combination with the placement of managed stop loss and managed take profit targets, is used to determine whether the targets have been hit." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Title", + "text": "Internal Use", + "updated": 1609595630529 + }, + { + "style": "Text", + "text": "The system needs to determine when the managed stop loss and managed take profit targets have been hit. To do this, the system observes how the user places the targets in relation to the target rate." + }, + { + "style": "Subtitle", + "text": "For example", + "updated": 1609595707526 + }, + { + "style": "Text", + "text": "If the phase 1 managed stop loss target is placed below the target rate and the phase 1 managed take profit target above it, the system assumes that:" + }, + { + "style": "List", + "text": "the stop loss target is hit when the current rate is equal to or smaller than the managed stop loss value;" + }, + { + "style": "List", + "text": "the stop loss target is hit when the current rate is equal to or greater than the managed take profit value;" + }, + { + "style": "Text", + "text": "This is how the system uses the target rate internally." + }, + { + "style": "Title", + "text": "Fetching the Value from Formulas", + "updated": 1609595638456 + }, + { + "style": "Text", + "text": "Additionally, defining a target rate at the level of the stage may be of use so that you may retrieve the value from formulas while setting the rate of limit orders, using the path of the corresponding node at the trading engine." + }, + { + "style": "Text", + "text": "For example, tradingEngine.current.position.entryTargetRate.value or tradingEngine.current.position.exitTargetRate.value." + }, + { + "style": "Title", + "text": "Affecting How Simulations are Plotted", + "updated": 1609595746127 + }, + { + "style": "Text", + "text": "The target rates defined at the open and close stages affect how the Position Base Asset and Position Quoted Asset layers in the Simulation Objects layer manager draw the triangle representing the development of the trade.", + "updated": 1609595773405 + }, + { + "style": "Png", + "text": "PNGs/Superalgos/Docs/Charts/target-rate-in-position.png", + "updated": 1609597291786 + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Text", + "text": "The horizontal segment marks the target rate defined at the open stage. If you are using market orders to take the position, then using tradingEngine.current.episode.candle.close.value may offer a good representation of the rate of market orders. If you are using limit orders, then you may decide at which rate you wish to take the position, and the horizontal segment of the triangle will match the chosen rate." + }, + { + "style": "Text", + "text": "The third vertex of the triangle points to a [datetime, rate] coordinate. The datetime is given by the candle on which the manage stage closes, that is, the candle at which the stop loss or take profit targets are hit. The rate portion of the coordinate is given by the target rate defined in the close stage." + }, + { + "style": "Text", + "text": "You may choose to apply a similar reasoning as with the open stage target rate for limit orders, but there is some nouance to consider if you are using market orders." + }, + { + "style": "Callout", + "text": "The issue arises when you run a testing session at a time frame higher than the time frame you use for live trading.", + "updated": 1609596096827 + }, + { + "style": "Text", + "text": "Why is that an issue?" + }, + { + "style": "Text", + "text": "Let's say your trading system makes decisions based on the close of the 1-hour candle. And let's say you are using stop loss and take profit targets. In such cases—when live trading—you may want to run your strategy in the 1-minute time frame, to detect the tagging of the take profit and stop targets as soon as possible, and act accordingly." + }, + { + "style": "Text", + "text": "However, when backtesting, it is much faster to run sessions on the 1-hour time frame. This is particularly important when you wish to test significant time ranges." + }, + { + "style": "Text", + "text": "When backtesting a strategy on the 1-hour time frame, the trading bot evaluates if stop loss and take profit targets have been hit at the close of the 1-hour candle, and may only act upon the evaluation on the next candle. This means that if you are using market orders to exit the position, the market order would be placed (in the simulation!) on the candle after one of the targets was hit." + }, + { + "style": "Text", + "text": "The difference in rate between the moment in time the target is hit and the time the 1-hour candle closes may be significant. As a result, if the close stage target rate is defined as tradingEngine.current.episode.candle.close.value, the resulting simulation may show significant slippage, and diverge from what the trade would look like if running on the 1-minute time frame, like you would when trading live." + }, + { + "style": "Text", + "text": "To solve the above issue, you may use a more ellaborate formula for the target rate in the close stage:" + }, + { + "style": "Javascript", + "text": "targetRate()\n\nfunction targetRate() {\n switch (tradingEngine.current.position.exitType.value) {\n case 'No Exit': {\n return tradingEngine.current.episode.candle.close.value\n break\n }\n case 'Take Profit': {\n return tradingEngine.current.position.takeProfit.finalValue.value\n break\n }\n case 'Stop Loss': {\n return tradingEngine.current.position.stopLoss.finalValue.value\n break\n }\n }\n}", + "updated": 1609596984516 + }, + { + "style": "Text", + "text": "This formula discriminates among three possible outcomes:" + }, + { + "style": "List", + "text": "When no target has been hit, the value of the target rate is the close of the current candle.", + "updated": 1609603780132 + }, + { + "style": "List", + "text": "When the take profit is hit, the value of the target rate is the last value of the take profit." + }, + { + "style": "List", + "text": "When the stop loss is hit, the value of the target rate is the last value of the stop loss." + }, + { + "style": "Success", + "text": "You may use a similar formula on the simulated actual rate node of the simulated exchange events associated with the market order you are using to exit the position. Such use of the simulated actual rate node would impact the accounts kept for the episode and result in more realistic results for your backtesting session.", + "updated": 1609603803351 + }, + { + "style": "Note", + "text": "As you see, flexibility is a key design feature in Superalgos." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/target-size-in-base-asset.json b/Projects/Superalgos/Schemas/Docs-Nodes/target-size-in-base-asset.json new file mode 100644 index 000000000..7c7015b74 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/target-size-in-base-asset.json @@ -0,0 +1,76 @@ +{ + "type": "Target Size In Base Asset", + "definition": { + "text": "Target size in base asset is used to define the size of the position, denominating it in the base asset." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The system supports defining the size of the position in either asset involved in the market: the base asset, or the quoted asset, as per the exchange listing of the market." + }, + { + "style": "Text", + "text": "The target size may be defined in one of the two assets only, to avoid inconsistencies." + }, + { + "style": "Text", + "text": "The target size is the maximum size the position may achieve. That is, the definition of the target size is used as a cap for the total size of orders that may be placed during the open stage." + }, + { + "style": "Text", + "text": "If you prefer to define the size of the position denominated in the base asset, then use this node and delete the target size in quoted asset node." + }, + { + "style": "Important", + "text": "Only one target size definition may exist at a time." + }, + { + "style": "Text", + "text": "Even though the definition of the target size is denominated in one of the two assets in the market, the system keeps track of accounts for both assets. That is, performance metrics such as profit loss, ROI, hit ratio, or the annualized rate of return are calculated both based on the base asset and the quoted asset. In fact, metrics are also calculated in a consolidated manner, taking into account both assets at the same time." + }, + { + "style": "Text", + "text": "All of this information is made available for multiple contexts, for instance, for each position or the whole episode, through the data structure of the trading engine." + }, + { + "style": "Text", + "text": "When tracking the results of your trading operation, make sure you refer to the set of accounts that make sense for your trading system. This will all become clearer once you read about the trading engine and the layer managers available on the charts." + }, + { + "style": "Text", + "text": "

Examples

" + }, + { + "style": "Text", + "text": "If you are trading the whole balance assigned to the trading system on each position, then your target size will look like this:" + }, + { + "style": "Text", + "text": "tradingEngine.current.episode.episodeBaseAsset.balance.value" + }, + { + "style": "Text", + "text": "... or..." + }, + { + "style": "Text", + "text": "tradingEngine.current.episode.episodeQuotedAsset.balance.value" + }, + { + "style": "Text", + "text": "If you are not trading the entire balance on each position, then you may define the target size as a percentage of the balances, or in any other way you may see fit. For such cases, the following formula may be of use for the close stage target size:" + }, + { + "style": "Text", + "text": "tradingEngine.current.strategyOpenStage.stageBaseAsset.sizeFilled.value - tradingEngine.current.strategyOpenStage.stageBaseAsset.feesPaid.value" + }, + { + "style": "Text", + "text": "Of course, you may need to adjust the above to use stageBaseAsset or stageQuotedAsset, as required. In short, the formula returns the amount of the asset obtained by the transactions triggered during the open stage, minus the fees (and slippage, which is already subtracted from the size filled)." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/target-size-in-quoted-asset.json b/Projects/Superalgos/Schemas/Docs-Nodes/target-size-in-quoted-asset.json new file mode 100644 index 000000000..0e2102db6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/target-size-in-quoted-asset.json @@ -0,0 +1,20 @@ +{ + "type": "Target Size In Quoted Asset", + "definition": { + "text": "Target size in quoted asset is used to define the size of the position, denominating it in the quoted asset." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "If you prefer to define the size of the position denominated in the quoted asset, then use this node and delete the target size in base asset node." + }, + { + "style": "Important", + "text": "Make sure you read the definition of the target size in base asset node to get the proper context for this definition." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/target-size.json b/Projects/Superalgos/Schemas/Docs-Nodes/target-size.json new file mode 100644 index 000000000..497661abb --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/target-size.json @@ -0,0 +1,20 @@ +{ + "type": "Target Size", + "definition": { + "text": "Target size is the target set on the initial targets definition which, in the context of a strategy stage, acts as a limit." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Both the close and open stages may have multiple execution algorithms, each with multiple orders defined. In this context, the target size acts as a limit, as it is defined by the user as the maximum size allowed for any given position." + }, + { + "style": "Text", + "text": "Before placing an order, the system makes sure that the size limit embodied in the target size would not be breached by opening a new order." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/task-manager.json b/Projects/Superalgos/Schemas/Docs-Nodes/task-manager.json new file mode 100644 index 000000000..78b32dc92 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/task-manager.json @@ -0,0 +1,29 @@ +{ + "type": "Task Manager", + "definition": { + "text": "A task manager is a device used to organize and control any number of tasks, which, in turn, control bot instances. You use a task manager to start or stop several tasks at the same time." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Task managers are used both in the context of data mining and trading operations, to facilitate the organization of tasks." + }, + { + "style": "Text", + "text": "For example, you may set up a task manager to handle tasks related to a particular set of indicators used with a certain strategy. Or, for example, to organize multiple backtesting sessions." + }, + { + "style": "Success", + "text": "The key aspect of a task manager is that it allows starting and stopping all tasks at once.", + "updated": 1609613698128 + }, + { + "style": "Block", + "text": "Running" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/task.json b/Projects/Superalgos/Schemas/Docs-Nodes/task.json new file mode 100644 index 000000000..5aeda2c4f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/task.json @@ -0,0 +1,25 @@ +{ + "type": "Task", + "definition": { + "text": "A task is the device used to control bot instances, that is, to start and stop bots, including sensors, indicators and the trading bot." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Each task controls a single bot. A bot instance running on its own task is independent from other bots at the operating system level, thus, may not be affected by errors ocurring on those other bots." + }, + { + "style": "Text", + "text": "When a task is started, the process instance of the bot instance attached to the task is started. Also, a visual indication that both the task and the process instance are running appear surrounding the corresponding nodes, in the form of a progress ring.", + "updated": 1609613913124 + }, + { + "style": "Block", + "text": "Running" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/telegram-bot.json b/Projects/Superalgos/Schemas/Docs-Nodes/telegram-bot.json new file mode 100644 index 000000000..660294d53 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/telegram-bot.json @@ -0,0 +1,3 @@ +{ + "type": "Telegram Bot" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/template-script.json b/Projects/Superalgos/Schemas/Docs-Nodes/template-script.json new file mode 100644 index 000000000..e8c978756 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/template-script.json @@ -0,0 +1,20 @@ +{ + "type": "Template Script", + "definition": { + "text": "The template script node holds the definitions concerned with the scope of a particular structure of nodes." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "As such, a template script features all the components required to deal with such scope only." + }, + { + "style": "Text", + "text": "In the particular Masters super script implementation, each template script in the Setup Markets master script features a structure of nodes to be created in a specific location, and the associated JavaScript code deals with implementing such structure of nodes and establishing the corresponding references." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/template-structure.json b/Projects/Superalgos/Schemas/Docs-Nodes/template-structure.json new file mode 100644 index 000000000..61d4588f2 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/template-structure.json @@ -0,0 +1,20 @@ +{ + "type": "Template Structure", + "definition": { + "text": "The template structure holds the structure of nodes with all its configurations and properties, exactly as it should be implemented." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Properties include the physical arrangement of nodes, references and so on." + }, + { + "style": "Note", + "text": "The actual structure of nodes contained in the template usually originates as a clone of an existing structure of nodes." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/template-target.json b/Projects/Superalgos/Schemas/Docs-Nodes/template-target.json new file mode 100644 index 000000000..d67416f7a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/template-target.json @@ -0,0 +1,12 @@ +{ + "type": "Template Target", + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ], + "definition": { + "text": "Right click to edit this text and replace it with a definition / summary for this page. ESC to exit edit mode." + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/testing-trading-tasks.json b/Projects/Superalgos/Schemas/Docs-Nodes/testing-trading-tasks.json new file mode 100644 index 000000000..ba21106c5 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/testing-trading-tasks.json @@ -0,0 +1,40 @@ +{ + "type": "Testing Trading Tasks", + "paragraphs": [ + { + "style": "Block", + "text": "Content", + "updated": 1610098901334 + }, + { + "style": "Text", + "text": "Thorough and comprehensive testing of strategies is at the core of successful trading. Superalgos strives to put you in control of the testing process providing you with flexible tools to fit your criteria." + }, + { + "style": "Text", + "text": "Depending on how you use the system, how many markets and exchanges you work with, the number of trading systems you use, or the way you choose to test your strategies, you may find yourself with a large number of testing sessions. As explained in the sorting of tasks page, the testing environment helps you organize large numbers of tasks sorting them by exchange, market, and trading mine." + }, + { + "style": "Text", + "text": "Superalgos handles two types of simulated tests: backtesting and paper trading. Backtesting involves testing over historic data, while paper trading is about testing on a live data stream, but without placing orders at the exchange." + }, + { + "style": "Text", + "text": "Trading sessions are controlled by a number of parameters that determine how the session is run. The built-in parameters provide great control and flexibility as to how to handle data sets and how to produce the resulting simulations." + }, + { + "style": "Note", + "text": "Please, read on and study the workings of the chain of nodes under the testing environment node. The investment of time is well worth it, as you will learn how to make the most out of the strategy-testing features built-in Superalgos.", + "updated": 1609666617978 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Deleting Node Warning", + "updated": 1610122709689 + } + ], + "definition": { + "text": "The Testing Trading Tasks node organizes trading sessions involving testing of trading systems.", + "updated": 1609666594694 + } +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/text-condition.json b/Projects/Superalgos/Schemas/Docs-Nodes/text-condition.json new file mode 100644 index 000000000..0171cc39f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/text-condition.json @@ -0,0 +1,16 @@ +{ + "type": "Text Condition", + "definition": { + "text": "A text condition is a rule that allows establishing when text shall be rendered and when not." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The node is optional. When the node is not present in the definition of the text node or when the condition validates true, the text is rendered on screen. When the condition validates false, text is not rendered. As such, the node allows dynamically switching the rendering of the corresponding text on and off ." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/text-formula.json b/Projects/Superalgos/Schemas/Docs-Nodes/text-formula.json new file mode 100644 index 000000000..8ec6210d7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/text-formula.json @@ -0,0 +1,16 @@ +{ + "type": "Text Formula", + "definition": { + "text": "The text formula determines the content that shall be rendered over the charts." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The text formula may use any of the variables available to the plotter, and may produce either a numeric or a text string result." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/text-position.json b/Projects/Superalgos/Schemas/Docs-Nodes/text-position.json new file mode 100644 index 000000000..e1f360992 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/text-position.json @@ -0,0 +1,56 @@ +{ + "type": "Text Position", + "definition": { + "text": "The text position node is a reference to a point defined in the chart points, and serves to determine the position in which text shall be rendered." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The text position node works similarly to the image position node in the sense that it must establish a reference with a point in the charts point to acquire a defined coordinate that determines where the text shall be placed." + }, + { + "style": "Note", + "text": "See the configuration for further details." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Configuring Text Position" + }, + { + "style": "Text", + "text": "Select Configure on the menu to access the configuration." + }, + { + "style": "Text", + "text": "{" + }, + { + "style": "Text", + "text": " \"offsetX\": 0," + }, + { + "style": "Text", + "text": " \"offsetY\": 10" + }, + { + "style": "Text", + "text": "}" + }, + { + "style": "List", + "text": "offsetX is an offset in the X axis, in pixels, applied to displace the text in relation to the coordinate point defined by the reference of the node. Negative values displace the text to the left and positive values to the right." + }, + { + "style": "List", + "text": "offsetY is an offset in the Y axis. Negative values displace the text downwards and positive values displace the image upwards." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/text-style.json b/Projects/Superalgos/Schemas/Docs-Nodes/text-style.json new file mode 100644 index 000000000..75e9de8e4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/text-style.json @@ -0,0 +1,60 @@ +{ + "type": "Text Style", + "definition": { + "text": "The text style is a definition of color, opacity, and font size that determines the appearance of the text to be rendered over the charts." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Note", + "text": "See the configuration for further details." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Configuring Text Style" + }, + { + "style": "Text", + "text": "Select Configure on the menu to access the configuration." + }, + { + "style": "Text", + "text": "{" + }, + { + "style": "Text", + "text": " \"paletteColor\": \"UI_COLOR.GREY\"," + }, + { + "style": "Text", + "text": " \"opacity\": 0.5," + }, + { + "style": "Text", + "text": " \"fontSize\": 10" + }, + { + "style": "Text", + "text": "}" + }, + { + "style": "Text", + "text": " paletteColor is one of the predefined colors available, as described in the configuration of the Style* node." + }, + { + "style": "List", + "text": "opacity is probably self-explanatory, and may range from 0 for a fully transparent object to 1 for a solid object." + }, + { + "style": "List", + "text": "fontSize is self explanatory too; values above zero produce the expected results." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/text.json b/Projects/Superalgos/Schemas/Docs-Nodes/text.json new file mode 100644 index 000000000..196c1bd6b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/text.json @@ -0,0 +1,16 @@ +{ + "type": "Text", + "definition": { + "text": "The text node allows overlaying text on the charts, controlling its position, size, appearance, and when it shall be rendered." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The node's offspring control the different aspects of how, where, and when text shall be rendered over the charts." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/time-frame-scale.json b/Projects/Superalgos/Schemas/Docs-Nodes/time-frame-scale.json new file mode 100644 index 000000000..302d20794 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/time-frame-scale.json @@ -0,0 +1,63 @@ +{ + "type": "Time Frame Scale", + "definition": { + "text": "The time frame scale controls the time frame setting, that is, the period represented by each candle, either of the time machine or of the timeline chart, depending on where the node is located." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "When the time frame scale is set at the level of the time machine, the scale setting affects all charts within the time machine. When set at the level of the timeline chart, the setting overrides the time frame scale at the time machine level.", + "updated": 1610136694170 + }, + { + "style": "Success", + "text": "This allows comparing charts in different time frames, but still synchronized at the datetime level." + }, + { + "style": "Block", + "text": "Charts" + }, + { + "style": "Title", + "text": "Time Frame Scale at the Charts" + }, + { + "style": "Text", + "text": "To set a time frame value, place the mouse pointer over the corresponding time machine or timeline chart time frame box and scroll the mouse wheel.", + "updated": 1609783625339 + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609783710191 + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Title", + "text": "Time Frame Scale Configuration", + "updated": 1609783714701 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609783740323 + }, + { + "style": "Javascript", + "text": "01-hs\n02-hs\n03-hs\n04-hs\n06-hs\n08-hs\n12-hs\n24-hs", + "updated": 1609783795852 + }, + { + "style": "Note", + "text": "The values entered via the design space and the charts are synchronized and stored in the node.", + "updated": 1609783812074 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/time-frame.json b/Projects/Superalgos/Schemas/Docs-Nodes/time-frame.json new file mode 100644 index 000000000..32b9ae05b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/time-frame.json @@ -0,0 +1,156 @@ +{ + "type": "Time Frame", + "definition": { + "text": "The time frame determines the collection of candles to be analyzed during a backtesting session, and the frequency with which the trading bot runs on paper trading, forward testing, and live trading sessions." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In the context of backtesting sessions, what time frame you decide to run the session depends on the trading system being tested. If the trading system makes 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." + }, + { + "style": "Text", + "text": "In other words, in backtesting sessions, you should match the time frame to the smallest period on which the trading system makes decisions." + }, + { + "style": "Text", + "text": "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.", + "updated": 1609676121406 + }, + { + "style": "Important", + "text": "Remember that stop and take profit orders are not placed at the exchange after the take position event, that is, once you enter the position. Instead, the trading bot checks the current price upon each execution cycle and determines whether targets have been hit or not. If targets are hit, only then orders are placed. That is why running live trading sessions at the 01-min time frame is recommended. Learn more about the management of take profit and stop loss targets." + }, + { + "style": "Text", + "text": "If for whatever reason you don't need to minimize the potential for slippage when hitting stop or take profit targets, you may choose whatever time frame you like, taking into account the explanations below." + }, + { + "style": "Title", + "text": "Why the Time Frame Matters", + "updated": 1609675221484 + }, + { + "style": "Callout", + "text": "Running trading sessions of any given trading system on different time frames may produce different results. This is because the behavior of a trading session may vary depending on how well the time frame on which the session is run matches the logic of the strategy." + }, + { + "style": "Text", + "text": "The trading bot evaluates closed candles only. At any given point in time, the current candle in each time frame is the candle that closed last." + }, + { + "style": "Text", + "text": "For example, let's say it's 11 hours, 39 minutes and 30 seconds of June 11th, 2020. This is how the system determines which is the current candle:", + "updated": 1609676164831 + }, + { + "style": "List", + "text": "1-minute candle: it is the one that closed at 11:38:59.999.", + "updated": 1609675822811 + }, + { + "style": "List", + "text": "5-minute candle: it is the one that closed at 11:34:59.999.", + "updated": 1609675843830 + }, + { + "style": "List", + "text": "30-minute candle: it is the one that closed at 11:29:59.999.", + "updated": 1609675857707 + }, + { + "style": "List", + "text": "1-hour candle: it is the one that closed at 10:59:59.999.", + "updated": 1609675872973 + }, + { + "style": "List", + "text": "2-hour candle: it is the one that closed at 09:59:59.999.", + "updated": 1609675887917 + }, + { + "style": "List", + "text": "6-hour candle: it is the one that closed at 05:59:59.999.", + "updated": 1609675901312 + }, + { + "style": "List", + "text": "24-hour candle: it is the one that closed at 23:59:59.999 of June 10th!", + "updated": 1609675923840 + }, + { + "style": "Text", + "text": "Let's say the trading system implements conditions that evaluate 30-minute and 1-hour candles." + }, + { + "style": "Text", + "text": "If a session is run at the 30-minutes time frame, all 30-minutes candles are evaluated. Also, all 1-hour candles are evaluated twice." + }, + { + "style": "Text", + "text": "However, if the session is run at the 1-hour time frame, only one out of two 30-minute candles are evaluated." + }, + { + "style": "Text", + "text": "And if the session is run at the 2-hour time frame, only one out of four 30-minute candles and one out of two 1-hour candles are evaluated." + }, + { + "style": "Text", + "text": "This means that running the session (for this particular trading system) at the 30-minute time frame has higher probabilities of conditions evaluating 30-minute candles to be true during the session." + }, + { + "style": "Callout", + "text": "In other words, when running the session on time frames higher than the time frame on which decisions are made, chances are the bot will eventually skip candles on which conditions would have evaluated true, potentially skipping trading opportunities." + }, + { + "style": "Text", + "text": "The above is true for all types of trading sessions." + }, + { + "style": "Title", + "text": "Backtesting Vs. Live Sessions", + "updated": 1609675561159 + }, + { + "style": "Text", + "text": "In a backtesting session, the collection of candles evaluated is determined by the time frame selected, to better simulate what would happen if the live trading session was run in the same time frame.", + "updated": 1609676241233 + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Time Frame Configuration", + "updated": 1609676252035 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609676263152 + }, + { + "style": "List", + "text": "value is the setting for the time frame. You may use any of the values below." + }, + { + "style": "Javascript", + "text": "01-min\n02-min\n03-min\n04-min\n05-min\n10-min\n15-min\n20-min\n30-min\n45-min", + "updated": 1609676325072 + }, + { + "style": "Text", + "text": "Available options at larger time frames are:" + }, + { + "style": "Javascript", + "text": "01-hs\n02-hs\n03-hs\n04-hs\n06-hs\n08-hs\n12-hs\n24-hs", + "updated": 1609676376826 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/time-frames-filter.json b/Projects/Superalgos/Schemas/Docs-Nodes/time-frames-filter.json new file mode 100644 index 000000000..d01899747 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/time-frames-filter.json @@ -0,0 +1,68 @@ +{ + "type": "Time Frames Filter", + "definition": { + "text": "The time frame filters node allows control over which time frames are to be calculated by each indicator bot instance running on the data mining operation." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Limiting the number of time frames calculated by any given indicator to the few that may be required by a particular trading system has a significant positive impact on performance: it reduces the load on the CPU, the memory requirements, and the requirements of storage space, in proportion with the time frames you remove." + }, + { + "style": "Text", + "text": "When a time frames filter is set up, a Time.Frames.json file is created by the indicator process in the corresponding output folder. This file is read by others—such as the charting system—to get the information regarding which time frames are available and which are not, to avoid reporting errors." + }, + { + "style": "Important", + "text": "Before applying a time frames filter or changing the configuration, that is, changing which time frames are produced and which are not, it is highly recommended to delete the data corresponding to the affected indicator, to avoid inconsistencies in the data that may later cause confusion." + }, + { + "style": "Note", + "text": "When no time frames filter is defined, the bot processes all time frames by default." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Configuring Time Frames Filter" + }, + { + "style": "Text", + "text": "Select Configure on the menu to access the configuration." + }, + { + "style": "Text", + "text": "{" + }, + { + "style": "Text", + "text": "\"dailyTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ]," + }, + { + "style": "Text", + "text": "\"marketTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\"]" + }, + { + "style": "Text", + "text": "}" + }, + { + "style": "Text", + "text": " dailyTimeFrames features the time frames corresponding to the daily files* type of data structure; in practical terms, the time frames below one hour." + }, + { + "style": "Text", + "text": " marketTimeFrames features the time frames corresponding to the market files* type of data structure; in practical terms, the time frames of one hour and above." + }, + { + "style": "Text", + "text": "{% include tip.html content=\"Remove the time frames you are not interested in, making sure the JSON file is still valid.\" %}" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/time-machine.json b/Projects/Superalgos/Schemas/Docs-Nodes/time-machine.json new file mode 100644 index 000000000..2f0c619fb --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/time-machine.json @@ -0,0 +1,20 @@ +{ + "type": "Time Machine", + "definition": { + "text": "A time machine synchronizes multiple timeline charts over the same timeline. Timeline charts within a time machine may have different rate scales or time frame scales, but their time scale will always match." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Think of a time machine as an aide that helps you keep any number of pieces of information synchronized on the same time scale. Every data structure that you set up within the same time machine, will always be synchronized in time. Put in other words, the open and closing datetime of each dataset will always be aligned on the vertical axis." + }, + { + "style": "Text", + "text": "On the other hand, when you arrange charts on different time machines, they are completely independent of one another." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/time-range.json b/Projects/Superalgos/Schemas/Docs-Nodes/time-range.json new file mode 100644 index 000000000..aef3d3b5f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/time-range.json @@ -0,0 +1,69 @@ +{ + "type": "Time Range", + "definition": { + "text": "The time range parameter determines the period of time on which the trading session is run." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The parameter offers precise control over the duration, starting and ending points of the session. Several options are available, and there are differences in how backtesting and the rest of the types of trading sessions function in this regard." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Time Range Configuration", + "updated": 1610120685734 + }, + { + "style": "Subtitle", + "text": "On Backtesting Sessions", + "updated": 1610120720887 + }, + { + "style": "Json", + "text": "{\n\"initialDatetime\": \"2019-09-01T00:00:00.000Z\",\n\"finalDatetime\": \"2019-09-25T00:00:00.000Z\"\n}", + "updated": 1610120762359 + }, + { + "style": "List", + "text": "initialDatetime is the datetime the session starts at." + }, + { + "style": "List", + "text": "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." + }, + { + "style": "Subtitle", + "text": "On Paper Trading, Forward Testing and Live Trading Sessions", + "updated": 1610120775806 + }, + { + "style": "Json", + "text": "{\n\"initialDatetime\": \"2019-09-01T00:00:00.000Z\",\n\"finalDatetime\": \"2019-09-25T00:00:00.000Z\",\n\"allowStartingFromThePast\": false\n}", + "updated": 1610120789823 + }, + { + "style": "Text", + "text": "By default, paper trading, forward testing and live trading sessions start at the datetime the session is run, that is, the present time. Such a behavior is in accordance with the most common use case, by which a user starting a new live trading session usually wishes the session to start at that moment." + }, + { + "style": "Text", + "text": "However, users have requested to be allowed to start live sessions in the past. Such a feature may be useful, for example, to take an opportunity that was just missed for whatever reason, including technical ones." + }, + { + "style": "List", + "text": "initialDatetime, in combination with the allowStartingFromThePast parameter, is a hack to allow a live session to start from a date in the past. If there is a valid initialDatetime and allowStartingFromThePast is true, then the live session effectively starts from the specified date in the past. If allowStartingFromThePast is false the initialDatetime is ignored and the session starts from the present time." + }, + { + "style": "List", + "text": "allowStartingFromThePast may be true or false." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/time-scale.json b/Projects/Superalgos/Schemas/Docs-Nodes/time-scale.json new file mode 100644 index 000000000..8a8904f6a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/time-scale.json @@ -0,0 +1,143 @@ +{ + "type": "Time Scale", + "definition": { + "text": "The time scale controls the scale of the horizontal axis, that is, the timeline of the corresponding time machine, and of all of the timeline charts within it." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Title", + "text": "Scale Minimum and Maximum Values" + }, + { + "style": "Text", + "text": "A time scale has a minimum and a maximum value. The minimum value is the value at the left border of the chart. The maximum, is the value at the right border of the chart." + }, + { + "style": "Text", + "text": "In technical terms, the minimum and maximum scale values are constantly changing as, whenever you pan across the charts, you are directly affecting the minimum and maximum scale values. That said, the actual scale doesn't change when panning across a chart." + }, + { + "style": "Title", + "text": "Automatic Scale" + }, + { + "style": "Text", + "text": "The system features an automatic adjustment of the scale, which is turned on by default in our shared workspaces. The scale may be automatic in its minimum value, in its maximum value, or both." + }, + { + "style": "Text", + "text": "When the scale is automatic in the minimum value, the scale is adjusted so that the chart shows all data from the beginning of the market. Panning the charts under such setting has the effect of compressing and decompressing the data against the left border of the chart." + }, + { + "style": "Text", + "text": "When the scale is automatic in the maximum value, the scale is adjusted so that the chart shows all data until the end of the market. In such case, panning the charts has the effect of compressing and decompressing the data against the right border of the chart." + }, + { + "style": "Text", + "text": "When the scale is automatic in both the minimum and maximum value, the scale is adjusted so that the chart shows the whole market. In such case, when you click and drag to pan the charts, the settings turns back to manual on both ends of the chart." + }, + { + "style": "Note", + "text": "Having the time scale set to automatic by default helps finding the data as soon as it starts being processed the first time you run the Masters bot instances." + }, + { + "style": "Title", + "text": "Manual Scale" + }, + { + "style": "Text", + "text": "The scale features a manual mode. When in manual mode the scale does not change, even if the minimum and maximum values change while panning through a chart. This is the natural state of the time scale." + }, + { + "style": "Block", + "text": "Charts" + }, + { + "style": "Title", + "text": "Time Scale at the Charts" + }, + { + "style": "Subtitle", + "text": "Automatic Scale", + "updated": 1609782523590 + }, + { + "style": "Text", + "text": "To change the automatic scale settings, place the mouse pointer over the corresponding time box, press the Shift key and slowly scroll the wheel of the mouse. The action cycles through different possible scale automation settings. Notice a tiny green triangle to the sides of the time scale icon.", + "updated": 1609782562160 + }, + { + "style": "List", + "text": "A triangle pointing right means that the maximum value of the scale is automatic." + }, + { + "style": "List", + "text": "A triangle pointing left means that the minimum value of the scale is automatic." + }, + { + "style": "List", + "text": "Both triangles present at the same time means that both minimum and maximum values are automatic." + }, + { + "style": "List", + "text": "No triangle means that both minimum and maximum values are in manual mode." + }, + { + "style": "Subtitle", + "text": "Manual Scale", + "updated": 1609782535042 + }, + { + "style": "Text", + "text": "2. To adjust the scale, make sure either or both minimum and maximum values are in manual mode. Place the mouse pointer over the time box and scroll the wheel of the mouse. The scale will increase or decrease accordingly, depending on which values are set to manual." + }, + { + "style": "Text", + "text": "{% include image.html file='interface/time-scale-01.gif' url='yes' max-width='100' caption='When the scale is set to manual, scrolling the mouse wheel on top of the time scale box changes the scale.' %}" + }, + { + "style": "Text", + "text": "Notice that, while changing the scale, a number is displayed replacing the actual datetime. This is a reference value of the scale, that may serve for comparison purposes, with scales in other charts." + }, + { + "style": "Note", + "text": "This action has no effect when both minimum and maximum values are set to automatic mode." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609782587544 + }, + { + "style": "Title", + "text": "Time Scale Configuration", + "updated": 1609782618234 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609782652970 + }, + { + "style": "List", + "text": "minValue is a date in the Epoch time format that represents the value of the scale at the left border of the chart.", + "updated": 1609782661151 + }, + { + "style": "List", + "text": "maxValue is a date in the Epoch time format that represents the value of the scale at the right border of the chart." + }, + { + "style": "List", + "text": "autoMinScale sets the mode of the scale for the minimum value; true sets the value to automatic, false sets the value to manual." + }, + { + "style": "List", + "text": "autoMaxScale sets the mode of the scale for the maximum value; true sets the value to automatic, false sets the value to manual." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/timeline-chart.json b/Projects/Superalgos/Schemas/Docs-Nodes/timeline-chart.json new file mode 100644 index 000000000..94cddfb88 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/timeline-chart.json @@ -0,0 +1,33 @@ +{ + "type": "Timeline Chart", + "definition": { + "text": "The timeline chart represents a chart within a time machine, which may have independent rate and time frame scales, as well as particular layers." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In other words, a timeline chart—often referred simply as chart—is a set of information to be displayed over a timeline. The information may include candles—the main and foremost resource—as well as any other indicator, study or—in general—data products that may be available." + }, + { + "style": "Text", + "text": "You may add as many charts as you wish. Charts within the same time machine are synchronized in the y-axis, that is, in the datetime dimension. Charts in different time machines are independent of each other concerning the datetime. In either case, you may also add rate scales and time frame scales at the timeline charts level." + }, + { + "style": "Success", + "text": "When a Rate Scale or a Time Frame Scale are set up at the level of the Timeline Chart, they affect the layers on the said timeline chart only. This trick allows users to vertically position data, by manipulating the scale of the layers in the timeline chart independently from the scale of the rest of the charts, which are governed by the scales of the Time Machine.", + "updated": 1610136594836 + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Text", + "text": "The information that each timeline chart makes available on the screen is given by the layers set up in the corresponding layers manager." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/trading-bot-instance.json b/Projects/Superalgos/Schemas/Docs-Nodes/trading-bot-instance.json new file mode 100644 index 000000000..385b1e6cf --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/trading-bot-instance.json @@ -0,0 +1,27 @@ +{ + "type": "Trading Bot Instance", + "definition": { + "text": "A trading bot instance is a reference to the Trading Bot as defined in the Masters data mine. The instance of the bot runs the defined processes and generates the defined data products.", + "updated": 1609668718157 + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The trading bot instance holds no definitions as to what the bot does. Instead, its process instance references the process definition in the Masters data mine. That is how the indicator bot instance obtains the information of what it needs to do once it is run.", + "updated": 1610105308091 + }, + { + "style": "Note", + "text": "You do not start or stop a Trading Bot Instance directly. Instead, you start or stop the corresponding task.", + "updated": 1609668832266 + }, + { + "style": "Block", + "text": "Running" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/trading-bot.json b/Projects/Superalgos/Schemas/Docs-Nodes/trading-bot.json new file mode 100644 index 000000000..55b489ee4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/trading-bot.json @@ -0,0 +1,38 @@ +{ + "type": "Trading Bot", + "definition": { + "text": "A trading bot is a computer program that—based on datasets exposed as products by other bots (counting sensors, indicators and even other trading bots)—applies the trading logic defined on a Trading System to, on one side, generate a complete trading simulation (outputting datasets that include trades, the action of strategies, validation of conditions, etc.), and on the other side, manage the execution of orders when on a forward testing or live trading session.", + "updated": 1609861419818 + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In Superalgos, a trading bot is a computer program designed to leverage the Superalgos infrastructure to provide smart trading features to users building, testing, and deploying trading systems. As such, a trading bot does not feature trading logic in and of itself. Instead, it executes the logic defined in trading systems." + }, + { + "style": "Text", + "text": "Put in other words, when Superalgos users define trading systems and the trading strategies within, they are not building a trading bot. Instead, they are defining a set of instructions that a trading bot will then interpret and execute." + }, + { + "style": "Text", + "text": "Trading bots have access to every piece of infrastructure built in Superalgos. One of the noteworthy sections of the infrastructure relevant to trading bots are trading mines themselves. Trading bots may be quite complex pieces of software. To name two of the most prominent characteristics: the bot needs to consider multiple dimensions of information and needs to be highly reliable, as its activity entails monetary transactions." + }, + { + "style": "Text", + "text": "Trading mines make building trading bots a more accessible feat, providing a framework to produce compartmentalized definitions for the bots' processes and products, just like data mines do for sensors and indicators." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Trading Bot Configuration", + "updated": 1609861438022 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/trading-engine-reference.json b/Projects/Superalgos/Schemas/Docs-Nodes/trading-engine-reference.json new file mode 100644 index 000000000..f5e6121e4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/trading-engine-reference.json @@ -0,0 +1,16 @@ +{ + "type": "Trading Engine Reference", + "definition": { + "text": "A trading engine reference determines which trading engine the trading bot shall use to structure the data it processes while running the trading session." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In other words, the trading engine reference lets the process instance know which data structure to use to store information related to the trading session. This means that a workspace may have more than one trading engine." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/trading-engine.json b/Projects/Superalgos/Schemas/Docs-Nodes/trading-engine.json new file mode 100644 index 000000000..bd4850ae7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/trading-engine.json @@ -0,0 +1,24 @@ +{ + "type": "Trading Engine", + "definition": { + "text": "The trading engine hierarchy is the data structure used by the trading bot to keep runtime information highly accessible and exposed to others." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "You will use this hierarchy for two main purposes:" + }, + { + "style": "List", + "text": "To let your trading systems access the information processed by the trading bot. This allows strategies to keep track of and react to current and past events—including those involving the exchange, such as orders placed or filled—as the bot is running." + }, + { + "style": "List", + "text": "To keep track of the actions of the trading bot via the design space visual environment and panels over the charts. By analyzing runtime information, you may gain a detailed understanding of what happens, when, and why, throughout a trading session." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/trading-mine-products.json b/Projects/Superalgos/Schemas/Docs-Nodes/trading-mine-products.json new file mode 100644 index 000000000..718304ad4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/trading-mine-products.json @@ -0,0 +1,24 @@ +{ + "type": "Trading Mine Products", + "definition": { + "text": "Trading mine products are references established with trading mines to facilitate establishing data product references with multiple products in the given mine." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "At this point, Superalgos ships with a single trading mine, featuring a single low frequency trading bot. However, developers may create their own trading bots or fork the existing one." + }, + { + "style": "Text", + "text": "The node may be used as an organizational device, simply to arrange bot products. However, the smart use of the node involves automating the deployment of multiple data products." + }, + { + "style": "Text", + "text": "The use of the trading mine products node is optional, as data products may also exist outside of trading mine products nodes." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/trading-mine-tasks.json b/Projects/Superalgos/Schemas/Docs-Nodes/trading-mine-tasks.json new file mode 100644 index 000000000..ad4bf3c64 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/trading-mine-tasks.json @@ -0,0 +1,24 @@ +{ + "type": "Trading Mine Tasks", + "definition": { + "text": "The trading mine tasks node is an organizational device that groups tasks corresponding to the referenced trading mine." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The market trading tasks node must reference the definition of a data mine. The node may spawn tasks for each bot in the data mine." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Block", + "text": "Running" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/trading-mine.json b/Projects/Superalgos/Schemas/Docs-Nodes/trading-mine.json new file mode 100644 index 000000000..b37cb599c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/trading-mine.json @@ -0,0 +1,34 @@ +{ + "type": "Trading Mine", + "definition": { + "text": "A trading mine is a hierarchy that contains definitions of trading bots and their plotters. These definitions make up the actual programs of such bots—the source code." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Altough Superalgos is starting out with a single trading bot, the system is prepared to feature as many trading bots as developers are willing to create. As such, a trading mine is a catalog of trading bots." + }, + { + "style": "Text", + "text": "Notice that, in the context of Superalgos, a trading bot has nothing to do with the trading logic. Think of trading logic as the business rules which—in Superalgos—are defined in trading systems. Anyone may build a Trading System, meaning that creating trading systems and the trading strategies within does not require coding.", + "updated": 1609861342619 + }, + { + "style": "Text", + "text": "Trading mines work similarly to data mines in the sense that they provide the same kind of tools to structure the definitions of bots, including process definitions, product definitions, and plotters." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Trading Mine Configuration", + "updated": 1609861240385 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/trading-mines-data.json b/Projects/Superalgos/Schemas/Docs-Nodes/trading-mines-data.json new file mode 100644 index 000000000..3461f233d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/trading-mines-data.json @@ -0,0 +1,26 @@ +{ + "type": "Trading Mines Data", + "definition": { + "text": "Trading Mines Data refers to data that is generated as a consequence of running a trading session, that is, data the trading bot instance generates while running backtesting, paper trading, forward testing, or live trading sessions.", + "updated": 1609667925651 + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Trading mines data is sorted by exchange, market, the corresponding trading session, and the corresponding trading mine, trading bot, and bot product. That is, most of the nodes in this section of the hierarchy play an organizational role.", + "updated": 1609667942769 + }, + { + "style": "Text", + "text": "Many of them require references to the nodes that delimit the context for which the data is applicable. For example, the exchange trading products node must reference one of the installed exchanges, in particular, the exchange on which the trading operation is run. These references help other entities understand the context to which the data belongs to." + }, + { + "style": "Text", + "text": "Whenever you create trading tasks manually from within the Network hierarchy (as opposed to using the install market function under the exchange markets node of the Crypto Ecosystem hierarchy" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/trading-parameters.json b/Projects/Superalgos/Schemas/Docs-Nodes/trading-parameters.json new file mode 100644 index 000000000..528b6508e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/trading-parameters.json @@ -0,0 +1,20 @@ +{ + "type": "Trading Parameters", + "definition": { + "text": "Parameters are properties of trading sessions, defined by users, to determine their behavior and improve the quality of simulations." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The behavior of parameters may vary depending on the type of session." + }, + { + "style": "Text", + "text": "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 to account for different possible scenarios." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/trading-process-instance.json b/Projects/Superalgos/Schemas/Docs-Nodes/trading-process-instance.json new file mode 100644 index 000000000..0026bbcc9 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/trading-process-instance.json @@ -0,0 +1,25 @@ +{ + "type": "Trading Process Instance", + "definition": { + "text": "A trading process instance is a reference to the process definition of the trading bot, as defined in the Masters data mine." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The trading process instance must reference the Multi-Period process definition of the Jason trading bot in the Masters data mine." + }, + { + "style": "Block", + "text": "Running" + }, + { + "style": "Note", + "text": "You do not start or stop a Trading Process Instance directly. Instead, you start or stop the corresponding task.", + "updated": 1609668850890 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/trading-session-reference.json b/Projects/Superalgos/Schemas/Docs-Nodes/trading-session-reference.json new file mode 100644 index 000000000..3033dee16 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/trading-session-reference.json @@ -0,0 +1,16 @@ +{ + "type": "Trading Session Reference", + "definition": { + "text": "A session reference establishes which session is the one which shall store data in the current location." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "A such, the session reference node must establish a reference with a trading session. Also, its offspring nodes determine precisely which data products are stored." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/trading-strategy.json b/Projects/Superalgos/Schemas/Docs-Nodes/trading-strategy.json new file mode 100644 index 000000000..44de970a6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/trading-strategy.json @@ -0,0 +1,65 @@ +{ + "type": "Trading Strategy", + "definition": { + "text": "A trading strategy is the description of a set of actions or events run in stages. Events are triggered upon the validation of precise conditions describing specific market situations. Trading strategies are designed to achieve a specific goal within the broader plan of a trading system via taking and managing positions." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The definition of a strategy may be analyzed in three sections:" + }, + { + "style": "Callout", + "text": "A strategy is a set of actions occurring in stages" + }, + { + "style": "Hierarchy", + "text": "Superalgos->Trading Strategy->2", + "updated": 1610138980124 + }, + { + "style": "Text", + "text": "While stages are played in a sequence, upon execution there are overlaps. That is, a stage doesn't need to be closed for the next stage to be opened. The framework sets a clear separation of the concepts embodied in each stage to facilitate the process of defining and developing a trading system. But the truth is that, both at the conceptual level and during execution, the lines between stages are rather blurry." + }, + { + "style": "Callout", + "text": "designed to achieve a specific goal within a broader plan" + }, + { + "style": "Text", + "text": "Your investment plan or trading career may have any number of goals (e.g.: accumulating a certain asset, diversifying on a basket of coins, annual profit targets, etc.). If you attempt to achieve more than one goal with a single strategy, you will sooner or later run into problems. It may be doable, but the strategy would certainly be more complex than is necessary or desirable. In any case, the logical thing to do is to analyze each goal separately so that you may design (at least) one clear, straightforward strategy for each goal." + }, + { + "style": "Text", + "text": "One of the edges granted by trading automation is the capacity to develop and deploy an unlimited number of strategies. At the same time, Superalgos allows the administration of complexity by breaking down and structuring concepts in small units: a trading system contains strategies, which contain stages, which contain specific definitions. " + }, + { + "style": "Text", + "text": "Understanding that keeping things simple is important will help you develop a robust and extensible arsenal of bots. Simplicity is the key to sustainability." + }, + { + "style": "Text", + "text": "In other words, the infrastructure provided by Superalgos enables the hyperspecialization of strategies. Do not aim to trade in all sorts of market situations with the same strategy. Instead, develop a strategy for each market situation you wish to trade." + }, + { + "style": "Callout", + "text": "via taking and managing positions" + }, + { + "style": "Text", + "text": "The definition of strategy points to the concept of a position. A position is a process that exchanges the base asset for the quoted asset and that—after some time, as the position develops and targets are hit—exchanges back the quoted asset for the base asset." + }, + { + "style": "Text", + "text": "The framework implemented in the Superalgos Protocol is optimized to work with such a concept." + }, + { + "style": "Text", + "text": "However, Superalgos is flexible enough to allow you to override this hard interpretation of the concept of a position. For example, you may design market-making strategies, a strategy to balance portfolios, or develop all sorts of ideas that don't necessarily fit in that part of the definition." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/trading-system-reference.json b/Projects/Superalgos/Schemas/Docs-Nodes/trading-system-reference.json new file mode 100644 index 000000000..d459f981b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/trading-system-reference.json @@ -0,0 +1,16 @@ +{ + "type": "Trading System Reference", + "definition": { + "text": "A trading engine reference determines which trading system shall be evaluated by the trading bot to run the trading session." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "In other words, the trading system reference lets the process instance know which trading rules to process for the given session." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/trading-system.json b/Projects/Superalgos/Schemas/Docs-Nodes/trading-system.json new file mode 100644 index 000000000..ca7095d59 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/trading-system.json @@ -0,0 +1,32 @@ +{ + "type": "Trading System", + "definition": { + "text": "A trading system is a framework handling the low-level logic that serves to structure the processes and methods used to implement and deploy trading strategies." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "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 operating on the same market and sharing the same initial capital allocation." + }, + { + "style": "Text", + "text": "You use a trading system to define strategies following the Superalgos Protocol, splitting strategies into four stages: trigger, open, manage, and close." + }, + { + "style": "Text", + "text": "The concept of describing strategies in stages is fundamental to the methodical aspect of the trading system, as it provides a framework to run every strategy with the same framework, which contributes to developing scalable trading systems that may grow to any number of strategies." + }, + { + "style": "Text", + "text": "When a trading system features more than one strategy, the first strategy has precedence over the second, the second over the third, and so on. This means that strategies are evaluated in a sequence. When a given strategy is triggered-on, the remaining strategies in the queue are no longer evaluated until the strategy triggers off. In other words, when multiple strategies are deployed within a single trading system, only one strategy may trade at any given moment, and precedence is given by the order around the trading system node." + }, + { + "style": "Text", + "text": "As a corollary to the above, if you wish strategies to operate in different markets, or you wish strategies to be able to take positions simultaneously, then you must set up those strategies in different trading systems." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/trigger-off-event.json b/Projects/Superalgos/Schemas/Docs-Nodes/trigger-off-event.json new file mode 100644 index 000000000..39d949e67 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/trigger-off-event.json @@ -0,0 +1,24 @@ +{ + "type": "Trigger Off Event", + "definition": { + "text": "The trigger-off event defines the situation in which the corresponding strategy shall be triggered-off. A strategy that is triggered-off releases the capital in reserve and makes it available to other strategies in the trading system." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "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." + }, + { + "style": "Text", + "text": "Once a strategy is triggered-on, only two possible scenarios may follow. Either the take position event is triggered, thus, taking a position, or the trigger-off event is triggered first." + }, + { + "style": "Text", + "text": "In the first scenario, the strategy remains on until the position is closed. As the position is closed, the strategy is triggered-off. In the second scenario, the strategy is triggered-off immediately." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/trigger-off.json b/Projects/Superalgos/Schemas/Docs-Nodes/trigger-off.json new file mode 100644 index 000000000..eb49937e2 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/trigger-off.json @@ -0,0 +1,30 @@ +{ + "type": "Trigger Off", + "definition": { + "text": "Counts the periods since the last time a strategy was triggered off." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609925614727 + }, + { + "style": "Title", + "text": "Trigger Off Configuration", + "updated": 1609925629701 + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/trigger-on-event.json b/Projects/Superalgos/Schemas/Docs-Nodes/trigger-on-event.json new file mode 100644 index 000000000..a4d6db2d8 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/trigger-on-event.json @@ -0,0 +1,20 @@ +{ + "type": "Trigger On Event", + "definition": { + "text": "The trigger-on event defines the set of rules that need to be met for the corresponding strategy to be triggered on. A strategy that is triggered may use all the capital available to the trading system, and prevents other strategies in the system from triggering." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "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." + }, + { + "style": "Text", + "text": "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." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/trigger-on.json b/Projects/Superalgos/Schemas/Docs-Nodes/trigger-on.json new file mode 100644 index 000000000..f3f45aad1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/trigger-on.json @@ -0,0 +1,32 @@ +{ + "type": "Trigger On", + "definition": { + "text": "Counts the periods since the last time a strategy was triggered on." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609925546386 + }, + { + "style": "Title", + "text": "Trigger On Configuration", + "updated": 1609925538974 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609925526797 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609925522330 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/trigger-stage.json b/Projects/Superalgos/Schemas/Docs-Nodes/trigger-stage.json new file mode 100644 index 000000000..f84a4cfcf --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/trigger-stage.json @@ -0,0 +1,40 @@ +{ + "type": "Trigger Stage", + "definition": { + "text": "The trigger stage deals with monitoring the market in search of trading opportunities with the corresponding strategy." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "A trading system may have multiple strategies designed for the same market." + }, + { + "style": "Text", + "text": "An important aspect of trading systems is that they are allocated a certain amount of capital (see the base asset parameter of the trading session). As a consequence, strategies within a trading system share a certain capital allocation." + }, + { + "style": "Text", + "text": "The logic behind the concept of the trigger stage assumes that different strategies within a trading system may be specialized for trading in different market situations. The trigger stage in each strategy is, therefore, the mechanism by which any particular strategy within the trading system may be selected to trade, given any particular market situation." + }, + { + "style": "Text", + "text": "The triggering-on of a strategy effectively blocks the selection of any other strategy in the trading system and reserves the whole capital allocation for the one strategy selected, until the strategy is triggered-off." + }, + { + "style": "Text", + "text": "Therefore, if certain strategies are meant to trade under the same market situations and open trades concurrently, then those strategies should be deployed in separate trading systems." + }, + { + "style": "Text", + "text": "Once a strategy is triggered, the strategy may decide—or not—to take a position. If a position is taken, then the rest of the stages eventually become active." + }, + { + "style": "Text", + "text": "However, the strategy may also be triggered off without taking a position. When a strategy is triggered off, the trading system goes back to monitoring the trigger-on definitions for all strategies, and capital is released to be used by whatever strategy is triggered-on next." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/tutorial-step.json b/Projects/Superalgos/Schemas/Docs-Nodes/tutorial-step.json new file mode 100644 index 000000000..d30f2eac7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/tutorial-step.json @@ -0,0 +1,111 @@ +{ + "type": "Tutorial Step", + "definition": { + "text": "A tutorial step is a type of node within a tutorial that may not have offspring. As such, it is the smallest unit of information in the hierarchy." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Tutorial Step Configuration", + "updated": 1609706397520 + }, + { + "style": "Note", + "text": "The basic configuration of the tutorial step node is the same as the tutorial node. Refer to the latter, please." + }, + { + "style": "Text", + "text": "In addition to the basic configuration, tutorial step nodes feature a large collection of resources that allows you to manipulate the user interface and actual nodes in many ways." + }, + { + "style": "Subtitle", + "text": "Navigation", + "updated": 1609706308531 + }, + { + "style": "Text", + "text": "Setting up a reference to any node in the workspace and using the below parameter makes the step load next to the referenced node." + }, + { + "style": "Javascript", + "text": " \"positionAtReferenceParent\": true," + }, + { + "style": "Subtitle", + "text": "

Messages

" + }, + { + "style": "Text", + "text": "Setting up a reference to any node in the workspace and using the below parameters allows placing different types of messages on the referenced node." + }, + { + "style": "Javascript", + "text": "\"setErrorMessageReferenceParent\": \"This is a simulated error message!\"\n\"setInfoMessageReferenceParent\": \"This is a simulated info message!\"\n\"setValueReferenceParent\": \"This is a simulated value message!\"\n\"setPercentageReferenceParent\": \"This is a simulated progress message!\"\n\"setStatusReferenceParent\": \"This is a simulated status message!\"", + "updated": 1609706430970 + }, + { + "style": "Subtitle", + "text": "Centering and Zooming Into a Time Machine", + "updated": 1609706456866 + }, + { + "style": "Text", + "text": "Setting up a reference to a time machine node in the charting space hierarchy while using the below parameter causes the following:" + }, + { + "style": "List", + "text": "The charting space viewport is centered on the referenced time machine." + }, + { + "style": "List", + "text": "The time machine is adjusted to fit the aspect ratio of the screen." + }, + { + "style": "List", + "text": "The viewport zooms into the time machine." + }, + { + "style": "Javascript", + "text": " \"repositionAtTimeMachineReferenceParent\": true," + }, + { + "style": "Subtitle", + "text": "Pressing Keys When on a Time Machine", + "updated": 1609706492050 + }, + { + "style": "Text", + "text": "Setting up a reference to a time machine node in the charting space hierarchy and using the below parameters allows simulating the pressing of relevant key combinations when on a time machine." + }, + { + "style": "Javascript", + "text": "\"keyPressedTimeMachineReferenceParent\": {\n\"shiftKey\": true,\n\"ctrlKey\": true,\n\"metaKey\": true,\n\"key\": \"A\"\n}", + "updated": 1609706515897 + }, + { + "style": "List", + "text": "shiftKey, ctrlKey, and metaKey (Mac OS equivalent to Control) may be true or false." + }, + { + "style": "List", + "text": "key may be any letter or number." + }, + { + "style": "Text", + "text": "Setting up a reference to any node in the design space and using the following parameters allows you to edit the configuration of the referenced nodes and their offspring." + }, + { + "style": "Text", + "text": "The example below changes the configuration of the three different scale nodes under a time machine. In this case, the time machine is the node referenced, the nodePath is the path of the node whose configuration must be changed relative to the referenceParent, and the properties parameter is the actual configuration to be set." + }, + { + "style": "Javascript", + "text": "\"batchConfigChangesReferenceParent\": [\n{\n\"nodePath\": \"referenceParent.timeScale\",\n\"properties\": {\n\"autoMinScale\": false,\n\"autoMaxScale\": false,\n\"fromDate\": \"2020-08-31T23:40:00.000Z\",\n\"toDate\": \"2020-09-01T01:00:00.000Z\"\n}\n},\n{\n\"nodePath\": \"referenceParent.rateScale\",\n\"properties\": {\n\"autoMinScale\": false,\n\"autoMaxScale\": false,\n\"minValue\": 11400,\n\"maxValue\": 11800\n}\n},\n{\n\"nodePath\": \"referenceParent.timeFrameScale\",\n\"properties\": {\n\"value\": \"01-min\"\n}\n}\n]", + "updated": 1609706585341 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/tutorial-topic.json b/Projects/Superalgos/Schemas/Docs-Nodes/tutorial-topic.json new file mode 100644 index 000000000..d4d49f5bc --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/tutorial-topic.json @@ -0,0 +1,29 @@ +{ + "type": "Tutorial Topic", + "definition": { + "text": "A tutorial topic is an organizational device that helps to keep tutorial step nodes arranged in a logical hierarchy by topics and subtopics." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Tutorial topics may be nested within other tutorial topics in unlimited levels, and each level may feature multiple tutorial steps." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Tutorial Topic Configuration", + "updated": 1609706732502 + }, + { + "style": "Note", + "text": "The configuration of the tutorial topic node is the same as the tutorial node. Refer to the latter, please." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/tutorial.json b/Projects/Superalgos/Schemas/Docs-Nodes/tutorial.json new file mode 100644 index 000000000..24a017efb --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/tutorial.json @@ -0,0 +1,146 @@ +{ + "type": "Tutorial", + "definition": { + "text": "The tutorial hierarchy features a free arrangement of tutorial topic and tutorial step nodes that make up a tutorial. Each node in the hierarchy, including the parent tutorial node, represents a HTML page that is overlaid on top of both the design space and the charting space. " + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Nodes in the hierarchy may be arranged freely, meaning that there may be as many tutorial topics and tutorial steps as desired. In general terms, all types of nodes behave similarly in the sense that each node, independently of the precise type, represents a tutorial step in and of itself. There are subtle differences to be covered where appropriate." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "Tutorial Configuration", + "updated": 1609704877058 + }, + { + "style": "Text", + "text": "The configuration of each node in the tutorial hierarchy determines the content of each step. All types of nodes share the same basic configuration. However, tutorial step nodes have extra properties, described elsewhere." + }, + { + "style": "Text", + "text": "The layout of the HTML page is fixed (CSS styles are fixed too) and is made out of a sequence of HTML elements, each of which may or may not be used, depending on whether the corresponding configuration parameter exists or not in the configuration." + }, + { + "style": "Callout", + "text": "In other words, you may choose which elements of a potentially long list are used by filling the corresponding parameters with content or not." + }, + { + "style": "Note", + "text": "The HTML page features a limited space and does not support scrolling. If too much information is defined in the configuration, the resulting content overflows the available space. There is no system-side control to deal with such overflows, so it's up to you to spread information across multiple steps and keep each page within its limits." + }, + { + "style": "Success", + "text": "You may use HTML element tags and inline CSS as part of the content of parameters. Just consider that they shall be embedded in the fixed layout and their effectiveness may vary.", + "updated": 1609704857821 + }, + { + "style": "Success", + "text": "Configuration items are listed in the order of appearance in the HTML layout, that is, the sequence of HTML elements mentioned earlier.", + "updated": 1609704957111 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609705050135 + }, + { + "style": "List", + "text": "title is the main title of the page." + }, + { + "style": "List", + "text": "summary is a block of text preceded with the word Summary." + }, + { + "style": "List", + "text": "subTitle is the secondary title of the page.", + "updated": 1609705068885 + }, + { + "style": "List", + "text": "gif is the name of an image in the GIF format. Do not include the .gif extension in the configuration, and make sure that the name of the file features the extension in lowercase. The file must be stored in the \\Projects\\[Project-Name]\\Gifsfolder. The optimum size of the image is 400 px in width. For a step showing only a gif image, use 580 px for the height." + }, + { + "style": "List", + "text": "image is the name of one of the icons stored in the \\Projects\\[Project-Name]\\Iconsfolder, without the extension. When the configuration exists, the icon is placed within a table, on the left-hand side of the text block featured in the definition field. When there is no icon, the definition occupies the full width." + }, + { + "style": "List", + "text": "definition is a block of text in bold style.", + "updated": 1609705317162 + }, + { + "style": "List", + "text": "bulletListIntro is a block of text that serves as an introduction to the array of bullet points below." + }, + { + "style": "List", + "text": "bulletArray is the definition of any number of bullet points. The first field on each bullet is rendered in bold style and the second, in plain style. If the fields are left empty, the bullet list will still be included in the HTML, therefore, if you don't want bullets you must delete the whole definition of the bullet array from the configuration." + }, + { + "style": "List", + "text": "paragraph1 is a regular block of text." + }, + { + "style": "List", + "text": "callOut is a block of text in bold style with a green border and the left-hand side of the block." + }, + { + "style": "List", + "text": "externalLink allows you to set up a link that opens in a new tab at the end of the callOut block. Enter the URL in the first field and the anchor text in the second. You may also use HTML to include links anywhere else.", + "updated": 1609705400186 + }, + { + "style": "List", + "text": "paragraph2 is a regular block of text." + }, + { + "style": "List", + "text": "note is a block of text within a blue box preceded with the string Note.", + "updated": 1609705469745 + }, + { + "style": "List", + "text": "tip is a block of text within a green box preceded with the string Tip.", + "updated": 1609705475148 + }, + { + "style": "List", + "text": "important is a block of text within a yellow box preceded with the string Important.", + "updated": 1609705484520 + }, + { + "style": "List", + "text": "warning is a block of text within a red box preceded with the string Warning.", + "updated": 1609705492685 + }, + { + "style": "List", + "text": "position determines the position of the floating HTML. There are three alternatives... Left, Right, or leave the field empty to position the page in the center of the screen.", + "updated": 1609705546655 + }, + { + "style": "List", + "text": "slider determines the position of the horizontal slider. There are four alternatives... toTop, Right, or leave the field empty to position the page in the center of the screen.", + "updated": 1609705629835 + }, + { + "style": "List", + "text": "pressButton allows you to forcefully Stop the tutorial, go to the Next step, go to the Previous step, or Skip a step. When a step is loaded and one of these options is configured in this field, the action is applied immediately." + }, + { + "style": "List", + "text": "documentationURL: opens the Superalgos Documentation in the URL you configure. Use the complete URL, including the https:// protocol header.", + "updated": 1609705696017 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/user-account.json b/Projects/Superalgos/Schemas/Docs-Nodes/user-account.json new file mode 100644 index 000000000..4ce3b8cc7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/user-account.json @@ -0,0 +1,18 @@ +{ + "type": "User Account", + "definition": { + "text": "A user account represents a single account with the corresponding exchange, holding the definitions of user assets, including keys and balances." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content", + "updated": 1609777192116 + }, + { + "style": "Text", + "text": "For exchanges that support multiple accounts or subaccounts, use one User Account for each of them.", + "updated": 1609777221616 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/user-assets.json b/Projects/Superalgos/Schemas/Docs-Nodes/user-assets.json new file mode 100644 index 000000000..5980d0503 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/user-assets.json @@ -0,0 +1,12 @@ +{ + "type": "User Assets", + "definition": { + "text": "The user assets node groups the assets the user has at the exchange." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/user-defined-counter.json b/Projects/Superalgos/Schemas/Docs-Nodes/user-defined-counter.json new file mode 100644 index 000000000..54d62b666 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/user-defined-counter.json @@ -0,0 +1,32 @@ +{ + "type": "User Defined Counter", + "definition": { + "text": "" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609924999992 + }, + { + "style": "Title", + "text": "User Defined Counter Configuration", + "updated": 1609925012227 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609925019080 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609925024058 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/user-defined-parameters.json b/Projects/Superalgos/Schemas/Docs-Nodes/user-defined-parameters.json new file mode 100644 index 000000000..3262ca03a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/user-defined-parameters.json @@ -0,0 +1,39 @@ +{ + "type": "User Defined Parameters", + "definition": { + "text": "Users may define parameters to be used within the trading system during the trading session." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "Parameters defined in the configuration file of these node become available to trading systems using the following path: sessionParameters.userDefinedParameters.config.parameterName", + "updated": 1609676793115 + }, + { + "style": "Text", + "text": "These parameters may be useful, for example, when you wish to use a constant multiple times across several nodes in the definition of a strategy. Instead of feeding a constant value to all formulas involved, you may feed the parameter instead. This gives you the added benefit of being able to change the value of such a constant in a single point." + }, + { + "style": "Block", + "text": "Configuring" + }, + { + "style": "Title", + "text": "User Defined Parameters Configuration", + "updated": 1609676843832 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609676849477 + }, + { + "style": "List", + "text": "param1Name is an example of a name. You may change the names of the parameters as required. Values including text strings go between quotation marks, while numeric values, without. You may define as many parameters as you wish; simply separate them with a comma to keep a valid JSON format for the configuration file." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/user-defined-statistic.json b/Projects/Superalgos/Schemas/Docs-Nodes/user-defined-statistic.json new file mode 100644 index 000000000..57a526623 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/user-defined-statistic.json @@ -0,0 +1,36 @@ +{ + "type": "User Defined Statistic", + "definition": { + "text": "A user defined statistic allows users to create custom metrics by defining the corresponding calculation in a formula, in the context of the parent node." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The current contexts in which custom statistics may be defined are episodes, positions, and orders." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1609925352528 + }, + { + "style": "Title", + "text": "User Defined Statistic Configuration", + "updated": 1609925377015 + }, + { + "style": "Subtitle", + "text": "Properties", + "updated": 1609925382331 + }, + { + "style": "List", + "text": "initialValue allows resetting the initial state of the node to an arbitrary value.", + "updated": 1609925358740 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/user-keys.json b/Projects/Superalgos/Schemas/Docs-Nodes/user-keys.json new file mode 100644 index 000000000..235a3abd7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/user-keys.json @@ -0,0 +1,13 @@ +{ + "type": "User Keys", + "definition": { + "text": "The user keys node groups the various exchange account keys the user may have under the corresponding account with the exchange." + }, + "paragraphs": [ + { + "style": "Text", + "text": "You may want to have multiple exchange account keys under the same User Account to trade, for instance, with different trading systems, or different kinds of trading sessions.", + "updated": 1609777414403 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/viewport.json b/Projects/Superalgos/Schemas/Docs-Nodes/viewport.json new file mode 100644 index 000000000..507263acb --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/viewport.json @@ -0,0 +1,41 @@ +{ + "type": "Viewport", + "definition": { + "text": "The viewport is a window through which you may look into the charting space." + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content" + }, + { + "style": "Text", + "text": "The viewport offers an opening into the visual environment in which you may see, analyze and go over every piece of data involved in the process of trading cryptocurrencies:" + }, + { + "style": "List", + "text": "Live and historic market data;" + }, + { + "style": "List", + "text": "Data crunched in the form of indicators;" + }, + { + "style": "List", + "text": "The specific effects of the rules you will program into your strategies, and how strategies behave during testing and live trading sessions." + }, + { + "style": "Note", + "text": "The information that is out of focus, that is, out of the viewport, is not read nor rendered graphically, thus, does not consume resources." + }, + { + "style": "Block", + "text": "Configuring", + "updated": 1610135327217 + }, + { + "style": "Title", + "text": "Viewport Configuration" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/workspace.json b/Projects/Superalgos/Schemas/Docs-Nodes/workspace.json new file mode 100644 index 000000000..baaca420e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/workspace.json @@ -0,0 +1,3 @@ +{ + "type": "Workspace" +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/app-commands-001-app-contribute-command.json b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-001-app-contribute-command.json new file mode 100644 index 000000000..e60df3651 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-001-app-contribute-command.json @@ -0,0 +1,156 @@ +{ + "topic": "App Commands", + "pageNumber": "1", + "type": "App Contribute Command", + "definition": { + "text": "This command allows you to contribute the changes you have made to the Docs, code, plugins, etc. to the Superalgos main repository so that all other users can enjoy those contributions once they update their installation.", + "updated": 1609943282530 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Syntax", + "updated": 1609943337280 + }, + { + "style": "Javascript", + "text": "docs.contribute Message", + "updated": 1609943744230 + }, + { + "style": "Title", + "text": "Parameters" + }, + { + "style": "List", + "text": "Message: It is a text that briefly describes what your contribution is about. It is optional.", + "updated": 1609943656035 + }, + { + "style": "Title", + "text": "Example", + "updated": 1609943733276 + }, + { + "style": "Javascript", + "text": "docs.contribute Typo corrected.", + "updated": 1609943773867 + }, + { + "style": "Title", + "text": "For Devs", + "updated": 1609944102567 + }, + { + "style": "Text", + "text": "When you run this command the system will do this:" + }, + { + "style": "List", + "text": "git.add: It will add all the changes to a git commit.", + "updated": 1609944157893 + }, + { + "style": "List", + "text": "git.commit: It will git commit all the changes.", + "updated": 1609944167291 + }, + { + "style": "List", + "text": "git.push: It will push the changes to your Superalgos fork.", + "updated": 1609944179406 + }, + { + "style": "List", + "text": "github.createPullRequest: It will create a Pull Request at the Superalgos/Superalgos repository, or it will add the commit to an already open Pull Request.", + "updated": 1609944217509 + }, + { + "style": "Block", + "text": "Block Authentication", + "updated": 1609945385299 + }, + { + "style": "Title", + "text": "Authentication" + }, + { + "style": "Text", + "text": "In order for the App Contribute Command to run, two things need to happen:", + "updated": 1609945880855 + }, + { + "style": "List", + "text": "Git Authentication: The first time you run this command, Git will open a pop up window that will ask you for your Github.com credentials. This happens only once. Git will use these credential to be able to push the commit to your own Superalgos fork at Github.com." + }, + { + "style": "List", + "text": "Github Authentication: The creation of the Pull Request is something that happens at Github.com and for this operation you need to authenticate yourself. They way to do it, is to generate a token and set it up at the Github Api node's config in your workspace.", + "updated": 1609944902844 + }, + { + "style": "Subtitle", + "text": "GitHub.com Token" + }, + { + "style": "List", + "text": "You can create the token by following this link:" + }, + { + "style": "Link", + "text": "GitHub.com New Token Page->github.com/settings/tokens/new", + "updated": 1609944681129 + }, + { + "style": "Subtitle", + "text": "Github API Node" + }, + { + "style": "Text", + "text": "Once you have your token, find in the workspace the GitHub API node (you can search for it here at the Docs). The config of this node is something like this:" + }, + { + "style": "Javascript", + "text": "{\n \"username\": \"\",\n \"token\": \"\"\n}", + "updated": 1609944956313 + }, + { + "style": "Text", + "text": "If you can't find the node it is because it is not there. We only include it at the Getting Started Workspace. Don't worry you can create it. Just do this:", + "updated": 1609946259572 + }, + { + "style": "List", + "text": "Superalgos Project: Find this node." + }, + { + "style": "List", + "text": "Other Hierarchies: You can use this to create the APIs node.", + "updated": 1609946284646 + }, + { + "style": "List", + "text": "APIs: Use it to creat Github API" + }, + { + "style": "Subtitle", + "text": "Properties" + }, + { + "style": "List", + "text": "username: type here your GitHub.com username." + }, + { + "style": "List", + "text": "token: Paste here the token you have just created." + }, + { + "style": "Note", + "text": "Now you are all set. You might run the command at any time after you made some changes, either by editing / adding to the Docs, translating content, adding a Plugin, fixing a bug at the code, etc." + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/app-commands-002-app-update-command.json b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-002-app-update-command.json new file mode 100644 index 000000000..3c7341b28 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-002-app-update-command.json @@ -0,0 +1,37 @@ +{ + "topic": "App Commands", + "pageNumber": "2", + "type": "App Update Command", + "definition": { + "text": "Use this command to update your local installation of Superalgos to the latest version available. ", + "updated": 1610449365984 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Syntax", + "updated": 1610449451990 + }, + { + "style": "Json", + "text": "docs.update Message" + }, + { + "style": "Title", + "text": "Parameters" + }, + { + "style": "List", + "text": "Message: This is optional. It is the message that is going to be recorded at Github.com when we merge for you the branch of the main repository into the branch of your fork.", + "updated": 1610449466750 + }, + { + "style": "Title", + "text": "Examples" + }, + { + "style": "Json", + "text": "app.update" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/app-commands-errors-001-app-error-contribution-not-sent.json b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-errors-001-app-error-contribution-not-sent.json new file mode 100644 index 000000000..bb783919e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-errors-001-app-error-contribution-not-sent.json @@ -0,0 +1,16 @@ +{ + "topic": "App Commands Errors", + "pageNumber": "1", + "type": "App Error - Contribution Not Sent", + "definition": { + "text": "There was a problmen trying to send your contribution to your fork of the Superalgos repository, or from your fork to the Superalgos/Superalgos main repository.", + "updated": 1610441932801 + }, + "paragraphs": [ + { + "style": "Text", + "text": "You will need to check for the Client's console for details on what happened. After you fix the issue that prevented the App Contribute Command to run, you might try again.", + "updated": 1610441999433 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/app-commands-errors-002-app-error-github-credentials-missing.json b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-errors-002-app-error-github-credentials-missing.json new file mode 100644 index 000000000..f1bece006 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-errors-002-app-error-github-credentials-missing.json @@ -0,0 +1,42 @@ +{ + "topic": "App Commands Errors", + "pageNumber": "2", + "type": "App Error - Github Credentials Missing", + "definition": { + "text": "In order to manage contributions from within the app, or update the app by running a command; you first need to provide your Github.com credentials so that we can get you authenticated when pushing your changes to the remote repository.", + "updated": 1610449696988 + }, + "paragraphs": [ + { + "style": "Anchor", + "text": "Anchor Github Credentials Missing", + "updated": 1609855373585 + }, + { + "style": "Error", + "text": "Github Crendentials are Missing. Please solve this issue and try again." + }, + { + "style": "Text", + "text": "To solve this issue follow the following instructions on how to set up your GitHub.com credentials so that the system can automate the tasks needed to submit your contributions to the main repository of the Superalgos project.", + "updated": 1609945787577 + }, + { + "style": "Title", + "text": "Applies to" + }, + { + "style": "List", + "text": "App Contribute Command" + }, + { + "style": "List", + "text": "App Update Command" + }, + { + "style": "Include", + "text": "Superalgos->Topic->App Contribute Command->Block Authentication", + "updated": 1609945833844 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/app-commands-errors-003-app-error-update-failed.json b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-errors-003-app-error-update-failed.json new file mode 100644 index 000000000..151401896 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-errors-003-app-error-update-failed.json @@ -0,0 +1,14 @@ +{ + "topic": "App Commands Errors", + "pageNumber": "3", + "type": "App Error - Update Failed", + "definition": { + "text": "Write here a summary for this topic page." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-001-app-message-contribution-succeed.json b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-001-app-message-contribution-succeed.json new file mode 100644 index 000000000..8f881d306 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-001-app-message-contribution-succeed.json @@ -0,0 +1,16 @@ +{ + "topic": "App Commands Messages", + "pageNumber": "1", + "type": "App Message - Contribution Succeed", + "definition": { + "text": "Your contributions were uploaded to your Superalgo's Fork and from there a Pull Request was submitted to the main Superalgos's repository.", + "updated": 1610478517848 + }, + "paragraphs": [ + { + "style": "Success", + "text": "There is no further action from you required. Someone will review your changes and merge them into the latest version of the software. If your changes are rejected for any reason, you will have to follow the issue at the Github.com web site.", + "updated": 1610478538194 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-002-app-message-creating-pull-request.json b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-002-app-message-creating-pull-request.json new file mode 100644 index 000000000..5cbb0cd4e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-002-app-message-creating-pull-request.json @@ -0,0 +1,28 @@ +{ + "topic": "App Commands Messages", + "pageNumber": "2", + "type": "App Message - Creating Pull Request", + "definition": { + "text": "Hold on for a minute while we upload all the changes to GitHub.com and create a pull request with your contributions in it. You will be forwarded to a results page once the operation is complete.", + "updated": 1609941046109 + }, + "paragraphs": [ + { + "style": "Title", + "text": "What's next?", + "updated": 1609940971059 + }, + { + "style": "Text", + "text": "Someone will review the Pull Request and if everything is alright, it will merge the changes you submitted into the develop branch of the main Superalgos repository." + }, + { + "style": "Text", + "text": "If you submit more contributions while the Pull Request is under review, they will be automatically added to the already open Pull Request." + }, + { + "style": "Note", + "text": "By default you will receive an email from Github.com when the changes are merged, or if the reviewer made comments on it, or reject those changes. You can manage your email suscription setting directly at GitHub.com" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-003-app-message-updating-your-local-app.json b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-003-app-message-updating-your-local-app.json new file mode 100644 index 000000000..57c2a6b41 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-003-app-message-updating-your-local-app.json @@ -0,0 +1,14 @@ +{ + "topic": "App Commands Messages", + "pageNumber": "3", + "type": "App Message - Updating Your Local App", + "definition": { + "text": "Write here a summary for this topic page." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-004-app-message-update-succeed-new-version-found.json b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-004-app-message-update-succeed-new-version-found.json new file mode 100644 index 000000000..a08b5070d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-004-app-message-update-succeed-new-version-found.json @@ -0,0 +1,16 @@ +{ + "topic": "App Commands Messages", + "pageNumber": "4", + "type": "App Message - Update Succeed - New Version Found", + "definition": { + "text": "The update process ran successfully. It found a new version of Superalgos and it download it replacing the current one. In order for the new changes to take effect, you need to restart the Client and refresh the UI page.", + "updated": 1610454363656 + }, + "paragraphs": [ + { + "style": "Success", + "text": "You now have the latest version of Superalgos. Just remeber to restart the Client and the UI.", + "updated": 1610454408134 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-005-app-message-update-succeed-already-up-to-date.json b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-005-app-message-update-succeed-already-up-to-date.json new file mode 100644 index 000000000..d120b5ddf --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-005-app-message-update-succeed-already-up-to-date.json @@ -0,0 +1,16 @@ +{ + "topic": "App Commands Messages", + "pageNumber": "5", + "type": "App Message - Update Succeed - Already Up-To-Date", + "definition": { + "text": "The update process was executed successfully, but no changes where found since you were running the latest version of Superalgos. No further action need to be taken.", + "updated": 1610454235682 + }, + "paragraphs": [ + { + "style": "Success", + "text": "You are up-to-date. No need to reboot the Client or refresh the UI page.", + "updated": 1610454271911 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/branches-management-messages-001-switching-branches-changing-active-branch.json b/Projects/Superalgos/Schemas/Docs-Topics/branches-management-messages-001-switching-branches-changing-active-branch.json new file mode 100644 index 000000000..f7e156ef7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/branches-management-messages-001-switching-branches-changing-active-branch.json @@ -0,0 +1,14 @@ +{ + "topic": "Branches Management Messages", + "pageNumber": "1", + "type": "Switching Branches - Changing Current Branch", + "definition": { + "text": "Write here a summary for this topic page." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/branches-management-messages-002-switching-branches-active-branch-changed.json b/Projects/Superalgos/Schemas/Docs-Topics/branches-management-messages-002-switching-branches-active-branch-changed.json new file mode 100644 index 000000000..c3a73e05b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/branches-management-messages-002-switching-branches-active-branch-changed.json @@ -0,0 +1,14 @@ +{ + "topic": "Branches Management Messages", + "pageNumber": "2", + "type": "Switching Branches - Current Branch Changed", + "definition": { + "text": "Write here a summary for this topic page." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/branches-management-messages-002-switching-branches-current-branch-changed.json b/Projects/Superalgos/Schemas/Docs-Topics/branches-management-messages-002-switching-branches-current-branch-changed.json new file mode 100644 index 000000000..09033e94b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/branches-management-messages-002-switching-branches-current-branch-changed.json @@ -0,0 +1,25 @@ +{ + "topic": "Branches Management Messages", + "pageNumber": "2", + "type": "Switching Branches - Current Branch Changed", + "definition": { + "text": "You are now standing at the new Current Branch, but the App is still running the code of the previous branch. To finish this process you need to restart the Superalgos Client and reload the UI. ", + "updated": 1610543555871 + }, + "paragraphs": [ + { + "style": "Success", + "text": "Also remeber that if you have tasks running at the same machine where the Superalgos Client is, they are still running the previous branch code. You need to restart them too after you restart the client.", + "updated": 1610543634663 + }, + { + "style": "Success", + "text": "Even though you are standing in a different branch now, that does not mean that this branch is up-to-date with the latest changes made by other contributors. To update it, please run the App Update Command." + }, + { + "style": "Note", + "text": " This change does not affet other nodes running Superalgos. The only one affected is the one you are connecting to with the UI.", + "updated": 1610543958104 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/branches-management-messages-003-switching-branches-contributions-branch-changed.json b/Projects/Superalgos/Schemas/Docs-Topics/branches-management-messages-003-switching-branches-contributions-branch-changed.json new file mode 100644 index 000000000..e3b69611c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/branches-management-messages-003-switching-branches-contributions-branch-changed.json @@ -0,0 +1,16 @@ +{ + "topic": "Branches Management Messages", + "pageNumber": "3", + "type": "Switching Branches - Contributions Branch Changed", + "definition": { + "text": "Your Contributions Branch was succesfully changed. This will only have an inpact the next time you run the App Contribute Command. This branch is going to receive the Pull Request with all your changes.", + "updated": 1610543909026 + }, + "paragraphs": [ + { + "style": "Note", + "text": "There is no further action required.", + "updated": 1610543930216 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/branches-management-messages-004-switching-branches-active-branch-not-changed.json b/Projects/Superalgos/Schemas/Docs-Topics/branches-management-messages-004-switching-branches-active-branch-not-changed.json new file mode 100644 index 000000000..23ad5bb16 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/branches-management-messages-004-switching-branches-active-branch-not-changed.json @@ -0,0 +1,14 @@ +{ + "topic": "Branches Management Messages", + "pageNumber": "4", + "type": "Switching Branches - Current Branch Not Changed", + "definition": { + "text": "Write here a summary for this topic page." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/branches-management-messages-004-switching-branches-current-branch-not-changed.json b/Projects/Superalgos/Schemas/Docs-Topics/branches-management-messages-004-switching-branches-current-branch-not-changed.json new file mode 100644 index 000000000..981b84428 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/branches-management-messages-004-switching-branches-current-branch-not-changed.json @@ -0,0 +1,16 @@ +{ + "topic": "Branches Management Messages", + "pageNumber": "4", + "type": "Switching Branches - Current Branch Not Changed", + "definition": { + "text": "It was not possible to change the current branch. The most likely cause is that you have changes that you have not contribute yet. Run the App Contribute Command to send those changes to the main repository and try this command again.", + "updated": 1610543788194 + }, + "paragraphs": [ + { + "style": "Note", + "text": "More detailed info of what caused this failure to switch can be find at the Client's Console.", + "updated": 1610543823314 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/charting-space-001-fundamental-charting-space-concepts.json b/Projects/Superalgos/Schemas/Docs-Topics/charting-space-001-fundamental-charting-space-concepts.json new file mode 100644 index 000000000..2b294e275 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/charting-space-001-fundamental-charting-space-concepts.json @@ -0,0 +1,35 @@ +{ + "topic": "Charting Space", + "pageNumber": "1", + "type": "Fundamental Charting Space Concepts", + "definition": { + "text": "The charting space provides great control over how information generated on other hierarchies is visualized.", + "updated": 1610134431825 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Conceptually, Superalgos places the focus on the visual experience. Not just because it’s nice to see data in a graphical representation, but because our analysis capabilities are extended when we incorporate senses in the mix. Human’s capacity to think abstractly may be more or less developed across individuals, but one thing is clear: our thought process benefits from being able to see.", + "updated": 1610134441689 + }, + { + "style": "Text", + "text": "The Charting Space is conceived to provide an unprecedented level of flexibility and control over the way information is displayed graphically. Everything that you see in the form of charts when you pull the slider down is configured in the charting space hierarchy while using the information available in other hierarchies.", + "updated": 1610134480039 + }, + { + "style": "Text", + "text": "In other words, you use the charting space hierarchy to create Time Machines and Timeline Charts, and to configure their scales and so on, but the information feeding those charts come from bots running on the Network hierarchy. Those bots obtain exchange and market information from the Crypto Ecosystem hierarchy via references, and their source code is defined in Data Mines.", + "updated": 1610134533861 + }, + { + "style": "Text", + "text": "The above means that, in order to have information to visualize, you will first need to run sensor and indicator bots. We call that data mining, and it’s done from the data mining section of the network hierarchy." + }, + { + "style": "Text", + "text": "The workspaces shipping with the system feature several configurations of exchanges, markets, and charts that you may start using right away. To configure your own charts, you will need to learn the basics of the Charting Space, and that is exactly the information covered on these pages.", + "updated": 1610134602649 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/charting-space-002-charting-space-hierarchy.json b/Projects/Superalgos/Schemas/Docs-Topics/charting-space-002-charting-space-hierarchy.json new file mode 100644 index 000000000..970915e85 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/charting-space-002-charting-space-hierarchy.json @@ -0,0 +1,93 @@ +{ + "topic": "Charting Space", + "pageNumber": "2", + "type": "Charting Space Hierarchy", + "definition": { + "text": "The charting space hierarchy organizes the charts on the Viewport and controls their behavior.", + "updated": 1610134676796 + }, + "paragraphs": [ + { + "style": "Include", + "text": "Superalgos->Node->Charting Space->Definition", + "updated": 1610134731920 + }, + { + "style": "Include", + "text": "Superalgos->Node->Charting Space->Content", + "updated": 1610134734810 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Note for Hierarchy Tables" + }, + { + "style": "Hierarchy", + "text": "Superalgos->Charting Space->3" + }, + { + "style": "Title", + "text": "Viewport", + "updated": 1610134925124 + }, + { + "style": "Include", + "text": "Superalgos->Node->Viewport->Definition", + "updated": 1610134928724 + }, + { + "style": "Include", + "text": "Superalgos->Node->Viewport->Content", + "updated": 1610134932526 + }, + { + "style": "Title", + "text": "Space Style", + "updated": 1610134940862 + }, + { + "style": "Include", + "text": "Superalgos->Node->Space Style->Definition", + "updated": 1610135219837 + }, + { + "style": "Title", + "text": "Space Settings", + "updated": 1610135200205 + }, + { + "style": "Include", + "text": "Superalgos->Node->Space Settings->Definition", + "updated": 1610135203747 + }, + { + "style": "Title", + "text": "Project Dashboards", + "updated": 1610135093870 + }, + { + "style": "Include", + "text": "Superalgos->Node->Project Dashboards->Definition", + "updated": 1610135099780 + }, + { + "style": "Title", + "text": "Dashboard", + "updated": 1610135137855 + }, + { + "style": "Include", + "text": "Superalgos->Node->Dashboard->Definition", + "updated": 1610135143439 + }, + { + "style": "Include", + "text": "Superalgos->Node->Dashboard->Content", + "updated": 1610135147076 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/charting-space-003-time-machines-and-timeline-charts.json b/Projects/Superalgos/Schemas/Docs-Topics/charting-space-003-time-machines-and-timeline-charts.json new file mode 100644 index 000000000..7c9e8724b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/charting-space-003-time-machines-and-timeline-charts.json @@ -0,0 +1,54 @@ +{ + "topic": "Charting Space", + "pageNumber": "3", + "type": "Time Machines and Timeline Charts", + "definition": { + "text": "Time machines and timeline charts are the devices that render graphical information on the Viewport.", + "updated": 1610135709494 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Time Machine", + "updated": 1610135798826 + }, + { + "style": "Include", + "text": "Superalgos->Node->Time Machine->Definition", + "updated": 1610135810888 + }, + { + "style": "Include", + "text": "Superalgos->Node->Time Machine->Content", + "updated": 1610135814540 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Note for Hierarchy Tables" + }, + { + "style": "Hierarchy", + "text": "Superalgos->Time Machine->3", + "updated": 1610135969339 + }, + { + "style": "Title", + "text": "Timeline Chart" + }, + { + "style": "Include", + "text": "Superalgos->Node->Timeline Chart->Definition", + "updated": 1610135983766 + }, + { + "style": "Include", + "text": "Superalgos->Node->Timeline Chart->Content", + "updated": 1610135991211 + }, + { + "style": "Note", + "text": "We will cover scales and layer managers in separate pages!", + "updated": 1610136541919 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/charting-space-004-scales.json b/Projects/Superalgos/Schemas/Docs-Topics/charting-space-004-scales.json new file mode 100644 index 000000000..fbb0c05d0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/charting-space-004-scales.json @@ -0,0 +1,56 @@ +{ + "topic": "Charting Space", + "pageNumber": "4", + "type": "Scales", + "definition": { + "text": "Time Machines feature a Time Scale, a Rate Scale, and a Time Frame Scale. Timeline charts may implement the last two.", + "updated": 1610137109400 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Time Scale", + "updated": 1610137166709 + }, + { + "style": "Include", + "text": "Superalgos->Node->Time Scale->Definition", + "updated": 1610137169800 + }, + { + "style": "Include", + "text": "Superalgos->Node->Time Scale->Content", + "updated": 1610137173127 + }, + { + "style": "Title", + "text": "Rate Scale", + "updated": 1610137179866 + }, + { + "style": "Include", + "text": "Superalgos->Node->Rate Scale->Definition", + "updated": 1610137182583 + }, + { + "style": "Include", + "text": "Superalgos->Node->Rate Scale->Content", + "updated": 1610137185478 + }, + { + "style": "Title", + "text": "Time Frame Scale", + "updated": 1610137195480 + }, + { + "style": "Include", + "text": "Superalgos->Node->Time Frame Scale->Definition", + "updated": 1610137198945 + }, + { + "style": "Include", + "text": "Superalgos->Node->Time Frame Scale->Content", + "updated": 1610137202224 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/charting-space-005-layer-managers.json b/Projects/Superalgos/Schemas/Docs-Topics/charting-space-005-layer-managers.json new file mode 100644 index 000000000..772913933 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/charting-space-005-layer-managers.json @@ -0,0 +1,69 @@ +{ + "topic": "Charting Space", + "pageNumber": "5", + "type": "Layer Managers", + "definition": { + "text": "Layer Managers organize layers and link up to the data products to be displayed on the charts.", + "updated": 1610138345819 + }, + "paragraphs": [ + { + "style": "Include", + "text": "Superalgos->Node->Layer Manager->Definition", + "updated": 1610138034853 + }, + { + "style": "Include", + "text": "Superalgos->Node->Layer Manager->Content", + "updated": 1610138039651 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Note for Hierarchy Tables" + }, + { + "style": "Hierarchy", + "text": "Superalgos->Layer Manager->3", + "updated": 1610138133484 + }, + { + "style": "Title", + "text": "Layer", + "updated": 1610138185622 + }, + { + "style": "Include", + "text": "Superalgos->Node->Layer->Definition", + "updated": 1610138195653 + }, + { + "style": "Include", + "text": "Superalgos->Node->Layer->Content", + "updated": 1610138199802 + }, + { + "style": "Title", + "text": "Bot Layers", + "updated": 1610138208284 + }, + { + "style": "Include", + "text": "Superalgos->Node->Bot Layers->Definition", + "updated": 1610138211248 + }, + { + "style": "Title", + "text": "Layer Folder", + "updated": 1610138224792 + }, + { + "style": "Include", + "text": "Superalgos->Node->Layer Folder->Definition", + "updated": 1610138228234 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/design-space-001-design-space-hierarchy.json b/Projects/Superalgos/Schemas/Docs-Topics/design-space-001-design-space-hierarchy.json new file mode 100644 index 000000000..6d82aee1a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/design-space-001-design-space-hierarchy.json @@ -0,0 +1,49 @@ +{ + "topic": "Design Space", + "pageNumber": "1", + "type": "Design Space Hierarchy", + "definition": { + "text": "Use this hierarchy to control the look, feel, and behavior of the Design Space.", + "updated": 1610039508226 + }, + "paragraphs": [ + { + "style": "Include", + "text": "Superalgos->Node->Design Space->Definition", + "updated": 1610037964711 + }, + { + "style": "Include", + "text": "Superalgos->Node->Design Space->Content", + "updated": 1610037971754 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Note for Hierarchy Tables", + "updated": 1610049285680 + }, + { + "style": "Hierarchy", + "text": "Superalgos->Design Space->2", + "updated": 1610038604028 + }, + { + "style": "Title", + "text": "Space Style", + "updated": 1610038698256 + }, + { + "style": "Include", + "text": "Superalgos->Node->Space Style->Definition" + }, + { + "style": "Title", + "text": "Space Settings", + "updated": 1610038707204 + }, + { + "style": "Include", + "text": "Superalgos->Node->Space Settings->Definition" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/design-space-002-basic-navigation.json b/Projects/Superalgos/Schemas/Docs-Topics/design-space-002-basic-navigation.json new file mode 100644 index 000000000..51804df45 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/design-space-002-basic-navigation.json @@ -0,0 +1,107 @@ +{ + "topic": "Design Space", + "pageNumber": "2", + "type": "Basic Navigation", + "definition": { + "text": "You may use your mouse and keyboard to navigate the interface.", + "updated": 1610039680742 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Accessing the Design Space", + "updated": 1610039830808 + }, + { + "style": "Subtitle", + "text": "Using the mouse" + }, + { + "style": "Text", + "text": "Click and drag to pull the slider up and down, making more room for the Charting Space on top, or the Design Space in the bottom.", + "updated": 1610040136240 + }, + { + "style": "Title", + "text": "" + }, + { + "style": "Gif", + "text": "GIFs/Superalgos/Docs/design-space/accessing-the-design-space.gif", + "updated": 1610039978281 + }, + { + "style": "Subtitle", + "text": "Using the keyboard", + "updated": 1610040168590 + }, + { + "style": "Text", + "text": "Use the following key combiantions for the same purpose:", + "updated": 1610040210636 + }, + { + "style": "List", + "text": "Ctrl or ⌘ + Shift + ↑ to close the charting space and open the design space.", + "updated": 1610040275547 + }, + { + "style": "List", + "text": "Ctrl or ⌘ + Shift + ↓ to close the design space and open the charting space.", + "updated": 1610040360113 + }, + { + "style": "List", + "text": "Ctrl or ⌘ + Shift + → to incrementally lower the slider.", + "updated": 1610040384881 + }, + { + "style": "List", + "text": "Ctrl or ⌘ + Shift + ← to incrementally raise the slider.", + "updated": 1610040400821 + }, + { + "style": "Gif", + "text": "GIFs/Superalgos/Docs/design-space/accessing-the-design-space-with-keyboard.gif", + "updated": 1610040508434 + }, + { + "style": "Title", + "text": "Navigation", + "updated": 1610040536263 + }, + { + "style": "Text", + "text": "Left-click on the black background and drag to move around the workspace.", + "updated": 1610040578937 + }, + { + "style": "Text", + "text": "You may also use the following key combinations on your keyboard:" + }, + { + "style": "List", + "text": "Ctrl or ⌘ + ← to pan to the left.", + "updated": 1610040692407 + }, + { + "style": "List", + "text": "Ctrl or ⌘ + → to pan to the right.", + "updated": 1610040706743 + }, + { + "style": "List", + "text": "Ctrl or ⌘ + ↑ to pan upwards.", + "updated": 1610040720472 + }, + { + "style": "List", + "text": "Ctrl or ⌘ + ↓ to pan downwards.", + "updated": 1610040740709 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/design-space-003-nodes-menu.json b/Projects/Superalgos/Schemas/Docs-Topics/design-space-003-nodes-menu.json new file mode 100644 index 000000000..88a3880a3 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/design-space-003-nodes-menu.json @@ -0,0 +1,241 @@ +{ + "topic": "Design Space", + "pageNumber": "3", + "type": "Nodes Menu", + "definition": { + "text": "Each node has a menu featuring several arrangement, relationship, and productivity features.", + "updated": 1610040906717 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Hovering the mouse pointer over nodes causes a menu to pop up. In this situation, the node is in focus.", + "updated": 1610040966447 + }, + { + "style": "Title", + "text": "Arrangement Features" + }, + { + "style": "Text", + "text": "The design space functions under the paradigm of a self-organizing workspace in which nodes tend to find their place guided by certain laws of physics, and constrained by their chain relationships." + }, + { + "style": "Text", + "text": "This self-organizing paradigm saves users the effort of maintaining the arrangement of nodes in a logical manner, in particular when manipulating or creating new nodes." + }, + { + "style": "Text", + "text": "However, there will be times in which you will want to override this self-organizing nature. The following menu options are tools that will help you manipulate the arrangement of nodes, overriding the physics that affect their floating nature." + }, + { + "style": "Subtitle", + "text": "Level of Freedom", + "updated": 1610041172693 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Pinned Node->Definition", + "updated": 1610041185632 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Unpinned Node->Definition", + "updated": 1610041200048 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Freeze Structure of Nodes->Definition", + "updated": 1610041320634 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Unfreeze Structure of Nodes->Definition", + "updated": 1610041337812 + }, + { + "style": "Subtitle", + "text": "Visibility", + "updated": 1610041357172 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Collapse Structure of Nodes->Definition", + "updated": 1610041377484 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Expand Structure of Nodes->Definition", + "updated": 1610041390206 + }, + { + "style": "Subtitle", + "text": "Angle to Parent Node", + "updated": 1610041616280 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Remove Angle to Parent Node->Definition", + "updated": 1610041475685 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Set Angle to Parent Node to 360 Degrees->Definition", + "updated": 1610041548789 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Set Angle to Parent Node to 180 Degrees->Definition", + "updated": 1610041555200 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Set Angle to Parent Node to 90 Degrees->Definition", + "updated": 1610041563227 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Set Angle to Parent Node to 45 Degrees->Definition", + "updated": 1610041570636 + }, + { + "style": "Subtitle", + "text": "Distance to Parent Node", + "updated": 1610041878075 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Remove Distance to Parent Node->Definition", + "updated": 1610041668660 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Set Distance to Parent Node to One Fourth->Definition", + "updated": 1610041732719 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Set Distance to Parent Node to One Half->Definition", + "updated": 1610041740683 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Set Distance to Parent Node to One->Definition", + "updated": 1610041747194 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Set Distance to Parent Node to One and a Half->Definition", + "updated": 1610041756951 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Set Distance to Parent Node to Two->Definition", + "updated": 1610041765847 + }, + { + "style": "Subtitle", + "text": "Arrangement Style", + "updated": 1610041884085 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Set Node Arrangement to Concave->Definition", + "updated": 1610041980152 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Set Node Arrangement to Convex->Definition", + "updated": 1610041988582 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Set Node Arrangement to Vertical Right->Definition", + "updated": 1610042053653 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Set Node Arrangement to Vertical Left->Definition", + "updated": 1610042059815 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Set Node Arrangement to Horizontal Top->Definition", + "updated": 1610042089085 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Set Node Arrangement to Horizontal Bottom->Definition", + "updated": 1610042094491 + }, + { + "style": "Title", + "text": "Relationships and References", + "updated": 1610042149939 + }, + { + "style": "Subtitle", + "text": "Detach Node", + "updated": 1610042625172 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Detach Node->Definition", + "updated": 1610042212525 + }, + { + "style": "Subtitle", + "text": "Delink Node", + "updated": 1610042618278 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Delink Node->Definition" + }, + { + "style": "Title", + "text": "Productivity Features", + "updated": 1610042253763 + }, + { + "style": "Subtitle", + "text": "Backup Entity" + }, + { + "style": "Include", + "text": "Superalgos->Concept->Backup Entity->Definition", + "updated": 1610042268717 + }, + { + "style": "Subtitle", + "text": "Clone Entity", + "updated": 1610042551177 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Clone Entity->Definition" + }, + { + "style": "Subtitle", + "text": "Share Entity", + "updated": 1610042564664 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Share Entity->Definition" + }, + { + "style": "Subtitle", + "text": "Delete Entity", + "updated": 1610042582474 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Delete Entity->Definition" + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/design-space-004-keyboard-shortcuts-to-nodes.json b/Projects/Superalgos/Schemas/Docs-Topics/design-space-004-keyboard-shortcuts-to-nodes.json new file mode 100644 index 000000000..826c84d99 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/design-space-004-keyboard-shortcuts-to-nodes.json @@ -0,0 +1,42 @@ +{ + "topic": "Design Space", + "pageNumber": "4", + "type": "Keyboard Shortcuts to Nodes", + "definition": { + "text": "Defining shortcuts to particular nodes may be useful when interacting with the said node regularly.", + "updated": 1610043042775 + }, + "paragraphs": [ + { + "style": "Text", + "text": "You may define shortcuts for frequently-used nodes with the following procedure:", + "updated": 1610043064924 + }, + { + "style": "List", + "text": "Hover the mouse pointer over the target node until the menu opens up. This puts the node in focus." + }, + { + "style": "List", + "text": "Click Ctrl or ⌘ + Alt + your preferred key to assign the shortcut." + }, + { + "style": "List", + "text": "A sign will appear below the node confirming the assignation of the shortcut." + }, + { + "style": "Gif", + "text": "GIFs/Superalgos/Docs/design-space/keyboard-shortcut-to-node.gif", + "updated": 1610043236036 + }, + { + "style": "Text", + "text": "Repeat the same procedure to remove a shortcut." + }, + { + "style": "Note", + "text": "When attempting to assign a shortcut with a keyboard combination that is already in use, the system will notify of the issue. If you insist by hitting the same keyboard combination two more times, the system will assign the shortcut as expected.", + "updated": 1610043248085 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-001-docs-intro.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-001-docs-intro.json new file mode 100644 index 000000000..eb024197e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-001-docs-intro.json @@ -0,0 +1,16 @@ +{ + "topic": "Docs Basics", + "pageNumber": "1", + "type": "Docs Intro", + "definition": { + "text": "The Docs is a Space within Superalgos Project that allow users to search for information that explain the nodes, concepts and topics related to the different projects.", + "updated": 1609151076248 + }, + "paragraphs": [ + { + "style": "Text", + "text": "The Docs pages are organized in categories, explained in the page Docs Page Category.", + "updated": 1609151246461 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-002-docs-page-category.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-002-docs-page-category.json new file mode 100644 index 000000000..568293e93 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-002-docs-page-category.json @@ -0,0 +1,37 @@ +{ + "topic": "Docs Basics", + "pageNumber": "2", + "type": "Docs Page Category", + "definition": { + "text": "The Docs have 3 different categories of pages. Node, Concept and Topic. Each of them is a collection of pages users can read.", + "updated": 1609161546617 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Node Page Category", + "updated": 1609150842562 + }, + { + "style": "Text", + "text": "For each Node defined within the project, there is a Docs Node Page at the Docs, explaining what is that Node used for.", + "updated": 1609150987235 + }, + { + "style": "Title", + "text": "Cocept Page Category" + }, + { + "style": "Text", + "text": "Concepts are things users must know that are not needed as a Node in the system and are not ellaborate enough to become a topic." + }, + { + "style": "Title", + "text": "Topic Page Category" + }, + { + "style": "Text", + "text": "Topics are multi-faceted concepts that needs more than one page to be correctly explained. It is a set of closely related concepts." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-003-docs-page-name.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-003-docs-page-name.json new file mode 100644 index 000000000..0eb26795e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-003-docs-page-name.json @@ -0,0 +1,16 @@ +{ + "topic": "Docs Basics", + "pageNumber": "3", + "type": "Docs Page Name", + "definition": { + "text": "The Docs Page Name is not only the visible name of a page, but also they key to identify a page in a unique way within a Project.", + "updated": 1609151319050 + }, + "paragraphs": [ + { + "style": "Text", + "text": "The page name can always be found at the top of each page.", + "updated": 1609151354901 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-004-docs-topic-name.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-004-docs-topic-name.json new file mode 100644 index 000000000..e6327cb47 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-004-docs-topic-name.json @@ -0,0 +1,16 @@ +{ + "topic": "Docs Basics", + "pageNumber": "4", + "type": "Docs Topic Name", + "definition": { + "text": "Refers to the name of the topic, which in turn is a collection of related pages at the Docs.", + "updated": 1609182060836 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Topic names are used to group a set of related pages under a certain topic. ", + "updated": 1609182145551 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-005-docs-tutorial-name.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-005-docs-tutorial-name.json new file mode 100644 index 000000000..1f7f94483 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-005-docs-tutorial-name.json @@ -0,0 +1,16 @@ +{ + "topic": "Docs Basics", + "pageNumber": "5", + "type": "Docs Tutorial Name", + "definition": { + "text": "Refers to the name of the tutorial, which in turn is a collection of related pages at the Docs.", + "updated": 1609182060836 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Tutorial names are used to group a set of related pages under a certain tutorial. ", + "updated": 1609182145551 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-006-docs-page-number.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-006-docs-page-number.json new file mode 100644 index 000000000..db4a7dde4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-006-docs-page-number.json @@ -0,0 +1,15 @@ +{ + "topic": "Docs Basics", + "pageNumber": "6", + "type": "Docs Page Number", + "definition": { + "text": "Each topic page must have an assigned page number. The page number is used to build the topic index displayed at the top of each Docs Topic Page.", + "updated": 1609182198659 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-007-docs-node-page.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-007-docs-node-page.json new file mode 100644 index 000000000..e1f0136c4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-007-docs-node-page.json @@ -0,0 +1,15 @@ +{ + "topic": "Docs Basics", + "pageNumber": "7", + "type": "Docs Node Page", + "definition": { + "text": "Each node of each Project have a corresponding Node Page at the Docs, explaining everything to be known about that node.", + "updated": 1609182353739 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-008-docs-concept-page.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-008-docs-concept-page.json new file mode 100644 index 000000000..8bb7e69a0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-008-docs-concept-page.json @@ -0,0 +1,14 @@ +{ + "topic": "Docs Basics", + "pageNumber": "8", + "type": "Docs Concept Page", + "definition": { + "text": "Write here a summary for this topic page." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-009-docs-topic-page.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-009-docs-topic-page.json new file mode 100644 index 000000000..78d6b8d3f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-009-docs-topic-page.json @@ -0,0 +1,14 @@ +{ + "topic": "Docs Basics", + "pageNumber": "9", + "type": "Docs Topic Page", + "definition": { + "text": "Write here a summary for this topic page." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-010-docs-page.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-010-docs-page.json new file mode 100644 index 000000000..c8d9e0009 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-010-docs-page.json @@ -0,0 +1,15 @@ +{ + "topic": "Docs Basics", + "pageNumber": "10", + "type": "Docs Page", + "definition": { + "text": "The Docs is a collection of pages classified in 3 different categories: Docs Nodes, Docs Concepts and Docs Topics. A page contains information valuable for the users of the system.", + "updated": 1609260440891 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-011-docs-paragraoh.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-011-docs-paragraoh.json new file mode 100644 index 000000000..563741591 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-011-docs-paragraoh.json @@ -0,0 +1,14 @@ +{ + "topic": "Docs Basics", + "pageNumber": "11", + "type": "Docs Paragraoh", + "definition": { + "text": "Write here a summary for this topic page." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-012-docs-page-block.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-012-docs-page-block.json new file mode 100644 index 000000000..43957c615 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-012-docs-page-block.json @@ -0,0 +1,15 @@ +{ + "topic": "Docs Basics", + "pageNumber": "12", + "type": "Docs Page Block", + "definition": { + "text": "A Page Block is a set of paragraphs within a specific Docs Page. A single Docs Page may have 0 to any number of paragraphs.", + "updated": 1609260648075 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-013-docs-nodes.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-013-docs-nodes.json new file mode 100644 index 000000000..2d94c506b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-013-docs-nodes.json @@ -0,0 +1,15 @@ +{ + "topic": "Docs Basics", + "pageNumber": "13", + "type": "Docs Nodes", + "definition": { + "text": "Docs Nodes is the set of all pages in the Docs under the Docs Page Category of Node.", + "updated": 1609260759079 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-014-docs-concepts.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-014-docs-concepts.json new file mode 100644 index 000000000..c339dfb27 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-014-docs-concepts.json @@ -0,0 +1,15 @@ +{ + "topic": "Docs Basics", + "pageNumber": "14", + "type": "Docs Concepts", + "definition": { + "text": "Docs Concepts is the set of all pages in the Docs under the Docs Page Category of Concept.", + "updated": 1609260746120 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-015-docs-topics.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-015-docs-topics.json new file mode 100644 index 000000000..4bfa4eed2 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-015-docs-topics.json @@ -0,0 +1,15 @@ +{ + "topic": "Docs Basics", + "pageNumber": "15", + "type": "Docs Topics", + "definition": { + "text": "Docs Topics is the set of all pages in the Docs under the Docs Page Category of Topic.", + "updated": 1609260810214 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-016-docs-books.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-016-docs-books.json new file mode 100644 index 000000000..cf2ca5497 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-016-docs-books.json @@ -0,0 +1,15 @@ +{ + "topic": "Docs Basics", + "pageNumber": "16", + "type": "Docs Books", + "definition": { + "text": "A book is page in the Docs that contains chapters. Chapters points to a Docs Topics and are rendered as the index table of the topic they point to.", + "updated": 1609771773385 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-017-docs-paragraph-styles.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-017-docs-paragraph-styles.json new file mode 100644 index 000000000..4a75dd0ea --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-017-docs-paragraph-styles.json @@ -0,0 +1,15 @@ +{ + "topic": "Docs Basics", + "pageNumber": "17", + "type": "Docs Paragraph Styles", + "definition": { + "text": "Each paragraph at a Docs Page, need to be assigend a style. The most commonly used style is the Docs Text Style.", + "updated": 1609260947769 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-018-docs-search-engine.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-018-docs-search-engine.json new file mode 100644 index 000000000..150b34d45 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-018-docs-search-engine.json @@ -0,0 +1,16 @@ +{ + "topic": "Docs Basics", + "pageNumber": "18", + "type": "Docs Search Engine", + "definition": { + "text": "The Docs contains a search engine that allows users to search through the collection of pages.\n", + "updated": 1609784533352 + }, + "paragraphs": [ + { + "style": "Text", + "text": "The search engine builds a Docs Search Engine Index that is later used to find the phrases typed by users at the search box.", + "updated": 1609784587544 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-019-docs-search-engine-index.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-019-docs-search-engine-index.json new file mode 100644 index 000000000..63d9364d5 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-basics-019-docs-search-engine-index.json @@ -0,0 +1,16 @@ +{ + "topic": "Docs Basics", + "pageNumber": "19", + "type": "Docs Search Engine Index", + "definition": { + "text": "The Docs Search Engine builds an in-memory index that contains all the phrases of all Docs Pages, plus the name, type, config and code of all nodes of the current Workspace.", + "updated": 1609784383995 + }, + "paragraphs": [ + { + "style": "Text", + "text": "This index is built when the UI is launched, and rebuilt when users executes the docs.reindex command or they load a new workspace.", + "updated": 1609784471513 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-001-docs-help-command.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-001-docs-help-command.json new file mode 100644 index 000000000..ba18e9422 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-001-docs-help-command.json @@ -0,0 +1,80 @@ +{ + "topic": "Docs Commands", + "pageNumber": "1", + "type": "Docs Help Command", + "definition": { + "text": "The Docs provide a command line interface that users can use to contribute to the Docs. The Docs Help Command provides a list of all available commands at any given Superalgos version.", + "updated": 1609140843415 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Syntax", + "updated": 1609150394630 + }, + { + "style": "Json", + "text": "docs.help", + "updated": 1609141063054 + }, + { + "style": "Title", + "text": "Available Commands", + "updated": 1609150389229 + }, + { + "style": "List", + "text": "Docs Goto Command" + }, + { + "style": "List", + "text": "Docs Add Command" + }, + { + "style": "List", + "text": "Docs Delete Command" + }, + { + "style": "List", + "text": "Docs Save Command" + }, + { + "style": "List", + "text": "Docs Reindex Command" + }, + { + "style": "Title", + "text": "Help on Commands", + "updated": 1609150376981 + }, + { + "style": "Text", + "text": "Another way to use this command is by providing the name of another command you would like to see help info on." + }, + { + "style": "Title", + "text": "Examples", + "updated": 1609150399428 + }, + { + "style": "Json", + "text": "docs.help docs.add", + "updated": 1609141312948 + }, + { + "style": "Json", + "text": "docs.help docs.delete", + "updated": 1609141326112 + }, + { + "style": "Json", + "text": "docs.help doc.save", + "updated": 1609150597166 + }, + { + "style": "Note", + "text": " Anything you type at the command prompt not identified as a command will be treated as a search query. ", + "updated": 1609150627730 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-002-docs-goto-command.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-002-docs-goto-command.json new file mode 100644 index 000000000..2050dd3d5 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-002-docs-goto-command.json @@ -0,0 +1,59 @@ +{ + "topic": "Docs Commands", + "pageNumber": "2", + "type": "Docs Goto Command", + "definition": { + "text": "This command provides a mechanism to navigate to a Docs page or an specific anchor within a page.", + "updated": 1609141474363 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Syntax", + "updated": 1609150441764 + }, + { + "style": "Json", + "text": "docs.goto Project->Docs Page Category->Docs Page Name->Docs Page Anchor", + "updated": 1609148983480 + }, + { + "style": "Title", + "text": "Parameters", + "updated": 1609150455663 + }, + { + "style": "List", + "text": "Project : Is the project where the Node, Concept or Topic is defined.", + "updated": 1609148511059 + }, + { + "style": "List", + "text": "Docs Page Category : Node, Concept or Topic.", + "updated": 1609148563484 + }, + { + "style": "List", + "text": "Docs Page Name : For Nodes it is the type of node, for Concepts, the concept name, for topics, the topic's page name.", + "updated": 1609149220268 + }, + { + "style": "List", + "text": "Docs Page Anchor : This parameter is optional. If present, it refers to an Docs Anchor paragraph defined within the page." + }, + { + "style": "Title", + "text": "Examples", + "updated": 1609150465738 + }, + { + "style": "Json", + "text": "docs.goto Superalgos->Node->Task" + }, + { + "style": "Json", + "text": "docs.goto Superalgos->Topic->Docs Text Style->Anchor 1", + "updated": 1609158328191 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-003-docs-add-command.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-003-docs-add-command.json new file mode 100644 index 000000000..cb1740f15 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-003-docs-add-command.json @@ -0,0 +1,101 @@ +{ + "topic": "Docs Commands", + "pageNumber": "3", + "type": "Docs Add Command", + "definition": { + "text": "Use this command to add a new page to the Docs.", + "updated": 1609151813687 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Syntax", + "updated": 1609150474236 + }, + { + "style": "Text", + "text": "Option 1: ", + "updated": 1609149432117 + }, + { + "style": "Javascript", + "text": "docs.add Node to Project: Docs Page Name", + "updated": 1609149799453 + }, + { + "style": "Text", + "text": "Example: ", + "updated": 1609149442319 + }, + { + "style": "Javascript", + "text": "docs.add Node to Superalgos" + }, + { + "style": "Text", + "text": "Option 2: ", + "updated": 1609149450546 + }, + { + "style": "Json", + "text": "docs.add Concept to Project: Docs Page Name", + "updated": 1609149807897 + }, + { + "style": "Text", + "text": "Example: ", + "updated": 1609149457691 + }, + { + "style": "Json", + "text": "docs.add Concept to Superalgos" + }, + { + "style": "Text", + "text": "Option 3: ", + "updated": 1609149464103 + }, + { + "style": "Json", + "text": "docs.add Topic to Project: Docs Topic Name->Docs Page Name->Docs Page Number", + "updated": 1609149846658 + }, + { + "style": "Text", + "text": "Example: ", + "updated": 1609149471266 + }, + { + "style": "Json", + "text": "docs.add Topic to Superalgos: Docs Styles->Docs Text Style->1", + "updated": 1609149878993 + }, + { + "style": "Title", + "text": "Parameters", + "updated": 1609150484701 + }, + { + "style": "Text", + "text": "Project : Is the project where the Node, Concept or Topic is defined." + }, + { + "style": "Text", + "text": "Docs Page Category : Node, Concept or Topic." + }, + { + "style": "Text", + "text": "Docs Topic Name: The name of the topic which the new page will belong to.", + "updated": 1609149944222 + }, + { + "style": "Text", + "text": "Docs Page Name : For Nodes it is the type of node, for Concepts, the concept name, for topics, the topic's page name." + }, + { + "style": "Text", + "text": "Docs Page Numer: A page number that you would like to assing the new page. This will impact only at the position of the Topic Index.", + "updated": 1609149987475 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-004-docs-delete-command.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-004-docs-delete-command.json new file mode 100644 index 000000000..532c2a96d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-004-docs-delete-command.json @@ -0,0 +1,87 @@ +{ + "topic": "Docs Commands", + "pageNumber": "4", + "type": "Docs Delete Command", + "definition": { + "text": "Use this command to delete a page from the Docs.", + "updated": 1609151920518 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Syntax", + "updated": 1609152160707 + }, + { + "style": "Text", + "text": "Option 1:", + "updated": 1609152344322 + }, + { + "style": "Json", + "text": "docs.delete Node from Project: Docs Page Name", + "updated": 1609152359725 + }, + { + "style": "Text", + "text": "Example:" + }, + { + "style": "Json", + "text": "docs.delete Node from Superalgos: Task", + "updated": 1609152405379 + }, + { + "style": "Text", + "text": "Option 2:" + }, + { + "style": "Javascript", + "text": "docs.delete Concept from Project: Docs Page Name", + "updated": 1609152445366 + }, + { + "style": "Text", + "text": "Example:" + }, + { + "style": "Json", + "text": " docs.delete Concept from Superalgos", + "updated": 1609152464312 + }, + { + "style": "Text", + "text": "Option 3:" + }, + { + "style": "Json", + "text": "docs.delete Topic from Project: Docs Topic Name->Docs Page Name->Docs Page Number", + "updated": 1609152484236 + }, + { + "style": "Text", + "text": "Example:" + }, + { + "style": "Json", + "text": "docs.delete Topic from Superalgos: Docs Styles->Docs Text Style->1", + "updated": 1609152521245 + }, + { + "style": "Title", + "text": "Parameters" + }, + { + "style": "Text", + "text": "Project : Is the project where the Node, Concept or Topic is defined." + }, + { + "style": "Text", + "text": "Docs Page Category : Node, Concept or Topic." + }, + { + "style": "Text", + "text": "Docs Page Name : For Nodes it is the type of node, for Concepts, the concept name, for topics, the topic's page name." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-005-docs-save-command.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-005-docs-save-command.json new file mode 100644 index 000000000..556f65d1a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-005-docs-save-command.json @@ -0,0 +1,20 @@ +{ + "topic": "Docs Commands", + "pageNumber": "5", + "type": "Docs Save Command", + "definition": { + "text": "Use this command to save the changes you have done while adding, deleting or editing paragraphs at the Docs; or adding or deleting pages. ", + "updated": 1609152030934 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Syntax", + "updated": 1609157736088 + }, + { + "style": "Javascript", + "text": "docs.save" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-006-docs-reindex-command.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-006-docs-reindex-command.json new file mode 100644 index 000000000..5d9f37531 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-006-docs-reindex-command.json @@ -0,0 +1,25 @@ +{ + "topic": "Docs Commands", + "pageNumber": "6", + "type": "Docs Reindex Command", + "definition": { + "text": "Use this command to re-index all the pages of the docs, together with all the nodes at the current workspace, so that any changes you made to the content is available through search. ", + "updated": 1609152126427 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Syntax", + "updated": 1609157772210 + }, + { + "style": "Json", + "text": "docs.reindex", + "updated": 1609157842226 + }, + { + "style": "Note", + "text": "The reindexing of all the pages and workspace node might take a minute or two. If you workspace is very big, expect it to take even more time than that." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-007-docs repaginate command.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-007-docs repaginate command.json new file mode 100644 index 000000000..0058cce8f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-007-docs repaginate command.json @@ -0,0 +1,44 @@ +{ + "topic": "Docs Commands", + "pageNumber": "7", + "type": "Docs Repaginate Command", + "definition": { + "text": "When you add a Docs Topic Page or a Docs Tutorial Page, you define the page number for it, that is will ultimately defines the position of the page within that topic or tutorial table of contents. The technique to add a page in-between other pages is to use decimal values. After that you can use the Repaginate command in order to recalculate all page numbers and leave the whole set with integer numbers.", + "updated": 1610392867410 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Syntax", + "updated": 1610393031768 + }, + { + "style": "Javascript", + "text": "docs.repaginate Category from Project: Topic or Tutorial name." + }, + { + "style": "Title", + "text": "Properties" + }, + { + "style": "List", + "text": "Category: It must be either Topic or Tutorial." + }, + { + "style": "List", + "text": "Project: Any existing already integrated project." + }, + { + "style": "List", + "text": "Topic or Tutorial name: The name given tu the Topic or Tutorial that you want to repaginate." + }, + { + "style": "Title", + "text": "Example" + }, + { + "style": "Javascript", + "text": "docs.repaginate Topic from Superalgos: Docs Commands" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-001-docs-error-intro.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-001-docs-error-intro.json new file mode 100644 index 000000000..837b8bb79 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-001-docs-error-intro.json @@ -0,0 +1,16 @@ +{ + "topic": "Docs Commands Errors", + "pageNumber": 1, + "type": "Docs Error - Intro", + "definition": { + "text": "While executing a command, you might receive different types of error messanges. These are described below. ", + "updated": 1609159174480 + }, + "paragraphs": [ + { + "style": "Text", + "text": "The previous is the complete list of errors you might find while executing Docs commands. In fact, once you get an error, you will be automatically sent to the error page.", + "updated": 1609175853003 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-002-docs-error-too-few-parameters.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-002-docs-error-too-few-parameters.json new file mode 100644 index 000000000..738565223 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-002-docs-error-too-few-parameters.json @@ -0,0 +1,52 @@ +{ + "topic": "Docs Commands Errors", + "pageNumber": 2, + "type": "Docs Error - Too Few Parameters", + "definition": { + "text": "While executing a command, you might receive different types of error messanges. These are described below. ", + "updated": 1609159174480 + }, + "paragraphs": [ + { + "style": "Anchor", + "text": "Anchor Too Few Paramenters" + }, + { + "style": "Error", + "text": "Syntax error: Too few parameters.", + "updated": 1609160135644 + }, + { + "style": "Success", + "text": " Check the command syntax for a detailed list of parameters required.", + "updated": 1609160562426 + }, + { + "style": "Title", + "text": "Applies to", + "updated": 1609162906747 + }, + { + "style": "List", + "text": "Docs Goto Command", + "updated": 1609177214092 + }, + { + "style": "List", + "text": "Docs Add Command", + "updated": 1609180038275 + }, + { + "style": "List", + "text": "Docs Delete Command" + }, + { + "style": "List", + "text": "Docs Delete Command" + }, + { + "style": "List", + "text": "Docs Repaginate Command" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-003-docs-error-project-does-not-exist.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-003-docs-error-project-does-not-exist.json new file mode 100644 index 000000000..2473f51fe --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-003-docs-error-project-does-not-exist.json @@ -0,0 +1,46 @@ +{ + "topic": "Docs Commands Errors", + "pageNumber": 3, + "type": "Docs Error - Project Does Not Exist", + "definition": { + "text": "While executing a command, you might receive different types of error messanges. These are described below. ", + "updated": 1609159174480 + }, + "paragraphs": [ + { + "style": "Anchor", + "text": "Anchor Project Does Not Exist" + }, + { + "style": "Error", + "text": "The Project you have specified, does not exist. ", + "updated": 1609160205674 + }, + { + "style": "Success", + "text": "Check that you typed the Project name correctly. Project names are key-sensitive." + }, + { + "style": "Title", + "text": "Applies to", + "updated": 1609162883325 + }, + { + "style": "List", + "text": "Docs Goto Command", + "updated": 1609180469767 + }, + { + "style": "List", + "text": "Docs Add Command" + }, + { + "style": "List", + "text": "Docs Delete Command" + }, + { + "style": "List", + "text": "Docs Repaginate Command" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-004-docs-error-category-not-valid.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-004-docs-error-category-not-valid.json new file mode 100644 index 000000000..9314cce88 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-004-docs-error-category-not-valid.json @@ -0,0 +1,52 @@ +{ + "topic": "Docs Commands Errors", + "pageNumber": 4, + "type": "Docs Error - Category Not Valid", + "definition": { + "text": "While executing a command, you might receive different types of error messanges. These are described below. ", + "updated": 1609159174480 + }, + "paragraphs": [ + { + "style": "Anchor", + "text": "Anchor Category Not Valid" + }, + { + "style": "Error", + "text": "The category you have specidied is not a valid Docs Page Category.", + "updated": 1609160924575 + }, + { + "style": "Success", + "text": " Valid categories are: Node, Concept and Topic. This parameter is key-sensitive.", + "updated": 1609161108040 + }, + { + "style": "Title", + "text": "Applies to", + "updated": 1609162854123 + }, + { + "style": "List", + "text": "Docs Goto Command", + "updated": 1609177229589 + }, + { + "style": "List", + "text": "Docs Add Command", + "updated": 1609180006853 + }, + { + "style": "List", + "text": "Docs Delete Command" + }, + { + "style": "List", + "text": "Docs Delete Command" + }, + { + "style": "List", + "text": "Docs Repaginate Command" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-005-docs-error-page-not-found.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-005-docs-error-page-not-found.json new file mode 100644 index 000000000..8896ee0e9 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-005-docs-error-page-not-found.json @@ -0,0 +1,33 @@ +{ + "topic": "Docs Commands Errors", + "pageNumber": 5, + "type": "Docs Error - Page Not Found", + "definition": { + "text": "While executing a command, you might receive different types of error messanges. These are described below. ", + "updated": 1609159174480 + }, + "paragraphs": [ + { + "style": "Anchor", + "text": "Anchor Page Not Found" + }, + { + "style": "Error", + "text": "The Docs Page Name you have specified could not be found in the collection of pages of the Docs Page Category you provided." + }, + { + "style": "Success", + "text": "Double check that the Docs Page Name is spelled correctly and that it belongs to the Docs Page Category provided. ", + "updated": 1609161473688 + }, + { + "style": "Title", + "text": "Applies to", + "updated": 1609162829457 + }, + { + "style": "List", + "text": "Docs Goto Command" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-006-docs-error-page-with-no-paragraphs.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-006-docs-error-page-with-no-paragraphs.json new file mode 100644 index 000000000..868af6d2f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-006-docs-error-page-with-no-paragraphs.json @@ -0,0 +1,33 @@ +{ + "topic": "Docs Commands Errors", + "pageNumber": 6, + "type": "Docs Error - Page With No Paragraphs", + "definition": { + "text": "While executing a command, you might receive different types of error messanges. These are described below. ", + "updated": 1609159174480 + }, + "paragraphs": [ + { + "style": "Anchor", + "text": "Anchor Page With No Paragraphs" + }, + { + "style": "Error", + "text": "The Docs Page Name you specified was found, but it does not have any paragraphs in it. " + }, + { + "style": "Success", + "text": "You need to fix this in order for you or others users to be able to use this command.", + "updated": 1609161948865 + }, + { + "style": "Title", + "text": "Applies to", + "updated": 1609162829457 + }, + { + "style": "List", + "text": "Docs Goto Command" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-007-docs-error-only-in-english.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-007-docs-error-only-in-english.json new file mode 100644 index 000000000..6a2d62303 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-007-docs-error-only-in-english.json @@ -0,0 +1,38 @@ +{ + "topic": "Docs Commands Errors", + "pageNumber": 7, + "type": "Docs Error - Only In English", + "definition": { + "text": "Command not available because you are not set in English language.", + "updated": 1609176264266 + }, + "paragraphs": [ + { + "style": "Anchor", + "text": "Anchor Only In English", + "updated": 1609176190365 + }, + { + "style": "Error", + "text": "This command is available only while you are browsing the Docs in English language." + }, + { + "style": "Success", + "text": " Switch to English and try again. ", + "updated": 1609176617797 + }, + { + "style": "Title", + "text": "Applies to" + }, + { + "style": "List", + "text": "Docs Add Command", + "updated": 1609177338804 + }, + { + "style": "List", + "text": "Docs Delete Command" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-008-docs-error-missing-colon.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-008-docs-error-missing-colon.json new file mode 100644 index 000000000..df29d06e3 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-008-docs-error-missing-colon.json @@ -0,0 +1,47 @@ +{ + "topic": "Docs Commands Errors", + "pageNumber": 8, + "type": "Docs Error - Missing Colon", + "definition": { + "text": "You forgot the colon character \":\" that is part of the syntax of the command. ", + "updated": 1609176951837 + }, + "paragraphs": [ + { + "style": "Anchor", + "text": "Anchor Missing Colon", + "updated": 1609176525475 + }, + { + "style": "Error", + "text": "Syntax Error. Colon character \":\" is missing. ", + "updated": 1609176970772 + }, + { + "style": "Success", + "text": " Check the syntax of the command you are executing and see where to place the colon \":\" character. The character might not be detected if a space is not following it. ", + "updated": 1609230445669 + }, + { + "style": "Title", + "text": "Applies to" + }, + { + "style": "List", + "text": "Docs Add Command", + "updated": 1609177427004 + }, + { + "style": "List", + "text": "Docs Delete Command" + }, + { + "style": "List", + "text": "Docs Delete Command" + }, + { + "style": "List", + "text": "Docs Repaginate Command" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-009-docs-error-missing-to.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-009-docs-error-missing-to.json new file mode 100644 index 000000000..7326c457b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-009-docs-error-missing-to.json @@ -0,0 +1,34 @@ +{ + "topic": "Docs Commands Errors", + "pageNumber": 9, + "type": "Docs Error - Missing To", + "definition": { + "text": "The word \"to\" is part of the syntax of the command and you did not include it.", + "updated": 1609176884329 + }, + "paragraphs": [ + { + "style": "Anchor", + "text": "Anchor Missing To", + "updated": 1609176777661 + }, + { + "style": "Error", + "text": "Syntax Error. Colon word \"to\" is missing. ", + "updated": 1609177715965 + }, + { + "style": "Success", + "text": " Check the syntax of the command you are executing and see where to place the word \"to\". ", + "updated": 1609177722494 + }, + { + "style": "Title", + "text": "Applies to" + }, + { + "style": "List", + "text": "Docs Add Command" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-010-docs-error-missing-from.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-010-docs-error-missing-from.json new file mode 100644 index 000000000..3234686ff --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-010-docs-error-missing-from.json @@ -0,0 +1,41 @@ +{ + "topic": "Docs Commands Errors", + "pageNumber": 10, + "type": "Docs Error - Missing From", + "definition": { + "text": "The word \"from\" is part of the syntax of the command and it is missing.", + "updated": 1609177704402 + }, + "paragraphs": [ + { + "style": "Anchor", + "text": "Anchor Missing From", + "updated": 1609177607792 + }, + { + "style": "Error", + "text": " Syntax Error. Word \"from\" is missing." + }, + { + "style": "Success", + "text": "Check the syntax of the command you are executing and see where to place the word \"from\".", + "updated": 1609177623721 + }, + { + "style": "Title", + "text": "Applies to" + }, + { + "style": "List", + "text": "Docs Delete Command" + }, + { + "style": "List", + "text": "Docs Delete Command" + }, + { + "style": "List", + "text": "Docs Repaginate Command" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-011-docs-error-changes-not-saved.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-011-docs-error-changes-not-saved.json new file mode 100644 index 000000000..c6b7e1634 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-011-docs-error-changes-not-saved.json @@ -0,0 +1,34 @@ +{ + "topic": "Docs Commands Errors", + "pageNumber": 11, + "type": "Docs Error - Changes Not Saved", + "definition": { + "text": "It was not possible to save your changes.", + "updated": 1609180131235 + }, + "paragraphs": [ + { + "style": "Anchor", + "text": "Anchor Changes Not Saved", + "updated": 1609180176593 + }, + { + "style": "Error", + "text": "Changes could not be saved. There were one or more problems while saving your changes.", + "updated": 1609180259963 + }, + { + "style": "Success", + "text": "Please check the Client Console to see if there are errors logged there. You might also check the Browser Console for errors logged there.", + "updated": 1609180277501 + }, + { + "style": "Title", + "text": "Applies to" + }, + { + "style": "List", + "text": "Docs Save Command" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-012-docs-error-page-already-exists.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-012-docs-error-page-already-exists.json new file mode 100644 index 000000000..d26ea7e15 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-012-docs-error-page-already-exists.json @@ -0,0 +1,32 @@ +{ + "topic": "Docs Commands Errors", + "pageNumber": 12, + "type": "Docs Error - Page Already Exists", + "definition": { + "text": "The page you are trying to add already exists at Docs.", + "updated": 1609180663496 + }, + "paragraphs": [ + { + "style": "Anchor", + "text": "Anchor Page Already Exists", + "updated": 1609180759921 + }, + { + "style": "Error", + "text": "Page already exists at the Docs." + }, + { + "style": "Success", + "text": "Check the Docs Page Name you used at the command, because it seems that it already exists at the Docs." + }, + { + "style": "Title", + "text": "Applies to" + }, + { + "style": "List", + "text": "Docs Add Command" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-013-docs-error-page-does-not-exist.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-013-docs-error-page-does-not-exist.json new file mode 100644 index 000000000..275c7cd3f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-013-docs-error-page-does-not-exist.json @@ -0,0 +1,33 @@ +{ + "topic": "Docs Commands Errors", + "pageNumber": 13, + "type": "Docs Error - Page Does Not Exist", + "definition": { + "text": "The page you are trying to delete does not exist.", + "updated": 1609180948712 + }, + "paragraphs": [ + { + "style": "Anchor", + "text": "Anchor Page Does Not Exists", + "updated": 1609181016148 + }, + { + "style": "Error", + "text": "Page does not exist at the Docs. ", + "updated": 1609229439038 + }, + { + "style": "Success", + "text": " Check the Docs Page Name you used at the command, because it seems that a page with that name does not exist at the Docs." + }, + { + "style": "Title", + "text": "Applies to" + }, + { + "style": "List", + "text": "Docs Delete Command" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-014-docs-error-page-number-mismatch.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-014-docs-error-page-number-mismatch.json new file mode 100644 index 000000000..7f7dc670d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-014-docs-error-page-number-mismatch.json @@ -0,0 +1,33 @@ +{ + "topic": "Docs Commands Errors", + "pageNumber": 14, + "type": "Docs Error - Page Number Mismatch", + "definition": { + "text": "The Docs Page Number provided does not match with the Docs Page Number found at the page you want to delete. ", + "updated": 1609181698772 + }, + "paragraphs": [ + { + "style": "Anchor", + "text": "Anchor Page Number Mismatch", + "updated": 1609181413876 + }, + { + "style": "Error", + "text": "Page Number Mismatch. The Docs Page Number provided does not match the Docs Page Number of the page to be deleted. ", + "updated": 1609181722190 + }, + { + "style": "Summary", + "text": "Check the page you want to delete and get the right page number to use at the command." + }, + { + "style": "Title", + "text": "Applies to" + }, + { + "style": "List", + "text": "Docs Delete Command" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-015-docs-error-topic-mismatch.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-015-docs-error-topic-mismatch.json new file mode 100644 index 000000000..7f9b4608a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-015-docs-error-topic-mismatch.json @@ -0,0 +1,33 @@ +{ + "topic": "Docs Commands Errors", + "pageNumber": 15, + "type": "Docs Error - Topic Mismatch", + "definition": { + "text": "The Docs Topic Name provided does not match with the Docs Topic Name found at the page you want to delete.", + "updated": 1609181659359 + }, + "paragraphs": [ + { + "style": "Anchor", + "text": "Anchor Topic Mismatch", + "updated": 1609181600300 + }, + { + "style": "Error", + "text": "Topic Number Mismatch. The Docs Topic Name provided does not match the Docs Topic Name of the page to be deleted.", + "updated": 1609181606847 + }, + { + "style": "Success", + "text": "Check the page you want to delete and get the right Docs Topic Name to use at the command." + }, + { + "style": "Title", + "text": "Applies to" + }, + { + "style": "List", + "text": "Docs Delete Command" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-016-docs-error-tutorial-mismatch.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-016-docs-error-tutorial-mismatch.json new file mode 100644 index 000000000..9af77c5e0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-016-docs-error-tutorial-mismatch.json @@ -0,0 +1,34 @@ +{ + "topic": "Docs Commands Errors", + "pageNumber": 16, + "type": "Docs Error - Tutorial Mismatch", + "definition": { + "text": "The Docs Tutorial Name provided does not match with the Docs Tutorial Name found at the page you want to delete.", + "updated": 1610012937766 + }, + "paragraphs": [ + { + "style": "Anchor", + "text": "Anchor Topic Mismatch", + "updated": 1609181600300 + }, + { + "style": "Error", + "text": "Tutorial Mismatch. The Docs Tutorial Name provided does not match the Docs Tutorial Name of the page to be deleted.", + "updated": 1610012998692 + }, + { + "style": "Success", + "text": "Check the page you want to delete and get the right Docs Tutorial Name to use at the command.", + "updated": 1610013007982 + }, + { + "style": "Title", + "text": "Applies to" + }, + { + "style": "List", + "text": "Docs Delete Command" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-017-no-matching-topic-or-tutorial-found.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-017-no-matching-topic-or-tutorial-found.json new file mode 100644 index 000000000..e6f5dd070 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-errors-017-no-matching-topic-or-tutorial-found.json @@ -0,0 +1,30 @@ +{ + "topic": "Docs Commands Errors", + "pageNumber": "17", + "type": "No Matching Topic Or Tutorial Found", + "definition": { + "text": "The Topic or Tutorial you specified did not produce any match of pages within that Topic or Tutorial.", + "updated": 1610398888306 + }, + "paragraphs": [ + { + "style": "Error", + "text": "No pages found. There are no Topics or Tutorials with the name provided.", + "updated": 1610398925565 + }, + { + "style": "Success", + "text": "Tip: Check that the name Topic or Tutorial name provided is correctly spelled.", + "updated": 1610398957505 + }, + { + "style": "Title", + "text": "Applies to" + }, + { + "style": "List", + "text": "Docs Repaginate Command", + "updated": 1610398971728 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-messages-001-docs-message-saving-succeed.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-messages-001-docs-message-saving-succeed.json new file mode 100644 index 000000000..1d7086e46 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-messages-001-docs-message-saving-succeed.json @@ -0,0 +1,16 @@ +{ + "topic": "Docs Commands Messages", + "pageNumber": 1, + "type": "Docs Message - Saving Succeed", + "definition": { + "text": "The docs.save command you executed was successful and all changes have been saved at the Superalgos Client.", + "updated": 1609783244197 + }, + "paragraphs": [ + { + "style": "Success", + "text": "All the latest changes to node, concept, topic and book pages have benn saved to disk.", + "updated": 1609832163904 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-messages-002-docs-message-reindexing-started.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-messages-002-docs-message-reindexing-started.json new file mode 100644 index 000000000..b5dad5a22 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-messages-002-docs-message-reindexing-started.json @@ -0,0 +1,16 @@ +{ + "topic": "Docs Commands Messages", + "pageNumber": 2, + "type": "Docs Message - Reindexing Started", + "definition": { + "text": "The docs.reindex command you executed succesfully started the rebuing of the Docs Search Engine Index.", + "updated": 1609783396612 + }, + "paragraphs": [ + { + "style": "Success", + "text": "This is a very resourse intensive process. While this happens you will not be able to move arround since all the CPU resources are being used to recreate the index as fast as possible. The size of your workspace impacts the time to reindex the content since every node in it is scanned and all it's config and code are indexed. So hold on for a few minutes until the process finishes. Once it does, we will take you to a page that informs you of the result of the process.", + "updated": 1610353170958 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-messages-003-docs-message-reindexing-succeed.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-messages-003-docs-message-reindexing-succeed.json new file mode 100644 index 000000000..dfc461ebe --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-messages-003-docs-message-reindexing-succeed.json @@ -0,0 +1,16 @@ +{ + "topic": "Docs Commands Messages", + "pageNumber": 3, + "type": "Docs Message - Reindexing Succeed", + "definition": { + "text": "The docs.reindex command you executed succesfully rebuilt the Docs Search Engine Index.", + "updated": 1609783396612 + }, + "paragraphs": [ + { + "style": "Success", + "text": "The index was rebuilt and now includes all the latest changes you have made since you open the UI or since the last time you executed the docs.reindex command. That means that new content created now should affect the search results. Also, changes in the Workspace have been applied to the index too.", + "updated": 1609783508213 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-messages-004-docs-message-deleting-succeed.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-messages-004-docs-message-deleting-succeed.json new file mode 100644 index 000000000..e47edade0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-messages-004-docs-message-deleting-succeed.json @@ -0,0 +1,16 @@ +{ + "topic": "Docs Commands Messages", + "pageNumber": 4, + "type": "Docs Message - Deleting Succeed", + "definition": { + "text": "The docs.delete command you executed successfuly deleted the page you requested.", + "updated": 1610292270590 + }, + "paragraphs": [ + { + "style": "Important", + "text": "The page was flagged to be deleted. It will be removed from the in-memory collection of pages once you run the Docs Save Command. Even after that it will still be indexed at the Docs Search Engine Index. To remove it from the index you need to execute Docs Reindex Command. The Docs Save Command will instruct the Client to delete it from it's disk.", + "updated": 1610292163004 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-messages-005-docs-message-repagination-succeed.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-messages-005-docs-message-repagination-succeed.json new file mode 100644 index 000000000..ce01762ec --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-messages-005-docs-message-repagination-succeed.json @@ -0,0 +1,16 @@ +{ + "topic": "Docs Commands Messages", + "pageNumber": 5, + "type": "Docs Message - Repagination Succeed", + "definition": { + "text": "The docs.repaginate command you executed successfuly.", + "updated": 1610292270590 + }, + "paragraphs": [ + { + "style": "Important", + "text": "To complete this procedure, you need to manually delete from disk all the files of the Topic / Tutorial you just repaginated, and execute the Docs Save Command to save the in-memory updated pages.", + "updated": 1610292163004 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-context-menu-actions-001-docs-action-edit-paragraph.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-context-menu-actions-001-docs-action-edit-paragraph.json new file mode 100644 index 000000000..a39224e4c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-context-menu-actions-001-docs-action-edit-paragraph.json @@ -0,0 +1,15 @@ +{ + "topic": "Docs Context Menu Actions", + "pageNumber": "1", + "type": "Docs Action Edit Paragraph", + "definition": { + "text": "Use this action to edit the text of a paragraph. Then use the ESC key to exit the edit mode.", + "updated": 1609261900642 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-context-menu-actions-002-docs-action-delete-paragraph.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-context-menu-actions-002-docs-action-delete-paragraph.json new file mode 100644 index 000000000..4e5fa9c39 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-context-menu-actions-002-docs-action-delete-paragraph.json @@ -0,0 +1,15 @@ +{ + "topic": "Docs Context Menu Actions", + "pageNumber": "2", + "type": "Docs Action Delete Paragraph", + "definition": { + "text": "Use this action to delete a paragraph. This action can not be undone. You can still refresh the page without executing the Docs Save Command to rollback all your changes until the last execution of the save command.", + "updated": 1609262026576 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-context-menu-actions-003-docs-action-copy-to-clipboard.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-context-menu-actions-003-docs-action-copy-to-clipboard.json new file mode 100644 index 000000000..80b5a2f80 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-context-menu-actions-003-docs-action-copy-to-clipboard.json @@ -0,0 +1,15 @@ +{ + "topic": "Docs Context Menu Actions", + "pageNumber": "3", + "type": "Docs Action Copy To Clipboard", + "definition": { + "text": "This allows you to easily copy the text of any paragraph into your computer's clipboard. It is specially useful for pagragraphs of Docs Anchor Style or of Docs Block Style to get the string needed to execute the Docs Goto Command in the first case or to use it at a Docs Include Style in the second case.", + "updated": 1609262148454 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-languages-001-docs-in-english.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-languages-001-docs-in-english.json new file mode 100644 index 000000000..1676d99e1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-languages-001-docs-in-english.json @@ -0,0 +1,27 @@ +{ + "topic": "Docs Languages", + "pageNumber": "1", + "type": "Docs In English", + "definition": { + "text": "The Docs articles are fully written in English. The system allow users to search / browse articles in other languages as well, as long as other users contribute translations." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Superalgos and any other integrated project are written in English, since English is considered the default language. Node types, variable names, etc., all is originally in English language. " + }, + { + "style": "Text", + "text": "The Docs content can be translated by anyone willing to contribute some time doing so. That helps users to read the contents of the Docs in their native language. " + }, + { + "style": "Success", + "text": " Users can switch between languages using the links provided at the footer of every page at the Docs. ", + "updated": 1609085068937 + }, + { + "style": "Note", + "text": "You can only add or delete pages to the Docs if you are navigating it in English, because English is the default language, and from there pages are later translated. " + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-languages-002-docs-in-spanish.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-languages-002-docs-in-spanish.json new file mode 100644 index 000000000..93fecacac --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-languages-002-docs-in-spanish.json @@ -0,0 +1,45 @@ +{ + "topic": "Docs Languages", + "pageNumber": "2", + "type": "Docs In Spanish", + "definition": { + "text": "The Docs articles are fully written in English. The system allow users to search / browse articles in other languages as well, as long as other users contribute translations.", + "updated": 1609831763845, + "translations": [ + { + "language": "ES", + "text": "Si bien la documentación esta originalmente escrita en Inglés, el sistema permite a cualquier usuario buscar contenido en su idioma nativo, siempre y cuando otros usuarios hayan contribuído traducciones de los artículos existentes escritos en el idioma por defecto que es el idioma Inglés.", + "updated": 1609831843644, + "style": "Definition" + } + ] + }, + "paragraphs": [ + { + "style": "Text", + "text": "Superalgos and any other integrated project are written in English, since English is considered the default language. Node types, variable names, etc., all is originally in English language.", + "updated": 1609831777974, + "translations": [ + { + "language": "ES", + "text": "Es importante notar que por mas que uno seleccione un idioma, el contenido se mostrará en ingles en cada sitio donde todavía no ha sido traducido. El sistema permite a cualquier usuario contribuir traducciones con una granularidad a nivel de párrafos. Esto significa que si una página cualquiera pudiera tener todos, algunos o nigún párrafo traducido. Esto solo depende de cuales hayan sido traducidos previamente por miembros de la comunidad.", + "updated": 1609831884941, + "style": "Text" + } + ] + }, + { + "style": "Success", + "text": "Users can switch between languages using the links provided at the footer of every page at the Docs.", + "updated": 1609831813025, + "translations": [ + { + "language": "ES", + "text": "Para cambiar de un idioma a otro se debe usar los links en el pie de cada página.", + "updated": 1609831898619, + "style": "Success" + } + ] + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-languages-003-docs-in-russian.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-languages-003-docs-in-russian.json new file mode 100644 index 000000000..225ecde2c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-languages-003-docs-in-russian.json @@ -0,0 +1,30 @@ +{ + "topic": "Docs Languages", + "pageNumber": "3", + "type": "Docs In Russian", + "definition": { + "text": "The Docs articles are fully written in English. The system allow users to search / browse articles in other languages as well, as long as other users contribute translations.", + "updated": 1609832026056 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Superalgos and any other integrated project are written in English, since English is considered the default language. Node types, variable names, etc., all is originally in English language.", + "updated": 1609832046885 + }, + { + "style": "Text", + "text": "The Docs content can be translated by anyone willing to contribute some time doing so. That helps users to read the contents of the Docs in their native language." + }, + { + "style": "Success", + "text": "Users can switch between languages using the links provided at the footer of every page at the Docs.", + "updated": 1609832065974 + }, + { + "style": "Note", + "text": "You can only add or delete pages to the Docs if you are navigating it in English, because English is the default language, and from there pages are later translated.", + "updated": 1609832076465 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-001-docs-text-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-001-docs-text-style.json new file mode 100644 index 000000000..cb70ba0ef --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-001-docs-text-style.json @@ -0,0 +1,22 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 1, + "type": "Docs Text Style", + "definition": { + "text": "The text style is the one used for content without any particular style applied." + }, + "paragraphs": [ + { + "style": "Text", + "text": "When you edit a paragraph set in text style, anything you type will be rendered as part of the paragraph. What you can not do is to embed html within the text, because it will be discarded. By creating new paragraphs while editing, you effectively create separate paragraphs out of edit mode. Later you can change each paragraph's individual style for any of the styles available." + }, + { + "style": "Title", + "text": "Example:" + }, + { + "style": "Text", + "text": "This is a paragraph in text style." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-002-docs-title-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-002-docs-title-style.json new file mode 100644 index 000000000..9eba2f8aa --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-002-docs-title-style.json @@ -0,0 +1,22 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 2, + "type": "Docs Title Style", + "definition": { + "text": "Use this style to render titles on the docs page." + }, + "paragraphs": [ + { + "style": "Text", + "text": "As the name suggests, the title style simply makes anything you type while editing visible as a title at the docs page." + }, + { + "style": "Title", + "text": "Example:" + }, + { + "style": "Text", + "text": "The previous one is a paragraph in title style." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-003-docs-subtitle-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-003-docs-subtitle-style.json new file mode 100644 index 000000000..881d4aa0a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-003-docs-subtitle-style.json @@ -0,0 +1,22 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 3, + "type": "Docs Subtitle Style", + "definition": { + "text": "This is simply the way to show subtitles within a docs page." + }, + "paragraphs": [ + { + "style": "Text", + "text": "In edit mode, type whatever you want to be rendered as a subtitle at the docs page." + }, + { + "style": "Subtitle", + "text": "Example:" + }, + { + "style": "Text", + "text": "The previous is a paragraph in subtitle style." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-004-docs-note-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-004-docs-note-style.json new file mode 100644 index 000000000..3d17bca28 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-004-docs-note-style.json @@ -0,0 +1,22 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 4, + "type": "Docs Note Style", + "definition": { + "text": "This style will render in a blue box with the word note as a prefix." + }, + "paragraphs": [ + { + "style": "Text", + "text": "While editing a paragraph of this style, simply type the text you would like to appear inside the box. The word note is added automatically." + }, + { + "style": "Title", + "text": "Example:" + }, + { + "style": "Note", + "text": " This is an example of a paragraph in note style." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-005-docs-warning-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-005-docs-warning-style.json new file mode 100644 index 000000000..6458a2425 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-005-docs-warning-style.json @@ -0,0 +1,22 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 5, + "type": "Docs Warning Style", + "definition": { + "text": "Use this style for boxing text as a warning to readers." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Anything you type while editing a paragraph of this style will be rendered inside the warning box." + }, + { + "style": "Title", + "text": "Example:" + }, + { + "style": "Warning", + "text": "This is an example of a paragraph in warning style." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-006-docs-important-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-006-docs-important-style.json new file mode 100644 index 000000000..fbbd79110 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-006-docs-important-style.json @@ -0,0 +1,22 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 6, + "type": "Docs Important Style", + "definition": { + "text": "Use this style to communicate a tip or something important to the reader." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Whatever you type while editing will be rendered inside the importat box." + }, + { + "style": "Title", + "text": "Example:" + }, + { + "style": "Important", + "text": "This is an example of a paragraph in important style." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-007-docs-error-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-007-docs-error-style.json new file mode 100644 index 000000000..5e23c8bb4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-007-docs-error-style.json @@ -0,0 +1,22 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 7, + "type": "Docs Error - Style", + "definition": { + "text": "This style is used by the system itself to show you when you entered incorrect parameters for some styles. You can use this style as well to show readers errors in the context of what you are explaining to them." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Anything you type while editing, will be displayed inside the error box." + }, + { + "style": "Title", + "text": "Example:" + }, + { + "style": "Error", + "text": "This is an example of a paragraph in error style." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-008-docs-success-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-008-docs-success-style.json new file mode 100644 index 000000000..11c32110f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-008-docs-success-style.json @@ -0,0 +1,22 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 8, + "type": "Docs Success Style", + "definition": { + "text": "This style will render the text inside a success box." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Any text formatted with this style will be showed inside the success box." + }, + { + "style": "Title", + "text": "Example:" + }, + { + "style": "Success", + "text": "This is an example of a paragraph in success style." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-009-docs-list-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-009-docs-list-style.json new file mode 100644 index 000000000..1f3811f8d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-009-docs-list-style.json @@ -0,0 +1,22 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 9, + "type": "Docs List Style", + "definition": { + "text": "This style will render the text as an item of a bullet point list." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Any text you type while editting a paragraph of this style will be displayed as a item of a list, represented as a text after a bullet point. If you use colon quotation mark at some point in your text except at the end, all the text before the colon will be rendered in bold." + }, + { + "style": "Title", + "text": "Example:" + }, + { + "style": "List", + "text": "Before colon is bold: after colon is normal text." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-010-docs-callout-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-010-docs-callout-style.json new file mode 100644 index 000000000..13e630ee4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-010-docs-callout-style.json @@ -0,0 +1,22 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 10, + "type": "Docs Callout Style", + "definition": { + "text": "A callout paragraph is used to call the attention of readers." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Anything you type while editing a callout will be rendered like in the example below." + }, + { + "style": "Title", + "text": "Example:" + }, + { + "style": "Callout", + "text": "This is a callout paragraph." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-011-docs-summary-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-011-docs-summary-style.json new file mode 100644 index 000000000..64a504fca --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-011-docs-summary-style.json @@ -0,0 +1,26 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 11, + "type": "Docs Summary Style", + "definition": { + "text": "Summary paragraphs are usually used at the begining of a page, like in this one." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Anything you write while editing a summary paragraph will be rendered at the page." + }, + { + "style": "Title", + "text": "Example." + }, + { + "style": "Summary", + "text": "This is a summary paragraph." + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-012-docs-js-code-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-012-docs-js-code-style.json new file mode 100644 index 000000000..c6c82430d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-012-docs-js-code-style.json @@ -0,0 +1,26 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 12, + "type": "Docs JS Code Style", + "definition": { + "text": "Use this style to correctly format javascript code." + }, + "paragraphs": [ + { + "style": "Text", + "text": "One of the main difference of this style with the previous ones is that you might have many line breaks and they wont be considered as new paragraphs, instead they will all be treated as a single block." + }, + { + "style": "Title", + "text": "Example:" + }, + { + "style": "Javascript", + "text": "function hello(text){\nconsole.log('hello ' + text)\n}" + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-013-docs-json-code-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-013-docs-json-code-style.json new file mode 100644 index 000000000..1bc0348ff --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-013-docs-json-code-style.json @@ -0,0 +1,22 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 13, + "type": "Docs JSON Code Style", + "definition": { + "text": "Use this style to format JSON code, such as the one in configs." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Line breaks in this style are not generating new paragraphs." + }, + { + "style": "Title", + "text": "Example:" + }, + { + "style": "Json", + "text": "{\n property: value\n}" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-014-docs-table-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-014-docs-table-style.json new file mode 100644 index 000000000..3dc81754c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-014-docs-table-style.json @@ -0,0 +1,55 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 14, + "type": "Docs Table Style", + "definition": { + "text": "It is possible to render table in docs pages. To do so you just need to follow some formatting rules." + }, + "paragraphs": [ + { + "style": "Text", + "text": "In edit mode you need to use the | character in order to draw a table. Each cell is separated by a |. Line breaks in edit mode will be considered new rows. The first row will be rendered as the table header." + }, + { + "style": "Title", + "text": "Example:" + }, + { + "style": "Text", + "text": "| Column 1 | Column 2 | Column 3 |" + }, + { + "style": "Text", + "text": "Is rendered like this:" + }, + { + "style": "Table", + "text": "| Column 1 | Column 2 | Column 3 |" + }, + { + "style": "Text", + "text": "Another example of a table would be:" + }, + { + "style": "Table", + "text": "| Column 1 | Column 2 | Column 3 |\n| Value 1 | Value 2 | Value 3 |\n| Value 4 | Value 5 | Value 6 |\n| Value 7 | Value 8 | Value 9 |" + }, + { + "style": "Note", + "text": "Table style supports rendering boxes to showcase RGB colors. To do this, you just need to type something like this: RGB(23, 134, 222)" + }, + { + "style": "Text", + "text": "RGB Example:" + }, + { + "style": "Table", + "text": "| Variable Value | RGB Value | Color Sample |\n| DARK | 48, 48, 54 |RGB(48, 48, 54)|\n| LIGHT | 234, 226, 222 |RGB(234, 226, 222)|\n| GREY | 150, 150, 150 |RGB(150, 150, 150)|\n| LIGHT_GREY | 247, 247, 247 |RGB(247, 247, 247)|\n| WHITE | 255, 255, 255 |RGB(255, 255, 255)|\n| BLACK | 0, 0, 0 |RGB(0, 0, 0)|\n| GOLDEN_ORANGE | 240, 162, 2 |RGB(240, 162, 2)|\n| RUSTED_RED | 204, 88, 53 |RGB(204, 88, 53)|\n| GREEN | 188, 214, 67 |RGB(188, 214, 67)|\n| RED | 223, 70, 60 |RGB(223, 70, 60)|\n| PATINATED_TURQUOISE | 27, 153, 139 |RGB(27, 153, 139)|\n| TITANIUM_YELLOW | 244, 228, 9 |RGB(244, 228, 9)|\n| MANGANESE_PURPLE | 91,80, 122 |RGB(91,80, 122)|\n| TURQUOISE | 74, 207, 217 |RGB(74, 207, 217)|\n| DARK_TURQUOISE | 2, 149, 170 |RGB(2, 149, 170)|", + "updated": 1610399644793 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-015-docs-hierarchy-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-015-docs-hierarchy-style.json new file mode 100644 index 000000000..449a75cb3 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-015-docs-hierarchy-style.json @@ -0,0 +1,46 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 15, + "type": "Docs Hierarchy Style", + "definition": { + "text": "It is possible to inject into a docs page, a hierarchy of nodes, starting on a node specified and letting the system to figure out which are it's decendents." + }, + "paragraphs": [ + { + "style": "Text", + "text": "When you edit a paragraph of hierarchy style, the system expects you to follow this syntax:" + }, + { + "style": "Json", + "text": "Project->Node Type->Levels" + }, + { + "style": "List", + "text": "Project: refers to any of the projects already integrated into Superalgos, including Superalgos itself." + }, + { + "style": "List", + "text": "Node Type: any valid node type in the context of the project specified." + }, + { + "style": "List", + "text": "Levels: the number of generations downstream, starting from the node type specified, that will be rendered at the docs page. The maximun number of levels is 8." + }, + { + "style": "Title", + "text": "Example:" + }, + { + "style": "Javascript", + "text": "Superalgos->Task->5" + }, + { + "style": "Text", + "text": "produces the following at the docs page:" + }, + { + "style": "Hierarchy", + "text": "Superalgos->Task->5" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-016-docs-web-page-link-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-016-docs-web-page-link-style.json new file mode 100644 index 000000000..72c1e2eae --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-016-docs-web-page-link-style.json @@ -0,0 +1,42 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 16, + "type": "Docs Web Page Link Style", + "definition": { + "text": "Applying this style to a paragraph is the way to create a link to an external website." + }, + "paragraphs": [ + { + "style": "Text", + "text": "There is an specific syntax to follow if you want to create a link to an external web site. The syntax is:" + }, + { + "style": "Json", + "text": "Link Caption->URL" + }, + { + "style": "Title", + "text": "Example:" + }, + { + "style": "Json", + "text": "Google->google.com" + }, + { + "style": "Text", + "text": "produces the following html link to Google's home page:" + }, + { + "style": "Link", + "text": "Google->google.com" + }, + { + "style": "Note", + "text": "It is not possible to have any other text at the same paragraph." + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-017-docs-youtube-video-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-017-docs-youtube-video-style.json new file mode 100644 index 000000000..52497d76c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-017-docs-youtube-video-style.json @@ -0,0 +1,38 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 17, + "type": "Docs YouTube Video Style", + "definition": { + "text": "It is possible to embed YouTube videos at a Docs page. All you need to know is to copy and pate the YouTube video id into a paragraph with Youtube style." + }, + "paragraphs": [ + { + "style": "Text", + "text": "The syntax to embed a YouTube video at a Docs page is the following:" + }, + { + "style": "Json", + "text": "videoId (taken from YouTube)" + }, + { + "style": "Title", + "text": "Example:" + }, + { + "style": "Json", + "text": "fO-CHEEVneI" + }, + { + "style": "Text", + "text": "This would render the following video:" + }, + { + "style": "Youtube", + "text": "fO-CHEEVneI" + }, + { + "style": "Success", + "text": " To edit a YouTube video found at a Docs page, you need to right click slightly on top of the upper border or the video, not on the video itself. " + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-018-docs-gif-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-018-docs-gif-style.json new file mode 100644 index 000000000..7cdf0df18 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-018-docs-gif-style.json @@ -0,0 +1,38 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 18, + "type": "Docs Gif Style", + "definition": { + "text": "It is possible to embed gifs at a Docs page. " + }, + "paragraphs": [ + { + "style": "Text", + "text": "The gif to be embedded need to be present at the project's GIFs/Docs folder. The syntax to do it is the following:" + }, + { + "style": "Json", + "text": "GIFs/Project-Folder/Docs/Inner-Folder/File-Name.gif" + }, + { + "style": "Title", + "text": "Example:" + }, + { + "style": "Json", + "text": "GIFs/Superalgos/Docs/design-space/workspace-01.gif" + }, + { + "style": "Text", + "text": "Looks like this:" + }, + { + "style": "Gif", + "text": "GIFs/Superalgos/Docs/design-space/workspace-01.gif" + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-019-docs-png-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-019-docs-png-style.json new file mode 100644 index 000000000..ad563ddbe --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-019-docs-png-style.json @@ -0,0 +1,38 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 19, + "type": "Docs Png Style", + "definition": { + "text": "It is possible to embed PNGs images into a Docs page." + }, + "paragraphs": [ + { + "style": "Text", + "text": "To embed a PNG image into a Docs page you need to follow this syntax:" + }, + { + "style": "Json", + "text": "PNGs/Project-Folder/Docs/Inner-Folder/File-Name.png" + }, + { + "style": "Title", + "text": "Example:" + }, + { + "style": "Javascript", + "text": "PNGs/Superalgos/Docs/troubleshooting/RSI-07.png" + }, + { + "style": "Text", + "text": "Looks like this:" + }, + { + "style": "Png", + "text": "PNGs/Superalgos/Docs/troubleshooting/frames-per-second-tool.png" + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-020-docs-section-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-020-docs-section-style.json new file mode 100644 index 000000000..13a64c09f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-020-docs-section-style.json @@ -0,0 +1,15 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 20, + "type": "Docs Section Style", + "definition": { + "text": "Use this style to divide big areas of a page into different sections.", + "updated": 1609258595418 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-021-docs-anchor-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-021-docs-anchor-style.json new file mode 100644 index 000000000..a9cbe9e33 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-021-docs-anchor-style.json @@ -0,0 +1,24 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 21, + "type": "Docs Anchor Style", + "definition": { + "text": "Amchor paragraphs are used together with the Docs Goto Command. When you want to generate a Docs Link to an specific part of a Docs Page, you first need to create an Anchor paragraph in order to be able to create the link to that part of the page.", + "updated": 1609258745310 + }, + "paragraphs": [ + { + "style": "Text", + "text": "To correctly define an Anchor Paragraph, you need to follow the following syntax:", + "updated": 1610387812416 + }, + { + "style": "Javascript", + "text": "Anchor Name" + }, + { + "style": "List", + "text": "Anchor Name: This refers to any name that you would like to give to the newly created Anchor. The name must be unique within the page." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-022-docs-block-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-022-docs-block-style.json new file mode 100644 index 000000000..e47d70da9 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-022-docs-block-style.json @@ -0,0 +1,26 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 22, + "type": "Docs Block Style", + "definition": { + "text": "Block paragraphs defines set of paragraphs that can be inclided from other pages. When you include a block by creating a Docs Include Style paragraph, you need to reference a Block paragraph created at the page that have the set of paragraphs to be inclided. A Block contains all the paragraph after itself until the next Block or the end of the page.", + "updated": 1609259016289 + }, + "paragraphs": [ + { + "style": "Text", + "text": "To correctly ddefine an Block Paragraph, you need to follow the following syntax:", + "updated": 1609259397904 + }, + { + "style": "Javascript", + "text": "Block Name", + "updated": 1609259337116 + }, + { + "style": "List", + "text": "Block Name: This refers to any name that you would like to give to the newly created Block. The name must be unique within the page.", + "updated": 1609259387171 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-023-docs-include-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-023-docs-include-style.json new file mode 100644 index 000000000..b014257d8 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-023-docs-include-style.json @@ -0,0 +1,58 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 23, + "type": "Docs Include Style", + "definition": { + "text": "Include paragraphs are used to include into a Docs Page paragraphs that belong to other Docs Pages. In order to do that, you need to reference a Docs Block Style paragraph located in some other Docs Page.", + "updated": 1609259112766 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Syntax", + "updated": 1609259560967 + }, + { + "style": "Javascript", + "text": "Project->Docs Page Category->Docs Page Name->Docs Page Block", + "updated": 1609259624906 + }, + { + "style": "Title", + "text": "Parameters" + }, + { + "style": "List", + "text": "Project : Is the project where the Docs Page belongs to.", + "updated": 1609259672503 + }, + { + "style": "List", + "text": "Docs Page Category : Node, Concept or Topic." + }, + { + "style": "List", + "text": "Docs Page Name: For Nodes it is the type of node, for Concepts, the concept name, for topics, the topic's page name.", + "updated": 1609259701956 + }, + { + "style": "List", + "text": "Docs Page Block: This is the Block name of the block of paragraphs you want to include. You need to have a paragraphs with a Docs Block Style on the target page, with the name you are specifying here.", + "updated": 1609259783532 + }, + { + "style": "Title", + "text": "Examples" + }, + { + "style": "Javascript", + "text": "Superalgos->Node->Task->Block Intro", + "updated": 1609945167104 + }, + { + "style": "Javascript", + "text": "Superalgos->Topic->Docs Text Style->Block1", + "updated": 1609945185710 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-024-docs-chapter-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-024-docs-chapter-style.json new file mode 100644 index 000000000..9adc53a3e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-024-docs-chapter-style.json @@ -0,0 +1,63 @@ +{ + "topic": "Docs Paragraph Styles", + "pageNumber": 24, + "type": "Docs Chapter Style", + "definition": { + "text": "This style is used in Docs Books to define a new chapeter for that book. The style renders in the book's page the index of the Docs Topics referenced.", + "updated": 1609771567815 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Syntax", + "updated": 1610015500246 + }, + { + "style": "Javascript", + "text": "Chapter Number->Project->Docs Page Category->Docs Category Name->Intruction Text", + "updated": 1610015888193 + }, + { + "style": "Title", + "text": "Parameters" + }, + { + "style": "List", + "text": "Chapter Number: Any string that represents the chapter number to be displayed.", + "updated": 1610015596538 + }, + { + "style": "List", + "text": "Project : Is the project where the Docs Page belongs to." + }, + { + "style": "List", + "text": "Docs Page Category : Topic or Tutorial.", + "updated": 1610015631058 + }, + { + "style": "List", + "text": "Docs Category Name: For topics, the topic's name, for tutorials, is the tutorial's name.", + "updated": 1610015910027 + }, + { + "style": "List", + "text": "Introduction Text: It is an introduction text to be displayed between the Chapter Title and the Chapter Index. This parameter is optional.", + "updated": 1610015785424 + }, + { + "style": "Title", + "text": "Examples" + }, + { + "style": "Javascript", + "text": "I->Superalgos->Topic->Docs Basics", + "updated": 1610015852514 + }, + { + "style": "Javascript", + "text": "IV->Superalgos->Tutorial->Getting Started->This is the first tutorial you should do.", + "updated": 1610015836892 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/how-to-001-detach-and-attach-nodes.json b/Projects/Superalgos/Schemas/Docs-Topics/how-to-001-detach-and-attach-nodes.json new file mode 100644 index 000000000..2979bf659 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/how-to-001-detach-and-attach-nodes.json @@ -0,0 +1,42 @@ +{ + "topic": "How To", + "pageNumber": "1", + "type": "Detach and Attach Nodes", + "definition": { + "text": "To detach a node, click on the detach button on the node's menu. To attach a node, right-click it and drag it closer to the node you wish to attach it to. Release the right-click when the target node is highlighted.", + "updated": 1609948586650 + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content", + "updated": 1609948673015 + }, + { + "style": "Gif", + "text": "GIFs/Superalgos/Docs/design-space/fundamental-design-space-concepts-01.gif", + "updated": 1609948684397 + }, + { + "style": "Text", + "text": "Nodes in the workspace may be unchained or detached from its parent, carrying all offspring with it. When a node is left unchained, it is no longer taken into account in the logic of the hierarchy, as it no longer belongs to it. When a node is chained back or reattached to the hierarchy, it goes back to being functional." + }, + { + "style": "Text", + "text": "This feature is useful when testing different configurations, rules or parameters, as it allows to keep alternatives handy in the workspace." + }, + { + "style": "Text", + "text": "Nodes may be attached only to potential parents. The system limits the way in which nodes may be attached, according to the logic of the information they contain." + }, + { + "style": "Note", + "text": "Nodes may not be detached or attached to frozen nodes. You need to unfreeze them before attaching or detaching.", + "updated": 1609948096499 + }, + { + "style": "Note", + "text": "The verbs to chain and to attach may be used interchangeably, as synonyms. Similarly, to unchain and to detach are both valid." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/how-to-002-establish-and-remove-references.json b/Projects/Superalgos/Schemas/Docs-Topics/how-to-002-establish-and-remove-references.json new file mode 100644 index 000000000..0fed7e14f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/how-to-002-establish-and-remove-references.json @@ -0,0 +1,34 @@ +{ + "topic": "How To", + "pageNumber": "2", + "type": "Establish and Remove References", + "definition": { + "text": "To establish a reference, right-click on the first node and drag it close to the target node. The remove a reference, use the delink button on the menu.", + "updated": 1609949247846 + }, + "paragraphs": [ + { + "style": "Block", + "text": "Content", + "updated": 1609950313725 + }, + { + "style": "Text", + "text": "When establishing a reference, grey rings show which nodes you may establish the reference with. In case there are multiple nodes that would accept the reference, the one closer to the node where the reference originates is highlighted with a golden ring. Releasing the mouse button establishes the reference with the highlighted node." + }, + { + "style": "Gif", + "text": "GIFs/Superalgos/Docs/design-space/establish-and-remove-references.gif", + "updated": 1609949883448 + }, + { + "style": "Text", + "text": "The reference is visually represented by a faint grey dotted line. Such line is visible only when both ends of the reference are visible." + }, + { + "style": "Text", + "text": "To remove a reference or delink two nodes, use the delink button on the node where the reference originates.", + "updated": 1609949517565 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/introduction-001-fundamental-superalgos-concepts.json b/Projects/Superalgos/Schemas/Docs-Topics/introduction-001-fundamental-superalgos-concepts.json new file mode 100644 index 000000000..f21d79579 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/introduction-001-fundamental-superalgos-concepts.json @@ -0,0 +1,60 @@ +{ + "topic": "Introduction", + "pageNumber": "1", + "type": "Fundamental Superalgos Concepts", + "definition": { + "text": "Superalgos breaks up complexity and describes the fundamental concepts that make up trading intelligence in hierarchies of nodes. Nodes may reference other nodes to access information in other hierarchies.", + "updated": 1609943915544 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Algorithmic trading is a data-driven application. It is the superior ability to derive intelligence from data—above all—that gives automated trading an edge over trading manually.", + "updated": 1609943931550 + }, + { + "style": "Text", + "text": "However, it would be simplistic to assume that trading intelligence emerges from data alone." + }, + { + "style": "Callout", + "text": "Trading intelligence emerges from harnessing the interactions of multiple complex concepts." + }, + { + "style": "Text", + "text": "Superalgos is a software infrastructure that contributes to harnessing those concepts and interactions by breaking complexity into small units of information called nodes and arranging them into larger data structures called hierarchies." + }, + { + "style": "Text", + "text": "A hierarchy is a data structure representing an overarching, top-level concept, resulting in a long chain of nodes, usually with many ramifications. The system manages different types of hierarchies, each of them with a specific focus. For example, crypto ecosystem, data mines, or charting space." + }, + { + "style": "Text", + "text": "A node is a small data structure containing information that may be related to market information, trading intelligence, the operation of the system, or other concepts. They are visually represented by icons in the design space." + }, + { + "style": "Text", + "text": "The design space is the visual environment that hosts all system and user definitions. In practical terms, it is the black space below the slider that splits the screen horizontally, separating the design space in the bottom from the charting space on top. As a hierarchy, it features nodes that enable user-control over certain aspects of the look, feel, and behavior of the space." + }, + { + "style": "Callout", + "text": "In other words, nodes arranged in hierarchical data structures describe the top-level concepts that make up trading intelligence in a way that helps users visualize and better understand them." + }, + { + "style": "Text", + "text": "These top-level concepts described as hierarchies interact with other concepts, that is, with other hierarchies. Interactions among hierarchies are called references." + }, + { + "style": "Text", + "text": "A reference is a mechanism by which information in a node is related to, or accessed by, other nodes. The ability of a node to establish a reference with another node enables the first to access the information or features entailed in the second one." + }, + { + "style": "Text", + "text": "To organize all of this information, Superalgos manages the concept of workspaces. A workspace is an entity storing all system and user-generated information, excluding the state and contents of plugins. In technical terms, a workspace is a JSON file." + }, + { + "style": "Note", + "text": " Note: The Bots page brings these conceptual definitions down to earth and offers an overview of how what these top-level concepts are and how they interact with each other." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/introduction-002-bots-in-superalgos.json b/Projects/Superalgos/Schemas/Docs-Topics/introduction-002-bots-in-superalgos.json new file mode 100644 index 000000000..85c10b34b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/introduction-002-bots-in-superalgos.json @@ -0,0 +1,109 @@ +{ + "topic": "Introduction", + "pageNumber": "2", + "type": "Bots In Superalgos", + "definition": { + "text": "Bots are a crucial concept in Superalgos, and a good thread to explain how hierarchies interact with each other.", + "updated": 1609944023850 + }, + "paragraphs": [ + { + "style": "Text", + "text": "While sometimes people use the terms trading bot, trading strategy, and trading system interchangeably, in Superalgos the distinction is sharp and unequivocal. Let’s start by offering three fundamental definitions:", + "updated": 1609944046617 + }, + { + "style": "List", + "text": "Trading System: A trading system is a framework handling the low-level logic that serves to structure the processes and methods used to implement and deploy trading strategies." + }, + { + "style": "List", + "text": "Trading Strategy: A trading strategy is the description of a set of actions or events run in stages. Events are triggered upon the validation of precise conditions describing specific market situations. Trading strategies are designed to achieve a specific goal within the broader plan of a trading system via taking and managing positions." + }, + { + "style": "List", + "text": "Trading Bot: A trading bot is a computer program that—based on datasets exposed as products by other bots (counting sensors, indicators and even other trading bots)—applies the trading logic defined on a trading system to, on one side, generate a complete trading simulation (outputting datasets that include trades, the action of strategies, validation of conditions, etc.), and on the other side, manage the execution of orders when on a forward testing or live trading session." + }, + { + "style": "Callout", + "text": "In Superalgos, trading systems and trading strategies are definitions describing trading logic, while the trading bot is the computer program that uses the trading logic to test strategies, produce simulations, and trade." + }, + { + "style": "Note", + "text": "This documentation expands extensively on these three concepts. For the time being, the above distinction is sufficient to continue.", + "updated": 1609944079526 + }, + { + "style": "Text", + "text": "Before diving into an in-depth exploration of each hierarchy, a quick overview is in order. One of the most important underlying concepts in Superalgos is that of bots. Let’s then use bots as the guiding thread to show you how the different hierarchies in Superalgos interact with each other." + }, + { + "style": "Title", + "text": "Bot Definitions" + }, + { + "style": "Text", + "text": "In the pages describing data mines and trading mines you will learn that bots are algorithms defined in such mines. That is, mines hold the source code and configuration—the complete set of definitions—of the three existing kinds of bots: sensors, indicators, and the trading bot." + }, + { + "style": "Text", + "text": "As a user, you may use all bots in data mines shipping with the system. As a developer, you may create your own mines to develop your own sensors, indicators, and even a new trading bot." + }, + { + "style": "Title", + "text": "Bot Instances" + }, + { + "style": "Text", + "text": "Using any of these bots entails creating an instance of the bot definition, so that this instance may run the bot’s code. You will seldom need to create bot instances manually, as the process of installing a new market creates all necessary bot instances for your data mining operation and for running trading sessions (by the way, markets are defined and installed from within the crypto ecosystem hierarchy)." + }, + { + "style": "Text", + "text": "A bot instance is a reference to a bot as defined in a data or trading mine. The instance of the bot runs the defined processes and generates the defined data products." + }, + { + "style": "Text", + "text": "Bot instances are run from within the network hierarchy. You use task managers and tasks to control bot instances, meaning, to start and stop them. Also in the network hierarchy lies the configurations about where the data they generate is to be stored." + }, + { + "style": "Title", + "text": "Bot Dependencies" + }, + { + "style": "Text", + "text": "Upon execution, bot instances run in a branched sequence determined by their status and data dependencies. For instance, if bot Alice depends on the data produced by bot Bob, then Alice is configured to run as soon as Bob finishes its execution. These configurations are already set up in the corresponding data mines for all existing bots. Therefore, you only need to worry about this if you develop new bots." + }, + { + "style": "Text", + "text": "What you do need to understand as a user is that, if Alice depends on data Bob produces, then Bob needs to be running for Alice to do her job. If Bob is not running, then Alice can only sit and wait for Bob to do his part first." + }, + { + "style": "Text", + "text": "A good example of such dependencies may be found when running a live trading session. In such a case, the trading bot depends on the sensor and all indicator bots used in the referenced trading system. Indicators must process the data so that the trading bot may analyze it in realtime. Therefore, before running a live trading session, the data mining operation must be running and up to date." + }, + { + "style": "Title", + "text": "Bots Execution" + }, + { + "style": "Text", + "text": "Each bot runs for as long as it may require to perform its job, usually in the order of a few seconds, and remains asleep until the next cycle is due. That is, bots run for short bursts, in frequent cycles. The reason for this behavior is that bots are prepared to read live data feeds and process it online." + }, + { + "style": "Text", + "text": "Bots need to know which market of which exchange they should work with. Exchanges and markets are defined in the crypto ecosystem hierarchy. Bots obtain that information by establishing references with the appropriate markets in that hierarchy." + }, + { + "style": "Text", + "text": "In the case of the trading bot, it also needs to know which type of trading session it should run, and what trading system’s rules it should follow. For those reasons, trading bots are paired with a specific session, which in turn, references a trading system." + }, + { + "style": "Text", + "text": "Trading systems are themselves hierarchies. You may create a trading system by following a framework in which strategies are described in stages. You do not need to code to create a strategy, as the rules are written with simple mathematical statements. However, both basic and advanced knowledge of JavaScript will give you an edge. You may test and deploy your trading system by running trading sessions from within the network hierarchy." + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/introduction-003-hierarchies.json b/Projects/Superalgos/Schemas/Docs-Topics/introduction-003-hierarchies.json new file mode 100644 index 000000000..863af387a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/introduction-003-hierarchies.json @@ -0,0 +1,203 @@ +{ + "topic": "Introduction", + "pageNumber": "3", + "type": "Hierarchies", + "definition": { + "text": "A hierarchy is a data structure representing an overarching, top-level concept, resulting in a long chain of nodes, usually with many ramifications. The system manages different types of hierarchies, each of them with a specific focus.", + "updated": 1609945718294 + }, + "paragraphs": [ + { + "style": "Text", + "text": " In the design space, the head or parent node of each hierarchy is represented by the corresponding icon surrounded by an ever-present white ring, so that they are easier to locate within the workspace.", + "updated": 1609944331184 + }, + { + "style": "Important", + "text": " Hierarchies included in the workspace as plugins are not saved at the workspace level. As such, changes made in those hierarchies do not persist. If you wish to modify a plugin and keep working with the modified version in the future, you must either clone or backup the plugin and work on the resulting copy instead.", + "updated": 1609945802943 + }, + { + "style": "Title", + "text": "Superalgos Project", + "updated": 1609945005370 + }, + { + "style": "Include", + "text": "Superalgos->Node->Superalgos Project->Definition", + "updated": 1609944933341 + }, + { + "style": "Include", + "text": "Superalgos->Node->Superalgos Project->Content", + "updated": 1609944944285 + }, + { + "style": "Title", + "text": "Design Space", + "updated": 1609945819410 + }, + { + "style": "Include", + "text": "Superalgos->Node->Design Space->Definition", + "updated": 1609945823788 + }, + { + "style": "Include", + "text": "Superalgos->Node->Design Space->Content", + "updated": 1609945827564 + }, + { + "style": "Title", + "text": "Crypto Ecosystem" + }, + { + "style": "Include", + "text": "Superalgos->Node->Crypto Ecosystem->Definition", + "updated": 1609945187089 + }, + { + "style": "Include", + "text": "Superalgos->Node->Crypto Ecosystem->Content", + "updated": 1609945202345 + }, + { + "style": "Title", + "text": "Network", + "updated": 1609945037649 + }, + { + "style": "Include", + "text": "Superalgos->Node->Network->Definition", + "updated": 1609945860234 + }, + { + "style": "Include", + "text": "Superalgos->Node->Network->Content", + "updated": 1609945864347 + }, + { + "style": "Title", + "text": "Charting Space", + "updated": 1609945048562 + }, + { + "style": "Include", + "text": "Superalgos->Node->Charting Space->Definition", + "updated": 1609945880962 + }, + { + "style": "Include", + "text": "Superalgos->Node->Charting Space->Content", + "updated": 1609945886008 + }, + { + "style": "Title", + "text": "Trading System", + "updated": 1609945101604 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading System->Definition", + "updated": 1609945942207 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading System->Content", + "updated": 1609945952584 + }, + { + "style": "Title", + "text": "Trading Mine" + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading Mine->Definition", + "updated": 1609945981528 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading Mine->Content", + "updated": 1609945984960 + }, + { + "style": "Title", + "text": "Trading Engine", + "updated": 1609945113032 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading Engine->Definition", + "updated": 1609945998216 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading Engine->Content", + "updated": 1609946001567 + }, + { + "style": "Title", + "text": "Data Mine", + "updated": 1609945134789 + }, + { + "style": "Include", + "text": "Superalgos->Node->Data Mine->Definition", + "updated": 1609946022992 + }, + { + "style": "Include", + "text": "Superalgos->Node->Data Mine->Content", + "updated": 1609946026584 + }, + { + "style": "Title", + "text": "Plugins", + "updated": 1609945527199 + }, + { + "style": "Include", + "text": "Superalgos->Node->Plugins->Definition", + "updated": 1609946038957 + }, + { + "style": "Include", + "text": "Superalgos->Node->Plugins->Content", + "updated": 1609946042538 + }, + { + "style": "Title", + "text": "Tutorial", + "updated": 1609946064589 + }, + { + "style": "Include", + "text": "Superalgos->Node->Tutorial->Definition", + "updated": 1609946067573 + }, + { + "style": "Include", + "text": "Superalgos->Node->Tutorial->Content", + "updated": 1609946070683 + }, + { + "style": "Title", + "text": "Super Scripts", + "updated": 1609945544452 + }, + { + "style": "Include", + "text": "Superalgos->Node->Super Scripts->Definition", + "updated": 1609946084954 + }, + { + "style": "Include", + "text": "Superalgos->Node->Super Scripts->Content", + "updated": 1609946088312 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/introduction-004-workflows.json b/Projects/Superalgos/Schemas/Docs-Topics/introduction-004-workflows.json new file mode 100644 index 000000000..2e253c8b8 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/introduction-004-workflows.json @@ -0,0 +1,55 @@ +{ + "topic": "Introduction", + "pageNumber": "4", + "type": "Workflows", + "definition": { + "text": "Your preferred workflow will emerge from the understanding of how Superalgos administers the complexity of multiple concepts that make up trading intelligence.", + "updated": 1609946305313 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Superalgos features multiple intertwining workflows, each with multiple ramifications and variations. Use cases for a trading automation platform like Superalgos abound and are probably impossible to extricate from one another:" + }, + { + "style": "List", + "text": "Users may download data from multiple exchanges and multiple markets." + }, + { + "style": "List", + "text": "They may process data using existing indicators, modify those indicators, or create their own technical studies with varying degrees of complexity." + }, + { + "style": "List", + "text": "They may use simple charts or may configure complex charts superimposing information from different markets and different exchanges." + }, + { + "style": "List", + "text": "They may use and modify existing trading systems or create their own, both with or without coding." + }, + { + "style": "List", + "text": "They may trade in a fully automated fashion, use the system for backtesting, or for generating signals from paper trading sessions." + }, + { + "style": "List", + "text": "They may run minimalistic, home-sized trading operations or deploy industrial-grade trading farms." + }, + { + "style": "List", + "text": "They may operate in a single market or leverage multiple exchanges and markets with a complex web of trading systems." + }, + { + "style": "Callout", + "text": "All of these use cases and the infinite permutations that may result from combining each dimension of use in varying measures may as well produce infinite workflows." + }, + { + "style": "Text", + "text": "The best approach to start developing your workflow is to build up your understanding of how the system is structured, and—in particular—how information is made available to each of the components of the system." + }, + { + "style": "Text", + "text": "As a rule of thumb, one of the foremost system design criteria for Superalgos is flexibility. The system should impose no constraints and let your imagination and hardware resources set the limits of what you may or may not do." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/introduction-005-workspace.json b/Projects/Superalgos/Schemas/Docs-Topics/introduction-005-workspace.json new file mode 100644 index 000000000..4bad6eeef --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/introduction-005-workspace.json @@ -0,0 +1,93 @@ +{ + "topic": "Introduction", + "pageNumber": "5", + "type": "Workspace", + "definition": { + "text": "A workspace is an entity storing all system and user-generated information, excluding the state and contents of plugins. In technical terms, a workspace is a JSON file.", + "updated": 1609946727314 + }, + "paragraphs": [ + { + "style": "Text", + "text": "A workspace stores information about:" + }, + { + "style": "List", + "text": "Any hierarchy that is not included as a plugin." + }, + { + "style": "List", + "text": "Nodes that may be floating around, detached from hierarchies." + }, + { + "style": "List", + "text": "Information regarding the physical position and state of all nodes within the design space, even those detached from the hierarchies." + }, + { + "style": "Text", + "text": "A workspace is not part of any of the hierarchies; instead, it contains them." + }, + { + "style": "Title", + "text": "Working With Workspaces" + }, + { + "style": "Subtitle", + "text": "Saving Workspaces" + }, + { + "style": "Text", + "text": "Workspaces are saved as .json files in the My-Workspaces folder." + }, + { + "style": "Text", + "text": "They are saved automatically every 60 seconds, or at the moment the browser or browser tab is closed. You may also save it manually using the following hot-key combination: Ctrl or ⌘ + Shift + S." + }, + { + "style": "Success", + "text": " Backing up a workspace downloads the same file to your local Downloads folder. This is a good way to store old versions in case you ever need to go back to a previous state of affairs.", + "updated": 1609946808755 + }, + { + "style": "Important", + "text": " Plugin workspaces may not be modified. When you load a plugin workspace, a new file is created in your My-Workspaces folder as soon as the workspace is saved for the first time, resulting in a copy of the plugin workspace. Any modifications you introduce in the workspace are stored in the copy, not the original plugin.", + "updated": 1609946816684 + }, + { + "style": "Subtitle", + "text": "Creating Workspaces" + }, + { + "style": "Text", + "text": "To create a new workspace, rename any of the existing workspaces by changing the label of the workspace node, and save it as explained above. After you change the label and once the workspace is saved (by any of the usual means), a new file is stored in the My-Workspaces folder." + }, + { + "style": "Subtitle", + "text": "Loading Workspaces" + }, + { + "style": "Text", + "text": "Users may manage multiple workspaces, but only one workspace may be loaded in the system at any point." + }, + { + "style": "Text", + "text": "To load a workspace, click the workspaces tab on the left-hand side of the screen and select one of the available files." + }, + { + "style": "Text", + "text": "To load a workspace you got from a third party, you may place the file in the My-Workspaces folder so that you may open it from the workspaces tab, or you may drag it and drop it on the design space." + }, + { + "style": "Subtitle", + "text": "Deleting Workspaces" + }, + { + "style": "Text", + "text": "To delete a workspace, delete the corresponding workspace file from within the file system application of your operating system." + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/introduction-006-nodes-and-structures-of-nodes.json b/Projects/Superalgos/Schemas/Docs-Topics/introduction-006-nodes-and-structures-of-nodes.json new file mode 100644 index 000000000..20a5086b4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/introduction-006-nodes-and-structures-of-nodes.json @@ -0,0 +1,50 @@ +{ + "topic": "Introduction", + "pageNumber": "6", + "type": "Nodes and Structures of Nodes", + "definition": { + "text": "A node is a small data structure containing information that may be related to market information, trading intelligence, the operation of the system, or other concepts. They are visually represented by icons in the design space.", + "updated": 1609946951589 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Structure of Nodes", + "updated": 1609946982728 + }, + { + "style": "Text", + "text": "Nodes may be chained together forming structures of nodes. In every structure of nodes there is a parent node with offsprings. That is, a structure of nodes is a data structure composed of any node and its offspring." + }, + { + "style": "Text", + "text": "As a consequence, structures of nodes are hierarchical structures, and a logical representation of how the concepts embodied by each node relate to each other." + }, + { + "style": "Title", + "text": "Parent-Offspring Relationships" + }, + { + "style": "Text", + "text": "Nodes in structures of nodes are chained to each other by so-called parent-offspring relationships. These relationships are visually represented by orange dotted lines, which may turn yellow or blue depending on certain visualization properties that the user may control. When nodes are chained together they form structures of nodes." + }, + { + "style": "Text", + "text": "The direction of the relationship is determined, in most cases, by the ability of a node to produce the offspring node. That is, the parent node is the one which, by software design, may produce the offspring node." + }, + { + "style": "Title", + "text": "How to Detach and Attach Nodes" + }, + { + "style": "Include", + "text": "Superalgos->Topic->Detach and Attach Nodes->Definition", + "updated": 1609948512326 + }, + { + "style": "Include", + "text": "Superalgos->Topic->Detach and Attach Nodes->Content", + "updated": 1609948536788 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/introduction-007-references.json b/Projects/Superalgos/Schemas/Docs-Topics/introduction-007-references.json new file mode 100644 index 000000000..9eb15c375 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/introduction-007-references.json @@ -0,0 +1,75 @@ +{ + "topic": "Introduction", + "pageNumber": "7", + "type": "References", + "definition": { + "text": "A reference is a mechanism by which information in a node is related to, or accessed by, other nodes. The ability of a node to establish a reference with another node enables the first to access the information or features entailed in the second one.", + "updated": 1609950165954 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Direction", + "updated": 1609950210690 + }, + { + "style": "Text", + "text": "References have a direction property relative to each of the nodes involved in the reference: the node establishing the reference sets an outgoing reference, while the one accepting the reference sets an incoming reference." + }, + { + "style": "Text", + "text": "For example, a session establishes an outgoing reference with a trading system. This allows the session to access the information within the whole trading system hierarchy, including strategies. At the trading system level, the same reference is viewed as an incoming reference." + }, + { + "style": "Title", + "text": "Scope" + }, + { + "style": "Text", + "text": "A reference established between nodes of any particular structure within a hierarchy is said to be an internal reference relative to the said structure of nodes. Similarly, a reference established with a node outside of the said structure, that is, in a different part of the hierarchy or in another hierarchy, is said to be an external reference." + }, + { + "style": "Text", + "text": "Examples of internal references may be found in the data mine and crypto ecosystem hierarchies. For example, let’s briefly look into one such case within a plotter module:" + }, + { + "style": "Text", + "text": "The capture below shows the shapes node and several offspring nodes: on one hand, several polygons; on the other hand, the chart points node." + }, + { + "style": "Text", + "text": "Notice that vertices under each polygon reference to points under the chart points node." + }, + { + "style": "Text", + "text": "This means that the node shapes feature several internal references." + }, + { + "style": "Note", + "text": " The backup, clone and share operations make different uses of the properties of references. We will cover the three of them extensively so that you may make the most of these features.", + "updated": 1609950276151 + }, + { + "style": "Anchor", + "text": "How to Estabish and Remove References", + "updated": 1609950438203 + }, + { + "style": "Title", + "text": "How to Estabish and Remove References" + }, + { + "style": "Include", + "text": "Superalgos->Topic->Establish and Remove References->Definition" + }, + { + "style": "Include", + "text": "Superalgos->Topic->Establish and Remove References->Content", + "updated": 1609950361692 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/low-frequency-trading-bot-001-trading-bots-in-superalgos.json b/Projects/Superalgos/Schemas/Docs-Topics/low-frequency-trading-bot-001-trading-bots-in-superalgos.json new file mode 100644 index 000000000..c4fcfa0af --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/low-frequency-trading-bot-001-trading-bots-in-superalgos.json @@ -0,0 +1,26 @@ +{ + "topic": "Low-Frequency Trading Bot", + "pageNumber": "1", + "type": "Trading Bots in Superalgos", + "definition": { + "text": "A trading bot leverages the Superalgos infrastructure to provide users with advanced trading features.", + "updated": 1610217988042 + }, + "paragraphs": [ + { + "style": "Include", + "text": "Superalgos->Node->Trading Bot->Definition", + "updated": 1610218014743 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading Bot->Content", + "updated": 1610218017545 + }, + { + "style": "Callout", + "text": "The Low-Frequency trading bot is the one and only Trading Bot shipping with Superalgos at this point in time. It is made available by the Masters Trading Mine. The bot is a robust implementation that leverages every piece of infrastructure provided by Superalgos to provide a feature-rich automated trading assistant.", + "updated": 1610218505400 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/low-frequency-trading-bot-002-why-low-frequency.json b/Projects/Superalgos/Schemas/Docs-Topics/low-frequency-trading-bot-002-why-low-frequency.json new file mode 100644 index 000000000..471c4324a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/low-frequency-trading-bot-002-why-low-frequency.json @@ -0,0 +1,47 @@ +{ + "topic": "Low-Frequency Trading Bot", + "pageNumber": "2", + "type": "Why Low-Frequency", + "definition": { + "text": "The first Trading Bot implementation is optimized for low-frequency trading.", + "updated": 1610218584729 + }, + "paragraphs": [ + { + "style": "Text", + "text": "The Low-Frequency trading bot makes decisions upon the closing of the current candle.", + "updated": 1610218597361 + }, + { + "style": "Important", + "text": "No matter what property of what indicator you may use, always remember that the trading bot works with the last closed candle by default. What Superalgos refers to as the current candle is effectively the latest closed candle. The trading bot never works with the candle that hasn’t yet closed, as its parameters are not defined. For example, candle.max refers to the maximum price of the last closed candle, and bollingerBand.movingAverage refers to the moving average of the last closed candle.", + "updated": 1610218610371 + }, + { + "style": "Text", + "text": "Superalgos manages time frames as low as one minute. That is, one minute, is the highest frequency handled by the trading bot." + }, + { + "style": "Text", + "text": "When a trading session is run on the 01-min time frame, this is what you should expect to happen in terms of the time it takes to do all the required processing for the trading bot to make a decision and place an order at the exchange:" + }, + { + "style": "Table", + "text": "| Process | Estimated Time [s] | Comments |\n| Sensor bot | 0 - 65 | The sensor bot runs (by default) every 60 seconds. Upon each execution, anything between 0 to 60 seconds may have passed since the last one-minute candle closed. On top of this the sensor execution time may range from 1 to 5 seconds, depending on several factors (i.e.: your hardware, internet bandwidth, distance to the exchange, exchange response time, and so on...) |\n| Candles - Volumes indicator | 1 - 5 | This indicator is required most of the time, as it is the one processing the one-minute candles extracted from the exchange to turn it into candles for the rest of the time frames available. In this case, the processing time depends entirely on your hardware. | \n| Other indicators | 1 - 5 | Indicators that depend exclusively on the data products produced by Candles - Volumes may process their products as soon as Candles - Volumes finishes. Indicators with nested dependencies need to wait for their dependencies to finish, thus they are not processed in parallel but in series. |\n| Trading bot | 1 - 5 | Depending on the complexity of your trading system, the number of dependencies that must be loaded, your hardware, and the same connectivity considerations discussed for the sensor bot, the trading bot may take several seconds to do the processing and place the order at the exchange. |", + "updated": 1610219071449 + }, + { + "style": "Callout", + "text": "In conclusion, depending on how many indicators the trading system uses, and what the dependencies may be, you should expect anything between 15 to 75 seconds or more of lag from the instant the candle closed at the exchange until the order is placed, with the default settings.", + "updated": 1610219109819 + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/masters-data-mine-001-bollinger-bands-bb-b.json b/Projects/Superalgos/Schemas/Docs-Topics/masters-data-mine-001-bollinger-bands-bb-b.json new file mode 100644 index 000000000..5bdaded2c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/masters-data-mine-001-bollinger-bands-bb-b.json @@ -0,0 +1,145 @@ +{ + "topic": "Masters Data Mine", + "pageNumber": 1, + "type": "Bollinger Bands (BB - %B)", + "definition": { + "text": "The indicator produces the Bollinger Bands (BB) and Percentage Bandwith (%B), both in standard settings.", + "updated": 1610387450406 + }, + "paragraphs": [ + { + "style": "Title", + "text": "On the Charts", + "updated": 1610384466638 + }, + { + "style": "Subtitle", + "text": "Bollinger Bands" + }, + { + "style": "Text", + "text": "This is the traditional Bollinger Bands indicator. Bollinger Bands have a moving average, in our case calculated with the last 20 periods (the line in the middle of the bands). We are plotting the moving average with one color when it is going up, and with a different color when it’s going down. The upper band is at 2 Standard Deviations from the moving average, pretty much like the lower band, also at 2 Standard Deviations. These are the most widely used Bollinger Bands settings." + }, + { + "style": "Gif", + "text": "GIFs/Superalgos/Docs/indicators/masters-bots-layers-04-bollinger-bands.gif", + "updated": 1610385365026 + }, + { + "style": "Subtitle", + "text": "Percentage Bandwidth" + }, + { + "style": "Text", + "text": "This is a well-known indicator that derives from the Bollinger Bands. In a nutshell, it tells you how close the price is either to the upper band or the lower band at any point in time. When the price is in the middle of the bands (it is calculated with the close value of each candle), then %B is in the middle of its chart, at value 50. When the price touches the upper band, then %B is at 100, and finally when the price is at the lower band, then %B is at 0." + }, + { + "style": "Gif", + "text": "GIFs/Superalgos/Docs/indicators/masters-bots-layers-05-percentage-bandwidth.gif", + "updated": 1610385389070 + }, + { + "style": "Text", + "text": "The chart features lines at %B values 30 and 70 since those are the most common values for traders to forecast when a reversal may happen. In our chart, %B is the one represented at #1. We’ve found useful to add a moving average to smooth volatility a bit and to be able to ask—at any time—if it is going up or down. The moving average calculated with the last 5 %B values is plotted as line #2. Finally, we’ve also added a property called Bandwidth, which represents the separation of the upper band from the lower band. It is a measure of volatility and is plotted at #3." + }, + { + "style": "Gif", + "text": "GIFs/Superalgos/Docs/indicators/masters-bots-layers-06-percentage-bandwidth-2.gif", + "updated": 1610385427575 + }, + { + "style": "Anchor", + "text": "Products & Properties" + }, + { + "style": "Title", + "text": "Products & Properties" + }, + { + "style": "Subtitle", + "text": "Bollinger Bands" + }, + { + "style": "Text", + "text": "The product bollingerBand features four different properties that you may use." + }, + { + "style": "Table", + "text": "| Product Name | Product Variable | Property Variables |\n| Bollinger Bands | bollingerBand | movingAverage, standardDeviation, deviation, direction |", + "updated": 1610384742825 + }, + { + "style": "List", + "text": "bollingerBand.movingAverage: The value of the current moving average (20 periods)." + }, + { + "style": "List", + "text": "bollingerBand.standardDeviation: The value of current the standard deviation." + }, + { + "style": "List", + "text": "bollingerBand.deviation: bollingerBand.standardDeviation * 2" + }, + { + "style": "List", + "text": "bollingerBand.direction:" + }, + { + "style": "Text", + "text": "\"Down\": ", + "updated": 1610384819019 + }, + { + "style": "Javascript", + "text": "bollingerBand.previous.movingAverage > bollingerBand.movingAverage" + }, + { + "style": "Text", + "text": "\"Up\":", + "updated": 1610384830529 + }, + { + "style": "Javascript", + "text": "bollingerBand.previous.movingAverage < bollingerBand.movingAverage" + }, + { + "style": "Text", + "text": "\"Side\": ", + "updated": 1610384838620 + }, + { + "style": "Javascript", + "text": "bollingerBand.previous.movingAverage = bollingerBand.movingAverage", + "updated": 1610384852450 + }, + { + "style": "Subtitle", + "text": "Percentage Bandwidth" + }, + { + "style": "Text", + "text": "The product percentageBandwidth features four different properties that you may use." + }, + { + "style": "Table", + "text": "| Product Name | Product Variable | Property Variables |\n| Percentage Bandwidth | percentageBandwidth | value, movingAverage, bandwidth, direction |", + "updated": 1610384984134 + }, + { + "style": "List", + "text": "percentageBandwidth.value: A numeric value between 0 and 100; the current value of the percentage bandwidth." + }, + { + "style": "List", + "text": "percentageBandwidth.movingAverage: A numeric value between 0 and 100; the current value of the percentage bandwidth moving average." + }, + { + "style": "List", + "text": "percentageBandwidth.bandwidth: A numeric value between 0 and 100; the current bandwidth." + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/masters-data-mine-002-bollinger-channels.json b/Projects/Superalgos/Schemas/Docs-Topics/masters-data-mine-002-bollinger-channels.json new file mode 100644 index 000000000..2d1177ce6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/masters-data-mine-002-bollinger-channels.json @@ -0,0 +1,107 @@ +{ + "topic": "Masters Data Mine", + "pageNumber": 2, + "type": "Bollinger Channels", + "definition": { + "text": "The indicator produces the Bollinger Channels and Bollinger Sub-Channels products.", + "updated": 1610468458099 + }, + "paragraphs": [ + { + "style": "Title", + "text": "On the Charts", + "updated": 1610385639559 + }, + { + "style": "Subtitle", + "text": "Bollinger Channels" + }, + { + "style": "Text", + "text": "This is a non-standard indicator derived from the Bollinger Bands. These types of channels are calculated using the Bollinger Bands moving average. Essentially an upward channel begins when the moving average changes direction from going down to going up, and the channel finishes when it turns from going up to down. A downward channel starts when the Bollinger Band moving average turns from going up to down, and it finishes when it starts going up again. Upward channels are plotted in green, while downward channels in red. Additional information can be found at the indicator’s panel, like the number of periods contained at the channel." + }, + { + "style": "Gif", + "text": "GIFs/Superalgos/Docs/indicators/masters-bots-layers-07-bollinger-channels.gif", + "updated": 1610385920623 + }, + { + "style": "Anchor", + "text": "Bollinger Sub-Channels" + }, + { + "style": "Subtitle", + "text": "Bollinger Sub-Channels" + }, + { + "style": "Text", + "text": "If we consider that one Bollinger Channel can have sub-channels in the same direction (up or down) but different slopes, then we get to the concept of Bollinger Sub-Channels. The most important property of a sub-channel is its slope. The possible values are Side, Gentle, Medium, High and Extreme. With this information, a trading bot could easily ask if it is in a sub-channel with a certain slope and for how many periods. The slope or inclination of the moving average may be an indication of momentum." + }, + { + "style": "Gif", + "text": "GIFs/Superalgos/Docs/indicators/masters-bots-layers-08-bollinger-subchannels.gif", + "updated": 1610385965423 + }, + { + "style": "Anchor", + "text": "Products & Properties" + }, + { + "style": "Title", + "text": "Products & Properties", + "updated": 1610467642103 + }, + { + "style": "Subtitle", + "text": "Bollinger Channels" + }, + { + "style": "Text", + "text": "The product bollingerChannel features two different properties that you may use." + }, + { + "style": "Table", + "text": "| Product Name | Product Variable\t| Property Variables |\n| Bollinger Channels | bollingerChannel | direction, period |", + "updated": 1610385740520 + }, + { + "style": "List", + "text": "bollingerChannel.direction: Possible values are \"Down\", \"Up\", and \"Side\"." + }, + { + "style": "List", + "text": "bollingerChannel.period: The number of periods the channel spans at the moment the variable is being read. For instance, if a channel spans 10 candles and the variable is checked on the fourth candle, then bollingerChannel.period = 4. Put in other words, it is the current span of the channel." + }, + { + "style": "Anchor", + "text": "Bollinger Sub-Channels 2", + "updated": 1610468483005 + }, + { + "style": "Subtitle", + "text": "Bollinger Sub-Channels", + "updated": 1610468477026 + }, + { + "style": "Text", + "text": "The product bollingerSubChannel features three different properties that you may use." + }, + { + "style": "Table", + "text": "| Product Name | Product Variable | Property Variables |\n| Bollinger SubChannels | bollingerSubChannel | direction, period, slope |", + "updated": 1610385815244 + }, + { + "style": "List", + "text": "bollingerSubChannel.direction: Possible values are \"Down\", \"Up\", and \"Side\"." + }, + { + "style": "List", + "text": "bollingerSubChannel.period: The number of periods the subchannel spans at the moment the variable is being read. For instance, if a subchannel spans 10 candles and the variable is checked on the fourth candle, then bollingerChannel.period = 4. Put in other words, it is the current span of the subchannel." + }, + { + "style": "List", + "text": "bollingerSubChannel.slope: Indicates how steep the slope of the subchannel is. Possible values are \"Side\", \"Gentle\", \"Medium\", \"Steep\", \"Extreme\" (in order from lowest to highest)." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/masters-data-mine-003-candles-volumes.json b/Projects/Superalgos/Schemas/Docs-Topics/masters-data-mine-003-candles-volumes.json new file mode 100644 index 000000000..e7dd43a72 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/masters-data-mine-003-candles-volumes.json @@ -0,0 +1,131 @@ +{ + "topic": "Masters Data Mine", + "pageNumber": "3", + "type": "Candles Volumes", + "definition": { + "text": "The indicator processes one-minute candles into candles and volumes information for all time frames.", + "updated": 1610398384051 + }, + "paragraphs": [ + { + "style": "Title", + "text": "On the Charts", + "updated": 1610398373620 + }, + { + "style": "Subtitle", + "text": "Candle" + }, + { + "style": "Text", + "text": "Typical candlesticks." + }, + { + "style": "Gif", + "text": "GIFs/Superalgos/Docs/indicators/masters-bots-layers-00-candles.gif", + "updated": 1610399061405 + }, + { + "style": "Subtitle", + "text": "Volume" + }, + { + "style": "Text", + "text": "We innovated a bit placing the buy volume at the bottom (in green), and the sell volume at the top (in red)." + }, + { + "style": "Gif", + "text": "GIFs/Superalgos/Docs/indicators/masters-bots-layers-01-volumes.gif", + "updated": 1610399087669 + }, + { + "style": "Anchor", + "text": "Products & Properties" + }, + { + "style": "Title", + "text": "Products & Properties" + }, + { + "style": "Subtitle", + "text": "Candle" + }, + { + "style": "Text", + "text": "The product candle features five different properties." + }, + { + "style": "Table", + "text": "| Product Name | Product Variable | Property Variables |\n| Candles | candle | min, max, open, close, direction |", + "updated": 1610398497568 + }, + { + "style": "List", + "text": "candle.min: The minimum price of the last closed candle (low)." + }, + { + "style": "List", + "text": "candle.max: The maximum price of the last closed candle (high)." + }, + { + "style": "List", + "text": "candle.open: The price at which the last closed candle opened." + }, + { + "style": "List", + "text": "candle.close: The price at which the last closed candle closed." + }, + { + "style": "List", + "text": "candle.direction:" + }, + { + "style": "Text", + "text": "\"Down\": ", + "updated": 1610398542509 + }, + { + "style": "Javascript", + "text": "candle.close < candle.open (bearish candle)" + }, + { + "style": "Text", + "text": "\"Up\": ", + "updated": 1610398557109 + }, + { + "style": "Javascript", + "text": "candle.close > candle.open (bullish candle)" + }, + { + "style": "Text", + "text": "\"Side\": ", + "updated": 1610398582953 + }, + { + "style": "Javascript", + "text": "candle.close = candle.open (neutral candle)" + }, + { + "style": "Subtitle", + "text": "Volume" + }, + { + "style": "Text", + "text": "The product volume features two properties." + }, + { + "style": "Table", + "text": "| Product Name | Product Variable | Property Variables |\n| Volumes | volume | buy, sell |", + "updated": 1610398633204 + }, + { + "style": "List", + "text": "volume.buy: The buy volume of the last closed candle." + }, + { + "style": "List", + "text": "volume.sell: The sell volume of the last closed candle." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/masters-data-mine-004-resistances-and-supports.json b/Projects/Superalgos/Schemas/Docs-Topics/masters-data-mine-004-resistances-and-supports.json new file mode 100644 index 000000000..cd3d42a9d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/masters-data-mine-004-resistances-and-supports.json @@ -0,0 +1,148 @@ +{ + "topic": "Masters Data Mine", + "pageNumber": "4", + "type": "Resistances and Supports", + "definition": { + "text": "The indicator keeps track of resistances and supports levels for the entire dataset.", + "updated": 1610398924843 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Resistances and Supports On the Charts", + "updated": 1610398899212 + }, + { + "style": "Text", + "text": "This indicator is an interpretation of the concept of resistance and support levels. The indicator identifies levels (a price range) on which price is rejected, and keeps a counter of how many times rejections occur until the level is breached." + }, + { + "style": "Png", + "text": "PNGs/Superalgos/Docs/indicators/support-resistance-00.png", + "updated": 1610399303951 + }, + { + "style": "Text", + "text": "Each level is determined by the reference rate, which is the rate of the first rejection. However, the level is not a specific rate, but a rate range expressed as a percentage of the reference rate. The percentage used to determine a level varies depending on the time frame. The smaller the time frame, the smaller the percentage." + }, + { + "style": "Text", + "text": "Also, each level is calculated in different variations using different percentages to determine the rate range that makes up the level. Each of these variations in the rate range of a level is called a zone." + }, + { + "style": "Text", + "text": "For simplicity’s sake, only the first zone of each level is rendered on-screen. That is, what you see on-screen is the representation of a single variation of a level. However, strategies have access to several different versions increasing in zone sizes." + }, + { + "style": "Text", + "text": "The way in which a level is visualized on screen depends on the number of rejections that have occured at the particular level since is was first established:" + }, + { + "style": "Table", + "text": "| Number of Rejections | Graphics | Comments |\n| 1 | | A faint, grey dotted line marking the reference rate of the support / resistance level. |\n| 2 |RGB(150, 150, 150, 0.2)| A grey block, marking the range of rates that make up the level. |\n| 3 |RGB(2, 149, 170, 0.2)| A turquoise block. |\n| 4 |RGB(244, 228, 9, 0.2)| A yellow block. |\n| 5 |RGB(188, 214, 67, 0.2)| A green block. |\n| 6 |RGB(240, 162, 2, 0.2)| An orange block. |\n| 7 or more |RGB(91,80, 122, 0.4)| A purple block. |", + "updated": 1610399927341 + }, + { + "style": "Gif", + "text": "GIFs/Superalgos/Docs/indicators/support-resistance-01.gif", + "updated": 1610400513872 + }, + { + "style": "Callout", + "text": "Each relative high rejected at the level increments the counter, and changes the color of the level.", + "updated": 1610400569083 + }, + { + "style": "Text", + "text": "Once the price breaks through the level, the level dissappears." + }, + { + "style": "Text", + "text": "When a level is identified and the rejection counter is greater than zero, the level remains “in memory”. However, this doesn’t mean that the level is graphically represented on-screen at all times. On the contrary, not all levels are represented on-screen at all times." + }, + { + "style": "Text", + "text": "The criteria to render level on-screen is influenced by the price at the current candle. For each candle, only five levels of resistance and five levels of support are rendered, above and below the price, respectively. This is to clear up the screen and limit the density of information in display when information is not relevant. As price moves up and down, some levels are hidden, some new levels may form, and pre-existing levels may emerge." + }, + { + "style": "Gif", + "text": "GIFs/Superalgos/Docs/indicators/support-resistance-02.gif", + "updated": 1610400658308 + }, + { + "style": "Callout", + "text": "Notice the discontinuity in the level marked in blue caused by the drop of the price and the emergence of new levels below. However, despite the level stops being rendered on screen, it remains hidden and re-emerges when the price comes back up." + }, + { + "style": "Subtitle", + "text": "Panels" + }, + { + "style": "List", + "text": "Resistance / Support Bounces: The panel shows the number of bounces off each of the six zones of the first three levels.", + "updated": 1610400824306 + }, + { + "style": "List", + "text": "Resistance / Support Levels: The panel indicates the rate on which the closest five resistance or support levels are located, and the number of periods the levels have been in existence, counting from the period of the first rejection.", + "updated": 1610401022578 + }, + { + "style": "List", + "text": "Resistance / Support Zone Sizes: The panel shows the sizes of the different zones tracked for each level. However, remember that only the first zone is rendered on screen.", + "updated": 1610401038648 + }, + { + "style": "Title", + "text": "Resistances and Supports Products & Properties" + }, + { + "style": "Text", + "text": "The indicator features two data products: resitance and support." + }, + { + "style": "Table", + "text": "| Product Name | Product Variable |\n| Resistance | resistance |\n| Support | support |", + "updated": 1610401484913 + }, + { + "style": "Table", + "text": "| Resistance Properties | Possible Values of (i) | Comments |\n| resitance(i)Rate | 1 to 5 | The reference rate of the level. |\n| resistance(i)Period | 1 to 5 | The number of periods the level has been in existence. |\n| resistance(i)Bounce1 | 1 to 5 | The number of bounces for zone 1, the one rendered on-screen. |\n| resistance(i)Bounce2 | 1 to 3 | The number of bounces for zone 2, only available for the first three levels. Zone 2 is two times bigger than zone 1. |\n| resistance(i)Bounce3 | 1 to 3 | The number of bounces for zone 3, only available for the first three levels. Zone 3 is three times bigger than zone 1. |\n| resistance(i)Bounce5 | 1 to 3 | The number of bounces for zone 5, only available for the first three levels. Zone 5 is five times bigger than zone 1. |\n| resistance(i)Bounce10 | 1 to 3 | The number of bounces for zone 10, only available for the first three levels. Zone 10 is ten times bigger than zone 1. |\n| resistance(i)BounceAll | 1 to 3 | The number of bounces for zone All, only available for the first three levels. Zone All is one hundred times bigger than zone 1. |", + "updated": 1610401512754 + }, + { + "style": "Table", + "text": "| Support Properties | Possible Values of (i) | Comments |\n| support(i)Rate | 1 to 5 | The reference rate of the level. |\n| support(i)Period | 1 to 5 | The number of periods the level has been in existence. |\n| support(i)Bounce1 | 1 to 5 | The number of bounces for zone 1, the one rendered on-screen. |\n| support(i)Bounce2 | 1 to 3 | The number of bounces for zone 2, only available for the first three levels. Zone 2 is two times bigger than zone 1. |\n| support(i)Bounce3 | 1 to 3 | The number of bounces for zone 3, only available for the first three levels. Zone 3 is three times bigger than zone 1. |\n| support(i)Bounce5 | 1 to 3 | The number of bounces for zone 5, only available for the first three levels. Zone 5 is five times bigger than zone 1. |\n| support(i)Bounce10 | 1 to 3 | The number of bounces for zone 10, only available for the first three levels. Zone 10 is ten times bigger than zone 1. |\n| support(i)BounceAll | 1 to 3 | The number of bounces for zone All, only available for the first three levels. Zone All is one hundred times bigger than zone 1. |", + "updated": 1610401530218 + }, + { + "style": "Subtitle", + "text": "Examples", + "updated": 1610400943872 + }, + { + "style": "Text", + "text": "Let’s say you wish to check if you have a strong support level below the current price on the 1H chart." + }, + { + "style": "List", + "text": "chart.at01hs.support.support1Bounce1 tells you the number of times price has bounced off the first support level; a high number of bounces may mean the level has strong support." + }, + { + "style": "List", + "text": "chart.at01hs.support.support1Period tells you how long the support level has been “alive”; long-lasting support levels may mean the level is strong, as it hasn’t been breached in a long time." + }, + { + "style": "List", + "text": "chart.at01hs.candle.close - chart.at01hs.support.support1Rate tells you how far down the first level of support is." + }, + { + "style": "Text", + "text": "Checking the first level only may not be enough. Bear in mind that the first level may show weak support, but there may be stronger support at lower levels." + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/network-001-network-hierarchy.json b/Projects/Superalgos/Schemas/Docs-Topics/network-001-network-hierarchy.json new file mode 100644 index 000000000..a7b69c800 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/network-001-network-hierarchy.json @@ -0,0 +1,106 @@ +{ + "topic": "Network", + "pageNumber": "1", + "type": "Network Hierarchy", + "definition": { + "text": "The Network Hierarchy organizes the infrastructure to run bots and store data. It is the hierarchy you will use the most to operate the system.", + "updated": 1610043827538 + }, + "paragraphs": [ + { + "style": "Include", + "text": "Superalgos->Node->Network->Definition", + "updated": 1610043677920 + }, + { + "style": "Include", + "text": "Superalgos->Node->Network->Content", + "updated": 1610043683253 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Note for Hierarchy Tables", + "updated": 1610049370591 + }, + { + "style": "Hierarchy", + "text": "Superalgos->Network->3", + "updated": 1610049486480 + }, + { + "style": "Title", + "text": "Network Node" + }, + { + "style": "Include", + "text": "Superalgos->Node->Network Node->Definition", + "updated": 1610043762523 + }, + { + "style": "Include", + "text": "Superalgos->Node->Network Node->Content", + "updated": 1610043768852 + }, + { + "style": "Title", + "text": "Main Sections Under a Network Node", + "updated": 1610049583621 + }, + { + "style": "Text", + "text": "We will briefly mention the main data structures under a Network Node, and study each of them in detail in the next few pages.", + "updated": 1610049737464 + }, + { + "style": "Title", + "text": "" + }, + { + "style": "Subtitle", + "text": "Data Tasks" + }, + { + "style": "Include", + "text": "Superalgos->Node->Data Tasks->Definition", + "updated": 1610049857754 + }, + { + "style": "Subtitle", + "text": "Learning Tasks" + }, + { + "style": "Include", + "text": "Superalgos->Node->Learning Tasks->Definition", + "updated": 1610049868392 + }, + { + "style": "Subtitle", + "text": "Testing Trading Tasks", + "updated": 1610049812605 + }, + { + "style": "Include", + "text": "Superalgos->Node->Testing Trading Tasks->Definition", + "updated": 1610049879031 + }, + { + "style": "Subtitle", + "text": "Production Trading Tasks", + "updated": 1610049840354 + }, + { + "style": "Include", + "text": "Superalgos->Node->Production Trading Tasks->Definition", + "updated": 1610049941551 + }, + { + "style": "Subtitle", + "text": "Data Storage" + }, + { + "style": "Include", + "text": "Superalgos->Node->Data Storage->Definition", + "updated": 1610049927436 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/network-002-organization-of-tasks.json b/Projects/Superalgos/Schemas/Docs-Topics/network-002-organization-of-tasks.json new file mode 100644 index 000000000..d6a611100 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/network-002-organization-of-tasks.json @@ -0,0 +1,74 @@ +{ + "topic": "Network", + "pageNumber": "2", + "type": "Organization of Tasks", + "definition": { + "text": "The network hierarchy supports a multi-exchange, multi-market, and multi-mine deployment, and tasks are organized by those criteria.", + "updated": 1610050221585 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Before diving into the workings of each of the operations that you may define and control from within the Network hierarchy, it is worth pointing out a certain commonality among them.", + "updated": 1610050241056 + }, + { + "style": "Text", + "text": "Because Superalgos supports deploying data mining and trading operations on multiple exchanges, multiple markets, and using bots originating in multiple data and trading mines, the organization of the different data structures under the network node follows the same pattern in each of them:" + }, + { + "style": "Callout", + "text": "Type of operation > Project Reference > Crypto Exchange Reference > Market Reference > Mine involved in the operation.", + "updated": 1610050392306 + }, + { + "style": "Text", + "text": "For example, this is the data structure under Data Tasks:", + "updated": 1610050437663 + }, + { + "style": "Hierarchy", + "text": "Superalgos->Data Tasks->5", + "updated": 1610050346817 + }, + { + "style": "Text", + "text": "Notice how the pattern repeats under the Testing Trading Tasks node:", + "updated": 1610050482112 + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Hierarchy", + "text": "Superalgos->Testing Trading Tasks->5", + "updated": 1610050520094 + }, + { + "style": "Text", + "text": "The Production Trading Tasks data structure is virtually the same:", + "updated": 1610050572647 + }, + { + "style": "Hierarchy", + "text": "Superalgos->Production Trading Tasks->5", + "updated": 1610050601207 + }, + { + "style": "Text", + "text": "The case of Data Storage is slightly different because there is a split in the structure into Data Mines Data, Trading Mines Data, and Learning Mines Data. However, each of the resulting structures of nodes bare a similarity with the organizational criteria explained above:", + "updated": 1610050788902 + }, + { + "style": "Hierarchy", + "text": "Superalgos->Data Storage->5", + "updated": 1610050722323 + }, + { + "style": "Text", + "text": "This kind of organization is required for scalable operations, as it helps in keeping a logical grouping of tasks, and helps avoid mixing up tasks from different exchanges, markets, or mines.", + "updated": 1610050968717 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/network-003-data-tasks-section.json b/Projects/Superalgos/Schemas/Docs-Topics/network-003-data-tasks-section.json new file mode 100644 index 000000000..cc20cd9db --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/network-003-data-tasks-section.json @@ -0,0 +1,114 @@ +{ + "topic": "Network", + "pageNumber": "3", + "type": "Data Tasks Section", + "definition": { + "text": "The Data Tasks structure of nodes controls the bots you need to run to extract data from exchanges and process it into indicators or technical studies.", + "updated": 1610051156939 + }, + "paragraphs": [ + { + "style": "Include", + "text": "Superalgos->Node->Data Tasks->Definition", + "updated": 1610051799865 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Note for Hierarchy Tables", + "updated": 1610051833622 + }, + { + "style": "Hierarchy", + "text": "Superalgos->Data Tasks->7", + "updated": 1610052622292 + }, + { + "style": "Title", + "text": "Project Data Tasks" + }, + { + "style": "Include", + "text": "Superalgos->Node->Project Data Tasks->Definition", + "updated": 1610052251554 + }, + { + "style": "Title", + "text": "Exchange Data Tasks", + "updated": 1610051854969 + }, + { + "style": "Include", + "text": "Superalgos->Node->Exchange Data Tasks->Definition", + "updated": 1610052267040 + }, + { + "style": "Include", + "text": "Superalgos->Node->Exchange Data Tasks->Content", + "updated": 1610052271283 + }, + { + "style": "Title", + "text": "Data Mine Tasks", + "updated": 1610051908264 + }, + { + "style": "Include", + "text": "Superalgos->Node->Data Mine Tasks->Definition", + "updated": 1610052291134 + }, + { + "style": "Include", + "text": "Superalgos->Node->Data Mine Tasks->Content", + "updated": 1610052294849 + }, + { + "style": "Title", + "text": "Task Manager", + "updated": 1610051922962 + }, + { + "style": "Include", + "text": "Superalgos->Node->Task Manager->Definition", + "updated": 1610052305576 + }, + { + "style": "Include", + "text": "Superalgos->Node->Task Manager->Content", + "updated": 1610052315139 + }, + { + "style": "Title", + "text": "Task" + }, + { + "style": "Include", + "text": "Superalgos->Node->Task->Definition", + "updated": 1610052512203 + }, + { + "style": "Include", + "text": "Superalgos->Node->Task->Content", + "updated": 1610052515948 + }, + { + "style": "Callout", + "text": "Data tasks may run instances of Indicator Bots or Sensor Bots. We'll cover those two in the next page. Some exchanges may require an API key for downloading certain kinds or amounts of data. Let's look into the Key Reference node.", + "updated": 1610104190961 + }, + { + "style": "Title", + "text": "Key Reference", + "updated": 1610053470203 + }, + { + "style": "Include", + "text": "Superalgos->Node->Key Reference->Definition", + "updated": 1610053463992 + }, + { + "style": "Include", + "text": "Superalgos->Node->Key Reference->Content", + "updated": 1610053479747 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/network-004-indicator-and-sensor-bot-instances.json b/Projects/Superalgos/Schemas/Docs-Topics/network-004-indicator-and-sensor-bot-instances.json new file mode 100644 index 000000000..cc60b4948 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/network-004-indicator-and-sensor-bot-instances.json @@ -0,0 +1,106 @@ +{ + "topic": "Network", + "pageNumber": "4", + "type": "Indicator and Sensor Bot Instances", + "definition": { + "text": "Data tasks may run instances of Indicator Bots or Sensor Bots, and some exchange may require an API key for downloading certain kinds or amounts of data. We will look into each of these cases.", + "updated": 1610103659306 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Indicator Bot Instance" + }, + { + "style": "Include", + "text": "Superalgos->Node->Indicator Bot Instance->Definition", + "updated": 1610052992001 + }, + { + "style": "Include", + "text": "Superalgos->Node->Indicator Bot Instance->Content", + "updated": 1610053001117 + }, + { + "style": "Hierarchy", + "text": "Superalgos->Indicator Bot Instance->5", + "updated": 1610103706186 + }, + { + "style": "Title", + "text": "Indicator Process Instance" + }, + { + "style": "Include", + "text": "Superalgos->Node->Indicator Process Instance->Definition", + "updated": 1610053043468 + }, + { + "style": "Include", + "text": "Superalgos->Node->Indicator Process Instance->Content", + "updated": 1610053048925 + }, + { + "style": "Title", + "text": "Time Frames Filter", + "updated": 1610053086734 + }, + { + "style": "Include", + "text": "Superalgos->Node->Time Frames Filter->Definition", + "updated": 1610053096751 + }, + { + "style": "Include", + "text": "Superalgos->Node->Time Frames Filter->Content->", + "updated": 1610053112916 + }, + { + "style": "Title", + "text": "Sensor Bot Instance" + }, + { + "style": "Include", + "text": "Superalgos->Node->Sensor Bot Instance->Definition", + "updated": 1610053220123 + }, + { + "style": "Include", + "text": "Superalgos->Node->Sensor Bot Instance->Content", + "updated": 1610053224701 + }, + { + "style": "Hierarchy", + "text": "Superalgos->Sensor Bot Instance->2", + "updated": 1610103781696 + }, + { + "style": "Title", + "text": "Sensor Process Instance" + }, + { + "style": "Include", + "text": "Superalgos->Node->Sensor Process Instance->Definition", + "updated": 1610053248186 + }, + { + "style": "Include", + "text": "Superalgos->Node->Sensor Process Instance->Content", + "updated": 1610053252094 + }, + { + "style": "Title", + "text": "Key Reference", + "updated": 1610103821335 + }, + { + "style": "Include", + "text": "Superalgos->Node->Key Reference->Definition" + }, + { + "style": "Include", + "text": "Superalgos->Node->Key Reference->Content", + "updated": 1610053479747 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/network-005-testing-trading-tasks-section.json b/Projects/Superalgos/Schemas/Docs-Topics/network-005-testing-trading-tasks-section.json new file mode 100644 index 000000000..fb01610c6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/network-005-testing-trading-tasks-section.json @@ -0,0 +1,124 @@ +{ + "topic": "Network", + "pageNumber": "5", + "type": "Testing Trading Tasks Section", + "definition": { + "text": "The testing environment organizes your strategy-testing resources, grouping tasks and associated backtesting and paper trading sessions", + "updated": 1610098745062 + }, + "paragraphs": [ + { + "style": "Include", + "text": "Superalgos->Node->Testing Trading Tasks->Definition", + "updated": 1610098836922 + }, + { + "style": "Include", + "text": "Superalgos->Node->Testing Trading Tasks->Content", + "updated": 1610098839938 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Note for Hierarchy Tables", + "updated": 1610099117367 + }, + { + "style": "Hierarchy", + "text": "Superalgos->Testing Trading Tasks->7", + "updated": 1610099143777 + }, + { + "style": "Title", + "text": "Project Trading Tasks", + "updated": 1610099464447 + }, + { + "style": "Include", + "text": "Superalgos->Node->Project Trading Tasks->Definition", + "updated": 1610099472471 + }, + { + "style": "Include", + "text": "Superalgos->Node->Project Trading Tasks->Content", + "updated": 1610099475424 + }, + { + "style": "Title", + "text": "Exchange Trading Tasks" + }, + { + "style": "Include", + "text": "Superalgos->Node->Exchange Trading Tasks->Definition", + "updated": 1610099304052 + }, + { + "style": "Include", + "text": "Superalgos->Node->Exchange Trading Tasks->Content", + "updated": 1610099319135 + }, + { + "style": "Title", + "text": "Market Trading Tasks", + "updated": 1610099570869 + }, + { + "style": "Include", + "text": "Superalgos->Node->Market Trading Tasks->Definition", + "updated": 1610099575741 + }, + { + "style": "Include", + "text": "Superalgos->Node->Market Trading Tasks->Content", + "updated": 1610099578861 + }, + { + "style": "Title", + "text": "Trading Mine Tasks", + "updated": 1610099612379 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading Mine Tasks->Definition", + "updated": 1610099623224 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading Mine Tasks->Content", + "updated": 1610099626491 + }, + { + "style": "Title", + "text": "Task Manager", + "updated": 1610099672822 + }, + { + "style": "Include", + "text": "Superalgos->Node->Task Manager->Definition", + "updated": 1610099685252 + }, + { + "style": "Include", + "text": "Superalgos->Node->Task Manager->Content", + "updated": 1610099688254 + }, + { + "style": "Title", + "text": "Task", + "updated": 1610099791047 + }, + { + "style": "Include", + "text": "Superalgos->Node->Task->Definition" + }, + { + "style": "Include", + "text": "Superalgos->Node->Task->Content", + "updated": 1610099795844 + }, + { + "style": "Callout", + "text": "Trading tasks run instances of the Trading Bot, which may run four different types of trading sessions. We shall study those in the next few pages.", + "updated": 1610100281413 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/network-006-production-trading-tasks-section.json b/Projects/Superalgos/Schemas/Docs-Topics/network-006-production-trading-tasks-section.json new file mode 100644 index 000000000..88ea46bfd --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/network-006-production-trading-tasks-section.json @@ -0,0 +1,30 @@ +{ + "topic": "Network", + "pageNumber": "6", + "type": "Production Trading Tasks Section", + "definition": { + "text": "The production environment organizes your strategy-deployment resources, grouping tasks and associated forward testing and live trading sessions.", + "updated": 1610106563761 + }, + "paragraphs": [ + { + "style": "Include", + "text": "Superalgos->Node->Production Trading Tasks->Definition", + "updated": 1610106660823 + }, + { + "style": "Include", + "text": "Superalgos->Node->Production Trading Tasks->Content", + "updated": 1610106664031 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Note for Hierarchy Tables", + "updated": 1610111896199 + }, + { + "style": "Hierarchy", + "text": "Superalgos->Production Trading Tasks->7" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/network-007-trading-bot-instance-and-trading-sessions.json b/Projects/Superalgos/Schemas/Docs-Topics/network-007-trading-bot-instance-and-trading-sessions.json new file mode 100644 index 000000000..8ca194fbc --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/network-007-trading-bot-instance-and-trading-sessions.json @@ -0,0 +1,144 @@ +{ + "topic": "Network", + "pageNumber": "7", + "type": "Trading Bot Instance and Trading Sessions", + "definition": { + "text": "The Trading Bot Instance may run four different types of trading tasks: Backtesting Session, Paper Trading Session, Forward Testing Session, and Live Trading Session.", + "updated": 1610104458924 + }, + "paragraphs": [ + { + "style": "Include", + "text": "Superalgos->Node->Trading Bot Instance->Definition", + "updated": 1610104349814 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading Bot Instance->Content", + "updated": 1610104353367 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Note for Hierarchy Tables", + "updated": 1610104559141 + }, + { + "style": "Hierarchy", + "text": "Superalgos->Trading Bot Instance->3", + "updated": 1610105354911 + }, + { + "style": "Title", + "text": "Trading Process Instance", + "updated": 1610105388480 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading Process Instance->Definition", + "updated": 1610105392651 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading Process Instance->Content", + "updated": 1610105395638 + }, + { + "style": "Title", + "text": "Backtesting Session", + "updated": 1610105426304 + }, + { + "style": "Include", + "text": "Superalgos->Node->Backtesting Session->Definition", + "updated": 1610105431567 + }, + { + "style": "Include", + "text": "Superalgos->Node->Backtesting Session->Content", + "updated": 1610105435332 + }, + { + "style": "Title", + "text": "Paper Trading Session", + "updated": 1610105446863 + }, + { + "style": "Include", + "text": "Superalgos->Node->Paper Trading Session->Definition", + "updated": 1610105455085 + }, + { + "style": "Include", + "text": "Superalgos->Node->Paper Trading Session->Content", + "updated": 1610105458675 + }, + { + "style": "Title", + "text": "Forward Testing Session", + "updated": 1610105468103 + }, + { + "style": "Include", + "text": "Superalgos->Node->Forward Testing Session->Definition", + "updated": 1610105490548 + }, + { + "style": "Include", + "text": "Superalgos->Node->Forward Testing Session->Content", + "updated": 1610105494921 + }, + { + "style": "Title", + "text": "Live Trading Session", + "updated": 1610105511436 + }, + { + "style": "Include", + "text": "Superalgos->Node->Live Trading Session->Definition" + }, + { + "style": "Include", + "text": "Superalgos->Node->Live Trading Session->Content", + "updated": 1610105515022 + }, + { + "style": "Title", + "text": "Execution Started Event", + "updated": 1610105590828 + }, + { + "style": "Include", + "text": "Superalgos->Node->Execution Started Event->Definition", + "updated": 1610105594875 + }, + { + "style": "Include", + "text": "Superalgos->Node->Execution Started Event->Content", + "updated": 1610105598223 + }, + { + "style": "Text", + "text": "Superalgos->Node->XXXXXXXX->Definition" + }, + { + "style": "Text", + "text": "Superalgos->Node->XXXXXXXX->Content" + }, + { + "style": "Text", + "text": "Superalgos->Node->XXXXXXXX->Definition" + }, + { + "style": "Text", + "text": "Superalgos->Node->XXXXXXXX->Content" + }, + { + "style": "Text", + "text": "Superalgos->Node->XXXXXXXX->Definition" + }, + { + "style": "Text", + "text": "Superalgos->Node->XXXXXXXX->Content" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/network-008-trading-session-references.json b/Projects/Superalgos/Schemas/Docs-Topics/network-008-trading-session-references.json new file mode 100644 index 000000000..8d6954747 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/network-008-trading-session-references.json @@ -0,0 +1,40 @@ +{ + "topic": "Network", + "pageNumber": "8", + "type": "Trading Session References", + "definition": { + "text": "A Trading Session must reference the Trading System whose rules are to be implemented during the session, and the Trading Engine hierarchy that shall keep track of the runtime data produced by the Trading Bot.", + "updated": 1610119349368 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Trading System Reference", + "updated": 1610119907548 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading System Reference->Definition", + "updated": 1610119921115 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading System Reference->Content", + "updated": 1610119924551 + }, + { + "style": "Title", + "text": "Trading Engine Reference" + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading Engine Reference->Definition", + "updated": 1610119935818 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading Engine Reference->Content", + "updated": 1610119940143 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/network-009-trading-session-parameters.json b/Projects/Superalgos/Schemas/Docs-Topics/network-009-trading-session-parameters.json new file mode 100644 index 000000000..5787fd592 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/network-009-trading-session-parameters.json @@ -0,0 +1,157 @@ +{ + "topic": "Network", + "pageNumber": "9", + "type": "Trading Session Parameters", + "definition": { + "text": "Parameters control the behavior of trading sessions and improve the quality of simulations.", + "updated": 1610120140431 + }, + "paragraphs": [ + { + "style": "Include", + "text": "Superalgos->Node->Trading Parameters->Definition", + "updated": 1610120395977 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading Parameters->Content", + "updated": 1610120405121 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Note for Hierarchy Tables", + "updated": 1610121029612 + }, + { + "style": "Hierarchy", + "text": "Superalgos->Trading Parameters->2", + "updated": 1610121089149 + }, + { + "style": "Title", + "text": "Session Base Asset" + }, + { + "style": "Include", + "text": "Superalgos->Node->Session Base Asset->Definition", + "updated": 1610120263157 + }, + { + "style": "Include", + "text": "Superalgos->Node->Session Base Asset->Content", + "updated": 1610120266197 + }, + { + "style": "Title", + "text": "Session Quoted Asset" + }, + { + "style": "Include", + "text": "Superalgos->Node->Session Quoted Asset->Definition", + "updated": 1610120273454 + }, + { + "style": "Include", + "text": "Superalgos->Node->Session Quoted Asset->Content", + "updated": 1610120276410 + }, + { + "style": "Title", + "text": "Time Range" + }, + { + "style": "Include", + "text": "Superalgos->Node->Time Range->Definition", + "updated": 1610120284295 + }, + { + "style": "Include", + "text": "Superalgos->Node->Time Range->Content", + "updated": 1610120287169 + }, + { + "style": "Title", + "text": "Time Frame" + }, + { + "style": "Include", + "text": "Superalgos->Node->Time Frame->Definition", + "updated": 1610120295153 + }, + { + "style": "Include", + "text": "Superalgos->Node->Time Frame->Content", + "updated": 1610120298151 + }, + { + "style": "Title", + "text": "Slippage" + }, + { + "style": "Include", + "text": "Superalgos->Node->Slippage->Definition", + "updated": 1610120306196 + }, + { + "style": "Include", + "text": "Superalgos->Node->Slippage->Content", + "updated": 1610120309523 + }, + { + "style": "Title", + "text": "Fee Structure" + }, + { + "style": "Include", + "text": "Superalgos->Node->Fee Structure->Definition", + "updated": 1610120321164 + }, + { + "style": "Include", + "text": "Superalgos->Node->Fee Structure->Content", + "updated": 1610120324208 + }, + { + "style": "Title", + "text": "Snapshots" + }, + { + "style": "Include", + "text": "Superalgos->Node->Snapshots->Definition", + "updated": 1610120337256 + }, + { + "style": "Include", + "text": "Superalgos->Node->Snapshots->Content", + "updated": 1610120341143 + }, + { + "style": "Title", + "text": "Heartbeats" + }, + { + "style": "Include", + "text": "Superalgos->Node->Heartbeats->Definition", + "updated": 1610120350029 + }, + { + "style": "Include", + "text": "Superalgos->Node->Heartbeats->Content", + "updated": 1610120353801 + }, + { + "style": "Title", + "text": "User Defined Parameters" + }, + { + "style": "Include", + "text": "Superalgos->Node->User Defined Parameters->Definition", + "updated": 1610120362782 + }, + { + "style": "Include", + "text": "Superalgos->Node->User Defined Parameters->Content", + "updated": 1610120365727 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/network-010-data-storage-section.json b/Projects/Superalgos/Schemas/Docs-Topics/network-010-data-storage-section.json new file mode 100644 index 000000000..9115bc522 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/network-010-data-storage-section.json @@ -0,0 +1,21 @@ +{ + "topic": "Network", + "pageNumber": "10", + "type": "Data Storage Section", + "definition": { + "text": "The data storage structure of nodes within the network hierarchy controls where and how the bots you run store the data they produce.", + "updated": 1610122239931 + }, + "paragraphs": [ + { + "style": "Include", + "text": "Superalgos->Node->Data Storage->Definition", + "updated": 1610122265882 + }, + { + "style": "Include", + "text": "Superalgos->Node->Data Storage->Content", + "updated": 1610122272255 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/network-011-data-mines-data-section.json b/Projects/Superalgos/Schemas/Docs-Topics/network-011-data-mines-data-section.json new file mode 100644 index 000000000..b715646bd --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/network-011-data-mines-data-section.json @@ -0,0 +1,71 @@ +{ + "topic": "Network", + "pageNumber": "11", + "type": "Data Mines Data Section", + "definition": { + "text": "The Data Mines Data section of the hierarchy controls where and how the sensor and indicator bots store the data they produce.", + "updated": 1610123085597 + }, + "paragraphs": [ + { + "style": "Include", + "text": "Superalgos->Node->Data Mines Data->Definition", + "updated": 1610123132919 + }, + { + "style": "Include", + "text": "Superalgos->Node->Data Mines Data->Content", + "updated": 1610123146269 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Note for Hierarchy Tables", + "updated": 1610123161131 + }, + { + "style": "Hierarchy", + "text": "Superalgos->Data Mines Data->4", + "updated": 1610123554732 + }, + { + "style": "Title", + "text": "Project Data Products", + "updated": 1610123324369 + }, + { + "style": "Include", + "text": "Superalgos->Node->Project Data Products->Definition", + "updated": 1610123331661 + }, + { + "style": "Title", + "text": "Exchange Data Products", + "updated": 1610123361772 + }, + { + "style": "Include", + "text": "Superalgos->Node->Exchange Data Products->Definition", + "updated": 1610123388612 + }, + { + "style": "Include", + "text": "Superalgos->Node->Exchange Data Products->Content", + "updated": 1610123376323 + }, + { + "style": "Title", + "text": "Market Data Products", + "updated": 1610123413632 + }, + { + "style": "Include", + "text": "Superalgos->Node->Market Data Products->Definition", + "updated": 1610123424225 + }, + { + "style": "Include", + "text": "Superalgos->Node->Market Data Products->Content", + "updated": 1610123427005 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/network-012-trading-mines-data-section.json b/Projects/Superalgos/Schemas/Docs-Topics/network-012-trading-mines-data-section.json new file mode 100644 index 000000000..739b7e143 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/network-012-trading-mines-data-section.json @@ -0,0 +1,84 @@ +{ + "topic": "Network", + "pageNumber": "12", + "type": "Trading Mines Data Section", + "definition": { + "text": "The Trading Mines Data section of the hierarchy controls where and how the Trading Bot stores the data produced.", + "updated": 1610123085597 + }, + "paragraphs": [ + { + "style": "Include", + "text": "Superalgos->Node->Trading Mines Data->Definition", + "updated": 1610123132919 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading Mines Data->Content", + "updated": 1610123146269 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Note for Hierarchy Tables", + "updated": 1610123161131 + }, + { + "style": "Hierarchy", + "text": "Superalgos->Trading Mines Data->5", + "updated": 1610123782314 + }, + { + "style": "Title", + "text": "Project Trading Products", + "updated": 1610123324369 + }, + { + "style": "Include", + "text": "Superalgos->Node->Project Trading Products->Definition", + "updated": 1610123331661 + }, + { + "style": "Title", + "text": "Exchange Trading Products", + "updated": 1610123361772 + }, + { + "style": "Include", + "text": "Superalgos->Node->Exchange Trading Products->Definition", + "updated": 1610123388612 + }, + { + "style": "Include", + "text": "Superalgos->Node->Exchange Trading Products->Content", + "updated": 1610123376323 + }, + { + "style": "Title", + "text": "Market Trading Products", + "updated": 1610123413632 + }, + { + "style": "Include", + "text": "Superalgos->Node->Market Trading Products->Definition", + "updated": 1610123424225 + }, + { + "style": "Include", + "text": "Superalgos->Node->Market Trading Products->Content", + "updated": 1610123427005 + }, + { + "style": "Title", + "text": "Trading Session Reference", + "updated": 1610123843563 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading Session Reference->Definition" + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading Session Reference->Content" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/network-013-data-and-trading-mine-products.json b/Projects/Superalgos/Schemas/Docs-Topics/network-013-data-and-trading-mine-products.json new file mode 100644 index 000000000..f3f2389d9 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/network-013-data-and-trading-mine-products.json @@ -0,0 +1,95 @@ +{ + "topic": "Network", + "pageNumber": "13", + "type": "Data and Trading Mine Products", + "definition": { + "text": "Both the Data Mine Products and Trading Mine Products sections under Data Mines Data and Trading Mines Data respectively have a very similar arrangement, and store data in the same type of nodes. We will review both sections side by side.", + "updated": 1610124188550 + }, + "paragraphs": [ + { + "style": "Include", + "text": "Superalgos->Node->Data Mine Products->Definition", + "updated": 1610124263165 + }, + { + "style": "Include", + "text": "Superalgos->Node->Data Mine Products->Content", + "updated": 1610124266569 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Note for Hierarchy Tables", + "updated": 1610124280340 + }, + { + "style": "Hierarchy", + "text": "Superalgos->Data Mine Products->8", + "updated": 1610124306721 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading Mine Products->Definition", + "updated": 1610124333397 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading Mine Products->Content", + "updated": 1610124337452 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Note for Hierarchy Tables" + }, + { + "style": "Hierarchy", + "text": "Superalgos->Trading Mine Products->8", + "updated": 1610124343582 + }, + { + "style": "Title", + "text": "Bot Products", + "updated": 1610124425039 + }, + { + "style": "Include", + "text": "Superalgos->Node->Bot Products->Definition", + "updated": 1610124428671 + }, + { + "style": "Include", + "text": "Superalgos->Node->Bot Products->Content", + "updated": 1610124431780 + }, + { + "style": "Title", + "text": "Data Product Folder", + "updated": 1610124450730 + }, + { + "style": "Include", + "text": "Superalgos->Node->Data Product Folder->Definition", + "updated": 1610124454283 + }, + { + "style": "Include", + "text": "Superalgos->Node->Data Product Folder->Content", + "updated": 1610124457515 + }, + { + "style": "Title", + "text": "Data Product", + "updated": 1610124466513 + }, + { + "style": "Include", + "text": "Superalgos->Node->Data Product->Definition", + "updated": 1610124476732 + }, + { + "style": "Include", + "text": "Superalgos->Node->Data Product->Content", + "updated": 1610124484017 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/nodes-001-node.json b/Projects/Superalgos/Schemas/Docs-Topics/nodes-001-node.json new file mode 100644 index 000000000..441deeddd --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/nodes-001-node.json @@ -0,0 +1,15 @@ +{ + "topic": "Nodes", + "pageNumber": "1", + "type": "Node", + "definition": { + "text": "Nodes are objects that exist within workspaces and can be visualized at the Design Space. Nodes can be attached to each other forming hierarchical structures. ", + "updated": 1609235686573 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/nodes-002-node-type.json b/Projects/Superalgos/Schemas/Docs-Topics/nodes-002-node-type.json new file mode 100644 index 000000000..5c15ab0e8 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/nodes-002-node-type.json @@ -0,0 +1,15 @@ +{ + "topic": "Nodes", + "pageNumber": "2", + "type": "Node Type", + "definition": { + "text": "Each Node is of a certain type. It's type defines what the Node can be used for, the Node Menu, to which other nodes it can attach to, and may other properties that are dependent on the Node Type At the Design Space, the type of the node is displayed below the Node Icon. ", + "updated": 1609236288974 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/nodes-003-node-name.json b/Projects/Superalgos/Schemas/Docs-Topics/nodes-003-node-name.json new file mode 100644 index 000000000..4370f0898 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/nodes-003-node-name.json @@ -0,0 +1,15 @@ +{ + "topic": "Nodes", + "pageNumber": "3", + "type": "Node Name", + "definition": { + "text": "Each instance of a Node might have a user-assigned name, or a default name assigned to it by the system at the moment the Node was created. At the Design Space the name of a Node appears above the Node Icon. ", + "updated": 1609236312410 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/nodes-004-node-config.json b/Projects/Superalgos/Schemas/Docs-Topics/nodes-004-node-config.json new file mode 100644 index 000000000..d1aeec6f4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/nodes-004-node-config.json @@ -0,0 +1,16 @@ +{ + "topic": "Nodes", + "pageNumber": "4", + "type": "Node Config", + "definition": { + "text": "Nodes might have a config -only when needed- that it is used to store information related to that node. When they do, they usually allow users to access it via one of the Node Menu items. A Node Config is later used by Tasks or Bots during their processing.", + "updated": 1609236556444 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Each type of node, might have a definition with the initial values for it's configuration. The Initial Values are set at the node iwhen the Node is first created. ", + "updated": 1609244634949 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/nodes-005-node-code.json b/Projects/Superalgos/Schemas/Docs-Topics/nodes-005-node-code.json new file mode 100644 index 000000000..7ce570f9b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/nodes-005-node-code.json @@ -0,0 +1,16 @@ +{ + "topic": "Nodes", + "pageNumber": "5", + "type": "Node Code", + "definition": { + "text": "Nodes might have code inside of them. When they do, they usually allow users to access and modify it via one of the Node Menu items. The code stored at a node is later used at Tasks or Bots during their processing.", + "updated": 1609236689695 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Some types of nodes, might have code that defines their behaviour. The code can usually be accesed by users via the Edit menu item. When first created, the code of a Node is initialized with the initial value present at the Node's Definition Document. Some types of node represents Formulas and they hold code that defines those formulas at the Node Code.", + "updated": 1609246211297 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/nodes-006-node-menu.json b/Projects/Superalgos/Schemas/Docs-Topics/nodes-006-node-menu.json new file mode 100644 index 000000000..2ba5022ae --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/nodes-006-node-menu.json @@ -0,0 +1,16 @@ +{ + "topic": "Nodes", + "pageNumber": "6", + "type": "Node Menu", + "definition": { + "text": "Nodes usually have a menu that allows users to interact with the node. Each Node Type can have a different set of menu items. ", + "updated": 1609236892270 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Each Node Type, might have a menu which allow users to interact with the Node. There is no fixed set of menu items. Instead each menu items is defined at each Node's definition. Each menu item haave a set of properties that allow the system to execute some action when the menu item is clicked by users.", + "updated": 1609240463871 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/nodes-007-node-children.json b/Projects/Superalgos/Schemas/Docs-Topics/nodes-007-node-children.json new file mode 100644 index 000000000..335a9052d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/nodes-007-node-children.json @@ -0,0 +1,20 @@ +{ + "topic": "Nodes", + "pageNumber": "7", + "type": "Node Children", + "definition": { + "text": "Nodes might have children. When they do, they usually offer the User a way to create it's children via the Node Menu. A Node Children might end up attached to the Parent Node, but that is not always the case.", + "updated": 1609237042862 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Children Nodes Properties", + "updated": 1609242892197 + }, + { + "style": "Text", + "text": "Each type of node might have children. If they do, a reference to the children will be present at runtime at one or more properties of the node object. There is no generic childrenNodes property (like in HTML) with an array of children nodes. Instead what we can find is that each Node Type defines which properties will hold those children references." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/nodes-008-node-attaching-rules.json b/Projects/Superalgos/Schemas/Docs-Topics/nodes-008-node-attaching-rules.json new file mode 100644 index 000000000..7ec3ba2a0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/nodes-008-node-attaching-rules.json @@ -0,0 +1,16 @@ +{ + "topic": "Nodes", + "pageNumber": "8", + "type": "Node Attaching Rules", + "definition": { + "text": "Each Node Type can have a set of rules that defines to which Node Type it can attach itself to.", + "updated": 1609237513121 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Each Node Type, might have a set of rules that defines to which nodes it can be attached to. These rules are literally two lists of Node Type s, one for compatible types and the second one for uncompatible types. There is also the possiblity to replace the list of types for the keyword *Any Node*.", + "updated": 1609243750949 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/nodes-009-node-referencing-rules.json b/Projects/Superalgos/Schemas/Docs-Topics/nodes-009-node-referencing-rules.json new file mode 100644 index 000000000..32ed4b664 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/nodes-009-node-referencing-rules.json @@ -0,0 +1,15 @@ +{ + "topic": "Nodes", + "pageNumber": "9", + "type": "Node Referencing Rules", + "definition": { + "text": "Each Node Type can have a set of rules that defines with which Node Type it can stablish a reference.", + "updated": 1609244259240 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/nodes-010-node-icon.json b/Projects/Superalgos/Schemas/Docs-Topics/nodes-010-node-icon.json new file mode 100644 index 000000000..7d58f7af1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/nodes-010-node-icon.json @@ -0,0 +1,15 @@ +{ + "topic": "Nodes", + "pageNumber": "10", + "type": "Node Icon", + "definition": { + "text": "Each Node must have a icon, that is the one that represents the Node at the Desing Space.", + "updated": 1609237637368 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/nodes-011-parent-node.json b/Projects/Superalgos/Schemas/Docs-Topics/nodes-011-parent-node.json new file mode 100644 index 000000000..975bc563a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/nodes-011-parent-node.json @@ -0,0 +1,15 @@ +{ + "topic": "Nodes", + "pageNumber": "11", + "type": "Parent Node", + "definition": { + "text": "The Parent Node of a certain Node A, is the Node who was used to create A. Nodes are automatically attached to their Parent Node. Not all nodes have a Parent Node.", + "updated": 1609240097919 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/nodes-012-reference-parent.json b/Projects/Superalgos/Schemas/Docs-Topics/nodes-012-reference-parent.json new file mode 100644 index 000000000..02bed8622 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/nodes-012-reference-parent.json @@ -0,0 +1,15 @@ +{ + "topic": "Nodes", + "pageNumber": "12", + "type": "Reference Parent", + "definition": { + "text": "The Reference Parent of a certain Node A, is the node with which A stablishes a Reference.", + "updated": 1609240205404 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/order-management-001-overview-of-the-management-issue.json b/Projects/Superalgos/Schemas/Docs-Topics/order-management-001-overview-of-the-management-issue.json new file mode 100644 index 000000000..f9aba3499 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/order-management-001-overview-of-the-management-issue.json @@ -0,0 +1,50 @@ +{ + "topic": "Order Management", + "pageNumber": "1", + "type": "Overview of the Management Issue", + "definition": { + "text": "The Low-Frequency trading bot manages live orders, produces a simulation that is synchronized with the events occurring at the exchange, and does the accounting to keep all trading information in order.", + "updated": 1610219490073 + }, + "paragraphs": [ + { + "style": "Text", + "text": "The management of orders is at the heart of the Low-Frequency trading bot’s competency.", + "updated": 1610219504082 + }, + { + "style": "Text", + "text": "The process has some intricacies, as it involves handling orders at the exchange as well as producing a simulation. The system must be synchronized with what happens at the exchange so that the on-screen monitoring of the trading session, the accounts, and all trading information reflects reality." + }, + { + "style": "Callout", + "text": "Understanding how the trading bot manages orders will help you make the most out of Superalgos. This knowledge will allow you to transcend simple trading system setups, and stretch the limits of what you may do with more elaborate or unusual definitions." + }, + { + "style": "Text", + "text": "The following pages feature a chronological description of the life of an order, from the moment in which the trading system definitions of orders are read, until the accounting is done." + }, + { + "style": "Text", + "text": "Once an order is created, it is maintained on each execution of the trading bot. At this point, the bot handles two parallel jobs:" + }, + { + "style": "List", + "text": "In the case of forward testing and live trading sessions, the maintenance of orders involves dealing with the exchange and live orders." + }, + { + "style": "List", + "text": "In the case of backtesting and paper trading sessions, the bot simulates those interactions, while dealing with simulated orders." + }, + { + "style": "Important", + "text": "This whole section assumes that you are familiar with trading systems. Make sure you read about them first in case you are not.", + "updated": 1610219545354 + }, + { + "style": "Success", + "text": "The rest of the pages in this section are a detailed, step-by-step account of the actions the Low-Frequency trading bot performs while dealing with orders. You would make the most out of this content if you read the whole sequence of pages in the proposed order.", + "updated": 1610219534393 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/order-management-002-reviewing-defined-orders.json b/Projects/Superalgos/Schemas/Docs-Topics/order-management-002-reviewing-defined-orders.json new file mode 100644 index 000000000..891fca6e1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/order-management-002-reviewing-defined-orders.json @@ -0,0 +1,100 @@ +{ + "topic": "Order Management", + "pageNumber": "2", + "type": "Reviewing Defined Orders", + "definition": { + "text": "The trading bot checks all existing orders upon each execution to determine what needs to be done with each of them.", + "updated": 1610219637945 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Each order has a create order event, and limit orders may have a cancel order event. This means that orders may be created and, in the case of limit orders, canceled.", + "updated": 1610219649118 + }, + { + "style": "Text", + "text": "For each order defined, the bot performs multiple checks which may result in different actions. Two particular cases are analyzed separately: when the order is Not Open and when the order is Open." + }, + { + "style": "Title", + "text": "The Order is Not Open", + "updated": 1610219666758 + }, + { + "style": "Javascript", + "text": "(tradingEngineOrder.status.value === 'Not Open')" + }, + { + "style": "Text", + "text": "If the order is Not Open it means that it may need to be created. However, a few checks are in order." + }, + { + "style": "List", + "text": "Orders are not created in the first Cycle.", + "updated": 1610219707546 + }, + { + "style": "Javascript", + "text": "(tradingEngine.current.episode.cycle.value === 'First')" + }, + { + "style": "List", + "text": "Orders are not created when the stage is closing." + }, + { + "style": "Javascript", + "text": "(tradingEngineStage.status.value === 'Closing')" + }, + { + "style": "List", + "text": "For order definitions that do not allow spawning multiple orders, orders are not created when the lock is closed." + }, + { + "style": "Javascript", + "text": "(tradingEngineOrder.lock.value === 'Closed')" + }, + { + "style": "Text", + "text": "If previous checks pass and one of the situations in the create order event validates true, then the order is created (see Opening Orders).", + "updated": 1610219773322 + }, + { + "style": "Title", + "text": "The Order is Open", + "updated": 1610219785473 + }, + { + "style": "Javascript", + "text": "(tradingEngineOrder.status.value === 'Open')" + }, + { + "style": "Text", + "text": "If the order is Open and it is a limit order, it may need to be canceled (market orders may not be canceled as they are supposed to fill almost instantaneously). Also, several other system actions may be required. A few checks are in order." + }, + { + "style": "List", + "text": "Orders are not canceled in the second cycle, only the first." + }, + { + "style": "Javascript", + "text": "(tradingEngine.current.episode.cycle.value === 'Second')" + }, + { + "style": "List", + "text": "If it’s a forward testing or live trading session, the events that take place at the exchange must be checked (see Checking exchange events). If the checking of the events at the exchange fails for whatever reason, the order may not be canceled and will need to wait for the next execution." + }, + { + "style": "List", + "text": "If it’s a backtesting or paper trading session, the events that take place at the exchange must be simulated (see Simulating check of events)." + }, + { + "style": "Text", + "text": "If previous checks pass and one of the situations in the cancel order event validates true, then the order is canceled (see Canceling orders). If the order is indeed closed, the order is cloned to update the corresponding data structure of the tradingEngine.last node." + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/order-management-003-opening-orders.json b/Projects/Superalgos/Schemas/Docs-Topics/order-management-003-opening-orders.json new file mode 100644 index 000000000..e8a642c7c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/order-management-003-opening-orders.json @@ -0,0 +1,227 @@ +{ + "topic": "Order Management", + "pageNumber": "3", + "type": "Opening Orders", + "definition": { + "text": "Several calculations and validations are required before creating and placing an order.", + "updated": 1610219973766 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Before creating an order, a few calculations to determine what the order should look like are required, in particular about the rate of the order (see Calculate Order Rate) and the size of the order (see Calculate Order Size).", + "updated": 1610219986275 + }, + { + "style": "Text", + "text": "Once the calculations are done, some validations are in order." + }, + { + "style": "Text", + "text": "The size of an order may not be negative." + }, + { + "style": "Javascript", + "text": "(tradingEngineOrder.orderBaseAsset.size.value <= 0)\n(tradingEngineOrder.orderQuotedAsset.size.value <= 0)", + "updated": 1610220014592 + }, + { + "style": "Callout", + "text": "If previous checks pass and it is a forward testing or live trading session, the order is placed at the exchange. If it is a backtesting or paper trading session, the order exists in the data structure of the trading engine only." + }, + { + "style": "Text", + "text": "If the order is placed successfully, then all related data structures in the trading engine are updated accordingly, including size placed for the stage in both assets, episode counters, and the particular order’s details." + }, + { + "style": "Title", + "text": "Calculate Order Rate" + }, + { + "style": "Text", + "text": "The first thing to consider to determine the rate of the order is whether it is a limit or a market order." + }, + { + "style": "Text", + "text": "Limit orders must have a proper definition of the order rate. That is, the order rate node must have a formula that results in a number, and that is greater than zero. If all validations pass, the order rate is stored in tradingEngineOrder.rate.value." + }, + { + "style": "Text", + "text": "For market orders, there is no definition of the rate, as the rate is whatever rate the order fills at the exchange. The initial value is therefore the last known market rate, that is, the rate of the last closed candle: ", + "updated": 1610220046300 + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.rate.value = tradingEngine.current.episode.candle.close.value", + "updated": 1610220056132 + }, + { + "style": "Title", + "text": "Calculate Order Size" + }, + { + "style": "Text", + "text": "The calculation of the size of the order is a bit more elaborate, as several things must be taken into account, with the added intricacy that the user may define the target size for the stage in the base asset or the quoted asset." + }, + { + "style": "Text", + "text": "The three main steps to define the size are the following:" + }, + { + "style": "List", + "text": "To start with, the definitions regarding the size of the order must be valid (see Required Configuration Validation)." + }, + { + "style": "List", + "text": "Then, the size of the order added to the rest of the orders that may have been placed before must not be greater than the target size for the stage (see Not Passing Target Size Validation)." + }, + { + "style": "List", + "text": "Finally, the size of the order must not leave any of the assets in the trading engine’s built-in accounting system with a negative balance (see Not Negative Balance Validation)." + }, + { + "style": "Subtitle", + "text": "Required Configuration Validation" + }, + { + "style": "Text", + "text": "Beyond the target size for the stage, the user produces two more definitions that affect what the order size should be for the particular order: at the level of the execution algorithm’s configuration (percentageOfStageTargetSize parameter) and the level of the order’s configuration (percentageOfAlgorithmSize parameter). Both of these definitions must be valid and numeric." + }, + { + "style": "Text", + "text": "Once the corresponding checks pass, the size of the algorithm is determined as per the definitions:" + }, + { + "style": "Javascript", + "text": "algorithmSizeInBaseAsset =\ntradingEngineStage.stageBaseAsset.targetSize.value *\nexecutionAlgorithm.config.percentageOfStageTargetSize / 100", + "updated": 1610220102815 + }, + { + "style": "Text", + "text": "… and…" + }, + { + "style": "Javascript", + "text": "algorithmSizeInQuotedAsset = \ntradingEngineStage.stageQuotedAsset.targetSize.value *\nexecutionAlgorithm.config.percentageOfStageTargetSize / 100", + "updated": 1610220138568 + }, + { + "style": "Note", + "text": "Notice that it is assumed that the target size for the stage is defined both in base asset and the quoted asset. This is because, although the user defines the target size in one asset only, the system converts the definition to the other asset (at an earlier moment), to keep track of accounts on both assets at all times, which is a design requirement.", + "updated": 1610220163303 + }, + { + "style": "Title", + "text": "Not Passing Target Size Validation" + }, + { + "style": "Text", + "text": "This validation requires handling two possible scenarios separately. Did the user define the target size for the stage in base asset or the quoted asset?" + }, + { + "style": "Note", + "text": "The system discriminates both scenarios to remain faithful to the intent of the definitions. This is a design feature throughout the system, and it is at the core of allowing maximum flexibility, so that users may use trading systems in various ways to achieve different goals.", + "updated": 1610220186307 + }, + { + "style": "Subtitle", + "text": "Stage size defined in base asset" + }, + { + "style": "Text", + "text": "If the stage size was defined in base asset, then the size of the order derives from the definitions that where validated in the previous step (see Required Configuration Validation):" + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderBaseAsset.size.value =\nalgorithmSizeInBaseAsset *\ntradingSystemOrder.config.percentageOfAlgorithmSize / 100", + "updated": 1610220217663 + }, + { + "style": "Text", + "text": "With the above value, the validation is run to determine if the combined sizes of all orders placed up to this point would be larger than the size defined for the stage. Remember that the size defined for the stage is enforced as a cap. If the defined order size does exceed the stage size limit, then the size is lowered to fit the limit. The re-sizing goes out with a warning, to let the user know why the resizing took place." + }, + { + "style": "Text", + "text": "Once the order size in base asset is final, then the size in quoted asset may be determined multiplying the size in base asset by the order rate determined earlier:" + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderQuotedAsset.size.value =\ntradingEngineOrder.orderBaseAsset.size.value *\ntradingEngineOrder.rate.value", + "updated": 1610220243415 + }, + { + "style": "Subtitle", + "text": "Stage size defined in quoted asset" + }, + { + "style": "Text", + "text": "Similarly, in this case the size of the order in quoted asset derives directly from the definitions:" + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderQuotedAsset.size.value =\nalgorithmSizeInQuotedAsset *\ntradingSystemOrder.config.percentageOfAlgorithmSize / 100", + "updated": 1610220273076 + }, + { + "style": "Text", + "text": "The same validation is run as with the base asset, and the size of the order in base asset is also determined at the end:" + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderBaseAsset.size.value =\ntradingEngineOrder.orderQuotedAsset.size.value /\ntradingEngineOrder.rate.value", + "updated": 1610220292334 + }, + { + "style": "Title", + "text": "Not Negative Balance Validation" + }, + { + "style": "Text", + "text": "The final validation is there to make sure that no balances become negative if the order is created with the currently defined size." + }, + { + "style": "Subtitle", + "text": "Buy orders" + }, + { + "style": "Text", + "text": "For buy orders (both market and limit), the quoted asset balance minus the order size must be equal to or greater than zero." + }, + { + "style": "Javascript", + "text": "tradingEngine.current.episode.episodeQuotedAsset.balance.value -\ntradingEngineOrder.orderQuotedAsset.size.value => 0", + "updated": 1610220335526 + }, + { + "style": "Text", + "text": "If not, the size of the order is redefined to fit the available balance. The resizing goes out with a warning." + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderQuotedAsset.size.value =\ntradingEngine.current.episode.episodeQuotedAsset.balance.value", + "updated": 1610220358264 + }, + { + "style": "Text", + "text": "And, remember, every time a property changes for one asset, the same property for the other asset must be updated as well:" + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderBaseAsset.size.value =\ntradingEngineOrder.orderQuotedAsset.size.value /\ntradingEngineOrder.rate.value", + "updated": 1610220378073 + }, + { + "style": "Subtitle", + "text": "Sell orders" + }, + { + "style": "Text", + "text": "For market and limit sell orders, the validation is reversed, checking the balance of the base asset instead of the quoted asset." + }, + { + "style": "Note", + "text": "Remember that a sell order always exchanges the base asset for the quoted asset and a buy order does the opposite.", + "updated": 1610220400837 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/order-management-004-maintaining-live-orders.json b/Projects/Superalgos/Schemas/Docs-Topics/order-management-004-maintaining-live-orders.json new file mode 100644 index 000000000..af004ef1a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/order-management-004-maintaining-live-orders.json @@ -0,0 +1,37 @@ +{ + "topic": "Order Management", + "pageNumber": "4", + "type": "Maintaining Live Orders", + "definition": { + "text": "Orders at the exchange are monitored on every execution to discover the size filled, rates, and other exchange events. Also, the trading bot synchronizes Superalgos with the real transactional information handled by the exchange.", + "updated": 1610220454133 + }, + "paragraphs": [ + { + "style": "Text", + "text": "As hinted in the Overview of the Management Issue page, there are two different paths for maintaining orders. The pages in this section describe the maintenance of real orders sent to the exchange, as opposed to simulated orders that live within Superalgos only.", + "updated": 1610220513296 + }, + { + "style": "Text", + "text": "The maintenance of orders involves a series of tasks that deal with three main concerns:" + }, + { + "style": "List", + "text": "Checking the orders at the exchange, mainly to find out whether they have been filled or not, what size of the order was filled, and at what rate. We also need to know if the order has been arbitrarily canceled, either by the user or the exchange itself." + }, + { + "style": "List", + "text": "Synchronizing the information existing in Superalgos with the actual happenings at the exchange. The original information Superalgos has about orders derive from definitions, but what happens at the exchange is what truly matters." + }, + { + "style": "List", + "text": "Cancelling orders whenever the trading system’s definitions indicate so." + }, + { + "style": "Success", + "text": "It is highly recommended to read these pages and compare with the simulated version of order maintenance. The comparison will greatly help you understand the differences between backtesting or paper trading and live trading sessions.", + "updated": 1610220471695 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/order-management-005-checking-exchange-events.json b/Projects/Superalgos/Schemas/Docs-Topics/order-management-005-checking-exchange-events.json new file mode 100644 index 000000000..9b42dea65 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/order-management-005-checking-exchange-events.json @@ -0,0 +1,163 @@ +{ + "topic": "Order Management", + "pageNumber": "5", + "type": "Checking Exchange Events", + "definition": { + "text": "The trading bot monitors exchange orders to check their status analyzing multiple possible scenarios.", + "updated": 1610220643629 + }, + "paragraphs": [ + { + "style": "Text", + "text": "For forward testing and live trading sessions, the state of orders at the exchange is checked on every execution of the trading bot.", + "updated": 1610220673347 + }, + { + "style": "Text", + "text": "It’s important to note that, when an order is placed, no relevant information is obtained from the exchange other than a confirmation that the order was received. The trading bot must ask the exchange for the status of the order some time after placing it." + }, + { + "style": "Note", + "text": "The trading bot places the order during the second execution cycle and asks the exchange about the order in the next run of the bot, during the first execution cycle. This means that the order is checked one unit of the trading session’s time frame after the order is placed. For example, if the session is running on the 01-min time frame, the order is checked roughly one minute after it is placed.", + "updated": 1610220684415 + }, + { + "style": "Text", + "text": "When the trading bot fetches an order from the exchange, it gets the order information in a text message. What does the trading bot obtain from the exchange?" + }, + { + "style": "Text", + "text": "This is an important question, as the answer conditions what the trading bot may or may not do with each order, and how it may keep a reliable internal accounting system." + }, + { + "style": "Title", + "text": "Orders According to the Exchange", + "updated": 1610220706175 + }, + { + "style": "Text", + "text": "What follows are several examples including a market sell order, a market buy order, a limit sell order, and a limit buy order, all of them in the BTC/USDT market in Binance." + }, + { + "style": "Note", + "text": "Notice that the body section is provided by the CCXT library, and is the same for all exchanges; the info section is provided by the exchange itself, and may vary across exchanges.", + "updated": 1610220717780 + }, + { + "style": "Subtitle", + "text": "Market sell order for 0.1 BTC", + "updated": 1610220735916 + }, + { + "style": "Json", + "text": "Body: \naverage:12930.92\nclientOrderId:\"eLAkNrEoMw3erEp8AeaiTT\"\ncost:1293.24717104\ndatetime:\"2020-10-24T08:47:43.104Z\"\nfee:undefined\nfilled:0.100012\nid:\"3420506109\"\nlastTradeTimestamp:undefined\nprice:12930.92\nremaining:0\nside:\"sell\"\nstatus:\"closed\"\nsymbol:\"BTC/USDT\"\ntimestamp:1603529263104\ntrades:undefined\ntype:\"market\"\n\nInfo: \norderId:3420506109\norderListId:-1\norigQty:\"0.10001200\"\norigQuoteOrderQty:\"1293.25000000\"\nprice:\"0.00000000\"\nside:\"SELL\"\nstatus:\"FILLED\"\nstopPrice:\"0.00000000\"\nsymbol:\"BTCUSDT\"\ntime:1603529263104\ntimeInForce:\"GTC\"\ntype:\"MARKET\"\nupdateTime:1603529263104", + "updated": 1610220759201 + }, + { + "style": "Subtitle", + "text": "Limit sell order for 0.1 BTC", + "updated": 1610220791496 + }, + { + "style": "Json", + "text": "Body: \namount:0.1\naverage:12976.74\nclientOrderId:\"iZbiUF9W1WiKmtMfhA8hIr\"\ncost:1297.674\ndatetime:\"2020-10-24T10:43:47.944Z\"\nfee:undefined\nfilled:0.1\nid:\"3420762036\"\nlastTradeTimestamp:undefined\nprice:12969.83\nremaining:0\nside:\"sell\"\nstatus:\"closed\"\nsymbol:\"BTC/USDT\"\ntimestamp:1603536227944\ntrades:undefined\ntype:\"limit\"\n\nInfo: \nexecutedQty:\"0.10000000\"\nicebergQty:\"0.00000000\"\nisWorking:true\norderId:3420762036\norderListId:-1\norigQty:\"0.10000000\"\norigQuoteOrderQty:\"0.00000000\"\nprice:\"12969.83000000\"\nside:\"SELL\"\nstatus:\"FILLED\"\nstopPrice:\"0.00000000\"\nsymbol:\"BTCUSDT\"\ntime:1603536227944\ntimeInForce:\"GTC\"\ntype:\"LIMIT\"\nupdateTime:1603536227944", + "updated": 1610220811097 + }, + { + "style": "Title", + "text": "Status checks", + "updated": 1610220854490 + }, + { + "style": "Text", + "text": "Once the status of the order is received as in one of the above examples, the trading bot performs multiple checks, each leading to particular actions. The following are the particular cases analyzed and the actions taken." + }, + { + "style": "Subtitle", + "text": "Filled and closed" + }, + { + "style": "Text", + "text": "If the order is filled and closed, the corresponding data structures in the trading engine are updated to indicate so." + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.status.value = 'Closed'\ntradingEngineOrder.exitType.value = 'Filled'", + "updated": 1610220873457 + }, + { + "style": "Text", + "text": "But, most importantly, the details in the order are processed to synchronize the information in the trading engine—at this point consisting mostly of information derived from the definitions in the trading system—with the information obtained from the exchange." + }, + { + "style": "Text", + "text": "The data structures to be updated are mostly those related to the actual rate at which the order was filled, the actual size that was filled, the actual fees that were charged, and how those variables affect balances and the overall accounts in various contexts (order, stage, position, episode, etc.)." + }, + { + "style": "Note", + "text": "Notice that definitions in the trading system are—in a way—just a plan. Your definitions tell the trading bot what to do, but there is no certainty on the outcome. That is the reason why the first set of accounts recorded with information derived from the trading system needs to be synchronized in every execution cycle with what actually happened at the exchange until the order is closed.", + "updated": 1610220886259 + }, + { + "style": "Text", + "text": "The calculations involved in the synchronization process are covered in Syncing With the Exchange.", + "updated": 1610221145905 + }, + { + "style": "Subtitle", + "text": "Partially filled and closed" + }, + { + "style": "Text", + "text": "If the order is partially filled and closed, the corresponding data structures in the trading engine are updated to indicate so." + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.status.value = 'Closed'\ntradingEngineOrder.exitType.value = 'Closed at the Exchange'", + "updated": 1610220905601 + }, + { + "style": "Text", + "text": "For a limit order to be closed while partially filled, it must be closed manually by the user directly at the exchange, or forcefully closed by the exchange itself, for whatever reason. The system handles such occurrences so that they do not disrupt the trading session or the accounts at Superalgos." + }, + { + "style": "Text", + "text": "The first thing to do with such an order is to update the size placed on the stage so that the stage accounts for the amount that was filled only, instead of the original size of the order (see Accounting)." + }, + { + "style": "Text", + "text": "And then, the same synchronization process described earlier must be applied as well (see Syncing With the Exchange).", + "updated": 1610221158590 + }, + { + "style": "Subtitle", + "text": "Cancelled" + }, + { + "style": "Text", + "text": "These are limit orders canceled by the trading bot upon the triggering of the cancel order event. In such cases, the exit type is set as follows:" + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.exitType.value = 'Cancelled at the Exchange'" + }, + { + "style": "Text", + "text": "Canceled orders go through the same processes of synchronization (see Syncing With the Exchange) and the recalculation of the size of the stage (see Accounting).", + "updated": 1610221173299 + }, + { + "style": "Subtitle", + "text": "All other instances" + }, + { + "style": "Text", + "text": "The cases described above refer to orders with particular characteristics. Orders that do not match any of the above criteria trigger the synchronization process described earlier (see Syncing With the Exchange).", + "updated": 1610221181661 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/order-management-006-syncing-with-the-exchange.json b/Projects/Superalgos/Schemas/Docs-Topics/order-management-006-syncing-with-the-exchange.json new file mode 100644 index 000000000..132fb8e93 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/order-management-006-syncing-with-the-exchange.json @@ -0,0 +1,303 @@ +{ + "topic": "Order Management", + "pageNumber": "6", + "type": "Syncing With the Exchange", + "definition": { + "text": "Syncing with the exchange involves calculating the actual size, the actual rate, the percentage filled, the fees paid, and the size filled, to update the trading engine data structure so that it matches with the actual situation of the order at the exchange.", + "updated": 1610221056957 + }, + "paragraphs": [ + { + "style": "Text", + "text": "The process of synchronizing the data in the trading engine with what actually happens at the exchange is crucial to monitoring and controlling a live trading operation from within Superalgos. It is this process that allows users to access the information at the exchange throughout the life cycle of each order, on the fly.", + "updated": 1610221245028 + }, + { + "style": "Text", + "text": "This is when all calculations involving the actual size, actual rate, actual fees, and so on are made. We will closely look into each of the calculations." + }, + { + "style": "Text", + "text": "Once the synchronization is done, the bot does the accounting (see Accounting), to keep the rest of the variables—like balances and the stage size—up to date with the reality of orders." + }, + { + "style": "Title", + "text": "Actual Size Calculation" + }, + { + "style": "Text", + "text": "While users may define the target size of the stage in either the base asset or the quoted asset, the size of orders is always denominated in the base asset, as per the CCXT Library API, and—likely—most exchange’s APIs." + }, + { + "style": "Note", + "text": "It is a common occurrence that exchanges change the size slightly, for whatever reason, including issues with the precision of decimal places, for example. This is why the size of the order as defined by the user may need to be updated, synchronizing it with the actual size determined by the exchange.", + "updated": 1610221270715 + }, + { + "style": "Text", + "text": "When the actual size of the order as reported by the exchange is different than the size defined by the user, the trading bot makes the adjustments described below." + }, + { + "style": "Subtitle", + "text": "Recalculate Actual Size" + }, + { + "style": "Text", + "text": "The actual size of the base asset is updated with the size reported by the exchange:" + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderBaseAsset.actualSize.value = order.amount" + }, + { + "style": "Text", + "text": "Then it’s time to calculate the actual size in the quoted asset. At this stage, the actual rate of the order hasn’t been established yet, so the existing rate is used temporarily." + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderQuotedAsset.actualSize.value =\ntradingEngineOrder.orderBaseAsset.actualSize.value *\ntradingEngineOrder.rate.value", + "updated": 1610221293179 + }, + { + "style": "Subtitle", + "text": "Recalculate Size Placed" + }, + { + "style": "Text", + "text": "The open stage and close stage sections of the trading engine hierarchy keep track of the accumulated size of the orders that have been placed so that the stage size may be compared to the target size defined in the trading system." + }, + { + "style": "Note", + "text": "Remember that the target size defined acts as a size cap, thus, the system must not place orders in excess of the defined target size.", + "updated": 1610221313060 + }, + { + "style": "Text", + "text": "If the size of the order as determined by the exchange is different from the original size of the order, the current stage size must be recalculated." + }, + { + "style": "Text", + "text": "What the trading bot does in this case is subtracting the original size from the stage size placed, and then add the actual size, as obtained from the exchange. As usual, this is done both for the base asset and the quoted asset." + }, + { + "style": "Text", + "text": "For clarity, each operation is done in two steps." + }, + { + "style": "Javascript", + "text": "tradingEngineStage.stageBaseAsset.sizePlaced.value =\ntradingEngineStage.stageBaseAsset.sizePlaced.value -\ntradingEngineOrder.orderBaseAsset.size.value\n\ntradingEngineStage.stageBaseAsset.sizePlaced.value =\ntradingEngineStage.stageBaseAsset.sizePlaced.value +\ntradingEngineOrder.orderBaseAsset.actualSize.value\n\ntradingEngineStage.stageQuotedAsset.sizePlaced.value =\ntradingEngineStage.stageQuotedAsset.sizePlaced.value -\ntradingEngineOrder.orderQuotedAsset.size.value\n\ntradingEngineStage.stageQuotedAsset.sizePlaced.value =\ntradingEngineStage.stageQuotedAsset.sizePlaced.value +\ntradingEngineOrder.orderQuotedAsset.actualSize.value", + "updated": 1610221350195 + }, + { + "style": "Title", + "text": "Actual Rate Calculation" + }, + { + "style": "Text", + "text": "Market orders are placed without a definition in terms of the rate they will be executed at, as, by definition, a market rate is filled at whatever rate the order book allows.", + "updated": 1610221400343 + }, + { + "style": "Text", + "text": "In the case of limit orders—although the user defines a rate—the exchange may change it slightly, for multiple reasons. For example, due to issues related to decimals precision, or because the order may match existing orders in the order book with a better rate." + }, + { + "style": "Text", + "text": "For those reasons, the trading bot gets the actual rate from the exchange and —in case it differs from the defined rate—makes the updates described below." + }, + { + "style": "Text", + "text": "First of all, the actual rate under the order statistics node is updated with the actual rate provided by the exchange:" + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderStatistics.actualRate.value = order.price" + }, + { + "style": "Text", + "text": "If the actual rate is the same as the rate of the order as originally defined, then that’s all. Otherwise, the bot goes back and recalculates the size of the order for the quoted asset and the size placed in the quoted asset for the corresponding stage—again." + }, + { + "style": "Callout", + "text": "Let’s do a little recap in case the above is not crystal clear. When the order size in the quoted asset was calculated earlier, the calculation was made by multiplying the actual size in the base asset as reported by the exchange, by the rate as was originally defined. However, if the rate used earlier is not the actual rate at which the order was filled at the exchange, the trading bot needs to go back and calculate the size in the quoted asset again. The same goes for the size placed in the quoted asset." + }, + { + "style": "Text", + "text": "Both calculations are virtually the same as described earlier, so we are not going to go over the details again. Suffice to say that the only difference is that the actual rate is used instead of the original rate as defined in the trading system." + }, + { + "style": "Text", + "text": "And remember, the size in the base asset does not need to be recalculated, as it is not affected by the differences in rates." + }, + { + "style": "Title", + "text": "Percentage Filled Calculation" + }, + { + "style": "Text", + "text": "This is a simple calculation to determine what percentage of the order has been filled, which is relevant later on to calculate fees and balances:" + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderStatistics.percentageFilled.value = \norder.filled * 100 / \ntradingEngineOrder.orderBaseAsset.actualSize.value", + "updated": 1610221437484 + }, + { + "style": "Note", + "text": "As you can see, the actual size in the base asset is used, as the size is always denominated in the base asset according to the exchange.", + "updated": 1610221445535 + }, + { + "style": "Title", + "text": "Fees Paid Calculation" + }, + { + "style": "Text", + "text": "Exchange fees are a crucial aspect of trading, as they may greatly affect the profitability of strategies." + }, + { + "style": "Callout", + "text": "Surprisingly, the exchange does not explicitly report how much is charged in fees on each order. This apparent contradiction must be resolved by Superalgos, so let’s dive into the details." + }, + { + "style": "Text", + "text": "There are a few fundamental workings that affect the calculations:" + }, + { + "style": "Text", + "text": "The fees are not explicitly reported by the exchange, hence the need to calculate them." + }, + { + "style": "Important", + "text": "To calculate fees, the user bears the ultimate responsibility in supplying the trading bot with the correct parameters defined in the fee structure session parameters. It is these values of maker and taker fees that the system uses to calculate fees. If the parameters are wrong, the calculated fees will be wrong as well.", + "updated": 1610221483105 + }, + { + "style": "Text", + "text": "The taker fee parameter is used to calculate the fees on market orders, while the maker fee parameter is used to calculate fees for limit orders." + }, + { + "style": "Text", + "text": "The exchange charges fees denominated in the asset that the user is acquiring in the transaction. For example, in the BTC/USDT market, a sell order exchanges BTC for USDT, and the exchange charges fees in USDT, because that is the asset you are acquiring. On the contrary, a buy order in the BTC/USDT market exchanges USDT for BTC, thus fees are charged in BTC." + }, + { + "style": "Callout", + "text": "Properly calculating fees is crucial to keeping an accurate accounting system, as they directly affect balances. This is why: The actual size reported by the exchange is not representative of the actual amount of the asset acquired in the transaction. This is because the exchange fills the order, determines the size filled, and then subtracts the fees from the size filled. That is, the size filled reported by the exchange is greater than the amount you receive. In fact, the amount you receive is the actual size filled minus the fees. That calculation is the one used to estimate the balances for both assets in Superalgos so that they match the balances at the exchange." + }, + { + "style": "Text", + "text": "Because orders (in particular limit orders) may be partially filled, the system uses the percentage filled calculated earlier to determine the fees to be paid for the portion filled, as the exchange charges fees for the amount filled only." + }, + { + "style": "Text", + "text": "All of the above considerations are captured in the following calculations." + }, + { + "style": "Subtitle", + "text": "Market buy orders" + }, + { + "style": "Text", + "text": "Because you are acquiring the base asset, fees paid are calculated using the base asset actual size. Because it’s a market order, the taker fees parameter is used." + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderBaseAsset.feesPaid.value =\ntradingEngineOrder.orderBaseAsset.actualSize.value *\nsessionParameters.feeStructure.config.taker / 100 *\ntradingEngineOrder.orderStatistics.percentageFilled.value / 100", + "updated": 1610221512567 + }, + { + "style": "Subtitle", + "text": "Limit buy orders" + }, + { + "style": "Text", + "text": "Like with market buy orders, because you are acquiring the base asset, fees paid are calculated using the base asset actual size. Because it’s a limit order, the maker fees parameter is used." + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderBaseAsset.feesPaid.value =\ntradingEngineOrder.orderBaseAsset.actualSize.value *\nsessionParameters.feeStructure.config.maker / 100 *\ntradingEngineOrder.orderStatistics.percentageFilled.value / 100", + "updated": 1610221532644 + }, + { + "style": "Subtitle", + "text": "Market sell orders" + }, + { + "style": "Text", + "text": "Because you are acquiring the quoted asset, fees paid are calculated using the base asset actual size. Because it’s a market order, the taker fees parameter is used." + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderQuotedAsset.feesPaid.value =\ntradingEngineOrder.orderQuotedAsset.actualSize.value *\nsessionParameters.feeStructure.config.taker / 100 *\ntradingEngineOrder.orderStatistics.percentageFilled.value / 100", + "updated": 1610221581263 + }, + { + "style": "Subtitle", + "text": "Limit sell orders" + }, + { + "style": "Text", + "text": "Like with market sell orders, because you are acquiring the quoted asset, fees paid are calculated using the quoted asset actual size. Because it’s a limit order, the maker fees parameter is used." + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderQuotedAsset.feesPaid.value =\ntradingEngineOrder.orderQuotedAsset.actualSize.value *\nsessionParameters.feeStructure.config.maker / 100 *\ntradingEngineOrder.orderStatistics.percentageFilled.value / 100", + "updated": 1610221607990 + }, + { + "style": "Title", + "text": "Size Filled Calculation" + }, + { + "style": "Text", + "text": "As mentioned earlier, and as may be inferred from the example orders presented earlier, the size filled is always reported by the exchange denominated in the base asset. That is:" + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderBaseAsset.sizeFilled.value = order.filled" + }, + { + "style": "Text", + "text": "Therefore, the trading bot needs to calculate the size filled in the quoted asset:" + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderQuotedAsset.sizeFilled.value =\ntradingEngineOrder.orderQuotedAsset.actualSize.value *\ntradingEngineOrder.orderStatistics.percentageFilled.value / 100", + "updated": 1610221632885 + }, + { + "style": "Title", + "text": "Amount Received Calculation" + }, + { + "style": "Text", + "text": "The amount received is a simple calculation to facilitate the comprehension of the trade, given that the exchange does not provide that basic information. Remember that only the size filled is reported and that fees are subtracted from the size filled." + }, + { + "style": "Subtitle", + "text": "Market and limit buy orders" + }, + { + "style": "Text", + "text": "In these cases, the user receives the amount in the base asset." + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderBaseAsset.amountReceived.value =\ntradingEngineOrder.orderBaseAsset.sizeFilled.value -\ntradingEngineOrder.orderBaseAsset.feesPaid.value", + "updated": 1610221660430 + }, + { + "style": "Subtitle", + "text": "Market and limit sell orders" + }, + { + "style": "Text", + "text": "In these cases, the user receives the amount in the quoted asset." + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderQuotedAsset.amountReceived.value =\ntradingEngineOrder.orderQuotedAsset.sizeFilled.value -\ntradingEngineOrder.orderQuotedAsset.feesPaid.value", + "updated": 1610221674345 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/order-management-007-canceling-orders.json b/Projects/Superalgos/Schemas/Docs-Topics/order-management-007-canceling-orders.json new file mode 100644 index 000000000..e6c513b6d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/order-management-007-canceling-orders.json @@ -0,0 +1,74 @@ +{ + "topic": "Order Management", + "pageNumber": "7", + "type": "Canceling Orders", + "definition": { + "text": "After running a few checks, if the Cancel Order Event is triggered, the order is canceled, the synchronization is run, and accounts are updated.", + "updated": 1610221990441 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Check Cancel Order Event", + "updated": 1610222003919 + }, + { + "style": "Text", + "text": "Before evaluating the cancel order event, a few checks are in order." + }, + { + "style": "List", + "text": "Orders are not canceled if the stage is closing." + }, + { + "style": "Javascript", + "text": "(tradingEngineStage.status.value === 'Closing')" + }, + { + "style": "List", + "text": "Orders may only be canceled if the status is Open." + }, + { + "style": "Javascript", + "text": "(tradingEngineOrder.status.value === 'Open')" + }, + { + "style": "Text", + "text": "If both checks pass, then the cancel order event is evaluated. If a situation in the event is true, then the following actions take place:", + "updated": 1610222066264 + }, + { + "style": "List", + "text": "If it’s a backtesting or paper trading session, the order cancelation must be simulated (see Simulating Order Cancelation).", + "updated": 1610222051378 + }, + { + "style": "List", + "text": "If it’s a forward testing or live trading session, the order must be canceled at the exchange." + }, + { + "style": "Title", + "text": "Canceling Orders" + }, + { + "style": "Text", + "text": "When the cancel order event as defined in the trading system is triggered, the trading bot sends the cancel order request to the exchange, and waits for an answer. No further action is taken until the exchange confirms the order has been closed." + }, + { + "style": "Text", + "text": "Once the confirmation is in, a new request to check the order is sent, so as to determine if the size filled for the order changed between the last time it was checked and the moment of the cancellation." + }, + { + "style": "Text", + "text": "Once the trading bot gets the order details, it runs the synchronization (see Syncing with the exchange) and the recalculation of the stage size again (see Accounting), to make up and account for any differences that may exist compared to the last known state of the order" + }, + { + "style": "Text", + "text": "The order is not closed until the order details are received from the exchange." + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.status.value = 'Closed'" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/order-management-008-maintaining-simulated-orders.json b/Projects/Superalgos/Schemas/Docs-Topics/order-management-008-maintaining-simulated-orders.json new file mode 100644 index 000000000..37ec0daed --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/order-management-008-maintaining-simulated-orders.json @@ -0,0 +1,41 @@ +{ + "topic": "Order Management", + "pageNumber": "8", + "type": "Maintaining Simulated Orders", + "definition": { + "text": "The maintenance of simulated orders follows the same kind of logic as the maintenance of real orders, using definitions in the trading session parameters and in the trading system to complete the required assumption", + "updated": 1610222218174 + }, + "paragraphs": [ + { + "style": "Text", + "text": "The pages in this section describe how the trading bot simulates the maintenance of orders in the case of backtesting and paper trading sessions.", + "updated": 1610222228462 + }, + { + "style": "Success", + "text": "It is highly recommended that you read the Maintaining Live Orders section first, as the explanations on what is calculated and why are more extensive and detailed there.", + "updated": 1610222251113 + }, + { + "style": "Text", + "text": "When on backtesting or paper trading sessions, there is no exchange involved as orders are not actually placed, but live within the simulation only." + }, + { + "style": "Text", + "text": "However, to make simulations as realistic and as accurate as possible, the system goes through a similar process as when it’s interacting with an exchange, performs similar checks, does similar calculations, and keeps similar accounts—while simulating the response from the exchange according to the definitions in the trading system." + }, + { + "style": "Text", + "text": "The definitions that affect simulations directly are:" + }, + { + "style": "List", + "text": "The slippage and fee structure parameters at the level of the trading session." + }, + { + "style": "List", + "text": "The simulated exchange events at the level of the trading system, where a simulated partial fill, a simulated actual rate, and a simulated fees paid may be defined." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/order-management-009-simulating-check-of-events.json b/Projects/Superalgos/Schemas/Docs-Topics/order-management-009-simulating-check-of-events.json new file mode 100644 index 000000000..bb2970148 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/order-management-009-simulating-check-of-events.json @@ -0,0 +1,34 @@ +{ + "topic": "Order Management", + "pageNumber": "9", + "type": "Simulating Check of Events", + "definition": { + "text": "Instead of checking what happened with the order at the exchange, the bot launches the synchronization simulation and updates the trading engine with the results of the calculations.", + "updated": 1610222347712 + }, + "paragraphs": [ + { + "style": "Text", + "text": "The process is the same for all orders and involves a simulated synchronization with the exchange (see Simulating Sync With the Exchange), which performs all the checks and calculations, and updates the associated nodes in the trading engine hierarchy.", + "updated": 1610222491422 + }, + { + "style": "Text", + "text": "Once the simulated synchronization is done, the bot checks if the order was completely filled during the simulation... ", + "updated": 1610222413583 + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderStatistics.percentageFilled.value === 100" + }, + { + "style": "Text", + "text": "... and updates the corresponding trading engine nodes accordingly:" + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.status.value = 'Closed'\ntradingEngineOrder.exitType.value = 'Filled'", + "updated": 1610222428232 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/order-management-010-simulating-sync-with-the-exchange.json b/Projects/Superalgos/Schemas/Docs-Topics/order-management-010-simulating-sync-with-the-exchange.json new file mode 100644 index 000000000..860c74fd1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/order-management-010-simulating-sync-with-the-exchange.json @@ -0,0 +1,431 @@ +{ + "topic": "Order Management", + "pageNumber": "10", + "type": "Simulating Sync With the Exchange", + "definition": { + "text": "The simulated synchronization with the exchange resembles the real synchronization in that it follows the same logic. The difference lies in that the data involved in calculations originates in user definitions instead of real-life orders.", + "updated": 1610222523595 + }, + "paragraphs": [ + { + "style": "Text", + "text": "The simulation of the synchronization with the exchange looks to reproduce the logic of live trading for backtesting and paper trading sessions so that simulations follow similar mechanisms, and thus, maximize their capacity to predict what live trading with any given trading system may look like.", + "updated": 1610222800319 + }, + { + "style": "Text", + "text": "The obvious difference is that there is no exchange involved in the process, that is, no real-life data about the variables affecting orders such as the actual fill rates, or if orders are filled at all. Instead, all information is taken from user definitions (both from the trading system and session parameters) and market information." + }, + { + "style": "Text", + "text": "There are two main levels of definitions that affect how orders are simulated." + }, + { + "style": "Text", + "text": "The one level that takes precedence in all cases is the definitions made through the simulated exchange events section under each order defined in the trading system. These definitions affect each order, providing granular control over how each order should be simulated." + }, + { + "style": "Text", + "text": "The second level of definitions affecting how simulations work is that of parameters at the level of the trading session. These parameters are used for all orders that do not have a specific definition in the form of simulated exchange events." + }, + { + "style": "Text", + "text": "Like with the real synchronization process, once all calculations are done, the trading bot does the bookkeeping (see Accounting)." + }, + { + "style": "Title", + "text": "Actual Size Simulation" + }, + { + "style": "Text", + "text": "Minimal variations in the size of orders that may occur during live trading sessions are irrelevant to the production of proper simulations, thus, there is no need to simulate such things. Instead, the trading bot takes the defined sizes as valid and uses those as the actual size of the order." + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderBaseAsset.actualSize.value = \ntradingEngineOrder.orderBaseAsset.size.value\ntradingEngineOrder.orderQuotedAsset.actualSize.value = \ntradingEngineOrder.orderQuotedAsset.size.value", + "updated": 1610222816044 + }, + { + "style": "Title", + "text": "Actual Rate Simulation", + "updated": 1610222855123 + }, + { + "style": "Text", + "text": "The initial value for the rate of orders is the close of the last candle for market orders, that is, the last known market rate, and the value defined for the rate node in case of limit orders." + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderStatistics.actualRate.value = tradingEngineOrder.rate.value" + }, + { + "style": "Text", + "text": "However, in real live trading situations, there are many factors out of the users’ control that may affect the actual rate of an order, especially for market orders. Properly simulating such issues is conducive to more realistic projections on the potential performance of strategies, thus, simulations should take such issues into account." + }, + { + "style": "Text", + "text": "There are three steps involved in the simulation of the actual rate, and shall be analyzed separately:" + }, + { + "style": "List", + "text": "Slippage simulation when there are definitions at the level of the trading system, that is, at the level of the simulated exchange events node (see Based On Trading System below)." + }, + { + "style": "List", + "text": "Slippage simulation when there are no definitions at the level of the trading system; session parameters are used instead (see Based On Session Parameters below)." + }, + { + "style": "List", + "text": "The last case has to do with verifying if the simulated actual rate defined in either of the two earlier steps makes sense in the context of the market (see Consider Best Match With Order Book below)." + }, + { + "style": "Subtitle", + "text": "Based On Trading System" + }, + { + "style": "Text", + "text": "If an actual rate is properly defined under simulated exchange events for the order in question, the value resulting from the formula is used as the actual rate." + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderStatistics.actualRate.value ===\ntradingEngineOrder.orderStatistics.actualRate.config.initialValue", + "updated": 1610222897750 + }, + { + "style": "Note", + "text": "Although limit orders tend to have little or no slippage, notice that the above is valid both for market orders and limit orders.", + "updated": 1610222907606 + }, + { + "style": "Subtitle", + "text": "Based On Session Parameters" + }, + { + "style": "Text", + "text": "If a limit order does not have an actual rate defined under simulated exchange events, then the actual rate of a limit order is the defined initial rate, as the slippage session parameter does not apply to limit orders. That is, the value is left untouched." + }, + { + "style": "Text", + "text": "However, if a market order does not have an actual rate defined under simulated exchange events, then the marketOrderRate parameter within the slippage session parameter is used to apply a slippage factor." + }, + { + "style": "Javascript", + "text": "slippageAmount = tradingEngineOrder.rate.value *\nsessionParameters.slippage.config.marketOrderRate / 100", + "updated": 1610222939129 + }, + { + "style": "Important", + "text": "Slippage is applied so that it always goes against the interest of the trading system. For example, for a market sell order, the slippage amount is subtracted from the initial rate, therefore simulating that the rate is worse than ideal.", + "updated": 1610222950786 + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderStatistics.actualRate.value =\ntradingEngineOrder.rate.value -\nslippageAmount", + "updated": 1610222960155 + }, + { + "style": "Text", + "text": "The opposite is true for market buy orders:" + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderStatistics.actualRate.value =\ntradingEngineOrder.rate.value +\nslippageAmount", + "updated": 1610222973506 + }, + { + "style": "Subtitle", + "text": "Consider Best Match With Order Book" + }, + { + "style": "Text", + "text": "Let’s set up the context for a little piece of analysis required to understand this simulation criterion." + }, + { + "style": "Text", + "text": "The exchange’s order book is populated with bids (buy orders) and asks (sell orders). In terms of rates, we could argue that buy orders sit below sell orders. When the rate of buy and sell orders converge, orders get filled." + }, + { + "style": "Text", + "text": "Market buy orders are filled with the lowest rate possible sell orders in the book. Market sell orders are filled with the highest rate possible buy orders in the book." + }, + { + "style": "Text", + "text": "Limit buy and sell orders have a defined rate. However, by definition, a limit order is an instruction to the exchange to fill the order at the specified price or better. The “or better” part of the instruction is the key to this analysis." + }, + { + "style": "Text", + "text": "During the period of time represented in a candle, the range of rates between the maximum and minimum rates in the candle tells us that virtually all orders within those rates that were open upon the begin datetime of the candle must have been filled." + }, + { + "style": "Callout", + "text": "Now, what happens if a buy order is placed at a rate higher than the maximum rate of the candle?" + }, + { + "style": "Text", + "text": "In such a scenario, it is safe to make the following assumptions:" + }, + { + "style": "List", + "text": "The order is filled, because there are plenty of sell orders at a cheaper rate." + }, + { + "style": "List", + "text": "The order is filled at a lower rate than the one defined, for the same reasons (there are cheaper asks in the order book)." + }, + { + "style": "Text", + "text": "The above is the consideration that drives this simulation criterion to estimate the actual rate of an order. However, what is not possible to pinpoint is the exact rate at which the order would be filled." + }, + { + "style": "Callout", + "text": "With all this in mind, when a buy order’s actual rate—as calculated by the Based On Trading System or the Based On Session Parameters approaches—is higher than the maximum rate of the candle, the Consider Best Match With Order Book simulation corrects the actual rate and assigns it the maximum value of the candle." + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderStatistics.actualRate.value =\ntradingEngine.current.episode.candle.max.value", + "updated": 1610223027648 + }, + { + "style": "Text", + "text": "As a corollary, the following criteria govern this particular simulation:" + }, + { + "style": "List", + "text": "On one hand, the simulation must mirror live trading as closely as possible. This is the reason for factoring in this analysis." + }, + { + "style": "List", + "text": "On the other hand, when something is uncertain, the simulation must assume the worst possible scenario, so that simulations remain on the “realistic-pessimistic” type of performance outcome, as opposed to “wishful-thinking” scenarios that may be dangerous. This is the reason for using candle.max instead of any other more optimistic assumptions that—while feasible—are not necessarily more likely to happen." + }, + { + "style": "Text", + "text": "The reversed scenario is considered as well: when a sell order is placed at a lower rate than the minimum rate of the candle against which the order is being simulated, the actual rate is corrected with the candle.min value." + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderStatistics.actualRate.value =\ntradingEngine.current.episode.candle.min.value", + "updated": 1610223044937 + }, + { + "style": "Title", + "text": "Recalculate Actual Size" + }, + { + "style": "Text", + "text": "Since the actual rate may have been modified by the Actual Rate Simulation, it is necessary to recalculate the actual size in the quoted asset. The actual size in base asset remains the same, as it is not affected by the change in rate. Remember that the properties of the quoted asset always derive from the properties of the base asset." + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderQuotedAsset.actualSize.value =\ntradingEngineOrder.orderBaseAsset.actualSize.value *\ntradingEngineOrder.orderStatistics.actualRate.value", + "updated": 1610223069460 + }, + { + "style": "Title", + "text": "Recalculate Size Placed" + }, + { + "style": "Text", + "text": "Since the actual rate may have changed, it is also necessary to calculate the stage’s size placed. Remember that the size placed node at the level of the stage keeps track of the total size of orders that have been placed so that the target size defined for the stage may be enforced as a cap." + }, + { + "style": "Text", + "text": "As done during a typical exchange synchronization, the initial size of the order is subtracted from the size placed, and then the actual size is added. This is done in two steps, for clarity:" + }, + { + "style": "Javascript", + "text": "tradingEngineStage.stageQuotedAsset.sizePlaced.value =\ntradingEngineStage.stageQuotedAsset.sizePlaced.value -\npreviousQuotedAssetActualSize\n\ntradingEngineStage.stageQuotedAsset.sizePlaced.value =\ntradingEngineStage.stageQuotedAsset.sizePlaced.value +\ntradingEngineOrder.orderQuotedAsset.actualSize.value", + "updated": 1610223111181 + }, + { + "style": "Title", + "text": "Percentage Filled Simulation" + }, + { + "style": "Text", + "text": "The simulation of the filling of market orders is straightforward: they always fill. For limit orders, the trading bot runs a basic check:" + }, + { + "style": "List", + "text": "For limit buy orders to fill, the minimum rate of the candle must be equal or lower than the actual rate of the order. This means that the rate of the order falls within the range of rates filled during the duration of the candle." + }, + { + "style": "Javascript", + "text": "tradingEngine.current.episode.candle.min.value <=\ntradingEngineOrder.actualRate.value", + "updated": 1610223130690 + }, + { + "style": "List", + "text": "For limit sell orders to fill, the reverse logic applies: the maximum rate of the candle must be equal or greater than the actual rate of the order." + }, + { + "style": "Javascript", + "text": "tradingEngine.current.episode.candle.max.value >=\ntradingEngineOrder.actualRate.value", + "updated": 1610223149566 + }, + { + "style": "Note", + "text": "If limit orders do not pass the above check, they remain unfilled.", + "updated": 1610223159959 + }, + { + "style": "Text", + "text": "When an order is filled, by default it is filled fully, that is, the percentage filled is 100%:" + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderStatistics.percentageFilled.value = 100" + }, + { + "style": "Text", + "text": "However, the above may change if you have defined a specific fill probability for the specific order on the simulated partial fill node. If there is a valid definition to simulate the probability of the order to be filled on each execution, then this is what the trading bot does with it:" + }, + { + "style": "Javascript", + "text": "percentageFilled =\ntradingSystemOrder.simulatedExchangeEvents.simulatedPartialFill.config.fillProbability * 100", + "updated": 1610223186906 + }, + { + "style": "Text", + "text": "That is, the fillProbability parameter is multiplied by 100, and the result is the percentage filled. If the percentage filled is lower than 100, then the order may continue filling in subsequent executions, provided it passes the above checks." + }, + { + "style": "Text", + "text": "Therefore, in every execution, the following update is done on the percentage filled node of the order statistics:" + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderStatistics.percentageFilled.value =\ntradingEngineOrder.orderStatistics.percentageFilled.value +\npercentageFilled", + "updated": 1610223206637 + }, + { + "style": "Note", + "text": "Of course, there is also a check to make sure that the percentage filled is never greater than 100.", + "updated": 1610223219878 + }, + { + "style": "Title", + "text": "Fees Paid Simulation" + }, + { + "style": "Text", + "text": "Like with the definitions regarding the actual rate of the order, the definition of the simulated fees paid node under simulated exchange events takes precedence in regards to the definitions in the fee structure parameter of the trading session." + }, + { + "style": "Text", + "text": "In general terms, fees paid are calculated as follows:" + }, + { + "style": "List", + "text": "The percentage of fees is applied to the actual size to obtain the total amount of fees to be paid when the order is 100% filled." + }, + { + "style": "List", + "text": "Then, the percentage filled is applied to obtain the fees paid for the portion of the order that actually filled." + }, + { + "style": "Subtitle", + "text": "Trading system definitions" + }, + { + "style": "Text", + "text": "For buy orders, fees are calculated in the base asset, as that is the asset being acquired:" + }, + { + "style": "Javascript", + "text": "feesPaid =\ntradingEngineOrder.orderBaseAsset.actualSize.value *\ntradingSystemOrder.simulatedExchangeEvents.simulatedFeesPaid.config.percentage / 100 *\ntradingEngineOrder.orderStatistics.percentageFilled.value / 100", + "updated": 1610223256887 + }, + { + "style": "Text", + "text": "For sell orders, fees are calculated in the quoted asset:" + }, + { + "style": "Javascript", + "text": "feesPaid =\ntradingEngineOrder.orderQuotedAsset.actualSize.value *\ntradingSystemOrder.simulatedExchangeEvents.simulatedFeesPaid.config.percentage / 100 *\ntradingEngineOrder.orderStatistics.percentageFilled.value / 100", + "updated": 1610223271791 + }, + { + "style": "Subtitle", + "text": "Session parameters definitions" + }, + { + "style": "Text", + "text": "When producing the simulation based on the fees structure parameter of the trading session, the maker setting is applied to limit orders and the taker setting is applied to market orders." + }, + { + "style": "Text", + "text": "For market buy orders:" + }, + { + "style": "Javascript", + "text": "feesPaid =\ntradingEngineOrder.orderBaseAsset.actualSize.value *\nsessionParameters.feeStructure.config.taker / 100 *\ntradingEngineOrder.orderStatistics.percentageFilled.value / 100", + "updated": 1610223296764 + }, + { + "style": "Text", + "text": "For market sell orders:" + }, + { + "style": "Javascript", + "text": "feesPaid =\ntradingEngineOrder.orderQuotedAsset.actualSize.value *\nsessionParameters.feeStructure.config.taker / 100 *\ntradingEngineOrder.orderStatistics.percentageFilled.value / 100", + "updated": 1610223315630 + }, + { + "style": "Text", + "text": "For limit buy orders:" + }, + { + "style": "Javascript", + "text": "feesPaid =\ntradingEngineOrder.orderBaseAsset.actualSize.value *\nsessionParameters.feeStructure.config.maker / 100 *\ntradingEngineOrder.orderStatistics.percentageFilled.value / 100", + "updated": 1610223336052 + }, + { + "style": "Text", + "text": "For limit sell orders:" + }, + { + "style": "Javascript", + "text": "feesPaid =\ntradingEngineOrder.orderQuotedAsset.actualSize.value *\nsessionParameters.feeStructure.config.maker / 100 *\ntradingEngineOrder.orderStatistics.percentageFilled.value / 100", + "updated": 1610223351171 + }, + { + "style": "Title", + "text": "Size Filled Simulation" + }, + { + "style": "Text", + "text": "Calculating the size filled is straightforward considering we have already established the percentage of the size that has been filled. Bear in mind the property needs to be calculated for both assets." + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderBaseAsset.sizeFilled.value =\ntradingEngineOrder.orderBaseAsset.actualSize.value *\ntradingEngineOrder.orderStatistics.percentageFilled.value / 100\ntradingEngineOrder.orderQuotedAsset.sizeFilled.value =\ntradingEngineOrder.orderQuotedAsset.actualSize.value *\ntradingEngineOrder.orderStatistics.percentageFilled.value / 100", + "updated": 1610223373798 + }, + { + "style": "Title", + "text": "Amount Received Simulation" + }, + { + "style": "Text", + "text": "This is a simple calculation to explicitly determine how much of the asset was acquired in the transaction. It is calculated by subtracting the fees from the actual size." + }, + { + "style": "Text", + "text": "Buy orders acquire the base asset, thus, the amount is denominated in the base asset:" + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderBaseAsset.amountReceived.value =\ntradingEngineOrder.orderBaseAsset.sizeFilled.value -\ntradingEngineOrder.orderBaseAsset.feesPaid.value", + "updated": 1610223399677 + }, + { + "style": "Text", + "text": "Sell orders acquire the quoted asset, thus, the amount is denominated in the quoted asset:" + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.orderQuotedAsset.amountReceived.value =\ntradingEngineOrder.orderQuotedAsset.sizeFilled.value -\ntradingEngineOrder.orderQuotedAsset.feesPaid.value", + "updated": 1610223419660 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/order-management-011-simulating-order-cancellations.json b/Projects/Superalgos/Schemas/Docs-Topics/order-management-011-simulating-order-cancellations.json new file mode 100644 index 000000000..0f1c01e31 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/order-management-011-simulating-order-cancellations.json @@ -0,0 +1,28 @@ +{ + "topic": "Order Management", + "pageNumber": "11", + "type": "Simulating Order Cancellations", + "definition": { + "text": "The simulation of the cancellation of an order is quite straightforward, as the trading bot has all the information required to proceed.", + "updated": 1610223512005 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Simulating the cancelation of an order is almost trivial. Of course, the process applies to backtesting and paper trading sessions only.", + "updated": 1610223521328 + }, + { + "style": "Text", + "text": "The order is closed seamlessly as the bot has full control over the order’s details." + }, + { + "style": "Javascript", + "text": "tradingEngineOrder.status.value = 'Closed'" + }, + { + "style": "Text", + "text": "Once the order is closed, the bot runs the calculations to adjusts the stage size (see Accounting)." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/order-management-012-accounting.json b/Projects/Superalgos/Schemas/Docs-Topics/order-management-012-accounting.json new file mode 100644 index 000000000..79fb2c139 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/order-management-012-accounting.json @@ -0,0 +1,211 @@ +{ + "topic": "Order Management", + "pageNumber": "12", + "type": "Accounting", + "definition": { + "text": "The accounting process involves keeping balances synchronized with the happenings at the exchange (or the simulated events) and keeping track of the size placed and size filled of the stage.", + "updated": 1610223863701 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Once the synchronization is done, either with a real exchange or in a simulation, and with all relevant details about the order gathered and in place, it is time to do some bookkeeping.", + "updated": 1610223883776 + }, + { + "style": "Text", + "text": "Both the real and simulated synchronization processes save the previous values for the size filled and fees paid in both assets before performing the calculations to update those values." + }, + { + "style": "Text", + "text": "These previous values are then used to undo the previous accounts to redo them with the latest synchronized data." + }, + { + "style": "Title", + "text": "Update Stage Assets" + }, + { + "style": "Text", + "text": "Stage base aset, undoing the previous accounting:" + }, + { + "style": "Javascript", + "text": "tradingEngineStage.stageBaseAsset.sizeFilled.value =\ntradingEngineStage.stageBaseAsset.sizeFilled.value -\npreviousBaseAssetSizeFilled\n\ntradingEngineStage.stageBaseAsset.feesPaid.value =\ntradingEngineStage.stageBaseAsset.feesPaid.value -\npreviousBaseAssetFeesPaid", + "updated": 1610223906627 + }, + { + "style": "Text", + "text": "Stage base asset, accounting for the current filling and fees:", + "updated": 1610223935259 + }, + { + "style": "Javascript", + "text": "tradingEngineStage.stageBaseAsset.sizeFilled.value =\ntradingEngineStage.stageBaseAsset.sizeFilled.value +\ntradingEngineOrder.orderBaseAsset.sizeFilled.value\n\ntradingEngineStage.stageBaseAsset.feesPaid.value =\ntradingEngineStage.stageBaseAsset.feesPaid.value +\ntradingEngineOrder.orderBaseAsset.feesPaid.value", + "updated": 1610223957139 + }, + { + "style": "Text", + "text": "Stage quoted asset, undoing the previous accounting:", + "updated": 1610223973902 + }, + { + "style": "Javascript", + "text": "tradingEngineStage.stageQuotedAsset.sizeFilled.value =\ntradingEngineStage.stageQuotedAsset.sizeFilled.value -\npreviousQuotedAssetSizeFilled\n\ntradingEngineStage.stageQuotedAsset.feesPaid.value =\ntradingEngineStage.stageQuotedAsset.feesPaid.value -\npreviousQuotedAssetFeesPaid", + "updated": 1610223983436 + }, + { + "style": "Text", + "text": "Stage quote asset, accounting for the current filling and fees:", + "updated": 1610223987080 + }, + { + "style": "Javascript", + "text": "tradingEngineStage.stageQuotedAsset.sizeFilled.value =\ntradingEngineStage.stageQuotedAsset.sizeFilled.value +\ntradingEngineOrder.orderQuotedAsset.sizeFilled.value\n\ntradingEngineStage.stageQuotedAsset.feesPaid.value =\ntradingEngineStage.stageQuotedAsset.feesPaid.value +\ntradingEngineOrder.orderQuotedAsset.feesPaid.value", + "updated": 1610223999042 + }, + { + "style": "Title", + "text": "Update Balances", + "updated": 1610224010466 + }, + { + "style": "Text", + "text": "The updating of balances must take one crucial aspect into account: for sell orders, fees are paid in the quoted asset, while for buy orders, fees are paid in the base asset." + }, + { + "style": "Subtitle", + "text": "Sell orders" + }, + { + "style": "Text", + "text": "Balance base asset, undoing the previous accounting:" + }, + { + "style": "Javascript", + "text": "tradingEngine.current.episode.episodeBaseAsset.balance.value =\ntradingEngine.current.episode.episodeBaseAsset.balance.value +\npreviousBaseAssetSizeFilled", + "updated": 1610224035951 + }, + { + "style": "Text", + "text": "Balance base asset, accounting for the current filling and fees:", + "updated": 1610224064051 + }, + { + "style": "Javascript", + "text": "tradingEngine.current.episode.episodeBaseAsset.balance.value =\ntradingEngine.current.episode.episodeBaseAsset.balance.value -\ntradingEngineOrder.orderBaseAsset.sizeFilled.value", + "updated": 1610224081072 + }, + { + "style": "Text", + "text": "Balance quoted asset, undoing the previous accounting:", + "updated": 1610224090601 + }, + { + "style": "Javascript", + "text": "tradingEngine.current.episode.episodeQuotedAsset.balance.value =\ntradingEngine.current.episode.episodeQuotedAsset.balance.value -\npreviousQuotedAssetSizeFilled +\npreviousQuotedAssetFeesPaid", + "updated": 1610224107848 + }, + { + "style": "Text", + "text": "Balance quoted asset, account for the current filling and fees:", + "updated": 1610224138020 + }, + { + "style": "Javascript", + "text": "tradingEngine.current.episode.episodeQuotedAsset.balance.value =\ntradingEngine.current.episode.episodeQuotedAsset.balance.value +\ntradingEngineOrder.orderQuotedAsset.sizeFilled.value -\ntradingEngineOrder.orderQuotedAsset.feesPaid.value", + "updated": 1610224148958 + }, + { + "style": "Subtitle", + "text": "Buy orders", + "updated": 1610224169177 + }, + { + "style": "Text", + "text": "Balance base asset, undoing the previous accounting:" + }, + { + "style": "Javascript", + "text": "tradingEngine.current.episode.episodeBaseAsset.balance.value =\ntradingEngine.current.episode.episodeBaseAsset.balance.value -\npreviousBaseAssetSizeFilled +\npreviousBaseAssetFeesPaid", + "updated": 1610224182969 + }, + { + "style": "Text", + "text": "Balance base asset, accounting for the current filling and fees:", + "updated": 1610224192900 + }, + { + "style": "Javascript", + "text": "tradingEngine.current.episode.episodeBaseAsset.balance.value =\ntradingEngine.current.episode.episodeBaseAsset.balance.value +\ntradingEngineOrder.orderBaseAsset.sizeFilled.value -\ntradingEngineOrder.orderBaseAsset.feesPaid.value", + "updated": 1610224202075 + }, + { + "style": "Text", + "text": "Balance quoted asset, undoing the previous accounting:", + "updated": 1610224209182 + }, + { + "style": "Javascript", + "text": "tradingEngine.current.episode.episodeQuotedAsset.balance.value =\ntradingEngine.current.episode.episodeQuotedAsset.balance.value +\npreviousQuotedAssetSizeFilled", + "updated": 1610224219415 + }, + { + "style": "Text", + "text": "Balance quoted asset, accounting for the current filling and fees:", + "updated": 1610224228103 + }, + { + "style": "Javascript", + "text": "tradingEngine.current.episode.episodeQuotedAsset.balance.value =\ntradingEngine.current.episode.episodeQuotedAsset.balance.value -\ntradingEngineOrder.orderQuotedAsset.sizeFilled.value", + "updated": 1610224237924 + }, + { + "style": "Title", + "text": "Recalculate Stage Size", + "updated": 1610224257004 + }, + { + "style": "Text", + "text": "The stage keeps track of the accumulated size of orders placed for two reasons:" + }, + { + "style": "List", + "text": "The trading bot must enforce the cap embodied in the definition of the target size. That is, the bot must not place orders for an amount higher than the size defined." + }, + { + "style": "List", + "text": "The bot must close the stage once the target size has been filled." + }, + { + "style": "Text", + "text": "That is why keeping track of the size placed at the level of the stage is important." + }, + { + "style": "Text", + "text": "The process is similar to what other accounting operations we’ve covered so far: first, the obsolete account is undone; then the new account is made." + }, + { + "style": "Text", + "text": "Undoing the old accounts for base and quoted asset:" + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Javascript", + "text": "tradingEngineStage.stageBaseAsset.sizePlaced.value =\ntradingEngineStage.stageBaseAsset.sizePlaced.value -\ntradingEngineOrder.orderBaseAsset.actualSize.value\n\ntradingEngineStage.stageQuotedAsset.sizePlaced.value =\ntradingEngineStage.stageQuotedAsset.sizePlaced.value -\ntradingEngineOrder.orderQuotedAsset.actualSize.value", + "updated": 1610224328128 + }, + { + "style": "Text", + "text": "Redoing the new accounts for base and quoted asset:", + "updated": 1610224337735 + }, + { + "style": "Javascript", + "text": "tradingEngineStage.stageBaseAsset.sizePlaced.value =\ntradingEngineStage.stageBaseAsset.sizePlaced.value +\ntradingEngineOrder.orderBaseAsset.sizeFilled.value\n\ntradingEngineStage.stageQuotedAsset.sizePlaced.value =\ntradingEngineStage.stageQuotedAsset.sizePlaced.value +\ntradingEngineOrder.orderQuotedAsset.sizeFilled.value", + "updated": 1610224348969 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/trading-logic-001-situations,-conditions,-and-formulas.json b/Projects/Superalgos/Schemas/Docs-Topics/trading-logic-001-situations,-conditions,-and-formulas.json new file mode 100644 index 000000000..8367694ef --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/trading-logic-001-situations,-conditions,-and-formulas.json @@ -0,0 +1,61 @@ +{ + "topic": "Trading Logic", + "pageNumber": "1", + "type": "Situations, Conditions, and Formulas", + "definition": { + "text": "The trading framework implemented in Trading Systems and Trading Strategies carries some low-level trading logic in and of itself. However, the bulk of the logic specific to each strategy derives from the way you describe market situations, and how you define the actions the Trading Bot must take.", + "updated": 1610211518547 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Situation", + "updated": 1610211543537 + }, + { + "style": "Include", + "text": "Superalgos->Node->Situation->Definition", + "updated": 1610211550330 + }, + { + "style": "Include", + "text": "Superalgos->Node->Situation->Content", + "updated": 1610211554482 + }, + { + "style": "Title", + "text": "Condition", + "updated": 1610211561606 + }, + { + "style": "Include", + "text": "Superalgos->Node->Condition->Definition", + "updated": 1610211581358 + }, + { + "style": "Include", + "text": "Superalgos->Node->Condition->Content", + "updated": 1610211584280 + }, + { + "style": "Title", + "text": "Formula", + "updated": 1610211589034 + }, + { + "style": "Include", + "text": "Superalgos->Node->Formula->Definition", + "updated": 1610211600331 + }, + { + "style": "Include", + "text": "Superalgos->Node->Formula->Content", + "updated": 1610211603147 + }, + { + "style": "Include", + "text": "Superalgos->Node->Formula->Examples", + "updated": 1610211711972 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/trading-logic-002-syntax-overview.json b/Projects/Superalgos/Schemas/Docs-Topics/trading-logic-002-syntax-overview.json new file mode 100644 index 000000000..f34a62463 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/trading-logic-002-syntax-overview.json @@ -0,0 +1,276 @@ +{ + "topic": "Trading Logic", + "pageNumber": "2", + "type": "Syntax Overview", + "definition": { + "text": "The syntax for writing conditions and formulas combine references to the data product name, the name of the property, and the time frame.", + "updated": 1610214683129 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Introduction", + "updated": 1610214707473 + }, + { + "style": "Text", + "text": "Different bots running within the system produce data products that others may consume. These products are available for you to use within your strategies." + }, + { + "style": "Text", + "text": "Datasets are stored as a collection of sequential records and you may access any of the properties (fields) of each record." + }, + { + "style": "Text", + "text": "To do that, you will use the following syntax: ", + "updated": 1610214730077 + }, + { + "style": "Javascript", + "text": ".productName + .propertyName." + }, + { + "style": "Text", + "text": "The above syntax returns the value of the property of the declared product at the latest closed candle. This is common throughout all available datasets." + }, + { + "style": "Success", + "text": "Each Indicator Bot outputs one or more data products, each with a set of properties. Find the details of the products and properties available in the documentation of each indicator.", + "updated": 1610216390888 + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Title", + "text": "Specifying the Time Frame" + }, + { + "style": "Text", + "text": "When building conditions and formulas, you may want to use analysis concerning different time frames. This is perfectly possible." + }, + { + "style": "Text", + "text": "The variables explained further down this section, written as described for each indicator, are not valid unless they are preceeded by the declaration of the time frame they refer to." + }, + { + "style": "Text", + "text": "To do that, you need to preceed the above syntax with the following:" + }, + { + "style": "Javascript", + "text": "chart.at + time frame" + }, + { + "style": "Text", + "text": "Therefore, the complete syntax to build a valid statement is:" + }, + { + "style": "Javascript", + "text": "chart.at + time frame + .productName + .propertyName" + }, + { + "style": "Text", + "text": "For example:" + }, + { + "style": "Javascript", + "text": "chart.at04hs.candle.close > chart.at04hs.candle.previous.close" + }, + { + "style": "Text", + "text": "The above statement compares the current 4 hours candle to the previous 4 hours candle." + }, + { + "style": "Text", + "text": "The complete list of time frames available is:" + }, + { + "style": "Table", + "text": "| Time Frame | Syntax |\n| 1 min | chart.at01min |\n| 2 min | chart.at02min |\n| 3 min | chart.at03min |\n| 4 min | chart.at04min |\n| 5 min | chart.at05min |\n| 10 min | chart.at10min |\n| 15 min | chart.at15min |\n| 20 min | chart.at20min |\n| 30 min | chart.at30min |\n| 40 min | chart.at40min |\n| 45 min | chart.at45min |\n| 1 h | chart.at01hs |\n| 2 hs | chart.at02hs |\n| 3 hs | chart.at03hs |\n| 4 hs | chart.at04hs |\n| 6 hs | chart.at06hs |\n| 8 hs | chart.at08hs |\n| 12 hs | chart.at12hs |\n| 24 hs | chart.at24hs |", + "updated": 1610214935448 + }, + { + "style": "Anchor", + "text": "Previous Property", + "updated": 1610446045717 + }, + { + "style": "Title", + "text": "Previous Property" + }, + { + "style": "Text", + "text": "The previous property is a property common to all products that allows you to retrieve the value of the candle that closed previous to the last one." + }, + { + "style": "Text", + "text": "The property is used with the following syntax: ", + "updated": 1610215018833 + }, + { + "style": "Javascript", + "text": "chart.at + time frame + .productName + .previous + .propertyName. " + }, + { + "style": "Text", + "text": "You may use the property on any of the indicators in a similar way." + }, + { + "style": "Text", + "text": "In addition, you may use the previous property more than once, to retrieve values further in the past: ", + "updated": 1610215040020 + }, + { + "style": "Javascript", + "text": "chart.at + time frame + .productName + .previous.previous... \n...previous + .propertyName", + "updated": 1610471423898 + }, + { + "style": "Text", + "text": "For example:", + "updated": 1610215089118 + }, + { + "style": "Javascript", + "text": "chart.at01hs.candle.previous.previous.max" + }, + { + "style": "Text", + "text": "The above returns the maximum value of two candles before the last closed candle at the 1-hour chart.", + "updated": 1610215099927 + }, + { + "style": "Title", + "text": "Alternative to the Previous Property" + }, + { + "style": "Text", + "text": "There is a cool alternative to the previous property, that you can use to fetch the value of a property beyond the last closed candle." + }, + { + "style": "Text", + "text": "The syntax is:", + "updated": 1610215130206 + }, + { + "style": "Javascript", + "text": "productName.[currentCandleIndex-n].propertyName" + }, + { + "style": "Text", + "text": "... where currentCandleIndex represents the last closed candle and n may be replaced by any integer number." + }, + { + "style": "Text", + "text": "For example:", + "updated": 1610215164809 + }, + { + "style": "Javascript", + "text": "chart.at01hs.candle.[currentCandleIndex-5].max" + }, + { + "style": "Text", + "text": "... retrieves the maximum value of the fifth candle previous to the last closed candle at the 1-hour chart." + }, + { + "style": "Note", + "text": "There is a technical limitation by which you may retrieve the value of a property up to a maximum of 24 hours in the past, whatever number of periods that may represent, depending on the time frame you may be working on. For instance, if you are working on the 1 hour time frame, you may fetch up to 23 candles before the last one. If you are working on the 1 minute time frame, you may retrieve 1439 candles. If you need to retrieve information further in the past, then you should consider building an indicator that makes the data available to your strategies.", + "updated": 1610215195223 + }, + { + "style": "Title", + "text": "Comparison and Logical Operators" + }, + { + "style": "Text", + "text": "To define conditions you will use statements using the syntax described above. You will use the properties of indicators that will be introduced later on. The data behind those indicators describe what is happening with the market." + }, + { + "style": "Text", + "text": "Remember, conditions need to evaluate either true or false." + }, + { + "style": "Text", + "text": "To create such statements you will use comparison and logical operators:" + }, + { + "style": "Table", + "text": "| Operator | Description |\n| === | equal value and equal type |\n| != | not equal |\n| > | greater than |\n| < | less than |\n| >= | greater than or equal to |\n| <= | less than or equal to |\n| && | and |\n| ∣∣ | or |", + "updated": 1610215345573 + }, + { + "style": "Text", + "text": "For example:", + "updated": 1610215388469 + }, + { + "style": "Subtitle", + "text": "Situation 1" + }, + { + "style": "List", + "text": "Condition A: The latest candle at the 1 hour chart closed above the Bollinger Bands moving average.", + "updated": 1610215456837 + }, + { + "style": "Javascript", + "text": "chart.at01hs.candle.close > chart.at01hs.bollingerBand.MovingAverage" + }, + { + "style": "List", + "text": "Condition B: The maximum value of the candle before the last one, was higher than the Bollinger Bands moving average.", + "updated": 1610215484498 + }, + { + "style": "Javascript", + "text": "chart.at01hs.candle.previous.max > chart.at01hs.bollingerBand.previous.MovingAverage" + }, + { + "style": "Text", + "text": "In the example above, conditions A and B are comparison statements that may evaluate either true or false. In the case both would evaluate true then Situation 1 would be true as well." + }, + { + "style": "Subtitle", + "text": "Situation 2" + }, + { + "style": "List", + "text": "Condition C: The entire candle at the 4 hours chart fits within the price range between 9000 and 10000.", + "updated": 1610215565978 + }, + { + "style": "Javascript", + "text": "chart.at04hs.candle.max <= 10000 && chart.at04hs.candle.min >= 9000" + }, + { + "style": "Text", + "text": "In the example above, condition C would be true if the whole 4-hour candle falls within the range between 9000 and 10000. If this is true, then situation 2 is true as well, as there is only one condition to check." + }, + { + "style": "Title", + "text": "JaveScript Code" + }, + { + "style": "Text", + "text": "You may use any valid piece of JavaScript code for your conditions and formulas. The system imposses no contraints whatsoever. The code on conditions and formulas is run through the eval() function, as follows:", + "updated": 1610215780497 + }, + { + "style": "Javascript", + "text": "try {\n let code = node.code\n value = eval(code);\n addCodeToSnapshot(code)\n}", + "updated": 1610215800115 + }, + { + "style": "Success", + "text": "Remember that all conditions must evaluate to true or false and that formulas must evaluate to a number. If you are having issues with your code, learn how to debug a task.", + "updated": 1610215814504 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/trading-logic-003-accessing-runtime-data.json b/Projects/Superalgos/Schemas/Docs-Topics/trading-logic-003-accessing-runtime-data.json new file mode 100644 index 000000000..3f0c52965 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/trading-logic-003-accessing-runtime-data.json @@ -0,0 +1,74 @@ +{ + "topic": "Trading Logic", + "pageNumber": "3", + "type": "Accessing Runtime Data", + "definition": { + "text": "The Trading Bot makes every piece of information processed available to Trading Systems in the data structure of the Trading Engine hierarchy.", + "updated": 1610216690404 + }, + "paragraphs": [ + { + "style": "Text", + "text": "To access the value of any of the nodes in the Trading Engine from within conditions and formulas, the syntax follows the ramifications of the data structure, exactly as seen in the visual representation of the hierarchy on the Design Space.", + "updated": 1610216724389 + }, + { + "style": "Text", + "text": "For example, let’s say you wish to access the value of the Begin node under Strategy Open Stage. The path to that node, as denoted by the structure of the hierachy below, is:", + "updated": 1610216746961 + }, + { + "style": "Javascript", + "text": "tradingEngine.current.strategyOpenStage.begin.value" + }, + { + "style": "Text", + "text": "If you wish to go one step lower and access the value of the Target Size under the Stage Quoted Asset, then the path is:", + "updated": 1610216775084 + }, + { + "style": "Javascript", + "text": "tradingEngine.current.strategyOpenStage.stageQuotedAsset.targetSize.value" + }, + { + "style": "Note", + "text": "As usual, make sure you follow the JavaScript camel case notation by which the first word is in lower case and the rest in uppercase.", + "updated": 1610216790819 + }, + { + "style": "Title", + "text": "Copy Node Path" + }, + { + "style": "Text", + "text": "For ease of use, you may copy the path of any node that holds a valid value directly from within the node’s menu. Simply use the Copy Node Path button." + }, + { + "style": "Title", + "text": "Formula Example" + }, + { + "style": "Text", + "text": "Let’s say you wish to set a take profit 3% above the initial target rate you defined in the open stage of your strategy." + }, + { + "style": "Text", + "text": "That value is stored in the Entry Target Rate node under the Current Position.", + "updated": 1610216903247 + }, + { + "style": "Text", + "text": "So, the formula for the take profit phase is:" + }, + { + "style": "Javascript", + "text": "tradingEngine.current.position.entryTargetRate.value * 1.03", + "updated": 1610216926922 + }, + { + "style": "Success", + "text": "All of this will become clear when you study the Trading Engine hierarchy!", + "updated": 1610216962576 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/trading-logic-004-accessing-trading-system-definitions-and-session-parameters.json b/Projects/Superalgos/Schemas/Docs-Topics/trading-logic-004-accessing-trading-system-definitions-and-session-parameters.json new file mode 100644 index 000000000..d6557f4d9 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/trading-logic-004-accessing-trading-system-definitions-and-session-parameters.json @@ -0,0 +1,70 @@ +{ + "topic": "Trading Logic", + "pageNumber": "4", + "type": "Accessing Trading System Definitions and Session Parameters", + "definition": { + "text": "The Trading System may access it's own definitions as well as Session Parameters from any Formula or Condition.", + "updated": 1610217064031 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Trading System definitions and Trading Session Parameters are accessible from within conditions and formulas, pretty much like conditions and formulas may access the values of indicators, or the Trading Engine hierarchy.", + "updated": 1610217113377 + }, + { + "style": "Note", + "text": "This is a technical feature mostly oriented to developers. Practical use cases are few for less technically oriented individuals.", + "updated": 1610217120684 + }, + { + "style": "Title", + "text": "Syntax" + }, + { + "style": "Text", + "text": "To access a trading system definition, follow the path given by the trading system structure. For example, to access a condition in the take position event, use:", + "updated": 1610217151294 + }, + { + "style": "Javascript", + "text": "tradingSystem.tradingStrategies[i].triggerStage.takePositionEvent.situations[n].conditions[m].code" + }, + { + "style": "Text", + "text": "To access a trading session parameter, use the syntax starting with sessionParameters followed by the name of the parameter, and the name of the specific parameter in the configuration. For example, to access the taker parameter in the fee structure, use:", + "updated": 1610217182677 + }, + { + "style": "Javascript", + "text": "sessionParameters.feeStructure.config.taker", + "updated": 1610217195909 + }, + { + "style": "Title", + "text": "Example" + }, + { + "style": "Text", + "text": "Such a feature may be useful, for instance, to include such definitions or parameters on Telegram accouncement messages, as in:" + }, + { + "style": "Javascript", + "text": "\"The condition with the following code: \" + \ntradingSystem.tradingStrategies[tradingEngine.current.strategy.index.value].triggerStage.takePositionEvent.situations[0].conditions[0].code +\n\" triggered the take position event.\"", + "updated": 1610217276846 + }, + { + "style": "Text", + "text": "Notice that...", + "updated": 1610217314692 + }, + { + "style": "Javascript", + "text": "[tradingEngine.current.strategy.index.value]" + }, + { + "style": "Text", + "text": "... corresponds to the syntax deriving from the trading engine hierarchy." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-001-trading-system-hierarchy.json b/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-001-trading-system-hierarchy.json new file mode 100644 index 000000000..bb85ae96c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-001-trading-system-hierarchy.json @@ -0,0 +1,20 @@ +{ + "topic": "Trading Systems", + "pageNumber": "1", + "type": "Trading System Hierarchy", + "definition": { + "text": "A Trading System carries the trading logic implemented by the Trading Bot during a trading session.", + "updated": 1610138743003 + }, + "paragraphs": [ + { + "style": "Include", + "text": "Superalgos->Node->Trading System->Definition", + "updated": 1610138679068 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading System->Content" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-002-trading-strategies.json b/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-002-trading-strategies.json new file mode 100644 index 000000000..5fbae1733 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-002-trading-strategies.json @@ -0,0 +1,21 @@ +{ + "topic": "Trading Systems", + "pageNumber": "2", + "type": "Trading Strategies", + "definition": { + "text": "Trading strategies encompass the logic to trigger a strategy among the many that may exist in the Trading System, take a position, manage it, and close a position.", + "updated": 1610199807593 + }, + "paragraphs": [ + { + "style": "Include", + "text": "Superalgos->Node->Trading Strategy->Definition", + "updated": 1610138825934 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trading Strategy->Content", + "updated": 1610138829122 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-003-the-trigger-stage.json b/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-003-the-trigger-stage.json new file mode 100644 index 000000000..107cf14ae --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-003-the-trigger-stage.json @@ -0,0 +1,79 @@ +{ + "topic": "Trading Systems", + "pageNumber": "3", + "type": "The Trigger Stage", + "definition": { + "text": "The trigger stage features the definitions of the Trigger-On Event, Trigger-Off Event, and Take Position Event.", + "updated": 1610139390213 + }, + "paragraphs": [ + { + "style": "Include", + "text": "Superalgos->Node->Trigger Stage->Definition", + "updated": 1610139409395 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trigger Stage->Content", + "updated": 1610139413791 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Note for Hierarchy Tables" + }, + { + "style": "Hierarchy", + "text": "Superalgos->Trigger Stage->2", + "updated": 1610139448080 + }, + { + "style": "Note", + "text": "Announcements is a feature external to Trading Systems and shall be addressed elsewhere.", + "updated": 1610139662103 + }, + { + "style": "Title", + "text": "Trigger On Event" + }, + { + "style": "Include", + "text": "Superalgos->Node->Trigger On Event->Definition", + "updated": 1610139524793 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trigger On Event->Content", + "updated": 1610139534038 + }, + { + "style": "Title", + "text": "Trigger Off Event", + "updated": 1610139540955 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trigger Off Event->Definition", + "updated": 1610139544555 + }, + { + "style": "Include", + "text": "Superalgos->Node->Trigger Off Event->Content", + "updated": 1610139548323 + }, + { + "style": "Title", + "text": "Take Position Event", + "updated": 1610139565779 + }, + { + "style": "Include", + "text": "Superalgos->Node->Take Position Event->Definition", + "updated": 1610139569040 + }, + { + "style": "Include", + "text": "Superalgos->Node->Take Position Event->Content", + "updated": 1610139572696 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-004-open-stage-initial-targets.json b/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-004-open-stage-initial-targets.json new file mode 100644 index 000000000..f22d7064a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-004-open-stage-initial-targets.json @@ -0,0 +1,104 @@ +{ + "topic": "Trading Systems", + "pageNumber": "4", + "type": "Open Stage Initial Targets", + "definition": { + "text": "The initial targets section features the first few definitions required to open a position: the definition of target rate and the target size.", + "updated": 1610185761943 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Open Stage", + "updated": 1610185795249 + }, + { + "style": "Include", + "text": "Superalgos->Node->Open Stage->Definition", + "updated": 1610185816513 + }, + { + "style": "Include", + "text": "Superalgos->Node->Open Stage->Content", + "updated": 1610185811108 + }, + { + "style": "Hierarchy", + "text": "Superalgos->Open Stage->2", + "updated": 1610185891458 + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Callout", + "text": "In this page, we will cover the Initial Targets definitions.", + "updated": 1610185946482 + }, + { + "style": "Title", + "text": "Initial Targets", + "updated": 1610185978859 + }, + { + "style": "Include", + "text": "Superalgos->Node->Initial Targets->Definition", + "updated": 1610185989025 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Note for Hierarchy Tables" + }, + { + "style": "Hierarchy", + "text": "Superalgos->Initial Targets->2", + "updated": 1610186094999 + }, + { + "style": "Title", + "text": "Target Rate", + "updated": 1610186138633 + }, + { + "style": "Include", + "text": "Superalgos->Node->Target Rate->Definition", + "updated": 1610186142640 + }, + { + "style": "Include", + "text": "Superalgos->Node->Target Rate->Content", + "updated": 1610186146771 + }, + { + "style": "Title", + "text": "Target Size In Base Asset", + "updated": 1610186357107 + }, + { + "style": "Include", + "text": "Superalgos->Node->Target Size In Base Asset->Definition", + "updated": 1610186350579 + }, + { + "style": "Include", + "text": "Superalgos->Node->Target Size In Base Asset->Content", + "updated": 1610186365816 + }, + { + "style": "Title", + "text": "Target Size In Quoted Asset", + "updated": 1610186383350 + }, + { + "style": "Include", + "text": "Superalgos->Node->Target Size In Quoted Asset->Definition", + "updated": 1610186394276 + }, + { + "style": "Include", + "text": "Superalgos->Node->Target Size In Quoted Asset->Content", + "updated": 1610186405759 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-005-open-stage-execution.json b/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-005-open-stage-execution.json new file mode 100644 index 000000000..13a3e0a08 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-005-open-stage-execution.json @@ -0,0 +1,118 @@ +{ + "topic": "Trading Systems", + "pageNumber": "5", + "type": "Open Stage Execution", + "definition": { + "text": "This section of the Open Stage handles the logic and orders used to enter a Position.", + "updated": 1610187656657 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Open Execution", + "updated": 1610187698287 + }, + { + "style": "Include", + "text": "Superalgos->Node->Open Execution->Definition", + "updated": 1610187702278 + }, + { + "style": "Include", + "text": "Superalgos->Node->Open Execution->Content", + "updated": 1610187706054 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Note for Hierarchy Tables" + }, + { + "style": "Hierarchy", + "text": "Superalgos->Open Execution->3", + "updated": 1610187711323 + }, + { + "style": "Anchor", + "text": "Execution Algorithm", + "updated": 1610187940008 + }, + { + "style": "Title", + "text": "Execution Algorithm" + }, + { + "style": "Include", + "text": "Superalgos->Node->Execution Algorithm->Definition", + "updated": 1610187949950 + }, + { + "style": "Include", + "text": "Superalgos->Node->Execution Algorithm->Content", + "updated": 1610187955512 + }, + { + "style": "Title", + "text": "Market Buy Order", + "updated": 1610187970840 + }, + { + "style": "Include", + "text": "Superalgos->Node->Market Buy Order->Definition", + "updated": 1610187974574 + }, + { + "style": "Include", + "text": "Superalgos->Node->Market Buy Order->Content", + "updated": 1610187977959 + }, + { + "style": "Title", + "text": "Market Sell Order", + "updated": 1610187985806 + }, + { + "style": "Include", + "text": "Superalgos->Node->Market Sell Order->Definition", + "updated": 1610187989119 + }, + { + "style": "Include", + "text": "Superalgos->Node->Market Sell Order->Content", + "updated": 1610187993001 + }, + { + "style": "Title", + "text": "Limit Buy Order", + "updated": 1610188013160 + }, + { + "style": "Include", + "text": "Superalgos->Node->Limit Buy Order->Definition", + "updated": 1610188017480 + }, + { + "style": "Include", + "text": "Superalgos->Node->Limit Buy Order->Content", + "updated": 1610188020558 + }, + { + "style": "Title", + "text": "Limit Sell Order", + "updated": 1610188029692 + }, + { + "style": "Include", + "text": "Superalgos->Node->Limit Sell Order->Definition", + "updated": 1610188033186 + }, + { + "style": "Include", + "text": "Superalgos->Node->Limit Sell Order->Content", + "updated": 1610188036350 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-006-order-definitions.json b/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-006-order-definitions.json new file mode 100644 index 000000000..01ee3f737 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-006-order-definitions.json @@ -0,0 +1,126 @@ +{ + "topic": "Trading Systems", + "pageNumber": "6", + "type": "Order Definitions", + "definition": { + "text": "All types of orders have similar definitions. The one difference between market and limit orders is that market orders do no hace an Order Rate definition.", + "updated": 1610197366077 + }, + "paragraphs": [ + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Note for Hierarchy Tables", + "updated": 1610196847887 + }, + { + "style": "Hierarchy", + "text": "Superalgos->Limit Buy Order->2", + "updated": 1610197390955 + }, + { + "style": "Title", + "text": "Order Rate", + "updated": 1610197404420 + }, + { + "style": "Include", + "text": "Superalgos->Node->Order Rate->Definition", + "updated": 1610197408556 + }, + { + "style": "Include", + "text": "Superalgos->Node->Order Rate->Content", + "updated": 1610197412802 + }, + { + "style": "Title", + "text": "Create Order Event", + "updated": 1610197420979 + }, + { + "style": "Include", + "text": "Superalgos->Node->Create Order Event->Definition", + "updated": 1610197428592 + }, + { + "style": "Include", + "text": "Superalgos->Node->Create Order Event->Content", + "updated": 1610197431668 + }, + { + "style": "Title", + "text": "Cancel Order Event", + "updated": 1610197449295 + }, + { + "style": "Include", + "text": "Superalgos->Node->Cancel Order Event->Definition", + "updated": 1610197456707 + }, + { + "style": "Include", + "text": "Superalgos->Node->Cancel Order Event->Content", + "updated": 1610197460196 + }, + { + "style": "Title", + "text": "Simulated Exchange Events", + "updated": 1610197475143 + }, + { + "style": "Include", + "text": "Superalgos->Node->Simulated Exchange Events->Definition", + "updated": 1610197481087 + }, + { + "style": "Include", + "text": "Superalgos->Node->Simulated Exchange Events->Content", + "updated": 1610197485556 + }, + { + "style": "Subtitle", + "text": "Simulated Partial Fill", + "updated": 1610197512649 + }, + { + "style": "Include", + "text": "Superalgos->Node->Simulated Partial Fill->Definition", + "updated": 1610197521350 + }, + { + "style": "Include", + "text": "Superalgos->Node->Simulated Partial Fill->Content", + "updated": 1610197525227 + }, + { + "style": "Subtitle", + "text": "Simulated Actual Rate", + "updated": 1610197534951 + }, + { + "style": "Include", + "text": "Superalgos->Node->Simulated Actual Rate->Definition", + "updated": 1610197538992 + }, + { + "style": "Include", + "text": "Superalgos->Node->Simulated Actual Rate->Content", + "updated": 1610197541958 + }, + { + "style": "Subtitle", + "text": "Simulated Fees Paid", + "updated": 1610197551998 + }, + { + "style": "Include", + "text": "Superalgos->Node->Simulated Fees Paid->Definition", + "updated": 1610197559999 + }, + { + "style": "Include", + "text": "Superalgos->Node->Simulated Fees Paid->Content", + "updated": 1610197563054 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-007-the-manage-stage.json b/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-007-the-manage-stage.json new file mode 100644 index 000000000..3de16be44 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-007-the-manage-stage.json @@ -0,0 +1,64 @@ +{ + "topic": "Trading Systems", + "pageNumber": "7", + "type": "The Manage Stage", + "definition": { + "text": "The Manage Stage is where you define how positions are managed, from the moment the decision to take the position is made, until the moment the decision to exit the position is made.", + "updated": 1610199688355 + }, + "paragraphs": [ + { + "style": "Include", + "text": "Superalgos->Node->Manage Stage->Definition", + "updated": 1610198924545 + }, + { + "style": "Include", + "text": "Superalgos->Node->Manage Stage->Content", + "updated": 1610198927824 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Note for Hierarchy Tables" + }, + { + "style": "Hierarchy", + "text": "Superalgos->Manage Stage->2", + "updated": 1610199384375 + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Title", + "text": "Managed Stop Loss", + "updated": 1610199422482 + }, + { + "style": "Include", + "text": "Superalgos->Node->Managed Stop Loss->Definition", + "updated": 1610199431689 + }, + { + "style": "Include", + "text": "Superalgos->Node->Managed Stop Loss->Content", + "updated": 1610199434764 + }, + { + "style": "Title", + "text": "Managed Take Profit", + "updated": 1610199457335 + }, + { + "style": "Include", + "text": "Superalgos->Node->Managed Take Profit->Definition", + "updated": 1610199483083 + }, + { + "style": "Include", + "text": "Superalgos->Node->Managed Take Profit->Content", + "updated": 1610199486279 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-008-position-management-phases.json b/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-008-position-management-phases.json new file mode 100644 index 000000000..f93c9660f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-008-position-management-phases.json @@ -0,0 +1,64 @@ +{ + "topic": "Trading Systems", + "pageNumber": "8", + "type": "Position Management Phases", + "definition": { + "text": "You may manage a position using dynammic stop loss and take profit targets. Targets are dynamic in the sense that they are defined by formulas, which may change depending on defined market situations.", + "updated": 1610207512419 + }, + "paragraphs": [ + { + "style": "Include", + "text": "Superalgos->Node->Phase->Definition" + }, + { + "style": "Include", + "text": "Superalgos->Node->Phase->Content", + "updated": 1610205689779 + }, + { + "style": "Include", + "text": "Superalgos->Concept->Reusable Snippets->Note for Hierarchy Tables" + }, + { + "style": "Hierarchy", + "text": "Superalgos->Phase->2", + "updated": 1610205876120 + }, + { + "style": "Callout", + "text": "We will discuss formulas later on, together with situations and conditions.", + "updated": 1610206194016 + }, + { + "style": "Title", + "text": "Next Phase Event", + "updated": 1610206213863 + }, + { + "style": "Include", + "text": "Superalgos->Node->Next Phase Event->Definition", + "updated": 1610206224515 + }, + { + "style": "Include", + "text": "Superalgos->Node->Next Phase Event->Content", + "updated": 1610206227962 + }, + { + "style": "Title", + "text": "Move To Phase Event", + "updated": 1610206257700 + }, + { + "style": "Include", + "text": "Superalgos->Node->Move To Phase Event->Definition", + "updated": 1610206283751 + }, + { + "style": "Include", + "text": "Superalgos->Node->Move To Phase Event->Content", + "updated": 1610206292181 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-009-the-close-stage.json b/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-009-the-close-stage.json new file mode 100644 index 000000000..e27b9ad3a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/trading-systems-009-the-close-stage.json @@ -0,0 +1,31 @@ +{ + "topic": "Trading Systems", + "pageNumber": "9", + "type": "The Close Stage", + "definition": { + "text": "The close stage is a mirror of the open stage, with definitions concerning the closing of the position, including the close execution.", + "updated": 1610206979676 + }, + "paragraphs": [ + { + "style": "Include", + "text": "Superalgos->Node->Close Stage->Definition", + "updated": 1610207033911 + }, + { + "style": "Include", + "text": "Superalgos->Node->Close Stage->Content", + "updated": 1610207037298 + }, + { + "style": "Hierarchy", + "text": "Superalgos->Close Stage->2", + "updated": 1610207264945 + }, + { + "style": "Success", + "text": "If the data structure depicted in the table above looks familiar, it is because it is a mirror of the Open Stage. Refer to those definitions in case you need a refresher.", + "updated": 1610207351033 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-001-tutorial-defining-a-trading-idea.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-001-tutorial-defining-a-trading-idea.json new file mode 100644 index 000000000..9eeda9d2f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-001-tutorial-defining-a-trading-idea.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 1, + "type": "Tutorial - Defining a Trading Idea", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-strategy" + }, + "text": "Before you may build a Trading Strategy, you first need to come up with a clear and testable trading idea." + }, + "paragraphs": [ + { + "style": "Text", + "text": "A trading idea is a precursor to a trading strategy. While a complete strategy entails the rules for taking, managing and exiting a position, a trading idea is concerned with the first of those issues only." + }, + { + "style": "Callout", + "text": "Testing a trading idea before committing to building a complete strategy is the logical approach because managing and exiting failed entries is not what you should be aiming for!" + }, + { + "style": "Text", + "text": "This tutorial explains how to properly formulate a trading idea that may later be tested." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-002-tutorial-step-before-we-start..json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-002-tutorial-step-before-we-start..json new file mode 100644 index 000000000..d9257a7c3 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-002-tutorial-step-before-we-start..json @@ -0,0 +1,22 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 2, + "type": "Tutorial Step - Before we start...", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-warning" + }, + "text": "Let me give you the heads up on a few matters you should consider before we start!" + }, + "paragraphs": [ + { + "style": "List", + "text": "Take any trading-related information for what it's worth! When I share trading concepts, take them with a grain of salt! I'm just a tutorial, not your financial advisor! I'm here to teach you Superalgos, not to tell you how to trade! If you are not a trader, you may pick up something of value, but always make sure you do your own research!" + }, + { + "style": "List", + "text": "This tutorial is aimed at a wide audience! I'll take it easy and lay out concepts so that everyone may understand them. If you are a seasoned trader you may feel some explanations are too basic. In that case, feel free to skip this tutorial and go to the next one in the series." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-003-tutorial-step-ready-to-mine.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-003-tutorial-step-ready-to-mine.json new file mode 100644 index 000000000..97ba9a768 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-003-tutorial-step-ready-to-mine.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 3, + "type": "Tutorial Step - Ready to Mine..?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "data-tasks" + }, + "text": "We'll mine some data to analyze a few events over the charts. We'll use the same data to test the trading idea in the next tutorial!" + }, + "paragraphs": [ + { + "style": "Note", + "text": "The sensor bot will run on the BTC/USDT market (Binance) from January 1st, 2020, along with the following indicators from the Masters data mine: Candles Volumes, Bollinger Bands, and Bollinger Channels." + }, + { + "style": "Warning", + "text": "If you have data on this market/exchange but on a different time range, this may affect your data! Read the sensor bot documentation to learn how! If the data you have is not important, feel free to keep going!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-004-tutorial-step-lets-mine-some-data.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-004-tutorial-step-lets-mine-some-data.json new file mode 100644 index 000000000..ffa330309 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-004-tutorial-step-lets-mine-some-data.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 4, + "type": "Tutorial Step - Let's Mine Some Data..!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "run" + }, + "text": "Now that you understand the implications of running this data mining operation, let's get on with it!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Select Run All Project Data Tasks on the Data Tasks node menu!" + }, + { + "style": "Note", + "text": "If you are doing this tutorial after doing other tutorials, chances are you may already have part of the data required, which may make things faster! Either way, no need to wait for the data mining to get to the present time... you may keep going with the tutorial!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-005-tutorial-step-why-test-trading-ideas.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-005-tutorial-step-why-test-trading-ideas.json new file mode 100644 index 000000000..5c54932d5 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-005-tutorial-step-why-test-trading-ideas.json @@ -0,0 +1,42 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 5, + "type": "Tutorial Step - Why Test Trading Ideas..?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "help" + }, + "text": "Setting up, testing, and deploying a trading strategy requires time and effort. We test trading ideas to avoid wasting resources." + }, + "paragraphs": [ + { + "style": "Text", + "text": "To test a trading idea, we need to formalize it into a hypothesis that:" + }, + { + "style": "List", + "text": "proposes a trading process, " + }, + { + "style": "List", + "text": "selects the appropriate context; " + }, + { + "style": "List", + "text": "defines the main entry rules; " + }, + { + "style": "List", + "text": "predicts a specific outcome; " + }, + { + "style": "List", + "text": "offers a specific testing mechanism. " + }, + { + "style": "Callout", + "text": "Let's expand on each of these topics so that we can set clear goals for defining a trading idea." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-006-tutorial-step-the-trading-process.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-006-tutorial-step-the-trading-process.json new file mode 100644 index 000000000..e28f80db5 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-006-tutorial-step-the-trading-process.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 6, + "type": "Tutorial Step - The Trading Process", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-system" + }, + "text": "The first dimension we should define is what type of strategy the hypothesis is aimed at." + }, + "paragraphs": [ + { + "style": "Text", + "text": "A simple rule-of-thumb is determining if it is a scalping, day-trading, swing trading, or position trading strategy." + }, + { + "style": "Callout", + "text": "This definition provides a notion of the expected holding period, that is, the average time range expected for each position to be open." + }, + { + "style": "Text", + "text": "The value of such a definition is that it provides a guideline as to what time frames to analyze to determine the existence of trends." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-007-tutorial-step-the-appropriate-context.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-007-tutorial-step-the-appropriate-context.json new file mode 100644 index 000000000..51d53bf51 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-007-tutorial-step-the-appropriate-context.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 7, + "type": "Tutorial Step - The Appropriate Context", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-trends" + }, + "text": "The second important dimension to define is the general context that the hypothesis is aimed at." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Few—if any—technical analysis-based strategies perform consistently on undefined market situations." + }, + { + "style": "Callout", + "text": "The minimum required definition is as to whether the hypothesis targets downtrends, uptrends, or sideways markets." + }, + { + "style": "Text", + "text": "The usual resource is a multi-time frame analysis based on one or more indicators that determine what the existing trend is at different time frames, and any other factors that may be of importance to the specific strategy, for example, volume or volatility." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-008-tutorial-step-the-entry-rules.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-008-tutorial-step-the-entry-rules.json new file mode 100644 index 000000000..c65175d0b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-008-tutorial-step-the-entry-rules.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 8, + "type": "Tutorial Step - The Entry Rules", + "definition": { + "icon": { + "project": "Superalgos", + "name": "take-position-event" + }, + "text": "The third aspect to be defined are the rules for triggering the strategy and taking a position." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Many times, the rules to trigger the strategy derive from the analysis of the context. For example, you wish the strategy to be active when a specific trend is detected by some specific method." + }, + { + "style": "Callout", + "text": "The rules to take a position are usually referred to as the signal and the signal confirmation." + }, + { + "style": "Text", + "text": "Those rules are the description of the specific event that determines when to enter a position. For example, the crossover of two specific lines, or a certain value on a specific indicator." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-009-tutorial-step-the-prediction.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-009-tutorial-step-the-prediction.json new file mode 100644 index 000000000..9ade98a10 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-009-tutorial-step-the-prediction.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 9, + "type": "Tutorial Step - The Prediction", + "definition": { + "icon": { + "project": "Superalgos", + "name": "hit-ratio" + }, + "text": "The fourth aspect to consider is what we expect from this idea, and this is highly dependent on the type of strategy." + }, + "paragraphs": [ + { + "style": "Text", + "text": "For example, for a swing strategy, taking a position twice per month with a 50% hit ratio may be acceptable, but not for a scalping strategy." + }, + { + "style": "Callout", + "text": "Defining what we expect from the strategy in terms of trading frequency and hit ratio helps to determine if the strategy is worth pursuing or not." + }, + { + "style": "Text", + "text": "If the tests show that the idea doesn't produce as many trades or as many good entries as is desirable, you may want to come up with a new idea." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-010-tutorial-step-the-testing-mechanism.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-010-tutorial-step-the-testing-mechanism.json new file mode 100644 index 000000000..09b3f8c6a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-010-tutorial-step-the-testing-mechanism.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 10, + "type": "Tutorial Step - The Testing Mechanism", + "definition": { + "icon": { + "project": "Superalgos", + "name": "backtesting-session" + }, + "text": "The final concern is defining how the idea is to be tested. This too is dependent on the type of strategy!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "The focus of the trading idea is the entry point, not the management of the trade or the exit. However..." + }, + { + "style": "Callout", + "text": "How do we measure if the entry points are good or bad? What period do we use for testing?" + }, + { + "style": "Text", + "text": "The first question leads us to acknowledge that we may need to define some arbitrary stop loss and take profit targets so that we can determine if the resulting entry points are likely to be hits or fails. We will deal with the second question in the next tutorial." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-011-tutorial-step-lets-go-on-a-field-trip.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-011-tutorial-step-lets-go-on-a-field-trip.json new file mode 100644 index 000000000..6368ef2e4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-011-tutorial-step-lets-go-on-a-field-trip.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 11, + "type": "Tutorial Step - Let's Go On a Field Trip!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "tutorial" + }, + "text": "The rest of this tutorial is about putting into practice what we just discussed!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "We'll take a deep dive into the charts, learn a thing or two about a specific indicator, and try to come up with a proper trading idea that we can test in the next tutorial!" + }, + { + "style": "Important", + "text": "Buckle up! I foresee a few sharp turns ahead!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-012-tutorial-step-are-we-up-to-date.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-012-tutorial-step-are-we-up-to-date.json new file mode 100644 index 000000000..565577522 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-012-tutorial-step-are-we-up-to-date.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 12, + "type": "Tutorial Step - Are We Up to Date..?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "indicator-process-instance" + }, + "text": "By now, all processes should be at 100%. We need the data to be ready so that we can go and do some work on the charts!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Look around and see if all processes are at 100%. If all of them are, then stop the data mining!" + }, + { + "style": "Note", + "text": "Wait until all processes reach the 100% mark before continuing!" + }, + { + "style": "Success", + "text": "In the next step we are going to the charts to check the Bollinger Bands so that we can discuss the trading idea we will test!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-013-tutorial-step-bb-on-the-charts.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-013-tutorial-step-bb-on-the-charts.json new file mode 100644 index 000000000..34221251d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-013-tutorial-step-bb-on-the-charts.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 13, + "type": "Tutorial Step - BB On the Charts!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-bands" + }, + "text": "Let's take a look at the Bollinger Bands! If it's not on already, find the Bollinger Bands layer in the Masters layer manager." + }, + "paragraphs": [ + { + "style": "Text", + "text": "The indicator features a 20-period moving average in the center. It features a line on top located two standard deviations above the moving average. We call this line the upper band. And it also features a line two standard deviations below the moving average. We call this one the lower band. Together, they are the Bollinger Bands." + }, + { + "style": "Note", + "text": "Notice how the price ranges sideways bouncing off the upper and the lower bands. Sometimes it may go out of the boundaries of the bands, either higher or lower, but most of the time it stays within the range of the bands." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-014-tutorial-step-bollinger-bands-rules.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-014-tutorial-step-bollinger-bands-rules.json new file mode 100644 index 000000000..0d079211f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-014-tutorial-step-bollinger-bands-rules.json @@ -0,0 +1,32 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 14, + "type": "Tutorial Step - Bollinger Bands Rules", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-bands" + }, + "text": "Now that you've seen the bands on the charts, let's go through the rules that teach us how to interpret and use them!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "If you are not familiar with this indicator, it's definitely worth spending a few minutes reading these rules,", + "updated": 1610467009560 + }, + { + "style": "Link", + "text": "as defined by John Bollinger himself!->https://www.bollingerbands.com/bollinger-band-rules", + "updated": 1610452258290 + }, + { + "style": "Callout", + "text": "Please, read what John Bollinger has to say about how to interpret this popular indicator!" + }, + { + "style": "Note", + "text": "Rules 6 to 8 are of particular significance to what we will be attempting later on!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-015-tutorial-step-can-you-think-of-any-ideas.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-015-tutorial-step-can-you-think-of-any-ideas.json new file mode 100644 index 000000000..e10c5d331 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-015-tutorial-step-can-you-think-of-any-ideas.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 15, + "type": "Tutorial Step - Can You Think of Any Ideas?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "help" + }, + "text": "You've seen the Bollinger Bands and you know how to read them... Can you think of a trading idea to build a strategy with?" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Take a few minutes roaming around this chart and see if you can come up with something!" + }, + { + "style": "Note", + "text": "Indicators are usually built by analysts and traders to mathematically describe trading ideas." + }, + { + "style": "Success", + "text": "The idea we will discuss next has to do with breakouts! But that is just one of the four or five popular ideas using this indicator!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-016-tutorial-step-breakdown-of-the-bbs.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-016-tutorial-step-breakdown-of-the-bbs.json new file mode 100644 index 000000000..6620263c5 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-016-tutorial-step-breakdown-of-the-bbs.json @@ -0,0 +1,34 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 16, + "type": "Tutorial Step - Breakdown of the BBs", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-candles" + }, + "text": "Weak-hands Buster is based on the idea that a breakdown of the BB may predict a deepening of a downtrend and some reversals." + }, + "paragraphs": [ + { + "style": "Text", + "text": "I just brought you to April 10th, 2020 to check a case of a breakdown of the bands. See what happens at the following candles:" + }, + { + "style": "List", + "text": "04 hs: A candle closes below the lower band at 7.176 USDT." + }, + { + "style": "List", + "text": "05 hs: A second candle closes below the band at 7.140 USDT." + }, + { + "style": "List", + "text": "06 hs: A more serious drop follows, accentuating the price action seen earlier." + }, + { + "style": "List", + "text": "16 hs: Ten hours after the first breakdown, the lowest hourly close of the day marks 6.766 USDT, more than 6% below." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-017-tutorial-step-what-else-is-going-on.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-017-tutorial-step-what-else-is-going-on.json new file mode 100644 index 000000000..727099b7c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-017-tutorial-step-what-else-is-going-on.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 17, + "type": "Tutorial Step - What Else is Going On?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-candles" + }, + "text": "We just took note of what happened after this breakdown of the bands on the 1H chart... What else is going on with the market?" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Take a look at the price action a few candles earlier!" + }, + { + "style": "Note", + "text": "There were two breakdowns previous to the one we checked, one on April 9th at 12 hs, and before that, another one on April 7th at 21 hs. Both breakdowns were significant, in the sense that the candles closed way lower than the lower band. However, in both cases price bounced back into the bands." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-018-tutorial-step-lets-zoom-out.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-018-tutorial-step-lets-zoom-out.json new file mode 100644 index 000000000..4ed9daa27 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-018-tutorial-step-lets-zoom-out.json @@ -0,0 +1,34 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 18, + "type": "Tutorial Step - Let's Zoom Out!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "time-frame" + }, + "text": "We've got an idea of what's going on in the 1H time frame. Let's zoom out a bit and take a look at the intermediate-term." + }, + "paragraphs": [ + { + "style": "Text", + "text": "I just brought you to the 4H chart, on the same dates. Notice the following:" + }, + { + "style": "List", + "text": "Breakdown: The breakdown we saw in the 1H chart is evident in the 4H chart too." + }, + { + "style": "List", + "text": "Immediate past: Before the breakdown on April 10th, the market had been ranging for a while." + }, + { + "style": "List", + "text": "Before that: The market was trending upwards—that is, the intermediate-term was in an uptrend." + }, + { + "style": "List", + "text": "Downtrend: The breakdown on April 10th marked the start of a downtrend in the intermediate-term." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-019-tutorial-step-the-big-picture.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-019-tutorial-step-the-big-picture.json new file mode 100644 index 000000000..a444261cd --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-019-tutorial-step-the-big-picture.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 19, + "type": "Tutorial Step - The Big Picture!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "time-frame" + }, + "text": "The 4H chart showed a clear shift in the trend after the breakdown, but... what about the long-term? Let's check the daily chart!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Find the April 10th candle and take a minute to think of what it meant—in the big picture—what we just analyzed in the lower time frames. This is what I see:" + }, + { + "style": "List", + "text": "The walk: The ranging period we saw from the 7th until the 10th of April was in fact a little walk on the daily upper band. By the BB rules, this means that price is relatively high in this time frame." + }, + { + "style": "List", + "text": "Pullback: The breakdown in the lower time frames marked the pullback from the daily upper band." + }, + { + "style": "List", + "text": "Continuation: The price action in the larger time frame ended up being a normal pullback and continuation, barely crossing the moving average." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-020-tutorial-step-what-do-we-make-of-this.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-020-tutorial-step-what-do-we-make-of-this.json new file mode 100644 index 000000000..6d5ad2aa9 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-020-tutorial-step-what-do-we-make-of-this.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 20, + "type": "Tutorial Step - What Do We Make of This?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "help" + }, + "text": "We can't arrive at universal conclusions by analyzing a single case, but we can propose a hypothesis to test!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "At this point, a reasonable hypothesis would be:" + }, + { + "style": "Callout", + "text": "In the context of an uptrend in the daily chart, a breakdown of the Bollinger Bands in the 1H chart may predict a reversal in the intermediate trend." + }, + { + "style": "Note", + "text": "Let's save this hypothesis for later and look into one other case!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-021-tutorial-step-look-to-your-left.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-021-tutorial-step-look-to-your-left.json new file mode 100644 index 000000000..7d2176ad9 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-021-tutorial-step-look-to-your-left.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 21, + "type": "Tutorial Step - Look to Your Left!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-candles" + }, + "text": "Does the price action to your left ring a bell? Do you recognize this major market crash?" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "You're looking at the March 12-13th, 2020 ~50% pandemic market crash! Spend a few minutes analyzing the daily chart!" + }, + { + "style": "Text", + "text": "In short, we can see that the market was in a downtrend since February 25th—if we take the turning south of the moving average and the breakdown of the bands as an indication of the beginning of the trend." + }, + { + "style": "Success", + "text": "Take a look at the lower time frames too!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-022-tutorial-step-wouldnt-it-be-nice.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-022-tutorial-step-wouldnt-it-be-nice.json new file mode 100644 index 000000000..b1370bff2 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-022-tutorial-step-wouldnt-it-be-nice.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 22, + "type": "Tutorial Step - Wouldn't It Be Nice?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-candles" + }, + "text": "How cool would it be to be able to predict the continuation of a downturn once the trend is already established?" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Predicting the reversal of a well-established trend is a very tricky task. The analysis we just did for April 10th is a good example: while the breakdown in the 1H and 4H time frames marked a trend reversal in the intermediate-term, the long-term trend remained intact." + }, + { + "style": "Callout", + "text": "A safer approach to trading is predicting the continuation of a trend that is already established!

Remember Rule 8? Closes outside the Bollinger Bands are initially continuation signals!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-023-tutorial-step-march-7th-to-march-12th.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-023-tutorial-step-march-7th-to-march-12th.json new file mode 100644 index 000000000..cc58617a7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-023-tutorial-step-march-7th-to-march-12th.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 23, + "type": "Tutorial Step - March 7th to March 12th", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-bands" + }, + "text": "Back in the 1H time frame, let's take a look at what happened between these dates in the context of a daily downtrend." + }, + "paragraphs": [ + { + "style": "List", + "text": "March 7th, 17 hs: A breakdown after a two-day-long volatility squeeze triggers a downtrend." + }, + { + "style": "List", + "text": "March 8th, 15 hs: Further breakdowns accelerate the downturn." + }, + { + "style": "List", + "text": "March 12th, 07 hs: Five hours before the biggest market crash in recent history, a series of breakdowns trigger a new downturn after three days of ranging price action." + }, + { + "style": "Callout", + "text": "Do you see the pattern? Can you formulate a hypothesis that we can test?" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-024-tutorial-step-weve-got-two-hypotheses.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-024-tutorial-step-weve-got-two-hypotheses.json new file mode 100644 index 000000000..040793b6a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-024-tutorial-step-weve-got-two-hypotheses.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 24, + "type": "Tutorial Step - We've got Two Hypotheses!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "nodes-highlights" + }, + "text": "Let's recover our previous hypothesis and come up with a new one for the most recent observations!" + }, + "paragraphs": [ + { + "style": "List", + "text": "Hypothesis 1: In the context of an uptrend in the daily chart, a breakdown of the Bollinger Bands in the 1H chart may predict a reversal in the intermediate trend." + }, + { + "style": "List", + "text": "Hypothesis 2: In the context of a downtrend in the daily chart, a breakdown of the Bollinger Bands in the 1H chart may predict an acceleration of the downtrend." + }, + { + "style": "Callout", + "text": "We may think of these two as the core of two different trading ideas! But that is not all, right?" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-025-tutorial-step-what-is-missing.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-025-tutorial-step-what-is-missing.json new file mode 100644 index 000000000..1726fe959 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-025-tutorial-step-what-is-missing.json @@ -0,0 +1,42 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 25, + "type": "Tutorial Step - What Is Missing?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "help" + }, + "text": "What we've got is a vague definition of the context and the entry point rules! We still need to formalize our hypothesis!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Remember, our trading idea should:" + }, + { + "style": "List", + "text": "propose a trading process, " + }, + { + "style": "List", + "text": "select the appropriate context; " + }, + { + "style": "List", + "text": "define the main entry rules; " + }, + { + "style": "List", + "text": "predict a specific outcome; " + }, + { + "style": "List", + "text": "offer a specific testing mechanism! " + }, + { + "style": "Callout", + "text": "Let's proceed with fulfilling those requirements!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-026-tutorial-step-lets-define-the-first-two.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-026-tutorial-step-lets-define-the-first-two.json new file mode 100644 index 000000000..c009c4bcb --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-026-tutorial-step-lets-define-the-first-two.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 26, + "type": "Tutorial Step - Let's Define the First Two!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-trends" + }, + "text": "Let's advance with the definition of the trading process and the context in which these ideas should operate." + }, + "paragraphs": [ + { + "style": "List", + "text": "Trading process: Since we rely on trends in the 24H charts, this will be a swing strategy, with positions open—potentially—for several days." + }, + { + "style": "List", + "text": "Context: The first hypothesis is for uptrends in the 24H chart. The second, for downtrends and likely for ranging markets as well. We will leave the definition as of how the trends are to be determined for later on, once you become familiar with the tools available in Superalgos." + }, + { + "style": "Note", + "text": "The goal of the idea is to accumulate bitcoin selling BTC to rebuy at a cheaper price." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-027-tutorial-step-entry-rules.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-027-tutorial-step-entry-rules.json new file mode 100644 index 000000000..2fd97c967 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-027-tutorial-step-entry-rules.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 27, + "type": "Tutorial Step - Entry Rules", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trigger-on-event" + }, + "text": "The main entry rules were the focus of the analysis we did on the charts, but let's add a couple more considerations." + }, + "paragraphs": [ + { + "style": "Text", + "text": "We found that a breakdown in the 1H chart may predict an intermediate-term reversal when on a daily uptrend, and—when on a daily downtrend—an acceleration of the downturn. However, we also noticed several breakdowns that didn't produce either. This means that we should take a breakdown as a signal, not as a confirmation in and of itself." + }, + { + "style": "Callout", + "text": "Our confirmation is a second consecutive breakdown in the 1H chart!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-028-tutorial-step-predictions-and-testing.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-028-tutorial-step-predictions-and-testing.json new file mode 100644 index 000000000..ff9bcabd5 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-028-tutorial-step-predictions-and-testing.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 28, + "type": "Tutorial Step - Predictions and Testing", + "definition": { + "icon": { + "project": "Superalgos", + "name": "user-defined-statistic" + }, + "text": "It's not like we're trying to divine the future and will get graded on our accuracy! The prediction is more like an expectation!" + }, + "paragraphs": [ + { + "style": "List", + "text": "Prediction: We expect either of these ideas to trade at least twice per month, with a 50% hit ratio." + }, + { + "style": "List", + "text": "Testing: For uptrends, we will set these targets: stop loss at 3% and take profit at 5%. For downtrends we should be more optimistic as the strategy aims to capture big market moves: we will set a 3% stop loss and 10% take profit targets." + }, + { + "style": "Note", + "text": "Remember! This doesn't mean that is how we would manage the positions! It's just to evaluate the entry points!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-029-tutorial-step-et-voilà.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-029-tutorial-step-et-voilà.json new file mode 100644 index 000000000..1b7071f94 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-029-tutorial-step-et-voilà.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 29, + "type": "Tutorial Step - Et Voilà..!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "nodes-highlights" + }, + "text": "That's it! We finally have a proper hypothesis that we can test to decide if the idea is worth pursuing or not!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "We'll take it from there in the next tutorial!" + }, + { + "style": "Note", + "text": "In the next tutorial in the series, we will dive into how Superalgos guides you through the process of setting up the trading idea to be tested on historical data. We'll learn about the syntax to write conditions and formulas, about how to use indicators from within strategies, and whatever else we may need along the way!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-030-tutorial-step-ready-for-the-next-one.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-030-tutorial-step-ready-for-the-next-one.json new file mode 100644 index 000000000..40f548140 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-030-tutorial-step-ready-for-the-next-one.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Defining a Trading Idea", + "pageNumber": 30, + "type": "Tutorial Step - Ready For The Next One..?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "tutorial" + }, + "text": "The tutorial to the right is the next in the series about designing trading systems. Shall we keep going?" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "The next tutorial in the series is about implementing the ideas we just came up with on a Trading System so that they may be tested." + }, + { + "style": "Success", + "text": "Click Next to finish this tutorial, and select Play in the next one when you are ready!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-001-tutorial-intro-for-developers.json b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-001-tutorial-intro-for-developers.json new file mode 100644 index 000000000..789cf501c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-001-tutorial-intro-for-developers.json @@ -0,0 +1,38 @@ +{ + "tutorial": "Developers Intro", + "pageNumber": 1, + "type": "Tutorial - Intro for Developers", + "definition": { + "icon": { + "project": "Superalgos", + "name": "" + }, + "text": "This tutorial walks you through the technical aspects of Superalgos so that you may take advantage of the infrastructure in place as efficiently as possible." + }, + "paragraphs": [ + { + "style": "Text", + "text": "I will cover the following topics:" + }, + { + "style": "List", + "text": "Architecture: Architectural overview of the system." + }, + { + "style": "List", + "text": "Client: How the Client is organized." + }, + { + "style": "List", + "text": "Frontend: How the UI works." + }, + { + "style": "Link", + "text": "->" + }, + { + "style": "Note", + "text": "This is a 3-year-old project that has pivoted a few times to reach its current state of development. It was initially intended for trading bots competitions and is now focused on crypto-trading automation in general. The main technical pivot occurred when we decided to depart from a centralized cloud-based app, to a decentralized network of nodes." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-002-tutorial-topic-system-architecture.json b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-002-tutorial-topic-system-architecture.json new file mode 100644 index 000000000..25e64dd82 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-002-tutorial-topic-system-architecture.json @@ -0,0 +1,38 @@ +{ + "tutorial": "Developers Intro", + "pageNumber": 2, + "type": "Tutorial Topic - System Architecture", + "definition": { + "icon": { + "project": "Superalgos", + "name": "" + }, + "text": "Superalgos is essentially a Node.js application + a Web App." + }, + "paragraphs": [ + { + "style": "Text", + "text": "The overall idea is that Superalgos runs at users' machines. Advanced users may deploy multiple Superalgos nodes in a LAN and distribute tasks easily. In the current version, these nodes are not ready to be exposed to the Internet. Someday they will, and eventually, they will be able to provide services to other users. These services may include:" + }, + { + "style": "List", + "text": "Data Products: Pre-calculated indicators or studies." + }, + { + "style": "List", + "text": "Backtest Execution: To scale testing capabilities." + }, + { + "style": "List", + "text": "Live Trading Execution: Only if trusted entities emerge." + }, + { + "style": "List", + "text": "Data Processing Execution: External data processing power." + }, + { + "style": "Link", + "text": "->" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-003-tutorial-topic-client.json b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-003-tutorial-topic-client.json new file mode 100644 index 000000000..3608440a7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-003-tutorial-topic-client.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Developers Intro", + "pageNumber": 3, + "type": "Tutorial Topic - Client", + "definition": { + "icon": { + "project": "Superalgos", + "name": "" + }, + "text": "The Client has two main components: The Client and the Task Server. When you run the app, what you are running are the Client. An instance of the Task Server is put to run once a user decides to run a task." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Once the services at the Client are running, the default web browser is called with the URL of the local machine so that it may load the UI and let users interact with the system." + }, + { + "style": "Note", + "text": "The system holds all of its data and logs in the installation folder. The system does not modify—in any way—anything outside the installation folder. Deleting this folder completely removes Superalgos from the computer." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-004-tutorial-topic-client.json b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-004-tutorial-topic-client.json new file mode 100644 index 000000000..94e7cd3fa --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-004-tutorial-topic-client.json @@ -0,0 +1,38 @@ +{ + "tutorial": "Developers Intro", + "pageNumber": 4, + "type": "Tutorial Topic - Client", + "definition": { + "icon": { + "project": "Superalgos", + "name": "" + }, + "text": "Is a collection of servers running on a single Node.js process." + }, + "paragraphs": [ + { + "style": "Text", + "text": "The servers are:" + }, + { + "style": "List", + "text": "Web Server: Serves all the JS files that form the User Interface to the browser." + }, + { + "style": "List", + "text": "Web Sockets Server: Enables the UI to reach the Client via WS." + }, + { + "style": "List", + "text": "Events Server: Enables the UI to communicate with the Task Manager Server and all of the Task Servers process instances via events over WS." + }, + { + "style": "List", + "text": "Task Manager Server: Manges Task Servers processes based on users commands." + }, + { + "style": "Note", + "text": "All of these servers are custom built—in-house—for Superalgos. We prefer to build on top of rock-solid, widely-used, low-level libraries only, like WS, for instance." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-005-tutorial-step-web-server.json b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-005-tutorial-step-web-server.json new file mode 100644 index 000000000..8c53a2220 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-005-tutorial-step-web-server.json @@ -0,0 +1,38 @@ +{ + "tutorial": "Developers Intro", + "pageNumber": 5, + "type": "Tutorial Step - Web Server", + "definition": { + "icon": { + "project": "Superalgos", + "name": "" + }, + "text": "The Web Server has two main goals: it serves all the JS files that form the Web App and all the data files to be plotted at the charts to the browser that is running the UI." + }, + "paragraphs": [ + { + "style": "Text", + "text": "The complete list Web Server uses is:" + }, + { + "style": "List", + "text": "JS Files: Enables the Web App to run on a browser." + }, + { + "style": "List", + "text": "JSON Data Files: Allows the UI to access data to plot." + }, + { + "style": "List", + "text": "Images: Images used on the UI are served from the Web Server." + }, + { + "style": "List", + "text": "JSON Workspaces Files: Allow users to create definitions on different Workspaces." + }, + { + "style": "List", + "text": "JSON Plugin Files: Files that are automatically included on Workspaces for convenience." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-006-tutorial-step-web-sockets-server.json b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-006-tutorial-step-web-sockets-server.json new file mode 100644 index 000000000..c6c5a2542 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-006-tutorial-step-web-sockets-server.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Developers Intro", + "pageNumber": 6, + "type": "Tutorial Step - Web Sockets Server", + "definition": { + "icon": { + "project": "Superalgos", + "name": "" + }, + "text": "This is a simple implementation of a web sockets server. It essentially allows the UI or any of the other services to communicate with the Events Server via WS." + }, + "paragraphs": [ + { + "style": "Text", + "text": "The system does not allow different processes to talk to each other via WS. All they can do is talk to the Events Server to subscribe to events or to emit events." + }, + { + "style": "Note", + "text": "The Web Socket Server enables this indirect communication mechanism between all processes and the UI running on a single machine, as well as communication between processes running on different machines." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-007-tutorial-step-events-server.json b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-007-tutorial-step-events-server.json new file mode 100644 index 000000000..19e68bb1d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-007-tutorial-step-events-server.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Developers Intro", + "pageNumber": 7, + "type": "Tutorial Step - Events Server", + "definition": { + "icon": { + "project": "Superalgos", + "name": "" + }, + "text": "The Events Server provides the communication model between processes and the UI. It essentially allows any entity inside each process to create a system-wide event handler and allow any other entity inside a process (or the UI) to subscribe or emit events at that event handler." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Events-based communication happens between:" + }, + { + "style": "List", + "text": "UI and Task Manager: To run and stop Task Server processes." + }, + { + "style": "List", + "text": "Task Server and UI: To get online feedback of what is going on at the Task Server, to display relevant status info at the UI." + }, + { + "style": "Note", + "text": "The communication between the UI and the Web Server is HTTP only." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-008-tutorial-step-task-manager-server.json b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-008-tutorial-step-task-manager-server.json new file mode 100644 index 000000000..6e8ec1ee5 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-008-tutorial-step-task-manager-server.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Developers Intro", + "pageNumber": 8, + "type": "Tutorial Step - Task Manager Server", + "definition": { + "icon": { + "project": "Superalgos", + "name": "" + }, + "text": "The Task Manager Server is a simple server to manage the execution of Task Servers Node.js processes. It keeps track of all the instances running at any point in time and allows the UI to decide when to run more instance or stop any of those running." + }, + "paragraphs": [ + { + "style": "Text", + "text": "The Task Manager Server provides the following commands to the UI:" + }, + { + "style": "List", + "text": "Run Task: Used to run a new task, spawns a Node.js fork process where a Task Server is run." + }, + { + "style": "List", + "text": "Stop Task: Sends a fork-process-message to the Task Server instance that needs to stop." + }, + { + "style": "List", + "text": "Task Status: Tells the caller if the Task Id provided corresponds to a running task or not." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-009-tutorial-topic-task-server.json b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-009-tutorial-topic-task-server.json new file mode 100644 index 000000000..431555752 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-009-tutorial-topic-task-server.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Developers Intro", + "pageNumber": 9, + "type": "Tutorial Topic - Task Server", + "definition": { + "icon": { + "project": "Superalgos", + "name": "" + }, + "text": "The Task Server is a Node.js fork process of Client that receives the definition of the Task that needs to run from the UI ." + }, + "paragraphs": [ + { + "style": "Text", + "text": "The definition includes:" + }, + { + "style": "List", + "text": "Bot to run: The bot might be a Sensor Bot, an Indicator Bot or a Trading Bot." + }, + { + "style": "List", + "text": "Processes to run: Each bot definition may have one or more bot processes." + }, + { + "style": "Note", + "text": "The UI is where all definitions live. Every time the user runs a task, the UI collects all the relevant information into a single, giant JSON object and sends this to the Task Manager Server, which in turn, after the fork process is running, passes this definition to the Task Server instance just created. With that definition, the Task Server knows all the details of the task to run." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-010-tutorial-topic-frontend.json b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-010-tutorial-topic-frontend.json new file mode 100644 index 000000000..3a915a615 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-010-tutorial-topic-frontend.json @@ -0,0 +1,34 @@ +{ + "tutorial": "Developers Intro", + "pageNumber": 10, + "type": "Tutorial Topic - Frontend", + "definition": { + "icon": { + "project": "Superalgos", + "name": "" + }, + "text": "The Frontend is essentially a Javascript web-app running on the browser." + }, + "paragraphs": [ + { + "style": "Text", + "text": "As of today it contains:" + }, + { + "style": "List", + "text": "Canvas App: Most of the functionality is here. The name reflects the fact that most of the UI is rendered in an HTML 5 canvas object." + }, + { + "style": "List", + "text": "Files Component Includes the mechanisms to read data files in a way that is suitable for navigating through large datasets while plotting the information in real-time." + }, + { + "style": "Note", + "text": "The UI was built entirely in-house. We did not reuse any framework to display the design space or the charts." + }, + { + "style": "Important", + "text": "The UI is tested in Chrome only." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-011-tutorial-topic-canvas-app.json b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-011-tutorial-topic-canvas-app.json new file mode 100644 index 000000000..2054765ee --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-011-tutorial-topic-canvas-app.json @@ -0,0 +1,54 @@ +{ + "tutorial": "Developers Intro", + "pageNumber": 11, + "type": "Tutorial Topic - Canvas App", + "definition": { + "icon": { + "project": "Superalgos", + "name": "" + }, + "text": "Most of the action happens on an HTML 5 Canvas animation. The rest is pure HTML + CSS, nothing else." + }, + "paragraphs": [ + { + "style": "Text", + "text": "The main object of the Canvas App is called canvas. It is essentially a collection of different space objects:" + }, + { + "style": "List", + "text": "Charting Space: Where charts are displayed," + }, + { + "style": "List", + "text": "Design Space: Where definitions are maintained." + }, + { + "style": "List", + "text": "Floating Space: Enables visual scripting." + }, + { + "style": "List", + "text": "Side Space: Currently, the workspace selector." + }, + { + "style": "List", + "text": "Docs Space: In-app documentation." + }, + { + "style": "List", + "text": "Tutorial Space: Enables tutorials like this one." + }, + { + "style": "List", + "text": "Panel Space: Where plotter panels live." + }, + { + "style": "List", + "text": "Cockpit Space: Currently, the slider ." + }, + { + "style": "List", + "text": "Top Space: Currently, the top bar with logo." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-012-tutorial-step-canvas-animation.json b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-012-tutorial-step-canvas-animation.json new file mode 100644 index 000000000..ccdf340ed --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-012-tutorial-step-canvas-animation.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Developers Intro", + "pageNumber": 12, + "type": "Tutorial Step - Canvas Animation", + "definition": { + "icon": { + "project": "Superalgos", + "name": "" + }, + "text": "The animation runs a physics() and a draw() function for each space, allowing each of them to have their own physics engine / rules and render themselves as a top-level layer on the UI." + }, + "paragraphs": [ + { + "style": "Text", + "text": "At each frame, the animation calls the physics() function of each space first and, second, the draw() function. Then, it requests a callback from the browser and starts all over again." + }, + { + "style": "Success", + "text": "Depending on how many things the user keeps open, both the physics() call or the draw() call may last more or less time. This makes the frames-per-second variable, and a function of the number of things that need to be calculated or rendered on-screen." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-013-tutorial-step-charting-space.json b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-013-tutorial-step-charting-space.json new file mode 100644 index 000000000..093f53027 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-013-tutorial-step-charting-space.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Developers Intro", + "pageNumber": 13, + "type": "Tutorial Step - Charting Space", + "definition": { + "icon": { + "project": "Superalgos", + "name": "" + }, + "text": "This is where the charts are displayed. It allows users to navigate through multi-dimensional datasets." + }, + "paragraphs": [ + { + "style": "Text", + "text": "The Charting Space has its own object structure that partially matches the definitions set by the user on the Charting Space hierarchy. This means that, whenever the user adds a chart, removes a scale, or changes a configuration of any of the nodes inside the Charting Space hierarchy, the Charting Space senses these changes and adapts its object model, most of the time in real-time, which in turn changes the way that the charts are displayed." + }, + { + "style": "Note", + "text": "The Charting Space uses the Files Components as its data provider." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-014-tutorial-step-design-space.json b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-014-tutorial-step-design-space.json new file mode 100644 index 000000000..6b4367bda --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-014-tutorial-step-design-space.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Developers Intro", + "pageNumber": 14, + "type": "Tutorial Step - Design Space", + "definition": { + "icon": { + "project": "Superalgos", + "name": "" + }, + "text": "Manages the core concept of nodes which, when attached to one another, may form vast definitions easily made and maintained by users." + }, + "paragraphs": [ + { + "style": "Text", + "text": "The system features a file called App Schema which has the rules about the existing types of nodes, which nodes may be the child of other nodes, and which may reference other nodes and which. It also defines the menu items of nodes. All these rules are enforced on the Design Space." + }, + { + "style": "Callout", + "text": "Users may then attach nodes, establish references between nodes, select menu items, and more..." + }, + { + "style": "Note", + "text": "The Design Space is tightly coupled with the Floating Space." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-015-tutorial-step-floating-space.json b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-015-tutorial-step-floating-space.json new file mode 100644 index 000000000..35b2d99e7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-015-tutorial-step-floating-space.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Developers Intro", + "pageNumber": 15, + "type": "Tutorial Step - Floating Space", + "definition": { + "icon": { + "project": "Superalgos", + "name": "" + }, + "text": "This is like the low-level part of the Design Space. It features a physics engine that governs the physical interactions of floating objects." + }, + "paragraphs": [ + { + "style": "Text", + "text": "At runtime, each node on the Design Space behaves like a molecule featuring three atoms working together: the first one is called Floating Object and belongs to the Floating Space, which controls its position and collision-related physics; the second one is a UiObject which lives at the Design Space and controls the UI of the node, including menu, label, etc.; the third one is a Node that is—essentially—the information contained in that node." + }, + { + "style": "Note", + "text": "When you save the Workspace, Floating Objects and UIOBjects are detached from Nodes, and saved as a big JSON object with only its data." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-016-tutorial-step-side-space.json b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-016-tutorial-step-side-space.json new file mode 100644 index 000000000..640fe4b97 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-016-tutorial-step-side-space.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Developers Intro", + "pageNumber": 16, + "type": "Tutorial Step - Side Space", + "definition": { + "icon": { + "project": "Superalgos", + "name": "" + }, + "text": "It is the section on the left, accessed by clicking a tab button. As of today, it features a Workspace selector for users to switch between different workspaces." + }, + "paragraphs": [ + { + "style": "Text", + "text": "On the Side Space users may:" + }, + { + "style": "List", + "text": "Select an included workspace: The system ships with one or more included workspaces that serve as examples or case studies." + }, + { + "style": "List", + "text": "Select one's own workspaces: By renaming any included workspace, the user may create a workspace and switch workspaces using the Side Space." + }, + { + "style": "Note", + "text": "The Side Space is expected to grow in functionality in the future." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-017-tutorial-step-docs-space.json b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-017-tutorial-step-docs-space.json new file mode 100644 index 000000000..f55c42ee9 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-017-tutorial-step-docs-space.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Developers Intro", + "pageNumber": 17, + "type": "Tutorial Step - Docs Space", + "definition": { + "icon": { + "project": "Superalgos", + "name": "" + }, + "text": "This is where the documentation web site is loaded. It's an HTML iFrame inside a DIV, animated in and out of the screen." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "There is an ongoing effort to bring the documentation web site into the app. What you can see today is just the first step in that direction." + }, + { + "style": "Note", + "text": "The current documentation is implemented as a separate repository, hosted by Github Pages." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-018-tutorial-step-tutorial-space.json b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-018-tutorial-step-tutorial-space.json new file mode 100644 index 000000000..4ca957633 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-018-tutorial-step-tutorial-space.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Developers Intro", + "pageNumber": 18, + "type": "Tutorial Step - Tutorial Space", + "definition": { + "icon": { + "project": "Superalgos", + "name": "" + }, + "text": "Enables running tutorials. It is not based on the HTML canvas, but on HTML + CSS." + }, + "paragraphs": [ + { + "style": "Text", + "text": "The Tutorial Space is the highest top-tier layer of all the system since its rendered above everything else. It can manipulate other spaces based on the configuration of each tutorial topic and step." + }, + { + "style": "Callout", + "text": "Not only may tutorials move the user around the UI, but may also take most actions users themselves may take, like, for instance, running tasks of any kind." + }, + { + "style": "Note", + "text": "The Tutorial Space is a new addition to the system. For that reason, few tutorials exist today, but we expect this to change in the future." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-019-tutorial-step-panel-space.json b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-019-tutorial-step-panel-space.json new file mode 100644 index 000000000..40cdea855 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-019-tutorial-step-panel-space.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Developers Intro", + "pageNumber": 19, + "type": "Tutorial Step - Panel Space", + "definition": { + "icon": { + "project": "Superalgos", + "name": "" + }, + "text": "The Panel Space is where all panels defined by plotters exist. The space has its own physics engine which governs the way users interact with panels, and panels with other panels." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Panels are constrained within the boundaries of the Panel Space, which matches the boundaries of the Charting Space." + }, + { + "style": "Note", + "text": "Although the panel space has existed since the project's inception, it is still quite underdeveloped, and there is a lot of room to improve it." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-020-tutorial-topic-files-component.json b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-020-tutorial-topic-files-component.json new file mode 100644 index 000000000..26a186c8a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-020-tutorial-topic-files-component.json @@ -0,0 +1,38 @@ +{ + "tutorial": "Developers Intro", + "pageNumber": 20, + "type": "Tutorial Topic - Files Component", + "definition": { + "icon": { + "project": "Superalgos", + "name": "" + }, + "text": "Encapsulates different data providers able to read datasets organized in different ways." + }, + "paragraphs": [ + { + "style": "Text", + "text": "The system defines these types of data providers:" + }, + { + "style": "List", + "text": "Market Files: For time-frames of 1 hour and above, it is convenient to have a single file with all the data of the whole market." + }, + { + "style": "List", + "text": "Daily Files: For time-frames below 1 hour, up to 1 minute, it is convenient to split market data into one file per day." + }, + { + "style": "List", + "text": "Single File: Sometimes a process may generate a single file irrespective of the time-frame." + }, + { + "style": "List", + "text": "Files Sequence: Some processes may produce a sequence of files." + }, + { + "style": "Note", + "text": "Daily Files are managed by a File Cursor which dynamically loads the files of one day and its neighboring days." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-021-tutorial-topic-parting-thoughts..json b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-021-tutorial-topic-parting-thoughts..json new file mode 100644 index 000000000..fee76e323 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/developers-intro-021-tutorial-topic-parting-thoughts..json @@ -0,0 +1,26 @@ +{ + "tutorial": "Developers Intro", + "pageNumber": 21, + "type": "Tutorial Topic - Parting Thoughts...", + "definition": { + "icon": { + "project": "Superalgos", + "name": "" + }, + "text": "As you can see, Superalgos is much more than a trading bot. It's a holistic infrastructure to manage complexity in the easiest way possible for users." + }, + "paragraphs": [ + { + "style": "Text", + "text": "This introduction covered the highest level topics of the system in the hope it may help you understand the foundations on which the system is being built." + }, + { + "style": "Callout", + "text": "We hope you agree it's a good idea to reuse this infrastructure to build trading intelligence rather than code a trading bot from scratch. We hope more devs will join us!" + }, + { + "style": "Success", + "text": "If you like the project, there are many ways to contribute. Take a look at this page featuring the roadmap to becoming a part of the team." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-001-tutorial-install-a-new-market.json b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-001-tutorial-install-a-new-market.json new file mode 100644 index 000000000..ecfeb3578 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-001-tutorial-install-a-new-market.json @@ -0,0 +1,38 @@ +{ + "tutorial": "Install a New Market", + "pageNumber": 1, + "type": "Tutorial - Install a New Market", + "definition": { + "icon": { + "project": "Superalgos", + "name": "market" + }, + "text": "This tutorial walks you through the process of setting up a new Market on which to run data mining and trading operations." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Setting up a new Market involves:" + }, + { + "style": "List", + "text": "1. Adding the assets for the exchange of choice." + }, + { + "style": "List", + "text": "2. Setting up a market with the said assets." + }, + { + "style": "List", + "text": "3. Installing the market " + }, + { + "style": "Text", + "text": "Let's get on with it!" + }, + { + "style": "Callout", + "text": "When you click the Next button below, you will go to the Exchange Assets node under Binance, in the Crypto Ecosystem hierarchy." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-002-tutorial-topic-add-the-assets.json b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-002-tutorial-topic-add-the-assets.json new file mode 100644 index 000000000..e5c8d8dc6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-002-tutorial-topic-add-the-assets.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Install a New Market", + "pageNumber": 2, + "type": "Tutorial Topic - Add the Assets", + "definition": { + "icon": { + "project": "Superalgos", + "name": "asset" + }, + "text": "If the assets you wish to work with are not listed under Exchange Assets, you must add and configure them first." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "In this section of the tutorial, you will learn to define which assets you may want to work with." + }, + { + "style": "Success", + "text": "Each exchange may list hundreds of assets, however, you will likely be interested in just a few. Some automated operations may feed on your definitions, so keeping them free of junk is always a good idea." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-003-tutorial-step-add-the-assets-1.json b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-003-tutorial-step-add-the-assets-1.json new file mode 100644 index 000000000..878fc15f7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-003-tutorial-step-add-the-assets-1.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Install a New Market", + "pageNumber": 3, + "type": "Tutorial Step - Add the Assets 1", + "definition": { + "icon": { + "project": "Superalgos", + "name": "exchange-assets" + }, + "text": "Open the Exchange Assets node menu and use the Add Asset button to add the required assets." + }, + "paragraphs": [ + { + "style": "List", + "text": "Step 1: Add Nodes" + }, + { + "style": "Important", + "text": "Assets under Exchange Assets may not be duplicated. If the definitions for the assets you are interested in already exist, you may reuse them instead of creating new ones. If such is the case, simply skip the next few steps until you need to set up the Market." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-004-tutorial-step-add-the-assets-2.json b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-004-tutorial-step-add-the-assets-2.json new file mode 100644 index 000000000..c981c2c6e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-004-tutorial-step-add-the-assets-2.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Install a New Market", + "pageNumber": 4, + "type": "Tutorial Step - Add the Assets 2", + "definition": { + "icon": { + "project": "Superalgos", + "name": "asset" + }, + "text": "Edit the configuration of each of the new assets entering the ticker (as listed by the exchange) in the codeName property. For example: 'codeName': 'ETH'" + }, + "paragraphs": [ + { + "style": "List", + "text": "Step 2: Configure Assets" + }, + { + "style": "Note", + "text": "If the icon for the configured assets exist in the image library, the default icon is replaced automatically." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-005-tutorial-step-add-the-assets-3.json b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-005-tutorial-step-add-the-assets-3.json new file mode 100644 index 000000000..7a4b6b16c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-005-tutorial-step-add-the-assets-3.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Install a New Market", + "pageNumber": 5, + "type": "Tutorial Step - Add the Assets 3", + "definition": { + "icon": { + "project": "Superalgos", + "name": "asset" + }, + "text": "Label the assets with the descriptive name of the coin or token, for ease of use. For example: Ether." + }, + "paragraphs": [ + { + "style": "List", + "text": "Step 3: Label Nodes" + }, + { + "style": "Success", + "text": "Keeping a tidy Workspace with proper labels for significant nodes helps in managing large operations and administering complexity." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-006-tutorial-topic-set-up-the-market.json b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-006-tutorial-topic-set-up-the-market.json new file mode 100644 index 000000000..900ba8318 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-006-tutorial-topic-set-up-the-market.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Install a New Market", + "pageNumber": 6, + "type": "Tutorial Topic - Set Up the Market", + "definition": { + "icon": { + "project": "Superalgos", + "name": "market" + }, + "text": "If there is no Market set up with the pair you wish to work with under Exchange Markets, you must set up the market definition before installing it." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "The next few steps teach you how to set up the market so that you may later install it." + }, + { + "style": "Important", + "text": "Make sure that the combination of base and quoted assets that you wish to define as a market in Superalgos exists as a market listed at the exchange." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-007-tutorial-step-set-up-the-market-1.json b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-007-tutorial-step-set-up-the-market-1.json new file mode 100644 index 000000000..0fe69f9e1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-007-tutorial-step-set-up-the-market-1.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Install a New Market", + "pageNumber": 7, + "type": "Tutorial Step - Set Up the Market 1", + "definition": { + "icon": { + "project": "Superalgos", + "name": "market" + }, + "text": "Add a new Market node using the Add Market option on the menu." + }, + "paragraphs": [ + { + "style": "List", + "text": "Step 1: Add Market" + }, + { + "style": "Text", + "text": "A Market node is added featuring two offspring: a Market Base Asset and a Market Quoted Asset." + }, + { + "style": "Important", + "text": "Before continuing, make sure which is the base and which the quoted asset in the exchange's listing. Usually, the base asset is the first in the name of the pair, but this is not enforced on every exchange, so be vigilant." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-008-tutorial-step-set-up-the-market-2.json b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-008-tutorial-step-set-up-the-market-2.json new file mode 100644 index 000000000..634aa0373 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-008-tutorial-step-set-up-the-market-2.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Install a New Market", + "pageNumber": 8, + "type": "Tutorial Step - Set Up the Market 2", + "definition": { + "icon": { + "project": "Superalgos", + "name": "asset" + }, + "text": "Establish a reference from the Market Base Asset node in the Market you just defined to the corresponding Asset node defined under Exchange Assets." + }, + "paragraphs": [ + { + "style": "List", + "text": "Step 2: Reference Base A." + }, + { + "style": "Note", + "text": "If you are not familiar with establishing references, please read about the topic in the documentation." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-009-tutorial-step-set-up-the-market-3.json b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-009-tutorial-step-set-up-the-market-3.json new file mode 100644 index 000000000..b74bd3bb0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-009-tutorial-step-set-up-the-market-3.json @@ -0,0 +1,19 @@ +{ + "tutorial": "Install a New Market", + "pageNumber": 9, + "type": "Tutorial Step - Set Up the Market 3", + "definition": { + "icon": { + "project": "Superalgos", + "name": "asset" + }, + "text": "Now establish a reference from the Market Quoted Asset node in the Market you just defined to the corresponding Asset node defined under Exchange Assets." + }, + "paragraphs": [ + { + "style": "List", + "text": "Step 3: Reference Quoted Asset.", + "updated": 1610540662459 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-010-tutorial-step-set-up-the-market-4.json b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-010-tutorial-step-set-up-the-market-4.json new file mode 100644 index 000000000..a15cfffd1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-010-tutorial-step-set-up-the-market-4.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Install a New Market", + "pageNumber": 10, + "type": "Tutorial Step - Set Up the Market 4", + "definition": { + "icon": { + "project": "Superalgos", + "name": "market" + }, + "text": "Label the Market with the ticker names corresponding to the Market Base Asset and the Market Quoted Asset, just like the exchange listing. For example: ETH/USDT." + }, + "paragraphs": [ + { + "style": "List", + "text": "Step 4: Label the Market" + }, + { + "style": "Success", + "text": "Keeping a tidy Workspace with proper labels for significant nodes helps in managing large operations and administering complexity." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-011-tutorial-topic-install-the-market.json b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-011-tutorial-topic-install-the-market.json new file mode 100644 index 000000000..4c357aa59 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-011-tutorial-topic-install-the-market.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Install a New Market", + "pageNumber": 11, + "type": "Tutorial Topic - Install the Market", + "definition": { + "icon": { + "project": "Superalgos", + "name": "market" + }, + "text": "Click the Install Market button on the Market node you just finished setting up. Now that the Market is set up, installing it is just a click away." + }, + "paragraphs": [ + { + "style": "List", + "text": "Single Step: Install" + }, + { + "style": "Note", + "text": "The Install Market function sets up many data structures in the local Network Node and in the Charting Space. The next few steps in the tutorial will help you get familiar with the installation." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-012-tutorial-topic-network-verification.json b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-012-tutorial-topic-network-verification.json new file mode 100644 index 000000000..2e83af86f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-012-tutorial-topic-network-verification.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Install a New Market", + "pageNumber": 12, + "type": "Tutorial Topic - Network Verification", + "definition": { + "icon": { + "project": "Superalgos", + "name": "network-node" + }, + "text": "The Install Market function sets up many data structures in the local Network Node." + }, + "paragraphs": [ + { + "style": "Text", + "text": "In the next few steps, you will verify that each of the expected data structures was created successfully. The expected structures are:" + }, + { + "style": "Callout", + "text": "1. Data Tasks tasks for all data mines included in your workspace.

2. Backtesting and live trading tasks for all included trading systems.

3. The corresponding Data Storage definitions." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-013-tutorial-step-network-verification-1.json b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-013-tutorial-step-network-verification-1.json new file mode 100644 index 000000000..ab82097c2 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-013-tutorial-step-network-verification-1.json @@ -0,0 +1,34 @@ +{ + "tutorial": "Install a New Market", + "pageNumber": 13, + "type": "Tutorial Step - Network Verification 1", + "definition": { + "icon": { + "project": "Superalgos", + "name": "data-tasks" + }, + "text": "Verify that the Data Tasks tasks for the corresponding Market were created successfully." + }, + "paragraphs": [ + { + "style": "List", + "text": "Step 1: Verify Data Mining" + }, + { + "style": "Text", + "text": "Look for the following data structures:" + }, + { + "style": "List", + "text": "A Market Data Tasks node for the new market." + }, + { + "style": "List", + "text": "One Data Mine Tasks node for each Data Mine included in the Workspace." + }, + { + "style": "List", + "text": "One Task Manager per Data Mine and one Task for each bot defined in each data mine." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-014-tutorial-step-network-verification-2.json b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-014-tutorial-step-network-verification-2.json new file mode 100644 index 000000000..3db91a3ad --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-014-tutorial-step-network-verification-2.json @@ -0,0 +1,34 @@ +{ + "tutorial": "Install a New Market", + "pageNumber": 14, + "type": "Tutorial Step - Network Verification 2", + "definition": { + "icon": { + "project": "Superalgos", + "name": "testing-trading-tasks" + }, + "text": "Verify that the Testing Trading Tasks tasks for the corresponding Market were created successfully." + }, + "paragraphs": [ + { + "style": "List", + "text": "Step 2: Verify Testing Env." + }, + { + "style": "Text", + "text": "Look for the following data structures:" + }, + { + "style": "List", + "text": "A Market Trading Tasks node for the new market." + }, + { + "style": "List", + "text": "One Trading Mine Tasks node for each trading mine included in the Workspace." + }, + { + "style": "List", + "text": "One Task Manager per trading mine and one Task with a Backtesting Session for each Trading System in the workspace." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-015-tutorial-step-network-verification-3.json b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-015-tutorial-step-network-verification-3.json new file mode 100644 index 000000000..61fac43e1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-015-tutorial-step-network-verification-3.json @@ -0,0 +1,34 @@ +{ + "tutorial": "Install a New Market", + "pageNumber": 15, + "type": "Tutorial Step - Network Verification 3", + "definition": { + "icon": { + "project": "Superalgos", + "name": "production-trading-tasks" + }, + "text": "Verify that the Production Trading Tasks tasks for the corresponding Market were created successfully." + }, + "paragraphs": [ + { + "style": "List", + "text": "Step 3: Verify Prod. Env." + }, + { + "style": "Text", + "text": "Look for the following data structures:" + }, + { + "style": "List", + "text": "A Market Trading Tasks node for the new market." + }, + { + "style": "List", + "text": "One Trading Mine Tasks node for each trading mine included in the workspace." + }, + { + "style": "List", + "text": "One Task Manager per Trading Mine and one Task with a Backtesting Session for each Trading System in the workspace." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-016-tutorial-step-network-verification-4.json b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-016-tutorial-step-network-verification-4.json new file mode 100644 index 000000000..70a794032 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-016-tutorial-step-network-verification-4.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Install a New Market", + "pageNumber": 16, + "type": "Tutorial Step - Network Verification 4", + "definition": { + "icon": { + "project": "Superalgos", + "name": "data-storage" + }, + "text": "Verify that the Data Storage nodes for the corresponding Market were created successfully." + }, + "paragraphs": [ + { + "style": "List", + "text": "Step 4: Verify Data Storage" + }, + { + "style": "Text", + "text": "Look for the following data structures:" + }, + { + "style": "List", + "text": "A Market Data Products node under Data Mines Data, with a Data Mine Products node for each Data Mine in the workspace." + }, + { + "style": "List", + "text": "A Market Trading Products node under Trading Mines Data, with a Trading Session Reference for each trading session in the testing and production environments." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-017-tutorial-topic-charts-verification.json b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-017-tutorial-topic-charts-verification.json new file mode 100644 index 000000000..2af9fc41d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-017-tutorial-topic-charts-verification.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Install a New Market", + "pageNumber": 17, + "type": "Tutorial Topic - Charts Verification", + "definition": { + "icon": { + "project": "Superalgos", + "name": "charting-space" + }, + "text": "Beyond the data structures set up in the Network hierarchy, the Install Market function also sets up charts matching the trading sessions created." + }, + "paragraphs": [ + { + "style": "Text", + "text": "In the next few steps you will verify that the expected data structures were created successfully." + }, + { + "style": "Callout", + "text": "The charts created allow working with each of the trading sessions independently." + }, + { + "style": "Success", + "text": "Notice from the organization of the charts that Superalgos allows scaling up your operation to unlimited trading systems and charts." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-018-tutorial-step-charts-verification-1.json b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-018-tutorial-step-charts-verification-1.json new file mode 100644 index 000000000..b178099d0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-018-tutorial-step-charts-verification-1.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Install a New Market", + "pageNumber": 18, + "type": "Tutorial Step - Charts Verification 1", + "definition": { + "icon": { + "project": "Superalgos", + "name": "charting-space" + }, + "text": "Verify that the Charting Space data structures for the corresponding Market were created successfully." + }, + "paragraphs": [ + { + "style": "List", + "text": "Step 1: Verify Charting S." + }, + { + "style": "Text", + "text": "Look for the following data structures:" + }, + { + "style": "List", + "text": "A Time Machine node for each trading session created in the Testing Trading Tasks." + }, + { + "style": "List", + "text": "A Time Machine node for each trading session created in the Production Trading Tasks." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-019-tutorial-step-charts-verification-2.json b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-019-tutorial-step-charts-verification-2.json new file mode 100644 index 000000000..bbad5cb44 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-019-tutorial-step-charts-verification-2.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Install a New Market", + "pageNumber": 19, + "type": "Tutorial Step - Charts Verification 2", + "definition": { + "icon": { + "project": "Superalgos", + "name": "time-machine" + }, + "text": "Verify that the time machines created show up on the chartsing space... you should find..." + }, + "paragraphs": [ + { + "style": "List", + "text": "Step 2: Verify the Charts" + }, + { + "style": "List", + "text": "A Time Machine for each trading session created in the Testing Trading Tasks." + }, + { + "style": "List", + "text": "A Time Machine for each trading session created in the Production Trading Tasks." + }, + { + "style": "Success", + "text": "Hover your mouse over a chart to see what Crypto Exchange and Market it features." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-020-tutorial-topic-you-made-it.json b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-020-tutorial-topic-you-made-it.json new file mode 100644 index 000000000..c20f8db9a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-020-tutorial-topic-you-made-it.json @@ -0,0 +1,18 @@ +{ + "tutorial": "Install a New Market", + "pageNumber": 20, + "type": "Tutorial Topic - You Made It!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "tutorial" + }, + "text": "Congratulations... you have reached the end of this tutorial!" + }, + "paragraphs": [ + { + "style": "Success", + "text": "You may revisit this tutorial at any point. If you select the Play option on the menu, you start right from the beginning. If you select the Resume option instead, you start where you last left, or where you last skipped a step." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-001-tutorial-intro-to-trading-systems.json b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-001-tutorial-intro-to-trading-systems.json new file mode 100644 index 000000000..821b6585d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-001-tutorial-intro-to-trading-systems.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Intro to Trading Systems", + "pageNumber": 1, + "type": "Tutorial - Intro to Trading Systems", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-system" + }, + "text": "Trading systems are the heart and soul of systematic trading, as they concentrate the biggest chunk of trading intelligence." + }, + "paragraphs": [ + { + "style": "Text", + "text": "The rest of the infrastructure built into Superalgos—data mining and visualization, the trading bot and trading engine, the visual strategy designer and debugger—all have significant equity in the intelligence pie, but it's fair to argue that were developed to support the design, testing, and deployment of trading systems!" + }, + { + "style": "Callout", + "text": "This first tutorial explains how Superalgos views and handles a Trading System. The rest of the tutorials in the series teach you how to build them!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-002-tutorial-topic-frame-it-flexibly.json b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-002-tutorial-topic-frame-it-flexibly.json new file mode 100644 index 000000000..a56a70a50 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-002-tutorial-topic-frame-it-flexibly.json @@ -0,0 +1,27 @@ +{ + "tutorial": "Intro to Trading Systems", + "pageNumber": 2, + "type": "Tutorial Topic - Frame It Flexibly!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-system" + }, + "text": "A Trading System governs trading strategies, and provides a flexible—but structured— framework to build them." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Please, read this page to get up to speed with how trading systems work!", + "updated": 1610367185240 + }, + { + "style": "Success", + "text": "There is no substitute for knowledge, so you will need to do some reading before I get your hands dirty with good ol' trading logic!" + }, + { + "style": "Warning", + "text": "Skipping the reading may result in permanent neurological impairment. Your call!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-003-tutorial-step-points-to-take-home..json b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-003-tutorial-step-points-to-take-home..json new file mode 100644 index 000000000..be1193b7b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-003-tutorial-step-points-to-take-home..json @@ -0,0 +1,34 @@ +{ + "tutorial": "Intro to Trading Systems", + "pageNumber": 3, + "type": "Tutorial Step - Points to Take Home...", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-system" + }, + "text": "There are some key learnings in the previous reading: multiple strategies, single positions, and precedence." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Let's take some mental notes for what comes next:" + }, + { + "style": "List", + "text": "Multiple strategies may coexist within a trading system—as many as you wish." + }, + { + "style": "List", + "text": "One active strategy with one open position at any given moment is allowed only." + }, + { + "style": "List", + "text": "Precedence is given by the order in which strategies are defined around the Trading System node. You may change the order, of course!" + }, + { + "style": "Note", + "text": "You are probably asking why? Do these rules sound arbitrary? They are, for good reason!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-004-tutorial-step-but.-but.-why.json b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-004-tutorial-step-but.-but.-why.json new file mode 100644 index 000000000..12e50de59 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-004-tutorial-step-but.-but.-why.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Intro to Trading Systems", + "pageNumber": 4, + "type": "Tutorial Step - But... But... Why?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-system" + }, + "text": "Why would I want to have multiple strategies within a trading system, when only one of them may trade at any point?" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Before answering the burning question, let's take a look at a couple of examples. Take a look at the two strategies within the Weak-hands Buster (WHB v2) trading system!" + }, + { + "style": "Callout", + "text": "Explore the definitions of the Trigger On Event on the Trigger Stage and see if you notice the difference between the two." + }, + { + "style": "Success", + "text": "There's a hint in the name of each strategy!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-005-tutorial-step-steep-vs.-extreme.json b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-005-tutorial-step-steep-vs.-extreme.json new file mode 100644 index 000000000..859b4670d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-005-tutorial-step-steep-vs.-extreme.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Intro to Trading Systems", + "pageNumber": 5, + "type": "Tutorial Step - Steep Vs. Extreme", + "definition": { + "icon": { + "project": "Superalgos", + "name": "condition" + }, + "text": "Did you find the difference? Don't worry if you didn't! There are lots of conditions! I'll give you another hint!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Look again and notice that the first seven conditions of the Trigger On Event are the same on both strategies! The remaining conditions are different, though!" + }, + { + "style": "Success", + "text": "You may drag the Trigger On Event of a strategy and pin it closer to the event of the other strategy for easier comparison!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-006-tutorial-step-a-particular-case..json b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-006-tutorial-step-a-particular-case..json new file mode 100644 index 000000000..1b5b6bbe6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-006-tutorial-step-a-particular-case..json @@ -0,0 +1,22 @@ +{ + "tutorial": "Intro to Trading Systems", + "pageNumber": 6, + "type": "Tutorial Step - A Particular Case...", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-strategy" + }, + "text": "Both strategies are virtually the same in that they share the same base rules for triggering... with minor differences..." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Beyond the seven conditions in common, the Steep strategy has one additional Condition while the Xtreme strategy has three. We won't analyze those differences one by one, although you may if you wish! Let's instead reveal the underlying concept behind the differences:" + }, + { + "style": "Callout", + "text": "Within the market Situation defined by the first seven conditions, the Steep strategy deals with a certain type of price action—price falling on a steep curve—while the Xtreme strategy deals with price falling on an extremely steep curve!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-007-tutorial-step-another-example.json b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-007-tutorial-step-another-example.json new file mode 100644 index 000000000..c1af07e3f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-007-tutorial-step-another-example.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Intro to Trading Systems", + "pageNumber": 7, + "type": "Tutorial Step - Another Example?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-system" + }, + "text": "Let's take a look at another example! This is BB Top Bounce, a Trading System based on the bounce off the upper Bollinger Band trading idea." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Expand the trading system node... Let's see what it may teach us!" + }, + { + "style": "Note", + "text": "I told you! You may have as many strategies as you wish under the same trading system! Well... there your are!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-008-tutorial-step-at-the-count-of-three.json b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-008-tutorial-step-at-the-count-of-three.json new file mode 100644 index 000000000..6435a7328 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-008-tutorial-step-at-the-count-of-three.json @@ -0,0 +1,27 @@ +{ + "tutorial": "Intro to Trading Systems", + "pageNumber": 8, + "type": "Tutorial Step - At The Count of Three!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "condition" + }, + "text": "BB Top Bounce features an interesting approach: it defines the trading idea with three simple conditions." + }, + "paragraphs": [ + { + "style": "Text", + "text": "You are looking at the Trigger On Event of the first strategy. Notice the first three conditions defined..." + }, + { + "style": "Callout", + "text": "Now go and look at the trigger on event of any of the other strategies... What do you see?" + }, + { + "style": "Text", + "text": "Exactly! All strategies feature the same first three conditions on the trigger on event. This shows that all strategies are based on the same trading idea. Now... how are they different?", + "updated": 1610466052450 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-009-tutorial-step-time-frame-analysys.json b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-009-tutorial-step-time-frame-analysys.json new file mode 100644 index 000000000..8c45fcdcc --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-009-tutorial-step-time-frame-analysys.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Intro to Trading Systems", + "pageNumber": 9, + "type": "Tutorial Step - Time Frame Analysys", + "definition": { + "icon": { + "project": "Superalgos", + "name": "time-frame" + }, + "text": "Each strategy specializes in specific market conditions by analyzing the state of the market on different time frames!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Take a look at the name of each strategy... 3H Down, 2H Down, 4H Up..." + }, + { + "style": "Text", + "text": "If you study the conditions that define the trigger on event, you will notice that 3H Down referes to the fact that the particular strategy is triggered when the 3-hour time frame is in a downwtrend." + }, + { + "style": "Note", + "text": "Each of the strategies speciallizes on a certain time frame and trend!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-010-tutorial-step-unpacking-these-lessons.json b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-010-tutorial-step-unpacking-these-lessons.json new file mode 100644 index 000000000..6fb509565 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-010-tutorial-step-unpacking-these-lessons.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Intro to Trading Systems", + "pageNumber": 10, + "type": "Tutorial Step - Unpacking These Lessons", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-system" + }, + "text": "We've covered two examples of trading systems featuring multiple strategies... what can we learn from them?" + }, + "paragraphs": [ + { + "style": "Text", + "text": "In the case of Weak-hands Buster, each strategy represents a particular case of the same trading idea. In the case of BB Top Bounce, each strategy specializes in specific market conditions." + }, + { + "style": "Callout", + "text": "In the next few steps, we will unpack the implications of using multiple strategies within the same trading system and—finally—answer the burning question: why would we want to use such a setup?" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-011-tutorial-step-granularity.json b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-011-tutorial-step-granularity.json new file mode 100644 index 000000000..dd3c5d0c0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-011-tutorial-step-granularity.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Intro to Trading Systems", + "pageNumber": 11, + "type": "Tutorial Step - Granularity!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-system" + }, + "text": "I mentioned the concept of granularity during the Welcome tutorial... remember?" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Granularity is a device the helps in handling complexity. Instead of letting strategies grow into a complex web of rules and definitions, it is always preferable to split complex logic in pieces and deal with smaller units." + }, + { + "style": "Callout", + "text": "Splitting complex logic into multiple strategies helps in keeping strategies simple and understandable. It makes strategies easier to debug and to maintain!" + }, + { + "style": "Text", + "text": "Whenever you can, keep it simple!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-012-tutorial-step-hyper-specialization.json b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-012-tutorial-step-hyper-specialization.json new file mode 100644 index 000000000..2eb03cb59 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-012-tutorial-step-hyper-specialization.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Intro to Trading Systems", + "pageNumber": 12, + "type": "Tutorial Step - Hyper Specialization!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-system" + }, + "text": "Specialization is a very interesting concept that may lead to designing more efficient trading systems!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "It is a well-known fact that most strategies perform better on certain market conditions." + }, + { + "style": "Callout", + "text": "Like with BB Top Bounce, a single trading system may feature multiple strategies, each specializing in specific trends, volatility ranges, or any other market parameter." + }, + { + "style": "Success", + "text": "Instead of designing a strategy to evaluate a range of market conditions, keep them focused!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-013-tutorial-step-fine-grain-management.json b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-013-tutorial-step-fine-grain-management.json new file mode 100644 index 000000000..3549c7c7b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-013-tutorial-step-fine-grain-management.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Intro to Trading Systems", + "pageNumber": 13, + "type": "Tutorial Step - Fine-Grain Management!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-system" + }, + "text": "When complex trading logic is split into multiple strategies, you gain the opportunity to manage the resulting trades differently!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "We haven't yet got into how strategies are defined, but you do know that Superalgos allows managing the take profit and stop loss targets..." + }, + { + "style": "Callout", + "text": "Each strategy in a trading system may have its own logic for managing positions!" + }, + { + "style": "Text", + "text": "If you handle multiple variations of the same logic for example, to take a position, then you will likely need to handle multiple variations for managing the position. It is easier and cleaner to do both on separate strategies." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-014-tutorial-step-going-long-short.json b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-014-tutorial-step-going-long-short.json new file mode 100644 index 000000000..eaec64ab2 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-014-tutorial-step-going-long-short.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Intro to Trading Systems", + "pageNumber": 14, + "type": "Tutorial Step - Going Long & Short", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-system" + }, + "text": "We covered the three main reasons why it's a good idea to split complex logic into more than one strategy..." + }, + "paragraphs": [ + { + "style": "Text", + "text": "We also covered a couple of examples of trading systems doing just that. There is another example that comes to mind:" + }, + { + "style": "List", + "text": "Going long and short: designing a strategy that goes both long and short is probably not a good idea. Split the logic and build one strategy for going long and another for going short!" + }, + { + "style": "Success", + "text": "Remember the KISS principle!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-015-tutorial-step-ready-for-the-next-one.json b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-015-tutorial-step-ready-for-the-next-one.json new file mode 100644 index 000000000..e6634be95 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/intro-to-trading-systems-015-tutorial-step-ready-for-the-next-one.json @@ -0,0 +1,23 @@ +{ + "tutorial": "Intro to Trading Systems", + "pageNumber": 15, + "type": "Tutorial Step - Ready For The Next One?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "tutorial" + }, + "text": "Congratulations! You now know as much about trading systems as I do! Coming next, Defining a Trading Idea." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "The next tutorial in the series is about framing trading ideas into a formal hypothesis so that the trading idea may be tested. Testing a trading idea is the first step in the process of building a Trading Strategy!" + }, + { + "style": "Success", + "text": "Click Next to finish this tutorial, and select Play in the next one when you are ready!", + "updated": 1610466322417 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-001-tutorial-the-other-stages.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-001-tutorial-the-other-stages.json new file mode 100644 index 000000000..6d4b8e21a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-001-tutorial-the-other-stages.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 1, + "type": "Tutorial - The Other Stages", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-strategy" + }, + "text": "We are a few steps away from being able to fully test the first trading idea! You need to learn a thing or two first!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "In the third tutorial in the series, we covered the definitions and nuances of the Trigger Stage." + }, + { + "style": "Callout", + "text": "In this tutorial, we will complete the basic definitions of the rest of the stages so that we may finally test our hypothesis!" + }, + { + "style": "Note", + "text": "I highly recommend you do the first three tutorials in the series before doing this one! The story is carried from one to the next!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-002-tutorial-step-taking-a-position.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-002-tutorial-step-taking-a-position.json new file mode 100644 index 000000000..408ed4c5f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-002-tutorial-step-taking-a-position.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 2, + "type": "Tutorial Step - Taking a Position", + "definition": { + "icon": { + "project": "Superalgos", + "name": "open-stage" + }, + "text": "As soon as the Take Position Event validates true, both the open stage and the manage stage become active." + }, + "paragraphs": [ + { + "style": "List", + "text": "The Open Stage is activated to deal with order execution in entering the position." + }, + { + "style": "List", + "text": "The Manage Stage is activated to monitor stop loss and take profit targets. It is possible that targets are hit even before actually executing the orders to take the position, and that is the reason why the stage must be activated immediately." + }, + { + "style": "Success", + "text": "Read these first few paragraphs about the open stage!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-003-tutorial-step-initial-targets.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-003-tutorial-step-initial-targets.json new file mode 100644 index 000000000..87ababb26 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-003-tutorial-step-initial-targets.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 3, + "type": "Tutorial Step - Initial Targets....", + "definition": { + "icon": { + "project": "Superalgos", + "name": "initial-targets" + }, + "text": "I just brought you to the Initial Targets node in the open stage. Before we start, let's make a quick note for clarity's sake!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "You're not in the trading system you set up during the previous tutorial! It's a new one!" + }, + { + "style": "Note", + "text": "I set up a new trading system and named it BB Breakdown 2 so that I have better control of your experience during this tutorial. Notice that I recreated the stages you deleted in the previous tutorials. All I had to do was select Add Missing Stages on the trading strategy menu!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-004-tutorial-step-look-around.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-004-tutorial-step-look-around.json new file mode 100644 index 000000000..8df865104 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-004-tutorial-step-look-around.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 4, + "type": "Tutorial Step - Look Around!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "initial-targets" + }, + "text": "Take a look at the nodes under Initial Targets. Do you have an intuition as to what they may be about?" + }, + "paragraphs": [ + { + "style": "Text", + "text": "These are the first few basic definitions required:" + }, + { + "style": "List", + "text": "Target Rate is a reference rate. Think of it as a ball-park rate at which you wish to enter the position. There is a lot more depth to this concept, but the simplification serves us well at this point." + }, + { + "style": "List", + "text": "The Target Size In Base Asset and it's brother node, target size in quoted asset, is the definition of the maximum size the position should achieve." + }, + { + "style": "Note", + "text": "The final rates and size is determined later on, in the definitions of the Execution Algorithm." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-005-tutorial-step-the-target-rate.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-005-tutorial-step-the-target-rate.json new file mode 100644 index 000000000..60724fb81 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-005-tutorial-step-the-target-rate.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 5, + "type": "Tutorial Step - The Target Rate", + "definition": { + "icon": { + "project": "Superalgos", + "name": "target-rate" + }, + "text": "As I said earlier, the Target Rate is a concept that entails some depth, but we'll keep it simple for the time being!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "The target rate serves several purposes. At this point, we'll place the focus on one of them:" + }, + { + "style": "Callout", + "text": "We will use the target rate as a reference rate." + }, + { + "style": "Text", + "text": "Later on, we will set up a market order to enter the position. However, market orders—by definition—do not specify a rate, as they are filled at the current market price. The system will use the reference rate we define to mark the take position rate in simulations, and will use it as a starting point for internal calculations too." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-006-tutorial-step-how-do-we-go-about-it.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-006-tutorial-step-how-do-we-go-about-it.json new file mode 100644 index 000000000..0fe471c08 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-006-tutorial-step-how-do-we-go-about-it.json @@ -0,0 +1,31 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 6, + "type": "Tutorial Step - How Do We Go About It?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "target-rate" + }, + "text": "Remember we are taking the position at the close of the 1H candle, whenever the take position event validates true." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "What would be a reasonable rate, then?" + }, + { + "style": "Text", + "text": "Well... a good choice would be the rate at the close of the candle, right? Our target rate formula would then be:", + "updated": 1610472351878 + }, + { + "style": "Javascript", + "text": "chart.at01hs.candle.close" + }, + { + "style": "Success", + "text": "Go ahead and edit the formula with the above syntax!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-007-tutorial-step-the-target-size.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-007-tutorial-step-the-target-size.json new file mode 100644 index 000000000..3eba5fa78 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-007-tutorial-step-the-target-size.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 7, + "type": "Tutorial Step - The Target Size", + "definition": { + "icon": { + "project": "Superalgos", + "name": "target-size-in-base-asset" + }, + "text": "I mentioned earlier that—like when setting up a manual order at the exchange—you may define the size in either of the assets!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "What I didn't mention is that you can't have two definitions! To avoid ambiguities, only one is allowed!" + }, + { + "style": "Callout", + "text": "We will define the size in the base asset, so delete the Target Size In Quoted Asset node!" + }, + { + "style": "Text", + "text": "We will keep this one simple too. For the time being, we will use the whole balance available to the session." + }, + { + "style": "Success", + "text": "How do we do that? You'll see!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-008-tutorial-step-the-whole-balance.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-008-tutorial-step-the-whole-balance.json new file mode 100644 index 000000000..e5abe054f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-008-tutorial-step-the-whole-balance.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 8, + "type": "Tutorial Step - The Whole Balance?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "balance" + }, + "text": "We haven't discussed position size so far, as the intention of the testing of the trading idea is measuring hit ratio only." + }, + "paragraphs": [ + { + "style": "Text", + "text": "For the same reason, we are not going to get into further considerations at this point. We'll save a few thoughts in that regard for when we define the execution algorithm and orders.

I just brought you to the definition of the Trading Parameters of the trading session so that you may check how the initialBalance is defined!" + }, + { + "style": "Callout", + "text": "Check the Session Base Asset and the Session Quoted Asset configuration!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-009-tutorial-step-initial-balance-vs.-balance.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-009-tutorial-step-initial-balance-vs.-balance.json new file mode 100644 index 000000000..1a68ef01b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-009-tutorial-step-initial-balance-vs.-balance.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 9, + "type": "Tutorial Step - Initial Balance vs. Balance", + "definition": { + "icon": { + "project": "Superalgos", + "name": "balance" + }, + "text": "As you can see, the initialBalance is defined in the Session Base Asset. This is just a matter of choice!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "We defined it in the base asset because it makes sense for our trading idea, which intends to sell some bitcoin we hold to rebuy it at a cheaper price." + }, + { + "style": "Callout", + "text": "But we can't use the value of the initialBalance for our target size! Can you see why?" + }, + { + "style": "Text", + "text": "The target size we define is valid for each position the strategy will take. If it was the initialBalance and we lost some bitcoin in the first position, we would get an error in the second position, as—by then—we wouldn't have that much bitcoin any more!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-010-tutorial-step-its-the-balance.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-010-tutorial-step-its-the-balance.json new file mode 100644 index 000000000..306c6bb55 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-010-tutorial-step-its-the-balance.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 10, + "type": "Tutorial Step - It's The Balance!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "balance" + }, + "text": "What we need is the Balance! What balance? Take a minute and see if you can finish tying up the loose ends of the reasoning!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "We defined the initialBalance in the base asset and will define the target size in the base asset..." + }, + { + "style": "Callout", + "text": "We need the current balance of the base asset! Can you find the node in the Trading Engine that holds precisely that value?" + }, + { + "style": "Success", + "text": "Current (we need the balance at the moment of evaluation!) > Episode (because it's the balance kept for the whole session) > ... what else?" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-011-tutorial-step-there-it-is.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-011-tutorial-step-there-it-is.json new file mode 100644 index 000000000..e93317f5e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-011-tutorial-step-there-it-is.json @@ -0,0 +1,34 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 11, + "type": "Tutorial Step - There It Is!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "balance" + }, + "text": "I hope you found it on your own, but don't worry if you didn't! We'll go through the whole reasoning once again!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "The goal is that you learn how to find the data you need in the confines of the Trading Engine, which is structured logically... Make sure you read the tooltips!" + }, + { + "style": "List", + "text": "Current because we need the balance at the moment of evaluation!" + }, + { + "style": "List", + "text": "Episode because is the running balance kept along the whole trading session!" + }, + { + "style": "List", + "text": "Episode Base Asset because it's consistent with the rest of our definitions!" + }, + { + "style": "List", + "text": "Balance because it's what we wanted!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-012-tutorial-step-copy-the-nodes-path.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-012-tutorial-step-copy-the-nodes-path.json new file mode 100644 index 000000000..4fb9c763a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-012-tutorial-step-copy-the-nodes-path.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 12, + "type": "Tutorial Step - Copy The Node's Path!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "copy-path" + }, + "text": "Do you remember how to extract the address of the node so that we may reference it from our formula?" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Open the node's menu and click on the Copy Node Path button!" + }, + { + "style": "Text", + "text": "The following string should end up in your clipboard:
tradingEngine.current.episode.
episodeBaseAsset.balance.value" + }, + { + "style": "Note", + "text": "I introduced a line break so that the string fits the tutorial. Make sure the line is not broken in your formula as it would be an invalid path!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-013-tutorial-step-circling-back.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-013-tutorial-step-circling-back.json new file mode 100644 index 000000000..a55eee3dc --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-013-tutorial-step-circling-back.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 13, + "type": "Tutorial Step - Circling Back!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "formula" + }, + "text": "Awesome! We have the path of the appropriate Balance node and we now may use it in our formula!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Paste the string you copied in the formula of the Target Size In Base Asset node! That's it!" + }, + { + "style": "Note", + "text": "Notice that using the balance for the target size is an arbitrary decision! We could have used anything else! A percentage of the balance, a fixed number, a percentage of the initial balance... anything! Or, actually, whatever makes sense for your strategy!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-014-tutorial-step-time-to-talk-execution.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-014-tutorial-step-time-to-talk-execution.json new file mode 100644 index 000000000..eb92c0b4d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-014-tutorial-step-time-to-talk-execution.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 14, + "type": "Tutorial Step - Time to Talk Execution!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "open-execution" + }, + "text": "We finished the definition of the rate and size targets. Let's define how we are going to take the position in terms of execution!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "We are in the Open Execution section of the open stage! Go exploring the Execution Algorithm and the Market Sell Order I created!" + }, + { + "style": "Note", + "text": "I created the execution algo and the market order ahead of time so that I can reference them easily and take you to the right nodes during the tutorial. Both are in a freshly-created state, right as they'd be had you created them right now!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-015-tutorial-step-lets-do-some-reading.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-015-tutorial-step-lets-do-some-reading.json new file mode 100644 index 000000000..4f78a8bb1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-015-tutorial-step-lets-do-some-reading.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 15, + "type": "Tutorial Step - Let's Do Some Reading!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "open-execution" + }, + "text": "Read these first few paragraphs about the Open Execution so that we may then start working on the definitions." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "The point to take home is that Superalgos proposes granular definitions of orders set up within execution algorithms, which in turn are built into strategies, as the way to program both simple and complex execution logic." + }, + { + "style": "Success", + "text": "We'll do some more reading before we bring all this down to Earth!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-016-tutorial-step-execution-algorithm.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-016-tutorial-step-execution-algorithm.json new file mode 100644 index 000000000..35e721ad4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-016-tutorial-step-execution-algorithm.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 16, + "type": "Tutorial Step - Execution Algorithm", + "definition": { + "icon": { + "project": "Superalgos", + "name": "execution-algorithm" + }, + "text": "Take a look at this section about the Execution Algorithm! Click the learn more... link and read the Configuration section too!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "For our test—and for most simple strategies—one execution algorithm is all we need." + }, + { + "style": "Callout", + "text": "Once you finish reading, take a look at the configuration of the algorithm!" + }, + { + "style": "Text", + "text": "Notice that the algo is assigned—by default—100% of the stage's size." + }, + { + "style": "Success", + "text": "This is the first instance in which the target size we defined earlier comes into the scene!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-017-tutorial-step-market-sell-orders.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-017-tutorial-step-market-sell-orders.json new file mode 100644 index 000000000..9ce59de1d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-017-tutorial-step-market-sell-orders.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 17, + "type": "Tutorial Step - Market Sell Orders", + "definition": { + "icon": { + "project": "Superalgos", + "name": "market-sell-order" + }, + "text": "We'll use a single execution algorithm handling 100% of the size we defined earlier! Time to learn a bit about orders!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "There is quite a bit of depth on the matter of how orders work! We'll get into the details on a tutorial focusing on the nuances of order execution. But for the time being, we'll keep it simple:" + }, + { + "style": "Callout", + "text": "A market sell order is an instruction sent to the exchange to sell the base asset, for immediate execution at current market prices." + }, + { + "style": "Success", + "text": "Check the configuration of the sell order!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-018-tutorial-step-100-of-100-=-.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-018-tutorial-step-100-of-100-=-.json new file mode 100644 index 000000000..7fb4ccf2e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-018-tutorial-step-100-of-100-=-.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 18, + "type": "Tutorial Step - 100% of 100% = ?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "market-sell-order" + }, + "text": "As you can see, the percentageOfAlgorithmSize is also 100% by default, and that is what we'll use for the test." + }, + "paragraphs": [ + { + "style": "Text", + "text": "That is, we'll set up a single order to enter the position. The order will handle 100% of what is assigned to the algorithm, which in turn handles 100% of what is assigned to the stage. And we assigned the stage 100% of the balance! In other words, we'll place one market sell order with the size of the Balance to enter each position." + }, + { + "style": "Success", + "text": "I told you we'd keep it simple! This is the simplest possible order execution arrangement and, as you can see, you just need to create the algo and the order, and use the default settings!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-019-tutorial-step-create-order-event.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-019-tutorial-step-create-order-event.json new file mode 100644 index 000000000..2893a996a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-019-tutorial-step-create-order-event.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 19, + "type": "Tutorial Step - Create Order Event", + "definition": { + "icon": { + "project": "Superalgos", + "name": "create-order-event" + }, + "text": "This event is self-explanatory and works like the rest of the events you're already familiar with, with situations and conditions." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Although the decision to take a position is made at the Trigger Stage, the Create Order Event offers granular control over each order, so that you may decide the precise moment or market situation in which to place it." + }, + { + "style": "Callout", + "text": "In our case, we'll place the order immediately after the Take Position Event is triggered, so go ahead and type true on the JavaScript Code node of the one condition created by default with the order. This makes the condition return true as soon as it's evaluated." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-020-tutorial-step-simulated-exchange-events.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-020-tutorial-step-simulated-exchange-events.json new file mode 100644 index 000000000..35ef054b0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-020-tutorial-step-simulated-exchange-events.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 20, + "type": "Tutorial Step - Simulated Exchange Events", + "definition": { + "icon": { + "project": "Superalgos", + "name": "simulated-exchange-events" + }, + "text": "This section of the definitions offers another example of granular control at the level of the order, in this case affecting how orders are simulated!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "These definitions—if used—override the Slippage and Fee Structure Trading Parameters at the level of the trading session, which affect all orders equally. Notice there is a node that may even define how to simulate the filling of orders! If there is no definition of how to simulate the individual order, the session-level parameters remain relevant." + }, + { + "style": "Callout", + "text": "For the time being, we are not going to use these granular-level simulation parameters, so go ahead and delete the simulated exchange events node!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-021-tutorial-step-close-stage-event.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-021-tutorial-step-close-stage-event.json new file mode 100644 index 000000000..fe82b303a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-021-tutorial-step-close-stage-event.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 21, + "type": "Tutorial Step - Close Stage Event", + "definition": { + "icon": { + "project": "Superalgos", + "name": "close-stage-event" + }, + "text": "We are not going to use the Close Stage Event either, so go ahead and delete it too!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "The open stage closes automatically once the target size is filled, or when the stop loss or take profit targets are hit. The former is what we expect to happen in our case, as we are using a single market order to take the position, and it is placed as soon as the take position event is triggered. It is safe to assume that the order will get filled immediately." + }, + { + "style": "Callout", + "text": "The close stage event offers—again—an additional level of control! For example, when the position is taken with multiple orders, you may want to stop placing orders under certain circumstances." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-022-tutorial-step-back-to-the-order.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-022-tutorial-step-back-to-the-order.json new file mode 100644 index 000000000..f223add1a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-022-tutorial-step-back-to-the-order.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 22, + "type": "Tutorial Step - Back to the Order", + "definition": { + "icon": { + "project": "Superalgos", + "name": "market-order" + }, + "text": "There's one more thing we need to take care of before we move on to the definitions in the manage stage!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "The Trading Bot keeps track of each order at all times and saves the corresponding information in a specific structure of nodes in the Trading Engine." + }, + { + "style": "Callout", + "text": "Expand the Market Sell Order #1 node and take a look inside." + }, + { + "style": "Note", + "text": "Because each order has a life of it's own, the bot stores information about each order in separate structures of nodes, one per order." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-023-tutorial-step-heres-the-thing.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-023-tutorial-step-heres-the-thing.json new file mode 100644 index 000000000..b924bed88 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-023-tutorial-step-heres-the-thing.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 23, + "type": "Tutorial Step - Here's The Thing!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "market-order" + }, + "text": "The system doesn't know which arrangement of execution algorithms and orders you are going to create!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "For that reason, it doesn't know what kind of data structure you will need at the trading engine to keep track of all your orders!" + }, + { + "style": "Callout", + "text": "For the time being, there is a manual process that is required to tell Superalgos what orders you need to keep track of, and where the information should be stored! And that is what we need to do next!" + }, + { + "style": "Text", + "text": "Don't worry, it's no big deal! As it's often the case, it takes longer to explain than to do it!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-024-tutorial-step-its-all-about-references.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-024-tutorial-step-its-all-about-references.json new file mode 100644 index 000000000..b158d2954 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-024-tutorial-step-its-all-about-references.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 24, + "type": "Tutorial Step - It's All About References!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "market-order" + }, + "text": "Do you know what references are and how to establish them? If not, read this page in the docs!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "References are a crucial concept in Superalgos, as they relate information across nodes and hierarchies!" + }, + { + "style": "Callout", + "text": "You must establish a reference from the Market Sell Order node in the trading system to this Market Sell Order #1 Market Order node in the trading engine hierarchy! Go ahead! Do it!" + }, + { + "style": "Success", + "text": "I'll give you a couple of tips on the next step if you are not sure how to go about this!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-025-tutorial-step-the-tricks-of-the-trade.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-025-tutorial-step-the-tricks-of-the-trade.json new file mode 100644 index 000000000..1813185b5 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-025-tutorial-step-the-tricks-of-the-trade.json @@ -0,0 +1,34 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 25, + "type": "Tutorial Step - The Tricks of the Trade", + "definition": { + "icon": { + "project": "Superalgos", + "name": "mouse-pointer" + }, + "text": "Establishing a reference is kid's play! The only 'challenge' here is that the node to be referenced is far away from the originator." + }, + "paragraphs": [ + { + "style": "Text", + "text": "These UI tricks may make your life easier:" + }, + { + "style": "List", + "text": "Use the design space map as many times as required to find your way from node to node." + }, + { + "style": "List", + "text": "Pin the node you are going to move across the design space, so that you may drop it at any point to check the design space map for directions." + }, + { + "style": "List", + "text": "Use Ctrl / Command + arrow keys to drag the node across the screen after clicking on it with the mouse. Keep keys pressed and the node flies!" + }, + { + "style": "List", + "text": "Remove the pin once the reference is established so that the node goes back to its place." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-026-tutorial-step-position-management.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-026-tutorial-step-position-management.json new file mode 100644 index 000000000..3457c1a25 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-026-tutorial-step-position-management.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 26, + "type": "Tutorial Step - Position Management", + "definition": { + "icon": { + "project": "Superalgos", + "name": "manage-stage" + }, + "text": "We finished the definitions required to take a position and we are ready to define the initial stop loss and take profit targets!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Let's remember what we had decided our targets would be while developing the idea." + }, + { + "style": "List", + "text": "For downtrends: we will set 3% stop loss and 10% take profit targets." + }, + { + "style": "Callout", + "text": "Collapse the open stage node as we are not going to touch it for a while.

Now expand the Manage Stage node and take a look inside!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-027-tutorial-step-phase-1.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-027-tutorial-step-phase-1.json new file mode 100644 index 000000000..6adf3b771 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-027-tutorial-step-phase-1.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 27, + "type": "Tutorial Step - Phase 1", + "definition": { + "icon": { + "project": "Superalgos", + "name": "phase-0" + }, + "text": "There is enormous depth to the concept of managing positions and Superalgos offers robust and flexible tools for that matter!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "However, we don't need to get into the details at this point, as—for the sake of our test—all we need to do is set up initial targets." + }, + { + "style": "Callout", + "text": "Initial targets are set on Phase #1" + }, + { + "style": "Success", + "text": "Later on, you will learn that you may manage your positions in phases, each with its formulas and events to switch back and forth to other phases." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-028-tutorial-step-managed-stop-loss.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-028-tutorial-step-managed-stop-loss.json new file mode 100644 index 000000000..f229394be --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-028-tutorial-step-managed-stop-loss.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 28, + "type": "Tutorial Step - Managed Stop Loss", + "definition": { + "icon": { + "project": "Superalgos", + "name": "stop-loss" + }, + "text": "Let's prepare the syntax to use for the Phase #1 formula of the Managed Stop Loss!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "We want to set a stop loss target 3% above the rate at which we entered the position. How do we do that?" + }, + { + "style": "Callout", + "text": "Go to the Trading Engine and try to find the node that holds the information of the rate at which the position is entered." + }, + { + "style": "Success", + "text": "Remember the logic to navigate the data structure! First, determine the context in which the information exists!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-029-tutorial-step-entry-target-rate.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-029-tutorial-step-entry-target-rate.json new file mode 100644 index 000000000..6748b40ed --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-029-tutorial-step-entry-target-rate.json @@ -0,0 +1,33 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 29, + "type": "Tutorial Step - Entry Target Rate", + "definition": { + "icon": { + "project": "Superalgos", + "name": "entry-target-rate" + }, + "text": "We are in the Current > Position section of the Trading Engine and, to your left, the Entry Target Rate node!", + "updated": 1610472841926 + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Copy the node path from the menu!" + }, + { + "style": "Text", + "text": "Now, let's add 3% to the node's value:", + "updated": 1610472749300 + }, + { + "style": "Javascript", + "text": "tradingEngine.current.position.entryTargetRate.value * 1.03" + }, + { + "style": "Success", + "text": "Go ahead and use the above for the Phase #1 stop loss formula!", + "updated": 1610472786651 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-030-tutorial-step-managed-take-profit.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-030-tutorial-step-managed-take-profit.json new file mode 100644 index 000000000..9db5c4f8d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-030-tutorial-step-managed-take-profit.json @@ -0,0 +1,33 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 30, + "type": "Tutorial Step - Managed Take Profit", + "definition": { + "icon": { + "project": "Superalgos", + "name": "managed-take-profit" + }, + "text": "Now that we have a formula for a fixed stop loss target, it shouldn't be hard to come up with the formula for the take profit target!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "We just need to subtract 10% to the entry target rate node's value:", + "updated": 1610472925103 + }, + { + "style": "Javascript", + "text": "tradingEngine.current.position.entryTargetRate.value * 0.9" + }, + { + "style": "Callout", + "text": "Use is for the Phase #1 take profit formula!", + "updated": 1610472948413 + }, + { + "style": "Success", + "text": "We are done with the Manage Stage!", + "updated": 1610472960123 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-031-tutorial-step-closing-a-position.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-031-tutorial-step-closing-a-position.json new file mode 100644 index 000000000..ee72eb1a3 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-031-tutorial-step-closing-a-position.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 31, + "type": "Tutorial Step - Closing a Position", + "definition": { + "icon": { + "project": "Superalgos", + "name": "close-stage" + }, + "text": "Let's do some quick reading about the Close Stage! Take a look at this page!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "The close stage features similar workings as the open stage, provides the same level of flexibility to define execution, and requires the same kind of definitions." + }, + { + "style": "Callout", + "text": "Take a few minutes to think about how to close this position. Think about what our target rate and target size should be." + }, + { + "style": "Note", + "text": "Also, think about what type of order we should use!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-032-tutorial-step-initial-targets.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-032-tutorial-step-initial-targets.json new file mode 100644 index 000000000..611cca0be --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-032-tutorial-step-initial-targets.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 32, + "type": "Tutorial Step - Initial Targets", + "definition": { + "icon": { + "project": "Superalgos", + "name": "initial-targets" + }, + "text": "For the target rate, we can use the same principle as earlier: chart.at01hs.candle.close Use it for the formula!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "For the target size, we should consider the following:" + }, + { + "style": "List", + "text": " We wish to use all the USDT we obtained upon entering the position." + }, + { + "style": "List", + "text": " The exchange charges fees by subtracting from the asset we obtain on any given transaction." + }, + { + "style": "Callout", + "text": "Consider the above and pay a visit to the Trading Engine. Find the nodes that store the information we need and try to come up with a formula for the target size!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-033-tutorial-step-how-to-find-stuff.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-033-tutorial-step-how-to-find-stuff.json new file mode 100644 index 000000000..23a6d2bff --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-033-tutorial-step-how-to-find-stuff.json @@ -0,0 +1,34 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 33, + "type": "Tutorial Step - How to Find Stuff", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-engine" + }, + "text": "Let me walk you through the reasoning to find the required information on the Trading Engine" + }, + "paragraphs": [ + { + "style": "Text", + "text": "We are in the Current > Strategy Open Stage > Stage Quoted Asset section. This is why:" + }, + { + "style": "List", + "text": "Current : because it's all about the current position." + }, + { + "style": "List", + "text": "Strategy Open Stage : because the transaction to enter the position happened during this stage. We want to know how much USDT we got!" + }, + { + "style": "List", + "text": "Stage Quoted Asset : because we sold the base asset and obtained the quoted asset, and it's the quoted asset we want to get rid of during the close stage! The question is how much of it!" + }, + { + "style": "Text", + "text": "Any ideas for the formula?" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-034-tutorial-step-and-the-winner-is..json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-034-tutorial-step-and-the-winner-is..json new file mode 100644 index 000000000..86cf18ddb --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-034-tutorial-step-and-the-winner-is..json @@ -0,0 +1,30 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 34, + "type": "Tutorial Step - And the Winner Is...", + "definition": { + "icon": { + "project": "Superalgos", + "name": "target-size" + }, + "text": "The answer is Size Filled minus Fees Paid! I'll explain why none of the other nodes fit the bill!" + }, + "paragraphs": [ + { + "style": "List", + "text": "Target Size: no, because this is just the target we defined!" + }, + { + "style": "List", + "text": "Size Placed: closer, but no, because the order won't necessarily fill for the exact amount placed, due to decimal roundings or other reasons!" + }, + { + "style": "List", + "text": "Size Filled: yes! But remember the exchange takes its cut too, so you must subtract the fees!" + }, + { + "style": "Success", + "text": "Can you produce the correct syntax for the formula? Remember you can copy the paths of the nodes holding the data we need!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-035-tutorial-step-target-size-in-quoted-asset.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-035-tutorial-step-target-size-in-quoted-asset.json new file mode 100644 index 000000000..f1aa892a4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-035-tutorial-step-target-size-in-quoted-asset.json @@ -0,0 +1,32 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 35, + "type": "Tutorial Step - Target Size in Quoted Asset", + "definition": { + "icon": { + "project": "Superalgos", + "name": "target-size-in-quoted-asset" + }, + "text": "I didn't mention this earlier: we will define the target size in the quoted asset, not the base asset as we did for the open stage!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "It's natural we do so, as that is the asset we now have!" + }, + { + "style": "Callout", + "text": "Delete the Target Size In Base Asset node!" + }, + { + "style": "Text", + "text": "I built this for the target size formula copying paths... Use it, making sure you don't introduce line breaks on the nodes' paths!", + "updated": 1610473186038 + }, + { + "style": "Javascript", + "text": "tradingEngine.current.strategyOpenStage.stageQuotedAsset.sizeFilled.value - \ntradingEngine.current.strategyOpenStage.stageQuotedAsset.feesPaid.value", + "updated": 1610473148011 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-036-tutorial-step-market-buy-order.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-036-tutorial-step-market-buy-order.json new file mode 100644 index 000000000..a963209c8 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-036-tutorial-step-market-buy-order.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 36, + "type": "Tutorial Step - Market Buy Order", + "definition": { + "icon": { + "project": "Superalgos", + "name": "market-buy-order" + }, + "text": "Just like for the open stage, I created the execution algorithm and the market buy order..." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Let's take care of a couple of things before we move on:" + }, + { + "style": "List", + "text": "Delete the Simulated Exchange Events node! We are not going to use it for the time being..." + }, + { + "style": "List", + "text": "Enter true in the JavaScript Code node of the Create Order Event condition." + }, + { + "style": "Success", + "text": "Now you have to create the reference from the Market Buy Order node to the Market Order in the trading engine. I will show you which one in the next step!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-037-tutorial-step-this-is-it.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-037-tutorial-step-this-is-it.json new file mode 100644 index 000000000..8f061ced1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-037-tutorial-step-this-is-it.json @@ -0,0 +1,34 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 37, + "type": "Tutorial Step - This is it!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "market-order" + }, + "text": "This is the node you have to create the reference to: Market Buy Order #1." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Remember the tricks for the trip!" + }, + { + "style": "List", + "text": "Use the design space map as many times as required to find your way from node to node." + }, + { + "style": "List", + "text": "Pin the node you are going to move across the design space, so that you may drop it at any point to check the design space map for directions." + }, + { + "style": "List", + "text": "Use Ctrl / Command + arrow keys to drag the node across the screen after clicking on it with the mouse. Keep keys pressed and the node flies!" + }, + { + "style": "List", + "text": "Remove the pin once the reference is established so that the node goes back to its place." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-038-tutorial-step-were-almost-done.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-038-tutorial-step-were-almost-done.json new file mode 100644 index 000000000..a1561aa0d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-038-tutorial-step-were-almost-done.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 38, + "type": "Tutorial Step - We're almost done!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "close-stage-event" + }, + "text": "We're virtually ready to run a new backtest, this time, with complete definitions in all stages!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Before we do that, let's delete the Close Stage Event as we are not going to use it either!" + }, + { + "style": "Success", + "text": "That's it! It wasn't hard at all right? This basic set up is OK for testing simple trading ideas. In the next few tutorials, we're going to go through more elaborate management and execution setups!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-039-tutorial-step-first-backtest.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-039-tutorial-step-first-backtest.json new file mode 100644 index 000000000..14fa1aa8c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-039-tutorial-step-first-backtest.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 39, + "type": "Tutorial Step - First Backtest!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "backtesting-session" + }, + "text": "Now that we have the basic definitions in all stages, we may do a first backtest!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "We'll be using the same parameters we ended up with at the end of the previous tutorial. Feel free to go and check!" + }, + { + "style": "Callout", + "text": "Start the task for BB Breakdown 2 and start the corresponding backtesting session too!" + }, + { + "style": "Note", + "text": "I'm assuming you have the data we mined during the previous tutorial! If you don't this is unlikely to work!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-040-tutorial-step-ready-to-rock..json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-040-tutorial-step-ready-to-rock..json new file mode 100644 index 000000000..a574cb08d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-040-tutorial-step-ready-to-rock..json @@ -0,0 +1,35 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 40, + "type": "Tutorial Step - Ready to Rock....?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-strategy" + }, + "text": "We are on a new chart! Let's set it up so that we may see the results of the backtest!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Make sure the following layers are turned on in each of the layer managers:" + }, + { + "style": "List", + "text": "Masters Data: Candles and Bollinger Bands." + }, + { + "style": "List", + "text": "Simulation Objects:Strategies, Market Buy Orders,Market Sell Orders,Position Base Asset,Stop Loss, and Take Profit.", + "updated": 1610473284506 + }, + { + "style": "List", + "text": "Trading System: Trading System Errors and Trading System Warnings." + }, + { + "style": "Success", + "text": "The next step shows what you should see!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-040-tutorial-step-ready-to-rock.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-040-tutorial-step-ready-to-rock.json new file mode 100644 index 000000000..e2c15da0e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-040-tutorial-step-ready-to-rock.json @@ -0,0 +1,34 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 40, + "type": "Tutorial Step - Ready to Rock....?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-strategy" + }, + "text": "We are on a new chart! Let's set it up so that we may see the results of the backtest!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Make sure the following layers are turned on in each of the layer managers:" + }, + { + "style": "List", + "text": "Masters Data: Candles and Bollinger Bands." + }, + { + "style": "List", + "text": "Simulation Objects: Strategies, Market Buy Orders, Market Sell Orders, Position Base Asset, Stop Loss, and Take Profit." + }, + { + "style": "List", + "text": "Trading System: Trading System Errors and Trading System Warnings." + }, + { + "style": "Success", + "text": "The next step shows what you should see!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-041-tutorial-step-trading-systems-position.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-041-tutorial-step-trading-systems-position.json new file mode 100644 index 000000000..d4fc2e60d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-041-tutorial-step-trading-systems-position.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 41, + "type": "Tutorial Step - Trading Systems Position", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/trading-systems-position.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-042-tutorial-step-the-first-position.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-042-tutorial-step-the-first-position.json new file mode 100644 index 000000000..451de8ee0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-042-tutorial-step-the-first-position.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 42, + "type": "Tutorial Step - The First Position", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer" + }, + "text": "Remember the Feb 28th case we analyzed in the previous tutorial? This is it! This is the position we got from the rules defined!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Take a moment to study what the simulation object layers show!" + }, + { + "style": "Callout", + "text": "Let's turn on a few more Simulation Object layers: Trigger, Open, Manage, and Close Stages!" + }, + { + "style": "Text", + "text": "We can now see the four stages in action. Take a minute to read and interpret the graphics. Try to follow the timeline implicit in the drawings of the stages. See when and why each stage opens and closes..." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-043-tutorial-step-chronology-of-a-position.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-043-tutorial-step-chronology-of-a-position.json new file mode 100644 index 000000000..3a3ef4d1e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-043-tutorial-step-chronology-of-a-position.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 43, + "type": "Tutorial Step - Chronology of a Position", + "definition": { + "icon": { + "project": "Superalgos", + "name": "position" + }, + "text": "Let's take a few minutes to dissect this position, looking particularly into what makes each stage tick..." + }, + "paragraphs": [ + { + "style": "List", + "text": "Trigger Stage: Opens on Feb 17th at 0 hs because the 24H Bollinger SubChannel turned Down and not Side. Go check if that is the case! The stage closes on Feb 28th at 9 hs, after the second breakdown triggers the take position event." + }, + { + "style": "List", + "text": "Open Stage: Opens when the trigger stage closes, and closes one hour later (!?) after the market sell order is placed." + }, + { + "style": "Note", + "text": "One hour later? Yes! Remember we are running the simulation on the 1H time frame! We'll discuss this matter in depth later on!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-044-tutorial-step-manage-and-close.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-044-tutorial-step-manage-and-close.json new file mode 100644 index 000000000..18c92dc2b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-044-tutorial-step-manage-and-close.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 44, + "type": "Tutorial Step - Manage and Close", + "definition": { + "icon": { + "project": "Superalgos", + "name": "position" + }, + "text": "Those were the trigger and open stages. Let's look into the manage and close stages!" + }, + "paragraphs": [ + { + "style": "List", + "text": "Manage Stage: Opens together with the open stage, and remains open while the price bounces around below the stop loss and above the take position target. When the 22 hs candle on Mar 2nd tags the stop loss target, the manage stage closes." + }, + { + "style": "List", + "text": "Close Stage: Opens after the tagging of the stop loss, and closes one hour later (!?) after placing the market buy order!" + }, + { + "style": "Note", + "text": "The one hour later mystery again... Take a minute to reflect on this behavior." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-045-tutorial-step-time-frame-matters.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-045-tutorial-step-time-frame-matters.json new file mode 100644 index 000000000..178ace7e6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-045-tutorial-step-time-frame-matters.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 45, + "type": "Tutorial Step - Time Frame Matters!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "time-frame" + }, + "text": "The Time Frame of the trading session determines how often the trading bot does what it does!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Read this page about the time frame carefully!" + }, + { + "style": "Note", + "text": "In one of the next tutorials, I'll teach you a trick to overcome this one negative aspect of running backtesting sessions on a time frame different than live sessions." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-046-tutorial-step-warning.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-046-tutorial-step-warning.json new file mode 100644 index 000000000..1d9668a1c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-046-tutorial-step-warning.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 46, + "type": "Tutorial Step - Warning!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-warning" + }, + "text": "I see a warning sign with a number 3 below it, on Feb 28th at the 9 hs candle. We should take a look and see what it is about!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "The number 3 means there are 3 warnings at the same time. In case you forgot, this is what you need to do:" + }, + { + "style": "Callout", + "text": "Pull the slider up to the middle of the screen or higher and put the pointer of the mouse on the tiny warning sign or the candle in which the warning happens." + }, + { + "style": "Success", + "text": "Now go and track the warnings in the design space using the map feature to find them!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-047-tutorial-step-confusing.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-047-tutorial-step-confusing.json new file mode 100644 index 000000000..62f9d3133 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-047-tutorial-step-confusing.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 47, + "type": "Tutorial Step - Confusing?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-warning" + }, + "text": "I'm sure that was a bit confusing! There are more than three nodes with messages, and messages are hard to relate to one another!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "But don't worry! I'll help you figure this out!" + }, + { + "style": "Callout", + "text": "First of all, remember that warnings are not errors!" + }, + { + "style": "Note", + "text": "We don't need to worry about warnings! Warnings are created every time the trading bot has to make adjustments to information that would otherwise not be obvious. It's kind of a verbose mode that the bot uses to leave a trace of its actions." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-048-tutorial-step-three-warnings.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-048-tutorial-step-three-warnings.json new file mode 100644 index 000000000..69f0a9b62 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-048-tutorial-step-three-warnings.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 48, + "type": "Tutorial Step - Three Warnings?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-warning" + }, + "text": "Each warning may be displayed in more than one node when the action taken by the trading bot affects multiple nodes." + }, + "paragraphs": [ + { + "style": "Text", + "text": "In other words, warnings are displayed in affected nodes, which may be many for any given warning. We'll work with a few examples in a minute!" + }, + { + "style": "Callout", + "text": "In fact, let's look into each warning, one by one!" + }, + { + "style": "Success", + "text": "We're going to take a little detour to explore warnings further. They are a great tool to understand what the trading bot does and how!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-049-tutorial-step-slippage.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-049-tutorial-step-slippage.json new file mode 100644 index 000000000..6b3bf93f8 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-049-tutorial-step-slippage.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 49, + "type": "Tutorial Step - Slippage", + "definition": { + "icon": { + "project": "Superalgos", + "name": "slippage" + }, + "text": "We are inside the Market Sell Order #1 structure of nodes we referenced from the market sell order in the trading system." + }, + "paragraphs": [ + { + "style": "Text", + "text": "This is the structure of nodes that keeps track of all the variables associated with that order, remember?" + }, + { + "style": "Callout", + "text": "Check the warning in the Rate node!" + }, + { + "style": "Note", + "text": "The slippage configured as a parameter of the trading session was subtracted from the order rate. This resulted in a lower actual rate. All good! The same message appears on the Slippage parameter of the trading session... check it out!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-050-tutorial-step-actual-size.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-050-tutorial-step-actual-size.json new file mode 100644 index 000000000..409df0794 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-050-tutorial-step-actual-size.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 50, + "type": "Tutorial Step - Actual Size", + "definition": { + "icon": { + "project": "Superalgos", + "name": "actual-size" + }, + "text": "What happens if the actual rate of the order is different than the rate established as a target? Recalculation time!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "When the trading bot adjusts a variable in an order, there's a ripple effect of further adjustments." + }, + { + "style": "Callout", + "text": "Check the warning in the Actual Size node!" + }, + { + "style": "Note", + "text": "For the open stage, we defined the target size in the base asset. However, the system must keep track of variables in both assets! Because the order rate was adjusted, the size of the order in the quoted asset must be adjusted too!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-051-tutorial-step-size-placed.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-051-tutorial-step-size-placed.json new file mode 100644 index 000000000..39bf6acfe --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-051-tutorial-step-size-placed.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 51, + "type": "Tutorial Step - Size Placed", + "definition": { + "icon": { + "project": "Superalgos", + "name": "size-placed" + }, + "text": "This is the Stage Quoted Asset bit of the Strategy Open Stage. If the actual size changes, what happens with the Size Placed?" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Check the warning in the Size Placed node!" + }, + { + "style": "Note", + "text": "In the context of either the open stage or the close stage, size placed is a variable that accumulates the total size placed during the stage, so it must be adjusted to!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-052-tutorial-step-order-management.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-052-tutorial-step-order-management.json new file mode 100644 index 000000000..85416b242 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-052-tutorial-step-order-management.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 52, + "type": "Tutorial Step - Order Management", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-bot-instance" + }, + "text": "Most warnings happen when the trading bot is handling orders, syncing with the exchange, or simulating the synchronization." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Those operations feature great depth and some intricacy, which we'll cover in future tutorials. In this one, we're just scratching the surface!" + }, + { + "style": "Callout", + "text": "If you wish to get to the bone on this matter, you should read this whole Order Management section of the Documentation." + }, + { + "style": "Success", + "text": "You don't need to read it now, but feel free to dive into it if so you wish! We'll get back to these pages later on!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-053-tutorial-step-back-to-the-position.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-053-tutorial-step-back-to-the-position.json new file mode 100644 index 000000000..8423f15ec --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-053-tutorial-step-back-to-the-position.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 53, + "type": "Tutorial Step - Back to the Position!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "fails" + }, + "text": "Back to this first trade, we discussed how stages work and mentioned that the price tagged the stop loss target." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "That means that this first position is a fail!" + }, + { + "style": "Text", + "text": "To be fair, the trade went in our favor up to about 3%, but we didn't take profit and let it slip through our fingers. The entry wasn't awful and it may make sense once we start thinking about position management." + }, + { + "style": "Success", + "text": "Let's take a little tour along the period tested and make a quick assessment of the rest of the positions taken!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-054-tutorial-step-the-key-moment.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-054-tutorial-step-the-key-moment.json new file mode 100644 index 000000000..e9d70df1c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-054-tutorial-step-the-key-moment.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 54, + "type": "Tutorial Step - The Key Moment", + "definition": { + "icon": { + "project": "Superalgos", + "name": "hits" + }, + "text": "This is the key moment in the period tested. March 2020 saw a clear downtrend that ended with a huge market crash!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "The good news is that, as we'd seen in the previous tutorial, two good entries anticipated the crash, with the very simple rules we defined. If you ask me, this looks promising, but judge for yourself!" + }, + { + "style": "Callout", + "text": "Take some time to fiddle with these positions! Start thinking about how you may manage these trades." + }, + { + "style": "Success", + "text": "Once you're done feasting your eyes, we'll take a quick look at the rest of the period tested!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-055-tutorial-step-march-18th.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-055-tutorial-step-march-18th.json new file mode 100644 index 000000000..3e540bf5f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-055-tutorial-step-march-18th.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 55, + "type": "Tutorial Step - March 18th", + "definition": { + "icon": { + "project": "Superalgos", + "name": "fails" + }, + "text": "This position is a new fail, happening on March 18th, just a few days after one of the major market-crashes in recent history." + }, + "paragraphs": [ + { + "style": "Text", + "text": "What can we say about this entry?" + }, + { + "style": "Callout", + "text": "Go to the 24H time frame and take a look at the overall context!" + }, + { + "style": "Text", + "text": "What I see is a situation of extreme volatility amid a historic pandemic-induced global economic crash." + }, + { + "style": "Success", + "text": "Maybe we shouldn't be trading in such conditions?! It certainly seems risky!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-056-tutorial-step-march-28th--april-1st.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-056-tutorial-step-march-28th--april-1st.json new file mode 100644 index 000000000..69222f09f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-056-tutorial-step-march-28th--april-1st.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 56, + "type": "Tutorial Step - March 28th - April 1st", + "definition": { + "icon": { + "project": "Superalgos", + "name": "fails" + }, + "text": "We've got two more fails by the end of March and the beginning of April. What can we say about these?" + }, + "paragraphs": [ + { + "style": "Text", + "text": "The first position on the 28th seems like a decent entry, despite not reaching the 10% target. It did stay in profit for a while, and got to about 7% on March 30th at 0 hs. The second position is a clear fail!" + }, + { + "style": "Callout", + "text": "Go check the context in the 24H time frame! What do you think?" + }, + { + "style": "Note", + "text": "To me, it looks like a reasonable context to go short, but what do I know?!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-057-tutorial-step-sep-5th--sep-14th.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-057-tutorial-step-sep-5th--sep-14th.json new file mode 100644 index 000000000..812dd4e08 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-057-tutorial-step-sep-5th--sep-14th.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 57, + "type": "Tutorial Step - Sep 5th - Sep 14th", + "definition": { + "icon": { + "project": "Superalgos", + "name": "fails" + }, + "text": "These are the last few trades in the period tested, and all three of them are clear fails." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Time to check the context in the 24H time frame!" + }, + { + "style": "Note", + "text": "To me, it looks unclear whether the context is suitable for a swing short or not!" + }, + { + "style": "Success", + "text": "So, what do we make of this first test? Let's compare the results with the hypothesis' predictions." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-058-tutorial-step-the-prediction-game.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-058-tutorial-step-the-prediction-game.json new file mode 100644 index 000000000..10b07556f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-058-tutorial-step-the-prediction-game.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 58, + "type": "Tutorial Step - The Prediction Game", + "definition": { + "icon": { + "project": "Superalgos", + "name": "hit-ratio" + }, + "text": "We expect the idea to trade at least twice per month, with a 50% hit ratio. That was our prediction! How did we do?" + }, + "paragraphs": [ + { + "style": "List", + "text": "Trading frequency: There were less than two months' worth of downtrends in the tested period and a total of 9 trades. In terms of trading frequency, the idea passed the test." + }, + { + "style": "List", + "text": "Hit ratio: We've got 9 trades in total, with 2 hits and 7 fails, strictly speaking. That's a 22% hit ratio. In strict terms, the idea failed the test." + }, + { + "style": "Callout", + "text": "Is there room for nuance in our analysis? Should we look past the hard numbers?" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-059-tutorial-step-is-there-room-for-nuance.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-059-tutorial-step-is-there-room-for-nuance.json new file mode 100644 index 000000000..c61b246a8 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-059-tutorial-step-is-there-room-for-nuance.json @@ -0,0 +1,23 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 59, + "type": "Tutorial Step - Is There Room For Nuance?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "space-style" + }, + "text": "Should the testing of a trading idea output black or white results? That's a good question... one that only you may answer!" + }, + "paragraphs": [ + { + "style": "List", + "text": "Is your testing criteria rock-solid? If you trust the testing criteria and are confident the prediction must be fulfilled for the idea to be worth it, then you should probably stick to the hard numbers." + }, + { + "style": "List", + "text": "Is your testing criteria more like a guideline or first assessment? In our case, I may openly confess that the testing criteria proposed is rather arbitrary, and doesn't hold water if questioned. I chose a simple criteria to make a point and facilitate the explanations, but I wouldn't defend it in a court of my peers! If you see the testing criteria as a first assessment only, then there should probably be room for a more nuanced analysis.", + "updated": 1610473653651 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-060-tutorial-step-what-is-the-nuance.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-060-tutorial-step-what-is-the-nuance.json new file mode 100644 index 000000000..1490e4577 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-060-tutorial-step-what-is-the-nuance.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 60, + "type": "Tutorial Step - What is the Nuance?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "space-style" + }, + "text": "Let's attempt a more nuanced analysis using the elements observed during our tour of the tested period." + }, + "paragraphs": [ + { + "style": "List", + "text": "Potential hits: Two out of the seven fails could have been hits, or at least breakeven trades had we managed the trade and exited earlier, either via a trailing stop loss, partial profit-taking, or any other suitable risk-management strategy." + }, + { + "style": "List", + "text": "Halt trading: One of the fails was likely to be avoidable had we incorporated a basic volatility envelope in the take position event conditions." + }, + { + "style": "Note", + "text": "That would leave us with 4 fails, maybe one break-even, and 3 hits with a potential for 100% profit. Does that nuance work for you?" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-061-tutorial-step-whats-next.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-061-tutorial-step-whats-next.json new file mode 100644 index 000000000..78130d957 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-061-tutorial-step-whats-next.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 61, + "type": "Tutorial Step - What's Next....?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "tutorial" + }, + "text": "In the next tutorial, we'll keep working on this idea, incorporating a few more fundamental considerations left out until now." + }, + "paragraphs": [ + { + "style": "Text", + "text": "We are also going to test the idea in a more favorable environment, that is, a real bear market, so that we may better evaluate it's potential." + }, + { + "style": "Success", + "text": "At this point, you have covered the very basics of building and testing strategies. While more tutorials will become available eventually, nothing stops you from pushing the envelope and keep learning on your own! The documentation is your friend, and covers the workings of Superalgos at a depth that tutorials can't reach!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-062-tutorial-step-in-the-mean-time.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-062-tutorial-step-in-the-mean-time.json new file mode 100644 index 000000000..706ed9b87 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-062-tutorial-step-in-the-mean-time.json @@ -0,0 +1,37 @@ +{ + "tutorial": "Testing a Trading Idea - The Other Stages", + "pageNumber": 62, + "type": "Tutorial Step - In The Mean Time!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "scripts-library" + }, + "text": "If you are willing to keep going on your own, mastering building strategies requires some reading and a lot of practice!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Continue your education by reading the following sections of the documentation:" + }, + { + "style": "List", + "text": "The nuances of stages of Trading Strategies.", + "updated": 1610465367806 + }, + { + "style": "List", + "text": "The whole Trading Engine section.", + "updated": 1610465391868 + }, + { + "style": "List", + "text": "The whole section following the Overview of the Management Issue.", + "updated": 1610465441136 + }, + { + "style": "Success", + "text": "You may keep developing what we started on this series, or go your own way and start implementing your own idea! Good luck, and see you on the next tutorial!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-001-tutorial-testing-a-trading-idea.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-001-tutorial-testing-a-trading-idea.json new file mode 100644 index 000000000..27da96a63 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-001-tutorial-testing-a-trading-idea.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 1, + "type": "Tutorial - Testing a Trading Idea", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-strategy" + }, + "text": "We got to the point where we can finally put the theory in practice, so let's get on with it!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "In the second tutorial in the series we covered how to properly define a trading idea so that it is testable. We also went on a field trip and came back with a proper formalized hypothesis to test." + }, + { + "style": "Callout", + "text": "In this tutorial, we will test the hypothesis!" + }, + { + "style": "Note", + "text": "I highly recommend you do the first and second tutorials in the series before doing this one! The story is carried from one to the next!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-002-tutorial-step-the-pipeline.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-002-tutorial-step-the-pipeline.json new file mode 100644 index 000000000..32fe2fdf5 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-002-tutorial-step-the-pipeline.json @@ -0,0 +1,39 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 2, + "type": "Tutorial Step - The Pipeline", + "definition": { + "icon": { + "project": "Superalgos", + "name": "dataset-definition" + }, + "text": "We will cover several topics! Let's make a quick list to use as a guide along the way!" + }, + "paragraphs": [ + { + "style": "List", + "text": "The Trigger Stage with it's three events (Trigger On Event, Trigger Off Event, and Take Position Event).", + "updated": 1610382946451 + }, + { + "style": "List", + "text": "Basic definitions including what is a Situation, a Condition, and a Formula." + }, + { + "style": "List", + "text": "Syntax, or how to write conditions and formulas." + }, + { + "style": "List", + "text": "Indicator properties and how to use them." + }, + { + "style": "List", + "text": "Open, Manage, and Close Stages basics." + }, + { + "style": "Success", + "text": "Have you read about these topics? No worries... you will!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-003-tutorial-step-do-you-have-the-data.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-003-tutorial-step-do-you-have-the-data.json new file mode 100644 index 000000000..9fb939690 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-003-tutorial-step-do-you-have-the-data.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 3, + "type": "Tutorial Step - Do You Have The Data?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "data-tasks" + }, + "text": "If you didn't do the second tutorial in the series, chances are you are missing the data you need to do this one!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "If you did the second tutorial, you can skip the data mining! If you didn't, then proceed!" + }, + { + "style": "Note", + "text": "The sensor bot will run on the BTC/USDT market (Binance) from January 1st, 2020." + }, + { + "style": "Warning", + "text": "If you have data on this market but on a different time range, this may affect your data! Read the sensor bot documentation to learn how!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-004-tutorial-step-lets-mine-some-data..json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-004-tutorial-step-lets-mine-some-data..json new file mode 100644 index 000000000..6154e7c8b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-004-tutorial-step-lets-mine-some-data..json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 4, + "type": "Tutorial Step - Let's Mine Some Data...", + "definition": { + "icon": { + "project": "Superalgos", + "name": "run" + }, + "text": "Now that you understand the implications of running this data mining operation, let's get on with it!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "If you didn't do the second tutorial in the series, select Run All Project Data Tasks on the Data Tasks node menu!" + }, + { + "style": "Note", + "text": "If you are doing this tutorial after doing other tutorials, chances are you may already have part of the data required, which may make things faster! Either way, no need to wait for the data mining to get to the present time... you may keep going with the tutorial!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-005-tutorial-step-lets-start-with-the-basics.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-005-tutorial-step-lets-start-with-the-basics.json new file mode 100644 index 000000000..f1c38071d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-005-tutorial-step-lets-start-with-the-basics.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 5, + "type": "Tutorial Step - Let's Start With the Basics!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-strategy" + }, + "text": "You define trading strategies following the Superalgos Protocol!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Please, read this page about trading strategies. It is the base of everything we will be discussing!" + }, + { + "style": "Note", + "text": "The last paragraph in the page states that the framework is flexible enough to accept definitions that bend the rigid interpretation of what a position is. In this tutorial, we will focus on a typical by-the-book definition of a strategy, that is, the case for which the framework is optimized. We will cover other cases in other tutorials!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-006-tutorial-step-trading-systems.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-006-tutorial-step-trading-systems.json new file mode 100644 index 000000000..7df586f2f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-006-tutorial-step-trading-systems.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 6, + "type": "Tutorial Step - Trading Systems", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-system" + }, + "text": "New trading systems are created from the Superalgos Project hierarchy, in particular, from the Other Hierarchies node." + }, + "paragraphs": [ + { + "style": "Text", + "text": "But... you know what? We'll use one I created already!" + }, + { + "style": "Callout", + "text": "Feel free to add a trading system if you wish, but delete it afterwards, as we are not going to use it!" + }, + { + "style": "Note", + "text": "I set up a trading system while you weren't watching so that I can reference existing nodes and take you to specific places while we move along this tutorial! Merely for technical reasons, if you must know!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-007-tutorial-step-right-out-of-the-box.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-007-tutorial-step-right-out-of-the-box.json new file mode 100644 index 000000000..49ddfef8b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-007-tutorial-step-right-out-of-the-box.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 7, + "type": "Tutorial Step - Right Out of the Box!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-system" + }, + "text": "This is the trading system we will use, virtually as it comes right out of the box!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "All I've done with it is organize the hierarchy the way I like it, and give it a name: BB Breakdown." + }, + { + "style": "Callout", + "text": "Expand the hierarchy and look around! Notice the Downtrends strategy... Expand each of the nodes corresponding to the four stages, one by one, and take a good look inside!" + }, + { + "style": "Note", + "text": "The nodes you see within each of these stages make up the definitions of a strategy..." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-008-tutorial-step-why-downtrends.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-008-tutorial-step-why-downtrends.json new file mode 100644 index 000000000..11e7199f0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-008-tutorial-step-why-downtrends.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 8, + "type": "Tutorial Step - Why Downtrends?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "help" + }, + "text": "If you paid attention to the first tutorial in the series on trading systems, you must know the answer to the above question!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "In the second tutorial in the series, we came up with two similar hypotheses: one involves trading during uptrends and the second, in downtrends." + }, + { + "style": "Callout", + "text": "Those are two distinct ideas and should be treated as different strategies because they will handle similar logic, but not the same!" + }, + { + "style": "Note", + "text": "We'll focus in the Downtrend strategy first, because I feel it's the most promising one!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-009-tutorial-step-trigger-stage-events.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-009-tutorial-step-trigger-stage-events.json new file mode 100644 index 000000000..880b611a1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-009-tutorial-step-trigger-stage-events.json @@ -0,0 +1,34 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 9, + "type": "Tutorial Step - Trigger Stage Events", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trigger-stage" + }, + "text": "In a way, strategies are defined as a collection of events. The events that trigger a Trading Strategy are the first to consider!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "In the next few steps, we will define the..." + }, + { + "style": "List", + "text": "Trigger On Event " + }, + { + "style": "List", + "text": "Trigger Off Event " + }, + { + "style": "List", + "text": "Take Position Event " + }, + { + "style": "Callout", + "text": "If you haven't yet, please read this page to get up to speed with these concepts!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-010-tutorial-step-trigger-on-event.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-010-tutorial-step-trigger-on-event.json new file mode 100644 index 000000000..b78d77d25 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-010-tutorial-step-trigger-on-event.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 10, + "type": "Tutorial Step - Trigger On Event", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trigger-on-event" + }, + "text": "The Trigger On Event defines the market Situation in which the strategy shall be triggered." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Let's refresh the basic concepts! The triggering of a strategy has two main implications:" + }, + { + "style": "List", + "text": "The strategy is selected among other strategies in the trading system and is assigned the capital available for the trading session. This is important because we'll eventually have two strategies in the trading system!" + }, + { + "style": "List", + "text": "Once a strategy is triggered, the trading bot starts evaluating the Take Position Event and the Trigger Off Event. When any of those two validate true, the strategy exits the Trigger Stage!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-011-tutorial-step-situations-conditions-and-formulas-in-superalgos.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-011-tutorial-step-situations-conditions-and-formulas-in-superalgos.json new file mode 100644 index 000000000..4ed7617e1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-011-tutorial-step-situations-conditions-and-formulas-in-superalgos.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 11, + "type": "Tutorial Step - Situations, Conditions, and Formulas in Superalgos", + "definition": { + "icon": { + "project": "Superalgos", + "name": "situation" + }, + "text": "Before we get to write definitions for the trigger on event, you need to get the basic education on these fundamental topics!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "If you haven't yet, please read this page outlining the concepts of situations, conditions, and formulas. These are the key concepts that make up most definitions in a strategy!" + }, + { + "style": "Note", + "text": "Don't worry about the syntax in the examples. We will get to that soon! If you are not a developer, focus on the simple examples." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-012-tutorial-step-remember-the-context.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-012-tutorial-step-remember-the-context.json new file mode 100644 index 000000000..db8977716 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-012-tutorial-step-remember-the-context.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 12, + "type": "Tutorial Step - Remember the Context?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-trends" + }, + "text": "Now that you understand what conditions and situations are, let's pose a question: how do we define the Trigger On Event?" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Because the trigger on event determines which strategy is selected to trade, the definition of the context of our hypothesis should be the main thing to consider!" + }, + { + "style": "Callout", + "text": "The strategy should trade when there is a downtrend in the 24H time frame." + }, + { + "style": "Success", + "text": "Our job is to write a set of conditions that mathematically describe the market situation of a downtrend in the 24H chart!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-013-tutorial-step-lets-study-the-syntax.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-013-tutorial-step-lets-study-the-syntax.json new file mode 100644 index 000000000..f18f1cefc --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-013-tutorial-step-lets-study-the-syntax.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 13, + "type": "Tutorial Step - Let's Study the Syntax!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "text" + }, + "text": "The syntax to write conditions and formulas follows a few basic rules that will soon seem obvious!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "It may take some time to master the syntax, particularly if you are not a technical person, but experience shows that Superalgos users get used to it while building their first strategy!" + }, + { + "style": "Callout", + "text": "Please, read this page carefully!" + }, + { + "style": "Success", + "text": "Don't worry if it seems hard to grasp... We'll practice a lot along with this tutorial series!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-014-tutorial-step-reinforce-the-learning.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-014-tutorial-step-reinforce-the-learning.json new file mode 100644 index 000000000..75c9f16de --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-014-tutorial-step-reinforce-the-learning.json @@ -0,0 +1,31 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 14, + "type": "Tutorial Step - Reinforce The Learning!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "learning-bot" + }, + "text": "Let's do a quick recap on the matter of the syntax! I'll push this until you learn it!" + }, + "paragraphs": [ + { + "style": "List", + "text": "FIRST: The time frame! (i.e.: chart.at24hs)" + }, + { + "style": "List", + "text": "SECOND: Each segment of the instruction is separated by dots! (i.e.: like.this)" + }, + { + "style": "List", + "text": "THIRD: Product name and property name are determined by the indicator you are using. No need to memorize them, as you may copy and paste them from the docs when you need them!" + }, + { + "style": "List", + "text": "FOURTH: Compound words in the product and property name are written in camel case, that is, altogether, with the first word in lowercase and the rest of the words capitalized! (forExampleLikeThis)", + "updated": 1610384140775 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-015-tutorial-step-we-need-data.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-015-tutorial-step-we-need-data.json new file mode 100644 index 000000000..68bf8cb09 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-015-tutorial-step-we-need-data.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 15, + "type": "Tutorial Step - We Need Data", + "definition": { + "icon": { + "project": "Superalgos", + "name": "indicator-process-instance" + }, + "text": "By now, all processes should be at 100%. We need the data to be ready so that we can go and do some work on the charts!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "If you are mining data because you didn't do it in the previous tutorial, look around and see if all processes are at 100%. If all of them are, then stop the data mining!" + }, + { + "style": "Note", + "text": "Wait until all processes reach the 100% mark before continuing!" + }, + { + "style": "Success", + "text": "Let's go to the charts!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-016-tutorial-step-time-to-work-the-charts.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-016-tutorial-step-time-to-work-the-charts.json new file mode 100644 index 000000000..977abd84c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-016-tutorial-step-time-to-work-the-charts.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 16, + "type": "Tutorial Step - Time to Work the Charts!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trigger-on-event" + }, + "text": "We are going to do some work on the charts, placing the focus on the Trigger On Event!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Bear in mind that the trigger on event on each strategy within a trading system is what determines which of the strategies is going to trade in the current context. In our case, we'll eventually have at least two strategies, and we want each of them to specialize on different trends." + }, + { + "style": "Callout", + "text": "The first concern is with determining the trend! How to we go about this?" + }, + { + "style": "Text", + "text": "We'll work on something around the Bollinger Bands, as you may imagine!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-017-tutorial-step-determining-the-trend.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-017-tutorial-step-determining-the-trend.json new file mode 100644 index 000000000..a1fd7f122 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-017-tutorial-step-determining-the-trend.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 17, + "type": "Tutorial Step - Determining the Trend", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-trends" + }, + "text": "There are probably as many ways to determine a trend as traders inhabit planet Earth! It's a matter of style and mostly subjective!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "We'll take an arbitrary and rather simple approach based on the 20-periods moving average (MA) built in the Bollinger Bands." + }, + { + "style": "Callout", + "text": "Go to the Masters Layer Manager and turn on the Bollinger Channels Objects Layer!" + }, + { + "style": "Note", + "text": "This indicator derives the direction of the MA and draws a green channel when the MA is going Up and a red channel when it's going Down." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-018-tutorial-step-is-that-good-enough.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-018-tutorial-step-is-that-good-enough.json new file mode 100644 index 000000000..2e45a36af --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-018-tutorial-step-is-that-good-enough.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 18, + "type": "Tutorial Step - Is That Good Enough?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "help" + }, + "text": "This seems to work well for the reversals of February 25th and April 1st, right?" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Pan the chart to the right and check the period between May 24th and July 16th!" + }, + { + "style": "Text", + "text": "The market is clearly moving sideways in a narrowing range, and the indicator switches back and forth between Up and Down directions erratically." + }, + { + "style": "Success", + "text": "This is not the ultimate solution to determine the trend!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-019-tutorial-step-an-extra-dimension.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-019-tutorial-step-an-extra-dimension.json new file mode 100644 index 000000000..c14ae8031 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-019-tutorial-step-an-extra-dimension.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 19, + "type": "Tutorial Step - An Extra Dimension!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-trends" + }, + "text": "Let's try an indicator that brings an additional dimension to the information we are getting from this one!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Turn off the Bollinger Channels Objects layer! Now turn on the Bollinger SubChannels Objects layer!" + }, + { + "style": "Text", + "text": "There's still a lot of back and forth with the Up and Down directions... but!" + }, + { + "style": "Success", + "text": "Slide the mouse pointer over the chart and look at the Slope property in the plotter panel of the indicator! Switch it on in case it's off!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-020-tutorial-step-bollinger-subchannels.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-020-tutorial-step-bollinger-subchannels.json new file mode 100644 index 000000000..3976423d4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-020-tutorial-step-bollinger-subchannels.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 20, + "type": "Tutorial Step - Bollinger Subchannels", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-trends" + }, + "text": "The slope provides an indication of how steep the MA curve is... that is, how pronounced is the decline or ascent of the MA!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Read the description of the indicator in the documentation. Then scroll down and get to the Bollinger SubChannels Products & Properties section." + }, + { + "style": "Success", + "text": "The kind of information you find on this page is available for every indicator shipping with the system." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-021-tutorial-step-products-properties.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-021-tutorial-step-products-properties.json new file mode 100644 index 000000000..605474c46 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-021-tutorial-step-products-properties.json @@ -0,0 +1,34 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 21, + "type": "Tutorial Step - Products & Properties", + "definition": { + "icon": { + "project": "Superalgos", + "name": "record-property" + }, + "text": "This section of the documentation of each indicator features the information you need to use the indicator in conditions and formulas!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "The bollingerSubChannel product features three different properties:" + }, + { + "style": "List", + "text": "direction: Up, Down" + }, + { + "style": "List", + "text": "period: 1 to n." + }, + { + "style": "List", + "text": "slope: Side, Gentle, Medium, Steep, Extreme." + }, + { + "style": "Callout", + "text": "Read this section carefully so that we can go back to the charts and decide how we are going to use the slope property!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-022-tutorial-step-lets-check-those-slopes.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-022-tutorial-step-lets-check-those-slopes.json new file mode 100644 index 000000000..f39cab641 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-022-tutorial-step-lets-check-those-slopes.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 22, + "type": "Tutorial Step - Let's Check Those Slopes", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-trends" + }, + "text": "We will use the slope property of the Bollinger Subchannels indicator to confirm that a trend is a trend!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Slide the pointer of the mouse over different subchannels and notice their reported slope in the plotter panel." + }, + { + "style": "Text", + "text": "Notice that when the market is trending, the subchannel slope is almost never Side. And that's to be expected, as the Side slope represents the shallower slope possible in the MA. On the other hand, the periods on which the market is ranging, although the direction may go back and forth between Up and Down, the slope is mostly Side." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-024-tutorial-step-set-up-the-first-condition.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-024-tutorial-step-set-up-the-first-condition.json new file mode 100644 index 000000000..944e79930 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-024-tutorial-step-set-up-the-first-condition.json @@ -0,0 +1,31 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 24, + "type": "Tutorial Step - Set Up the First Condition!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "javascript-code" + }, + "text": "I brought you to the definition of the Trigger On Event so that you may set up the first condition!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Paste the condition on the Javascript Code node!" + }, + { + "style": "Text", + "text": "Follow the structure of nodes under the Situation and get to the Javascript Code node under the Condition node. Click Edit on the menu, select and delete the placeholder text, and paste the below condition:", + "updated": 1610469943553 + }, + { + "style": "Javascript", + "text": "chart.at24hs.bollingerSubChannel.direction === 'Down'" + }, + { + "style": "Text", + "text": "Label the condition node 24H Down to have a quick reference of what the condition is about." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-025-tutorial-step-now-the-second-condition.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-025-tutorial-step-now-the-second-condition.json new file mode 100644 index 000000000..c56f8d160 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-025-tutorial-step-now-the-second-condition.json @@ -0,0 +1,27 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 25, + "type": "Tutorial Step - Now the Second Condition!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "javascript-code" + }, + "text": "Select Add Condition on the situation's menu and paste the code in the Javascript Code node!" + }, + "paragraphs": [ + { + "style": "Javascript", + "text": "chart.at24hs.bollingerSubChannel.slope != 'Side'" + }, + { + "style": "Callout", + "text": "Label the condition node 24H Not Side and label the situation as Downtrend to keep things tidy!" + }, + { + "style": "Note", + "text": "We could have chosen to write the two conditions in one by using the && operator. I'll tell you why that is not a good idea in the next step!", + "updated": 1610470019656 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-026-tutorial-step-never-forget-granularity.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-026-tutorial-step-never-forget-granularity.json new file mode 100644 index 000000000..4a635ea94 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-026-tutorial-step-never-forget-granularity.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 26, + "type": "Tutorial Step - Never Forget Granularity!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "situation" + }, + "text": "Superalgos strives to keep things simple, and so should you, as it is the best way to handle mounting complexity!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Conditions should be as granular as possible because:" + }, + { + "style": "List", + "text": "It makes it easier to debug the syntax: when you pile up logic in a single condition, it's hard to find bugs you may have introduced." + }, + { + "style": "List", + "text": "It makes it easier to debug the strategy: if you keep logic segregated in different conditions, you will then be able to see precisely what part of the logic validates true or false." + }, + { + "style": "List", + "text": "It makes the strategy easier to maintain and upgrade: granular conditions make everything easier to undertand and follow." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-027-tutorial-step-trigger-off-event.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-027-tutorial-step-trigger-off-event.json new file mode 100644 index 000000000..3ec3d0d69 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-027-tutorial-step-trigger-off-event.json @@ -0,0 +1,33 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 27, + "type": "Tutorial Step - Trigger Off Event", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trigger-off-event" + }, + "text": "Now that we have defined when the strategy should be triggered on, let's consider when the idea should be invalidated." + }, + "paragraphs": [ + { + "style": "Text", + "text": "We don't want to trade with this strategy when there is no downtrend. So, we'll reverse the logic of the trigger on event! Find conditions 1 and 2 below:", + "updated": 1610470163153 + }, + { + "style": "Javascript", + "text": "chart.at24hs.bollingerSubChannel.direction === 'Up'", + "updated": 1610470169627 + }, + { + "style": "Javascript", + "text": "chart.at24hs.bollingerSubChannel.slope === 'Side'", + "updated": 1610470175519 + }, + { + "style": "Text", + "text": "We should trigger off the stategy when either of these conditions validate true. How?" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-028-tutorial-step-the-workings-of-situations.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-028-tutorial-step-the-workings-of-situations.json new file mode 100644 index 000000000..06c43a600 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-028-tutorial-step-the-workings-of-situations.json @@ -0,0 +1,27 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 28, + "type": "Tutorial Step - The Workings of Situations", + "definition": { + "icon": { + "project": "Superalgos", + "name": "situation" + }, + "text": "This is a key concept that you must understand so that you may organize logic in the proper manner!" + }, + "paragraphs": [ + { + "style": "List", + "text": "A situation validates true when all conditions within validate true. Think of this as if conditions within a situation were bound by the && (and) operator. If all of them are true at the same time, then the situation is true as well." + }, + { + "style": "List", + "text": "An event validates true when either of the situations within validates true. It is as if situations within an event were bound by the || (or) operator! If any of the situations is true at a certain point in time, then the event is triggered!" + }, + { + "style": "Success", + "text": "Can you tell how to set up this definition?", + "updated": 1610445299181 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-029-tutorial-step-separate-situations.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-029-tutorial-step-separate-situations.json new file mode 100644 index 000000000..ea00a0260 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-029-tutorial-step-separate-situations.json @@ -0,0 +1,32 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 29, + "type": "Tutorial Step - Separate Situations!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "situation" + }, + "text": "Think of it in this way: we have identified two different market situations that would invalidate this idea!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "We will set up each condition in separate situation!", + "updated": 1610470622189 + }, + { + "style": "Callout", + "text": "Set up the first condition in the existing situation, and the second condition in a new situation!" + }, + { + "style": "Javascript", + "text": "chart.at24hs.bollingerSubChannel.direction === 'Up'", + "updated": 1610470580629 + }, + { + "style": "Javascript", + "text": "chart.at24hs.bollingerSubChannel.slope === 'Side'" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-030-tutorial-step-keep-the-definitions-tidy.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-030-tutorial-step-keep-the-definitions-tidy.json new file mode 100644 index 000000000..fc1824550 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-030-tutorial-step-keep-the-definitions-tidy.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 30, + "type": "Tutorial Step - Keep the Definitions Tidy!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "situation-name" + }, + "text": "Try to keep up with the good practice of giving relevant names or labels to the nodes holding definitions!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Consider that the strategy will grow in complexity as we advance! It's good to be able to identify conditions and situations without checking the code!" + }, + { + "style": "Callout", + "text": "You'll also be able to identify which situation triggered the event directly from the charts!" + }, + { + "style": "Note", + "text": "You may label the first situation and the first condition with the same name, 24H Up, and the second with the following: 24H Side." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-031-tutorial-step-first-backtest..json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-031-tutorial-step-first-backtest..json new file mode 100644 index 000000000..61f662d3e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-031-tutorial-step-first-backtest..json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 31, + "type": "Tutorial Step - First Backtest...", + "definition": { + "icon": { + "project": "Superalgos", + "name": "backtesting-session" + }, + "text": "Now that we have these basic definitions in place, we may do a first backtest." + }, + "paragraphs": [ + { + "style": "Text", + "text": "We are not ready to the test the idea as we've only defined the trigger on and trigger off events. We just want to make sure we got the definitions right." + }, + { + "style": "Callout", + "text": "Although the strategy will eventually include logic relating to the 1H chart, the current definitions involve the 24H chart only." + }, + { + "style": "Text", + "text": "We are going to run a backtesting session between January 1st and October 1st, 2020, on the 24H time frame. Take a look at the Time Range and Time Frame parameters and make sure they match the above!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-032-tutorial-step-a-bit-about-backtesting.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-032-tutorial-step-a-bit-about-backtesting.json new file mode 100644 index 000000000..345f28694 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-032-tutorial-step-a-bit-about-backtesting.json @@ -0,0 +1,18 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 32, + "type": "Tutorial Step - A Bit About Backtesting!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "backtesting-session" + }, + "text": "Before we get to run this first backtest, I need to acknowledge something of great importance!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Backtesting is a science in and of itself! There are entire books written on backtesting alone. It is a deep and complex subject mainly because humans designing and testing strategies are prone to introducing biases that may lead to overfitting, that is, adjusting the rules of the trading system to fit the data set in the quest to get good backtesting results. Superalgos offers tools to flexibly handle the data set to avoid spoiling it, like the time range parameter that allows splitting the data set as required, or setting up and running multiple sessions in parallel. That said, we are not going to cover the topic in this tutorial! The current focus is on creating the definitions of a trading idea, not backtesting per se." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-033-tutorial-step-lets-do-this..json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-033-tutorial-step-lets-do-this..json new file mode 100644 index 000000000..b37b3f20f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-033-tutorial-step-lets-do-this..json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 33, + "type": "Tutorial Step - Let's Do This...", + "definition": { + "icon": { + "project": "Superalgos", + "name": "task" + }, + "text": "This is going to be quick as we are testing a few months on the 24H time frame." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Remember that running a trading task is similar to running a data task. The difference is that after running the task you also need to run the trading session." + }, + { + "style": "Callout", + "text": "Select Run on the Task menu and then select Run on the Backtesting Session menu." + }, + { + "style": "Note", + "text": "When the progress notice of the Trading Process Instance get's to the 100% mark, stop the task and click Next." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-034-tutorial-step-lets-see-what-weve-got.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-034-tutorial-step-lets-see-what-weve-got.json new file mode 100644 index 000000000..97200aac6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-034-tutorial-step-lets-see-what-weve-got.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 34, + "type": "Tutorial Step - Let's See What We've Got!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trigger-stage" + }, + "text": "We are going to go through the simulation and see if the definition we came up with has the expected results!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Go to the Simulation Objects layer manager and turn on the Strategies and Trigger Stages layers." + }, + { + "style": "Note", + "text": "Do you see the two instances of strategies triggered between February 26th and April 2nd? Now, pan the charts to the right... You should see another two triggered between September 3rd - 23rd! The following step features a video of what you should see on the screen, just to make sure we're on the same page!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-035-tutorial-step-trading-systems-trigger-stage-test.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-035-tutorial-step-trading-systems-trigger-stage-test.json new file mode 100644 index 000000000..3b2c2ee86 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-035-tutorial-step-trading-systems-trigger-stage-test.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 35, + "type": "Tutorial Step - Trading Systems Trigger Stage Test", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/trading-systems-trigger-stage-test.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-036-tutorial-step-cant-see-whats-expected.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-036-tutorial-step-cant-see-whats-expected.json new file mode 100644 index 000000000..544f9c5b4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-036-tutorial-step-cant-see-whats-expected.json @@ -0,0 +1,34 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 36, + "type": "Tutorial Step - Can't See What's Expected?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-error" + }, + "text": "If you can't see what I showed in the video, chances are you skipped one or more of my previous instructions!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "I will cover some troubleshooting tactics later on, but for the time being, the solution is to go back in the tutorial and make sure you did everything I told you to do!" + }, + { + "style": "List", + "text": "Did you turn on the right layers? " + }, + { + "style": "List", + "text": "Did you run the backtest? " + }, + { + "style": "List", + "text": "Did you set up the definitions as instructed? " + }, + { + "style": "Success", + "text": "Go backwards in the tutorial, step by step, and make sure you didn't skip any steps!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-037-tutorial-step-visual-verification.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-037-tutorial-step-visual-verification.json new file mode 100644 index 000000000..c3f247363 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-037-tutorial-step-visual-verification.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 37, + "type": "Tutorial Step - Visual Verification", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bot-data-dependencies" + }, + "text": "Let's do a quick visual check on the simulation to understand if the strategy was triggered on and off as expected!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Make sure the Bollinger SubChannels Object layer is on along with the layer's panel!" + }, + { + "style": "Text", + "text": "Place the mouse pointer on the Feb 25th candle. This is the first candle that closed with the MA going down. You can tell by the red color of the subchannel, and also looking at the direction property in the panel. However, the slope on this candle is Side, and that is the reason why the strategy wasn't triggered on the 25th. Remember, the conditions are that the direction should be Down and the slope should be different than Side." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-038-tutorial-step-look-at-the-26th.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-038-tutorial-step-look-at-the-26th.json new file mode 100644 index 000000000..adf371051 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-038-tutorial-step-look-at-the-26th.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 38, + "type": "Tutorial Step - Look at the 26th!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bot-data-dependencies" + }, + "text": "Let's shift the mouse pointer to the next candle, on February 26th!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "On the 26th the direction is Down and the slope is Gentle. Both conditions are met, so the strategy is triggered as soon as the candle closes." + }, + { + "style": "Important", + "text": "Remember, each candle is evaluated only after it has closed! Every property of every product of every indicator refers to closed candles! This is crucial information, in particular when you are working with multiple time frames. I'll expand on this later on, but keep it in mind at all times!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-039-tutorial-step-keep-looking.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-039-tutorial-step-keep-looking.json new file mode 100644 index 000000000..db2b4d195 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-039-tutorial-step-keep-looking.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 39, + "type": "Tutorial Step - Keep Looking!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bot-data-dependencies" + }, + "text": "This visual check helps you mentally connect the dots of what you see on a simulation with the definitions you produce!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Take a few more minutes to explore the trigger off event of the strategy, as well as the rest of the triggers ocurring over the period tested." + }, + { + "style": "Success", + "text": "Take a moment to internalize the fact that events are triggered only once all the conditions in a given situation are met, and that conditions are evaluated over closed candles only!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-040-tutorial-step-troubleshooting-101.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-040-tutorial-step-troubleshooting-101.json new file mode 100644 index 000000000..9c9614cb2 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-040-tutorial-step-troubleshooting-101.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 40, + "type": "Tutorial Step - Troubleshooting 101", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-error" + }, + "text": "Whenever you are working on and testing definitions in a trading system, you should be in troubleshooting mode!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "There are so many things involved in running a trading session that errors may occur for a wide assortment of reasons. The trading bot evaluates the definitions in the trading system and applies them by evaluating the data sets referenced in the definitions." + }, + { + "style": "Callout", + "text": "Errors in the data or the definitions are common." + }, + { + "style": "Text", + "text": "It's not likely that a data set is calculated with errors. However, if you haven't calculated the data set by running the corresponding data task, you will get errors!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-041-tutorial-step-lets-hunt-for-errors.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-041-tutorial-step-lets-hunt-for-errors.json new file mode 100644 index 000000000..5e59a49c7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-041-tutorial-step-lets-hunt-for-errors.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 41, + "type": "Tutorial Step - Let's Hunt For Errors!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-error" + }, + "text": "Even when you are getting the results you expect, you may still have errors lurking around!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Some errors may be innocuous, and some may have hard-to-notice consequences." + }, + { + "style": "Callout", + "text": "Go to the Trading System layer manager and turn on the Trading System Errors layer!" + }, + { + "style": "Text", + "text": "Pan the charts to the left until you get to the first days of January. Do you see the error bullets at the bottom?" + }, + { + "style": "Note", + "text": "Feel free to turn off some layers if needed." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-042-tutorial-step-errors-time.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-042-tutorial-step-errors-time.json new file mode 100644 index 000000000..61d16609b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-042-tutorial-step-errors-time.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 42, + "type": "Tutorial Step - Errors & Time", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-error" + }, + "text": "Errors are always tied to a specific point in time, that is, to a specific candle!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "When the Trading Bot runs a trading session, it applies the definitions in the trading system candle by candle, one at a time. The bot doesn't know what lies ahead... it only knows the current candle, that is, the candle that is being evaluated." + }, + { + "style": "Callout", + "text": "When an error occurs, it is handled by the trading bot, and the error is saved with the timestamp of the candle where it happened. This is how you get to know exactly what errors happened when." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-043-tutorial-step-errors-nodes.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-043-tutorial-step-errors-nodes.json new file mode 100644 index 000000000..435da7c6b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-043-tutorial-step-errors-nodes.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 43, + "type": "Tutorial Step - Errors & Nodes", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-error" + }, + "text": "When errors happen due to definitions in the trading system, that is where you will find the corresponding error messages!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "The Trading System Errors layer interacts with the design space so that you may track and find error messages. Messages are tied to the node responsible for producing the error!" + }, + { + "style": "Callout", + "text": "Place the mouse pointer over one of the error bullets in the charting space and use the design space map to find the source of the red circle." + }, + { + "style": "Note", + "text": "The video next shows what I found!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-044-tutorial-step-trading-systems-tracking-errors.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-044-tutorial-step-trading-systems-tracking-errors.json new file mode 100644 index 000000000..0e2277287 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-044-tutorial-step-trading-systems-tracking-errors.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 44, + "type": "Tutorial Step - Trading Systems Tracking Errors", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/trading-systems-tracking-errors.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-045-tutorial-step-deciphering-errors.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-045-tutorial-step-deciphering-errors.json new file mode 100644 index 000000000..9ffa46b27 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-045-tutorial-step-deciphering-errors.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 45, + "type": "Tutorial Step - Deciphering Errors", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-error" + }, + "text": "Can not read property 'direction' of undefined. What is that all about?" + }, + "paragraphs": [ + { + "style": "Text", + "text": "This is the proper procedure to unpack an error message and understand what it is about:" + }, + { + "style": "List", + "text": "You know when the error happened. Keep that in mind, as the error is solely related to the candle where it happened!" + }, + { + "style": "List", + "text": "You know which node caused the error. It is likely the definition in the node that caused the error, either due to the code in the associated Javascript Node (if it's a condition), the formula (if it's a Formula node), or the node's configuration." + }, + { + "style": "List", + "text": "You know the error message. Read it carefully and make the connection with the two previous clues!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-046-tutorial-step-lets-unpack-this-error.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-046-tutorial-step-lets-unpack-this-error.json new file mode 100644 index 000000000..846f59088 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-046-tutorial-step-lets-unpack-this-error.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 46, + "type": "Tutorial Step - Let's Unpack This Error", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-error" + }, + "text": "The error is associated with one of our conditions, so we must check the Javascript Code we used!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "This is the code in our condition:
chart.at24hs.bollingerSubChannel.direction === 'Down'" + }, + { + "style": "Callout", + "text": "The error says that the direction property of an object that is 'undefined' cannot be read." + }, + { + "style": "Text", + "text": "The object the error refers to is the bollingerSubChannel product. That object is 'undefined'. Why? There is one last piece to fit in the puzzle: the error happens at the beginning of the data set. Do you see the problem?" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-047-tutorial-step-counting-candles.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-047-tutorial-step-counting-candles.json new file mode 100644 index 000000000..7bd7781fc --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-047-tutorial-step-counting-candles.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 47, + "type": "Tutorial Step - Counting Candles!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-candles" + }, + "text": "Take a good look at the first few candles in the data set. Do you see anything unusual?" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "The Bollinger SubChannels does not exist for the first 19 candles! Hence, the object is undefined!" + }, + { + "style": "Text", + "text": "The indicator derives from the Bollinger Bands, and the bands require at least 20 periods of historic data to be calculated. That is why it's undefined for 19 candles." + }, + { + "style": "Success", + "text": "If we want to test a certain time range, we must make sure that all indicators we use in our trading system are calculated for the full range!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-048-tutorial-step-lesson-learned.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-048-tutorial-step-lesson-learned.json new file mode 100644 index 000000000..f90c798e7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-048-tutorial-step-lesson-learned.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 48, + "type": "Tutorial Step - Lesson Learned?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "learning-bot" + }, + "text": "At this moment, the error doesn't affect us, because the first 19 days of the data set correspond to an uptrend! However, ..." + }, + "paragraphs": [ + { + "style": "Text", + "text": "... it would affect us if we were working with uptrends!" + }, + { + "style": "Callout", + "text": "The troubleshooting process we just went through may come naturally to you if you are a developer. If you are not, you must become familiar with it, because you will certainly need to use it." + }, + { + "style": "Success", + "text": "Trading automation requires many pieces of information to fit together like in a Swiss watch. You will make errors building strats. Deal with 'em!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-049-tutorial-step-highlights-and-values.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-049-tutorial-step-highlights-and-values.json new file mode 100644 index 000000000..206f53c41 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-049-tutorial-step-highlights-and-values.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 49, + "type": "Tutorial Step - Highlights and Values", + "definition": { + "icon": { + "project": "Superalgos", + "name": "nodes-highlights" + }, + "text": "Let's move on to a brighter topic! I'll show you how to verify the validation of conditions with the highlights and values layers." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Go to the Trading System layer manager and turn on the Trading System Highlights and the Trading System Values layers..." + }, + { + "style": "Callout", + "text": "Now slide the mouse pointer over the candle where the strategy is triggered on!" + }, + { + "style": "Success", + "text": "Use this resource when things are not going as you'd expect! This is how you find out why an event is not triggering when you think it should!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-050-tutorial-step-a-note-on-event-evaluation.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-050-tutorial-step-a-note-on-event-evaluation.json new file mode 100644 index 000000000..11637bd7f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-050-tutorial-step-a-note-on-event-evaluation.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 50, + "type": "Tutorial Step - A Note on Event-Evaluation", + "definition": { + "icon": { + "project": "Superalgos", + "name": "nodes-highlights" + }, + "text": "Did you notice that once the trigger stage is active, the conditions of the trigger on event are no longer evaluated?" + }, + "paragraphs": [ + { + "style": "Text", + "text": "The opposite goes for the trigger off event conditions: they are not evaluated before the stage is active. See for yourself!" + }, + { + "style": "Callout", + "text": "The trading bot follows the protocol that governs trading systems and only evaluates the events that are required at any moment in time!" + }, + { + "style": "Text", + "text": "It's logical, right? The bot aims to be as efficient as possible and does only what needs to be done!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-051-tutorial-step-the-land-of-confusion.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-051-tutorial-step-the-land-of-confusion.json new file mode 100644 index 000000000..cd925983f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-051-tutorial-step-the-land-of-confusion.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 51, + "type": "Tutorial Step - The Land of Confusion", + "definition": { + "icon": { + "project": "Superalgos", + "name": "nodes-highlights" + }, + "text": "Indeed, it is logical that the trading bot evaluates only the definitions that make sense evaluating at any point in time!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "However, this is sometimes a source of confusion! Let's set up a hypothetical scenario!" + }, + { + "style": "Callout", + "text": "Turn off the Strategies and the Trigger Stages layers in the Simulation Objects layer manager!" + }, + { + "style": "Text", + "text": "Now slide the pointer over the candles around March 1st! Imagine that you are trying to verify your conditions, but for some reason, they show values and highlights for some candles, but not for others! Something is wrong with Superalgos! Not really, right?" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-052-tutorial-step-the-time-frame-mystery.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-052-tutorial-step-the-time-frame-mystery.json new file mode 100644 index 000000000..bb3ed7f3e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-052-tutorial-step-the-time-frame-mystery.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 52, + "type": "Tutorial Step - The Time Frame Mystery", + "definition": { + "icon": { + "project": "Superalgos", + "name": "time-frames-filter" + }, + "text": "Let's pull one more trick! Switch the time frame to 12 hs and slide the pointer over the charts!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "OMG! I broke Superalgos! Nothing works anymore!" + }, + { + "style": "Callout", + "text": "Trading sessions create simulations for the time frame configured in the Time Frame parameter!" + }, + { + "style": "Text", + "text": "If you set your chart to a different time frame, you won't be able to see the simulation! In fact, you may find another simulation that you ran on that time frame at some other point in time! Indeed, Superalgos stores simulations for each time frame separately, even when they originate from the same trading session!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-053-tutorial-step-what-am-i-missing.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-053-tutorial-step-what-am-i-missing.json new file mode 100644 index 000000000..98c6ba08b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-053-tutorial-step-what-am-i-missing.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 53, + "type": "Tutorial Step - What Am I Missing?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "help" + }, + "text": "That, my friend, is the right question to ask! It's not... What is wrong? But... What am I missing?!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "As I said earlier, many pieces of information need to fall in the right place for things to make sense in a complex world, and algorithmic trading is complex!" + }, + { + "style": "Callout", + "text": "To succeed at building strategies, you must develop the intuition to ask yourself that question whenever things are not going your way!" + }, + { + "style": "Success", + "text": "But don't be disheartened! I'll show you all the tricks I know so that you master algo-trading!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-054-tutorial-step-free-as-a-bird.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-054-tutorial-step-free-as-a-bird.json new file mode 100644 index 000000000..296e313a2 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-054-tutorial-step-free-as-a-bird.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 54, + "type": "Tutorial Step - Free as a Bird", + "definition": { + "icon": { + "project": "Superalgos", + "name": "twitter" + }, + "text": "Superalgos puts little or no constraints on what you may or may not do... You are free and encouraged to innovate!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Superalgos is not a little toy to play and build dumb bots with. It's a powerful and flexible arsenal to conquer trading! But flexibility comes at a cost!" + }, + { + "style": "Callout", + "text": "Learn to handle the weapon to harness its power!" + }, + { + "style": "Note", + "text": "Take a minute to reflect on the following: what do you think your odds of success at algorithmic trading would be without such a powerful tool in your hands? It's worth learning it!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-055-tutorial-step-take-position-event..json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-055-tutorial-step-take-position-event..json new file mode 100644 index 000000000..d7f4b54cd --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-055-tutorial-step-take-position-event..json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 55, + "type": "Tutorial Step - Take Position Event...", + "definition": { + "icon": { + "project": "Superalgos", + "name": "take-position-event" + }, + "text": "Let's move on and start working on the definition of the Take Position Event!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "A quick refresher about the hypothesis we came up with during the previous tutorial: In the context of a downtrend in the daily chart, a breakdown of the Bollinger Bands in the 1H chart may predict an acceleration of the downtrend. A breakdown means a candle closing below the lower band, so, let's find out how a close of a candle is described in Superalgos." + }, + { + "style": "Callout", + "text": "This is the page documenting the Candles Volumes indicator. Scroll down to the Products & Properties > Candles section and read!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-056-tutorial-step-candle-properties.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-056-tutorial-step-candle-properties.json new file mode 100644 index 000000000..5f2f18286 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-056-tutorial-step-candle-properties.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 56, + "type": "Tutorial Step - Candle Properties", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-candles" + }, + "text": "We have direct access to the properties of candles, and the value of the close is available at the close property." + }, + "paragraphs": [ + { + "style": "Text", + "text": "This makes accessing the close value of the candle quite straightforward:" + }, + { + "style": "List", + "text": "Declare the time frame:
chart.at01hs." + }, + { + "style": "List", + "text": "Followed by product and property:
candle.close" + }, + { + "style": "Success", + "text": "That was the easy bit! Let's tackle the Bollinger Bands bit!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-057-tutorial-step-a-close-below-the-bands.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-057-tutorial-step-a-close-below-the-bands.json new file mode 100644 index 000000000..02a763cfd --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-057-tutorial-step-a-close-below-the-bands.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 57, + "type": "Tutorial Step - A Close Below the Bands?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-bands" + }, + "text": "How do we describe a candle closing below the lower band? Let's see how the lower band is described!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "The description of the Bollinger Bands explains that the upper and lower bands are located two standard deviations above and below the moving average (MA) respectively. We know the MA, as is offered in the movingAverage property. The standard deviation is offered in the standardDeviation property." + }, + { + "style": "Callout", + "text": "The lower band is located two standard deviations below the MA. Then the lower band equals the MA minus the standard deviation times two." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-058-tutorial-step-one-more-detail.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-058-tutorial-step-one-more-detail.json new file mode 100644 index 000000000..d1cda05b5 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-058-tutorial-step-one-more-detail.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 58, + "type": "Tutorial Step - One More Detail!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-bands" + }, + "text": "Look at the BB properties again! Two standard deviations is the deviation property!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "So, the lower band is the MA minus the deviation!" + }, + { + "style": "Callout", + "text": "Can you write the condition with this information? Open a text editor and try it!" + }, + { + "style": "Success", + "text": "The close of the candle in the 1H chart is lesser than the moving average minus the deviation!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-059-tutorial-step-lets-break-it-down.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-059-tutorial-step-lets-break-it-down.json new file mode 100644 index 000000000..8e2f48bf0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-059-tutorial-step-lets-break-it-down.json @@ -0,0 +1,42 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 59, + "type": "Tutorial Step - Let's Break It Down!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "condition" + }, + "text": "We will go through the statement step and step and put it into proper syntax!" + }, + "paragraphs": [ + { + "style": "List", + "text": "Remember, time goes first: in the 1H chart! ", + "updated": 1610470932699 + }, + { + "style": "Javascript", + "text": "chart.at01hs." + }, + { + "style": "List", + "text": "The close of the candle is lesser than: ", + "updated": 1610470968732 + }, + { + "style": "Javascript", + "text": "candle.close <" + }, + { + "style": "List", + "text": "The moving average minus the deviation, with a time frame defined for every statement:", + "updated": 1610471073502 + }, + { + "style": "Javascript", + "text": "chart.at01hs.bollingerBand.movingAverage - \nchart.at01hs.bollingerBand.deviation", + "updated": 1610471042788 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-060-tutorial-step-lets-define-it.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-060-tutorial-step-lets-define-it.json new file mode 100644 index 000000000..c1e10f06b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-060-tutorial-step-lets-define-it.json @@ -0,0 +1,29 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 60, + "type": "Tutorial Step - Let's Define It!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "javascript-code" + }, + "text": "We are ready to set up the condition under the Take Position Event! Let's do it!" + }, + "paragraphs": [ + { + "style": "Javascript", + "text": "chart.at01hs.candle.close < \nchart.at01hs.bollingerBand.movingAverage - \nchart.at01hs.bollingerBand.deviation", + "updated": 1610471254569 + }, + { + "style": "Callout", + "text": "Copy and paste the statement!", + "updated": 1610471298083 + }, + { + "style": "Success", + "text": "Remember to give the condition a descriptive name! 1H Breakdown?", + "updated": 1610471356372 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-061-tutorial-step-the-second-close.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-061-tutorial-step-the-second-close.json new file mode 100644 index 000000000..5a954b7b1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-061-tutorial-step-the-second-close.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 61, + "type": "Tutorial Step - The Second Close", + "definition": { + "icon": { + "project": "Superalgos", + "name": "condition" + }, + "text": "When we came up with the trading idea, we noticed that a single breakdown in the 1H chart would produce bad entries..." + }, + "paragraphs": [ + { + "style": "Text", + "text": "We decided that a first breakdown would be our signal, and that a second consecutive breakdown would be our confirmation." + }, + { + "style": "Callout", + "text": "Let's refresh the concepts that will help us describe that situation! We are back on the Syntax Overview page. Please, read the section about the Previous Property!" + }, + { + "style": "Text", + "text": "Can you write a second condition to finish the definition of the take position event?" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-062-tutorial-step-the-previous-close.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-062-tutorial-step-the-previous-close.json new file mode 100644 index 000000000..ef1da193f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-062-tutorial-step-the-previous-close.json @@ -0,0 +1,29 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 62, + "type": "Tutorial Step - The Previous Close", + "definition": { + "icon": { + "project": "Superalgos", + "name": "javascript-code" + }, + "text": "Two consecutive closes means that the current and the previous candle close below the lower band!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "To describe the close of the previous candle, we need to use the previous property to modify each property of each indicator used on both sides of the statement:", + "updated": 1610471485501 + }, + { + "style": "Javascript", + "text": "chart.at01hs.candle.previous.close < \nchart.at01hs.bollingerBand.previous.movingAverage - \nchart.at01hs.bollingerBand.previous.deviation", + "updated": 1610471501818 + }, + { + "style": "Callout", + "text": "Create a new condition under the same situation and use the code above!", + "updated": 1610471548093 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-063-tutorial-step-the-previous-property.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-063-tutorial-step-the-previous-property.json new file mode 100644 index 000000000..d88dde0f3 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-063-tutorial-step-the-previous-property.json @@ -0,0 +1,29 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 63, + "type": "Tutorial Step - The Previous Property", + "definition": { + "icon": { + "project": "Superalgos", + "name": "record-property" + }, + "text": "I mentioned we would use the previous property to modify each property on both sides of the statement..." + }, + "paragraphs": [ + { + "style": "Note", + "text": "But such use is not mandatory! You may use the previous property as you wish. We need to compare the close of the candle with the moving average and the deviation of the same candle! That is why we apply it to all statements!", + "updated": 1610471797965 + }, + { + "style": "Text", + "text": "But you may, for instance, want to compare the close of the current candle to the close of the previous candle:", + "updated": 1610471869420 + }, + { + "style": "Javascript", + "text": "chart.at01hs.candle.close > \nchart.at01hs.candle.previous.close", + "updated": 1610471621224 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-064-tutorial-step-second-backtest.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-064-tutorial-step-second-backtest.json new file mode 100644 index 000000000..ad64917ae --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-064-tutorial-step-second-backtest.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 64, + "type": "Tutorial Step - Second Backtest!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "backtesting-session" + }, + "text": "Now that we have implemented statements involving the 1H chart, we need to revise our testing parameters!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Make the following changes in these parameters:" + }, + { + "style": "List", + "text": "Time Range: change the initialDateTime to 2020-02-01, so that we avoid the errors during the first 19 days of January." + }, + { + "style": "List", + "text": "Time Frame: change the label to 01-hs to adapt to the current definitions." + }, + { + "style": "Note", + "text": "We are not addressing the rest of the parameters yet, as we haven't defined the Open Stage, the one dealing with execution." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-065-tutorial-step-lets-do-it.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-065-tutorial-step-lets-do-it.json new file mode 100644 index 000000000..daabaf7b9 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-065-tutorial-step-lets-do-it.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 65, + "type": "Tutorial Step - Let's Do It!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "task" + }, + "text": "This is going to take a bit longer than the first backtest, as we are now testing on the 1H time frame." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "If your trading task is still running, select Run on the Backtesting Session menu. If not, select Run on the Task menu first." + }, + { + "style": "Note", + "text": "When the progress notice of the Trading Process Instance get's to the 100% mark, stop the task and click Next." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-066-tutorial-step-lets-get-on-the-same-page.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-066-tutorial-step-lets-get-on-the-same-page.json new file mode 100644 index 000000000..08e98e49b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-066-tutorial-step-lets-get-on-the-same-page.json @@ -0,0 +1,38 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 66, + "type": "Tutorial Step - Let's Get On The Same Page", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bot-data-dependencies" + }, + "text": "I just brought you to the one hour chart! Before discussing what we see here, let's take a minute to organize your chart." + }, + "paragraphs": [ + { + "style": "Text", + "text": "That way I can make sure you see the same things I see!" + }, + { + "style": "List", + "text": "Masters Data Layer Manager: Turn everything off but the Candles and the Bollinger Bands layers." + }, + { + "style": "List", + "text": "Simulation Objects Layer Manager: Turn everything off but the Strategies and Trigger Stages layers." + }, + { + "style": "List", + "text": "Trading System Layer Manager: Turn everything off but the Trading System Errors, Highlights, and Values layers." + }, + { + "style": "List", + "text": "Trading Engine Layer Manager: Turn everything off." + }, + { + "style": "Text", + "text": "The next video shows what I see... and what you should!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-067-tutorial-step-trading-systems-second-backtest.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-067-tutorial-step-trading-systems-second-backtest.json new file mode 100644 index 000000000..d97bad0f4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-067-tutorial-step-trading-systems-second-backtest.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 67, + "type": "Tutorial Step - Trading Systems Second Backtest", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/trading-systems-second-backtest.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-068-tutorial-step-what-do-we-have-here.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-068-tutorial-step-what-do-we-have-here.json new file mode 100644 index 000000000..fddd14d74 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-068-tutorial-step-what-do-we-have-here.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 68, + "type": "Tutorial Step - What Do We Have Here?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "help" + }, + "text": "In our first backtest, the strategy triggered after the daily Feb 26th candle closes. That shouldn't change on this one!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Take a look! The strategy is triggered as soon as the last hourly candle of Feb 26th closes!" + }, + { + "style": "Text", + "text": "Of course, the triggering has nothing to do with the hourly candle closing, but with the daily candle (that closes at the same time) validating both trigger on conditions as true. It doesn't matter what chart you are looking at or in what time frame the trading session runs. The trading bot validates each statement on the defined time frame." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-069-tutorial-step-take-position-event.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-069-tutorial-step-take-position-event.json new file mode 100644 index 000000000..5fbe770d4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-069-tutorial-step-take-position-event.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 69, + "type": "Tutorial Step - Take Position Event", + "definition": { + "icon": { + "project": "Superalgos", + "name": "take-position-event" + }, + "text": "Let's do a quick check on the take position event and then address the elephant in the room: we have errors!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "We mentioned earlier that when either the take position event or the trigger of event validates true, the trigger stage closes." + }, + { + "style": "Callout", + "text": "Well, we can see the Trigger Stage closing on Feb 28th, at 9 hs... right after two consecutive hourly closes below the lower band! So far so good!" + }, + { + "style": "Warning", + "text": "But we have errors immediately after that! Can you figure out what's going on?" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-070-tutorial-step-find-the-error-challenge.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-070-tutorial-step-find-the-error-challenge.json new file mode 100644 index 000000000..f9a9c6036 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-070-tutorial-step-find-the-error-challenge.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 70, + "type": "Tutorial Step - Find The Error Challenge", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-error" + }, + "text": "Did you find the error? What? You haven't looked? I just split the screen so that you may do your thing!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "The Trading System Errors layer is on! Go ahead and track the error on the Trading System!" + }, + { + "style": "Success", + "text": "Remember... You just need to point to the error at the bottom of the chart, find the red circle on the design space, read the error message, and interpret it! Good luck!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-071-tutorial-step-target-rate-error.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-071-tutorial-step-target-rate-error.json new file mode 100644 index 000000000..c06a8fad6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-071-tutorial-step-target-rate-error.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 71, + "type": "Tutorial Step - Target Rate Error", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-error" + }, + "text": "Did you find the error? You must have tracked it deep into the Open Stage, on the formula of the Target Rate definition!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Let me explain what this is about." + }, + { + "style": "Callout", + "text": "When the Take Position Event validates true, the Trigger Stage is closed, and both the Open Stage and the Manage Stage are opened!" + }, + { + "style": "Text", + "text": "We are getting an error on the first node of the open stage the trading bot evaluates. That is, if we fix that error, more errors will pop up when the trading bot attempts to evaluate the rest of the nodes that are also undefined." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-072-tutorial-step-radical-workaround.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-072-tutorial-step-radical-workaround.json new file mode 100644 index 000000000..6de3cd003 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-072-tutorial-step-radical-workaround.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 72, + "type": "Tutorial Step - Radical Workaround", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-error" + }, + "text": "The definitions in the open, close, and manage stages are the subject of the next tutorial in the series!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "To complete the overview of the Trigger Stage we want to be able to see how the Take Position Event works on the rest of the time range tested. We are going to go for a radical workaround!" + }, + { + "style": "Callout", + "text": "Delete the open, close, and manage stages! Use the Delete button on the menu!" + }, + { + "style": "Text", + "text": "This way, when the take position event validates true and the trading bot attempts to read the definitions of the open stage, it will understand that the rest of the strategy is not defined, and will close the strategy." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-073-tutorial-step-lets-test-again.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-073-tutorial-step-lets-test-again.json new file mode 100644 index 000000000..376d1890b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-073-tutorial-step-lets-test-again.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 73, + "type": "Tutorial Step - Let's Test Again!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "task" + }, + "text": "After you delete the open, close, and manage stages, you are ready to run a new backtest with the same parameters used earlier." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Let's do it! Run the task and session!" + }, + { + "style": "Note", + "text": "When you run multiple backtests on the same time frame, the earlier data is replaced. That is, a trading session stores one data set for each time frame. If you want to keep—and be able to access—different versions of the tests you should use different trading sessions, and even better, different trading systems so that you may keep the matching definitions as well!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-074-tutorial-step-are-errors-gone.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-074-tutorial-step-are-errors-gone.json new file mode 100644 index 000000000..1d282905f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-074-tutorial-step-are-errors-gone.json @@ -0,0 +1,27 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 74, + "type": "Tutorial Step - Are Errors Gone?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-strategy" + }, + "text": "Ok! As expected, we can see that the strategy closes after the trigger stage closes! The video in the next step shows what I see!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Let's unpack what happens after the trigger stage closes!" + }, + { + "style": "Callout", + "text": "Can you see the strategy triggering five times in a row starting on Feb 28th, at 9 hs?" + }, + { + "style": "Text", + "text": "This happens because as soon as the strategy closes, the bot goes back to evaluating the Trigger On Event. That is what it usually does after a position is closed... look for more trading opportunities! This behavior is part of the normal functioning of the system, and a consequence of not defining the open, close, and manage stages.", + "updated": 1610471951252 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-075-tutorial-step-trading-systems-third-backtest.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-075-tutorial-step-trading-systems-third-backtest.json new file mode 100644 index 000000000..2b9b84e27 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-075-tutorial-step-trading-systems-third-backtest.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 75, + "type": "Tutorial Step - Trading Systems Third Backtest", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/trading-systems-third-backtest.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-076-tutorial-step-lets-take-a-closer-look.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-076-tutorial-step-lets-take-a-closer-look.json new file mode 100644 index 000000000..687b2ce94 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-076-tutorial-step-lets-take-a-closer-look.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 76, + "type": "Tutorial Step - Let's Take a Closer Look!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bot-data-dependencies" + }, + "text": "We're going to take a few minutes to unpack everything we see on the chart so that you may fully understand how this works!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "The fact that the strategy is triggering and closing five times in a row in five consecutive candles must mean the following:" + }, + { + "style": "List", + "text": "The Trigger On Event validates true on each of these candles. " + }, + { + "style": "List", + "text": "The Take Position Event also validates true on each of these candles! " + }, + { + "style": "Success", + "text": "This also means that the strategy is triggering and taking the position on the same candle! Let's go and verify if all this is true!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-077-tutorial-step-trigger-on-conditions.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-077-tutorial-step-trigger-on-conditions.json new file mode 100644 index 000000000..efc55b133 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-077-tutorial-step-trigger-on-conditions.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 77, + "type": "Tutorial Step - Trigger On Conditions!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bot-data-dependencies" + }, + "text": "Trigger on conditions require the subchannel direction to be Down and the slope to not be Side at the current 24H candle!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "We are looking at 1H candles between 9 and 14 hs, on Feb 28th. Those are the candles on which the strategy is triggering and taking the position. Check for yourself!" + }, + { + "style": "Callout", + "text": "What is the current daily candle? Think of what you learned earlier about evaluating closed candles!" + }, + { + "style": "Text", + "text": "The current daily candle is the one that closed last: the Feb 27th candle, because the Feb 28th candle hasn't closed yet! Go to the 24H chart and confirm that the subchannel is Down and not Side on Feb 27th!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-078-tutorial-step-take-position-conditions.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-078-tutorial-step-take-position-conditions.json new file mode 100644 index 000000000..3c67de4b7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-078-tutorial-step-take-position-conditions.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 78, + "type": "Tutorial Step - Take Position Conditions!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bot-data-dependencies" + }, + "text": "The take position conditions require that two consecutive 1H candles close below the lower Bollinger Band!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "That is quite easy to check! We've got the first close of the trigger stage at 9hs, after the 7hs and 8hs candles closed below the lower band. So, far, so good!" + }, + { + "style": "Callout", + "text": "We have four more consecutive hourly closes below the lower band! On each of them, the condition of two consecutive closes below the lower band is true! Now that we understand what we see on this chart, let's discuss what this means for our trading idea!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-079-tutorial-step-a-little-speculation-game.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-079-tutorial-step-a-little-speculation-game.json new file mode 100644 index 000000000..3197e7387 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-079-tutorial-step-a-little-speculation-game.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 79, + "type": "Tutorial Step - A Little Speculation Game", + "definition": { + "icon": { + "project": "Superalgos", + "name": "help" + }, + "text": "Let's do a quick mental exercise! Consider the point of the first take position event, that is, the 8hs candle, closing at 9 hs." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Discard the chain of strategies that follow, as those are a by-product of not defining the rest of the stages!" + }, + { + "style": "Callout", + "text": "Go to the Masters Data layer panel and turn on the plotter panel of the Candles layer in case it isn't!" + }, + { + "style": "Text", + "text": "Now place the pointer of the mouse on the 8hs candle. As you can see on the panel, that candle closed at 8702 USDT. That would be our take position rate, give or take slippage. Now go to the 12hs candle. The min value for that candle is 8445 USDT. After that short-term low, the market goes in an uptrend (in the 1H time frame)." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-080-tutorial-step-trading-systems-candles-panel.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-080-tutorial-step-trading-systems-candles-panel.json new file mode 100644 index 000000000..52ff9e78c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-080-tutorial-step-trading-systems-candles-panel.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 80, + "type": "Tutorial Step - Trading Systems Candles Panel", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/trading-systems-candles-panel.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-081-tutorial-step-not-so-great-right.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-081-tutorial-step-not-so-great-right.json new file mode 100644 index 000000000..835c4e9eb --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-081-tutorial-step-not-so-great-right.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 81, + "type": "Tutorial Step - Not So Great Right?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "hit-fail" + }, + "text": "That first entry doesn't look great if you ask me! Let's carry on with the same speculation game on the second potential entry!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "This is the next instance of the trigger stage after the time range we analyzed earlier." + }, + { + "style": "Callout", + "text": "Looks a lot more promising, right? It's the prelude to the March 12th crash, and there are good entries ahead of it!" + }, + { + "style": "Text", + "text": "The first is at the close of the 15hs candle on March 8th. The second, at the close of the 8hs candle on March 12th. This is exactly what we were expecting from the analysis we did in the second tutorial." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-082-tutorial-step-lets-wrap-it-up.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-082-tutorial-step-lets-wrap-it-up.json new file mode 100644 index 000000000..291c4946f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-trigger-stage-082-tutorial-step-lets-wrap-it-up.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 82, + "type": "Tutorial Step - Let's Wrap It Up!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trigger-stage" + }, + "text": "We've covered the basics and many of the nuances of the Trigger Stage, but the trading idea is not tested yet!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "This little speculation game we just played is just that... a game! To complete the test of the trading idea, we'll have to dive deep into the rest of the stages!" + }, + { + "style": "Callout", + "text": "And that is the subject of the next tutorial!" + }, + { + "style": "Success", + "text": "If you are ready to keep going, click Next to close this tutorial and select Play on the one to the right!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-001-tutorial-trading-bot-layers.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-001-tutorial-trading-bot-layers.json new file mode 100644 index 000000000..fbbb8c78a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-001-tutorial-trading-bot-layers.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 1, + "type": "Tutorial - Trading Bot Layers", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-bot" + }, + "text": "Let's get on with it! The Trading Bot outputs dozens of products, and they're all featured in three separate layer managers: Hi! I'm going to show you everything about the layers of the trading bot... the ones featured on charts associated with trading sessions!" + }, + "paragraphs": [ + { + "style": "List", + "text": "Trading Engine features layers that turn on and off the reporting of values of nodes in the Trading Engine hierarchy." + }, + { + "style": "List", + "text": "Trading System features layers that turn on and off multiple types of reports at the level of the Trading System." + }, + { + "style": "List", + "text": "Simulation Objects features layers that affect the rendering of visual information over the charts." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-002-tutorial-step-load-a-fresh-workspace.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-002-tutorial-step-load-a-fresh-workspace.json new file mode 100644 index 000000000..9bd70c93f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-002-tutorial-step-load-a-fresh-workspace.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 2, + "type": "Tutorial Step - Load a Fresh Workspace!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "workspace" + }, + "text": "But before we go any further, let's make sure we are starting with a fresh workspace!" + }, + "paragraphs": [ + { + "style": "Note", + "text": "Workspaces with the prefix Plugin → comes with the software. The rest are yours. When you open a plugin workspace a copy of it is made for you. Plugins allways remain unchanged." + }, + { + "style": "Important", + "text": "This tutorial requires starting with a fresh Plugin → Weak-hands Buster v2 workspace. So, unless you loaded the plugin workspace right before starting, please select it from the workspace panel on the right and come back to me after the workspace loads—just click Resume on my menu!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-003-tutorial-step-feeze-dont-move.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-003-tutorial-step-feeze-dont-move.json new file mode 100644 index 000000000..aef6004ca --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-003-tutorial-step-feeze-dont-move.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 3, + "type": "Tutorial Step - Feeze! Don't Move!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "stop-loss" + }, + "text": "I've got something to tell you before we move on, but I'm struggling to find the right words... I just wouldn't want to come across as a control freak!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "It's not like you may break something or anything... nothing to fear at all... it's just that... I rely on the fresh state of the workspace to predict what you will see when I take you places. I may comment on what you will experience along the journey, and use my predictions to make the tour juicier and interesting! So..." + }, + { + "style": "Callout", + "text": "Don't fool around too much unless I tell you to! I mean, you may look around, but don't make a mess! Fine! Do what you want! If you ever feel I lost you, just start over with a fresh workspace!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-004-tutorial-step-ready-to-mine.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-004-tutorial-step-ready-to-mine.json new file mode 100644 index 000000000..71d521274 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-004-tutorial-step-ready-to-mine.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 4, + "type": "Tutorial Step - Ready to Mine.....?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "data-tasks" + }, + "text": "We'll do some data mining so that we may then run a quick Backtesting Session and explore the resulting simulation..." + }, + "paragraphs": [ + { + "style": "Note", + "text": "The sensor bot will run on the BTC/USDT market (Binance) from January 1st, 2020, along with the indicators required by the Weak-hands Buster Trading System." + }, + { + "style": "Warning", + "text": "If you have data on this market/exchange but on a different time range, this may affect your data! Read the sensor bot documentation to learn how! If the data you have is not important, feel free to keep going!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-005-tutorial-step-lets-mine-some-data.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-005-tutorial-step-lets-mine-some-data.json new file mode 100644 index 000000000..c704955bd --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-005-tutorial-step-lets-mine-some-data.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 5, + "type": "Tutorial Step - Let's Mine Some Data.....!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "run" + }, + "text": "Now that you understand the implications of running this data mining operation, let's get on with it!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Select Run All Exchange Data Tasks on the data mining node menu!" + }, + { + "style": "Note", + "text": "If you are doing this tutorial after doing the Getting Started tutorial, chances are you may already have part of the data required, which may make things faster!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-006-tutorial-step-are-we-up-to-date.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-006-tutorial-step-are-we-up-to-date.json new file mode 100644 index 000000000..255d4cfe8 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-006-tutorial-step-are-we-up-to-date.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 6, + "type": "Tutorial Step - Are We Up to Date.....?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "indicator-process-instance" + }, + "text": "Now we have to wait a bit! When all processes reach the 100% mark, we may proceed!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "As you probably know, the time required to mine data depends on many things. If you already have some of this data from previous activities, it may be faster!" + }, + { + "style": "Callout", + "text": "Monitor the processes for all indicators in the Sparta and Masters data mines. When all of them reach 100%, then stop the data mining operation and click Next to continue." + }, + { + "style": "Success", + "text": "Bollinger Channels will likely be last!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-007-tutorial-step-ready.-set.-go.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-007-tutorial-step-ready.-set.-go.json new file mode 100644 index 000000000..06e56b8cb --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-007-tutorial-step-ready.-set.-go.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 7, + "type": "Tutorial Step - Ready. Set. Go.....!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "task" + }, + "text": "Let's do some backtesting! This should be rather quick, as we are testing six months' worth of historic data on daily files." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Running a trading task is quite similar to running a data mining task. The difference lies in that—after running the task—you also need to run the trading session." + }, + { + "style": "Callout", + "text": "Select Run on the Task menu and then select Run on the Backtesting Session menu." + }, + { + "style": "Note", + "text": "When the Backtesting Session informs it has finished, then stop the task and click Next to continue." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-008-tutorial-topic-trading-engine-layers.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-008-tutorial-topic-trading-engine-layers.json new file mode 100644 index 000000000..cfebfc326 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-008-tutorial-topic-trading-engine-layers.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 8, + "type": "Tutorial Topic - Trading Engine Layers", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-engine" + }, + "text": "You are familiar with the concept of the Trading Engine, right? I will teach you which layers affect which sections of the hierarchy so that you may access the info!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "I'm assuming you've done the Welcome tutorial... Remember when you split the screen in half? You slid the mouse pointer over the candles on the chart, and for each candle, you could see the value of certain nodes in the trading engine hierarchy, right?" + }, + { + "style": "Callout", + "text": "Well, that's what it's all about! When you turn a certain layer on, you turn on the visualization of values for a certain section of the hierarchy." + }, + { + "style": "Text", + "text": "Let's take a closer look!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-009-tutorial-step-1-2-3-counting.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-009-tutorial-step-1-2-3-counting.json new file mode 100644 index 000000000..30aa22af6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-009-tutorial-step-1-2-3-counting.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 9, + "type": "Tutorial Step - 1, 2, 3, Counting!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "episode-counters" + }, + "text": "Let's test the first Layer in the Trading Engine Layer Manager: Episode Counters." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Turn the layer on and slide your mouse pointer over the chart, from the far left to the far right-hand side of your screen!" + }, + { + "style": "Success", + "text": "See what happens with the various counters on the hierarchy below... that is, Periods, Strategies, Positions, and so on! You should see something similar to what I show in the video on the next step..." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-010-tutorial-step-trading-bot-layers-episode-counters-01.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-010-tutorial-step-trading-bot-layers-episode-counters-01.json new file mode 100644 index 000000000..a7eaac19a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-010-tutorial-step-trading-bot-layers-episode-counters-01.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 10, + "type": "Tutorial Step - Trading Bot Layers Episode Counters 01", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/trading-bot-layers-episode-counters-01.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-011-tutorial-step-how-about-the-rest.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-011-tutorial-step-how-about-the-rest.json new file mode 100644 index 000000000..7c6a4df75 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-011-tutorial-step-how-about-the-rest.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 11, + "type": "Tutorial Step - How About the Rest?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "episode" + }, + "text": "Now, why don't the nodes further to the left show their values too? Say, Exit Type, Status, End Rate, Begin Rate, and so on?" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Let's change that!" + }, + { + "style": "Callout", + "text": "Scroll the Trading Engine layer manager until you find the Current Episode layer. Turn it on!" + }, + { + "style": "Text", + "text": "Now slide your mouse pointer again... et voilà!" + }, + { + "style": "Success", + "text": "By turning layers on and off, you turn on and off system's ability to report the values on different sections of the Trading Engine hierarchy!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-012-tutorial-step-et-voilà.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-012-tutorial-step-et-voilà.json new file mode 100644 index 000000000..1be65d956 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-012-tutorial-step-et-voilà.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 12, + "type": "Tutorial Step - Et Voilà!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "current" + }, + "text": "So, we turned on the Episode Counters and the Current Episode layers... let's take a look at the hierarchy..." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Track your way up the hierarchy to discover what exactly we were looking at all this time..." + }, + { + "style": "Text", + "text": "Right! In the beginning Periods, Strategies, and Positions where showing their values because they are under the Episode Counters node of the hierachy... the one we turned on first!

If you follow the hierarchy upstream, you will find the Episode node, and if you keep going further upstream, you'll find the Current node. Exactly! Current Episode!." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-013-tutorial-step-compartmentalize-it.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-013-tutorial-step-compartmentalize-it.json new file mode 100644 index 000000000..5ea9582c3 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-013-tutorial-step-compartmentalize-it.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 13, + "type": "Tutorial Step - Compartmentalize It!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bot-layers" + }, + "text": "The reason why the access to values in the hierarchy is compartmentalized in layers is that layers correspond to data products output by the bot." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Compartmentalization of definitions—and information in general—is a theme in and of itself throughout the system, as it is one of the mechanisms by which complexity is successfully administered." + }, + { + "style": "Callout", + "text": "When you need to use this feature to track values on the trading engine hierarchy, you may choose to turn on multiple layers at once... even all of them if you wish! Just keep in mind that the more layers you turn on, the more files de UI reads, thus the more load you put on your hardware!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-014-tutorial-step-elefant-what-elefant.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-014-tutorial-step-elefant-what-elefant.json new file mode 100644 index 000000000..275f4f465 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-014-tutorial-step-elefant-what-elefant.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 14, + "type": "Tutorial Step - Elefant? What Elefant?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "strategy" + }, + "text": "Will someone please acknowledge the elefant in the room? Why did those counters point to one or two strategies and one position?" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Go to the Simulation Objects layer manager and turn on the Strategies layer." + }, + { + "style": "Text", + "text": "What's that? It's a strategy! We are in a simulation! The Strategies layer marks the span of time on which a strategy is active. Notice the Plotter Panel that drifted to the corner when you turned the layer on. Now, point your mouse to the span of time between the strategy brakets and see what happens..." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-015-tutorial-step-making-sense-of-objects.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-015-tutorial-step-making-sense-of-objects.json new file mode 100644 index 000000000..6e47df964 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-015-tutorial-step-making-sense-of-objects.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 15, + "type": "Tutorial Step - Making Sense of Objects", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer" + }, + "text": "The layers in the Simulation Objects layer manager feature visual representations of the data that makes up simulations." + }, + "paragraphs": [ + { + "style": "Text", + "text": "In other words, each of these layers render graphics over the charts that help us visualize—therefore, better understand—what happens during a trading session." + }, + { + "style": "Note", + "text": "Each layer may feature plotter panels which usually display the hard data associated with the concept represented by the particular layer." + }, + { + "style": "Success", + "text": "Notice how the data in the panel becomes visible only when the pointer of the mouse lies within the candles engulfed by the object." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-016-tutorial-step-what-about-the-position.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-016-tutorial-step-what-about-the-position.json new file mode 100644 index 000000000..53203c3b7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-016-tutorial-step-what-about-the-position.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 16, + "type": "Tutorial Step - What About the Position?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "position" + }, + "text": "As you very clearly pointed, the episode counters showed a strategy, but also a position... what about that?" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Scroll down the Simulation Objects layer manager and turn on the Position Base Asset layer!" + }, + { + "style": "Text", + "text": "Nice! A green triangle means that the position was a hit! It would be red otherwise!" + }, + { + "style": "Note", + "text": "The horizontal side of the triangle marks the Entry Target Rate. The vertical side marks the datetime the position was closed. The vertex away from the horizontal side is the Exit Target Rate." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-017-tutorial-step-the-beauty-of-the-triangle.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-017-tutorial-step-the-beauty-of-the-triangle.json new file mode 100644 index 000000000..3142eeebe --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-017-tutorial-step-the-beauty-of-the-triangle.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 17, + "type": "Tutorial Step - The Beauty of the Triangle", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-warning" + }, + "text": "I'm sure you would agree that the triangle is a quick visual clue to grasp how the trade went in a glimpse!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "That's one of the core ideas behind these visualization features: quick and effective communication." + }, + { + "style": "Note", + "text": "The second core idea is that—by being able to see what went on with the session—it is easier to spot the weaknesses in your strategies, and how you may be able to improve them!" + }, + { + "style": "Success", + "text": "On a side note, notice that the data displayed on panels is the same data available on the Trading Engine hierarchy." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-018-tutorial-step-why-3-position-layers.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-018-tutorial-step-why-3-position-layers.json new file mode 100644 index 000000000..052649679 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-018-tutorial-step-why-3-position-layers.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 18, + "type": "Tutorial Step - Why 3 Position Layers?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "position" + }, + "text": "Did you notice there are three different layers about positions? Position, Position Base Asset, and Position Quoted Asset!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "I'll give you the short version:" + }, + { + "style": "Callout", + "text": "The system keeps the accounts relative to both the base asset and the quoted asset. It also keeps a consolidated account of both assets (hence, position). What set of accounts is relevant to you depends on how the strategy is designed!" + }, + { + "style": "Important", + "text": "Reading this documentation page is a must to fully understand this concept." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-019-tutorial-step-remember-flexibility.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-019-tutorial-step-remember-flexibility.json new file mode 100644 index 000000000..1a9c27071 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-019-tutorial-step-remember-flexibility.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 19, + "type": "Tutorial Step - Remember Flexibility!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "nodes-highlights" + }, + "text": "A corollary to the previous step is that not everything will make sense to you!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Superalgos is designed and built with flexibility in mind. Different users, different approaches to trading, different strategies, they all have different needs!" + }, + { + "style": "Callout", + "text": "The system doesn't know what your intent is. It provides a set of tools that you need to use wisely for them to make sense!" + }, + { + "style": "Success", + "text": "Learn to pay attention to the information that is relevant to you and discard what is not!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-020-tutorial-step-phased-management.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-020-tutorial-step-phased-management.json new file mode 100644 index 000000000..819fee2e9 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-020-tutorial-step-phased-management.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 20, + "type": "Tutorial Step - Phased Management", + "definition": { + "icon": { + "project": "Superalgos", + "name": "phase" + }, + "text": "The Manage Stage enables the management of your stop loss and take profit targets in phases. Let's see how that looks in simulations..." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Find the Stop Loss and the Take Profit layers and turn them on!" + }, + { + "style": "Text", + "text": "It's probably self-explanatory, right? The Phase icon marks the switching of phases, thus, of the Formula used to determine each target." + }, + { + "style": "Success", + "text": "This is a fantastic feature when designing strategies, as you can literally see what the formula does, and how phases change!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-021-tutorial-step-orders-in-order.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-021-tutorial-step-orders-in-order.json new file mode 100644 index 000000000..c83a91296 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-021-tutorial-step-orders-in-order.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 21, + "type": "Tutorial Step - Orders in Order", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-market-sell-order" + }, + "text": "You're familiar with the visualization of limit orders from the Welcome tutorial. It's time for market orders to shine!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Weak-hands Buster V.2—born with earlier versions of the system—uses single market orders to get in and out of positions. Let's see how those look over the charts..." + }, + { + "style": "Callout", + "text": "Find the Market Buy Orders and Market Sell Orders layers and turn them on!" + }, + { + "style": "Note", + "text": "Like with limit orders, a red bullet means a sell order, and a green bullet means a buy order." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-022-tutorial-step-stages-time.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-022-tutorial-step-stages-time.json new file mode 100644 index 000000000..c2a3579bb --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-022-tutorial-step-stages-time.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 22, + "type": "Tutorial Step - Stages & Time", + "definition": { + "icon": { + "project": "Superalgos", + "name": "close-stage-event" + }, + "text": "Layers corresponding to stages, that is, Trigger Stage, Open Stage, Close Stage, and Manage Stage are markers of spans of time." + }, + "paragraphs": [ + { + "style": "Text", + "text": "That is, they signal the span of time on which each stage was open." + }, + { + "style": "Callout", + "text": "Try them out! Find the layers of the different stages and turn them on!" + }, + { + "style": "Success", + "text": "Feel free to turn off a few of the layers you have on at the moment, for clarity!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-023-tutorial-step-episode-x.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-023-tutorial-step-episode-x.json new file mode 100644 index 000000000..9e17eb3a3 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-023-tutorial-step-episode-x.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 23, + "type": "Tutorial Step - Episode X", + "definition": { + "icon": { + "project": "Superalgos", + "name": "episode" + }, + "text": "There's one layer left... Episode!. It marks the duration of the episode and features several plotter panels..." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Turn the Episode layer on!" + }, + { + "style": "Text", + "text": "In this case, the episode is six months long, so all you will see is a line at the bottom of the screen, and the episode icon on both sides, signaling the episode is longer than the period represented on screen." + }, + { + "style": "Note", + "text": "As usual, the plotter panels feature information that explained on the Trading Engine section of the documentation." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-024-tutorial-step-understanding-objects-data.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-024-tutorial-step-understanding-objects-data.json new file mode 100644 index 000000000..6e1b27d77 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-024-tutorial-step-understanding-objects-data.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 24, + "type": "Tutorial Step - Understanding Objects Data", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-warning" + }, + "text": "The data available in Simulation Objects represent the state of affairs at the moment the object is closed, or at the current time if it hasn't closed yet!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "In contrast, the layers in the Trading Engine and Trading System layer managers represent the value of nodes at the candle signaled by the mouse pointer." + }, + { + "style": "Important", + "text": "This is a fundamental difference that you must understand, as otherwise, you may misinterpret the information presented by Simulation Objects. I will explain the most important implications in the next few steps!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-025-tutorial-step-daily-files-vs.-market-files.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-025-tutorial-step-daily-files-vs.-market-files.json new file mode 100644 index 000000000..f87b5655a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-025-tutorial-step-daily-files-vs.-market-files.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 25, + "type": "Tutorial Step - Daily Files vs. Market Files", + "definition": { + "icon": { + "project": "Superalgos", + "name": "dataset-definition" + }, + "text": "Superalgos processes time frames below one hour in Daily Files, meaning that the data corresponding to one day is stored in one file." + }, + "paragraphs": [ + { + "style": "Text", + "text": "In contrast, data for timeframes of one hour and above are stored in Market Files, meaning that data corresponding to the whole market is stored in one file." + }, + { + "style": "Text", + "text": "As a result, when working in time frames below one hour, events that span multiple days generate multiple objects: one per day!" + }, + { + "style": "Important", + "text": "This means that, when working in low time frames, you may run into multiple objects per concept or event, each showing the data corresponding to the close of the day!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-026-tutorial-step-bring-me-back-to-earth.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-026-tutorial-step-bring-me-back-to-earth.json new file mode 100644 index 000000000..af51dd336 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-026-tutorial-step-bring-me-back-to-earth.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 26, + "type": "Tutorial Step - Bring Me Back To Earth!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "take-position-event" + }, + "text": "I know! This all sounds too abstract! Let me lay out a few examples!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "When working in sub-hour time frames and a concept or event—for example, a position—spans multiple days:" + }, + { + "style": "List", + "text": "You may see multiple triangles! One triangle is drawn at the close of each day, and one last triangle is drawn at the close of the position, or—in case the position hasn't closed yet— at the current datetime." + }, + { + "style": "List", + "text": "Statistics and metrics are fragmented too! For example, ROI, Profit Loss, and the evaluation of the position as a hit or a fail are determined daily!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-027-tutorial-topic-trading-system-layers.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-027-tutorial-topic-trading-system-layers.json new file mode 100644 index 000000000..946c0bfe6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-027-tutorial-topic-trading-system-layers.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 27, + "type": "Tutorial Topic - Trading System Layers", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-system" + }, + "text": "The last layer manager is about the Trading System that features the trading rules for the simulation!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "These layers work similar to those in the Trading Engine layer manager: they show information on the design space, not on the charts. The difference is that these show stuff on the trading system hierarchy!" + }, + { + "style": "Note", + "text": "These layers are particularly useful when designing, testing, and debugging strategies! Just wait and see!" + }, + { + "style": "Success", + "text": "Before continuing, turn some Simulation Objects layers off to avoid cluttering up the screen!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-028-tutorial-step-trading-system-errors.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-028-tutorial-step-trading-system-errors.json new file mode 100644 index 000000000..8c6db76a7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-028-tutorial-step-trading-system-errors.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 28, + "type": "Tutorial Step - Trading System Errors!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-error" + }, + "text": "When writing conditions and formulas, you may make mistakes. Remember conditions must evaluate to true or false and formulas to a number?" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Well, if they don't, you will get an error! Turning on this layer when you're going back and forth crafting and testing a strategy is a must!" + }, + { + "style": "Callout", + "text": "There are no errors in this trading system, but I just planted a fake one so that you may see how they are reported! Look at the Formula on the left!" + }, + { + "style": "Text", + "text": "Now, what if the section of the hierarchy was collapsed? Would you still be able to see error messages?
Let's run a quick test! Collapse the Initial Targets node!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-029-tutorial-step-trading-system-highlights.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-029-tutorial-step-trading-system-highlights.json new file mode 100644 index 000000000..234706143 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-029-tutorial-step-trading-system-highlights.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 29, + "type": "Tutorial Step - Trading System Highlights!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-info" + }, + "text": "Whenever something relevant happens with any given node in the trading system hierarchy, the node is highlighted!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Turn the Trading System Highlights layer on, slide your mouse over the chart left of the position, and check these conditions and situations! Now place the mouse pointer over the candle where the strategy is triggered... (08 Mar 2020 at 01 hs)..." + }, + { + "style": "Note", + "text": "Conditions are highlighted when they validate true; situations, when all conditions validate true; stages and phases, when they become active, and so on!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-030-tutorial-step-trading-bot-layers-trading-system-highlights.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-030-tutorial-step-trading-bot-layers-trading-system-highlights.json new file mode 100644 index 000000000..030337988 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-030-tutorial-step-trading-bot-layers-trading-system-highlights.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 30, + "type": "Tutorial Step - Trading Bot Layers Trading System Highlights", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/trading-bot-layers-trading-system-highlights.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-031-tutorial-step-quick-refresher-on-stages.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-031-tutorial-step-quick-refresher-on-stages.json new file mode 100644 index 000000000..0e093a480 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-031-tutorial-step-quick-refresher-on-stages.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 31, + "type": "Tutorial Step - Quick Refresher on Stages!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trigger-stage" + }, + "text": "Notice that not all nodes are evaluated all the time! Only those in the active stage are!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "This is a quick refresher on strategy stages! If you haven't read the docs on trading systems and strategies, then find the time and do it!" + }, + { + "style": "Callout", + "text": "Notice how these conditions are not highlighted for the candles within the position." + }, + { + "style": "Text", + "text": "This is because you are looking at the Trigger Stage definitions. These definitions are evaluated until a Strategy is triggered. Once triggered, the Open Stage kicks in, and so on!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-032-tutorial-step-trading-system-values.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-032-tutorial-step-trading-system-values.json new file mode 100644 index 000000000..3eea17cfa --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-032-tutorial-step-trading-system-values.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 32, + "type": "Tutorial Step - Trading System Values!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "formula" + }, + "text": "The Trading System Values layers works like the layers on the Trading Engine layer manager showing the values of nodes..." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Turn the Trading System Values layer on, slide your mouse over the chart and check the stop formulas!" + }, + { + "style": "Note", + "text": "The common theme among these layers is that they provide on-the-fly information about each node, for each candle!" + }, + { + "style": "Success", + "text": "Is it fair to say that our Trading Bot is 100% acccountable?" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-033-tutorial-step-the-rest-of-the-crew.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-033-tutorial-step-the-rest-of-the-crew.json new file mode 100644 index 000000000..7d7b0cd8e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-033-tutorial-step-the-rest-of-the-crew.json @@ -0,0 +1,38 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 33, + "type": "Tutorial Step - The Rest of the Crew!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bot-layers" + }, + "text": "The rest of the layers are virtually self-explanatory once you understand the standard workings... so, I'll be brief!" + }, + "paragraphs": [ + { + "style": "List", + "text": "Status, for nodes which have one!" + }, + { + "style": "List", + "text": "Progress, for nodes that may feature an indication of progress!" + }, + { + "style": "List", + "text": "Running, for nodes that are evaluated at certain points in time!" + }, + { + "style": "List", + "text": "Announcements, for announcements set up at the trading system, currently broadcasted over Telegram!" + }, + { + "style": "List", + "text": "Warnings, when something unusual happens but is not considered an error!" + }, + { + "style": "List", + "text": "System Info, may be displayed on many nodes, sort of like a verbose mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-034-tutorial-step-time-to-go-out-and-play.json b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-034-tutorial-step-time-to-go-out-and-play.json new file mode 100644 index 000000000..36cd904af --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/trading-bot-layers-034-tutorial-step-time-to-go-out-and-play.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Trading Bot Layers", + "pageNumber": 34, + "type": "Tutorial Step - Time To Go Out and Play!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "play" + }, + "text": "That's all folks! We've covered it all! Now it's time to go out and play! Have fun!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Take some time to explore these layers, paying special attention to those you feel will be of the most use." + }, + { + "style": "Callout", + "text": "Remember, the Trading Bot Layers are a fundamental tool when designing, testing, and debugging strategies!

See you next time!" + }, + { + "style": "Success", + "text": "Drop by the documentation for more info!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/tutorial-step-we-have-our-conditions.json b/Projects/Superalgos/Schemas/Docs-Tutorials/tutorial-step-we-have-our-conditions.json new file mode 100644 index 000000000..90ecbc3f3 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/tutorial-step-we-have-our-conditions.json @@ -0,0 +1,32 @@ +{ + "tutorial": "Testing a Trading Idea - The Trigger Stage", + "pageNumber": 23, + "type": "Tutorial Step - We Have Our Conditions!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "condition" + }, + "text": "It seems like we have finally come up with a way to define a downtrend... let's set it up as two conditions!" + }, + "paragraphs": [ + { + "style": "List", + "text": "Condition 1: The direction property of the bollingerSubChannel product is Down in the 24H chart. Put in proper syntax:", + "updated": 1610392891777 + }, + { + "style": "Javascript", + "text": "chart.at24hs.bollingerSubChannel.direction === 'Down'" + }, + { + "style": "List", + "text": "Condition 2: The slope property of the bollingerSubChannel product is not Side in the 24H chart. Put in proper syntax:", + "updated": 1610392964616 + }, + { + "style": "Javascript", + "text": "chart.at24hs.bollingerSubChannel.slope != 'Side'" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-001-tutorial-welcome-to-superalgos.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-001-tutorial-welcome-to-superalgos.json new file mode 100644 index 000000000..af7801004 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-001-tutorial-welcome-to-superalgos.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 1, + "type": "Tutorial - Welcome to Superalgos!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "tutorial" + }, + "text": "I'm an interactive tutorial, the first in a series designed to facilitate your onboarding and teach you all the basics!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "I will get you started, show you the tools that will help you move around comfortably, and help you discover all the cool things that Superalgos may do for you." + }, + { + "style": "Callout", + "text": "I'm the ultimate Superalgos onboarding tool! Starting with Superalgos in any other way is a mistake, as no other resource will get you up to speed faster. I will answer most of your questions!" + }, + { + "style": "Success", + "text": "Please, always click Next to continue!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-002-tutorial-step-use-chrome-or-chrome.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-002-tutorial-step-use-chrome-or-chrome.json new file mode 100644 index 000000000..a745fc401 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-002-tutorial-step-use-chrome-or-chrome.json @@ -0,0 +1,34 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 2, + "type": "Tutorial Step - Use Chrome or Chrome!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-warning" + }, + "text": "When running the frontend, we highly recommend using Chrome!! We are not testing on any other browsers!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "It is a well-known fact that browsers behave differently, and we do know of features that do not work on other browsers. If you are on Chrome, click Next and continue. If not, do the following:" + }, + { + "style": "List", + "text": "Copy the current URL. " + }, + { + "style": "List", + "text": "Close this browser as is. Do not close the tutorial!" + }, + { + "style": "List", + "text": "Open Chrome and paste the URL. The tutorial should be open on this step when you come back." + }, + { + "style": "Warning", + "text": "We offer online support, but we can't help you with any browser other than Chrome!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-003-tutorial-step-thats-me-on-the-right.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-003-tutorial-step-thats-me-on-the-right.json new file mode 100644 index 000000000..cd239e9a2 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-003-tutorial-step-thats-me-on-the-right.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 3, + "type": "Tutorial Step - That's Me On the Right!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "tutorial" + }, + "text": "Tutorials are defined within the system, so you may create more of us if you wish! But we'll discuss that God-like power later on. Let's focus on the basics first!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Superalgos is inherently a visual tool. The system represents information in hierarchical structures of interconnected nodes, represented by icons. What you see on your right is one of these hierarchies—in particular, a Tutorial hierarchy with a label reading Welcome to Superalgos!" + }, + { + "style": "Callout", + "text": "Hover your mouse pointer over the Tutorial node and see what happens!" + }, + { + "style": "Text", + "text": "Wow! Cool right? That's a lot of buttons!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-004-tutorial-step-expand-that-node.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-004-tutorial-step-expand-that-node.json new file mode 100644 index 000000000..5df333ec8 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-004-tutorial-step-expand-that-node.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 4, + "type": "Tutorial Step - Expand That Node!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "expand" + }, + "text": "Each node features a menu. The button on the bottom-left expands and collapses the structure of nodes below the current node." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Go ahead and click the expand button!" + }, + { + "style": "Text", + "text": "The Tutorial node has several offspring, and these have several more offspring. That's why it's a hierarchy!" + }, + { + "style": "Note", + "text": "Structured visual representations of information are at the core of how Superalgos administers the complexity behind flexible and scalable trading operations." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-005-tutorial-step-lets-go-for-a-ride.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-005-tutorial-step-lets-go-for-a-ride.json new file mode 100644 index 000000000..79d6cd4db --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-005-tutorial-step-lets-go-for-a-ride.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 5, + "type": "Tutorial Step - Let's Go for a Ride!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "network" + }, + "text": "Before I show you the rest of the menu, let's take a look at another hierarchy: the Network." + }, + "paragraphs": [ + { + "style": "Text", + "text": "The Network hierarchy is the control room of the system. This is where you control your Data Tasks, Testing Trading Tasks, and Production Trading Tasks." + }, + { + "style": "Callout", + "text": "Expand the hierarchy and take a look inside!" + }, + { + "style": "Text", + "text": "See the nodes I mentioned earlier? Cool! We are here to start your first ever data mining operation." + }, + { + "style": "Note", + "text": "But before we start, I have a question for you! Are you accessing the Client remotely?" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-006-tutorial-step-remote-access.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-006-tutorial-step-remote-access.json new file mode 100644 index 000000000..6d5f3f2cc --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-006-tutorial-step-remote-access.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 6, + "type": "Tutorial Step - Remote Access!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "network-node" + }, + "text": "Superalgos allows running the Client on a machine and accessing it via Chrome from another machine in the network." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Many users choose to run the Client in the cloud, on single-board machines like the Raspberry Pi, or on a dedicated PC that they can leave on at all times when trading live. The My Computer Network Node represents the machine the Client is running on." + }, + { + "style": "Warning", + "text": "At this stage, Superalgos does not implement any form of security measures. Therefore, you should use the system in the context of a restricted Local Area Network only. If you chose to run the Client in the cloud, you must implement your own network security." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-007-tutorial-step-accessing-remotely.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-007-tutorial-step-accessing-remotely.json new file mode 100644 index 000000000..02c6b2660 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-007-tutorial-step-accessing-remotely.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 7, + "type": "Tutorial Step - Accessing Remotely?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "network-node" + }, + "text": "If you are accessing the Client from the same machine, you may click Next and skip this step now!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "If you are accessing the Client from a remote machine, you must adjust the Network Node configuration before continuing." + }, + { + "style": "List", + "text": "Open the Network Node menu and click Configure on the top-right corner." + }, + { + "style": "List", + "text": "Change the host parameter for the IP address of the machine running the backend." + }, + { + "style": "List", + "text": "Exit the configuration by removing the mouse pointer from the configuration bubble! If the configuration is correct, the error message in the Network Node should disappear in a minute!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-008-tutorial-step-ready-to-rock.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-008-tutorial-step-ready-to-rock.json new file mode 100644 index 000000000..54f03804a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-008-tutorial-step-ready-to-rock.json @@ -0,0 +1,34 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 8, + "type": "Tutorial Step - Ready to Rock?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "data-tasks" + }, + "text": "The Data Tasks node controls all the data mining tasks defined for this Network Node." + }, + "paragraphs": [ + { + "style": "Text", + "text": "You are about to start the first of the following activities that we'll cover in the next few minutes:" + }, + { + "style": "List", + "text": "1. Run a data mining operation to get data for the BTC/USDT Market from Binance." + }, + { + "style": "List", + "text": "2. Run a Backtesting Session with an existing open-source strategy." + }, + { + "style": "List", + "text": "3. Run a Live Trading Session with minimal funds, to test the critical aspects of the system." + }, + { + "style": "Callout", + "text": "Are you cool with this? Shall we start?" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-009-tutorial-step-binance.com-or-binance.us.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-009-tutorial-step-binance.com-or-binance.us.json new file mode 100644 index 000000000..427b4f352 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-009-tutorial-step-binance.com-or-binance.us.json @@ -0,0 +1,32 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 9, + "type": "Tutorial Step - Binance.com or Binance.us?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "binance" + }, + "text": "Before we start data mining, I have a little question for you: are you trading at binance.com or binance.us?" + }, + "paragraphs": [ + { + "style": "Text", + "text": "If you trade at binance.com or don't trade with Binance at all, then you may skip this step and the next!" + }, + { + "style": "Callout", + "text": "If you trade at binance.us you need to do something with the Binance node to the right! The video on the next step shows you how!" + }, + { + "style": "List", + "text": "1. Open the configuration and change the codeName to binanceus.", + "updated": 1610537934323 + }, + { + "style": "List", + "text": "2. Edit the label of the node to read Binanceus.", + "updated": 1610537864275 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-010-tutorial-step-welcome-binanceus.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-010-tutorial-step-welcome-binanceus.json new file mode 100644 index 000000000..20a401415 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-010-tutorial-step-welcome-binanceus.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 10, + "type": "Tutorial Step - Welcome Binanceus", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/welcome-binanceus.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-011-tutorial-step-lets-mine-some-data.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-011-tutorial-step-lets-mine-some-data.json new file mode 100644 index 000000000..1417cf18f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-011-tutorial-step-lets-mine-some-data.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 11, + "type": "Tutorial Step - Let's Mine Some Data!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "run" + }, + "text": "The Run All Project Data Tasks button on the top-right corner of the Data Tasks node menu runs... well... all Project Data Tasks!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "And that is exactly what we want to do, so..." + }, + { + "style": "Callout", + "text": "Select the button on the menu and let's mine!" + }, + { + "style": "Text", + "text": "Confirm the request by clicking the button a second time. In about 30 seconds, you should see a status notice below the Data Mining node indicating that 1 out of 1 Exchange Data Tasks node is running." + }, + { + "style": "Note", + "text": "Your console app should show something similar to the video on the next step." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-012-tutorial-step-welcome-start-data-mining-console.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-012-tutorial-step-welcome-start-data-mining-console.json new file mode 100644 index 000000000..221893821 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-012-tutorial-step-welcome-start-data-mining-console.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 12, + "type": "Tutorial Step - Welcome Start Data Mining Console", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/welcome-start-data-mining-console.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-013-tutorial-step-how-are-things-going.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-013-tutorial-step-how-are-things-going.json new file mode 100644 index 000000000..85785eeb7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-013-tutorial-step-how-are-things-going.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 13, + "type": "Tutorial Step - How Are Things Going?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "sensor-bot-instance" + }, + "text": "I just dragged you deep into the confines of the Data Mining operation. See the progress of the Sensor Bot Instance to your right!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "The sensor bot is currently extracting data from the exchange. As soon as she completes the extraction for the defined datetime range something really cool will happen... automatically!" + }, + { + "style": "Callout", + "text": "Can you guess what that may be?" + }, + { + "style": "Text", + "text": "I won't tell you! You'll find out soon... be patient! It should take no longer than 3 to 5 minutes to extract the data from Binance. Fine! Click Next for a quick hint!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-014-tutorial-step-candles-volumes-in-action.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-014-tutorial-step-candles-volumes-in-action.json new file mode 100644 index 000000000..f4c435a44 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-014-tutorial-step-candles-volumes-in-action.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 14, + "type": "Tutorial Step - Candles Volumes in Action", + "definition": { + "icon": { + "project": "Superalgos", + "name": "indicator-bot-instance" + }, + "text": "That's right! Indicators will start working as soon as the sensor bot finishes her job!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "You're watching the processes of Candles Volumes. She turns the one-minute candles the sensor bot downloads from the exchange into candles for all time frames." + }, + { + "style": "Callout", + "text": "What happens after Candles Volumes finishes?" + }, + { + "style": "Text", + "text": "Other bots need Candles Volumes to finish her work so that they may start doing theirs. Imagine a bot needs to calculate a 20-periods Simple Moving Average for all time frames. She needs the Data Product produced by Candles Volumes as input for the SMA calculation. We call such a need a Data Dependency." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-015-tutorial-step-click-drag-baby.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-015-tutorial-step-click-drag-baby.json new file mode 100644 index 000000000..3d90e4ddd --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-015-tutorial-step-click-drag-baby.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 15, + "type": "Tutorial Step - Click & Drag Baby!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "hand-drag" + }, + "text": "I want to show you something while the data mining operation progresses. I'll teach you how to walk... in two seconds!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Just click and drag with your mouse!" + }, + { + "style": "Text", + "text": "Easy, right? Great!

However, the design space is a huge place and I wouldn't want you to get tendinitis dragging your way around like this. I'll teach you a couple more tricks in the next couple of steps." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-016-tutorial-step-time-to-take-control.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-016-tutorial-step-time-to-take-control.json new file mode 100644 index 000000000..59b61400a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-016-tutorial-step-time-to-take-control.json @@ -0,0 +1,27 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 16, + "type": "Tutorial Step - Time to Take Control!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "key-ctrl" + }, + "text": "Yes! You may use your keyboard too! You are going to love this for long-distance travel on the design space!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Here's the trick:" + }, + { + "style": "Callout", + "text": "Regular folks may use the Ctrl key plus arrow keys: ← → ↑ ↓" + }, + { + "style": "Success", + "text": "Of course Mac fanboys and fangirls must replace Ctrl with Cmd", + "updated": 1610134856371 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-017-tutorial-step-spacetime-teleportation.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-017-tutorial-step-spacetime-teleportation.json new file mode 100644 index 000000000..e2988af20 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-017-tutorial-step-spacetime-teleportation.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 17, + "type": "Tutorial Step - Spacetime Teleportation!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "mouse-right-click" + }, + "text": "Ok, you're not actually going to be teleporting, nor will you bend spacetime, but it almost feels like it! It's time to learn to use the design space map." + }, + "paragraphs": [ + { + "style": "Text", + "text": "I said earlier that the design space is huge, and I meant it! Going from one corner to the opposite would take hundreds of clicks and drags. While using the keyboard allows you to develop neck-breaking speeds, it's not as cool as teleporting! This is how it works:" + }, + { + "style": "Callout", + "text": "Right-click to open the map and left-click anywhere on the map to go to that specific spot!" + }, + { + "style": "Text", + "text": "Look at me on the bottom-left corner of the design space? Now you know where to find me!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-018-tutorial-step-warp-speed-zooming.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-018-tutorial-step-warp-speed-zooming.json new file mode 100644 index 000000000..41730645e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-018-tutorial-step-warp-speed-zooming.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 18, + "type": "Tutorial Step - Warp-Speed Zooming!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "mouse-wheel-down" + }, + "text": "There's one more tool that you may find useful to manipulate spacetime! The native browser zoom function!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Sometimes you may wish to visualize larger sections of hierarchies than your screen allows." + }, + { + "style": "Callout", + "text": "Hit Ctrl and scroll the wheel of your mouse!" + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Success", + "text": "Chrome indicates the level of zoom on the top-right corner. When zooming in or out, the design space gets centered on the screen. After applying the desired level of zoom, use the design space map to go back where you were." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-019-tutorial-step-a-bit-about-tutorials..json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-019-tutorial-step-a-bit-about-tutorials..json new file mode 100644 index 000000000..10c7747af --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-019-tutorial-step-a-bit-about-tutorials..json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 19, + "type": "Tutorial Step - A Bit About Tutorials...", + "definition": { + "icon": { + "project": "Superalgos", + "name": "tutorial" + }, + "text": "Before we get back to business, let me tell you a few things about how we—tutorials—work." + }, + "paragraphs": [ + { + "style": "Text", + "text": "This is likely the most important bit:" + }, + { + "style": "List", + "text": "You are the boss! You may stop a tutorial and skip steps—or entire topics—at any point. Once you're ready to pick up the lesson again, find us on the bottom-left corner of the design space. Select Resume on the menu to start where you left, or on the first step skipped. Select Play to start from the beginning!" + }, + { + "style": "Callout", + "text": "Let's try that! Click the Stop button below, and once I'm gone, open my menu and select Resume." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-020-tutorial-step-need-a-quick-reminder.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-020-tutorial-step-need-a-quick-reminder.json new file mode 100644 index 000000000..06b0ae517 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-020-tutorial-step-need-a-quick-reminder.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 20, + "type": "Tutorial Step - Need a Quick Reminder?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "key-left" + }, + "text": "At this point, I'm probably overflowing your hippocampus! But don't worry... you may go back to any previous step!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "If you ever need a reminder about any of these topics..." + }, + { + "style": "List", + "text": "Find a Tutorial Topic and replay it! You may find me on the bottom-left corner of the design space, expand me, browse through the hierarchy of topics and steps, and click Play on any of them. Topics are arranged in a clockwise direction, starting from the right-hand side of the main Tutorial node." + }, + { + "style": "Callout", + "text": "Find the Need a Quick Reminder? step under the Tutorials & Help topic below. Then click Stop, and restart by clicking Play on the said Tutorial Step!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-021-tutorial-step-hungry-for-more-info.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-021-tutorial-step-hungry-for-more-info.json new file mode 100644 index 000000000..6cf56d401 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-021-tutorial-step-hungry-for-more-info.json @@ -0,0 +1,42 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 21, + "type": "Tutorial Step - Hungry For More Info?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "help" + }, + "text": "I won't go into every detail as we move along, but if you need more info on a node, the help button on the menu takes you straight to its documentation." + }, + "paragraphs": [ + { + "style": "Text", + "text": "The documentation of a node may include one or more of the following sections:" + }, + { + "style": "List", + "text": "Definition: describes what the node is or does." + }, + { + "style": "List", + "text": "Content: describes how the node works." + }, + { + "style": "List", + "text": "Adding: describes how to add the node." + }, + { + "style": "List", + "text": "Configure: goes through the node's configuration." + }, + { + "style": "List", + "text": "Start: for nodes that may be started or stopped." + }, + { + "style": "Callout", + "text": "Click the help button on the Data Tasks node!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-022-tutorial-step-broke-something.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-022-tutorial-step-broke-something.json new file mode 100644 index 000000000..46d633702 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-022-tutorial-step-broke-something.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 22, + "type": "Tutorial Step - Broke Something?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "workspace" + }, + "text": "If you ever break something—like deleting a node or changing a configuration—and don't know how to deal with the outcome..." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "... there is an easy way to start over with a brand new workspace!" + }, + { + "style": "Text", + "text": "All you need to do is pull the tab on the left-hand side of the screen and click on the Getting-Started plugin workspace." + }, + { + "style": "Success", + "text": "A brand new Getting Started workspace will load and I will show up again, fresh from the start!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-023-tutorial-step-more-workspaces.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-023-tutorial-step-more-workspaces.json new file mode 100644 index 000000000..9c09eaece --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-023-tutorial-step-more-workspaces.json @@ -0,0 +1,27 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 23, + "type": "Tutorial Step - More Workspaces?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "workspace" + }, + "text": "Yes! Some of them are plugins shipping with the system and some are your own!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "As soon as you start using the system, the workspace is saved every minute. It is also saved before closing the browser or browser tab, and you may save it manually too using the Ctrl + Shift + Key-S keys.", + "updated": 1610134881062 + }, + { + "style": "Callout", + "text": "When a plugin workspace is modified in any way, a copy is stored in your My-Workspaces folder." + }, + { + "style": "Important", + "text": "Plugin files may not be modified from within the system!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-024-tutorial-step-ok.-back-to-work.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-024-tutorial-step-ok.-back-to-work.json new file mode 100644 index 000000000..4229b53b2 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-024-tutorial-step-ok.-back-to-work.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 24, + "type": "Tutorial Step - Ok... Back to Work!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "data-tasks" + }, + "text": "Now that you're comfortable moving around, I want you to go on a little tour exploring the Data Tasks section of the hierarchy." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Notice the following:" + }, + { + "style": "List", + "text": "The section is organized—first and foremost—by project, exchange, and market. This will help you work with multiple exchanges and multiple markets in an orderly fashion." + }, + { + "style": "List", + "text": "The Exchange Data Tasks and Market Data Tasks nodes may control all tasks in the exchange and market respectively." + }, + { + "style": "Callout", + "text": "Go out and check those nodes and their menus!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-025-tutorial-step-the-magic-of-data-mines.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-025-tutorial-step-the-magic-of-data-mines.json new file mode 100644 index 000000000..b94114b91 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-025-tutorial-step-the-magic-of-data-mines.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 25, + "type": "Tutorial Step - The Magic of Data Mines", + "definition": { + "icon": { + "project": "Superalgos", + "name": "data-mine-tasks" + }, + "text": "Within each market, the operation is organized by Data Mine. Superalgos ships with several open-source data mines, each with multiple indicators." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Think of data mines as plugins that developers may create to extend the data analysis capacity of the system. An Indicator Bot may process data other indicators produce, hence adding value and producing deeper and richer analysis." + }, + { + "style": "Callout", + "text": "If you have a basic understanding of JavaScript, you may create indicators too!" + }, + { + "style": "Text", + "text": "But I'm getting ahead of myself talking about building data mines at this point! Let's get back on track!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-026-tutorial-step-at-the-core-of-data-mining.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-026-tutorial-step-at-the-core-of-data-mining.json new file mode 100644 index 000000000..75f056fd0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-026-tutorial-step-at-the-core-of-data-mining.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 26, + "type": "Tutorial Step - At the Core of Data Mining", + "definition": { + "icon": { + "project": "Superalgos", + "name": "task" + }, + "text": "The core of a data mining operation are tasks running bots. One Task controls one bot, and a Task Manager may control multiple tasks." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Buy now you've learned about six different devices that you may use to control each bot in your data mining operation. At the highest level, the Data Tasks node controls all data mining bots in the Network Node." + }, + { + "style": "Callout", + "text": "We'll talk about network nodes in a minute..." + }, + { + "style": "Text", + "text": "At the lowest level, an individual task controls a single bot. The nodes in between are organizational nodes that help keep the operation orderly, and allow granular control over the different sections." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-027-tutorial-step-are-we-up-to-date.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-027-tutorial-step-are-we-up-to-date.json new file mode 100644 index 000000000..ead54bd86 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-027-tutorial-step-are-we-up-to-date.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 27, + "type": "Tutorial Step - Are We Up to Date?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "indicator-process-instance" + }, + "text": "By now, all processes should be at 100%. When that happens, we refer to the data mining operation as being up to date." + }, + "paragraphs": [ + { + "style": "Text", + "text": "When all processes are up to date, the bots keep running, processing information in realtime as it is produced at the exchange. That is, the data mining operation doesn't stop unless you stop it!" + }, + { + "style": "Callout", + "text": "Look around and see if all processes are at 100%" + }, + { + "style": "Text", + "text": "To run a Live Trading Session, you need a constant feed of information from the exchange, being processed in realtime, so that the Trading Bot may apply the rules of your Trading System to make live trading decisions." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-028-tutorial-step-time-to-stop.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-028-tutorial-step-time-to-stop.json new file mode 100644 index 000000000..4125b4505 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-028-tutorial-step-time-to-stop.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 28, + "type": "Tutorial Step - Time to Stop!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "stop" + }, + "text": "We are not going to run a Live Trading Session just yet, so there is no point in keeping our data mining running at this point." + }, + "paragraphs": [ + { + "style": "Text", + "text": "There are two main reasons to run a data mining op:" + }, + { + "style": "List", + "text": "To process historic data. You may want to process a datetime range of any given Market to run a Backtesting Session, or to process new indicators." + }, + { + "style": "List", + "text": "To run a live session. Live sessions (Paper Trading Session, Forward Testing Session, and Live Trading Session) need a live market feed." + }, + { + "style": "Callout", + "text": "If all processes are up to date, then select Stop All Tasks in the Masters Task Manager" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-029-tutorial-step-careful-with-your-data.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-029-tutorial-step-careful-with-your-data.json new file mode 100644 index 000000000..b05cb1666 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-029-tutorial-step-careful-with-your-data.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 29, + "type": "Tutorial Step - Careful With Your Data!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "dataset-definition" + }, + "text": "It may take up to one minute for all tasks to come to a halt. You should never close the system before all tasks stop." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Take another quick look at the console app to see how tasks get stopped!" + }, + { + "style": "Warning", + "text": "Closing the Client before tasks stop may cause your data to become corrupt." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-030-tutorial-step-the-bright-side.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-030-tutorial-step-the-bright-side.json new file mode 100644 index 000000000..27ea479b7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-030-tutorial-step-the-bright-side.json @@ -0,0 +1,23 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 30, + "type": "Tutorial Step - The Bright Side", + "definition": { + "icon": { + "project": "Superalgos", + "name": "charting-space" + }, + "text": "So far, you've been confined to the dark side of Superalgos. Get ready to be exposed to the bright side: the Charting Space." + }, + "paragraphs": [ + { + "style": "Text", + "text": "The charting space lives on top of the design space, separated by a turquoise slider. As you will come to expect from Superalgos, the charting space is configurable and highly flexible. Everything that happens there is defined on the Charting Space hierarchy.", + "updated": 1610538092491 + }, + { + "style": "Warning", + "text": "The charting space is known for blowing people's minds. Please, refrain from continuing with this tutorial if you are currently under the influence of psychoactive substances." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-031-tutorial-step-break-on-through.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-031-tutorial-step-break-on-through.json new file mode 100644 index 000000000..af28ae79c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-031-tutorial-step-break-on-through.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 31, + "type": "Tutorial Step - Break On Through!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "full-board" + }, + "text": "I'll get you up to speed with moving around and browsing the charting space in no time... Let's deal with the slider first!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Click it and drag it down to close the design space and open the charting space. Do the opposite for the reversed effect. To do it with the keyboard, hit Ctrl + Shift + ↓. Try ↑ ← → too!" + }, + { + "style": "Note", + "text": "Unless you need both spaces to be partially open, it's always a good idea to fully close either of them to save computing resources in your machine." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-032-tutorial-step-navigating-the-white-room.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-032-tutorial-step-navigating-the-white-room.json new file mode 100644 index 000000000..37f808677 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-032-tutorial-step-navigating-the-white-room.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 32, + "type": "Tutorial Step - Navigating the White Room", + "definition": { + "icon": { + "project": "Superalgos", + "name": "mouse-right-click" + }, + "text": "Just like the design space, the charting space features a huge area where you may set up charts... as many as your hardware can cope with!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "There are only two charts in this default Workspace, to keep things simple for newcomers. Advanced users monitor charts from multiple exchanges and multiple markets." + }, + { + "style": "Callout", + "text": "To move around the charting space, click and drag using your mouse.

The keyboard combination is Shift plus the arrow keys ↑ ← → ↓" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-033-tutorial-step-talkin-time-travel.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-033-tutorial-step-talkin-time-travel.json new file mode 100644 index 000000000..b67ef5e64 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-033-tutorial-step-talkin-time-travel.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 33, + "type": "Tutorial Step - Talkin' Time Travel", + "definition": { + "icon": { + "project": "Superalgos", + "name": "time-machine" + }, + "text": "I mentioned earlier there are two charts in this workspace. In Superalgos, we call each of these a Time Machine." + }, + "paragraphs": [ + { + "style": "Text", + "text": "A time machine may hold one Timeline Chart or more. We call them time machines because all timeline charts within a time machine are synchronized in time. This feature of time machines allows to superimpose different layers of data sharing the same Time Scale." + }, + { + "style": "Callout", + "text": "Hover your mouse pointer over the time machines!" + }, + { + "style": "Text", + "text": "Notice the label emerging on the left-hand side showing which exchange and market the data is associated with. A single time machine may hold data from multiple markets and multiple exchanges!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-034-tutorial-step-bending-time.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-034-tutorial-step-bending-time.json new file mode 100644 index 000000000..a2a0f5e3b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-034-tutorial-step-bending-time.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 34, + "type": "Tutorial Step - Bending time?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "time-machine" + }, + "text": "Ok... maybe it's not actually like bending, but, bear with me... You'll love how you can shape time machines to whatever format you wish." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Hover your mouse pointer over any of the edges of the turquoise frame defining the time machine and see what happens. See how the edge is highlighted in yellow?" + }, + { + "style": "Callout", + "text": "Cool! Now, left-click the frame and pull!" + }, + { + "style": "Note", + "text": "This is how you may shape time machines to your liking." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-035-tutorial-step-size-matters.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-035-tutorial-step-size-matters.json new file mode 100644 index 000000000..3b301037c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-035-tutorial-step-size-matters.json @@ -0,0 +1,27 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 35, + "type": "Tutorial Step - Size Matters?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "time-machine" + }, + "text": "How about shaping the time machine to the exact aspect ratio of your screen?" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Matching the aspect ratio of your time machines to the aspect ratio of your screen is crucial for charts to fit your screen tightly!" + }, + { + "style": "Callout", + "text": "Point your mouse at one of the time machines and hit Ctrl + Shift + Key-A. Do the same with the other one!", + "updated": 1610134929741 + }, + { + "style": "Success", + "text": "From now on, leave the time machines matching your screen... it'll work best for our ride!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-036-tutorial-step-putting-things-in-order.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-036-tutorial-step-putting-things-in-order.json new file mode 100644 index 000000000..f7d80f0e3 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-036-tutorial-step-putting-things-in-order.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 36, + "type": "Tutorial Step - Putting Things in Order", + "definition": { + "icon": { + "project": "Superalgos", + "name": "hand-drag" + }, + "text": "One more thing before we dive into the charts. You need to know how to put the house in order!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "The time will come in which you may be working with tens of charts. You already know how to change their format... Now you need to know how to move them around, so that you may create whatever arrangements you require. It's quite easy:" + }, + { + "style": "Callout", + "text": "Hit Shift left-click, and drag!" + }, + { + "style": "Text", + "text": "I believe we've covered everything about how to manage the charting space. It's time to dive into the charts!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-037-tutorial-step-get-in-the-wormhole.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-037-tutorial-step-get-in-the-wormhole.json new file mode 100644 index 000000000..9903c20ef --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-037-tutorial-step-get-in-the-wormhole.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 37, + "type": "Tutorial Step - Get In the Wormhole!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "mouse-wheel-up" + }, + "text": "It's time to dive into a Time Machine and see what happens! Are you ready for a full-on immersive experience?" + }, + "paragraphs": [ + { + "style": "Text", + "text": "The charting space is like the Google Maps of market charts. As you already know, you left-click and drag to move around the landscape... but, how do you zoom in to see the details?" + }, + { + "style": "Callout", + "text": "With the wheel of the mouse! Try it!" + }, + { + "style": "Text", + "text": "Exactly! Just like in Google Maps! Point the mouse to the area of interest, then roll the wheel of the mouse forwards to zoom in, and backward to zoom out!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-038-tutorial-step-the-elegant-way..json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-038-tutorial-step-the-elegant-way..json new file mode 100644 index 000000000..35280308e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-038-tutorial-step-the-elegant-way..json @@ -0,0 +1,27 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 38, + "type": "Tutorial Step - The Elegant Way...", + "definition": { + "icon": { + "project": "Superalgos", + "name": "mouse-pointer" + }, + "text": "I know! Zooming into a random spot is unlikely to position the chart squared with your screen, right? No worries..." + }, + "paragraphs": [ + { + "style": "Text", + "text": "I'll show you how to get into a chart so that everything fits nicely. First, use the Ctrl + Shift + Key-A keys to adjust the aspect ratio to fit your screen. Then, zoom out fully with your mouse. From this position...", + "updated": 1610134957920 + }, + { + "style": "Callout", + "text": "Double-click on the time machine on top! Twice!" + }, + { + "style": "Text", + "text": "The first double-click centers the chart, and takes you to a certain level of zoom; some margin is left to fit the name of the chart and the tab on the top-left corner. The second double-click takes you all the way in, to the zoom level on which layer managers emerge." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-039-tutorial-step-moving-in-wonderland.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-039-tutorial-step-moving-in-wonderland.json new file mode 100644 index 000000000..b588a0286 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-039-tutorial-step-moving-in-wonderland.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 39, + "type": "Tutorial Step - Moving in Wonderland", + "definition": { + "icon": { + "project": "Superalgos", + "name": "mouse-left-click" + }, + "text": "So, you are finally inside a chart. The first thing you'll want to do is move around and learn what these charts may do for you." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Let's get on with that! Like in the design space—when inside a time machine—you move by using your mouse and your keyboard. This is how:" + }, + { + "style": "Callout", + "text": "With the mouse, left-click and drag. With the keyboard, use the arrow keys: ← → ↑ ↓" + }, + { + "style": "Note", + "text": "What? It's not working? Are you stuck with a frozen chart? Like in the video on the next step? Don't worry! I know what's going on..." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-040-tutorial-step-welcome-charts-scales-auto-locked.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-040-tutorial-step-welcome-charts-scales-auto-locked.json new file mode 100644 index 000000000..e38aeb46e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-040-tutorial-step-welcome-charts-scales-auto-locked.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 40, + "type": "Tutorial Step - Welcome Charts Scales Auto Locked", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/welcome-charts-scales-auto-locked.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-041-tutorial-step-unlocking-time.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-041-tutorial-step-unlocking-time.json new file mode 100644 index 000000000..5f7e5913a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-041-tutorial-step-unlocking-time.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 41, + "type": "Tutorial Step - Unlocking Time!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "time-scale" + }, + "text": "The reason why you can't move is that scales are locked in the automatic mode so that you may easily find the data after your first data mining operation." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Setting the Time Scale in automatic mode forces the whole datetime range of available data into the chart." + }, + { + "style": "Callout", + "text": "To toggle between the various automatic modes and manual mode, hit Shift and make a gentle one-step roll with the wheel of your mouse on top of the time scale box." + }, + { + "style": "Text", + "text": "Once you've taken care of that, you should be able to move freely on the X-axis, that is, the time axis of the chart. See the video on the next step for clarity." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-042-tutorial-step-welcome-charts-scales-unlock-time-scale.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-042-tutorial-step-welcome-charts-scales-unlock-time-scale.json new file mode 100644 index 000000000..303be5d89 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-042-tutorial-step-welcome-charts-scales-unlock-time-scale.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 42, + "type": "Tutorial Step - Welcome Charts Scales Unlock Time Scale", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/welcome-charts-scales-unlock-time-scale.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-043-tutorial-step-scaling-time.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-043-tutorial-step-scaling-time.json new file mode 100644 index 000000000..e952c2080 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-043-tutorial-step-scaling-time.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 43, + "type": "Tutorial Step - Scaling Time!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "time-scale" + }, + "text": "Did you pick up the trick to scale time from the previous video? If not, go to the previous step and watch attentively!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "That's it! Scroll it, my friend!" + }, + { + "style": "Callout", + "text": "Scrolling the wheel of the mouse on top of the time scale box shrinks and expands time!" + }, + { + "style": "Note", + "text": "There's one more interesting detail worth noting in the previous video: when the time scale exits the automatic mode, the two tiny green triangles indicating each end of the automatic scale disappear!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-044-tutorial-step-playing-with-the-rate-scale.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-044-tutorial-step-playing-with-the-rate-scale.json new file mode 100644 index 000000000..4b4f7549c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-044-tutorial-step-playing-with-the-rate-scale.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 44, + "type": "Tutorial Step - Playing with the Rate Scale!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "rate-scale" + }, + "text": "Do I need to tell you how the Rate Scale works or can you figure it out on your own? Ok... I'll give you a hint..." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "The rate scale works like the time scale! Check the video coming next for clarity!" + }, + { + "style": "Note", + "text": "There's one more scale to work with. I'll tell you all about it after the video." + }, + { + "style": "Success", + "text": "Play with the semi-automatic scale modes too! You know, when a single tiny triangle remains visible after a few flicks of the mouse wheel." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-045-tutorial-step-welcome-charts-scales-unlock-rate-scale.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-045-tutorial-step-welcome-charts-scales-unlock-rate-scale.json new file mode 100644 index 000000000..1952f06d2 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-045-tutorial-step-welcome-charts-scales-unlock-rate-scale.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 45, + "type": "Tutorial Step - Welcome Charts Scales Unlock Rate Scale", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/welcome-charts-scales-unlock-rate-scale.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-046-tutorial-step-time-frames-salad.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-046-tutorial-step-time-frames-salad.json new file mode 100644 index 000000000..1cd2f8605 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-046-tutorial-step-time-frames-salad.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 46, + "type": "Tutorial Step - Time Frames Salad?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "time-frame-scale" + }, + "text": "News-flash about the Time Frame Scale: there is no automatic mode!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "You may freely toggle through all available time frames! In descending order: 24, 8, 6, 4, 3, 2, and 1 hours, and 45, 40, 30, 20, 15, 10, 5, 4, 3, 2, and 1 minutes." + }, + { + "style": "Important", + "text": "Beware when you switch the time frame scale to lower time frames! Dropping time frames too fast and without adjusting the time scale may cause too much information to be rendered on-screen at a time, slowing down your computer. How much information density your hardware may handle depends on its CPU and GPU performance." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-047-tutorial-step-welcome-charts-scales-time-frame-scale.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-047-tutorial-step-welcome-charts-scales-time-frame-scale.json new file mode 100644 index 000000000..9744add48 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-047-tutorial-step-welcome-charts-scales-time-frame-scale.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 47, + "type": "Tutorial Step - Welcome Charts Scales Time Frame Scale", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/welcome-charts-scales-time-frame-scale.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-048-tutorial-step-scales-best-kept-secrets.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-048-tutorial-step-scales-best-kept-secrets.json new file mode 100644 index 000000000..370a9da6e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-048-tutorial-step-scales-best-kept-secrets.json @@ -0,0 +1,23 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 48, + "type": "Tutorial Step - Scales' Best-Kept Secrets", + "definition": { + "icon": { + "project": "Superalgos", + "name": "balance" + }, + "text": "You just learned the basics about the three scales governing the charts, but there's more!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Remember I mentioned that a Time Machine may feature multiple charts from multiple exchanges and markets? There is no limit as to how you may visualize data in Superalgos, and scales play a major role in more complex configurations than the ones we are exploring at this point." + }, + { + "style": "Callout", + "text": "If you wish to learn all the details, feel free to go through the Scales section of the documentation.", + "updated": 1610539789707 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-049-tutorial-step-switching-gears..json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-049-tutorial-step-switching-gears..json new file mode 100644 index 000000000..b3281441d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-049-tutorial-step-switching-gears..json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 49, + "type": "Tutorial Step - Switching Gears...", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-manager" + }, + "text": "Leaving scales behind, let's take a look at how the system makes data available on the charts." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Every Timeline Chart has an associated Layer Manager, which is represented as a drop-down menu listing multiple layers." + }, + { + "style": "Callout", + "text": "To open a layers manager, scroll the wheel of the mouse on its header. Use the wheel of the mouse to scroll through its content too!" + }, + { + "style": "Text", + "text": "See the video on the next step for clarity..." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-050-tutorial-step-welcome-charts-layer-managers-scroll.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-050-tutorial-step-welcome-charts-layer-managers-scroll.json new file mode 100644 index 000000000..c45d1cb48 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-050-tutorial-step-welcome-charts-layer-managers-scroll.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 50, + "type": "Tutorial Step - Welcome Charts Layer Managers Scroll", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/welcome-charts-layer-managers-scroll.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-051-tutorial-step-layers-on-top-of-layers.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-051-tutorial-step-layers-on-top-of-layers.json new file mode 100644 index 000000000..e65de73aa --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-051-tutorial-step-layers-on-top-of-layers.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 51, + "type": "Tutorial Step - Layers on Top of Layers", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer" + }, + "text": "Your data mining operation features bots making data products. Each product is made available on the charts through a Layer in a layers manager." + }, + "paragraphs": [ + { + "style": "Text", + "text": "The first layer manager to the left of this time machine features three layers. Those layers represent the data products that the Trading System we are going to test later on uses to make trading decisions." + }, + { + "style": "Callout", + "text": "To turn layers on and off, left-click on them!" + }, + { + "style": "Note", + "text": "Superalgos ships with many more indicator bots, but we are not using them for this tutorial. You will learn about them later!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-052-tutorial-step-welcome-charts-layer-on.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-052-tutorial-step-welcome-charts-layer-on.json new file mode 100644 index 000000000..e83b57c9a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-052-tutorial-step-welcome-charts-layer-on.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 52, + "type": "Tutorial Step - Welcome Charts Layer On", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/welcome-charts-layer-on.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-053-tutorial-step-the-hard-data.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-053-tutorial-step-the-hard-data.json new file mode 100644 index 000000000..c159bacb4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-053-tutorial-step-the-hard-data.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 53, + "type": "Tutorial Step - The Hard Data", + "definition": { + "icon": { + "project": "Superalgos", + "name": "plotter-panel" + }, + "text": "A Plotter Panel features non-graphical representations of data, mostly in the form of numerical values or text." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Each layer may or may not feature one or more associated panels. It's up to the developer of the corresponding Indicator Bot to define them or not." + }, + { + "style": "Callout", + "text": "To access panels, left-click on the plotter panel icon of the layer of choice." + }, + { + "style": "Success", + "text": "You may move layers managers and plotter panels by left-clicking on their headers and dragging them to any corner of the screen." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-054-tutorial-step-welcome-charts-layer-panels.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-054-tutorial-step-welcome-charts-layer-panels.json new file mode 100644 index 000000000..90fd16773 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-054-tutorial-step-welcome-charts-layer-panels.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 54, + "type": "Tutorial Step - Welcome Charts Layer Panels", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/welcome-charts-layer-panels.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-055-tutorial-step-back-in-time.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-055-tutorial-step-back-in-time.json new file mode 100644 index 000000000..0fd1c8f75 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-055-tutorial-step-back-in-time.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 55, + "type": "Tutorial Step - Back in Time", + "definition": { + "icon": { + "project": "Superalgos", + "name": "time-machine" + }, + "text": "This is the Charting Space hierarchy setup of the Time Machine we've been playing with on the charts." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Spend a few minutes exploring these definitions! Take a peek at different node's menus!" + }, + { + "style": "Text", + "text": "I hope the structure of nodes is intuitive enough to grasp how powerful the concept of the design space is. You set up a time machine by adding timeline charts nodes and the desired scales. Then set up layer managers and layers referencing the corresponding Data Mine Products so that the desired data becomes available on a particular layers manager on the charts. It's like the Legoland® of trading charts!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-056-tutorial-step-visual-scripting-on-steroids.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-056-tutorial-step-visual-scripting-on-steroids.json new file mode 100644 index 000000000..ddd78657f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-056-tutorial-step-visual-scripting-on-steroids.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 56, + "type": "Tutorial Step - Visual Scripting on Steroids", + "definition": { + "icon": { + "project": "Superalgos", + "name": "indicator-bot" + }, + "text": "Talking about block-building, we are now in the confines of the Masters Data Mine. To your left, the definition of one of the bots you sent mining minutes ago." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Pretty much like with the Lego-like definitions of the Charting Space, bots are too defined on a visual environment." + }, + { + "style": "Callout", + "text": "All developers need to code is the actual Data Building Procedure." + }, + { + "style": "Text", + "text": "Everything else is defined on a visual setting: processes with their dependencies, outputs and so on, and products, with their record and dataset definitions, etc." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-057-tutorial-step-plotters-magic.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-057-tutorial-step-plotters-magic.json new file mode 100644 index 000000000..9ac959e1a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-057-tutorial-step-plotters-magic.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 57, + "type": "Tutorial Step - Plotters Magic!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "plotter" + }, + "text": "And this is how plotters are built! Plotters create graphical representations of data... from candles, to everything else!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Again, visual scripting at its best! Plotters use stylized polygons made out of coordinate points to paint lines and shapes that represent data. Every layer made available on the charts is created with a set of definitions of the sort you are looking at right now. The particular case of the Resistances and Supports bot is a rather complex one, but does showcase the power of the tool!" + }, + { + "style": "Callout", + "text": "Find the Resistance Zone 5 Polygon (to the right), expand it, and crawl your way up the branches for a sneak peek of how this beauty was built!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-058-tutorial-step-lets-do-some-testing.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-058-tutorial-step-lets-do-some-testing.json new file mode 100644 index 000000000..89723e966 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-058-tutorial-step-lets-do-some-testing.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 58, + "type": "Tutorial Step - Let's Do Some Testing!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "testing-trading-tasks" + }, + "text": "We are back on the Network hierarchy to show you one of the core strategy-testing resources built-in the Trading Bot." + }, + "paragraphs": [ + { + "style": "Text", + "text": "But before you run your first Backtesting Session, let's go on a quick scouting mission to grasp how the Testing Trading Tasks is set up." + }, + { + "style": "Callout", + "text": "Expand the testing environment and look at the structure of nodes to the right... Looks Familiar?" + }, + { + "style": "Text", + "text": "Indeed! It resembles the Data Tasks section: tasks are organized by exchange, market, and trading mine, so that you may test any number of strategies optimized for different markets, on multiple exchanges." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-059-tutorial-step-aim-high-trade-big.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-059-tutorial-step-aim-high-trade-big.json new file mode 100644 index 000000000..82a0866df --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-059-tutorial-step-aim-high-trade-big.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 59, + "type": "Tutorial Step - Aim High, Trade Big!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "network-node" + }, + "text": "Picture an army of bots working with multiple exchanges, markets, and strategies, running on a network ala trading farm." + }, + "paragraphs": [ + { + "style": "Text", + "text": "That is what the Network Node is about. What you've seen so far is running on your local machine. But..." + }, + { + "style": "Callout", + "text": "Superalgos supports distributing tasks across networks of nodes running the Client to be processed in a coordinated fashion, enabling smart and scalable operations. Any machine running the GUI may control the enterprise!" + }, + { + "style": "Text", + "text": "You may set up a network with a few Raspberry Pi, an industrial-grade datacenter—or anything in between." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-060-tutorial-step-machines-learn-too.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-060-tutorial-step-machines-learn-too.json new file mode 100644 index 000000000..b33c8e7c7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-060-tutorial-step-machines-learn-too.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 60, + "type": "Tutorial Step - Machines Learn Too!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "learning-tasks" + }, + "text": "Superalgos is constantly evolving, growing, and getting stronger. I heard this through the grapevine, I mean, on the Superalgos Develop group..." + }, + "paragraphs": [ + { + "style": "Text", + "text": "With upcoming Beta 8, you will be able to train a new type of Learning Bot running a reinforcement learning algorithm! You will feed the bot with data mined from any source, and the learning process will output a policy file describing how to make decisions." + }, + { + "style": "Callout", + "text": "And—of course—this intelligence will be available for consumption from within conditions and formulas in trading systems!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-061-tutorial-step-civil-works-ahead.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-061-tutorial-step-civil-works-ahead.json new file mode 100644 index 000000000..a1eb04915 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-061-tutorial-step-civil-works-ahead.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 61, + "type": "Tutorial Step - Civil Works Ahead!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "under-construction" + }, + "text": "Please, do not be surprised to find an under construction sign here and there..." + }, + "paragraphs": [ + { + "style": "Text", + "text": "As I mentioned earlier, Superalgos is constantly growing, and infrastructure architected for the upcoming version may occasionally be merged to the current version in a service pack, along with necessary fixes and minor improvements." + }, + { + "style": "Callout", + "text": "If you are curious about what is cooking for the upcoming Superalgos release, join the Superalgos Develop Telegram group." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-062-tutorial-step-enough-digressing.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-062-tutorial-step-enough-digressing.json new file mode 100644 index 000000000..b279ed54c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-062-tutorial-step-enough-digressing.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 62, + "type": "Tutorial Step - Enough Digressing!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "backtesting-session" + }, + "text": "We'll run a Backtesting Session with a bunch of preconfigured parameters so that you may have a quick glimpse at how simulations work." + }, + "paragraphs": [ + { + "style": "Text", + "text": "As you can see to the right, a trading session has a reference to a Trading System. That is, the Trading Bot will apply the rules of the referenced trading system to make decisions. There's also a reference to a Trading Engine—a subject worth its own chapter, so I'll leave it for later!" + }, + { + "style": "Callout", + "text": "The trading session is affected by several parameters. Take a quick look at their configurations selecting Configure on the menu!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-063-tutorial-step-what-when-how.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-063-tutorial-step-what-when-how.json new file mode 100644 index 000000000..615aa10d5 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-063-tutorial-step-what-when-how.json @@ -0,0 +1,42 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 63, + "type": "Tutorial Step - What? When? How?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-parameters" + }, + "text": "Trading Parameters determine key aspects of how the trading session is run. Let's take a quick, superficial look..." + }, + "paragraphs": [ + { + "style": "List", + "text": "Session Base Asset: no capital is assigned in BTC." + }, + { + "style": "List", + "text": "Session Quoted Asset: 1000 USDT of initial capital." + }, + { + "style": "List", + "text": "Time Range: we'll test a single day, 2020-09-01." + }, + { + "style": "List", + "text": "Time Frame: orders are placed/canceled every minute, thus 01-min is appropriate." + }, + { + "style": "List", + "text": "Slippage: it's irrelevant for this case, as the trading system uses limit orders only." + }, + { + "style": "List", + "text": "Fee Structure: 0.1% is the lower Binance tier." + }, + { + "style": "Text", + "text": "The remaining parameters do not affect the simulation. To learn more about these Trading Parameters, take a look at the documentation." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-064-tutorial-step-ready.-set.-go.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-064-tutorial-step-ready.-set.-go.json new file mode 100644 index 000000000..7fb582107 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-064-tutorial-step-ready.-set.-go.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 64, + "type": "Tutorial Step - Ready. Set. Go!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "task" + }, + "text": "Let's get going! This is going to be quick anyway, as we are testing a single day worth of historic data." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Running a trading task is quite similar to running a data mining task. The difference lies in that—after running the task—you also need to run the trading session." + }, + { + "style": "Callout", + "text": "Select Run on the Task menu and then select Run on the Backtesting Session menu." + }, + { + "style": "Note", + "text": "When the progress notice of the Trading Process Instance get's to the 100% mark, stop the task and click Next." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-065-tutorial-step-getting-to-the-fun-bits.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-065-tutorial-step-getting-to-the-fun-bits.json new file mode 100644 index 000000000..c745ae66d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-065-tutorial-step-getting-to-the-fun-bits.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 65, + "type": "Tutorial Step - Getting to the Fun Bits!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "time-machine" + }, + "text": "I took the liberty of bringing you to a particular moment in time, interesting for what comes next." + }, + "paragraphs": [ + { + "style": "Text", + "text": "You are about to be exposed to the beauty of simulations. Am I a simulation? Are you? Is this whole thing real?" + }, + { + "style": "Callout", + "text": "Look around and decide for yourself!" + }, + { + "style": "Text", + "text": "First of all, notice you are now in the 1-minute time frame, thus, these are 1-minute candles. The span of time in your screen is little more than one hour, at the beginning of September 1st 2020." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-066-tutorial-step-what-is-it-we-are-testing.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-066-tutorial-step-what-is-it-we-are-testing.json new file mode 100644 index 000000000..c4879fa2a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-066-tutorial-step-what-is-it-we-are-testing.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 66, + "type": "Tutorial Step - What Is It We Are Testing?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-system" + }, + "text": "We've run a backtest but we haven't discussed the Trading System we are testing! Let's go through the basics!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "The trading idea is buy the falling knife and sell the rebound. The strategy places a Limit Buy Order a distance below the price. If the order is not filled by the next minute, the order is canceled and a new order is placed, potentially at an adjusted rate. If the price drops suddenly, chances are the order will get filled. If that happens, then the strategy tries to sell at a higher price." + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Note", + "text": "Let's not discuss the merits of the trading idea but the implementation. This is a demo to show off the capacities of the Trading Bot, not the strategy per se." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-067-tutorial-step-green-silver-bullets.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-067-tutorial-step-green-silver-bullets.json new file mode 100644 index 000000000..be12611c9 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-067-tutorial-step-green-silver-bullets.json @@ -0,0 +1,27 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 67, + "type": "Tutorial Step - Green Silver Bullets", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-limit-buy-order" + }, + "text": "Do you see the green bullets with an L in the center? Those are the limit buy orders I mentioned." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Notice how an order is placed every minute and is canceled before a new order is placed. Do you recognize the symbol for the order cancellation? It's the smaller, darker bullet with a white horizontal stripe in the middle!" + }, + { + "style": "Callout", + "text": "Notice the knife falling at 00:21 AM! The price fell well below the rate of the limit order, therefore, the order was filled! That is what the bigger—filled—green bullet indicates!" + }, + { + "style": "Text", + "text": "So. . . what happens afterwards?", + "updated": 1610536393495 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-068-tutorial-step-sell-it-quick.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-068-tutorial-step-sell-it-quick.json new file mode 100644 index 000000000..3a4ddd814 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-068-tutorial-step-sell-it-quick.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 68, + "type": "Tutorial Step - Sell It Quick!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-limit-sell-order" + }, + "text": "I'm sure you noted there are no more limit buy orders after the order got filled. Instead, sell orders start popping up!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Notice how the first Limit Sell Order is placed at 00:22 AM, the minute after the buy order filled!" + }, + { + "style": "Text", + "text": "It's the same minute Superalgos would have gotten notice from the exchange that the order got filled. The Trading Bot connects with the exchange and goes through two distinct cycles. In the first Cycle, it finds out the status of existing orders. In the second, it gives new instructions." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-069-tutorial-step-shall-we-dig-deeper.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-069-tutorial-step-shall-we-dig-deeper.json new file mode 100644 index 000000000..d061ad5b8 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-069-tutorial-step-shall-we-dig-deeper.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 69, + "type": "Tutorial Step - Shall We Dig Deeper?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-resistance" + }, + "text": "The logic behind the placing of buy orders is influenced by the Resistances & Supports Indicator Bot from the Masters Data Mine you ran earlier." + }, + "paragraphs": [ + { + "style": "Text", + "text": "I took the liberty to turn the Supports layer on to show you this beauty... I hope you don't mind!" + }, + { + "style": "Callout", + "text": "The indicator identifies levels (price ranges) on which price is rejected, and keeps a counter of how many rejections occur until the level is breached." + }, + { + "style": "Text", + "text": "The way levels are represented on-screen varies with the number of rejections the level has witnessed, giving us a visual clue of how strong each support level may be. Once a level is breached, it disappears." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-070-tutorial-step-whos-keeping-score.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-070-tutorial-step-whos-keeping-score.json new file mode 100644 index 000000000..c8e189acf --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-070-tutorial-step-whos-keeping-score.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 70, + "type": "Tutorial Step - Who's Keeping Score?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-resistance" + }, + "text": "Check the table below and see if you can interpret the support levels you see on the charts." + }, + "paragraphs": [ + { + "style": "Text", + "text": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Rejections    Graphics    Comments
1   A faint, grey dotted line.
2   A grey block.
3   A turquoise block.
4   A yellow block.
5   A green block.
6   An orange block.
7 or more   A purple block.
" + }, + { + "style": "Text", + "text": "
For a new support level with one rejection, the dotted line marks the exact level on which price bounced. For further rejections, the blocks mark the rate ranges on which subsequent rejections are counted." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-071-tutorial-step-the-power-of-data-mining.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-071-tutorial-step-the-power-of-data-mining.json new file mode 100644 index 000000000..4ee77951d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-071-tutorial-step-the-power-of-data-mining.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 71, + "type": "Tutorial Step - The Power of Data Mining", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-resistance" + }, + "text": "Why do levels jump up and down? There's something I haven't told you yet, 'cos I'm afraid it may blow your mind!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "The bot keeps track of all support levels alive since the start of the dataset, but only shows you the five levels closest to the current price." + }, + { + "style": "Text", + "text": "Keeping track of information for the whole span of the dataset—which may count years—is the true value of data mining, and the kind of things you wouldn't be able to calculate with a function, on the fly. The Plotter associated with the Indicator Bot dynamically shows the five levels of support closest to the price because those are the relevant levels for the context." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-072-tutorial-step-find-the-logic-challenge.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-072-tutorial-step-find-the-logic-challenge.json new file mode 100644 index 000000000..6ed0db39f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-072-tutorial-step-find-the-logic-challenge.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 72, + "type": "Tutorial Step - Find the Logic Challenge!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-resistance" + }, + "text": "Now that you know how the indicator works, can you find the relationship between buy orders and support levels?" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Take some time to explore the period of time tested looking for clues on how support levels determine the rate of the Limit Buy Order!" + }, + { + "style": "Text", + "text": "It's fun noticing how new levels form when price changes direction, and how an established level changes color when price bounces-off it." + }, + { + "style": "Success", + "text": "But the trick lies in counting levels above the order!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-073-tutorial-step-heres-how-it-works..json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-073-tutorial-step-heres-how-it-works..json new file mode 100644 index 000000000..698666e52 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-073-tutorial-step-heres-how-it-works..json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 73, + "type": "Tutorial Step - Here's How it Works...", + "definition": { + "icon": { + "project": "Superalgos", + "name": "layer-resistance" + }, + "text": "Got it? The Trading Bot places the Limit Buy Order at the fifth support level! What's the logic behind this?" + }, + "paragraphs": [ + { + "style": "Text", + "text": "It's sort of arbitrary, but the strategy defines a falling knife as the price action capable of breaching at least four support levels and getting to the fifth during a single minute. Statistically, such events—in this time frame—produce more bounces than continuations. They may be caused by large market orders that temporarily increase the bid/ask spread in the order book." + }, + { + "style": "Callout", + "text": "Take a minute to verify that buy orders are placed at the fifth support level!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-074-tutorial-step-come-meet-someone.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-074-tutorial-step-come-meet-someone.json new file mode 100644 index 000000000..e979e664c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-074-tutorial-step-come-meet-someone.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 74, + "type": "Tutorial Step - Come Meet Someone!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "execution-algorithm" + }, + "text": "Sorry for dragging you away from the charts, but I wanted to introduce you to someone: the guy on the right is the one placing the buy orders!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "We are inside the Lightning Strike Trading System, within the definitions of the Open Stage. In this stage, the Execution Algorithm takes over after the decision to take a position has already been made on the Trigger Stage. I know you still don't know what a Situation or a Condition are, but I'd still like you to do something..." + }, + { + "style": "Callout", + "text": "Take a few minutes to explore the nodes below the execution algorithm, check the formulas and conditions, and see what you can make of them!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-075-tutorial-step-formulations..json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-075-tutorial-step-formulations..json new file mode 100644 index 000000000..27b5e9238 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-075-tutorial-step-formulations..json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 75, + "type": "Tutorial Step - Formulations...", + "definition": { + "icon": { + "project": "Superalgos", + "name": "formula" + }, + "text": "What you just went through is the definition of the Limit Buy Order that is placed and cancelled every minute until it gets filled." + }, + "paragraphs": [ + { + "style": "Text", + "text": "This is the node that determines the rate of the limit order. Remember what we discussed earlier about placing the order at the rate of the fifth support level?" + }, + { + "style": "Callout", + "text": "Go to the Formula attached to the Order Rate node and click Edit on the menu." + }, + { + "style": "Text", + "text": "Well... that is how it's done! As you can see, the syntax is virtually self-explanatory! It involves defining the time frame, the indicator, and the indicator property involved." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-076-tutorial-step-the-seller.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-076-tutorial-step-the-seller.json new file mode 100644 index 000000000..2e6aa4a3c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-076-tutorial-step-the-seller.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 76, + "type": "Tutorial Step - The Seller", + "definition": { + "icon": { + "project": "Superalgos", + "name": "execution-algorithm" + }, + "text": "We are now in the Close Stage. I thought it would be interesting to tell you more about execution algorithms, with another example." + }, + "paragraphs": [ + { + "style": "Text", + "text": "An Execution Algorithm may handle multiple orders, of all types. In this case, multiple limit sell orders are defined." + }, + { + "style": "Callout", + "text": "Select Configure on the menu of the algorithm and reflect on the implications of this definition!" + }, + { + "style": "Text", + "text": "Both the open stage, where you define how to take a position, and the close stage, where you define how to exit, may feature multiple execution algorithms, each of them handling a certain amount of capital." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-077-tutorial-step-simplifying-complexity.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-077-tutorial-step-simplifying-complexity.json new file mode 100644 index 000000000..da90c6412 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-077-tutorial-step-simplifying-complexity.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 77, + "type": "Tutorial Step - Simplifying Complexity", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-system" + }, + "text": "We haven't discussed trading systems as a framework, but a feature relevant to this explanation is that they may handle multiple strategies." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Each strategy features an Open Stage and a Close Stage, each with its own execution definitions. Each stage may feature multiple execution algorithms, and each algorithm may handle multiple orders." + }, + { + "style": "Callout", + "text": "Do you see the pattern? We call it granularity." + }, + { + "style": "Text", + "text": "Superalgos breaks down each issue to the minimum expression, and integrates the solutions. This is how it allows you to design, deploy, and manage both simple and the most complex trading setups you may envision." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-078-tutorial-step-lets-take-a-peek..json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-078-tutorial-step-lets-take-a-peek..json new file mode 100644 index 000000000..a101978e6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-078-tutorial-step-lets-take-a-peek..json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 78, + "type": "Tutorial Step - Let's Take a Peek...", + "definition": { + "icon": { + "project": "Superalgos", + "name": "limit-sell-order" + }, + "text": "Before we leave the trading system, let's take a quick look into one of these orders and see what may be of interest." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Expand Profit 0.6 and check the formula of the Order Rate node." + }, + { + "style": "Text", + "text": "Let's focus on this misterious bit of the formula:
tradingEngine.current.position.exitTargetRate.value

The formula is fetching the value of the Exit Target Rate, defined elsewhere. Let's not focus and what this target rate may be. Instead, let's take a look at the mechanism by which a Trading System may have access to information processed by the Trading Bot." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-079-tutorial-step-find-the-node-challenge.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-079-tutorial-step-find-the-node-challenge.json new file mode 100644 index 000000000..9c4d3d1c6 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-079-tutorial-step-find-the-node-challenge.json @@ -0,0 +1,27 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 79, + "type": "Tutorial Step - Find the Node Challenge", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-engine" + }, + "text": "The Trading Engine administers the complexity entailed in automated trading by making information accessible to users and trading systems." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Rember my comments about granularity? Remember how the formula on the trading system fetched the value of the exit target rate? Here's a quick reminder:", + "updated": 1610536534720 + }, + { + "style": "Text", + "text": "tradingEngine.current.position.exitTargetRate.value" + }, + { + "style": "Callout", + "text": "What if I told you that this string holds the path to that piece of information in the data structure of the Trading Engine hierarchy? Can you find the Exit Target Rate node? Expand the node and follow the breadcrumb trail!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-080-tutorial-step-found-it.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-080-tutorial-step-found-it.json new file mode 100644 index 000000000..865bf1e67 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-080-tutorial-step-found-it.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 80, + "type": "Tutorial Step - Found It?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "copy-path" + }, + "text": "This is how the Trading Engine makes every bit of information processed by the Trading Bot available to trading systems." + }, + "paragraphs": [ + { + "style": "Text", + "text": "There is a path to every piece of data, and by knowing the path, you may access the data from within any Formula or Condition in a Trading Strategy. Let's run a quick check:" + }, + { + "style": "Callout", + "text": "Open the menu of the Exit Target Rate node to the left, and click Copy Node Path. Now, open a text editor and paste what you copied." + }, + { + "style": "Text", + "text": "Ok! This is how formulas and conditions access the information... How about humans?" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-081-tutorial-step-the-coolest-trick.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-081-tutorial-step-the-coolest-trick.json new file mode 100644 index 000000000..9848b5eb3 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-081-tutorial-step-the-coolest-trick.json @@ -0,0 +1,31 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 81, + "type": "Tutorial Step - The Coolest Trick!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "exit-target-rate" + }, + "text": "Humans may access this information by using a cool trick that makes the charting space interact with the design space!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "To use this trick, I just did the following:" + }, + { + "style": "List", + "text": "Split the screen in half pulling the slider up so that we can see both spaces at the same time." + }, + { + "style": "List", + "text": "Turn on the Current Position layer on the Trading Engine layers manager. I chose this layer because it corresponds to this section of the hierarchy... tradingEngine.current.position, remember ?", + "updated": 1610536718614 + }, + { + "style": "Callout", + "text": "Now, slide the mouse pointer across the candles on which the position is taken and see what happens on the nodes to the left..." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-082-tutorial-step-welcome-backtesting-trading-engine-visualization-01.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-082-tutorial-step-welcome-backtesting-trading-engine-visualization-01.json new file mode 100644 index 000000000..3e0ae8731 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-082-tutorial-step-welcome-backtesting-trading-engine-visualization-01.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 82, + "type": "Tutorial Step - Welcome Backtesting Trading Engine Visualization 01", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/welcome-backtesting-trading-engine-visualization-01.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-083-tutorial-step-feedback-loops.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-083-tutorial-step-feedback-loops.json new file mode 100644 index 000000000..639a83963 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-083-tutorial-step-feedback-loops.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 83, + "type": "Tutorial Step - Feedback Loops", + "definition": { + "icon": { + "project": "Superalgos", + "name": "limit-buy-order" + }, + "text": "Lets take a look at another example to let the notion of the constant feedback loop sink in before we move on!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "This is the data structure where information about limit buy orders is kept." + }, + { + "style": "Callout", + "text": "Go to the Trading Engine layers manager on the charts (the second counting from the left). Scroll down and turn on the Limit Buy Orders layer. Now swipe the mouse pointer over a few of the buy orders and check the effect on the nodes on the design space." + }, + { + "style": "Text", + "text": "Can you envision the implications of having this level of control over the data managed by the trading bot?" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-084-tutorial-step-welcome-backtesting-trading-engine-visualization-02.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-084-tutorial-step-welcome-backtesting-trading-engine-visualization-02.json new file mode 100644 index 000000000..88fc1596d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-084-tutorial-step-welcome-backtesting-trading-engine-visualization-02.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 84, + "type": "Tutorial Step - Welcome Backtesting Trading Engine Visualization 02", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/welcome-backtesting-trading-engine-visualization-02.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-085-tutorial-step-enough-chit-chat.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-085-tutorial-step-enough-chit-chat.json new file mode 100644 index 000000000..31971ed6d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-085-tutorial-step-enough-chit-chat.json @@ -0,0 +1,34 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 85, + "type": "Tutorial Step - Enough Chit Chat!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "production-trading-tasks" + }, + "text": "Ok, my friend... It's time for the real deal! Are you ready for a little Live Trading Session?" + }, + "paragraphs": [ + { + "style": "Text", + "text": "I'll help you with the three main requirements:" + }, + { + "style": "List", + "text": "Check your parameters, in particular, decide how much capital you wish to assign to the session." + }, + { + "style": "List", + "text": "Set up an Exchange Account Key so that the app may access your account at the exchange." + }, + { + "style": "List", + "text": "Ensure a live data feed , that is, the data mining operation with the indicators required by the Trading System must be running and up to date." + }, + { + "style": "Callout", + "text": "To proceed with a Live Trading Session, click Next." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-086-tutorial-step-disclaimer.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-086-tutorial-step-disclaimer.json new file mode 100644 index 000000000..8ec96f2bd --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-086-tutorial-step-disclaimer.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 86, + "type": "Tutorial Step - Disclaimer", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This warning will be rendered in full screen mode." + }, + "paragraphs": [ + { + "style": "Warning", + "text": "Superalgos is a piece of computer software. Like with any software, errors may occur at any point, including errors that may cause you to lose money. You are responsible for taking all precautions you may deem appropriate before trading live. Even if you take all possible precautionary measures, things may still go wrong and errors may occur. By using this software to trade live despite the warnings, you acknowledge that you are aware of the inherent risks in trading and in using software for that purpose. The Superalgos Project offers the software AS IS, with no explicit or implied warranties of any kind. The project, the software, the superalgos.org website, and this tutorial do not offer financial advice. Although the strategies shipping with the system may be fully functional, Superalgos does not make any express or implied recommendation as to how you should use them. We share strategies for educational purposes only. Trade under your responsibility and at your own risk. The use of the software is subject to the terms of the LICENSE." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-087-tutorial-step-lets-start-with-100-bucks.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-087-tutorial-step-lets-start-with-100-bucks.json new file mode 100644 index 000000000..6184333f1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-087-tutorial-step-lets-start-with-100-bucks.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 87, + "type": "Tutorial Step - Let's Start With 100 Bucks!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "session-quoted-asset" + }, + "text": "The default initialBalance is set to 100 USDT, well above the minimum transaction size supported by Binance." + }, + "paragraphs": [ + { + "style": "Text", + "text": "The initialBalance is defined in the configuration of the Session Quoted Asset. Check it out and decide for yourself if you wish to change it!" + }, + { + "style": "Success", + "text": "Binance defines the minimum transaction size in BTC, so the requirement in USDT varies a lot with time. I set the amount to 100 USDT just to ensure you don't run into errors. You are free to try with a smaller amount. You will get errors if it's too small but may try again as many times as needed. Just stop the task, change the initialBalance in the Session Quoted Asset, and try again!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-088-tutorial-step-check-your-spot-balance.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-088-tutorial-step-check-your-spot-balance.json new file mode 100644 index 000000000..a7a09f137 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-088-tutorial-step-check-your-spot-balance.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 88, + "type": "Tutorial Step - Check Your Spot Balance!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "binance" + }, + "text": "Before you run the Live Trading Session, make sure you have enough spot USDT balance at the exchange!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Take a look at your balance at the exchange and arrange for enough USDT for the session!" + }, + { + "style": "Important", + "text": "The Trading Bot will place one limit order for the initialBalance, and cancel it the next minute in case it is not filled, as explained earlier." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-089-tutorial-step-enjoy-the-outdoors.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-089-tutorial-step-enjoy-the-outdoors.json new file mode 100644 index 000000000..f49c2e73a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-089-tutorial-step-enjoy-the-outdoors.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 89, + "type": "Tutorial Step - Enjoy the Outdoors!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "crypto-ecosystem" + }, + "text": "Remember the Crypto Ecosystem hierarchy? We made a quick stop here before starting data mining!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "This is where you configure which exchanges and markets you work with, and also your accounts with those exchanges, your API keys, your assets, and so on." + }, + { + "style": "Callout", + "text": "Why don't you take a little walk and I'll catch up with you in the next step?" + }, + { + "style": "Success", + "text": "Just look around... enjoy the views! I know your first visit was a bit abrupt!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-090-tutorial-step-your-keys-your-coins.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-090-tutorial-step-your-keys-your-coins.json new file mode 100644 index 000000000..469494d08 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-090-tutorial-step-your-keys-your-coins.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 90, + "type": "Tutorial Step - Your Keys, Your Coins!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "exchange-account-key" + }, + "text": "This is where you configure your Exchange Account Key for the Lightning Strike Live Trading Session." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Open the configuration and carefully enter the API name or label and the API secret key." + }, + { + "style": "Text", + "text": "Delete the default text string for each parameter first, so that no foreign character gets mixed up with the keys." + }, + { + "style": "Note", + "text": "In the future, when you get to run multiple live sessions at the same time, you will need to set up one Exchange Account Key per session. This is a requirement in most exchanges." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-091-tutorial-step-fire-up-the-machine.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-091-tutorial-step-fire-up-the-machine.json new file mode 100644 index 000000000..53192ee59 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-091-tutorial-step-fire-up-the-machine.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 91, + "type": "Tutorial Step - Fire Up the Machine!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "data-tasks" + }, + "text": "Now it's time to fire up your Data Tasks operation." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Select Run All Project Data Tasks on the menu." + }, + { + "style": "Text", + "text": "We'll give it a few minutes to catch up with the present time. Remember, all indicators must get to 100% before we can start trading!" + }, + { + "style": "Success", + "text": "If you're getting a bit anxious, feel free to go down the Data Tasks section and check the status of the process instances!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-092-tutorial-step-are-we-ready-yet.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-092-tutorial-step-are-we-ready-yet.json new file mode 100644 index 000000000..acd53fd36 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-092-tutorial-step-are-we-ready-yet.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 92, + "type": "Tutorial Step - Are We Ready Yet?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "indicator-process-instance" + }, + "text": "Resistances and Supports Multi-Period-Daily to the left is the last of the process to finish." + }, + "paragraphs": [ + { + "style": "Text", + "text": "If this process is at 100%, then we are ready to go." + }, + { + "style": "Note", + "text": "Either way, nothing catastrophic happens if you attempt to run a Live Trading Session when the required indicators are not up to date. There would be an error, and you'd be notified of the reason. So, no big deal!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-093-tutorial-step-lets-do-this.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-093-tutorial-step-lets-do-this.json new file mode 100644 index 000000000..2bf937cfc --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-093-tutorial-step-lets-do-this.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 93, + "type": "Tutorial Step - Let's Do This!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "live-trading-session" + }, + "text": "We've gone through the 3-point checklist and we are ready to go, so let's get on with it!" + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Run the Lightning Strike Task, and then run the Lightning Strike Live Trading Session to the right!" + }, + { + "style": "Note", + "text": "Once you run the session, the trading bot may have to wait up to 60 seconds for the last indicator to finish processing. Once it does, you will see the current date and a 0% progress notice under the Trading Process Instance, which will remain like that throughout the run." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-094-tutorial-step-welcome-live-trading-process-progress.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-094-tutorial-step-welcome-live-trading-process-progress.json new file mode 100644 index 000000000..8d102eff9 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-094-tutorial-step-welcome-live-trading-process-progress.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 94, + "type": "Tutorial Step - Welcome Live Trading Process Progress", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/welcome-live-trading-process-progress.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-095-tutorial-step-check-your-console.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-095-tutorial-step-check-your-console.json new file mode 100644 index 000000000..c91ba3e1b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-095-tutorial-step-check-your-console.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 95, + "type": "Tutorial Step - Check Your Console!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "trading-process-instance" + }, + "text": "If you don't see any errors on the Trading Process Instance, chances are everything is working fine!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "However, you may want to take a look at your console application and see if you notice anything out of the norm." + }, + { + "style": "Callout", + "text": "Take a look at your console app!" + }, + { + "style": "Note", + "text": "You should be able to see the alternating executions of the Candles-Volumes and Resistances-And-Support indicators, with the Low-Frequency Trading Bot" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-096-tutorial-step-welcome-live-trading-console.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-096-tutorial-step-welcome-live-trading-console.json new file mode 100644 index 000000000..71cadac7e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-096-tutorial-step-welcome-live-trading-console.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 96, + "type": "Tutorial Step - Welcome Live Trading Console", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/welcome-live-trading-console.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-097-tutorial-step-is-it-working.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-097-tutorial-step-is-it-working.json new file mode 100644 index 000000000..ecae04e1a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-097-tutorial-step-is-it-working.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 97, + "type": "Tutorial Step - Is It Working?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "binance" + }, + "text": "The unequivocal way to verify things are working fine is logging on to Binance and checking your order history for BTC/USDT." + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Go to Binance and take a look at what's going on!" + }, + { + "style": "Note", + "text": "At any point in time, you should see one open order and a number of canceled orders pilling up in your order history, pretty much like in the video on the next step!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-098-tutorial-step-welcome-live-trading-binance-orders.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-098-tutorial-step-welcome-live-trading-binance-orders.json new file mode 100644 index 000000000..4dc03e8fe --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-098-tutorial-step-welcome-live-trading-binance-orders.json @@ -0,0 +1,17 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 98, + "type": "Tutorial Step - Welcome Live Trading Binance Orders", + "definition": { + "icon": { + "project": "Superalgos" + }, + "text": "This step will play a video in full screen mode." + }, + "paragraphs": [ + { + "style": "Gif", + "text": "GIFs/Superalgos/Tutorials/welcome-live-trading-binance-orders.gif" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-099-tutorial-step-monitoring-the-fun-way.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-099-tutorial-step-monitoring-the-fun-way.json new file mode 100644 index 000000000..aebffb28e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-099-tutorial-step-monitoring-the-fun-way.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 99, + "type": "Tutorial Step - Monitoring the Fun Way!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-limit-buy-order" + }, + "text": "You thought I would let you monitor the Live Trading Session watching the ugly list of orders at the exchange? No way!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "Superalgos produces the same kind of simulations you love for live sessions too, in realtime!" + }, + { + "style": "Callout", + "text": "Can you see the first few buy orders on the chart?" + }, + { + "style": "Note", + "text": "I just brought you to the present time, on the 1-minute chart. You should be able to see the latest candle forming and a few orders already. The Rate Scale is in automatic mode at both ends. Feel free to change the scales to your liking." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-100-tutorial-step-whats-next.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-100-tutorial-step-whats-next.json new file mode 100644 index 000000000..a9d07dca0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-100-tutorial-step-whats-next.json @@ -0,0 +1,22 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 100, + "type": "Tutorial Step - What's Next?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "bullet-info" + }, + "text": "There are tons of things we haven't covered yet, I know! Just look around! So much stuff to see! It's mind-boggling." + }, + "paragraphs": [ + { + "style": "Text", + "text": "I'm sure you still have tons of questions floating in your head... How do I build my own strategies? How do I measure performance? How do I build an indicator? How do I deploy a trading farm? How may I integrate with TradingView? How do I set up Telegram announcements? Don't worry! You'll get there my friend... you'll just have to do some reading!" + }, + { + "style": "Success", + "text": "In the meantime, remember to stop your live session and data mining when you no longer need them running, and especially before closing the Client." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-101-tutorial-step-what-else-is-cooking.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-101-tutorial-step-what-else-is-cooking.json new file mode 100644 index 000000000..7691ee345 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-101-tutorial-step-what-else-is-cooking.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 101, + "type": "Tutorial Step - What Else Is Cooking?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "ethereum" + }, + "text": "Superalgos is turning into a multi-project platform, and Ethereum is the first project being integrated..." + }, + "paragraphs": [ + { + "style": "Text", + "text": "What does integrating Ethereum means, you ask? It means that—with Beta 8—you will be able to:" + }, + { + "style": "List", + "text": "Connect to an Ethereum node right from within Superalgos using the visual interface." + }, + { + "style": "List", + "text": "Mine blockchain data to access coin and contract information for all Ethereum-based projects, including De-Fi or what have you, visualizing data on the charts, building indicators, and leveraging the whole infrastructure." + }, + { + "style": "List", + "text": "Use the data to trade by consuming related indicators from within trading systems!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-102-tutorial-step-your-chance-to-give-back.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-102-tutorial-step-your-chance-to-give-back.json new file mode 100644 index 000000000..41ce2f61e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-102-tutorial-step-your-chance-to-give-back.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 102, + "type": "Tutorial Step - Your Chance to Give Back!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "superalgos" + }, + "text": "Tens of thousands of hours have gone into building Superalgos and we are happy to share it with you, free of charge..." + }, + "paragraphs": [ + { + "style": "Text", + "text": "All we ask from you is to give three minutes of your time! We need your help to get the word out and grow the user base. There are very good reasons to help us!" + }, + { + "style": "List", + "text": "Removing bugs: more people using the system means that bugs are found and removed faster from each version—your experience improves!" + }, + { + "style": "List", + "text": "More contributors: the more people using the system, the more may contribute indicators or strategies—more intelligence available to you!" + }, + { + "style": "List", + "text": "Core Team focus: if you don't help us, we have to do it ourselves! That means we have less time to code new features for you to enjoy!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-103-tutorial-step-fork-and-star-on-github.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-103-tutorial-step-fork-and-star-on-github.json new file mode 100644 index 000000000..364a787e4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-103-tutorial-step-fork-and-star-on-github.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 103, + "type": "Tutorial Step - Fork and Star on GitHub!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "github" + }, + "text": "More developers may find the project if it raises above the noise on GitHub. Forks and stars make projects easier to find!" + }, + "paragraphs": [ + { + "style": "List", + "text": "Open an account with GitHub if you don't have one. It takes a minute or two!" + }, + { + "style": "List", + "text": "Go to the Superalgos repository and click the Fork button on the top-right corner of the screen. Follow the instructions to complete the fork!" + }, + { + "style": "List", + "text": "Go back to the repo and click the Star button next to the Fork button." + }, + { + "style": "Success", + "text": "Awesome! You are helping developers find Superalgos! The more developers, the faster Superalgos evolves!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-104-tutorial-step-spread-the-word-on-twitter.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-104-tutorial-step-spread-the-word-on-twitter.json new file mode 100644 index 000000000..172789d30 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-104-tutorial-step-spread-the-word-on-twitter.json @@ -0,0 +1,31 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 104, + "type": "Tutorial Step - Spread the Word on Twitter!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "twitter" + }, + "text": "Making some noise on Twitter will help bring more traders to the project. That's important too, for similar reasons!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "The more traders using Superalgos, the more they will drive the Core Team to develop ever more advanced features! This is what you need to do:" + }, + { + "style": "List", + "text": "Go to our Twitter page, follow us, and retweet our latest tweet. Make sure you tag traders you follow!", + "updated": 1610537221339 + }, + { + "style": "Text", + "text": "That's it! No big deal, right?" + }, + { + "style": "Callout", + "text": "We appreciate your help and wish you some happy and prosperous trading!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-105-tutorial-step-get-in-touch.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-105-tutorial-step-get-in-touch.json new file mode 100644 index 000000000..94d3fc0e2 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-105-tutorial-step-get-in-touch.json @@ -0,0 +1,38 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 105, + "type": "Tutorial Step - Get In Touch!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "telegram-bot" + }, + "text": "We strive to help users progress fast and push the boundaries of what is possible to achieve with Superalgos!" + }, + "paragraphs": [ + { + "style": "List", + "text": "Community Group — Let's talk Superalgos!" + }, + { + "style": "List", + "text": "Support Group — Need help?" + }, + { + "style": "List", + "text": "Develop Group — Come test the develop branch!" + }, + { + "style": "List", + "text": "Grupo en Español — Hablemos en español!" + }, + { + "style": "List", + "text": "Superalgos Announcements — Be the first to know about new releases, hot fixes, and important issues." + }, + { + "style": "Callout", + "text": "Tell us how you are using Superalgos, or let us know if you are missing any features!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-106-tutorial-step-ready-for-more-tutorials.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-106-tutorial-step-ready-for-more-tutorials.json new file mode 100644 index 000000000..5c529607f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-106-tutorial-step-ready-for-more-tutorials.json @@ -0,0 +1,34 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 106, + "type": "Tutorial Step - Ready for More Tutorials?", + "definition": { + "icon": { + "project": "Superalgos", + "name": "tutorial" + }, + "text": "There are a few more tutorials ready to walk you through other matters upon request!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "At the bottom of this workspace:" + }, + { + "style": "List", + "text": "Developers Intro is a technical overview!" + }, + { + "style": "List", + "text": "Install a New Market helps you go beyond BTC/USDT!" + }, + { + "style": "Text", + "text": "Load the Trading System Design Tutorials plugin workspace from the tab on the left to learn how to design strategies!" + }, + { + "style": "Text", + "text": "Also, the Weak-hands Buster V.2 plugin workspace features a tutorial about the Trading Bot Layers to complete your understanding of simulations and how they help while designing and debugging strategies." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-107-tutorial-step-my-only-friend-the-end.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-107-tutorial-step-my-only-friend-the-end.json new file mode 100644 index 000000000..7852dc513 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-107-tutorial-step-my-only-friend-the-end.json @@ -0,0 +1,26 @@ +{ + "tutorial": "Welcome to Superalgos!", + "pageNumber": 107, + "type": "Tutorial Step - My Only Friend, The End!", + "definition": { + "icon": { + "project": "Superalgos", + "name": "close-stage-event" + }, + "text": "Ok, my friend, this is the end! I hope you've enjoyed the show and that I've managed to get you hooked to Superalgos!" + }, + "paragraphs": [ + { + "style": "Text", + "text": "There's no doubt in my mind that you haven't seen anything like Superalgos before. As you may now figure, Superalgos is a vast system and keeps growing fast." + }, + { + "style": "Callout", + "text": "There are many more ways in which you can help the project grow stronger!" + }, + { + "style": "Success", + "text": "That's it! No more steps after this one! I promise! Click Next if you don't believe me!" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/TS/Bot-Modules/Indicator-Bot/Bollinger-Bands/BollingerBandsMultiPeriodDaily.js b/Projects/Superalgos/TS/Bot-Modules/Indicator-Bot/Bollinger-Bands/BollingerBandsMultiPeriodDaily.js index 52e4bfdf6..8243a35de 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Indicator-Bot/Bollinger-Bands/BollingerBandsMultiPeriodDaily.js +++ b/Projects/Superalgos/TS/Bot-Modules/Indicator-Bot/Bollinger-Bands/BollingerBandsMultiPeriodDaily.js @@ -38,7 +38,7 @@ try { /* Context Variables */ let contextVariables = { - lastBandFile: undefined, // Datetime of the last file files sucessfully produced by this process. + lastBandFile: undefined, // Datetime of the last file files successfully produced by this process. firstTradeFile: undefined, // Datetime of the first trade file in the whole market history. maxBandFile: undefined // Datetime of the last file available to be used as an input of this process. }; diff --git a/Projects/Superalgos/TS/Bot-Modules/Indicator-Bot/Candles-Volumes/CandlesVolumesMultiPeriodDaily.js b/Projects/Superalgos/TS/Bot-Modules/Indicator-Bot/Candles-Volumes/CandlesVolumesMultiPeriodDaily.js index fcd18f058..c8b774f03 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Indicator-Bot/Candles-Volumes/CandlesVolumesMultiPeriodDaily.js +++ b/Projects/Superalgos/TS/Bot-Modules/Indicator-Bot/Candles-Volumes/CandlesVolumesMultiPeriodDaily.js @@ -36,7 +36,7 @@ try { /* Context Variables */ let contextVariables = { - lastCandleFile: undefined, // Datetime of the last file files sucessfully produced by this process. + lastCandleFile: undefined, // Datetime of the last file files successfully produced by this process. firstTradeFile: undefined, // Datetime of the first trade file in the whole market history. maxCandleFile: undefined // Datetime of the last file available to be used as an input of this process. }; diff --git a/Projects/Superalgos/TS/Bot-Modules/Indicator-Bot/Candles-Volumes/CandlesVolumesMultiPeriodMarket.js b/Projects/Superalgos/TS/Bot-Modules/Indicator-Bot/Candles-Volumes/CandlesVolumesMultiPeriodMarket.js index a2decf316..94e47da0c 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Indicator-Bot/Candles-Volumes/CandlesVolumesMultiPeriodMarket.js +++ b/Projects/Superalgos/TS/Bot-Modules/Indicator-Bot/Candles-Volumes/CandlesVolumesMultiPeriodMarket.js @@ -50,7 +50,7 @@ try { /* Context Variables */ let contextVariables = { - lastCandleFile: undefined, // Datetime of the last file files sucessfully produced by this process. + lastCandleFile: undefined, // Datetime of the last file files successfully produced by this process. firstTradeFile: undefined, // Datetime of the first trade file in the whole market history. maxCandleFile: undefined // Datetime of the last file available to be used as an input of this process. }; diff --git a/Projects/Superalgos/TS/Bot-Modules/Indicator-Bot/IndicatorOutput.js b/Projects/Superalgos/TS/Bot-Modules/Indicator-Bot/IndicatorOutput.js index 59c47daea..ff5ac7b13 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Indicator-Bot/IndicatorOutput.js +++ b/Projects/Superalgos/TS/Bot-Modules/Indicator-Bot/IndicatorOutput.js @@ -70,8 +70,8 @@ /* Check Irregular Periods */ - if (outputDatasetNode.referenceParent.parentNode.dataBuilding.loop.javascriptCode !== undefined) { - if (outputDatasetNode.referenceParent.parentNode.dataBuilding.loop.javascriptCode.code.indexOf('results.push') >= 0) { + if (outputDatasetNode.referenceParent.parentNode.dataBuilding.loop.procedureJavascriptCode !== undefined) { + if (outputDatasetNode.referenceParent.parentNode.dataBuilding.loop.procedureJavascriptCode.code.indexOf('results.push') >= 0) { resultsWithIrregularPeriods = true } } @@ -110,7 +110,7 @@ let contextSummary = {} /* Check Irregular Periods */ - if (outputDatasetNode.referenceParent.parentNode.dataBuilding.loop.javascriptCode.code.indexOf('results.push') >= 0) { + if (outputDatasetNode.referenceParent.parentNode.dataBuilding.loop.procedureJavascriptCode.code.indexOf('results.push') >= 0) { resultsWithIrregularPeriods = true } diff --git a/Projects/Superalgos/TS/Bot-Modules/Indicator-Bot/MultiPeriodDaily.js b/Projects/Superalgos/TS/Bot-Modules/Indicator-Bot/MultiPeriodDaily.js index c2143c4a8..cc81d84ce 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Indicator-Bot/MultiPeriodDaily.js +++ b/Projects/Superalgos/TS/Bot-Modules/Indicator-Bot/MultiPeriodDaily.js @@ -41,7 +41,7 @@ /* Context Variables */ let contextVariables = { - lastFile: undefined, // Datetime of the last file files sucessfully produced by this process. + lastFile: undefined, // Datetime of the last file files successfully produced by this process. dateBeginOfMarket: undefined, // Datetime of the first trade file in the whole market history. dateEndOfMarket: undefined // Datetime of the last file available to be used as an input of this process. }; diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/Snapshots.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/Snapshots.js index bb41a471f..ed3950d39 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/Snapshots.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/Snapshots.js @@ -124,13 +124,13 @@ exports.newSuperalgosBotModulesSnapshots = function (processIndex) { } /* Now we go down through all this node children */ - let nodeDefinition = TS.projects.superalgos.globals.taskConstants.APP_SCHEMA_MAP.get(node.project + '-' + node.type) - if (nodeDefinition === undefined) { return } + let schemaDocument = TS.projects.superalgos.globals.taskConstants.APP_SCHEMA_MAP.get(node.project + '-' + node.type) + if (schemaDocument === undefined) { return } - if (nodeDefinition.properties !== undefined) { + if (schemaDocument.childrenNodesProperties !== undefined) { let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/TradingEngine.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/TradingEngine.js index a2938385c..38dd8568d 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/TradingEngine.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/TradingEngine.js @@ -112,13 +112,13 @@ exports.newSuperalgosBotModulesTradingEngine = function (processIndex) { destinationNode.value = originNode.value /* Now we go down through all the children of the origin node, assuming the destination node has the same children structure*/ - let nodeDefinition = TS.projects.superalgos.globals.taskConstants.APP_SCHEMA_MAP.get(originNode.project + '-' + originNode.type) - if (nodeDefinition === undefined) { return } + let schemaDocument = TS.projects.superalgos.globals.taskConstants.APP_SCHEMA_MAP.get(originNode.project + '-' + originNode.type) + if (schemaDocument === undefined) { return } - if (nodeDefinition.properties !== undefined) { + if (schemaDocument.childrenNodesProperties !== undefined) { let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { @@ -151,13 +151,13 @@ exports.newSuperalgosBotModulesTradingEngine = function (processIndex) { nodesMap.set(node.id, node) /* Now we go down through all this node children */ - let nodeDefinition = TS.projects.superalgos.globals.taskConstants.APP_SCHEMA_MAP.get(node.project + '-' + node.type) - if (nodeDefinition === undefined) { return } + let schemaDocument = TS.projects.superalgos.globals.taskConstants.APP_SCHEMA_MAP.get(node.project + '-' + node.type) + if (schemaDocument === undefined) { return } - if (nodeDefinition.properties !== undefined) { + if (schemaDocument.childrenNodesProperties !== undefined) { let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { @@ -194,13 +194,13 @@ exports.newSuperalgosBotModulesTradingEngine = function (processIndex) { } /* Now we go down through all this node children */ - let nodeDefinition = TS.projects.superalgos.globals.taskConstants.APP_SCHEMA_MAP.get(node.project + '-' + node.type) - if (nodeDefinition === undefined) { return } + let schemaDocument = TS.projects.superalgos.globals.taskConstants.APP_SCHEMA_MAP.get(node.project + '-' + node.type) + if (schemaDocument === undefined) { return } - if (nodeDefinition.properties !== undefined) { + if (schemaDocument.childrenNodesProperties !== undefined) { let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/TradingProcess.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/TradingProcess.js index 49bc6a47d..5fa0d90b7 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/TradingProcess.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/TradingProcess.js @@ -60,7 +60,7 @@ /* Context Variables */ let contextVariables = { - lastFile: undefined, // Datetime of the last file files sucessfully produced by this process. + lastFile: undefined, // Datetime of the last file files successfully produced by this process. dateBeginOfMarket: undefined, // Datetime of the first trade file in the whole market history. dateEndOfMarket: undefined // Datetime of the last file available to be used as an input of this process. }; diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/TradingSystem.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/TradingSystem.js index 47f14d793..4f3ea3f54 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/TradingSystem.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/TradingSystem.js @@ -202,13 +202,13 @@ exports.newSuperalgosBotModulesTradingSystem = function (processIndex) { } /* Now we go down through all this node children */ - let nodeDefinition = TS.projects.superalgos.globals.taskConstants.APP_SCHEMA_MAP.get(node.project + '-' + node.type) - if (nodeDefinition === undefined) { return } + let schemaDocument = TS.projects.superalgos.globals.taskConstants.APP_SCHEMA_MAP.get(node.project + '-' + node.type) + if (schemaDocument === undefined) { return } - if (nodeDefinition.properties !== undefined) { + if (schemaDocument.childrenNodesProperties !== undefined) { let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { diff --git a/Projects/Superalgos/TS/Function-Libraries/SingleMarketFunctions.js b/Projects/Superalgos/TS/Function-Libraries/SingleMarketFunctions.js index 71f1445e4..0246e4b63 100644 --- a/Projects/Superalgos/TS/Function-Libraries/SingleMarketFunctions.js +++ b/Projects/Superalgos/TS/Function-Libraries/SingleMarketFunctions.js @@ -226,12 +226,12 @@ /* This is Initialization Code */ if (calculationsProcedure.initialization !== undefined) { - if (calculationsProcedure.initialization.javascriptCode !== undefined) { + if (calculationsProcedure.initialization.procedureJavascriptCode !== undefined) { try { - eval(calculationsProcedure.initialization.javascriptCode.code) + eval(calculationsProcedure.initialization.procedureJavascriptCode.code) } catch (err) { TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] calculationsProcedure -> initialization -> Error executing User Code. Error = " + err.stack) - TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] calculationsProcedure -> initialization -> Error executing User Code. Code = " + calculationsProcedure.initialization.javascriptCode.code); + TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] calculationsProcedure -> initialization -> Error executing User Code. Code = " + calculationsProcedure.initialization.procedureJavascriptCode.code); throw ("Error Executing User Code.") } } @@ -239,7 +239,7 @@ /* This is Initialization Code */ if (calculationsProcedure.loop !== undefined) { - if (calculationsProcedure.loop.javascriptCode !== undefined) { + if (calculationsProcedure.loop.procedureJavascriptCode !== undefined) { for (let index = 0; index < jsonArray.length; index++) { let product = {} @@ -247,11 +247,11 @@ /* This is Loop Code */ try { - eval(calculationsProcedure.loop.javascriptCode.code) + eval(calculationsProcedure.loop.procedureJavascriptCode.code) } catch (err) { TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] calculationsProcedure -> loop -> Error executing User Code. Error = " + err.stack) TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] calculationsProcedure -> loop -> Error executing User Code. product = " + JSON.stringify(product)) - TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] calculationsProcedure -> loop -> Error executing User Code. Code = " + calculationsProcedure.loop.javascriptCode.code); + TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] calculationsProcedure -> loop -> Error executing User Code. Code = " + calculationsProcedure.loop.procedureJavascriptCode.code); throw ("Error Executing User Code.") } @@ -259,16 +259,16 @@ for (let j = 0; j < recordDefinition.properties.length; j++) { let property = recordDefinition.properties[j] if (property.config.isCalculated === true) { - if (property.formula !== undefined) { - if (property.formula.code !== undefined) { + if (property.recordFormula !== undefined) { + if (property.recordFormula.code !== undefined) { try { - let newValue = eval(property.formula.code) + let newValue = eval(property.recordFormula.code) let currentRecord = product[variableName] currentRecord[property.config.codeName] = newValue } catch (err) { TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] calculationsProcedure -> loop -> formula -> Error executing User Code. Error = " + err.stack) TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] calculationsProcedure -> loop -> formula -> Error executing User Code. product = " + JSON.stringify(product)) - TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] calculationsProcedure -> loop -> formula -> Error executing User Code. Code = " + property.formula.code); + TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] calculationsProcedure -> loop -> formula -> Error executing User Code. Code = " + property.recordFormula.code); throw ("Error Executing User Code.") } } @@ -348,12 +348,12 @@ /* This is Initialization Code */ if (dataBuildingProcedure.initialization !== undefined) { - if (dataBuildingProcedure.initialization.javascriptCode !== undefined) { + if (dataBuildingProcedure.initialization.procedureJavascriptCode !== undefined) { try { - eval(dataBuildingProcedure.initialization.javascriptCode.code) + eval(dataBuildingProcedure.initialization.procedureJavascriptCode.code) } catch (err) { TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] dataBuildingProcedure -> initialization -> Error executing User Code. Error = " + err.stack) - TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] dataBuildingProcedure -> initialization -> Error executing User Code. Code = " + dataBuildingProcedure.initialization.javascriptCode.code); + TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] dataBuildingProcedure -> initialization -> Error executing User Code. Code = " + dataBuildingProcedure.initialization.procedureJavascriptCode.code); throw ("Error Executing User Code.") } } @@ -376,7 +376,7 @@ /* This is Initialization Code */ if (dataBuildingProcedure.loop !== undefined) { - if (dataBuildingProcedure.loop.javascriptCode !== undefined) { + if (dataBuildingProcedure.loop.procedureJavascriptCode !== undefined) { let lastRecord for (let index = 0; index < mainDependency.records.length; index++) { @@ -391,11 +391,11 @@ /* This is Loop Code */ try { - eval(dataBuildingProcedure.loop.javascriptCode.code) + eval(dataBuildingProcedure.loop.procedureJavascriptCode.code) } catch (err) { TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] dataBuildingProcedure -> loop -> Error executing User Code. Error = " + err.stack) TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] dataBuildingProcedure -> loop -> Error executing User Code. product = " + JSON.stringify(product)) - TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] dataBuildingProcedure -> loop -> Error executing User Code. Code = " + dataBuildingProcedure.loop.javascriptCode.code); + TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] dataBuildingProcedure -> loop -> Error executing User Code. Code = " + dataBuildingProcedure.loop.procedureJavascriptCode.code); throw ("Error Executing User Code.") } @@ -403,16 +403,16 @@ for (let j = 0; j < recordDefinition.properties.length; j++) { let property = recordDefinition.properties[j] if (property.config.isCalculated !== true) { - if (property.formula !== undefined) { - if (property.formula.code !== undefined) { + if (property.recordFormula !== undefined) { + if (property.recordFormula.code !== undefined) { try { - let newValue = eval(property.formula.code) + let newValue = eval(property.recordFormula.code) let currentRecord = product[variableName] currentRecord[property.config.codeName] = newValue } catch (err) { TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] dataBuildingProcedure -> loop -> formula -> Error executing User Code. Error = " + err.stack) TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] dataBuildingProcedure -> loop -> formula -> Error executing User Code. product = " + JSON.stringify(product)) - TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] dataBuildingProcedure -> loop -> formula -> Error executing User Code. Code = " + property.formula.code); + TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[ERROR] dataBuildingProcedure -> loop -> formula -> Error executing User Code. Code = " + property.recordFormula.code); throw ("Error Executing User Code.") } } diff --git a/Projects/Superalgos/TS/Utilities/NodeFunctions.js b/Projects/Superalgos/TS/Utilities/NodeFunctions.js index 79168ce67..13a95bdfc 100644 --- a/Projects/Superalgos/TS/Utilities/NodeFunctions.js +++ b/Projects/Superalgos/TS/Utilities/NodeFunctions.js @@ -16,17 +16,17 @@ exports.newSuperalgosUtilitiesNodeFunctions = function () { return resultArray function scanNodeBranch(startingNode) { - let nodeDefinition = TS.projects.superalgos.globals.taskConstants.APP_SCHEMA_MAP.get(startingNode.project + '-' + startingNode.type) - if (nodeDefinition === undefined) { return } + let schemaDocument = TS.projects.superalgos.globals.taskConstants.APP_SCHEMA_MAP.get(startingNode.project + '-' + startingNode.type) + if (schemaDocument === undefined) { return } if (startingNode.type === nodeType) { resultArray.push(startingNode) return } - if (nodeDefinition.properties === undefined) { return } - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + if (schemaDocument.childrenNodesProperties === undefined) { return } + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { @@ -60,8 +60,8 @@ exports.newSuperalgosUtilitiesNodeFunctions = function () { if (startingNode === undefined) { return } if (nodeFound !== undefined) { return } - let nodeDefinition = TS.projects.superalgos.globals.taskConstants.APP_SCHEMA_MAP.get(startingNode.project + '-' + startingNode.type) - if (nodeDefinition === undefined) { return } + let schemaDocument = TS.projects.superalgos.globals.taskConstants.APP_SCHEMA_MAP.get(startingNode.project + '-' + startingNode.type) + if (schemaDocument === undefined) { return } if (startingNode.type === nodeType) { nodeFound = startingNode @@ -69,9 +69,9 @@ exports.newSuperalgosUtilitiesNodeFunctions = function () { } /* We scan through this node children */ - if (nodeDefinition.properties !== undefined) { - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + if (schemaDocument.childrenNodesProperties !== undefined) { + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { @@ -114,8 +114,8 @@ exports.newSuperalgosUtilitiesNodeFunctions = function () { function scanNodeMesh(startingNode) { if (startingNode === undefined) { return } - let nodeDefinition = TS.projects.superalgos.globals.taskConstants.APP_SCHEMA_MAP.get(startingNode.project + '-' + startingNode.type) - if (nodeDefinition === undefined) { return } + let schemaDocument = TS.projects.superalgos.globals.taskConstants.APP_SCHEMA_MAP.get(startingNode.project + '-' + startingNode.type) + if (schemaDocument === undefined) { return } if (startingNode.id === nodeId) { nodeArray.push(startingNode) @@ -123,9 +123,9 @@ exports.newSuperalgosUtilitiesNodeFunctions = function () { } /* We scan through this node children */ - if (nodeDefinition.properties !== undefined) { - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + if (schemaDocument.childrenNodesProperties !== undefined) { + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { diff --git a/Projects/Superalgos/UI/Function-Libraries/ActionSwitch.js b/Projects/Superalgos/UI/Function-Libraries/ActionSwitch.js index bb15af280..91d29a319 100644 --- a/Projects/Superalgos/UI/Function-Libraries/ActionSwitch.js +++ b/Projects/Superalgos/UI/Function-Libraries/ActionSwitch.js @@ -632,20 +632,9 @@ function newSuperalgosActionSwitch() { break case 'Open Documentation': { - let definition = getNodeDefinition(action.node) + let definition = getSchemaDocument(action.node) if (definition !== undefined) { - if (definition.docURL !== undefined) { - UI.projects.superalgos.spaces.docSpace.navigateTo(definition.docURL) - } else { - let headName = UI.projects.superalgos.utilities.hierarchy.getHiriarchyHead(action.node).type - headName = headName.toLowerCase() - headName = headName.split(" ").join("-") - let nodeName = action.node.type - nodeName = nodeName.toLowerCase() - nodeName = nodeName.split(" ").join("-") - url = UI.projects.superalgos.globals.docs.DOCUMENTATION_URL_PREFIX + "suite-hierarchy-" + headName + ".html#" + nodeName - UI.projects.superalgos.spaces.docSpace.navigateTo(url) - } + UI.projects.superalgos.spaces.docsSpace.openSpaceAreaAndNavigateTo(action.node.project,'Node', action.node.type) } } break diff --git a/Projects/Superalgos/UI/Function-Libraries/ChainAttachDetach.js b/Projects/Superalgos/UI/Function-Libraries/ChainAttachDetach.js index ec1e3be98..3ab54eabe 100644 --- a/Projects/Superalgos/UI/Function-Libraries/ChainAttachDetach.js +++ b/Projects/Superalgos/UI/Function-Libraries/ChainAttachDetach.js @@ -31,16 +31,16 @@ function newSuperalgosFunctionLibraryChainAttachDetach() { return } default: { - let nodeDefinition = getNodeDefinition(node) - if (nodeDefinition !== undefined) { + let schemaDocument = getSchemaDocument(node) + if (schemaDocument !== undefined) { /* Detach from parent */ if (node.payload.parentNode !== undefined) { - let parentNodeDefinition = getNodeDefinition(node.payload.parentNode) - if (parentNodeDefinition !== undefined) { - if (parentNodeDefinition.properties !== undefined) { - for (let i = 0; i < parentNodeDefinition.properties.length; i++) { - let property = parentNodeDefinition.properties[i] - if (nodeDefinition.propertyNameAtParent === property.name) { + let parentSchemaDocument = getSchemaDocument(node.payload.parentNode) + if (parentSchemaDocument !== undefined) { + if (parentSchemaDocument.childrenNodesProperties !== undefined) { + for (let i = 0; i < parentSchemaDocument.childrenNodesProperties.length; i++) { + let property = parentSchemaDocument.childrenNodesProperties[i] + if (schemaDocument.propertyNameAtParent === property.name) { switch (property.type) { case 'node': { node.payload.parentNode[property.name] = undefined @@ -166,18 +166,18 @@ function newSuperalgosFunctionLibraryChainAttachDetach() { } break default: { - let nodeDefinition = getNodeDefinition(node) - if (nodeDefinition !== undefined) { + let schemaDocument = getSchemaDocument(node) + if (schemaDocument !== undefined) { node.payload.parentNode = attachToNode node.payload.chainParent = attachToNode /* Attach to new parent */ if (node.payload.parentNode !== undefined) { - let parentNodeDefinition = getNodeDefinition(node.payload.parentNode) - if (parentNodeDefinition !== undefined) { - if (parentNodeDefinition.properties !== undefined) { - for (let i = 0; i < parentNodeDefinition.properties.length; i++) { - let property = parentNodeDefinition.properties[i] - if (nodeDefinition.propertyNameAtParent === property.name) { + let parentSchemaDocument = getSchemaDocument(node.payload.parentNode) + if (parentSchemaDocument !== undefined) { + if (parentSchemaDocument.childrenNodesProperties !== undefined) { + for (let i = 0; i < parentSchemaDocument.childrenNodesProperties.length; i++) { + let property = parentSchemaDocument.childrenNodesProperties[i] + if (schemaDocument.propertyNameAtParent === property.name) { switch (property.type) { case 'node': { node.payload.parentNode[property.name] = node diff --git a/Projects/Superalgos/UI/Function-Libraries/CryptoEcosystemFunctions.js b/Projects/Superalgos/UI/Function-Libraries/CryptoEcosystemFunctions.js index 49a3a7049..c56fa8dc2 100644 --- a/Projects/Superalgos/UI/Function-Libraries/CryptoEcosystemFunctions.js +++ b/Projects/Superalgos/UI/Function-Libraries/CryptoEcosystemFunctions.js @@ -656,11 +656,11 @@ function newSuperalgosFunctionLibraryCryptoEcosystemFunctions() { delete the project reference. */ let projectReference = dashboard.payload.parentNode - nodeDefinition = getNodeDefinition(dashboard) + schemaDocument = getSchemaDocument(dashboard) UI.projects.superalgos.functionLibraries.nodeDeleter.deleteUIObject(dashboard, rootNodes) - if (projectReference !== undefined && nodeDefinition.propertyNameAtParent !== undefined) { - if (projectReference[nodeDefinition.propertyNameAtParent] !== undefined) { - if (projectReference[nodeDefinition.propertyNameAtParent].length === 0) { + if (projectReference !== undefined && schemaDocument.propertyNameAtParent !== undefined) { + if (projectReference[schemaDocument.propertyNameAtParent] !== undefined) { + if (projectReference[schemaDocument.propertyNameAtParent].length === 0) { UI.projects.superalgos.functionLibraries.nodeDeleter.deleteUIObject(projectReference, rootNodes) } } @@ -704,19 +704,19 @@ function newSuperalgosFunctionLibraryCryptoEcosystemFunctions() { delete the exchange reference. */ let exchangeReference = marketReference.payload.parentNode - let nodeDefinition = getNodeDefinition(marketReference) + let schemaDocument = getSchemaDocument(marketReference) UI.projects.superalgos.functionLibraries.nodeDeleter.deleteUIObject(marketReference, rootNodes) - if (exchangeReference !== undefined && nodeDefinition.propertyNameAtParent !== undefined) { - if (exchangeReference[nodeDefinition.propertyNameAtParent].length === 0) { + if (exchangeReference !== undefined && schemaDocument.propertyNameAtParent !== undefined) { + if (exchangeReference[schemaDocument.propertyNameAtParent].length === 0) { /* If possible, after we delete the exchange reference, we will also delete the project reference. */ let projectReference = exchangeReference.payload.parentNode - nodeDefinition = getNodeDefinition(exchangeReference) + schemaDocument = getSchemaDocument(exchangeReference) UI.projects.superalgos.functionLibraries.nodeDeleter.deleteUIObject(exchangeReference, rootNodes) - if (projectReference !== undefined && nodeDefinition.propertyNameAtParent !== undefined) { - if (projectReference[nodeDefinition.propertyNameAtParent].length === 0) { + if (projectReference !== undefined && schemaDocument.propertyNameAtParent !== undefined) { + if (projectReference[schemaDocument.propertyNameAtParent].length === 0) { UI.projects.superalgos.functionLibraries.nodeDeleter.deleteUIObject(projectReference, rootNodes) } } diff --git a/Projects/Superalgos/UI/Function-Libraries/DependenciesFilter.js b/Projects/Superalgos/UI/Function-Libraries/DependenciesFilter.js index 47ea51692..c768cb46a 100644 --- a/Projects/Superalgos/UI/Function-Libraries/DependenciesFilter.js +++ b/Projects/Superalgos/UI/Function-Libraries/DependenciesFilter.js @@ -14,12 +14,12 @@ function newSuperalgosFunctionLibraryDependenciesFilter() { function recursiveFilter(node) { filter(node.code) - let nodeDefinition = getNodeDefinition(node) - if (nodeDefinition !== undefined) { - if (nodeDefinition.properties !== undefined) { + let schemaDocument = getSchemaDocument(node) + if (schemaDocument !== undefined) { + if (schemaDocument.childrenNodesProperties !== undefined) { let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { diff --git a/Projects/Superalgos/UI/Function-Libraries/NodeChildren.js b/Projects/Superalgos/UI/Function-Libraries/NodeChildren.js index 30178d28f..6a89a9660 100644 --- a/Projects/Superalgos/UI/Function-Libraries/NodeChildren.js +++ b/Projects/Superalgos/UI/Function-Libraries/NodeChildren.js @@ -14,13 +14,13 @@ function newNodeChildren() { childrenCount: 0, childIndex: undefined } - let parentNodeDefinition = getNodeDefinition(parentNode) - if (parentNodeDefinition !== undefined) { - if (parentNodeDefinition.properties !== undefined) { + let parentSchemaDocument = getSchemaDocument(parentNode) + if (parentSchemaDocument !== undefined) { + if (parentSchemaDocument.childrenNodesProperties !== undefined) { let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. - for (let i = 0; i < parentNodeDefinition.properties.length; i++) { - let property = parentNodeDefinition.properties[i] + for (let i = 0; i < parentSchemaDocument.childrenNodesProperties.length; i++) { + let property = parentSchemaDocument.childrenNodesProperties[i] if (parentNode[property.name] !== undefined) { switch (property.type) { case 'node': { @@ -34,12 +34,12 @@ function newNodeChildren() { } break case 'array': { - let nodeDefinition = getNodeDefinition(childNode) - if (nodeDefinition !== undefined) { + let schemaDocument = getSchemaDocument(childNode) + if (schemaDocument !== undefined) { let nodePropertyArray = parentNode[property.name] for (let j = 0; j < nodePropertyArray.length; j++) { let child = nodePropertyArray[j] - if (nodeDefinition.chainedToSameType === true) { + if (schemaDocument.chainedToSameType === true) { if (j < 1) { response.childrenCount++ if (child.id === childNode.id) { diff --git a/Projects/Superalgos/UI/Function-Libraries/NodeCloning.js b/Projects/Superalgos/UI/Function-Libraries/NodeCloning.js index 1be5585ad..6f49d3d23 100644 --- a/Projects/Superalgos/UI/Function-Libraries/NodeCloning.js +++ b/Projects/Superalgos/UI/Function-Libraries/NodeCloning.js @@ -19,8 +19,8 @@ function newSuperalgosFunctionLibraryNodeCloning() { function cloneNode(node) { if (node === undefined) { return } - let nodeDefinition = getNodeDefinition(node) - if (nodeDefinition !== undefined) { + let schemaDocument = getSchemaDocument(node) + if (schemaDocument !== undefined) { let object = { type: node.type, name: node.name, @@ -30,10 +30,10 @@ function newSuperalgosFunctionLibraryNodeCloning() { } /* Children Nodes */ - if (nodeDefinition.properties !== undefined) { + if (schemaDocument.childrenNodesProperties !== undefined) { let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { @@ -73,8 +73,8 @@ function newSuperalgosFunctionLibraryNodeCloning() { function redirectReferenceParents(node) { if (node === undefined) { return } - let nodeDefinition = getNodeDefinition(node) - if (nodeDefinition !== undefined) { + let schemaDocument = getSchemaDocument(node) + if (schemaDocument !== undefined) { let object = { type: node.type, name: node.name, @@ -84,10 +84,10 @@ function newSuperalgosFunctionLibraryNodeCloning() { } /* Children Nodes */ - if (nodeDefinition.properties !== undefined) { + if (schemaDocument.childrenNodesProperties !== undefined) { let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { diff --git a/Projects/Superalgos/UI/Function-Libraries/NodeDeleter.js b/Projects/Superalgos/UI/Function-Libraries/NodeDeleter.js index 5800726b9..785695373 100644 --- a/Projects/Superalgos/UI/Function-Libraries/NodeDeleter.js +++ b/Projects/Superalgos/UI/Function-Libraries/NodeDeleter.js @@ -31,13 +31,13 @@ function newSuperalgosFunctionLibraryNodeDeleter() { node.payload.referenceParent.payload.uiObject.isShowing = false } - let nodeDefinition = getNodeDefinition(node) - if (nodeDefinition !== undefined) { + let schemaDocument = getSchemaDocument(node) + if (schemaDocument !== undefined) { /* Remove all of its own children nodes. */ - if (nodeDefinition.properties !== undefined) { + if (schemaDocument.childrenNodesProperties !== undefined) { let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { @@ -65,16 +65,16 @@ function newSuperalgosFunctionLibraryNodeDeleter() { } /* Remove node from parent */ - if (nodeDefinition.propertyNameAtParent !== undefined) { + if (schemaDocument.propertyNameAtParent !== undefined) { let removedFromParent = false if (node.payload !== undefined) { if (node.payload.parentNode !== undefined) { - let parentNodeDefinition = getNodeDefinition(node.payload.parentNode) - if (parentNodeDefinition !== undefined) { - if (parentNodeDefinition.properties !== undefined) { - for (let i = 0; i < parentNodeDefinition.properties.length; i++) { - let property = parentNodeDefinition.properties[i] - if (nodeDefinition.propertyNameAtParent === property.name) { + let parentSchemaDocument = getSchemaDocument(node.payload.parentNode) + if (parentSchemaDocument !== undefined) { + if (parentSchemaDocument.childrenNodesProperties !== undefined) { + for (let i = 0; i < parentSchemaDocument.childrenNodesProperties.length; i++) { + let property = parentSchemaDocument.childrenNodesProperties[i] + if (schemaDocument.propertyNameAtParent === property.name) { switch (property.type) { case 'node': { node.payload.parentNode[property.name] = undefined @@ -88,7 +88,7 @@ function newSuperalgosFunctionLibraryNodeDeleter() { let arrayItem = nodePropertyArray[j] if (arrayItem.id === node.id) { /* If this object is chained to the ones of the same type we need to give the next in the chain the reference to the current chain parent */ - if (nodeDefinition.chainedToSameType === true) { + if (schemaDocument.chainedToSameType === true) { if (j < nodePropertyArray.length - 1) { let nextArrayItem = nodePropertyArray[j + 1] nextArrayItem.payload.chainParent = node.payload.chainParent @@ -108,7 +108,7 @@ function newSuperalgosFunctionLibraryNodeDeleter() { } } if (removedFromParent === false) { - console.log('[ERROR] Deleting Node: ' + node.type + ' ' + node.name + '. This node could not be deleted from its parent node (' + node.payload.parentNode.type + ') because its configured propertyNameAtParent (' + nodeDefinition.propertyNameAtParent + ') does not match any of the properties of its parent.') + console.log('[ERROR] Deleting Node: ' + node.type + ' ' + node.name + '. This node could not be deleted from its parent node (' + node.payload.parentNode.type + ') because its configured propertyNameAtParent (' + schemaDocument.propertyNameAtParent + ') does not match any of the properties of its parent.') return false } } diff --git a/Projects/Superalgos/UI/Function-Libraries/NodePath.js b/Projects/Superalgos/UI/Function-Libraries/NodePath.js index e5b6f8f6f..9c92dafda 100644 --- a/Projects/Superalgos/UI/Function-Libraries/NodePath.js +++ b/Projects/Superalgos/UI/Function-Libraries/NodePath.js @@ -18,12 +18,12 @@ function newSuperalgosFunctionLibraryNodePath() { if (node.payload === undefined) { return } if (node.payload.parentNode === undefined) { return } - let nodeDefinition = getNodeDefinition(node.payload.parentNode) - if (nodeDefinition === undefined) { return } - if (nodeDefinition.properties === undefined) { return } + let schemaDocument = getSchemaDocument(node.payload.parentNode) + if (schemaDocument === undefined) { return } + if (schemaDocument.childrenNodesProperties === undefined) { return } - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] let parentProperty = node.payload.parentNode[property.name] if (parentProperty === undefined) { continue } diff --git a/Projects/Superalgos/UI/Function-Libraries/OnFocus.js b/Projects/Superalgos/UI/Function-Libraries/OnFocus.js index ea3ad073e..10e567514 100644 --- a/Projects/Superalgos/UI/Function-Libraries/OnFocus.js +++ b/Projects/Superalgos/UI/Function-Libraries/OnFocus.js @@ -7,8 +7,8 @@ function newSuperalgosFunctionLibraryOnFocus() { function getNodeThatIsOnFocus(node) { if (node === undefined || node === null) { return } if (node.payload === undefined) { return } - let nodeDefinition = getNodeDefinition(node) - if (nodeDefinition !== undefined) { + let schemaDocument = getSchemaDocument(node) + if (schemaDocument !== undefined) { /* First we ask the question to ourself */ if (node.payload.uiObject.isOnFocus === true) { return node @@ -16,10 +16,10 @@ function newSuperalgosFunctionLibraryOnFocus() { /* Then we check all of its own children nodes. */ if (node.payload.floatingObject.isCollapsed !== true) { - if (nodeDefinition.properties !== undefined) { + if (schemaDocument.childrenNodesProperties !== undefined) { let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { diff --git a/Projects/Superalgos/UI/Function-Libraries/ProtocolNode.js b/Projects/Superalgos/UI/Function-Libraries/ProtocolNode.js index 9e2f7b91d..7cbedddd2 100644 --- a/Projects/Superalgos/UI/Function-Libraries/ProtocolNode.js +++ b/Projects/Superalgos/UI/Function-Libraries/ProtocolNode.js @@ -13,9 +13,9 @@ function newSuperalgosFunctionLibraryProtocolNode() { if (node === undefined) { return } if (node.payload === undefined) { return } - let nodeDefinition = getNodeDefinition(node) - if (nodeDefinition !== undefined) { - if (removePersonalData === true && nodeDefinition.isPersonalData === true) { return } + let schemaDocument = getSchemaDocument(node) + if (schemaDocument !== undefined) { + if (removePersonalData === true && schemaDocument.isPersonalData === true) { return } let object = { type: node.type, name: node.name, @@ -25,9 +25,9 @@ function newSuperalgosFunctionLibraryProtocolNode() { } /* Children Nodes */ - if (nodeDefinition.properties !== undefined) { - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + if (schemaDocument.childrenNodesProperties !== undefined) { + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { @@ -90,8 +90,8 @@ function newSuperalgosFunctionLibraryProtocolNode() { } } - if (parseConfig && object.config !== undefined && nodeDefinition.editors !== undefined) { - if (nodeDefinition.editors.config === true) { + if (parseConfig && object.config !== undefined && schemaDocument.editors !== undefined) { + if (schemaDocument.editors.config === true) { try { object.config = JSON.parse(node.config) } catch (err) { diff --git a/Projects/Superalgos/UI/Function-Libraries/ShortcutKeys.js b/Projects/Superalgos/UI/Function-Libraries/ShortcutKeys.js index 6e2e60e38..0a1e866ea 100644 --- a/Projects/Superalgos/UI/Function-Libraries/ShortcutKeys.js +++ b/Projects/Superalgos/UI/Function-Libraries/ShortcutKeys.js @@ -6,8 +6,8 @@ function newSuperalgosFunctionLibraryShortcutKeys() { function getNodeByShortcutKey(node, searchingKey) { if (node === undefined) { return } - let nodeDefinition = getNodeDefinition(node) - if (nodeDefinition !== undefined) { + let schemaDocument = getSchemaDocument(node) + if (schemaDocument !== undefined) { /* Check Self first */ if (node.payload.uiObject.shortcutKey === searchingKey) { return node @@ -15,10 +15,10 @@ function newSuperalgosFunctionLibraryShortcutKeys() { /* Check all of its own children nodes. */ if (node.payload.floatingObject.isCollapsed !== true) { - if (nodeDefinition.properties !== undefined) { + if (schemaDocument.childrenNodesProperties !== undefined) { let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { diff --git a/Projects/Superalgos/UI/Function-Libraries/SuperScripts.js b/Projects/Superalgos/UI/Function-Libraries/SuperScripts.js index 9e8489b66..8287d1be0 100644 --- a/Projects/Superalgos/UI/Function-Libraries/SuperScripts.js +++ b/Projects/Superalgos/UI/Function-Libraries/SuperScripts.js @@ -18,9 +18,9 @@ function newSuperalgosFunctionLibrarySuperScriptsFunctions() { if (exchange === undefined) { UI.projects.superalgos.functionLibraries.uiObjectsFromNodes.createUiObjectFromNode(templateClone, target, target) } else { - let definition = getNodeDefinition(target) - for (let i = 0; i < definition.properties.length; i++) { - let property = definition.properties[i] + let definition = getSchemaDocument(target) + for (let i = 0; i < definition.childrenNodesProperties.length; i++) { + let property = definition.childrenNodesProperties[i] if (property.childType === exchangeNodeType) { let exchanges = target[property.name] if (exchanges === undefined) { diff --git a/Projects/Superalgos/UI/Function-Libraries/TaskFunctions.js b/Projects/Superalgos/UI/Function-Libraries/TaskFunctions.js index 057e577d1..59da53e38 100644 --- a/Projects/Superalgos/UI/Function-Libraries/TaskFunctions.js +++ b/Projects/Superalgos/UI/Function-Libraries/TaskFunctions.js @@ -133,13 +133,13 @@ function newSuperalgosFunctionLibraryTaskFunctions() { 'Data Mine Data Dependencies->Bot Data Dependencies->' + 'Data Dependency Folder->Data Dependency Folder->Data Dependency Folder->Data Dependency Folder->Data Dependency Folder->' + 'Data Dependency->Dataset Definition->Product Definition->' + - 'Record Definition->Record Property->Formula->' + + 'Record Definition->Record Property->Record Formula->' + 'Data Building Procedure->' + - 'Procedure Initialization->Javascript Code->' + - 'Procedure Loop->Javascript Code->' + + 'Procedure Initialization->Procedure Javascript Code->' + + 'Procedure Loop->Procedure Javascript Code->' + 'Calculations Procedure->' + - 'Procedure Initialization->Javascript Code->' + - 'Procedure Loop->Javascript Code->' + + 'Procedure Initialization->Procedure Javascript Code->' + + 'Procedure Loop->Procedure Javascript Code->' + 'Status Report->' + 'Execution Finished Event->' + 'Execution Started Event->Execution Finished Event->Process Definition->' + diff --git a/Projects/Superalgos/UI/Function-Libraries/UiObjectsFromNodes.js b/Projects/Superalgos/UI/Function-Libraries/UiObjectsFromNodes.js index d2722b51f..e930061a3 100644 --- a/Projects/Superalgos/UI/Function-Libraries/UiObjectsFromNodes.js +++ b/Projects/Superalgos/UI/Function-Libraries/UiObjectsFromNodes.js @@ -48,6 +48,8 @@ function newSuperalgosFunctionLibraryUiObjectsFromNodes() { addPluginNodes() function addPluginNodes(pluginNames) { + UI.projects.superalgos.utilities.creditsPage.changeStatus("Loading Plugins...") + let blobService = newFileStorage() let totalPlugin = 0 let totalRead = 0 @@ -144,16 +146,35 @@ function newSuperalgosFunctionLibraryUiObjectsFromNodes() { /* Create the workspace UI OBject and then continue with the root nodes. */ createUiObject(false, 'Workspace', node.name, node, undefined, undefined, 'Workspace') if (node.rootNodes !== undefined) { - for (let i = 0; i < node.rootNodes.length; i++) { - let rootNode = node.rootNodes[i] + UI.projects.superalgos.utilities.creditsPage.changeStatus("Setting up Rootnodes...") + + let rootNode + let i = -1 + controlLoop() + + function loopBody() { createUiObjectFromNode(rootNode, undefined, undefined) + controlLoop() + } + + function controlLoop() { + i++ + if (i < node.rootNodes.length) { + rootNode = node.rootNodes[i] + UI.projects.superalgos.utilities.creditsPage.changeStatus("Connecting children nodes from " + rootNode.name + " - " + rootNode.type + "...") + setTimeout(loopBody, 0) + } else { + UI.projects.superalgos.utilities.creditsPage.changeStatus("Setting up the Docs Search Engine Index...") + setTimeout(endLoop) + } } } + function endLoop() { + tryToConnectChildrenWithReferenceParents() - tryToConnectChildrenWithReferenceParents() - - if (callBackFunction !== undefined) { - callBackFunction() // The recreation of the workspace is complete + if (callBackFunction !== undefined) { + callBackFunction() // The recreation of the workspace is complete + } } } } @@ -219,10 +240,10 @@ function newSuperalgosFunctionLibraryUiObjectsFromNodes() { } } - function migrateCodeToConfig(node, nodeDefinition) { + function migrateCodeToConfig(node, schemaDocument) { /* Code needed to Migrante from Beta 5 to Beta a Workspace */ - if (nodeDefinition.editors !== undefined) { - if (nodeDefinition.editors.config === true) { + if (schemaDocument.editors !== undefined) { + if (schemaDocument.editors.config === true) { if (node.code !== undefined) { node.config = node.code node.code = undefined @@ -248,33 +269,33 @@ function newSuperalgosFunctionLibraryUiObjectsFromNodes() { } - /* Get node definition */ - let nodeDefinition = getNodeDefinition(node) - if (nodeDefinition !== undefined) { - migrateCodeToConfig(node, nodeDefinition) + /* Get schema document */ + let schemaDocument = getSchemaDocument(node) + if (schemaDocument !== undefined) { + migrateCodeToConfig(node, schemaDocument) /* Resolve Initial Values */ - if (nodeDefinition.initialValues !== undefined) { - if (nodeDefinition.initialValues.code !== undefined) { + if (schemaDocument.initialValues !== undefined) { + if (schemaDocument.initialValues.code !== undefined) { if (node.code === undefined) { - node.code = nodeDefinition.initialValues.code + node.code = schemaDocument.initialValues.code } } - if (nodeDefinition.initialValues.config !== undefined) { + if (schemaDocument.initialValues.config !== undefined) { if (node.config === undefined) { - node.config = nodeDefinition.initialValues.config + node.config = schemaDocument.initialValues.config } } } /* For the cases where an node is not chained to its parent but to the one at the parent before it at its collection */ - if (nodeDefinition.chainedToSameType === true) { + if (schemaDocument.chainedToSameType === true) { if (parentNode !== undefined) { - let parentNodeDefinition = getNodeDefinition(parentNode) - if (parentNodeDefinition !== undefined) { - if (parentNodeDefinition.properties !== undefined) { - for (let i = 0; i < parentNodeDefinition.properties.length; i++) { - let property = parentNodeDefinition.properties[i] + let parentSchemaDocument = getSchemaDocument(parentNode) + if (parentSchemaDocument !== undefined) { + if (parentSchemaDocument.childrenNodesProperties !== undefined) { + for (let i = 0; i < parentSchemaDocument.childrenNodesProperties.length; i++) { + let property = parentSchemaDocument.childrenNodesProperties[i] if (property.childType === node.type) { if (property.type === 'array') { if (parentNode[property.name] !== undefined) { @@ -300,10 +321,10 @@ function newSuperalgosFunctionLibraryUiObjectsFromNodes() { createUiObject(false, node.type, node.name, node, parentNode, chainParent, node.type, positionOffset) /* Create Children */ - if (nodeDefinition.properties !== undefined) { + if (schemaDocument.childrenNodesProperties !== undefined) { let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] if (node[property.name] !== undefined) { switch (property.type) { case 'node': { @@ -341,28 +362,28 @@ function newSuperalgosFunctionLibraryUiObjectsFromNodes() { project: project } - let parentNodeDefinition + let parentSchemaDocument /* Resolve Initial Values */ - let nodeDefinition = getNodeDefinition(object, project) + let schemaDocument = getSchemaDocument(object, project) - if (nodeDefinition === undefined) { + if (schemaDocument === undefined) { console.log('Cannot addUIOBject of ' + type + ' because that type it is not defined at the APP_SCHEMA.') return } - if (nodeDefinition.initialValues !== undefined) { - if (nodeDefinition.initialValues.code !== undefined) { - object.code = nodeDefinition.initialValues.code + if (schemaDocument.initialValues !== undefined) { + if (schemaDocument.initialValues.code !== undefined) { + object.code = schemaDocument.initialValues.code } } - if (nodeDefinition.initialValues !== undefined) { - if (nodeDefinition.initialValues.config !== undefined) { - object.config = nodeDefinition.initialValues.config + if (schemaDocument.initialValues !== undefined) { + if (schemaDocument.initialValues.config !== undefined) { + object.config = schemaDocument.initialValues.config } } let chainParent = parentNode - if (nodeDefinition.isHierarchyHead === true || nodeDefinition.isProjectHead) { + if (schemaDocument.isHierarchyHead === true || schemaDocument.isProjectHead) { rootNodes.push(object) initializeArrayProperties() applyInitialValues() @@ -372,8 +393,8 @@ function newSuperalgosFunctionLibraryUiObjectsFromNodes() { } else { - parentNodeDefinition = getNodeDefinition(parentNode, parentNode.project) - if (parentNodeDefinition === undefined) { + parentSchemaDocument = getSchemaDocument(parentNode, parentNode.project) + if (parentSchemaDocument === undefined) { console.log('Cannot addUIOBject from parent of ' + type + ' because that type it is not defined at the APP_SCHEMA.') return } @@ -389,10 +410,10 @@ function newSuperalgosFunctionLibraryUiObjectsFromNodes() { function checkChainToSelfTypeCollection() { /* For the cases where a node is not chained to its parent but to the one at the parent before it at its own collection */ - if (nodeDefinition.chainedToSameType === true) { - if (parentNodeDefinition.properties !== undefined) { - for (let i = 0; i < parentNodeDefinition.properties.length; i++) { - let property = parentNodeDefinition.properties[i] + if (schemaDocument.chainedToSameType === true) { + if (parentSchemaDocument.childrenNodesProperties !== undefined) { + for (let i = 0; i < parentSchemaDocument.childrenNodesProperties.length; i++) { + let property = parentSchemaDocument.childrenNodesProperties[i] if (property.childType === type) { if (property.type === 'array') { if (parentNode[property.name] !== undefined) { @@ -410,9 +431,9 @@ function newSuperalgosFunctionLibraryUiObjectsFromNodes() { function initializeArrayProperties() { /* Create Empty Arrays for properties of type Array */ - if (nodeDefinition.properties !== undefined) { - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + if (schemaDocument.childrenNodesProperties !== undefined) { + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] if (property.type === 'array') { object[property.name] = [] } @@ -421,22 +442,22 @@ function newSuperalgosFunctionLibraryUiObjectsFromNodes() { } function applyInitialValues() { - if (nodeDefinition.initialValues !== undefined) { - if (nodeDefinition.initialValues.code !== undefined) { - object.code = nodeDefinition.initialValues.code + if (schemaDocument.initialValues !== undefined) { + if (schemaDocument.initialValues.code !== undefined) { + object.code = schemaDocument.initialValues.code } - if (nodeDefinition.initialValues.config !== undefined) { - object.config = nodeDefinition.initialValues.config + if (schemaDocument.initialValues.config !== undefined) { + object.config = schemaDocument.initialValues.config } } } function connectToParent() { /* Connect to Parent */ - if (parentNodeDefinition.properties !== undefined) { + if (parentSchemaDocument.childrenNodesProperties !== undefined) { let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. - for (let i = 0; i < parentNodeDefinition.properties.length; i++) { - let property = parentNodeDefinition.properties[i] + for (let i = 0; i < parentSchemaDocument.childrenNodesProperties.length; i++) { + let property = parentSchemaDocument.childrenNodesProperties[i] if (property.childType === type) { switch (property.type) { case 'node': { @@ -469,10 +490,10 @@ function newSuperalgosFunctionLibraryUiObjectsFromNodes() { function autoAddChildren() { /* Auto Add more Children */ - if (nodeDefinition.properties !== undefined) { + if (schemaDocument.childrenNodesProperties !== undefined) { let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { @@ -502,13 +523,13 @@ function newSuperalgosFunctionLibraryUiObjectsFromNodes() { } function addMissingChildren(node, rootNodes) { - let nodeDefinition = getNodeDefinition(node) + let schemaDocument = getSchemaDocument(node) /* Connect to Parent */ - if (nodeDefinition.properties !== undefined) { + if (schemaDocument.childrenNodesProperties !== undefined) { let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] if (property.type === 'node') { if (property.name !== previousPropertyName) { if (node[property.name] === undefined) { diff --git a/Projects/Superalgos/UI/Globals/Docs.js b/Projects/Superalgos/UI/Globals/Docs.js index 43c7ed371..63b869099 100644 --- a/Projects/Superalgos/UI/Globals/Docs.js +++ b/Projects/Superalgos/UI/Globals/Docs.js @@ -1,7 +1,10 @@ function newSuperalgosGlobalsDocs() { thisObject = { - DOCUMENTATION_URL_PREFIX: 'https://docs.superalgos.org/', - DOCUMENTATION_URL_DEFAULT: 'https://docs.superalgos.org/suite-about-this-documentation.html' + NEW_PARAGRAPH_TEXT: "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode.", + DEFAULT_LANGUAGE: 'EN', + DEFAULT_ACTIVE_BRANCH: 'master', + DEFAULT_CONTRIBUTIONS_BRANCH: 'develop', + DOCS_SPACE_WIDTH: 900 } return thisObject } \ No newline at end of file diff --git a/Projects/Superalgos/UI/Spaces/Charting-Space/Plotting/Plotter.js b/Projects/Superalgos/UI/Spaces/Charting-Space/Plotting/Plotter.js index 1060b769e..6216b4e61 100644 --- a/Projects/Superalgos/UI/Spaces/Charting-Space/Plotting/Plotter.js +++ b/Projects/Superalgos/UI/Spaces/Charting-Space/Plotting/Plotter.js @@ -339,12 +339,12 @@ function newPlotter() { /* This is Initialization Code */ if (calculationsProcedure.initialization !== undefined) { - if (calculationsProcedure.initialization.javascriptCode !== undefined) { + if (calculationsProcedure.initialization.procedureJavascriptCode !== undefined) { try { - eval(calculationsProcedure.initialization.javascriptCode.code) + eval(calculationsProcedure.initialization.procedureJavascriptCode.code) } catch (err) { logger.write('[ERROR] calculationsProcedure -> initialization -> Error executing User Code. Error = ' + err.stack.stack) - logger.write('[ERROR] calculationsProcedure -> initialization -> Error executing User Code. Code = ' + calculationsProcedure.initialization.javascriptCode.code) + logger.write('[ERROR] calculationsProcedure -> initialization -> Error executing User Code. Code = ' + calculationsProcedure.initialization.procedureJavascriptCode.code) throw ('Error Executing User Code.') } } @@ -352,17 +352,17 @@ function newPlotter() { /* This is Initialization Code */ if (calculationsProcedure.loop !== undefined) { - if (calculationsProcedure.loop.javascriptCode !== undefined) { + if (calculationsProcedure.loop.procedureJavascriptCode !== undefined) { for (let index = 0; index < jsonArray.length; index++) { let product = jsonArray[index] /* This is Loop Code */ try { - eval(calculationsProcedure.loop.javascriptCode.code) + eval(calculationsProcedure.loop.procedureJavascriptCode.code) } catch (err) { logger.write('[ERROR] calculationsProcedure -> loop -> Error executing User Code. Error = ' + err.stack.stack) logger.write('[ERROR] calculationsProcedure -> loop -> Error executing User Code. product = ' + JSON.stringify(product)) - logger.write('[ERROR] calculationsProcedure -> loop -> Error executing User Code. Code = ' + calculationsProcedure.loop.javascriptCode.code) + logger.write('[ERROR] calculationsProcedure -> loop -> Error executing User Code. Code = ' + calculationsProcedure.loop.procedureJavascriptCode.code) throw ('Error Executing User Code.') } @@ -370,16 +370,16 @@ function newPlotter() { for (let j = 0; j < recordDefinition.properties.length; j++) { let property = recordDefinition.properties[j] if (property.config.isCalculated === true) { - if (property.formula !== undefined) { - if (property.formula.code !== undefined) { + if (property.recordFormula !== undefined) { + if (property.recordFormula.code !== undefined) { try { - let newValue = eval(property.formula.code) + let newValue = eval(property.recordFormula.code) let currentRecord = product currentRecord[property.config.codeName] = newValue } catch (err) { logger.write('[ERROR] calculationsProcedure -> loop -> formula -> Error executing User Code. Error = ' + err.stack.stack) logger.write('[ERROR] calculationsProcedure -> loop -> formula -> Error executing User Code. product = ' + JSON.stringify(product)) - logger.write('[ERROR] calculationsProcedure -> loop -> formula -> Error executing User Code. Code = ' + property.formula.code) + logger.write('[ERROR] calculationsProcedure -> loop -> formula -> Error executing User Code. Code = ' + property.recordFormula.code) throw ('Error Executing User Code.') } } @@ -499,8 +499,8 @@ function newPlotter() { checkAtMousePosition() /* If there is code we execute it now. */ - if (productDefinition.referenceParent.javascriptCode !== undefined) { - eval(productDefinition.referenceParent.javascriptCode.code) + if (productDefinition.referenceParent.plotterModuleJavascriptCode !== undefined) { + eval(productDefinition.referenceParent.plotterModuleJavascriptCode.code) } if (productDefinition.referenceParent.shapes === undefined) { continue } diff --git a/Projects/Superalgos/UI/Spaces/Design-Space/DesignSpace.js b/Projects/Superalgos/UI/Spaces/Design-Space/DesignSpace.js index b5a9cf999..23e4647f3 100644 --- a/Projects/Superalgos/UI/Spaces/Design-Space/DesignSpace.js +++ b/Projects/Superalgos/UI/Spaces/Design-Space/DesignSpace.js @@ -1,6 +1,4 @@ - function newSuperalgosDesignSpace() { - const MODULE_NAME = 'Designe Space' let thisObject = { container: undefined, iconsByProjectAndName: undefined, @@ -40,18 +38,25 @@ function newSuperalgosDesignSpace() { /* Take types-icons relationships defined at the schema */ for (let i = 0; i < PROJECTS_ARRAY.length; i++) { let project = PROJECTS_ARRAY[i] - let appSchema = SCHEMAS_BY_PROJECT.get(project).array.appSchema - for (let j = 0; j < appSchema.length; j++) { - let nodeDefinition = appSchema[j] - let iconName = nodeDefinition.icon - if (iconName === undefined) { - iconName = nodeDefinition.type.toLowerCase() - iconName = iconName.split(" ").join("-") - } - let icon = thisObject.getIconByProjectAndName(project, iconName) - if (icon !== undefined) { - let key = project + '-' + nodeDefinition.type - thisObject.iconsByProjectAndType.set(key, icon) + + addSchemaTypes(SCHEMAS_BY_PROJECT.get(project).array.appSchema) + addSchemaTypes(SCHEMAS_BY_PROJECT.get(project).array.docsNodeSchema) + addSchemaTypes(SCHEMAS_BY_PROJECT.get(project).array.docsConceptSchema) + addSchemaTypes(SCHEMAS_BY_PROJECT.get(project).array.docsTopicSchema) + + function addSchemaTypes(schema) { + for (let j = 0; j < schema.length; j++) { + let schemaDocument = schema[j] + let iconName = schemaDocument.icon + if (iconName === undefined) { + iconName = schemaDocument.type.toLowerCase() + iconName = iconName.split(" ").join("-") + } + let icon = thisObject.getIconByProjectAndName(project, iconName) + if (icon !== undefined) { + let key = project + '-' + schemaDocument.type + thisObject.iconsByProjectAndType.set(key, icon) + } } } } diff --git a/Projects/Superalgos/UI/Spaces/Design-Space/Workspace.js b/Projects/Superalgos/UI/Spaces/Design-Space/Workspace.js index 772c0ecbb..01a960403 100644 --- a/Projects/Superalgos/UI/Spaces/Design-Space/Workspace.js +++ b/Projects/Superalgos/UI/Spaces/Design-Space/Workspace.js @@ -6,6 +6,7 @@ function newWorkspace() { let thisObject = { + isInitialized: false, workspaceNode: undefined, container: undefined, enabled: false, @@ -42,7 +43,6 @@ function newWorkspace() { thisObject.nodeChildren = newNodeChildren() let savingWorkspaceIntervalId - let isInitialized = false let workingAtTask = 0 let circularProgressBar = newBusyProgressBar() circularProgressBar.fitFunction = UI.projects.superalgos.spaces.floatingSpace.fitIntoVisibleArea @@ -64,6 +64,8 @@ function newWorkspace() { function initialize() { try { + UI.projects.superalgos.utilities.creditsPage.changeStatus("Initializing...") + /* Set up the action switches map */ for (let i = 0; i < PROJECTS_ARRAY.length; i++) { let project = PROJECTS_ARRAY[i] @@ -75,6 +77,9 @@ function newWorkspace() { let lastUsedWorkspace = window.localStorage.getItem('Last Used Workspace') if (lastUsedWorkspace !== 'undefined' && lastUsedWorkspace !== null && lastUsedWorkspace !== undefined) { + + UI.projects.superalgos.utilities.creditsPage.changeStatus("Loading Workspace " + lastUsedWorkspace + "...") + httpRequest(undefined, 'LoadMyWorkspace' + '/' + lastUsedWorkspace, onFileReceived) function onFileReceived(err, text, response) { if (err && err.result !== GLOBAL.DEFAULT_OK_RESPONSE.result) { @@ -95,17 +100,20 @@ function newWorkspace() { } function recreateWorkspace() { + UI.projects.superalgos.utilities.creditsPage.changeStatus("Connecting all the workspace nodes...") executeAction({ node: thisObject.workspaceNode, name: 'Recreate Workspace', project: 'Superalgos', callBackFunction: finishInitialization }) } function finishInitialization() { + UI.projects.superalgos.utilities.creditsPage.changeStatus("Setting up websockets connections...") setupEventsServerClients() runTasksAndSessions() thisObject.enabled = true UI.projects.superalgos.spaces.cockpitSpace.initializePosition() CAN_SPACES_DRAW = true savingWorkspaceIntervalId = setInterval(saveWorkspace, 60000) - isInitialized = true + thisObject.isInitialized = true + UI.projects.superalgos.utilities.creditsPage.changeStatus("Displaying the UI...") } } catch (err) { if (ERROR_LOG === true) { logger.write('[ERROR] initialize -> err = ' + err.stack) } @@ -116,7 +124,7 @@ function newWorkspace() { executeAction({ name: 'Syncronize Tasks', project: 'Superalgos' }) executeAction({ name: 'Syncronize Trading Sessions', project: 'Superalgos' }) executeAction({ name: 'Syncronize Learning Sessions', project: 'Superalgos' }) - executeAction({ name: 'Play Tutorials', project: 'Superalgos' }) + executeAction({ name: 'Play Tutorials', project: 'Superalgos' }) } function setupEventsServerClients() { @@ -141,7 +149,7 @@ function newWorkspace() { let workspace = UI.projects.superalgos.spaces.designSpace.workspace.workspaceNode /* Validation if it is too early to save. */ - if (isInitialized === false) { return } + if (thisObject.isInitialized === false) { return } /* Validation of 2 sessions opened at the same time. */ let savedSessionTimestamp = window.localStorage.getItem('Session Timestamp') @@ -241,7 +249,7 @@ function newWorkspace() { switch (workingAtTask) { case 1: - isInitialized = false + thisObject.isInitialized = false console.log('[INFO] Replacing Workspace Procedure Started') console.log('[INFO] Deleting Workspace ' + thisObject.workspaceNode.name + '. This might take a few minutes depending on the size of the workspace.') UI.projects.superalgos.spaces.tutorialSpace.stop() @@ -292,8 +300,9 @@ function newWorkspace() { console.log('[INFO] Replacing Workspace Procedure Finished') workingAtTask = 0 circularProgressBar.visible = false - isInitialized = true + thisObject.isInitialized = true saveWorkspace() + UI.projects.superalgos.spaces.docsSpace.reset() // The docs needs to index the loaded workspace. break } } @@ -382,9 +391,9 @@ function newWorkspace() { let nodes = [] for (let i = 0; i < thisObject.workspaceNode.rootNodes.length; i++) { let rootNode = thisObject.workspaceNode.rootNodes[i] - let nodeDefinition = getNodeDefinition(rootNode) - if (nodeDefinition !== undefined) { - if (nodeDefinition.isHierarchyHead === true) { + let schemaDocument = getSchemaDocument(rootNode) + if (schemaDocument !== undefined) { + if (schemaDocument.isHierarchyHead === true) { nodes.push(rootNode) } } @@ -396,9 +405,9 @@ function newWorkspace() { let nodes = [] for (let i = 0; i < thisObject.workspaceNode.rootNodes.length; i++) { let rootNode = thisObject.workspaceNode.rootNodes[i] - let nodeDefinition = getNodeDefinition(rootNode) - if (nodeDefinition !== undefined) { - if (nodeDefinition.isProjectHead === true) { + let schemaDocument = getSchemaDocument(rootNode) + if (schemaDocument !== undefined) { + if (schemaDocument.isProjectHead === true) { nodes.push(rootNode) } } diff --git a/Projects/Superalgos/UI/Spaces/Doc-Space/DocSpace.js b/Projects/Superalgos/UI/Spaces/Doc-Space/DocSpace.js deleted file mode 100644 index 2ac097b16..000000000 --- a/Projects/Superalgos/UI/Spaces/Doc-Space/DocSpace.js +++ /dev/null @@ -1,192 +0,0 @@ -function newSuperalgosDocSpace() { - const MODULE_NAME = 'Doc Space' - let thisObject = { - sidePanelTab: undefined, - container: undefined, - navigateTo: navigateTo, - physics: physics, - draw: draw, - getContainer: getContainer, - initialize: initialize, - finalize: finalize - } - - let isInitialized = false - - thisObject.container = newContainer() - thisObject.container.name = MODULE_NAME - thisObject.container.initialize() - thisObject.container.isClickeable = true - thisObject.container.isDraggeable = false - thisObject.container.detectMouseOver = true - thisObject.container.status = 'hidden' - - resize() - - let browserResizedEventSubscriptionId - let openingEventSubscriptionId - let closingEventSubscriptionId - - return thisObject - - function initialize() { - thisObject.sidePanelTab = newSidePanelTab() - thisObject.sidePanelTab.container.connectToParent(thisObject.container, false, false) - thisObject.sidePanelTab.initialize('right') - openingEventSubscriptionId = thisObject.sidePanelTab.container.eventHandler.listenToEvent('opening', onOpening) - closingEventSubscriptionId = thisObject.sidePanelTab.container.eventHandler.listenToEvent('closing', onClosing) - - browserResizedEventSubscriptionId = canvas.eventHandler.listenToEvent('Browser Resized', resize) - - isInitialized = true - } - - function finalize() { - canvas.eventHandler.stopListening(browserResizedEventSubscriptionId) - thisObject.sidePanelTab.container.eventHandler.stopListening(openingEventSubscriptionId) - thisObject.sidePanelTab.container.eventHandler.stopListening(closingEventSubscriptionId) - } - - function onOpening() { - let docIFrame = document.getElementById('docIFrame') - if (docIFrame.src === "") { - docIFrame.src = UI.projects.superalgos.globals.docs.DOCUMENTATION_URL_DEFAULT - } - } - - function onClosing() { - - } - - function navigateTo(url) { - let docIFrame = document.getElementById('docIFrame') - docIFrame.src = url - thisObject.sidePanelTab.open() - } - - function resize() { - thisObject.container.frame.width = 1200 - thisObject.container.frame.height = browserCanvas.height // - TOP_SPACE_HEIGHT - thisObject.container.frame.position.x = browserCanvas.width - thisObject.container.frame.position.y = 0 // TOP_SPACE_HEIGHT - - if (thisObject.sidePanelTab !== undefined) { - thisObject.sidePanelTab.resize() - } - } - - function getContainer(point, purpose) { - let container - - container = thisObject.sidePanelTab.getContainer(point, purpose) - if (container !== undefined) { return container } - - if (thisObject.container.frame.isThisPointHere(point, true) === true) { - return thisObject.container - } else { - return undefined - } - } - - function physics() { - thisObject.sidePanelTab.physics() - docAppDivPhysics() - iFramePhysics() - - function docAppDivPhysics() { - let docAppDiv = document.getElementById('docApp') - docAppDivPosition = { - x: 0, - y: 0 - } - docAppDivPosition = thisObject.container.frame.frameThisPoint(docAppDivPosition) - docAppDiv.style = ' ' + - 'position:fixed; top:' + docAppDivPosition.y + 'px; ' + - 'left:' + docAppDivPosition.x + 'px; z-index:1; ' + - 'width: ' + thisObject.container.frame.width + 'px;' + - 'height: ' + thisObject.container.frame.height + 'px' - } - - function iFramePhysics() { - let docIFrame = document.getElementById('docIFrame') - docIFrame.style = ' ' + - 'width: ' + thisObject.container.frame.width + 'px;' + - 'height: ' + thisObject.container.frame.height + 'px' - } - } - - function draw() { - if (CAN_SPACES_DRAW === false) { return } - if (isInitialized === false) { return } - borders() - thisObject.sidePanelTab.draw() - } - - function borders() { - let point1 - let point2 - let point3 - let point4 - - point1 = { - x: 0, - y: 0 - } - - point2 = { - x: thisObject.container.frame.width, - y: 0 - } - - point3 = { - x: thisObject.container.frame.width, - y: thisObject.container.frame.height - } - - point4 = { - x: 0, - y: thisObject.container.frame.height - } - - point1 = thisObject.container.frame.frameThisPoint(point1) - point2 = thisObject.container.frame.frameThisPoint(point2) - point3 = thisObject.container.frame.frameThisPoint(point3) - point4 = thisObject.container.frame.frameThisPoint(point4) - - browserCanvasContext.setLineDash([0, 0]) - browserCanvasContext.beginPath() - browserCanvasContext.moveTo(point1.x, point1.y) - browserCanvasContext.lineTo(point2.x, point2.y) - browserCanvasContext.lineTo(point3.x, point3.y) - browserCanvasContext.lineTo(point4.x, point4.y) - browserCanvasContext.lineTo(point1.x, point1.y) - browserCanvasContext.closePath() - - let opacity = 1 - - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.LIGHT_GREY + ', ' + opacity + '' - browserCanvasContext.fill() - - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.GREY + ', ' + opacity + '' - browserCanvasContext.lineWidth = 0.3 - browserCanvasContext.stroke() - - /* Shadow */ - - if (thisObject.container.status !== 'hidden') { - for (let i = 0; i <= 30; i++) { - opacity = 1 - (i / 300) - 0.95 - - browserCanvasContext.setLineDash([0, 0]) - browserCanvasContext.beginPath() - browserCanvasContext.moveTo(point2.x + i, point2.y) - browserCanvasContext.lineTo(point3.x + i, point3.y) - browserCanvasContext.closePath() - - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.BLACK + ', ' + opacity + '' - browserCanvasContext.lineWidth = 1 - browserCanvasContext.stroke() - } - } - } -} diff --git a/Projects/Superalgos/UI/Spaces/Docs-Space/CommandInterface.js b/Projects/Superalgos/UI/Spaces/Docs-Space/CommandInterface.js new file mode 100644 index 000000000..4f5b7a9cb --- /dev/null +++ b/Projects/Superalgos/UI/Spaces/Docs-Space/CommandInterface.js @@ -0,0 +1,873 @@ +function newSuperalgosDocsCommmandInterface() { + let thisObject = { + command: undefined, + detectCommands: detectCommands, + initialize: initialize, + finalize: finalize + } + + return thisObject + + function initialize() { + + } + + function finalize() { + + } + + function detectCommands() { + if (detectAppCommands() === true) { return } + if (detectDocsCommands() === true) { return } + + /* If we can not detect any app or docs commands, then we assume the users is running a search query */ + UI.projects.superalgos.spaces.docsSpace.searchResultsPage.render() + } + + function detectAppCommands() { + if (checkContributeCommand() === undefined) { return true } + if (checkUpdateCommand() === undefined) { return true } + + function checkContributeCommand() { + if (UI.projects.superalgos.spaces.docsSpace.commandInterface.command.toLowerCase() === 'app.help app.contribute') { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'App Contribute Command') + return + } + if (UI.projects.superalgos.spaces.docsSpace.commandInterface.command.indexOf('App.Contribute') !== 0 && UI.projects.superalgos.spaces.docsSpace.commandInterface.command.indexOf('app.contribute') !== 0) { return 'Not Contribute Commands' } + + /* Set up the commit message */ + let message = UI.projects.superalgos.spaces.docsSpace.commandInterface.command.trim().substring(UI.projects.superalgos.spaces.docsSpace.commandInterface.command.indexOf(' ') + 1, UI.projects.superalgos.spaces.docsSpace.commandInterface.command.length) + if (message.toLowerCase() === 'app.contribute') { + message = 'This is my contribution to Superalgos' + } + + /* Find the Username and Password */ + let apisNode = UI.projects.superalgos.spaces.designSpace.workspace.getHierarchyHeadsByType('APIs') + if (apisNode === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'App Error - Github Credentials Missing', 'Anchor Github Credentials Missing') + return + } + if (apisNode.githubAPI === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'App Error - Github Credentials Missing', 'Anchor Github Credentials Missing') + return + } + + let config = JSON.parse(apisNode.githubAPI.config) + if (config.username === undefined || config.username === "") { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'App Error - Github Credentials Missing', 'Anchor Github Credentials Missing') + return + } + if (config.token === undefined || config.token === "") { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'App Error - Github Credentials Missing', 'Anchor Github Credentials Missing') + return + } + + httpRequest( + undefined, + 'App/Contribute/' + + message + '/' + + config.username + '/' + + config.token + '/' + + UI.projects.superalgos.spaces.docsSpace.currentBranch + '/' + + UI.projects.superalgos.spaces.docsSpace.contributionBranch + , onResponse) + + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'App Message - Creating Pull Request') + + return + + function onResponse(err, data) { + /* Lets check the result of the call through the http interface */ + data = JSON.parse(data) + if (err.result === GLOBAL.DEFAULT_OK_RESPONSE.result && data.result === GLOBAL.DEFAULT_OK_RESPONSE.result) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'App Message - Contribution Succeed') + } else { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'App Error - Contribution Not Sent', 'Anchor Contribution Not Sent') + } + } + } + + function checkUpdateCommand() { + if (UI.projects.superalgos.spaces.docsSpace.commandInterface.command.toLowerCase() === 'app.help app.update') { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'App Update Command') + return + } + if (UI.projects.superalgos.spaces.docsSpace.commandInterface.command.indexOf('App.Update') !== 0 && UI.projects.superalgos.spaces.docsSpace.commandInterface.command.indexOf('app.update') !== 0) { return 'Not Update Commands' } + + /* Set up the commit message */ + let message = UI.projects.superalgos.spaces.docsSpace.commandInterface.command.trim().substring(UI.projects.superalgos.spaces.docsSpace.commandInterface.command.indexOf(' ') + 1, UI.projects.superalgos.spaces.docsSpace.commandInterface.command.length) + if (message.toLowerCase() === 'app.update') { + message = 'Updating my Superalgos Fork and local Repository' + } + + /* Find the Username and Password */ + let apisNode = UI.projects.superalgos.spaces.designSpace.workspace.getHierarchyHeadsByType('APIs') + if (apisNode === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'App Error - Github Credentials Missing', 'Anchor Github Credentials Missing') + return + } + if (apisNode.githubAPI === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'App Error - Github Credentials Missing', 'Anchor Github Credentials Missing') + return + } + + let config = JSON.parse(apisNode.githubAPI.config) + if (config.username === undefined || config.username === "") { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'App Error - Github Credentials Missing', 'Anchor Github Credentials Missing') + return + } + if (config.token === undefined || config.token === "") { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'App Error - Github Credentials Missing', 'Anchor Github Credentials Missing') + return + } + + httpRequest(undefined, 'App/Update/' + UI.projects.superalgos.spaces.docsSpace.currentBranch, onResponse) + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'App Message - Updating Your Local App') + + return + + function onResponse(err, data) { + /* Lets check the result of the call through the http interface */ + data = JSON.parse(data) + if (err.result === GLOBAL.DEFAULT_OK_RESPONSE.result && data.result === GLOBAL.CUSTOM_OK_RESPONSE.result) { + if (data.message.summary.changes + data.message.summary.deletions + data.message.summary.insertions > 0) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'App Message - Update Succeed - New Version Found') + } else { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'App Message - Update Succeed - Already Up-To-Date') + } + } else { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'App Error - Update Failed', 'Anchor Update Failed') + } + } + } + } + + function detectDocsCommands() { + + if (checkHelpCommand() === undefined) { return true } + if (checkGotoCommand() === undefined) { return true } + if (checkAddCommand() === undefined) { return true } + if (checkDeleteCommand() === undefined) { return true } + if (checkRepaginateCommand() === undefined) { return true } + if (checkUReIndexCommand() === undefined) { return true } + if (checkUSaveCommand() === undefined) { return true } + + function checkHelpCommand() { + if (UI.projects.superalgos.spaces.docsSpace.commandInterface.command.toLowerCase() === 'docs.help') { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Help Command') + return + } + return 'Not Help Command' + } + + function checkGotoCommand() { + if (UI.projects.superalgos.spaces.docsSpace.commandInterface.command.toLowerCase() === 'docs.help docs.goto') { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Goto Command') + return + } + if (UI.projects.superalgos.spaces.docsSpace.commandInterface.command.indexOf('Docs.Goto') !== 0 && UI.projects.superalgos.spaces.docsSpace.commandInterface.command.indexOf('docs.goto') !== 0) { return 'Not Goto Command' } + + let splittedCommand = UI.projects.superalgos.spaces.docsSpace.commandInterface.command.split(' ') + + if (splittedCommand[1] === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Too Few Parameters', 'Anchor Too Few Paramenters') + return + } + let secondaryCommand = UI.projects.superalgos.spaces.docsSpace.commandInterface.command.substring(UI.projects.superalgos.spaces.docsSpace.commandInterface.command.indexOf(' ') + 1, UI.projects.superalgos.spaces.docsSpace.commandInterface.command.length) + let splittedSecondaryCommand = secondaryCommand.split('->') + let project = splittedSecondaryCommand[0] + let category = splittedSecondaryCommand[1] + let type = splittedSecondaryCommand[2] + let anchor = splittedSecondaryCommand[3] + + if (SCHEMAS_BY_PROJECT.get(project) === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Project Does Not Exist', 'Anchor Project Does Not Exist') + return + } + let docsSchemaDocument + switch (category.toLowerCase()) { + case 'node': { + docsSchemaDocument = SCHEMAS_BY_PROJECT.get(project).map.docsNodeSchema.get(type) + break + } + case 'concept': { + docsSchemaDocument = SCHEMAS_BY_PROJECT.get(project).map.docsConceptSchema.get(type) + break + } + case 'topic': { + docsSchemaDocument = SCHEMAS_BY_PROJECT.get(project).map.docsTopicSchema.get(type) + break + } + case 'tutorial': { + docsSchemaDocument = SCHEMAS_BY_PROJECT.get(project).map.docsTutorialSchema.get(type) + break + } + case 'book': { + docsSchemaDocument = SCHEMAS_BY_PROJECT.get(project).map.docsBookSchema.get(type) + break + } + default: { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Category Not Valid', 'Anchor Category Not Valid') + return + } + } + if (docsSchemaDocument === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Page Not Found', 'Anchor Page Not Found') + return + } + if (docsSchemaDocument.paragraphs === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Page With No Paragraphs', 'Anchor Page With No Paragraphs') + return + } + UI.projects.superalgos.spaces.docsSpace.navigateTo(project, category, type, anchor, undefined) + + } + + function checkAddCommand() { + if (UI.projects.superalgos.spaces.docsSpace.commandInterface.command.toLowerCase() === 'docs.help docs.add') { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Add Command') + return + } + if (UI.projects.superalgos.spaces.docsSpace.commandInterface.command.indexOf('Docs.Add') !== 0 && UI.projects.superalgos.spaces.docsSpace.commandInterface.command.indexOf('docs.add') !== 0) { return 'Not Add Command' } + + if (UI.projects.superalgos.spaces.docsSpace.language !== UI.projects.superalgos.globals.docs.DEFAULT_LANGUAGE) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Only In English', 'Anchor Only In English') + return + } + + let splittedCommand = UI.projects.superalgos.spaces.docsSpace.commandInterface.command.split(': ') + if (splittedCommand[1] === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Missing Colon', 'Anchor Missing Colon') + return + } + let primaryCommand = splittedCommand[0] + let secondaryCommand = splittedCommand[1] + + let splittedPrimaryCommand = primaryCommand.split(' ') + + if (splittedPrimaryCommand[0].toLowerCase() === 'docs.add') { + if (splittedPrimaryCommand[2] !== 'to') { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Missing To', 'Anchor Missing To') + return + } + + if (splittedPrimaryCommand.length < 4) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Too Few Parameters', 'Anchor Too Few Paramenters') + return + } + + if (secondaryCommand === '') { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Category Not Valid', 'Anchor Category Not Valid') + return + } + + switch (splittedPrimaryCommand[1].toLowerCase()) { + case 'node': { + addNode(splittedPrimaryCommand[3], secondaryCommand) + return + } + case 'concept': { + addConcept(splittedPrimaryCommand[3], secondaryCommand) + return + } + case 'topic': { + let splittedSecondaryCommand = secondaryCommand.split('->') + if (splittedSecondaryCommand.length < 3) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Too Few Parameters', 'Anchor Too Few Paramenters') + return + } + addTopic(splittedPrimaryCommand[3], splittedSecondaryCommand[0], splittedSecondaryCommand[1], splittedSecondaryCommand[2]) + return + } + case 'tutorial': { + let splittedSecondaryCommand = secondaryCommand.split('->') + if (splittedSecondaryCommand.length < 3) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Too Few Parameters', 'Anchor Too Few Paramenters') + return + } + addTutorial(splittedPrimaryCommand[3], splittedSecondaryCommand[0], splittedSecondaryCommand[1], splittedSecondaryCommand[2]) + return + } + case 'book': { + addBook(splittedPrimaryCommand[3], secondaryCommand) + return + } + default: { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Category Not Valid', 'Anchor Category Not Valid') + return + } + } + return 'Not Add Command' + } + } + + function checkDeleteCommand() { + if (UI.projects.superalgos.spaces.docsSpace.commandInterface.command.toLowerCase() === 'docs.help docs.delete') { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Delete Command') + return + } + if (UI.projects.superalgos.spaces.docsSpace.commandInterface.command.indexOf('Docs.Delete') !== 0 && UI.projects.superalgos.spaces.docsSpace.commandInterface.command.indexOf('docs.delete') !== 0) { return 'Not Delete Command' } + + if (UI.projects.superalgos.spaces.docsSpace.language !== UI.projects.superalgos.globals.docs.DEFAULT_LANGUAGE) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Only In English', 'Anchor Only In English') + return + } + + let splittedCommand = UI.projects.superalgos.spaces.docsSpace.commandInterface.command.split(': ') + if (splittedCommand[1] === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Missing Colon', 'Anchor Missing Colon') + return + } + let primaryCommand = splittedCommand[0] + let secondaryCommand = splittedCommand[1] + + let splittedPrimaryCommand = primaryCommand.split(' ') + + if (splittedPrimaryCommand[0].toLowerCase() === 'docs.delete') { + if (splittedPrimaryCommand[2] !== 'from') { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Missing From', 'Anchor Missing From') + return + } + + if (splittedPrimaryCommand.length < 4) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Too Few Parameters', 'Anchor Too Few Paramenters') + return + } + + if (secondaryCommand === '') { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Category Not Valid', 'Anchor Category Not Valid') + return + } + + switch (splittedPrimaryCommand[1].toLowerCase()) { + case 'node': { + deleteNode(splittedPrimaryCommand[3], secondaryCommand) + return + } + case 'concept': { + deleteConcept(splittedPrimaryCommand[3], secondaryCommand) + return + } + case 'topic': { + let splittedSecondaryCommand = secondaryCommand.split('->') + if (splittedSecondaryCommand.length < 3) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Too Few Parameters', 'Anchor Too Few Paramenters') + return + } + deleteTopic(splittedPrimaryCommand[3], splittedSecondaryCommand[0], splittedSecondaryCommand[1], splittedSecondaryCommand[2]) + return + } + case 'tutorial': { + let splittedSecondaryCommand = secondaryCommand.split('->') + if (splittedSecondaryCommand.length < 3) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Too Few Parameters', 'Anchor Too Few Paramenters') + return + } + deleteTutorial(splittedPrimaryCommand[3], splittedSecondaryCommand[0], splittedSecondaryCommand[1], splittedSecondaryCommand[2]) + return + } + case 'book': { + deleteBook(splittedPrimaryCommand[3], secondaryCommand) + return + } + default: { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Category Not Valid', 'Anchor Category Not Valid') + return + } + } + return 'Not Delete Command' + } + } + + function checkRepaginateCommand() { + if (UI.projects.superalgos.spaces.docsSpace.commandInterface.command.toLowerCase() === 'docs.help docs.repaginate') { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Repaginate Command') + return + } + if (UI.projects.superalgos.spaces.docsSpace.commandInterface.command.indexOf('Docs.Repaginate') !== 0 && UI.projects.superalgos.spaces.docsSpace.commandInterface.command.indexOf('docs.repaginate') !== 0) { return 'Not Repaginate Command' } + + let splittedCommand = UI.projects.superalgos.spaces.docsSpace.commandInterface.command.split(': ') + if (splittedCommand[1] === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Missing Colon', 'Anchor Missing Colon') + return + } + let primaryCommand = splittedCommand[0] + let secondaryCommand = splittedCommand[1] + + let splittedPrimaryCommand = primaryCommand.split(' ') + + if (splittedPrimaryCommand[0].toLowerCase() === 'docs.repaginate') { + if (splittedPrimaryCommand[2] !== 'from') { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Missing From', 'Anchor Missing From') + return + } + + if (splittedPrimaryCommand.length < 4) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Too Few Parameters', 'Anchor Too Few Paramenters') + return + } + + if (secondaryCommand === '') { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Category Not Valid', 'Anchor Category Not Valid') + return + } + + switch (splittedPrimaryCommand[1].toLowerCase()) { + case 'node': { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Category Not Valid', 'Anchor Category Not Valid') + return + } + case 'concept': { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Category Not Valid', 'Anchor Category Not Valid') + return + } + case 'topic': { + repaginate(splittedPrimaryCommand[3], 'Topic', secondaryCommand) + return + } + case 'tutorial': { + repaginate(splittedPrimaryCommand[3], 'Tutorial', secondaryCommand) + return + } + case 'book': { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Category Not Valid', 'Anchor Category Not Valid') + return + } + default: { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Category Not Valid', 'Anchor Category Not Valid') + return + } + } + } + } + + function checkUReIndexCommand() { + if (UI.projects.superalgos.spaces.docsSpace.commandInterface.command.toLowerCase() === 'docs.help docs.reindex') { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Reindex Command') + return + } + if (UI.projects.superalgos.spaces.docsSpace.commandInterface.command.indexOf('Docs.Reindex') !== 0 && UI.projects.superalgos.spaces.docsSpace.commandInterface.command.indexOf('docs.reindex') !== 0) { return 'Not Reindex Command' } + + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Message - Reindexing Started') + setTimeout(startReindexingProcess, 100) + + function startReindexingProcess() { + UI.projects.superalgos.spaces.docsSpace.setUpWorkspaceSchemas() + UI.projects.superalgos.spaces.docsSpace.searchEngine.setUpSearchEngine() + + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Message - Reindexing Succeed') + } + } + + function checkUSaveCommand() { + if (UI.projects.superalgos.spaces.docsSpace.commandInterface.command.toLowerCase() === 'docs.help docs.save') { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Save Command') + return + } + if (UI.projects.superalgos.spaces.docsSpace.commandInterface.command.indexOf('Docs.Save') !== 0 && UI.projects.superalgos.spaces.docsSpace.commandInterface.command.indexOf('docs.save') !== 0) { return 'Not Save Command' } + + let requestsSent = 0 + let responseCount = 0 + let okResponses = 0 + for (let j = 0; j < PROJECTS_ARRAY.length; j++) { + let docsSchema + let project = PROJECTS_ARRAY[j] + + docsSchema = SCHEMAS_BY_PROJECT.get(project).array.docsNodeSchema + httpRequest(JSON.stringify(docsSchema), 'Docs/Save-Node-Schema/' + project, onResponse) + requestsSent++ + + docsSchema = SCHEMAS_BY_PROJECT.get(project).array.docsConceptSchema + httpRequest(JSON.stringify(docsSchema), 'Docs/Save-Concept-Schema/' + project, onResponse) + requestsSent++ + + docsSchema = SCHEMAS_BY_PROJECT.get(project).array.docsTopicSchema + httpRequest(JSON.stringify(docsSchema), 'Docs/Save-Topic-Schema/' + project, onResponse) + requestsSent++ + + docsSchema = SCHEMAS_BY_PROJECT.get(project).array.docsTutorialSchema + httpRequest(JSON.stringify(docsSchema), 'Docs/Save-Tutorial-Schema/' + project, onResponse) + requestsSent++ + + docsSchema = SCHEMAS_BY_PROJECT.get(project).array.docsBookSchema + httpRequest(JSON.stringify(docsSchema), 'Docs/Save-Book-Schema/' + project, onResponse) + requestsSent++ + } + + function onResponse(err, data) { + /* Lets check the result of the call through the http interface */ + data = JSON.parse(data) + if (err.result === GLOBAL.DEFAULT_OK_RESPONSE.result && data.result === GLOBAL.DEFAULT_OK_RESPONSE.result) { + okResponses++ + } + responseCount++ + + if (responseCount === requestsSent) { + if (responseCount === okResponses) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Message - Saving Succeed') + afterSaving() + } else { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Changes Not Saved', 'Anchor Changes Not Saved') + } + } + } + + function afterSaving() { + /* + Since all the changes where saved, we need to remove the change flags at the different shcema documents. + We also need to remove from the arrays the deleted items. + */ + for (let j = 0; j < PROJECTS_ARRAY.length; j++) { + let project = PROJECTS_ARRAY[j] + let documents + + /* Nodes */ + documents = [] + for (let i = 0; i < SCHEMAS_BY_PROJECT.get(project).array.docsNodeSchema.length; i++) { + docsSchemaDocument = SCHEMAS_BY_PROJECT.get(project).array.docsNodeSchema[i] + docsSchemaDocument.updated = undefined + docsSchemaDocument.created = undefined + + if (docsSchemaDocument.deleted === true) { + SCHEMAS_BY_PROJECT.get(project).map.docsNodeSchema.delete(docsSchemaDocument.type) + } else { + documents.push(docsSchemaDocument) + } + } + SCHEMAS_BY_PROJECT.get(project).array.docsNodeSchema = documents + + /* Concepts */ + documents = [] + for (let i = 0; i < SCHEMAS_BY_PROJECT.get(project).array.docsConceptSchema.length; i++) { + docsSchemaDocument = SCHEMAS_BY_PROJECT.get(project).array.docsConceptSchema[i] + docsSchemaDocument.updated = undefined + docsSchemaDocument.created = undefined + + if (docsSchemaDocument.deleted === true) { + SCHEMAS_BY_PROJECT.get(project).map.docsConceptSchema.delete(docsSchemaDocument.type) + } else { + documents.push(docsSchemaDocument) + } + } + SCHEMAS_BY_PROJECT.get(project).array.docsConceptSchema = documents + + /* Topics */ + documents = [] + for (let i = 0; i < SCHEMAS_BY_PROJECT.get(project).array.docsTopicSchema.length; i++) { + docsSchemaDocument = SCHEMAS_BY_PROJECT.get(project).array.docsTopicSchema[i] + docsSchemaDocument.updated = undefined + docsSchemaDocument.created = undefined + + if (docsSchemaDocument.deleted === true) { + SCHEMAS_BY_PROJECT.get(project).map.docsTopicSchema.delete(docsSchemaDocument.type) + } else { + documents.push(docsSchemaDocument) + } + } + SCHEMAS_BY_PROJECT.get(project).array.docsTopicSchema = documents + + /* Tutorials */ + documents = [] + for (let i = 0; i < SCHEMAS_BY_PROJECT.get(project).array.docsTutorialSchema.length; i++) { + docsSchemaDocument = SCHEMAS_BY_PROJECT.get(project).array.docsTutorialSchema[i] + docsSchemaDocument.updated = undefined + docsSchemaDocument.created = undefined + + if (docsSchemaDocument.deleted === true) { + SCHEMAS_BY_PROJECT.get(project).map.docsTutorialSchema.delete(docsSchemaDocument.type) + } else { + documents.push(docsSchemaDocument) + } + } + SCHEMAS_BY_PROJECT.get(project).array.docsTutorialSchema = documents + + /* Books */ + documents = [] + for (let i = 0; i < SCHEMAS_BY_PROJECT.get(project).array.docsBookSchema.length; i++) { + docsSchemaDocument = SCHEMAS_BY_PROJECT.get(project).array.docsBookSchema[i] + docsSchemaDocument.updated = undefined + docsSchemaDocument.created = undefined + + if (docsSchemaDocument.deleted === true) { + SCHEMAS_BY_PROJECT.get(project).map.docsBookSchema.delete(docsSchemaDocument.type) + } else { + documents.push(docsSchemaDocument) + } + } + SCHEMAS_BY_PROJECT.get(project).array.docsBookSchema = documents + } + } + } + + function repaginate(project, category, query) { + if (SCHEMAS_BY_PROJECT.get(project) === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Project Does Not Exist', 'Anchor Project Does Not Exist') + return + } + + let orderedArray = UI.projects.superalgos.utilities.docs.buildOrderedPageIndex( + project, + category, + query + ) + + if (orderedArray.length = 0) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'No Matching Topic Or Tutorial Found') + return + } + + let pageNumber = 1 + for (let i = 0; i < orderedArray.length; i++) { + schemaDocument = orderedArray[i] + schemaDocument.pageNumber = pageNumber + pageNumber++ + schemaDocument.updated = true + } + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Message - Repagination Succeed') + } + + function addNode(project, type) { + let template = { + created: true, + type: type, + definition: { text: "Write here the definition of this Node." }, + paragraphs: [ + { + style: "Text", + text: UI.projects.superalgos.globals.docs.NEW_PARAGRAPH_TEXT + } + ] + } + if (SCHEMAS_BY_PROJECT.get(project) === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Project Does Not Exist', 'Anchor Project Does Not Exist') + return + } + let exist = SCHEMAS_BY_PROJECT.get(project).map.docsNodeSchema.get(type) + if (exist !== undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Page Already Exists', 'Anchor Page Already Exists') + return + } + + SCHEMAS_BY_PROJECT.get(project).array.docsNodeSchema.push(template) + SCHEMAS_BY_PROJECT.get(project).map.docsNodeSchema.set(type, template) + UI.projects.superalgos.spaces.docsSpace.navigateTo(project, 'Node', type) + } + + function addConcept(project, type) { + let template = { + created: true, + type: type, + definition: { text: "Write here the summary / definition of this Concept." }, + paragraphs: [ + { + style: "Text", + text: UI.projects.superalgos.globals.docs.NEW_PARAGRAPH_TEXT + } + ] + } + + if (SCHEMAS_BY_PROJECT.get(project) === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Project Does Not Exist', 'Anchor Project Does Not Exist') + return + } + let exist = SCHEMAS_BY_PROJECT.get(project).map.docsConceptSchema.get(type) + if (exist !== undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Page Already Exists', 'Anchor Page Already Exists') + return + } + + SCHEMAS_BY_PROJECT.get(project).array.docsConceptSchema.push(template) + SCHEMAS_BY_PROJECT.get(project).map.docsConceptSchema.set(type, template) + UI.projects.superalgos.spaces.docsSpace.navigateTo(project, 'Concept', type) + } + + function addTopic(project, topic, type, pageNumber) { + let template = { + created: true, + topic: topic, + pageNumber: pageNumber, + type: type, + definition: { text: "Write here a summary for this topic page." }, + paragraphs: [ + { + style: "Text", + text: UI.projects.superalgos.globals.docs.NEW_PARAGRAPH_TEXT + } + ] + } + if (SCHEMAS_BY_PROJECT.get(project) === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Project Does Not Exist', 'Anchor Project Does Not Exist') + return + } + let exist = SCHEMAS_BY_PROJECT.get(project).map.docsTopicSchema.get(type) + if (exist !== undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Page Already Exists', 'Anchor Page Already Exists') + return + } + + SCHEMAS_BY_PROJECT.get(project).array.docsTopicSchema.push(template) + SCHEMAS_BY_PROJECT.get(project).map.docsTopicSchema.set(type, template) + UI.projects.superalgos.spaces.docsSpace.navigateTo(project, 'Topic', type) + } + + function addTutorial(project, tutorial, type, pageNumber) { + let template = { + created: true, + tutorial: tutorial, + pageNumber: pageNumber, + type: type, + definition: { text: "Write here a summary for this tutorial page." }, + paragraphs: [ + { + style: "Text", + text: UI.projects.superalgos.globals.docs.NEW_PARAGRAPH_TEXT + } + ] + } + if (SCHEMAS_BY_PROJECT.get(project) === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Project Does Not Exist', 'Anchor Project Does Not Exist') + return + } + let exist = SCHEMAS_BY_PROJECT.get(project).map.docsTutorialSchema.get(type) + if (exist !== undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Page Already Exists', 'Anchor Page Already Exists') + return + } + + SCHEMAS_BY_PROJECT.get(project).array.docsTutorialSchema.push(template) + SCHEMAS_BY_PROJECT.get(project).map.docsTutorialSchema.set(type, template) + UI.projects.superalgos.spaces.docsSpace.navigateTo(project, 'Tutorial', type) + } + + function addBook(project, type) { + let template = { + created: true, + type: type, + definition: { text: "Write here the summary / definition of this Book." }, + paragraphs: [ + { + style: "Text", + text: UI.projects.superalgos.globals.docs.NEW_PARAGRAPH_TEXT + } + ] + } + + if (SCHEMAS_BY_PROJECT.get(project) === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Project Does Not Exist', 'Anchor Project Does Not Exist') + return + } + let exist = SCHEMAS_BY_PROJECT.get(project).map.docsBookSchema.get(type) + if (exist !== undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Page Already Exists', 'Anchor Page Already Exists') + return + } + + SCHEMAS_BY_PROJECT.get(project).array.docsBookSchema.push(template) + SCHEMAS_BY_PROJECT.get(project).map.docsBookSchema.set(type, template) + UI.projects.superalgos.spaces.docsSpace.navigateTo(project, 'Book', type) + } + + function deleteNode(project, type) { + if (SCHEMAS_BY_PROJECT.get(project) === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Project Does Not Exist', 'Anchor Project Does Not Exist') + return + } + let exist = SCHEMAS_BY_PROJECT.get(project).map.docsNodeSchema.get(type) + if (exist === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Page Does Not Exist', 'Anchor Page Does Not Exist') + return + } + + let schemaDocument = SCHEMAS_BY_PROJECT.get(project).map.docsNodeSchema.get(type) + schemaDocument.deleted = true + + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Message - Deleting Succeed') + } + + function deleteConcept(project, type) { + if (SCHEMAS_BY_PROJECT.get(project) === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Project Does Not Exist', 'Anchor Project Does Not Exist') + return + } + let exist = SCHEMAS_BY_PROJECT.get(project).map.docsConceptSchema.get(type) + if (exist === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Page Does Not Exist', 'Anchor Page Does Not Exist') + return + } + + let schemaDocument = SCHEMAS_BY_PROJECT.get(project).map.docsConceptSchema.get(type) + schemaDocument.deleted = true + + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Message - Deleting Succeed') + } + + function deleteTopic(project, topic, type, pageNumber) { + if (SCHEMAS_BY_PROJECT.get(project) === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Project Does Not Exist', 'Anchor Project Does Not Exist') + return + } + let exist = SCHEMAS_BY_PROJECT.get(project).map.docsTopicSchema.get(type) + if (exist === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Page Does Not Exist', 'Anchor Page Does Not Exist') + return + } else { + if (exist.pageNumber !== pageNumber) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Page Number Mismatch', 'Anchor Page Number Mismatch') + return + } + if (exist.topic !== topic) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Topic Mismatch', 'Anchor Topic Mismatch') + return + } + } + + let schemaDocument = SCHEMAS_BY_PROJECT.get(project).map.docsTopicSchema.get(type) + schemaDocument.deleted = true + + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Message - Deleting Succeed') + } + + function deleteTutorial(project, tutorial, type, pageNumber) { + if (SCHEMAS_BY_PROJECT.get(project) === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Project Does Not Exist', 'Anchor Project Does Not Exist') + return + } + let exist = SCHEMAS_BY_PROJECT.get(project).map.docsTutorialSchema.get(type) + if (exist === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Page Does Not Exist', 'Anchor Page Does Not Exist') + return + } else { + if (exist.pageNumber !== pageNumber) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Page Number Mismatch', 'Anchor Page Number Mismatch') + return + } + if (exist.tutorial !== tutorial) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Tutorial Mismatch', 'Anchor Tutorial Mismatch') + return + } + } + + let schemaDocument = SCHEMAS_BY_PROJECT.get(project).map.docsTutorialSchema.get(type) + schemaDocument.deleted = true + + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Message - Deleting Succeed') + } + + function deleteBook(project, type) { + if (SCHEMAS_BY_PROJECT.get(project) === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Project Does Not Exist', 'Anchor Project Does Not Exist') + return + } + let exist = SCHEMAS_BY_PROJECT.get(project).map.docsBookSchema.get(type) + if (exist === undefined) { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Error - Page Does Not Exist', 'Anchor Page Does Not Exist') + return + } + + let schemaDocument = SCHEMAS_BY_PROJECT.get(project).map.docsBookSchema.get(type) + schemaDocument.deleted = true + + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs Message - Deleting Succeed') + } + } +} \ No newline at end of file diff --git a/Projects/Superalgos/UI/Spaces/Docs-Space/ContextMenu.js b/Projects/Superalgos/UI/Spaces/Docs-Space/ContextMenu.js new file mode 100644 index 000000000..8614e01a2 --- /dev/null +++ b/Projects/Superalgos/UI/Spaces/Docs-Space/ContextMenu.js @@ -0,0 +1,450 @@ +function newSuperalgosDocsContextMenu() { + let thisObject = { + selectedParagraph: undefined, + getSelection: getSelection, + forceOutClick: forceOutClick, + initialize: initialize, + finalize: finalize + } + + let selectedParagraphData = '' + let selectedParagraphIndex = '' + let selectedParagraphHeight = 0 + + return thisObject + + function initialize() { + setUpContextMenu() + } + + function finalize() { + + } + + function setUpContextMenu() { + window.contextMenu = { + editParagraph: editParagraph, + deleteParagraph: deleteParagraph, + toJavascript: toJavascript, + toJson: toJson, + toText: toText, + toTitle: toTitle, + toSubtitle: toSubtitle, + toNote: toNote, + toWarning: toWarning, + toError: toError, + toImportant: toImportant, + toSuccess: toSuccess, + toCallout: toCallout, + toSummary: toSummary, + toList: toList, + toTable: toTable, + toHierarchy: toHierarchy, + toGif: toGif, + toPng: toPng, + toAnchor: toAnchor, + toBlock: toBlock, + toInclude: toInclude, + toChapter: toChapter, + toSection: toSection, + copyLink: copyLink, + toWebPageLink: toWebPageLink, + toYouTubeVideo: toYouTubeVideo + } + + function editParagraph() { + forceOutClick() + showHTMLTextArea() + + function showHTMLTextArea() { + if (UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph === undefined) { return } + + /* + When in editing mode, some type of paragraphs need to extend + the text area style so that while editing, it looks and feel + like the non editing style of the paragraph. For those we + add an extra style class. + */ + let extraClassName = '' + if (UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id.indexOf('definition') >= 0) { + extraClassName = ' ' + '' + } + if (UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id.indexOf('title') >= 0) { + extraClassName = ' ' + 'docs-h3' + } + if (UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id.indexOf('subtitle') >= 0) { + extraClassName = ' ' + 'docs-h4' + } + if (UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id.indexOf('note') >= 0) { + extraClassName = ' ' + 'docs-alert-note' + } + if (UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id.indexOf('success') >= 0) { + extraClassName = ' ' + 'docs-alert-success' + } + if (UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id.indexOf('important') >= 0) { + extraClassName = ' ' + 'docs-alert-important' + } + if (UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id.indexOf('warning') >= 0) { + extraClassName = ' ' + 'docs-alert-warning' + } + if (UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id.indexOf('error') >= 0) { + extraClassName = ' ' + 'docs-alert-error' + } + if (UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id.indexOf('javascript') >= 0) { + extraClassName = ' ' + 'language-javascript' + } + if (UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id.indexOf('json') >= 0) { + extraClassName = ' ' + 'language-json' + } + + UI.projects.superalgos.spaces.docsSpace.textArea = document.createElement('textarea'); + UI.projects.superalgos.spaces.docsSpace.textArea.id = "UI.projects.superalgos.spaces.docsSpace.textArea"; + UI.projects.superalgos.spaces.docsSpace.textArea.spellcheck = false; + UI.projects.superalgos.spaces.docsSpace.textArea.className = "docs-text-area" + extraClassName + UI.projects.superalgos.spaces.docsSpace.textArea.style.height = selectedParagraphHeight + UI.projects.superalgos.spaces.docsSpace.textArea.value = selectedParagraphData + UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.innerHTML = "" + UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.appendChild(UI.projects.superalgos.spaces.docsSpace.textArea) + UI.projects.superalgos.spaces.docsSpace.textArea.style.display = 'block' + UI.projects.superalgos.spaces.docsSpace.textArea.focus() + forceOutClick() + UI.projects.superalgos.spaces.docsSpace.enterEditMode() + } + } + + function deleteParagraph() { + if (selectedParagraphIndex === undefined) { return } + if (selectedParagraphIndex === 0) { return } + UI.projects.superalgos.spaces.docsSpace.documentPage.docsSchemaDocument.paragraphs.splice(selectedParagraphIndex, 1) + forceOutClick() + UI.projects.superalgos.spaces.docsSpace.documentPage.docsSchemaDocument.updated = true + UI.projects.superalgos.spaces.docsSpace.documentPage.render() + } + + function toJavascript() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Javascript') + } + + function toJson() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Json') + } + + function toText() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Text') + } + + function toTitle() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Title') + } + + function toSubtitle() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Subtitle') + } + + function toNote() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Note') + } + + function toWarning() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Warning') + } + + function toError() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Error') + } + + function toImportant() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Important') + } + + function toSuccess() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Success') + } + + function toCallout() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Callout') + } + + function toSummary() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Summary') + } + + function toSection() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Section') + } + + function toList() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'List') + } + + function toTable() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Table') + } + + function toHierarchy() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Hierarchy') + } + + function toGif() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Gif') + } + + function toPng() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Png') + } + + function toAnchor() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Anchor') + } + + function toBlock() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Block') + } + + function toInclude() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Include') + } + + function toChapter() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Chapter') + } + + function toWebPageLink() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Link') + } + + function toYouTubeVideo() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + replaceStyle(docSchemaParagraph, 'Youtube') + } + + function copyLink() { + let docSchemaParagraph = UI.projects.superalgos.spaces.docsSpace.paragraphMap.get(UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph.id) + let clipboard + switch (docSchemaParagraph.style) { + case 'Anchor': { + clipboard = "docs.goto " + UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project + '->' + UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.category + '->' + UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type + '->' + docSchemaParagraph.text + break + } + case 'Block': { + clipboard = UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project + '->' + UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.category + '->' + UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type + '->' + docSchemaParagraph.text + break + } + default: { + clipboard = docSchemaParagraph.text + break + } + } + + UI.projects.superalgos.utilities.clipboard.copyTextToClipboard(clipboard) + forceOutClick() + } + + function replaceStyle(docSchemaParagraph, style) { + if (docSchemaParagraph.style !== style) { + UI.projects.superalgos.spaces.docsSpace.documentPage.docsSchemaDocument.updated = true + docSchemaParagraph.style = style + forceOutClick() + UI.projects.superalgos.spaces.docsSpace.documentPage.render() + } + } + } + + function forceOutClick() { + const outClick = document.getElementById('docs-space-div') + const menu = document.getElementById('menu') + menu.classList.remove('show') + outClick.style.display = "none" + } + + function getSelection() { + let selection = window.getSelection() + + /* + We need to locate the parent node that it is a Paragraph, + otherwise we could end up in an inner html element. + */ + let paragraphNode = selection.baseNode + + if (paragraphNode.id !== undefined && paragraphNode.parentNode.className === "docs-tooltip") { + return false + } + + + for (let i = 1; i < 10; i++) { + if (paragraphNode === undefined || paragraphNode === null) { return false } + if (paragraphNode.id === undefined || paragraphNode.id.indexOf('editable-paragraph') < 0) { + paragraphNode = paragraphNode.parentNode + if (paragraphNode === undefined) { return false } + } + } + if (paragraphNode === undefined || paragraphNode === null || paragraphNode.id === undefined || paragraphNode.id.indexOf('editable-paragraph') < 0) { + return false + } + /* + Get the dimenssions of the current paragraph to help us to define the dimenssions of the text area. + */ + UI.projects.superalgos.spaces.docsSpace.contextMenu.selectedParagraph = paragraphNode + selectedParagraphHeight = paragraphNode.getClientRects()[0].height + if (selectedParagraphHeight < 30) { selectedParagraphHeight = 30 } + /* + We need to clean the Tool Tips text that might be at the paragraph selected. + To not destroy the DOM structure we will use a clone. + */ + paragraphNode = paragraphNode.cloneNode(true) + scanNodeChildren(paragraphNode) + function scanNodeChildren(node) { + if (node.childNodes === undefined) { return } + for (let i = 0; i < node.childNodes.length; i++) { + let childNode = node.childNodes[i] + if (childNode.className === "docs-tooltip") { + childNode.innerText = childNode.childNodes[0].data + } else { + scanNodeChildren(childNode) + } + } + } + + /* Reset this */ + selectedParagraphIndex = undefined + /* + Depending on the Style of Paragraph we will need to remove + some info from the innerText. + */ + if (paragraphNode.id.indexOf('definition-') >= 0) { + if (paragraphNode.id.indexOf('-summary') >= 0) { + selectedParagraphData = paragraphNode.innerText.trim().substring(9, paragraphNode.innerText.length) + } else { + selectedParagraphData = paragraphNode.innerText.trim() + } + return true + } + /* + Remeber the Selected Paragraph Index + */ + let splittedId = paragraphNode.id.split('-') + selectedParagraphIndex = splittedId[splittedId.length - 2] + /* + Check the style of the Paragraph + */ + if (paragraphNode.id.indexOf('-text') >= 0) { + selectedParagraphData = paragraphNode.innerText.trim() + return true + } + if (paragraphNode.id.indexOf('-title') >= 0) { + selectedParagraphData = paragraphNode.innerText.trim() + return true + } + if (paragraphNode.id.indexOf('-subtitle') >= 0) { + selectedParagraphData = paragraphNode.innerText.trim() + return true + } + if (paragraphNode.id.indexOf('-note') >= 0) { + selectedParagraphData = paragraphNode.innerText.trim().substring(6, paragraphNode.innerText.length) + return true + } + if (paragraphNode.id.indexOf('-success') >= 0) { + selectedParagraphData = paragraphNode.innerText.trim().substring(5, paragraphNode.innerText.length) + return true + } + if (paragraphNode.id.indexOf('-important') >= 0) { + selectedParagraphData = paragraphNode.innerText.trim().substring(11, paragraphNode.innerText.length) + return true + } + if (paragraphNode.id.indexOf('-warning') >= 0) { + selectedParagraphData = paragraphNode.innerText.trim().substring(10, paragraphNode.innerText.length) + return true + } + if (paragraphNode.id.indexOf('-error') >= 0) { + selectedParagraphData = paragraphNode.innerText.trim().substring(7, paragraphNode.innerText.length) + return true + } + if (paragraphNode.id.indexOf('-list') >= 0) { + selectedParagraphData = paragraphNode.innerText.trim() + return true + } + if (paragraphNode.id.indexOf('-table') >= 0) { + selectedParagraphData = UI.projects.superalgos.utilities.docs.reverseParseTable(paragraphNode) + return true + } + if (paragraphNode.id.indexOf('-hierarchy') >= 0) { + selectedParagraphData = UI.projects.superalgos.utilities.docs.reverseParseHierarchy(paragraphNode.innerHTML) + return true + } + if (paragraphNode.id.indexOf('-gif') >= 0) { + selectedParagraphData = UI.projects.superalgos.utilities.docs.reverseParseGIF(paragraphNode.innerHTML) + return true + } + if (paragraphNode.id.indexOf('-png') >= 0) { + selectedParagraphData = UI.projects.superalgos.utilities.docs.reverseParsePNG(paragraphNode.innerHTML) + return true + } + if (paragraphNode.id.indexOf('-javascript') >= 0) { + selectedParagraphData = paragraphNode.innerText.trim().substring(0, paragraphNode.innerText.length) + return true + } + if (paragraphNode.id.indexOf('-json') >= 0) { + selectedParagraphData = paragraphNode.innerText.trim().substring(0, paragraphNode.innerText.length) + return true + } + if (paragraphNode.id.indexOf('-callout') >= 0) { + selectedParagraphData = paragraphNode.innerText.trim() + return true + } + if (paragraphNode.id.indexOf('-summary') >= 0) { + selectedParagraphData = paragraphNode.innerText.trim().substring(9, paragraphNode.innerText.length) + return true + } + if (paragraphNode.id.indexOf('-anchor') >= 0) { + selectedParagraphData = paragraphNode.innerText.trim() + return true + } + if (paragraphNode.id.indexOf('-section') >= 0) { + selectedParagraphData = paragraphNode.innerText.trim() + return true + } + if (paragraphNode.id.indexOf('-block') >= 0) { + selectedParagraphData = paragraphNode.innerText.trim() + return true + } + if (paragraphNode.id.indexOf('-include') >= 0) { + selectedParagraphData = paragraphNode.innerText.trim() + return true + } + if (paragraphNode.id.indexOf('-chapter') >= 0) { + selectedParagraphData = paragraphNode.innerText.trim() + return true + } + if (paragraphNode.id.indexOf('-link') >= 0) { + selectedParagraphData = UI.projects.superalgos.utilities.docs.reverseParseLink(paragraphNode.innerHTML) + return true + } + if (paragraphNode.id.indexOf('-youtube') >= 0) { + selectedParagraphData = UI.projects.superalgos.utilities.docs.reverseParseYoutube(paragraphNode.innerHTML) + return true + } + } +} \ No newline at end of file diff --git a/Projects/Superalgos/UI/Spaces/Docs-Space/DocsSpace.js b/Projects/Superalgos/UI/Spaces/Docs-Space/DocsSpace.js new file mode 100644 index 000000000..22298ad47 --- /dev/null +++ b/Projects/Superalgos/UI/Spaces/Docs-Space/DocsSpace.js @@ -0,0 +1,528 @@ +function newSuperalgosDocSpace() { + const MODULE_NAME = 'Doc Space' + let thisObject = { + isVisible: undefined, + sidePanelTab: undefined, + container: undefined, + searchEngine: undefined, + mainSearchPage: undefined, + searchResultsPage: undefined, + footer: undefined, + documentPage: undefined, + commandInterface: undefined, + contextMenu: undefined, + language: undefined, + currentBranch: undefined, + contributionsBranch: undefined, + menuLabelsMap: undefined, + currentDocumentBeingRendered: undefined, + previousDocumentBeingRendered: undefined, + currentBookBeingRendered: undefined, + paragraphMap: undefined, // Here we will store a map of paragraphs from the Docs Node, Concept, Topics, Tutorials or Books Schema in order to find it when we need to update them. + textArea: undefined, + setUpWorkspaceSchemas: setUpWorkspaceSchemas, + changeLanguage: changeLanguage, + changeActiveBranch: changeActiveBranch, + changeContributionsBranch: changeContributionsBranch, + enterEditMode: enterEditMode, + exitEditMode: exitEditMode, + openSpaceAreaAndNavigateTo: openSpaceAreaAndNavigateTo, + navigateTo: navigateTo, + scrollToElement: scrollToElement, + physics: physics, + draw: draw, + getContainer: getContainer, + initialize: initialize, + finalize: finalize, + reset: reset + } + + let isInitialized = false + + thisObject.container = newContainer() + thisObject.container.name = MODULE_NAME + thisObject.container.initialize() + thisObject.container.isClickeable = true + thisObject.container.isDraggeable = false + thisObject.container.detectMouseOver = true + thisObject.container.status = 'hidden' + + resize() + + let browserResizedEventSubscriptionId + let openingEventSubscriptionId + let closingEventSubscriptionId + + return thisObject + + function initialize() { + thisObject.menuLabelsMap = new Map() + + setupSidePanelTab() + setUpMenuItemsMap() + setupUserLanguage() + setupActiveBranch() + setupContributionsBranch() + + thisObject.searchEngine = newSuperalgosDocsSearchEngine() + thisObject.mainSearchPage = newSuperalgosDocsMainSearchPage() + thisObject.searchResultsPage = newSuperalgosDocsSearchResultsPage() + thisObject.documentPage = newSuperalgosDocsDocumentPage() + thisObject.footer = newSuperalgosDocsFooter() + thisObject.commandInterface = newSuperalgosDocsCommmandInterface() + thisObject.contextMenu = newSuperalgosDocsContextMenu() + + thisObject.searchEngine.initialize() + thisObject.mainSearchPage.initialize() + thisObject.searchResultsPage.initialize() + thisObject.documentPage.initialize() + thisObject.footer.initialize() + thisObject.commandInterface.initialize() + thisObject.contextMenu.initialize() + + isInitialized = true + + function setupActiveBranch() { + /* + Getting the used preferred languague + */ + if (window.localStorage.getItem('Current Branch') !== null && window.localStorage.getItem('Current Branch') !== undefined && window.localStorage.getItem('Current Branch') !== 'undefined') { + UI.projects.superalgos.spaces.docsSpace.currentBranch = window.localStorage.getItem('Current Branch') + } else { + window.localStorage.setItem('Current Branch', UI.projects.superalgos.globals.docs.DEFAULT_ACTIVE_BRANCH) + UI.projects.superalgos.spaces.docsSpace.currentBranch = UI.projects.superalgos.globals.docs.DEFAULT_ACTIVE_BRANCH + } + } + + function setupContributionsBranch() { + /* + Getting the used preferred languague + */ + if (window.localStorage.getItem('Contributions Branch') !== null && window.localStorage.getItem('Contributions Branch') !== undefined && window.localStorage.getItem('Contributions Branch') !== 'undefined') { + UI.projects.superalgos.spaces.docsSpace.contributionsBranch = window.localStorage.getItem('Contributions Branch') + } else { + window.localStorage.setItem('Contributions Branch', UI.projects.superalgos.globals.docs.DEFAULT_CONTRIBUTIONS_BRANCH) + UI.projects.superalgos.spaces.docsSpace.contributionsBranch = UI.projects.superalgos.globals.docs.DEFAULT_CONTRIBUTIONS_BRANCH + } + } + + function setupUserLanguage() { + /* + Getting the used preferred languague + */ + if (window.localStorage.getItem('Docs Language') !== null && window.localStorage.getItem('Docs Language') !== undefined && window.localStorage.getItem('Docs Language') !== 'undefined') { + UI.projects.superalgos.spaces.docsSpace.language = window.localStorage.getItem('Docs Language') + } else { + window.localStorage.setItem('Docs Language', UI.projects.superalgos.globals.docs.DEFAULT_LANGUAGE) + UI.projects.superalgos.spaces.docsSpace.language = UI.projects.superalgos.globals.docs.DEFAULT_LANGUAGE + } + } + + function setupSidePanelTab() { + thisObject.sidePanelTab = newSidePanelTab() + thisObject.sidePanelTab.container.connectToParent(thisObject.container, false, false) + thisObject.sidePanelTab.initialize('right') + openingEventSubscriptionId = thisObject.sidePanelTab.container.eventHandler.listenToEvent('opening', onOpening) + closingEventSubscriptionId = thisObject.sidePanelTab.container.eventHandler.listenToEvent('closing', onClosing) + + browserResizedEventSubscriptionId = canvas.eventHandler.listenToEvent('Browser Resized', resize) + } + + function setUpMenuItemsMap() { + /* + Here we will put put all the menu item labels of all nodes at all + app schemas into a single map, that will allow us to know when a phrase + is a label of a menu and then change its style. + */ + for (let i = 0; i < PROJECTS_ARRAY.length; i++) { + let project = PROJECTS_ARRAY[i] + let appSchemaArray = SCHEMAS_BY_PROJECT.get(project).array.appSchema + + for (let j = 0; j < appSchemaArray.length; j++) { + let docsSchemaDocument = appSchemaArray[j] + + if (docsSchemaDocument.menuItems === undefined) { continue } + for (let k = 0; k < docsSchemaDocument.menuItems.length; k++) { + let menuItem = docsSchemaDocument.menuItems[k] + thisObject.menuLabelsMap.set(menuItem.label, true) + } + } + } + } + } + + function finalize() { + canvas.eventHandler.stopListening(browserResizedEventSubscriptionId) + thisObject.sidePanelTab.container.eventHandler.stopListening(openingEventSubscriptionId) + thisObject.sidePanelTab.container.eventHandler.stopListening(closingEventSubscriptionId) + + thisObject.searchEngine.finalize() + thisObject.mainSearchPage.finalize() + thisObject.searchResultsPage.finalize() + thisObject.documentPage.finalize() + thisObject.footer.finalize() + thisObject.commandInterface.finalize() + thisObject.contextMenu.finalize() + + thisObject.searchEngine = undefined + thisObject.mainSearchPage = undefined + thisObject.searchResultsPage = undefined + thisObject.documentPage = undefined + thisObject.footer = undefined + thisObject.commandInterface = undefined + thisObject.contextMenu = undefined + + thisObject.currentDocumentBeingRendered = undefined + thisObject.previousDocumentBeingRendered = undefined + thisObject.paragraphMap = undefined + thisObject.menuLabelsMap = undefined + isInitialized = false + } + + function reset() { + finalize() + initialize() + } + + function changeActiveBranch(branch) { + window.localStorage.setItem('Current Branch', UI.projects.superalgos.spaces.docsSpace.currentBranch) + httpRequest(undefined, 'App/Checkout/' + branch, onResponse) + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Switching Branches - Changing Current Branch') + + function onResponse(err, data) { + /* Lets check the result of the call through the http interface */ + data = JSON.parse(data) + if (err.result === GLOBAL.DEFAULT_OK_RESPONSE.result && data.result === GLOBAL.DEFAULT_OK_RESPONSE.result) { + UI.projects.superalgos.spaces.docsSpace.currentBranch = branch + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Switching Branches - Current Branch Changed') + } else { + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Switching Branches - Current Branch Not Changed') + } + } + } + + function changeContributionsBranch(branch) { + UI.projects.superalgos.spaces.docsSpace.contributionsBranch = branch + window.localStorage.setItem('Contributions Branch', UI.projects.superalgos.spaces.docsSpace.contributionsBranch) + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Switching Branches - Contributions Branch Changed') + } + + function changeLanguage(pLanguage) { + UI.projects.superalgos.spaces.docsSpace.language = pLanguage + window.localStorage.setItem('Docs Language', UI.projects.superalgos.spaces.docsSpace.language) + let languageLabel = UI.projects.superalgos.utilities.languages.getLaguageLabel(UI.projects.superalgos.spaces.docsSpace.language) + UI.projects.superalgos.spaces.docsSpace.navigateTo('Superalgos', 'Topic', 'Docs In ' + languageLabel) + } + + function onKeyDown(event) { + /* + When an editor is on focus we will only + take care of a few combinations of key strokes + so as to tell the editor container when the user + would like to close the editor. + */ + if (event.key === 'Escape') { + UI.projects.superalgos.spaces.docsSpace.exitEditMode() + } + } + + function enterEditMode() { + EDITOR_ON_FOCUS = true + window.editorController = { + onKeyDown: onKeyDown + } + } + + function exitEditMode() { + if (EDITOR_ON_FOCUS === true) { + thisObject.documentPage.exitEditMode() + EDITOR_ON_FOCUS = false + UI.projects.superalgos.spaces.docsSpace.documentPage.render() + } + } + + function onOpening() { + thisObject.isVisible = true + if (UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered === undefined) { + thisObject.mainSearchPage.render() + + } else { + UI.projects.superalgos.spaces.docsSpace.navigateTo( + UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project, + UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.category, + UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type, + UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.anchor + ) + } + } + + function setUpWorkspaceSchemas() { + /* + We will scan the whole workspace and create an array with all of its nodes. + */ + let rootNodes = UI.projects.superalgos.spaces.designSpace.workspace.workspaceNode.rootNodes + let allNodesFound = [] + for (let i = 0; i < rootNodes.length; i++) { + let rootNode = rootNodes[i] + if (rootNode !== null) { + let nodeArray = UI.projects.superalgos.utilities.branches.nodeBranchToArray(rootNode) + allNodesFound = allNodesFound.concat(nodeArray) + } + } + /* + We will create a document for each node, so that can later be indexed into the search engine. + */ + for (let j = 0; j < PROJECTS_ARRAY.length; j++) { + let project = PROJECTS_ARRAY[j] + SCHEMAS_BY_PROJECT.get(project).array.workspaceSchema = [] + SCHEMAS_BY_PROJECT.get(project).map.workspaceSchema = new Map() + + for (let i = 0; i < allNodesFound.length; i++) { + let node = allNodesFound[i] + + if (node.project === project) { + let nodeNameTypePath = UI.projects.superalgos.utilities.hierarchy.getNodeNameTypePath(node) + + let docsSchemaDocument = { + nodeId: node.id, + nodeNameTypePath: nodeNameTypePath, + type: node.type, + definition: { text: node.name }, + paragraphs: [] + } + if (node.config !== undefined) { + let paragraph + paragraph = { + style: "Title", + text: "Config" + } + docsSchemaDocument.paragraphs.push(paragraph) + paragraph = { + style: "Json", + text: node.config + } + docsSchemaDocument.paragraphs.push(paragraph) + } + if (node.code !== undefined) { + let paragraph + paragraph = { + style: "Title", + text: "Code" + } + docsSchemaDocument.paragraphs.push(paragraph) + paragraph = { + style: "Javascript", + text: node.code + } + docsSchemaDocument.paragraphs.push(paragraph) + } + SCHEMAS_BY_PROJECT.get(project).array.workspaceSchema.push(docsSchemaDocument) + SCHEMAS_BY_PROJECT.get(project).map.workspaceSchema.set(node.id, docsSchemaDocument) + } + } + } + } + + function onClosing() { + UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered = undefined + thisObject.isVisible = false + } + + function scrollToElement(htmlElementId) { + let myElement = document.getElementById(htmlElementId) + if (myElement) { + let topPos = myElement.offsetTop + let scrollingDiv = document.getElementById('docs-space-div') + scrollingDiv.scrollTop = topPos + } + } + + function openSpaceAreaAndNavigateTo(project, category, type, anchor, nodeId) { + + getReadyToNavigate(project, category, type, anchor, nodeId) + + thisObject.sidePanelTab.open() + } + + function navigateTo(project, category, type, anchor, nodeId) { + + EDITOR_ON_FOCUS = false // forced exit + UI.projects.superalgos.spaces.docsSpace.paragraphMap = new Map() + + getReadyToNavigate(project, category, type, anchor, nodeId) + + UI.projects.superalgos.spaces.docsSpace.documentPage.render() + + /* + Here we will check if we need to position the page at a particular anchor or at the top. + */ + if (UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.anchor !== undefined) { + scrollToElement('docs-anchor-' + UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.anchor.toLowerCase().replaceAll(' ', '-')) + UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.anchor = undefined + } else { + scrollToElement('docs-space-div') + } + } + + function getReadyToNavigate(project, category, type, anchor, nodeId) { + /* Replace the current object with this */ + if (UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered !== undefined) { + UI.projects.superalgos.spaces.docsSpace.previousDocumentBeingRendered = { + project: UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project, + category: UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.category, + type: UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type, + anchor: UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.anchor, + nodeId: UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.nodeId + } + } + + if (category === 'Book') { + UI.projects.superalgos.spaces.docsSpace.currentBookBeingRendered = { + project: project, + category: category, + type: type.replace('AMPERSAND', '\''), + anchor: anchor, + nodeId: nodeId + } + } + + UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered = { + project: project, + category: category, + type: type.replace('AMPERSAND', '\''), + anchor: anchor, + nodeId: nodeId + } + } + + function resize() { + thisObject.container.frame.width = UI.projects.superalgos.globals.docs.DOCS_SPACE_WIDTH + thisObject.container.frame.height = browserCanvas.height // - TOP_SPACE_HEIGHT + thisObject.container.frame.position.x = browserCanvas.width + thisObject.container.frame.position.y = 0 // TOP_SPACE_HEIGHT + + if (thisObject.sidePanelTab !== undefined) { + thisObject.sidePanelTab.resize() + } + } + + function getContainer(point, purpose) { + let container + + container = thisObject.sidePanelTab.getContainer(point, purpose) + if (container !== undefined) { return container } + + if (thisObject.container.frame.isThisPointHere(point, true) === true) { + return thisObject.container + } else { + return undefined + } + } + + function physics() { + thisObject.sidePanelTab.physics() + docsAppDivPhysics() + finishInitializePhysics() + + function docsAppDivPhysics() { + let docsSpaceDiv = document.getElementById('docs-space-div') + docsAppDivPosition = { + x: 0, + y: 0 + } + docsAppDivPosition = thisObject.container.frame.frameThisPoint(docsAppDivPosition) + docsSpaceDiv.style = ' ' + + 'overflow-y: scroll;' + + 'overflow-x: hidden;' + + 'position:fixed; top:' + docsAppDivPosition.y + 'px; ' + + 'left:' + docsAppDivPosition.x + 'px; z-index:1; ' + + 'width: ' + thisObject.container.frame.width + 'px;' + + 'height: ' + thisObject.container.frame.height + 'px' + } + + function finishInitializePhysics() { + if (UI.projects.superalgos.spaces.designSpace.workspace === undefined) { return } + if (UI.projects.superalgos.spaces.designSpace.workspace.isInitialized === false) { return } + + if (thisObject.searchEngine && thisObject.searchEngine.docsIndex && thisObject.searchEngine.docsIndex.length === 0) { + setUpWorkspaceSchemas() + thisObject.searchEngine.setUpSearchEngine() + } + } + } + + function draw() { + if (CAN_SPACES_DRAW === false) { return } + if (isInitialized === false) { return } + borders() + thisObject.sidePanelTab.draw() + } + + function borders() { + let point1 + let point2 + let point3 + let point4 + + point1 = { + x: 0, + y: 0 + } + + point2 = { + x: thisObject.container.frame.width, + y: 0 + } + + point3 = { + x: thisObject.container.frame.width, + y: thisObject.container.frame.height + } + + point4 = { + x: 0, + y: thisObject.container.frame.height + } + + point1 = thisObject.container.frame.frameThisPoint(point1) + point2 = thisObject.container.frame.frameThisPoint(point2) + point3 = thisObject.container.frame.frameThisPoint(point3) + point4 = thisObject.container.frame.frameThisPoint(point4) + + browserCanvasContext.setLineDash([0, 0]) + browserCanvasContext.beginPath() + browserCanvasContext.moveTo(point1.x, point1.y) + browserCanvasContext.lineTo(point2.x, point2.y) + browserCanvasContext.lineTo(point3.x, point3.y) + browserCanvasContext.lineTo(point4.x, point4.y) + browserCanvasContext.lineTo(point1.x, point1.y) + browserCanvasContext.closePath() + + let opacity = 1 + + browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.LIGHT_GREY + ', ' + opacity + '' + browserCanvasContext.fill() + + browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.GREY + ', ' + opacity + '' + browserCanvasContext.lineWidth = 0.3 + browserCanvasContext.stroke() + + /* Shadow */ + + if (thisObject.container.status !== 'hidden') { + for (let i = 0; i <= 30; i++) { + opacity = 1 - (i / 300) - 0.95 + + browserCanvasContext.setLineDash([0, 0]) + browserCanvasContext.beginPath() + browserCanvasContext.moveTo(point2.x + i, point2.y) + browserCanvasContext.lineTo(point3.x + i, point3.y) + browserCanvasContext.closePath() + + browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.BLACK + ', ' + opacity + '' + browserCanvasContext.lineWidth = 1 + browserCanvasContext.stroke() + } + } + } +} diff --git a/Projects/Superalgos/UI/Spaces/Docs-Space/DocumentPage.js b/Projects/Superalgos/UI/Spaces/Docs-Space/DocumentPage.js new file mode 100644 index 000000000..2922d1e02 --- /dev/null +++ b/Projects/Superalgos/UI/Spaces/Docs-Space/DocumentPage.js @@ -0,0 +1,1966 @@ +function newSuperalgosDocsDocumentPage() { + let thisObject = { + docsSchemaDocument: undefined, + exitEditMode: exitEditMode, + render: render, + initialize: initialize, + finalize: finalize + } + + let appSchemaDocument + + return thisObject + + function initialize() { + + } + + function finalize() { + appSchemaDocument = undefined + thisObject.docsSchemaDocument = undefined + } + + function render() { + + appSchemaDocument = SCHEMAS_BY_PROJECT.get(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project).map.appSchema.get(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type) + + disableCollapsibleContent() + getSchemaDocument() + repositionWorkspace() + buildHtmlPage() + contextMenuActivateRightClick() + enableCollapsibleContent() + + function getSchemaDocument() { + switch (UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.category) { + case 'Node': { + thisObject.docsSchemaDocument = SCHEMAS_BY_PROJECT.get(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project).map.docsNodeSchema.get(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type) + break + } + case 'Concept': { + thisObject.docsSchemaDocument = SCHEMAS_BY_PROJECT.get(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project).map.docsConceptSchema.get(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type) + break + } + case 'Topic': { + thisObject.docsSchemaDocument = SCHEMAS_BY_PROJECT.get(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project).map.docsTopicSchema.get(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type) + break + } + case 'Tutorial': { + thisObject.docsSchemaDocument = SCHEMAS_BY_PROJECT.get(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project).map.docsTutorialSchema.get(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type) + break + } + case 'Workspace': { + thisObject.docsSchemaDocument = SCHEMAS_BY_PROJECT.get(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project).map.workspaceSchema.get(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.nodeId) + break + } + case 'Book': { + thisObject.docsSchemaDocument = SCHEMAS_BY_PROJECT.get(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project).map.docsBookSchema.get(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type) + break + } + } + + if (thisObject.docsSchemaDocument === undefined) { + // Use the New Node Template + let template = { + type: UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type, + definition: { text: "Write here the definition of this " + UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.category + "." }, + paragraphs: [ + { + style: "Text", + text: "Left click and Edit to enter edit mode and change this text." + } + ] + } + + switch (UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.category) { + case 'Node': { + SCHEMAS_BY_PROJECT.get(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project).array.docsNodeSchema.push(template) + SCHEMAS_BY_PROJECT.get(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project).map.docsNodeSchema.set(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type, template) + break + } + case 'Concept': { + SCHEMAS_BY_PROJECT.get(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project).array.docsConceptSchema.push(template) + SCHEMAS_BY_PROJECT.get(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project).map.docsConceptSchema.set(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type, template) + break + } + case 'Book': { + SCHEMAS_BY_PROJECT.get(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project).array.docsBookSchema.push(template) + SCHEMAS_BY_PROJECT.get(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project).map.docsBookSchema.set(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type, template) + break + } + } + + thisObject.docsSchemaDocument = template + } + /* When for any reason the schema document does not have a paragraphs array */ + if (thisObject.docsSchemaDocument.paragraphs === undefined) { + thisObject.docsSchemaDocument.paragraphs = [] + } + /* When the paragraph array is empty. */ + if (thisObject.docsSchemaDocument.paragraphs.length === 0) { + let paragraph = { + style: 'Text', + text: UI.projects.superalgos.globals.docs.NEW_PARAGRAPH_TEXT + } + thisObject.docsSchemaDocument.paragraphs.push(paragraph) + } + } + + async function repositionWorkspace() { + if (UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.category !== 'Workspace') { return } + + let node = await UI.projects.superalgos.spaces.designSpace.workspace.getNodeById(thisObject.docsSchemaDocument.nodeId) + node.payload.floatingObject.unCollapseParent() + setTimeout(positionAtNode, 3000, node) + setTimeout(positionAtNode, 5000, node) + function positionAtNode(node) { + let xOffset = -UI.projects.superalgos.globals.docs.DOCS_SPACE_WIDTH / 2 + UI.projects.superalgos.spaces.floatingSpace.positionAtNode(node, xOffset) + } + } + + function buildHtmlPage() { + let definitionImagesArray = [] + let hierarchyImagesArray = [] + let orderedTopicPageIndexArray = [] + let orderedTutorialPageIndexArray = [] + let HTML = '' + + HTML = HTML + '
' + HTML = HTML + UI.projects.superalgos.spaces.docsSpace.mainSearchPage.addSearchHeader() + HTML = HTML + '
' + + HTML = HTML + '
' // Common Style Container Starts + HTML = HTML + '
' // Clickeable Container Starts + + /* Title */ + let titleLabel = thisObject.docsSchemaDocument.type + HTML = HTML + '

' + titleLabel + '

' + + if (thisObject.docsSchemaDocument.deleted === true) { + let key = 'auto-generated-flag-paragraph' + let paragraph = { + style: "Warning", + text: "This page is flagged to be deleted. Next time you run Docs Save Command, the content will be deleted from the Client's disk. If you refresh the page or close the browser before running the Docs Save Command, the flag is lost and the pade is not deleted. Changes will be applied to the Docs Search Engine Index only after you run the Docs Reindex Command." + } + renderParagraph(paragraph, key) + } else { + if (thisObject.docsSchemaDocument.created === true || thisObject.docsSchemaDocument.updated === true) { + let key = 'auto-generated-flag-paragraph' + let paragraph = { + style: "Important", + text: "This page is flagged to be created / updated. Next time you run the Docs Save Command, the content will be saved on the Client's disk. If you refresh the page or close the browser before running the Docs Save Command, changes will be lost. Changes will be applied to the Docs Search Engine Index only after you run the Docs Reindex Command." + } + renderParagraph(paragraph, key) + } + } + + addDefinitionTable(thisObject.docsSchemaDocument, 'definition-editable-', UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.category, UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project, UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type) + + let editableParagraphIndex = 0 + let autoGeneratedParagraphIndex = 0 + + addContent() + + HTML = HTML + '
' // Clickeable Container Ends + + + if (UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.category === 'Topic') { + + orderedTopicPageIndexArray = UI.projects.superalgos.utilities.docs.buildOrderedPageIndex( + UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project, + 'Topic', + thisObject.docsSchemaDocument.topic + ) + + /* Topic Title + + titleLabel = thisObject.docsSchemaDocument.topic + ' Topic Navigation' + HTML = HTML + '

' + titleLabel + '

' + + */ + generateTopicPreviousAndNextPageNavigation() + + HTML = HTML = HTML + '
' // Container for Topic Navigation including buttons, title and index + + HTML = HTML + '

' + thisObject.docsSchemaDocument.topic + ' — TOC

' + + HTML = HTML + '

You just read page ' + thisObject.docsSchemaDocument.pageNumber + ' in the topic.

' + + generateTopicMultiPageIndex() + + HTML = HTML = HTML + '
' // END Container for Topic Navigation + } + + if (UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.category === 'Tutorial') { + + orderedTutorialPageIndexArray = UI.projects.superalgos.utilities.docs.buildOrderedPageIndex( + UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project, + 'Tutorial', + thisObject.docsSchemaDocument.tutorial + ) + + /* Tutorial Title + titleLabel = thisObject.docsSchemaDocument.tutorial + ' Tutorial Navigation' + HTML = HTML + '

' + titleLabel + '

' + */ + + generateTutorialPreviousAndNextPageNavigation() + + HTML = HTML = HTML + '
' // Container for Tutorial Navigation including buttons, title and index + + HTML = HTML + '

' + thisObject.docsSchemaDocument.tutorial + ' — TOC

' + + HTML = HTML + '

You just did step ' + thisObject.docsSchemaDocument.pageNumber + ' in the tutorial.

' + + generateTutorialMultiPageIndex() + + HTML = HTML = HTML + '
' // END Container for Tutorial Navigation + } + + HTML = HTML + '
' // Common Style Container Ends + + /* + Here we inject the HTML we built into the DOM at the Docs Space Div. + */ + let docsContentDiv = document.getElementById('docs-content-div') + docsContentDiv.innerHTML = HTML + UI.projects.superalgos.spaces.docsSpace.footer.addFooter() + + hightlightEmbeddedCode() + UI.projects.superalgos.spaces.docsSpace.mainSearchPage.detectEnterOnSearchBox() + + /* + After generating the html, we will add the images at all the points we know + there are images to be added. + */ + addImages() + + function addDefinitionTable(docsSchemaDocument, idPrefix, category, project, type) { + if (docsSchemaDocument.definition === undefined) { + docsSchemaDocument.definition = { + text: "Right click to edit this text and replace it with a definition / summary for this page. ESC to exit edit mode." + } + } + + let definitionText = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(docsSchemaDocument.definition) + definitionText = definitionText + UI.projects.superalgos.utilities.docs.addWarningIfTranslationIsOutdated(docsSchemaDocument.definition) + + /* We will test if we can draw an image here or not*/ + let testElement + if (docsSchemaDocument.definition.icon !== undefined) { + testElement = UI.projects.superalgos.spaces.designSpace.getIconByProjectAndName(docsSchemaDocument.definition.icon.project, docsSchemaDocument.definition.icon.name) + } else { + testElement = UI.projects.superalgos.spaces.designSpace.getIconByProjectAndType(project, type) + } + + /* + For nodes we always render a Definition Table, since we assume + each node will have an icon. For the rest only if we could load an + image we use a table, otherwise we will render the definitaion as a Summary. + */ + if ((category === 'Topic' || category === 'Tutorial' || category === 'Concept' || category === 'Book') && testElement === undefined) { + HTML = HTML + '
Summary: ' + UI.projects.superalgos.utilities.docs.addToolTips(definitionText, UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type) + '
' + } else { + HTML = HTML + '
' + + let imageItem = { + div: 'definition-image-div-' + definitionImagesArray.length, + project: project, + category: category, + type: type, + icon: docsSchemaDocument.definition.icon // if exists, this will override the default that is taking the image from the doc project / type. + } + definitionImagesArray.push(imageItem) + + HTML = HTML + '
' + HTML = HTML + '
' + UI.projects.superalgos.utilities.docs.addToolTips(definitionText, UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type) + '
' + HTML = HTML + '
' + } + + } + + function generateTopicPreviousAndNextPageNavigation() { + let previousPage + let nextPage + + for (let i = 0; i < orderedTopicPageIndexArray.length; i++) { + let arrayItem = orderedTopicPageIndexArray[i] + + if (thisObject.docsSchemaDocument.type === arrayItem.type) { + previousPage = orderedTopicPageIndexArray[i - 1] + nextPage = orderedTopicPageIndexArray[i + 1] + + HTML = HTML + '
' + if (previousPage !== undefined) { + HTML = HTML + '
' + previousPage.type + } + HTML = HTML + '
' + if (nextPage !== undefined) { + HTML = HTML + '
' + nextPage.type + } + HTML = HTML + '
' + return + } + } + } + + function generateTopicMultiPageIndex() { + /* + We will go through all the schema docuents array for the current project and pick + the documents that share the same key thatn the document we are rendering now. + With the info on those picked document we will build the index. + */ + let key = 'auto-generated-index-paragraph-' + autoGeneratedParagraphIndex + let paragraph + + + + for (let i = 0; i < orderedTopicPageIndexArray.length; i++) { + let arrayItem = orderedTopicPageIndexArray[i] + key = 'auto-generated-index-paragraph-' + autoGeneratedParagraphIndex + paragraph = { + style: "Title", + text: "" + arrayItem.type + "" + } + autoGeneratedParagraphIndex++ + HTML = HTML + '

' + arrayItem.pageNumber + '. ' + '' + paragraph.text + '

' + } + + } + + function generateTutorialPreviousAndNextPageNavigation() { + let previousPage + let nextPage + + for (let i = 0; i < orderedTutorialPageIndexArray.length; i++) { + let arrayItem = orderedTutorialPageIndexArray[i] + + if (thisObject.docsSchemaDocument.type === arrayItem.type) { + previousPage = orderedTutorialPageIndexArray[i - 1] + nextPage = orderedTutorialPageIndexArray[i + 1] + + HTML = HTML + '
' + if (previousPage !== undefined) { + HTML = HTML + '
' + previousPage.type + } + HTML = HTML + '
' + if (nextPage !== undefined) { + HTML = HTML + '
' + nextPage.type + } + HTML = HTML + '
' + return + } + } + } + + function generateTutorialMultiPageIndex() { + /* + We will go through all the schema docuents array for the current project and pick + the documents that share the same key thatn the document we are rendering now. + With the info on those picked document we will build the index. + */ + let key = 'auto-generated-index-paragraph-' + autoGeneratedParagraphIndex + let paragraph + + for (let i = 0; i < orderedTutorialPageIndexArray.length; i++) { + let arrayItem = orderedTutorialPageIndexArray[i] + key = 'auto-generated-index-paragraph-' + autoGeneratedParagraphIndex + paragraph = { + style: "Title", + text: "" + arrayItem.type + "" + } + autoGeneratedParagraphIndex++ + HTML = HTML + '

' + arrayItem.pageNumber + '. ' + '' + paragraph.text + '

' + } + } + + function addContent() { + HTML = HTML + '
' + if (thisObject.docsSchemaDocument.paragraphs !== undefined) { + for (let i = 0; i < thisObject.docsSchemaDocument.paragraphs.length; i++) { + let key = 'editable-paragraph-' + editableParagraphIndex + let paragraph = thisObject.docsSchemaDocument.paragraphs[i] + + switch (paragraph.style) { + case "Include": { + renderParagraph(paragraph, key) + editableParagraphIndex++ + let error = addIncludedParagraphs(paragraph.text) + if (error !== undefined) { + paragraph = { + style: "Error", + text: error + } + key = 'error-paragraph-' + autoGeneratedParagraphIndex + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + } + break + } + case "Chapter": { + renderParagraph(paragraph, key) + editableParagraphIndex++ + let error = addChapterIndex(paragraph.text) + if (error !== undefined) { + paragraph = { + style: "Error", + text: error + } + key = 'error-paragraph-' + autoGeneratedParagraphIndex + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + } + break + } + default: { + renderParagraph(paragraph, key) + editableParagraphIndex++ + } + } + } + } + if (UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.category === 'Node') { + autoGeneratedHtml() + } + HTML = HTML + '
' // Content Ends + + function addIncludedParagraphs(includeText) { + let splittedIncludeText = includeText.split('->') + let project = splittedIncludeText[0] + let category = splittedIncludeText[1] + let type = splittedIncludeText[2] + let block + let definition = false + if (splittedIncludeText[3] === 'Definition') { + definition = true + } else { + block = splittedIncludeText[3] + } + let includedSchemaDocument + + if (SCHEMAS_BY_PROJECT.get(project) === undefined) { + return 'Include paragraph style Syntax Error. The Project ' + project + ' could not be found. Check the Docs Include Style Syntax to learn how to include paragraphs from a different page. This error message will dissapear as soon as you fix the problem.' + } + switch (category) { + case 'Node': { + includedSchemaDocument = SCHEMAS_BY_PROJECT.get(project).map.docsNodeSchema.get(type) + break + } + case 'Concept': { + includedSchemaDocument = SCHEMAS_BY_PROJECT.get(project).map.docsConceptSchema.get(type) + break + } + case 'Topic': { + includedSchemaDocument = SCHEMAS_BY_PROJECT.get(project).map.docsTopicSchema.get(type) + break + } + case 'Tutorial': { + includedSchemaDocument = SCHEMAS_BY_PROJECT.get(project).map.docsTutorialSchema.get(type) + break + } + case 'Book': { + includedSchemaDocument = SCHEMAS_BY_PROJECT.get(project).map.docsBookSchema.get(type) + break + } + default: return 'Category provided (' + category + ') not valid. Use Node, Concept, Topic, Tutorial or Book instead.' + } + if (includedSchemaDocument === undefined) { + return category + ' document ' + type + ' not found at project ' + project + } + if (includedSchemaDocument.paragraphs === undefined) { + return 'Schema Document found, but without paragraphs.' + } + + if (definition === true) { + addDefinitionTable(includedSchemaDocument, 'definition-included-', category, project, type) + } else { + let blockFound = false + for (let i = 0; i < includedSchemaDocument.paragraphs.length; i++) { + + let key = 'included-paragraph-' + autoGeneratedParagraphIndex + let paragraph = includedSchemaDocument.paragraphs[i] + + if (blockFound === false) { + if (paragraph.style === "Block" && paragraph.text === block) { + blockFound = true + } + } else { + if (paragraph.style === "Block") { + return // Expected return without errors + } + if (paragraph.style === "Include") { + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + let error = addIncludedParagraphs(paragraph.text) + if (error !== undefined) { + paragraph = { + style: "Error", + text: error + } + key = 'error-paragraph-' + autoGeneratedParagraphIndex + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + } + } else { + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + } + } + } + if (blockFound === false) { + return 'Block ' + block + ' not found.' + } + } + } + + function addChapterIndex(chapterText) { + let splittedChapterText = chapterText.split('->') + let chapterNumber = splittedChapterText[0] + let project = splittedChapterText[1] + let category = splittedChapterText[2] + let chapterName = splittedChapterText[3] + let introText = splittedChapterText[4] + + + + if (project === undefined || category === undefined || chapterNumber === undefined || chapterName === undefined) { + return 'Chapter paragraph style Syntax Error. Some of the required parameters are undefined. Check the Docs Chapter Style Syntax. This error message will dissapear as soon as you fix the problem.' + } + + if (SCHEMAS_BY_PROJECT.get(project) === undefined) { + return 'Chapter paragraph style Syntax Error. The Project ' + project + ' could not be found. Check the Docs Chapter Style Syntax. This error message will dissapear as soon as you fix the problem.' + } + + if (category !== 'Topic' && category !== 'Tutorial') { + return 'Category must be either Topic or Tutorial. Found: ' + category + '' + } + + switch (category) { + case 'Topic': { + orderedTopicPageIndexArray = UI.projects.superalgos.utilities.docs.buildOrderedPageIndex( + UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project, + 'Topic', + chapterName + ) + + if (orderedTopicPageIndexArray.length === 0) { + return 'Chapter paragraph style Syntax Error. The Topic ' + chapterName + ' could not be found. Check the Docs Chapter Style Syntax. This error message will dissapear as soon as you fix the problem.' + } + break + } + case 'Tutorial': { + orderedTutorialPageIndexArray = UI.projects.superalgos.utilities.docs.buildOrderedPageIndex( + UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project, + 'Tutorial', + chapterName + ) + + if (orderedTutorialPageIndexArray.length === 0) { + return 'Chapter paragraph style Syntax Error. The Tutorial ' + chapterName + ' could not be found. Check the Docs Chapter Style Syntax. This error message will dissapear as soon as you fix the problem.' + } + break + } + } + + HTML = HTML = HTML + '
' // Container for Topic Index + + let key = 'auto-generated-paragraph-' + autoGeneratedParagraphIndex + paragraph = { + style: "Title", + text: 'Chapter ' + chapterNumber + ' - ' + chapterName + } + + HTML = HTML + '

' + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + HTML = HTML + '

' + + if (introText !== undefined) { + let key = 'auto-generated-paragraph-' + autoGeneratedParagraphIndex + paragraph = { + style: "Text", + text: introText + } + HTML = HTML + '

' + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + HTML = HTML + '

' + } + + HTML = HTML + '

Table of Contents

' + + switch (category) { + case 'Topic': { + generateTopicMultiPageIndex() + break + } + case 'Tutorial': { + generateTutorialMultiPageIndex() + break + } + } + + HTML = HTML = HTML + '
' // Container for Topic Index + } + } + + function addImages() { + addProjectImage() + addDefinitionImage() + addHierarchyImages() + + if (UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.category === 'Node') { + addMenuItemsImages() + addChildrenNodesPropertiesImages() + addAttachingAndReferencingRulesImages() + addConfigurationImages() + } + + function addDefinitionImage() { + + for (let i = 0; i < definitionImagesArray.length; i++) { + let imageItem = definitionImagesArray[i] + let appSchemaDocument = SCHEMAS_BY_PROJECT.get(imageItem.project).map.appSchema.get(imageItem.type) + let imageElement + if (appSchemaDocument !== undefined && appSchemaDocument.icon === undefined) { + /* + We are checking this because there is a possibility that a different icon is specified + for this Node Type, in that case we would override the default that is that the icon name is + equal to the Node Type. + */ + let imageName = appSchemaDocument.type.toLowerCase().replaceAll(' ', '-') + imageElement = UI.projects.superalgos.spaces.designSpace.getIconByProjectAndName(imageItem.project, imageName) + if (imageElement === undefined) { + console.log('[WARN] Image for project (' + imageItem.project + ') with name (' + imageName + ') not found. This produces that the Docs Page will be rendered without this icon. ') + continue + } + } else { + if (imageItem.icon === undefined) { + /* This is the default behavious */ + imageElement = UI.projects.superalgos.spaces.designSpace.getIconByProjectAndType(imageItem.project, imageItem.type) + if (imageElement === undefined) { + console.log('[WARN] Image for project (' + imageItem.project + ') with name (' + imageItem.type + ') not found. This produces that the Docs Page will be rendered without this icon. ') + continue + } + } else { + /* Here we take the image from the icon specification */ + imageElement = UI.projects.superalgos.spaces.designSpace.getIconByProjectAndName(imageItem.icon.project, imageItem.icon.name) + if (imageElement === undefined) { + console.log('[WARN] Image for project (' + imageItem.icon.project + ') with name (' + imageItem.icon.name + ') not found. This produces that the Docs Page will be rendered without this icon. ') + continue + } + } + } + + imageElement.width = "150" + imageElement.height = "150" + + let definitionImageDiv = document.getElementById(imageItem.div) + definitionImageDiv.appendChild(imageElement) + } + } + + function addHierarchyImages() { + for (let i = 0; i < hierarchyImagesArray.length; i++) { + let imageItem = hierarchyImagesArray[i] + let collectionImage + + if (imageItem.name === undefined) { + let appSchemaDocument = SCHEMAS_BY_PROJECT.get(imageItem.project).map.appSchema.get(imageItem.type) + if (appSchemaDocument.icon === undefined) { + let imageName = appSchemaDocument.type.toLowerCase().replaceAll(' ', '-') + collectionImage = UI.projects.superalgos.spaces.designSpace.getIconByProjectAndName(imageItem.project, imageName) + if (collectionImage === undefined) { + console.log('[WARN] Image for project (' + imageItem.project + ') with name (' + imageName + ') not found. This produces that the hierarchy will be rendered without this icon. ') + continue + } + } else { + collectionImage = UI.projects.superalgos.spaces.designSpace.getIconByProjectAndType(imageItem.project, imageItem.type) + if (collectionImage === undefined) { + console.log('[WARN] Image for project (' + imageItem.project + ') with type (' + imageItem.type + ') not found. This produces that the hierarchy will be rendered without this icon. ') + continue + } + } + } else { + collectionImage = UI.projects.superalgos.spaces.designSpace.getIconByProjectAndName(imageItem.project, imageItem.name) + if (collectionImage === undefined) { + console.log('[WARN] Image for project (' + imageItem.project + ') with name (' + imageItem.name + ') not found. This produces that the hierarchy will be rendered without this icon. ') + continue + } + } + + let imageElement = collectionImage.cloneNode() + + if (imageItem.size !== undefined) { + imageElement.width = imageItem.size + imageElement.height = imageItem.size + } + + let hierarchyImageDiv = document.getElementById(imageItem.div) + if (hierarchyImageDiv) { // The lower part of the table is filled with spaces that were added to the array but not to the HTML, we can ignore them. + hierarchyImageDiv.appendChild(imageElement) + + } + } + } + + function addProjectImage() { + let imageName = UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project.toLowerCase().replaceAll(' ', '-') + let imageElement = UI.projects.superalgos.spaces.designSpace.getIconByProjectAndName(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project, imageName) + imageElement.width = "50" + imageElement.height = "50" + + let projectImageDiv = document.getElementById('projectImageDiv') + projectImageDiv.appendChild(imageElement) + } + + function addMenuItemsImages() { + if (appSchemaDocument === undefined || appSchemaDocument.menuItems === undefined) { return } + for (let i = 0; i < appSchemaDocument.menuItems.length; i++) { + let menuItem = appSchemaDocument.menuItems[i] + let collectionImage = getIcon() + let imageElement = collectionImage.cloneNode() + + imageElement.className = "docs-collapsible-image" + + let parentElement = document.getElementById('docs-menu-item-' + i + '') + let dummyImage = parentElement.childNodes[0] + parentElement.replaceChild(imageElement, dummyImage) + + function getIcon() { + if (menuItem.relatedUiObject !== undefined) { + return UI.projects.superalgos.spaces.designSpace.getIconByProjectAndType(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project, menuItem.relatedUiObject) + } else { + if (menuItem.iconPathOn !== undefined) { + return UI.projects.superalgos.spaces.designSpace.getIconByProjectAndName(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project, menuItem.iconPathOn) + } else { + return UI.projects.superalgos.spaces.designSpace.getIconByProjectAndName('Superalgos', 'bitcoin') + } + } + } + } + } + + function addChildrenNodesPropertiesImages() { + if (appSchemaDocument === undefined || appSchemaDocument.childrenNodesProperties === undefined) { return } + for (let i = 0; i < appSchemaDocument.childrenNodesProperties.length; i++) { + let childrenNodesProperty = appSchemaDocument.childrenNodesProperties[i] + let collectionImage = getIcon() + let imageElement = collectionImage.cloneNode() + + imageElement.className = "docs-collapsible-image" + + let parentElement = document.getElementById('docs-children-nodes-property-' + i + '') + let dummyImage = parentElement.childNodes[0] + parentElement.replaceChild(imageElement, dummyImage) + + function getIcon() { + if (childrenNodesProperty.project !== undefined) { + return UI.projects.superalgos.spaces.designSpace.getIconByProjectAndType(childrenNodesProperty.project, childrenNodesProperty.childType) + } else { + return UI.projects.superalgos.spaces.designSpace.getIconByProjectAndType(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project, childrenNodesProperty.childType) + } + } + } + } + + function addAttachingAndReferencingRulesImages() { + if (appSchemaDocument === undefined) { return } + + if (appSchemaDocument.attachingRules !== undefined) { + if (appSchemaDocument.attachingRules.compatibleTypes !== undefined) { + let splittedTypes = appSchemaDocument.attachingRules.compatibleTypes.split('->') + imageForTheseNodes(splittedTypes, 'attaching-rules-compatible-types') + } + if (appSchemaDocument.attachingRules.incompatibleTypes !== undefined) { + let splittedTypes = appSchemaDocument.attachingRules.incompatibleTypes.split('->') + imageForTheseNodes(splittedTypes, 'attaching-rules-incompatible-types') + } + } + if (appSchemaDocument.referencingRules !== undefined) { + if (appSchemaDocument.referencingRules.compatibleTypes !== undefined) { + let splittedTypes = appSchemaDocument.referencingRules.compatibleTypes.split('->') + imageForTheseNodes(splittedTypes, 'referencing-rules-compatible-types') + } + if (appSchemaDocument.referencingRules.incompatibleTypes !== undefined) { + let splittedTypes = appSchemaDocument.referencingRules.incompatibleTypes.split('->') + imageForTheseNodes(splittedTypes, 'referencing-rules-incompatible-types') + } + } + + function imageForTheseNodes(nodeList, additionToKey) { + for (let i = 0; i < nodeList.length; i++) { + let listItem = nodeList[i] + if (listItem === "") { continue } + + let collectionImage = getIcon() + if (collectionImage === undefined) { continue } + let imageElement = collectionImage.cloneNode() + + imageElement.className = "docs-collapsible-image" + + let parentElement = document.getElementById('docs-' + additionToKey + '-' + i + '') + let dummyImage = parentElement.childNodes[0] + parentElement.replaceChild(imageElement, dummyImage) + + function getIcon() { + let splittedListItem = listItem.split('|') + if (splittedListItem.length === 1) { + return UI.projects.superalgos.spaces.designSpace.getIconByProjectAndType(UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.project, listItem) + } else { + let project = splittedListItem[0] + let nodeType = splittedListItem[1] + return UI.projects.superalgos.spaces.designSpace.getIconByProjectAndType(project, nodeType) + } + } + } + } + } + + function addConfigurationImages() { + if (appSchemaDocument === undefined) { return } + let configImageElementArray = document.getElementsByClassName('docs-configuration-property-image') + if (configImageElementArray === undefined) { return } + + /* + We need to create our own array otherwise while replacing the childElement + we will be shrinking the array. + */ + let imageArray = [] + for (let i = 0; i < configImageElementArray.length; i++) { + let dummyImage = configImageElementArray[i] + imageArray.push(dummyImage) + } + for (let i = 0; i < imageArray.length; i++) { + let dummyImage = imageArray[i] + let parentElement = dummyImage.parentNode + let collectionImage = UI.projects.superalgos.spaces.designSpace.getIconByProjectAndName('Superalgos', 'configuration') + let imageElement = collectionImage.cloneNode() + + imageElement.className = "docs-collapsible-image" + parentElement.replaceChild(imageElement, dummyImage) + } + } + } + + function autoGeneratedHtml() { + generateConfiguration() + generateMenuItems() + generateChildrenNodesProperties() + generateAttachingRules() + generateReferencingRules() + generateCode() + generateFormula() + + function generateMenuItems() { + /* + Menu Items + */ + let paragraph + let key = 'auto-generated-paragraph-' + autoGeneratedParagraphIndex + if (appSchemaDocument === undefined || appSchemaDocument.menuItems === undefined || appSchemaDocument.menuItems.length === 0) { return } + + paragraph = { + style: "Title", + text: "" + appSchemaDocument.type + " Menu" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + paragraph = { + style: "Text", + text: "The " + appSchemaDocument.type + " node has the following Node Menu items:" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + for (let i = 0; i < appSchemaDocument.menuItems.length; i++) { + let menuItem = appSchemaDocument.menuItems[i] + + HTML = HTML + '' + HTML = HTML + '
' + + paragraph = { + style: "Text", + text: 'The ' + menuItem.label + ' menu item has the following properties:' + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + + for (const property in menuItem) { + paragraph = { + style: "List", + text: property + ": " + menuItem[property] + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + } + + HTML = HTML + '
' + } + paragraph = { + style: "Success", + text: "When any of the menu items is grayed out, it means that " + appSchemaDocument.type + " already has the type of children that that menu item can add, and that only one children is possible in that case. " + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + } + + function generateChildrenNodesProperties() { + /* + Children Nodes Properties + */ + let paragraph + let key = 'auto-generated-paragraph-' + autoGeneratedParagraphIndex + + if (appSchemaDocument === undefined || appSchemaDocument.childrenNodesProperties === undefined || appSchemaDocument.childrenNodesProperties.length === 0) { return } + + paragraph = { + style: "Title", + text: "" + appSchemaDocument.type + " Children" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + paragraph = { + style: "Text", + text: "The " + appSchemaDocument.type + " node has the following childrenNodesProperties which hold the Node Children at runtime:" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + for (let i = 0; i < appSchemaDocument.childrenNodesProperties.length; i++) { + let childrenNodesProperty = appSchemaDocument.childrenNodesProperties[i] + + let name = UI.projects.superalgos.utilities.strings.fromCamelCaseToUpperWithSpaces(childrenNodesProperty.name) + + HTML = HTML + '' + HTML = HTML + '
' + + paragraph = { + style: "Text", + text: 'The ' + name + ' children node property has in turn the following properties:' + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + + for (const property in childrenNodesProperty) { + paragraph = { + style: "List", + text: property + ": " + childrenNodesProperty[property] + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + } + + HTML = HTML + '
' + } + } + + function generateAttachingRules() { + /* + Attaching Rules + */ + let paragraph + let key = 'auto-generated-paragraph-' + autoGeneratedParagraphIndex + if (appSchemaDocument === undefined || (appSchemaDocument.attachingRules === undefined && appSchemaDocument.referencingRules === undefined)) { return } + + paragraph = { + style: "Title", + text: "" + appSchemaDocument.type + " Attaching Rules" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + paragraph = { + style: "Text", + text: "The following are Node Attaching Rules that govern the attacment of " + appSchemaDocument.type + " with other nodes:" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + + if (appSchemaDocument.attachingRules !== undefined) { + if (appSchemaDocument.attachingRules.compatibleTypes !== undefined) { + paragraph = { + style: "Subtitle", + text: "Compatible Types:" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + + let splittedTypes = appSchemaDocument.attachingRules.compatibleTypes.split('->') + listAllTheseNodes(splittedTypes, 'attaching-rules-compatible-types') + } + if (appSchemaDocument.attachingRules.incompatibleTypes !== undefined) { + paragraph = { + style: "Subtitle", + text: "Incompatible Types:" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + + let splittedTypes = appSchemaDocument.attachingRules.incompatibleTypes.split('->') + listAllTheseNodes(splittedTypes, 'attaching-rules-incompatible-types') + } + } + + function listAllTheseNodes(nodeList, additionToKey) { + for (let i = 0; i < nodeList.length; i++) { + let listItem = nodeList[i] + if (listItem === "") { continue } + HTML = HTML + '' + } + } + } + + function generateReferencingRules() { + /* + Referencing Rules + */ + let paragraph + let key = 'auto-generated-paragraph-' + autoGeneratedParagraphIndex + if (appSchemaDocument === undefined || (appSchemaDocument.referencingRules === undefined && appSchemaDocument.referencingRules === undefined)) { return } + + paragraph = { + style: "Title", + text: "" + appSchemaDocument.type + " Referencing Rules" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + paragraph = { + style: "Text", + text: "The following are Node Referencing Rules that govern to which nodes " + appSchemaDocument.type + " can stablish a reference:" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + + if (appSchemaDocument.referencingRules !== undefined) { + if (appSchemaDocument.referencingRules.compatibleTypes !== undefined) { + paragraph = { + style: "Subtitle", + text: "Compatible Types:" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + + let splittedTypes = appSchemaDocument.referencingRules.compatibleTypes.split('->') + listAllTheseNodes(splittedTypes, 'referencing-rules-compatible-types') + } + if (appSchemaDocument.referencingRules.incompatibleTypes !== undefined) { + paragraph = { + style: "Subtitle", + text: "Incompatible Types:" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + + let splittedTypes = appSchemaDocument.referencingRules.incompatibleTypes.split('->') + listAllTheseNodes(splittedTypes, 'referencing-rules-incompatible-types') + } + } + + function listAllTheseNodes(nodeList, additionToKey) { + for (let i = 0; i < nodeList.length; i++) { + let listItem = nodeList[i] + if (listItem === "") { continue } + HTML = HTML + '' + } + } + } + + function generateConfiguration() { + /* + Configuration + */ + let paragraph + let key = 'auto-generated-paragraph-' + autoGeneratedParagraphIndex + if (appSchemaDocument === undefined || appSchemaDocument.editors === undefined || appSchemaDocument.editors.config !== true) { return } + paragraph = { + style: "Subtitle", + text: "Initial Values" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + + if (appSchemaDocument.initialValues === undefined || appSchemaDocument.initialValues.config === undefined) { return } + + paragraph = { + style: "Text", + text: "The Initial Values for " + appSchemaDocument.type + "'s Config are:" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + let initialValues = JSON.parse(appSchemaDocument.initialValues.config) + paragraph = { + style: "Json", + text: JSON.stringify(initialValues, undefined, 4) + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + + paragraph = { + style: "Subtitle", + text: "Examples" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + paragraph = { + style: "Text", + text: "This is a list of properties used at the " + appSchemaDocument.type + " configuration. Expanding a property shows you sample values for that property taken from the current Workspace." + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + /* + Here we will scan the whole workspace, first looking for nodes of the same type, + and after that, analysing their configuration in order to extract all the properties + they are using and sample values for each one. + */ + /* First Step: get an array of all the nodes in the workspace of this type */ + let rootNodes = UI.projects.superalgos.spaces.designSpace.workspace.workspaceNode.rootNodes + let allNodesFound = [] + for (let i = 0; i < rootNodes.length; i++) { + let rootNode = rootNodes[i] + if (rootNode !== null) { + let nodeArray = UI.projects.superalgos.utilities.branches.nodeBranchToArray(rootNode, appSchemaDocument.type) + allNodesFound = allNodesFound.concat(nodeArray) + } + } + /* Second Step: create a map with all the properties used in configurations of this node type */ + let propertyMap = new Map() + for (let i = 0; i < allNodesFound.length; i++) { + let node = allNodesFound[i] + let config = JSON.parse(node.config) + for (const property in config) { + let value = JSON.stringify(config[property], undefined, 4) + let valueArray = propertyMap.get(property) + if (valueArray === undefined) { + propertyMap.set(property, [value]) + } else { + if (valueArray.includes(value) === false) { + if (valueArray.length <= 10) { + valueArray.push(value) + } + } + } + } + } + /* Third Step: we will display the list of properties and the sample values */ + propertyMap.forEach(displayProperty) + function displayProperty(valueArray, mapKey, map) { + + let name = UI.projects.superalgos.utilities.strings.fromCamelCaseToUpperWithSpaces(mapKey) + + HTML = HTML + '' + HTML = HTML + '
' + + for (let i = 0; i < valueArray.length; i++) { + let value = valueArray[i] + + paragraph = { + style: "Json", + text: value + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + } + + HTML = HTML + '
' + } + } + + function generateCode() { + /* + Code + */ + let paragraph + let key = 'auto-generated-paragraph-' + autoGeneratedParagraphIndex + if (appSchemaDocument === undefined || appSchemaDocument.editors === undefined || appSchemaDocument.editors.code !== true) { return } + paragraph = { + style: "Title", + text: "" + appSchemaDocument.type + " Code" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + paragraph = { + style: "Text", + text: "In this section we will explore " + appSchemaDocument.type + " Node Code." + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + + if (appSchemaDocument.initialValues === undefined || appSchemaDocument.initialValues.code === undefined) { return } + + paragraph = { + style: "Subtitle", + text: "Initial Value" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + paragraph = { + style: "Text", + text: "The initial value for " + appSchemaDocument.type + "'s Code is:" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + + paragraph = { + style: "Javascript", + text: JSON.stringify(appSchemaDocument.initialValues.code, undefined, 4) + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + + paragraph = { + style: "Subtitle", + text: "Examples" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + paragraph = { + style: "Text", + text: "This is a list of examples used at the " + appSchemaDocument.type + " code collected from this workspace." + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + /* + Here we will scan the whole workspace, first looking for nodes of the same type, + and after that, analysing their code in order to extract examples to show. + */ + /* First Step: get an array of all the nodes in the workspace of this type */ + let rootNodes = UI.projects.superalgos.spaces.designSpace.workspace.workspaceNode.rootNodes + let allNodesFound = [] + for (let i = 0; i < rootNodes.length; i++) { + let rootNode = rootNodes[i] + if (rootNode !== null) { + let nodeArray = UI.projects.superalgos.utilities.branches.nodeBranchToArray(rootNode, appSchemaDocument.type) + allNodesFound = allNodesFound.concat(nodeArray) + } + } + /* + Second Step: create a map with all the code examples used at this node type, + without repeating them. + */ + let codeMap = new Map() + for (let i = 0; i < allNodesFound.length; i++) { + let node = allNodesFound[i] + codeMap.set(node.code, node.code) + } + /* Third Step: we will display the list of properties and the sample values */ + let exampleCounter = 1 + codeMap.forEach(displayProperty) + function displayProperty(code, mapKey, map) { + if (exampleCounter > 10) { return } + HTML = HTML + '' + HTML = HTML + '
' + exampleCounter++ + paragraph = { + style: "Javascript", + text: code + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + + HTML = HTML + '
' + } + } + + function generateFormula() { + /* + Formula + */ + let paragraph + let key = 'auto-generated-paragraph-' + autoGeneratedParagraphIndex + if (appSchemaDocument === undefined || appSchemaDocument.editors === undefined || appSchemaDocument.editors.formula !== true) { return } + paragraph = { + style: "Title", + text: "" + appSchemaDocument.type + " Formula" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + paragraph = { + style: "Text", + text: "In this section we will explore " + appSchemaDocument.type + " Node Code." + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + + if (appSchemaDocument.initialValues === undefined || appSchemaDocument.initialValues.code === undefined) { return } + + paragraph = { + style: "Subtitle", + text: "Initial Value" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + paragraph = { + style: "Text", + text: "The initial value for " + appSchemaDocument.type + " is:" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + + paragraph = { + style: "Javascript", + text: JSON.stringify(appSchemaDocument.initialValues.code, undefined, 4) + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + + paragraph = { + style: "Subtitle", + text: "Examples" + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + paragraph = { + style: "Text", + text: "This is a list of examples used at the " + appSchemaDocument.type + " code collected from this workspace." + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + /* + Here we will scan the whole workspace, first looking for nodes of the same type, + and after that, analysing their code in order to extract examples to show. + */ + /* First Step: get an array of all the nodes in the workspace of this type */ + let rootNodes = UI.projects.superalgos.spaces.designSpace.workspace.workspaceNode.rootNodes + let allNodesFound = [] + for (let i = 0; i < rootNodes.length; i++) { + let rootNode = rootNodes[i] + if (rootNode !== null) { + let nodeArray = UI.projects.superalgos.utilities.branches.nodeBranchToArray(rootNode, appSchemaDocument.type) + allNodesFound = allNodesFound.concat(nodeArray) + } + } + /* + Second Step: create a map with all the code examples used at this node type, + without repeating them. + */ + let codeMap = new Map() + for (let i = 0; i < allNodesFound.length; i++) { + let node = allNodesFound[i] + codeMap.set(node.code, node.code) + } + /* Third Step: we will display the list of properties and the sample values */ + let exampleCounter = 1 + codeMap.forEach(displayProperty) + function displayProperty(code, mapKey, map) { + if (exampleCounter > 10) { return } + HTML = HTML + '' + HTML = HTML + '
' + exampleCounter++ + paragraph = { + style: "Javascript", + text: code + } + renderParagraph(paragraph, key) + autoGeneratedParagraphIndex++ + + HTML = HTML + '
' + } + } + } + + function renderParagraph(paragraph, key) { + let innerHTML + let styleClass = '' + let prefix = '' + let sufix = '' + let role = '' + + switch (paragraph.style) { + case 'Text': { + styleClass = '' + prefix = '' + role = '' + key = key + '-text' + innerHTML = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + innerHTML = UI.projects.superalgos.utilities.docs.addCodeToCamelCase(innerHTML) + innerHTML = UI.projects.superalgos.utilities.docs.addCodeToWhiteList(innerHTML) + innerHTML = UI.projects.superalgos.utilities.docs.addKeyboard(innerHTML) + innerHTML = UI.projects.superalgos.utilities.docs.addItalics(innerHTML) + innerHTML = UI.projects.superalgos.utilities.docs.addToolTips(innerHTML, UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type) + innerHTML = innerHTML + UI.projects.superalgos.utilities.docs.addWarningIfTranslationIsOutdated(paragraph) + break + } + case 'Title': { + styleClass = 'class="docs-h3"' + prefix = '' + role = '' + key = key + '-title' + innerHTML = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + innerHTML = innerHTML + UI.projects.superalgos.utilities.docs.addWarningIfTranslationIsOutdated(paragraph) + break + } + case 'Subtitle': { + styleClass = 'class="docs-h4"' + prefix = '' + role = '' + key = key + '-subtitle' + innerHTML = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + innerHTML = innerHTML + UI.projects.superalgos.utilities.docs.addWarningIfTranslationIsOutdated(paragraph) + break + } + case 'Note': { + styleClass = 'class="docs-font-small docs-alert-note"' + prefix = ' Note:' + role = 'role="alert"' + key = key + '-note' + innerHTML = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + innerHTML = UI.projects.superalgos.utilities.docs.addKeyboard(innerHTML) + innerHTML = UI.projects.superalgos.utilities.docs.addItalics(innerHTML) + innerHTML = UI.projects.superalgos.utilities.docs.addToolTips(innerHTML, UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type) + innerHTML = innerHTML + UI.projects.superalgos.utilities.docs.addWarningIfTranslationIsOutdated(paragraph) + break + } + case 'Success': { + styleClass = 'class="docs-font-small docs-alert-success"' + prefix = ' Tip:' + role = 'role="alert"' + key = key + '-success' + innerHTML = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + innerHTML = UI.projects.superalgos.utilities.docs.addKeyboard(innerHTML) + innerHTML = UI.projects.superalgos.utilities.docs.addItalics(innerHTML) + innerHTML = UI.projects.superalgos.utilities.docs.addToolTips(innerHTML, UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type) + innerHTML = innerHTML + UI.projects.superalgos.utilities.docs.addWarningIfTranslationIsOutdated(paragraph) + break + } + case 'Important': { + styleClass = 'class="docs-font-small docs-alert-important"' + prefix = ' Important:' + role = 'role="alert"' + key = key + '-important' + innerHTML = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + innerHTML = UI.projects.superalgos.utilities.docs.addKeyboard(innerHTML) + innerHTML = UI.projects.superalgos.utilities.docs.addItalics(innerHTML) + innerHTML = UI.projects.superalgos.utilities.docs.addToolTips(innerHTML, UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type) + innerHTML = innerHTML + UI.projects.superalgos.utilities.docs.addWarningIfTranslationIsOutdated(paragraph) + break + } + case 'Warning': { + styleClass = 'class="docs-font-small docs-alert-warning"' + prefix = ' Warning:' + role = 'role="alert"' + key = key + '-warning' + innerHTML = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + innerHTML = UI.projects.superalgos.utilities.docs.addKeyboard(innerHTML) + innerHTML = UI.projects.superalgos.utilities.docs.addItalics(innerHTML) + innerHTML = UI.projects.superalgos.utilities.docs.addToolTips(innerHTML, UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type) + innerHTML = innerHTML + UI.projects.superalgos.utilities.docs.addWarningIfTranslationIsOutdated(paragraph) + break + } + case 'Error': { + styleClass = 'class="docs-font-small docs-alert-error"' + prefix = ' Error:' + role = 'role="alert"' + key = key + '-error' + innerHTML = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + innerHTML = UI.projects.superalgos.utilities.docs.addToolTips(innerHTML, UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type) + innerHTML = innerHTML + UI.projects.superalgos.utilities.docs.addWarningIfTranslationIsOutdated(paragraph) + break + } + case 'Callout': { + styleClass = 'class="docs-font-small docs-callout"' + prefix = '' + role = '' + key = key + '-callout' + innerHTML = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + innerHTML = UI.projects.superalgos.utilities.docs.addKeyboard(innerHTML) + innerHTML = UI.projects.superalgos.utilities.docs.addItalics(innerHTML) + innerHTML = UI.projects.superalgos.utilities.docs.addToolTips(innerHTML, UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type) + innerHTML = innerHTML + UI.projects.superalgos.utilities.docs.addWarningIfTranslationIsOutdated(paragraph) + break + } + case 'Summary': { + styleClass = 'class="docs-font-small docs-summary"' + prefix = 'Summary:' + role = '' + key = key + '-summary' + innerHTML = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + innerHTML = UI.projects.superalgos.utilities.docs.addKeyboard(innerHTML) + innerHTML = UI.projects.superalgos.utilities.docs.addItalics(innerHTML) + innerHTML = UI.projects.superalgos.utilities.docs.addToolTips(innerHTML, UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type) + innerHTML = innerHTML + UI.projects.superalgos.utilities.docs.addWarningIfTranslationIsOutdated(paragraph) + break + } + case 'Section': { + styleClass = 'class="docs-section"' + prefix = '' + role = '' + key = key + '-section' + innerHTML = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + innerHTML = UI.projects.superalgos.utilities.docs.addToolTips(innerHTML, UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type) + innerHTML = innerHTML + UI.projects.superalgos.utilities.docs.addWarningIfTranslationIsOutdated(paragraph) + break + } + case 'List': { + styleClass = '' + prefix = '
  • ' + sufix = '
' + role = '' + key = key + '-list' + innerHTML = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + innerHTML = UI.projects.superalgos.utilities.docs.addCodeToCamelCase(innerHTML) + innerHTML = UI.projects.superalgos.utilities.docs.addBold(innerHTML) + innerHTML = UI.projects.superalgos.utilities.docs.addKeyboard(innerHTML) + innerHTML = UI.projects.superalgos.utilities.docs.addItalics(innerHTML) + innerHTML = UI.projects.superalgos.utilities.docs.addToolTips(innerHTML, UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type) + innerHTML = innerHTML + UI.projects.superalgos.utilities.docs.addWarningIfTranslationIsOutdated(paragraph) + break + } + case 'Table': { + styleClass = '' + prefix = '' + sufix = '
' + UI.projects.superalgos.utilities.docs.addWarningIfTranslationIsOutdated(paragraph) + role = '' + key = key + '-table' + innerHTML = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + innerHTML = UI.projects.superalgos.utilities.docs.addToolTips(innerHTML, UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type) + innerHTML = UI.projects.superalgos.utilities.docs.parseTable(innerHTML) + innerHTML = UI.projects.superalgos.utilities.docs.addItalics(innerHTML) + break + } + case 'Hierarchy': { + styleClass = '' + prefix = '' + sufix = '
' + role = '' + key = key + '-hierarchy' + innerHTML = parseHierarchy(paragraph.text) + break + } + case 'Link': { + styleClass = '' + prefix = '' + sufix = '' + role = '' + key = key + '-link' + innerHTML = UI.projects.superalgos.utilities.docs.parseLink(paragraph.text) + break + } + case 'Youtube': { + styleClass = '' + prefix = '' + sufix = '' + role = '' + key = key + '-youtube' + innerHTML = UI.projects.superalgos.utilities.docs.UI.projects.superalgos.utilities.docs.parseYoutube(paragraph.text) + break + } + case 'Gif': { + styleClass = '' + prefix = '' + sufix = '' + role = '' + key = key + '-gif' + innerHTML = UI.projects.superalgos.utilities.docs.parseGIF(paragraph.text) + break + } + case 'Png': { + styleClass = '' + prefix = '' + sufix = '' + role = '' + key = key + '-png' + innerHTML = UI.projects.superalgos.utilities.docs.parsePNG(paragraph.text) + break + } + case 'Javascript': { + styleClass = '' + prefix = '
'
+                        sufix = '
' + role = '' + key = key + '-javascript' + innerHTML = paragraph.text + break + } + case 'Json': { + styleClass = '' + prefix = '
'
+                        sufix = '
' + role = '' + key = key + '-json' + innerHTML = paragraph.text + break + } + case 'Anchor': { + styleClass = 'class="docs-hidden-anchor"' + prefix = '
' + sufix = '
' + role = '' + key = key + '-anchor' + innerHTML = paragraph.text + break + } + case 'Block': { + styleClass = 'class="docs-hidden-block"' + prefix = '' + role = '' + key = key + '-block' + innerHTML = paragraph.text + break + } + case 'Include': { + styleClass = 'class="docs-hidden-include"' + prefix = '' + role = '' + key = key + '-include' + innerHTML = paragraph.text + break + } + case 'Chapter': { + styleClass = 'class="docs-chapter"' + prefix = '' + role = '' + key = key + '-chapter' + innerHTML = paragraph.text + break + } + } + + HTML = HTML + '

' + prefix + ' ' + innerHTML + sufix + '

' + UI.projects.superalgos.spaces.docsSpace.paragraphMap.set(key, paragraph) + } + + function hightlightEmbeddedCode() { + _self.Prism.highlightAllUnder(docsContentDiv, true) + } + + function parseHierarchy(params) { + + const MAX_COLUMNS = 8 + const MAX_ROWS = 100 + + const ELBOW = 'elbow' + const FORK = 'fork' + const LINE = 'line' + const SPACE = 'space' + + let splittedParams = params.split('->') + let project = splittedParams[0] + let type = splittedParams[1] + let levels = splittedParams[2] + + appSchemaDocument = SCHEMAS_BY_PROJECT.get(project).map.appSchema.get(type) + if (appSchemaDocument === undefined) { return } + if (isNaN(levels) === true) { return } + if (levels > MAX_COLUMNS) { return } + + let contentMatrix = [] + + for (let i = 0; i < MAX_ROWS; i++) { + contentMatrix.push(['', '', '', '', '', '', '', '']) + } + + let currentColumn = 0 + let currentRow = -1 + + scanHierarchy(appSchemaDocument, project, currentColumn) + fillEmptySpaces() + putTheLines() + addImageContainers() + + let HTML = '' + addHTML() + return HTML + + function scanHierarchy(schemaDocument, project, currentColumn, lastChild) { + + if (schemaDocument === undefined) { return } + + currentRow++ + + let imageItem = { + div: 'hierarchy-image-div-' + hierarchyImagesArray.length, + project: project, + type: schemaDocument.type, + size: 50 + } + let imageContainer = '
' + hierarchyImagesArray.push(imageItem) + + let matrixValue = '
' + imageContainer + '
' + UI.projects.superalgos.utilities.docs.addToolTips(schemaDocument.type, UI.projects.superalgos.spaces.docsSpace.currentDocumentBeingRendered.type) + '
' + let matrixRow = contentMatrix[currentRow] + matrixRow[currentColumn] = matrixValue + + if (lastChild === true) { + matrixRow[currentColumn - 1] = ELBOW + } + if (lastChild === false) { + matrixRow[currentColumn - 1] = FORK + } + + if (schemaDocument.childrenNodesProperties === undefined) { return } + + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] + let childProject = project + if (property.project !== undefined) { + childProject = property.project + } + let childType = property.childType + let childSchemaDocument = SCHEMAS_BY_PROJECT.get(project).map.appSchema.get(childType) + + if (i === schemaDocument.childrenNodesProperties.length - 1) { + lastChild = true + } else { + lastChild = false + } + + if (currentColumn + 1 < levels) { + scanHierarchy(childSchemaDocument, childProject, currentColumn + 1, lastChild) + } + } + } + + function fillEmptySpaces() { + /* + Fill the empty spaces + */ + for (let i = 0; i < contentMatrix.length; i++) { + let matrixRow = contentMatrix[i] + for (let j = 0; j < matrixRow.length; j++) { + if (matrixRow[j] === '') { + matrixRow[j] = SPACE + } + } + } + } + + function putTheLines() { + /* + Now we will scan the Matrix to put the lines of the hirierchy. + */ + for (let i = 0; i < contentMatrix.length; i++) { + let matrixRow = contentMatrix[i] + let previousRow = contentMatrix[i - 1] + for (let j = 0; j < matrixRow.length; j++) { + if (previousRow && matrixRow[j] === SPACE) { + if (previousRow[j] === FORK || previousRow[j] === LINE) { + matrixRow[j] = LINE + } + } + } + } + } + + function addImageContainers() { + /* + Add Image Conatiners + */ + for (let i = 0; i < contentMatrix.length; i++) { + let matrixRow = contentMatrix[i] + for (let j = 0; j < matrixRow.length; j++) { + + let imageItem = { + div: 'hierarchy-image-div-' + hierarchyImagesArray.length, + project: 'Superalgos' + } + + switch (matrixRow[j]) { + case LINE: { + imageItem.name = 'tree-connector-line' + matrixRow[j] = '
' + hierarchyImagesArray.push(imageItem) + break + } + case SPACE: { + imageItem.name = 'tree-spacer' + matrixRow[j] = '
' + hierarchyImagesArray.push(imageItem) + break + } + case FORK: { + imageItem.name = 'tree-connector-fork' + matrixRow[j] = '
' + hierarchyImagesArray.push(imageItem) + break + } + case ELBOW: { + imageItem.name = 'tree-connector-elbow' + matrixRow[j] = '
' + hierarchyImagesArray.push(imageItem) + break + } + } + + } + } + } + + function addHTML() { + /* + Add HTML + */ + let oddRow = false + for (let i = 0; i < currentRow + 1; i++) { + let matrixRow = contentMatrix[i] + + let rowClass + if (oddRow === false) { + oddRow = true + rowClass = '' + } else { + oddRow = false + rowClass = 'class="docs-hierarchy-table-row"' + } + + HTML = HTML + '
' + HTML = HTML + matrixRow[j] + HTML = HTML + '
' - html = html + '' - html = html + '' - html = html + '' - html = html + '' - html = html + '
' - if (nodeConfig.image !== undefined && nodeConfig.image !== '') { - html = html + '
' - newImageName = nodeConfig.image - } - html = html + '
' - html = html + '' + addToolTips(nodeConfig.definition) + '' - html = html + '
' - } - if (nodeConfig.bulletListIntro !== undefined && nodeConfig.bulletListIntro !== '') { - html = html + '
' + addToolTips(nodeConfig.bulletListIntro) + '
' - } - if (nodeConfig.bulletArray !== undefined) { - html = html + '
    ' - for (let i = 0; i < nodeConfig.bulletArray.length; i++) { - let bullet = nodeConfig.bulletArray[i] - html = html + '
  • ' - html = html + '
    ' + addToolTips(bullet[0]) + ' ' + addToolTips(bullet[1]) + '
    ' - html = html + '
  • ' - } - html = html + '
' - } - if (nodeConfig.paragraph1 !== undefined && nodeConfig.paragraph1 !== '') { - html = html + '
' + addToolTips(nodeConfig.paragraph1) + '
' - } - if (nodeConfig.callOut !== undefined && nodeConfig.callOut !== '') { - html = html + '
' + addToolTips(nodeConfig.callOut) + '' - if (nodeConfig.externalLink !== undefined) { - html = html + '' + nodeConfig.externalLink[0] + '' - } - html = html + '
' - } - if (nodeConfig.paragraph2 !== undefined && nodeConfig.paragraph2 !== '') { - html = html + '
' + addToolTips(nodeConfig.paragraph2) + '
' - } - if (nodeConfig.note !== undefined && nodeConfig.note !== '') { - html = html + '' - } - if (nodeConfig.tip !== undefined && nodeConfig.tip !== '') { - html = html + '' - } - if (nodeConfig.important !== undefined && nodeConfig.important !== '') { - html = html + '' - } - if (nodeConfig.warning !== undefined && nodeConfig.warning !== '') { - html = html + '' - } - html = html + '' + transformDocsInfoIntoTutorialInfo() + createTheHTML() - tutorialDiv.innerHTML = html + UI.projects.superalgos.spaces.docsSpace.navigateTo(nodeConfig.docs.project, 'Tutorial', nodeConfig.docs.type) - function addToolTips(text) { - const TOOL_TIP_HTML = '
NODE_TYPENODE_DEFINITION
' - let resultingText = '' - let splittedText = text.split('->') - - for (let i = 0; i < splittedText.length; i = i + 2) { - let firstPart = splittedText[i] - let nodeType = splittedText[i + 1] - if (nodeType === undefined) { - return resultingText + firstPart + function transformDocsInfoIntoTutorialInfo() { + if (schemaDocument === undefined) { + title = "Configuration Error" + schemaDocument = { + paragraphs: [ + { + style: "Warning", + text: "The configured Docs reference does not point to any page. Correct that to see here the page contents." + } + ] } - let splittedNodeType = nodeType.split('/') - let project - let type - if (splittedNodeType.length > 1) { - project = splittedNodeType[0] - type = splittedNodeType[1] - } else { - project = 'Superalgos' - type = splittedNodeType[0] + return + } + + let splittedType = nodeConfig.docs.type.split(' - ') + title = splittedType[1] + } + + function createTheHTML() { + let fullscreenMode = false + let html = '' + + /* Check for Full Screen Mode */ + for (let i = 0; i < schemaDocument.paragraphs.length; i++) { + let paragraph = schemaDocument.paragraphs[i] + if (paragraph.style === 'Gif') { + fullscreenMode = true } - let definitionNode = SCHEMAS_BY_PROJECT.get(project).map.docSchema.get(type) - if (definitionNode === undefined) { - definitionNode = SCHEMAS_BY_PROJECT.get(project).map.conceptSchema.get(type) - if (definitionNode === undefined) { - currentNode.payload.uiObject.setErrorMessage(type + ' not found at Doc Schema or Concept Schema.') - return + } + if (schemaDocument.definition !== undefined && schemaDocument.definition.text !== '') { + if (schemaDocument.definition.text.indexOf('full screen mode') >= 0) { + fullscreenMode = true + } + } + + if (fullscreenMode === false) { + html = html + '

' + title + '

' + } + + html = html + '
' + + if (schemaDocument.definition !== undefined && schemaDocument.definition.text !== '') { + if (fullscreenMode === false) { + if (schemaDocument.definition.icon === undefined || schemaDocument.definition.icon.name === '') { + /* When there is no image, we will render a Summary instead of a Table */ + let text = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(schemaDocument.definition) + text = UI.projects.superalgos.utilities.docs.addKeyboard(text) + text = UI.projects.superalgos.utilities.docs.addCodeToCamelCase(text) + text = UI.projects.superalgos.utilities.docs.addCodeToWhiteList(text) + text = UI.projects.superalgos.utilities.docs.addToolTips(text) + html = html + '
' + text + '
' + } else { + html = html + '' + html = html + '' + html = html + '' + html = html + '' + html = html + '' + html = html + '
' + if (schemaDocument.definition.icon !== undefined && schemaDocument.definition.icon.name !== '') { + html = html + '
' + newImageName = schemaDocument.definition.icon.name + newImageProject = schemaDocument.definition.icon.project + } + html = html + '
' + + let text = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(schemaDocument.definition) + text = UI.projects.superalgos.utilities.docs.addKeyboard(text) + text = UI.projects.superalgos.utilities.docs.addCodeToCamelCase(text) + text = UI.projects.superalgos.utilities.docs.addCodeToWhiteList(text) + text = UI.projects.superalgos.utilities.docs.addToolTips(text) + + html = html + '' + text + '' + html = html + '
' } } - let definition = definitionNode.definition - if (definition === undefined || definition === "") { - resultingText = resultingText + firstPart + type - } else { - let tooltip = TOOL_TIP_HTML.replace('NODE_TYPE', type).replace('NODE_DEFINITION', definition) - resultingText = resultingText + firstPart + tooltip + } + + for (let i = 0; i < schemaDocument.paragraphs.length; i++) { + let paragraph = schemaDocument.paragraphs[i] + switch (paragraph.style) { + case 'Summary': { + let text = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + text = UI.projects.superalgos.utilities.docs.addKeyboard(text) + text = UI.projects.superalgos.utilities.docs.addCodeToCamelCase(text) + text = UI.projects.superalgos.utilities.docs.addCodeToWhiteList(text) + text = UI.projects.superalgos.utilities.docs.addToolTips(text) + html = html + '
' + text + '
' + break + } + case 'Title': { + let text = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + html = html + '

' + text + '

' + break + } + case 'Gif': { + let text = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + html = html + '
' + newGifName = text + break + } + case 'Text': { + let text = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + text = UI.projects.superalgos.utilities.docs.addKeyboard(text) + text = UI.projects.superalgos.utilities.docs.addCodeToCamelCase(text) + text = UI.projects.superalgos.utilities.docs.addCodeToWhiteList(text) + text = UI.projects.superalgos.utilities.docs.addToolTips(text) + html = html + '
' + text + '
' + break + } + case 'Json': { + let text = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + html = html + '
' + text + '
' + break + } + case 'Javascript': { + let text = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + html = html + '
' + text + '
' + break + } + case 'List': { + let text = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + text = UI.projects.superalgos.utilities.docs.addKeyboard(text) + text = UI.projects.superalgos.utilities.docs.addCodeToCamelCase(text) + text = UI.projects.superalgos.utilities.docs.addCodeToWhiteList(text) + text = UI.projects.superalgos.utilities.docs.addBold(text) + text = UI.projects.superalgos.utilities.docs.addToolTips(text) + html = html + '
  • ' + text + '
' + break + } + case 'Callout': { + let text = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + text = UI.projects.superalgos.utilities.docs.addKeyboard(text) + text = UI.projects.superalgos.utilities.docs.addCodeToCamelCase(text) + text = UI.projects.superalgos.utilities.docs.addCodeToWhiteList(text) + text = UI.projects.superalgos.utilities.docs.addToolTips(text) + html = html + '
' + text + '
' + break + } + case 'Link': { + let text = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + let splittedText = text.split('->') + html = html + '' + splittedText[0] + '' + break + } + case 'Note': { + let text = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + text = UI.projects.superalgos.utilities.docs.addKeyboard(text) + text = UI.projects.superalgos.utilities.docs.addCodeToCamelCase(text) + text = UI.projects.superalgos.utilities.docs.addCodeToWhiteList(text) + text = UI.projects.superalgos.utilities.docs.addToolTips(text) + html = html + '' + break + } + case 'Success': { + let text = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + text = UI.projects.superalgos.utilities.docs.addKeyboard(text) + text = UI.projects.superalgos.utilities.docs.addCodeToCamelCase(text) + text = UI.projects.superalgos.utilities.docs.addCodeToWhiteList(text) + text = UI.projects.superalgos.utilities.docs.addToolTips(text) + html = html + '' + break + } + case 'Important': { + let text = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + text = UI.projects.superalgos.utilities.docs.addKeyboard(text) + text = UI.projects.superalgos.utilities.docs.addCodeToCamelCase(text) + text = UI.projects.superalgos.utilities.docs.addCodeToWhiteList(text) + text = UI.projects.superalgos.utilities.docs.addToolTips(text) + html = html + '' + break + } + case 'Warning': { + let text = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(paragraph) + text = UI.projects.superalgos.utilities.docs.addKeyboard(text) + text = UI.projects.superalgos.utilities.docs.addCodeToCamelCase(text) + text = UI.projects.superalgos.utilities.docs.addCodeToWhiteList(text) + text = UI.projects.superalgos.utilities.docs.addToolTips(text) + html = html + '' + break + } } } - return resultingText + + html = html + '
' + + tutorialDiv.innerHTML = html + _self.Prism.highlightAllUnder(tutorialDiv, true) + } } diff --git a/Projects/Superalgos/UI/Utilities/Branches.js b/Projects/Superalgos/UI/Utilities/Branches.js index 66e573921..f77311ae2 100644 --- a/Projects/Superalgos/UI/Utilities/Branches.js +++ b/Projects/Superalgos/UI/Utilities/Branches.js @@ -9,29 +9,36 @@ function newSuperalgosUtilitiesBranches() { function nodeBranchToArray(node, nodeType) { /* This function scans a node branch for a certain node type and - return an array of with all the nodes of that type found. + return an array of with all the nodes of that type found. Note that once + a node with a matching type is found, it's children are not further scanned. + + If nodeType is undefined, then all nodes of this branch will be returned in + the array, including the children of the nodes added to the result array. */ if (node === undefined) { return } - if (nodeType === undefined) { return } - let resultArray = [] - scanNodeBranch(node, nodeType) + let resultArray = [] + scanNodeBranch(node) return resultArray function scanNodeBranch(startingNode) { if (startingNode === undefined) { return } - let nodeDefinition = getNodeDefinition(startingNode) - if (nodeDefinition === undefined) { return } + let schemaDocument = getSchemaDocument(startingNode) + if (schemaDocument === undefined) { return } - if (startingNode.type === nodeType) { + if (nodeType === undefined) { resultArray.push(startingNode) - return + } else { + if (startingNode.type === nodeType) { + resultArray.push(startingNode) + return + } } - if (nodeDefinition.properties === undefined) { return } + if (schemaDocument.childrenNodesProperties === undefined) { return } let lastNodePropertyName - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] if (lastNodePropertyName === property.name) { continue } // Some nodes have a single property por multiple child node types. We need to check repeated properties only once so as no to duplicate results. switch (property.type) { case 'node': { diff --git a/Projects/Superalgos/UI/Utilities/CreditsPage.js b/Projects/Superalgos/UI/Utilities/CreditsPage.js new file mode 100644 index 000000000..9df5c52db --- /dev/null +++ b/Projects/Superalgos/UI/Utilities/CreditsPage.js @@ -0,0 +1,13 @@ +function newSuperalgosUtilitiesCreditsPage() { + thisObject = { + changeStatus: changeStatus + } + + return thisObject + + function changeStatus(newStatus) { + let statusParagraph = document.getElementById('credits-page-status-paragraph') + statusParagraph.lastChild.data = newStatus + + } +} \ No newline at end of file diff --git a/Projects/Superalgos/UI/Utilities/Docs.js b/Projects/Superalgos/UI/Utilities/Docs.js new file mode 100644 index 000000000..eeac1b80b --- /dev/null +++ b/Projects/Superalgos/UI/Utilities/Docs.js @@ -0,0 +1,694 @@ +function newSuperalgosUtilitiesDocs() { + thisObject = { + buildOrderedPageIndex: buildOrderedPageIndex, + addWarningIfTranslationIsOutdated: addWarningIfTranslationIsOutdated, + getTextBasedOnLanguage: getTextBasedOnLanguage, + setTextBasedOnLanguage: setTextBasedOnLanguage, + parseGIF: parseGIF, + reverseParseGIF: reverseParseGIF, + parsePNG: parsePNG, + reverseParsePNG: reverseParsePNG, + parseTable: parseTable, + parseLink: parseLink, + parseYoutube: parseYoutube, + reverseParseLink: reverseParseLink, + reverseParseYoutube: reverseParseYoutube, + reverseParseHierarchy: reverseParseHierarchy, + reverseParseTable: reverseParseTable, + addBold: addBold, + addKeyboard: addKeyboard, + addCodeToCamelCase: addCodeToCamelCase, + addCodeToWhiteList: addCodeToWhiteList, + addItalics: addItalics, + addToolTips: addToolTips + } + + const TAGGING_STRING_SEPARATOR = '~>' + + return thisObject + + function buildOrderedPageIndex(project, category, query) { + let array = [] + let schemaArray + + switch (category) { + case 'Topic': { + schemaArray = SCHEMAS_BY_PROJECT.get(project).array.docsTopicSchema + break + } + case 'Tutorial': { + schemaArray = SCHEMAS_BY_PROJECT.get(project).array.docsTutorialSchema + break + } + } + + for (let i = 0; i < schemaArray.length; i++) { + let arrayItem = schemaArray[i] + + switch (category) { + case 'Topic': { + if (arrayItem.topic !== query) { continue } + break + } + case 'Tutorial': { + if (arrayItem.tutorial !== query) { continue } + break + } + } + + let itemAdded = false + if (array.length === 0) { + array.push(arrayItem) + itemAdded = true + } else { + for (let j = 0; j < array.length; j++) { + let orderedArrayItem = array[j] + if (Number(arrayItem.pageNumber) < Number(orderedArrayItem.pageNumber)) { + array.splice(j, 0, arrayItem) + itemAdded = true + break + } + } + } + if (itemAdded === false) { + array.push(arrayItem) + } + + } + return array + } + + function addWarningIfTranslationIsOutdated(paragraph) { + if (paragraph === undefined) { return '' } + if (paragraph.updated === undefined) { return '' } + if (paragraph.translations === undefined) { return '' } + if (paragraph.translations.length === 0) { return '' } + for (let i = 0; i < paragraph.translations.length; i++) { + let translation = paragraph.translations[i] + if (translation.updated === undefined) { continue } + if (translation.language === UI.projects.superalgos.spaces.docsSpace.language) { + if (paragraph.updated < translation.updated) { + return '' + } else { + return ' Warning!!! This translation is outdated. English version is... ' + paragraph.text + ' Please update this translation.' + } + } + } + return '' + } + + function getTextBasedOnLanguage(paragraph) { + if (paragraph === undefined) { return } + if (paragraph.translations === undefined) { return paragraph.text } + if (paragraph.translations.length === 0) { return paragraph.text } + for (let i = 0; i < paragraph.translations.length; i++) { + let translation = paragraph.translations[i] + if (translation.language === UI.projects.superalgos.spaces.docsSpace.language) { return translation.text } + } + return paragraph.text + } + + function setTextBasedOnLanguage(paragraph, text) { + if (UI.projects.superalgos.spaces.docsSpace.language === UI.projects.superalgos.globals.docs.DEFAULT_LANGUAGE) { + if (paragraph.text !== text) { + + /* This will make the Client to save this in a file overwritting the previous version*/ + UI.projects.superalgos.spaces.docsSpace.documentPage.docsSchemaDocument.updated = true + + paragraph.text = text + paragraph.updated = (new Date()).valueOf() + + } + return + } else { + /* + We will avoid setting up a new language if the text is + the same as the text at the default language. + */ + if (paragraph.text === text) { + return + } + } + if (paragraph.translations === undefined) { + paragraph.translations = [] + } + for (let i = 0; i < paragraph.translations.length; i++) { + let translation = paragraph.translations[i] + if (translation.language === UI.projects.superalgos.spaces.docsSpace.language) { + if (translation.text !== text) { + + /* This will make the Client to save this in a file overwritting the previous version*/ + UI.projects.superalgos.spaces.docsSpace.documentPage.docsSchemaDocument.updated = true + + translation.text = text + translation.updated = (new Date()).valueOf() + } + return + } + } + let translation = { + language: UI.projects.superalgos.spaces.docsSpace.language, + text: text, + updated: (new Date()).valueOf() + } + paragraph.translations.push(translation) + + /* This will make the Client to save this in a file overwritting the previous version*/ + UI.projects.superalgos.spaces.docsSpace.documentPage.docsSchemaDocument.updated = true + return + } + + function parseGIF(text) { + return '' + } + + function reverseParseGIF(HTML) { + let result = HTML + result = result.replace(' ', '') + return result.trim() + } + + function parsePNG(text) { + return '' + } + + function reverseParsePNG(HTML) { + let result = HTML + result = result.replace(' ', '') + return result.trim() + } + + function parseTable(text) { + let HTML = '' + let odd = false + /* When the text is not formatted as a table, we auto format it as a single cell table */ + if (text.indexOf('|') < 0) { + text = "|" + text + "|" + } + + /* We process the text based table*/ + let rows = text.split(String.fromCharCode(10)) + for (let i = 0; i < rows.length; i++) { + let row = rows[i] + if (row === '') { + if (i === rows.length - 1) { + HTML = HTML + '' + } + continue + } + let colums = row.split('|') + if (i === 0) { + HTML = HTML + '' + } + if (i === 1) { + HTML = HTML + '' + } + if (odd === true) { + HTML = HTML + '' + odd = false + } else { + HTML = HTML + '' + odd = true + } + if (colums.length < 2) { + continue + } else { + /* We discard anything before the first | and after the last | */ + for (let j = 1; j < colums.length - 1; j++) { + let column = colums[j] + column = addRGB(column) + + if (i === 0) { + HTML = HTML + '' + column + '' + } else { + HTML = HTML + '' + column + '' + } + } + } + + HTML = HTML + '' + if (i === 0) { + HTML = HTML + '' + } + if (i === rows.length - 1) { + HTML = HTML + '' + } + } + return HTML + + function addRGB(text) { + const RGB_HTML = '
   
' + let splittedText = text.split('RGB(') + if (splittedText.length === 1) { return text } + let remainderSplit = splittedText[1].split(')') + if (remainderSplit.length === 1) { return text } + let RGBFound = 'RGB(' + remainderSplit[0] + ')' + let span = RGB_HTML.replace('RGB', RGBFound) + let result = text.replace(RGBFound, span) + return result + } + } + + function parseLink(text) { + let HTML = '' + let splittedText = text.split('->') + if (splittedText.length < 1) { return } + HTML = '' + splittedText[0] + '' + return HTML + } + + function parseYoutube(text) { + let HTML = '' + + HTML = HTML + '
' + HTML = HTML + '' + HTML = HTML + '
' + + return HTML + } + + function reverseParseLink(HTML) { + let splittedHTML = HTML.split('"') + return splittedHTML[1] + } + + function reverseParseYoutube(HTML) { + let splittedHTML = HTML.split('"') + return splittedHTML[1] + } + + function reverseParseHierarchy(HTML) { + let splittedHTML = HTML.split('"') + return splittedHTML[3] + } + + function reverseParseTable(paragraphNode) { + + let tableNode = paragraphNode.childNodes[0] + let thead + let tbody + let result = '' + + for (let i = 0; i < tableNode.childNodes.length; i++) { + let childNode = tableNode.childNodes[i] + if (childNode.nodeName === "THEAD") { + thead = childNode + } + if (childNode.nodeName === "TBODY") { + tbody = childNode + } + } + if (thead !== undefined) { processTRs(thead) } + if (tbody !== undefined) { processTRs(tbody) } + + function processTRs(TRs) { + for (let i = 0; i < TRs.childNodes.length; i++) { + let TR = TRs.childNodes[i] + for (let j = 0; j < TR.childNodes.length; j++) { + let TD = TR.childNodes[j] + if (TD.innerText.trim() === "") { + let RGB = removeRGB(TD.innerHTML) + result = result + '|' + RGB + } else { + result = result + '|' + TD.innerText + } + } + result = result + '|' + } + } + + /* We break lines where needed */ + result = result.replaceAll('||', '|' + String.fromCharCode(10) + '|') + return result.trim() + + function removeRGB(HTML) { + let text = HTML + text = text.replaceAll('
   
', '') + text = text.replaceAll(' ', '') + return text.trim() + } + } + + function addBold(text) { + let splittedText = text.split(':') + if (text.indexOf(':') >= 0) { + return '' + text.substring(0, text.indexOf(':') + 1) + '' + text.substring(text.indexOf(':') + 1, text.length) + } else { + return text + } + } + + function addKeyboard(text) { + let expandedText = text + .replaceAll('{', ' { ') + .replaceAll('}', ' } ') + .replaceAll('(', ' ( ') + .replaceAll(')', ' ) ') + .replaceAll('[', ' [ ') + .replaceAll(']', ' ] ') + .replaceAll(',', ' , ') + .replaceAll('.', ' . ') + let splittedText = expandedText.split(' ') + let result = '' + for (let i = 0; i < splittedText.length; i++) { + let word = splittedText[i] + if ( + word === 'Ctrl' || + word === 'Alt' || + word === 'Shift' || + word === 'Cmd' || + word === 'F1' || + word === 'F2' || + word === 'F3' || + word === 'F4' || + word === 'F5' || + word === 'F6' || + word === 'F7' || + word === 'F8' || + word === 'F9' || + word === 'F10' || + word === 'F11' || + word === 'F12' || + word === 'Del' || + word === '←' || + word === '→' || + word === '↑' || + word === '↓' || + word === 'Key-A' || + word === 'Key-B' || + word === 'Key-C' || + word === 'Key-D' || + word === 'Key-E' || + word === 'Key-F' || + word === 'Key-G' || + word === 'Key-H' || + word === 'Key-I' || + word === 'Key-J' || + word === 'Key-K' || + word === 'Key-L' || + word === 'Key-M' || + word === 'Key-N' || + word === 'Key-O' || + word === 'Key-P' || + word === 'Key-Q' || + word === 'Key-R' || + word === 'Key-S' || // S + word === 'Key-T' || + word === 'Key-U' || + word === 'Key-V' || + word === 'Key-W' || + word === 'Key-X' || + word === 'Key-Y' || + word === 'Key-Z' + ) { + word = '' + word + '' + } + if (i === 0) { + result = word + } else { + result = result + ' ' + word + } + } + result = result + .replaceAll(' { ', '{') + .replaceAll(' } ', '}') + .replaceAll(' ( ', '(') + .replaceAll(' ) ', ')') + .replaceAll(' [ ', '[') + .replaceAll(' ] ', ']') + .replaceAll(' , ', ',') + .replaceAll(' . ', '.') + return result.trim() + } + + function addCodeToCamelCase(text) { + let expandedText = text + .replaceAll('{', ' { ') + .replaceAll('}', ' } ') + .replaceAll('(', ' ( ') + .replaceAll(')', ' ) ') + .replaceAll('[', ' [ ') + .replaceAll(']', ' ] ') + .replaceAll(',', ' , ') + let splittedText = expandedText.split(' ') + let result = '' + for (let i = 0; i < splittedText.length; i++) { + let word = splittedText[i] + if (UI.projects.superalgos.utilities.strings.isCamelCase(word) === true) { + word = '' + word + '' + } + if (i === 0) { + result = word + } else { + result = result + ' ' + word + } + } + result = result + .replaceAll(' { ', '{') + .replaceAll(' } ', '}') + .replaceAll(' ( ', '(') + .replaceAll(' ) ', ')') + .replaceAll(' [ ', '[') + .replaceAll(' ] ', ']') + .replaceAll(' , ', ',') + return result + } + + function addCodeToWhiteList(text) { + let result = text + .replaceAll('true', 'true') + .replaceAll('false', 'false') + return result + } + + function addItalics(text) { + let cleanText = text.replace(/'/g, ' AMPERSAND ') // scaping ampersands, separating them from other words + let words = cleanText.split(' ') + let changedText = '' + for (let i = 0; i < words.length; i++) { + let phrase1 = words[i] + let phrase2 = words[i] + ' ' + words[i + 1] + let phrase3 = words[i] + ' ' + words[i + 1] + ' ' + words[i + 2] + let phrase4 = words[i] + ' ' + words[i + 1] + ' ' + words[i + 2] + ' ' + words[i + 3] + + let cleanPhrase1 = cleanPhrase(phrase1) + let cleanPhrase2 = cleanPhrase(phrase2) + let cleanPhrase3 = cleanPhrase(phrase3) + let cleanPhrase4 = cleanPhrase(phrase4) + + let found = false + + if (found === false && UI.projects.superalgos.spaces.docsSpace.menuLabelsMap.get(cleanPhrase4) === true) { + changedText = changedText + phrase4.replace(cleanPhrase4, '' + cleanPhrase4 + '') + ' ' + i = i + 3 + found = true + } + + if (found === false && UI.projects.superalgos.spaces.docsSpace.menuLabelsMap.get(cleanPhrase3) === true) { + changedText = changedText + phrase3.replace(cleanPhrase3, '' + cleanPhrase3 + '') + ' ' + i = i + 2 + found = true + } + + if (found === false && UI.projects.superalgos.spaces.docsSpace.menuLabelsMap.get(cleanPhrase2) === true) { + changedText = changedText + phrase2.replace(cleanPhrase2, '' + cleanPhrase2 + '') + ' ' + i = i + 1 + found = true + } + + if (found === false && UI.projects.superalgos.spaces.docsSpace.menuLabelsMap.get(cleanPhrase1) === true) { + changedText = changedText + phrase1.replace(cleanPhrase1, '' + cleanPhrase1 + '') + ' ' + i = i + 0 + found = true + } + + if (found === false) { + changedText = changedText + phrase1 + ' ' + } + } + changedText = changedText.replaceAll(' AMPERSAND ', '\'') + return changedText + } + + function addToolTips(text, excludedType) { + + const TOOL_TIP_HTML = '
TYPE_LABELDEFINITION
' + const LINK_ONLY_HTML = '' + + let resultingText = '' + text = tagDefinedTypes(text, excludedType) + let splittedText = text.split(TAGGING_STRING_SEPARATOR) + + for (let i = 0; i < splittedText.length; i = i + 2) { + let firstPart = splittedText[i] + let taggedText = splittedText[i + 1] + + if (taggedText === undefined) { + return resultingText + firstPart + } + + let splittedTaggedText = taggedText.split('|') + let category = splittedTaggedText[0] + let type = splittedTaggedText[1] + let project = splittedTaggedText[2] + + /* + We will search across all DOC SCHEMAS + */ + let found = false + let docsSchemaDocument + + for (let j = 0; j < PROJECTS_ARRAY.length; j++) { + let project = PROJECTS_ARRAY[j] + docsSchemaDocument = SCHEMAS_BY_PROJECT.get(project).map.docsNodeSchema.get(type) + if (docsSchemaDocument !== undefined) { + found = true + break + } + docsSchemaDocument = SCHEMAS_BY_PROJECT.get(project).map.docsConceptSchema.get(type) + if (docsSchemaDocument !== undefined) { + found = true + break + } + docsSchemaDocument = SCHEMAS_BY_PROJECT.get(project).map.docsTopicSchema.get(type) + if (docsSchemaDocument !== undefined) { + found = true + break + } + docsSchemaDocument = SCHEMAS_BY_PROJECT.get(project).map.docsTutorialSchema.get(type) + if (docsSchemaDocument !== undefined) { + found = true + break + } + docsSchemaDocument = SCHEMAS_BY_PROJECT.get(project).map.docsBookSchema.get(type) + if (docsSchemaDocument !== undefined) { + found = true + break + } + } + if (found === false) { + return text + } + + let definition = UI.projects.superalgos.utilities.docs.getTextBasedOnLanguage(docsSchemaDocument.definition) + if (definition === undefined || definition === "") { + let tooltip = LINK_ONLY_HTML + .replace('CATEGORY', category) + .replace('TYPE', type.replace(/'/g, 'AMPERSAND')) + .replace('PROJECT', project) + .replace('TYPE_LABEL', type) + + resultingText = resultingText + firstPart + tooltip + } else { + let tooltip = TOOL_TIP_HTML + .replace('CATEGORY', category) + .replace('TYPE', type.replace(/'/g, 'AMPERSAND')) + .replace('PROJECT', project) + .replace('TYPE_LABEL', type) + .replace('DEFINITION', definition) + + resultingText = resultingText + firstPart + tooltip + } + } + return resultingText + } + + /* Private Functions follow */ + function tagDefinedTypes(text, excludedType) { + const MAX_NUMBER_OF_WORDS = 10 + text = text.trim() + let cleanText = text.replace(/'/g, ' AMPERSAND ') // scaping ampersands, separating them from other words + .replaceAll('<', ' < ') + .replaceAll('>', ' > ') + .replaceAll(':', ' : ') + .replaceAll(',', ' , ') + .replaceAll('.', ' . ') + .replaceAll('!', ' ! ') + let words = cleanText.split(' ') + let taggedText = '' + for (let i = 0; i < words.length; i++) { + + let phrases = [] + let cleanPhrases = [] + let phrase = '' + + for (let j = 0; j < MAX_NUMBER_OF_WORDS; j++) { + let word = words[i + j] + if (word === "" ) { word = " "} + if (word !== undefined) { + if (phrase === '') { + phrase = word + } else { + phrase = phrase + ' ' + word + } + if (phrase === undefined) { continue } + phrases.push(phrase) + cleanPhrases.push(cleanPhrase(phrase)) + } + } + + let found = false + + for (let j = MAX_NUMBER_OF_WORDS - 1; j >= 0; j--) { + for (let p = 0; p < PROJECTS_ARRAY.length; p++) { + let project = PROJECTS_ARRAY[p] + + searchInSchema(SCHEMAS_BY_PROJECT.get(project).map.docsNodeSchema) + searchInSchema(SCHEMAS_BY_PROJECT.get(project).map.docsConceptSchema) + searchInSchema(SCHEMAS_BY_PROJECT.get(project).map.docsTopicSchema) + searchInSchema(SCHEMAS_BY_PROJECT.get(project).map.docsTutorialSchema) + searchInSchema(SCHEMAS_BY_PROJECT.get(project).map.docsBookSchema) + + function searchInSchema(docSchema) { + if (found === true) { return } + + if (docSchema.get(cleanPhrases[j]) !== undefined) { + if (cleanPhrases[j] !== excludedType) { + taggedText = taggedText + phrases[j].replace( + cleanPhrases[j], + TAGGING_STRING_SEPARATOR + 'Node' + '|' + cleanPhrases[j] + '|' + project + TAGGING_STRING_SEPARATOR) + ' ' + } else { + taggedText = taggedText + phrases[j] + ' ' + } + i = i + j + found = true + return + } + } + } + } + + if (found === false) { + taggedText = taggedText + phrases[0] + ' ' + } + } + taggedText = taggedText.replaceAll(' AMPERSAND ', '\'') + .replaceAll(' < ', '<') + .replaceAll(' > ', '>') + .replaceAll(' : ', ':') + .replaceAll(' . ', '.') + .replaceAll(' , ', ',') + .replaceAll(' ! ', '!') + .replaceAll(' ', ' ') + return taggedText + } + + function cleanPhrase(phrase) { + return phrase.replace(',', '') + .replace(';', '') + .replace('(', '') + .replace(')', '') + .replace('_', '') + .replace('.', '') + .replace('[', '') + .replace(']', '') + .replace('{', '') + .replace('}', '') + .replace('/', '') + .replace('>', '') + .replace('<', '') + } +} \ No newline at end of file diff --git a/Projects/Superalgos/UI/Utilities/Folders.js b/Projects/Superalgos/UI/Utilities/Folders.js index c6f8bc298..1c8dd5745 100644 --- a/Projects/Superalgos/UI/Utilities/Folders.js +++ b/Projects/Superalgos/UI/Utilities/Folders.js @@ -25,12 +25,12 @@ function newSuperalgosUtilitiesFolders() { if (destinationNode === undefined) { return } /* Now we go down through all the children of the origin node, recreating at the destination node the same children structure*/ - let nodeDefinition = getNodeDefinition(originNode) - if (nodeDefinition === undefined) { return } + let schemaDocument = getSchemaDocument(originNode) + if (schemaDocument === undefined) { return } - if (nodeDefinition.properties !== undefined) { - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + if (schemaDocument.childrenNodesProperties !== undefined) { + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.name) { case originObjectsArrayPropertyName: { diff --git a/Projects/Superalgos/UI/Utilities/GitBranches.js b/Projects/Superalgos/UI/Utilities/GitBranches.js new file mode 100644 index 000000000..de134c51b --- /dev/null +++ b/Projects/Superalgos/UI/Utilities/GitBranches.js @@ -0,0 +1,26 @@ +function newSuperalgosUtilitiesGitBranches() { + thisObject = { + getBranchLabel: getBranchLabel + } + + return thisObject + + function getBranchLabel(branch) { + let branchLabel + switch (branch) { + case 'master': { + branchLabel = 'Master' + break + } + case 'develop': { + branchLabel = 'Develop' + break + } + case 'bug-fixes': { + branchLabel = 'Bug Fixes' + break + } + } + return branchLabel + } +} \ No newline at end of file diff --git a/Projects/Superalgos/UI/Utilities/Hierarchy.js b/Projects/Superalgos/UI/Utilities/Hierarchy.js index d5a2de5a3..209d4cdf7 100644 --- a/Projects/Superalgos/UI/Utilities/Hierarchy.js +++ b/Projects/Superalgos/UI/Utilities/Hierarchy.js @@ -1,7 +1,8 @@ function newSuperalgosUtilitiesHierarchy() { thisObject = { getHiriarchyMap: getHiriarchyMap, - getHiriarchyHead: getHiriarchyHead + getHiriarchyHead: getHiriarchyHead, + getNodeNameTypePath: getNodeNameTypePath } return thisObject @@ -20,13 +21,13 @@ function newSuperalgosUtilitiesHierarchy() { hiriatchyMap.set(node.id, node) /* Now we go down through all this node children */ - let nodeDefinition = getNodeDefinition(node) - if (nodeDefinition === undefined) { return } + let schemaDocument = getSchemaDocument(node) + if (schemaDocument === undefined) { return } - if (nodeDefinition.properties !== undefined) { + if (schemaDocument.childrenNodesProperties !== undefined) { let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { @@ -68,4 +69,21 @@ function newSuperalgosUtilitiesHierarchy() { } } } + + function getNodeNameTypePath(initialNode) { + let pathArray = [] + stepBackwards(initialNode) + return pathArray + + function stepBackwards(node) { + if (node === undefined) { return } + if (node.payload === undefined) { return } + pathArray.unshift([node.name, node.type, node.project, node.id]) + if (node.payload.parentNode === undefined) { + return + } else { + stepBackwards(node.payload.parentNode) + } + } + } } diff --git a/Projects/Superalgos/UI/Utilities/Languages.js b/Projects/Superalgos/UI/Utilities/Languages.js new file mode 100644 index 000000000..c8c03590a --- /dev/null +++ b/Projects/Superalgos/UI/Utilities/Languages.js @@ -0,0 +1,26 @@ +function newSuperalgosUtilitiesLanguages() { + thisObject = { + getLaguageLabel: getLaguageLabel + } + + return thisObject + + function getLaguageLabel(language) { + let languageLabel + switch (language) { + case 'EN': { + languageLabel = 'English' + break + } + case 'ES': { + languageLabel = 'Spanish' + break + } + case 'RU': { + languageLabel = 'Russian' + break + } + } + return languageLabel + } +} \ No newline at end of file diff --git a/Projects/Superalgos/UI/Utilities/Meshes.js b/Projects/Superalgos/UI/Utilities/Meshes.js index c466e892c..8626c2a25 100644 --- a/Projects/Superalgos/UI/Utilities/Meshes.js +++ b/Projects/Superalgos/UI/Utilities/Meshes.js @@ -24,8 +24,8 @@ function newSuperalgosUtilitiesMeshes() { if (nodeFound !== undefined) { return } if (depth >= MAX_DEPTH) { return } - let nodeDefinition = getNodeDefinition(startingNode) - if (nodeDefinition === undefined) { return } + let schemaDocument = getSchemaDocument(startingNode) + if (schemaDocument === undefined) { return } if (nodeType !== undefined) { if (startingNode.type === nodeType) { @@ -43,9 +43,9 @@ function newSuperalgosUtilitiesMeshes() { /* We scan through this node children */ if (findInChildren === true) { - if (nodeDefinition.properties !== undefined) { - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + if (schemaDocument.childrenNodesProperties !== undefined) { + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { diff --git a/Projects/Superalgos/UI/Utilities/NodeChildren.js b/Projects/Superalgos/UI/Utilities/NodeChildren.js index d62625dae..cda8d0a42 100644 --- a/Projects/Superalgos/UI/Utilities/NodeChildren.js +++ b/Projects/Superalgos/UI/Utilities/NodeChildren.js @@ -18,13 +18,13 @@ function newSuperalgosUtilitiesNodeChildren() { if (startingNode === undefined) { return } if (checkNode === undefined) { return } - let nodeDefinition = getNodeDefinition(startingNode) - if (nodeDefinition === undefined) { return } + let schemaDocument = getSchemaDocument(startingNode) + if (schemaDocument === undefined) { return } /* We scan through this node children */ - if (nodeDefinition.properties !== undefined) { - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + if (schemaDocument.childrenNodesProperties !== undefined) { + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { @@ -81,13 +81,13 @@ function newSuperalgosUtilitiesNodeChildren() { if (startingNode === undefined) { return } if (checkNode === undefined) { return } - let nodeDefinition = getNodeDefinition(startingNode) - if (nodeDefinition === undefined) { return } + let schemaDocument = getSchemaDocument(startingNode) + if (schemaDocument === undefined) { return } /* We scan through this node children */ - if (nodeDefinition.properties !== undefined) { - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + if (schemaDocument.childrenNodesProperties !== undefined) { + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { @@ -167,13 +167,13 @@ function newSuperalgosUtilitiesNodeChildren() { let parentNode = startingNode.payload.parentNode - let nodeDefinition = getNodeDefinition(parentNode) - if (nodeDefinition === undefined) { return } + let schemaDocument = getSchemaDocument(parentNode) + if (schemaDocument === undefined) { return } /* We scan through this parent node children */ - if (nodeDefinition.properties !== undefined) { - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + if (schemaDocument.childrenNodesProperties !== undefined) { + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { @@ -205,13 +205,13 @@ function newSuperalgosUtilitiesNodeChildren() { */ if (startingNode === undefined) { return } - let nodeDefinition = getNodeDefinition(startingNode) - if (nodeDefinition === undefined) { return } + let schemaDocument = getSchemaDocument(startingNode) + if (schemaDocument === undefined) { return } /* We scan through this node children */ - if (nodeDefinition.properties !== undefined) { - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] + if (schemaDocument.childrenNodesProperties !== undefined) { + for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { + let property = schemaDocument.childrenNodesProperties[i] switch (property.type) { case 'node': { diff --git a/Projects/Superalgos/UI/Utilities/Strings.js b/Projects/Superalgos/UI/Utilities/Strings.js new file mode 100644 index 000000000..6a21f9691 --- /dev/null +++ b/Projects/Superalgos/UI/Utilities/Strings.js @@ -0,0 +1,124 @@ +function newSuperalgosUtilitiesStrings() { + thisObject = { + allWordsToUpper: allWordsToUpper, + fromCamelCaseToUpperWithSpaces: fromCamelCaseToUpperWithSpaces, + isCamelCase: isCamelCase, + replaceSpecialCharactersForSpaces: replaceSpecialCharactersForSpaces, + cleanTextOfCommonWordEndings: cleanTextOfCommonWordEndings + } + + return thisObject + + function allWordsToUpper(text) { + let splittedText = text.split(' ') + let result = '' + for (let i = 0; i < splittedText.length; i++) { + let word = splittedText[i] + word = word.charAt(0).toUpperCase() + word.slice(1) + result = result + ' ' + word + } + return result.trim() + } + + function fromCamelCaseToUpperWithSpaces(text) { + let result = text.replace(/([A-Z])/g, " $1"); + return result.charAt(0).toUpperCase() + result.slice(1); + } + + function isCamelCase(text) { + /* + We are not only going to detect standard Camel Case, but also + we will accept strings with numbers and dots, so that + object paths test positive. + */ + + /* Check that there are not invalid symbols */ + let result = /^[A-Za-z0-9.]+$/.test(text) + if (result === false) { return false } + + /* Check that first char is a letter in lower case*/ + result = /^[a-z]+$/.test(text[0]) + if (result === false) { return false } + + let upperCaseDetected = false + let numbersDetected = false + let dotsDetected = false + for (let i = 1; i < text.length; i++) { + let character = text[i] + + result = /^[0-9]+$/.test(character) + if (result === true) { + numbersDetected = true + if (text[i - 1] === '.') { return false } + } + + result = /^[A-Z]+$/.test(character) + if (result === true) { + upperCaseDetected = true + if (text[i - 1] === '.') { return false } + } + + if (character === '.') { dotsDetected = true } + + } + /* Check that there is at lest one upper case before numbers or dots */ + if (upperCaseDetected === false) { + return false + } + return true + } + + function replaceSpecialCharactersForSpaces(text) { + let result = text + result = result.replaceAll('. ', ' ') + result = result.replaceAll(', ', ' ') + result = result.replaceAll('- ', ' ') + result = result.replaceAll('/ ', ' ') + result = result.replaceAll('_ ', ' ') + result = result.replaceAll(': ', ' ') + result = result.replaceAll('; ', ' ') + result = result.replaceAll('( ', ' ') + result = result.replaceAll(') ', ' ') + result = result.replaceAll('{ ', ' ') + result = result.replaceAll('} ', ' ') + result = result.replaceAll('[ ', ' ') + result = result.replaceAll('] ', ' ') + result = result.replaceAll('" ', ' ') + result = result.replaceAll('\\n ', ' ') + result = result.replaceAll('\\ ', ' ') + + result = result.replaceAll('.', ' ') + result = result.replaceAll(',', ' ') + result = result.replaceAll('-', ' ') + result = result.replaceAll('/', ' ') + result = result.replaceAll('_', ' ') + result = result.replaceAll(':', ' ') + result = result.replaceAll(';', ' ') + result = result.replaceAll('(', ' ') + result = result.replaceAll(')', ' ') + result = result.replaceAll('{', ' ') + result = result.replaceAll('}', ' ') + result = result.replaceAll('[', ' ') + result = result.replaceAll(']', ' ') + result = result.replaceAll('"', ' ') + result = result.replaceAll('\\n', ' ') + result = result.replaceAll("\\", ' ') + + result = result.replaceAll('@', ' ') + result = result.replaceAll(' ', ' ') + result = result.replaceAll(' ', ' ') + result = result.replaceAll(' ', ' ') + return result + } + + function cleanTextOfCommonWordEndings(text) { + let result = UI.projects.superalgos.utilities.strings.replaceSpecialCharactersForSpaces(text) + result = result.replaceAll(' ', '') + result = result.replaceAll('s', '') + result = result.replaceAll('ing', '') + result = result.replaceAll('ed', '') + result = result.replaceAll('y', '') + result = result.replaceAll('ies', '') + return result + } +} \ No newline at end of file diff --git a/README.md b/README.md index 87d0c8251..186b3ed8a 100644 --- a/README.md +++ b/README.md @@ -1,67 +1,141 @@ -![Superalgos video capture (16)](https://user-images.githubusercontent.com/9479367/77251218-76d25980-6c4d-11ea-8e47-be7db2e8abdb.gif) - # Quick Getting Started Guide -All procedures are the same for Windows, Linux or Mac OS. Note: only tested with Google Chrome. +All procedures are the same for Windows, Linux, or Mac OS. Note: tested only on Google Chrome. -## Installation +![Superalgos video capture (16)](https://user-images.githubusercontent.com/9479367/77251218-76d25980-6c4d-11ea-8e47-be7db2e8abdb.gif) -### Pre-Requisites +# Pre-Requisites -1. If you don't have it yet, [download and install Node.js.](https://nodejs.org/en/download/) -2. If you don't have it yet, [download and install Git.](https://git-scm.com/downloads) +## Node JS -### App Setup +If you don't have it yet, download and install Node.js. + +Node JS is an open-source server environment required to run Superalgos. + +**a.** Go to the Node JS [download page](https://nodejs.org/en/download/). + +**b.** Download your system’s installer. Select *LTS Recommended for Most Users* and click the big Windows or macOS Installer button. If you are on Linux, the installer is listed further down the page. + +**c.** Run the installer with the default configuration — just click Next until Node.JS is fully installed. + +## Git + +If you don't have it yet, download and install Git. + +Git is an open-source distributed version control system required to download and stay up to date with Superalgos. + +**a.** Go to the Git [download page](https://git-scm.com/downloads). + +**b.** Download the version for your Operating System. + +**c.** Run the installer and go through the process until Git is fully installed. + +## Google Chrome + +Use Chrome, the only tested browser. + +**a.** Go to the Chrome [download page](https://www.google.com/chrome/). + +**b.** Run the installer. + +Before you begin, it is recommended that you set up Chrome as your default browser. + +**Important:** Use Chrome so that you have a similar environment as the dev team in case you need help. We are not testing on any other browsers, and it is a well-known fact that browsers behave differently. + +# Superalgos App Installation + +**1.** If you are not there already, go to [https://github.com/Superalgos/Superalgos](https://github.com/Superalgos/Superalgos) + +**2.** Scroll the page all the way to the top. Find and click the **Star** button on the top-right corner of the page to like Superalgos! Thank you! This helps developers find the project, which makes Superalgos better for you through their contributions. This step is in fact, your first contribution. + +**3.** Next to the Star button, find and click the **Fork** button to create your fork/copy of this repository. To fork Superalgos you need a GitHub account. If you don't have one, go ahead and create one. A Fork is required for your contributions to the project and to stay up to date with the latest version of the software (more on this later). + +**4.** Once the fork is created, you will land on the page of your fork. Copy the URL from your browser's address bar. + +**5.** In your computer/laptop/server, open a command prompt or terminal as an administrator (to avoid issues with permissions) and type: -1. Open a command prompt or terminal as an administrator and type: ``` -git clone https://github.com/Superalgos/Superalgos +git clone ``` -## Usage +**5.** Don't hit Enter yet! Complete the command by pasting the URL of your fork! + +``` +git clone + URL of your Superalgos fork. +``` + +For example, if your Github username is John, the command will look like this: + +``` +git clone https://github.com/John/Superalgos +``` + +## Instalation Notes + +**1.** You need to make a fork so that you may contribute work. Superalgos is a Community project and you are expected to contribute, like everyone else. You don't need to be a technical person to contribute. Fixing a typo in the docs or translating a paragraph into your native language are valuable contributions too. Superalgos has built-in features that make contributing easy. Help make Superalgos better and Superalgos will better serve you! [Free-riding is not cool](https://en.wikipedia.org/wiki/Free-rider_problem), particularly on free, open-source, Community-driven projects. + +**2.** You also need a fork to use the in-app self-update features. These will help you stay up-to-date with the latest version of the software. Updates are on-demand, so don't worry about undesired updates. The project moves very fast and new features become available regularly. + +**3.** You are better off running the git clone command as an administrator to avoid permission issues while creating the Superalgos folder and downloading the repository. It may work without admin powers depending on your setup, particularly if you are running the command on a folder where you've got write permissions. + +**4.** Before installing the client on a remote computer in an attempt to access the UI from a different machine, we highly recommend you do a standard installation on your PC / laptop first. Leave your Raspberry Pi or server for later, once you have done all available tutorials. This single tip will save you a lot of time: you don't need to add complexity before you learn how to handle the app. + +# Usage + +![Run the system](https://docs.superalgos.org/images/how-to/run-the-system-01.gif) + +**1.** To run the Superalgos client, change to the Superalgos directory/folder and type: -1. Change to the Superalgos directory / folder and type: ``` node run ``` -2. Follow the in-app Welcome Tutorial to learn the basics. It's the ultimate onboarding experience, superior to all other resources available. -## Uninstall +**2.** The command launches your default browser to load the UI. If Chrome is not your default browser, copy the URL, close the browser, open Chrome, and paste the URL. Be patient... it takes a few seconds to fully load the UI. -Superalgos does not write anything outside the Superalgos folder. To completelly uninstall the software, just delete the Superalgos folder. +**3.** A Welcome Tutorial pops-up automatically. You must do this Tutorial to finish the setup and to learn the basics. It's the ultimate onboarding experience, superior to all other resources available, including videos and the docs. -## Welcome Tutorial +## Usage Notes -Once the app finishes loading, an interactive tutorial takes you by the hand and walks you all around the system while you learn the basic skills required to use the interface, mine data, backtest strategies, and even run a live trading session. It is highly recommended you follow the tutorial until the end, as it is carefully crafted to make your onboarding as easy as possible. In fact, tutorials are the absolute best way to tackle the learning curve. You should do all tutorials before you start exploring other avenues on your own. +**1.** We are testing the UI on Google Chrome only. It may work on other browsers as well — or not. If you are running on a different browser and ever need support, make sure you mention that fact upfront, or even better, try on Chrome first. -## Full Instalation Guide + **Tip:** If your computer has 8 GB of RAM or less, use ```node run minMemo``` to run the system with minimal RAM requirements. -If you need more detailed, step-by-step instructions on how to install Superalgos, find them at the [Documentation Site](https://docs.superalgos.org/suite-download-and-set-up.html) +# Uninstall -## Docker Deployments +Superalgos writes nothing out of the ```Superalgos``` folder. To completely uninstall the software, just delete the folder. + +# Welcome Tutorial + +Once the app finishes loading, an interactive tutorial takes you by the hand and walks you all around the system while you learn the basic skills required to use the interface, mine data, backtest strategies, and even run a live trading session. It is highly recommended you follow the tutorial until the end, as it is carefully crafted to make your onboarding as easy as possible. Tutorials are the absolute best way to tackle the learning curve. You should do all tutorials before you start exploring other avenues on your own. + +![Welcome Tutorial](https://docs.superalgos.org/images/how-to/tutorial-welcome-00.png) + + **Note:** The tutorial uses Binance or Binance US as the exchange of choice. If you don’t have an account with Binance or Binance US, you will still be able to follow 85% of the tutorial. The remaining 15% involves running a live trading session, which requires an account with the exchange. You may learn how to work with other exchanges later on. + +# Docker Deployments We haven't tested containerized deployments, but many people in the community have. Worth noting is the fact that Superalgos doesn't touch anything outside the Superalgos folder. To uninstall, delete the folder. # What is Superalgos? -Superalgos is a platform to automate crypto-trading. It is implemented as a Nodejs Client + Web App that runs on your hardware and scales from a single Raspberry Pi to a Trading Farm. Superalgos is **Free** and **Open Source**. +Superalgos is a platform to automate crypto-trading. It is implemented as a Node JS Client + Web App that runs on your hardware and scales from a single Raspberry Pi to a Trading Farm. Superalgos is **Free** and **Open-Source**. ## Superalgos Features * A Visual Scripting Designer. * Integrated Charting System. * A Visual Strategy Debugger. -* Task Management across a Trading Farm. -* Community built strategies to learn and start from. -* In-App Tutorials -* Complete Documentation +* Coordinated Task Management across a Trading Farm. +* Community-built strategies to learn and start from. +* In-App Tutorials. +* Complete In-App Documentation. -## Superalgos allows you to +## Superalgos Allows You to... -* Visually design your own trading strategies. +* Visually design your trading strategies. * Visually debug your trading strategies. -* Visually design your own indicators. -* Visually design your own plotters (to visualize indicators or data mined). +* Visually design your indicators. +* Visually design your plotters to visualize indicators or mined data. * Visually design your data-mining operations. * Download historical market data from crypto exchanges. * Backtest your strategies against historical data. @@ -71,36 +145,37 @@ Superalgos is a platform to automate crypto-trading. It is implemented as a Node ## Superalgos Development Pipeline -* Ethereum Integration, which will allow you to data mine your own Ethereum node and use the mined data in your strategies. -* Machine Learning, which will allow you to run a Reinforcement Learning Algorithm and feed it with mined data so as to learn how to take decisions relevant for your strategies. +* Ethereum Integration: will allow you to data mine your own Ethereum node and use the mined data in your strategies. -## Superalgos is user-centric +* Machine Learning: will allow you to run a Reinforcement Learning Algorithm and feed it with mined data for it to learn how to make decisions relevant to your strategies. + +## Superalgos is User-centric * No ads, anywhere. * No sign up / logins. -* No user / usage data collection of any kind. +* No user/usage data collection of any kind. * Runs 100% on uncompiled code anyone can read and audit. # Superalgos for Developers * You are free to customize Superalgos for your customers. No royalties, no license fees. -* Everything extra your customers might need you can code it yourself or request it as new features. -* You can use Superalgos as a platform or a component of a larger system. -* No proprietary code / libraries. All open source and free. -* Already available a set of community-contributed plugins (workspaces, strategies, indicators, plotters, tutorials, etc.). +* Everything extra your customers may need may be coded by yourself or requested as new features. +* You may use Superalgos as a platform or as a component of a larger system. +* No proprietary code/libraries. All open-source and free. +* Superalgos features a library of community-contributed plugins (workspaces, strategies, indicators, plotters, tutorials, etc.). -## Superalgos saves you time +## Superalgos Saves You Time * No need to code the download of historical data from crypto exchanges. * No need to code the streaming of market data from crypto exchanges. -* No need to hardcode strategies, use the visual designer for a more flexible approach. -* No need to debug what went wrong line by line or diving into log files with tons of data. You can see each variable of the state of the Trading Engine at every candle by hovering the mouse over the charts. -* No need to integrate a charting library, Superalgos has its own integrated Charting System. -* No need to manage task data or execution dependencies by yourself. Superalgos allows you to define Tasks and distribute them across a Trading Farm, and it takes care of the data and execution dependencies, so that each task automatically starts when their dependencies are ready. +* No need to hardcode strategies. Use the visual designer for a more flexible approach. +* No need to debug what went wrong, line by line, or dive into log files with tons of data. You can see each variable of the state of the Trading Engine at every candle by hovering the mouse over the charts. +* No need to integrate a charting library, Superalgos features an integrated Charting System. +* No need to manage task data or execution dependencies. Superalgos allows you to define Tasks and distribute them across a Trading Farm and takes care of the data and execution dependencies so that each task automatically starts when their dependencies are ready. # Superalgos for Individuals -* Superalgos is easy to install / uninstall. +* Superalgos is easy to install/uninstall. * Superalgos is easy to run. * Superalgos is easy to use. * Superalgos is easy to learn. @@ -108,33 +183,33 @@ Superalgos is a platform to automate crypto-trading. It is implemented as a Node * Superalgos is well documented. * You have free online support via Telegram. -## Superalgos saves you money +## Superalgos Saves You Money * There are no paid plans or anything that costs you money. -* There is no locked functionality, you can use the full capacity of the software. -* There is no limit in the number of backtests you can run. -* There is no limit in the number of live sessions you can run. -* There is no limit in the number of historical data you can download. -* There is no limit in the number of data you can process. -* You can use all the plugins available (indicators / plotters / strategies / etc.) -* You can install Superalgos in as many machines as you want. -* Your installations can be used by as many people as you want. -* You can connect to as many crypto exchanges as you want. +* There is no locked functionality. You may use the full capacity of the software. +* There is no limit to the number of backtests you may run. +* There is no limit to the number of live sessions you may run. +* There is no limit to the number of historical data you may download. +* There is no limit to the volume of data you may process. +* You may use all the plugins available (indicators, plotters, strategies, etc.) +* You may install Superalgos in as many machines as you wish. +* Your installations may be used by as many people as required. +* You may connect to as many crypto exchanges as you wish. ## Superalgos minimizes your risks -* No one can know what strategies you design / run. +* No one can know what strategies you design/run. * No one can front-run you. * No one can steal your trading ideas. -* No one knows how much money you have / trade. +* No one knows how much capital you trade. * No one can see your exchange keys. # Superalgos for Companies * No need to buy expensive software for monitoring crypto markets or trading execution. * All your employees can use Superalgos for free. -* You can use Superalgos at its full capacity or just the features you are currently interested in. -* Superalgos could be integrated into your existing operation, feeding itself from other systems or feeding other systems as well. +* You can use Superalgos to its full capacity or just the features you are currently interested in. +* Superalgos may be integrated into your existing operation, feeding to and from other systems. # Support @@ -142,52 +217,52 @@ Superalgos is a platform to automate crypto-trading. It is implemented as a Node Online support through our [Superalgos User's Support Group](https://t.me/superalgossupport). -## Via Documentation Site +## In-App Integrated Documentation -Self service support available via the [Superalgos Documentation Site](https://docs.superalgos.org/). +Superalgos features interactive documentation. -## Via Video Tutorials +## Video Tutorials -Self service support via video tutorials at the [Superalgos YouTube Channel](https://www.youtube.com/channel/UCmYSGbB151xFQPNxj7KfKBg). +Subscribe to the [Superalgos YouTube Channel](https://www.youtube.com/channel/UCmYSGbB151xFQPNxj7KfKBg). + +## In-App Tutorials + +There are many interactive tutorials you can use to learn from. # Other Resources ## Web Site -For an overview of what Superalgos can do for you, please check the [Superalgos Website](https://superalgos.org/). +For an overview of what Superalgos can do for you, check the [Superalgos Website](https://superalgos.org/). ## Telegram -Meet other users at our [Superalgos Telegram Community Group](https://t.me/superalgoscommunity). +Meet other users in the [Superalgos Telegram Community Group](https://t.me/superalgoscommunity). -Meet the developers at our [Superalgos Telegram Developer's Group](https://t.me/superalgosdevelop). +Meet the developers in the [Superalgos Telegram Developer's Group](https://t.me/superalgosdevelop). -Spanish speaking users hang out at our [Superalgos en Español Telegram Group](https://t.me/superalgos_es). +Spanish speaking users hang out in the [Superalgos en Español Telegram Group](https://t.me/superalgos_es). ## Blog -You can find official announcements and various articles on the [Superalgos Blog](https://medium.com/superalgos). +Find official announcements and various articles on the [Superalgos Blog](https://medium.com/superalgos). ## Twitter -To stay up-to-date, follow [Superalgos on Twitter](https://twitter.com/superalgos). +To stay in the loop, follow [Superalgos on Twitter](https://twitter.com/superalgos). ## Facebook -To stay up-to-date, follow [Superalgos on Facebook](https://www.facebook.com/superalgos). +Or follow [Superalgos on Facebook](https://www.facebook.com/superalgos). # Contributing -Superalgos is a Community Project built by Contributors. Learn [how to become a Contributor](https://docs.superalgos.org/contributing-to-superalgos.html). +Superalgos is a Community Project built by Contributors for Contributors. Learn [how to become a Contributor](https://docs.superalgos.org/contributing-to-superalgos.html). -## Contributors +## Top Contributors -Luis Fernando Molina, Julian Molina, Andreja Cobeljic, Matías Benitez, Ira Miller, Eduardo Remis, Jeff Braun, rico4dev, 9808us, Barry Low, Nikola Bjelogrlic, Hirajin Koizuko, Francisco J. Santillán, Viktoria B., Guillermo V., Daniel J., Javier A., Gustavo J., Romina GS, Pedro P., Thais M., Andrey M., Loui M., Natalia M., Bashar A., Carlos V., Diego M., Sebastian E., Bogdan P., Marko V., Igor S., Niksa K., Rodrigo M., Nicanor M., Alejandro P., Mateo H., Lan T., Leon A., Uroš R., Filip M., Vladimir J. and Pavle B. +Luis Fernando Molina, Julian Molina, Andreja Cobeljic, Matías Benitez, Ira Miller, Eduardo Remis, Jeff Braun, rico4dev, 9808us, Barry Low, Nikola Bjelogrlic, Hirajin Koizuko, Francisco J. Santillán, Norman, Viktoria B., Guillermo V., Daniel J., Javier A., Gustavo J., Romina GS, Pedro P., Thais M., Andrey M., Loui M., Natalia M., Bashar A., Carlos V., Diego M., Sebastian E., Bogdan P., Marko V., Igor S., Niksa K., Rodrigo M., Nicanor M., Alejandro P., Mateo H., Lan T., Leon A., Uroš R., Filip M., Vladimir J. and Pavle B. # License -Superalgos is open-source software released under [Apache License 2.0](LICENSE). - - - - +Superalgos is open-source software released under [Apache License 2.0](LICENSE). \ No newline at end of file diff --git a/TaskServer/ProcessInstance.js b/TaskServer/ProcessInstance.js index 8c44a7997..c5a6ace61 100644 --- a/TaskServer/ProcessInstance.js +++ b/TaskServer/ProcessInstance.js @@ -87,7 +87,7 @@ let botId = TS.projects.superalgos.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode.parentNode.config.codeName + "." + TS.projects.superalgos.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.parentNode.config.codeName + "." + TS.projects.superalgos.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.config.codeName; if (err.result === TS.projects.superalgos.globals.standardResponses.DEFAULT_OK_RESPONSE.result) { - TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).PROCESS_INSTANCE_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[INFO] start -> onInitializeReady -> whenStartFinishes -> Bot execution finished sucessfully."); + TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).PROCESS_INSTANCE_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[INFO] start -> onInitializeReady -> whenStartFinishes -> Bot execution finished successfully."); TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).PROCESS_INSTANCE_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[INFO] start -> onInitializeReady -> whenStartFinishes -> Bot Id = " + botId); TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).PROCESS_INSTANCE_LOGGER_MODULE_OBJECT.persist() } else { diff --git a/TaskServer/Task.js b/TaskServer/Task.js index 411d70bfa..f6cb8bf31 100644 --- a/TaskServer/Task.js +++ b/TaskServer/Task.js @@ -84,9 +84,9 @@ function preLoader() { let project = projectSchemas[i] for (let j = 0; j < project.schema.length; j++) { - let nodeDefinition = project.schema[j] - let key = project.name + '-' + nodeDefinition.type - TS.projects.superalgos.globals.taskConstants.APP_SCHEMA_MAP.set(key, nodeDefinition) + let schemaDocument = project.schema[j] + let key = project.name + '-' + schemaDocument.type + TS.projects.superalgos.globals.taskConstants.APP_SCHEMA_MAP.set(key, schemaDocument) } } } diff --git a/UI/AppPostLoader.js b/UI/AppPostLoader.js index db12ac1be..fb00686ee 100644 --- a/UI/AppPostLoader.js +++ b/UI/AppPostLoader.js @@ -40,13 +40,19 @@ function newAppPostLoader() { let schemas = { array: { appSchema: [], - docSchema: [], - conceptSchema: [] + docsNodeSchema: [], + docsConceptSchema: [], + docsTopicSchema: [], + docsTutorialSchema: [], + docsBookSchema: [] }, map: { appSchema: new Map(), - docSchema: new Map(), - conceptSchema: new Map() + docsNodeSchema: new Map(), + docsConceptSchema: new Map(), + docsTopicSchema: new Map(), + docsTutorialSchema: new Map(), + docsBookSchema: new Map() } } SCHEMAS_BY_PROJECT.set(project, schemas) @@ -59,9 +65,9 @@ function newAppPostLoader() { schemas.array.appSchema = JSON.parse(schema) for (let j = 0; j < schemas.array.appSchema.length; j++) { - let nodeDefinition = schemas.array.appSchema[j] - let key = nodeDefinition.type - schemas.map.appSchema.set(key, nodeDefinition) + let schemaDocument = schemas.array.appSchema[j] + let key = schemaDocument.type + schemas.map.appSchema.set(key, schemaDocument) } } catch (err) { console.log(err.stack) @@ -72,16 +78,16 @@ function newAppPostLoader() { } totalWebServerCalls++ - httpRequest(undefined, 'Schema/' + project + '/DocSchema', onResponseDocSchema) + httpRequest(undefined, 'Schema/' + project + '/DocsNodeSchema', onResponseDocSchema) function onResponseDocSchema(err, schema) { try { - schemas.array.docSchema = JSON.parse(schema) + schemas.array.docsNodeSchema = JSON.parse(schema) - for (let j = 0; j < schemas.array.docSchema.length; j++) { - let nodeDefinition = schemas.array.docSchema[j] - let key = nodeDefinition.type - schemas.map.docSchema.set(key, nodeDefinition) + for (let j = 0; j < schemas.array.docsNodeSchema.length; j++) { + let schemaDocument = schemas.array.docsNodeSchema[j] + let key = schemaDocument.type + schemas.map.docsNodeSchema.set(key, schemaDocument) } } catch (err) { console.log(err.stack) @@ -92,16 +98,76 @@ function newAppPostLoader() { } totalWebServerCalls++ - httpRequest(undefined, 'Schema/' + project + '/ConceptSchema', onResponseConceptSchema) + httpRequest(undefined, 'Schema/' + project + '/DocsConceptSchema', onResponseConceptSchema) function onResponseConceptSchema(err, schema) { try { - schemas.array.conceptSchema = JSON.parse(schema) + schemas.array.docsConceptSchema = JSON.parse(schema) - for (let j = 0; j < schemas.array.conceptSchema.length; j++) { - let nodeDefinition = schemas.array.conceptSchema[j] - let key = nodeDefinition.type - schemas.map.conceptSchema.set(key, nodeDefinition) + for (let j = 0; j < schemas.array.docsConceptSchema.length; j++) { + let schemaDocument = schemas.array.docsConceptSchema[j] + let key = schemaDocument.type + schemas.map.docsConceptSchema.set(key, schemaDocument) + } + } catch (err) { + console.log(err.stack) + } + + webServerResponses++ + if (webServerResponses === totalWebServerCalls) { startCanvas() } + } + + totalWebServerCalls++ + httpRequest(undefined, 'Schema/' + project + '/DocsTopicSchema', onResponseTopicSchema) + + function onResponseTopicSchema(err, schema) { + try { + schemas.array.docsTopicSchema = JSON.parse(schema) + + for (let j = 0; j < schemas.array.docsTopicSchema.length; j++) { + let schemaDocument = schemas.array.docsTopicSchema[j] + let key = schemaDocument.type + schemas.map.docsTopicSchema.set(key, schemaDocument) + } + } catch (err) { + console.log(err.stack) + } + + webServerResponses++ + if (webServerResponses === totalWebServerCalls) { startCanvas() } + } + + totalWebServerCalls++ + httpRequest(undefined, 'Schema/' + project + '/DocsTutorialSchema', onResponseTutorialSchema) + + function onResponseTutorialSchema(err, schema) { + try { + schemas.array.docsTutorialSchema = JSON.parse(schema) + + for (let j = 0; j < schemas.array.docsTutorialSchema.length; j++) { + let schemaDocument = schemas.array.docsTutorialSchema[j] + let key = schemaDocument.type + schemas.map.docsTutorialSchema.set(key, schemaDocument) + } + } catch (err) { + console.log(err.stack) + } + + webServerResponses++ + if (webServerResponses === totalWebServerCalls) { startCanvas() } + } + + totalWebServerCalls++ + httpRequest(undefined, 'Schema/' + project + '/DocsBookSchema', onResponseBookSchema) + + function onResponseBookSchema(err, schema) { + try { + schemas.array.docsBookSchema = JSON.parse(schema) + + for (let j = 0; j < schemas.array.docsBookSchema.length; j++) { + let schemaDocument = schemas.array.docsBookSchema[j] + let key = schemaDocument.type + schemas.map.docsBookSchema.set(key, schemaDocument) } } catch (err) { console.log(err.stack) diff --git a/UI/Canvas.js b/UI/Canvas.js index 51d41ceec..15cc7e1cc 100644 --- a/UI/Canvas.js +++ b/UI/Canvas.js @@ -5,7 +5,7 @@ function newCanvas() { const MODULE_NAME = 'Canvas' const ERROR_LOG = true const logger = newWebDebugLog() - + /* Mouse event related variables. */ @@ -51,7 +51,7 @@ function newCanvas() { function finalize() { try { UI.projects.superalgos.spaces.tutorialSpace.finalize() - UI.projects.superalgos.spaces.docSpace.finalize() + UI.projects.superalgos.spaces.docsSpace.finalize() //thisObject.chatSpace.finalize() UI.projects.superalgos.spaces.sideSpace.finalize() UI.projects.superalgos.spaces.chartingSpace.finalize() @@ -121,6 +121,33 @@ function newCanvas() { let spaceAnimationDrawMap = new Map() let spaceDefinitionDrawMap = new Map() + /* Set up Globals of this Project */ + if (projectDefinition.UI.globals !== undefined) { + for (let j = 0; j < projectDefinition.UI.globals.length; j++) { + let globalDefinition = projectDefinition.UI.globals[j] + + projectInstance.globals[globalDefinition.propertyName] = eval(globalDefinition.functionName + '()') + } + } + + /* Set up Utilities of this Project */ + if (projectDefinition.UI.utilities !== undefined) { + for (let j = 0; j < projectDefinition.UI.utilities.length; j++) { + let utilityDefinition = projectDefinition.UI.utilities[j] + + projectInstance.utilities[utilityDefinition.propertyName] = eval(utilityDefinition.functionName + '()') + } + } + + /* Set up Function Libraries of this Project */ + if (projectDefinition.UI.functionLibraries !== undefined) { + for (let j = 0; j < projectDefinition.UI.functionLibraries.length; j++) { + let functionLibraryDefinition = projectDefinition.UI.functionLibraries[j] + + projectInstance.functionLibraries[functionLibraryDefinition.propertyName] = eval(functionLibraryDefinition.functionName + '()') + } + } + /* Space Instantiation */ if (projectDefinition.UI.spaces === undefined) { continue } for (let j = 0; j < projectDefinition.UI.spaces.length; j++) { @@ -185,33 +212,6 @@ function newCanvas() { thisObject.animation.addCallBackFunction(spaceDefinition.name + ' ' + 'Draw', spaceInstance.draw) } } - - /* Set up Utilities of this Project */ - if (projectDefinition.UI.utilities !== undefined) { - for (let j = 0; j < projectDefinition.UI.utilities.length; j++) { - let utilityDefinition = projectDefinition.UI.utilities[j] - - projectInstance.utilities[utilityDefinition.propertyName] = eval(utilityDefinition.functionName + '()') - } - } - - /* Set up Globals of this Project */ - if (projectDefinition.UI.globals !== undefined) { - for (let j = 0; j < projectDefinition.UI.globals.length; j++) { - let globalDefinition = projectDefinition.UI.globals[j] - - projectInstance.globals[globalDefinition.propertyName] = eval(globalDefinition.functionName + '()') - } - } - - /* Set up Function Libraries of this Project */ - if (projectDefinition.UI.functionLibraries !== undefined) { - for (let j = 0; j < projectDefinition.UI.functionLibraries.length; j++) { - let functionLibraryDefinition = projectDefinition.UI.functionLibraries[j] - - projectInstance.functionLibraries[functionLibraryDefinition.propertyName] = eval(functionLibraryDefinition.functionName + '()') - } - } } thisObject.animation.start() @@ -367,7 +367,18 @@ function newCanvas() { } async function onKeyDown(event) { - if (EDITOR_ON_FOCUS === true) { return } + if (EDITOR_ON_FOCUS === true) { + /* + We will fordward the event to whoever is + controlling the editor. + */ + window.editorController.onKeyDown(event) + return + } + /* When the Docs is Visible, we do not process key down events of the Designer Space. */ + if (UI.projects.superalgos.spaces.docsSpace.isVisible === true) { + return + } thisObject.mouse.event = event thisObject.mouse.action = 'key down' @@ -453,7 +464,12 @@ function newCanvas() { if ((event.ctrlKey === true || event.metaKey === true) && event.altKey === true && event.shiftKey === true && event.keyCode === 123) { // Dev Tool when used with F12 if (nodeOnFocus !== undefined) { + console.log('Node on Focus:') console.log(nodeOnFocus) + if (nodeOnFocus.config !== undefined) { + console.log('Node on Focus Config:') + console.log(JSON.stringify(JSON.parse(nodeOnFocus.config)).replaceAll('"', '\"')) + } return } } diff --git a/UI/PostLoader.js b/UI/PostLoader.js deleted file mode 100644 index db12ac1be..000000000 --- a/UI/PostLoader.js +++ /dev/null @@ -1,147 +0,0 @@ - - -function newAppPostLoader() { - const MODULE_NAME = 'Post Loader' - const ERROR_LOG = true - const logger = newWebDebugLog() - - - let thisObject = { - start: start - } - - return thisObject - - function start() { - try { - /* Moving PROJECTS_ARRAY to the global variable */ - PROJECTS_ARRAY = window.PROJECTS - window.PROJECTS = undefined - - setBrowserEvents() - setupProjectsSchema() - - function setupProjectsSchema() { - httpRequest(undefined, 'ProjectsSchema', onResponse) - - function onResponse(err, file) { - PROJECTS_SCHEMA = JSON.parse(file) - setupSchemas() - } - } - - function setupSchemas() { - - let totalWebServerCalls = 0 - let webServerResponses = 0 - - for (let i = 0; i < PROJECTS_ARRAY.length; i++) { - let project = PROJECTS_ARRAY[i] - let schemas = { - array: { - appSchema: [], - docSchema: [], - conceptSchema: [] - }, - map: { - appSchema: new Map(), - docSchema: new Map(), - conceptSchema: new Map() - } - } - SCHEMAS_BY_PROJECT.set(project, schemas) - - totalWebServerCalls++ - httpRequest(undefined, 'Schema/' + project + '/AppSchema', onResponseAppSchema) - - function onResponseAppSchema(err, schema) { - try { - schemas.array.appSchema = JSON.parse(schema) - - for (let j = 0; j < schemas.array.appSchema.length; j++) { - let nodeDefinition = schemas.array.appSchema[j] - let key = nodeDefinition.type - schemas.map.appSchema.set(key, nodeDefinition) - } - } catch (err) { - console.log(err.stack) - } - - webServerResponses++ - if (webServerResponses === totalWebServerCalls) { startCanvas() } - } - - totalWebServerCalls++ - httpRequest(undefined, 'Schema/' + project + '/DocSchema', onResponseDocSchema) - - function onResponseDocSchema(err, schema) { - try { - schemas.array.docSchema = JSON.parse(schema) - - for (let j = 0; j < schemas.array.docSchema.length; j++) { - let nodeDefinition = schemas.array.docSchema[j] - let key = nodeDefinition.type - schemas.map.docSchema.set(key, nodeDefinition) - } - } catch (err) { - console.log(err.stack) - } - - webServerResponses++ - if (webServerResponses === totalWebServerCalls) { startCanvas() } - } - - totalWebServerCalls++ - httpRequest(undefined, 'Schema/' + project + '/ConceptSchema', onResponseConceptSchema) - - function onResponseConceptSchema(err, schema) { - try { - schemas.array.conceptSchema = JSON.parse(schema) - - for (let j = 0; j < schemas.array.conceptSchema.length; j++) { - let nodeDefinition = schemas.array.conceptSchema[j] - let key = nodeDefinition.type - schemas.map.conceptSchema.set(key, nodeDefinition) - } - } catch (err) { - console.log(err.stack) - } - - webServerResponses++ - if (webServerResponses === totalWebServerCalls) { startCanvas() } - } - } - } - - function startCanvas() { - /* If this method is executed for a second time, it should finalize the current execution structure */ - if (canvas !== undefined) { canvas.finalize() } - - canvas = newCanvas() - canvas.initialize() - } - } catch (err) { - if (ERROR_LOG === true) { logger.write('[ERROR] start -> err = ' + err.stack) } - } - } - - function setBrowserEvents() { - window.onbeforeunload = saveWorkspace - - /* handles backspace and refresh(F5) from keyboard */ - window.manageBackRefresh = function (event) { - var tag = event.target.tagName.toLowerCase() - if (event.keyCode === 8 && tag !== 'input' && tag !== 'textarea') { // Backbutton pressed - saveWorkspace() - } else if (event.keyCode === 116) { // F5 pressed - saveWorkspace() - } - } - - window.addEventListener('keydown', window.manageBackRefresh) - - function saveWorkspace() { - UI.projects.superalgos.spaces.designSpace.workspace.save() - } - } -} diff --git a/UI/Utilities.js b/UI/Utilities.js index 095d6c70d..28b38e590 100644 --- a/UI/Utilities.js +++ b/UI/Utilities.js @@ -1,6 +1,6 @@ -function getNodeDefinition(node, project) { +function getSchemaDocument(node, project) { if (node === null || node === undefined) { - console.log('[Error] Can not get the node definition of a null or undefined node ') + console.log('[Error] Can not get the schema document of a null or undefined node ') return } if (project === undefined) { project = node.project } diff --git a/debug.log b/debug.log index 097051eec..33e28ade1 100644 --- a/debug.log +++ b/debug.log @@ -1 +1,2 @@ [1129/182047.011:ERROR:directory_reader_win.cc(43)] FindFirstFile: The system cannot find the path specified. (0x3) +[0105/141830.476:ERROR:directory_reader_win.cc(43)] FindFirstFile: The system cannot find the path specified. (0x3) diff --git a/run.js b/run.js index 3a28b565e..5ea495f8a 100644 --- a/run.js +++ b/run.js @@ -11,7 +11,7 @@ if ( console.log('Superalgos') console.log('') - console.log('VERSION: Beta 7 SP 1') + console.log('VERSION: Beta 8') console.log('') console.log('WEB: https://www.superalgos.org') console.log('')